diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml new file mode 100644 index 000000000..3712a342a --- /dev/null +++ b/.github/workflows/build-and-test.yml @@ -0,0 +1,44 @@ +name: Build and Test Workflow + +on: + push: + branches: + - main + - dev + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Node.js + uses: actions/setup-node@v2 + with: + node-version: '18' # Adjust this as needed for your project + + - name: Install dependencies + run: npm install + + - name: Install Foundry + run: | + curl -L https://foundry.paradigm.xyz | bash + export PATH="$PATH:/home/runner/.config/.foundry/bin" + foundryup + forge install + + - name: Generate Ethereum Private Key and Create .env File and run make + run: | + PRIVATE_KEY=$(node -e "console.log(require('crypto').randomBytes(32).toString('hex'))") + echo "export PRIVATE_KEY=0x$PRIVATE_KEY" > .env + echo "export RPC_URL=http://127.0.0.1:1337" >> .env + echo "export CHAIN_ID=1337" >> .env + export PATH="$PATH:/home/runner/.config/.foundry/bin" + npx ganache-cli -g0 -p1337 --account 0x$PRIVATE_KEY,1001901919191919191 & + sleep 5 + make + + diff --git a/.out/AccountHelper.sol/AccountHelper.json b/.out/AccountHelper.sol/AccountHelper.json index 702ff029a..6bac79e0b 100644 --- a/.out/AccountHelper.sol/AccountHelper.json +++ b/.out/AccountHelper.sol/AccountHelper.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"isSystemActor","inputs":[{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x60808060405234601857608e908161001e823930815050f35b600080fdfe6080806040526004361015601257600080fd5b60003560e01c635d3f8a6914602657600080fd5b60203660031901126053576004356001600160a01b038116919082900360535760209160ff60981b148152f35b600080fdfea2646970667358221220a68cfeb6ce6fe5ab87c1d872ad609dc3c957d43ea1ed4e786fd87e5275e58c6164736f6c63430008130033","sourceMap":"208:159:54:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b60003560e01c635d3f8a6914602657600080fd5b60203660031901126053576004356001600160a01b038116919082900360535760209160ff60981b148152f35b600080fdfea2646970667358221220a68cfeb6ce6fe5ab87c1d872ad609dc3c957d43ea1ed4e786fd87e5275e58c6164736f6c63430008130033","sourceMap":"208:159:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;208:159:54;;;;;;-1:-1:-1;;;;;208:159:54;;;;;;;;;;540:42:1;;;;323:35:54;208:159;;;;;;","linkReferences":{}},"methodIdentifiers":{"isSystemActor(address)":"5d3f8a69"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isSystemActor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for checking account type\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/AccountHelper.sol\":\"AccountHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"pure","type":"function","name":"isSystemActor","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/AccountHelper.sol":"AccountHelper"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/AccountHelper.sol","id":39998,"exportedSymbols":{"AccountHelper":[39997],"FilAddress":[1428]},"nodeType":"SourceUnit","src":"46:322:54","nodes":[{"id":39980,"nodeType":"PragmaDirective","src":"46:23:54","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39982,"nodeType":"ImportDirective","src":"71:56:54","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":39998,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":39981,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"79:10:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39997,"nodeType":"ContractDefinition","src":"208:159:54","nodes":[{"id":39996,"nodeType":"FunctionDefinition","src":"236:129:54","nodes":[],"body":{"id":39995,"nodeType":"Block","src":"306:59:54","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":39993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39990,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39985,"src":"323:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":39991,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"335:10:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":39992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"346:12:54","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"335:23:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"323:35:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":39989,"id":39994,"nodeType":"Return","src":"316:42:54"}]},"functionSelector":"5d3f8a69","implemented":true,"kind":"function","modifiers":[],"name":"isSystemActor","nameLocation":"245:13:54","parameters":{"id":39986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39985,"mutability":"mutable","name":"_address","nameLocation":"267:8:54","nodeType":"VariableDeclaration","scope":39996,"src":"259:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39984,"name":"address","nodeType":"ElementaryTypeName","src":"259:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"258:18:54"},"returnParameters":{"id":39989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39996,"src":"300:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39987,"name":"bool","nodeType":"ElementaryTypeName","src":"300:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"299:6:54"},"scope":39997,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"AccountHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":39983,"nodeType":"StructuredDocumentation","src":"129:79:54","text":"@title Helper library for checking account type\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[39997],"name":"AccountHelper","nameLocation":"216:13:54","scope":39998,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":54} \ No newline at end of file +{"abi":[{"type":"function","name":"isSystemActor","inputs":[{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x60808060405234601857608e908161001e823930815050f35b600080fdfe6080806040526004361015601257600080fd5b60003560e01c635d3f8a6914602657600080fd5b60203660031901126053576004356001600160a01b038116919082900360535760209160ff60981b148152f35b600080fdfea2646970667358221220a68cfeb6ce6fe5ab87c1d872ad609dc3c957d43ea1ed4e786fd87e5275e58c6164736f6c63430008130033","sourceMap":"208:159:59:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b60003560e01c635d3f8a6914602657600080fd5b60203660031901126053576004356001600160a01b038116919082900360535760209160ff60981b148152f35b600080fdfea2646970667358221220a68cfeb6ce6fe5ab87c1d872ad609dc3c957d43ea1ed4e786fd87e5275e58c6164736f6c63430008130033","sourceMap":"208:159:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;208:159:59;;;;;;-1:-1:-1;;;;;208:159:59;;;;;;;;;;540:42:1;;;;323:35:59;208:159;;;;;;","linkReferences":{}},"methodIdentifiers":{"isSystemActor(address)":"5d3f8a69"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isSystemActor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for checking account type\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/AccountHelper.sol\":\"AccountHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"pure","type":"function","name":"isSystemActor","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/AccountHelper.sol":"AccountHelper"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/AccountHelper.sol","id":40448,"exportedSymbols":{"AccountHelper":[40447],"FilAddress":[1428]},"nodeType":"SourceUnit","src":"46:322:59","nodes":[{"id":40430,"nodeType":"PragmaDirective","src":"46:23:59","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40432,"nodeType":"ImportDirective","src":"71:56:59","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":40448,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":40431,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"79:10:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40447,"nodeType":"ContractDefinition","src":"208:159:59","nodes":[{"id":40446,"nodeType":"FunctionDefinition","src":"236:129:59","nodes":[],"body":{"id":40445,"nodeType":"Block","src":"306:59:59","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":40443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40440,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40435,"src":"323:8:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":40441,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"335:10:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":40442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"346:12:59","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"335:23:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"323:35:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":40439,"id":40444,"nodeType":"Return","src":"316:42:59"}]},"functionSelector":"5d3f8a69","implemented":true,"kind":"function","modifiers":[],"name":"isSystemActor","nameLocation":"245:13:59","parameters":{"id":40436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40435,"mutability":"mutable","name":"_address","nameLocation":"267:8:59","nodeType":"VariableDeclaration","scope":40446,"src":"259:16:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40434,"name":"address","nodeType":"ElementaryTypeName","src":"259:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"258:18:59"},"returnParameters":{"id":40439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40446,"src":"300:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40437,"name":"bool","nodeType":"ElementaryTypeName","src":"300:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"299:6:59"},"scope":40447,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"AccountHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":40433,"nodeType":"StructuredDocumentation","src":"129:79:59","text":"@title Helper library for checking account type\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[40447],"name":"AccountHelper","nameLocation":"216:13:59","scope":40448,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":59} \ No newline at end of file diff --git a/.out/Address.sol/Address.json b/.out/Address.sol/Address.json index 0859c3629..e45d303b1 100644 --- a/.out/Address.sol/Address.json +++ b/.out/Address.sol/Address.json @@ -1 +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":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220a5fdf1de74c88e9b12802044fbc08b0fae8241594f3329ce0e96d1d8bbaa66e964736f6c63430008130033","sourceMap":"195:9048:26:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220a5fdf1de74c88e9b12802044fbc08b0fae8241594f3329ce0e96d1d8bbaa66e964736f6c63430008130033","sourceMap":"195:9048:26:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":"Address"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","id":32410,"exportedSymbols":{"Address":[32409]},"nodeType":"SourceUnit","src":"101:9143:26","nodes":[{"id":32026,"nodeType":"PragmaDirective","src":"101:24:26","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":32409,"nodeType":"ContractDefinition","src":"195:9048:26","nodes":[{"id":32032,"nodeType":"ErrorDefinition","src":"316:50:26","nodes":[],"documentation":{"id":32028,"nodeType":"StructuredDocumentation","src":"217:94:26","text":" @dev The ETH balance of the account is not enough to perform the operation."},"errorSelector":"cd786059","name":"AddressInsufficientBalance","nameLocation":"322:26:26","parameters":{"id":32031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32030,"mutability":"mutable","name":"account","nameLocation":"357:7:26","nodeType":"VariableDeclaration","scope":32032,"src":"349:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32029,"name":"address","nodeType":"ElementaryTypeName","src":"349:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"348:17:26"}},{"id":32037,"nodeType":"ErrorDefinition","src":"452:39:26","nodes":[],"documentation":{"id":32033,"nodeType":"StructuredDocumentation","src":"372:75:26","text":" @dev There's no code at `target` (it is not a contract)."},"errorSelector":"9996b315","name":"AddressEmptyCode","nameLocation":"458:16:26","parameters":{"id":32036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32035,"mutability":"mutable","name":"target","nameLocation":"483:6:26","nodeType":"VariableDeclaration","scope":32037,"src":"475:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32034,"name":"address","nodeType":"ElementaryTypeName","src":"475:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"474:16:26"}},{"id":32040,"nodeType":"ErrorDefinition","src":"591:24:26","nodes":[],"documentation":{"id":32038,"nodeType":"StructuredDocumentation","src":"497:89:26","text":" @dev A call to an address target failed. The target may have reverted."},"errorSelector":"1425ea42","name":"FailedInnerCall","nameLocation":"597:15:26","parameters":{"id":32039,"nodeType":"ParameterList","parameters":[],"src":"612:2:26"}},{"id":32081,"nodeType":"FunctionDefinition","src":"1530:331:26","nodes":[],"body":{"id":32080,"nodeType":"Block","src":"1601:260:26","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":32050,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1623:4:26","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$32409","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$32409","typeString":"library Address"}],"id":32049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1615:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32048,"name":"address","nodeType":"ElementaryTypeName","src":"1615:7:26","typeDescriptions":{}}},"id":32051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1615:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1629:7:26","memberName":"balance","nodeType":"MemberAccess","src":"1615:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":32053,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32045,"src":"1639:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1615:30:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32063,"nodeType":"IfStatement","src":"1611:109:26","trueBody":{"id":32062,"nodeType":"Block","src":"1647:73:26","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":32058,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1703:4:26","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$32409","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$32409","typeString":"library Address"}],"id":32057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1695:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32056,"name":"address","nodeType":"ElementaryTypeName","src":"1695:7:26","typeDescriptions":{}}},"id":32059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1695:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":32055,"name":"AddressInsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32032,"src":"1668:26:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":32060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1668:41:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32061,"nodeType":"RevertStatement","src":"1661:48:26"}]}},{"assignments":[32065,null],"declarations":[{"constant":false,"id":32065,"mutability":"mutable","name":"success","nameLocation":"1736:7:26","nodeType":"VariableDeclaration","scope":32080,"src":"1731:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32064,"name":"bool","nodeType":"ElementaryTypeName","src":"1731:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":32072,"initialValue":{"arguments":[{"hexValue":"","id":32070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1779:2:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":32066,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32043,"src":"1749:9:26","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":32067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1759:4:26","memberName":"call","nodeType":"MemberAccess","src":"1749:14:26","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":32069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":32068,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32045,"src":"1771:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1749:29:26","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":32071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1749:33:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1730:52:26"},{"condition":{"id":32074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1796:8:26","subExpression":{"id":32073,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32065,"src":"1797:7:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32079,"nodeType":"IfStatement","src":"1792:63:26","trueBody":{"id":32078,"nodeType":"Block","src":"1806:49:26","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":32075,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32040,"src":"1827:15:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":32076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1827:17:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32077,"nodeType":"RevertStatement","src":"1820:24:26"}]}}]},"documentation":{"id":32041,"nodeType":"StructuredDocumentation","src":"621:904:26","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"1539:9:26","parameters":{"id":32046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32043,"mutability":"mutable","name":"recipient","nameLocation":"1565:9:26","nodeType":"VariableDeclaration","scope":32081,"src":"1549:25:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":32042,"name":"address","nodeType":"ElementaryTypeName","src":"1549:15:26","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":32045,"mutability":"mutable","name":"amount","nameLocation":"1584:6:26","nodeType":"VariableDeclaration","scope":32081,"src":"1576:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32044,"name":"uint256","nodeType":"ElementaryTypeName","src":"1576:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1548:43:26"},"returnParameters":{"id":32047,"nodeType":"ParameterList","parameters":[],"src":"1601:0:26"},"scope":32409,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32099,"nodeType":"FunctionDefinition","src":"2603:166:26","nodes":[],"body":{"id":32098,"nodeType":"Block","src":"2692:77:26","nodes":[],"statements":[{"expression":{"arguments":[{"id":32092,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32084,"src":"2731:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32093,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32086,"src":"2739:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":32094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2745:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":32095,"name":"defaultRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32384,"src":"2748:13:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}],"id":32091,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[32141,32192],"referencedDeclaration":32192,"src":"2709:21:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,function () view) returns (bytes memory)"}},"id":32096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2709:53:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32090,"id":32097,"nodeType":"Return","src":"2702:60:26"}]},"documentation":{"id":32082,"nodeType":"StructuredDocumentation","src":"1867:731:26","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"2612:12:26","parameters":{"id":32087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32084,"mutability":"mutable","name":"target","nameLocation":"2633:6:26","nodeType":"VariableDeclaration","scope":32099,"src":"2625:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32083,"name":"address","nodeType":"ElementaryTypeName","src":"2625:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32086,"mutability":"mutable","name":"data","nameLocation":"2654:4:26","nodeType":"VariableDeclaration","scope":32099,"src":"2641:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32085,"name":"bytes","nodeType":"ElementaryTypeName","src":"2641:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2624:35:26"},"returnParameters":{"id":32090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32089,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32099,"src":"2678:12:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32088,"name":"bytes","nodeType":"ElementaryTypeName","src":"2678:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2677:14:26"},"scope":32409,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32121,"nodeType":"FunctionDefinition","src":"3077:234:26","nodes":[],"body":{"id":32120,"nodeType":"Block","src":"3235:76:26","nodes":[],"statements":[{"expression":{"arguments":[{"id":32114,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32102,"src":"3274:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32115,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32104,"src":"3282:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":32116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3288:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":32117,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32108,"src":"3291:12:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":32113,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[32141,32192],"referencedDeclaration":32192,"src":"3252:21:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,function () view) returns (bytes memory)"}},"id":32118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3252:52:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32112,"id":32119,"nodeType":"Return","src":"3245:59:26"}]},"documentation":{"id":32100,"nodeType":"StructuredDocumentation","src":"2775:297:26","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with a\n `customRevert` function as a fallback when `target` reverts.\n Requirements:\n - `customRevert` must be a reverting function.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3086:12:26","parameters":{"id":32109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32102,"mutability":"mutable","name":"target","nameLocation":"3116:6:26","nodeType":"VariableDeclaration","scope":32121,"src":"3108:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32101,"name":"address","nodeType":"ElementaryTypeName","src":"3108:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32104,"mutability":"mutable","name":"data","nameLocation":"3145:4:26","nodeType":"VariableDeclaration","scope":32121,"src":"3132:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32103,"name":"bytes","nodeType":"ElementaryTypeName","src":"3132:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32108,"mutability":"mutable","name":"customRevert","nameLocation":"3184:12:26","nodeType":"VariableDeclaration","scope":32121,"src":"3159:37:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":32107,"nodeType":"FunctionTypeName","parameterTypes":{"id":32105,"nodeType":"ParameterList","parameters":[],"src":"3167:2:26"},"returnParameterTypes":{"id":32106,"nodeType":"ParameterList","parameters":[],"src":"3184:0:26"},"src":"3159:37:26","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"3098:104:26"},"returnParameters":{"id":32112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32111,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32121,"src":"3221:12:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32110,"name":"bytes","nodeType":"ElementaryTypeName","src":"3221:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3220:14:26"},"scope":32409,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32141,"nodeType":"FunctionDefinition","src":"3673:194:26","nodes":[],"body":{"id":32140,"nodeType":"Block","src":"3786:81:26","nodes":[],"statements":[{"expression":{"arguments":[{"id":32134,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32124,"src":"3825:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32135,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32126,"src":"3833:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32136,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32128,"src":"3839:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32137,"name":"defaultRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32384,"src":"3846:13:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}],"id":32133,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[32141,32192],"referencedDeclaration":32192,"src":"3803:21:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,function () view) returns (bytes memory)"}},"id":32138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3803:57:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32132,"id":32139,"nodeType":"Return","src":"3796:64:26"}]},"documentation":{"id":32122,"nodeType":"StructuredDocumentation","src":"3317:351:26","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"3682:21:26","parameters":{"id":32129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32124,"mutability":"mutable","name":"target","nameLocation":"3712:6:26","nodeType":"VariableDeclaration","scope":32141,"src":"3704:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32123,"name":"address","nodeType":"ElementaryTypeName","src":"3704:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32126,"mutability":"mutable","name":"data","nameLocation":"3733:4:26","nodeType":"VariableDeclaration","scope":32141,"src":"3720:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32125,"name":"bytes","nodeType":"ElementaryTypeName","src":"3720:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32128,"mutability":"mutable","name":"value","nameLocation":"3747:5:26","nodeType":"VariableDeclaration","scope":32141,"src":"3739:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32127,"name":"uint256","nodeType":"ElementaryTypeName","src":"3739:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3703:50:26"},"returnParameters":{"id":32132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32131,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32141,"src":"3772:12:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32130,"name":"bytes","nodeType":"ElementaryTypeName","src":"3772:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3771:14:26"},"scope":32409,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32192,"nodeType":"FunctionDefinition","src":"4215:483:26","nodes":[],"body":{"id":32191,"nodeType":"Block","src":"4405:293:26","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":32159,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4427:4:26","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$32409","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$32409","typeString":"library Address"}],"id":32158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4419:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32157,"name":"address","nodeType":"ElementaryTypeName","src":"4419:7:26","typeDescriptions":{}}},"id":32160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4419:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4433:7:26","memberName":"balance","nodeType":"MemberAccess","src":"4419:21:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":32162,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32148,"src":"4443:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4419:29:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32172,"nodeType":"IfStatement","src":"4415:108:26","trueBody":{"id":32171,"nodeType":"Block","src":"4450:73:26","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":32167,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4506:4:26","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$32409","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$32409","typeString":"library Address"}],"id":32166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4498:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32165,"name":"address","nodeType":"ElementaryTypeName","src":"4498:7:26","typeDescriptions":{}}},"id":32168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4498:13:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":32164,"name":"AddressInsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32032,"src":"4471:26:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":32169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4471:41:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32170,"nodeType":"RevertStatement","src":"4464:48:26"}]}},{"assignments":[32174,32176],"declarations":[{"constant":false,"id":32174,"mutability":"mutable","name":"success","nameLocation":"4538:7:26","nodeType":"VariableDeclaration","scope":32191,"src":"4533:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32173,"name":"bool","nodeType":"ElementaryTypeName","src":"4533:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32176,"mutability":"mutable","name":"returndata","nameLocation":"4560:10:26","nodeType":"VariableDeclaration","scope":32191,"src":"4547:23:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32175,"name":"bytes","nodeType":"ElementaryTypeName","src":"4547:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":32183,"initialValue":{"arguments":[{"id":32181,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32146,"src":"4600:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":32177,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32144,"src":"4574:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4581:4:26","memberName":"call","nodeType":"MemberAccess","src":"4574:11:26","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":32180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":32179,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32148,"src":"4593:5:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4574:25:26","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":32182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4574:31:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4532:73:26"},{"expression":{"arguments":[{"id":32185,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32144,"src":"4649:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32186,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32174,"src":"4657:7:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":32187,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32176,"src":"4666:10:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32188,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32152,"src":"4678:12:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":32184,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32333,"src":"4622:26:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,function () view) view returns (bytes memory)"}},"id":32189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4622:69:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32156,"id":32190,"nodeType":"Return","src":"4615:76:26"}]},"documentation":{"id":32142,"nodeType":"StructuredDocumentation","src":"3873:337:26","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with a `customRevert` function as a fallback revert reason when `target` reverts.\n Requirements:\n - `customRevert` must be a reverting function.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4224:21:26","parameters":{"id":32153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32144,"mutability":"mutable","name":"target","nameLocation":"4263:6:26","nodeType":"VariableDeclaration","scope":32192,"src":"4255:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32143,"name":"address","nodeType":"ElementaryTypeName","src":"4255:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32146,"mutability":"mutable","name":"data","nameLocation":"4292:4:26","nodeType":"VariableDeclaration","scope":32192,"src":"4279:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32145,"name":"bytes","nodeType":"ElementaryTypeName","src":"4279:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32148,"mutability":"mutable","name":"value","nameLocation":"4314:5:26","nodeType":"VariableDeclaration","scope":32192,"src":"4306:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32147,"name":"uint256","nodeType":"ElementaryTypeName","src":"4306:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32152,"mutability":"mutable","name":"customRevert","nameLocation":"4354:12:26","nodeType":"VariableDeclaration","scope":32192,"src":"4329:37:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":32151,"nodeType":"FunctionTypeName","parameterTypes":{"id":32149,"nodeType":"ParameterList","parameters":[],"src":"4337:2:26"},"returnParameterTypes":{"id":32150,"nodeType":"ParameterList","parameters":[],"src":"4354:0:26"},"src":"4329:37:26","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"4245:127:26"},"returnParameters":{"id":32156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32155,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32192,"src":"4391:12:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32154,"name":"bytes","nodeType":"ElementaryTypeName","src":"4391:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4390:14:26"},"scope":32409,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32209,"nodeType":"FunctionDefinition","src":"4875:171:26","nodes":[],"body":{"id":32208,"nodeType":"Block","src":"4975:71:26","nodes":[],"statements":[{"expression":{"arguments":[{"id":32203,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32195,"src":"5011:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32204,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32197,"src":"5019:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32205,"name":"defaultRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32384,"src":"5025:13:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}],"id":32202,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[32209,32240],"referencedDeclaration":32240,"src":"4992:18:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,function () view) view returns (bytes memory)"}},"id":32206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4992:47:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32201,"id":32207,"nodeType":"Return","src":"4985:54:26"}]},"documentation":{"id":32193,"nodeType":"StructuredDocumentation","src":"4704:166:26","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"4884:18:26","parameters":{"id":32198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32195,"mutability":"mutable","name":"target","nameLocation":"4911:6:26","nodeType":"VariableDeclaration","scope":32209,"src":"4903:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32194,"name":"address","nodeType":"ElementaryTypeName","src":"4903:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32197,"mutability":"mutable","name":"data","nameLocation":"4932:4:26","nodeType":"VariableDeclaration","scope":32209,"src":"4919:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32196,"name":"bytes","nodeType":"ElementaryTypeName","src":"4919:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4902:35:26"},"returnParameters":{"id":32201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32200,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32209,"src":"4961:12:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32199,"name":"bytes","nodeType":"ElementaryTypeName","src":"4961:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4960:14:26"},"scope":32409,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":32240,"nodeType":"FunctionDefinition","src":"5230:337:26","nodes":[],"body":{"id":32239,"nodeType":"Block","src":"5399:168:26","nodes":[],"statements":[{"assignments":[32224,32226],"declarations":[{"constant":false,"id":32224,"mutability":"mutable","name":"success","nameLocation":"5415:7:26","nodeType":"VariableDeclaration","scope":32239,"src":"5410:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32223,"name":"bool","nodeType":"ElementaryTypeName","src":"5410:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32226,"mutability":"mutable","name":"returndata","nameLocation":"5437:10:26","nodeType":"VariableDeclaration","scope":32239,"src":"5424:23:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32225,"name":"bytes","nodeType":"ElementaryTypeName","src":"5424:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":32231,"initialValue":{"arguments":[{"id":32229,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32214,"src":"5469:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":32227,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32212,"src":"5451:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5458:10:26","memberName":"staticcall","nodeType":"MemberAccess","src":"5451:17:26","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":32230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:23:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5409:65:26"},{"expression":{"arguments":[{"id":32233,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32212,"src":"5518:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32234,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32224,"src":"5526:7:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":32235,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32226,"src":"5535:10:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32236,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32218,"src":"5547:12:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":32232,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32333,"src":"5491:26:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,function () view) view returns (bytes memory)"}},"id":32237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5491:69:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32222,"id":32238,"nodeType":"Return","src":"5484:76:26"}]},"documentation":{"id":32210,"nodeType":"StructuredDocumentation","src":"5052:173:26","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5239:18:26","parameters":{"id":32219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32212,"mutability":"mutable","name":"target","nameLocation":"5275:6:26","nodeType":"VariableDeclaration","scope":32240,"src":"5267:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32211,"name":"address","nodeType":"ElementaryTypeName","src":"5267:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32214,"mutability":"mutable","name":"data","nameLocation":"5304:4:26","nodeType":"VariableDeclaration","scope":32240,"src":"5291:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32213,"name":"bytes","nodeType":"ElementaryTypeName","src":"5291:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32218,"mutability":"mutable","name":"customRevert","nameLocation":"5343:12:26","nodeType":"VariableDeclaration","scope":32240,"src":"5318:37:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":32217,"nodeType":"FunctionTypeName","parameterTypes":{"id":32215,"nodeType":"ParameterList","parameters":[],"src":"5326:2:26"},"returnParameterTypes":{"id":32216,"nodeType":"ParameterList","parameters":[],"src":"5343:0:26"},"src":"5318:37:26","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"5257:104:26"},"returnParameters":{"id":32222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32221,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32240,"src":"5385:12:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32220,"name":"bytes","nodeType":"ElementaryTypeName","src":"5385:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5384:14:26"},"scope":32409,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":32257,"nodeType":"FunctionDefinition","src":"5746:170:26","nodes":[],"body":{"id":32256,"nodeType":"Block","src":"5843:73:26","nodes":[],"statements":[{"expression":{"arguments":[{"id":32251,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32243,"src":"5881:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32252,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32245,"src":"5889:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32253,"name":"defaultRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32384,"src":"5895:13:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}],"id":32250,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[32257,32288],"referencedDeclaration":32288,"src":"5860:20:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,function () view) returns (bytes memory)"}},"id":32254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5860:49:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32249,"id":32255,"nodeType":"Return","src":"5853:56:26"}]},"documentation":{"id":32241,"nodeType":"StructuredDocumentation","src":"5573:168:26","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"5755:20:26","parameters":{"id":32246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32243,"mutability":"mutable","name":"target","nameLocation":"5784:6:26","nodeType":"VariableDeclaration","scope":32257,"src":"5776:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32242,"name":"address","nodeType":"ElementaryTypeName","src":"5776:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32245,"mutability":"mutable","name":"data","nameLocation":"5805:4:26","nodeType":"VariableDeclaration","scope":32257,"src":"5792:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32244,"name":"bytes","nodeType":"ElementaryTypeName","src":"5792:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5775:35:26"},"returnParameters":{"id":32249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32257,"src":"5829:12:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32247,"name":"bytes","nodeType":"ElementaryTypeName","src":"5829:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5828:14:26"},"scope":32409,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32288,"nodeType":"FunctionDefinition","src":"6102:336:26","nodes":[],"body":{"id":32287,"nodeType":"Block","src":"6268:170:26","nodes":[],"statements":[{"assignments":[32272,32274],"declarations":[{"constant":false,"id":32272,"mutability":"mutable","name":"success","nameLocation":"6284:7:26","nodeType":"VariableDeclaration","scope":32287,"src":"6279:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32271,"name":"bool","nodeType":"ElementaryTypeName","src":"6279:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32274,"mutability":"mutable","name":"returndata","nameLocation":"6306:10:26","nodeType":"VariableDeclaration","scope":32287,"src":"6293:23:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32273,"name":"bytes","nodeType":"ElementaryTypeName","src":"6293:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":32279,"initialValue":{"arguments":[{"id":32277,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32262,"src":"6340:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":32275,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32260,"src":"6320:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6327:12:26","memberName":"delegatecall","nodeType":"MemberAccess","src":"6320:19:26","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":32278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6320:25:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6278:67:26"},{"expression":{"arguments":[{"id":32281,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32260,"src":"6389:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32282,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32272,"src":"6397:7:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":32283,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32274,"src":"6406:10:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32284,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32266,"src":"6418:12:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":32280,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32333,"src":"6362:26:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,function () view) view returns (bytes memory)"}},"id":32285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6362:69:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32270,"id":32286,"nodeType":"Return","src":"6355:76:26"}]},"documentation":{"id":32258,"nodeType":"StructuredDocumentation","src":"5922:175:26","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6111:20:26","parameters":{"id":32267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32260,"mutability":"mutable","name":"target","nameLocation":"6149:6:26","nodeType":"VariableDeclaration","scope":32288,"src":"6141:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32259,"name":"address","nodeType":"ElementaryTypeName","src":"6141:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32262,"mutability":"mutable","name":"data","nameLocation":"6178:4:26","nodeType":"VariableDeclaration","scope":32288,"src":"6165:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32261,"name":"bytes","nodeType":"ElementaryTypeName","src":"6165:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32266,"mutability":"mutable","name":"customRevert","nameLocation":"6217:12:26","nodeType":"VariableDeclaration","scope":32288,"src":"6192:37:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":32265,"nodeType":"FunctionTypeName","parameterTypes":{"id":32263,"nodeType":"ParameterList","parameters":[],"src":"6200:2:26"},"returnParameterTypes":{"id":32264,"nodeType":"ParameterList","parameters":[],"src":"6217:0:26"},"src":"6192:37:26","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"6131:104:26"},"returnParameters":{"id":32270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32269,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32288,"src":"6254:12:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32268,"name":"bytes","nodeType":"ElementaryTypeName","src":"6254:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6253:14:26"},"scope":32409,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32333,"nodeType":"FunctionDefinition","src":"6737:692:26","nodes":[],"body":{"id":32332,"nodeType":"Block","src":"6942:487:26","nodes":[],"statements":[{"condition":{"id":32304,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32293,"src":"6956:7:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":32330,"nodeType":"Block","src":"7365:58:26","statements":[{"expression":{"arguments":[{"id":32326,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32295,"src":"7387:10:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32327,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32299,"src":"7399:12:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":32325,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32408,"src":"7379:7:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$__$","typeString":"function (bytes memory,function () view) view"}},"id":32328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7379:33:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32329,"nodeType":"ExpressionStatement","src":"7379:33:26"}]},"id":32331,"nodeType":"IfStatement","src":"6952:471:26","trueBody":{"id":32324,"nodeType":"Block","src":"6965:394:26","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":32305,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32295,"src":"6983:10:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6994:6:26","memberName":"length","nodeType":"MemberAccess","src":"6983:17:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":32307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7004:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6983:22:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32321,"nodeType":"IfStatement","src":"6979:339:26","trueBody":{"id":32320,"nodeType":"Block","src":"7007:311:26","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":32309,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32291,"src":"7207:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7214:4:26","memberName":"code","nodeType":"MemberAccess","src":"7207:11:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7219:6:26","memberName":"length","nodeType":"MemberAccess","src":"7207:18:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":32312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7229:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7207:23:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32319,"nodeType":"IfStatement","src":"7203:101:26","trueBody":{"id":32318,"nodeType":"Block","src":"7232:72:26","statements":[{"errorCall":{"arguments":[{"id":32315,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32291,"src":"7278:6:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":32314,"name":"AddressEmptyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32037,"src":"7261:16:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":32316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7261:24:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32317,"nodeType":"RevertStatement","src":"7254:31:26"}]}}]}},{"expression":{"id":32322,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32295,"src":"7338:10:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32303,"id":32323,"nodeType":"Return","src":"7331:17:26"}]}}]},"documentation":{"id":32289,"nodeType":"StructuredDocumentation","src":"6444:288:26","text":" @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided `customRevert`) in case of unsuccessful call or if target was not a contract.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"6746:26:26","parameters":{"id":32300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32291,"mutability":"mutable","name":"target","nameLocation":"6790:6:26","nodeType":"VariableDeclaration","scope":32333,"src":"6782:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32290,"name":"address","nodeType":"ElementaryTypeName","src":"6782:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32293,"mutability":"mutable","name":"success","nameLocation":"6811:7:26","nodeType":"VariableDeclaration","scope":32333,"src":"6806:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32292,"name":"bool","nodeType":"ElementaryTypeName","src":"6806:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32295,"mutability":"mutable","name":"returndata","nameLocation":"6841:10:26","nodeType":"VariableDeclaration","scope":32333,"src":"6828:23:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32294,"name":"bytes","nodeType":"ElementaryTypeName","src":"6828:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32299,"mutability":"mutable","name":"customRevert","nameLocation":"6886:12:26","nodeType":"VariableDeclaration","scope":32333,"src":"6861:37:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":32298,"nodeType":"FunctionTypeName","parameterTypes":{"id":32296,"nodeType":"ParameterList","parameters":[],"src":"6869:2:26"},"returnParameterTypes":{"id":32297,"nodeType":"ParameterList","parameters":[],"src":"6886:0:26"},"src":"6861:37:26","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"6772:132:26"},"returnParameters":{"id":32303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32302,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32333,"src":"6928:12:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32301,"name":"bytes","nodeType":"ElementaryTypeName","src":"6928:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6927:14:26"},"scope":32409,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":32350,"nodeType":"FunctionDefinition","src":"7655:178:26","nodes":[],"body":{"id":32349,"nodeType":"Block","src":"7757:76:26","nodes":[],"statements":[{"expression":{"arguments":[{"id":32344,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32336,"src":"7791:7:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":32345,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32338,"src":"7800:10:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32346,"name":"defaultRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32384,"src":"7812:13:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}],"id":32343,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[32350,32376],"referencedDeclaration":32376,"src":"7774:16:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bool_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,function () view) view returns (bytes memory)"}},"id":32347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7774:52:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32342,"id":32348,"nodeType":"Return","src":"7767:59:26"}]},"documentation":{"id":32334,"nodeType":"StructuredDocumentation","src":"7435:215:26","text":" @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or with a default revert error.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7664:16:26","parameters":{"id":32339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32336,"mutability":"mutable","name":"success","nameLocation":"7686:7:26","nodeType":"VariableDeclaration","scope":32350,"src":"7681:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32335,"name":"bool","nodeType":"ElementaryTypeName","src":"7681:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32338,"mutability":"mutable","name":"returndata","nameLocation":"7708:10:26","nodeType":"VariableDeclaration","scope":32350,"src":"7695:23:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32337,"name":"bytes","nodeType":"ElementaryTypeName","src":"7695:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7680:39:26"},"returnParameters":{"id":32342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32341,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32350,"src":"7743:12:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32340,"name":"bytes","nodeType":"ElementaryTypeName","src":"7743:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7742:14:26"},"scope":32409,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":32376,"nodeType":"FunctionDefinition","src":"8150:306:26","nodes":[],"body":{"id":32375,"nodeType":"Block","src":"8321:135:26","nodes":[],"statements":[{"condition":{"id":32364,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32353,"src":"8335:7:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":32373,"nodeType":"Block","src":"8392:58:26","statements":[{"expression":{"arguments":[{"id":32369,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32355,"src":"8414:10:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32370,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32359,"src":"8426:12:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":32368,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32408,"src":"8406:7:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$__$","typeString":"function (bytes memory,function () view) view"}},"id":32371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8406:33:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32372,"nodeType":"ExpressionStatement","src":"8406:33:26"}]},"id":32374,"nodeType":"IfStatement","src":"8331:119:26","trueBody":{"id":32367,"nodeType":"Block","src":"8344:42:26","statements":[{"expression":{"id":32365,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32355,"src":"8365:10:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32363,"id":32366,"nodeType":"Return","src":"8358:17:26"}]}}]},"documentation":{"id":32351,"nodeType":"StructuredDocumentation","src":"7839:306:26","text":" @dev Same as {xref-Address-verifyCallResult-bool-bytes-}[`verifyCallResult`], but with a\n `customRevert` function as a fallback when `success` is `false`.\n Requirements:\n - `customRevert` must be a reverting function.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8159:16:26","parameters":{"id":32360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32353,"mutability":"mutable","name":"success","nameLocation":"8190:7:26","nodeType":"VariableDeclaration","scope":32376,"src":"8185:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32352,"name":"bool","nodeType":"ElementaryTypeName","src":"8185:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32355,"mutability":"mutable","name":"returndata","nameLocation":"8220:10:26","nodeType":"VariableDeclaration","scope":32376,"src":"8207:23:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32354,"name":"bytes","nodeType":"ElementaryTypeName","src":"8207:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32359,"mutability":"mutable","name":"customRevert","nameLocation":"8265:12:26","nodeType":"VariableDeclaration","scope":32376,"src":"8240:37:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":32358,"nodeType":"FunctionTypeName","parameterTypes":{"id":32356,"nodeType":"ParameterList","parameters":[],"src":"8248:2:26"},"returnParameterTypes":{"id":32357,"nodeType":"ParameterList","parameters":[],"src":"8265:0:26"},"src":"8240:37:26","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"8175:108:26"},"returnParameters":{"id":32363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32376,"src":"8307:12:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32361,"name":"bytes","nodeType":"ElementaryTypeName","src":"8307:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8306:14:26"},"scope":32409,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":32384,"nodeType":"FunctionDefinition","src":"8572:80:26","nodes":[],"body":{"id":32383,"nodeType":"Block","src":"8611:41:26","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":32380,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32040,"src":"8628:15:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":32381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8628:17:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32382,"nodeType":"RevertStatement","src":"8621:24:26"}]},"documentation":{"id":32377,"nodeType":"StructuredDocumentation","src":"8462:105:26","text":" @dev Default reverting function when no `customRevert` is provided in a function call."},"implemented":true,"kind":"function","modifiers":[],"name":"defaultRevert","nameLocation":"8581:13:26","parameters":{"id":32378,"nodeType":"ParameterList","parameters":[],"src":"8594:2:26"},"returnParameters":{"id":32379,"nodeType":"ParameterList","parameters":[],"src":"8611:0:26"},"scope":32409,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32408,"nodeType":"FunctionDefinition","src":"8658:583:26","nodes":[],"body":{"id":32407,"nodeType":"Block","src":"8752:489:26","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":32393,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32386,"src":"8828:10:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8839:6:26","memberName":"length","nodeType":"MemberAccess","src":"8828:17:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":32395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8848:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8828:21:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":32405,"nodeType":"Block","src":"9158:77:26","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":32399,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32390,"src":"9172:12:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":32400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9172:14:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32401,"nodeType":"ExpressionStatement","src":"9172:14:26"},{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":32402,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32040,"src":"9207:15:26","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":32403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9207:17:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32404,"nodeType":"RevertStatement","src":"9200:24:26"}]},"id":32406,"nodeType":"IfStatement","src":"8824:411:26","trueBody":{"id":32398,"nodeType":"Block","src":"8851:301:26","statements":[{"AST":{"nodeType":"YulBlock","src":"9009:133:26","statements":[{"nodeType":"YulVariableDeclaration","src":"9027:40:26","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"9056:10:26"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9050:5:26"},"nodeType":"YulFunctionCall","src":"9050:17:26"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"9031:15:26","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9095:2:26","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"9099:10:26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9091:3:26"},"nodeType":"YulFunctionCall","src":"9091:19:26"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9112:15:26"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9084:6:26"},"nodeType":"YulFunctionCall","src":"9084:44:26"},"nodeType":"YulExpressionStatement","src":"9084:44:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":32386,"isOffset":false,"isSlot":false,"src":"9056:10:26","valueSize":1},{"declaration":32386,"isOffset":false,"isSlot":false,"src":"9099:10:26","valueSize":1}],"id":32397,"nodeType":"InlineAssembly","src":"9000:142:26"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8667:7:26","parameters":{"id":32391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32386,"mutability":"mutable","name":"returndata","nameLocation":"8688:10:26","nodeType":"VariableDeclaration","scope":32408,"src":"8675:23:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32385,"name":"bytes","nodeType":"ElementaryTypeName","src":"8675:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32390,"mutability":"mutable","name":"customRevert","nameLocation":"8725:12:26","nodeType":"VariableDeclaration","scope":32408,"src":"8700:37:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":32389,"nodeType":"FunctionTypeName","parameterTypes":{"id":32387,"nodeType":"ParameterList","parameters":[],"src":"8708:2:26"},"returnParameterTypes":{"id":32388,"nodeType":"ParameterList","parameters":[],"src":"8725:0:26"},"src":"8700:37:26","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"8674:64:26"},"returnParameters":{"id":32392,"nodeType":"ParameterList","parameters":[],"src":"8752:0:26"},"scope":32409,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":32027,"nodeType":"StructuredDocumentation","src":"127:67:26","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"linearizedBaseContracts":[32409],"name":"Address","nameLocation":"203:7:26","scope":32410,"usedErrors":[32032,32037,32040]}],"license":"MIT"},"id":26} \ No newline at end of file +{"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":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220a5fdf1de74c88e9b12802044fbc08b0fae8241594f3329ce0e96d1d8bbaa66e964736f6c63430008130033","sourceMap":"195:9048:29:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220a5fdf1de74c88e9b12802044fbc08b0fae8241594f3329ce0e96d1d8bbaa66e964736f6c63430008130033","sourceMap":"195:9048:29:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":"Address"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","id":32839,"exportedSymbols":{"Address":[32838]},"nodeType":"SourceUnit","src":"101:9143:29","nodes":[{"id":32455,"nodeType":"PragmaDirective","src":"101:24:29","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":32838,"nodeType":"ContractDefinition","src":"195:9048:29","nodes":[{"id":32461,"nodeType":"ErrorDefinition","src":"316:50:29","nodes":[],"documentation":{"id":32457,"nodeType":"StructuredDocumentation","src":"217:94:29","text":" @dev The ETH balance of the account is not enough to perform the operation."},"errorSelector":"cd786059","name":"AddressInsufficientBalance","nameLocation":"322:26:29","parameters":{"id":32460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32459,"mutability":"mutable","name":"account","nameLocation":"357:7:29","nodeType":"VariableDeclaration","scope":32461,"src":"349:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32458,"name":"address","nodeType":"ElementaryTypeName","src":"349:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"348:17:29"}},{"id":32466,"nodeType":"ErrorDefinition","src":"452:39:29","nodes":[],"documentation":{"id":32462,"nodeType":"StructuredDocumentation","src":"372:75:29","text":" @dev There's no code at `target` (it is not a contract)."},"errorSelector":"9996b315","name":"AddressEmptyCode","nameLocation":"458:16:29","parameters":{"id":32465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32464,"mutability":"mutable","name":"target","nameLocation":"483:6:29","nodeType":"VariableDeclaration","scope":32466,"src":"475:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32463,"name":"address","nodeType":"ElementaryTypeName","src":"475:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"474:16:29"}},{"id":32469,"nodeType":"ErrorDefinition","src":"591:24:29","nodes":[],"documentation":{"id":32467,"nodeType":"StructuredDocumentation","src":"497:89:29","text":" @dev A call to an address target failed. The target may have reverted."},"errorSelector":"1425ea42","name":"FailedInnerCall","nameLocation":"597:15:29","parameters":{"id":32468,"nodeType":"ParameterList","parameters":[],"src":"612:2:29"}},{"id":32510,"nodeType":"FunctionDefinition","src":"1530:331:29","nodes":[],"body":{"id":32509,"nodeType":"Block","src":"1601:260:29","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":32479,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1623:4:29","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$32838","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$32838","typeString":"library Address"}],"id":32478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1615:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32477,"name":"address","nodeType":"ElementaryTypeName","src":"1615:7:29","typeDescriptions":{}}},"id":32480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1615:13:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1629:7:29","memberName":"balance","nodeType":"MemberAccess","src":"1615:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":32482,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32474,"src":"1639:6:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1615:30:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32492,"nodeType":"IfStatement","src":"1611:109:29","trueBody":{"id":32491,"nodeType":"Block","src":"1647:73:29","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":32487,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1703:4:29","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$32838","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$32838","typeString":"library Address"}],"id":32486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1695:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32485,"name":"address","nodeType":"ElementaryTypeName","src":"1695:7:29","typeDescriptions":{}}},"id":32488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1695:13:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":32484,"name":"AddressInsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32461,"src":"1668:26:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":32489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1668:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32490,"nodeType":"RevertStatement","src":"1661:48:29"}]}},{"assignments":[32494,null],"declarations":[{"constant":false,"id":32494,"mutability":"mutable","name":"success","nameLocation":"1736:7:29","nodeType":"VariableDeclaration","scope":32509,"src":"1731:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32493,"name":"bool","nodeType":"ElementaryTypeName","src":"1731:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":32501,"initialValue":{"arguments":[{"hexValue":"","id":32499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1779:2:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":32495,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32472,"src":"1749:9:29","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":32496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1759:4:29","memberName":"call","nodeType":"MemberAccess","src":"1749:14:29","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":32498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":32497,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32474,"src":"1771:6:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1749:29:29","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":32500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1749:33:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1730:52:29"},{"condition":{"id":32503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1796:8:29","subExpression":{"id":32502,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32494,"src":"1797:7:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32508,"nodeType":"IfStatement","src":"1792:63:29","trueBody":{"id":32507,"nodeType":"Block","src":"1806:49:29","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":32504,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32469,"src":"1827:15:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":32505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1827:17:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32506,"nodeType":"RevertStatement","src":"1820:24:29"}]}}]},"documentation":{"id":32470,"nodeType":"StructuredDocumentation","src":"621:904:29","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"1539:9:29","parameters":{"id":32475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32472,"mutability":"mutable","name":"recipient","nameLocation":"1565:9:29","nodeType":"VariableDeclaration","scope":32510,"src":"1549:25:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":32471,"name":"address","nodeType":"ElementaryTypeName","src":"1549:15:29","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":32474,"mutability":"mutable","name":"amount","nameLocation":"1584:6:29","nodeType":"VariableDeclaration","scope":32510,"src":"1576:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32473,"name":"uint256","nodeType":"ElementaryTypeName","src":"1576:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1548:43:29"},"returnParameters":{"id":32476,"nodeType":"ParameterList","parameters":[],"src":"1601:0:29"},"scope":32838,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32528,"nodeType":"FunctionDefinition","src":"2603:166:29","nodes":[],"body":{"id":32527,"nodeType":"Block","src":"2692:77:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":32521,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32513,"src":"2731:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32522,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32515,"src":"2739:4:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":32523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2745:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":32524,"name":"defaultRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32813,"src":"2748:13:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}],"id":32520,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[32570,32621],"referencedDeclaration":32621,"src":"2709:21:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,function () view) returns (bytes memory)"}},"id":32525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2709:53:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32519,"id":32526,"nodeType":"Return","src":"2702:60:29"}]},"documentation":{"id":32511,"nodeType":"StructuredDocumentation","src":"1867:731:29","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"2612:12:29","parameters":{"id":32516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32513,"mutability":"mutable","name":"target","nameLocation":"2633:6:29","nodeType":"VariableDeclaration","scope":32528,"src":"2625:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32512,"name":"address","nodeType":"ElementaryTypeName","src":"2625:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32515,"mutability":"mutable","name":"data","nameLocation":"2654:4:29","nodeType":"VariableDeclaration","scope":32528,"src":"2641:17:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32514,"name":"bytes","nodeType":"ElementaryTypeName","src":"2641:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2624:35:29"},"returnParameters":{"id":32519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32528,"src":"2678:12:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32517,"name":"bytes","nodeType":"ElementaryTypeName","src":"2678:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2677:14:29"},"scope":32838,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32550,"nodeType":"FunctionDefinition","src":"3077:234:29","nodes":[],"body":{"id":32549,"nodeType":"Block","src":"3235:76:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":32543,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32531,"src":"3274:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32544,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32533,"src":"3282:4:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":32545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3288:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":32546,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32537,"src":"3291:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":32542,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[32570,32621],"referencedDeclaration":32621,"src":"3252:21:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,function () view) returns (bytes memory)"}},"id":32547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3252:52:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32541,"id":32548,"nodeType":"Return","src":"3245:59:29"}]},"documentation":{"id":32529,"nodeType":"StructuredDocumentation","src":"2775:297:29","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with a\n `customRevert` function as a fallback when `target` reverts.\n Requirements:\n - `customRevert` must be a reverting function.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3086:12:29","parameters":{"id":32538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32531,"mutability":"mutable","name":"target","nameLocation":"3116:6:29","nodeType":"VariableDeclaration","scope":32550,"src":"3108:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32530,"name":"address","nodeType":"ElementaryTypeName","src":"3108:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32533,"mutability":"mutable","name":"data","nameLocation":"3145:4:29","nodeType":"VariableDeclaration","scope":32550,"src":"3132:17:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32532,"name":"bytes","nodeType":"ElementaryTypeName","src":"3132:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32537,"mutability":"mutable","name":"customRevert","nameLocation":"3184:12:29","nodeType":"VariableDeclaration","scope":32550,"src":"3159:37:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":32536,"nodeType":"FunctionTypeName","parameterTypes":{"id":32534,"nodeType":"ParameterList","parameters":[],"src":"3167:2:29"},"returnParameterTypes":{"id":32535,"nodeType":"ParameterList","parameters":[],"src":"3184:0:29"},"src":"3159:37:29","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"3098:104:29"},"returnParameters":{"id":32541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32550,"src":"3221:12:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32539,"name":"bytes","nodeType":"ElementaryTypeName","src":"3221:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3220:14:29"},"scope":32838,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32570,"nodeType":"FunctionDefinition","src":"3673:194:29","nodes":[],"body":{"id":32569,"nodeType":"Block","src":"3786:81:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":32563,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32553,"src":"3825:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32564,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32555,"src":"3833:4:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32565,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32557,"src":"3839:5:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32566,"name":"defaultRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32813,"src":"3846:13:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}],"id":32562,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[32570,32621],"referencedDeclaration":32621,"src":"3803:21:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,function () view) returns (bytes memory)"}},"id":32567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3803:57:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32561,"id":32568,"nodeType":"Return","src":"3796:64:29"}]},"documentation":{"id":32551,"nodeType":"StructuredDocumentation","src":"3317:351:29","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"3682:21:29","parameters":{"id":32558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32553,"mutability":"mutable","name":"target","nameLocation":"3712:6:29","nodeType":"VariableDeclaration","scope":32570,"src":"3704:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32552,"name":"address","nodeType":"ElementaryTypeName","src":"3704:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32555,"mutability":"mutable","name":"data","nameLocation":"3733:4:29","nodeType":"VariableDeclaration","scope":32570,"src":"3720:17:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32554,"name":"bytes","nodeType":"ElementaryTypeName","src":"3720:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32557,"mutability":"mutable","name":"value","nameLocation":"3747:5:29","nodeType":"VariableDeclaration","scope":32570,"src":"3739:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32556,"name":"uint256","nodeType":"ElementaryTypeName","src":"3739:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3703:50:29"},"returnParameters":{"id":32561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32570,"src":"3772:12:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32559,"name":"bytes","nodeType":"ElementaryTypeName","src":"3772:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3771:14:29"},"scope":32838,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32621,"nodeType":"FunctionDefinition","src":"4215:483:29","nodes":[],"body":{"id":32620,"nodeType":"Block","src":"4405:293:29","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":32588,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4427:4:29","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$32838","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$32838","typeString":"library Address"}],"id":32587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4419:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32586,"name":"address","nodeType":"ElementaryTypeName","src":"4419:7:29","typeDescriptions":{}}},"id":32589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4419:13:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4433:7:29","memberName":"balance","nodeType":"MemberAccess","src":"4419:21:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":32591,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32577,"src":"4443:5:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4419:29:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32601,"nodeType":"IfStatement","src":"4415:108:29","trueBody":{"id":32600,"nodeType":"Block","src":"4450:73:29","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":32596,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4506:4:29","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$32838","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$32838","typeString":"library Address"}],"id":32595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4498:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32594,"name":"address","nodeType":"ElementaryTypeName","src":"4498:7:29","typeDescriptions":{}}},"id":32597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4498:13:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":32593,"name":"AddressInsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32461,"src":"4471:26:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":32598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4471:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32599,"nodeType":"RevertStatement","src":"4464:48:29"}]}},{"assignments":[32603,32605],"declarations":[{"constant":false,"id":32603,"mutability":"mutable","name":"success","nameLocation":"4538:7:29","nodeType":"VariableDeclaration","scope":32620,"src":"4533:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32602,"name":"bool","nodeType":"ElementaryTypeName","src":"4533:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32605,"mutability":"mutable","name":"returndata","nameLocation":"4560:10:29","nodeType":"VariableDeclaration","scope":32620,"src":"4547:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32604,"name":"bytes","nodeType":"ElementaryTypeName","src":"4547:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":32612,"initialValue":{"arguments":[{"id":32610,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32575,"src":"4600:4:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":32606,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32573,"src":"4574:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4581:4:29","memberName":"call","nodeType":"MemberAccess","src":"4574:11:29","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":32609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":32608,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32577,"src":"4593:5:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4574:25:29","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":32611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4574:31:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4532:73:29"},{"expression":{"arguments":[{"id":32614,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32573,"src":"4649:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32615,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32603,"src":"4657:7:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":32616,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32605,"src":"4666:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32617,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32581,"src":"4678:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":32613,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32762,"src":"4622:26:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,function () view) view returns (bytes memory)"}},"id":32618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4622:69:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32585,"id":32619,"nodeType":"Return","src":"4615:76:29"}]},"documentation":{"id":32571,"nodeType":"StructuredDocumentation","src":"3873:337:29","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with a `customRevert` function as a fallback revert reason when `target` reverts.\n Requirements:\n - `customRevert` must be a reverting function.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4224:21:29","parameters":{"id":32582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32573,"mutability":"mutable","name":"target","nameLocation":"4263:6:29","nodeType":"VariableDeclaration","scope":32621,"src":"4255:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32572,"name":"address","nodeType":"ElementaryTypeName","src":"4255:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32575,"mutability":"mutable","name":"data","nameLocation":"4292:4:29","nodeType":"VariableDeclaration","scope":32621,"src":"4279:17:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32574,"name":"bytes","nodeType":"ElementaryTypeName","src":"4279:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32577,"mutability":"mutable","name":"value","nameLocation":"4314:5:29","nodeType":"VariableDeclaration","scope":32621,"src":"4306:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32576,"name":"uint256","nodeType":"ElementaryTypeName","src":"4306:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32581,"mutability":"mutable","name":"customRevert","nameLocation":"4354:12:29","nodeType":"VariableDeclaration","scope":32621,"src":"4329:37:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":32580,"nodeType":"FunctionTypeName","parameterTypes":{"id":32578,"nodeType":"ParameterList","parameters":[],"src":"4337:2:29"},"returnParameterTypes":{"id":32579,"nodeType":"ParameterList","parameters":[],"src":"4354:0:29"},"src":"4329:37:29","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"4245:127:29"},"returnParameters":{"id":32585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32621,"src":"4391:12:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32583,"name":"bytes","nodeType":"ElementaryTypeName","src":"4391:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4390:14:29"},"scope":32838,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32638,"nodeType":"FunctionDefinition","src":"4875:171:29","nodes":[],"body":{"id":32637,"nodeType":"Block","src":"4975:71:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":32632,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32624,"src":"5011:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32633,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32626,"src":"5019:4:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32634,"name":"defaultRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32813,"src":"5025:13:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}],"id":32631,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[32638,32669],"referencedDeclaration":32669,"src":"4992:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,function () view) view returns (bytes memory)"}},"id":32635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4992:47:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32630,"id":32636,"nodeType":"Return","src":"4985:54:29"}]},"documentation":{"id":32622,"nodeType":"StructuredDocumentation","src":"4704:166:29","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"4884:18:29","parameters":{"id":32627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32624,"mutability":"mutable","name":"target","nameLocation":"4911:6:29","nodeType":"VariableDeclaration","scope":32638,"src":"4903:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32623,"name":"address","nodeType":"ElementaryTypeName","src":"4903:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32626,"mutability":"mutable","name":"data","nameLocation":"4932:4:29","nodeType":"VariableDeclaration","scope":32638,"src":"4919:17:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32625,"name":"bytes","nodeType":"ElementaryTypeName","src":"4919:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4902:35:29"},"returnParameters":{"id":32630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32638,"src":"4961:12:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32628,"name":"bytes","nodeType":"ElementaryTypeName","src":"4961:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4960:14:29"},"scope":32838,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":32669,"nodeType":"FunctionDefinition","src":"5230:337:29","nodes":[],"body":{"id":32668,"nodeType":"Block","src":"5399:168:29","nodes":[],"statements":[{"assignments":[32653,32655],"declarations":[{"constant":false,"id":32653,"mutability":"mutable","name":"success","nameLocation":"5415:7:29","nodeType":"VariableDeclaration","scope":32668,"src":"5410:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32652,"name":"bool","nodeType":"ElementaryTypeName","src":"5410:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32655,"mutability":"mutable","name":"returndata","nameLocation":"5437:10:29","nodeType":"VariableDeclaration","scope":32668,"src":"5424:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32654,"name":"bytes","nodeType":"ElementaryTypeName","src":"5424:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":32660,"initialValue":{"arguments":[{"id":32658,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32643,"src":"5469:4:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":32656,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32641,"src":"5451:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5458:10:29","memberName":"staticcall","nodeType":"MemberAccess","src":"5451:17:29","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":32659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5409:65:29"},{"expression":{"arguments":[{"id":32662,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32641,"src":"5518:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32663,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32653,"src":"5526:7:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":32664,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32655,"src":"5535:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32665,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32647,"src":"5547:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":32661,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32762,"src":"5491:26:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,function () view) view returns (bytes memory)"}},"id":32666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5491:69:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32651,"id":32667,"nodeType":"Return","src":"5484:76:29"}]},"documentation":{"id":32639,"nodeType":"StructuredDocumentation","src":"5052:173:29","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5239:18:29","parameters":{"id":32648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32641,"mutability":"mutable","name":"target","nameLocation":"5275:6:29","nodeType":"VariableDeclaration","scope":32669,"src":"5267:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32640,"name":"address","nodeType":"ElementaryTypeName","src":"5267:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32643,"mutability":"mutable","name":"data","nameLocation":"5304:4:29","nodeType":"VariableDeclaration","scope":32669,"src":"5291:17:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32642,"name":"bytes","nodeType":"ElementaryTypeName","src":"5291:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32647,"mutability":"mutable","name":"customRevert","nameLocation":"5343:12:29","nodeType":"VariableDeclaration","scope":32669,"src":"5318:37:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":32646,"nodeType":"FunctionTypeName","parameterTypes":{"id":32644,"nodeType":"ParameterList","parameters":[],"src":"5326:2:29"},"returnParameterTypes":{"id":32645,"nodeType":"ParameterList","parameters":[],"src":"5343:0:29"},"src":"5318:37:29","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"5257:104:29"},"returnParameters":{"id":32651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32650,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32669,"src":"5385:12:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32649,"name":"bytes","nodeType":"ElementaryTypeName","src":"5385:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5384:14:29"},"scope":32838,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":32686,"nodeType":"FunctionDefinition","src":"5746:170:29","nodes":[],"body":{"id":32685,"nodeType":"Block","src":"5843:73:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":32680,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32672,"src":"5881:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32681,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32674,"src":"5889:4:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32682,"name":"defaultRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32813,"src":"5895:13:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}],"id":32679,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[32686,32717],"referencedDeclaration":32717,"src":"5860:20:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,function () view) returns (bytes memory)"}},"id":32683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5860:49:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32678,"id":32684,"nodeType":"Return","src":"5853:56:29"}]},"documentation":{"id":32670,"nodeType":"StructuredDocumentation","src":"5573:168:29","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"5755:20:29","parameters":{"id":32675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32672,"mutability":"mutable","name":"target","nameLocation":"5784:6:29","nodeType":"VariableDeclaration","scope":32686,"src":"5776:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32671,"name":"address","nodeType":"ElementaryTypeName","src":"5776:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32674,"mutability":"mutable","name":"data","nameLocation":"5805:4:29","nodeType":"VariableDeclaration","scope":32686,"src":"5792:17:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32673,"name":"bytes","nodeType":"ElementaryTypeName","src":"5792:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5775:35:29"},"returnParameters":{"id":32678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32686,"src":"5829:12:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32676,"name":"bytes","nodeType":"ElementaryTypeName","src":"5829:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5828:14:29"},"scope":32838,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32717,"nodeType":"FunctionDefinition","src":"6102:336:29","nodes":[],"body":{"id":32716,"nodeType":"Block","src":"6268:170:29","nodes":[],"statements":[{"assignments":[32701,32703],"declarations":[{"constant":false,"id":32701,"mutability":"mutable","name":"success","nameLocation":"6284:7:29","nodeType":"VariableDeclaration","scope":32716,"src":"6279:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32700,"name":"bool","nodeType":"ElementaryTypeName","src":"6279:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32703,"mutability":"mutable","name":"returndata","nameLocation":"6306:10:29","nodeType":"VariableDeclaration","scope":32716,"src":"6293:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32702,"name":"bytes","nodeType":"ElementaryTypeName","src":"6293:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":32708,"initialValue":{"arguments":[{"id":32706,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32691,"src":"6340:4:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":32704,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32689,"src":"6320:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6327:12:29","memberName":"delegatecall","nodeType":"MemberAccess","src":"6320:19:29","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":32707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6320:25:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6278:67:29"},{"expression":{"arguments":[{"id":32710,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32689,"src":"6389:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32711,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32701,"src":"6397:7:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":32712,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32703,"src":"6406:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32713,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32695,"src":"6418:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":32709,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32762,"src":"6362:26:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,function () view) view returns (bytes memory)"}},"id":32714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6362:69:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32699,"id":32715,"nodeType":"Return","src":"6355:76:29"}]},"documentation":{"id":32687,"nodeType":"StructuredDocumentation","src":"5922:175:29","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6111:20:29","parameters":{"id":32696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32689,"mutability":"mutable","name":"target","nameLocation":"6149:6:29","nodeType":"VariableDeclaration","scope":32717,"src":"6141:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32688,"name":"address","nodeType":"ElementaryTypeName","src":"6141:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32691,"mutability":"mutable","name":"data","nameLocation":"6178:4:29","nodeType":"VariableDeclaration","scope":32717,"src":"6165:17:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32690,"name":"bytes","nodeType":"ElementaryTypeName","src":"6165:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32695,"mutability":"mutable","name":"customRevert","nameLocation":"6217:12:29","nodeType":"VariableDeclaration","scope":32717,"src":"6192:37:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":32694,"nodeType":"FunctionTypeName","parameterTypes":{"id":32692,"nodeType":"ParameterList","parameters":[],"src":"6200:2:29"},"returnParameterTypes":{"id":32693,"nodeType":"ParameterList","parameters":[],"src":"6217:0:29"},"src":"6192:37:29","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"6131:104:29"},"returnParameters":{"id":32699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32717,"src":"6254:12:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32697,"name":"bytes","nodeType":"ElementaryTypeName","src":"6254:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6253:14:29"},"scope":32838,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32762,"nodeType":"FunctionDefinition","src":"6737:692:29","nodes":[],"body":{"id":32761,"nodeType":"Block","src":"6942:487:29","nodes":[],"statements":[{"condition":{"id":32733,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32722,"src":"6956:7:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":32759,"nodeType":"Block","src":"7365:58:29","statements":[{"expression":{"arguments":[{"id":32755,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32724,"src":"7387:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32756,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32728,"src":"7399:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":32754,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32837,"src":"7379:7:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$__$","typeString":"function (bytes memory,function () view) view"}},"id":32757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7379:33:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32758,"nodeType":"ExpressionStatement","src":"7379:33:29"}]},"id":32760,"nodeType":"IfStatement","src":"6952:471:29","trueBody":{"id":32753,"nodeType":"Block","src":"6965:394:29","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":32734,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32724,"src":"6983:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6994:6:29","memberName":"length","nodeType":"MemberAccess","src":"6983:17:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":32736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7004:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6983:22:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32750,"nodeType":"IfStatement","src":"6979:339:29","trueBody":{"id":32749,"nodeType":"Block","src":"7007:311:29","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":32738,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32720,"src":"7207:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7214:4:29","memberName":"code","nodeType":"MemberAccess","src":"7207:11:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7219:6:29","memberName":"length","nodeType":"MemberAccess","src":"7207:18:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":32741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7229:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7207:23:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32748,"nodeType":"IfStatement","src":"7203:101:29","trueBody":{"id":32747,"nodeType":"Block","src":"7232:72:29","statements":[{"errorCall":{"arguments":[{"id":32744,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32720,"src":"7278:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":32743,"name":"AddressEmptyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32466,"src":"7261:16:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":32745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7261:24:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32746,"nodeType":"RevertStatement","src":"7254:31:29"}]}}]}},{"expression":{"id":32751,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32724,"src":"7338:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32732,"id":32752,"nodeType":"Return","src":"7331:17:29"}]}}]},"documentation":{"id":32718,"nodeType":"StructuredDocumentation","src":"6444:288:29","text":" @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided `customRevert`) in case of unsuccessful call or if target was not a contract.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"6746:26:29","parameters":{"id":32729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32720,"mutability":"mutable","name":"target","nameLocation":"6790:6:29","nodeType":"VariableDeclaration","scope":32762,"src":"6782:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32719,"name":"address","nodeType":"ElementaryTypeName","src":"6782:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32722,"mutability":"mutable","name":"success","nameLocation":"6811:7:29","nodeType":"VariableDeclaration","scope":32762,"src":"6806:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32721,"name":"bool","nodeType":"ElementaryTypeName","src":"6806:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32724,"mutability":"mutable","name":"returndata","nameLocation":"6841:10:29","nodeType":"VariableDeclaration","scope":32762,"src":"6828:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32723,"name":"bytes","nodeType":"ElementaryTypeName","src":"6828:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32728,"mutability":"mutable","name":"customRevert","nameLocation":"6886:12:29","nodeType":"VariableDeclaration","scope":32762,"src":"6861:37:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":32727,"nodeType":"FunctionTypeName","parameterTypes":{"id":32725,"nodeType":"ParameterList","parameters":[],"src":"6869:2:29"},"returnParameterTypes":{"id":32726,"nodeType":"ParameterList","parameters":[],"src":"6886:0:29"},"src":"6861:37:29","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"6772:132:29"},"returnParameters":{"id":32732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32731,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32762,"src":"6928:12:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32730,"name":"bytes","nodeType":"ElementaryTypeName","src":"6928:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6927:14:29"},"scope":32838,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":32779,"nodeType":"FunctionDefinition","src":"7655:178:29","nodes":[],"body":{"id":32778,"nodeType":"Block","src":"7757:76:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":32773,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32765,"src":"7791:7:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":32774,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32767,"src":"7800:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32775,"name":"defaultRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32813,"src":"7812:13:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_pure$__$returns$__$","typeString":"function () pure"}],"id":32772,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[32779,32805],"referencedDeclaration":32805,"src":"7774:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bool_$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,function () view) view returns (bytes memory)"}},"id":32776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7774:52:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32771,"id":32777,"nodeType":"Return","src":"7767:59:29"}]},"documentation":{"id":32763,"nodeType":"StructuredDocumentation","src":"7435:215:29","text":" @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or with a default revert error.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7664:16:29","parameters":{"id":32768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32765,"mutability":"mutable","name":"success","nameLocation":"7686:7:29","nodeType":"VariableDeclaration","scope":32779,"src":"7681:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32764,"name":"bool","nodeType":"ElementaryTypeName","src":"7681:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32767,"mutability":"mutable","name":"returndata","nameLocation":"7708:10:29","nodeType":"VariableDeclaration","scope":32779,"src":"7695:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32766,"name":"bytes","nodeType":"ElementaryTypeName","src":"7695:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7680:39:29"},"returnParameters":{"id":32771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32770,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32779,"src":"7743:12:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32769,"name":"bytes","nodeType":"ElementaryTypeName","src":"7743:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7742:14:29"},"scope":32838,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":32805,"nodeType":"FunctionDefinition","src":"8150:306:29","nodes":[],"body":{"id":32804,"nodeType":"Block","src":"8321:135:29","nodes":[],"statements":[{"condition":{"id":32793,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32782,"src":"8335:7:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":32802,"nodeType":"Block","src":"8392:58:29","statements":[{"expression":{"arguments":[{"id":32798,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32784,"src":"8414:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":32799,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32788,"src":"8426:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}],"id":32797,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32837,"src":"8406:7:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_function_internal_view$__$returns$__$_$returns$__$","typeString":"function (bytes memory,function () view) view"}},"id":32800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8406:33:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32801,"nodeType":"ExpressionStatement","src":"8406:33:29"}]},"id":32803,"nodeType":"IfStatement","src":"8331:119:29","trueBody":{"id":32796,"nodeType":"Block","src":"8344:42:29","statements":[{"expression":{"id":32794,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32784,"src":"8365:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":32792,"id":32795,"nodeType":"Return","src":"8358:17:29"}]}}]},"documentation":{"id":32780,"nodeType":"StructuredDocumentation","src":"7839:306:29","text":" @dev Same as {xref-Address-verifyCallResult-bool-bytes-}[`verifyCallResult`], but with a\n `customRevert` function as a fallback when `success` is `false`.\n Requirements:\n - `customRevert` must be a reverting function.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8159:16:29","parameters":{"id":32789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32782,"mutability":"mutable","name":"success","nameLocation":"8190:7:29","nodeType":"VariableDeclaration","scope":32805,"src":"8185:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32781,"name":"bool","nodeType":"ElementaryTypeName","src":"8185:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32784,"mutability":"mutable","name":"returndata","nameLocation":"8220:10:29","nodeType":"VariableDeclaration","scope":32805,"src":"8207:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32783,"name":"bytes","nodeType":"ElementaryTypeName","src":"8207:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32788,"mutability":"mutable","name":"customRevert","nameLocation":"8265:12:29","nodeType":"VariableDeclaration","scope":32805,"src":"8240:37:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":32787,"nodeType":"FunctionTypeName","parameterTypes":{"id":32785,"nodeType":"ParameterList","parameters":[],"src":"8248:2:29"},"returnParameterTypes":{"id":32786,"nodeType":"ParameterList","parameters":[],"src":"8265:0:29"},"src":"8240:37:29","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"8175:108:29"},"returnParameters":{"id":32792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32805,"src":"8307:12:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32790,"name":"bytes","nodeType":"ElementaryTypeName","src":"8307:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8306:14:29"},"scope":32838,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":32813,"nodeType":"FunctionDefinition","src":"8572:80:29","nodes":[],"body":{"id":32812,"nodeType":"Block","src":"8611:41:29","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":32809,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32469,"src":"8628:15:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":32810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8628:17:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32811,"nodeType":"RevertStatement","src":"8621:24:29"}]},"documentation":{"id":32806,"nodeType":"StructuredDocumentation","src":"8462:105:29","text":" @dev Default reverting function when no `customRevert` is provided in a function call."},"implemented":true,"kind":"function","modifiers":[],"name":"defaultRevert","nameLocation":"8581:13:29","parameters":{"id":32807,"nodeType":"ParameterList","parameters":[],"src":"8594:2:29"},"returnParameters":{"id":32808,"nodeType":"ParameterList","parameters":[],"src":"8611:0:29"},"scope":32838,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32837,"nodeType":"FunctionDefinition","src":"8658:583:29","nodes":[],"body":{"id":32836,"nodeType":"Block","src":"8752:489:29","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":32822,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32815,"src":"8828:10:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8839:6:29","memberName":"length","nodeType":"MemberAccess","src":"8828:17:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":32824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8848:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8828:21:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":32834,"nodeType":"Block","src":"9158:77:29","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":32828,"name":"customRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32819,"src":"9172:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":32829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9172:14:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32830,"nodeType":"ExpressionStatement","src":"9172:14:29"},{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":32831,"name":"FailedInnerCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32469,"src":"9207:15:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":32832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9207:17:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32833,"nodeType":"RevertStatement","src":"9200:24:29"}]},"id":32835,"nodeType":"IfStatement","src":"8824:411:29","trueBody":{"id":32827,"nodeType":"Block","src":"8851:301:29","statements":[{"AST":{"nodeType":"YulBlock","src":"9009:133:29","statements":[{"nodeType":"YulVariableDeclaration","src":"9027:40:29","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"9056:10:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9050:5:29"},"nodeType":"YulFunctionCall","src":"9050:17:29"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"9031:15:29","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9095:2:29","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"9099:10:29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9091:3:29"},"nodeType":"YulFunctionCall","src":"9091:19:29"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9112:15:29"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9084:6:29"},"nodeType":"YulFunctionCall","src":"9084:44:29"},"nodeType":"YulExpressionStatement","src":"9084:44:29"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":32815,"isOffset":false,"isSlot":false,"src":"9056:10:29","valueSize":1},{"declaration":32815,"isOffset":false,"isSlot":false,"src":"9099:10:29","valueSize":1}],"id":32826,"nodeType":"InlineAssembly","src":"9000:142:29"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8667:7:29","parameters":{"id":32820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32815,"mutability":"mutable","name":"returndata","nameLocation":"8688:10:29","nodeType":"VariableDeclaration","scope":32837,"src":"8675:23:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32814,"name":"bytes","nodeType":"ElementaryTypeName","src":"8675:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":32819,"mutability":"mutable","name":"customRevert","nameLocation":"8725:12:29","nodeType":"VariableDeclaration","scope":32837,"src":"8700:37:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"typeName":{"id":32818,"nodeType":"FunctionTypeName","parameterTypes":{"id":32816,"nodeType":"ParameterList","parameters":[],"src":"8708:2:29"},"returnParameterTypes":{"id":32817,"nodeType":"ParameterList","parameters":[],"src":"8725:0:29"},"src":"8700:37:29","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"},"visibility":"internal"},"visibility":"internal"}],"src":"8674:64:29"},"returnParameters":{"id":32821,"nodeType":"ParameterList","parameters":[],"src":"8752:0:29"},"scope":32838,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":32456,"nodeType":"StructuredDocumentation","src":"127:67:29","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"linearizedBaseContracts":[32838],"name":"Address","nameLocation":"203:7:29","scope":32839,"usedErrors":[32461,32466,32469]}],"license":"MIT"},"id":29} \ No newline at end of file diff --git a/.out/BottomUpRouterFacet.sol/BottomUpRouterFacet.json b/.out/BottomUpRouterFacet.sol/BottomUpRouterFacet.json new file mode 100644 index 000000000..698f69bee --- /dev/null +++ b/.out/BottomUpRouterFacet.sol/BottomUpRouterFacet.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addBottomUpMsgBatchSignature","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"membershipProof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"membershipRootHash","type":"bytes32","internalType":"bytes32"},{"name":"membershipWeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pruneBottomUpMsgBatches","inputs":[{"name":"newRetentionHeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"BatchAlreadyExists","inputs":[]},{"type":"error","name":"BatchNotCreated","inputs":[]},{"type":"error","name":"BatchWithNoMessages","inputs":[]},{"type":"error","name":"FailedAddIncompleteQuorum","inputs":[]},{"type":"error","name":"FailedAddSignatory","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"FailedRemoveIncompleteQuorum","inputs":[]},{"type":"error","name":"InvalidActorAddress","inputs":[]},{"type":"error","name":"InvalidBatchEpoch","inputs":[]},{"type":"error","name":"InvalidBatchSource","inputs":[]},{"type":"error","name":"InvalidCrossMsgDstSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgNonce","inputs":[]},{"type":"error","name":"InvalidRetentionHeight","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"MaxMsgsPerBatchExceeded","inputs":[]},{"type":"error","name":"NotAuthorized","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"NotEnoughSubnetCircSupply","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]},{"type":"error","name":"NotSystemActor","inputs":[]},{"type":"error","name":"QuorumAlreadyProcessed","inputs":[]},{"type":"error","name":"SignatureReplay","inputs":[]},{"type":"error","name":"SubnetNotFound","inputs":[]},{"type":"error","name":"ZeroMembershipWeight","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657612a56908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630bed761514610b845780630db0f77c1461070357806332e7661f1461027b5763bacc656d1461004857600080fd5b346102765760208060031936011261027657600435906100666126bd565b6012545b8281106101b157506012548083111561019f575b82811061008c576012839055005b80600052601382526040600020906000825560006004600193828582015582600282015582600382015501556016835260406000208054906000815581610179575b505080600052604060002060405180828682945493848152019060005286600020926000905b8789828410610160575050505061010d9250038261104c565b8051908360005b83811061012557505050500161007e565b600085815260178852604090206001600160a01b036101448386611899565b51166000528752610158604060002061182d565b018490610114565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b82811061019357506100ce565b60008155018390610186565b604051636819a3a960e01b8152600490fd5b806000526009908183526040600020916000835560036001936101d5858201611799565b60006002820155019081549060008355816101f4575b5050500161006a565b600d9282840292848404036102605760005285600020918201915b82811061021c57506101eb565b806102278592611876565b61023360048201611876565b6000600882015560008382015561024c600a820161182d565b6000600b8201556000600c8201550161020f565b634e487b7160e01b600052601160045260246000fd5b600080fd5b346102765760031960603682011261027657600435906001600160401b038211610276576060908236030112610276576102b36126bd565b6102c86102c33683600401611445565b612679565b601e5480156106ed57602482013506158015906106df575b6106cd57602481013560005260096020526002604060002001546106bb576040516020808201526103286103176004840180611617565b6060604084015260a083019061165f565b6024830135606083015281610343604485018560040161162b565b603f93919319838303016080840152808252602082019060208160051b84010192856000915b8383106105b4578987610385818903601f19810183528261104c565b6020815191012060ff601c5416916012546024820135106105a2576044359283156105905780840293840403610260576103c2602482013561285c565b1561057e5760405160a08101908082106001600160401b0383111761054b5761045f9361045592604052815260046020820160243581526064604084019704875260608301600081526080840191600083526024870135600052601360205260406000209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611445565b6020810190815160005260096020526040600020908051926001600160401b038451166001600160401b03198454161783556020858401940151938451946001600160401b03861161054b576020906104b887846117bf565b019060005260206000208660005b8781106105615750835160028701556040850180515190600388019060005b8381106104ee57005b6104f9818351611899565b51908354600160401b81101561054b5786810180865581101561053557869261052f9186600052600d60206000209102016118ad565b016104e5565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b83516001600160a01b0316818401556020909301928891016104c6565b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b919395509193601f198282030186526105cd8784611617565b90813560de19833603018112156102765782602092836106a48160019781960194604085526106316106146106028880611617565b60e06040890152610120880190611721565b61062084890189611617565b878203603f19016060890152611721565b604087013560808701526001600160401b0361064f606089016110fb565b1660a08701526106956001600160e01b031961066d60808a016112cf565b169160c0928389015261068360a08a018a6116cf565b898303603f190160e08b015290611700565b960135610100860152016112e4565b151591015298019601930190918795969492610369565b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060248101354311156102e0565b634e487b7160e01b600052601260045260246000fd5b34610276576080366003190112610276576024356001600160401b03811161027657366023820112156102765780600401359061073f8261106d565b9161074d604051938461104c565b8083526024602084019160051b8301019136831161027657602401905b828210610b7457836064356001600160401b0381116102765761079190369060040161109f565b601254600435106105a257600435600052600960205260026040600020015415610b625760043560005260136020526040600020916107d1828454612759565b506004819492941015610b4c57610b3a5760043560009081526016602090815260408083206001600160a01b0387168452600101909152902054610b2857604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b0382118383101761054b57608090826040528351902092019182526020815261086381611031565b51902093600181015494936000945b84518610156108bf576108858686611899565b5190818110156108ae5760005260205260406000205b9460001981146102605760010194610872565b90600052602052604060002061089b565b8603610b065760043560005260166020526108e660018060a01b03821660406000206128d9565b15610af457600435600052601760205260406000209060018060a01b0316600052602052604060002082516001600160401b03811161054b5761092982546117f3565b601f8111610ab7575b506020601f8211600114610a515781929394600092610a46575b50508160011b916000199060031b1c19161790555b600381016109726044358254611525565b808255600283015481101561098357005b600483018054909160ff8216610a04575060ff191660011790556109a8600435612936565b156109f2577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494916109ec60ff60115416915492546040519384936004359085612734565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc916109ec60ff601154169154926040519384936004359085612734565b01519050848061094c565b601f198216908360005260206000209160005b818110610a9f57509583600195969710610a86575b505050811b019055610961565b015160001960f88460031b161c19169055848080610a79565b9192602060018192868b015181550194019201610a64565b610ae490836000526020600020601f840160051c81019160208510610aea575b601f0160051c0190611782565b84610932565b9091508190610ad7565b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b60405163a88f96f160e01b8152600490fd5b813581526020918201910161076a565b34610276576003196020368201811361027657600435916001600160401b03908184116102765760608460040191853603011261027657610bce36610bc983806110e6565b611123565b9073__$a0fe38a9a81205afccc10810b09a4d3f45$__60405190632cff562160e11b8252856004830152858280610c0a602497888301906111da565b0381845af4918215610fad57600092610ffa575b506001600160a01b03913390831603610fe557610c3e6102c33685611445565b3315610fd35760405191610c5183611031565b85601954168352604051809188601a54928381520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8b838310610fb95750505050509181610cb3610cda9593600095038261104c565b88830152604051808095819463aa5106cb60e01b83526040600484015260448301906111da565b338983015203915af48015610fad57600090610ee2575b610cfb9150611d63565b919015610ed1576000956044019086610d1483836114c1565b600091505b808210610e80575050610d2c9088611525565b60028401805491808310610e6e578203918211610e5957610d6a9360049593610d6293610d5993556114c1565b94909201611532565b9236916112f1565b9081519160005b838110610e3c575050505060ff602b54841c16610d8a57005b6040519083820192632643057b60e11b84524382840152856044840152600060648401526064835260a083019083821090821117610e275780604052854710610e155750506109f09360009283925191335af13d15610e0c573d610ded81611084565b90610dfb604051928361104c565b8152600081933d92013e5b336115b7565b60609150610e06565b63cd78605960e01b81523060a4840152fd5b50634e487b7160e01b60009081526041600452fd5b80610e53610e4c60019385611899565b5185612001565b01610d71565b85634e487b7160e01b60005260116004526000fd5b604051631d36ca1560e21b8152600490fd5b9098610ec960019160c0610eb6610eb0610ebe8f986040610eb6610eb08c8f8f90610eaa916114c1565b906114f6565b80611510565b013590611525565b97610eaa8b8b6114c1565b990190610d19565b6040516208ed5b60e31b8152600490fd5b503d806000833e610ef3818361104c565b8101908581830312610276578051908582116102765701906040828203126102765760405191610f2283611031565b80518681168103610276578352868101519086821161027657019080601f83011215610276578151610f538161106d565b92610f61604051948561104c565b818452888085019260051b8201019283116102765788809101915b838310610f955750905083610cfb949392500152610cf1565b8190610fa0846111c6565b8152019101908890610f7c565b6040513d6000823e3d90fd5b845482168652909401936001938401939190910190610c92565b6040516370e4510960e01b8152600490fd5b60405160016201ad9360e61b03198152600490fd5b9091508581813d831161102a575b611012818361104c565b8101031261027657611023906111c6565b9087610c1e565b503d611008565b604081019081106001600160401b0382111761054b57604052565b90601f801991011681019081106001600160401b0382111761054b57604052565b6001600160401b03811161054b5760051b60200190565b6001600160401b03811161054b57601f01601f191660200190565b81601f82011215610276578035906110b682611084565b926110c4604051948561104c565b8284526020838301011161027657816000926020809301838601378301015290565b903590603e1981360301821215610276570190565b35906001600160401b038216820361027657565b35906001600160a01b038216820361027657565b9190604083820312610276576040519261113c84611031565b83611146826110fb565b815260209182810135906001600160401b03821161027657019280601f850112156102765783356111768161106d565b94611184604051968761104c565b818652848087019260051b8201019283116102765784809101915b8383106111ae57505050500152565b81906111b98461110f565b815201910190849061119f565b51906001600160a01b038216820361027657565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611218575050505090565b83516001600160a01b03168552938101939281019260010161120a565b359060ff8216820361027657565b9190604083820312610276576040519261125c84611031565b838135916001600160401b0392838111610276578461127c918301611123565b8252602081013590838211610276570160408185031261027657604051936112a385611031565b6112ac82611235565b85526020820135938411610276576020936112c7920161109f565b828401520152565b35906001600160e01b03198216820361027657565b3590811515820361027657565b9291926112fd8261106d565b9160409061130d8251948561104c565b839581855260208095019160051b8401938185116102765780925b8584106113385750505050505050565b6001600160401b0390843582811161027657830190868286031261027657865161136181611031565b82358481116102765783019260e094858589031261027657895195860186811082821117611430578a52843581811161027657886113a0918701611243565b86528b85013581811161027657886113b9918701611243565b8c870152898501358a87015260606113d28187016110fb565b9087015260806113e38187016112cf565b9087015260a09182860135918211610276578c96866114219461140b8c8b9a968b970161109f565b9083015260c080910135908201528452016112e4565b83820152815201930192611328565b60246000634e487b7160e01b81526041600452fd5b919060608382031261027657604051906001600160401b03606083018181118482101761054b57604052829480358281116102765783611486918301611123565b8452602081013560208501526040810135918211610276570181601f82011215610276576040918160206114bc933591016112f1565b910152565b903590601e198136030182121561027657018035906001600160401b03821161027657602001918160051b3603831361027657565b908210156105355761150d9160051b8101906110e6565b90565b90359060de1981360301821215610276570190565b9190820180921161026057565b9060405161153f81611031565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061158e575050505061158a9250038461104c565b0152565b83546001600160a01b0316855289955090930192918101918101611572565b60021115610b4c57565b90156115f5578151156115c8575090565b803b156115d3575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561160557805190602001fd5b604051630a12f52160e11b8152600490fd5b9035603e1982360301811215610276570190565b9035601e19823603018112156102765701602081359101916001600160401b038211610276578160051b3603831361027657565b60408201916001600160401b03611675836110fb565b16815260606116896020938481019061162b565b839195604086839601525201929160005b8281106116a8575050505090565b909192938280600192838060a01b036116c08961110f565b1681520195019392910161169a565b9035601e19823603018112156102765701602081359101916001600160401b03821161027657813603831361027657565b908060209392818452848401376000828201840152601f01601f1916010190565b604061177261150d9361175161174661173a8680611617565b8584528584019061165f565b946020810190611617565b90602081860391015260ff61176582611235565b16845260208101906116cf565b9190928160208201520191611700565b81811061178d575050565b60008155600101611782565b805460008255806117a8575050565b6117bd91600052602060002090810190611782565b565b90600160401b811161054b578154908083558181106117dd57505050565b6117bd9260005260206000209182019101611782565b90600182811c92168015611823575b602083101461180d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611802565b61183781546117f3565b9081611841575050565b81601f60009311600114611853575055565b908083918252611872601f60208420940160051c840160018501611782565b5555565b60036117bd916000815561188c60018201611799565b600060028201550161182d565b80518210156105355760209160051b010190565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161054b5789906118f683896117bf565b01600096875289872084885b848110611d305750505050508760028a019101519060ff82511660ff1982541617905560039288848b01920151918251868111611c4a578061194483546117f3565b94898d601f9788808211611d03575b505050508c90868311600114611c98578a92611c8d575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311611c79578b906119b384846117bf565b019088528a882085895b848110611c5e5750505050508860068b019101519060ff82511660ff198254161790558860078b01910151805190868211611c4a5781906119fe84546117f3565b8c868211611c1d575b50508b90858311600114611bbe578992611bb3575b505060001982871b1c191690841b1790555b604086015160088a015560098901846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a89019460a0870151908151958611611b9f57611a8e87546117f3565b8a848211611b68575b505089928611600114611af7579385600c999794819460c098946117bd9e9d9b9895611aec575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b015193503880611abe565b9294939190601f1985168785528a8520945b818110611b535750928592600c9a9895926117bd9d9c9a9760c0999610611b39575b50505050811b019055611ace565b01519060f884600019921b161c1916905538808080611b2b565b82840151865594870194928b01928b01611b09565b611b8f918984528582852091818b0160051c8301938b10611b96575b0160051c0190611782565b388a611a97565b92508192611b84565b634e487b7160e01b81526041600452602490fd5b015190503880611a1c565b848a528c8a208794509190601f1984168b8f5b828210611c065750508411611bee575b505050811b019055611a2e565b015160001983891b60f8161c19169055388080611be1565b8385015186558a979095019493840193018f611bd1565b611c4391868c5287828d209181870160051c8301938710611b96570160051c0190611782565b388c611a07565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119bd565b634e487b7160e01b89526041600452602489fd5b01519050388061196a565b879350908d91601f198416868d52838d20938d905b828210611ce25750508411611cca575b505050811b01905561197c565b0151600019838a1b60f8161c19169055388080611cbd565b91929395968291958786015181550195019301908f918a9695949392611cad565b828489611d279652209181870160051c8301938710611b96570160051c0190611782565b898d3888611953565b83516001600160a01b031683820155928c0192869101611902565b90816020910312610276575180151581036102765790565b611da173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859384600484015260248301906111da565b0381865af4908115610fad57600091611e3c575b5060005260008152611df681604060002093611dd360048601611532565b906040518080958194630c133d1360e31b835286600484015260248301906111da565b03915af4918215610fad57600092611e0f575b50501591565b611e2e9250803d10611e35575b611e26818361104c565b810190611d4b565b3880611e09565b503d611e1c565b908282813d8311611e65575b611e52818361104c565b81010312611e6257505138611db5565b80fd5b503d611e48565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611ecb575050505090565b83546001600160a01b031685529384019360019384019390910190611ebd565b60005b838110611efe5750506000910152565b8181015183820152602001611eee565b90602091611f2781518092818552858086019101611eeb565b601f01601f1916010190565b6040602061150d9381611f4d8551858452858401906111da565b940151908281860391015260ff81511684520151918160208201520190611f0e565b9060c080611fe0611f9e611f8c865160e0875260e0870190611f33565b60208701518682036020880152611f33565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152611f0e565b93015191015290565b9060016001600160401b038093160191821161026057565b90602080825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__6040948551630c133d1360e31b8152848180612046600497848984015260248301906111da565b0381865af49081156125e1576000916125c4575b506125b45783855101515161208487519163c836244d60e01b8352888684015260448301906111da565b9085818061209e6003199586838203016024840152611e6c565b0381875af49081156124be57600091612597575b50156124c9576120f88560008951906120ca82611031565b8082528282015292896121078a51928251958694859463f47ad7eb60e01b86528c8601526044850190611f6f565b90838203016024840152611e6c565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156124be57600091612488575b50612139816115ad565b600181036123d657505061214c90611d63565b90156123c6576003810180546001600160401b0380828a1c16906060895101511681036123b65786936121d095936121af9367ffffffffffffffff60401b6121948a95611fe9565b8d1b169067ffffffffffffffff60401b191617905501611532565b9087518080958194632cff562160e11b8352868984015260248301906111da565b03915af4908115612371578291869160009161237c575b5081516380875df760e01b815292839182906001600160a01b03165afa90811561237157600091612310575b50600091606091945b865195869384936373b464b760e01b85528401528561224683518a606487015260a4860190611f6f565b92015115156084840152805161225b816115ad565b60248401528501516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af480156123055761229957505050565b3d806000843e6122a9818461104c565b8201918181840312610276578051906001600160401b03821161027657019082601f83011215610276578151926122eb6122e285611084565b9551958661104c565b83855281848401011161027657806117bd94019101611eeb565b83513d6000823e3d90fd5b8581813d831161236a575b612325818361104c565b810103126123665785519161233983611031565b8151906002821015611e6257509161235a85600095936060958452016111c6565b85820152915091612213565b5080fd5b503d61231b565b85513d6000823e3d90fd5b925090508382813d81116123af575b612395818361104c565b81010312611e625750846123a983926111c6565b386121e7565b503d61238b565b885163a57cadff60e01b81528690fd5b8551630e991abd60e41b81528390fd5b6123e5919693508092506115ad565b156123f6575b60009160609161221c565b9250601c546001600160401b03808260481c1690606086510151168103612478579160609167ffffffffffffffff60481b612432600095611fe9565b60481b169067ffffffffffffffff60481b191617601c558284875161245681611031565b8281520152855161246681611031565b838152838582015294915091506123eb565b855163a57cadff60e01b81528390fd5b8681813d83116124b7575b61249d818361104c565b810103126123665751906002821015611e6257503861212f565b503d612493565b88513d6000823e3d90fd5b505050509160036117bd93825181810190828252612588818751878083015260c0612566612504835160e060808701526101608601906125ec565b61251f8985015191607f1992838883030160a08901526125ec565b848c01518685015260608501516001600160401b031660e087015260808501516001600160e01b03191661010087015260a085015186820390920161012087015290611f0e565b910151610140830152858901511515606083015203601f19810183528261104c565b519020600052526000206118ad565b6125ae9150863d8811611e3557611e26818361104c565b386120b2565b855163c5f563eb60e01b81528390fd5b6125db9150853d8711611e3557611e26818361104c565b3861205a565b87513d6000823e3d90fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061265c575050509360408381938161150d97980151908281860391015260ff81511684520151938201520190611f0e565b82516001600160a01b031688529685019691850191600101612628565b6040018051516001600160401b03601f5416106126ab5751511561269957565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610fad57600091612716575b501561270457565b60405163f0d97f3b60e01b8152600490fd5b61272e915060203d8111611e3557611e26818361104c565b386126fc565b909493926060926080830196612749816115ad565b8352602083015260408201520152565b815191906041830361278a5761278392506020820151906060604084015193015160001a90612795565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161281957926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561280d5780516001600160a01b0381161561280457918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156105355760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b6000818152601560205260408120546128d457601454600160401b8110156128c05790826128ac61289584600160409601601455612825565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461292f57805490600160401b82101561054b57600182018082558210156105355782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015612a1b5760001990808201818111612a0757601454908382019182116129f3578082036129bf575b50505060145480156129ab5781019061298a82612825565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6129dd6129ce61289593612825565b90549060031b1c928392612825565b9055845260156020526040842055388080612972565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220b48c09038cb95ca358f6b3b986231aac3e6aa9fe9a876f90865eb1782122308064736f6c63430008130033","sourceMap":"1412:5237:49:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":9972,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":8849,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":8487,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3053,"length":20},{"start":7556,"length":20},{"start":8232,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c80630bed761514610b845780630db0f77c1461070357806332e7661f1461027b5763bacc656d1461004857600080fd5b346102765760208060031936011261027657600435906100666126bd565b6012545b8281106101b157506012548083111561019f575b82811061008c576012839055005b80600052601382526040600020906000825560006004600193828582015582600282015582600382015501556016835260406000208054906000815581610179575b505080600052604060002060405180828682945493848152019060005286600020926000905b8789828410610160575050505061010d9250038261104c565b8051908360005b83811061012557505050500161007e565b600085815260178852604090206001600160a01b036101448386611899565b51166000528752610158604060002061182d565b018490610114565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b82811061019357506100ce565b60008155018390610186565b604051636819a3a960e01b8152600490fd5b806000526009908183526040600020916000835560036001936101d5858201611799565b60006002820155019081549060008355816101f4575b5050500161006a565b600d9282840292848404036102605760005285600020918201915b82811061021c57506101eb565b806102278592611876565b61023360048201611876565b6000600882015560008382015561024c600a820161182d565b6000600b8201556000600c8201550161020f565b634e487b7160e01b600052601160045260246000fd5b600080fd5b346102765760031960603682011261027657600435906001600160401b038211610276576060908236030112610276576102b36126bd565b6102c86102c33683600401611445565b612679565b601e5480156106ed57602482013506158015906106df575b6106cd57602481013560005260096020526002604060002001546106bb576040516020808201526103286103176004840180611617565b6060604084015260a083019061165f565b6024830135606083015281610343604485018560040161162b565b603f93919319838303016080840152808252602082019060208160051b84010192856000915b8383106105b4578987610385818903601f19810183528261104c565b6020815191012060ff601c5416916012546024820135106105a2576044359283156105905780840293840403610260576103c2602482013561285c565b1561057e5760405160a08101908082106001600160401b0383111761054b5761045f9361045592604052815260046020820160243581526064604084019704875260608301600081526080840191600083526024870135600052601360205260406000209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611445565b6020810190815160005260096020526040600020908051926001600160401b038451166001600160401b03198454161783556020858401940151938451946001600160401b03861161054b576020906104b887846117bf565b019060005260206000208660005b8781106105615750835160028701556040850180515190600388019060005b8381106104ee57005b6104f9818351611899565b51908354600160401b81101561054b5786810180865581101561053557869261052f9186600052600d60206000209102016118ad565b016104e5565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b83516001600160a01b0316818401556020909301928891016104c6565b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b919395509193601f198282030186526105cd8784611617565b90813560de19833603018112156102765782602092836106a48160019781960194604085526106316106146106028880611617565b60e06040890152610120880190611721565b61062084890189611617565b878203603f19016060890152611721565b604087013560808701526001600160401b0361064f606089016110fb565b1660a08701526106956001600160e01b031961066d60808a016112cf565b169160c0928389015261068360a08a018a6116cf565b898303603f190160e08b015290611700565b960135610100860152016112e4565b151591015298019601930190918795969492610369565b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060248101354311156102e0565b634e487b7160e01b600052601260045260246000fd5b34610276576080366003190112610276576024356001600160401b03811161027657366023820112156102765780600401359061073f8261106d565b9161074d604051938461104c565b8083526024602084019160051b8301019136831161027657602401905b828210610b7457836064356001600160401b0381116102765761079190369060040161109f565b601254600435106105a257600435600052600960205260026040600020015415610b625760043560005260136020526040600020916107d1828454612759565b506004819492941015610b4c57610b3a5760043560009081526016602090815260408083206001600160a01b0387168452600101909152902054610b2857604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b0382118383101761054b57608090826040528351902092019182526020815261086381611031565b51902093600181015494936000945b84518610156108bf576108858686611899565b5190818110156108ae5760005260205260406000205b9460001981146102605760010194610872565b90600052602052604060002061089b565b8603610b065760043560005260166020526108e660018060a01b03821660406000206128d9565b15610af457600435600052601760205260406000209060018060a01b0316600052602052604060002082516001600160401b03811161054b5761092982546117f3565b601f8111610ab7575b506020601f8211600114610a515781929394600092610a46575b50508160011b916000199060031b1c19161790555b600381016109726044358254611525565b808255600283015481101561098357005b600483018054909160ff8216610a04575060ff191660011790556109a8600435612936565b156109f2577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494916109ec60ff60115416915492546040519384936004359085612734565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc916109ec60ff601154169154926040519384936004359085612734565b01519050848061094c565b601f198216908360005260206000209160005b818110610a9f57509583600195969710610a86575b505050811b019055610961565b015160001960f88460031b161c19169055848080610a79565b9192602060018192868b015181550194019201610a64565b610ae490836000526020600020601f840160051c81019160208510610aea575b601f0160051c0190611782565b84610932565b9091508190610ad7565b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b60405163a88f96f160e01b8152600490fd5b813581526020918201910161076a565b34610276576003196020368201811361027657600435916001600160401b03908184116102765760608460040191853603011261027657610bce36610bc983806110e6565b611123565b9073__$a0fe38a9a81205afccc10810b09a4d3f45$__60405190632cff562160e11b8252856004830152858280610c0a602497888301906111da565b0381845af4918215610fad57600092610ffa575b506001600160a01b03913390831603610fe557610c3e6102c33685611445565b3315610fd35760405191610c5183611031565b85601954168352604051809188601a54928381520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8b838310610fb95750505050509181610cb3610cda9593600095038261104c565b88830152604051808095819463aa5106cb60e01b83526040600484015260448301906111da565b338983015203915af48015610fad57600090610ee2575b610cfb9150611d63565b919015610ed1576000956044019086610d1483836114c1565b600091505b808210610e80575050610d2c9088611525565b60028401805491808310610e6e578203918211610e5957610d6a9360049593610d6293610d5993556114c1565b94909201611532565b9236916112f1565b9081519160005b838110610e3c575050505060ff602b54841c16610d8a57005b6040519083820192632643057b60e11b84524382840152856044840152600060648401526064835260a083019083821090821117610e275780604052854710610e155750506109f09360009283925191335af13d15610e0c573d610ded81611084565b90610dfb604051928361104c565b8152600081933d92013e5b336115b7565b60609150610e06565b63cd78605960e01b81523060a4840152fd5b50634e487b7160e01b60009081526041600452fd5b80610e53610e4c60019385611899565b5185612001565b01610d71565b85634e487b7160e01b60005260116004526000fd5b604051631d36ca1560e21b8152600490fd5b9098610ec960019160c0610eb6610eb0610ebe8f986040610eb6610eb08c8f8f90610eaa916114c1565b906114f6565b80611510565b013590611525565b97610eaa8b8b6114c1565b990190610d19565b6040516208ed5b60e31b8152600490fd5b503d806000833e610ef3818361104c565b8101908581830312610276578051908582116102765701906040828203126102765760405191610f2283611031565b80518681168103610276578352868101519086821161027657019080601f83011215610276578151610f538161106d565b92610f61604051948561104c565b818452888085019260051b8201019283116102765788809101915b838310610f955750905083610cfb949392500152610cf1565b8190610fa0846111c6565b8152019101908890610f7c565b6040513d6000823e3d90fd5b845482168652909401936001938401939190910190610c92565b6040516370e4510960e01b8152600490fd5b60405160016201ad9360e61b03198152600490fd5b9091508581813d831161102a575b611012818361104c565b8101031261027657611023906111c6565b9087610c1e565b503d611008565b604081019081106001600160401b0382111761054b57604052565b90601f801991011681019081106001600160401b0382111761054b57604052565b6001600160401b03811161054b5760051b60200190565b6001600160401b03811161054b57601f01601f191660200190565b81601f82011215610276578035906110b682611084565b926110c4604051948561104c565b8284526020838301011161027657816000926020809301838601378301015290565b903590603e1981360301821215610276570190565b35906001600160401b038216820361027657565b35906001600160a01b038216820361027657565b9190604083820312610276576040519261113c84611031565b83611146826110fb565b815260209182810135906001600160401b03821161027657019280601f850112156102765783356111768161106d565b94611184604051968761104c565b818652848087019260051b8201019283116102765784809101915b8383106111ae57505050500152565b81906111b98461110f565b815201910190849061119f565b51906001600160a01b038216820361027657565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611218575050505090565b83516001600160a01b03168552938101939281019260010161120a565b359060ff8216820361027657565b9190604083820312610276576040519261125c84611031565b838135916001600160401b0392838111610276578461127c918301611123565b8252602081013590838211610276570160408185031261027657604051936112a385611031565b6112ac82611235565b85526020820135938411610276576020936112c7920161109f565b828401520152565b35906001600160e01b03198216820361027657565b3590811515820361027657565b9291926112fd8261106d565b9160409061130d8251948561104c565b839581855260208095019160051b8401938185116102765780925b8584106113385750505050505050565b6001600160401b0390843582811161027657830190868286031261027657865161136181611031565b82358481116102765783019260e094858589031261027657895195860186811082821117611430578a52843581811161027657886113a0918701611243565b86528b85013581811161027657886113b9918701611243565b8c870152898501358a87015260606113d28187016110fb565b9087015260806113e38187016112cf565b9087015260a09182860135918211610276578c96866114219461140b8c8b9a968b970161109f565b9083015260c080910135908201528452016112e4565b83820152815201930192611328565b60246000634e487b7160e01b81526041600452fd5b919060608382031261027657604051906001600160401b03606083018181118482101761054b57604052829480358281116102765783611486918301611123565b8452602081013560208501526040810135918211610276570181601f82011215610276576040918160206114bc933591016112f1565b910152565b903590601e198136030182121561027657018035906001600160401b03821161027657602001918160051b3603831361027657565b908210156105355761150d9160051b8101906110e6565b90565b90359060de1981360301821215610276570190565b9190820180921161026057565b9060405161153f81611031565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061158e575050505061158a9250038461104c565b0152565b83546001600160a01b0316855289955090930192918101918101611572565b60021115610b4c57565b90156115f5578151156115c8575090565b803b156115d3575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561160557805190602001fd5b604051630a12f52160e11b8152600490fd5b9035603e1982360301811215610276570190565b9035601e19823603018112156102765701602081359101916001600160401b038211610276578160051b3603831361027657565b60408201916001600160401b03611675836110fb565b16815260606116896020938481019061162b565b839195604086839601525201929160005b8281106116a8575050505090565b909192938280600192838060a01b036116c08961110f565b1681520195019392910161169a565b9035601e19823603018112156102765701602081359101916001600160401b03821161027657813603831361027657565b908060209392818452848401376000828201840152601f01601f1916010190565b604061177261150d9361175161174661173a8680611617565b8584528584019061165f565b946020810190611617565b90602081860391015260ff61176582611235565b16845260208101906116cf565b9190928160208201520191611700565b81811061178d575050565b60008155600101611782565b805460008255806117a8575050565b6117bd91600052602060002090810190611782565b565b90600160401b811161054b578154908083558181106117dd57505050565b6117bd9260005260206000209182019101611782565b90600182811c92168015611823575b602083101461180d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611802565b61183781546117f3565b9081611841575050565b81601f60009311600114611853575055565b908083918252611872601f60208420940160051c840160018501611782565b5555565b60036117bd916000815561188c60018201611799565b600060028201550161182d565b80518210156105355760209160051b010190565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161054b5789906118f683896117bf565b01600096875289872084885b848110611d305750505050508760028a019101519060ff82511660ff1982541617905560039288848b01920151918251868111611c4a578061194483546117f3565b94898d601f9788808211611d03575b505050508c90868311600114611c98578a92611c8d575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311611c79578b906119b384846117bf565b019088528a882085895b848110611c5e5750505050508860068b019101519060ff82511660ff198254161790558860078b01910151805190868211611c4a5781906119fe84546117f3565b8c868211611c1d575b50508b90858311600114611bbe578992611bb3575b505060001982871b1c191690841b1790555b604086015160088a015560098901846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a89019460a0870151908151958611611b9f57611a8e87546117f3565b8a848211611b68575b505089928611600114611af7579385600c999794819460c098946117bd9e9d9b9895611aec575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b015193503880611abe565b9294939190601f1985168785528a8520945b818110611b535750928592600c9a9895926117bd9d9c9a9760c0999610611b39575b50505050811b019055611ace565b01519060f884600019921b161c1916905538808080611b2b565b82840151865594870194928b01928b01611b09565b611b8f918984528582852091818b0160051c8301938b10611b96575b0160051c0190611782565b388a611a97565b92508192611b84565b634e487b7160e01b81526041600452602490fd5b015190503880611a1c565b848a528c8a208794509190601f1984168b8f5b828210611c065750508411611bee575b505050811b019055611a2e565b015160001983891b60f8161c19169055388080611be1565b8385015186558a979095019493840193018f611bd1565b611c4391868c5287828d209181870160051c8301938710611b96570160051c0190611782565b388c611a07565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119bd565b634e487b7160e01b89526041600452602489fd5b01519050388061196a565b879350908d91601f198416868d52838d20938d905b828210611ce25750508411611cca575b505050811b01905561197c565b0151600019838a1b60f8161c19169055388080611cbd565b91929395968291958786015181550195019301908f918a9695949392611cad565b828489611d279652209181870160051c8301938710611b96570160051c0190611782565b898d3888611953565b83516001600160a01b031683820155928c0192869101611902565b90816020910312610276575180151581036102765790565b611da173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859384600484015260248301906111da565b0381865af4908115610fad57600091611e3c575b5060005260008152611df681604060002093611dd360048601611532565b906040518080958194630c133d1360e31b835286600484015260248301906111da565b03915af4918215610fad57600092611e0f575b50501591565b611e2e9250803d10611e35575b611e26818361104c565b810190611d4b565b3880611e09565b503d611e1c565b908282813d8311611e65575b611e52818361104c565b81010312611e6257505138611db5565b80fd5b503d611e48565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611ecb575050505090565b83546001600160a01b031685529384019360019384019390910190611ebd565b60005b838110611efe5750506000910152565b8181015183820152602001611eee565b90602091611f2781518092818552858086019101611eeb565b601f01601f1916010190565b6040602061150d9381611f4d8551858452858401906111da565b940151908281860391015260ff81511684520151918160208201520190611f0e565b9060c080611fe0611f9e611f8c865160e0875260e0870190611f33565b60208701518682036020880152611f33565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152611f0e565b93015191015290565b9060016001600160401b038093160191821161026057565b90602080825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__6040948551630c133d1360e31b8152848180612046600497848984015260248301906111da565b0381865af49081156125e1576000916125c4575b506125b45783855101515161208487519163c836244d60e01b8352888684015260448301906111da565b9085818061209e6003199586838203016024840152611e6c565b0381875af49081156124be57600091612597575b50156124c9576120f88560008951906120ca82611031565b8082528282015292896121078a51928251958694859463f47ad7eb60e01b86528c8601526044850190611f6f565b90838203016024840152611e6c565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156124be57600091612488575b50612139816115ad565b600181036123d657505061214c90611d63565b90156123c6576003810180546001600160401b0380828a1c16906060895101511681036123b65786936121d095936121af9367ffffffffffffffff60401b6121948a95611fe9565b8d1b169067ffffffffffffffff60401b191617905501611532565b9087518080958194632cff562160e11b8352868984015260248301906111da565b03915af4908115612371578291869160009161237c575b5081516380875df760e01b815292839182906001600160a01b03165afa90811561237157600091612310575b50600091606091945b865195869384936373b464b760e01b85528401528561224683518a606487015260a4860190611f6f565b92015115156084840152805161225b816115ad565b60248401528501516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af480156123055761229957505050565b3d806000843e6122a9818461104c565b8201918181840312610276578051906001600160401b03821161027657019082601f83011215610276578151926122eb6122e285611084565b9551958661104c565b83855281848401011161027657806117bd94019101611eeb565b83513d6000823e3d90fd5b8581813d831161236a575b612325818361104c565b810103126123665785519161233983611031565b8151906002821015611e6257509161235a85600095936060958452016111c6565b85820152915091612213565b5080fd5b503d61231b565b85513d6000823e3d90fd5b925090508382813d81116123af575b612395818361104c565b81010312611e625750846123a983926111c6565b386121e7565b503d61238b565b885163a57cadff60e01b81528690fd5b8551630e991abd60e41b81528390fd5b6123e5919693508092506115ad565b156123f6575b60009160609161221c565b9250601c546001600160401b03808260481c1690606086510151168103612478579160609167ffffffffffffffff60481b612432600095611fe9565b60481b169067ffffffffffffffff60481b191617601c558284875161245681611031565b8281520152855161246681611031565b838152838582015294915091506123eb565b855163a57cadff60e01b81528390fd5b8681813d83116124b7575b61249d818361104c565b810103126123665751906002821015611e6257503861212f565b503d612493565b88513d6000823e3d90fd5b505050509160036117bd93825181810190828252612588818751878083015260c0612566612504835160e060808701526101608601906125ec565b61251f8985015191607f1992838883030160a08901526125ec565b848c01518685015260608501516001600160401b031660e087015260808501516001600160e01b03191661010087015260a085015186820390920161012087015290611f0e565b910151610140830152858901511515606083015203601f19810183528261104c565b519020600052526000206118ad565b6125ae9150863d8811611e3557611e26818361104c565b386120b2565b855163c5f563eb60e01b81528390fd5b6125db9150853d8711611e3557611e26818361104c565b3861205a565b87513d6000823e3d90fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061265c575050509360408381938161150d97980151908281860391015260ff81511684520151938201520190611f0e565b82516001600160a01b031688529685019691850191600101612628565b6040018051516001600160401b03601f5416106126ab5751511561269957565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610fad57600091612716575b501561270457565b60405163f0d97f3b60e01b8152600490fd5b61272e915060203d8111611e3557611e26818361104c565b386126fc565b909493926060926080830196612749816115ad565b8352602083015260408201520152565b815191906041830361278a5761278392506020820151906060604084015193015160001a90612795565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161281957926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561280d5780516001600160a01b0381161561280457918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156105355760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b6000818152601560205260408120546128d457601454600160401b8110156128c05790826128ac61289584600160409601601455612825565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461292f57805490600160401b82101561054b57600182018082558210156105355782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015612a1b5760001990808201818111612a0757601454908382019182116129f3578082036129bf575b50505060145480156129ab5781019061298a82612825565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6129dd6129ce61289593612825565b90549060031b1c928392612825565b9055845260156020526040842055388080612972565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220b48c09038cb95ca358f6b3b986231aac3e6aa9fe9a876f90865eb1782122308064736f6c63430008130033","sourceMap":"1412:5237:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4574:73:64;;;:::i;:::-;5254:43:49;1412:5237;5299:22;;;;;;1412:5237;5254:43;1412:5237;6065:40:67;;;;6061:102;;6210:22;;;;;;5254:43:49;1412:5237;;;;6178:30:67;1412:5237:49;;;6257:15:67;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6296:27:67;1412:5237:49;;;;;;;;;;;;;;6178:30:67;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;6473:9:67;;1412:5237:49;6484:5:67;;;;;;1412:5237:49;;;;;6178:30:67;;6473:9;1412:5237:49;;;;6518:21:67;1412:5237:49;;;;;-1:-1:-1;;;;;6543:13:67;;;;:::i;:::-;1412:5237:49;;;;;;6511:46:67;1412:5237:49;;;6511:46:67;:::i;:::-;1412:5237:49;6473:9:67;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6061:102:67;1412:5237:49;;-1:-1:-1;;;6128:24:67;;1412:5237:49;;6128:24:67;5242:55:49;1412:5237;;;5346:20;1412:5237;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;5242:55;1412:5237;;;;5242:55;;1412:5237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;5254:27;1412:5237;;;;;;;;;;;;;-1:-1:-1;;1412:5237:49;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;4574:73:64;;:::i;:::-;4001:32:49;1412:5237;;;;;;:::i;:::-;4001:32;:::i;:::-;4290:24;1412:5237;;;;;;4270:17;;1412:5237;;4270:49;;;:86;;;1412:5237;4266:143;;1412:5237;4270:17;;1412:5237;;;3597:20:63;1412:5237:49;;3597:39:63;1412:5237:49;;;3597:39:63;1412:5237:49;4419:111;;1412:5237;;;4689:17;;;1412:5237;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;4270:17;;1412:5237;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4689:17;;;;;;2548:38:67;;4689:17:49;;;;;;:::i;:::-;1412:5237;;;4689:17;;4679:28;1412:5237;4841:20;1412:5237;;;4711:20:67;1412:5237:49;;4270:17;;1412:5237;4699:32:67;4695:94;;1412:5237:49;;4803:21:67;;;4799:81;;1412:5237:49;;;;;;;;;10884:32:36;1412:5237:49;4270:17;;1412:5237;10884:32:36;:::i;:::-;5066:3:67;5062:68;;1412:5237:49;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;5165:183:67;;1412:5237:49;;;;7293:3:67;1412:5237:49;5165:183:67;;1412:5237:49;;;;;5165:183:67;;1412:5237:49;;;;5165:183:67;;1412:5237:49;;;;;4270:17;;1412:5237;;;5390:15:67;1412:5237:49;;;;;;;;;;;;;;;;;;3597:39:63;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4201:17:63;;1412:5237:49;;;;;3597:20:63;1412:5237:49;;;;;4242:14:63;;;1412:5237:49;-1:-1:-1;;;;;1412:5237:49;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;3597:39:63;4266:13;;1412:5237:49;;4330:10:63;;;;1412:5237:49;;;4586:6:63;;;1412:5237:49;4373:13:63;;;;;;1412:5237:49;4362:9:63;4598:13;:10;;;:13;:::i;:::-;;1412:5237:49;;;-1:-1:-1;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4362:9:63;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;5062:68:67;1412:5237:49;;-1:-1:-1;;;5092:27:67;;1412:5237:49;;5092:27:67;4799:81;1412:5237:49;;-1:-1:-1;;;4847:22:67;;1412:5237:49;;4847:22:67;4695:94;1412:5237:49;;-1:-1:-1;;;4754:24:67;;1412:5237:49;;4754:24:67;1412:5237:49;2548:38:67;;;;;;;;1412:5237:49;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;1412:5237:49;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;;1412:5237:49;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1412:5237:49;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4419:111;1412:5237;;-1:-1:-1;;;4499:20:49;;1412:5237;;4499:20;4266:143;1412:5237;;-1:-1:-1;;;4379:19:49;;1412:5237;;4379:19;4270:86;:17;1412:5237;4270:17;;1412:5237;4323:12;:33;;4270:86;;1412:5237;;;;;;;;;;;;;;;;;;-1:-1:-1;;1412:5237:49;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;:::i;:::-;6910:20:67;1412:5237:49;;;6901:29:67;6897:91;;1412:5237:49;;;;2943:20:63;1412:5237:49;;2989:17:63;1412:5237:49;;;2989:17:63;1412:5237:49;2989:22:63;6346:62:49;;1412:5237;;;;1810:15:67;1412:5237:49;;;;;;1952:38:67;1412:5237:49;;;1952:38:67;:::i;:::-;1412:5237:49;;;;;;;;;;2000:89:67;;1412:5237:49;;;;;;2177:27:67;1412:5237:49;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;4352:12:36;1412:5237:49;;;;;;2173:119:67;;1412:5237:49;;;-1:-1:-1;;;;;1412:5237:49;;;2548:38:67;;1412:5237:49;;;;;;;;;2548:38:67;;;1412:5237:49;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;2538:49:67;;1412:5237:49;;;;;;;;;;;:::i;:::-;;2515:74:67;;2662:13;1412:5237:49;2662:13:67;;1412:5237:49;2145:27:33;2187:13;1412:5237:49;2182:116:33;2220:3;1412:5237:49;;2202:16:33;;;;;2278:8;;;;:::i;:::-;1412:5237:49;;9511:5:33;;;;;;1412:5237:49;9711:119:33;1412:5237:49;9711:119:33;1412:5237:49;;9711:119:33;9511:51;2220:3;-1:-1:-1;;1412:5237:49;;;;;;2187:13:33;;;9511:51;9711:119;1412:5237:49;9711:119:33;1412:5237:49;9711:119:33;1412:5237:49;;9711:119:33;9511:51;;2202:16;;1379:33;2708:77:67;;1412:5237:49;;;;2177:27:67;1412:5237:49;;8399:50:36;1412:5237:49;;;;;;;;;;8399:50:36;:::i;:::-;2958:3:67;2954:61;;1412:5237:49;;;;3024:21:67;1412:5237:49;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;:::i;:::-;;;;;;2182:116:33;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3095:18:67;;:28;1412:5237:49;;;;3095:28:67;:::i;:::-;1412:5237:49;;;2989:17:63;3160:14:67;;1412:5237:49;3138:36:67;;;3134:871;;1412:5237:49;3134:871:67;1412:5237:49;3195:12:67;;1412:5237:49;;3195:12:67;;1412:5237:49;;;;;-1:-1:-1;;;1412:5237:49;;;;;11184:35:36;1412:5237:49;;11184:35:36;:::i;:::-;3404:3:67;3400:87;;3509:212;1412:5237:49;3509:212:67;1412:5237:49;6182:27;1412:5237;;;;;;;;;;;;;3509:212:67;;;:::i;:::-;;;;3190:805;1412:5237:49;3400:87:67;1412:5237:49;;-1:-1:-1;;;3438:30:67;;1412:5237:49;;3438:30:67;3190:805;1412:5237:49;;;;3765:215:67;1412:5237:49;3765:215:67;1412:5237:49;6182:27;1412:5237;;;;;;;;;;;;3765:215:67;;;:::i;1412:5237:49:-;;;;-1:-1:-1;1412:5237:49;;;;;2548:38:67;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1412:5237:49;;;;2954:61:67;1412:5237:49;;-1:-1:-1;;;2984:20:67;;1412:5237:49;;2984:20:67;2708:77;1412:5237:49;;-1:-1:-1;;;2741:33:67;;-1:-1:-1;;;;;1412:5237:49;;;;2741:33:67;;1412:5237:49;;;2741:33:67;2173:119;1412:5237:49;;-1:-1:-1;;;2264:17:67;;1412:5237:49;;2264:17:67;2000:89;1412:5237:49;;-1:-1:-1;;;2060:18:67;;1412:5237:49;;2060:18:67;1412:5237:49;;;;;;;;;;;;6346:62;1412:5237;;-1:-1:-1;;;6380:17:49;;1412:5237;;6380:17;1412:5237;;;;;;;;;;;;;;;;;-1:-1:-1;;1412:5237:49;;;;;-1:-1:-1;1412:5237:49;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;2008:14;;;;:::i;:::-;1412:5237;:::i;:::-;2008:23;;1412:5237;;;;;;2008:25;;;1412:5237;2008:25;;1412:5237;;;;;;;;;;;;:::i;:::-;2008:25;;;;;;;;;;1412:5237;2008:25;;;1412:5237;-1:-1:-1;;;;;;1412:5237:49;2037:10;1412:5237;;;2008:39;2004:97;;2111:32;1412:5237;;;;:::i;2111:32::-;2037:10;12849:19:63;12845:78;;1412:5237:49;;;;;;:::i;:::-;;12959:13:63;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;12959:35:63;;1412:5237:49;;12959:35:63;;1412:5237:49;;;;;;:::i;:::-;2037:10;1412:5237;;;;12959:35:63;;;;;;;;1412:5237:49;12959:35:63;;;1412:5237:49;13012:19:63;;;;:::i;:::-;2245:13:49;;;2241:67;;1412:5237;;;2397:10;;1412:5237;2397:10;;2346:16;2397:10;:::i;:::-;1412:5237;;-1:-1:-1;2440:18:49;;;;;;2670:21;;;;;;:::i;:::-;2706:17;;;1412:5237;;2706:31;;;;2702:96;;1412:5237;;;;;;;;;;;;;;2921:10;1412:5237;;2921:10;:::i;:::-;2910:9;;;;1412:5237;:::i;:::-;;;;;:::i;:::-;;;;14383:9:63;1412:5237:49;14394:19:63;;;;;;1412:5237:49;;;;;2947:24;1412:5237;;;;2943:497;;1412:5237;2943:497;1412:5237;;3216:165;;;;;;;;;;3314:12;3216:165;;;1412:5237;;;;;;;;;;;;3216:165;;1412:5237;;;;;;;;;;;;;;;;4419:21:29;;:29;4415:108;;4574:31;;4622:69;4574:31;1412:5237:49;4574:31:29;;;;2037:10:49;;4574:31:29;;1412:5237:49;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;2037:10;4622:69:29;:::i;1412:5237:49:-;;;-1:-1:-1;1412:5237:49;;4415:108:29;-1:-1:-1;;;4471:41:29;;4427:4;4471:41;;;1412:5237:49;4471:41:29;1412:5237:49;-1:-1:-1;;;;1412:5237:49;;;;;;;;14383:9:63;14454:12;;;1412:5237:49;14454:12:63;;;:::i;:::-;;;;:::i;:::-;1412:5237:49;14383:9:63;;1412:5237:49;;;;;;;;;;;;2702:96;1412:5237;;-1:-1:-1;;;2760:27:49;;1412:5237;;2760:27;2429:9;2490:10;;2531:37;1412:5237;2490:10;2543:25;:21;:13;2476:41;2490:10;;1412:5237;2490:21;:13;:10;;;;;;;:::i;:::-;:13;;:::i;:::-;:21;;:::i;:::-;:27;1412:5237;2476:41;;:::i;:::-;2543:10;;;;;:::i;2531:37::-;1412:5237;;2429:9;;;2241:67;1412:5237;;-1:-1:-1;;;2281:16:49;;1412:5237;;2281:16;12959:35:63;;;;1412:5237:49;12959:35:63;;;;;;:::i;:::-;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13012:19:63;1412:5237:49;;;;;;12959:35:63;;1412:5237:49;;;;;;:::i;:::-;;;;;;;;;;;12959:35:63;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12845:78:63;1412:5237:49;;-1:-1:-1;;;12891:21:63;;1412:5237:49;;12891:21:63;2004:97:49;1412:5237;;-1:-1:-1;;;;;;2070:20:49;;1412:5237;;2070:20;2008:25;;;;;;;;;;;;;;;;;:::i;:::-;;;1412:5237;;;;;;;:::i;:::-;2008:25;;;;;;;;;1412:5237;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;:::o;:::-;;2548:38:67;;;1412:5237:49;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;:::o;:::-;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1412:5237:49;;;;2548:38:67;1412:5237:49;-1:-1:-1;;1412:5237:49;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;1412:5237:49;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;-1:-1:-1;1412:5237:49;;-1:-1:-1;1412:5237:49;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;-1:-1:-1;1412:5237:49;;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;:::o;6737:692:29:-;;6952:471;;;1412:5237:49;;6983:22:29;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;1412:5237:49;;-1:-1:-1;;;7261:24:29;;-1:-1:-1;;;;;1412:5237:49;;;7261:24:29;;;1412:5237:49;;;7261:24:29;6952:471;-1:-1:-1;1412:5237:49;;8828:21:29;:17;;9000:142;;;;;;8824:411;1412:5237:49;;-1:-1:-1;;;8628:17:29;;;;;1412:5237:49;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;1412:5237:49;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;;;;2548:38:67;1412:5237:49;-1:-1:-1;;1412:5237:49;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;-1:-1:-1;1412:5237:49;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;-1:-1:-1;;;1412:5237:49;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;1412:5237:49;;-1:-1:-1;1412:5237:49;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;;;2548:38:67;;;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;1412:5237:49;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;;;;;;;;;2548:38:67;;-1:-1:-1;1412:5237:49;2548:38:67;-1:-1:-1;;1412:5237:49;;;2548:38:67;1412:5237:49;;;;;;;;;-1:-1:-1;1412:5237:49;;;;;;;;;;;;;;;;-1:-1:-1;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;1412:5237:49;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;-1:-1:-1;;;1412:5237:49;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;;;2548:38:67;;;;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;;;;;;;;;;;;;;-1:-1:-1;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13234:272:63:-;1412:5237:49;13443:15:63;1412:5237:49;;;;;;;13443:17:63;;;;;;;;;;;;1412:5237:49;;;;;;:::i;:::-;13443:17:63;;;;;;;;;;3946:45:64;13443:17:63;;;13234:272;1412:5237:49;3946:45:64;1412:5237:49;3946:45:64;1412:5237:49;;;;;3946:45:64;1412:5237:49;13480:9:63;1412:5237:49;13443:17:63;13480:9;;1412:5237:49;:::i;:::-;;;;;;;;;;;;13480:19:63;;;13443:17;13480:19;;1412:5237:49;;;;;;:::i;:::-;13480:19:63;;;;;;;;;3946:45:64;13480:19:63;;;13234:272;13479:20;;;13234:272;:::o;13480:19::-;;;;;;-1:-1:-1;13480:19:63;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;13443:17;;;;;;;;;;;;;;;:::i;:::-;;;1412:5237:49;;;;;;13443:17:63;;;1412:5237:49;;;13443:17:63;;;;;1412:5237:49;;;;;-1:-1:-1;;;;;15328:13:63;1412:5237:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;;-1:-1:-1;1412:5237:49;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1412:5237:49;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2548:38:67;1412:5237:49;-1:-1:-1;;1412:5237:49;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;:::o;14837:2300:63:-;;15012:19;:16;;;:19;;:28;:36;1412:5237:49;;;;;;;15012:38:63;;;;;1412:5237:49;15012:38:63;;;;;;1412:5237:49;;;;;;:::i;:::-;15012:38:63;;;;;;;;;;3946:45:64;15012:38:63;;;14837:2300;15008:102;;;15292:16;;;:19;;:28;1412:5237:49;;;;;;;15292:50:63;;;;;;1412:5237:49;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;15292:50:63;;;;;;;;;;3946:45:64;15292:50:63;;;14837:2300;15291:51;;15287:172;;1412:5237:49;15613:32:63;3946:45:64;1412:5237:49;;;;;;:::i;:::-;;;;;;;;15678:16:63;;1412:5237:49;15678:16:63;;1412:5237:49;;;;;;;;;;;15678:41:63;;;;;1412:5237:49;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;15678:41:63;:26;;:41;;;;;;;3946:45:64;15678:41:63;;;14837:2300;1412:5237:49;;;;:::i;:::-;15746:19:63;15733:32;;15746:19;;15945:34;;;;;:::i;:::-;15997:11;;15993:78;;1412:5237:49;16088:27:63;;1412:5237:49;;-1:-1:-1;;;;;1412:5237:49;;;;;16119:16:63;:22;:16;;:22;1412:5237:49;;16088:53:63;;16084:121;;16218:32;;1412:5237:49;16218:32:63;;1412:5237:49;16218:32:63;-1:-1:-1;;;16218:32:63;;;;:::i;:::-;1412:5237:49;;;;-1:-1:-1;;;1412:5237:49;;;;;16453:9:63;1412:5237:49;:::i;:::-;;;;;;;;;;;;16453:20:63;;;;;;1412:5237:49;;;;;;:::i;:::-;16453:20:63;;;;;;;;;;;;;3946:45:64;16453:20:63;;;15729:1310;-1:-1:-1;1412:5237:49;;-1:-1:-1;;;16430:59:63;;1412:5237:49;;;;;-1:-1:-1;;;;;1412:5237:49;16430:59:63;;;;;;;3946:45:64;16430:59:63;;;15729:1310;16415:74;3946:45:64;16415:74:63;1412:5237:49;16415:74:63;15729:1310;;1412:5237:49;;;;;;;;;;17100:30:63;;;;1412:5237:49;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;17100:30:63;:16;;:30;;;;;;;;14837:2300;;;:::o;17100:30::-;;;3946:45:64;17100:30:63;;;;;;:::i;:::-;;;1412:5237:49;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;17100:30:63:-;1412:5237:49;;;3946:45:64;1412:5237:49;;;;;16430:59:63;;;;;;;;;;;;;;:::i;:::-;;;1412:5237:49;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;3946:45:64;1412:5237:49;;;;;;;;:::i;:::-;;;;;16430:59:63;;;;;1412:5237:49;;;;16430:59:63;;;;;;1412:5237:49;;;3946:45:64;1412:5237:49;;;;;16453:20:63;;-1:-1:-1;16453:20:63;-1:-1:-1;16453:20:63;;;;;;;;;;;;;:::i;:::-;;;1412:5237:49;;;;;;;;;;:::i;:::-;16453:20:63;;;;;;;;16084:121;1412:5237:49;;-1:-1:-1;;;16168:22:63;;1412:5237:49;;16168:22:63;15993:78;1412:5237:49;;-1:-1:-1;;;16035:21:63;;1412:5237:49;;16035:21:63;15729:1310;1412:5237:49;;;;;;;;;:::i;:::-;16510:31:63;16506:533;;15729:1310;3946:45:64;15729:1310:63;1412:5237:49;15729:1310:63;;;16506:533;1412:5237:49;;16677:21:63;1412:5237:49;-1:-1:-1;;;;;1412:5237:49;;;;;16702:16:63;:22;:16;;:22;1412:5237:49;;16677:47:63;;16673:115;;16801:26;1412:5237:49;16801:26:63;-1:-1:-1;;;16801:26:63;3946:45:64;16801:26:63;;:::i;:::-;1412:5237:49;;;;-1:-1:-1;;;1412:5237:49;;;16677:21:63;1412:5237:49;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;4618:99:76;;;;1412:5237:49;16506:533:63;;;;;;;16673:115;1412:5237:49;;-1:-1:-1;;;16751:22:63;;1412:5237:49;;16751:22:63;15678:41;;;;;;;;;;;;;;:::i;:::-;;;1412:5237:49;;;;;;;;;;;;15678:41:63;;;;;;;;;;1412:5237:49;;;3946:45:64;1412:5237:49;;;;;15287:172:63;1412:5237:49;;;;;;;;;;2508:20:60;;;1412:5237:49;;;;2508:20:60;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;-1:-1:-1;;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2508:20:60;2548:38:67;;2508:20:60;;;;;;:::i;:::-;1412:5237:49;2498:31:60;;3946:45:64;1412:5237:49;;3946:45:64;1412:5237:49;;:::i;15292:50:63:-;;;;;;;;;;;;;;:::i;:::-;;;;15008:102;1412:5237:49;;-1:-1:-1;;;15073:26:63;;1412:5237:49;;15073:26:63;15012:38;;;;;;;;;;;;;;:::i;:::-;;;;;1412:5237:49;;;3946:45:64;1412:5237:49;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1412:5237:49;;;;;;;;;;;;;;;17298:361:63;17459:10;;;;1412:5237:49;-1:-1:-1;;;;;17479:25:63;1412:5237:49;;-1:-1:-1;17455:108:63;;17576:10;1412:5237:49;17576:22:63;17572:81;;17298:361::o;17572:81::-;17459:10;1412:5237:49;-1:-1:-1;;;17621:21:63;;;;;17455:108;17459:10;1412:5237:49;-1:-1:-1;;;17527:25:63;;;;;4430:138:64;1412:5237:49;;-1:-1:-1;;;4486:26:64;;:10;:26;;;1412:5237:49;4486:26:64;1412:5237:49;;;4486:24:64;:26;;;;;;;-1:-1:-1;4486:26:64;;;4430:138;4485:27;;4481:81;;4430:138::o;4481:81::-;1412:5237:49;;-1:-1:-1;;;4535:16:64;;4486:26;;4535:16;4486:26;;;;;;;;;;;;;;:::i;:::-;;;;1412:5237:49;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;2483:766:32:-;1412:5237:49;;;2483:766:32;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:32;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;1412:5237:49;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:32;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:5237:49;;6946:20:32;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;1412:5237:49;;;;;;;;;;6633:164:32;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o;1412:5237:49:-;5015:22:67;1412:5237:49;;;;;;5015:22:67;-1:-1:-1;1412:5237:49;;;;-1:-1:-1;1412:5237:49;:::o;2215:404:36:-;-1:-1:-1;1412:5237:49;;;4352:12:36;1412:5237:49;;;;;;;;5015:22:67;1412:5237:49;-1:-1:-1;;;1412:5237:49;;;;;;;;;;4352:12:36;1412:5237:49;;;5015:22:67;1412:5237:49;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5015:22:67;1412:5237:49;;;;4352:12:36;1412:5237:49;;;;4352:12:36;2548:11;:::o;1412:5237:49:-;-1:-1:-1;;;1412:5237:49;;;;;;;;2294:319:36;2590:12;;;:::o;2215:404::-;-1:-1:-1;1412:5237:49;;;4352:12:36;;;1412:5237:49;;;;;;2299:21:36;;1412:5237:49;;;-1:-1:-1;;;1412:5237:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1412:5237:49;;-1:-1:-1;1412:5237:49;;;;;;-1:-1:-1;1412:5237:49;2494:12:36;1412:5237:49;;;-1:-1:-1;1412:5237:49;;;2548:11:36;:::o;2294:319::-;2590:12;;-1:-1:-1;2590:12:36;:::o;2787:1388::-;-1:-1:-1;1412:5237:49;;;2990:12:36;1412:5237:49;;;;;;-1:-1:-1;;1412:5237:49;3024:15:36;;;;-1:-1:-1;;1412:5237:49;;;;;;;;;3345:22:67;1412:5237:49;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;1412:5237:49;;;3345:22:67;1412:5237:49;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3345:22:67;1412:5237:49;;;2990:12:36;1412:5237:49;;;;;;2990:12:36;4104:11;:::o;1412:5237:49:-;-1:-1:-1;;;1412:5237:49;;;;;;;;3502:398:36;1412:5237:49;3572:22:36;3694:26;3572:22;;:::i;:::-;1412:5237:49;;;;;;3694:26:36;;;;:::i;1412:5237:49:-;;;;;2990:12:36;1412:5237:49;;;;;;3502:398:36;;;;;1412:5237:49;-1:-1:-1;;;1412:5237:49;;;;;;;;;-1:-1:-1;;;1412:5237:49;;;;;;;;3020:1149:36;4146:12;;;:::o","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":9944,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":8821,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":8459,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3025,"length":20},{"start":7528,"length":20},{"start":8204,"length":20}]}}},"methodIdentifiers":{"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)":"0db0f77c","createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)":"32e7661f","execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":"0bed7615","pruneBottomUpMsgBatches(uint256)":"bacc656d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":\"BatchAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchWithNoMessages\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddIncompleteQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddSignatory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedRemoveIncompleteQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchSource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgDstSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRetentionHeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxMsgsPerBatchExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughSubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QuorumAlreadyProcessed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureReplay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroMembershipWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"membershipProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"addBottomUpMsgBatchSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"membershipRootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"membershipWeight\",\"type\":\"uint256\"}],\"name\":\"createBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"}],\"name\":\"execBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newRetentionHeight\",\"type\":\"uint256\"}],\"name\":\"pruneBottomUpMsgBatches\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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\":{\"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)\":{\"params\":{\"height\":\"- the height of the block in the checkpoint\",\"membershipProof\":\"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`\",\"signature\":\"- the signature of the checkpoint\",\"weight\":\"- the weight of the validator\"}},\"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)\":{\"params\":{\"batch\":\"- a bottom-up batch\",\"membershipRootHash\":\"- a root hash of the Merkle tree built from the validator public keys and their weight\",\"membershipWeight\":\"- the total weight of the membership\"}},\"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"details\":\"this method is called by the corresponding subnet actor. Called from a subnet actor if the batch is valid.\",\"params\":{\"batch\":\"The batch of bottom-up cross-network messages to be executed.\"}},\"pruneBottomUpMsgBatches(uint256)\":{\"params\":{\"newRetentionHeight\":\"- the height of the oldest batch to keep\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)\":{\"notice\":\"checks whether the provided batch signature for the block at height `height` is valid and accumulates that\"},\"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)\":{\"notice\":\"cuts a new message batch if the batch period is reached without the maximum number of messages being reached.\"},\"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"notice\":\"submit a batch of cross-net messages for execution.\"},\"pruneBottomUpMsgBatches(uint256)\":{\"notice\":\"Set a new batch retention height and garbage collect all batches in range [`retentionHeight`, `newRetentionHeight`)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/router/BottomUpRouterFacet.sol\":\"BottomUpRouterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20\",\"dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":"BatchAlreadyExists"},{"inputs":[],"type":"error","name":"BatchNotCreated"},{"inputs":[],"type":"error","name":"BatchWithNoMessages"},{"inputs":[],"type":"error","name":"FailedAddIncompleteQuorum"},{"inputs":[],"type":"error","name":"FailedAddSignatory"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"FailedRemoveIncompleteQuorum"},{"inputs":[],"type":"error","name":"InvalidActorAddress"},{"inputs":[],"type":"error","name":"InvalidBatchEpoch"},{"inputs":[],"type":"error","name":"InvalidBatchSource"},{"inputs":[],"type":"error","name":"InvalidCrossMsgDstSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgNonce"},{"inputs":[],"type":"error","name":"InvalidRetentionHeight"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"MaxMsgsPerBatchExceeded"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotAuthorized"},{"inputs":[],"type":"error","name":"NotEnoughSubnetCircSupply"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[],"type":"error","name":"NotSystemActor"},{"inputs":[],"type":"error","name":"QuorumAlreadyProcessed"},{"inputs":[],"type":"error","name":"SignatureReplay"},{"inputs":[],"type":"error","name":"SubnetNotFound"},{"inputs":[],"type":"error","name":"ZeroMembershipWeight"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32[]","name":"membershipProof","type":"bytes32[]"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addBottomUpMsgBatchSignature"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"bytes32","name":"membershipRootHash","type":"bytes32"},{"internalType":"uint256","name":"membershipWeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createBottomUpMsgBatch"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}],"stateMutability":"nonpayable","type":"function","name":"execBottomUpMsgBatch"},{"inputs":[{"internalType":"uint256","name":"newRetentionHeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"pruneBottomUpMsgBatches"}],"devdoc":{"kind":"dev","methods":{"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)":{"params":{"height":"- the height of the block in the checkpoint","membershipProof":"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`","signature":"- the signature of the checkpoint","weight":"- the weight of the validator"}},"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)":{"params":{"batch":"- a bottom-up batch","membershipRootHash":"- a root hash of the Merkle tree built from the validator public keys and their weight","membershipWeight":"- the total weight of the membership"}},"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":{"details":"this method is called by the corresponding subnet actor. Called from a subnet actor if the batch is valid.","params":{"batch":"The batch of bottom-up cross-network messages to be executed."}},"pruneBottomUpMsgBatches(uint256)":{"params":{"newRetentionHeight":"- the height of the oldest batch to keep"}}},"version":1},"userdoc":{"kind":"user","methods":{"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)":{"notice":"checks whether the provided batch signature for the block at height `height` is valid and accumulates that"},"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)":{"notice":"cuts a new message batch if the batch period is reached without the maximum number of messages being reached."},"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":{"notice":"submit a batch of cross-net messages for execution."},"pruneBottomUpMsgBatches(uint256)":{"notice":"Set a new batch retention height and garbage collect all batches in range [`retentionHeight`, `newRetentionHeight`)"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/router/BottomUpRouterFacet.sol":"BottomUpRouterFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec","urls":["bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20","dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","id":39602,"exportedSymbols":{"Address":[32838],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpMsgBatch":[49945],"BottomUpRouterFacet":[39601],"CrossMsg":[49974],"CrossMsgHelper":[40781],"GatewayActorModifiers":[43137],"IPCMsgType":[37364],"ISubnetActor":[40428],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgNonce":[37424],"LibGateway":[42944],"LibQuorum":[43948],"MaxMsgsPerBatchExceeded":[37382],"NotEnoughSubnetCircSupply":[37474],"NotRegisteredSubnet":[37482],"QuorumObjKind":[50012],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorGetterFacet":[50887],"SubnetID":[50077],"SubnetIDHelper":[48072],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SupplySource":[50226],"SupplySourceHelper":[48398]},"nodeType":"SourceUnit","src":"46:6604:49","nodes":[{"id":39237,"nodeType":"PragmaDirective","src":"46:23:49","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39239,"nodeType":"ImportDirective","src":"71:63:49","nodes":[],"absolutePath":"src/interfaces/ISubnetActor.sol","file":"../../interfaces/ISubnetActor.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":40429,"symbolAliases":[{"foreign":{"id":39238,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40428,"src":"79:12:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39241,"nodeType":"ImportDirective","src":"135:75:49","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":39240,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43137,"src":"143:21:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39243,"nodeType":"ImportDirective","src":"211:60:49","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":39242,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"219:16:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39245,"nodeType":"ImportDirective","src":"272:52:49","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":39244,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"280:10:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39258,"nodeType":"ImportDirective","src":"325:293:49","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":39246,"name":"BatchNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37388,"src":"333:15:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39247,"name":"BatchAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37380,"src":"350:18:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39248,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"370:17:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39249,"name":"NotEnoughSubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37474,"src":"389:25:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39250,"name":"SubnetNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37506,"src":"416:15:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39251,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37508,"src":"433:14:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39252,"name":"InvalidBatchSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37412,"src":"449:18:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39253,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"469:23:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39254,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"494:19:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39255,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"515:24:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39256,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"541:19:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39257,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"562:20:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39260,"nodeType":"ImportDirective","src":"619:48:49","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":39259,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"627:6:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39262,"nodeType":"ImportDirective","src":"668:50:49","nodes":[],"absolutePath":"src/lib/LibQuorum.sol","file":"../../lib/LibQuorum.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":43949,"symbolAliases":[{"foreign":{"id":39261,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"676:9:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39264,"nodeType":"ImportDirective","src":"719:55:49","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":39263,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"727:13:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39266,"nodeType":"ImportDirective","src":"775:65:49","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":39265,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"783:7:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39268,"nodeType":"ImportDirective","src":"841:54:49","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":37365,"symbolAliases":[{"foreign":{"id":39267,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"849:10:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39271,"nodeType":"ImportDirective","src":"897:62:49","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":39269,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"905:8:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39270,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"915:8:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39273,"nodeType":"ImportDirective","src":"960:60:49","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":39272,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"968:14:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39275,"nodeType":"ImportDirective","src":"1022:68:49","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../../lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":39274,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"1030:18:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39277,"nodeType":"ImportDirective","src":"1091:54:49","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":39276,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"1099:12:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39279,"nodeType":"ImportDirective","src":"1146:79:49","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../../subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":39278,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1154:22:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39281,"nodeType":"ImportDirective","src":"1227:60:49","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":39280,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"1235:14:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39283,"nodeType":"ImportDirective","src":"1288:66:49","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":39282,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"1296:17:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39285,"nodeType":"ImportDirective","src":"1355:55:49","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39602,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":39284,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"1363:11:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39601,"nodeType":"ContractDefinition","src":"1412:5237:49","nodes":[{"id":39291,"nodeType":"UsingForDirective","src":"1472:34:49","nodes":[],"global":false,"libraryName":{"id":39288,"name":"SubnetIDHelper","nameLocations":["1478:14:49"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"1478:14:49"},"typeName":{"id":39290,"nodeType":"UserDefinedTypeName","pathNode":{"id":39289,"name":"SubnetID","nameLocations":["1497:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1497:8:49"},"referencedDeclaration":50077,"src":"1497:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":39295,"nodeType":"UsingForDirective","src":"1511:34:49","nodes":[],"global":false,"libraryName":{"id":39292,"name":"CrossMsgHelper","nameLocations":["1517:14:49"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"1517:14:49"},"typeName":{"id":39294,"nodeType":"UserDefinedTypeName","pathNode":{"id":39293,"name":"CrossMsg","nameLocations":["1536:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1536:8:49"},"referencedDeclaration":49974,"src":"1536:8:49","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":39299,"nodeType":"UsingForDirective","src":"1550:42:49","nodes":[],"global":false,"libraryName":{"id":39296,"name":"SupplySourceHelper","nameLocations":["1556:18:49"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"1556:18:49"},"typeName":{"id":39298,"nodeType":"UserDefinedTypeName","pathNode":{"id":39297,"name":"SupplySource","nameLocations":["1579:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"1579:12:49"},"referencedDeclaration":50226,"src":"1579:12:49","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":39303,"nodeType":"UsingForDirective","src":"1597:40:49","nodes":[],"global":false,"libraryName":{"id":39300,"name":"StorableMsgHelper","nameLocations":["1603:17:49"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"1603:17:49"},"typeName":{"id":39302,"nodeType":"UserDefinedTypeName","pathNode":{"id":39301,"name":"StorableMsg","nameLocations":["1625:11:49"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"1625:11:49"},"referencedDeclaration":49991,"src":"1625:11:49","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":39442,"nodeType":"FunctionDefinition","src":"1922:1524:49","nodes":[],"body":{"id":39441,"nodeType":"Block","src":"1994:1452:49","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":39316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":39310,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2008:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2014:8:49","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49936,"src":"2008:14:49","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":39312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2023:8:49","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"2008:23:49","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":39313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2008:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":39314,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2037:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2041:6:49","memberName":"sender","nodeType":"MemberAccess","src":"2037:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2008:39:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39321,"nodeType":"IfStatement","src":"2004:97:49","trueBody":{"id":39320,"nodeType":"Block","src":"2049:52:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39317,"name":"InvalidBatchSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37412,"src":"2070:18:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2070:20:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39319,"nodeType":"RevertStatement","src":"2063:27:49"}]}},{"expression":{"arguments":[{"id":39325,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2137:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":39322,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"2111:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2122:14:49","memberName":"checkMsgLength","nodeType":"MemberAccess","referencedDeclaration":42943,"src":"2111:25:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory) view"}},"id":39326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2111:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39327,"nodeType":"ExpressionStatement","src":"2111:32:49"},{"assignments":[39329,39332],"declarations":[{"constant":false,"id":39329,"mutability":"mutable","name":"subnetExists","nameLocation":"2160:12:49","nodeType":"VariableDeclaration","scope":39441,"src":"2155:17:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39328,"name":"bool","nodeType":"ElementaryTypeName","src":"2155:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39332,"mutability":"mutable","name":"subnet","nameLocation":"2189:6:49","nodeType":"VariableDeclaration","scope":39441,"src":"2174:21:49","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":39331,"nodeType":"UserDefinedTypeName","pathNode":{"id":39330,"name":"Subnet","nameLocations":["2174:6:49"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"2174:6:49"},"referencedDeclaration":50091,"src":"2174:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":39338,"initialValue":{"arguments":[{"expression":{"id":39335,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2220:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2224:6:49","memberName":"sender","nodeType":"MemberAccess","src":"2220:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":39333,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"2199:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:9:49","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42655,"src":"2199:20:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":39337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2199:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"2154:77:49"},{"condition":{"id":39340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2245:13:49","subExpression":{"id":39339,"name":"subnetExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39329,"src":"2246:12:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39345,"nodeType":"IfStatement","src":"2241:67:49","trueBody":{"id":39344,"nodeType":"Block","src":"2260:48:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39341,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37508,"src":"2281:14:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2281:16:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39343,"nodeType":"RevertStatement","src":"2274:23:49"}]}},{"assignments":[39347],"declarations":[{"constant":false,"id":39347,"mutability":"mutable","name":"totalValue","nameLocation":"2326:10:49","nodeType":"VariableDeclaration","scope":39441,"src":"2318:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39346,"name":"uint256","nodeType":"ElementaryTypeName","src":"2318:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39348,"nodeType":"VariableDeclarationStatement","src":"2318:18:49"},{"assignments":[39350],"declarations":[{"constant":false,"id":39350,"mutability":"mutable","name":"totalFee","nameLocation":"2354:8:49","nodeType":"VariableDeclaration","scope":39441,"src":"2346:16:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39349,"name":"uint256","nodeType":"ElementaryTypeName","src":"2346:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39351,"nodeType":"VariableDeclarationStatement","src":"2346:16:49"},{"assignments":[39353],"declarations":[{"constant":false,"id":39353,"mutability":"mutable","name":"crossMsgLength","nameLocation":"2380:14:49","nodeType":"VariableDeclaration","scope":39441,"src":"2372:22:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39352,"name":"uint256","nodeType":"ElementaryTypeName","src":"2372:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39357,"initialValue":{"expression":{"expression":{"id":39354,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2397:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2403:4:49","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"2397:10:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":39356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2408:6:49","memberName":"length","nodeType":"MemberAccess","src":"2397:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2372:42:49"},{"body":{"id":39386,"nodeType":"Block","src":"2462:176:49","statements":[{"expression":{"id":39371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39364,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39347,"src":"2476:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"expression":{"baseExpression":{"expression":{"id":39365,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2490:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2496:4:49","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"2490:10:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":39368,"indexExpression":{"id":39367,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39359,"src":"2501:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2490:13:49","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":39369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2504:7:49","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2490:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":39370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2512:5:49","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49982,"src":"2490:27:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2476:41:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39372,"nodeType":"ExpressionStatement","src":"2476:41:49"},{"expression":{"id":39380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39373,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39350,"src":"2531:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"expression":{"baseExpression":{"expression":{"id":39374,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2543:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2549:4:49","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"2543:10:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":39377,"indexExpression":{"id":39376,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39359,"src":"2554:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2543:13:49","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":39378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2557:7:49","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2543:21:49","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":39379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2565:3:49","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":49990,"src":"2543:25:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2531:37:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39381,"nodeType":"ExpressionStatement","src":"2531:37:49"},{"id":39385,"nodeType":"UncheckedBlock","src":"2582:46:49","statements":[{"expression":{"id":39383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2610:3:49","subExpression":{"id":39382,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39359,"src":"2612:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39384,"nodeType":"ExpressionStatement","src":"2610:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39361,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39359,"src":"2440:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39362,"name":"crossMsgLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39353,"src":"2444:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2440:18:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39387,"initializationExpression":{"assignments":[39359],"declarations":[{"constant":false,"id":39359,"mutability":"mutable","name":"i","nameLocation":"2437:1:49","nodeType":"VariableDeclaration","scope":39387,"src":"2429:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39358,"name":"uint256","nodeType":"ElementaryTypeName","src":"2429:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39360,"nodeType":"VariableDeclarationStatement","src":"2429:9:49"},"nodeType":"ForStatement","src":"2424:214:49"},{"assignments":[39389],"declarations":[{"constant":false,"id":39389,"mutability":"mutable","name":"totalAmount","nameLocation":"2656:11:49","nodeType":"VariableDeclaration","scope":39441,"src":"2648:19:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39388,"name":"uint256","nodeType":"ElementaryTypeName","src":"2648:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39393,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39390,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39350,"src":"2670:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":39391,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39347,"src":"2681:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2670:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2648:43:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39394,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39332,"src":"2706:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":39395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2713:10:49","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"2706:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39396,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39389,"src":"2726:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2706:31:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39402,"nodeType":"IfStatement","src":"2702:96:49","trueBody":{"id":39401,"nodeType":"Block","src":"2739:59:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39398,"name":"NotEnoughSubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37474,"src":"2760:25:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2760:27:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39400,"nodeType":"RevertStatement","src":"2753:34:49"}]}},{"expression":{"id":39407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":39403,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39332,"src":"2808:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":39405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2815:10:49","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"2808:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":39406,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39389,"src":"2829:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2808:32:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39408,"nodeType":"ExpressionStatement","src":"2808:32:49"},{"expression":{"arguments":[{"expression":{"id":39412,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39332,"src":"2910:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":39413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2917:2:49","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"2910:9:49","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},{"expression":{"id":39414,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39307,"src":"2921:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2927:4:49","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"2921:10:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"},{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"expression":{"id":39409,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"2885:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2896:13:49","memberName":"applyMessages","nodeType":"MemberAccess","referencedDeclaration":42752,"src":"2885:24:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct CrossMsg memory[] memory)"}},"id":39416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2885:47:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39417,"nodeType":"ExpressionStatement","src":"2885:47:49"},{"condition":{"expression":{"id":39418,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2947:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2949:22:49","memberName":"crossMsgRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":43067,"src":"2947:24:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39440,"nodeType":"IfStatement","src":"2943:497:49","trueBody":{"id":39439,"nodeType":"Block","src":"2973:467:49","statements":[{"expression":{"arguments":[{"expression":{"id":39423,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3182:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3186:6:49","memberName":"sender","nodeType":"MemberAccess","src":"3182:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":39427,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40428,"src":"3252:12:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISubnetActor_$40428_$","typeString":"type(contract ISubnetActor)"}},"id":39428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3265:26:49","memberName":"distributeRewardToRelayers","nodeType":"MemberAccess","referencedDeclaration":40427,"src":"3252:39:49","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$50012_$returns$__$","typeString":"function ISubnetActor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"}},{"components":[{"expression":{"id":39429,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3314:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":39430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3320:6:49","memberName":"number","nodeType":"MemberAccess","src":"3314:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39431,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39350,"src":"3328:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39432,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"3338:13:49","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$50012_$","typeString":"type(enum QuorumObjKind)"}},"id":39433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3352:10:49","memberName":"Checkpoint","nodeType":"MemberAccess","referencedDeclaration":50010,"src":"3338:24:49","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}}],"id":39434,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3313:50:49","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$50012_$","typeString":"tuple(uint256,uint256,enum QuorumObjKind)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$50012_$returns$__$","typeString":"function ISubnetActor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"},{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$50012_$","typeString":"tuple(uint256,uint256,enum QuorumObjKind)"}],"expression":{"id":39425,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3216:3:49","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3220:10:49","memberName":"encodeCall","nodeType":"MemberAccess","src":"3216:14:49","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3216:165:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":39436,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39350,"src":"3406:8:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39420,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"3126:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":39422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3134:21:49","memberName":"functionCallWithValue","nodeType":"MemberAccess","referencedDeclaration":32570,"src":"3126:29:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":39437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3174:6:49","3210:4:49","3399:5:49"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"3126:303:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":39438,"nodeType":"ExpressionStatement","src":"3126:303:49"}]}}]},"documentation":{"id":39304,"nodeType":"StructuredDocumentation","src":"1643:274:49","text":"@notice submit a batch of cross-net messages for execution.\n @dev this method is called by the corresponding subnet actor.\n Called from a subnet actor if the batch is valid.\n @param batch The batch of bottom-up cross-network messages to be executed."},"functionSelector":"0bed7615","implemented":true,"kind":"function","modifiers":[],"name":"execBottomUpMsgBatch","nameLocation":"1931:20:49","parameters":{"id":39308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39307,"mutability":"mutable","name":"batch","nameLocation":"1978:5:49","nodeType":"VariableDeclaration","scope":39442,"src":"1952:31:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":39306,"nodeType":"UserDefinedTypeName","pathNode":{"id":39305,"name":"BottomUpMsgBatch","nameLocations":["1952:16:49"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"1952:16:49"},"referencedDeclaration":49945,"src":"1952:16:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"1951:33:49"},"returnParameters":{"id":39309,"nodeType":"ParameterList","parameters":[],"src":"1994:0:49"},"scope":39601,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39515,"nodeType":"FunctionDefinition","src":"3817:1111:49","nodes":[],"body":{"id":39514,"nodeType":"Block","src":"3991:937:49","nodes":[],"statements":[{"expression":{"arguments":[{"id":39458,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4027:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":39455,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"4001:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4012:14:49","memberName":"checkMsgLength","nodeType":"MemberAccess","referencedDeclaration":42943,"src":"4001:25:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory) view"}},"id":39459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4001:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39460,"nodeType":"ExpressionStatement","src":"4001:32:49"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":39473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39461,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4270:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4276:11:49","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"4270:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":39463,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4290:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4292:22:49","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":43045,"src":"4290:24:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4270:44:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4318:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4270:49:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39468,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4323:5:49","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":39469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4329:6:49","memberName":"number","nodeType":"MemberAccess","src":"4323:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":39470,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4339:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4345:11:49","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"4339:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4323:33:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4270:86:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39478,"nodeType":"IfStatement","src":"4266:143:49","trueBody":{"id":39477,"nodeType":"Block","src":"4358:51:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39474,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"4379:17:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4379:19:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39476,"nodeType":"RevertStatement","src":"4372:26:49"}]}},{"condition":{"arguments":[{"expression":{"id":39481,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4458:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4464:11:49","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"4458:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39479,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"4423:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4434:23:49","memberName":"bottomUpBatchMsgsExists","nodeType":"MemberAccess","referencedDeclaration":41916,"src":"4423:34:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":39483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4423:53:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39488,"nodeType":"IfStatement","src":"4419:111:49","trueBody":{"id":39487,"nodeType":"Block","src":"4478:52:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39484,"name":"BatchAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37380,"src":"4499:18:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4499:20:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39486,"nodeType":"RevertStatement","src":"4492:27:49"}]}},{"expression":{"arguments":[{"expression":{"id":39492,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4587:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4589:25:49","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"4587:27:49","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"expression":{"id":39494,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4639:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4645:11:49","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"4639:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":39499,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4700:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":39497,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4689:3:49","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4693:6:49","memberName":"encode","nodeType":"MemberAccess","src":"4689:10:49","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4689:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":39496,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4679:9:49","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":39501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4679:28:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39502,"name":"membershipRootHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39448,"src":"4741:18:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39503,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39450,"src":"4791:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39504,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4841:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4843:18:49","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":43030,"src":"4841:20:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":39489,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"4540:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4550:16:49","memberName":"createQuorumInfo","nodeType":"MemberAccess","referencedDeclaration":43740,"src":"4540:26:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32,bytes32,uint256,uint256)"}},"id":39506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["4581:4:49","4628:9:49","4670:7:49","4721:18:49","4773:16:49","4821:18:49"],"names":["self","objHeight","objHash","membershipRootHash","membershipWeight","majorityPercentage"],"nodeType":"FunctionCall","src":"4540:332:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39507,"nodeType":"ExpressionStatement","src":"4540:332:49"},{"expression":{"arguments":[{"id":39511,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39446,"src":"4915:5:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":39508,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"4882:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4893:21:49","memberName":"storeBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":42007,"src":"4882:32:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory)"}},"id":39512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4882:39:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39513,"nodeType":"ExpressionStatement","src":"4882:39:49"}]},"documentation":{"id":39443,"nodeType":"StructuredDocumentation","src":"3452:360:49","text":"@notice cuts a new message batch if the batch period is reached without\n the maximum number of messages being reached.\n @param batch - a bottom-up batch\n @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight\n @param membershipWeight - the total weight of the membership"},"functionSelector":"32e7661f","implemented":true,"kind":"function","modifiers":[{"id":39453,"kind":"modifierInvocation","modifierName":{"id":39452,"name":"systemActorOnly","nameLocations":["3975:15:49"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"3975:15:49"},"nodeType":"ModifierInvocation","src":"3975:15:49"}],"name":"createBottomUpMsgBatch","nameLocation":"3826:22:49","parameters":{"id":39451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39446,"mutability":"mutable","name":"batch","nameLocation":"3884:5:49","nodeType":"VariableDeclaration","scope":39515,"src":"3858:31:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":39445,"nodeType":"UserDefinedTypeName","pathNode":{"id":39444,"name":"BottomUpMsgBatch","nameLocations":["3858:16:49"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"3858:16:49"},"referencedDeclaration":49945,"src":"3858:16:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"},{"constant":false,"id":39448,"mutability":"mutable","name":"membershipRootHash","nameLocation":"3907:18:49","nodeType":"VariableDeclaration","scope":39515,"src":"3899:26:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3899:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39450,"mutability":"mutable","name":"membershipWeight","nameLocation":"3943:16:49","nodeType":"VariableDeclaration","scope":39515,"src":"3935:24:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39449,"name":"uint256","nodeType":"ElementaryTypeName","src":"3935:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3848:117:49"},"returnParameters":{"id":39454,"nodeType":"ParameterList","parameters":[],"src":"3991:0:49"},"scope":39601,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39553,"nodeType":"FunctionDefinition","src":"5141:386:49","nodes":[],"body":{"id":39552,"nodeType":"Block","src":"5227:300:49","nodes":[],"statements":[{"body":{"id":39542,"nodeType":"Block","src":"5325:114:49","statements":[{"expression":{"id":39536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5339:30:49","subExpression":{"baseExpression":{"expression":{"id":39532,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5346:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5348:18:49","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"5346:20:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":39535,"indexExpression":{"id":39534,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39524,"src":"5367:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5346:23:49","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39537,"nodeType":"ExpressionStatement","src":"5339:30:49"},{"id":39541,"nodeType":"UncheckedBlock","src":"5383:46:49","statements":[{"expression":{"id":39539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5411:3:49","subExpression":{"id":39538,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39524,"src":"5413:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39540,"nodeType":"ExpressionStatement","src":"5411:3:49"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39529,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39524,"src":"5299:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39530,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39518,"src":"5303:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5299:22:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39543,"initializationExpression":{"assignments":[39524],"declarations":[{"constant":false,"id":39524,"mutability":"mutable","name":"h","nameLocation":"5250:1:49","nodeType":"VariableDeclaration","scope":39543,"src":"5242:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39523,"name":"uint256","nodeType":"ElementaryTypeName","src":"5242:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39528,"initialValue":{"expression":{"expression":{"id":39525,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5254:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5256:25:49","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"5254:27:49","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":39527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5282:15:49","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"5254:43:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5242:55:49"},"nodeType":"ForStatement","src":"5237:202:49"},{"expression":{"arguments":[{"expression":{"id":39547,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5472:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5474:25:49","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"5472:27:49","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":39549,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39518,"src":"5501:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39544,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"5449:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5459:12:49","memberName":"pruneQuorums","nodeType":"MemberAccess","referencedDeclaration":43833,"src":"5449:22:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256)"}},"id":39550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5449:71:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39551,"nodeType":"ExpressionStatement","src":"5449:71:49"}]},"documentation":{"id":39516,"nodeType":"StructuredDocumentation","src":"4934:202:49","text":"@notice Set a new batch retention height and garbage collect all batches in range [`retentionHeight`, `newRetentionHeight`)\n @param newRetentionHeight - the height of the oldest batch to keep"},"functionSelector":"bacc656d","implemented":true,"kind":"function","modifiers":[{"id":39521,"kind":"modifierInvocation","modifierName":{"id":39520,"name":"systemActorOnly","nameLocations":["5211:15:49"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"5211:15:49"},"nodeType":"ModifierInvocation","src":"5211:15:49"}],"name":"pruneBottomUpMsgBatches","nameLocation":"5150:23:49","parameters":{"id":39519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39518,"mutability":"mutable","name":"newRetentionHeight","nameLocation":"5182:18:49","nodeType":"VariableDeclaration","scope":39553,"src":"5174:26:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39517,"name":"uint256","nodeType":"ElementaryTypeName","src":"5174:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5173:28:49"},"returnParameters":{"id":39522,"nodeType":"ParameterList","parameters":[],"src":"5227:0:49"},"scope":39601,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39600,"nodeType":"FunctionDefinition","src":"5962:685:49","nodes":[],"body":{"id":39599,"nodeType":"Block","src":"6137:510:49","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":39569,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"6182:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6184:25:49","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"6182:27:49","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":39571,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39556,"src":"6211:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39566,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"6147:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6157:24:49","memberName":"isHeightAlreadyProcessed","nodeType":"MemberAccess","referencedDeclaration":43851,"src":"6147:34:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256) view"}},"id":39572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6147:71:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39573,"nodeType":"ExpressionStatement","src":"6147:71:49"},{"assignments":[39575,null],"declarations":[{"constant":false,"id":39575,"mutability":"mutable","name":"exists","nameLocation":"6286:6:49","nodeType":"VariableDeclaration","scope":39599,"src":"6281:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39574,"name":"bool","nodeType":"ElementaryTypeName","src":"6281:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":39580,"initialValue":{"arguments":[{"id":39578,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39556,"src":"6329:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39576,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"6298:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6309:19:49","memberName":"getBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":41868,"src":"6298:30:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpMsgBatch_$49945_storage_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpMsgBatch storage pointer)"}},"id":39579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:38:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpMsgBatch_$49945_storage_ptr_$","typeString":"tuple(bool,struct BottomUpMsgBatch storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"6280:56:49"},{"condition":{"id":39582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6350:7:49","subExpression":{"id":39581,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39575,"src":"6351:6:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39587,"nodeType":"IfStatement","src":"6346:62:49","trueBody":{"id":39586,"nodeType":"Block","src":"6359:49:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39583,"name":"BatchNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37388,"src":"6380:15:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6380:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39585,"nodeType":"RevertStatement","src":"6373:24:49"}]}},{"expression":{"arguments":[{"expression":{"id":39591,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"6466:1:49","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6468:25:49","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"6466:27:49","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":39593,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39556,"src":"6515:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39594,"name":"membershipProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39559,"src":"6552:15:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":39595,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39561,"src":"6589:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39596,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39563,"src":"6620:9:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":39588,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"6417:9:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6427:18:49","memberName":"addQuorumSignature","nodeType":"MemberAccess","referencedDeclaration":43664,"src":"6417:28:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32[] memory,uint256,bytes memory)"}},"id":39597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["6460:4:49","6507:6:49","6535:15:49","6581:6:49","6609:9:49"],"names":["self","height","membershipProof","weight","signature"],"nodeType":"FunctionCall","src":"6417:223:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39598,"nodeType":"ExpressionStatement","src":"6417:223:49"}]},"documentation":{"id":39554,"nodeType":"StructuredDocumentation","src":"5533:424:49","text":"@notice checks whether the provided batch signature for the block at height `height` is valid and accumulates that\n @param height - the height of the block in the checkpoint\n @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight`\n @param weight - the weight of the validator\n @param signature - the signature of the checkpoint"},"functionSelector":"0db0f77c","implemented":true,"kind":"function","modifiers":[],"name":"addBottomUpMsgBatchSignature","nameLocation":"5971:28:49","parameters":{"id":39564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39556,"mutability":"mutable","name":"height","nameLocation":"6017:6:49","nodeType":"VariableDeclaration","scope":39600,"src":"6009:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39555,"name":"uint256","nodeType":"ElementaryTypeName","src":"6009:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39559,"mutability":"mutable","name":"membershipProof","nameLocation":"6050:15:49","nodeType":"VariableDeclaration","scope":39600,"src":"6033:32:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":39557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6033:7:49","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":39558,"nodeType":"ArrayTypeName","src":"6033:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":39561,"mutability":"mutable","name":"weight","nameLocation":"6083:6:49","nodeType":"VariableDeclaration","scope":39600,"src":"6075:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39560,"name":"uint256","nodeType":"ElementaryTypeName","src":"6075:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39563,"mutability":"mutable","name":"signature","nameLocation":"6112:9:49","nodeType":"VariableDeclaration","scope":39600,"src":"6099:22:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39562,"name":"bytes","nodeType":"ElementaryTypeName","src":"6099:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5999:128:49"},"returnParameters":{"id":39565,"nodeType":"ParameterList","parameters":[],"src":"6137:0:49"},"scope":39601,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":39286,"name":"GatewayActorModifiers","nameLocations":["1444:21:49"],"nodeType":"IdentifierPath","referencedDeclaration":43137,"src":"1444:21:49"},"id":39287,"nodeType":"InheritanceSpecifier","src":"1444:21:49"}],"canonicalName":"BottomUpRouterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[39601,43137],"name":"BottomUpRouterFacet","nameLocation":"1421:19:49","scope":39602,"usedErrors":[32461,32466,32469,37380,37382,37384,37388,37394,37396,37398,37402,37406,37408,37412,37420,37424,37432,37434,37458,37474,37482,37486,37502,37508,37512]}],"license":"MIT OR Apache-2.0"},"id":49} \ No newline at end of file diff --git a/.out/CheckpointingFacet.sol/CheckpointingFacet.json b/.out/CheckpointingFacet.sol/CheckpointingFacet.json new file mode 100644 index 000000000..ec937c641 --- /dev/null +++ b/.out/CheckpointingFacet.sol/CheckpointingFacet.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addCheckpointSignature","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"membershipProof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBottomUpCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"membershipRootHash","type":"bytes32","internalType":"bytes32"},{"name":"membershipWeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pruneBottomUpCheckpoints","inputs":[{"name":"newRetentionHeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"CheckpointAlreadyExists","inputs":[]},{"type":"error","name":"CheckpointNotCreated","inputs":[]},{"type":"error","name":"FailedAddIncompleteQuorum","inputs":[]},{"type":"error","name":"FailedAddSignatory","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"FailedRemoveIncompleteQuorum","inputs":[]},{"type":"error","name":"InvalidActorAddress","inputs":[]},{"type":"error","name":"InvalidCheckpointEpoch","inputs":[]},{"type":"error","name":"InvalidCheckpointSource","inputs":[]},{"type":"error","name":"InvalidRetentionHeight","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidSubnet","inputs":[]},{"type":"error","name":"NotAuthorized","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"NotSystemActor","inputs":[]},{"type":"error","name":"QuorumAlreadyProcessed","inputs":[]},{"type":"error","name":"SignatureReplay","inputs":[]},{"type":"error","name":"SubnetNotFound","inputs":[]},{"type":"error","name":"ZeroMembershipWeight","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657611768908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806347dc9b4f14610b0557806353b4e7bf1461061d57806374303771146102545763ac8183791461004857600080fd5b3461024f5760208060031936011261024f576004359061006661136a565b600b545b8281106101f95750600b54808311156101e7575b82811061008c57600b839055005b80600052600c8252604060002090600082556000600460019382858201558260028201558260038201550155600f8352604060002080549060008155816101c1575b505080600052604060002060405180828682945493848152019060005286600020926000905b87898284106101a8575050505061010d92500382611139565b8051908360005b83811061012557505050500161007e565b600085815260108852604090206001600160a01b03610144838661150d565b51166000528752604060002061015a81546113e1565b908161016b575b5050018490610114565b600091601f808211600114610185575050555b3880610161565b916101a18492938284528c8420940160051c8401878501611353565b555561017e565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b8281106101db57506100ce565b600081550183906101ce565b604051636819a3a960e01b8152600490fd5b80600052600882526040600020906000825560006004600193848101805484825580610236575b505082600282015582600382015501550161006a565b61024891855287852090810190611353565b3880610220565b600080fd5b3461024f5760031960603682011261024f576004356001600160401b0380821161024f5760808236039384011261024f576044359161029161136a565b60248082013594601d5480156106085786066105f65785600052602094600886526002604060002001546105e45760405192868401928784528560040135906042190181121561024f5760806040860152610100850193818701886102f8600483016111a1565b1660c0880152838101356022198236030181121561024f570183600482013591019589821161024f578160051b3603871361024f578190604060e08a0152526101208701959060005b8b8282106105c057505050508960608701526044870135958660808201526103868160648a01978b6103728a6111a1565b1660a083015203601f198101835282611139565b51902060ff601c5416600b548b106105ae57841561059c5780850294850403610587576103b28a61156e565b15610575576040519060a082018281108a821117610560576040528152600489820191843583526064604082019604865260608101600081526080820193600085528d600052600c8d52604060002092518355519660019788840155516002830155516003820155019051151560ff8019835416911617905560405195608087018781108982111761054b5760405287821161024f57600461045792369201016111c9565b855261046f87860193898552604087019586526111a1565b9760608601988952600052600887526040600020945186815116976001600160401b031998898854161787558084880192015180519389851161053757600160401b851161053757508190835485855580861061051a575b500191600052806000209060005b848110610500578b8b8b60048c8c8c5160028301555160038201550192511690825416179055600080f35b83516001600160a01b0316838201559281019285016104d5565b610531908560005286846000209182019101611353565b8c6104c7565b634e487b7160e01b60009081526041600452fd5b83634e487b7160e01b60005260416004526000fd5b84634e487b7160e01b60005260416004526000fd5b604051630cbd1cd360e11b8152600490fd5b82634e487b7160e01b60005260116004526000fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b80600192939499838060a01b036105d68c6111b5565b168152019801929101610341565b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b82634e487b7160e01b60005260126004526000fd5b3461024f57608036600319011261024f576024356001600160401b03811161024f573660238201121561024f578060040135906106598261115a565b916106676040519384611139565b8083526024602084019160051b8301019136831161024f57602401905b828210610af557836064356001600160401b03811161024f573660238201121561024f5780600401356106b681611171565b916106c46040519384611139565b818352366024838301011161024f57816000926024602093018386013783010152600b54600435106105ae57600435600052600860205260026040600020015415610ae357600435600052600c602052604060002091610725828454611441565b506004819492941015610acd57610abb576004356000908152600f602090815260408083206001600160a01b0387168452600101909152902054610aa957604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b03821183831017610a5f5760809082604052835190209201918252602081526107b78161111e565b51902093600181015494936000945b8451861015610829576107d9868661150d565b5190818110156108185760005260205260406000205b94600019811461080257600101946107c6565b634e487b7160e01b600052601160045260246000fd5b9060005260205260406000206107ef565b8603610a8757600435600052600f60205261085060018060a01b03821660406000206115eb565b15610a7557600435600052601060205260406000209060018060a01b0316600052602052604060002082516001600160401b038111610a5f5761089382546113e1565b601f8111610a22575b506020601f82116001146109bc57819293946000926109b1575b50508160011b916000199060031b1c19161790555b60038101805460443581018091116108025780825560028301548110156108ee57005b600483018054909160ff821661096f575060ff19166001179055610913600435611648565b1561095d577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949161095760ff600a541691549254604051938493600435908561141b565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9161095760ff600a5416915492604051938493600435908561141b565b0151905084806108b6565b601f198216908360005260206000209160005b818110610a0a575095836001959697106109f1575b505050811b0190556108cb565b015160001960f88460031b161c191690558480806109e4565b9192602060018192868b0151815501940192016109cf565b610a4f90836000526020600020601f840160051c81019160208510610a55575b601f0160051c0190611353565b8461089c565b9091508190610a42565b634e487b7160e01b600052604160045260246000fd5b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b6040516358cdd2e760e01b8152600490fd5b8135815260209182019101610684565b3461024f57602036600319011261024f576004356001600160401b03811161024f576080600319823603011261024f57610b716020610b5036610b4b600486018061118c565b6111c9565b60405180938192632cff562160e11b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f10576000916110e4575b50336001600160a01b03909116036110d25733156110c057604051610bbd8161111e565b6001600160401b03601954168152604051806020601a54918281520190601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9060005b8181106110a15786610c4660008888610c1f818a0382611139565b60208201526040518093819263aa5106cb60e01b8352604060048401526044830190611280565b336024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610fbf575b506020610c9c91604051809381926390ba52cf60e01b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f8d575b5060005260006020526040600020604051610cde8161111e565b6001600160401b03600483015416815260405180602060058501549182815201906005850160005260206000209060005b818110610f6e575050509181610d2c602093610d51950382611139565b8282015260405180938192630c133d1360e31b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f4f575b50610f3e57610db590610d9336610b4b600486018061118c565b9060405192839263c836244d60e01b8452604060048501526044840190611280565b6003198382030160248401526005606060408301926001600160401b036004860154168152604060208201528285015480945201920160005260206000209060005b818110610f1c575050509080602092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610ee1575b5015610ecf5760ff602b5460181c16610e4357005b60405160246020820192632643057b60e11b84520135602482015260006044820152600060648201526064815260a081018181106001600160401b03821117610a5f576040525161095b91600091829182335af13d15610ec7573d90610ea882611171565b91610eb66040519384611139565b82523d6000602084013e5b336112f3565b606090610ec1565b6040516303b5db8360e11b8152600490fd5b610f03915060203d602011610f09575b610efb8183611139565b8101906112db565b82610e2e565b503d610ef1565b6040513d6000823e3d90fd5b82546001600160a01b0316845285945060209093019260019283019201610df7565b6040516208ed5b60e31b8152600490fd5b610f68915060203d602011610f0957610efb8183611139565b83610d79565b82546001600160a01b0316845260209093019260019283019201610d0f565b90506020813d602011610fb7575b81610fa860209383611139565b8101031261024f575182610cc4565b3d9150610f9b565b90503d806000833e610fd18183611139565b81019060208183031261024f578051906001600160401b03821161024f57019060408282031261024f57604051916110088361111e565b80516001600160401b038116810361024f5783526020810151906001600160401b03821161024f57019080601f8301121561024f5781516110488161115a565b926110566040519485611139565b81845260208085019260051b82010192831161024f57602001905b82821061108957505050602080830191909152610c74565b602080916110968461126c565b815201910190611071565b82546001600160a01b0316845260209093019260019283019201610c04565b6040516370e4510960e01b8152600490fd5b604051637f39132760e11b8152600490fd5b90506020813d602011611116575b816110ff60209383611139565b8101031261024f576111109061126c565b82610b99565b3d91506110f2565b604081019081106001600160401b03821117610a5f57604052565b90601f801991011681019081106001600160401b03821117610a5f57604052565b6001600160401b038111610a5f5760051b60200190565b6001600160401b038111610a5f57601f01601f191660200190565b903590603e198136030182121561024f570190565b35906001600160401b038216820361024f57565b35906001600160a01b038216820361024f57565b919060408382031261024f57604051926111e28461111e565b836111ec826111a1565b815260209182810135906001600160401b03821161024f57019280601f8501121561024f57833561121c8161115a565b9461122a6040519687611139565b818652848087019260051b82010192831161024f5784809101915b83831061125457505050500152565b819061125f846111b5565b8152019101908490611245565b51906001600160a01b038216820361024f57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106112be575050505090565b83516001600160a01b0316855293810193928101926001016112b0565b9081602091031261024f5751801515810361024f5790565b901561133157815115611304575090565b803b1561130f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561134157805190602001fd5b604051630a12f52160e11b8152600490fd5b81811061135e575050565b60008155600101611353565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610f10576000916113c3575b50156113b157565b60405163f0d97f3b60e01b8152600490fd5b6113db915060203d8111610f0957610efb8183611139565b386113a9565b90600182811c92168015611411575b60208310146113fb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916113f0565b909194939260808201956002841015610acd576060938352602083015260408201520152565b81519190604183036114725761146b92506020820151906060604084015193015160001a9061147d565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161150157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156114f55780516001600160a01b038116156114ec57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b80518210156115215760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600d5481101561152157600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b6000818152600e60205260408120546115e657600d54600160401b8110156115d25790826115be6115a784600160409601600d55611537565b819391549060031b91821b91600019901b19161790565b9055600d54928152600e6020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461164157805490600160401b821015610a5f57600182018082558210156115215782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152600e6020526040812054909190801561172d576000199080820181811161171957600d5490838201918211611705578082036116d1575b505050600d5480156116bd5781019061169c82611537565b909182549160031b1b19169055600d558152600e6020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6116ef6116e06115a793611537565b90549060031b1c928392611537565b90558452600e6020526040842055388080611684565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220290a93e36b6805df006441b141a908ae17483412928035e4fb087e0eb0d40d6264736f6c63430008130033","sourceMap":"1175:4924:50:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":5025,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2961,"length":20},{"start":3180,"length":20},{"start":3260,"length":20},{"start":3441,"length":20},{"start":3622,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c806347dc9b4f14610b0557806353b4e7bf1461061d57806374303771146102545763ac8183791461004857600080fd5b3461024f5760208060031936011261024f576004359061006661136a565b600b545b8281106101f95750600b54808311156101e7575b82811061008c57600b839055005b80600052600c8252604060002090600082556000600460019382858201558260028201558260038201550155600f8352604060002080549060008155816101c1575b505080600052604060002060405180828682945493848152019060005286600020926000905b87898284106101a8575050505061010d92500382611139565b8051908360005b83811061012557505050500161007e565b600085815260108852604090206001600160a01b03610144838661150d565b51166000528752604060002061015a81546113e1565b908161016b575b5050018490610114565b600091601f808211600114610185575050555b3880610161565b916101a18492938284528c8420940160051c8401878501611353565b555561017e565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b8281106101db57506100ce565b600081550183906101ce565b604051636819a3a960e01b8152600490fd5b80600052600882526040600020906000825560006004600193848101805484825580610236575b505082600282015582600382015501550161006a565b61024891855287852090810190611353565b3880610220565b600080fd5b3461024f5760031960603682011261024f576004356001600160401b0380821161024f5760808236039384011261024f576044359161029161136a565b60248082013594601d5480156106085786066105f65785600052602094600886526002604060002001546105e45760405192868401928784528560040135906042190181121561024f5760806040860152610100850193818701886102f8600483016111a1565b1660c0880152838101356022198236030181121561024f570183600482013591019589821161024f578160051b3603871361024f578190604060e08a0152526101208701959060005b8b8282106105c057505050508960608701526044870135958660808201526103868160648a01978b6103728a6111a1565b1660a083015203601f198101835282611139565b51902060ff601c5416600b548b106105ae57841561059c5780850294850403610587576103b28a61156e565b15610575576040519060a082018281108a821117610560576040528152600489820191843583526064604082019604865260608101600081526080820193600085528d600052600c8d52604060002092518355519660019788840155516002830155516003820155019051151560ff8019835416911617905560405195608087018781108982111761054b5760405287821161024f57600461045792369201016111c9565b855261046f87860193898552604087019586526111a1565b9760608601988952600052600887526040600020945186815116976001600160401b031998898854161787558084880192015180519389851161053757600160401b851161053757508190835485855580861061051a575b500191600052806000209060005b848110610500578b8b8b60048c8c8c5160028301555160038201550192511690825416179055600080f35b83516001600160a01b0316838201559281019285016104d5565b610531908560005286846000209182019101611353565b8c6104c7565b634e487b7160e01b60009081526041600452fd5b83634e487b7160e01b60005260416004526000fd5b84634e487b7160e01b60005260416004526000fd5b604051630cbd1cd360e11b8152600490fd5b82634e487b7160e01b60005260116004526000fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b80600192939499838060a01b036105d68c6111b5565b168152019801929101610341565b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b82634e487b7160e01b60005260126004526000fd5b3461024f57608036600319011261024f576024356001600160401b03811161024f573660238201121561024f578060040135906106598261115a565b916106676040519384611139565b8083526024602084019160051b8301019136831161024f57602401905b828210610af557836064356001600160401b03811161024f573660238201121561024f5780600401356106b681611171565b916106c46040519384611139565b818352366024838301011161024f57816000926024602093018386013783010152600b54600435106105ae57600435600052600860205260026040600020015415610ae357600435600052600c602052604060002091610725828454611441565b506004819492941015610acd57610abb576004356000908152600f602090815260408083206001600160a01b0387168452600101909152902054610aa957604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b03821183831017610a5f5760809082604052835190209201918252602081526107b78161111e565b51902093600181015494936000945b8451861015610829576107d9868661150d565b5190818110156108185760005260205260406000205b94600019811461080257600101946107c6565b634e487b7160e01b600052601160045260246000fd5b9060005260205260406000206107ef565b8603610a8757600435600052600f60205261085060018060a01b03821660406000206115eb565b15610a7557600435600052601060205260406000209060018060a01b0316600052602052604060002082516001600160401b038111610a5f5761089382546113e1565b601f8111610a22575b506020601f82116001146109bc57819293946000926109b1575b50508160011b916000199060031b1c19161790555b60038101805460443581018091116108025780825560028301548110156108ee57005b600483018054909160ff821661096f575060ff19166001179055610913600435611648565b1561095d577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949161095760ff600a541691549254604051938493600435908561141b565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9161095760ff600a5416915492604051938493600435908561141b565b0151905084806108b6565b601f198216908360005260206000209160005b818110610a0a575095836001959697106109f1575b505050811b0190556108cb565b015160001960f88460031b161c191690558480806109e4565b9192602060018192868b0151815501940192016109cf565b610a4f90836000526020600020601f840160051c81019160208510610a55575b601f0160051c0190611353565b8461089c565b9091508190610a42565b634e487b7160e01b600052604160045260246000fd5b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b6040516358cdd2e760e01b8152600490fd5b8135815260209182019101610684565b3461024f57602036600319011261024f576004356001600160401b03811161024f576080600319823603011261024f57610b716020610b5036610b4b600486018061118c565b6111c9565b60405180938192632cff562160e11b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f10576000916110e4575b50336001600160a01b03909116036110d25733156110c057604051610bbd8161111e565b6001600160401b03601954168152604051806020601a54918281520190601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9060005b8181106110a15786610c4660008888610c1f818a0382611139565b60208201526040518093819263aa5106cb60e01b8352604060048401526044830190611280565b336024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610fbf575b506020610c9c91604051809381926390ba52cf60e01b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f8d575b5060005260006020526040600020604051610cde8161111e565b6001600160401b03600483015416815260405180602060058501549182815201906005850160005260206000209060005b818110610f6e575050509181610d2c602093610d51950382611139565b8282015260405180938192630c133d1360e31b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f4f575b50610f3e57610db590610d9336610b4b600486018061118c565b9060405192839263c836244d60e01b8452604060048501526044840190611280565b6003198382030160248401526005606060408301926001600160401b036004860154168152604060208201528285015480945201920160005260206000209060005b818110610f1c575050509080602092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610ee1575b5015610ecf5760ff602b5460181c16610e4357005b60405160246020820192632643057b60e11b84520135602482015260006044820152600060648201526064815260a081018181106001600160401b03821117610a5f576040525161095b91600091829182335af13d15610ec7573d90610ea882611171565b91610eb66040519384611139565b82523d6000602084013e5b336112f3565b606090610ec1565b6040516303b5db8360e11b8152600490fd5b610f03915060203d602011610f09575b610efb8183611139565b8101906112db565b82610e2e565b503d610ef1565b6040513d6000823e3d90fd5b82546001600160a01b0316845285945060209093019260019283019201610df7565b6040516208ed5b60e31b8152600490fd5b610f68915060203d602011610f0957610efb8183611139565b83610d79565b82546001600160a01b0316845260209093019260019283019201610d0f565b90506020813d602011610fb7575b81610fa860209383611139565b8101031261024f575182610cc4565b3d9150610f9b565b90503d806000833e610fd18183611139565b81019060208183031261024f578051906001600160401b03821161024f57019060408282031261024f57604051916110088361111e565b80516001600160401b038116810361024f5783526020810151906001600160401b03821161024f57019080601f8301121561024f5781516110488161115a565b926110566040519485611139565b81845260208085019260051b82010192831161024f57602001905b82821061108957505050602080830191909152610c74565b602080916110968461126c565b815201910190611071565b82546001600160a01b0316845260209093019260019283019201610c04565b6040516370e4510960e01b8152600490fd5b604051637f39132760e11b8152600490fd5b90506020813d602011611116575b816110ff60209383611139565b8101031261024f576111109061126c565b82610b99565b3d91506110f2565b604081019081106001600160401b03821117610a5f57604052565b90601f801991011681019081106001600160401b03821117610a5f57604052565b6001600160401b038111610a5f5760051b60200190565b6001600160401b038111610a5f57601f01601f191660200190565b903590603e198136030182121561024f570190565b35906001600160401b038216820361024f57565b35906001600160a01b038216820361024f57565b919060408382031261024f57604051926111e28461111e565b836111ec826111a1565b815260209182810135906001600160401b03821161024f57019280601f8501121561024f57833561121c8161115a565b9461122a6040519687611139565b818652848087019260051b82010192831161024f5784809101915b83831061125457505050500152565b819061125f846111b5565b8152019101908490611245565b51906001600160a01b038216820361024f57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106112be575050505090565b83516001600160a01b0316855293810193928101926001016112b0565b9081602091031261024f5751801515810361024f5790565b901561133157815115611304575090565b803b1561130f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561134157805190602001fd5b604051630a12f52160e11b8152600490fd5b81811061135e575050565b60008155600101611353565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610f10576000916113c3575b50156113b157565b60405163f0d97f3b60e01b8152600490fd5b6113db915060203d8111610f0957610efb8183611139565b386113a9565b90600182811c92168015611411575b60208310146113fb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916113f0565b909194939260808201956002841015610acd576060938352602083015260408201520152565b81519190604183036114725761146b92506020820151906060604084015193015160001a9061147d565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161150157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156114f55780516001600160a01b038116156114ec57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b80518210156115215760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600d5481101561152157600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b6000818152600e60205260408120546115e657600d54600160401b8110156115d25790826115be6115a784600160409601600d55611537565b819391549060031b91821b91600019901b19161790565b9055600d54928152600e6020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461164157805490600160401b821015610a5f57600182018082558210156115215782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152600e6020526040812054909190801561172d576000199080820181811161171957600d5490838201918211611705578082036116d1575b505050600d5480156116bd5781019061169c82611537565b909182549160031b1b19169055600d558152600e6020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6116ef6116e06115a793611537565b90549060031b1c928392611537565b90558452600e6020526040842055388080611684565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220290a93e36b6805df006441b141a908ae17483412928035e4fb087e0eb0d40d6264736f6c63430008130033","sourceMap":"1175:4924:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4574:73:64;;;:::i;:::-;4468:37:50;1175:4924;4507:22;;;;;;1175:4924;4468:37;1175:4924;6065:40:67;;;;6061:102;;6210:22;;;;;;4468:37:50;1175:4924;;;;6178:30:67;1175:4924:50;;;6257:15:67;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6296:27:67;1175:4924:50;;;;;;;;;;;;;;6178:30:67;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;6473:9:67;;1175:4924:50;6484:5:67;;;;;;1175:4924:50;;;;;6178:30:67;;6473:9;1175:4924:50;;;;6518:21:67;1175:4924:50;;;;;-1:-1:-1;;;;;6543:13:67;;;;:::i;:::-;1175:4924:50;;;;;;;;;;;;;:::i;:::-;;;;;6473:9:67;1175:4924:50;;;6473:9:67;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6296:27:67;1175:4924:50;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6061:102:67;1175:4924:50;;-1:-1:-1;;;6128:24:67;;1175:4924:50;;6128:24:67;4456:49:50;1175:4924;;;4554:21;1175:4924;;;;;;;;;;;;;;;;;;;;;;;;4456:49;1175:4924;;;;;;;;;;;;;;;4456:49;;1175:4924;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;1175:4924:50;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;4574:73:64;;;:::i;:::-;1175:4924:50;3017:22;;;1175:4924;;3042:21;1175:4924;;;;;;;3013:113;;1175:4924;;;;;3282:21:63;1175:4924:50;;3282:40:63;1175:4924:50;;;3282:40:63;1175:4924:50;3135:122;;1175:4924;;3415:22;;;;1175:4924;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3415:22;1175:4924;;;;;;;;;:::i;:::-;;;;;;3415:22;2548:38:67;;3415:22:50;;;;;;:::i;:::-;1175:4924;3405:33;;1175:4924;3572:20;1175:4924;;4711:20:67;1175:4924:50;4699:32:67;;4695:94;;4803:21;;4799:81;;1175:4924:50;;;;;;;;;10884:32:36;;;:::i;:::-;5066:3:67;5062:68;;1175:4924:50;;;;;;;;;;;;;;;;;;;;5165:183:67;;;1175:4924:50;;;;;;;5165:183:67;;1175:4924:50;;;;;5165:183:67;;1175:4924:50;;;;5165:183:67;;1175:4924:50;;;;;;;5390:15:67;1175:4924:50;;;;;;;;;;;;;;;;;;3282:40:63;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3282:21:63;1175:4924:50;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3282:40:63;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5062:68:67;1175:4924:50;;-1:-1:-1;;;5092:27:67;;1175:4924:50;;5092:27:67;1175:4924:50;;;;;;;;;;;;4799:81:67;1175:4924:50;;-1:-1:-1;;;4847:22:67;;1175:4924:50;;4847:22:67;4695:94;1175:4924:50;;-1:-1:-1;;;4754:24:67;;1175:4924:50;;4754:24:67;1175:4924:50;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;3135:122;1175:4924;;-1:-1:-1;;;3221:25:50;;1175:4924;;3221:25;3013:113;1175:4924;;-1:-1:-1;;;3091:24:50;;1175:4924;;3091:24;1175:4924;;;;;;;;;;;;;;;;;;-1:-1:-1;;1175:4924:50;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6910:20:67;1175:4924:50;;;6901:29:67;6897:91;;1175:4924:50;;;;2562:21:63;1175:4924:50;;2609:22:63;1175:4924:50;;;2609:22:63;1175:4924:50;2609:27:63;5797:67:50;;1175:4924;;;;1810:15:67;1175:4924:50;;;;;;1952:38:67;1175:4924:50;;;1952:38:67;:::i;:::-;1175:4924:50;;;;;;;;;;2000:89:67;;1175:4924:50;;;;;;2177:27:67;1175:4924:50;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;4352:12:36;1175:4924:50;;;;;;2173:119:67;;1175:4924:50;;;-1:-1:-1;;;;;1175:4924:50;;;2548:38:67;;1175:4924:50;;;;;;;;;2548:38:67;;;1175:4924:50;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;2538:49:67;;1175:4924:50;;;;;;;;;;;:::i;:::-;;2515:74:67;;2662:13;1175:4924:50;2662:13:67;;1175:4924:50;2145:27:33;2187:13;1175:4924:50;2182:116:33;2220:3;1175:4924:50;;2202:16:33;;;;;2278:8;;;;:::i;:::-;1175:4924:50;;9511:5:33;;;;;;1175:4924:50;9711:119:33;1175:4924:50;9711:119:33;1175:4924:50;;9711:119:33;9511:51;2220:3;-1:-1:-1;;1175:4924:50;;;;;;2187:13:33;;;1175:4924:50;;;;;;;;;;;;9511:51:33;9711:119;1175:4924:50;9711:119:33;1175:4924:50;9711:119:33;1175:4924:50;;9711:119:33;9511:51;;2202:16;;1379:33;2708:77:67;;1175:4924:50;;;;2177:27:67;1175:4924:50;;8399:50:36;1175:4924:50;;;;;;;;;;8399:50:36;:::i;:::-;2958:3:67;2954:61;;1175:4924:50;;;;3024:21:67;1175:4924:50;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;:::i;:::-;;;;;;2182:116:33;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3095:18:67;;1175:4924:50;;;;;;;;;;;;;;2609:22:63;3160:14:67;;1175:4924:50;3138:36:67;;;3134:871;;1175:4924:50;3134:871:67;1175:4924:50;3195:12:67;;1175:4924:50;;3195:12:67;;1175:4924:50;;;;;-1:-1:-1;;;1175:4924:50;;;;;11184:35:36;1175:4924:50;;11184:35:36;:::i;:::-;3404:3:67;3400:87;;3509:212;1175:4924:50;3509:212:67;1175:4924:50;5637:21;1175:4924;;;;;;;;;;;;;3509:212:67;;;:::i;:::-;;;;3190:805;1175:4924:50;3400:87:67;1175:4924:50;;-1:-1:-1;;;3438:30:67;;1175:4924:50;;3438:30:67;3190:805;1175:4924:50;;;;3765:215:67;1175:4924:50;3765:215:67;1175:4924:50;5637:21;1175:4924;;;;;;;;;;;;3765:215:67;;;:::i;1175:4924:50:-;;;;-1:-1:-1;1175:4924:50;;;;;2548:38:67;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1175:4924:50;;;;;;;;;;;;;;;;2954:61:67;1175:4924:50;;-1:-1:-1;;;2984:20:67;;1175:4924:50;;2984:20:67;2708:77;1175:4924:50;;-1:-1:-1;;;2741:33:67;;-1:-1:-1;;;;;1175:4924:50;;;;2741:33:67;;1175:4924:50;;;2741:33:67;2173:119;1175:4924:50;;-1:-1:-1;;;2264:17:67;;1175:4924:50;;2264:17:67;2000:89;1175:4924:50;;-1:-1:-1;;;2060:18:67;;1175:4924:50;;2060:18:67;1175:4924:50;;;;;;;;;;;;5797:67;1175:4924;;-1:-1:-1;;;5831:22:50;;1175:4924;;5831:22;1175:4924;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1175:4924:50;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;1729:19;1175:4924;;;;1729:19;:::i;:::-;1175:4924;:::i;:::-;;;;;;;;;;1729:30;;;1175:4924;1729:30;;1175:4924;;;;;;:::i;:::-;1729:30;:28;;:30;;;;;;;1175:4924;1729:30;;;1175:4924;-1:-1:-1;1763:10:50;-1:-1:-1;;;;;1175:4924:50;;;1729:44;1725:107;;1763:10;12849:19:63;12845:78;;1175:4924:50;;;;;:::i;:::-;-1:-1:-1;;;;;12959:13:63;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;12959:35:63;;1175:4924:50;;12959:35:63;;1175:4924:50;;;;;;:::i;:::-;1763:10;1175:4924;;;;12959:35:63;1729:28:50;;12959:35:63;;;;;;;1175:4924:50;12959:35:63;;;1175:4924:50;;;;;;;;;;;;;;13443:17:63;;;1175:4924:50;13443:17:63;;1175:4924:50;;;;;;:::i;:::-;13443:17:63;1729:28:50;;13443:17:63;;;;;;;1175:4924:50;13443:17:63;;;1175:4924:50;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1175:4924:50;13480:9:63;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;13480:19:63;;;1175:4924:50;13480:19:63;;1175:4924:50;;;;;;:::i;:::-;13480:19:63;1729:28:50;;13480:19:63;;;;;;;1175:4924:50;13480:19:63;;;1175:4924:50;13479:20:63;1928:67:50;;1175:4924;;;;2009:19;1175:4924;;;;2009:19;:::i;1175:4924::-;;;;;;;;;;2009:37;;1175:4924;;2009:37;;1175:4924;;;;;;:::i;:::-;;;;;;;;;;;;;;;;13480:9:63;-1:-1:-1;;;;;1175:4924:50;13480:9:63;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2009:37;;;;;1175:4924;2009:37;;1729:28;;2009:37;;;;;;;1175:4924;2009:37;;;1175:4924;2008:38;;2004:91;;1175:4924;2109:26;1175:4924;;;;2105:411;;1175:4924;2105:411;1175:4924;;;;2296:168;;;;;;;;2394:22;1175:4924;;2296:168;;1175:4924;;;;;;;;;;;;2296:168;;1175:4924;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;4574:31:29;4622:69;;1175:4924:50;;;;;1763:10;4574:31:29;;1175:4924:50;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;1763:10;4622:69:29;:::i;1175:4924:50:-;;;;;2004:91;1175:4924;;-1:-1:-1;;;2069:15:50;;1175:4924;;2069:15;2009:37;;;;1175:4924;2009:37;1175:4924;2009:37;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1175:4924;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;-1:-1:-1;1175:4924:50;;;;;;;;;;;;;1928:67;1175:4924;;-1:-1:-1;;;1968:16:50;;1175:4924;;1968:16;13480:19:63;;;;1175:4924:50;13480:19:63;1175:4924:50;13480:19:63;;;;;;;:::i;:::-;;;;1175:4924:50;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;13443:17:63;;;1175:4924:50;13443:17:63;;1175:4924:50;13443:17:63;;;;;;1175:4924:50;13443:17:63;;;:::i;:::-;;;1175:4924:50;;;;;13443:17:63;;;;;;-1:-1:-1;13443:17:63;;12959:35;;;;;1175:4924:50;12959:35:63;;;;;;:::i;:::-;;;1175:4924:50;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1175:4924:50;;;;;;;;12959:35:63;;1175:4924:50;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;12845:78:63;1175:4924:50;;-1:-1:-1;;;12891:21:63;;1175:4924:50;;12891:21:63;1725:107:50;1175:4924;;-1:-1:-1;;;1796:25:50;;1175:4924;;1796:25;1729:30;;;1175:4924;1729:30;;1175:4924;1729:30;;;;;;1175:4924;1729:30;;;:::i;:::-;;;1175:4924;;;;;;;:::i;:::-;1729:30;;;;;;-1:-1:-1;1729:30:50;;1175:4924;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;:::o;:::-;;2548:38:67;;;1175:4924:50;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;:::o;:::-;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1175:4924:50;;;;2548:38:67;1175:4924:50;-1:-1:-1;;1175:4924:50;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1175:4924:50;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1175:4924:50;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6737:692:29:-;;6952:471;;;1175:4924:50;;6983:22:29;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;1175:4924:50;;-1:-1:-1;;;7261:24:29;;-1:-1:-1;;;;;1175:4924:50;;;7261:24:29;;;1175:4924:50;;;7261:24:29;6952:471;-1:-1:-1;1175:4924:50;;8828:21:29;:17;;9000:142;;;;;;8824:411;1175:4924:50;;-1:-1:-1;;;8628:17:29;;;;;1175:4924:50;;;;;;;;:::o;:::-;-1:-1:-1;1175:4924:50;;;;;;4430:138:64;1175:4924:50;;-1:-1:-1;;;4486:26:64;;:10;:26;;;1175:4924:50;4486:26:64;1175:4924:50;;;4486:24:64;:26;;;;;;;-1:-1:-1;4486:26:64;;;4430:138;4485:27;;4481:81;;4430:138::o;4481:81::-;1175:4924:50;;-1:-1:-1;;;4535:16:64;;4486:26;;4535:16;4486:26;;;;;;;;;;;;;;:::i;:::-;;;;1175:4924:50;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2483:766:32:-;1175:4924:50;;;2483:766:32;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:32;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;1175:4924:50;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:32;;;;;;;;;;;;;;-1:-1:-1;;;;;1175:4924:50;;6946:20:32;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;1175:4924:50;;;;;;;;;;6633:164:32;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o;1175:4924:50:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;5015:22:67;1175:4924:50;;;;;;5015:22:67;-1:-1:-1;1175:4924:50;;;;-1:-1:-1;1175:4924:50;:::o;2215:404:36:-;-1:-1:-1;1175:4924:50;;;4352:12:36;1175:4924:50;;;;;;;;5015:22:67;1175:4924:50;-1:-1:-1;;;1175:4924:50;;;;;;;;;;4352:12:36;1175:4924:50;;;5015:22:67;1175:4924:50;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5015:22:67;1175:4924:50;;;;4352:12:36;1175:4924:50;;;;4352:12:36;2548:11;:::o;1175:4924:50:-;-1:-1:-1;;;1175:4924:50;;;;;;;;2294:319:36;2590:12;;;:::o;2215:404::-;-1:-1:-1;1175:4924:50;;;4352:12:36;;;1175:4924:50;;;;;;2299:21:36;;1175:4924:50;;;-1:-1:-1;;;1175:4924:50;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1175:4924:50;;-1:-1:-1;1175:4924:50;;;;;;-1:-1:-1;1175:4924:50;2494:12:36;1175:4924:50;;;-1:-1:-1;1175:4924:50;;;2548:11:36;:::o;2294:319::-;2590:12;;-1:-1:-1;2590:12:36;:::o;2787:1388::-;-1:-1:-1;1175:4924:50;;;2990:12:36;1175:4924:50;;;;;;-1:-1:-1;;1175:4924:50;3024:15:36;;;;-1:-1:-1;;1175:4924:50;;;;;;;;;3345:22:67;1175:4924:50;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;1175:4924:50;;;3345:22:67;1175:4924:50;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3345:22:67;1175:4924:50;;;2990:12:36;1175:4924:50;;;;;;2990:12:36;4104:11;:::o;1175:4924:50:-;-1:-1:-1;;;1175:4924:50;;;;;;;;3502:398:36;1175:4924:50;3572:22:36;3694:26;3572:22;;:::i;:::-;1175:4924:50;;;;;;3694:26:36;;;;:::i;1175:4924:50:-;;;;;2990:12:36;1175:4924:50;;;;;;3502:398:36;;;;;1175:4924:50;-1:-1:-1;;;1175:4924:50;;;;;;;;;-1:-1:-1;;;1175:4924:50;;;;;;;;3020:1149:36;4146:12;;;:::o","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":4997,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2933,"length":20},{"start":3152,"length":20},{"start":3232,"length":20},{"start":3413,"length":20},{"start":3594,"length":20}]}}},"methodIdentifiers":{"addCheckpointSignature(uint256,bytes32[],uint256,bytes)":"53b4e7bf","commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":"47dc9b4f","createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":"74303771","pruneBottomUpCheckpoints(uint256)":"ac818379"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":\"CheckpointAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddIncompleteQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddSignatory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedRemoveIncompleteQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointSource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRetentionHeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubnet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QuorumAlreadyProcessed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureReplay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroMembershipWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"membershipProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"addCheckpointSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"name\":\"commitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"membershipRootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"membershipWeight\",\"type\":\"uint256\"}],\"name\":\"createBottomUpCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newRetentionHeight\",\"type\":\"uint256\"}],\"name\":\"pruneBottomUpCheckpoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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\":{\"addCheckpointSignature(uint256,bytes32[],uint256,bytes)\":{\"details\":\"If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints`\",\"params\":{\"height\":\"- the height of the block in the checkpoint\",\"membershipProof\":\"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`\",\"signature\":\"- the signature of the checkpoint\",\"weight\":\"- the weight of the validator\"}},\"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))\":{\"details\":\"this method is called by the corresponding subnet actor. Called from a subnet actor if the checkpoint is cryptographically valid.\",\"params\":{\"checkpoint\":\"The bottom-up checkpoint to be committed.\"}},\"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)\":{\"params\":{\"checkpoint\":\"- a bottom-up checkpoint\",\"membershipRootHash\":\"- a root hash of the Merkle tree built from the validator public keys and their weight\",\"membershipWeight\":\"- the total weight of the membership\"}},\"pruneBottomUpCheckpoints(uint256)\":{\"details\":\"`retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing. All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.\",\"params\":{\"newRetentionHeight\":\"- the height of the oldest checkpoint to keep\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addCheckpointSignature(uint256,bytes32[],uint256,bytes)\":{\"notice\":\"checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it\"},\"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))\":{\"notice\":\"submit a verified checkpoint in the gateway to trigger side-effects.\"},\"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)\":{\"notice\":\"creates a new bottom-up checkpoint\"},\"pruneBottomUpCheckpoints(uint256)\":{\"notice\":\"Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/router/CheckpointingFacet.sol\":\"CheckpointingFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f\",\"dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":"CheckpointAlreadyExists"},{"inputs":[],"type":"error","name":"CheckpointNotCreated"},{"inputs":[],"type":"error","name":"FailedAddIncompleteQuorum"},{"inputs":[],"type":"error","name":"FailedAddSignatory"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"FailedRemoveIncompleteQuorum"},{"inputs":[],"type":"error","name":"InvalidActorAddress"},{"inputs":[],"type":"error","name":"InvalidCheckpointEpoch"},{"inputs":[],"type":"error","name":"InvalidCheckpointSource"},{"inputs":[],"type":"error","name":"InvalidRetentionHeight"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"InvalidSubnet"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotAuthorized"},{"inputs":[],"type":"error","name":"NotSystemActor"},{"inputs":[],"type":"error","name":"QuorumAlreadyProcessed"},{"inputs":[],"type":"error","name":"SignatureReplay"},{"inputs":[],"type":"error","name":"SubnetNotFound"},{"inputs":[],"type":"error","name":"ZeroMembershipWeight"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32[]","name":"membershipProof","type":"bytes32[]"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addCheckpointSignature"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"commitCheckpoint"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"bytes32","name":"membershipRootHash","type":"bytes32"},{"internalType":"uint256","name":"membershipWeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createBottomUpCheckpoint"},{"inputs":[{"internalType":"uint256","name":"newRetentionHeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"pruneBottomUpCheckpoints"}],"devdoc":{"kind":"dev","methods":{"addCheckpointSignature(uint256,bytes32[],uint256,bytes)":{"details":"If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints`","params":{"height":"- the height of the block in the checkpoint","membershipProof":"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`","signature":"- the signature of the checkpoint","weight":"- the weight of the validator"}},"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":{"details":"this method is called by the corresponding subnet actor. Called from a subnet actor if the checkpoint is cryptographically valid.","params":{"checkpoint":"The bottom-up checkpoint to be committed."}},"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":{"params":{"checkpoint":"- a bottom-up checkpoint","membershipRootHash":"- a root hash of the Merkle tree built from the validator public keys and their weight","membershipWeight":"- the total weight of the membership"}},"pruneBottomUpCheckpoints(uint256)":{"details":"`retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing. All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.","params":{"newRetentionHeight":"- the height of the oldest checkpoint to keep"}}},"version":1},"userdoc":{"kind":"user","methods":{"addCheckpointSignature(uint256,bytes32[],uint256,bytes)":{"notice":"checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it"},"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":{"notice":"submit a verified checkpoint in the gateway to trigger side-effects."},"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":{"notice":"creates a new bottom-up checkpoint"},"pruneBottomUpCheckpoints(uint256)":{"notice":"Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/router/CheckpointingFacet.sol":"CheckpointingFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870","urls":["bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f","dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/router/CheckpointingFacet.sol","id":39871,"exportedSymbols":{"Address":[32838],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"GatewayActorModifiers":[43137],"ISubnetActor":[40428],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgNonce":[37424],"InvalidSubnet":[37446],"LibGateway":[42944],"LibQuorum":[43948],"MaxMsgsPerBatchExceeded":[37382],"NotEnoughBalance":[37462],"NotEnoughSubnetCircSupply":[37474],"NotRegisteredSubnet":[37482],"QuorumObjKind":[50012],"Subnet":[50091],"SubnetID":[50077],"SubnetIDHelper":[48072],"SubnetNotActive":[37506],"SubnetNotFound":[37508]},"nodeType":"SourceUnit","src":"46:6054:50","nodes":[{"id":39603,"nodeType":"PragmaDirective","src":"46:23:50","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39605,"nodeType":"ImportDirective","src":"71:75:50","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":39604,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43137,"src":"79:21:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39607,"nodeType":"ImportDirective","src":"147:62:50","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":39606,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"155:18:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39609,"nodeType":"ImportDirective","src":"210:52:50","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":39608,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"218:10:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39611,"nodeType":"ImportDirective","src":"263:50:50","nodes":[],"absolutePath":"src/lib/LibQuorum.sol","file":"../../lib/LibQuorum.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":43949,"symbolAliases":[{"foreign":{"id":39610,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"271:9:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39613,"nodeType":"ImportDirective","src":"314:48:50","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":39612,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"322:6:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39615,"nodeType":"ImportDirective","src":"363:55:50","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":39614,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"371:13:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39617,"nodeType":"ImportDirective","src":"419:65:50","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":39616,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"427:7:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39619,"nodeType":"ImportDirective","src":"485:63:50","nodes":[],"absolutePath":"src/interfaces/ISubnetActor.sol","file":"../../interfaces/ISubnetActor.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":40429,"symbolAliases":[{"foreign":{"id":39618,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40428,"src":"493:12:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39628,"nodeType":"ImportDirective","src":"550:224:50","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":39620,"name":"InvalidBatchSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37412,"src":"558:18:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39621,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37462,"src":"578:16:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39622,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"596:23:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39623,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"621:19:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39624,"name":"InvalidCheckpointSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37410,"src":"642:23:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39625,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"667:20:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39626,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"689:24:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39627,"name":"CheckpointAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37378,"src":"715:23:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39634,"nodeType":"ImportDirective","src":"775:133:50","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":39629,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"783:19:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39630,"name":"SubnetNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37506,"src":"804:15:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39631,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37508,"src":"821:14:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39632,"name":"InvalidSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37446,"src":"837:13:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39633,"name":"CheckpointNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37386,"src":"852:20:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39640,"nodeType":"ImportDirective","src":"909:149:50","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":39635,"name":"BatchNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37388,"src":"917:15:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39636,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"934:17:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39637,"name":"BatchAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37380,"src":"953:18:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39638,"name":"NotEnoughSubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37474,"src":"973:25:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39639,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37404,"src":"1000:22:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39642,"nodeType":"ImportDirective","src":"1060:52:50","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":39641,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"1068:8:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39644,"nodeType":"ImportDirective","src":"1113:60:50","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":39871,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":39643,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"1121:14:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39870,"nodeType":"ContractDefinition","src":"1175:4924:50","nodes":[{"id":39650,"nodeType":"UsingForDirective","src":"1234:34:50","nodes":[],"global":false,"libraryName":{"id":39647,"name":"SubnetIDHelper","nameLocations":["1240:14:50"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"1240:14:50"},"typeName":{"id":39649,"nodeType":"UserDefinedTypeName","pathNode":{"id":39648,"name":"SubnetID","nameLocations":["1259:8:50"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1259:8:50"},"referencedDeclaration":50077,"src":"1259:8:50","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":39723,"nodeType":"FunctionDefinition","src":"1582:940:50","nodes":[],"body":{"id":39722,"nodeType":"Block","src":"1657:865:50","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":39663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":39657,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39654,"src":"1729:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1740:8:50","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49922,"src":"1729:19:50","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":39659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1749:8:50","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"1729:28:50","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":39660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1729:30:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":39661,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1763:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1767:6:50","memberName":"sender","nodeType":"MemberAccess","src":"1763:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1729:44:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39668,"nodeType":"IfStatement","src":"1725:107:50","trueBody":{"id":39667,"nodeType":"Block","src":"1775:57:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39664,"name":"InvalidCheckpointSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37410,"src":"1796:23:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1796:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39666,"nodeType":"RevertStatement","src":"1789:32:50"}]}},{"assignments":[39670,39673],"declarations":[{"constant":false,"id":39670,"mutability":"mutable","name":"subnetExists","nameLocation":"1847:12:50","nodeType":"VariableDeclaration","scope":39722,"src":"1842:17:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39669,"name":"bool","nodeType":"ElementaryTypeName","src":"1842:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39673,"mutability":"mutable","name":"subnet","nameLocation":"1876:6:50","nodeType":"VariableDeclaration","scope":39722,"src":"1861:21:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":39672,"nodeType":"UserDefinedTypeName","pathNode":{"id":39671,"name":"Subnet","nameLocations":["1861:6:50"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"1861:6:50"},"referencedDeclaration":50091,"src":"1861:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":39679,"initialValue":{"arguments":[{"expression":{"id":39676,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1907:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1911:6:50","memberName":"sender","nodeType":"MemberAccess","src":"1907:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":39674,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"1886:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1897:9:50","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42655,"src":"1886:20:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":39678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1886:32:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"1841:77:50"},{"condition":{"id":39681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1932:13:50","subExpression":{"id":39680,"name":"subnetExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39670,"src":"1933:12:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39686,"nodeType":"IfStatement","src":"1928:67:50","trueBody":{"id":39685,"nodeType":"Block","src":"1947:48:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39682,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37508,"src":"1968:14:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1968:16:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39684,"nodeType":"RevertStatement","src":"1961:23:50"}]}},{"condition":{"id":39693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2008:38:50","subExpression":{"arguments":[{"expression":{"id":39690,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39673,"src":"2036:6:50","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":39691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2043:2:50","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"2036:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"id":39687,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39654,"src":"2009:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2020:8:50","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49922,"src":"2009:19:50","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":39689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2029:6:50","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47825,"src":"2009:26:50","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":39692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2009:37:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39698,"nodeType":"IfStatement","src":"2004:91:50","trueBody":{"id":39697,"nodeType":"Block","src":"2048:47:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39694,"name":"InvalidSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37446,"src":"2069:13:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2069:15:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39696,"nodeType":"RevertStatement","src":"2062:22:50"}]}},{"condition":{"expression":{"id":39699,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2109:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39700,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2111:24:50","memberName":"checkpointRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":43064,"src":"2109:26:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39721,"nodeType":"IfStatement","src":"2105:411:50","trueBody":{"id":39720,"nodeType":"Block","src":"2137:379:50","statements":[{"expression":{"arguments":[{"expression":{"id":39704,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2262:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2266:6:50","memberName":"sender","nodeType":"MemberAccess","src":"2262:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":39708,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40428,"src":"2332:12:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISubnetActor_$40428_$","typeString":"type(contract ISubnetActor)"}},"id":39709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2345:26:50","memberName":"distributeRewardToRelayers","nodeType":"MemberAccess","referencedDeclaration":40427,"src":"2332:39:50","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$50012_$returns$__$","typeString":"function ISubnetActor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"}},{"components":[{"expression":{"id":39710,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39654,"src":"2394:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2405:11:50","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"2394:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":39712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2418:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":39713,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"2421:13:50","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$50012_$","typeString":"type(enum QuorumObjKind)"}},"id":39714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2435:10:50","memberName":"Checkpoint","nodeType":"MemberAccess","referencedDeclaration":50010,"src":"2421:24:50","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}}],"id":39715,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2393:53:50","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_rational_0_by_1_$_t_enum$_QuorumObjKind_$50012_$","typeString":"tuple(uint256,int_const 0,enum QuorumObjKind)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$50012_$returns$__$","typeString":"function ISubnetActor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"},{"typeIdentifier":"t_tuple$_t_uint256_$_t_rational_0_by_1_$_t_enum$_QuorumObjKind_$50012_$","typeString":"tuple(uint256,int_const 0,enum QuorumObjKind)"}],"expression":{"id":39706,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2296:3:50","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2300:10:50","memberName":"encodeCall","nodeType":"MemberAccess","src":"2296:14:50","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2296:168:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":39717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2489:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":39701,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"2206:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":39703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2214:21:50","memberName":"functionCallWithValue","nodeType":"MemberAccess","referencedDeclaration":32570,"src":"2206:29:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":39718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2254:6:50","2290:4:50","2482:5:50"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"2206:299:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":39719,"nodeType":"ExpressionStatement","src":"2206:299:50"}]}}]},"documentation":{"id":39651,"nodeType":"StructuredDocumentation","src":"1274:303:50","text":"@notice submit a verified checkpoint in the gateway to trigger side-effects.\n @dev this method is called by the corresponding subnet actor.\n Called from a subnet actor if the checkpoint is cryptographically valid.\n @param checkpoint The bottom-up checkpoint to be committed."},"functionSelector":"47dc9b4f","implemented":true,"kind":"function","modifiers":[],"name":"commitCheckpoint","nameLocation":"1591:16:50","parameters":{"id":39655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39654,"mutability":"mutable","name":"checkpoint","nameLocation":"1636:10:50","nodeType":"VariableDeclaration","scope":39723,"src":"1608:38:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":39653,"nodeType":"UserDefinedTypeName","pathNode":{"id":39652,"name":"BottomUpCheckpoint","nameLocations":["1608:18:50"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"1608:18:50"},"referencedDeclaration":49932,"src":"1608:18:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"1607:40:50"},"returnParameters":{"id":39656,"nodeType":"ParameterList","parameters":[],"src":"1657:0:50"},"scope":39870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39784,"nodeType":"FunctionDefinition","src":"2820:846:50","nodes":[],"body":{"id":39783,"nodeType":"Block","src":"3003:663:50","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39736,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"3017:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3028:11:50","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3017:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":39738,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"3042:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39739,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3044:19:50","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":43042,"src":"3042:21:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3017:46:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3067:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3017:51:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39747,"nodeType":"IfStatement","src":"3013:113:50","trueBody":{"id":39746,"nodeType":"Block","src":"3070:56:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39743,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37404,"src":"3091:22:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3091:24:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39745,"nodeType":"RevertStatement","src":"3084:31:50"}]}},{"condition":{"arguments":[{"expression":{"id":39750,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"3175:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3186:11:50","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3175:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39748,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3139:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3150:24:50","memberName":"bottomUpCheckpointExists","nodeType":"MemberAccess","referencedDeclaration":41892,"src":"3139:35:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":39752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3139:59:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39757,"nodeType":"IfStatement","src":"3135:122:50","trueBody":{"id":39756,"nodeType":"Block","src":"3200:57:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39753,"name":"CheckpointAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37378,"src":"3221:23:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3221:25:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39755,"nodeType":"RevertStatement","src":"3214:32:50"}]}},{"expression":{"arguments":[{"expression":{"id":39761,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"3314:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3316:19:50","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"3314:21:50","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"expression":{"id":39763,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"3360:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3371:11:50","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3360:22:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":39768,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"3426:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"id":39766,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3415:3:50","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3419:6:50","memberName":"encode","nodeType":"MemberAccess","src":"3415:10:50","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3415:22:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":39765,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3405:9:50","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":39770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3405:33:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39771,"name":"membershipRootHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39729,"src":"3472:18:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39772,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39731,"src":"3522:16:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39773,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"3572:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3574:18:50","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":43030,"src":"3572:20:50","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":39758,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"3267:9:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3277:16:50","memberName":"createQuorumInfo","nodeType":"MemberAccess","referencedDeclaration":43740,"src":"3267:26:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32,bytes32,uint256,uint256)"}},"id":39775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3308:4:50","3349:9:50","3396:7:50","3452:18:50","3504:16:50","3552:18:50"],"names":["self","objHeight","objHash","membershipRootHash","membershipWeight","majorityPercentage"],"nodeType":"FunctionCall","src":"3267:336:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39776,"nodeType":"ExpressionStatement","src":"3267:336:50"},{"expression":{"arguments":[{"id":39780,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39727,"src":"3648:10:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"id":39777,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3613:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3624:23:50","memberName":"storeBottomUpCheckpoint","nodeType":"MemberAccess","referencedDeclaration":41940,"src":"3613:34:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory)"}},"id":39781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3613:46:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39782,"nodeType":"ExpressionStatement","src":"3613:46:50"}]},"documentation":{"id":39724,"nodeType":"StructuredDocumentation","src":"2528:287:50","text":"@notice creates a new bottom-up checkpoint\n @param checkpoint - a bottom-up checkpoint\n @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight\n @param membershipWeight - the total weight of the membership"},"functionSelector":"74303771","implemented":true,"kind":"function","modifiers":[{"id":39734,"kind":"modifierInvocation","modifierName":{"id":39733,"name":"systemActorOnly","nameLocations":["2987:15:50"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"2987:15:50"},"nodeType":"ModifierInvocation","src":"2987:15:50"}],"name":"createBottomUpCheckpoint","nameLocation":"2829:24:50","parameters":{"id":39732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39727,"mutability":"mutable","name":"checkpoint","nameLocation":"2891:10:50","nodeType":"VariableDeclaration","scope":39784,"src":"2863:38:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":39726,"nodeType":"UserDefinedTypeName","pathNode":{"id":39725,"name":"BottomUpCheckpoint","nameLocations":["2863:18:50"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"2863:18:50"},"referencedDeclaration":49932,"src":"2863:18:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":39729,"mutability":"mutable","name":"membershipRootHash","nameLocation":"2919:18:50","nodeType":"VariableDeclaration","scope":39784,"src":"2911:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2911:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39731,"mutability":"mutable","name":"membershipWeight","nameLocation":"2955:16:50","nodeType":"VariableDeclaration","scope":39784,"src":"2947:24:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39730,"name":"uint256","nodeType":"ElementaryTypeName","src":"2947:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2853:124:50"},"returnParameters":{"id":39735,"nodeType":"ParameterList","parameters":[],"src":"3003:0:50"},"scope":39870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39822,"nodeType":"FunctionDefinition","src":"4153:577:50","nodes":[],"body":{"id":39821,"nodeType":"Block","src":"4240:490:50","nodes":[],"statements":[{"body":{"id":39811,"nodeType":"Block","src":"4533:115:50","statements":[{"expression":{"id":39805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4547:31:50","subExpression":{"baseExpression":{"expression":{"id":39801,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4554:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4556:19:50","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"4554:21:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":39804,"indexExpression":{"id":39803,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39793,"src":"4576:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4554:24:50","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39806,"nodeType":"ExpressionStatement","src":"4547:31:50"},{"id":39810,"nodeType":"UncheckedBlock","src":"4592:46:50","statements":[{"expression":{"id":39808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4620:3:50","subExpression":{"id":39807,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39793,"src":"4622:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39809,"nodeType":"ExpressionStatement","src":"4620:3:50"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39798,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39793,"src":"4507:1:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39799,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39787,"src":"4511:18:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4507:22:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39812,"initializationExpression":{"assignments":[39793],"declarations":[{"constant":false,"id":39793,"mutability":"mutable","name":"h","nameLocation":"4464:1:50","nodeType":"VariableDeclaration","scope":39812,"src":"4456:9:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39792,"name":"uint256","nodeType":"ElementaryTypeName","src":"4456:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39797,"initialValue":{"expression":{"expression":{"id":39794,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4468:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4470:19:50","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"4468:21:50","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":39796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4490:15:50","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"4468:37:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4456:49:50"},"nodeType":"ForStatement","src":"4451:197:50"},{"expression":{"arguments":[{"expression":{"id":39816,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4681:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4683:19:50","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"4681:21:50","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":39818,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39787,"src":"4704:18:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39813,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"4658:9:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4668:12:50","memberName":"pruneQuorums","nodeType":"MemberAccess","referencedDeclaration":43833,"src":"4658:22:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256)"}},"id":39819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4658:65:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39820,"nodeType":"ExpressionStatement","src":"4658:65:50"}]},"documentation":{"id":39785,"nodeType":"StructuredDocumentation","src":"3672:476:50","text":"@notice Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)\n @dev `retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing.\n All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.\n @param newRetentionHeight - the height of the oldest checkpoint to keep"},"functionSelector":"ac818379","implemented":true,"kind":"function","modifiers":[{"id":39790,"kind":"modifierInvocation","modifierName":{"id":39789,"name":"systemActorOnly","nameLocations":["4224:15:50"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"4224:15:50"},"nodeType":"ModifierInvocation","src":"4224:15:50"}],"name":"pruneBottomUpCheckpoints","nameLocation":"4162:24:50","parameters":{"id":39788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39787,"mutability":"mutable","name":"newRetentionHeight","nameLocation":"4195:18:50","nodeType":"VariableDeclaration","scope":39822,"src":"4187:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39786,"name":"uint256","nodeType":"ElementaryTypeName","src":"4187:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4186:28:50"},"returnParameters":{"id":39791,"nodeType":"ParameterList","parameters":[],"src":"4240:0:50"},"scope":39870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39869,"nodeType":"FunctionDefinition","src":"5303:794:50","nodes":[],"body":{"id":39868,"nodeType":"Block","src":"5472:625:50","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":39838,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5637:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5639:19:50","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"5637:21:50","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":39840,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39825,"src":"5660:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39835,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"5602:9:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5612:24:50","memberName":"isHeightAlreadyProcessed","nodeType":"MemberAccess","referencedDeclaration":43851,"src":"5602:34:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256) view"}},"id":39841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5602:65:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39842,"nodeType":"ExpressionStatement","src":"5602:65:50"},{"assignments":[39844,null],"declarations":[{"constant":false,"id":39844,"mutability":"mutable","name":"exists","nameLocation":"5735:6:50","nodeType":"VariableDeclaration","scope":39868,"src":"5730:11:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39843,"name":"bool","nodeType":"ElementaryTypeName","src":"5730:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":39849,"initialValue":{"arguments":[{"id":39847,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39825,"src":"5780:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39845,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"5747:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5758:21:50","memberName":"getBottomUpCheckpoint","nodeType":"MemberAccess","referencedDeclaration":41835,"src":"5747:32:50","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$49932_storage_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpCheckpoint storage pointer)"}},"id":39848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5747:40:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$49932_storage_ptr_$","typeString":"tuple(bool,struct BottomUpCheckpoint storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"5729:58:50"},{"condition":{"id":39851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5801:7:50","subExpression":{"id":39850,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39844,"src":"5802:6:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39856,"nodeType":"IfStatement","src":"5797:67:50","trueBody":{"id":39855,"nodeType":"Block","src":"5810:54:50","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39852,"name":"CheckpointNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37386,"src":"5831:20:50","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5831:22:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39854,"nodeType":"RevertStatement","src":"5824:29:50"}]}},{"expression":{"arguments":[{"expression":{"id":39860,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5922:1:50","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5924:19:50","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"5922:21:50","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":39862,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39825,"src":"5965:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39863,"name":"membershipProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39828,"src":"6002:15:50","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":39864,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39830,"src":"6039:6:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39865,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39832,"src":"6070:9:50","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":39857,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"5873:9:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":39859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5883:18:50","memberName":"addQuorumSignature","nodeType":"MemberAccess","referencedDeclaration":43664,"src":"5873:28:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32[] memory,uint256,bytes memory)"}},"id":39866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5916:4:50","5957:6:50","5985:15:50","6031:6:50","6059:9:50"],"names":["self","height","membershipProof","weight","signature"],"nodeType":"FunctionCall","src":"5873:217:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39867,"nodeType":"ExpressionStatement","src":"5873:217:50"}]},"documentation":{"id":39823,"nodeType":"StructuredDocumentation","src":"4736:562:50","text":"@notice checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it\n @dev If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints`\n @param height - the height of the block in the checkpoint\n @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight`\n @param weight - the weight of the validator\n @param signature - the signature of the checkpoint"},"functionSelector":"53b4e7bf","implemented":true,"kind":"function","modifiers":[],"name":"addCheckpointSignature","nameLocation":"5312:22:50","parameters":{"id":39833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39825,"mutability":"mutable","name":"height","nameLocation":"5352:6:50","nodeType":"VariableDeclaration","scope":39869,"src":"5344:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39824,"name":"uint256","nodeType":"ElementaryTypeName","src":"5344:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39828,"mutability":"mutable","name":"membershipProof","nameLocation":"5385:15:50","nodeType":"VariableDeclaration","scope":39869,"src":"5368:32:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":39826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5368:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":39827,"nodeType":"ArrayTypeName","src":"5368:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":39830,"mutability":"mutable","name":"weight","nameLocation":"5418:6:50","nodeType":"VariableDeclaration","scope":39869,"src":"5410:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39829,"name":"uint256","nodeType":"ElementaryTypeName","src":"5410:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39832,"mutability":"mutable","name":"signature","nameLocation":"5447:9:50","nodeType":"VariableDeclaration","scope":39869,"src":"5434:22:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39831,"name":"bytes","nodeType":"ElementaryTypeName","src":"5434:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5334:128:50"},"returnParameters":{"id":39834,"nodeType":"ParameterList","parameters":[],"src":"5472:0:50"},"scope":39870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":39645,"name":"GatewayActorModifiers","nameLocations":["1206:21:50"],"nodeType":"IdentifierPath","referencedDeclaration":43137,"src":"1206:21:50"},"id":39646,"nodeType":"InheritanceSpecifier","src":"1206:21:50"}],"canonicalName":"CheckpointingFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[39870,43137],"name":"CheckpointingFacet","nameLocation":"1184:18:50","scope":39871,"usedErrors":[32461,32466,32469,37378,37384,37386,37394,37396,37398,37402,37404,37410,37432,37434,37446,37458,37486,37502,37508,37512]}],"license":"MIT OR Apache-2.0"},"id":50} \ No newline at end of file diff --git a/.out/ConsensusType.sol/ConsensusType.json b/.out/ConsensusType.sol/ConsensusType.json index 6a9cb55db..2806ce24b 100644 --- a/.out/ConsensusType.sol/ConsensusType.json +++ b/.out/ConsensusType.sol/ConsensusType.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/enums/ConsensusType.sol","id":36919,"exportedSymbols":{"ConsensusType":[36918]},"nodeType":"SourceUnit","src":"46:128:40","nodes":[{"id":36916,"nodeType":"PragmaDirective","src":"46:23:40","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36918,"nodeType":"EnumDefinition","src":"136:37:40","nodes":[],"canonicalName":"ConsensusType","members":[{"id":36917,"name":"Fendermint","nameLocation":"161:10:40","nodeType":"EnumValue","src":"161:10:40"}],"name":"ConsensusType","nameLocation":"141:13:40"}],"license":"MIT OR Apache-2.0"},"id":40} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/enums/ConsensusType.sol","id":37360,"exportedSymbols":{"ConsensusType":[37359]},"nodeType":"SourceUnit","src":"46:128:43","nodes":[{"id":37357,"nodeType":"PragmaDirective","src":"46:23:43","nodes":[],"literals":["solidity","0.8",".19"]},{"id":37359,"nodeType":"EnumDefinition","src":"136:37:43","nodes":[],"canonicalName":"ConsensusType","members":[{"id":37358,"name":"Fendermint","nameLocation":"161:10:43","nodeType":"EnumValue","src":"161:10:43"}],"name":"ConsensusType","nameLocation":"141:13:43"}],"license":"MIT OR Apache-2.0"},"id":43} \ No newline at end of file diff --git a/.out/Constants.sol/Constants.json b/.out/Constants.sol/Constants.json index 8a5ef0696..319bde86b 100644 --- a/.out/Constants.sol/Constants.json +++ b/.out/Constants.sol/Constants.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/constants/Constants.sol","id":36442,"exportedSymbols":{"BURNT_FUNDS_ACTOR":[36423],"EMPTY_BYTES":[36435],"EMPTY_HASH":[36429],"METHOD_SEND":[36441]},"nodeType":"SourceUnit","src":"46:199:37","nodes":[{"id":36417,"nodeType":"PragmaDirective","src":"46:23:37","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36423,"nodeType":"VariableDeclaration","src":"71:48:37","nodes":[],"constant":true,"mutability":"constant","name":"BURNT_FUNDS_ACTOR","nameLocation":"88:17:37","scope":36442,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36418,"name":"address","nodeType":"ElementaryTypeName","src":"71:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3939","id":36421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"116:2:37","typeDescriptions":{"typeIdentifier":"t_rational_99_by_1","typeString":"int_const 99"},"value":"99"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_99_by_1","typeString":"int_const 99"}],"id":36420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"108:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36419,"name":"address","nodeType":"ElementaryTypeName","src":"108:7:37","typeDescriptions":{}}},"id":36422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108:11:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":36429,"nodeType":"VariableDeclaration","src":"121:41:37","nodes":[],"constant":true,"mutability":"constant","name":"EMPTY_HASH","nameLocation":"138:10:37","scope":36442,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"121:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"","id":36427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"159:2:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":36426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"151:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":36425,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151:7:37","typeDescriptions":{}}},"id":36428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"151:11:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":36435,"nodeType":"VariableDeclaration","src":"164:38:37","nodes":[],"constant":true,"mutability":"constant","name":"EMPTY_BYTES","nameLocation":"179:11:37","scope":36442,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":36430,"name":"bytes","nodeType":"ElementaryTypeName","src":"164:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"","id":36433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"199:2:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":36432,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"193:5:37","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":36431,"name":"bytes","nodeType":"ElementaryTypeName","src":"193:5:37","typeDescriptions":{}}},"id":36434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"193:9:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":36441,"nodeType":"VariableDeclaration","src":"204:39:37","nodes":[],"constant":true,"mutability":"constant","name":"METHOD_SEND","nameLocation":"220:11:37","scope":36442,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36436,"name":"bytes4","nodeType":"ElementaryTypeName","src":"204:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"arguments":[{"hexValue":"30","id":36439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"241:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"234:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":36437,"name":"bytes4","nodeType":"ElementaryTypeName","src":"234:6:37","typeDescriptions":{}}},"id":36440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"234:9:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"license":"MIT OR Apache-2.0"},"id":37} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/constants/Constants.sol","id":36883,"exportedSymbols":{"BURNT_FUNDS_ACTOR":[36861],"EMPTY_BYTES":[36873],"EMPTY_HASH":[36867],"METHOD_SEND":[36879],"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH":[36882]},"nodeType":"SourceUnit","src":"46:330:40","nodes":[{"id":36855,"nodeType":"PragmaDirective","src":"46:23:40","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36861,"nodeType":"VariableDeclaration","src":"71:48:40","nodes":[],"constant":true,"mutability":"constant","name":"BURNT_FUNDS_ACTOR","nameLocation":"88:17:40","scope":36883,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36856,"name":"address","nodeType":"ElementaryTypeName","src":"71:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3939","id":36859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"116:2:40","typeDescriptions":{"typeIdentifier":"t_rational_99_by_1","typeString":"int_const 99"},"value":"99"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_99_by_1","typeString":"int_const 99"}],"id":36858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"108:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36857,"name":"address","nodeType":"ElementaryTypeName","src":"108:7:40","typeDescriptions":{}}},"id":36860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108:11:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":36867,"nodeType":"VariableDeclaration","src":"121:41:40","nodes":[],"constant":true,"mutability":"constant","name":"EMPTY_HASH","nameLocation":"138:10:40","scope":36883,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36862,"name":"bytes32","nodeType":"ElementaryTypeName","src":"121:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"","id":36865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"159:2:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":36864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"151:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":36863,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151:7:40","typeDescriptions":{}}},"id":36866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"151:11:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":36873,"nodeType":"VariableDeclaration","src":"164:38:40","nodes":[],"constant":true,"mutability":"constant","name":"EMPTY_BYTES","nameLocation":"179:11:40","scope":36883,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":36868,"name":"bytes","nodeType":"ElementaryTypeName","src":"164:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"","id":36871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"199:2:40","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":36870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"193:5:40","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":36869,"name":"bytes","nodeType":"ElementaryTypeName","src":"193:5:40","typeDescriptions":{}}},"id":36872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"193:9:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":36879,"nodeType":"VariableDeclaration","src":"204:39:40","nodes":[],"constant":true,"mutability":"constant","name":"METHOD_SEND","nameLocation":"220:11:40","scope":36883,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36874,"name":"bytes4","nodeType":"ElementaryTypeName","src":"204:6:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"arguments":[{"hexValue":"30","id":36877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"241:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"234:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":36875,"name":"bytes4","nodeType":"ElementaryTypeName","src":"234:6:40","typeDescriptions":{}}},"id":36878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"234:9:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"id":36882,"nodeType":"VariableDeclaration","src":"315:59:40","nodes":[],"constant":true,"mutability":"constant","name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nameLocation":"332:37:40","scope":36883,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36880,"name":"uint256","nodeType":"ElementaryTypeName","src":"315:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3635","id":36881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"372:2:40","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"visibility":"internal"}],"license":"MIT OR Apache-2.0"},"id":40} \ No newline at end of file diff --git a/.out/Context.sol/Context.json b/.out/Context.sol/Context.json index a8986c82a..ee5f48a37 100644 --- a/.out/Context.sol/Context.json +++ b/.out/Context.sol/Context.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":"Context"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","id":32432,"exportedSymbols":{"Context":[32431]},"nodeType":"SourceUnit","src":"86:759:27","nodes":[{"id":32411,"nodeType":"PragmaDirective","src":"86:24:27","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":32431,"nodeType":"ContractDefinition","src":"609:235:27","nodes":[{"id":32421,"nodeType":"FunctionDefinition","src":"641:96:27","nodes":[],"body":{"id":32420,"nodeType":"Block","src":"703:34:27","nodes":[],"statements":[{"expression":{"expression":{"id":32417,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"720:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"724:6:27","memberName":"sender","nodeType":"MemberAccess","src":"720:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":32416,"id":32419,"nodeType":"Return","src":"713:17:27"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"650:10:27","parameters":{"id":32413,"nodeType":"ParameterList","parameters":[],"src":"660:2:27"},"returnParameters":{"id":32416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32421,"src":"694:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32414,"name":"address","nodeType":"ElementaryTypeName","src":"694:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"693:9:27"},"scope":32431,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":32430,"nodeType":"FunctionDefinition","src":"743:99:27","nodes":[],"body":{"id":32429,"nodeType":"Block","src":"810:32:27","nodes":[],"statements":[{"expression":{"expression":{"id":32426,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"827:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"831:4:27","memberName":"data","nodeType":"MemberAccess","src":"827:8:27","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":32425,"id":32428,"nodeType":"Return","src":"820:15:27"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"752:8:27","parameters":{"id":32422,"nodeType":"ParameterList","parameters":[],"src":"760:2:27"},"returnParameters":{"id":32425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32424,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32430,"src":"794:14:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":32423,"name":"bytes","nodeType":"ElementaryTypeName","src":"794:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"793:16:27"},"scope":32431,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":32412,"nodeType":"StructuredDocumentation","src":"112:496:27","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"linearizedBaseContracts":[32431],"name":"Context","nameLocation":"627:7:27","scope":32432,"usedErrors":[]}],"license":"MIT"},"id":27} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":"Context"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","id":32861,"exportedSymbols":{"Context":[32860]},"nodeType":"SourceUnit","src":"86:759:30","nodes":[{"id":32840,"nodeType":"PragmaDirective","src":"86:24:30","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":32860,"nodeType":"ContractDefinition","src":"609:235:30","nodes":[{"id":32850,"nodeType":"FunctionDefinition","src":"641:96:30","nodes":[],"body":{"id":32849,"nodeType":"Block","src":"703:34:30","nodes":[],"statements":[{"expression":{"expression":{"id":32846,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"720:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"724:6:30","memberName":"sender","nodeType":"MemberAccess","src":"720:10:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":32845,"id":32848,"nodeType":"Return","src":"713:17:30"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"650:10:30","parameters":{"id":32842,"nodeType":"ParameterList","parameters":[],"src":"660:2:30"},"returnParameters":{"id":32845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32844,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32850,"src":"694:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32843,"name":"address","nodeType":"ElementaryTypeName","src":"694:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"693:9:30"},"scope":32860,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":32859,"nodeType":"FunctionDefinition","src":"743:99:30","nodes":[],"body":{"id":32858,"nodeType":"Block","src":"810:32:30","nodes":[],"statements":[{"expression":{"expression":{"id":32855,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"827:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"831:4:30","memberName":"data","nodeType":"MemberAccess","src":"827:8:30","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":32854,"id":32857,"nodeType":"Return","src":"820:15:30"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"752:8:30","parameters":{"id":32851,"nodeType":"ParameterList","parameters":[],"src":"760:2:30"},"returnParameters":{"id":32854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32853,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32859,"src":"794:14:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":32852,"name":"bytes","nodeType":"ElementaryTypeName","src":"794:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"793:16:30"},"scope":32860,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":32841,"nodeType":"StructuredDocumentation","src":"112:496:30","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"linearizedBaseContracts":[32860],"name":"Context","nameLocation":"627:7:30","scope":32861,"usedErrors":[]}],"license":"MIT"},"id":30} \ No newline at end of file diff --git a/.out/CrossMsgHelper.sol/CrossMsgHelper.json b/.out/CrossMsgHelper.sol/CrossMsgHelper.json index d8564a91a..8145fd843 100644 --- a/.out/CrossMsgHelper.sol/CrossMsgHelper.json +++ b/.out/CrossMsgHelper.sol/CrossMsgHelper.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"createFundMsg","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"signer","type":"address","internalType":"address"},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"stateMutability":"pure"},{"type":"function","name":"createReleaseMsg","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"signer","type":"address","internalType":"address"},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"stateMutability":"pure"},{"type":"function","name":"isSorted","inputs":[{"name":"crossMsgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"toHash","inputs":[{"name":"crossMsgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"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":[]},{"type":"error","name":"NotDelegatedEvmAddress","inputs":[]}],"bytecode":{"object":"0x6080806040523461001c576115be90816100228239308160600152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063716868301461008f578063898414751461008a578063b88dfdf61461005d578063ba094234146100585763f230beb21461005357600080fd5b610930565b610804565b307f000000000000000000000000000000000000000000000000000000000000000003610627575b600080fd5b610574565b6020366003190112610085576001600160401b03600435116100855736602360043501121561008557600435600401356100c881610338565b906100d660405192836102e9565b80825260208201903660248260051b60043501011161008557602460043501915b60248260051b600435010183106101285761012461011485610c38565b6040519081529081906020820190565b0390f35b82356001600160401b03811161008557602319916040600435830136038401126100855760405190610159826102ae565b602483600435010135936001600160401b0385116100855760e09085856004350101360301126100855761018b61030a565b9160248585600435010101356001600160401b038111610085576101bb90602436918888600435010101016104ed565b83526001600160401b03604486866004350101013511610085576101ee36600435860187016044810135016024016104ed565b6020840152600435840185016064810135604085015261021090608401610360565b606084015261022760a48686600435010101610554565b608084015260c48585600435010101356001600160401b038111610085576044602095869560e4602499610269610287968c3691848860043501010101610483565b60a0840152836004350101013560c082015284526004350101610569565b8382015281520193019290506100f7565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102c957604052565b610298565b606081019081106001600160401b038211176102c957604052565b90601f801991011681019081106001600160401b038211176102c957604052565b6040519060e082018281106001600160401b038211176102c957604052565b60405190610336826102ae565b565b6001600160401b0381116102c95760051b60200190565b6001600160401b0381160361008557565b35906103368261034f565b6001600160a01b0381160361008557565b91906040838203126100855760405192610395846102ae565b8381356103a18161034f565b815260209182810135906001600160401b03821161008557019280601f850112156100855783356103d181610338565b946103df60405196876102e9565b818652848087019260051b8201019283116100855784809101915b83831061040957505050500152565b819083356104168161036b565b81520191019084906103fa565b359060ff8216820361008557565b6001600160401b0381116102c957601f01601f191660200190565b92919261045882610431565b9161046660405193846102e9565b829481845281830111610085578281602093846000960137010152565b9080601f830112156100855781602061049e9335910161044c565b90565b919060408382031261008557604051906104ba826102ae565b81936104c581610423565b83526020810135916001600160401b038311610085576020926104e89201610483565b910152565b91906040838203126100855760405190610506826102ae565b81938035916001600160401b0392838111610085578161052791840161037c565b84526020820135928311610085576020926104e892016104a1565b6001600160e01b031981160361008557565b359061033682610542565b8015150361008557565b35906103368261055f565b6020366003190112610085576001600160401b036004358181116100855736602382011215610085578060040135918211610085573660248360051b830101116100855760209160246105c7920161132f565b6040519015158152f35b908160409103126100855790565b60005b8381106105f25750506000910152565b81810151838201526020016105e2565b9060209161061b815180928185528580860191016105df565b601f01601f1916010190565b6020366003190112610085576004356001600160401b0381116100855761065d6106586101249236906004016105d1565b611046565b604051918291602083526020830190610602565b60a0600319820112610085576001600160401b0391600435838111610085578261069d916004016105d1565b926024356106aa8161036b565b92604435918211610085576106c1916004016105d1565b906064359060843590565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061070a575050505090565b83516001600160a01b0316855293810193928101926001016106fc565b6040602061049e93816107418551858452858401906106cc565b940151908281860391015260ff81511684520151918160208201520190610602565b61049e906020815260406020845194828285015260c06107f2610793885160e06060890152610140880190610727565b6107ae858a015191605f1992838a83030160808b0152610727565b90868a015160a08901526001600160401b0360608b0151168489015263ffffffff60e01b60808b01511660e089015260a08a01519088830301610100890152610602565b96015161012085015201511515910152565b61082b61084d61086c61081636610671565b93959192610825979197610a3a565b50611395565b94610834610329565b9561083f368361037c565b87526020870152369061037c565b94604051956308c7427760e11b87528680600096879360048301610b60565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561092b57610124968593610903575b506108ae906108a4610329565b93845236906104a1565b60208301526108bb610b88565b916108c461030a565b9586526020860152604085015282606085015282608085015260a084015260c08301526108ef610329565b918252602082015260405191829182610763565b6108ae919350610924903d8088833e61091c81836102e9565b810190610aa5565b9290610897565b610b71565b61097361093c36610671565b9194929390610949610a3a565b50610954368361037c565b95604051966308c7427760e11b88528780600097889360048301610b60565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af495861561092b576101249786976109d8575b50906109ac6108ae92611395565b6109b4610329565b97885260208801526109cf6109c7610329565b94369061037c565b845236906104a1565b6108ae929197506109f56109ac913d808a833e61091c81836102e9565b9791925061099e565b60405190610a0b826102ae565b6060602083600081520152565b60405190610a25826102ae565b81610a2e6109fe565b815260206104e86109fe565b60405190610a47826102ae565b60405160e08101836001600160401b038211838310176102c957600092602092604052610a72610a18565b8152610a7c610a18565b83820152836040820152836060820152836080820152606060a08201528360c082015281520152565b90602080838303126100855782516001600160401b03938482116100855701926040848403126100855760405193610adc856102ae565b8051610ae78161034f565b85528281015191821161008557019180601f84011215610085578251610b0c81610338565b93610b1a60405195866102e9565b818552838086019260051b8201019283116100855783809101915b838310610b46575050505082015290565b81908351610b538161036b565b8152019101908390610b35565b90602061049e9281815201906106cc565b6040513d6000823e3d90fd5b61049e9036906104a1565b60405190602082018281106001600160401b038211176102c95760405260008252565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b818110610c1b575050509360408381938161049e97980151908281860391015260ff81511684520151938201520190610602565b82516001600160a01b031688529685019691850191600101610be7565b60408051908160209384820194838301908087528251809252606080850182828560051b8801019501966000925b858410610c8c57505050505050610c86925003601f1981018352826102e9565b51902090565b919360019193959750808097605f198c8203018752610d408b519183808451948a845289610d2e8c8851610ccc60e09182848b01526101208a0190610bab565b906001600160401b03610cf0888d015193603f19948c898782850301910152610bab565b938c015195608096878c01528c0151169460a095868b015263ffffffff60e01b908c0151169460c095868b01528b0151918984030190890152610602565b96015161010085015201511515910152565b990194019401918896949197959397610c66565b90359060de1981360301821215610085570190565b903590603e1981360301821215610085570190565b3561049e81610542565b903590601e198136030182121561008557018035906001600160401b0382116100855760200191813603831361008557565b3561049e8161055f565b9035603e1982360301811215610085570190565b9035601e19823603018112156100855701602081359101916001600160401b03821161008557813603831361008557565b908060209392818452848401376000828201840152601f01601f1916010190565b906040610e4c61049e9360ff610e3f82610423565b1684526020810190610dd8565b9190928160208201520191610e09565b919091610e698180610dc4565b604084526080840193813592610e7e8461034f565b6001600160401b03809416604083015260209283810135601e19823603018112156100855701958387359701948711610085578660051b36038513610085578690604060608501525260a08201936000965b808810610ef857505061049e9495508083610eec920190610dc4565b91818403910152610e2a565b909484806001928835610f0a8161036b565b848060a01b0316815201960197019690610ed0565b6020815281359060de1983360301821215610085576040610fff60208561049e950195838286015260c0610ff0610f6b610f598a80610dc4565b60e060608a0152610140890190610e5c565b610f8e610f7a868c018c610dc4565b91605f1992838b83030160808c0152610e5c565b90878b013560a08a01526001600160401b0360608c0135610fae8161034f565b16848a0152610fd3610fc260808d01610554565b6001600160e01b03191660e08b0152565b610fe060a08c018c610dd8565b918a8403016101008b0152610e09565b97013561012086015201610569565b1515910152565b60246103369193929360405194859163ffffffff60e01b16602083015261103681518092602086860191016105df565b81010360048101855201836102e9565b60406110528280610d54565b013561108661108161107c61107761106d61106d8780610d54565b6020810190610d69565b610b7d565b6114f0565b611161565b916001600160e01b03196110a5608061109f8480610d54565b01610d7e565b161561114657806110d06110c96110bf836110f695610d54565b60a0810190610d88565b369161044c565b906110dd60208201610dba565b611110575b608061109f826110f193610d54565b611006565b9080611106575061049e916112c8565b9061049e926112a0565b90506110f1608061109f60405161113c8161112e8760208301610f1f565b03601f1981018352826102e9565b93925050506110e2565b50611159916001600160a01b031661124b565b61049e610b88565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b146111a6575b156111a257611194906111b9565b9061119d575090565b905090565b5090565b50506001600160401b0381166001611186565b60009081526016600a6020836002607f60991b015afa9181519161040a8360018060a01b03169360a01c61ffff160361120f575b83158015611204575b6111fd5750565b9250829150565b5060163d14156111f6565b600093509150816111ed565b3d15611246573d9061122c82610431565b9161123a60405193846102e9565b82523d6000602084013e565b606090565b814710611288576000918291829182916001600160a01b03165af161126e61121b565b501561127657565b604051630a12f52160e11b8152600490fd5b60405163cd78605960e01b8152306004820152602490fd5b908247106112885760008161049e946020839451920190855af16112c261121b565b916112e1565b60008061049e9360208151910182855af16112c261121b565b901561131f578151156112f2575090565b803b156112fd575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561127657805190602001fd5b600090815b8383106113445750505050600190565b6001600160401b0360606113666113608660051b860186610d69565b80610d54565b01356113718161034f565b1680911015611386575b600190920191611334565b821561137b5750505050600090565b61142a6001600160401b03916113a96109fe565b50604051906bffffffffffffffffffffffff199060601b166020820152601481526113d3816102ae565b61112e604051916113e3836102ce565b600a83526001600160801b036020840160148152604085019283526040519687956020808801525116604086015251166060840152516060608084015260a0830190610602565b611432610329565b6004815290602082015290565b90602080838303126100855782516001600160401b03938482116100855701926060848403126100855760405193611476856102ce565b80516114818161034f565b8552828101516001600160801b038116810361008557838601526040810151918211610085570182601f82011215610085578051906114bf82610431565b936114cd60405195866102e9565b82855283838301011161008557826114e893850191016105df565b604082015290565b600460ff6114ff835160ff1690565b160361157657602061151c9101516020808251830101910161143f565b600a6001600160401b0361153783516001600160401b031690565b16036115765760146001600160801b0361155b60208401516001600160801b031690565b16036115765760400160148151510361157657516014015190565b60405163c5f8961f60e01b8152600490fdfea2646970667358221220d20c2496558c1ceac77ff888309645a17415b9a45bbfe22cec3800fc8e71f80c64736f6c63430008130033","sourceMap":"650:3595:55:-:0;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2194,"length":20},{"start":2457,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c8063716868301461008f578063898414751461008a578063b88dfdf61461005d578063ba094234146100585763f230beb21461005357600080fd5b610930565b610804565b307f000000000000000000000000000000000000000000000000000000000000000003610627575b600080fd5b610574565b6020366003190112610085576001600160401b03600435116100855736602360043501121561008557600435600401356100c881610338565b906100d660405192836102e9565b80825260208201903660248260051b60043501011161008557602460043501915b60248260051b600435010183106101285761012461011485610c38565b6040519081529081906020820190565b0390f35b82356001600160401b03811161008557602319916040600435830136038401126100855760405190610159826102ae565b602483600435010135936001600160401b0385116100855760e09085856004350101360301126100855761018b61030a565b9160248585600435010101356001600160401b038111610085576101bb90602436918888600435010101016104ed565b83526001600160401b03604486866004350101013511610085576101ee36600435860187016044810135016024016104ed565b6020840152600435840185016064810135604085015261021090608401610360565b606084015261022760a48686600435010101610554565b608084015260c48585600435010101356001600160401b038111610085576044602095869560e4602499610269610287968c3691848860043501010101610483565b60a0840152836004350101013560c082015284526004350101610569565b8382015281520193019290506100f7565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102c957604052565b610298565b606081019081106001600160401b038211176102c957604052565b90601f801991011681019081106001600160401b038211176102c957604052565b6040519060e082018281106001600160401b038211176102c957604052565b60405190610336826102ae565b565b6001600160401b0381116102c95760051b60200190565b6001600160401b0381160361008557565b35906103368261034f565b6001600160a01b0381160361008557565b91906040838203126100855760405192610395846102ae565b8381356103a18161034f565b815260209182810135906001600160401b03821161008557019280601f850112156100855783356103d181610338565b946103df60405196876102e9565b818652848087019260051b8201019283116100855784809101915b83831061040957505050500152565b819083356104168161036b565b81520191019084906103fa565b359060ff8216820361008557565b6001600160401b0381116102c957601f01601f191660200190565b92919261045882610431565b9161046660405193846102e9565b829481845281830111610085578281602093846000960137010152565b9080601f830112156100855781602061049e9335910161044c565b90565b919060408382031261008557604051906104ba826102ae565b81936104c581610423565b83526020810135916001600160401b038311610085576020926104e89201610483565b910152565b91906040838203126100855760405190610506826102ae565b81938035916001600160401b0392838111610085578161052791840161037c565b84526020820135928311610085576020926104e892016104a1565b6001600160e01b031981160361008557565b359061033682610542565b8015150361008557565b35906103368261055f565b6020366003190112610085576001600160401b036004358181116100855736602382011215610085578060040135918211610085573660248360051b830101116100855760209160246105c7920161132f565b6040519015158152f35b908160409103126100855790565b60005b8381106105f25750506000910152565b81810151838201526020016105e2565b9060209161061b815180928185528580860191016105df565b601f01601f1916010190565b6020366003190112610085576004356001600160401b0381116100855761065d6106586101249236906004016105d1565b611046565b604051918291602083526020830190610602565b60a0600319820112610085576001600160401b0391600435838111610085578261069d916004016105d1565b926024356106aa8161036b565b92604435918211610085576106c1916004016105d1565b906064359060843590565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061070a575050505090565b83516001600160a01b0316855293810193928101926001016106fc565b6040602061049e93816107418551858452858401906106cc565b940151908281860391015260ff81511684520151918160208201520190610602565b61049e906020815260406020845194828285015260c06107f2610793885160e06060890152610140880190610727565b6107ae858a015191605f1992838a83030160808b0152610727565b90868a015160a08901526001600160401b0360608b0151168489015263ffffffff60e01b60808b01511660e089015260a08a01519088830301610100890152610602565b96015161012085015201511515910152565b61082b61084d61086c61081636610671565b93959192610825979197610a3a565b50611395565b94610834610329565b9561083f368361037c565b87526020870152369061037c565b94604051956308c7427760e11b87528680600096879360048301610b60565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561092b57610124968593610903575b506108ae906108a4610329565b93845236906104a1565b60208301526108bb610b88565b916108c461030a565b9586526020860152604085015282606085015282608085015260a084015260c08301526108ef610329565b918252602082015260405191829182610763565b6108ae919350610924903d8088833e61091c81836102e9565b810190610aa5565b9290610897565b610b71565b61097361093c36610671565b9194929390610949610a3a565b50610954368361037c565b95604051966308c7427760e11b88528780600097889360048301610b60565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af495861561092b576101249786976109d8575b50906109ac6108ae92611395565b6109b4610329565b97885260208801526109cf6109c7610329565b94369061037c565b845236906104a1565b6108ae929197506109f56109ac913d808a833e61091c81836102e9565b9791925061099e565b60405190610a0b826102ae565b6060602083600081520152565b60405190610a25826102ae565b81610a2e6109fe565b815260206104e86109fe565b60405190610a47826102ae565b60405160e08101836001600160401b038211838310176102c957600092602092604052610a72610a18565b8152610a7c610a18565b83820152836040820152836060820152836080820152606060a08201528360c082015281520152565b90602080838303126100855782516001600160401b03938482116100855701926040848403126100855760405193610adc856102ae565b8051610ae78161034f565b85528281015191821161008557019180601f84011215610085578251610b0c81610338565b93610b1a60405195866102e9565b818552838086019260051b8201019283116100855783809101915b838310610b46575050505082015290565b81908351610b538161036b565b8152019101908390610b35565b90602061049e9281815201906106cc565b6040513d6000823e3d90fd5b61049e9036906104a1565b60405190602082018281106001600160401b038211176102c95760405260008252565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b818110610c1b575050509360408381938161049e97980151908281860391015260ff81511684520151938201520190610602565b82516001600160a01b031688529685019691850191600101610be7565b60408051908160209384820194838301908087528251809252606080850182828560051b8801019501966000925b858410610c8c57505050505050610c86925003601f1981018352826102e9565b51902090565b919360019193959750808097605f198c8203018752610d408b519183808451948a845289610d2e8c8851610ccc60e09182848b01526101208a0190610bab565b906001600160401b03610cf0888d015193603f19948c898782850301910152610bab565b938c015195608096878c01528c0151169460a095868b015263ffffffff60e01b908c0151169460c095868b01528b0151918984030190890152610602565b96015161010085015201511515910152565b990194019401918896949197959397610c66565b90359060de1981360301821215610085570190565b903590603e1981360301821215610085570190565b3561049e81610542565b903590601e198136030182121561008557018035906001600160401b0382116100855760200191813603831361008557565b3561049e8161055f565b9035603e1982360301811215610085570190565b9035601e19823603018112156100855701602081359101916001600160401b03821161008557813603831361008557565b908060209392818452848401376000828201840152601f01601f1916010190565b906040610e4c61049e9360ff610e3f82610423565b1684526020810190610dd8565b9190928160208201520191610e09565b919091610e698180610dc4565b604084526080840193813592610e7e8461034f565b6001600160401b03809416604083015260209283810135601e19823603018112156100855701958387359701948711610085578660051b36038513610085578690604060608501525260a08201936000965b808810610ef857505061049e9495508083610eec920190610dc4565b91818403910152610e2a565b909484806001928835610f0a8161036b565b848060a01b0316815201960197019690610ed0565b6020815281359060de1983360301821215610085576040610fff60208561049e950195838286015260c0610ff0610f6b610f598a80610dc4565b60e060608a0152610140890190610e5c565b610f8e610f7a868c018c610dc4565b91605f1992838b83030160808c0152610e5c565b90878b013560a08a01526001600160401b0360608c0135610fae8161034f565b16848a0152610fd3610fc260808d01610554565b6001600160e01b03191660e08b0152565b610fe060a08c018c610dd8565b918a8403016101008b0152610e09565b97013561012086015201610569565b1515910152565b60246103369193929360405194859163ffffffff60e01b16602083015261103681518092602086860191016105df565b81010360048101855201836102e9565b60406110528280610d54565b013561108661108161107c61107761106d61106d8780610d54565b6020810190610d69565b610b7d565b6114f0565b611161565b916001600160e01b03196110a5608061109f8480610d54565b01610d7e565b161561114657806110d06110c96110bf836110f695610d54565b60a0810190610d88565b369161044c565b906110dd60208201610dba565b611110575b608061109f826110f193610d54565b611006565b9080611106575061049e916112c8565b9061049e926112a0565b90506110f1608061109f60405161113c8161112e8760208301610f1f565b03601f1981018352826102e9565b93925050506110e2565b50611159916001600160a01b031661124b565b61049e610b88565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b146111a6575b156111a257611194906111b9565b9061119d575090565b905090565b5090565b50506001600160401b0381166001611186565b60009081526016600a6020836002607f60991b015afa9181519161040a8360018060a01b03169360a01c61ffff160361120f575b83158015611204575b6111fd5750565b9250829150565b5060163d14156111f6565b600093509150816111ed565b3d15611246573d9061122c82610431565b9161123a60405193846102e9565b82523d6000602084013e565b606090565b814710611288576000918291829182916001600160a01b03165af161126e61121b565b501561127657565b604051630a12f52160e11b8152600490fd5b60405163cd78605960e01b8152306004820152602490fd5b908247106112885760008161049e946020839451920190855af16112c261121b565b916112e1565b60008061049e9360208151910182855af16112c261121b565b901561131f578151156112f2575090565b803b156112fd575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561127657805190602001fd5b600090815b8383106113445750505050600190565b6001600160401b0360606113666113608660051b860186610d69565b80610d54565b01356113718161034f565b1680911015611386575b600190920191611334565b821561137b5750505050600090565b61142a6001600160401b03916113a96109fe565b50604051906bffffffffffffffffffffffff199060601b166020820152601481526113d3816102ae565b61112e604051916113e3836102ce565b600a83526001600160801b036020840160148152604085019283526040519687956020808801525116604086015251166060840152516060608084015260a0830190610602565b611432610329565b6004815290602082015290565b90602080838303126100855782516001600160401b03938482116100855701926060848403126100855760405193611476856102ce565b80516114818161034f565b8552828101516001600160801b038116810361008557838601526040810151918211610085570182601f82011215610085578051906114bf82610431565b936114cd60405195866102e9565b82855283838301011161008557826114e893850191016105df565b604082015290565b600460ff6114ff835160ff1690565b160361157657602061151c9101516020808251830101910161143f565b600a6001600160401b0361153783516001600160401b031690565b16036115765760146001600160801b0361155b60208401516001600160801b031690565b16036115765760400160148151510361157657516014015190565b60405163c5f8961f60e01b8152600490fdfea2646970667358221220d20c2496558c1ceac77ff888309645a17415b9a45bbfe22cec3800fc8e71f80c64736f6c63430008130033","sourceMap":"650:3595:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;650:3595:55;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;-1:-1:-1;;650:3595:55;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;650:3595:55;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;650:3595:55;;;;;:::o;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;650:3595:55;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;650:3595:55;;;;;;-1:-1:-1;;650:3595:55;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;650:3595:55;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;650:3595:55;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;650:3595:55;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;650:3595:55;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;650:3595:55;;;;:::o;:::-;;;-1:-1:-1;;650:3595:55;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;650:3595:55;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1147:29;650:3595;1226:24;650:3595;;;:::i;:::-;;;;;;;;;;:::i;:::-;;1147:29;:::i;:::-;650:3595;;;:::i;:::-;;;;;;:::i;:::-;;;1105:73;;;650:3595;;;;:::i;:::-;;;;;;;;1226:24;;-1:-1:-1;;;1226:24:55;;;650:3595;1226:24;;;:::i;:::-;;:22;;:24;;;;;;;650:3595;1226:24;;;;;650:3595;;;;;;:::i;:::-;;;;;;;:::i;:::-;1105:73;1204:64;;650:3595;234:9:37;;:::i;:::-;650:3595:55;;;:::i;:::-;;;;1105:73;1065:398;;650:3595;;1065:398;;650:3595;1065:398;;;;193:9:37;1065:398:55;;;;193:9:37;1065:398:55;;;650:3595;1065:398;;;650:3595;;;:::i;:::-;;;;1105:73;1029:481;;193:9:37;650:3595:55;;;;;;;:::i;1226:24::-;650:3595;1226:24;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;650:3595::-;1851:24;650:3595;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;1851:24;;-1:-1:-1;;;1851:24:55;;;650:3595;1851:24;;;:::i;:::-;;:22;;:24;;;;;;;650:3595;1851:24;;;;;650:3595;1889:29;;;650:3595;1889:29;;:::i;:::-;650:3595;;:::i;:::-;;;;1829:91;;;650:3595;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;1851:24::-;650:3595;1851:24;;;;;1889:29;1851:24;;;;;;;;;;:::i;:::-;;;;;;;650:3595;;;;;;;:::i;:::-;;;;-1:-1:-1;650:3595:55;;;;:::o;:::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;-1:-1:-1;650:3595:55;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;234:9:37:-;650:3595:55;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;-1:-1:-1;234:9:37;;:::o;650:3595:55:-;;;;;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;2382:131;650:3595;;;2484:21;;;;;;;650:3595;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;650:3595:55;;;;;;;2484:21;;;;;;;;;;650:3595;;2484:21;;;;;;:::i;:::-;650:3595;2474:32;;2382:131;:::o;650:3595::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;650:3595:55;;;;;;;;-1:-1:-1;;650:3595:55;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;650:3595:55;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;2770:830::-;2871:22;:16;;;;:::i;:::-;:22;650:3595;2923:62;:50;:48;:30;:19;:16;;;;:::i;:::-;:19;;;;;:::i;:30::-;:48;:::i;:::-;:50;:::i;:::-;:62;:::i;:::-;650:3595;-1:-1:-1;;;;;;3000:23:55;;:16;650:3595;;3000:16;:::i;:::-;:23;;:::i;:::-;650:3595;3000:38;2996:145;;3173:16;650:3595;3173:23;:16;;3313:45;3173:16;;:::i;:::-;:23;;;;;:::i;:::-;650:3595;;;:::i;:::-;3211:16;;2923:19;3211:16;;;:::i;:::-;3207:76;;2770:830;3000:23;3326:16;;:23;:16;;:::i;:23::-;3313:45;:::i;:::-;3419:10;;3415:124;;2709:53:26;;;;:::i;3415:124:55:-;3803:57:26;;;;:::i;3207:76:55:-;650:3595;;3326:23;3000;3326:16;2871:22;650:3595;3252:20;;;;2923:19;3252:20;;;:::i;:::-;;650:3595;;3252:20;;;;;;:::i;:::-;3207:76;;;;;;;2996:145;-1:-1:-1;3092:5:55;;-1:-1:-1;;;;;650:3595:55;3092:5;:::i;:::-;234:9:37;;:::i;2356:528:1:-;-1:-1:-1;;4542:339:1;;;-1:-1:-1;;;4542:339:1;;;2356:528;2559:5;2555:45;;2762:17;;;:::i;:::-;2793:8;;;2817:9;;:::o;2789:89::-;2857:10;;;:::o;2555:45::-;2580:9;;:::o;4542:339::-;-1:-1:-1;;;;;;;4542:339:1;;;;;7171:2211;7309:1653;;;;;;;;-1:-1:-1;;;;;7309:1653:1;;;;;650:3595:55;7309:1653:1;650:3595:55;;;;;;7309:1653:1;;650:3595:55;7309:1653:1;;;;;;7171:2211;9289:8;;650:3595:55;;9289:34:1;;7171:2211;9285:91;;7171:2211;:::o;9285:91::-;9339:26;-1:-1:-1;9339:26:1;;-1:-1:-1;9339:26:1:o;9289:34::-;13622:37;7309:1653;13622:37;9301:22;;9289:34;;7309:1653;;;-1:-1:-1;7309:1653:1;-1:-1:-1;7309:1653:1;;;650:3595:55;;;;;;234:9:37;;;;:::i;:::-;650:3595:55;;;;;;;:::i;:::-;234:9:37;;650:3595:55;-1:-1:-1;650:3595:55;;;;:::o;:::-;;;:::o;1530:331:26:-;1615:21;;:30;1611:109;;1749:33;;;;;;;;-1:-1:-1;;;;;650:3595:55;1749:33:26;;;;:::i;:::-;;1796:8;1792:63;;1530:331::o;1792:63::-;650:3595:55;;-1:-1:-1;;;1827:17:26;;;;;1611:109;650:3595:55;;-1:-1:-1;;;1668:41:26;;1623:4;1668:41;;;650:3595:55;;;1668:41:26;4215:483;;4419:21;;:29;4415:108;;4574:31;;4622:69;4574:31;;;;;;;;;;;;;:::i;:::-;4622:69;;:::i;4215:483::-;2745:1;4215:483;4622:69;4215:483;4574:31;;;;;;;;;;;:::i;6737:692::-;;6952:471;;;650:3595:55;;6983:22:26;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;650:3595:55;;-1:-1:-1;;;7261:24:26;;-1:-1:-1;;;;;650:3595:55;;;7261:24:26;;;650:3595:55;;;7261:24:26;6952:471;-1:-1:-1;650:3595:55;;8828:21:26;:17;;9000:142;;;;;;3684:559:55;650:3595;3847:9;;3858:10;;;;;;4225:11;;;;650:3595;3684:559;:::o;3847:9::-;-1:-1:-1;;;;;3902:26:55;:20;650:3595;;;;;;;;:::i;:::-;3902:20;;:::i;:::-;:26;650:3595;;;;:::i;:::-;;3947:18;;;;3943:171;;3847:9;650:3595;4128:17;650:3595;;3847:9;;;3943:171;4039:6;4035:65;3943:171;4035:65;4069:12;;;;650:3595;4069:12;:::o;581:314:56:-;695:118;-1:-1:-1;;;;;581:314:56;650:3595:55;;:::i;:::-;;;;480:2:56;4542:339:1;480:2:56;;;;;779:22;;;480:2;779:22;;;;;;:::i;:::-;480:2;650:3595:55;;;;;;:::i;:::-;;193:9:37;;-1:-1:-1;;;;;779:22:56;719:84;;779:22;480:2;;650:3595:55;719:84:56;;650:3595:55;;;;;695:118:56;;;779:22;695:118;;;480:2;;650:3595:55;;480:2:56;;650:3595:55;480:2:56;;;;;;;;;;;;;;;;;:::i;695:118::-;650:3595:55;;:::i;:::-;;438:1:56;;837:51;779:22;837:51;;650:3595:55;581:314:56;:::o;650:3595:55:-;;;;;;;;;;;;-1:-1:-1;;;;;650:3595:55;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;480:2:56;;650:3595:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;1412:649:56:-;438:1;650:3595:55;;;;;;;;;;1520:32:56;1516:94;;1667:18;1656:50;1667:18;;;;650:3595:55;;;1656:50:56;;;;;;:::i;:::-;480:2;-1:-1:-1;;;;;650:3595:55;;;-1:-1:-1;;;;;650:3595:55;;;;;1721:32:56;1717:94;;1844:2;-1:-1:-1;;;;;650:3595:55;1667:18:56;1824:16;;650:3595:55;-1:-1:-1;;;;;480:2:56;;;650:3595:55;480:2:56;1824:22;1820:84;;1917:16;;1844:2;1917:16;;650:3595:55;1917:29:56;1913:91;;2037:16;2193:60;;;650:3595:55;:::o;1913:91:56:-;1917:16;650:3595:55;-1:-1:-1;;;1969:24:56;;438:1;;1969:24","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2160,"length":20},{"start":2423,"length":20}]}},"immutableReferences":{"library_deploy_address":[{"start":96,"length":32}]}},"methodIdentifiers":{"createFundMsg(SubnetID,address,FvmAddress,uint256,uint256)":"f230beb2","createReleaseMsg(SubnetID,address,FvmAddress,uint256,uint256)":"ba094234","execute(CrossMsg)":"b88dfdf6","isSorted(CrossMsg[])":"89841475","toHash(CrossMsg[])":"71686830"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\"},{\"inputs\":[],\"name\":\"NotDelegatedEvmAddress\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"createFundMsg\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"createReleaseMsg\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"}],\"name\":\"isSorted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"}],\"name\":\"toHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"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\":{},\"title\":\"Helper library for manipulating StorableMsg struct\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/CrossMsgHelper.sol\":\"CrossMsgHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21\",\"dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14\",\"dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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"},{"inputs":[],"type":"error","name":"NotDelegatedEvmAddress"},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"signer","type":"address"},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"pure","type":"function","name":"createFundMsg","outputs":[{"internalType":"struct CrossMsg","name":"","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"signer","type":"address"},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"pure","type":"function","name":"createReleaseMsg","outputs":[{"internalType":"struct CrossMsg","name":"","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"inputs":[{"internalType":"struct CrossMsg[]","name":"crossMsgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"pure","type":"function","name":"isSorted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct CrossMsg[]","name":"crossMsgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"pure","type":"function","name":"toHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/CrossMsgHelper.sol":"CrossMsgHelper"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140","urls":["bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21","dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3","urls":["bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14","dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/CrossMsgHelper.sol","id":40329,"exportedSymbols":{"Address":[32409],"CrossMsg":[48452],"CrossMsgHelper":[40328],"EMPTY_BYTES":[36435],"FilAddress":[1428],"FvmAddress":[48476],"FvmAddressHelper":[40509],"IPCAddress":[48687],"METHOD_SEND":[36441],"StorableMsg":[48469],"SubnetID":[48557],"SubnetIDHelper":[46876]},"nodeType":"SourceUnit","src":"46:4200:55","nodes":[{"id":39999,"nodeType":"PragmaDirective","src":"46:23:55","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40002,"nodeType":"ImportDirective","src":"71:68:55","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":40329,"sourceUnit":36442,"symbolAliases":[{"foreign":{"id":40000,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"79:11:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40001,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36435,"src":"92:11:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40005,"nodeType":"ImportDirective","src":"140:62:55","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40329,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":40003,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"148:11:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40004,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"161:8:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40008,"nodeType":"ImportDirective","src":"203:59:55","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40329,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":40006,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"211:8:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40007,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"221:10:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40010,"nodeType":"ImportDirective","src":"263:57:55","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":40329,"sourceUnit":46877,"symbolAliases":[{"foreign":{"id":40009,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46876,"src":"271:14:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40012,"nodeType":"ImportDirective","src":"321:61:55","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":40329,"sourceUnit":40510,"symbolAliases":[{"foreign":{"id":40011,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"329:16:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40014,"nodeType":"ImportDirective","src":"383:53:55","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":40329,"sourceUnit":48484,"symbolAliases":[{"foreign":{"id":40013,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"391:10:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40016,"nodeType":"ImportDirective","src":"437:56:55","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":40329,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":40015,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"445:10:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40018,"nodeType":"ImportDirective","src":"494:65:55","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":40329,"sourceUnit":32410,"symbolAliases":[{"foreign":{"id":40017,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"502:7:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40328,"nodeType":"ContractDefinition","src":"650:3595:55","nodes":[{"id":40023,"nodeType":"UsingForDirective","src":"679:34:55","nodes":[],"global":false,"libraryName":{"id":40020,"name":"SubnetIDHelper","nameLocations":["685:14:55"],"nodeType":"IdentifierPath","referencedDeclaration":46876,"src":"685:14:55"},"typeName":{"id":40022,"nodeType":"UserDefinedTypeName","pathNode":{"id":40021,"name":"SubnetID","nameLocations":["704:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"704:8:55"},"referencedDeclaration":48557,"src":"704:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}}},{"id":40026,"nodeType":"UsingForDirective","src":"718:29:55","nodes":[],"global":false,"libraryName":{"id":40024,"name":"FilAddress","nameLocations":["724:10:55"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"724:10:55"},"typeName":{"id":40025,"name":"address","nodeType":"ElementaryTypeName","src":"739:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":40030,"nodeType":"UsingForDirective","src":"752:38:55","nodes":[],"global":false,"libraryName":{"id":40027,"name":"FvmAddressHelper","nameLocations":["758:16:55"],"nodeType":"IdentifierPath","referencedDeclaration":40509,"src":"758:16:55"},"typeName":{"id":40029,"nodeType":"UserDefinedTypeName","pathNode":{"id":40028,"name":"FvmAddress","nameLocations":["779:10:55"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"779:10:55"},"referencedDeclaration":48476,"src":"779:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}}},{"id":40073,"nodeType":"FunctionDefinition","src":"796:721:55","nodes":[],"body":{"id":40072,"nodeType":"Block","src":"1000:517:55","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":40051,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40033,"src":"1127:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},{"arguments":[{"id":40054,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40035,"src":"1169:6:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":40052,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"1147:16:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":40053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1164:4:55","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"1147:21:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":40055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1147:29:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"id":40050,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"1105:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$48687_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1117:8:55","1135:10:55"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1105:73:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40058,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40033,"src":"1226:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":40059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1233:15:55","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":46382,"src":"1226:22:55","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":40060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1226:24:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":40061,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40038,"src":"1264:2:55","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_calldata_ptr","typeString":"struct FvmAddress calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_calldata_ptr","typeString":"struct FvmAddress calldata"}],"id":40057,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"1204:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$48687_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1216:8:55","1252:10:55"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1204:64:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},{"id":40063,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40040,"src":"1297:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":40064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1331:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":40065,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"1362:11:55","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":40066,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36435,"src":"1403:11:55","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":40067,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40042,"src":"1441:3:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40049,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"1065:11:55","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$48469_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":40068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1099:4:55","1200:2:55","1290:5:55","1324:5:55","1354:6:55","1395:6:55","1436:3:55"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"1065:398:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":40069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1490:5:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":40048,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"1029:8:55","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$48452_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":40070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1056:7:55","1481:7:55"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"1029:481:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"functionReturnParameters":40047,"id":40071,"nodeType":"Return","src":"1010:500:55"}]},"functionSelector":"ba094234","implemented":true,"kind":"function","modifiers":[],"name":"createReleaseMsg","nameLocation":"805:16:55","parameters":{"id":40043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40033,"mutability":"mutable","name":"subnet","nameLocation":"849:6:55","nodeType":"VariableDeclaration","scope":40073,"src":"831:24:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":40032,"nodeType":"UserDefinedTypeName","pathNode":{"id":40031,"name":"SubnetID","nameLocations":["831:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"831:8:55"},"referencedDeclaration":48557,"src":"831:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":40035,"mutability":"mutable","name":"signer","nameLocation":"873:6:55","nodeType":"VariableDeclaration","scope":40073,"src":"865:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40034,"name":"address","nodeType":"ElementaryTypeName","src":"865:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40038,"mutability":"mutable","name":"to","nameLocation":"909:2:55","nodeType":"VariableDeclaration","scope":40073,"src":"889:22:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40037,"nodeType":"UserDefinedTypeName","pathNode":{"id":40036,"name":"FvmAddress","nameLocations":["889:10:55"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"889:10:55"},"referencedDeclaration":48476,"src":"889:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":40040,"mutability":"mutable","name":"value","nameLocation":"929:5:55","nodeType":"VariableDeclaration","scope":40073,"src":"921:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40039,"name":"uint256","nodeType":"ElementaryTypeName","src":"921:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40042,"mutability":"mutable","name":"fee","nameLocation":"952:3:55","nodeType":"VariableDeclaration","scope":40073,"src":"944:11:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40041,"name":"uint256","nodeType":"ElementaryTypeName","src":"944:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:140:55"},"returnParameters":{"id":40047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40073,"src":"983:15:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40045,"nodeType":"UserDefinedTypeName","pathNode":{"id":40044,"name":"CrossMsg","nameLocations":["983:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"983:8:55"},"referencedDeclaration":48452,"src":"983:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"982:17:55"},"scope":40328,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":40116,"nodeType":"FunctionDefinition","src":"1523:718:55","nodes":[],"body":{"id":40115,"nodeType":"Block","src":"1724:517:55","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40094,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40076,"src":"1851:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":40095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1858:15:55","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":46382,"src":"1851:22:55","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":40096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1851:24:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":40099,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40078,"src":"1911:6:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":40097,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"1889:16:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":40098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1906:4:55","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"1889:21:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":40100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1889:29:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"id":40093,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"1829:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$48687_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1841:8:55","1877:10:55"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1829:91:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"id":40103,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40076,"src":"1968:6:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},{"id":40104,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40081,"src":"1988:2:55","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_calldata_ptr","typeString":"struct FvmAddress calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_calldata_ptr","typeString":"struct FvmAddress calldata"}],"id":40102,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"1946:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$48687_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1958:8:55","1976:10:55"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1946:46:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},{"id":40106,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40083,"src":"2021:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":40107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2055:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":40108,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"2086:11:55","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":40109,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36435,"src":"2127:11:55","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":40110,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40085,"src":"2165:3:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40092,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"1789:11:55","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$48469_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":40111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1823:4:55","1942:2:55","2014:5:55","2048:5:55","2078:6:55","2119:6:55","2160:3:55"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"1789:398:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":40112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2214:5:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":40091,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"1753:8:55","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$48452_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":40113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1780:7:55","2205:7:55"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"1753:481:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"functionReturnParameters":40090,"id":40114,"nodeType":"Return","src":"1734:500:55"}]},"functionSelector":"f230beb2","implemented":true,"kind":"function","modifiers":[],"name":"createFundMsg","nameLocation":"1532:13:55","parameters":{"id":40086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40076,"mutability":"mutable","name":"subnet","nameLocation":"1573:6:55","nodeType":"VariableDeclaration","scope":40116,"src":"1555:24:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":40075,"nodeType":"UserDefinedTypeName","pathNode":{"id":40074,"name":"SubnetID","nameLocations":["1555:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1555:8:55"},"referencedDeclaration":48557,"src":"1555:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":40078,"mutability":"mutable","name":"signer","nameLocation":"1597:6:55","nodeType":"VariableDeclaration","scope":40116,"src":"1589:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40077,"name":"address","nodeType":"ElementaryTypeName","src":"1589:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40081,"mutability":"mutable","name":"to","nameLocation":"1633:2:55","nodeType":"VariableDeclaration","scope":40116,"src":"1613:22:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40080,"nodeType":"UserDefinedTypeName","pathNode":{"id":40079,"name":"FvmAddress","nameLocations":["1613:10:55"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"1613:10:55"},"referencedDeclaration":48476,"src":"1613:10:55","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":40083,"mutability":"mutable","name":"value","nameLocation":"1653:5:55","nodeType":"VariableDeclaration","scope":40116,"src":"1645:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40082,"name":"uint256","nodeType":"ElementaryTypeName","src":"1645:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40085,"mutability":"mutable","name":"fee","nameLocation":"1676:3:55","nodeType":"VariableDeclaration","scope":40116,"src":"1668:11:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40084,"name":"uint256","nodeType":"ElementaryTypeName","src":"1668:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1545:140:55"},"returnParameters":{"id":40090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40089,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40116,"src":"1707:15:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40088,"nodeType":"UserDefinedTypeName","pathNode":{"id":40087,"name":"CrossMsg","nameLocations":["1707:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"1707:8:55"},"referencedDeclaration":48452,"src":"1707:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1706:17:55"},"scope":40328,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":40132,"nodeType":"FunctionDefinition","src":"2247:129:55","nodes":[],"body":{"id":40131,"nodeType":"Block","src":"2321:55:55","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":40127,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40119,"src":"2359:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":40125,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2348:3:55","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2352:6:55","memberName":"encode","nodeType":"MemberAccess","src":"2348:10:55","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2348:20:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40124,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2338:9:55","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2338:31:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":40123,"id":40130,"nodeType":"Return","src":"2331:38:55"}]},"implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"2256:6:55","parameters":{"id":40120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40119,"mutability":"mutable","name":"crossMsg","nameLocation":"2279:8:55","nodeType":"VariableDeclaration","scope":40132,"src":"2263:24:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40118,"nodeType":"UserDefinedTypeName","pathNode":{"id":40117,"name":"CrossMsg","nameLocations":["2263:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"2263:8:55"},"referencedDeclaration":48452,"src":"2263:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"2262:26:55"},"returnParameters":{"id":40123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40132,"src":"2312:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2312:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2311:9:55"},"scope":40328,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40149,"nodeType":"FunctionDefinition","src":"2382:131:55","nodes":[],"body":{"id":40148,"nodeType":"Block","src":"2457:56:55","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":40144,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40136,"src":"2495:9:55","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":40142,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2484:3:55","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2488:6:55","memberName":"encode","nodeType":"MemberAccess","src":"2484:10:55","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2484:21:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40141,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2474:9:55","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2474:32:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":40140,"id":40147,"nodeType":"Return","src":"2467:39:55"}]},"functionSelector":"71686830","implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"2391:6:55","parameters":{"id":40137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40136,"mutability":"mutable","name":"crossMsgs","nameLocation":"2416:9:55","nodeType":"VariableDeclaration","scope":40149,"src":"2398:27:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":40134,"nodeType":"UserDefinedTypeName","pathNode":{"id":40133,"name":"CrossMsg","nameLocations":["2398:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"2398:8:55"},"referencedDeclaration":48452,"src":"2398:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":40135,"nodeType":"ArrayTypeName","src":"2398:10:55","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"2397:29:55"},"returnParameters":{"id":40140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40149,"src":"2448:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40138,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2448:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2447:9:55"},"scope":40328,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":40180,"nodeType":"FunctionDefinition","src":"2519:245:55","nodes":[],"body":{"id":40179,"nodeType":"Block","src":"2591:173:55","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40157,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40152,"src":"2620:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":40158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2629:7:55","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"2620:16:55","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":40159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2637:5:55","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":48462,"src":"2620:22:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":40160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2646:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2620:27:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"expression":{"id":40162,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40152,"src":"2663:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":40163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2672:7:55","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"2663:16:55","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":40164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2680:2:55","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":48458,"src":"2663:19:55","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},"id":40165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2683:8:55","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":48683,"src":"2663:28:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":40166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2692:4:55","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"2663:33:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":40167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2700:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2663:38:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2620:81:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"expression":{"id":40170,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40152,"src":"2717:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":40171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2726:7:55","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"2717:16:55","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":40172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2734:4:55","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":48455,"src":"2717:21:55","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},"id":40173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2739:8:55","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":48683,"src":"2717:30:55","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":40174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2748:4:55","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"2717:35:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":40175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2756:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2717:40:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2620:137:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":40156,"id":40178,"nodeType":"Return","src":"2601:156:55"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"2528:7:55","parameters":{"id":40153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40152,"mutability":"mutable","name":"crossMsg","nameLocation":"2552:8:55","nodeType":"VariableDeclaration","scope":40180,"src":"2536:24:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40151,"nodeType":"UserDefinedTypeName","pathNode":{"id":40150,"name":"CrossMsg","nameLocations":["2536:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"2536:8:55"},"referencedDeclaration":48452,"src":"2536:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"2535:26:55"},"returnParameters":{"id":40156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40155,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40180,"src":"2585:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40154,"name":"bool","nodeType":"ElementaryTypeName","src":"2585:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2584:6:55"},"scope":40328,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40271,"nodeType":"FunctionDefinition","src":"2770:830:55","nodes":[],"body":{"id":40270,"nodeType":"Block","src":"2845:755:55","nodes":[],"statements":[{"assignments":[40189],"declarations":[{"constant":false,"id":40189,"mutability":"mutable","name":"value","nameLocation":"2863:5:55","nodeType":"VariableDeclaration","scope":40270,"src":"2855:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40188,"name":"uint256","nodeType":"ElementaryTypeName","src":"2855:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40193,"initialValue":{"expression":{"expression":{"id":40190,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40183,"src":"2871:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2880:7:55","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"2871:16:55","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2888:5:55","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48460,"src":"2871:22:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2855:38:55"},{"assignments":[40195],"declarations":[{"constant":false,"id":40195,"mutability":"mutable","name":"recipient","nameLocation":"2911:9:55","nodeType":"VariableDeclaration","scope":40270,"src":"2903:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40194,"name":"address","nodeType":"ElementaryTypeName","src":"2903:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":40204,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"expression":{"id":40196,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40183,"src":"2923:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2932:7:55","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"2923:16:55","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2940:2:55","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":48458,"src":"2923:19:55","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":40199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2943:10:55","memberName":"rawAddress","nodeType":"MemberAccess","referencedDeclaration":48686,"src":"2923:30:55","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_calldata_ptr","typeString":"struct FvmAddress calldata"}},"id":40200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2954:17:55","memberName":"extractEvmAddress","nodeType":"MemberAccess","referencedDeclaration":40499,"src":"2923:48:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (struct FvmAddress memory) pure returns (address)"}},"id":40201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2923:50:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2974:9:55","memberName":"normalize","nodeType":"MemberAccess","referencedDeclaration":1220,"src":"2923:60:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$attached_to$_t_address_$","typeString":"function (address) view returns (address)"}},"id":40203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2923:62:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2903:82:55"},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":40209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40205,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40183,"src":"3000:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3009:7:55","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"3000:16:55","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3017:6:55","memberName":"method","nodeType":"MemberAccess","referencedDeclaration":48464,"src":"3000:23:55","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":40208,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"3027:11:55","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3000:38:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40223,"nodeType":"IfStatement","src":"2996:145:55","trueBody":{"id":40222,"nodeType":"Block","src":"3040:101:55","statements":[{"expression":{"arguments":[{"arguments":[{"id":40215,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40195,"src":"3080:9:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3072:8:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":40213,"name":"address","nodeType":"ElementaryTypeName","src":"3072:8:55","stateMutability":"payable","typeDescriptions":{}}},"id":40216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3072:18:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":40217,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"3092:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40210,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"3054:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32409_$","typeString":"type(library Address)"}},"id":40212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3062:9:55","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"3054:17:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$","typeString":"function (address payable,uint256)"}},"id":40218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3054:44:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40219,"nodeType":"ExpressionStatement","src":"3054:44:55"},{"expression":{"id":40220,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36435,"src":"3119:11:55","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":40187,"id":40221,"nodeType":"Return","src":"3112:18:55"}]}},{"assignments":[40225],"declarations":[{"constant":false,"id":40225,"mutability":"mutable","name":"params","nameLocation":"3164:6:55","nodeType":"VariableDeclaration","scope":40270,"src":"3151:19:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40224,"name":"bytes","nodeType":"ElementaryTypeName","src":"3151:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40229,"initialValue":{"expression":{"expression":{"id":40226,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40183,"src":"3173:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3182:7:55","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"3173:16:55","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3190:6:55","memberName":"params","nodeType":"MemberAccess","referencedDeclaration":48466,"src":"3173:23:55","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"3151:45:55"},{"condition":{"expression":{"id":40230,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40183,"src":"3211:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3220:7:55","memberName":"wrapped","nodeType":"MemberAccess","referencedDeclaration":48451,"src":"3211:16:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40240,"nodeType":"IfStatement","src":"3207:76:55","trueBody":{"id":40239,"nodeType":"Block","src":"3229:54:55","statements":[{"expression":{"id":40237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40232,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40225,"src":"3243:6:55","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":40235,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40183,"src":"3263:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}],"expression":{"id":40233,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3252:3:55","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3256:6:55","memberName":"encode","nodeType":"MemberAccess","src":"3252:10:55","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3252:20:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3243:29:55","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40238,"nodeType":"ExpressionStatement","src":"3243:29:55"}]}},{"assignments":[40242],"declarations":[{"constant":false,"id":40242,"mutability":"mutable","name":"data","nameLocation":"3306:4:55","nodeType":"VariableDeclaration","scope":40270,"src":"3293:17:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40241,"name":"bytes","nodeType":"ElementaryTypeName","src":"3293:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40251,"initialValue":{"arguments":[{"expression":{"expression":{"id":40246,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40183,"src":"3326:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3335:7:55","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"3326:16:55","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3343:6:55","memberName":"method","nodeType":"MemberAccess","referencedDeclaration":48464,"src":"3326:23:55","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":40249,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40225,"src":"3351:6:55","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":40244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3313:5:55","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":40243,"name":"bytes","nodeType":"ElementaryTypeName","src":"3313:5:55","typeDescriptions":{}}},"id":40245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3319:6:55","memberName":"concat","nodeType":"MemberAccess","src":"3313:12:55","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3313:45:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3293:65:55"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40252,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"3419:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":40253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3428:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3419:10:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40263,"nodeType":"IfStatement","src":"3415:124:55","trueBody":{"id":40262,"nodeType":"Block","src":"3431:108:55","statements":[{"expression":{"arguments":[{"id":40257,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40195,"src":"3491:9:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":40258,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40242,"src":"3508:4:55","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":40259,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"3521:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40255,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"3452:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32409_$","typeString":"type(library Address)"}},"id":40256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3460:21:55","memberName":"functionCallWithValue","nodeType":"MemberAccess","referencedDeclaration":32141,"src":"3452:29:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":40260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3483:6:55","3502:4:55","3514:5:55"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"3452:76:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":40187,"id":40261,"nodeType":"Return","src":"3445:83:55"}]}},{"expression":{"arguments":[{"id":40266,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40195,"src":"3577:9:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":40267,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40242,"src":"3588:4:55","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":40264,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"3556:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32409_$","typeString":"type(library Address)"}},"id":40265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3564:12:55","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":32099,"src":"3556:20:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":40268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3556:37:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":40187,"id":40269,"nodeType":"Return","src":"3549:44:55"}]},"functionSelector":"b88dfdf6","implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"2779:7:55","parameters":{"id":40184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40183,"mutability":"mutable","name":"crossMsg","nameLocation":"2805:8:55","nodeType":"VariableDeclaration","scope":40271,"src":"2787:26:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40182,"nodeType":"UserDefinedTypeName","pathNode":{"id":40181,"name":"CrossMsg","nameLocations":["2787:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"2787:8:55"},"referencedDeclaration":48452,"src":"2787:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"2786:28:55"},"returnParameters":{"id":40187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40186,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40271,"src":"2831:12:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40185,"name":"bytes","nodeType":"ElementaryTypeName","src":"2831:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2830:14:55"},"scope":40328,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40327,"nodeType":"FunctionDefinition","src":"3684:559:55","nodes":[],"body":{"id":40326,"nodeType":"Block","src":"3762:481:55","nodes":[],"statements":[{"assignments":[40281],"declarations":[{"constant":false,"id":40281,"mutability":"mutable","name":"prevNonce","nameLocation":"3780:9:55","nodeType":"VariableDeclaration","scope":40326,"src":"3772:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40280,"name":"uint256","nodeType":"ElementaryTypeName","src":"3772:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40282,"nodeType":"VariableDeclarationStatement","src":"3772:17:55"},{"assignments":[40284],"declarations":[{"constant":false,"id":40284,"mutability":"mutable","name":"length","nameLocation":"3807:6:55","nodeType":"VariableDeclaration","scope":40326,"src":"3799:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40283,"name":"uint256","nodeType":"ElementaryTypeName","src":"3799:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40287,"initialValue":{"expression":{"id":40285,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40275,"src":"3816:9:55","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":40286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3826:6:55","memberName":"length","nodeType":"MemberAccess","src":"3816:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3799:33:55"},{"body":{"id":40322,"nodeType":"Block","src":"3872:343:55","statements":[{"assignments":[40295],"declarations":[{"constant":false,"id":40295,"mutability":"mutable","name":"nonce","nameLocation":"3894:5:55","nodeType":"VariableDeclaration","scope":40322,"src":"3886:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40294,"name":"uint256","nodeType":"ElementaryTypeName","src":"3886:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40301,"initialValue":{"expression":{"expression":{"baseExpression":{"id":40296,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40275,"src":"3902:9:55","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":40298,"indexExpression":{"id":40297,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40289,"src":"3912:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3902:12:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3915:7:55","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"3902:20:55","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3923:5:55","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":48462,"src":"3902:26:55","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"3886:42:55"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40302,"name":"prevNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40281,"src":"3947:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":40303,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40295,"src":"3960:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3947:18:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40313,"nodeType":"IfStatement","src":"3943:171:55","trueBody":{"id":40312,"nodeType":"Block","src":"3967:147:55","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40305,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40289,"src":"4039:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":40306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4044:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4039:6:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40311,"nodeType":"IfStatement","src":"4035:65:55","trueBody":{"id":40310,"nodeType":"Block","src":"4047:53:55","statements":[{"expression":{"hexValue":"66616c7365","id":40308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4076:5:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":40279,"id":40309,"nodeType":"Return","src":"4069:12:55"}]}}]}},{"expression":{"id":40316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40314,"name":"prevNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40281,"src":"4128:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":40315,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40295,"src":"4140:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4128:17:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40317,"nodeType":"ExpressionStatement","src":"4128:17:55"},{"id":40321,"nodeType":"UncheckedBlock","src":"4159:46:55","statements":[{"expression":{"id":40319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4187:3:55","subExpression":{"id":40318,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40289,"src":"4189:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40320,"nodeType":"ExpressionStatement","src":"4187:3:55"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40291,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40289,"src":"3858:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":40292,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40284,"src":"3862:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3858:10:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40323,"initializationExpression":{"assignments":[40289],"declarations":[{"constant":false,"id":40289,"mutability":"mutable","name":"i","nameLocation":"3855:1:55","nodeType":"VariableDeclaration","scope":40323,"src":"3847:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40288,"name":"uint256","nodeType":"ElementaryTypeName","src":"3847:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40290,"nodeType":"VariableDeclarationStatement","src":"3847:9:55"},"nodeType":"ForStatement","src":"3842:373:55"},{"expression":{"hexValue":"74727565","id":40324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4232:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":40279,"id":40325,"nodeType":"Return","src":"4225:11:55"}]},"functionSelector":"89841475","implemented":true,"kind":"function","modifiers":[],"name":"isSorted","nameLocation":"3693:8:55","parameters":{"id":40276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40275,"mutability":"mutable","name":"crossMsgs","nameLocation":"3722:9:55","nodeType":"VariableDeclaration","scope":40327,"src":"3702:29:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":40273,"nodeType":"UserDefinedTypeName","pathNode":{"id":40272,"name":"CrossMsg","nameLocations":["3702:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"3702:8:55"},"referencedDeclaration":48452,"src":"3702:8:55","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":40274,"nodeType":"ArrayTypeName","src":"3702:10:55","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"3701:31:55"},"returnParameters":{"id":40279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40278,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40327,"src":"3756:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40277,"name":"bool","nodeType":"ElementaryTypeName","src":"3756:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3755:6:55"},"scope":40328,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"CrossMsgHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":40019,"nodeType":"StructuredDocumentation","src":"561:89:55","text":"@title Helper library for manipulating StorableMsg struct\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[40328],"name":"CrossMsgHelper","nameLocation":"658:14:55","scope":40329,"usedErrors":[32032,32037,32040,40350]}],"license":"MIT OR Apache-2.0"},"id":55} \ No newline at end of file +{"abi":[{"type":"function","name":"createFundMsg","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"signer","type":"address","internalType":"address"},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"stateMutability":"pure"},{"type":"function","name":"createReleaseMsg","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"signer","type":"address","internalType":"address"},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"stateMutability":"pure"},{"type":"function","name":"isSorted","inputs":[{"name":"crossMsgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"toHash","inputs":[{"name":"crossMsgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"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":[]},{"type":"error","name":"NotDelegatedEvmAddress","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523461001c576117c390816100228239308160650152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063716868301461008f57806373b464b714610062578063898414751461005d578063ba094234146100585763f230beb21461005357600080fd5b610973565b610847565b610657565b307f0000000000000000000000000000000000000000000000000000000000000000036105db575b600080fd5b602036600319011261008a576001600160401b036004351161008a5736602360043501121561008a57600435600401356100c881610338565b906100d660405192836102e9565b80825260208201903660248260051b60043501011161008a57602460043501915b60248260051b600435010183106101285761012461011485610c7b565b6040519081529081906020820190565b0390f35b82356001600160401b03811161008a576023199160406004358301360384011261008a5760405190610159826102ae565b602483600435010135936001600160401b03851161008a5760e090858560043501013603011261008a5761018b61030a565b9160248585600435010101356001600160401b03811161008a576101bb90602436918888600435010101016104ed565b83526001600160401b0360448686600435010101351161008a576101ee36600435860187016044810135016024016104ed565b6020840152600435840185016064810135604085015261021090608401610360565b606084015261022760a48686600435010101610554565b608084015260c48585600435010101356001600160401b03811161008a576044602095869560e4602499610269610287968c3691848860043501010101610483565b60a0840152836004350101013560c082015284526004350101610569565b8382015281520193019290506100f7565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102c957604052565b610298565b606081019081106001600160401b038211176102c957604052565b90601f801991011681019081106001600160401b038211176102c957604052565b6040519060e082018281106001600160401b038211176102c957604052565b60405190610336826102ae565b565b6001600160401b0381116102c95760051b60200190565b6001600160401b0381160361008a57565b35906103368261034f565b6001600160a01b0381160361008a57565b919060408382031261008a5760405192610395846102ae565b8381356103a18161034f565b815260209182810135906001600160401b03821161008a57019280601f8501121561008a5783356103d181610338565b946103df60405196876102e9565b818652848087019260051b82010192831161008a5784809101915b83831061040957505050500152565b819083356104168161036b565b81520191019084906103fa565b359060ff8216820361008a57565b6001600160401b0381116102c957601f01601f191660200190565b92919261045882610431565b9161046660405193846102e9565b82948184528183011161008a578281602093846000960137010152565b9080601f8301121561008a5781602061049e9335910161044c565b90565b919060408382031261008a57604051906104ba826102ae565b81936104c581610423565b83526020810135916001600160401b03831161008a576020926104e89201610483565b910152565b919060408382031261008a5760405190610506826102ae565b81938035916001600160401b039283811161008a578161052791840161037c565b8452602082013592831161008a576020926104e892016104a1565b6001600160e01b031981160361008a57565b359061033682610542565b8015150361008a57565b35906103368261055f565b9081604091031261008a5790565b60005b8381106105955750506000910152565b8181015183820152602001610585565b906020916105be81518092818552858086019101610582565b601f01601f1916010190565b90602061049e9281815201906105a5565b606036600319011261008a576004356001600160401b03811161008a57610606903690600401610574565b604036602319011261008a5760405161061e816102ae565b60243590600282101561008a576101249261064b9282526044356106418161036b565b6020830152611089565b604051918291826105ca565b602036600319011261008a576001600160401b0360043581811161008a573660238201121561008a57806004013591821161008a573660248360051b8301011161008a5760209160246106aa920161125c565b6040519015158152f35b60a060031982011261008a576001600160401b039160043583811161008a57826106e091600401610574565b926024356106ed8161036b565b9260443591821161008a5761070491600401610574565b906064359060843590565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061074d575050505090565b83516001600160a01b03168552938101939281019260010161073f565b6040602061049e938161078485518584528584019061070f565b940151908281860391015260ff815116845201519181602082015201906105a5565b61049e906020815260406020845194828285015260c06108356107d6885160e0606089015261014088019061076a565b6107f1858a015191605f1992838a83030160808b015261076a565b90868a015160a08901526001600160401b0360608b0151168489015263ffffffff60e01b60808b01511660e089015260a08a015190888303016101008901526105a5565b96015161012085015201511515910152565b61086e6108906108af610859366106b4565b93959192610868979197610a7d565b506112c2565b94610877610329565b95610882368361037c565b87526020870152369061037c565b94604051956308c7427760e11b87528680600096879360048301610ba3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561096e57610124968593610946575b506108f1906108e7610329565b93845236906104a1565b60208301526108fe610bcb565b9161090761030a565b9586526020860152604085015282606085015282608085015260a084015260c0830152610932610329565b9182526020820152604051918291826107a6565b6108f1919350610967903d8088833e61095f81836102e9565b810190610ae8565b92906108da565b610bb4565b6109b661097f366106b4565b919492939061098c610a7d565b50610997368361037c565b95604051966308c7427760e11b88528780600097889360048301610ba3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af495861561096e57610124978697610a1b575b50906109ef6108f1926112c2565b6109f7610329565b9788526020880152610a12610a0a610329565b94369061037c565b845236906104a1565b6108f192919750610a386109ef913d808a833e61095f81836102e9565b979192506109e1565b60405190610a4e826102ae565b6060602083600081520152565b60405190610a68826102ae565b81610a71610a41565b815260206104e8610a41565b60405190610a8a826102ae565b60405160e08101836001600160401b038211838310176102c957600092602092604052610ab5610a5b565b8152610abf610a5b565b83820152836040820152836060820152836080820152606060a08201528360c082015281520152565b906020808383031261008a5782516001600160401b039384821161008a57019260408484031261008a5760405193610b1f856102ae565b8051610b2a8161034f565b85528281015191821161008a57019180601f8401121561008a578251610b4f81610338565b93610b5d60405195866102e9565b818552838086019260051b82010192831161008a5783809101915b838310610b89575050505082015290565b81908351610b968161036b565b8152019101908390610b78565b90602061049e92818152019061070f565b6040513d6000823e3d90fd5b61049e9036906104a1565b60405190602082018281106001600160401b038211176102c95760405260008252565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b818110610c5e575050509360408381938161049e97980151908281860391015260ff815116845201519382015201906105a5565b82516001600160a01b031688529685019691850191600101610c2a565b60408051908160209384820194838301908087528251809252606080850182828560051b8801019501966000925b858410610ccf57505050505050610cc9925003601f1981018352826102e9565b51902090565b919360019193959750808097605f198c8203018752610d838b519183808451948a845289610d718c8851610d0f60e09182848b01526101208a0190610bee565b906001600160401b03610d33888d015193603f19948c898782850301910152610bee565b938c015195608096878c01528c0151169460a095868b015263ffffffff60e01b908c0151169460c095868b01528b01519189840301908901526105a5565b96015161010085015201511515910152565b990194019401918896949197959397610ca9565b90359060de198136030182121561008a570190565b903590603e198136030182121561008a570190565b3561049e81610542565b903590601e198136030182121561008a57018035906001600160401b03821161008a5760200191813603831361008a57565b3561049e8161055f565b9035603e198236030181121561008a570190565b9035601e198236030181121561008a5701602081359101916001600160401b03821161008a57813603831361008a57565b908060209392818452848401376000828201840152601f01601f1916010190565b906040610e8f61049e9360ff610e8282610423565b1684526020810190610e1b565b9190928160208201520191610e4c565b919091610eac8180610e07565b604084526080840193813592610ec18461034f565b6001600160401b03809416604083015260209283810135601e198236030181121561008a570195838735970194871161008a578660051b3603851361008a578690604060608501525260a08201936000965b808810610f3b57505061049e9495508083610f2f920190610e07565b91818403910152610e6d565b909484806001928835610f4d8161036b565b848060a01b0316815201960197019690610f13565b6020815281359060de198336030182121561008a57604061104260208561049e950195838286015260c0611033610fae610f9c8a80610e07565b60e060608a0152610140890190610e9f565b610fd1610fbd868c018c610e07565b91605f1992838b83030160808c0152610e9f565b90878b013560a08a01526001600160401b0360608c0135610ff18161034f565b16848a015261101661100560808d01610554565b6001600160e01b03191660e08b0152565b61102360a08c018c610e1b565b918a8403016101008b0152610e4c565b97013561012086015201610569565b1515910152565b60246103369193929360405194859163ffffffff60e01b1660208301526110798151809260208686019101610582565b81010360048101855201836102e9565b9060406110968380610d97565b0135906110cb6110c66110c16110bc6110b26110b28880610d97565b6020810190610dac565b610bc0565b61141d565b6111a2565b906001600160e01b03196110ea60806110e48780610d97565b01610dc1565b16156111845761113e846111186111116111078361049e99610d97565b60a0810190610dcb565b369161044c565b9061112560208201610dfd565b61114e575b60806110e48261113993610d97565b611049565b916001600160a01b0316906116e2565b905061113960806110e460405161117a8161116c8760208301610f62565b03601f1981018352826102e9565b939250505061112a565b61119a93506001600160a01b03909116906114d5565b61049e610bcb565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b146111e7575b156111e3576111d5906111fa565b906111de575090565b905090565b5090565b50506001600160401b03811660016111c7565b60009081526016600a6020836002607f60991b015afa9181519161040a8360018060a01b03169360a01c61ffff1603611250575b83158015611245575b61123e5750565b9250829150565b5060163d1415611237565b6000935091508161122e565b600090815b8383106112715750505050600190565b6001600160401b03606061129361128d8660051b860186610dac565b80610d97565b013561129e8161034f565b16809110156112b3575b600190920191611261565b82156112a85750505050600090565b6113576001600160401b03916112d6610a41565b50604051906bffffffffffffffffffffffff199060601b16602082015260148152611300816102ae565b61116c60405191611310836102ce565b600a83526001600160801b036020840160148152604085019283526040519687956020808801525116604086015251166060840152516060608084015260a08301906105a5565b61135f610329565b6004815290602082015290565b906020808383031261008a5782516001600160401b039384821161008a57019260608484031261008a57604051936113a3856102ce565b80516113ae8161034f565b8552828101516001600160801b038116810361008a5783860152604081015191821161008a570182601f8201121561008a578051906113ec82610431565b936113fa60405195866102e9565b82855283838301011161008a57826114159385019101610582565b604082015290565b600460ff61142c835160ff1690565b16036114a35760206114499101516020808251830101910161136c565b600a6001600160401b0361146483516001600160401b031690565b16036114a35760146001600160801b0361148860208401516001600160801b031690565b16036114a3576040016014815151036114a357516014015190565b60405163c5f8961f60e01b8152600490fd5b600211156114bf57565b634e487b7160e01b600052602160045260246000fd5b805160028110156114bf576114e9816114b5565b611543575081471061152b576000918291829182916001600160a01b03165af1611511611623565b501561151957565b604051630a12f52160e11b8152600490fd5b60405163cd78605960e01b8152306004820152602490fd5b919060018351611552816114b5565b61155b816114b5565b1461156557505050565b60209290920151610336926001600160a01b0390811691165b60405163a9059cbb60e01b60208201526001600160a01b0392831660248201526044808201949094529283526080830191906001600160401b038311848410176102c9576115d192604052169182611653565b80519081151591826115ff575b50506115e75750565b60249060405190635274afe760e01b82526004820152fd5b819250906020918101031261008a576020015161161b8161055f565b1538806115de565b3d1561164e573d9061163482610431565b9161164260405193846102e9565b82523d6000602084013e565b606090565b60008061049e9360208151910182855af161166c611623565b91611694565b9082471061152b5760008161049e946020839451920190855af161166c611623565b90156116d2578151156116a5575090565b803b156116b0575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561151957805190602001fd5b9291906060938315611772575b805160028110156114bf57611703816114b5565b61171b575061049e93506001600160a01b0316611672565b600181949293945161172c816114b5565b611735816114b5565b14611742575b5050505090565b6020015161176994506001600160a01b0392831692611764929184911661157e565b611653565b3880808061173b565b9350611787826001600160a01b038316611653565b936116ef56fea2646970667358221220e8b14ba86041f34684449dab009ab57e503e31cbeeaadfb1d17f57e279caadb164736f6c63430008130033","sourceMap":"763:3563:60:-:0;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2261,"length":20},{"start":2524,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c8063716868301461008f57806373b464b714610062578063898414751461005d578063ba094234146100585763f230beb21461005357600080fd5b610973565b610847565b610657565b307f0000000000000000000000000000000000000000000000000000000000000000036105db575b600080fd5b602036600319011261008a576001600160401b036004351161008a5736602360043501121561008a57600435600401356100c881610338565b906100d660405192836102e9565b80825260208201903660248260051b60043501011161008a57602460043501915b60248260051b600435010183106101285761012461011485610c7b565b6040519081529081906020820190565b0390f35b82356001600160401b03811161008a576023199160406004358301360384011261008a5760405190610159826102ae565b602483600435010135936001600160401b03851161008a5760e090858560043501013603011261008a5761018b61030a565b9160248585600435010101356001600160401b03811161008a576101bb90602436918888600435010101016104ed565b83526001600160401b0360448686600435010101351161008a576101ee36600435860187016044810135016024016104ed565b6020840152600435840185016064810135604085015261021090608401610360565b606084015261022760a48686600435010101610554565b608084015260c48585600435010101356001600160401b03811161008a576044602095869560e4602499610269610287968c3691848860043501010101610483565b60a0840152836004350101013560c082015284526004350101610569565b8382015281520193019290506100f7565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176102c957604052565b610298565b606081019081106001600160401b038211176102c957604052565b90601f801991011681019081106001600160401b038211176102c957604052565b6040519060e082018281106001600160401b038211176102c957604052565b60405190610336826102ae565b565b6001600160401b0381116102c95760051b60200190565b6001600160401b0381160361008a57565b35906103368261034f565b6001600160a01b0381160361008a57565b919060408382031261008a5760405192610395846102ae565b8381356103a18161034f565b815260209182810135906001600160401b03821161008a57019280601f8501121561008a5783356103d181610338565b946103df60405196876102e9565b818652848087019260051b82010192831161008a5784809101915b83831061040957505050500152565b819083356104168161036b565b81520191019084906103fa565b359060ff8216820361008a57565b6001600160401b0381116102c957601f01601f191660200190565b92919261045882610431565b9161046660405193846102e9565b82948184528183011161008a578281602093846000960137010152565b9080601f8301121561008a5781602061049e9335910161044c565b90565b919060408382031261008a57604051906104ba826102ae565b81936104c581610423565b83526020810135916001600160401b03831161008a576020926104e89201610483565b910152565b919060408382031261008a5760405190610506826102ae565b81938035916001600160401b039283811161008a578161052791840161037c565b8452602082013592831161008a576020926104e892016104a1565b6001600160e01b031981160361008a57565b359061033682610542565b8015150361008a57565b35906103368261055f565b9081604091031261008a5790565b60005b8381106105955750506000910152565b8181015183820152602001610585565b906020916105be81518092818552858086019101610582565b601f01601f1916010190565b90602061049e9281815201906105a5565b606036600319011261008a576004356001600160401b03811161008a57610606903690600401610574565b604036602319011261008a5760405161061e816102ae565b60243590600282101561008a576101249261064b9282526044356106418161036b565b6020830152611089565b604051918291826105ca565b602036600319011261008a576001600160401b0360043581811161008a573660238201121561008a57806004013591821161008a573660248360051b8301011161008a5760209160246106aa920161125c565b6040519015158152f35b60a060031982011261008a576001600160401b039160043583811161008a57826106e091600401610574565b926024356106ed8161036b565b9260443591821161008a5761070491600401610574565b906064359060843590565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061074d575050505090565b83516001600160a01b03168552938101939281019260010161073f565b6040602061049e938161078485518584528584019061070f565b940151908281860391015260ff815116845201519181602082015201906105a5565b61049e906020815260406020845194828285015260c06108356107d6885160e0606089015261014088019061076a565b6107f1858a015191605f1992838a83030160808b015261076a565b90868a015160a08901526001600160401b0360608b0151168489015263ffffffff60e01b60808b01511660e089015260a08a015190888303016101008901526105a5565b96015161012085015201511515910152565b61086e6108906108af610859366106b4565b93959192610868979197610a7d565b506112c2565b94610877610329565b95610882368361037c565b87526020870152369061037c565b94604051956308c7427760e11b87528680600096879360048301610ba3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561096e57610124968593610946575b506108f1906108e7610329565b93845236906104a1565b60208301526108fe610bcb565b9161090761030a565b9586526020860152604085015282606085015282608085015260a084015260c0830152610932610329565b9182526020820152604051918291826107a6565b6108f1919350610967903d8088833e61095f81836102e9565b810190610ae8565b92906108da565b610bb4565b6109b661097f366106b4565b919492939061098c610a7d565b50610997368361037c565b95604051966308c7427760e11b88528780600097889360048301610ba3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af495861561096e57610124978697610a1b575b50906109ef6108f1926112c2565b6109f7610329565b9788526020880152610a12610a0a610329565b94369061037c565b845236906104a1565b6108f192919750610a386109ef913d808a833e61095f81836102e9565b979192506109e1565b60405190610a4e826102ae565b6060602083600081520152565b60405190610a68826102ae565b81610a71610a41565b815260206104e8610a41565b60405190610a8a826102ae565b60405160e08101836001600160401b038211838310176102c957600092602092604052610ab5610a5b565b8152610abf610a5b565b83820152836040820152836060820152836080820152606060a08201528360c082015281520152565b906020808383031261008a5782516001600160401b039384821161008a57019260408484031261008a5760405193610b1f856102ae565b8051610b2a8161034f565b85528281015191821161008a57019180601f8401121561008a578251610b4f81610338565b93610b5d60405195866102e9565b818552838086019260051b82010192831161008a5783809101915b838310610b89575050505082015290565b81908351610b968161036b565b8152019101908390610b78565b90602061049e92818152019061070f565b6040513d6000823e3d90fd5b61049e9036906104a1565b60405190602082018281106001600160401b038211176102c95760405260008252565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b818110610c5e575050509360408381938161049e97980151908281860391015260ff815116845201519382015201906105a5565b82516001600160a01b031688529685019691850191600101610c2a565b60408051908160209384820194838301908087528251809252606080850182828560051b8801019501966000925b858410610ccf57505050505050610cc9925003601f1981018352826102e9565b51902090565b919360019193959750808097605f198c8203018752610d838b519183808451948a845289610d718c8851610d0f60e09182848b01526101208a0190610bee565b906001600160401b03610d33888d015193603f19948c898782850301910152610bee565b938c015195608096878c01528c0151169460a095868b015263ffffffff60e01b908c0151169460c095868b01528b01519189840301908901526105a5565b96015161010085015201511515910152565b990194019401918896949197959397610ca9565b90359060de198136030182121561008a570190565b903590603e198136030182121561008a570190565b3561049e81610542565b903590601e198136030182121561008a57018035906001600160401b03821161008a5760200191813603831361008a57565b3561049e8161055f565b9035603e198236030181121561008a570190565b9035601e198236030181121561008a5701602081359101916001600160401b03821161008a57813603831361008a57565b908060209392818452848401376000828201840152601f01601f1916010190565b906040610e8f61049e9360ff610e8282610423565b1684526020810190610e1b565b9190928160208201520191610e4c565b919091610eac8180610e07565b604084526080840193813592610ec18461034f565b6001600160401b03809416604083015260209283810135601e198236030181121561008a570195838735970194871161008a578660051b3603851361008a578690604060608501525260a08201936000965b808810610f3b57505061049e9495508083610f2f920190610e07565b91818403910152610e6d565b909484806001928835610f4d8161036b565b848060a01b0316815201960197019690610f13565b6020815281359060de198336030182121561008a57604061104260208561049e950195838286015260c0611033610fae610f9c8a80610e07565b60e060608a0152610140890190610e9f565b610fd1610fbd868c018c610e07565b91605f1992838b83030160808c0152610e9f565b90878b013560a08a01526001600160401b0360608c0135610ff18161034f565b16848a015261101661100560808d01610554565b6001600160e01b03191660e08b0152565b61102360a08c018c610e1b565b918a8403016101008b0152610e4c565b97013561012086015201610569565b1515910152565b60246103369193929360405194859163ffffffff60e01b1660208301526110798151809260208686019101610582565b81010360048101855201836102e9565b9060406110968380610d97565b0135906110cb6110c66110c16110bc6110b26110b28880610d97565b6020810190610dac565b610bc0565b61141d565b6111a2565b906001600160e01b03196110ea60806110e48780610d97565b01610dc1565b16156111845761113e846111186111116111078361049e99610d97565b60a0810190610dcb565b369161044c565b9061112560208201610dfd565b61114e575b60806110e48261113993610d97565b611049565b916001600160a01b0316906116e2565b905061113960806110e460405161117a8161116c8760208301610f62565b03601f1981018352826102e9565b939250505061112a565b61119a93506001600160a01b03909116906114d5565b61049e610bcb565b60008073ffffffffffffffffffffffff0000000000000000831660ff60981b146111e7575b156111e3576111d5906111fa565b906111de575090565b905090565b5090565b50506001600160401b03811660016111c7565b60009081526016600a6020836002607f60991b015afa9181519161040a8360018060a01b03169360a01c61ffff1603611250575b83158015611245575b61123e5750565b9250829150565b5060163d1415611237565b6000935091508161122e565b600090815b8383106112715750505050600190565b6001600160401b03606061129361128d8660051b860186610dac565b80610d97565b013561129e8161034f565b16809110156112b3575b600190920191611261565b82156112a85750505050600090565b6113576001600160401b03916112d6610a41565b50604051906bffffffffffffffffffffffff199060601b16602082015260148152611300816102ae565b61116c60405191611310836102ce565b600a83526001600160801b036020840160148152604085019283526040519687956020808801525116604086015251166060840152516060608084015260a08301906105a5565b61135f610329565b6004815290602082015290565b906020808383031261008a5782516001600160401b039384821161008a57019260608484031261008a57604051936113a3856102ce565b80516113ae8161034f565b8552828101516001600160801b038116810361008a5783860152604081015191821161008a570182601f8201121561008a578051906113ec82610431565b936113fa60405195866102e9565b82855283838301011161008a57826114159385019101610582565b604082015290565b600460ff61142c835160ff1690565b16036114a35760206114499101516020808251830101910161136c565b600a6001600160401b0361146483516001600160401b031690565b16036114a35760146001600160801b0361148860208401516001600160801b031690565b16036114a3576040016014815151036114a357516014015190565b60405163c5f8961f60e01b8152600490fd5b600211156114bf57565b634e487b7160e01b600052602160045260246000fd5b805160028110156114bf576114e9816114b5565b611543575081471061152b576000918291829182916001600160a01b03165af1611511611623565b501561151957565b604051630a12f52160e11b8152600490fd5b60405163cd78605960e01b8152306004820152602490fd5b919060018351611552816114b5565b61155b816114b5565b1461156557505050565b60209290920151610336926001600160a01b0390811691165b60405163a9059cbb60e01b60208201526001600160a01b0392831660248201526044808201949094529283526080830191906001600160401b038311848410176102c9576115d192604052169182611653565b80519081151591826115ff575b50506115e75750565b60249060405190635274afe760e01b82526004820152fd5b819250906020918101031261008a576020015161161b8161055f565b1538806115de565b3d1561164e573d9061163482610431565b9161164260405193846102e9565b82523d6000602084013e565b606090565b60008061049e9360208151910182855af161166c611623565b91611694565b9082471061152b5760008161049e946020839451920190855af161166c611623565b90156116d2578151156116a5575090565b803b156116b0575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561151957805190602001fd5b9291906060938315611772575b805160028110156114bf57611703816114b5565b61171b575061049e93506001600160a01b0316611672565b600181949293945161172c816114b5565b611735816114b5565b14611742575b5050505090565b6020015161176994506001600160a01b0392831692611764929184911661157e565b611653565b3880808061173b565b9350611787826001600160a01b038316611653565b936116ef56fea2646970667358221220e8b14ba86041f34684449dab009ab57e503e31cbeeaadfb1d17f57e279caadb164736f6c63430008130033","sourceMap":"763:3563:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;763:3563:60;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;-1:-1:-1;;763:3563:60;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;763:3563:60;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;763:3563:60;;;;;:::o;:::-;;;;;;:::i;:::-;-1:-1:-1;;;;;763:3563:60;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;763:3563:60;;;;;;-1:-1:-1;;763:3563:60;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;763:3563:60;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;763:3563:60;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;763:3563:60;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;763:3563:60;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;763:3563:60;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;763:3563:60;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;-1:-1:-1;;763:3563:60;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;763:3563:60;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1307:29;763:3563;1386:24;763:3563;;;:::i;:::-;;;;;;;;;;:::i;:::-;;1307:29;:::i;:::-;763:3563;;;:::i;:::-;;;;;;:::i;:::-;;;1265:73;;;763:3563;;;;:::i;:::-;;;;;;;;1386:24;;-1:-1:-1;;;1386:24:60;;;763:3563;1386:24;;;:::i;:::-;;:22;;:24;;;;;;;763:3563;1386:24;;;;;763:3563;;;;;;:::i;:::-;;;;;;;:::i;:::-;1265:73;1364:64;;763:3563;234:9:40;;:::i;:::-;763:3563:60;;;:::i;:::-;;;;1265:73;1225:398;;763:3563;;1225:398;;763:3563;1225:398;;;;193:9:40;1225:398:60;;;;193:9:40;1225:398:60;;;763:3563;1225:398;;;763:3563;;;:::i;:::-;;;;1265:73;1189:481;;193:9:40;763:3563:60;;;;;;;:::i;1386:24::-;763:3563;1386:24;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::i;763:3563::-;2011:24;763:3563;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;2011:24;;-1:-1:-1;;;2011:24:60;;;763:3563;2011:24;;;:::i;:::-;;:22;;:24;;;;;;;763:3563;2011:24;;;;;763:3563;2049:29;;;763:3563;2049:29;;:::i;:::-;763:3563;;:::i;:::-;;;;1989:91;;;763:3563;;;;:::i;:::-;;;;;:::i;:::-;;;;;;:::i;2011:24::-;763:3563;2011:24;;;;;2049:29;2011:24;;;;;;;;;;:::i;:::-;;;;;;;763:3563;;;;;;;:::i;:::-;;;;-1:-1:-1;763:3563:60;;;;:::o;:::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;-1:-1:-1;763:3563:60;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;234:9:40:-;763:3563:60;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;-1:-1:-1;234:9:40;;:::o;763:3563:60:-;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;2542:131;763:3563;;;2644:21;;;;;;;763:3563;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;763:3563:60;;;;;;;2644:21;;;;;;;;;;763:3563;;2644:21;;;;;;:::i;:::-;763:3563;2634:32;;2542:131;:::o;763:3563::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;763:3563:60;;;;;;;;-1:-1:-1;;763:3563:60;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;763:3563:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;2930:751::-;;3065:22;:16;;;;:::i;:::-;:22;763:3563;3117:16;:62;:50;:48;:30;:19;:16;;;;:::i;:::-;:19;;;;;:::i;:30::-;:48;:::i;:::-;:50;:::i;:::-;:62;:::i;:::-;763:3563;-1:-1:-1;;;;;;3194:23:60;;:16;;;;:::i;:::-;:23;;:::i;:::-;763:3563;3194:38;3190:169;;3531:45;3391:16;763:3563;3391:23;:16;;3594:80;3391:16;;:::i;:::-;:23;;;;;:::i;:::-;763:3563;;;:::i;:::-;3429:16;;3117:19;3429:16;;;:::i;:::-;3425:76;;2930:751;3194:23;3544:16;;:23;:16;;:::i;:23::-;3531:45;:::i;:::-;763:3563;-1:-1:-1;;;;;763:3563:60;;3594:80;:::i;3425:76::-;763:3563;;3544:23;3194;3544:16;3065:22;763:3563;3470:20;;;;3117:19;3470:20;;;:::i;:::-;;763:3563;;3470:20;;;;;;:::i;:::-;3425:76;;;;;;;3190:169;3309:5;;-1:-1:-1;;;;;;763:3563:60;;;;3309:5;:::i;:::-;234:9:40;;:::i;2356:528:1:-;-1:-1:-1;;4542:339:1;;;-1:-1:-1;;;4542:339:1;;;2356:528;2559:5;2555:45;;2762:17;;;:::i;:::-;2793:8;;;2817:9;;:::o;2789:89::-;2857:10;;;:::o;2555:45::-;2580:9;;:::o;4542:339::-;-1:-1:-1;;;;;;;4542:339:1;;;;;7171:2211;7309:1653;;;;;;;;-1:-1:-1;;;;;7309:1653:1;;;;;763:3563:60;7309:1653:1;763:3563:60;;;;;;7309:1653:1;;763:3563:60;7309:1653:1;;;;;;7171:2211;9289:8;;763:3563:60;;9289:34:1;;7171:2211;9285:91;;7171:2211;:::o;9285:91::-;9339:26;-1:-1:-1;9339:26:1;;-1:-1:-1;9339:26:1:o;9289:34::-;13622:37;7309:1653;13622:37;9301:22;;9289:34;;7309:1653;;;-1:-1:-1;7309:1653:1;-1:-1:-1;7309:1653:1;;;3765:559:60;763:3563;3928:9;;3939:10;;;;;;4306:11;;;;763:3563;3765:559;:::o;3928:9::-;-1:-1:-1;;;;;3983:26:60;:20;763:3563;;;;;;;;:::i;:::-;3983:20;;:::i;:::-;:26;763:3563;;;;:::i;:::-;;4028:18;;;;4024:171;;3928:9;763:3563;4209:17;763:3563;;3928:9;;;4024:171;4120:6;4116:65;4024:171;4116:65;4150:12;;;;763:3563;4150:12;:::o;581:314:61:-;695:118;-1:-1:-1;;;;;581:314:61;763:3563:60;;:::i;:::-;;;;480:2:61;4542:339:1;480:2:61;;;;;779:22;;;480:2;779:22;;;;;;:::i;:::-;480:2;763:3563:60;;;;;;:::i;:::-;;193:9:40;;-1:-1:-1;;;;;779:22:61;719:84;;779:22;480:2;;763:3563:60;719:84:61;;763:3563:60;;;;;695:118:61;;;779:22;695:118;;;480:2;;763:3563:60;;480:2:61;;763:3563:60;480:2:61;;;;;;;;;;;;;;;;;:::i;695:118::-;763:3563:60;;:::i;:::-;;438:1:61;;837:51;779:22;837:51;;763:3563:60;581:314:61;:::o;763:3563:60:-;;;;;;;;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;480:2:61;;763:3563:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;1412:649:61:-;438:1;763:3563:60;;;;;;;;;;1520:32:61;1516:94;;1667:18;1656:50;1667:18;;;;763:3563:60;;;1656:50:61;;;;;;:::i;:::-;480:2;-1:-1:-1;;;;;763:3563:60;;;-1:-1:-1;;;;;763:3563:60;;;;;1721:32:61;1717:94;;1844:2;-1:-1:-1;;;;;763:3563:60;1667:18:61;1824:16;;763:3563:60;-1:-1:-1;;;;;480:2:61;;;763:3563:60;480:2:61;1824:22;1820:84;;1917:16;;1844:2;1917:16;;763:3563:60;1917:29:61;1913:91;;2037:16;2193:60;;;763:3563:60;:::o;1913:91:61:-;1917:16;763:3563:60;-1:-1:-1;;;1969:24:61;;438:1;;1969:24;763:3563:60;;-1:-1:-1;763:3563:60;;;:::o;:::-;;;;;;;;;;;;2735:383:76;763:3563:60;;;;;;;;;;;:::i;:::-;2852:38:76;;1615:21:29;;;:30;1611:109;;1749:33;;;;;;;;-1:-1:-1;;;;;763:3563:60;1749:33:29;;;;:::i;:::-;;1796:8;1792:63;;2735:383:76:o;1792:63:29:-;763:3563:60;;-1:-1:-1;;;1827:17:29;;;;;1611:109;763:3563:60;;-1:-1:-1;;;1668:41:29;;1623:4;1668:41;;;763:3563:60;;;1668:41:29;2848:264:76;763:3563:60;;;;;;;;:::i;:::-;;;;:::i;:::-;2971:37:76;2967:145;;2848:264;;;2735:383::o;2967:145::-;3031:25;;;;;763:3563:60;3024:77:76;;-1:-1:-1;;;;;763:3563:60;;;;;1254:160:28;763:3563:60;;-1:-1:-1;;;1363:43:28;;;;-1:-1:-1;;;;;763:3563:60;;;1363:43:28;;;763:3563:60;;;;;;;;;1363:43:28;;;763:3563:60;;;;;-1:-1:-1;;;;;763:3563:60;;;;;;;;2709:53:29;763:3563:60;;;;2709:53:29;;;:::i;:::-;763:3563:60;;5134:22:28;;;;:57;;;;1254:160;5130:135;;;;1254:160;:::o;5130:135::-;1363:43;763:3563:60;;;5214:40:28;;;;;;;;;763:3563:60;5214:40:28;5134:57;5161:30;;;;1363:43;5161:30;;;763:3563:60;;;;1363:43:28;5161:30;763:3563:60;;;;:::i;:::-;5160:31:28;5134:57;;;;763:3563:60;;;;;;234:9:40;;;;:::i;:::-;763:3563:60;;;;;;;:::i;:::-;234:9:40;;763:3563:60;-1:-1:-1;763:3563:60;;;;:::o;:::-;;;:::o;4215:483:29:-;-1:-1:-1;4215:483:29;4622:69;4215:483;4574:31;;;;;;;;;;;:::i;:::-;4622:69;;:::i;4215:483::-;;4419:21;;:29;4415:108;;4574:31;;4622:69;4574:31;;;;;;;;;;;;;:::i;6737:692::-;;6952:471;;;763:3563:60;;6983:22:29;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;763:3563:60;;-1:-1:-1;;;7261:24:29;;-1:-1:-1;;;;;763:3563:60;;;7261:24:29;;;763:3563:60;;;7261:24:29;6952:471;-1:-1:-1;763:3563:60;;8828:21:29;:17;;9000:142;;;;;;3224:896:76;;;;763:3563:60;3460:10:76;;;3456:81;;3224:896;763:3563:60;;;;;;;;;;;:::i;:::-;3608:38:76;;-1:-1:-1;3803:57:29;;-1:-1:-1;;;;;;763:3563:60;3803:57:29;:::i;3604:490:76:-;3856:16;763:3563:60;;;;;;;;;:::i;:::-;;;;:::i;:::-;3835:37:76;3831:263;;3604:490;;;;;3224:896;:::o;3831:263::-;3962:25;;763:3563:60;2709:53:29;;-1:-1:-1;;;;;;763:3563:60;;;;3955:74:76;;;763:3563:60;;;3955:74:76;:::i;:::-;2709:53:29;:::i;:::-;3831:263:76;;;;;;3456:81;763:3563:60;-1:-1:-1;2709:53:29;763:3563:60;-1:-1:-1;;;;;763:3563:60;;2709:53:29;:::i;:::-;3456:81:76;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":2227,"length":20},{"start":2490,"length":20}]}},"immutableReferences":{"library_deploy_address":[{"start":101,"length":32}]}},"methodIdentifiers":{"createFundMsg(SubnetID,address,FvmAddress,uint256,uint256)":"f230beb2","createReleaseMsg(SubnetID,address,FvmAddress,uint256,uint256)":"ba094234","execute(CrossMsg,SupplySource)":"73b464b7","isSorted(CrossMsg[])":"89841475","toHash(CrossMsg[])":"71686830"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\"},{\"inputs\":[],\"name\":\"NotDelegatedEvmAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"createFundMsg\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"createReleaseMsg\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"}],\"name\":\"isSorted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"}],\"name\":\"toHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"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.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for manipulating StorableMsg struct\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/CrossMsgHelper.sol\":\"CrossMsgHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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"},{"inputs":[],"type":"error","name":"NotDelegatedEvmAddress"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"signer","type":"address"},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"pure","type":"function","name":"createFundMsg","outputs":[{"internalType":"struct CrossMsg","name":"","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"signer","type":"address"},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"pure","type":"function","name":"createReleaseMsg","outputs":[{"internalType":"struct CrossMsg","name":"","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"inputs":[{"internalType":"struct CrossMsg[]","name":"crossMsgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"pure","type":"function","name":"isSorted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct CrossMsg[]","name":"crossMsgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"pure","type":"function","name":"toHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/CrossMsgHelper.sol":"CrossMsgHelper"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/CrossMsgHelper.sol","id":40782,"exportedSymbols":{"Address":[32838],"CrossMsg":[49974],"CrossMsgHelper":[40781],"EMPTY_BYTES":[36873],"FilAddress":[1428],"FvmAddress":[49998],"FvmAddressHelper":[40962],"IPCAddress":[50204],"METHOD_SEND":[36879],"StorableMsg":[49991],"SubnetID":[50077],"SubnetIDHelper":[48072],"SupplySource":[50226],"SupplySourceHelper":[48398]},"nodeType":"SourceUnit","src":"46:4281:60","nodes":[{"id":40449,"nodeType":"PragmaDirective","src":"46:23:60","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40452,"nodeType":"ImportDirective","src":"71:68:60","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":40450,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"79:11:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40451,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"92:11:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40455,"nodeType":"ImportDirective","src":"140:62:60","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":40453,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"148:11:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40454,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"161:8:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40458,"nodeType":"ImportDirective","src":"203:59:60","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":40456,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"211:8:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40457,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"221:10:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40460,"nodeType":"ImportDirective","src":"263:57:60","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":40459,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"271:14:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40462,"nodeType":"ImportDirective","src":"321:61:60","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":40963,"symbolAliases":[{"foreign":{"id":40461,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"329:16:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40464,"nodeType":"ImportDirective","src":"383:53:60","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":40463,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"391:10:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40466,"nodeType":"ImportDirective","src":"437:56:60","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":40465,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"445:10:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40468,"nodeType":"ImportDirective","src":"494:65:60","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":40467,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"502:7:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40470,"nodeType":"ImportDirective","src":"560:51:60","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":40469,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"568:12:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40472,"nodeType":"ImportDirective","src":"612:60:60","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"./SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":40782,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":40471,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"620:18:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40781,"nodeType":"ContractDefinition","src":"763:3563:60","nodes":[{"id":40477,"nodeType":"UsingForDirective","src":"792:34:60","nodes":[],"global":false,"libraryName":{"id":40474,"name":"SubnetIDHelper","nameLocations":["798:14:60"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"798:14:60"},"typeName":{"id":40476,"nodeType":"UserDefinedTypeName","pathNode":{"id":40475,"name":"SubnetID","nameLocations":["817:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"817:8:60"},"referencedDeclaration":50077,"src":"817:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":40480,"nodeType":"UsingForDirective","src":"831:29:60","nodes":[],"global":false,"libraryName":{"id":40478,"name":"FilAddress","nameLocations":["837:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"837:10:60"},"typeName":{"id":40479,"name":"address","nodeType":"ElementaryTypeName","src":"852:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":40484,"nodeType":"UsingForDirective","src":"865:38:60","nodes":[],"global":false,"libraryName":{"id":40481,"name":"FvmAddressHelper","nameLocations":["871:16:60"],"nodeType":"IdentifierPath","referencedDeclaration":40962,"src":"871:16:60"},"typeName":{"id":40483,"nodeType":"UserDefinedTypeName","pathNode":{"id":40482,"name":"FvmAddress","nameLocations":["892:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"892:10:60"},"referencedDeclaration":49998,"src":"892:10:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}}},{"id":40488,"nodeType":"UsingForDirective","src":"908:42:60","nodes":[],"global":false,"libraryName":{"id":40485,"name":"SupplySourceHelper","nameLocations":["914:18:60"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"914:18:60"},"typeName":{"id":40487,"nodeType":"UserDefinedTypeName","pathNode":{"id":40486,"name":"SupplySource","nameLocations":["937:12:60"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"937:12:60"},"referencedDeclaration":50226,"src":"937:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":40531,"nodeType":"FunctionDefinition","src":"956:721:60","nodes":[],"body":{"id":40530,"nodeType":"Block","src":"1160:517:60","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":40509,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40491,"src":"1287:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},{"arguments":[{"id":40512,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40493,"src":"1329:6:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":40510,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"1307:16:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":40511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1324:4:60","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"1307:21:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":40513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1307:29:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":40508,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"1265:10:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1277:8:60","1295:10:60"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1265:73:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40516,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40491,"src":"1386:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":40517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1393:15:60","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":47578,"src":"1386:22:60","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":40518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1386:24:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":40519,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40496,"src":"1424:2:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}],"id":40515,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"1364:10:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1376:8:60","1412:10:60"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1364:64:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"id":40521,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40498,"src":"1457:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":40522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1491:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":40523,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"1522:11:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":40524,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"1563:11:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":40525,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40500,"src":"1601:3:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40507,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"1225:11:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49991_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":40526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1259:4:60","1360:2:60","1450:5:60","1484:5:60","1514:6:60","1555:6:60","1596:3:60"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"1225:398:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":40527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1650:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":40506,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"1189:8:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49974_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":40528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1216:7:60","1641:7:60"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"1189:481:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"functionReturnParameters":40505,"id":40529,"nodeType":"Return","src":"1170:500:60"}]},"functionSelector":"ba094234","implemented":true,"kind":"function","modifiers":[],"name":"createReleaseMsg","nameLocation":"965:16:60","parameters":{"id":40501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40491,"mutability":"mutable","name":"subnet","nameLocation":"1009:6:60","nodeType":"VariableDeclaration","scope":40531,"src":"991:24:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":40490,"nodeType":"UserDefinedTypeName","pathNode":{"id":40489,"name":"SubnetID","nameLocations":["991:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"991:8:60"},"referencedDeclaration":50077,"src":"991:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":40493,"mutability":"mutable","name":"signer","nameLocation":"1033:6:60","nodeType":"VariableDeclaration","scope":40531,"src":"1025:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40492,"name":"address","nodeType":"ElementaryTypeName","src":"1025:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40496,"mutability":"mutable","name":"to","nameLocation":"1069:2:60","nodeType":"VariableDeclaration","scope":40531,"src":"1049:22:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40495,"nodeType":"UserDefinedTypeName","pathNode":{"id":40494,"name":"FvmAddress","nameLocations":["1049:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"1049:10:60"},"referencedDeclaration":49998,"src":"1049:10:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":40498,"mutability":"mutable","name":"value","nameLocation":"1089:5:60","nodeType":"VariableDeclaration","scope":40531,"src":"1081:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40497,"name":"uint256","nodeType":"ElementaryTypeName","src":"1081:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40500,"mutability":"mutable","name":"fee","nameLocation":"1112:3:60","nodeType":"VariableDeclaration","scope":40531,"src":"1104:11:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40499,"name":"uint256","nodeType":"ElementaryTypeName","src":"1104:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"981:140:60"},"returnParameters":{"id":40505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40504,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40531,"src":"1143:15:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40503,"nodeType":"UserDefinedTypeName","pathNode":{"id":40502,"name":"CrossMsg","nameLocations":["1143:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1143:8:60"},"referencedDeclaration":49974,"src":"1143:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1142:17:60"},"scope":40781,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":40574,"nodeType":"FunctionDefinition","src":"1683:718:60","nodes":[],"body":{"id":40573,"nodeType":"Block","src":"1884:517:60","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":40552,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40534,"src":"2011:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":40553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2018:15:60","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":47578,"src":"2011:22:60","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":40554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2011:24:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":40557,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40536,"src":"2071:6:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":40555,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"2049:16:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":40556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2066:4:60","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"2049:21:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":40558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2049:29:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":40551,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"1989:10:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2001:8:60","2037:10:60"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"1989:91:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"id":40561,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40534,"src":"2128:6:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},{"id":40562,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40539,"src":"2148:2:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}],"id":40560,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"2106:10:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":40563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2118:8:60","2136:10:60"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"2106:46:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"id":40564,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40541,"src":"2181:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":40565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2215:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":40566,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"2246:11:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":40567,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"2287:11:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":40568,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40543,"src":"2325:3:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40550,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"1949:11:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49991_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":40569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1983:4:60","2102:2:60","2174:5:60","2208:5:60","2238:6:60","2279:6:60","2320:3:60"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"1949:398:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":40570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2374:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":40549,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"1913:8:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49974_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":40571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1940:7:60","2365:7:60"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"1913:481:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"functionReturnParameters":40548,"id":40572,"nodeType":"Return","src":"1894:500:60"}]},"functionSelector":"f230beb2","implemented":true,"kind":"function","modifiers":[],"name":"createFundMsg","nameLocation":"1692:13:60","parameters":{"id":40544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40534,"mutability":"mutable","name":"subnet","nameLocation":"1733:6:60","nodeType":"VariableDeclaration","scope":40574,"src":"1715:24:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":40533,"nodeType":"UserDefinedTypeName","pathNode":{"id":40532,"name":"SubnetID","nameLocations":["1715:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1715:8:60"},"referencedDeclaration":50077,"src":"1715:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":40536,"mutability":"mutable","name":"signer","nameLocation":"1757:6:60","nodeType":"VariableDeclaration","scope":40574,"src":"1749:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40535,"name":"address","nodeType":"ElementaryTypeName","src":"1749:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40539,"mutability":"mutable","name":"to","nameLocation":"1793:2:60","nodeType":"VariableDeclaration","scope":40574,"src":"1773:22:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40538,"nodeType":"UserDefinedTypeName","pathNode":{"id":40537,"name":"FvmAddress","nameLocations":["1773:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"1773:10:60"},"referencedDeclaration":49998,"src":"1773:10:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":40541,"mutability":"mutable","name":"value","nameLocation":"1813:5:60","nodeType":"VariableDeclaration","scope":40574,"src":"1805:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40540,"name":"uint256","nodeType":"ElementaryTypeName","src":"1805:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40543,"mutability":"mutable","name":"fee","nameLocation":"1836:3:60","nodeType":"VariableDeclaration","scope":40574,"src":"1828:11:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40542,"name":"uint256","nodeType":"ElementaryTypeName","src":"1828:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1705:140:60"},"returnParameters":{"id":40548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40574,"src":"1867:15:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40546,"nodeType":"UserDefinedTypeName","pathNode":{"id":40545,"name":"CrossMsg","nameLocations":["1867:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1867:8:60"},"referencedDeclaration":49974,"src":"1867:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1866:17:60"},"scope":40781,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":40590,"nodeType":"FunctionDefinition","src":"2407:129:60","nodes":[],"body":{"id":40589,"nodeType":"Block","src":"2481:55:60","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":40585,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40577,"src":"2519:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":40583,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2508:3:60","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2512:6:60","memberName":"encode","nodeType":"MemberAccess","src":"2508:10:60","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2508:20:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40582,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2498:9:60","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2498:31:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":40581,"id":40588,"nodeType":"Return","src":"2491:38:60"}]},"implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"2416:6:60","parameters":{"id":40578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40577,"mutability":"mutable","name":"crossMsg","nameLocation":"2439:8:60","nodeType":"VariableDeclaration","scope":40590,"src":"2423:24:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40576,"nodeType":"UserDefinedTypeName","pathNode":{"id":40575,"name":"CrossMsg","nameLocations":["2423:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"2423:8:60"},"referencedDeclaration":49974,"src":"2423:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"2422:26:60"},"returnParameters":{"id":40581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40580,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40590,"src":"2472:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40579,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2472:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2471:9:60"},"scope":40781,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40607,"nodeType":"FunctionDefinition","src":"2542:131:60","nodes":[],"body":{"id":40606,"nodeType":"Block","src":"2617:56:60","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":40602,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40594,"src":"2655:9:60","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":40600,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2644:3:60","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2648:6:60","memberName":"encode","nodeType":"MemberAccess","src":"2644:10:60","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2644:21:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40599,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2634:9:60","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2634:32:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":40598,"id":40605,"nodeType":"Return","src":"2627:39:60"}]},"functionSelector":"71686830","implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"2551:6:60","parameters":{"id":40595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40594,"mutability":"mutable","name":"crossMsgs","nameLocation":"2576:9:60","nodeType":"VariableDeclaration","scope":40607,"src":"2558:27:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":40592,"nodeType":"UserDefinedTypeName","pathNode":{"id":40591,"name":"CrossMsg","nameLocations":["2558:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"2558:8:60"},"referencedDeclaration":49974,"src":"2558:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":40593,"nodeType":"ArrayTypeName","src":"2558:10:60","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"2557:29:60"},"returnParameters":{"id":40598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40597,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40607,"src":"2608:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2608:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2607:9:60"},"scope":40781,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":40638,"nodeType":"FunctionDefinition","src":"2679:245:60","nodes":[],"body":{"id":40637,"nodeType":"Block","src":"2751:173:60","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40615,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40610,"src":"2780:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":40616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2789:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2780:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":40617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2797:5:60","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49984,"src":"2780:22:60","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":40618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2780:27:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"expression":{"id":40620,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40610,"src":"2823:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":40621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2832:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2823:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":40622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2840:2:60","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"2823:19:60","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},"id":40623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2843:8:60","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"2823:28:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":40624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2852:4:60","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"2823:33:60","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":40625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2860:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2823:38:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2780:81:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"expression":{"id":40628,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40610,"src":"2877:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":40629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2886:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2877:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":40630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2894:4:60","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":49977,"src":"2877:21:60","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},"id":40631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2899:8:60","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"2877:30:60","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":40632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2908:4:60","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"2877:35:60","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":40633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2916:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2877:40:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2780:137:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":40614,"id":40636,"nodeType":"Return","src":"2761:156:60"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"2688:7:60","parameters":{"id":40611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40610,"mutability":"mutable","name":"crossMsg","nameLocation":"2712:8:60","nodeType":"VariableDeclaration","scope":40638,"src":"2696:24:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40609,"nodeType":"UserDefinedTypeName","pathNode":{"id":40608,"name":"CrossMsg","nameLocations":["2696:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"2696:8:60"},"referencedDeclaration":49974,"src":"2696:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"2695:26:60"},"returnParameters":{"id":40614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40638,"src":"2745:4:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40612,"name":"bool","nodeType":"ElementaryTypeName","src":"2745:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2744:6:60"},"scope":40781,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40724,"nodeType":"FunctionDefinition","src":"2930:751:60","nodes":[],"body":{"id":40723,"nodeType":"Block","src":"3039:642:60","nodes":[],"statements":[{"assignments":[40650],"declarations":[{"constant":false,"id":40650,"mutability":"mutable","name":"value","nameLocation":"3057:5:60","nodeType":"VariableDeclaration","scope":40723,"src":"3049:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40649,"name":"uint256","nodeType":"ElementaryTypeName","src":"3049:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40654,"initialValue":{"expression":{"expression":{"id":40651,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40641,"src":"3065:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3074:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"3065:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3082:5:60","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49982,"src":"3065:22:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3049:38:60"},{"assignments":[40656],"declarations":[{"constant":false,"id":40656,"mutability":"mutable","name":"recipient","nameLocation":"3105:9:60","nodeType":"VariableDeclaration","scope":40723,"src":"3097:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40655,"name":"address","nodeType":"ElementaryTypeName","src":"3097:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":40665,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"expression":{"id":40657,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40641,"src":"3117:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3126:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"3117:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3134:2:60","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"3117:19:60","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":40660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3137:10:60","memberName":"rawAddress","nodeType":"MemberAccess","referencedDeclaration":50203,"src":"3117:30:60","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}},"id":40661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3148:17:60","memberName":"extractEvmAddress","nodeType":"MemberAccess","referencedDeclaration":40952,"src":"3117:48:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (struct FvmAddress memory) pure returns (address)"}},"id":40662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3117:50:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3168:9:60","memberName":"normalize","nodeType":"MemberAccess","referencedDeclaration":1220,"src":"3117:60:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$attached_to$_t_address_$","typeString":"function (address) view returns (address)"}},"id":40664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3117:62:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3097:82:60"},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":40670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40666,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40641,"src":"3194:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3203:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"3194:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3211:6:60","memberName":"method","nodeType":"MemberAccess","referencedDeclaration":49986,"src":"3194:23:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":40669,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"3221:11:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3194:38:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40684,"nodeType":"IfStatement","src":"3190:169:60","trueBody":{"id":40683,"nodeType":"Block","src":"3234:125:60","statements":[{"expression":{"arguments":[{"arguments":[{"id":40676,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40656,"src":"3290:9:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3282:8:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":40674,"name":"address","nodeType":"ElementaryTypeName","src":"3282:8:60","stateMutability":"payable","typeDescriptions":{}}},"id":40677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3282:18:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":40678,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40650,"src":"3309:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40671,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40644,"src":"3248:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":40673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3261:8:60","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":48263,"src":"3248:21:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SupplySource_$50226_memory_ptr_$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function (struct SupplySource memory,address payable,uint256)"}},"id":40679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3271:9:60","3302:5:60"],"names":["recipient","value"],"nodeType":"FunctionCall","src":"3248:68:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40680,"nodeType":"ExpressionStatement","src":"3248:68:60"},{"expression":{"id":40681,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"3337:11:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":40648,"id":40682,"nodeType":"Return","src":"3330:18:60"}]}},{"assignments":[40686],"declarations":[{"constant":false,"id":40686,"mutability":"mutable","name":"params","nameLocation":"3382:6:60","nodeType":"VariableDeclaration","scope":40723,"src":"3369:19:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40685,"name":"bytes","nodeType":"ElementaryTypeName","src":"3369:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40690,"initialValue":{"expression":{"expression":{"id":40687,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40641,"src":"3391:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3400:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"3391:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3408:6:60","memberName":"params","nodeType":"MemberAccess","referencedDeclaration":49988,"src":"3391:23:60","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"3369:45:60"},{"condition":{"expression":{"id":40691,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40641,"src":"3429:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3438:7:60","memberName":"wrapped","nodeType":"MemberAccess","referencedDeclaration":49973,"src":"3429:16:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40701,"nodeType":"IfStatement","src":"3425:76:60","trueBody":{"id":40700,"nodeType":"Block","src":"3447:54:60","statements":[{"expression":{"id":40698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40693,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40686,"src":"3461:6:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":40696,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40641,"src":"3481:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}],"expression":{"id":40694,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3470:3:60","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3474:6:60","memberName":"encode","nodeType":"MemberAccess","src":"3470:10:60","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3470:20:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3461:29:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40699,"nodeType":"ExpressionStatement","src":"3461:29:60"}]}},{"assignments":[40703],"declarations":[{"constant":false,"id":40703,"mutability":"mutable","name":"data","nameLocation":"3524:4:60","nodeType":"VariableDeclaration","scope":40723,"src":"3511:17:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40702,"name":"bytes","nodeType":"ElementaryTypeName","src":"3511:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40712,"initialValue":{"arguments":[{"expression":{"expression":{"id":40707,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40641,"src":"3544:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3553:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"3544:16:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3561:6:60","memberName":"method","nodeType":"MemberAccess","referencedDeclaration":49986,"src":"3544:23:60","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":40710,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40686,"src":"3569:6:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":40705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3531:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":40704,"name":"bytes","nodeType":"ElementaryTypeName","src":"3531:5:60","typeDescriptions":{}}},"id":40706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3537:6:60","memberName":"concat","nodeType":"MemberAccess","src":"3531:12:60","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3531:45:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3511:65:60"},{"expression":{"arguments":[{"arguments":[{"id":40717,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40656,"src":"3636:9:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3628:8:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":40715,"name":"address","nodeType":"ElementaryTypeName","src":"3628:8:60","stateMutability":"payable","typeDescriptions":{}}},"id":40718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3628:18:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":40719,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40703,"src":"3654:4:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":40720,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40650,"src":"3667:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":40713,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40644,"src":"3594:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":40714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3607:11:60","memberName":"performCall","nodeType":"MemberAccess","referencedDeclaration":48334,"src":"3594:24:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SupplySource_$50226_memory_ptr_$_t_address_payable_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function (struct SupplySource memory,address payable,bytes memory,uint256) returns (bytes memory)"}},"id":40721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3620:6:60","3648:4:60","3660:5:60"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"3594:80:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":40648,"id":40722,"nodeType":"Return","src":"3587:87:60"}]},"functionSelector":"73b464b7","implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"2939:7:60","parameters":{"id":40645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40641,"mutability":"mutable","name":"crossMsg","nameLocation":"2965:8:60","nodeType":"VariableDeclaration","scope":40724,"src":"2947:26:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40640,"nodeType":"UserDefinedTypeName","pathNode":{"id":40639,"name":"CrossMsg","nameLocations":["2947:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"2947:8:60"},"referencedDeclaration":49974,"src":"2947:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"},{"constant":false,"id":40644,"mutability":"mutable","name":"supplySource","nameLocation":"2995:12:60","nodeType":"VariableDeclaration","scope":40724,"src":"2975:32:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":40643,"nodeType":"UserDefinedTypeName","pathNode":{"id":40642,"name":"SupplySource","nameLocations":["2975:12:60"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"2975:12:60"},"referencedDeclaration":50226,"src":"2975:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"src":"2946:62:60"},"returnParameters":{"id":40648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40647,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40724,"src":"3025:12:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40646,"name":"bytes","nodeType":"ElementaryTypeName","src":"3025:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3024:14:60"},"scope":40781,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40780,"nodeType":"FunctionDefinition","src":"3765:559:60","nodes":[],"body":{"id":40779,"nodeType":"Block","src":"3843:481:60","nodes":[],"statements":[{"assignments":[40734],"declarations":[{"constant":false,"id":40734,"mutability":"mutable","name":"prevNonce","nameLocation":"3861:9:60","nodeType":"VariableDeclaration","scope":40779,"src":"3853:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40733,"name":"uint256","nodeType":"ElementaryTypeName","src":"3853:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40735,"nodeType":"VariableDeclarationStatement","src":"3853:17:60"},{"assignments":[40737],"declarations":[{"constant":false,"id":40737,"mutability":"mutable","name":"length","nameLocation":"3888:6:60","nodeType":"VariableDeclaration","scope":40779,"src":"3880:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40736,"name":"uint256","nodeType":"ElementaryTypeName","src":"3880:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40740,"initialValue":{"expression":{"id":40738,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40728,"src":"3897:9:60","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":40739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3907:6:60","memberName":"length","nodeType":"MemberAccess","src":"3897:16:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3880:33:60"},{"body":{"id":40775,"nodeType":"Block","src":"3953:343:60","statements":[{"assignments":[40748],"declarations":[{"constant":false,"id":40748,"mutability":"mutable","name":"nonce","nameLocation":"3975:5:60","nodeType":"VariableDeclaration","scope":40775,"src":"3967:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40747,"name":"uint256","nodeType":"ElementaryTypeName","src":"3967:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40754,"initialValue":{"expression":{"expression":{"baseExpression":{"id":40749,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40728,"src":"3983:9:60","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":40751,"indexExpression":{"id":40750,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40742,"src":"3993:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3983:12:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":40752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3996:7:60","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"3983:20:60","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":40753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4004:5:60","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49984,"src":"3983:26:60","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"3967:42:60"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40755,"name":"prevNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40734,"src":"4028:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":40756,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40748,"src":"4041:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4028:18:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40766,"nodeType":"IfStatement","src":"4024:171:60","trueBody":{"id":40765,"nodeType":"Block","src":"4048:147:60","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40758,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40742,"src":"4120:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":40759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4125:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4120:6:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40764,"nodeType":"IfStatement","src":"4116:65:60","trueBody":{"id":40763,"nodeType":"Block","src":"4128:53:60","statements":[{"expression":{"hexValue":"66616c7365","id":40761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4157:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":40732,"id":40762,"nodeType":"Return","src":"4150:12:60"}]}}]}},{"expression":{"id":40769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40767,"name":"prevNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40734,"src":"4209:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":40768,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40748,"src":"4221:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4209:17:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40770,"nodeType":"ExpressionStatement","src":"4209:17:60"},{"id":40774,"nodeType":"UncheckedBlock","src":"4240:46:60","statements":[{"expression":{"id":40772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4268:3:60","subExpression":{"id":40771,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40742,"src":"4270:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40773,"nodeType":"ExpressionStatement","src":"4268:3:60"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40744,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40742,"src":"3939:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":40745,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40737,"src":"3943:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3939:10:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40776,"initializationExpression":{"assignments":[40742],"declarations":[{"constant":false,"id":40742,"mutability":"mutable","name":"i","nameLocation":"3936:1:60","nodeType":"VariableDeclaration","scope":40776,"src":"3928:9:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40741,"name":"uint256","nodeType":"ElementaryTypeName","src":"3928:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40743,"nodeType":"VariableDeclarationStatement","src":"3928:9:60"},"nodeType":"ForStatement","src":"3923:373:60"},{"expression":{"hexValue":"74727565","id":40777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4313:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":40732,"id":40778,"nodeType":"Return","src":"4306:11:60"}]},"functionSelector":"89841475","implemented":true,"kind":"function","modifiers":[],"name":"isSorted","nameLocation":"3774:8:60","parameters":{"id":40729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40728,"mutability":"mutable","name":"crossMsgs","nameLocation":"3803:9:60","nodeType":"VariableDeclaration","scope":40780,"src":"3783:29:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":40726,"nodeType":"UserDefinedTypeName","pathNode":{"id":40725,"name":"CrossMsg","nameLocations":["3783:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"3783:8:60"},"referencedDeclaration":49974,"src":"3783:8:60","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":40727,"nodeType":"ArrayTypeName","src":"3783:10:60","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"3782:31:60"},"returnParameters":{"id":40732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40731,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40780,"src":"3837:4:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40730,"name":"bool","nodeType":"ElementaryTypeName","src":"3837:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3836:6:60"},"scope":40781,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"CrossMsgHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":40473,"nodeType":"StructuredDocumentation","src":"674:89:60","text":"@title Helper library for manipulating StorableMsg struct\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[40781],"name":"CrossMsgHelper","nameLocation":"771:14:60","scope":40782,"usedErrors":[32118,32461,32466,32469,40803]}],"license":"MIT OR Apache-2.0"},"id":60} \ No newline at end of file diff --git a/.out/CrossNet.sol/CrossNet.json b/.out/CrossNet.sol/CrossNet.json index 2aa02f0cc..2f9bc81a6 100644 --- a/.out/CrossNet.sol/CrossNet.json +++ b/.out/CrossNet.sol/CrossNet.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/CrossNet.sol","id":48470,"exportedSymbols":{"BATCH_PERIOD":[48391],"BottomUpCheckpoint":[48410],"BottomUpMsgBatch":[48423],"BottomUpMsgBatchInfo":[48428],"CrossMsg":[48452],"EnumerableSet":[35386],"IPCAddress":[48687],"MAX_MSGS_PER_BATCH":[48388],"ParentFinality":[48396],"RelayerRewardsInfo":[48446],"StorableMsg":[48469],"SubnetID":[48557]},"nodeType":"SourceUnit","src":"46:2640:73","nodes":[{"id":48380,"nodeType":"PragmaDirective","src":"46:23:73","nodes":[],"literals":["solidity","0.8",".19"]},{"id":48383,"nodeType":"ImportDirective","src":"71:50:73","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./Subnet.sol","nameLocation":"-1:-1:-1","scope":48470,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":48381,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"79:8:73","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":48382,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"89:10:73","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48385,"nodeType":"ImportDirective","src":"122:85:73","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":48470,"sourceUnit":35387,"symbolAliases":[{"foreign":{"id":48384,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35386,"src":"130:13:73","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48388,"nodeType":"VariableDeclaration","src":"209:39:73","nodes":[],"constant":true,"mutability":"constant","name":"MAX_MSGS_PER_BATCH","nameLocation":"225:18:73","scope":48470,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":48386,"name":"uint64","nodeType":"ElementaryTypeName","src":"209:6:73","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":48387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"246:2:73","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":48391,"nodeType":"VariableDeclaration","src":"250:35:73","nodes":[],"constant":true,"mutability":"constant","name":"BATCH_PERIOD","nameLocation":"267:12:73","scope":48470,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48389,"name":"uint256","nodeType":"ElementaryTypeName","src":"250:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313030","id":48390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"282:3:73","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":48396,"nodeType":"StructDefinition","src":"354:68:73","nodes":[],"canonicalName":"ParentFinality","members":[{"constant":false,"id":48393,"mutability":"mutable","name":"height","nameLocation":"390:6:73","nodeType":"VariableDeclaration","scope":48396,"src":"382:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48392,"name":"uint256","nodeType":"ElementaryTypeName","src":"382:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48395,"mutability":"mutable","name":"blockHash","nameLocation":"410:9:73","nodeType":"VariableDeclaration","scope":48396,"src":"402:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"402:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ParentFinality","nameLocation":"361:14:73","scope":48470,"visibility":"public"},{"id":48410,"nodeType":"StructDefinition","src":"465:785:73","nodes":[],"canonicalName":"BottomUpCheckpoint","members":[{"constant":false,"id":48400,"mutability":"mutable","name":"subnetID","nameLocation":"723:8:73","nodeType":"VariableDeclaration","scope":48410,"src":"714:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":48399,"nodeType":"UserDefinedTypeName","pathNode":{"id":48398,"name":"SubnetID","nameLocations":["714:8:73"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"714:8:73"},"referencedDeclaration":48557,"src":"714:8:73","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":48403,"mutability":"mutable","name":"blockHeight","nameLocation":"891:11:73","nodeType":"VariableDeclaration","scope":48410,"src":"883:19:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48402,"name":"uint256","nodeType":"ElementaryTypeName","src":"883:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48406,"mutability":"mutable","name":"blockHash","nameLocation":"952:9:73","nodeType":"VariableDeclaration","scope":48410,"src":"944:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"944:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":48409,"mutability":"mutable","name":"nextConfigurationNumber","nameLocation":"1224:23:73","nodeType":"VariableDeclaration","scope":48410,"src":"1217:30:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":48408,"name":"uint64","nodeType":"ElementaryTypeName","src":"1217:6:73","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"BottomUpCheckpoint","nameLocation":"472:18:73","scope":48470,"visibility":"public"},{"id":48423,"nodeType":"StructDefinition","src":"1308:323:73","nodes":[],"canonicalName":"BottomUpMsgBatch","members":[{"constant":false,"id":48414,"mutability":"mutable","name":"subnetID","nameLocation":"1459:8:73","nodeType":"VariableDeclaration","scope":48423,"src":"1450:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":48413,"nodeType":"UserDefinedTypeName","pathNode":{"id":48412,"name":"SubnetID","nameLocations":["1450:8:73"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1450:8:73"},"referencedDeclaration":48557,"src":"1450:8:73","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":48417,"mutability":"mutable","name":"blockHeight","nameLocation":"1553:11:73","nodeType":"VariableDeclaration","scope":48423,"src":"1545:19:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48416,"name":"uint256","nodeType":"ElementaryTypeName","src":"1545:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48422,"mutability":"mutable","name":"msgs","nameLocation":"1624:4:73","nodeType":"VariableDeclaration","scope":48423,"src":"1613:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":48420,"nodeType":"UserDefinedTypeName","pathNode":{"id":48419,"name":"CrossMsg","nameLocations":["1613:8:73"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"1613:8:73"},"referencedDeclaration":48452,"src":"1613:8:73","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":48421,"nodeType":"ArrayTypeName","src":"1613:10:73","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"name":"BottomUpMsgBatch","nameLocation":"1315:16:73","scope":48470,"visibility":"public"},{"id":48428,"nodeType":"StructDefinition","src":"1694:74:73","nodes":[],"canonicalName":"BottomUpMsgBatchInfo","members":[{"constant":false,"id":48425,"mutability":"mutable","name":"blockHeight","nameLocation":"1736:11:73","nodeType":"VariableDeclaration","scope":48428,"src":"1728:19:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48424,"name":"uint256","nodeType":"ElementaryTypeName","src":"1728:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48427,"mutability":"mutable","name":"hash","nameLocation":"1761:4:73","nodeType":"VariableDeclaration","scope":48428,"src":"1753:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1753:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"BottomUpMsgBatchInfo","nameLocation":"1701:20:73","scope":48470,"visibility":"public"},{"id":48446,"nodeType":"StructDefinition","src":"1823:402:73","nodes":[],"canonicalName":"RelayerRewardsInfo","members":[{"constant":false,"id":48433,"mutability":"mutable","name":"rewards","nameLocation":"1909:7:73","nodeType":"VariableDeclaration","scope":48446,"src":"1881:35:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":48432,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48430,"name":"address","nodeType":"ElementaryTypeName","src":"1889:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1881:27:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48431,"name":"uint256","nodeType":"ElementaryTypeName","src":"1900:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":48439,"mutability":"mutable","name":"checkpointRewarded","nameLocation":"2056:18:73","nodeType":"VariableDeclaration","scope":48446,"src":"2011:63:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"typeName":{"id":48438,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48435,"name":"uint256","nodeType":"ElementaryTypeName","src":"2019:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2011:44:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48437,"nodeType":"UserDefinedTypeName","pathNode":{"id":48436,"name":"EnumerableSet.AddressSet","nameLocations":["2030:13:73","2044:10:73"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"2030:24:73"},"referencedDeclaration":35099,"src":"2030:24:73","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"},{"constant":false,"id":48445,"mutability":"mutable","name":"batchRewarded","nameLocation":"2209:13:73","nodeType":"VariableDeclaration","scope":48446,"src":"2164:58:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"typeName":{"id":48444,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48441,"name":"uint256","nodeType":"ElementaryTypeName","src":"2172:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2164:44:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48443,"nodeType":"UserDefinedTypeName","pathNode":{"id":48442,"name":"EnumerableSet.AddressSet","nameLocations":["2183:13:73","2197:10:73"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"2183:24:73"},"referencedDeclaration":35099,"src":"2183:24:73","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"}],"name":"RelayerRewardsInfo","nameLocation":"1830:18:73","scope":48470,"visibility":"public"},{"id":48452,"nodeType":"StructDefinition","src":"2468:62:73","nodes":[],"canonicalName":"CrossMsg","members":[{"constant":false,"id":48449,"mutability":"mutable","name":"message","nameLocation":"2502:7:73","nodeType":"VariableDeclaration","scope":48452,"src":"2490:19:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_storage_ptr","typeString":"struct StorableMsg"},"typeName":{"id":48448,"nodeType":"UserDefinedTypeName","pathNode":{"id":48447,"name":"StorableMsg","nameLocations":["2490:11:73"],"nodeType":"IdentifierPath","referencedDeclaration":48469,"src":"2490:11:73"},"referencedDeclaration":48469,"src":"2490:11:73","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"},{"constant":false,"id":48451,"mutability":"mutable","name":"wrapped","nameLocation":"2520:7:73","nodeType":"VariableDeclaration","scope":48452,"src":"2515:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48450,"name":"bool","nodeType":"ElementaryTypeName","src":"2515:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CrossMsg","nameLocation":"2475:8:73","scope":48470,"visibility":"public"},{"id":48469,"nodeType":"StructDefinition","src":"2532:153:73","nodes":[],"canonicalName":"StorableMsg","members":[{"constant":false,"id":48455,"mutability":"mutable","name":"from","nameLocation":"2568:4:73","nodeType":"VariableDeclaration","scope":48469,"src":"2557:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_storage_ptr","typeString":"struct IPCAddress"},"typeName":{"id":48454,"nodeType":"UserDefinedTypeName","pathNode":{"id":48453,"name":"IPCAddress","nameLocations":["2557:10:73"],"nodeType":"IdentifierPath","referencedDeclaration":48687,"src":"2557:10:73"},"referencedDeclaration":48687,"src":"2557:10:73","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_storage_ptr","typeString":"struct IPCAddress"}},"visibility":"internal"},{"constant":false,"id":48458,"mutability":"mutable","name":"to","nameLocation":"2589:2:73","nodeType":"VariableDeclaration","scope":48469,"src":"2578:13:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_storage_ptr","typeString":"struct IPCAddress"},"typeName":{"id":48457,"nodeType":"UserDefinedTypeName","pathNode":{"id":48456,"name":"IPCAddress","nameLocations":["2578:10:73"],"nodeType":"IdentifierPath","referencedDeclaration":48687,"src":"2578:10:73"},"referencedDeclaration":48687,"src":"2578:10:73","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_storage_ptr","typeString":"struct IPCAddress"}},"visibility":"internal"},{"constant":false,"id":48460,"mutability":"mutable","name":"value","nameLocation":"2605:5:73","nodeType":"VariableDeclaration","scope":48469,"src":"2597:13:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48459,"name":"uint256","nodeType":"ElementaryTypeName","src":"2597:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48462,"mutability":"mutable","name":"nonce","nameLocation":"2623:5:73","nodeType":"VariableDeclaration","scope":48469,"src":"2616:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":48461,"name":"uint64","nodeType":"ElementaryTypeName","src":"2616:6:73","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":48464,"mutability":"mutable","name":"method","nameLocation":"2641:6:73","nodeType":"VariableDeclaration","scope":48469,"src":"2634:13:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":48463,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2634:6:73","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":48466,"mutability":"mutable","name":"params","nameLocation":"2659:6:73","nodeType":"VariableDeclaration","scope":48469,"src":"2653:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":48465,"name":"bytes","nodeType":"ElementaryTypeName","src":"2653:5:73","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48468,"mutability":"mutable","name":"fee","nameLocation":"2679:3:73","nodeType":"VariableDeclaration","scope":48469,"src":"2671:11:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48467,"name":"uint256","nodeType":"ElementaryTypeName","src":"2671:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StorableMsg","nameLocation":"2539:11:73","scope":48470,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":73} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/CrossNet.sol","id":49992,"exportedSymbols":{"BATCH_PERIOD":[49913],"BottomUpCheckpoint":[49932],"BottomUpMsgBatch":[49945],"BottomUpMsgBatchInfo":[49950],"CrossMsg":[49974],"EnumerableSet":[35815],"IPCAddress":[50204],"MAX_MSGS_PER_BATCH":[49910],"ParentFinality":[49918],"RelayerRewardsInfo":[49968],"StorableMsg":[49991],"SubnetID":[50077]},"nodeType":"SourceUnit","src":"46:2709:80","nodes":[{"id":49902,"nodeType":"PragmaDirective","src":"46:23:80","nodes":[],"literals":["solidity","0.8",".19"]},{"id":49905,"nodeType":"ImportDirective","src":"71:50:80","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./Subnet.sol","nameLocation":"-1:-1:-1","scope":49992,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":49903,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"79:8:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49904,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"89:10:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49907,"nodeType":"ImportDirective","src":"122:85:80","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":49992,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":49906,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"130:13:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49910,"nodeType":"VariableDeclaration","src":"209:39:80","nodes":[],"constant":true,"mutability":"constant","name":"MAX_MSGS_PER_BATCH","nameLocation":"225:18:80","scope":49992,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":49908,"name":"uint64","nodeType":"ElementaryTypeName","src":"209:6:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":49909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"246:2:80","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":49913,"nodeType":"VariableDeclaration","src":"250:35:80","nodes":[],"constant":true,"mutability":"constant","name":"BATCH_PERIOD","nameLocation":"267:12:80","scope":49992,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49911,"name":"uint256","nodeType":"ElementaryTypeName","src":"250:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313030","id":49912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"282:3:80","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":49918,"nodeType":"StructDefinition","src":"354:68:80","nodes":[],"canonicalName":"ParentFinality","members":[{"constant":false,"id":49915,"mutability":"mutable","name":"height","nameLocation":"390:6:80","nodeType":"VariableDeclaration","scope":49918,"src":"382:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49914,"name":"uint256","nodeType":"ElementaryTypeName","src":"382:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49917,"mutability":"mutable","name":"blockHash","nameLocation":"410:9:80","nodeType":"VariableDeclaration","scope":49918,"src":"402:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49916,"name":"bytes32","nodeType":"ElementaryTypeName","src":"402:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ParentFinality","nameLocation":"361:14:80","scope":49992,"visibility":"public"},{"id":49932,"nodeType":"StructDefinition","src":"465:785:80","nodes":[],"canonicalName":"BottomUpCheckpoint","members":[{"constant":false,"id":49922,"mutability":"mutable","name":"subnetID","nameLocation":"723:8:80","nodeType":"VariableDeclaration","scope":49932,"src":"714:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":49921,"nodeType":"UserDefinedTypeName","pathNode":{"id":49920,"name":"SubnetID","nameLocations":["714:8:80"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"714:8:80"},"referencedDeclaration":50077,"src":"714:8:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":49925,"mutability":"mutable","name":"blockHeight","nameLocation":"891:11:80","nodeType":"VariableDeclaration","scope":49932,"src":"883:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49924,"name":"uint256","nodeType":"ElementaryTypeName","src":"883:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49928,"mutability":"mutable","name":"blockHash","nameLocation":"952:9:80","nodeType":"VariableDeclaration","scope":49932,"src":"944:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49927,"name":"bytes32","nodeType":"ElementaryTypeName","src":"944:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":49931,"mutability":"mutable","name":"nextConfigurationNumber","nameLocation":"1224:23:80","nodeType":"VariableDeclaration","scope":49932,"src":"1217:30:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":49930,"name":"uint64","nodeType":"ElementaryTypeName","src":"1217:6:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"BottomUpCheckpoint","nameLocation":"472:18:80","scope":49992,"visibility":"public"},{"id":49945,"nodeType":"StructDefinition","src":"1309:323:80","nodes":[],"canonicalName":"BottomUpMsgBatch","members":[{"constant":false,"id":49936,"mutability":"mutable","name":"subnetID","nameLocation":"1460:8:80","nodeType":"VariableDeclaration","scope":49945,"src":"1451:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":49935,"nodeType":"UserDefinedTypeName","pathNode":{"id":49934,"name":"SubnetID","nameLocations":["1451:8:80"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1451:8:80"},"referencedDeclaration":50077,"src":"1451:8:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":49939,"mutability":"mutable","name":"blockHeight","nameLocation":"1554:11:80","nodeType":"VariableDeclaration","scope":49945,"src":"1546:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49938,"name":"uint256","nodeType":"ElementaryTypeName","src":"1546:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49944,"mutability":"mutable","name":"msgs","nameLocation":"1625:4:80","nodeType":"VariableDeclaration","scope":49945,"src":"1614:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":49942,"nodeType":"UserDefinedTypeName","pathNode":{"id":49941,"name":"CrossMsg","nameLocations":["1614:8:80"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1614:8:80"},"referencedDeclaration":49974,"src":"1614:8:80","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":49943,"nodeType":"ArrayTypeName","src":"1614:10:80","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"name":"BottomUpMsgBatch","nameLocation":"1316:16:80","scope":49992,"visibility":"public"},{"id":49950,"nodeType":"StructDefinition","src":"1696:74:80","nodes":[],"canonicalName":"BottomUpMsgBatchInfo","members":[{"constant":false,"id":49947,"mutability":"mutable","name":"blockHeight","nameLocation":"1738:11:80","nodeType":"VariableDeclaration","scope":49950,"src":"1730:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49946,"name":"uint256","nodeType":"ElementaryTypeName","src":"1730:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49949,"mutability":"mutable","name":"hash","nameLocation":"1763:4:80","nodeType":"VariableDeclaration","scope":49950,"src":"1755:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49948,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1755:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"BottomUpMsgBatchInfo","nameLocation":"1703:20:80","scope":49992,"visibility":"public"},{"id":49968,"nodeType":"StructDefinition","src":"1826:402:80","nodes":[],"canonicalName":"RelayerRewardsInfo","members":[{"constant":false,"id":49955,"mutability":"mutable","name":"rewards","nameLocation":"1912:7:80","nodeType":"VariableDeclaration","scope":49968,"src":"1884:35:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":49954,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49952,"name":"address","nodeType":"ElementaryTypeName","src":"1892:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1884:27:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49953,"name":"uint256","nodeType":"ElementaryTypeName","src":"1903:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":49961,"mutability":"mutable","name":"checkpointRewarded","nameLocation":"2059:18:80","nodeType":"VariableDeclaration","scope":49968,"src":"2014:63:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"typeName":{"id":49960,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49957,"name":"uint256","nodeType":"ElementaryTypeName","src":"2022:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2014:44:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49959,"nodeType":"UserDefinedTypeName","pathNode":{"id":49958,"name":"EnumerableSet.AddressSet","nameLocations":["2033:13:80","2047:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"2033:24:80"},"referencedDeclaration":35528,"src":"2033:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"},{"constant":false,"id":49967,"mutability":"mutable","name":"batchRewarded","nameLocation":"2212:13:80","nodeType":"VariableDeclaration","scope":49968,"src":"2167:58:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"typeName":{"id":49966,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49963,"name":"uint256","nodeType":"ElementaryTypeName","src":"2175:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2167:44:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49965,"nodeType":"UserDefinedTypeName","pathNode":{"id":49964,"name":"EnumerableSet.AddressSet","nameLocations":["2186:13:80","2200:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"2186:24:80"},"referencedDeclaration":35528,"src":"2186:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"}],"name":"RelayerRewardsInfo","nameLocation":"1833:18:80","scope":49992,"visibility":"public"},{"id":49974,"nodeType":"StructDefinition","src":"2500:62:80","nodes":[],"canonicalName":"CrossMsg","members":[{"constant":false,"id":49971,"mutability":"mutable","name":"message","nameLocation":"2534:7:80","nodeType":"VariableDeclaration","scope":49974,"src":"2522:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"},"typeName":{"id":49970,"nodeType":"UserDefinedTypeName","pathNode":{"id":49969,"name":"StorableMsg","nameLocations":["2522:11:80"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"2522:11:80"},"referencedDeclaration":49991,"src":"2522:11:80","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"},{"constant":false,"id":49973,"mutability":"mutable","name":"wrapped","nameLocation":"2552:7:80","nodeType":"VariableDeclaration","scope":49974,"src":"2547:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49972,"name":"bool","nodeType":"ElementaryTypeName","src":"2547:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CrossMsg","nameLocation":"2507:8:80","scope":49992,"visibility":"public"},{"id":49991,"nodeType":"StructDefinition","src":"2601:153:80","nodes":[],"canonicalName":"StorableMsg","members":[{"constant":false,"id":49977,"mutability":"mutable","name":"from","nameLocation":"2637:4:80","nodeType":"VariableDeclaration","scope":49991,"src":"2626:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_storage_ptr","typeString":"struct IPCAddress"},"typeName":{"id":49976,"nodeType":"UserDefinedTypeName","pathNode":{"id":49975,"name":"IPCAddress","nameLocations":["2626:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":50204,"src":"2626:10:80"},"referencedDeclaration":50204,"src":"2626:10:80","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_storage_ptr","typeString":"struct IPCAddress"}},"visibility":"internal"},{"constant":false,"id":49980,"mutability":"mutable","name":"to","nameLocation":"2658:2:80","nodeType":"VariableDeclaration","scope":49991,"src":"2647:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_storage_ptr","typeString":"struct IPCAddress"},"typeName":{"id":49979,"nodeType":"UserDefinedTypeName","pathNode":{"id":49978,"name":"IPCAddress","nameLocations":["2647:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":50204,"src":"2647:10:80"},"referencedDeclaration":50204,"src":"2647:10:80","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_storage_ptr","typeString":"struct IPCAddress"}},"visibility":"internal"},{"constant":false,"id":49982,"mutability":"mutable","name":"value","nameLocation":"2674:5:80","nodeType":"VariableDeclaration","scope":49991,"src":"2666:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49981,"name":"uint256","nodeType":"ElementaryTypeName","src":"2666:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49984,"mutability":"mutable","name":"nonce","nameLocation":"2692:5:80","nodeType":"VariableDeclaration","scope":49991,"src":"2685:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":49983,"name":"uint64","nodeType":"ElementaryTypeName","src":"2685:6:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":49986,"mutability":"mutable","name":"method","nameLocation":"2710:6:80","nodeType":"VariableDeclaration","scope":49991,"src":"2703:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":49985,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2703:6:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":49988,"mutability":"mutable","name":"params","nameLocation":"2728:6:80","nodeType":"VariableDeclaration","scope":49991,"src":"2722:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":49987,"name":"bytes","nodeType":"ElementaryTypeName","src":"2722:5:80","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":49990,"mutability":"mutable","name":"fee","nameLocation":"2748:3:80","nodeType":"VariableDeclaration","scope":49991,"src":"2740:11:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49989,"name":"uint256","nodeType":"ElementaryTypeName","src":"2740:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StorableMsg","nameLocation":"2608:11:80","scope":49992,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":80} \ No newline at end of file diff --git a/.out/DiamondCutFacet.sol/DiamondCutFacet.json b/.out/DiamondCutFacet.sol/DiamondCutFacet.json index 237139f96..4918c1872 100644 --- a/.out/DiamondCutFacet.sol/DiamondCutFacet.json +++ b/.out/DiamondCutFacet.sol/DiamondCutFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"diamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523461001657610d14908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c63430008130033","sourceMap":"472:750:38:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c63430008130033","sourceMap":"472:750:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;472:750:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2663:30:57;472:750:38;-1:-1:-1;;;;;472:750:38;2649:10:57;:44;2645:92;;472:750:38;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2937:19:57;;;;;;472:750:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:38;;;;;;;;;;;;4023:9:57;472:750:38;3911:74:57;472:750:38;;;;;;:::i;:::-;3911:74:57;;;472:750:38;;4023:9:57;:::i;:::-;472:750:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;472:750:38;;;;;;;;;;;;;;;;;;;2917:18:57;472:750:38;3010:23:57;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:57;;;;:::i;:::-;;472:750:38;;;;;3142:29:57;3138:122;;472:750:38;3309:23:57;;;;:::i;:::-;;:30;472:750:38;;;;;;;3357:37:57;;;4150:27;;;4146:116;;472:750:38;-1:-1:-1;;;;;;;;;;;472:750:38;;4385:74:57;472:750:38;;:::i;:::-;;;;;;;;;-1:-1:-1;;;472:750:38;;;;4385:74:57;;:::i;:::-;472:750:38;;4526:21:57;472:750:38;4521:677:57;4549:22;;;;;;3353:466;;;;;472:750:38;3353:466:57;;472:750:38;2917:18:57;;4526:21;-1:-1:-1;;;;;;4607:33:57;;;;:::i;:::-;472:750:38;;;;;;-1:-1:-1;;;;;;;;;;;472:750:38;;;;;;;;;-1:-1:-1;;;;;472:750:38;4751:128:57;;472:750:38;;;:::i;:::-;;;;;;;;;;4939:107:57;;;472:750:38;;;-1:-1:-1;472:750:38;;;-1:-1:-1;;;;;;;;;;;472:750:38;;;;;;;;;;;;;-1:-1:-1;;;;;;472:750:38;;;-1:-1:-1;;;;;472:750:38;;;;;;;;;;-1:-1:-1;;;472:750:38;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:38;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:57;;;472:750:38;;;;;;;;;;;;;;;;;;;;;;;;4751:128:57;472:750:38;;-1:-1:-1;;;4811:53:57;;472:750:38;4811:53:57;;472:750:38;;;;;4811:53:57;4146:116;472:750:38;;-1:-1:-1;;;4200:51:57;;472:750:38;;;4200:51:57;;472:750:38;4200:51:57;;;:::i;:::-;;;;3353:466;472:750:38;3484:41:57;;472:750:38;;5372:27:57;;;5368:131;;5508:81;472:750:38;;:::i;:::-;;;;;;;;;-1:-1:-1;;;472:750:38;;;;5508:81:57;;:::i;:::-;472:750:38;;5652:21:57;472:750:38;5675:18:57;;;;;;3480:339;;;;472:750:38;3480:339:57;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:57;;;;:::i;:::-;472:750:38;;;;;;-1:-1:-1;;;;;;;;;;;472:750:38;;;;;;-1:-1:-1;;;;;472:750:38;6011:4:57;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;472:750:38;;;;-1:-1:-1;;;;;;;;;;;472:750:38;;;;;;;-1:-1:-1;;;;;;472:750:38;;;;;;;5652:21:57;;6268:123;472:750:38;;;;6328:48:57;;;;;;472:750:38;6328:48:57;;472:750:38;6328:48:57;6111:144;472:750:38;;-1:-1:-1;;;6174:66:57;;472:750:38;6174:66:57;;472:750:38;;;;;6174:66:57;5980:118;472:750:38;;-1:-1:-1;;;6043:40:57;;472:750:38;6043:40:57;;472:750:38;;;;;6043:40:57;5368:131;472:750:38;;-1:-1:-1;;;5422:66:57;;472:750:38;;;5422:66:57;;472:750:38;5422:66:57;;;:::i;3480:339::-;3629:30;3619:40;;3629:30;;472:750:38;-1:-1:-1;;;;;;;;;;;472:750:38;6826:27:57;;6822:115;;472:750:38;;;6999:21:57;472:750:38;7022:18:57;;;;;;3615:204;;;;472:750:38;3615:204:57;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:57;;;;:::i;:::-;472:750:38;;;;;;-1:-1:-1;;;;;;;;;;;472:750:38;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;472:750:38;;;;;;;;;;;;;;;;7278:61:57;7274:153;;472:750:38;;-1:-1:-1;;;;;472:750:38;7597:4:57;7538:64;7534:149;;472:750:38;;;;;;;7747:15:57;472:750:38;;;;;;;;7780:68:57;7776:412;;6999:21;472:750:38;;-1:-1:-1;;;;;;;;;;;472:750:38;;;;;;;;-1:-1:-1;;472:750:38;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:38;;;-1:-1:-1;;;;;;;;;;;472:750:38;;;;;;;;6999:21:57;;472:750:38;;;;;;;;;;;;7776:412:57;472:750:38;;7890:27:57;8033:140;7890:27;;:::i;:::-;472:750:38;;;;;;;;;7935:80:57;472:750:38;7935:65:57;472:750:38;;;;;;7935:65:57;:::i;:80::-;472:750:38;;-1:-1:-1;;;;;;472:750:38;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:38;;;;;;;-1:-1:-1;;;;472:750:38;;;;;;;-1:-1:-1;;;472:750:38;;;;;8033:140:57;7776:412;;;;7534:149;472:750:38;;-1:-1:-1;;;7629:39:57;;472:750:38;7629:39:57;;472:750:38;;;;;7629:39:57;7274:153;472:750:38;;-1:-1:-1;;;7366:46:57;;472:750:38;7366:46:57;;472:750:38;;;;;7366:46:57;6822:115;472:750:38;;;;6876:50:57;;;;;;472:750:38;6876:50:57;;472:750:38;6876:50:57;3615:204;472:750:38;;-1:-1:-1;;;3773:31:57;;472:750:38;;;;;3773:31:57;;;472:750:38;:::i;:::-;3773:31:57;472:750:38;;;;;;;;;;;;3138:122:57;472:750:38;;-1:-1:-1;;;3198:47:57;;472:750:38;3198:47:57;;472:750:38;;;;;3198:47:57;472:750:38;;;;;;;;;;;;;;;-1:-1:-1;;472:750:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:38;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;472:750:38;;;;;;;;;;;;;;;;;;;;;;2645:92:57;-1:-1:-1;;;2716:10:57;;472:750:38;;2716:10:57;472:750:38;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;472:750:38;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;472:750:38;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;472:750:38;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:38;;;;;;;-1:-1:-1;472:750:38;;;;;;;;;;;;:::o;8414:888:57:-;-1:-1:-1;;;;;472:750:38;;;8414:888:57;8506:19;;8502:56;;8523:1;472:750:38;;8567:70:57;472:750:38;;:::i;:::-;;;;;;;;;-1:-1:-1;;;472:750:38;;;;8567:70:57;;:::i;:::-;8737:29;;;472:750:38;8737:29:57;;;;;;472:750:38;;;;;;;;;;:::i;:::-;;;;;8523:1:57;472:750:38;;;;;8826:8:57;8822:474;;8414:888;;;:::o;8822:474::-;472:750:38;;8911:17:57;:12;;9034:144;;472:750:38;9034:144:57;;;8907:379;472:750:38;;;9223:48:57;;;;;;;;;;;472:750:38;;;;;;;;;;;:::i;:::-;;;;;8502:56:57;8541:7;;;:::o;9308:320::-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;472:750:38;;;-1:-1:-1;;;9566:45:57;;-1:-1:-1;;;;;472:750:38;;;9566:45:57;;;472:750:38;;;;;;;;;;;;;;;:::i","linkReferences":{}},"methodIdentifiers":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":"1f931c1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"diamondCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"params\":{\"_calldata\":\"A function call, including function selector and arguments _calldata is executed with delegatecall on _init\",\"_diamondCut\":\"Contains the facet addresses and function selectors\",\"_init\":\"The address of the contract or facet to execute _calldata\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"notice\":\"Add/replace/remove any number of functions and optionally execute a function with delegatecall\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/diamond/DiamondCutFacet.sol\":\"DiamondCutFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"address","name":"_init","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"diamondCut"}],"devdoc":{"kind":"dev","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"params":{"_calldata":"A function call, including function selector and arguments _calldata is executed with delegatecall on _init","_diamondCut":"Contains the facet addresses and function selectors","_init":"The address of the contract or facet to execute _calldata"}}},"version":1},"userdoc":{"kind":"user","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"notice":"Add/replace/remove any number of functions and optionally execute a function with delegatecall"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/diamond/DiamondCutFacet.sol":"DiamondCutFacet"},"libraries":{},"viaIR":true},"sources":{"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/diamond/DiamondCutFacet.sol","id":36478,"exportedSymbols":{"DiamondCutFacet":[36477],"IDiamondCut":[39751],"LibDiamond":[41229]},"nodeType":"SourceUnit","src":"32:1191:38","nodes":[{"id":36443,"nodeType":"PragmaDirective","src":"32:23:38","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36445,"nodeType":"ImportDirective","src":"362:58:38","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"../interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":36478,"sourceUnit":39752,"symbolAliases":[{"foreign":{"id":36444,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39751,"src":"370:11:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36447,"nodeType":"ImportDirective","src":"421:49:38","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36478,"sourceUnit":41230,"symbolAliases":[{"foreign":{"id":36446,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"429:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36477,"nodeType":"ContractDefinition","src":"472:750:38","nodes":[{"id":36476,"nodeType":"FunctionDefinition","src":"961:259:38","nodes":[],"body":{"id":36475,"nodeType":"Block","src":"1073:147:38","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36462,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"1083:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":36464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1094:22:38","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":40691,"src":"1083:33:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":36465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1083:35:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36466,"nodeType":"ExpressionStatement","src":"1083:35:38"},{"expression":{"arguments":[{"id":36470,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36454,"src":"1164:11:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut calldata[] calldata"}},{"id":36471,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36456,"src":"1184:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":36472,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36458,"src":"1202:9:38","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut calldata[] calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":36467,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"1128:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":36469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1139:10:38","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":40809,"src":"1128:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":36473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1151:11:38","1177:5:38","1191:9:38"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"1128:85:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36474,"nodeType":"ExpressionStatement","src":"1128:85:38"}]},"baseFunctions":[39750],"documentation":{"id":36450,"nodeType":"StructuredDocumentation","src":"518:438:38","text":"@notice Add/replace/remove any number of functions and optionally execute\n a function with delegatecall\n @param _diamondCut Contains the facet addresses and function selectors\n @param _init The address of the contract or facet to execute _calldata\n @param _calldata A function call, including function selector and arguments\n _calldata is executed with delegatecall on _init"},"functionSelector":"1f931c1c","implemented":true,"kind":"function","modifiers":[],"name":"diamondCut","nameLocation":"970:10:38","overrides":{"id":36460,"nodeType":"OverrideSpecifier","overrides":[],"src":"1064:8:38"},"parameters":{"id":36459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36454,"mutability":"mutable","name":"_diamondCut","nameLocation":"1001:11:38","nodeType":"VariableDeclaration","scope":36476,"src":"981:31:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":36452,"nodeType":"UserDefinedTypeName","pathNode":{"id":36451,"name":"FacetCut","nameLocations":["981:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"981:8:38"},"referencedDeclaration":39721,"src":"981:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":36453,"nodeType":"ArrayTypeName","src":"981:10:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":36456,"mutability":"mutable","name":"_init","nameLocation":"1022:5:38","nodeType":"VariableDeclaration","scope":36476,"src":"1014:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36455,"name":"address","nodeType":"ElementaryTypeName","src":"1014:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36458,"mutability":"mutable","name":"_calldata","nameLocation":"1044:9:38","nodeType":"VariableDeclaration","scope":36476,"src":"1029:24:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":36457,"name":"bytes","nodeType":"ElementaryTypeName","src":"1029:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"980:74:38"},"returnParameters":{"id":36461,"nodeType":"ParameterList","parameters":[],"src":"1073:0:38"},"scope":36477,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":36448,"name":"IDiamondCut","nameLocations":["500:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":39751,"src":"500:11:38"},"id":36449,"nodeType":"InheritanceSpecifier","src":"500:11:38"}],"canonicalName":"DiamondCutFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36477,39751,39732],"name":"DiamondCutFacet","nameLocation":"481:15:38","scope":36478,"usedErrors":[40522,40528,40533,40537,40541,40546,40552,40565,40569,40573,40577,40581,40585,40589]}],"license":"MIT"},"id":38} \ No newline at end of file +{"abi":[{"type":"function","name":"diamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080806040523461001657610d14908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c63430008130033","sourceMap":"472:750:41:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c63430008130033","sourceMap":"472:750:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2663:30:62;472:750:41;-1:-1:-1;;;;;472:750:41;2649:10:62;:44;2645:92;;472:750:41;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2937:19:62;;;;;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;;;4023:9:62;472:750:41;3911:74:62;472:750:41;;;;;;:::i;:::-;3911:74:62;;;472:750:41;;4023:9:62;:::i;:::-;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;472:750:41;;;;;;;;;;;;;;;;;;;2917:18:62;472:750:41;3010:23:62;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:62;;;;:::i;:::-;;472:750:41;;;;;3142:29:62;3138:122;;472:750:41;3309:23:62;;;;:::i;:::-;;:30;472:750:41;;;;;;;3357:37:62;;;4150:27;;;4146:116;;472:750:41;-1:-1:-1;;;;;;;;;;;472:750:41;;4385:74:62;472:750:41;;:::i;:::-;;;;;;;;;-1:-1:-1;;;472:750:41;;;;4385:74:62;;:::i;:::-;472:750:41;;4526:21:62;472:750:41;4521:677:62;4549:22;;;;;;3353:466;;;;;472:750:41;3353:466:62;;472:750:41;2917:18:62;;4526:21;-1:-1:-1;;;;;;4607:33:62;;;;:::i;:::-;472:750:41;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;;-1:-1:-1;;;;;472:750:41;4751:128:62;;472:750:41;;;:::i;:::-;;;;;;;;;;4939:107:62;;;472:750:41;;;-1:-1:-1;472:750:41;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;;;;;;-1:-1:-1;;;;;;472:750:41;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;-1:-1:-1;;;472:750:41;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:62;;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;4751:128:62;472:750:41;;-1:-1:-1;;;4811:53:62;;472:750:41;4811:53:62;;472:750:41;;;;;4811:53:62;4146:116;472:750:41;;-1:-1:-1;;;4200:51:62;;472:750:41;;;4200:51:62;;472:750:41;4200:51:62;;;:::i;:::-;;;;3353:466;472:750:41;3484:41:62;;472:750:41;;5372:27:62;;;5368:131;;5508:81;472:750:41;;:::i;:::-;;;;;;;;;-1:-1:-1;;;472:750:41;;;;5508:81:62;;:::i;:::-;472:750:41;;5652:21:62;472:750:41;5675:18:62;;;;;;3480:339;;;;472:750:41;3480:339:62;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:62;;;;:::i;:::-;472:750:41;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;-1:-1:-1;;;;;472:750:41;6011:4:62;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;472:750:41;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;-1:-1:-1;;;;;;472:750:41;;;;;;;5652:21:62;;6268:123;472:750:41;;;;6328:48:62;;;;;;472:750:41;6328:48:62;;472:750:41;6328:48:62;6111:144;472:750:41;;-1:-1:-1;;;6174:66:62;;472:750:41;6174:66:62;;472:750:41;;;;;6174:66:62;5980:118;472:750:41;;-1:-1:-1;;;6043:40:62;;472:750:41;6043:40:62;;472:750:41;;;;;6043:40:62;5368:131;472:750:41;;-1:-1:-1;;;5422:66:62;;472:750:41;;;5422:66:62;;472:750:41;5422:66:62;;;:::i;3480:339::-;3629:30;3619:40;;3629:30;;472:750:41;-1:-1:-1;;;;;;;;;;;472:750:41;6826:27:62;;6822:115;;472:750:41;;;6999:21:62;472:750:41;7022:18:62;;;;;;3615:204;;;;472:750:41;3615:204:62;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:62;;;;:::i;:::-;472:750:41;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;;;;;;;7278:61:62;7274:153;;472:750:41;;-1:-1:-1;;;;;472:750:41;7597:4:62;7538:64;7534:149;;472:750:41;;;;;;;7747:15:62;472:750:41;;;;;;;;7780:68:62;7776:412;;6999:21;472:750:41;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;-1:-1:-1;;472:750:41;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;;6999:21:62;;472:750:41;;;;;;;;;;;;7776:412:62;472:750:41;;7890:27:62;8033:140;7890:27;;:::i;:::-;472:750:41;;;;;;;;;7935:80:62;472:750:41;7935:65:62;472:750:41;;;;;;7935:65:62;:::i;:80::-;472:750:41;;-1:-1:-1;;;;;;472:750:41;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;-1:-1:-1;;;;472:750:41;;;;;;;-1:-1:-1;;;472:750:41;;;;;8033:140:62;7776:412;;;;7534:149;472:750:41;;-1:-1:-1;;;7629:39:62;;472:750:41;7629:39:62;;472:750:41;;;;;7629:39:62;7274:153;472:750:41;;-1:-1:-1;;;7366:46:62;;472:750:41;7366:46:62;;472:750:41;;;;;7366:46:62;6822:115;472:750:41;;;;6876:50:62;;;;;;472:750:41;6876:50:62;;472:750:41;6876:50:62;3615:204;472:750:41;;-1:-1:-1;;;3773:31:62;;472:750:41;;;;;3773:31:62;;;472:750:41;:::i;:::-;3773:31:62;472:750:41;;;;;;;;;;;;3138:122:62;472:750:41;;-1:-1:-1;;;3198:47:62;;472:750:41;3198:47:62;;472:750:41;;;;;3198:47:62;472:750:41;;;;;;;;;;;;;;;-1:-1:-1;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;472:750:41;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;472:750:41;;;;;;;;;;;;;;;;;;;;;;2645:92:62;-1:-1:-1;;;2716:10:62;;472:750:41;;2716:10:62;472:750:41;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;472:750:41;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;472:750:41;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;472:750:41;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;472:750:41;;;;;;;-1:-1:-1;472:750:41;;;;;;;;;;;;:::o;8414:888:62:-;-1:-1:-1;;;;;472:750:41;;;8414:888:62;8506:19;;8502:56;;8523:1;472:750:41;;8567:70:62;472:750:41;;:::i;:::-;;;;;;;;;-1:-1:-1;;;472:750:41;;;;8567:70:62;;:::i;:::-;8737:29;;;472:750:41;8737:29:62;;;;;;472:750:41;;;;;;;;;;:::i;:::-;;;;;8523:1:62;472:750:41;;;;;8826:8:62;8822:474;;8414:888;;;:::o;8822:474::-;472:750:41;;8911:17:62;:12;;9034:144;;472:750:41;9034:144:62;;;8907:379;472:750:41;;;9223:48:62;;;;;;;;;;;472:750:41;;;;;;;;;;;:::i;:::-;;;;;8502:56:62;8541:7;;;:::o;9308:320::-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;472:750:41;;;-1:-1:-1;;;9566:45:62;;-1:-1:-1;;;;;472:750:41;;;9566:45:62;;;472:750:41;;;;;;;;;;;;;;;:::i","linkReferences":{}},"methodIdentifiers":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":"1f931c1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"diamondCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"params\":{\"_calldata\":\"A function call, including function selector and arguments _calldata is executed with delegatecall on _init\",\"_diamondCut\":\"Contains the facet addresses and function selectors\",\"_init\":\"The address of the contract or facet to execute _calldata\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"notice\":\"Add/replace/remove any number of functions and optionally execute a function with delegatecall\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/diamond/DiamondCutFacet.sol\":\"DiamondCutFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"address","name":"_init","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"diamondCut"}],"devdoc":{"kind":"dev","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"params":{"_calldata":"A function call, including function selector and arguments _calldata is executed with delegatecall on _init","_diamondCut":"Contains the facet addresses and function selectors","_init":"The address of the contract or facet to execute _calldata"}}},"version":1},"userdoc":{"kind":"user","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"notice":"Add/replace/remove any number of functions and optionally execute a function with delegatecall"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/diamond/DiamondCutFacet.sol":"DiamondCutFacet"},"libraries":{},"viaIR":true},"sources":{"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/diamond/DiamondCutFacet.sol","id":36919,"exportedSymbols":{"DiamondCutFacet":[36918],"IDiamondCut":[40189],"LibDiamond":[41682]},"nodeType":"SourceUnit","src":"32:1191:41","nodes":[{"id":36884,"nodeType":"PragmaDirective","src":"32:23:41","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36886,"nodeType":"ImportDirective","src":"362:58:41","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"../interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":36919,"sourceUnit":40190,"symbolAliases":[{"foreign":{"id":36885,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"370:11:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36888,"nodeType":"ImportDirective","src":"421:49:41","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36919,"sourceUnit":41683,"symbolAliases":[{"foreign":{"id":36887,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"429:10:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36918,"nodeType":"ContractDefinition","src":"472:750:41","nodes":[{"id":36917,"nodeType":"FunctionDefinition","src":"961:259:41","nodes":[],"body":{"id":36916,"nodeType":"Block","src":"1073:147:41","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36903,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1083:10:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1094:22:41","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":41144,"src":"1083:33:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":36906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1083:35:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36907,"nodeType":"ExpressionStatement","src":"1083:35:41"},{"expression":{"arguments":[{"id":36911,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36895,"src":"1164:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut calldata[] calldata"}},{"id":36912,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36897,"src":"1184:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":36913,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36899,"src":"1202:9:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut calldata[] calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":36908,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1128:10:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1139:10:41","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":41262,"src":"1128:21:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":36914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1151:11:41","1177:5:41","1191:9:41"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"1128:85:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36915,"nodeType":"ExpressionStatement","src":"1128:85:41"}]},"baseFunctions":[40188],"documentation":{"id":36891,"nodeType":"StructuredDocumentation","src":"518:438:41","text":"@notice Add/replace/remove any number of functions and optionally execute\n a function with delegatecall\n @param _diamondCut Contains the facet addresses and function selectors\n @param _init The address of the contract or facet to execute _calldata\n @param _calldata A function call, including function selector and arguments\n _calldata is executed with delegatecall on _init"},"functionSelector":"1f931c1c","implemented":true,"kind":"function","modifiers":[],"name":"diamondCut","nameLocation":"970:10:41","overrides":{"id":36901,"nodeType":"OverrideSpecifier","overrides":[],"src":"1064:8:41"},"parameters":{"id":36900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36895,"mutability":"mutable","name":"_diamondCut","nameLocation":"1001:11:41","nodeType":"VariableDeclaration","scope":36917,"src":"981:31:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":36893,"nodeType":"UserDefinedTypeName","pathNode":{"id":36892,"name":"FacetCut","nameLocations":["981:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"981:8:41"},"referencedDeclaration":40159,"src":"981:8:41","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":36894,"nodeType":"ArrayTypeName","src":"981:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":36897,"mutability":"mutable","name":"_init","nameLocation":"1022:5:41","nodeType":"VariableDeclaration","scope":36917,"src":"1014:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36896,"name":"address","nodeType":"ElementaryTypeName","src":"1014:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36899,"mutability":"mutable","name":"_calldata","nameLocation":"1044:9:41","nodeType":"VariableDeclaration","scope":36917,"src":"1029:24:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":36898,"name":"bytes","nodeType":"ElementaryTypeName","src":"1029:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"980:74:41"},"returnParameters":{"id":36902,"nodeType":"ParameterList","parameters":[],"src":"1073:0:41"},"scope":36918,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":36889,"name":"IDiamondCut","nameLocations":["500:11:41"],"nodeType":"IdentifierPath","referencedDeclaration":40189,"src":"500:11:41"},"id":36890,"nodeType":"InheritanceSpecifier","src":"500:11:41"}],"canonicalName":"DiamondCutFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36918,40189,40170],"name":"DiamondCutFacet","nameLocation":"481:15:41","scope":36919,"usedErrors":[40975,40981,40986,40990,40994,40999,41005,41018,41022,41026,41030,41034,41038,41042]}],"license":"MIT"},"id":41} \ No newline at end of file diff --git a/.out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json b/.out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json index fb82617fc..15821ca17 100644 --- a/.out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json +++ b/.out/DiamondLoupeFacet.sol/DiamondLoupeFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"facetAddress","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"facetAddress_","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"facetAddresses","inputs":[],"outputs":[{"name":"facetAddresses_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"facetFunctionSelectors","inputs":[{"name":"_facet","type":"address","internalType":"address"}],"outputs":[{"name":"_facetFunctionSelectors","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"facets","inputs":[],"outputs":[{"name":"facets_","type":"tuple[]","internalType":"struct IDiamondLoupe.Facet[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"_interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523461001657610868908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c63430008130033","sourceMap":"652:6504:39:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c63430008130033","sourceMap":"652:6504:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;;652:6504:39;;;:::i;:::-;;;;7111:22;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;652:6504:39;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;652:6504:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:39;5192:28;;;:::i;:::-;5230:17;;5305:21;;5300:892;5328:29;;;;;;6305:67;;;652:6504;;;;6305:67;652:6504;;:::i;:::-;;;;5359:15;5408:27;;5473:57;:44;652:6504;5408:27;;;:::i;:::-;652:6504;;;;;;;;;;;5473:44;:::i;:::-;652:6504;-1:-1:-1;;;;;652:6504:39;;;5473:57;5544:17;-1:-1:-1;;;;;652:6504:39;;5544:17;5693:22;;;;;;5668:232;5973:97;;;;6114:42;;6170:11;6114:42;;5359:15;6114:42;;;:::i;:::-;-1:-1:-1;;;;;652:6504:39;;;;;;6114:42;6170:11;:::i;:::-;5359:15;;:::i;:::-;5305:21;;;5973:97;6047:8;;5359:15;6047:8;5359:15;:::i;5717:12::-;5753:44;5770:27;;;;;:::i;:::-;652:6504;-1:-1:-1;;;;;652:6504:39;;;5770:27;-1:-1:-1;;;;;652:6504:39;;;5753:44;;;5749:137;;5717:12;;;:::i;:::-;5673:18;;5749:137;5821:19;;;652:6504;5862:5;;;;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;652:6504:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:39;1362:26;;;:::i;:::-;1513:27;;;;:::i;:::-;1584:17;;1659:21;;1654:1292;1682:29;;;;;;2960:18;;2980:22;;;;;;3507:59;;;652:6504;;;;3507:59;652:6504;;:::i;2960:18::-;3043:29;3020:52;3043:29;;652:6504;3043:29;;;:::i;:::-;652:6504;;;;;3043:29;652:6504;;;;3020:52;2734:36;3114:19;;;;:::i;:::-;;:37;;3262:72;652:6504;2960:18;;1713:15;1762:27;;652:6504;1762:27;;;:::i;652:6504::-;1827:57;:44;;;:::i;:57::-;1898:17;-1:-1:-1;;;;;652:6504:39;;1898:17;2038:22;;;;;;2013:391;2498:97;;;;2673:18;2814:50;2924:11;2673:18;:47;1713:15;2673:18;;;;;:::i;:::-;;-1:-1:-1;;;;;652:6504:39;;;;;;2673:47;2814:50;2773:27;;;;:::i;:::-;2734:36;:18;:36;:18;;;;:::i;:::-;;:36;:66;2814:18;;;;:::i;:::-;;:36;;:50;:::i;:::-;-1:-1:-1;;;;;;652:6504:39;;;;;;2814:50;2878:32;;;;;:::i;:::-;652:6504;;;;2924:11;1713:15;;:::i;:::-;1659:21;;;2498:97;2572:8;;;1713:15;2572:8;1713:15;:::i;2062:12::-;2098:19;;;;:49;:32;:19;;;;:::i;:::-;;652:6504;-1:-1:-1;;;;;652:6504:39;;;2098:49;;2094:296;;2062:12;;;;;;:::i;:::-;2018:18;;2094:296;2272:31;2171:19;;;;;;2272:31;2171:19;:79;2272:31;2171:19;:79;2734:36;2171:19;2272:31;2171:19;2272:31;2171:19;;:::i;:::-;;:37;;:79;2209:29;;;;;:::i;2171:79::-;;;:::i;:::-;2272:31;:::i;:::-;;:::i;:::-;;;;:::i;:::-;652:6504;;;;;;2272:31;652:6504;2366:5;;;;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;652:6504:39;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:6504:39;;;;-1:-1:-1;;;;;652:6504:39;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:39;4059:20;-1:-1:-1;4115:27:39;;;;:::i;:::-;4200:21;;4223:29;;;;;;4698:78;;;652:6504;;;;4698:78;652:6504;;:::i;4254:15::-;4303:27;;;:::i;:::-;652:6504;;;;;;;;4368:44;;;;:::i;:::-;652:6504;;4443:23;;4439:142;;4254:15;;;;;:::i;:::-;4200:21;;4439:142;4486:48;4552:14;4486:48;;4254:15;4486:48;;;;:::i;:::-;-1:-1:-1;;;;;;652:6504:39;;;;;4552:14;:::i;:::-;4439:142;;;;652:6504;;;;;-1:-1:-1;;;;;6821:53:39;652:6504;;;:::i;6821:53::-;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:6504:39;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;-1:-1:-1;652:6504:39;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;652:6504:39;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:39;;;;;;;-1:-1:-1;652:6504:39;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;260:43:57;652:6504:39;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"facetAddress(bytes4)":"cdffacc6","facetAddresses()":"52ef6b2c","facetFunctionSelectors(address)":"adfca15e","facets()":"7a0ed627","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"facetAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"facetAddress_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facetAddresses\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"facetAddresses_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facet\",\"type\":\"address\"}],\"name\":\"facetFunctionSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_facetFunctionSelectors\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facets\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamondLoupe.Facet[]\",\"name\":\"facets_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"facetAddress(bytes4)\":{\"details\":\"If facet is not found return address(0).\",\"params\":{\"_functionSelector\":\"The function selector.\"},\"returns\":{\"facetAddress_\":\"The facet address.\"}},\"facetAddresses()\":{\"returns\":{\"facetAddresses_\":\"facetAddresses_\"}},\"facetFunctionSelectors(address)\":{\"params\":{\"_facet\":\"The facet address.\"},\"returns\":{\"_facetFunctionSelectors\":\"The selectors associated with a facet address.\"}},\"facets()\":{\"returns\":{\"facets_\":\"Facet\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"facetAddress(bytes4)\":{\"notice\":\"Gets the facet address that supports the given selector.\"},\"facetAddresses()\":{\"notice\":\"Get all the facet addresses used by a diamond.\"},\"facetFunctionSelectors(address)\":{\"notice\":\"Gets all the function selectors supported by a specific facet.\"},\"facets()\":{\"notice\":\"Gets all facets and their selectors.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/diamond/DiamondLoupeFacet.sol\":\"DiamondLoupeFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"stateMutability":"view","type":"function","name":"facetAddress","outputs":[{"internalType":"address","name":"facetAddress_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facetAddresses","outputs":[{"internalType":"address[]","name":"facetAddresses_","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_facet","type":"address"}],"stateMutability":"view","type":"function","name":"facetFunctionSelectors","outputs":[{"internalType":"bytes4[]","name":"_facetFunctionSelectors","type":"bytes4[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facets","outputs":[{"internalType":"struct IDiamondLoupe.Facet[]","name":"facets_","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]}]},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"facetAddress(bytes4)":{"details":"If facet is not found return address(0).","params":{"_functionSelector":"The function selector."},"returns":{"facetAddress_":"The facet address."}},"facetAddresses()":{"returns":{"facetAddresses_":"facetAddresses_"}},"facetFunctionSelectors(address)":{"params":{"_facet":"The facet address."},"returns":{"_facetFunctionSelectors":"The selectors associated with a facet address."}},"facets()":{"returns":{"facets_":"Facet"}}},"version":1},"userdoc":{"kind":"user","methods":{"facetAddress(bytes4)":{"notice":"Gets the facet address that supports the given selector."},"facetAddresses()":{"notice":"Get all the facet addresses used by a diamond."},"facetFunctionSelectors(address)":{"notice":"Gets all the function selectors supported by a specific facet."},"facets()":{"notice":"Gets all facets and their selectors."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/diamond/DiamondLoupeFacet.sol":"DiamondLoupeFacet"},"libraries":{},"viaIR":true},"sources":{"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/diamond/DiamondLoupeFacet.sol","id":36915,"exportedSymbols":{"DiamondLoupeFacet":[36914],"IDiamondLoupe":[39792],"IERC165":[39803],"LibDiamond":[41229]},"nodeType":"SourceUnit","src":"32:7125:39","nodes":[{"id":36479,"nodeType":"PragmaDirective","src":"32:23:39","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36481,"nodeType":"ImportDirective","src":"487:49:39","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36915,"sourceUnit":41230,"symbolAliases":[{"foreign":{"id":36480,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"495:10:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36483,"nodeType":"ImportDirective","src":"537:62:39","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"../interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":36915,"sourceUnit":39793,"symbolAliases":[{"foreign":{"id":36482,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39792,"src":"545:13:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36485,"nodeType":"ImportDirective","src":"600:50:39","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"../interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":36915,"sourceUnit":39804,"symbolAliases":[{"foreign":{"id":36484,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39803,"src":"608:7:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36914,"nodeType":"ContractDefinition","src":"652:6504:39","nodes":[{"id":36680,"nodeType":"FunctionDefinition","src":"1079:2493:39","nodes":[],"body":{"id":36679,"nodeType":"Block","src":"1153:2419:39","nodes":[],"statements":[{"assignments":[36502],"declarations":[{"constant":false,"id":36502,"mutability":"mutable","name":"ds","nameLocation":"1197:2:39","nodeType":"VariableDeclaration","scope":36679,"src":"1163:36:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36501,"nodeType":"UserDefinedTypeName","pathNode":{"id":36500,"name":"LibDiamond.DiamondStorage","nameLocations":["1163:10:39","1174:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"1163:25:39"},"referencedDeclaration":40619,"src":"1163:25:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36506,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36503,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"1202:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":36504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1213:14:39","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":40631,"src":"1202:25:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$40619_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":36505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1202:27:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1163:66:39"},{"assignments":[36508],"declarations":[{"constant":false,"id":36508,"mutability":"mutable","name":"selectorCount","nameLocation":"1247:13:39","nodeType":"VariableDeclaration","scope":36679,"src":"1239:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36507,"name":"uint256","nodeType":"ElementaryTypeName","src":"1239:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36512,"initialValue":{"expression":{"expression":{"id":36509,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36502,"src":"1263:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1266:9:39","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":40612,"src":"1263:12:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1276:6:39","memberName":"length","nodeType":"MemberAccess","src":"1263:19:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1239:43:39"},{"expression":{"id":36520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36513,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36496,"src":"1352:7:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$39759_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36518,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36508,"src":"1374:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1362:11:39","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Facet_$39759_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamondLoupe.Facet memory[] memory)"},"typeName":{"baseType":{"id":36515,"nodeType":"UserDefinedTypeName","pathNode":{"id":36514,"name":"Facet","nameLocations":["1366:5:39"],"nodeType":"IdentifierPath","referencedDeclaration":39759,"src":"1366:5:39"},"referencedDeclaration":39759,"src":"1366:5:39","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$39759_storage_ptr","typeString":"struct IDiamondLoupe.Facet"}},"id":36516,"nodeType":"ArrayTypeName","src":"1366:7:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$39759_storage_$dyn_storage_ptr","typeString":"struct IDiamondLoupe.Facet[]"}}},"id":36519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1362:26:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$39759_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"src":"1352:36:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$39759_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":36521,"nodeType":"ExpressionStatement","src":"1352:36:39"},{"assignments":[36526],"declarations":[{"constant":false,"id":36526,"mutability":"mutable","name":"numFacetSelectors","nameLocation":"1493:17:39","nodeType":"VariableDeclaration","scope":36679,"src":"1477:33:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[]"},"typeName":{"baseType":{"id":36524,"name":"uint16","nodeType":"ElementaryTypeName","src":"1477:6:39","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36525,"nodeType":"ArrayTypeName","src":"1477:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_storage_ptr","typeString":"uint16[]"}},"visibility":"internal"}],"id":36532,"initialValue":{"arguments":[{"id":36530,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36508,"src":"1526:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1513:12:39","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint16_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint16[] memory)"},"typeName":{"baseType":{"id":36527,"name":"uint16","nodeType":"ElementaryTypeName","src":"1517:6:39","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36528,"nodeType":"ArrayTypeName","src":"1517:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_storage_ptr","typeString":"uint16[]"}}},"id":36531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1513:27:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1477:63:39"},{"assignments":[36534],"declarations":[{"constant":false,"id":36534,"mutability":"mutable","name":"numFacets","nameLocation":"1592:9:39","nodeType":"VariableDeclaration","scope":36679,"src":"1584:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36533,"name":"uint256","nodeType":"ElementaryTypeName","src":"1584:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36535,"nodeType":"VariableDeclarationStatement","src":"1584:17:39"},{"body":{"id":36647,"nodeType":"Block","src":"1730:1216:39","statements":[{"assignments":[36546],"declarations":[{"constant":false,"id":36546,"mutability":"mutable","name":"selector","nameLocation":"1751:8:39","nodeType":"VariableDeclaration","scope":36647,"src":"1744:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36545,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1744:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":36551,"initialValue":{"baseExpression":{"expression":{"id":36547,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36502,"src":"1762:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1765:9:39","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":40612,"src":"1762:12:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36550,"indexExpression":{"id":36549,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36537,"src":"1775:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1762:27:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"1744:45:39"},{"assignments":[36553],"declarations":[{"constant":false,"id":36553,"mutability":"mutable","name":"facetAddress_","nameLocation":"1811:13:39","nodeType":"VariableDeclaration","scope":36647,"src":"1803:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36552,"name":"address","nodeType":"ElementaryTypeName","src":"1803:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":36559,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36554,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36502,"src":"1827:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1830:31:39","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":40609,"src":"1827:34:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36557,"indexExpression":{"id":36556,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36546,"src":"1862:8:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1827:44:39","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1872:12:39","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40601,"src":"1827:57:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1803:81:39"},{"assignments":[36561],"declarations":[{"constant":false,"id":36561,"mutability":"mutable","name":"continueLoop","nameLocation":"1903:12:39","nodeType":"VariableDeclaration","scope":36647,"src":"1898:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36560,"name":"bool","nodeType":"ElementaryTypeName","src":"1898:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":36562,"nodeType":"VariableDeclarationStatement","src":"1898:17:39"},{"body":{"id":36601,"nodeType":"Block","src":"2076:328:39","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":36572,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36496,"src":"2098:7:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$39759_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":36574,"indexExpression":{"id":36573,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36564,"src":"2106:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2098:19:39","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$39759_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":36575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2118:12:39","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":39755,"src":"2098:32:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":36576,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36553,"src":"2134:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2098:49:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36600,"nodeType":"IfStatement","src":"2094:296:39","trueBody":{"id":36599,"nodeType":"Block","src":"2149:241:39","statements":[{"expression":{"id":36587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":36578,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36496,"src":"2171:7:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$39759_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":36580,"indexExpression":{"id":36579,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36564,"src":"2179:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2171:19:39","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$39759_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":36581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2191:17:39","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":39758,"src":"2171:37:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":36585,"indexExpression":{"baseExpression":{"id":36582,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36526,"src":"2209:17:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":36584,"indexExpression":{"id":36583,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36564,"src":"2227:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2209:29:39","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2171:68:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36586,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36546,"src":"2242:8:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2171:79:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":36588,"nodeType":"ExpressionStatement","src":"2171:79:39"},{"expression":{"id":36592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2272:31:39","subExpression":{"baseExpression":{"id":36589,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36526,"src":"2274:17:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":36591,"indexExpression":{"id":36590,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36564,"src":"2292:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2274:29:39","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36593,"nodeType":"ExpressionStatement","src":"2272:31:39"},{"expression":{"id":36596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36594,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36561,"src":"2325:12:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2340:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2325:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36597,"nodeType":"ExpressionStatement","src":"2325:19:39"},{"id":36598,"nodeType":"Break","src":"2366:5:39"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36566,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36564,"src":"2038:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36567,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36534,"src":"2051:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2038:22:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36602,"initializationExpression":{"assignments":[36564],"declarations":[{"constant":false,"id":36564,"mutability":"mutable","name":"facetIndex","nameLocation":"2026:10:39","nodeType":"VariableDeclaration","scope":36602,"src":"2018:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36563,"name":"uint256","nodeType":"ElementaryTypeName","src":"2018:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36565,"nodeType":"VariableDeclarationStatement","src":"2018:18:39"},"loopExpression":{"expression":{"id":36570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2062:12:39","subExpression":{"id":36569,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36564,"src":"2064:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36571,"nodeType":"ExpressionStatement","src":"2062:12:39"},"nodeType":"ForStatement","src":"2013:391:39"},{"condition":{"id":36603,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36561,"src":"2502:12:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36610,"nodeType":"IfStatement","src":"2498:97:39","trueBody":{"id":36609,"nodeType":"Block","src":"2516:79:39","statements":[{"expression":{"id":36606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36604,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36561,"src":"2534:12:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":36605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2549:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2534:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36607,"nodeType":"ExpressionStatement","src":"2534:20:39"},{"id":36608,"nodeType":"Continue","src":"2572:8:39"}]}},{"expression":{"id":36616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":36611,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36496,"src":"2673:7:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$39759_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":36613,"indexExpression":{"id":36612,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36534,"src":"2681:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2673:18:39","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$39759_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":36614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2692:12:39","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":39755,"src":"2673:31:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36615,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36553,"src":"2707:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2673:47:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36617,"nodeType":"ExpressionStatement","src":"2673:47:39"},{"expression":{"id":36627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":36618,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36496,"src":"2734:7:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$39759_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":36620,"indexExpression":{"id":36619,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36534,"src":"2742:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2734:18:39","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$39759_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":36621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2753:17:39","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":39758,"src":"2734:36:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36625,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36508,"src":"2786:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2773:12:39","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes4[] memory)"},"typeName":{"baseType":{"id":36622,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2777:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":36623,"nodeType":"ArrayTypeName","src":"2777:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}}},"id":36626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2773:27:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"2734:66:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":36628,"nodeType":"ExpressionStatement","src":"2734:66:39"},{"expression":{"id":36636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":36629,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36496,"src":"2814:7:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$39759_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":36631,"indexExpression":{"id":36630,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36534,"src":"2822:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2814:18:39","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$39759_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":36632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2833:17:39","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":39758,"src":"2814:36:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":36634,"indexExpression":{"hexValue":"30","id":36633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2851:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2814:39:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36635,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36546,"src":"2856:8:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2814:50:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":36637,"nodeType":"ExpressionStatement","src":"2814:50:39"},{"expression":{"id":36642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":36638,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36526,"src":"2878:17:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":36640,"indexExpression":{"id":36639,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36534,"src":"2896:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2878:28:39","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":36641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2909:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2878:32:39","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36643,"nodeType":"ExpressionStatement","src":"2878:32:39"},{"expression":{"id":36645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2924:11:39","subExpression":{"id":36644,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36534,"src":"2926:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36646,"nodeType":"ExpressionStatement","src":"2924:11:39"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36539,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36537,"src":"1682:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36540,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36508,"src":"1698:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1682:29:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36648,"initializationExpression":{"assignments":[36537],"declarations":[{"constant":false,"id":36537,"mutability":"mutable","name":"selectorIndex","nameLocation":"1667:13:39","nodeType":"VariableDeclaration","scope":36648,"src":"1659:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36536,"name":"uint256","nodeType":"ElementaryTypeName","src":"1659:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36538,"nodeType":"VariableDeclarationStatement","src":"1659:21:39"},"loopExpression":{"expression":{"id":36543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1713:15:39","subExpression":{"id":36542,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36537,"src":"1715:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36544,"nodeType":"ExpressionStatement","src":"1713:15:39"},"nodeType":"ForStatement","src":"1654:1292:39"},{"body":{"id":36676,"nodeType":"Block","src":"3006:406:39","statements":[{"assignments":[36656],"declarations":[{"constant":false,"id":36656,"mutability":"mutable","name":"numSelectors","nameLocation":"3028:12:39","nodeType":"VariableDeclaration","scope":36676,"src":"3020:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36655,"name":"uint256","nodeType":"ElementaryTypeName","src":"3020:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36660,"initialValue":{"baseExpression":{"id":36657,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36526,"src":"3043:17:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":36659,"indexExpression":{"id":36658,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36650,"src":"3061:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3043:29:39","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3020:52:39"},{"assignments":[36665],"declarations":[{"constant":false,"id":36665,"mutability":"mutable","name":"selectors","nameLocation":"3102:9:39","nodeType":"VariableDeclaration","scope":36676,"src":"3086:25:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":36663,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3086:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":36664,"nodeType":"ArrayTypeName","src":"3086:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"id":36670,"initialValue":{"expression":{"baseExpression":{"id":36666,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36496,"src":"3114:7:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$39759_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":36668,"indexExpression":{"id":36667,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36650,"src":"3122:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3114:19:39","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$39759_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":36669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3134:17:39","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":39758,"src":"3114:37:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3086:65:39"},{"AST":{"nodeType":"YulBlock","src":"3271:63:39","statements":[{"expression":{"arguments":[{"name":"selectors","nodeType":"YulIdentifier","src":"3296:9:39"},{"name":"numSelectors","nodeType":"YulIdentifier","src":"3307:12:39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3289:6:39"},"nodeType":"YulFunctionCall","src":"3289:31:39"},"nodeType":"YulExpressionStatement","src":"3289:31:39"}]},"evmVersion":"paris","externalReferences":[{"declaration":36656,"isOffset":false,"isSlot":false,"src":"3307:12:39","valueSize":1},{"declaration":36665,"isOffset":false,"isSlot":false,"src":"3296:9:39","valueSize":1}],"id":36671,"nodeType":"InlineAssembly","src":"3262:72:39"},{"id":36675,"nodeType":"UncheckedBlock","src":"3347:55:39","statements":[{"expression":{"id":36673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3375:12:39","subExpression":{"id":36672,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36650,"src":"3377:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36674,"nodeType":"ExpressionStatement","src":"3375:12:39"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36652,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36650,"src":"2980:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36653,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36534,"src":"2993:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2980:22:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36677,"initializationExpression":{"assignments":[36650],"declarations":[{"constant":false,"id":36650,"mutability":"mutable","name":"facetIndex","nameLocation":"2968:10:39","nodeType":"VariableDeclaration","scope":36677,"src":"2960:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36649,"name":"uint256","nodeType":"ElementaryTypeName","src":"2960:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36651,"nodeType":"VariableDeclarationStatement","src":"2960:18:39"},"nodeType":"ForStatement","src":"2955:457:39"},{"AST":{"nodeType":"YulBlock","src":"3516:50:39","statements":[{"expression":{"arguments":[{"name":"facets_","nodeType":"YulIdentifier","src":"3537:7:39"},{"name":"numFacets","nodeType":"YulIdentifier","src":"3546:9:39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3530:6:39"},"nodeType":"YulFunctionCall","src":"3530:26:39"},"nodeType":"YulExpressionStatement","src":"3530:26:39"}]},"evmVersion":"paris","externalReferences":[{"declaration":36496,"isOffset":false,"isSlot":false,"src":"3537:7:39","valueSize":1},{"declaration":36534,"isOffset":false,"isSlot":false,"src":"3546:9:39","valueSize":1}],"id":36678,"nodeType":"InlineAssembly","src":"3507:59:39"}]},"baseFunctions":[39767],"documentation":{"id":36490,"nodeType":"StructuredDocumentation","src":"996:78:39","text":"@notice Gets all facets and their selectors.\n @return facets_ Facet"},"functionSelector":"7a0ed627","implemented":true,"kind":"function","modifiers":[],"name":"facets","nameLocation":"1088:6:39","overrides":{"id":36492,"nodeType":"OverrideSpecifier","overrides":[],"src":"1111:8:39"},"parameters":{"id":36491,"nodeType":"ParameterList","parameters":[],"src":"1094:2:39"},"returnParameters":{"id":36497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36496,"mutability":"mutable","name":"facets_","nameLocation":"1144:7:39","nodeType":"VariableDeclaration","scope":36680,"src":"1129:22:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$39759_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet[]"},"typeName":{"baseType":{"id":36494,"nodeType":"UserDefinedTypeName","pathNode":{"id":36493,"name":"Facet","nameLocations":["1129:5:39"],"nodeType":"IdentifierPath","referencedDeclaration":39759,"src":"1129:5:39"},"referencedDeclaration":39759,"src":"1129:5:39","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$39759_storage_ptr","typeString":"struct IDiamondLoupe.Facet"}},"id":36495,"nodeType":"ArrayTypeName","src":"1129:7:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$39759_storage_$dyn_storage_ptr","typeString":"struct IDiamondLoupe.Facet[]"}},"visibility":"internal"}],"src":"1128:24:39"},"scope":36914,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":36758,"nodeType":"FunctionDefinition","src":"3785:997:39","nodes":[],"body":{"id":36757,"nodeType":"Block","src":"3920:862:39","nodes":[],"statements":[{"assignments":[36694],"declarations":[{"constant":false,"id":36694,"mutability":"mutable","name":"ds","nameLocation":"3964:2:39","nodeType":"VariableDeclaration","scope":36757,"src":"3930:36:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36693,"nodeType":"UserDefinedTypeName","pathNode":{"id":36692,"name":"LibDiamond.DiamondStorage","nameLocations":["3930:10:39","3941:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"3930:25:39"},"referencedDeclaration":40619,"src":"3930:25:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36698,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36695,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"3969:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":36696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3980:14:39","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":40631,"src":"3969:25:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$40619_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":36697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3969:27:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3930:66:39"},{"assignments":[36700],"declarations":[{"constant":false,"id":36700,"mutability":"mutable","name":"selectorCount","nameLocation":"4014:13:39","nodeType":"VariableDeclaration","scope":36757,"src":"4006:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36699,"name":"uint256","nodeType":"ElementaryTypeName","src":"4006:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36704,"initialValue":{"expression":{"expression":{"id":36701,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36694,"src":"4030:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4033:9:39","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":40612,"src":"4030:12:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4043:6:39","memberName":"length","nodeType":"MemberAccess","src":"4030:19:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4006:43:39"},{"assignments":[36706],"declarations":[{"constant":false,"id":36706,"mutability":"mutable","name":"numSelectors","nameLocation":"4067:12:39","nodeType":"VariableDeclaration","scope":36757,"src":"4059:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36705,"name":"uint256","nodeType":"ElementaryTypeName","src":"4059:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36707,"nodeType":"VariableDeclarationStatement","src":"4059:20:39"},{"expression":{"id":36714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36708,"name":"_facetFunctionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36688,"src":"4089:23:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36712,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36700,"src":"4128:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4115:12:39","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes4[] memory)"},"typeName":{"baseType":{"id":36709,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4119:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":36710,"nodeType":"ArrayTypeName","src":"4119:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}}},"id":36713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4115:27:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4089:53:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":36715,"nodeType":"ExpressionStatement","src":"4089:53:39"},{"body":{"id":36754,"nodeType":"Block","src":"4271:320:39","statements":[{"assignments":[36726],"declarations":[{"constant":false,"id":36726,"mutability":"mutable","name":"selector","nameLocation":"4292:8:39","nodeType":"VariableDeclaration","scope":36754,"src":"4285:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36725,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4285:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":36731,"initialValue":{"baseExpression":{"expression":{"id":36727,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36694,"src":"4303:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4306:9:39","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":40612,"src":"4303:12:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36730,"indexExpression":{"id":36729,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36717,"src":"4316:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4303:27:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"4285:45:39"},{"assignments":[36733],"declarations":[{"constant":false,"id":36733,"mutability":"mutable","name":"facetAddress_","nameLocation":"4352:13:39","nodeType":"VariableDeclaration","scope":36754,"src":"4344:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36732,"name":"address","nodeType":"ElementaryTypeName","src":"4344:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":36739,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36734,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36694,"src":"4368:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4371:31:39","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":40609,"src":"4368:34:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36737,"indexExpression":{"id":36736,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36726,"src":"4403:8:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4368:44:39","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4413:12:39","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40601,"src":"4368:57:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4344:81:39"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36740,"name":"_facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36683,"src":"4443:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":36741,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36733,"src":"4453:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4443:23:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36753,"nodeType":"IfStatement","src":"4439:142:39","trueBody":{"id":36752,"nodeType":"Block","src":"4468:113:39","statements":[{"expression":{"id":36747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":36743,"name":"_facetFunctionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36688,"src":"4486:23:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":36745,"indexExpression":{"id":36744,"name":"numSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36706,"src":"4510:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4486:37:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36746,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36726,"src":"4526:8:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4486:48:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":36748,"nodeType":"ExpressionStatement","src":"4486:48:39"},{"expression":{"id":36750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4552:14:39","subExpression":{"id":36749,"name":"numSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36706,"src":"4554:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36751,"nodeType":"ExpressionStatement","src":"4552:14:39"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36719,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36717,"src":"4223:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36720,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36700,"src":"4239:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4223:29:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36755,"initializationExpression":{"assignments":[36717],"declarations":[{"constant":false,"id":36717,"mutability":"mutable","name":"selectorIndex","nameLocation":"4208:13:39","nodeType":"VariableDeclaration","scope":36755,"src":"4200:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36716,"name":"uint256","nodeType":"ElementaryTypeName","src":"4200:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36718,"nodeType":"VariableDeclarationStatement","src":"4200:21:39"},"loopExpression":{"expression":{"id":36723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4254:15:39","subExpression":{"id":36722,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36717,"src":"4256:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36724,"nodeType":"ExpressionStatement","src":"4254:15:39"},"nodeType":"ForStatement","src":"4195:396:39"},{"AST":{"nodeType":"YulBlock","src":"4707:69:39","statements":[{"expression":{"arguments":[{"name":"_facetFunctionSelectors","nodeType":"YulIdentifier","src":"4728:23:39"},{"name":"numSelectors","nodeType":"YulIdentifier","src":"4753:12:39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4721:6:39"},"nodeType":"YulFunctionCall","src":"4721:45:39"},"nodeType":"YulExpressionStatement","src":"4721:45:39"}]},"evmVersion":"paris","externalReferences":[{"declaration":36688,"isOffset":false,"isSlot":false,"src":"4728:23:39","valueSize":1},{"declaration":36706,"isOffset":false,"isSlot":false,"src":"4753:12:39","valueSize":1}],"id":36756,"nodeType":"InlineAssembly","src":"4698:78:39"}]},"baseFunctions":[39776],"documentation":{"id":36681,"nodeType":"StructuredDocumentation","src":"3578:202:39","text":"@notice Gets all the function selectors supported by a specific facet.\n @param _facet The facet address.\n @return _facetFunctionSelectors The selectors associated with a facet address."},"functionSelector":"adfca15e","implemented":true,"kind":"function","modifiers":[],"name":"facetFunctionSelectors","nameLocation":"3794:22:39","overrides":{"id":36685,"nodeType":"OverrideSpecifier","overrides":[],"src":"3861:8:39"},"parameters":{"id":36684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36683,"mutability":"mutable","name":"_facet","nameLocation":"3834:6:39","nodeType":"VariableDeclaration","scope":36758,"src":"3826:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36682,"name":"address","nodeType":"ElementaryTypeName","src":"3826:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3816:30:39"},"returnParameters":{"id":36689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36688,"mutability":"mutable","name":"_facetFunctionSelectors","nameLocation":"3895:23:39","nodeType":"VariableDeclaration","scope":36758,"src":"3879:39:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":36686,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3879:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":36687,"nodeType":"ArrayTypeName","src":"3879:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"3878:41:39"},"scope":36914,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":36863,"nodeType":"FunctionDefinition","src":"4883:1495:39","nodes":[],"body":{"id":36862,"nodeType":"Block","src":"4975:1403:39","nodes":[],"statements":[{"assignments":[36770],"declarations":[{"constant":false,"id":36770,"mutability":"mutable","name":"ds","nameLocation":"5019:2:39","nodeType":"VariableDeclaration","scope":36862,"src":"4985:36:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36769,"nodeType":"UserDefinedTypeName","pathNode":{"id":36768,"name":"LibDiamond.DiamondStorage","nameLocations":["4985:10:39","4996:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"4985:25:39"},"referencedDeclaration":40619,"src":"4985:25:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36774,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36771,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"5024:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":36772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5035:14:39","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":40631,"src":"5024:25:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$40619_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":36773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5024:27:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4985:66:39"},{"assignments":[36776],"declarations":[{"constant":false,"id":36776,"mutability":"mutable","name":"selectorCount","nameLocation":"5069:13:39","nodeType":"VariableDeclaration","scope":36862,"src":"5061:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36775,"name":"uint256","nodeType":"ElementaryTypeName","src":"5061:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36780,"initialValue":{"expression":{"expression":{"id":36777,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36770,"src":"5085:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5088:9:39","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":40612,"src":"5085:12:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5098:6:39","memberName":"length","nodeType":"MemberAccess","src":"5085:19:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5061:43:39"},{"expression":{"id":36787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36781,"name":"facetAddresses_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36764,"src":"5174:15:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36785,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36776,"src":"5206:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5192:13:39","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":36782,"name":"address","nodeType":"ElementaryTypeName","src":"5196:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36783,"nodeType":"ArrayTypeName","src":"5196:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":36786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5192:28:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5174:46:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":36788,"nodeType":"ExpressionStatement","src":"5174:46:39"},{"assignments":[36790],"declarations":[{"constant":false,"id":36790,"mutability":"mutable","name":"numFacets","nameLocation":"5238:9:39","nodeType":"VariableDeclaration","scope":36862,"src":"5230:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36789,"name":"uint256","nodeType":"ElementaryTypeName","src":"5230:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36791,"nodeType":"VariableDeclarationStatement","src":"5230:17:39"},{"body":{"id":36859,"nodeType":"Block","src":"5376:816:39","statements":[{"assignments":[36802],"declarations":[{"constant":false,"id":36802,"mutability":"mutable","name":"selector","nameLocation":"5397:8:39","nodeType":"VariableDeclaration","scope":36859,"src":"5390:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36801,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5390:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":36807,"initialValue":{"baseExpression":{"expression":{"id":36803,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36770,"src":"5408:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5411:9:39","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":40612,"src":"5408:12:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36806,"indexExpression":{"id":36805,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36793,"src":"5421:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5408:27:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"5390:45:39"},{"assignments":[36809],"declarations":[{"constant":false,"id":36809,"mutability":"mutable","name":"facetAddress_","nameLocation":"5457:13:39","nodeType":"VariableDeclaration","scope":36859,"src":"5449:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36808,"name":"address","nodeType":"ElementaryTypeName","src":"5449:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":36815,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36810,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36770,"src":"5473:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5476:31:39","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":40609,"src":"5473:34:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36813,"indexExpression":{"id":36812,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36802,"src":"5508:8:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5473:44:39","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5518:12:39","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40601,"src":"5473:57:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5449:81:39"},{"assignments":[36817],"declarations":[{"constant":false,"id":36817,"mutability":"mutable","name":"continueLoop","nameLocation":"5549:12:39","nodeType":"VariableDeclaration","scope":36859,"src":"5544:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36816,"name":"bool","nodeType":"ElementaryTypeName","src":"5544:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":36818,"nodeType":"VariableDeclarationStatement","src":"5544:17:39"},{"body":{"id":36840,"nodeType":"Block","src":"5731:169:39","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36828,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36809,"src":"5753:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":36829,"name":"facetAddresses_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36764,"src":"5770:15:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":36831,"indexExpression":{"id":36830,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36820,"src":"5786:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5770:27:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5753:44:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36839,"nodeType":"IfStatement","src":"5749:137:39","trueBody":{"id":36838,"nodeType":"Block","src":"5799:87:39","statements":[{"expression":{"id":36835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36833,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36817,"src":"5821:12:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5836:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5821:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36836,"nodeType":"ExpressionStatement","src":"5821:19:39"},{"id":36837,"nodeType":"Break","src":"5862:5:39"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36822,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36820,"src":"5693:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36823,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36790,"src":"5706:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5693:22:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36841,"initializationExpression":{"assignments":[36820],"declarations":[{"constant":false,"id":36820,"mutability":"mutable","name":"facetIndex","nameLocation":"5681:10:39","nodeType":"VariableDeclaration","scope":36841,"src":"5673:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36819,"name":"uint256","nodeType":"ElementaryTypeName","src":"5673:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36821,"nodeType":"VariableDeclarationStatement","src":"5673:18:39"},"loopExpression":{"expression":{"id":36826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5717:12:39","subExpression":{"id":36825,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36820,"src":"5719:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36827,"nodeType":"ExpressionStatement","src":"5717:12:39"},"nodeType":"ForStatement","src":"5668:232:39"},{"condition":{"id":36842,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36817,"src":"5977:12:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36849,"nodeType":"IfStatement","src":"5973:97:39","trueBody":{"id":36848,"nodeType":"Block","src":"5991:79:39","statements":[{"expression":{"id":36845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36843,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36817,"src":"6009:12:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":36844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6024:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6009:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36846,"nodeType":"ExpressionStatement","src":"6009:20:39"},{"id":36847,"nodeType":"Continue","src":"6047:8:39"}]}},{"expression":{"id":36854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":36850,"name":"facetAddresses_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36764,"src":"6114:15:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":36852,"indexExpression":{"id":36851,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36790,"src":"6130:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6114:26:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36853,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36809,"src":"6143:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6114:42:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36855,"nodeType":"ExpressionStatement","src":"6114:42:39"},{"expression":{"id":36857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6170:11:39","subExpression":{"id":36856,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36790,"src":"6172:9:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36858,"nodeType":"ExpressionStatement","src":"6170:11:39"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36795,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36793,"src":"5328:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36796,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36776,"src":"5344:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5328:29:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36860,"initializationExpression":{"assignments":[36793],"declarations":[{"constant":false,"id":36793,"mutability":"mutable","name":"selectorIndex","nameLocation":"5313:13:39","nodeType":"VariableDeclaration","scope":36860,"src":"5305:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36792,"name":"uint256","nodeType":"ElementaryTypeName","src":"5305:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36794,"nodeType":"VariableDeclarationStatement","src":"5305:21:39"},"loopExpression":{"expression":{"id":36799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5359:15:39","subExpression":{"id":36798,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36793,"src":"5361:13:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36800,"nodeType":"ExpressionStatement","src":"5359:15:39"},"nodeType":"ForStatement","src":"5300:892:39"},{"AST":{"nodeType":"YulBlock","src":"6314:58:39","statements":[{"expression":{"arguments":[{"name":"facetAddresses_","nodeType":"YulIdentifier","src":"6335:15:39"},{"name":"numFacets","nodeType":"YulIdentifier","src":"6352:9:39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6328:6:39"},"nodeType":"YulFunctionCall","src":"6328:34:39"},"nodeType":"YulExpressionStatement","src":"6328:34:39"}]},"evmVersion":"paris","externalReferences":[{"declaration":36764,"isOffset":false,"isSlot":false,"src":"6335:15:39","valueSize":1},{"declaration":36790,"isOffset":false,"isSlot":false,"src":"6352:9:39","valueSize":1}],"id":36861,"nodeType":"InlineAssembly","src":"6305:67:39"}]},"baseFunctions":[39783],"documentation":{"id":36759,"nodeType":"StructuredDocumentation","src":"4788:90:39","text":"@notice Get all the facet addresses used by a diamond.\n @return facetAddresses_"},"functionSelector":"52ef6b2c","implemented":true,"kind":"function","modifiers":[],"name":"facetAddresses","nameLocation":"4892:14:39","overrides":{"id":36761,"nodeType":"OverrideSpecifier","overrides":[],"src":"4923:8:39"},"parameters":{"id":36760,"nodeType":"ParameterList","parameters":[],"src":"4906:2:39"},"returnParameters":{"id":36765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36764,"mutability":"mutable","name":"facetAddresses_","nameLocation":"4958:15:39","nodeType":"VariableDeclaration","scope":36863,"src":"4941:32:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":36762,"name":"address","nodeType":"ElementaryTypeName","src":"4941:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36763,"nodeType":"ArrayTypeName","src":"4941:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4940:34:39"},"scope":36914,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":36890,"nodeType":"FunctionDefinition","src":"6616:278:39","nodes":[],"body":{"id":36889,"nodeType":"Block","src":"6719:175:39","nodes":[],"statements":[{"assignments":[36876],"declarations":[{"constant":false,"id":36876,"mutability":"mutable","name":"ds","nameLocation":"6763:2:39","nodeType":"VariableDeclaration","scope":36889,"src":"6729:36:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36875,"nodeType":"UserDefinedTypeName","pathNode":{"id":36874,"name":"LibDiamond.DiamondStorage","nameLocations":["6729:10:39","6740:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"6729:25:39"},"referencedDeclaration":40619,"src":"6729:25:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36880,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36877,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"6768:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":36878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6779:14:39","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":40631,"src":"6768:25:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$40619_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":36879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6768:27:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6729:66:39"},{"expression":{"id":36887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36881,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36870,"src":"6805:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":36882,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36876,"src":"6821:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6824:31:39","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":40609,"src":"6821:34:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36885,"indexExpression":{"id":36884,"name":"_functionSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36866,"src":"6856:17:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6821:53:39","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6875:12:39","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40601,"src":"6821:66:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6805:82:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36888,"nodeType":"ExpressionStatement","src":"6805:82:39"}]},"baseFunctions":[39791],"documentation":{"id":36864,"nodeType":"StructuredDocumentation","src":"6384:227:39","text":"@notice Gets the facet address that supports the given selector.\n @dev If facet is not found return address(0).\n @param _functionSelector The function selector.\n @return facetAddress_ The facet address."},"functionSelector":"cdffacc6","implemented":true,"kind":"function","modifiers":[],"name":"facetAddress","nameLocation":"6625:12:39","overrides":{"id":36868,"nodeType":"OverrideSpecifier","overrides":[],"src":"6678:8:39"},"parameters":{"id":36867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36866,"mutability":"mutable","name":"_functionSelector","nameLocation":"6645:17:39","nodeType":"VariableDeclaration","scope":36890,"src":"6638:24:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36865,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6638:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6637:26:39"},"returnParameters":{"id":36871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36870,"mutability":"mutable","name":"facetAddress_","nameLocation":"6704:13:39","nodeType":"VariableDeclaration","scope":36890,"src":"6696:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36869,"name":"address","nodeType":"ElementaryTypeName","src":"6696:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6695:23:39"},"scope":36914,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":36913,"nodeType":"FunctionDefinition","src":"6932:222:39","nodes":[],"body":{"id":36912,"nodeType":"Block","src":"7018:136:39","nodes":[],"statements":[{"assignments":[36902],"declarations":[{"constant":false,"id":36902,"mutability":"mutable","name":"ds","nameLocation":"7062:2:39","nodeType":"VariableDeclaration","scope":36912,"src":"7028:36:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36901,"nodeType":"UserDefinedTypeName","pathNode":{"id":36900,"name":"LibDiamond.DiamondStorage","nameLocations":["7028:10:39","7039:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"7028:25:39"},"referencedDeclaration":40619,"src":"7028:25:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36906,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36903,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"7067:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":36904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7078:14:39","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":40631,"src":"7067:25:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$40619_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":36905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7067:27:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7028:66:39"},{"expression":{"baseExpression":{"expression":{"id":36907,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36902,"src":"7111:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7114:19:39","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":40616,"src":"7111:22:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36910,"indexExpression":{"id":36909,"name":"_interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36892,"src":"7134:12:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7111:36:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":36897,"id":36911,"nodeType":"Return","src":"7104:43:39"}]},"baseFunctions":[39802],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"6941:17:39","overrides":{"id":36894,"nodeType":"OverrideSpecifier","overrides":[],"src":"6994:8:39"},"parameters":{"id":36893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36892,"mutability":"mutable","name":"_interfaceId","nameLocation":"6966:12:39","nodeType":"VariableDeclaration","scope":36913,"src":"6959:19:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36891,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6959:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6958:21:39"},"returnParameters":{"id":36897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36896,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36913,"src":"7012:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36895,"name":"bool","nodeType":"ElementaryTypeName","src":"7012:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7011:6:39"},"scope":36914,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":36486,"name":"IDiamondLoupe","nameLocations":["682:13:39"],"nodeType":"IdentifierPath","referencedDeclaration":39792,"src":"682:13:39"},"id":36487,"nodeType":"InheritanceSpecifier","src":"682:13:39"},{"baseName":{"id":36488,"name":"IERC165","nameLocations":["697:7:39"],"nodeType":"IdentifierPath","referencedDeclaration":39803,"src":"697:7:39"},"id":36489,"nodeType":"InheritanceSpecifier","src":"697:7:39"}],"canonicalName":"DiamondLoupeFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36914,39803,39792],"name":"DiamondLoupeFacet","nameLocation":"661:17:39","scope":36915,"usedErrors":[]}],"license":"MIT"},"id":39} \ No newline at end of file +{"abi":[{"type":"function","name":"facetAddress","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"facetAddress_","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"facetAddresses","inputs":[],"outputs":[{"name":"facetAddresses_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"facetFunctionSelectors","inputs":[{"name":"_facet","type":"address","internalType":"address"}],"outputs":[{"name":"_facetFunctionSelectors","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"facets","inputs":[],"outputs":[{"name":"facets_","type":"tuple[]","internalType":"struct IDiamondLoupe.Facet[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"_interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523461001657610868908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c63430008130033","sourceMap":"652:6504:42:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c63430008130033","sourceMap":"652:6504:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;;652:6504:42;;;:::i;:::-;;;;7111:22;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;652:6504:42;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;652:6504:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:42;5192:28;;;:::i;:::-;5230:17;;5305:21;;5300:892;5328:29;;;;;;6305:67;;;652:6504;;;;6305:67;652:6504;;:::i;:::-;;;;5359:15;5408:27;;5473:57;:44;652:6504;5408:27;;;:::i;:::-;652:6504;;;;;;;;;;;5473:44;:::i;:::-;652:6504;-1:-1:-1;;;;;652:6504:42;;;5473:57;5544:17;-1:-1:-1;;;;;652:6504:42;;5544:17;5693:22;;;;;;5668:232;5973:97;;;;6114:42;;6170:11;6114:42;;5359:15;6114:42;;;:::i;:::-;-1:-1:-1;;;;;652:6504:42;;;;;;6114:42;6170:11;:::i;:::-;5359:15;;:::i;:::-;5305:21;;;5973:97;6047:8;;5359:15;6047:8;5359:15;:::i;5717:12::-;5753:44;5770:27;;;;;:::i;:::-;652:6504;-1:-1:-1;;;;;652:6504:42;;;5770:27;-1:-1:-1;;;;;652:6504:42;;;5753:44;;;5749:137;;5717:12;;;:::i;:::-;5673:18;;5749:137;5821:19;;;652:6504;5862:5;;;;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;652:6504:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:42;1362:26;;;:::i;:::-;1513:27;;;;:::i;:::-;1584:17;;1659:21;;1654:1292;1682:29;;;;;;2960:18;;2980:22;;;;;;3507:59;;;652:6504;;;;3507:59;652:6504;;:::i;2960:18::-;3043:29;3020:52;3043:29;;652:6504;3043:29;;;:::i;:::-;652:6504;;;;;3043:29;652:6504;;;;3020:52;2734:36;3114:19;;;;:::i;:::-;;:37;;3262:72;652:6504;2960:18;;1713:15;1762:27;;652:6504;1762:27;;;:::i;652:6504::-;1827:57;:44;;;:::i;:57::-;1898:17;-1:-1:-1;;;;;652:6504:42;;1898:17;2038:22;;;;;;2013:391;2498:97;;;;2673:18;2814:50;2924:11;2673:18;:47;1713:15;2673:18;;;;;:::i;:::-;;-1:-1:-1;;;;;652:6504:42;;;;;;2673:47;2814:50;2773:27;;;;:::i;:::-;2734:36;:18;:36;:18;;;;:::i;:::-;;:36;:66;2814:18;;;;:::i;:::-;;:36;;:50;:::i;:::-;-1:-1:-1;;;;;;652:6504:42;;;;;;2814:50;2878:32;;;;;:::i;:::-;652:6504;;;;2924:11;1713:15;;:::i;:::-;1659:21;;;2498:97;2572:8;;;1713:15;2572:8;1713:15;:::i;2062:12::-;2098:19;;;;:49;:32;:19;;;;:::i;:::-;;652:6504;-1:-1:-1;;;;;652:6504:42;;;2098:49;;2094:296;;2062:12;;;;;;:::i;:::-;2018:18;;2094:296;2272:31;2171:19;;;;;;2272:31;2171:19;:79;2272:31;2171:19;:79;2734:36;2171:19;2272:31;2171:19;2272:31;2171:19;;:::i;:::-;;:37;;:79;2209:29;;;;;:::i;2171:79::-;;;:::i;:::-;2272:31;:::i;:::-;;:::i;:::-;;;;:::i;:::-;652:6504;;;;;;2272:31;652:6504;2366:5;;;;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;652:6504:42;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:6504:42;;;;-1:-1:-1;;;;;652:6504:42;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:42;4059:20;-1:-1:-1;4115:27:42;;;;:::i;:::-;4200:21;;4223:29;;;;;;4698:78;;;652:6504;;;;4698:78;652:6504;;:::i;4254:15::-;4303:27;;;:::i;:::-;652:6504;;;;;;;;4368:44;;;;:::i;:::-;652:6504;;4443:23;;4439:142;;4254:15;;;;;:::i;:::-;4200:21;;4439:142;4486:48;4552:14;4486:48;;4254:15;4486:48;;;;:::i;:::-;-1:-1:-1;;;;;;652:6504:42;;;;;4552:14;:::i;:::-;4439:142;;;;652:6504;;;;;-1:-1:-1;;;;;6821:53:42;652:6504;;;:::i;6821:53::-;652:6504;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;652:6504:42;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;-1:-1:-1;652:6504:42;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;652:6504:42;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;652:6504:42;;;;;;;-1:-1:-1;652:6504:42;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;260:43:62;652:6504:42;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"facetAddress(bytes4)":"cdffacc6","facetAddresses()":"52ef6b2c","facetFunctionSelectors(address)":"adfca15e","facets()":"7a0ed627","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"facetAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"facetAddress_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facetAddresses\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"facetAddresses_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facet\",\"type\":\"address\"}],\"name\":\"facetFunctionSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_facetFunctionSelectors\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facets\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamondLoupe.Facet[]\",\"name\":\"facets_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"facetAddress(bytes4)\":{\"details\":\"If facet is not found return address(0).\",\"params\":{\"_functionSelector\":\"The function selector.\"},\"returns\":{\"facetAddress_\":\"The facet address.\"}},\"facetAddresses()\":{\"returns\":{\"facetAddresses_\":\"facetAddresses_\"}},\"facetFunctionSelectors(address)\":{\"params\":{\"_facet\":\"The facet address.\"},\"returns\":{\"_facetFunctionSelectors\":\"The selectors associated with a facet address.\"}},\"facets()\":{\"returns\":{\"facets_\":\"Facet\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"facetAddress(bytes4)\":{\"notice\":\"Gets the facet address that supports the given selector.\"},\"facetAddresses()\":{\"notice\":\"Get all the facet addresses used by a diamond.\"},\"facetFunctionSelectors(address)\":{\"notice\":\"Gets all the function selectors supported by a specific facet.\"},\"facets()\":{\"notice\":\"Gets all facets and their selectors.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/diamond/DiamondLoupeFacet.sol\":\"DiamondLoupeFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"stateMutability":"view","type":"function","name":"facetAddress","outputs":[{"internalType":"address","name":"facetAddress_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facetAddresses","outputs":[{"internalType":"address[]","name":"facetAddresses_","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_facet","type":"address"}],"stateMutability":"view","type":"function","name":"facetFunctionSelectors","outputs":[{"internalType":"bytes4[]","name":"_facetFunctionSelectors","type":"bytes4[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facets","outputs":[{"internalType":"struct IDiamondLoupe.Facet[]","name":"facets_","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]}]},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"facetAddress(bytes4)":{"details":"If facet is not found return address(0).","params":{"_functionSelector":"The function selector."},"returns":{"facetAddress_":"The facet address."}},"facetAddresses()":{"returns":{"facetAddresses_":"facetAddresses_"}},"facetFunctionSelectors(address)":{"params":{"_facet":"The facet address."},"returns":{"_facetFunctionSelectors":"The selectors associated with a facet address."}},"facets()":{"returns":{"facets_":"Facet"}}},"version":1},"userdoc":{"kind":"user","methods":{"facetAddress(bytes4)":{"notice":"Gets the facet address that supports the given selector."},"facetAddresses()":{"notice":"Get all the facet addresses used by a diamond."},"facetFunctionSelectors(address)":{"notice":"Gets all the function selectors supported by a specific facet."},"facets()":{"notice":"Gets all facets and their selectors."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/diamond/DiamondLoupeFacet.sol":"DiamondLoupeFacet"},"libraries":{},"viaIR":true},"sources":{"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/diamond/DiamondLoupeFacet.sol","id":37356,"exportedSymbols":{"DiamondLoupeFacet":[37355],"IDiamondLoupe":[40230],"IERC165":[40241],"LibDiamond":[41682]},"nodeType":"SourceUnit","src":"32:7125:42","nodes":[{"id":36920,"nodeType":"PragmaDirective","src":"32:23:42","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36922,"nodeType":"ImportDirective","src":"487:49:42","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":37356,"sourceUnit":41683,"symbolAliases":[{"foreign":{"id":36921,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"495:10:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36924,"nodeType":"ImportDirective","src":"537:62:42","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"../interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":37356,"sourceUnit":40231,"symbolAliases":[{"foreign":{"id":36923,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"545:13:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36926,"nodeType":"ImportDirective","src":"600:50:42","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"../interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":37356,"sourceUnit":40242,"symbolAliases":[{"foreign":{"id":36925,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"608:7:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37355,"nodeType":"ContractDefinition","src":"652:6504:42","nodes":[{"id":37121,"nodeType":"FunctionDefinition","src":"1079:2493:42","nodes":[],"body":{"id":37120,"nodeType":"Block","src":"1153:2419:42","nodes":[],"statements":[{"assignments":[36943],"declarations":[{"constant":false,"id":36943,"mutability":"mutable","name":"ds","nameLocation":"1197:2:42","nodeType":"VariableDeclaration","scope":37120,"src":"1163:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36942,"nodeType":"UserDefinedTypeName","pathNode":{"id":36941,"name":"LibDiamond.DiamondStorage","nameLocations":["1163:10:42","1174:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"1163:25:42"},"referencedDeclaration":41072,"src":"1163:25:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36947,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36944,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1202:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1213:14:42","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"1202:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":36946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1202:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1163:66:42"},{"assignments":[36949],"declarations":[{"constant":false,"id":36949,"mutability":"mutable","name":"selectorCount","nameLocation":"1247:13:42","nodeType":"VariableDeclaration","scope":37120,"src":"1239:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36948,"name":"uint256","nodeType":"ElementaryTypeName","src":"1239:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36953,"initialValue":{"expression":{"expression":{"id":36950,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36943,"src":"1263:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1266:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"1263:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1276:6:42","memberName":"length","nodeType":"MemberAccess","src":"1263:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1239:43:42"},{"expression":{"id":36961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36954,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"1352:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":36959,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"1374:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1362:11:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamondLoupe.Facet memory[] memory)"},"typeName":{"baseType":{"id":36956,"nodeType":"UserDefinedTypeName","pathNode":{"id":36955,"name":"Facet","nameLocations":["1366:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":40197,"src":"1366:5:42"},"referencedDeclaration":40197,"src":"1366:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_storage_ptr","typeString":"struct IDiamondLoupe.Facet"}},"id":36957,"nodeType":"ArrayTypeName","src":"1366:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_storage_$dyn_storage_ptr","typeString":"struct IDiamondLoupe.Facet[]"}}},"id":36960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1362:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"src":"1352:36:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":36962,"nodeType":"ExpressionStatement","src":"1352:36:42"},{"assignments":[36967],"declarations":[{"constant":false,"id":36967,"mutability":"mutable","name":"numFacetSelectors","nameLocation":"1493:17:42","nodeType":"VariableDeclaration","scope":37120,"src":"1477:33:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[]"},"typeName":{"baseType":{"id":36965,"name":"uint16","nodeType":"ElementaryTypeName","src":"1477:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36966,"nodeType":"ArrayTypeName","src":"1477:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_storage_ptr","typeString":"uint16[]"}},"visibility":"internal"}],"id":36973,"initialValue":{"arguments":[{"id":36971,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"1526:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":36970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1513:12:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint16_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint16[] memory)"},"typeName":{"baseType":{"id":36968,"name":"uint16","nodeType":"ElementaryTypeName","src":"1517:6:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36969,"nodeType":"ArrayTypeName","src":"1517:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_storage_ptr","typeString":"uint16[]"}}},"id":36972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1513:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1477:63:42"},{"assignments":[36975],"declarations":[{"constant":false,"id":36975,"mutability":"mutable","name":"numFacets","nameLocation":"1592:9:42","nodeType":"VariableDeclaration","scope":37120,"src":"1584:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36974,"name":"uint256","nodeType":"ElementaryTypeName","src":"1584:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36976,"nodeType":"VariableDeclarationStatement","src":"1584:17:42"},{"body":{"id":37088,"nodeType":"Block","src":"1730:1216:42","statements":[{"assignments":[36987],"declarations":[{"constant":false,"id":36987,"mutability":"mutable","name":"selector","nameLocation":"1751:8:42","nodeType":"VariableDeclaration","scope":37088,"src":"1744:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36986,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1744:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":36992,"initialValue":{"baseExpression":{"expression":{"id":36988,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36943,"src":"1762:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1765:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"1762:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36991,"indexExpression":{"id":36990,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36978,"src":"1775:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1762:27:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"1744:45:42"},{"assignments":[36994],"declarations":[{"constant":false,"id":36994,"mutability":"mutable","name":"facetAddress_","nameLocation":"1811:13:42","nodeType":"VariableDeclaration","scope":37088,"src":"1803:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36993,"name":"address","nodeType":"ElementaryTypeName","src":"1803:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":37000,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36995,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36943,"src":"1827:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1830:31:42","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"1827:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36998,"indexExpression":{"id":36997,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36987,"src":"1862:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1827:44:42","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1872:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"1827:57:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1803:81:42"},{"assignments":[37002],"declarations":[{"constant":false,"id":37002,"mutability":"mutable","name":"continueLoop","nameLocation":"1903:12:42","nodeType":"VariableDeclaration","scope":37088,"src":"1898:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37001,"name":"bool","nodeType":"ElementaryTypeName","src":"1898:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":37003,"nodeType":"VariableDeclarationStatement","src":"1898:17:42"},{"body":{"id":37042,"nodeType":"Block","src":"2076:328:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":37013,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"2098:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37015,"indexExpression":{"id":37014,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2106:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2098:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2118:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40193,"src":"2098:32:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":37017,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36994,"src":"2134:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2098:49:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37041,"nodeType":"IfStatement","src":"2094:296:42","trueBody":{"id":37040,"nodeType":"Block","src":"2149:241:42","statements":[{"expression":{"id":37028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":37019,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"2171:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37021,"indexExpression":{"id":37020,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2179:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2171:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2191:17:42","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":40196,"src":"2171:37:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":37026,"indexExpression":{"baseExpression":{"id":37023,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36967,"src":"2209:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":37025,"indexExpression":{"id":37024,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2227:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2209:29:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2171:68:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37027,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36987,"src":"2242:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2171:79:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37029,"nodeType":"ExpressionStatement","src":"2171:79:42"},{"expression":{"id":37033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2272:31:42","subExpression":{"baseExpression":{"id":37030,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36967,"src":"2274:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":37032,"indexExpression":{"id":37031,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2292:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2274:29:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":37034,"nodeType":"ExpressionStatement","src":"2272:31:42"},{"expression":{"id":37037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37035,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37002,"src":"2325:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":37036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2340:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2325:19:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37038,"nodeType":"ExpressionStatement","src":"2325:19:42"},{"id":37039,"nodeType":"Break","src":"2366:5:42"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37007,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2038:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37008,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2051:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2038:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37043,"initializationExpression":{"assignments":[37005],"declarations":[{"constant":false,"id":37005,"mutability":"mutable","name":"facetIndex","nameLocation":"2026:10:42","nodeType":"VariableDeclaration","scope":37043,"src":"2018:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37004,"name":"uint256","nodeType":"ElementaryTypeName","src":"2018:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37006,"nodeType":"VariableDeclarationStatement","src":"2018:18:42"},"loopExpression":{"expression":{"id":37011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2062:12:42","subExpression":{"id":37010,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37005,"src":"2064:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37012,"nodeType":"ExpressionStatement","src":"2062:12:42"},"nodeType":"ForStatement","src":"2013:391:42"},{"condition":{"id":37044,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37002,"src":"2502:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37051,"nodeType":"IfStatement","src":"2498:97:42","trueBody":{"id":37050,"nodeType":"Block","src":"2516:79:42","statements":[{"expression":{"id":37047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37045,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37002,"src":"2534:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":37046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2549:5:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2534:20:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37048,"nodeType":"ExpressionStatement","src":"2534:20:42"},{"id":37049,"nodeType":"Continue","src":"2572:8:42"}]}},{"expression":{"id":37057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":37052,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"2673:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37054,"indexExpression":{"id":37053,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2681:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2673:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2692:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40193,"src":"2673:31:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37056,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36994,"src":"2707:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2673:47:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37058,"nodeType":"ExpressionStatement","src":"2673:47:42"},{"expression":{"id":37068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":37059,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"2734:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37061,"indexExpression":{"id":37060,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2742:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2734:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2753:17:42","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":40196,"src":"2734:36:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37066,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"2786:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2773:12:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes4[] memory)"},"typeName":{"baseType":{"id":37063,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2777:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37064,"nodeType":"ArrayTypeName","src":"2777:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}}},"id":37067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2773:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"2734:66:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":37069,"nodeType":"ExpressionStatement","src":"2734:66:42"},{"expression":{"id":37077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":37070,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"2814:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37072,"indexExpression":{"id":37071,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2822:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2814:18:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2833:17:42","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":40196,"src":"2814:36:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":37075,"indexExpression":{"hexValue":"30","id":37074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2851:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2814:39:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37076,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36987,"src":"2856:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2814:50:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37078,"nodeType":"ExpressionStatement","src":"2814:50:42"},{"expression":{"id":37083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37079,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36967,"src":"2878:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":37081,"indexExpression":{"id":37080,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2896:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2878:28:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":37082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2909:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2878:32:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":37084,"nodeType":"ExpressionStatement","src":"2878:32:42"},{"expression":{"id":37086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2924:11:42","subExpression":{"id":37085,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2926:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37087,"nodeType":"ExpressionStatement","src":"2924:11:42"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36980,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36978,"src":"1682:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":36981,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36949,"src":"1698:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1682:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37089,"initializationExpression":{"assignments":[36978],"declarations":[{"constant":false,"id":36978,"mutability":"mutable","name":"selectorIndex","nameLocation":"1667:13:42","nodeType":"VariableDeclaration","scope":37089,"src":"1659:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36977,"name":"uint256","nodeType":"ElementaryTypeName","src":"1659:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":36979,"nodeType":"VariableDeclarationStatement","src":"1659:21:42"},"loopExpression":{"expression":{"id":36984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1713:15:42","subExpression":{"id":36983,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36978,"src":"1715:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36985,"nodeType":"ExpressionStatement","src":"1713:15:42"},"nodeType":"ForStatement","src":"1654:1292:42"},{"body":{"id":37117,"nodeType":"Block","src":"3006:406:42","statements":[{"assignments":[37097],"declarations":[{"constant":false,"id":37097,"mutability":"mutable","name":"numSelectors","nameLocation":"3028:12:42","nodeType":"VariableDeclaration","scope":37117,"src":"3020:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37096,"name":"uint256","nodeType":"ElementaryTypeName","src":"3020:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37101,"initialValue":{"baseExpression":{"id":37098,"name":"numFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36967,"src":"3043:17:42","typeDescriptions":{"typeIdentifier":"t_array$_t_uint16_$dyn_memory_ptr","typeString":"uint16[] memory"}},"id":37100,"indexExpression":{"id":37099,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37091,"src":"3061:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3043:29:42","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3020:52:42"},{"assignments":[37106],"declarations":[{"constant":false,"id":37106,"mutability":"mutable","name":"selectors","nameLocation":"3102:9:42","nodeType":"VariableDeclaration","scope":37117,"src":"3086:25:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":37104,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3086:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37105,"nodeType":"ArrayTypeName","src":"3086:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"id":37111,"initialValue":{"expression":{"baseExpression":{"id":37107,"name":"facets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36937,"src":"3114:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory[] memory"}},"id":37109,"indexExpression":{"id":37108,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37091,"src":"3122:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3114:19:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_memory_ptr","typeString":"struct IDiamondLoupe.Facet memory"}},"id":37110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3134:17:42","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":40196,"src":"3114:37:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3086:65:42"},{"AST":{"nodeType":"YulBlock","src":"3271:63:42","statements":[{"expression":{"arguments":[{"name":"selectors","nodeType":"YulIdentifier","src":"3296:9:42"},{"name":"numSelectors","nodeType":"YulIdentifier","src":"3307:12:42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3289:6:42"},"nodeType":"YulFunctionCall","src":"3289:31:42"},"nodeType":"YulExpressionStatement","src":"3289:31:42"}]},"evmVersion":"paris","externalReferences":[{"declaration":37097,"isOffset":false,"isSlot":false,"src":"3307:12:42","valueSize":1},{"declaration":37106,"isOffset":false,"isSlot":false,"src":"3296:9:42","valueSize":1}],"id":37112,"nodeType":"InlineAssembly","src":"3262:72:42"},{"id":37116,"nodeType":"UncheckedBlock","src":"3347:55:42","statements":[{"expression":{"id":37114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3375:12:42","subExpression":{"id":37113,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37091,"src":"3377:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37115,"nodeType":"ExpressionStatement","src":"3375:12:42"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37093,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37091,"src":"2980:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37094,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36975,"src":"2993:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2980:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37118,"initializationExpression":{"assignments":[37091],"declarations":[{"constant":false,"id":37091,"mutability":"mutable","name":"facetIndex","nameLocation":"2968:10:42","nodeType":"VariableDeclaration","scope":37118,"src":"2960:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37090,"name":"uint256","nodeType":"ElementaryTypeName","src":"2960:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37092,"nodeType":"VariableDeclarationStatement","src":"2960:18:42"},"nodeType":"ForStatement","src":"2955:457:42"},{"AST":{"nodeType":"YulBlock","src":"3516:50:42","statements":[{"expression":{"arguments":[{"name":"facets_","nodeType":"YulIdentifier","src":"3537:7:42"},{"name":"numFacets","nodeType":"YulIdentifier","src":"3546:9:42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3530:6:42"},"nodeType":"YulFunctionCall","src":"3530:26:42"},"nodeType":"YulExpressionStatement","src":"3530:26:42"}]},"evmVersion":"paris","externalReferences":[{"declaration":36937,"isOffset":false,"isSlot":false,"src":"3537:7:42","valueSize":1},{"declaration":36975,"isOffset":false,"isSlot":false,"src":"3546:9:42","valueSize":1}],"id":37119,"nodeType":"InlineAssembly","src":"3507:59:42"}]},"baseFunctions":[40205],"documentation":{"id":36931,"nodeType":"StructuredDocumentation","src":"996:78:42","text":"@notice Gets all facets and their selectors.\n @return facets_ Facet"},"functionSelector":"7a0ed627","implemented":true,"kind":"function","modifiers":[],"name":"facets","nameLocation":"1088:6:42","overrides":{"id":36933,"nodeType":"OverrideSpecifier","overrides":[],"src":"1111:8:42"},"parameters":{"id":36932,"nodeType":"ParameterList","parameters":[],"src":"1094:2:42"},"returnParameters":{"id":36938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36937,"mutability":"mutable","name":"facets_","nameLocation":"1144:7:42","nodeType":"VariableDeclaration","scope":37121,"src":"1129:22:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet[]"},"typeName":{"baseType":{"id":36935,"nodeType":"UserDefinedTypeName","pathNode":{"id":36934,"name":"Facet","nameLocations":["1129:5:42"],"nodeType":"IdentifierPath","referencedDeclaration":40197,"src":"1129:5:42"},"referencedDeclaration":40197,"src":"1129:5:42","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_storage_ptr","typeString":"struct IDiamondLoupe.Facet"}},"id":36936,"nodeType":"ArrayTypeName","src":"1129:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_storage_$dyn_storage_ptr","typeString":"struct IDiamondLoupe.Facet[]"}},"visibility":"internal"}],"src":"1128:24:42"},"scope":37355,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37199,"nodeType":"FunctionDefinition","src":"3785:997:42","nodes":[],"body":{"id":37198,"nodeType":"Block","src":"3920:862:42","nodes":[],"statements":[{"assignments":[37135],"declarations":[{"constant":false,"id":37135,"mutability":"mutable","name":"ds","nameLocation":"3964:2:42","nodeType":"VariableDeclaration","scope":37198,"src":"3930:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":37134,"nodeType":"UserDefinedTypeName","pathNode":{"id":37133,"name":"LibDiamond.DiamondStorage","nameLocations":["3930:10:42","3941:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"3930:25:42"},"referencedDeclaration":41072,"src":"3930:25:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":37139,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37136,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"3969:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":37137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3980:14:42","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"3969:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":37138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3969:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3930:66:42"},{"assignments":[37141],"declarations":[{"constant":false,"id":37141,"mutability":"mutable","name":"selectorCount","nameLocation":"4014:13:42","nodeType":"VariableDeclaration","scope":37198,"src":"4006:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37140,"name":"uint256","nodeType":"ElementaryTypeName","src":"4006:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37145,"initialValue":{"expression":{"expression":{"id":37142,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37135,"src":"4030:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4033:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"4030:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":37144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4043:6:42","memberName":"length","nodeType":"MemberAccess","src":"4030:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4006:43:42"},{"assignments":[37147],"declarations":[{"constant":false,"id":37147,"mutability":"mutable","name":"numSelectors","nameLocation":"4067:12:42","nodeType":"VariableDeclaration","scope":37198,"src":"4059:20:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37146,"name":"uint256","nodeType":"ElementaryTypeName","src":"4059:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37148,"nodeType":"VariableDeclarationStatement","src":"4059:20:42"},{"expression":{"id":37155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37149,"name":"_facetFunctionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37129,"src":"4089:23:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37153,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37141,"src":"4128:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4115:12:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes4[] memory)"},"typeName":{"baseType":{"id":37150,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4119:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37151,"nodeType":"ArrayTypeName","src":"4119:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}}},"id":37154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4115:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4089:53:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":37156,"nodeType":"ExpressionStatement","src":"4089:53:42"},{"body":{"id":37195,"nodeType":"Block","src":"4271:320:42","statements":[{"assignments":[37167],"declarations":[{"constant":false,"id":37167,"mutability":"mutable","name":"selector","nameLocation":"4292:8:42","nodeType":"VariableDeclaration","scope":37195,"src":"4285:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":37166,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4285:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":37172,"initialValue":{"baseExpression":{"expression":{"id":37168,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37135,"src":"4303:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4306:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"4303:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":37171,"indexExpression":{"id":37170,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37158,"src":"4316:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4303:27:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"4285:45:42"},{"assignments":[37174],"declarations":[{"constant":false,"id":37174,"mutability":"mutable","name":"facetAddress_","nameLocation":"4352:13:42","nodeType":"VariableDeclaration","scope":37195,"src":"4344:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37173,"name":"address","nodeType":"ElementaryTypeName","src":"4344:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":37180,"initialValue":{"expression":{"baseExpression":{"expression":{"id":37175,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37135,"src":"4368:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4371:31:42","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"4368:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":37178,"indexExpression":{"id":37177,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37167,"src":"4403:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4368:44:42","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":37179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4413:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"4368:57:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4344:81:42"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37181,"name":"_facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37124,"src":"4443:6:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":37182,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37174,"src":"4453:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4443:23:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37194,"nodeType":"IfStatement","src":"4439:142:42","trueBody":{"id":37193,"nodeType":"Block","src":"4468:113:42","statements":[{"expression":{"id":37188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37184,"name":"_facetFunctionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37129,"src":"4486:23:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":37186,"indexExpression":{"id":37185,"name":"numSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37147,"src":"4510:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4486:37:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37187,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37167,"src":"4526:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4486:48:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37189,"nodeType":"ExpressionStatement","src":"4486:48:42"},{"expression":{"id":37191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4552:14:42","subExpression":{"id":37190,"name":"numSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37147,"src":"4554:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37192,"nodeType":"ExpressionStatement","src":"4552:14:42"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37160,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37158,"src":"4223:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37161,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37141,"src":"4239:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4223:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37196,"initializationExpression":{"assignments":[37158],"declarations":[{"constant":false,"id":37158,"mutability":"mutable","name":"selectorIndex","nameLocation":"4208:13:42","nodeType":"VariableDeclaration","scope":37196,"src":"4200:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37157,"name":"uint256","nodeType":"ElementaryTypeName","src":"4200:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37159,"nodeType":"VariableDeclarationStatement","src":"4200:21:42"},"loopExpression":{"expression":{"id":37164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4254:15:42","subExpression":{"id":37163,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37158,"src":"4256:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37165,"nodeType":"ExpressionStatement","src":"4254:15:42"},"nodeType":"ForStatement","src":"4195:396:42"},{"AST":{"nodeType":"YulBlock","src":"4707:69:42","statements":[{"expression":{"arguments":[{"name":"_facetFunctionSelectors","nodeType":"YulIdentifier","src":"4728:23:42"},{"name":"numSelectors","nodeType":"YulIdentifier","src":"4753:12:42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4721:6:42"},"nodeType":"YulFunctionCall","src":"4721:45:42"},"nodeType":"YulExpressionStatement","src":"4721:45:42"}]},"evmVersion":"paris","externalReferences":[{"declaration":37129,"isOffset":false,"isSlot":false,"src":"4728:23:42","valueSize":1},{"declaration":37147,"isOffset":false,"isSlot":false,"src":"4753:12:42","valueSize":1}],"id":37197,"nodeType":"InlineAssembly","src":"4698:78:42"}]},"baseFunctions":[40214],"documentation":{"id":37122,"nodeType":"StructuredDocumentation","src":"3578:202:42","text":"@notice Gets all the function selectors supported by a specific facet.\n @param _facet The facet address.\n @return _facetFunctionSelectors The selectors associated with a facet address."},"functionSelector":"adfca15e","implemented":true,"kind":"function","modifiers":[],"name":"facetFunctionSelectors","nameLocation":"3794:22:42","overrides":{"id":37126,"nodeType":"OverrideSpecifier","overrides":[],"src":"3861:8:42"},"parameters":{"id":37125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37124,"mutability":"mutable","name":"_facet","nameLocation":"3834:6:42","nodeType":"VariableDeclaration","scope":37199,"src":"3826:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37123,"name":"address","nodeType":"ElementaryTypeName","src":"3826:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3816:30:42"},"returnParameters":{"id":37130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37129,"mutability":"mutable","name":"_facetFunctionSelectors","nameLocation":"3895:23:42","nodeType":"VariableDeclaration","scope":37199,"src":"3879:39:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":37127,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3879:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":37128,"nodeType":"ArrayTypeName","src":"3879:8:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"3878:41:42"},"scope":37355,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37304,"nodeType":"FunctionDefinition","src":"4883:1495:42","nodes":[],"body":{"id":37303,"nodeType":"Block","src":"4975:1403:42","nodes":[],"statements":[{"assignments":[37211],"declarations":[{"constant":false,"id":37211,"mutability":"mutable","name":"ds","nameLocation":"5019:2:42","nodeType":"VariableDeclaration","scope":37303,"src":"4985:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":37210,"nodeType":"UserDefinedTypeName","pathNode":{"id":37209,"name":"LibDiamond.DiamondStorage","nameLocations":["4985:10:42","4996:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"4985:25:42"},"referencedDeclaration":41072,"src":"4985:25:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":37215,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37212,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"5024:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":37213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5035:14:42","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"5024:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":37214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5024:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4985:66:42"},{"assignments":[37217],"declarations":[{"constant":false,"id":37217,"mutability":"mutable","name":"selectorCount","nameLocation":"5069:13:42","nodeType":"VariableDeclaration","scope":37303,"src":"5061:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37216,"name":"uint256","nodeType":"ElementaryTypeName","src":"5061:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37221,"initialValue":{"expression":{"expression":{"id":37218,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37211,"src":"5085:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5088:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"5085:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":37220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5098:6:42","memberName":"length","nodeType":"MemberAccess","src":"5085:19:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5061:43:42"},{"expression":{"id":37228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37222,"name":"facetAddresses_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37205,"src":"5174:15:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":37226,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37217,"src":"5206:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5192:13:42","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":37223,"name":"address","nodeType":"ElementaryTypeName","src":"5196:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37224,"nodeType":"ArrayTypeName","src":"5196:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":37227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5192:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5174:46:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":37229,"nodeType":"ExpressionStatement","src":"5174:46:42"},{"assignments":[37231],"declarations":[{"constant":false,"id":37231,"mutability":"mutable","name":"numFacets","nameLocation":"5238:9:42","nodeType":"VariableDeclaration","scope":37303,"src":"5230:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37230,"name":"uint256","nodeType":"ElementaryTypeName","src":"5230:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37232,"nodeType":"VariableDeclarationStatement","src":"5230:17:42"},{"body":{"id":37300,"nodeType":"Block","src":"5376:816:42","statements":[{"assignments":[37243],"declarations":[{"constant":false,"id":37243,"mutability":"mutable","name":"selector","nameLocation":"5397:8:42","nodeType":"VariableDeclaration","scope":37300,"src":"5390:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":37242,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5390:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":37248,"initialValue":{"baseExpression":{"expression":{"id":37244,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37211,"src":"5408:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5411:9:42","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"5408:12:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":37247,"indexExpression":{"id":37246,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37234,"src":"5421:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5408:27:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"5390:45:42"},{"assignments":[37250],"declarations":[{"constant":false,"id":37250,"mutability":"mutable","name":"facetAddress_","nameLocation":"5457:13:42","nodeType":"VariableDeclaration","scope":37300,"src":"5449:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37249,"name":"address","nodeType":"ElementaryTypeName","src":"5449:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":37256,"initialValue":{"expression":{"baseExpression":{"expression":{"id":37251,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37211,"src":"5473:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5476:31:42","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"5473:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":37254,"indexExpression":{"id":37253,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37243,"src":"5508:8:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5473:44:42","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":37255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5518:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"5473:57:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5449:81:42"},{"assignments":[37258],"declarations":[{"constant":false,"id":37258,"mutability":"mutable","name":"continueLoop","nameLocation":"5549:12:42","nodeType":"VariableDeclaration","scope":37300,"src":"5544:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37257,"name":"bool","nodeType":"ElementaryTypeName","src":"5544:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":37259,"nodeType":"VariableDeclarationStatement","src":"5544:17:42"},{"body":{"id":37281,"nodeType":"Block","src":"5731:169:42","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":37273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37269,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37250,"src":"5753:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":37270,"name":"facetAddresses_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37205,"src":"5770:15:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":37272,"indexExpression":{"id":37271,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37261,"src":"5786:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5770:27:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5753:44:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37280,"nodeType":"IfStatement","src":"5749:137:42","trueBody":{"id":37279,"nodeType":"Block","src":"5799:87:42","statements":[{"expression":{"id":37276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37274,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37258,"src":"5821:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":37275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5836:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5821:19:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37277,"nodeType":"ExpressionStatement","src":"5821:19:42"},{"id":37278,"nodeType":"Break","src":"5862:5:42"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37263,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37261,"src":"5693:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37264,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37231,"src":"5706:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5693:22:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37282,"initializationExpression":{"assignments":[37261],"declarations":[{"constant":false,"id":37261,"mutability":"mutable","name":"facetIndex","nameLocation":"5681:10:42","nodeType":"VariableDeclaration","scope":37282,"src":"5673:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37260,"name":"uint256","nodeType":"ElementaryTypeName","src":"5673:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37262,"nodeType":"VariableDeclarationStatement","src":"5673:18:42"},"loopExpression":{"expression":{"id":37267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5717:12:42","subExpression":{"id":37266,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37261,"src":"5719:10:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37268,"nodeType":"ExpressionStatement","src":"5717:12:42"},"nodeType":"ForStatement","src":"5668:232:42"},{"condition":{"id":37283,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37258,"src":"5977:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37290,"nodeType":"IfStatement","src":"5973:97:42","trueBody":{"id":37289,"nodeType":"Block","src":"5991:79:42","statements":[{"expression":{"id":37286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37284,"name":"continueLoop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37258,"src":"6009:12:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":37285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6024:5:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6009:20:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37287,"nodeType":"ExpressionStatement","src":"6009:20:42"},{"id":37288,"nodeType":"Continue","src":"6047:8:42"}]}},{"expression":{"id":37295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37291,"name":"facetAddresses_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37205,"src":"6114:15:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":37293,"indexExpression":{"id":37292,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37231,"src":"6130:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6114:26:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37294,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37250,"src":"6143:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6114:42:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37296,"nodeType":"ExpressionStatement","src":"6114:42:42"},{"expression":{"id":37298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6170:11:42","subExpression":{"id":37297,"name":"numFacets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37231,"src":"6172:9:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37299,"nodeType":"ExpressionStatement","src":"6170:11:42"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37236,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37234,"src":"5328:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37237,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37217,"src":"5344:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5328:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37301,"initializationExpression":{"assignments":[37234],"declarations":[{"constant":false,"id":37234,"mutability":"mutable","name":"selectorIndex","nameLocation":"5313:13:42","nodeType":"VariableDeclaration","scope":37301,"src":"5305:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37233,"name":"uint256","nodeType":"ElementaryTypeName","src":"5305:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37235,"nodeType":"VariableDeclarationStatement","src":"5305:21:42"},"loopExpression":{"expression":{"id":37240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5359:15:42","subExpression":{"id":37239,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37234,"src":"5361:13:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37241,"nodeType":"ExpressionStatement","src":"5359:15:42"},"nodeType":"ForStatement","src":"5300:892:42"},{"AST":{"nodeType":"YulBlock","src":"6314:58:42","statements":[{"expression":{"arguments":[{"name":"facetAddresses_","nodeType":"YulIdentifier","src":"6335:15:42"},{"name":"numFacets","nodeType":"YulIdentifier","src":"6352:9:42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6328:6:42"},"nodeType":"YulFunctionCall","src":"6328:34:42"},"nodeType":"YulExpressionStatement","src":"6328:34:42"}]},"evmVersion":"paris","externalReferences":[{"declaration":37205,"isOffset":false,"isSlot":false,"src":"6335:15:42","valueSize":1},{"declaration":37231,"isOffset":false,"isSlot":false,"src":"6352:9:42","valueSize":1}],"id":37302,"nodeType":"InlineAssembly","src":"6305:67:42"}]},"baseFunctions":[40221],"documentation":{"id":37200,"nodeType":"StructuredDocumentation","src":"4788:90:42","text":"@notice Get all the facet addresses used by a diamond.\n @return facetAddresses_"},"functionSelector":"52ef6b2c","implemented":true,"kind":"function","modifiers":[],"name":"facetAddresses","nameLocation":"4892:14:42","overrides":{"id":37202,"nodeType":"OverrideSpecifier","overrides":[],"src":"4923:8:42"},"parameters":{"id":37201,"nodeType":"ParameterList","parameters":[],"src":"4906:2:42"},"returnParameters":{"id":37206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37205,"mutability":"mutable","name":"facetAddresses_","nameLocation":"4958:15:42","nodeType":"VariableDeclaration","scope":37304,"src":"4941:32:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":37203,"name":"address","nodeType":"ElementaryTypeName","src":"4941:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37204,"nodeType":"ArrayTypeName","src":"4941:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4940:34:42"},"scope":37355,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37331,"nodeType":"FunctionDefinition","src":"6616:278:42","nodes":[],"body":{"id":37330,"nodeType":"Block","src":"6719:175:42","nodes":[],"statements":[{"assignments":[37317],"declarations":[{"constant":false,"id":37317,"mutability":"mutable","name":"ds","nameLocation":"6763:2:42","nodeType":"VariableDeclaration","scope":37330,"src":"6729:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":37316,"nodeType":"UserDefinedTypeName","pathNode":{"id":37315,"name":"LibDiamond.DiamondStorage","nameLocations":["6729:10:42","6740:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"6729:25:42"},"referencedDeclaration":41072,"src":"6729:25:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":37321,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37318,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"6768:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":37319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6779:14:42","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"6768:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":37320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6768:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6729:66:42"},{"expression":{"id":37328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37322,"name":"facetAddress_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37311,"src":"6805:13:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":37323,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37317,"src":"6821:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6824:31:42","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"6821:34:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":37326,"indexExpression":{"id":37325,"name":"_functionSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37307,"src":"6856:17:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6821:53:42","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":37327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6875:12:42","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"6821:66:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6805:82:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37329,"nodeType":"ExpressionStatement","src":"6805:82:42"}]},"baseFunctions":[40229],"documentation":{"id":37305,"nodeType":"StructuredDocumentation","src":"6384:227:42","text":"@notice Gets the facet address that supports the given selector.\n @dev If facet is not found return address(0).\n @param _functionSelector The function selector.\n @return facetAddress_ The facet address."},"functionSelector":"cdffacc6","implemented":true,"kind":"function","modifiers":[],"name":"facetAddress","nameLocation":"6625:12:42","overrides":{"id":37309,"nodeType":"OverrideSpecifier","overrides":[],"src":"6678:8:42"},"parameters":{"id":37308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37307,"mutability":"mutable","name":"_functionSelector","nameLocation":"6645:17:42","nodeType":"VariableDeclaration","scope":37331,"src":"6638:24:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":37306,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6638:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6637:26:42"},"returnParameters":{"id":37312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37311,"mutability":"mutable","name":"facetAddress_","nameLocation":"6704:13:42","nodeType":"VariableDeclaration","scope":37331,"src":"6696:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37310,"name":"address","nodeType":"ElementaryTypeName","src":"6696:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6695:23:42"},"scope":37355,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37354,"nodeType":"FunctionDefinition","src":"6932:222:42","nodes":[],"body":{"id":37353,"nodeType":"Block","src":"7018:136:42","nodes":[],"statements":[{"assignments":[37343],"declarations":[{"constant":false,"id":37343,"mutability":"mutable","name":"ds","nameLocation":"7062:2:42","nodeType":"VariableDeclaration","scope":37353,"src":"7028:36:42","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":37342,"nodeType":"UserDefinedTypeName","pathNode":{"id":37341,"name":"LibDiamond.DiamondStorage","nameLocations":["7028:10:42","7039:14:42"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"7028:25:42"},"referencedDeclaration":41072,"src":"7028:25:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":37347,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37344,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"7067:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":37345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7078:14:42","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"7067:25:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":37346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7067:27:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7028:66:42"},{"expression":{"baseExpression":{"expression":{"id":37348,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37343,"src":"7111:2:42","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":37349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7114:19:42","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"7111:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":37351,"indexExpression":{"id":37350,"name":"_interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37333,"src":"7134:12:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7111:36:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":37338,"id":37352,"nodeType":"Return","src":"7104:43:42"}]},"baseFunctions":[40240],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"6941:17:42","overrides":{"id":37335,"nodeType":"OverrideSpecifier","overrides":[],"src":"6994:8:42"},"parameters":{"id":37334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37333,"mutability":"mutable","name":"_interfaceId","nameLocation":"6966:12:42","nodeType":"VariableDeclaration","scope":37354,"src":"6959:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":37332,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6959:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6958:21:42"},"returnParameters":{"id":37338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37337,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37354,"src":"7012:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37336,"name":"bool","nodeType":"ElementaryTypeName","src":"7012:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7011:6:42"},"scope":37355,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":36927,"name":"IDiamondLoupe","nameLocations":["682:13:42"],"nodeType":"IdentifierPath","referencedDeclaration":40230,"src":"682:13:42"},"id":36928,"nodeType":"InheritanceSpecifier","src":"682:13:42"},{"baseName":{"id":36929,"name":"IERC165","nameLocations":["697:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":40241,"src":"697:7:42"},"id":36930,"nodeType":"InheritanceSpecifier","src":"697:7:42"}],"canonicalName":"DiamondLoupeFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[37355,40241,40230],"name":"DiamondLoupeFacet","nameLocation":"661:17:42","scope":37356,"usedErrors":[]}],"license":"MIT"},"id":42} \ No newline at end of file diff --git a/.out/ECDSA.sol/ECDSA.json b/.out/ECDSA.sol/ECDSA.json index f174d14ab..09b3160c9 100644 --- a/.out/ECDSA.sol/ECDSA.json +++ b/.out/ECDSA.sol/ECDSA.json @@ -1 +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":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220bc9ec29de3dbee8bc918d42ba6cc1e9d545960fe84c3af32ceefab22a66c1d3864736f6c63430008130033","sourceMap":"370:9444:29:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220bc9ec29de3dbee8bc918d42ba6cc1e9d545960fe84c3af32ceefab22a66c1d3864736f6c63430008130033","sourceMap":"370:9444:29:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":"ECDSA"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","id":33097,"exportedSymbols":{"ECDSA":[33096],"Math":[34668],"SignedMath":[34773],"Strings":[32684]},"nodeType":"SourceUnit","src":"112:9703:29","nodes":[{"id":32686,"nodeType":"PragmaDirective","src":"112:24:29","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":32687,"nodeType":"ImportDirective","src":"138:24:29","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","file":"../Strings.sol","nameLocation":"-1:-1:-1","scope":33097,"sourceUnit":32685,"symbolAliases":[],"unitAlias":""},{"id":33096,"nodeType":"ContractDefinition","src":"370:9444:29","nodes":[{"id":32693,"nodeType":"EnumDefinition","src":"390:126:29","nodes":[],"canonicalName":"ECDSA.RecoverError","members":[{"id":32689,"name":"NoError","nameLocation":"418:7:29","nodeType":"EnumValue","src":"418:7:29"},{"id":32690,"name":"InvalidSignature","nameLocation":"435:16:29","nodeType":"EnumValue","src":"435:16:29"},{"id":32691,"name":"InvalidSignatureLength","nameLocation":"461:22:29","nodeType":"EnumValue","src":"461:22:29"},{"id":32692,"name":"InvalidSignatureS","nameLocation":"493:17:29","nodeType":"EnumValue","src":"493:17:29"}],"name":"RecoverError","nameLocation":"395:12:29"},{"id":32696,"nodeType":"ErrorDefinition","src":"590:30:29","nodes":[],"documentation":{"id":32694,"nodeType":"StructuredDocumentation","src":"522:63:29","text":" @dev The signature derives the `address(0)`."},"errorSelector":"f645eedf","name":"ECDSAInvalidSignature","nameLocation":"596:21:29","parameters":{"id":32695,"nodeType":"ParameterList","parameters":[],"src":"617:2:29"}},{"id":32701,"nodeType":"ErrorDefinition","src":"691:50:29","nodes":[],"documentation":{"id":32697,"nodeType":"StructuredDocumentation","src":"626:60:29","text":" @dev The signature has an invalid length."},"errorSelector":"fce698f7","name":"ECDSAInvalidSignatureLength","nameLocation":"697:27:29","parameters":{"id":32700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32699,"mutability":"mutable","name":"length","nameLocation":"733:6:29","nodeType":"VariableDeclaration","scope":32701,"src":"725:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32698,"name":"uint256","nodeType":"ElementaryTypeName","src":"725:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"724:16:29"}},{"id":32706,"nodeType":"ErrorDefinition","src":"837:40:29","nodes":[],"documentation":{"id":32702,"nodeType":"StructuredDocumentation","src":"747:85:29","text":" @dev The signature has an S value that is in the upper half order."},"errorSelector":"d78bce0c","name":"ECDSAInvalidSignatureS","nameLocation":"843:22:29","parameters":{"id":32705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32704,"mutability":"mutable","name":"s","nameLocation":"874:1:29","nodeType":"VariableDeclaration","scope":32706,"src":"866:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32703,"name":"bytes32","nodeType":"ElementaryTypeName","src":"866:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"865:11:29"}},{"id":32754,"nodeType":"FunctionDefinition","src":"883:532:29","nodes":[],"body":{"id":32753,"nodeType":"Block","src":"955:460:29","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},"id":32717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32714,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32709,"src":"969:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":32715,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32693,"src":"978:12:29","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$32693_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":32716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"991:7:29","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":32689,"src":"978:20:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"src":"969:29:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},"id":32723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32720,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32709,"src":"1065:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":32721,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32693,"src":"1074:12:29","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$32693_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":32722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1087:16:29","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":32690,"src":"1074:29:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"src":"1065:38:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},"id":32731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32728,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32709,"src":"1170:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":32729,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32693,"src":"1179:12:29","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$32693_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":32730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1192:22:29","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":32691,"src":"1179:35:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"src":"1170:44:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},"id":32743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32740,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32709,"src":"1304:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":32741,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32693,"src":"1313:12:29","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$32693_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":32742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1326:17:29","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":32692,"src":"1313:30:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"src":"1304:39:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32749,"nodeType":"IfStatement","src":"1300:109:29","trueBody":{"id":32748,"nodeType":"Block","src":"1345:64:29","statements":[{"errorCall":{"arguments":[{"id":32745,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32711,"src":"1389:8:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":32744,"name":"ECDSAInvalidSignatureS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32706,"src":"1366:22:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$__$","typeString":"function (bytes32) pure"}},"id":32746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:32:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32747,"nodeType":"RevertStatement","src":"1359:39:29"}]}},"id":32750,"nodeType":"IfStatement","src":"1166:243:29","trueBody":{"id":32739,"nodeType":"Block","src":"1216:78:29","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":32735,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32711,"src":"1273:8:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":32734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1265:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32733,"name":"uint256","nodeType":"ElementaryTypeName","src":"1265:7:29","typeDescriptions":{}}},"id":32736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1265:17:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32732,"name":"ECDSAInvalidSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32701,"src":"1237:27:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":32737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1237:46:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32738,"nodeType":"RevertStatement","src":"1230:53:29"}]}},"id":32751,"nodeType":"IfStatement","src":"1061:348:29","trueBody":{"id":32727,"nodeType":"Block","src":"1105:55:29","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":32724,"name":"ECDSAInvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32696,"src":"1126:21:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":32725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1126:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32726,"nodeType":"RevertStatement","src":"1119:30:29"}]}},"id":32752,"nodeType":"IfStatement","src":"965:444:29","trueBody":{"id":32719,"nodeType":"Block","src":"1000:55:29","statements":[{"functionReturnParameters":32713,"id":32718,"nodeType":"Return","src":"1014:7:29"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_throwError","nameLocation":"892:11:29","parameters":{"id":32712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32709,"mutability":"mutable","name":"error","nameLocation":"917:5:29","nodeType":"VariableDeclaration","scope":32754,"src":"904:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":32708,"nodeType":"UserDefinedTypeName","pathNode":{"id":32707,"name":"RecoverError","nameLocations":["904:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":32693,"src":"904:12:29"},"referencedDeclaration":32693,"src":"904:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":32711,"mutability":"mutable","name":"errorArg","nameLocation":"932:8:29","nodeType":"VariableDeclaration","scope":32754,"src":"924:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"924:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"903:38:29"},"returnParameters":{"id":32713,"nodeType":"ParameterList","parameters":[],"src":"955:0:29"},"scope":33096,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":32807,"nodeType":"FunctionDefinition","src":"2483:766:29","nodes":[],"body":{"id":32806,"nodeType":"Block","src":"2596:653:29","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":32769,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32759,"src":"2610:9:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2620:6:29","memberName":"length","nodeType":"MemberAccess","src":"2610:16:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3635","id":32771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2630:2:29","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"2610:22:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":32804,"nodeType":"Block","src":"3135:108:29","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":32793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3165:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3157:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32791,"name":"address","nodeType":"ElementaryTypeName","src":"3157:7:29","typeDescriptions":{}}},"id":32794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3157:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":32795,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32693,"src":"3169:12:29","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$32693_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":32796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3182:22:29","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":32691,"src":"3169:35:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"expression":{"id":32799,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32759,"src":"3214:9:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3224:6:29","memberName":"length","nodeType":"MemberAccess","src":"3214:16:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3206:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":32797,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3206:7:29","typeDescriptions":{}}},"id":32801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3206:25:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":32802,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3156:76:29","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":32768,"id":32803,"nodeType":"Return","src":"3149:83:29"}]},"id":32805,"nodeType":"IfStatement","src":"2606:637:29","trueBody":{"id":32790,"nodeType":"Block","src":"2634:495:29","statements":[{"assignments":[32774],"declarations":[{"constant":false,"id":32774,"mutability":"mutable","name":"r","nameLocation":"2656:1:29","nodeType":"VariableDeclaration","scope":32790,"src":"2648:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32773,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2648:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":32775,"nodeType":"VariableDeclarationStatement","src":"2648:9:29"},{"assignments":[32777],"declarations":[{"constant":false,"id":32777,"mutability":"mutable","name":"s","nameLocation":"2679:1:29","nodeType":"VariableDeclaration","scope":32790,"src":"2671:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32776,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2671:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":32778,"nodeType":"VariableDeclarationStatement","src":"2671:9:29"},{"assignments":[32780],"declarations":[{"constant":false,"id":32780,"mutability":"mutable","name":"v","nameLocation":"2700:1:29","nodeType":"VariableDeclaration","scope":32790,"src":"2694:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":32779,"name":"uint8","nodeType":"ElementaryTypeName","src":"2694:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":32781,"nodeType":"VariableDeclarationStatement","src":"2694:7:29"},{"AST":{"nodeType":"YulBlock","src":"2902:171:29","statements":[{"nodeType":"YulAssignment","src":"2920:32:29","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2935:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2946:4:29","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2931:3:29"},"nodeType":"YulFunctionCall","src":"2931:20:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2925:5:29"},"nodeType":"YulFunctionCall","src":"2925:27:29"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"2920:1:29"}]},{"nodeType":"YulAssignment","src":"2969:32:29","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2984:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"2995:4:29","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2980:3:29"},"nodeType":"YulFunctionCall","src":"2980:20:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2974:5:29"},"nodeType":"YulFunctionCall","src":"2974:27:29"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"2969:1:29"}]},{"nodeType":"YulAssignment","src":"3018:41:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3028:1:29","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"3041:9:29"},{"kind":"number","nodeType":"YulLiteral","src":"3052:4:29","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3037:3:29"},"nodeType":"YulFunctionCall","src":"3037:20:29"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3031:5:29"},"nodeType":"YulFunctionCall","src":"3031:27:29"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"3023:4:29"},"nodeType":"YulFunctionCall","src":"3023:36:29"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"3018:1:29"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":32774,"isOffset":false,"isSlot":false,"src":"2920:1:29","valueSize":1},{"declaration":32777,"isOffset":false,"isSlot":false,"src":"2969:1:29","valueSize":1},{"declaration":32759,"isOffset":false,"isSlot":false,"src":"2935:9:29","valueSize":1},{"declaration":32759,"isOffset":false,"isSlot":false,"src":"2984:9:29","valueSize":1},{"declaration":32759,"isOffset":false,"isSlot":false,"src":"3041:9:29","valueSize":1},{"declaration":32780,"isOffset":false,"isSlot":false,"src":"3018:1:29","valueSize":1}],"id":32782,"nodeType":"InlineAssembly","src":"2893:180:29"},{"expression":{"arguments":[{"id":32784,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32757,"src":"3104:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":32785,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32780,"src":"3110:1:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":32786,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32774,"src":"3113:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":32787,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32777,"src":"3116:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":32783,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[32807,32887,32995],"referencedDeclaration":32995,"src":"3093:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":32788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3093:25:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":32768,"id":32789,"nodeType":"Return","src":"3086:32:29"}]}}]},"documentation":{"id":32755,"nodeType":"StructuredDocumentation","src":"1421:1057:29","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature` or error string. This address can then be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it.\n Documentation for signature generation:\n - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n _Available since v4.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"2492:10:29","parameters":{"id":32760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32757,"mutability":"mutable","name":"hash","nameLocation":"2511:4:29","nodeType":"VariableDeclaration","scope":32807,"src":"2503:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2503:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32759,"mutability":"mutable","name":"signature","nameLocation":"2530:9:29","nodeType":"VariableDeclaration","scope":32807,"src":"2517:22:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32758,"name":"bytes","nodeType":"ElementaryTypeName","src":"2517:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2502:38:29"},"returnParameters":{"id":32768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32762,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32807,"src":"2564:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32761,"name":"address","nodeType":"ElementaryTypeName","src":"2564:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32765,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32807,"src":"2573:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":32764,"nodeType":"UserDefinedTypeName","pathNode":{"id":32763,"name":"RecoverError","nameLocations":["2573:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":32693,"src":"2573:12:29"},"referencedDeclaration":32693,"src":"2573:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":32767,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32807,"src":"2587:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2587:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2563:32:29"},"scope":33096,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32837,"nodeType":"FunctionDefinition","src":"4039:255:29","nodes":[],"body":{"id":32836,"nodeType":"Block","src":"4126:168:29","nodes":[],"statements":[{"assignments":[32818,32821,32823],"declarations":[{"constant":false,"id":32818,"mutability":"mutable","name":"recovered","nameLocation":"4145:9:29","nodeType":"VariableDeclaration","scope":32836,"src":"4137:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32817,"name":"address","nodeType":"ElementaryTypeName","src":"4137:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32821,"mutability":"mutable","name":"error","nameLocation":"4169:5:29","nodeType":"VariableDeclaration","scope":32836,"src":"4156:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":32820,"nodeType":"UserDefinedTypeName","pathNode":{"id":32819,"name":"RecoverError","nameLocations":["4156:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":32693,"src":"4156:12:29"},"referencedDeclaration":32693,"src":"4156:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":32823,"mutability":"mutable","name":"errorArg","nameLocation":"4184:8:29","nodeType":"VariableDeclaration","scope":32836,"src":"4176:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32822,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4176:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":32828,"initialValue":{"arguments":[{"id":32825,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32810,"src":"4207:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":32826,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32812,"src":"4213:9:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":32824,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[32807,32887,32995],"referencedDeclaration":32807,"src":"4196:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":32827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4196:27:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"4136:87:29"},{"expression":{"arguments":[{"id":32830,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32821,"src":"4245:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},{"id":32831,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32823,"src":"4252:8:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":32829,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32754,"src":"4233:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$32693_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":32832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4233:28:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32833,"nodeType":"ExpressionStatement","src":"4233:28:29"},{"expression":{"id":32834,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32818,"src":"4278:9:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":32816,"id":32835,"nodeType":"Return","src":"4271:16:29"}]},"documentation":{"id":32808,"nodeType":"StructuredDocumentation","src":"3255:779:29","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it."},"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"4048:7:29","parameters":{"id":32813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32810,"mutability":"mutable","name":"hash","nameLocation":"4064:4:29","nodeType":"VariableDeclaration","scope":32837,"src":"4056:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32809,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4056:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32812,"mutability":"mutable","name":"signature","nameLocation":"4083:9:29","nodeType":"VariableDeclaration","scope":32837,"src":"4070:22:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32811,"name":"bytes","nodeType":"ElementaryTypeName","src":"4070:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4055:38:29"},"returnParameters":{"id":32816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32815,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32837,"src":"4117:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32814,"name":"address","nodeType":"ElementaryTypeName","src":"4117:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4116:9:29"},"scope":33096,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32887,"nodeType":"FunctionDefinition","src":"4548:454:29","nodes":[],"body":{"id":32886,"nodeType":"Block","src":"4660:342:29","nodes":[],"statements":[{"id":32885,"nodeType":"UncheckedBlock","src":"4670:326:29","statements":[{"assignments":[32855],"declarations":[{"constant":false,"id":32855,"mutability":"mutable","name":"s","nameLocation":"4702:1:29","nodeType":"VariableDeclaration","scope":32885,"src":"4694:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32854,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4694:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":32862,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":32861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32856,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32844,"src":"4706:2:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"hexValue":"307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":32859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4719:66:29","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"},"value":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}],"id":32858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4711:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":32857,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4711:7:29","typeDescriptions":{}}},"id":32860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4711:75:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4706:80:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4694:92:29"},{"assignments":[32864],"declarations":[{"constant":false,"id":32864,"mutability":"mutable","name":"v","nameLocation":"4903:1:29","nodeType":"VariableDeclaration","scope":32885,"src":"4897:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":32863,"name":"uint8","nodeType":"ElementaryTypeName","src":"4897:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":32877,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":32869,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32844,"src":"4922:2:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":32868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4914:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32867,"name":"uint256","nodeType":"ElementaryTypeName","src":"4914:7:29","typeDescriptions":{}}},"id":32870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4914:11:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":32871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4929:3:29","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4914:18:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":32873,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4913:20:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3237","id":32874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4936:2:29","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4913:25:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4907:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":32865,"name":"uint8","nodeType":"ElementaryTypeName","src":"4907:5:29","typeDescriptions":{}}},"id":32876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4907:32:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4897:42:29"},{"expression":{"arguments":[{"id":32879,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32840,"src":"4971:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":32880,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32864,"src":"4977:1:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":32881,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32842,"src":"4980:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":32882,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32855,"src":"4983:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":32878,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[32807,32887,32995],"referencedDeclaration":32995,"src":"4960:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":32883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4960:25:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":32853,"id":32884,"nodeType":"Return","src":"4953:32:29"}]}]},"documentation":{"id":32838,"nodeType":"StructuredDocumentation","src":"4300:243:29","text":" @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n _Available since v4.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"4557:10:29","parameters":{"id":32845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32840,"mutability":"mutable","name":"hash","nameLocation":"4576:4:29","nodeType":"VariableDeclaration","scope":32887,"src":"4568:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32839,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4568:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32842,"mutability":"mutable","name":"r","nameLocation":"4590:1:29","nodeType":"VariableDeclaration","scope":32887,"src":"4582:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32841,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4582:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32844,"mutability":"mutable","name":"vs","nameLocation":"4601:2:29","nodeType":"VariableDeclaration","scope":32887,"src":"4593:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4593:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4567:37:29"},"returnParameters":{"id":32853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32887,"src":"4628:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32846,"name":"address","nodeType":"ElementaryTypeName","src":"4628:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32850,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32887,"src":"4637:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":32849,"nodeType":"UserDefinedTypeName","pathNode":{"id":32848,"name":"RecoverError","nameLocations":["4637:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":32693,"src":"4637:12:29"},"referencedDeclaration":32693,"src":"4637:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":32852,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32887,"src":"4651:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4651:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4627:32:29"},"scope":33096,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32920,"nodeType":"FunctionDefinition","src":"5167:250:29","nodes":[],"body":{"id":32919,"nodeType":"Block","src":"5253:164:29","nodes":[],"statements":[{"assignments":[32900,32903,32905],"declarations":[{"constant":false,"id":32900,"mutability":"mutable","name":"recovered","nameLocation":"5272:9:29","nodeType":"VariableDeclaration","scope":32919,"src":"5264:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32899,"name":"address","nodeType":"ElementaryTypeName","src":"5264:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32903,"mutability":"mutable","name":"error","nameLocation":"5296:5:29","nodeType":"VariableDeclaration","scope":32919,"src":"5283:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":32902,"nodeType":"UserDefinedTypeName","pathNode":{"id":32901,"name":"RecoverError","nameLocations":["5283:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":32693,"src":"5283:12:29"},"referencedDeclaration":32693,"src":"5283:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":32905,"mutability":"mutable","name":"errorArg","nameLocation":"5311:8:29","nodeType":"VariableDeclaration","scope":32919,"src":"5303:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32904,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5303:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":32911,"initialValue":{"arguments":[{"id":32907,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32890,"src":"5334:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":32908,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32892,"src":"5340:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":32909,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32894,"src":"5343:2:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":32906,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[32807,32887,32995],"referencedDeclaration":32887,"src":"5323:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":32910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5323:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"5263:83:29"},{"expression":{"arguments":[{"id":32913,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32903,"src":"5368:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},{"id":32914,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32905,"src":"5375:8:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":32912,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32754,"src":"5356:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$32693_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":32915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5356:28:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32916,"nodeType":"ExpressionStatement","src":"5356:28:29"},{"expression":{"id":32917,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32900,"src":"5401:9:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":32898,"id":32918,"nodeType":"Return","src":"5394:16:29"}]},"documentation":{"id":32888,"nodeType":"StructuredDocumentation","src":"5008:154:29","text":" @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n _Available since v4.2._"},"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"5176:7:29","parameters":{"id":32895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32890,"mutability":"mutable","name":"hash","nameLocation":"5192:4:29","nodeType":"VariableDeclaration","scope":32920,"src":"5184:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5184:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32892,"mutability":"mutable","name":"r","nameLocation":"5206:1:29","nodeType":"VariableDeclaration","scope":32920,"src":"5198:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32891,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5198:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32894,"mutability":"mutable","name":"vs","nameLocation":"5217:2:29","nodeType":"VariableDeclaration","scope":32920,"src":"5209:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32893,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5209:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5183:37:29"},"returnParameters":{"id":32898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32920,"src":"5244:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32896,"name":"address","nodeType":"ElementaryTypeName","src":"5244:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5243:9:29"},"scope":33096,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32995,"nodeType":"FunctionDefinition","src":"5591:1530:29","nodes":[],"body":{"id":32994,"nodeType":"Block","src":"5749:1372:29","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":32941,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32929,"src":"6645:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":32940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6637:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32939,"name":"uint256","nodeType":"ElementaryTypeName","src":"6637:7:29","typeDescriptions":{}}},"id":32942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6637:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":32943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6650:66:29","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"6637:79:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32955,"nodeType":"IfStatement","src":"6633:164:29","trueBody":{"id":32954,"nodeType":"Block","src":"6718:79:29","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":32947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6748:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6740:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32945,"name":"address","nodeType":"ElementaryTypeName","src":"6740:7:29","typeDescriptions":{}}},"id":32948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6740:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":32949,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32693,"src":"6752:12:29","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$32693_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":32950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6765:17:29","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":32692,"src":"6752:30:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},{"id":32951,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32929,"src":"6784:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":32952,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6739:47:29","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":32938,"id":32953,"nodeType":"Return","src":"6732:54:29"}]}},{"assignments":[32957],"declarations":[{"constant":false,"id":32957,"mutability":"mutable","name":"signer","nameLocation":"6899:6:29","nodeType":"VariableDeclaration","scope":32994,"src":"6891:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32956,"name":"address","nodeType":"ElementaryTypeName","src":"6891:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":32964,"initialValue":{"arguments":[{"id":32959,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32923,"src":"6918:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":32960,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32925,"src":"6924:1:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":32961,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32927,"src":"6927:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":32962,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32929,"src":"6930:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":32958,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"6908:9:29","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":32963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6908:24:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6891:41:29"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":32970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32965,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32957,"src":"6946:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":32968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6964:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6956:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32966,"name":"address","nodeType":"ElementaryTypeName","src":"6956:7:29","typeDescriptions":{}}},"id":32969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6956:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6946:20:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32984,"nodeType":"IfStatement","src":"6942:113:29","trueBody":{"id":32983,"nodeType":"Block","src":"6968:87:29","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":32973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6998:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6990:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32971,"name":"address","nodeType":"ElementaryTypeName","src":"6990:7:29","typeDescriptions":{}}},"id":32974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6990:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":32975,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32693,"src":"7002:12:29","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$32693_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":32976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7015:16:29","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":32690,"src":"7002:29:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"hexValue":"30","id":32979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7041:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7033:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":32977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7033:7:29","typeDescriptions":{}}},"id":32980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7033:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":32981,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6989:55:29","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":32938,"id":32982,"nodeType":"Return","src":"6982:62:29"}]}},{"expression":{"components":[{"id":32985,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32957,"src":"7073:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":32986,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32693,"src":"7081:12:29","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$32693_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":32987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7094:7:29","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":32689,"src":"7081:20:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"hexValue":"30","id":32990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7111:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7103:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":32988,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7103:7:29","typeDescriptions":{}}},"id":32991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7103:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":32992,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7072:42:29","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":32938,"id":32993,"nodeType":"Return","src":"7065:49:29"}]},"documentation":{"id":32921,"nodeType":"StructuredDocumentation","src":"5423:163:29","text":" @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately.\n _Available since v4.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"5600:10:29","parameters":{"id":32930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32923,"mutability":"mutable","name":"hash","nameLocation":"5628:4:29","nodeType":"VariableDeclaration","scope":32995,"src":"5620:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32922,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5620:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32925,"mutability":"mutable","name":"v","nameLocation":"5648:1:29","nodeType":"VariableDeclaration","scope":32995,"src":"5642:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":32924,"name":"uint8","nodeType":"ElementaryTypeName","src":"5642:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":32927,"mutability":"mutable","name":"r","nameLocation":"5667:1:29","nodeType":"VariableDeclaration","scope":32995,"src":"5659:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32926,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5659:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32929,"mutability":"mutable","name":"s","nameLocation":"5686:1:29","nodeType":"VariableDeclaration","scope":32995,"src":"5678:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32928,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5678:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5610:83:29"},"returnParameters":{"id":32938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32932,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32995,"src":"5717:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32931,"name":"address","nodeType":"ElementaryTypeName","src":"5717:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32935,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32995,"src":"5726:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":32934,"nodeType":"UserDefinedTypeName","pathNode":{"id":32933,"name":"RecoverError","nameLocations":["5726:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":32693,"src":"5726:12:29"},"referencedDeclaration":32693,"src":"5726:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":32937,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32995,"src":"5740:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32936,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5740:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5716:32:29"},"scope":33096,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33031,"nodeType":"FunctionDefinition","src":"7254:260:29","nodes":[],"body":{"id":33030,"nodeType":"Block","src":"7348:166:29","nodes":[],"statements":[{"assignments":[33010,33013,33015],"declarations":[{"constant":false,"id":33010,"mutability":"mutable","name":"recovered","nameLocation":"7367:9:29","nodeType":"VariableDeclaration","scope":33030,"src":"7359:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33009,"name":"address","nodeType":"ElementaryTypeName","src":"7359:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33013,"mutability":"mutable","name":"error","nameLocation":"7391:5:29","nodeType":"VariableDeclaration","scope":33030,"src":"7378:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":33012,"nodeType":"UserDefinedTypeName","pathNode":{"id":33011,"name":"RecoverError","nameLocations":["7378:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":32693,"src":"7378:12:29"},"referencedDeclaration":32693,"src":"7378:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":33015,"mutability":"mutable","name":"errorArg","nameLocation":"7406:8:29","nodeType":"VariableDeclaration","scope":33030,"src":"7398:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33014,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7398:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33022,"initialValue":{"arguments":[{"id":33017,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32998,"src":"7429:4:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33018,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33000,"src":"7435:1:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":33019,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33002,"src":"7438:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33020,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33004,"src":"7441:1:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33016,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[32807,32887,32995],"referencedDeclaration":32995,"src":"7418:10:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":33021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7418:25:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"7358:85:29"},{"expression":{"arguments":[{"id":33024,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33013,"src":"7465:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},{"id":33025,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33015,"src":"7472:8:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33023,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32754,"src":"7453:11:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$32693_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":33026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7453:28:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33027,"nodeType":"ExpressionStatement","src":"7453:28:29"},{"expression":{"id":33028,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33010,"src":"7498:9:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":33008,"id":33029,"nodeType":"Return","src":"7491:16:29"}]},"documentation":{"id":32996,"nodeType":"StructuredDocumentation","src":"7127:122:29","text":" @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately."},"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"7263:7:29","parameters":{"id":33005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32998,"mutability":"mutable","name":"hash","nameLocation":"7279:4:29","nodeType":"VariableDeclaration","scope":33031,"src":"7271:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32997,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7271:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33000,"mutability":"mutable","name":"v","nameLocation":"7291:1:29","nodeType":"VariableDeclaration","scope":33031,"src":"7285:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":32999,"name":"uint8","nodeType":"ElementaryTypeName","src":"7285:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":33002,"mutability":"mutable","name":"r","nameLocation":"7302:1:29","nodeType":"VariableDeclaration","scope":33031,"src":"7294:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7294:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33004,"mutability":"mutable","name":"s","nameLocation":"7313:1:29","nodeType":"VariableDeclaration","scope":33031,"src":"7305:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33003,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7305:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7270:45:29"},"returnParameters":{"id":33008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33007,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33031,"src":"7339:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33006,"name":"address","nodeType":"ElementaryTypeName","src":"7339:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7338:9:29"},"scope":33096,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33041,"nodeType":"FunctionDefinition","src":"7804:396:29","nodes":[],"body":{"id":33040,"nodeType":"Block","src":"7890:310:29","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8046:148:29","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8067:4:29","type":"","value":"0x00"},{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","kind":"string","nodeType":"YulLiteral","src":"8073:34:29","type":"","value":"\u0019Ethereum Signed Message:\n32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8060:6:29"},"nodeType":"YulFunctionCall","src":"8060:48:29"},"nodeType":"YulExpressionStatement","src":"8060:48:29"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8128:4:29","type":"","value":"0x1c"},{"name":"hash","nodeType":"YulIdentifier","src":"8134:4:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8121:6:29"},"nodeType":"YulFunctionCall","src":"8121:18:29"},"nodeType":"YulExpressionStatement","src":"8121:18:29"},{"nodeType":"YulAssignment","src":"8152:32:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8173:4:29","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"8179:4:29","type":"","value":"0x3c"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"8163:9:29"},"nodeType":"YulFunctionCall","src":"8163:21:29"},"variableNames":[{"name":"message","nodeType":"YulIdentifier","src":"8152:7:29"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":33034,"isOffset":false,"isSlot":false,"src":"8134:4:29","valueSize":1},{"declaration":33037,"isOffset":false,"isSlot":false,"src":"8152:7:29","valueSize":1}],"id":33039,"nodeType":"InlineAssembly","src":"8037:157:29"}]},"documentation":{"id":33032,"nodeType":"StructuredDocumentation","src":"7520:279:29","text":" @dev Returns an Ethereum Signed Message, created from a `hash`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7813:22:29","parameters":{"id":33035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33034,"mutability":"mutable","name":"hash","nameLocation":"7844:4:29","nodeType":"VariableDeclaration","scope":33041,"src":"7836:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33033,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7836:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7835:14:29"},"returnParameters":{"id":33038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33037,"mutability":"mutable","name":"message","nameLocation":"7881:7:29","nodeType":"VariableDeclaration","scope":33041,"src":"7873:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33036,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7873:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7872:17:29"},"scope":33096,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33063,"nodeType":"FunctionDefinition","src":"8485:196:29","nodes":[],"body":{"id":33062,"nodeType":"Block","src":"8565:116:29","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","id":33052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8609:32:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},"value":"\u0019Ethereum Signed Message:\n"},{"arguments":[{"expression":{"id":33055,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33044,"src":"8660:1:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":33056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8662:6:29","memberName":"length","nodeType":"MemberAccess","src":"8660:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33053,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32684,"src":"8643:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$32684_$","typeString":"type(library Strings)"}},"id":33054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8651:8:29","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":32497,"src":"8643:16:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":33057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8643:26:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":33058,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33044,"src":"8671:1:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":33050,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8592:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":33051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8596:12:29","memberName":"encodePacked","nodeType":"MemberAccess","src":"8592:16:29","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":33059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8592:81:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":33049,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8582:9:29","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":33060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8582:92:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33048,"id":33061,"nodeType":"Return","src":"8575:99:29"}]},"documentation":{"id":33042,"nodeType":"StructuredDocumentation","src":"8206:274:29","text":" @dev Returns an Ethereum Signed Message, created from `s`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"8494:22:29","parameters":{"id":33045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33044,"mutability":"mutable","name":"s","nameLocation":"8530:1:29","nodeType":"VariableDeclaration","scope":33063,"src":"8517:14:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":33043,"name":"bytes","nodeType":"ElementaryTypeName","src":"8517:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8516:16:29"},"returnParameters":{"id":33048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33047,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33063,"src":"8556:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8556:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8555:9:29"},"scope":33096,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33075,"nodeType":"FunctionDefinition","src":"9020:397:29","nodes":[],"body":{"id":33074,"nodeType":"Block","src":"9127:290:29","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"9189:222:29","statements":[{"nodeType":"YulVariableDeclaration","src":"9203:22:29","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9220:4:29","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9214:5:29"},"nodeType":"YulFunctionCall","src":"9214:11:29"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"9207:3:29","type":""}]},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"9245:3:29"},{"hexValue":"1901","kind":"string","nodeType":"YulLiteral","src":"9250:10:29","type":"","value":"\u0019\u0001"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9238:6:29"},"nodeType":"YulFunctionCall","src":"9238:23:29"},"nodeType":"YulExpressionStatement","src":"9238:23:29"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"9285:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"9290:4:29","type":"","value":"0x02"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9281:3:29"},"nodeType":"YulFunctionCall","src":"9281:14:29"},{"name":"domainSeparator","nodeType":"YulIdentifier","src":"9297:15:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9274:6:29"},"nodeType":"YulFunctionCall","src":"9274:39:29"},"nodeType":"YulExpressionStatement","src":"9274:39:29"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"9337:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"9342:4:29","type":"","value":"0x22"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9333:3:29"},"nodeType":"YulFunctionCall","src":"9333:14:29"},{"name":"structHash","nodeType":"YulIdentifier","src":"9349:10:29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9326:6:29"},"nodeType":"YulFunctionCall","src":"9326:34:29"},"nodeType":"YulExpressionStatement","src":"9326:34:29"},{"nodeType":"YulAssignment","src":"9373:28:29","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"9391:3:29"},{"kind":"number","nodeType":"YulLiteral","src":"9396:4:29","type":"","value":"0x42"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"9381:9:29"},"nodeType":"YulFunctionCall","src":"9381:20:29"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"9373:4:29"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":33071,"isOffset":false,"isSlot":false,"src":"9373:4:29","valueSize":1},{"declaration":33066,"isOffset":false,"isSlot":false,"src":"9297:15:29","valueSize":1},{"declaration":33068,"isOffset":false,"isSlot":false,"src":"9349:10:29","valueSize":1}],"id":33073,"nodeType":"InlineAssembly","src":"9180:231:29"}]},"documentation":{"id":33064,"nodeType":"StructuredDocumentation","src":"8687:328:29","text":" @dev Returns an Ethereum Signed Typed Data, created from a\n `domainSeparator` and a `structHash`. This produces hash corresponding\n to the one signed with the\n https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]\n JSON-RPC method as part of EIP-712.\n See {recover}."},"implemented":true,"kind":"function","modifiers":[],"name":"toTypedDataHash","nameLocation":"9029:15:29","parameters":{"id":33069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33066,"mutability":"mutable","name":"domainSeparator","nameLocation":"9053:15:29","nodeType":"VariableDeclaration","scope":33075,"src":"9045:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9045:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33068,"mutability":"mutable","name":"structHash","nameLocation":"9078:10:29","nodeType":"VariableDeclaration","scope":33075,"src":"9070:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33067,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9070:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9044:45:29"},"returnParameters":{"id":33072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33071,"mutability":"mutable","name":"data","nameLocation":"9121:4:29","nodeType":"VariableDeclaration","scope":33075,"src":"9113:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9113:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9112:14:29"},"scope":33096,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33095,"nodeType":"FunctionDefinition","src":"9621:191:29","nodes":[],"body":{"id":33094,"nodeType":"Block","src":"9732:80:29","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1900","id":33088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"9776:10:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},"value":"\u0019\u0000"},{"id":33089,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33078,"src":"9788:9:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33090,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33080,"src":"9799:4:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":33086,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9759:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":33087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9763:12:29","memberName":"encodePacked","nodeType":"MemberAccess","src":"9759:16:29","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":33091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9759:45:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":33085,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9749:9:29","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":33092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9749:56:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33084,"id":33093,"nodeType":"Return","src":"9742:63:29"}]},"documentation":{"id":33076,"nodeType":"StructuredDocumentation","src":"9423:193:29","text":" @dev Returns an Ethereum Signed Data with intended validator, created from a\n `validator` and `data` according to the version 0 of EIP-191.\n See {recover}."},"implemented":true,"kind":"function","modifiers":[],"name":"toDataWithIntendedValidatorHash","nameLocation":"9630:31:29","parameters":{"id":33081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33078,"mutability":"mutable","name":"validator","nameLocation":"9670:9:29","nodeType":"VariableDeclaration","scope":33095,"src":"9662:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33077,"name":"address","nodeType":"ElementaryTypeName","src":"9662:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33080,"mutability":"mutable","name":"data","nameLocation":"9694:4:29","nodeType":"VariableDeclaration","scope":33095,"src":"9681:17:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":33079,"name":"bytes","nodeType":"ElementaryTypeName","src":"9681:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9661:38:29"},"returnParameters":{"id":33084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33083,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33095,"src":"9723:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9723:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9722:9:29"},"scope":33096,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"ECDSA","contractDependencies":[],"contractKind":"library","documentation":{"id":32688,"nodeType":"StructuredDocumentation","src":"164:205:29","text":" @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address."},"fullyImplemented":true,"linearizedBaseContracts":[33096],"name":"ECDSA","nameLocation":"378:5:29","scope":33097,"usedErrors":[32696,32701,32706]}],"license":"MIT"},"id":29} \ No newline at end of file +{"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":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220bc9ec29de3dbee8bc918d42ba6cc1e9d545960fe84c3af32ceefab22a66c1d3864736f6c63430008130033","sourceMap":"370:9444:32:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220bc9ec29de3dbee8bc918d42ba6cc1e9d545960fe84c3af32ceefab22a66c1d3864736f6c63430008130033","sourceMap":"370:9444:32:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":"ECDSA"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","id":33526,"exportedSymbols":{"ECDSA":[33525],"Math":[35097],"SignedMath":[35202],"Strings":[33113]},"nodeType":"SourceUnit","src":"112:9703:32","nodes":[{"id":33115,"nodeType":"PragmaDirective","src":"112:24:32","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":33116,"nodeType":"ImportDirective","src":"138:24:32","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","file":"../Strings.sol","nameLocation":"-1:-1:-1","scope":33526,"sourceUnit":33114,"symbolAliases":[],"unitAlias":""},{"id":33525,"nodeType":"ContractDefinition","src":"370:9444:32","nodes":[{"id":33122,"nodeType":"EnumDefinition","src":"390:126:32","nodes":[],"canonicalName":"ECDSA.RecoverError","members":[{"id":33118,"name":"NoError","nameLocation":"418:7:32","nodeType":"EnumValue","src":"418:7:32"},{"id":33119,"name":"InvalidSignature","nameLocation":"435:16:32","nodeType":"EnumValue","src":"435:16:32"},{"id":33120,"name":"InvalidSignatureLength","nameLocation":"461:22:32","nodeType":"EnumValue","src":"461:22:32"},{"id":33121,"name":"InvalidSignatureS","nameLocation":"493:17:32","nodeType":"EnumValue","src":"493:17:32"}],"name":"RecoverError","nameLocation":"395:12:32"},{"id":33125,"nodeType":"ErrorDefinition","src":"590:30:32","nodes":[],"documentation":{"id":33123,"nodeType":"StructuredDocumentation","src":"522:63:32","text":" @dev The signature derives the `address(0)`."},"errorSelector":"f645eedf","name":"ECDSAInvalidSignature","nameLocation":"596:21:32","parameters":{"id":33124,"nodeType":"ParameterList","parameters":[],"src":"617:2:32"}},{"id":33130,"nodeType":"ErrorDefinition","src":"691:50:32","nodes":[],"documentation":{"id":33126,"nodeType":"StructuredDocumentation","src":"626:60:32","text":" @dev The signature has an invalid length."},"errorSelector":"fce698f7","name":"ECDSAInvalidSignatureLength","nameLocation":"697:27:32","parameters":{"id":33129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33128,"mutability":"mutable","name":"length","nameLocation":"733:6:32","nodeType":"VariableDeclaration","scope":33130,"src":"725:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33127,"name":"uint256","nodeType":"ElementaryTypeName","src":"725:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"724:16:32"}},{"id":33135,"nodeType":"ErrorDefinition","src":"837:40:32","nodes":[],"documentation":{"id":33131,"nodeType":"StructuredDocumentation","src":"747:85:32","text":" @dev The signature has an S value that is in the upper half order."},"errorSelector":"d78bce0c","name":"ECDSAInvalidSignatureS","nameLocation":"843:22:32","parameters":{"id":33134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33133,"mutability":"mutable","name":"s","nameLocation":"874:1:32","nodeType":"VariableDeclaration","scope":33135,"src":"866:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33132,"name":"bytes32","nodeType":"ElementaryTypeName","src":"866:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"865:11:32"}},{"id":33183,"nodeType":"FunctionDefinition","src":"883:532:32","nodes":[],"body":{"id":33182,"nodeType":"Block","src":"955:460:32","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"id":33146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33143,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33138,"src":"969:5:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":33144,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33122,"src":"978:12:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$33122_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":33145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"991:7:32","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":33118,"src":"978:20:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"src":"969:29:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"id":33152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33149,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33138,"src":"1065:5:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":33150,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33122,"src":"1074:12:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$33122_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":33151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1087:16:32","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":33119,"src":"1074:29:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"src":"1065:38:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"id":33160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33157,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33138,"src":"1170:5:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":33158,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33122,"src":"1179:12:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$33122_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":33159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1192:22:32","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":33120,"src":"1179:35:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"src":"1170:44:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"id":33172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33169,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33138,"src":"1304:5:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":33170,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33122,"src":"1313:12:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$33122_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":33171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1326:17:32","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":33121,"src":"1313:30:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"src":"1304:39:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33178,"nodeType":"IfStatement","src":"1300:109:32","trueBody":{"id":33177,"nodeType":"Block","src":"1345:64:32","statements":[{"errorCall":{"arguments":[{"id":33174,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33140,"src":"1389:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33173,"name":"ECDSAInvalidSignatureS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33135,"src":"1366:22:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$__$","typeString":"function (bytes32) pure"}},"id":33175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:32:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33176,"nodeType":"RevertStatement","src":"1359:39:32"}]}},"id":33179,"nodeType":"IfStatement","src":"1166:243:32","trueBody":{"id":33168,"nodeType":"Block","src":"1216:78:32","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":33164,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33140,"src":"1273:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1265:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":33162,"name":"uint256","nodeType":"ElementaryTypeName","src":"1265:7:32","typeDescriptions":{}}},"id":33165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1265:17:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33161,"name":"ECDSAInvalidSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33130,"src":"1237:27:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":33166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1237:46:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33167,"nodeType":"RevertStatement","src":"1230:53:32"}]}},"id":33180,"nodeType":"IfStatement","src":"1061:348:32","trueBody":{"id":33156,"nodeType":"Block","src":"1105:55:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":33153,"name":"ECDSAInvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33125,"src":"1126:21:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":33154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1126:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33155,"nodeType":"RevertStatement","src":"1119:30:32"}]}},"id":33181,"nodeType":"IfStatement","src":"965:444:32","trueBody":{"id":33148,"nodeType":"Block","src":"1000:55:32","statements":[{"functionReturnParameters":33142,"id":33147,"nodeType":"Return","src":"1014:7:32"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_throwError","nameLocation":"892:11:32","parameters":{"id":33141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33138,"mutability":"mutable","name":"error","nameLocation":"917:5:32","nodeType":"VariableDeclaration","scope":33183,"src":"904:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":33137,"nodeType":"UserDefinedTypeName","pathNode":{"id":33136,"name":"RecoverError","nameLocations":["904:12:32"],"nodeType":"IdentifierPath","referencedDeclaration":33122,"src":"904:12:32"},"referencedDeclaration":33122,"src":"904:12:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":33140,"mutability":"mutable","name":"errorArg","nameLocation":"932:8:32","nodeType":"VariableDeclaration","scope":33183,"src":"924:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33139,"name":"bytes32","nodeType":"ElementaryTypeName","src":"924:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"903:38:32"},"returnParameters":{"id":33142,"nodeType":"ParameterList","parameters":[],"src":"955:0:32"},"scope":33525,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":33236,"nodeType":"FunctionDefinition","src":"2483:766:32","nodes":[],"body":{"id":33235,"nodeType":"Block","src":"2596:653:32","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33198,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33188,"src":"2610:9:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":33199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2620:6:32","memberName":"length","nodeType":"MemberAccess","src":"2610:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3635","id":33200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2630:2:32","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"2610:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":33233,"nodeType":"Block","src":"3135:108:32","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":33222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3165:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3157:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33220,"name":"address","nodeType":"ElementaryTypeName","src":"3157:7:32","typeDescriptions":{}}},"id":33223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3157:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":33224,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33122,"src":"3169:12:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$33122_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":33225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3182:22:32","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":33120,"src":"3169:35:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"expression":{"id":33228,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33188,"src":"3214:9:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":33229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3224:6:32","memberName":"length","nodeType":"MemberAccess","src":"3214:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3206:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":33226,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3206:7:32","typeDescriptions":{}}},"id":33230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3206:25:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":33231,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3156:76:32","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":33197,"id":33232,"nodeType":"Return","src":"3149:83:32"}]},"id":33234,"nodeType":"IfStatement","src":"2606:637:32","trueBody":{"id":33219,"nodeType":"Block","src":"2634:495:32","statements":[{"assignments":[33203],"declarations":[{"constant":false,"id":33203,"mutability":"mutable","name":"r","nameLocation":"2656:1:32","nodeType":"VariableDeclaration","scope":33219,"src":"2648:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33202,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2648:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33204,"nodeType":"VariableDeclarationStatement","src":"2648:9:32"},{"assignments":[33206],"declarations":[{"constant":false,"id":33206,"mutability":"mutable","name":"s","nameLocation":"2679:1:32","nodeType":"VariableDeclaration","scope":33219,"src":"2671:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33205,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2671:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33207,"nodeType":"VariableDeclarationStatement","src":"2671:9:32"},{"assignments":[33209],"declarations":[{"constant":false,"id":33209,"mutability":"mutable","name":"v","nameLocation":"2700:1:32","nodeType":"VariableDeclaration","scope":33219,"src":"2694:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":33208,"name":"uint8","nodeType":"ElementaryTypeName","src":"2694:5:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":33210,"nodeType":"VariableDeclarationStatement","src":"2694:7:32"},{"AST":{"nodeType":"YulBlock","src":"2902:171:32","statements":[{"nodeType":"YulAssignment","src":"2920:32:32","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2935:9:32"},{"kind":"number","nodeType":"YulLiteral","src":"2946:4:32","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2931:3:32"},"nodeType":"YulFunctionCall","src":"2931:20:32"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2925:5:32"},"nodeType":"YulFunctionCall","src":"2925:27:32"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"2920:1:32"}]},{"nodeType":"YulAssignment","src":"2969:32:32","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2984:9:32"},{"kind":"number","nodeType":"YulLiteral","src":"2995:4:32","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2980:3:32"},"nodeType":"YulFunctionCall","src":"2980:20:32"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2974:5:32"},"nodeType":"YulFunctionCall","src":"2974:27:32"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"2969:1:32"}]},{"nodeType":"YulAssignment","src":"3018:41:32","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3028:1:32","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"3041:9:32"},{"kind":"number","nodeType":"YulLiteral","src":"3052:4:32","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3037:3:32"},"nodeType":"YulFunctionCall","src":"3037:20:32"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3031:5:32"},"nodeType":"YulFunctionCall","src":"3031:27:32"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"3023:4:32"},"nodeType":"YulFunctionCall","src":"3023:36:32"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"3018:1:32"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":33203,"isOffset":false,"isSlot":false,"src":"2920:1:32","valueSize":1},{"declaration":33206,"isOffset":false,"isSlot":false,"src":"2969:1:32","valueSize":1},{"declaration":33188,"isOffset":false,"isSlot":false,"src":"2935:9:32","valueSize":1},{"declaration":33188,"isOffset":false,"isSlot":false,"src":"2984:9:32","valueSize":1},{"declaration":33188,"isOffset":false,"isSlot":false,"src":"3041:9:32","valueSize":1},{"declaration":33209,"isOffset":false,"isSlot":false,"src":"3018:1:32","valueSize":1}],"id":33211,"nodeType":"InlineAssembly","src":"2893:180:32"},{"expression":{"arguments":[{"id":33213,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33186,"src":"3104:4:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33214,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33209,"src":"3110:1:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":33215,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33203,"src":"3113:1:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33216,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33206,"src":"3116:1:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33212,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[33236,33316,33424],"referencedDeclaration":33424,"src":"3093:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":33217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3093:25:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":33197,"id":33218,"nodeType":"Return","src":"3086:32:32"}]}}]},"documentation":{"id":33184,"nodeType":"StructuredDocumentation","src":"1421:1057:32","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature` or error string. This address can then be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it.\n Documentation for signature generation:\n - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n _Available since v4.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"2492:10:32","parameters":{"id":33189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33186,"mutability":"mutable","name":"hash","nameLocation":"2511:4:32","nodeType":"VariableDeclaration","scope":33236,"src":"2503:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33185,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2503:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33188,"mutability":"mutable","name":"signature","nameLocation":"2530:9:32","nodeType":"VariableDeclaration","scope":33236,"src":"2517:22:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":33187,"name":"bytes","nodeType":"ElementaryTypeName","src":"2517:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2502:38:32"},"returnParameters":{"id":33197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33191,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33236,"src":"2564:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33190,"name":"address","nodeType":"ElementaryTypeName","src":"2564:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33194,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33236,"src":"2573:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":33193,"nodeType":"UserDefinedTypeName","pathNode":{"id":33192,"name":"RecoverError","nameLocations":["2573:12:32"],"nodeType":"IdentifierPath","referencedDeclaration":33122,"src":"2573:12:32"},"referencedDeclaration":33122,"src":"2573:12:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":33196,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33236,"src":"2587:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33195,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2587:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2563:32:32"},"scope":33525,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33266,"nodeType":"FunctionDefinition","src":"4039:255:32","nodes":[],"body":{"id":33265,"nodeType":"Block","src":"4126:168:32","nodes":[],"statements":[{"assignments":[33247,33250,33252],"declarations":[{"constant":false,"id":33247,"mutability":"mutable","name":"recovered","nameLocation":"4145:9:32","nodeType":"VariableDeclaration","scope":33265,"src":"4137:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33246,"name":"address","nodeType":"ElementaryTypeName","src":"4137:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33250,"mutability":"mutable","name":"error","nameLocation":"4169:5:32","nodeType":"VariableDeclaration","scope":33265,"src":"4156:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":33249,"nodeType":"UserDefinedTypeName","pathNode":{"id":33248,"name":"RecoverError","nameLocations":["4156:12:32"],"nodeType":"IdentifierPath","referencedDeclaration":33122,"src":"4156:12:32"},"referencedDeclaration":33122,"src":"4156:12:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":33252,"mutability":"mutable","name":"errorArg","nameLocation":"4184:8:32","nodeType":"VariableDeclaration","scope":33265,"src":"4176:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33251,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4176:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33257,"initialValue":{"arguments":[{"id":33254,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33239,"src":"4207:4:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33255,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33241,"src":"4213:9:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":33253,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[33236,33316,33424],"referencedDeclaration":33236,"src":"4196:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":33256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4196:27:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"4136:87:32"},{"expression":{"arguments":[{"id":33259,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33250,"src":"4245:5:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},{"id":33260,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33252,"src":"4252:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33258,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33183,"src":"4233:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$33122_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":33261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4233:28:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33262,"nodeType":"ExpressionStatement","src":"4233:28:32"},{"expression":{"id":33263,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33247,"src":"4278:9:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":33245,"id":33264,"nodeType":"Return","src":"4271:16:32"}]},"documentation":{"id":33237,"nodeType":"StructuredDocumentation","src":"3255:779:32","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it."},"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"4048:7:32","parameters":{"id":33242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33239,"mutability":"mutable","name":"hash","nameLocation":"4064:4:32","nodeType":"VariableDeclaration","scope":33266,"src":"4056:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4056:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33241,"mutability":"mutable","name":"signature","nameLocation":"4083:9:32","nodeType":"VariableDeclaration","scope":33266,"src":"4070:22:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":33240,"name":"bytes","nodeType":"ElementaryTypeName","src":"4070:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4055:38:32"},"returnParameters":{"id":33245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33244,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33266,"src":"4117:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33243,"name":"address","nodeType":"ElementaryTypeName","src":"4117:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4116:9:32"},"scope":33525,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33316,"nodeType":"FunctionDefinition","src":"4548:454:32","nodes":[],"body":{"id":33315,"nodeType":"Block","src":"4660:342:32","nodes":[],"statements":[{"id":33314,"nodeType":"UncheckedBlock","src":"4670:326:32","statements":[{"assignments":[33284],"declarations":[{"constant":false,"id":33284,"mutability":"mutable","name":"s","nameLocation":"4702:1:32","nodeType":"VariableDeclaration","scope":33314,"src":"4694:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4694:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33291,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":33290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33285,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33273,"src":"4706:2:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"hexValue":"307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":33288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4719:66:32","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"},"value":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}],"id":33287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4711:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":33286,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4711:7:32","typeDescriptions":{}}},"id":33289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4711:75:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4706:80:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4694:92:32"},{"assignments":[33293],"declarations":[{"constant":false,"id":33293,"mutability":"mutable","name":"v","nameLocation":"4903:1:32","nodeType":"VariableDeclaration","scope":33314,"src":"4897:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":33292,"name":"uint8","nodeType":"ElementaryTypeName","src":"4897:5:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":33306,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":33298,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33273,"src":"4922:2:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4914:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":33296,"name":"uint256","nodeType":"ElementaryTypeName","src":"4914:7:32","typeDescriptions":{}}},"id":33299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4914:11:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":33300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4929:3:32","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4914:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33302,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4913:20:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3237","id":33303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4936:2:32","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4913:25:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4907:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":33294,"name":"uint8","nodeType":"ElementaryTypeName","src":"4907:5:32","typeDescriptions":{}}},"id":33305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4907:32:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4897:42:32"},{"expression":{"arguments":[{"id":33308,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33269,"src":"4971:4:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33309,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33293,"src":"4977:1:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":33310,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33271,"src":"4980:1:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33311,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33284,"src":"4983:1:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33307,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[33236,33316,33424],"referencedDeclaration":33424,"src":"4960:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":33312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4960:25:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":33282,"id":33313,"nodeType":"Return","src":"4953:32:32"}]}]},"documentation":{"id":33267,"nodeType":"StructuredDocumentation","src":"4300:243:32","text":" @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n _Available since v4.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"4557:10:32","parameters":{"id":33274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33269,"mutability":"mutable","name":"hash","nameLocation":"4576:4:32","nodeType":"VariableDeclaration","scope":33316,"src":"4568:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33268,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4568:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33271,"mutability":"mutable","name":"r","nameLocation":"4590:1:32","nodeType":"VariableDeclaration","scope":33316,"src":"4582:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4582:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33273,"mutability":"mutable","name":"vs","nameLocation":"4601:2:32","nodeType":"VariableDeclaration","scope":33316,"src":"4593:10:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33272,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4593:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4567:37:32"},"returnParameters":{"id":33282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33316,"src":"4628:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33275,"name":"address","nodeType":"ElementaryTypeName","src":"4628:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33316,"src":"4637:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":33278,"nodeType":"UserDefinedTypeName","pathNode":{"id":33277,"name":"RecoverError","nameLocations":["4637:12:32"],"nodeType":"IdentifierPath","referencedDeclaration":33122,"src":"4637:12:32"},"referencedDeclaration":33122,"src":"4637:12:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":33281,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33316,"src":"4651:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33280,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4651:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4627:32:32"},"scope":33525,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33349,"nodeType":"FunctionDefinition","src":"5167:250:32","nodes":[],"body":{"id":33348,"nodeType":"Block","src":"5253:164:32","nodes":[],"statements":[{"assignments":[33329,33332,33334],"declarations":[{"constant":false,"id":33329,"mutability":"mutable","name":"recovered","nameLocation":"5272:9:32","nodeType":"VariableDeclaration","scope":33348,"src":"5264:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33328,"name":"address","nodeType":"ElementaryTypeName","src":"5264:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33332,"mutability":"mutable","name":"error","nameLocation":"5296:5:32","nodeType":"VariableDeclaration","scope":33348,"src":"5283:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":33331,"nodeType":"UserDefinedTypeName","pathNode":{"id":33330,"name":"RecoverError","nameLocations":["5283:12:32"],"nodeType":"IdentifierPath","referencedDeclaration":33122,"src":"5283:12:32"},"referencedDeclaration":33122,"src":"5283:12:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":33334,"mutability":"mutable","name":"errorArg","nameLocation":"5311:8:32","nodeType":"VariableDeclaration","scope":33348,"src":"5303:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33333,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5303:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33340,"initialValue":{"arguments":[{"id":33336,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33319,"src":"5334:4:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33337,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33321,"src":"5340:1:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33338,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33323,"src":"5343:2:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33335,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[33236,33316,33424],"referencedDeclaration":33316,"src":"5323:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":33339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5323:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"5263:83:32"},{"expression":{"arguments":[{"id":33342,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33332,"src":"5368:5:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},{"id":33343,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33334,"src":"5375:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33341,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33183,"src":"5356:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$33122_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":33344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5356:28:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33345,"nodeType":"ExpressionStatement","src":"5356:28:32"},{"expression":{"id":33346,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33329,"src":"5401:9:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":33327,"id":33347,"nodeType":"Return","src":"5394:16:32"}]},"documentation":{"id":33317,"nodeType":"StructuredDocumentation","src":"5008:154:32","text":" @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n _Available since v4.2._"},"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"5176:7:32","parameters":{"id":33324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33319,"mutability":"mutable","name":"hash","nameLocation":"5192:4:32","nodeType":"VariableDeclaration","scope":33349,"src":"5184:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5184:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33321,"mutability":"mutable","name":"r","nameLocation":"5206:1:32","nodeType":"VariableDeclaration","scope":33349,"src":"5198:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5198:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33323,"mutability":"mutable","name":"vs","nameLocation":"5217:2:32","nodeType":"VariableDeclaration","scope":33349,"src":"5209:10:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33322,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5209:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5183:37:32"},"returnParameters":{"id":33327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33326,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33349,"src":"5244:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33325,"name":"address","nodeType":"ElementaryTypeName","src":"5244:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5243:9:32"},"scope":33525,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33424,"nodeType":"FunctionDefinition","src":"5591:1530:32","nodes":[],"body":{"id":33423,"nodeType":"Block","src":"5749:1372:32","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":33370,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33358,"src":"6645:1:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6637:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":33368,"name":"uint256","nodeType":"ElementaryTypeName","src":"6637:7:32","typeDescriptions":{}}},"id":33371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6637:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":33372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6650:66:32","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"6637:79:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33384,"nodeType":"IfStatement","src":"6633:164:32","trueBody":{"id":33383,"nodeType":"Block","src":"6718:79:32","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":33376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6748:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6740:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33374,"name":"address","nodeType":"ElementaryTypeName","src":"6740:7:32","typeDescriptions":{}}},"id":33377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6740:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":33378,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33122,"src":"6752:12:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$33122_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":33379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6765:17:32","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":33121,"src":"6752:30:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},{"id":33380,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33358,"src":"6784:1:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":33381,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6739:47:32","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":33367,"id":33382,"nodeType":"Return","src":"6732:54:32"}]}},{"assignments":[33386],"declarations":[{"constant":false,"id":33386,"mutability":"mutable","name":"signer","nameLocation":"6899:6:32","nodeType":"VariableDeclaration","scope":33423,"src":"6891:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33385,"name":"address","nodeType":"ElementaryTypeName","src":"6891:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":33393,"initialValue":{"arguments":[{"id":33388,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33352,"src":"6918:4:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33389,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33354,"src":"6924:1:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":33390,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33356,"src":"6927:1:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33391,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33358,"src":"6930:1:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33387,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"6908:9:32","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":33392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6908:24:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6891:41:32"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33394,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33386,"src":"6946:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":33397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6964:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6956:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33395,"name":"address","nodeType":"ElementaryTypeName","src":"6956:7:32","typeDescriptions":{}}},"id":33398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6956:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6946:20:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33413,"nodeType":"IfStatement","src":"6942:113:32","trueBody":{"id":33412,"nodeType":"Block","src":"6968:87:32","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":33402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6998:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6990:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33400,"name":"address","nodeType":"ElementaryTypeName","src":"6990:7:32","typeDescriptions":{}}},"id":33403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6990:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":33404,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33122,"src":"7002:12:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$33122_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":33405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7015:16:32","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":33119,"src":"7002:29:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"hexValue":"30","id":33408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7041:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7033:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":33406,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7033:7:32","typeDescriptions":{}}},"id":33409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7033:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":33410,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6989:55:32","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":33367,"id":33411,"nodeType":"Return","src":"6982:62:32"}]}},{"expression":{"components":[{"id":33414,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33386,"src":"7073:6:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":33415,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33122,"src":"7081:12:32","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$33122_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":33416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7094:7:32","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":33118,"src":"7081:20:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"hexValue":"30","id":33419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7111:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7103:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":33417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7103:7:32","typeDescriptions":{}}},"id":33420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7103:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":33421,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7072:42:32","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":33367,"id":33422,"nodeType":"Return","src":"7065:49:32"}]},"documentation":{"id":33350,"nodeType":"StructuredDocumentation","src":"5423:163:32","text":" @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately.\n _Available since v4.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"5600:10:32","parameters":{"id":33359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33352,"mutability":"mutable","name":"hash","nameLocation":"5628:4:32","nodeType":"VariableDeclaration","scope":33424,"src":"5620:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5620:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33354,"mutability":"mutable","name":"v","nameLocation":"5648:1:32","nodeType":"VariableDeclaration","scope":33424,"src":"5642:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":33353,"name":"uint8","nodeType":"ElementaryTypeName","src":"5642:5:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":33356,"mutability":"mutable","name":"r","nameLocation":"5667:1:32","nodeType":"VariableDeclaration","scope":33424,"src":"5659:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5659:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33358,"mutability":"mutable","name":"s","nameLocation":"5686:1:32","nodeType":"VariableDeclaration","scope":33424,"src":"5678:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5678:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5610:83:32"},"returnParameters":{"id":33367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33424,"src":"5717:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33360,"name":"address","nodeType":"ElementaryTypeName","src":"5717:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33424,"src":"5726:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":33363,"nodeType":"UserDefinedTypeName","pathNode":{"id":33362,"name":"RecoverError","nameLocations":["5726:12:32"],"nodeType":"IdentifierPath","referencedDeclaration":33122,"src":"5726:12:32"},"referencedDeclaration":33122,"src":"5726:12:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":33366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33424,"src":"5740:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5740:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5716:32:32"},"scope":33525,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33460,"nodeType":"FunctionDefinition","src":"7254:260:32","nodes":[],"body":{"id":33459,"nodeType":"Block","src":"7348:166:32","nodes":[],"statements":[{"assignments":[33439,33442,33444],"declarations":[{"constant":false,"id":33439,"mutability":"mutable","name":"recovered","nameLocation":"7367:9:32","nodeType":"VariableDeclaration","scope":33459,"src":"7359:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33438,"name":"address","nodeType":"ElementaryTypeName","src":"7359:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33442,"mutability":"mutable","name":"error","nameLocation":"7391:5:32","nodeType":"VariableDeclaration","scope":33459,"src":"7378:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":33441,"nodeType":"UserDefinedTypeName","pathNode":{"id":33440,"name":"RecoverError","nameLocations":["7378:12:32"],"nodeType":"IdentifierPath","referencedDeclaration":33122,"src":"7378:12:32"},"referencedDeclaration":33122,"src":"7378:12:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":33444,"mutability":"mutable","name":"errorArg","nameLocation":"7406:8:32","nodeType":"VariableDeclaration","scope":33459,"src":"7398:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7398:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33451,"initialValue":{"arguments":[{"id":33446,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33427,"src":"7429:4:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33447,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33429,"src":"7435:1:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":33448,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33431,"src":"7438:1:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33449,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33433,"src":"7441:1:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33445,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[33236,33316,33424],"referencedDeclaration":33424,"src":"7418:10:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":33450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7418:25:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"7358:85:32"},{"expression":{"arguments":[{"id":33453,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33442,"src":"7465:5:32","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},{"id":33454,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33444,"src":"7472:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33452,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33183,"src":"7453:11:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$33122_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":33455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7453:28:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33456,"nodeType":"ExpressionStatement","src":"7453:28:32"},{"expression":{"id":33457,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33439,"src":"7498:9:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":33437,"id":33458,"nodeType":"Return","src":"7491:16:32"}]},"documentation":{"id":33425,"nodeType":"StructuredDocumentation","src":"7127:122:32","text":" @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately."},"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"7263:7:32","parameters":{"id":33434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33427,"mutability":"mutable","name":"hash","nameLocation":"7279:4:32","nodeType":"VariableDeclaration","scope":33460,"src":"7271:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7271:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33429,"mutability":"mutable","name":"v","nameLocation":"7291:1:32","nodeType":"VariableDeclaration","scope":33460,"src":"7285:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":33428,"name":"uint8","nodeType":"ElementaryTypeName","src":"7285:5:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":33431,"mutability":"mutable","name":"r","nameLocation":"7302:1:32","nodeType":"VariableDeclaration","scope":33460,"src":"7294:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33430,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7294:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33433,"mutability":"mutable","name":"s","nameLocation":"7313:1:32","nodeType":"VariableDeclaration","scope":33460,"src":"7305:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7305:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7270:45:32"},"returnParameters":{"id":33437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33436,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33460,"src":"7339:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33435,"name":"address","nodeType":"ElementaryTypeName","src":"7339:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7338:9:32"},"scope":33525,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33470,"nodeType":"FunctionDefinition","src":"7804:396:32","nodes":[],"body":{"id":33469,"nodeType":"Block","src":"7890:310:32","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"8046:148:32","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8067:4:32","type":"","value":"0x00"},{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","kind":"string","nodeType":"YulLiteral","src":"8073:34:32","type":"","value":"\u0019Ethereum Signed Message:\n32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8060:6:32"},"nodeType":"YulFunctionCall","src":"8060:48:32"},"nodeType":"YulExpressionStatement","src":"8060:48:32"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8128:4:32","type":"","value":"0x1c"},{"name":"hash","nodeType":"YulIdentifier","src":"8134:4:32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8121:6:32"},"nodeType":"YulFunctionCall","src":"8121:18:32"},"nodeType":"YulExpressionStatement","src":"8121:18:32"},{"nodeType":"YulAssignment","src":"8152:32:32","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8173:4:32","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"8179:4:32","type":"","value":"0x3c"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"8163:9:32"},"nodeType":"YulFunctionCall","src":"8163:21:32"},"variableNames":[{"name":"message","nodeType":"YulIdentifier","src":"8152:7:32"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":33463,"isOffset":false,"isSlot":false,"src":"8134:4:32","valueSize":1},{"declaration":33466,"isOffset":false,"isSlot":false,"src":"8152:7:32","valueSize":1}],"id":33468,"nodeType":"InlineAssembly","src":"8037:157:32"}]},"documentation":{"id":33461,"nodeType":"StructuredDocumentation","src":"7520:279:32","text":" @dev Returns an Ethereum Signed Message, created from a `hash`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7813:22:32","parameters":{"id":33464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33463,"mutability":"mutable","name":"hash","nameLocation":"7844:4:32","nodeType":"VariableDeclaration","scope":33470,"src":"7836:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33462,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7836:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7835:14:32"},"returnParameters":{"id":33467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33466,"mutability":"mutable","name":"message","nameLocation":"7881:7:32","nodeType":"VariableDeclaration","scope":33470,"src":"7873:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33465,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7873:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7872:17:32"},"scope":33525,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33492,"nodeType":"FunctionDefinition","src":"8485:196:32","nodes":[],"body":{"id":33491,"nodeType":"Block","src":"8565:116:32","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","id":33481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8609:32:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},"value":"\u0019Ethereum Signed Message:\n"},{"arguments":[{"expression":{"id":33484,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33473,"src":"8660:1:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":33485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8662:6:32","memberName":"length","nodeType":"MemberAccess","src":"8660:8:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":33482,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33113,"src":"8643:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$33113_$","typeString":"type(library Strings)"}},"id":33483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8651:8:32","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":32926,"src":"8643:16:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":33486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8643:26:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":33487,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33473,"src":"8671:1:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":33479,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8592:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":33480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8596:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"8592:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":33488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8592:81:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":33478,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8582:9:32","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":33489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8582:92:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33477,"id":33490,"nodeType":"Return","src":"8575:99:32"}]},"documentation":{"id":33471,"nodeType":"StructuredDocumentation","src":"8206:274:32","text":" @dev Returns an Ethereum Signed Message, created from `s`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"8494:22:32","parameters":{"id":33474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33473,"mutability":"mutable","name":"s","nameLocation":"8530:1:32","nodeType":"VariableDeclaration","scope":33492,"src":"8517:14:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":33472,"name":"bytes","nodeType":"ElementaryTypeName","src":"8517:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8516:16:32"},"returnParameters":{"id":33477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33476,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33492,"src":"8556:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8556:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8555:9:32"},"scope":33525,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33504,"nodeType":"FunctionDefinition","src":"9020:397:32","nodes":[],"body":{"id":33503,"nodeType":"Block","src":"9127:290:32","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"9189:222:32","statements":[{"nodeType":"YulVariableDeclaration","src":"9203:22:32","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9220:4:32","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9214:5:32"},"nodeType":"YulFunctionCall","src":"9214:11:32"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"9207:3:32","type":""}]},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"9245:3:32"},{"hexValue":"1901","kind":"string","nodeType":"YulLiteral","src":"9250:10:32","type":"","value":"\u0019\u0001"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9238:6:32"},"nodeType":"YulFunctionCall","src":"9238:23:32"},"nodeType":"YulExpressionStatement","src":"9238:23:32"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"9285:3:32"},{"kind":"number","nodeType":"YulLiteral","src":"9290:4:32","type":"","value":"0x02"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9281:3:32"},"nodeType":"YulFunctionCall","src":"9281:14:32"},{"name":"domainSeparator","nodeType":"YulIdentifier","src":"9297:15:32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9274:6:32"},"nodeType":"YulFunctionCall","src":"9274:39:32"},"nodeType":"YulExpressionStatement","src":"9274:39:32"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"9337:3:32"},{"kind":"number","nodeType":"YulLiteral","src":"9342:4:32","type":"","value":"0x22"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9333:3:32"},"nodeType":"YulFunctionCall","src":"9333:14:32"},{"name":"structHash","nodeType":"YulIdentifier","src":"9349:10:32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9326:6:32"},"nodeType":"YulFunctionCall","src":"9326:34:32"},"nodeType":"YulExpressionStatement","src":"9326:34:32"},{"nodeType":"YulAssignment","src":"9373:28:32","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"9391:3:32"},{"kind":"number","nodeType":"YulLiteral","src":"9396:4:32","type":"","value":"0x42"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"9381:9:32"},"nodeType":"YulFunctionCall","src":"9381:20:32"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"9373:4:32"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":33500,"isOffset":false,"isSlot":false,"src":"9373:4:32","valueSize":1},{"declaration":33495,"isOffset":false,"isSlot":false,"src":"9297:15:32","valueSize":1},{"declaration":33497,"isOffset":false,"isSlot":false,"src":"9349:10:32","valueSize":1}],"id":33502,"nodeType":"InlineAssembly","src":"9180:231:32"}]},"documentation":{"id":33493,"nodeType":"StructuredDocumentation","src":"8687:328:32","text":" @dev Returns an Ethereum Signed Typed Data, created from a\n `domainSeparator` and a `structHash`. This produces hash corresponding\n to the one signed with the\n https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]\n JSON-RPC method as part of EIP-712.\n See {recover}."},"implemented":true,"kind":"function","modifiers":[],"name":"toTypedDataHash","nameLocation":"9029:15:32","parameters":{"id":33498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33495,"mutability":"mutable","name":"domainSeparator","nameLocation":"9053:15:32","nodeType":"VariableDeclaration","scope":33504,"src":"9045:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33494,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9045:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33497,"mutability":"mutable","name":"structHash","nameLocation":"9078:10:32","nodeType":"VariableDeclaration","scope":33504,"src":"9070:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33496,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9070:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9044:45:32"},"returnParameters":{"id":33501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33500,"mutability":"mutable","name":"data","nameLocation":"9121:4:32","nodeType":"VariableDeclaration","scope":33504,"src":"9113:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9113:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9112:14:32"},"scope":33525,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33524,"nodeType":"FunctionDefinition","src":"9621:191:32","nodes":[],"body":{"id":33523,"nodeType":"Block","src":"9732:80:32","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1900","id":33517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"9776:10:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},"value":"\u0019\u0000"},{"id":33518,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33507,"src":"9788:9:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33519,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33509,"src":"9799:4:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":33515,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9759:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":33516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9763:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"9759:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":33520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9759:45:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":33514,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9749:9:32","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":33521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9749:56:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33513,"id":33522,"nodeType":"Return","src":"9742:63:32"}]},"documentation":{"id":33505,"nodeType":"StructuredDocumentation","src":"9423:193:32","text":" @dev Returns an Ethereum Signed Data with intended validator, created from a\n `validator` and `data` according to the version 0 of EIP-191.\n See {recover}."},"implemented":true,"kind":"function","modifiers":[],"name":"toDataWithIntendedValidatorHash","nameLocation":"9630:31:32","parameters":{"id":33510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33507,"mutability":"mutable","name":"validator","nameLocation":"9670:9:32","nodeType":"VariableDeclaration","scope":33524,"src":"9662:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33506,"name":"address","nodeType":"ElementaryTypeName","src":"9662:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33509,"mutability":"mutable","name":"data","nameLocation":"9694:4:32","nodeType":"VariableDeclaration","scope":33524,"src":"9681:17:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":33508,"name":"bytes","nodeType":"ElementaryTypeName","src":"9681:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9661:38:32"},"returnParameters":{"id":33513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33524,"src":"9723:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33511,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9723:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9722:9:32"},"scope":33525,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"ECDSA","contractDependencies":[],"contractKind":"library","documentation":{"id":33117,"nodeType":"StructuredDocumentation","src":"164:205:32","text":" @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address."},"fullyImplemented":true,"linearizedBaseContracts":[33525],"name":"ECDSA","nameLocation":"378:5:32","scope":33526,"usedErrors":[33125,33130,33135]}],"license":"MIT"},"id":32} \ No newline at end of file diff --git a/.out/ERC20.sol/ERC20.json b/.out/ERC20.sol/ERC20.json index 70c582136..10c802fda 100644 --- a/.out/ERC20.sol/ERC20.json +++ b/.out/ERC20.sol/ERC20.json @@ -1 +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":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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},{"type":"error","name":"ERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"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","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"ERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"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\":\"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\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"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\":[],\"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\":\"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. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"errors\":{\"ERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"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 `amount` 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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"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 `amount`.\"},\"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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1\",\"dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86\",\"dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013\",\"dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"ERC20FailedDecreaseAllowance"},{"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":"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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"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":[],"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":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` 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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"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 `amount`."},"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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":"ERC20"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b","urls":["bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1","dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3","urls":["bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86","dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca","urls":["bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013","dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","id":31922,"exportedSymbols":{"Context":[32431],"ERC20":[31921],"IERC1155Errors":[31351],"IERC20":[31999],"IERC20Errors":[31256],"IERC20Metadata":[32024],"IERC721Errors":[31304]},"nodeType":"SourceUnit","src":"105:11692:23","nodes":[{"id":31353,"nodeType":"PragmaDirective","src":"105:24:23","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":31354,"nodeType":"ImportDirective","src":"131:22:23","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","nameLocation":"-1:-1:-1","scope":31922,"sourceUnit":32000,"symbolAliases":[],"unitAlias":""},{"id":31355,"nodeType":"ImportDirective","src":"154:41:23","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":31922,"sourceUnit":32025,"symbolAliases":[],"unitAlias":""},{"id":31356,"nodeType":"ImportDirective","src":"196:33:23","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","file":"../../utils/Context.sol","nameLocation":"-1:-1:-1","scope":31922,"sourceUnit":32432,"symbolAliases":[],"unitAlias":""},{"id":31357,"nodeType":"ImportDirective","src":"230:45:23","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","file":"../../interfaces/draft-IERC6093.sol","nameLocation":"-1:-1:-1","scope":31922,"sourceUnit":31352,"symbolAliases":[],"unitAlias":""},{"id":31921,"nodeType":"ContractDefinition","src":"1521:10275:23","nodes":[{"id":31370,"nodeType":"VariableDeclaration","src":"1600:45:23","nodes":[],"constant":false,"mutability":"mutable","name":"_balances","nameLocation":"1636:9:23","scope":31921,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":31369,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":31367,"name":"address","nodeType":"ElementaryTypeName","src":"1608:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1600:27:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":31368,"name":"uint256","nodeType":"ElementaryTypeName","src":"1619:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":31376,"nodeType":"VariableDeclaration","src":"1652:67:23","nodes":[],"constant":false,"mutability":"mutable","name":"_allowances","nameLocation":"1708:11:23","scope":31921,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":31375,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":31371,"name":"address","nodeType":"ElementaryTypeName","src":"1660:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1652:47:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":31374,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":31372,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1671:27:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":31373,"name":"uint256","nodeType":"ElementaryTypeName","src":"1690:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"id":31378,"nodeType":"VariableDeclaration","src":"1726:28:23","nodes":[],"constant":false,"mutability":"mutable","name":"_totalSupply","nameLocation":"1742:12:23","scope":31921,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31377,"name":"uint256","nodeType":"ElementaryTypeName","src":"1726:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":31380,"nodeType":"VariableDeclaration","src":"1761:20:23","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"1776:5:23","scope":31921,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":31379,"name":"string","nodeType":"ElementaryTypeName","src":"1761:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":31382,"nodeType":"VariableDeclaration","src":"1787:22:23","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"1802:7:23","scope":31921,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":31381,"name":"string","nodeType":"ElementaryTypeName","src":"1787:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":31391,"nodeType":"ErrorDefinition","src":"1892:105:23","nodes":[],"documentation":{"id":31383,"nodeType":"StructuredDocumentation","src":"1816:71:23","text":" @dev Indicates a failed `decreaseAllowance` request."},"errorSelector":"a60f030c","name":"ERC20FailedDecreaseAllowance","nameLocation":"1898:28:23","parameters":{"id":31390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31385,"mutability":"mutable","name":"spender","nameLocation":"1935:7:23","nodeType":"VariableDeclaration","scope":31391,"src":"1927:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31384,"name":"address","nodeType":"ElementaryTypeName","src":"1927:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31387,"mutability":"mutable","name":"currentAllowance","nameLocation":"1952:16:23","nodeType":"VariableDeclaration","scope":31391,"src":"1944:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31386,"name":"uint256","nodeType":"ElementaryTypeName","src":"1944:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31389,"mutability":"mutable","name":"requestedDecrease","nameLocation":"1978:17:23","nodeType":"VariableDeclaration","scope":31391,"src":"1970:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31388,"name":"uint256","nodeType":"ElementaryTypeName","src":"1970:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1926:70:23"}},{"id":31408,"nodeType":"FunctionDefinition","src":"2179:113:23","nodes":[],"body":{"id":31407,"nodeType":"Block","src":"2235:57:23","nodes":[],"statements":[{"expression":{"id":31401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31399,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31380,"src":"2245:5:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":31400,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31394,"src":"2253:5:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2245:13:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":31402,"nodeType":"ExpressionStatement","src":"2245:13:23"},{"expression":{"id":31405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31403,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31382,"src":"2268:7:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":31404,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31396,"src":"2278:7:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2268:17:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":31406,"nodeType":"ExpressionStatement","src":"2268:17:23"}]},"documentation":{"id":31392,"nodeType":"StructuredDocumentation","src":"2003:171:23","text":" @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":31397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31394,"mutability":"mutable","name":"name_","nameLocation":"2205:5:23","nodeType":"VariableDeclaration","scope":31408,"src":"2191:19:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31393,"name":"string","nodeType":"ElementaryTypeName","src":"2191:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":31396,"mutability":"mutable","name":"symbol_","nameLocation":"2226:7:23","nodeType":"VariableDeclaration","scope":31408,"src":"2212:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31395,"name":"string","nodeType":"ElementaryTypeName","src":"2212:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2190:44:23"},"returnParameters":{"id":31398,"nodeType":"ParameterList","parameters":[],"src":"2235:0:23"},"scope":31921,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":31417,"nodeType":"FunctionDefinition","src":"2357:89:23","nodes":[],"body":{"id":31416,"nodeType":"Block","src":"2417:29:23","nodes":[],"statements":[{"expression":{"id":31414,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31380,"src":"2434:5:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":31413,"id":31415,"nodeType":"Return","src":"2427:12:23"}]},"baseFunctions":[32011],"documentation":{"id":31409,"nodeType":"StructuredDocumentation","src":"2298:54:23","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2366:4:23","parameters":{"id":31410,"nodeType":"ParameterList","parameters":[],"src":"2370:2:23"},"returnParameters":{"id":31413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31417,"src":"2402:13:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31411,"name":"string","nodeType":"ElementaryTypeName","src":"2402:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2401:15:23"},"scope":31921,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":31426,"nodeType":"FunctionDefinition","src":"2559:93:23","nodes":[],"body":{"id":31425,"nodeType":"Block","src":"2621:31:23","nodes":[],"statements":[{"expression":{"id":31423,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31382,"src":"2638:7:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":31422,"id":31424,"nodeType":"Return","src":"2631:14:23"}]},"baseFunctions":[32017],"documentation":{"id":31418,"nodeType":"StructuredDocumentation","src":"2452:102:23","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2568:6:23","parameters":{"id":31419,"nodeType":"ParameterList","parameters":[],"src":"2574:2:23"},"returnParameters":{"id":31422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31421,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31426,"src":"2606:13:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31420,"name":"string","nodeType":"ElementaryTypeName","src":"2606:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2605:15:23"},"scope":31921,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":31435,"nodeType":"FunctionDefinition","src":"3285:82:23","nodes":[],"body":{"id":31434,"nodeType":"Block","src":"3341:26:23","nodes":[],"statements":[{"expression":{"hexValue":"3138","id":31432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3358:2:23","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":31431,"id":31433,"nodeType":"Return","src":"3351:9:23"}]},"baseFunctions":[32023],"documentation":{"id":31427,"nodeType":"StructuredDocumentation","src":"2658:622:23","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3294:8:23","parameters":{"id":31428,"nodeType":"ParameterList","parameters":[],"src":"3302:2:23"},"returnParameters":{"id":31431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31435,"src":"3334:5:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":31429,"name":"uint8","nodeType":"ElementaryTypeName","src":"3334:5:23","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3333:7:23"},"scope":31921,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":31444,"nodeType":"FunctionDefinition","src":"3427:97:23","nodes":[],"body":{"id":31443,"nodeType":"Block","src":"3488:36:23","nodes":[],"statements":[{"expression":{"id":31441,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31378,"src":"3505:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31440,"id":31442,"nodeType":"Return","src":"3498:19:23"}]},"baseFunctions":[31948],"documentation":{"id":31436,"nodeType":"StructuredDocumentation","src":"3373:49:23","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3436:11:23","parameters":{"id":31437,"nodeType":"ParameterList","parameters":[],"src":"3447:2:23"},"returnParameters":{"id":31440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31444,"src":"3479:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31438,"name":"uint256","nodeType":"ElementaryTypeName","src":"3479:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3478:9:23"},"scope":31921,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":31457,"nodeType":"FunctionDefinition","src":"3582:116:23","nodes":[],"body":{"id":31456,"nodeType":"Block","src":"3656:42:23","nodes":[],"statements":[{"expression":{"baseExpression":{"id":31452,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31370,"src":"3673:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31454,"indexExpression":{"id":31453,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31447,"src":"3683:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3673:18:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31451,"id":31455,"nodeType":"Return","src":"3666:25:23"}]},"baseFunctions":[31956],"documentation":{"id":31445,"nodeType":"StructuredDocumentation","src":"3530:47:23","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3591:9:23","parameters":{"id":31448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31447,"mutability":"mutable","name":"account","nameLocation":"3609:7:23","nodeType":"VariableDeclaration","scope":31457,"src":"3601:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31446,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3600:17:23"},"returnParameters":{"id":31451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31457,"src":"3647:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31449,"name":"uint256","nodeType":"ElementaryTypeName","src":"3647:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3646:9:23"},"scope":31921,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":31481,"nodeType":"FunctionDefinition","src":"3894:180:23","nodes":[],"body":{"id":31480,"nodeType":"Block","src":"3970:104:23","nodes":[],"statements":[{"assignments":[31468],"declarations":[{"constant":false,"id":31468,"mutability":"mutable","name":"owner","nameLocation":"3988:5:23","nodeType":"VariableDeclaration","scope":31480,"src":"3980:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31467,"name":"address","nodeType":"ElementaryTypeName","src":"3980:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":31471,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":31469,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32421,"src":"3996:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3996:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3980:28:23"},{"expression":{"arguments":[{"id":31473,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31468,"src":"4028:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31474,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31460,"src":"4035:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31475,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31462,"src":"4039:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31472,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31675,"src":"4018:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4018:28:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31477,"nodeType":"ExpressionStatement","src":"4018:28:23"},{"expression":{"hexValue":"74727565","id":31478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4063:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":31466,"id":31479,"nodeType":"Return","src":"4056:11:23"}]},"baseFunctions":[31966],"documentation":{"id":31458,"nodeType":"StructuredDocumentation","src":"3704:185:23","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3903:8:23","parameters":{"id":31463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31460,"mutability":"mutable","name":"to","nameLocation":"3920:2:23","nodeType":"VariableDeclaration","scope":31481,"src":"3912:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31459,"name":"address","nodeType":"ElementaryTypeName","src":"3912:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31462,"mutability":"mutable","name":"amount","nameLocation":"3932:6:23","nodeType":"VariableDeclaration","scope":31481,"src":"3924:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31461,"name":"uint256","nodeType":"ElementaryTypeName","src":"3924:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3911:28:23"},"returnParameters":{"id":31466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31465,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31481,"src":"3964:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31464,"name":"bool","nodeType":"ElementaryTypeName","src":"3964:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3963:6:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":31498,"nodeType":"FunctionDefinition","src":"4132:140:23","nodes":[],"body":{"id":31497,"nodeType":"Block","src":"4221:51:23","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":31491,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31376,"src":"4238:11:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":31493,"indexExpression":{"id":31492,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31484,"src":"4250:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4238:18:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31495,"indexExpression":{"id":31494,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31486,"src":"4257:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4238:27:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31490,"id":31496,"nodeType":"Return","src":"4231:34:23"}]},"baseFunctions":[31976],"documentation":{"id":31482,"nodeType":"StructuredDocumentation","src":"4080:47:23","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"4141:9:23","parameters":{"id":31487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31484,"mutability":"mutable","name":"owner","nameLocation":"4159:5:23","nodeType":"VariableDeclaration","scope":31498,"src":"4151:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31483,"name":"address","nodeType":"ElementaryTypeName","src":"4151:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31486,"mutability":"mutable","name":"spender","nameLocation":"4174:7:23","nodeType":"VariableDeclaration","scope":31498,"src":"4166:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31485,"name":"address","nodeType":"ElementaryTypeName","src":"4166:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4150:32:23"},"returnParameters":{"id":31490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31498,"src":"4212:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31488,"name":"uint256","nodeType":"ElementaryTypeName","src":"4212:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4211:9:23"},"scope":31921,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":31522,"nodeType":"FunctionDefinition","src":"4580:188:23","nodes":[],"body":{"id":31521,"nodeType":"Block","src":"4660:108:23","nodes":[],"statements":[{"assignments":[31509],"declarations":[{"constant":false,"id":31509,"mutability":"mutable","name":"owner","nameLocation":"4678:5:23","nodeType":"VariableDeclaration","scope":31521,"src":"4670:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31508,"name":"address","nodeType":"ElementaryTypeName","src":"4670:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":31512,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":31510,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32421,"src":"4686:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4686:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4670:28:23"},{"expression":{"arguments":[{"id":31514,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31509,"src":"4717:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31515,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31501,"src":"4724:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31516,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31503,"src":"4733:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31513,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31873,"src":"4708:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4708:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31518,"nodeType":"ExpressionStatement","src":"4708:32:23"},{"expression":{"hexValue":"74727565","id":31519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4757:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":31507,"id":31520,"nodeType":"Return","src":"4750:11:23"}]},"baseFunctions":[31986],"documentation":{"id":31499,"nodeType":"StructuredDocumentation","src":"4278:297:23","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4589:7:23","parameters":{"id":31504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31501,"mutability":"mutable","name":"spender","nameLocation":"4605:7:23","nodeType":"VariableDeclaration","scope":31522,"src":"4597:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31500,"name":"address","nodeType":"ElementaryTypeName","src":"4597:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31503,"mutability":"mutable","name":"amount","nameLocation":"4622:6:23","nodeType":"VariableDeclaration","scope":31522,"src":"4614:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31502,"name":"uint256","nodeType":"ElementaryTypeName","src":"4614:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4596:33:23"},"returnParameters":{"id":31507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31506,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31522,"src":"4654:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31505,"name":"bool","nodeType":"ElementaryTypeName","src":"4654:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4653:6:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":31554,"nodeType":"FunctionDefinition","src":"5330:247:23","nodes":[],"body":{"id":31553,"nodeType":"Block","src":"5424:153:23","nodes":[],"statements":[{"assignments":[31535],"declarations":[{"constant":false,"id":31535,"mutability":"mutable","name":"spender","nameLocation":"5442:7:23","nodeType":"VariableDeclaration","scope":31553,"src":"5434:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31534,"name":"address","nodeType":"ElementaryTypeName","src":"5434:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":31538,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":31536,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32421,"src":"5452:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5452:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5434:30:23"},{"expression":{"arguments":[{"id":31540,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31525,"src":"5490:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31541,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31535,"src":"5496:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31542,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31529,"src":"5505:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31539,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31920,"src":"5474:15:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5474:38:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31544,"nodeType":"ExpressionStatement","src":"5474:38:23"},{"expression":{"arguments":[{"id":31546,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31525,"src":"5532:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31547,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31527,"src":"5538:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31548,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31529,"src":"5542:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31545,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31675,"src":"5522:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5522:27:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31550,"nodeType":"ExpressionStatement","src":"5522:27:23"},{"expression":{"hexValue":"74727565","id":31551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5566:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":31533,"id":31552,"nodeType":"Return","src":"5559:11:23"}]},"baseFunctions":[31998],"documentation":{"id":31523,"nodeType":"StructuredDocumentation","src":"4774:551:23","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5339:12:23","parameters":{"id":31530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31525,"mutability":"mutable","name":"from","nameLocation":"5360:4:23","nodeType":"VariableDeclaration","scope":31554,"src":"5352:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31524,"name":"address","nodeType":"ElementaryTypeName","src":"5352:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31527,"mutability":"mutable","name":"to","nameLocation":"5374:2:23","nodeType":"VariableDeclaration","scope":31554,"src":"5366:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31526,"name":"address","nodeType":"ElementaryTypeName","src":"5366:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31529,"mutability":"mutable","name":"amount","nameLocation":"5386:6:23","nodeType":"VariableDeclaration","scope":31554,"src":"5378:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31528,"name":"uint256","nodeType":"ElementaryTypeName","src":"5378:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5351:42:23"},"returnParameters":{"id":31533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31532,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31554,"src":"5418:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31531,"name":"bool","nodeType":"ElementaryTypeName","src":"5418:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5417:6:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":31583,"nodeType":"FunctionDefinition","src":"5972:234:23","nodes":[],"body":{"id":31582,"nodeType":"Block","src":"6066:140:23","nodes":[],"statements":[{"assignments":[31565],"declarations":[{"constant":false,"id":31565,"mutability":"mutable","name":"owner","nameLocation":"6084:5:23","nodeType":"VariableDeclaration","scope":31582,"src":"6076:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31564,"name":"address","nodeType":"ElementaryTypeName","src":"6076:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":31568,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":31566,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32421,"src":"6092:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6092:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6076:28:23"},{"expression":{"arguments":[{"id":31570,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31565,"src":"6123:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31571,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31557,"src":"6130:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":31573,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31565,"src":"6149:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31574,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31557,"src":"6156:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":31572,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31498,"src":"6139:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":31575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6139:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":31576,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31559,"src":"6167:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6139:38:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31569,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31873,"src":"6114:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6114:64:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31579,"nodeType":"ExpressionStatement","src":"6114:64:23"},{"expression":{"hexValue":"74727565","id":31580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6195:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":31563,"id":31581,"nodeType":"Return","src":"6188:11:23"}]},"documentation":{"id":31555,"nodeType":"StructuredDocumentation","src":"5583:384:23","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5981:17:23","parameters":{"id":31560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31557,"mutability":"mutable","name":"spender","nameLocation":"6007:7:23","nodeType":"VariableDeclaration","scope":31583,"src":"5999:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31556,"name":"address","nodeType":"ElementaryTypeName","src":"5999:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31559,"mutability":"mutable","name":"addedValue","nameLocation":"6024:10:23","nodeType":"VariableDeclaration","scope":31583,"src":"6016:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31558,"name":"uint256","nodeType":"ElementaryTypeName","src":"6016:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5998:37:23"},"returnParameters":{"id":31563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31583,"src":"6060:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31561,"name":"bool","nodeType":"ElementaryTypeName","src":"6060:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6059:6:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":31628,"nodeType":"FunctionDefinition","src":"6695:493:23","nodes":[],"body":{"id":31627,"nodeType":"Block","src":"6796:392:23","nodes":[],"statements":[{"assignments":[31594],"declarations":[{"constant":false,"id":31594,"mutability":"mutable","name":"owner","nameLocation":"6814:5:23","nodeType":"VariableDeclaration","scope":31627,"src":"6806:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31593,"name":"address","nodeType":"ElementaryTypeName","src":"6806:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":31597,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":31595,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32421,"src":"6822:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6822:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6806:28:23"},{"assignments":[31599],"declarations":[{"constant":false,"id":31599,"mutability":"mutable","name":"currentAllowance","nameLocation":"6852:16:23","nodeType":"VariableDeclaration","scope":31627,"src":"6844:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31598,"name":"uint256","nodeType":"ElementaryTypeName","src":"6844:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31604,"initialValue":{"arguments":[{"id":31601,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31594,"src":"6881:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31602,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31586,"src":"6888:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":31600,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31498,"src":"6871:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":31603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6871:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6844:52:23"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31605,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31599,"src":"6910:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":31606,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31588,"src":"6929:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6910:36:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31615,"nodeType":"IfStatement","src":"6906:148:23","trueBody":{"id":31614,"nodeType":"Block","src":"6948:106:23","statements":[{"errorCall":{"arguments":[{"id":31609,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31586,"src":"6998:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31610,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31599,"src":"7007:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31611,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31588,"src":"7025:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31608,"name":"ERC20FailedDecreaseAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31391,"src":"6969:28:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":31612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6969:74:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31613,"nodeType":"RevertStatement","src":"6962:81:23"}]}},{"id":31624,"nodeType":"UncheckedBlock","src":"7063:97:23","statements":[{"expression":{"arguments":[{"id":31617,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31594,"src":"7096:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31618,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31586,"src":"7103:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31619,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31599,"src":"7112:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":31620,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31588,"src":"7131:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7112:36:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31616,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31873,"src":"7087:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7087:62:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31623,"nodeType":"ExpressionStatement","src":"7087:62:23"}]},{"expression":{"hexValue":"74727565","id":31625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7177:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":31592,"id":31626,"nodeType":"Return","src":"7170:11:23"}]},"documentation":{"id":31584,"nodeType":"StructuredDocumentation","src":"6212:478:23","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `requestedDecrease`."},"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6704:17:23","parameters":{"id":31589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31586,"mutability":"mutable","name":"spender","nameLocation":"6730:7:23","nodeType":"VariableDeclaration","scope":31628,"src":"6722:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31585,"name":"address","nodeType":"ElementaryTypeName","src":"6722:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31588,"mutability":"mutable","name":"requestedDecrease","nameLocation":"6747:17:23","nodeType":"VariableDeclaration","scope":31628,"src":"6739:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31587,"name":"uint256","nodeType":"ElementaryTypeName","src":"6739:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6721:44:23"},"returnParameters":{"id":31592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31628,"src":"6790:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31590,"name":"bool","nodeType":"ElementaryTypeName","src":"6790:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6789:6:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":31675,"nodeType":"FunctionDefinition","src":"7553:302:23","nodes":[],"body":{"id":31674,"nodeType":"Block","src":"7623:232:23","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31638,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31631,"src":"7637:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7653:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7645:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31639,"name":"address","nodeType":"ElementaryTypeName","src":"7645:7:23","typeDescriptions":{}}},"id":31642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7645:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7637:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31652,"nodeType":"IfStatement","src":"7633:86:23","trueBody":{"id":31651,"nodeType":"Block","src":"7657:62:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":31647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7705:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7697:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31645,"name":"address","nodeType":"ElementaryTypeName","src":"7697:7:23","typeDescriptions":{}}},"id":31648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7697:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31644,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31231,"src":"7678:18:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7678:30:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31650,"nodeType":"RevertStatement","src":"7671:37:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31653,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31633,"src":"7732:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7746:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7738:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31654,"name":"address","nodeType":"ElementaryTypeName","src":"7738:7:23","typeDescriptions":{}}},"id":31657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7738:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7732:16:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31667,"nodeType":"IfStatement","src":"7728:86:23","trueBody":{"id":31666,"nodeType":"Block","src":"7750:64:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":31662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7800:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7792:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31660,"name":"address","nodeType":"ElementaryTypeName","src":"7792:7:23","typeDescriptions":{}}},"id":31663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7792:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31659,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31236,"src":"7771:20:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7771:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31665,"nodeType":"RevertStatement","src":"7764:39:23"}]}},{"expression":{"arguments":[{"id":31669,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31631,"src":"7831:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31670,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31633,"src":"7837:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31671,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31635,"src":"7841:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31668,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31752,"src":"7823:7:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7823:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31673,"nodeType":"ExpressionStatement","src":"7823:25:23"}]},"documentation":{"id":31629,"nodeType":"StructuredDocumentation","src":"7194:354:23","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7562:9:23","parameters":{"id":31636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31631,"mutability":"mutable","name":"from","nameLocation":"7580:4:23","nodeType":"VariableDeclaration","scope":31675,"src":"7572:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31630,"name":"address","nodeType":"ElementaryTypeName","src":"7572:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31633,"mutability":"mutable","name":"to","nameLocation":"7594:2:23","nodeType":"VariableDeclaration","scope":31675,"src":"7586:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31632,"name":"address","nodeType":"ElementaryTypeName","src":"7586:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31635,"mutability":"mutable","name":"amount","nameLocation":"7606:6:23","nodeType":"VariableDeclaration","scope":31675,"src":"7598:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31634,"name":"uint256","nodeType":"ElementaryTypeName","src":"7598:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7571:42:23"},"returnParameters":{"id":31637,"nodeType":"ParameterList","parameters":[],"src":"7623:0:23"},"scope":31921,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":31752,"nodeType":"FunctionDefinition","src":"8155:1017:23","nodes":[],"body":{"id":31751,"nodeType":"Block","src":"8231:941:23","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31685,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31678,"src":"8245:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8261:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8253:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31686,"name":"address","nodeType":"ElementaryTypeName","src":"8253:7:23","typeDescriptions":{}}},"id":31689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8253:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8245:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":31722,"nodeType":"Block","src":"8318:366:23","statements":[{"assignments":[31697],"declarations":[{"constant":false,"id":31697,"mutability":"mutable","name":"fromBalance","nameLocation":"8340:11:23","nodeType":"VariableDeclaration","scope":31722,"src":"8332:19:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31696,"name":"uint256","nodeType":"ElementaryTypeName","src":"8332:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31701,"initialValue":{"baseExpression":{"id":31698,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31370,"src":"8354:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31700,"indexExpression":{"id":31699,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31678,"src":"8364:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8354:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8332:37:23"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31702,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31697,"src":"8387:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":31703,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31682,"src":"8401:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8387:20:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31712,"nodeType":"IfStatement","src":"8383:117:23","trueBody":{"id":31711,"nodeType":"Block","src":"8409:91:23","statements":[{"errorCall":{"arguments":[{"id":31706,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31678,"src":"8459:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31707,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31697,"src":"8465:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31708,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31682,"src":"8478:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31705,"name":"ERC20InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31226,"src":"8434:24:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":31709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8434:51:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31710,"nodeType":"RevertStatement","src":"8427:58:23"}]}},{"id":31721,"nodeType":"UncheckedBlock","src":"8513:161:23","statements":[{"expression":{"id":31719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":31713,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31370,"src":"8621:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31715,"indexExpression":{"id":31714,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31678,"src":"8631:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8621:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31716,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31697,"src":"8639:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":31717,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31682,"src":"8653:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8639:20:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8621:38:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31720,"nodeType":"ExpressionStatement","src":"8621:38:23"}]}]},"id":31723,"nodeType":"IfStatement","src":"8241:443:23","trueBody":{"id":31695,"nodeType":"Block","src":"8265:47:23","statements":[{"expression":{"id":31693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31691,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31378,"src":"8279:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":31692,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31682,"src":"8295:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8279:22:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31694,"nodeType":"ExpressionStatement","src":"8279:22:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31724,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31680,"src":"8698:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8712:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8704:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31725,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:23","typeDescriptions":{}}},"id":31728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8704:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8698:16:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":31743,"nodeType":"Block","src":"8916:208:23","statements":[{"id":31742,"nodeType":"UncheckedBlock","src":"8930:184:23","statements":[{"expression":{"id":31740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":31736,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31370,"src":"9076:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31738,"indexExpression":{"id":31737,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31680,"src":"9086:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9076:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":31739,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31682,"src":"9093:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9076:23:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31741,"nodeType":"ExpressionStatement","src":"9076:23:23"}]}]},"id":31744,"nodeType":"IfStatement","src":"8694:430:23","trueBody":{"id":31735,"nodeType":"Block","src":"8716:194:23","statements":[{"id":31734,"nodeType":"UncheckedBlock","src":"8730:170:23","statements":[{"expression":{"id":31732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31730,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31378,"src":"8863:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":31731,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31682,"src":"8879:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8863:22:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31733,"nodeType":"ExpressionStatement","src":"8863:22:23"}]}]}},{"eventCall":{"arguments":[{"id":31746,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31678,"src":"9148:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31747,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31680,"src":"9154:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31748,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31682,"src":"9158:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31745,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31933,"src":"9139:8:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9139:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31750,"nodeType":"EmitStatement","src":"9134:31:23"}]},"documentation":{"id":31676,"nodeType":"StructuredDocumentation","src":"7861:289:23","text":" @dev Transfers `amount` of tokens from `from` to `to`, or alternatively mints (or burns) if `from` (or `to`) is\n the zero address. All customizations to transfers, mints, and burns should be done by overriding this function.\n Emits a {Transfer} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"8164:7:23","parameters":{"id":31683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31678,"mutability":"mutable","name":"from","nameLocation":"8180:4:23","nodeType":"VariableDeclaration","scope":31752,"src":"8172:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31677,"name":"address","nodeType":"ElementaryTypeName","src":"8172:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31680,"mutability":"mutable","name":"to","nameLocation":"8194:2:23","nodeType":"VariableDeclaration","scope":31752,"src":"8186:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31679,"name":"address","nodeType":"ElementaryTypeName","src":"8186:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31682,"mutability":"mutable","name":"amount","nameLocation":"8206:6:23","nodeType":"VariableDeclaration","scope":31752,"src":"8198:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31681,"name":"uint256","nodeType":"ElementaryTypeName","src":"8198:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8171:42:23"},"returnParameters":{"id":31684,"nodeType":"ParameterList","parameters":[],"src":"8231:0:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":31785,"nodeType":"FunctionDefinition","src":"9504:210:23","nodes":[],"body":{"id":31784,"nodeType":"Block","src":"9561:153:23","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31760,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31755,"src":"9575:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9594:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9586:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31761,"name":"address","nodeType":"ElementaryTypeName","src":"9586:7:23","typeDescriptions":{}}},"id":31764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9586:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9575:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31774,"nodeType":"IfStatement","src":"9571:91:23","trueBody":{"id":31773,"nodeType":"Block","src":"9598:64:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":31769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9648:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9640:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31767,"name":"address","nodeType":"ElementaryTypeName","src":"9640:7:23","typeDescriptions":{}}},"id":31770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9640:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31766,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31236,"src":"9619:20:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9619:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31772,"nodeType":"RevertStatement","src":"9612:39:23"}]}},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":31778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9687:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9679:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31776,"name":"address","nodeType":"ElementaryTypeName","src":"9679:7:23","typeDescriptions":{}}},"id":31779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9679:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31780,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31755,"src":"9691:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31781,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31757,"src":"9700:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31775,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31752,"src":"9671:7:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9671:36:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31783,"nodeType":"ExpressionStatement","src":"9671:36:23"}]},"documentation":{"id":31753,"nodeType":"StructuredDocumentation","src":"9178:321:23","text":" @dev Creates `amount` tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"9513:5:23","parameters":{"id":31758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31755,"mutability":"mutable","name":"account","nameLocation":"9527:7:23","nodeType":"VariableDeclaration","scope":31785,"src":"9519:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31754,"name":"address","nodeType":"ElementaryTypeName","src":"9519:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31757,"mutability":"mutable","name":"amount","nameLocation":"9544:6:23","nodeType":"VariableDeclaration","scope":31785,"src":"9536:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31756,"name":"uint256","nodeType":"ElementaryTypeName","src":"9536:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9518:33:23"},"returnParameters":{"id":31759,"nodeType":"ParameterList","parameters":[],"src":"9561:0:23"},"scope":31921,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":31818,"nodeType":"FunctionDefinition","src":"10028:208:23","nodes":[],"body":{"id":31817,"nodeType":"Block","src":"10085:151:23","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31793,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31788,"src":"10099:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10118:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10110:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31794,"name":"address","nodeType":"ElementaryTypeName","src":"10110:7:23","typeDescriptions":{}}},"id":31797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10110:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10099:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31807,"nodeType":"IfStatement","src":"10095:89:23","trueBody":{"id":31806,"nodeType":"Block","src":"10122:62:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":31802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10170:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10162:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31800,"name":"address","nodeType":"ElementaryTypeName","src":"10162:7:23","typeDescriptions":{}}},"id":31803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10162:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31799,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31231,"src":"10143:18:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10143:30:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31805,"nodeType":"RevertStatement","src":"10136:37:23"}]}},{"expression":{"arguments":[{"id":31809,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31788,"src":"10201:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":31812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10218:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10210:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31810,"name":"address","nodeType":"ElementaryTypeName","src":"10210:7:23","typeDescriptions":{}}},"id":31813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10210:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31814,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31790,"src":"10222:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31808,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31752,"src":"10193:7:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10193:36:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31816,"nodeType":"ExpressionStatement","src":"10193:36:23"}]},"documentation":{"id":31786,"nodeType":"StructuredDocumentation","src":"9720:303:23","text":" @dev Destroys `amount` tokens from `account`, by transferring it to address(0).\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead"},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"10037:5:23","parameters":{"id":31791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31788,"mutability":"mutable","name":"account","nameLocation":"10051:7:23","nodeType":"VariableDeclaration","scope":31818,"src":"10043:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31787,"name":"address","nodeType":"ElementaryTypeName","src":"10043:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31790,"mutability":"mutable","name":"amount","nameLocation":"10068:6:23","nodeType":"VariableDeclaration","scope":31818,"src":"10060:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31789,"name":"uint256","nodeType":"ElementaryTypeName","src":"10060:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10042:33:23"},"returnParameters":{"id":31792,"nodeType":"ParameterList","parameters":[],"src":"10085:0:23"},"scope":31921,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":31873,"nodeType":"FunctionDefinition","src":"10659:380:23","nodes":[],"body":{"id":31872,"nodeType":"Block","src":"10742:297:23","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31828,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31821,"src":"10756:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10773:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10765:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31829,"name":"address","nodeType":"ElementaryTypeName","src":"10765:7:23","typeDescriptions":{}}},"id":31832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10765:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10756:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31842,"nodeType":"IfStatement","src":"10752:89:23","trueBody":{"id":31841,"nodeType":"Block","src":"10777:64:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":31837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10827:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10819:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31835,"name":"address","nodeType":"ElementaryTypeName","src":"10819:7:23","typeDescriptions":{}}},"id":31838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10819:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31834,"name":"ERC20InvalidApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31250,"src":"10798:20:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10798:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31840,"nodeType":"RevertStatement","src":"10791:39:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31843,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31823,"src":"10854:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10873:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10865:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31844,"name":"address","nodeType":"ElementaryTypeName","src":"10865:7:23","typeDescriptions":{}}},"id":31847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10865:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10854:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31857,"nodeType":"IfStatement","src":"10850:90:23","trueBody":{"id":31856,"nodeType":"Block","src":"10877:63:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":31852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10926:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10918:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31850,"name":"address","nodeType":"ElementaryTypeName","src":"10918:7:23","typeDescriptions":{}}},"id":31853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10918:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31849,"name":"ERC20InvalidSpender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31255,"src":"10898:19:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10898:31:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31855,"nodeType":"RevertStatement","src":"10891:38:23"}]}},{"expression":{"id":31864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":31858,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31376,"src":"10949:11:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":31861,"indexExpression":{"id":31859,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31821,"src":"10961:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10949:18:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31862,"indexExpression":{"id":31860,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31823,"src":"10968:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10949:27:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":31863,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31825,"src":"10979:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10949:36:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31865,"nodeType":"ExpressionStatement","src":"10949:36:23"},{"eventCall":{"arguments":[{"id":31867,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31821,"src":"11009:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31868,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31823,"src":"11016:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31869,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31825,"src":"11025:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31866,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31942,"src":"11000:8:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11000:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31871,"nodeType":"EmitStatement","src":"10995:37:23"}]},"documentation":{"id":31819,"nodeType":"StructuredDocumentation","src":"10242:412:23","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10668:8:23","parameters":{"id":31826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31821,"mutability":"mutable","name":"owner","nameLocation":"10685:5:23","nodeType":"VariableDeclaration","scope":31873,"src":"10677:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31820,"name":"address","nodeType":"ElementaryTypeName","src":"10677:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31823,"mutability":"mutable","name":"spender","nameLocation":"10700:7:23","nodeType":"VariableDeclaration","scope":31873,"src":"10692:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31822,"name":"address","nodeType":"ElementaryTypeName","src":"10692:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31825,"mutability":"mutable","name":"amount","nameLocation":"10717:6:23","nodeType":"VariableDeclaration","scope":31873,"src":"10709:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31824,"name":"uint256","nodeType":"ElementaryTypeName","src":"10709:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10676:48:23"},"returnParameters":{"id":31827,"nodeType":"ParameterList","parameters":[],"src":"10742:0:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":31920,"nodeType":"FunctionDefinition","src":"11320:474:23","nodes":[],"body":{"id":31919,"nodeType":"Block","src":"11410:384:23","nodes":[],"statements":[{"assignments":[31884],"declarations":[{"constant":false,"id":31884,"mutability":"mutable","name":"currentAllowance","nameLocation":"11428:16:23","nodeType":"VariableDeclaration","scope":31919,"src":"11420:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31883,"name":"uint256","nodeType":"ElementaryTypeName","src":"11420:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31889,"initialValue":{"arguments":[{"id":31886,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31876,"src":"11457:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31887,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31878,"src":"11464:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":31885,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31498,"src":"11447:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":31888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11447:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11420:52:23"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31890,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31884,"src":"11486:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":31893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11511:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":31892,"name":"uint256","nodeType":"ElementaryTypeName","src":"11511:7:23","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":31891,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11506:4:23","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":31894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11506:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":31895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11520:3:23","memberName":"max","nodeType":"MemberAccess","src":"11506:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11486:37:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31918,"nodeType":"IfStatement","src":"11482:306:23","trueBody":{"id":31917,"nodeType":"Block","src":"11525:263:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31897,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31884,"src":"11543:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":31898,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31880,"src":"11562:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11543:25:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31907,"nodeType":"IfStatement","src":"11539:132:23","trueBody":{"id":31906,"nodeType":"Block","src":"11570:101:23","statements":[{"errorCall":{"arguments":[{"id":31901,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31878,"src":"11622:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31902,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31884,"src":"11631:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31903,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31880,"src":"11649:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31900,"name":"ERC20InsufficientAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31245,"src":"11595:26:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":31904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11595:61:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31905,"nodeType":"RevertStatement","src":"11588:68:23"}]}},{"id":31916,"nodeType":"UncheckedBlock","src":"11684:94:23","statements":[{"expression":{"arguments":[{"id":31909,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31876,"src":"11721:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31910,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31878,"src":"11728:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31911,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31884,"src":"11737:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":31912,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31880,"src":"11756:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11737:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31908,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31873,"src":"11712:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11712:51:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31915,"nodeType":"ExpressionStatement","src":"11712:51:23"}]}]}}]},"documentation":{"id":31874,"nodeType":"StructuredDocumentation","src":"11045:270:23","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11329:15:23","parameters":{"id":31881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31876,"mutability":"mutable","name":"owner","nameLocation":"11353:5:23","nodeType":"VariableDeclaration","scope":31920,"src":"11345:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31875,"name":"address","nodeType":"ElementaryTypeName","src":"11345:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31878,"mutability":"mutable","name":"spender","nameLocation":"11368:7:23","nodeType":"VariableDeclaration","scope":31920,"src":"11360:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31877,"name":"address","nodeType":"ElementaryTypeName","src":"11360:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31880,"mutability":"mutable","name":"amount","nameLocation":"11385:6:23","nodeType":"VariableDeclaration","scope":31920,"src":"11377:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31879,"name":"uint256","nodeType":"ElementaryTypeName","src":"11377:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11344:48:23"},"returnParameters":{"id":31882,"nodeType":"ParameterList","parameters":[],"src":"11410:0:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":31359,"name":"Context","nameLocations":["1548:7:23"],"nodeType":"IdentifierPath","referencedDeclaration":32431,"src":"1548:7:23"},"id":31360,"nodeType":"InheritanceSpecifier","src":"1548:7:23"},{"baseName":{"id":31361,"name":"IERC20","nameLocations":["1557:6:23"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"1557:6:23"},"id":31362,"nodeType":"InheritanceSpecifier","src":"1557:6:23"},{"baseName":{"id":31363,"name":"IERC20Metadata","nameLocations":["1565:14:23"],"nodeType":"IdentifierPath","referencedDeclaration":32024,"src":"1565:14:23"},"id":31364,"nodeType":"InheritanceSpecifier","src":"1565:14:23"},{"baseName":{"id":31365,"name":"IERC20Errors","nameLocations":["1581:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":31256,"src":"1581:12:23"},"id":31366,"nodeType":"InheritanceSpecifier","src":"1581:12:23"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":31358,"nodeType":"StructuredDocumentation","src":"277:1243:23","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"linearizedBaseContracts":[31921,31256,32024,31999,32431],"name":"ERC20","nameLocation":"1539:5:23","scope":31922,"usedErrors":[31226,31231,31236,31245,31250,31255,31391]}],"license":"MIT"},"id":23} \ No newline at end of file +{"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":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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},{"type":"error","name":"ERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"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","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"ERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"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\":\"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\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"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\":[],\"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\":\"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. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"errors\":{\"ERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"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 `amount` 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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"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 `amount`.\"},\"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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1\",\"dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86\",\"dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013\",\"dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"ERC20FailedDecreaseAllowance"},{"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":"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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"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":[],"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":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` 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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"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 `amount`."},"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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":"ERC20"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b","urls":["bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1","dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3","urls":["bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86","dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca","urls":["bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013","dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","id":31922,"exportedSymbols":{"Context":[32860],"ERC20":[31921],"IERC1155Errors":[31351],"IERC20":[31999],"IERC20Errors":[31256],"IERC20Metadata":[32068],"IERC721Errors":[31304]},"nodeType":"SourceUnit","src":"105:11692:23","nodes":[{"id":31353,"nodeType":"PragmaDirective","src":"105:24:23","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":31354,"nodeType":"ImportDirective","src":"131:22:23","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","nameLocation":"-1:-1:-1","scope":31922,"sourceUnit":32000,"symbolAliases":[],"unitAlias":""},{"id":31355,"nodeType":"ImportDirective","src":"154:41:23","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":31922,"sourceUnit":32069,"symbolAliases":[],"unitAlias":""},{"id":31356,"nodeType":"ImportDirective","src":"196:33:23","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","file":"../../utils/Context.sol","nameLocation":"-1:-1:-1","scope":31922,"sourceUnit":32861,"symbolAliases":[],"unitAlias":""},{"id":31357,"nodeType":"ImportDirective","src":"230:45:23","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol","file":"../../interfaces/draft-IERC6093.sol","nameLocation":"-1:-1:-1","scope":31922,"sourceUnit":31352,"symbolAliases":[],"unitAlias":""},{"id":31921,"nodeType":"ContractDefinition","src":"1521:10275:23","nodes":[{"id":31370,"nodeType":"VariableDeclaration","src":"1600:45:23","nodes":[],"constant":false,"mutability":"mutable","name":"_balances","nameLocation":"1636:9:23","scope":31921,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":31369,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":31367,"name":"address","nodeType":"ElementaryTypeName","src":"1608:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1600:27:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":31368,"name":"uint256","nodeType":"ElementaryTypeName","src":"1619:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":31376,"nodeType":"VariableDeclaration","src":"1652:67:23","nodes":[],"constant":false,"mutability":"mutable","name":"_allowances","nameLocation":"1708:11:23","scope":31921,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":31375,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":31371,"name":"address","nodeType":"ElementaryTypeName","src":"1660:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1652:47:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":31374,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":31372,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1671:27:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":31373,"name":"uint256","nodeType":"ElementaryTypeName","src":"1690:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"id":31378,"nodeType":"VariableDeclaration","src":"1726:28:23","nodes":[],"constant":false,"mutability":"mutable","name":"_totalSupply","nameLocation":"1742:12:23","scope":31921,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31377,"name":"uint256","nodeType":"ElementaryTypeName","src":"1726:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":31380,"nodeType":"VariableDeclaration","src":"1761:20:23","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"1776:5:23","scope":31921,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":31379,"name":"string","nodeType":"ElementaryTypeName","src":"1761:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":31382,"nodeType":"VariableDeclaration","src":"1787:22:23","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"1802:7:23","scope":31921,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":31381,"name":"string","nodeType":"ElementaryTypeName","src":"1787:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":31391,"nodeType":"ErrorDefinition","src":"1892:105:23","nodes":[],"documentation":{"id":31383,"nodeType":"StructuredDocumentation","src":"1816:71:23","text":" @dev Indicates a failed `decreaseAllowance` request."},"errorSelector":"a60f030c","name":"ERC20FailedDecreaseAllowance","nameLocation":"1898:28:23","parameters":{"id":31390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31385,"mutability":"mutable","name":"spender","nameLocation":"1935:7:23","nodeType":"VariableDeclaration","scope":31391,"src":"1927:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31384,"name":"address","nodeType":"ElementaryTypeName","src":"1927:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31387,"mutability":"mutable","name":"currentAllowance","nameLocation":"1952:16:23","nodeType":"VariableDeclaration","scope":31391,"src":"1944:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31386,"name":"uint256","nodeType":"ElementaryTypeName","src":"1944:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31389,"mutability":"mutable","name":"requestedDecrease","nameLocation":"1978:17:23","nodeType":"VariableDeclaration","scope":31391,"src":"1970:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31388,"name":"uint256","nodeType":"ElementaryTypeName","src":"1970:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1926:70:23"}},{"id":31408,"nodeType":"FunctionDefinition","src":"2179:113:23","nodes":[],"body":{"id":31407,"nodeType":"Block","src":"2235:57:23","nodes":[],"statements":[{"expression":{"id":31401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31399,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31380,"src":"2245:5:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":31400,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31394,"src":"2253:5:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2245:13:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":31402,"nodeType":"ExpressionStatement","src":"2245:13:23"},{"expression":{"id":31405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31403,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31382,"src":"2268:7:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":31404,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31396,"src":"2278:7:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2268:17:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":31406,"nodeType":"ExpressionStatement","src":"2268:17:23"}]},"documentation":{"id":31392,"nodeType":"StructuredDocumentation","src":"2003:171:23","text":" @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":31397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31394,"mutability":"mutable","name":"name_","nameLocation":"2205:5:23","nodeType":"VariableDeclaration","scope":31408,"src":"2191:19:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31393,"name":"string","nodeType":"ElementaryTypeName","src":"2191:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":31396,"mutability":"mutable","name":"symbol_","nameLocation":"2226:7:23","nodeType":"VariableDeclaration","scope":31408,"src":"2212:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31395,"name":"string","nodeType":"ElementaryTypeName","src":"2212:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2190:44:23"},"returnParameters":{"id":31398,"nodeType":"ParameterList","parameters":[],"src":"2235:0:23"},"scope":31921,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":31417,"nodeType":"FunctionDefinition","src":"2357:89:23","nodes":[],"body":{"id":31416,"nodeType":"Block","src":"2417:29:23","nodes":[],"statements":[{"expression":{"id":31414,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31380,"src":"2434:5:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":31413,"id":31415,"nodeType":"Return","src":"2427:12:23"}]},"baseFunctions":[32055],"documentation":{"id":31409,"nodeType":"StructuredDocumentation","src":"2298:54:23","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2366:4:23","parameters":{"id":31410,"nodeType":"ParameterList","parameters":[],"src":"2370:2:23"},"returnParameters":{"id":31413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31417,"src":"2402:13:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31411,"name":"string","nodeType":"ElementaryTypeName","src":"2402:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2401:15:23"},"scope":31921,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":31426,"nodeType":"FunctionDefinition","src":"2559:93:23","nodes":[],"body":{"id":31425,"nodeType":"Block","src":"2621:31:23","nodes":[],"statements":[{"expression":{"id":31423,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31382,"src":"2638:7:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":31422,"id":31424,"nodeType":"Return","src":"2631:14:23"}]},"baseFunctions":[32061],"documentation":{"id":31418,"nodeType":"StructuredDocumentation","src":"2452:102:23","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2568:6:23","parameters":{"id":31419,"nodeType":"ParameterList","parameters":[],"src":"2574:2:23"},"returnParameters":{"id":31422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31421,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31426,"src":"2606:13:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31420,"name":"string","nodeType":"ElementaryTypeName","src":"2606:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2605:15:23"},"scope":31921,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":31435,"nodeType":"FunctionDefinition","src":"3285:82:23","nodes":[],"body":{"id":31434,"nodeType":"Block","src":"3341:26:23","nodes":[],"statements":[{"expression":{"hexValue":"3138","id":31432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3358:2:23","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":31431,"id":31433,"nodeType":"Return","src":"3351:9:23"}]},"baseFunctions":[32067],"documentation":{"id":31427,"nodeType":"StructuredDocumentation","src":"2658:622:23","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3294:8:23","parameters":{"id":31428,"nodeType":"ParameterList","parameters":[],"src":"3302:2:23"},"returnParameters":{"id":31431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31435,"src":"3334:5:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":31429,"name":"uint8","nodeType":"ElementaryTypeName","src":"3334:5:23","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3333:7:23"},"scope":31921,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":31444,"nodeType":"FunctionDefinition","src":"3427:97:23","nodes":[],"body":{"id":31443,"nodeType":"Block","src":"3488:36:23","nodes":[],"statements":[{"expression":{"id":31441,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31378,"src":"3505:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31440,"id":31442,"nodeType":"Return","src":"3498:19:23"}]},"baseFunctions":[31948],"documentation":{"id":31436,"nodeType":"StructuredDocumentation","src":"3373:49:23","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3436:11:23","parameters":{"id":31437,"nodeType":"ParameterList","parameters":[],"src":"3447:2:23"},"returnParameters":{"id":31440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31444,"src":"3479:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31438,"name":"uint256","nodeType":"ElementaryTypeName","src":"3479:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3478:9:23"},"scope":31921,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":31457,"nodeType":"FunctionDefinition","src":"3582:116:23","nodes":[],"body":{"id":31456,"nodeType":"Block","src":"3656:42:23","nodes":[],"statements":[{"expression":{"baseExpression":{"id":31452,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31370,"src":"3673:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31454,"indexExpression":{"id":31453,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31447,"src":"3683:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3673:18:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31451,"id":31455,"nodeType":"Return","src":"3666:25:23"}]},"baseFunctions":[31956],"documentation":{"id":31445,"nodeType":"StructuredDocumentation","src":"3530:47:23","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3591:9:23","parameters":{"id":31448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31447,"mutability":"mutable","name":"account","nameLocation":"3609:7:23","nodeType":"VariableDeclaration","scope":31457,"src":"3601:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31446,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3600:17:23"},"returnParameters":{"id":31451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31457,"src":"3647:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31449,"name":"uint256","nodeType":"ElementaryTypeName","src":"3647:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3646:9:23"},"scope":31921,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":31481,"nodeType":"FunctionDefinition","src":"3894:180:23","nodes":[],"body":{"id":31480,"nodeType":"Block","src":"3970:104:23","nodes":[],"statements":[{"assignments":[31468],"declarations":[{"constant":false,"id":31468,"mutability":"mutable","name":"owner","nameLocation":"3988:5:23","nodeType":"VariableDeclaration","scope":31480,"src":"3980:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31467,"name":"address","nodeType":"ElementaryTypeName","src":"3980:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":31471,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":31469,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32850,"src":"3996:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3996:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3980:28:23"},{"expression":{"arguments":[{"id":31473,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31468,"src":"4028:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31474,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31460,"src":"4035:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31475,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31462,"src":"4039:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31472,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31675,"src":"4018:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4018:28:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31477,"nodeType":"ExpressionStatement","src":"4018:28:23"},{"expression":{"hexValue":"74727565","id":31478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4063:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":31466,"id":31479,"nodeType":"Return","src":"4056:11:23"}]},"baseFunctions":[31966],"documentation":{"id":31458,"nodeType":"StructuredDocumentation","src":"3704:185:23","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3903:8:23","parameters":{"id":31463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31460,"mutability":"mutable","name":"to","nameLocation":"3920:2:23","nodeType":"VariableDeclaration","scope":31481,"src":"3912:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31459,"name":"address","nodeType":"ElementaryTypeName","src":"3912:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31462,"mutability":"mutable","name":"amount","nameLocation":"3932:6:23","nodeType":"VariableDeclaration","scope":31481,"src":"3924:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31461,"name":"uint256","nodeType":"ElementaryTypeName","src":"3924:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3911:28:23"},"returnParameters":{"id":31466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31465,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31481,"src":"3964:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31464,"name":"bool","nodeType":"ElementaryTypeName","src":"3964:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3963:6:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":31498,"nodeType":"FunctionDefinition","src":"4132:140:23","nodes":[],"body":{"id":31497,"nodeType":"Block","src":"4221:51:23","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":31491,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31376,"src":"4238:11:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":31493,"indexExpression":{"id":31492,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31484,"src":"4250:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4238:18:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31495,"indexExpression":{"id":31494,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31486,"src":"4257:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4238:27:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":31490,"id":31496,"nodeType":"Return","src":"4231:34:23"}]},"baseFunctions":[31976],"documentation":{"id":31482,"nodeType":"StructuredDocumentation","src":"4080:47:23","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"4141:9:23","parameters":{"id":31487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31484,"mutability":"mutable","name":"owner","nameLocation":"4159:5:23","nodeType":"VariableDeclaration","scope":31498,"src":"4151:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31483,"name":"address","nodeType":"ElementaryTypeName","src":"4151:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31486,"mutability":"mutable","name":"spender","nameLocation":"4174:7:23","nodeType":"VariableDeclaration","scope":31498,"src":"4166:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31485,"name":"address","nodeType":"ElementaryTypeName","src":"4166:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4150:32:23"},"returnParameters":{"id":31490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31498,"src":"4212:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31488,"name":"uint256","nodeType":"ElementaryTypeName","src":"4212:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4211:9:23"},"scope":31921,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":31522,"nodeType":"FunctionDefinition","src":"4580:188:23","nodes":[],"body":{"id":31521,"nodeType":"Block","src":"4660:108:23","nodes":[],"statements":[{"assignments":[31509],"declarations":[{"constant":false,"id":31509,"mutability":"mutable","name":"owner","nameLocation":"4678:5:23","nodeType":"VariableDeclaration","scope":31521,"src":"4670:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31508,"name":"address","nodeType":"ElementaryTypeName","src":"4670:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":31512,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":31510,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32850,"src":"4686:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4686:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4670:28:23"},{"expression":{"arguments":[{"id":31514,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31509,"src":"4717:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31515,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31501,"src":"4724:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31516,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31503,"src":"4733:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31513,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31873,"src":"4708:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4708:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31518,"nodeType":"ExpressionStatement","src":"4708:32:23"},{"expression":{"hexValue":"74727565","id":31519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4757:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":31507,"id":31520,"nodeType":"Return","src":"4750:11:23"}]},"baseFunctions":[31986],"documentation":{"id":31499,"nodeType":"StructuredDocumentation","src":"4278:297:23","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4589:7:23","parameters":{"id":31504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31501,"mutability":"mutable","name":"spender","nameLocation":"4605:7:23","nodeType":"VariableDeclaration","scope":31522,"src":"4597:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31500,"name":"address","nodeType":"ElementaryTypeName","src":"4597:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31503,"mutability":"mutable","name":"amount","nameLocation":"4622:6:23","nodeType":"VariableDeclaration","scope":31522,"src":"4614:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31502,"name":"uint256","nodeType":"ElementaryTypeName","src":"4614:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4596:33:23"},"returnParameters":{"id":31507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31506,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31522,"src":"4654:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31505,"name":"bool","nodeType":"ElementaryTypeName","src":"4654:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4653:6:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":31554,"nodeType":"FunctionDefinition","src":"5330:247:23","nodes":[],"body":{"id":31553,"nodeType":"Block","src":"5424:153:23","nodes":[],"statements":[{"assignments":[31535],"declarations":[{"constant":false,"id":31535,"mutability":"mutable","name":"spender","nameLocation":"5442:7:23","nodeType":"VariableDeclaration","scope":31553,"src":"5434:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31534,"name":"address","nodeType":"ElementaryTypeName","src":"5434:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":31538,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":31536,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32850,"src":"5452:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5452:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5434:30:23"},{"expression":{"arguments":[{"id":31540,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31525,"src":"5490:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31541,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31535,"src":"5496:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31542,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31529,"src":"5505:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31539,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31920,"src":"5474:15:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5474:38:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31544,"nodeType":"ExpressionStatement","src":"5474:38:23"},{"expression":{"arguments":[{"id":31546,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31525,"src":"5532:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31547,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31527,"src":"5538:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31548,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31529,"src":"5542:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31545,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31675,"src":"5522:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5522:27:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31550,"nodeType":"ExpressionStatement","src":"5522:27:23"},{"expression":{"hexValue":"74727565","id":31551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5566:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":31533,"id":31552,"nodeType":"Return","src":"5559:11:23"}]},"baseFunctions":[31998],"documentation":{"id":31523,"nodeType":"StructuredDocumentation","src":"4774:551:23","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5339:12:23","parameters":{"id":31530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31525,"mutability":"mutable","name":"from","nameLocation":"5360:4:23","nodeType":"VariableDeclaration","scope":31554,"src":"5352:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31524,"name":"address","nodeType":"ElementaryTypeName","src":"5352:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31527,"mutability":"mutable","name":"to","nameLocation":"5374:2:23","nodeType":"VariableDeclaration","scope":31554,"src":"5366:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31526,"name":"address","nodeType":"ElementaryTypeName","src":"5366:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31529,"mutability":"mutable","name":"amount","nameLocation":"5386:6:23","nodeType":"VariableDeclaration","scope":31554,"src":"5378:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31528,"name":"uint256","nodeType":"ElementaryTypeName","src":"5378:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5351:42:23"},"returnParameters":{"id":31533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31532,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31554,"src":"5418:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31531,"name":"bool","nodeType":"ElementaryTypeName","src":"5418:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5417:6:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":31583,"nodeType":"FunctionDefinition","src":"5972:234:23","nodes":[],"body":{"id":31582,"nodeType":"Block","src":"6066:140:23","nodes":[],"statements":[{"assignments":[31565],"declarations":[{"constant":false,"id":31565,"mutability":"mutable","name":"owner","nameLocation":"6084:5:23","nodeType":"VariableDeclaration","scope":31582,"src":"6076:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31564,"name":"address","nodeType":"ElementaryTypeName","src":"6076:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":31568,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":31566,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32850,"src":"6092:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6092:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6076:28:23"},{"expression":{"arguments":[{"id":31570,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31565,"src":"6123:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31571,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31557,"src":"6130:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":31573,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31565,"src":"6149:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31574,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31557,"src":"6156:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":31572,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31498,"src":"6139:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":31575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6139:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":31576,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31559,"src":"6167:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6139:38:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31569,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31873,"src":"6114:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6114:64:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31579,"nodeType":"ExpressionStatement","src":"6114:64:23"},{"expression":{"hexValue":"74727565","id":31580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6195:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":31563,"id":31581,"nodeType":"Return","src":"6188:11:23"}]},"documentation":{"id":31555,"nodeType":"StructuredDocumentation","src":"5583:384:23","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5981:17:23","parameters":{"id":31560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31557,"mutability":"mutable","name":"spender","nameLocation":"6007:7:23","nodeType":"VariableDeclaration","scope":31583,"src":"5999:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31556,"name":"address","nodeType":"ElementaryTypeName","src":"5999:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31559,"mutability":"mutable","name":"addedValue","nameLocation":"6024:10:23","nodeType":"VariableDeclaration","scope":31583,"src":"6016:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31558,"name":"uint256","nodeType":"ElementaryTypeName","src":"6016:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5998:37:23"},"returnParameters":{"id":31563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31583,"src":"6060:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31561,"name":"bool","nodeType":"ElementaryTypeName","src":"6060:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6059:6:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":31628,"nodeType":"FunctionDefinition","src":"6695:493:23","nodes":[],"body":{"id":31627,"nodeType":"Block","src":"6796:392:23","nodes":[],"statements":[{"assignments":[31594],"declarations":[{"constant":false,"id":31594,"mutability":"mutable","name":"owner","nameLocation":"6814:5:23","nodeType":"VariableDeclaration","scope":31627,"src":"6806:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31593,"name":"address","nodeType":"ElementaryTypeName","src":"6806:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":31597,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":31595,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32850,"src":"6822:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6822:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6806:28:23"},{"assignments":[31599],"declarations":[{"constant":false,"id":31599,"mutability":"mutable","name":"currentAllowance","nameLocation":"6852:16:23","nodeType":"VariableDeclaration","scope":31627,"src":"6844:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31598,"name":"uint256","nodeType":"ElementaryTypeName","src":"6844:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31604,"initialValue":{"arguments":[{"id":31601,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31594,"src":"6881:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31602,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31586,"src":"6888:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":31600,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31498,"src":"6871:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":31603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6871:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6844:52:23"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31605,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31599,"src":"6910:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":31606,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31588,"src":"6929:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6910:36:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31615,"nodeType":"IfStatement","src":"6906:148:23","trueBody":{"id":31614,"nodeType":"Block","src":"6948:106:23","statements":[{"errorCall":{"arguments":[{"id":31609,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31586,"src":"6998:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31610,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31599,"src":"7007:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31611,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31588,"src":"7025:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31608,"name":"ERC20FailedDecreaseAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31391,"src":"6969:28:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":31612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6969:74:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31613,"nodeType":"RevertStatement","src":"6962:81:23"}]}},{"id":31624,"nodeType":"UncheckedBlock","src":"7063:97:23","statements":[{"expression":{"arguments":[{"id":31617,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31594,"src":"7096:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31618,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31586,"src":"7103:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31619,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31599,"src":"7112:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":31620,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31588,"src":"7131:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7112:36:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31616,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31873,"src":"7087:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7087:62:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31623,"nodeType":"ExpressionStatement","src":"7087:62:23"}]},{"expression":{"hexValue":"74727565","id":31625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7177:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":31592,"id":31626,"nodeType":"Return","src":"7170:11:23"}]},"documentation":{"id":31584,"nodeType":"StructuredDocumentation","src":"6212:478:23","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `requestedDecrease`."},"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6704:17:23","parameters":{"id":31589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31586,"mutability":"mutable","name":"spender","nameLocation":"6730:7:23","nodeType":"VariableDeclaration","scope":31628,"src":"6722:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31585,"name":"address","nodeType":"ElementaryTypeName","src":"6722:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31588,"mutability":"mutable","name":"requestedDecrease","nameLocation":"6747:17:23","nodeType":"VariableDeclaration","scope":31628,"src":"6739:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31587,"name":"uint256","nodeType":"ElementaryTypeName","src":"6739:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6721:44:23"},"returnParameters":{"id":31592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31628,"src":"6790:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31590,"name":"bool","nodeType":"ElementaryTypeName","src":"6790:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6789:6:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":31675,"nodeType":"FunctionDefinition","src":"7553:302:23","nodes":[],"body":{"id":31674,"nodeType":"Block","src":"7623:232:23","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31638,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31631,"src":"7637:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7653:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7645:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31639,"name":"address","nodeType":"ElementaryTypeName","src":"7645:7:23","typeDescriptions":{}}},"id":31642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7645:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7637:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31652,"nodeType":"IfStatement","src":"7633:86:23","trueBody":{"id":31651,"nodeType":"Block","src":"7657:62:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":31647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7705:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7697:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31645,"name":"address","nodeType":"ElementaryTypeName","src":"7697:7:23","typeDescriptions":{}}},"id":31648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7697:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31644,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31231,"src":"7678:18:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7678:30:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31650,"nodeType":"RevertStatement","src":"7671:37:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31653,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31633,"src":"7732:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7746:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7738:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31654,"name":"address","nodeType":"ElementaryTypeName","src":"7738:7:23","typeDescriptions":{}}},"id":31657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7738:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7732:16:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31667,"nodeType":"IfStatement","src":"7728:86:23","trueBody":{"id":31666,"nodeType":"Block","src":"7750:64:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":31662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7800:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7792:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31660,"name":"address","nodeType":"ElementaryTypeName","src":"7792:7:23","typeDescriptions":{}}},"id":31663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7792:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31659,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31236,"src":"7771:20:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7771:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31665,"nodeType":"RevertStatement","src":"7764:39:23"}]}},{"expression":{"arguments":[{"id":31669,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31631,"src":"7831:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31670,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31633,"src":"7837:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31671,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31635,"src":"7841:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31668,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31752,"src":"7823:7:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7823:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31673,"nodeType":"ExpressionStatement","src":"7823:25:23"}]},"documentation":{"id":31629,"nodeType":"StructuredDocumentation","src":"7194:354:23","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7562:9:23","parameters":{"id":31636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31631,"mutability":"mutable","name":"from","nameLocation":"7580:4:23","nodeType":"VariableDeclaration","scope":31675,"src":"7572:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31630,"name":"address","nodeType":"ElementaryTypeName","src":"7572:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31633,"mutability":"mutable","name":"to","nameLocation":"7594:2:23","nodeType":"VariableDeclaration","scope":31675,"src":"7586:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31632,"name":"address","nodeType":"ElementaryTypeName","src":"7586:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31635,"mutability":"mutable","name":"amount","nameLocation":"7606:6:23","nodeType":"VariableDeclaration","scope":31675,"src":"7598:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31634,"name":"uint256","nodeType":"ElementaryTypeName","src":"7598:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7571:42:23"},"returnParameters":{"id":31637,"nodeType":"ParameterList","parameters":[],"src":"7623:0:23"},"scope":31921,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":31752,"nodeType":"FunctionDefinition","src":"8155:1017:23","nodes":[],"body":{"id":31751,"nodeType":"Block","src":"8231:941:23","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31685,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31678,"src":"8245:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8261:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8253:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31686,"name":"address","nodeType":"ElementaryTypeName","src":"8253:7:23","typeDescriptions":{}}},"id":31689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8253:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8245:18:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":31722,"nodeType":"Block","src":"8318:366:23","statements":[{"assignments":[31697],"declarations":[{"constant":false,"id":31697,"mutability":"mutable","name":"fromBalance","nameLocation":"8340:11:23","nodeType":"VariableDeclaration","scope":31722,"src":"8332:19:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31696,"name":"uint256","nodeType":"ElementaryTypeName","src":"8332:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31701,"initialValue":{"baseExpression":{"id":31698,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31370,"src":"8354:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31700,"indexExpression":{"id":31699,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31678,"src":"8364:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8354:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8332:37:23"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31702,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31697,"src":"8387:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":31703,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31682,"src":"8401:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8387:20:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31712,"nodeType":"IfStatement","src":"8383:117:23","trueBody":{"id":31711,"nodeType":"Block","src":"8409:91:23","statements":[{"errorCall":{"arguments":[{"id":31706,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31678,"src":"8459:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31707,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31697,"src":"8465:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31708,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31682,"src":"8478:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31705,"name":"ERC20InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31226,"src":"8434:24:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":31709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8434:51:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31710,"nodeType":"RevertStatement","src":"8427:58:23"}]}},{"id":31721,"nodeType":"UncheckedBlock","src":"8513:161:23","statements":[{"expression":{"id":31719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":31713,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31370,"src":"8621:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31715,"indexExpression":{"id":31714,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31678,"src":"8631:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8621:15:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31716,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31697,"src":"8639:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":31717,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31682,"src":"8653:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8639:20:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8621:38:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31720,"nodeType":"ExpressionStatement","src":"8621:38:23"}]}]},"id":31723,"nodeType":"IfStatement","src":"8241:443:23","trueBody":{"id":31695,"nodeType":"Block","src":"8265:47:23","statements":[{"expression":{"id":31693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31691,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31378,"src":"8279:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":31692,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31682,"src":"8295:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8279:22:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31694,"nodeType":"ExpressionStatement","src":"8279:22:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31724,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31680,"src":"8698:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8712:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8704:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31725,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:23","typeDescriptions":{}}},"id":31728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8704:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8698:16:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":31743,"nodeType":"Block","src":"8916:208:23","statements":[{"id":31742,"nodeType":"UncheckedBlock","src":"8930:184:23","statements":[{"expression":{"id":31740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":31736,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31370,"src":"9076:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31738,"indexExpression":{"id":31737,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31680,"src":"9086:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9076:13:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":31739,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31682,"src":"9093:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9076:23:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31741,"nodeType":"ExpressionStatement","src":"9076:23:23"}]}]},"id":31744,"nodeType":"IfStatement","src":"8694:430:23","trueBody":{"id":31735,"nodeType":"Block","src":"8716:194:23","statements":[{"id":31734,"nodeType":"UncheckedBlock","src":"8730:170:23","statements":[{"expression":{"id":31732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31730,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31378,"src":"8863:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":31731,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31682,"src":"8879:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8863:22:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31733,"nodeType":"ExpressionStatement","src":"8863:22:23"}]}]}},{"eventCall":{"arguments":[{"id":31746,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31678,"src":"9148:4:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31747,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31680,"src":"9154:2:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31748,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31682,"src":"9158:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31745,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31933,"src":"9139:8:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9139:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31750,"nodeType":"EmitStatement","src":"9134:31:23"}]},"documentation":{"id":31676,"nodeType":"StructuredDocumentation","src":"7861:289:23","text":" @dev Transfers `amount` of tokens from `from` to `to`, or alternatively mints (or burns) if `from` (or `to`) is\n the zero address. All customizations to transfers, mints, and burns should be done by overriding this function.\n Emits a {Transfer} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"8164:7:23","parameters":{"id":31683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31678,"mutability":"mutable","name":"from","nameLocation":"8180:4:23","nodeType":"VariableDeclaration","scope":31752,"src":"8172:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31677,"name":"address","nodeType":"ElementaryTypeName","src":"8172:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31680,"mutability":"mutable","name":"to","nameLocation":"8194:2:23","nodeType":"VariableDeclaration","scope":31752,"src":"8186:10:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31679,"name":"address","nodeType":"ElementaryTypeName","src":"8186:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31682,"mutability":"mutable","name":"amount","nameLocation":"8206:6:23","nodeType":"VariableDeclaration","scope":31752,"src":"8198:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31681,"name":"uint256","nodeType":"ElementaryTypeName","src":"8198:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8171:42:23"},"returnParameters":{"id":31684,"nodeType":"ParameterList","parameters":[],"src":"8231:0:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":31785,"nodeType":"FunctionDefinition","src":"9504:210:23","nodes":[],"body":{"id":31784,"nodeType":"Block","src":"9561:153:23","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31760,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31755,"src":"9575:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9594:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9586:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31761,"name":"address","nodeType":"ElementaryTypeName","src":"9586:7:23","typeDescriptions":{}}},"id":31764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9586:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9575:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31774,"nodeType":"IfStatement","src":"9571:91:23","trueBody":{"id":31773,"nodeType":"Block","src":"9598:64:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":31769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9648:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9640:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31767,"name":"address","nodeType":"ElementaryTypeName","src":"9640:7:23","typeDescriptions":{}}},"id":31770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9640:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31766,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31236,"src":"9619:20:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9619:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31772,"nodeType":"RevertStatement","src":"9612:39:23"}]}},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":31778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9687:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9679:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31776,"name":"address","nodeType":"ElementaryTypeName","src":"9679:7:23","typeDescriptions":{}}},"id":31779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9679:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31780,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31755,"src":"9691:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31781,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31757,"src":"9700:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31775,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31752,"src":"9671:7:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9671:36:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31783,"nodeType":"ExpressionStatement","src":"9671:36:23"}]},"documentation":{"id":31753,"nodeType":"StructuredDocumentation","src":"9178:321:23","text":" @dev Creates `amount` tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"9513:5:23","parameters":{"id":31758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31755,"mutability":"mutable","name":"account","nameLocation":"9527:7:23","nodeType":"VariableDeclaration","scope":31785,"src":"9519:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31754,"name":"address","nodeType":"ElementaryTypeName","src":"9519:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31757,"mutability":"mutable","name":"amount","nameLocation":"9544:6:23","nodeType":"VariableDeclaration","scope":31785,"src":"9536:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31756,"name":"uint256","nodeType":"ElementaryTypeName","src":"9536:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9518:33:23"},"returnParameters":{"id":31759,"nodeType":"ParameterList","parameters":[],"src":"9561:0:23"},"scope":31921,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":31818,"nodeType":"FunctionDefinition","src":"10028:208:23","nodes":[],"body":{"id":31817,"nodeType":"Block","src":"10085:151:23","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31793,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31788,"src":"10099:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10118:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10110:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31794,"name":"address","nodeType":"ElementaryTypeName","src":"10110:7:23","typeDescriptions":{}}},"id":31797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10110:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10099:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31807,"nodeType":"IfStatement","src":"10095:89:23","trueBody":{"id":31806,"nodeType":"Block","src":"10122:62:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":31802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10170:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10162:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31800,"name":"address","nodeType":"ElementaryTypeName","src":"10162:7:23","typeDescriptions":{}}},"id":31803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10162:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31799,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31231,"src":"10143:18:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10143:30:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31805,"nodeType":"RevertStatement","src":"10136:37:23"}]}},{"expression":{"arguments":[{"id":31809,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31788,"src":"10201:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":31812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10218:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10210:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31810,"name":"address","nodeType":"ElementaryTypeName","src":"10210:7:23","typeDescriptions":{}}},"id":31813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10210:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31814,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31790,"src":"10222:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31808,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31752,"src":"10193:7:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10193:36:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31816,"nodeType":"ExpressionStatement","src":"10193:36:23"}]},"documentation":{"id":31786,"nodeType":"StructuredDocumentation","src":"9720:303:23","text":" @dev Destroys `amount` tokens from `account`, by transferring it to address(0).\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead"},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"10037:5:23","parameters":{"id":31791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31788,"mutability":"mutable","name":"account","nameLocation":"10051:7:23","nodeType":"VariableDeclaration","scope":31818,"src":"10043:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31787,"name":"address","nodeType":"ElementaryTypeName","src":"10043:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31790,"mutability":"mutable","name":"amount","nameLocation":"10068:6:23","nodeType":"VariableDeclaration","scope":31818,"src":"10060:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31789,"name":"uint256","nodeType":"ElementaryTypeName","src":"10060:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10042:33:23"},"returnParameters":{"id":31792,"nodeType":"ParameterList","parameters":[],"src":"10085:0:23"},"scope":31921,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":31873,"nodeType":"FunctionDefinition","src":"10659:380:23","nodes":[],"body":{"id":31872,"nodeType":"Block","src":"10742:297:23","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31828,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31821,"src":"10756:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10773:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10765:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31829,"name":"address","nodeType":"ElementaryTypeName","src":"10765:7:23","typeDescriptions":{}}},"id":31832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10765:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10756:19:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31842,"nodeType":"IfStatement","src":"10752:89:23","trueBody":{"id":31841,"nodeType":"Block","src":"10777:64:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":31837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10827:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10819:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31835,"name":"address","nodeType":"ElementaryTypeName","src":"10819:7:23","typeDescriptions":{}}},"id":31838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10819:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31834,"name":"ERC20InvalidApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31250,"src":"10798:20:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10798:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31840,"nodeType":"RevertStatement","src":"10791:39:23"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31843,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31823,"src":"10854:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10873:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10865:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31844,"name":"address","nodeType":"ElementaryTypeName","src":"10865:7:23","typeDescriptions":{}}},"id":31847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10865:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10854:21:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31857,"nodeType":"IfStatement","src":"10850:90:23","trueBody":{"id":31856,"nodeType":"Block","src":"10877:63:23","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":31852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10926:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10918:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31850,"name":"address","nodeType":"ElementaryTypeName","src":"10918:7:23","typeDescriptions":{}}},"id":31853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10918:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31849,"name":"ERC20InvalidSpender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31255,"src":"10898:19:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10898:31:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31855,"nodeType":"RevertStatement","src":"10891:38:23"}]}},{"expression":{"id":31864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":31858,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31376,"src":"10949:11:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":31861,"indexExpression":{"id":31859,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31821,"src":"10961:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10949:18:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":31862,"indexExpression":{"id":31860,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31823,"src":"10968:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10949:27:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":31863,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31825,"src":"10979:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10949:36:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":31865,"nodeType":"ExpressionStatement","src":"10949:36:23"},{"eventCall":{"arguments":[{"id":31867,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31821,"src":"11009:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31868,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31823,"src":"11016:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31869,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31825,"src":"11025:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31866,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31942,"src":"11000:8:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11000:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31871,"nodeType":"EmitStatement","src":"10995:37:23"}]},"documentation":{"id":31819,"nodeType":"StructuredDocumentation","src":"10242:412:23","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10668:8:23","parameters":{"id":31826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31821,"mutability":"mutable","name":"owner","nameLocation":"10685:5:23","nodeType":"VariableDeclaration","scope":31873,"src":"10677:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31820,"name":"address","nodeType":"ElementaryTypeName","src":"10677:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31823,"mutability":"mutable","name":"spender","nameLocation":"10700:7:23","nodeType":"VariableDeclaration","scope":31873,"src":"10692:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31822,"name":"address","nodeType":"ElementaryTypeName","src":"10692:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31825,"mutability":"mutable","name":"amount","nameLocation":"10717:6:23","nodeType":"VariableDeclaration","scope":31873,"src":"10709:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31824,"name":"uint256","nodeType":"ElementaryTypeName","src":"10709:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10676:48:23"},"returnParameters":{"id":31827,"nodeType":"ParameterList","parameters":[],"src":"10742:0:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":31920,"nodeType":"FunctionDefinition","src":"11320:474:23","nodes":[],"body":{"id":31919,"nodeType":"Block","src":"11410:384:23","nodes":[],"statements":[{"assignments":[31884],"declarations":[{"constant":false,"id":31884,"mutability":"mutable","name":"currentAllowance","nameLocation":"11428:16:23","nodeType":"VariableDeclaration","scope":31919,"src":"11420:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31883,"name":"uint256","nodeType":"ElementaryTypeName","src":"11420:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":31889,"initialValue":{"arguments":[{"id":31886,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31876,"src":"11457:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31887,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31878,"src":"11464:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":31885,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31498,"src":"11447:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":31888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11447:25:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11420:52:23"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31890,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31884,"src":"11486:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":31893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11511:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":31892,"name":"uint256","nodeType":"ElementaryTypeName","src":"11511:7:23","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":31891,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11506:4:23","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":31894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11506:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":31895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11520:3:23","memberName":"max","nodeType":"MemberAccess","src":"11506:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11486:37:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31918,"nodeType":"IfStatement","src":"11482:306:23","trueBody":{"id":31917,"nodeType":"Block","src":"11525:263:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31897,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31884,"src":"11543:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":31898,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31880,"src":"11562:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11543:25:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31907,"nodeType":"IfStatement","src":"11539:132:23","trueBody":{"id":31906,"nodeType":"Block","src":"11570:101:23","statements":[{"errorCall":{"arguments":[{"id":31901,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31878,"src":"11622:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31902,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31884,"src":"11631:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31903,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31880,"src":"11649:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31900,"name":"ERC20InsufficientAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31245,"src":"11595:26:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":31904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11595:61:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31905,"nodeType":"RevertStatement","src":"11588:68:23"}]}},{"id":31916,"nodeType":"UncheckedBlock","src":"11684:94:23","statements":[{"expression":{"arguments":[{"id":31909,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31876,"src":"11721:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31910,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31878,"src":"11728:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":31913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31911,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31884,"src":"11737:16:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":31912,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31880,"src":"11756:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11737:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31908,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31873,"src":"11712:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":31914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11712:51:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31915,"nodeType":"ExpressionStatement","src":"11712:51:23"}]}]}}]},"documentation":{"id":31874,"nodeType":"StructuredDocumentation","src":"11045:270:23","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11329:15:23","parameters":{"id":31881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31876,"mutability":"mutable","name":"owner","nameLocation":"11353:5:23","nodeType":"VariableDeclaration","scope":31920,"src":"11345:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31875,"name":"address","nodeType":"ElementaryTypeName","src":"11345:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31878,"mutability":"mutable","name":"spender","nameLocation":"11368:7:23","nodeType":"VariableDeclaration","scope":31920,"src":"11360:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31877,"name":"address","nodeType":"ElementaryTypeName","src":"11360:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31880,"mutability":"mutable","name":"amount","nameLocation":"11385:6:23","nodeType":"VariableDeclaration","scope":31920,"src":"11377:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31879,"name":"uint256","nodeType":"ElementaryTypeName","src":"11377:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11344:48:23"},"returnParameters":{"id":31882,"nodeType":"ParameterList","parameters":[],"src":"11410:0:23"},"scope":31921,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":31359,"name":"Context","nameLocations":["1548:7:23"],"nodeType":"IdentifierPath","referencedDeclaration":32860,"src":"1548:7:23"},"id":31360,"nodeType":"InheritanceSpecifier","src":"1548:7:23"},{"baseName":{"id":31361,"name":"IERC20","nameLocations":["1557:6:23"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"1557:6:23"},"id":31362,"nodeType":"InheritanceSpecifier","src":"1557:6:23"},{"baseName":{"id":31363,"name":"IERC20Metadata","nameLocations":["1565:14:23"],"nodeType":"IdentifierPath","referencedDeclaration":32068,"src":"1565:14:23"},"id":31364,"nodeType":"InheritanceSpecifier","src":"1565:14:23"},{"baseName":{"id":31365,"name":"IERC20Errors","nameLocations":["1581:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":31256,"src":"1581:12:23"},"id":31366,"nodeType":"InheritanceSpecifier","src":"1581:12:23"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":31358,"nodeType":"StructuredDocumentation","src":"277:1243:23","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"linearizedBaseContracts":[31921,31256,32068,31999,32860],"name":"ERC20","nameLocation":"1539:5:23","scope":31922,"usedErrors":[31226,31231,31236,31245,31250,31255,31391]}],"license":"MIT"},"id":23} \ No newline at end of file diff --git a/.out/ERC20Burnable.sol/ERC20Burnable.json b/.out/ERC20Burnable.sol/ERC20Burnable.json new file mode 100644 index 000000000..44b22fb59 --- /dev/null +++ b/.out/ERC20Burnable.sol/ERC20Burnable.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":"burn","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"requestedDecrease","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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},{"type":"error","name":"ERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"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","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"ERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"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\":\"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\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"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\":[],\"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\":\"Extension of {ERC20} that allows token holders to destroy both their own tokens and those that they have an allowance for, in a way that can be recognized off-chain (via event analysis).\",\"errors\":{\"ERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"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 `amount` 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}.\"},\"burn(uint256)\":{\"details\":\"Destroys `amount` tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`.\"},\"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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"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 `amount`.\"},\"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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":\"ERC20Burnable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1\",\"dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86\",\"dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0xd5015521a09267ec4fe122675f1d1f9dba884fb686937be87caed9a7584e30d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b445cff4389e685959b476105f3f76a3bb18478357ed13b59796e31f49d450bb\",\"dweb:/ipfs/QmbqJb753rF2KodJSScrwbe4ZmhWLXgAcDHHzQ2nMwLKDR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013\",\"dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"ERC20FailedDecreaseAllowance"},{"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":"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":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"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":[],"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":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` 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}."},"burn(uint256)":{"details":"Destroys `amount` tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`."},"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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"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 `amount`."},"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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol":"ERC20Burnable"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b","urls":["bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1","dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3","urls":["bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86","dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"keccak256":"0xd5015521a09267ec4fe122675f1d1f9dba884fb686937be87caed9a7584e30d4","urls":["bzz-raw://b445cff4389e685959b476105f3f76a3bb18478357ed13b59796e31f49d450bb","dweb:/ipfs/QmbqJb753rF2KodJSScrwbe4ZmhWLXgAcDHHzQ2nMwLKDR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca","urls":["bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013","dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol","id":32044,"exportedSymbols":{"Context":[32860],"ERC20":[31921],"ERC20Burnable":[32043],"IERC1155Errors":[31351],"IERC20":[31999],"IERC20Errors":[31256],"IERC20Metadata":[32068],"IERC721Errors":[31304]},"nodeType":"SourceUnit","src":"124:1014:25","nodes":[{"id":32001,"nodeType":"PragmaDirective","src":"124:24:25","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":32002,"nodeType":"ImportDirective","src":"150:22:25","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"../ERC20.sol","nameLocation":"-1:-1:-1","scope":32044,"sourceUnit":31922,"symbolAliases":[],"unitAlias":""},{"id":32003,"nodeType":"ImportDirective","src":"173:36:25","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","file":"../../../utils/Context.sol","nameLocation":"-1:-1:-1","scope":32044,"sourceUnit":32861,"symbolAliases":[],"unitAlias":""},{"id":32043,"nodeType":"ContractDefinition","src":"420:717:25","nodes":[{"id":32021,"nodeType":"FunctionDefinition","src":"579:89:25","nodes":[],"body":{"id":32020,"nodeType":"Block","src":"624:44:25","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":32015,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32850,"src":"640:10:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":32016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"640:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32017,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32011,"src":"654:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32014,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31818,"src":"634:5:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":32018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"634:27:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32019,"nodeType":"ExpressionStatement","src":"634:27:25"}]},"documentation":{"id":32009,"nodeType":"StructuredDocumentation","src":"476:98:25","text":" @dev Destroys `amount` tokens from the caller.\n See {ERC20-_burn}."},"functionSelector":"42966c68","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"588:4:25","parameters":{"id":32012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32011,"mutability":"mutable","name":"amount","nameLocation":"601:6:25","nodeType":"VariableDeclaration","scope":32021,"src":"593:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32010,"name":"uint256","nodeType":"ElementaryTypeName","src":"593:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"592:16:25"},"returnParameters":{"id":32013,"nodeType":"ParameterList","parameters":[],"src":"624:0:25"},"scope":32043,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":32042,"nodeType":"FunctionDefinition","src":"974:161:25","nodes":[],"body":{"id":32041,"nodeType":"Block","src":"1040:95:25","nodes":[],"statements":[{"expression":{"arguments":[{"id":32030,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32024,"src":"1066:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":32031,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32850,"src":"1075:10:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":32032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1075:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32033,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32026,"src":"1089:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32029,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31920,"src":"1050:15:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":32034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:46:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32035,"nodeType":"ExpressionStatement","src":"1050:46:25"},{"expression":{"arguments":[{"id":32037,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32024,"src":"1112:7:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32038,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32026,"src":"1121:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32036,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31818,"src":"1106:5:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":32039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1106:22:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32040,"nodeType":"ExpressionStatement","src":"1106:22:25"}]},"documentation":{"id":32022,"nodeType":"StructuredDocumentation","src":"674:295:25","text":" @dev Destroys `amount` tokens from `account`, deducting from the caller's\n allowance.\n See {ERC20-_burn} and {ERC20-allowance}.\n Requirements:\n - the caller must have allowance for ``accounts``'s tokens of at least\n `amount`."},"functionSelector":"79cc6790","implemented":true,"kind":"function","modifiers":[],"name":"burnFrom","nameLocation":"983:8:25","parameters":{"id":32027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32024,"mutability":"mutable","name":"account","nameLocation":"1000:7:25","nodeType":"VariableDeclaration","scope":32042,"src":"992:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32023,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32026,"mutability":"mutable","name":"amount","nameLocation":"1017:6:25","nodeType":"VariableDeclaration","scope":32042,"src":"1009:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32025,"name":"uint256","nodeType":"ElementaryTypeName","src":"1009:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"991:33:25"},"returnParameters":{"id":32028,"nodeType":"ParameterList","parameters":[],"src":"1040:0:25"},"scope":32043,"stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":32005,"name":"Context","nameLocations":["455:7:25"],"nodeType":"IdentifierPath","referencedDeclaration":32860,"src":"455:7:25"},"id":32006,"nodeType":"InheritanceSpecifier","src":"455:7:25"},{"baseName":{"id":32007,"name":"ERC20","nameLocations":["464:5:25"],"nodeType":"IdentifierPath","referencedDeclaration":31921,"src":"464:5:25"},"id":32008,"nodeType":"InheritanceSpecifier","src":"464:5:25"}],"canonicalName":"ERC20Burnable","contractDependencies":[],"contractKind":"contract","documentation":{"id":32004,"nodeType":"StructuredDocumentation","src":"211:208:25","text":" @dev Extension of {ERC20} that allows token holders to destroy both their own\n tokens and those that they have an allowance for, in a way that can be\n recognized off-chain (via event analysis)."},"fullyImplemented":true,"linearizedBaseContracts":[32043,31921,31256,32068,31999,32860],"name":"ERC20Burnable","nameLocation":"438:13:25","scope":32044,"usedErrors":[31226,31231,31236,31245,31250,31255,31391]}],"license":"MIT"},"id":25} \ No newline at end of file diff --git a/.out/ERC20Helper.sol/DummyERC20.json b/.out/ERC20Helper.sol/DummyERC20.json index e88da36e4..edde5fa48 100644 --- a/.out/ERC20Helper.sol/DummyERC20.json +++ b/.out/ERC20Helper.sol/DummyERC20.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_initialSupply","type":"uint256","internalType":"uint256"}],"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":"currentSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"requestedDecrease","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"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":"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":"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":"ERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"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":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60406080815234620003ea5762000e4e803803806200001e81620003ef565b9283398101606082820312620003ea5781516001600160401b039290838111620003ea57826200005091830162000415565b60209283830151858111620003ea5786916200006e91850162000415565b920151938151818111620002ea576003908154906001948583811c93168015620003df575b88841014620003c9578190601f9384811162000373575b5088908483116001146200030c5760009262000300575b505060001982851b1c191690851b1782555b8451928311620002ea5760049485548581811c91168015620002df575b88821014620002ca578281116200027f575b5086918411600114620002145793839491849260009562000208575b50501b92600019911b1c19161781555b60058054336001600160a01b031982168117909255855191906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a360006006553315620001f4575060025490838201809211620001df57506000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160025533835282815284832084815401905584519384523393a3516109c69081620004888239f35b601190634e487b7160e01b6000525260246000fd5b600060249263ec442f0560e01b8352820152fd5b0151935038806200011e565b9190601f198416928660005284886000209460005b8a898383106200026757505050106200024c575b50505050811b0181556200012e565b01519060f884600019921b161c19169055388080806200023d565b86860151895590970196948501948893500162000229565b86600052876000208380870160051c8201928a8810620002c0575b0160051c019086905b828110620002b357505062000102565b60008155018690620002a3565b925081926200029a565b602287634e487b7160e01b6000525260246000fd5b90607f1690620000f0565b634e487b7160e01b600052604160045260246000fd5b015190503880620000c1565b90879350601f19831691866000528a6000209260005b8c8282106200035c575050841162000343575b505050811b018255620000d3565b015160001983871b60f8161c1916905538808062000335565b8385015186558b9790950194938401930162000322565b90915084600052886000208480850160051c8201928b8610620003bf575b918991869594930160051c01915b828110620003af575050620000aa565b600081558594508991016200039f565b9250819262000391565b634e487b7160e01b600052602260045260246000fd5b92607f169262000093565b600080fd5b6040519190601f01601f191682016001600160401b03811183821017620002ea57604052565b919080601f84011215620003ea5782516001600160401b038111620002ea576020906200044b601f8201601f19168301620003ef565b92818452828287010111620003ea5760005b8181106200047357508260009394955001015290565b85810183015184820184015282016200045d56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde031461066157508063095ea7b31461063757806318160ddd1461061857806323b872dd1461056b578063313ce5671461054f57806339509351146104ff57806340c10f191461046657806370a082311461042f578063715018a6146103d2578063771282f6146103b35780638da5cb5b1461038a57806395d89b411461026a578063a457c2d7146101e3578063a9059cbb146101b2578063dd62ed3e146101655763f2fde38b146100d357600080fd5b34610161576020366003190112610161576100ec61079f565b906100f56107d0565b6001600160a01b0391821692831561014b575050600554826bffffffffffffffffffffffff60a01b821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346101ae57806003193601126101ae578060209261018361079f565b61018b6107ba565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b5050346101ae57806003193601126101ae576020906101dc6101d261079f565b602435903361081f565b5160018152f35b5091346102675781600319360112610267576101fd61079f565b928260243592338152600160205281812060018060a01b03871682526020522054908282106102375750926101dc916020940390336108fd565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b509190346101ae57816003193601126101ae57805190828454600181811c90808316928315610380575b602093848410811461036d5783885290811561035157506001146102fc575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061033d57505050508301013880806102b3565b805488860183015293019284908201610327565b60ff1916878501525050151560051b84010190503880806102b3565b634e487b7160e01b895260228a52602489fd5b91607f1691610294565b5050346101ae57816003193601126101ae5760055490516001600160a01b039091168152602090f35b5050346101ae57816003193601126101ae576020906006549051908152f35b83346102675780600319360112610267576103eb6107d0565b600580546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346101ae5760203660031901126101ae5760209181906001600160a01b0361045761079f565b16815280845220549051908152f35b50903461016157806003193601126101615761048061079f565b906024359161048d6107d0565b6001600160a01b03169283156104ea57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926104d087956002546107fc565b60025585855284835280852082815401905551908152a380f35b84602492519163ec442f0560e01b8352820152fd5b5050346101ae57806003193601126101ae576101dc60209261054861052261079f565b338352600186528483206001600160a01b038216845286529184902054602435906107fc565b90336108fd565b5050346101ae57816003193601126101ae576020905160128152f35b5091346102675760603660031901126102675761058661079f565b61058e6107ba565b90836044359360018060a01b0383168152600160205281812033825260205220549460001986036105c8575b6020856101dc86868661081f565b8386106105ed57509082916105e56101dc946020970333836108fd565b9091926105ba565b8451637dc7a0d960e11b81523391810191825260208201879052604082018590529081906060010390fd5b5050346101ae57816003193601126101ae576020906002549051908152f35b5050346101ae57806003193601126101ae576020906101dc61065761079f565b60243590336108fd565b849150833461016157826003193601126101615782600354600181811c9080831692831561074c575b602093848410811461036d5783885290811561073057506001146106da57505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061071c57505050508301018580806102b3565b805488860183015293019284908201610706565b60ff1916878501525050151560051b84010190508580806102b3565b91607f169161068a565b6020808252825181830181905290939260005b82811061078b57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610769565b600435906001600160a01b03821682036107b557565b600080fd5b602435906001600160a01b03821682036107b557565b6005546001600160a01b031633036107e457565b60405163118cdaa760e01b8152336004820152602490fd5b9190820180921161080957565b634e487b7160e01b600052601160045260246000fd5b916001600160a01b038084169283156108e457169283156108cb5760009083825281602052604082205490838210610899575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b03908116918215610977571691821561095e5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fdfea26469706673582212206ce70ddacdf92416935820ca3689de8fcb4c640e2b35d020eeb5956dcd914d0464736f6c63430008130033","sourceMap":"179:387:82:-:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:82;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2245:13:23;179:387:82;;;;;;;;;;;;;;;;-1:-1:-1;179:387:82;;;;;;;;;;;;;;;-1:-1:-1;179:387:82;;;;;;;;;;-1:-1:-1;179:387:82;;;;-1:-1:-1;;;;179:387:82;;;;;;;;;;;;;;;;;;;;2268:17:23;179:387:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:82;;;;;;;;;;;;;;;;;;;2868:6:21;179:387:82;;380:10;-1:-1:-1;;;;;;179:387:82;;;;;;;;;;380:10;-1:-1:-1;;;;;179:387:82;2916:40:21;-1:-1:-1;;2916:40:21;-1:-1:-1;254:1:82;179:387;380:10;9575:21:23;9571:91;;179:387:82;8279:22:23;179:387:82;;;;;;;;;;;-1:-1:-1;179:387:82;9139:26:23;179:387:82;8279:22:23;179:387:82;380:10;179:387;;;;;;;;;;;;;;;;;;;380:10;9139:26:23;;179:387:82;;;;;;;;;;;;;;-1:-1:-1;179:387:82;;;-1:-1:-1;179:387:82;9571:91:23;-1:-1:-1;179:387:82;9619:32:23;;;;;;;;179:387:82;9619:32:23;179:387:82;;;;-1:-1:-1;179:387:82;;;;;;;;;;;;;-1:-1:-1;179:387:82;;;-1:-1:-1;179:387:82;;-1:-1:-1;179:387:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:82;;;;;-1:-1:-1;179:387:82;;-1:-1:-1;179:387:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:82;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:82;;;-1:-1:-1;179:387:82;;;;;;;;;;;;-1:-1:-1;179:387:82;;2268:17:23;179:387:82;;-1:-1:-1;179:387:82;;;;;-1:-1:-1;179:387:82;;;;;;;;;;;;;;;-1:-1:-1;179:387:82;;-1:-1:-1;179:387:82;;-1:-1:-1;179:387:82;;;;;;;;;;-1:-1:-1;179:387:82;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:82;;-1:-1:-1;179:387:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:82;;;;-1:-1:-1;179:387:82;;;;;;;;;;;;;;;;-1:-1:-1;179:387:82;;;;;-1:-1:-1;179:387:82;;;;;;;;;-1:-1:-1;179:387:82;;;;;;;;;-1:-1:-1;;179:387:82;;;-1:-1:-1;;;;;179:387:82;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:82;;;;;;;;;;-1:-1:-1;;179:387:82;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;179:387:82;;;;;;;;-1:-1:-1;179:387:82;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde031461066157508063095ea7b31461063757806318160ddd1461061857806323b872dd1461056b578063313ce5671461054f57806339509351146104ff57806340c10f191461046657806370a082311461042f578063715018a6146103d2578063771282f6146103b35780638da5cb5b1461038a57806395d89b411461026a578063a457c2d7146101e3578063a9059cbb146101b2578063dd62ed3e146101655763f2fde38b146100d357600080fd5b34610161576020366003190112610161576100ec61079f565b906100f56107d0565b6001600160a01b0391821692831561014b575050600554826bffffffffffffffffffffffff60a01b821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346101ae57806003193601126101ae578060209261018361079f565b61018b6107ba565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b5050346101ae57806003193601126101ae576020906101dc6101d261079f565b602435903361081f565b5160018152f35b5091346102675781600319360112610267576101fd61079f565b928260243592338152600160205281812060018060a01b03871682526020522054908282106102375750926101dc916020940390336108fd565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b509190346101ae57816003193601126101ae57805190828454600181811c90808316928315610380575b602093848410811461036d5783885290811561035157506001146102fc575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061033d57505050508301013880806102b3565b805488860183015293019284908201610327565b60ff1916878501525050151560051b84010190503880806102b3565b634e487b7160e01b895260228a52602489fd5b91607f1691610294565b5050346101ae57816003193601126101ae5760055490516001600160a01b039091168152602090f35b5050346101ae57816003193601126101ae576020906006549051908152f35b83346102675780600319360112610267576103eb6107d0565b600580546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346101ae5760203660031901126101ae5760209181906001600160a01b0361045761079f565b16815280845220549051908152f35b50903461016157806003193601126101615761048061079f565b906024359161048d6107d0565b6001600160a01b03169283156104ea57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926104d087956002546107fc565b60025585855284835280852082815401905551908152a380f35b84602492519163ec442f0560e01b8352820152fd5b5050346101ae57806003193601126101ae576101dc60209261054861052261079f565b338352600186528483206001600160a01b038216845286529184902054602435906107fc565b90336108fd565b5050346101ae57816003193601126101ae576020905160128152f35b5091346102675760603660031901126102675761058661079f565b61058e6107ba565b90836044359360018060a01b0383168152600160205281812033825260205220549460001986036105c8575b6020856101dc86868661081f565b8386106105ed57509082916105e56101dc946020970333836108fd565b9091926105ba565b8451637dc7a0d960e11b81523391810191825260208201879052604082018590529081906060010390fd5b5050346101ae57816003193601126101ae576020906002549051908152f35b5050346101ae57806003193601126101ae576020906101dc61065761079f565b60243590336108fd565b849150833461016157826003193601126101615782600354600181811c9080831692831561074c575b602093848410811461036d5783885290811561073057506001146106da57505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061071c57505050508301018580806102b3565b805488860183015293019284908201610706565b60ff1916878501525050151560051b84010190508580806102b3565b91607f169161068a565b6020808252825181830181905290939260005b82811061078b57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610769565b600435906001600160a01b03821682036107b557565b600080fd5b602435906001600160a01b03821682036107b557565b6005546001600160a01b031633036107e457565b60405163118cdaa760e01b8152336004820152602490fd5b9190820180921161080957565b634e487b7160e01b600052601160045260246000fd5b916001600160a01b038084169283156108e457169283156108cb5760009083825281602052604082205490838210610899575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b03908116918215610977571691821561095e5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fdfea26469706673582212206ce70ddacdf92416935820ca3689de8fcb4c640e2b35d020eeb5956dcd914d0464736f6c63430008130033","sourceMap":"179:387:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:82;;;;;;:::i;:::-;1364:62:21;;;:::i;:::-;-1:-1:-1;;;;;179:387:82;;;;2491:22:21;;2487:91;;179:387:82;;2868:6:21;179:387:82;;;;;;;;2868:6:21;179:387:82;;2916:40:21;;;;179:387:82;;2487:91:21;179:387:82;-1:-1:-1;;;2536:31:21;;;;;179:387:82;;;;;2536:31:21;179:387:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;179:387:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4039:6:23;179:387:82;;:::i;:::-;;;720:10:27;;4039:6:23;:::i;:::-;179:387:82;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;720:10:27;;179:387:82;;;;;;;;;;;;;;;;;;;;;6910:36:23;;;;6906:148;;179:387:82;;7112:36:23;179:387:82;;;;720:10:27;;7112:36:23;:::i;6906:148::-;179:387:82;;-1:-1:-1;;;6969:74:23;;-1:-1:-1;;;;;179:387:82;;;6969:74:23;;;179:387:82;;;;;;;;;;;;;;;6969:74:23;;;179:387:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;179:387:82;;;;;-1:-1:-1;;179:387:82;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;179:387:82;;;;;;;;;;;;;;-1:-1:-1;179:387:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:82;;;;;-1:-1:-1;;179:387:82;;;;;;;;-1:-1:-1;179:387:82;;;;;;-1:-1:-1;;;179:387:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1574:6:21;179:387:82;;;-1:-1:-1;;;;;179:387:82;;;;;;;;;;;;;;;;;;;;;;;;223:32;179:387;;;;;;;;;;;;;;;;;;;;1364:62:21;;:::i;:::-;2868:6;179:387:82;;-1:-1:-1;;;;;;179:387:82;;;;;;;-1:-1:-1;;;;;179:387:82;2916:40:21;179:387:82;;2916:40:21;179:387:82;;;;;;;;;;-1:-1:-1;;179:387:82;;;;;;;;-1:-1:-1;;;;;179:387:82;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1364:62:21;;;:::i;:::-;-1:-1:-1;;;;;179:387:82;;9575:21:23;;9571:91;;179:387:82;;;9139:26:23;179:387:82;8279:22:23;179:387:82;;8279:22:23;179:387:82;8279:22:23;:::i;:::-;;179:387:82;;;;;;;;;;;;;;;;;;;;9139:26:23;179:387:82;;9571:91:23;179:387:82;;;;9619:32:23;;;;;;;;179:387:82;9619:32:23;179:387:82;;;;;;;;;;;;;;6139:38:23;179:387:82;;6139:38:23;179:387:82;;:::i;:::-;720:10:27;179:387:82;;;;;;;;-1:-1:-1;;;;;179:387:82;;;;;;;;;;;;;;6139:38:23;:::i;:::-;720:10:27;;6139:38:23;:::i;179:387:82:-;;;;;;;;;;;;;;;;;3358:2:23;179:387:82;;;;;;;;;;;-1:-1:-1;;179:387:82;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;720:10:27;179:387:82;;;;;;11506:17:23;;;11486:37;;11482:306;;179:387:82;;5542:6:23;;;;;;:::i;11482:306::-;11543:25;;;11539:132;;179:387:82;;;;11737:25:23;5542:6;179:387:82;;;;720:10:27;11737:25:23;;:::i;:::-;11482:306;;;;;11539:132;179:387:82;;-1:-1:-1;;;11595:61:23;;720:10:27;11595:61:23;;;179:387:82;;;;;;;;;;;;;;;;;;;;6969:74:23;;;179:387:82;;;;;;;;;;;;;;;;3505:12:23;179:387:82;;;;;;;;;;;;;;;;;;;;;;;4733:6:23;179:387:82;;:::i;:::-;;;720:10:27;;4733:6:23;:::i;179:387:82:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;179:387:82;;;;;-1:-1:-1;;179:387:82;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;179:387:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:82;;;;;-1:-1:-1;;179:387:82;;;;;;;;-1:-1:-1;179:387:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:82;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;179:387:82;;;;;;:::o;1660:162:21:-;1574:6;179:387:82;-1:-1:-1;;;;;179:387:82;720:10:27;1719:23:21;1715:101;;1660:162::o;1715:101::-;179:387:82;;-1:-1:-1;;;1765:40:21;;720:10:27;1765:40:21;;;179:387:82;;;1765:40:21;179:387:82;;;;;;;;;;:::o;:::-;;;;;;;;;;;;7553:302:23;;-1:-1:-1;;;;;179:387:82;;;;7637:18:23;;7633:86;;179:387:82;7732:16:23;;;7728:86;;8241:443;179:387:82;;;;;;;;;;;8387:20:23;;;;8383:117;;179:387:82;;;;;9139:26:23;179:387:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;9139:26:23;7553:302::o;8383:117::-;179:387:82;;-1:-1:-1;;;8434:51:23;;-1:-1:-1;;;;;179:387:82;;;;8434:51:23;;;179:387:82;;;;;;;;;;;;;;;;6969:74:23;7728:86;179:387:82;;-1:-1:-1;;;7771:32:23;;7653:1;7771:32;;;179:387:82;;;7771:32:23;7633:86;179:387:82;;-1:-1:-1;;;7678:30:23;;7653:1;7678:30;;;179:387:82;;;7678:30:23;10659:380;-1:-1:-1;;;;;179:387:82;;;;10756:19:23;;10752:89;;179:387:82;10854:21:23;;;10850:90;;179:387:82;11000:32:23;179:387:82;;10773:1:23;179:387:82;;;;;10773:1:23;179:387:82;;10773:1:23;179:387:82;;;;;10773:1:23;179:387:82;;;;;;;11000:32:23;10659:380::o;10850:90::-;179:387:82;;-1:-1:-1;;;10898:31:23;;10773:1;10898:31;;;179:387:82;;;10898:31:23;10752:89;179:387:82;;-1:-1:-1;;;10798:32:23;;10773:1;10798:32;;;179:387:82;;;10798:32:23","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","currentSupply()":"771282f6","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"ERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"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\":[{\"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\":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\":\"currentSupply\",\"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\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"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\":\"_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\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"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\"}],\"devdoc\":{\"errors\":{\"ERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"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.\"}}],\"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.\"},\"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 `amount` 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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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.\"},\"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 `amount`.\"},\"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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"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\":{\"test/helpers/ERC20Helper.sol\":\"DummyERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191\",\"dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1\",\"dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86\",\"dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013\",\"dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]},\"test/helpers/ERC20Helper.sol\":{\"keccak256\":\"0x6c2b213725c12dee6cf8cf1dea77ecd8b79e0dd201a36414eb6fe9b80dbc2939\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://489b39c9c75b127811b866146169e5f198bd4a2ee0ab19c7d49cc509bcae6625\",\"dweb:/ipfs/QmZE6wGtrAfxwgrQqHYvcNicPF5FKux9F1aVooqP6DH1JS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"ERC20FailedDecreaseAllowance"},{"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"}],"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":"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":"currentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"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":"_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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":"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"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` 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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"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."},"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 `amount`."},"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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."},"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/ERC20Helper.sol":"DummyERC20"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183","urls":["bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191","dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b","urls":["bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1","dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3","urls":["bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86","dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca","urls":["bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013","dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"},"test/helpers/ERC20Helper.sol":{"keccak256":"0x6c2b213725c12dee6cf8cf1dea77ecd8b79e0dd201a36414eb6fe9b80dbc2939","urls":["bzz-raw://489b39c9c75b127811b866146169e5f198bd4a2ee0ab19c7d49cc509bcae6625","dweb:/ipfs/QmZE6wGtrAfxwgrQqHYvcNicPF5FKux9F1aVooqP6DH1JS"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/ERC20Helper.sol","id":54060,"exportedSymbols":{"Context":[32431],"DummyERC20":[54059],"ERC20":[31921],"IERC1155Errors":[31351],"IERC20":[31999],"IERC20Errors":[31256],"IERC20Metadata":[32024],"IERC721Errors":[31304],"Ownable":[31214]},"nodeType":"SourceUnit","src":"46:521:82","nodes":[{"id":54010,"nodeType":"PragmaDirective","src":"46:23:82","nodes":[],"literals":["solidity","0.8",".19"]},{"id":54011,"nodeType":"ImportDirective","src":"71:54:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":54060,"sourceUnit":31922,"symbolAliases":[],"unitAlias":""},{"id":54012,"nodeType":"ImportDirective","src":"126:51:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"openzeppelin-contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":54060,"sourceUnit":31215,"symbolAliases":[],"unitAlias":""},{"id":54059,"nodeType":"ContractDefinition","src":"179:387:82","nodes":[{"id":54019,"nodeType":"VariableDeclaration","src":"223:32:82","nodes":[],"constant":false,"functionSelector":"771282f6","mutability":"mutable","name":"currentSupply","nameLocation":"238:13:82","scope":54059,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54017,"name":"uint256","nodeType":"ElementaryTypeName","src":"223:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":54018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"254:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":54043,"nodeType":"FunctionDefinition","src":"262:199:82","nodes":[],"body":{"id":54042,"nodeType":"Block","src":"414:47:82","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":54037,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31134,"src":"430:5:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":54038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"430:7:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54039,"name":"_initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54025,"src":"439:14:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54036,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31785,"src":"424:5:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"424:30:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54041,"nodeType":"ExpressionStatement","src":"424:30:82"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":54028,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"380:3:82","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"384:6:82","memberName":"sender","nodeType":"MemberAccess","src":"380:10:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":54030,"kind":"baseConstructorSpecifier","modifierName":{"id":54027,"name":"Ownable","nameLocations":["372:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":31214,"src":"372:7:82"},"nodeType":"ModifierInvocation","src":"372:19:82"},{"arguments":[{"id":54032,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54021,"src":"398:5:82","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":54033,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54023,"src":"405:7:82","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":54034,"kind":"baseConstructorSpecifier","modifierName":{"id":54031,"name":"ERC20","nameLocations":["392:5:82"],"nodeType":"IdentifierPath","referencedDeclaration":31921,"src":"392:5:82"},"nodeType":"ModifierInvocation","src":"392:21:82"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54021,"mutability":"mutable","name":"_name","nameLocation":"297:5:82","nodeType":"VariableDeclaration","scope":54043,"src":"283:19:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":54020,"name":"string","nodeType":"ElementaryTypeName","src":"283:6:82","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":54023,"mutability":"mutable","name":"_symbol","nameLocation":"326:7:82","nodeType":"VariableDeclaration","scope":54043,"src":"312:21:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":54022,"name":"string","nodeType":"ElementaryTypeName","src":"312:6:82","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":54025,"mutability":"mutable","name":"_initialSupply","nameLocation":"351:14:82","nodeType":"VariableDeclaration","scope":54043,"src":"343:22:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54024,"name":"uint256","nodeType":"ElementaryTypeName","src":"343:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"273:98:82"},"returnParameters":{"id":54035,"nodeType":"ParameterList","parameters":[],"src":"414:0:82"},"scope":54059,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54058,"nodeType":"FunctionDefinition","src":"467:97:82","nodes":[],"body":{"id":54057,"nodeType":"Block","src":"528:36:82","nodes":[],"statements":[{"expression":{"arguments":[{"id":54053,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54045,"src":"544:3:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54054,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54047,"src":"549:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54052,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31785,"src":"538:5:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"538:19:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54056,"nodeType":"ExpressionStatement","src":"538:19:82"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":54050,"kind":"modifierInvocation","modifierName":{"id":54049,"name":"onlyOwner","nameLocations":["518:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":31125,"src":"518:9:82"},"nodeType":"ModifierInvocation","src":"518:9:82"}],"name":"mint","nameLocation":"476:4:82","parameters":{"id":54048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54045,"mutability":"mutable","name":"_to","nameLocation":"489:3:82","nodeType":"VariableDeclaration","scope":54058,"src":"481:11:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54044,"name":"address","nodeType":"ElementaryTypeName","src":"481:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54047,"mutability":"mutable","name":"_amount","nameLocation":"502:7:82","nodeType":"VariableDeclaration","scope":54058,"src":"494:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54046,"name":"uint256","nodeType":"ElementaryTypeName","src":"494:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"480:30:82"},"returnParameters":{"id":54051,"nodeType":"ParameterList","parameters":[],"src":"528:0:82"},"scope":54059,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":54013,"name":"ERC20","nameLocations":["202:5:82"],"nodeType":"IdentifierPath","referencedDeclaration":31921,"src":"202:5:82"},"id":54014,"nodeType":"InheritanceSpecifier","src":"202:5:82"},{"baseName":{"id":54015,"name":"Ownable","nameLocations":["209:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":31214,"src":"209:7:82"},"id":54016,"nodeType":"InheritanceSpecifier","src":"209:7:82"}],"canonicalName":"DummyERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54059,31214,31921,31256,32024,31999,32431],"name":"DummyERC20","nameLocation":"188:10:82","scope":54060,"usedErrors":[31095,31100,31226,31231,31236,31245,31250,31255,31391]}],"license":"MIT OR Apache-2.0"},"id":82} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_initialSupply","type":"uint256","internalType":"uint256"}],"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":"currentSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"requestedDecrease","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"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":"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":"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":"ERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"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":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60406080815234620003ea5762000e4e803803806200001e81620003ef565b9283398101606082820312620003ea5781516001600160401b039290838111620003ea57826200005091830162000415565b60209283830151858111620003ea5786916200006e91850162000415565b920151938151818111620002ea576003908154906001948583811c93168015620003df575b88841014620003c9578190601f9384811162000373575b5088908483116001146200030c5760009262000300575b505060001982851b1c191690851b1782555b8451928311620002ea5760049485548581811c91168015620002df575b88821014620002ca578281116200027f575b5086918411600114620002145793839491849260009562000208575b50501b92600019911b1c19161781555b60058054336001600160a01b031982168117909255855191906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a360006006553315620001f4575060025490838201809211620001df57506000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160025533835282815284832084815401905584519384523393a3516109c69081620004888239f35b601190634e487b7160e01b6000525260246000fd5b600060249263ec442f0560e01b8352820152fd5b0151935038806200011e565b9190601f198416928660005284886000209460005b8a898383106200026757505050106200024c575b50505050811b0181556200012e565b01519060f884600019921b161c19169055388080806200023d565b86860151895590970196948501948893500162000229565b86600052876000208380870160051c8201928a8810620002c0575b0160051c019086905b828110620002b357505062000102565b60008155018690620002a3565b925081926200029a565b602287634e487b7160e01b6000525260246000fd5b90607f1690620000f0565b634e487b7160e01b600052604160045260246000fd5b015190503880620000c1565b90879350601f19831691866000528a6000209260005b8c8282106200035c575050841162000343575b505050811b018255620000d3565b015160001983871b60f8161c1916905538808062000335565b8385015186558b9790950194938401930162000322565b90915084600052886000208480850160051c8201928b8610620003bf575b918991869594930160051c01915b828110620003af575050620000aa565b600081558594508991016200039f565b9250819262000391565b634e487b7160e01b600052602260045260246000fd5b92607f169262000093565b600080fd5b6040519190601f01601f191682016001600160401b03811183821017620002ea57604052565b919080601f84011215620003ea5782516001600160401b038111620002ea576020906200044b601f8201601f19168301620003ef565b92818452828287010111620003ea5760005b8181106200047357508260009394955001015290565b85810183015184820184015282016200045d56fe6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde031461066157508063095ea7b31461063757806318160ddd1461061857806323b872dd1461056b578063313ce5671461054f57806339509351146104ff57806340c10f191461046657806370a082311461042f578063715018a6146103d2578063771282f6146103b35780638da5cb5b1461038a57806395d89b411461026a578063a457c2d7146101e3578063a9059cbb146101b2578063dd62ed3e146101655763f2fde38b146100d357600080fd5b34610161576020366003190112610161576100ec61079f565b906100f56107d0565b6001600160a01b0391821692831561014b575050600554826bffffffffffffffffffffffff60a01b821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346101ae57806003193601126101ae578060209261018361079f565b61018b6107ba565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b5050346101ae57806003193601126101ae576020906101dc6101d261079f565b602435903361081f565b5160018152f35b5091346102675781600319360112610267576101fd61079f565b928260243592338152600160205281812060018060a01b03871682526020522054908282106102375750926101dc916020940390336108fd565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b509190346101ae57816003193601126101ae57805190828454600181811c90808316928315610380575b602093848410811461036d5783885290811561035157506001146102fc575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061033d57505050508301013880806102b3565b805488860183015293019284908201610327565b60ff1916878501525050151560051b84010190503880806102b3565b634e487b7160e01b895260228a52602489fd5b91607f1691610294565b5050346101ae57816003193601126101ae5760055490516001600160a01b039091168152602090f35b5050346101ae57816003193601126101ae576020906006549051908152f35b83346102675780600319360112610267576103eb6107d0565b600580546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346101ae5760203660031901126101ae5760209181906001600160a01b0361045761079f565b16815280845220549051908152f35b50903461016157806003193601126101615761048061079f565b906024359161048d6107d0565b6001600160a01b03169283156104ea57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926104d087956002546107fc565b60025585855284835280852082815401905551908152a380f35b84602492519163ec442f0560e01b8352820152fd5b5050346101ae57806003193601126101ae576101dc60209261054861052261079f565b338352600186528483206001600160a01b038216845286529184902054602435906107fc565b90336108fd565b5050346101ae57816003193601126101ae576020905160128152f35b5091346102675760603660031901126102675761058661079f565b61058e6107ba565b90836044359360018060a01b0383168152600160205281812033825260205220549460001986036105c8575b6020856101dc86868661081f565b8386106105ed57509082916105e56101dc946020970333836108fd565b9091926105ba565b8451637dc7a0d960e11b81523391810191825260208201879052604082018590529081906060010390fd5b5050346101ae57816003193601126101ae576020906002549051908152f35b5050346101ae57806003193601126101ae576020906101dc61065761079f565b60243590336108fd565b849150833461016157826003193601126101615782600354600181811c9080831692831561074c575b602093848410811461036d5783885290811561073057506001146106da57505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061071c57505050508301018580806102b3565b805488860183015293019284908201610706565b60ff1916878501525050151560051b84010190508580806102b3565b91607f169161068a565b6020808252825181830181905290939260005b82811061078b57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610769565b600435906001600160a01b03821682036107b557565b600080fd5b602435906001600160a01b03821682036107b557565b6005546001600160a01b031633036107e457565b60405163118cdaa760e01b8152336004820152602490fd5b9190820180921161080957565b634e487b7160e01b600052601160045260246000fd5b916001600160a01b038084169283156108e457169283156108cb5760009083825281602052604082205490838210610899575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b03908116918215610977571691821561095e5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fdfea26469706673582212206ce70ddacdf92416935820ca3689de8fcb4c640e2b35d020eeb5956dcd914d0464736f6c63430008130033","sourceMap":"179:387:89:-:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2245:13:23;179:387:89;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;-1:-1:-1;179:387:89;;;;-1:-1:-1;;;;179:387:89;;;;;;;;;;;;;;;;;;;;2268:17:23;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;2868:6:21;179:387:89;;380:10;-1:-1:-1;;;;;;179:387:89;;;;;;;;;;380:10;-1:-1:-1;;;;;179:387:89;2916:40:21;-1:-1:-1;;2916:40:21;-1:-1:-1;254:1:89;179:387;380:10;9575:21:23;9571:91;;179:387:89;8279:22:23;179:387:89;;;;;;;;;;;-1:-1:-1;179:387:89;9139:26:23;179:387:89;8279:22:23;179:387:89;380:10;179:387;;;;;;;;;;;;;;;;;;;380:10;9139:26:23;;179:387:89;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;-1:-1:-1;179:387:89;9571:91:23;-1:-1:-1;179:387:89;9619:32:23;;;;;;;;179:387:89;9619:32:23;179:387:89;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;-1:-1:-1;179:387:89;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;-1:-1:-1;179:387:89;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;-1:-1:-1;179:387:89;;;;;;;;;;;;-1:-1:-1;179:387:89;;2268:17:23;179:387:89;;-1:-1:-1;179:387:89;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;-1:-1:-1;179:387:89;;-1:-1:-1;179:387:89;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;-1:-1:-1;179:387:89;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;-1:-1:-1;;179:387:89;;;-1:-1:-1;;;;;179:387:89;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:89;;;;;;;;;;-1:-1:-1;;179:387:89;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260048036101561001557600080fd5b600092833560e01c90816306fdde031461066157508063095ea7b31461063757806318160ddd1461061857806323b872dd1461056b578063313ce5671461054f57806339509351146104ff57806340c10f191461046657806370a082311461042f578063715018a6146103d2578063771282f6146103b35780638da5cb5b1461038a57806395d89b411461026a578063a457c2d7146101e3578063a9059cbb146101b2578063dd62ed3e146101655763f2fde38b146100d357600080fd5b34610161576020366003190112610161576100ec61079f565b906100f56107d0565b6001600160a01b0391821692831561014b575050600554826bffffffffffffffffffffffff60a01b821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346101ae57806003193601126101ae578060209261018361079f565b61018b6107ba565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b5050346101ae57806003193601126101ae576020906101dc6101d261079f565b602435903361081f565b5160018152f35b5091346102675781600319360112610267576101fd61079f565b928260243592338152600160205281812060018060a01b03871682526020522054908282106102375750926101dc916020940390336108fd565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b509190346101ae57816003193601126101ae57805190828454600181811c90808316928315610380575b602093848410811461036d5783885290811561035157506001146102fc575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061033d57505050508301013880806102b3565b805488860183015293019284908201610327565b60ff1916878501525050151560051b84010190503880806102b3565b634e487b7160e01b895260228a52602489fd5b91607f1691610294565b5050346101ae57816003193601126101ae5760055490516001600160a01b039091168152602090f35b5050346101ae57816003193601126101ae576020906006549051908152f35b83346102675780600319360112610267576103eb6107d0565b600580546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5050346101ae5760203660031901126101ae5760209181906001600160a01b0361045761079f565b16815280845220549051908152f35b50903461016157806003193601126101615761048061079f565b906024359161048d6107d0565b6001600160a01b03169283156104ea57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926104d087956002546107fc565b60025585855284835280852082815401905551908152a380f35b84602492519163ec442f0560e01b8352820152fd5b5050346101ae57806003193601126101ae576101dc60209261054861052261079f565b338352600186528483206001600160a01b038216845286529184902054602435906107fc565b90336108fd565b5050346101ae57816003193601126101ae576020905160128152f35b5091346102675760603660031901126102675761058661079f565b61058e6107ba565b90836044359360018060a01b0383168152600160205281812033825260205220549460001986036105c8575b6020856101dc86868661081f565b8386106105ed57509082916105e56101dc946020970333836108fd565b9091926105ba565b8451637dc7a0d960e11b81523391810191825260208201879052604082018590529081906060010390fd5b5050346101ae57816003193601126101ae576020906002549051908152f35b5050346101ae57806003193601126101ae576020906101dc61065761079f565b60243590336108fd565b849150833461016157826003193601126101615782600354600181811c9080831692831561074c575b602093848410811461036d5783885290811561073057506001146106da57505050829003601f01601f191682019267ffffffffffffffff8411838510176102e957508291826102e5925282610756565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061071c57505050508301018580806102b3565b805488860183015293019284908201610706565b60ff1916878501525050151560051b84010190508580806102b3565b91607f169161068a565b6020808252825181830181905290939260005b82811061078b57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610769565b600435906001600160a01b03821682036107b557565b600080fd5b602435906001600160a01b03821682036107b557565b6005546001600160a01b031633036107e457565b60405163118cdaa760e01b8152336004820152602490fd5b9190820180921161080957565b634e487b7160e01b600052601160045260246000fd5b916001600160a01b038084169283156108e457169283156108cb5760009083825281602052604082205490838210610899575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b03908116918215610977571691821561095e5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fdfea26469706673582212206ce70ddacdf92416935820ca3689de8fcb4c640e2b35d020eeb5956dcd914d0464736f6c63430008130033","sourceMap":"179:387:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:89;;;;;;:::i;:::-;1364:62:21;;;:::i;:::-;-1:-1:-1;;;;;179:387:89;;;;2491:22:21;;2487:91;;179:387:89;;2868:6:21;179:387:89;;;;;;;;2868:6:21;179:387:89;;2916:40:21;;;;179:387:89;;2487:91:21;179:387:89;-1:-1:-1;;;2536:31:21;;;;;179:387:89;;;;;2536:31:21;179:387:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4039:6:23;179:387:89;;:::i;:::-;;;720:10:30;;4039:6:23;:::i;:::-;179:387:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;720:10:30;;179:387:89;;;;;;;;;;;;;;;;;;;;;6910:36:23;;;;6906:148;;179:387:89;;7112:36:23;179:387:89;;;;720:10:30;;7112:36:23;:::i;6906:148::-;179:387:89;;-1:-1:-1;;;6969:74:23;;-1:-1:-1;;;;;179:387:89;;;6969:74:23;;;179:387:89;;;;;;;;;;;;;;;6969:74:23;;;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;179:387:89;;;;;-1:-1:-1;;179:387:89;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;179:387:89;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:89;;;;;-1:-1:-1;;179:387:89;;;;;;;;-1:-1:-1;179:387:89;;;;;;-1:-1:-1;;;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1574:6:21;179:387:89;;;-1:-1:-1;;;;;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;223:32;179:387;;;;;;;;;;;;;;;;;;;;1364:62:21;;:::i;:::-;2868:6;179:387:89;;-1:-1:-1;;;;;;179:387:89;;;;;;;-1:-1:-1;;;;;179:387:89;2916:40:21;179:387:89;;2916:40:21;179:387:89;;;;;;;;;;-1:-1:-1;;179:387:89;;;;;;;;-1:-1:-1;;;;;179:387:89;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1364:62:21;;;:::i;:::-;-1:-1:-1;;;;;179:387:89;;9575:21:23;;9571:91;;179:387:89;;;9139:26:23;179:387:89;8279:22:23;179:387:89;;8279:22:23;179:387:89;8279:22:23;:::i;:::-;;179:387:89;;;;;;;;;;;;;;;;;;;;9139:26:23;179:387:89;;9571:91:23;179:387:89;;;;9619:32:23;;;;;;;;179:387:89;9619:32:23;179:387:89;;;;;;;;;;;;;;6139:38:23;179:387:89;;6139:38:23;179:387:89;;:::i;:::-;720:10:30;179:387:89;;;;;;;;-1:-1:-1;;;;;179:387:89;;;;;;;;;;;;;;6139:38:23;:::i;:::-;720:10:30;;6139:38:23;:::i;179:387:89:-;;;;;;;;;;;;;;;;;3358:2:23;179:387:89;;;;;;;;;;;-1:-1:-1;;179:387:89;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;720:10:30;179:387:89;;;;;;11506:17:23;;;11486:37;;11482:306;;179:387:89;;5542:6:23;;;;;;:::i;11482:306::-;11543:25;;;11539:132;;179:387:89;;;;11737:25:23;5542:6;179:387:89;;;;720:10:30;11737:25:23;;:::i;:::-;11482:306;;;;;11539:132;179:387:89;;-1:-1:-1;;;11595:61:23;;720:10:30;11595:61:23;;;179:387:89;;;;;;;;;;;;;;;;;;;;6969:74:23;;;179:387:89;;;;;;;;;;;;;;;;3505:12:23;179:387:89;;;;;;;;;;;;;;;;;;;;;;;4733:6:23;179:387:89;;:::i;:::-;;;720:10:30;;4733:6:23;:::i;179:387:89:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;179:387:89;;;;;-1:-1:-1;;179:387:89;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;179:387:89;;;;;-1:-1:-1;;179:387:89;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;179:387:89;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;179:387:89;;;;;;:::o;1660:162:21:-;1574:6;179:387:89;-1:-1:-1;;;;;179:387:89;720:10:30;1719:23:21;1715:101;;1660:162::o;1715:101::-;179:387:89;;-1:-1:-1;;;1765:40:21;;720:10:30;1765:40:21;;;179:387:89;;;1765:40:21;179:387:89;;;;;;;;;;:::o;:::-;;;;;;;;;;;;7553:302:23;;-1:-1:-1;;;;;179:387:89;;;;7637:18:23;;7633:86;;179:387:89;7732:16:23;;;7728:86;;8241:443;179:387:89;;;;;;;;;;;8387:20:23;;;;8383:117;;179:387:89;;;;;9139:26:23;179:387:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;9139:26:23;7553:302::o;8383:117::-;179:387:89;;-1:-1:-1;;;8434:51:23;;-1:-1:-1;;;;;179:387:89;;;;8434:51:23;;;179:387:89;;;;;;;;;;;;;;;;6969:74:23;7728:86;179:387:89;;-1:-1:-1;;;7771:32:23;;7653:1;7771:32;;;179:387:89;;;7771:32:23;7633:86;179:387:89;;-1:-1:-1;;;7678:30:23;;7653:1;7678:30;;;179:387:89;;;7678:30:23;10659:380;-1:-1:-1;;;;;179:387:89;;;;10756:19:23;;10752:89;;179:387:89;10854:21:23;;;10850:90;;179:387:89;11000:32:23;179:387:89;;10773:1:23;179:387:89;;;;;10773:1:23;179:387:89;;10773:1:23;179:387:89;;;;;10773:1:23;179:387:89;;;;;;;11000:32:23;10659:380::o;10850:90::-;179:387:89;;-1:-1:-1;;;10898:31:23;;10773:1;10898:31;;;179:387:89;;;10898:31:23;10752:89;179:387:89;;-1:-1:-1;;;10798:32:23;;10773:1;10798:32;;;179:387:89;;;10798:32:23","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","currentSupply()":"771282f6","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"ERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"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\":[{\"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\":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\":\"currentSupply\",\"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\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"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\":\"_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\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"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\"}],\"devdoc\":{\"errors\":{\"ERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"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.\"}}],\"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.\"},\"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 `amount` 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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"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.\"},\"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 `amount`.\"},\"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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"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\":{\"test/helpers/ERC20Helper.sol\":\"DummyERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191\",\"dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1\",\"dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86\",\"dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013\",\"dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]},\"test/helpers/ERC20Helper.sol\":{\"keccak256\":\"0x6c2b213725c12dee6cf8cf1dea77ecd8b79e0dd201a36414eb6fe9b80dbc2939\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://489b39c9c75b127811b866146169e5f198bd4a2ee0ab19c7d49cc509bcae6625\",\"dweb:/ipfs/QmZE6wGtrAfxwgrQqHYvcNicPF5FKux9F1aVooqP6DH1JS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"ERC20FailedDecreaseAllowance"},{"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"}],"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":"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":"currentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"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":"_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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":"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"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` 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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"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."},"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 `amount`."},"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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."},"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/ERC20Helper.sol":"DummyERC20"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183","urls":["bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191","dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b","urls":["bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1","dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3","urls":["bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86","dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca","urls":["bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013","dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"},"test/helpers/ERC20Helper.sol":{"keccak256":"0x6c2b213725c12dee6cf8cf1dea77ecd8b79e0dd201a36414eb6fe9b80dbc2939","urls":["bzz-raw://489b39c9c75b127811b866146169e5f198bd4a2ee0ab19c7d49cc509bcae6625","dweb:/ipfs/QmZE6wGtrAfxwgrQqHYvcNicPF5FKux9F1aVooqP6DH1JS"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/ERC20Helper.sol","id":55427,"exportedSymbols":{"Context":[32860],"DummyERC20":[55426],"ERC20":[31921],"IERC1155Errors":[31351],"IERC20":[31999],"IERC20Errors":[31256],"IERC20Metadata":[32068],"IERC721Errors":[31304],"Ownable":[31214]},"nodeType":"SourceUnit","src":"46:521:89","nodes":[{"id":55377,"nodeType":"PragmaDirective","src":"46:23:89","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55378,"nodeType":"ImportDirective","src":"71:54:89","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":55427,"sourceUnit":31922,"symbolAliases":[],"unitAlias":""},{"id":55379,"nodeType":"ImportDirective","src":"126:51:89","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"openzeppelin-contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":55427,"sourceUnit":31215,"symbolAliases":[],"unitAlias":""},{"id":55426,"nodeType":"ContractDefinition","src":"179:387:89","nodes":[{"id":55386,"nodeType":"VariableDeclaration","src":"223:32:89","nodes":[],"constant":false,"functionSelector":"771282f6","mutability":"mutable","name":"currentSupply","nameLocation":"238:13:89","scope":55426,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55384,"name":"uint256","nodeType":"ElementaryTypeName","src":"223:7:89","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":55385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"254:1:89","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":55410,"nodeType":"FunctionDefinition","src":"262:199:89","nodes":[],"body":{"id":55409,"nodeType":"Block","src":"414:47:89","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":55404,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31134,"src":"430:5:89","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":55405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"430:7:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55406,"name":"_initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55392,"src":"439:14:89","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55403,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31785,"src":"424:5:89","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":55407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"424:30:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55408,"nodeType":"ExpressionStatement","src":"424:30:89"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":55395,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"380:3:89","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"384:6:89","memberName":"sender","nodeType":"MemberAccess","src":"380:10:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":55397,"kind":"baseConstructorSpecifier","modifierName":{"id":55394,"name":"Ownable","nameLocations":["372:7:89"],"nodeType":"IdentifierPath","referencedDeclaration":31214,"src":"372:7:89"},"nodeType":"ModifierInvocation","src":"372:19:89"},{"arguments":[{"id":55399,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55388,"src":"398:5:89","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":55400,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55390,"src":"405:7:89","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":55401,"kind":"baseConstructorSpecifier","modifierName":{"id":55398,"name":"ERC20","nameLocations":["392:5:89"],"nodeType":"IdentifierPath","referencedDeclaration":31921,"src":"392:5:89"},"nodeType":"ModifierInvocation","src":"392:21:89"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":55393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55388,"mutability":"mutable","name":"_name","nameLocation":"297:5:89","nodeType":"VariableDeclaration","scope":55410,"src":"283:19:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55387,"name":"string","nodeType":"ElementaryTypeName","src":"283:6:89","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":55390,"mutability":"mutable","name":"_symbol","nameLocation":"326:7:89","nodeType":"VariableDeclaration","scope":55410,"src":"312:21:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55389,"name":"string","nodeType":"ElementaryTypeName","src":"312:6:89","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":55392,"mutability":"mutable","name":"_initialSupply","nameLocation":"351:14:89","nodeType":"VariableDeclaration","scope":55410,"src":"343:22:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55391,"name":"uint256","nodeType":"ElementaryTypeName","src":"343:7:89","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"273:98:89"},"returnParameters":{"id":55402,"nodeType":"ParameterList","parameters":[],"src":"414:0:89"},"scope":55426,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55425,"nodeType":"FunctionDefinition","src":"467:97:89","nodes":[],"body":{"id":55424,"nodeType":"Block","src":"528:36:89","nodes":[],"statements":[{"expression":{"arguments":[{"id":55420,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55412,"src":"544:3:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55421,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55414,"src":"549:7:89","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55419,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31785,"src":"538:5:89","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":55422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"538:19:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55423,"nodeType":"ExpressionStatement","src":"538:19:89"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":55417,"kind":"modifierInvocation","modifierName":{"id":55416,"name":"onlyOwner","nameLocations":["518:9:89"],"nodeType":"IdentifierPath","referencedDeclaration":31125,"src":"518:9:89"},"nodeType":"ModifierInvocation","src":"518:9:89"}],"name":"mint","nameLocation":"476:4:89","parameters":{"id":55415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55412,"mutability":"mutable","name":"_to","nameLocation":"489:3:89","nodeType":"VariableDeclaration","scope":55425,"src":"481:11:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55411,"name":"address","nodeType":"ElementaryTypeName","src":"481:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55414,"mutability":"mutable","name":"_amount","nameLocation":"502:7:89","nodeType":"VariableDeclaration","scope":55425,"src":"494:15:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55413,"name":"uint256","nodeType":"ElementaryTypeName","src":"494:7:89","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"480:30:89"},"returnParameters":{"id":55418,"nodeType":"ParameterList","parameters":[],"src":"528:0:89"},"scope":55426,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":55380,"name":"ERC20","nameLocations":["202:5:89"],"nodeType":"IdentifierPath","referencedDeclaration":31921,"src":"202:5:89"},"id":55381,"nodeType":"InheritanceSpecifier","src":"202:5:89"},{"baseName":{"id":55382,"name":"Ownable","nameLocations":["209:7:89"],"nodeType":"IdentifierPath","referencedDeclaration":31214,"src":"209:7:89"},"id":55383,"nodeType":"InheritanceSpecifier","src":"209:7:89"}],"canonicalName":"DummyERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55426,31214,31921,31256,32068,31999,32860],"name":"DummyERC20","nameLocation":"188:10:89","scope":55427,"usedErrors":[31095,31100,31226,31231,31236,31245,31250,31255,31391]}],"license":"MIT OR Apache-2.0"},"id":89} \ No newline at end of file diff --git a/.out/ERC20PresetFixedSupply.sol/ERC20PresetFixedSupply.json b/.out/ERC20PresetFixedSupply.sol/ERC20PresetFixedSupply.json new file mode 100644 index 000000000..3eefbe446 --- /dev/null +++ b/.out/ERC20PresetFixedSupply.sol/ERC20PresetFixedSupply.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"initialSupply","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}],"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":"burn","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"requestedDecrease","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"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":"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},{"type":"error","name":"ERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"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":"0x60406080815234620003b55762000cdc803803806200001e81620003ba565b9283398101608082820312620003b55781516001600160401b039290838111620003b5578262000050918301620003e0565b6020928383015190858211620003b5576200006d918401620003e0565b906060868401519301519460018060a01b038616809603620003b5578151818111620002b5576003908154906001948583811c93168015620003aa575b8984101462000394578190601f938481116200033e575b508990848311600114620002d757600092620002cb575b505060001982851b1c191690851b1782555b8451928311620002b55760049485548581811c91168015620002aa575b8982101462000295578281116200024a575b5087918411600114620001df57938394918492600095620001d3575b50501b92600019911b1c19161781555b8315620001bc5760025490828201809211620001a7575060025560008381528083528481208054830190558451918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a3516108899081620004538239f35b601190634e487b7160e01b6000525260246000fd5b602490600086519163ec442f0560e01b8352820152fd5b01519350388062000135565b9190601f198416928660005284896000209460005b8b8983831062000232575050501062000217575b50505050811b01815562000145565b01519060f884600019921b161c191690553880808062000208565b868601518955909701969485019488935001620001f4565b86600052886000208380870160051c8201928b88106200028b575b0160051c019086905b8281106200027e57505062000119565b600081550186906200026e565b9250819262000265565b602287634e487b7160e01b6000525260246000fd5b90607f169062000107565b634e487b7160e01b600052604160045260246000fd5b015190503880620000d8565b90879350601f19831691866000528b6000209260005b8d8282106200032757505084116200030e575b505050811b018255620000ea565b015160001983871b60f8161c1916905538808062000300565b8385015186558b97909501949384019301620002ed565b90915084600052896000208480850160051c8201928c86106200038a575b918991869594930160051c01915b8281106200037a575050620000c1565b600081558594508991016200036a565b925081926200035c565b634e487b7160e01b600052602260045260246000fd5b92607f1692620000aa565b600080fd5b6040519190601f01601f191682016001600160401b03811183821017620002b557604052565b919080601f84011215620003b55782516001600160401b038111620002b55760209062000416601f8201601f19168301620003ba565b92818452828287010111620003b55760005b8181106200043e57508260009394955001015290565b85810183015184820184015282016200042856fe608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461046657508163095ea7b31461043c57816318160ddd1461041d57816323b872dd146103e0578163313ce567146103c4578163395093511461035d57816342966c681461033f57816370a082311461030857816379cc6790146102d557816395d89b41146101b6578163a457c2d71461012f57508063a9059cbb146100ff5763dd62ed3e146100b457600080fd5b346100fb57806003193601126100fb57806020926100d061058b565b6100d86105a6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100fb57806003193601126100fb5760209061012861011e61058b565b60243590336105bc565b5160018152f35b8284346101b357816003193601126101b35761014961058b565b928260243592338152600160205281812060018060a01b03871682526020522054908282106101835750926101289160209403903361069a565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b8383346100fb57816003193601126100fb57805190828454600181811c908083169283156102cb575b60209384841081146102b85783885290811561029c5750600114610247575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102345750829182610230925282610542565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061028857505050508301018580806101fe565b805488860183015293019284908201610272565b60ff1916878501525050151560051b84010190508580806101fe565b634e487b7160e01b895260228a52602489fd5b91607f16916101df565b5050346100fb573660031901126101b3576103056102f161058b565b6024359061030082338361072d565b6107b4565b80f35b5050346100fb5760203660031901126100fb5760209181906001600160a01b0361033061058b565b16815280845220549051908152f35b8390346100fb5760203660031901126100fb576103059035336107b4565b8284346101b357816003193601126101b35761037761058b565b338252600160209081528383206001600160a01b03831684529052828220546024358101929083106103b15760208461012885853361069a565b634e487b7160e01b815260118552602490fd5b5050346100fb57816003193601126100fb576020905160128152f35b5050346100fb5760603660031901126100fb5760209061012861040161058b565b6104096105a6565b6044359161041883338361072d565b6105bc565b5050346100fb57816003193601126100fb576020906002549051908152f35b5050346100fb57806003193601126100fb5760209061012861045c61058b565b602435903361069a565b8490843461053e578260031936011261053e5782600354600181811c90808316928315610534575b60209384841081146102b85783885290811561029c57506001146104de57505050829003601f01601f191682019267ffffffffffffffff8411838510176102345750829182610230925282610542565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061052057505050508301018580806101fe565b80548886018301529301928490820161050a565b91607f169161048e565b8280fd5b6020808252825181830181905290939260005b82811061057757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610555565b600435906001600160a01b03821682036105a157565b600080fd5b602435906001600160a01b03821682036105a157565b916001600160a01b0380841692831561068157169283156106685760009083825281602052604082205490838210610636575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b0390811691821561071457169182156106fb5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b9092919260018060a01b0380831660005260016020526040600020908216600052602052604060002054936000198503610769575b5050509050565b8085106107855761077c9394039161069a565b80388080610762565b604051637dc7a0d960e11b81526001600160a01b03929092166004830152602482018590526044820152606490fd5b906001600160a01b03821690811561068157600092828452836020526040842054908282106108215750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926020928587528684520360408620558060025403600255604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101829052606490fdfea264697066735822122034ae073c7b3a769a992f80a8f9cc86f92cbfb905306a15b285a5b361fe0dcd8e64736f6c63430008130033","sourceMap":"669:349:90:-:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;669:349:90;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:13:23;669:349:90;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;-1:-1:-1;669:349:90;;;;-1:-1:-1;;;;669:349:90;;;;;;;;;;;;;;;;;;;;2268:17:23;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;9575:21:23;;9571:91;;8279:22;669:349:90;;;;;;;;;;-1:-1:-1;8279:22:23;669:349:90;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9139:26:23;;;669:349:90;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;-1:-1:-1;669:349:90;9571:91:23;669:349:90;;-1:-1:-1;669:349:90;;9619:32:23;;;;;;;;669:349:90;9619:32:23;669:349:90;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;-1:-1:-1;669:349:90;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;-1:-1:-1;669:349:90;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;-1:-1:-1;669:349:90;;;;;;;;;;;;-1:-1:-1;669:349:90;;2268:17:23;669:349:90;;-1:-1:-1;669:349:90;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;-1:-1:-1;669:349:90;;-1:-1:-1;669:349:90;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;-1:-1:-1;669:349:90;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;-1:-1:-1;;669:349:90;;;-1:-1:-1;;;;;669:349:90;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;669:349:90;;;;;;;;;;-1:-1:-1;;669:349:90;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461046657508163095ea7b31461043c57816318160ddd1461041d57816323b872dd146103e0578163313ce567146103c4578163395093511461035d57816342966c681461033f57816370a082311461030857816379cc6790146102d557816395d89b41146101b6578163a457c2d71461012f57508063a9059cbb146100ff5763dd62ed3e146100b457600080fd5b346100fb57806003193601126100fb57806020926100d061058b565b6100d86105a6565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100fb57806003193601126100fb5760209061012861011e61058b565b60243590336105bc565b5160018152f35b8284346101b357816003193601126101b35761014961058b565b928260243592338152600160205281812060018060a01b03871682526020522054908282106101835750926101289160209403903361069a565b9251632983c0c360e21b81526001600160a01b039094169284019283526020830152604082015281906060010390fd5b80fd5b8383346100fb57816003193601126100fb57805190828454600181811c908083169283156102cb575b60209384841081146102b85783885290811561029c5750600114610247575b505050829003601f01601f191682019267ffffffffffffffff8411838510176102345750829182610230925282610542565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061028857505050508301018580806101fe565b805488860183015293019284908201610272565b60ff1916878501525050151560051b84010190508580806101fe565b634e487b7160e01b895260228a52602489fd5b91607f16916101df565b5050346100fb573660031901126101b3576103056102f161058b565b6024359061030082338361072d565b6107b4565b80f35b5050346100fb5760203660031901126100fb5760209181906001600160a01b0361033061058b565b16815280845220549051908152f35b8390346100fb5760203660031901126100fb576103059035336107b4565b8284346101b357816003193601126101b35761037761058b565b338252600160209081528383206001600160a01b03831684529052828220546024358101929083106103b15760208461012885853361069a565b634e487b7160e01b815260118552602490fd5b5050346100fb57816003193601126100fb576020905160128152f35b5050346100fb5760603660031901126100fb5760209061012861040161058b565b6104096105a6565b6044359161041883338361072d565b6105bc565b5050346100fb57816003193601126100fb576020906002549051908152f35b5050346100fb57806003193601126100fb5760209061012861045c61058b565b602435903361069a565b8490843461053e578260031936011261053e5782600354600181811c90808316928315610534575b60209384841081146102b85783885290811561029c57506001146104de57505050829003601f01601f191682019267ffffffffffffffff8411838510176102345750829182610230925282610542565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b83851061052057505050508301018580806101fe565b80548886018301529301928490820161050a565b91607f169161048e565b8280fd5b6020808252825181830181905290939260005b82811061057757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610555565b600435906001600160a01b03821682036105a157565b600080fd5b602435906001600160a01b03821682036105a157565b916001600160a01b0380841692831561068157169283156106685760009083825281602052604082205490838210610636575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b6001600160a01b0390811691821561071457169182156106fb5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b9092919260018060a01b0380831660005260016020526040600020908216600052602052604060002054936000198503610769575b5050509050565b8085106107855761077c9394039161069a565b80388080610762565b604051637dc7a0d960e11b81526001600160a01b03929092166004830152602482018590526044820152606490fd5b906001600160a01b03821690811561068157600092828452836020526040842054908282106108215750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926020928587528684520360408620558060025403600255604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101829052606490fdfea264697066735822122034ae073c7b3a769a992f80a8f9cc86f92cbfb905306a15b285a5b361fe0dcd8e64736f6c63430008130033","sourceMap":"669:349:90:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4039:6:23;669:349:90;;:::i;:::-;;;720:10:30;;4039:6:23;:::i;:::-;669:349:90;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;720:10:30;;669:349:90;;;;;;;;;;;;;;;;;;;;;6910:36:23;;;;6906:148;;669:349:90;;7112:36:23;669:349:90;;;;720:10:30;;7112:36:23;:::i;6906:148::-;669:349:90;;-1:-1:-1;;;6969:74:23;;-1:-1:-1;;;;;669:349:90;;;6969:74:23;;;669:349:90;;;;;;;;;;;;;;;6969:74:23;;;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;669:349:90;;;;;-1:-1:-1;;669:349:90;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;669:349:90;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:90;;;;;-1:-1:-1;;669:349:90;;;;;;;;-1:-1:-1;669:349:90;;;;;;-1:-1:-1;;;669:349:90;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:90;;;;1121:6:25;669:349:90;;:::i;:::-;;;720:10:30;1089:6:25;720:10:30;;1089:6:25;;:::i;:::-;1121;:::i;:::-;669:349:90;;;;;;;;;;-1:-1:-1;;669:349:90;;;;;;;;-1:-1:-1;;;;;669:349:90;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;669:349:90;;;;654:6:25;669:349:90;;720:10:30;654:6:25;:::i;669:349:90:-;;;;;;;;;;;;;;;;:::i;:::-;720:10:30;669:349:90;;;;;;;;;;-1:-1:-1;;;;;669:349:90;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;720:10:30;6139:38:23;720:10:30;;;6139:38:23;:::i;669:349:90:-;-1:-1:-1;;;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;3358:2:23;669:349:90;;;;;;;;;;;-1:-1:-1;;669:349:90;;;;;;5542:6:23;669:349:90;;:::i;:::-;;;:::i;:::-;;;720:10:30;5505:6:23;720:10:30;;5505:6:23;;:::i;:::-;5542;:::i;669:349:90:-;;;;;;;;;;;;;;;;3505:12:23;669:349:90;;;;;;;;;;;;;;;;;;;;;;;4733:6:23;669:349:90;;:::i;:::-;;;720:10:30;;4733:6:23;:::i;669:349:90:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;669:349:90;;;;;-1:-1:-1;;669:349:90;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;669:349:90;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;669:349:90;;;;;;:::o;7553:302:23:-;;-1:-1:-1;;;;;669:349:90;;;;7637:18:23;;7633:86;;669:349:90;7732:16:23;;;7728:86;;8241:443;669:349:90;;;;;;;;;;;8387:20:23;;;;8383:117;;669:349:90;;;;;9139:26:23;669:349:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;9139:26:23;7553:302::o;8383:117::-;669:349:90;;-1:-1:-1;;;8434:51:23;;-1:-1:-1;;;;;669:349:90;;;;8434:51:23;;;669:349:90;;;;;;;;;;;;;;;;6969:74:23;7728:86;669:349:90;;-1:-1:-1;;;7771:32:23;;7653:1;7771:32;;;669:349:90;;;7771:32:23;7633:86;669:349:90;;-1:-1:-1;;;7678:30:23;;7653:1;7678:30;;;669:349:90;;;7678:30:23;10659:380;-1:-1:-1;;;;;669:349:90;;;;10756:19:23;;10752:89;;669:349:90;10854:21:23;;;10850:90;;669:349:90;11000:32:23;669:349:90;;10773:1:23;669:349:90;;;;;10773:1:23;669:349:90;;10773:1:23;669:349:90;;;;;10773:1:23;669:349:90;;;;;;;11000:32:23;10659:380::o;10850:90::-;669:349:90;;-1:-1:-1;;;10898:31:23;;10773:1;10898:31;;;669:349:90;;;10898:31:23;10752:89;669:349:90;;-1:-1:-1;;;10798:32:23;;10773:1;10798:32;;;669:349:90;;;10798:32:23;11320:474;;;;;669:349:90;;;;;;;;-1:-1:-1;669:349:90;;;;;-1:-1:-1;669:349:90;;;;-1:-1:-1;669:349:90;;;;-1:-1:-1;669:349:90;;11506:17:23;;;11486:37;;11482:306;;11320:474;;;;;;:::o;11482:306::-;11543:25;;;11539:132;;11737:25;669:349:90;;;11737:25:23;;:::i;:::-;11482:306;;;;;;11539:132;669:349:90;;-1:-1:-1;;;11595:61:23;;-1:-1:-1;;;;;669:349:90;;;;11595:61:23;;;669:349:90;;;;;;;;;;;;;6969:74:23;10028:208;;-1:-1:-1;;;;;669:349:90;;;10099:21:23;;10095:89;;8241:443;669:349:90;;;;;;;;;;;8387:20:23;;;;8383:117;;669:349:90;;9139:26:23;669:349:90;;;;;;;;;;;;;;;8863:22:23;669:349:90;;8863:22:23;669:349:90;;;;;;9139:26:23;10028:208::o;8383:117::-;669:349:90;;-1:-1:-1;;;8434:51:23;;-1:-1:-1;;;;;669:349:90;;;;8434:51:23;;;669:349:90;;;;;;;;;;;;;;;;6969:74:23","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"ERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"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\":\"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\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"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\":[],\"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\":\"{ERC20} token, including: - Preminted initial supply - Ability for holders to burn (destroy) their tokens - No access control mechanism (for minting/pausing) and hence no governance This contract uses {ERC20Burnable} to include burn capabilities - head to its documentation for details. _Available since v3.4._ _Deprecated in favor of https://wizard.openzeppelin.com/[Contracts Wizard]._\",\"errors\":{\"ERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"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 `amount` 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}.\"},\"burn(uint256)\":{\"details\":\"Destroys `amount` tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`.\"},\"constructor\":{\"details\":\"Mints `initialSupply` amount of token and transfers them to `owner`. See {ERC20-constructor}.\"},\"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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"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 `amount`.\"},\"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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/ERC20PresetFixedSupply.sol\":\"ERC20PresetFixedSupply\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1\",\"dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86\",\"dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0xd5015521a09267ec4fe122675f1d1f9dba884fb686937be87caed9a7584e30d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b445cff4389e685959b476105f3f76a3bb18478357ed13b59796e31f49d450bb\",\"dweb:/ipfs/QmbqJb753rF2KodJSScrwbe4ZmhWLXgAcDHHzQ2nMwLKDR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013\",\"dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]},\"test/helpers/ERC20PresetFixedSupply.sol\":{\"keccak256\":\"0x5f9164c6e005bd12dd595d73d8b6e75ee827e36a6ffd23a073e937e214c67700\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b318734161ce3bbede1a73ea760e2ad3ee4ee8478326e82f91af777ec401b447\",\"dweb:/ipfs/QmTKLqJeLDEkZ9NNGNckks4haM6jCLzRMwsiXL36ufrgrx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"ERC20FailedDecreaseAllowance"},{"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":"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":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"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":[],"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":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` 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}."},"burn(uint256)":{"details":"Destroys `amount` tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys `amount` tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `amount`."},"constructor":{"details":"Mints `initialSupply` amount of token and transfers them to `owner`. See {ERC20-constructor}."},"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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `requestedDecrease`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"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 `amount`."},"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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/ERC20PresetFixedSupply.sol":"ERC20PresetFixedSupply"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x584ccea4d8f94c745c78df4638bb107986692e544aeae522d973a45d03d7382b","urls":["bzz-raw://ce75e401c40076bcc5874b4faa7a403e16082d7ae953ea4426249ce17d0952e1","dweb:/ipfs/QmY5TJK3aHF4ZQieKMY4XDsXHCyBzHphm4jTuurbvpcYLu"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x0667be17ad4c9ee09e281b958697d0cc802711b5fa721a99ded4f835094830b3","urls":["bzz-raw://80c6c75128583b36035e5b425d3ad2cb703ff0eb2547798f50d42d9b09d30b86","dweb:/ipfs/QmdatCbf8UZ8sNSFTtVRP5rxdLfYEhRhukyL4Ev9nAy7md"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"keccak256":"0xd5015521a09267ec4fe122675f1d1f9dba884fb686937be87caed9a7584e30d4","urls":["bzz-raw://b445cff4389e685959b476105f3f76a3bb18478357ed13b59796e31f49d450bb","dweb:/ipfs/QmbqJb753rF2KodJSScrwbe4ZmhWLXgAcDHHzQ2nMwLKDR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca","urls":["bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013","dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"},"test/helpers/ERC20PresetFixedSupply.sol":{"keccak256":"0x5f9164c6e005bd12dd595d73d8b6e75ee827e36a6ffd23a073e937e214c67700","urls":["bzz-raw://b318734161ce3bbede1a73ea760e2ad3ee4ee8478326e82f91af777ec401b447","dweb:/ipfs/QmTKLqJeLDEkZ9NNGNckks4haM6jCLzRMwsiXL36ufrgrx"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/helpers/ERC20PresetFixedSupply.sol","id":55456,"exportedSymbols":{"Context":[32860],"ERC20":[31921],"ERC20Burnable":[32043],"ERC20PresetFixedSupply":[55455],"IERC1155Errors":[31351],"IERC20":[31999],"IERC20Errors":[31256],"IERC20Metadata":[32068],"IERC721Errors":[31304]},"nodeType":"SourceUnit","src":"129:890:90","nodes":[{"id":55428,"nodeType":"PragmaDirective","src":"129:23:90","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55429,"nodeType":"ImportDirective","src":"154:73:90","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol","file":"openzeppelin-contracts/token/ERC20/extensions/ERC20Burnable.sol","nameLocation":"-1:-1:-1","scope":55456,"sourceUnit":32044,"symbolAliases":[],"unitAlias":""},{"id":55455,"nodeType":"ContractDefinition","src":"669:349:90","nodes":[{"id":55454,"nodeType":"FunctionDefinition","src":"860:156:90","nodes":[],"body":{"id":55453,"nodeType":"Block","src":"972:44:90","nodes":[],"statements":[{"expression":{"arguments":[{"id":55449,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55441,"src":"988:5:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55450,"name":"initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55439,"src":"995:13:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55448,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31785,"src":"982:5:90","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":55451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"982:27:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55452,"nodeType":"ExpressionStatement","src":"982:27:90"}]},"documentation":{"id":55433,"nodeType":"StructuredDocumentation","src":"724:131:90","text":" @dev Mints `initialSupply` amount of token and transfers them to `owner`.\n See {ERC20-constructor}."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":55444,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55435,"src":"958:4:90","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":55445,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55437,"src":"964:6:90","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":55446,"kind":"baseConstructorSpecifier","modifierName":{"id":55443,"name":"ERC20","nameLocations":["952:5:90"],"nodeType":"IdentifierPath","referencedDeclaration":31921,"src":"952:5:90"},"nodeType":"ModifierInvocation","src":"952:19:90"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":55442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55435,"mutability":"mutable","name":"name","nameLocation":"886:4:90","nodeType":"VariableDeclaration","scope":55454,"src":"872:18:90","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55434,"name":"string","nodeType":"ElementaryTypeName","src":"872:6:90","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":55437,"mutability":"mutable","name":"symbol","nameLocation":"906:6:90","nodeType":"VariableDeclaration","scope":55454,"src":"892:20:90","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55436,"name":"string","nodeType":"ElementaryTypeName","src":"892:6:90","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":55439,"mutability":"mutable","name":"initialSupply","nameLocation":"922:13:90","nodeType":"VariableDeclaration","scope":55454,"src":"914:21:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55438,"name":"uint256","nodeType":"ElementaryTypeName","src":"914:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55441,"mutability":"mutable","name":"owner","nameLocation":"945:5:90","nodeType":"VariableDeclaration","scope":55454,"src":"937:13:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55440,"name":"address","nodeType":"ElementaryTypeName","src":"937:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"871:80:90"},"returnParameters":{"id":55447,"nodeType":"ParameterList","parameters":[],"src":"972:0:90"},"scope":55455,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":55431,"name":"ERC20Burnable","nameLocations":["704:13:90"],"nodeType":"IdentifierPath","referencedDeclaration":32043,"src":"704:13:90"},"id":55432,"nodeType":"InheritanceSpecifier","src":"704:13:90"}],"canonicalName":"ERC20PresetFixedSupply","contractDependencies":[],"contractKind":"contract","documentation":{"id":55430,"nodeType":"StructuredDocumentation","src":"229:439:90","text":" @dev {ERC20} token, including:\n - Preminted initial supply\n - Ability for holders to burn (destroy) their tokens\n - No access control mechanism (for minting/pausing) and hence no governance\n This contract uses {ERC20Burnable} to include burn capabilities - head to\n its documentation for details.\n _Available since v3.4._\n _Deprecated in favor of https://wizard.openzeppelin.com/[Contracts Wizard]._"},"fullyImplemented":true,"linearizedBaseContracts":[55455,32043,31921,31256,32068,31999,32860],"name":"ERC20PresetFixedSupply","nameLocation":"678:22:90","scope":55456,"usedErrors":[31226,31231,31236,31245,31250,31255,31391]}],"license":"MIT"},"id":90} \ No newline at end of file diff --git a/.out/EnumerableSet.sol/EnumerableSet.json b/.out/EnumerableSet.sol/EnumerableSet.json index 148295fe0..9be091c43 100644 --- a/.out/EnumerableSet.sol/EnumerableSet.json +++ b/.out/EnumerableSet.sol/EnumerableSet.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220af1f8ca0d5f49367639a5e7a461cb50c7a6a7fd87d862435d7b97abdf04bcb5c64736f6c63430008130033","sourceMap":"1330:11630:33:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220af1f8ca0d5f49367639a5e7a461cb50c7a6a7fd87d862435d7b97abdf04bcb5c64736f6c63430008130033","sourceMap":"1330:11630:33:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ```solidity contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported. [WARNING] ==== Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable. See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet. ====\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":"EnumerableSet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","id":35387,"exportedSymbols":{"EnumerableSet":[35386]},"nodeType":"SourceUnit","src":"205:12756:33","nodes":[{"id":34775,"nodeType":"PragmaDirective","src":"205:24:33","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":35386,"nodeType":"ContractDefinition","src":"1330:11630:33","nodes":[{"id":34784,"nodeType":"StructDefinition","src":"1798:247:33","nodes":[],"canonicalName":"EnumerableSet.Set","members":[{"constant":false,"id":34779,"mutability":"mutable","name":"_values","nameLocation":"1862:7:33","nodeType":"VariableDeclaration","scope":34784,"src":"1852:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":34777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1852:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":34778,"nodeType":"ArrayTypeName","src":"1852:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":34783,"mutability":"mutable","name":"_indexes","nameLocation":"2030:8:33","nodeType":"VariableDeclaration","scope":34784,"src":"2002:36:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":34782,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":34780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2010:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2002:27:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":34781,"name":"uint256","nodeType":"ElementaryTypeName","src":"2021:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"1805:3:33","scope":35386,"visibility":"public"},{"id":34826,"nodeType":"FunctionDefinition","src":"2215:404:33","nodes":[],"body":{"id":34825,"nodeType":"Block","src":"2284:335:33","nodes":[],"statements":[{"condition":{"id":34799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2298:22:33","subExpression":{"arguments":[{"id":34796,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34788,"src":"2309:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},{"id":34797,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34790,"src":"2314:5:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":34795,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34929,"src":"2299:9:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$34784_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":34798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2299:21:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":34823,"nodeType":"Block","src":"2576:37:33","statements":[{"expression":{"hexValue":"66616c7365","id":34821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2597:5:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":34794,"id":34822,"nodeType":"Return","src":"2590:12:33"}]},"id":34824,"nodeType":"IfStatement","src":"2294:319:33","trueBody":{"id":34820,"nodeType":"Block","src":"2322:248:33","statements":[{"expression":{"arguments":[{"id":34805,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34790,"src":"2353:5:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":34800,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34788,"src":"2336:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":34803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2340:7:33","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":34779,"src":"2336:11:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":34804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2348:4:33","memberName":"push","nodeType":"MemberAccess","src":"2336:16:33","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":34806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2336:23:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34807,"nodeType":"ExpressionStatement","src":"2336:23:33"},{"expression":{"id":34816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":34808,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34788,"src":"2494:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":34811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2498:8:33","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":34783,"src":"2494:12:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":34812,"indexExpression":{"id":34810,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34790,"src":"2507:5:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2494:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":34813,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34788,"src":"2516:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":34814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2520:7:33","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":34779,"src":"2516:11:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":34815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2528:6:33","memberName":"length","nodeType":"MemberAccess","src":"2516:18:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2494:40:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34817,"nodeType":"ExpressionStatement","src":"2494:40:33"},{"expression":{"hexValue":"74727565","id":34818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2555:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":34794,"id":34819,"nodeType":"Return","src":"2548:11:33"}]}}]},"documentation":{"id":34785,"nodeType":"StructuredDocumentation","src":"2051:159:33","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"2224:4:33","parameters":{"id":34791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34788,"mutability":"mutable","name":"set","nameLocation":"2241:3:33","nodeType":"VariableDeclaration","scope":34826,"src":"2229:15:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":34787,"nodeType":"UserDefinedTypeName","pathNode":{"id":34786,"name":"Set","nameLocations":["2229:3:33"],"nodeType":"IdentifierPath","referencedDeclaration":34784,"src":"2229:3:33"},"referencedDeclaration":34784,"src":"2229:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":34790,"mutability":"mutable","name":"value","nameLocation":"2254:5:33","nodeType":"VariableDeclaration","scope":34826,"src":"2246:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2246:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2228:32:33"},"returnParameters":{"id":34794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34826,"src":"2278:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34792,"name":"bool","nodeType":"ElementaryTypeName","src":"2278:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2277:6:33"},"scope":35386,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":34910,"nodeType":"FunctionDefinition","src":"2787:1388:33","nodes":[],"body":{"id":34909,"nodeType":"Block","src":"2859:1316:33","nodes":[],"statements":[{"assignments":[34838],"declarations":[{"constant":false,"id":34838,"mutability":"mutable","name":"valueIndex","nameLocation":"2977:10:33","nodeType":"VariableDeclaration","scope":34909,"src":"2969:18:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34837,"name":"uint256","nodeType":"ElementaryTypeName","src":"2969:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34843,"initialValue":{"baseExpression":{"expression":{"id":34839,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34830,"src":"2990:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":34840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2994:8:33","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":34783,"src":"2990:12:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":34842,"indexExpression":{"id":34841,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34832,"src":"3003:5:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2990:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2969:40:33"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34844,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34838,"src":"3024:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":34845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3024:15:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":34907,"nodeType":"Block","src":"4132:37:33","statements":[{"expression":{"hexValue":"66616c7365","id":34905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4153:5:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":34836,"id":34906,"nodeType":"Return","src":"4146:12:33"}]},"id":34908,"nodeType":"IfStatement","src":"3020:1149:33","trueBody":{"id":34904,"nodeType":"Block","src":"3041:1085:33","statements":[{"assignments":[34848],"declarations":[{"constant":false,"id":34848,"mutability":"mutable","name":"toDeleteIndex","nameLocation":"3401:13:33","nodeType":"VariableDeclaration","scope":34904,"src":"3393:21:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34847,"name":"uint256","nodeType":"ElementaryTypeName","src":"3393:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34852,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34849,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34838,"src":"3417:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":34850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3430:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3417:14:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3393:38:33"},{"assignments":[34854],"declarations":[{"constant":false,"id":34854,"mutability":"mutable","name":"lastIndex","nameLocation":"3453:9:33","nodeType":"VariableDeclaration","scope":34904,"src":"3445:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34853,"name":"uint256","nodeType":"ElementaryTypeName","src":"3445:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34860,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":34855,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34830,"src":"3465:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":34856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3469:7:33","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":34779,"src":"3465:11:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":34857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3477:6:33","memberName":"length","nodeType":"MemberAccess","src":"3465:18:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":34858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3486:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3465:22:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3445:42:33"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34861,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34854,"src":"3506:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":34862,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34848,"src":"3519:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3506:26:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34888,"nodeType":"IfStatement","src":"3502:398:33","trueBody":{"id":34887,"nodeType":"Block","src":"3534:366:33","statements":[{"assignments":[34865],"declarations":[{"constant":false,"id":34865,"mutability":"mutable","name":"lastValue","nameLocation":"3560:9:33","nodeType":"VariableDeclaration","scope":34887,"src":"3552:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34864,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3552:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34870,"initialValue":{"baseExpression":{"expression":{"id":34866,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34830,"src":"3572:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":34867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3576:7:33","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":34779,"src":"3572:11:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":34869,"indexExpression":{"id":34868,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34854,"src":"3584:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3572:22:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3552:42:33"},{"expression":{"id":34877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":34871,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34830,"src":"3694:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":34874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3698:7:33","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":34779,"src":"3694:11:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":34875,"indexExpression":{"id":34873,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34848,"src":"3706:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3694:26:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":34876,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34865,"src":"3723:9:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3694:38:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":34878,"nodeType":"ExpressionStatement","src":"3694:38:33"},{"expression":{"id":34885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":34879,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34830,"src":"3806:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":34882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3810:8:33","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":34783,"src":"3806:12:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":34883,"indexExpression":{"id":34881,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34865,"src":"3819:9:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3806:23:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":34884,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34838,"src":"3832:10:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3806:36:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34886,"nodeType":"ExpressionStatement","src":"3806:36:33"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":34889,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34830,"src":"3978:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":34892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3982:7:33","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":34779,"src":"3978:11:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":34893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3990:3:33","memberName":"pop","nodeType":"MemberAccess","src":"3978:15:33","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer)"}},"id":34894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3978:17:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34895,"nodeType":"ExpressionStatement","src":"3978:17:33"},{"expression":{"id":34900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4063:26:33","subExpression":{"baseExpression":{"expression":{"id":34896,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34830,"src":"4070:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":34897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4074:8:33","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":34783,"src":"4070:12:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":34899,"indexExpression":{"id":34898,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34832,"src":"4083:5:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4070:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34901,"nodeType":"ExpressionStatement","src":"4063:26:33"},{"expression":{"hexValue":"74727565","id":34902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4111:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":34836,"id":34903,"nodeType":"Return","src":"4104:11:33"}]}}]},"documentation":{"id":34827,"nodeType":"StructuredDocumentation","src":"2625:157:33","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"2796:7:33","parameters":{"id":34833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34830,"mutability":"mutable","name":"set","nameLocation":"2816:3:33","nodeType":"VariableDeclaration","scope":34910,"src":"2804:15:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":34829,"nodeType":"UserDefinedTypeName","pathNode":{"id":34828,"name":"Set","nameLocations":["2804:3:33"],"nodeType":"IdentifierPath","referencedDeclaration":34784,"src":"2804:3:33"},"referencedDeclaration":34784,"src":"2804:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":34832,"mutability":"mutable","name":"value","nameLocation":"2829:5:33","nodeType":"VariableDeclaration","scope":34910,"src":"2821:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2821:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2803:32:33"},"returnParameters":{"id":34836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34835,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34910,"src":"2853:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34834,"name":"bool","nodeType":"ElementaryTypeName","src":"2853:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2852:6:33"},"scope":35386,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":34929,"nodeType":"FunctionDefinition","src":"4256:127:33","nodes":[],"body":{"id":34928,"nodeType":"Block","src":"4335:48:33","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":34921,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34914,"src":"4352:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":34922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4356:8:33","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":34783,"src":"4352:12:33","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":34924,"indexExpression":{"id":34923,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34916,"src":"4365:5:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4352:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":34925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4375:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4352:24:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":34920,"id":34927,"nodeType":"Return","src":"4345:31:33"}]},"documentation":{"id":34911,"nodeType":"StructuredDocumentation","src":"4181:70:33","text":" @dev Returns true if the value is in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"4265:9:33","parameters":{"id":34917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34914,"mutability":"mutable","name":"set","nameLocation":"4287:3:33","nodeType":"VariableDeclaration","scope":34929,"src":"4275:15:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":34913,"nodeType":"UserDefinedTypeName","pathNode":{"id":34912,"name":"Set","nameLocations":["4275:3:33"],"nodeType":"IdentifierPath","referencedDeclaration":34784,"src":"4275:3:33"},"referencedDeclaration":34784,"src":"4275:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":34916,"mutability":"mutable","name":"value","nameLocation":"4300:5:33","nodeType":"VariableDeclaration","scope":34929,"src":"4292:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34915,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4292:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4274:32:33"},"returnParameters":{"id":34920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34929,"src":"4329:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34918,"name":"bool","nodeType":"ElementaryTypeName","src":"4329:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4328:6:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":34943,"nodeType":"FunctionDefinition","src":"4464:107:33","nodes":[],"body":{"id":34942,"nodeType":"Block","src":"4529:42:33","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":34938,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34933,"src":"4546:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":34939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4550:7:33","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":34779,"src":"4546:11:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":34940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4558:6:33","memberName":"length","nodeType":"MemberAccess","src":"4546:18:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34937,"id":34941,"nodeType":"Return","src":"4539:25:33"}]},"documentation":{"id":34930,"nodeType":"StructuredDocumentation","src":"4389:70:33","text":" @dev Returns the number of values on the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"4473:7:33","parameters":{"id":34934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34933,"mutability":"mutable","name":"set","nameLocation":"4493:3:33","nodeType":"VariableDeclaration","scope":34943,"src":"4481:15:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":34932,"nodeType":"UserDefinedTypeName","pathNode":{"id":34931,"name":"Set","nameLocations":["4481:3:33"],"nodeType":"IdentifierPath","referencedDeclaration":34784,"src":"4481:3:33"},"referencedDeclaration":34784,"src":"4481:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"4480:17:33"},"returnParameters":{"id":34937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34943,"src":"4520:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34935,"name":"uint256","nodeType":"ElementaryTypeName","src":"4520:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4519:9:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":34960,"nodeType":"FunctionDefinition","src":"4913:118:33","nodes":[],"body":{"id":34959,"nodeType":"Block","src":"4989:42:33","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":34954,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34947,"src":"5006:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":34955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5010:7:33","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":34779,"src":"5006:11:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":34957,"indexExpression":{"id":34956,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34949,"src":"5018:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5006:18:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":34953,"id":34958,"nodeType":"Return","src":"4999:25:33"}]},"documentation":{"id":34944,"nodeType":"StructuredDocumentation","src":"4577:331:33","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"4922:3:33","parameters":{"id":34950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34947,"mutability":"mutable","name":"set","nameLocation":"4938:3:33","nodeType":"VariableDeclaration","scope":34960,"src":"4926:15:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":34946,"nodeType":"UserDefinedTypeName","pathNode":{"id":34945,"name":"Set","nameLocations":["4926:3:33"],"nodeType":"IdentifierPath","referencedDeclaration":34784,"src":"4926:3:33"},"referencedDeclaration":34784,"src":"4926:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":34949,"mutability":"mutable","name":"index","nameLocation":"4951:5:33","nodeType":"VariableDeclaration","scope":34960,"src":"4943:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34948,"name":"uint256","nodeType":"ElementaryTypeName","src":"4943:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4925:32:33"},"returnParameters":{"id":34953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34952,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34960,"src":"4980:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34951,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4980:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4979:9:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":34974,"nodeType":"FunctionDefinition","src":"5571:109:33","nodes":[],"body":{"id":34973,"nodeType":"Block","src":"5645:35:33","nodes":[],"statements":[{"expression":{"expression":{"id":34970,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34964,"src":"5662:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":34971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5666:7:33","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":34779,"src":"5662:11:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":34969,"id":34972,"nodeType":"Return","src":"5655:18:33"}]},"documentation":{"id":34961,"nodeType":"StructuredDocumentation","src":"5037:529:33","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"implemented":true,"kind":"function","modifiers":[],"name":"_values","nameLocation":"5580:7:33","parameters":{"id":34965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34964,"mutability":"mutable","name":"set","nameLocation":"5600:3:33","nodeType":"VariableDeclaration","scope":34974,"src":"5588:15:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":34963,"nodeType":"UserDefinedTypeName","pathNode":{"id":34962,"name":"Set","nameLocations":["5588:3:33"],"nodeType":"IdentifierPath","referencedDeclaration":34784,"src":"5588:3:33"},"referencedDeclaration":34784,"src":"5588:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"5587:17:33"},"returnParameters":{"id":34969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34968,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34974,"src":"5627:16:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":34966,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5627:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":34967,"nodeType":"ArrayTypeName","src":"5627:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5626:18:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":34978,"nodeType":"StructDefinition","src":"5705:45:33","nodes":[],"canonicalName":"EnumerableSet.Bytes32Set","members":[{"constant":false,"id":34977,"mutability":"mutable","name":"_inner","nameLocation":"5737:6:33","nodeType":"VariableDeclaration","scope":34978,"src":"5733:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":34976,"nodeType":"UserDefinedTypeName","pathNode":{"id":34975,"name":"Set","nameLocations":["5733:3:33"],"nodeType":"IdentifierPath","referencedDeclaration":34784,"src":"5733:3:33"},"referencedDeclaration":34784,"src":"5733:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"Bytes32Set","nameLocation":"5712:10:33","scope":35386,"visibility":"public"},{"id":34996,"nodeType":"FunctionDefinition","src":"5920:123:33","nodes":[],"body":{"id":34995,"nodeType":"Block","src":"5996:47:33","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":34990,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34982,"src":"6018:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":34991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6022:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":34977,"src":"6018:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":34992,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34984,"src":"6030:5:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":34989,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34826,"src":"6013:4:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$34784_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":34993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6013:23:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":34988,"id":34994,"nodeType":"Return","src":"6006:30:33"}]},"documentation":{"id":34979,"nodeType":"StructuredDocumentation","src":"5756:159:33","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"5929:3:33","parameters":{"id":34985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34982,"mutability":"mutable","name":"set","nameLocation":"5952:3:33","nodeType":"VariableDeclaration","scope":34996,"src":"5933:22:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":34981,"nodeType":"UserDefinedTypeName","pathNode":{"id":34980,"name":"Bytes32Set","nameLocations":["5933:10:33"],"nodeType":"IdentifierPath","referencedDeclaration":34978,"src":"5933:10:33"},"referencedDeclaration":34978,"src":"5933:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":34984,"mutability":"mutable","name":"value","nameLocation":"5965:5:33","nodeType":"VariableDeclaration","scope":34996,"src":"5957:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34983,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5957:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5932:39:33"},"returnParameters":{"id":34988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34987,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34996,"src":"5990:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34986,"name":"bool","nodeType":"ElementaryTypeName","src":"5990:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5989:6:33"},"scope":35386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":35014,"nodeType":"FunctionDefinition","src":"6211:129:33","nodes":[],"body":{"id":35013,"nodeType":"Block","src":"6290:50:33","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35008,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35000,"src":"6315:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":35009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6319:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":34977,"src":"6315:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":35010,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35002,"src":"6327:5:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35007,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34910,"src":"6307:7:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$34784_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":35011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6307:26:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35006,"id":35012,"nodeType":"Return","src":"6300:33:33"}]},"documentation":{"id":34997,"nodeType":"StructuredDocumentation","src":"6049:157:33","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"6220:6:33","parameters":{"id":35003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35000,"mutability":"mutable","name":"set","nameLocation":"6246:3:33","nodeType":"VariableDeclaration","scope":35014,"src":"6227:22:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":34999,"nodeType":"UserDefinedTypeName","pathNode":{"id":34998,"name":"Bytes32Set","nameLocations":["6227:10:33"],"nodeType":"IdentifierPath","referencedDeclaration":34978,"src":"6227:10:33"},"referencedDeclaration":34978,"src":"6227:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":35002,"mutability":"mutable","name":"value","nameLocation":"6259:5:33","nodeType":"VariableDeclaration","scope":35014,"src":"6251:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6251:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6226:39:33"},"returnParameters":{"id":35006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35005,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35014,"src":"6284:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35004,"name":"bool","nodeType":"ElementaryTypeName","src":"6284:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6283:6:33"},"scope":35386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":35032,"nodeType":"FunctionDefinition","src":"6421:138:33","nodes":[],"body":{"id":35031,"nodeType":"Block","src":"6507:52:33","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35026,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35018,"src":"6534:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":35027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6538:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":34977,"src":"6534:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":35028,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35020,"src":"6546:5:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35025,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34929,"src":"6524:9:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$34784_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":35029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6524:28:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35024,"id":35030,"nodeType":"Return","src":"6517:35:33"}]},"documentation":{"id":35015,"nodeType":"StructuredDocumentation","src":"6346:70:33","text":" @dev Returns true if the value is in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"6430:8:33","parameters":{"id":35021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35018,"mutability":"mutable","name":"set","nameLocation":"6458:3:33","nodeType":"VariableDeclaration","scope":35032,"src":"6439:22:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":35017,"nodeType":"UserDefinedTypeName","pathNode":{"id":35016,"name":"Bytes32Set","nameLocations":["6439:10:33"],"nodeType":"IdentifierPath","referencedDeclaration":34978,"src":"6439:10:33"},"referencedDeclaration":34978,"src":"6439:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":35020,"mutability":"mutable","name":"value","nameLocation":"6471:5:33","nodeType":"VariableDeclaration","scope":35032,"src":"6463:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6463:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6438:39:33"},"returnParameters":{"id":35024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35032,"src":"6501:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35022,"name":"bool","nodeType":"ElementaryTypeName","src":"6501:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6500:6:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35047,"nodeType":"FunctionDefinition","src":"6640:115:33","nodes":[],"body":{"id":35046,"nodeType":"Block","src":"6712:43:33","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35042,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35036,"src":"6737:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":35043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6741:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":34977,"src":"6737:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":35041,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34943,"src":"6729:7:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$34784_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":35044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6729:19:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":35040,"id":35045,"nodeType":"Return","src":"6722:26:33"}]},"documentation":{"id":35033,"nodeType":"StructuredDocumentation","src":"6565:70:33","text":" @dev Returns the number of values in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"6649:6:33","parameters":{"id":35037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35036,"mutability":"mutable","name":"set","nameLocation":"6675:3:33","nodeType":"VariableDeclaration","scope":35047,"src":"6656:22:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":35035,"nodeType":"UserDefinedTypeName","pathNode":{"id":35034,"name":"Bytes32Set","nameLocations":["6656:10:33"],"nodeType":"IdentifierPath","referencedDeclaration":34978,"src":"6656:10:33"},"referencedDeclaration":34978,"src":"6656:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"6655:24:33"},"returnParameters":{"id":35040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35039,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35047,"src":"6703:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35038,"name":"uint256","nodeType":"ElementaryTypeName","src":"6703:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6702:9:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35065,"nodeType":"FunctionDefinition","src":"7097:129:33","nodes":[],"body":{"id":35064,"nodeType":"Block","src":"7180:46:33","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35059,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35051,"src":"7201:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":35060,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7205:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":34977,"src":"7201:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":35061,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35053,"src":"7213:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35058,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34960,"src":"7197:3:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$34784_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":35062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7197:22:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":35057,"id":35063,"nodeType":"Return","src":"7190:29:33"}]},"documentation":{"id":35048,"nodeType":"StructuredDocumentation","src":"6761:331:33","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"7106:2:33","parameters":{"id":35054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35051,"mutability":"mutable","name":"set","nameLocation":"7128:3:33","nodeType":"VariableDeclaration","scope":35065,"src":"7109:22:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":35050,"nodeType":"UserDefinedTypeName","pathNode":{"id":35049,"name":"Bytes32Set","nameLocations":["7109:10:33"],"nodeType":"IdentifierPath","referencedDeclaration":34978,"src":"7109:10:33"},"referencedDeclaration":34978,"src":"7109:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":35053,"mutability":"mutable","name":"index","nameLocation":"7141:5:33","nodeType":"VariableDeclaration","scope":35065,"src":"7133:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35052,"name":"uint256","nodeType":"ElementaryTypeName","src":"7133:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7108:39:33"},"returnParameters":{"id":35057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35065,"src":"7171:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35055,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7171:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7170:9:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35095,"nodeType":"FunctionDefinition","src":"7766:300:33","nodes":[],"body":{"id":35094,"nodeType":"Block","src":"7847:219:33","nodes":[],"statements":[{"assignments":[35079],"declarations":[{"constant":false,"id":35079,"mutability":"mutable","name":"store","nameLocation":"7874:5:33","nodeType":"VariableDeclaration","scope":35094,"src":"7857:22:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":35077,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7857:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":35078,"nodeType":"ArrayTypeName","src":"7857:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":35084,"initialValue":{"arguments":[{"expression":{"id":35081,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35069,"src":"7890:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":35082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7894:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":34977,"src":"7890:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":35080,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34974,"src":"7882:7:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$34784_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":35083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7882:19:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7857:44:33"},{"assignments":[35089],"declarations":[{"constant":false,"id":35089,"mutability":"mutable","name":"result","nameLocation":"7928:6:33","nodeType":"VariableDeclaration","scope":35094,"src":"7911:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":35087,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7911:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":35088,"nodeType":"ArrayTypeName","src":"7911:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":35090,"nodeType":"VariableDeclarationStatement","src":"7911:23:33"},{"AST":{"nodeType":"YulBlock","src":"7997:39:33","statements":[{"nodeType":"YulAssignment","src":"8011:15:33","value":{"name":"store","nodeType":"YulIdentifier","src":"8021:5:33"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"8011:6:33"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":35089,"isOffset":false,"isSlot":false,"src":"8011:6:33","valueSize":1},{"declaration":35079,"isOffset":false,"isSlot":false,"src":"8021:5:33","valueSize":1}],"id":35091,"nodeType":"InlineAssembly","src":"7988:48:33"},{"expression":{"id":35092,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35089,"src":"8053:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":35074,"id":35093,"nodeType":"Return","src":"8046:13:33"}]},"documentation":{"id":35066,"nodeType":"StructuredDocumentation","src":"7232:529:33","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"7775:6:33","parameters":{"id":35070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35069,"mutability":"mutable","name":"set","nameLocation":"7801:3:33","nodeType":"VariableDeclaration","scope":35095,"src":"7782:22:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":35068,"nodeType":"UserDefinedTypeName","pathNode":{"id":35067,"name":"Bytes32Set","nameLocations":["7782:10:33"],"nodeType":"IdentifierPath","referencedDeclaration":34978,"src":"7782:10:33"},"referencedDeclaration":34978,"src":"7782:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$34978_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"7781:24:33"},"returnParameters":{"id":35074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35073,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35095,"src":"7829:16:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":35071,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7829:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":35072,"nodeType":"ArrayTypeName","src":"7829:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7828:18:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35099,"nodeType":"StructDefinition","src":"8091:45:33","nodes":[],"canonicalName":"EnumerableSet.AddressSet","members":[{"constant":false,"id":35098,"mutability":"mutable","name":"_inner","nameLocation":"8123:6:33","nodeType":"VariableDeclaration","scope":35099,"src":"8119:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":35097,"nodeType":"UserDefinedTypeName","pathNode":{"id":35096,"name":"Set","nameLocations":["8119:3:33"],"nodeType":"IdentifierPath","referencedDeclaration":34784,"src":"8119:3:33"},"referencedDeclaration":34784,"src":"8119:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"AddressSet","nameLocation":"8098:10:33","scope":35386,"visibility":"public"},{"id":35126,"nodeType":"FunctionDefinition","src":"8306:150:33","nodes":[],"body":{"id":35125,"nodeType":"Block","src":"8382:74:33","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35111,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35103,"src":"8404:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":35112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8408:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35098,"src":"8404:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":35119,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35105,"src":"8440:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":35118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8432:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":35117,"name":"uint160","nodeType":"ElementaryTypeName","src":"8432:7:33","typeDescriptions":{}}},"id":35120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8432:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":35116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8424:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":35115,"name":"uint256","nodeType":"ElementaryTypeName","src":"8424:7:33","typeDescriptions":{}}},"id":35121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8424:23:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8416:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":35113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8416:7:33","typeDescriptions":{}}},"id":35122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8416:32:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35110,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34826,"src":"8399:4:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$34784_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":35123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8399:50:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35109,"id":35124,"nodeType":"Return","src":"8392:57:33"}]},"documentation":{"id":35100,"nodeType":"StructuredDocumentation","src":"8142:159:33","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"8315:3:33","parameters":{"id":35106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35103,"mutability":"mutable","name":"set","nameLocation":"8338:3:33","nodeType":"VariableDeclaration","scope":35126,"src":"8319:22:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":35102,"nodeType":"UserDefinedTypeName","pathNode":{"id":35101,"name":"AddressSet","nameLocations":["8319:10:33"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"8319:10:33"},"referencedDeclaration":35099,"src":"8319:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":35105,"mutability":"mutable","name":"value","nameLocation":"8351:5:33","nodeType":"VariableDeclaration","scope":35126,"src":"8343:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35104,"name":"address","nodeType":"ElementaryTypeName","src":"8343:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8318:39:33"},"returnParameters":{"id":35109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35108,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35126,"src":"8376:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35107,"name":"bool","nodeType":"ElementaryTypeName","src":"8376:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8375:6:33"},"scope":35386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":35153,"nodeType":"FunctionDefinition","src":"8624:156:33","nodes":[],"body":{"id":35152,"nodeType":"Block","src":"8703:77:33","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35138,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35130,"src":"8728:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":35139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8732:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35098,"src":"8728:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":35146,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35132,"src":"8764:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":35145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8756:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":35144,"name":"uint160","nodeType":"ElementaryTypeName","src":"8756:7:33","typeDescriptions":{}}},"id":35147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8756:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":35143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8748:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":35142,"name":"uint256","nodeType":"ElementaryTypeName","src":"8748:7:33","typeDescriptions":{}}},"id":35148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8748:23:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8740:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":35140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8740:7:33","typeDescriptions":{}}},"id":35149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8740:32:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35137,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34910,"src":"8720:7:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$34784_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":35150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8720:53:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35136,"id":35151,"nodeType":"Return","src":"8713:60:33"}]},"documentation":{"id":35127,"nodeType":"StructuredDocumentation","src":"8462:157:33","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"8633:6:33","parameters":{"id":35133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35130,"mutability":"mutable","name":"set","nameLocation":"8659:3:33","nodeType":"VariableDeclaration","scope":35153,"src":"8640:22:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":35129,"nodeType":"UserDefinedTypeName","pathNode":{"id":35128,"name":"AddressSet","nameLocations":["8640:10:33"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"8640:10:33"},"referencedDeclaration":35099,"src":"8640:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":35132,"mutability":"mutable","name":"value","nameLocation":"8672:5:33","nodeType":"VariableDeclaration","scope":35153,"src":"8664:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35131,"name":"address","nodeType":"ElementaryTypeName","src":"8664:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8639:39:33"},"returnParameters":{"id":35136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35135,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35153,"src":"8697:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35134,"name":"bool","nodeType":"ElementaryTypeName","src":"8697:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8696:6:33"},"scope":35386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":35180,"nodeType":"FunctionDefinition","src":"8861:165:33","nodes":[],"body":{"id":35179,"nodeType":"Block","src":"8947:79:33","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35165,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35157,"src":"8974:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":35166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8978:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35098,"src":"8974:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":35173,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35159,"src":"9010:5:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":35172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9002:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":35171,"name":"uint160","nodeType":"ElementaryTypeName","src":"9002:7:33","typeDescriptions":{}}},"id":35174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9002:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":35170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8994:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":35169,"name":"uint256","nodeType":"ElementaryTypeName","src":"8994:7:33","typeDescriptions":{}}},"id":35175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8994:23:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8986:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":35167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8986:7:33","typeDescriptions":{}}},"id":35176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8986:32:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35164,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34929,"src":"8964:9:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$34784_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":35177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8964:55:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35163,"id":35178,"nodeType":"Return","src":"8957:62:33"}]},"documentation":{"id":35154,"nodeType":"StructuredDocumentation","src":"8786:70:33","text":" @dev Returns true if the value is in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"8870:8:33","parameters":{"id":35160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35157,"mutability":"mutable","name":"set","nameLocation":"8898:3:33","nodeType":"VariableDeclaration","scope":35180,"src":"8879:22:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":35156,"nodeType":"UserDefinedTypeName","pathNode":{"id":35155,"name":"AddressSet","nameLocations":["8879:10:33"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"8879:10:33"},"referencedDeclaration":35099,"src":"8879:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":35159,"mutability":"mutable","name":"value","nameLocation":"8911:5:33","nodeType":"VariableDeclaration","scope":35180,"src":"8903:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35158,"name":"address","nodeType":"ElementaryTypeName","src":"8903:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8878:39:33"},"returnParameters":{"id":35163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35180,"src":"8941:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35161,"name":"bool","nodeType":"ElementaryTypeName","src":"8941:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8940:6:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35195,"nodeType":"FunctionDefinition","src":"9107:115:33","nodes":[],"body":{"id":35194,"nodeType":"Block","src":"9179:43:33","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35190,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35184,"src":"9204:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":35191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9208:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35098,"src":"9204:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":35189,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34943,"src":"9196:7:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$34784_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":35192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9196:19:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":35188,"id":35193,"nodeType":"Return","src":"9189:26:33"}]},"documentation":{"id":35181,"nodeType":"StructuredDocumentation","src":"9032:70:33","text":" @dev Returns the number of values in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"9116:6:33","parameters":{"id":35185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35184,"mutability":"mutable","name":"set","nameLocation":"9142:3:33","nodeType":"VariableDeclaration","scope":35195,"src":"9123:22:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":35183,"nodeType":"UserDefinedTypeName","pathNode":{"id":35182,"name":"AddressSet","nameLocations":["9123:10:33"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"9123:10:33"},"referencedDeclaration":35099,"src":"9123:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"9122:24:33"},"returnParameters":{"id":35188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35187,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35195,"src":"9170:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35186,"name":"uint256","nodeType":"ElementaryTypeName","src":"9170:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9169:9:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35222,"nodeType":"FunctionDefinition","src":"9564:156:33","nodes":[],"body":{"id":35221,"nodeType":"Block","src":"9647:73:33","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":35213,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35199,"src":"9692:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":35214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9696:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35098,"src":"9692:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":35215,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35201,"src":"9704:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35212,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34960,"src":"9688:3:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$34784_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":35216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9688:22:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9680:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":35210,"name":"uint256","nodeType":"ElementaryTypeName","src":"9680:7:33","typeDescriptions":{}}},"id":35217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9680:31:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9672:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":35208,"name":"uint160","nodeType":"ElementaryTypeName","src":"9672:7:33","typeDescriptions":{}}},"id":35218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9672:40:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":35207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9664:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":35206,"name":"address","nodeType":"ElementaryTypeName","src":"9664:7:33","typeDescriptions":{}}},"id":35219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9664:49:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":35205,"id":35220,"nodeType":"Return","src":"9657:56:33"}]},"documentation":{"id":35196,"nodeType":"StructuredDocumentation","src":"9228:331:33","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"9573:2:33","parameters":{"id":35202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35199,"mutability":"mutable","name":"set","nameLocation":"9595:3:33","nodeType":"VariableDeclaration","scope":35222,"src":"9576:22:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":35198,"nodeType":"UserDefinedTypeName","pathNode":{"id":35197,"name":"AddressSet","nameLocations":["9576:10:33"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"9576:10:33"},"referencedDeclaration":35099,"src":"9576:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":35201,"mutability":"mutable","name":"index","nameLocation":"9608:5:33","nodeType":"VariableDeclaration","scope":35222,"src":"9600:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35200,"name":"uint256","nodeType":"ElementaryTypeName","src":"9600:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9575:39:33"},"returnParameters":{"id":35205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35222,"src":"9638:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35203,"name":"address","nodeType":"ElementaryTypeName","src":"9638:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9637:9:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35252,"nodeType":"FunctionDefinition","src":"10260:300:33","nodes":[],"body":{"id":35251,"nodeType":"Block","src":"10341:219:33","nodes":[],"statements":[{"assignments":[35236],"declarations":[{"constant":false,"id":35236,"mutability":"mutable","name":"store","nameLocation":"10368:5:33","nodeType":"VariableDeclaration","scope":35251,"src":"10351:22:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":35234,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10351:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":35235,"nodeType":"ArrayTypeName","src":"10351:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":35241,"initialValue":{"arguments":[{"expression":{"id":35238,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35226,"src":"10384:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":35239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10388:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35098,"src":"10384:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":35237,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34974,"src":"10376:7:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$34784_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":35240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10376:19:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10351:44:33"},{"assignments":[35246],"declarations":[{"constant":false,"id":35246,"mutability":"mutable","name":"result","nameLocation":"10422:6:33","nodeType":"VariableDeclaration","scope":35251,"src":"10405:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":35244,"name":"address","nodeType":"ElementaryTypeName","src":"10405:7:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":35245,"nodeType":"ArrayTypeName","src":"10405:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":35247,"nodeType":"VariableDeclarationStatement","src":"10405:23:33"},{"AST":{"nodeType":"YulBlock","src":"10491:39:33","statements":[{"nodeType":"YulAssignment","src":"10505:15:33","value":{"name":"store","nodeType":"YulIdentifier","src":"10515:5:33"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"10505:6:33"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":35246,"isOffset":false,"isSlot":false,"src":"10505:6:33","valueSize":1},{"declaration":35236,"isOffset":false,"isSlot":false,"src":"10515:5:33","valueSize":1}],"id":35248,"nodeType":"InlineAssembly","src":"10482:48:33"},{"expression":{"id":35249,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35246,"src":"10547:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":35231,"id":35250,"nodeType":"Return","src":"10540:13:33"}]},"documentation":{"id":35223,"nodeType":"StructuredDocumentation","src":"9726:529:33","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"10269:6:33","parameters":{"id":35227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35226,"mutability":"mutable","name":"set","nameLocation":"10295:3:33","nodeType":"VariableDeclaration","scope":35252,"src":"10276:22:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":35225,"nodeType":"UserDefinedTypeName","pathNode":{"id":35224,"name":"AddressSet","nameLocations":["10276:10:33"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"10276:10:33"},"referencedDeclaration":35099,"src":"10276:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"10275:24:33"},"returnParameters":{"id":35231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35252,"src":"10323:16:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":35228,"name":"address","nodeType":"ElementaryTypeName","src":"10323:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":35229,"nodeType":"ArrayTypeName","src":"10323:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10322:18:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35256,"nodeType":"StructDefinition","src":"10582:42:33","nodes":[],"canonicalName":"EnumerableSet.UintSet","members":[{"constant":false,"id":35255,"mutability":"mutable","name":"_inner","nameLocation":"10611:6:33","nodeType":"VariableDeclaration","scope":35256,"src":"10607:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":35254,"nodeType":"UserDefinedTypeName","pathNode":{"id":35253,"name":"Set","nameLocations":["10607:3:33"],"nodeType":"IdentifierPath","referencedDeclaration":34784,"src":"10607:3:33"},"referencedDeclaration":34784,"src":"10607:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"UintSet","nameLocation":"10589:7:33","scope":35386,"visibility":"public"},{"id":35277,"nodeType":"FunctionDefinition","src":"10794:129:33","nodes":[],"body":{"id":35276,"nodeType":"Block","src":"10867:56:33","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35268,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35260,"src":"10889:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":35269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10893:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35255,"src":"10889:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":35272,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35262,"src":"10909:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10901:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":35270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10901:7:33","typeDescriptions":{}}},"id":35273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10901:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35267,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34826,"src":"10884:4:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$34784_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":35274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10884:32:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35266,"id":35275,"nodeType":"Return","src":"10877:39:33"}]},"documentation":{"id":35257,"nodeType":"StructuredDocumentation","src":"10630:159:33","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"10803:3:33","parameters":{"id":35263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35260,"mutability":"mutable","name":"set","nameLocation":"10823:3:33","nodeType":"VariableDeclaration","scope":35277,"src":"10807:19:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":35259,"nodeType":"UserDefinedTypeName","pathNode":{"id":35258,"name":"UintSet","nameLocations":["10807:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":35256,"src":"10807:7:33"},"referencedDeclaration":35256,"src":"10807:7:33","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":35262,"mutability":"mutable","name":"value","nameLocation":"10836:5:33","nodeType":"VariableDeclaration","scope":35277,"src":"10828:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35261,"name":"uint256","nodeType":"ElementaryTypeName","src":"10828:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10806:36:33"},"returnParameters":{"id":35266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35265,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35277,"src":"10861:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35264,"name":"bool","nodeType":"ElementaryTypeName","src":"10861:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10860:6:33"},"scope":35386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":35298,"nodeType":"FunctionDefinition","src":"11091:135:33","nodes":[],"body":{"id":35297,"nodeType":"Block","src":"11167:59:33","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35289,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35281,"src":"11192:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":35290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11196:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35255,"src":"11192:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":35293,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35283,"src":"11212:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11204:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":35291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11204:7:33","typeDescriptions":{}}},"id":35294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11204:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35288,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34910,"src":"11184:7:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$34784_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":35295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11184:35:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35287,"id":35296,"nodeType":"Return","src":"11177:42:33"}]},"documentation":{"id":35278,"nodeType":"StructuredDocumentation","src":"10929:157:33","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"11100:6:33","parameters":{"id":35284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35281,"mutability":"mutable","name":"set","nameLocation":"11123:3:33","nodeType":"VariableDeclaration","scope":35298,"src":"11107:19:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":35280,"nodeType":"UserDefinedTypeName","pathNode":{"id":35279,"name":"UintSet","nameLocations":["11107:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":35256,"src":"11107:7:33"},"referencedDeclaration":35256,"src":"11107:7:33","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":35283,"mutability":"mutable","name":"value","nameLocation":"11136:5:33","nodeType":"VariableDeclaration","scope":35298,"src":"11128:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35282,"name":"uint256","nodeType":"ElementaryTypeName","src":"11128:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11106:36:33"},"returnParameters":{"id":35287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35298,"src":"11161:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35285,"name":"bool","nodeType":"ElementaryTypeName","src":"11161:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11160:6:33"},"scope":35386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":35319,"nodeType":"FunctionDefinition","src":"11307:144:33","nodes":[],"body":{"id":35318,"nodeType":"Block","src":"11390:61:33","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35310,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35302,"src":"11417:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":35311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11421:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35255,"src":"11417:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":35314,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35304,"src":"11437:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11429:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":35312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11429:7:33","typeDescriptions":{}}},"id":35315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11429:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35309,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34929,"src":"11407:9:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$34784_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":35316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11407:37:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35308,"id":35317,"nodeType":"Return","src":"11400:44:33"}]},"documentation":{"id":35299,"nodeType":"StructuredDocumentation","src":"11232:70:33","text":" @dev Returns true if the value is in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"11316:8:33","parameters":{"id":35305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35302,"mutability":"mutable","name":"set","nameLocation":"11341:3:33","nodeType":"VariableDeclaration","scope":35319,"src":"11325:19:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":35301,"nodeType":"UserDefinedTypeName","pathNode":{"id":35300,"name":"UintSet","nameLocations":["11325:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":35256,"src":"11325:7:33"},"referencedDeclaration":35256,"src":"11325:7:33","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":35304,"mutability":"mutable","name":"value","nameLocation":"11354:5:33","nodeType":"VariableDeclaration","scope":35319,"src":"11346:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35303,"name":"uint256","nodeType":"ElementaryTypeName","src":"11346:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11324:36:33"},"returnParameters":{"id":35308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35307,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35319,"src":"11384:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35306,"name":"bool","nodeType":"ElementaryTypeName","src":"11384:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11383:6:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35334,"nodeType":"FunctionDefinition","src":"11532:112:33","nodes":[],"body":{"id":35333,"nodeType":"Block","src":"11601:43:33","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35329,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35323,"src":"11626:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":35330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11630:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35255,"src":"11626:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":35328,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34943,"src":"11618:7:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$34784_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":35331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11618:19:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":35327,"id":35332,"nodeType":"Return","src":"11611:26:33"}]},"documentation":{"id":35320,"nodeType":"StructuredDocumentation","src":"11457:70:33","text":" @dev Returns the number of values in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"11541:6:33","parameters":{"id":35324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35323,"mutability":"mutable","name":"set","nameLocation":"11564:3:33","nodeType":"VariableDeclaration","scope":35334,"src":"11548:19:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":35322,"nodeType":"UserDefinedTypeName","pathNode":{"id":35321,"name":"UintSet","nameLocations":["11548:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":35256,"src":"11548:7:33"},"referencedDeclaration":35256,"src":"11548:7:33","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"11547:21:33"},"returnParameters":{"id":35327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35326,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35334,"src":"11592:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35325,"name":"uint256","nodeType":"ElementaryTypeName","src":"11592:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11591:9:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35355,"nodeType":"FunctionDefinition","src":"11986:135:33","nodes":[],"body":{"id":35354,"nodeType":"Block","src":"12066:55:33","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":35348,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35338,"src":"12095:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":35349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12099:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35255,"src":"12095:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":35350,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35340,"src":"12107:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35347,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34960,"src":"12091:3:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$34784_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":35351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12091:22:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12083:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":35345,"name":"uint256","nodeType":"ElementaryTypeName","src":"12083:7:33","typeDescriptions":{}}},"id":35352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12083:31:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":35344,"id":35353,"nodeType":"Return","src":"12076:38:33"}]},"documentation":{"id":35335,"nodeType":"StructuredDocumentation","src":"11650:331:33","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"11995:2:33","parameters":{"id":35341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35338,"mutability":"mutable","name":"set","nameLocation":"12014:3:33","nodeType":"VariableDeclaration","scope":35355,"src":"11998:19:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":35337,"nodeType":"UserDefinedTypeName","pathNode":{"id":35336,"name":"UintSet","nameLocations":["11998:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":35256,"src":"11998:7:33"},"referencedDeclaration":35256,"src":"11998:7:33","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":35340,"mutability":"mutable","name":"index","nameLocation":"12027:5:33","nodeType":"VariableDeclaration","scope":35355,"src":"12019:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35339,"name":"uint256","nodeType":"ElementaryTypeName","src":"12019:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11997:36:33"},"returnParameters":{"id":35344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35355,"src":"12057:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35342,"name":"uint256","nodeType":"ElementaryTypeName","src":"12057:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12056:9:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35385,"nodeType":"FunctionDefinition","src":"12661:297:33","nodes":[],"body":{"id":35384,"nodeType":"Block","src":"12739:219:33","nodes":[],"statements":[{"assignments":[35369],"declarations":[{"constant":false,"id":35369,"mutability":"mutable","name":"store","nameLocation":"12766:5:33","nodeType":"VariableDeclaration","scope":35384,"src":"12749:22:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":35367,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12749:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":35368,"nodeType":"ArrayTypeName","src":"12749:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":35374,"initialValue":{"arguments":[{"expression":{"id":35371,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35359,"src":"12782:3:33","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":35372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12786:6:33","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35255,"src":"12782:10:33","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$34784_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":35370,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34974,"src":"12774:7:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$34784_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":35373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12774:19:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12749:44:33"},{"assignments":[35379],"declarations":[{"constant":false,"id":35379,"mutability":"mutable","name":"result","nameLocation":"12820:6:33","nodeType":"VariableDeclaration","scope":35384,"src":"12803:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":35377,"name":"uint256","nodeType":"ElementaryTypeName","src":"12803:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35378,"nodeType":"ArrayTypeName","src":"12803:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":35380,"nodeType":"VariableDeclarationStatement","src":"12803:23:33"},{"AST":{"nodeType":"YulBlock","src":"12889:39:33","statements":[{"nodeType":"YulAssignment","src":"12903:15:33","value":{"name":"store","nodeType":"YulIdentifier","src":"12913:5:33"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"12903:6:33"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":35379,"isOffset":false,"isSlot":false,"src":"12903:6:33","valueSize":1},{"declaration":35369,"isOffset":false,"isSlot":false,"src":"12913:5:33","valueSize":1}],"id":35381,"nodeType":"InlineAssembly","src":"12880:48:33"},{"expression":{"id":35382,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35379,"src":"12945:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":35364,"id":35383,"nodeType":"Return","src":"12938:13:33"}]},"documentation":{"id":35356,"nodeType":"StructuredDocumentation","src":"12127:529:33","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"12670:6:33","parameters":{"id":35360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35359,"mutability":"mutable","name":"set","nameLocation":"12693:3:33","nodeType":"VariableDeclaration","scope":35385,"src":"12677:19:33","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":35358,"nodeType":"UserDefinedTypeName","pathNode":{"id":35357,"name":"UintSet","nameLocations":["12677:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":35256,"src":"12677:7:33"},"referencedDeclaration":35256,"src":"12677:7:33","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"12676:21:33"},"returnParameters":{"id":35364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35363,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35385,"src":"12721:16:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":35361,"name":"uint256","nodeType":"ElementaryTypeName","src":"12721:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35362,"nodeType":"ArrayTypeName","src":"12721:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12720:18:33"},"scope":35386,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"EnumerableSet","contractDependencies":[],"contractKind":"library","documentation":{"id":34776,"nodeType":"StructuredDocumentation","src":"231:1098:33","text":" @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```solidity\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported.\n [WARNING]\n ====\n Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\n unusable.\n See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\n array of EnumerableSet.\n ===="},"fullyImplemented":true,"linearizedBaseContracts":[35386],"name":"EnumerableSet","nameLocation":"1338:13:33","scope":35387,"usedErrors":[]}],"license":"MIT"},"id":33} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220af1f8ca0d5f49367639a5e7a461cb50c7a6a7fd87d862435d7b97abdf04bcb5c64736f6c63430008130033","sourceMap":"1330:11630:36:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220af1f8ca0d5f49367639a5e7a461cb50c7a6a7fd87d862435d7b97abdf04bcb5c64736f6c63430008130033","sourceMap":"1330:11630:36:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ```solidity contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported. [WARNING] ==== Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable. See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet. ====\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":"EnumerableSet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","id":35816,"exportedSymbols":{"EnumerableSet":[35815]},"nodeType":"SourceUnit","src":"205:12756:36","nodes":[{"id":35204,"nodeType":"PragmaDirective","src":"205:24:36","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":35815,"nodeType":"ContractDefinition","src":"1330:11630:36","nodes":[{"id":35213,"nodeType":"StructDefinition","src":"1798:247:36","nodes":[],"canonicalName":"EnumerableSet.Set","members":[{"constant":false,"id":35208,"mutability":"mutable","name":"_values","nameLocation":"1862:7:36","nodeType":"VariableDeclaration","scope":35213,"src":"1852:17:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":35206,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1852:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":35207,"nodeType":"ArrayTypeName","src":"1852:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":35212,"mutability":"mutable","name":"_indexes","nameLocation":"2030:8:36","nodeType":"VariableDeclaration","scope":35213,"src":"2002:36:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":35211,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":35209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2010:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2002:27:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":35210,"name":"uint256","nodeType":"ElementaryTypeName","src":"2021:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"1805:3:36","scope":35815,"visibility":"public"},{"id":35255,"nodeType":"FunctionDefinition","src":"2215:404:36","nodes":[],"body":{"id":35254,"nodeType":"Block","src":"2284:335:36","nodes":[],"statements":[{"condition":{"id":35228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2298:22:36","subExpression":{"arguments":[{"id":35225,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35217,"src":"2309:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},{"id":35226,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35219,"src":"2314:5:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35224,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35358,"src":"2299:9:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$35213_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":35227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2299:21:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":35252,"nodeType":"Block","src":"2576:37:36","statements":[{"expression":{"hexValue":"66616c7365","id":35250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2597:5:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":35223,"id":35251,"nodeType":"Return","src":"2590:12:36"}]},"id":35253,"nodeType":"IfStatement","src":"2294:319:36","trueBody":{"id":35249,"nodeType":"Block","src":"2322:248:36","statements":[{"expression":{"arguments":[{"id":35234,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35219,"src":"2353:5:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":35229,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35217,"src":"2336:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":35232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2340:7:36","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":35208,"src":"2336:11:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":35233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2348:4:36","memberName":"push","nodeType":"MemberAccess","src":"2336:16:36","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":35235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2336:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35236,"nodeType":"ExpressionStatement","src":"2336:23:36"},{"expression":{"id":35245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35237,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35217,"src":"2494:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":35240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2498:8:36","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":35212,"src":"2494:12:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":35241,"indexExpression":{"id":35239,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35219,"src":"2507:5:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2494:19:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":35242,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35217,"src":"2516:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":35243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2520:7:36","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":35208,"src":"2516:11:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":35244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2528:6:36","memberName":"length","nodeType":"MemberAccess","src":"2516:18:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2494:40:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35246,"nodeType":"ExpressionStatement","src":"2494:40:36"},{"expression":{"hexValue":"74727565","id":35247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2555:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":35223,"id":35248,"nodeType":"Return","src":"2548:11:36"}]}}]},"documentation":{"id":35214,"nodeType":"StructuredDocumentation","src":"2051:159:36","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"2224:4:36","parameters":{"id":35220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35217,"mutability":"mutable","name":"set","nameLocation":"2241:3:36","nodeType":"VariableDeclaration","scope":35255,"src":"2229:15:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":35216,"nodeType":"UserDefinedTypeName","pathNode":{"id":35215,"name":"Set","nameLocations":["2229:3:36"],"nodeType":"IdentifierPath","referencedDeclaration":35213,"src":"2229:3:36"},"referencedDeclaration":35213,"src":"2229:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":35219,"mutability":"mutable","name":"value","nameLocation":"2254:5:36","nodeType":"VariableDeclaration","scope":35255,"src":"2246:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2246:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2228:32:36"},"returnParameters":{"id":35223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35222,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35255,"src":"2278:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35221,"name":"bool","nodeType":"ElementaryTypeName","src":"2278:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2277:6:36"},"scope":35815,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":35339,"nodeType":"FunctionDefinition","src":"2787:1388:36","nodes":[],"body":{"id":35338,"nodeType":"Block","src":"2859:1316:36","nodes":[],"statements":[{"assignments":[35267],"declarations":[{"constant":false,"id":35267,"mutability":"mutable","name":"valueIndex","nameLocation":"2977:10:36","nodeType":"VariableDeclaration","scope":35338,"src":"2969:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35266,"name":"uint256","nodeType":"ElementaryTypeName","src":"2969:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35272,"initialValue":{"baseExpression":{"expression":{"id":35268,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35259,"src":"2990:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":35269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2994:8:36","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":35212,"src":"2990:12:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":35271,"indexExpression":{"id":35270,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35261,"src":"3003:5:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2990:19:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2969:40:36"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35273,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35267,"src":"3024:10:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":35274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3024:15:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":35336,"nodeType":"Block","src":"4132:37:36","statements":[{"expression":{"hexValue":"66616c7365","id":35334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4153:5:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":35265,"id":35335,"nodeType":"Return","src":"4146:12:36"}]},"id":35337,"nodeType":"IfStatement","src":"3020:1149:36","trueBody":{"id":35333,"nodeType":"Block","src":"3041:1085:36","statements":[{"assignments":[35277],"declarations":[{"constant":false,"id":35277,"mutability":"mutable","name":"toDeleteIndex","nameLocation":"3401:13:36","nodeType":"VariableDeclaration","scope":35333,"src":"3393:21:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35276,"name":"uint256","nodeType":"ElementaryTypeName","src":"3393:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35281,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35278,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35267,"src":"3417:10:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":35279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3430:1:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3417:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3393:38:36"},{"assignments":[35283],"declarations":[{"constant":false,"id":35283,"mutability":"mutable","name":"lastIndex","nameLocation":"3453:9:36","nodeType":"VariableDeclaration","scope":35333,"src":"3445:17:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35282,"name":"uint256","nodeType":"ElementaryTypeName","src":"3445:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35289,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":35284,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35259,"src":"3465:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":35285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3469:7:36","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":35208,"src":"3465:11:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":35286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3477:6:36","memberName":"length","nodeType":"MemberAccess","src":"3465:18:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":35287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3486:1:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3465:22:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3445:42:36"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35290,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35283,"src":"3506:9:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":35291,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35277,"src":"3519:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3506:26:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35317,"nodeType":"IfStatement","src":"3502:398:36","trueBody":{"id":35316,"nodeType":"Block","src":"3534:366:36","statements":[{"assignments":[35294],"declarations":[{"constant":false,"id":35294,"mutability":"mutable","name":"lastValue","nameLocation":"3560:9:36","nodeType":"VariableDeclaration","scope":35316,"src":"3552:17:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35293,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3552:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35299,"initialValue":{"baseExpression":{"expression":{"id":35295,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35259,"src":"3572:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":35296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3576:7:36","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":35208,"src":"3572:11:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":35298,"indexExpression":{"id":35297,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35283,"src":"3584:9:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3572:22:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3552:42:36"},{"expression":{"id":35306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35300,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35259,"src":"3694:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":35303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3698:7:36","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":35208,"src":"3694:11:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":35304,"indexExpression":{"id":35302,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35277,"src":"3706:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3694:26:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35305,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35294,"src":"3723:9:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3694:38:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":35307,"nodeType":"ExpressionStatement","src":"3694:38:36"},{"expression":{"id":35314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35308,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35259,"src":"3806:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":35311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3810:8:36","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":35212,"src":"3806:12:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":35312,"indexExpression":{"id":35310,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35294,"src":"3819:9:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3806:23:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35313,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35267,"src":"3832:10:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3806:36:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35315,"nodeType":"ExpressionStatement","src":"3806:36:36"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":35318,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35259,"src":"3978:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":35321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3982:7:36","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":35208,"src":"3978:11:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":35322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3990:3:36","memberName":"pop","nodeType":"MemberAccess","src":"3978:15:36","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer)"}},"id":35323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3978:17:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35324,"nodeType":"ExpressionStatement","src":"3978:17:36"},{"expression":{"id":35329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4063:26:36","subExpression":{"baseExpression":{"expression":{"id":35325,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35259,"src":"4070:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":35326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4074:8:36","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":35212,"src":"4070:12:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":35328,"indexExpression":{"id":35327,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35261,"src":"4083:5:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4070:19:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35330,"nodeType":"ExpressionStatement","src":"4063:26:36"},{"expression":{"hexValue":"74727565","id":35331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4111:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":35265,"id":35332,"nodeType":"Return","src":"4104:11:36"}]}}]},"documentation":{"id":35256,"nodeType":"StructuredDocumentation","src":"2625:157:36","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"2796:7:36","parameters":{"id":35262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35259,"mutability":"mutable","name":"set","nameLocation":"2816:3:36","nodeType":"VariableDeclaration","scope":35339,"src":"2804:15:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":35258,"nodeType":"UserDefinedTypeName","pathNode":{"id":35257,"name":"Set","nameLocations":["2804:3:36"],"nodeType":"IdentifierPath","referencedDeclaration":35213,"src":"2804:3:36"},"referencedDeclaration":35213,"src":"2804:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":35261,"mutability":"mutable","name":"value","nameLocation":"2829:5:36","nodeType":"VariableDeclaration","scope":35339,"src":"2821:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35260,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2821:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2803:32:36"},"returnParameters":{"id":35265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35264,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35339,"src":"2853:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35263,"name":"bool","nodeType":"ElementaryTypeName","src":"2853:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2852:6:36"},"scope":35815,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":35358,"nodeType":"FunctionDefinition","src":"4256:127:36","nodes":[],"body":{"id":35357,"nodeType":"Block","src":"4335:48:36","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":35350,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35343,"src":"4352:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":35351,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4356:8:36","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":35212,"src":"4352:12:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":35353,"indexExpression":{"id":35352,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35345,"src":"4365:5:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4352:19:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":35354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4375:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4352:24:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35349,"id":35356,"nodeType":"Return","src":"4345:31:36"}]},"documentation":{"id":35340,"nodeType":"StructuredDocumentation","src":"4181:70:36","text":" @dev Returns true if the value is in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"4265:9:36","parameters":{"id":35346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35343,"mutability":"mutable","name":"set","nameLocation":"4287:3:36","nodeType":"VariableDeclaration","scope":35358,"src":"4275:15:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":35342,"nodeType":"UserDefinedTypeName","pathNode":{"id":35341,"name":"Set","nameLocations":["4275:3:36"],"nodeType":"IdentifierPath","referencedDeclaration":35213,"src":"4275:3:36"},"referencedDeclaration":35213,"src":"4275:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":35345,"mutability":"mutable","name":"value","nameLocation":"4300:5:36","nodeType":"VariableDeclaration","scope":35358,"src":"4292:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4292:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4274:32:36"},"returnParameters":{"id":35349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35358,"src":"4329:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35347,"name":"bool","nodeType":"ElementaryTypeName","src":"4329:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4328:6:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":35372,"nodeType":"FunctionDefinition","src":"4464:107:36","nodes":[],"body":{"id":35371,"nodeType":"Block","src":"4529:42:36","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":35367,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35362,"src":"4546:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":35368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4550:7:36","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":35208,"src":"4546:11:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":35369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4558:6:36","memberName":"length","nodeType":"MemberAccess","src":"4546:18:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":35366,"id":35370,"nodeType":"Return","src":"4539:25:36"}]},"documentation":{"id":35359,"nodeType":"StructuredDocumentation","src":"4389:70:36","text":" @dev Returns the number of values on the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"4473:7:36","parameters":{"id":35363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35362,"mutability":"mutable","name":"set","nameLocation":"4493:3:36","nodeType":"VariableDeclaration","scope":35372,"src":"4481:15:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":35361,"nodeType":"UserDefinedTypeName","pathNode":{"id":35360,"name":"Set","nameLocations":["4481:3:36"],"nodeType":"IdentifierPath","referencedDeclaration":35213,"src":"4481:3:36"},"referencedDeclaration":35213,"src":"4481:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"4480:17:36"},"returnParameters":{"id":35366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35365,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35372,"src":"4520:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35364,"name":"uint256","nodeType":"ElementaryTypeName","src":"4520:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4519:9:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":35389,"nodeType":"FunctionDefinition","src":"4913:118:36","nodes":[],"body":{"id":35388,"nodeType":"Block","src":"4989:42:36","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":35383,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35376,"src":"5006:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":35384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5010:7:36","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":35208,"src":"5006:11:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":35386,"indexExpression":{"id":35385,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35378,"src":"5018:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5006:18:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":35382,"id":35387,"nodeType":"Return","src":"4999:25:36"}]},"documentation":{"id":35373,"nodeType":"StructuredDocumentation","src":"4577:331:36","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"4922:3:36","parameters":{"id":35379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35376,"mutability":"mutable","name":"set","nameLocation":"4938:3:36","nodeType":"VariableDeclaration","scope":35389,"src":"4926:15:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":35375,"nodeType":"UserDefinedTypeName","pathNode":{"id":35374,"name":"Set","nameLocations":["4926:3:36"],"nodeType":"IdentifierPath","referencedDeclaration":35213,"src":"4926:3:36"},"referencedDeclaration":35213,"src":"4926:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":35378,"mutability":"mutable","name":"index","nameLocation":"4951:5:36","nodeType":"VariableDeclaration","scope":35389,"src":"4943:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35377,"name":"uint256","nodeType":"ElementaryTypeName","src":"4943:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4925:32:36"},"returnParameters":{"id":35382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35381,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35389,"src":"4980:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4980:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4979:9:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":35403,"nodeType":"FunctionDefinition","src":"5571:109:36","nodes":[],"body":{"id":35402,"nodeType":"Block","src":"5645:35:36","nodes":[],"statements":[{"expression":{"expression":{"id":35399,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35393,"src":"5662:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":35400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5666:7:36","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":35208,"src":"5662:11:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":35398,"id":35401,"nodeType":"Return","src":"5655:18:36"}]},"documentation":{"id":35390,"nodeType":"StructuredDocumentation","src":"5037:529:36","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"implemented":true,"kind":"function","modifiers":[],"name":"_values","nameLocation":"5580:7:36","parameters":{"id":35394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35393,"mutability":"mutable","name":"set","nameLocation":"5600:3:36","nodeType":"VariableDeclaration","scope":35403,"src":"5588:15:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":35392,"nodeType":"UserDefinedTypeName","pathNode":{"id":35391,"name":"Set","nameLocations":["5588:3:36"],"nodeType":"IdentifierPath","referencedDeclaration":35213,"src":"5588:3:36"},"referencedDeclaration":35213,"src":"5588:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"5587:17:36"},"returnParameters":{"id":35398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35403,"src":"5627:16:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":35395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5627:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":35396,"nodeType":"ArrayTypeName","src":"5627:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5626:18:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":35407,"nodeType":"StructDefinition","src":"5705:45:36","nodes":[],"canonicalName":"EnumerableSet.Bytes32Set","members":[{"constant":false,"id":35406,"mutability":"mutable","name":"_inner","nameLocation":"5737:6:36","nodeType":"VariableDeclaration","scope":35407,"src":"5733:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":35405,"nodeType":"UserDefinedTypeName","pathNode":{"id":35404,"name":"Set","nameLocations":["5733:3:36"],"nodeType":"IdentifierPath","referencedDeclaration":35213,"src":"5733:3:36"},"referencedDeclaration":35213,"src":"5733:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"Bytes32Set","nameLocation":"5712:10:36","scope":35815,"visibility":"public"},{"id":35425,"nodeType":"FunctionDefinition","src":"5920:123:36","nodes":[],"body":{"id":35424,"nodeType":"Block","src":"5996:47:36","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35419,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35411,"src":"6018:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":35420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6022:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35406,"src":"6018:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":35421,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35413,"src":"6030:5:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35418,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35255,"src":"6013:4:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$35213_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":35422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6013:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35417,"id":35423,"nodeType":"Return","src":"6006:30:36"}]},"documentation":{"id":35408,"nodeType":"StructuredDocumentation","src":"5756:159:36","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"5929:3:36","parameters":{"id":35414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35411,"mutability":"mutable","name":"set","nameLocation":"5952:3:36","nodeType":"VariableDeclaration","scope":35425,"src":"5933:22:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":35410,"nodeType":"UserDefinedTypeName","pathNode":{"id":35409,"name":"Bytes32Set","nameLocations":["5933:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":35407,"src":"5933:10:36"},"referencedDeclaration":35407,"src":"5933:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":35413,"mutability":"mutable","name":"value","nameLocation":"5965:5:36","nodeType":"VariableDeclaration","scope":35425,"src":"5957:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35412,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5957:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5932:39:36"},"returnParameters":{"id":35417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35416,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35425,"src":"5990:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35415,"name":"bool","nodeType":"ElementaryTypeName","src":"5990:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5989:6:36"},"scope":35815,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":35443,"nodeType":"FunctionDefinition","src":"6211:129:36","nodes":[],"body":{"id":35442,"nodeType":"Block","src":"6290:50:36","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35437,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35429,"src":"6315:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":35438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6319:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35406,"src":"6315:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":35439,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35431,"src":"6327:5:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35436,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35339,"src":"6307:7:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$35213_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":35440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6307:26:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35435,"id":35441,"nodeType":"Return","src":"6300:33:36"}]},"documentation":{"id":35426,"nodeType":"StructuredDocumentation","src":"6049:157:36","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"6220:6:36","parameters":{"id":35432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35429,"mutability":"mutable","name":"set","nameLocation":"6246:3:36","nodeType":"VariableDeclaration","scope":35443,"src":"6227:22:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":35428,"nodeType":"UserDefinedTypeName","pathNode":{"id":35427,"name":"Bytes32Set","nameLocations":["6227:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":35407,"src":"6227:10:36"},"referencedDeclaration":35407,"src":"6227:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":35431,"mutability":"mutable","name":"value","nameLocation":"6259:5:36","nodeType":"VariableDeclaration","scope":35443,"src":"6251:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35430,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6251:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6226:39:36"},"returnParameters":{"id":35435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35443,"src":"6284:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35433,"name":"bool","nodeType":"ElementaryTypeName","src":"6284:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6283:6:36"},"scope":35815,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":35461,"nodeType":"FunctionDefinition","src":"6421:138:36","nodes":[],"body":{"id":35460,"nodeType":"Block","src":"6507:52:36","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35455,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35447,"src":"6534:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":35456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6538:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35406,"src":"6534:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":35457,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35449,"src":"6546:5:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35454,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35358,"src":"6524:9:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$35213_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":35458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6524:28:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35453,"id":35459,"nodeType":"Return","src":"6517:35:36"}]},"documentation":{"id":35444,"nodeType":"StructuredDocumentation","src":"6346:70:36","text":" @dev Returns true if the value is in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"6430:8:36","parameters":{"id":35450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35447,"mutability":"mutable","name":"set","nameLocation":"6458:3:36","nodeType":"VariableDeclaration","scope":35461,"src":"6439:22:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":35446,"nodeType":"UserDefinedTypeName","pathNode":{"id":35445,"name":"Bytes32Set","nameLocations":["6439:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":35407,"src":"6439:10:36"},"referencedDeclaration":35407,"src":"6439:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":35449,"mutability":"mutable","name":"value","nameLocation":"6471:5:36","nodeType":"VariableDeclaration","scope":35461,"src":"6463:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35448,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6463:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6438:39:36"},"returnParameters":{"id":35453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35452,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35461,"src":"6501:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35451,"name":"bool","nodeType":"ElementaryTypeName","src":"6501:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6500:6:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35476,"nodeType":"FunctionDefinition","src":"6640:115:36","nodes":[],"body":{"id":35475,"nodeType":"Block","src":"6712:43:36","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35471,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35465,"src":"6737:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":35472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6741:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35406,"src":"6737:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":35470,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35372,"src":"6729:7:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$35213_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":35473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6729:19:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":35469,"id":35474,"nodeType":"Return","src":"6722:26:36"}]},"documentation":{"id":35462,"nodeType":"StructuredDocumentation","src":"6565:70:36","text":" @dev Returns the number of values in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"6649:6:36","parameters":{"id":35466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35465,"mutability":"mutable","name":"set","nameLocation":"6675:3:36","nodeType":"VariableDeclaration","scope":35476,"src":"6656:22:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":35464,"nodeType":"UserDefinedTypeName","pathNode":{"id":35463,"name":"Bytes32Set","nameLocations":["6656:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":35407,"src":"6656:10:36"},"referencedDeclaration":35407,"src":"6656:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"6655:24:36"},"returnParameters":{"id":35469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35476,"src":"6703:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35467,"name":"uint256","nodeType":"ElementaryTypeName","src":"6703:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6702:9:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35494,"nodeType":"FunctionDefinition","src":"7097:129:36","nodes":[],"body":{"id":35493,"nodeType":"Block","src":"7180:46:36","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35488,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35480,"src":"7201:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":35489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7205:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35406,"src":"7201:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":35490,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35482,"src":"7213:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35487,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35389,"src":"7197:3:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$35213_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":35491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7197:22:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":35486,"id":35492,"nodeType":"Return","src":"7190:29:36"}]},"documentation":{"id":35477,"nodeType":"StructuredDocumentation","src":"6761:331:36","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"7106:2:36","parameters":{"id":35483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35480,"mutability":"mutable","name":"set","nameLocation":"7128:3:36","nodeType":"VariableDeclaration","scope":35494,"src":"7109:22:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":35479,"nodeType":"UserDefinedTypeName","pathNode":{"id":35478,"name":"Bytes32Set","nameLocations":["7109:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":35407,"src":"7109:10:36"},"referencedDeclaration":35407,"src":"7109:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":35482,"mutability":"mutable","name":"index","nameLocation":"7141:5:36","nodeType":"VariableDeclaration","scope":35494,"src":"7133:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35481,"name":"uint256","nodeType":"ElementaryTypeName","src":"7133:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7108:39:36"},"returnParameters":{"id":35486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35485,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35494,"src":"7171:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7171:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7170:9:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35524,"nodeType":"FunctionDefinition","src":"7766:300:36","nodes":[],"body":{"id":35523,"nodeType":"Block","src":"7847:219:36","nodes":[],"statements":[{"assignments":[35508],"declarations":[{"constant":false,"id":35508,"mutability":"mutable","name":"store","nameLocation":"7874:5:36","nodeType":"VariableDeclaration","scope":35523,"src":"7857:22:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":35506,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7857:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":35507,"nodeType":"ArrayTypeName","src":"7857:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":35513,"initialValue":{"arguments":[{"expression":{"id":35510,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35498,"src":"7890:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":35511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7894:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35406,"src":"7890:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":35509,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35403,"src":"7882:7:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$35213_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":35512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7882:19:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7857:44:36"},{"assignments":[35518],"declarations":[{"constant":false,"id":35518,"mutability":"mutable","name":"result","nameLocation":"7928:6:36","nodeType":"VariableDeclaration","scope":35523,"src":"7911:23:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":35516,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7911:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":35517,"nodeType":"ArrayTypeName","src":"7911:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":35519,"nodeType":"VariableDeclarationStatement","src":"7911:23:36"},{"AST":{"nodeType":"YulBlock","src":"7997:39:36","statements":[{"nodeType":"YulAssignment","src":"8011:15:36","value":{"name":"store","nodeType":"YulIdentifier","src":"8021:5:36"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"8011:6:36"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":35518,"isOffset":false,"isSlot":false,"src":"8011:6:36","valueSize":1},{"declaration":35508,"isOffset":false,"isSlot":false,"src":"8021:5:36","valueSize":1}],"id":35520,"nodeType":"InlineAssembly","src":"7988:48:36"},{"expression":{"id":35521,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35518,"src":"8053:6:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":35503,"id":35522,"nodeType":"Return","src":"8046:13:36"}]},"documentation":{"id":35495,"nodeType":"StructuredDocumentation","src":"7232:529:36","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"7775:6:36","parameters":{"id":35499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35498,"mutability":"mutable","name":"set","nameLocation":"7801:3:36","nodeType":"VariableDeclaration","scope":35524,"src":"7782:22:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":35497,"nodeType":"UserDefinedTypeName","pathNode":{"id":35496,"name":"Bytes32Set","nameLocations":["7782:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":35407,"src":"7782:10:36"},"referencedDeclaration":35407,"src":"7782:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$35407_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"7781:24:36"},"returnParameters":{"id":35503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35524,"src":"7829:16:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":35500,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7829:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":35501,"nodeType":"ArrayTypeName","src":"7829:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7828:18:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35528,"nodeType":"StructDefinition","src":"8091:45:36","nodes":[],"canonicalName":"EnumerableSet.AddressSet","members":[{"constant":false,"id":35527,"mutability":"mutable","name":"_inner","nameLocation":"8123:6:36","nodeType":"VariableDeclaration","scope":35528,"src":"8119:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":35526,"nodeType":"UserDefinedTypeName","pathNode":{"id":35525,"name":"Set","nameLocations":["8119:3:36"],"nodeType":"IdentifierPath","referencedDeclaration":35213,"src":"8119:3:36"},"referencedDeclaration":35213,"src":"8119:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"AddressSet","nameLocation":"8098:10:36","scope":35815,"visibility":"public"},{"id":35555,"nodeType":"FunctionDefinition","src":"8306:150:36","nodes":[],"body":{"id":35554,"nodeType":"Block","src":"8382:74:36","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35540,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35532,"src":"8404:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":35541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8408:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35527,"src":"8404:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":35548,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35534,"src":"8440:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":35547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8432:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":35546,"name":"uint160","nodeType":"ElementaryTypeName","src":"8432:7:36","typeDescriptions":{}}},"id":35549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8432:14:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":35545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8424:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":35544,"name":"uint256","nodeType":"ElementaryTypeName","src":"8424:7:36","typeDescriptions":{}}},"id":35550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8424:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8416:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":35542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8416:7:36","typeDescriptions":{}}},"id":35551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8416:32:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35539,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35255,"src":"8399:4:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$35213_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":35552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8399:50:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35538,"id":35553,"nodeType":"Return","src":"8392:57:36"}]},"documentation":{"id":35529,"nodeType":"StructuredDocumentation","src":"8142:159:36","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"8315:3:36","parameters":{"id":35535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35532,"mutability":"mutable","name":"set","nameLocation":"8338:3:36","nodeType":"VariableDeclaration","scope":35555,"src":"8319:22:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":35531,"nodeType":"UserDefinedTypeName","pathNode":{"id":35530,"name":"AddressSet","nameLocations":["8319:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"8319:10:36"},"referencedDeclaration":35528,"src":"8319:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":35534,"mutability":"mutable","name":"value","nameLocation":"8351:5:36","nodeType":"VariableDeclaration","scope":35555,"src":"8343:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35533,"name":"address","nodeType":"ElementaryTypeName","src":"8343:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8318:39:36"},"returnParameters":{"id":35538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35555,"src":"8376:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35536,"name":"bool","nodeType":"ElementaryTypeName","src":"8376:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8375:6:36"},"scope":35815,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":35582,"nodeType":"FunctionDefinition","src":"8624:156:36","nodes":[],"body":{"id":35581,"nodeType":"Block","src":"8703:77:36","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35567,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35559,"src":"8728:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":35568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8732:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35527,"src":"8728:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":35575,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35561,"src":"8764:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":35574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8756:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":35573,"name":"uint160","nodeType":"ElementaryTypeName","src":"8756:7:36","typeDescriptions":{}}},"id":35576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8756:14:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":35572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8748:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":35571,"name":"uint256","nodeType":"ElementaryTypeName","src":"8748:7:36","typeDescriptions":{}}},"id":35577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8748:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8740:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":35569,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8740:7:36","typeDescriptions":{}}},"id":35578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8740:32:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35566,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35339,"src":"8720:7:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$35213_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":35579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8720:53:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35565,"id":35580,"nodeType":"Return","src":"8713:60:36"}]},"documentation":{"id":35556,"nodeType":"StructuredDocumentation","src":"8462:157:36","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"8633:6:36","parameters":{"id":35562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35559,"mutability":"mutable","name":"set","nameLocation":"8659:3:36","nodeType":"VariableDeclaration","scope":35582,"src":"8640:22:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":35558,"nodeType":"UserDefinedTypeName","pathNode":{"id":35557,"name":"AddressSet","nameLocations":["8640:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"8640:10:36"},"referencedDeclaration":35528,"src":"8640:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":35561,"mutability":"mutable","name":"value","nameLocation":"8672:5:36","nodeType":"VariableDeclaration","scope":35582,"src":"8664:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35560,"name":"address","nodeType":"ElementaryTypeName","src":"8664:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8639:39:36"},"returnParameters":{"id":35565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35582,"src":"8697:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35563,"name":"bool","nodeType":"ElementaryTypeName","src":"8697:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8696:6:36"},"scope":35815,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":35609,"nodeType":"FunctionDefinition","src":"8861:165:36","nodes":[],"body":{"id":35608,"nodeType":"Block","src":"8947:79:36","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35594,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35586,"src":"8974:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":35595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8978:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35527,"src":"8974:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":35602,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35588,"src":"9010:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":35601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9002:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":35600,"name":"uint160","nodeType":"ElementaryTypeName","src":"9002:7:36","typeDescriptions":{}}},"id":35603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9002:14:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":35599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8994:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":35598,"name":"uint256","nodeType":"ElementaryTypeName","src":"8994:7:36","typeDescriptions":{}}},"id":35604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8994:23:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8986:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":35596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8986:7:36","typeDescriptions":{}}},"id":35605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8986:32:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35593,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35358,"src":"8964:9:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$35213_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":35606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8964:55:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35592,"id":35607,"nodeType":"Return","src":"8957:62:36"}]},"documentation":{"id":35583,"nodeType":"StructuredDocumentation","src":"8786:70:36","text":" @dev Returns true if the value is in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"8870:8:36","parameters":{"id":35589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35586,"mutability":"mutable","name":"set","nameLocation":"8898:3:36","nodeType":"VariableDeclaration","scope":35609,"src":"8879:22:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":35585,"nodeType":"UserDefinedTypeName","pathNode":{"id":35584,"name":"AddressSet","nameLocations":["8879:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"8879:10:36"},"referencedDeclaration":35528,"src":"8879:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":35588,"mutability":"mutable","name":"value","nameLocation":"8911:5:36","nodeType":"VariableDeclaration","scope":35609,"src":"8903:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35587,"name":"address","nodeType":"ElementaryTypeName","src":"8903:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8878:39:36"},"returnParameters":{"id":35592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35609,"src":"8941:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35590,"name":"bool","nodeType":"ElementaryTypeName","src":"8941:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8940:6:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35624,"nodeType":"FunctionDefinition","src":"9107:115:36","nodes":[],"body":{"id":35623,"nodeType":"Block","src":"9179:43:36","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35619,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35613,"src":"9204:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":35620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9208:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35527,"src":"9204:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":35618,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35372,"src":"9196:7:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$35213_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":35621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9196:19:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":35617,"id":35622,"nodeType":"Return","src":"9189:26:36"}]},"documentation":{"id":35610,"nodeType":"StructuredDocumentation","src":"9032:70:36","text":" @dev Returns the number of values in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"9116:6:36","parameters":{"id":35614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35613,"mutability":"mutable","name":"set","nameLocation":"9142:3:36","nodeType":"VariableDeclaration","scope":35624,"src":"9123:22:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":35612,"nodeType":"UserDefinedTypeName","pathNode":{"id":35611,"name":"AddressSet","nameLocations":["9123:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"9123:10:36"},"referencedDeclaration":35528,"src":"9123:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"9122:24:36"},"returnParameters":{"id":35617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35624,"src":"9170:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35615,"name":"uint256","nodeType":"ElementaryTypeName","src":"9170:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9169:9:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35651,"nodeType":"FunctionDefinition","src":"9564:156:36","nodes":[],"body":{"id":35650,"nodeType":"Block","src":"9647:73:36","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":35642,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35628,"src":"9692:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":35643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9696:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35527,"src":"9692:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":35644,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35630,"src":"9704:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35641,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35389,"src":"9688:3:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$35213_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":35645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9688:22:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9680:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":35639,"name":"uint256","nodeType":"ElementaryTypeName","src":"9680:7:36","typeDescriptions":{}}},"id":35646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9680:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9672:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":35637,"name":"uint160","nodeType":"ElementaryTypeName","src":"9672:7:36","typeDescriptions":{}}},"id":35647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9672:40:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":35636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9664:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":35635,"name":"address","nodeType":"ElementaryTypeName","src":"9664:7:36","typeDescriptions":{}}},"id":35648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9664:49:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":35634,"id":35649,"nodeType":"Return","src":"9657:56:36"}]},"documentation":{"id":35625,"nodeType":"StructuredDocumentation","src":"9228:331:36","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"9573:2:36","parameters":{"id":35631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35628,"mutability":"mutable","name":"set","nameLocation":"9595:3:36","nodeType":"VariableDeclaration","scope":35651,"src":"9576:22:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":35627,"nodeType":"UserDefinedTypeName","pathNode":{"id":35626,"name":"AddressSet","nameLocations":["9576:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"9576:10:36"},"referencedDeclaration":35528,"src":"9576:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":35630,"mutability":"mutable","name":"index","nameLocation":"9608:5:36","nodeType":"VariableDeclaration","scope":35651,"src":"9600:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35629,"name":"uint256","nodeType":"ElementaryTypeName","src":"9600:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9575:39:36"},"returnParameters":{"id":35634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35651,"src":"9638:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35632,"name":"address","nodeType":"ElementaryTypeName","src":"9638:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9637:9:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35681,"nodeType":"FunctionDefinition","src":"10260:300:36","nodes":[],"body":{"id":35680,"nodeType":"Block","src":"10341:219:36","nodes":[],"statements":[{"assignments":[35665],"declarations":[{"constant":false,"id":35665,"mutability":"mutable","name":"store","nameLocation":"10368:5:36","nodeType":"VariableDeclaration","scope":35680,"src":"10351:22:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":35663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10351:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":35664,"nodeType":"ArrayTypeName","src":"10351:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":35670,"initialValue":{"arguments":[{"expression":{"id":35667,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35655,"src":"10384:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":35668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10388:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35527,"src":"10384:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":35666,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35403,"src":"10376:7:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$35213_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":35669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10376:19:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10351:44:36"},{"assignments":[35675],"declarations":[{"constant":false,"id":35675,"mutability":"mutable","name":"result","nameLocation":"10422:6:36","nodeType":"VariableDeclaration","scope":35680,"src":"10405:23:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":35673,"name":"address","nodeType":"ElementaryTypeName","src":"10405:7:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":35674,"nodeType":"ArrayTypeName","src":"10405:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":35676,"nodeType":"VariableDeclarationStatement","src":"10405:23:36"},{"AST":{"nodeType":"YulBlock","src":"10491:39:36","statements":[{"nodeType":"YulAssignment","src":"10505:15:36","value":{"name":"store","nodeType":"YulIdentifier","src":"10515:5:36"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"10505:6:36"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":35675,"isOffset":false,"isSlot":false,"src":"10505:6:36","valueSize":1},{"declaration":35665,"isOffset":false,"isSlot":false,"src":"10515:5:36","valueSize":1}],"id":35677,"nodeType":"InlineAssembly","src":"10482:48:36"},{"expression":{"id":35678,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35675,"src":"10547:6:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":35660,"id":35679,"nodeType":"Return","src":"10540:13:36"}]},"documentation":{"id":35652,"nodeType":"StructuredDocumentation","src":"9726:529:36","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"10269:6:36","parameters":{"id":35656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35655,"mutability":"mutable","name":"set","nameLocation":"10295:3:36","nodeType":"VariableDeclaration","scope":35681,"src":"10276:22:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":35654,"nodeType":"UserDefinedTypeName","pathNode":{"id":35653,"name":"AddressSet","nameLocations":["10276:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"10276:10:36"},"referencedDeclaration":35528,"src":"10276:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"10275:24:36"},"returnParameters":{"id":35660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35681,"src":"10323:16:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":35657,"name":"address","nodeType":"ElementaryTypeName","src":"10323:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":35658,"nodeType":"ArrayTypeName","src":"10323:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10322:18:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35685,"nodeType":"StructDefinition","src":"10582:42:36","nodes":[],"canonicalName":"EnumerableSet.UintSet","members":[{"constant":false,"id":35684,"mutability":"mutable","name":"_inner","nameLocation":"10611:6:36","nodeType":"VariableDeclaration","scope":35685,"src":"10607:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":35683,"nodeType":"UserDefinedTypeName","pathNode":{"id":35682,"name":"Set","nameLocations":["10607:3:36"],"nodeType":"IdentifierPath","referencedDeclaration":35213,"src":"10607:3:36"},"referencedDeclaration":35213,"src":"10607:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"UintSet","nameLocation":"10589:7:36","scope":35815,"visibility":"public"},{"id":35706,"nodeType":"FunctionDefinition","src":"10794:129:36","nodes":[],"body":{"id":35705,"nodeType":"Block","src":"10867:56:36","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35697,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35689,"src":"10889:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":35698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10893:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35684,"src":"10889:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":35701,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35691,"src":"10909:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10901:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":35699,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10901:7:36","typeDescriptions":{}}},"id":35702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10901:14:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35696,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35255,"src":"10884:4:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$35213_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":35703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10884:32:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35695,"id":35704,"nodeType":"Return","src":"10877:39:36"}]},"documentation":{"id":35686,"nodeType":"StructuredDocumentation","src":"10630:159:36","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"10803:3:36","parameters":{"id":35692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35689,"mutability":"mutable","name":"set","nameLocation":"10823:3:36","nodeType":"VariableDeclaration","scope":35706,"src":"10807:19:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":35688,"nodeType":"UserDefinedTypeName","pathNode":{"id":35687,"name":"UintSet","nameLocations":["10807:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":35685,"src":"10807:7:36"},"referencedDeclaration":35685,"src":"10807:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":35691,"mutability":"mutable","name":"value","nameLocation":"10836:5:36","nodeType":"VariableDeclaration","scope":35706,"src":"10828:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35690,"name":"uint256","nodeType":"ElementaryTypeName","src":"10828:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10806:36:36"},"returnParameters":{"id":35695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35706,"src":"10861:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35693,"name":"bool","nodeType":"ElementaryTypeName","src":"10861:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10860:6:36"},"scope":35815,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":35727,"nodeType":"FunctionDefinition","src":"11091:135:36","nodes":[],"body":{"id":35726,"nodeType":"Block","src":"11167:59:36","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35718,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35710,"src":"11192:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":35719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11196:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35684,"src":"11192:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":35722,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35712,"src":"11212:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11204:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":35720,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11204:7:36","typeDescriptions":{}}},"id":35723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11204:14:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35717,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35339,"src":"11184:7:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$35213_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":35724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11184:35:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35716,"id":35725,"nodeType":"Return","src":"11177:42:36"}]},"documentation":{"id":35707,"nodeType":"StructuredDocumentation","src":"10929:157:36","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"11100:6:36","parameters":{"id":35713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35710,"mutability":"mutable","name":"set","nameLocation":"11123:3:36","nodeType":"VariableDeclaration","scope":35727,"src":"11107:19:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":35709,"nodeType":"UserDefinedTypeName","pathNode":{"id":35708,"name":"UintSet","nameLocations":["11107:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":35685,"src":"11107:7:36"},"referencedDeclaration":35685,"src":"11107:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":35712,"mutability":"mutable","name":"value","nameLocation":"11136:5:36","nodeType":"VariableDeclaration","scope":35727,"src":"11128:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35711,"name":"uint256","nodeType":"ElementaryTypeName","src":"11128:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11106:36:36"},"returnParameters":{"id":35716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35727,"src":"11161:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35714,"name":"bool","nodeType":"ElementaryTypeName","src":"11161:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11160:6:36"},"scope":35815,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":35748,"nodeType":"FunctionDefinition","src":"11307:144:36","nodes":[],"body":{"id":35747,"nodeType":"Block","src":"11390:61:36","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35739,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35731,"src":"11417:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":35740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11421:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35684,"src":"11417:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":35743,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35733,"src":"11437:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11429:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":35741,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11429:7:36","typeDescriptions":{}}},"id":35744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11429:14:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35738,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35358,"src":"11407:9:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$35213_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":35745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11407:37:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":35737,"id":35746,"nodeType":"Return","src":"11400:44:36"}]},"documentation":{"id":35728,"nodeType":"StructuredDocumentation","src":"11232:70:36","text":" @dev Returns true if the value is in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"11316:8:36","parameters":{"id":35734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35731,"mutability":"mutable","name":"set","nameLocation":"11341:3:36","nodeType":"VariableDeclaration","scope":35748,"src":"11325:19:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":35730,"nodeType":"UserDefinedTypeName","pathNode":{"id":35729,"name":"UintSet","nameLocations":["11325:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":35685,"src":"11325:7:36"},"referencedDeclaration":35685,"src":"11325:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":35733,"mutability":"mutable","name":"value","nameLocation":"11354:5:36","nodeType":"VariableDeclaration","scope":35748,"src":"11346:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35732,"name":"uint256","nodeType":"ElementaryTypeName","src":"11346:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11324:36:36"},"returnParameters":{"id":35737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35736,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35748,"src":"11384:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35735,"name":"bool","nodeType":"ElementaryTypeName","src":"11384:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11383:6:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35763,"nodeType":"FunctionDefinition","src":"11532:112:36","nodes":[],"body":{"id":35762,"nodeType":"Block","src":"11601:43:36","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":35758,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35752,"src":"11626:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":35759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11630:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35684,"src":"11626:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":35757,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35372,"src":"11618:7:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$35213_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":35760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11618:19:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":35756,"id":35761,"nodeType":"Return","src":"11611:26:36"}]},"documentation":{"id":35749,"nodeType":"StructuredDocumentation","src":"11457:70:36","text":" @dev Returns the number of values in the set. O(1)."},"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"11541:6:36","parameters":{"id":35753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35752,"mutability":"mutable","name":"set","nameLocation":"11564:3:36","nodeType":"VariableDeclaration","scope":35763,"src":"11548:19:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":35751,"nodeType":"UserDefinedTypeName","pathNode":{"id":35750,"name":"UintSet","nameLocations":["11548:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":35685,"src":"11548:7:36"},"referencedDeclaration":35685,"src":"11548:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"11547:21:36"},"returnParameters":{"id":35756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35755,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35763,"src":"11592:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35754,"name":"uint256","nodeType":"ElementaryTypeName","src":"11592:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11591:9:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35784,"nodeType":"FunctionDefinition","src":"11986:135:36","nodes":[],"body":{"id":35783,"nodeType":"Block","src":"12066:55:36","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":35777,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35767,"src":"12095:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":35778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12099:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35684,"src":"12095:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":35779,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35769,"src":"12107:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35776,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35389,"src":"12091:3:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$35213_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":35780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12091:22:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12083:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":35774,"name":"uint256","nodeType":"ElementaryTypeName","src":"12083:7:36","typeDescriptions":{}}},"id":35781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12083:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":35773,"id":35782,"nodeType":"Return","src":"12076:38:36"}]},"documentation":{"id":35764,"nodeType":"StructuredDocumentation","src":"11650:331:36","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"11995:2:36","parameters":{"id":35770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35767,"mutability":"mutable","name":"set","nameLocation":"12014:3:36","nodeType":"VariableDeclaration","scope":35784,"src":"11998:19:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":35766,"nodeType":"UserDefinedTypeName","pathNode":{"id":35765,"name":"UintSet","nameLocations":["11998:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":35685,"src":"11998:7:36"},"referencedDeclaration":35685,"src":"11998:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":35769,"mutability":"mutable","name":"index","nameLocation":"12027:5:36","nodeType":"VariableDeclaration","scope":35784,"src":"12019:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35768,"name":"uint256","nodeType":"ElementaryTypeName","src":"12019:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11997:36:36"},"returnParameters":{"id":35773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35772,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35784,"src":"12057:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35771,"name":"uint256","nodeType":"ElementaryTypeName","src":"12057:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12056:9:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":35814,"nodeType":"FunctionDefinition","src":"12661:297:36","nodes":[],"body":{"id":35813,"nodeType":"Block","src":"12739:219:36","nodes":[],"statements":[{"assignments":[35798],"declarations":[{"constant":false,"id":35798,"mutability":"mutable","name":"store","nameLocation":"12766:5:36","nodeType":"VariableDeclaration","scope":35813,"src":"12749:22:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":35796,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12749:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":35797,"nodeType":"ArrayTypeName","src":"12749:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":35803,"initialValue":{"arguments":[{"expression":{"id":35800,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35788,"src":"12782:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":35801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12786:6:36","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":35684,"src":"12782:10:36","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$35213_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":35799,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35403,"src":"12774:7:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$35213_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":35802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12774:19:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12749:44:36"},{"assignments":[35808],"declarations":[{"constant":false,"id":35808,"mutability":"mutable","name":"result","nameLocation":"12820:6:36","nodeType":"VariableDeclaration","scope":35813,"src":"12803:23:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":35806,"name":"uint256","nodeType":"ElementaryTypeName","src":"12803:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35807,"nodeType":"ArrayTypeName","src":"12803:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":35809,"nodeType":"VariableDeclarationStatement","src":"12803:23:36"},{"AST":{"nodeType":"YulBlock","src":"12889:39:36","statements":[{"nodeType":"YulAssignment","src":"12903:15:36","value":{"name":"store","nodeType":"YulIdentifier","src":"12913:5:36"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"12903:6:36"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":35808,"isOffset":false,"isSlot":false,"src":"12903:6:36","valueSize":1},{"declaration":35798,"isOffset":false,"isSlot":false,"src":"12913:5:36","valueSize":1}],"id":35810,"nodeType":"InlineAssembly","src":"12880:48:36"},{"expression":{"id":35811,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35808,"src":"12945:6:36","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":35793,"id":35812,"nodeType":"Return","src":"12938:13:36"}]},"documentation":{"id":35785,"nodeType":"StructuredDocumentation","src":"12127:529:36","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"12670:6:36","parameters":{"id":35789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35788,"mutability":"mutable","name":"set","nameLocation":"12693:3:36","nodeType":"VariableDeclaration","scope":35814,"src":"12677:19:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":35787,"nodeType":"UserDefinedTypeName","pathNode":{"id":35786,"name":"UintSet","nameLocations":["12677:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":35685,"src":"12677:7:36"},"referencedDeclaration":35685,"src":"12677:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"12676:21:36"},"returnParameters":{"id":35793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35792,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35814,"src":"12721:16:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":35790,"name":"uint256","nodeType":"ElementaryTypeName","src":"12721:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35791,"nodeType":"ArrayTypeName","src":"12721:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12720:18:36"},"scope":35815,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"EnumerableSet","contractDependencies":[],"contractKind":"library","documentation":{"id":35205,"nodeType":"StructuredDocumentation","src":"231:1098:36","text":" @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```solidity\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported.\n [WARNING]\n ====\n Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\n unusable.\n See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\n array of EnumerableSet.\n ===="},"fullyImplemented":true,"linearizedBaseContracts":[35815],"name":"EnumerableSet","nameLocation":"1338:13:36","scope":35816,"usedErrors":[]}],"license":"MIT"},"id":36} \ No newline at end of file diff --git a/.out/FvmAddress.sol/FvmAddress.json b/.out/FvmAddress.sol/FvmAddress.json index 760ddfa45..e4e9dadb0 100644 --- a/.out/FvmAddress.sol/FvmAddress.json +++ b/.out/FvmAddress.sol/FvmAddress.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/FvmAddress.sol","id":48484,"exportedSymbols":{"DelegatedAddress":[48483],"FvmAddress":[48476]},"nodeType":"SourceUnit","src":"46:489:74","nodes":[{"id":48471,"nodeType":"PragmaDirective","src":"46:23:74","nodes":[],"literals":["solidity","0.8",".19"]},{"id":48476,"nodeType":"StructDefinition","src":"320:60:74","nodes":[],"canonicalName":"FvmAddress","members":[{"constant":false,"id":48473,"mutability":"mutable","name":"addrType","nameLocation":"350:8:74","nodeType":"VariableDeclaration","scope":48476,"src":"344:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":48472,"name":"uint8","nodeType":"ElementaryTypeName","src":"344:5:74","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":48475,"mutability":"mutable","name":"payload","nameLocation":"370:7:74","nodeType":"VariableDeclaration","scope":48476,"src":"364:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":48474,"name":"bytes","nodeType":"ElementaryTypeName","src":"364:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"FvmAddress","nameLocation":"327:10:74","scope":48484,"visibility":"public"},{"id":48483,"nodeType":"StructDefinition","src":"447:87:74","nodes":[],"canonicalName":"DelegatedAddress","members":[{"constant":false,"id":48478,"mutability":"mutable","name":"namespace","nameLocation":"484:9:74","nodeType":"VariableDeclaration","scope":48483,"src":"477:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":48477,"name":"uint64","nodeType":"ElementaryTypeName","src":"477:6:74","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":48480,"mutability":"mutable","name":"length","nameLocation":"507:6:74","nodeType":"VariableDeclaration","scope":48483,"src":"499:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":48479,"name":"uint128","nodeType":"ElementaryTypeName","src":"499:7:74","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":48482,"mutability":"mutable","name":"buffer","nameLocation":"525:6:74","nodeType":"VariableDeclaration","scope":48483,"src":"519:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":48481,"name":"bytes","nodeType":"ElementaryTypeName","src":"519:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"DelegatedAddress","nameLocation":"454:16:74","scope":48484,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":74} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/FvmAddress.sol","id":50006,"exportedSymbols":{"DelegatedAddress":[50005],"FvmAddress":[49998]},"nodeType":"SourceUnit","src":"46:489:81","nodes":[{"id":49993,"nodeType":"PragmaDirective","src":"46:23:81","nodes":[],"literals":["solidity","0.8",".19"]},{"id":49998,"nodeType":"StructDefinition","src":"320:60:81","nodes":[],"canonicalName":"FvmAddress","members":[{"constant":false,"id":49995,"mutability":"mutable","name":"addrType","nameLocation":"350:8:81","nodeType":"VariableDeclaration","scope":49998,"src":"344:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":49994,"name":"uint8","nodeType":"ElementaryTypeName","src":"344:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":49997,"mutability":"mutable","name":"payload","nameLocation":"370:7:81","nodeType":"VariableDeclaration","scope":49998,"src":"364:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":49996,"name":"bytes","nodeType":"ElementaryTypeName","src":"364:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"FvmAddress","nameLocation":"327:10:81","scope":50006,"visibility":"public"},{"id":50005,"nodeType":"StructDefinition","src":"447:87:81","nodes":[],"canonicalName":"DelegatedAddress","members":[{"constant":false,"id":50000,"mutability":"mutable","name":"namespace","nameLocation":"484:9:81","nodeType":"VariableDeclaration","scope":50005,"src":"477:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":49999,"name":"uint64","nodeType":"ElementaryTypeName","src":"477:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50002,"mutability":"mutable","name":"length","nameLocation":"507:6:81","nodeType":"VariableDeclaration","scope":50005,"src":"499:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":50001,"name":"uint128","nodeType":"ElementaryTypeName","src":"499:7:81","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":50004,"mutability":"mutable","name":"buffer","nameLocation":"525:6:81","nodeType":"VariableDeclaration","scope":50005,"src":"519:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":50003,"name":"bytes","nodeType":"ElementaryTypeName","src":"519:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"DelegatedAddress","nameLocation":"454:16:81","scope":50006,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":81} \ No newline at end of file diff --git a/.out/FvmAddressHelper.sol/FvmAddressHelper.json b/.out/FvmAddressHelper.sol/FvmAddressHelper.json index 72c1a9ad8..cb18bcbeb 100644 --- a/.out/FvmAddressHelper.sol/FvmAddressHelper.json +++ b/.out/FvmAddressHelper.sol/FvmAddressHelper.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"DELEGATED","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"EAM_ACTOR","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"PAYLOAD_HASH_LEN","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"SECP256K1","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"error","name":"NotDelegatedEvmAddress","inputs":[]}],"bytecode":{"object":"0x608080604052346100195760db908161001f823930815050f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c9081635279ff9914608c575080639c6e06c0146076578063ab528f211460605763cf8e4a6e14604857600080fd5b80600319360112605d57602060405160148152f35b80fd5b5080600319360112605d57602060405160018152f35b5080600319360112605d57602060405160048152f35b90508160031936011260a15780600a60209252f35b5080fdfea26469706673582212201bcbe64d2e452b2aae503400031b4c27a516824afd0fd7d363dedcf341af152464736f6c63430008130033","sourceMap":"186:2075:56:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c9081635279ff9914608c575080639c6e06c0146076578063ab528f211460605763cf8e4a6e14604857600080fd5b80600319360112605d57602060405160148152f35b80fd5b5080600319360112605d57602060405160018152f35b5080600319360112605d57602060405160048152f35b90508160031936011260a15780600a60209252f35b5080fdfea26469706673582212201bcbe64d2e452b2aae503400031b4c27a516824afd0fd7d363dedcf341af152464736f6c63430008130033","sourceMap":"186:2075:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;361:2;186:2075;;;;;;;;;;;;;;;;;;;313:1;186:2075;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;480:2;186:2075;;;;;;;","linkReferences":{}},"methodIdentifiers":{"DELEGATED()":"9c6e06c0","EAM_ACTOR()":"5279ff99","PAYLOAD_HASH_LEN()":"cf8e4a6e","SECP256K1()":"ab528f21"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"NotDelegatedEvmAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DELEGATED\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EAM_ACTOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAYLOAD_HASH_LEN\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SECP256K1\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for Fil Address\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DELEGATED()\":{\"notice\":\"For delegated FIL address\"},\"SECP256K1()\":{\"notice\":\"f1: SECP256K1 key address, 20 byte hash of PublicKey.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/FvmAddressHelper.sol\":\"FvmAddressHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"NotDelegatedEvmAddress"},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATED","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"EAM_ACTOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PAYLOAD_HASH_LEN","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SECP256K1","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATED()":{"notice":"For delegated FIL address"},"SECP256K1()":{"notice":"f1: SECP256K1 key address, 20 byte hash of PublicKey."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/FvmAddressHelper.sol":"FvmAddressHelper"},"libraries":{},"viaIR":true},"sources":{"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/FvmAddressHelper.sol","id":40510,"exportedSymbols":{"DelegatedAddress":[48483],"FvmAddress":[48476],"FvmAddressHelper":[40509]},"nodeType":"SourceUnit","src":"46:2216:56","nodes":[{"id":40330,"nodeType":"PragmaDirective","src":"46:23:56","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40333,"nodeType":"ImportDirective","src":"71:71:56","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":40510,"sourceUnit":48484,"symbolAliases":[{"foreign":{"id":40331,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"79:10:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40332,"name":"DelegatedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48483,"src":"91:16:56","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40509,"nodeType":"ContractDefinition","src":"186:2075:56","nodes":[{"id":40338,"nodeType":"VariableDeclaration","src":"279:35:56","nodes":[],"constant":true,"documentation":{"id":40335,"nodeType":"StructuredDocumentation","src":"217:57:56","text":"f1: SECP256K1 key address, 20 byte hash of PublicKey."},"functionSelector":"ab528f21","mutability":"constant","name":"SECP256K1","nameLocation":"301:9:56","scope":40509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":40336,"name":"uint8","nodeType":"ElementaryTypeName","src":"279:5:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":40337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"313:1:56","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"id":40341,"nodeType":"VariableDeclaration","src":"320:43:56","nodes":[],"constant":true,"functionSelector":"cf8e4a6e","mutability":"constant","name":"PAYLOAD_HASH_LEN","nameLocation":"342:16:56","scope":40509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":40339,"name":"uint8","nodeType":"ElementaryTypeName","src":"320:5:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":40340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"361:2:56","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"public"},{"id":40345,"nodeType":"VariableDeclaration","src":"404:35:56","nodes":[],"constant":true,"documentation":{"id":40342,"nodeType":"StructuredDocumentation","src":"370:29:56","text":"For delegated FIL address"},"functionSelector":"9c6e06c0","mutability":"constant","name":"DELEGATED","nameLocation":"426:9:56","scope":40509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":40343,"name":"uint8","nodeType":"ElementaryTypeName","src":"404:5:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"34","id":40344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"438:1:56","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"public"},{"id":40348,"nodeType":"VariableDeclaration","src":"445:37:56","nodes":[],"constant":true,"functionSelector":"5279ff99","mutability":"constant","name":"EAM_ACTOR","nameLocation":"468:9:56","scope":40509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":40346,"name":"uint64","nodeType":"ElementaryTypeName","src":"445:6:56","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":40347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"480:2:56","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"id":40350,"nodeType":"ErrorDefinition","src":"489:31:56","nodes":[],"errorSelector":"c5f8961f","name":"NotDelegatedEvmAddress","nameLocation":"495:22:56","parameters":{"id":40349,"nodeType":"ParameterList","parameters":[],"src":"517:2:56"}},{"id":40381,"nodeType":"FunctionDefinition","src":"581:314:56","nodes":[],"body":{"id":40380,"nodeType":"Block","src":"662:233:56","nodes":[],"statements":[{"assignments":[40360],"declarations":[{"constant":false,"id":40360,"mutability":"mutable","name":"payload","nameLocation":"685:7:56","nodeType":"VariableDeclaration","scope":40380,"src":"672:20:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40359,"name":"bytes","nodeType":"ElementaryTypeName","src":"672:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40372,"initialValue":{"arguments":[{"arguments":[{"id":40364,"name":"EAM_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40348,"src":"748:9:56","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"3230","id":40365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"767:2:56","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},{"arguments":[{"id":40368,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40353,"src":"796:4:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":40366,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"779:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"783:12:56","memberName":"encodePacked","nodeType":"MemberAccess","src":"779:16:56","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"779:22:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40363,"name":"DelegatedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48483,"src":"719:16:56","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$48483_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}},"id":40370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["737:9:56","759:6:56","771:6:56"],"names":["namespace","length","buffer"],"nodeType":"FunctionCall","src":"719:84:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$48483_memory_ptr","typeString":"struct DelegatedAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_DelegatedAddress_$48483_memory_ptr","typeString":"struct DelegatedAddress memory"}],"expression":{"id":40361,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"695:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"699:6:56","memberName":"encode","nodeType":"MemberAccess","src":"695:10:56","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"695:118:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"672:141:56"},{"expression":{"id":40378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40373,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40357,"src":"824:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":40375,"name":"DELEGATED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40345,"src":"859:9:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":40376,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40360,"src":"879:7:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40374,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"837:10:56","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FvmAddress_$48476_storage_ptr_$","typeString":"type(struct FvmAddress storage pointer)"}},"id":40377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["849:8:56","870:7:56"],"names":["addrType","payload"],"nodeType":"FunctionCall","src":"837:51:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"824:64:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40379,"nodeType":"ExpressionStatement","src":"824:64:56"}]},"documentation":{"id":40351,"nodeType":"StructuredDocumentation","src":"526:50:56","text":"@notice Creates a FvmAddress from address type"},"implemented":true,"kind":"function","modifiers":[],"name":"from","nameLocation":"590:4:56","parameters":{"id":40354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40353,"mutability":"mutable","name":"addr","nameLocation":"603:4:56","nodeType":"VariableDeclaration","scope":40381,"src":"595:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40352,"name":"address","nodeType":"ElementaryTypeName","src":"595:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"594:14:56"},"returnParameters":{"id":40358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40357,"mutability":"mutable","name":"fvmAddress","nameLocation":"650:10:56","nodeType":"VariableDeclaration","scope":40381,"src":"632:28:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40356,"nodeType":"UserDefinedTypeName","pathNode":{"id":40355,"name":"FvmAddress","nameLocations":["632:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"632:10:56"},"referencedDeclaration":48476,"src":"632:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"631:30:56"},"scope":40509,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40398,"nodeType":"FunctionDefinition","src":"953:135:56","nodes":[],"body":{"id":40397,"nodeType":"Block","src":"1031:57:56","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":40393,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40385,"src":"1069:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":40391,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1058:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1062:6:56","memberName":"encode","nodeType":"MemberAccess","src":"1058:10:56","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1058:22:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40390,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1048:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1048:33:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":40389,"id":40396,"nodeType":"Return","src":"1041:40:56"}]},"documentation":{"id":40382,"nodeType":"StructuredDocumentation","src":"901:47:56","text":"@notice Obtains the hash of the fvm address"},"implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"962:6:56","parameters":{"id":40386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40385,"mutability":"mutable","name":"fvmAddress","nameLocation":"987:10:56","nodeType":"VariableDeclaration","scope":40398,"src":"969:28:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40384,"nodeType":"UserDefinedTypeName","pathNode":{"id":40383,"name":"FvmAddress","nameLocations":["969:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"969:10:56"},"referencedDeclaration":48476,"src":"969:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"968:30:56"},"returnParameters":{"id":40389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40388,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40398,"src":"1022:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40387,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1022:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1021:9:56"},"scope":40509,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40435,"nodeType":"FunctionDefinition","src":"1148:258:56","nodes":[],"body":{"id":40434,"nodeType":"Block","src":"1234:172:56","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":40414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40410,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40402,"src":"1263:1:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1265:8:56","memberName":"addrType","nodeType":"MemberAccess","referencedDeclaration":48473,"src":"1263:10:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":40412,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40405,"src":"1277:1:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1279:8:56","memberName":"addrType","nodeType":"MemberAccess","referencedDeclaration":48473,"src":"1277:10:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1263:24:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40415,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40402,"src":"1303:1:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1305:7:56","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48475,"src":"1303:9:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1313:6:56","memberName":"length","nodeType":"MemberAccess","src":"1303:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":40418,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40405,"src":"1323:1:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1325:7:56","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48475,"src":"1323:9:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1333:6:56","memberName":"length","nodeType":"MemberAccess","src":"1323:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1303:36:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1263:76:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":40431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":40424,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40402,"src":"1365:1:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1367:7:56","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48475,"src":"1365:9:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40423,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1355:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1355:20:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":40428,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40405,"src":"1389:1:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1391:7:56","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48475,"src":"1389:9:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40427,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1379:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1379:20:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1355:44:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1263:136:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":40409,"id":40433,"nodeType":"Return","src":"1244:155:56"}]},"documentation":{"id":40399,"nodeType":"StructuredDocumentation","src":"1094:49:56","text":"@notice Checks if two fvm addresses are equal"},"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"1157:5:56","parameters":{"id":40406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40402,"mutability":"mutable","name":"a","nameLocation":"1181:1:56","nodeType":"VariableDeclaration","scope":40435,"src":"1163:19:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40401,"nodeType":"UserDefinedTypeName","pathNode":{"id":40400,"name":"FvmAddress","nameLocations":["1163:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"1163:10:56"},"referencedDeclaration":48476,"src":"1163:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":40405,"mutability":"mutable","name":"b","nameLocation":"1202:1:56","nodeType":"VariableDeclaration","scope":40435,"src":"1184:19:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40404,"nodeType":"UserDefinedTypeName","pathNode":{"id":40403,"name":"FvmAddress","nameLocations":["1184:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"1184:10:56"},"referencedDeclaration":48476,"src":"1184:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"1162:42:56"},"returnParameters":{"id":40409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40408,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40435,"src":"1228:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40407,"name":"bool","nodeType":"ElementaryTypeName","src":"1228:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1227:6:56"},"scope":40509,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40499,"nodeType":"FunctionDefinition","src":"1412:649:56","nodes":[],"body":{"id":40498,"nodeType":"Block","src":"1506:555:56","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":40446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40443,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40438,"src":"1520:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1531:8:56","memberName":"addrType","nodeType":"MemberAccess","referencedDeclaration":48473,"src":"1520:19:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":40445,"name":"DELEGATED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40345,"src":"1543:9:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1520:32:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40451,"nodeType":"IfStatement","src":"1516:94:56","trueBody":{"id":40450,"nodeType":"Block","src":"1554:56:56","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40447,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40350,"src":"1575:22:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1575:24:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40449,"nodeType":"RevertStatement","src":"1568:31:56"}]}},{"assignments":[40454],"declarations":[{"constant":false,"id":40454,"mutability":"mutable","name":"delegated","nameLocation":"1644:9:56","nodeType":"VariableDeclaration","scope":40498,"src":"1620:33:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$48483_memory_ptr","typeString":"struct DelegatedAddress"},"typeName":{"id":40453,"nodeType":"UserDefinedTypeName","pathNode":{"id":40452,"name":"DelegatedAddress","nameLocations":["1620:16:56"],"nodeType":"IdentifierPath","referencedDeclaration":48483,"src":"1620:16:56"},"referencedDeclaration":48483,"src":"1620:16:56","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$48483_storage_ptr","typeString":"struct DelegatedAddress"}},"visibility":"internal"}],"id":40462,"initialValue":{"arguments":[{"expression":{"id":40457,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40438,"src":"1667:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1678:7:56","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48475,"src":"1667:18:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":40459,"name":"DelegatedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48483,"src":"1688:16:56","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$48483_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}}],"id":40460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1687:18:56","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$48483_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$48483_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}],"expression":{"id":40455,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1656:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1660:6:56","memberName":"decode","nodeType":"MemberAccess","src":"1656:10:56","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":40461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1656:50:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$48483_memory_ptr","typeString":"struct DelegatedAddress memory"}},"nodeType":"VariableDeclarationStatement","src":"1620:86:56"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40463,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40454,"src":"1721:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$48483_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1731:9:56","memberName":"namespace","nodeType":"MemberAccess","referencedDeclaration":48478,"src":"1721:19:56","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":40465,"name":"EAM_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40348,"src":"1744:9:56","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"1721:32:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40471,"nodeType":"IfStatement","src":"1717:94:56","trueBody":{"id":40470,"nodeType":"Block","src":"1755:56:56","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40467,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40350,"src":"1776:22:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1776:24:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40469,"nodeType":"RevertStatement","src":"1769:31:56"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":40475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40472,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40454,"src":"1824:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$48483_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1834:6:56","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48480,"src":"1824:16:56","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3230","id":40474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1844:2:56","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1824:22:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40480,"nodeType":"IfStatement","src":"1820:84:56","trueBody":{"id":40479,"nodeType":"Block","src":"1848:56:56","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40476,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40350,"src":"1869:22:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1869:24:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40478,"nodeType":"RevertStatement","src":"1862:31:56"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40481,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40454,"src":"1917:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$48483_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1927:6:56","memberName":"buffer","nodeType":"MemberAccess","referencedDeclaration":48482,"src":"1917:16:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1934:6:56","memberName":"length","nodeType":"MemberAccess","src":"1917:23:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3230","id":40484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1944:2:56","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1917:29:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40490,"nodeType":"IfStatement","src":"1913:91:56","trueBody":{"id":40489,"nodeType":"Block","src":"1948:56:56","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40486,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40350,"src":"1969:22:56","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1969:24:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40488,"nodeType":"RevertStatement","src":"1962:31:56"}]}},{"expression":{"id":40496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40491,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40441,"src":"2014:4:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":40493,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40454,"src":"2037:9:56","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$48483_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2047:6:56","memberName":"buffer","nodeType":"MemberAccess","referencedDeclaration":48482,"src":"2037:16:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40492,"name":"_bytesToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40508,"src":"2021:15:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) pure returns (address)"}},"id":40495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2021:33:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2014:40:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40497,"nodeType":"ExpressionStatement","src":"2014:40:56"}]},"implemented":true,"kind":"function","modifiers":[],"name":"extractEvmAddress","nameLocation":"1421:17:56","parameters":{"id":40439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40438,"mutability":"mutable","name":"fvmAddress","nameLocation":"1457:10:56","nodeType":"VariableDeclaration","scope":40499,"src":"1439:28:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40437,"nodeType":"UserDefinedTypeName","pathNode":{"id":40436,"name":"FvmAddress","nameLocations":["1439:10:56"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"1439:10:56"},"referencedDeclaration":48476,"src":"1439:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"1438:30:56"},"returnParameters":{"id":40442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40441,"mutability":"mutable","name":"addr","nameLocation":"1500:4:56","nodeType":"VariableDeclaration","scope":40499,"src":"1492:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40440,"name":"address","nodeType":"ElementaryTypeName","src":"1492:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1491:14:56"},"scope":40509,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40508,"nodeType":"FunctionDefinition","src":"2067:192:56","nodes":[],"body":{"id":40507,"nodeType":"Block","src":"2146:113:56","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2202:51:56","statements":[{"nodeType":"YulAssignment","src":"2216:27:56","value":{"arguments":[{"arguments":[{"name":"bys","nodeType":"YulIdentifier","src":"2234:3:56"},{"kind":"number","nodeType":"YulLiteral","src":"2239:2:56","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2230:3:56"},"nodeType":"YulFunctionCall","src":"2230:12:56"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2224:5:56"},"nodeType":"YulFunctionCall","src":"2224:19:56"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"2216:4:56"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40504,"isOffset":false,"isSlot":false,"src":"2216:4:56","valueSize":1},{"declaration":40501,"isOffset":false,"isSlot":false,"src":"2234:3:56","valueSize":1}],"id":40506,"nodeType":"InlineAssembly","src":"2193:60:56"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bytesToAddress","nameLocation":"2076:15:56","parameters":{"id":40502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40501,"mutability":"mutable","name":"bys","nameLocation":"2105:3:56","nodeType":"VariableDeclaration","scope":40508,"src":"2092:16:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40500,"name":"bytes","nodeType":"ElementaryTypeName","src":"2092:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2091:18:56"},"returnParameters":{"id":40505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40504,"mutability":"mutable","name":"addr","nameLocation":"2140:4:56","nodeType":"VariableDeclaration","scope":40508,"src":"2132:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40503,"name":"address","nodeType":"ElementaryTypeName","src":"2132:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2131:14:56"},"scope":40509,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"FvmAddressHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":40334,"nodeType":"StructuredDocumentation","src":"144:42:56","text":"@title Helper library for Fil Address"},"fullyImplemented":true,"linearizedBaseContracts":[40509],"name":"FvmAddressHelper","nameLocation":"194:16:56","scope":40510,"usedErrors":[40350]}],"license":"MIT OR Apache-2.0"},"id":56} \ No newline at end of file +{"abi":[{"type":"function","name":"DELEGATED","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"EAM_ACTOR","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"PAYLOAD_HASH_LEN","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"SECP256K1","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"error","name":"NotDelegatedEvmAddress","inputs":[]}],"bytecode":{"object":"0x608080604052346100195760db908161001f823930815050f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c9081635279ff9914608c575080639c6e06c0146076578063ab528f211460605763cf8e4a6e14604857600080fd5b80600319360112605d57602060405160148152f35b80fd5b5080600319360112605d57602060405160018152f35b5080600319360112605d57602060405160048152f35b90508160031936011260a15780600a60209252f35b5080fdfea26469706673582212201bcbe64d2e452b2aae503400031b4c27a516824afd0fd7d363dedcf341af152464736f6c63430008130033","sourceMap":"186:2075:61:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c9081635279ff9914608c575080639c6e06c0146076578063ab528f211460605763cf8e4a6e14604857600080fd5b80600319360112605d57602060405160148152f35b80fd5b5080600319360112605d57602060405160018152f35b5080600319360112605d57602060405160048152f35b90508160031936011260a15780600a60209252f35b5080fdfea26469706673582212201bcbe64d2e452b2aae503400031b4c27a516824afd0fd7d363dedcf341af152464736f6c63430008130033","sourceMap":"186:2075:61:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;361:2;186:2075;;;;;;;;;;;;;;;;;;;313:1;186:2075;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;480:2;186:2075;;;;;;;","linkReferences":{}},"methodIdentifiers":{"DELEGATED()":"9c6e06c0","EAM_ACTOR()":"5279ff99","PAYLOAD_HASH_LEN()":"cf8e4a6e","SECP256K1()":"ab528f21"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"NotDelegatedEvmAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DELEGATED\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EAM_ACTOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAYLOAD_HASH_LEN\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SECP256K1\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for Fil Address\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DELEGATED()\":{\"notice\":\"For delegated FIL address\"},\"SECP256K1()\":{\"notice\":\"f1: SECP256K1 key address, 20 byte hash of PublicKey.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/FvmAddressHelper.sol\":\"FvmAddressHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"NotDelegatedEvmAddress"},{"inputs":[],"stateMutability":"view","type":"function","name":"DELEGATED","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"EAM_ACTOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PAYLOAD_HASH_LEN","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SECP256K1","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"DELEGATED()":{"notice":"For delegated FIL address"},"SECP256K1()":{"notice":"f1: SECP256K1 key address, 20 byte hash of PublicKey."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/FvmAddressHelper.sol":"FvmAddressHelper"},"libraries":{},"viaIR":true},"sources":{"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/FvmAddressHelper.sol","id":40963,"exportedSymbols":{"DelegatedAddress":[50005],"FvmAddress":[49998],"FvmAddressHelper":[40962]},"nodeType":"SourceUnit","src":"46:2216:61","nodes":[{"id":40783,"nodeType":"PragmaDirective","src":"46:23:61","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40786,"nodeType":"ImportDirective","src":"71:71:61","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":40963,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":40784,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"79:10:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40785,"name":"DelegatedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50005,"src":"91:16:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40962,"nodeType":"ContractDefinition","src":"186:2075:61","nodes":[{"id":40791,"nodeType":"VariableDeclaration","src":"279:35:61","nodes":[],"constant":true,"documentation":{"id":40788,"nodeType":"StructuredDocumentation","src":"217:57:61","text":"f1: SECP256K1 key address, 20 byte hash of PublicKey."},"functionSelector":"ab528f21","mutability":"constant","name":"SECP256K1","nameLocation":"301:9:61","scope":40962,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":40789,"name":"uint8","nodeType":"ElementaryTypeName","src":"279:5:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":40790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"313:1:61","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"id":40794,"nodeType":"VariableDeclaration","src":"320:43:61","nodes":[],"constant":true,"functionSelector":"cf8e4a6e","mutability":"constant","name":"PAYLOAD_HASH_LEN","nameLocation":"342:16:61","scope":40962,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":40792,"name":"uint8","nodeType":"ElementaryTypeName","src":"320:5:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":40793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"361:2:61","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"public"},{"id":40798,"nodeType":"VariableDeclaration","src":"404:35:61","nodes":[],"constant":true,"documentation":{"id":40795,"nodeType":"StructuredDocumentation","src":"370:29:61","text":"For delegated FIL address"},"functionSelector":"9c6e06c0","mutability":"constant","name":"DELEGATED","nameLocation":"426:9:61","scope":40962,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":40796,"name":"uint8","nodeType":"ElementaryTypeName","src":"404:5:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"34","id":40797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"438:1:61","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"public"},{"id":40801,"nodeType":"VariableDeclaration","src":"445:37:61","nodes":[],"constant":true,"functionSelector":"5279ff99","mutability":"constant","name":"EAM_ACTOR","nameLocation":"468:9:61","scope":40962,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":40799,"name":"uint64","nodeType":"ElementaryTypeName","src":"445:6:61","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":40800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"480:2:61","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"id":40803,"nodeType":"ErrorDefinition","src":"489:31:61","nodes":[],"errorSelector":"c5f8961f","name":"NotDelegatedEvmAddress","nameLocation":"495:22:61","parameters":{"id":40802,"nodeType":"ParameterList","parameters":[],"src":"517:2:61"}},{"id":40834,"nodeType":"FunctionDefinition","src":"581:314:61","nodes":[],"body":{"id":40833,"nodeType":"Block","src":"662:233:61","nodes":[],"statements":[{"assignments":[40813],"declarations":[{"constant":false,"id":40813,"mutability":"mutable","name":"payload","nameLocation":"685:7:61","nodeType":"VariableDeclaration","scope":40833,"src":"672:20:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40812,"name":"bytes","nodeType":"ElementaryTypeName","src":"672:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":40825,"initialValue":{"arguments":[{"arguments":[{"id":40817,"name":"EAM_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40801,"src":"748:9:61","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"3230","id":40818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"767:2:61","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},{"arguments":[{"id":40821,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40806,"src":"796:4:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":40819,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"779:3:61","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"783:12:61","memberName":"encodePacked","nodeType":"MemberAccess","src":"779:16:61","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"779:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40816,"name":"DelegatedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50005,"src":"719:16:61","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$50005_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}},"id":40823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["737:9:61","759:6:61","771:6:61"],"names":["namespace","length","buffer"],"nodeType":"FunctionCall","src":"719:84:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress memory"}],"expression":{"id":40814,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"695:3:61","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"699:6:61","memberName":"encode","nodeType":"MemberAccess","src":"695:10:61","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"695:118:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"672:141:61"},{"expression":{"id":40831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40826,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40810,"src":"824:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":40828,"name":"DELEGATED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40798,"src":"859:9:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":40829,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40813,"src":"879:7:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40827,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"837:10:61","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FvmAddress_$49998_storage_ptr_$","typeString":"type(struct FvmAddress storage pointer)"}},"id":40830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["849:8:61","870:7:61"],"names":["addrType","payload"],"nodeType":"FunctionCall","src":"837:51:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"824:64:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40832,"nodeType":"ExpressionStatement","src":"824:64:61"}]},"documentation":{"id":40804,"nodeType":"StructuredDocumentation","src":"526:50:61","text":"@notice Creates a FvmAddress from address type"},"implemented":true,"kind":"function","modifiers":[],"name":"from","nameLocation":"590:4:61","parameters":{"id":40807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40806,"mutability":"mutable","name":"addr","nameLocation":"603:4:61","nodeType":"VariableDeclaration","scope":40834,"src":"595:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40805,"name":"address","nodeType":"ElementaryTypeName","src":"595:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"594:14:61"},"returnParameters":{"id":40811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40810,"mutability":"mutable","name":"fvmAddress","nameLocation":"650:10:61","nodeType":"VariableDeclaration","scope":40834,"src":"632:28:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40809,"nodeType":"UserDefinedTypeName","pathNode":{"id":40808,"name":"FvmAddress","nameLocations":["632:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"632:10:61"},"referencedDeclaration":49998,"src":"632:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"631:30:61"},"scope":40962,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40851,"nodeType":"FunctionDefinition","src":"953:135:61","nodes":[],"body":{"id":40850,"nodeType":"Block","src":"1031:57:61","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":40846,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40838,"src":"1069:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":40844,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1058:3:61","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1062:6:61","memberName":"encode","nodeType":"MemberAccess","src":"1058:10:61","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":40847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1058:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40843,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1048:9:61","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1048:33:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":40842,"id":40849,"nodeType":"Return","src":"1041:40:61"}]},"documentation":{"id":40835,"nodeType":"StructuredDocumentation","src":"901:47:61","text":"@notice Obtains the hash of the fvm address"},"implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"962:6:61","parameters":{"id":40839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40838,"mutability":"mutable","name":"fvmAddress","nameLocation":"987:10:61","nodeType":"VariableDeclaration","scope":40851,"src":"969:28:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40837,"nodeType":"UserDefinedTypeName","pathNode":{"id":40836,"name":"FvmAddress","nameLocations":["969:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"969:10:61"},"referencedDeclaration":49998,"src":"969:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"968:30:61"},"returnParameters":{"id":40842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40851,"src":"1022:7:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40840,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1022:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1021:9:61"},"scope":40962,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40888,"nodeType":"FunctionDefinition","src":"1148:258:61","nodes":[],"body":{"id":40887,"nodeType":"Block","src":"1234:172:61","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":40875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":40867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40863,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40855,"src":"1263:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1265:8:61","memberName":"addrType","nodeType":"MemberAccess","referencedDeclaration":49995,"src":"1263:10:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":40865,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40858,"src":"1277:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1279:8:61","memberName":"addrType","nodeType":"MemberAccess","referencedDeclaration":49995,"src":"1277:10:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1263:24:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40868,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40855,"src":"1303:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1305:7:61","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":49997,"src":"1303:9:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1313:6:61","memberName":"length","nodeType":"MemberAccess","src":"1303:16:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":40871,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40858,"src":"1323:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1325:7:61","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":49997,"src":"1323:9:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1333:6:61","memberName":"length","nodeType":"MemberAccess","src":"1323:16:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1303:36:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1263:76:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":40884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":40877,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40855,"src":"1365:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1367:7:61","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":49997,"src":"1365:9:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40876,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1355:9:61","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1355:20:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":40881,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40858,"src":"1389:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1391:7:61","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":49997,"src":"1389:9:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40880,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1379:9:61","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1379:20:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1355:44:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1263:136:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":40862,"id":40886,"nodeType":"Return","src":"1244:155:61"}]},"documentation":{"id":40852,"nodeType":"StructuredDocumentation","src":"1094:49:61","text":"@notice Checks if two fvm addresses are equal"},"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"1157:5:61","parameters":{"id":40859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40855,"mutability":"mutable","name":"a","nameLocation":"1181:1:61","nodeType":"VariableDeclaration","scope":40888,"src":"1163:19:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40854,"nodeType":"UserDefinedTypeName","pathNode":{"id":40853,"name":"FvmAddress","nameLocations":["1163:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"1163:10:61"},"referencedDeclaration":49998,"src":"1163:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":40858,"mutability":"mutable","name":"b","nameLocation":"1202:1:61","nodeType":"VariableDeclaration","scope":40888,"src":"1184:19:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40857,"nodeType":"UserDefinedTypeName","pathNode":{"id":40856,"name":"FvmAddress","nameLocations":["1184:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"1184:10:61"},"referencedDeclaration":49998,"src":"1184:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"1162:42:61"},"returnParameters":{"id":40862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40888,"src":"1228:4:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40860,"name":"bool","nodeType":"ElementaryTypeName","src":"1228:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1227:6:61"},"scope":40962,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40952,"nodeType":"FunctionDefinition","src":"1412:649:61","nodes":[],"body":{"id":40951,"nodeType":"Block","src":"1506:555:61","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":40899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40896,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40891,"src":"1520:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1531:8:61","memberName":"addrType","nodeType":"MemberAccess","referencedDeclaration":49995,"src":"1520:19:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":40898,"name":"DELEGATED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40798,"src":"1543:9:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1520:32:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40904,"nodeType":"IfStatement","src":"1516:94:61","trueBody":{"id":40903,"nodeType":"Block","src":"1554:56:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40900,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40803,"src":"1575:22:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1575:24:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40902,"nodeType":"RevertStatement","src":"1568:31:61"}]}},{"assignments":[40907],"declarations":[{"constant":false,"id":40907,"mutability":"mutable","name":"delegated","nameLocation":"1644:9:61","nodeType":"VariableDeclaration","scope":40951,"src":"1620:33:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress"},"typeName":{"id":40906,"nodeType":"UserDefinedTypeName","pathNode":{"id":40905,"name":"DelegatedAddress","nameLocations":["1620:16:61"],"nodeType":"IdentifierPath","referencedDeclaration":50005,"src":"1620:16:61"},"referencedDeclaration":50005,"src":"1620:16:61","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_storage_ptr","typeString":"struct DelegatedAddress"}},"visibility":"internal"}],"id":40915,"initialValue":{"arguments":[{"expression":{"id":40910,"name":"fvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40891,"src":"1667:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":40911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1678:7:61","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":49997,"src":"1667:18:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":40912,"name":"DelegatedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50005,"src":"1688:16:61","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$50005_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}}],"id":40913,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1687:18:61","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$50005_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_DelegatedAddress_$50005_storage_ptr_$","typeString":"type(struct DelegatedAddress storage pointer)"}],"expression":{"id":40908,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1656:3:61","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":40909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1660:6:61","memberName":"decode","nodeType":"MemberAccess","src":"1656:10:61","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":40914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1656:50:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress memory"}},"nodeType":"VariableDeclarationStatement","src":"1620:86:61"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":40919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40916,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40907,"src":"1721:9:61","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1731:9:61","memberName":"namespace","nodeType":"MemberAccess","referencedDeclaration":50000,"src":"1721:19:61","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":40918,"name":"EAM_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40801,"src":"1744:9:61","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"1721:32:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40924,"nodeType":"IfStatement","src":"1717:94:61","trueBody":{"id":40923,"nodeType":"Block","src":"1755:56:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40920,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40803,"src":"1776:22:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1776:24:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40922,"nodeType":"RevertStatement","src":"1769:31:61"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":40928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40925,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40907,"src":"1824:9:61","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1834:6:61","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50002,"src":"1824:16:61","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3230","id":40927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1844:2:61","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1824:22:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40933,"nodeType":"IfStatement","src":"1820:84:61","trueBody":{"id":40932,"nodeType":"Block","src":"1848:56:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40929,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40803,"src":"1869:22:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1869:24:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40931,"nodeType":"RevertStatement","src":"1862:31:61"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":40934,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40907,"src":"1917:9:61","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1927:6:61","memberName":"buffer","nodeType":"MemberAccess","referencedDeclaration":50004,"src":"1917:16:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":40936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1934:6:61","memberName":"length","nodeType":"MemberAccess","src":"1917:23:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3230","id":40937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1944:2:61","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"1917:29:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40943,"nodeType":"IfStatement","src":"1913:91:61","trueBody":{"id":40942,"nodeType":"Block","src":"1948:56:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40939,"name":"NotDelegatedEvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40803,"src":"1969:22:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1969:24:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40941,"nodeType":"RevertStatement","src":"1962:31:61"}]}},{"expression":{"id":40949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40944,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40894,"src":"2014:4:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":40946,"name":"delegated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40907,"src":"2037:9:61","typeDescriptions":{"typeIdentifier":"t_struct$_DelegatedAddress_$50005_memory_ptr","typeString":"struct DelegatedAddress memory"}},"id":40947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2047:6:61","memberName":"buffer","nodeType":"MemberAccess","referencedDeclaration":50004,"src":"2037:16:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40945,"name":"_bytesToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40961,"src":"2021:15:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) pure returns (address)"}},"id":40948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2021:33:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2014:40:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40950,"nodeType":"ExpressionStatement","src":"2014:40:61"}]},"implemented":true,"kind":"function","modifiers":[],"name":"extractEvmAddress","nameLocation":"1421:17:61","parameters":{"id":40892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40891,"mutability":"mutable","name":"fvmAddress","nameLocation":"1457:10:61","nodeType":"VariableDeclaration","scope":40952,"src":"1439:28:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40890,"nodeType":"UserDefinedTypeName","pathNode":{"id":40889,"name":"FvmAddress","nameLocations":["1439:10:61"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"1439:10:61"},"referencedDeclaration":49998,"src":"1439:10:61","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"1438:30:61"},"returnParameters":{"id":40895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40894,"mutability":"mutable","name":"addr","nameLocation":"1500:4:61","nodeType":"VariableDeclaration","scope":40952,"src":"1492:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40893,"name":"address","nodeType":"ElementaryTypeName","src":"1492:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1491:14:61"},"scope":40962,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40961,"nodeType":"FunctionDefinition","src":"2067:192:61","nodes":[],"body":{"id":40960,"nodeType":"Block","src":"2146:113:61","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2202:51:61","statements":[{"nodeType":"YulAssignment","src":"2216:27:61","value":{"arguments":[{"arguments":[{"name":"bys","nodeType":"YulIdentifier","src":"2234:3:61"},{"kind":"number","nodeType":"YulLiteral","src":"2239:2:61","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2230:3:61"},"nodeType":"YulFunctionCall","src":"2230:12:61"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2224:5:61"},"nodeType":"YulFunctionCall","src":"2224:19:61"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"2216:4:61"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40957,"isOffset":false,"isSlot":false,"src":"2216:4:61","valueSize":1},{"declaration":40954,"isOffset":false,"isSlot":false,"src":"2234:3:61","valueSize":1}],"id":40959,"nodeType":"InlineAssembly","src":"2193:60:61"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bytesToAddress","nameLocation":"2076:15:61","parameters":{"id":40955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40954,"mutability":"mutable","name":"bys","nameLocation":"2105:3:61","nodeType":"VariableDeclaration","scope":40961,"src":"2092:16:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40953,"name":"bytes","nodeType":"ElementaryTypeName","src":"2092:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2091:18:61"},"returnParameters":{"id":40958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40957,"mutability":"mutable","name":"addr","nameLocation":"2140:4:61","nodeType":"VariableDeclaration","scope":40961,"src":"2132:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40956,"name":"address","nodeType":"ElementaryTypeName","src":"2132:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2131:14:61"},"scope":40962,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"FvmAddressHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":40787,"nodeType":"StructuredDocumentation","src":"144:42:61","text":"@title Helper library for Fil Address"},"fullyImplemented":true,"linearizedBaseContracts":[40962],"name":"FvmAddressHelper","nameLocation":"194:16:61","scope":40963,"usedErrors":[40803]}],"license":"MIT OR Apache-2.0"},"id":61} \ No newline at end of file diff --git a/.out/FvmAddressHelper.sol/FvmAddressHelperTest.json b/.out/FvmAddressHelper.sol/FvmAddressHelperTest.json index 2d8abd5dd..d01606be1 100644 --- a/.out/FvmAddressHelper.sol/FvmAddressHelperTest.json +++ b/.out/FvmAddressHelper.sol/FvmAddressHelperTest.json @@ -1 +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":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"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":"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":"0x6080806040523461002d57600160ff19818160005416176000556004541617600455610c8e90816100338239f35b600080fdfe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220a40f690e0238a1c7609375d7081de33a8e66284b3a638580955381c8d1d988c364736f6c63430008130033","sourceMap":"240:611:83:-:0;;;;;;;1594:4:2;240:611:83;;;;1594:4:2;240:611:83;;;1594:4:2;240:611:83;3201:4:5;240:611:83;;;3201:4:5;240:611:83;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220a40f690e0238a1c7609375d7081de33a8e66284b3a638580955381c8d1d988c364736f6c63430008130033","sourceMap":"240:611:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;240:611:83;;;;:::i;:::-;;1671:64:2;240:611:83;;1671:64:2;;;:::i;:::-;240:611:83;;;1982:18:8;240:611:83;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;240:611:83;;;;;;;;-1:-1:-1;240:611:83;;;;;-1:-1:-1;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;240:611:83;;;;;-1:-1:-1;240:611:83;;;;;;;;;-1:-1:-1;240:611:83;;;;-1:-1:-1;;;;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;240:611:83;;;;:::i;:::-;;1671:64:2;240:611:83;;1671:64:2;;;:::i;:::-;240:611:83;;;2899:18:8;240:611:83;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;240:611:83;;-1:-1:-1;;;;;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:83;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:83;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:83;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:83;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:83;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:83;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:83;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;240:611:83;;;;:::i;:::-;;1671:64:2;240:611:83;;1671:64:2;;;:::i;:::-;240:611:83;;;2416:18:8;240:611:83;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;240:611:83;;;;;;;;-1:-1:-1;240:611:83;;;;;-1:-1:-1;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;240:611:83;;;;;-1:-1:-1;240:611:83;;;;;;;;;-1:-1:-1;240:611:83;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;240:611:83;;;;:::i;:::-;;1671:64:2;240:611:83;;1671:64:2;;;:::i;:::-;240:611:83;;;2592:26:8;240:611:83;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;240:611:83;;-1:-1:-1;;;;;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;240:611:83;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;240:611:83;;;;;;;;;;;;;;;;;1671:64:2;240:611:83;1671:64:2;;;;;;;;;;;240:611:83;1671:64:2;:::o;:::-;240:611:83;;;1671:64:2;;;;;;;;;;240:611:83;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;240:611:83;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;240:611:83;;;2196:43:2;;;240:611:83;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;240:611:83;;-1:-1:-1;1671:64:2;;240:611:83;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;240:611:83;1671:64:2;2086:175;;;240:611:83;;;;;;1671:64:2;240:611:83;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;240:611:83;;;1671:64:2;240:611:83;;;-1:-1:-1;;240:611:83;2196:43:2;1671:64;240:611:83;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;240:611:83;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;240:611:83;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;240:611:83;1671:64:2;;;240:611:83;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;240:611:83;1671:64:2;240:611:83;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"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\":\"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/helpers/FvmAddressHelper.sol\":\"FvmAddressHelperTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"test/helpers/FvmAddressHelper.sol\":{\"keccak256\":\"0xbede06413d4a097bac615f0039e902a4b5d0328b90ae3aa89f9f9330cabea876\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a1d5b00ee114b365f522530a9ea98b1a961990ce56b0fe247728314c102c2985\",\"dweb:/ipfs/QmakeS6THFnWeFmn54rtjf2KuueK162Xf5FPN3Y4iFzoUv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"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":"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/FvmAddressHelper.sol":"FvmAddressHelperTest"},"libraries":{},"viaIR":true},"sources":{"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"test/helpers/FvmAddressHelper.sol":{"keccak256":"0xbede06413d4a097bac615f0039e902a4b5d0328b90ae3aa89f9f9330cabea876","urls":["bzz-raw://a1d5b00ee114b365f522530a9ea98b1a961990ce56b0fe247728314c102c2985","dweb:/ipfs/QmakeS6THFnWeFmn54rtjf2KuueK162Xf5FPN3Y4iFzoUv"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/FvmAddressHelper.sol","id":54156,"exportedSymbols":{"DSTest":[3720],"DelegatedAddress":[48483],"FvmAddress":[48476],"FvmAddressHelper":[40509],"FvmAddressHelperTest":[54155],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"Test":[12740],"TestBase":[3780],"Vm":[14222],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:806:83","nodes":[{"id":54061,"nodeType":"PragmaDirective","src":"46:23:83","nodes":[],"literals":["solidity","0.8",".19"]},{"id":54062,"nodeType":"ImportDirective","src":"71:28:83","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":54156,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":54063,"nodeType":"ImportDirective","src":"100:31:83","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":54156,"sourceUnit":22287,"symbolAliases":[],"unitAlias":""},{"id":54064,"nodeType":"ImportDirective","src":"133:44:83","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":54156,"sourceUnit":40510,"symbolAliases":[],"unitAlias":""},{"id":54066,"nodeType":"ImportDirective","src":"178:60:83","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":54156,"sourceUnit":48484,"symbolAliases":[{"foreign":{"id":54065,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"186:10:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54155,"nodeType":"ContractDefinition","src":"240:611:83","nodes":[{"id":54072,"nodeType":"UsingForDirective","src":"284:38:83","nodes":[],"global":false,"libraryName":{"id":54069,"name":"FvmAddressHelper","nameLocations":["290:16:83"],"nodeType":"IdentifierPath","referencedDeclaration":40509,"src":"290:16:83"},"typeName":{"id":54071,"nodeType":"UserDefinedTypeName","pathNode":{"id":54070,"name":"FvmAddress","nameLocations":["311:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"311:10:83"},"referencedDeclaration":48476,"src":"311:10:83","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}}},{"id":54154,"nodeType":"FunctionDefinition","src":"328:521:83","nodes":[],"body":{"id":54153,"nodeType":"Block","src":"403:446:83","nodes":[],"statements":[{"assignments":[54080],"declarations":[{"constant":false,"id":54080,"mutability":"mutable","name":"converted","nameLocation":"482:9:83","nodeType":"VariableDeclaration","scope":54153,"src":"469:22:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54079,"name":"bytes","nodeType":"ElementaryTypeName","src":"469:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":54088,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54083,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54074,"src":"504:6:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"511:6:83","memberName":"length","nodeType":"MemberAccess","src":"504:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":54085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"520:1:83","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"504:17:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"494:9:83","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54081,"name":"bytes","nodeType":"ElementaryTypeName","src":"498:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"494:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"469:53:83"},{"assignments":[54090],"declarations":[{"constant":false,"id":54090,"mutability":"mutable","name":"_base","nameLocation":"546:5:83","nodeType":"VariableDeclaration","scope":54153,"src":"533:18:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54089,"name":"bytes","nodeType":"ElementaryTypeName","src":"533:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":54092,"initialValue":{"hexValue":"30313233343536373839616263646566","id":54091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"554:18:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"nodeType":"VariableDeclarationStatement","src":"533:39:83"},{"body":{"id":54142,"nodeType":"Block","src":"627:157:83","statements":[{"expression":{"id":54120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54104,"name":"converted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54080,"src":"641:9:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54108,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54105,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54094,"src":"651:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":54106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"655:1:83","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"651:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"641:16:83","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":54109,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54090,"src":"660:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54119,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":54112,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54074,"src":"672:6:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54114,"indexExpression":{"id":54113,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54094,"src":"679:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"672:9:83","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":54111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"666:5:83","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":54110,"name":"uint8","nodeType":"ElementaryTypeName","src":"666:5:83","typeDescriptions":{}}},"id":54115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"666:16:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"id":54116,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54090,"src":"685:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"691:6:83","memberName":"length","nodeType":"MemberAccess","src":"685:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"666:31:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"660:38:83","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"641:57:83","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":54121,"nodeType":"ExpressionStatement","src":"641:57:83"},{"expression":{"id":54140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54122,"name":"converted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54080,"src":"712:9:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54128,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54123,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54094,"src":"722:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":54124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"726:1:83","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"722:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"730:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"722:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"712:20:83","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":54129,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54090,"src":"735:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54139,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":54132,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54074,"src":"747:6:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54134,"indexExpression":{"id":54133,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54094,"src":"754:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"747:9:83","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":54131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"741:5:83","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":54130,"name":"uint8","nodeType":"ElementaryTypeName","src":"741:5:83","typeDescriptions":{}}},"id":54135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"741:16:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":54136,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54090,"src":"760:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"766:6:83","memberName":"length","nodeType":"MemberAccess","src":"760:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"741:31:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"735:38:83","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"712:61:83","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":54141,"nodeType":"ExpressionStatement","src":"712:61:83"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54097,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54094,"src":"603:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":54098,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54074,"src":"607:6:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"614:6:83","memberName":"length","nodeType":"MemberAccess","src":"607:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"603:17:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54143,"initializationExpression":{"assignments":[54094],"declarations":[{"constant":false,"id":54094,"mutability":"mutable","name":"i","nameLocation":"596:1:83","nodeType":"VariableDeclaration","scope":54143,"src":"588:9:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54093,"name":"uint256","nodeType":"ElementaryTypeName","src":"588:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54096,"initialValue":{"hexValue":"30","id":54095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"600:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"588:13:83"},"loopExpression":{"expression":{"id":54102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"622:3:83","subExpression":{"id":54101,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54094,"src":"622:1:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54103,"nodeType":"ExpressionStatement","src":"622:3:83"},"nodeType":"ForStatement","src":"583:201:83"},{"expression":{"arguments":[{"arguments":[{"hexValue":"3078","id":54148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"825:4:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837","typeString":"literal_string \"0x\""},"value":"0x"},{"id":54149,"name":"converted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54080,"src":"831:9:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837","typeString":"literal_string \"0x\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54146,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"808:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"812:12:83","memberName":"encodePacked","nodeType":"MemberAccess","src":"808:16:83","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"808:33:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"801:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":54144,"name":"string","nodeType":"ElementaryTypeName","src":"801:6:83","typeDescriptions":{}}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"801:41:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":54078,"id":54152,"nodeType":"Return","src":"794:48:83"}]},"implemented":true,"kind":"function","modifiers":[],"name":"iToHex","nameLocation":"337:6:83","parameters":{"id":54075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54074,"mutability":"mutable","name":"buffer","nameLocation":"357:6:83","nodeType":"VariableDeclaration","scope":54154,"src":"344:19:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54073,"name":"bytes","nodeType":"ElementaryTypeName","src":"344:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"343:21:83"},"returnParameters":{"id":54078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54077,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54154,"src":"388:13:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":54076,"name":"string","nodeType":"ElementaryTypeName","src":"388:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"387:15:83"},"scope":54155,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":54067,"name":"Test","nameLocations":["273:4:83"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"273:4:83"},"id":54068,"nodeType":"InheritanceSpecifier","src":"273:4:83"}],"canonicalName":"FvmAddressHelperTest","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54155,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"FvmAddressHelperTest","nameLocation":"249:20:83","scope":54156,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":83} \ No newline at end of file +{"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":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"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":"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":"0x6080806040523461002d57600160ff19818160005416176000556004541617600455610c8e90816100338239f35b600080fdfe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220a40f690e0238a1c7609375d7081de33a8e66284b3a638580955381c8d1d988c364736f6c63430008130033","sourceMap":"240:611:91:-:0;;;;;;;1594:4:2;240:611:91;;;;1594:4:2;240:611:91;;;1594:4:2;240:611:91;3201:4:5;240:611:91;;;3201:4:5;240:611:91;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220a40f690e0238a1c7609375d7081de33a8e66284b3a638580955381c8d1d988c364736f6c63430008130033","sourceMap":"240:611:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;240:611:91;;;;:::i;:::-;;1671:64:2;240:611:91;;1671:64:2;;;:::i;:::-;240:611:91;;;1982:18:8;240:611:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;240:611:91;;;;;;;;-1:-1:-1;240:611:91;;;;;-1:-1:-1;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;240:611:91;;;;;-1:-1:-1;240:611:91;;;;;;;;;-1:-1:-1;240:611:91;;;;-1:-1:-1;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;240:611:91;;;;:::i;:::-;;1671:64:2;240:611:91;;1671:64:2;;;:::i;:::-;240:611:91;;;2899:18:8;240:611:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;240:611:91;;-1:-1:-1;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;240:611:91;;;;:::i;:::-;;1671:64:2;240:611:91;;1671:64:2;;;:::i;:::-;240:611:91;;;2416:18:8;240:611:91;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;240:611:91;;;;;;;;-1:-1:-1;240:611:91;;;;;-1:-1:-1;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;240:611:91;;;;;-1:-1:-1;240:611:91;;;;;;;;;-1:-1:-1;240:611:91;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;240:611:91;;;;:::i;:::-;;1671:64:2;240:611:91;;1671:64:2;;;:::i;:::-;240:611:91;;;2592:26:8;240:611:91;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;240:611:91;;-1:-1:-1;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;240:611:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;240:611:91;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;240:611:91;;;;;;;;;;;;;;;;;1671:64:2;240:611:91;1671:64:2;;;;;;;;;;;240:611:91;1671:64:2;:::o;:::-;240:611:91;;;1671:64:2;;;;;;;;;;240:611:91;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;240:611:91;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;240:611:91;;;2196:43:2;;;240:611:91;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;240:611:91;;-1:-1:-1;1671:64:2;;240:611:91;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;240:611:91;1671:64:2;2086:175;;;240:611:91;;;;;;1671:64:2;240:611:91;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;240:611:91;;;1671:64:2;240:611:91;;;-1:-1:-1;;240:611:91;2196:43:2;1671:64;240:611:91;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;240:611:91;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;240:611:91;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;240:611:91;1671:64:2;;;240:611:91;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;240:611:91;1671:64:2;240:611:91;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"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\":\"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/helpers/FvmAddressHelper.sol\":\"FvmAddressHelperTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"test/helpers/FvmAddressHelper.sol\":{\"keccak256\":\"0xbede06413d4a097bac615f0039e902a4b5d0328b90ae3aa89f9f9330cabea876\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a1d5b00ee114b365f522530a9ea98b1a961990ce56b0fe247728314c102c2985\",\"dweb:/ipfs/QmakeS6THFnWeFmn54rtjf2KuueK162Xf5FPN3Y4iFzoUv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"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":"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/FvmAddressHelper.sol":"FvmAddressHelperTest"},"libraries":{},"viaIR":true},"sources":{"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"test/helpers/FvmAddressHelper.sol":{"keccak256":"0xbede06413d4a097bac615f0039e902a4b5d0328b90ae3aa89f9f9330cabea876","urls":["bzz-raw://a1d5b00ee114b365f522530a9ea98b1a961990ce56b0fe247728314c102c2985","dweb:/ipfs/QmakeS6THFnWeFmn54rtjf2KuueK162Xf5FPN3Y4iFzoUv"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/FvmAddressHelper.sol","id":55552,"exportedSymbols":{"DSTest":[3720],"DelegatedAddress":[50005],"FvmAddress":[49998],"FvmAddressHelper":[40962],"FvmAddressHelperTest":[55551],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"Test":[12740],"TestBase":[3780],"Vm":[14222],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:806:91","nodes":[{"id":55457,"nodeType":"PragmaDirective","src":"46:23:91","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55458,"nodeType":"ImportDirective","src":"71:28:91","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55552,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":55459,"nodeType":"ImportDirective","src":"100:31:91","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":55552,"sourceUnit":22287,"symbolAliases":[],"unitAlias":""},{"id":55460,"nodeType":"ImportDirective","src":"133:44:91","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55552,"sourceUnit":40963,"symbolAliases":[],"unitAlias":""},{"id":55462,"nodeType":"ImportDirective","src":"178:60:91","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55552,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":55461,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"186:10:91","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55551,"nodeType":"ContractDefinition","src":"240:611:91","nodes":[{"id":55468,"nodeType":"UsingForDirective","src":"284:38:91","nodes":[],"global":false,"libraryName":{"id":55465,"name":"FvmAddressHelper","nameLocations":["290:16:91"],"nodeType":"IdentifierPath","referencedDeclaration":40962,"src":"290:16:91"},"typeName":{"id":55467,"nodeType":"UserDefinedTypeName","pathNode":{"id":55466,"name":"FvmAddress","nameLocations":["311:10:91"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"311:10:91"},"referencedDeclaration":49998,"src":"311:10:91","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}}},{"id":55550,"nodeType":"FunctionDefinition","src":"328:521:91","nodes":[],"body":{"id":55549,"nodeType":"Block","src":"403:446:91","nodes":[],"statements":[{"assignments":[55476],"declarations":[{"constant":false,"id":55476,"mutability":"mutable","name":"converted","nameLocation":"482:9:91","nodeType":"VariableDeclaration","scope":55549,"src":"469:22:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55475,"name":"bytes","nodeType":"ElementaryTypeName","src":"469:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55484,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55479,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55470,"src":"504:6:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"511:6:91","memberName":"length","nodeType":"MemberAccess","src":"504:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":55481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"520:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"504:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"494:9:91","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":55477,"name":"bytes","nodeType":"ElementaryTypeName","src":"498:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":55483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"494:28:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"469:53:91"},{"assignments":[55486],"declarations":[{"constant":false,"id":55486,"mutability":"mutable","name":"_base","nameLocation":"546:5:91","nodeType":"VariableDeclaration","scope":55549,"src":"533:18:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55485,"name":"bytes","nodeType":"ElementaryTypeName","src":"533:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55488,"initialValue":{"hexValue":"30313233343536373839616263646566","id":55487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"554:18:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"nodeType":"VariableDeclarationStatement","src":"533:39:91"},{"body":{"id":55538,"nodeType":"Block","src":"627:157:91","statements":[{"expression":{"id":55516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55500,"name":"converted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55476,"src":"641:9:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55504,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55501,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"651:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":55502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"655:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"651:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"641:16:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":55505,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"660:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55515,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":55508,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55470,"src":"672:6:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55510,"indexExpression":{"id":55509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"679:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"672:9:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":55507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"666:5:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":55506,"name":"uint8","nodeType":"ElementaryTypeName","src":"666:5:91","typeDescriptions":{}}},"id":55511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"666:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"id":55512,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"685:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"691:6:91","memberName":"length","nodeType":"MemberAccess","src":"685:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"666:31:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"660:38:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"641:57:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":55517,"nodeType":"ExpressionStatement","src":"641:57:91"},{"expression":{"id":55536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55518,"name":"converted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55476,"src":"712:9:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55524,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55519,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"722:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":55520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"726:1:91","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"722:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"730:1:91","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"722:9:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"712:20:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":55525,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"735:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55535,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":55528,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55470,"src":"747:6:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55530,"indexExpression":{"id":55529,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"754:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"747:9:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":55527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"741:5:91","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":55526,"name":"uint8","nodeType":"ElementaryTypeName","src":"741:5:91","typeDescriptions":{}}},"id":55531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"741:16:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":55532,"name":"_base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55486,"src":"760:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"766:6:91","memberName":"length","nodeType":"MemberAccess","src":"760:12:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"741:31:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"735:38:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"712:61:91","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":55537,"nodeType":"ExpressionStatement","src":"712:61:91"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55493,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"603:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":55494,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55470,"src":"607:6:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"614:6:91","memberName":"length","nodeType":"MemberAccess","src":"607:13:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"603:17:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55539,"initializationExpression":{"assignments":[55490],"declarations":[{"constant":false,"id":55490,"mutability":"mutable","name":"i","nameLocation":"596:1:91","nodeType":"VariableDeclaration","scope":55539,"src":"588:9:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55489,"name":"uint256","nodeType":"ElementaryTypeName","src":"588:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55492,"initialValue":{"hexValue":"30","id":55491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"600:1:91","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"588:13:91"},"loopExpression":{"expression":{"id":55498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"622:3:91","subExpression":{"id":55497,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55490,"src":"622:1:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55499,"nodeType":"ExpressionStatement","src":"622:3:91"},"nodeType":"ForStatement","src":"583:201:91"},{"expression":{"arguments":[{"arguments":[{"hexValue":"3078","id":55544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"825:4:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837","typeString":"literal_string \"0x\""},"value":"0x"},{"id":55545,"name":"converted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55476,"src":"831:9:91","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837","typeString":"literal_string \"0x\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":55542,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"808:3:91","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"812:12:91","memberName":"encodePacked","nodeType":"MemberAccess","src":"808:16:91","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"808:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"801:6:91","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":55540,"name":"string","nodeType":"ElementaryTypeName","src":"801:6:91","typeDescriptions":{}}},"id":55547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"801:41:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":55474,"id":55548,"nodeType":"Return","src":"794:48:91"}]},"implemented":true,"kind":"function","modifiers":[],"name":"iToHex","nameLocation":"337:6:91","parameters":{"id":55471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55470,"mutability":"mutable","name":"buffer","nameLocation":"357:6:91","nodeType":"VariableDeclaration","scope":55550,"src":"344:19:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55469,"name":"bytes","nodeType":"ElementaryTypeName","src":"344:5:91","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"343:21:91"},"returnParameters":{"id":55474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55550,"src":"388:13:91","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55472,"name":"string","nodeType":"ElementaryTypeName","src":"388:6:91","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"387:15:91"},"scope":55551,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":55463,"name":"Test","nameLocations":["273:4:91"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"273:4:91"},"id":55464,"nodeType":"InheritanceSpecifier","src":"273:4:91"}],"canonicalName":"FvmAddressHelperTest","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55551,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"FvmAddressHelperTest","nameLocation":"249:20:91","scope":55552,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":91} \ No newline at end of file diff --git a/.out/GatewayDiamond.sol/GatewayDiamond.json b/.out/GatewayDiamond.sol/GatewayDiamond.json index 4bde421c1..dfb567bd7 100644 --- a/.out/GatewayDiamond.sol/GatewayDiamond.json +++ b/.out/GatewayDiamond.sol/GatewayDiamond.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"params","type":"tuple","internalType":"struct GatewayDiamond.ConstructorParams","components":[{"name":"networkName","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"bottomUpCheckPeriod","type":"uint256","internalType":"uint256"},{"name":"minCollateral","type":"uint256","internalType":"uint256"},{"name":"msgFee","type":"uint256","internalType":"uint256"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"genesisValidators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"}]}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"FunctionNotFound","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidMajorityPercentage","inputs":[]},{"type":"error","name":"InvalidSubmissionPeriod","inputs":[]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"OldConfigurationNumber","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60806040523462000cb55762001b8c80380380916200002082608062000f1e565b6080396040811262000cb5576080516001600160401b03811162000cb55760808201609f8201121562000cb5578060800151906200005e8262000f42565b916200006e604051938462000f1e565b8083526020830180928560800160208460051b8360800101011162000cb55760a08101915b60a0600585901b830101831062000ddc57505060a0519150506001600160401b03811162000cb55760e08185031262000cb5576040519360e085016001600160401b03811186821017620005a857604081905260808301516001600160401b03811162000cb557836080010160408184608001031262000cb557620001188262000f02565b80516001600160401b038116810362000cb55782526020810151906001600160401b03821162000cb5570182608001601f8201121562000cb557805190620001608262000f42565b9162000170604051938462000f1e565b80835260208084019160051b8301019185608001831162000cb557602001905b82821062000dc1575050506101008781019190915290865260a0830151602087015260c0830151604087015260e0830151606087015282015160ff8116810362000cb55760808601526101208201516001600160401b03811162000cb55760808201609f84830101121562000cb55780836080010151620002118162000f42565b9262000221604051948562000f1e565b818452602084016080820160a0878601600586901b01011162000cb55760a086850101905b60a0878601600586901b0101821062000cba5789898960c08a8a60a0860152608001015161ffff8116810362000cb55760c084015260408301511562000ca35760208301511562000c915760ff6080840151166033811090811562000c85575b5062000c73577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b036020820190811190821117620005a8576020810160405260008152825160005b818110620006185750506040519260608401906060855251809152608084019060808160051b86010193916000905b828210620005be57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806200037e8a8a60006020850152838203604085015262001026565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549091169091179055602c805464ffffffffff1916600217905581518051601980546001600160401b0319166001600160401b039283161790559101518051918211620005a857680100000000000000008211620005a857602090601a5483601a5580841062000587575b5001601a600052602060002060005b83811062000569576200055960a0866040810151601b556020810151601e556060810151601c5560ff60808201511660ff19601d541617601d556001600b5560016012556064601f55600a60018060401b0319602054161760205560c081015162ffff006021549160081b169062ffff001916176021556801000000000000000160018060801b0319602a541617602a550151604051906200054a8262000f02565b815260006020820152620013fe565b604051610133908162001a198239f35b82516001600160a01b031681830155602090920191600101620004a8565b620005a190601a6000528484600020918201910162000f94565b8462000499565b634e487b7160e01b600052604160045260246000fd5b9091929460208062000609600193607f198b8203018652606060408b51878060a01b038151168452620005f8868201518786019062000fd8565b015191816040820152019062000fe6565b97019201920190929162000337565b604062000626828762000fad565b5101516001600160a01b036200063d838862000fad565b5151169080511562000c5a57602062000657848962000fad565b510151600381101562000c4457806200088157508115620008565761ffff60008051602062001b4c8339815191525416620006d4604051620006998162000ee6565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b6040820152846200107f565b8151916000915b838310620006f35750505050506001905b0162000308565b6001600160e01b031962000708848462000fad565b5116600081815260008051602062001b6c83398151915260205260409020549091906001600160a01b03166200083d57620007ab6040516200074a8162000f02565b87815261ffff929092166020808401828152600086815260008051602062001b6c83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b4c833981519152549168010000000000000000831015620005a8576200081290620007f560019485810160008051602062001b4c833981519152556200104d565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000827578101920191620006db565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200087d90602483019062000fe6565b0390fd5b60018103620009fa57508115620009d357620008e6604051620008a48162000ee6565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b6040820152836200107f565b80519060005b828110620009015750505050600190620006ec565b6001600160e01b031962000916828462000fad565b5116600081815260008051602062001b6c83398151915260205260409020546001600160a01b0316308114620009ba57858114620009a157156200098957600090815260008051602062001b6c8339815191526020526040902080546001600160a01b03191685179055600101620008ec565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200087d90602483019062000fe6565b6002810362000c22575060008051602062001b4c83398151915254918062000c0a575080519060005b82811062000a385750505050600190620006ec565b6001600160e01b031962000a4d828462000fad565b5116908160005260008051602062001b6c8339815191526020526040600020946040519562000a7c8762000f02565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bf15785516001600160a01b0316301462000bd8578015620008275760001901948561ffff6020830151160362000b55575b5060008051602062001b4c8339815191525491821562000b3f576001926000190162000afa816200104d565b63ffffffff82549160031b1b1916905560008051602062001b4c8339815191525560005260008051602062001b6c833981519152602052600060408120550162000a23565b634e487b7160e01b600052603160045260246000fd5b62000bd19061ffff602062000b6a896200104d565b90549060031b1c60e01b9262000b8a84620007f58585850151166200104d565b01516001600160e01b0319909216600090815260008051602062001b6c83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000ace565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c4290600483019062000fd8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b606491501184620002a6565b60405163312f8e0560e01b8152600490fd5b6040516368f7a67560e11b8152600490fd5b600080fd5b8151906001600160401b03821162000cb557606088870183018503601f19011262000cb5576040519162000cee8362000ee6565b868901810160a0810151845262000d089060c00162000f5a565b602084015260e089880182010151906001600160401b03821162000cb557878a6080010101019084608001603f8301121562000cb5576020820151906001600160401b03821162000dac576040519362000d6d601f8401601f19166020018662000f1e565b828552866080016040848601011162000cb5578462000d99602096948796604088809801910162000f6f565b6040820152815201920191905062000246565b60246000634e487b7160e01b81526041600452fd5b6020809162000dd08462000f5a565b81520191019062000190565b82516001600160401b03811162000cb557606090830160808101908903601f1901821362000cb5576040519162000e138362000ee6565b62000e216020830162000f5a565b83526040820151600381101562000cb5576020840152810151906001600160401b03821162000cb5570188608001603f8201121562000cb55760208101519062000e6b8262000f42565b9162000e7b604051938462000f1e565b808352602083018b60800160408360051b8501011162000cb55760408301905b60408360051b850101821062000ec35750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000cb55781526020918201910162000e9b565b606081019081106001600160401b03821117620005a857604052565b604081019081106001600160401b03821117620005a857604052565b601f909101601f19168101906001600160401b03821190821017620005a857604052565b6001600160401b038111620005a85760051b60200190565b51906001600160a01b038216820362000cb557565b60005b83811062000f835750506000910152565b818101518382015260200162000f72565b81811062000fa0575050565b6000815560010162000f94565b805182101562000fc25760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c445752565b90815180825260208080930193019160005b82811062001007575050505090565b83516001600160e01b0319168552938101939281019260010162000ff8565b90602091620010418151809281855285808601910162000f6f565b601f01601f1916010190565b9060008051602062001b4c833981519152805483101562000fc257600052601c60206000208360031c019260021b1690565b803b156200108b575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200087d90604483019062001026565b908082519081815260208091019281808460051b8301019501936000915b848310620010f05750505050505090565b909192939495848062001133600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062001026565b9801930193019194939290620010df565b90600182811c9216801562001176575b60208310146200116057565b634e487b7160e01b600052602260045260246000fd5b91607f169162001154565b9190601f81116200119157505050565b620011c0926000526020600020906020601f840160051c83019310620011c2575b601f0160051c019062000f94565b565b9091508190620011b2565b90808214620012b657620011e2815462001144565b906001600160401b038211620005a85781906200120c8262001205865462001144565b8662001181565b600090601f831160011462001246576000926200123a575b50508160011b916000199060031b1c1916179055565b01549050388062001224565b81526020808220858352818320935090601f1985169083905b8282106200129c57505090846001959493921062001282575b505050811b019055565b015460001960f88460031b161c1916905538808062001278565b84958192958501548155600180910196019401906200125f565b5050565b60045481101562000fc25760046000526003602060002091020190600090565b90620013e85781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b038311620005a85762001346836200133f875462001144565b8762001181565b81601f841160011462001382575092829391839260009462001376575b50501b916000199060031b1c1916179055565b01519250388062001363565b919083601f1981168760005284600020946000905b88838310620013cd5750505010620013b357505050811b019055565b015160001960f88460031b161c1916905538808062001278565b85870151885590960195948501948793509081019062001397565b634e487b7160e01b600052600060045260246000fd5b60409081519060209081835262001420815185848601526060850190620010c1565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200178d575b505060049182549168010000000000000000958684116200177857600654846006558085106200168e575b50600093858552868520600686528786209086905b838210620016385750505050808854169160018060401b03199283600754161760075583515193865498865b868110620015b657505050511690875416178655808511620014f9575b505050505050565b84811015620014f15782548015620015a35760001901906200151b82620012ba565b92909262001591578383558360026001948286820155016200153e815462001144565b8062001551575b505050845501620014f9565b82601f8083116001146200156d57505050555b83388062001545565b8382528a82209391926200158991018d1c840188850162000f94565b555562001564565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ed5780620015e6620015d3600193865162000fad565b51620015df83620012ba565b90620012da565b01620014d4565b620015fa81845162000fad565b51895483811015620016255760019291620015df828d866200161f95019055620012ba565b620015e6565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001655575b6003809101930191019091620014a8565b805484558180850190838060a01b039083015416838060a01b0319825416179055620016886002808301908601620011cd565b62001644565b6003908082029082820403620017635785820282810487036200174e57886000916006835281832093840193015b8c848210620016d057505050505062001493565b85928491828455600183818601556002850191620016ef835462001144565b918262001706575b505050505050018990620016bc565b8591601f8085116001146200172a5750505050509050555b828b388f8082620016f7565b859496849662001746955286209601901c850190850162000f94565b55556200171e565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b858351168660075416908181146200191357106200190257815191620017b38362000f02565b600454620017c18162000f42565b91620017d08151938462000f1e565b81835287830190600460005288600020906000925b84841062001819575050509184525050848201526200180590836200191e565b6200181257388062001468565b5050505050565b8a8d835190620018298262000ee6565b8554825260018060a01b0360018701541683830152600286018551916000918054620018558162001144565b8086529260018216918215620018df5750506001146200189b575b50509181620018886001969360039695038262000f1e565b86820152815201930193019291620017e5565b60009081528581209092505b818310620018c057505081018301816200188862001870565b8060019196929394959654838688010152019201908f949392620018a7565b60ff19168689015292151590921b84018601925083915062001888905062001870565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b03918216911603620019d0576200194981620019d8565b6200195484620019d8565b03620019d05751805183515103620019d057620019c9620019bc9160405190816200198a868201928784526040830190620010c1565b0391620019a0601f199384810183528262000f1e565b51902094516040519384918683019687526040830190620010c1565b0390810183528262000f1e565b5190201490565b505050600090565b8051519060009182915b818310620019f05750505090565b90919262001a0084835162000fad565b515181018091116200082757926001019190620019e256fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220e59c2630963e949be385777de1611b923486901fdbf3970ac63167b49cdbae2a64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","sourceMap":"1116:4631:34:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1116:4631:34;;;-1:-1:-1;;;;;;;1116:4631:34;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1116:4631:34;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4631:34;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1639:25;1635:82;;1116:4631;;;;1793:31;1789:94;;1116:4631;;;;;;1925:2;1897:30;;:65;;;;;1116:4631;1893:130;;;2258:16:57;1116:4631:34;;-1:-1:-1;;;;;;1116:4631:34;2061:10;1116:4631;;;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;-1:-1:-1;1116:4631:34;;;;;;;;-1:-1:-1;1116:4631:34;;1108:5;;-1:-1:-1;2937:19:57;;;;;;1116:4631:34;;;;;;;;;;;;1108:5;1116:4631;;;;;;;;;;;;;;;;-1:-1:-1;1116:4631:34;;;;;;;;3911:74:57;1116:4631:34;;;;;-1:-1:-1;1116:4631:34;;;;;;;;;;;;:::i;:::-;3911:74:57;;;2292:22:34;1116:4631;;;;;;;-1:-1:-1;;1116:4631:34;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1116:4631:34;;;;;;;;;;;;2526:14;998:1;;-1:-1:-1;;1108:5:34;2292:22;1108:5;;;2862:18;;1108:5;;2846:13;1108:5;;-1:-1:-1;;;;;;1108:5:34;-1:-1:-1;;;;;1116:4631:34;;;1108:5;;;;;;;;;;;;;1116:4631;1108:5;;;;1116:4631;1108:5;;;;;;;;;;;1116:4631;1108:5;;;-1:-1:-1;1108:5:34;1116:4631;-1:-1:-1;1108:5:34;-1:-1:-1;1108:5:34;;;;;;4234:7;1116:4631;;;;;;2890:10;1108:5;1116:4631;;;;2933:21;1108:5;1116:4631;;;;2993:16;1108:5;1116:4631;;;;;;;;3035:20;998:1;1116:4631;;3035:20;998:1;1116:4631;3093:37;1108:5;1116:4631;3144:43;1108:5;282:3:73;1116:4631:34;1108:5;3093:21;1116:4631;;;;;1108:5;1116:4631;1108:5;;;1116:4631;1108:5;1116:4631;;;246:2:73;953:5:34;3490:19;246:2:73;953:5:34;;;;246:2:73;953:5:34;246:2:73;;;3490:19:34;246:2:73;15673:1:64;1116:4631:34;15673:1:64;;;;;3683:27:34;1108:5;15673:1:64;;3683:27:34;15673:1:64;1116:4631:34;4170:24;1116:4631;;;;;;:::i;:::-;15673:1:64;;-1:-1:-1;1116:4631:34;4122:74;;15673:1:64;4234:7:34;:::i;:::-;1116:4631;;;;;;;;;1108:5;;;-1:-1:-1;;;;;1116:4631:34;1108:5;;;;1116:4631;1108:5;;;;1116:4631;1108:5;;;;;;;-1:-1:-1;1108:5:34;;;-1:-1:-1;1108:5:34;;;;;;;:::i;:::-;;;;;1116:4631;;;-1:-1:-1;1116:4631:34;;;;;-1:-1:-1;1116:4631:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2917:18:57;1116:4631:34;3010:23:57;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:57;;;;:::i;:::-;;1108:5:34;1116:4631;1108:5;;;3142:29:57;3138:122;;1116:4631:34;3309:23:57;;;;:::i;:::-;;:30;1116:4631:34;;;;;;;3357:37:57;;;4150:27;;;4146:116;;1116:4631:34;-1:-1:-1;;;;;;;;;;;1108:5:34;1116:4631;4385:74:57;1116:4631:34;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1116:4631:34;;;;4385:74:57;;:::i;:::-;1108:5:34;;4526:21:57;-1:-1:-1;4521:677:57;4549:22;;;;;;3353:466;;;;;1116:4631:34;3353:466:57;;1116:4631:34;2917:18:57;;4526:21;-1:-1:-1;;;;;;4607:33:57;;;;:::i;:::-;1116:4631:34;;-1:-1:-1;1116:4631:34;;;-1:-1:-1;;;;;;;;;;;1116:4631:34;;;;;;;;;-1:-1:-1;;;;;1116:4631:34;4751:128:57;;1116:4631:34;;;;;;:::i;:::-;;;;;;;;;;4939:107:57;;;1116:4631:34;;;-1:-1:-1;1116:4631:34;;;-1:-1:-1;;;;;;;;;;;1116:4631:34;;;;;;;1108:5;;1116:4631;;246:2:73;;-1:-1:-1;;;;;;1116:4631:34;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;-1:-1:-1;;;1116:4631:34;;;;;;;-1:-1:-1;;;;;;;;;;;1116:4631:34;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1116:4631:34;;:::i;:::-;;;;;;;;;;;;;;;1108:5;;1116:4631;;;;;;;;;;;;;;;;4526:21:57;;;1116:4631:34;;;;-1:-1:-1;1108:5:34;;;;;-1:-1:-1;1108:5:34;4751:128:57;1116:4631:34;;-1:-1:-1;;;4811:53:57;;;;;1116:4631:34;;;;;4811:53:57;4146:116;1116:4631:34;;-1:-1:-1;;;4200:51:57;;1116:4631:34;4200:51:57;;;1116:4631:34;;;;;;;;;;;:::i;:::-;4200:51:57;;;3353:466;1116:4631:34;3484:41:57;;1116:4631:34;;5372:27:57;;;5368:131;;5508:81;1116:4631:34;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1116:4631:34;;;;5508:81:57;;:::i;:::-;1108:5:34;;5652:21:57;-1:-1:-1;5675:18:57;;;;;;3480:339;;;;1116:4631:34;3480:339:57;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:57;;;;:::i;:::-;1116:4631:34;;-1:-1:-1;1116:4631:34;;;-1:-1:-1;;;;;;;;;;;1116:4631:34;;;;;;-1:-1:-1;;;;;1116:4631:34;6011:4:57;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;-1:-1:-1;1116:4631:34;;;-1:-1:-1;;;;;;;;;;;1116:4631:34;;;;;;;-1:-1:-1;;;;;;1116:4631:34;;;;;;;5652:21:57;;6268:123;1116:4631:34;;;;6328:48:57;;;;;;;;;1116:4631:34;6328:48:57;6111:144;1116:4631:34;;-1:-1:-1;;;6174:66:57;;;;;1116:4631:34;;;;;6174:66:57;5980:118;1116:4631:34;;-1:-1:-1;;;6043:40:57;;;;;1116:4631:34;;;;;6043:40:57;5368:131;1116:4631:34;;-1:-1:-1;;;5422:66:57;;1116:4631:34;5422:66:57;;;1116:4631:34;;;;;;;;;;;:::i;3480:339:57:-;3629:30;3619:40;;3629:30;;1108:5:34;-1:-1:-1;;;;;;;;;;;1108:5:34;6826:27:57;;6822:115;;1108:5:34;;;6999:21:57;-1:-1:-1;7022:18:57;;;;;;3615:204;;;;1116:4631:34;3615:204:57;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:57;;;;:::i;:::-;1116:4631:34;;;;-1:-1:-1;1116:4631:34;-1:-1:-1;;;;;;;;;;;1116:4631:34;;;-1:-1:-1;1116:4631:34;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;;;;;;;7278:61:57;7274:153;;1108:5:34;;-1:-1:-1;;;;;1116:4631:34;7597:4:57;7538:64;7534:149;;1116:4631:34;;;;;;;;;;;;;246:2:73;1116:4631:34;7780:68:57;7776:412;;6999:21;1108:5:34;-1:-1:-1;;;;;;;;;;;1108:5:34;1116:4631;;;;;;;-1:-1:-1;;1116:4631:34;;;;:::i;:::-;;;;;;;1108:5;1116:4631;;;;-1:-1:-1;;;;;;;;;;;1116:4631:34;-1:-1:-1;1116:4631:34;-1:-1:-1;;;;;;;;;;;1116:4631:34;;-1:-1:-1;1116:4631:34;;;;;6999:21:57;;1116:4631:34;;;;-1:-1:-1;1116:4631:34;;;;;-1:-1:-1;1116:4631:34;7776:412:57;8033:140;7890:27;1116:4631:34;;7890:27:57;;;:::i;:::-;1116:4631:34;;;;;1108:5;1116:4631;;;7935:80:57;1116:4631:34;7935:65:57;1116:4631:34;;;;246:2:73;1116:4631:34;7935:65:57;:::i;:80::-;1116:4631:34;246:2:73;-1:-1:-1;;;;;;1116:4631:34;;;-1:-1:-1;1116:4631:34;;;-1:-1:-1;;;;;;;;;;;1116:4631:34;;;;;;;-1:-1:-1;;;;1116:4631:34;;;;;;;-1:-1:-1;;;1116:4631:34;;;;;8033:140:57;7776:412;;;7534:149;1116:4631:34;;-1:-1:-1;;;7629:39:57;;;;;1116:4631:34;;;;;7629:39:57;7274:153;1116:4631:34;;-1:-1:-1;;;7366:46:57;;;;;1116:4631:34;;;;;7366:46:57;6822:115;1116:4631:34;;;;6876:50:57;;;;;;;;;1116:4631:34;6876:50:57;3615:204;1116:4631:34;;-1:-1:-1;;;3773:31:57;;1116:4631:34;;;;3773:31:57;;;;1116:4631:34;:::i;:::-;3773:31:57;1116:4631:34;;;;-1:-1:-1;1116:4631:34;;;;;-1:-1:-1;1116:4631:34;3138:122:57;1116:4631:34;;-1:-1:-1;;;3198:47:57;;;;;1116:4631:34;;;;;3198:47:57;1893:130:34;1116:4631;;-1:-1:-1;;;1985:27:34;;;;;1897:65;1959:3;1931:31;;;1897:65;;;1789:94;1116:4631;;-1:-1:-1;;;1847:25:34;;;;;1635:82;1116:4631;;-1:-1:-1;;;1687:19:34;;;;;1116:4631;-1:-1:-1;1116:4631:34;;;;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;;;-1:-1:-1;;1116:4631:34;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;;-1:-1:-1;;1116:4631:34;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4631:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;;;;;-1:-1:-1;;1116:4631:34;;-1:-1:-1;1116:4631:34;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1116:4631:34;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1116:4631:34;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;:::o;:::-;;;;;-1:-1:-1;;1116:4631:34;;;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1116:4631:34;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1116:4631:34;;;;:::o;:::-;;;;;;;;;;;;;1108:5;;;;;;;;:::o;:::-;;;;;;;;1116:4631;1108:5;;1116:4631;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1108:5;;1116:4631;;;;;;;;1108:5;;1116:4631;-1:-1:-1;1116:4631:34;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;1116:4631:34;;;;;;;;;;;;;;;;;;;;1108:5;;1116:4631;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1116:4631:34;;;;:::o;:::-;;-1:-1:-1;;;;;;;;;;;1108:5:34;;1116:4631;;;;;-1:-1:-1;1108:5:34;1116:4631;1108:5;-1:-1:-1;1108:5:34;1116:4631;;;;;;;;;:::o;9308:320:57:-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;1116:4631:34;;;-1:-1:-1;;;9566:45:57;;-1:-1:-1;;;;;1116:4631:34;;;9566:45:57;;;1116:4631:34;;;;;;;;;;;;;;;:::i;:::-;;;1108:5;;1116:4631;;;;;;;;;;;;;;;;;1108:5;;1116:4631;-1:-1:-1;1116:4631:34;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1108:5;-1:-1:-1;1108:5:34;;-1:-1:-1;1108:5:34;1116:4631;1108:5;1116:4631;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;1116:4631:34;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;1108:5;1116:4631;;;;;:::o;:::-;;;;-1:-1:-1;1116:4631:34;;;;;1108:5;;;;;;;;;;;;;-1:-1:-1;1108:5:34;-1:-1:-1;;1116:4631:34;;;1108:5;;1116:4631;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1108:5;1116:4631;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;5872:19:58;1108:5:34;1116:4631;;;;;5872:19:58;-1:-1:-1;1108:5:34;1116:4631;1108:5;-1:-1:-1;1108:5:34;1116:4631;;;;-1:-1:-1;1116:4631:34;:::o;:::-;;;;;;1108:5;;1116:4631;;;;1108:5;1116:4631;;;;;;-1:-1:-1;;;;;;1116:4631:34;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;;;;;;1108:5;;;1116:4631;;;;;;1108:5;1116:4631;-1:-1:-1;;;;;1116:4631:34;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1116:4631:34;;;;;;;;;;;;;1108:5;1116:4631;;;;;:::o;:::-;;;;-1:-1:-1;1116:4631:34;;;;;;;;;;;;1108:5;-1:-1:-1;1108:5:34;;-1:-1:-1;1108:5:34;1116:4631;-1:-1:-1;1116:4631:34;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1108:5;1116:4631;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4631:34;;;;;;;;;;1108:5;;;;;;;;5615:1976:58;1116:4631:34;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5695:29:58;1116:4631:34;;;;;;;;;;;;;;;;;;;5695:29:58;;;5872:39;1116:4631:34;;;;;5872:44:58;5868:621;;5615:1976;5872:19;;;1108:5:34;;;1116:4631;;;;;;;;6499:16:58;1108:5:34;1116:4631;6499:16:58;1116:4631:34;;;;;;5615:1976:58;1116:4631:34;;1108:5;;;;;;;6499:16:58;1108:5:34;;;;;1116:4631;;;;;;;;;;;;;;;;;;;;;;;1108:5;;;1116:4631;1108:5;;;1116:4631;1108:5;6570:21:58;;1108:5:34;;;;6834:9:58;;6845:15;;;;;;1108:5:34;;;;1116:4631;1108:5;;;;;;;7345:25:58;;;7341:244;;6829:332;5615:1976;;;;;;:::o;7341:244::-;7416:15;;;;7341:244;7416:15;1108:5:34;;1116:4631;;;;-1:-1:-1;;1116:4631:34;;;;;:::i;:::-;;;;;;1108:5;;;1116:4631;;;;;;;;;;;;;;:::i;:::-;;;;7391:23:58;1116:4631:34;;;;;;7391:23:58;;1116:4631:34;;;;;;;;;;;;;;;;;;;;;1108:5;;;;;;;;;1116:4631;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;1108:5:34;;;;;;1116:4631;1108:5;1116:4631;-1:-1:-1;;;1116:4631:34;;;;;;;;6834:9:58;6882:15;;;;;;6953:21;6917:60;6953:24;1116:4631:34;6953:21:58;;;:24;:::i;:::-;;6917:33;;;:::i;:::-;:60;;:::i;:::-;1116:4631:34;6834:9:58;;6878:214;7052:24;:21;;;:24;:::i;:::-;;1116:4631:34;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6878:214:58;;1116:4631:34;-1:-1:-1;;;1116:4631:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1108:5;;1116:4631;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;1108:5;;;;;;;;;;;;;;;;;;;;;1116:4631;;1108:5;6499:16:58;1108:5:34;;;;;1116:4631;;;;;;;;;;;;;;;;;;;;1108:5;;;;;;;1116:4631;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1108:5;;;;;1116:4631;1108:5;;;;1116:4631;;;;;;;;;;:::i;:::-;;;;;1108:5;;1116:4631;;;;;1108:5;;;1116:4631;1108:5;;;1116:4631;;;;;1108:5;;;1116:4631;1108:5;1116:4631;;;;;;;;;;;;5868:621:58;1108:5:34;;;1116:4631;;5970:36:58;1116:4631:34;;5936:70:58;;;;5932:115;;6160:69;6156:139;;1116:4631:34;;;;;;:::i;:::-;5872:19:58;1108:5:34;1116:4631;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;1108:5;5872:19:58;-1:-1:-1;1108:5:34;;-1:-1:-1;1108:5:34;1116:4631;-1:-1:-1;1116:4631:34;;;;;;;-1:-1:-1;;;15673:1:64;;;-1:-1:-1;;1116:4631:34;;;15673:1:64;6390:48:58;;;;:::i;:::-;6386:93;;5868:621;;;;6386:93;6458:7;;;;;:::o;1116:4631:34:-;;;;;;;;;:::i;:::-;;;15673:1:64;;1116:4631:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4631:34;;;;;;:::i;:::-;;;;;;;;;5872:39:58;;;;1116:4631:34;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15673:1:64;1116:4631:34;;;;;;;;;;;;-1:-1:-1;1108:5:34;;;;;;-1:-1:-1;;;1116:4631:34;;;;;;-1:-1:-1;;1116:4631:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1116:4631:34;;;;;;;;;;;;;;;;-1:-1:-1;1116:4631:34;;-1:-1:-1;1116:4631:34;;-1:-1:-1;1116:4631:34;;6156:139:58;1116:4631:34;;-1:-1:-1;;;6256:24:58;;5872:19;;6256:24;5932:115;6026:7;;;;;;;;;:::o;8126:561::-;8240:23;;;;1108:5:34;8267:23:58;;;1108:5:34;8240:23:58;;;-1:-1:-1;;;;;1116:4631:34;;;;;8240:50:58;8236:93;;8342:26;;;:::i;:::-;8372;;;:::i;:::-;8342:56;8338:99;;8450:14;1108:5:34;;8475:14:58;;1108:5:34;8450:46:58;8446:89;;8627:26;1116:4631:34;;;;8567:26:58;;1116:4631:34;8567:26:58;;;1116:4631:34;;;;;;;;;:::i;:::-;8567:26:58;1116:4631:34;8567:26:58;1116:4631:34;;8567:26:58;;;;;;;;:::i;:::-;1108:5:34;8557:37:58;;8638:14;;1116:4631:34;;8627:26:58;;;;;;1116:4631:34;;;;;;;;:::i;:::-;8627:26:58;;;;;;;;:::i;:::-;1108:5:34;8617:37:58;;8672:8;8126:561;:::o;8446:89::-;8512:12;;;-1:-1:-1;8512:12:58;:::o;7660:387::-;7771:15;;1108:5:34;7803:29:58;1108:5:34;7847:9:58;;7842:161;7858:7;;;;;;8012:28;;;7660:387;:::o;7847:9::-;7908:15;;;:18;:15;;;:18;:::i;:::-;;1116:4631:34;;;;;;;;7883:50:58;1116:4631:34;;;7847:9:58;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220e59c2630963e949be385777de1611b923486901fdbf3970ac63167b49cdbae2a64736f6c63430008130033","sourceMap":"1116:4631:34:-:0;;;;;;;-1:-1:-1;4638:7:34;;-1:-1:-1;;;;;;4638:7:34;260:43:57;;;;;;1116:4631:34;260:43:57;;;-1:-1:-1;;;;;260:43:57;;4673:19:34;;4669:82;;1116:4631;;;;;4895:593;;;1116:4631;;4895:593;;;;;;;;;;;;;;;;;4669:82;260:43:57;;1116:4631:34;260:43:57;4715:25:34;;;;;;;;;260:43:57;4715:25:34;1116:4631;-1:-1:-1;4638:7:34;;-1:-1:-1;;;;;;4638:7:34;260:43:57;;;;;;1116:4631:34;260:43:57;;;-1:-1:-1;;;;;260:43:57;;4673:19:34;;4669:82;;1116:4631;;;;;4895:593;;;1116:4631;;4895:593;;;;;;;;;;;;;4669:82;4715:25;;;1116:4631;4715:25;;260:43:57;4715:25:34;1116:4631;4715:25","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"networkName\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"msgFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"genesisValidators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"}],\"internalType\":\"struct GatewayDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"FunctionNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMajorityPercentage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubmissionPeriod\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldConfigurationNumber\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/GatewayDiamond.sol\":\"GatewayDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x1771042e416900276fc557c71365bcb7a470c46378109feae5813fd2df1f6cdd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5c02c7b8141cade572031ce857f0c66f8bf33ef9627c1c2c849532489334f095\",\"dweb:/ipfs/QmbM5n1rm9ZzoX9P22LT1xfaxqjVHCsMkPAactq5CYMjyt\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21\",\"dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14\",\"dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7\",\"dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2\",\"dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"struct GatewayDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"networkName","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"bottomUpCheckPeriod","type":"uint256"},{"internalType":"uint256","name":"minCollateral","type":"uint256"},{"internalType":"uint256","name":"msgFee","type":"uint256"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"struct Validator[]","name":"genesisValidators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"type":"error","name":"FunctionNotFound"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidMajorityPercentage"},{"inputs":[],"type":"error","name":"InvalidSubmissionPeriod"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[],"type":"error","name":"OldConfigurationNumber"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/GatewayDiamond.sol":"GatewayDiamond"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x1771042e416900276fc557c71365bcb7a470c46378109feae5813fd2df1f6cdd","urls":["bzz-raw://5c02c7b8141cade572031ce857f0c66f8bf33ef9627c1c2c849532489334f095","dweb:/ipfs/QmbM5n1rm9ZzoX9P22LT1xfaxqjVHCsMkPAactq5CYMjyt"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140","urls":["bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21","dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3","urls":["bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14","dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d","urls":["bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7","dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c","urls":["bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2","dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/GatewayDiamond.sol","id":35760,"exportedSymbols":{"BATCH_PERIOD":[48391],"FEATURE_CHECKPOINT_RELAYER_REWARDS":[35432],"FEATURE_CROSSMSG_RELAYER_REWARDS":[35435],"FEATURE_GENERAL_PUPRPOSE_CROSSMSG":[35426],"FEATURE_MULTILEVEL_CROSSMSG":[35423],"FEATURE_SUBNET_DEPTH":[35429],"FunctionNotFound":[35420],"GatewayActorStorage":[42369],"GatewayDiamond":[35759],"IDiamond":[39732],"IDiamondCut":[39751],"IDiamondLoupe":[39792],"IERC165":[39803],"InvalidCollateral":[36984],"InvalidMajorityPercentage":[36996],"InvalidSubmissionPeriod":[37012],"LibDiamond":[41229],"LibGateway":[42242],"LibStaking":[45464],"MAX_MSGS_PER_BATCH":[48388],"Membership":[48701],"SubnetID":[48557],"Validator":[48694]},"nodeType":"SourceUnit","src":"46:5702:34","nodes":[{"id":35388,"nodeType":"PragmaDirective","src":"46:23:34","nodes":[],"literals":["solidity","0.8",".19"]},{"id":35390,"nodeType":"ImportDirective","src":"71:69:34","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"./lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":35760,"sourceUnit":42439,"symbolAliases":[{"foreign":{"id":35389,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42369,"src":"79:19:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35392,"nodeType":"ImportDirective","src":"141:51:34","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":35760,"sourceUnit":39733,"symbolAliases":[{"foreign":{"id":35391,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"149:8:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35394,"nodeType":"ImportDirective","src":"193:57:34","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"./interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":35760,"sourceUnit":39752,"symbolAliases":[{"foreign":{"id":35393,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39751,"src":"201:11:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35396,"nodeType":"ImportDirective","src":"251:61:34","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"./interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":35760,"sourceUnit":39793,"symbolAliases":[{"foreign":{"id":35395,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39792,"src":"259:13:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35398,"nodeType":"ImportDirective","src":"313:49:34","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"./interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":35760,"sourceUnit":39804,"symbolAliases":[{"foreign":{"id":35397,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39803,"src":"321:7:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35401,"nodeType":"ImportDirective","src":"363:59:34","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":35760,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":35399,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"371:9:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35400,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48701,"src":"382:10:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35405,"nodeType":"ImportDirective","src":"423:109:34","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"./errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":35760,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":35402,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36984,"src":"431:17:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35403,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37012,"src":"450:23:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35404,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36996,"src":"475:25:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35407,"nodeType":"ImportDirective","src":"533:48:34","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"./lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":35760,"sourceUnit":41230,"symbolAliases":[{"foreign":{"id":35406,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"541:10:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35409,"nodeType":"ImportDirective","src":"582:48:34","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"./lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":35760,"sourceUnit":42243,"symbolAliases":[{"foreign":{"id":35408,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"590:10:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35411,"nodeType":"ImportDirective","src":"631:46:34","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":35760,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":35410,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"639:8:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35413,"nodeType":"ImportDirective","src":"678:48:34","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"./lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":35760,"sourceUnit":45729,"symbolAliases":[{"foreign":{"id":35412,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"686:10:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35416,"nodeType":"ImportDirective","src":"727:72:34","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"./structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":35760,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":35414,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48391,"src":"735:12:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35415,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48388,"src":"749:18:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35420,"nodeType":"ErrorDefinition","src":"801:49:34","nodes":[],"errorSelector":"5416eb98","name":"FunctionNotFound","nameLocation":"807:16:34","parameters":{"id":35419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35418,"mutability":"mutable","name":"_functionSelector","nameLocation":"831:17:34","nodeType":"VariableDeclaration","scope":35420,"src":"824:24:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":35417,"name":"bytes4","nodeType":"ElementaryTypeName","src":"824:6:34","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"823:26:34"}},{"id":35423,"nodeType":"VariableDeclaration","src":"852:49:34","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_MULTILEVEL_CROSSMSG","nameLocation":"866:27:34","scope":35760,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35421,"name":"bool","nodeType":"ElementaryTypeName","src":"852:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"896:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":35426,"nodeType":"VariableDeclaration","src":"903:55:34","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_GENERAL_PUPRPOSE_CROSSMSG","nameLocation":"917:33:34","scope":35760,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35424,"name":"bool","nodeType":"ElementaryTypeName","src":"903:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"953:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":35429,"nodeType":"VariableDeclaration","src":"960:39:34","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_SUBNET_DEPTH","nameLocation":"975:20:34","scope":35760,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":35427,"name":"uint8","nodeType":"ElementaryTypeName","src":"960:5:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":35428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"998:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"id":35432,"nodeType":"VariableDeclaration","src":"1001:56:34","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_CHECKPOINT_RELAYER_REWARDS","nameLocation":"1015:34:34","scope":35760,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35430,"name":"bool","nodeType":"ElementaryTypeName","src":"1001:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1052:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":35435,"nodeType":"VariableDeclaration","src":"1059:54:34","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_CROSSMSG_RELAYER_REWARDS","nameLocation":"1073:32:34","scope":35760,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35433,"name":"bool","nodeType":"ElementaryTypeName","src":"1059:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1108:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":35759,"nodeType":"ContractDefinition","src":"1116:4631:34","nodes":[{"id":35438,"nodeType":"VariableDeclaration","src":"1146:30:34","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"1175:1:34","scope":35759,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":35437,"nodeType":"UserDefinedTypeName","pathNode":{"id":35436,"name":"GatewayActorStorage","nameLocations":["1146:19:34"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"1146:19:34"},"referencedDeclaration":42369,"src":"1146:19:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":35456,"nodeType":"StructDefinition","src":"1183:351:34","nodes":[],"canonicalName":"GatewayDiamond.ConstructorParams","members":[{"constant":false,"id":35441,"mutability":"mutable","name":"networkName","nameLocation":"1227:11:34","nodeType":"VariableDeclaration","scope":35456,"src":"1218:20:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":35440,"nodeType":"UserDefinedTypeName","pathNode":{"id":35439,"name":"SubnetID","nameLocations":["1218:8:34"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1218:8:34"},"referencedDeclaration":48557,"src":"1218:8:34","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":35443,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1256:19:34","nodeType":"VariableDeclaration","scope":35456,"src":"1248:27:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35442,"name":"uint256","nodeType":"ElementaryTypeName","src":"1248:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35445,"mutability":"mutable","name":"minCollateral","nameLocation":"1293:13:34","nodeType":"VariableDeclaration","scope":35456,"src":"1285:21:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35444,"name":"uint256","nodeType":"ElementaryTypeName","src":"1285:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35447,"mutability":"mutable","name":"msgFee","nameLocation":"1410:6:34","nodeType":"VariableDeclaration","scope":35456,"src":"1402:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35446,"name":"uint256","nodeType":"ElementaryTypeName","src":"1402:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35449,"mutability":"mutable","name":"majorityPercentage","nameLocation":"1432:18:34","nodeType":"VariableDeclaration","scope":35456,"src":"1426:24:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":35448,"name":"uint8","nodeType":"ElementaryTypeName","src":"1426:5:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":35453,"mutability":"mutable","name":"genesisValidators","nameLocation":"1472:17:34","nodeType":"VariableDeclaration","scope":35456,"src":"1460:29:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":35451,"nodeType":"UserDefinedTypeName","pathNode":{"id":35450,"name":"Validator","nameLocations":["1460:9:34"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"1460:9:34"},"referencedDeclaration":48694,"src":"1460:9:34","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"id":35452,"nodeType":"ArrayTypeName","src":"1460:11:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":35455,"mutability":"mutable","name":"activeValidatorsLimit","nameLocation":"1506:21:34","nodeType":"VariableDeclaration","scope":35456,"src":"1499:28:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":35454,"name":"uint16","nodeType":"ElementaryTypeName","src":"1499:6:34","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"1190:17:34","scope":35759,"visibility":"public"},{"id":35703,"nodeType":"FunctionDefinition","src":"1540:2709:34","nodes":[],"body":{"id":35702,"nodeType":"Block","src":"1625:2624:34","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35466,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35463,"src":"1639:6:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1646:13:34","memberName":"minCollateral","nodeType":"MemberAccess","referencedDeclaration":35445,"src":"1639:20:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":35468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1663:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1639:25:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35474,"nodeType":"IfStatement","src":"1635:82:34","trueBody":{"id":35473,"nodeType":"Block","src":"1666:51:34","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":35470,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36984,"src":"1687:17:34","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":35471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1687:19:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35472,"nodeType":"RevertStatement","src":"1680:26:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35475,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35463,"src":"1793:6:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1800:19:34","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":35443,"src":"1793:26:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":35477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1823:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1793:31:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35483,"nodeType":"IfStatement","src":"1789:94:34","trueBody":{"id":35482,"nodeType":"Block","src":"1826:57:34","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":35479,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37012,"src":"1847:23:34","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":35480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1847:25:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35481,"nodeType":"RevertStatement","src":"1840:32:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":35492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":35487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35484,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35463,"src":"1897:6:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1904:18:34","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":35449,"src":"1897:25:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3531","id":35486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1925:2:34","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"1897:30:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":35491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35488,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35463,"src":"1931:6:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1938:18:34","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":35449,"src":"1931:25:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":35490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1959:3:34","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1931:31:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1897:65:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35497,"nodeType":"IfStatement","src":"1893:130:34","trueBody":{"id":35496,"nodeType":"Block","src":"1964:59:34","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":35493,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36996,"src":"1985:25:34","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":35494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1985:27:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35495,"nodeType":"RevertStatement","src":"1978:34:34"}]}},{"expression":{"arguments":[{"expression":{"id":35501,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2061:3:34","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":35502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2065:6:34","memberName":"sender","nodeType":"MemberAccess","src":"2061:10:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":35498,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"2033:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":35500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2044:16:34","memberName":"setContractOwner","nodeType":"MemberAccess","referencedDeclaration":40649,"src":"2033:27:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":35503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2033:39:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35504,"nodeType":"ExpressionStatement","src":"2033:39:34"},{"expression":{"arguments":[{"id":35508,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35460,"src":"2118:11:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"hexValue":"30","id":35511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2146:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":35510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2138:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":35509,"name":"address","nodeType":"ElementaryTypeName","src":"2138:7:34","typeDescriptions":{}}},"id":35512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2138:10:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":35515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2171:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":35514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2161:9:34","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":35513,"name":"bytes","nodeType":"ElementaryTypeName","src":"2165:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":35516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2161:12:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":35505,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"2082:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":35507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2093:10:34","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":40809,"src":"2082:21:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":35517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2105:11:34","2131:5:34","2150:9:34"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"2082:93:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35518,"nodeType":"ExpressionStatement","src":"2082:93:34"},{"assignments":[35523],"declarations":[{"constant":false,"id":35523,"mutability":"mutable","name":"ds","nameLocation":"2220:2:34","nodeType":"VariableDeclaration","scope":35702,"src":"2186:36:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":35522,"nodeType":"UserDefinedTypeName","pathNode":{"id":35521,"name":"LibDiamond.DiamondStorage","nameLocations":["2186:10:34","2197:14:34"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"2186:25:34"},"referencedDeclaration":40619,"src":"2186:25:34","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":35527,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":35524,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"2225:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":35525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2236:14:34","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":40631,"src":"2225:25:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$40619_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":35526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2225:27:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2186:66:34"},{"expression":{"id":35537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35528,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35523,"src":"2292:2:34","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2295:19:34","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":40616,"src":"2292:22:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":35535,"indexExpression":{"expression":{"arguments":[{"id":35531,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39803,"src":"2320:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$39803_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$39803_$","typeString":"type(contract IERC165)"}],"id":35530,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2315:4:34","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":35532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2315:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$39803","typeString":"type(contract IERC165)"}},"id":35533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2329:11:34","memberName":"interfaceId","nodeType":"MemberAccess","src":"2315:25:34","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2292:49:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":35536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2344:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2292:56:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35538,"nodeType":"ExpressionStatement","src":"2292:56:34"},{"expression":{"id":35548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35539,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35523,"src":"2358:2:34","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2361:19:34","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":40616,"src":"2358:22:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":35546,"indexExpression":{"expression":{"arguments":[{"id":35542,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39751,"src":"2386:11:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$39751_$","typeString":"type(contract IDiamondCut)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$39751_$","typeString":"type(contract IDiamondCut)"}],"id":35541,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2381:4:34","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":35543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2381:17:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondCut_$39751","typeString":"type(contract IDiamondCut)"}},"id":35544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2399:11:34","memberName":"interfaceId","nodeType":"MemberAccess","src":"2381:29:34","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2358:53:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":35547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2414:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2358:60:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35549,"nodeType":"ExpressionStatement","src":"2358:60:34"},{"expression":{"id":35559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35550,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35523,"src":"2428:2:34","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2431:19:34","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":40616,"src":"2428:22:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":35557,"indexExpression":{"expression":{"arguments":[{"id":35553,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39792,"src":"2456:13:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$39792_$","typeString":"type(contract IDiamondLoupe)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$39792_$","typeString":"type(contract IDiamondLoupe)"}],"id":35552,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2451:4:34","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":35554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2451:19:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondLoupe_$39792","typeString":"type(contract IDiamondLoupe)"}},"id":35555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2471:11:34","memberName":"interfaceId","nodeType":"MemberAccess","src":"2451:31:34","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2428:55:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":35558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2486:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2428:62:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35560,"nodeType":"ExpressionStatement","src":"2428:62:34"},{"expression":{"id":35565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35561,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"2526:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2528:12:34","memberName":"maxTreeDepth","nodeType":"MemberAccess","referencedDeclaration":42356,"src":"2526:14:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35564,"name":"FEATURE_SUBNET_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35429,"src":"2543:20:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2526:37:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":35566,"nodeType":"ExpressionStatement","src":"2526:37:34"},{"expression":{"id":35571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35567,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"2573:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2575:22:34","memberName":"generalPurposeCrossMsg","nodeType":"MemberAccess","referencedDeclaration":42359,"src":"2573:24:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35570,"name":"FEATURE_GENERAL_PUPRPOSE_CROSSMSG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35426,"src":"2600:33:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2573:60:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35572,"nodeType":"ExpressionStatement","src":"2573:60:34"},{"expression":{"id":35577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35573,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"2643:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2645:18:34","memberName":"multiLevelCrossMsg","nodeType":"MemberAccess","referencedDeclaration":42362,"src":"2643:20:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35576,"name":"FEATURE_MULTILEVEL_CROSSMSG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35423,"src":"2666:27:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2643:50:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35578,"nodeType":"ExpressionStatement","src":"2643:50:34"},{"expression":{"id":35583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35579,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"2703:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2705:24:34","memberName":"checkpointRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":42365,"src":"2703:26:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35582,"name":"FEATURE_CHECKPOINT_RELAYER_REWARDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35432,"src":"2732:34:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2703:63:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35584,"nodeType":"ExpressionStatement","src":"2703:63:34"},{"expression":{"id":35589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35585,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"2776:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2778:22:34","memberName":"crossMsgRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":42368,"src":"2776:24:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35588,"name":"FEATURE_CROSSMSG_RELAYER_REWARDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35435,"src":"2803:32:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2776:59:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35590,"nodeType":"ExpressionStatement","src":"2776:59:34"},{"expression":{"id":35596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35591,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"2846:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2848:11:34","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42322,"src":"2846:13:34","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":35594,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35463,"src":"2862:6:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2869:11:34","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":35441,"src":"2862:18:34","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"src":"2846:34:34","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"id":35597,"nodeType":"ExpressionStatement","src":"2846:34:34"},{"expression":{"id":35603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35598,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"2890:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2892:8:34","memberName":"minStake","nodeType":"MemberAccess","referencedDeclaration":42325,"src":"2890:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":35601,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35463,"src":"2903:6:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2910:13:34","memberName":"minCollateral","nodeType":"MemberAccess","referencedDeclaration":35445,"src":"2903:20:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2890:33:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35604,"nodeType":"ExpressionStatement","src":"2890:33:34"},{"expression":{"id":35610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35605,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"2933:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2935:19:34","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":42343,"src":"2933:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":35608,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35463,"src":"2957:6:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2964:19:34","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":35443,"src":"2957:26:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2933:50:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35611,"nodeType":"ExpressionStatement","src":"2933:50:34"},{"expression":{"id":35617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35612,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"2993:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2995:14:34","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":42328,"src":"2993:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":35615,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35463,"src":"3012:6:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3019:6:34","memberName":"msgFee","nodeType":"MemberAccess","referencedDeclaration":35447,"src":"3012:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2993:32:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35618,"nodeType":"ExpressionStatement","src":"2993:32:34"},{"expression":{"id":35624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35619,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"3035:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3037:18:34","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":42331,"src":"3035:20:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":35622,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35463,"src":"3058:6:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3065:18:34","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":35449,"src":"3058:25:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3035:48:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":35625,"nodeType":"ExpressionStatement","src":"3035:48:34"},{"expression":{"id":35632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":35626,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"3093:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3095:19:34","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42310,"src":"3093:21:34","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},"id":35630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3115:15:34","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":48513,"src":"3093:37:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":35631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3133:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3093:41:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35633,"nodeType":"ExpressionStatement","src":"3093:41:34"},{"expression":{"id":35640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":35634,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"3144:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3146:25:34","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42314,"src":"3144:27:34","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},"id":35638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3172:15:34","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":48513,"src":"3144:43:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":35639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3190:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3144:47:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35641,"nodeType":"ExpressionStatement","src":"3144:47:34"},{"expression":{"id":35646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35642,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"3384:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3386:22:34","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":42346,"src":"3384:24:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35645,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48391,"src":"3411:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3384:39:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35647,"nodeType":"ExpressionStatement","src":"3384:39:34"},{"expression":{"id":35652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35648,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"3433:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3435:23:34","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":42349,"src":"3433:25:34","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35651,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48388,"src":"3461:18:34","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3433:46:34","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":35653,"nodeType":"ExpressionStatement","src":"3433:46:34"},{"expression":{"id":35663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":35654,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"3490:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3492:17:34","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42353,"src":"3490:19:34","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":35659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3510:10:34","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"3490:30:34","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":35660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3521:11:34","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":48655,"src":"3490:42:34","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":35661,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35463,"src":"3535:6:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3542:21:34","memberName":"activeValidatorsLimit","nodeType":"MemberAccess","referencedDeclaration":35455,"src":"3535:28:34","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3490:73:34","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":35664,"nodeType":"ExpressionStatement","src":"3490:73:34"},{"expression":{"id":35674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":35665,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"3683:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3685:17:34","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42353,"src":"3683:19:34","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":35670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3703:7:34","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"3683:27:34","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":35671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3711:23:34","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"3683:51:34","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":35672,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"3737:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":35673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3748:28:34","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":44620,"src":"3737:39:34","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3683:93:34","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":35675,"nodeType":"ExpressionStatement","src":"3683:93:34"},{"expression":{"id":35685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":35676,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35438,"src":"3934:1:34","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3936:17:34","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42353,"src":"3934:19:34","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":35681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3954:7:34","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"3934:27:34","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":35682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3962:24:34","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"3934:52:34","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":35683,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"3989:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":35684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4000:28:34","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":44620,"src":"3989:39:34","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3934:94:34","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":35686,"nodeType":"ExpressionStatement","src":"3934:94:34"},{"assignments":[35689],"declarations":[{"constant":false,"id":35689,"mutability":"mutable","name":"initial","nameLocation":"4112:7:34","nodeType":"VariableDeclaration","scope":35702,"src":"4094:25:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership"},"typeName":{"id":35688,"nodeType":"UserDefinedTypeName","pathNode":{"id":35687,"name":"Membership","nameLocations":["4094:10:34"],"nodeType":"IdentifierPath","referencedDeclaration":48701,"src":"4094:10:34"},"referencedDeclaration":48701,"src":"4094:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"id":35695,"initialValue":{"arguments":[{"hexValue":"30","id":35691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4155:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":35692,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35463,"src":"4170:6:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35693,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4177:17:34","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":35453,"src":"4170:24:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"id":35690,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48701,"src":"4122:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Membership_$48701_storage_ptr_$","typeString":"type(struct Membership storage pointer)"}},"id":35694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4134:19:34","4158:10:34"],"names":["configurationNumber","validators"],"nodeType":"FunctionCall","src":"4122:74:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},"nodeType":"VariableDeclarationStatement","src":"4094:102:34"},{"expression":{"arguments":[{"id":35699,"name":"initial","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35689,"src":"4234:7:34","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}],"expression":{"id":35696,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"4206:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":35698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4217:16:34","memberName":"updateMembership","nodeType":"MemberAccess","referencedDeclaration":41783,"src":"4206:27:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Membership_$48701_memory_ptr_$returns$__$","typeString":"function (struct Membership memory)"}},"id":35700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4206:36:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35701,"nodeType":"ExpressionStatement","src":"4206:36:34"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":35464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35460,"mutability":"mutable","name":"_diamondCut","nameLocation":"1579:11:34","nodeType":"VariableDeclaration","scope":35703,"src":"1552:38:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":35458,"nodeType":"UserDefinedTypeName","pathNode":{"id":35457,"name":"IDiamond.FacetCut","nameLocations":["1552:8:34","1561:8:34"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"1552:17:34"},"referencedDeclaration":39721,"src":"1552:17:34","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":35459,"nodeType":"ArrayTypeName","src":"1552:19:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":35463,"mutability":"mutable","name":"params","nameLocation":"1617:6:34","nodeType":"VariableDeclaration","scope":35703,"src":"1592:31:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":35462,"nodeType":"UserDefinedTypeName","pathNode":{"id":35461,"name":"ConstructorParams","nameLocations":["1592:17:34"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"1592:17:34"},"referencedDeclaration":35456,"src":"1592:17:34","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"1551:73:34"},"returnParameters":{"id":35465,"nodeType":"ParameterList","parameters":[],"src":"1625:0:34"},"scope":35759,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":35742,"nodeType":"FunctionDefinition","src":"4255:1239:34","nodes":[],"body":{"id":35741,"nodeType":"Block","src":"4285:1209:34","nodes":[],"statements":[{"assignments":[35710],"declarations":[{"constant":false,"id":35710,"mutability":"mutable","name":"ds","nameLocation":"4329:2:34","nodeType":"VariableDeclaration","scope":35741,"src":"4295:36:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":35709,"nodeType":"UserDefinedTypeName","pathNode":{"id":35708,"name":"LibDiamond.DiamondStorage","nameLocations":["4295:10:34","4306:14:34"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"4295:25:34"},"referencedDeclaration":40619,"src":"4295:25:34","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":35711,"nodeType":"VariableDeclarationStatement","src":"4295:36:34"},{"assignments":[35713],"declarations":[{"constant":false,"id":35713,"mutability":"mutable","name":"position","nameLocation":"4349:8:34","nodeType":"VariableDeclaration","scope":35741,"src":"4341:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35712,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4341:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35716,"initialValue":{"expression":{"id":35714,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"4360:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":35715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4371:24:34","memberName":"DIAMOND_STORAGE_POSITION","nodeType":"MemberAccess","referencedDeclaration":40520,"src":"4360:35:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4341:54:34"},{"AST":{"nodeType":"YulBlock","src":"4491:43:34","statements":[{"nodeType":"YulAssignment","src":"4505:19:34","value":{"name":"position","nodeType":"YulIdentifier","src":"4516:8:34"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"4505:7:34"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":35710,"isOffset":false,"isSlot":true,"src":"4505:7:34","suffix":"slot","valueSize":1},{"declaration":35713,"isOffset":false,"isSlot":false,"src":"4516:8:34","valueSize":1}],"id":35717,"nodeType":"InlineAssembly","src":"4482:52:34"},{"assignments":[35719],"declarations":[{"constant":false,"id":35719,"mutability":"mutable","name":"facet","nameLocation":"4595:5:34","nodeType":"VariableDeclaration","scope":35741,"src":"4587:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35718,"name":"address","nodeType":"ElementaryTypeName","src":"4587:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":35726,"initialValue":{"expression":{"baseExpression":{"expression":{"id":35720,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35710,"src":"4603:2:34","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4606:31:34","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":40609,"src":"4603:34:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":35724,"indexExpression":{"expression":{"id":35722,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4638:3:34","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":35723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4642:3:34","memberName":"sig","nodeType":"MemberAccess","src":"4638:7:34","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4603:43:34","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":35725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4647:12:34","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40601,"src":"4603:56:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4587:72:34"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":35732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35727,"name":"facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35719,"src":"4673:5:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":35730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4690:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":35729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4682:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":35728,"name":"address","nodeType":"ElementaryTypeName","src":"4682:7:34","typeDescriptions":{}}},"id":35731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4682:10:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4673:19:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35739,"nodeType":"IfStatement","src":"4669:82:34","trueBody":{"id":35738,"nodeType":"Block","src":"4694:57:34","statements":[{"errorCall":{"arguments":[{"expression":{"id":35734,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4732:3:34","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":35735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4736:3:34","memberName":"sig","nodeType":"MemberAccess","src":"4732:7:34","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":35733,"name":"FunctionNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35420,"src":"4715:16:34","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":35736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4715:25:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35737,"nodeType":"RevertStatement","src":"4708:32:34"}]}},{"AST":{"nodeType":"YulBlock","src":"4904:584:34","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4987:1:34","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4990:1:34","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"4993:12:34"},"nodeType":"YulFunctionCall","src":"4993:14:34"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4974:12:34"},"nodeType":"YulFunctionCall","src":"4974:34:34"},"nodeType":"YulExpressionStatement","src":"4974:34:34"},{"nodeType":"YulVariableDeclaration","src":"5074:65:34","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"5101:3:34"},"nodeType":"YulFunctionCall","src":"5101:5:34"},{"name":"facet","nodeType":"YulIdentifier","src":"5108:5:34"},{"kind":"number","nodeType":"YulLiteral","src":"5115:1:34","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"5118:12:34"},"nodeType":"YulFunctionCall","src":"5118:14:34"},{"kind":"number","nodeType":"YulLiteral","src":"5134:1:34","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5137:1:34","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"5088:12:34"},"nodeType":"YulFunctionCall","src":"5088:51:34"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"5078:6:34","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5203:1:34","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5206:1:34","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5209:14:34"},"nodeType":"YulFunctionCall","src":"5209:16:34"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"5188:14:34"},"nodeType":"YulFunctionCall","src":"5188:38:34"},"nodeType":"YulExpressionStatement","src":"5188:38:34"},{"cases":[{"body":{"nodeType":"YulBlock","src":"5339:59:34","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5364:1:34","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5367:14:34"},"nodeType":"YulFunctionCall","src":"5367:16:34"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5357:6:34"},"nodeType":"YulFunctionCall","src":"5357:27:34"},"nodeType":"YulExpressionStatement","src":"5357:27:34"}]},"nodeType":"YulCase","src":"5332:66:34","value":{"kind":"number","nodeType":"YulLiteral","src":"5337:1:34","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"5419:59:34","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5444:1:34","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5447:14:34"},"nodeType":"YulFunctionCall","src":"5447:16:34"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"5437:6:34"},"nodeType":"YulFunctionCall","src":"5437:27:34"},"nodeType":"YulExpressionStatement","src":"5437:27:34"}]},"nodeType":"YulCase","src":"5411:67:34","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"5313:6:34"},"nodeType":"YulSwitch","src":"5306:172:34"}]},"evmVersion":"paris","externalReferences":[{"declaration":35719,"isOffset":false,"isSlot":false,"src":"5108:5:34","valueSize":1}],"id":35740,"nodeType":"InlineAssembly","src":"4895:593:34"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"4264:9:34","parameters":{"id":35704,"nodeType":"ParameterList","parameters":[],"src":"4273:2:34"},"returnParameters":{"id":35705,"nodeType":"ParameterList","parameters":[],"src":"4285:0:34"},"scope":35759,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":35750,"nodeType":"FunctionDefinition","src":"5561:56:34","nodes":[],"body":{"id":35749,"nodeType":"Block","src":"5589:28:34","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":35746,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35742,"src":"5599:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":35747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5599:11:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35748,"nodeType":"ExpressionStatement","src":"5599:11:34"}]},"documentation":{"id":35743,"nodeType":"StructuredDocumentation","src":"5500:56:34","text":"@notice Will run when no functions matches call data"},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":35744,"nodeType":"ParameterList","parameters":[],"src":"5569:2:34"},"returnParameters":{"id":35745,"nodeType":"ParameterList","parameters":[],"src":"5589:0:34"},"scope":35759,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":35758,"nodeType":"FunctionDefinition","src":"5690:55:34","nodes":[],"body":{"id":35757,"nodeType":"Block","src":"5717:28:34","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":35754,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35742,"src":"5727:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":35755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5727:11:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35756,"nodeType":"ExpressionStatement","src":"5727:11:34"}]},"documentation":{"id":35751,"nodeType":"StructuredDocumentation","src":"5623:62:34","text":"@notice Same as fallback but called when calldata is empty"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":35752,"nodeType":"ParameterList","parameters":[],"src":"5697:2:34"},"returnParameters":{"id":35753,"nodeType":"ParameterList","parameters":[],"src":"5717:0:34"},"scope":35759,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayDiamond","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[35759],"name":"GatewayDiamond","nameLocation":"1125:14:34","scope":35760,"usedErrors":[35420,36984,36996,37012,37060,40528,40533,40537,40541,40546,40552,40565,40569,40573,40577,40581,40585,40589]}],"license":"MIT OR Apache-2.0"},"id":34} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"params","type":"tuple","internalType":"struct GatewayDiamond.ConstructorParams","components":[{"name":"networkName","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"bottomUpCheckPeriod","type":"uint256","internalType":"uint256"},{"name":"msgFee","type":"uint256","internalType":"uint256"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"genesisValidators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"}]}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"FunctionNotFound","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidMajorityPercentage","inputs":[]},{"type":"error","name":"InvalidSubmissionPeriod","inputs":[]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"OldConfigurationNumber","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60806040523462000c825762001b4d80380380916200002082608062000edf565b6080396040811262000c82576080516001600160401b03811162000c825760808201609f8201121562000c82578060800151906200005e8262000f03565b916200006e604051938462000edf565b8083526020830180928560800160208460051b8360800101011162000c825760a08101915b60a0600585901b830101831062000d9d57505060a0519150506001600160401b03811162000c825760c08185031262000c82576040519360c085016001600160401b038111868210176200058757604081905260808301516001600160401b03811162000c8257836080010160408184608001031262000c8257620001188262000ec3565b80516001600160401b038116810362000c825782526020810151906001600160401b03821162000c82570182608001601f8201121562000c8257805190620001608262000f03565b9162000170604051938462000edf565b80835260208084019160051b8301019185608001831162000c8257602001905b82821062000d825750505060e08781019190915290865260a0830151602087015260c0830151604087015282015160ff8116810362000c825760608601526101008201516001600160401b03811162000c825760808201609f84830101121562000c825780836080010151620002068162000f03565b9262000216604051948562000edf565b81845260208401926080820160a0878301600586901b01011162000c825760a086820101935b60a0878301600586901b0101851062000c875789898960a08a8a6080860152608001015161ffff8116810362000c825760a084015260208301511562000c705760ff6060840151166033811090811562000c64575b5062000c52577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000587576020810160405260008152825160005b818110620005f75750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106200059d57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003698a8a60006020850152838203604085015262000fe7565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054821683179055602b805464ffffffffff1916600217905583518051601980546001600160401b03199081166001600160401b039384161790915591909401518051939594919391821162000587576801000000000000000082116200058757602090601a5483601a5580841062000566575b5001601a600052602060002060005b838110620005495762000539608088600a898c8a6020850151601d556040850151601b5560ff60608601511690601c541617601c5580600b556012556064601e55601f541617601f5560a081015162ffff006020549160081b169062ffff0019161760205568010000000000000001600180841b031960295416176029550151604051906200052a8262000ec3565b815260006020820152620013bf565b6040516101339081620019da8239f35b82516001600160a01b03168183015560209092019187016200049b565b6200058090601a6000528484600020918201910162000f55565b876200048c565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005e8600193607f198b8203018652606060408b51878060a01b038151168452620005d7868201518786019062000f99565b015191816040820152019062000fa7565b97019201920190929162000322565b604062000605828762000f6e565b5101516001600160a01b036200061c838862000f6e565b5151169080511562000c3957602062000636848962000f6e565b510151600381101562000c2357806200086057508115620008355761ffff60008051602062001b0d8339815191525416620006b3604051620006788162000ea7565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001040565b8151916000915b838310620006d25750505050506001905b01620002f3565b6001600160e01b0319620006e7848462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020549091906001600160a01b03166200081c576200078a604051620007298162000ec3565b87815261ffff929092166020808401828152600086815260008051602062001b2d83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b0d8339815191525491680100000000000000008310156200058757620007f190620007d460019485810160008051602062001b0d833981519152556200100e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000806578101920191620006ba565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200085c90602483019062000fa7565b0390fd5b60018103620009d957508115620009b257620008c5604051620008838162000ea7565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001040565b80519060005b828110620008e05750505050600190620006cb565b6001600160e01b0319620008f5828462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020546001600160a01b031630811462000999578581146200098057156200096857600090815260008051602062001b2d8339815191526020526040902080546001600160a01b03191685179055600101620008cb565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200085c90602483019062000fa7565b6002810362000c01575060008051602062001b0d83398151915254918062000be9575080519060005b82811062000a175750505050600190620006cb565b6001600160e01b031962000a2c828462000f6e565b5116908160005260008051602062001b2d8339815191526020526040600020946040519562000a5b8762000ec3565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bd05785516001600160a01b0316301462000bb7578015620008065760001901948561ffff6020830151160362000b34575b5060008051602062001b0d8339815191525491821562000b1e576001926000190162000ad9816200100e565b63ffffffff82549160031b1b1916905560008051602062001b0d8339815191525560005260008051602062001b2d833981519152602052600060408120550162000a02565b634e487b7160e01b600052603160045260246000fd5b62000bb09061ffff602062000b49896200100e565b90549060031b1c60e01b9262000b6984620007d48585850151166200100e565b01516001600160e01b0319909216600090815260008051602062001b2d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000aad565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c2190600483019062000f99565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b60649150118462000291565b60405163312f8e0560e01b8152600490fd5b600080fd5b84516001600160401b03811162000c8257601f199190888401016080810190606090860384011262000c82576040519062000cc28262000ea7565b6020810151825262000cd76040820162000f1b565b60208301526060810151906001600160401b03821162000c8257019185608001603f8401121562000c82576020830151916001600160401b03831162000d6d5762000d2e602060405196601f860116018662000edf565b828552866080016040848601011162000c82578462000d5a602096948796604088809801910162000f30565b604082015281520195019490506200023c565b60246000634e487b7160e01b81526041600452fd5b6020809162000d918462000f1b565b81520191019062000190565b82516001600160401b03811162000c8257606090830160808101908903601f1901821362000c82576040519162000dd48362000ea7565b62000de26020830162000f1b565b83526040820151600381101562000c82576020840152810151906001600160401b03821162000c82570188608001603f8201121562000c825760208101519062000e2c8262000f03565b9162000e3c604051938462000edf565b808352602083018b60800160408360051b8501011162000c825760408301905b60408360051b850101821062000e845750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000c825781526020918201910162000e5c565b606081019081106001600160401b038211176200058757604052565b604081019081106001600160401b038211176200058757604052565b601f909101601f19168101906001600160401b038211908210176200058757604052565b6001600160401b038111620005875760051b60200190565b51906001600160a01b038216820362000c8257565b60005b83811062000f445750506000910152565b818101518382015260200162000f33565b81811062000f61575050565b6000815560010162000f55565b805182101562000f835760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c235752565b90815180825260208080930193019160005b82811062000fc8575050505090565b83516001600160e01b0319168552938101939281019260010162000fb9565b90602091620010028151809281855285808601910162000f30565b601f01601f1916010190565b9060008051602062001b0d833981519152805483101562000f8357600052601c60206000208360031c019260021b1690565b803b156200104c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200085c90604483019062000fe7565b908082519081815260208091019281808460051b8301019501936000915b848310620010b15750505050505090565b9091929394958480620010f4600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062000fe7565b9801930193019194939290620010a0565b90600182811c9216801562001137575b60208310146200112157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001115565b9190601f81116200115257505050565b62001181926000526020600020906020601f840160051c8301931062001183575b601f0160051c019062000f55565b565b909150819062001173565b908082146200127757620011a3815462001105565b906001600160401b03821162000587578190620011cd82620011c6865462001105565b8662001142565b600090601f83116001146200120757600092620011fb575b50508160011b916000199060031b1c1916179055565b015490503880620011e5565b81526020808220858352818320935090601f1985169083905b8282106200125d57505090846001959493921062001243575b505050811b019055565b015460001960f88460031b161c1916905538808062001239565b849581929585015481556001809101960194019062001220565b5050565b60045481101562000f835760046000526003602060002091020190600090565b90620013a95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200058757620013078362001300875462001105565b8762001142565b81601f841160011462001343575092829391839260009462001337575b50501b916000199060031b1c1916179055565b01519250388062001324565b919083601f1981168760005284600020946000905b888383106200138e57505050106200137457505050811b019055565b015160001960f88460031b161c1916905538808062001239565b85870151885590960195948501948793509081019062001358565b634e487b7160e01b600052600060045260246000fd5b604090815190602090818352620013e181518584860152606085019062001082565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200174e575b505060049182549168010000000000000000958684116200173957600654846006558085106200164f575b50600093858552868520600686528786209086905b838210620015f95750505050808854169160018060401b03199283600754161760075583515193865498865b8681106200157757505050511690875416178655808511620014ba575b505050505050565b84811015620014b2578254801562001564576000190190620014dc826200127b565b9290926200155257838355836002600194828682015501620014ff815462001105565b8062001512575b505050845501620014ba565b82601f8083116001146200152e57505050555b83388062001506565b8382528a82209391926200154a91018d1c840188850162000f55565b555562001525565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ae5780620015a762001594600193865162000f6e565b51620015a0836200127b565b906200129b565b0162001495565b620015bb81845162000f6e565b51895483811015620015e65760019291620015a0828d86620015e0950190556200127b565b620015a7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001616575b600380910193019101909162001469565b805484558180850190838060a01b039083015416838060a01b03198254161790556200164960028083019086016200118e565b62001605565b6003908082029082820403620017245785820282810487036200170f57886000916006835281832093840193015b8c8482106200169157505050505062001454565b85928491828455600183818601556002850191620016b0835462001105565b9182620016c7575b5050505050500189906200167d565b8591601f808511600114620016eb5750505050509050555b828b388f8082620016b8565b859496849662001707955286209601901c850190850162000f55565b5555620016df565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b85835116866007541690818114620018d45710620018c357815191620017748362000ec3565b600454620017828162000f03565b91620017918151938462000edf565b81835287830190600460005288600020906000925b848410620017da57505050918452505084820152620017c69083620018df565b620017d357388062001429565b5050505050565b8a8d835190620017ea8262000ea7565b8554825260018060a01b0360018701541683830152600286018551916000918054620018168162001105565b8086529260018216918215620018a05750506001146200185c575b50509181620018496001969360039695038262000edf565b86820152815201930193019291620017a6565b60009081528581209092505b8183106200188157505081018301816200184962001831565b8060019196929394959654838688010152019201908f94939262001868565b60ff19168689015292151590921b84018601925083915062001849905062001831565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b0391821691160362001991576200190a8162001999565b620019158462001999565b0362001991575180518351510362001991576200198a6200197d9160405190816200194b86820192878452604083019062001082565b039162001961601f199384810183528262000edf565b5190209451604051938491868301968752604083019062001082565b0390810183528262000edf565b5190201490565b505050600090565b8051519060009182915b818310620019b15750505090565b909192620019c184835162000f6e565b515181018091116200080657926001019190620019a356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","sourceMap":"1116:4466:37:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1116:4466:37;;;-1:-1:-1;;;;;;;1116:4466:37;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1116:4466:37;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1671:31;1667:94;;1116:4466;;;;;;1803:2;1775:30;;:65;;;;;1116:4466;1771:130;;;2258:16:62;1116:4466:37;;-1:-1:-1;;;;;;1116:4466:37;1939:10;1116:4466;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;-1:-1:-1;1116:4466:37;;1108:5;;-1:-1:-1;2937:19:62;;;;;;1116:4466:37;;;;;;;;;;;;1108:5;1116:4466;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;3911:74:62;1116:4466:37;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;:::i;:::-;3911:74:62;;;2170:22:37;1116:4466;;;;;;;-1:-1:-1;;1116:4466:37;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1116:4466:37;;;;;;;;;;2404:14;998:1;;-1:-1:-1;;1108:5:37;2170:22;1108:5;;;2740:18;;1108:5;;2724:13;1108:5;;-1:-1:-1;;;;;;1108:5:37;;;-1:-1:-1;;;;;1116:4466:37;;;1108:5;;;;;;;;;;;1116:4466;;;1108:5;;;;;;;1116:4466;1108:5;;;;1116:4466;1108:5;;;;;;;;;;;1116:4466;1108:5;;;-1:-1:-1;1108:5:37;1116:4466;-1:-1:-1;1108:5:37;-1:-1:-1;1108:5:37;;;;;;4069:7;1116:4466;;2928:21;1116:4466;;;;;;;2768:21;1108:5;1116:4466;;;;2828:16;1108:5;1116:4466;;;;;;998:1;2870:20;998:1;1116:4466;;2870:20;998:1;1108:5;2928:37;1108:5;2979:43;1108:5;282:3:80;3219:24:37;1108:5;1116:4466;1108:5;;;1116:4466;1108:5;1116:4466;;;246:2:80;953:5:37;1116:4466;246:2:80;953:5:37;;;;246:2:80;953:5:37;246:2:80;;;1116:4466:37;246:2:80;15673:1:69;1116:4466:37;15673:1:69;;;;;3518:27:37;1108:5;15673:1:69;;3518:27:37;15673:1:69;1116:4466:37;4005:24;1116:4466;;;;;;:::i;:::-;15673:1:69;;-1:-1:-1;1116:4466:37;3957:74;;15673:1:69;4069:7:37;:::i;:::-;1116:4466;;;;;;;;;1108:5;;;-1:-1:-1;;;;;1116:4466:37;1108:5;;;;1116:4466;1108:5;;;;;;;;;;;;-1:-1:-1;1108:5:37;;;-1:-1:-1;1108:5:37;;;;;;;:::i;:::-;;;;;1116:4466;;;-1:-1:-1;1116:4466:37;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2917:18:62;1116:4466:37;3010:23:62;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:62;;;;:::i;:::-;;1108:5:37;1116:4466;1108:5;;;3142:29:62;3138:122;;1116:4466:37;3309:23:62;;;;:::i;:::-;;:30;1116:4466:37;;;;;;;3357:37:62;;;4150:27;;;4146:116;;1116:4466:37;-1:-1:-1;;;;;;;;;;;1108:5:37;1116:4466;4385:74:62;1116:4466:37;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1116:4466:37;;;;4385:74:62;;:::i;:::-;1108:5:37;;4526:21:62;-1:-1:-1;4521:677:62;4549:22;;;;;;3353:466;;;;;1116:4466:37;3353:466:62;;1116:4466:37;2917:18:62;;4526:21;-1:-1:-1;;;;;;4607:33:62;;;;:::i;:::-;1116:4466:37;;-1:-1:-1;1116:4466:37;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;4751:128:62;;1116:4466:37;;;;;;:::i;:::-;;;;;;;;;;4939:107:62;;;1116:4466:37;;;-1:-1:-1;1116:4466:37;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;;1108:5;;1116:4466;;246:2:80;;-1:-1:-1;;;;;;1116:4466:37;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;-1:-1:-1;;;1116:4466:37;;;;;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;:::i;:::-;;;;;;;;;;;;;;;1108:5;;1116:4466;;;;;;;;;;;;;;;;4526:21:62;;;1116:4466:37;;;;-1:-1:-1;1108:5:37;;;;;-1:-1:-1;1108:5:37;4751:128:62;1116:4466:37;;-1:-1:-1;;;4811:53:62;;;;;1116:4466:37;;;;;4811:53:62;4146:116;1116:4466:37;;-1:-1:-1;;;4200:51:62;;1116:4466:37;4200:51:62;;;1116:4466:37;;;;;;;;;;;:::i;:::-;4200:51:62;;;3353:466;1116:4466:37;3484:41:62;;1116:4466:37;;5372:27:62;;;5368:131;;5508:81;1116:4466:37;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1116:4466:37;;;;5508:81:62;;:::i;:::-;1108:5:37;;5652:21:62;-1:-1:-1;5675:18:62;;;;;;3480:339;;;;1116:4466:37;3480:339:62;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:62;;;;:::i;:::-;1116:4466:37;;-1:-1:-1;1116:4466:37;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;-1:-1:-1;;;;;1116:4466:37;6011:4:62;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;-1:-1:-1;1116:4466:37;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;;-1:-1:-1;;;;;;1116:4466:37;;;;;;;5652:21:62;;6268:123;1116:4466:37;;;;6328:48:62;;;;;;;;;1116:4466:37;6328:48:62;6111:144;1116:4466:37;;-1:-1:-1;;;6174:66:62;;;;;1116:4466:37;;;;;6174:66:62;5980:118;1116:4466:37;;-1:-1:-1;;;6043:40:62;;;;;1116:4466:37;;;;;6043:40:62;5368:131;1116:4466:37;;-1:-1:-1;;;5422:66:62;;1116:4466:37;5422:66:62;;;1116:4466:37;;;;;;;;;;;:::i;3480:339:62:-;3629:30;3619:40;;3629:30;;1108:5:37;-1:-1:-1;;;;;;;;;;;1108:5:37;6826:27:62;;6822:115;;1108:5:37;;;6999:21:62;-1:-1:-1;7022:18:62;;;;;;3615:204;;;;1116:4466:37;3615:204:62;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:62;;;;:::i;:::-;1116:4466:37;;;;-1:-1:-1;1116:4466:37;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;-1:-1:-1;1116:4466:37;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;7278:61:62;7274:153;;1108:5:37;;-1:-1:-1;;;;;1116:4466:37;7597:4:62;7538:64;7534:149;;1116:4466:37;;;;;;;;;;;;;246:2:80;1116:4466:37;7780:68:62;7776:412;;6999:21;1108:5:37;-1:-1:-1;;;;;;;;;;;1108:5:37;1116:4466;;;;;;;-1:-1:-1;;1116:4466:37;;;;:::i;:::-;;;;;;;1108:5;1116:4466;;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;-1:-1:-1;1116:4466:37;-1:-1:-1;;;;;;;;;;;1116:4466:37;;-1:-1:-1;1116:4466:37;;;;;6999:21:62;;1116:4466:37;;;;-1:-1:-1;1116:4466:37;;;;;-1:-1:-1;1116:4466:37;7776:412:62;8033:140;7890:27;1116:4466:37;;7890:27:62;;;:::i;:::-;1116:4466:37;;;;;1108:5;1116:4466;;;7935:80:62;1116:4466:37;7935:65:62;1116:4466:37;;;;246:2:80;1116:4466:37;7935:65:62;:::i;:80::-;1116:4466:37;246:2:80;-1:-1:-1;;;;;;1116:4466:37;;;-1:-1:-1;1116:4466:37;;;-1:-1:-1;;;;;;;;;;;1116:4466:37;;;;;;;-1:-1:-1;;;;1116:4466:37;;;;;;;-1:-1:-1;;;1116:4466:37;;;;;8033:140:62;7776:412;;;7534:149;1116:4466:37;;-1:-1:-1;;;7629:39:62;;;;;1116:4466:37;;;;;7629:39:62;7274:153;1116:4466:37;;-1:-1:-1;;;7366:46:62;;;;;1116:4466:37;;;;;7366:46:62;6822:115;1116:4466:37;;;;6876:50:62;;;;;;;;;1116:4466:37;6876:50:62;3615:204;1116:4466:37;;-1:-1:-1;;;3773:31:62;;1116:4466:37;;;;3773:31:62;;;;1116:4466:37;:::i;:::-;3773:31:62;1116:4466:37;;;;-1:-1:-1;1116:4466:37;;;;;-1:-1:-1;1116:4466:37;3138:122:62;1116:4466:37;;-1:-1:-1;;;3198:47:62;;;;;1116:4466:37;;;;;3198:47:62;1771:130:37;1116:4466;;-1:-1:-1;;;1863:27:37;;;;;1775:65;1837:3;1809:31;;;1775:65;;;1667:94;1116:4466;;-1:-1:-1;;;1725:25:37;;;;;1116:4466;-1:-1:-1;1116:4466:37;;;;;-1:-1:-1;;;;;1116:4466:37;;;;-1:-1:-1;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;-1:-1:-1;;1116:4466:37;;-1:-1:-1;1116:4466:37;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1116:4466:37;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;:::o;:::-;;;;;-1:-1:-1;;1116:4466:37;;;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1116:4466:37;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1116:4466:37;;;;:::o;:::-;;;;;;;;;;;;;1108:5;;;;;;;;:::o;:::-;;;;;;;;1116:4466;1108:5;;1116:4466;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1108:5;;1116:4466;;;;;;;;1108:5;;1116:4466;-1:-1:-1;1116:4466:37;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;1108:5;;1116:4466;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1116:4466:37;;;;:::o;:::-;;-1:-1:-1;;;;;;;;;;;1108:5:37;;1116:4466;;;;;-1:-1:-1;1108:5:37;1116:4466;1108:5;-1:-1:-1;1108:5:37;1116:4466;;;;;;;;;:::o;9308:320:62:-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;1116:4466:37;;;-1:-1:-1;;;9566:45:62;;-1:-1:-1;;;;;1116:4466:37;;;9566:45:62;;;1116:4466:37;;;;;;;;;;;;;;;:::i;:::-;;;1108:5;;1116:4466;;;;;;;;;;;;;;;;;1108:5;;1116:4466;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1108:5;-1:-1:-1;1108:5:37;;-1:-1:-1;1108:5:37;1116:4466;1108:5;1116:4466;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;1108:5;1116:4466;;;;;:::o;:::-;;;;-1:-1:-1;1116:4466:37;;;;;1108:5;;;;;;;;;;;;;-1:-1:-1;1108:5:37;-1:-1:-1;;1116:4466:37;;;1108:5;;1116:4466;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1108:5;1116:4466;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;6344:19:63;1108:5:37;1116:4466;;;;;6344:19:63;-1:-1:-1;1108:5:37;1116:4466;1108:5;-1:-1:-1;1108:5:37;1116:4466;;;;-1:-1:-1;1116:4466:37;:::o;:::-;;;;;;1108:5;;1116:4466;;;;1108:5;1116:4466;;;;;;-1:-1:-1;;;;;;1116:4466:37;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;;;;;;1108:5;;;1116:4466;;;;;;1108:5;1116:4466;-1:-1:-1;;;;;1116:4466:37;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;1108:5;1116:4466;;;;;:::o;:::-;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;;;1108:5;-1:-1:-1;1108:5:37;;-1:-1:-1;1108:5:37;1116:4466;-1:-1:-1;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;1108:5;1116:4466;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;;;;;1108:5;;;;;;;;6087:1976:63;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6167:29:63;1116:4466:37;;;;;;;;;;;;;;;;;;;6167:29:63;;;6344:39;1116:4466:37;;;;;6344:44:63;6340:621;;6087:1976;6344:19;;;1108:5:37;;;1116:4466;;;;;;;;6971:16:63;1108:5:37;1116:4466;6971:16:63;1116:4466:37;;;;;;6087:1976:63;1116:4466:37;;1108:5;;;;;;;6971:16:63;1108:5:37;;;;;1116:4466;;;;;;;;;;;;;;;;;;;;;;;1108:5;;;1116:4466;1108:5;;;1116:4466;1108:5;7042:21:63;;1108:5:37;;;;7306:9:63;;7317:15;;;;;;1108:5:37;;;;1116:4466;1108:5;;;;;;;7817:25:63;;;7813:244;;7301:332;6087:1976;;;;;;:::o;7813:244::-;7888:15;;;;7813:244;7888:15;1108:5:37;;1116:4466;;;;-1:-1:-1;;1116:4466:37;;;;;:::i;:::-;;;;;;1108:5;;;1116:4466;;;;;;;;;;;;;;:::i;:::-;;;;7863:23:63;1116:4466:37;;;;;;7863:23:63;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;1108:5;;;;;;;;;1116:4466;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;1108:5:37;;;;;;1116:4466;1108:5;1116:4466;-1:-1:-1;;;1116:4466:37;;;;;;;;7306:9:63;7354:15;;;;;;7425:21;7389:60;7425:24;1116:4466:37;7425:21:63;;;:24;:::i;:::-;;7389:33;;;:::i;:::-;:60;;:::i;:::-;1116:4466:37;7306:9:63;;7350:214;7524:24;:21;;;:24;:::i;:::-;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7350:214:63;;1116:4466:37;-1:-1:-1;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1108:5;;1116:4466;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;1108:5;;;;;;;;;;;;;;;;;;;;;1116:4466;;1108:5;6971:16:63;1108:5:37;;;;;1116:4466;;;;;;;;;;;;;;;;;;;;1108:5;;;;;;;1116:4466;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1108:5;;;;;1116:4466;1108:5;;;;1116:4466;;;;;;;;;;:::i;:::-;;;;;1108:5;;1116:4466;;;;;1108:5;;;1116:4466;1108:5;;;1116:4466;;;;;1108:5;;;1116:4466;1108:5;1116:4466;;;;;;;;;;;;6340:621:63;1108:5:37;;;1116:4466;;6442:36:63;1116:4466:37;;6408:70:63;;;;6404:115;;6632:69;6628:139;;1116:4466:37;;;;;;:::i;:::-;6344:19:63;1108:5:37;1116:4466;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;1108:5;6344:19:63;-1:-1:-1;1108:5:37;;-1:-1:-1;1108:5:37;1116:4466;-1:-1:-1;1116:4466:37;;;;;;;-1:-1:-1;;;15673:1:69;;;-1:-1:-1;;1116:4466:37;;;15673:1:69;6862:48:63;;;;:::i;:::-;6858:93;;6340:621;;;;6858:93;6930:7;;;;;:::o;1116:4466:37:-;;;;;;;;;:::i;:::-;;;15673:1:69;;1116:4466:37;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;;;;;:::i;:::-;;;;;;;;;6344:39:63;;;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15673:1:69;1116:4466:37;;;;;;;;;;;;-1:-1:-1;1108:5:37;;;;;;-1:-1:-1;;;1116:4466:37;;;;;;-1:-1:-1;;1116:4466:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1116:4466:37;;;;;;;;;;;;;;;;-1:-1:-1;1116:4466:37;;-1:-1:-1;1116:4466:37;;-1:-1:-1;1116:4466:37;;6628:139:63;1116:4466:37;;-1:-1:-1;;;6728:24:63;;6344:19;;6728:24;6404:115;6498:7;;;;;;;;;:::o;8598:561::-;8712:23;;;;1108:5:37;8739:23:63;;;1108:5:37;8712:23:63;;;-1:-1:-1;;;;;1116:4466:37;;;;;8712:50:63;8708:93;;8814:26;;;:::i;:::-;8844;;;:::i;:::-;8814:56;8810:99;;8922:14;1108:5:37;;8947:14:63;;1108:5:37;8922:46:63;8918:89;;9099:26;1116:4466:37;;;;9039:26:63;;1116:4466:37;9039:26:63;;;1116:4466:37;;;;;;;;;:::i;:::-;9039:26:63;1116:4466:37;9039:26:63;1116:4466:37;;9039:26:63;;;;;;;;:::i;:::-;1108:5:37;9029:37:63;;9110:14;;1116:4466:37;;9099:26:63;;;;;;1116:4466:37;;;;;;;;:::i;:::-;9099:26:63;;;;;;;;:::i;:::-;1108:5:37;9089:37:63;;9144:8;8598:561;:::o;8918:89::-;8984:12;;;-1:-1:-1;8984:12:63;:::o;8132:387::-;8243:15;;1108:5:37;8275:29:63;1108:5:37;8319:9:63;;8314:161;8330:7;;;;;;8484:28;;;8132:387;:::o;8319:9::-;8380:15;;;:18;:15;;;:18;:::i;:::-;;1116:4466:37;;;;;;;;8355:50:63;1116:4466:37;;;8319:9:63;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033","sourceMap":"1116:4466:37:-:0;;;;;;;-1:-1:-1;4473:7:37;;-1:-1:-1;;;;;;4473:7:37;260:43:62;;;;;;1116:4466:37;260:43:62;;;-1:-1:-1;;;;;260:43:62;;4508:19:37;;4504:82;;1116:4466;;;;;4730:593;;;1116:4466;;4730:593;;;;;;;;;;;;;;;;;4504:82;260:43:62;;1116:4466:37;260:43:62;4550:25:37;;;;;;;;;260:43:62;4550:25:37;1116:4466;-1:-1:-1;4473:7:37;;-1:-1:-1;;;;;;4473:7:37;260:43:62;;;;;;1116:4466:37;260:43:62;;;-1:-1:-1;;;;;260:43:62;;4508:19:37;;4504:82;;1116:4466;;;;;4730:593;;;1116:4466;;4730:593;;;;;;;;;;;;;4504:82;4550:25;;;1116:4466;4550:25;;260:43:62;4550:25:37;1116:4466;4550:25","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"networkName\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"msgFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"genesisValidators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"}],\"internalType\":\"struct GatewayDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"FunctionNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMajorityPercentage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubmissionPeriod\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldConfigurationNumber\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/GatewayDiamond.sol\":\"GatewayDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"struct GatewayDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"networkName","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"bottomUpCheckPeriod","type":"uint256"},{"internalType":"uint256","name":"msgFee","type":"uint256"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"struct Validator[]","name":"genesisValidators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"type":"error","name":"FunctionNotFound"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[],"type":"error","name":"InvalidMajorityPercentage"},{"inputs":[],"type":"error","name":"InvalidSubmissionPeriod"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[],"type":"error","name":"OldConfigurationNumber"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/GatewayDiamond.sol":"GatewayDiamond"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/GatewayDiamond.sol","id":36171,"exportedSymbols":{"BATCH_PERIOD":[49913],"FEATURE_CHECKPOINT_RELAYER_REWARDS":[35861],"FEATURE_CROSSMSG_RELAYER_REWARDS":[35864],"FEATURE_GENERAL_PUPRPOSE_CROSSMSG":[35855],"FEATURE_MULTILEVEL_CROSSMSG":[35852],"FEATURE_SUBNET_DEPTH":[35858],"FunctionNotFound":[35849],"GatewayActorStorage":[43068],"GatewayDiamond":[36170],"IDiamond":[40170],"IDiamondCut":[40189],"IDiamondLoupe":[40230],"IERC165":[40241],"InvalidCollateral":[37416],"InvalidMajorityPercentage":[37428],"InvalidSubmissionPeriod":[37444],"LibDiamond":[41682],"LibGateway":[42944],"LibStaking":[46176],"MAX_MSGS_PER_BATCH":[49910],"Membership":[50218],"SubnetID":[50077],"Validator":[50211]},"nodeType":"SourceUnit","src":"46:5537:37","nodes":[{"id":35817,"nodeType":"PragmaDirective","src":"46:23:37","nodes":[],"literals":["solidity","0.8",".19"]},{"id":35819,"nodeType":"ImportDirective","src":"71:69:37","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"./lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":35818,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43068,"src":"79:19:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35821,"nodeType":"ImportDirective","src":"141:51:37","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":35820,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"149:8:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35823,"nodeType":"ImportDirective","src":"193:57:37","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"./interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":40190,"symbolAliases":[{"foreign":{"id":35822,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"201:11:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35825,"nodeType":"ImportDirective","src":"251:61:37","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"./interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":40231,"symbolAliases":[{"foreign":{"id":35824,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"259:13:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35827,"nodeType":"ImportDirective","src":"313:49:37","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"./interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":40242,"symbolAliases":[{"foreign":{"id":35826,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"321:7:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35830,"nodeType":"ImportDirective","src":"363:59:37","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":35828,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"371:9:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35829,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"382:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35834,"nodeType":"ImportDirective","src":"423:109:37","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"./errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":35831,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37416,"src":"431:17:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35832,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37444,"src":"450:23:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35833,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37428,"src":"475:25:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35836,"nodeType":"ImportDirective","src":"533:48:37","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"./lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":41683,"symbolAliases":[{"foreign":{"id":35835,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"541:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35838,"nodeType":"ImportDirective","src":"582:48:37","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"./lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":35837,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"590:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35840,"nodeType":"ImportDirective","src":"631:46:37","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":35839,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"639:8:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35842,"nodeType":"ImportDirective","src":"678:48:37","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"./lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":35841,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"686:10:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35845,"nodeType":"ImportDirective","src":"727:72:37","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"./structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":36171,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":35843,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49913,"src":"735:12:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35844,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49910,"src":"749:18:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35849,"nodeType":"ErrorDefinition","src":"801:49:37","nodes":[],"errorSelector":"5416eb98","name":"FunctionNotFound","nameLocation":"807:16:37","parameters":{"id":35848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35847,"mutability":"mutable","name":"_functionSelector","nameLocation":"831:17:37","nodeType":"VariableDeclaration","scope":35849,"src":"824:24:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":35846,"name":"bytes4","nodeType":"ElementaryTypeName","src":"824:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"823:26:37"}},{"id":35852,"nodeType":"VariableDeclaration","src":"852:49:37","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_MULTILEVEL_CROSSMSG","nameLocation":"866:27:37","scope":36171,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35850,"name":"bool","nodeType":"ElementaryTypeName","src":"852:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"896:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":35855,"nodeType":"VariableDeclaration","src":"903:55:37","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_GENERAL_PUPRPOSE_CROSSMSG","nameLocation":"917:33:37","scope":36171,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35853,"name":"bool","nodeType":"ElementaryTypeName","src":"903:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"953:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":35858,"nodeType":"VariableDeclaration","src":"960:39:37","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_SUBNET_DEPTH","nameLocation":"975:20:37","scope":36171,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":35856,"name":"uint8","nodeType":"ElementaryTypeName","src":"960:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":35857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"998:1:37","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"id":35861,"nodeType":"VariableDeclaration","src":"1001:56:37","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_CHECKPOINT_RELAYER_REWARDS","nameLocation":"1015:34:37","scope":36171,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35859,"name":"bool","nodeType":"ElementaryTypeName","src":"1001:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1052:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":35864,"nodeType":"VariableDeclaration","src":"1059:54:37","nodes":[],"constant":true,"mutability":"constant","name":"FEATURE_CROSSMSG_RELAYER_REWARDS","nameLocation":"1073:32:37","scope":36171,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35862,"name":"bool","nodeType":"ElementaryTypeName","src":"1059:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":35863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1108:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"internal"},{"id":36170,"nodeType":"ContractDefinition","src":"1116:4466:37","nodes":[{"id":35867,"nodeType":"VariableDeclaration","src":"1146:30:37","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"1175:1:37","scope":36170,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":35866,"nodeType":"UserDefinedTypeName","pathNode":{"id":35865,"name":"GatewayActorStorage","nameLocations":["1146:19:37"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"1146:19:37"},"referencedDeclaration":43068,"src":"1146:19:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":35883,"nodeType":"StructDefinition","src":"1183:320:37","nodes":[],"canonicalName":"GatewayDiamond.ConstructorParams","members":[{"constant":false,"id":35870,"mutability":"mutable","name":"networkName","nameLocation":"1227:11:37","nodeType":"VariableDeclaration","scope":35883,"src":"1218:20:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":35869,"nodeType":"UserDefinedTypeName","pathNode":{"id":35868,"name":"SubnetID","nameLocations":["1218:8:37"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1218:8:37"},"referencedDeclaration":50077,"src":"1218:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":35872,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1256:19:37","nodeType":"VariableDeclaration","scope":35883,"src":"1248:27:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35871,"name":"uint256","nodeType":"ElementaryTypeName","src":"1248:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35874,"mutability":"mutable","name":"msgFee","nameLocation":"1379:6:37","nodeType":"VariableDeclaration","scope":35883,"src":"1371:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35873,"name":"uint256","nodeType":"ElementaryTypeName","src":"1371:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35876,"mutability":"mutable","name":"majorityPercentage","nameLocation":"1401:18:37","nodeType":"VariableDeclaration","scope":35883,"src":"1395:24:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":35875,"name":"uint8","nodeType":"ElementaryTypeName","src":"1395:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":35880,"mutability":"mutable","name":"genesisValidators","nameLocation":"1441:17:37","nodeType":"VariableDeclaration","scope":35883,"src":"1429:29:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":35878,"nodeType":"UserDefinedTypeName","pathNode":{"id":35877,"name":"Validator","nameLocations":["1429:9:37"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"1429:9:37"},"referencedDeclaration":50211,"src":"1429:9:37","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":35879,"nodeType":"ArrayTypeName","src":"1429:11:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":35882,"mutability":"mutable","name":"activeValidatorsLimit","nameLocation":"1475:21:37","nodeType":"VariableDeclaration","scope":35883,"src":"1468:28:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":35881,"name":"uint16","nodeType":"ElementaryTypeName","src":"1468:6:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"1190:17:37","scope":36170,"visibility":"public"},{"id":36114,"nodeType":"FunctionDefinition","src":"1509:2575:37","nodes":[],"body":{"id":36113,"nodeType":"Block","src":"1594:2490:37","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35893,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"1671:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1678:19:37","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":35872,"src":"1671:26:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":35895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1701:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1671:31:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35901,"nodeType":"IfStatement","src":"1667:94:37","trueBody":{"id":35900,"nodeType":"Block","src":"1704:57:37","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":35897,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37444,"src":"1725:23:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":35898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1725:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35899,"nodeType":"RevertStatement","src":"1718:32:37"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":35910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":35905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35902,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"1775:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:18:37","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":35876,"src":"1775:25:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3531","id":35904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1803:2:37","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"1775:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":35909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35906,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"1809:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":35907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1816:18:37","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":35876,"src":"1809:25:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":35908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1837:3:37","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1809:31:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1775:65:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35915,"nodeType":"IfStatement","src":"1771:130:37","trueBody":{"id":35914,"nodeType":"Block","src":"1842:59:37","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":35911,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37428,"src":"1863:25:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":35912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1863:27:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35913,"nodeType":"RevertStatement","src":"1856:34:37"}]}},{"expression":{"arguments":[{"expression":{"id":35919,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1939:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":35920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1943:6:37","memberName":"sender","nodeType":"MemberAccess","src":"1939:10:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":35916,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1911:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":35918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1922:16:37","memberName":"setContractOwner","nodeType":"MemberAccess","referencedDeclaration":41102,"src":"1911:27:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":35921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1911:39:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35922,"nodeType":"ExpressionStatement","src":"1911:39:37"},{"expression":{"arguments":[{"id":35926,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35887,"src":"1996:11:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"hexValue":"30","id":35929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2024:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":35928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2016:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":35927,"name":"address","nodeType":"ElementaryTypeName","src":"2016:7:37","typeDescriptions":{}}},"id":35930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2016:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":35933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2049:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":35932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2039:9:37","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":35931,"name":"bytes","nodeType":"ElementaryTypeName","src":"2043:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":35934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2039:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":35923,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1960:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":35925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1971:10:37","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":41262,"src":"1960:21:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":35935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1983:11:37","2009:5:37","2028:9:37"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"1960:93:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35936,"nodeType":"ExpressionStatement","src":"1960:93:37"},{"assignments":[35941],"declarations":[{"constant":false,"id":35941,"mutability":"mutable","name":"ds","nameLocation":"2098:2:37","nodeType":"VariableDeclaration","scope":36113,"src":"2064:36:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":35940,"nodeType":"UserDefinedTypeName","pathNode":{"id":35939,"name":"LibDiamond.DiamondStorage","nameLocations":["2064:10:37","2075:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"2064:25:37"},"referencedDeclaration":41072,"src":"2064:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":35945,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":35942,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"2103:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":35943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2114:14:37","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"2103:25:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":35944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2103:27:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2064:66:37"},{"expression":{"id":35955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35946,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35941,"src":"2170:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2173:19:37","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"2170:22:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":35953,"indexExpression":{"expression":{"arguments":[{"id":35949,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"2198:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}],"id":35948,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2193:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":35950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2193:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$40241","typeString":"type(contract IERC165)"}},"id":35951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2207:11:37","memberName":"interfaceId","nodeType":"MemberAccess","src":"2193:25:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2170:49:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":35954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2222:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2170:56:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35956,"nodeType":"ExpressionStatement","src":"2170:56:37"},{"expression":{"id":35966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35957,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35941,"src":"2236:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2239:19:37","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"2236:22:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":35964,"indexExpression":{"expression":{"arguments":[{"id":35960,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"2264:11:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}],"id":35959,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2259:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":35961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2259:17:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondCut_$40189","typeString":"type(contract IDiamondCut)"}},"id":35962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2277:11:37","memberName":"interfaceId","nodeType":"MemberAccess","src":"2259:29:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2236:53:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":35965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2292:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2236:60:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35967,"nodeType":"ExpressionStatement","src":"2236:60:37"},{"expression":{"id":35977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35968,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35941,"src":"2306:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2309:19:37","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"2306:22:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":35975,"indexExpression":{"expression":{"arguments":[{"id":35971,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"2334:13:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}],"id":35970,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2329:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":35972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2329:19:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondLoupe_$40230","typeString":"type(contract IDiamondLoupe)"}},"id":35973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2349:11:37","memberName":"interfaceId","nodeType":"MemberAccess","src":"2329:31:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2306:55:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":35976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2364:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2306:62:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35978,"nodeType":"ExpressionStatement","src":"2306:62:37"},{"expression":{"id":35983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35979,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2404:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2406:12:37","memberName":"maxTreeDepth","nodeType":"MemberAccess","referencedDeclaration":43055,"src":"2404:14:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35982,"name":"FEATURE_SUBNET_DEPTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35858,"src":"2421:20:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2404:37:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":35984,"nodeType":"ExpressionStatement","src":"2404:37:37"},{"expression":{"id":35989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35985,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2451:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2453:22:37","memberName":"generalPurposeCrossMsg","nodeType":"MemberAccess","referencedDeclaration":43058,"src":"2451:24:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35988,"name":"FEATURE_GENERAL_PUPRPOSE_CROSSMSG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35855,"src":"2478:33:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2451:60:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35990,"nodeType":"ExpressionStatement","src":"2451:60:37"},{"expression":{"id":35995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35991,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2521:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2523:18:37","memberName":"multiLevelCrossMsg","nodeType":"MemberAccess","referencedDeclaration":43061,"src":"2521:20:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":35994,"name":"FEATURE_MULTILEVEL_CROSSMSG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35852,"src":"2544:27:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2521:50:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35996,"nodeType":"ExpressionStatement","src":"2521:50:37"},{"expression":{"id":36001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35997,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2581:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":35999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2583:24:37","memberName":"checkpointRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":43064,"src":"2581:26:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36000,"name":"FEATURE_CHECKPOINT_RELAYER_REWARDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35861,"src":"2610:34:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2581:63:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36002,"nodeType":"ExpressionStatement","src":"2581:63:37"},{"expression":{"id":36007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36003,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2654:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2656:22:37","memberName":"crossMsgRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":43067,"src":"2654:24:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36006,"name":"FEATURE_CROSSMSG_RELAYER_REWARDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35864,"src":"2681:32:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2654:59:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36008,"nodeType":"ExpressionStatement","src":"2654:59:37"},{"expression":{"id":36014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36009,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2724:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2726:11:37","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"2724:13:37","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36012,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"2740:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2747:11:37","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":35870,"src":"2740:18:37","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"src":"2724:34:37","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":36015,"nodeType":"ExpressionStatement","src":"2724:34:37"},{"expression":{"id":36021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36016,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2768:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2770:19:37","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":43042,"src":"2768:21:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36019,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"2792:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2799:19:37","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":35872,"src":"2792:26:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2768:50:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36022,"nodeType":"ExpressionStatement","src":"2768:50:37"},{"expression":{"id":36028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36023,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2828:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2830:14:37","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":43027,"src":"2828:16:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36026,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"2847:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2854:6:37","memberName":"msgFee","nodeType":"MemberAccess","referencedDeclaration":35874,"src":"2847:13:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2828:32:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36029,"nodeType":"ExpressionStatement","src":"2828:32:37"},{"expression":{"id":36035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36030,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2870:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2872:18:37","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":43030,"src":"2870:20:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36033,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"2893:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2900:18:37","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":35876,"src":"2893:25:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2870:48:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":36036,"nodeType":"ExpressionStatement","src":"2870:48:37"},{"expression":{"id":36043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36037,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2928:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2930:19:37","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"2928:21:37","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":36041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2950:15:37","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"2928:37:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":36042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2968:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2928:41:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36044,"nodeType":"ExpressionStatement","src":"2928:41:37"},{"expression":{"id":36051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36045,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"2979:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2981:25:37","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"2979:27:37","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":36049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3007:15:37","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"2979:43:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":36050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3025:1:37","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2979:47:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36052,"nodeType":"ExpressionStatement","src":"2979:47:37"},{"expression":{"id":36057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36053,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"3219:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3221:22:37","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":43045,"src":"3219:24:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36056,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49913,"src":"3246:12:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3219:39:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36058,"nodeType":"ExpressionStatement","src":"3219:39:37"},{"expression":{"id":36063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36059,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"3268:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3270:23:37","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":43048,"src":"3268:25:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36062,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49910,"src":"3296:18:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3268:46:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36064,"nodeType":"ExpressionStatement","src":"3268:46:37"},{"expression":{"id":36074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":36065,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"3325:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3327:17:37","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"3325:19:37","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":36070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3345:10:37","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"3325:30:37","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":36071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3356:11:37","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"3325:42:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36072,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"3370:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3377:21:37","memberName":"activeValidatorsLimit","nodeType":"MemberAccess","referencedDeclaration":35882,"src":"3370:28:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3325:73:37","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36075,"nodeType":"ExpressionStatement","src":"3325:73:37"},{"expression":{"id":36085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":36076,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"3518:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3520:17:37","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"3518:19:37","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":36081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3538:7:37","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"3518:27:37","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":36082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3546:23:37","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"3518:51:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36083,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"3572:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":36084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3583:28:37","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":45319,"src":"3572:39:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3518:93:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36086,"nodeType":"ExpressionStatement","src":"3518:93:37"},{"expression":{"id":36096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":36087,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35867,"src":"3769:1:37","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":36091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3771:17:37","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"3769:19:37","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":36092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3789:7:37","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"3769:27:37","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":36093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3797:24:37","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"3769:52:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36094,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"3824:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":36095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3835:28:37","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":45319,"src":"3824:39:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3769:94:37","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36097,"nodeType":"ExpressionStatement","src":"3769:94:37"},{"assignments":[36100],"declarations":[{"constant":false,"id":36100,"mutability":"mutable","name":"initial","nameLocation":"3947:7:37","nodeType":"VariableDeclaration","scope":36113,"src":"3929:25:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":36099,"nodeType":"UserDefinedTypeName","pathNode":{"id":36098,"name":"Membership","nameLocations":["3929:10:37"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"3929:10:37"},"referencedDeclaration":50218,"src":"3929:10:37","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"id":36106,"initialValue":{"arguments":[{"hexValue":"30","id":36102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3990:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":36103,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35890,"src":"4005:6:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"id":36104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4012:17:37","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":35880,"src":"4005:24:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"id":36101,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"3957:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Membership_$50218_storage_ptr_$","typeString":"type(struct Membership storage pointer)"}},"id":36105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3969:19:37","3993:10:37"],"names":["configurationNumber","validators"],"nodeType":"FunctionCall","src":"3957:74:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"nodeType":"VariableDeclarationStatement","src":"3929:102:37"},{"expression":{"arguments":[{"id":36110,"name":"initial","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36100,"src":"4069:7:37","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}],"expression":{"id":36107,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"4041:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":36109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4052:16:37","memberName":"updateMembership","nodeType":"MemberAccess","referencedDeclaration":42258,"src":"4041:27:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Membership_$50218_memory_ptr_$returns$__$","typeString":"function (struct Membership memory)"}},"id":36111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4041:36:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36112,"nodeType":"ExpressionStatement","src":"4041:36:37"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":35891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35887,"mutability":"mutable","name":"_diamondCut","nameLocation":"1548:11:37","nodeType":"VariableDeclaration","scope":36114,"src":"1521:38:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":35885,"nodeType":"UserDefinedTypeName","pathNode":{"id":35884,"name":"IDiamond.FacetCut","nameLocations":["1521:8:37","1530:8:37"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"1521:17:37"},"referencedDeclaration":40159,"src":"1521:17:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":35886,"nodeType":"ArrayTypeName","src":"1521:19:37","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":35890,"mutability":"mutable","name":"params","nameLocation":"1586:6:37","nodeType":"VariableDeclaration","scope":36114,"src":"1561:31:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":35889,"nodeType":"UserDefinedTypeName","pathNode":{"id":35888,"name":"ConstructorParams","nameLocations":["1561:17:37"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"1561:17:37"},"referencedDeclaration":35883,"src":"1561:17:37","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"1520:73:37"},"returnParameters":{"id":35892,"nodeType":"ParameterList","parameters":[],"src":"1594:0:37"},"scope":36170,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":36153,"nodeType":"FunctionDefinition","src":"4090:1239:37","nodes":[],"body":{"id":36152,"nodeType":"Block","src":"4120:1209:37","nodes":[],"statements":[{"assignments":[36121],"declarations":[{"constant":false,"id":36121,"mutability":"mutable","name":"ds","nameLocation":"4164:2:37","nodeType":"VariableDeclaration","scope":36152,"src":"4130:36:37","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36120,"nodeType":"UserDefinedTypeName","pathNode":{"id":36119,"name":"LibDiamond.DiamondStorage","nameLocations":["4130:10:37","4141:14:37"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"4130:25:37"},"referencedDeclaration":41072,"src":"4130:25:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36122,"nodeType":"VariableDeclarationStatement","src":"4130:36:37"},{"assignments":[36124],"declarations":[{"constant":false,"id":36124,"mutability":"mutable","name":"position","nameLocation":"4184:8:37","nodeType":"VariableDeclaration","scope":36152,"src":"4176:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36123,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4176:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36127,"initialValue":{"expression":{"id":36125,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"4195:10:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4206:24:37","memberName":"DIAMOND_STORAGE_POSITION","nodeType":"MemberAccess","referencedDeclaration":40973,"src":"4195:35:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4176:54:37"},{"AST":{"nodeType":"YulBlock","src":"4326:43:37","statements":[{"nodeType":"YulAssignment","src":"4340:19:37","value":{"name":"position","nodeType":"YulIdentifier","src":"4351:8:37"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"4340:7:37"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":36121,"isOffset":false,"isSlot":true,"src":"4340:7:37","suffix":"slot","valueSize":1},{"declaration":36124,"isOffset":false,"isSlot":false,"src":"4351:8:37","valueSize":1}],"id":36128,"nodeType":"InlineAssembly","src":"4317:52:37"},{"assignments":[36130],"declarations":[{"constant":false,"id":36130,"mutability":"mutable","name":"facet","nameLocation":"4430:5:37","nodeType":"VariableDeclaration","scope":36152,"src":"4422:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36129,"name":"address","nodeType":"ElementaryTypeName","src":"4422:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":36137,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36131,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36121,"src":"4438:2:37","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4441:31:37","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"4438:34:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36135,"indexExpression":{"expression":{"id":36133,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4473:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4477:3:37","memberName":"sig","nodeType":"MemberAccess","src":"4473:7:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4438:43:37","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4482:12:37","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"4438:56:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4422:72:37"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36138,"name":"facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36130,"src":"4508:5:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4525:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4517:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36139,"name":"address","nodeType":"ElementaryTypeName","src":"4517:7:37","typeDescriptions":{}}},"id":36142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4517:10:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4508:19:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36150,"nodeType":"IfStatement","src":"4504:82:37","trueBody":{"id":36149,"nodeType":"Block","src":"4529:57:37","statements":[{"errorCall":{"arguments":[{"expression":{"id":36145,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4567:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4571:3:37","memberName":"sig","nodeType":"MemberAccess","src":"4567:7:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":36144,"name":"FunctionNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35849,"src":"4550:16:37","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":36147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4550:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36148,"nodeType":"RevertStatement","src":"4543:32:37"}]}},{"AST":{"nodeType":"YulBlock","src":"4739:584:37","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4822:1:37","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4825:1:37","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"4828:12:37"},"nodeType":"YulFunctionCall","src":"4828:14:37"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4809:12:37"},"nodeType":"YulFunctionCall","src":"4809:34:37"},"nodeType":"YulExpressionStatement","src":"4809:34:37"},{"nodeType":"YulVariableDeclaration","src":"4909:65:37","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"4936:3:37"},"nodeType":"YulFunctionCall","src":"4936:5:37"},{"name":"facet","nodeType":"YulIdentifier","src":"4943:5:37"},{"kind":"number","nodeType":"YulLiteral","src":"4950:1:37","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"4953:12:37"},"nodeType":"YulFunctionCall","src":"4953:14:37"},{"kind":"number","nodeType":"YulLiteral","src":"4969:1:37","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4972:1:37","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"4923:12:37"},"nodeType":"YulFunctionCall","src":"4923:51:37"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"4913:6:37","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5038:1:37","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5041:1:37","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5044:14:37"},"nodeType":"YulFunctionCall","src":"5044:16:37"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"5023:14:37"},"nodeType":"YulFunctionCall","src":"5023:38:37"},"nodeType":"YulExpressionStatement","src":"5023:38:37"},{"cases":[{"body":{"nodeType":"YulBlock","src":"5174:59:37","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5199:1:37","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5202:14:37"},"nodeType":"YulFunctionCall","src":"5202:16:37"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5192:6:37"},"nodeType":"YulFunctionCall","src":"5192:27:37"},"nodeType":"YulExpressionStatement","src":"5192:27:37"}]},"nodeType":"YulCase","src":"5167:66:37","value":{"kind":"number","nodeType":"YulLiteral","src":"5172:1:37","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"5254:59:37","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5279:1:37","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5282:14:37"},"nodeType":"YulFunctionCall","src":"5282:16:37"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"5272:6:37"},"nodeType":"YulFunctionCall","src":"5272:27:37"},"nodeType":"YulExpressionStatement","src":"5272:27:37"}]},"nodeType":"YulCase","src":"5246:67:37","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"5148:6:37"},"nodeType":"YulSwitch","src":"5141:172:37"}]},"evmVersion":"paris","externalReferences":[{"declaration":36130,"isOffset":false,"isSlot":false,"src":"4943:5:37","valueSize":1}],"id":36151,"nodeType":"InlineAssembly","src":"4730:593:37"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"4099:9:37","parameters":{"id":36115,"nodeType":"ParameterList","parameters":[],"src":"4108:2:37"},"returnParameters":{"id":36116,"nodeType":"ParameterList","parameters":[],"src":"4120:0:37"},"scope":36170,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":36161,"nodeType":"FunctionDefinition","src":"5396:56:37","nodes":[],"body":{"id":36160,"nodeType":"Block","src":"5424:28:37","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36157,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36153,"src":"5434:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5434:11:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36159,"nodeType":"ExpressionStatement","src":"5434:11:37"}]},"documentation":{"id":36154,"nodeType":"StructuredDocumentation","src":"5335:56:37","text":"@notice Will run when no functions matches call data"},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36155,"nodeType":"ParameterList","parameters":[],"src":"5404:2:37"},"returnParameters":{"id":36156,"nodeType":"ParameterList","parameters":[],"src":"5424:0:37"},"scope":36170,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":36169,"nodeType":"FunctionDefinition","src":"5525:55:37","nodes":[],"body":{"id":36168,"nodeType":"Block","src":"5552:28:37","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36165,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36153,"src":"5562:9:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5562:11:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36167,"nodeType":"ExpressionStatement","src":"5562:11:37"}]},"documentation":{"id":36162,"nodeType":"StructuredDocumentation","src":"5458:62:37","text":"@notice Same as fallback but called when calldata is empty"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36163,"nodeType":"ParameterList","parameters":[],"src":"5532:2:37"},"returnParameters":{"id":36164,"nodeType":"ParameterList","parameters":[],"src":"5552:0:37"},"scope":36170,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayDiamond","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36170],"name":"GatewayDiamond","nameLocation":"1125:14:37","scope":36171,"usedErrors":[35849,37428,37444,37492,40981,40986,40990,40994,40999,41005,41018,41022,41026,41030,41034,41038,41042]}],"license":"MIT OR Apache-2.0"},"id":37} \ No newline at end of file diff --git a/.out/GatewayGetterFacet.sol/GatewayGetterFacet.json b/.out/GatewayGetterFacet.sol/GatewayGetterFacet.json index c0e3567c5..9ffbca953 100644 --- a/.out/GatewayGetterFacet.sol/GatewayGetterFacet.json +++ b/.out/GatewayGetterFacet.sol/GatewayGetterFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"appliedTopDownNonce","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckpoint","inputs":[{"name":"e","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"bottomUpMsgBatch","inputs":[{"name":"e","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"stateMutability":"view"},{"type":"function","name":"bottomUpMsgBatchPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bottomUpNonce","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"crossMsgFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAppliedTopDownNonce","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgBatchCurrentWeight","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgBatchInfo","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgBatchSignatureBundle","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"info","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgRetentionHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCheckpointCurrentWeight","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCheckpointInfo","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getCheckpointRetentionHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCheckpointSignatureBundle","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ch","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"info","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBottomUpCheckpoint","inputs":[],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getCurrentConfigurationNumber","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getCurrentMembership","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Membership","components":[{"name":"validators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getIncompleteCheckpointHeights","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getIncompleteCheckpoints","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct BottomUpCheckpoint[]","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getIncompleteMsgBatchHeights","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getIncompleteMsgBatches","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct BottomUpMsgBatch[]","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"stateMutability":"view"},{"type":"function","name":"getLastConfigurationNumber","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getLastMembership","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Membership","components":[{"name":"validators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getLatestParentFinality","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getNetworkName","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getParentFinality","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getQuorumThreshold","inputs":[{"name":"totalWeight","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSubnet","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"tuple","internalType":"struct Subnet","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"genesisEpoch","type":"uint256","internalType":"uint256"},{"name":"circSupply","type":"uint256","internalType":"uint256"},{"name":"topDownNonce","type":"uint64","internalType":"uint64"},{"name":"appliedBottomUpNonce","type":"uint64","internalType":"uint64"},{"name":"status","type":"uint8","internalType":"enum Status"},{"name":"id","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"getSubnetTopDownMsgsLength","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"listSubnets","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Subnet[]","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"genesisEpoch","type":"uint256","internalType":"uint256"},{"name":"circSupply","type":"uint256","internalType":"uint256"},{"name":"topDownNonce","type":"uint64","internalType":"uint64"},{"name":"appliedBottomUpNonce","type":"uint64","internalType":"uint64"},{"name":"status","type":"uint8","internalType":"enum Status"},{"name":"id","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"majorityPercentage","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"maxMsgsPerBottomUpBatch","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"minStake","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"postbox","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"storableMsg","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"subnets","inputs":[{"name":"h","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"subnet","type":"tuple","internalType":"struct Subnet","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"genesisEpoch","type":"uint256","internalType":"uint256"},{"name":"circSupply","type":"uint256","internalType":"uint256"},{"name":"topDownNonce","type":"uint64","internalType":"uint64"},{"name":"appliedBottomUpNonce","type":"uint64","internalType":"uint64"},{"name":"status","type":"uint8","internalType":"enum Status"},{"name":"id","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"totalSubnets","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523461001657612290908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114d15781630338150f1461148b57816305aff0b31461146457816306572c1a1461143357816306c468531461141457816322180594146113f557816324729425146113d65781632da5794a1461135d578163335eb62a14611160578163375b3c0a1461114157816341b6a2e8146111165781634aa8f8a5146110f7578163544dddff146110cf578163599c7bd1146110ad5781635d02968514610f965781636547cd6414610f6b57816369e737fd14610f4c5781636ad21bb014610e6e578163767ee5f414610df45781637edeac9214610da55781638789f83b14610d7a5781638cfd78e714610cea57816394074b0314610c345781639704276614610a935781639d3070b514610a4d5781639e530b5714610a1b578163a2b67158146109f0578163a517218f1461096c578163a9294bdd146107d0578163ac12d76314610792578163b1ba49b01461076a578163b3ab3f741461073f578163b9ee5842146106a2578163c66c66a114610651578163ca41d5ce146104ed578163d6c5c3971461037d578163dd81b5cf146102a8575063f3229131146101c557600080fd5b346102a457816003193601126102a4576101dd611e81565b508051906101ea826118ea565b6006546101f68161195c565b6102028351918261193b565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b8282106102625750505061025e945083526001600160401b03600754169083015251918291826117c3565b0390f35b6003856001928851610273816118cf565b8b548152848060a01b03858d0154168382015261029260028d01611bcc565b8a820152815201980191019096610233565b5080fd5b919050346103795760209182600319360112610375576102c6611ba5565b50358352600982528083209260038251946102e0866118cf565b6102e981611afe565b8652600281015485870152018054906103018261195c565b9261030e8551948561193b565b828452908152848120858085015b84841061033b5786890186905286518281528061025e8185018c61172a565b600191600d91885161034c816118ea565b61035586611ce3565b815260ff600c87015416151583820152815201920192019190869061031c565b8380fd5b8280fd5b8383346102a457816003193601126102a457610397611b79565b506103a0611b79565b50601e549081156104da576001600160401b03918083431604600181018091116104c757906103ce91612231565b80845261042c6020809660088252848720908551966103ec8861189e565b816103f684611afe565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612083565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104bc578095610475575b50508160609161025e94935196879615875286015284015260608301906115ef565b909194508582813d83116104b5575b61048e818361193b565b810103126104b2575061025e92916104a7606092611ec6565b949181939450610453565b80fd5b503d610484565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b919050346103795760203660031901126103795781359161050c611b79565b50610515611e9b565b508284526008602052818420926001600160401b03828451956105378761189e565b61054081611afe565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af4908115610647579061025e9291856105c79691818094610617575b50506105fc610609939451978897610100808a528901906115ef565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a52565b9083820360e0850152611a8f565b61060994506105fc935061063d92503d8091833e610635818361193b565b810190611ed3565b91929091936105ab565b82513d86823e3d90fd5b8284346104b2575061068b61025e61068361067e61066e36611a21565b610676611d5a565b503690611973565b612121565b929092611d99565b835193849315158452806020850152830190611571565b91905034610379576020366003190112610379578060ff61073d9260a0956106c8611e9b565b5085358152601360205220938251946106e086611920565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b9050346103795760203660031901126103795781602093600392358152600c85522001549051908152f35b5050346102a457816003193601126102a4576020906001600160401b03600754169051908152f35b91905034610379576020366003190112610379578060ff61073d9260a0956107b8611e9b565b5085358152600c60205220938251946106e086611920565b919050346103795760209182600319360112610375578035926107f1611ba5565b506107fa611e9b565b5083855260098152828520936003845195610814876118cf565b61081d81611afe565b87526002810154848801520180546108348161195c565b916108418751938461193b565b81835288528388208890858085015b8484106109325750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561092857908561025e9493926108cc97908280956108ff575b50506105fc90610609949551988998610100808b528a019061172a565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b61060995506105fc935061091d92503d8091833e610635818361193b565b9490925081906108af565b83513d87823e3d90fd5b600191600d918b51610943816118ea565b61094c86611ce3565b815260ff600c870154161515838201528152019201920191908690610850565b8284346104b257806003193601126104b2578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109d95761025e86866109cf828b038361193b565b5191829182611863565b8354875295860195600193840193909101906109b7565b5050346102a457816003193601126102a4576020906001600160401b03601d5460881c169051908152f35b8284346104b257506001600160401b03610a3c610a3736611a21565b611e03565b835191151582529091166020820152f35b8284346104b25760203660031901126104b25782356001600160401b03918282116104b25750610a8761067e602095600393369101611973565b90500154169051908152f35b905082346104b257806003193601126104b25782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1e57505050610af59250038561193b565b835191610b018361195c565b91610b0e8751938461193b565b838352601f19610b1d8561195c565b0182865b828110610c0857505050845b6001600160401b039081811686811015610bab5790610ba38284610b536001958d611e57565b51168a52600887528b8587828d20835193610b6d8561189e565b610b7682611afe565b855260028201548c8601526003820154908501520154166060820152610b9c828a611e57565b5287611e57565b500116610b2d565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bdc5785850386f35b909192938280610bf8600193603f198a820301865288516115ef565b9601920196019592919092610bcf565b610c10611b79565b828288010152018390610b21565b855484526001958601958a955093019201610ade565b8284346104b257806003193601126104b257610c4e611ae4565b50815191610c5b836118ea565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610ccd57889061025e8888610cba818a038261193b565b8385015251928284938452830190611516565b83546001600160a01b031685529093019260019283019201610c9f565b905034610379576020366003190112610379579181928160c08451610d0e81611905565b610d16611e35565b8152610d20611e35565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d5a60ff600c8401541692611ce3565b91610d6e82519383859485528401906116b0565b90151560208301520390f35b5050346102a457816003193601126102a4576020906001600160401b03601d5460481c169051908152f35b90503461037957602036600319011261037957610dd89061025e9360208451610dcd816118ea565b8281520152356120e2565b9051918291829190916020806040830194805184520151910152565b8284346104b257806003193601126104b2578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e575761025e86866109cf828b038361193b565b835487529586019560019384019390910190610e3f565b8383346102a457816003193601126102a4578290610e8a611e81565b50805191610e97836118ea565b8054610ea28161195c565b90610eaf8451928361193b565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610f0a5750505061025e945083526001600160401b03600554169083015251918291826117c3565b6003856001928851610f1b816118cf565b8b548152848060a01b03858d01541683820152610f3a60028d01611bcc565b8a820152815201980191019096610edf565b5050346102a457816003193601126102a457602090601f549051908152f35b9050346103795760203660031901126103795781602093600392358152601385522001549051908152f35b8284346104b257806003193601126104b257601854610fb48161195c565b90610fc18451928361193b565b808252601f19610fd08261195c565b01835b818110611096575050825b818110611042575050825191602080840190808552835180925280868601968360051b870101940192955b8287106110165785850386f35b909192938280611032600193603f198a82030186528851611571565b9601920196019592919092611009565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261107a868620611d99565b6110848286611e57565b5261108f8185611e57565b5001610fde565b6020906110a1611d5a565b82828701015201610fd3565b5050346102a457816003193601126102a45760209060ff601d54169051908152f35b5050346102a457816003193601126102a4576020906001600160401b03600554169051908152f35b5050346102a457816003193601126102a457602090600b549051908152f35b5050346102a457816003193601126102a4576020906001600160401b03601d5460081c169051908152f35b5050346102a457816003193601126102a457602090601b549051908152f35b5050346102a457816003193601126102a45780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b86828210611347575050506111c19250038561193b565b8351916111cd8361195c565b916111da8551938461193b565b838352601f196111e98561195c565b0182825b82811061133157505050805b6001600160401b0390818116868110156112d55782611218828b611e57565b51168452600985528784206003895191611231836118cf565b61123a81611afe565b83526002810154888401520180546112518161195c565b9161125e8c51938461193b565b818352875287872087898085018e5b85841061129a579250505084611292959350600197969492500152610b9c828a611e57565b5001166111f9565b91600d91600193516112ab816118ea565b6112b487611ce3565b815260ff600c880154161515838201528152019301910190918a908e61126d565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106113055785850386f35b909192938280611321600193603f198a8203018652885161172a565b96019201960195929190926112f8565b611339611ba5565b8282880101520183906111ed565b855484526001958601958a9550930192016111aa565b91905034610379576020366003190112610379576001600160401b038161025e94611386611b79565b50843581526008602052209282519361139e8561189e565b6113a781611afe565b8552600281015460208601526003810154848601520154166060830152519182916020835260208301906115ef565b5050346102a457816003193601126102a457602090601c549051908152f35b5050346102a457816003193601126102a4576020906012549051908152f35b5050346102a457816003193601126102a457602090601e549051908152f35b8284346104b25760203660031901126104b25750606461145c60209360ff601d54169035612231565b049051908152f35b5050346102a457816003193601126102a4576020906001600160401b038254169051908152f35b5050346102a457816003193601126102a4578161025e92602083516114af816118ea565b8281520152602082516114c1816118ea565b8281520152610dd86002546120e2565b905034610379576020366003190112610379578161025e93611503926114f5611d5a565b503581528060205220611d99565b9051918291602083526020830190611571565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611554575050505090565b83516001600160a01b031685529381019392810192600101611546565b908151815260208201516020820152604082015160408201526001600160401b03806060840151166060830152608083015116608082015260a08201519160068310156115d95760c060e0916115d69460a08501520151918160c08201520190611516565b90565b634e487b7160e01b600052602160045260246000fd5b9060606001600160401b038161160e8551608086526080860190611516565b94602081015160208601526040810151604086015201511691015290565b60005b83811061163f5750506000910152565b818101518382015260200161162f565b906020916116688151809281855285808601910161162c565b601f01601f1916010190565b604060206115d6938161168e855185845285840190611516565b940151908281860391015260ff8151168452015191816020820152019061164f565b9060c0806117216116df6116cd865160e0875260e0870190611674565b60208701518682036020880152611674565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a087015261164f565b93015191015290565b61173d8151606084526060840190611516565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061177f575050505050505090565b909192939495968580600192601f198582030187528a519082806117aa84518a85528a8501906116b0565b930151151591015299019401940192959493919061176e565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b838310611815575050505050906001600160401b039101511691015290565b909192939886806118548a856001958f8f83918591607f19908503018c525180518452898060a01b03888201511688850152015193820152019061164f565b9b0193019301919392906117f6565b6020908160408183019282815285518094520193019160005b82811061188a575050505090565b83518552938101939281019260010161187c565b608081019081106001600160401b038211176118b957604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176118b957604052565b604081019081106001600160401b038211176118b957604052565b60e081019081106001600160401b038211176118b957604052565b60a081019081106001600160401b038211176118b957604052565b90601f801991011681019081106001600160401b038211176118b957604052565b6001600160401b0381116118b95760051b60200190565b9190604083820312611a1c576040519261198c846118ea565b836001600160401b0382358181168103611a1c57825260209283810135918211611a1c57019280601f85011215611a1c5783356119c88161195c565b946119d6604051968761193b565b818652848087019260051b820101928311611a1c578401905b8282106119fd575050500152565b81356001600160a01b0381168103611a1c5781529084019084016119ef565b600080fd5b60031990602081830112611a1c57600435916001600160401b038311611a1c5782604092030112611a1c5760040190565b90815180825260208080930193019160005b828110611a72575050505090565b83516001600160a01b031685529381019392810192600101611a64565b90815180825260208092019182818360051b85019501936000915b848310611aba5750505050505090565b9091929394958480611ad483856001950387528a5161164f565b9801930193019194939290611aaa565b60405190611af1826118ea565b6060602083600081520152565b90604051611b0b816118ea565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b5a5750505050611b569250038461193b565b0152565b83546001600160a01b0316855289955090930192918101918101611b3e565b60405190611b868261189e565b6000606083611b93611ae4565b81528260208201528260408201520152565b60405190611bb2826118cf565b6060604083611bbf611ae4565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c93575b6020948584108914611c7f5787988489979899529081600014611c5d5750600114611c1e575b505050611c1c9250038361193b565b565b600090815285812095935091905b818310611c45575050611c1c9350820101388080611c0d565b85548884018501529485019487945091830191611c2c565b92505050611c1c94925060ff191682840152151560051b820101388080611c0d565b634e487b7160e01b85526022600452602485fd5b91607f1691611be7565b9060405191611cab836118ea565b602083611cb783611afe565b8152611cdb600360405194611ccb866118ea565b60ff600282015416865201611bcc565b828401520152565b90604051611cf081611905565b60c0600b8294611cff81611c9d565b8452611d0d60048201611c9d565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d4e600a8201611bcc565b60a08501520154910152565b60405190611d6782611905565b81600080825280602083015280604083015280606083015280608083015260a082015260c0611d94611ae4565b910152565b90604051611da681611905565b809280548252600181015460208301526002810154604083015260ff60038201546001600160401b0380821660608601528160401c16608085015260801c169060068210156115d9576004611d949160c09360a086015201611afe565b61067e611e11913690611973565b9015611e2c5760036001600160401b03910154169060019190565b50600090600090565b60405190611e42826118ea565b81611e4b611ae4565b81526020611d94611ae4565b8051821015611e6b5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e8e826118ea565b6000602083606081520152565b60405190611ea882611920565b60006080838281528260208201528260408201528260608201520152565b51908115158203611a1c57565b909181830360e08112611a1c5760a013611a1c576040928351611ef581611920565b835181526020908185015182820152858501518682015260608501516060820152611f2260808601611ec6565b60808201529460a0850151926001600160401b0393848111611a1c57860191601f92828482011215611a1c57805190611f5a8261195c565b91611f678451938461193b565b808352868084019160051b83010191858311611a1c578701905b828210612064575050509660c081015190868211611a1c570192828185011215611a1c57835191611fb18361195c565b96611fbe8251988961193b565b838852868089019460051b87010195858711611a1c57878101945b878610611fec5750505050505050505090565b8551838111611a1c5782019087603f83011215611a1c57898201519084821161204f578551612023838901601f19168d018261193b565b82815289878486010111611a1c576120448c9493859489868501910161162c565b815201950194611fd9565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b0381168103611a1c578152908701908701611f81565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b8281106120c5575050505090565b83516001600160a01b0316855293810193928101926001016120b7565b600060206040516120f2816118ea565b828152015260005260016020526040600020600160405191612113836118ea565b805483520154602082015290565b61215873__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612083565b0381865af49081156121f657600091612202575b50906121a891600052600081528060406000209361218c60048601611afe565b906040518080968194630c133d1360e31b835260048301612083565b03915af49081156121f6576000916121c2575b5090501591565b82813d83116121ef575b6121d6818361193b565b810103126104b257506121e890611ec6565b80386121bb565b503d6121cc565b6040513d6000823e3d90fd5b908282813d831161222a575b612218818361193b565b810103126104b25750516121a861216c565b503d61220e565b8181029291811591840414171561224457565b634e487b7160e01b600052601160045260246000fdfea264697066735822122067742e4c5fa957844b2d6923ec2aff7e65c291fb3a98c6dcc21d758686401ee164736f6c63430008130033","sourceMap":"648:9598:44:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":1431,"length":20},{"start":2202,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1100,"length":20},{"start":8514,"length":20}]}}},"deployedBytecode":{"object":"0x6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114d15781630338150f1461148b57816305aff0b31461146457816306572c1a1461143357816306c468531461141457816322180594146113f557816324729425146113d65781632da5794a1461135d578163335eb62a14611160578163375b3c0a1461114157816341b6a2e8146111165781634aa8f8a5146110f7578163544dddff146110cf578163599c7bd1146110ad5781635d02968514610f965781636547cd6414610f6b57816369e737fd14610f4c5781636ad21bb014610e6e578163767ee5f414610df45781637edeac9214610da55781638789f83b14610d7a5781638cfd78e714610cea57816394074b0314610c345781639704276614610a935781639d3070b514610a4d5781639e530b5714610a1b578163a2b67158146109f0578163a517218f1461096c578163a9294bdd146107d0578163ac12d76314610792578163b1ba49b01461076a578163b3ab3f741461073f578163b9ee5842146106a2578163c66c66a114610651578163ca41d5ce146104ed578163d6c5c3971461037d578163dd81b5cf146102a8575063f3229131146101c557600080fd5b346102a457816003193601126102a4576101dd611e81565b508051906101ea826118ea565b6006546101f68161195c565b6102028351918261193b565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b8282106102625750505061025e945083526001600160401b03600754169083015251918291826117c3565b0390f35b6003856001928851610273816118cf565b8b548152848060a01b03858d0154168382015261029260028d01611bcc565b8a820152815201980191019096610233565b5080fd5b919050346103795760209182600319360112610375576102c6611ba5565b50358352600982528083209260038251946102e0866118cf565b6102e981611afe565b8652600281015485870152018054906103018261195c565b9261030e8551948561193b565b828452908152848120858085015b84841061033b5786890186905286518281528061025e8185018c61172a565b600191600d91885161034c816118ea565b61035586611ce3565b815260ff600c87015416151583820152815201920192019190869061031c565b8380fd5b8280fd5b8383346102a457816003193601126102a457610397611b79565b506103a0611b79565b50601e549081156104da576001600160401b03918083431604600181018091116104c757906103ce91612231565b80845261042c6020809660088252848720908551966103ec8861189e565b816103f684611afe565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612083565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104bc578095610475575b50508160609161025e94935196879615875286015284015260608301906115ef565b909194508582813d83116104b5575b61048e818361193b565b810103126104b2575061025e92916104a7606092611ec6565b949181939450610453565b80fd5b503d610484565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b919050346103795760203660031901126103795781359161050c611b79565b50610515611e9b565b508284526008602052818420926001600160401b03828451956105378761189e565b61054081611afe565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af4908115610647579061025e9291856105c79691818094610617575b50506105fc610609939451978897610100808a528901906115ef565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a52565b9083820360e0850152611a8f565b61060994506105fc935061063d92503d8091833e610635818361193b565b810190611ed3565b91929091936105ab565b82513d86823e3d90fd5b8284346104b2575061068b61025e61068361067e61066e36611a21565b610676611d5a565b503690611973565b612121565b929092611d99565b835193849315158452806020850152830190611571565b91905034610379576020366003190112610379578060ff61073d9260a0956106c8611e9b565b5085358152601360205220938251946106e086611920565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b9050346103795760203660031901126103795781602093600392358152600c85522001549051908152f35b5050346102a457816003193601126102a4576020906001600160401b03600754169051908152f35b91905034610379576020366003190112610379578060ff61073d9260a0956107b8611e9b565b5085358152600c60205220938251946106e086611920565b919050346103795760209182600319360112610375578035926107f1611ba5565b506107fa611e9b565b5083855260098152828520936003845195610814876118cf565b61081d81611afe565b87526002810154848801520180546108348161195c565b916108418751938461193b565b81835288528388208890858085015b8484106109325750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561092857908561025e9493926108cc97908280956108ff575b50506105fc90610609949551988998610100808b528a019061172a565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b61060995506105fc935061091d92503d8091833e610635818361193b565b9490925081906108af565b83513d87823e3d90fd5b600191600d918b51610943816118ea565b61094c86611ce3565b815260ff600c870154161515838201528152019201920191908690610850565b8284346104b257806003193601126104b2578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109d95761025e86866109cf828b038361193b565b5191829182611863565b8354875295860195600193840193909101906109b7565b5050346102a457816003193601126102a4576020906001600160401b03601d5460881c169051908152f35b8284346104b257506001600160401b03610a3c610a3736611a21565b611e03565b835191151582529091166020820152f35b8284346104b25760203660031901126104b25782356001600160401b03918282116104b25750610a8761067e602095600393369101611973565b90500154169051908152f35b905082346104b257806003193601126104b25782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1e57505050610af59250038561193b565b835191610b018361195c565b91610b0e8751938461193b565b838352601f19610b1d8561195c565b0182865b828110610c0857505050845b6001600160401b039081811686811015610bab5790610ba38284610b536001958d611e57565b51168a52600887528b8587828d20835193610b6d8561189e565b610b7682611afe565b855260028201548c8601526003820154908501520154166060820152610b9c828a611e57565b5287611e57565b500116610b2d565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bdc5785850386f35b909192938280610bf8600193603f198a820301865288516115ef565b9601920196019592919092610bcf565b610c10611b79565b828288010152018390610b21565b855484526001958601958a955093019201610ade565b8284346104b257806003193601126104b257610c4e611ae4565b50815191610c5b836118ea565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610ccd57889061025e8888610cba818a038261193b565b8385015251928284938452830190611516565b83546001600160a01b031685529093019260019283019201610c9f565b905034610379576020366003190112610379579181928160c08451610d0e81611905565b610d16611e35565b8152610d20611e35565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d5a60ff600c8401541692611ce3565b91610d6e82519383859485528401906116b0565b90151560208301520390f35b5050346102a457816003193601126102a4576020906001600160401b03601d5460481c169051908152f35b90503461037957602036600319011261037957610dd89061025e9360208451610dcd816118ea565b8281520152356120e2565b9051918291829190916020806040830194805184520151910152565b8284346104b257806003193601126104b2578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e575761025e86866109cf828b038361193b565b835487529586019560019384019390910190610e3f565b8383346102a457816003193601126102a4578290610e8a611e81565b50805191610e97836118ea565b8054610ea28161195c565b90610eaf8451928361193b565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610f0a5750505061025e945083526001600160401b03600554169083015251918291826117c3565b6003856001928851610f1b816118cf565b8b548152848060a01b03858d01541683820152610f3a60028d01611bcc565b8a820152815201980191019096610edf565b5050346102a457816003193601126102a457602090601f549051908152f35b9050346103795760203660031901126103795781602093600392358152601385522001549051908152f35b8284346104b257806003193601126104b257601854610fb48161195c565b90610fc18451928361193b565b808252601f19610fd08261195c565b01835b818110611096575050825b818110611042575050825191602080840190808552835180925280868601968360051b870101940192955b8287106110165785850386f35b909192938280611032600193603f198a82030186528851611571565b9601920196019592919092611009565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261107a868620611d99565b6110848286611e57565b5261108f8185611e57565b5001610fde565b6020906110a1611d5a565b82828701015201610fd3565b5050346102a457816003193601126102a45760209060ff601d54169051908152f35b5050346102a457816003193601126102a4576020906001600160401b03600554169051908152f35b5050346102a457816003193601126102a457602090600b549051908152f35b5050346102a457816003193601126102a4576020906001600160401b03601d5460081c169051908152f35b5050346102a457816003193601126102a457602090601b549051908152f35b5050346102a457816003193601126102a45780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b86828210611347575050506111c19250038561193b565b8351916111cd8361195c565b916111da8551938461193b565b838352601f196111e98561195c565b0182825b82811061133157505050805b6001600160401b0390818116868110156112d55782611218828b611e57565b51168452600985528784206003895191611231836118cf565b61123a81611afe565b83526002810154888401520180546112518161195c565b9161125e8c51938461193b565b818352875287872087898085018e5b85841061129a579250505084611292959350600197969492500152610b9c828a611e57565b5001166111f9565b91600d91600193516112ab816118ea565b6112b487611ce3565b815260ff600c880154161515838201528152019301910190918a908e61126d565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106113055785850386f35b909192938280611321600193603f198a8203018652885161172a565b96019201960195929190926112f8565b611339611ba5565b8282880101520183906111ed565b855484526001958601958a9550930192016111aa565b91905034610379576020366003190112610379576001600160401b038161025e94611386611b79565b50843581526008602052209282519361139e8561189e565b6113a781611afe565b8552600281015460208601526003810154848601520154166060830152519182916020835260208301906115ef565b5050346102a457816003193601126102a457602090601c549051908152f35b5050346102a457816003193601126102a4576020906012549051908152f35b5050346102a457816003193601126102a457602090601e549051908152f35b8284346104b25760203660031901126104b25750606461145c60209360ff601d54169035612231565b049051908152f35b5050346102a457816003193601126102a4576020906001600160401b038254169051908152f35b5050346102a457816003193601126102a4578161025e92602083516114af816118ea565b8281520152602082516114c1816118ea565b8281520152610dd86002546120e2565b905034610379576020366003190112610379578161025e93611503926114f5611d5a565b503581528060205220611d99565b9051918291602083526020830190611571565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611554575050505090565b83516001600160a01b031685529381019392810192600101611546565b908151815260208201516020820152604082015160408201526001600160401b03806060840151166060830152608083015116608082015260a08201519160068310156115d95760c060e0916115d69460a08501520151918160c08201520190611516565b90565b634e487b7160e01b600052602160045260246000fd5b9060606001600160401b038161160e8551608086526080860190611516565b94602081015160208601526040810151604086015201511691015290565b60005b83811061163f5750506000910152565b818101518382015260200161162f565b906020916116688151809281855285808601910161162c565b601f01601f1916010190565b604060206115d6938161168e855185845285840190611516565b940151908281860391015260ff8151168452015191816020820152019061164f565b9060c0806117216116df6116cd865160e0875260e0870190611674565b60208701518682036020880152611674565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a087015261164f565b93015191015290565b61173d8151606084526060840190611516565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061177f575050505050505090565b909192939495968580600192601f198582030187528a519082806117aa84518a85528a8501906116b0565b930151151591015299019401940192959493919061176e565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b838310611815575050505050906001600160401b039101511691015290565b909192939886806118548a856001958f8f83918591607f19908503018c525180518452898060a01b03888201511688850152015193820152019061164f565b9b0193019301919392906117f6565b6020908160408183019282815285518094520193019160005b82811061188a575050505090565b83518552938101939281019260010161187c565b608081019081106001600160401b038211176118b957604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176118b957604052565b604081019081106001600160401b038211176118b957604052565b60e081019081106001600160401b038211176118b957604052565b60a081019081106001600160401b038211176118b957604052565b90601f801991011681019081106001600160401b038211176118b957604052565b6001600160401b0381116118b95760051b60200190565b9190604083820312611a1c576040519261198c846118ea565b836001600160401b0382358181168103611a1c57825260209283810135918211611a1c57019280601f85011215611a1c5783356119c88161195c565b946119d6604051968761193b565b818652848087019260051b820101928311611a1c578401905b8282106119fd575050500152565b81356001600160a01b0381168103611a1c5781529084019084016119ef565b600080fd5b60031990602081830112611a1c57600435916001600160401b038311611a1c5782604092030112611a1c5760040190565b90815180825260208080930193019160005b828110611a72575050505090565b83516001600160a01b031685529381019392810192600101611a64565b90815180825260208092019182818360051b85019501936000915b848310611aba5750505050505090565b9091929394958480611ad483856001950387528a5161164f565b9801930193019194939290611aaa565b60405190611af1826118ea565b6060602083600081520152565b90604051611b0b816118ea565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b5a5750505050611b569250038461193b565b0152565b83546001600160a01b0316855289955090930192918101918101611b3e565b60405190611b868261189e565b6000606083611b93611ae4565b81528260208201528260408201520152565b60405190611bb2826118cf565b6060604083611bbf611ae4565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c93575b6020948584108914611c7f5787988489979899529081600014611c5d5750600114611c1e575b505050611c1c9250038361193b565b565b600090815285812095935091905b818310611c45575050611c1c9350820101388080611c0d565b85548884018501529485019487945091830191611c2c565b92505050611c1c94925060ff191682840152151560051b820101388080611c0d565b634e487b7160e01b85526022600452602485fd5b91607f1691611be7565b9060405191611cab836118ea565b602083611cb783611afe565b8152611cdb600360405194611ccb866118ea565b60ff600282015416865201611bcc565b828401520152565b90604051611cf081611905565b60c0600b8294611cff81611c9d565b8452611d0d60048201611c9d565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d4e600a8201611bcc565b60a08501520154910152565b60405190611d6782611905565b81600080825280602083015280604083015280606083015280608083015260a082015260c0611d94611ae4565b910152565b90604051611da681611905565b809280548252600181015460208301526002810154604083015260ff60038201546001600160401b0380821660608601528160401c16608085015260801c169060068210156115d9576004611d949160c09360a086015201611afe565b61067e611e11913690611973565b9015611e2c5760036001600160401b03910154169060019190565b50600090600090565b60405190611e42826118ea565b81611e4b611ae4565b81526020611d94611ae4565b8051821015611e6b5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e8e826118ea565b6000602083606081520152565b60405190611ea882611920565b60006080838281528260208201528260408201528260608201520152565b51908115158203611a1c57565b909181830360e08112611a1c5760a013611a1c576040928351611ef581611920565b835181526020908185015182820152858501518682015260608501516060820152611f2260808601611ec6565b60808201529460a0850151926001600160401b0393848111611a1c57860191601f92828482011215611a1c57805190611f5a8261195c565b91611f678451938461193b565b808352868084019160051b83010191858311611a1c578701905b828210612064575050509660c081015190868211611a1c570192828185011215611a1c57835191611fb18361195c565b96611fbe8251988961193b565b838852868089019460051b87010195858711611a1c57878101945b878610611fec5750505050505050505090565b8551838111611a1c5782019087603f83011215611a1c57898201519084821161204f578551612023838901601f19168d018261193b565b82815289878486010111611a1c576120448c9493859489868501910161162c565b815201950194611fd9565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b0381168103611a1c578152908701908701611f81565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b8281106120c5575050505090565b83516001600160a01b0316855293810193928101926001016120b7565b600060206040516120f2816118ea565b828152015260005260016020526040600020600160405191612113836118ea565b805483520154602082015290565b61215873__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612083565b0381865af49081156121f657600091612202575b50906121a891600052600081528060406000209361218c60048601611afe565b906040518080968194630c133d1360e31b835260048301612083565b03915af49081156121f6576000916121c2575b5090501591565b82813d83116121ef575b6121d6818361193b565b810103126104b257506121e890611ec6565b80386121bb565b503d6121cc565b6040513d6000823e3d90fd5b908282813d831161222a575b612218818361193b565b810103126104b25750516121a861216c565b503d61220e565b8181029291811591840414171561224457565b634e487b7160e01b600052601160045260246000fdfea264697066735822122067742e4c5fa957844b2d6923ec2aff7e65c291fb3a98c6dcc21d758686401ee164736f6c63430008130033","sourceMap":"648:9598:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1393:25;648:9598;1393:25;;;648:9598;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;4790:16;648:9598;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;4790:16;648:9598;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;2019:20;648:9598;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;1642:21:58;648:9598:44;;;;;;-1:-1:-1;;;;;1628:12:58;;;;648:9598:44;;13366:1:58;648:9598:44;;;;;;;13327:55:58;;;;:::i;:::-;648:9598:44;;;1735:29:58;648:9598:44;;;1687:21:58;648:9598:44;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1735:29:58;;648:9598:44;;;;;1735:29:58;;;:::i;:::-;;:27;;:29;;;;;;;;;;;648:9598:44;;;;;;;;;;1734:30:58;;;;648:9598:44;;;;;;;;;;;;;:::i;1735:29:58:-;;;;;;;;;;;;;;;;;;:::i;:::-;;;648:9598:44;;;;;;;;;;;;:::i;:::-;1735:29:58;;;;;;;;648:9598:44;;;1735:29:58;;;;;;648:9598:44;;;;;;;;;;;-1:-1:-1;;;648:9598:44;;;;;;;;;-1:-1:-1;;;648:9598:44;;;;;;;;;;;;;;;;;-1:-1:-1;;648:9598:44;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;8987:21;648:9598;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;9084:21;648:9598;;;;;;9055:54;;;;648:9598;;;;;9055:9;;648:9598;9055:9;;:54;;;;;;;;648:9598;9055:54;;;648:9598;9055:54;648:9598;;;9055:54;;;648:9598;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;9055:54::-;648:9598;9055:54;;648:9598;9055:54;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;648:9598;;;;;;;;;;;;;;;;;;2716:30;648:9598;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;2716:30;:::i;:::-;648:9598;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;648:9598:44;;;;;;;;;;;;:::i;:::-;;;;;;5718:38;648:9598;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5718:38;648:9598;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:9598:44;;;;;;;;;;;;5952:32;648:9598;;;5952:49;648:9598;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4980:36:44;648:9598;;;;;;;;;;;;;;;;;-1:-1:-1;;648:9598:44;;;;;;;;;;;;:::i;:::-;;;;;;5567:32;648:9598;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;9544:20;648:9598;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9640:27;648:9598;;;;;;9611:60;;;;648:9598;;;;;9611:9;;648:9598;9611:9;;:60;;;;;;;;;648:9598;9611:60;;;648:9598;9611:60;648:9598;;;9611:60;;;648:9598;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9611:60;648:9598;9611:60;;648:9598;9611:60;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;9611:60:44;;;;;648:9598;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6417:39;648:9598;;;;;;;;;6417:39;648:9598;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1191:14:44;648:9598;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:9598:44;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;3126:30;648:9598;;;;;;;;;:::i;3126:30::-;3301:19;;;648:9598;;;;;;;;;;;;;;;;;;;;;;;;;;;6650:39;648:9598;;;;;;;;;6650:39;648:9598;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;648:9598:44;;;:::i;:::-;;;;;;;;;;6835:8;;;;;-1:-1:-1;;;;;648:9598:44;;;;6845:8;;;;;;6917:10;6871:58;6917:10;;;648:9598;6917:10;;;:::i;:::-;648:9598;;;;6888:21;648:9598;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;6871:58;;;;:::i;:::-;;;;:::i;:::-;;648:9598;;6835:8;;6845;;;;;648:9598;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:9598:44;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;1748:13;648:9598;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:9598:44;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:21;648:9598;;4007:21;;;648:9598;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3834:21:44;648:9598;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:9598:44;;;;2166:41;648:9598;;;;;;;;;:::i;:::-;;;;;;;2166:41;:::i;:::-;648:9598;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7747:45;648:9598;;;;;;;;;7747:45;648:9598;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1514:24;648:9598;;;;;;;;;;;;;;;-1:-1:-1;;648:9598:44;;;;;;;;;;;;6195:38;648:9598;;;6195:55;648:9598;;;;;;;;;;;;;;;;;;;;;4348:12;648:9598;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;648:9598:44;;;:::i;:::-;;;;;;;;;4432:9;;;4443:8;;;;;;648:9598;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;4432:9;648:9598;;;;;;;;;;;;;;;;:::i;:::-;4512:23;;;;:::i;:::-;;;;;;:::i;:::-;;648:9598;4432:9;;648:9598;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4120:20;648:9598;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5337:39:44;648:9598;;;;;;;;;;;;;;;;;;;;;;;;7964:37;648:9598;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1091:15:44;648:9598;;;;;;;;;;;;;;;;;;;;;;;;;;1287:10;648:9598;;;;;;;;;;;;;;;;;;;;;;;;;7216:45;648:9598;;;;;;;;;7216:45;648:9598;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;648:9598:44;;;:::i;:::-;;;;;;;;;;7399:8;;;;;-1:-1:-1;;;;;648:9598:44;;;;7409:8;;;;;;7476:10;;;;;:::i;:::-;648:9598;;;;7448:20;648:9598;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;7435:53;648:9598;;;;;;;;;;;7435:53;;;;:::i;:::-;;648:9598;;7399:8;;648:9598;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7409:8;648:9598;;;;;;;;;;;;;7409:8;;648:9598;;;;;;;;;;;;;;7409:8;648:9598;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:9598:44;;;;;;;;;;;;;;;-1:-1:-1;;648:9598:44;;;;-1:-1:-1;;;;;648:9598:44;;;;;:::i;:::-;;;;;;1880:21;648:9598;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;989:16;648:9598;;;;;;;;;;;;;;;;;;;;;;;8160:43;648:9598;;;;;;;;;;;;;;;;;;;;;;;1631:21;648:9598;;;;;;;;;;;;;;;-1:-1:-1;;648:9598:44;;;;;7293:3:62;7262:27;648:9598:44;;;8517:20;648:9598;;;;7262:27:62;:::i;:::-;648:9598:44;;;;;;;;;;;;;;;;;;;;;1393:25;648:9598;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;4830:39:58;4848:20;648:9598:44;4830:39:58;:::i;648:9598:44:-;;;;;;;;-1:-1:-1;;648:9598:44;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;-1:-1:-1;648:9598:44;;;;;-1:-1:-1;648:9598:44;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;648:9598:44;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;648:9598:44;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;:::o;:::-;-1:-1:-1;;;;;648:9598:44;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;;;-1:-1:-1;648:9598:44;;;-1:-1:-1;;648:9598:44;;;;;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;648:9598:44;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:9598:44;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;648:9598:44;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:9598:44;;-1:-1:-1;648:9598:44;;-1:-1:-1;648:9598:44;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;648:9598:44;;;;;-1:-1:-1;648:9598:44;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;648:9598:44;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;648:9598:44;;;;;;:::o;:::-;;;;;-1:-1:-1;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;648:9598:44;;;;;;;;-1:-1:-1;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;-1:-1:-1;;;;;;648:9598:44;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3450:299::-;648:9598;3600:30;3450:299;648:9598;;;:::i;3600:30::-;3644:11;;3640:59;;3722:19;-1:-1:-1;;;;;3722:19:44;;648:9598;;3708:34;3716:4;3708:34;3450:299;:::o;3640:59::-;3671:17;3679:5;3671:17;3679:5;3671:17;:::o;648:9598::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;648:9598:44;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;648:9598:44;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;648:9598:44;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:9598:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;648:9598:44;;;;;;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:9598:44;;;;;;;;;;;;;;;4362:223:58;-1:-1:-1;648:9598:44;;;;;;:::i;:::-;;;;;;-1:-1:-1;648:9598:44;4550:15:58;648:9598:44;;;-1:-1:-1;648:9598:44;4550:15:58;648:9598:44;;;;;;:::i;:::-;;;;;;;;;;;4362:223:58;:::o;12762:272::-;12971:17;:15;648:9598:44;;;;;;;12971:17:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;4030:45:59;12971:17:58;;;12762:272;648:9598:44;;13008:19:58;648:9598:44;4030:45:59;648:9598:44;4030:45:59;648:9598:44;;;;4030:45:59;648:9598:44;13008:9:58;648:9598:44;12971:17:58;13008:9;;648:9598:44;:::i;:::-;;;;;;;;;;;;13008:19:58;;12971:17;13008:19;;;:::i;:::-;;;;;;;;;;4030:45:59;13008:19:58;;;12762:272;13007:20;;;;12762:272;:::o;13008:19::-;;;;;;;;;;;;;:::i;:::-;;;648:9598:44;;;;;;;;:::i;:::-;13008:19:58;;;;;;;;;;648:9598:44;;;4030:45:59;648:9598:44;;;;;12971:17:58;;;;;;;;;;;;;;;:::i;:::-;;;648:9598:44;;;;-1:-1:-1;648:9598:44;13008:19:58;12971:17;;;;;;;648:9598:44;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;","linkReferences":{"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":1403,"length":20},{"start":2174,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1072,"length":20},{"start":8486,"length":20}]}}},"methodIdentifiers":{"appliedTopDownNonce()":"8789f83b","bottomUpCheckPeriod()":"06c46853","bottomUpCheckpoint(uint256)":"2da5794a","bottomUpMsgBatch(uint256)":"dd81b5cf","bottomUpMsgBatchPeriod()":"69e737fd","bottomUpNonce()":"41b6a2e8","crossMsgFee()":"24729425","getAppliedTopDownNonce((uint64,address[]))":"9e530b57","getBottomUpMsgBatchCurrentWeight(uint256)":"6547cd64","getBottomUpMsgBatchInfo(uint256)":"b9ee5842","getBottomUpMsgBatchSignatureBundle(uint256)":"a9294bdd","getBottomUpMsgRetentionHeight()":"22180594","getCheckpointCurrentWeight(uint256)":"b3ab3f74","getCheckpointInfo(uint256)":"ac12d763","getCheckpointRetentionHeight()":"4aa8f8a5","getCheckpointSignatureBundle(uint256)":"ca41d5ce","getCurrentBottomUpCheckpoint()":"d6c5c397","getCurrentConfigurationNumber()":"544dddff","getCurrentMembership()":"6ad21bb0","getIncompleteCheckpointHeights()":"a517218f","getIncompleteCheckpoints()":"97042766","getIncompleteMsgBatchHeights()":"767ee5f4","getIncompleteMsgBatches()":"335eb62a","getLastConfigurationNumber()":"b1ba49b0","getLastMembership()":"f3229131","getLatestParentFinality()":"0338150f","getNetworkName()":"94074b03","getParentFinality(uint256)":"7edeac92","getQuorumThreshold(uint256)":"06572c1a","getSubnet((uint64,address[]))":"c66c66a1","getSubnetTopDownMsgsLength((uint64,address[]))":"9d3070b5","listSubnets()":"5d029685","majorityPercentage()":"599c7bd1","maxMsgsPerBottomUpBatch()":"05aff0b3","minStake()":"375b3c0a","postbox(bytes32)":"8cfd78e7","subnets(bytes32)":"02e30f9a","totalSubnets()":"a2b67158"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"appliedTopDownNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"e\",\"type\":\"uint256\"}],\"name\":\"bottomUpCheckpoint\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"e\",\"type\":\"uint256\"}],\"name\":\"bottomUpMsgBatch\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpMsgBatchPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crossMsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getAppliedTopDownNonce\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getBottomUpMsgBatchCurrentWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getBottomUpMsgBatchInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getBottomUpMsgBatchSignatureBundle\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"info\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBottomUpMsgRetentionHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getCheckpointCurrentWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getCheckpointInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCheckpointRetentionHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getCheckpointSignatureBundle\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"ch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"info\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBottomUpCheckpoint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentConfigurationNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentMembership\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct Membership\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteCheckpointHeights\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteCheckpoints\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteMsgBatchHeights\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteMsgBatches\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastConfigurationNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastMembership\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct Membership\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestParentFinality\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNetworkName\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getParentFinality\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalWeight\",\"type\":\"uint256\"}],\"name\":\"getQuorumThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnet\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"}],\"internalType\":\"struct Subnet\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnetTopDownMsgsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"listSubnets\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"}],\"internalType\":\"struct Subnet[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxMsgsPerBottomUpBatch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"postbox\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"storableMsg\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"h\",\"type\":\"bytes32\"}],\"name\":\"subnets\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"internalType\":\"enum Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"}],\"internalType\":\"struct Subnet\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSubnets\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getAppliedTopDownNonce((uint64,address[]))\":{\"params\":{\"subnetId\":\"- The subnet id to fetch messages from\"}},\"getCurrentBottomUpCheckpoint()\":{\"returns\":{\"checkpoint\":\"- the checkpoint struct\",\"epoch\":\"- the epoch of the checkpoint\",\"exists\":\"- whether the checkpoint exists\"}},\"getSubnet((uint64,address[]))\":{\"params\":{\"subnetId\":\"the id of the subnet\"},\"returns\":{\"_0\":\"found whether the subnet exists\",\"_1\":\"subnet - the subnet struct\"}},\"listSubnets()\":{\"returns\":{\"_0\":\"subnet - the list of subnets\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAppliedTopDownNonce((uint64,address[]))\":{\"notice\":\"Get the latest applied top down nonce\"},\"getBottomUpMsgBatchCurrentWeight(uint256)\":{\"notice\":\"get the batch current weight corresponding to the block height\"},\"getBottomUpMsgBatchSignatureBundle(uint256)\":{\"notice\":\"get the bottom-up msg batch signature bundle\"},\"getBottomUpMsgRetentionHeight()\":{\"notice\":\"get the bottom-up batch retention index\"},\"getCheckpointCurrentWeight(uint256)\":{\"notice\":\"get the checkpoint current weight corresponding to the block height\"},\"getCheckpointInfo(uint256)\":{\"notice\":\"get the checkpoint information corresponding to the block height\"},\"getCheckpointRetentionHeight()\":{\"notice\":\"get the bottom-up checkpoint retention index\"},\"getCheckpointSignatureBundle(uint256)\":{\"notice\":\"get the checkpoint signature bundle consisting of the checkpoint, its info, signatories and the corresponding signatures.\"},\"getCurrentBottomUpCheckpoint()\":{\"notice\":\"returns the current bottom-up checkpoint\"},\"getCurrentConfigurationNumber()\":{\"notice\":\"get the current configuration number\"},\"getCurrentMembership()\":{\"notice\":\"get the current membership\"},\"getIncompleteCheckpointHeights()\":{\"notice\":\"get the incomplete checkpoint heights\"},\"getIncompleteCheckpoints()\":{\"notice\":\"get the incomplete checkpoints\"},\"getIncompleteMsgBatchHeights()\":{\"notice\":\"get the incomplete msd batches heights\"},\"getIncompleteMsgBatches()\":{\"notice\":\"get the incomplete batches of messages\"},\"getLastConfigurationNumber()\":{\"notice\":\"get the last configuration number received from the parent\"},\"getLastMembership()\":{\"notice\":\"get the last membership received from the parent\"},\"getQuorumThreshold(uint256)\":{\"notice\":\"Calculate the threshold required for quorum in this subnet based on the configured majority percentage and the total weight of the validators.\"},\"getSubnet((uint64,address[]))\":{\"notice\":\"returns the subnet with the given id\"},\"getSubnetTopDownMsgsLength((uint64,address[]))\":{\"notice\":\"get number of top-down messages for the given subnet\"},\"listSubnets()\":{\"notice\":\"returns the list of registered subnets in IPC\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayGetterFacet.sol\":\"GatewayGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21\",\"dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xe5c934c38631fc852b2d818a5234f6514c172311218b890a6fc5fd797f92dec9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://180a99f9ae7f52c07efd8d50c12562889661cc0a8d2e1f6e8dd10e8ef399193e\",\"dweb:/ipfs/QmNoscfa82rSeb6WXcFhj5GJ5iNmiMGmphQf3SLkbXZEeu\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14\",\"dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7\",\"dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2\",\"dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"appliedTopDownNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpCheckPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"e","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpCheckpoint","outputs":[{"internalType":"struct BottomUpCheckpoint","name":"","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[{"internalType":"uint256","name":"e","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpMsgBatch","outputs":[{"internalType":"struct BottomUpMsgBatch","name":"","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpMsgBatchPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"crossMsgFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"view","type":"function","name":"getAppliedTopDownNonce","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBottomUpMsgBatchCurrentWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBottomUpMsgBatchInfo","outputs":[{"internalType":"struct QuorumInfo","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBottomUpMsgBatchSignatureBundle","outputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"struct QuorumInfo","name":"info","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBottomUpMsgRetentionHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCheckpointCurrentWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCheckpointInfo","outputs":[{"internalType":"struct QuorumInfo","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCheckpointRetentionHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCheckpointSignatureBundle","outputs":[{"internalType":"struct BottomUpCheckpoint","name":"ch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"struct QuorumInfo","name":"info","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBottomUpCheckpoint","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentConfigurationNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentMembership","outputs":[{"internalType":"struct Membership","name":"","type":"tuple","components":[{"internalType":"struct Validator[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteCheckpointHeights","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteCheckpoints","outputs":[{"internalType":"struct BottomUpCheckpoint[]","name":"","type":"tuple[]","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteMsgBatchHeights","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteMsgBatches","outputs":[{"internalType":"struct BottomUpMsgBatch[]","name":"","type":"tuple[]","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastConfigurationNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastMembership","outputs":[{"internalType":"struct Membership","name":"","type":"tuple","components":[{"internalType":"struct Validator[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestParentFinality","outputs":[{"internalType":"struct ParentFinality","name":"","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getNetworkName","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getParentFinality","outputs":[{"internalType":"struct ParentFinality","name":"","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"uint256","name":"totalWeight","type":"uint256"}],"stateMutability":"view","type":"function","name":"getQuorumThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"view","type":"function","name":"getSubnet","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"struct Subnet","name":"","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"genesisEpoch","type":"uint256"},{"internalType":"uint256","name":"circSupply","type":"uint256"},{"internalType":"uint64","name":"topDownNonce","type":"uint64"},{"internalType":"uint64","name":"appliedBottomUpNonce","type":"uint64"},{"internalType":"enum Status","name":"status","type":"uint8"},{"internalType":"struct SubnetID","name":"id","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"view","type":"function","name":"getSubnetTopDownMsgsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"listSubnets","outputs":[{"internalType":"struct Subnet[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"genesisEpoch","type":"uint256"},{"internalType":"uint256","name":"circSupply","type":"uint256"},{"internalType":"uint64","name":"topDownNonce","type":"uint64"},{"internalType":"uint64","name":"appliedBottomUpNonce","type":"uint64"},{"internalType":"enum Status","name":"status","type":"uint8"},{"internalType":"struct SubnetID","name":"id","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"majorityPercentage","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxMsgsPerBottomUpBatch","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"stateMutability":"view","type":"function","name":"postbox","outputs":[{"internalType":"struct StorableMsg","name":"storableMsg","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"h","type":"bytes32"}],"stateMutability":"view","type":"function","name":"subnets","outputs":[{"internalType":"struct Subnet","name":"subnet","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"genesisEpoch","type":"uint256"},{"internalType":"uint256","name":"circSupply","type":"uint256"},{"internalType":"uint64","name":"topDownNonce","type":"uint64"},{"internalType":"uint64","name":"appliedBottomUpNonce","type":"uint64"},{"internalType":"enum Status","name":"status","type":"uint8"},{"internalType":"struct SubnetID","name":"id","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSubnets","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"getAppliedTopDownNonce((uint64,address[]))":{"params":{"subnetId":"- The subnet id to fetch messages from"}},"getCurrentBottomUpCheckpoint()":{"returns":{"checkpoint":"- the checkpoint struct","epoch":"- the epoch of the checkpoint","exists":"- whether the checkpoint exists"}},"getSubnet((uint64,address[]))":{"params":{"subnetId":"the id of the subnet"},"returns":{"_0":"found whether the subnet exists","_1":"subnet - the subnet struct"}},"listSubnets()":{"returns":{"_0":"subnet - the list of subnets"}}},"version":1},"userdoc":{"kind":"user","methods":{"getAppliedTopDownNonce((uint64,address[]))":{"notice":"Get the latest applied top down nonce"},"getBottomUpMsgBatchCurrentWeight(uint256)":{"notice":"get the batch current weight corresponding to the block height"},"getBottomUpMsgBatchSignatureBundle(uint256)":{"notice":"get the bottom-up msg batch signature bundle"},"getBottomUpMsgRetentionHeight()":{"notice":"get the bottom-up batch retention index"},"getCheckpointCurrentWeight(uint256)":{"notice":"get the checkpoint current weight corresponding to the block height"},"getCheckpointInfo(uint256)":{"notice":"get the checkpoint information corresponding to the block height"},"getCheckpointRetentionHeight()":{"notice":"get the bottom-up checkpoint retention index"},"getCheckpointSignatureBundle(uint256)":{"notice":"get the checkpoint signature bundle consisting of the checkpoint, its info, signatories and the corresponding signatures."},"getCurrentBottomUpCheckpoint()":{"notice":"returns the current bottom-up checkpoint"},"getCurrentConfigurationNumber()":{"notice":"get the current configuration number"},"getCurrentMembership()":{"notice":"get the current membership"},"getIncompleteCheckpointHeights()":{"notice":"get the incomplete checkpoint heights"},"getIncompleteCheckpoints()":{"notice":"get the incomplete checkpoints"},"getIncompleteMsgBatchHeights()":{"notice":"get the incomplete msd batches heights"},"getIncompleteMsgBatches()":{"notice":"get the incomplete batches of messages"},"getLastConfigurationNumber()":{"notice":"get the last configuration number received from the parent"},"getLastMembership()":{"notice":"get the last membership received from the parent"},"getQuorumThreshold(uint256)":{"notice":"Calculate the threshold required for quorum in this subnet based on the configured majority percentage and the total weight of the validators."},"getSubnet((uint64,address[]))":{"notice":"returns the subnet with the given id"},"getSubnetTopDownMsgsLength((uint64,address[]))":{"notice":"get number of top-down messages for the given subnet"},"listSubnets()":{"notice":"returns the list of registered subnets in IPC"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayGetterFacet.sol":"GatewayGetterFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140","urls":["bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21","dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xe5c934c38631fc852b2d818a5234f6514c172311218b890a6fc5fd797f92dec9","urls":["bzz-raw://180a99f9ae7f52c07efd8d50c12562889661cc0a8d2e1f6e8dd10e8ef399193e","dweb:/ipfs/QmNoscfa82rSeb6WXcFhj5GJ5iNmiMGmphQf3SLkbXZEeu"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3","urls":["bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14","dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d","urls":["bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7","dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c","urls":["bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2","dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayGetterFacet.sol","id":37870,"exportedSymbols":{"BottomUpCheckpoint":[48410],"BottomUpMsgBatch":[48423],"EnumerableSet":[35386],"GatewayActorStorage":[42369],"GatewayGetterFacet":[37869],"LibGateway":[42242],"LibQuorum":[43249],"Membership":[48701],"ParentFinality":[48396],"QuorumInfo":[48506],"StorableMsg":[48469],"Subnet":[48574],"SubnetID":[48557],"SubnetIDHelper":[46876]},"nodeType":"SourceUnit","src":"46:10201:44","nodes":[{"id":37102,"nodeType":"PragmaDirective","src":"46:23:44","nodes":[],"literals":["solidity","0.8",".19"]},{"id":37107,"nodeType":"ImportDirective","src":"71:106:44","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":37870,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":37103,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"79:18:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37104,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48423,"src":"99:16:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37105,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"117:11:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37106,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"130:14:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37109,"nodeType":"ImportDirective","src":"178:49:44","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":37870,"sourceUnit":48538,"symbolAliases":[{"foreign":{"id":37108,"name":"QuorumInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48506,"src":"186:10:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37112,"nodeType":"ImportDirective","src":"228:55:44","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":37870,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":37110,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"236:8:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37111,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48574,"src":"246:6:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37114,"nodeType":"ImportDirective","src":"284:49:44","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":37870,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":37113,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48701,"src":"292:10:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37116,"nodeType":"ImportDirective","src":"334:49:44","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":37870,"sourceUnit":42243,"symbolAliases":[{"foreign":{"id":37115,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"342:10:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37118,"nodeType":"ImportDirective","src":"384:47:44","nodes":[],"absolutePath":"src/lib/LibQuorum.sol","file":"../lib/LibQuorum.sol","nameLocation":"-1:-1:-1","scope":37870,"sourceUnit":43250,"symbolAliases":[{"foreign":{"id":37117,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43249,"src":"392:9:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37120,"nodeType":"ImportDirective","src":"432:70:44","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":37870,"sourceUnit":42439,"symbolAliases":[{"foreign":{"id":37119,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42369,"src":"440:19:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37122,"nodeType":"ImportDirective","src":"503:57:44","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":37870,"sourceUnit":46877,"symbolAliases":[{"foreign":{"id":37121,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46876,"src":"511:14:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37124,"nodeType":"ImportDirective","src":"561:85:44","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":37870,"sourceUnit":35387,"symbolAliases":[{"foreign":{"id":37123,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35386,"src":"569:13:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37869,"nodeType":"ContractDefinition","src":"648:9598:44","nodes":[{"id":37127,"nodeType":"VariableDeclaration","src":"735:30:44","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"764:1:44","scope":37869,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":37126,"nodeType":"UserDefinedTypeName","pathNode":{"id":37125,"name":"GatewayActorStorage","nameLocations":["735:19:44"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"735:19:44"},"referencedDeclaration":42369,"src":"735:19:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":37131,"nodeType":"UsingForDirective","src":"772:34:44","nodes":[],"global":false,"libraryName":{"id":37128,"name":"SubnetIDHelper","nameLocations":["778:14:44"],"nodeType":"IdentifierPath","referencedDeclaration":46876,"src":"778:14:44"},"typeName":{"id":37130,"nodeType":"UserDefinedTypeName","pathNode":{"id":37129,"name":"SubnetID","nameLocations":["797:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"797:8:44"},"referencedDeclaration":48557,"src":"797:8:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}}},{"id":37135,"nodeType":"UsingForDirective","src":"811:46:44","nodes":[],"global":false,"libraryName":{"id":37132,"name":"EnumerableSet","nameLocations":["817:13:44"],"nodeType":"IdentifierPath","referencedDeclaration":35386,"src":"817:13:44"},"typeName":{"id":37134,"nodeType":"UserDefinedTypeName","pathNode":{"id":37133,"name":"EnumerableSet.UintSet","nameLocations":["835:13:44","849:7:44"],"nodeType":"IdentifierPath","referencedDeclaration":35256,"src":"835:21:44"},"referencedDeclaration":35256,"src":"835:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"id":37139,"nodeType":"UsingForDirective","src":"862:49:44","nodes":[],"global":false,"libraryName":{"id":37136,"name":"EnumerableSet","nameLocations":["868:13:44"],"nodeType":"IdentifierPath","referencedDeclaration":35386,"src":"868:13:44"},"typeName":{"id":37138,"nodeType":"UserDefinedTypeName","pathNode":{"id":37137,"name":"EnumerableSet.AddressSet","nameLocations":["886:13:44","900:10:44"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"886:24:44"},"referencedDeclaration":35099,"src":"886:24:44","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":37148,"nodeType":"FunctionDefinition","src":"917:95:44","nodes":[],"body":{"id":37147,"nodeType":"Block","src":"972:40:44","nodes":[],"statements":[{"expression":{"expression":{"id":37144,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"989:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"991:14:44","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":42328,"src":"989:16:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37143,"id":37146,"nodeType":"Return","src":"982:23:44"}]},"functionSelector":"24729425","implemented":true,"kind":"function","modifiers":[],"name":"crossMsgFee","nameLocation":"926:11:44","parameters":{"id":37140,"nodeType":"ParameterList","parameters":[],"src":"937:2:44"},"returnParameters":{"id":37143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37148,"src":"963:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37141,"name":"uint256","nodeType":"ElementaryTypeName","src":"963:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"962:9:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37157,"nodeType":"FunctionDefinition","src":"1018:95:44","nodes":[],"body":{"id":37156,"nodeType":"Block","src":"1074:39:44","nodes":[],"statements":[{"expression":{"expression":{"id":37153,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"1091:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1093:13:44","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":42334,"src":"1091:15:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37152,"id":37155,"nodeType":"Return","src":"1084:22:44"}]},"functionSelector":"41b6a2e8","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpNonce","nameLocation":"1027:13:44","parameters":{"id":37149,"nodeType":"ParameterList","parameters":[],"src":"1040:2:44"},"returnParameters":{"id":37152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37151,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37157,"src":"1066:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37150,"name":"uint64","nodeType":"ElementaryTypeName","src":"1066:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1065:8:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37166,"nodeType":"FunctionDefinition","src":"1119:93:44","nodes":[],"body":{"id":37165,"nodeType":"Block","src":"1174:38:44","nodes":[],"statements":[{"expression":{"expression":{"id":37162,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"1191:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1193:12:44","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":42340,"src":"1191:14:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37161,"id":37164,"nodeType":"Return","src":"1184:21:44"}]},"functionSelector":"a2b67158","implemented":true,"kind":"function","modifiers":[],"name":"totalSubnets","nameLocation":"1128:12:44","parameters":{"id":37158,"nodeType":"ParameterList","parameters":[],"src":"1140:2:44"},"returnParameters":{"id":37161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37160,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37166,"src":"1166:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37159,"name":"uint64","nodeType":"ElementaryTypeName","src":"1166:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1165:8:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37175,"nodeType":"FunctionDefinition","src":"1218:86:44","nodes":[],"body":{"id":37174,"nodeType":"Block","src":"1270:34:44","nodes":[],"statements":[{"expression":{"expression":{"id":37171,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"1287:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1289:8:44","memberName":"minStake","nodeType":"MemberAccess","referencedDeclaration":42325,"src":"1287:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37170,"id":37173,"nodeType":"Return","src":"1280:17:44"}]},"functionSelector":"375b3c0a","implemented":true,"kind":"function","modifiers":[],"name":"minStake","nameLocation":"1227:8:44","parameters":{"id":37167,"nodeType":"ParameterList","parameters":[],"src":"1235:2:44"},"returnParameters":{"id":37170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37175,"src":"1261:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37168,"name":"uint256","nodeType":"ElementaryTypeName","src":"1261:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1260:9:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37184,"nodeType":"FunctionDefinition","src":"1310:115:44","nodes":[],"body":{"id":37183,"nodeType":"Block","src":"1376:49:44","nodes":[],"statements":[{"expression":{"expression":{"id":37180,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"1393:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1395:23:44","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":42349,"src":"1393:25:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37179,"id":37182,"nodeType":"Return","src":"1386:32:44"}]},"functionSelector":"05aff0b3","implemented":true,"kind":"function","modifiers":[],"name":"maxMsgsPerBottomUpBatch","nameLocation":"1319:23:44","parameters":{"id":37176,"nodeType":"ParameterList","parameters":[],"src":"1342:2:44"},"returnParameters":{"id":37179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37178,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37184,"src":"1368:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37177,"name":"uint64","nodeType":"ElementaryTypeName","src":"1368:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1367:8:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37193,"nodeType":"FunctionDefinition","src":"1431:114:44","nodes":[],"body":{"id":37192,"nodeType":"Block","src":"1497:48:44","nodes":[],"statements":[{"expression":{"expression":{"id":37189,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"1514:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1516:22:44","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":42346,"src":"1514:24:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37188,"id":37191,"nodeType":"Return","src":"1507:31:44"}]},"functionSelector":"69e737fd","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpMsgBatchPeriod","nameLocation":"1440:22:44","parameters":{"id":37185,"nodeType":"ParameterList","parameters":[],"src":"1462:2:44"},"returnParameters":{"id":37188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37187,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37193,"src":"1488:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37186,"name":"uint256","nodeType":"ElementaryTypeName","src":"1488:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1487:9:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37202,"nodeType":"FunctionDefinition","src":"1551:108:44","nodes":[],"body":{"id":37201,"nodeType":"Block","src":"1614:45:44","nodes":[],"statements":[{"expression":{"expression":{"id":37198,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"1631:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1633:19:44","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":42343,"src":"1631:21:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37197,"id":37200,"nodeType":"Return","src":"1624:28:44"}]},"functionSelector":"06c46853","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckPeriod","nameLocation":"1560:19:44","parameters":{"id":37194,"nodeType":"ParameterList","parameters":[],"src":"1579:2:44"},"returnParameters":{"id":37197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37196,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37202,"src":"1605:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37195,"name":"uint256","nodeType":"ElementaryTypeName","src":"1605:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1604:9:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37212,"nodeType":"FunctionDefinition","src":"1665:103:44","nodes":[],"body":{"id":37211,"nodeType":"Block","src":"1731:37:44","nodes":[],"statements":[{"expression":{"expression":{"id":37208,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"1748:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1750:11:44","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42322,"src":"1748:13:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"functionReturnParameters":37207,"id":37210,"nodeType":"Return","src":"1741:20:44"}]},"functionSelector":"94074b03","implemented":true,"kind":"function","modifiers":[],"name":"getNetworkName","nameLocation":"1674:14:44","parameters":{"id":37203,"nodeType":"ParameterList","parameters":[],"src":"1688:2:44"},"returnParameters":{"id":37207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37206,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37212,"src":"1714:15:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":37205,"nodeType":"UserDefinedTypeName","pathNode":{"id":37204,"name":"SubnetID","nameLocations":["1714:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1714:8:44"},"referencedDeclaration":48557,"src":"1714:8:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1713:17:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37226,"nodeType":"FunctionDefinition","src":"1774:137:44","nodes":[],"body":{"id":37225,"nodeType":"Block","src":"1863:48:44","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":37220,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"1880:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1882:19:44","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42300,"src":"1880:21:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":37223,"indexExpression":{"id":37222,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37214,"src":"1902:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1880:24:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"functionReturnParameters":37219,"id":37224,"nodeType":"Return","src":"1873:31:44"}]},"functionSelector":"2da5794a","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpoint","nameLocation":"1783:18:44","parameters":{"id":37215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37214,"mutability":"mutable","name":"e","nameLocation":"1810:1:44","nodeType":"VariableDeclaration","scope":37226,"src":"1802:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37213,"name":"uint256","nodeType":"ElementaryTypeName","src":"1802:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1801:11:44"},"returnParameters":{"id":37219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37218,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37226,"src":"1836:25:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":37217,"nodeType":"UserDefinedTypeName","pathNode":{"id":37216,"name":"BottomUpCheckpoint","nameLocations":["1836:18:44"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"1836:18:44"},"referencedDeclaration":48410,"src":"1836:18:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"1835:27:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37240,"nodeType":"FunctionDefinition","src":"1917:132:44","nodes":[],"body":{"id":37239,"nodeType":"Block","src":"2002:47:44","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":37234,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"2019:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2021:18:44","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":42306,"src":"2019:20:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$48423_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":37237,"indexExpression":{"id":37236,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37228,"src":"2040:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:23:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"functionReturnParameters":37233,"id":37238,"nodeType":"Return","src":"2012:30:44"}]},"functionSelector":"dd81b5cf","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpMsgBatch","nameLocation":"1926:16:44","parameters":{"id":37229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37228,"mutability":"mutable","name":"e","nameLocation":"1951:1:44","nodeType":"VariableDeclaration","scope":37240,"src":"1943:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37227,"name":"uint256","nodeType":"ElementaryTypeName","src":"1943:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1942:11:44"},"returnParameters":{"id":37233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37232,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37240,"src":"1977:23:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":37231,"nodeType":"UserDefinedTypeName","pathNode":{"id":37230,"name":"BottomUpMsgBatch","nameLocations":["1977:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"1977:16:44"},"referencedDeclaration":48423,"src":"1977:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"1976:25:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37254,"nodeType":"FunctionDefinition","src":"2055:159:44","nodes":[],"body":{"id":37253,"nodeType":"Block","src":"2149:65:44","nodes":[],"statements":[{"expression":{"arguments":[{"id":37250,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37242,"src":"2195:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37248,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"2166:10:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":37249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2177:17:44","memberName":"getParentFinality","nodeType":"MemberAccess","referencedDeclaration":41554,"src":"2166:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"function (uint256) view returns (struct ParentFinality memory)"}},"id":37251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2166:41:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"functionReturnParameters":37247,"id":37252,"nodeType":"Return","src":"2159:48:44"}]},"functionSelector":"7edeac92","implemented":true,"kind":"function","modifiers":[],"name":"getParentFinality","nameLocation":"2064:17:44","parameters":{"id":37243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37242,"mutability":"mutable","name":"blockNumber","nameLocation":"2090:11:44","nodeType":"VariableDeclaration","scope":37254,"src":"2082:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37241,"name":"uint256","nodeType":"ElementaryTypeName","src":"2082:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2081:21:44"},"returnParameters":{"id":37247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37246,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37254,"src":"2126:21:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":37245,"nodeType":"UserDefinedTypeName","pathNode":{"id":37244,"name":"ParentFinality","nameLocations":["2126:14:44"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"2126:14:44"},"referencedDeclaration":48396,"src":"2126:14:44","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"2125:23:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37265,"nodeType":"FunctionDefinition","src":"2220:141:44","nodes":[],"body":{"id":37264,"nodeType":"Block","src":"2301:60:44","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37260,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"2318:10:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":37261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2329:23:44","memberName":"getLatestParentFinality","nodeType":"MemberAccess","referencedDeclaration":41574,"src":"2318:34:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"function () view returns (struct ParentFinality memory)"}},"id":37262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2318:36:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"functionReturnParameters":37259,"id":37263,"nodeType":"Return","src":"2311:43:44"}]},"functionSelector":"0338150f","implemented":true,"kind":"function","modifiers":[],"name":"getLatestParentFinality","nameLocation":"2229:23:44","parameters":{"id":37255,"nodeType":"ParameterList","parameters":[],"src":"2252:2:44"},"returnParameters":{"id":37259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37265,"src":"2278:21:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":37257,"nodeType":"UserDefinedTypeName","pathNode":{"id":37256,"name":"ParentFinality","nameLocations":["2278:14:44"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"2278:14:44"},"referencedDeclaration":48396,"src":"2278:14:44","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"2277:23:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37283,"nodeType":"FunctionDefinition","src":"2557:196:44","nodes":[],"body":{"id":37282,"nodeType":"Block","src":"2648:105:44","nodes":[],"statements":[{"expression":{"arguments":[{"id":37279,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37269,"src":"2737:8:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":37277,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"2716:10:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":37278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2727:9:44","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42217,"src":"2716:20:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":37280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2716:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"functionReturnParameters":37276,"id":37281,"nodeType":"Return","src":"2709:37:44"}]},"documentation":{"id":37266,"nodeType":"StructuredDocumentation","src":"2367:185:44","text":"@notice returns the subnet with the given id\n @param subnetId the id of the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct"},"functionSelector":"c66c66a1","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"2566:9:44","parameters":{"id":37270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37269,"mutability":"mutable","name":"subnetId","nameLocation":"2594:8:44","nodeType":"VariableDeclaration","scope":37283,"src":"2576:26:44","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":37268,"nodeType":"UserDefinedTypeName","pathNode":{"id":37267,"name":"SubnetID","nameLocations":["2576:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"2576:8:44"},"referencedDeclaration":48557,"src":"2576:8:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2575:28:44"},"returnParameters":{"id":37276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37272,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37283,"src":"2627:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37271,"name":"bool","nodeType":"ElementaryTypeName","src":"2627:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37275,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37283,"src":"2633:13:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":37274,"nodeType":"UserDefinedTypeName","pathNode":{"id":37273,"name":"Subnet","nameLocations":["2633:6:44"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"2633:6:44"},"referencedDeclaration":48574,"src":"2633:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"2626:21:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37297,"nodeType":"FunctionDefinition","src":"2759:109:44","nodes":[],"body":{"id":37296,"nodeType":"Block","src":"2832:36:44","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":37291,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"2849:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2851:7:44","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42271,"src":"2849:9:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$48574_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":37294,"indexExpression":{"id":37293,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37285,"src":"2859:1:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2849:12:44","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage","typeString":"struct Subnet storage ref"}},"functionReturnParameters":37290,"id":37295,"nodeType":"Return","src":"2842:19:44"}]},"functionSelector":"02e30f9a","implemented":true,"kind":"function","modifiers":[],"name":"subnets","nameLocation":"2768:7:44","parameters":{"id":37286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37285,"mutability":"mutable","name":"h","nameLocation":"2784:1:44","nodeType":"VariableDeclaration","scope":37297,"src":"2776:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37284,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2776:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2775:11:44"},"returnParameters":{"id":37290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37289,"mutability":"mutable","name":"subnet","nameLocation":"2824:6:44","nodeType":"VariableDeclaration","scope":37297,"src":"2810:20:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":37288,"nodeType":"UserDefinedTypeName","pathNode":{"id":37287,"name":"Subnet","nameLocations":["2810:6:44"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"2810:6:44"},"referencedDeclaration":48574,"src":"2810:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"2809:22:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37318,"nodeType":"FunctionDefinition","src":"2943:384:44","nodes":[],"body":{"id":37317,"nodeType":"Block","src":"3037:290:44","nodes":[],"statements":[{"assignments":[null,37308],"declarations":[null,{"constant":false,"id":37308,"mutability":"mutable","name":"subnet","nameLocation":"3116:6:44","nodeType":"VariableDeclaration","scope":37317,"src":"3101:21:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":37307,"nodeType":"UserDefinedTypeName","pathNode":{"id":37306,"name":"Subnet","nameLocations":["3101:6:44"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"3101:6:44"},"referencedDeclaration":48574,"src":"3101:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":37313,"initialValue":{"arguments":[{"id":37311,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37301,"src":"3147:8:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":37309,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"3126:10:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":37310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3137:9:44","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42217,"src":"3126:20:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":37312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3126:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3098:58:44"},{"expression":{"expression":{"id":37314,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37308,"src":"3301:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":37315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3308:12:44","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":48565,"src":"3301:19:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37305,"id":37316,"nodeType":"Return","src":"3294:26:44"}]},"documentation":{"id":37298,"nodeType":"StructuredDocumentation","src":"2874:64:44","text":"@notice get number of top-down messages for the given subnet"},"functionSelector":"9d3070b5","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetTopDownMsgsLength","nameLocation":"2952:26:44","parameters":{"id":37302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37301,"mutability":"mutable","name":"subnetId","nameLocation":"2995:8:44","nodeType":"VariableDeclaration","scope":37318,"src":"2979:24:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":37300,"nodeType":"UserDefinedTypeName","pathNode":{"id":37299,"name":"SubnetID","nameLocations":["2979:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"2979:8:44"},"referencedDeclaration":48557,"src":"2979:8:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2978:26:44"},"returnParameters":{"id":37305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37304,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37318,"src":"3028:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37303,"name":"uint256","nodeType":"ElementaryTypeName","src":"3028:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3027:9:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37353,"nodeType":"FunctionDefinition","src":"3450:299:44","nodes":[],"body":{"id":37352,"nodeType":"Block","src":"3547:202:44","nodes":[],"statements":[{"assignments":[37330,37333],"declarations":[{"constant":false,"id":37330,"mutability":"mutable","name":"registered","nameLocation":"3563:10:44","nodeType":"VariableDeclaration","scope":37352,"src":"3558:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37329,"name":"bool","nodeType":"ElementaryTypeName","src":"3558:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37333,"mutability":"mutable","name":"subnet","nameLocation":"3590:6:44","nodeType":"VariableDeclaration","scope":37352,"src":"3575:21:44","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":37332,"nodeType":"UserDefinedTypeName","pathNode":{"id":37331,"name":"Subnet","nameLocations":["3575:6:44"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"3575:6:44"},"referencedDeclaration":48574,"src":"3575:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":37338,"initialValue":{"arguments":[{"id":37336,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37322,"src":"3621:8:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":37334,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"3600:10:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":37335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3611:9:44","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42217,"src":"3600:20:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":37337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3600:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3557:73:44"},{"condition":{"id":37340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3644:11:44","subExpression":{"id":37339,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37330,"src":"3645:10:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37346,"nodeType":"IfStatement","src":"3640:59:44","trueBody":{"id":37345,"nodeType":"Block","src":"3657:42:44","statements":[{"expression":{"components":[{"hexValue":"66616c7365","id":37341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3679:5:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":37342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3686:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":37343,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3678:10:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":37328,"id":37344,"nodeType":"Return","src":"3671:17:44"}]}},{"expression":{"components":[{"hexValue":"74727565","id":37347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3716:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"expression":{"id":37348,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37333,"src":"3722:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":37349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3729:12:44","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":48565,"src":"3722:19:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":37350,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3715:27:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint64_$","typeString":"tuple(bool,uint64)"}},"functionReturnParameters":37328,"id":37351,"nodeType":"Return","src":"3708:34:44"}]},"documentation":{"id":37319,"nodeType":"StructuredDocumentation","src":"3333:112:44","text":"@notice Get the latest applied top down nonce\n @param subnetId - The subnet id to fetch messages from"},"functionSelector":"9e530b57","implemented":true,"kind":"function","modifiers":[],"name":"getAppliedTopDownNonce","nameLocation":"3459:22:44","parameters":{"id":37323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37322,"mutability":"mutable","name":"subnetId","nameLocation":"3500:8:44","nodeType":"VariableDeclaration","scope":37353,"src":"3482:26:44","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":37321,"nodeType":"UserDefinedTypeName","pathNode":{"id":37320,"name":"SubnetID","nameLocations":["3482:8:44"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"3482:8:44"},"referencedDeclaration":48557,"src":"3482:8:44","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"3481:28:44"},"returnParameters":{"id":37328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37353,"src":"3533:4:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37324,"name":"bool","nodeType":"ElementaryTypeName","src":"3533:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37353,"src":"3539:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37326,"name":"uint64","nodeType":"ElementaryTypeName","src":"3539:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3532:14:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37362,"nodeType":"FunctionDefinition","src":"3755:107:44","nodes":[],"body":{"id":37361,"nodeType":"Block","src":"3817:45:44","nodes":[],"statements":[{"expression":{"expression":{"id":37358,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"3834:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3836:19:44","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":42337,"src":"3834:21:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37357,"id":37360,"nodeType":"Return","src":"3827:28:44"}]},"functionSelector":"8789f83b","implemented":true,"kind":"function","modifiers":[],"name":"appliedTopDownNonce","nameLocation":"3764:19:44","parameters":{"id":37354,"nodeType":"ParameterList","parameters":[],"src":"3783:2:44"},"returnParameters":{"id":37357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37362,"src":"3809:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37355,"name":"uint64","nodeType":"ElementaryTypeName","src":"3809:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3808:8:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37385,"nodeType":"FunctionDefinition","src":"3868:168:44","nodes":[],"body":{"id":37384,"nodeType":"Block","src":"3966:70:44","nodes":[],"statements":[{"expression":{"components":[{"expression":{"baseExpression":{"expression":{"id":37372,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"3984:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3986:7:44","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42286,"src":"3984:9:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$48452_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":37375,"indexExpression":{"id":37374,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"3994:2:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3984:13:44","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage","typeString":"struct CrossMsg storage ref"}},"id":37376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3998:7:44","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"3984:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_storage","typeString":"struct StorableMsg storage ref"}},{"expression":{"baseExpression":{"expression":{"id":37377,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"4007:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4009:7:44","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42286,"src":"4007:9:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$48452_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":37380,"indexExpression":{"id":37379,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"4017:2:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4007:13:44","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage","typeString":"struct CrossMsg storage ref"}},"id":37381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4021:7:44","memberName":"wrapped","nodeType":"MemberAccess","referencedDeclaration":48451,"src":"4007:21:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":37382,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3983:46:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_StorableMsg_$48469_storage_$_t_bool_$","typeString":"tuple(struct StorableMsg storage ref,bool)"}},"functionReturnParameters":37371,"id":37383,"nodeType":"Return","src":"3976:53:44"}]},"functionSelector":"8cfd78e7","implemented":true,"kind":"function","modifiers":[],"name":"postbox","nameLocation":"3877:7:44","parameters":{"id":37365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37364,"mutability":"mutable","name":"id","nameLocation":"3893:2:44","nodeType":"VariableDeclaration","scope":37385,"src":"3885:10:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3885:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3884:12:44"},"returnParameters":{"id":37371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37368,"mutability":"mutable","name":"storableMsg","nameLocation":"3939:11:44","nodeType":"VariableDeclaration","scope":37385,"src":"3920:30:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg"},"typeName":{"id":37367,"nodeType":"UserDefinedTypeName","pathNode":{"id":37366,"name":"StorableMsg","nameLocations":["3920:11:44"],"nodeType":"IdentifierPath","referencedDeclaration":48469,"src":"3920:11:44"},"referencedDeclaration":48469,"src":"3920:11:44","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"},{"constant":false,"id":37370,"mutability":"mutable","name":"wrapped","nameLocation":"3957:7:44","nodeType":"VariableDeclaration","scope":37385,"src":"3952:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37369,"name":"bool","nodeType":"ElementaryTypeName","src":"3952:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3919:46:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37394,"nodeType":"FunctionDefinition","src":"4042:105:44","nodes":[],"body":{"id":37393,"nodeType":"Block","src":"4103:44:44","nodes":[],"statements":[{"expression":{"expression":{"id":37390,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"4120:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4122:18:44","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":42331,"src":"4120:20:44","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":37389,"id":37392,"nodeType":"Return","src":"4113:27:44"}]},"functionSelector":"599c7bd1","implemented":true,"kind":"function","modifiers":[],"name":"majorityPercentage","nameLocation":"4051:18:44","parameters":{"id":37386,"nodeType":"ParameterList","parameters":[],"src":"4069:2:44"},"returnParameters":{"id":37389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37388,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37394,"src":"4095:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37387,"name":"uint64","nodeType":"ElementaryTypeName","src":"4095:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4094:8:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37451,"nodeType":"FunctionDefinition","src":"4260:371:44","nodes":[],"body":{"id":37450,"nodeType":"Block","src":"4323:308:44","nodes":[],"statements":[{"assignments":[37403],"declarations":[{"constant":false,"id":37403,"mutability":"mutable","name":"size","nameLocation":"4341:4:44","nodeType":"VariableDeclaration","scope":37450,"src":"4333:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37402,"name":"uint256","nodeType":"ElementaryTypeName","src":"4333:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37407,"initialValue":{"expression":{"expression":{"id":37404,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"4348:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4350:10:44","memberName":"subnetKeys","nodeType":"MemberAccess","referencedDeclaration":42318,"src":"4348:12:44","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":37406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4361:6:44","memberName":"length","nodeType":"MemberAccess","src":"4348:19:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4333:34:44"},{"assignments":[37412],"declarations":[{"constant":false,"id":37412,"mutability":"mutable","name":"out","nameLocation":"4393:3:44","nodeType":"VariableDeclaration","scope":37450,"src":"4377:19:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$48574_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet[]"},"typeName":{"baseType":{"id":37410,"nodeType":"UserDefinedTypeName","pathNode":{"id":37409,"name":"Subnet","nameLocations":["4377:6:44"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"4377:6:44"},"referencedDeclaration":48574,"src":"4377:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"id":37411,"nodeType":"ArrayTypeName","src":"4377:8:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$48574_storage_$dyn_storage_ptr","typeString":"struct Subnet[]"}},"visibility":"internal"}],"id":37419,"initialValue":{"arguments":[{"id":37417,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37403,"src":"4412:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4399:12:44","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Subnet_$48574_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Subnet memory[] memory)"},"typeName":{"baseType":{"id":37414,"nodeType":"UserDefinedTypeName","pathNode":{"id":37413,"name":"Subnet","nameLocations":["4403:6:44"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"4403:6:44"},"referencedDeclaration":48574,"src":"4403:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"id":37415,"nodeType":"ArrayTypeName","src":"4403:8:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$48574_storage_$dyn_storage_ptr","typeString":"struct Subnet[]"}}},"id":37418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4399:18:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$48574_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4377:40:44"},{"body":{"id":37446,"nodeType":"Block","src":"4455:150:44","statements":[{"assignments":[37427],"declarations":[{"constant":false,"id":37427,"mutability":"mutable","name":"key","nameLocation":"4477:3:44","nodeType":"VariableDeclaration","scope":37446,"src":"4469:11:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4469:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37432,"initialValue":{"baseExpression":{"expression":{"id":37428,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"4483:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4485:10:44","memberName":"subnetKeys","nodeType":"MemberAccess","referencedDeclaration":42318,"src":"4483:12:44","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":37431,"indexExpression":{"id":37430,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37421,"src":"4496:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4483:15:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4469:29:44"},{"expression":{"id":37440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37433,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37412,"src":"4512:3:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$48574_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"id":37435,"indexExpression":{"id":37434,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37421,"src":"4516:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4512:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":37436,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"4521:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4523:7:44","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42271,"src":"4521:9:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$48574_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":37439,"indexExpression":{"id":37438,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37427,"src":"4531:3:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4521:14:44","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage","typeString":"struct Subnet storage ref"}},"src":"4512:23:44","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":37441,"nodeType":"ExpressionStatement","src":"4512:23:44"},{"id":37445,"nodeType":"UncheckedBlock","src":"4549:46:44","statements":[{"expression":{"id":37443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4577:3:44","subExpression":{"id":37442,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37421,"src":"4579:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37444,"nodeType":"ExpressionStatement","src":"4577:3:44"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37423,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37421,"src":"4443:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37424,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37403,"src":"4447:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4443:8:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37447,"initializationExpression":{"assignments":[37421],"declarations":[{"constant":false,"id":37421,"mutability":"mutable","name":"i","nameLocation":"4440:1:44","nodeType":"VariableDeclaration","scope":37447,"src":"4432:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37420,"name":"uint256","nodeType":"ElementaryTypeName","src":"4432:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37422,"nodeType":"VariableDeclarationStatement","src":"4432:9:44"},"nodeType":"ForStatement","src":"4427:178:44"},{"expression":{"id":37448,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37412,"src":"4621:3:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$48574_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"functionReturnParameters":37401,"id":37449,"nodeType":"Return","src":"4614:10:44"}]},"documentation":{"id":37395,"nodeType":"StructuredDocumentation","src":"4153:102:44","text":"@notice returns the list of registered subnets in IPC\n @return subnet - the list of subnets"},"functionSelector":"5d029685","implemented":true,"kind":"function","modifiers":[],"name":"listSubnets","nameLocation":"4269:11:44","parameters":{"id":37396,"nodeType":"ParameterList","parameters":[],"src":"4280:2:44"},"returnParameters":{"id":37401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37400,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37451,"src":"4306:15:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$48574_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet[]"},"typeName":{"baseType":{"id":37398,"nodeType":"UserDefinedTypeName","pathNode":{"id":37397,"name":"Subnet","nameLocations":["4306:6:44"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"4306:6:44"},"referencedDeclaration":48574,"src":"4306:6:44","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"id":37399,"nodeType":"ArrayTypeName","src":"4306:8:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$48574_storage_$dyn_storage_ptr","typeString":"struct Subnet[]"}},"visibility":"internal"}],"src":"4305:17:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37462,"nodeType":"FunctionDefinition","src":"4702:111:44","nodes":[],"body":{"id":37461,"nodeType":"Block","src":"4773:40:44","nodes":[],"statements":[{"expression":{"expression":{"id":37458,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"4790:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4792:14:44","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42294,"src":"4790:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}},"functionReturnParameters":37457,"id":37460,"nodeType":"Return","src":"4783:23:44"}]},"documentation":{"id":37452,"nodeType":"StructuredDocumentation","src":"4637:60:44","text":"@notice get the last membership received from the parent"},"functionSelector":"f3229131","implemented":true,"kind":"function","modifiers":[],"name":"getLastMembership","nameLocation":"4711:17:44","parameters":{"id":37453,"nodeType":"ParameterList","parameters":[],"src":"4728:2:44"},"returnParameters":{"id":37457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37462,"src":"4754:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership"},"typeName":{"id":37455,"nodeType":"UserDefinedTypeName","pathNode":{"id":37454,"name":"Membership","nameLocations":["4754:10:44"],"nodeType":"IdentifierPath","referencedDeclaration":48701,"src":"4754:10:44"},"referencedDeclaration":48701,"src":"4754:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"4753:19:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37473,"nodeType":"FunctionDefinition","src":"4894:129:44","nodes":[],"body":{"id":37472,"nodeType":"Block","src":"4963:60:44","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":37468,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"4980:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4982:14:44","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42294,"src":"4980:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}},"id":37470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4997:19:44","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48700,"src":"4980:36:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37467,"id":37471,"nodeType":"Return","src":"4973:43:44"}]},"documentation":{"id":37463,"nodeType":"StructuredDocumentation","src":"4819:70:44","text":"@notice get the last configuration number received from the parent"},"functionSelector":"b1ba49b0","implemented":true,"kind":"function","modifiers":[],"name":"getLastConfigurationNumber","nameLocation":"4903:26:44","parameters":{"id":37464,"nodeType":"ParameterList","parameters":[],"src":"4929:2:44"},"returnParameters":{"id":37467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37466,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37473,"src":"4955:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37465,"name":"uint64","nodeType":"ElementaryTypeName","src":"4955:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4954:8:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37484,"nodeType":"FunctionDefinition","src":"5072:117:44","nodes":[],"body":{"id":37483,"nodeType":"Block","src":"5146:43:44","nodes":[],"statements":[{"expression":{"expression":{"id":37480,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"5163:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5165:17:44","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42290,"src":"5163:19:44","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}},"functionReturnParameters":37479,"id":37482,"nodeType":"Return","src":"5156:26:44"}]},"documentation":{"id":37474,"nodeType":"StructuredDocumentation","src":"5029:38:44","text":"@notice get the current membership"},"functionSelector":"6ad21bb0","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentMembership","nameLocation":"5081:20:44","parameters":{"id":37475,"nodeType":"ParameterList","parameters":[],"src":"5101:2:44"},"returnParameters":{"id":37479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37478,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37484,"src":"5127:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership"},"typeName":{"id":37477,"nodeType":"UserDefinedTypeName","pathNode":{"id":37476,"name":"Membership","nameLocations":["5127:10:44"],"nodeType":"IdentifierPath","referencedDeclaration":48701,"src":"5127:10:44"},"referencedDeclaration":48701,"src":"5127:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"5126:19:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37495,"nodeType":"FunctionDefinition","src":"5248:135:44","nodes":[],"body":{"id":37494,"nodeType":"Block","src":"5320:63:44","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":37490,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"5337:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:17:44","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42290,"src":"5337:19:44","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}},"id":37492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5357:19:44","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48700,"src":"5337:39:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37489,"id":37493,"nodeType":"Return","src":"5330:46:44"}]},"documentation":{"id":37485,"nodeType":"StructuredDocumentation","src":"5195:48:44","text":"@notice get the current configuration number"},"functionSelector":"544dddff","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentConfigurationNumber","nameLocation":"5257:29:44","parameters":{"id":37486,"nodeType":"ParameterList","parameters":[],"src":"5286:2:44"},"returnParameters":{"id":37489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37495,"src":"5312:6:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37487,"name":"uint64","nodeType":"ElementaryTypeName","src":"5312:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5311:8:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37511,"nodeType":"FunctionDefinition","src":"5470:139:44","nodes":[],"body":{"id":37510,"nodeType":"Block","src":"5550:59:44","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":37504,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"5567:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5569:19:44","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42310,"src":"5567:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},"id":37506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5589:10:44","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":48519,"src":"5567:32:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$48506_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":37508,"indexExpression":{"id":37507,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37498,"src":"5600:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5567:35:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage","typeString":"struct QuorumInfo storage ref"}},"functionReturnParameters":37503,"id":37509,"nodeType":"Return","src":"5560:42:44"}]},"documentation":{"id":37496,"nodeType":"StructuredDocumentation","src":"5389:76:44","text":"@notice get the checkpoint information corresponding to the block height"},"functionSelector":"ac12d763","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointInfo","nameLocation":"5479:17:44","parameters":{"id":37499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37498,"mutability":"mutable","name":"h","nameLocation":"5505:1:44","nodeType":"VariableDeclaration","scope":37511,"src":"5497:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37497,"name":"uint256","nodeType":"ElementaryTypeName","src":"5497:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5496:11:44"},"returnParameters":{"id":37503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37511,"src":"5531:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":37501,"nodeType":"UserDefinedTypeName","pathNode":{"id":37500,"name":"QuorumInfo","nameLocations":["5531:10:44"],"nodeType":"IdentifierPath","referencedDeclaration":48506,"src":"5531:10:44"},"referencedDeclaration":48506,"src":"5531:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"src":"5530:19:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37526,"nodeType":"FunctionDefinition","src":"5615:151:44","nodes":[],"body":{"id":37525,"nodeType":"Block","src":"5701:65:44","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":37519,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"5718:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37520,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5720:25:44","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42314,"src":"5718:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},"id":37521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5746:10:44","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":48519,"src":"5718:38:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$48506_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":37523,"indexExpression":{"id":37522,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37513,"src":"5757:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5718:41:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage","typeString":"struct QuorumInfo storage ref"}},"functionReturnParameters":37518,"id":37524,"nodeType":"Return","src":"5711:48:44"}]},"functionSelector":"b9ee5842","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatchInfo","nameLocation":"5624:23:44","parameters":{"id":37514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37513,"mutability":"mutable","name":"h","nameLocation":"5656:1:44","nodeType":"VariableDeclaration","scope":37526,"src":"5648:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37512,"name":"uint256","nodeType":"ElementaryTypeName","src":"5648:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5647:11:44"},"returnParameters":{"id":37518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37517,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37526,"src":"5682:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":37516,"nodeType":"UserDefinedTypeName","pathNode":{"id":37515,"name":"QuorumInfo","nameLocations":["5682:10:44"],"nodeType":"IdentifierPath","referencedDeclaration":48506,"src":"5682:10:44"},"referencedDeclaration":48506,"src":"5682:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"src":"5681:19:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37542,"nodeType":"FunctionDefinition","src":"5856:152:44","nodes":[],"body":{"id":37541,"nodeType":"Block","src":"5935:73:44","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":37534,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"5952:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5954:19:44","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42310,"src":"5952:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},"id":37536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5974:10:44","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":48519,"src":"5952:32:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$48506_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":37538,"indexExpression":{"id":37537,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37529,"src":"5985:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5952:35:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage","typeString":"struct QuorumInfo storage ref"}},"id":37539,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5988:13:44","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":48502,"src":"5952:49:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37533,"id":37540,"nodeType":"Return","src":"5945:56:44"}]},"documentation":{"id":37527,"nodeType":"StructuredDocumentation","src":"5772:79:44","text":"@notice get the checkpoint current weight corresponding to the block height"},"functionSelector":"b3ab3f74","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointCurrentWeight","nameLocation":"5865:26:44","parameters":{"id":37530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37529,"mutability":"mutable","name":"h","nameLocation":"5900:1:44","nodeType":"VariableDeclaration","scope":37542,"src":"5892:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37528,"name":"uint256","nodeType":"ElementaryTypeName","src":"5892:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5891:11:44"},"returnParameters":{"id":37533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37532,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37542,"src":"5926:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37531,"name":"uint256","nodeType":"ElementaryTypeName","src":"5926:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5925:9:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37558,"nodeType":"FunctionDefinition","src":"6093:164:44","nodes":[],"body":{"id":37557,"nodeType":"Block","src":"6178:79:44","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":37550,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"6195:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6197:25:44","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42314,"src":"6195:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},"id":37552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6223:10:44","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":48519,"src":"6195:38:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$48506_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":37554,"indexExpression":{"id":37553,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37545,"src":"6234:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6195:41:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage","typeString":"struct QuorumInfo storage ref"}},"id":37555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6237:13:44","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":48502,"src":"6195:55:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37549,"id":37556,"nodeType":"Return","src":"6188:62:44"}]},"documentation":{"id":37543,"nodeType":"StructuredDocumentation","src":"6014:74:44","text":"@notice get the batch current weight corresponding to the block height"},"functionSelector":"6547cd64","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatchCurrentWeight","nameLocation":"6102:32:44","parameters":{"id":37546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37545,"mutability":"mutable","name":"h","nameLocation":"6143:1:44","nodeType":"VariableDeclaration","scope":37558,"src":"6135:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37544,"name":"uint256","nodeType":"ElementaryTypeName","src":"6135:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6134:11:44"},"returnParameters":{"id":37549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37548,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37558,"src":"6169:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37547,"name":"uint256","nodeType":"ElementaryTypeName","src":"6169:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6168:9:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37572,"nodeType":"FunctionDefinition","src":"6317:155:44","nodes":[],"body":{"id":37571,"nodeType":"Block","src":"6400:72:44","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":37565,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"6417:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6419:19:44","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42310,"src":"6417:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},"id":37567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6439:17:44","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":48523,"src":"6417:39:44","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":37568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6457:6:44","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35385,"src":"6417:46:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35256_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35256_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":37569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6417:48:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":37564,"id":37570,"nodeType":"Return","src":"6410:55:44"}]},"documentation":{"id":37559,"nodeType":"StructuredDocumentation","src":"6263:49:44","text":"@notice get the incomplete checkpoint heights"},"functionSelector":"a517218f","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteCheckpointHeights","nameLocation":"6326:30:44","parameters":{"id":37560,"nodeType":"ParameterList","parameters":[],"src":"6356:2:44"},"returnParameters":{"id":37564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37563,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37572,"src":"6382:16:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":37561,"name":"uint256","nodeType":"ElementaryTypeName","src":"6382:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37562,"nodeType":"ArrayTypeName","src":"6382:9:44","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6381:18:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37637,"nodeType":"FunctionDefinition","src":"6525:508:44","nodes":[],"body":{"id":37636,"nodeType":"Block","src":"6613:420:44","nodes":[],"statements":[{"assignments":[37584],"declarations":[{"constant":false,"id":37584,"mutability":"mutable","name":"heights","nameLocation":"6640:7:44","nodeType":"VariableDeclaration","scope":37636,"src":"6623:24:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":37582,"name":"uint256","nodeType":"ElementaryTypeName","src":"6623:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37583,"nodeType":"ArrayTypeName","src":"6623:9:44","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":37590,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":37585,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"6650:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6652:19:44","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42310,"src":"6650:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},"id":37587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6672:17:44","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":48523,"src":"6650:39:44","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":37588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6690:6:44","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35385,"src":"6650:46:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35256_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35256_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":37589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6650:48:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6623:75:44"},{"assignments":[37592],"declarations":[{"constant":false,"id":37592,"mutability":"mutable","name":"size","nameLocation":"6716:4:44","nodeType":"VariableDeclaration","scope":37636,"src":"6708:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37591,"name":"uint256","nodeType":"ElementaryTypeName","src":"6708:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37595,"initialValue":{"expression":{"id":37593,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37584,"src":"6723:7:44","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":37594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6731:6:44","memberName":"length","nodeType":"MemberAccess","src":"6723:14:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6708:29:44"},{"assignments":[37600],"declarations":[{"constant":false,"id":37600,"mutability":"mutable","name":"checkpoints","nameLocation":"6776:11:44","nodeType":"VariableDeclaration","scope":37636,"src":"6748:39:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint[]"},"typeName":{"baseType":{"id":37598,"nodeType":"UserDefinedTypeName","pathNode":{"id":37597,"name":"BottomUpCheckpoint","nameLocations":["6748:18:44"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"6748:18:44"},"referencedDeclaration":48410,"src":"6748:18:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"id":37599,"nodeType":"ArrayTypeName","src":"6748:20:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$48410_storage_$dyn_storage_ptr","typeString":"struct BottomUpCheckpoint[]"}},"visibility":"internal"}],"id":37607,"initialValue":{"arguments":[{"id":37605,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37592,"src":"6815:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6790:24:44","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct BottomUpCheckpoint memory[] memory)"},"typeName":{"baseType":{"id":37602,"nodeType":"UserDefinedTypeName","pathNode":{"id":37601,"name":"BottomUpCheckpoint","nameLocations":["6794:18:44"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"6794:18:44"},"referencedDeclaration":48410,"src":"6794:18:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"id":37603,"nodeType":"ArrayTypeName","src":"6794:20:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$48410_storage_$dyn_storage_ptr","typeString":"struct BottomUpCheckpoint[]"}}},"id":37606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6790:30:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6748:72:44"},{"body":{"id":37632,"nodeType":"Block","src":"6857:142:44","statements":[{"expression":{"id":37626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37614,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37600,"src":"6871:11:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint memory[] memory"}},"id":37616,"indexExpression":{"id":37615,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37609,"src":"6883:1:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6871:14:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":37617,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"6888:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37618,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6890:19:44","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42300,"src":"6888:21:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":37625,"indexExpression":{"arguments":[{"baseExpression":{"id":37621,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37584,"src":"6917:7:44","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":37623,"indexExpression":{"id":37622,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37609,"src":"6925:1:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6917:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6910:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":37619,"name":"uint64","nodeType":"ElementaryTypeName","src":"6910:6:44","typeDescriptions":{}}},"id":37624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6910:18:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6888:41:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"6871:58:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":37627,"nodeType":"ExpressionStatement","src":"6871:58:44"},{"id":37631,"nodeType":"UncheckedBlock","src":"6943:46:44","statements":[{"expression":{"id":37629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6971:3:44","subExpression":{"id":37628,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37609,"src":"6973:1:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":37630,"nodeType":"ExpressionStatement","src":"6971:3:44"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37611,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37609,"src":"6845:1:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37612,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37592,"src":"6849:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6845:8:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37633,"initializationExpression":{"assignments":[37609],"declarations":[{"constant":false,"id":37609,"mutability":"mutable","name":"i","nameLocation":"6842:1:44","nodeType":"VariableDeclaration","scope":37633,"src":"6835:8:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37608,"name":"uint64","nodeType":"ElementaryTypeName","src":"6835:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":37610,"nodeType":"VariableDeclarationStatement","src":"6835:8:44"},"nodeType":"ForStatement","src":"6830:169:44"},{"expression":{"id":37634,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37600,"src":"7015:11:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint memory[] memory"}},"functionReturnParameters":37579,"id":37635,"nodeType":"Return","src":"7008:18:44"}]},"documentation":{"id":37573,"nodeType":"StructuredDocumentation","src":"6478:42:44","text":"@notice get the incomplete checkpoints"},"functionSelector":"97042766","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteCheckpoints","nameLocation":"6534:24:44","parameters":{"id":37574,"nodeType":"ParameterList","parameters":[],"src":"6558:2:44"},"returnParameters":{"id":37579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37578,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37637,"src":"6584:27:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint[]"},"typeName":{"baseType":{"id":37576,"nodeType":"UserDefinedTypeName","pathNode":{"id":37575,"name":"BottomUpCheckpoint","nameLocations":["6584:18:44"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"6584:18:44"},"referencedDeclaration":48410,"src":"6584:18:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"id":37577,"nodeType":"ArrayTypeName","src":"6584:20:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$48410_storage_$dyn_storage_ptr","typeString":"struct BottomUpCheckpoint[]"}},"visibility":"internal"}],"src":"6583:29:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37702,"nodeType":"FunctionDefinition","src":"7094:494:44","nodes":[],"body":{"id":37701,"nodeType":"Block","src":"7179:409:44","nodes":[],"statements":[{"assignments":[37649],"declarations":[{"constant":false,"id":37649,"mutability":"mutable","name":"heights","nameLocation":"7206:7:44","nodeType":"VariableDeclaration","scope":37701,"src":"7189:24:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":37647,"name":"uint256","nodeType":"ElementaryTypeName","src":"7189:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37648,"nodeType":"ArrayTypeName","src":"7189:9:44","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":37655,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":37650,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"7216:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7218:25:44","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42314,"src":"7216:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},"id":37652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7244:17:44","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":48523,"src":"7216:45:44","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":37653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7262:6:44","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35385,"src":"7216:52:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35256_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35256_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":37654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7216:54:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7189:81:44"},{"assignments":[37657],"declarations":[{"constant":false,"id":37657,"mutability":"mutable","name":"size","nameLocation":"7288:4:44","nodeType":"VariableDeclaration","scope":37701,"src":"7280:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37656,"name":"uint256","nodeType":"ElementaryTypeName","src":"7280:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37660,"initialValue":{"expression":{"id":37658,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37649,"src":"7295:7:44","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":37659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7303:6:44","memberName":"length","nodeType":"MemberAccess","src":"7295:14:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7280:29:44"},{"assignments":[37665],"declarations":[{"constant":false,"id":37665,"mutability":"mutable","name":"batches","nameLocation":"7346:7:44","nodeType":"VariableDeclaration","scope":37701,"src":"7320:33:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$48423_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch[]"},"typeName":{"baseType":{"id":37663,"nodeType":"UserDefinedTypeName","pathNode":{"id":37662,"name":"BottomUpMsgBatch","nameLocations":["7320:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"7320:16:44"},"referencedDeclaration":48423,"src":"7320:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"id":37664,"nodeType":"ArrayTypeName","src":"7320:18:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$48423_storage_$dyn_storage_ptr","typeString":"struct BottomUpMsgBatch[]"}},"visibility":"internal"}],"id":37672,"initialValue":{"arguments":[{"id":37670,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37657,"src":"7379:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7356:22:44","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_BottomUpMsgBatch_$48423_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct BottomUpMsgBatch memory[] memory)"},"typeName":{"baseType":{"id":37667,"nodeType":"UserDefinedTypeName","pathNode":{"id":37666,"name":"BottomUpMsgBatch","nameLocations":["7360:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"7360:16:44"},"referencedDeclaration":48423,"src":"7360:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"id":37668,"nodeType":"ArrayTypeName","src":"7360:18:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$48423_storage_$dyn_storage_ptr","typeString":"struct BottomUpMsgBatch[]"}}},"id":37671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7356:28:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$48423_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7320:64:44"},{"body":{"id":37697,"nodeType":"Block","src":"7421:137:44","statements":[{"expression":{"id":37691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37679,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37665,"src":"7435:7:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$48423_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch memory[] memory"}},"id":37681,"indexExpression":{"id":37680,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37674,"src":"7443:1:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7435:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":37682,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"7448:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7450:18:44","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":42306,"src":"7448:20:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$48423_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":37690,"indexExpression":{"arguments":[{"baseExpression":{"id":37686,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37649,"src":"7476:7:44","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":37688,"indexExpression":{"id":37687,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37674,"src":"7484:1:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7476:10:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7469:6:44","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":37684,"name":"uint64","nodeType":"ElementaryTypeName","src":"7469:6:44","typeDescriptions":{}}},"id":37689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7469:18:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7448:40:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"src":"7435:53:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":37692,"nodeType":"ExpressionStatement","src":"7435:53:44"},{"id":37696,"nodeType":"UncheckedBlock","src":"7502:46:44","statements":[{"expression":{"id":37694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7530:3:44","subExpression":{"id":37693,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37674,"src":"7532:1:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":37695,"nodeType":"ExpressionStatement","src":"7530:3:44"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37676,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37674,"src":"7409:1:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37677,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37657,"src":"7413:4:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7409:8:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37698,"initializationExpression":{"assignments":[37674],"declarations":[{"constant":false,"id":37674,"mutability":"mutable","name":"i","nameLocation":"7406:1:44","nodeType":"VariableDeclaration","scope":37698,"src":"7399:8:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37673,"name":"uint64","nodeType":"ElementaryTypeName","src":"7399:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":37675,"nodeType":"VariableDeclarationStatement","src":"7399:8:44"},"nodeType":"ForStatement","src":"7394:164:44"},{"expression":{"id":37699,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37665,"src":"7574:7:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$48423_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch memory[] memory"}},"functionReturnParameters":37644,"id":37700,"nodeType":"Return","src":"7567:14:44"}]},"documentation":{"id":37638,"nodeType":"StructuredDocumentation","src":"7039:50:44","text":"@notice get the incomplete batches of messages"},"functionSelector":"335eb62a","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteMsgBatches","nameLocation":"7103:23:44","parameters":{"id":37639,"nodeType":"ParameterList","parameters":[],"src":"7126:2:44"},"returnParameters":{"id":37644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37643,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37702,"src":"7152:25:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$48423_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch[]"},"typeName":{"baseType":{"id":37641,"nodeType":"UserDefinedTypeName","pathNode":{"id":37640,"name":"BottomUpMsgBatch","nameLocations":["7152:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"7152:16:44"},"referencedDeclaration":48423,"src":"7152:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"id":37642,"nodeType":"ArrayTypeName","src":"7152:18:44","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$48423_storage_$dyn_storage_ptr","typeString":"struct BottomUpMsgBatch[]"}},"visibility":"internal"}],"src":"7151:27:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37716,"nodeType":"FunctionDefinition","src":"7649:159:44","nodes":[],"body":{"id":37715,"nodeType":"Block","src":"7730:78:44","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":37709,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"7747:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7749:25:44","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42314,"src":"7747:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},"id":37711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7775:17:44","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":48523,"src":"7747:45:44","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":37712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7793:6:44","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35385,"src":"7747:52:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35256_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35256_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":37713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7747:54:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":37708,"id":37714,"nodeType":"Return","src":"7740:61:44"}]},"documentation":{"id":37703,"nodeType":"StructuredDocumentation","src":"7594:50:44","text":"@notice get the incomplete msd batches heights"},"functionSelector":"767ee5f4","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteMsgBatchHeights","nameLocation":"7658:28:44","parameters":{"id":37704,"nodeType":"ParameterList","parameters":[],"src":"7686:2:44"},"returnParameters":{"id":37708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37707,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37716,"src":"7712:16:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":37705,"name":"uint256","nodeType":"ElementaryTypeName","src":"7712:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37706,"nodeType":"ArrayTypeName","src":"7712:9:44","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7711:18:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37727,"nodeType":"FunctionDefinition","src":"7875:133:44","nodes":[],"body":{"id":37726,"nodeType":"Block","src":"7947:61:44","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":37722,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"7964:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7966:19:44","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42310,"src":"7964:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},"id":37724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7986:15:44","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":48513,"src":"7964:37:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37721,"id":37725,"nodeType":"Return","src":"7957:44:44"}]},"documentation":{"id":37717,"nodeType":"StructuredDocumentation","src":"7814:56:44","text":"@notice get the bottom-up checkpoint retention index"},"functionSelector":"4aa8f8a5","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointRetentionHeight","nameLocation":"7884:28:44","parameters":{"id":37718,"nodeType":"ParameterList","parameters":[],"src":"7912:2:44"},"returnParameters":{"id":37721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37720,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37727,"src":"7938:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37719,"name":"uint256","nodeType":"ElementaryTypeName","src":"7938:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7937:9:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37738,"nodeType":"FunctionDefinition","src":"8070:140:44","nodes":[],"body":{"id":37737,"nodeType":"Block","src":"8143:67:44","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":37733,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"8160:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8162:25:44","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42314,"src":"8160:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},"id":37735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8188:15:44","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":48513,"src":"8160:43:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37732,"id":37736,"nodeType":"Return","src":"8153:50:44"}]},"documentation":{"id":37728,"nodeType":"StructuredDocumentation","src":"8014:51:44","text":"@notice get the bottom-up batch retention index"},"functionSelector":"22180594","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgRetentionHeight","nameLocation":"8079:29:44","parameters":{"id":37729,"nodeType":"ParameterList","parameters":[],"src":"8108:2:44"},"returnParameters":{"id":37732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37731,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37738,"src":"8134:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37730,"name":"uint256","nodeType":"ElementaryTypeName","src":"8134:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8133:9:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37754,"nodeType":"FunctionDefinition","src":"8383:162:44","nodes":[],"body":{"id":37753,"nodeType":"Block","src":"8464:81:44","nodes":[],"statements":[{"expression":{"arguments":[{"id":37748,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37741,"src":"8504:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":37749,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"8517:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8519:18:44","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":42331,"src":"8517:20:44","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":37746,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43249,"src":"8481:9:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43249_$","typeString":"type(library LibQuorum)"}},"id":37747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8491:12:44","memberName":"weightNeeded","nodeType":"MemberAccess","referencedDeclaration":43170,"src":"8481:22:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":37751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8481:57:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37745,"id":37752,"nodeType":"Return","src":"8474:64:44"}]},"documentation":{"id":37739,"nodeType":"StructuredDocumentation","src":"8216:162:44","text":"@notice Calculate the threshold required for quorum in this subnet\n based on the configured majority percentage and the total weight of the validators."},"functionSelector":"06572c1a","implemented":true,"kind":"function","modifiers":[],"name":"getQuorumThreshold","nameLocation":"8392:18:44","parameters":{"id":37742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37741,"mutability":"mutable","name":"totalWeight","nameLocation":"8419:11:44","nodeType":"VariableDeclaration","scope":37754,"src":"8411:19:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37740,"name":"uint256","nodeType":"ElementaryTypeName","src":"8411:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8410:21:44"},"returnParameters":{"id":37745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37754,"src":"8455:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37743,"name":"uint256","nodeType":"ElementaryTypeName","src":"8455:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8454:9:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37798,"nodeType":"FunctionDefinition","src":"8689:480:44","nodes":[],"body":{"id":37797,"nodeType":"Block","src":"8972:197:44","nodes":[],"statements":[{"expression":{"id":37777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37772,"name":"ch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37761,"src":"8982:2:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":37773,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"8987:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8989:19:44","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42300,"src":"8987:21:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":37776,"indexExpression":{"id":37775,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37757,"src":"9009:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8987:24:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"8982:29:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":37778,"nodeType":"ExpressionStatement","src":"8982:29:44"},{"expression":{"id":37789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":37779,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37764,"src":"9022:4:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":37780,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37767,"src":"9028:11:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":37781,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37770,"src":"9041:10:44","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":37782,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"9021:31:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$48506_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":37785,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"9084:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9086:19:44","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42310,"src":"9084:21:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},{"id":37787,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37757,"src":"9107:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37783,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43249,"src":"9055:9:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43249_$","typeString":"type(library LibQuorum)"}},"id":37784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9065:18:44","memberName":"getSignatureBundle","nodeType":"MemberAccess","referencedDeclaration":43248,"src":"9055:28:44","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_view$_t_struct$_QuorumMap_$48537_storage_ptr_$_t_uint256_$returns$_t_struct$_QuorumInfo_$48506_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct QuorumMap storage pointer,uint256) view returns (struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"id":37788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9055:54:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$48506_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"src":"9021:88:44","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37790,"nodeType":"ExpressionStatement","src":"9021:88:44"},{"expression":{"components":[{"id":37791,"name":"ch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37761,"src":"9128:2:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":37792,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37764,"src":"9132:4:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":37793,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37767,"src":"9138:11:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":37794,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37770,"src":"9151:10:44","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":37795,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9127:35:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$_t_struct$_QuorumInfo_$48506_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct BottomUpCheckpoint memory,struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"functionReturnParameters":37771,"id":37796,"nodeType":"Return","src":"9120:42:44"}]},"documentation":{"id":37755,"nodeType":"StructuredDocumentation","src":"8551:133:44","text":"@notice get the checkpoint signature bundle consisting of the checkpoint, its info, signatories and the corresponding signatures."},"functionSelector":"ca41d5ce","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointSignatureBundle","nameLocation":"8698:28:44","parameters":{"id":37758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37757,"mutability":"mutable","name":"h","nameLocation":"8744:1:44","nodeType":"VariableDeclaration","scope":37798,"src":"8736:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37756,"name":"uint256","nodeType":"ElementaryTypeName","src":"8736:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8726:25:44"},"returnParameters":{"id":37771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37761,"mutability":"mutable","name":"ch","nameLocation":"8838:2:44","nodeType":"VariableDeclaration","scope":37798,"src":"8812:28:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":37760,"nodeType":"UserDefinedTypeName","pathNode":{"id":37759,"name":"BottomUpCheckpoint","nameLocations":["8812:18:44"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"8812:18:44"},"referencedDeclaration":48410,"src":"8812:18:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":37764,"mutability":"mutable","name":"info","nameLocation":"8872:4:44","nodeType":"VariableDeclaration","scope":37798,"src":"8854:22:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":37763,"nodeType":"UserDefinedTypeName","pathNode":{"id":37762,"name":"QuorumInfo","nameLocations":["8854:10:44"],"nodeType":"IdentifierPath","referencedDeclaration":48506,"src":"8854:10:44"},"referencedDeclaration":48506,"src":"8854:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"},{"constant":false,"id":37767,"mutability":"mutable","name":"signatories","nameLocation":"8907:11:44","nodeType":"VariableDeclaration","scope":37798,"src":"8890:28:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":37765,"name":"address","nodeType":"ElementaryTypeName","src":"8890:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37766,"nodeType":"ArrayTypeName","src":"8890:9:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":37770,"mutability":"mutable","name":"signatures","nameLocation":"8947:10:44","nodeType":"VariableDeclaration","scope":37798,"src":"8932:25:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":37768,"name":"bytes","nodeType":"ElementaryTypeName","src":"8932:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":37769,"nodeType":"ArrayTypeName","src":"8932:7:44","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"8798:169:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37842,"nodeType":"FunctionDefinition","src":"9236:498:44","nodes":[],"body":{"id":37841,"nodeType":"Block","src":"9526:208:44","nodes":[],"statements":[{"expression":{"id":37821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":37816,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37805,"src":"9536:5:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":37817,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"9544:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9546:18:44","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":42306,"src":"9544:20:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$48423_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":37820,"indexExpression":{"id":37819,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37801,"src":"9565:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9544:23:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"src":"9536:31:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":37822,"nodeType":"ExpressionStatement","src":"9536:31:44"},{"expression":{"id":37833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":37823,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37808,"src":"9578:4:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":37824,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37811,"src":"9584:11:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":37825,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37814,"src":"9597:10:44","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":37826,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"9577:31:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$48506_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":37829,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37127,"src":"9640:1:44","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37830,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9642:25:44","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42314,"src":"9640:27:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},{"id":37831,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37801,"src":"9669:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37827,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43249,"src":"9611:9:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43249_$","typeString":"type(library LibQuorum)"}},"id":37828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9621:18:44","memberName":"getSignatureBundle","nodeType":"MemberAccess","referencedDeclaration":43248,"src":"9611:28:44","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_view$_t_struct$_QuorumMap_$48537_storage_ptr_$_t_uint256_$returns$_t_struct$_QuorumInfo_$48506_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct QuorumMap storage pointer,uint256) view returns (struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"id":37832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9611:60:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$48506_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"src":"9577:94:44","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37834,"nodeType":"ExpressionStatement","src":"9577:94:44"},{"expression":{"components":[{"id":37835,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37805,"src":"9690:5:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},{"id":37836,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37808,"src":"9697:4:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":37837,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37811,"src":"9703:11:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":37838,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37814,"src":"9716:10:44","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":37839,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9689:38:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_BottomUpMsgBatch_$48423_memory_ptr_$_t_struct$_QuorumInfo_$48506_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct BottomUpMsgBatch memory,struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"functionReturnParameters":37815,"id":37840,"nodeType":"Return","src":"9682:45:44"}]},"documentation":{"id":37799,"nodeType":"StructuredDocumentation","src":"9175:56:44","text":"@notice get the bottom-up msg batch signature bundle"},"functionSelector":"a9294bdd","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatchSignatureBundle","nameLocation":"9245:34:44","parameters":{"id":37802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37801,"mutability":"mutable","name":"h","nameLocation":"9297:1:44","nodeType":"VariableDeclaration","scope":37842,"src":"9289:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37800,"name":"uint256","nodeType":"ElementaryTypeName","src":"9289:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9279:25:44"},"returnParameters":{"id":37815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37805,"mutability":"mutable","name":"batch","nameLocation":"9389:5:44","nodeType":"VariableDeclaration","scope":37842,"src":"9365:29:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":37804,"nodeType":"UserDefinedTypeName","pathNode":{"id":37803,"name":"BottomUpMsgBatch","nameLocations":["9365:16:44"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"9365:16:44"},"referencedDeclaration":48423,"src":"9365:16:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"},{"constant":false,"id":37808,"mutability":"mutable","name":"info","nameLocation":"9426:4:44","nodeType":"VariableDeclaration","scope":37842,"src":"9408:22:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":37807,"nodeType":"UserDefinedTypeName","pathNode":{"id":37806,"name":"QuorumInfo","nameLocations":["9408:10:44"],"nodeType":"IdentifierPath","referencedDeclaration":48506,"src":"9408:10:44"},"referencedDeclaration":48506,"src":"9408:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"},{"constant":false,"id":37811,"mutability":"mutable","name":"signatories","nameLocation":"9461:11:44","nodeType":"VariableDeclaration","scope":37842,"src":"9444:28:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":37809,"name":"address","nodeType":"ElementaryTypeName","src":"9444:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37810,"nodeType":"ArrayTypeName","src":"9444:9:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":37814,"mutability":"mutable","name":"signatures","nameLocation":"9501:10:44","nodeType":"VariableDeclaration","scope":37842,"src":"9486:25:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":37812,"name":"bytes","nodeType":"ElementaryTypeName","src":"9486:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":37813,"nodeType":"ArrayTypeName","src":"9486:7:44","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"9351:170:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37868,"nodeType":"FunctionDefinition","src":"9955:289:44","nodes":[],"body":{"id":37867,"nodeType":"Block","src":"10112:132:44","nodes":[],"statements":[{"expression":{"id":37860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":37853,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37846,"src":"10123:6:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":37854,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37848,"src":"10131:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37855,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37851,"src":"10138:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"id":37856,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"10122:27:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$","typeString":"tuple(bool,uint256,struct BottomUpCheckpoint memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37857,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"10152:10:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":37858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10163:28:44","memberName":"getCurrentBottomUpCheckpoint","nodeType":"MemberAccess","referencedDeclaration":41327,"src":"10152:39:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$","typeString":"function () view returns (bool,uint256,struct BottomUpCheckpoint memory)"}},"id":37859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10152:41:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$","typeString":"tuple(bool,uint256,struct BottomUpCheckpoint memory)"}},"src":"10122:71:44","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37861,"nodeType":"ExpressionStatement","src":"10122:71:44"},{"expression":{"components":[{"id":37862,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37846,"src":"10211:6:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":37863,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37848,"src":"10219:5:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":37864,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37851,"src":"10226:10:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"id":37865,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10210:27:44","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$","typeString":"tuple(bool,uint256,struct BottomUpCheckpoint memory)"}},"functionReturnParameters":37852,"id":37866,"nodeType":"Return","src":"10203:34:44"}]},"documentation":{"id":37843,"nodeType":"StructuredDocumentation","src":"9740:210:44","text":"@notice returns the current bottom-up checkpoint\n @return exists - whether the checkpoint exists\n @return epoch - the epoch of the checkpoint\n @return checkpoint - the checkpoint struct"},"functionSelector":"d6c5c397","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentBottomUpCheckpoint","nameLocation":"9964:28:44","parameters":{"id":37844,"nodeType":"ParameterList","parameters":[],"src":"9992:2:44"},"returnParameters":{"id":37852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37846,"mutability":"mutable","name":"exists","nameLocation":"10047:6:44","nodeType":"VariableDeclaration","scope":37868,"src":"10042:11:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37845,"name":"bool","nodeType":"ElementaryTypeName","src":"10042:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37848,"mutability":"mutable","name":"epoch","nameLocation":"10063:5:44","nodeType":"VariableDeclaration","scope":37868,"src":"10055:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37847,"name":"uint256","nodeType":"ElementaryTypeName","src":"10055:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37851,"mutability":"mutable","name":"checkpoint","nameLocation":"10096:10:44","nodeType":"VariableDeclaration","scope":37868,"src":"10070:36:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":37850,"nodeType":"UserDefinedTypeName","pathNode":{"id":37849,"name":"BottomUpCheckpoint","nameLocations":["10070:18:44"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"10070:18:44"},"referencedDeclaration":48410,"src":"10070:18:44","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"10041:66:44"},"scope":37869,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayGetterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[37869],"name":"GatewayGetterFacet","nameLocation":"657:18:44","scope":37870,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":44} \ No newline at end of file +{"abi":[{"type":"function","name":"appliedTopDownNonce","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckpoint","inputs":[{"name":"e","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"bottomUpMsgBatch","inputs":[{"name":"e","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"stateMutability":"view"},{"type":"function","name":"bottomUpMsgBatchPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bottomUpNonce","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"crossMsgFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAppliedTopDownNonce","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgBatchCurrentWeight","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgBatchInfo","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgBatchSignatureBundle","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"info","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"getBottomUpMsgRetentionHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCheckpointCurrentWeight","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCheckpointInfo","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]}],"stateMutability":"view"},{"type":"function","name":"getCheckpointRetentionHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCheckpointSignatureBundle","inputs":[{"name":"h","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ch","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"info","type":"tuple","internalType":"struct QuorumInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"rootHash","type":"bytes32","internalType":"bytes32"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"currentWeight","type":"uint256","internalType":"uint256"},{"name":"reached","type":"bool","internalType":"bool"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBottomUpCheckpoint","inputs":[],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"epoch","type":"uint256","internalType":"uint256"},{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getCurrentConfigurationNumber","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getCurrentMembership","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Membership","components":[{"name":"validators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getIncompleteCheckpointHeights","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getIncompleteCheckpoints","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct BottomUpCheckpoint[]","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getIncompleteMsgBatchHeights","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getIncompleteMsgBatches","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct BottomUpMsgBatch[]","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"stateMutability":"view"},{"type":"function","name":"getLastConfigurationNumber","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getLastMembership","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Membership","components":[{"name":"validators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getLatestParentFinality","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getNetworkName","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getParentFinality","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getQuorumThreshold","inputs":[{"name":"totalWeight","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSubnet","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"tuple","internalType":"struct Subnet","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"genesisEpoch","type":"uint256","internalType":"uint256"},{"name":"circSupply","type":"uint256","internalType":"uint256"},{"name":"topDownNonce","type":"uint64","internalType":"uint64"},{"name":"appliedBottomUpNonce","type":"uint64","internalType":"uint64"},{"name":"id","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"getSubnetTopDownMsgsLength","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"listSubnets","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Subnet[]","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"genesisEpoch","type":"uint256","internalType":"uint256"},{"name":"circSupply","type":"uint256","internalType":"uint256"},{"name":"topDownNonce","type":"uint64","internalType":"uint64"},{"name":"appliedBottomUpNonce","type":"uint64","internalType":"uint64"},{"name":"id","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"majorityPercentage","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"maxMsgsPerBottomUpBatch","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"postbox","inputs":[{"name":"id","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"storableMsg","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"subnets","inputs":[{"name":"h","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"subnet","type":"tuple","internalType":"struct Subnet","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"genesisEpoch","type":"uint256","internalType":"uint256"},{"name":"circSupply","type":"uint256","internalType":"uint256"},{"name":"topDownNonce","type":"uint64","internalType":"uint64"},{"name":"appliedBottomUpNonce","type":"uint64","internalType":"uint64"},{"name":"id","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"totalSubnets","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523461001657612245908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114a85781630338150f1461146257816305aff0b31461143a57816306572c1a1461140957816306c46853146113ea57816322180594146113cb57816324729425146113ac5781632da5794a14611333578163335eb62a1461113657816341b6a2e81461110b5781634aa8f8a5146110ec578163544dddff146110c4578163599c7bd1146110a25781635d02968514610f8b5781636547cd6414610f6057816369e737fd14610f415781636ad21bb014610e63578163767ee5f414610de95781637edeac9214610d9a5781638789f83b14610d6f5781638cfd78e714610cdf57816394074b0314610c295781639704276614610a885781639d3070b514610a425781639e530b5714610a10578163a2b67158146109e5578163a517218f14610961578163a9294bdd146107c5578163ac12d76314610787578163b1ba49b01461075f578163b3ab3f7414610734578163b9ee584214610697578163c66c66a114610646578163ca41d5ce146104e2578163d6c5c39714610372578163dd81b5cf1461029d575063f3229131146101ba57600080fd5b346102995781600319360112610299576101d2611e36565b508051906101df82611896565b6006546101eb81611923565b6101f783519182611902565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b82821061025757505050610253945083526001600160401b036007541690830152519182918261176f565b0390f35b60038560019288516102688161187b565b8b548152848060a01b03858d0154168382015261028760028d01611b9a565b8a820152815201980191019096610228565b5080fd5b9190503461036e576020918260031936011261036a576102bb611b73565b50358352600982528083209260038251946102d58661187b565b6102de81611acc565b8652600281015485870152018054906102f682611923565b9261030385519485611902565b828452908152848120858085015b848410610330578689018690528651828152806102538185018c6116d6565b600191600d91885161034181611896565b61034a86611cb1565b815260ff600c870154161515838201528152019201920191908690610311565b8380fd5b8280fd5b83833461029957816003193601126102995761038c611b47565b50610395611b47565b50601d549081156104cf576001600160401b03918083431604600181018091116104bc57906103c3916121e6565b8084526104216020809660088252848720908551966103e18861184a565b816103eb84611acc565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612038565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104b157809561046a575b505081606091610253949351968796158752860152840152606083019061159b565b909194508582813d83116104aa575b6104838183611902565b810103126104a75750610253929161049c606092611e7b565b949181939450610448565b80fd5b503d610479565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b9190503461036e57602036600319011261036e57813591610501611b47565b5061050a611e50565b508284526008602052818420926001600160401b038284519561052c8761184a565b61053581611acc565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af490811561063c57906102539291856105bc969181809461060c575b50506105f16105fe939451978897610100808a5289019061159b565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a19565b9083820360e0850152611a56565b6105fe94506105f1935061063292503d8091833e61062a8183611902565b810190611e88565b91929091936105a0565b82513d86823e3d90fd5b8284346104a75750610680610253610678610673610663366119e8565b61066b611d28565b50369061193a565b6120d6565b929092611d65565b835193849315158452806020850152830190611548565b9190503461036e57602036600319011261036e578060ff6107329260a0956106bd611e50565b5085358152601360205220938251946106d5866118cc565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b90503461036e57602036600319011261036e5781602093600392358152600c85522001549051908152f35b5050346102995781600319360112610299576020906001600160401b03600754169051908152f35b9190503461036e57602036600319011261036e578060ff6107329260a0956107ad611e50565b5085358152600c60205220938251946106d5866118cc565b9190503461036e576020918260031936011261036a578035926107e6611b73565b506107ef611e50565b50838552600981528285209360038451956108098761187b565b61081281611acc565b875260028101548488015201805461082981611923565b9161083687519384611902565b81835288528388208890858085015b8484106109275750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561091d5790856102539493926108c197908280956108f4575b50506105f1906105fe949551988998610100808b528a01906116d6565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b6105fe95506105f1935061091292503d8091833e61062a8183611902565b9490925081906108a4565b83513d87823e3d90fd5b600191600d918b5161093881611896565b61094186611cb1565b815260ff600c870154161515838201528152019201920191908690610845565b8284346104a757806003193601126104a7578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109ce5761025386866109c4828b0383611902565b519182918261180f565b8354875295860195600193840193909101906109ac565b5050346102995781600319360112610299576020906001600160401b03601c5460881c169051908152f35b8284346104a757506001600160401b03610a31610a2c366119e8565b611db8565b835191151582529091166020820152f35b8284346104a75760203660031901126104a75782356001600160401b03918282116104a75750610a7c61067360209560039336910161193a565b90500154169051908152f35b905082346104a757806003193601126104a75782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1357505050610aea92500385611902565b835191610af683611923565b91610b0387519384611902565b838352601f19610b1285611923565b0182865b828110610bfd57505050845b6001600160401b039081811686811015610ba05790610b988284610b486001958d611e0c565b51168a52600887528b8587828d20835193610b628561184a565b610b6b82611acc565b855260028201548c8601526003820154908501520154166060820152610b91828a611e0c565b5287611e0c565b500116610b22565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bd15785850386f35b909192938280610bed600193603f198a8203018652885161159b565b9601920196019592919092610bc4565b610c05611b47565b828288010152018390610b16565b855484526001958601958a955093019201610ad3565b8284346104a757806003193601126104a757610c43611ab2565b50815191610c5083611896565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610cc25788906102538888610caf818a0382611902565b83850152519282849384528301906114ed565b83546001600160a01b031685529093019260019283019201610c94565b90503461036e57602036600319011261036e579181928160c08451610d03816118b1565b610d0b611dea565b8152610d15611dea565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d4f60ff600c8401541692611cb1565b91610d63825193838594855284019061165c565b90151560208301520390f35b5050346102995781600319360112610299576020906001600160401b03601c5460481c169051908152f35b90503461036e57602036600319011261036e57610dcd906102539360208451610dc281611896565b828152015235612097565b9051918291829190916020806040830194805184520151910152565b8284346104a757806003193601126104a7578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e4c5761025386866109c4828b0383611902565b835487529586019560019384019390910190610e34565b8383346102995781600319360112610299578290610e7f611e36565b50805191610e8c83611896565b8054610e9781611923565b90610ea484519283611902565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610eff57505050610253945083526001600160401b036005541690830152519182918261176f565b6003856001928851610f108161187b565b8b548152848060a01b03858d01541683820152610f2f60028d01611b9a565b8a820152815201980191019096610ed4565b505034610299578160031936011261029957602090601e549051908152f35b90503461036e57602036600319011261036e5781602093600392358152601385522001549051908152f35b8284346104a757806003193601126104a757601854610fa981611923565b90610fb684519283611902565b808252601f19610fc582611923565b01835b81811061108b575050825b818110611037575050825191602080840190808552835180925280868601968360051b870101940192955b82871061100b5785850386f35b909192938280611027600193603f198a82030186528851611548565b9601920196019592919092610ffe565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261106f868620611d65565b6110798286611e0c565b526110848185611e0c565b5001610fd3565b602090611096611d28565b82828701015201610fc8565b50503461029957816003193601126102995760209060ff601c54169051908152f35b5050346102995781600319360112610299576020906001600160401b03600554169051908152f35b505034610299578160031936011261029957602090600b549051908152f35b5050346102995781600319360112610299576020906001600160401b03601c5460081c169051908152f35b50503461029957816003193601126102995780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b8682821061131d5750505061119792500385611902565b8351916111a383611923565b916111b085519384611902565b838352601f196111bf85611923565b0182825b82811061130757505050805b6001600160401b0390818116868110156112ab57826111ee828b611e0c565b511684526009855287842060038951916112078361187b565b61121081611acc565b835260028101548884015201805461122781611923565b916112348c519384611902565b818352875287872087898085018e5b858410611270579250505084611268959350600197969492500152610b91828a611e0c565b5001166111cf565b91600d916001935161128181611896565b61128a87611cb1565b815260ff600c880154161515838201528152019301910190918a908e611243565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106112db5785850386f35b9091929382806112f7600193603f198a820301865288516116d6565b96019201960195929190926112ce565b61130f611b73565b8282880101520183906111c3565b855484526001958601958a955093019201611180565b9190503461036e57602036600319011261036e576001600160401b03816102539461135c611b47565b5084358152600860205220928251936113748561184a565b61137d81611acc565b85526002810154602086015260038101548486015201541660608301525191829160208352602083019061159b565b505034610299578160031936011261029957602090601b549051908152f35b5050346102995781600319360112610299576020906012549051908152f35b505034610299578160031936011261029957602090601d549051908152f35b8284346104a75760203660031901126104a75750606461143260209360ff601c541690356121e6565b049051908152f35b5050346102995781600319360112610299576020906001600160401b03601f54169051908152f35b50503461029957816003193601126102995781610253926020835161148681611896565b82815201526020825161149881611896565b8281520152610dcd600254612097565b90503461036e57602036600319011261036e5781610253936114da926114cc611d28565b503581528060205220611d65565b9051918291602083526020830190611548565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061152b575050505090565b83516001600160a01b03168552938101939281019260010161151d565b9060c060a0611598938051845260208101516020850152604081015160408501526001600160401b0380606083015116606086015260808201511660808501520151918160a082015201906114ed565b90565b9060606001600160401b03816115ba85516080865260808601906114ed565b94602081015160208601526040810151604086015201511691015290565b60005b8381106115eb5750506000910152565b81810151838201526020016115db565b90602091611614815180928185528580860191016115d8565b601f01601f1916010190565b60406020611598938161163a8551858452858401906114ed565b940151908281860391015260ff815116845201519181602082015201906115fb565b9060c0806116cd61168b611679865160e0875260e0870190611620565b60208701518682036020880152611620565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a08701526115fb565b93015191015290565b6116e981516060845260608401906114ed565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061172b575050505050505090565b909192939495968580600192601f198582030187528a5190828061175684518a85528a85019061165c565b930151151591015299019401940192959493919061171a565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b8383106117c1575050505050906001600160401b039101511691015290565b909192939886806118008a856001958f8f83918591607f19908503018c525180518452898060a01b0388820151168885015201519382015201906115fb565b9b0193019301919392906117a2565b6020908160408183019282815285518094520193019160005b828110611836575050505090565b835185529381019392810192600101611828565b608081019081106001600160401b0382111761186557604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761186557604052565b604081019081106001600160401b0382111761186557604052565b60e081019081106001600160401b0382111761186557604052565b60a081019081106001600160401b0382111761186557604052565b60c081019081106001600160401b0382111761186557604052565b90601f801991011681019081106001600160401b0382111761186557604052565b6001600160401b0381116118655760051b60200190565b91906040838203126119e3576040519261195384611896565b836001600160401b03823581811681036119e3578252602092838101359182116119e357019280601f850112156119e357833561198f81611923565b9461199d6040519687611902565b818652848087019260051b8201019283116119e3578401905b8282106119c4575050500152565b81356001600160a01b03811681036119e35781529084019084016119b6565b600080fd5b600319906020818301126119e357600435916001600160401b0383116119e357826040920301126119e35760040190565b90815180825260208080930193019160005b828110611a39575050505090565b83516001600160a01b031685529381019392810192600101611a2b565b908082519081815260208091019281808460051b8301019501936000915b848310611a845750505050505090565b9091929394958480611aa2600193601f198682030187528a516115fb565b9801930193019194939290611a74565b60405190611abf82611896565b6060602083600081520152565b90604051611ad981611896565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b285750505050611b2492500384611902565b0152565b83546001600160a01b0316855289955090930192918101918101611b0c565b60405190611b548261184a565b6000606083611b61611ab2565b81528260208201528260408201520152565b60405190611b808261187b565b6060604083611b8d611ab2565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c61575b6020948584108914611c4d5787988489979899529081600014611c2b5750600114611bec575b505050611bea92500383611902565b565b600090815285812095935091905b818310611c13575050611bea9350820101388080611bdb565b85548884018501529485019487945091830191611bfa565b92505050611bea94925060ff191682840152151560051b820101388080611bdb565b634e487b7160e01b85526022600452602485fd5b91607f1691611bb5565b9060405191611c7983611896565b602083611c8583611acc565b8152611ca9600360405194611c9986611896565b60ff600282015416865201611b9a565b828401520152565b90604051611cbe816118b1565b60c0600b8294611ccd81611c6b565b8452611cdb60048201611c6b565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d1c600a8201611b9a565b60a08501520154910152565b60405190611d35826118e7565b81600081526000602082015260006040820152600060608201526000608082015260a0611d60611ab2565b910152565b90604051611d72816118e7565b60a0611d606004839580548552600181015460208601526002810154604086015260038101546001600160401b0390818116606088015260401c16608086015201611acc565b610673611dc691369061193a565b9015611de15760036001600160401b03910154169060019190565b50600090600090565b60405190611df782611896565b81611e00611ab2565b81526020611d60611ab2565b8051821015611e205760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e4382611896565b6000602083606081520152565b60405190611e5d826118cc565b60006080838281528260208201528260408201528260608201520152565b519081151582036119e357565b909181830360e081126119e35760a0136119e3576040928351611eaa816118cc565b835181526020908185015182820152858501518682015260608501516060820152611ed760808601611e7b565b60808201529460a0850151926001600160401b03938481116119e357860191601f928284820112156119e357805190611f0f82611923565b91611f1c84519384611902565b808352868084019160051b830101918583116119e3578701905b828210612019575050509660c0810151908682116119e35701928281850112156119e357835191611f6683611923565b96611f7382519889611902565b838852868089019460051b870101958587116119e357878101945b878610611fa15750505050505050505090565b85518381116119e35782019087603f830112156119e3578982015190848211612004578551611fd8838901601f19168d0182611902565b828152898784860101116119e357611ff98c949385948986850191016115d8565b815201950194611f8e565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b03811681036119e3578152908701908701611f36565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061207a575050505090565b83516001600160a01b03168552938101939281019260010161206c565b600060206040516120a781611896565b8281520152600052600160205260406000206001604051916120c883611896565b805483520154602082015290565b61210d73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612038565b0381865af49081156121ab576000916121b7575b509061215d91600052600081528060406000209361214160048601611acc565b906040518080968194630c133d1360e31b835260048301612038565b03915af49081156121ab57600091612177575b5090501591565b82813d83116121a4575b61218b8183611902565b810103126104a7575061219d90611e7b565b8038612170565b503d612181565b6040513d6000823e3d90fd5b908282813d83116121df575b6121cd8183611902565b810103126104a757505161215d612121565b503d6121c3565b818102929181159184041417156121f957565b634e487b7160e01b600052601160045260246000fdfea26469706673582212200894d1fa73274627bfc97f431b5696c4fbe4f8d666f48d8812d4dadb1542782a64736f6c63430008130033","sourceMap":"648:13139:46:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":1420,"length":20},{"start":2191,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1089,"length":20},{"start":8439,"length":20}]}}},"deployedBytecode":{"object":"0x6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114a85781630338150f1461146257816305aff0b31461143a57816306572c1a1461140957816306c46853146113ea57816322180594146113cb57816324729425146113ac5781632da5794a14611333578163335eb62a1461113657816341b6a2e81461110b5781634aa8f8a5146110ec578163544dddff146110c4578163599c7bd1146110a25781635d02968514610f8b5781636547cd6414610f6057816369e737fd14610f415781636ad21bb014610e63578163767ee5f414610de95781637edeac9214610d9a5781638789f83b14610d6f5781638cfd78e714610cdf57816394074b0314610c295781639704276614610a885781639d3070b514610a425781639e530b5714610a10578163a2b67158146109e5578163a517218f14610961578163a9294bdd146107c5578163ac12d76314610787578163b1ba49b01461075f578163b3ab3f7414610734578163b9ee584214610697578163c66c66a114610646578163ca41d5ce146104e2578163d6c5c39714610372578163dd81b5cf1461029d575063f3229131146101ba57600080fd5b346102995781600319360112610299576101d2611e36565b508051906101df82611896565b6006546101eb81611923565b6101f783519182611902565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b82821061025757505050610253945083526001600160401b036007541690830152519182918261176f565b0390f35b60038560019288516102688161187b565b8b548152848060a01b03858d0154168382015261028760028d01611b9a565b8a820152815201980191019096610228565b5080fd5b9190503461036e576020918260031936011261036a576102bb611b73565b50358352600982528083209260038251946102d58661187b565b6102de81611acc565b8652600281015485870152018054906102f682611923565b9261030385519485611902565b828452908152848120858085015b848410610330578689018690528651828152806102538185018c6116d6565b600191600d91885161034181611896565b61034a86611cb1565b815260ff600c870154161515838201528152019201920191908690610311565b8380fd5b8280fd5b83833461029957816003193601126102995761038c611b47565b50610395611b47565b50601d549081156104cf576001600160401b03918083431604600181018091116104bc57906103c3916121e6565b8084526104216020809660088252848720908551966103e18861184a565b816103eb84611acc565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612038565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104b157809561046a575b505081606091610253949351968796158752860152840152606083019061159b565b909194508582813d83116104aa575b6104838183611902565b810103126104a75750610253929161049c606092611e7b565b949181939450610448565b80fd5b503d610479565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b9190503461036e57602036600319011261036e57813591610501611b47565b5061050a611e50565b508284526008602052818420926001600160401b038284519561052c8761184a565b61053581611acc565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af490811561063c57906102539291856105bc969181809461060c575b50506105f16105fe939451978897610100808a5289019061159b565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a19565b9083820360e0850152611a56565b6105fe94506105f1935061063292503d8091833e61062a8183611902565b810190611e88565b91929091936105a0565b82513d86823e3d90fd5b8284346104a75750610680610253610678610673610663366119e8565b61066b611d28565b50369061193a565b6120d6565b929092611d65565b835193849315158452806020850152830190611548565b9190503461036e57602036600319011261036e578060ff6107329260a0956106bd611e50565b5085358152601360205220938251946106d5866118cc565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b90503461036e57602036600319011261036e5781602093600392358152600c85522001549051908152f35b5050346102995781600319360112610299576020906001600160401b03600754169051908152f35b9190503461036e57602036600319011261036e578060ff6107329260a0956107ad611e50565b5085358152600c60205220938251946106d5866118cc565b9190503461036e576020918260031936011261036a578035926107e6611b73565b506107ef611e50565b50838552600981528285209360038451956108098761187b565b61081281611acc565b875260028101548488015201805461082981611923565b9161083687519384611902565b81835288528388208890858085015b8484106109275750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561091d5790856102539493926108c197908280956108f4575b50506105f1906105fe949551988998610100808b528a01906116d6565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b6105fe95506105f1935061091292503d8091833e61062a8183611902565b9490925081906108a4565b83513d87823e3d90fd5b600191600d918b5161093881611896565b61094186611cb1565b815260ff600c870154161515838201528152019201920191908690610845565b8284346104a757806003193601126104a7578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109ce5761025386866109c4828b0383611902565b519182918261180f565b8354875295860195600193840193909101906109ac565b5050346102995781600319360112610299576020906001600160401b03601c5460881c169051908152f35b8284346104a757506001600160401b03610a31610a2c366119e8565b611db8565b835191151582529091166020820152f35b8284346104a75760203660031901126104a75782356001600160401b03918282116104a75750610a7c61067360209560039336910161193a565b90500154169051908152f35b905082346104a757806003193601126104a75782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1357505050610aea92500385611902565b835191610af683611923565b91610b0387519384611902565b838352601f19610b1285611923565b0182865b828110610bfd57505050845b6001600160401b039081811686811015610ba05790610b988284610b486001958d611e0c565b51168a52600887528b8587828d20835193610b628561184a565b610b6b82611acc565b855260028201548c8601526003820154908501520154166060820152610b91828a611e0c565b5287611e0c565b500116610b22565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bd15785850386f35b909192938280610bed600193603f198a8203018652885161159b565b9601920196019592919092610bc4565b610c05611b47565b828288010152018390610b16565b855484526001958601958a955093019201610ad3565b8284346104a757806003193601126104a757610c43611ab2565b50815191610c5083611896565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610cc25788906102538888610caf818a0382611902565b83850152519282849384528301906114ed565b83546001600160a01b031685529093019260019283019201610c94565b90503461036e57602036600319011261036e579181928160c08451610d03816118b1565b610d0b611dea565b8152610d15611dea565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d4f60ff600c8401541692611cb1565b91610d63825193838594855284019061165c565b90151560208301520390f35b5050346102995781600319360112610299576020906001600160401b03601c5460481c169051908152f35b90503461036e57602036600319011261036e57610dcd906102539360208451610dc281611896565b828152015235612097565b9051918291829190916020806040830194805184520151910152565b8284346104a757806003193601126104a7578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e4c5761025386866109c4828b0383611902565b835487529586019560019384019390910190610e34565b8383346102995781600319360112610299578290610e7f611e36565b50805191610e8c83611896565b8054610e9781611923565b90610ea484519283611902565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610eff57505050610253945083526001600160401b036005541690830152519182918261176f565b6003856001928851610f108161187b565b8b548152848060a01b03858d01541683820152610f2f60028d01611b9a565b8a820152815201980191019096610ed4565b505034610299578160031936011261029957602090601e549051908152f35b90503461036e57602036600319011261036e5781602093600392358152601385522001549051908152f35b8284346104a757806003193601126104a757601854610fa981611923565b90610fb684519283611902565b808252601f19610fc582611923565b01835b81811061108b575050825b818110611037575050825191602080840190808552835180925280868601968360051b870101940192955b82871061100b5785850386f35b909192938280611027600193603f198a82030186528851611548565b9601920196019592919092610ffe565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261106f868620611d65565b6110798286611e0c565b526110848185611e0c565b5001610fd3565b602090611096611d28565b82828701015201610fc8565b50503461029957816003193601126102995760209060ff601c54169051908152f35b5050346102995781600319360112610299576020906001600160401b03600554169051908152f35b505034610299578160031936011261029957602090600b549051908152f35b5050346102995781600319360112610299576020906001600160401b03601c5460081c169051908152f35b50503461029957816003193601126102995780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b8682821061131d5750505061119792500385611902565b8351916111a383611923565b916111b085519384611902565b838352601f196111bf85611923565b0182825b82811061130757505050805b6001600160401b0390818116868110156112ab57826111ee828b611e0c565b511684526009855287842060038951916112078361187b565b61121081611acc565b835260028101548884015201805461122781611923565b916112348c519384611902565b818352875287872087898085018e5b858410611270579250505084611268959350600197969492500152610b91828a611e0c565b5001166111cf565b91600d916001935161128181611896565b61128a87611cb1565b815260ff600c880154161515838201528152019301910190918a908e611243565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106112db5785850386f35b9091929382806112f7600193603f198a820301865288516116d6565b96019201960195929190926112ce565b61130f611b73565b8282880101520183906111c3565b855484526001958601958a955093019201611180565b9190503461036e57602036600319011261036e576001600160401b03816102539461135c611b47565b5084358152600860205220928251936113748561184a565b61137d81611acc565b85526002810154602086015260038101548486015201541660608301525191829160208352602083019061159b565b505034610299578160031936011261029957602090601b549051908152f35b5050346102995781600319360112610299576020906012549051908152f35b505034610299578160031936011261029957602090601d549051908152f35b8284346104a75760203660031901126104a75750606461143260209360ff601c541690356121e6565b049051908152f35b5050346102995781600319360112610299576020906001600160401b03601f54169051908152f35b50503461029957816003193601126102995781610253926020835161148681611896565b82815201526020825161149881611896565b8281520152610dcd600254612097565b90503461036e57602036600319011261036e5781610253936114da926114cc611d28565b503581528060205220611d65565b9051918291602083526020830190611548565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061152b575050505090565b83516001600160a01b03168552938101939281019260010161151d565b9060c060a0611598938051845260208101516020850152604081015160408501526001600160401b0380606083015116606086015260808201511660808501520151918160a082015201906114ed565b90565b9060606001600160401b03816115ba85516080865260808601906114ed565b94602081015160208601526040810151604086015201511691015290565b60005b8381106115eb5750506000910152565b81810151838201526020016115db565b90602091611614815180928185528580860191016115d8565b601f01601f1916010190565b60406020611598938161163a8551858452858401906114ed565b940151908281860391015260ff815116845201519181602082015201906115fb565b9060c0806116cd61168b611679865160e0875260e0870190611620565b60208701518682036020880152611620565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a08701526115fb565b93015191015290565b6116e981516060845260608401906114ed565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061172b575050505050505090565b909192939495968580600192601f198582030187528a5190828061175684518a85528a85019061165c565b930151151591015299019401940192959493919061171a565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b8383106117c1575050505050906001600160401b039101511691015290565b909192939886806118008a856001958f8f83918591607f19908503018c525180518452898060a01b0388820151168885015201519382015201906115fb565b9b0193019301919392906117a2565b6020908160408183019282815285518094520193019160005b828110611836575050505090565b835185529381019392810192600101611828565b608081019081106001600160401b0382111761186557604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761186557604052565b604081019081106001600160401b0382111761186557604052565b60e081019081106001600160401b0382111761186557604052565b60a081019081106001600160401b0382111761186557604052565b60c081019081106001600160401b0382111761186557604052565b90601f801991011681019081106001600160401b0382111761186557604052565b6001600160401b0381116118655760051b60200190565b91906040838203126119e3576040519261195384611896565b836001600160401b03823581811681036119e3578252602092838101359182116119e357019280601f850112156119e357833561198f81611923565b9461199d6040519687611902565b818652848087019260051b8201019283116119e3578401905b8282106119c4575050500152565b81356001600160a01b03811681036119e35781529084019084016119b6565b600080fd5b600319906020818301126119e357600435916001600160401b0383116119e357826040920301126119e35760040190565b90815180825260208080930193019160005b828110611a39575050505090565b83516001600160a01b031685529381019392810192600101611a2b565b908082519081815260208091019281808460051b8301019501936000915b848310611a845750505050505090565b9091929394958480611aa2600193601f198682030187528a516115fb565b9801930193019194939290611a74565b60405190611abf82611896565b6060602083600081520152565b90604051611ad981611896565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b285750505050611b2492500384611902565b0152565b83546001600160a01b0316855289955090930192918101918101611b0c565b60405190611b548261184a565b6000606083611b61611ab2565b81528260208201528260408201520152565b60405190611b808261187b565b6060604083611b8d611ab2565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c61575b6020948584108914611c4d5787988489979899529081600014611c2b5750600114611bec575b505050611bea92500383611902565b565b600090815285812095935091905b818310611c13575050611bea9350820101388080611bdb565b85548884018501529485019487945091830191611bfa565b92505050611bea94925060ff191682840152151560051b820101388080611bdb565b634e487b7160e01b85526022600452602485fd5b91607f1691611bb5565b9060405191611c7983611896565b602083611c8583611acc565b8152611ca9600360405194611c9986611896565b60ff600282015416865201611b9a565b828401520152565b90604051611cbe816118b1565b60c0600b8294611ccd81611c6b565b8452611cdb60048201611c6b565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d1c600a8201611b9a565b60a08501520154910152565b60405190611d35826118e7565b81600081526000602082015260006040820152600060608201526000608082015260a0611d60611ab2565b910152565b90604051611d72816118e7565b60a0611d606004839580548552600181015460208601526002810154604086015260038101546001600160401b0390818116606088015260401c16608086015201611acc565b610673611dc691369061193a565b9015611de15760036001600160401b03910154169060019190565b50600090600090565b60405190611df782611896565b81611e00611ab2565b81526020611d60611ab2565b8051821015611e205760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e4382611896565b6000602083606081520152565b60405190611e5d826118cc565b60006080838281528260208201528260408201528260608201520152565b519081151582036119e357565b909181830360e081126119e35760a0136119e3576040928351611eaa816118cc565b835181526020908185015182820152858501518682015260608501516060820152611ed760808601611e7b565b60808201529460a0850151926001600160401b03938481116119e357860191601f928284820112156119e357805190611f0f82611923565b91611f1c84519384611902565b808352868084019160051b830101918583116119e3578701905b828210612019575050509660c0810151908682116119e35701928281850112156119e357835191611f6683611923565b96611f7382519889611902565b838852868089019460051b870101958587116119e357878101945b878610611fa15750505050505050505090565b85518381116119e35782019087603f830112156119e3578982015190848211612004578551611fd8838901601f19168d0182611902565b828152898784860101116119e357611ff98c949385948986850191016115d8565b815201950194611f8e565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b03811681036119e3578152908701908701611f36565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061207a575050505090565b83516001600160a01b03168552938101939281019260010161206c565b600060206040516120a781611896565b8281520152600052600160205260406000206001604051916120c883611896565b805483520154602082015290565b61210d73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612038565b0381865af49081156121ab576000916121b7575b509061215d91600052600081528060406000209361214160048601611acc565b906040518080968194630c133d1360e31b835260048301612038565b03915af49081156121ab57600091612177575b5090501591565b82813d83116121a4575b61218b8183611902565b810103126104a7575061219d90611e7b565b8038612170565b503d612181565b6040513d6000823e3d90fd5b908282813d83116121df575b6121cd8183611902565b810103126104a757505161215d612121565b503d6121c3565b818102929181159184041417156121f957565b634e487b7160e01b600052601160045260246000fdfea26469706673582212200894d1fa73274627bfc97f431b5696c4fbe4f8d666f48d8812d4dadb1542782a64736f6c63430008130033","sourceMap":"648:13139:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;6906:16;648:13139;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;6906:16;648:13139;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;2684:20;648:13139;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;2114:21:63;648:13139:46;;;;;;-1:-1:-1;;;;;2100:12:63;;;;648:13139:46;;13838:1:63;648:13139:46;;;;;;;13799:55:63;;;;:::i;:::-;648:13139:46;;;2207:29:63;648:13139:46;;;2159:21:63;648:13139:46;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2207:29:63;;648:13139:46;;;;;2207:29:63;;;:::i;:::-;;:27;;:29;;;;;;;;;;;648:13139:46;;;;;;;;;;2206:30:63;;;;648:13139:46;;;;;;;;;;;;;:::i;2207:29:63:-;;;;;;;;;;;;;;;;;;:::i;:::-;;;648:13139:46;;;;;;;;;;;;:::i;:::-;2207:29:63;;;;;;;;648:13139:46;;;2207:29:63;;;;;;648:13139:46;;;;;;;;;;;-1:-1:-1;;;648:13139:46;;;;;;;;;-1:-1:-1;;;648:13139:46;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;12037:21;648:13139;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;12134:21;648:13139;;;;;;12105:54;;;;648:13139;;;;;12105:9;;648:13139;12105:9;;:54;;;;;;;;648:13139;12105:54;;;648:13139;12105:54;648:13139;;;12105:54;;;648:13139;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;12105:54::-;648:13139;12105:54;;648:13139;12105:54;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;648:13139;;;;;;;;;;;;;;;;;;3650:30;648:13139;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;3650:30;:::i;:::-;648:13139;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;:::i;:::-;;;;;;8253:38;648:13139;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8253:38;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;8492:32;648:13139;;;8492:49;648:13139;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7101:36:46;648:13139;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;:::i;:::-;;;;;;7840:32;648:13139;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;13084:20;648:13139;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13180:27;648:13139;;;;;;13151:60;;;;648:13139;;;;;13151:9;;648:13139;13151:9;;:60;;;;;;;;;648:13139;13151:60;;;648:13139;13151:60;648:13139;;;13151:60;;;648:13139;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13151:60;648:13139;13151:60;;648:13139;13151:60;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;13151:60:46;;;;;648:13139;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8967:39;648:13139;;;;;;;;;8967:39;648:13139;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1408:14:46;648:13139;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;4520:30;648:13139;;;;;;;;;:::i;4520:30::-;4695:19;;;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;9205:39;648:13139;;;;;;;;;9205:39;648:13139;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;648:13139:46;;;:::i;:::-;;;;;;;;;;9390:8;;;;;-1:-1:-1;;;;;648:13139:46;;;;9400:8;;;;;;9472:10;9426:58;9472:10;;;648:13139;9472:10;;;:::i;:::-;648:13139;;;;9443:21;648:13139;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;9426:58;;;;:::i;:::-;;;;:::i;:::-;;648:13139;;9390:8;;9400;;;;;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;2152:13;648:13139;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6008:21;648:13139;;6008:21;;;648:13139;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5500:21:46;648:13139;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;3014:41;648:13139;;;;;;;;;:::i;:::-;;;;;;;3014:41;:::i;:::-;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10312:45;648:13139;;;;;;;;;10312:45;648:13139;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1792:24;648:13139;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;8740:38;648:13139;;;8740:55;648:13139;;;;;;;;;;;;;;;;;;;;;6459:12;648:13139;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;648:13139:46;;;:::i;:::-;;;;;;;;;6543:9;;;6554:8;;;;;;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;6543:9;648:13139;;;;;;;;;;;;;;;;:::i;:::-;6623:23;;;;:::i;:::-;;;;;;:::i;:::-;;648:13139;6543:9;;648:13139;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;6230:20;648:13139;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7468:39:46;648:13139;;;;;;;;;;;;;;;;;;;;;;;;10534:37;648:13139;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1240:15:46;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;9776:45;648:13139;;;;;;;;;9776:45;648:13139;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;648:13139:46;;;:::i;:::-;;;;;;;;;;9959:8;;;;;-1:-1:-1;;;;;648:13139:46;;;;9969:8;;;;;;10036:10;;;;;:::i;:::-;648:13139;;;;10008:20;648:13139;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;9995:53;648:13139;;;;;;;;;;;9995:53;;;;:::i;:::-;;648:13139;;9959:8;;648:13139;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9969:8;648:13139;;;;;;;;;;;;;9969:8;;648:13139;;;;;;;;;;;;;;9969:8;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;-1:-1:-1;;;;;648:13139:46;;;;;:::i;:::-;;;;;;2419:21;648:13139;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1062:16;648:13139;;;;;;;;;;;;;;;;;;;;;;;10735:43;648:13139;;;;;;;;;;;;;;;;;;;;;;;1973:21;648:13139;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;7293:3:67;7262:27;648:13139:46;;;11285:20;648:13139;;;;7262:27:67;:::i;:::-;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1594:25:46;648:13139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;5302:39:63;5320:20;648:13139:46;5302:39:63;:::i;648:13139:46:-;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;648:13139:46;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;648:13139:46;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;:::o;:::-;-1:-1:-1;;;;;648:13139:46;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;648:13139:46;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;-1:-1:-1;648:13139:46;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;648:13139:46;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;648:13139:46;;;;;;:::o;:::-;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;648:13139:46;;;;;;;;-1:-1:-1;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;-1:-1:-1;;;;;;648:13139:46;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;648:13139:46;;-1:-1:-1;648:13139:46;;;;-1:-1:-1;648:13139:46;;;;-1:-1:-1;648:13139:46;;;;-1:-1:-1;648:13139:46;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;:::i;5056:299::-;648:13139;5206:30;5056:299;648:13139;;;:::i;5206:30::-;5250:11;;5246:59;;5328:19;-1:-1:-1;;;;;5328:19:46;;648:13139;;5314:34;5322:4;5314:34;5056:299;:::o;5246:59::-;5277:17;5285:5;5277:17;5285:5;5277:17;:::o;648:13139::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;648:13139:46;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;648:13139:46;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;648:13139:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;648:13139:46;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;648:13139:46;;;;;;;;;;;;;;;4834:223:63;-1:-1:-1;648:13139:46;;;;;;:::i;:::-;;;;;;-1:-1:-1;648:13139:46;5022:15:63;648:13139:46;;;-1:-1:-1;648:13139:46;5022:15:63;648:13139:46;;;;;;:::i;:::-;;;;;;;;;;;4834:223:63;:::o;13234:272::-;13443:17;:15;648:13139:46;;;;;;;13443:17:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;3946:45:64;13443:17:63;;;13234:272;648:13139:46;;13480:19:63;648:13139:46;3946:45:64;648:13139:46;3946:45:64;648:13139:46;;;;3946:45:64;648:13139:46;13480:9:63;648:13139:46;13443:17:63;13480:9;;648:13139:46;:::i;:::-;;;;;;;;;;;;13480:19:63;;13443:17;13480:19;;;:::i;:::-;;;;;;;;;;3946:45:64;13480:19:63;;;13234:272;13479:20;;;;13234:272;:::o;13480:19::-;;;;;;;;;;;;;:::i;:::-;;;648:13139:46;;;;;;;;:::i;:::-;13480:19:63;;;;;;;;;;648:13139:46;;;3946:45:64;648:13139:46;;;;;13443:17:63;;;;;;;;;;;;;;;:::i;:::-;;;648:13139:46;;;;-1:-1:-1;648:13139:46;13480:19:63;13443:17;;;;;;;648:13139:46;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;","linkReferences":{"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":1392,"length":20},{"start":2163,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1061,"length":20},{"start":8411,"length":20}]}}},"methodIdentifiers":{"appliedTopDownNonce()":"8789f83b","bottomUpCheckPeriod()":"06c46853","bottomUpCheckpoint(uint256)":"2da5794a","bottomUpMsgBatch(uint256)":"dd81b5cf","bottomUpMsgBatchPeriod()":"69e737fd","bottomUpNonce()":"41b6a2e8","crossMsgFee()":"24729425","getAppliedTopDownNonce((uint64,address[]))":"9e530b57","getBottomUpMsgBatchCurrentWeight(uint256)":"6547cd64","getBottomUpMsgBatchInfo(uint256)":"b9ee5842","getBottomUpMsgBatchSignatureBundle(uint256)":"a9294bdd","getBottomUpMsgRetentionHeight()":"22180594","getCheckpointCurrentWeight(uint256)":"b3ab3f74","getCheckpointInfo(uint256)":"ac12d763","getCheckpointRetentionHeight()":"4aa8f8a5","getCheckpointSignatureBundle(uint256)":"ca41d5ce","getCurrentBottomUpCheckpoint()":"d6c5c397","getCurrentConfigurationNumber()":"544dddff","getCurrentMembership()":"6ad21bb0","getIncompleteCheckpointHeights()":"a517218f","getIncompleteCheckpoints()":"97042766","getIncompleteMsgBatchHeights()":"767ee5f4","getIncompleteMsgBatches()":"335eb62a","getLastConfigurationNumber()":"b1ba49b0","getLastMembership()":"f3229131","getLatestParentFinality()":"0338150f","getNetworkName()":"94074b03","getParentFinality(uint256)":"7edeac92","getQuorumThreshold(uint256)":"06572c1a","getSubnet((uint64,address[]))":"c66c66a1","getSubnetTopDownMsgsLength((uint64,address[]))":"9d3070b5","listSubnets()":"5d029685","majorityPercentage()":"599c7bd1","maxMsgsPerBottomUpBatch()":"05aff0b3","postbox(bytes32)":"8cfd78e7","subnets(bytes32)":"02e30f9a","totalSubnets()":"a2b67158"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"appliedTopDownNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"e\",\"type\":\"uint256\"}],\"name\":\"bottomUpCheckpoint\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"e\",\"type\":\"uint256\"}],\"name\":\"bottomUpMsgBatch\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpMsgBatchPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crossMsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getAppliedTopDownNonce\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getBottomUpMsgBatchCurrentWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getBottomUpMsgBatchInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getBottomUpMsgBatchSignatureBundle\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"info\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBottomUpMsgRetentionHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getCheckpointCurrentWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getCheckpointInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCheckpointRetentionHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"h\",\"type\":\"uint256\"}],\"name\":\"getCheckpointSignatureBundle\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"ch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentWeight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"reached\",\"type\":\"bool\"}],\"internalType\":\"struct QuorumInfo\",\"name\":\"info\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBottomUpCheckpoint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentConfigurationNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentMembership\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct Membership\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteCheckpointHeights\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteCheckpoints\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteMsgBatchHeights\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIncompleteMsgBatches\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastConfigurationNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastMembership\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct Membership\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestParentFinality\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNetworkName\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getParentFinality\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalWeight\",\"type\":\"uint256\"}],\"name\":\"getQuorumThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnet\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"}],\"internalType\":\"struct Subnet\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"getSubnetTopDownMsgsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"listSubnets\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"}],\"internalType\":\"struct Subnet[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxMsgsPerBottomUpBatch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"postbox\",\"outputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"storableMsg\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"h\",\"type\":\"bytes32\"}],\"name\":\"subnets\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"genesisEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"circSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"topDownNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"appliedBottomUpNonce\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"id\",\"type\":\"tuple\"}],\"internalType\":\"struct Subnet\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSubnets\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpoint(uint256)\":{\"params\":{\"e\":\"The epoch number of the checkpoint.\"}},\"bottomUpMsgBatch(uint256)\":{\"params\":{\"e\":\"The epoch number of the batch.\"}},\"getAppliedTopDownNonce((uint64,address[]))\":{\"params\":{\"subnetId\":\"The identifier of the subnet for which the top-down nonce is queried.\"},\"returns\":{\"_0\":\"A tuple containing a boolean indicating if the subnet is registered and the current top-down nonce.\"}},\"getBottomUpMsgBatchInfo(uint256)\":{\"params\":{\"h\":\"The block height of the bottom-up message batch.\"},\"returns\":{\"_0\":\"Quorum information associated with the given bottom-up message batch height.\"}},\"getBottomUpMsgBatchSignatureBundle(uint256)\":{\"params\":{\"h\":\"The height of the message batch for which information is requested.\"},\"returns\":{\"batch\":\"The bottom-up message batch information at the specified height.\",\"info\":\"Quorum information related to the message batch.\",\"signatories\":\"An array of addresses of signatories who have signed the message batch.\",\"signatures\":\"An array of signatures corresponding to each signatory for the message batch.\"}},\"getCheckpointInfo(uint256)\":{\"params\":{\"h\":\"The block height of the checkpoint.\"},\"returns\":{\"_0\":\"Quorum information associated with the given checkpoint height.\"}},\"getCheckpointSignatureBundle(uint256)\":{\"params\":{\"h\":\"The height of the checkpoint for which information is requested.\"},\"returns\":{\"ch\":\"The checkpoint information at the specified height.\",\"info\":\"Quorum information related to the checkpoint.\",\"signatories\":\"An array of addresses of signatories who have signed the checkpoint.\"}},\"getCurrentBottomUpCheckpoint()\":{\"returns\":{\"checkpoint\":\"- the checkpoint struct\",\"epoch\":\"- the epoch of the checkpoint\",\"exists\":\"- whether the checkpoint exists\"}},\"getParentFinality(uint256)\":{\"params\":{\"blockNumber\":\"The block number for which to retrieve parent-finality information.\"}},\"getQuorumThreshold(uint256)\":{\"params\":{\"totalWeight\":\"The total weight to consider for calculating the quorum threshold.\"},\"returns\":{\"_0\":\"The quorum threshold derived from the total weight and majority percentage.\"}},\"getSubnet((uint64,address[]))\":{\"params\":{\"subnetId\":\"the id of the subnet.\"},\"returns\":{\"_0\":\"found whether the subnet exists.\",\"_1\":\"subnet - the subnet struct.\"}},\"getSubnetTopDownMsgsLength((uint64,address[]))\":{\"params\":{\"subnetId\":\"The identifier of the subnet for which the message queue length is queried.\"},\"returns\":{\"_0\":\"The current length of the top-down message queue, indicated by the subnet's top-down nonce.\"}},\"listSubnets()\":{\"returns\":{\"_0\":\"The list of the registered subnets.\"}},\"postbox(bytes32)\":{\"params\":{\"id\":\"The unique identifier of the message in the postbox.\"},\"returns\":{\"storableMsg\":\"The storable message associated with the given id.\",\"wrapped\":\"A boolean indicating whether the message is wrapped.\"}},\"subnets(bytes32)\":{\"params\":{\"h\":\"The hash identifier of the subnet to be queried.\"},\"returns\":{\"subnet\":\"The subnet information corresponding to the given hash.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"appliedTopDownNonce()\":{\"notice\":\"Returns the current applied top-down nonce.\"},\"bottomUpCheckPeriod()\":{\"notice\":\"Returns the period for bottom-up checkpointing.\"},\"bottomUpCheckpoint(uint256)\":{\"notice\":\"Returns a specific bottom-up checkpoint based on an epoch number.\"},\"bottomUpMsgBatch(uint256)\":{\"notice\":\"Returns a specific bottom-up message batch based on an index.\"},\"bottomUpMsgBatchPeriod()\":{\"notice\":\"Returns the period for processing bottom-up message batches.\"},\"bottomUpNonce()\":{\"notice\":\"Returns the current nonce for bottom-up message processing.\"},\"crossMsgFee()\":{\"notice\":\"Returns the minimum fee required for cross-net messages.\"},\"getAppliedTopDownNonce((uint64,address[]))\":{\"notice\":\"Returns the current applied top-down nonce for a specified subnet, indicating whether it's registered.\"},\"getBottomUpMsgBatchCurrentWeight(uint256)\":{\"notice\":\"Returns the batch current weight corresponding to the block height.\"},\"getBottomUpMsgBatchInfo(uint256)\":{\"notice\":\"Returns quorum information for a specific bottom-up message batch based on its height.\"},\"getBottomUpMsgBatchSignatureBundle(uint256)\":{\"notice\":\"Returns a bundle of information and signatures for a specified bottom-up message batch.\"},\"getBottomUpMsgRetentionHeight()\":{\"notice\":\"Returns the bottom-up batch retention index.\"},\"getCheckpointCurrentWeight(uint256)\":{\"notice\":\"Returns the checkpoint current weight corresponding to the block height.\"},\"getCheckpointInfo(uint256)\":{\"notice\":\"Returns quorum information for a specific checkpoint based on its height.\"},\"getCheckpointRetentionHeight()\":{\"notice\":\"Returns the bottom-up checkpoint retention index.\"},\"getCheckpointSignatureBundle(uint256)\":{\"notice\":\"Retrieves a bundle of information and signatures for a specified bottom-up checkpoint.\"},\"getCurrentBottomUpCheckpoint()\":{\"notice\":\"Returns the current bottom-up checkpoint.\"},\"getCurrentConfigurationNumber()\":{\"notice\":\"Returns the current configuration number.\"},\"getCurrentMembership()\":{\"notice\":\"Returns the current membership.\"},\"getIncompleteCheckpointHeights()\":{\"notice\":\"Returns the incomplete checkpoint heights.\"},\"getIncompleteCheckpoints()\":{\"notice\":\"Returns the incomplete checkpoints.\"},\"getIncompleteMsgBatchHeights()\":{\"notice\":\"Returns the incomplete msd batches heights.\"},\"getIncompleteMsgBatches()\":{\"notice\":\"Returns the incomplete batches of messages.\"},\"getLastConfigurationNumber()\":{\"notice\":\"Returns the last configuration number received from the parent.\"},\"getLastMembership()\":{\"notice\":\"Returns the last membership received from the parent.\"},\"getLatestParentFinality()\":{\"notice\":\"Gets the most recent parent-finality information from the parent.\"},\"getNetworkName()\":{\"notice\":\"Returns the subnet identifier of the network.\"},\"getParentFinality(uint256)\":{\"notice\":\"Returns the parent chain finality information for a given block number.\"},\"getQuorumThreshold(uint256)\":{\"notice\":\"Returns the threshold required for quorum in this subnet, based on the configured majority percentage and the total weight of the validators.\"},\"getSubnet((uint64,address[]))\":{\"notice\":\"Returns the subnet with the given id.\"},\"getSubnetTopDownMsgsLength((uint64,address[]))\":{\"notice\":\"Returns the length of the top-down message queue for a specified subnet.\"},\"listSubnets()\":{\"notice\":\"Returns the list of registered subnets.\"},\"majorityPercentage()\":{\"notice\":\"Returns the majority percentage required for certain consensus or decision-making processes.\"},\"maxMsgsPerBottomUpBatch()\":{\"notice\":\"Returns the maximum number of messages per bottom-up batch.\"},\"postbox(bytes32)\":{\"notice\":\"Returns the storable message and its wrapped status from the postbox by a given identifier.\"},\"subnets(bytes32)\":{\"notice\":\"Returns information about a specific subnet using its hash identifier.\"},\"totalSubnets()\":{\"notice\":\"Returns the total number of the registered subnets.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayGetterFacet.sol\":\"GatewayGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"appliedTopDownNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpCheckPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"e","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpCheckpoint","outputs":[{"internalType":"struct BottomUpCheckpoint","name":"","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[{"internalType":"uint256","name":"e","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpMsgBatch","outputs":[{"internalType":"struct BottomUpMsgBatch","name":"","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpMsgBatchPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"crossMsgFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"view","type":"function","name":"getAppliedTopDownNonce","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBottomUpMsgBatchCurrentWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBottomUpMsgBatchInfo","outputs":[{"internalType":"struct QuorumInfo","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBottomUpMsgBatchSignatureBundle","outputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"struct QuorumInfo","name":"info","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBottomUpMsgRetentionHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCheckpointCurrentWeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCheckpointInfo","outputs":[{"internalType":"struct QuorumInfo","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCheckpointRetentionHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"h","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCheckpointSignatureBundle","outputs":[{"internalType":"struct BottomUpCheckpoint","name":"ch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"struct QuorumInfo","name":"info","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes32","name":"rootHash","type":"bytes32"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"currentWeight","type":"uint256"},{"internalType":"bool","name":"reached","type":"bool"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBottomUpCheckpoint","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentConfigurationNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentMembership","outputs":[{"internalType":"struct Membership","name":"","type":"tuple","components":[{"internalType":"struct Validator[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteCheckpointHeights","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteCheckpoints","outputs":[{"internalType":"struct BottomUpCheckpoint[]","name":"","type":"tuple[]","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteMsgBatchHeights","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getIncompleteMsgBatches","outputs":[{"internalType":"struct BottomUpMsgBatch[]","name":"","type":"tuple[]","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastConfigurationNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastMembership","outputs":[{"internalType":"struct Membership","name":"","type":"tuple","components":[{"internalType":"struct Validator[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestParentFinality","outputs":[{"internalType":"struct ParentFinality","name":"","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getNetworkName","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getParentFinality","outputs":[{"internalType":"struct ParentFinality","name":"","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"uint256","name":"totalWeight","type":"uint256"}],"stateMutability":"view","type":"function","name":"getQuorumThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"view","type":"function","name":"getSubnet","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"struct Subnet","name":"","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"genesisEpoch","type":"uint256"},{"internalType":"uint256","name":"circSupply","type":"uint256"},{"internalType":"uint64","name":"topDownNonce","type":"uint64"},{"internalType":"uint64","name":"appliedBottomUpNonce","type":"uint64"},{"internalType":"struct SubnetID","name":"id","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"view","type":"function","name":"getSubnetTopDownMsgsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"listSubnets","outputs":[{"internalType":"struct Subnet[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"genesisEpoch","type":"uint256"},{"internalType":"uint256","name":"circSupply","type":"uint256"},{"internalType":"uint64","name":"topDownNonce","type":"uint64"},{"internalType":"uint64","name":"appliedBottomUpNonce","type":"uint64"},{"internalType":"struct SubnetID","name":"id","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"majorityPercentage","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxMsgsPerBottomUpBatch","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"stateMutability":"view","type":"function","name":"postbox","outputs":[{"internalType":"struct StorableMsg","name":"storableMsg","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"h","type":"bytes32"}],"stateMutability":"view","type":"function","name":"subnets","outputs":[{"internalType":"struct Subnet","name":"subnet","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"genesisEpoch","type":"uint256"},{"internalType":"uint256","name":"circSupply","type":"uint256"},{"internalType":"uint64","name":"topDownNonce","type":"uint64"},{"internalType":"uint64","name":"appliedBottomUpNonce","type":"uint64"},{"internalType":"struct SubnetID","name":"id","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSubnets","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"bottomUpCheckpoint(uint256)":{"params":{"e":"The epoch number of the checkpoint."}},"bottomUpMsgBatch(uint256)":{"params":{"e":"The epoch number of the batch."}},"getAppliedTopDownNonce((uint64,address[]))":{"params":{"subnetId":"The identifier of the subnet for which the top-down nonce is queried."},"returns":{"_0":"A tuple containing a boolean indicating if the subnet is registered and the current top-down nonce."}},"getBottomUpMsgBatchInfo(uint256)":{"params":{"h":"The block height of the bottom-up message batch."},"returns":{"_0":"Quorum information associated with the given bottom-up message batch height."}},"getBottomUpMsgBatchSignatureBundle(uint256)":{"params":{"h":"The height of the message batch for which information is requested."},"returns":{"batch":"The bottom-up message batch information at the specified height.","info":"Quorum information related to the message batch.","signatories":"An array of addresses of signatories who have signed the message batch.","signatures":"An array of signatures corresponding to each signatory for the message batch."}},"getCheckpointInfo(uint256)":{"params":{"h":"The block height of the checkpoint."},"returns":{"_0":"Quorum information associated with the given checkpoint height."}},"getCheckpointSignatureBundle(uint256)":{"params":{"h":"The height of the checkpoint for which information is requested."},"returns":{"ch":"The checkpoint information at the specified height.","info":"Quorum information related to the checkpoint.","signatories":"An array of addresses of signatories who have signed the checkpoint."}},"getCurrentBottomUpCheckpoint()":{"returns":{"checkpoint":"- the checkpoint struct","epoch":"- the epoch of the checkpoint","exists":"- whether the checkpoint exists"}},"getParentFinality(uint256)":{"params":{"blockNumber":"The block number for which to retrieve parent-finality information."}},"getQuorumThreshold(uint256)":{"params":{"totalWeight":"The total weight to consider for calculating the quorum threshold."},"returns":{"_0":"The quorum threshold derived from the total weight and majority percentage."}},"getSubnet((uint64,address[]))":{"params":{"subnetId":"the id of the subnet."},"returns":{"_0":"found whether the subnet exists.","_1":"subnet - the subnet struct."}},"getSubnetTopDownMsgsLength((uint64,address[]))":{"params":{"subnetId":"The identifier of the subnet for which the message queue length is queried."},"returns":{"_0":"The current length of the top-down message queue, indicated by the subnet's top-down nonce."}},"listSubnets()":{"returns":{"_0":"The list of the registered subnets."}},"postbox(bytes32)":{"params":{"id":"The unique identifier of the message in the postbox."},"returns":{"storableMsg":"The storable message associated with the given id.","wrapped":"A boolean indicating whether the message is wrapped."}},"subnets(bytes32)":{"params":{"h":"The hash identifier of the subnet to be queried."},"returns":{"subnet":"The subnet information corresponding to the given hash."}}},"version":1},"userdoc":{"kind":"user","methods":{"appliedTopDownNonce()":{"notice":"Returns the current applied top-down nonce."},"bottomUpCheckPeriod()":{"notice":"Returns the period for bottom-up checkpointing."},"bottomUpCheckpoint(uint256)":{"notice":"Returns a specific bottom-up checkpoint based on an epoch number."},"bottomUpMsgBatch(uint256)":{"notice":"Returns a specific bottom-up message batch based on an index."},"bottomUpMsgBatchPeriod()":{"notice":"Returns the period for processing bottom-up message batches."},"bottomUpNonce()":{"notice":"Returns the current nonce for bottom-up message processing."},"crossMsgFee()":{"notice":"Returns the minimum fee required for cross-net messages."},"getAppliedTopDownNonce((uint64,address[]))":{"notice":"Returns the current applied top-down nonce for a specified subnet, indicating whether it's registered."},"getBottomUpMsgBatchCurrentWeight(uint256)":{"notice":"Returns the batch current weight corresponding to the block height."},"getBottomUpMsgBatchInfo(uint256)":{"notice":"Returns quorum information for a specific bottom-up message batch based on its height."},"getBottomUpMsgBatchSignatureBundle(uint256)":{"notice":"Returns a bundle of information and signatures for a specified bottom-up message batch."},"getBottomUpMsgRetentionHeight()":{"notice":"Returns the bottom-up batch retention index."},"getCheckpointCurrentWeight(uint256)":{"notice":"Returns the checkpoint current weight corresponding to the block height."},"getCheckpointInfo(uint256)":{"notice":"Returns quorum information for a specific checkpoint based on its height."},"getCheckpointRetentionHeight()":{"notice":"Returns the bottom-up checkpoint retention index."},"getCheckpointSignatureBundle(uint256)":{"notice":"Retrieves a bundle of information and signatures for a specified bottom-up checkpoint."},"getCurrentBottomUpCheckpoint()":{"notice":"Returns the current bottom-up checkpoint."},"getCurrentConfigurationNumber()":{"notice":"Returns the current configuration number."},"getCurrentMembership()":{"notice":"Returns the current membership."},"getIncompleteCheckpointHeights()":{"notice":"Returns the incomplete checkpoint heights."},"getIncompleteCheckpoints()":{"notice":"Returns the incomplete checkpoints."},"getIncompleteMsgBatchHeights()":{"notice":"Returns the incomplete msd batches heights."},"getIncompleteMsgBatches()":{"notice":"Returns the incomplete batches of messages."},"getLastConfigurationNumber()":{"notice":"Returns the last configuration number received from the parent."},"getLastMembership()":{"notice":"Returns the last membership received from the parent."},"getLatestParentFinality()":{"notice":"Gets the most recent parent-finality information from the parent."},"getNetworkName()":{"notice":"Returns the subnet identifier of the network."},"getParentFinality(uint256)":{"notice":"Returns the parent chain finality information for a given block number."},"getQuorumThreshold(uint256)":{"notice":"Returns the threshold required for quorum in this subnet, based on the configured majority percentage and the total weight of the validators."},"getSubnet((uint64,address[]))":{"notice":"Returns the subnet with the given id."},"getSubnetTopDownMsgsLength((uint64,address[]))":{"notice":"Returns the length of the top-down message queue for a specified subnet."},"listSubnets()":{"notice":"Returns the list of registered subnets."},"majorityPercentage()":{"notice":"Returns the majority percentage required for certain consensus or decision-making processes."},"maxMsgsPerBottomUpBatch()":{"notice":"Returns the maximum number of messages per bottom-up batch."},"postbox(bytes32)":{"notice":"Returns the storable message and its wrapped status from the postbox by a given identifier."},"subnets(bytes32)":{"notice":"Returns information about a specific subnet using its hash identifier."},"totalSubnets()":{"notice":"Returns the total number of the registered subnets."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayGetterFacet.sol":"GatewayGetterFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayGetterFacet.sol","id":38318,"exportedSymbols":{"BottomUpCheckpoint":[49932],"BottomUpMsgBatch":[49945],"EnumerableSet":[35815],"GatewayActorStorage":[43068],"GatewayGetterFacet":[38317],"LibGateway":[42944],"LibQuorum":[43948],"Membership":[50218],"ParentFinality":[49918],"QuorumInfo":[50028],"StorableMsg":[49991],"Subnet":[50091],"SubnetID":[50077],"SubnetIDHelper":[48072]},"nodeType":"SourceUnit","src":"46:13742:46","nodes":[{"id":37543,"nodeType":"PragmaDirective","src":"46:23:46","nodes":[],"literals":["solidity","0.8",".19"]},{"id":37548,"nodeType":"ImportDirective","src":"71:106:46","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":37544,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"79:18:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37545,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"99:16:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37546,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"117:11:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37547,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"130:14:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37550,"nodeType":"ImportDirective","src":"178:49:46","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":37549,"name":"QuorumInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50028,"src":"186:10:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37553,"nodeType":"ImportDirective","src":"228:55:46","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":37551,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"236:8:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37552,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"246:6:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37555,"nodeType":"ImportDirective","src":"284:49:46","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":37554,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"292:10:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37557,"nodeType":"ImportDirective","src":"334:49:46","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":37556,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"342:10:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37559,"nodeType":"ImportDirective","src":"384:47:46","nodes":[],"absolutePath":"src/lib/LibQuorum.sol","file":"../lib/LibQuorum.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":43949,"symbolAliases":[{"foreign":{"id":37558,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"392:9:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37561,"nodeType":"ImportDirective","src":"432:70:46","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":37560,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43068,"src":"440:19:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37563,"nodeType":"ImportDirective","src":"503:57:46","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":37562,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"511:14:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37565,"nodeType":"ImportDirective","src":"561:85:46","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":38318,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":37564,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"569:13:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38317,"nodeType":"ContractDefinition","src":"648:13139:46","nodes":[{"id":37568,"nodeType":"VariableDeclaration","src":"735:30:46","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"764:1:46","scope":38317,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":37567,"nodeType":"UserDefinedTypeName","pathNode":{"id":37566,"name":"GatewayActorStorage","nameLocations":["735:19:46"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"735:19:46"},"referencedDeclaration":43068,"src":"735:19:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":37572,"nodeType":"UsingForDirective","src":"772:34:46","nodes":[],"global":false,"libraryName":{"id":37569,"name":"SubnetIDHelper","nameLocations":["778:14:46"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"778:14:46"},"typeName":{"id":37571,"nodeType":"UserDefinedTypeName","pathNode":{"id":37570,"name":"SubnetID","nameLocations":["797:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"797:8:46"},"referencedDeclaration":50077,"src":"797:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":37576,"nodeType":"UsingForDirective","src":"811:46:46","nodes":[],"global":false,"libraryName":{"id":37573,"name":"EnumerableSet","nameLocations":["817:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"817:13:46"},"typeName":{"id":37575,"nodeType":"UserDefinedTypeName","pathNode":{"id":37574,"name":"EnumerableSet.UintSet","nameLocations":["835:13:46","849:7:46"],"nodeType":"IdentifierPath","referencedDeclaration":35685,"src":"835:21:46"},"referencedDeclaration":35685,"src":"835:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"id":37580,"nodeType":"UsingForDirective","src":"862:49:46","nodes":[],"global":false,"libraryName":{"id":37577,"name":"EnumerableSet","nameLocations":["868:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"868:13:46"},"typeName":{"id":37579,"nodeType":"UserDefinedTypeName","pathNode":{"id":37578,"name":"EnumerableSet.AddressSet","nameLocations":["886:13:46","900:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"886:24:46"},"referencedDeclaration":35528,"src":"886:24:46","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":37590,"nodeType":"FunctionDefinition","src":"990:95:46","nodes":[],"body":{"id":37589,"nodeType":"Block","src":"1045:40:46","nodes":[],"statements":[{"expression":{"expression":{"id":37586,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1062:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1064:14:46","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":43027,"src":"1062:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37585,"id":37588,"nodeType":"Return","src":"1055:23:46"}]},"documentation":{"id":37581,"nodeType":"StructuredDocumentation","src":"917:68:46","text":"@notice Returns the minimum fee required for cross-net messages."},"functionSelector":"24729425","implemented":true,"kind":"function","modifiers":[],"name":"crossMsgFee","nameLocation":"999:11:46","parameters":{"id":37582,"nodeType":"ParameterList","parameters":[],"src":"1010:2:46"},"returnParameters":{"id":37585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37590,"src":"1036:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37583,"name":"uint256","nodeType":"ElementaryTypeName","src":"1036:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1035:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37600,"nodeType":"FunctionDefinition","src":"1167:95:46","nodes":[],"body":{"id":37599,"nodeType":"Block","src":"1223:39:46","nodes":[],"statements":[{"expression":{"expression":{"id":37596,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1240:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1242:13:46","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":43033,"src":"1240:15:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37595,"id":37598,"nodeType":"Return","src":"1233:22:46"}]},"documentation":{"id":37591,"nodeType":"StructuredDocumentation","src":"1091:71:46","text":"@notice Returns the current nonce for bottom-up message processing."},"functionSelector":"41b6a2e8","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpNonce","nameLocation":"1176:13:46","parameters":{"id":37592,"nodeType":"ParameterList","parameters":[],"src":"1189:2:46"},"returnParameters":{"id":37595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37600,"src":"1215:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37593,"name":"uint64","nodeType":"ElementaryTypeName","src":"1215:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1214:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37610,"nodeType":"FunctionDefinition","src":"1336:93:46","nodes":[],"body":{"id":37609,"nodeType":"Block","src":"1391:38:46","nodes":[],"statements":[{"expression":{"expression":{"id":37606,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1408:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1410:12:46","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":43039,"src":"1408:14:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37605,"id":37608,"nodeType":"Return","src":"1401:21:46"}]},"documentation":{"id":37601,"nodeType":"StructuredDocumentation","src":"1268:63:46","text":"@notice Returns the total number of the registered subnets."},"functionSelector":"a2b67158","implemented":true,"kind":"function","modifiers":[],"name":"totalSubnets","nameLocation":"1345:12:46","parameters":{"id":37602,"nodeType":"ParameterList","parameters":[],"src":"1357:2:46"},"returnParameters":{"id":37605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37610,"src":"1383:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37603,"name":"uint64","nodeType":"ElementaryTypeName","src":"1383:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1382:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37620,"nodeType":"FunctionDefinition","src":"1511:115:46","nodes":[],"body":{"id":37619,"nodeType":"Block","src":"1577:49:46","nodes":[],"statements":[{"expression":{"expression":{"id":37616,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1594:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1596:23:46","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":43048,"src":"1594:25:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37615,"id":37618,"nodeType":"Return","src":"1587:32:46"}]},"documentation":{"id":37611,"nodeType":"StructuredDocumentation","src":"1435:71:46","text":"@notice Returns the maximum number of messages per bottom-up batch."},"functionSelector":"05aff0b3","implemented":true,"kind":"function","modifiers":[],"name":"maxMsgsPerBottomUpBatch","nameLocation":"1520:23:46","parameters":{"id":37612,"nodeType":"ParameterList","parameters":[],"src":"1543:2:46"},"returnParameters":{"id":37615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37620,"src":"1569:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37613,"name":"uint64","nodeType":"ElementaryTypeName","src":"1569:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1568:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37630,"nodeType":"FunctionDefinition","src":"1709:114:46","nodes":[],"body":{"id":37629,"nodeType":"Block","src":"1775:48:46","nodes":[],"statements":[{"expression":{"expression":{"id":37626,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1792:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1794:22:46","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":43045,"src":"1792:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37625,"id":37628,"nodeType":"Return","src":"1785:31:46"}]},"documentation":{"id":37621,"nodeType":"StructuredDocumentation","src":"1632:72:46","text":"@notice Returns the period for processing bottom-up message batches."},"functionSelector":"69e737fd","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpMsgBatchPeriod","nameLocation":"1718:22:46","parameters":{"id":37622,"nodeType":"ParameterList","parameters":[],"src":"1740:2:46"},"returnParameters":{"id":37625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37624,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37630,"src":"1766:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37623,"name":"uint256","nodeType":"ElementaryTypeName","src":"1766:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1765:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37640,"nodeType":"FunctionDefinition","src":"1893:108:46","nodes":[],"body":{"id":37639,"nodeType":"Block","src":"1956:45:46","nodes":[],"statements":[{"expression":{"expression":{"id":37636,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"1973:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1975:19:46","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":43042,"src":"1973:21:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37635,"id":37638,"nodeType":"Return","src":"1966:28:46"}]},"documentation":{"id":37631,"nodeType":"StructuredDocumentation","src":"1829:59:46","text":"@notice Returns the period for bottom-up checkpointing."},"functionSelector":"06c46853","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckPeriod","nameLocation":"1902:19:46","parameters":{"id":37632,"nodeType":"ParameterList","parameters":[],"src":"1921:2:46"},"returnParameters":{"id":37635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37640,"src":"1947:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37633,"name":"uint256","nodeType":"ElementaryTypeName","src":"1947:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1946:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37651,"nodeType":"FunctionDefinition","src":"2069:103:46","nodes":[],"body":{"id":37650,"nodeType":"Block","src":"2135:37:46","nodes":[],"statements":[{"expression":{"expression":{"id":37647,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"2152:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2154:11:46","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"2152:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"functionReturnParameters":37646,"id":37649,"nodeType":"Return","src":"2145:20:46"}]},"documentation":{"id":37641,"nodeType":"StructuredDocumentation","src":"2007:57:46","text":"@notice Returns the subnet identifier of the network."},"functionSelector":"94074b03","implemented":true,"kind":"function","modifiers":[],"name":"getNetworkName","nameLocation":"2078:14:46","parameters":{"id":37642,"nodeType":"ParameterList","parameters":[],"src":"2092:2:46"},"returnParameters":{"id":37646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37645,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37651,"src":"2118:15:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":37644,"nodeType":"UserDefinedTypeName","pathNode":{"id":37643,"name":"SubnetID","nameLocations":["2118:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2118:8:46"},"referencedDeclaration":50077,"src":"2118:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2117:17:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37666,"nodeType":"FunctionDefinition","src":"2313:137:46","nodes":[],"body":{"id":37665,"nodeType":"Block","src":"2402:48:46","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":37660,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"2419:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2421:19:46","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"2419:21:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":37663,"indexExpression":{"id":37662,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37654,"src":"2441:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2419:24:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"functionReturnParameters":37659,"id":37664,"nodeType":"Return","src":"2412:31:46"}]},"documentation":{"id":37652,"nodeType":"StructuredDocumentation","src":"2178:130:46","text":"@notice Returns a specific bottom-up checkpoint based on an epoch number.\n @param e The epoch number of the checkpoint."},"functionSelector":"2da5794a","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpoint","nameLocation":"2322:18:46","parameters":{"id":37655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37654,"mutability":"mutable","name":"e","nameLocation":"2349:1:46","nodeType":"VariableDeclaration","scope":37666,"src":"2341:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37653,"name":"uint256","nodeType":"ElementaryTypeName","src":"2341:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2340:11:46"},"returnParameters":{"id":37659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37666,"src":"2375:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":37657,"nodeType":"UserDefinedTypeName","pathNode":{"id":37656,"name":"BottomUpCheckpoint","nameLocations":["2375:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"2375:18:46"},"referencedDeclaration":49932,"src":"2375:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"2374:27:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37681,"nodeType":"FunctionDefinition","src":"2582:132:46","nodes":[],"body":{"id":37680,"nodeType":"Block","src":"2667:47:46","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":37675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"2684:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2686:18:46","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"2684:20:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":37678,"indexExpression":{"id":37677,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37669,"src":"2705:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2684:23:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"functionReturnParameters":37674,"id":37679,"nodeType":"Return","src":"2677:30:46"}]},"documentation":{"id":37667,"nodeType":"StructuredDocumentation","src":"2456:121:46","text":"@notice Returns a specific bottom-up message batch based on an index.\n @param e The epoch number of the batch."},"functionSelector":"dd81b5cf","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpMsgBatch","nameLocation":"2591:16:46","parameters":{"id":37670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37669,"mutability":"mutable","name":"e","nameLocation":"2616:1:46","nodeType":"VariableDeclaration","scope":37681,"src":"2608:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37668,"name":"uint256","nodeType":"ElementaryTypeName","src":"2608:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2607:11:46"},"returnParameters":{"id":37674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37673,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37681,"src":"2642:23:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":37672,"nodeType":"UserDefinedTypeName","pathNode":{"id":37671,"name":"BottomUpMsgBatch","nameLocations":["2642:16:46"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"2642:16:46"},"referencedDeclaration":49945,"src":"2642:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"2641:25:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37696,"nodeType":"FunctionDefinition","src":"2903:159:46","nodes":[],"body":{"id":37695,"nodeType":"Block","src":"2997:65:46","nodes":[],"statements":[{"expression":{"arguments":[{"id":37692,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37684,"src":"3043:11:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":37690,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3014:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":37691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3025:17:46","memberName":"getParentFinality","nodeType":"MemberAccess","referencedDeclaration":42029,"src":"3014:28:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (uint256) view returns (struct ParentFinality memory)"}},"id":37693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3014:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"functionReturnParameters":37689,"id":37694,"nodeType":"Return","src":"3007:48:46"}]},"documentation":{"id":37682,"nodeType":"StructuredDocumentation","src":"2720:178:46","text":"@notice Returns the parent chain finality information for a given block number.\n @param blockNumber The block number for which to retrieve parent-finality information."},"functionSelector":"7edeac92","implemented":true,"kind":"function","modifiers":[],"name":"getParentFinality","nameLocation":"2912:17:46","parameters":{"id":37685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37684,"mutability":"mutable","name":"blockNumber","nameLocation":"2938:11:46","nodeType":"VariableDeclaration","scope":37696,"src":"2930:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37683,"name":"uint256","nodeType":"ElementaryTypeName","src":"2930:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2929:21:46"},"returnParameters":{"id":37689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37688,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37696,"src":"2974:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":37687,"nodeType":"UserDefinedTypeName","pathNode":{"id":37686,"name":"ParentFinality","nameLocations":["2974:14:46"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"2974:14:46"},"referencedDeclaration":49918,"src":"2974:14:46","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"2973:23:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37708,"nodeType":"FunctionDefinition","src":"3150:141:46","nodes":[],"body":{"id":37707,"nodeType":"Block","src":"3231:60:46","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":37703,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3248:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":37704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3259:23:46","memberName":"getLatestParentFinality","nodeType":"MemberAccess","referencedDeclaration":42049,"src":"3248:34:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function () view returns (struct ParentFinality memory)"}},"id":37705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3248:36:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"functionReturnParameters":37702,"id":37706,"nodeType":"Return","src":"3241:43:46"}]},"documentation":{"id":37697,"nodeType":"StructuredDocumentation","src":"3068:77:46","text":"@notice Gets the most recent parent-finality information from the parent."},"functionSelector":"0338150f","implemented":true,"kind":"function","modifiers":[],"name":"getLatestParentFinality","nameLocation":"3159:23:46","parameters":{"id":37698,"nodeType":"ParameterList","parameters":[],"src":"3182:2:46"},"returnParameters":{"id":37702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37708,"src":"3208:21:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":37700,"nodeType":"UserDefinedTypeName","pathNode":{"id":37699,"name":"ParentFinality","nameLocations":["3208:14:46"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"3208:14:46"},"referencedDeclaration":49918,"src":"3208:14:46","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"3207:23:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37726,"nodeType":"FunctionDefinition","src":"3491:196:46","nodes":[],"body":{"id":37725,"nodeType":"Block","src":"3582:105:46","nodes":[],"statements":[{"expression":{"arguments":[{"id":37722,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37712,"src":"3671:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":37720,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3650:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":37721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3661:9:46","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42692,"src":"3650:20:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":37723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3650:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"functionReturnParameters":37719,"id":37724,"nodeType":"Return","src":"3643:37:46"}]},"documentation":{"id":37709,"nodeType":"StructuredDocumentation","src":"3297:189:46","text":"@notice Returns the subnet with the given id.\n @param subnetId the id of the subnet.\n @return found whether the subnet exists.\n @return subnet - the subnet struct."},"functionSelector":"c66c66a1","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"3500:9:46","parameters":{"id":37713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37712,"mutability":"mutable","name":"subnetId","nameLocation":"3528:8:46","nodeType":"VariableDeclaration","scope":37726,"src":"3510:26:46","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":37711,"nodeType":"UserDefinedTypeName","pathNode":{"id":37710,"name":"SubnetID","nameLocations":["3510:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"3510:8:46"},"referencedDeclaration":50077,"src":"3510:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"3509:28:46"},"returnParameters":{"id":37719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37726,"src":"3561:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37714,"name":"bool","nodeType":"ElementaryTypeName","src":"3561:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37726,"src":"3567:13:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":37717,"nodeType":"UserDefinedTypeName","pathNode":{"id":37716,"name":"Subnet","nameLocations":["3567:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"3567:6:46"},"referencedDeclaration":50091,"src":"3567:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"3560:21:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37741,"nodeType":"FunctionDefinition","src":"3925:109:46","nodes":[],"body":{"id":37740,"nodeType":"Block","src":"3998:36:46","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":37735,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"4015:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4017:7:46","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42973,"src":"4015:9:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":37738,"indexExpression":{"id":37737,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37729,"src":"4025:1:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4015:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage","typeString":"struct Subnet storage ref"}},"functionReturnParameters":37734,"id":37739,"nodeType":"Return","src":"4008:19:46"}]},"documentation":{"id":37727,"nodeType":"StructuredDocumentation","src":"3693:227:46","text":"@notice Returns information about a specific subnet using its hash identifier.\n @param h The hash identifier of the subnet to be queried.\n @return subnet The subnet information corresponding to the given hash."},"functionSelector":"02e30f9a","implemented":true,"kind":"function","modifiers":[],"name":"subnets","nameLocation":"3934:7:46","parameters":{"id":37730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37729,"mutability":"mutable","name":"h","nameLocation":"3950:1:46","nodeType":"VariableDeclaration","scope":37741,"src":"3942:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3942:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3941:11:46"},"returnParameters":{"id":37734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37733,"mutability":"mutable","name":"subnet","nameLocation":"3990:6:46","nodeType":"VariableDeclaration","scope":37741,"src":"3976:20:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":37732,"nodeType":"UserDefinedTypeName","pathNode":{"id":37731,"name":"Subnet","nameLocations":["3976:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"3976:6:46"},"referencedDeclaration":50091,"src":"3976:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"3975:22:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37762,"nodeType":"FunctionDefinition","src":"4337:384:46","nodes":[],"body":{"id":37761,"nodeType":"Block","src":"4431:290:46","nodes":[],"statements":[{"assignments":[null,37752],"declarations":[null,{"constant":false,"id":37752,"mutability":"mutable","name":"subnet","nameLocation":"4510:6:46","nodeType":"VariableDeclaration","scope":37761,"src":"4495:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":37751,"nodeType":"UserDefinedTypeName","pathNode":{"id":37750,"name":"Subnet","nameLocations":["4495:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"4495:6:46"},"referencedDeclaration":50091,"src":"4495:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":37757,"initialValue":{"arguments":[{"id":37755,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37745,"src":"4541:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":37753,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"4520:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":37754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4531:9:46","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42692,"src":"4520:20:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":37756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4520:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"4492:58:46"},{"expression":{"expression":{"id":37758,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37752,"src":"4695:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":37759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4702:12:46","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"4695:19:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37749,"id":37760,"nodeType":"Return","src":"4688:26:46"}]},"documentation":{"id":37742,"nodeType":"StructuredDocumentation","src":"4040:292:46","text":"@notice Returns the length of the top-down message queue for a specified subnet.\n @param subnetId The identifier of the subnet for which the message queue length is queried.\n @return The current length of the top-down message queue, indicated by the subnet's top-down nonce."},"functionSelector":"9d3070b5","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetTopDownMsgsLength","nameLocation":"4346:26:46","parameters":{"id":37746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37745,"mutability":"mutable","name":"subnetId","nameLocation":"4389:8:46","nodeType":"VariableDeclaration","scope":37762,"src":"4373:24:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":37744,"nodeType":"UserDefinedTypeName","pathNode":{"id":37743,"name":"SubnetID","nameLocations":["4373:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"4373:8:46"},"referencedDeclaration":50077,"src":"4373:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"4372:26:46"},"returnParameters":{"id":37749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37762,"src":"4422:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37747,"name":"uint256","nodeType":"ElementaryTypeName","src":"4422:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4421:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37797,"nodeType":"FunctionDefinition","src":"5056:299:46","nodes":[],"body":{"id":37796,"nodeType":"Block","src":"5153:202:46","nodes":[],"statements":[{"assignments":[37774,37777],"declarations":[{"constant":false,"id":37774,"mutability":"mutable","name":"registered","nameLocation":"5169:10:46","nodeType":"VariableDeclaration","scope":37796,"src":"5164:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37773,"name":"bool","nodeType":"ElementaryTypeName","src":"5164:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37777,"mutability":"mutable","name":"subnet","nameLocation":"5196:6:46","nodeType":"VariableDeclaration","scope":37796,"src":"5181:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":37776,"nodeType":"UserDefinedTypeName","pathNode":{"id":37775,"name":"Subnet","nameLocations":["5181:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"5181:6:46"},"referencedDeclaration":50091,"src":"5181:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":37782,"initialValue":{"arguments":[{"id":37780,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37766,"src":"5227:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":37778,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"5206:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":37779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5217:9:46","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42692,"src":"5206:20:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":37781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5206:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"5163:73:46"},{"condition":{"id":37784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5250:11:46","subExpression":{"id":37783,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37774,"src":"5251:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37790,"nodeType":"IfStatement","src":"5246:59:46","trueBody":{"id":37789,"nodeType":"Block","src":"5263:42:46","statements":[{"expression":{"components":[{"hexValue":"66616c7365","id":37785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5285:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":37786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5292:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":37787,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5284:10:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":37772,"id":37788,"nodeType":"Return","src":"5277:17:46"}]}},{"expression":{"components":[{"hexValue":"74727565","id":37791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5322:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"expression":{"id":37792,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37777,"src":"5328:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":37793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5335:12:46","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"5328:19:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":37794,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5321:27:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint64_$","typeString":"tuple(bool,uint64)"}},"functionReturnParameters":37772,"id":37795,"nodeType":"Return","src":"5314:34:46"}]},"documentation":{"id":37763,"nodeType":"StructuredDocumentation","src":"4727:324:46","text":"@notice Returns the current applied top-down nonce for a specified subnet, indicating whether it's registered.\n @param subnetId The identifier of the subnet for which the top-down nonce is queried.\n @return A tuple containing a boolean indicating if the subnet is registered and the current top-down nonce."},"functionSelector":"9e530b57","implemented":true,"kind":"function","modifiers":[],"name":"getAppliedTopDownNonce","nameLocation":"5065:22:46","parameters":{"id":37767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37766,"mutability":"mutable","name":"subnetId","nameLocation":"5106:8:46","nodeType":"VariableDeclaration","scope":37797,"src":"5088:26:46","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":37765,"nodeType":"UserDefinedTypeName","pathNode":{"id":37764,"name":"SubnetID","nameLocations":["5088:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"5088:8:46"},"referencedDeclaration":50077,"src":"5088:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"5087:28:46"},"returnParameters":{"id":37772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37797,"src":"5139:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37768,"name":"bool","nodeType":"ElementaryTypeName","src":"5139:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37771,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37797,"src":"5145:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37770,"name":"uint64","nodeType":"ElementaryTypeName","src":"5145:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5138:14:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37807,"nodeType":"FunctionDefinition","src":"5421:107:46","nodes":[],"body":{"id":37806,"nodeType":"Block","src":"5483:45:46","nodes":[],"statements":[{"expression":{"expression":{"id":37803,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"5500:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5502:19:46","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":43036,"src":"5500:21:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37802,"id":37805,"nodeType":"Return","src":"5493:28:46"}]},"documentation":{"id":37798,"nodeType":"StructuredDocumentation","src":"5361:55:46","text":"@notice Returns the current applied top-down nonce."},"functionSelector":"8789f83b","implemented":true,"kind":"function","modifiers":[],"name":"appliedTopDownNonce","nameLocation":"5430:19:46","parameters":{"id":37799,"nodeType":"ParameterList","parameters":[],"src":"5449:2:46"},"returnParameters":{"id":37802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37801,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37807,"src":"5475:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37800,"name":"uint64","nodeType":"ElementaryTypeName","src":"5475:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5474:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37831,"nodeType":"FunctionDefinition","src":"5869:168:46","nodes":[],"body":{"id":37830,"nodeType":"Block","src":"5967:70:46","nodes":[],"statements":[{"expression":{"components":[{"expression":{"baseExpression":{"expression":{"id":37818,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"5985:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5987:7:46","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42988,"src":"5985:9:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":37821,"indexExpression":{"id":37820,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37810,"src":"5995:2:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5985:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage","typeString":"struct CrossMsg storage ref"}},"id":37822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5999:7:46","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"5985:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage","typeString":"struct StorableMsg storage ref"}},{"expression":{"baseExpression":{"expression":{"id":37823,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6008:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6010:7:46","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42988,"src":"6008:9:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":37826,"indexExpression":{"id":37825,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37810,"src":"6018:2:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6008:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage","typeString":"struct CrossMsg storage ref"}},"id":37827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6022:7:46","memberName":"wrapped","nodeType":"MemberAccess","referencedDeclaration":49973,"src":"6008:21:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":37828,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5984:46:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_StorableMsg_$49991_storage_$_t_bool_$","typeString":"tuple(struct StorableMsg storage ref,bool)"}},"functionReturnParameters":37817,"id":37829,"nodeType":"Return","src":"5977:53:46"}]},"documentation":{"id":37808,"nodeType":"StructuredDocumentation","src":"5534:330:46","text":"@notice Returns the storable message and its wrapped status from the postbox by a given identifier.\n @param id The unique identifier of the message in the postbox.\n @return storableMsg The storable message associated with the given id.\n @return wrapped A boolean indicating whether the message is wrapped."},"functionSelector":"8cfd78e7","implemented":true,"kind":"function","modifiers":[],"name":"postbox","nameLocation":"5878:7:46","parameters":{"id":37811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37810,"mutability":"mutable","name":"id","nameLocation":"5894:2:46","nodeType":"VariableDeclaration","scope":37831,"src":"5886:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37809,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5886:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5885:12:46"},"returnParameters":{"id":37817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37814,"mutability":"mutable","name":"storableMsg","nameLocation":"5940:11:46","nodeType":"VariableDeclaration","scope":37831,"src":"5921:30:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg"},"typeName":{"id":37813,"nodeType":"UserDefinedTypeName","pathNode":{"id":37812,"name":"StorableMsg","nameLocations":["5921:11:46"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"5921:11:46"},"referencedDeclaration":49991,"src":"5921:11:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"},{"constant":false,"id":37816,"mutability":"mutable","name":"wrapped","nameLocation":"5958:7:46","nodeType":"VariableDeclaration","scope":37831,"src":"5953:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37815,"name":"bool","nodeType":"ElementaryTypeName","src":"5953:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5920:46:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37841,"nodeType":"FunctionDefinition","src":"6152:105:46","nodes":[],"body":{"id":37840,"nodeType":"Block","src":"6213:44:46","nodes":[],"statements":[{"expression":{"expression":{"id":37837,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6230:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6232:18:46","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":43030,"src":"6230:20:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":37836,"id":37839,"nodeType":"Return","src":"6223:27:46"}]},"documentation":{"id":37832,"nodeType":"StructuredDocumentation","src":"6043:104:46","text":"@notice Returns the majority percentage required for certain consensus or decision-making processes."},"functionSelector":"599c7bd1","implemented":true,"kind":"function","modifiers":[],"name":"majorityPercentage","nameLocation":"6161:18:46","parameters":{"id":37833,"nodeType":"ParameterList","parameters":[],"src":"6179:2:46"},"returnParameters":{"id":37836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37835,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37841,"src":"6205:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37834,"name":"uint64","nodeType":"ElementaryTypeName","src":"6205:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6204:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37898,"nodeType":"FunctionDefinition","src":"6371:371:46","nodes":[],"body":{"id":37897,"nodeType":"Block","src":"6434:308:46","nodes":[],"statements":[{"assignments":[37850],"declarations":[{"constant":false,"id":37850,"mutability":"mutable","name":"size","nameLocation":"6452:4:46","nodeType":"VariableDeclaration","scope":37897,"src":"6444:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37849,"name":"uint256","nodeType":"ElementaryTypeName","src":"6444:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37854,"initialValue":{"expression":{"expression":{"id":37851,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6459:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6461:10:46","memberName":"subnetKeys","nodeType":"MemberAccess","referencedDeclaration":43020,"src":"6459:12:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":37853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6472:6:46","memberName":"length","nodeType":"MemberAccess","src":"6459:19:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6444:34:46"},{"assignments":[37859],"declarations":[{"constant":false,"id":37859,"mutability":"mutable","name":"out","nameLocation":"6504:3:46","nodeType":"VariableDeclaration","scope":37897,"src":"6488:19:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet[]"},"typeName":{"baseType":{"id":37857,"nodeType":"UserDefinedTypeName","pathNode":{"id":37856,"name":"Subnet","nameLocations":["6488:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"6488:6:46"},"referencedDeclaration":50091,"src":"6488:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"id":37858,"nodeType":"ArrayTypeName","src":"6488:8:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_storage_$dyn_storage_ptr","typeString":"struct Subnet[]"}},"visibility":"internal"}],"id":37866,"initialValue":{"arguments":[{"id":37864,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37850,"src":"6523:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":37863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6510:12:46","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Subnet_$50091_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Subnet memory[] memory)"},"typeName":{"baseType":{"id":37861,"nodeType":"UserDefinedTypeName","pathNode":{"id":37860,"name":"Subnet","nameLocations":["6514:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"6514:6:46"},"referencedDeclaration":50091,"src":"6514:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"id":37862,"nodeType":"ArrayTypeName","src":"6514:8:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_storage_$dyn_storage_ptr","typeString":"struct Subnet[]"}}},"id":37865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6510:18:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6488:40:46"},{"body":{"id":37893,"nodeType":"Block","src":"6566:150:46","statements":[{"assignments":[37874],"declarations":[{"constant":false,"id":37874,"mutability":"mutable","name":"key","nameLocation":"6588:3:46","nodeType":"VariableDeclaration","scope":37893,"src":"6580:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6580:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37879,"initialValue":{"baseExpression":{"expression":{"id":37875,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6594:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6596:10:46","memberName":"subnetKeys","nodeType":"MemberAccess","referencedDeclaration":43020,"src":"6594:12:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":37878,"indexExpression":{"id":37877,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37868,"src":"6607:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6594:15:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6580:29:46"},{"expression":{"id":37887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":37880,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37859,"src":"6623:3:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"id":37882,"indexExpression":{"id":37881,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37868,"src":"6627:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6623:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":37883,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6632:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6634:7:46","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42973,"src":"6632:9:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":37886,"indexExpression":{"id":37885,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37874,"src":"6642:3:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6632:14:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage","typeString":"struct Subnet storage ref"}},"src":"6623:23:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":37888,"nodeType":"ExpressionStatement","src":"6623:23:46"},{"id":37892,"nodeType":"UncheckedBlock","src":"6660:46:46","statements":[{"expression":{"id":37890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6688:3:46","subExpression":{"id":37889,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37868,"src":"6690:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37891,"nodeType":"ExpressionStatement","src":"6688:3:46"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":37870,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37868,"src":"6554:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37871,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37850,"src":"6558:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6554:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37894,"initializationExpression":{"assignments":[37868],"declarations":[{"constant":false,"id":37868,"mutability":"mutable","name":"i","nameLocation":"6551:1:46","nodeType":"VariableDeclaration","scope":37894,"src":"6543:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37867,"name":"uint256","nodeType":"ElementaryTypeName","src":"6543:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37869,"nodeType":"VariableDeclarationStatement","src":"6543:9:46"},"nodeType":"ForStatement","src":"6538:178:46"},{"expression":{"id":37895,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37859,"src":"6732:3:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet memory[] memory"}},"functionReturnParameters":37848,"id":37896,"nodeType":"Return","src":"6725:10:46"}]},"documentation":{"id":37842,"nodeType":"StructuredDocumentation","src":"6263:103:46","text":"@notice Returns the list of registered subnets.\n @return The list of the registered subnets."},"functionSelector":"5d029685","implemented":true,"kind":"function","modifiers":[],"name":"listSubnets","nameLocation":"6380:11:46","parameters":{"id":37843,"nodeType":"ParameterList","parameters":[],"src":"6391:2:46"},"returnParameters":{"id":37848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37898,"src":"6417:15:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_memory_ptr_$dyn_memory_ptr","typeString":"struct Subnet[]"},"typeName":{"baseType":{"id":37845,"nodeType":"UserDefinedTypeName","pathNode":{"id":37844,"name":"Subnet","nameLocations":["6417:6:46"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"6417:6:46"},"referencedDeclaration":50091,"src":"6417:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"id":37846,"nodeType":"ArrayTypeName","src":"6417:8:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Subnet_$50091_storage_$dyn_storage_ptr","typeString":"struct Subnet[]"}},"visibility":"internal"}],"src":"6416:17:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37909,"nodeType":"FunctionDefinition","src":"6818:111:46","nodes":[],"body":{"id":37908,"nodeType":"Block","src":"6889:40:46","nodes":[],"statements":[{"expression":{"expression":{"id":37905,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"6906:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6908:14:46","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"6906:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"functionReturnParameters":37904,"id":37907,"nodeType":"Return","src":"6899:23:46"}]},"documentation":{"id":37899,"nodeType":"StructuredDocumentation","src":"6748:65:46","text":"@notice Returns the last membership received from the parent."},"functionSelector":"f3229131","implemented":true,"kind":"function","modifiers":[],"name":"getLastMembership","nameLocation":"6827:17:46","parameters":{"id":37900,"nodeType":"ParameterList","parameters":[],"src":"6844:2:46"},"returnParameters":{"id":37904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37903,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37909,"src":"6870:17:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":37902,"nodeType":"UserDefinedTypeName","pathNode":{"id":37901,"name":"Membership","nameLocations":["6870:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"6870:10:46"},"referencedDeclaration":50218,"src":"6870:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"6869:19:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37920,"nodeType":"FunctionDefinition","src":"7015:129:46","nodes":[],"body":{"id":37919,"nodeType":"Block","src":"7084:60:46","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":37915,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"7101:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37916,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7103:14:46","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"7101:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":37917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7118:19:46","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"7101:36:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37914,"id":37918,"nodeType":"Return","src":"7094:43:46"}]},"documentation":{"id":37910,"nodeType":"StructuredDocumentation","src":"6935:75:46","text":"@notice Returns the last configuration number received from the parent."},"functionSelector":"b1ba49b0","implemented":true,"kind":"function","modifiers":[],"name":"getLastConfigurationNumber","nameLocation":"7024:26:46","parameters":{"id":37911,"nodeType":"ParameterList","parameters":[],"src":"7050:2:46"},"returnParameters":{"id":37914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37920,"src":"7076:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37912,"name":"uint64","nodeType":"ElementaryTypeName","src":"7076:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7075:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37931,"nodeType":"FunctionDefinition","src":"7198:117:46","nodes":[],"body":{"id":37930,"nodeType":"Block","src":"7272:43:46","nodes":[],"statements":[{"expression":{"expression":{"id":37927,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"7289:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7291:17:46","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"7289:19:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"functionReturnParameters":37926,"id":37929,"nodeType":"Return","src":"7282:26:46"}]},"documentation":{"id":37921,"nodeType":"StructuredDocumentation","src":"7150:43:46","text":"@notice Returns the current membership."},"functionSelector":"6ad21bb0","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentMembership","nameLocation":"7207:20:46","parameters":{"id":37922,"nodeType":"ParameterList","parameters":[],"src":"7227:2:46"},"returnParameters":{"id":37926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37925,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37931,"src":"7253:17:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":37924,"nodeType":"UserDefinedTypeName","pathNode":{"id":37923,"name":"Membership","nameLocations":["7253:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"7253:10:46"},"referencedDeclaration":50218,"src":"7253:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"7252:19:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37942,"nodeType":"FunctionDefinition","src":"7379:135:46","nodes":[],"body":{"id":37941,"nodeType":"Block","src":"7451:63:46","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":37937,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"7468:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7470:17:46","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"7468:19:46","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":37939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7488:19:46","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"7468:39:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":37936,"id":37940,"nodeType":"Return","src":"7461:46:46"}]},"documentation":{"id":37932,"nodeType":"StructuredDocumentation","src":"7321:53:46","text":"@notice Returns the current configuration number."},"functionSelector":"544dddff","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentConfigurationNumber","nameLocation":"7388:29:46","parameters":{"id":37933,"nodeType":"ParameterList","parameters":[],"src":"7417:2:46"},"returnParameters":{"id":37936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37935,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37942,"src":"7443:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":37934,"name":"uint64","nodeType":"ElementaryTypeName","src":"7443:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7442:8:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37958,"nodeType":"FunctionDefinition","src":"7743:139:46","nodes":[],"body":{"id":37957,"nodeType":"Block","src":"7823:59:46","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":37951,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"7840:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7842:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"7840:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":37953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7862:10:46","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"7840:32:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":37955,"indexExpression":{"id":37954,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37945,"src":"7873:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7840:35:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"functionReturnParameters":37950,"id":37956,"nodeType":"Return","src":"7833:42:46"}]},"documentation":{"id":37943,"nodeType":"StructuredDocumentation","src":"7520:218:46","text":"@notice Returns quorum information for a specific checkpoint based on its height.\n @param h The block height of the checkpoint.\n @return Quorum information associated with the given checkpoint height."},"functionSelector":"ac12d763","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointInfo","nameLocation":"7752:17:46","parameters":{"id":37946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37945,"mutability":"mutable","name":"h","nameLocation":"7778:1:46","nodeType":"VariableDeclaration","scope":37958,"src":"7770:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37944,"name":"uint256","nodeType":"ElementaryTypeName","src":"7770:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7769:11:46"},"returnParameters":{"id":37950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37958,"src":"7804:17:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":37948,"nodeType":"UserDefinedTypeName","pathNode":{"id":37947,"name":"QuorumInfo","nameLocations":["7804:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"7804:10:46"},"referencedDeclaration":50028,"src":"7804:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"src":"7803:19:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37974,"nodeType":"FunctionDefinition","src":"8150:151:46","nodes":[],"body":{"id":37973,"nodeType":"Block","src":"8236:65:46","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":37967,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"8253:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8255:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"8253:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":37969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8281:10:46","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"8253:38:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":37971,"indexExpression":{"id":37970,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37961,"src":"8292:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8253:41:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"functionReturnParameters":37966,"id":37972,"nodeType":"Return","src":"8246:48:46"}]},"documentation":{"id":37959,"nodeType":"StructuredDocumentation","src":"7888:257:46","text":"@notice Returns quorum information for a specific bottom-up message batch based on its height.\n @param h The block height of the bottom-up message batch.\n @return Quorum information associated with the given bottom-up message batch height."},"functionSelector":"b9ee5842","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatchInfo","nameLocation":"8159:23:46","parameters":{"id":37962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37961,"mutability":"mutable","name":"h","nameLocation":"8191:1:46","nodeType":"VariableDeclaration","scope":37974,"src":"8183:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37960,"name":"uint256","nodeType":"ElementaryTypeName","src":"8183:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8182:11:46"},"returnParameters":{"id":37966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37965,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37974,"src":"8217:17:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":37964,"nodeType":"UserDefinedTypeName","pathNode":{"id":37963,"name":"QuorumInfo","nameLocations":["8217:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"8217:10:46"},"referencedDeclaration":50028,"src":"8217:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"src":"8216:19:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37990,"nodeType":"FunctionDefinition","src":"8396:152:46","nodes":[],"body":{"id":37989,"nodeType":"Block","src":"8475:73:46","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":37982,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"8492:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8494:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"8492:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":37984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8514:10:46","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"8492:32:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":37986,"indexExpression":{"id":37985,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37977,"src":"8525:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8492:35:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"id":37987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8528:13:46","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":50024,"src":"8492:49:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37981,"id":37988,"nodeType":"Return","src":"8485:56:46"}]},"documentation":{"id":37975,"nodeType":"StructuredDocumentation","src":"8307:84:46","text":"@notice Returns the checkpoint current weight corresponding to the block height."},"functionSelector":"b3ab3f74","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointCurrentWeight","nameLocation":"8405:26:46","parameters":{"id":37978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37977,"mutability":"mutable","name":"h","nameLocation":"8440:1:46","nodeType":"VariableDeclaration","scope":37990,"src":"8432:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37976,"name":"uint256","nodeType":"ElementaryTypeName","src":"8432:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8431:11:46"},"returnParameters":{"id":37981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37990,"src":"8466:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37979,"name":"uint256","nodeType":"ElementaryTypeName","src":"8466:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8465:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38006,"nodeType":"FunctionDefinition","src":"8638:164:46","nodes":[],"body":{"id":38005,"nodeType":"Block","src":"8723:79:46","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":37998,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"8740:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8742:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"8740:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":38000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8768:10:46","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"8740:38:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":38002,"indexExpression":{"id":38001,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37993,"src":"8779:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8740:41:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"id":38003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8782:13:46","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":50024,"src":"8740:55:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":37997,"id":38004,"nodeType":"Return","src":"8733:62:46"}]},"documentation":{"id":37991,"nodeType":"StructuredDocumentation","src":"8554:79:46","text":"@notice Returns the batch current weight corresponding to the block height."},"functionSelector":"6547cd64","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatchCurrentWeight","nameLocation":"8647:32:46","parameters":{"id":37994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37993,"mutability":"mutable","name":"h","nameLocation":"8688:1:46","nodeType":"VariableDeclaration","scope":38006,"src":"8680:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37992,"name":"uint256","nodeType":"ElementaryTypeName","src":"8680:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8679:11:46"},"returnParameters":{"id":37997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38006,"src":"8714:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37995,"name":"uint256","nodeType":"ElementaryTypeName","src":"8714:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8713:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38020,"nodeType":"FunctionDefinition","src":"8867:155:46","nodes":[],"body":{"id":38019,"nodeType":"Block","src":"8950:72:46","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":38013,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"8967:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8969:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"8967:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":38015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8989:17:46","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":50045,"src":"8967:39:46","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":38016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9007:6:46","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35814,"src":"8967:46:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35685_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":38017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8967:48:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":38012,"id":38018,"nodeType":"Return","src":"8960:55:46"}]},"documentation":{"id":38007,"nodeType":"StructuredDocumentation","src":"8808:54:46","text":"@notice Returns the incomplete checkpoint heights."},"functionSelector":"a517218f","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteCheckpointHeights","nameLocation":"8876:30:46","parameters":{"id":38008,"nodeType":"ParameterList","parameters":[],"src":"8906:2:46"},"returnParameters":{"id":38012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38020,"src":"8932:16:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":38009,"name":"uint256","nodeType":"ElementaryTypeName","src":"8932:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38010,"nodeType":"ArrayTypeName","src":"8932:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"8931:18:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38085,"nodeType":"FunctionDefinition","src":"9080:508:46","nodes":[],"body":{"id":38084,"nodeType":"Block","src":"9168:420:46","nodes":[],"statements":[{"assignments":[38032],"declarations":[{"constant":false,"id":38032,"mutability":"mutable","name":"heights","nameLocation":"9195:7:46","nodeType":"VariableDeclaration","scope":38084,"src":"9178:24:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":38030,"name":"uint256","nodeType":"ElementaryTypeName","src":"9178:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38031,"nodeType":"ArrayTypeName","src":"9178:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":38038,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":38033,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"9205:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"9205:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":38035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9227:17:46","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":50045,"src":"9205:39:46","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":38036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9245:6:46","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35814,"src":"9205:46:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35685_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":38037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9205:48:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9178:75:46"},{"assignments":[38040],"declarations":[{"constant":false,"id":38040,"mutability":"mutable","name":"size","nameLocation":"9271:4:46","nodeType":"VariableDeclaration","scope":38084,"src":"9263:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38039,"name":"uint256","nodeType":"ElementaryTypeName","src":"9263:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38043,"initialValue":{"expression":{"id":38041,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38032,"src":"9278:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":38042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9286:6:46","memberName":"length","nodeType":"MemberAccess","src":"9278:14:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9263:29:46"},{"assignments":[38048],"declarations":[{"constant":false,"id":38048,"mutability":"mutable","name":"checkpoints","nameLocation":"9331:11:46","nodeType":"VariableDeclaration","scope":38084,"src":"9303:39:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint[]"},"typeName":{"baseType":{"id":38046,"nodeType":"UserDefinedTypeName","pathNode":{"id":38045,"name":"BottomUpCheckpoint","nameLocations":["9303:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"9303:18:46"},"referencedDeclaration":49932,"src":"9303:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"id":38047,"nodeType":"ArrayTypeName","src":"9303:20:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_storage_$dyn_storage_ptr","typeString":"struct BottomUpCheckpoint[]"}},"visibility":"internal"}],"id":38055,"initialValue":{"arguments":[{"id":38053,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38040,"src":"9370:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9345:24:46","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct BottomUpCheckpoint memory[] memory)"},"typeName":{"baseType":{"id":38050,"nodeType":"UserDefinedTypeName","pathNode":{"id":38049,"name":"BottomUpCheckpoint","nameLocations":["9349:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"9349:18:46"},"referencedDeclaration":49932,"src":"9349:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"id":38051,"nodeType":"ArrayTypeName","src":"9349:20:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_storage_$dyn_storage_ptr","typeString":"struct BottomUpCheckpoint[]"}}},"id":38054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9345:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9303:72:46"},{"body":{"id":38080,"nodeType":"Block","src":"9412:142:46","statements":[{"expression":{"id":38074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38062,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38048,"src":"9426:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint memory[] memory"}},"id":38064,"indexExpression":{"id":38063,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38057,"src":"9438:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9426:14:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":38065,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"9443:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9445:19:46","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"9443:21:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":38073,"indexExpression":{"arguments":[{"baseExpression":{"id":38069,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38032,"src":"9472:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":38071,"indexExpression":{"id":38070,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38057,"src":"9480:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9472:10:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9465:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":38067,"name":"uint64","nodeType":"ElementaryTypeName","src":"9465:6:46","typeDescriptions":{}}},"id":38072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9465:18:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9443:41:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"9426:58:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":38075,"nodeType":"ExpressionStatement","src":"9426:58:46"},{"id":38079,"nodeType":"UncheckedBlock","src":"9498:46:46","statements":[{"expression":{"id":38077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"9526:3:46","subExpression":{"id":38076,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38057,"src":"9528:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":38078,"nodeType":"ExpressionStatement","src":"9526:3:46"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38059,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38057,"src":"9400:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38060,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38040,"src":"9404:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9400:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38081,"initializationExpression":{"assignments":[38057],"declarations":[{"constant":false,"id":38057,"mutability":"mutable","name":"i","nameLocation":"9397:1:46","nodeType":"VariableDeclaration","scope":38081,"src":"9390:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":38056,"name":"uint64","nodeType":"ElementaryTypeName","src":"9390:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":38058,"nodeType":"VariableDeclarationStatement","src":"9390:8:46"},"nodeType":"ForStatement","src":"9385:169:46"},{"expression":{"id":38082,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38048,"src":"9570:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint memory[] memory"}},"functionReturnParameters":38027,"id":38083,"nodeType":"Return","src":"9563:18:46"}]},"documentation":{"id":38021,"nodeType":"StructuredDocumentation","src":"9028:47:46","text":"@notice Returns the incomplete checkpoints."},"functionSelector":"97042766","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteCheckpoints","nameLocation":"9089:24:46","parameters":{"id":38022,"nodeType":"ParameterList","parameters":[],"src":"9113:2:46"},"returnParameters":{"id":38027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38026,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38085,"src":"9139:27:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpCheckpoint[]"},"typeName":{"baseType":{"id":38024,"nodeType":"UserDefinedTypeName","pathNode":{"id":38023,"name":"BottomUpCheckpoint","nameLocations":["9139:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"9139:18:46"},"referencedDeclaration":49932,"src":"9139:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"id":38025,"nodeType":"ArrayTypeName","src":"9139:20:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpCheckpoint_$49932_storage_$dyn_storage_ptr","typeString":"struct BottomUpCheckpoint[]"}},"visibility":"internal"}],"src":"9138:29:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38150,"nodeType":"FunctionDefinition","src":"9654:494:46","nodes":[],"body":{"id":38149,"nodeType":"Block","src":"9739:409:46","nodes":[],"statements":[{"assignments":[38097],"declarations":[{"constant":false,"id":38097,"mutability":"mutable","name":"heights","nameLocation":"9766:7:46","nodeType":"VariableDeclaration","scope":38149,"src":"9749:24:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":38095,"name":"uint256","nodeType":"ElementaryTypeName","src":"9749:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38096,"nodeType":"ArrayTypeName","src":"9749:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":38103,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":38098,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"9776:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9778:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"9776:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":38100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9804:17:46","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":50045,"src":"9776:45:46","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":38101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9822:6:46","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35814,"src":"9776:52:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35685_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":38102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9776:54:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9749:81:46"},{"assignments":[38105],"declarations":[{"constant":false,"id":38105,"mutability":"mutable","name":"size","nameLocation":"9848:4:46","nodeType":"VariableDeclaration","scope":38149,"src":"9840:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38104,"name":"uint256","nodeType":"ElementaryTypeName","src":"9840:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38108,"initialValue":{"expression":{"id":38106,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38097,"src":"9855:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":38107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9863:6:46","memberName":"length","nodeType":"MemberAccess","src":"9855:14:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9840:29:46"},{"assignments":[38113],"declarations":[{"constant":false,"id":38113,"mutability":"mutable","name":"batches","nameLocation":"9906:7:46","nodeType":"VariableDeclaration","scope":38149,"src":"9880:33:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch[]"},"typeName":{"baseType":{"id":38111,"nodeType":"UserDefinedTypeName","pathNode":{"id":38110,"name":"BottomUpMsgBatch","nameLocations":["9880:16:46"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"9880:16:46"},"referencedDeclaration":49945,"src":"9880:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"id":38112,"nodeType":"ArrayTypeName","src":"9880:18:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_storage_$dyn_storage_ptr","typeString":"struct BottomUpMsgBatch[]"}},"visibility":"internal"}],"id":38120,"initialValue":{"arguments":[{"id":38118,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38105,"src":"9939:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9916:22:46","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct BottomUpMsgBatch memory[] memory)"},"typeName":{"baseType":{"id":38115,"nodeType":"UserDefinedTypeName","pathNode":{"id":38114,"name":"BottomUpMsgBatch","nameLocations":["9920:16:46"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"9920:16:46"},"referencedDeclaration":49945,"src":"9920:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"id":38116,"nodeType":"ArrayTypeName","src":"9920:18:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_storage_$dyn_storage_ptr","typeString":"struct BottomUpMsgBatch[]"}}},"id":38119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9916:28:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9880:64:46"},{"body":{"id":38145,"nodeType":"Block","src":"9981:137:46","statements":[{"expression":{"id":38139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38127,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38113,"src":"9995:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch memory[] memory"}},"id":38129,"indexExpression":{"id":38128,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38122,"src":"10003:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9995:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":38130,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"10008:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:18:46","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"10008:20:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":38138,"indexExpression":{"arguments":[{"baseExpression":{"id":38134,"name":"heights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38097,"src":"10036:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":38136,"indexExpression":{"id":38135,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38122,"src":"10044:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10036:10:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10029:6:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":38132,"name":"uint64","nodeType":"ElementaryTypeName","src":"10029:6:46","typeDescriptions":{}}},"id":38137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10029:18:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10008:40:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"src":"9995:53:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":38140,"nodeType":"ExpressionStatement","src":"9995:53:46"},{"id":38144,"nodeType":"UncheckedBlock","src":"10062:46:46","statements":[{"expression":{"id":38142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10090:3:46","subExpression":{"id":38141,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38122,"src":"10092:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":38143,"nodeType":"ExpressionStatement","src":"10090:3:46"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38124,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38122,"src":"9969:1:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38125,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38105,"src":"9973:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38146,"initializationExpression":{"assignments":[38122],"declarations":[{"constant":false,"id":38122,"mutability":"mutable","name":"i","nameLocation":"9966:1:46","nodeType":"VariableDeclaration","scope":38146,"src":"9959:8:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":38121,"name":"uint64","nodeType":"ElementaryTypeName","src":"9959:6:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":38123,"nodeType":"VariableDeclarationStatement","src":"9959:8:46"},"nodeType":"ForStatement","src":"9954:164:46"},{"expression":{"id":38147,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38113,"src":"10134:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch memory[] memory"}},"functionReturnParameters":38092,"id":38148,"nodeType":"Return","src":"10127:14:46"}]},"documentation":{"id":38086,"nodeType":"StructuredDocumentation","src":"9594:55:46","text":"@notice Returns the incomplete batches of messages."},"functionSelector":"335eb62a","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteMsgBatches","nameLocation":"9663:23:46","parameters":{"id":38087,"nodeType":"ParameterList","parameters":[],"src":"9686:2:46"},"returnParameters":{"id":38092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38150,"src":"9712:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$dyn_memory_ptr","typeString":"struct BottomUpMsgBatch[]"},"typeName":{"baseType":{"id":38089,"nodeType":"UserDefinedTypeName","pathNode":{"id":38088,"name":"BottomUpMsgBatch","nameLocations":["9712:16:46"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"9712:16:46"},"referencedDeclaration":49945,"src":"9712:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"id":38090,"nodeType":"ArrayTypeName","src":"9712:18:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_BottomUpMsgBatch_$49945_storage_$dyn_storage_ptr","typeString":"struct BottomUpMsgBatch[]"}},"visibility":"internal"}],"src":"9711:27:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38164,"nodeType":"FunctionDefinition","src":"10214:159:46","nodes":[],"body":{"id":38163,"nodeType":"Block","src":"10295:78:46","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":38157,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"10312:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10314:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"10312:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":38159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10340:17:46","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":50045,"src":"10312:45:46","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":38160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10358:6:46","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35814,"src":"10312:52:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$35685_storage_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256[] memory)"}},"id":38161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10312:54:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":38156,"id":38162,"nodeType":"Return","src":"10305:61:46"}]},"documentation":{"id":38151,"nodeType":"StructuredDocumentation","src":"10154:55:46","text":"@notice Returns the incomplete msd batches heights."},"functionSelector":"767ee5f4","implemented":true,"kind":"function","modifiers":[],"name":"getIncompleteMsgBatchHeights","nameLocation":"10223:28:46","parameters":{"id":38152,"nodeType":"ParameterList","parameters":[],"src":"10251:2:46"},"returnParameters":{"id":38156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38155,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38164,"src":"10277:16:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":38153,"name":"uint256","nodeType":"ElementaryTypeName","src":"10277:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38154,"nodeType":"ArrayTypeName","src":"10277:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"10276:18:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38175,"nodeType":"FunctionDefinition","src":"10445:133:46","nodes":[],"body":{"id":38174,"nodeType":"Block","src":"10517:61:46","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":38170,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"10534:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10536:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"10534:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":38172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10556:15:46","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"10534:37:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38169,"id":38173,"nodeType":"Return","src":"10527:44:46"}]},"documentation":{"id":38165,"nodeType":"StructuredDocumentation","src":"10379:61:46","text":"@notice Returns the bottom-up checkpoint retention index."},"functionSelector":"4aa8f8a5","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointRetentionHeight","nameLocation":"10454:28:46","parameters":{"id":38166,"nodeType":"ParameterList","parameters":[],"src":"10482:2:46"},"returnParameters":{"id":38169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38168,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38175,"src":"10508:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38167,"name":"uint256","nodeType":"ElementaryTypeName","src":"10508:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10507:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38186,"nodeType":"FunctionDefinition","src":"10645:140:46","nodes":[],"body":{"id":38185,"nodeType":"Block","src":"10718:67:46","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":38181,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"10735:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10737:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"10735:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},"id":38183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10763:15:46","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"10735:43:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38180,"id":38184,"nodeType":"Return","src":"10728:50:46"}]},"documentation":{"id":38176,"nodeType":"StructuredDocumentation","src":"10584:56:46","text":"@notice Returns the bottom-up batch retention index."},"functionSelector":"22180594","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgRetentionHeight","nameLocation":"10654:29:46","parameters":{"id":38177,"nodeType":"ParameterList","parameters":[],"src":"10683:2:46"},"returnParameters":{"id":38180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38179,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38186,"src":"10709:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38178,"name":"uint256","nodeType":"ElementaryTypeName","src":"10709:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10708:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38202,"nodeType":"FunctionDefinition","src":"11151:162:46","nodes":[],"body":{"id":38201,"nodeType":"Block","src":"11232:81:46","nodes":[],"statements":[{"expression":{"arguments":[{"id":38196,"name":"totalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38189,"src":"11272:11:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":38197,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"11285:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11287:18:46","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":43030,"src":"11285:20:46","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":38194,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"11249:9:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":38195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11259:12:46","memberName":"weightNeeded","nodeType":"MemberAccess","referencedDeclaration":43869,"src":"11249:22:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11249:57:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38193,"id":38200,"nodeType":"Return","src":"11242:64:46"}]},"documentation":{"id":38187,"nodeType":"StructuredDocumentation","src":"10791:355:46","text":"@notice Returns the threshold required for quorum in this subnet,\n based on the configured majority percentage and the total weight of the validators.\n @param totalWeight The total weight to consider for calculating the quorum threshold.\n @return The quorum threshold derived from the total weight and majority percentage."},"functionSelector":"06572c1a","implemented":true,"kind":"function","modifiers":[],"name":"getQuorumThreshold","nameLocation":"11160:18:46","parameters":{"id":38190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38189,"mutability":"mutable","name":"totalWeight","nameLocation":"11187:11:46","nodeType":"VariableDeclaration","scope":38202,"src":"11179:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38188,"name":"uint256","nodeType":"ElementaryTypeName","src":"11179:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11178:21:46"},"returnParameters":{"id":38193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38202,"src":"11223:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38191,"name":"uint256","nodeType":"ElementaryTypeName","src":"11223:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11222:9:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38246,"nodeType":"FunctionDefinition","src":"11739:480:46","nodes":[],"body":{"id":38245,"nodeType":"Block","src":"12022:197:46","nodes":[],"statements":[{"expression":{"id":38225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38220,"name":"ch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38209,"src":"12032:2:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":38221,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"12037:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12039:19:46","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"12037:21:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":38224,"indexExpression":{"id":38223,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38205,"src":"12059:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12037:24:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"12032:29:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":38226,"nodeType":"ExpressionStatement","src":"12032:29:46"},{"expression":{"id":38237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":38227,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38212,"src":"12072:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":38228,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38215,"src":"12078:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":38229,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38218,"src":"12091:10:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":38230,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12071:31:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":38233,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"12134:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12136:19:46","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43012,"src":"12134:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":38235,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38205,"src":"12157:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38231,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"12105:9:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":38232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12115:18:46","memberName":"getSignatureBundle","nodeType":"MemberAccess","referencedDeclaration":43947,"src":"12105:28:46","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_view$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$returns$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct QuorumMap storage pointer,uint256) view returns (struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"id":38236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12105:54:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"src":"12071:88:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38238,"nodeType":"ExpressionStatement","src":"12071:88:46"},{"expression":{"components":[{"id":38239,"name":"ch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38209,"src":"12178:2:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":38240,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38212,"src":"12182:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":38241,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38215,"src":"12188:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":38242,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38218,"src":"12201:10:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":38243,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12177:35:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct BottomUpCheckpoint memory,struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"functionReturnParameters":38219,"id":38244,"nodeType":"Return","src":"12170:42:46"}]},"documentation":{"id":38203,"nodeType":"StructuredDocumentation","src":"11319:415:46","text":"@notice Retrieves a bundle of information and signatures for a specified bottom-up checkpoint.\n @param h The height of the checkpoint for which information is requested.\n @return ch The checkpoint information at the specified height.\n @return info Quorum information related to the checkpoint.\n @return signatories An array of addresses of signatories who have signed the checkpoint."},"functionSelector":"ca41d5ce","implemented":true,"kind":"function","modifiers":[],"name":"getCheckpointSignatureBundle","nameLocation":"11748:28:46","parameters":{"id":38206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38205,"mutability":"mutable","name":"h","nameLocation":"11794:1:46","nodeType":"VariableDeclaration","scope":38246,"src":"11786:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38204,"name":"uint256","nodeType":"ElementaryTypeName","src":"11786:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11776:25:46"},"returnParameters":{"id":38219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38209,"mutability":"mutable","name":"ch","nameLocation":"11888:2:46","nodeType":"VariableDeclaration","scope":38246,"src":"11862:28:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":38208,"nodeType":"UserDefinedTypeName","pathNode":{"id":38207,"name":"BottomUpCheckpoint","nameLocations":["11862:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"11862:18:46"},"referencedDeclaration":49932,"src":"11862:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":38212,"mutability":"mutable","name":"info","nameLocation":"11922:4:46","nodeType":"VariableDeclaration","scope":38246,"src":"11904:22:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":38211,"nodeType":"UserDefinedTypeName","pathNode":{"id":38210,"name":"QuorumInfo","nameLocations":["11904:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"11904:10:46"},"referencedDeclaration":50028,"src":"11904:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"},{"constant":false,"id":38215,"mutability":"mutable","name":"signatories","nameLocation":"11957:11:46","nodeType":"VariableDeclaration","scope":38246,"src":"11940:28:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":38213,"name":"address","nodeType":"ElementaryTypeName","src":"11940:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38214,"nodeType":"ArrayTypeName","src":"11940:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":38218,"mutability":"mutable","name":"signatures","nameLocation":"11997:10:46","nodeType":"VariableDeclaration","scope":38246,"src":"11982:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":38216,"name":"bytes","nodeType":"ElementaryTypeName","src":"11982:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":38217,"nodeType":"ArrayTypeName","src":"11982:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11848:169:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38290,"nodeType":"FunctionDefinition","src":"12776:498:46","nodes":[],"body":{"id":38289,"nodeType":"Block","src":"13066:208:46","nodes":[],"statements":[{"expression":{"id":38269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38264,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38253,"src":"13076:5:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":38265,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"13084:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13086:18:46","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"13084:20:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":38268,"indexExpression":{"id":38267,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38249,"src":"13105:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13084:23:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"src":"13076:31:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":38270,"nodeType":"ExpressionStatement","src":"13076:31:46"},{"expression":{"id":38281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":38271,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38256,"src":"13118:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":38272,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38259,"src":"13124:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":38273,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38262,"src":"13137:10:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":38274,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"13117:31:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":38277,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37568,"src":"13180:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13182:25:46","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":43016,"src":"13180:27:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"}},{"id":38279,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38249,"src":"13209:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38275,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43948,"src":"13151:9:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43948_$","typeString":"type(library LibQuorum)"}},"id":38276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13161:18:46","memberName":"getSignatureBundle","nodeType":"MemberAccess","referencedDeclaration":43947,"src":"13151:28:46","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_view$_t_struct$_QuorumMap_$50059_storage_ptr_$_t_uint256_$returns$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct QuorumMap storage pointer,uint256) view returns (struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"id":38280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13151:60:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"src":"13117:94:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38282,"nodeType":"ExpressionStatement","src":"13117:94:46"},{"expression":{"components":[{"id":38283,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38253,"src":"13230:5:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},{"id":38284,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38256,"src":"13237:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":38285,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38259,"src":"13243:11:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":38286,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38262,"src":"13256:10:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":38287,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13229:38:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct BottomUpMsgBatch memory,struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"functionReturnParameters":38263,"id":38288,"nodeType":"Return","src":"13222:45:46"}]},"documentation":{"id":38247,"nodeType":"StructuredDocumentation","src":"12225:546:46","text":"@notice Returns a bundle of information and signatures for a specified bottom-up message batch.\n @param h The height of the message batch for which information is requested.\n @return batch The bottom-up message batch information at the specified height.\n @return info Quorum information related to the message batch.\n @return signatories An array of addresses of signatories who have signed the message batch.\n @return signatures An array of signatures corresponding to each signatory for the message batch."},"functionSelector":"a9294bdd","implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatchSignatureBundle","nameLocation":"12785:34:46","parameters":{"id":38250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38249,"mutability":"mutable","name":"h","nameLocation":"12837:1:46","nodeType":"VariableDeclaration","scope":38290,"src":"12829:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38248,"name":"uint256","nodeType":"ElementaryTypeName","src":"12829:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12819:25:46"},"returnParameters":{"id":38263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38253,"mutability":"mutable","name":"batch","nameLocation":"12929:5:46","nodeType":"VariableDeclaration","scope":38290,"src":"12905:29:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":38252,"nodeType":"UserDefinedTypeName","pathNode":{"id":38251,"name":"BottomUpMsgBatch","nameLocations":["12905:16:46"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"12905:16:46"},"referencedDeclaration":49945,"src":"12905:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"},{"constant":false,"id":38256,"mutability":"mutable","name":"info","nameLocation":"12966:4:46","nodeType":"VariableDeclaration","scope":38290,"src":"12948:22:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":38255,"nodeType":"UserDefinedTypeName","pathNode":{"id":38254,"name":"QuorumInfo","nameLocations":["12948:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"12948:10:46"},"referencedDeclaration":50028,"src":"12948:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"},{"constant":false,"id":38259,"mutability":"mutable","name":"signatories","nameLocation":"13001:11:46","nodeType":"VariableDeclaration","scope":38290,"src":"12984:28:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":38257,"name":"address","nodeType":"ElementaryTypeName","src":"12984:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38258,"nodeType":"ArrayTypeName","src":"12984:9:46","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":38262,"mutability":"mutable","name":"signatures","nameLocation":"13041:10:46","nodeType":"VariableDeclaration","scope":38290,"src":"13026:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":38260,"name":"bytes","nodeType":"ElementaryTypeName","src":"13026:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":38261,"nodeType":"ArrayTypeName","src":"13026:7:46","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"12891:170:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38316,"nodeType":"FunctionDefinition","src":"13496:289:46","nodes":[],"body":{"id":38315,"nodeType":"Block","src":"13653:132:46","nodes":[],"statements":[{"expression":{"id":38308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":38301,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38294,"src":"13664:6:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":38302,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38296,"src":"13672:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38303,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38299,"src":"13679:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"id":38304,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"13663:27:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$","typeString":"tuple(bool,uint256,struct BottomUpCheckpoint memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38305,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"13693:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13704:28:46","memberName":"getCurrentBottomUpCheckpoint","nodeType":"MemberAccess","referencedDeclaration":41802,"src":"13693:39:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$","typeString":"function () view returns (bool,uint256,struct BottomUpCheckpoint memory)"}},"id":38307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13693:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$","typeString":"tuple(bool,uint256,struct BottomUpCheckpoint memory)"}},"src":"13663:71:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38309,"nodeType":"ExpressionStatement","src":"13663:71:46"},{"expression":{"components":[{"id":38310,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38294,"src":"13752:6:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":38311,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38296,"src":"13760:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38312,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38299,"src":"13767:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"id":38313,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13751:27:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$","typeString":"tuple(bool,uint256,struct BottomUpCheckpoint memory)"}},"functionReturnParameters":38300,"id":38314,"nodeType":"Return","src":"13744:34:46"}]},"documentation":{"id":38291,"nodeType":"StructuredDocumentation","src":"13280:211:46","text":"@notice Returns the current bottom-up checkpoint.\n @return exists - whether the checkpoint exists\n @return epoch - the epoch of the checkpoint\n @return checkpoint - the checkpoint struct"},"functionSelector":"d6c5c397","implemented":true,"kind":"function","modifiers":[],"name":"getCurrentBottomUpCheckpoint","nameLocation":"13505:28:46","parameters":{"id":38292,"nodeType":"ParameterList","parameters":[],"src":"13533:2:46"},"returnParameters":{"id":38300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38294,"mutability":"mutable","name":"exists","nameLocation":"13588:6:46","nodeType":"VariableDeclaration","scope":38316,"src":"13583:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38293,"name":"bool","nodeType":"ElementaryTypeName","src":"13583:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38296,"mutability":"mutable","name":"epoch","nameLocation":"13604:5:46","nodeType":"VariableDeclaration","scope":38316,"src":"13596:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38295,"name":"uint256","nodeType":"ElementaryTypeName","src":"13596:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38299,"mutability":"mutable","name":"checkpoint","nameLocation":"13637:10:46","nodeType":"VariableDeclaration","scope":38316,"src":"13611:36:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":38298,"nodeType":"UserDefinedTypeName","pathNode":{"id":38297,"name":"BottomUpCheckpoint","nameLocations":["13611:18:46"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"13611:18:46"},"referencedDeclaration":49932,"src":"13611:18:46","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"13582:66:46"},"scope":38317,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayGetterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[38317],"name":"GatewayGetterFacet","nameLocation":"657:18:46","scope":38318,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":46} \ No newline at end of file diff --git a/.out/GatewayManagerFacet.sol/GatewayManagerFacet.json b/.out/GatewayManagerFacet.sol/GatewayManagerFacet.json index b74d52027..c3160938d 100644 --- a/.out/GatewayManagerFacet.sol/GatewayManagerFacet.json +++ b/.out/GatewayManagerFacet.sol/GatewayManagerFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addStake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"fund","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"register","inputs":[{"name":"genesisCircSupply","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"release","inputs":[{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"releaseRewardForRelayer","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"releaseStake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"AlreadyRegisteredSubnet","inputs":[]},{"type":"error","name":"CallFailed","inputs":[]},{"type":"error","name":"CannotReleaseZero","inputs":[]},{"type":"error","name":"InsufficientFunds","inputs":[]},{"type":"error","name":"InvalidActorAddress","inputs":[]},{"type":"error","name":"InvalidCrossMsgValue","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NotEmptySubnetCircSupply","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotEnoughFundsToRelease","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657612228908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816318f44b7014610d855750806341c0e1b514610c3857806345f5448514610b835780635a627dbc14610b005780636b2c1eef146104ea578063d8e25572146103aa5763f207564e1461006c57600080fd5b60208060031936011261029d5760043590601a546001908181018091116103945760ff602c5416111561031b57823410610309576100eb6100ad8434611175565b936100b6611182565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016113dd565b0381855af49283156102a9576000936102e4575b50610109836120bd565b906102d25760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025e57908983926101568299979a98969584611442565b0190600052866000208960005b8481106102b5575050505050856002916101b6975560038101600160801b60ff60801b198254161790554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611382565b03915af49283156102a957600093610274575b505060185490600160401b82101561025e578101806018558110156102485760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601d549061022d6001600160401b0360881b918360881c16611476565b60881b1667ffffffffffffffff60881b199190911617601d55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d83116102a2575b61028c81836110f1565b8101031261029d57519038806101c9565b600080fd5b503d610282565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b9101610163565b604051631b538cdf60e11b8152600490fd5b6103029193503d806000833e6102fa81836110f1565b81019061135a565b91386100ff565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025e57604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261039060405192839263015538b160e01b845260048401526024830190611150565b0390fd5b634e487b7160e01b600052601160045260246000fd5b3461029d5760208060031936011261029d57600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104d8576001825582156104c6576103fe33611f9f565b90156104b4578161041460046104359301611201565b60405180938192632cff562160e11b83528460048401526024830190611382565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156102a957600092610476575b600084610473876001600160a01b03871661148e565b55005b90809250813d83116104ad575b61048d81836110f1565b8101031261029d576000926104a4610473926112a3565b9181945061045d565b503d610483565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b60031960203682011261029d576004356001600160401b03811161029d57604082823603011261029d573415610aee57604051632e82508d60e21b815260a06004820152916000918391829161055f919061054760a48501611726565b913360248601528483030160448501526004016116bb565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af49081156102a957600091610acb575b50601f54908115610ab557816001600160401b03431604600181018091116103945782810292818404149015171561039457601d5468ffffffffffffffff006105ee6001600160401b038360081c1680606086510152611476565b60081b169068ffffffffffffffff00191617601d55816000526009602052604060002091600283018054156000146106ce579260039161063894601983036106a2575b55016118be565b3447106106905760008080803460635af13d1561068b573d61065981611112565b9061066760405192836110f1565b8152600060203d92013e5b1561067957005b604051633204506f60e01b8152600490fd5b610672565b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b03198454161783556106c960018401611f2e565b610631565b505060038201546020546001600160401b031603610aa4576003820154916106f58361128c565b9261070360405194856110f1565b808452601f196107128261128c565b0160005b818110610a3c575050604051938460608101106001600160401b0360608701111761025e576060850160405261074a611182565b8552436020860152604085015260005b81811061097a57506040516020815261077f8551606060208401526080830190611382565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061094d575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108db575b5090600361080692016118be565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b03831161025e5760209061085c8484611442565b0190600052602060002060005b8381106108be57505050602083015160028301555060408201515160039091019160005b82811061089d5750505050610638565b806108b86108b16001936040860151611dcc565b51866118be565b0161088d565b82516001600160a01b031681830155602090920191600101610869565b80600d0290600d82040361039457600382016000526020600020908101905b81811061090757506107f8565b80610913600d92611f0b565b61091f60048201611f0b565b6000600882015560006009820155610939600a8201611ec2565b6000600b8201556000600c820155016108fa565b909192939560208061096b600193601f198682030187528a516117cf565b980193019301919392906107b7565b80610a358161098e60019460038801611868565b5060408901519060ff600c604051926109a6846110bb565b6040516109b2816110d6565b6109bb82611e84565b81526109c960048301611e84565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a0a600a8301611de0565b60a0820152600b82015460c0820152845201541615156020820152610a2f8383611dcc565b52611dcc565b500161075a565b602090604051610a4b816110bb565b604051610a57816110d6565b610a5f611da5565b8152610a69611da5565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828901015201610716565b6003610ab092016118be565b610638565b634e487b7160e01b600052601260045260246000fd5b610ae891503d806000833e610ae081836110f1565b8101906115bc565b81610593565b6040516360ec4e6b60e11b8152600490fd5b600036600319011261029d57341561030957610b1b33611f9f565b90156104b4576003610b2e3483546110ae565b91828155019081549060ff8260801c166006811015610b6d57600214610b5057005b601b541115610b5c575b005b60ff60801b1916600160801b179055005b634e487b7160e01b600052602160045260246000fd5b3461029d5760208060031936011261029d57600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104d8576001825582156104c657610bd733611f9f565b90156104b4578054848110610c2657610414600461043593610bfa888795611175565b808255601b5411610c0c575b01611201565b60038101805460ff60801b1916600160811b179055610c06565b6040516379b33e7960e01b8152600490fd5b3461029d57600036600319011261029d57610c5233611f9f565b90156104b4576002810154610d73578054601d546001600160401b03600019818360881c16019081116103945767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601d55610cdb91610cb690600401611201565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611382565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156102a957600091610d44575b50610b5a92600091825252610d3e6005604060002060008155600060018201556000600282015560006003820155600060048201550161141c565b3361148e565b90508281813d8311610d6c575b610d5b81836110f1565b8101031261029d5751610b5a610d03565b503d610d51565b604051637c67c70160e11b8152600490fd5b6003199060403683011261029d576004356001600160401b0380821161029d5781360360408582011261029d5760249384359083821161029d57604087833603011261029d57341561109f5750604051936379185f5960e11b855260a0600486015260e4850192816004013585811680910361029d5760a487015281870135906022190181121561029d570185600482013591019284821161029d578160051b3603841361029d57908086939492604060c486015252610104830191906000905b80821061106d57505050610e6f82916000943389850152898483030160448501526004016116bb565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af49182156102a957600092611050575b506020938483510151516000610eee73__$a0fe38a9a81205afccc10810b09a4d3f45$__92610efc604051958693849363089032d560e01b8552604060048601526044850190611382565b90838203018a840152611726565b0381845af49182156102a957600092611033575b50610f1a826120bd565b9590156104b4578587946003610f88980190815490610f418183168060608c510152611476565b16906001600160401b031916179055610f65600260408851015192019182546110ae565b90556040518096819482936304e384ff60e21b8452876004850152830190611382565b03915af480156102a957600090610fdf575b7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969250610fda60405192839286845260018060a01b0316958301906117cf565b0390a2005b508282813d831161102c575b610ff581836110f1565b8101031261029d576110277f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f7096926112a3565b610f9a565b503d610feb565b6110499192503d806000833e6102fa81836110f1565b9086610f10565b6110669192503d806000833e610ae081836110f1565b9084610ea3565b919493509184356001600160a01b038116919082900361029d5760019181526020809101950192018693949291610e46565b6360ec4e6b60e11b8152600490fd5b9190820180921161039457565b604081019081106001600160401b0382111761025e57604052565b60e081019081106001600160401b0382111761025e57604052565b90601f801991011681019081106001600160401b0382111761025e57604052565b6001600160401b03811161025e57601f01601f191660200190565b60005b8381106111405750506000910152565b8181015183820152602001611130565b906020916111698151809281855285808601910161112d565b601f01601f1916010190565b9190820391821161039457565b6040519061118f826110bb565b816001600160401b036019541681526040518091601a54808352836020809401601a6000526000805160206121d38339815191529260005b868282106111e2575050506111de925003846110f1565b0152565b85546001600160a01b03168452600195860195899550930192016111c7565b9060405161120e816110bb565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061125957505050506111de925003846110f1565b83546001600160a01b0316855289955090930192918101918101611241565b51906001600160401b038216820361029d57565b6001600160401b03811161025e5760051b60200190565b51906001600160a01b038216820361029d57565b919060408382031261029d57604051926112d0846110bb565b836112da82611278565b815260209182810151906001600160401b03821161029d57019280601f8501121561029d57835161130a8161128c565b9461131860405196876110f1565b818652848087019260051b82010192831161029d5784809101915b83831061134257505050500152565b819061134d846112a3565b8152019101908490611333565b9060208282031261029d5781516001600160401b03811161029d5761137f92016112b7565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106113c0575050505090565b83516001600160a01b0316855293810193928101926001016113b2565b906113f5602091949394604084526040840190611382565b6001600160a01b03909416910152565b818110611410575050565b60008155600101611405565b8054600082558061142b575050565b61144091600052602060002090810190611405565b565b90600160401b811161025e5781549080835581811061146057505050565b6114409260005260206000209182019101611405565b9060016001600160401b038093160191821161039457565b814710610690576000918291829182916001600160a01b03165af13d156114d9573d6114b981611112565b906114c760405192836110f1565b8152600060203d92013e5b1561067957565b6114d2565b81601f8201121561029d5780516114f481611112565b9261150260405194856110f1565b8184526020828401011161029d5761137f916020808501910161112d565b919060408382031261029d5760405192611539846110bb565b838151916001600160401b039283811161029d57846115599183016112b7565b825260208101519083821161029d570160408185031261029d5760405193611580856110bb565b815160ff8116810361029d578552602082015193841161029d576020936115a792016114de565b828401520152565b5190811515820361029d57565b9060208282031261029d5781516001600160401b039283821161029d57019160408383031261029d57604051926115f2846110bb565b805182811161029d5781019260e08482031261029d5760405190611615826110d6565b845184811161029d578161162a918701611520565b8252602085015184811161029d5781611644918701611520565b60208301526040850151604083015261165f60608601611278565b606083015260808501516001600160e01b03198116810361029d57608083015260a085015193841161029d578461169f60c0926020966116b398016114de565b60a0840152015160c08201528452016115af565b602082015290565b803560ff811680910361029d5782526020810135601e198236030181121561029d570190602082359201916001600160401b03811161029d57803603831361029d578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000526000805160206121d3833981519152916000905b828210611773575050505090565b83546001600160a01b031685529384019360019384019390910190611765565b6040602061137f93816117ad855185845285840190611382565b940151908281860391015260ff81511684520151918160208201520190611150565b906020808351936040845260c06118556117f6875160e06040890152610120880190611793565b6118118589015191603f1992838a83030160608b0152611793565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152611150565b9501516101008501520151151591015290565b805482101561024857600052600d602060002091020190600090565b90600182811c921680156118b4575b602083101461189e57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611893565b8054600160401b81101561025e576118dd906001928382018155611868565b919091611d75578251918251928351926001600160401b03808551166001600160401b031990818654161785558285019260208097015180519084821161025e57889061192a8388611442565b01600095865288862083875b848110611d5a575050505050866002870198015160ff8151169860ff19998a82541617905560039288848901920151918251868111611c74578061197a8354611884565b94898d601f9788808211611d2d575b505050508c90868311600114611cc2578a92611cb7575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a0191015190815191878311611ca3578b906119e98484611442565b019088528a882085895b848110611c8857505050505088600689019101519060ff8251168b8254161790558860078901910151805190868211611c74578190611a328454611884565b8c868211611c47575b50508b90858311600114611be8578992611bdd575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a0870151908151958611611bc957611ac28754611884565b8a848211611b92575b505089928611600114611b2357938560ff9a999794819460c09894600c9b9895611b18575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611af0565b9294939190601f1985168785528a8520945b818110611b7d575092859260ff9b9a989592600c9a9760c0999610611b63575b50505050811b019055611b00565b01519060f884600019921b161c1916905538808080611b55565b82840151865594870194928b01928b01611b35565b611bb9918984528582852091818b0160051c8301938b10611bc0575b0160051c0190611405565b388a611acb565b92508192611bae565b634e487b7160e01b81526041600452602490fd5b015190503880611a50565b848a528c8a208794509190601f1984168b8f5b828210611c305750508411611c18575b505050811b019055611a62565b015160001983891b60f8161c19169055388080611c0b565b8385015186558a979095019493840193018f611bfb565b611c6d91868c5287828d209181870160051c8301938710611bc0570160051c0190611405565b388c611a3b565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119f3565b634e487b7160e01b89526041600452602489fd5b0151905038806119a0565b879350908d91601f198416868d52838d20938d905b828210611d0c5750508411611cf4575b505050811b0190556119b2565b0151600019838a1b60f8161c19169055388080611ce7565b91929395968291958786015181550195019301908f918a9695949392611cd7565b828489611d519652209181870160051c8301938710611bc0570160051c0190611405565b898d3888611989565b83516001600160a01b031683820155928b0192859101611936565b634e487b7160e01b600052600060045260246000fd5b60405190611d98826110bb565b6060602083600081520152565b60405190611db2826110bb565b81611dbb611d8b565b81526020611dc7611d8b565b910152565b80518210156102485760209160051b010190565b9060405191826000825492611df484611884565b908184526001948581169081600014611e615750600114611e1e575b5050611440925003836110f1565b9093915060005260209081600020936000915b818310611e4957505061144093508201013880611e10565b85548884018501529485019487945091830191611e31565b91505061144094506020925060ff191682840152151560051b8201013880611e10565b9060405191611e92836110bb565b602083611e9e83611201565b81526115a7600360405194611eb2866110bb565b60ff600282015416865201611de0565b611ecc8154611884565b9081611ed6575050565b81601f60009311600114611ee8575055565b908083918252611f07601f60208420940160051c840160018501611405565b5555565b60036114409160008155611f216001820161141c565b6000600282015501611ec2565b601a8114611f9c57601a54906001600160401b03821161025e57611f528282611442565b6000908152602081206000805160206121d383398151915280545b848410611f7b575050505050565b600191820180546001600160a01b0390921684860155939091019290611f6d565b50565b6001600160a01b039190828116156120ab57604051611fbd816110bb565b6001600160401b03601954168152604051918291601a54928385526020809501946000978895601a87526000805160206121d38339815191529187905b82821061208f5750505050612014826120329703836110f1565b82015260405163aa5106cb60e01b81529384928392600484016113dd565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156120845783612065939492612069575b50506120bd565b9091565b61207d92503d8091833e6102fa81836110f1565b388061205e565b6040513d85823e3d90fd5b835481168a52988401988b985060019384019390910190611ffa565b6040516370e4510960e01b8152600490fd5b6120fb73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611382565b0381865af49081156102a9576000916121a3575b509061215291600052600081528060406000209361212f60048601611201565b906040518080968194630c133d1360e31b83528660048401526024830190611382565b03915af49081156102a95760009161216c575b5090501591565b82813d831161219c575b61218081836110f1565b810103126121995750612192906115af565b8038612165565b80fd5b503d612176565b908282813d83116121cb575b6121b981836110f1565b8101031261219957505161215261210f565b503d6121af56fe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220acbf28f3c1bbdd7e2cb1d9044f01fb6e14ac0808692405782f49d96bd3db170464736f6c63430008130033","sourceMap":"1017:5655:45:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":1419,"length":20},{"start":3739,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":215,"length":20},{"start":1109,"length":20},{"start":3323,"length":20},{"start":3792,"length":20},{"start":8274,"length":20},{"start":8414,"length":20}]}}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c90816318f44b7014610d855750806341c0e1b514610c3857806345f5448514610b835780635a627dbc14610b005780636b2c1eef146104ea578063d8e25572146103aa5763f207564e1461006c57600080fd5b60208060031936011261029d5760043590601a546001908181018091116103945760ff602c5416111561031b57823410610309576100eb6100ad8434611175565b936100b6611182565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016113dd565b0381855af49283156102a9576000936102e4575b50610109836120bd565b906102d25760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025e57908983926101568299979a98969584611442565b0190600052866000208960005b8481106102b5575050505050856002916101b6975560038101600160801b60ff60801b198254161790554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611382565b03915af49283156102a957600093610274575b505060185490600160401b82101561025e578101806018558110156102485760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601d549061022d6001600160401b0360881b918360881c16611476565b60881b1667ffffffffffffffff60881b199190911617601d55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d83116102a2575b61028c81836110f1565b8101031261029d57519038806101c9565b600080fd5b503d610282565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b9101610163565b604051631b538cdf60e11b8152600490fd5b6103029193503d806000833e6102fa81836110f1565b81019061135a565b91386100ff565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025e57604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261039060405192839263015538b160e01b845260048401526024830190611150565b0390fd5b634e487b7160e01b600052601160045260246000fd5b3461029d5760208060031936011261029d57600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104d8576001825582156104c6576103fe33611f9f565b90156104b4578161041460046104359301611201565b60405180938192632cff562160e11b83528460048401526024830190611382565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156102a957600092610476575b600084610473876001600160a01b03871661148e565b55005b90809250813d83116104ad575b61048d81836110f1565b8101031261029d576000926104a4610473926112a3565b9181945061045d565b503d610483565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b60031960203682011261029d576004356001600160401b03811161029d57604082823603011261029d573415610aee57604051632e82508d60e21b815260a06004820152916000918391829161055f919061054760a48501611726565b913360248601528483030160448501526004016116bb565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af49081156102a957600091610acb575b50601f54908115610ab557816001600160401b03431604600181018091116103945782810292818404149015171561039457601d5468ffffffffffffffff006105ee6001600160401b038360081c1680606086510152611476565b60081b169068ffffffffffffffff00191617601d55816000526009602052604060002091600283018054156000146106ce579260039161063894601983036106a2575b55016118be565b3447106106905760008080803460635af13d1561068b573d61065981611112565b9061066760405192836110f1565b8152600060203d92013e5b1561067957005b604051633204506f60e01b8152600490fd5b610672565b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b03198454161783556106c960018401611f2e565b610631565b505060038201546020546001600160401b031603610aa4576003820154916106f58361128c565b9261070360405194856110f1565b808452601f196107128261128c565b0160005b818110610a3c575050604051938460608101106001600160401b0360608701111761025e576060850160405261074a611182565b8552436020860152604085015260005b81811061097a57506040516020815261077f8551606060208401526080830190611382565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061094d575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108db575b5090600361080692016118be565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b03831161025e5760209061085c8484611442565b0190600052602060002060005b8381106108be57505050602083015160028301555060408201515160039091019160005b82811061089d5750505050610638565b806108b86108b16001936040860151611dcc565b51866118be565b0161088d565b82516001600160a01b031681830155602090920191600101610869565b80600d0290600d82040361039457600382016000526020600020908101905b81811061090757506107f8565b80610913600d92611f0b565b61091f60048201611f0b565b6000600882015560006009820155610939600a8201611ec2565b6000600b8201556000600c820155016108fa565b909192939560208061096b600193601f198682030187528a516117cf565b980193019301919392906107b7565b80610a358161098e60019460038801611868565b5060408901519060ff600c604051926109a6846110bb565b6040516109b2816110d6565b6109bb82611e84565b81526109c960048301611e84565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a0a600a8301611de0565b60a0820152600b82015460c0820152845201541615156020820152610a2f8383611dcc565b52611dcc565b500161075a565b602090604051610a4b816110bb565b604051610a57816110d6565b610a5f611da5565b8152610a69611da5565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828901015201610716565b6003610ab092016118be565b610638565b634e487b7160e01b600052601260045260246000fd5b610ae891503d806000833e610ae081836110f1565b8101906115bc565b81610593565b6040516360ec4e6b60e11b8152600490fd5b600036600319011261029d57341561030957610b1b33611f9f565b90156104b4576003610b2e3483546110ae565b91828155019081549060ff8260801c166006811015610b6d57600214610b5057005b601b541115610b5c575b005b60ff60801b1916600160801b179055005b634e487b7160e01b600052602160045260246000fd5b3461029d5760208060031936011261029d57600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104d8576001825582156104c657610bd733611f9f565b90156104b4578054848110610c2657610414600461043593610bfa888795611175565b808255601b5411610c0c575b01611201565b60038101805460ff60801b1916600160811b179055610c06565b6040516379b33e7960e01b8152600490fd5b3461029d57600036600319011261029d57610c5233611f9f565b90156104b4576002810154610d73578054601d546001600160401b03600019818360881c16019081116103945767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601d55610cdb91610cb690600401611201565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611382565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156102a957600091610d44575b50610b5a92600091825252610d3e6005604060002060008155600060018201556000600282015560006003820155600060048201550161141c565b3361148e565b90508281813d8311610d6c575b610d5b81836110f1565b8101031261029d5751610b5a610d03565b503d610d51565b604051637c67c70160e11b8152600490fd5b6003199060403683011261029d576004356001600160401b0380821161029d5781360360408582011261029d5760249384359083821161029d57604087833603011261029d57341561109f5750604051936379185f5960e11b855260a0600486015260e4850192816004013585811680910361029d5760a487015281870135906022190181121561029d570185600482013591019284821161029d578160051b3603841361029d57908086939492604060c486015252610104830191906000905b80821061106d57505050610e6f82916000943389850152898483030160448501526004016116bb565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af49182156102a957600092611050575b506020938483510151516000610eee73__$a0fe38a9a81205afccc10810b09a4d3f45$__92610efc604051958693849363089032d560e01b8552604060048601526044850190611382565b90838203018a840152611726565b0381845af49182156102a957600092611033575b50610f1a826120bd565b9590156104b4578587946003610f88980190815490610f418183168060608c510152611476565b16906001600160401b031916179055610f65600260408851015192019182546110ae565b90556040518096819482936304e384ff60e21b8452876004850152830190611382565b03915af480156102a957600090610fdf575b7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969250610fda60405192839286845260018060a01b0316958301906117cf565b0390a2005b508282813d831161102c575b610ff581836110f1565b8101031261029d576110277f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f7096926112a3565b610f9a565b503d610feb565b6110499192503d806000833e6102fa81836110f1565b9086610f10565b6110669192503d806000833e610ae081836110f1565b9084610ea3565b919493509184356001600160a01b038116919082900361029d5760019181526020809101950192018693949291610e46565b6360ec4e6b60e11b8152600490fd5b9190820180921161039457565b604081019081106001600160401b0382111761025e57604052565b60e081019081106001600160401b0382111761025e57604052565b90601f801991011681019081106001600160401b0382111761025e57604052565b6001600160401b03811161025e57601f01601f191660200190565b60005b8381106111405750506000910152565b8181015183820152602001611130565b906020916111698151809281855285808601910161112d565b601f01601f1916010190565b9190820391821161039457565b6040519061118f826110bb565b816001600160401b036019541681526040518091601a54808352836020809401601a6000526000805160206121d38339815191529260005b868282106111e2575050506111de925003846110f1565b0152565b85546001600160a01b03168452600195860195899550930192016111c7565b9060405161120e816110bb565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061125957505050506111de925003846110f1565b83546001600160a01b0316855289955090930192918101918101611241565b51906001600160401b038216820361029d57565b6001600160401b03811161025e5760051b60200190565b51906001600160a01b038216820361029d57565b919060408382031261029d57604051926112d0846110bb565b836112da82611278565b815260209182810151906001600160401b03821161029d57019280601f8501121561029d57835161130a8161128c565b9461131860405196876110f1565b818652848087019260051b82010192831161029d5784809101915b83831061134257505050500152565b819061134d846112a3565b8152019101908490611333565b9060208282031261029d5781516001600160401b03811161029d5761137f92016112b7565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106113c0575050505090565b83516001600160a01b0316855293810193928101926001016113b2565b906113f5602091949394604084526040840190611382565b6001600160a01b03909416910152565b818110611410575050565b60008155600101611405565b8054600082558061142b575050565b61144091600052602060002090810190611405565b565b90600160401b811161025e5781549080835581811061146057505050565b6114409260005260206000209182019101611405565b9060016001600160401b038093160191821161039457565b814710610690576000918291829182916001600160a01b03165af13d156114d9573d6114b981611112565b906114c760405192836110f1565b8152600060203d92013e5b1561067957565b6114d2565b81601f8201121561029d5780516114f481611112565b9261150260405194856110f1565b8184526020828401011161029d5761137f916020808501910161112d565b919060408382031261029d5760405192611539846110bb565b838151916001600160401b039283811161029d57846115599183016112b7565b825260208101519083821161029d570160408185031261029d5760405193611580856110bb565b815160ff8116810361029d578552602082015193841161029d576020936115a792016114de565b828401520152565b5190811515820361029d57565b9060208282031261029d5781516001600160401b039283821161029d57019160408383031261029d57604051926115f2846110bb565b805182811161029d5781019260e08482031261029d5760405190611615826110d6565b845184811161029d578161162a918701611520565b8252602085015184811161029d5781611644918701611520565b60208301526040850151604083015261165f60608601611278565b606083015260808501516001600160e01b03198116810361029d57608083015260a085015193841161029d578461169f60c0926020966116b398016114de565b60a0840152015160c08201528452016115af565b602082015290565b803560ff811680910361029d5782526020810135601e198236030181121561029d570190602082359201916001600160401b03811161029d57803603831361029d578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000526000805160206121d3833981519152916000905b828210611773575050505090565b83546001600160a01b031685529384019360019384019390910190611765565b6040602061137f93816117ad855185845285840190611382565b940151908281860391015260ff81511684520151918160208201520190611150565b906020808351936040845260c06118556117f6875160e06040890152610120880190611793565b6118118589015191603f1992838a83030160608b0152611793565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152611150565b9501516101008501520151151591015290565b805482101561024857600052600d602060002091020190600090565b90600182811c921680156118b4575b602083101461189e57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611893565b8054600160401b81101561025e576118dd906001928382018155611868565b919091611d75578251918251928351926001600160401b03808551166001600160401b031990818654161785558285019260208097015180519084821161025e57889061192a8388611442565b01600095865288862083875b848110611d5a575050505050866002870198015160ff8151169860ff19998a82541617905560039288848901920151918251868111611c74578061197a8354611884565b94898d601f9788808211611d2d575b505050508c90868311600114611cc2578a92611cb7575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a0191015190815191878311611ca3578b906119e98484611442565b019088528a882085895b848110611c8857505050505088600689019101519060ff8251168b8254161790558860078901910151805190868211611c74578190611a328454611884565b8c868211611c47575b50508b90858311600114611be8578992611bdd575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a0870151908151958611611bc957611ac28754611884565b8a848211611b92575b505089928611600114611b2357938560ff9a999794819460c09894600c9b9895611b18575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611af0565b9294939190601f1985168785528a8520945b818110611b7d575092859260ff9b9a989592600c9a9760c0999610611b63575b50505050811b019055611b00565b01519060f884600019921b161c1916905538808080611b55565b82840151865594870194928b01928b01611b35565b611bb9918984528582852091818b0160051c8301938b10611bc0575b0160051c0190611405565b388a611acb565b92508192611bae565b634e487b7160e01b81526041600452602490fd5b015190503880611a50565b848a528c8a208794509190601f1984168b8f5b828210611c305750508411611c18575b505050811b019055611a62565b015160001983891b60f8161c19169055388080611c0b565b8385015186558a979095019493840193018f611bfb565b611c6d91868c5287828d209181870160051c8301938710611bc0570160051c0190611405565b388c611a3b565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119f3565b634e487b7160e01b89526041600452602489fd5b0151905038806119a0565b879350908d91601f198416868d52838d20938d905b828210611d0c5750508411611cf4575b505050811b0190556119b2565b0151600019838a1b60f8161c19169055388080611ce7565b91929395968291958786015181550195019301908f918a9695949392611cd7565b828489611d519652209181870160051c8301938710611bc0570160051c0190611405565b898d3888611989565b83516001600160a01b031683820155928b0192859101611936565b634e487b7160e01b600052600060045260246000fd5b60405190611d98826110bb565b6060602083600081520152565b60405190611db2826110bb565b81611dbb611d8b565b81526020611dc7611d8b565b910152565b80518210156102485760209160051b010190565b9060405191826000825492611df484611884565b908184526001948581169081600014611e615750600114611e1e575b5050611440925003836110f1565b9093915060005260209081600020936000915b818310611e4957505061144093508201013880611e10565b85548884018501529485019487945091830191611e31565b91505061144094506020925060ff191682840152151560051b8201013880611e10565b9060405191611e92836110bb565b602083611e9e83611201565b81526115a7600360405194611eb2866110bb565b60ff600282015416865201611de0565b611ecc8154611884565b9081611ed6575050565b81601f60009311600114611ee8575055565b908083918252611f07601f60208420940160051c840160018501611405565b5555565b60036114409160008155611f216001820161141c565b6000600282015501611ec2565b601a8114611f9c57601a54906001600160401b03821161025e57611f528282611442565b6000908152602081206000805160206121d383398151915280545b848410611f7b575050505050565b600191820180546001600160a01b0390921684860155939091019290611f6d565b50565b6001600160a01b039190828116156120ab57604051611fbd816110bb565b6001600160401b03601954168152604051918291601a54928385526020809501946000978895601a87526000805160206121d38339815191529187905b82821061208f5750505050612014826120329703836110f1565b82015260405163aa5106cb60e01b81529384928392600484016113dd565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156120845783612065939492612069575b50506120bd565b9091565b61207d92503d8091833e6102fa81836110f1565b388061205e565b6040513d85823e3d90fd5b835481168a52988401988b985060019384019390910190611ffa565b6040516370e4510960e01b8152600490fd5b6120fb73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611382565b0381865af49081156102a9576000916121a3575b509061215291600052600081528060406000209361212f60048601611201565b906040518080968194630c133d1360e31b83528660048401526024830190611382565b03915af49081156102a95760009161216c575b5090501591565b82813d831161219c575b61218081836110f1565b810103126121995750612192906115af565b8038612165565b80fd5b503d612176565b908282813d83116121cb575b6121b981836110f1565b8101031261219957505161215261210f565b503d6121af56fe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220acbf28f3c1bbdd7e2cb1d9044f01fb6e14ac0808692405782f49d96bd3db170464736f6c63430008130033","sourceMap":"1017:5655:45:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1685:19;1017:5655;;;;;;;;;;;;1719:14;1017:5655;;-1:-1:-1;1685:48:45;1681:132;;1827:9;;:29;1823:83;;2002:40;1936:29;1827:9;;1936:29;:::i;:::-;977:37;;;:::i;:::-;2002:28;1017:5655;2002:28;1017:5655;;;977:37;;;;;;;2002:40;;2031:10;2002:40;1017:5655;2002:40;;;:::i;:::-;;;;;;;;;;;1017:5655;2002:40;;;1017:5655;2096:30;;;;:::i;:::-;2137:73;;;1017:5655;2220:9;;977:37;-1:-1:-1;;;;;977:37:45;;;;;-1:-1:-1;;;;;977:37:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1017:5655;977:37;;1017:5655;977:37;;1017:5655;977:37;;;;;;;;;;;;2368:17;977:37;;;;1017:5655;2285:13;;1017:5655;977:37;;;;;;;;;;;;2346:12;2324:19;;;977:37;2368:17;977:37;1017:5655;;977:37;;;;;;;;2434:17;;;1017:5655;2434:17;;977:37;;;;;;:::i;:::-;2434:17;;;;;;;;;1017:5655;2434:17;;;977:37;;;2416:12;977:37;;-1:-1:-1;;;977:37:45;;;;;;;;2416:12;977:37;;;;;;2416:12;1017:5655;977:37;;;;2463:14;977:37;;2463:19;-1:-1:-1;;;;;977:37:45;;;;;;;2463:19;:::i;:::-;977:37;;;-1:-1:-1;;;;977:37:45;;;;;2463:14;977:37;1017:5655;977:37;1017:5655;;;;977:37;;1017:5655;977:37;;1017:5655;977:37;;1017:5655;;;;;;;;977:37;1017:5655;;2434:17;;;;;;;;;;;;;;;;;:::i;:::-;;;977:37;;;;;2434:17;;;;;977:37;1017:5655;;;2434:17;;;;;;1017:5655;;977:37;1017:5655;977:37;;;;;;;;-1:-1:-1;;;;;977:37:45;;;;;;;;;;;;;;;;2137:73;1017:5655;;-1:-1:-1;;;2174:25:45;;1017:5655;;2174:25;2002:40;;;;;;;1017:5655;2002:40;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;1823:83;1017:5655;;-1:-1:-1;;;1879:16:45;;1017:5655;;1879:16;1681:132;1017:5655;;;;;;;;;;-1:-1:-1;;;;;1017:5655:45;;;;;;;;;;;;;;;-1:-1:-1;;;1017:5655:45;;;;977:37;1017:5655;;1756:46;;;;;;;;1017:5655;1756:46;;977:37;;;;;;:::i;:::-;1756:46;;;1017:5655;;;;;;;;;;;;;;;;;;;;;;;;;;;247:48:63;;1017:5655:45;;;;582:20:63;578:50;;1017:5655:45;977:37;;3924:11;;3920:68;;4041:32;4062:10;4041:32;:::i;:::-;4087:11;;4083:70;;4171:9;977:37;1017:5655;977:37;4171:9;;977:37;:::i;:::-;1017:5655;;977:37;;;;;;;4171:20;;;1017:5655;4171:20;;977:37;;;;;;:::i;:::-;4171:20;:18;;:20;;;;;;;1017:5655;4171:20;;;1017:5655;;977:37;4203:6;977:37;-1:-1:-1;;;;;977:37:45;;4203:6;:::i;:::-;977:37;1017:5655;4171:20;;;;;;;;;;;;;;;;:::i;:::-;;;1017:5655;;;;;977:37;;4203:6;977:37;;:::i;:::-;4171:20;;;;;;;;;;;4083:70;1017:5655;;-1:-1:-1;;;4121:21:45;;1017:5655;;4121:21;3920:68;1017:5655;;-1:-1:-1;;;3958:19:45;;1017:5655;;3958:19;578:50:63;1017:5655:45;;-1:-1:-1;;;611:17:63;;1017:5655:45;;611:17:63;1017:5655:45;-1:-1:-1;;1017:5655:45;;;;;;;;;-1:-1:-1;;;;;1017:5655:45;;;;;;;;;;;;;6111:9;:14;6107:138;;1017:5655;;-1:-1:-1;;;6281:230:45;;1017:5655;;6281:230;;1017:5655;;;;;;;;;;;;;;;;:::i;:::-;6370:10;;1017:5655;;;977:37;1017:5655;;;;;;;;;;;:::i;:::-;6111:9;1017:5655;;;;;;;;;6281:230;:14;;:230;;;;;;;1017:5655;6281:230;;;1017:5655;;9927:24:58;1017:5655:45;;;;;;9913:12:58;-1:-1:-1;;;;;9913:12:58;977:37:45;1017:5655;13366:1:58;1017:5655:45;;;;;;;977:37;;;;;;;;;;;;;;10032:15:58;1017:5655:45;;10057:20:58;-1:-1:-1;;;;;1017:5655:45;;;977:37;10003:20:58;1017:5655:45;10003:20:58;;:26;977:37:45;10057:20:58;:::i;:::-;1017:5655:45;;;;;;;;10032:15:58;1017:5655:45;;;;2471:20:58;1017:5655:45;;;;;2517:17:58;;;;1017:5655:45;;2517:22:58;10228:1745;2517:17;;;1017:5655:45;;;10403:29:58;1017:5655:45;6335:13;1017:5655;;;;10228:1745:58;977:37:45;10403:10:58;:29;:::i;:::-;6111:9:45;13330:21:1;:31;13326:63;;1017:5655:45;6111:9;;;;977:37;13419:35:1;;1017:5655:45;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;13468:8:1;13464:33;;1017:5655:45;13464:33:1;1017:5655:45;;-1:-1:-1;;;13485:12:1;;1017:5655:45;;13485:12:1;1017:5655:45;;;13326:63:1;1017:5655:45;;-1:-1:-1;;;13370:19:1;;1017:5655:45;;13370:19:1;1017:5655:45;-1:-1:-1;;;;;6335:13:45;977:37;;-1:-1:-1;;;;;977:37:45;;;;;;;1017:5655;13366:1:58;1017:5655:45;;;:::i;:::-;;;10228:1745:58;-1:-1:-1;;1017:5655:45;10607:10:58;;1017:5655:45;;977:37;-1:-1:-1;;;;;977:37:45;10607:46:58;1017:5655:45;;;10607:10:58;;1017:5655:45;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1017:5655:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1017:5655:45;;;;;;;;;;;;977:37;;:::i;:::-;;;9913:12:58;1017:5655:45;10826:185:58;;977:37:45;1017:5655;10826:185:58;;977:37:45;1017:5655;11100:13:58;;;;;;1017:5655:45;;;;;;;;;;;;;;;;;;;:::i;:::-;10826:185:58;1017:5655:45;10826:185:58;;1017:5655:45;;;;;;10826:185:58;;1017:5655:45;;;;;;;;;;;;977:37;;;;;1017:5655;977:37;;1017:5655;;;;;;;;;977:37;;1017:5655;;;;;;;;;9913:12:58;;;;;;11371:38;9913:12;;11371:38;;;;1017:5655:45;;10607:10:58;;1017:5655:45;;;;;10607:10:58;;1017:5655:45;11649:29:58;10607:10;;11649:29;:::i;:::-;1017:5655:45;10826:185:58;;1017:5655:45;;;2471:20:58;1017:5655:45;;;;;3770:14:58;;-1:-1:-1;;;;;977:37:45;;;-1:-1:-1;;;;;977:37:45;;;;;;;1017:5655;13366:1:58;977:37:45;;;;;;;;;-1:-1:-1;;;;;977:37:45;;;;1017:5655;977:37;;;;;:::i;:::-;;;1017:5655;977:37;1017:5655;;977:37;1017:5655;977:37;;;;;;-1:-1:-1;;;1017:5655:45;10826:185:58;;1017:5655:45;2517:17:58;3794:13;;977:37:45;-1:-1:-1;1017:5655:45;10826:185:58;;3858:10;977:37:45;1017:5655;4114:6:58;;;;1017:5655:45;3901:13:58;;;;;;10603:1360;;;;10228:1745;;3890:9;10826:185;4114:26;4126:13;13366:1;10826:185;1017:5655:45;10826:185:58;;4126:10;:13;:::i;:::-;;4114:26;;:::i;:::-;1017:5655:45;3890:9:58;;977:37:45;;;-1:-1:-1;;;;;977:37:45;;;;;1017:5655;977:37;;;;13366:1:58;977:37:45;;;1017:5655;977:37;1017:5655;977:37;;1017:5655;977:37;;;;;1017:5655;10607:10:58;;1017:5655:45;977:37;1017:5655;;977:37;1017:5655;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;977:37;1017:5655;2471:20:58;1017:5655:45;;;;;;;;:::i;:::-;;;;;977:37;1017:5655;;;;;;;;;;;;;;;;;13366:1:58;1017:5655:45;;;;;;;;;;;;:::i;:::-;977:37;;1017:5655;;;;;;;;;;11089:9:58;10607:10;11138:32;10607:10;11157:13;13366:1;10607:10;1017:5655:45;10607:10:58;;11157:13;:::i;:::-;10826:185;1017:5655:45;10826:185:58;;11138:13;1017:5655:45;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;977:37;;1017:5655;;;;;:::i;:::-;;;;977:37;1017:5655;;;;;;;977:37;2471:20:58;1017:5655:45;;977:37;-1:-1:-1;;;;;977:37:45;;1017:5655;;;977:37;1017:5655;977:37;-1:-1:-1;;;;;;977:37:45;1017:5655;;;;;;;;;:::i;:::-;;;;977:37;1017:5655;;;;;;;977:37;;;1017:5655;;;;;;;;;11138:32:58;;;;:::i;:::-;;;:::i;:::-;;1017:5655:45;11089:9:58;;1017:5655:45;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10603:1360:58;1017:5655:45;11919:29:58;10607:10;;11919:29;:::i;:::-;10228:1745;;1017:5655:45;;;;;;;;;;;;6281:230;;;;;;1017:5655;6281:230;;;;;;:::i;:::-;;;;;:::i;:::-;;;;6107:138;1017:5655;;-1:-1:-1;;;6212:22:45;;1017:5655;;6212:22;1017:5655;;;-1:-1:-1;;1017:5655:45;;;;2611:9;:14;2607:68;;2728:32;2749:10;2728:32;:::i;:::-;2775:11;;2771:70;;1017:5655;2851:25;2611:9;1017:5655;;2851:25;:::i;:::-;977:37;;;;2891:13;1017:5655;;;;;;;;;977:37;;;;;;2908:15;2891:32;2887:156;;1017:5655;2887:156;2959:10;1017:5655;-1:-1:-1;2943:26:45;2939:94;;2887:156;1017:5655;2939:94;-1:-1:-1;;;;977:37:45;-1:-1:-1;;;977:37:45;;;2939:94;977:37;1017:5655;;;;977:37;;1017:5655;977:37;;1017:5655;977:37;1017:5655;;;;;;;;;;;;;;;247:48:63;;1017:5655:45;;;;582:20:63;578:50;;1017:5655:45;977:37;;3317:11;;3313:68;;3434:32;3455:10;3434:32;:::i;:::-;3481:11;;3477:70;;1017:5655;;3560:21;;;3556:84;;977:37;1017:5655;977:37;3650:22;;;;;;:::i;:::-;977:37;;;3702:10;1017:5655;-1:-1:-1;3683:87:45;;1017:5655;3787:9;977:37;:::i;3683:87::-;1017:5655;3728:13;;977:37;;-1:-1:-1;;;;977:37:45;-1:-1:-1;;;977:37:45;;;3683:87;;3556:84;1017:5655;;-1:-1:-1;;;3604:25:45;;1017:5655;;3604:25;1017:5655;;;;;;-1:-1:-1;;1017:5655:45;;;;4369:32;4390:10;4369:32;:::i;:::-;4416:11;;4412:70;;4553:17;;;1017:5655;4549:86;;1017:5655;;4684:14;977:37;-1:-1:-1;;;;;1017:5655:45;;977:37;;;;;1017:5655;;;;;;-1:-1:-1;;;;977:37:45;;;;;;;;-1:-1:-1;;;977:37:45;;4684:14;977:37;;;;;1017:5655;4731:9;977:37;:::i;:::-;1017:5655;;977:37;;;;4731:18;;;;;;;;;1017:5655;4731:18;;977:37;;;;;;:::i;:::-;4731:18;:16;;:18;;;;;;;1017:5655;4731:18;;;1017:5655;;4791:5;1017:5655;;;;;;;;;;;;977:37;;1017:5655;4702:1;1017:5655;;977:37;1017:5655;4553:17;1017:5655;;977:37;1017:5655;;;;;;;;;;;;:::i;:::-;4390:10;4791:5;:::i;4731:18::-;;;;;;;;;;;;;;;;:::i;:::-;;;977:37;;;;;4791:5;4731:18;;;;;;;4549:86;1017:5655;;-1:-1:-1;;;4598:26:45;;1017:5655;;4598:26;1017:5655;-1:-1:-1;;1017:5655:45;;;;;;;;;;-1:-1:-1;;;;;1017:5655:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5332:9;:14;5328:135;;1017:5655;;;977:37;;;;5499:220;;1017:5655;;5499:220;;1017:5655;;;;;;;;;977:37;;;;;;;;1017:5655;;;977:37;1017:5655;;;;;-1:-1:-1;;1017:5655:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;977:37;;;;1017:5655;;;;;;;;;;5580:10;;;1017:5655;5580:10;;1017:5655;5580:10;;1017:5655;;;977:37;1017:5655;;;;;;;;;;;;:::i;:::-;5332:9;1017:5655;;;;;;;;;5499:220;:14;;:220;;;;;;;1017:5655;5499:220;;;1017:5655;;;9070:20:58;;;;:23;;:32;1017:5655:45;;9070:37:58;1017:5655:45;;;;977:37;;;;;;;;9070:52:58;;1017:5655:45;;9070:52:58;;1017:5655:45;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;9070:52:58;;;;;;;;;;1017:5655:45;9070:52:58;;;1017:5655:45;9176:19:58;;;;:::i;:::-;9210:11;;;9206:70;;9308:19;;;1017:5655:45;977:37;9308:19:58;;977:37:45;;;;9411:16:58;977:37:45;;;9338:20:58;1017:5655:45;9338:20:58;;:26;977:37:45;9411:16:58;:::i;:::-;977:37:45;;-1:-1:-1;;;;;977:37:45;;;;;9437:47:58;:17;1017:5655:45;9458:20:58;;:26;1017:5655:45;9437:17:58;;1017:5655:45;;;9437:47:58;:::i;:::-;977:37:45;;1017:5655;;977:37;;;;;;;;;9527:21:58;;;1017:5655:45;9527:21:58;;977:37:45;;;;;:::i;:::-;9527:21:58;;;;;;;;1017:5655:45;9527:21:58;;;1017:5655:45;9500:73:58;1017:5655:45;;;;;;;;;;;;977:37;;;;;1017:5655;;;;;:::i;:::-;9500:73:58;;;1017:5655:45;9527:21:58;;;;;;;;;;;;;;;:::i;:::-;;;1017:5655:45;;;;977:37;9500:73:58;977:37:45;;:::i;:::-;9527:21:58;;;;;;;9070:52;;;;;;;1017:5655:45;9070:52:58;;;;;;:::i;:::-;;;;;5499:220:45;;;;;;;1017:5655;5499:220;;;;;;:::i;:::-;;;;;1017:5655;;;;-1:-1:-1;1017:5655:45;;;-1:-1:-1;;;;;977:37:45;;;1017:5655;977:37;;;;;1017:5655;977:37;;;1017:5655;977:37;;;;;1017:5655;;;;;;;;;5328:135;-1:-1:-1;;;5430:22:45;;1017:5655;;5430:22;1017:5655;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1017:5655:45;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1017:5655:45;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1017:5655:45;;;;;;;:::o;:::-;-1:-1:-1;;;;;1017:5655:45;;;;;;-1:-1:-1;;1017:5655:45;;;;:::o;977:37::-;;;;;;;;-1:-1:-1;;977:37:45;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:5655;;-1:-1:-1;;1017:5655:45;977:37;;;:::o;:::-;;;;;;;;;;:::o;:::-;;1017:5655;;;;;:::i;:::-;977:37;-1:-1:-1;;;;;10875:13:58;977:37:45;;;;;1017:5655;977:37;1017:5655;977:37;1017:5655;977:37;;;;;;;;;-1:-1:-1;977:37:45;-1:-1:-1;;;;;;;;;;;977:37:45;-1:-1:-1;977:37:45;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;977:37:45;;;;;;;;;;-1:-1:-1;977:37:45;;;;;;;;;1017:5655;;;;:::i;:::-;977:37;;-1:-1:-1;;;;;977:37:45;;;;;;;;;1017:5655;977:37;1017:5655;977:37;;1017:5655;;;;977:37;;;;;;;;;-1:-1:-1;977:37:45;;-1:-1:-1;977:37:45;;-1:-1:-1;977:37:45;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;977:37:45;;;;;-1:-1:-1;977:37:45;;;;;;;;;;;;;;;-1:-1:-1;;;;;977:37:45;;;;;;:::o;:::-;-1:-1:-1;;;;;977:37:45;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;977:37:45;;;;;;:::o;:::-;;;;;;;;;;;1017:5655;;;;;:::i;:::-;977:37;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;977:37:45;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:5655;;977:37;1017:5655;;;;:::i;:::-;977:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;977:37:45;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;-1:-1:-1;;;;;977:37:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;977:37:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;977:37:45;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;977:37:45;;;;;;;1017:5655;;;977:37;;;;;;;:::o;:::-;;;1017:5655;977:37;;1017:5655;977:37;;;;;;:::i;:::-;:::o;:::-;;-1:-1:-1;;;977:37:45;;;;1017:5655;;977:37;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;977:37:45;;-1:-1:-1;977:37:45;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;977:37:45;;;;;;;;;:::o;13246:258:1:-;13330:21;;:31;13326:63;;13419:35;;;;;;;;-1:-1:-1;;;;;977:37:45;13419:35:1;;1017:5655:45;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;13419:35:1;1017:5655:45;;;;;;13468:8:1;13464:33;;13246:258::o;1017:5655:45:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1017:5655:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1017:5655:45;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;977:37;1017:5655;;;977:37;:::i;:::-;1017:5655;;;;;;;;-1:-1:-1;;;;;;1017:5655:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1017:5655:45;;;;;;;;;;;;977:37;1017:5655;;;;;;;;;;977:37;;;;1017:5655;-1:-1:-1;1017:5655:45;;;;;;;;-1:-1:-1;;1017:5655:45;;;;:::o;:::-;;;;;-1:-1:-1;;;;;9108:13:58;1017:5655:45;977:37;;;;1017:5655;;;;;;;;;977:37;;;;;1017:5655;-1:-1:-1;977:37:45;-1:-1:-1;;;;;;;;;;;1017:5655:45;-1:-1:-1;1017:5655:45;;;;;;;;;;;;:::o;:::-;977:37;;-1:-1:-1;;;;;977:37:45;;;;;;;1017:5655;977:37;;;;1017:5655;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1017:5655:45;;;;977:37;1017:5655;;;977:37;;;;1017:5655;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;977:37:45;1017:5655;977:37;-1:-1:-1;977:37:45;1017:5655;;;;-1:-1:-1;1017:5655:45;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1017:5655:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;977:37;;;;;;;;;-1:-1:-1;;;;;977:37:45;;;;-1:-1:-1;;;;;977:37:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;977:37:45;;;;;;;;;;;;;;1017:5655;;;;;;;;;;;977:37;1017:5655;;;;;977:37;1017:5655;;;;;;;;;;;;;;;;;977:37;;;;1017:5655;;;;;;;;;;:::i;:::-;;;;;;;;;;;;977:37;1017:5655;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1017:5655:45;;;977:37;1017:5655;;;;;;;;;;;;;;;;977:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1017:5655;;;;;;;;;;;977:37;1017:5655;;;;;;;;;;;;;;;;;;977:37;;;1017:5655;;;;;;;;;;;;:::i;:::-;;;;;;;977:37;1017:5655;;;;;;;;;;;;;;;;-1:-1:-1;;;;1017:5655:45;;;977:37;1017:5655;;;;;;;;;;;;;;;;977:37;1017:5655;;;;;;;977:37;;;;1017:5655;;;;;;977:37;1017:5655;;;;;;;;;;;;;;977:37;1017:5655;;977:37;;;;1017:5655;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;977:37;1017:5655;;;;;;;;;;;977:37;1017:5655;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1017:5655:45;;;;;;;;;;;;;;977:37;;;;;;1017:5655;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;977:37;1017:5655;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;977:37;;;;;;;;1017:5655;;;;977:37;1017:5655;;;;;;;;;;977:37;1017:5655;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;1017:5655:45;;;;;;;;;;;;-1:-1:-1;1017:5655:45;;;;;977:37;;;;;;1017:5655;;-1:-1:-1;977:37:45;1017:5655;-1:-1:-1;;1017:5655:45;;977:37;1017:5655;;;;;;;;;;-1:-1:-1;1017:5655:45;;;;;;;;;;;;;;;;-1:-1:-1;;1017:5655:45;;;;;977:37;1017:5655;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;977:37;;;;;;;;1017:5655;;;;977:37;1017:5655;;;;;;;;;977:37;1017:5655;;;;:::i;:::-;;;;;;-1:-1:-1;;;1017:5655:45;;;;;;;;977:37;;;-1:-1:-1;;;;;977:37:45;;;;;;;;;;;;;;;-1:-1:-1;;;1017:5655:45;;;;;;;;;;;;-1:-1:-1;1017:5655:45;;;;;;;;;;;;;;;977:37;;;;;;1017:5655;;;;;;;;;;;;-1:-1:-1;1017:5655:45;;;;;;;;;;;;;;;;-1:-1:-1;;1017:5655:45;;;;;977:37;1017:5655;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;977:37;;;1017:5655;977:37;;;1017:5655;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;977:37;;;-1:-1:-1;;;;;977:37:45;;;;;;;;;;;;;;1017:5655;;;;977:37;;;;;;;;1017:5655;977:37;1017:5655;;;;;:::i;:::-;;;;-1:-1:-1;1017:5655:45;;;;:::o;:::-;977:37;1017:5655;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::o;:::-;977:37;;1017:5655;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;1017:5655:45;;;;;;:::i;:::-;977:37;;;;1017:5655;;;;;;;;;;;977:37;1017:5655;977:37;;;1017:5655;;;;;;;;;:::i;:::-;977:37;;;;-1:-1:-1;977:37:45;;;;-1:-1:-1;977:37:45;1017:5655;-1:-1:-1;1017:5655:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1017:5655:45;;;;;;;;;;;;;977:37;1017:5655;;977:37;1017:5655;;977:37;;;1017:5655;;;;;;;;;;;;;;977:37;1017:5655;;;;;:::i;:::-;;;;;;:::i;:::-;977:37;;1017:5655;;977:37;1017:5655;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;977:37;;;;;;1017:5655;;;977:37;;1017:5655;;;;;;;;;;:::i;:::-;;;977:37::o;1017:5655::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1017:5655:45;;;;;;;;:::i;:::-;-1:-1:-1;977:37:45;;;;;;-1:-1:-1;;;;;;;;;;;1017:5655:45;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;977:37:45;;;1017:5655;;;;;;;;;;;;;;:::o;12194:372:58:-;-1:-1:-1;;;;;977:37:45;12194:372:58;977:37:45;;;12377:19:58;12373:78;;977:37:45;1017:5655;;;;:::i;:::-;-1:-1:-1;;;;;12487:13:58;977:37:45;;;;;1017:5655;977:37;;1017:5655;977:37;1017:5655;977:37;;;;;;;;-1:-1:-1;;977:37:45;;;;;;-1:-1:-1;;;;;;;;;;;977:37:45;;;;;;;;;;;;;;;12487:35:58;977:37:45;;;;:::i;:::-;;;;;1017:5655;-1:-1:-1;;;12487:35:58;;1017:5655:45;;;;;12487:35:58;;;;:::i;:::-;;:28;;:35;;;;;;;;12540:19;12487:35;;;;;977:37:45;12540:19:58;;;:::i;:::-;12533:26;;12194:372::o;12487:35::-;;;;;;;;;;;;;:::i;:::-;;;;;;977:37:45;1017:5655;977:37;1017:5655;;977:37;;;;;;;;;;;;;;;;;-1:-1:-1;1017:5655:45;977:37;;;;;;;;;;12373:78:58;1017:5655:45;;-1:-1:-1;;;12419:21:58;;;;;12762:272;977:37:45;12971:15:58;1017:5655:45;;;977:37;;;;12971:17:58;;;;;;;;;;;;977:37:45;;;;;;:::i;:::-;12971:17:58;;;;;;;;;;4030:45:59;12971:17:58;;;12762:272;1017:5655:45;;977:37;1017:5655;4030:45:59;1017:5655:45;4030:45:59;1017:5655:45;;;;4030:45:59;1017:5655:45;13008:9:58;977:37:45;12971:17:58;13008:9;;977:37:45;:::i;:::-;1017:5655;;;977:37;;;;;;;;13008:19:58;;;12971:17;13008:19;;977:37:45;;;;;;:::i;:::-;13008:19:58;;;;;;;;;4030:45:59;13008:19:58;;;12762:272;13007:20;;;;12762:272;:::o;13008:19::-;;;;;;;;;;;;;:::i;:::-;;;1017:5655:45;;;;;;;;:::i;:::-;13008:19:58;;;;1017:5655:45;;;13008:19:58;;;;;12971:17;;;;;;;;;;;;;;;:::i;:::-;;;977:37:45;;;;-1:-1:-1;977:37:45;;12971:17:58;;;;;;","linkReferences":{"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":1391,"length":20},{"start":3711,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":187,"length":20},{"start":1081,"length":20},{"start":3295,"length":20},{"start":3764,"length":20},{"start":8246,"length":20},{"start":8386,"length":20}]}}},"methodIdentifiers":{"addStake()":"5a627dbc","fund((uint64,address[]),(uint8,bytes))":"18f44b70","kill()":"41c0e1b5","register(uint256)":"f207564e","release((uint8,bytes))":"6b2c1eef","releaseRewardForRelayer(uint256)":"d8e25572","releaseStake(uint256)":"45f54485"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEmptySubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFundsToRelease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"genesisCircSupply\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"fund((uint64,address[]),(uint8,bytes))\":{\"params\":{\"subnetId\":\": the destination subnet for the funds.\",\"to\":\": the address to which to credit funds in the destination subnet.\"}},\"register(uint256)\":{\"details\":\"The subnet can optionally pass a genesis circulating supply that would be pre-allocated in the subnet from genesis (without having to wait for the subnet to be spawned to propagate the funds).\"},\"release((uint8,bytes))\":{\"params\":{\"to\":\": the address to which to credit funds in the parent subnet.\"}},\"releaseStake(uint256)\":{\"details\":\"it can be used to release the stake or reward of the validator\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addStake()\":{\"notice\":\"addStake - add collateral for an existing subnet\"},\"fund((uint64,address[]),(uint8,bytes))\":{\"notice\":\"fund() credits the received value to the specified address in the specified child subnet. There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero, i.e. funding a subnet is free.\"},\"kill()\":{\"notice\":\"kill an existing subnet. It's balance must be empty\"},\"register(uint256)\":{\"notice\":\"register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake\"},\"release((uint8,bytes))\":{\"notice\":\"release() burns the received value and releases them from this subnet onto the parent by committing a bottom-up message.\"},\"releaseStake(uint256)\":{\"notice\":\"release amount for an existing subnetrelease collateral for an existing subnet\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayManagerFacet.sol\":\"GatewayManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21\",\"dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0x4517792d005bd1b3e1a0bea06af04f20119222fffffbc6b310522d820be83369\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ef8859a2e7e61a15776c6110f4183fd62099a34a2bc16d33c09b37f220ce3673\",\"dweb:/ipfs/Qme38CS7qv8tCFWfYCMUcZvBnF63wf5E1pzGmG4kYjhoh1\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14\",\"dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7\",\"dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2\",\"dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AlreadyRegisteredSubnet"},{"inputs":[],"type":"error","name":"CallFailed"},{"inputs":[],"type":"error","name":"CannotReleaseZero"},{"inputs":[],"type":"error","name":"InsufficientFunds"},{"inputs":[],"type":"error","name":"InvalidActorAddress"},{"inputs":[],"type":"error","name":"InvalidCrossMsgValue"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NotEmptySubnetCircSupply"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotEnoughFundsToRelease"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"fund"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[{"internalType":"uint256","name":"genesisCircSupply","type":"uint256"}],"stateMutability":"payable","type":"function","name":"register"},{"inputs":[{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"release"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseStake"}],"devdoc":{"kind":"dev","methods":{"fund((uint64,address[]),(uint8,bytes))":{"params":{"subnetId":": the destination subnet for the funds.","to":": the address to which to credit funds in the destination subnet."}},"register(uint256)":{"details":"The subnet can optionally pass a genesis circulating supply that would be pre-allocated in the subnet from genesis (without having to wait for the subnet to be spawned to propagate the funds)."},"release((uint8,bytes))":{"params":{"to":": the address to which to credit funds in the parent subnet."}},"releaseStake(uint256)":{"details":"it can be used to release the stake or reward of the validator"}},"version":1},"userdoc":{"kind":"user","methods":{"addStake()":{"notice":"addStake - add collateral for an existing subnet"},"fund((uint64,address[]),(uint8,bytes))":{"notice":"fund() credits the received value to the specified address in the specified child subnet. There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero, i.e. funding a subnet is free."},"kill()":{"notice":"kill an existing subnet. It's balance must be empty"},"register(uint256)":{"notice":"register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake"},"release((uint8,bytes))":{"notice":"release() burns the received value and releases them from this subnet onto the parent by committing a bottom-up message."},"releaseStake(uint256)":{"notice":"release amount for an existing subnetrelease collateral for an existing subnet"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayManagerFacet.sol":"GatewayManagerFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140","urls":["bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21","dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0x4517792d005bd1b3e1a0bea06af04f20119222fffffbc6b310522d820be83369","urls":["bzz-raw://ef8859a2e7e61a15776c6110f4183fd62099a34a2bc16d33c09b37f220ce3673","dweb:/ipfs/Qme38CS7qv8tCFWfYCMUcZvBnF63wf5E1pzGmG4kYjhoh1"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3","urls":["bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14","dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d","urls":["bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7","dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c","urls":["bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2","dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayManagerFacet.sol","id":38360,"exportedSymbols":{"AlreadyRegisteredSubnet":[36938],"BURNT_FUNDS_ACTOR":[36423],"CannotReleaseZero":[36942],"CrossMsg":[48452],"CrossMsgHelper":[40328],"ERR_CHILD_SUBNET_NOT_ALLOWED":[37907],"FilAddress":[1428],"FvmAddress":[48476],"GatewayActorModifiers":[42438],"GatewayManagerFacet":[38359],"InvalidCrossMsgValue":[36994],"LibGateway":[42242],"MethodNotAllowed":[37094],"NotEmptySubnetCircSupply":[37028],"NotEnoughCollateral":[37034],"NotEnoughFunds":[37038],"NotEnoughFundsToRelease":[37040],"NotRegisteredSubnet":[37050],"ReentrancyGuard":[43314],"Status":[36932],"Subnet":[48574],"SubnetID":[48557],"SubnetIDHelper":[46876]},"nodeType":"SourceUnit","src":"46:6627:45","nodes":[{"id":37871,"nodeType":"PragmaDirective","src":"46:23:45","nodes":[],"literals":["solidity","0.8",".19"]},{"id":37873,"nodeType":"ImportDirective","src":"71:72:45","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":38360,"sourceUnit":42439,"symbolAliases":[{"foreign":{"id":37872,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42438,"src":"79:21:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37875,"nodeType":"ImportDirective","src":"144:61:45","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":38360,"sourceUnit":36442,"symbolAliases":[{"foreign":{"id":37874,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36423,"src":"152:17:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37877,"nodeType":"ImportDirective","src":"206:49:45","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":38360,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":37876,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"214:8:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37879,"nodeType":"ImportDirective","src":"256:43:45","nodes":[],"absolutePath":"src/enums/Status.sol","file":"../enums/Status.sol","nameLocation":"-1:-1:-1","scope":38360,"sourceUnit":36933,"symbolAliases":[{"foreign":{"id":37878,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"264:6:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37881,"nodeType":"ImportDirective","src":"300:53:45","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":38360,"sourceUnit":48484,"symbolAliases":[{"foreign":{"id":37880,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"308:10:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37884,"nodeType":"ImportDirective","src":"354:55:45","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":38360,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":37882,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"362:8:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37883,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48574,"src":"372:6:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37894,"nodeType":"ImportDirective","src":"410:232:45","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":38360,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":37885,"name":"AlreadyRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36938,"src":"418:23:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37886,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36942,"src":"443:17:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37887,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37094,"src":"462:16:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37888,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37038,"src":"480:14:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37889,"name":"NotEnoughFundsToRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37040,"src":"496:23:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37890,"name":"NotEnoughCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37034,"src":"521:19:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37891,"name":"NotEmptySubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37028,"src":"542:24:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37892,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37050,"src":"568:19:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":37893,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36994,"src":"589:20:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37896,"nodeType":"ImportDirective","src":"643:49:45","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":38360,"sourceUnit":42243,"symbolAliases":[{"foreign":{"id":37895,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"651:10:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37898,"nodeType":"ImportDirective","src":"693:57:45","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":38360,"sourceUnit":46877,"symbolAliases":[{"foreign":{"id":37897,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46876,"src":"701:14:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37900,"nodeType":"ImportDirective","src":"751:57:45","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":38360,"sourceUnit":40329,"symbolAliases":[{"foreign":{"id":37899,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40328,"src":"759:14:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37902,"nodeType":"ImportDirective","src":"809:56:45","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":38360,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":37901,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"817:10:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37904,"nodeType":"ImportDirective","src":"866:62:45","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":38360,"sourceUnit":43315,"symbolAliases":[{"foreign":{"id":37903,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43314,"src":"874:15:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":37907,"nodeType":"VariableDeclaration","src":"930:84:45","nodes":[],"constant":true,"mutability":"constant","name":"ERR_CHILD_SUBNET_NOT_ALLOWED","nameLocation":"946:28:45","scope":38360,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":37905,"name":"string","nodeType":"ElementaryTypeName","src":"930:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e657473","id":37906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"977:37:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_134e6199f75369598df130f403db97d3616e5f01478ffecec2de7460d74db52c","typeString":"literal_string \"Subnet does not allow child subnets\""},"value":"Subnet does not allow child subnets"},"visibility":"internal"},{"id":38359,"nodeType":"ContractDefinition","src":"1017:5655:45","nodes":[{"id":37914,"nodeType":"UsingForDirective","src":"1094:37:45","nodes":[],"global":false,"libraryName":{"id":37912,"name":"FilAddress","nameLocations":["1100:10:45"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"1100:10:45"},"typeName":{"id":37913,"name":"address","nodeType":"ElementaryTypeName","src":"1115:15:45","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":37918,"nodeType":"UsingForDirective","src":"1136:34:45","nodes":[],"global":false,"libraryName":{"id":37915,"name":"SubnetIDHelper","nameLocations":["1142:14:45"],"nodeType":"IdentifierPath","referencedDeclaration":46876,"src":"1142:14:45"},"typeName":{"id":37917,"nodeType":"UserDefinedTypeName","pathNode":{"id":37916,"name":"SubnetID","nameLocations":["1161:8:45"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1161:8:45"},"referencedDeclaration":48557,"src":"1161:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}}},{"id":38030,"nodeType":"FunctionDefinition","src":"1501:988:45","nodes":[],"body":{"id":38029,"nodeType":"Block","src":"1563:926:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"id":37924,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"1685:1:45","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1687:11:45","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42322,"src":"1685:13:45","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"id":37926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1699:5:45","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"1685:19:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":37927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1705:6:45","memberName":"length","nodeType":"MemberAccess","src":"1685:26:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":37928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1714:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1685:30:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":37930,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"1719:1:45","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1721:12:45","memberName":"maxTreeDepth","nodeType":"MemberAccess","referencedDeclaration":42356,"src":"1719:14:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1685:48:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37938,"nodeType":"IfStatement","src":"1681:132:45","trueBody":{"id":37937,"nodeType":"Block","src":"1735:78:45","statements":[{"errorCall":{"arguments":[{"id":37934,"name":"ERR_CHILD_SUBNET_NOT_ALLOWED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37907,"src":"1773:28:45","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":37933,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37094,"src":"1756:16:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":37935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:46:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37936,"nodeType":"RevertStatement","src":"1749:53:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":37939,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1827:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":37940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1831:5:45","memberName":"value","nodeType":"MemberAccess","src":"1827:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":37941,"name":"genesisCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37921,"src":"1839:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1827:29:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37947,"nodeType":"IfStatement","src":"1823:83:45","trueBody":{"id":37946,"nodeType":"Block","src":"1858:48:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":37943,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37038,"src":"1879:14:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":37944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1879:16:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37945,"nodeType":"RevertStatement","src":"1872:23:45"}]}},{"assignments":[37949],"declarations":[{"constant":false,"id":37949,"mutability":"mutable","name":"collateral","nameLocation":"1923:10:45","nodeType":"VariableDeclaration","scope":38029,"src":"1915:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37948,"name":"uint256","nodeType":"ElementaryTypeName","src":"1915:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":37954,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":37953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":37950,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1936:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":37951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1940:5:45","memberName":"value","nodeType":"MemberAccess","src":"1936:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":37952,"name":"genesisCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37921,"src":"1948:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1936:29:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1915:50:45"},{"assignments":[37957],"declarations":[{"constant":false,"id":37957,"mutability":"mutable","name":"subnetId","nameLocation":"1991:8:45","nodeType":"VariableDeclaration","scope":38029,"src":"1975:24:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":37956,"nodeType":"UserDefinedTypeName","pathNode":{"id":37955,"name":"SubnetID","nameLocations":["1975:8:45"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1975:8:45"},"referencedDeclaration":48557,"src":"1975:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":37964,"initialValue":{"arguments":[{"expression":{"id":37961,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2031:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":37962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2035:6:45","memberName":"sender","nodeType":"MemberAccess","src":"2031:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":37958,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"2002:1:45","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":37959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2004:11:45","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42322,"src":"2002:13:45","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"id":37960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2016:14:45","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"2002:28:45","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":37963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2002:40:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"1975:67:45"},{"assignments":[37966,37969],"declarations":[{"constant":false,"id":37966,"mutability":"mutable","name":"registered","nameLocation":"2059:10:45","nodeType":"VariableDeclaration","scope":38029,"src":"2054:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37965,"name":"bool","nodeType":"ElementaryTypeName","src":"2054:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37969,"mutability":"mutable","name":"subnet","nameLocation":"2086:6:45","nodeType":"VariableDeclaration","scope":38029,"src":"2071:21:45","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":37968,"nodeType":"UserDefinedTypeName","pathNode":{"id":37967,"name":"Subnet","nameLocations":["2071:6:45"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"2071:6:45"},"referencedDeclaration":48574,"src":"2071:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":37974,"initialValue":{"arguments":[{"id":37972,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37957,"src":"2117:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":37970,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"2096:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":37971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2107:9:45","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42217,"src":"2096:20:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":37973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2096:30:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"2053:73:45"},{"condition":{"id":37975,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37966,"src":"2141:10:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":37980,"nodeType":"IfStatement","src":"2137:73:45","trueBody":{"id":37979,"nodeType":"Block","src":"2153:57:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":37976,"name":"AlreadyRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36938,"src":"2174:23:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":37977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2174:25:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37978,"nodeType":"RevertStatement","src":"2167:32:45"}]}},{"expression":{"id":37985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":37981,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37969,"src":"2220:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":37983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2227:2:45","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":48573,"src":"2220:9:45","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37984,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37957,"src":"2232:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"src":"2220:20:45","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"id":37986,"nodeType":"ExpressionStatement","src":"2220:20:45"},{"expression":{"id":37991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":37987,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37969,"src":"2250:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":37989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2257:5:45","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":48559,"src":"2250:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":37990,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37949,"src":"2265:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2250:25:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":37992,"nodeType":"ExpressionStatement","src":"2250:25:45"},{"expression":{"id":37998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":37993,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37969,"src":"2285:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":37995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2292:6:45","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":48570,"src":"2285:13:45","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":37996,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"2301:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$36932_$","typeString":"type(enum Status)"}},"id":37997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2308:6:45","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":36927,"src":"2301:13:45","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"src":"2285:29:45","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"id":37999,"nodeType":"ExpressionStatement","src":"2285:29:45"},{"expression":{"id":38005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38000,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37969,"src":"2324:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2331:12:45","memberName":"genesisEpoch","nodeType":"MemberAccess","referencedDeclaration":48561,"src":"2324:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":38003,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2346:5:45","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":38004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2352:6:45","memberName":"number","nodeType":"MemberAccess","src":"2346:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2324:34:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38006,"nodeType":"ExpressionStatement","src":"2324:34:45"},{"expression":{"id":38011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38007,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37969,"src":"2368:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2375:10:45","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":48563,"src":"2368:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38010,"name":"genesisCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37921,"src":"2388:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2368:37:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38012,"nodeType":"ExpressionStatement","src":"2368:37:45"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38018,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37957,"src":"2434:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":38019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2443:6:45","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"2434:15:45","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":38020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2434:17:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":38013,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"2416:1:45","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2418:10:45","memberName":"subnetKeys","nodeType":"MemberAccess","referencedDeclaration":42318,"src":"2416:12:45","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":38017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2429:4:45","memberName":"push","nodeType":"MemberAccess","src":"2416:17:45","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":38021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2416:36:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38022,"nodeType":"ExpressionStatement","src":"2416:36:45"},{"expression":{"id":38027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38023,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"2463:1:45","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2465:12:45","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":42340,"src":"2463:14:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":38026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2481:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2463:19:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":38028,"nodeType":"ExpressionStatement","src":"2463:19:45"}]},"documentation":{"id":37919,"nodeType":"StructuredDocumentation","src":"1176:320:45","text":"@notice register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake\n @dev The subnet can optionally pass a genesis circulating supply that would be pre-allocated in the\n subnet from genesis (without having to wait for the subnet to be spawned to propagate the funds)."},"functionSelector":"f207564e","implemented":true,"kind":"function","modifiers":[],"name":"register","nameLocation":"1510:8:45","parameters":{"id":37922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37921,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"1527:17:45","nodeType":"VariableDeclaration","scope":38030,"src":"1519:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37920,"name":"uint256","nodeType":"ElementaryTypeName","src":"1519:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1518:27:45"},"returnParameters":{"id":37923,"nodeType":"ParameterList","parameters":[],"src":"1563:0:45"},"scope":38359,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":38090,"nodeType":"FunctionDefinition","src":"2560:489:45","nodes":[],"body":{"id":38089,"nodeType":"Block","src":"2597:452:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38034,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2611:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2615:5:45","memberName":"value","nodeType":"MemberAccess","src":"2611:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2624:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2611:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38042,"nodeType":"IfStatement","src":"2607:68:45","trueBody":{"id":38041,"nodeType":"Block","src":"2627:48:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38038,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37038,"src":"2648:14:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2648:16:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38040,"nodeType":"RevertStatement","src":"2641:23:45"}]}},{"assignments":[38044,38047],"declarations":[{"constant":false,"id":38044,"mutability":"mutable","name":"registered","nameLocation":"2691:10:45","nodeType":"VariableDeclaration","scope":38089,"src":"2686:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38043,"name":"bool","nodeType":"ElementaryTypeName","src":"2686:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38047,"mutability":"mutable","name":"subnet","nameLocation":"2718:6:45","nodeType":"VariableDeclaration","scope":38089,"src":"2703:21:45","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38046,"nodeType":"UserDefinedTypeName","pathNode":{"id":38045,"name":"Subnet","nameLocations":["2703:6:45"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"2703:6:45"},"referencedDeclaration":48574,"src":"2703:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38053,"initialValue":{"arguments":[{"expression":{"id":38050,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2749:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2753:6:45","memberName":"sender","nodeType":"MemberAccess","src":"2749:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38048,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"2728:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":38049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2739:9:45","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42180,"src":"2728:20:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:32:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"2685:75:45"},{"condition":{"id":38055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2775:11:45","subExpression":{"id":38054,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38044,"src":"2776:10:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38060,"nodeType":"IfStatement","src":"2771:70:45","trueBody":{"id":38059,"nodeType":"Block","src":"2788:53:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38056,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37050,"src":"2809:19:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2809:21:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38058,"nodeType":"RevertStatement","src":"2802:28:45"}]}},{"expression":{"id":38066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38061,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38047,"src":"2851:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2858:5:45","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":48559,"src":"2851:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":38064,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2867:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2871:5:45","memberName":"value","nodeType":"MemberAccess","src":"2867:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2851:25:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38067,"nodeType":"ExpressionStatement","src":"2851:25:45"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"id":38072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38068,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38047,"src":"2891:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2898:6:45","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":48570,"src":"2891:13:45","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":38070,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"2908:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$36932_$","typeString":"type(enum Status)"}},"id":38071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2915:8:45","memberName":"Inactive","nodeType":"MemberAccess","referencedDeclaration":36928,"src":"2908:15:45","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"src":"2891:32:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38088,"nodeType":"IfStatement","src":"2887:156:45","trueBody":{"id":38087,"nodeType":"Block","src":"2925:118:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38073,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38047,"src":"2943:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2950:5:45","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":48559,"src":"2943:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":38075,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"2959:1:45","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38076,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2961:8:45","memberName":"minStake","nodeType":"MemberAccess","referencedDeclaration":42325,"src":"2959:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2943:26:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38086,"nodeType":"IfStatement","src":"2939:94:45","trueBody":{"id":38085,"nodeType":"Block","src":"2971:62:45","statements":[{"expression":{"id":38083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38078,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38047,"src":"2989:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2996:6:45","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":48570,"src":"2989:13:45","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":38081,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"3005:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$36932_$","typeString":"type(enum Status)"}},"id":38082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3012:6:45","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":36927,"src":"3005:13:45","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"src":"2989:29:45","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"id":38084,"nodeType":"ExpressionStatement","src":"2989:29:45"}]}}]}}]},"documentation":{"id":38031,"nodeType":"StructuredDocumentation","src":"2495:60:45","text":"@notice addStake - add collateral for an existing subnet"},"functionSelector":"5a627dbc","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"2569:8:45","parameters":{"id":38032,"nodeType":"ParameterList","parameters":[],"src":"2577:2:45"},"returnParameters":{"id":38033,"nodeType":"ParameterList","parameters":[],"src":"2597:0:45"},"scope":38359,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":38165,"nodeType":"FunctionDefinition","src":"3243:590:45","nodes":[],"body":{"id":38164,"nodeType":"Block","src":"3303:530:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38098,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38093,"src":"3317:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3327:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3317:11:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38105,"nodeType":"IfStatement","src":"3313:68:45","trueBody":{"id":38104,"nodeType":"Block","src":"3330:51:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38101,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36942,"src":"3351:17:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3351:19:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38103,"nodeType":"RevertStatement","src":"3344:26:45"}]}},{"assignments":[38107,38110],"declarations":[{"constant":false,"id":38107,"mutability":"mutable","name":"registered","nameLocation":"3397:10:45","nodeType":"VariableDeclaration","scope":38164,"src":"3392:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38106,"name":"bool","nodeType":"ElementaryTypeName","src":"3392:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38110,"mutability":"mutable","name":"subnet","nameLocation":"3424:6:45","nodeType":"VariableDeclaration","scope":38164,"src":"3409:21:45","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38109,"nodeType":"UserDefinedTypeName","pathNode":{"id":38108,"name":"Subnet","nameLocations":["3409:6:45"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"3409:6:45"},"referencedDeclaration":48574,"src":"3409:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38116,"initialValue":{"arguments":[{"expression":{"id":38113,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3455:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3459:6:45","memberName":"sender","nodeType":"MemberAccess","src":"3455:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38111,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"3434:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":38112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3445:9:45","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42180,"src":"3434:20:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3434:32:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3391:75:45"},{"condition":{"id":38118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3481:11:45","subExpression":{"id":38117,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38107,"src":"3482:10:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38123,"nodeType":"IfStatement","src":"3477:70:45","trueBody":{"id":38122,"nodeType":"Block","src":"3494:53:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38119,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37050,"src":"3515:19:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3515:21:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38121,"nodeType":"RevertStatement","src":"3508:28:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38124,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38110,"src":"3560:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3567:5:45","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":48559,"src":"3560:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38126,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38093,"src":"3575:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3560:21:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38132,"nodeType":"IfStatement","src":"3556:84:45","trueBody":{"id":38131,"nodeType":"Block","src":"3583:57:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38128,"name":"NotEnoughFundsToRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37040,"src":"3604:23:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3604:25:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38130,"nodeType":"RevertStatement","src":"3597:32:45"}]}},{"expression":{"id":38137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38133,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38110,"src":"3650:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3657:5:45","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":48559,"src":"3650:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":38136,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38093,"src":"3666:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3650:22:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38138,"nodeType":"ExpressionStatement","src":"3650:22:45"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38139,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38110,"src":"3687:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3694:5:45","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":48559,"src":"3687:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":38141,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"3702:1:45","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3704:8:45","memberName":"minStake","nodeType":"MemberAccess","referencedDeclaration":42325,"src":"3702:10:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3687:25:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38152,"nodeType":"IfStatement","src":"3683:87:45","trueBody":{"id":38151,"nodeType":"Block","src":"3714:56:45","statements":[{"expression":{"id":38149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38144,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38110,"src":"3728:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3735:6:45","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":48570,"src":"3728:13:45","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":38147,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"3744:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$36932_$","typeString":"type(enum Status)"}},"id":38148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3751:8:45","memberName":"Inactive","nodeType":"MemberAccess","referencedDeclaration":36928,"src":"3744:15:45","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"src":"3728:31:45","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"id":38150,"nodeType":"ExpressionStatement","src":"3728:31:45"}]}},{"expression":{"arguments":[{"id":38161,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38093,"src":"3819:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":38155,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38110,"src":"3787:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3794:2:45","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":48573,"src":"3787:9:45","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"id":38157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3797:8:45","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":46569,"src":"3787:18:45","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3787:20:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3779:8:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38153,"name":"address","nodeType":"ElementaryTypeName","src":"3779:8:45","stateMutability":"payable","typeDescriptions":{}}},"id":38159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3779:29:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3809:9:45","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"3779:39:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3779:47:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38163,"nodeType":"ExpressionStatement","src":"3779:47:45"}]},"documentation":{"id":38091,"nodeType":"StructuredDocumentation","src":"3055:183:45","text":"@notice release amount for an existing subnet\n @dev it can be used to release the stake or reward of the validator\n @notice release collateral for an existing subnet"},"functionSelector":"45f54485","implemented":true,"kind":"function","modifiers":[{"id":38096,"kind":"modifierInvocation","modifierName":{"id":38095,"name":"nonReentrant","nameLocations":["3290:12:45"],"nodeType":"IdentifierPath","referencedDeclaration":43298,"src":"3290:12:45"},"nodeType":"ModifierInvocation","src":"3290:12:45"}],"name":"releaseStake","nameLocation":"3252:12:45","parameters":{"id":38094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38093,"mutability":"mutable","name":"amount","nameLocation":"3273:6:45","nodeType":"VariableDeclaration","scope":38165,"src":"3265:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38092,"name":"uint256","nodeType":"ElementaryTypeName","src":"3265:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3264:16:45"},"returnParameters":{"id":38097,"nodeType":"ParameterList","parameters":[],"src":"3303:0:45"},"scope":38359,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38210,"nodeType":"FunctionDefinition","src":"3839:378:45","nodes":[],"body":{"id":38209,"nodeType":"Block","src":"3910:307:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38172,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38167,"src":"3924:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3934:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3924:11:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38179,"nodeType":"IfStatement","src":"3920:68:45","trueBody":{"id":38178,"nodeType":"Block","src":"3937:51:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38175,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36942,"src":"3958:17:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3958:19:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38177,"nodeType":"RevertStatement","src":"3951:26:45"}]}},{"assignments":[38181,38184],"declarations":[{"constant":false,"id":38181,"mutability":"mutable","name":"registered","nameLocation":"4004:10:45","nodeType":"VariableDeclaration","scope":38209,"src":"3999:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38180,"name":"bool","nodeType":"ElementaryTypeName","src":"3999:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38184,"mutability":"mutable","name":"subnet","nameLocation":"4031:6:45","nodeType":"VariableDeclaration","scope":38209,"src":"4016:21:45","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38183,"nodeType":"UserDefinedTypeName","pathNode":{"id":38182,"name":"Subnet","nameLocations":["4016:6:45"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"4016:6:45"},"referencedDeclaration":48574,"src":"4016:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38190,"initialValue":{"arguments":[{"expression":{"id":38187,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4062:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4066:6:45","memberName":"sender","nodeType":"MemberAccess","src":"4062:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38185,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"4041:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":38186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4052:9:45","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42180,"src":"4041:20:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4041:32:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3998:75:45"},{"condition":{"id":38192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4087:11:45","subExpression":{"id":38191,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38181,"src":"4088:10:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38197,"nodeType":"IfStatement","src":"4083:70:45","trueBody":{"id":38196,"nodeType":"Block","src":"4100:53:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38193,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37050,"src":"4121:19:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4121:21:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38195,"nodeType":"RevertStatement","src":"4114:28:45"}]}},{"expression":{"arguments":[{"id":38206,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38167,"src":"4203:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":38200,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38184,"src":"4171:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4178:2:45","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":48573,"src":"4171:9:45","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"id":38202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4181:8:45","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":46569,"src":"4171:18:45","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4171:20:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4163:8:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38198,"name":"address","nodeType":"ElementaryTypeName","src":"4163:8:45","stateMutability":"payable","typeDescriptions":{}}},"id":38204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4163:29:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4193:9:45","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"4163:39:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4163:47:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38208,"nodeType":"ExpressionStatement","src":"4163:47:45"}]},"functionSelector":"d8e25572","implemented":true,"kind":"function","modifiers":[{"id":38170,"kind":"modifierInvocation","modifierName":{"id":38169,"name":"nonReentrant","nameLocations":["3897:12:45"],"nodeType":"IdentifierPath","referencedDeclaration":43298,"src":"3897:12:45"},"nodeType":"ModifierInvocation","src":"3897:12:45"}],"name":"releaseRewardForRelayer","nameLocation":"3848:23:45","parameters":{"id":38168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38167,"mutability":"mutable","name":"amount","nameLocation":"3880:6:45","nodeType":"VariableDeclaration","scope":38210,"src":"3872:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38166,"name":"uint256","nodeType":"ElementaryTypeName","src":"3872:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3871:16:45"},"returnParameters":{"id":38171,"nodeType":"ParameterList","parameters":[],"src":"3910:0:45"},"scope":38359,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38271,"nodeType":"FunctionDefinition","src":"4291:513:45","nodes":[],"body":{"id":38270,"nodeType":"Block","src":"4316:488:45","nodes":[],"statements":[{"assignments":[38215,38218],"declarations":[{"constant":false,"id":38215,"mutability":"mutable","name":"registered","nameLocation":"4332:10:45","nodeType":"VariableDeclaration","scope":38270,"src":"4327:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38214,"name":"bool","nodeType":"ElementaryTypeName","src":"4327:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38218,"mutability":"mutable","name":"subnet","nameLocation":"4359:6:45","nodeType":"VariableDeclaration","scope":38270,"src":"4344:21:45","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38217,"nodeType":"UserDefinedTypeName","pathNode":{"id":38216,"name":"Subnet","nameLocations":["4344:6:45"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"4344:6:45"},"referencedDeclaration":48574,"src":"4344:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38224,"initialValue":{"arguments":[{"expression":{"id":38221,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4390:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4394:6:45","memberName":"sender","nodeType":"MemberAccess","src":"4390:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38219,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"4369:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":38220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4380:9:45","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42180,"src":"4369:20:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4369:32:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"4326:75:45"},{"condition":{"id":38226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4416:11:45","subExpression":{"id":38225,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38215,"src":"4417:10:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38231,"nodeType":"IfStatement","src":"4412:70:45","trueBody":{"id":38230,"nodeType":"Block","src":"4429:53:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38227,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37050,"src":"4450:19:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4450:21:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38229,"nodeType":"RevertStatement","src":"4443:28:45"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38232,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38218,"src":"4553:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4560:10:45","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":48563,"src":"4553:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":38234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4574:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4553:22:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38240,"nodeType":"IfStatement","src":"4549:86:45","trueBody":{"id":38239,"nodeType":"Block","src":"4577:58:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38236,"name":"NotEmptySubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37028,"src":"4598:24:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4598:26:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38238,"nodeType":"RevertStatement","src":"4591:33:45"}]}},{"assignments":[38242],"declarations":[{"constant":false,"id":38242,"mutability":"mutable","name":"stake","nameLocation":"4653:5:45","nodeType":"VariableDeclaration","scope":38270,"src":"4645:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38241,"name":"uint256","nodeType":"ElementaryTypeName","src":"4645:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38245,"initialValue":{"expression":{"id":38243,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38218,"src":"4661:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4668:5:45","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":48559,"src":"4661:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4645:28:45"},{"expression":{"id":38250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38246,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"4684:1:45","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4686:12:45","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":42340,"src":"4684:14:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":38249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4702:1:45","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4684:19:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":38251,"nodeType":"ExpressionStatement","src":"4684:19:45"},{"expression":{"id":38259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4714:36:45","subExpression":{"baseExpression":{"expression":{"id":38252,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"4721:1:45","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4723:7:45","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42271,"src":"4721:9:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$48574_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":38258,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":38254,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38218,"src":"4731:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4738:2:45","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":48573,"src":"4731:9:45","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"id":38256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4741:6:45","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"4731:16:45","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":38257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4731:18:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4721:29:45","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage","typeString":"struct Subnet storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38260,"nodeType":"ExpressionStatement","src":"4714:36:45"},{"expression":{"arguments":[{"id":38267,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38242,"src":"4791:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":38263,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4769:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4773:6:45","memberName":"sender","nodeType":"MemberAccess","src":"4769:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4761:8:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38261,"name":"address","nodeType":"ElementaryTypeName","src":"4761:8:45","stateMutability":"payable","typeDescriptions":{}}},"id":38265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4761:19:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4781:9:45","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"4761:29:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4761:36:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38269,"nodeType":"ExpressionStatement","src":"4761:36:45"}]},"documentation":{"id":38211,"nodeType":"StructuredDocumentation","src":"4223:63:45","text":"@notice kill an existing subnet. It's balance must be empty"},"functionSelector":"41c0e1b5","implemented":true,"kind":"function","modifiers":[],"name":"kill","nameLocation":"4300:4:45","parameters":{"id":38212,"nodeType":"ParameterList","parameters":[],"src":"4304:2:45"},"returnParameters":{"id":38213,"nodeType":"ParameterList","parameters":[],"src":"4316:0:45"},"scope":38359,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38311,"nodeType":"FunctionDefinition","src":"5235:575:45","nodes":[],"body":{"id":38310,"nodeType":"Block","src":"5318:492:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38281,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5332:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5336:5:45","memberName":"value","nodeType":"MemberAccess","src":"5332:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5345:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5332:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38289,"nodeType":"IfStatement","src":"5328:135:45","trueBody":{"id":38288,"nodeType":"Block","src":"5348:115:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38285,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36994,"src":"5430:20:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5430:22:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38287,"nodeType":"RevertStatement","src":"5423:29:45"}]}},{"assignments":[38292],"declarations":[{"constant":false,"id":38292,"mutability":"mutable","name":"crossMsg","nameLocation":"5488:8:45","nodeType":"VariableDeclaration","scope":38310,"src":"5472:24:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38291,"nodeType":"UserDefinedTypeName","pathNode":{"id":38290,"name":"CrossMsg","nameLocations":["5472:8:45"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"5472:8:45"},"referencedDeclaration":48452,"src":"5472:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":38303,"initialValue":{"arguments":[{"id":38295,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38275,"src":"5550:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},{"expression":{"id":38296,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5580:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5584:6:45","memberName":"sender","nodeType":"MemberAccess","src":"5580:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38298,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38278,"src":"5608:2:45","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_calldata_ptr","typeString":"struct FvmAddress calldata"}},{"expression":{"id":38299,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5631:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5635:5:45","memberName":"value","nodeType":"MemberAccess","src":"5631:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":38301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5659:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_calldata_ptr","typeString":"struct FvmAddress calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":38293,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40328,"src":"5499:14:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossMsgHelper_$40328_$","typeString":"type(library CrossMsgHelper)"}},"id":38294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5514:13:45","memberName":"createFundMsg","nodeType":"MemberAccess","referencedDeclaration":40116,"src":"5499:28:45","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$48476_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_CrossMsg_$48452_memory_ptr_$","typeString":"function (struct SubnetID memory,address,struct FvmAddress memory,uint256,uint256) pure returns (struct CrossMsg memory)"}},"id":38302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5542:6:45","5572:6:45","5604:2:45","5624:5:45","5654:3:45"],"names":["subnet","signer","to","value","fee"],"nodeType":"FunctionCall","src":"5499:220:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"5472:247:45"},{"expression":{"arguments":[{"id":38307,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38292,"src":"5794:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":38304,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"5766:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":38306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5777:16:45","memberName":"commitTopDownMsg","nodeType":"MemberAccess","referencedDeclaration":41971,"src":"5766:27:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$48452_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":38308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5766:37:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38309,"nodeType":"ExpressionStatement","src":"5766:37:45"}]},"documentation":{"id":38272,"nodeType":"StructuredDocumentation","src":"4810:420:45","text":"@notice fund() credits the received value to the specified address in the specified child subnet.\n There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero,\n i.e. funding a subnet is free.\n @param subnetId: the destination subnet for the funds.\n @param to: the address to which to credit funds in the destination subnet."},"functionSelector":"18f44b70","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"5244:4:45","parameters":{"id":38279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38275,"mutability":"mutable","name":"subnetId","nameLocation":"5267:8:45","nodeType":"VariableDeclaration","scope":38311,"src":"5249:26:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":38274,"nodeType":"UserDefinedTypeName","pathNode":{"id":38273,"name":"SubnetID","nameLocations":["5249:8:45"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"5249:8:45"},"referencedDeclaration":48557,"src":"5249:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":38278,"mutability":"mutable","name":"to","nameLocation":"5297:2:45","nodeType":"VariableDeclaration","scope":38311,"src":"5277:22:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":38277,"nodeType":"UserDefinedTypeName","pathNode":{"id":38276,"name":"FvmAddress","nameLocations":["5277:10:45"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"5277:10:45"},"referencedDeclaration":48476,"src":"5277:10:45","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"5248:52:45"},"returnParameters":{"id":38280,"nodeType":"ParameterList","parameters":[],"src":"5318:0:45"},"scope":38359,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":38358,"nodeType":"FunctionDefinition","src":"6039:631:45","nodes":[],"body":{"id":38357,"nodeType":"Block","src":"6097:573:45","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38318,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6111:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6115:5:45","memberName":"value","nodeType":"MemberAccess","src":"6111:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6124:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6111:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38326,"nodeType":"IfStatement","src":"6107:138:45","trueBody":{"id":38325,"nodeType":"Block","src":"6127:118:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38322,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36994,"src":"6212:20:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6212:22:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38324,"nodeType":"RevertStatement","src":"6205:29:45"}]}},{"assignments":[38329],"declarations":[{"constant":false,"id":38329,"mutability":"mutable","name":"crossMsg","nameLocation":"6270:8:45","nodeType":"VariableDeclaration","scope":38357,"src":"6254:24:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38328,"nodeType":"UserDefinedTypeName","pathNode":{"id":38327,"name":"CrossMsg","nameLocations":["6254:8:45"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"6254:8:45"},"referencedDeclaration":48452,"src":"6254:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":38341,"initialValue":{"arguments":[{"expression":{"id":38332,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"6335:1:45","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6337:11:45","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42322,"src":"6335:13:45","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},{"expression":{"id":38334,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6370:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6374:6:45","memberName":"sender","nodeType":"MemberAccess","src":"6370:10:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38336,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38315,"src":"6398:2:45","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_calldata_ptr","typeString":"struct FvmAddress calldata"}},{"expression":{"id":38337,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6421:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6425:5:45","memberName":"value","nodeType":"MemberAccess","src":"6421:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":38339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6449:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_calldata_ptr","typeString":"struct FvmAddress calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":38330,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40328,"src":"6281:14:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossMsgHelper_$40328_$","typeString":"type(library CrossMsgHelper)"}},"id":38331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6296:16:45","memberName":"createReleaseMsg","nodeType":"MemberAccess","referencedDeclaration":40073,"src":"6281:31:45","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$48476_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_CrossMsg_$48452_memory_ptr_$","typeString":"function (struct SubnetID memory,address,struct FvmAddress memory,uint256,uint256) pure returns (struct CrossMsg memory)"}},"id":38340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["6327:6:45","6362:6:45","6394:2:45","6414:5:45","6444:3:45"],"names":["subnet","signer","to","value","fee"],"nodeType":"FunctionCall","src":"6281:230:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"6254:257:45"},{"expression":{"arguments":[{"id":38345,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38329,"src":"6551:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":38342,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"6522:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":38344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6533:17:45","memberName":"commitBottomUpMsg","nodeType":"MemberAccess","referencedDeclaration":42137,"src":"6522:28:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$48452_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":38346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6522:38:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38347,"nodeType":"ExpressionStatement","src":"6522:38:45"},{"expression":{"arguments":[{"expression":{"id":38353,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6653:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6657:5:45","memberName":"value","nodeType":"MemberAccess","src":"6653:9:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":38350,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36423,"src":"6624:17:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6616:8:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38348,"name":"address","nodeType":"ElementaryTypeName","src":"6616:8:45","stateMutability":"payable","typeDescriptions":{}}},"id":38351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6616:26:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6643:9:45","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"6616:36:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6616:47:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38356,"nodeType":"ExpressionStatement","src":"6616:47:45"}]},"documentation":{"id":38312,"nodeType":"StructuredDocumentation","src":"5816:218:45","text":"@notice release() burns the received value and releases them from this subnet onto the parent by committing a bottom-up message.\n @param to: the address to which to credit funds in the parent subnet."},"functionSelector":"6b2c1eef","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"6048:7:45","parameters":{"id":38316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38315,"mutability":"mutable","name":"to","nameLocation":"6076:2:45","nodeType":"VariableDeclaration","scope":38358,"src":"6056:22:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":38314,"nodeType":"UserDefinedTypeName","pathNode":{"id":38313,"name":"FvmAddress","nameLocations":["6056:10:45"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"6056:10:45"},"referencedDeclaration":48476,"src":"6056:10:45","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"6055:24:45"},"returnParameters":{"id":38317,"nodeType":"ParameterList","parameters":[],"src":"6097:0:45"},"scope":38359,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":37908,"name":"GatewayActorModifiers","nameLocations":["1049:21:45"],"nodeType":"IdentifierPath","referencedDeclaration":42438,"src":"1049:21:45"},"id":37909,"nodeType":"InheritanceSpecifier","src":"1049:21:45"},{"baseName":{"id":37910,"name":"ReentrancyGuard","nameLocations":["1072:15:45"],"nodeType":"IdentifierPath","referencedDeclaration":43314,"src":"1072:15:45"},"id":37911,"nodeType":"InheritanceSpecifier","src":"1072:15:45"}],"canonicalName":"GatewayManagerFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[38359,43314,42438],"name":"GatewayManagerFacet","nameLocation":"1026:19:45","scope":38360,"usedErrors":[1134,1138,36938,36942,36970,36994,37028,37038,37040,37050,37094,43262]}],"license":"MIT OR Apache-2.0"},"id":45} \ No newline at end of file +{"abi":[{"type":"function","name":"addStake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"fund","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"fundWithToken","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"register","inputs":[{"name":"genesisCircSupply","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"release","inputs":[{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"releaseRewardForRelayer","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"releaseStake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"AlreadyRegisteredSubnet","inputs":[]},{"type":"error","name":"CallFailed","inputs":[]},{"type":"error","name":"CannotReleaseZero","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InsufficientFunds","inputs":[]},{"type":"error","name":"InvalidActorAddress","inputs":[]},{"type":"error","name":"InvalidCrossMsgValue","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NotEmptySubnetCircSupply","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotEnoughFundsToRelease","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UnexpectedSupplySource","inputs":[]}],"bytecode":{"object":"0x60808060405234610016576126cb908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081630517e1aa14610ec75750806318f44b7014610ce157806341c0e1b514610b9257806345f5448514610b015780635a627dbc14610ad15780636b2c1eef146104e0578063d8e25572146103a05763f207564e1461007757600080fd5b6020806003193601126102935760043590601a5460019081810180911161038a5760ff602b54161115610311578234106102ff576100f66100b88434611272565b936100c161127f565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016114ec565b0381855af492831561029f576000936102da575b5061011483612523565b906102c85760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025457908983926101618299979a98969584611551565b0190600052866000208960005b8481106102ab575050505050856002916101ac97554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611491565b03915af492831561029f5760009361026a575b505060185490600160401b8210156102545781018060185581101561023e5760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601c54906102236001600160401b0360881b918360881c16611585565b60881b1667ffffffffffffffff60881b199190911617601c55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d8311610298575b61028281836111ee565b8101031261029357519038806101bf565b600080fd5b503d610278565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b910161016e565b604051631b538cdf60e11b8152600490fd5b6102f89193503d806000833e6102f081836111ee565b810190611469565b913861010a565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025457604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261038660405192839263015538b160e01b84526004840152602483019061124d565b0390fd5b634e487b7160e01b600052601160045260246000fd5b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc576103f43361248b565b90156104aa578161040a600461042b9301611310565b60405180938192632cff562160e11b83528460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561029f5760009261046c575b600084610469876001600160a01b0387166115cd565b55005b90809250813d83116104a3575b61048381836111ee565b810103126102935760009261049a610469926113b2565b91819450610453565b503d610479565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b600319602036820112610293576004356001600160401b038111610293576040828236030112610293573415610abf57604051632e82508d60e21b815260a060048201529160009183918291610555919061053d60a48501611a06565b913360248601528483030160448501526004016118d1565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561029f57600091610a9c575b50601e54908115610a8657816001600160401b034316046001810180911161038a5782810292818404149015171561038a57601c5468ffffffffffffffff006105e46001600160401b038360081c1680606086510152611585565b60081b169068ffffffffffffffff00191617601c558160005260096020526040600020916002830180541560001461069f579260039161062e9460198303610673575b5501611d98565b3447106106615760008080803460635af161064761159d565b501561064f57005b604051633204506f60e01b8152600490fd5b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b031984541617835561069a60018401612408565b610627565b50506003820154601f546001600160401b031603610a75576003820154916106c68361139b565b926106d460405194856111ee565b808452601f196106e38261139b565b0160005b818110610a0d575050604051938460608101106001600160401b03606087011117610254576060850160405261071b61127f565b8552436020860152604085015260005b81811061094b5750604051602081526107508551606060208401526080830190611491565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061091e575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108ac575b509060036107d79201611d98565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b0383116102545760209061082d8484611551565b0190600052602060002060005b83811061088f57505050602083015160028301555060408201515160039091019160005b82811061086e575050505061062e565b8061088961088260019360408601516122a6565b5186611d98565b0161085e565b82516001600160a01b03168183015560209092019160010161083a565b80600d0290600d82040361038a57600382016000526020600020908101905b8181106108d857506107c9565b806108e4600d926123e5565b6108f0600482016123e5565b600060088201556000600982015561090a600a820161239c565b6000600b8201556000600c820155016108cb565b909192939560208061093c600193601f198682030187528a51611ac1565b98019301930191939290610788565b80610a068161095f60019460038801611d42565b5060408901519060ff600c60405192610977846111b8565b604051610983816111d3565b61098c8261235e565b815261099a6004830161235e565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b03191660808201526109db600a83016122ba565b60a0820152600b82015460c0820152845201541615156020820152610a0083836122a6565b526122a6565b500161072b565b602090604051610a1c816111b8565b604051610a28816111d3565b610a3061227f565b8152610a3a61227f565b84820152600060408201526000606082015260006080820152606060a0820152600060c08201528152600083820152828289010152016106e7565b6003610a819201611d98565b61062e565b634e487b7160e01b600052601260045260246000fd5b610ab991503d806000833e610ab181836111ee565b8101906117da565b81610589565b6040516360ec4e6b60e11b8152600490fd5b60003660031901126102935734156102ff57610aec3361248b565b90156104aa57610afd3482546111ab565b9055005b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc57610b553361248b565b90156104aa578054848110610b805761040a600461042b93610b78888795611272565b815501611310565b6040516379b33e7960e01b8152600490fd5b3461029357600036600319011261029357610bac3361248b565b90156104aa576002810154610ccf578054601c546001600160401b03600019818360881c160190811161038a5767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601c55610c3591610c1090600401611310565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610ca0575b50610c9e92600091825252610c986005604060002060008155600060018201556000600282015560006003820155600060048201550161152b565b336115cd565b005b90508281813d8311610cc8575b610cb781836111ee565b810103126102935751610c9e610c5d565b503d610cad565b604051637c67c70160e11b8152600490fd5b600319604036820112610293576004356001600160401b03918282116102935760408183600401933603011261029357602435928311610293576040908336030112610293573415610abf57610d3f610d3a3683611620565b612523565b50156104aa57610d54602061040a3684611620565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610e89575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa90811561029f57600091610e5a575b50516002811015610e4457610e3257610de69160009160405193849283926379185f5960e11b845234916004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4801561029f57610c9e91600091610e17575b50611b5a565b610e2c91503d806000833e610ab181836111ee565b82610e11565b6040516340772cb360e11b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b610e7c915060403d604011610e82575b610e7481836111ee565b8101906116c3565b83610dad565b503d610e6a565b90506020813d8211610ebf575b81610ea3602093836111ee565b81010312610293576040610eb86004926113b2565b9150610d7c565b3d9150610e96565b346102935760031990606036830112610293576004356001600160401b03928382116102935760408183600401933603011261029357602480359185831161029357604090833603011261029357604435947f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009594600186541461119c575060018555610f7a610f563686611620565b60405190632cff562160e11b82528180602094859384600484015288830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091611167575b506040516380875df760e01b815260408160048160018060a01b038096165afa90811561029f57600091611148575b508051600281101561113357600103610e32578051600281101561113357600114611071575b50505050509060009161102460405195869384936379185f5960e11b85526004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af491821561029f576000926104699184916110575750611b5a565b61106b91503d8086833e610ab181836111ee565b84610e11565b8201511691604051828101916323b872dd60e01b835233868301523060448301528960648301526064825260a08201908282109082111761111e57604052516110cc91600091829182875af16110c561159d565b9084612635565b80519182151592836110fd575b5050506110e857808080610ff7565b60405190635274afe760e01b82526004820152fd5b829350918192810103126102935761111591016117cd565b158780806110d9565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b611161915060403d604011610e8257610e7481836111ee565b89610fd1565b90508181813d8311611195575b61117e81836111ee565b810103126102935761118f906113b2565b88610fa2565b503d611174565b6329f745a760e01b8152600490fd5b9190820180921161038a57565b604081019081106001600160401b0382111761025457604052565b60e081019081106001600160401b0382111761025457604052565b90601f801991011681019081106001600160401b0382111761025457604052565b6001600160401b03811161025457601f01601f191660200190565b60005b83811061123d5750506000910152565b818101518382015260200161122d565b906020916112668151809281855285808601910161122a565b601f01601f1916010190565b9190820391821161038a57565b6040519061128c826111b8565b816001600160401b036019541681526040518091601a54808352836020809401601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9260005b868282106112f1575050506112ed925003846111ee565b0152565b85546001600160a01b03168452600195860195899550930192016112d6565b9060405161131d816111b8565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061136857505050506112ed925003846111ee565b83546001600160a01b0316855289955090930192918101918101611350565b51906001600160401b038216820361029357565b6001600160401b0381116102545760051b60200190565b51906001600160a01b038216820361029357565b919060408382031261029357604051926113df846111b8565b836113e982611387565b815260209182810151906001600160401b03821161029357019280601f850112156102935783516114198161139b565b9461142760405196876111ee565b818652848087019260051b8201019283116102935784809101915b83831061145157505050500152565b819061145c846113b2565b8152019101908490611442565b906020828203126102935781516001600160401b0381116102935761148e92016113c6565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106114cf575050505090565b83516001600160a01b0316855293810193928101926001016114c1565b90611504602091949394604084526040840190611491565b6001600160a01b03909416910152565b81811061151f575050565b60008155600101611514565b8054600082558061153a575050565b61154f91600052602060002090810190611514565b565b90600160401b81116102545781549080835581811061156f57505050565b61154f9260005260206000209182019101611514565b9060016001600160401b038093160191821161038a57565b3d156115c8573d906115ae8261120f565b916115bc60405193846111ee565b82523d6000602084013e565b606090565b814710610661576000918291829182916001600160a01b03165af16115f061159d565b501561064f57565b35906001600160401b038216820361029357565b35906001600160a01b038216820361029357565b91906040838203126102935760405192611639846111b8565b83611643826115f8565b815260209182810135906001600160401b03821161029357019280601f850112156102935783356116738161139b565b9461168160405196876111ee565b818652848087019260051b8201019283116102935784809101915b8383106116ab57505050500152565b81906116b68461160c565b815201910190849061169c565b9081604091031261029357604051906116db826111b8565b805160028110156102935782526116f4906020016113b2565b602082015290565b81601f820112156102935780516117128161120f565b9261172060405194856111ee565b818452602082840101116102935761148e916020808501910161122a565b91906040838203126102935760405192611757846111b8565b838151916001600160401b039283811161029357846117779183016113c6565b82526020810151908382116102935701604081850312610293576040519361179e856111b8565b815160ff811681036102935785526020820151938411610293576020936117c592016116fc565b828401520152565b5190811515820361029357565b906020828203126102935781516001600160401b03928382116102935701916040838303126102935760405192611810846111b8565b80518281116102935781019260e0848203126102935760405190611833826111d3565b8451848111610293578161184891870161173e565b82526020850151848111610293578161186291870161173e565b60208301526040850151604083015261187d60608601611387565b606083015260808501516001600160e01b03198116810361029357608083015260a085015193841161029357846118bd60c0926020966116f498016116fc565b60a0840152015160c08201528452016117cd565b803560ff81168091036102935782526020810135601e1982360301811215610293570190602082359201916001600160401b038111610293578036038313610293578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b929094939460a0845260e08401926001600160401b03938461195d846115f8565b1660a087015260209283810135601e19823603018112156102935701908382359201958211610293578160051b36038613610293578190604060c0890152526101008601949060005b8181106119e1575050506001600160a01b031690840152828203604084015260009260809290916119d791906118d1565b9460608201520152565b9091958480600192838060a01b036119f88b61160c565b1681520197019291016119a6565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611a65575050505090565b83546001600160a01b031685529384019360019384019390910190611a57565b6040602061148e9381611a9f855185845285840190611491565b940151908281860391015260ff8151168452015191816020820152019061124d565b906020808351936040845260c0611b47611ae8875160e06040890152610120880190611a85565b611b038589015191603f1992838a83030160608b0152611a85565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015261124d565b9501516101008501520151151591015290565b611bb760209182815101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604091611b9f83519263089032d560e01b84528460048501526044840190611491565b60031983820301602484015282806000978893611a06565b0381845af4918215611d38578592611d1c575b50611bd482612523565b9015611d0b57918691836003611c4896950180546001600160401b03611c028183168060608d510152611585565b16906001600160401b031916179055611c256002868951015192019182546111ab565b9055835180809681946304e384ff60e21b83528660048401526024830190611491565b03915af4918215611d01578492611c9f575b507f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969350611c9a905192839286845260018060a01b031695830190611ac1565b0390a2565b915091928482813d8311611cfa575b611cb881836111ee565b81010312611cf7575090611c9a611cf07f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709694936113b2565b9190611c5a565b80fd5b503d611cae565b81513d86823e3d90fd5b8351630e991abd60e41b8152600490fd5b611d319192503d8087833e6102f081836111ee565b9038611bca565b83513d87823e3d90fd5b805482101561023e57600052600d602060002091020190600090565b90600182811c92168015611d8e575b6020831014611d7857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d6d565b8054600160401b81101561025457611db7906001928382018155611d42565b91909161224f578251918251928351926001600160401b03808551166001600160401b0319908186541617855582850192602080970151805190848211610254578890611e048388611551565b01600095865288862083875b848110612234575050505050866002870198015160ff8151169860ff19998a8254161790556003928884890192015191825186811161214e5780611e548354611d5e565b94898d601f9788808211612207575b505050508c9086831160011461219c578a92612191575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a019101519081519187831161217d578b90611ec38484611551565b019088528a882085895b84811061216257505050505088600689019101519060ff8251168b825416179055886007890191015180519086821161214e578190611f0c8454611d5e565b8c868211612121575b50508b908583116001146120c25789926120b7575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a08701519081519586116120a357611f9c8754611d5e565b8a84821161206c575b505089928611600114611ffd57938560ff9a999794819460c09894600c9b9895611ff2575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611fca565b9294939190601f1985168785528a8520945b818110612057575092859260ff9b9a989592600c9a9760c099961061203d575b50505050811b019055611fda565b01519060f884600019921b161c191690553880808061202f565b82840151865594870194928b01928b0161200f565b612093918984528582852091818b0160051c8301938b1061209a575b0160051c0190611514565b388a611fa5565b92508192612088565b634e487b7160e01b81526041600452602490fd5b015190503880611f2a565b848a528c8a208794509190601f1984168b8f5b82821061210a57505084116120f2575b505050811b019055611f3c565b015160001983891b60f8161c191690553880806120e5565b8385015186558a979095019493840193018f6120d5565b61214791868c5287828d209181870160051c830193871061209a570160051c0190611514565b388c611f15565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611ecd565b634e487b7160e01b89526041600452602489fd5b015190503880611e7a565b879350908d91601f198416868d52838d20938d905b8282106121e657505084116121ce575b505050811b019055611e8c565b0151600019838a1b60f8161c191690553880806121c1565b91929395968291958786015181550195019301908f918a96959493926121b1565b82848961222b9652209181870160051c830193871061209a570160051c0190611514565b898d3888611e63565b83516001600160a01b031683820155928b0192859101611e10565b634e487b7160e01b600052600060045260246000fd5b60405190612272826111b8565b6060602083600081520152565b6040519061228c826111b8565b81612295612265565b815260206122a1612265565b910152565b805182101561023e5760209160051b010190565b90604051918260008254926122ce84611d5e565b90818452600194858116908160001461233b57506001146122f8575b505061154f925003836111ee565b9093915060005260209081600020936000915b81831061232357505061154f935082010138806122ea565b8554888401850152948501948794509183019161230b565b91505061154f94506020925060ff191682840152151560051b82010138806122ea565b906040519161236c836111b8565b60208361237883611310565b81526117c560036040519461238c866111b8565b60ff6002820154168652016122ba565b6123a68154611d5e565b90816123b0575050565b81601f600093116001146123c2575055565b9080839182526123e1601f60208420940160051c840160018501611514565b5555565b600361154f91600081556123fb6001820161152b565b600060028201550161239c565b601a811461248857601a54906001600160401b0382116102545761242c8282611551565b6000908152602081207f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e80545b848410612467575050505050565b600191820180546001600160a01b0390921684860155939091019290612459565b50565b6001600160a01b038116156125115760006124c3916124a861127f565b60405163aa5106cb60e01b81529384928392600484016114ec565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561029f576124f4916000916124f8575b50612523565b9091565b61250b913d8091833e6102f081836111ee565b386124ee565b6040516370e4510960e01b8152600490fd5b61256173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611491565b0381865af490811561029f57600091612606575b50906125b891600052600081528060406000209361259560048601611310565b906040518080968194630c133d1360e31b83528660048401526024830190611491565b03915af490811561029f576000916125d2575b5090501591565b82813d83116125ff575b6125e681836111ee565b81010312611cf757506125f8906117cd565b80386125cb565b503d6125dc565b908282813d831161262e575b61261c81836111ee565b81010312611cf75750516125b8612575565b503d612612565b901561267357815115612646575090565b803b15612651575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561268357805190602001fd5b604051630a12f52160e11b8152600490fdfea2646970667358221220dd92a67b67699877016ad359a138b85ca6f355bae9c3a9f9e69e9c5d927b8a0264736f6c63430008130033","sourceMap":"1328:7946:47:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":1409,"length":20},{"start":3590,"length":20},{"start":4164,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":226,"length":20},{"start":1099,"length":20},{"start":3157,"length":20},{"start":3444,"length":20},{"start":3994,"length":20},{"start":7044,"length":20},{"start":9443,"length":20},{"start":9540,"length":20}]}}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c9081630517e1aa14610ec75750806318f44b7014610ce157806341c0e1b514610b9257806345f5448514610b015780635a627dbc14610ad15780636b2c1eef146104e0578063d8e25572146103a05763f207564e1461007757600080fd5b6020806003193601126102935760043590601a5460019081810180911161038a5760ff602b54161115610311578234106102ff576100f66100b88434611272565b936100c161127f565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016114ec565b0381855af492831561029f576000936102da575b5061011483612523565b906102c85760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025457908983926101618299979a98969584611551565b0190600052866000208960005b8481106102ab575050505050856002916101ac97554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611491565b03915af492831561029f5760009361026a575b505060185490600160401b8210156102545781018060185581101561023e5760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601c54906102236001600160401b0360881b918360881c16611585565b60881b1667ffffffffffffffff60881b199190911617601c55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d8311610298575b61028281836111ee565b8101031261029357519038806101bf565b600080fd5b503d610278565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b910161016e565b604051631b538cdf60e11b8152600490fd5b6102f89193503d806000833e6102f081836111ee565b810190611469565b913861010a565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025457604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261038660405192839263015538b160e01b84526004840152602483019061124d565b0390fd5b634e487b7160e01b600052601160045260246000fd5b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc576103f43361248b565b90156104aa578161040a600461042b9301611310565b60405180938192632cff562160e11b83528460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561029f5760009261046c575b600084610469876001600160a01b0387166115cd565b55005b90809250813d83116104a3575b61048381836111ee565b810103126102935760009261049a610469926113b2565b91819450610453565b503d610479565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b600319602036820112610293576004356001600160401b038111610293576040828236030112610293573415610abf57604051632e82508d60e21b815260a060048201529160009183918291610555919061053d60a48501611a06565b913360248601528483030160448501526004016118d1565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561029f57600091610a9c575b50601e54908115610a8657816001600160401b034316046001810180911161038a5782810292818404149015171561038a57601c5468ffffffffffffffff006105e46001600160401b038360081c1680606086510152611585565b60081b169068ffffffffffffffff00191617601c558160005260096020526040600020916002830180541560001461069f579260039161062e9460198303610673575b5501611d98565b3447106106615760008080803460635af161064761159d565b501561064f57005b604051633204506f60e01b8152600490fd5b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b031984541617835561069a60018401612408565b610627565b50506003820154601f546001600160401b031603610a75576003820154916106c68361139b565b926106d460405194856111ee565b808452601f196106e38261139b565b0160005b818110610a0d575050604051938460608101106001600160401b03606087011117610254576060850160405261071b61127f565b8552436020860152604085015260005b81811061094b5750604051602081526107508551606060208401526080830190611491565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061091e575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108ac575b509060036107d79201611d98565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b0383116102545760209061082d8484611551565b0190600052602060002060005b83811061088f57505050602083015160028301555060408201515160039091019160005b82811061086e575050505061062e565b8061088961088260019360408601516122a6565b5186611d98565b0161085e565b82516001600160a01b03168183015560209092019160010161083a565b80600d0290600d82040361038a57600382016000526020600020908101905b8181106108d857506107c9565b806108e4600d926123e5565b6108f0600482016123e5565b600060088201556000600982015561090a600a820161239c565b6000600b8201556000600c820155016108cb565b909192939560208061093c600193601f198682030187528a51611ac1565b98019301930191939290610788565b80610a068161095f60019460038801611d42565b5060408901519060ff600c60405192610977846111b8565b604051610983816111d3565b61098c8261235e565b815261099a6004830161235e565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b03191660808201526109db600a83016122ba565b60a0820152600b82015460c0820152845201541615156020820152610a0083836122a6565b526122a6565b500161072b565b602090604051610a1c816111b8565b604051610a28816111d3565b610a3061227f565b8152610a3a61227f565b84820152600060408201526000606082015260006080820152606060a0820152600060c08201528152600083820152828289010152016106e7565b6003610a819201611d98565b61062e565b634e487b7160e01b600052601260045260246000fd5b610ab991503d806000833e610ab181836111ee565b8101906117da565b81610589565b6040516360ec4e6b60e11b8152600490fd5b60003660031901126102935734156102ff57610aec3361248b565b90156104aa57610afd3482546111ab565b9055005b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc57610b553361248b565b90156104aa578054848110610b805761040a600461042b93610b78888795611272565b815501611310565b6040516379b33e7960e01b8152600490fd5b3461029357600036600319011261029357610bac3361248b565b90156104aa576002810154610ccf578054601c546001600160401b03600019818360881c160190811161038a5767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601c55610c3591610c1090600401611310565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610ca0575b50610c9e92600091825252610c986005604060002060008155600060018201556000600282015560006003820155600060048201550161152b565b336115cd565b005b90508281813d8311610cc8575b610cb781836111ee565b810103126102935751610c9e610c5d565b503d610cad565b604051637c67c70160e11b8152600490fd5b600319604036820112610293576004356001600160401b03918282116102935760408183600401933603011261029357602435928311610293576040908336030112610293573415610abf57610d3f610d3a3683611620565b612523565b50156104aa57610d54602061040a3684611620565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610e89575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa90811561029f57600091610e5a575b50516002811015610e4457610e3257610de69160009160405193849283926379185f5960e11b845234916004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4801561029f57610c9e91600091610e17575b50611b5a565b610e2c91503d806000833e610ab181836111ee565b82610e11565b6040516340772cb360e11b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b610e7c915060403d604011610e82575b610e7481836111ee565b8101906116c3565b83610dad565b503d610e6a565b90506020813d8211610ebf575b81610ea3602093836111ee565b81010312610293576040610eb86004926113b2565b9150610d7c565b3d9150610e96565b346102935760031990606036830112610293576004356001600160401b03928382116102935760408183600401933603011261029357602480359185831161029357604090833603011261029357604435947f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009594600186541461119c575060018555610f7a610f563686611620565b60405190632cff562160e11b82528180602094859384600484015288830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091611167575b506040516380875df760e01b815260408160048160018060a01b038096165afa90811561029f57600091611148575b508051600281101561113357600103610e32578051600281101561113357600114611071575b50505050509060009161102460405195869384936379185f5960e11b85526004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af491821561029f576000926104699184916110575750611b5a565b61106b91503d8086833e610ab181836111ee565b84610e11565b8201511691604051828101916323b872dd60e01b835233868301523060448301528960648301526064825260a08201908282109082111761111e57604052516110cc91600091829182875af16110c561159d565b9084612635565b80519182151592836110fd575b5050506110e857808080610ff7565b60405190635274afe760e01b82526004820152fd5b829350918192810103126102935761111591016117cd565b158780806110d9565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b611161915060403d604011610e8257610e7481836111ee565b89610fd1565b90508181813d8311611195575b61117e81836111ee565b810103126102935761118f906113b2565b88610fa2565b503d611174565b6329f745a760e01b8152600490fd5b9190820180921161038a57565b604081019081106001600160401b0382111761025457604052565b60e081019081106001600160401b0382111761025457604052565b90601f801991011681019081106001600160401b0382111761025457604052565b6001600160401b03811161025457601f01601f191660200190565b60005b83811061123d5750506000910152565b818101518382015260200161122d565b906020916112668151809281855285808601910161122a565b601f01601f1916010190565b9190820391821161038a57565b6040519061128c826111b8565b816001600160401b036019541681526040518091601a54808352836020809401601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9260005b868282106112f1575050506112ed925003846111ee565b0152565b85546001600160a01b03168452600195860195899550930192016112d6565b9060405161131d816111b8565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061136857505050506112ed925003846111ee565b83546001600160a01b0316855289955090930192918101918101611350565b51906001600160401b038216820361029357565b6001600160401b0381116102545760051b60200190565b51906001600160a01b038216820361029357565b919060408382031261029357604051926113df846111b8565b836113e982611387565b815260209182810151906001600160401b03821161029357019280601f850112156102935783516114198161139b565b9461142760405196876111ee565b818652848087019260051b8201019283116102935784809101915b83831061145157505050500152565b819061145c846113b2565b8152019101908490611442565b906020828203126102935781516001600160401b0381116102935761148e92016113c6565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106114cf575050505090565b83516001600160a01b0316855293810193928101926001016114c1565b90611504602091949394604084526040840190611491565b6001600160a01b03909416910152565b81811061151f575050565b60008155600101611514565b8054600082558061153a575050565b61154f91600052602060002090810190611514565b565b90600160401b81116102545781549080835581811061156f57505050565b61154f9260005260206000209182019101611514565b9060016001600160401b038093160191821161038a57565b3d156115c8573d906115ae8261120f565b916115bc60405193846111ee565b82523d6000602084013e565b606090565b814710610661576000918291829182916001600160a01b03165af16115f061159d565b501561064f57565b35906001600160401b038216820361029357565b35906001600160a01b038216820361029357565b91906040838203126102935760405192611639846111b8565b83611643826115f8565b815260209182810135906001600160401b03821161029357019280601f850112156102935783356116738161139b565b9461168160405196876111ee565b818652848087019260051b8201019283116102935784809101915b8383106116ab57505050500152565b81906116b68461160c565b815201910190849061169c565b9081604091031261029357604051906116db826111b8565b805160028110156102935782526116f4906020016113b2565b602082015290565b81601f820112156102935780516117128161120f565b9261172060405194856111ee565b818452602082840101116102935761148e916020808501910161122a565b91906040838203126102935760405192611757846111b8565b838151916001600160401b039283811161029357846117779183016113c6565b82526020810151908382116102935701604081850312610293576040519361179e856111b8565b815160ff811681036102935785526020820151938411610293576020936117c592016116fc565b828401520152565b5190811515820361029357565b906020828203126102935781516001600160401b03928382116102935701916040838303126102935760405192611810846111b8565b80518281116102935781019260e0848203126102935760405190611833826111d3565b8451848111610293578161184891870161173e565b82526020850151848111610293578161186291870161173e565b60208301526040850151604083015261187d60608601611387565b606083015260808501516001600160e01b03198116810361029357608083015260a085015193841161029357846118bd60c0926020966116f498016116fc565b60a0840152015160c08201528452016117cd565b803560ff81168091036102935782526020810135601e1982360301811215610293570190602082359201916001600160401b038111610293578036038313610293578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b929094939460a0845260e08401926001600160401b03938461195d846115f8565b1660a087015260209283810135601e19823603018112156102935701908382359201958211610293578160051b36038613610293578190604060c0890152526101008601949060005b8181106119e1575050506001600160a01b031690840152828203604084015260009260809290916119d791906118d1565b9460608201520152565b9091958480600192838060a01b036119f88b61160c565b1681520197019291016119a6565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611a65575050505090565b83546001600160a01b031685529384019360019384019390910190611a57565b6040602061148e9381611a9f855185845285840190611491565b940151908281860391015260ff8151168452015191816020820152019061124d565b906020808351936040845260c0611b47611ae8875160e06040890152610120880190611a85565b611b038589015191603f1992838a83030160608b0152611a85565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015261124d565b9501516101008501520151151591015290565b611bb760209182815101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604091611b9f83519263089032d560e01b84528460048501526044840190611491565b60031983820301602484015282806000978893611a06565b0381845af4918215611d38578592611d1c575b50611bd482612523565b9015611d0b57918691836003611c4896950180546001600160401b03611c028183168060608d510152611585565b16906001600160401b031916179055611c256002868951015192019182546111ab565b9055835180809681946304e384ff60e21b83528660048401526024830190611491565b03915af4918215611d01578492611c9f575b507f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969350611c9a905192839286845260018060a01b031695830190611ac1565b0390a2565b915091928482813d8311611cfa575b611cb881836111ee565b81010312611cf7575090611c9a611cf07f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709694936113b2565b9190611c5a565b80fd5b503d611cae565b81513d86823e3d90fd5b8351630e991abd60e41b8152600490fd5b611d319192503d8087833e6102f081836111ee565b9038611bca565b83513d87823e3d90fd5b805482101561023e57600052600d602060002091020190600090565b90600182811c92168015611d8e575b6020831014611d7857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d6d565b8054600160401b81101561025457611db7906001928382018155611d42565b91909161224f578251918251928351926001600160401b03808551166001600160401b0319908186541617855582850192602080970151805190848211610254578890611e048388611551565b01600095865288862083875b848110612234575050505050866002870198015160ff8151169860ff19998a8254161790556003928884890192015191825186811161214e5780611e548354611d5e565b94898d601f9788808211612207575b505050508c9086831160011461219c578a92612191575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a019101519081519187831161217d578b90611ec38484611551565b019088528a882085895b84811061216257505050505088600689019101519060ff8251168b825416179055886007890191015180519086821161214e578190611f0c8454611d5e565b8c868211612121575b50508b908583116001146120c25789926120b7575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a08701519081519586116120a357611f9c8754611d5e565b8a84821161206c575b505089928611600114611ffd57938560ff9a999794819460c09894600c9b9895611ff2575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611fca565b9294939190601f1985168785528a8520945b818110612057575092859260ff9b9a989592600c9a9760c099961061203d575b50505050811b019055611fda565b01519060f884600019921b161c191690553880808061202f565b82840151865594870194928b01928b0161200f565b612093918984528582852091818b0160051c8301938b1061209a575b0160051c0190611514565b388a611fa5565b92508192612088565b634e487b7160e01b81526041600452602490fd5b015190503880611f2a565b848a528c8a208794509190601f1984168b8f5b82821061210a57505084116120f2575b505050811b019055611f3c565b015160001983891b60f8161c191690553880806120e5565b8385015186558a979095019493840193018f6120d5565b61214791868c5287828d209181870160051c830193871061209a570160051c0190611514565b388c611f15565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611ecd565b634e487b7160e01b89526041600452602489fd5b015190503880611e7a565b879350908d91601f198416868d52838d20938d905b8282106121e657505084116121ce575b505050811b019055611e8c565b0151600019838a1b60f8161c191690553880806121c1565b91929395968291958786015181550195019301908f918a96959493926121b1565b82848961222b9652209181870160051c830193871061209a570160051c0190611514565b898d3888611e63565b83516001600160a01b031683820155928b0192859101611e10565b634e487b7160e01b600052600060045260246000fd5b60405190612272826111b8565b6060602083600081520152565b6040519061228c826111b8565b81612295612265565b815260206122a1612265565b910152565b805182101561023e5760209160051b010190565b90604051918260008254926122ce84611d5e565b90818452600194858116908160001461233b57506001146122f8575b505061154f925003836111ee565b9093915060005260209081600020936000915b81831061232357505061154f935082010138806122ea565b8554888401850152948501948794509183019161230b565b91505061154f94506020925060ff191682840152151560051b82010138806122ea565b906040519161236c836111b8565b60208361237883611310565b81526117c560036040519461238c866111b8565b60ff6002820154168652016122ba565b6123a68154611d5e565b90816123b0575050565b81601f600093116001146123c2575055565b9080839182526123e1601f60208420940160051c840160018501611514565b5555565b600361154f91600081556123fb6001820161152b565b600060028201550161239c565b601a811461248857601a54906001600160401b0382116102545761242c8282611551565b6000908152602081207f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e80545b848410612467575050505050565b600191820180546001600160a01b0390921684860155939091019290612459565b50565b6001600160a01b038116156125115760006124c3916124a861127f565b60405163aa5106cb60e01b81529384928392600484016114ec565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561029f576124f4916000916124f8575b50612523565b9091565b61250b913d8091833e6102f081836111ee565b386124ee565b6040516370e4510960e01b8152600490fd5b61256173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611491565b0381865af490811561029f57600091612606575b50906125b891600052600081528060406000209361259560048601611310565b906040518080968194630c133d1360e31b83528660048401526024830190611491565b03915af490811561029f576000916125d2575b5090501591565b82813d83116125ff575b6125e681836111ee565b81010312611cf757506125f8906117cd565b80386125cb565b503d6125dc565b908282813d831161262e575b61261c81836111ee565b81010312611cf75750516125b8612575565b503d612612565b901561267357815115612646575090565b803b15612651575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561268357805190602001fd5b604051630a12f52160e11b8152600490fdfea2646970667358221220dd92a67b67699877016ad359a138b85ca6f355bae9c3a9f9e69e9c5d927b8a0264736f6c63430008130033","sourceMap":"1328:7946:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2043:19;1328:7946;;;;;;;;;;;;2077:14;1328:7946;;-1:-1:-1;2043:48:47;2039:132;;2185:9;;:29;2181:83;;2360:40;2294:29;2185:9;;2294:29;:::i;:::-;1288:37;;;:::i;:::-;2360:28;1328:7946;2360:28;1328:7946;;;1288:37;;;;;;;2360:40;;2389:10;2360:40;1328:7946;2360:40;;;:::i;:::-;;;;;;;;;;;1328:7946;2360:40;;;1328:7946;2454:30;;;;:::i;:::-;2495:73;;;1328:7946;2578:9;;1288:37;-1:-1:-1;;;;;1288:37:47;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1328:7946;1288:37;;1328:7946;1288:37;;1328:7946;1288:37;;;;;;;;;;;;2687:17;1288:37;;;;2665:12;2643:19;;;1288:37;2687:17;1288:37;1328:7946;;1288:37;;;;;;;;2753:17;;;1328:7946;2753:17;;1288:37;;;;;;:::i;:::-;2753:17;;;;;;;;;1328:7946;2753:17;;;1288:37;;;2735:12;1288:37;;-1:-1:-1;;;1288:37:47;;;;;;;;2735:12;1288:37;;;;;;2735:12;1328:7946;1288:37;;;;2782:14;1288:37;;2782:19;-1:-1:-1;;;;;1288:37:47;;;;;;;2782:19;:::i;:::-;1288:37;;;-1:-1:-1;;;;1288:37:47;;;;;2782:14;1288:37;1328:7946;1288:37;1328:7946;;;;1288:37;;1328:7946;1288:37;;1328:7946;1288:37;;1328:7946;;;;;;;;1288:37;1328:7946;;2753:17;;;;;;;;;;;;;;;;;:::i;:::-;;;1288:37;;;;;2753:17;;;;;1288:37;1328:7946;;;2753:17;;;;;;1328:7946;;1288:37;1328:7946;1288:37;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;2495:73;1328:7946;;-1:-1:-1;;;2532:25:47;;1328:7946;;2532:25;2360:40;;;;;;;1328:7946;2360:40;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;2181:83;1328:7946;;-1:-1:-1;;;2237:16:47;;1328:7946;;2237:16;2039:132;1328:7946;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;;;-1:-1:-1;;;1328:7946:47;;;;1288:37;1328:7946;;2114:46;;;;;;;;1328:7946;2114:46;;1288:37;;;;;;:::i;:::-;2114:46;;;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;247:48:68;;1328:7946:47;;;;582:20:68;578:50;;1328:7946:47;1288:37;;4372:11;;4368:68;;4489:32;4510:10;4489:32;:::i;:::-;4535:11;;4531:70;;4619:9;1288:37;1328:7946;1288:37;4619:9;;1288:37;:::i;:::-;1328:7946;;1288:37;;;;;;;4619:20;;;1328:7946;4619:20;;1288:37;;;;;;:::i;:::-;4619:20;:18;;:20;;;;;;;1328:7946;4619:20;;;1328:7946;;1288:37;4651:6;1288:37;-1:-1:-1;;;;;1288:37:47;;4651:6;:::i;:::-;1288:37;1328:7946;4619:20;;;;;;;;;;;;;;;;:::i;:::-;;;1328:7946;;;;;1288:37;;4651:6;1288:37;;:::i;:::-;4619:20;;;;;;;;;;;4531:70;1328:7946;;-1:-1:-1;;;4569:21:47;;1328:7946;;4569:21;4368:68;1328:7946;;-1:-1:-1;;;4406:19:47;;1328:7946;;4406:19;578:50:68;1328:7946:47;;-1:-1:-1;;;611:17:68;;1328:7946:47;;611:17:68;1328:7946:47;-1:-1:-1;;1328:7946:47;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;8713:9;:14;8709:138;;1328:7946;;-1:-1:-1;;;8883:230:47;;1328:7946;;8883:230;;1328:7946;;;;;;;;;;;;;;;;:::i;:::-;8972:10;;1328:7946;;;1288:37;1328:7946;;;;;;;;;;;:::i;:::-;8713:9;1328:7946;;;;;;;;;8883:230;:14;;:230;;;;;;;1328:7946;8883:230;;;1328:7946;;10399:24:63;1328:7946:47;;;;;;10385:12:63;-1:-1:-1;;;;;10385:12:63;1288:37:47;1328:7946;13838:1:63;1328:7946:47;;;;;;;1288:37;;;;;;;;;;;;;;10504:15:63;1328:7946:47;;10529:20:63;-1:-1:-1;;;;;1328:7946:47;;;1288:37;10475:20:63;1328:7946:47;10475:20:63;;:26;1288:37:47;10529:20:63;:::i;:::-;1328:7946:47;;;;;;;;10504:15:63;1328:7946:47;;;;2943:20:63;1328:7946:47;;;;;2989:17:63;;;;1328:7946:47;;2989:22:63;10700:1745;2989:17;;;1328:7946:47;;;10875:29:63;1328:7946:47;8937:13;1328:7946;;;;10700:1745:63;1288:37:47;10875:10:63;:29;:::i;:::-;8713:9:47;13330:21:1;:31;13326:63;;1328:7946:47;8713:9;;;;1288:37;13419:35:1;;;;:::i;:::-;;13468:8;13464:33;;1328:7946:47;13464:33:1;1328:7946:47;;-1:-1:-1;;;13485:12:1;;1328:7946:47;;13485:12:1;13326:63;1328:7946:47;;-1:-1:-1;;;13370:19:1;;1328:7946:47;;13370:19:1;1328:7946:47;-1:-1:-1;;;;;8937:13:47;1288:37;;-1:-1:-1;;;;;1288:37:47;;;;;;;1328:7946;13838:1:63;1328:7946:47;;;:::i;:::-;;;10700:1745:63;-1:-1:-1;;1328:7946:47;11079:10:63;;1328:7946:47;11100:25:63;1288:37:47;-1:-1:-1;;;;;1288:37:47;11079:46:63;1328:7946:47;;;11079:10:63;;1328:7946:47;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1328:7946:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;1288:37;;:::i;:::-;;;10385:12:63;1328:7946:47;11298:185:63;;1288:37:47;1328:7946;11298:185:63;;1288:37:47;1328:7946;11572:13:63;;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;:::i;:::-;11298:185:63;1328:7946:47;11298:185:63;;1328:7946:47;;;;;;11298:185:63;;1328:7946:47;;;;;;;;;;;;1288:37;;;;;1328:7946;1288:37;;1328:7946;;;;;;;;;1288:37;;1328:7946;;;;;;;;;10385:12:63;;;;;;11843:38;10385:12;;11843:38;;;;1328:7946:47;;11079:10:63;;1328:7946:47;;;;;11079:10:63;;1328:7946:47;12121:29:63;11079:10;;12121:29;:::i;:::-;1328:7946:47;11298:185:63;;1328:7946:47;;;2943:20:63;1328:7946:47;;;;;4242:14:63;;-1:-1:-1;;;;;1288:37:47;;;-1:-1:-1;;;;;1288:37:47;;;;;;;1328:7946;13838:1:63;1288:37:47;;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;1328:7946;1288:37;;;;;:::i;:::-;;;1328:7946;1288:37;1328:7946;;1288:37;1328:7946;1288:37;;;;;;-1:-1:-1;;;1328:7946:47;11298:185:63;;1328:7946:47;2989:17:63;4266:13;;1288:37:47;-1:-1:-1;1328:7946:47;11298:185:63;;4330:10;1288:37:47;1328:7946;4586:6:63;;;;1328:7946:47;4373:13:63;;;;;;11075:1360;;;;10700:1745;;4362:9;11298:185;4586:26;4598:13;13838:1;11298:185;1328:7946:47;11298:185:63;;4598:10;:13;:::i;:::-;;4586:26;;:::i;:::-;1328:7946:47;4362:9:63;;1288:37:47;;;-1:-1:-1;;;;;1288:37:47;;;;;1328:7946;1288:37;;;;13838:1:63;1288:37:47;;;1328:7946;1288:37;1328:7946;1288:37;;1328:7946;1288:37;;;;;1328:7946;11079:10:63;;1328:7946:47;1288:37;1328:7946;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;1288:37;1328:7946;2943:20:63;1328:7946:47;;;;;;;;:::i;:::-;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;13838:1:63;1328:7946:47;;;;;;;;;;;;:::i;:::-;1288:37;;1328:7946;;;;;;;;;;11561:9:63;11079:10;11610:32;11079:10;11629:13;13838:1;11079:10;1328:7946:47;11079:10:63;;11629:13;:::i;:::-;11298:185;1328:7946:47;11298:185:63;;11610:13;1328:7946:47;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::i;:::-;1288:37;;1328:7946;;;;;:::i;:::-;;;;1288:37;1328:7946;;;;;;;1288:37;2943:20:63;1328:7946:47;;1288:37;-1:-1:-1;;;;;1288:37:47;;1328:7946;;;1288:37;1328:7946;1288:37;-1:-1:-1;;;;;;1288:37:47;1328:7946;;;;;;;;;:::i;:::-;;;;1288:37;1328:7946;;;;;;;1288:37;;;1328:7946;;;;;;;;;11610:32:63;;;;:::i;:::-;;;:::i;:::-;;1328:7946:47;11561:9:63;;1328:7946:47;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11075:1360:63;1328:7946:47;12391:29:63;11079:10;;12391:29;:::i;:::-;10700:1745;;1328:7946:47;;;;;;;;;;;;8883:230;;;;;;1328:7946;8883:230;;;;;;:::i;:::-;;;;;:::i;:::-;;;;8709:138;1328:7946;;-1:-1:-1;;;8814:22:47;;1328:7946;;8814:22;1328:7946;;;-1:-1:-1;;1328:7946:47;;;;2930:9;:14;2926:68;;3047:32;3068:10;3047:32;:::i;:::-;3094:11;;3090:70;;3170:25;2930:9;1328:7946;;3170:25;:::i;:::-;1288:37;;1328:7946;;;;;;;;;;;;;;;;247:48:68;;1328:7946:47;;;;582:20:68;578:50;;1328:7946:47;1288:37;;3476:11;;3472:68;;3593:32;3614:10;3593:32;:::i;:::-;3640:11;;3636:70;;1328:7946;;3719:21;;;3715:84;;1288:37;1328:7946;1288:37;3809:22;;;;;;:::i;:::-;1288:37;;3850:9;1288:37;:::i;3715:84::-;1328:7946;;-1:-1:-1;;;3763:25:47;;1328:7946;;3763:25;1328:7946;;;;;;-1:-1:-1;;1328:7946:47;;;;4839:32;4860:10;4839:32;:::i;:::-;4886:11;;4882:70;;5023:17;;;1328:7946;5019:86;;1328:7946;;5154:14;1288:37;-1:-1:-1;;;;;1328:7946:47;;1288:37;;;;;1328:7946;;;;;;-1:-1:-1;;;;1288:37:47;;;;;;;;-1:-1:-1;;;1288:37:47;;5154:14;1288:37;;;;;1328:7946;5201:9;1288:37;:::i;:::-;1328:7946;;1288:37;;;;5201:18;;;;;;;;;1328:7946;5201:18;;1288:37;;;;;;:::i;:::-;5201:18;:16;;:18;;;;;;;1328:7946;5201:18;;;1328:7946;;5261:5;1328:7946;;;;;;;;;;;;1288:37;;1328:7946;5172:1;1328:7946;;1288:37;1328:7946;5023:17;1328:7946;;1288:37;1328:7946;;;;;;;;;;;;:::i;:::-;4860:10;5261:5;:::i;:::-;1328:7946;5201:18;;;;;;;;;;;;;;;;:::i;:::-;;;1288:37;;;;;5261:5;5201:18;;;;;;;5019:86;1328:7946;;-1:-1:-1;;;5068:26:47;;1328:7946;;5068:26;1328:7946;-1:-1:-1;;1328:7946:47;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5804:9;:14;5800:135;;6017:30;1328:7946;;;;:::i;:::-;6017:30;:::i;:::-;6061:11;;6057:70;;1288:37;1328:7946;;;;;:::i;1288:37::-;6251:19;:17;;:19;;;;;;;1328:7946;6251:19;;;1328:7946;-1:-1:-1;1328:7946:47;;;-1:-1:-1;;;6228:58:47;;1328:7946;;;;;;;-1:-1:-1;;;;;1288:37:47;6228:58;;;;;;;1328:7946;6228:58;;;1328:7946;;;;;;;;;2130:87:76;;6372:213:47;1328:7946;;;;;1288:37;;;;;;;;6372:213;;5804:9;1328:7946;;;6453:10;;6372:213;1328:7946;6372:213;;;:::i;:::-;;:14;;:213;;;;;;6660:8;6372:213;1328:7946;6372:213;;;1328:7946;6660:8;;:::i;6372:213::-;;;;;;1328:7946;6372:213;;;;;;:::i;:::-;;;;2130:87:76;1328:7946:47;;-1:-1:-1;;;2182:24:76;;1328:7946:47;;2182:24:76;1328:7946:47;;;;;;;;;;;;6228:58;;;;1328:7946;6228:58;1328:7946;6228:58;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;6251:19;;;1328:7946;6251:19;;;;;;;;;1328:7946;6251:19;;;:::i;:::-;;;1328:7946;;;;;1288:37;1328:7946;1288:37;;:::i;:::-;6251:19;;;;;;;-1:-1:-1;6251:19:47;;1328:7946;;;;-1:-1:-1;;1328:7946:47;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;247:48:68;;1328:7946:47;;;;582:20:68;578:50;;1288:37:47;1328:7946;1288:37;;;1328:7946;;;;:::i;:::-;;;1288:37;;;;7700:19;;1328:7946;;;7700:19;;;;1328:7946;7700:19;;1288:37;;;;;;:::i;:::-;7700:19;:17;;:19;;;;;;;1328:7946;7700:19;;;1328:7946;;;;1288:37;;;7677:58;;1328:7946;1288:37;1328:7946;1288:37;1328:7946;1288:37;;;;;;;7677:58;;;;;;;1328:7946;7677:58;;;1328:7946;;;;;;;;;;;2134:25:76;2130:87;;1328:7946:47;;;;;;;;;2395:37:76;2391:205;;1328:7946:47;;;;;;;;;7989:210;1328:7946;;1288:37;;;;;;;;7989:210;;1328:7946;;8070:10;;7989:210;1328:7946;7989:210;;;:::i;:::-;;:14;;:210;;;;;;;1328:7946;7989:210;8274:8;7989:210;;;;;8274:8;;:::i;7989:210::-;;;;;;;;;;;;;:::i;:::-;;;;2391:205:76;2470:25;;1288:37:47;;1328:7946;;;1780:53:28;;;1288:37:47;;;;1780:53:28;;2540:10:76;1780:53:28;;;1288:37:47;2564:4:76;1328:7946:47;;;1288:37;1328:7946;;;;;;1780:53:28;;1288:37:47;1328:7946;;;;;;;;;;;;;;4574:31:29;4622:69;;1328:7946:47;;;;;4574:31:29;;;;;:::i;:::-;4622:69;;;:::i;:::-;1288:37:47;;5134:22:28;;;;:57;;;;2391:205:76;5130:135:28;;;;;2391:205:76;;;;;5130:135:28;1328:7946:47;;5214:40:28;;;;;;1328:7946:47;5214:40:28;;1288:37:47;5214:40:28;5134:57;5161:30;;;;;;;;1328:7946:47;;;;;5161:30:28;;1328:7946:47;:::i;:::-;5160:31:28;5134:57;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;;;;;;7677:58;;;;1328:7946;7677:58;1328:7946;7677:58;;;;;;;:::i;:::-;;;;7700:19;;;;;;;;;;;;;;;;:::i;:::-;;;1328:7946;;;;1288:37;;;:::i;:::-;7700:19;;;;;;;;578:50:68;-1:-1:-1;;;611:17:68;;1328:7946:47;;611:17:68;1328:7946:47;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;:::o;:::-;-1:-1:-1;;;;;1328:7946:47;;;;;;-1:-1:-1;;1328:7946:47;;;;:::o;1288:37::-;;;;;;;;-1:-1:-1;;1288:37:47;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1328:7946;;-1:-1:-1;;1328:7946:47;1288:37;;;:::o;:::-;;;;;;;;;;:::o;:::-;;1328:7946;;;;;:::i;:::-;1288:37;-1:-1:-1;;;;;11347:13:63;1288:37:47;;;;;1328:7946;1288:37;1328:7946;1288:37;1328:7946;1288:37;;;;;;;;;-1:-1:-1;1288:37:47;;;-1:-1:-1;1288:37:47;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;-1:-1:-1;1288:37:47;;;;;;;;;1328:7946;;;;:::i;:::-;1288:37;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;1328:7946;1288:37;1328:7946;1288:37;;1328:7946;;;;1288:37;;;;;;;;;-1:-1:-1;1288:37:47;;-1:-1:-1;1288:37:47;;-1:-1:-1;1288:37:47;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;-1:-1:-1;1288:37:47;;;;;;;;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;:::o;:::-;-1:-1:-1;;;;;1288:37:47;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;;:::o;:::-;;;;;;;;;;;1328:7946;;;;;:::i;:::-;1288:37;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;;;;:::i;:::-;1328:7946;;1288:37;1328:7946;;;;:::i;:::-;1288:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1288:37:47;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;1288:37:47;;;;;;;1328:7946;;;1288:37;;;;;;;:::o;:::-;;;1328:7946;1288:37;;1328:7946;1288:37;;;;;;:::i;:::-;:::o;:::-;;-1:-1:-1;;;1288:37:47;;;;1328:7946;;1288:37;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;1288:37:47;;-1:-1:-1;1288:37:47;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;:::o;1328:7946::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1328:7946:47;;;;:::o;:::-;;;:::o;13246:258:1:-;13330:21;;:31;13326:63;;13419:35;;;;;;;;-1:-1:-1;;;;;1288:37:47;13419:35:1;;;;:::i;:::-;;13468:8;13464:33;;13246:258::o;1328:7946:47:-;;1288:37;-1:-1:-1;;;;;1288:37:47;;;;;;1328:7946::o;:::-;;;-1:-1:-1;;;;;1288:37:47;;;;;;1328:7946::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1288:37;;1328:7946;;1288:37;:::i;:::-;1328:7946;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1288:37;1328:7946;;;1288:37;:::i;:::-;1328:7946;;;;;;;;-1:-1:-1;;;;;;1328:7946:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;1288:37;;;;1328:7946;-1:-1:-1;1328:7946:47;;;;;;;;-1:-1:-1;;1328:7946:47;;;;:::o;:::-;;;;;;;;;;;;1288:37;-1:-1:-1;;;;;1328:7946:47;;;;;:::i;:::-;1288:37;1328:7946;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;;;;1328:7946;;;;;;;;;-1:-1:-1;;;;;;;;1288:37:47;1328:7946;;;1288:37;1328:7946;;;;;;;;;;;1288:37;;1328:7946;;1288:37;1328:7946;:::i;:::-;;;;;;;;:::o;:::-;1288:37;;;;;1328:7946;1288:37;;;;;;1328:7946;;;:::i;:::-;1288:37;;;;;;;1328:7946;;;;;;;;;-1:-1:-1;;;;;8937:13:47;1328:7946;1288:37;;;;1328:7946;;;;;;;;;1288:37;;;;;1328:7946;-1:-1:-1;1288:37:47;;1328:7946;-1:-1:-1;1328:7946:47;;;;;;;;;;;;:::o;:::-;1288:37;;-1:-1:-1;;;;;1288:37:47;;;;;;;1328:7946;1288:37;;;;1328:7946;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;1288:37;1328:7946;;;1288:37;;;;1328:7946;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;9363:689:63:-;1328:7946:47;9542:23:63;:20;;;;:23;;:32;:37;1328:7946:47;;;;;;1288:37;;;;9542:52:63;;;;;;1328:7946:47;;;;;;:::i;:::-;;;;;;;;;;;3946:45:64;;;1328:7946:47;;;;:::i;:::-;9542:52:63;;;;;;;;;;;;;;9363:689;9648:19;;;;:::i;:::-;9682:11;;9678:70;;9780:19;;;;1328:7946:47;1288:37;9780:19:63;;;1288:37:47;;-1:-1:-1;;;;;9883:16:63;1288:37:47;;;9810:20:63;:26;:20;;:26;1288:37:47;9883:16:63;:::i;:::-;1288:37:47;;-1:-1:-1;;;;;1288:37:47;;;;;9909:47:63;:17;9930:20;;;:26;1328:7946:47;9909:17:63;;1328:7946:47;;;9909:47:63;:::i;:::-;1288:37:47;;1328:7946;;1288:37;;;;;;;;9999:21:63;;;9542:52;9999:21;;1288:37:47;1328:7946;1288:37;;;;:::i;:::-;9999:21:63;;;;;;;;;;;;;9363:689;1328:7946:47;9972:73:63;1328:7946:47;;;;;;;;;;;;1288:37;;;;;1328:7946;;;;;:::i;:::-;9972:73:63;;;9363:689::o;9999:21::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;1328:7946:47;;;;1288:37;;1328:7946;1288:37;9972:73:63;1288:37:47;;;:::i;:::-;9999:21:63;;;;1328:7946:47;;;9999:21:63;;;;;;1328:7946:47;;1288:37;1328:7946;;1288:37;;;;9678:70:63;1328:7946:47;;-1:-1:-1;;;9716:21:63;;9542:52;;9716:21;9542:52;;;;;;;;;;;;;;:::i;:::-;;;;;;1328:7946:47;;1288:37;1328:7946;;1288:37;;;;1328:7946;;;;;;;;-1:-1:-1;1288:37:47;1328:7946;1288:37;-1:-1:-1;1288:37:47;1328:7946;;;;-1:-1:-1;1328:7946:47;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1328:7946:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;1288:37;;;;;;;;;-1:-1:-1;;;;;1288:37:47;;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;1288:37:47;;;;;;;;;;;;;;1328:7946;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;;;;;1288:37;;;;1328:7946;;;;;;;;;;:::i;:::-;;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1328:7946:47;;;1288:37;1328:7946;;;;;;;;;;;;;;;;1288:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1328:7946;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;1288:37;;;1328:7946;;;;;;;;;;;;:::i;:::-;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;-1:-1:-1;;;;1328:7946:47;;;1288:37;1328:7946;;;;;;;;;;;;;;;;1288:37;1328:7946;;;;;;;1288:37;;;;1328:7946;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;1288:37;1328:7946;;1288:37;;;;1328:7946;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;;1288:37;;;;;;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;;;;;;;;1328:7946;;;;1288:37;1328:7946;;;;;;;;;;1288:37;1328:7946;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;1328:7946:47;;;;;;;;;;;;-1:-1:-1;1328:7946:47;;;;;1288:37;;;;;;1328:7946;;-1:-1:-1;1288:37:47;1328:7946;-1:-1:-1;;1328:7946:47;;1288:37;1328:7946;;;;;;;;;;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;;;;-1:-1:-1;;1328:7946:47;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;;;;;;;;1328:7946;;;;1288:37;1328:7946;;;;;;;;;1288:37;1328:7946;;;;:::i;:::-;;;;;;-1:-1:-1;;;1328:7946:47;;;;;;;;1288:37;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;;-1:-1:-1;;;1328:7946:47;;;;;;;;;;;;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;;;1288:37;;;;;;1328:7946;;;;;;;;;;;;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;;;;-1:-1:-1;;1328:7946:47;;;;;1288:37;1328:7946;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1288:37;;;1328:7946;1288:37;;;1328:7946;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1288:37;;;-1:-1:-1;;;;;1288:37:47;;;;;;;;;;;;;;1328:7946;;;;1288:37;;;;;;;;1328:7946;1288:37;1328:7946;;;;;:::i;:::-;;;;-1:-1:-1;1328:7946:47;;;;:::o;:::-;1288:37;1328:7946;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::o;:::-;1288:37;;1328:7946;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;1328:7946:47;;;;;;:::i;:::-;1288:37;;;;1328:7946;;;;;;;;;;;1288:37;1328:7946;1288:37;;;1328:7946;;;;;;;;;:::i;:::-;1288:37;;;;-1:-1:-1;1288:37:47;;;;-1:-1:-1;1288:37:47;1328:7946;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1328:7946:47;;;;;;;;;;;;;1288:37;1328:7946;;;;;1288:37;;;1328:7946;;;;;;;;;;;;;;1288:37;1328:7946;;;;;:::i;:::-;;;;;;:::i;:::-;1288:37;;1328:7946;;1288:37;1328:7946;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;1288:37;;;;;;1328:7946;;;1288:37;;1328:7946;;;;;;;;;;:::i;:::-;;;1288:37::o;1328:7946::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1328:7946:47;;;;;;;;:::i;:::-;-1:-1:-1;1288:37:47;;;;;;;1328:7946;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1288:37:47;;;1328:7946;;;;;;;;;;;;;;:::o;12666:372:63:-;-1:-1:-1;;;;;1288:37:47;;12849:19:63;12845:78;;3946:45:64;12959:35:63;1288:37:47;;;:::i;:::-;1328:7946;;-1:-1:-1;;;12959:35:63;;1328:7946:47;;;;;12959:35:63;;;;:::i;:::-;;:28;;:35;;;;;;13012:19;12959:35;3946:45:64;12959:35:63;;;12666:372;13012:19;;:::i;:::-;13005:26;;12666:372::o;12959:35::-;;;;;;;;;;;;:::i;:::-;;;;12845:78;1328:7946:47;;-1:-1:-1;;;12891:21:63;;;;;13234:272;1288:37:47;13443:15:63;1328:7946:47;;;1288:37;;;;13443:17:63;;;;;;;;;;;;1288:37:47;;;;;;:::i;:::-;13443:17:63;;;;;;;;;;3946:45:64;13443:17:63;;;13234:272;1328:7946:47;;1288:37;1328:7946;3946:45:64;1328:7946:47;3946:45:64;1328:7946:47;;;;3946:45:64;1328:7946:47;13480:9:63;1288:37:47;13443:17:63;13480:9;;1288:37:47;:::i;:::-;1328:7946;;;1288:37;;;;;;;;13480:19:63;;;13443:17;13480:19;;1288:37:47;;;;;;:::i;:::-;13480:19:63;;;;;;;;;3946:45:64;13480:19:63;;;13234:272;13479:20;;;;13234:272;:::o;13480:19::-;;;;;;;;;;;;;:::i;:::-;;;1328:7946:47;;;;;;;;:::i;:::-;13480:19:63;;;;;;;;;13443:17;;;;;;;;;;;;;;;:::i;:::-;;;1288:37:47;;;;-1:-1:-1;1288:37:47;;13443:17:63;;;;;;;6737:692:29;;6952:471;;;1288:37:47;;6983:22:29;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;1328:7946:47;;-1:-1:-1;;;7261:24:29;;-1:-1:-1;;;;;1288:37:47;;;7261:24:29;;;1288:37:47;1328:7946;;7261:24:29;6952:471;-1:-1:-1;1288:37:47;;8828:21:29;:17;;9000:142;;;;;;8824:411;1328:7946:47;;-1:-1:-1;;;8628:17:29;;;;","linkReferences":{"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":1381,"length":20},{"start":3562,"length":20},{"start":4136,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":198,"length":20},{"start":1071,"length":20},{"start":3129,"length":20},{"start":3416,"length":20},{"start":3966,"length":20},{"start":7016,"length":20},{"start":9415,"length":20},{"start":9512,"length":20}]}}},"methodIdentifiers":{"addStake()":"5a627dbc","fund((uint64,address[]),(uint8,bytes))":"18f44b70","fundWithToken((uint64,address[]),(uint8,bytes),uint256)":"0517e1aa","kill()":"41c0e1b5","register(uint256)":"f207564e","release((uint8,bytes))":"6b2c1eef","releaseRewardForRelayer(uint256)":"d8e25572","releaseStake(uint256)":"45f54485"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":\"AlreadyRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEmptySubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFundsToRelease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedSupplySource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundWithToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"genesisCircSupply\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"fund((uint64,address[]),(uint8,bytes))\":{\"details\":\"There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero, i.e. funding a subnet is free.\",\"params\":{\"subnetId\":\": the destination subnet for the funds.\",\"to\":\": the address to which to credit funds in the destination subnet.\"}},\"fundWithToken((uint64,address[]),(uint8,bytes),uint256)\":{\"details\":\"This function locks the amount of ERC20 tokens into custody and then mints the supply in the specified subnet. It checks if the subnet's supply strategy is ERC20 and if not, the operation is reverted. It allows for free injection of funds into a subnet and is protected against reentrancy.\",\"params\":{\"amount\":\"The amount of ERC20 tokens to be sent.\",\"subnetId\":\"The ID of the subnet where the funds will be sent to.\",\"to\":\"The funded address.\"}},\"kill()\":{\"details\":\"The subnet's balance must be empty.\"},\"register(uint256)\":{\"details\":\"The subnet can optionally pass a genesis circulating supply that would be pre-allocated in the subnet from genesis (without having to wait for the subnet to be spawned to propagate the funds).\"},\"release((uint8,bytes))\":{\"params\":{\"to\":\": the address to which to credit funds in the parent subnet.\"}},\"releaseRewardForRelayer(uint256)\":{\"details\":\"This function sends the specified reward amount to the actor associated with the sender's subnet. It checks for subnet registration and also ensures the reward amount is non-zero. This function is protected against re-entrancy attack.\",\"params\":{\"amount\":\"The amount of the reward to be released.\"}},\"releaseStake(uint256)\":{\"details\":\"it can be used to release the stake or reward of the validator.\",\"params\":{\"amount\":\"The amount of stake to be released.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addStake()\":{\"notice\":\"addStake - add collateral for an existing subnet\"},\"fund((uint64,address[]),(uint8,bytes))\":{\"notice\":\"credits the received value to the specified address in the specified child subnet.\"},\"fundWithToken((uint64,address[]),(uint8,bytes),uint256)\":{\"notice\":\"Sends funds to a specified subnet receiver using ERC20 tokens.\"},\"kill()\":{\"notice\":\"kill an existing subnet.\"},\"register(uint256)\":{\"notice\":\"register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake\"},\"release((uint8,bytes))\":{\"notice\":\"release() burns the received value locally in subnet and commits a bottom-up message to release the assets in the parent. The local supply of a subnet is always the native coin, so this method doesn't have to deal with tokens.\"},\"releaseRewardForRelayer(uint256)\":{\"notice\":\"Releases a reward to the relayer.\"},\"releaseStake(uint256)\":{\"notice\":\"release collateral for an existing subnet.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayManagerFacet.sol\":\"GatewayManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":"AlreadyRegisteredSubnet"},{"inputs":[],"type":"error","name":"CallFailed"},{"inputs":[],"type":"error","name":"CannotReleaseZero"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InsufficientFunds"},{"inputs":[],"type":"error","name":"InvalidActorAddress"},{"inputs":[],"type":"error","name":"InvalidCrossMsgValue"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NotEmptySubnetCircSupply"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotEnoughFundsToRelease"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UnexpectedSupplySource"},{"inputs":[],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"fund"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fundWithToken"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[{"internalType":"uint256","name":"genesisCircSupply","type":"uint256"}],"stateMutability":"payable","type":"function","name":"register"},{"inputs":[{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"release"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseStake"}],"devdoc":{"kind":"dev","methods":{"fund((uint64,address[]),(uint8,bytes))":{"details":"There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero, i.e. funding a subnet is free.","params":{"subnetId":": the destination subnet for the funds.","to":": the address to which to credit funds in the destination subnet."}},"fundWithToken((uint64,address[]),(uint8,bytes),uint256)":{"details":"This function locks the amount of ERC20 tokens into custody and then mints the supply in the specified subnet. It checks if the subnet's supply strategy is ERC20 and if not, the operation is reverted. It allows for free injection of funds into a subnet and is protected against reentrancy.","params":{"amount":"The amount of ERC20 tokens to be sent.","subnetId":"The ID of the subnet where the funds will be sent to.","to":"The funded address."}},"kill()":{"details":"The subnet's balance must be empty."},"register(uint256)":{"details":"The subnet can optionally pass a genesis circulating supply that would be pre-allocated in the subnet from genesis (without having to wait for the subnet to be spawned to propagate the funds)."},"release((uint8,bytes))":{"params":{"to":": the address to which to credit funds in the parent subnet."}},"releaseRewardForRelayer(uint256)":{"details":"This function sends the specified reward amount to the actor associated with the sender's subnet. It checks for subnet registration and also ensures the reward amount is non-zero. This function is protected against re-entrancy attack.","params":{"amount":"The amount of the reward to be released."}},"releaseStake(uint256)":{"details":"it can be used to release the stake or reward of the validator.","params":{"amount":"The amount of stake to be released."}}},"version":1},"userdoc":{"kind":"user","methods":{"addStake()":{"notice":"addStake - add collateral for an existing subnet"},"fund((uint64,address[]),(uint8,bytes))":{"notice":"credits the received value to the specified address in the specified child subnet."},"fundWithToken((uint64,address[]),(uint8,bytes),uint256)":{"notice":"Sends funds to a specified subnet receiver using ERC20 tokens."},"kill()":{"notice":"kill an existing subnet."},"register(uint256)":{"notice":"register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake"},"release((uint8,bytes))":{"notice":"release() burns the received value locally in subnet and commits a bottom-up message to release the assets in the parent. The local supply of a subnet is always the native coin, so this method doesn't have to deal with tokens."},"releaseRewardForRelayer(uint256)":{"notice":"Releases a reward to the relayer."},"releaseStake(uint256)":{"notice":"release collateral for an existing subnet."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayManagerFacet.sol":"GatewayManagerFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayManagerFacet.sol","id":38871,"exportedSymbols":{"Address":[32838],"AlreadyRegisteredSubnet":[37370],"BURNT_FUNDS_ACTOR":[36861],"CannotReleaseZero":[37374],"CrossMsg":[49974],"CrossMsgHelper":[40781],"ERR_CHILD_SUBNET_NOT_ALLOWED":[38365],"FilAddress":[1428],"FvmAddress":[49998],"GatewayActorModifiers":[43137],"GatewayManagerFacet":[38870],"IERC20":[31999],"InvalidCrossMsgValue":[37426],"LibGateway":[42944],"Membership":[50218],"MethodNotAllowed":[37526],"NotEmptySubnetCircSupply":[37460],"NotEnoughCollateral":[37466],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotRegisteredSubnet":[37482],"ReentrancyGuard":[44013],"Subnet":[50091],"SubnetActorGetterFacet":[50887],"SubnetID":[50077],"SubnetIDHelper":[48072],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398]},"nodeType":"SourceUnit","src":"46:9229:47","nodes":[{"id":38319,"nodeType":"PragmaDirective","src":"46:23:47","nodes":[],"literals":["solidity","0.8",".19"]},{"id":38321,"nodeType":"ImportDirective","src":"71:72:47","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":38320,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43137,"src":"79:21:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38323,"nodeType":"ImportDirective","src":"144:76:47","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":38322,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"152:22:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38325,"nodeType":"ImportDirective","src":"221:61:47","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":38324,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36861,"src":"229:17:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38327,"nodeType":"ImportDirective","src":"283:49:47","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":38326,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"291:8:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38329,"nodeType":"ImportDirective","src":"333:53:47","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":38328,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"341:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38333,"nodeType":"ImportDirective","src":"387:69:47","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":38330,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"395:8:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38331,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"405:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38332,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"413:12:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38336,"nodeType":"ImportDirective","src":"457:61:47","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":38334,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"465:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38335,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"477:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38346,"nodeType":"ImportDirective","src":"519:232:47","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":38337,"name":"AlreadyRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37370,"src":"527:23:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38338,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"552:17:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38339,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"571:16:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38340,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"589:14:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38341,"name":"NotEnoughFundsToRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37472,"src":"605:23:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38342,"name":"NotEnoughCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37466,"src":"630:19:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38343,"name":"NotEmptySubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37460,"src":"651:24:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38344,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"677:19:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38345,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"698:20:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38348,"nodeType":"ImportDirective","src":"752:49:47","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":38347,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"760:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38350,"nodeType":"ImportDirective","src":"802:57:47","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":38349,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"810:14:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38352,"nodeType":"ImportDirective","src":"860:57:47","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":38351,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"868:14:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38354,"nodeType":"ImportDirective","src":"918:56:47","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":38353,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"926:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38356,"nodeType":"ImportDirective","src":"975:62:47","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":44014,"symbolAliases":[{"foreign":{"id":38355,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44013,"src":"983:15:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38358,"nodeType":"ImportDirective","src":"1038:69:47","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":32000,"symbolAliases":[{"foreign":{"id":38357,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"1046:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38360,"nodeType":"ImportDirective","src":"1108:65:47","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":38359,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"1116:7:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38362,"nodeType":"ImportDirective","src":"1174:65:47","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":38871,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":38361,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"1182:18:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38365,"nodeType":"VariableDeclaration","src":"1241:84:47","nodes":[],"constant":true,"mutability":"constant","name":"ERR_CHILD_SUBNET_NOT_ALLOWED","nameLocation":"1257:28:47","scope":38871,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38363,"name":"string","nodeType":"ElementaryTypeName","src":"1241:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e657473","id":38364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1288:37:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_134e6199f75369598df130f403db97d3616e5f01478ffecec2de7460d74db52c","typeString":"literal_string \"Subnet does not allow child subnets\""},"value":"Subnet does not allow child subnets"},"visibility":"internal"},{"id":38870,"nodeType":"ContractDefinition","src":"1328:7946:47","nodes":[{"id":38372,"nodeType":"UsingForDirective","src":"1405:37:47","nodes":[],"global":false,"libraryName":{"id":38370,"name":"FilAddress","nameLocations":["1411:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"1411:10:47"},"typeName":{"id":38371,"name":"address","nodeType":"ElementaryTypeName","src":"1426:15:47","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":38376,"nodeType":"UsingForDirective","src":"1447:34:47","nodes":[],"global":false,"libraryName":{"id":38373,"name":"SubnetIDHelper","nameLocations":["1453:14:47"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"1453:14:47"},"typeName":{"id":38375,"nodeType":"UserDefinedTypeName","pathNode":{"id":38374,"name":"SubnetID","nameLocations":["1472:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1472:8:47"},"referencedDeclaration":50077,"src":"1472:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":38380,"nodeType":"UsingForDirective","src":"1486:42:47","nodes":[],"global":false,"libraryName":{"id":38377,"name":"SupplySourceHelper","nameLocations":["1492:18:47"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"1492:18:47"},"typeName":{"id":38379,"nodeType":"UserDefinedTypeName","pathNode":{"id":38378,"name":"SupplySource","nameLocations":["1515:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"1515:12:47"},"referencedDeclaration":50226,"src":"1515:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":38485,"nodeType":"FunctionDefinition","src":"1859:949:47","nodes":[],"body":{"id":38484,"nodeType":"Block","src":"1921:887:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"id":38386,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2043:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2045:11:47","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"2043:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":38388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2057:5:47","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2043:19:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":38389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2063:6:47","memberName":"length","nodeType":"MemberAccess","src":"2043:26:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":38390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2072:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2043:30:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":38392,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2077:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2079:12:47","memberName":"maxTreeDepth","nodeType":"MemberAccess","referencedDeclaration":43055,"src":"2077:14:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2043:48:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38400,"nodeType":"IfStatement","src":"2039:132:47","trueBody":{"id":38399,"nodeType":"Block","src":"2093:78:47","statements":[{"errorCall":{"arguments":[{"id":38396,"name":"ERR_CHILD_SUBNET_NOT_ALLOWED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38365,"src":"2131:28:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":38395,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"2114:16:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":38397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2114:46:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38398,"nodeType":"RevertStatement","src":"2107:53:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38401,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2185:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2189:5:47","memberName":"value","nodeType":"MemberAccess","src":"2185:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38403,"name":"genesisCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38383,"src":"2197:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2185:29:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38409,"nodeType":"IfStatement","src":"2181:83:47","trueBody":{"id":38408,"nodeType":"Block","src":"2216:48:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38405,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"2237:14:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2237:16:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38407,"nodeType":"RevertStatement","src":"2230:23:47"}]}},{"assignments":[38411],"declarations":[{"constant":false,"id":38411,"mutability":"mutable","name":"collateral","nameLocation":"2281:10:47","nodeType":"VariableDeclaration","scope":38484,"src":"2273:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38410,"name":"uint256","nodeType":"ElementaryTypeName","src":"2273:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38416,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38412,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2294:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2298:5:47","memberName":"value","nodeType":"MemberAccess","src":"2294:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":38414,"name":"genesisCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38383,"src":"2306:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2294:29:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2273:50:47"},{"assignments":[38419],"declarations":[{"constant":false,"id":38419,"mutability":"mutable","name":"subnetId","nameLocation":"2349:8:47","nodeType":"VariableDeclaration","scope":38484,"src":"2333:24:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":38418,"nodeType":"UserDefinedTypeName","pathNode":{"id":38417,"name":"SubnetID","nameLocations":["2333:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2333:8:47"},"referencedDeclaration":50077,"src":"2333:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":38426,"initialValue":{"arguments":[{"expression":{"id":38423,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2389:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2393:6:47","memberName":"sender","nodeType":"MemberAccess","src":"2389:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":38420,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2360:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2362:11:47","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"2360:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":38422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2374:14:47","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"2360:28:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":38425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2360:40:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"2333:67:47"},{"assignments":[38428,38431],"declarations":[{"constant":false,"id":38428,"mutability":"mutable","name":"registered","nameLocation":"2417:10:47","nodeType":"VariableDeclaration","scope":38484,"src":"2412:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38427,"name":"bool","nodeType":"ElementaryTypeName","src":"2412:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38431,"mutability":"mutable","name":"subnet","nameLocation":"2444:6:47","nodeType":"VariableDeclaration","scope":38484,"src":"2429:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38430,"nodeType":"UserDefinedTypeName","pathNode":{"id":38429,"name":"Subnet","nameLocations":["2429:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"2429:6:47"},"referencedDeclaration":50091,"src":"2429:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38436,"initialValue":{"arguments":[{"id":38434,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38419,"src":"2475:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":38432,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"2454:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2465:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42692,"src":"2454:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":38435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2454:30:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"2411:73:47"},{"condition":{"id":38437,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38428,"src":"2499:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38442,"nodeType":"IfStatement","src":"2495:73:47","trueBody":{"id":38441,"nodeType":"Block","src":"2511:57:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38438,"name":"AlreadyRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37370,"src":"2532:23:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2532:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38440,"nodeType":"RevertStatement","src":"2525:32:47"}]}},{"expression":{"id":38447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38443,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38431,"src":"2578:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2585:2:47","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"2578:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38446,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38419,"src":"2590:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"src":"2578:20:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":38448,"nodeType":"ExpressionStatement","src":"2578:20:47"},{"expression":{"id":38453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38449,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38431,"src":"2608:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2615:5:47","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"2608:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38452,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38411,"src":"2623:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2608:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38454,"nodeType":"ExpressionStatement","src":"2608:25:47"},{"expression":{"id":38460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38455,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38431,"src":"2643:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2650:12:47","memberName":"genesisEpoch","nodeType":"MemberAccess","referencedDeclaration":50081,"src":"2643:19:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":38458,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2665:5:47","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":38459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2671:6:47","memberName":"number","nodeType":"MemberAccess","src":"2665:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2643:34:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38461,"nodeType":"ExpressionStatement","src":"2643:34:47"},{"expression":{"id":38466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38462,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38431,"src":"2687:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2694:10:47","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"2687:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38465,"name":"genesisCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38383,"src":"2707:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2687:37:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38467,"nodeType":"ExpressionStatement","src":"2687:37:47"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38473,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38419,"src":"2753:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":38474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2762:6:47","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"2753:15:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":38475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2753:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":38468,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2735:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2737:10:47","memberName":"subnetKeys","nodeType":"MemberAccess","referencedDeclaration":43020,"src":"2735:12:47","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":38472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2748:4:47","memberName":"push","nodeType":"MemberAccess","src":"2735:17:47","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":38476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2735:36:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38477,"nodeType":"ExpressionStatement","src":"2735:36:47"},{"expression":{"id":38482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38478,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2782:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2784:12:47","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":43039,"src":"2782:14:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":38481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2800:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2782:19:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":38483,"nodeType":"ExpressionStatement","src":"2782:19:47"}]},"documentation":{"id":38381,"nodeType":"StructuredDocumentation","src":"1534:320:47","text":"@notice register a subnet in the gateway. It is called by a subnet when it reaches the threshold stake\n @dev The subnet can optionally pass a genesis circulating supply that would be pre-allocated in the\n subnet from genesis (without having to wait for the subnet to be spawned to propagate the funds)."},"functionSelector":"f207564e","implemented":true,"kind":"function","modifiers":[],"name":"register","nameLocation":"1868:8:47","parameters":{"id":38384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38383,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"1885:17:47","nodeType":"VariableDeclaration","scope":38485,"src":"1877:25:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38382,"name":"uint256","nodeType":"ElementaryTypeName","src":"1877:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1876:27:47"},"returnParameters":{"id":38385,"nodeType":"ParameterList","parameters":[],"src":"1921:0:47"},"scope":38870,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":38524,"nodeType":"FunctionDefinition","src":"2879:323:47","nodes":[],"body":{"id":38523,"nodeType":"Block","src":"2916:286:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38489,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2930:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2934:5:47","memberName":"value","nodeType":"MemberAccess","src":"2930:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2943:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2930:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38497,"nodeType":"IfStatement","src":"2926:68:47","trueBody":{"id":38496,"nodeType":"Block","src":"2946:48:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38493,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"2967:14:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2967:16:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38495,"nodeType":"RevertStatement","src":"2960:23:47"}]}},{"assignments":[38499,38502],"declarations":[{"constant":false,"id":38499,"mutability":"mutable","name":"registered","nameLocation":"3010:10:47","nodeType":"VariableDeclaration","scope":38523,"src":"3005:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38498,"name":"bool","nodeType":"ElementaryTypeName","src":"3005:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38502,"mutability":"mutable","name":"subnet","nameLocation":"3037:6:47","nodeType":"VariableDeclaration","scope":38523,"src":"3022:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38501,"nodeType":"UserDefinedTypeName","pathNode":{"id":38500,"name":"Subnet","nameLocations":["3022:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"3022:6:47"},"referencedDeclaration":50091,"src":"3022:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38508,"initialValue":{"arguments":[{"expression":{"id":38505,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3068:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3072:6:47","memberName":"sender","nodeType":"MemberAccess","src":"3068:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38503,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3047:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3058:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42655,"src":"3047:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3047:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3004:75:47"},{"condition":{"id":38510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3094:11:47","subExpression":{"id":38509,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38499,"src":"3095:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38515,"nodeType":"IfStatement","src":"3090:70:47","trueBody":{"id":38514,"nodeType":"Block","src":"3107:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38511,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"3128:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3128:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38513,"nodeType":"RevertStatement","src":"3121:28:47"}]}},{"expression":{"id":38521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38516,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38502,"src":"3170:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3177:5:47","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"3170:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":38519,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3186:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3190:5:47","memberName":"value","nodeType":"MemberAccess","src":"3186:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3170:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38522,"nodeType":"ExpressionStatement","src":"3170:25:47"}]},"documentation":{"id":38486,"nodeType":"StructuredDocumentation","src":"2814:60:47","text":"@notice addStake - add collateral for an existing subnet"},"functionSelector":"5a627dbc","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"2888:8:47","parameters":{"id":38487,"nodeType":"ParameterList","parameters":[],"src":"2896:2:47"},"returnParameters":{"id":38488,"nodeType":"ParameterList","parameters":[],"src":"2916:0:47"},"scope":38870,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":38585,"nodeType":"FunctionDefinition","src":"3402:494:47","nodes":[],"body":{"id":38584,"nodeType":"Block","src":"3462:434:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38532,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38527,"src":"3476:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3486:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3476:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38539,"nodeType":"IfStatement","src":"3472:68:47","trueBody":{"id":38538,"nodeType":"Block","src":"3489:51:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38535,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"3510:17:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3510:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38537,"nodeType":"RevertStatement","src":"3503:26:47"}]}},{"assignments":[38541,38544],"declarations":[{"constant":false,"id":38541,"mutability":"mutable","name":"registered","nameLocation":"3556:10:47","nodeType":"VariableDeclaration","scope":38584,"src":"3551:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38540,"name":"bool","nodeType":"ElementaryTypeName","src":"3551:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38544,"mutability":"mutable","name":"subnet","nameLocation":"3583:6:47","nodeType":"VariableDeclaration","scope":38584,"src":"3568:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38543,"nodeType":"UserDefinedTypeName","pathNode":{"id":38542,"name":"Subnet","nameLocations":["3568:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"3568:6:47"},"referencedDeclaration":50091,"src":"3568:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38550,"initialValue":{"arguments":[{"expression":{"id":38547,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3614:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3618:6:47","memberName":"sender","nodeType":"MemberAccess","src":"3614:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38545,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3593:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3604:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42655,"src":"3593:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3593:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3550:75:47"},{"condition":{"id":38552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3640:11:47","subExpression":{"id":38551,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38541,"src":"3641:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38557,"nodeType":"IfStatement","src":"3636:70:47","trueBody":{"id":38556,"nodeType":"Block","src":"3653:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38553,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"3674:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3674:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38555,"nodeType":"RevertStatement","src":"3667:28:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38558,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38544,"src":"3719:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3726:5:47","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"3719:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38560,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38527,"src":"3734:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3719:21:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38566,"nodeType":"IfStatement","src":"3715:84:47","trueBody":{"id":38565,"nodeType":"Block","src":"3742:57:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38562,"name":"NotEnoughFundsToRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37472,"src":"3763:23:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3763:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38564,"nodeType":"RevertStatement","src":"3756:32:47"}]}},{"expression":{"id":38571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38567,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38544,"src":"3809:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3816:5:47","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"3809:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":38570,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38527,"src":"3825:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3809:22:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38572,"nodeType":"ExpressionStatement","src":"3809:22:47"},{"expression":{"arguments":[{"id":38581,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38527,"src":"3882:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":38575,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38544,"src":"3850:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3857:2:47","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"3850:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":38577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3860:8:47","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"3850:18:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3850:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3842:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38573,"name":"address","nodeType":"ElementaryTypeName","src":"3842:8:47","stateMutability":"payable","typeDescriptions":{}}},"id":38579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:29:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3872:9:47","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"3842:39:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:47:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38583,"nodeType":"ExpressionStatement","src":"3842:47:47"}]},"documentation":{"id":38525,"nodeType":"StructuredDocumentation","src":"3208:189:47","text":"@notice release collateral for an existing subnet.\n @dev it can be used to release the stake or reward of the validator.\n @param amount The amount of stake to be released."},"functionSelector":"45f54485","implemented":true,"kind":"function","modifiers":[{"id":38530,"kind":"modifierInvocation","modifierName":{"id":38529,"name":"nonReentrant","nameLocations":["3449:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"3449:12:47"},"nodeType":"ModifierInvocation","src":"3449:12:47"}],"name":"releaseStake","nameLocation":"3411:12:47","parameters":{"id":38528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38527,"mutability":"mutable","name":"amount","nameLocation":"3432:6:47","nodeType":"VariableDeclaration","scope":38585,"src":"3424:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38526,"name":"uint256","nodeType":"ElementaryTypeName","src":"3424:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3423:16:47"},"returnParameters":{"id":38531,"nodeType":"ParameterList","parameters":[],"src":"3462:0:47"},"scope":38870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38631,"nodeType":"FunctionDefinition","src":"4287:378:47","nodes":[],"body":{"id":38630,"nodeType":"Block","src":"4358:307:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38593,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38588,"src":"4372:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4382:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4372:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38600,"nodeType":"IfStatement","src":"4368:68:47","trueBody":{"id":38599,"nodeType":"Block","src":"4385:51:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38596,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"4406:17:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4406:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38598,"nodeType":"RevertStatement","src":"4399:26:47"}]}},{"assignments":[38602,38605],"declarations":[{"constant":false,"id":38602,"mutability":"mutable","name":"registered","nameLocation":"4452:10:47","nodeType":"VariableDeclaration","scope":38630,"src":"4447:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38601,"name":"bool","nodeType":"ElementaryTypeName","src":"4447:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38605,"mutability":"mutable","name":"subnet","nameLocation":"4479:6:47","nodeType":"VariableDeclaration","scope":38630,"src":"4464:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38604,"nodeType":"UserDefinedTypeName","pathNode":{"id":38603,"name":"Subnet","nameLocations":["4464:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"4464:6:47"},"referencedDeclaration":50091,"src":"4464:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38611,"initialValue":{"arguments":[{"expression":{"id":38608,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4510:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4514:6:47","memberName":"sender","nodeType":"MemberAccess","src":"4510:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38606,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"4489:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4500:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42655,"src":"4489:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4489:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"4446:75:47"},{"condition":{"id":38613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4535:11:47","subExpression":{"id":38612,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38602,"src":"4536:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38618,"nodeType":"IfStatement","src":"4531:70:47","trueBody":{"id":38617,"nodeType":"Block","src":"4548:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38614,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"4569:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4569:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38616,"nodeType":"RevertStatement","src":"4562:28:47"}]}},{"expression":{"arguments":[{"id":38627,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38588,"src":"4651:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":38621,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38605,"src":"4619:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4626:2:47","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"4619:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":38623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4629:8:47","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"4619:18:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4619:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4611:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38619,"name":"address","nodeType":"ElementaryTypeName","src":"4611:8:47","stateMutability":"payable","typeDescriptions":{}}},"id":38625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:29:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4641:9:47","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"4611:39:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:47:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38629,"nodeType":"ExpressionStatement","src":"4611:47:47"}]},"documentation":{"id":38586,"nodeType":"StructuredDocumentation","src":"3902:380:47","text":"@notice Releases a reward to the relayer.\n @dev This function sends the specified reward amount to the actor associated with the sender's subnet.\n It checks for subnet registration and also ensures the reward amount is non-zero.\n This function is protected against re-entrancy attack.\n @param amount The amount of the reward to be released."},"functionSelector":"d8e25572","implemented":true,"kind":"function","modifiers":[{"id":38591,"kind":"modifierInvocation","modifierName":{"id":38590,"name":"nonReentrant","nameLocations":["4345:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"4345:12:47"},"nodeType":"ModifierInvocation","src":"4345:12:47"}],"name":"releaseRewardForRelayer","nameLocation":"4296:23:47","parameters":{"id":38589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38588,"mutability":"mutable","name":"amount","nameLocation":"4328:6:47","nodeType":"VariableDeclaration","scope":38631,"src":"4320:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38587,"name":"uint256","nodeType":"ElementaryTypeName","src":"4320:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4319:16:47"},"returnParameters":{"id":38592,"nodeType":"ParameterList","parameters":[],"src":"4358:0:47"},"scope":38870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38692,"nodeType":"FunctionDefinition","src":"4761:513:47","nodes":[],"body":{"id":38691,"nodeType":"Block","src":"4786:488:47","nodes":[],"statements":[{"assignments":[38636,38639],"declarations":[{"constant":false,"id":38636,"mutability":"mutable","name":"registered","nameLocation":"4802:10:47","nodeType":"VariableDeclaration","scope":38691,"src":"4797:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38635,"name":"bool","nodeType":"ElementaryTypeName","src":"4797:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38639,"mutability":"mutable","name":"subnet","nameLocation":"4829:6:47","nodeType":"VariableDeclaration","scope":38691,"src":"4814:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38638,"nodeType":"UserDefinedTypeName","pathNode":{"id":38637,"name":"Subnet","nameLocations":["4814:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"4814:6:47"},"referencedDeclaration":50091,"src":"4814:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38645,"initialValue":{"arguments":[{"expression":{"id":38642,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4860:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4864:6:47","memberName":"sender","nodeType":"MemberAccess","src":"4860:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38640,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"4839:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4850:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42655,"src":"4839:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4839:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"4796:75:47"},{"condition":{"id":38647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4886:11:47","subExpression":{"id":38646,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38636,"src":"4887:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38652,"nodeType":"IfStatement","src":"4882:70:47","trueBody":{"id":38651,"nodeType":"Block","src":"4899:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38648,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"4920:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4920:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38650,"nodeType":"RevertStatement","src":"4913:28:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38653,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38639,"src":"5023:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5030:10:47","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"5023:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":38655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5044:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5023:22:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38661,"nodeType":"IfStatement","src":"5019:86:47","trueBody":{"id":38660,"nodeType":"Block","src":"5047:58:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38657,"name":"NotEmptySubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37460,"src":"5068:24:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5068:26:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38659,"nodeType":"RevertStatement","src":"5061:33:47"}]}},{"assignments":[38663],"declarations":[{"constant":false,"id":38663,"mutability":"mutable","name":"stake","nameLocation":"5123:5:47","nodeType":"VariableDeclaration","scope":38691,"src":"5115:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38662,"name":"uint256","nodeType":"ElementaryTypeName","src":"5115:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38666,"initialValue":{"expression":{"id":38664,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38639,"src":"5131:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5138:5:47","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"5131:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5115:28:47"},{"expression":{"id":38671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38667,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5154:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5156:12:47","memberName":"totalSubnets","nodeType":"MemberAccess","referencedDeclaration":43039,"src":"5154:14:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":38670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5172:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5154:19:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":38672,"nodeType":"ExpressionStatement","src":"5154:19:47"},{"expression":{"id":38680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5184:36:47","subExpression":{"baseExpression":{"expression":{"id":38673,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5191:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5193:7:47","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42973,"src":"5191:9:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":38679,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":38675,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38639,"src":"5201:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5208:2:47","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"5201:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":38677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5211:6:47","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"5201:16:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":38678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5201:18:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5191:29:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage","typeString":"struct Subnet storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38681,"nodeType":"ExpressionStatement","src":"5184:36:47"},{"expression":{"arguments":[{"id":38688,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38663,"src":"5261:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":38684,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5239:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5243:6:47","memberName":"sender","nodeType":"MemberAccess","src":"5239:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5231:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38682,"name":"address","nodeType":"ElementaryTypeName","src":"5231:8:47","stateMutability":"payable","typeDescriptions":{}}},"id":38686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5231:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5251:9:47","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"5231:29:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5231:36:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38690,"nodeType":"ExpressionStatement","src":"5231:36:47"}]},"documentation":{"id":38632,"nodeType":"StructuredDocumentation","src":"4671:85:47","text":"@notice kill an existing subnet.\n @dev The subnet's balance must be empty."},"functionSelector":"41c0e1b5","implemented":true,"kind":"function","modifiers":[],"name":"kill","nameLocation":"4770:4:47","parameters":{"id":38633,"nodeType":"ParameterList","parameters":[],"src":"4774:2:47"},"returnParameters":{"id":38634,"nodeType":"ParameterList","parameters":[],"src":"4786:0:47"},"scope":38870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38764,"nodeType":"FunctionDefinition","src":"5707:969:47","nodes":[],"body":{"id":38763,"nodeType":"Block","src":"5790:886:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38702,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5804:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5808:5:47","memberName":"value","nodeType":"MemberAccess","src":"5804:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5817:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5804:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38710,"nodeType":"IfStatement","src":"5800:135:47","trueBody":{"id":38709,"nodeType":"Block","src":"5820:115:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38706,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"5902:20:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5902:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38708,"nodeType":"RevertStatement","src":"5895:29:47"}]}},{"assignments":[38712,null],"declarations":[{"constant":false,"id":38712,"mutability":"mutable","name":"registered","nameLocation":"6001:10:47","nodeType":"VariableDeclaration","scope":38763,"src":"5996:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38711,"name":"bool","nodeType":"ElementaryTypeName","src":"5996:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":38717,"initialValue":{"arguments":[{"id":38715,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38696,"src":"6038:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":38713,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"6017:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6028:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42692,"src":"6017:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":38716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6017:30:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"5995:52:47"},{"condition":{"id":38719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6061:11:47","subExpression":{"id":38718,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38712,"src":"6062:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38724,"nodeType":"IfStatement","src":"6057:70:47","trueBody":{"id":38723,"nodeType":"Block","src":"6074:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38720,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"6095:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6095:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38722,"nodeType":"RevertStatement","src":"6088:28:47"}]}},{"assignments":[38727],"declarations":[{"constant":false,"id":38727,"mutability":"mutable","name":"supplySource","nameLocation":"6213:12:47","nodeType":"VariableDeclaration","scope":38763,"src":"6193:32:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":38726,"nodeType":"UserDefinedTypeName","pathNode":{"id":38725,"name":"SupplySource","nameLocations":["6193:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"6193:12:47"},"referencedDeclaration":50226,"src":"6193:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":38735,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38729,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38696,"src":"6251:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":38730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6260:8:47","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"6251:17:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6251:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38728,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"6228:22:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":38732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6228:43:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":38733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6272:12:47","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":50886,"src":"6228:56:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () view external returns (struct SupplySource memory)"}},"id":38734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6228:58:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"6193:93:47"},{"expression":{"arguments":[{"expression":{"id":38739,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"6316:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":38740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6327:6:47","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"6316:17:47","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"expression":{"id":38736,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38727,"src":"6296:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":38738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6309:6:47","memberName":"expect","nodeType":"MemberAccess","referencedDeclaration":48181,"src":"6296:19:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SupplySource_$50226_memory_ptr_$_t_enum$_SupplyKind_$50229_$returns$__$attached_to$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function (struct SupplySource memory,enum SupplyKind) pure"}},"id":38741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6296:38:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38742,"nodeType":"ExpressionStatement","src":"6296:38:47"},{"assignments":[38745],"declarations":[{"constant":false,"id":38745,"mutability":"mutable","name":"crossMsg","nameLocation":"6361:8:47","nodeType":"VariableDeclaration","scope":38763,"src":"6345:24:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38744,"nodeType":"UserDefinedTypeName","pathNode":{"id":38743,"name":"CrossMsg","nameLocations":["6345:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"6345:8:47"},"referencedDeclaration":49974,"src":"6345:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":38756,"initialValue":{"arguments":[{"id":38748,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38696,"src":"6423:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},{"expression":{"id":38749,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6453:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6457:6:47","memberName":"sender","nodeType":"MemberAccess","src":"6453:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38751,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38699,"src":"6481:2:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}},{"expression":{"id":38752,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6504:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6508:5:47","memberName":"value","nodeType":"MemberAccess","src":"6504:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":38754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6532:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":38746,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"6372:14:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossMsgHelper_$40781_$","typeString":"type(library CrossMsgHelper)"}},"id":38747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6387:13:47","memberName":"createFundMsg","nodeType":"MemberAccess","referencedDeclaration":40574,"src":"6372:28:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct SubnetID memory,address,struct FvmAddress memory,uint256,uint256) pure returns (struct CrossMsg memory)"}},"id":38755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["6415:6:47","6445:6:47","6477:2:47","6497:5:47","6527:3:47"],"names":["subnet","signer","to","value","fee"],"nodeType":"FunctionCall","src":"6372:213:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"6345:240:47"},{"expression":{"arguments":[{"id":38760,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38745,"src":"6660:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":38757,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"6632:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6643:16:47","memberName":"commitTopDownMsg","nodeType":"MemberAccess","referencedDeclaration":42446,"src":"6632:27:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":38761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6632:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38762,"nodeType":"ExpressionStatement","src":"6632:37:47"}]},"documentation":{"id":38693,"nodeType":"StructuredDocumentation","src":"5280:422:47","text":"@notice credits the received value to the specified address in the specified child subnet.\n @dev There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero,\n i.e. funding a subnet is free.\n @param subnetId: the destination subnet for the funds.\n @param to: the address to which to credit funds in the destination subnet."},"functionSelector":"18f44b70","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"5716:4:47","parameters":{"id":38700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38696,"mutability":"mutable","name":"subnetId","nameLocation":"5739:8:47","nodeType":"VariableDeclaration","scope":38764,"src":"5721:26:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":38695,"nodeType":"UserDefinedTypeName","pathNode":{"id":38694,"name":"SubnetID","nameLocations":["5721:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"5721:8:47"},"referencedDeclaration":50077,"src":"5721:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":38699,"mutability":"mutable","name":"to","nameLocation":"5769:2:47","nodeType":"VariableDeclaration","scope":38764,"src":"5749:22:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":38698,"nodeType":"UserDefinedTypeName","pathNode":{"id":38697,"name":"FvmAddress","nameLocations":["5749:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"5749:10:47"},"referencedDeclaration":49998,"src":"5749:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"5720:52:47"},"returnParameters":{"id":38701,"nodeType":"ParameterList","parameters":[],"src":"5790:0:47"},"scope":38870,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":38822,"nodeType":"FunctionDefinition","src":"7265:1025:47","nodes":[],"body":{"id":38821,"nodeType":"Block","src":"7378:912:47","nodes":[],"statements":[{"assignments":[38780],"declarations":[{"constant":false,"id":38780,"mutability":"mutable","name":"supplySource","nameLocation":"7662:12:47","nodeType":"VariableDeclaration","scope":38821,"src":"7642:32:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":38779,"nodeType":"UserDefinedTypeName","pathNode":{"id":38778,"name":"SupplySource","nameLocations":["7642:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"7642:12:47"},"referencedDeclaration":50226,"src":"7642:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":38788,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38782,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38768,"src":"7700:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":38783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7709:8:47","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"7700:17:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7700:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38781,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"7677:22:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":38785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7677:43:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":38786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7721:12:47","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":50886,"src":"7677:56:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () view external returns (struct SupplySource memory)"}},"id":38787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7677:58:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7642:93:47"},{"expression":{"arguments":[{"expression":{"id":38792,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"7765:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":38793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7776:5:47","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"7765:16:47","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"expression":{"id":38789,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38780,"src":"7745:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":38791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7758:6:47","memberName":"expect","nodeType":"MemberAccess","referencedDeclaration":48181,"src":"7745:19:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SupplySource_$50226_memory_ptr_$_t_enum$_SupplyKind_$50229_$returns$__$attached_to$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function (struct SupplySource memory,enum SupplyKind) pure"}},"id":38794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7745:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38795,"nodeType":"ExpressionStatement","src":"7745:37:47"},{"expression":{"arguments":[{"id":38799,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38773,"src":"7870:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38796,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38780,"src":"7844:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":38798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7857:4:47","memberName":"lock","nodeType":"MemberAccess","referencedDeclaration":48218,"src":"7844:17:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SupplySource_$50226_memory_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function (struct SupplySource memory,uint256)"}},"id":38800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["7863:5:47"],"names":["value"],"nodeType":"FunctionCall","src":"7844:34:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38801,"nodeType":"ExpressionStatement","src":"7844:34:47"},{"assignments":[38804],"declarations":[{"constant":false,"id":38804,"mutability":"mutable","name":"crossMsg","nameLocation":"7978:8:47","nodeType":"VariableDeclaration","scope":38821,"src":"7962:24:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38803,"nodeType":"UserDefinedTypeName","pathNode":{"id":38802,"name":"CrossMsg","nameLocations":["7962:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"7962:8:47"},"referencedDeclaration":49974,"src":"7962:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":38814,"initialValue":{"arguments":[{"id":38807,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38768,"src":"8040:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},{"expression":{"id":38808,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8070:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8074:6:47","memberName":"sender","nodeType":"MemberAccess","src":"8070:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38810,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38771,"src":"8098:2:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}},{"id":38811,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38773,"src":"8121:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":38812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8146:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":38805,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"7989:14:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossMsgHelper_$40781_$","typeString":"type(library CrossMsgHelper)"}},"id":38806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8004:13:47","memberName":"createFundMsg","nodeType":"MemberAccess","referencedDeclaration":40574,"src":"7989:28:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct SubnetID memory,address,struct FvmAddress memory,uint256,uint256) pure returns (struct CrossMsg memory)"}},"id":38813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8032:6:47","8062:6:47","8094:2:47","8114:5:47","8141:3:47"],"names":["subnet","signer","to","value","fee"],"nodeType":"FunctionCall","src":"7989:210:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"7962:237:47"},{"expression":{"arguments":[{"id":38818,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38804,"src":"8274:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":38815,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"8246:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8257:16:47","memberName":"commitTopDownMsg","nodeType":"MemberAccess","referencedDeclaration":42446,"src":"8246:27:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":38819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8246:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38820,"nodeType":"ExpressionStatement","src":"8246:37:47"}]},"documentation":{"id":38765,"nodeType":"StructuredDocumentation","src":"6682:578:47","text":"@notice Sends funds to a specified subnet receiver using ERC20 tokens.\n @dev This function locks the amount of ERC20 tokens into custody and then mints the supply in the specified subnet.\n It checks if the subnet's supply strategy is ERC20 and if not, the operation is reverted.\n It allows for free injection of funds into a subnet and is protected against reentrancy.\n @param subnetId The ID of the subnet where the funds will be sent to.\n @param to The funded address.\n @param amount The amount of ERC20 tokens to be sent."},"functionSelector":"0517e1aa","implemented":true,"kind":"function","modifiers":[{"id":38776,"kind":"modifierInvocation","modifierName":{"id":38775,"name":"nonReentrant","nameLocations":["7365:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"7365:12:47"},"nodeType":"ModifierInvocation","src":"7365:12:47"}],"name":"fundWithToken","nameLocation":"7274:13:47","parameters":{"id":38774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38768,"mutability":"mutable","name":"subnetId","nameLocation":"7306:8:47","nodeType":"VariableDeclaration","scope":38822,"src":"7288:26:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":38767,"nodeType":"UserDefinedTypeName","pathNode":{"id":38766,"name":"SubnetID","nameLocations":["7288:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"7288:8:47"},"referencedDeclaration":50077,"src":"7288:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":38771,"mutability":"mutable","name":"to","nameLocation":"7336:2:47","nodeType":"VariableDeclaration","scope":38822,"src":"7316:22:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":38770,"nodeType":"UserDefinedTypeName","pathNode":{"id":38769,"name":"FvmAddress","nameLocations":["7316:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"7316:10:47"},"referencedDeclaration":49998,"src":"7316:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":38773,"mutability":"mutable","name":"amount","nameLocation":"7348:6:47","nodeType":"VariableDeclaration","scope":38822,"src":"7340:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38772,"name":"uint256","nodeType":"ElementaryTypeName","src":"7340:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7287:68:47"},"returnParameters":{"id":38777,"nodeType":"ParameterList","parameters":[],"src":"7378:0:47"},"scope":38870,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38869,"nodeType":"FunctionDefinition","src":"8641:631:47","nodes":[],"body":{"id":38868,"nodeType":"Block","src":"8699:573:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38829,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8713:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8717:5:47","memberName":"value","nodeType":"MemberAccess","src":"8713:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":38831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8726:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8713:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38837,"nodeType":"IfStatement","src":"8709:138:47","trueBody":{"id":38836,"nodeType":"Block","src":"8729:118:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38833,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"8814:20:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8814:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38835,"nodeType":"RevertStatement","src":"8807:29:47"}]}},{"assignments":[38840],"declarations":[{"constant":false,"id":38840,"mutability":"mutable","name":"crossMsg","nameLocation":"8872:8:47","nodeType":"VariableDeclaration","scope":38868,"src":"8856:24:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38839,"nodeType":"UserDefinedTypeName","pathNode":{"id":38838,"name":"CrossMsg","nameLocations":["8856:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"8856:8:47"},"referencedDeclaration":49974,"src":"8856:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":38852,"initialValue":{"arguments":[{"expression":{"id":38843,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"8937:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8939:11:47","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"8937:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},{"expression":{"id":38845,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8972:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8976:6:47","memberName":"sender","nodeType":"MemberAccess","src":"8972:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38847,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38826,"src":"9000:2:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"}},{"expression":{"id":38848,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9023:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9027:5:47","memberName":"value","nodeType":"MemberAccess","src":"9023:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":38850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9051:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":38841,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"8883:14:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossMsgHelper_$40781_$","typeString":"type(library CrossMsgHelper)"}},"id":38842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8898:16:47","memberName":"createReleaseMsg","nodeType":"MemberAccess","referencedDeclaration":40531,"src":"8883:31:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct SubnetID memory,address,struct FvmAddress memory,uint256,uint256) pure returns (struct CrossMsg memory)"}},"id":38851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8929:6:47","8964:6:47","8996:2:47","9016:5:47","9046:3:47"],"names":["subnet","signer","to","value","fee"],"nodeType":"FunctionCall","src":"8883:230:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"8856:257:47"},{"expression":{"arguments":[{"id":38856,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38840,"src":"9153:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":38853,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"9124:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":38855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9135:17:47","memberName":"commitBottomUpMsg","nodeType":"MemberAccess","referencedDeclaration":42612,"src":"9124:28:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":38857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9124:38:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38858,"nodeType":"ExpressionStatement","src":"9124:38:47"},{"expression":{"arguments":[{"expression":{"id":38864,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9255:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9259:5:47","memberName":"value","nodeType":"MemberAccess","src":"9255:9:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":38861,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36861,"src":"9226:17:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9218:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38859,"name":"address","nodeType":"ElementaryTypeName","src":"9218:8:47","stateMutability":"payable","typeDescriptions":{}}},"id":38862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9218:26:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9245:9:47","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"9218:36:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9218:47:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38867,"nodeType":"ExpressionStatement","src":"9218:47:47"}]},"documentation":{"id":38823,"nodeType":"StructuredDocumentation","src":"8296:340:47","text":"@notice release() burns the received value locally in subnet and commits a bottom-up message to release the assets in the parent.\n The local supply of a subnet is always the native coin, so this method doesn't have to deal with tokens.\n @param to: the address to which to credit funds in the parent subnet."},"functionSelector":"6b2c1eef","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"8650:7:47","parameters":{"id":38827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38826,"mutability":"mutable","name":"to","nameLocation":"8678:2:47","nodeType":"VariableDeclaration","scope":38869,"src":"8658:22:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":38825,"nodeType":"UserDefinedTypeName","pathNode":{"id":38824,"name":"FvmAddress","nameLocations":["8658:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"8658:10:47"},"referencedDeclaration":49998,"src":"8658:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"8657:24:47"},"returnParameters":{"id":38828,"nodeType":"ParameterList","parameters":[],"src":"8699:0:47"},"scope":38870,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":38366,"name":"GatewayActorModifiers","nameLocations":["1360:21:47"],"nodeType":"IdentifierPath","referencedDeclaration":43137,"src":"1360:21:47"},"id":38367,"nodeType":"InheritanceSpecifier","src":"1360:21:47"},{"baseName":{"id":38368,"name":"ReentrancyGuard","nameLocations":["1383:15:47"],"nodeType":"IdentifierPath","referencedDeclaration":44013,"src":"1383:15:47"},"id":38369,"nodeType":"InheritanceSpecifier","src":"1383:15:47"}],"canonicalName":"GatewayManagerFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[38870,44013,43137],"name":"GatewayManagerFacet","nameLocation":"1337:19:47","scope":38871,"usedErrors":[1134,1138,32118,32461,32466,32469,37370,37374,37402,37426,37460,37470,37472,37482,37526,43961,48094]}],"license":"MIT OR Apache-2.0"},"id":47} \ No newline at end of file diff --git a/.out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json b/.out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json index 2f496a82f..e5a70466f 100644 --- a/.out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json +++ b/.out/GatewayMessengerFacet.sol/GatewayMessengerFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"propagate","inputs":[{"name":"msgCid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendUserXnetMessage","inputs":[{"name":"crossMsg","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"payable"},{"type":"error","name":"CallFailed","inputs":[]},{"type":"error","name":"CannotSendCrossMsgToItself","inputs":[]},{"type":"error","name":"InsufficientFunds","inputs":[]},{"type":"error","name":"InvalidCrossMsgDstSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgFromSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgValue","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NotEnoughFee","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657611fc4908161001c8239f35b600080fdfe60406080815260048036101561001457600080fd5b600091823560e01c8063210b944e1461016c576325bf0db61461003657600080fd5b602036600319011261016857813560ff602c5460101c161561013957808452600360205281842090600b820154601c54811061012957341061011a57906100a591600861008a610085846109db565b610c8f565b92015490865260036020526100a0848720610b47565b611886565b6100b1601c5434610582565b806100ba578380f35b80471061010c578380808093335af13d15610107573d6100d98161049e565b906100e68451928361047d565b81528460203d92013e5b156100fa57808380f35b51633204506f60e01b8152fd5b6100f0565b505163356680b760e01b8152fd5b505051631036b5ad60e31b8152fd5b505050516334472ad760e11b8152fd5b602083610164846101486104b9565b905193849363015538b160e01b85528401526024830190610528565b0390fd5b8280fd5b50600319906020368301811361042d576001600160401b039380358581116104295780820194848183360301126104255760ff602c5460081c161561041757846101b68780610568565b01356101cf60c06101c78980610568565b013534610582565b036104075761021d846101fe6101ee6101e88a80610568565b806105a5565b6101f93691806105a5565b6105e5565b875163c836244d60e01b815286810189905292839160448301906106a4565b848282030160248301526060898201918c6019541681528a85820152601a548093520190601a8d52600080516020611f6f833981519152908d5b8181106103e5575050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103db5789916103ae575b501561039e5784519661029c88610431565b86358181116103925760e090840192833603011261039a578551916102c083610462565b84810135828111610396576102da908636918401016107b3565b83526024810135828111610396576102f7908636918401016107b3565b86840152604481013587840152610310606482016105ba565b606084015260848101356001600160e01b03198116810361039657608084015260a48101359182116103925761034f60c492602496369184010161076c565b60a0840152013560c08201528652013590811515820361038e57846103849261037d9261038b970152610c8f565b9280610568565b0135611886565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ce9150853d87116103d4575b6103c6818361047d565b81019061068c565b3861028a565b503d6103bc565b86513d8b823e3d90fd5b82546001600160a01b031684528a958795509093019260019283019201610257565b84516360ec4e6b60e11b81528390fd5b5050610164836101486104b9565b8780fd5b8680fd5b8480fd5b604081019081106001600160401b0382111761044c57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b0382111761044c57604052565b90601f801991011681019081106001600160401b0382111761044c57604052565b6001600160401b03811161044c57601f01601f191660200190565b60405190606082018281106001600160401b0382111761044c57604052603a82527f732d6e6574206d657373616765732069732064697361626c65640000000000006040837f537570706f727420666f722067656e6572616c2d707572706f73652063726f7360208201520152565b919082519283825260005b848110610554575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610533565b90359060de198136030182121561057d570190565b600080fd5b9190820391821161058f57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561057d570190565b35906001600160401b038216820361057d57565b6001600160401b03811161044c5760051b60200190565b919060408382031261057d57604051926105fe84610431565b83610608826105ba565b815260209182810135906001600160401b03821161057d57019280601f8501121561057d578335610638816105ce565b94610646604051968761047d565b818652848087019260051b82010192831161057d578401905b82821061066d575050500152565b81356001600160a01b038116810361057d57815290840190840161065f565b9081602091031261057d5751801515810361057d5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106e2575050505090565b83516001600160a01b0316855293810193928101926001016106d4565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020611f6f833981519152916000905b82821061074c575050505090565b83546001600160a01b03168552938401936001938401939091019061073e565b81601f8201121561057d578035906107838261049e565b92610791604051948561047d565b8284526020838301011161057d57816000926020809301838601378301015290565b919060408382031261057d57604051926107cc84610431565b838135916001600160401b039283811161057d57846107ec9183016105e5565b825260208101359083821161057d570160408185031261057d576040519361081385610431565b813560ff8116810361057d578552602082013593841161057d5760209361083a920161076c565b828401520152565b9060405161084f81610431565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061089e575050505061089a9250038461047d565b0152565b83546001600160a01b0316855289955090930192918101918101610882565b90600182811c921680156108ed575b60208310146108d757565b634e487b7160e01b600052602260045260246000fd5b91607f16916108cc565b906040519182600082549261090b846108bd565b90818452600194858116908160001461097a5750600114610937575b50506109359250038361047d565b565b9093915060005260209081600020936000915b81831061096257505061093593508201013880610927565b8554888401850152948501948794509183019161094a565b91505061093594506020925060ff191682840152151560051b8201013880610927565b90604051916109ab83610431565b6020836109b783610842565b815261083a6003604051946109cb86610431565b60ff6002820154168652016108f7565b906040516109e881610431565b602060ff600c83956040516109fc81610462565b610a058261099d565b8152610a136004830161099d565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a53600a83016108f7565b60a0820152600b82015460c082015285520154161515910152565b818110610a79575050565b60008155600101610a6e565b90600160401b811161044c57815490808355818110610aa357505050565b6109359260005260206000209182019101610a6e565b610ac381546108bd565b9081610acd575050565b81601f60009311600114610adf575055565b908083918252610afe601f60208420940160051c840160018501610a6e565b5555565b600361093591600081556001810180546000825580610b2b575b50506000600282015501610ab9565b610b4091600052602060002090810190610a6e565b3880610b1c565b600c600091610b5581610b02565b610b6160048201610b02565b826008820155826009820155610b79600a8201610ab9565b82600b8201550155565b60406020610bbf9381610b9d8551858452858401906106a4565b940151908281860391015260ff81511684520151918160208201520190610528565b90565b51906001600160a01b038216820361057d57565b906020808383031261057d5782516001600160401b039384821161057d57019260408484031261057d5760405193610c0d85610431565b8051828116810361057d5785528281015191821161057d57019180601f8401121561057d578251610c3d816105ce565b93610c4b604051958661047d565b818552838086019260051b82010192831161057d5783809101915b838310610c77575050505082015290565b8190610c8284610bc2565b8152019101908390610c66565b60208151015151604051630c133d1360e31b81526020600482015260208180610cbb60248201866106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611867575b506118555760405163c836244d60e01b81526040600482015260208180610d21610d1060448301876106a4565b8281036003190160248401526106ff565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611836575b5061182457610e0a9082516020815151916040518095819263f47ad7eb60e01b83526040600484015260c0610df0610d8e835160e06044880152610124870190610b83565b610da9888501519160431992838983030160648a0152610b83565b6040850151608488015260608501516001600160401b031660a488015260808501516001600160e01b03191660c488015260a085015187820390920160e488015290610528565b9101516101048401528281036003190160248401526106ff565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4928315611103576000936117e1575b5060009160028410156117cd578290600185146116bc575b5050506111ff57156111b5575b610e826020825101515160405191829163089032d560e01b83526040600484015260448301906106a4565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a600052600080516020611f6f8339815191529060005b818110611193575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611172575b506040516390ba52cf60e01b81526020600482018190528180610f2760248201866106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611140575b506000526000602052604060002090610f906020610f6f60048501610842565b60405180938192630c133d1360e31b835284600484015260248301906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611121575b5061110f576003820180546001600160401b03610fdd818316806060895101526118f8565b16906001600160401b0319161790556002604084510151920190815492830180931161058f5761102c9260209255604051809381926304e384ff60e21b835284600484015260248301906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611103576000916110a1575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161109991830190611910565b0390a2600090565b906020823d6020116110fb575b816110bb6020938361047d565b810103126110f857506110996110f17f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bc2565b9150611054565b80fd5b3d91506110ae565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b61113a915060203d6020116103d4576103c6818361047d565b38610fb8565b906020823d60201161116a575b8161115a6020938361047d565b810103126110f857505138610f4f565b3d915061114d565b61118d913d8091833e611185818361047d565b810190610bd6565b38610f01565b82546001600160a01b0316845285945060209093019260019283019201610eca565b601d546001600160401b038160481c166001600160401b03811461058f57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601d55610e57565b50601f5480156116a657806001600160401b034316046001810180911161058f5781810291818304149015171561058f57601d5468ffffffffffffffff006112596001600160401b038360081c16806060875101526118f8565b60081b169068ffffffffffffffff00191617601d55806000526009602052604060002090600282018054156000146112db57926003836112a79360409660198597036112af575b55016119db565b510151151590565b6001600160401b03601954166001600160401b03198454161783556112d660018401611efd565b6112a0565b505060038101546020546001600160401b03160361169157600381015490611302826105ce565b91611310604051938461047d565b808352601f1961131f826105ce565b0160005b818110611629575050604051928360608101106001600160401b0360608601111761044c579084916060850160405261135e60608601610431565b6001600160401b03601954166060860152604051806020601a54918281520190601a600052600080516020611f6f8339815191529060005b81811061160757505050816113ac91038261047d565b6080860152606085018552436020860152604085015260005b8181106115c85750604051602081526113ea85516060602084015260808301906106a4565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611593575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a26000600384015580611548575b50600361147092016119db565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b03831161044c576020906114c78484610a85565b0190600052602060002060005b83811061152b575050506020820151600284015550604081015151916003019060005b83811061150a57505050506040906112a7565b8061152561151e6001936040860151611ee9565b51856119db565b016114f7565b82516001600160a01b0316818301556020909201916001016114d4565b600d9150818102908282040361058f57908491600384016000526020600020908101905b81811061157a575050611463565b82935061158981939293610b47565b019085929161156c565b91939697509193946020806115b4600193601f198682030187528a51611910565b98019301930190928a979695949293611422565b60019192506115fd816115de81600388016119a9565b506115ed6040890151916109db565b6115f78383611ee9565b52611ee9565b50019084916113c5565b82546001600160a01b031684528a975060209093019260019283019201611396565b60209060405161163881610431565b60405161164481610462565b61164c611ec2565b8152611656611ec2565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611323565b906116a1816003604094016119db565b6112a7565b634e487b7160e01b600052601260045260246000fd5b6116e6906116f86040519485938493631ccc893360e11b85526040600486015260448501906106a4565b838103600319016024850152906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117c257610d1061174d9260209285916117a8575b50604051938492839263c836244d60e01b84526040600485015260448401906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561179c579161177d575b5015388181610e4a565b611796915060203d6020116103d4576103c6818361047d565b38611773565b604051903d90823e3d90fd5b6117bc91503d8087833e611185818361047d565b38611729565b6040513d84823e3d90fd5b634e487b7160e01b83526021600452602483fd5b6020939193813d60201161181c575b816117fd6020938361047d565b8101031261181857519060028210156110f857509138610e32565b5080fd5b3d91506117f0565b604051632f3335ff60e21b8152600490fd5b61184f915060203d6020116103d4576103c6818361047d565b38610d49565b60405163c5f563eb60e01b8152600490fd5b611880915060203d6020116103d4576103c6818361047d565b38610ce3565b9061188e5750565b8047106118e65760008080809360635af13d156118e1573d6118af8161049e565b906118bd604051928361047d565b8152600060203d92013e5b156118cf57565b604051633204506f60e01b8152600490fd5b6118c8565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161058f57565b906020808351936040845260c0611996611937875160e06040890152610120880190610b83565b6119528589015191603f1992838a83030160608b0152610b83565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610528565b9501516101008501520151151591015290565b80548210156119c557600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b81101561044c576119fa9060019283820181556119a9565b919091611e92578251918251928351926001600160401b03808551166001600160401b031990818654161785558285019260208097015180519084821161044c578890611a478388610a85565b01600095865288862083875b848110611e77575050505050866002870198015160ff8151169860ff19998a82541617905560039288848901920151918251868111611d915780611a9783546108bd565b94898d601f9788808211611e4a575b505050508c90868311600114611ddf578a92611dd4575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a0191015190815191878311611dc0578b90611b068484610a85565b019088528a882085895b848110611da557505050505088600689019101519060ff8251168b8254161790558860078901910151805190868211611d91578190611b4f84546108bd565b8c868211611d64575b50508b90858311600114611d05578992611cfa575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a0870151908151958611611ce657611bdf87546108bd565b8a848211611caf575b505089928611600114611c4057938560ff9a999794819460c09894600c9b9895611c35575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611c0d565b9294939190601f1985168785528a8520945b818110611c9a575092859260ff9b9a989592600c9a9760c0999610611c80575b50505050811b019055611c1d565b01519060f884600019921b161c1916905538808080611c72565b82840151865594870194928b01928b01611c52565b611cd6918984528582852091818b0160051c8301938b10611cdd575b0160051c0190610a6e565b388a611be8565b92508192611ccb565b634e487b7160e01b81526041600452602490fd5b015190503880611b6d565b848a528c8a208794509190601f1984168b8f5b828210611d4d5750508411611d35575b505050811b019055611b7f565b015160001983891b60f8161c19169055388080611d28565b8385015186558a979095019493840193018f611d18565b611d8a91868c5287828d209181870160051c8301938710611cdd570160051c0190610a6e565b388c611b58565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611b10565b634e487b7160e01b89526041600452602489fd5b015190503880611abd565b879350908d91601f198416868d52838d20938d905b828210611e295750508411611e11575b505050811b019055611acf565b0151600019838a1b60f8161c19169055388080611e04565b91929395968291958786015181550195019301908f918a9695949392611df4565b828489611e6e9652209181870160051c8301938710611cdd570160051c0190610a6e565b898d3888611aa6565b83516001600160a01b031683820155928b0192859101611a53565b634e487b7160e01b600052600060045260246000fd5b60405190611eb582610431565b6060602083600081520152565b60405190611ecf82610431565b81611ed8611ea8565b81526020611ee4611ea8565b910152565b80518210156119c55760209160051b010190565b601a8114611f6b57601a54906001600160401b03821161044c57611f218282610a85565b600090815260208120600080516020611f6f83398151915280545b848410611f4a575050505050565b600191820180546001600160a01b0390921684860155939091019290611f3c565b5056fe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea264697066735822122035cc7096ac779f53abd63a316e6e38a2bb2e1eebdb2c2e1e879ef88b6bc054af64736f6c63430008130033","sourceMap":"979:4419:46:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":3626,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":643,"length":20},{"start":3291,"length":20},{"start":3393,"length":20},{"start":3833,"length":20},{"start":3911,"length":20},{"start":4016,"length":20},{"start":4172,"length":20},{"start":5912,"length":20},{"start":5997,"length":20}]}}},"deployedBytecode":{"object":"0x60406080815260048036101561001457600080fd5b600091823560e01c8063210b944e1461016c576325bf0db61461003657600080fd5b602036600319011261016857813560ff602c5460101c161561013957808452600360205281842090600b820154601c54811061012957341061011a57906100a591600861008a610085846109db565b610c8f565b92015490865260036020526100a0848720610b47565b611886565b6100b1601c5434610582565b806100ba578380f35b80471061010c578380808093335af13d15610107573d6100d98161049e565b906100e68451928361047d565b81528460203d92013e5b156100fa57808380f35b51633204506f60e01b8152fd5b6100f0565b505163356680b760e01b8152fd5b505051631036b5ad60e31b8152fd5b505050516334472ad760e11b8152fd5b602083610164846101486104b9565b905193849363015538b160e01b85528401526024830190610528565b0390fd5b8280fd5b50600319906020368301811361042d576001600160401b039380358581116104295780820194848183360301126104255760ff602c5460081c161561041757846101b68780610568565b01356101cf60c06101c78980610568565b013534610582565b036104075761021d846101fe6101ee6101e88a80610568565b806105a5565b6101f93691806105a5565b6105e5565b875163c836244d60e01b815286810189905292839160448301906106a4565b848282030160248301526060898201918c6019541681528a85820152601a548093520190601a8d52600080516020611f6f833981519152908d5b8181106103e5575050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103db5789916103ae575b501561039e5784519661029c88610431565b86358181116103925760e090840192833603011261039a578551916102c083610462565b84810135828111610396576102da908636918401016107b3565b83526024810135828111610396576102f7908636918401016107b3565b86840152604481013587840152610310606482016105ba565b606084015260848101356001600160e01b03198116810361039657608084015260a48101359182116103925761034f60c492602496369184010161076c565b60a0840152013560c08201528652013590811515820361038e57846103849261037d9261038b970152610c8f565b9280610568565b0135611886565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ce9150853d87116103d4575b6103c6818361047d565b81019061068c565b3861028a565b503d6103bc565b86513d8b823e3d90fd5b82546001600160a01b031684528a958795509093019260019283019201610257565b84516360ec4e6b60e11b81528390fd5b5050610164836101486104b9565b8780fd5b8680fd5b8480fd5b604081019081106001600160401b0382111761044c57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b0382111761044c57604052565b90601f801991011681019081106001600160401b0382111761044c57604052565b6001600160401b03811161044c57601f01601f191660200190565b60405190606082018281106001600160401b0382111761044c57604052603a82527f732d6e6574206d657373616765732069732064697361626c65640000000000006040837f537570706f727420666f722067656e6572616c2d707572706f73652063726f7360208201520152565b919082519283825260005b848110610554575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610533565b90359060de198136030182121561057d570190565b600080fd5b9190820391821161058f57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561057d570190565b35906001600160401b038216820361057d57565b6001600160401b03811161044c5760051b60200190565b919060408382031261057d57604051926105fe84610431565b83610608826105ba565b815260209182810135906001600160401b03821161057d57019280601f8501121561057d578335610638816105ce565b94610646604051968761047d565b818652848087019260051b82010192831161057d578401905b82821061066d575050500152565b81356001600160a01b038116810361057d57815290840190840161065f565b9081602091031261057d5751801515810361057d5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106e2575050505090565b83516001600160a01b0316855293810193928101926001016106d4565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020611f6f833981519152916000905b82821061074c575050505090565b83546001600160a01b03168552938401936001938401939091019061073e565b81601f8201121561057d578035906107838261049e565b92610791604051948561047d565b8284526020838301011161057d57816000926020809301838601378301015290565b919060408382031261057d57604051926107cc84610431565b838135916001600160401b039283811161057d57846107ec9183016105e5565b825260208101359083821161057d570160408185031261057d576040519361081385610431565b813560ff8116810361057d578552602082013593841161057d5760209361083a920161076c565b828401520152565b9060405161084f81610431565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061089e575050505061089a9250038461047d565b0152565b83546001600160a01b0316855289955090930192918101918101610882565b90600182811c921680156108ed575b60208310146108d757565b634e487b7160e01b600052602260045260246000fd5b91607f16916108cc565b906040519182600082549261090b846108bd565b90818452600194858116908160001461097a5750600114610937575b50506109359250038361047d565b565b9093915060005260209081600020936000915b81831061096257505061093593508201013880610927565b8554888401850152948501948794509183019161094a565b91505061093594506020925060ff191682840152151560051b8201013880610927565b90604051916109ab83610431565b6020836109b783610842565b815261083a6003604051946109cb86610431565b60ff6002820154168652016108f7565b906040516109e881610431565b602060ff600c83956040516109fc81610462565b610a058261099d565b8152610a136004830161099d565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a53600a83016108f7565b60a0820152600b82015460c082015285520154161515910152565b818110610a79575050565b60008155600101610a6e565b90600160401b811161044c57815490808355818110610aa357505050565b6109359260005260206000209182019101610a6e565b610ac381546108bd565b9081610acd575050565b81601f60009311600114610adf575055565b908083918252610afe601f60208420940160051c840160018501610a6e565b5555565b600361093591600081556001810180546000825580610b2b575b50506000600282015501610ab9565b610b4091600052602060002090810190610a6e565b3880610b1c565b600c600091610b5581610b02565b610b6160048201610b02565b826008820155826009820155610b79600a8201610ab9565b82600b8201550155565b60406020610bbf9381610b9d8551858452858401906106a4565b940151908281860391015260ff81511684520151918160208201520190610528565b90565b51906001600160a01b038216820361057d57565b906020808383031261057d5782516001600160401b039384821161057d57019260408484031261057d5760405193610c0d85610431565b8051828116810361057d5785528281015191821161057d57019180601f8401121561057d578251610c3d816105ce565b93610c4b604051958661047d565b818552838086019260051b82010192831161057d5783809101915b838310610c77575050505082015290565b8190610c8284610bc2565b8152019101908390610c66565b60208151015151604051630c133d1360e31b81526020600482015260208180610cbb60248201866106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611867575b506118555760405163c836244d60e01b81526040600482015260208180610d21610d1060448301876106a4565b8281036003190160248401526106ff565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611836575b5061182457610e0a9082516020815151916040518095819263f47ad7eb60e01b83526040600484015260c0610df0610d8e835160e06044880152610124870190610b83565b610da9888501519160431992838983030160648a0152610b83565b6040850151608488015260608501516001600160401b031660a488015260808501516001600160e01b03191660c488015260a085015187820390920160e488015290610528565b9101516101048401528281036003190160248401526106ff565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4928315611103576000936117e1575b5060009160028410156117cd578290600185146116bc575b5050506111ff57156111b5575b610e826020825101515160405191829163089032d560e01b83526040600484015260448301906106a4565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a600052600080516020611f6f8339815191529060005b818110611193575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611172575b506040516390ba52cf60e01b81526020600482018190528180610f2760248201866106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611140575b506000526000602052604060002090610f906020610f6f60048501610842565b60405180938192630c133d1360e31b835284600484015260248301906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611121575b5061110f576003820180546001600160401b03610fdd818316806060895101526118f8565b16906001600160401b0319161790556002604084510151920190815492830180931161058f5761102c9260209255604051809381926304e384ff60e21b835284600484015260248301906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611103576000916110a1575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161109991830190611910565b0390a2600090565b906020823d6020116110fb575b816110bb6020938361047d565b810103126110f857506110996110f17f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bc2565b9150611054565b80fd5b3d91506110ae565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b61113a915060203d6020116103d4576103c6818361047d565b38610fb8565b906020823d60201161116a575b8161115a6020938361047d565b810103126110f857505138610f4f565b3d915061114d565b61118d913d8091833e611185818361047d565b810190610bd6565b38610f01565b82546001600160a01b0316845285945060209093019260019283019201610eca565b601d546001600160401b038160481c166001600160401b03811461058f57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601d55610e57565b50601f5480156116a657806001600160401b034316046001810180911161058f5781810291818304149015171561058f57601d5468ffffffffffffffff006112596001600160401b038360081c16806060875101526118f8565b60081b169068ffffffffffffffff00191617601d55806000526009602052604060002090600282018054156000146112db57926003836112a79360409660198597036112af575b55016119db565b510151151590565b6001600160401b03601954166001600160401b03198454161783556112d660018401611efd565b6112a0565b505060038101546020546001600160401b03160361169157600381015490611302826105ce565b91611310604051938461047d565b808352601f1961131f826105ce565b0160005b818110611629575050604051928360608101106001600160401b0360608601111761044c579084916060850160405261135e60608601610431565b6001600160401b03601954166060860152604051806020601a54918281520190601a600052600080516020611f6f8339815191529060005b81811061160757505050816113ac91038261047d565b6080860152606085018552436020860152604085015260005b8181106115c85750604051602081526113ea85516060602084015260808301906106a4565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611593575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a26000600384015580611548575b50600361147092016119db565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b03831161044c576020906114c78484610a85565b0190600052602060002060005b83811061152b575050506020820151600284015550604081015151916003019060005b83811061150a57505050506040906112a7565b8061152561151e6001936040860151611ee9565b51856119db565b016114f7565b82516001600160a01b0316818301556020909201916001016114d4565b600d9150818102908282040361058f57908491600384016000526020600020908101905b81811061157a575050611463565b82935061158981939293610b47565b019085929161156c565b91939697509193946020806115b4600193601f198682030187528a51611910565b98019301930190928a979695949293611422565b60019192506115fd816115de81600388016119a9565b506115ed6040890151916109db565b6115f78383611ee9565b52611ee9565b50019084916113c5565b82546001600160a01b031684528a975060209093019260019283019201611396565b60209060405161163881610431565b60405161164481610462565b61164c611ec2565b8152611656611ec2565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611323565b906116a1816003604094016119db565b6112a7565b634e487b7160e01b600052601260045260246000fd5b6116e6906116f86040519485938493631ccc893360e11b85526040600486015260448501906106a4565b838103600319016024850152906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117c257610d1061174d9260209285916117a8575b50604051938492839263c836244d60e01b84526040600485015260448401906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561179c579161177d575b5015388181610e4a565b611796915060203d6020116103d4576103c6818361047d565b38611773565b604051903d90823e3d90fd5b6117bc91503d8087833e611185818361047d565b38611729565b6040513d84823e3d90fd5b634e487b7160e01b83526021600452602483fd5b6020939193813d60201161181c575b816117fd6020938361047d565b8101031261181857519060028210156110f857509138610e32565b5080fd5b3d91506117f0565b604051632f3335ff60e21b8152600490fd5b61184f915060203d6020116103d4576103c6818361047d565b38610d49565b60405163c5f563eb60e01b8152600490fd5b611880915060203d6020116103d4576103c6818361047d565b38610ce3565b9061188e5750565b8047106118e65760008080809360635af13d156118e1573d6118af8161049e565b906118bd604051928361047d565b8152600060203d92013e5b156118cf57565b604051633204506f60e01b8152600490fd5b6118c8565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161058f57565b906020808351936040845260c0611996611937875160e06040890152610120880190610b83565b6119528589015191603f1992838a83030160608b0152610b83565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610528565b9501516101008501520151151591015290565b80548210156119c557600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b81101561044c576119fa9060019283820181556119a9565b919091611e92578251918251928351926001600160401b03808551166001600160401b031990818654161785558285019260208097015180519084821161044c578890611a478388610a85565b01600095865288862083875b848110611e77575050505050866002870198015160ff8151169860ff19998a82541617905560039288848901920151918251868111611d915780611a9783546108bd565b94898d601f9788808211611e4a575b505050508c90868311600114611ddf578a92611dd4575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a0191015190815191878311611dc0578b90611b068484610a85565b019088528a882085895b848110611da557505050505088600689019101519060ff8251168b8254161790558860078901910151805190868211611d91578190611b4f84546108bd565b8c868211611d64575b50508b90858311600114611d05578992611cfa575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a0870151908151958611611ce657611bdf87546108bd565b8a848211611caf575b505089928611600114611c4057938560ff9a999794819460c09894600c9b9895611c35575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611c0d565b9294939190601f1985168785528a8520945b818110611c9a575092859260ff9b9a989592600c9a9760c0999610611c80575b50505050811b019055611c1d565b01519060f884600019921b161c1916905538808080611c72565b82840151865594870194928b01928b01611c52565b611cd6918984528582852091818b0160051c8301938b10611cdd575b0160051c0190610a6e565b388a611be8565b92508192611ccb565b634e487b7160e01b81526041600452602490fd5b015190503880611b6d565b848a528c8a208794509190601f1984168b8f5b828210611d4d5750508411611d35575b505050811b019055611b7f565b015160001983891b60f8161c19169055388080611d28565b8385015186558a979095019493840193018f611d18565b611d8a91868c5287828d209181870160051c8301938710611cdd570160051c0190610a6e565b388c611b58565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611b10565b634e487b7160e01b89526041600452602489fd5b015190503880611abd565b879350908d91601f198416868d52838d20938d905b828210611e295750508411611e11575b505050811b019055611acf565b0151600019838a1b60f8161c19169055388080611e04565b91929395968291958786015181550195019301908f918a9695949392611df4565b828489611e6e9652209181870160051c8301938710611cdd570160051c0190610a6e565b898d3888611aa6565b83516001600160a01b031683820155928b0192859101611a53565b634e487b7160e01b600052600060045260246000fd5b60405190611eb582610431565b6060602083600081520152565b60405190611ecf82610431565b81611ed8611ea8565b81526020611ee4611ea8565b910152565b80518210156119c55760209160051b010190565b601a8114611f6b57601a54906001600160401b03821161044c57611f218282610a85565b600090815260208120600080516020611f6f83398151915280545b848410611f4a575050505050565b600191820180546001600160a01b0390921684860155939091019290611f3c565b5056fe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea264697066735822122035cc7096ac779f53abd63a316e6e38a2bb2e1eebdb2c2e1e879ef88b6bc054af64736f6c63430008130033","sourceMap":"979:4419:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;979:4419:46;;;;;;;2496:20;979:4419;;;;2495:21;2491:110;;916:60;;;979:4419;;916:60;;;;2678:20;;;;916:60;4360:16:59;916:60:46;4354:22:59;;4350:74;;4437:9;:15;4433:69;;916:60:46;3142:10;916:60;3035:22;2728:29;916:60;;;:::i;:::-;2728:29;:::i;:::-;3035:22;;916:60;;;;979:4419;;916:60;3067:24;916:60;;;3067:24;:::i;:::-;3142:10;:::i;:::-;3188:28;4360:16:59;916:60:46;4437:9:59;3188:28:46;:::i;:::-;3284:17;3280:91;;979:4419;;;3280:91;13330:21:1;;:31;13326:63;;3325:10:46;;;;;;13419:35:1;;979:4419:46;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;13468:8:1;13464:33;;3280:91:46;979:4419;;;13464:33:1;979:4419:46;-1:-1:-1;;;13485:12:1;;;979:4419:46;;;13326:63:1;-1:-1:-1;979:4419:46;-1:-1:-1;;;13370:19:1;;;4433:69:59;-1:-1:-1;;979:4419:46;-1:-1:-1;;;4475:16:59;;;4350:74;979:4419:46;;;;4399:14:59;;;;;;2491:110:46;979:4419;;802:60;979:4419;;;:::i;:::-;;;1601:48;;;;;;2539:51;;;;802:60;;;;;;:::i;:::-;2539:51;;;979:4419;;;;;-1:-1:-1;;;979:4419:46;;;;;;-1:-1:-1;979:4419:46;;-1:-1:-1;;;;;979:4419:46;;;;;;;;;;;;;;;;;;;;;;1554:24;979:4419;;;;1553:25;1549:111;;1674:16;;;;;:::i;:::-;:22;802:60;1700:32;1712:20;:16;;;;:::i;:::-;:20;802:60;1700:9;:32;:::i;:::-;1674:58;1670:118;;802:60;1969:16;802:60;1969:21;:16;;;;:::i;:::-;:21;;:::i;:::-;:30;979:4419;1969:30;;;:::i;:::-;802:60;:::i;:::-;979:4419;;-1:-1:-1;;;1969:52:46;;;;;802:60;;;979:4419;;;802:60;;;;;:::i;:::-;;;;;;;;;;;;;;;;2007:13;802:60;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;802:60:46;;;;;;;;1969:52;;;;;;:37;;:52;;;;;;;;;;;802:60;1968:53;;1964:118;;979:4419;;;;;;:::i;:::-;802:60;;;;;;;979:4419;802:60;;;979:4419;;;802:60;;;;;979:4419;;;;;;:::i;:::-;802:60;;;;;;;;;;979:4419;;;802:60;;;;;:::i;:::-;;;;;;;;;;;;;979:4419;;;802:60;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;802:60:46;;;;;;;;;;;;;;;;;;;;;979:4419;802:60;979:4419;;802:60;;;;;:::i;:::-;;;;;;;1712:20;802:60;;;;;;;979:4419;;;;802:60;;;;;2223:16;802:60;2158:29;802:60;2259:10;802:60;;;2158:29;:::i;:::-;2223:16;;;:::i;:::-;:22;802:60;2259:10;:::i;:::-;979:4419;;802:60;;;;;979:4419;;;802:60;;;;;979:4419;;;1964:118;979:4419;;-1:-1:-1;;;2044:27:46;;979:4419;;2044:27;1969:52;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;979:4419;;802:60;979:4419;;802:60;;;;;;;-1:-1:-1;;;;;802:60:46;;;;;;;-1:-1:-1;802:60:46;;;;;;;;;;;;1670:118;979:4419;;-1:-1:-1;;;1755:22:46;;979:4419;;1755:22;1549:111;979:4419;;802:60;979:4419;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;979:4419:46;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;979:4419:46;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;979:4419:46;;;;;;;:::o;:::-;-1:-1:-1;;;;;979:4419:46;;;;;;-1:-1:-1;;979:4419:46;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;979:4419:46;;;;;;;;;;;;;;;;;;;;:::o;802:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;979:4419;;;;;;802:60;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;979:4419;;;802:60;;;;;;;;;;:::o;:::-;979:4419;;;802:60;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;802:60:46;;;;;;:::o;:::-;-1:-1:-1;;;;;802:60:46;;;;;;;;;:::o;:::-;;;;;;;;;;;979:4419;;;;;:::i;:::-;802:60;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;802:60:46;;;;;;;;;;;;;;;;;;;:::i;:::-;979:4419;;802:60;979:4419;;;;:::i;:::-;802:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;802:60:46;;;;;;;;;;;;;;;;;;;;;;;;;;979:4419;;;802:60;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;802:60:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;802:60:46;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4053:13:46;802:60;;;;;;;;;;;;;;;;;;;;-1:-1:-1;802:60:46;-1:-1:-1;;;;;;;;;;;802:60:46;-1:-1:-1;802:60:46;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;802:60:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;979:4419;;;;;;;:::i;:::-;802:60;;;;;;;;;;;;-1:-1:-1;802:60:46;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;979:4419;;;;;:::i;:::-;802:60;;;;-1:-1:-1;;;;;802:60:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;979:4419;;;;;:::i;:::-;802:60;;979:4419;;;802:60;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;916:::-;;;979:4419;;;;:::i;:::-;916:60;;-1:-1:-1;;;;;916:60:46;;802;916;;;;;;979:4419;916:60;979:4419;916:60;;802;;;;;;;;;;;;;-1:-1:-1;802:60:46;;-1:-1:-1;802:60:46;916;-1:-1:-1;916:60:46;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;802;;-1:-1:-1;;;;;802:60:46;;;916;;-1:-1:-1;802:60:46;;;;;;;;916;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;979:4419;;;916:60;;;;;;;;;;;;;;;;;979:4419;;916:60;;-1:-1:-1;916:60:46;;;;;;:::i;:::-;802;;;;916;;;;;;;;;;;802;916;802;;;916;;;;;;;;;:::i;:::-;:::o;:::-;802;;;;-1:-1:-1;802:60:46;;;;-1:-1:-1;802:60:46;916;-1:-1:-1;916:60:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;916:60:46;;;;;;;;;;;;;802;916;;;;;802;;;916;;;;;;;;;;;;;;;979:4419;;;;;:::i;:::-;916:60;;;;;:::i;:::-;;;;;;979:4419;;;;;:::i;:::-;;916:60;;;;979:4419;916:60;;;;:::i;:::-;;;979:4419;;;;:::i;:::-;916:60;979:4419;916:60;;979:4419;916:60;979:4419;;;;:::i;:::-;916:60;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;802:60:46;;916;;;;802;;-1:-1:-1;;;;;;802:60:46;916;;;;;;;;;:::i;:::-;802;916;;;;;;;;;;;;;;;979:4419;;;916:60;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;916:60:46;;;;802;;916;;;;;;;;;;;;:::o;:::-;;802;-1:-1:-1;802:60:46;;-1:-1:-1;802:60:46;916;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;802;;;;;;916;;;802;;916;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;802;;916;;;;;;;;;;;;;;;;:::i;:::-;;802;916;802;;916;802;916;;;;;:::i;:::-;;;;;;;979:4419;916:60;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;979:4419::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;-1:-1:-1;;;;;802:60:46;;;;;;979:4419::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;979:4419:46;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;802:60;;;;;;;979:4419;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;3680:1240;3805:23;:20;;:23;;:32;979:4419;;802:60;;;3851:12;;3805:23;3851:12;;;979:4419;3805:23;979:4419;;;;;;;;:::i;:::-;3851:12;:10;;:12;;;;;;;916:60;3851:12;;;3680:1240;3847:76;;;979:4419;;802:60;;;4043:24;;979:4419;3851:12;4043:24;;802:60;3805:23;802:60;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;802:60:46;979:4419;802:60;;;;:::i;:::-;4043:24;3851:10;;4043:24;;;;;;;916:60;4043:24;;;3680:1240;4039:90;;;979:4419;4162:20;;;3805:23;4162:25;;:34;979:4419;;;802:60;;;;;;;4229:45;;979:4419;3851:12;4229:45;;979:4419;;;;;;802:60;;979:4419;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;802:60:46;979:4419;;;802:60;979:4419;;;;-1:-1:-1;;;;;;802:60:46;979:4419;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;979:4419:46;;;;;;:::i;:::-;4229:45;:30;;:45;;;;;;;916:60;4229:45;;;3680:1240;4342:25;916:60;979:4419;;;;;;;4382:32;;4395:19;4382:32;;4378:130;;3680:1240;4518:211;;;;;4743:31;4739:85;;3680:1240;802:60;3805:23;9070:20:58;;:23;;:32;979:4419:46;;802:60;;;;;;9070:52:58;;979:4419:46;3851:12;9070:52:58;;802:60:46;;;;;;:::i;:::-;979:4419;;802:60;;;;979:4419;802:60;;;979:4419;;802:60;;;-1:-1:-1;;;;;9108:13:58;802:60:46;;;;979:4419;3805:23;802:60;;;;;;;;;;;916;802;-1:-1:-1;;;;;;;;;;;802:60:46;916;802;;;;;;9070:52:58;;;;;916:60:46;9070:52:58;;3851:10:46;;9070:52:58;;;;;;;916:60:46;9070:52:58;;;802:60:46;-1:-1:-1;979:4419:46;;-1:-1:-1;;;12971:17:58;;3805:23:46;3851:12;12971:17:58;;979:4419:46;;;;;;;;;;;:::i;:::-;12971:17:58;3851:10:46;;12971:17:58;;;;;;;916:60:46;12971:17:58;;;802:60:46;916;;;;3805:23;916:60;979:4419;916:60;;13008:9:58;979:4419:46;3805:23;979:4419;3851:12;13008:9:58;;979:4419:46;:::i;:::-;;;802:60;;;;;;;13008:19:58;;;3851:12:46;13008:19:58;;979:4419:46;;;;;;:::i;:::-;13008:19:58;3851:10:46;;13008:19:58;;;;;;;916:60:46;13008:19:58;;;802:60:46;13007:20:58;9206:70;;979:4419:46;9308:19:58;;916:60:46;;-1:-1:-1;;;;;9411:16:58;802:60:46;;;9338:20:58;979:4419:46;9338:20:58;;:26;916:60:46;9411:16:58;:::i;:::-;802:60:46;979:4419;-1:-1:-1;;;;;979:4419:46;;;;;;;9458:20:58;;:26;979:4419:46;9437:17:58;;916:60:46;;;979:4419;;;;;;;;;;3805:23;979:4419;;;;802:60;;;;;;;9527:21:58;;;3851:12:46;9527:21:58;;979:4419:46;;;;;;:::i;:::-;9527:21:58;3851:10:46;;9527:21:58;;;;;;;916:60:46;9527:21:58;;;802:60:46;-1:-1:-1;979:4419:46;;3805:23;979:4419;;;-1:-1:-1;;;;;802:60:46;;;;9500:73:58;;979:4419:46;;;;;;;;:::i;:::-;9500:73:58;;;916:60:46;3680:1240;:::o;9527:21:58:-;;3805:23:46;9527:21:58;;3805:23:46;9527:21:58;;;;;;3805:23:46;9527:21:58;;;:::i;:::-;;;979:4419:46;;;;;;;9500:73:58;979:4419:46;;:::i;:::-;9527:21:58;;;;979:4419:46;;;9527:21:58;;;-1:-1:-1;9527:21:58;;;979:4419:46;;802:60;916;802;;;;;9206:70:58;979:4419:46;;-1:-1:-1;;;9244:21:58;;3851:12:46;;9244:21:58;13008:19;;;;3805:23:46;13008:19:58;3805:23:46;13008:19:58;;;;;;;:::i;:::-;;;;12971:17;;3805:23:46;12971:17:58;;3805:23:46;12971:17:58;;;;;;3805:23:46;12971:17:58;;;:::i;:::-;;;979:4419:46;;;;;;12971:17:58;;;;;;-1:-1:-1;12971:17:58;;9070:52;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;802:60:46;;;-1:-1:-1;;;;;802:60:46;;;;;-1:-1:-1;3805:23:46;802:60;;;;4395:19;802:60;;;;;;;4739:85;4792:21;979:4419;-1:-1:-1;;;;;979:4419:46;;;802:60;-1:-1:-1;;;;;979:4419:46;;;;4395:19;-1:-1:-1;;;979:4419:46;;;;;;-1:-1:-1;;;979:4419:46;;;4792:21;979:4419;4739:85;;4518:211;916:60;9927:24:58;916:60:46;979:4419;;;;9913:12:58;-1:-1:-1;;;;;9913:12:58;802:60:46;979:4419;4395:19;979:4419;;;;;;;916:60;;;;;;;;;;;;;;10032:15:58;979:4419:46;;10057:20:58;-1:-1:-1;;;;;979:4419:46;;;802:60;10003:20:58;979:4419:46;10003:20:58;;:26;916:60:46;10057:20:58;:::i;:::-;979:4419:46;;;;;;;;10032:15:58;979:4419:46;916:60;;;2471:20:58;3805:23:46;916:60;979:4419;916:60;;2517:17:58;979:4419:46;2517:17:58;;916:60:46;;2517:22:58;10228:1745;2517:17;;;979:4419:46;;;10403:29:58;979:4419:46;;;4053:13;979:4419;;;;;10228:1745:58;979:4419:46;10403:10:58;:29;:::i;:::-;4686:20:46;:26;979:4419;4686:31;;4665:53;:::o;979:4419::-;-1:-1:-1;;;;;4053:13:46;916:60;802;-1:-1:-1;;;;;979:4419:46;;;;;;;;4395:19;979:4419;;;:::i;:::-;;;10228:1745:58;-1:-1:-1;;979:4419:46;10607:10:58;;802:60:46;3805:23;916:60;-1:-1:-1;;;;;802:60:46;10607:46:58;802:60:46;;979:4419;10607:10:58;;802:60:46;979:4419;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;979:4419:46;;;:::i;:::-;;916:60;979:4419;;;;;;;;;;;;;;;;-1:-1:-1;;;;;979:4419:46;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10875:13:58;916:60:46;802;979:4419;;;916:60;979:4419;;916:60;3805:23;916:60;802;;;;;;;916;;802;-1:-1:-1;;;;;;;;;;;916:60:46;;;;;;;;;;;;;;;;;:::i;:::-;979:4419;916:60;;;979:4419;;;916:60;;9913:12:58;3805:23:46;10826:185:58;;916:60:46;979:4419;10826:185:58;;916:60:46;;11100:13:58;;;;;;979:4419:46;;;3805:23;979:4419;;;;;;3805:23;979:4419;;;;;;;;:::i;:::-;10826:185:58;3805:23:46;10826:185:58;;979:4419:46;;;;;;10826:185:58;;979:4419:46;;;;;;;;;;;;802:60;;;;;3805:23;802:60;;979:4419;3805:23;979:4419;;;;;;;802:60;;979:4419;916:60;979:4419;;;;;;;9913:12:58;;;;;;11371:38;9913:12;;11371:38;;;;916:60:46;979:4419;10607:10:58;;979:4419:46;;;;;10607:10:58;979:4419:46;11649:29:58;10607:10;;11649:29;:::i;:::-;3805:23:46;10826:185:58;;979:4419:46;916:60;;2471:20:58;3805:23:46;916:60;979:4419;916:60;;3770:14:58;;;-1:-1:-1;;;;;979:4419:46;;802:60;-1:-1:-1;;;;;979:4419:46;;;;;;;3805:23;4395:19;979:4419;;;;802:60;;;;979:4419;-1:-1:-1;;;;;979:4419:46;;;;3805:23;979:4419;;;;;:::i;:::-;802:60;;916;802;3805:23;916:60;802;916;979:4419;;;;;;-1:-1:-1;;;3805:23:46;10826:185:58;;979:4419:46;;3794:13:58;;979:4419:46;-1:-1:-1;979:4419:46;10826:185:58;;3858:10;802:60:46;;979:4419;4114:6:58;;916:60:46;3901:13:58;;;;;;10603:1360;;;;979:4419:46;10603:1360:58;10228:1745;;3890:9;10826:185;4114:26;4126:13;4395:19:46;10826:185:58;979:4419:46;10826:185:58;;4126:10;:13;:::i;:::-;;4114:26;;:::i;:::-;979:4419:46;3890:9:58;;979:4419:46;;;-1:-1:-1;;;;;802:60:46;979:4419;;;;3805:23;979:4419;;;;4395:19;979:4419;;;;;;-1:-1:-1;916:60:46;;;;;;;;;;10607:10:58;;;979:4419:46;10607:10:58;;916:60:46;802;3805:23;916:60;802;979:4419;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3805:23;979:4419;;4395:19;979:4419;;;;;;;;;;;;:::i;:::-;802:60;;979:4419;;;;;;;;;;;;;;;11089:9:58;4395:19:46;10607:10:58;;;11138:32;10607:10;11157:13;10607:10;979:4419:46;10607:10:58;;11157:13;:::i;:::-;10826:185;916:60:46;979:4419;10826:185:58;;11138:13;916:60:46;;:::i;:::-;11138:32:58;;;;:::i;:::-;;;:::i;:::-;;979:4419:46;11089:9:58;;;;;916:60:46;802;;-1:-1:-1;;;;;802:60:46;;;916;;-1:-1:-1;3805:23:46;802:60;;;;4395:19;802:60;;;;916;;;979:4419;3805:23;979:4419;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;916:60;979:4419;;;;916:60;979:4419;;;;916:60;979:4419;;;;;;;;;916:60;979:4419;;;;;;916:60;979:4419;;;;;;;;;;;;;10603:1360:58;10607:10;11919:29;10607:10;979:4419:46;;10607:10:58;;11919:29;:::i;:::-;10228:1745;;979:4419:46;;;;916:60;979:4419;;3851:12;979:4419;;916:60;979:4419;4378:130;979:4419;;;;;802:60;;;;;;;;4454:21;;979:4419;3851:12;4454:21;;979:4419;802:60;979:4419;;;;:::i;:::-;;;;-1:-1:-1;;979:4419:46;;;;;;;:::i;:::-;4454:21;3851:10;;4454:21;;;;;;;802:60;;4454:21;3805:23;4454:21;;;;;4378:130;979:4419;;;802:60;;;;;;;;4454:43;;979:4419;3851:12;4454:43;;802:60;;;;;;:::i;:::-;4454:43;3851:10;;4454:43;;;;;;;;;;4378:130;4453:44;;4378:130;;;;;4454:43;;;;3805:23;4454:43;3805:23;4454:43;;;;;;;:::i;:::-;;;;;979:4419;;802:60;;;;;;;;4454:21;;;;;;;;;;;;;:::i;:::-;;;;;979:4419;;802:60;979:4419;;802:60;;;;979:4419;-1:-1:-1;;;979:4419:46;;;3851:12;979:4419;;;;4229:45;3805:23;4229:45;;;;;3805:23;4229:45;;;;;;3805:23;4229:45;;;:::i;:::-;;;979:4419;;;;;;;;;;;;4229:45;;;;;979:4419;;;;4229:45;;;-1:-1:-1;4229:45:46;;4039:90;979:4419;;-1:-1:-1;;;4090:28:46;;3851:12;;4090:28;4043:24;;;;3805:23;4043:24;3805:23;4043:24;;;;;;;:::i;:::-;;;;3847:76;979:4419;;-1:-1:-1;;;3886:26:46;;3851:12;;3886:26;3851:12;;;;3805:23;3851:12;3805:23;3851:12;;;;;;;:::i;:::-;;;;5233:163;;5310:80;;5233:163;:::o;5310:80::-;13330:21:1;;:31;13326:63;;13419:35;;;;;802:60:46;13419:35:1;;979:4419:46;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;13419:35:1;979:4419:46;;;;;;13468:8:1;13464:33;;5233:163:46:o;13464:33:1:-;979:4419:46;;-1:-1:-1;;;13485:12:1;;;;;979:4419:46;;;13326:63:1;979:4419:46;;-1:-1:-1;;;13370:19:1;;;;;979:4419:46;;802:60;-1:-1:-1;;;;;802:60:46;;;979:4419;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;979:4419:46;;;;802:60;979:4419;;;802:60;;;;979:4419;;;;802:60;979:4419;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;802:60;;979:4419;;;;;-1:-1:-1;802:60:46;979:4419;802:60;-1:-1:-1;802:60:46;979:4419;;;;-1:-1:-1;979:4419:46;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;979:4419:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;802:60;;;;;;;;;-1:-1:-1;;;;;979:4419:46;;;802:60;-1:-1:-1;;;;;979:4419:46;;;;;;;;;;;;;;;;;802:60;;;979:4419;;;;;;;;;;;;:::i;:::-;802:60;-1:-1:-1;802:60:46;;;;;;979:4419;;;;;;;;;;;;;;;;;;;802:60;979:4419;;;;916:60;;;979:4419;;;;;;;;;;;;;;;;802:60;;;;979:4419;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;916:60:46;;;;;;;;;;979:4419;;;;;;;;;;802:60;;;;979:4419;;;;802:60;979:4419;;;;;;;;;;;;;802:60;;;;979:4419;;;;;;;;;;;;:::i;:::-;802:60;;;;;;;979:4419;;;;;;;;;;;;;;;;;;;802:60;979:4419;;;;;;;;;;;;;;;;;;802:60;;;979:4419;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;916:60:46;;;;;;;;;;979:4419;;;;;;;;;;;;;;;;;;;802:60;979:4419;;;;;;;;802:60;979:4419;;;;;;;;;;;;;;802:60;979:4419;;802:60;;;;979:4419;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;916:60;;;;;;;;;;;;979:4419;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;979:4419:46;;;;;;;;;;;;;;802:60;;;;;;979:4419;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;916:60;;;;;;;;;;;979:4419;;;;;;;;;;;;;;;;;;;;;;;;;;;;;802:60;;;;;;;;916;;;;979:4419;916:60;979:4419;;;;;;;;916:60;979:4419;916:60;979:4419;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;979:4419:46;;;;;;;;;;;;-1:-1:-1;979:4419:46;;;;;802:60;;;;;;979:4419;;-1:-1:-1;802:60:46;979:4419;-1:-1:-1;;979:4419:46;;802:60;979:4419;;;;;;;;;;-1:-1:-1;979:4419:46;;;;;;;;;;;;;;;;-1:-1:-1;;916:60:46;;;;;;;;979:4419;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;802:60;;;;;;;;916;;;;979:4419;916:60;979:4419;;;;;;;916:60;979:4419;916:60;979:4419;;;:::i;:::-;;;;;;-1:-1:-1;;;979:4419:46;;;;;;;;;;;-1:-1:-1;;;;;802:60:46;979:4419;;;;;;;;;;;;;;-1:-1:-1;;;979:4419:46;;;;;;;;;;;;-1:-1:-1;979:4419:46;;;;;;;;;;;;;;;802:60;;;;;;979:4419;;;;;;;;;;;;-1:-1:-1;979:4419:46;;;;;;;;;;;;;;;;-1:-1:-1;;916:60:46;;;;;;;;979:4419;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;802:60;;;979:4419;802:60;;;916;;;;;;979:4419;;;;;;;916:60;;;979:4419;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;802:60:46;979:4419;;;;;;;;;;;;;;;;;916:60;;;;;;;;979:4419;916:60;979:4419;;;;;:::i;:::-;;;;-1:-1:-1;979:4419:46;;;;:::o;:::-;916:60;979:4419;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::o;:::-;802:60;;979:4419;;;;;;;;;;;;:::o;:::-;;;;;;;802:60;979:4419;-1:-1:-1;;;;;979:4419:46;;;;;;;;:::i;:::-;-1:-1:-1;802:60:46;;;;;;-1:-1:-1;;;;;;;;;;;979:4419:46;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;802:60:46;;;979:4419;;;;;;;;;;;;;;:::o","linkReferences":{"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":3598,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":615,"length":20},{"start":3263,"length":20},{"start":3365,"length":20},{"start":3805,"length":20},{"start":3883,"length":20},{"start":3988,"length":20},{"start":4144,"length":20},{"start":5884,"length":20},{"start":5969,"length":20}]}}},"methodIdentifiers":{"propagate(bytes32)":"25bf0db6","sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":"210b944e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotSendCrossMsgToItself\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgDstSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgFromSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgCid\",\"type\":\"bytes32\"}],\"name\":\"propagate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"crossMsg\",\"type\":\"tuple\"}],\"name\":\"sendUserXnetMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"propagate(bytes32)\":{\"details\":\"propagates the populated cross net message for the given cid\",\"params\":{\"msgCid\":\"- the cid of the cross-net message\"}},\"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))\":{\"details\":\"sends a general-purpose cross-message from the local subnet to the destination subnet. IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee.\",\"params\":{\"crossMsg\":\"- a cross-message to send\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayMessengerFacet.sol\":\"GatewayMessengerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21\",\"dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x5a8e1e7961e424e04b21c3aa85a2624e0996d7d401e8f9759239c09eac6c3cd2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d1083fcdfd0489cad22a516b7f551d08dea47d95a4a25f24b1aa3dd9b01a0501\",\"dweb:/ipfs/QmdxhTnQbWsxMCawiBL1mow2q8nXP5XPXr7KAbi5FxAK2W\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14\",\"dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7\",\"dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2\",\"dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"CallFailed"},{"inputs":[],"type":"error","name":"CannotSendCrossMsgToItself"},{"inputs":[],"type":"error","name":"InsufficientFunds"},{"inputs":[],"type":"error","name":"InvalidCrossMsgDstSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgFromSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgValue"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NotEnoughFee"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[{"internalType":"bytes32","name":"msgCid","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"propagate"},{"inputs":[{"internalType":"struct CrossMsg","name":"crossMsg","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"payable","type":"function","name":"sendUserXnetMessage"}],"devdoc":{"kind":"dev","methods":{"propagate(bytes32)":{"details":"propagates the populated cross net message for the given cid","params":{"msgCid":"- the cid of the cross-net message"}},"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":{"details":"sends a general-purpose cross-message from the local subnet to the destination subnet. IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee.","params":{"crossMsg":"- a cross-message to send"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayMessengerFacet.sol":"GatewayMessengerFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140","urls":["bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21","dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x5a8e1e7961e424e04b21c3aa85a2624e0996d7d401e8f9759239c09eac6c3cd2","urls":["bzz-raw://d1083fcdfd0489cad22a516b7f551d08dea47d95a4a25f24b1aa3dd9b01a0501","dweb:/ipfs/QmdxhTnQbWsxMCawiBL1mow2q8nXP5XPXr7KAbi5FxAK2W"],"license":"UNLICENSED"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3","urls":["bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14","dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d","urls":["bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7","dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c","urls":["bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2","dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayMessengerFacet.sol","id":38675,"exportedSymbols":{"BURNT_FUNDS_ACTOR":[36423],"CannotSendCrossMsgToItself":[36944],"CrossMsg":[48452],"ERR_GENERAL_CROSS_MSG_DISABLED":[38389],"ERR_MULTILEVEL_CROSS_MSG_DISABLED":[38392],"FilAddress":[1428],"GatewayActorModifiers":[42438],"GatewayMessengerFacet":[38674],"IPCMsgType":[36923],"InvalidCrossMsgDstSubnet":[36988],"InvalidCrossMsgFromSubnet":[36990],"InvalidCrossMsgValue":[36994],"LibGateway":[42242],"MethodNotAllowed":[37094],"StorableMsg":[48469],"StorableMsgHelper":[46265],"SubnetID":[48557],"SubnetIDHelper":[46876]},"nodeType":"SourceUnit","src":"39:5360:46","nodes":[{"id":38361,"nodeType":"PragmaDirective","src":"39:23:46","nodes":[],"literals":["solidity","0.8",".19"]},{"id":38363,"nodeType":"ImportDirective","src":"64:72:46","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":38675,"sourceUnit":42439,"symbolAliases":[{"foreign":{"id":38362,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42438,"src":"72:21:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38365,"nodeType":"ImportDirective","src":"137:61:46","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":38675,"sourceUnit":36442,"symbolAliases":[{"foreign":{"id":38364,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36423,"src":"145:17:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38368,"nodeType":"ImportDirective","src":"199:62:46","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":38675,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":38366,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"207:8:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38367,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"217:11:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38370,"nodeType":"ImportDirective","src":"262:51:46","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":38675,"sourceUnit":36924,"symbolAliases":[{"foreign":{"id":38369,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36923,"src":"270:10:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38372,"nodeType":"ImportDirective","src":"314:47:46","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":38675,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":38371,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"322:8:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38378,"nodeType":"ImportDirective","src":"362:160:46","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":38675,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":38373,"name":"InvalidCrossMsgFromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36990,"src":"370:25:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38374,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36988,"src":"397:24:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38375,"name":"CannotSendCrossMsgToItself","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36944,"src":"423:26:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38376,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36994,"src":"451:20:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38377,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37094,"src":"473:16:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38380,"nodeType":"ImportDirective","src":"523:57:46","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":38675,"sourceUnit":46877,"symbolAliases":[{"foreign":{"id":38379,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46876,"src":"531:14:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38382,"nodeType":"ImportDirective","src":"581:49:46","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":38675,"sourceUnit":42243,"symbolAliases":[{"foreign":{"id":38381,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"589:10:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38384,"nodeType":"ImportDirective","src":"631:63:46","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":38675,"sourceUnit":46266,"symbolAliases":[{"foreign":{"id":38383,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"639:17:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38386,"nodeType":"ImportDirective","src":"695:56:46","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":38675,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":38385,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"703:10:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38389,"nodeType":"VariableDeclaration","src":"753:109:46","nodes":[],"constant":true,"mutability":"constant","name":"ERR_GENERAL_CROSS_MSG_DISABLED","nameLocation":"769:30:46","scope":38675,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38387,"name":"string","nodeType":"ElementaryTypeName","src":"753:6:46","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"537570706f727420666f722067656e6572616c2d707572706f73652063726f73732d6e6574206d657373616765732069732064697361626c6564","id":38388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"802:60:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd3d18fc001c76f041be9d5eac6cfff6ccbbde88912dc4bd2be7f90d14666151","typeString":"literal_string \"Support for general-purpose cross-net messages is disabled\""},"value":"Support for general-purpose cross-net messages is disabled"},"visibility":"internal"},{"id":38392,"nodeType":"VariableDeclaration","src":"864:112:46","nodes":[],"constant":true,"mutability":"constant","name":"ERR_MULTILEVEL_CROSS_MSG_DISABLED","nameLocation":"880:33:46","scope":38675,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38390,"name":"string","nodeType":"ElementaryTypeName","src":"864:6:46","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"537570706f727420666f722067656e6572616c2d707572706f73652063726f73732d6e6574206d657373616765732069732064697361626c6564","id":38391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"916:60:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd3d18fc001c76f041be9d5eac6cfff6ccbbde88912dc4bd2be7f90d14666151","typeString":"literal_string \"Support for general-purpose cross-net messages is disabled\""},"value":"Support for general-purpose cross-net messages is disabled"},"visibility":"internal"},{"id":38674,"nodeType":"ContractDefinition","src":"979:4419:46","nodes":[{"id":38397,"nodeType":"UsingForDirective","src":"1041:37:46","nodes":[],"global":false,"libraryName":{"id":38395,"name":"FilAddress","nameLocations":["1047:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"1047:10:46"},"typeName":{"id":38396,"name":"address","nodeType":"ElementaryTypeName","src":"1062:15:46","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":38401,"nodeType":"UsingForDirective","src":"1083:34:46","nodes":[],"global":false,"libraryName":{"id":38398,"name":"SubnetIDHelper","nameLocations":["1089:14:46"],"nodeType":"IdentifierPath","referencedDeclaration":46876,"src":"1089:14:46"},"typeName":{"id":38400,"nodeType":"UserDefinedTypeName","pathNode":{"id":38399,"name":"SubnetID","nameLocations":["1108:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1108:8:46"},"referencedDeclaration":48557,"src":"1108:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}}},{"id":38405,"nodeType":"UsingForDirective","src":"1122:40:46","nodes":[],"global":false,"libraryName":{"id":38402,"name":"StorableMsgHelper","nameLocations":["1128:17:46"],"nodeType":"IdentifierPath","referencedDeclaration":46265,"src":"1128:17:46"},"typeName":{"id":38404,"nodeType":"UserDefinedTypeName","pathNode":{"id":38403,"name":"StorableMsg","nameLocations":["1150:11:46"],"nodeType":"IdentifierPath","referencedDeclaration":48469,"src":"1150:11:46"},"referencedDeclaration":48469,"src":"1150:11:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_storage_ptr","typeString":"struct StorableMsg"}}},{"id":38464,"nodeType":"FunctionDefinition","src":"1465:813:46","nodes":[],"body":{"id":38463,"nodeType":"Block","src":"1539:739:46","nodes":[],"statements":[{"condition":{"id":38414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1553:25:46","subExpression":{"expression":{"id":38412,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"1554:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1556:22:46","memberName":"generalPurposeCrossMsg","nodeType":"MemberAccess","referencedDeclaration":42359,"src":"1554:24:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38420,"nodeType":"IfStatement","src":"1549:111:46","trueBody":{"id":38419,"nodeType":"Block","src":"1580:80:46","statements":[{"errorCall":{"arguments":[{"id":38416,"name":"ERR_GENERAL_CROSS_MSG_DISABLED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38389,"src":"1618:30:46","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":38415,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37094,"src":"1601:16:46","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":38417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1601:48:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38418,"nodeType":"RevertStatement","src":"1594:55:46"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":38421,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38409,"src":"1674:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1683:7:46","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"1674:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1691:5:46","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48460,"src":"1674:22:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38424,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1700:3:46","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1704:5:46","memberName":"value","nodeType":"MemberAccess","src":"1700:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":38426,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38409,"src":"1712:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1721:7:46","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"1712:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1729:3:46","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":48468,"src":"1712:20:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1700:32:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1674:58:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38435,"nodeType":"IfStatement","src":"1670:118:46","trueBody":{"id":38434,"nodeType":"Block","src":"1734:54:46","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38431,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36994,"src":"1755:20:46","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1755:22:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38433,"nodeType":"RevertStatement","src":"1748:29:46"}]}},{"condition":{"id":38444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1968:53:46","subExpression":{"arguments":[{"expression":{"id":38441,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"2007:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2009:11:46","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42322,"src":"2007:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"expression":{"expression":{"id":38436,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38409,"src":"1969:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1978:7:46","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"1969:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1986:4:46","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":48455,"src":"1969:21:46","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":38439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1991:8:46","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":48683,"src":"1969:30:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":38440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2000:6:46","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":46629,"src":"1969:37:46","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":38443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1969:52:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38449,"nodeType":"IfStatement","src":"1964:118:46","trueBody":{"id":38448,"nodeType":"Block","src":"2023:59:46","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38445,"name":"InvalidCrossMsgFromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36990,"src":"2044:25:46","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2044:27:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38447,"nodeType":"RevertStatement","src":"2037:34:46"}]}},{"assignments":[38451],"declarations":[{"constant":false,"id":38451,"mutability":"mutable","name":"shouldBurn","nameLocation":"2145:10:46","nodeType":"VariableDeclaration","scope":38463,"src":"2140:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38450,"name":"bool","nodeType":"ElementaryTypeName","src":"2140:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":38455,"initialValue":{"arguments":[{"id":38453,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38409,"src":"2178:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}],"id":38452,"name":"_commitCrossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38653,"src":"2158:19:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$48452_memory_ptr_$returns$_t_bool_$","typeString":"function (struct CrossMsg memory) returns (bool)"}},"id":38454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2158:29:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2140:47:46"},{"expression":{"arguments":[{"expression":{"expression":{"id":38457,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38409,"src":"2223:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2232:7:46","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"2223:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2240:5:46","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48460,"src":"2223:22:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38460,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38451,"src":"2259:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":38456,"name":"_crossMsgSideEffects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38673,"src":"2198:20:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":38461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2220:1:46","2247:10:46"],"names":["v","shouldBurn"],"nodeType":"FunctionCall","src":"2198:73:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38462,"nodeType":"ExpressionStatement","src":"2198:73:46"}]},"documentation":{"id":38406,"nodeType":"StructuredDocumentation","src":"1168:292:46","text":" @dev sends a general-purpose cross-message from the local subnet to the destination subnet.\n IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee.\n @param crossMsg - a cross-message to send"},"functionSelector":"210b944e","implemented":true,"kind":"function","modifiers":[],"name":"sendUserXnetMessage","nameLocation":"1474:19:46","parameters":{"id":38410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38409,"mutability":"mutable","name":"crossMsg","nameLocation":"1512:8:46","nodeType":"VariableDeclaration","scope":38464,"src":"1494:26:46","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38408,"nodeType":"UserDefinedTypeName","pathNode":{"id":38407,"name":"CrossMsg","nameLocations":["1494:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"1494:8:46"},"referencedDeclaration":48452,"src":"1494:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1493:28:46"},"returnParameters":{"id":38411,"nodeType":"ParameterList","parameters":[],"src":"1539:0:46"},"scope":38674,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":38539,"nodeType":"FunctionDefinition","src":"2429:948:46","nodes":[],"body":{"id":38538,"nodeType":"Block","src":"2481:896:46","nodes":[],"statements":[{"condition":{"id":38472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2495:21:46","subExpression":{"expression":{"id":38470,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"2496:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2498:18:46","memberName":"multiLevelCrossMsg","nodeType":"MemberAccess","referencedDeclaration":42362,"src":"2496:20:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38478,"nodeType":"IfStatement","src":"2491:110:46","trueBody":{"id":38477,"nodeType":"Block","src":"2518:83:46","statements":[{"errorCall":{"arguments":[{"id":38474,"name":"ERR_MULTILEVEL_CROSS_MSG_DISABLED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38392,"src":"2556:33:46","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":38473,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37094,"src":"2539:16:46","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":38475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2539:51:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38476,"nodeType":"RevertStatement","src":"2532:58:46"}]}},{"assignments":[38481],"declarations":[{"constant":false,"id":38481,"mutability":"mutable","name":"crossMsg","nameLocation":"2628:8:46","nodeType":"VariableDeclaration","scope":38538,"src":"2611:25:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38480,"nodeType":"UserDefinedTypeName","pathNode":{"id":38479,"name":"CrossMsg","nameLocations":["2611:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"2611:8:46"},"referencedDeclaration":48452,"src":"2611:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":38486,"initialValue":{"baseExpression":{"expression":{"id":38482,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"2639:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2641:7:46","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42286,"src":"2639:9:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$48452_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":38485,"indexExpression":{"id":38484,"name":"msgCid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38467,"src":"2649:6:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2639:17:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage","typeString":"struct CrossMsg storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2611:45:46"},{"expression":{"arguments":[{"expression":{"expression":{"id":38488,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38481,"src":"2678:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg storage pointer"}},"id":38489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2687:7:46","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"2678:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_storage","typeString":"struct StorableMsg storage ref"}},"id":38490,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2695:3:46","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":48468,"src":"2678:20:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38487,"name":"validateFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42416,"src":"2666:11:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":38491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2666:33:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38492,"nodeType":"ExpressionStatement","src":"2666:33:46"},{"assignments":[38494],"declarations":[{"constant":false,"id":38494,"mutability":"mutable","name":"shouldBurn","nameLocation":"2715:10:46","nodeType":"VariableDeclaration","scope":38538,"src":"2710:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38493,"name":"bool","nodeType":"ElementaryTypeName","src":"2710:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":38498,"initialValue":{"arguments":[{"id":38496,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38481,"src":"2748:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg storage pointer"}],"id":38495,"name":"_commitCrossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38653,"src":"2728:19:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$48452_memory_ptr_$returns$_t_bool_$","typeString":"function (struct CrossMsg memory) returns (bool)"}},"id":38497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:29:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2710:47:46"},{"assignments":[38500],"declarations":[{"constant":false,"id":38500,"mutability":"mutable","name":"v","nameLocation":"3031:1:46","nodeType":"VariableDeclaration","scope":38538,"src":"3023:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38499,"name":"uint256","nodeType":"ElementaryTypeName","src":"3023:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38504,"initialValue":{"expression":{"expression":{"id":38501,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38481,"src":"3035:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg storage pointer"}},"id":38502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3044:7:46","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"3035:16:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_storage","typeString":"struct StorableMsg storage ref"}},"id":38503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3052:5:46","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48460,"src":"3035:22:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3023:34:46"},{"expression":{"id":38509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3067:24:46","subExpression":{"baseExpression":{"expression":{"id":38505,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"3074:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3076:7:46","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42286,"src":"3074:9:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$48452_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":38508,"indexExpression":{"id":38507,"name":"msgCid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38467,"src":"3084:6:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3074:17:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage","typeString":"struct CrossMsg storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38510,"nodeType":"ExpressionStatement","src":"3067:24:46"},{"expression":{"arguments":[{"id":38512,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38500,"src":"3127:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38513,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38494,"src":"3142:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":38511,"name":"_crossMsgSideEffects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38673,"src":"3102:20:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":38514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3124:1:46","3130:10:46"],"names":["v","shouldBurn"],"nodeType":"FunctionCall","src":"3102:52:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38515,"nodeType":"ExpressionStatement","src":"3102:52:46"},{"assignments":[38517],"declarations":[{"constant":false,"id":38517,"mutability":"mutable","name":"feeRemainder","nameLocation":"3173:12:46","nodeType":"VariableDeclaration","scope":38538,"src":"3165:20:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38516,"name":"uint256","nodeType":"ElementaryTypeName","src":"3165:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38523,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38518,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3188:3:46","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3192:5:46","memberName":"value","nodeType":"MemberAccess","src":"3188:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":38520,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"3200:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3202:14:46","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":42328,"src":"3200:16:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3188:28:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3165:51:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38524,"name":"feeRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38517,"src":"3284:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":38525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3300:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3284:17:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38537,"nodeType":"IfStatement","src":"3280:91:46","trueBody":{"id":38536,"nodeType":"Block","src":"3303:68:46","statements":[{"expression":{"arguments":[{"id":38533,"name":"feeRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38517,"src":"3347:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":38529,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3325:3:46","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3329:6:46","memberName":"sender","nodeType":"MemberAccess","src":"3325:10:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3317:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38527,"name":"address","nodeType":"ElementaryTypeName","src":"3317:8:46","stateMutability":"payable","typeDescriptions":{}}},"id":38531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3317:19:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3337:9:46","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"3317:29:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3317:43:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38535,"nodeType":"ExpressionStatement","src":"3317:43:46"}]}}]},"documentation":{"id":38465,"nodeType":"StructuredDocumentation","src":"2284:140:46","text":" @dev propagates the populated cross net message for the given cid\n @param msgCid - the cid of the cross-net message"},"functionSelector":"25bf0db6","implemented":true,"kind":"function","modifiers":[],"name":"propagate","nameLocation":"2438:9:46","parameters":{"id":38468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38467,"mutability":"mutable","name":"msgCid","nameLocation":"2456:6:46","nodeType":"VariableDeclaration","scope":38539,"src":"2448:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38466,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2448:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2447:16:46"},"returnParameters":{"id":38469,"nodeType":"ParameterList","parameters":[],"src":"2481:0:46"},"scope":38674,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":38653,"nodeType":"FunctionDefinition","src":"3680:1240:46","nodes":[],"body":{"id":38652,"nodeType":"Block","src":"3774:1146:46","nodes":[],"statements":[{"assignments":[38550],"declarations":[{"constant":false,"id":38550,"mutability":"mutable","name":"to","nameLocation":"3800:2:46","nodeType":"VariableDeclaration","scope":38652,"src":"3784:18:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":38549,"nodeType":"UserDefinedTypeName","pathNode":{"id":38548,"name":"SubnetID","nameLocations":["3784:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"3784:8:46"},"referencedDeclaration":48557,"src":"3784:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":38555,"initialValue":{"expression":{"expression":{"expression":{"id":38551,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38543,"src":"3805:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":38552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3818:7:46","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"3805:20:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":38553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3826:2:46","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":48458,"src":"3805:23:46","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},"id":38554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3829:8:46","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":48683,"src":"3805:32:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"3784:53:46"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":38556,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38550,"src":"3851:2:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":38557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3854:7:46","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":46875,"src":"3851:10:46","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":38558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3851:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38563,"nodeType":"IfStatement","src":"3847:76:46","trueBody":{"id":38562,"nodeType":"Block","src":"3865:58:46","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38559,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36988,"src":"3886:24:46","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3886:26:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38561,"nodeType":"RevertStatement","src":"3879:33:46"}]}},{"condition":{"arguments":[{"expression":{"id":38566,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"4053:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4055:11:46","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42322,"src":"4053:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}],"expression":{"id":38564,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38550,"src":"4043:2:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":38565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4046:6:46","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":46629,"src":"4043:9:46","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":38568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4043:24:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38573,"nodeType":"IfStatement","src":"4039:90:46","trueBody":{"id":38572,"nodeType":"Block","src":"4069:60:46","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38569,"name":"CannotSendCrossMsgToItself","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36944,"src":"4090:26:46","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4090:28:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38571,"nodeType":"RevertStatement","src":"4083:35:46"}]}},{"assignments":[38576],"declarations":[{"constant":false,"id":38576,"mutability":"mutable","name":"from","nameLocation":"4155:4:46","nodeType":"VariableDeclaration","scope":38652,"src":"4139:20:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":38575,"nodeType":"UserDefinedTypeName","pathNode":{"id":38574,"name":"SubnetID","nameLocations":["4139:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"4139:8:46"},"referencedDeclaration":48557,"src":"4139:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":38581,"initialValue":{"expression":{"expression":{"expression":{"id":38577,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38543,"src":"4162:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":38578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4175:7:46","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"4162:20:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":38579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4183:4:46","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":48455,"src":"4162:25:46","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},"id":38580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4188:8:46","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":48683,"src":"4162:34:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"4139:57:46"},{"assignments":[38584],"declarations":[{"constant":false,"id":38584,"mutability":"mutable","name":"applyType","nameLocation":"4217:9:46","nodeType":"VariableDeclaration","scope":38652,"src":"4206:20:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"},"typeName":{"id":38583,"nodeType":"UserDefinedTypeName","pathNode":{"id":38582,"name":"IPCMsgType","nameLocations":["4206:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":36923,"src":"4206:10:46"},"referencedDeclaration":36923,"src":"4206:10:46","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"}},"visibility":"internal"}],"id":38591,"initialValue":{"arguments":[{"expression":{"id":38588,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"4260:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38589,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4262:11:46","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42322,"src":"4260:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"id":38585,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38543,"src":"4229:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":38586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4242:7:46","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"4229:20:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":38587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4250:9:46","memberName":"applyType","nodeType":"MemberAccess","referencedDeclaration":46248,"src":"4229:30:46","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_StorableMsg_$48469_memory_ptr_$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_enum$_IPCMsgType_$36923_$attached_to$_t_struct$_StorableMsg_$48469_memory_ptr_$","typeString":"function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)"}},"id":38590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4229:45:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"}},"nodeType":"VariableDeclarationStatement","src":"4206:68:46"},{"assignments":[38593],"declarations":[{"constant":false,"id":38593,"mutability":"mutable","name":"shouldCommitBottomUp","nameLocation":"4347:20:46","nodeType":"VariableDeclaration","scope":38652,"src":"4342:25:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38592,"name":"bool","nodeType":"ElementaryTypeName","src":"4342:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":38594,"nodeType":"VariableDeclarationStatement","src":"4342:25:46"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"},"id":38598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38595,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38584,"src":"4382:9:46","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":38596,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36923,"src":"4395:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$36923_$","typeString":"type(enum IPCMsgType)"}},"id":38597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4406:8:46","memberName":"BottomUp","nodeType":"MemberAccess","referencedDeclaration":36922,"src":"4395:19:46","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"}},"src":"4382:32:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38612,"nodeType":"IfStatement","src":"4378:130:46","trueBody":{"id":38611,"nodeType":"Block","src":"4416:92:46","statements":[{"expression":{"id":38609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38599,"name":"shouldCommitBottomUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38593,"src":"4430:20:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4453:44:46","subExpression":{"arguments":[{"expression":{"id":38605,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"4483:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4485:11:46","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42322,"src":"4483:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}],"expression":{"arguments":[{"id":38602,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38576,"src":"4470:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":38600,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38550,"src":"4454:2:46","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":38601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4457:12:46","memberName":"commonParent","nodeType":"MemberAccess","referencedDeclaration":46750,"src":"4454:15:46","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":38603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4454:21:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":38604,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4476:6:46","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":46629,"src":"4454:28:46","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":38607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4454:43:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4430:67:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38610,"nodeType":"ExpressionStatement","src":"4430:67:46"}]}},{"condition":{"id":38613,"name":"shouldCommitBottomUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38593,"src":"4522:20:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38630,"nodeType":"IfStatement","src":"4518:211:46","trueBody":{"id":38629,"nodeType":"Block","src":"4544:185:46","statements":[{"expression":{"arguments":[{"id":38617,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38543,"src":"4587:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":38614,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"4558:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":38616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4569:17:46","memberName":"commitBottomUpMsg","nodeType":"MemberAccess","referencedDeclaration":42137,"src":"4558:28:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$48452_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":38618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4558:42:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38619,"nodeType":"ExpressionStatement","src":"4558:42:46"},{"expression":{"components":[{"id":38626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38620,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38546,"src":"4673:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":38621,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38543,"src":"4686:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":38622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4699:7:46","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"4686:20:46","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":38623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4707:5:46","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48460,"src":"4686:26:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":38624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4716:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4686:31:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4673:44:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":38627,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4672:46:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":38547,"id":38628,"nodeType":"Return","src":"4665:53:46"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"},"id":38634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38631,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38584,"src":"4743:9:46","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":38632,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36923,"src":"4756:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$36923_$","typeString":"type(enum IPCMsgType)"}},"id":38633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4767:7:46","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":36921,"src":"4756:18:46","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"}},"src":"4743:31:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38640,"nodeType":"IfStatement","src":"4739:85:46","trueBody":{"id":38639,"nodeType":"Block","src":"4776:48:46","statements":[{"expression":{"id":38637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4790:23:46","subExpression":{"expression":{"id":38635,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"4792:1:46","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4794:19:46","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":42337,"src":"4792:21:46","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":38638,"nodeType":"ExpressionStatement","src":"4790:23:46"}]}},{"expression":{"arguments":[{"id":38644,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38543,"src":"4862:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":38641,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"4834:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":38643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4845:16:46","memberName":"commitTopDownMsg","nodeType":"MemberAccess","referencedDeclaration":41971,"src":"4834:27:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$48452_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":38645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4834:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38646,"nodeType":"ExpressionStatement","src":"4834:41:46"},{"expression":{"components":[{"id":38649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38647,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38546,"src":"4894:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":38648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4907:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"4894:18:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":38650,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4893:20:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":38547,"id":38651,"nodeType":"Return","src":"4886:27:46"}]},"documentation":{"id":38540,"nodeType":"StructuredDocumentation","src":"3383:292:46","text":" @dev Commit the cross message to storage. It outputs a flag signaling\n if the committed messages was bottom-up and some funds need to be\n burnt.\n It also validates that destination subnet ID is not empty\n and not equal to the current network."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCrossMessage","nameLocation":"3689:19:46","parameters":{"id":38544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38543,"mutability":"mutable","name":"crossMessage","nameLocation":"3725:12:46","nodeType":"VariableDeclaration","scope":38653,"src":"3709:28:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38542,"nodeType":"UserDefinedTypeName","pathNode":{"id":38541,"name":"CrossMsg","nameLocations":["3709:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"3709:8:46"},"referencedDeclaration":48452,"src":"3709:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"3708:30:46"},"returnParameters":{"id":38547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38546,"mutability":"mutable","name":"shouldBurn","nameLocation":"3762:10:46","nodeType":"VariableDeclaration","scope":38653,"src":"3757:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38545,"name":"bool","nodeType":"ElementaryTypeName","src":"3757:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3756:17:46"},"scope":38674,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":38673,"nodeType":"FunctionDefinition","src":"5233:163:46","nodes":[],"body":{"id":38672,"nodeType":"Block","src":"5300:96:46","nodes":[],"statements":[{"condition":{"id":38661,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38658,"src":"5314:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38671,"nodeType":"IfStatement","src":"5310:80:46","trueBody":{"id":38670,"nodeType":"Block","src":"5326:64:46","statements":[{"expression":{"arguments":[{"id":38667,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38656,"src":"5377:1:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":38664,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36423,"src":"5348:17:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":38663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5340:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":38662,"name":"address","nodeType":"ElementaryTypeName","src":"5340:8:46","stateMutability":"payable","typeDescriptions":{}}},"id":38665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5340:26:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":38666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5367:9:46","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"5340:36:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":38668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5340:39:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38669,"nodeType":"ExpressionStatement","src":"5340:39:46"}]}}]},"documentation":{"id":38654,"nodeType":"StructuredDocumentation","src":"4926:302:46","text":" @dev Performs transaction side-effects from the commitment of a cross-net message. Like\n burning funds when bottom-up messages are propagated.\n @param v - the value of the committed cross-net message\n @param shouldBurn - flag if the message should burn funds"},"implemented":true,"kind":"function","modifiers":[],"name":"_crossMsgSideEffects","nameLocation":"5242:20:46","parameters":{"id":38659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38656,"mutability":"mutable","name":"v","nameLocation":"5271:1:46","nodeType":"VariableDeclaration","scope":38673,"src":"5263:9:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38655,"name":"uint256","nodeType":"ElementaryTypeName","src":"5263:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38658,"mutability":"mutable","name":"shouldBurn","nameLocation":"5279:10:46","nodeType":"VariableDeclaration","scope":38673,"src":"5274:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38657,"name":"bool","nodeType":"ElementaryTypeName","src":"5274:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5262:28:46"},"returnParameters":{"id":38660,"nodeType":"ParameterList","parameters":[],"src":"5300:0:46"},"scope":38674,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":38393,"name":"GatewayActorModifiers","nameLocations":["1013:21:46"],"nodeType":"IdentifierPath","referencedDeclaration":42438,"src":"1013:21:46"},"id":38394,"nodeType":"InheritanceSpecifier","src":"1013:21:46"}],"canonicalName":"GatewayMessengerFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[38674,42438],"name":"GatewayMessengerFacet","nameLocation":"988:21:46","scope":38675,"usedErrors":[1134,1138,36944,36988,36990,36994,37036,37038,37050,37094]}],"license":"UNLICENSED"},"id":46} \ No newline at end of file +{"abi":[{"type":"function","name":"propagate","inputs":[{"name":"msgCid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendUserXnetMessage","inputs":[{"name":"crossMsg","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"payable"},{"type":"error","name":"CallFailed","inputs":[]},{"type":"error","name":"CannotSendCrossMsgToItself","inputs":[]},{"type":"error","name":"InsufficientFunds","inputs":[]},{"type":"error","name":"InvalidCrossMsgDstSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgFromSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgValue","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NotEnoughFee","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]}],"bytecode":{"object":"0x60808060405234610016576123aa908161001c8239f35b600080fdfe608060408181526004908136101561001657600080fd5b600092833560e01c908163210b944e146101bc57506325bf0db61461003a57600080fd5b6020806003193601126101b857823560ff602b5460101c1615610140578085526003825282852090600b820154601b54811061013057341061012057906100a891600861008e610089846109e9565b610cbd565b920154908752600384526100a3858820610b55565b611bb5565b6100b4601b5434610590565b806100bd578480f35b804710610111578480808093335af1903d1561010b57843d916100df8361051b565b926100ec865194856104fa565b83523d92013e5b156100fe5780808480f35b51633204506f60e01b8152fd5b506100f3565b50505163356680b760e01b8152fd5b50505051631036b5ad60e31b8152fd5b84516334472ad760e11b81528690fd5b50826101b483805190610152826104df565b603682527f537570706f727420666f72206d756c74692d6c6576656c2063726f73732d6e6585830152751d081b595cdcd859d95cc81a5cc8191a5cd8589b195960521b818301525193849363015538b160e01b85528401526024830190610536565b0390fd5b8380fd5b91905060206003199381853601126103af5780356001600160401b039586821161048f5781830195858284360301126103bb5760ff602b5460081c16156104165750846102098780610576565b013561022260c061021a8980610576565b013534610590565b03610406576102848461027561025461024461023e8b80610576565b806105b3565b61024f3691806105b3565b6105f3565b885163c836244d60e01b81528781018a9052938492839260448401906106b2565b8683820301602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103fc5789916103cf575b50156103bf578451966102bd88610493565b86358181116103b35760e09084019283360301126103bb578551916102e1836104c4565b848101358281116103b7576102fb908636918401016107c1565b835260248101358281116103b757610318908636918401016107c1565b86840152604481013587840152610331606482016105c8565b606084015260848101356001600160e01b0319811681036103b757608084015260a48101359182116103b35761037060c492602496369184010161077a565b60a0840152013560c0820152865201359081151582036103af57846103a59261039e926103ac970152610cbd565b9280610576565b0135611bb5565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ef9150853d87116103f5575b6103e781836104fa565b81019061069a565b386102ab565b503d6103dd565b86513d8b823e3d90fd5b84516360ec4e6b60e11b81528390fd5b836101b4828861042689956104df565b603a82527f537570706f727420666f722067656e6572616c2d707572706f73652063726f73858301527f732d6e6574206d657373616765732069732064697361626c6564000000000000818301525193849363015538b160e01b85528401526024830190610536565b8780fd5b604081019081106001600160401b038211176104ae57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176104ae57604052565b606081019081106001600160401b038211176104ae57604052565b90601f801991011681019081106001600160401b038211176104ae57604052565b6001600160401b0381116104ae57601f01601f191660200190565b919082519283825260005b848110610562575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610541565b90359060de198136030182121561058b570190565b600080fd5b9190820391821161059d57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561058b570190565b35906001600160401b038216820361058b57565b6001600160401b0381116104ae5760051b60200190565b919060408382031261058b576040519261060c84610493565b83610616826105c8565b815260209182810135906001600160401b03821161058b57019280601f8501121561058b578335610646816105dc565b9461065460405196876104fa565b818652848087019260051b82010192831161058b578401905b82821061067b575050500152565b81356001600160a01b038116810361058b57815290840190840161066d565b9081602091031261058b5751801515810361058b5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106f0575050505090565b83516001600160a01b0316855293810193928101926001016106e2565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020612355833981519152916000905b82821061075a575050505090565b83546001600160a01b03168552938401936001938401939091019061074c565b81601f8201121561058b578035906107918261051b565b9261079f60405194856104fa565b8284526020838301011161058b57816000926020809301838601378301015290565b919060408382031261058b57604051926107da84610493565b838135916001600160401b039283811161058b57846107fa9183016105f3565b825260208101359083821161058b570160408185031261058b576040519361082185610493565b813560ff8116810361058b578552602082013593841161058b57602093610848920161077a565b828401520152565b9060405161085d81610493565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106108ac57505050506108a8925003846104fa565b0152565b83546001600160a01b0316855289955090930192918101918101610890565b90600182811c921680156108fb575b60208310146108e557565b634e487b7160e01b600052602260045260246000fd5b91607f16916108da565b9060405191826000825492610919846108cb565b9081845260019485811690816000146109885750600114610945575b5050610943925003836104fa565b565b9093915060005260209081600020936000915b81831061097057505061094393508201013880610935565b85548884018501529485019487945091830191610958565b91505061094394506020925060ff191682840152151560051b8201013880610935565b90604051916109b983610493565b6020836109c583610850565b81526108486003604051946109d986610493565b60ff600282015416865201610905565b906040516109f681610493565b602060ff600c8395604051610a0a816104c4565b610a13826109ab565b8152610a21600483016109ab565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a61600a8301610905565b60a0820152600b82015460c082015285520154161515910152565b818110610a87575050565b60008155600101610a7c565b90600160401b81116104ae57815490808355818110610ab157505050565b6109439260005260206000209182019101610a7c565b610ad181546108cb565b9081610adb575050565b81601f60009311600114610aed575055565b908083918252610b0c601f60208420940160051c840160018501610a7c565b5555565b600361094391600081556001810180546000825580610b39575b50506000600282015501610ac7565b610b4e91600052602060002090810190610a7c565b3880610b2a565b600c600091610b6381610b10565b610b6f60048201610b10565b826008820155826009820155610b87600a8201610ac7565b82600b8201550155565b60406020610bcd9381610bab8551858452858401906106b2565b940151908281860391015260ff81511684520151918160208201520190610536565b90565b51906001600160a01b038216820361058b57565b906020808383031261058b5782516001600160401b039384821161058b57019260408484031261058b5760405193610c1b85610493565b8051828116810361058b5785528281015191821161058b57019180601f8401121561058b578251610c4b816105dc565b93610c5960405195866104fa565b818552838086019260051b82010192831161058b5783809101915b838310610c85575050505082015290565b8190610c9084610bd0565b8152019101908390610c74565b60021115610ca757565b634e487b7160e01b600052602160045260246000fd5b60208151015151604051630c133d1360e31b81526020600482015260208180610ce960248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b96575b50611b845760405163c836244d60e01b81526040600482015260208180610d4f610d3e60448301876106b2565b82810360031901602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b65575b50611b53578151610e346020825151926040518093819263f47ad7eb60e01b83526040600484015260c0610e1a610dd3610dbe845160e06044890152610124880190610b91565b84890151878203604319016064890152610b91565b6040840151608487015260608401516001600160401b031660a487015260808401516001600160e01b03191660c487015260a08401518682036043190160e4880152610536565b91015161010484015282810360031901602484015261070d565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156117a157600091611b14575b509060405192631ccc893360e11b84526040600485015260008480610e99610e8760448301866106b2565b828103600319016024840152866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610eee96600091611afb575b50604051968792839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156117a157600094611ada575b50600090610f2384610c9d565b6001840361199c5750506040516308c7427760e11b8152602060048201529060008280610f5360248201856106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610fa894600091611983575b50604051948592839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156117a157600092611962575b50816118c7575b505b61185b57610fe681610c9d565b15908115611853575b506114b057601e54801561149a57806001600160401b034316046001810180911161059d5781810291818304149015171561059d57601c5468ffffffffffffffff0061104d6001600160401b038360081c1680606087510152611c27565b60081b169068ffffffffffffffff00191617601c55806000526009602052604060002090600282018054156000146110cf579260038361109b9360409660198597036110a3575b5501611d0a565b510151151590565b6001600160401b03601954166001600160401b03198454161783556110ca6001840161222c565b611094565b50506003810154601f546001600160401b031603611485576003810154906110f6826105dc565b9161110460405193846104fa565b808352601f19611113826105dc565b0160005b81811061141d575050604051928360608101106001600160401b036060860111176104ae579084916060850160405261115260608601610493565b6001600160401b03601954166060860152604051806020601a54918281520190601a6000526000805160206123558339815191529060005b8181106113fb57505050816111a09103826104fa565b6080860152606085018552436020860152604085015260005b8181106113bc5750604051602081526111de85516060602084015260808301906106b2565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611387575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a2600060038401558061133c575b5060036112649201611d0a565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b0383116104ae576020906112bb8484610a93565b0190600052602060002060005b83811061131f575050506020820151600284015550604081015151916003019060005b8381106112fe575050505060409061109b565b806113196113126001936040860151612218565b5185611d0a565b016112eb565b82516001600160a01b0316818301556020909201916001016112c8565b600d9150818102908282040361059d57908491600384016000526020600020908101905b81811061136e575050611257565b82935061137d81939293610b55565b0190859291611360565b91939697509193946020806113a8600193601f198682030187528a51611c3f565b98019301930190928a979695949293611216565b60019192506113f1816113d28160038801611cd8565b506113e16040890151916109e9565b6113eb8383612218565b52612218565b50019084916111b9565b82546001600160a01b031684528a97506020909301926001928301920161118a565b60209060405161142c81610493565b604051611438816104c4565b6114406121f1565b815261144a6121f1565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611117565b9061149581600360409401611d0a565b61109b565b634e487b7160e01b600052601260045260246000fd5b601c546001600160401b038160481c166001600160401b03811461059d57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601c556115206020825101515160405191829163089032d560e01b83526040600484015260448301906106b2565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a6000526000805160206123558339815191529060005b818110611831575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611810575b506040516390ba52cf60e01b815260206004820181905281806115c560248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117de575b50600052600060205260406000209061162e602061160d60048501610850565b60405180938192630c133d1360e31b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117bf575b506117ad576003820180546001600160401b0361167b81831680606089510152611c27565b16906001600160401b0319161790556002604084510151920190815492830180931161059d576116ca9260209255604051809381926304e384ff60e21b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a15760009161173f575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161173791830190611c3f565b0390a2600090565b906020823d602011611799575b81611759602093836104fa565b81010312611796575061173761178f7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bd0565b91506116f2565b80fd5b3d915061174c565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b6117d8915060203d6020116103f5576103e781836104fa565b38611656565b906020823d602011611808575b816117f8602093836104fa565b81010312611796575051386115ed565b3d91506117eb565b61182b913d8091833e61182381836104fa565b810190610be4565b3861159f565b82546001600160a01b0316845285945060209093019260019283019201611568565b905038610fef565b60405163015538b160e01b815260206004820152603860248201527f70726f7061676174696f6e206e6f742073757070706f7274656420666f72207360448201527f75626e657473207769746820455243323020737570706c7900000000000000006064820152608490fd5b6118f0915060209060405180938192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157600090611927575b611921915061229d565b38610fd7565b6020823d60201161195a575b81611940602093836104fa565b81010312611796575061195561192191610bd0565b611917565b3d9150611933565b61197c91925060203d6020116103f5576103e781836104fa565b9038610fd0565b611996913d8091833e61182381836104fa565b38610f84565b9091506119a883610c9d565b8183156119b7575b5050610fd9565b610d3e6119e192604051938492839263089032d560e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611acf578291602091611a329491611ab5575b5060405180948192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611aa9578091611a6b575b50611a64915061229d565b38816119b0565b90506020823d602011611aa1575b81611a86602093836104fa565b810103126117965750611a9b611a6491610bd0565b38611a59565b3d9150611a79565b604051903d90823e3d90fd5b611ac991503d8085833e61182381836104fa565b38611a10565b6040513d84823e3d90fd5b611af491945060203d6020116103f5576103e781836104fa565b9238610f16565b611b0e913d8091833e61182381836104fa565b38610eca565b6020813d602011611b4b575b81611b2d602093836104fa565b81010312611b475751906002821015611796575038610e5c565b5080fd5b3d9150611b20565b604051632f3335ff60e21b8152600490fd5b611b7e915060203d6020116103f5576103e781836104fa565b38610d77565b60405163c5f563eb60e01b8152600490fd5b611baf915060203d6020116103f5576103e781836104fa565b38610d11565b90611bbd5750565b804710611c155760008080809360635af13d15611c10573d611bde8161051b565b90611bec60405192836104fa565b8152600060203d92013e5b15611bfe57565b604051633204506f60e01b8152600490fd5b611bf7565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161059d57565b906020808351936040845260c0611cc5611c66875160e06040890152610120880190610b91565b611c818589015191603f1992838a83030160608b0152610b91565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610536565b9501516101008501520151151591015290565b8054821015611cf457600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b8110156104ae57611d29906001928382018155611cd8565b9190916121c1578251918251928351926001600160401b03808551166001600160401b03199081865416178555828501926020809701518051908482116104ae578890611d768388610a93565b01600095865288862083875b8481106121a6575050505050866002870198015160ff8151169860ff19998a825416179055600392888489019201519182518681116120c05780611dc683546108cb565b94898d601f9788808211612179575b505050508c9086831160011461210e578a92612103575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a01910151908151918783116120ef578b90611e358484610a93565b019088528a882085895b8481106120d457505050505088600689019101519060ff8251168b82541617905588600789019101518051908682116120c0578190611e7e84546108cb565b8c868211612093575b50508b90858311600114612034578992612029575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a087015190815195861161201557611f0e87546108cb565b8a848211611fde575b505089928611600114611f6f57938560ff9a999794819460c09894600c9b9895611f64575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611f3c565b9294939190601f1985168785528a8520945b818110611fc9575092859260ff9b9a989592600c9a9760c0999610611faf575b50505050811b019055611f4c565b01519060f884600019921b161c1916905538808080611fa1565b82840151865594870194928b01928b01611f81565b612005918984528582852091818b0160051c8301938b1061200c575b0160051c0190610a7c565b388a611f17565b92508192611ffa565b634e487b7160e01b81526041600452602490fd5b015190503880611e9c565b848a528c8a208794509190601f1984168b8f5b82821061207c5750508411612064575b505050811b019055611eae565b015160001983891b60f8161c19169055388080612057565b8385015186558a979095019493840193018f612047565b6120b991868c5287828d209181870160051c830193871061200c570160051c0190610a7c565b388c611e87565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611e3f565b634e487b7160e01b89526041600452602489fd5b015190503880611dec565b879350908d91601f198416868d52838d20938d905b8282106121585750508411612140575b505050811b019055611dfe565b0151600019838a1b60f8161c19169055388080612133565b91929395968291958786015181550195019301908f918a9695949392612123565b82848961219d9652209181870160051c830193871061200c570160051c0190610a7c565b898d3888611dd5565b83516001600160a01b031683820155928b0192859101611d82565b634e487b7160e01b600052600060045260246000fd5b604051906121e482610493565b6060602083600081520152565b604051906121fe82610493565b816122076121d7565b815260206122136121d7565b910152565b8051821015611cf45760209160051b010190565b601a811461229a57601a54906001600160401b0382116104ae576122508282610a93565b60009081526020812060008051602061235583398151915280545b848410612279575050505050565b600191820180546001600160a01b039092168486015593909101929061226b565b50565b604080516380875df760e01b815290918290829060049082906001600160a01b03165afa91821561234a576000926122ec575b5050600190516122df81610c9d565b6122e881610c9d565b1490565b8082813d8311612343575b61230181836104fa565b8101031261233f57519161231483610493565b8151906002821015611796575060208392612333926001955201610bd0565b602082015290386122d0565b8280fd5b503d6122f7565b513d6000823e3d90fdfe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220d8540252cab147fdb631bf9262837b6746ad5c2b287d013c80030ea982af557e64736f6c63430008130033","sourceMap":"1060:6017:48:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":3668,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":676,"length":20},{"start":3337,"length":20},{"start":3439,"length":20},{"start":3769,"length":20},{"start":3854,"length":20},{"start":3955,"length":20},{"start":4040,"length":20},{"start":5527,"length":20},{"start":5605,"length":20},{"start":5710,"length":20},{"start":5866,"length":20},{"start":6416,"length":20},{"start":6657,"length":20},{"start":6738,"length":20}]}}},"deployedBytecode":{"object":"0x608060408181526004908136101561001657600080fd5b600092833560e01c908163210b944e146101bc57506325bf0db61461003a57600080fd5b6020806003193601126101b857823560ff602b5460101c1615610140578085526003825282852090600b820154601b54811061013057341061012057906100a891600861008e610089846109e9565b610cbd565b920154908752600384526100a3858820610b55565b611bb5565b6100b4601b5434610590565b806100bd578480f35b804710610111578480808093335af1903d1561010b57843d916100df8361051b565b926100ec865194856104fa565b83523d92013e5b156100fe5780808480f35b51633204506f60e01b8152fd5b506100f3565b50505163356680b760e01b8152fd5b50505051631036b5ad60e31b8152fd5b84516334472ad760e11b81528690fd5b50826101b483805190610152826104df565b603682527f537570706f727420666f72206d756c74692d6c6576656c2063726f73732d6e6585830152751d081b595cdcd859d95cc81a5cc8191a5cd8589b195960521b818301525193849363015538b160e01b85528401526024830190610536565b0390fd5b8380fd5b91905060206003199381853601126103af5780356001600160401b039586821161048f5781830195858284360301126103bb5760ff602b5460081c16156104165750846102098780610576565b013561022260c061021a8980610576565b013534610590565b03610406576102848461027561025461024461023e8b80610576565b806105b3565b61024f3691806105b3565b6105f3565b885163c836244d60e01b81528781018a9052938492839260448401906106b2565b8683820301602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103fc5789916103cf575b50156103bf578451966102bd88610493565b86358181116103b35760e09084019283360301126103bb578551916102e1836104c4565b848101358281116103b7576102fb908636918401016107c1565b835260248101358281116103b757610318908636918401016107c1565b86840152604481013587840152610331606482016105c8565b606084015260848101356001600160e01b0319811681036103b757608084015260a48101359182116103b35761037060c492602496369184010161077a565b60a0840152013560c0820152865201359081151582036103af57846103a59261039e926103ac970152610cbd565b9280610576565b0135611bb5565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ef9150853d87116103f5575b6103e781836104fa565b81019061069a565b386102ab565b503d6103dd565b86513d8b823e3d90fd5b84516360ec4e6b60e11b81528390fd5b836101b4828861042689956104df565b603a82527f537570706f727420666f722067656e6572616c2d707572706f73652063726f73858301527f732d6e6574206d657373616765732069732064697361626c6564000000000000818301525193849363015538b160e01b85528401526024830190610536565b8780fd5b604081019081106001600160401b038211176104ae57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176104ae57604052565b606081019081106001600160401b038211176104ae57604052565b90601f801991011681019081106001600160401b038211176104ae57604052565b6001600160401b0381116104ae57601f01601f191660200190565b919082519283825260005b848110610562575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610541565b90359060de198136030182121561058b570190565b600080fd5b9190820391821161059d57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561058b570190565b35906001600160401b038216820361058b57565b6001600160401b0381116104ae5760051b60200190565b919060408382031261058b576040519261060c84610493565b83610616826105c8565b815260209182810135906001600160401b03821161058b57019280601f8501121561058b578335610646816105dc565b9461065460405196876104fa565b818652848087019260051b82010192831161058b578401905b82821061067b575050500152565b81356001600160a01b038116810361058b57815290840190840161066d565b9081602091031261058b5751801515810361058b5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106f0575050505090565b83516001600160a01b0316855293810193928101926001016106e2565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020612355833981519152916000905b82821061075a575050505090565b83546001600160a01b03168552938401936001938401939091019061074c565b81601f8201121561058b578035906107918261051b565b9261079f60405194856104fa565b8284526020838301011161058b57816000926020809301838601378301015290565b919060408382031261058b57604051926107da84610493565b838135916001600160401b039283811161058b57846107fa9183016105f3565b825260208101359083821161058b570160408185031261058b576040519361082185610493565b813560ff8116810361058b578552602082013593841161058b57602093610848920161077a565b828401520152565b9060405161085d81610493565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106108ac57505050506108a8925003846104fa565b0152565b83546001600160a01b0316855289955090930192918101918101610890565b90600182811c921680156108fb575b60208310146108e557565b634e487b7160e01b600052602260045260246000fd5b91607f16916108da565b9060405191826000825492610919846108cb565b9081845260019485811690816000146109885750600114610945575b5050610943925003836104fa565b565b9093915060005260209081600020936000915b81831061097057505061094393508201013880610935565b85548884018501529485019487945091830191610958565b91505061094394506020925060ff191682840152151560051b8201013880610935565b90604051916109b983610493565b6020836109c583610850565b81526108486003604051946109d986610493565b60ff600282015416865201610905565b906040516109f681610493565b602060ff600c8395604051610a0a816104c4565b610a13826109ab565b8152610a21600483016109ab565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a61600a8301610905565b60a0820152600b82015460c082015285520154161515910152565b818110610a87575050565b60008155600101610a7c565b90600160401b81116104ae57815490808355818110610ab157505050565b6109439260005260206000209182019101610a7c565b610ad181546108cb565b9081610adb575050565b81601f60009311600114610aed575055565b908083918252610b0c601f60208420940160051c840160018501610a7c565b5555565b600361094391600081556001810180546000825580610b39575b50506000600282015501610ac7565b610b4e91600052602060002090810190610a7c565b3880610b2a565b600c600091610b6381610b10565b610b6f60048201610b10565b826008820155826009820155610b87600a8201610ac7565b82600b8201550155565b60406020610bcd9381610bab8551858452858401906106b2565b940151908281860391015260ff81511684520151918160208201520190610536565b90565b51906001600160a01b038216820361058b57565b906020808383031261058b5782516001600160401b039384821161058b57019260408484031261058b5760405193610c1b85610493565b8051828116810361058b5785528281015191821161058b57019180601f8401121561058b578251610c4b816105dc565b93610c5960405195866104fa565b818552838086019260051b82010192831161058b5783809101915b838310610c85575050505082015290565b8190610c9084610bd0565b8152019101908390610c74565b60021115610ca757565b634e487b7160e01b600052602160045260246000fd5b60208151015151604051630c133d1360e31b81526020600482015260208180610ce960248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b96575b50611b845760405163c836244d60e01b81526040600482015260208180610d4f610d3e60448301876106b2565b82810360031901602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b65575b50611b53578151610e346020825151926040518093819263f47ad7eb60e01b83526040600484015260c0610e1a610dd3610dbe845160e06044890152610124880190610b91565b84890151878203604319016064890152610b91565b6040840151608487015260608401516001600160401b031660a487015260808401516001600160e01b03191660c487015260a08401518682036043190160e4880152610536565b91015161010484015282810360031901602484015261070d565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156117a157600091611b14575b509060405192631ccc893360e11b84526040600485015260008480610e99610e8760448301866106b2565b828103600319016024840152866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610eee96600091611afb575b50604051968792839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156117a157600094611ada575b50600090610f2384610c9d565b6001840361199c5750506040516308c7427760e11b8152602060048201529060008280610f5360248201856106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610fa894600091611983575b50604051948592839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156117a157600092611962575b50816118c7575b505b61185b57610fe681610c9d565b15908115611853575b506114b057601e54801561149a57806001600160401b034316046001810180911161059d5781810291818304149015171561059d57601c5468ffffffffffffffff0061104d6001600160401b038360081c1680606087510152611c27565b60081b169068ffffffffffffffff00191617601c55806000526009602052604060002090600282018054156000146110cf579260038361109b9360409660198597036110a3575b5501611d0a565b510151151590565b6001600160401b03601954166001600160401b03198454161783556110ca6001840161222c565b611094565b50506003810154601f546001600160401b031603611485576003810154906110f6826105dc565b9161110460405193846104fa565b808352601f19611113826105dc565b0160005b81811061141d575050604051928360608101106001600160401b036060860111176104ae579084916060850160405261115260608601610493565b6001600160401b03601954166060860152604051806020601a54918281520190601a6000526000805160206123558339815191529060005b8181106113fb57505050816111a09103826104fa565b6080860152606085018552436020860152604085015260005b8181106113bc5750604051602081526111de85516060602084015260808301906106b2565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611387575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a2600060038401558061133c575b5060036112649201611d0a565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b0383116104ae576020906112bb8484610a93565b0190600052602060002060005b83811061131f575050506020820151600284015550604081015151916003019060005b8381106112fe575050505060409061109b565b806113196113126001936040860151612218565b5185611d0a565b016112eb565b82516001600160a01b0316818301556020909201916001016112c8565b600d9150818102908282040361059d57908491600384016000526020600020908101905b81811061136e575050611257565b82935061137d81939293610b55565b0190859291611360565b91939697509193946020806113a8600193601f198682030187528a51611c3f565b98019301930190928a979695949293611216565b60019192506113f1816113d28160038801611cd8565b506113e16040890151916109e9565b6113eb8383612218565b52612218565b50019084916111b9565b82546001600160a01b031684528a97506020909301926001928301920161118a565b60209060405161142c81610493565b604051611438816104c4565b6114406121f1565b815261144a6121f1565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611117565b9061149581600360409401611d0a565b61109b565b634e487b7160e01b600052601260045260246000fd5b601c546001600160401b038160481c166001600160401b03811461059d57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601c556115206020825101515160405191829163089032d560e01b83526040600484015260448301906106b2565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a6000526000805160206123558339815191529060005b818110611831575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611810575b506040516390ba52cf60e01b815260206004820181905281806115c560248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117de575b50600052600060205260406000209061162e602061160d60048501610850565b60405180938192630c133d1360e31b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117bf575b506117ad576003820180546001600160401b0361167b81831680606089510152611c27565b16906001600160401b0319161790556002604084510151920190815492830180931161059d576116ca9260209255604051809381926304e384ff60e21b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a15760009161173f575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161173791830190611c3f565b0390a2600090565b906020823d602011611799575b81611759602093836104fa565b81010312611796575061173761178f7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bd0565b91506116f2565b80fd5b3d915061174c565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b6117d8915060203d6020116103f5576103e781836104fa565b38611656565b906020823d602011611808575b816117f8602093836104fa565b81010312611796575051386115ed565b3d91506117eb565b61182b913d8091833e61182381836104fa565b810190610be4565b3861159f565b82546001600160a01b0316845285945060209093019260019283019201611568565b905038610fef565b60405163015538b160e01b815260206004820152603860248201527f70726f7061676174696f6e206e6f742073757070706f7274656420666f72207360448201527f75626e657473207769746820455243323020737570706c7900000000000000006064820152608490fd5b6118f0915060209060405180938192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157600090611927575b611921915061229d565b38610fd7565b6020823d60201161195a575b81611940602093836104fa565b81010312611796575061195561192191610bd0565b611917565b3d9150611933565b61197c91925060203d6020116103f5576103e781836104fa565b9038610fd0565b611996913d8091833e61182381836104fa565b38610f84565b9091506119a883610c9d565b8183156119b7575b5050610fd9565b610d3e6119e192604051938492839263089032d560e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611acf578291602091611a329491611ab5575b5060405180948192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611aa9578091611a6b575b50611a64915061229d565b38816119b0565b90506020823d602011611aa1575b81611a86602093836104fa565b810103126117965750611a9b611a6491610bd0565b38611a59565b3d9150611a79565b604051903d90823e3d90fd5b611ac991503d8085833e61182381836104fa565b38611a10565b6040513d84823e3d90fd5b611af491945060203d6020116103f5576103e781836104fa565b9238610f16565b611b0e913d8091833e61182381836104fa565b38610eca565b6020813d602011611b4b575b81611b2d602093836104fa565b81010312611b475751906002821015611796575038610e5c565b5080fd5b3d9150611b20565b604051632f3335ff60e21b8152600490fd5b611b7e915060203d6020116103f5576103e781836104fa565b38610d77565b60405163c5f563eb60e01b8152600490fd5b611baf915060203d6020116103f5576103e781836104fa565b38610d11565b90611bbd5750565b804710611c155760008080809360635af13d15611c10573d611bde8161051b565b90611bec60405192836104fa565b8152600060203d92013e5b15611bfe57565b604051633204506f60e01b8152600490fd5b611bf7565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161059d57565b906020808351936040845260c0611cc5611c66875160e06040890152610120880190610b91565b611c818589015191603f1992838a83030160608b0152610b91565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610536565b9501516101008501520151151591015290565b8054821015611cf457600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b8110156104ae57611d29906001928382018155611cd8565b9190916121c1578251918251928351926001600160401b03808551166001600160401b03199081865416178555828501926020809701518051908482116104ae578890611d768388610a93565b01600095865288862083875b8481106121a6575050505050866002870198015160ff8151169860ff19998a825416179055600392888489019201519182518681116120c05780611dc683546108cb565b94898d601f9788808211612179575b505050508c9086831160011461210e578a92612103575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a01910151908151918783116120ef578b90611e358484610a93565b019088528a882085895b8481106120d457505050505088600689019101519060ff8251168b82541617905588600789019101518051908682116120c0578190611e7e84546108cb565b8c868211612093575b50508b90858311600114612034578992612029575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a087015190815195861161201557611f0e87546108cb565b8a848211611fde575b505089928611600114611f6f57938560ff9a999794819460c09894600c9b9895611f64575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611f3c565b9294939190601f1985168785528a8520945b818110611fc9575092859260ff9b9a989592600c9a9760c0999610611faf575b50505050811b019055611f4c565b01519060f884600019921b161c1916905538808080611fa1565b82840151865594870194928b01928b01611f81565b612005918984528582852091818b0160051c8301938b1061200c575b0160051c0190610a7c565b388a611f17565b92508192611ffa565b634e487b7160e01b81526041600452602490fd5b015190503880611e9c565b848a528c8a208794509190601f1984168b8f5b82821061207c5750508411612064575b505050811b019055611eae565b015160001983891b60f8161c19169055388080612057565b8385015186558a979095019493840193018f612047565b6120b991868c5287828d209181870160051c830193871061200c570160051c0190610a7c565b388c611e87565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611e3f565b634e487b7160e01b89526041600452602489fd5b015190503880611dec565b879350908d91601f198416868d52838d20938d905b8282106121585750508411612140575b505050811b019055611dfe565b0151600019838a1b60f8161c19169055388080612133565b91929395968291958786015181550195019301908f918a9695949392612123565b82848961219d9652209181870160051c830193871061200c570160051c0190610a7c565b898d3888611dd5565b83516001600160a01b031683820155928b0192859101611d82565b634e487b7160e01b600052600060045260246000fd5b604051906121e482610493565b6060602083600081520152565b604051906121fe82610493565b816122076121d7565b815260206122136121d7565b910152565b8051821015611cf45760209160051b010190565b601a811461229a57601a54906001600160401b0382116104ae576122508282610a93565b60009081526020812060008051602061235583398151915280545b848410612279575050505050565b600191820180546001600160a01b039092168486015593909101929061226b565b50565b604080516380875df760e01b815290918290829060049082906001600160a01b03165afa91821561234a576000926122ec575b5050600190516122df81610c9d565b6122e881610c9d565b1490565b8082813d8311612343575b61230181836104fa565b8101031261233f57519161231483610493565b8151906002821015611796575060208392612333926001955201610bd0565b602082015290386122d0565b8280fd5b503d6122f7565b513d6000823e3d90fdfe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220d8540252cab147fdb631bf9262837b6746ad5c2b287d013c80030ea982af557e64736f6c63430008130033","sourceMap":"1060:6017:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2620:20;1060:6017;;;;2619:21;2615:110;;1001:56;;;1060:6017;1001:56;;;;;2802:20;;;;1001:56;4276:16:64;1001:56:48;4270:22:64;;4266:74;;4353:9;:15;4349:69;;1001:56:48;3266:10;1001:56;3159:22;2852:29;1001:56;;;:::i;:::-;2852:29;:::i;:::-;3159:22;;1001:56;;;;1060:6017;1001:56;;3191:24;1001:56;;;3191:24;:::i;:::-;3266:10;:::i;:::-;3312:28;4276:16:64;1001:56:48;4353:9:64;3312:28:48;:::i;:::-;3408:17;3404:91;;1060:6017;;;3404:91;13330:21:1;;:31;13326:63;;3449:10:48;;;;;;13419:35:1;;1060:6017:48;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;13468:8:1;13464:33;;3404:91:48;;1060:6017;;;13464:33:1;1060:6017:48;-1:-1:-1;;;13485:12:1;;;1060:6017:48;;;;13326:63:1;-1:-1:-1;;1060:6017:48;-1:-1:-1;;;13370:19:1;;;4349:69:64;1060:6017:48;;;;4391:16:64;;;;;;4266:74;1060:6017:48;;-1:-1:-1;;;4315:14:64;;1060:6017:48;;4315:14:64;2615:110:48;1060:6017;;887:60;1060:6017;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1060:6017:48;;;;;1725:48;;;;;;2663:51;;;;887:60;;;;;;:::i;:::-;2663:51;;;1060:6017;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;;;;;;;;;;;;;;1678:24;1060:6017;;;;1677:25;1673:111;;1798:16;;;;;;:::i;:::-;:22;887:60;1824:32;1836:20;:16;;;;:::i;:::-;:20;887:60;1824:9;:32;:::i;:::-;1798:58;1794:118;;887:60;2093:16;887:60;;2093:21;:16;;;;:::i;:::-;:21;;:::i;:::-;:30;1060:6017;2093:30;;;:::i;:::-;887:60;:::i;:::-;1060:6017;;-1:-1:-1;;;2093:52:48;;;;;887:60;;;1060:6017;;;;;887:60;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;2093:52;:37;;:52;;;;;;;;;;;1060:6017;2092:53;;2088:118;;1060:6017;;;;;;:::i;:::-;887:60;;;;;;;1060:6017;887:60;;;1060:6017;;;887:60;;;;;1060:6017;;;;;;:::i;:::-;887:60;;;;;;;;;;1060:6017;;;887:60;;;;;:::i;:::-;;;;;;;;;;;;;1060:6017;;;887:60;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;887:60:48;;;;;;;;;;;;;;;;;;;;;1060:6017;887:60;1060:6017;;887:60;;;;;:::i;:::-;;;;;;;1836:20;887:60;;;;;;;1060:6017;;;;887:60;;;;;2347:16;887:60;2282:29;887:60;2383:10;887:60;;;2282:29;:::i;:::-;2347:16;;;:::i;:::-;:22;887:60;2383:10;:::i;:::-;1060:6017;;887:60;;;;;1060:6017;;;887:60;;;;;1060:6017;;;2088:118;1060:6017;;-1:-1:-1;;;2168:27:48;;1060:6017;;2168:27;2093:52;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1060:6017;;887:60;1060:6017;;887:60;;;;1794:118;1060:6017;;-1:-1:-1;;;1879:22:48;;1060:6017;;1879:22;1673:111;1060:6017;887:60;1060:6017;;;;;;:::i;:::-;;;;;;;;;;;;;;;1725:48;;;;;;;;;;887:60;;;;;;:::i;1060:6017::-;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;:::o;:::-;-1:-1:-1;;;;;1060:6017:48;;;;;;-1:-1:-1;;1060:6017:48;;;;:::o;887:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;1060:6017;;;;;;887:60;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1060:6017;;;887:60;;;;;;;;;;:::o;:::-;1060:6017;;;887:60;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;887:60:48;;;;;;:::o;:::-;-1:-1:-1;;;;;887:60:48;;;;;;;;;:::o;:::-;;;;;;;;;;;1060:6017;;;;;:::i;:::-;887:60;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;;;;;;;;:::i;:::-;1060:6017;;887:60;1060:6017;;;;:::i;:::-;887:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;;;;;;;;;;;;;;;1060:6017;;;887:60;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2131:13:48;887:60;;;;;;;;;;;;;;;;;;;;-1:-1:-1;887:60:48;-1:-1:-1;;;;;;;;;;;887:60:48;-1:-1:-1;887:60:48;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1060:6017;;;;;;;:::i;:::-;887:60;;;;;;;;;;;;-1:-1:-1;887:60:48;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;1060:6017;;;;;:::i;:::-;887:60;;;;-1:-1:-1;;;;;887:60:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1060:6017;;;;;:::i;:::-;887:60;;1060:6017;;;887:60;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;1001:56::-;;;1060:6017;;;;:::i;:::-;1001:56;;-1:-1:-1;;;;;1001:56:48;;887:60;1001:56;;;;;;1060:6017;1001:56;1060:6017;1001:56;;887:60;;;;;;;;;;;;;-1:-1:-1;887:60:48;;-1:-1:-1;887:60:48;1001:56;-1:-1:-1;1001:56:48;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;887:60;;-1:-1:-1;;;;;887:60:48;;;1001:56;;-1:-1:-1;887:60:48;;;;;;;;1001:56;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1060:6017;;;1001:56;;;;;;;;;;;;;;;;;1060:6017;;1001:56;;-1:-1:-1;1001:56:48;;;;;;:::i;:::-;887:60;;;;1001:56;;;;;;;;;;;887:60;1001:56;887:60;;;1001:56;;;;;;;;;:::i;:::-;:::o;:::-;887:60;;;;-1:-1:-1;887:60:48;;;;-1:-1:-1;887:60:48;1001:56;-1:-1:-1;1001:56:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1001:56:48;;;;;;;;;;;;;887:60;1001:56;;;;;887:60;;;1001:56;;;;;;;;;;;;;;;1060:6017;;;;;:::i;:::-;1001:56;;;;;:::i;:::-;;;;;;1060:6017;;;;;:::i;:::-;;1001:56;;;;1060:6017;1001:56;;;;:::i;:::-;;;1060:6017;;;;:::i;:::-;1001:56;1060:6017;1001:56;;1060:6017;1001:56;1060:6017;;;;:::i;:::-;1001:56;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;887:60:48;;1001:56;;;;887:60;;-1:-1:-1;;;;;;887:60:48;1001:56;;;;;;;;;:::i;:::-;887:60;1001:56;;;;;;;;;;;;;;;1060:6017;;;1001:56;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;1001:56:48;;;;887:60;;1001:56;;;;;;;;;;;;:::o;:::-;;887:60;-1:-1:-1;887:60:48;;-1:-1:-1;887:60:48;1001:56;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;887:60;;;;;;1001:56;;;887:60;;1001:56;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;887:60;;1001:56;;;;;;;;;;;;;;;;:::i;:::-;;887:60;1001:56;887:60;;1001:56;887:60;1001:56;;;;;:::i;:::-;;;;;;;1060:6017;1001:56;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;1060:6017::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;-1:-1:-1;;;;;887:60:48;;;;;;1060:6017::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;887:60;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1060:6017:48;;;:::o;:::-;;;;;;;;;;;;3988:2611;4113:23;:20;;:23;;:32;1060:6017;;887:60;;;4159:12;;4113:23;4159:12;;;1060:6017;4113:23;1060:6017;;;;;;;;:::i;:::-;4159:12;:10;;:12;;;;;;;-1:-1:-1;4159:12:48;;;3988:2611;4155:76;;;1060:6017;;887:60;;;4351:24;;1060:6017;4159:12;4351:24;;887:60;4113:23;887:60;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;887:60:48;1060:6017;887:60;;;;:::i;:::-;4351:24;4159:10;;4351:24;;;;;;;-1:-1:-1;4351:24:48;;;3988:2611;4347:90;;;4470:20;;1060:6017;4113:23;4470:25;;:34;1060:6017;;;887:60;;;;;;;4537:45;;1060:6017;4159:12;4537:45;;1060:6017;;;;;;;887:60;;1060:6017;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1060:6017:48;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;887:60:48;1060:6017;;;887:60;1060:6017;;;;-1:-1:-1;;;;;;887:60:48;1060:6017;;;;;;;;;;;-1:-1:-1;;1060:6017:48;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1060:6017:48;;;;;;:::i;:::-;4537:45;:30;;:45;;;;;;;-1:-1:-1;4537:45:48;;;3988:2611;1060:6017;;;;887:60;;;;4658:21;;1060:6017;4159:12;4658:21;;1060:6017;-1:-1:-1;1060:6017:48;;;;887:60;1060:6017;;;;:::i;:::-;;;;-1:-1:-1;;1060:6017:48;;;;;;;:::i;:::-;4658:21;4159:10;;4658:21;;;;;;887:60;4113:23;4658:21;887:60;4658:21;-1:-1:-1;4658:21:48;;;3988:2611;1060:6017;;;887:60;;;;;;;;4658:43;;1060:6017;4159:12;4658:43;;887:60;;;;;;:::i;:::-;4658:43;4159:10;;4658:43;;;;;;;-1:-1:-1;4658:43:48;;;3988:2611;5200:19;-1:-1:-1;1060:6017:48;;;;:::i;:::-;5246:19;5233:32;;5246:19;;-1:-1:-1;;1060:6017:48;;-1:-1:-1;;;5544:22:48;;4113:23;4159:12;5544:22;;1060:6017;;-1:-1:-1;1060:6017:48;;;;;;887:60;1060:6017;:::i;:::-;5544:22;4159:10;;5544:22;;;;;;887:60;4113:23;5544:22;887:60;5544:22;-1:-1:-1;5544:22:48;;;5229:685;1060:6017;;;887:60;;;;;;;;5544:44;;1060:6017;4159:12;5544:44;;887:60;;;;;;:::i;:::-;5544:44;4159:10;;5544:44;;;;;;;-1:-1:-1;5544:44:48;;;5229:685;5544:97;;;;5229:685;5535:106;5229:685;5923:120;;1060:6017;;;:::i;:::-;6200:31;:40;;;;;5229:685;6196:190;;;10399:24:63;1001:56:48;1060:6017;;;;10385:12:63;-1:-1:-1;;;;;10385:12:63;887:60:48;1060:6017;5246:19;1060:6017;;;;;;;1001:56;;;;;;;;;;;;;;10504:15:63;1060:6017:48;;10529:20:63;-1:-1:-1;;;;;1060:6017:48;;;887:60;10475:20:63;1060:6017:48;10475:20:63;;:26;1001:56:48;10529:20:63;:::i;:::-;1060:6017:48;;;;;;;;10504:15:63;1060:6017:48;1001:56;-1:-1:-1;1001:56:48;2943:20:63;4113:23:48;1001:56;1060:6017;-1:-1:-1;1001:56:48;2989:17:63;;;;1001:56:48;;2989:22:63;10700:1745;2989:17;;;1060:6017:48;;;10875:29:63;1060:6017:48;;;4361:13;1060:6017;;;;;10700:1745:63;1060:6017:48;10875:10:63;:29;:::i;:::-;6560:20:48;:26;1060:6017;6560:31;;3988:2611;:::o;1060:6017::-;-1:-1:-1;;;;;4361:13:48;1001:56;887:60;-1:-1:-1;;;;;1060:6017:48;;;;;;;;5246:19;1060:6017;;;:::i;:::-;;;10700:1745:63;-1:-1:-1;;1060:6017:48;11079:10:63;;887:60:48;11100:25:63;1001:56:48;-1:-1:-1;;;;;887:60:48;11079:46:63;887:60:48;;1060:6017;11079:10:63;;887:60:48;1060:6017;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1060:6017:48;;;:::i;:::-;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11347:13:63;1001:56:48;887:60;1060:6017;;;1001:56;1060:6017;;1001:56;4113:23;1001:56;887:60;;;;;;;1001:56;-1:-1:-1;887:60:48;-1:-1:-1;;;;;;;;;;;1001:56:48;-1:-1:-1;1001:56:48;;;;;;;;;;;;;;;:::i;:::-;1060:6017;1001:56;;;1060:6017;;;1001:56;;10385:12:63;4113:23:48;11298:185:63;;1001:56:48;1060:6017;11298:185:63;;1001:56:48;-1:-1:-1;11572:13:63;;;;;;1060:6017:48;;;4113:23;1060:6017;;;;;;4113:23;1060:6017;;;;;;;;:::i;:::-;11298:185:63;4113:23:48;11298:185:63;;1060:6017:48;;;;;;11298:185:63;;1060:6017:48;;;;;;;;;;;;887:60;;;;;4113:23;887:60;;1060:6017;4113:23;1060:6017;;;;;;;887:60;;1060:6017;-1:-1:-1;1060:6017:48;;;;;;;10385:12:63;;;;;;11843:38;10385:12;;11843:38;;;;-1:-1:-1;1060:6017:48;11079:10:63;;1060:6017:48;;;;;11079:10:63;1060:6017:48;12121:29:63;11079:10;;12121:29;:::i;:::-;4113:23:48;11298:185:63;;1060:6017:48;-1:-1:-1;1001:56:48;2943:20:63;4113:23:48;1001:56;1060:6017;-1:-1:-1;1001:56:48;4242:14:63;;;-1:-1:-1;;;;;1060:6017:48;;887:60;-1:-1:-1;;;;;1060:6017:48;;;;;;;4113:23;5246:19;1060:6017;;;;887:60;;;;1060:6017;-1:-1:-1;;;;;1060:6017:48;;;;4113:23;1060:6017;;;;;:::i;:::-;887:60;;-1:-1:-1;887:60:48;4113:23;-1:-1:-1;887:60:48;-1:-1:-1;1060:6017:48;;;;;;-1:-1:-1;;;4113:23:48;11298:185:63;;1060:6017:48;2989:17:63;4266:13;;1060:6017:48;-1:-1:-1;1060:6017:48;11298:185:63;;4330:10;887:60:48;;1060:6017;4586:6:63;;-1:-1:-1;4373:13:63;;;;;;11075:1360;;;;1060:6017:48;11075:1360:63;10700:1745;;4362:9;11298:185;4586:26;4598:13;5246:19:48;11298:185:63;1060:6017:48;11298:185:63;;4598:10;:13;:::i;:::-;;4586:26;;:::i;:::-;1060:6017:48;4362:9:63;;1060:6017:48;;;-1:-1:-1;;;;;887:60:48;1060:6017;;;;4113:23;1060:6017;;;;5246:19;1060:6017;;;;;;-1:-1:-1;1001:56:48;;;;;;;;;;11079:10:63;;;1060:6017:48;11079:10:63;;-1:-1:-1;887:60:48;4113:23;-1:-1:-1;887:60:48;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;4113:23;1060:6017;;5246:19;1060:6017;;;;;;;;;;;;:::i;:::-;887:60;;1060:6017;;;;;;;;;;;;;;;11561:9:63;5246:19:48;11079:10:63;;;11610:32;11079:10;11629:13;11079:10;1060:6017:48;11079:10:63;;11629:13;:::i;:::-;11298:185;1001:56:48;1060:6017;11298:185:63;;11610:13;1001:56:48;;:::i;:::-;11610:32:63;;;;:::i;:::-;;;:::i;:::-;;1060:6017:48;11561:9:63;;;;;1001:56:48;887:60;;-1:-1:-1;;;;;887:60:48;;;1001:56;;-1:-1:-1;4113:23:48;887:60;;;;5246:19;887:60;;;;1001:56;;;1060:6017;4113:23;1060:6017;;;;;;:::i;:::-;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;-1:-1:-1;1060:6017:48;;;;-1:-1:-1;1060:6017:48;;;;-1:-1:-1;1060:6017:48;;;;;;;;;-1:-1:-1;1060:6017:48;;;;;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;11075:1360:63;11079:10;12391:29;11079:10;1060:6017:48;;11079:10:63;;12391:29;:::i;:::-;10700:1745;;1060:6017:48;;;;-1:-1:-1;1060:6017:48;;4159:12;1060:6017;;-1:-1:-1;1060:6017:48;6196:190;6258:21;1060:6017;-1:-1:-1;;;;;1060:6017:48;;;887:60;-1:-1:-1;;;;;1060:6017:48;;;;5246:19;-1:-1:-1;;;1060:6017:48;;;;;;-1:-1:-1;;;1060:6017:48;;;6258:21;1060:6017;887:60;4113:23;9542:20:63;;:23;;:32;1060:6017:48;;887:60;;;;;;9542:52:63;;1060:6017:48;4159:12;9542:52:63;;887:60:48;;;;;;:::i;:::-;1060:6017;;887:60;;;;1060:6017;887:60;;;1060:6017;;887:60;;;-1:-1:-1;;;;;9580:13:63;887:60:48;;;;1060:6017;4113:23;887:60;;;;;;;;;;;-1:-1:-1;887:60:48;-1:-1:-1;;;;;;;;;;;887:60:48;-1:-1:-1;887:60:48;;;;;;9542:52:63;;;;;-1:-1:-1;9542:52:63;;4159:10:48;;9542:52:63;;;;;;;-1:-1:-1;9542:52:63;;;887:60:48;-1:-1:-1;1060:6017:48;;-1:-1:-1;;;13443:17:63;;4113:23:48;4159:12;13443:17:63;;1060:6017:48;;;;;;;;;;;:::i;:::-;13443:17:63;4159:10:48;;13443:17:63;;;;;;;-1:-1:-1;13443:17:63;;;887:60:48;1001:56;-1:-1:-1;1001:56:48;-1:-1:-1;4113:23:48;1001:56;1060:6017;-1:-1:-1;1001:56:48;13480:9:63;1060:6017:48;4113:23;1060:6017;4159:12;13480:9:63;;1060:6017:48;:::i;:::-;;;887:60;;;;;;;13480:19:63;;;4159:12:48;13480:19:63;;1060:6017:48;;;;;;:::i;:::-;13480:19:63;4159:10:48;;13480:19:63;;;;;;;-1:-1:-1;13480:19:63;;;887:60:48;13479:20:63;9678:70;;1060:6017:48;9780:19:63;;1001:56:48;;-1:-1:-1;;;;;9883:16:63;887:60:48;;;9810:20:63;1060:6017:48;9810:20:63;;:26;1001:56:48;9883:16:63;:::i;:::-;887:60:48;1060:6017;-1:-1:-1;;;;;1060:6017:48;;;;;9909:17:63;1060:6017:48;9930:20:63;;:26;1060:6017:48;9909:17:63;;1001:56:48;;;1060:6017;;;;;;;;;;4113:23;1060:6017;;;;887:60;;;;;;;9999:21:63;;;4159:12:48;9999:21:63;;1060:6017:48;;;;;;:::i;:::-;9999:21:63;4159:10:48;;9999:21:63;;;;;;;-1:-1:-1;9999:21:63;;;887:60:48;-1:-1:-1;1060:6017:48;;4113:23;1060:6017;;;-1:-1:-1;;;;;887:60:48;;;;9972:73:63;;1060:6017:48;;;;;;;;:::i;:::-;9972:73:63;;;-1:-1:-1;6348:27:48;:::o;9999:21:63:-;;4113:23:48;9999:21:63;;4113:23:48;9999:21:63;;;;;;4113:23:48;9999:21:63;;;:::i;:::-;;;1060:6017:48;;;;;;;9972:73:63;1060:6017:48;;:::i;:::-;9999:21:63;;;;1060:6017:48;;;9999:21:63;;;-1:-1:-1;9999:21:63;;;1060:6017:48;;887:60;-1:-1:-1;887:60:48;;;;;9678:70:63;1060:6017:48;;-1:-1:-1;;;9716:21:63;;4159:12:48;;9716:21:63;13480:19;;;;4113:23:48;13480:19:63;4113:23:48;13480:19:63;;;;;;;:::i;:::-;;;;13443:17;;4113:23:48;13443:17:63;;4113:23:48;13443:17:63;;;;;;4113:23:48;13443:17:63;;;:::i;:::-;;;1060:6017:48;;;;;;13443:17:63;;;;;;-1:-1:-1;13443:17:63;;9542:52;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;887:60:48;;;-1:-1:-1;;;;;887:60:48;;;;;-1:-1:-1;4113:23:48;887:60;;;;5246:19;887:60;;;;;;;6200:40;;;;;;5923:120;1060:6017;;-1:-1:-1;;;5956:76:48;;4113:23;4159:12;5956:76;;1060:6017;;;;;887:60;1060:6017;887:60;;;1060:6017;;;;;;;;5956:76;5544:97;1060:6017;;;4113:23;1060:6017;;;887:60;;;;;;;5592:15;;;4159:12;5592:15;;1060:6017;;;;;;:::i;:::-;5592:15;4159:10;;5592:15;;;;;;-1:-1:-1;5592:15:48;;;5544:97;5592:49;;;;:::i;:::-;5544:97;;;5592:15;4113:23;5592:15;;4113:23;5592:15;;;;;;4113:23;5592:15;;;:::i;:::-;;;1060:6017;;;;;;5592:49;1060:6017;;:::i;:::-;5592:15;;;;;-1:-1:-1;5592:15:48;;5544:44;;;;;4113:23;5544:44;4113:23;5544:44;;;;;;;:::i;:::-;;;;;:22;;;;;;;;;;;;:::i;:::-;;;;5229:685;1060:6017;;;;;;:::i;:::-;5662:31;;;5658:256;;5229:685;;;;;5658:256;887:60;;1060:6017;;;887:60;;;;;;;;5836:22;;1060:6017;4159:12;5836:22;;887:60;;;;;;:::i;:::-;5836:22;4159:10;;5836:22;;;;;;;;;4113:23;5836:22;1060:6017;5836:22;;;;5658:256;1060:6017;;;887:60;;;;;;;5836:33;;;4159:12;5836:33;;1060:6017;;;;;;:::i;:::-;5836:33;4159:10;;5836:33;;;;;;;;;;;5658:256;5836:67;;;;;:::i;:::-;5658:256;;;;5836:33;;;4113:23;5836:33;;4113:23;5836:33;;;;;;4113:23;5836:33;;;:::i;:::-;;;1060:6017;;;;;;5836:67;1060:6017;;:::i;:::-;5836:33;;;;;;-1:-1:-1;5836:33:48;;;1060:6017;;887:60;;;;;;;;5836:22;;;;;;;;;;;;;:::i;:::-;;;;;1060:6017;;887:60;1060:6017;;887:60;;;;4658:43;;;;;4113:23;4658:43;4113:23;4658:43;;;;;;;:::i;:::-;;;;;:21;;;;;;;;;;;;:::i;:::-;;;;4537:45;4113:23;4537:45;;4113:23;4537:45;;;;;;4113:23;4537:45;;;:::i;:::-;;;1060:6017;;;;;;;;;;;;4537:45;;;;1060:6017;;;;4537:45;;;-1:-1:-1;4537:45:48;;4347:90;1060:6017;;-1:-1:-1;;;4398:28:48;;4159:12;;4398:28;4351:24;;;;4113:23;4351:24;4113:23;4351:24;;;;;;;:::i;:::-;;;;4155:76;1060:6017;;-1:-1:-1;;;4194:26:48;;4159:12;;4194:26;4159:12;;;;4113:23;4159:12;4113:23;4159:12;;;;;;;:::i;:::-;;;;6912:163;;6989:80;;6912:163;:::o;6989:80::-;13330:21:1;;:31;13326:63;;13419:35;;;;;887:60:48;13419:35:1;;1060:6017:48;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;13419:35:1;1060:6017:48;;;;;;13468:8:1;13464:33;;6912:163:48:o;13464:33:1:-;1060:6017:48;;-1:-1:-1;;;13485:12:1;;;;;1060:6017:48;;;13326:63:1;1060:6017:48;;-1:-1:-1;;;13370:19:1;;;;;1060:6017:48;;887:60;-1:-1:-1;;;;;887:60:48;;;1060:6017;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;;887:60;1060:6017;;;887:60;;;;1060:6017;;;;887:60;1060:6017;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;887:60;;1060:6017;;;;;-1:-1:-1;887:60:48;1060:6017;887:60;-1:-1:-1;887:60:48;1060:6017;;;;-1:-1:-1;1060:6017:48;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;1060:6017:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;887:60;;;;;;;;;-1:-1:-1;;;;;1060:6017:48;;;887:60;-1:-1:-1;;;;;1060:6017:48;;;;;;;;;;;;;;;;;887:60;;;1060:6017;;;;;;;;;;;;:::i;:::-;887:60;-1:-1:-1;887:60:48;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;887:60;1060:6017;;;;1001:56;;;1060:6017;;;;;;;;;;;;;;;;887:60;;;;1060:6017;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1001:56:48;;;;;;;;;;1060:6017;;;;;;;;;;887:60;;;;1060:6017;;;;887:60;1060:6017;;;;;;;;;;;;;887:60;;;;1060:6017;;;;;;;;;;;;:::i;:::-;887:60;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;887:60;1060:6017;;;;;;;;;;;;;;;;;;887:60;;;1060:6017;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1001:56:48;;;;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;887:60;1060:6017;;;;;;;;887:60;1060:6017;;;;;;;;;;;;;;887:60;1060:6017;;887:60;;;;1060:6017;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:56;;;;;;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;;887:60;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:56;;;;;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;;;;;;887:60;;;;;;;;1001:56;;;;1060:6017;1001:56;1060:6017;;;;;;;;1001:56;1060:6017;1001:56;1060:6017;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;1060:6017:48;;;;;;;;;;;;-1:-1:-1;1060:6017:48;;;;;887:60;;;;;;1060:6017;;-1:-1:-1;887:60:48;1060:6017;-1:-1:-1;;1060:6017:48;;887:60;1060:6017;;;;;;;;;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;;;;-1:-1:-1;;1001:56:48;;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;887:60;;;;;;;;1001:56;;;;1060:6017;1001:56;1060:6017;;;;;;;1001:56;1060:6017;1001:56;1060:6017;;;:::i;:::-;;;;;;-1:-1:-1;;;1060:6017:48;;;;;;;;;;;-1:-1:-1;;;;;887:60:48;1060:6017;;;;;;;;;;;;;;-1:-1:-1;;;1060:6017:48;;;;;;;;;;;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;;;887:60;;;;;;1060:6017;;;;;;;;;;;;-1:-1:-1;1060:6017:48;;;;;;;;;;;;;;;;-1:-1:-1;;1001:56:48;;;;;;;;1060:6017;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;887:60;;;1060:6017;887:60;;;1001:56;;;;;;1060:6017;;;;;;;1001:56;;;1060:6017;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;887:60:48;1060:6017;;;;;;;;;;;;;;;;;1001:56;;;;;;;;1060:6017;1001:56;1060:6017;;;;;:::i;:::-;;;;-1:-1:-1;1060:6017:48;;;;:::o;:::-;1001:56;1060:6017;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;:::o;:::-;887:60;;1060:6017;;;;;;;;;;;;:::o;:::-;;;;;;;887:60;1060:6017;-1:-1:-1;;;;;1060:6017:48;;;;;;;;:::i;:::-;-1:-1:-1;887:60:48;;;;;;-1:-1:-1;;;;;;;;;;;1060:6017:48;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;887:60:48;;;1060:6017;;;;;;;;;;;;;;:::o;890:185:76:-;1060:6017:48;;;-1:-1:-1;;;1002:50:76;;1060:6017:48;;;;;;1002:50:76;;1060:6017:48;;-1:-1:-1;;;;;887:60:48;1002:50:76;;;;;;;;;;;890:185;1060:6017:48;;;;;;;;:::i;:::-;;;;:::i;:::-;1002:66:76;890:185;:::o;1002:50::-;;;;;;;;;;;;;;:::i;:::-;;;1060:6017:48;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;1002:50:76;;;;1060:6017:48;;;;1002:50:76;;;;;;1060:6017:48;887:60;1002:50:76;887:60:48;;;;","linkReferences":{"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":3640,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":648,"length":20},{"start":3309,"length":20},{"start":3411,"length":20},{"start":3741,"length":20},{"start":3826,"length":20},{"start":3927,"length":20},{"start":4012,"length":20},{"start":5499,"length":20},{"start":5577,"length":20},{"start":5682,"length":20},{"start":5838,"length":20},{"start":6388,"length":20},{"start":6629,"length":20},{"start":6710,"length":20}]}}},"methodIdentifiers":{"propagate(bytes32)":"25bf0db6","sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":"210b944e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CallFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotSendCrossMsgToItself\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgDstSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgFromSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFee\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgCid\",\"type\":\"bytes32\"}],\"name\":\"propagate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"crossMsg\",\"type\":\"tuple\"}],\"name\":\"sendUserXnetMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"propagate(bytes32)\":{\"details\":\"propagates the populated cross net message for the given cid\",\"params\":{\"msgCid\":\"- the cid of the cross-net message\"}},\"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))\":{\"details\":\"sends a general-purpose cross-message from the local subnet to the destination subnet. IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee.\",\"params\":{\"crossMsg\":\"- a cross-message to send.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayMessengerFacet.sol\":\"GatewayMessengerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"CallFailed"},{"inputs":[],"type":"error","name":"CannotSendCrossMsgToItself"},{"inputs":[],"type":"error","name":"InsufficientFunds"},{"inputs":[],"type":"error","name":"InvalidCrossMsgDstSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgFromSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgValue"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NotEnoughFee"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[{"internalType":"bytes32","name":"msgCid","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"propagate"},{"inputs":[{"internalType":"struct CrossMsg","name":"crossMsg","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"payable","type":"function","name":"sendUserXnetMessage"}],"devdoc":{"kind":"dev","methods":{"propagate(bytes32)":{"details":"propagates the populated cross net message for the given cid","params":{"msgCid":"- the cid of the cross-net message"}},"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":{"details":"sends a general-purpose cross-message from the local subnet to the destination subnet. IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee.","params":{"crossMsg":"- a cross-message to send."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayMessengerFacet.sol":"GatewayMessengerFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayMessengerFacet.sol","id":39236,"exportedSymbols":{"BURNT_FUNDS_ACTOR":[36861],"CannotSendCrossMsgToItself":[37376],"CrossMsg":[49974],"ERR_GENERAL_CROSS_MSG_DISABLED":[38903],"ERR_MULTILEVEL_CROSS_MSG_DISABLED":[38906],"FilAddress":[1428],"GatewayActorModifiers":[43137],"GatewayMessengerFacet":[39235],"IPCMsgType":[37364],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgValue":[37426],"LibGateway":[42944],"MethodNotAllowed":[37526],"StorableMsg":[49991],"StorableMsgHelper":[47461],"SubnetID":[50077],"SubnetIDHelper":[48072],"SupplyKind":[50229],"SupplySourceHelper":[48398]},"nodeType":"SourceUnit","src":"46:7032:48","nodes":[{"id":38872,"nodeType":"PragmaDirective","src":"46:23:48","nodes":[],"literals":["solidity","0.8",".19"]},{"id":38874,"nodeType":"ImportDirective","src":"71:72:48","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":38873,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43137,"src":"79:21:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38876,"nodeType":"ImportDirective","src":"144:61:48","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":38875,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36861,"src":"152:17:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38879,"nodeType":"ImportDirective","src":"206:62:48","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":38877,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"214:8:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38878,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"224:11:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38881,"nodeType":"ImportDirective","src":"269:51:48","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":37365,"symbolAliases":[{"foreign":{"id":38880,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"277:10:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38884,"nodeType":"ImportDirective","src":"321:59:48","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":38882,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"329:8:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38883,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"339:10:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38890,"nodeType":"ImportDirective","src":"381:160:48","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":38885,"name":"InvalidCrossMsgFromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37422,"src":"389:25:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38886,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"416:24:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38887,"name":"CannotSendCrossMsgToItself","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37376,"src":"442:26:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38888,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"470:20:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38889,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"492:16:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38892,"nodeType":"ImportDirective","src":"542:57:48","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":38891,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"550:14:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38894,"nodeType":"ImportDirective","src":"600:49:48","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":38893,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"608:10:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38896,"nodeType":"ImportDirective","src":"650:63:48","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":38895,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"658:17:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38898,"nodeType":"ImportDirective","src":"714:56:48","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":38897,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"722:10:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38900,"nodeType":"ImportDirective","src":"771:65:48","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":39236,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":38899,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"779:18:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38903,"nodeType":"VariableDeclaration","src":"838:109:48","nodes":[],"constant":true,"mutability":"constant","name":"ERR_GENERAL_CROSS_MSG_DISABLED","nameLocation":"854:30:48","scope":39236,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38901,"name":"string","nodeType":"ElementaryTypeName","src":"838:6:48","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"537570706f727420666f722067656e6572616c2d707572706f73652063726f73732d6e6574206d657373616765732069732064697361626c6564","id":38902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"887:60:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd3d18fc001c76f041be9d5eac6cfff6ccbbde88912dc4bd2be7f90d14666151","typeString":"literal_string \"Support for general-purpose cross-net messages is disabled\""},"value":"Support for general-purpose cross-net messages is disabled"},"visibility":"internal"},{"id":38906,"nodeType":"VariableDeclaration","src":"949:108:48","nodes":[],"constant":true,"mutability":"constant","name":"ERR_MULTILEVEL_CROSS_MSG_DISABLED","nameLocation":"965:33:48","scope":39236,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38904,"name":"string","nodeType":"ElementaryTypeName","src":"949:6:48","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"537570706f727420666f72206d756c74692d6c6576656c2063726f73732d6e6574206d657373616765732069732064697361626c6564","id":38905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1001:56:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d26608d922360a1e735d803f825aaa27321e2fbe06bd2a3cc06cf31db3fe498","typeString":"literal_string \"Support for multi-level cross-net messages is disabled\""},"value":"Support for multi-level cross-net messages is disabled"},"visibility":"internal"},{"id":39235,"nodeType":"ContractDefinition","src":"1060:6017:48","nodes":[{"id":38911,"nodeType":"UsingForDirective","src":"1122:37:48","nodes":[],"global":false,"libraryName":{"id":38909,"name":"FilAddress","nameLocations":["1128:10:48"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"1128:10:48"},"typeName":{"id":38910,"name":"address","nodeType":"ElementaryTypeName","src":"1143:15:48","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":38915,"nodeType":"UsingForDirective","src":"1164:34:48","nodes":[],"global":false,"libraryName":{"id":38912,"name":"SubnetIDHelper","nameLocations":["1170:14:48"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"1170:14:48"},"typeName":{"id":38914,"nodeType":"UserDefinedTypeName","pathNode":{"id":38913,"name":"SubnetID","nameLocations":["1189:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1189:8:48"},"referencedDeclaration":50077,"src":"1189:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":38919,"nodeType":"UsingForDirective","src":"1203:40:48","nodes":[],"global":false,"libraryName":{"id":38916,"name":"StorableMsgHelper","nameLocations":["1209:17:48"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"1209:17:48"},"typeName":{"id":38918,"nodeType":"UserDefinedTypeName","pathNode":{"id":38917,"name":"StorableMsg","nameLocations":["1231:11:48"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"1231:11:48"},"referencedDeclaration":49991,"src":"1231:11:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":38922,"nodeType":"UsingForDirective","src":"1248:37:48","nodes":[],"global":false,"libraryName":{"id":38920,"name":"SupplySourceHelper","nameLocations":["1254:18:48"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"1254:18:48"},"typeName":{"id":38921,"name":"address","nodeType":"ElementaryTypeName","src":"1277:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":38981,"nodeType":"FunctionDefinition","src":"1589:813:48","nodes":[],"body":{"id":38980,"nodeType":"Block","src":"1663:739:48","nodes":[],"statements":[{"condition":{"id":38931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1677:25:48","subExpression":{"expression":{"id":38929,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"1678:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1680:22:48","memberName":"generalPurposeCrossMsg","nodeType":"MemberAccess","referencedDeclaration":43058,"src":"1678:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38937,"nodeType":"IfStatement","src":"1673:111:48","trueBody":{"id":38936,"nodeType":"Block","src":"1704:80:48","statements":[{"errorCall":{"arguments":[{"id":38933,"name":"ERR_GENERAL_CROSS_MSG_DISABLED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38903,"src":"1742:30:48","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":38932,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"1725:16:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":38934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1725:48:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38935,"nodeType":"RevertStatement","src":"1718:55:48"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":38938,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38926,"src":"1798:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1807:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"1798:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1815:5:48","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49982,"src":"1798:22:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38941,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1824:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1828:5:48","memberName":"value","nodeType":"MemberAccess","src":"1824:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":38943,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38926,"src":"1836:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1845:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"1836:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1853:3:48","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":49990,"src":"1836:20:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1824:32:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1798:58:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38952,"nodeType":"IfStatement","src":"1794:118:48","trueBody":{"id":38951,"nodeType":"Block","src":"1858:54:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38948,"name":"InvalidCrossMsgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37426,"src":"1879:20:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1879:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38950,"nodeType":"RevertStatement","src":"1872:29:48"}]}},{"condition":{"id":38961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2092:53:48","subExpression":{"arguments":[{"expression":{"id":38958,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2131:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2133:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"2131:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"expression":{"expression":{"id":38953,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38926,"src":"2093:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2102:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2093:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2110:4:48","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":49977,"src":"2093:21:48","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":38956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2115:8:48","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"2093:30:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":38957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2124:6:48","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47825,"src":"2093:37:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":38960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2093:52:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38966,"nodeType":"IfStatement","src":"2088:118:48","trueBody":{"id":38965,"nodeType":"Block","src":"2147:59:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38962,"name":"InvalidCrossMsgFromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37422,"src":"2168:25:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2168:27:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38964,"nodeType":"RevertStatement","src":"2161:34:48"}]}},{"assignments":[38968],"declarations":[{"constant":false,"id":38968,"mutability":"mutable","name":"shouldBurn","nameLocation":"2269:10:48","nodeType":"VariableDeclaration","scope":38980,"src":"2264:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38967,"name":"bool","nodeType":"ElementaryTypeName","src":"2264:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":38972,"initialValue":{"arguments":[{"id":38970,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38926,"src":"2302:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}],"id":38969,"name":"_commitCrossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39214,"src":"2282:19:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bool_$","typeString":"function (struct CrossMsg memory) returns (bool)"}},"id":38971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2282:29:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2264:47:48"},{"expression":{"arguments":[{"expression":{"expression":{"id":38974,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38926,"src":"2347:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2356:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2347:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2364:5:48","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49982,"src":"2347:22:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38977,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38968,"src":"2383:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":38973,"name":"_crossMsgSideEffects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39234,"src":"2322:20:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":38978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2344:1:48","2371:10:48"],"names":["v","shouldBurn"],"nodeType":"FunctionCall","src":"2322:73:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38979,"nodeType":"ExpressionStatement","src":"2322:73:48"}]},"documentation":{"id":38923,"nodeType":"StructuredDocumentation","src":"1291:293:48","text":" @dev sends a general-purpose cross-message from the local subnet to the destination subnet.\n IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee.\n @param crossMsg - a cross-message to send."},"functionSelector":"210b944e","implemented":true,"kind":"function","modifiers":[],"name":"sendUserXnetMessage","nameLocation":"1598:19:48","parameters":{"id":38927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38926,"mutability":"mutable","name":"crossMsg","nameLocation":"1636:8:48","nodeType":"VariableDeclaration","scope":38981,"src":"1618:26:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_calldata_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38925,"nodeType":"UserDefinedTypeName","pathNode":{"id":38924,"name":"CrossMsg","nameLocations":["1618:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1618:8:48"},"referencedDeclaration":49974,"src":"1618:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1617:28:48"},"returnParameters":{"id":38928,"nodeType":"ParameterList","parameters":[],"src":"1663:0:48"},"scope":39235,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":39056,"nodeType":"FunctionDefinition","src":"2553:948:48","nodes":[],"body":{"id":39055,"nodeType":"Block","src":"2605:896:48","nodes":[],"statements":[{"condition":{"id":38989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2619:21:48","subExpression":{"expression":{"id":38987,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2620:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2622:18:48","memberName":"multiLevelCrossMsg","nodeType":"MemberAccess","referencedDeclaration":43061,"src":"2620:20:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38995,"nodeType":"IfStatement","src":"2615:110:48","trueBody":{"id":38994,"nodeType":"Block","src":"2642:83:48","statements":[{"errorCall":{"arguments":[{"id":38991,"name":"ERR_MULTILEVEL_CROSS_MSG_DISABLED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38906,"src":"2680:33:48","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":38990,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"2663:16:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":38992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2663:51:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38993,"nodeType":"RevertStatement","src":"2656:58:48"}]}},{"assignments":[38998],"declarations":[{"constant":false,"id":38998,"mutability":"mutable","name":"crossMsg","nameLocation":"2752:8:48","nodeType":"VariableDeclaration","scope":39055,"src":"2735:25:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"},"typeName":{"id":38997,"nodeType":"UserDefinedTypeName","pathNode":{"id":38996,"name":"CrossMsg","nameLocations":["2735:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"2735:8:48"},"referencedDeclaration":49974,"src":"2735:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":39003,"initialValue":{"baseExpression":{"expression":{"id":38999,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2763:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2765:7:48","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42988,"src":"2763:9:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":39002,"indexExpression":{"id":39001,"name":"msgCid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38984,"src":"2773:6:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2763:17:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage","typeString":"struct CrossMsg storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2735:45:48"},{"expression":{"arguments":[{"expression":{"expression":{"id":39005,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38998,"src":"2802:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg storage pointer"}},"id":39006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2811:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"2802:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage","typeString":"struct StorableMsg storage ref"}},"id":39007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2819:3:48","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":49990,"src":"2802:20:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39004,"name":"validateFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43115,"src":"2790:11:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":39008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2790:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39009,"nodeType":"ExpressionStatement","src":"2790:33:48"},{"assignments":[39011],"declarations":[{"constant":false,"id":39011,"mutability":"mutable","name":"shouldBurn","nameLocation":"2839:10:48","nodeType":"VariableDeclaration","scope":39055,"src":"2834:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39010,"name":"bool","nodeType":"ElementaryTypeName","src":"2834:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":39015,"initialValue":{"arguments":[{"id":39013,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38998,"src":"2872:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg storage pointer"}],"id":39012,"name":"_commitCrossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39214,"src":"2852:19:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bool_$","typeString":"function (struct CrossMsg memory) returns (bool)"}},"id":39014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2852:29:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2834:47:48"},{"assignments":[39017],"declarations":[{"constant":false,"id":39017,"mutability":"mutable","name":"v","nameLocation":"3155:1:48","nodeType":"VariableDeclaration","scope":39055,"src":"3147:9:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39016,"name":"uint256","nodeType":"ElementaryTypeName","src":"3147:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39021,"initialValue":{"expression":{"expression":{"id":39018,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38998,"src":"3159:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg storage pointer"}},"id":39019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3168:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"3159:16:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage","typeString":"struct StorableMsg storage ref"}},"id":39020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3176:5:48","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49982,"src":"3159:22:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3147:34:48"},{"expression":{"id":39026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3191:24:48","subExpression":{"baseExpression":{"expression":{"id":39022,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"3198:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3200:7:48","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42988,"src":"3198:9:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":39025,"indexExpression":{"id":39024,"name":"msgCid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38984,"src":"3208:6:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3198:17:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage","typeString":"struct CrossMsg storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39027,"nodeType":"ExpressionStatement","src":"3191:24:48"},{"expression":{"arguments":[{"id":39029,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39017,"src":"3251:1:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39030,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39011,"src":"3266:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":39028,"name":"_crossMsgSideEffects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39234,"src":"3226:20:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":39031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3248:1:48","3254:10:48"],"names":["v","shouldBurn"],"nodeType":"FunctionCall","src":"3226:52:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39032,"nodeType":"ExpressionStatement","src":"3226:52:48"},{"assignments":[39034],"declarations":[{"constant":false,"id":39034,"mutability":"mutable","name":"feeRemainder","nameLocation":"3297:12:48","nodeType":"VariableDeclaration","scope":39055,"src":"3289:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39033,"name":"uint256","nodeType":"ElementaryTypeName","src":"3289:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39040,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39035,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3312:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3316:5:48","memberName":"value","nodeType":"MemberAccess","src":"3312:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":39037,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"3324:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3326:14:48","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":43027,"src":"3324:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3312:28:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3289:51:48"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39041,"name":"feeRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39034,"src":"3408:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3424:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3408:17:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39054,"nodeType":"IfStatement","src":"3404:91:48","trueBody":{"id":39053,"nodeType":"Block","src":"3427:68:48","statements":[{"expression":{"arguments":[{"id":39050,"name":"feeRemainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39034,"src":"3471:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":39046,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3449:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":39047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3453:6:48","memberName":"sender","nodeType":"MemberAccess","src":"3449:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3441:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":39044,"name":"address","nodeType":"ElementaryTypeName","src":"3441:8:48","stateMutability":"payable","typeDescriptions":{}}},"id":39048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3441:19:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":39049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3461:9:48","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"3441:29:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":39051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3441:43:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39052,"nodeType":"ExpressionStatement","src":"3441:43:48"}]}}]},"documentation":{"id":38982,"nodeType":"StructuredDocumentation","src":"2408:140:48","text":" @dev propagates the populated cross net message for the given cid\n @param msgCid - the cid of the cross-net message"},"functionSelector":"25bf0db6","implemented":true,"kind":"function","modifiers":[],"name":"propagate","nameLocation":"2562:9:48","parameters":{"id":38985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38984,"mutability":"mutable","name":"msgCid","nameLocation":"2580:6:48","nodeType":"VariableDeclaration","scope":39056,"src":"2572:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38983,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2572:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2571:16:48"},"returnParameters":{"id":38986,"nodeType":"ParameterList","parameters":[],"src":"2605:0:48"},"scope":39235,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":39214,"nodeType":"FunctionDefinition","src":"3988:2611:48","nodes":[],"body":{"id":39213,"nodeType":"Block","src":"4082:2517:48","nodes":[],"statements":[{"assignments":[39067],"declarations":[{"constant":false,"id":39067,"mutability":"mutable","name":"to","nameLocation":"4108:2:48","nodeType":"VariableDeclaration","scope":39213,"src":"4092:18:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":39066,"nodeType":"UserDefinedTypeName","pathNode":{"id":39065,"name":"SubnetID","nameLocations":["4092:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"4092:8:48"},"referencedDeclaration":50077,"src":"4092:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":39072,"initialValue":{"expression":{"expression":{"expression":{"id":39068,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"4113:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4126:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"4113:20:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4134:2:48","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"4113:23:48","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},"id":39071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4137:8:48","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"4113:32:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"4092:53:48"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39073,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39067,"src":"4159:2:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4162:7:48","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":48071,"src":"4159:10:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":39075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39080,"nodeType":"IfStatement","src":"4155:76:48","trueBody":{"id":39079,"nodeType":"Block","src":"4173:58:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39076,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"4194:24:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4194:26:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39078,"nodeType":"RevertStatement","src":"4187:33:48"}]}},{"condition":{"arguments":[{"expression":{"id":39083,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4361:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4363:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"4361:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"id":39081,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39067,"src":"4351:2:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4354:6:48","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47825,"src":"4351:9:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":39085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4351:24:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39090,"nodeType":"IfStatement","src":"4347:90:48","trueBody":{"id":39089,"nodeType":"Block","src":"4377:60:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39086,"name":"CannotSendCrossMsgToItself","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37376,"src":"4398:26:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4398:28:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39088,"nodeType":"RevertStatement","src":"4391:35:48"}]}},{"assignments":[39093],"declarations":[{"constant":false,"id":39093,"mutability":"mutable","name":"from","nameLocation":"4463:4:48","nodeType":"VariableDeclaration","scope":39213,"src":"4447:20:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":39092,"nodeType":"UserDefinedTypeName","pathNode":{"id":39091,"name":"SubnetID","nameLocations":["4447:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"4447:8:48"},"referencedDeclaration":50077,"src":"4447:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":39098,"initialValue":{"expression":{"expression":{"expression":{"id":39094,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"4470:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39095,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4483:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"4470:20:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4491:4:48","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":49977,"src":"4470:25:48","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},"id":39097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4496:8:48","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"4470:34:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"4447:57:48"},{"assignments":[39101],"declarations":[{"constant":false,"id":39101,"mutability":"mutable","name":"applyType","nameLocation":"4525:9:48","nodeType":"VariableDeclaration","scope":39213,"src":"4514:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"typeName":{"id":39100,"nodeType":"UserDefinedTypeName","pathNode":{"id":39099,"name":"IPCMsgType","nameLocations":["4514:10:48"],"nodeType":"IdentifierPath","referencedDeclaration":37364,"src":"4514:10:48"},"referencedDeclaration":37364,"src":"4514:10:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"visibility":"internal"}],"id":39108,"initialValue":{"arguments":[{"expression":{"id":39105,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4568:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4570:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"4568:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"id":39102,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"4537:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4550:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"4537:20:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4558:9:48","memberName":"applyType","nodeType":"MemberAccess","referencedDeclaration":47444,"src":"4537:30:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_StorableMsg_$49991_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_enum$_IPCMsgType_$37364_$attached_to$_t_struct$_StorableMsg_$49991_memory_ptr_$","typeString":"function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)"}},"id":39107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4537:45:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"VariableDeclarationStatement","src":"4514:68:48"},{"assignments":[39110],"declarations":[{"constant":false,"id":39110,"mutability":"mutable","name":"isLCA","nameLocation":"4650:5:48","nodeType":"VariableDeclaration","scope":39213,"src":"4645:10:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39109,"name":"bool","nodeType":"ElementaryTypeName","src":"4645:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":39119,"initialValue":{"arguments":[{"expression":{"id":39116,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4687:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4689:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"4687:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"arguments":[{"id":39113,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39093,"src":"4674:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":39111,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39067,"src":"4658:2:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4661:12:48","memberName":"commonParent","nodeType":"MemberAccess","referencedDeclaration":47946,"src":"4658:15:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":39114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4658:21:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4680:6:48","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47825,"src":"4658:28:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":39118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4658:43:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4645:56:48"},{"assignments":[39121],"declarations":[{"constant":false,"id":39121,"mutability":"mutable","name":"reject","nameLocation":"5205:6:48","nodeType":"VariableDeclaration","scope":39213,"src":"5200:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39120,"name":"bool","nodeType":"ElementaryTypeName","src":"5200:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":39123,"initialValue":{"hexValue":"66616c7365","id":39122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5214:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"5200:19:48"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"id":39127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39124,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39101,"src":"5233:9:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":39125,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"5246:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":39126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5257:8:48","memberName":"BottomUp","nodeType":"MemberAccess","referencedDeclaration":37363,"src":"5246:19:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"src":"5233:32:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"id":39150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39147,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39101,"src":"5662:9:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":39148,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"5675:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":39149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5686:7:48","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":37362,"src":"5675:18:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"src":"5662:31:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39166,"nodeType":"IfStatement","src":"5658:256:48","trueBody":{"id":39165,"nodeType":"Block","src":"5695:219:48","statements":[{"expression":{"id":39163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39151,"name":"reject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39121,"src":"5827:6:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":39160,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"5886:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":39161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5897:5:48","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"5886:16:48","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":39154,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5844:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5846:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"5844:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"id":39152,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39067,"src":"5836:2:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5839:4:48","memberName":"down","nodeType":"MemberAccess","referencedDeclaration":48051,"src":"5836:7:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":39156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5836:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5859:8:48","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"5836:31:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":39158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5836:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5870:15:48","memberName":"hasSupplyOfKind","nodeType":"MemberAccess","referencedDeclaration":48117,"src":"5836:49:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_SupplyKind_$50229_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,enum SupplyKind) view returns (bool)"}},"id":39162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5836:67:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5827:76:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39164,"nodeType":"ExpressionStatement","src":"5827:76:48"}]}},"id":39167,"nodeType":"IfStatement","src":"5229:685:48","trueBody":{"id":39146,"nodeType":"Block","src":"5267:385:48","statements":[{"expression":{"id":39144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39128,"name":"reject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39121,"src":"5535:6:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":39143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":39133,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"5574:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5576:11:48","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"5574:13:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39129,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39093,"src":"5544:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5549:15:48","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":47578,"src":"5544:20:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":39131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5544:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5567:6:48","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47825,"src":"5544:29:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":39135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5544:44:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"expression":{"id":39140,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"5624:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":39141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5635:5:48","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"5624:16:48","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39136,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39093,"src":"5592:4:48","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":39137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5597:8:48","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"5592:13:48","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":39138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5592:15:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5608:15:48","memberName":"hasSupplyOfKind","nodeType":"MemberAccess","referencedDeclaration":48117,"src":"5592:31:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_enum$_SupplyKind_$50229_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,enum SupplyKind) view returns (bool)"}},"id":39142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5592:49:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5544:97:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5535:106:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39145,"nodeType":"ExpressionStatement","src":"5535:106:48"}]}},{"condition":{"id":39168,"name":"reject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39121,"src":"5927:6:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39174,"nodeType":"IfStatement","src":"5923:120:48","trueBody":{"id":39173,"nodeType":"Block","src":"5935:108:48","statements":[{"errorCall":{"arguments":[{"hexValue":"70726f7061676174696f6e206e6f742073757070706f7274656420666f72207375626e657473207769746820455243323020737570706c79","id":39170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5973:58:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_34eedd2aeb34a77e6777de611c865b0564b6c2921cf9e4d802d0985cc2e999a2","typeString":"literal_string \"propagation not suppported for subnets with ERC20 supply\""},"value":"propagation not suppported for subnets with ERC20 supply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_34eedd2aeb34a77e6777de611c865b0564b6c2921cf9e4d802d0985cc2e999a2","typeString":"literal_string \"propagation not suppported for subnets with ERC20 supply\""}],"id":39169,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"5956:16:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":39171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5956:76:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39172,"nodeType":"RevertStatement","src":"5949:83:48"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":39180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"id":39178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39175,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39101,"src":"6200:9:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":39176,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"6213:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":39177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6224:7:48","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":37362,"src":"6213:18:48","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"src":"6200:31:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":39179,"name":"isLCA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39110,"src":"6235:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6200:40:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39197,"nodeType":"IfStatement","src":"6196:190:48","trueBody":{"id":39196,"nodeType":"Block","src":"6242:144:48","statements":[{"expression":{"id":39183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6256:23:48","subExpression":{"expression":{"id":39181,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"6258:1:48","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6260:19:48","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":43036,"src":"6258:21:48","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":39184,"nodeType":"ExpressionStatement","src":"6256:23:48"},{"expression":{"arguments":[{"id":39188,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"6321:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":39185,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"6293:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6304:16:48","memberName":"commitTopDownMsg","nodeType":"MemberAccess","referencedDeclaration":42446,"src":"6293:27:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":39189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6293:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39190,"nodeType":"ExpressionStatement","src":"6293:41:48"},{"expression":{"components":[{"id":39193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39191,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39063,"src":"6356:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":39192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6369:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6356:18:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":39194,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6355:20:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":39064,"id":39195,"nodeType":"Return","src":"6348:27:48"}]}},{"expression":{"arguments":[{"id":39201,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"6470:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"id":39198,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"6441:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6452:17:48","memberName":"commitBottomUpMsg","nodeType":"MemberAccess","referencedDeclaration":42612,"src":"6441:28:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory)"}},"id":39202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6441:42:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39203,"nodeType":"ExpressionStatement","src":"6441:42:48"},{"expression":{"components":[{"id":39210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39204,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39063,"src":"6547:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":39205,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39060,"src":"6560:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6573:7:48","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"6560:20:48","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6581:5:48","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49982,"src":"6560:26:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6590:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6560:31:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6547:44:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":39211,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6546:46:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":39064,"id":39212,"nodeType":"Return","src":"6539:53:48"}]},"documentation":{"id":39057,"nodeType":"StructuredDocumentation","src":"3507:476:48","text":" @notice Commit the cross message to storage. It outputs a flag signaling\n if the committed messages was bottom-up and some funds need to be\n burnt.\n @dev It also validates that destination subnet ID is not empty\n and not equal to the current network.\n @param crossMessage The cross-network message to commit.\n @return shouldBurn A Boolean that indicates if the input amount should be burned."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCrossMessage","nameLocation":"3997:19:48","parameters":{"id":39061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39060,"mutability":"mutable","name":"crossMessage","nameLocation":"4033:12:48","nodeType":"VariableDeclaration","scope":39214,"src":"4017:28:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":39059,"nodeType":"UserDefinedTypeName","pathNode":{"id":39058,"name":"CrossMsg","nameLocations":["4017:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"4017:8:48"},"referencedDeclaration":49974,"src":"4017:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"4016:30:48"},"returnParameters":{"id":39064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39063,"mutability":"mutable","name":"shouldBurn","nameLocation":"4070:10:48","nodeType":"VariableDeclaration","scope":39214,"src":"4065:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39062,"name":"bool","nodeType":"ElementaryTypeName","src":"4065:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4064:17:48"},"scope":39235,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":39234,"nodeType":"FunctionDefinition","src":"6912:163:48","nodes":[],"body":{"id":39233,"nodeType":"Block","src":"6979:96:48","nodes":[],"statements":[{"condition":{"id":39222,"name":"shouldBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39219,"src":"6993:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39232,"nodeType":"IfStatement","src":"6989:80:48","trueBody":{"id":39231,"nodeType":"Block","src":"7005:64:48","statements":[{"expression":{"arguments":[{"id":39228,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39217,"src":"7056:1:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":39225,"name":"BURNT_FUNDS_ACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36861,"src":"7027:17:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":39224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7019:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":39223,"name":"address","nodeType":"ElementaryTypeName","src":"7019:8:48","stateMutability":"payable","typeDescriptions":{}}},"id":39226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7019:26:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":39227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7046:9:48","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":1420,"src":"7019:36:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":39229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7019:39:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39230,"nodeType":"ExpressionStatement","src":"7019:39:48"}]}}]},"documentation":{"id":39215,"nodeType":"StructuredDocumentation","src":"6605:302:48","text":" @dev Performs transaction side-effects from the commitment of a cross-net message. Like\n burning funds when bottom-up messages are propagated.\n @param v - the value of the committed cross-net message\n @param shouldBurn - flag if the message should burn funds"},"implemented":true,"kind":"function","modifiers":[],"name":"_crossMsgSideEffects","nameLocation":"6921:20:48","parameters":{"id":39220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39217,"mutability":"mutable","name":"v","nameLocation":"6950:1:48","nodeType":"VariableDeclaration","scope":39234,"src":"6942:9:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39216,"name":"uint256","nodeType":"ElementaryTypeName","src":"6942:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39219,"mutability":"mutable","name":"shouldBurn","nameLocation":"6958:10:48","nodeType":"VariableDeclaration","scope":39234,"src":"6953:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39218,"name":"bool","nodeType":"ElementaryTypeName","src":"6953:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6941:28:48"},"returnParameters":{"id":39221,"nodeType":"ParameterList","parameters":[],"src":"6979:0:48"},"scope":39235,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":38907,"name":"GatewayActorModifiers","nameLocations":["1094:21:48"],"nodeType":"IdentifierPath","referencedDeclaration":43137,"src":"1094:21:48"},"id":38908,"nodeType":"InheritanceSpecifier","src":"1094:21:48"}],"canonicalName":"GatewayMessengerFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[39235,43137],"name":"GatewayMessengerFacet","nameLocation":"1069:21:48","scope":39236,"usedErrors":[1134,1138,37376,37420,37422,37426,37468,37470,37482,37526]}],"license":"MIT OR Apache-2.0"},"id":48} \ No newline at end of file diff --git a/.out/GatewayRouterFacet.sol/GatewayRouterFacet.json b/.out/GatewayRouterFacet.sol/GatewayRouterFacet.json deleted file mode 100644 index 7b1e1966b..000000000 --- a/.out/GatewayRouterFacet.sol/GatewayRouterFacet.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"addBottomUpMsgBatchSignature","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"membershipProof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addCheckpointSignature","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"membershipProof","type":"bytes32[]","internalType":"bytes32[]"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"applyCrossMessages","inputs":[{"name":"crossMsgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"applyFinalityChanges","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"commitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitParentFinality","inputs":[{"name":"finality","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"hasCommittedBefore","type":"bool","internalType":"bool"},{"name":"previousFinality","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"createBottomUpCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"membershipRootHash","type":"bytes32","internalType":"bytes32"},{"name":"membershipWeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"membershipRootHash","type":"bytes32","internalType":"bytes32"},{"name":"membershipWeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pruneBottomUpCheckpoints","inputs":[{"name":"newRetentionHeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pruneBottomUpMsgBatches","inputs":[{"name":"newRetentionHeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storeValidatorChanges","inputs":[{"name":"changeRequests","type":"tuple[]","internalType":"struct StakingChangeRequest[]","components":[{"name":"change","type":"tuple","internalType":"struct StakingChange","components":[{"name":"op","type":"uint8","internalType":"enum StakingOperation"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"validator","type":"address","internalType":"address"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"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":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"BatchAlreadyExists","inputs":[]},{"type":"error","name":"BatchNotCreated","inputs":[]},{"type":"error","name":"BatchWithNoMessages","inputs":[]},{"type":"error","name":"CannotConfirmFutureChanges","inputs":[]},{"type":"error","name":"CheckpointAlreadyExists","inputs":[]},{"type":"error","name":"CheckpointNotCreated","inputs":[]},{"type":"error","name":"FailedAddIncompleteQuorum","inputs":[]},{"type":"error","name":"FailedAddSignatory","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"FailedRemoveIncompleteQuorum","inputs":[]},{"type":"error","name":"InvalidActorAddress","inputs":[]},{"type":"error","name":"InvalidBatchEpoch","inputs":[]},{"type":"error","name":"InvalidBatchSource","inputs":[]},{"type":"error","name":"InvalidCheckpointEpoch","inputs":[]},{"type":"error","name":"InvalidCheckpointSource","inputs":[]},{"type":"error","name":"InvalidConfigurationNumber","inputs":[]},{"type":"error","name":"InvalidCrossMsgDstSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgNonce","inputs":[]},{"type":"error","name":"InvalidRetentionHeight","inputs":[]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidSubnet","inputs":[]},{"type":"error","name":"MaxMsgsPerBatchExceeded","inputs":[]},{"type":"error","name":"NotAuthorized","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"NotEnoughBalance","inputs":[]},{"type":"error","name":"NotEnoughSubnetCircSupply","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]},{"type":"error","name":"NotSystemActor","inputs":[]},{"type":"error","name":"OldConfigurationNumber","inputs":[]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ParentFinalityAlreadyCommitted","inputs":[]},{"type":"error","name":"QuorumAlreadyProcessed","inputs":[]},{"type":"error","name":"SignatureReplay","inputs":[]},{"type":"error","name":"SubnetNotActive","inputs":[]},{"type":"error","name":"SubnetNotFound","inputs":[]},{"type":"error","name":"ZeroMembershipWeight","inputs":[]}],"bytecode":{"object":"0x6080806040523461001757615c0990816200001d8239f35b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c80630bed7615146116845780630db0f77c1461138e5780630df144611461135a578063111969741461129d57806332e7661f14610e7a57806347dc9b4f14610b8257806353b4e7bf146107e9578063743037711461050d578063ac81837914610393578063bacc656d14610183578063c62eb4d5146100ec5763e49a547d146100a157600080fd5b346100e95760203660031901126100e9576004356001600160401b0381116100e5576100d46100e2913690600401611abc565b906100dd613c0f565b6140a9565b80f35b5080fd5b80fd5b50346100e95760203660031901126100e9576001600160401b0360043581811161017f5761011e903690600401611abc565b610126613c0f565b60405192602084019081118482101761016b5791610165916100e294936040528584526040519361015685611909565b86855260208501523691611e0e565b906123bd565b634e487b7160e01b85526041600452602485fd5b8280fd5b50346100e9576020806003193601126100e557600435906101a2613c0f565b6012545b8281106102db5750601254808311156102c9575b8281106101c957505060125580f35b808452601382526040842090848255846004600193828582015582600282015582600382015501556016835260408520805490868155816102a6575b50508085526040852060405180828682945493848152019089528689209289905b878982841061028d575050505061023f92500382611970565b80519083875b8381106102565750505050016101ba565b84895260178752604089206001600160a01b036102738386612111565b51168a52875261028560408a2061305e565b018490610245565b9092945082919386548152019401920184929391610226565b865282848720918201915b8281106102be5750610205565b8781550183906102b1565b604051636819a3a960e01b8152600490fd5b808452600990818352604085209185835560036001936102fc858201612557565b876002820155019081549087835581610319575b505050016101a6565b600d92828402928484040361037f578852858820918201915b82811061033f5750610310565b8061034a85926130a7565b610356600482016130a7565b896008820155898382015561036d600a820161305e565b89600b82015589600c82015501610332565b634e487b7160e01b89526011600452602489fd5b50346100e9576020806003193601126100e557600435906103b2613c0f565b600b545b8281106104d95750600b54808311156102c9575b8281106103d9575050600b5580f35b808452600c8252604084209084825584600460019382858201558260028201558260038201550155600f835260408520805490868155816104b6575b50508085526040852060405180828682945493848152019089528689209289905b878982841061049d575050505061044f92500382611970565b80519083875b8381106104665750505050016103ca565b84895260108752604089206001600160a01b036104838386612111565b51168a52875261049560408a2061305e565b018490610455565b9092945082919386548152019401920184929391610436565b865282848720918201915b8281106104ce5750610415565b8781550183906104c1565b8084526008825260408420908482558460046001936104f9858201612557565b8260028201558260038201550155016103b6565b50346100e9576003196060368201126100e5576004356001600160401b038082116107e5576080826004019383360301126107e5576044359261054e613c0f565b602483013593610560601e5486612ed3565b6107d3578486526020936008855260026040882001546107c15760405191858301918683526105a36105928680612ef3565b6080604087015260c0860190612f3b565b928860608601526044820135948560808201526105dd8160648501968a6105c989611b01565b1660a083015203601f198101835282611970565b5190209160ff601d541690600b548a106107af57801561079d576064916106039161252d565b049161060e89613e58565b1561078b576040516106809161062382611955565b815260048a8a8d6040828601916024358352818701998a52600c60608801948286526080890196838852835252209451855551966001978886015551600285015551600384015551151591019060ff801983541691151516179055565b6040519460808601868110888211176107775760405235908682116107735760046106ae9236920101611b29565b84526106c68685019288845260408601948552611b01565b96606085019788528852600886526040882093519585875116966001600160401b03199788875416178655818387019101519182519288841161075f57819061070f858561257b565b01918b52808b20908b5b848110610745575050505050509060049291516002830155516003820155019251169082541617905580f35b83516001600160a01b031683820155928101928501610719565b634e487b7160e01b8c52604160045260248cfd5b8980fd5b634e487b7160e01b8b52604160045260248bfd5b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b8380fd5b50346100e9576107f836611a1d565b909291600b5483106107af5782855260209160088352600260408720015415610b7057838652600c83526040862092610832828554613cb5565b5061083c81613c86565b610b5e57858852600f825260408089206001600160a01b0383166000818152600190920160205291902054610b4c57604080516001600160a01b03909316848401908152602081018a9052908390820103926108a0601f1994858101835282611970565b5190206040518481019182528481526108b881611909565b519020600195868089015492918c915b610ae9575b505003610ad157868952600f83526108e88160408b20613ea5565b15610abf578689526010835260408920908952825260408820928051926001600160401b038411610aab579083929161092b846109258854612125565b886125af565b8092601f8511600114610a4b5750508992610a40575b5050600019600383901b1c191690831b1790555b6109646003830194855461204e565b908185556002830154821015610978578580f35b600483018054909260ff82166109f9575060ff191617905561099982613fec565b156109e7576109da7fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949360ff600a5416925490549060405194859485613c90565b0390a15b38808080808580f35b6040516344a7b48760e11b8152600490fd5b9150507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9450610a38915060ff600a5416925460405194859485613c90565b0390a16109de565b015190503880610941565b87959392919316868c52838c20938c905b828210610a925750508411610a79575b505050811b019055610955565b015160001960f88460031b161c19169055388080610a6c565b8484015186558997909501949384019390810190610a5c565b634e487b7160e01b8a52604160045260248afd5b604051633363140f60e01b8152600490fd5b60249060405190634a0bfec160e01b82526004820152fd5b90918151831015610b4657610afe8383612111565b519081811015610b38578d52865260408c205b916000198114610b2457880190886108c8565b634e487b7160e01b8d52601160045260248dfd5b908d52865260408c20610b11565b916108cd565b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b6040516358cdd2e760e01b8152600490fd5b50346100e9576003196020368201811361017f57600435916001600160401b0390818411610e765783600401916080828636030112610e7257610c0b91610bd236610bcd8680611aec565b611b29565b918573__$a0fe38a9a81205afccc10810b09a4d3f45$__9360405180968192632cff562160e11b83528460048401526024830190611be0565b0381865af4938415610e67578894610e2c575b506001600160a01b03933390851603610e1a57610c3a33613914565b959015610e095791610c7a94610c5888959394610bcd369180611aec565b9360405196879563c836244d60e01b8752604060048801526044870190611be0565b928584030160248601526040830190600489015416835260606005890193604088820152845480935201928b52858b20918b905b828210610deb575050505082809103915af4908115610de0578591610db3575b5015610da1576003015460801c60ff166006811015610d8d57600103610d7b578260ff602c5460181c16610cff5780f35b80610d6b93604051602485820192632643057b60e11b84520135602482015282604482015282606482015260648152610d3781611955565b519082335af13d15610d72573d610d4d816119a8565b90610d5b6040519283611970565b81528481933d92013e5b33611cf2565b5038808280f35b60609150610d65565b60405163c18316bf60e01b8152600490fd5b634e487b7160e01b84526021600452602484fd5b6040516303b5db8360e11b8152600490fd5b610dd39150833d8511610dd9575b610dcb8183611970565b810190611c3b565b38610cce565b503d610dc1565b6040513d87823e3d90fd5b8354811685528a978997509094019360019384019390910190610cae565b6040516208ed5b60e31b8152600490fd5b604051637f39132760e11b8152600490fd5b9093508581813d8311610e60575b610e448183611970565b81010312610e5c57610e5590611bcc565b9238610c1e565b8780fd5b503d610e3a565b6040513d8a823e3d90fd5b8580fd5b8480fd5b50346100e9576003196060368201126100e557600435906001600160401b03821161017f5760609082360301126100e557610eb3613c0f565b610ec8610ec33683600401611f62565b6130ca565b610ed8601f546024830135612ed3565b1580159061128f575b61127d57602481013582526009602052600260408320015461126b57604051602080820152610f27610f166004840180612ef3565b6060604084015260a0830190612f3b565b6024830135606083015281610f426044850185600401612f07565b603f93919319838303016080840152808252602082019160208260051b820101928589925b848410611160575050505050610f86925003601f198101835282611970565b6020815191012060ff601d54166012546024840135106107af57604435801561079d57606491610fb59161252d565b0491610fc46024820135613def565b1561078b5761103f6110499260405190610fdd82611955565b815260046020820160243581526040830196875260608301888152608084019189835260248701358a52601360205260408a209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611f62565b6020810190815184526009602052604084209181516001600160401b038151166001600160401b03198554161784556020858501910151908151916001600160401b03831161112f5760209061109f848461257b565b019087526020872086885b8481106111435789828960408a8a5160028401550190815151916003859201915b8381106110d6578580f35b6110e1818351612111565b518354600160401b81101561112f5786810180865581101561111b5786929161111591868a52600d60208b209102016125f4565b016110cb565b634e487b7160e01b88526032600452602488fd5b634e487b7160e01b88526041600452602488fd5b83516001600160a01b0316818401556020909301928891016110aa565b919395509193601f198282030184526111798784612ef3565b90813560de19833603018112156112675782602092836112508160019781960194604085526111dd6111c06111ae8880612ef3565b60e06040890152610120880190612ffd565b6111cc84890189612ef3565b878203603f19016060890152612ffd565b604087013560808701526001600160401b036111fb60608901611b01565b1660a08701526112416001600160e01b031961121960808a01611dec565b169160c0928389015261122f60a08a018a612fab565b898303603f190160e08b015290612fdc565b96013561010086015201611e01565b151591015298019401940191879593969491610f67565b8b80fd5b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b506024810135431115610ee1565b50346100e95760403660031901126100e9576040516112bb81611909565b818152816020809201526112cd613c0f565b81816040516112db81611909565b828152015260025491600435918284116113485760609382526001815260408220926040600181519561130d87611909565b805487520154938386019485528281526001845220818155600160243591015560025582511515926040519384525190830152516040820152f35b60405163153ad84160e11b8152600490fd5b50346100e957806003193601126100e957611373613c0f565b602061137d612205565b6001600160401b0360405191168152f35b50346100e95761139d36611a1d565b90929160125483106107af5782855260209160098352600260408720015415611672578386526013835260408620926113d7828554613cb5565b506113e181613c86565b610b5e578588526016825260408089206001600160a01b0383166000818152600190920160205291902054610b4c57604080516001600160a01b03909316848401908152602081018a905290839082010392611445601f1994858101835282611970565b51902060405184810191825284815261145d81611909565b519020600195868089015492918c915b611623575b505003610ad1578689526016835261148d8160408b20613ea5565b15610abf578689526017835260408920908952825260408820928051926001600160401b038411610aab57908392916114ca846109258854612125565b8092601f85116001146115c357505089926115b8575b5050600019600383901b1c191690831b1790555b6115036003830194855461204e565b908185556002830154821015611517578580f35b600483018054909260ff8216611579575060ff191617905561153882613f02565b156109e7576109da7fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949360ff60115416925490549060405194859485613c90565b9150507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9450610a38915060ff60115416925460405194859485613c90565b0151905038806114e0565b87959392919316868c52838c20938c905b82821061160a57505084116115f1575b505050811b0190556114f4565b015160001960f88460031b161c191690553880806115e4565b84840151865589979095019493840193908101906115d4565b9091815183101561166c576116388383612111565b51908181101561165e578d52865260408c205b916000198114610b24578801908861146d565b908d52865260408c2061164b565b91611472565b60405163a88f96f160e01b8152600490fd5b50346100e9576003196020368201811361017f57600435916001600160401b0383116107e5576060836004019184360301126107e5576116ed826116cc36610bcd8580611aec565b60405180938192632cff562160e11b83528460048401526024830190611be0565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610de05785916118d4575b50336001600160a01b03909116036118bf57611733610ec33683611f62565b61173c33613914565b919015610e095760ff600383015460801c169160068310156118ab576001809303610d7b57856044879601936117728585611fd7565b899291505b80831061185c5750505061178b908661204e565b90600281019182549080821061184a576117ce95600495610165956117b66117bd946117c696612071565b9055611fd7565b9490920161207e565b923691611e0e565b60ff602c54821c166117de578280f35b60405181810190632643057b60e11b82524360248201528360448201528460648201526064815261180e81611955565b83471061183257610d6b93859283925191335af13d15610d72573d610d4d816119a8565b60405163cd78605960e01b8152306004820152602490fd5b604051631d36ca1560e21b8152600490fd5b906118a261188e849a956040611886611880869861187a8e8e611fd7565b9061200c565b80612039565b01359061204e565b9460c06118866118808d61187a8d8d611fd7565b98019190611777565b634e487b7160e01b86526021600452602486fd5b60405160016201ad9360e61b03198152600490fd5b90508281813d8311611902575b6118eb8183611970565b81010312610e76576118fc90611bcc565b38611714565b503d6118e1565b604081019081106001600160401b0382111761192457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761192457604052565b60a081019081106001600160401b0382111761192457604052565b90601f801991011681019081106001600160401b0382111761192457604052565b6001600160401b0381116119245760051b60200190565b6001600160401b03811161192457601f01601f191660200190565b9291926119cf826119a8565b916119dd6040519384611970565b8294818452818301116119fa578281602093846000960137010152565b600080fd5b9080601f830112156119fa57816020611a1a933591016119c3565b90565b9060806003198301126119fa57600435916001600160401b03916024358381116119fa57826023820112156119fa578060040135611a5a81611991565b91611a686040519384611970565b81835260209160248385019160051b830101918683116119fa57602401905b828210611aad575050505092604435926064359182116119fa57611a1a916004016119ff565b81358152908301908301611a87565b9181601f840112156119fa578235916001600160401b0383116119fa576020808501948460051b0101116119fa57565b903590603e19813603018212156119fa570190565b35906001600160401b03821682036119fa57565b35906001600160a01b03821682036119fa57565b91906040838203126119fa5760405192611b4284611909565b83611b4c82611b01565b815260209182810135906001600160401b0382116119fa57019280601f850112156119fa578335611b7c81611991565b94611b8a6040519687611970565b818652848087019260051b8201019283116119fa5784809101915b838310611bb457505050500152565b8190611bbf84611b15565b8152019101908490611ba5565b51906001600160a01b03821682036119fa57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611c1e575050505090565b83516001600160a01b031685529381019392810192600101611c10565b908160209103126119fa575180151581036119fa5790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611cb2575050505090565b83546001600160a01b031685529384019360019384019390910190611ca4565b60021115611cdc57565b634e487b7160e01b600052602160045260246000fd5b9015611d3057815115611d03575090565b803b15611d0e575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50805115611d4057805190602001fd5b604051630a12f52160e11b8152600490fd5b359060ff821682036119fa57565b91906040838203126119fa5760405192611d7984611909565b838135916001600160401b03928381116119fa5784611d99918301611b29565b82526020810135908382116119fa57016040818503126119fa5760405193611dc085611909565b611dc982611d52565b855260208201359384116119fa57602093611de492016119ff565b828401520152565b35906001600160e01b0319821682036119fa57565b359081151582036119fa57565b929192611e1a82611991565b91604090611e2a82519485611970565b839581855260208095019160051b8401938185116119fa5780925b858410611e555750505050505050565b6001600160401b039084358281116119fa5783019086828603126119fa578651611e7e81611909565b82358481116119fa5783019260e09485858903126119fa57895195860186811082821117611f4d578a5284358181116119fa5788611ebd918701611d60565b86528b8501358181116119fa5788611ed6918701611d60565b8c870152898501358a8701526060611eef818701611b01565b908701526080611f00818701611dec565b9087015260a091828601359182116119fa578c9686611f3e94611f288c8b9a968b97016119ff565b9083015260c08091013590820152845201611e01565b83820152815201930192611e45565b60246000634e487b7160e01b81526041600452fd5b91906060838203126119fa5760405190611f7b8261193a565b81938035906001600160401b03918281116119fa5783611f9c918301611b29565b84526020810135602085015260408101359182116119fa570181601f820112156119fa57604091816020611fd293359101611e0e565b910152565b903590601e19813603018212156119fa57018035906001600160401b0382116119fa57602001918160051b360383136119fa57565b9082101561202357611a1a9160051b810190611aec565b634e487b7160e01b600052603260045260246000fd5b90359060de19813603018212156119fa570190565b9190820180921161205b57565b634e487b7160e01b600052601160045260246000fd5b9190820391821161205b57565b9060405161208b81611909565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106120da57505050506120d692500384611970565b0152565b83546001600160a01b03168552899550909301929181019181016120be565b9060016001600160401b038093160191821161205b57565b80518210156120235760209160051b010190565b90600182811c92168015612155575b602083101461213f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691612134565b906040519182600082549261217384612125565b9081845260019485811690816000146121e2575060011461219f575b505061219d92500383611970565b565b9093915060005260209081600020936000915b8183106121ca57505061219d9350820101388061218f565b855488840185015294850194879450918301916121b2565b91505061219d94506020925060ff191682840152151560051b820101388061218f565b602a546001600160401b038082166000190181811161205b57612227816120f9565b8280604095861c169116146123b55761223f816142f2565b61ffff9283602454169161225283611991565b9561225f83519788611970565b838752601f19918261227086611991565b019260209336858b013760015b8881168781116122bf576000908152602686528690205489916001916001600160a01b03166122b78d856122b085614095565b1690612111565b52011661227d565b5050945094919290955086516122d481611991565b946122e183519687611970565b8186526122ed82611991565b018460005b82811061238c5750505060005b818110612327575050611a1a94959650519261231a84611909565b8352841690820152613435565b6001906001600160a01b0361233c828c612111565b5116806000526023875261236c60038660002085810154938851946123608661193a565b85528a8501520161215f565b8582015261237a8289612111565b526123858188612111565b50016122ff565b84516123978161193a565b6000815260008382015260608682015282828a0101520185906122f2565b505050600090565b81519160005b8381106123d05750505050565b806123e76123e060019385612111565b51856129ea565b016123c3565b60005b8381106124005750506000910152565b81810151838201526020016123f0565b90602091612429815180928185528580860191016123ed565b601f01601f1916010190565b60406020611a1a938161244f855185845285840190611be0565b940151908281860391015260ff81511684520151918160208201520190612410565b9060c0806124e26124a061248e865160e0875260e0870190612435565b60208701518682036020880152612435565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152612410565b93015191015290565b81601f820112156119fa578051612501816119a8565b9261250f6040519485611970565b818452602082840101116119fa57611a1a91602080850191016123ed565b8181029291811591840414171561205b57565b81811061254b575050565b60008155600101612540565b80546000825580612566575050565b61219d91600052602060002090810190612540565b90600160401b81116119245781549080835581811061259957505050565b61219d9260005260206000209182019101612540565b9190601f81116125be57505050565b61219d926000526020600020906020601f840160051c830193106125ea575b601f0160051c0190612540565b90915081906125dd565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161192457899061263d838961257b565b01600096875289872084885b8481106129cf5750505050508760028a019101519260ff8451169160ff19928382541617905560039389858c01910151805190878211612945578190612699826126938654612125565b866125af565b8c90601f8311600114612964578a92612959575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311612945578b906126f6848461257b565b019088528a882085895b84811061292a5750505050508860068b019101519160ff835116908254161790558760078a01910151805190858211612916578190612743826126938654612125565b8a90601f83116001146128b75788926128ac575b505060001982861b1c191690831b1790555b6040850151600889015560098801836060870151168154906bffffffff0000000000000000608089015160a01c16916001600160601b03191617179055600a88019360a08601518051948511612898576127c7856109258854612125565b8891601f8611600114612827579385600c999794819460c0989461219d9e9d9b989561281c575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b0151935038806127ee565b9294939190601f1985168785528a8520945b8181106128835750928592600c9a98959261219d9d9c9a9760c0999610612869575b50505050811b0190556127fe565b01519060f884600019921b161c191690553880808061285b565b82840151865594870194928b01928b01612839565b634e487b7160e01b82526041600452602482fd5b015190503880612757565b8489528b89208694509190601f1984168a8e5b8282106128ff57505084116128e7575b505050811b019055612769565b015160001983881b60f8161c191690553880806128da565b83850151865589979095019493840193018e6128ca565b634e487b7160e01b87526041600452602487fd5b83516001600160a01b031683820155928d0192879101612700565b634e487b7160e01b89526041600452602489fd5b0151905038806126ad565b879350908d91601f198416868d52838d20938d905b8282106129ae5750508411612996575b505050811b0190556126bf565b0151600019838a1b60f8161c19169055388080612989565b91929395968291958786015181550195019301908f918a9695949392612979565b83516001600160a01b031683820155928c0192869101612649565b9060209182825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604092835190630c133d1360e31b91828152878180612a3460049784898401526024830190611be0565b0381885af4908115612ec857600091612eab575b50612e9b57855160808101516001600160e01b031995918791871615612e7c575b5050865192612a8d87519463f47ad7eb60e01b865288878701526044860190612471565b898580612aa66003199485838203016024840152611c53565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4948515612e3457908a91600096612e3f575b50895182015151895163c836244d60e01b81528881018b9052929183918291612b1191612b02906044850190611be0565b90838203016024840152611c53565b0381865af4908115612e3457600091612e17575b50612bf057505050505061219d936003918351612be1818481019385855260c0612bbf8a51928a80860152612b67845160e0608088015261016087019061310e565b612b828a86015191607f1992838983030160a08a015261310e565b918c860151858801526001600160401b0360608701511660e088015260808601511661010087015260a08501519086830301610120870152612410565b910151610140830152858901511515606083015203601f198101835282611970565b519020600052526000206125f4565b889798949550612bff84611cd2565b60018414612d24575b505050612c1481611cd2565b15612cbc575b60009183519586928392635c46fefb60e11b845283015285612c4782518760248601526064850190612471565b91015115156044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4908115612cb25750612c7a575050565b3d806000843e612c8a8184611970565b820190828203126119fa5781516001600160401b0381116119fa57612caf92016124eb565b50565b513d6000823e3d90fd5b50601d546001600160401b03808260481c1690606087510151168103612d145791849167ffffffffffffffff60481b612cf66000956120f9565b60481b169067ffffffffffffffff60481b191617601d559150612c1a565b835163a57cadff60e01b81528390fd5b86949192939451928391825282878301528180612d446024820188611be0565b03915af4908115612e0c579086939291600091612def575b5015612d6a575b8080612c08565b612d75919250613b0d565b9015612ddf5760030180546001600160401b038082871c1690606089510151168103612dcf579067ffffffffffffffff60401b612db4889594936120f9565b871b169067ffffffffffffffff60401b191617905538612d63565b855163a57cadff60e01b81528590fd5b8351630e991abd60e41b81528390fd5b612e069150843d8611610dd957610dcb8183611970565b38612d5c565b85513d6000823e3d90fd5b612e2e91508a3d8c11610dd957610dcb8183611970565b38612b25565b88513d6000823e3d90fd5b90959181813d8311612e75575b612e568183611970565b810103126100e557519060028210156100e95750938990612b02612ad1565b503d612e4c565b01514710612e8b578538612a69565b855163569d45cf60e11b81528490fd5b845163c5f563eb60e01b81528390fd5b612ec29150883d8a11610dd957610dcb8183611970565b38612a48565b86513d6000823e3d90fd5b8115612edd570690565b634e487b7160e01b600052601260045260246000fd5b9035603e19823603018112156119fa570190565b9035601e19823603018112156119fa5701602081359101916001600160401b0382116119fa578160051b360383136119fa57565b60408201916001600160401b03612f5183611b01565b1681526060612f6560209384810190612f07565b839195604086839601525201929160005b828110612f84575050505090565b909192938280600192838060a01b03612f9c89611b15565b16815201950193929101612f76565b9035601e19823603018112156119fa5701602081359101916001600160401b0382116119fa5781360383136119fa57565b908060209392818452848401376000828201840152601f01601f1916010190565b604061304e611a1a9361302d6130226130168680612ef3565b85845285840190612f3b565b946020810190612ef3565b90602081860391015260ff61304182611d52565b1684526020810190612fab565b9190928160208201520191612fdc565b6130688154612125565b9081613072575050565b81601f60009311600114613084575055565b9080839182526130a3601f60208420940160051c840160018501612540565b5555565b600361219d91600081556130bd60018201612557565b600060028201550161305e565b6040018051516001600160401b0360205416106130fc575151156130ea57565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061317e5750505093604083819381611a1a97980151908281860391015260ff81511684520151938201520190612410565b82516001600160a01b03168852968501969185019160010161314a565b90815180825260208092019182818360051b85019501936000915b8483106131c65750505050505090565b909192939495848061320383856001950387528a5180518252858060a01b0384820151168483015260408091015191606080928201520190612410565b98019301930191949392906131b6565b908082146132e7576132258154612125565b906001600160401b038211611924578190613244826126938654612125565b600090601f831160011461327b57600092613270575b50508160011b916000199060031b1c1916179055565b01549050388061325a565b81526020808220858352818320935090601f1985169083905b8282106132ce5750509084600195949392106132b5575b505050811b019055565b015460001960f88460031b161c191690553880806132ab565b8495819295850154815560018091019601940190613294565b5050565b600454811015612023576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b9061341f5781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b038311611924576133848361337e8754612125565b876125af565b81601f84116001146133bd57509282939183926000946133b2575b50501b916000199060031b1c1916179055565b01519250388061339f565b919083601f1981168760005284600020946000905b8883831061340557505050106133ec57505050811b019055565b015160001960f88460031b161c191690553880806132ab565b8587015188559096019594850194879350908101906133d2565b634e487b7160e01b600052600060045260246000fd5b604080519160209182845261345482518285870152606086019061319b565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081613740575b505050600490815493600160401b9384861161372b576006548660065580871061368c575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83821061363757505050508060055416916001600160401b03199283600754161760075583515193855496885b8681106135c557505050511690600554161760055580831161355d575b50505050565b8281101561355757815480156135b257600019019061357b826132eb565b9290926135a057858355613598600260019488868201550161305e565b83550161355d565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b888110156135f457806135ee6135de6001938651612111565b516135e8836132eb565b90613326565b0161353a565b6135ff818451612111565b5188548381101561362457600192916135e8828561361f94018d556132eb565b6135ee565b634e487b7160e01b8c5260418a5260248cfd5b806001918403613652575b600380910193019101909161350d565b805484558180850190838060a01b0390830154166001600160601b0360a01b8254161790556136876002808301908601613213565b613642565b600390808202908282040361371657878202828104890361370157600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b8281106136e4575050506134c0565b80828592558260018201556136fb6002820161305e565b016136d5565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b8486511685600754169081811461382d571061381c5782519261376284611909565b60045461376e81611991565b9161377b81519384611970565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b8484106137da5750505091855250508201526137c99082613837565b6137d55738808061349b565b505050565b60038760019284516137eb8161193a565b86548152848060a01b0385880154168382015261380a6002880161215f565b868201528152019301930192916137ad565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b0390602091808383015116908385015116036123b55761385d816138d8565b613866846138d8565b036123b557518051835151036123b5576138d16138c591604051908161389686820192878452604083019061319b565b03916138aa601f1993848101835282611970565b5190209451604051938491868301968752604083019061319b565b03908101835282611970565b5190201490565b8051519060009182915b8183106138ef5750505090565b90919261390b600191613903868551612111565b51519061204e565b930191906138e2565b6001600160a01b0390811691908215613afb5760409283519361393685611909565b6001600160401b0391826019541686528151958690601a54908189526020809901926000978893601a85527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9185905b8d838310613ade5750505050506139a3816139c994950382611970565b818a0152845163aa5106cb60e01b81526004810186905293849283926044840190611be0565b906024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4938415613ad3578094613a09575b50505050613a05919250613b0d565b9091565b90919293503d8082843e613a1d8184611970565b82019186818403126100e55780519085821161017f57019383858403126100e557835194613a4a86611909565b805182811681036107e55786528781015191821161017f570182601f820112156100e557805191613a86613a7d84611991565b95519586611970565b828552878086019360051b8301019384116100e957508601905b828210613abc57505050613a05929382015282913880806139f6565b868091613ac884611bcc565b815201910190613aa0565b8251903d90823e3d90fd5b845482168952909701968b96506001938401939190910190613986565b6040516370e4510960e01b8152600490fd5b613b4b73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611be0565b0381865af4908115613bd657600091613be2575b5060005260008152613ba081604060002093613b7d6004860161207e565b906040518080958194630c133d1360e31b83528660048401526024830190611be0565b03915af4918215613bd657600092613bb9575b50501591565b613bcf9250803d10610dd957610dcb8183611970565b3880613bb3565b6040513d6000823e3d90fd5b908282813d8311613c08575b613bf88183611970565b810103126100e957505138613b5f565b503d613bee565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115613bd657600091613c68575b5015613c5657565b60405163f0d97f3b60e01b8152600490fd5b613c80915060203d8111610dd957610dcb8183611970565b38613c4e565b60041115611cdc57565b909493926060926080830196613ca581611cd2565b8352602083015260408201520152565b8151919060418303613ce657613cdf92506020820151906060604084015193015160001a90613cf1565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613d7557926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613d695780516001600160a01b03811615613d6057918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156120235760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b600d5481101561202357600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b600081815260156020526040812054613e5357601454600160401b811015612898579082613e3f613e2884600160409601601455613d81565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b905090565b6000818152600e6020526040812054613e5357600d54600160401b811015612898579082613e91613e2884600160409601600d55613db8565b9055600d54928152600e6020522055600190565b6000828152600182016020526040902054613efb57805490600160401b82101561192457600182018082558210156120235782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015613fe75760001990808201818111613fd35760145490838201918211613fbf57808203613f8b575b5050506014548015613f7757810190613f5682613d81565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b613fa9613f9a613e2893613d81565b90549060031b1c928392613d81565b9055845260156020526040842055388080613f3e565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b6000818152600e60205260408120549091908015613fe75760001990808201818111613fd357600d5490838201918211613fbf57808203614061575b505050600d548015613f775781019061404082613db8565b909182549160031b1b19169055600d558152600e6020526040812055600190565b61407f614070613e2893613db8565b90549060031b1c928392613db8565b90558452600e6020526040842055388080614028565b61ffff908116600019019190821161205b57565b919080156142d85760005b8181106140c15750509050565b6140cc81838661200c565b9060406140d983806142dd565b01356001600160a01b03818116918290036119fa576140f884806142dd565b359360048510156119fa5761410d81806142dd565b906020918281013590601e19813603018212156119fa57019384356001600160401b03958682116119fa57840181360381136119fa5761414e9136916119c3565b9385602a541694604051986141628a61193a565b61416b81613c86565b89528489019081526040890192835285600052602b85526040600020985161419281613c86565b61419b81613c86565b60ff80198b541691161789555197885198878a11611924576001998a8301916141ce826141c88554612125565b856125af565b8790601f83116001146142635760029493929160009183614258575b5050600019600383901b1c1916908c1b1790555b019151166001600160601b0360a01b8254161790558361421d846120f9565b166001600160401b0319602a541617602a5501359182168092036119fa570361424657016140b4565b604051631aba532960e21b8152600490fd5b0151905038806141ea565b9392918c918360005289600020906000601f198416905b8c8282106142b557505096836002981061429c575b505050811b0190556141fe565b015160001960f88460031b161c1916905538808061428f565b919295899487849397999a9b015181550195019301908f9492979695939161427a565b509050565b903590605e19813603018212156119fa570190565b602a546001600160401b0392838316929190848216841061431f5760405163040aaa0560e11b8152600490fd5b848260401c16841061464c579392919083604091821c16945b84861695848711614615576000908782526020602b81528483209860018060a01b0360028b0154169960ff81541661436f81613c86565b600281036143c457509061439c6001602b94938c9d889d999a9b9c9d52602385520160038a882001613213565b8452528482209180835560026001936143b685820161305e565b015501169493929190614338565b9a6143d28c9a99989a613c86565b60039b808d0361451057506143ea600180930161215f565b809c8b825183019e8f0312610e5c57818601519d9b9c9b8c8f1161450c57906144218e9f8e9f9c9d9e9389809101918601016124eb565b9e8f93015194848a5260238852818c8b20019351928311610aab578e9f9d9e9a9b9c9d6144528461337e8754612125565b88908b601f861160011461449c579480938193602b9c9b9a98969361448c9a9895614491575b50501b92600019911b1c1916179055614653565b61439c565b015193503880614478565b50858c52898c209294939190601f1985168d5b8181106144f7575091859391602b9c9b9a989661448c9a989694106144dd575b50505050811b019055614653565b01519060f884600019921b161c19169055388080806144cf565b82840151865594870194928c01928c016144af565b8880fd5b92939495969799989a9b61452a600193929380930161215f565b868180518101031261450c5797602b9593838f9a938d958a859c9b999601519561455381613c86565b036145d45761457385836145ab9798868852602397888d52200154612071565b93838c5288528d8b208b60028201868154811590816145cb575b50156145bf5750816145a695818555840155550161305e565b614b2d565b6145b86022918254612071565b905561439c565b94935050500155614b2d565b9050153861458d565b50929061448c94508092528b6145f48285602393848b528d20015461204e565b938491848c5288528d8b20015561460e602291825461204e565b9055614697565b509450925067ffffffffffffffff60401b9150614631906120f9565b602a54921b169067ffffffffffffffff60401b191617602a55565b9350505050565b9060018060a01b03821660005260236020526040600020818154915581811460001461467e57505050565b81111561468e5761219d916149a7565b61219d91614e7f565b919060018060a01b03928381166000948186526020916025835261ffff916040978389822054166148b6578360215460081c16846024541610614882576146dc615952565b60019283825260268652828a83205416886146f68261500a565b106147fc57508152602885528389822054166147655750505050506147607f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461474083614f9f565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b61476e866159a5565b926147788761500a565b935b81868216116147be575b505097516001600160a01b039095168552505050506020810191909152909150600080516020615bb4833981519152908060408101614760565b80856147dd86617fff8f95871c169485885260298c528720541661500a565b10156147f657906147ef839282615b04565b905061477a565b50614784565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506147609560289161483761552c565b835252205416614874575b61484b846154bd565b61485483614f9f565b516001600160a01b03928316815292909116602083015281906040820190565b61487d846151c0565b614842565b50505050506147607f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394614740836154bd565b979291506148c7859497969561596e565b976148d18561500a565b976148db8a6153b2565b8460245416905b858116828111614982578281101561496657508061490261490892614f8c565b90615902565b9b909b5b8b111561492b5761491d908c615a6b565b6149268b6153b2565b6148e2565b505093516001600160a01b039095168552505050506020810191909152909250600080516020615b9483398151915291508060408101614760565b849c919c526026835261497d85888620541661500a565b61490c565b505050505050506147609192939550600080516020615b948339815191529450614740565b6001600160a01b03808216600081815260256020526040808220549095949361ffff93918416614afb578360215460081c16846024541610614ac9576149eb615952565b600183526026602052868320541685614a038261500a565b10614a755750815260286020528490205416614a47576147607f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361474083614f9f565b614760600080516020615bb483398151915293614740614a66846159a5565b614a6f8561500a565b9061535d565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75969261476094614aa961552c565b81526028602052205416614ac05761484b846154bd565b61487d8461524b565b505050506147607f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93614740836154bd565b50505050614760600080516020615b9483398151915293614740614b1e8461596e565b614b278561500a565b9061586f565b909160018060a01b03928383169060009382855260206028815261ffff95604094878683205416614d55578082526025835287868320541615614d44578415614c9c5750614b7a8361596e565b97614b848461500a565b985b6001808a83161115614c8d5781617fff911c1690818452602685528a614bb0848a8720541661500a565b1115614bc557614bc09082615a6b565b614b86565b505091939597509193955b6027541615614c8557614be1615952565b600182526026835285818184205416926029614bfc8561500a565b95614c05615960565b600183525220541691614c178361500a565b11614c4c57505091516001600160a01b0390921682526020820152600080516020615b94833981519152908060408101614760565b915091506147607ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593614c7d61552c565b614842615059565b505050505050565b50509193959750919395614bd0565b829450614cd07f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799615675565b8651908152a160275416614ce45750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360298492614d12615960565b6001835252205416614d38614d268261500a565b92614d2f615059565b614740836154bd565b0390a138808080613557565b8551632a55ca5360e01b8152600490fd5b84969792939598919415614e44575061fffe9193614d72866159a5565b93614d7c8761500a565b9480966001958692831b168160275416925b614dd0575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020615bb48339815191529190508060408101614760565b818116838111614e3e578d9084811015614e2257505080614df3614df992614f8c565b90615465565b9890985b881015614e1d57614e0e9089615b04565b614e17886153b2565b86614d8e565b614d93565b865260298552852054909890614e3990871661500a565b614dfd565b50614d93565b94915050614e789194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506151c0565b51908152a1565b6001600160a01b0380821660008181526028602090815260408083205490969594919361ffff918216614f22578084526025855281888520541615614f11578615614ee05750614bd0614ed18661596e565b614eda8761500a565b90615820565b849193979650614cd07f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9396615700565b8751632a55ca5360e01b8152600490fd5b9693925050508315614f5f5750600080516020615bb4833981519152935061476090614740614f50846159a5565b614f598561500a565b906153c9565b9250614e787f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b949261524b565b90600161ffff8093160191821161205b57565b61219d90614a6f61ffff91614fb78360275416614f8c565b9260018060a01b0382169081600052602860205260406000209085169161ffff199183838254161790558260005260296020526040600020906001600160601b0360a01b82541617905560275416176027555b60ff602154166003811015611cdc5760010361503b576001600160a01b031660009081526023602052604090205490565b6001600160a01b031660009081526023602052604090206001015490565b61ffff80602754169081156151ae579060019061507881831115615a4e565b6000828152602960208181526040808420805486865282862080546001600160a01b0392831680895260288752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161511291908a61510383614095565b169060275416176027556159ca565b84825280865261512684848420541661500a565b95859860028160275416995b615144575b5050505050505050505050565b8181168a81116151a8578a81101561518d575080614df361516492614f8c565b9a909a5b89101561518857615179908b615b04565b6151828a6153b2565b87615132565b615137565b859b919b528383526151a387878720541661500a565b615168565b50615137565b6040516340d9b01160e01b8152600490fd5b6151c9906159a5565b61ffff908160275416916151dd8383615b04565b806151e784614095565b1661ffff1960275416176027556151fd836159ca565b81168092146132e757614f598261219d93600052602960205260018060a01b0390615237615231836040600020541661500a565b8561535d565b60005260296020526040600020541661500a565b615254906159a5565b61ffff908160275416916152688383615b04565b8061527284614095565b1661ffff196027541617602755615288836159ca565b8082168093146137d5579161fffe9160009180835260299060209382855260018060a01b03926040926152c86152c286868620541661500a565b8761535d565b82528086526152db84848420541661500a565b9585986001988997881b168160275416995b6152fe575050505050505050505050565b8181168a81116151a8578a811015615342575080614df361531e92614f8c565b9a909a5b89101561518857615333908b615b04565b61533c8a6153b2565b876152ed565b859b919b5283835261535887878720541661500a565b615322565b9190915b60018061ffff831611156153ac5781617fff911c16908361539760008481526029602052604060018060a01b039120541661500a565b10156153ac576153a79082615b04565b615361565b50509050565b60011b906201fffe61fffe83169216820361205b57565b90600161fffe83821b168160009161ffff908160275416925b6153f0575b50505050505050565b81811683811161545f5783811015615439575080614df361541092614f8c565b9690965b861015615434576154259087615b04565b61542e866153b2565b846153e2565b6153e7565b84526029602052604084205490969061545a906001600160a01b031661500a565b615414565b506153e7565b91909161ffff9283821660005260296020526154a860018060a01b03615491816040600020541661500a565b95831660005260296020526040600020541661500a565b908185106154b65750509190565b9350919050565b61219d90614eda61ffff916154d58360245416614f8c565b9260018060a01b0382169081600052602560205260406000209085169161ffff199183838254161790558260005260266020526040600020906001600160601b0360a01b825416179055602454161760245561500a565b61ffff80602454169081156151ae579060019061554b81831115615a4e565b6000828152602660208181526040808420805486865282862080546001600160a01b0392831680895260258752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a8952845416909117909255929587959394929392916155e591908a6155d683614095565b16906024541617602455615a0c565b8482528086526155f984848420541661500a565b95859860028160245416995b615616575050505050505050505050565b8181168a81116151a8578a81101561565a57508061490261563692614f8c565b9a909a5b8911156151885761564b908b615a6b565b6156548a6153b2565b87615605565b859b919b5283835261567087878720541661500a565b61563a565b61567e9061596e565b61ffff908160245416916156928383615a6b565b8061569c84614095565b1661ffff1960245416176024556156b283615a0c565b81168092146132e757614b278261219d93600052602660205260018060a01b03906156ec6156e6836040600020541661500a565b85615820565b60005260266020526040600020541661500a565b6157099061596e565b9061ffff9081602454169061571e8285615a6b565b8261572883614095565b1661ffff19602454161760245561573e82615a0c565b82841680921461581a5760009291929183835260269260209484865260018060a01b039160409161577c61577685858520541661500a565b8a615820565b815285875261578f83838320541661500a565b95615799896153b2565b978560245416985b8681168a811161580c578a8110156157f15750806149026157c192614f8c565b9a909a5b8911156157e4576157d6908b615a6b565b6157df8a6153b2565b6157a1565b5050505050505092505050565b849b919b5282825261580786868620541661500a565b6157c5565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156153ac5781617fff911c16908361585a60008481526026602052604060018060a01b039120541661500a565b11156153ac5761586a9082615a6b565b615824565b91615879836153b2565b600061ffff918260245416905b8381168281116158f857828110156158d25750806149026158a692614f8c565b9690965b8611156158c9576158bb9087615a6b565b6158c4866153b2565b615886565b50505050915050565b8352602660205260408320549096906158f3906001600160a01b031661500a565b6158aa565b5050505050915050565b919061ffff808416600052602660205261594360018060a01b0361592c816040600020541661500a565b92841660005260266020526040600020541661500a565b93848211156154b65750509190565b61ffff60245416156151ae57565b61ffff60275416156151ae57565b6001600160a01b031660009081526025602052604090205461ffff1690811561599357565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526028602052604090205461ffff1690811561599357565b61ffff16600090815260296020908152604080832080546001600160a01b031981169091556001600160a01b0316835260289091529020805461ffff19169055565b61ffff16600090815260266020908152604080832080546001600160a01b031981169091556001600160a01b0316835260259091529020805461ffff19169055565b15615a5557565b634e487b7160e01b600052600160045260246000fd5b615a9061ffff808060245416931693615a8684861115615a4e565b1691821115615a4e565b6000828152602660208181526040808420805486865282862080546001600160a01b0392831680895260258752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b615b1f61ffff808060275416931693615a8684861115615a4e565b6000828152602960208181526040808420805486865282862080546001600160a01b0392831680895260288752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda26469706673582212206fa7c426f6b653d524b8e179a4014abbbe2edc425d47335deb06c41e8b83ff6e64736f6c63430008130033","sourceMap":"1789:15887:47:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":15431,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":11378,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":10951,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3059,"length":20},{"start":5902,"length":20},{"start":10771,"length":20},{"start":14832,"length":20},{"start":15151,"length":20}]}}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b6000803560e01c80630bed7615146116845780630db0f77c1461138e5780630df144611461135a578063111969741461129d57806332e7661f14610e7a57806347dc9b4f14610b8257806353b4e7bf146107e9578063743037711461050d578063ac81837914610393578063bacc656d14610183578063c62eb4d5146100ec5763e49a547d146100a157600080fd5b346100e95760203660031901126100e9576004356001600160401b0381116100e5576100d46100e2913690600401611abc565b906100dd613c0f565b6140a9565b80f35b5080fd5b80fd5b50346100e95760203660031901126100e9576001600160401b0360043581811161017f5761011e903690600401611abc565b610126613c0f565b60405192602084019081118482101761016b5791610165916100e294936040528584526040519361015685611909565b86855260208501523691611e0e565b906123bd565b634e487b7160e01b85526041600452602485fd5b8280fd5b50346100e9576020806003193601126100e557600435906101a2613c0f565b6012545b8281106102db5750601254808311156102c9575b8281106101c957505060125580f35b808452601382526040842090848255846004600193828582015582600282015582600382015501556016835260408520805490868155816102a6575b50508085526040852060405180828682945493848152019089528689209289905b878982841061028d575050505061023f92500382611970565b80519083875b8381106102565750505050016101ba565b84895260178752604089206001600160a01b036102738386612111565b51168a52875261028560408a2061305e565b018490610245565b9092945082919386548152019401920184929391610226565b865282848720918201915b8281106102be5750610205565b8781550183906102b1565b604051636819a3a960e01b8152600490fd5b808452600990818352604085209185835560036001936102fc858201612557565b876002820155019081549087835581610319575b505050016101a6565b600d92828402928484040361037f578852858820918201915b82811061033f5750610310565b8061034a85926130a7565b610356600482016130a7565b896008820155898382015561036d600a820161305e565b89600b82015589600c82015501610332565b634e487b7160e01b89526011600452602489fd5b50346100e9576020806003193601126100e557600435906103b2613c0f565b600b545b8281106104d95750600b54808311156102c9575b8281106103d9575050600b5580f35b808452600c8252604084209084825584600460019382858201558260028201558260038201550155600f835260408520805490868155816104b6575b50508085526040852060405180828682945493848152019089528689209289905b878982841061049d575050505061044f92500382611970565b80519083875b8381106104665750505050016103ca565b84895260108752604089206001600160a01b036104838386612111565b51168a52875261049560408a2061305e565b018490610455565b9092945082919386548152019401920184929391610436565b865282848720918201915b8281106104ce5750610415565b8781550183906104c1565b8084526008825260408420908482558460046001936104f9858201612557565b8260028201558260038201550155016103b6565b50346100e9576003196060368201126100e5576004356001600160401b038082116107e5576080826004019383360301126107e5576044359261054e613c0f565b602483013593610560601e5486612ed3565b6107d3578486526020936008855260026040882001546107c15760405191858301918683526105a36105928680612ef3565b6080604087015260c0860190612f3b565b928860608601526044820135948560808201526105dd8160648501968a6105c989611b01565b1660a083015203601f198101835282611970565b5190209160ff601d541690600b548a106107af57801561079d576064916106039161252d565b049161060e89613e58565b1561078b576040516106809161062382611955565b815260048a8a8d6040828601916024358352818701998a52600c60608801948286526080890196838852835252209451855551966001978886015551600285015551600384015551151591019060ff801983541691151516179055565b6040519460808601868110888211176107775760405235908682116107735760046106ae9236920101611b29565b84526106c68685019288845260408601948552611b01565b96606085019788528852600886526040882093519585875116966001600160401b03199788875416178655818387019101519182519288841161075f57819061070f858561257b565b01918b52808b20908b5b848110610745575050505050509060049291516002830155516003820155019251169082541617905580f35b83516001600160a01b031683820155928101928501610719565b634e487b7160e01b8c52604160045260248cfd5b8980fd5b634e487b7160e01b8b52604160045260248bfd5b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b8380fd5b50346100e9576107f836611a1d565b909291600b5483106107af5782855260209160088352600260408720015415610b7057838652600c83526040862092610832828554613cb5565b5061083c81613c86565b610b5e57858852600f825260408089206001600160a01b0383166000818152600190920160205291902054610b4c57604080516001600160a01b03909316848401908152602081018a9052908390820103926108a0601f1994858101835282611970565b5190206040518481019182528481526108b881611909565b519020600195868089015492918c915b610ae9575b505003610ad157868952600f83526108e88160408b20613ea5565b15610abf578689526010835260408920908952825260408820928051926001600160401b038411610aab579083929161092b846109258854612125565b886125af565b8092601f8511600114610a4b5750508992610a40575b5050600019600383901b1c191690831b1790555b6109646003830194855461204e565b908185556002830154821015610978578580f35b600483018054909260ff82166109f9575060ff191617905561099982613fec565b156109e7576109da7fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949360ff600a5416925490549060405194859485613c90565b0390a15b38808080808580f35b6040516344a7b48760e11b8152600490fd5b9150507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9450610a38915060ff600a5416925460405194859485613c90565b0390a16109de565b015190503880610941565b87959392919316868c52838c20938c905b828210610a925750508411610a79575b505050811b019055610955565b015160001960f88460031b161c19169055388080610a6c565b8484015186558997909501949384019390810190610a5c565b634e487b7160e01b8a52604160045260248afd5b604051633363140f60e01b8152600490fd5b60249060405190634a0bfec160e01b82526004820152fd5b90918151831015610b4657610afe8383612111565b519081811015610b38578d52865260408c205b916000198114610b2457880190886108c8565b634e487b7160e01b8d52601160045260248dfd5b908d52865260408c20610b11565b916108cd565b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b6040516358cdd2e760e01b8152600490fd5b50346100e9576003196020368201811361017f57600435916001600160401b0390818411610e765783600401916080828636030112610e7257610c0b91610bd236610bcd8680611aec565b611b29565b918573__$a0fe38a9a81205afccc10810b09a4d3f45$__9360405180968192632cff562160e11b83528460048401526024830190611be0565b0381865af4938415610e67578894610e2c575b506001600160a01b03933390851603610e1a57610c3a33613914565b959015610e095791610c7a94610c5888959394610bcd369180611aec565b9360405196879563c836244d60e01b8752604060048801526044870190611be0565b928584030160248601526040830190600489015416835260606005890193604088820152845480935201928b52858b20918b905b828210610deb575050505082809103915af4908115610de0578591610db3575b5015610da1576003015460801c60ff166006811015610d8d57600103610d7b578260ff602c5460181c16610cff5780f35b80610d6b93604051602485820192632643057b60e11b84520135602482015282604482015282606482015260648152610d3781611955565b519082335af13d15610d72573d610d4d816119a8565b90610d5b6040519283611970565b81528481933d92013e5b33611cf2565b5038808280f35b60609150610d65565b60405163c18316bf60e01b8152600490fd5b634e487b7160e01b84526021600452602484fd5b6040516303b5db8360e11b8152600490fd5b610dd39150833d8511610dd9575b610dcb8183611970565b810190611c3b565b38610cce565b503d610dc1565b6040513d87823e3d90fd5b8354811685528a978997509094019360019384019390910190610cae565b6040516208ed5b60e31b8152600490fd5b604051637f39132760e11b8152600490fd5b9093508581813d8311610e60575b610e448183611970565b81010312610e5c57610e5590611bcc565b9238610c1e565b8780fd5b503d610e3a565b6040513d8a823e3d90fd5b8580fd5b8480fd5b50346100e9576003196060368201126100e557600435906001600160401b03821161017f5760609082360301126100e557610eb3613c0f565b610ec8610ec33683600401611f62565b6130ca565b610ed8601f546024830135612ed3565b1580159061128f575b61127d57602481013582526009602052600260408320015461126b57604051602080820152610f27610f166004840180612ef3565b6060604084015260a0830190612f3b565b6024830135606083015281610f426044850185600401612f07565b603f93919319838303016080840152808252602082019160208260051b820101928589925b848410611160575050505050610f86925003601f198101835282611970565b6020815191012060ff601d54166012546024840135106107af57604435801561079d57606491610fb59161252d565b0491610fc46024820135613def565b1561078b5761103f6110499260405190610fdd82611955565b815260046020820160243581526040830196875260608301888152608084019189835260248701358a52601360205260408a209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611f62565b6020810190815184526009602052604084209181516001600160401b038151166001600160401b03198554161784556020858501910151908151916001600160401b03831161112f5760209061109f848461257b565b019087526020872086885b8481106111435789828960408a8a5160028401550190815151916003859201915b8381106110d6578580f35b6110e1818351612111565b518354600160401b81101561112f5786810180865581101561111b5786929161111591868a52600d60208b209102016125f4565b016110cb565b634e487b7160e01b88526032600452602488fd5b634e487b7160e01b88526041600452602488fd5b83516001600160a01b0316818401556020909301928891016110aa565b919395509193601f198282030184526111798784612ef3565b90813560de19833603018112156112675782602092836112508160019781960194604085526111dd6111c06111ae8880612ef3565b60e06040890152610120880190612ffd565b6111cc84890189612ef3565b878203603f19016060890152612ffd565b604087013560808701526001600160401b036111fb60608901611b01565b1660a08701526112416001600160e01b031961121960808a01611dec565b169160c0928389015261122f60a08a018a612fab565b898303603f190160e08b015290612fdc565b96013561010086015201611e01565b151591015298019401940191879593969491610f67565b8b80fd5b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b506024810135431115610ee1565b50346100e95760403660031901126100e9576040516112bb81611909565b818152816020809201526112cd613c0f565b81816040516112db81611909565b828152015260025491600435918284116113485760609382526001815260408220926040600181519561130d87611909565b805487520154938386019485528281526001845220818155600160243591015560025582511515926040519384525190830152516040820152f35b60405163153ad84160e11b8152600490fd5b50346100e957806003193601126100e957611373613c0f565b602061137d612205565b6001600160401b0360405191168152f35b50346100e95761139d36611a1d565b90929160125483106107af5782855260209160098352600260408720015415611672578386526013835260408620926113d7828554613cb5565b506113e181613c86565b610b5e578588526016825260408089206001600160a01b0383166000818152600190920160205291902054610b4c57604080516001600160a01b03909316848401908152602081018a905290839082010392611445601f1994858101835282611970565b51902060405184810191825284815261145d81611909565b519020600195868089015492918c915b611623575b505003610ad1578689526016835261148d8160408b20613ea5565b15610abf578689526017835260408920908952825260408820928051926001600160401b038411610aab57908392916114ca846109258854612125565b8092601f85116001146115c357505089926115b8575b5050600019600383901b1c191690831b1790555b6115036003830194855461204e565b908185556002830154821015611517578580f35b600483018054909260ff8216611579575060ff191617905561153882613f02565b156109e7576109da7fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949360ff60115416925490549060405194859485613c90565b9150507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9450610a38915060ff60115416925460405194859485613c90565b0151905038806114e0565b87959392919316868c52838c20938c905b82821061160a57505084116115f1575b505050811b0190556114f4565b015160001960f88460031b161c191690553880806115e4565b84840151865589979095019493840193908101906115d4565b9091815183101561166c576116388383612111565b51908181101561165e578d52865260408c205b916000198114610b24578801908861146d565b908d52865260408c2061164b565b91611472565b60405163a88f96f160e01b8152600490fd5b50346100e9576003196020368201811361017f57600435916001600160401b0383116107e5576060836004019184360301126107e5576116ed826116cc36610bcd8580611aec565b60405180938192632cff562160e11b83528460048401526024830190611be0565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610de05785916118d4575b50336001600160a01b03909116036118bf57611733610ec33683611f62565b61173c33613914565b919015610e095760ff600383015460801c169160068310156118ab576001809303610d7b57856044879601936117728585611fd7565b899291505b80831061185c5750505061178b908661204e565b90600281019182549080821061184a576117ce95600495610165956117b66117bd946117c696612071565b9055611fd7565b9490920161207e565b923691611e0e565b60ff602c54821c166117de578280f35b60405181810190632643057b60e11b82524360248201528360448201528460648201526064815261180e81611955565b83471061183257610d6b93859283925191335af13d15610d72573d610d4d816119a8565b60405163cd78605960e01b8152306004820152602490fd5b604051631d36ca1560e21b8152600490fd5b906118a261188e849a956040611886611880869861187a8e8e611fd7565b9061200c565b80612039565b01359061204e565b9460c06118866118808d61187a8d8d611fd7565b98019190611777565b634e487b7160e01b86526021600452602486fd5b60405160016201ad9360e61b03198152600490fd5b90508281813d8311611902575b6118eb8183611970565b81010312610e76576118fc90611bcc565b38611714565b503d6118e1565b604081019081106001600160401b0382111761192457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761192457604052565b60a081019081106001600160401b0382111761192457604052565b90601f801991011681019081106001600160401b0382111761192457604052565b6001600160401b0381116119245760051b60200190565b6001600160401b03811161192457601f01601f191660200190565b9291926119cf826119a8565b916119dd6040519384611970565b8294818452818301116119fa578281602093846000960137010152565b600080fd5b9080601f830112156119fa57816020611a1a933591016119c3565b90565b9060806003198301126119fa57600435916001600160401b03916024358381116119fa57826023820112156119fa578060040135611a5a81611991565b91611a686040519384611970565b81835260209160248385019160051b830101918683116119fa57602401905b828210611aad575050505092604435926064359182116119fa57611a1a916004016119ff565b81358152908301908301611a87565b9181601f840112156119fa578235916001600160401b0383116119fa576020808501948460051b0101116119fa57565b903590603e19813603018212156119fa570190565b35906001600160401b03821682036119fa57565b35906001600160a01b03821682036119fa57565b91906040838203126119fa5760405192611b4284611909565b83611b4c82611b01565b815260209182810135906001600160401b0382116119fa57019280601f850112156119fa578335611b7c81611991565b94611b8a6040519687611970565b818652848087019260051b8201019283116119fa5784809101915b838310611bb457505050500152565b8190611bbf84611b15565b8152019101908490611ba5565b51906001600160a01b03821682036119fa57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611c1e575050505090565b83516001600160a01b031685529381019392810192600101611c10565b908160209103126119fa575180151581036119fa5790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611cb2575050505090565b83546001600160a01b031685529384019360019384019390910190611ca4565b60021115611cdc57565b634e487b7160e01b600052602160045260246000fd5b9015611d3057815115611d03575090565b803b15611d0e575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50805115611d4057805190602001fd5b604051630a12f52160e11b8152600490fd5b359060ff821682036119fa57565b91906040838203126119fa5760405192611d7984611909565b838135916001600160401b03928381116119fa5784611d99918301611b29565b82526020810135908382116119fa57016040818503126119fa5760405193611dc085611909565b611dc982611d52565b855260208201359384116119fa57602093611de492016119ff565b828401520152565b35906001600160e01b0319821682036119fa57565b359081151582036119fa57565b929192611e1a82611991565b91604090611e2a82519485611970565b839581855260208095019160051b8401938185116119fa5780925b858410611e555750505050505050565b6001600160401b039084358281116119fa5783019086828603126119fa578651611e7e81611909565b82358481116119fa5783019260e09485858903126119fa57895195860186811082821117611f4d578a5284358181116119fa5788611ebd918701611d60565b86528b8501358181116119fa5788611ed6918701611d60565b8c870152898501358a8701526060611eef818701611b01565b908701526080611f00818701611dec565b9087015260a091828601359182116119fa578c9686611f3e94611f288c8b9a968b97016119ff565b9083015260c08091013590820152845201611e01565b83820152815201930192611e45565b60246000634e487b7160e01b81526041600452fd5b91906060838203126119fa5760405190611f7b8261193a565b81938035906001600160401b03918281116119fa5783611f9c918301611b29565b84526020810135602085015260408101359182116119fa570181601f820112156119fa57604091816020611fd293359101611e0e565b910152565b903590601e19813603018212156119fa57018035906001600160401b0382116119fa57602001918160051b360383136119fa57565b9082101561202357611a1a9160051b810190611aec565b634e487b7160e01b600052603260045260246000fd5b90359060de19813603018212156119fa570190565b9190820180921161205b57565b634e487b7160e01b600052601160045260246000fd5b9190820391821161205b57565b9060405161208b81611909565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106120da57505050506120d692500384611970565b0152565b83546001600160a01b03168552899550909301929181019181016120be565b9060016001600160401b038093160191821161205b57565b80518210156120235760209160051b010190565b90600182811c92168015612155575b602083101461213f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691612134565b906040519182600082549261217384612125565b9081845260019485811690816000146121e2575060011461219f575b505061219d92500383611970565b565b9093915060005260209081600020936000915b8183106121ca57505061219d9350820101388061218f565b855488840185015294850194879450918301916121b2565b91505061219d94506020925060ff191682840152151560051b820101388061218f565b602a546001600160401b038082166000190181811161205b57612227816120f9565b8280604095861c169116146123b55761223f816142f2565b61ffff9283602454169161225283611991565b9561225f83519788611970565b838752601f19918261227086611991565b019260209336858b013760015b8881168781116122bf576000908152602686528690205489916001916001600160a01b03166122b78d856122b085614095565b1690612111565b52011661227d565b5050945094919290955086516122d481611991565b946122e183519687611970565b8186526122ed82611991565b018460005b82811061238c5750505060005b818110612327575050611a1a94959650519261231a84611909565b8352841690820152613435565b6001906001600160a01b0361233c828c612111565b5116806000526023875261236c60038660002085810154938851946123608661193a565b85528a8501520161215f565b8582015261237a8289612111565b526123858188612111565b50016122ff565b84516123978161193a565b6000815260008382015260608682015282828a0101520185906122f2565b505050600090565b81519160005b8381106123d05750505050565b806123e76123e060019385612111565b51856129ea565b016123c3565b60005b8381106124005750506000910152565b81810151838201526020016123f0565b90602091612429815180928185528580860191016123ed565b601f01601f1916010190565b60406020611a1a938161244f855185845285840190611be0565b940151908281860391015260ff81511684520151918160208201520190612410565b9060c0806124e26124a061248e865160e0875260e0870190612435565b60208701518682036020880152612435565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152612410565b93015191015290565b81601f820112156119fa578051612501816119a8565b9261250f6040519485611970565b818452602082840101116119fa57611a1a91602080850191016123ed565b8181029291811591840414171561205b57565b81811061254b575050565b60008155600101612540565b80546000825580612566575050565b61219d91600052602060002090810190612540565b90600160401b81116119245781549080835581811061259957505050565b61219d9260005260206000209182019101612540565b9190601f81116125be57505050565b61219d926000526020600020906020601f840160051c830193106125ea575b601f0160051c0190612540565b90915081906125dd565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161192457899061263d838961257b565b01600096875289872084885b8481106129cf5750505050508760028a019101519260ff8451169160ff19928382541617905560039389858c01910151805190878211612945578190612699826126938654612125565b866125af565b8c90601f8311600114612964578a92612959575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311612945578b906126f6848461257b565b019088528a882085895b84811061292a5750505050508860068b019101519160ff835116908254161790558760078a01910151805190858211612916578190612743826126938654612125565b8a90601f83116001146128b75788926128ac575b505060001982861b1c191690831b1790555b6040850151600889015560098801836060870151168154906bffffffff0000000000000000608089015160a01c16916001600160601b03191617179055600a88019360a08601518051948511612898576127c7856109258854612125565b8891601f8611600114612827579385600c999794819460c0989461219d9e9d9b989561281c575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b0151935038806127ee565b9294939190601f1985168785528a8520945b8181106128835750928592600c9a98959261219d9d9c9a9760c0999610612869575b50505050811b0190556127fe565b01519060f884600019921b161c191690553880808061285b565b82840151865594870194928b01928b01612839565b634e487b7160e01b82526041600452602482fd5b015190503880612757565b8489528b89208694509190601f1984168a8e5b8282106128ff57505084116128e7575b505050811b019055612769565b015160001983881b60f8161c191690553880806128da565b83850151865589979095019493840193018e6128ca565b634e487b7160e01b87526041600452602487fd5b83516001600160a01b031683820155928d0192879101612700565b634e487b7160e01b89526041600452602489fd5b0151905038806126ad565b879350908d91601f198416868d52838d20938d905b8282106129ae5750508411612996575b505050811b0190556126bf565b0151600019838a1b60f8161c19169055388080612989565b91929395968291958786015181550195019301908f918a9695949392612979565b83516001600160a01b031683820155928c0192869101612649565b9060209182825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604092835190630c133d1360e31b91828152878180612a3460049784898401526024830190611be0565b0381885af4908115612ec857600091612eab575b50612e9b57855160808101516001600160e01b031995918791871615612e7c575b5050865192612a8d87519463f47ad7eb60e01b865288878701526044860190612471565b898580612aa66003199485838203016024840152611c53565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4948515612e3457908a91600096612e3f575b50895182015151895163c836244d60e01b81528881018b9052929183918291612b1191612b02906044850190611be0565b90838203016024840152611c53565b0381865af4908115612e3457600091612e17575b50612bf057505050505061219d936003918351612be1818481019385855260c0612bbf8a51928a80860152612b67845160e0608088015261016087019061310e565b612b828a86015191607f1992838983030160a08a015261310e565b918c860151858801526001600160401b0360608701511660e088015260808601511661010087015260a08501519086830301610120870152612410565b910151610140830152858901511515606083015203601f198101835282611970565b519020600052526000206125f4565b889798949550612bff84611cd2565b60018414612d24575b505050612c1481611cd2565b15612cbc575b60009183519586928392635c46fefb60e11b845283015285612c4782518760248601526064850190612471565b91015115156044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4908115612cb25750612c7a575050565b3d806000843e612c8a8184611970565b820190828203126119fa5781516001600160401b0381116119fa57612caf92016124eb565b50565b513d6000823e3d90fd5b50601d546001600160401b03808260481c1690606087510151168103612d145791849167ffffffffffffffff60481b612cf66000956120f9565b60481b169067ffffffffffffffff60481b191617601d559150612c1a565b835163a57cadff60e01b81528390fd5b86949192939451928391825282878301528180612d446024820188611be0565b03915af4908115612e0c579086939291600091612def575b5015612d6a575b8080612c08565b612d75919250613b0d565b9015612ddf5760030180546001600160401b038082871c1690606089510151168103612dcf579067ffffffffffffffff60401b612db4889594936120f9565b871b169067ffffffffffffffff60401b191617905538612d63565b855163a57cadff60e01b81528590fd5b8351630e991abd60e41b81528390fd5b612e069150843d8611610dd957610dcb8183611970565b38612d5c565b85513d6000823e3d90fd5b612e2e91508a3d8c11610dd957610dcb8183611970565b38612b25565b88513d6000823e3d90fd5b90959181813d8311612e75575b612e568183611970565b810103126100e557519060028210156100e95750938990612b02612ad1565b503d612e4c565b01514710612e8b578538612a69565b855163569d45cf60e11b81528490fd5b845163c5f563eb60e01b81528390fd5b612ec29150883d8a11610dd957610dcb8183611970565b38612a48565b86513d6000823e3d90fd5b8115612edd570690565b634e487b7160e01b600052601260045260246000fd5b9035603e19823603018112156119fa570190565b9035601e19823603018112156119fa5701602081359101916001600160401b0382116119fa578160051b360383136119fa57565b60408201916001600160401b03612f5183611b01565b1681526060612f6560209384810190612f07565b839195604086839601525201929160005b828110612f84575050505090565b909192938280600192838060a01b03612f9c89611b15565b16815201950193929101612f76565b9035601e19823603018112156119fa5701602081359101916001600160401b0382116119fa5781360383136119fa57565b908060209392818452848401376000828201840152601f01601f1916010190565b604061304e611a1a9361302d6130226130168680612ef3565b85845285840190612f3b565b946020810190612ef3565b90602081860391015260ff61304182611d52565b1684526020810190612fab565b9190928160208201520191612fdc565b6130688154612125565b9081613072575050565b81601f60009311600114613084575055565b9080839182526130a3601f60208420940160051c840160018501612540565b5555565b600361219d91600081556130bd60018201612557565b600060028201550161305e565b6040018051516001600160401b0360205416106130fc575151156130ea57565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061317e5750505093604083819381611a1a97980151908281860391015260ff81511684520151938201520190612410565b82516001600160a01b03168852968501969185019160010161314a565b90815180825260208092019182818360051b85019501936000915b8483106131c65750505050505090565b909192939495848061320383856001950387528a5180518252858060a01b0384820151168483015260408091015191606080928201520190612410565b98019301930191949392906131b6565b908082146132e7576132258154612125565b906001600160401b038211611924578190613244826126938654612125565b600090601f831160011461327b57600092613270575b50508160011b916000199060031b1c1916179055565b01549050388061325a565b81526020808220858352818320935090601f1985169083905b8282106132ce5750509084600195949392106132b5575b505050811b019055565b015460001960f88460031b161c191690553880806132ab565b8495819295850154815560018091019601940190613294565b5050565b600454811015612023576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b9061341f5781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b038311611924576133848361337e8754612125565b876125af565b81601f84116001146133bd57509282939183926000946133b2575b50501b916000199060031b1c1916179055565b01519250388061339f565b919083601f1981168760005284600020946000905b8883831061340557505050106133ec57505050811b019055565b015160001960f88460031b161c191690553880806132ab565b8587015188559096019594850194879350908101906133d2565b634e487b7160e01b600052600060045260246000fd5b604080519160209182845261345482518285870152606086019061319b565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081613740575b505050600490815493600160401b9384861161372b576006548660065580871061368c575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83821061363757505050508060055416916001600160401b03199283600754161760075583515193855496885b8681106135c557505050511690600554161760055580831161355d575b50505050565b8281101561355757815480156135b257600019019061357b826132eb565b9290926135a057858355613598600260019488868201550161305e565b83550161355d565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b888110156135f457806135ee6135de6001938651612111565b516135e8836132eb565b90613326565b0161353a565b6135ff818451612111565b5188548381101561362457600192916135e8828561361f94018d556132eb565b6135ee565b634e487b7160e01b8c5260418a5260248cfd5b806001918403613652575b600380910193019101909161350d565b805484558180850190838060a01b0390830154166001600160601b0360a01b8254161790556136876002808301908601613213565b613642565b600390808202908282040361371657878202828104890361370157600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b8281106136e4575050506134c0565b80828592558260018201556136fb6002820161305e565b016136d5565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b8486511685600754169081811461382d571061381c5782519261376284611909565b60045461376e81611991565b9161377b81519384611970565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b8484106137da5750505091855250508201526137c99082613837565b6137d55738808061349b565b505050565b60038760019284516137eb8161193a565b86548152848060a01b0385880154168382015261380a6002880161215f565b868201528152019301930192916137ad565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b0390602091808383015116908385015116036123b55761385d816138d8565b613866846138d8565b036123b557518051835151036123b5576138d16138c591604051908161389686820192878452604083019061319b565b03916138aa601f1993848101835282611970565b5190209451604051938491868301968752604083019061319b565b03908101835282611970565b5190201490565b8051519060009182915b8183106138ef5750505090565b90919261390b600191613903868551612111565b51519061204e565b930191906138e2565b6001600160a01b0390811691908215613afb5760409283519361393685611909565b6001600160401b0391826019541686528151958690601a54908189526020809901926000978893601a85527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9185905b8d838310613ade5750505050506139a3816139c994950382611970565b818a0152845163aa5106cb60e01b81526004810186905293849283926044840190611be0565b906024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4938415613ad3578094613a09575b50505050613a05919250613b0d565b9091565b90919293503d8082843e613a1d8184611970565b82019186818403126100e55780519085821161017f57019383858403126100e557835194613a4a86611909565b805182811681036107e55786528781015191821161017f570182601f820112156100e557805191613a86613a7d84611991565b95519586611970565b828552878086019360051b8301019384116100e957508601905b828210613abc57505050613a05929382015282913880806139f6565b868091613ac884611bcc565b815201910190613aa0565b8251903d90823e3d90fd5b845482168952909701968b96506001938401939190910190613986565b6040516370e4510960e01b8152600490fd5b613b4b73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611be0565b0381865af4908115613bd657600091613be2575b5060005260008152613ba081604060002093613b7d6004860161207e565b906040518080958194630c133d1360e31b83528660048401526024830190611be0565b03915af4918215613bd657600092613bb9575b50501591565b613bcf9250803d10610dd957610dcb8183611970565b3880613bb3565b6040513d6000823e3d90fd5b908282813d8311613c08575b613bf88183611970565b810103126100e957505138613b5f565b503d613bee565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115613bd657600091613c68575b5015613c5657565b60405163f0d97f3b60e01b8152600490fd5b613c80915060203d8111610dd957610dcb8183611970565b38613c4e565b60041115611cdc57565b909493926060926080830196613ca581611cd2565b8352602083015260408201520152565b8151919060418303613ce657613cdf92506020820151906060604084015193015160001a90613cf1565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613d7557926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613d695780516001600160a01b03811615613d6057918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156120235760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b600d5481101561202357600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b600081815260156020526040812054613e5357601454600160401b811015612898579082613e3f613e2884600160409601601455613d81565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b905090565b6000818152600e6020526040812054613e5357600d54600160401b811015612898579082613e91613e2884600160409601600d55613db8565b9055600d54928152600e6020522055600190565b6000828152600182016020526040902054613efb57805490600160401b82101561192457600182018082558210156120235782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015613fe75760001990808201818111613fd35760145490838201918211613fbf57808203613f8b575b5050506014548015613f7757810190613f5682613d81565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b613fa9613f9a613e2893613d81565b90549060031b1c928392613d81565b9055845260156020526040842055388080613f3e565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b6000818152600e60205260408120549091908015613fe75760001990808201818111613fd357600d5490838201918211613fbf57808203614061575b505050600d548015613f775781019061404082613db8565b909182549160031b1b19169055600d558152600e6020526040812055600190565b61407f614070613e2893613db8565b90549060031b1c928392613db8565b90558452600e6020526040842055388080614028565b61ffff908116600019019190821161205b57565b919080156142d85760005b8181106140c15750509050565b6140cc81838661200c565b9060406140d983806142dd565b01356001600160a01b03818116918290036119fa576140f884806142dd565b359360048510156119fa5761410d81806142dd565b906020918281013590601e19813603018212156119fa57019384356001600160401b03958682116119fa57840181360381136119fa5761414e9136916119c3565b9385602a541694604051986141628a61193a565b61416b81613c86565b89528489019081526040890192835285600052602b85526040600020985161419281613c86565b61419b81613c86565b60ff80198b541691161789555197885198878a11611924576001998a8301916141ce826141c88554612125565b856125af565b8790601f83116001146142635760029493929160009183614258575b5050600019600383901b1c1916908c1b1790555b019151166001600160601b0360a01b8254161790558361421d846120f9565b166001600160401b0319602a541617602a5501359182168092036119fa570361424657016140b4565b604051631aba532960e21b8152600490fd5b0151905038806141ea565b9392918c918360005289600020906000601f198416905b8c8282106142b557505096836002981061429c575b505050811b0190556141fe565b015160001960f88460031b161c1916905538808061428f565b919295899487849397999a9b015181550195019301908f9492979695939161427a565b509050565b903590605e19813603018212156119fa570190565b602a546001600160401b0392838316929190848216841061431f5760405163040aaa0560e11b8152600490fd5b848260401c16841061464c579392919083604091821c16945b84861695848711614615576000908782526020602b81528483209860018060a01b0360028b0154169960ff81541661436f81613c86565b600281036143c457509061439c6001602b94938c9d889d999a9b9c9d52602385520160038a882001613213565b8452528482209180835560026001936143b685820161305e565b015501169493929190614338565b9a6143d28c9a99989a613c86565b60039b808d0361451057506143ea600180930161215f565b809c8b825183019e8f0312610e5c57818601519d9b9c9b8c8f1161450c57906144218e9f8e9f9c9d9e9389809101918601016124eb565b9e8f93015194848a5260238852818c8b20019351928311610aab578e9f9d9e9a9b9c9d6144528461337e8754612125565b88908b601f861160011461449c579480938193602b9c9b9a98969361448c9a9895614491575b50501b92600019911b1c1916179055614653565b61439c565b015193503880614478565b50858c52898c209294939190601f1985168d5b8181106144f7575091859391602b9c9b9a989661448c9a989694106144dd575b50505050811b019055614653565b01519060f884600019921b161c19169055388080806144cf565b82840151865594870194928c01928c016144af565b8880fd5b92939495969799989a9b61452a600193929380930161215f565b868180518101031261450c5797602b9593838f9a938d958a859c9b999601519561455381613c86565b036145d45761457385836145ab9798868852602397888d52200154612071565b93838c5288528d8b208b60028201868154811590816145cb575b50156145bf5750816145a695818555840155550161305e565b614b2d565b6145b86022918254612071565b905561439c565b94935050500155614b2d565b9050153861458d565b50929061448c94508092528b6145f48285602393848b528d20015461204e565b938491848c5288528d8b20015561460e602291825461204e565b9055614697565b509450925067ffffffffffffffff60401b9150614631906120f9565b602a54921b169067ffffffffffffffff60401b191617602a55565b9350505050565b9060018060a01b03821660005260236020526040600020818154915581811460001461467e57505050565b81111561468e5761219d916149a7565b61219d91614e7f565b919060018060a01b03928381166000948186526020916025835261ffff916040978389822054166148b6578360215460081c16846024541610614882576146dc615952565b60019283825260268652828a83205416886146f68261500a565b106147fc57508152602885528389822054166147655750505050506147607f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461474083614f9f565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b61476e866159a5565b926147788761500a565b935b81868216116147be575b505097516001600160a01b039095168552505050506020810191909152909150600080516020615bb4833981519152908060408101614760565b80856147dd86617fff8f95871c169485885260298c528720541661500a565b10156147f657906147ef839282615b04565b905061477a565b50614784565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506147609560289161483761552c565b835252205416614874575b61484b846154bd565b61485483614f9f565b516001600160a01b03928316815292909116602083015281906040820190565b61487d846151c0565b614842565b50505050506147607f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394614740836154bd565b979291506148c7859497969561596e565b976148d18561500a565b976148db8a6153b2565b8460245416905b858116828111614982578281101561496657508061490261490892614f8c565b90615902565b9b909b5b8b111561492b5761491d908c615a6b565b6149268b6153b2565b6148e2565b505093516001600160a01b039095168552505050506020810191909152909250600080516020615b9483398151915291508060408101614760565b849c919c526026835261497d85888620541661500a565b61490c565b505050505050506147609192939550600080516020615b948339815191529450614740565b6001600160a01b03808216600081815260256020526040808220549095949361ffff93918416614afb578360215460081c16846024541610614ac9576149eb615952565b600183526026602052868320541685614a038261500a565b10614a755750815260286020528490205416614a47576147607f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361474083614f9f565b614760600080516020615bb483398151915293614740614a66846159a5565b614a6f8561500a565b9061535d565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75969261476094614aa961552c565b81526028602052205416614ac05761484b846154bd565b61487d8461524b565b505050506147607f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93614740836154bd565b50505050614760600080516020615b9483398151915293614740614b1e8461596e565b614b278561500a565b9061586f565b909160018060a01b03928383169060009382855260206028815261ffff95604094878683205416614d55578082526025835287868320541615614d44578415614c9c5750614b7a8361596e565b97614b848461500a565b985b6001808a83161115614c8d5781617fff911c1690818452602685528a614bb0848a8720541661500a565b1115614bc557614bc09082615a6b565b614b86565b505091939597509193955b6027541615614c8557614be1615952565b600182526026835285818184205416926029614bfc8561500a565b95614c05615960565b600183525220541691614c178361500a565b11614c4c57505091516001600160a01b0390921682526020820152600080516020615b94833981519152908060408101614760565b915091506147607ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593614c7d61552c565b614842615059565b505050505050565b50509193959750919395614bd0565b829450614cd07f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799615675565b8651908152a160275416614ce45750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360298492614d12615960565b6001835252205416614d38614d268261500a565b92614d2f615059565b614740836154bd565b0390a138808080613557565b8551632a55ca5360e01b8152600490fd5b84969792939598919415614e44575061fffe9193614d72866159a5565b93614d7c8761500a565b9480966001958692831b168160275416925b614dd0575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020615bb48339815191529190508060408101614760565b818116838111614e3e578d9084811015614e2257505080614df3614df992614f8c565b90615465565b9890985b881015614e1d57614e0e9089615b04565b614e17886153b2565b86614d8e565b614d93565b865260298552852054909890614e3990871661500a565b614dfd565b50614d93565b94915050614e789194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506151c0565b51908152a1565b6001600160a01b0380821660008181526028602090815260408083205490969594919361ffff918216614f22578084526025855281888520541615614f11578615614ee05750614bd0614ed18661596e565b614eda8761500a565b90615820565b849193979650614cd07f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9396615700565b8751632a55ca5360e01b8152600490fd5b9693925050508315614f5f5750600080516020615bb4833981519152935061476090614740614f50846159a5565b614f598561500a565b906153c9565b9250614e787f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b949261524b565b90600161ffff8093160191821161205b57565b61219d90614a6f61ffff91614fb78360275416614f8c565b9260018060a01b0382169081600052602860205260406000209085169161ffff199183838254161790558260005260296020526040600020906001600160601b0360a01b82541617905560275416176027555b60ff602154166003811015611cdc5760010361503b576001600160a01b031660009081526023602052604090205490565b6001600160a01b031660009081526023602052604090206001015490565b61ffff80602754169081156151ae579060019061507881831115615a4e565b6000828152602960208181526040808420805486865282862080546001600160a01b0392831680895260288752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161511291908a61510383614095565b169060275416176027556159ca565b84825280865261512684848420541661500a565b95859860028160275416995b615144575b5050505050505050505050565b8181168a81116151a8578a81101561518d575080614df361516492614f8c565b9a909a5b89101561518857615179908b615b04565b6151828a6153b2565b87615132565b615137565b859b919b528383526151a387878720541661500a565b615168565b50615137565b6040516340d9b01160e01b8152600490fd5b6151c9906159a5565b61ffff908160275416916151dd8383615b04565b806151e784614095565b1661ffff1960275416176027556151fd836159ca565b81168092146132e757614f598261219d93600052602960205260018060a01b0390615237615231836040600020541661500a565b8561535d565b60005260296020526040600020541661500a565b615254906159a5565b61ffff908160275416916152688383615b04565b8061527284614095565b1661ffff196027541617602755615288836159ca565b8082168093146137d5579161fffe9160009180835260299060209382855260018060a01b03926040926152c86152c286868620541661500a565b8761535d565b82528086526152db84848420541661500a565b9585986001988997881b168160275416995b6152fe575050505050505050505050565b8181168a81116151a8578a811015615342575080614df361531e92614f8c565b9a909a5b89101561518857615333908b615b04565b61533c8a6153b2565b876152ed565b859b919b5283835261535887878720541661500a565b615322565b9190915b60018061ffff831611156153ac5781617fff911c16908361539760008481526029602052604060018060a01b039120541661500a565b10156153ac576153a79082615b04565b615361565b50509050565b60011b906201fffe61fffe83169216820361205b57565b90600161fffe83821b168160009161ffff908160275416925b6153f0575b50505050505050565b81811683811161545f5783811015615439575080614df361541092614f8c565b9690965b861015615434576154259087615b04565b61542e866153b2565b846153e2565b6153e7565b84526029602052604084205490969061545a906001600160a01b031661500a565b615414565b506153e7565b91909161ffff9283821660005260296020526154a860018060a01b03615491816040600020541661500a565b95831660005260296020526040600020541661500a565b908185106154b65750509190565b9350919050565b61219d90614eda61ffff916154d58360245416614f8c565b9260018060a01b0382169081600052602560205260406000209085169161ffff199183838254161790558260005260266020526040600020906001600160601b0360a01b825416179055602454161760245561500a565b61ffff80602454169081156151ae579060019061554b81831115615a4e565b6000828152602660208181526040808420805486865282862080546001600160a01b0392831680895260258752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a8952845416909117909255929587959394929392916155e591908a6155d683614095565b16906024541617602455615a0c565b8482528086526155f984848420541661500a565b95859860028160245416995b615616575050505050505050505050565b8181168a81116151a8578a81101561565a57508061490261563692614f8c565b9a909a5b8911156151885761564b908b615a6b565b6156548a6153b2565b87615605565b859b919b5283835261567087878720541661500a565b61563a565b61567e9061596e565b61ffff908160245416916156928383615a6b565b8061569c84614095565b1661ffff1960245416176024556156b283615a0c565b81168092146132e757614b278261219d93600052602660205260018060a01b03906156ec6156e6836040600020541661500a565b85615820565b60005260266020526040600020541661500a565b6157099061596e565b9061ffff9081602454169061571e8285615a6b565b8261572883614095565b1661ffff19602454161760245561573e82615a0c565b82841680921461581a5760009291929183835260269260209484865260018060a01b039160409161577c61577685858520541661500a565b8a615820565b815285875261578f83838320541661500a565b95615799896153b2565b978560245416985b8681168a811161580c578a8110156157f15750806149026157c192614f8c565b9a909a5b8911156157e4576157d6908b615a6b565b6157df8a6153b2565b6157a1565b5050505050505092505050565b849b919b5282825261580786868620541661500a565b6157c5565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156153ac5781617fff911c16908361585a60008481526026602052604060018060a01b039120541661500a565b11156153ac5761586a9082615a6b565b615824565b91615879836153b2565b600061ffff918260245416905b8381168281116158f857828110156158d25750806149026158a692614f8c565b9690965b8611156158c9576158bb9087615a6b565b6158c4866153b2565b615886565b50505050915050565b8352602660205260408320549096906158f3906001600160a01b031661500a565b6158aa565b5050505050915050565b919061ffff808416600052602660205261594360018060a01b0361592c816040600020541661500a565b92841660005260266020526040600020541661500a565b93848211156154b65750509190565b61ffff60245416156151ae57565b61ffff60275416156151ae57565b6001600160a01b031660009081526025602052604090205461ffff1690811561599357565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526028602052604090205461ffff1690811561599357565b61ffff16600090815260296020908152604080832080546001600160a01b031981169091556001600160a01b0316835260289091529020805461ffff19169055565b61ffff16600090815260266020908152604080832080546001600160a01b031981169091556001600160a01b0316835260259091529020805461ffff19169055565b15615a5557565b634e487b7160e01b600052600160045260246000fd5b615a9061ffff808060245416931693615a8684861115615a4e565b1691821115615a4e565b6000828152602660208181526040808420805486865282862080546001600160a01b0392831680895260258752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b615b1f61ffff808060275416931693615a8684861115615a4e565b6000828152602960208181526040808420805486865282862080546001600160a01b0392831680895260288752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda26469706673582212206fa7c426f6b653d524b8e179a4014abbbe2edc425d47335deb06c41e8b83ff6e64736f6c63430008130033","sourceMap":"1789:15887:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1789:15887:47;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;6186:14;1789:15887;;;;;;:::i;:::-;4658:73:59;;;:::i;:::-;6186:14:47;:::i;:::-;1789:15887;;;;;;;;;;;;;;;;-1:-1:-1;;1789:15887:47;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;:::i;:::-;4658:73:59;;:::i;:::-;1789:15887:47;;;;;;;;;;;;;;;;;;7922:56;1789:15887;;;;;;;;;;;;;:::i;:::-;;;;;7937:29;;1789:15887;;;;:::i;:::-;7922:56;;:::i;1789:15887::-;-1:-1:-1;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;4658:73:59;;;:::i;:::-;17111:43:47;1789:15887;17156:22;;;;;;1789:15887;17111:43;1789:15887;6065:40:62;;;;6061:102;;6210:22;;;;;;1789:15887:47;;17111:43;1789:15887;;;6178:30:62;234:9:37;;;6257:15:62;234:9:37;;1789:15887:47;234:9:37;;;;;;1789:15887:47;;;;;;;;234:9:37;1789:15887:47;;;;234:9:37;1789:15887:47;;;;234:9:37;1789:15887:47;;6296:27:62;234:9:37;;1789:15887:47;234:9:37;;1789:15887:47;;;;;;;;;6178:30:62;234:9:37;;;;;1789:15887:47;234:9:37;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;6473:9:62;;;6484:5;;;;;;1789:15887:47;;;;;6178:30:62;;6473:9;234::37;;;6518:21:62;234:9:37;;1789:15887:47;234:9:37;;-1:-1:-1;;;;;6543:13:62;;;;:::i;:::-;1789:15887:47;;;;;;6511:46:62;1789:15887:47;;;6511:46:62;:::i;:::-;1789:15887:47;6473:9:62;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;234:9:37;;;1789:15887:47;;;;;6061:102:62;1789:15887:47;;-1:-1:-1;;;6128:24:62;;1789:15887:47;;6128:24:62;17099:55:47;234:9:37;;;17203:20:47;234:9:37;;;;1789:15887:47;234:9:37;;1789:15887:47;;;;;;;;;;;;:::i;:::-;;;;;234:9:37;1789:15887:47;;;;;;;;;;;17099:55;1789:15887;;;;17099:55;;1789:15887;;234:9:37;;;;;;;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;234:9:37;1789:15887:47;;;;;;;;;;:::i;:::-;;;;;234:9:37;1789:15887:47;;;;;;;;234:9:37;-1:-1:-1;;;1789:15887:47;;17111:27;1789:15887;;;;;;;;;;;;;;;;;;;;;4658:73:59;;;:::i;:::-;13931:37:47;1789:15887;13970:22;;;;;;1789:15887;13931:37;1789:15887;6065:40:62;;;;6061:102;;6210:22;;;;;;1789:15887:47;;13931:37;1789:15887;;;6178:30:62;234:9:37;;;6257:15:62;234:9:37;;1789:15887:47;234:9:37;;;;;;1789:15887:47;;;;;;;;234:9:37;1789:15887:47;;;;234:9:37;1789:15887:47;;;;234:9:37;1789:15887:47;;6296:27:62;234:9:37;;1789:15887:47;234:9:37;;1789:15887:47;;;;;;;;;6178:30:62;234:9:37;;;;;1789:15887:47;234:9:37;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;6473:9:62;;;6484:5;;;;;;1789:15887:47;;;;;6178:30:62;;6473:9;234::37;;;6518:21:62;234:9:37;;1789:15887:47;234:9:37;;-1:-1:-1;;;;;6543:13:62;;;;:::i;:::-;1789:15887:47;;;;;;6511:46:62;1789:15887:47;;;6511:46:62;:::i;:::-;1789:15887:47;6473:9:62;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;234:9:37;;;1789:15887:47;;;;;13919:49;234:9:37;;;14017:21:47;234:9:37;;1789:15887:47;234:9:37;;1789:15887:47;;;;;;;;;;;;;:::i;:::-;;;;;234:9:37;1789:15887:47;;;;234:9:37;1789:15887:47;;;13919:49;;1789:15887;;;;;-1:-1:-1;;1789:15887:47;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;4658:73:59;;;:::i;:::-;1789:15887:47;12480:22;;1789:15887;;12480:46;12505:21;1789:15887;12480:46;;:::i;:::-;12476:113;;234:9:37;;;1789:15887:47;234:9:37;2810:21:58;234:9:37;;2810:40:58;1789:15887:47;234:9:37;;2810:40:58;1789:15887:47;12598:122;;1789:15887;;12878:22;;;;1789:15887;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;12878:22;1789:15887;;;;;;;;;:::i;:::-;;;;;;12878:22;2548:38:62;;12878:22:47;;;;;;:::i;:::-;1789:15887;12868:33;;1789:15887;;13035:20;1789:15887;;;4711:20:62;1789:15887:47;4699:32:62;;4695:94;;4803:21;;4799:81;;1789:15887:47;7262:27:62;;;;:::i;:::-;1789:15887:47;10884:32:33;;;;:::i;:::-;5066:3:62;5062:68;;1789:15887:47;;;;;;;:::i;:::-;;;;5165:183:62;;;1789:15887:47;5165:183:62;;;1789:15887:47;;;;;5165:183:62;;;1789:15887:47;;;5390:15:62;1789:15887:47;5165:183:62;;1789:15887:47;;;;;5165:183:62;;1789:15887:47;;;;234:9:37;;;;1789:15887:47;;;;;4711:20:62;;1789:15887:47;;;;;;2810:40:58;1789:15887:47;;;;;;;;234:9:37;1789:15887:47;;;;234:9:37;;;;;;;1789:15887:47;;;234:9:37;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;234:9:37;;2810:21:58;234:9:37;;1789:15887:47;234:9:37;;1789:15887:47;;234:9:37;;;;1789:15887:47;234:9:37;-1:-1:-1;;;;;234:9:37;;;;;;;;;;;;;;;1789:15887:47;;;;234:9:37;;;;;;;;;;;;:::i;:::-;1789:15887:47;;;;;;;234:9:37;;;;;;;;1789:15887:47;;;;;;;;;;;2810:40:58;1789:15887:47;;;;;;;;;234:9:37;;1789:15887:47;234:9:37;;;;;;;1789:15887:47;;234:9:37;1789:15887:47;;-1:-1:-1;;;;;1789:15887:47;234:9:37;;;;;;;;;;;;;-1:-1:-1;;;1789:15887:47;;;;;;;;;;;;;-1:-1:-1;;;1789:15887:47;;;;;;;;5062:68:62;1789:15887:47;;-1:-1:-1;;;5092:27:62;;1789:15887:47;;5092:27:62;4799:81;1789:15887:47;;-1:-1:-1;;;4847:22:62;;1789:15887:47;;4847:22:62;4695:94;1789:15887:47;;-1:-1:-1;;;4754:24:62;;1789:15887:47;;4754:24:62;12598:122:47;1789:15887;;-1:-1:-1;;;12684:25:47;;1789:15887;;12684:25;12476:113;1789:15887;;-1:-1:-1;;;12554:24:47;;1789:15887;;12554:24;1789:15887;;;;;;;;;;;;:::i;:::-;;;;6910:20:62;1789:15887:47;6901:29:62;;6897:91;;234:9:37;;;;;2090:21:58;234:9:37;;2137:22:58;1789:15887:47;234:9:37;;2137:22:58;1789:15887:47;2137:27:58;11685:67:47;;234:9:37;;;1810:15:62;234:9:37;;1789:15887:47;234:9:37;;1789:15887:47;1952:38:62;1789:15887:47;;;1952:38:62;:::i;:::-;1789:15887:47;;;;:::i;:::-;2000:89:62;;234:9:37;;;2177:27:62;234:9:37;;1789:15887:47;234:9:37;;;-1:-1:-1;;;;;1789:15887:47;;-1:-1:-1;234:9:37;;;1789:15887:47;4352:12:33;;;-1:-1:-1;234:9:37;;;;1789:15887:47;2173:119:62;;1789:15887:47;;;-1:-1:-1;;;;;1789:15887:47;;;2548:38:62;;;1789:15887:47;;;;;;;;;2548:38:62;1789:15887:47;;;;2548:38:62;;;;;;;;;;;;;:::i;:::-;1789:15887:47;2538:49:62;;1789:15887:47;;;;;;;;;;;;;;:::i;:::-;;2515:74:62;;1789:15887:47;2662:13:62;;;;;1789:15887:47;2145:27:30;2187:13;;2182:116;1789:15887:47;;;2182:116:30;1379:33;;;2708:77:62;;234:9:37;;;2177:27:62;234:9:37;;8399:50:33;234:9:37;1789:15887:47;234:9:37;;8399:50:33;:::i;:::-;2958:3:62;2954:61;;234:9:37;;;3024:21:62;234:9:37;;1789:15887:47;234:9:37;;1789:15887:47;;;;;;;;;;;234:9:37;-1:-1:-1;;;;;234:9:37;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;2548:38:62;234:9:37;;;;;;;;;;;;;-1:-1:-1;;;;234:9:37;;;;;;;;;;;;;;3095:28:62;:18;;;1789:15887:47;;;3095:28:62;:::i;:::-;1789:15887:47;;;;2137:22:58;3160:14:62;;1789:15887:47;3138:36:62;;;3134:871;;1789:15887:47;;;3134:871:62;1789:15887:47;3195:12:62;;1789:15887:47;;3195:12:62;;1789:15887:47;;;;;-1:-1:-1;;;234:9:37;;;;11184:35:33;;;:::i;:::-;3404:3:62;3400:87;;3509:212;;1789:15887:47;;11525:21;1789:15887;;;;;;;;;3509:212:62;;;;;:::i;:::-;;;;3190:805;3134:871;;;;;1789:15887:47;;;3400:87:62;1789:15887:47;;-1:-1:-1;;;3438:30:62;;1789:15887:47;;3438:30:62;3190:805;1789:15887:47;;;3765:215:62;1789:15887:47;;3765:215:62;1789:15887:47;;;11525:21;1789:15887;;;;;;3765:215:62;;;;;:::i;:::-;;;;3190:805;;234:9:37;;;;-1:-1:-1;234:9:37;;;;;;;;;;;;1789:15887:47;;;;;;234:9:37;;;;;;;;;;;;-1:-1:-1;234:9:37;;;;;;;;;;;;;;;;1789:15887:47;;234:9:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1789:15887:47;;;;;;;;2954:61:62;1789:15887:47;;-1:-1:-1;;;2984:20:62;;1789:15887:47;;2984:20:62;2708:77;1789:15887:47;;;;2741:33:62;;;;;;1789:15887:47;2741:33:62;;1789:15887:47;2741:33:62;2220:3:30;1789:15887:47;;;;2202:16:30;;;;;2278:8;;;;:::i;:::-;1789:15887:47;;9511:5:30;;;;;;9711:119;;;;1789:15887:47;9711:119:30;;9511:51;2220:3;-1:-1:-1;;1789:15887:47;;;;;;;;2187:13:30;;1789:15887:47;-1:-1:-1;;;1789:15887:47;;;;;;;;9511:51:30;9711:119;;;;;1789:15887:47;9711:119:30;;9511:51;;2202:16;;;;2173:119:62;1789:15887:47;;-1:-1:-1;;;2264:17:62;;1789:15887:47;;2264:17:62;2000:89;1789:15887:47;;-1:-1:-1;;;2060:18:62;;1789:15887:47;;2060:18:62;11685:67:47;1789:15887;;-1:-1:-1;;;11719:22:47;;1789:15887;;11719:22;1789:15887;;;;;-1:-1:-1;;1789:15887:47;;;;;-1:-1:-1;1789:15887:47;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;2493:19;;;;:::i;:::-;1789:15887;:::i;:::-;2493:28;;;1789:15887;;;;;;;;;;2493:30;;;1789:15887;2493:30;;1789:15887;;;;;;:::i;:::-;2493:30;;;;;;;;;;;;;;1789:15887;-1:-1:-1;;;;;;1789:15887:47;2527:10;1789:15887;;;2493:44;2489:107;;2650:32;2527:10;2650:32;:::i;:::-;2696:13;;;2692:67;;1789:15887;;;;;;;;2773:19;1789:15887;2773:19;;;:::i;1789:15887::-;;;;;;;;;;2773:37;;1789:15887;;2773:37;;1789:15887;;;;;;:::i;:::-;;;;;;;;;;;;;2800:9;1789:15887;2800:9;;1789:15887;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2773:37;;;;;;;;;;;;;;;;;;;;1789:15887;2772:38;;2768:91;;1789:15887;2926:13;1789:15887;;;;;;;;;;;;2926:30;2922:85;;1789:15887;;3021:26;1789:15887;;;;3017:411;;1789:15887;;3017:411;1789:15887;4622:69:26;1789:15887:47;;;;3208:168;;;4989:165;;;;3208:168;;3306:22;1789:15887;;3208:168;;1789:15887;;;;;;;;;;;;3208:168;;;;;:::i;:::-;4574:31:26;2527:10:47;;;4574:31:26;;1789:15887:47;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;2527:10;4622:69:26;:::i;:::-;;3017:411:47;;;1789:15887;;;;;-1:-1:-1;1789:15887:47;;2922:85;1789:15887;;-1:-1:-1;;;2979:17:47;;1789:15887;;2979:17;1789:15887;-1:-1:-1;;;1789:15887:47;;;;;;;;2768:91;1789:15887;;-1:-1:-1;;;2833:15:47;;1789:15887;;2833:15;2773:37;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1789:15887;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1789:15887:47;;;;;;;;;;;;;;;2692:67;1789:15887;;-1:-1:-1;;;2732:16:47;;1789:15887;;2732:16;2489:107;1789:15887;;-1:-1:-1;;;2560:25:47;;1789:15887;;2560:25;2493:30;;;;;;;;;;;;;;;;;:::i;:::-;;;1789:15887;;;;;;;:::i;:::-;2493:30;;;;1789:15887;;;;2493:30;;;;;;1789:15887;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1789:15887:47;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;4658:73:59;;:::i;:::-;15868:22:47;1789:15887;;;;;;:::i;:::-;15868:22;:::i;:::-;16127:44;16147:24;1789:15887;;16127:17;;1789:15887;16127:44;:::i;:::-;:49;;;:86;;;1789:15887;16123:143;;1789:15887;16127:17;;1789:15887;234:9:37;;3125:20:58;1789:15887:47;234:9:37;3125:39:58;1789:15887:47;234:9:37;;3125:39:58;1789:15887:47;16276:111;;1789:15887;;;16546:17;;;1789:15887;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;16127:17;;1789:15887;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16546:17;;;;;;;;;2548:38:62;;16546:17:47;;;;;;:::i;:::-;1789:15887;;;16546:17;;16536:28;1789:15887;16698:20;1789:15887;;4711:20:62;1789:15887:47;;16127:17;;1789:15887;4699:32:62;4695:94;;1789:15887:47;;4803:21:62;;4799:81;;7293:3;7262:27;;;;:::i;:::-;1789:15887:47;16127:17;10884:32:33;1789:15887:47;16127:17;;1789:15887;10884:32:33;:::i;:::-;5066:3:62;5062:68;;1789:15887:47;;;;;;;;;:::i;:::-;;;;;5165:183:62;;1789:15887:47;;;;;5165:183:62;;1789:15887:47;;;;5165:183:62;;1789:15887:47;;;;5165:183:62;;1789:15887:47;;;;;16127:17;;1789:15887;234:9:37;;5390:15:62;1789:15887:47;234:9:37;1789:15887:47;234:9:37;;1789:15887:47;;;;;;;;;;;;;3125:39:58;1789:15887:47;;;;;;;;234:9:37;1789:15887:47;;;;234:9:37;;;;;;;1789:15887:47;;;234:9:37;;;;;1789:15887:47;;;;;;:::i;:::-;;3729:17:58;;1789:15887:47;;;234:9:37;;3125:20:58;1789:15887:47;234:9:37;1789:15887:47;234:9:37;;3770:14:58;;;-1:-1:-1;;;;;234:9:37;;1789:15887:47;-1:-1:-1;;;;;234:9:37;;;;;;;1789:15887:47;234:9:37;;;;;1789:15887:47;;;;234:9:37;-1:-1:-1;;;;;234:9:37;;;;1789:15887:47;234:9:37;;;;;:::i;:::-;1789:15887:47;;;;;;;234:9:37;;;;;;;;1789:15887:47;;;;;;;3125:39:58;3794:13;;1789:15887:47;3858:10:58;;;;1789:15887:47;3890:9:58;1789:15887:47;3890:9:58;4114:6;;3885:325;3901:13;;;;;;1789:15887:47;;;3890:9:58;4126:13;:10;;;:13;:::i;:::-;;1789:15887:47;;-1:-1:-1;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3890:9:58;;1789:15887:47;-1:-1:-1;;;1789:15887:47;;;;;;;;;-1:-1:-1;;;1789:15887:47;;;;;;;;234:9:37;1789:15887:47;;-1:-1:-1;;;;;1789:15887:47;234:9:37;;;;1789:15887:47;234:9:37;;;;;;;;;1789:15887:47;2548:38:62;;;;;;;;1789:15887:47;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;1789:15887:47;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;;1789:15887:47;;;;;:::i;:::-;;;;;;;;234:9:37;1789:15887:47;;;;;;:::i;:::-;;;;-1:-1:-1;;1789:15887:47;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;16276:111;1789:15887;;-1:-1:-1;;;16356:20:47;;1789:15887;;16356:20;16123:143;1789:15887;;-1:-1:-1;;;16236:19:47;;1789:15887;;16236:19;16127:86;:17;1789:15887;16127:17;;1789:15887;16180:12;:33;;16127:86;;1789:15887;;;;;;;-1:-1:-1;;1789:15887:47;;;;;;;;;:::i;:::-;;;;;;;;;;4658:73:59;;:::i;:::-;1789:15887:47;;;;;;;:::i;:::-;;;;;;5238:20:58;1789:15887:47;;;;5272:28:58;;;;5268:98;;1789:15887:47;234:9:37;;;1789:15887:47;234:9:37;;1789:15887:47;234:9:37;;1789:15887:47;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;234:9:37;;;1789:15887:47;234:9:37;;;1789:15887:47;;;;;;;;;5238:20:58;1789:15887:47;;;5875:28;;1789:15887;;;;;;;;;;;;;;;;;5268:98:58;1789:15887:47;;-1:-1:-1;;;5323:32:58;;1789:15887:47;;5323:32:58;1789:15887:47;;;;;;;;;;;;;4658:73:59;;:::i;:::-;1789:15887:47;4723:1:59;;:::i;:::-;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;:::i;:::-;;;;6910:20:62;1789:15887:47;6901:29:62;;6897:91;;234:9:37;;;;;2471:20:58;234:9:37;;2517:17:58;1789:15887:47;234:9:37;;2517:17:58;1789:15887:47;2517:22:58;15012:62:47;;234:9:37;;;1810:15:62;234:9:37;;1789:15887:47;234:9:37;;1789:15887:47;1952:38:62;1789:15887:47;;;1952:38:62;:::i;:::-;1789:15887:47;;;;:::i;:::-;2000:89:62;;234:9:37;;;2177:27:62;234:9:37;;1789:15887:47;234:9:37;;;-1:-1:-1;;;;;1789:15887:47;;-1:-1:-1;234:9:37;;;1789:15887:47;4352:12:33;;;-1:-1:-1;234:9:37;;;;1789:15887:47;2173:119:62;;1789:15887:47;;;-1:-1:-1;;;;;1789:15887:47;;;2548:38:62;;;1789:15887:47;;;;;;;;;2548:38:62;1789:15887:47;;;;2548:38:62;;;;;;;;;;;;;:::i;:::-;1789:15887:47;2538:49:62;;1789:15887:47;;;;;;;;;;;;;;:::i;:::-;;2515:74:62;;1789:15887:47;2662:13:62;;;;;1789:15887:47;2145:27:30;2187:13;;2182:116;1789:15887:47;;;2182:116:30;1379:33;;;2708:77:62;;234:9:37;;;2177:27:62;234:9:37;;8399:50:33;234:9:37;1789:15887:47;234:9:37;;8399:50:33;:::i;:::-;2958:3:62;2954:61;;234:9:37;;;3024:21:62;234:9:37;;1789:15887:47;234:9:37;;1789:15887:47;;;;;;;;;;;234:9:37;-1:-1:-1;;;;;234:9:37;;;;;;;;;;;;;;:::i;:::-;;;2548:38:62;234:9:37;;;;;;;;;;;;;-1:-1:-1;;;;234:9:37;;;;;;;;;;;;;;3095:28:62;:18;;;1789:15887:47;;;3095:28:62;:::i;:::-;1789:15887:47;;;;2517:17:58;3160:14:62;;1789:15887:47;3138:36:62;;;3134:871;;1789:15887:47;;;3134:871:62;1789:15887:47;3195:12:62;;1789:15887:47;;3195:12:62;;1789:15887:47;;;;;-1:-1:-1;;;234:9:37;;;;11184:35:33;;;:::i;:::-;3404:3:62;3400:87;;3509:212;;1789:15887:47;;14848:27;1789:15887;;;;;;;;;3509:212:62;;;;;:::i;3190:805::-;1789:15887:47;;;3765:215:62;1789:15887:47;;3765:215:62;1789:15887:47;;;14848:27;1789:15887;;;;;;3765:215:62;;;;;:::i;234:9:37:-;;;;-1:-1:-1;234:9:37;;;;;;;;;;;;1789:15887:47;;;;;;234:9:37;;;;;;;;;;;;-1:-1:-1;234:9:37;;;;;;;;;;;;;;;;1789:15887:47;;234:9:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2220:3:30;1789:15887:47;;;;2202:16:30;;;;;2278:8;;;;:::i;:::-;1789:15887:47;;9511:5:30;;;;;;9711:119;;;;1789:15887:47;9711:119:30;;9511:51;2220:3;-1:-1:-1;;1789:15887:47;;;;;;;;2187:13:30;;9511:51;9711:119;;;;;1789:15887:47;9711:119:30;;9511:51;;2202:16;;;;15012:62:47;1789:15887;;-1:-1:-1;;;15046:17:47;;1789:15887;;15046:17;1789:15887;;;;;-1:-1:-1;;1789:15887:47;;;;;-1:-1:-1;1789:15887:47;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;3722:14;;;;:::i;1789:15887::-;;;;;;;;;;3722:25;;;1789:15887;3722:25;;1789:15887;;;;;;:::i;:::-;3722:25;:23;;:25;;;;;;;;;;;1789:15887;-1:-1:-1;3751:10:47;-1:-1:-1;;;;;1789:15887:47;;;3722:39;3718:97;;3825:22;1789:15887;;;;:::i;3825:22::-;3903:32;3751:10;3903:32;:::i;:::-;3949:13;;;3945:67;;1789:15887;;4094:13;;1789:15887;;;;;;;;;;;;4094:30;;;4090:85;;4185:18;4264:10;4213:16;4264:10;;;;;;;:::i;:::-;4296:9;;;-1:-1:-1;4307:18:47;;;;;;4537:21;;;;;;;:::i;:::-;4573:17;;;;1789:15887;;;4573:31;;;;4569:96;;4752:37;4675:32;1789:15887;4675:32;1789:15887;4675:32;;4778:10;4675:32;1789:15887;4675:32;;:::i;:::-;1789:15887;;4778:10;:::i;:::-;4767:9;;;;1789:15887;:::i;:::-;;;;;:::i;4752:37::-;1789:15887;4804:24;1789:15887;;;;4800:413;;1789:15887;;;4800:413;1789:15887;;4989:165;;;;;;;;;5087:12;1789:15887;4989:165;;1789:15887;;4264:10;1789:15887;;;;;;;;;4989:165;;;;;:::i;:::-;4419:21:26;;:29;4415:108;;4622:69;4574:31;;;;;;3751:10:47;;4574:31:26;;1789:15887:47;;;;;;;;:::i;4415:108:26:-;1789:15887:47;;-1:-1:-1;;;4471:41:26;;4427:4;1789:15887:47;4471:41:26;;1789:15887:47;;;4471:41:26;4569:96:47;1789:15887;;-1:-1:-1;;;4627:27:47;;1789:15887;;4627:27;4296:9;4357:10;4398:37;4343:41;4357:10;;;1789:15887;4357:21;:13;:10;;;;;;:::i;:::-;:13;;:::i;:::-;:21;;:::i;:::-;:27;1789:15887;4343:41;;:::i;:::-;4410:10;:25;:21;:13;:10;;;;;:::i;4398:37::-;1789:15887;;;4296:9;;;1789:15887;-1:-1:-1;;;1789:15887:47;;;;;;;;3718:97;1789:15887;;-1:-1:-1;;;;;;3784:20:47;;1789:15887;;3784:20;3722:25;;;;;;;;;;;;;;;;:::i;:::-;;;1789:15887;;;;;;;:::i;:::-;3722:25;;;;;;;;1789:15887;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;:::o;:::-;;2548:38:62;;;1789:15887:47;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;:::o;:::-;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1789:15887:47;;;;2548:38:62;1789:15887:47;-1:-1:-1;;1789:15887:47;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1789:15887:47;;;;;;:::o;:::-;-1:-1:-1;1789:15887:47;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;-1:-1:-1;;1789:15887:47;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1789:15887:47;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1789:15887:47;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;8701:13:47;1789:15887;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1789:15887:47;;;-1:-1:-1;1789:15887:47;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1789:15887:47;;;:::o;:::-;;;;;;;;;;;;6737:692:26;;6952:471;;;1789:15887:47;;6983:22:26;6979:339;;7331:17;;:::o;6979:339::-;7207:18;;:23;7203:101;;7331:17;;:::o;7203:101::-;1789:15887:47;;-1:-1:-1;;;7261:24:26;;-1:-1:-1;;;;;1789:15887:47;;;7261:24:26;;;1789:15887:47;;;7261:24:26;6952:471;-1:-1:-1;1789:15887:47;;8828:21:26;:17;;9000:142;;;;;;8824:411;1789:15887:47;;-1:-1:-1;;;8628:17:26;;;;;1789:15887:47;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;1789:15887:47;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1789:15887:47;;-1:-1:-1;1789:15887:47;;-1:-1:-1;1789:15887:47;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;1789:15887:47;;;;;-1:-1:-1;1789:15887:47;;;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1789:15887:47;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;-1:-1:-1;1789:15887:47;;;;-1:-1:-1;1789:15887:47;;-1:-1:-1;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1789:15887:47;;;;;;;234:9:37;;;1789:15887:47;234:9:37;;1789:15887:47;234:9:37;;;;1789:15887:47;;;;;;;;;;;;;;;;6300:1485;6479:27;1789:15887;-1:-1:-1;;;;;1789:15887:47;;;-1:-1:-1;;1789:15887:47;;;;;;6732:23;;;:::i;:::-;1789:15887;;;;;;;;;6731:81;6641:264;;6978:19;;;:::i;:::-;1789:15887;;;5816:27:64;1789:15887:47;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2548:38:62;;1789:15887:47;;;:::i;:::-;;;;;;;;;;6533:1;5909:12:64;1789:15887:47;;;5923:9:64;;;;;1789:15887:47;;;;598:23:71;1789:15887:47;;;;;;;;6533:1;;-1:-1:-1;;;;;1789:15887:47;5950:60:64;5960:5;1789:15887:47;5960:5:64;1789:15887:47;5960:5:64;:::i;:::-;1789:15887:47;5950:60:64;;:::i;:::-;1789:15887:47;;;5909:12:64;;5923:9;;;;;;;;;;;1789:15887:47;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;7247:9;;;1789:15887;7258:11;;;;;;1789:15887;;7671:70;1789:15887;;;;;;;;;:::i;:::-;;;;;7671:70;;;1789:15887;7671:70;:::i;7247:9::-;6533:1;;-1:-1:-1;;;;;7302:13:47;1789:15887;7302:13;;:::i;:::-;1789:15887;;;;;7358:41;1789:15887;;;5816:27:64;1789:15887:47;;;7446:24;;;1789:15887;;;;;;;;:::i;:::-;;;7427:82;;;1789:15887;7494:13;1789:15887;:::i;:::-;7427:82;;;1789:15887;7419:90;;;;:::i;:::-;;;;;;:::i;:::-;;1789:15887;7247:9;;1789:15887;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6641:264;6886:8;;;1789:15887;6886:8;:::o;10304:314::-;1789:15887;;10460:9;-1:-1:-1;10471:19:47;;;;;;10304:314;;;;:::o;10460:9::-;10529:12;;;1789:15887;10529:12;;;:::i;:::-;;;;:::i;:::-;1789:15887;10460:9;;234::37;;;;;;;;-1:-1:-1;;234:9:37;;;;:::o;:::-;;;;;;;;;;;;;;;1789:15887:47;234:9:37;;1789:15887:47;;;;;;;;;;;234:9:37;;;:::i;:::-;2548:38:62;1789:15887:47;-1:-1:-1;;1789:15887:47;234:9:37;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;1789:15887:47;234:9:37;;1789:15887:47;234:9:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;1789:15887:47;-1:-1:-1;;;;;234:9:37;;;;1789:15887:47;234:9:37;;;1789:15887:47;;;;234:9:37;;;;1789:15887:47;234:9:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;1789:15887:47;234:9:37;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;1789:15887:47;;;;;;;:::i;:::-;234:9:37;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;234:9:37;;;;;;;1789:15887:47;;;234:9:37;;;;;;;:::o;:::-;;1789:15887:47;;;;;;234:9:37;;;;;:::i;:::-;;-1:-1:-1;;;234:9:37;;;;1789:15887:47;;234:9:37;;;;;;;;;;;;:::o;:::-;;1789:15887:47;-1:-1:-1;1789:15887:47;;-1:-1:-1;1789:15887:47;234:9:37;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;1789:15887:47;-1:-1:-1;1789:15887:47;;-1:-1:-1;1789:15887:47;234:9:37;1789:15887:47;234:9:37;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;234:9:37;;;;;;1789:15887:47;;;;;;;;;-1:-1:-1;;;;;234:9:37;;;1789:15887:47;-1:-1:-1;;;;;234:9:37;;;;;;;;;;;;;;;;;;1789:15887:47;;;234:9:37;;;;;;;;;;;;:::i;:::-;1789:15887:47;-1:-1:-1;1789:15887:47;;;;;;234:9:37;;;;;;;;;;;;;;;;;;;1789:15887:47;234:9:37;1789:15887:47;234:9:37;;1789:15887:47;234:9:37;;;;;;;;;;;;;;;;;;;1789:15887:47;;;234:9:37;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;234:9:37;;;;;;;;;;;;;;;;;;;;1789:15887:47;;;;234:9:37;;;;1789:15887:47;234:9:37;;;;;;;;;;;;;1789:15887:47;;;;234:9:37;;;;;;;;;;;;:::i;:::-;1789:15887:47;;;;;;;234:9:37;;;;;;;;;;;;;;;;;;;1789:15887:47;234:9:37;1789:15887:47;234:9:37;;1789:15887:47;234:9:37;;;;;;;;;;;;;1789:15887:47;;;234:9:37;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;234:9:37;;;;;;;;;;;;;;;;1789:15887:47;234:9:37;;;1789:15887:47;234:9:37;;;;;;;;1789:15887:47;234:9:37;;;;;;;1789:15887:47;;234:9:37;;;-1:-1:-1;;;;;234:9:37;;;;;;;;;;1789:15887:47;234:9:37;;1789:15887:47;;;234:9:37;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1789:15887:47;;;234:9:37;;;;;;;;;;1789:15887:47;234:9:37;;;1789:15887:47;234:9:37;;1789:15887:47;;234:9:37;;;;;;;;;1789:15887:47;;;234:9:37;;;;;;;;;-1:-1:-1;234:9:37;;;;;2548:38:62;;;;;;;234:9:37;;1789:15887:47;;;;;;234:9:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1789:15887:47;234:9:37;1789:15887:47;;;234:9:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1789:15887:47;;;234:9:37;1789:15887:47;;;;234:9:37;;;;-1:-1:-1;234:9:37;;;;;1789:15887:47;;;;;;2548:38:62;;-1:-1:-1;1789:15887:47;2548:38:62;-1:-1:-1;;234:9:37;;1789:15887:47;;234:9:37;;;;;;;;;-1:-1:-1;234:9:37;;;;;;;;;;;;;;;;-1:-1:-1;;234:9:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1789:15887:47;;;234:9:37;1789:15887:47;;;;234:9:37;1789:15887:47;;-1:-1:-1;;;;;1789:15887:47;234:9:37;;;;;;;;;;;;;;-1:-1:-1;;;1789:15887:47;;;234:9:37;1789:15887:47;;;;234:9:37;;;;-1:-1:-1;234:9:37;;;;;2548:38:62;;;;;;;;234:9:37;;1789:15887:47;;;;;;234:9:37;;;;;;;;;;;;-1:-1:-1;234:9:37;;;;;;;;;;;;;;;;-1:-1:-1;;234:9:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1789:15887:47;;-1:-1:-1;;;;;1789:15887:47;234:9:37;;;;;;;;;;;;;8261:1702:47;;8356:19;:16;;;;:19;;:28;:36;1789:15887;;;;;;;;;8356:38;;;;;;;1789:15887;8356:38;;;;;;1789:15887;;;;;;:::i;:::-;8356:38;;;;;;;;;;-1:-1:-1;8356:38:47;;;8261:1702;8352:102;;;8467:16;;:23;;;1789:15887;-1:-1:-1;;;;;;1789:15887:47;;;;;;8467:38;8463:178;;8261:1702;8674:16;;;;1789:15887;234:9:37;1789:15887:47;;;;;;8674:41;;;;;;234:9:37;;;;;;:::i;:::-;1789:15887:47;;;234:9:37;1789:15887:47;;234:9:37;;;;;;1789:15887:47;234:9:37;;;;:::i;:::-;8674:41:47;:26;;:41;;;;;;;;;;-1:-1:-1;8674:41:47;;;8261:1702;-1:-1:-1;8798:16:47;;:19;;;:28;1789:15887;;-1:-1:-1;;;8798:50:47;;;;;1789:15887;;;;8798:16;1789:15887;;;;;;;;234:9:37;1789:15887:47;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;8798:50;;;;;;;;;;-1:-1:-1;8798:50:47;;;8261:1702;8794:977;;;1789:15887;;;;;234:9:37;1789:15887:47;;;;;2348:20:55;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;8467:23;1789:15887;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;8467:23;1789:15887;;;;;;;234:9:37;1789:15887:47;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2348:20:55;2548:38:62;;2348:20:55;;;;;;:::i;:::-;1789:15887:47;2338:31:55;;-1:-1:-1;234:9:37;;-1:-1:-1;234:9:37;;:::i;8794:977:47:-;1789:15887;;;;;;;;;:::i;:::-;8881:19;8868:32;;8864:539;;8794:977;1789:15887;;;;;;:::i;:::-;9421:31;9417:236;;8794:977;-1:-1:-1;1789:15887:47;;;;;;;;;;;9722:18;;;;234:9:37;;;;;;1789:15887:47;234:9:37;;;;;;;;:::i;:::-;;;;1789:15887:47;;234:9:37;;;1789:15887:47;9722:18;:16;;:18;;;;;;;;;;9754:7;;:::o;9722:18::-;;;-1:-1:-1;9722:18:47;;;;;;:::i;:::-;;;234:9:37;;;;;;;;;-1:-1:-1;;;;;234:9:37;;;;;;;;:::i;:::-;;9754:7:47:o;9722:18::-;1789:15887;;-1:-1:-1;1789:15887:47;;;;;9417:236;234:9:37;9476:21:47;234:9:37;-1:-1:-1;;;;;234:9:37;;;;1789:15887:47;9501:16;:22;:16;;:22;234:9:37;1789:15887:47;9476:47;;9472:123;;9612:26;;;-1:-1:-1;;;9612:26:47;-1:-1:-1;9612:26:47;;:::i;:::-;234:9:37;;;;-1:-1:-1;;;234:9:37;;;9476:21:47;234:9:37;9417:236:47;;;;9472:123;1789:15887;;-1:-1:-1;;;9554:22:47;;1789:15887;;9554:22;8864:539;1789:15887;;;;;;;8925:19;;;;;;;;;1789:15887;;;;;;;;;:::i;:::-;8925:19;;;;;;;;;;;;;;-1:-1:-1;8925:19:47;;;8864:539;8924:20;;8920:469;;8864:539;;;;;8920:469;9011:31;;;;;:::i;:::-;9068:11;;9064:94;;1789:15887;9183:27;1789:15887;;-1:-1:-1;;;;;1789:15887:47;;;;;9214:16;:22;:16;;:22;234:9:37;1789:15887:47;9183:53;;9179:137;;9338:32;-1:-1:-1;;;9338:32:47;;;;;;:::i;:::-;234:9:37;;;;-1:-1:-1;;;234:9:37;;;;;8920:469:47;;;9179:137;1789:15887;;-1:-1:-1;;;9271:22:47;;1789:15887;;9271:22;9064:94;1789:15887;;-1:-1:-1;;;9114:21:47;;1789:15887;;9114:21;8925:19;;;;;;;;;;;;;;:::i;:::-;;;;;1789:15887;;;-1:-1:-1;1789:15887:47;;;;;8798:50;;;;;;;;;;;;;;:::i;:::-;;;;;1789:15887;;;-1:-1:-1;1789:15887:47;;;;;8674:41;;;;;;;;;;;;;;;;:::i;:::-;;;234:9:37;;;;;;;;;;;;-1:-1:-1;8674:41:47;;;1789:15887;8674:41;;;;;;;8463:178;8525:22;1789:15887;8550:21;-1:-1:-1;8521:110:47;;8463:178;;;;8521:110;1789:15887;;-1:-1:-1;;;8598:18:47;;1789:15887;;8598:18;8352:102;1789:15887;;-1:-1:-1;;;8417:26:47;;1789:15887;;8417:26;8356:38;;;;;;;;;;;;;;:::i;:::-;;;;;1789:15887;;;-1:-1:-1;1789:15887:47;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;1789:15887:47;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1789:15887:47;;;;;;2548:38:62;1789:15887:47;-1:-1:-1;;1789:15887:47;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;234:9:37;;1789:15887:47;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;234:9:37;;;;1789:15887:47;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;17390:284::-;17474:10;;;;1789:15887;-1:-1:-1;;;;;17494:25:47;1789:15887;;-1:-1:-1;17470:108:47;;17591:10;1789:15887;17591:22;17587:81;;17390:284::o;17587:81::-;17474:10;1789:15887;-1:-1:-1;;;17636:21:47;;;;;17470:108;17474:10;1789:15887;-1:-1:-1;;;17542:25:47;;;;;1789:15887;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;234:9:37;;1789:15887:47;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1789:15887:47;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;234:9:37;;;;;1789:15887:47;;;234:9:37;;;;;;;1789:15887:47;;:::o;:::-;;;;-1:-1:-1;1789:15887:47;;;;;;;;;;;;;;;;;;-1:-1:-1;1789:15887:47;-1:-1:-1;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;234:9:37;;;;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;5872:19:58;1789:15887:47;;;;;;;;5872:19:58;-1:-1:-1;1789:15887:47;;;;;-1:-1:-1;1789:15887:47;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;234:9:37;-1:-1:-1;;;;;234:9:37;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;234:9:37;;;;;;;1789:15887:47;;;234:9:37;;;;;;;;;1789:15887:47:o;234:9:37:-;;;;-1:-1:-1;234:9:37;;;;;2548:38:62;;;;;234:9:37;;1789:15887:47;-1:-1:-1;1789:15887:47;;-1:-1:-1;1789:15887:47;234:9:37;-1:-1:-1;234:9:37;;;;;;;;;;;;;;;;;;;;;;1789:15887:47:o;234:9:37:-;;;1789:15887:47;;234:9:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;234:9:37;;;;;;1789:15887:47;;;;234:9:37;;;;;;;;5615:1976:58;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5695:29:58;1789:15887:47;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;5695:29:58;;;1789:15887:47;5872:39:58;1789:15887:47;;5872:44:58;;5868:621;;5615:1976;5872:19;;;;1789:15887:47;;;;-1:-1:-1;;;1789:15887:47;;;;;;6499:16:58;1789:15887:47;;6499:16:58;1789:15887:47;;;;;;5615:1976:58;-1:-1:-1;6499:16:58;1789:15887:47;;;;;;;;;;;;;;;;;;;5872:39:58;1789:15887:47;;234:9:37;-1:-1:-1;;;;;234:9:37;;;1789:15887:47;234:9:37;;;1789:15887:47;234:9:37;6570:21:58;;1789:15887:47;;;;6834:9:58;;6845:15;;;;;;234:9:37;;;;1789:15887:47;234:9:37;5872:39:58;234:9:37;;;5872:39:58;234:9:37;7345:25:58;;;7341:244;;6829:332;5615:1976;;;;:::o;7341:244::-;7416:15;;;;7341:244;7416:15;1789:15887:47;;;;;;-1:-1:-1;;1789:15887:47;;;;;:::i;:::-;;;;;;234:9:37;;;1789:15887:47;;;;;;;;;;;:::i;:::-;;;;7391:23:58;;1789:15887:47;-1:-1:-1;;;234:9:37;;;;;;1789:15887:47;234:9:37;1789:15887:47;-1:-1:-1;;;1789:15887:47;;;;;;;;6834:9:58;6882:15;;;;;;6953:21;6917:60;6953:24;1789:15887:47;6953:21:58;;;:24;:::i;:::-;;6917:33;;;:::i;:::-;:60;;:::i;:::-;1789:15887:47;6834:9:58;;6878:214;7052:24;:21;;;:24;:::i;:::-;;1789:15887:47;;;;;;;;;;;;;;;;;;;;:::i;:::-;6878:214:58;;1789:15887:47;-1:-1:-1;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;:::i;:::-;;;;;234:9:37;;;;;;;;;;;;;;;;;;;;;1789:15887:47;;6499:16:58;1789:15887:47;;;;;;;;;;;;;;;;;;;;234:9:37;;;;;1789:15887:47;;;;;;;;;;:::i;:::-;;;;234:9:37;1789:15887:47;;;;;;;;;;;234:9:37;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;5868:621:58;234:9:37;;;1789:15887:47;;5970:36:58;1789:15887:47;;5936:70:58;;;;5932:115;;6160:69;6156:139;;1789:15887:47;;;;;;:::i;:::-;5872:19:58;1789:15887:47;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5872:19:58;-1:-1:-1;1789:15887:47;;;-1:-1:-1;1789:15887:47;;;;;;;-1:-1:-1;;;1789:15887:47;;;-1:-1:-1;;1789:15887:47;;;6390:48:58;;;;:::i;:::-;6386:93;;5868:621;;;;;6386:93;6458:7;;;:::o;1789:15887:47:-;;;5872:39:58;1789:15887:47;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6156:139:58;1789:15887:47;;-1:-1:-1;;;6256:24:58;;5872:19;;6256:24;5932:115;6026:7;;;;;;;;:::o;8126:561::-;-1:-1:-1;;;;;8240:23:58;;;;;;;234:9:37;1789:15887:47;8267:23:58;;;;234:9:37;1789:15887:47;8240:50:58;8236:93;;8342:26;;;:::i;:::-;8372;;;:::i;:::-;8342:56;8338:99;;8450:14;1789:15887:47;;8475:14:58;;1789:15887:47;8450:46:58;8446:89;;8627:26;1789:15887:47;;;;8567:26:58;;1789:15887:47;8567:26:58;;;1789:15887:47;;;;;;;;;:::i;:::-;8567:26:58;2548:38:62;8567:26:58;2548:38:62;;8567:26:58;;;;;;;;:::i;:::-;1789:15887:47;8557:37:58;;8638:14;;1789:15887:47;;8627:26:58;;;;;;1789:15887:47;;;;;;;;:::i;:::-;8627:26:58;;;;;;;;:::i;:::-;1789:15887:47;8617:37:58;;8672:8;8126:561;:::o;7660:387::-;7771:15;;1789:15887:47;7803:29:58;1789:15887:47;7847:9:58;;7842:161;7858:7;;;;;;8012:28;;;7660:387;:::o;7847:9::-;7908:15;;;7883:50;1789:15887:47;7908:15:58;:18;:15;;;:18;:::i;:::-;;1789:15887:47;7883:50:58;;:::i;:::-;1789:15887:47;;7847:9:58;;;;12194:372;-1:-1:-1;;;;;1789:15887:47;;;;12194:372:58;12377:19;;12373:78;;1789:15887:47;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1789:15887:47;;12487:13:58;1789:15887:47;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;12487:35:58;;;;;1789:15887:47;;;;;;;;;;;;;:::i;:::-;;;;;;12487:35:58;:28;;:35;;;;;;;;;;;1789:15887:47;12540:19:58;;;;;;;;;:::i;:::-;12533:26;;12194:372::o;12487:35::-;;;;;;;;;;;;;;;:::i;:::-;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12540:19:58;1789:15887:47;;;;;12487:35:58;;;;;;;1789:15887:47;;;;;;;:::i;:::-;;;;;;;;;12487:35:58;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1789:15887:47;;;;;;;;;;;;12373:78:58;1789:15887:47;;-1:-1:-1;;;12419:21:58;;;;;12762:272;1789:15887:47;12971:15:58;1789:15887:47;;;;;;;12971:17:58;;;;;;;;;;;;1789:15887:47;;;;;;:::i;:::-;12971:17:58;;;;;;;;;;4030:45:59;12971:17:58;;;12762:272;234:9:37;4030:45:59;234:9:37;4030:45:59;234:9:37;;1789:15887:47;234:9:37;1789:15887:47;4030:45:59;234:9:37;13008::58;1789:15887:47;12971:17:58;13008:9;;1789:15887:47;:::i;:::-;;;;;;;;;;;;13008:19:58;;;12971:17;13008:19;;1789:15887:47;;;;;;:::i;:::-;13008:19:58;;;;;;;;;4030:45:59;13008:19:58;;;12762:272;13007:20;;;12762:272;:::o;13008:19::-;;;;;;-1:-1:-1;13008:19:58;;;;;;:::i;:::-;;;;;;1789:15887:47;;;4030:45:59;1789:15887:47;;;;;12971:17:58;;;;;;;;;;;;;;;:::i;:::-;;;1789:15887:47;;;;;;12971:17:58;;;;;;;;4514:138:59;1789:15887:47;;-1:-1:-1;;;4570:26:59;;:10;:26;;;1789:15887:47;4570:26:59;1789:15887:47;;;4570:24:59;:26;;;;;;;-1:-1:-1;4570:26:59;;;4514:138;4569:27;;4565:81;;4514:138::o;4565:81::-;1789:15887:47;;-1:-1:-1;;;4619:16:59;;4570:26;;4619:16;4570:26;;;;;;;;;;;;;;:::i;:::-;;;;1789:15887:47;;-1:-1:-1;1789:15887:47;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;2483:766:29:-;1789:15887:47;;;2483:766:29;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:29;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;1789:15887:47;;;;;;;;;;;;;;;;234:9:37;1789:15887:47;;;;;;;;-1:-1:-1;6908:24:29;;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;6946:20:29;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;1789:15887:47;;;;;;;;;;6633:164:29;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o;1789:15887:47:-;5015:22:62;1789:15887:47;;;;;;5015:22:62;-1:-1:-1;1789:15887:47;;;;-1:-1:-1;1789:15887:47;:::o;:::-;5015:22:62;1789:15887:47;;;;;;5015:22:62;-1:-1:-1;1789:15887:47;;;;-1:-1:-1;1789:15887:47;:::o;2215:404:33:-;-1:-1:-1;234:9:37;;;4352:12:33;234:9:37;;;;;1789:15887:47;234:9:37;;5015:22:62;1789:15887:47;-1:-1:-1;;;1789:15887:47;;;;;;;234:9:37;1789:15887:47;;4352:12:33;234:9:37;1789:15887:47;;5015:22:62;1789:15887:47;;:::i;:::-;234:9:37;;;;;;;;;;1789:15887:47;;;234:9:37;;;;;;;;;;5015:22:62;1789:15887:47;234:9:37;;;4352:12:33;234:9:37;;;1789:15887:47;4352:12:33;2548:11;:::o;2294:319::-;2590:12;;;:::o;2215:404::-;-1:-1:-1;234:9:37;;;4352:12:33;234:9:37;;;;;1789:15887:47;234:9:37;;5015:22:62;1789:15887:47;-1:-1:-1;;;1789:15887:47;;;;;;;234:9:37;1789:15887:47;;4352:12:33;234:9:37;1789:15887:47;;5015:22:62;1789:15887:47;;:::i;234:9:37:-;;;5015:22:62;1789:15887:47;234:9:37;;;4352:12:33;234:9:37;;;1789:15887:47;4352:12:33;2548:11;:::o;2215:404::-;-1:-1:-1;234:9:37;;;4352:12:33;;;234:9:37;;;;;1789:15887:47;2299:21:33;;1789:15887:47;;;-1:-1:-1;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1789:15887:47;;-1:-1:-1;1789:15887:47;;234:9:37;1789:15887:47;;234:9:37;-1:-1:-1;234:9:37;2494:12:33;1789:15887:47;234:9:37;;-1:-1:-1;234:9:37;1789:15887:47;;2548:11:33;:::o;2294:319::-;2590:12;;-1:-1:-1;2590:12:33;:::o;2787:1388::-;-1:-1:-1;234:9:37;;;2990:12:33;234:9:37;;;;;1789:15887:47;-1:-1:-1;;234:9:37;3024:15:33;;;;-1:-1:-1;;1789:15887:47;;;;;;;;;3345:22:62;1789:15887:47;;;;;;;;;;3506:26:33;;;3502:398;;3020:1149;1789:15887:47;;;3345:22:62;1789:15887:47;;;;;;;;;;;:::i;:::-;234:9:37;;;;;;;;;;;;3345:22:62;1789:15887:47;234:9:37;;2990:12:33;234:9:37;;;;;;2990:12:33;4104:11;:::o;1789:15887:47:-;-1:-1:-1;;;1789:15887:47;;;;;;;;3502:398:33;234:9:37;3572:22:33;3694:26;3572:22;;:::i;:::-;1789:15887:47;;;;;234:9:37;3694:26:33;;;;:::i;234:9:37:-;;;;;2990:12:33;234:9:37;;;;;1789:15887:47;3502:398:33;;;;;1789:15887:47;-1:-1:-1;;;1789:15887:47;;;;;;;;;-1:-1:-1;;;1789:15887:47;;;;;;;;3020:1149:33;4146:12;;;:::o;2787:1388::-;-1:-1:-1;234:9:37;;;2990:12:33;234:9:37;;;;;1789:15887:47;-1:-1:-1;;234:9:37;3024:15:33;;;;-1:-1:-1;;1789:15887:47;;;;;;;;;3345:22:62;1789:15887:47;;;;;;;;;;3506:26:33;;;3502:398;;3020:1149;1789:15887:47;;;3345:22:62;1789:15887:47;;;;;;;;;;;:::i;:::-;234:9:37;;;;;;;;;;;;3345:22:62;1789:15887:47;234:9:37;;2990:12:33;234:9:37;;;;;;2990:12:33;4104:11;:::o;3502:398::-;234:9:37;3572:22:33;3694:26;3572:22;;:::i;:::-;1789:15887:47;;;;;234:9:37;3694:26:33;;;;:::i;234:9:37:-;;;;;2990:12:33;234:9:37;;;;;1789:15887:47;3502:398:33;;;;;1789:15887:47;;;;;-1:-1:-1;;1789:15887:47;;;;;;;:::o;26397:415:64:-;;;26602:11;;26598:48;;26612:1;26672:10;;;;;;26397:415;;;;:::o;26661:9::-;26718:17;;;;;:::i;:::-;26119:20;:30;:20;;;;:::i;:::-;:30;1789:15887:47;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;26167:20:64;;;;:::i;:::-;1789:15887:47;;;;;;;;26213:20:64;;;;:::i;:::-;:28;;;;;;1789:15887:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;26068:12:64;1789:15887:47;;;26119:30:64;1789:15887:47;;;;;:::i;:::-;;;;:::i;:::-;;;3528:63:65;;;1789:15887:47;;;26119:30:64;3528:63:65;;1789:15887:47;;;;26612:1:64;1789:15887:47;3489:15:65;1789:15887:47;;26119:30:64;26612:1;1789:15887:47;;;;;;:::i;:::-;;;;:::i;:::-;234:9:37;;;1789:15887:47;;234:9:37;;;;1789:15887:47;;;;;;234:9:37;;;;;;1789:15887:47;;;;;234:9:37;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;1789:15887:47;;234:9:37;;;26612:1:64;;234:9:37;;;;-1:-1:-1;;;;234:9:37;;;;;;;;;;;;;;1789:15887:47;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;3636:23:65;;;;:::i;:::-;1789:15887:47;-1:-1:-1;;;;;234:9:37;26068:12:64;234:9:37;;;26068:12:64;234:9:37;26290:33:64;1789:15887:47;;;;;;;;;26267:56:64;26263:122;;1789:15887:47;26661:9:64;;26263:122;26119:30;1789:15887:47;-1:-1:-1;;;26346:28:64;;1789:15887:47;;26346:28:64;234:9:37;;;;-1:-1:-1;234:9:37;;;;;1789:15887:47;;;;;;26612:1:64;1789:15887:47;;26612:1:64;1789:15887:47;234:9:37;26612:1:64;2548:38:62;;234:9:37;;;;;;;;;;;;;;1789:15887:47;234:9:37;;;;;;;;;;;;;;;;;;1789:15887:47;;234:9:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26598:48:64;26629:7;;;:::o;1789:15887:47:-;;;;;;;;;;;;;;;;;:::o;26883:1594:64:-;27018:12;1789:15887:47;-1:-1:-1;;;;;1789:15887:47;;;;;26883:1594:64;1789:15887:47;;;;26995:59:64;;1789:15887:47;;;;-1:-1:-1;;;27077:28:64;;;;;26991:227;1789:15887:47;;;;;27126:59:64;;27122:96;;26991:227;;;;1789:15887:47;;;;;;27291:1107:64;27296:16;1789:15887:47;;;27314:24:64;;;;;;-1:-1:-1;1789:15887:47;;;;;3893:15:65;1789:15887:47;;;;;;;;;;;27446:16:64;;;1789:15887:47;;;;;;;;;;:::i;:::-;27446:16:64;27481:41;;27446:16;;1789:15887:47;;;;3893:15:65;1789:15887:47;;;;;;;;;;;;27542:26:64;1789:15887:47;;27591:14:64;27542:46;1789:15887:47;;;27542:46:64;1789:15887:47;:::i;:::-;;;;;;;;;;;27446:16:64;1789:15887:47;;;;;;;:::i;:::-;;;;;;27296:16:64;;;;;;27477:810;1789:15887:47;;;;;;;;:::i;:::-;27643:34:64;;27630:47;;;27643:34;;1789:15887:47;;;27749:14:64;;;1789:15887:47;:::i;:::-;;;;;;27738:44:64;;1789:15887:47;;;;;;27738:44:64;;;1789:15887:47;;27738:44:64;;;1789:15887:47;;;;;27738:44:64;1789:15887:47;27738:44:64;;;;;;;;;;;;1789:15887:47;;;;;:::i;:::-;;;;;;;;;;27800:26:64;1789:15887:47;;;;;;27800:46:64;1789:15887:47;;234:9:37;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3893:15:65;234:9:37;;;;;;27924:5:64;234:9:37;;;;;;;;;1789:15887:47;;;234:9:37;;;;;;;;27924:5:64;:::i;:::-;27477:810;;234:9:37;;;;-1:-1:-1;234:9:37;;;;;-1:-1:-1;1789:15887:47;;;;;;2548:38:62;;;;;-1:-1:-1;;234:9:37;;1789:15887:47;234:9:37;;;;;;;;;;;3893:15:65;234:9:37;;;;;27924:5:64;234:9:37;;;;;;;;;;;;;;;;;27924:5:64;:::i;234:9:37:-;;;1789:15887:47;234:9:37;1789:15887:47;;;234:9:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1789:15887:47;;;;27626:661:64;1789:15887:47;;;;;;;;;;;;;;;27997:14:64;;;1789:15887:47;:::i;:::-;;;;;27986:37:64;;1789:15887:47;;;;27986:37:64;3893:15:65;27986:37:64;;;;;;;;;;;;;;;1789:15887:47;;;;;:::i;:::-;28046:38:64;3893:15:65;;10416:55:64;1789:15887:47;;10830:13:64;1789:15887:47;;;;;10416:15:64;1789:15887:47;;;;;10416:46:64;1789:15887:47;10416:55:64;:::i;:::-;1789:15887:47;;;;;;;;;10507:42:64;27446:16;10507:42;;1789:15887:47;;;10564:18:64;;:42;;;;28042:231;-1:-1:-1;10560:199:64;;;234:9:37;;1789:15887:47;234:9:37;;;;1789:15887:47;;234:9:37;;1789:15887:47;;:::i;:::-;10830:13:64;:::i;:::-;10856:39;:29;1789:15887:47;;;10856:39:64;:::i;:::-;1789:15887:47;;27477:810:64;;10560:199;10686:46;;;;;;1789:15887:47;10830:13:64;:::i;10564:42::-;10586:20;;;10564:42;;;28042:231;1789:15887:47;;;10258:13:64;1789:15887:47;;;;;10005:15:64;:55;:15;;;1789:15887:47;;;;;;10005:46:64;1789:15887:47;10005:55:64;:::i;:::-;1789:15887:47;;;;;;;;;;;10070:46:64;1789:15887:47;10143:39:64;:29;1789:15887:47;;;10143:39:64;:::i;:::-;1789:15887:47;;10258:13:64;:::i;27314:24::-;;;;;;-1:-1:-1;;;27314:24:64;;28447:23;27314:24;28447:23;:::i;:::-;27018:12;234:9:37;;;;;-1:-1:-1;;;234:9:37;;;27018:12:64;234:9:37;26883:1594:64:o;27122:96::-;27201:7;;;;;:::o;9330:540::-;;1789:15887:47;;;;;;;-1:-1:-1;1789:15887:47;9465:15:64;1789:15887:47;;;-1:-1:-1;1789:15887:47;;;;;;9580:22:64;;;9576:288;9580:22;;;9618:7;;;:::o;9576:288::-;-1:-1:-1;;9645:21:64;;;9747:5;;;:::i;9641:223::-;9846:5;;;:::i;11008:2209::-;;;1789:15887:47;;;;;;;;;-1:-1:-1;1789:15887:47;;;;;;1317:17:72;1789:15887:47;;;;;;;;;;;;11120:226:64;;1789:15887:47;6479:19;1789:15887;;;;;11124:21:64;1789:15887:47;;-1:-1:-1;11516:262:64;;4023:26:70;;:::i;:::-;1789:15887:47;;;;;4077:23:70;1789:15887:47;;;;;;;;4129:25:70;;;;:::i;:::-;12408::64;12404:452;;1789:15887:47;;;1317:17:72;1789:15887:47;;;;;;;;12866:229:64;;13141:11;;;;;13168:42;;13141:11;;;;;:::i;:::-;1789:15887:47;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;13168:42:64;;;;11008:2209::o;12866:229::-;3147:36:70;;;:::i;:::-;3209:30;;;;:::i;:::-;3308:5;4619:7;1789:15887:47;;;;4619:7:70;;;4612:423;-1:-1:-1;;1789:15887:47;;-1:-1:-1;;;;;1789:15887:47;;;;;-1:-1:-1;;;;1789:15887:47;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13008:56:64;1789:15887:47;;;;13008:56:64;1789:15887:47;4612:423:70;234:9:37;;1991:25:72;234:9:37;;;;;;;1789:15887:47;;;;1952:17:72;1789:15887:47;;;;;;1991:25:72;:::i;:::-;6662:7:70;4868:38;4864:82;;4991:3;;;;;;:::i;:::-;4612:423;;;;4864:82;4926:5;;;12404:452:64;12475:4;;;;;;;12777:48;12475:4;;;;12777:48;12475:4;1317:17:72;12475:4:64;;;:::i;:::-;1789:15887:47;;;;;;12495:140:64;;12404:452;12684:11;;;:::i;:::-;12746:10;;;:::i;:::-;1789:15887:47;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;12495:140:64;12608:11;;;:::i;:::-;12495:140;;11516:262;11675:11;;;;;11706:41;;11675:11;;;;;:::i;11120:226::-;2876:36:71;;;;;;;;;;;:::i;:::-;2936:30;;;;:::i;:::-;3035:3;4846:7;3035:3;4846:7;:::i;:::-;1789:15887:47;11124:21:64;1789:15887:47;;4932:763:71;;1789:15887:47;;;4939:16:71;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;:::-;5089:187;;:::i;:::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;-1:-1:-1;;1789:15887:47;;-1:-1:-1;;;;;1789:15887:47;;;;;-1:-1:-1;;;;1789:15887:47;;;;;;;5556:5:71;;-1:-1:-1;;;;;;;;;;;;11260:55:64;-1:-1:-1;1789:15887:47;;;;11260:55:64;1789:15887:47;4971:413:71;1789:15887:47;;;;;1952:17:72;1789:15887:47;;1991:25:72;1789:15887:47;;;;;;1991:25:72;:::i;:::-;4971:413:71;;4939:16;;;;;;;;11260:55:64;4939:16:71;;;;;-1:-1:-1;;;;;;;;;;;4939:16:71;;;;11008:2209:64;-1:-1:-1;;;;;1789:15887:47;;;-1:-1:-1;1789:15887:47;;;1317:17:72;1789:15887:47;;;;;;;;;11008:2209:64;;1789:15887:47;;;;;11120:226:64;;1789:15887:47;6479:19;1789:15887;;;;;11124:21:64;1789:15887:47;;-1:-1:-1;11516:262:64;;4023:26:70;;:::i;:::-;1789:15887:47;;;4077:23:70;1789:15887:47;;;;;;;4129:25:70;;;;:::i;:::-;12408::64;12404:452;;-1:-1:-1;1789:15887:47;;1317:17:72;1789:15887:47;;;;;;;12866:229:64;;13168:42;;13141:11;;;;:::i;12866:229::-;13008:56;-1:-1:-1;;;;;;;;;;;3147:36:70;3308:5;3147:36;;;:::i;:::-;3209:30;;;:::i;:::-;3308:5;;:::i;12404:452:64:-;12475:4;;;;;12777:48;12475:4;;12777:48;12475:4;;;:::i;:::-;1789:15887:47;;1317:17:72;1789:15887:47;;;;;12495:140:64;;12684:11;;;:::i;12495:140::-;12608:11;;;:::i;11516:262::-;11675:11;;;;11706:41;;11675:11;;;;:::i;11120:226::-;2876:36:71;;;;11260:55:64;-1:-1:-1;;;;;;;;;;;2876:36:71;3035:3;2876:36;;;:::i;:::-;2936:30;;;:::i;:::-;3035:3;;:::i;13320:2014:64:-;;;1789:15887:47;;;;;;;;;-1:-1:-1;;1789:15887:47;;;;;1317:17:72;1789:15887:47;;;;;;;;;;;;13428:421:64;;1789:15887:47;;;1317:17:72;1789:15887:47;;;;;;;;1317:33:72;13883:106:64;;14053:13;;14049:508;;3263:36:71;;;;:::i;:::-;3323:30;;;;:::i;:::-;3422:3;4270:433;1789:15887:47;;;;;4277:7:71;;;;234:9:37;;;;;1789:15887:47;;;;1952:17:72;1789:15887:47;;;1991:25:72;1789:15887:47;;;;;;1991:25:72;:::i;:::-;6308:7:71;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4533:81;4594:5;;;;;;;;;;4270:433;13432:22:64;1789:15887:47;;14638:37:64;14634:74;;4023:26:70;;:::i;:::-;1789:15887:47;;;1952:17:72;1789:15887:47;;;;;;;;;4129:25:70;4077:23;4129:25;;;:::i;:::-;4023:26;;;:::i;:::-;1789:15887:47;;;;;;;4129:25:70;;;;:::i;:::-;-1:-1:-1;14901:358:64;;-1:-1:-1;;1789:15887:47;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;;-1:-1:-1;;;;;;;;;;;15274:53:64;1789:15887:47;;;;15274:53:64;1789:15887:47;14901:358:64;14979:4;;;;15176:52;;14979:4;;;:::i;:::-;15025;;:::i;14634:74::-;14691:7;;;;;;:::o;4277::71:-;;;;;;;;;;;;;14049:508:64;14126:9;;;;14155:30;14126:9;;;;;;;;;:::i;:::-;1789:15887:47;;;;;14155:30:64;13432:22;1789:15887:47;;14200:326:64;;14540:7;;;;:::o;14200:326::-;14472:39;4023:26:70;4077:23;4023:26;;;;:::i;:::-;1789:15887:47;;;;;;;14472:39:64;4129:25:70;;;:::i;:::-;14378:4:64;;;:::i;:::-;14436:12;;;:::i;14472:39::-;;;;14200:326;;;;;;13883:106;1789:15887:47;;-1:-1:-1;;;13952:26:64;;1317:17:72;;13952:26:64;13428:421;13494:13;;;;;;;;;;13490:185;;3601:36:70;1789:15887:47;3601:36:70;;;;;:::i;:::-;3663:30;;;;:::i;:::-;3762:5;;1789:15887:47;;234:9:37;;;;;1789:15887:47;;13432:22:64;1789:15887:47;;5287:763:70;1789:15887:47;;;5287:763:70;-1:-1:-1;;1789:15887:47;;-1:-1:-1;;;;;1789:15887:47;;;;;-1:-1:-1;;;;1789:15887:47;;;;;;;-1:-1:-1;1789:15887:47;;-1:-1:-1;;;;;;;;;;;;13764:54:64;1789:15887:47;-1:-1:-1;1789:15887:47;;;;13764:54:64;1789:15887:47;5287:763:70;1789:15887:47;;;5294:16:70;;;;;5330:15;;;;;;;;5599:12;;;;5444:186;5599:12;;:::i;:::-;5444:186;;:::i;:::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1789:15887:47;;1952:17:72;1789:15887:47;;;;;;;;1991:25:72;;1789:15887:47;;1991:25:72;:::i;:::-;5326:412:70;;5294:16;;;;13490:185:64;13572:9;;;;;;;;13605:31;13572:9;;;;;:::i;:::-;1789:15887:47;;;;13605:31:64;13654:7::o;13320:2014::-;-1:-1:-1;;;;;1789:15887:47;;;-1:-1:-1;1789:15887:47;;;1317:17:72;1789:15887:47;;;;;;;;;;;13320:2014:64;;1789:15887:47;;;;;;13428:421:64;;1789:15887:47;;;1317:17:72;1789:15887:47;;;;;;;;1317:33:72;13883:106:64;;14053:13;;14049:508;;3263:36:71;3422:3;3263:36;;;:::i;:::-;3323:30;;;:::i;:::-;3422:3;;:::i;14049:508:64:-;14126:9;;;;;;;14155:30;14126:9;;;:::i;13883:106::-;1789:15887:47;;-1:-1:-1;;;13952:26:64;;1317:17:72;;13952:26:64;13428:421;13494:13;;;;;;;;13490:185;;3601:36:70;-1:-1:-1;;;;;;;;;;;3601:36:70;;13764:54:64;3601:36:70;3762:5;3601:36;;;:::i;:::-;3663:30;;;:::i;:::-;3762:5;;:::i;13490:185:64:-;13572:9;;;13605:31;13572:9;;;:::i;1789:15887:47:-;;;;;;;;;;;;;:::o;998:417:70:-;1401:5;998:417;1301:30;1789:15887:47;;1119:19:70;1789:15887:47;12499:22:64;1789:15887:47;;1119:19:70;:::i;:::-;1789:15887:47;;;;;;;;;;-1:-1:-1;1789:15887:47;1149:23:70;1789:15887:47;;;-1:-1:-1;1789:15887:47;;;;;;;;;;;;;;;;;-1:-1:-1;1789:15887:47;1200:23:70;1789:15887:47;;;-1:-1:-1;1789:15887:47;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;12499:22:64;1789:15887:47;;;12499:22:64;1789:15887:47;4525:375:64;1789:15887:47;6479:19;1789:15887;;;;;;;;4697:24:64;4668:53;4697:24;;-1:-1:-1;;;;;1789:15887:47;-1:-1:-1;1789:15887:47;;;4745:21:64;1789:15887:47;;;;;;;4525:375:64:o;4664:230::-;-1:-1:-1;;;;;1789:15887:47;-1:-1:-1;1789:15887:47;;;4831:21:64;1789:15887:47;;;;;;4831:52:64;1789:15887:47;;4525:375:64:o;1545:401:70:-;1789:15887:47;;13432:22:64;1789:15887:47;;1044:14:72;;;1040:61;;1789:15887:47;;2388:17:72;2381:25;2388:17;;;;2381:25;:::i;:::-;1789:15887:47;;;;2468:17:72;1789:15887:47;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;2551:17:72;1789:15887:47;;;;;;;-1:-1:-1;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:72;1799:4:70;;1789:15887:47;1766:8:70;;1789:15887:47;1766:8:70;:::i;:::-;1789:15887:47;;13432:22:64;1789:15887:47;;;13432:22:64;1789:15887:47;1799:4:70;:::i;:::-;1789:15887:47;;;;;;1991:25:72;1789:15887:47;;;;;;1991:25:72;:::i;:::-;5047:1009:70;;5160:26;1952:17:72;1789:15887:47;13432:22:64;1789:15887:47;;5287:763:70;1789:15887:47;;;5287:763:70;1545:401;;;;;;;;;;;:::o;5287:763::-;1789:15887:47;;;5294:16:70;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1789:15887:47;;;;;;;;1991:25:72;1789:15887:47;;;;;;1991:25:72;:::i;:::-;5326:412:70;;5294:16;;;;1040:61:72;1789:15887:47;;-1:-1:-1;;;1081:9:72;;;;;2081:787:70;2210:36;2081:787;2210:36;:::i;:::-;1789:15887:47;;;12499:22:64;1789:15887:47;;2321:4:70;;;;;:::i;:::-;2382:8;;;;:::i;:::-;1789:15887:47;;;12499:22:64;1789:15887:47;;;12499:22:64;1789:15887:47;2415:4:70;;;:::i;:::-;1789:15887:47;;2435:11:70;;;2431:48;;1991:25:72;1789:15887:47;2854:5:70;1789:15887:47;-1:-1:-1;1789:15887:47;1952:17:72;1789:15887:47;;;;;;;;2668:5:70;1991:25:72;1789:15887:47;;-1:-1:-1;1789:15887:47;;;1991:25:72;:::i;:::-;2668:5:70;;:::i;:::-;-1:-1:-1;1789:15887:47;1952:17:72;1789:15887:47;;;-1:-1:-1;1789:15887:47;;;1991:25:72;:::i;2081:787:70:-;2210:36;2081:787;2210:36;:::i;:::-;1789:15887:47;;;12499:22:64;1789:15887:47;;2321:4:70;;;;;:::i;:::-;2382:8;;;;:::i;:::-;1789:15887:47;;;12499:22:64;1789:15887:47;;;12499:22:64;1789:15887:47;2415:4:70;;;:::i;:::-;1789:15887:47;;;2435:11:70;;;2431:48;;-1:-1:-1;1789:15887:47;-1:-1:-1;;1789:15887:47;;;;1952:17:72;1789:15887:47;;;;;;;;;;;;;;2668:5:70;1991:25:72;1789:15887:47;;;;;;1991:25:72;:::i;:::-;2668:5:70;;:::i;:::-;1789:15887:47;;;;;1991:25:72;1789:15887:47;;;;;;1991:25:72;:::i;:::-;2854:5:70;;1789:15887:47;;234:9:37;;;;;1789:15887:47;;12499:22:64;1789:15887:47;;5287:763:70;1789:15887:47;;;2081:787:70;;;;;;;;;;;:::o;5287:763::-;1789:15887:47;;;5294:16:70;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5326:412;1789:15887:47;;;;;;;;1991:25:72;1789:15887:47;;;;;;1991:25:72;:::i;:::-;5326:412:70;;4443:598;;;;4612:423;4625:1;1789:15887:47;;;;4619:7:70;;;;234:9:37;;;;;-1:-1:-1;;1991:25:72;-1:-1:-1;1789:15887:47;;;1952:17:72;1789:15887:47;;;;;;;;;;;;1991:25:72;:::i;:::-;6662:7:70;4868:38;4864:82;;4991:3;;;;:::i;:::-;4612:423;;4864:82;4926:5;;;;4443:598::o;1789:15887:47:-;;;;;;;;;;;;;;:::o;5047:1009:70:-;;5185:1;1789:15887:47;234:9:37;;;1789:15887:47;5218:18:70;-1:-1:-1;5218:18:70;1789:15887:47;;;13432:22:64;1789:15887:47;;5287:763:70;5185:1;;;5287:763;5047:1009;;;;;;;:::o;5287:763::-;1789:15887:47;;;5294:16:70;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1789:15887:47;;1952:17:72;1789:15887:47;;;;;;;;;1991:25:72;;-1:-1:-1;;;;;1789:15887:47;1991:25:72;:::i;:::-;5326:412:70;;5294:16;;;;6117:442;;;;1789:15887:47;;;;;-1:-1:-1;1789:15887:47;1952:17:72;1789:15887:47;;1991:25:72;1789:15887:47;;;;;1991:25:72;1789:15887:47;;-1:-1:-1;1789:15887:47;;;1991:25:72;:::i;:::-;1789:15887:47;;;-1:-1:-1;1789:15887:47;1952:17:72;1789:15887:47;;;-1:-1:-1;1789:15887:47;;;1991:25:72;:::i;:::-;6662:7:70;;;;6437:85;;6531:21;;;6117:442;:::o;6437:85::-;6490:21;-1:-1:-1;6490:21:70;;-1:-1:-1;6490:21:70:o;924:417:71:-;1327:5;924:417;1227:30;1789:15887:47;;1045:19:71;1789:15887:47;11124:21:64;1789:15887:47;;1045:19:71;:::i;:::-;1789:15887:47;;;;;;;;;;-1:-1:-1;1789:15887:47;1075:23:71;1789:15887:47;;;-1:-1:-1;1789:15887:47;;;;;;;;;;;;;;;;;-1:-1:-1;1789:15887:47;1126:23:71;1789:15887:47;;;-1:-1:-1;1789:15887:47;;-1:-1:-1;;;;;1789:15887:47;;;;;;;;11124:21:64;1789:15887:47;;;11124:21:64;1789:15887:47;1227:30:71;:::i;1408:401::-;1789:15887:47;;11124:21:64;1789:15887:47;;1044:14:72;;;1040:61;;1789:15887:47;;2388:17:72;2381:25;2388:17;;;;2381:25;:::i;:::-;1789:15887:47;;;;2468:17:72;1789:15887:47;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;2551:17:72;1789:15887:47;;;;;;;-1:-1:-1;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:72;1662:4:71;;1789:15887:47;1629:8:71;;1789:15887:47;1629:8:71;:::i;:::-;1789:15887:47;;11124:21:64;1789:15887:47;;;11124:21:64;1789:15887:47;1662:4:71;:::i;:::-;1789:15887:47;;;;;;1991:25:72;1789:15887:47;;;;;;1991:25:72;:::i;:::-;4715:986:71;;4828:25;1952:17:72;1789:15887:47;11124:21:64;1789:15887:47;;4932:763:71;1789:15887:47;;;1408:401:71;;;;;;;;;;;:::o;4932:763::-;1789:15887:47;;;4939:16:71;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;;4971:413;1789:15887:47;;;;;;;;1991:25:72;1789:15887:47;;;;;;1991:25:72;:::i;:::-;4971:413:71;;1881:779;2010:36;1881:779;2010:36;:::i;:::-;1789:15887:47;;;13888:21:64;1789:15887:47;;2121:4:71;;;;;:::i;:::-;2182:8;;;;:::i;:::-;1789:15887:47;;;13888:21:64;1789:15887:47;;;13888:21:64;1789:15887:47;2215:4:71;;;:::i;:::-;1789:15887:47;;2235:11:71;;;2231:48;;1991:25:72;1789:15887:47;2648:3:71;1789:15887:47;-1:-1:-1;1789:15887:47;1952:17:72;1789:15887:47;;;;;;;;2466:3:71;1991:25:72;1789:15887:47;;-1:-1:-1;1789:15887:47;;;1991:25:72;:::i;:::-;2466:3:71;;:::i;:::-;-1:-1:-1;1789:15887:47;1952:17:72;1789:15887:47;;;-1:-1:-1;1789:15887:47;;;1991:25:72;:::i;1881:779:71:-;2010:36;1881:779;2010:36;:::i;:::-;1789:15887:47;;;;13888:21:64;1789:15887:47;;2121:4:71;;;;;:::i;:::-;2182:8;;;;:::i;:::-;1789:15887:47;;;13888:21:64;1789:15887:47;;;13888:21:64;1789:15887:47;2215:4:71;;;:::i;:::-;1789:15887:47;;;2235:11:71;;;2231:48;;-1:-1:-1;;;;1789:15887:47;;;;1952:17:72;1789:15887:47;;;;;;;;;;;;;;2466:3:71;1991:25:72;1789:15887:47;;;;;;1991:25:72;:::i;:::-;2466:3:71;;:::i;:::-;1789:15887:47;;;;;1991:25:72;1789:15887:47;;;;;;1991:25:72;:::i;:::-;2648:3:71;4846:7;2648:3;4846:7;:::i;:::-;4863:18;1789:15887:47;13888:21:64;1789:15887:47;;4932:763:71;;1789:15887:47;;;4939:16:71;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;;;;;1881:779::o;4971:413::-;1789:15887:47;;;;;;;;1991:25:72;1789:15887:47;;;;;;1991:25:72;:::i;:::-;4971:413:71;;4939:16;;;;;;;;;;;;;1881:779::o;2231:48::-;2262:7;;;;:::o;4101:608::-;;;;4270:433;4283:1;1789:15887:47;;;;4277:7:71;;;;234:9:37;;;;;-1:-1:-1;;1991:25:72;-1:-1:-1;1789:15887:47;;;1952:17:72;1789:15887:47;;;;;;;;;;;;1991:25:72;:::i;:::-;6308:7:71;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4715:986;;4846:7;;;:::i;:::-;-1:-1:-1;1789:15887:47;;;11124:21:64;1789:15887:47;;4932:763:71;;1789:15887:47;;;4939:16:71;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;4715:986::o;4971:413::-;1789:15887:47;;1952:17:72;1789:15887:47;;;;;;;;;1991:25:72;;-1:-1:-1;;;;;1789:15887:47;1991:25:72;:::i;:::-;4971:413:71;;4939:16;;;;;;;;;4715:986::o;5763:443::-;;;1789:15887:47;;;;-1:-1:-1;1789:15887:47;1952:17:72;1789:15887:47;;1991:25:72;1789:15887:47;;;;;1991:25:72;1789:15887:47;;-1:-1:-1;1789:15887:47;;;1991:25:72;:::i;:::-;1789:15887:47;;;-1:-1:-1;1789:15887:47;1952:17:72;1789:15887:47;;;-1:-1:-1;1789:15887:47;;;1991:25:72;:::i;:::-;6308:7:71;;;;6088:33;6084:85;;6178:21;;;5763:443;:::o;974:133:72:-;1789:15887:47;11124:21:64;1789:15887:47;;1044:14:72;1040:61;;974:133::o;:::-;1789:15887:47;13432:22:64;1789:15887:47;;1044:14:72;1040:61;;974:133::o;1363:226::-;-1:-1:-1;;;;;1789:15887:47;-1:-1:-1;1789:15887:47;;;1474:17:72;1789:15887:47;;;;;;;;;1516:8:72;;1512:71;;1363:226::o;1512:71::-;1789:15887:47;;-1:-1:-1;;;1547:25:72;;;;;1363:226;-1:-1:-1;;;;;1789:15887:47;-1:-1:-1;1789:15887:47;;;1474:17:72;1789:15887:47;;;;;;;;;1516:8:72;;1512:71;;1363:226::o;1595:184::-;1789:15887:47;;-1:-1:-1;1789:15887:47;;;1671:17:72;1789:15887:47;;;;;;;;;;-1:-1:-1;;;;;;234:9:37;;1789:15887:47;;;-1:-1:-1;;;;;1789:15887:47;;;1749:17:72;1789:15887:47;;;;;;;-1:-1:-1;;1789:15887:47;;;1595:184:72:o;:::-;1789:15887:47;;-1:-1:-1;1789:15887:47;;;1671:17:72;1789:15887:47;;;;;;;;;;-1:-1:-1;;;;;;234:9:37;;1789:15887:47;;;-1:-1:-1;;;;;1789:15887:47;;;1749:17:72;1789:15887:47;;;;;;;-1:-1:-1;;1789:15887:47;;;1595:184:72:o;1789:15887:47:-;;;;:::o;:::-;;;;;;;;;;;;2301:412:72;2416:25;1789:15887:47;;;11124:21:64;1789:15887:47;;;;2388:17:72;2381:25;2388:17;;;;2381:25;:::i;:::-;1789:15887:47;2423:17:72;;;;2416:25;:::i;:::-;-1:-1:-1;1789:15887:47;;;2468:17:72;1789:15887:47;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;2551:17:72;1789:15887:47;;;;;;;-1:-1:-1;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;2301:412:72:o;:::-;2416:25;1789:15887:47;;;12870:22:64;1789:15887:47;;;;2388:17:72;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;1789:15887:47;;;2468:17:72;1789:15887:47;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1789:15887:47;;;;;;2551:17:72;1789:15887:47;;;;;;;-1:-1:-1;;1789:15887:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1789:15887:47;;;;;;;;;;;;;;;;;;;2301:412:72:o","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":15402,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":11349,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":10922,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3030,"length":20},{"start":5873,"length":20},{"start":10742,"length":20},{"start":14803,"length":20},{"start":15122,"length":20}]}}},"methodIdentifiers":{"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)":"0db0f77c","addCheckpointSignature(uint256,bytes32[],uint256,bytes)":"53b4e7bf","applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":"c62eb4d5","applyFinalityChanges()":"0df14461","commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":"47dc9b4f","commitParentFinality((uint256,bytes32))":"11196974","createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":"74303771","createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)":"32e7661f","execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":"0bed7615","pruneBottomUpCheckpoints(uint256)":"ac818379","pruneBottomUpMsgBatches(uint256)":"bacc656d","storeValidatorChanges(((uint8,bytes,address),uint64)[])":"e49a547d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchWithNoMessages\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotConfirmFutureChanges\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CheckpointNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddIncompleteQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedAddSignatory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedRemoveIncompleteQuorum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchSource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointSource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidConfigurationNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgDstSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRetentionHeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxMsgsPerBatchExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughSubnetCircSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldConfigurationNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ParentFinalityAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"QuorumAlreadyProcessed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureReplay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotActive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroMembershipWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"membershipProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"addBottomUpMsgBatchSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"membershipProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"addCheckpointSignature\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"}],\"name\":\"applyCrossMessages\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"applyFinalityChanges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"name\":\"commitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"finality\",\"type\":\"tuple\"}],\"name\":\"commitParentFinality\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"hasCommittedBefore\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"previousFinality\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"membershipRootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"membershipWeight\",\"type\":\"uint256\"}],\"name\":\"createBottomUpCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"membershipRootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"membershipWeight\",\"type\":\"uint256\"}],\"name\":\"createBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"}],\"name\":\"execBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newRetentionHeight\",\"type\":\"uint256\"}],\"name\":\"pruneBottomUpCheckpoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newRetentionHeight\",\"type\":\"uint256\"}],\"name\":\"pruneBottomUpMsgBatches\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum StakingOperation\",\"name\":\"op\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"internalType\":\"struct StakingChange\",\"name\":\"change\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct StakingChangeRequest[]\",\"name\":\"changeRequests\",\"type\":\"tuple[]\"}],\"name\":\"storeValidatorChanges\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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\":{\"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)\":{\"params\":{\"height\":\"- the height of the block in the checkpoint\",\"membershipProof\":\"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`\",\"signature\":\"- the signature of the checkpoint\",\"weight\":\"- the weight of the validator\"}},\"addCheckpointSignature(uint256,bytes32[],uint256,bytes)\":{\"details\":\"If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints`\",\"params\":{\"height\":\"- the height of the block in the checkpoint\",\"membershipProof\":\"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`\",\"signature\":\"- the signature of the checkpoint\",\"weight\":\"- the weight of the validator\"}},\"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))\":{\"details\":\"this method is called by the corresponding subnet actor. Called from a subnet actor if the checkpoint is cryptographically valid.\"},\"commitParentFinality((uint256,bytes32))\":{\"params\":{\"finality\":\"- the parent finality\"}},\"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)\":{\"params\":{\"checkpoint\":\"- a bottom-up checkpoint\",\"membershipRootHash\":\"- a root hash of the Merkle tree built from the validator public keys and their weight\",\"membershipWeight\":\"- the total weight of the membership\"}},\"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)\":{\"params\":{\"batch\":\"- a bottom-up batch\",\"membershipRootHash\":\"- a root hash of the Merkle tree built from the validator public keys and their weight\",\"membershipWeight\":\"- the total weight of the membership\"}},\"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"details\":\"this method is called by the corresponding subnet actor. Called from a subnet actor if the batch is valid.\"},\"pruneBottomUpCheckpoints(uint256)\":{\"details\":\"`retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing. All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.\",\"params\":{\"newRetentionHeight\":\"- the height of the oldest checkpoint to keep\"}},\"pruneBottomUpMsgBatches(uint256)\":{\"params\":{\"newRetentionHeight\":\"- the height of the oldest batch to keep\"}},\"storeValidatorChanges(((uint8,bytes,address),uint64)[])\":{\"params\":{\"changeRequests\":\"- the validator changes\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)\":{\"notice\":\"checks whether the provided batch signature for the block at height `height` is valid and accumulates that\"},\"addCheckpointSignature(uint256,bytes32[],uint256,bytes)\":{\"notice\":\"checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it\"},\"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"notice\":\"apply cross messages\"},\"applyFinalityChanges()\":{\"notice\":\"Apply all changes committed through the commitment of parent finality\"},\"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))\":{\"notice\":\"submit a verified checkpoint in the gateway to trigger side-effects.\"},\"commitParentFinality((uint256,bytes32))\":{\"notice\":\"commit the ipc parent finality into storage and returns the previous committed finality This is useful to understand if the finalities are consistent or if there have been reorgs. If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash.\"},\"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)\":{\"notice\":\"creates a new bottom-up checkpoint\"},\"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)\":{\"notice\":\"cuts a new message batch if the batch period is reached without the maximum number of messages being reached.\"},\"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"notice\":\"submit a batch of cross-net messages for execution.\"},\"pruneBottomUpCheckpoints(uint256)\":{\"notice\":\"Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)\"},\"pruneBottomUpMsgBatches(uint256)\":{\"notice\":\"Set a new batch retention height and garbage collect all batches in range [`retentionHeight`, `newRetentionHeight`)\"},\"storeValidatorChanges(((uint8,bytes,address),uint64)[])\":{\"notice\":\"Store the validator change requests from parent.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/GatewayRouterFacet.sol\":\"GatewayRouterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21\",\"dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/gateway/GatewayRouterFacet.sol\":{\"keccak256\":\"0x409518aa2f9f3df22be447bdede6c4bdff2535be7a5209c997725cd6fc77c00e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b337abc4fe880c91eca25d1312fe6d1f2f6f9e95d564a9aecaa553d215d1422b\",\"dweb:/ipfs/QmQoT3xpE9QJPvcmXdpSkkYsSWew6qBMqreTkEvk9pxn64\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14\",\"dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7\",\"dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2\",\"dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"BatchAlreadyExists"},{"inputs":[],"type":"error","name":"BatchNotCreated"},{"inputs":[],"type":"error","name":"BatchWithNoMessages"},{"inputs":[],"type":"error","name":"CannotConfirmFutureChanges"},{"inputs":[],"type":"error","name":"CheckpointAlreadyExists"},{"inputs":[],"type":"error","name":"CheckpointNotCreated"},{"inputs":[],"type":"error","name":"FailedAddIncompleteQuorum"},{"inputs":[],"type":"error","name":"FailedAddSignatory"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"FailedRemoveIncompleteQuorum"},{"inputs":[],"type":"error","name":"InvalidActorAddress"},{"inputs":[],"type":"error","name":"InvalidBatchEpoch"},{"inputs":[],"type":"error","name":"InvalidBatchSource"},{"inputs":[],"type":"error","name":"InvalidCheckpointEpoch"},{"inputs":[],"type":"error","name":"InvalidCheckpointSource"},{"inputs":[],"type":"error","name":"InvalidConfigurationNumber"},{"inputs":[],"type":"error","name":"InvalidCrossMsgDstSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgNonce"},{"inputs":[],"type":"error","name":"InvalidRetentionHeight"},{"inputs":[],"type":"error","name":"InvalidSignature"},{"inputs":[],"type":"error","name":"InvalidSubnet"},{"inputs":[],"type":"error","name":"MaxMsgsPerBatchExceeded"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotAuthorized"},{"inputs":[],"type":"error","name":"NotEnoughBalance"},{"inputs":[],"type":"error","name":"NotEnoughSubnetCircSupply"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[],"type":"error","name":"NotSystemActor"},{"inputs":[],"type":"error","name":"OldConfigurationNumber"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ParentFinalityAlreadyCommitted"},{"inputs":[],"type":"error","name":"QuorumAlreadyProcessed"},{"inputs":[],"type":"error","name":"SignatureReplay"},{"inputs":[],"type":"error","name":"SubnetNotActive"},{"inputs":[],"type":"error","name":"SubnetNotFound"},{"inputs":[],"type":"error","name":"ZeroMembershipWeight"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32[]","name":"membershipProof","type":"bytes32[]"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addBottomUpMsgBatchSignature"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32[]","name":"membershipProof","type":"bytes32[]"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"addCheckpointSignature"},{"inputs":[{"internalType":"struct CrossMsg[]","name":"crossMsgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"applyCrossMessages"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"applyFinalityChanges","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"commitCheckpoint"},{"inputs":[{"internalType":"struct ParentFinality","name":"finality","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"commitParentFinality","outputs":[{"internalType":"bool","name":"hasCommittedBefore","type":"bool"},{"internalType":"struct ParentFinality","name":"previousFinality","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"bytes32","name":"membershipRootHash","type":"bytes32"},{"internalType":"uint256","name":"membershipWeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createBottomUpCheckpoint"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"bytes32","name":"membershipRootHash","type":"bytes32"},{"internalType":"uint256","name":"membershipWeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createBottomUpMsgBatch"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}],"stateMutability":"nonpayable","type":"function","name":"execBottomUpMsgBatch"},{"inputs":[{"internalType":"uint256","name":"newRetentionHeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"pruneBottomUpCheckpoints"},{"inputs":[{"internalType":"uint256","name":"newRetentionHeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"pruneBottomUpMsgBatches"},{"inputs":[{"internalType":"struct StakingChangeRequest[]","name":"changeRequests","type":"tuple[]","components":[{"internalType":"struct StakingChange","name":"change","type":"tuple","components":[{"internalType":"enum StakingOperation","name":"op","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"address","name":"validator","type":"address"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"storeValidatorChanges"}],"devdoc":{"kind":"dev","methods":{"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)":{"params":{"height":"- the height of the block in the checkpoint","membershipProof":"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`","signature":"- the signature of the checkpoint","weight":"- the weight of the validator"}},"addCheckpointSignature(uint256,bytes32[],uint256,bytes)":{"details":"If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints`","params":{"height":"- the height of the block in the checkpoint","membershipProof":"- a Merkle proof that the validator was in the membership at height `height` with weight `weight`","signature":"- the signature of the checkpoint","weight":"- the weight of the validator"}},"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":{"details":"this method is called by the corresponding subnet actor. Called from a subnet actor if the checkpoint is cryptographically valid."},"commitParentFinality((uint256,bytes32))":{"params":{"finality":"- the parent finality"}},"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":{"params":{"checkpoint":"- a bottom-up checkpoint","membershipRootHash":"- a root hash of the Merkle tree built from the validator public keys and their weight","membershipWeight":"- the total weight of the membership"}},"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)":{"params":{"batch":"- a bottom-up batch","membershipRootHash":"- a root hash of the Merkle tree built from the validator public keys and their weight","membershipWeight":"- the total weight of the membership"}},"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":{"details":"this method is called by the corresponding subnet actor. Called from a subnet actor if the batch is valid."},"pruneBottomUpCheckpoints(uint256)":{"details":"`retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing. All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.","params":{"newRetentionHeight":"- the height of the oldest checkpoint to keep"}},"pruneBottomUpMsgBatches(uint256)":{"params":{"newRetentionHeight":"- the height of the oldest batch to keep"}},"storeValidatorChanges(((uint8,bytes,address),uint64)[])":{"params":{"changeRequests":"- the validator changes"}}},"version":1},"userdoc":{"kind":"user","methods":{"addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)":{"notice":"checks whether the provided batch signature for the block at height `height` is valid and accumulates that"},"addCheckpointSignature(uint256,bytes32[],uint256,bytes)":{"notice":"checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it"},"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"notice":"apply cross messages"},"applyFinalityChanges()":{"notice":"Apply all changes committed through the commitment of parent finality"},"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":{"notice":"submit a verified checkpoint in the gateway to trigger side-effects."},"commitParentFinality((uint256,bytes32))":{"notice":"commit the ipc parent finality into storage and returns the previous committed finality This is useful to understand if the finalities are consistent or if there have been reorgs. If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash."},"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":{"notice":"creates a new bottom-up checkpoint"},"createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)":{"notice":"cuts a new message batch if the batch period is reached without the maximum number of messages being reached."},"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":{"notice":"submit a batch of cross-net messages for execution."},"pruneBottomUpCheckpoints(uint256)":{"notice":"Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)"},"pruneBottomUpMsgBatches(uint256)":{"notice":"Set a new batch retention height and garbage collect all batches in range [`retentionHeight`, `newRetentionHeight`)"},"storeValidatorChanges(((uint8,bytes,address),uint64)[])":{"notice":"Store the validator change requests from parent."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/GatewayRouterFacet.sol":"GatewayRouterFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140","urls":["bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21","dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayRouterFacet.sol":{"keccak256":"0x409518aa2f9f3df22be447bdede6c4bdff2535be7a5209c997725cd6fc77c00e","urls":["bzz-raw://b337abc4fe880c91eca25d1312fe6d1f2f6f9e95d564a9aecaa553d215d1422b","dweb:/ipfs/QmQoT3xpE9QJPvcmXdpSkkYsSWew6qBMqreTkEvk9pxn64"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3","urls":["bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14","dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d","urls":["bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7","dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c","urls":["bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2","dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/GatewayRouterFacet.sol","id":39707,"exportedSymbols":{"Address":[32409],"BatchAlreadyExists":[36948],"BatchNotCreated":[36956],"BatchWithNoMessages":[36976],"BottomUpCheckpoint":[48410],"BottomUpMsgBatch":[48423],"CheckpointAlreadyExists":[36946],"CheckpointNotCreated":[36954],"CrossMsg":[48452],"CrossMsgHelper":[40328],"FilAddress":[1428],"GatewayActorModifiers":[42438],"GatewayRouterFacet":[39706],"IPCMsgType":[36923],"ISubnetActor":[39978],"InvalidBatchEpoch":[36974],"InvalidBatchSource":[36980],"InvalidCheckpointEpoch":[36972],"InvalidCheckpointSource":[36978],"InvalidCrossMsgDstSubnet":[36988],"InvalidCrossMsgNonce":[36992],"InvalidSubnet":[37014],"LibGateway":[42242],"LibQuorum":[43249],"LibValidatorSet":[44594],"LibValidatorTracking":[45728],"METHOD_SEND":[36441],"MaxMsgsPerBatchExceeded":[36950],"Membership":[48701],"NotEnoughBalance":[37030],"NotEnoughSubnetCircSupply":[37042],"NotRegisteredSubnet":[37050],"ParentFinality":[48396],"ParentValidatorsTracker":[48680],"QuorumObjKind":[48490],"StakingChangeRequest":[48593],"Status":[36932],"StorableMsg":[48469],"StorableMsgHelper":[46265],"Subnet":[48574],"SubnetID":[48557],"SubnetIDHelper":[46876],"SubnetNotActive":[37074],"SubnetNotFound":[37076],"Validator":[48694],"ValidatorInfo":[48644],"ValidatorSet":[48673]},"nodeType":"SourceUnit","src":"46:17631:47","nodes":[{"id":38676,"nodeType":"PragmaDirective","src":"46:23:47","nodes":[],"literals":["solidity","0.8",".19"]},{"id":38678,"nodeType":"ImportDirective","src":"71:60:47","nodes":[],"absolutePath":"src/interfaces/ISubnetActor.sol","file":"../interfaces/ISubnetActor.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":39979,"symbolAliases":[{"foreign":{"id":38677,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39978,"src":"79:12:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38680,"nodeType":"ImportDirective","src":"132:72:47","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":42439,"symbolAliases":[{"foreign":{"id":38679,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42438,"src":"140:21:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38682,"nodeType":"ImportDirective","src":"205:55:47","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":36442,"symbolAliases":[{"foreign":{"id":38681,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"213:11:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38688,"nodeType":"ImportDirective","src":"261:116:47","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":38683,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"269:8:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38684,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"279:11:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38685,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"292:14:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38686,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"308:18:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38687,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48423,"src":"328:16:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38690,"nodeType":"ImportDirective","src":"378:52:47","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":48538,"symbolAliases":[{"foreign":{"id":38689,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48490,"src":"386:13:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38692,"nodeType":"ImportDirective","src":"431:43:47","nodes":[],"absolutePath":"src/enums/Status.sol","file":"../enums/Status.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":36933,"symbolAliases":[{"foreign":{"id":38691,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"439:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38694,"nodeType":"ImportDirective","src":"475:51:47","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":36924,"symbolAliases":[{"foreign":{"id":38693,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36923,"src":"483:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38700,"nodeType":"ImportDirective","src":"527:95:47","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":38695,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"535:8:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38696,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48574,"src":"545:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38697,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"553:9:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38698,"name":"ValidatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48644,"src":"564:13:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38699,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48673,"src":"579:12:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38702,"nodeType":"ImportDirective","src":"623:51:47","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":36924,"symbolAliases":[{"foreign":{"id":38701,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36923,"src":"631:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38704,"nodeType":"ImportDirective","src":"675:49:47","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":38703,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48701,"src":"683:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38710,"nodeType":"ImportDirective","src":"725:146:47","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":38705,"name":"BatchNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36956,"src":"733:15:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38706,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36974,"src":"750:17:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38707,"name":"BatchAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36948,"src":"769:18:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38708,"name":"NotEnoughSubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37042,"src":"789:25:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38709,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36972,"src":"816:22:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38719,"nodeType":"ImportDirective","src":"872:221:47","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":38711,"name":"InvalidBatchSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36980,"src":"880:18:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38712,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37030,"src":"900:16:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38713,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36950,"src":"918:23:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38714,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36976,"src":"943:19:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38715,"name":"InvalidCheckpointSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36978,"src":"964:23:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38716,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36992,"src":"989:20:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38717,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36988,"src":"1011:24:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38718,"name":"CheckpointAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36946,"src":"1037:23:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38725,"nodeType":"ImportDirective","src":"1094:130:47","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":38720,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37050,"src":"1102:19:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38721,"name":"SubnetNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37074,"src":"1123:15:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38722,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37076,"src":"1140:14:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38723,"name":"InvalidSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37014,"src":"1156:13:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38724,"name":"CheckpointNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36954,"src":"1171:20:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38727,"nodeType":"ImportDirective","src":"1225:63:47","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":46266,"symbolAliases":[{"foreign":{"id":38726,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"1233:17:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38729,"nodeType":"ImportDirective","src":"1289:57:47","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":46877,"symbolAliases":[{"foreign":{"id":38728,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46876,"src":"1297:14:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38731,"nodeType":"ImportDirective","src":"1347:57:47","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":40329,"symbolAliases":[{"foreign":{"id":38730,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40328,"src":"1355:14:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38733,"nodeType":"ImportDirective","src":"1405:49:47","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":42243,"symbolAliases":[{"foreign":{"id":38732,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"1413:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38735,"nodeType":"ImportDirective","src":"1455:47:47","nodes":[],"absolutePath":"src/lib/LibQuorum.sol","file":"../lib/LibQuorum.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":43250,"symbolAliases":[{"foreign":{"id":38734,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43249,"src":"1463:9:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38737,"nodeType":"ImportDirective","src":"1503:56:47","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":38736,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"1511:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38740,"nodeType":"ImportDirective","src":"1560:84:47","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":38738,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48593,"src":"1568:20:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38739,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48680,"src":"1590:23:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38743,"nodeType":"ImportDirective","src":"1645:76:47","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":45729,"symbolAliases":[{"foreign":{"id":38741,"name":"LibValidatorTracking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45728,"src":"1653:20:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":38742,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44594,"src":"1675:15:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38745,"nodeType":"ImportDirective","src":"1722:65:47","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":39707,"sourceUnit":32410,"symbolAliases":[{"foreign":{"id":38744,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"1730:7:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39706,"nodeType":"ContractDefinition","src":"1789:15887:47","nodes":[{"id":38750,"nodeType":"UsingForDirective","src":"1848:29:47","nodes":[],"global":false,"libraryName":{"id":38748,"name":"FilAddress","nameLocations":["1854:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"1854:10:47"},"typeName":{"id":38749,"name":"address","nodeType":"ElementaryTypeName","src":"1869:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":38754,"nodeType":"UsingForDirective","src":"1882:34:47","nodes":[],"global":false,"libraryName":{"id":38751,"name":"SubnetIDHelper","nameLocations":["1888:14:47"],"nodeType":"IdentifierPath","referencedDeclaration":46876,"src":"1888:14:47"},"typeName":{"id":38753,"nodeType":"UserDefinedTypeName","pathNode":{"id":38752,"name":"SubnetID","nameLocations":["1907:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1907:8:47"},"referencedDeclaration":48557,"src":"1907:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}}},{"id":38758,"nodeType":"UsingForDirective","src":"1921:34:47","nodes":[],"global":false,"libraryName":{"id":38755,"name":"CrossMsgHelper","nameLocations":["1927:14:47"],"nodeType":"IdentifierPath","referencedDeclaration":40328,"src":"1927:14:47"},"typeName":{"id":38757,"nodeType":"UserDefinedTypeName","pathNode":{"id":38756,"name":"CrossMsg","nameLocations":["1946:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"1946:8:47"},"referencedDeclaration":48452,"src":"1946:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}}},{"id":38762,"nodeType":"UsingForDirective","src":"1960:40:47","nodes":[],"global":false,"libraryName":{"id":38759,"name":"StorableMsgHelper","nameLocations":["1966:17:47"],"nodeType":"IdentifierPath","referencedDeclaration":46265,"src":"1966:17:47"},"typeName":{"id":38761,"nodeType":"UserDefinedTypeName","pathNode":{"id":38760,"name":"StorableMsg","nameLocations":["1988:11:47"],"nodeType":"IdentifierPath","referencedDeclaration":48469,"src":"1988:11:47"},"referencedDeclaration":48469,"src":"1988:11:47","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_storage_ptr","typeString":"struct StorableMsg"}}},{"id":38766,"nodeType":"UsingForDirective","src":"2005:55:47","nodes":[],"global":false,"libraryName":{"id":38763,"name":"LibValidatorTracking","nameLocations":["2011:20:47"],"nodeType":"IdentifierPath","referencedDeclaration":45728,"src":"2011:20:47"},"typeName":{"id":38765,"nodeType":"UserDefinedTypeName","pathNode":{"id":38764,"name":"ParentValidatorsTracker","nameLocations":["2036:23:47"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"2036:23:47"},"referencedDeclaration":48680,"src":"2036:23:47","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}}},{"id":38770,"nodeType":"UsingForDirective","src":"2065:39:47","nodes":[],"global":false,"libraryName":{"id":38767,"name":"LibValidatorSet","nameLocations":["2071:15:47"],"nodeType":"IdentifierPath","referencedDeclaration":44594,"src":"2071:15:47"},"typeName":{"id":38769,"nodeType":"UserDefinedTypeName","pathNode":{"id":38768,"name":"ValidatorSet","nameLocations":["2091:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"2091:12:47"},"referencedDeclaration":48673,"src":"2091:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":38853,"nodeType":"FunctionDefinition","src":"2346:1088:47","nodes":[],"body":{"id":38852,"nodeType":"Block","src":"2421:1013:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":38783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":38777,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38774,"src":"2493:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":38778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2504:8:47","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":48400,"src":"2493:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":38779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2513:8:47","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":46569,"src":"2493:28:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2493:30:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":38781,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2527:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2531:6:47","memberName":"sender","nodeType":"MemberAccess","src":"2527:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2493:44:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38788,"nodeType":"IfStatement","src":"2489:107:47","trueBody":{"id":38787,"nodeType":"Block","src":"2539:57:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38784,"name":"InvalidCheckpointSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36978,"src":"2560:23:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2560:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38786,"nodeType":"RevertStatement","src":"2553:32:47"}]}},{"assignments":[38790,38793],"declarations":[{"constant":false,"id":38790,"mutability":"mutable","name":"subnetExists","nameLocation":"2611:12:47","nodeType":"VariableDeclaration","scope":38852,"src":"2606:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38789,"name":"bool","nodeType":"ElementaryTypeName","src":"2606:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38793,"mutability":"mutable","name":"subnet","nameLocation":"2640:6:47","nodeType":"VariableDeclaration","scope":38852,"src":"2625:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38792,"nodeType":"UserDefinedTypeName","pathNode":{"id":38791,"name":"Subnet","nameLocations":["2625:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"2625:6:47"},"referencedDeclaration":48574,"src":"2625:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38799,"initialValue":{"arguments":[{"expression":{"id":38796,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2671:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2675:6:47","memberName":"sender","nodeType":"MemberAccess","src":"2671:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38794,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"2650:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":38795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2661:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42180,"src":"2650:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2650:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"2605:77:47"},{"condition":{"id":38801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2696:13:47","subExpression":{"id":38800,"name":"subnetExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38790,"src":"2697:12:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38806,"nodeType":"IfStatement","src":"2692:67:47","trueBody":{"id":38805,"nodeType":"Block","src":"2711:48:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38802,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37076,"src":"2732:14:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2732:16:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38804,"nodeType":"RevertStatement","src":"2725:23:47"}]}},{"condition":{"id":38813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2772:38:47","subExpression":{"arguments":[{"expression":{"id":38810,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38793,"src":"2800:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2807:2:47","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":48573,"src":"2800:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"id":38807,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38774,"src":"2773:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":38808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2784:8:47","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":48400,"src":"2773:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":38809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2793:6:47","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":46629,"src":"2773:26:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":38812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2773:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38818,"nodeType":"IfStatement","src":"2768:91:47","trueBody":{"id":38817,"nodeType":"Block","src":"2812:47:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38814,"name":"InvalidSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37014,"src":"2833:13:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2833:15:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38816,"nodeType":"RevertStatement","src":"2826:22:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"id":38823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38819,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38793,"src":"2926:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2933:6:47","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":48570,"src":"2926:13:47","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":38821,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"2943:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$36932_$","typeString":"type(enum Status)"}},"id":38822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2950:6:47","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":36927,"src":"2943:13:47","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"src":"2926:30:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38828,"nodeType":"IfStatement","src":"2922:85:47","trueBody":{"id":38827,"nodeType":"Block","src":"2958:49:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38824,"name":"SubnetNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37074,"src":"2979:15:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2979:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38826,"nodeType":"RevertStatement","src":"2972:24:47"}]}},{"condition":{"expression":{"id":38829,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"3021:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38830,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3023:24:47","memberName":"checkpointRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":42365,"src":"3021:26:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38851,"nodeType":"IfStatement","src":"3017:411:47","trueBody":{"id":38850,"nodeType":"Block","src":"3049:379:47","statements":[{"expression":{"arguments":[{"expression":{"id":38834,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3174:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3178:6:47","memberName":"sender","nodeType":"MemberAccess","src":"3174:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":38838,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39978,"src":"3244:12:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISubnetActor_$39978_$","typeString":"type(contract ISubnetActor)"}},"id":38839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3257:26:47","memberName":"distributeRewardToRelayers","nodeType":"MemberAccess","referencedDeclaration":39977,"src":"3244:39:47","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$48490_$returns$__$","typeString":"function ISubnetActor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"}},{"components":[{"expression":{"id":38840,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38774,"src":"3306:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":38841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3317:11:47","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"3306:22:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":38842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3330:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"id":38843,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48490,"src":"3333:13:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$48490_$","typeString":"type(enum QuorumObjKind)"}},"id":38844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3347:10:47","memberName":"Checkpoint","nodeType":"MemberAccess","referencedDeclaration":48488,"src":"3333:24:47","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"}}],"id":38845,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3305:53:47","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_rational_0_by_1_$_t_enum$_QuorumObjKind_$48490_$","typeString":"tuple(uint256,int_const 0,enum QuorumObjKind)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$48490_$returns$__$","typeString":"function ISubnetActor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"},{"typeIdentifier":"t_tuple$_t_uint256_$_t_rational_0_by_1_$_t_enum$_QuorumObjKind_$48490_$","typeString":"tuple(uint256,int_const 0,enum QuorumObjKind)"}],"expression":{"id":38836,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3208:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3212:10:47","memberName":"encodeCall","nodeType":"MemberAccess","src":"3208:14:47","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":38846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3208:168:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":38847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3401:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":38831,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"3118:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32409_$","typeString":"type(library Address)"}},"id":38833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3126:21:47","memberName":"functionCallWithValue","nodeType":"MemberAccess","referencedDeclaration":32141,"src":"3118:29:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":38848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3166:6:47","3202:4:47","3394:5:47"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"3118:299:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":38849,"nodeType":"ExpressionStatement","src":"3118:299:47"}]}}]},"documentation":{"id":38771,"nodeType":"StructuredDocumentation","src":"2110:231:47","text":"@notice submit a verified checkpoint in the gateway to trigger side-effects.\n @dev this method is called by the corresponding subnet actor.\n Called from a subnet actor if the checkpoint is cryptographically valid."},"functionSelector":"47dc9b4f","implemented":true,"kind":"function","modifiers":[],"name":"commitCheckpoint","nameLocation":"2355:16:47","parameters":{"id":38775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38774,"mutability":"mutable","name":"checkpoint","nameLocation":"2400:10:47","nodeType":"VariableDeclaration","scope":38853,"src":"2372:38:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":38773,"nodeType":"UserDefinedTypeName","pathNode":{"id":38772,"name":"BottomUpCheckpoint","nameLocations":["2372:18:47"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"2372:18:47"},"referencedDeclaration":48410,"src":"2372:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"2371:40:47"},"returnParameters":{"id":38776,"nodeType":"ParameterList","parameters":[],"src":"2421:0:47"},"scope":39706,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":38998,"nodeType":"FunctionDefinition","src":"3636:1583:47","nodes":[],"body":{"id":38997,"nodeType":"Block","src":"3708:1511:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":38866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":38860,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38857,"src":"3722:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":38861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3728:8:47","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":48414,"src":"3722:14:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":38862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3737:8:47","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":46569,"src":"3722:23:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":38863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3722:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":38864,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3751:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3755:6:47","memberName":"sender","nodeType":"MemberAccess","src":"3751:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3722:39:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38871,"nodeType":"IfStatement","src":"3718:97:47","trueBody":{"id":38870,"nodeType":"Block","src":"3763:52:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38867,"name":"InvalidBatchSource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36980,"src":"3784:18:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3784:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38869,"nodeType":"RevertStatement","src":"3777:27:47"}]}},{"expression":{"arguments":[{"id":38873,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38857,"src":"3841:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"id":38872,"name":"_checkMsgLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39705,"src":"3825:15:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_BottomUpMsgBatch_$48423_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory) view"}},"id":38874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3825:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38875,"nodeType":"ExpressionStatement","src":"3825:22:47"},{"assignments":[38877,38880],"declarations":[{"constant":false,"id":38877,"mutability":"mutable","name":"subnetExists","nameLocation":"3864:12:47","nodeType":"VariableDeclaration","scope":38997,"src":"3859:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38876,"name":"bool","nodeType":"ElementaryTypeName","src":"3859:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38880,"mutability":"mutable","name":"subnet","nameLocation":"3893:6:47","nodeType":"VariableDeclaration","scope":38997,"src":"3878:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":38879,"nodeType":"UserDefinedTypeName","pathNode":{"id":38878,"name":"Subnet","nameLocations":["3878:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"3878:6:47"},"referencedDeclaration":48574,"src":"3878:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":38886,"initialValue":{"arguments":[{"expression":{"id":38883,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3924:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3928:6:47","memberName":"sender","nodeType":"MemberAccess","src":"3924:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38881,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"3903:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":38882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3914:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42180,"src":"3903:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"function (address) view returns (bool,struct Subnet storage pointer)"}},"id":38885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3903:32:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"3858:77:47"},{"condition":{"id":38888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3949:13:47","subExpression":{"id":38887,"name":"subnetExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38877,"src":"3950:12:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38893,"nodeType":"IfStatement","src":"3945:67:47","trueBody":{"id":38892,"nodeType":"Block","src":"3964:48:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38889,"name":"SubnetNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37076,"src":"3985:14:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3985:16:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38891,"nodeType":"RevertStatement","src":"3978:23:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"id":38898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38894,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38880,"src":"4094:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4101:6:47","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":48570,"src":"4094:13:47","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":38896,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"4111:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$36932_$","typeString":"type(enum Status)"}},"id":38897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4118:6:47","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":36927,"src":"4111:13:47","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"src":"4094:30:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38903,"nodeType":"IfStatement","src":"4090:85:47","trueBody":{"id":38902,"nodeType":"Block","src":"4126:49:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38899,"name":"SubnetNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37074,"src":"4147:15:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4147:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38901,"nodeType":"RevertStatement","src":"4140:24:47"}]}},{"assignments":[38905],"declarations":[{"constant":false,"id":38905,"mutability":"mutable","name":"totalValue","nameLocation":"4193:10:47","nodeType":"VariableDeclaration","scope":38997,"src":"4185:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38904,"name":"uint256","nodeType":"ElementaryTypeName","src":"4185:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38906,"nodeType":"VariableDeclarationStatement","src":"4185:18:47"},{"assignments":[38908],"declarations":[{"constant":false,"id":38908,"mutability":"mutable","name":"totalFee","nameLocation":"4221:8:47","nodeType":"VariableDeclaration","scope":38997,"src":"4213:16:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38907,"name":"uint256","nodeType":"ElementaryTypeName","src":"4213:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38909,"nodeType":"VariableDeclarationStatement","src":"4213:16:47"},{"assignments":[38911],"declarations":[{"constant":false,"id":38911,"mutability":"mutable","name":"crossMsgLength","nameLocation":"4247:14:47","nodeType":"VariableDeclaration","scope":38997,"src":"4239:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38910,"name":"uint256","nodeType":"ElementaryTypeName","src":"4239:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38915,"initialValue":{"expression":{"expression":{"id":38912,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38857,"src":"4264:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":38913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4270:4:47","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"4264:10:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":38914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4275:6:47","memberName":"length","nodeType":"MemberAccess","src":"4264:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4239:42:47"},{"body":{"id":38944,"nodeType":"Block","src":"4329:176:47","statements":[{"expression":{"id":38929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38922,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38905,"src":"4343:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"expression":{"baseExpression":{"expression":{"id":38923,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38857,"src":"4357:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":38924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4363:4:47","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"4357:10:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":38926,"indexExpression":{"id":38925,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38917,"src":"4368:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4357:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4371:7:47","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"4357:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4379:5:47","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48460,"src":"4357:27:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4343:41:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38930,"nodeType":"ExpressionStatement","src":"4343:41:47"},{"expression":{"id":38938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38931,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38908,"src":"4398:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"expression":{"baseExpression":{"expression":{"id":38932,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38857,"src":"4410:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":38933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4416:4:47","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"4410:10:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":38935,"indexExpression":{"id":38934,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38917,"src":"4421:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4410:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_calldata_ptr","typeString":"struct CrossMsg calldata"}},"id":38936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4424:7:47","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"4410:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":38937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4432:3:47","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":48468,"src":"4410:25:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4398:37:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38939,"nodeType":"ExpressionStatement","src":"4398:37:47"},{"id":38943,"nodeType":"UncheckedBlock","src":"4449:46:47","statements":[{"expression":{"id":38941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4477:3:47","subExpression":{"id":38940,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38917,"src":"4479:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38942,"nodeType":"ExpressionStatement","src":"4477:3:47"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38919,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38917,"src":"4307:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38920,"name":"crossMsgLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38911,"src":"4311:14:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4307:18:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38945,"initializationExpression":{"assignments":[38917],"declarations":[{"constant":false,"id":38917,"mutability":"mutable","name":"i","nameLocation":"4304:1:47","nodeType":"VariableDeclaration","scope":38945,"src":"4296:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38916,"name":"uint256","nodeType":"ElementaryTypeName","src":"4296:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38918,"nodeType":"VariableDeclarationStatement","src":"4296:9:47"},"nodeType":"ForStatement","src":"4291:214:47"},{"assignments":[38947],"declarations":[{"constant":false,"id":38947,"mutability":"mutable","name":"totalAmount","nameLocation":"4523:11:47","nodeType":"VariableDeclaration","scope":38997,"src":"4515:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38946,"name":"uint256","nodeType":"ElementaryTypeName","src":"4515:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38951,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38948,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38908,"src":"4537:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":38949,"name":"totalValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38905,"src":"4548:10:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4537:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4515:43:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":38952,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38880,"src":"4573:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4580:10:47","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":48563,"src":"4573:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":38954,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38947,"src":"4593:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4573:31:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38960,"nodeType":"IfStatement","src":"4569:96:47","trueBody":{"id":38959,"nodeType":"Block","src":"4606:59:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":38956,"name":"NotEnoughSubnetCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37042,"src":"4627:25:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":38957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4627:27:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38958,"nodeType":"RevertStatement","src":"4620:34:47"}]}},{"expression":{"id":38965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":38961,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38880,"src":"4675:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4682:10:47","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":48563,"src":"4675:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":38964,"name":"totalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38947,"src":"4696:11:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4675:32:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38966,"nodeType":"ExpressionStatement","src":"4675:32:47"},{"expression":{"arguments":[{"expression":{"id":38968,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38880,"src":"4767:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":38969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4774:2:47","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":48573,"src":"4767:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},{"expression":{"id":38970,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38857,"src":"4778:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":38971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4784:4:47","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"4778:10:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"},{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"id":38967,"name":"_applyMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39375,"src":"4752:14:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SubnetID_$48557_memory_ptr_$_t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct CrossMsg memory[] memory)"}},"id":38972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4752:37:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38973,"nodeType":"ExpressionStatement","src":"4752:37:47"},{"condition":{"expression":{"id":38974,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"4804:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":38975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4806:22:47","memberName":"crossMsgRelayerRewards","nodeType":"MemberAccess","referencedDeclaration":42368,"src":"4804:24:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38996,"nodeType":"IfStatement","src":"4800:413:47","trueBody":{"id":38995,"nodeType":"Block","src":"4830:383:47","statements":[{"expression":{"arguments":[{"expression":{"id":38979,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4955:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4959:6:47","memberName":"sender","nodeType":"MemberAccess","src":"4955:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":38983,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39978,"src":"5025:12:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISubnetActor_$39978_$","typeString":"type(contract ISubnetActor)"}},"id":38984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5038:26:47","memberName":"distributeRewardToRelayers","nodeType":"MemberAccess","referencedDeclaration":39977,"src":"5025:39:47","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$48490_$returns$__$","typeString":"function ISubnetActor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"}},{"components":[{"expression":{"id":38985,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5087:5:47","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":38986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5093:6:47","memberName":"number","nodeType":"MemberAccess","src":"5087:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38987,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38908,"src":"5101:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":38988,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48490,"src":"5111:13:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$48490_$","typeString":"type(enum QuorumObjKind)"}},"id":38989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5125:10:47","memberName":"Checkpoint","nodeType":"MemberAccess","referencedDeclaration":48488,"src":"5111:24:47","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"}}],"id":38990,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5086:50:47","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$48490_$","typeString":"tuple(uint256,uint256,enum QuorumObjKind)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_payable$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$48490_$returns$__$","typeString":"function ISubnetActor.distributeRewardToRelayers(uint256,uint256,enum QuorumObjKind) payable"},{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_enum$_QuorumObjKind_$48490_$","typeString":"tuple(uint256,uint256,enum QuorumObjKind)"}],"expression":{"id":38981,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4989:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4993:10:47","memberName":"encodeCall","nodeType":"MemberAccess","src":"4989:14:47","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":38991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4989:165:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":38992,"name":"totalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38908,"src":"5179:8:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38976,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"4899:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32409_$","typeString":"type(library Address)"}},"id":38978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4907:21:47","memberName":"functionCallWithValue","nodeType":"MemberAccess","referencedDeclaration":32141,"src":"4899:29:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":38993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["4947:6:47","4983:4:47","5172:5:47"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"4899:303:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":38994,"nodeType":"ExpressionStatement","src":"4899:303:47"}]}}]},"documentation":{"id":38854,"nodeType":"StructuredDocumentation","src":"3440:191:47","text":"@notice submit a batch of cross-net messages for execution.\n @dev this method is called by the corresponding subnet actor.\n Called from a subnet actor if the batch is valid."},"functionSelector":"0bed7615","implemented":true,"kind":"function","modifiers":[],"name":"execBottomUpMsgBatch","nameLocation":"3645:20:47","parameters":{"id":38858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38857,"mutability":"mutable","name":"batch","nameLocation":"3692:5:47","nodeType":"VariableDeclaration","scope":38998,"src":"3666:31:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":38856,"nodeType":"UserDefinedTypeName","pathNode":{"id":38855,"name":"BottomUpMsgBatch","nameLocations":["3666:16:47"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"3666:16:47"},"referencedDeclaration":48423,"src":"3666:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"3665:33:47"},"returnParameters":{"id":38859,"nodeType":"ParameterList","parameters":[],"src":"3708:0:47"},"scope":39706,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39027,"nodeType":"FunctionDefinition","src":"5597:313:47","nodes":[],"body":{"id":39026,"nodeType":"Block","src":"5774:136:47","nodes":[],"statements":[{"expression":{"id":39017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39012,"name":"previousFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39010,"src":"5784:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39015,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39002,"src":"5835:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_calldata_ptr","typeString":"struct ParentFinality calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$48396_calldata_ptr","typeString":"struct ParentFinality calldata"}],"expression":{"id":39013,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"5803:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":39014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5814:20:47","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":41629,"src":"5803:31:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentFinality_$48396_calldata_ptr_$returns$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"function (struct ParentFinality calldata) returns (struct ParentFinality memory)"}},"id":39016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5803:41:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"src":"5784:60:47","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"id":39018,"nodeType":"ExpressionStatement","src":"5784:60:47"},{"expression":{"id":39024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39019,"name":"hasCommittedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39007,"src":"5854:18:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39020,"name":"previousFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39010,"src":"5875:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"id":39021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5892:6:47","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":48393,"src":"5875:23:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5902:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5875:28:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5854:49:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39025,"nodeType":"ExpressionStatement","src":"5854:49:47"}]},"documentation":{"id":38999,"nodeType":"StructuredDocumentation","src":"5225:367:47","text":"@notice commit the ipc parent finality into storage and returns the previous committed finality\n This is useful to understand if the finalities are consistent or if there have been reorgs.\n If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash.\n @param finality - the parent finality"},"functionSelector":"11196974","implemented":true,"kind":"function","modifiers":[{"id":39005,"kind":"modifierInvocation","modifierName":{"id":39004,"name":"systemActorOnly","nameLocations":["5684:15:47"],"nodeType":"IdentifierPath","referencedDeclaration":42437,"src":"5684:15:47"},"nodeType":"ModifierInvocation","src":"5684:15:47"}],"name":"commitParentFinality","nameLocation":"5606:20:47","parameters":{"id":39003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39002,"mutability":"mutable","name":"finality","nameLocation":"5660:8:47","nodeType":"VariableDeclaration","scope":39027,"src":"5636:32:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_calldata_ptr","typeString":"struct ParentFinality"},"typeName":{"id":39001,"nodeType":"UserDefinedTypeName","pathNode":{"id":39000,"name":"ParentFinality","nameLocations":["5636:14:47"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"5636:14:47"},"referencedDeclaration":48396,"src":"5636:14:47","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"5626:48:47"},"returnParameters":{"id":39011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39007,"mutability":"mutable","name":"hasCommittedBefore","nameLocation":"5714:18:47","nodeType":"VariableDeclaration","scope":39027,"src":"5709:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39006,"name":"bool","nodeType":"ElementaryTypeName","src":"5709:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39010,"mutability":"mutable","name":"previousFinality","nameLocation":"5756:16:47","nodeType":"VariableDeclaration","scope":39027,"src":"5734:38:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":39009,"nodeType":"UserDefinedTypeName","pathNode":{"id":39008,"name":"ParentFinality","nameLocations":["5734:14:47"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"5734:14:47"},"referencedDeclaration":48396,"src":"5734:14:47","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"5708:65:47"},"scope":39706,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39046,"nodeType":"FunctionDefinition","src":"6035:173:47","nodes":[],"body":{"id":39045,"nodeType":"Block","src":"6139:69:47","nodes":[],"statements":[{"expression":{"arguments":[{"id":39042,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39032,"src":"6186:14:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}],"expression":{"expression":{"id":39037,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"6149:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6151:17:47","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42353,"src":"6149:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6169:16:47","memberName":"batchStoreChange","nodeType":"MemberAccess","referencedDeclaration":45549,"src":"6149:36:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$48680_storage_ptr_$_t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr_$returns$__$attached_to$_t_struct$_ParentValidatorsTracker_$48680_storage_ptr_$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata[] calldata)"}},"id":39043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6149:52:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39044,"nodeType":"ExpressionStatement","src":"6149:52:47"}]},"documentation":{"id":39028,"nodeType":"StructuredDocumentation","src":"5916:114:47","text":"@notice Store the validator change requests from parent.\n @param changeRequests - the validator changes"},"functionSelector":"e49a547d","implemented":true,"kind":"function","modifiers":[{"id":39035,"kind":"modifierInvocation","modifierName":{"id":39034,"name":"systemActorOnly","nameLocations":["6123:15:47"],"nodeType":"IdentifierPath","referencedDeclaration":42437,"src":"6123:15:47"},"nodeType":"ModifierInvocation","src":"6123:15:47"}],"name":"storeValidatorChanges","nameLocation":"6044:21:47","parameters":{"id":39033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39032,"mutability":"mutable","name":"changeRequests","nameLocation":"6098:14:47","nodeType":"VariableDeclaration","scope":39046,"src":"6066:46:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":39030,"nodeType":"UserDefinedTypeName","pathNode":{"id":39029,"name":"StakingChangeRequest","nameLocations":["6066:20:47"],"nodeType":"IdentifierPath","referencedDeclaration":48593,"src":"6066:20:47"},"referencedDeclaration":48593,"src":"6066:20:47","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":39031,"nodeType":"ArrayTypeName","src":"6066:22:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"6065:48:47"},"returnParameters":{"id":39036,"nodeType":"ParameterList","parameters":[],"src":"6139:0:47"},"scope":39706,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39164,"nodeType":"FunctionDefinition","src":"6300:1485:47","nodes":[],"body":{"id":39163,"nodeType":"Block","src":"6374:1411:47","nodes":[],"statements":[{"assignments":[39055],"declarations":[{"constant":false,"id":39055,"mutability":"mutable","name":"configurationNumber","nameLocation":"6457:19:47","nodeType":"VariableDeclaration","scope":39163,"src":"6450:26:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":39054,"name":"uint64","nodeType":"ElementaryTypeName","src":"6450:6:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":39062,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":39061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"id":39056,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"6479:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6481:17:47","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42353,"src":"6479:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6499:7:47","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"6479:27:47","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":39059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6507:23:47","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"6479:51:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":39060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6533:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6479:55:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"6450:84:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":39071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":39065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39063,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39055,"src":"6732:19:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":39064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6754:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6732:23:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":39066,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6731:25:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"expression":{"id":39067,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"6760:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6762:17:47","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42353,"src":"6760:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6780:7:47","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"6760:27:47","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":39070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6788:24:47","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"6760:52:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6731:81:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39075,"nodeType":"IfStatement","src":"6641:264:47","trueBody":{"id":39074,"nodeType":"Block","src":"6823:82:47","statements":[{"expression":{"hexValue":"30","id":39072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6893:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":39053,"id":39073,"nodeType":"Return","src":"6886:8:47"}]}},{"expression":{"arguments":[{"id":39081,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39055,"src":"6978:19:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":39076,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"6944:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6946:17:47","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42353,"src":"6944:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6964:13:47","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":45727,"src":"6944:33:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$48680_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_ParentValidatorsTracker_$48680_storage_ptr_$","typeString":"function (struct ParentValidatorsTracker storage pointer,uint64)"}},"id":39082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6944:54:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39083,"nodeType":"ExpressionStatement","src":"6944:54:47"},{"assignments":[39088],"declarations":[{"constant":false,"id":39088,"mutability":"mutable","name":"validators","nameLocation":"7063:10:47","nodeType":"VariableDeclaration","scope":39163,"src":"7046:27:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":39086,"name":"address","nodeType":"ElementaryTypeName","src":"7046:7:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39087,"nodeType":"ArrayTypeName","src":"7046:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":39094,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":39089,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"7076:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7078:17:47","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42353,"src":"7076:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7096:10:47","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"7076:30:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":39092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7107:20:47","memberName":"listActiveValidators","nodeType":"MemberAccess","referencedDeclaration":43790,"src":"7076:51:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (address[] memory)"}},"id":39093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7076:53:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7046:83:47"},{"assignments":[39096],"declarations":[{"constant":false,"id":39096,"mutability":"mutable","name":"vLength","nameLocation":"7147:7:47","nodeType":"VariableDeclaration","scope":39163,"src":"7139:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39095,"name":"uint256","nodeType":"ElementaryTypeName","src":"7139:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39099,"initialValue":{"expression":{"id":39097,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39088,"src":"7157:10:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":39098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7168:6:47","memberName":"length","nodeType":"MemberAccess","src":"7157:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7139:35:47"},{"assignments":[39104],"declarations":[{"constant":false,"id":39104,"mutability":"mutable","name":"vs","nameLocation":"7203:2:47","nodeType":"VariableDeclaration","scope":39163,"src":"7184:21:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":39102,"nodeType":"UserDefinedTypeName","pathNode":{"id":39101,"name":"Validator","nameLocations":["7184:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"7184:9:47"},"referencedDeclaration":48694,"src":"7184:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"id":39103,"nodeType":"ArrayTypeName","src":"7184:11:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"}],"id":39111,"initialValue":{"arguments":[{"id":39109,"name":"vLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39096,"src":"7224:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":39108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7208:15:47","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":39106,"nodeType":"UserDefinedTypeName","pathNode":{"id":39105,"name":"Validator","nameLocations":["7212:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"7212:9:47"},"referencedDeclaration":48694,"src":"7212:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"id":39107,"nodeType":"ArrayTypeName","src":"7212:11:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":39110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7208:24:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7184:48:47"},{"body":{"id":39150,"nodeType":"Block","src":"7273:306:47","statements":[{"assignments":[39119],"declarations":[{"constant":false,"id":39119,"mutability":"mutable","name":"addr","nameLocation":"7295:4:47","nodeType":"VariableDeclaration","scope":39150,"src":"7287:12:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39118,"name":"address","nodeType":"ElementaryTypeName","src":"7287:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":39123,"initialValue":{"baseExpression":{"id":39120,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39088,"src":"7302:10:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":39122,"indexExpression":{"id":39121,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39113,"src":"7313:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7302:13:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7287:28:47"},{"assignments":[39126],"declarations":[{"constant":false,"id":39126,"mutability":"mutable","name":"info","nameLocation":"7351:4:47","nodeType":"VariableDeclaration","scope":39150,"src":"7329:26:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage_ptr","typeString":"struct ValidatorInfo"},"typeName":{"id":39125,"nodeType":"UserDefinedTypeName","pathNode":{"id":39124,"name":"ValidatorInfo","nameLocations":["7329:13:47"],"nodeType":"IdentifierPath","referencedDeclaration":48644,"src":"7329:13:47"},"referencedDeclaration":48644,"src":"7329:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage_ptr","typeString":"struct ValidatorInfo"}},"visibility":"internal"}],"id":39133,"initialValue":{"baseExpression":{"expression":{"expression":{"expression":{"id":39127,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"7358:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7360:17:47","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":42353,"src":"7358:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7378:10:47","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"7358:30:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":39130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7389:10:47","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"7358:41:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":39132,"indexExpression":{"id":39131,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39119,"src":"7400:4:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7358:47:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7329:76:47"},{"expression":{"id":39144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":39134,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39104,"src":"7419:2:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":39136,"indexExpression":{"id":39135,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39113,"src":"7422:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7419:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":39138,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39126,"src":"7446:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage_ptr","typeString":"struct ValidatorInfo storage pointer"}},"id":39139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7451:19:47","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"7446:24:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39140,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39119,"src":"7478:4:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":39141,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39126,"src":"7494:4:47","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage_ptr","typeString":"struct ValidatorInfo storage pointer"}},"id":39142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7499:8:47","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"7494:13:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":39137,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"7427:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$48694_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":39143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7438:6:47","7472:4:47","7484:8:47"],"names":["weight","addr","metadata"],"nodeType":"FunctionCall","src":"7427:82:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}},"src":"7419:90:47","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}},"id":39145,"nodeType":"ExpressionStatement","src":"7419:90:47"},{"id":39149,"nodeType":"UncheckedBlock","src":"7523:46:47","statements":[{"expression":{"id":39147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7551:3:47","subExpression":{"id":39146,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39113,"src":"7553:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39148,"nodeType":"ExpressionStatement","src":"7551:3:47"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39115,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39113,"src":"7258:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39116,"name":"vLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39096,"src":"7262:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7258:11:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39151,"initializationExpression":{"assignments":[39113],"declarations":[{"constant":false,"id":39113,"mutability":"mutable","name":"i","nameLocation":"7255:1:47","nodeType":"VariableDeclaration","scope":39151,"src":"7247:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39112,"name":"uint256","nodeType":"ElementaryTypeName","src":"7247:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39114,"nodeType":"VariableDeclarationStatement","src":"7247:9:47"},"nodeType":"ForStatement","src":"7242:337:47"},{"expression":{"arguments":[{"arguments":[{"id":39156,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39055,"src":"7704:19:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":39157,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39104,"src":"7737:2:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"id":39155,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48701,"src":"7671:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Membership_$48701_storage_ptr_$","typeString":"type(struct Membership storage pointer)"}},"id":39158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7683:19:47","7725:10:47"],"names":["configurationNumber","validators"],"nodeType":"FunctionCall","src":"7671:70:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}],"expression":{"id":39152,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"7643:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":39154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7654:16:47","memberName":"updateMembership","nodeType":"MemberAccess","referencedDeclaration":41783,"src":"7643:27:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Membership_$48701_memory_ptr_$returns$__$","typeString":"function (struct Membership memory)"}},"id":39159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7643:99:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39160,"nodeType":"ExpressionStatement","src":"7643:99:47"},{"expression":{"id":39161,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39055,"src":"7759:19:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":39053,"id":39162,"nodeType":"Return","src":"7752:26:47"}]},"documentation":{"id":39047,"nodeType":"StructuredDocumentation","src":"6214:81:47","text":"@notice Apply all changes committed through the commitment of parent finality"},"functionSelector":"0df14461","implemented":true,"kind":"function","modifiers":[{"id":39050,"kind":"modifierInvocation","modifierName":{"id":39049,"name":"systemActorOnly","nameLocations":["6341:15:47"],"nodeType":"IdentifierPath","referencedDeclaration":42437,"src":"6341:15:47"},"nodeType":"ModifierInvocation","src":"6341:15:47"}],"name":"applyFinalityChanges","nameLocation":"6309:20:47","parameters":{"id":39048,"nodeType":"ParameterList","parameters":[],"src":"6329:2:47"},"returnParameters":{"id":39053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39164,"src":"6366:6:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":39051,"name":"uint64","nodeType":"ElementaryTypeName","src":"6366:6:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6365:8:47"},"scope":39706,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39187,"nodeType":"FunctionDefinition","src":"7828:157:47","nodes":[],"body":{"id":39186,"nodeType":"Block","src":"7912:73:47","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":39176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7946:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":39180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7963:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":39179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7949:13:47","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":39177,"name":"address","nodeType":"ElementaryTypeName","src":"7953:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39178,"nodeType":"ArrayTypeName","src":"7953:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":39181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7949:16:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":39175,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"7937:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":39182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7937:29:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":39183,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39169,"src":"7968:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"id":39174,"name":"_applyMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39375,"src":"7922:14:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SubnetID_$48557_memory_ptr_$_t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct CrossMsg memory[] memory)"}},"id":39184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7922:56:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39185,"nodeType":"ExpressionStatement","src":"7922:56:47"}]},"documentation":{"id":39165,"nodeType":"StructuredDocumentation","src":"7791:32:47","text":"@notice apply cross messages"},"functionSelector":"c62eb4d5","implemented":true,"kind":"function","modifiers":[{"id":39172,"kind":"modifierInvocation","modifierName":{"id":39171,"name":"systemActorOnly","nameLocations":["7896:15:47"],"nodeType":"IdentifierPath","referencedDeclaration":42437,"src":"7896:15:47"},"nodeType":"ModifierInvocation","src":"7896:15:47"}],"name":"applyCrossMessages","nameLocation":"7837:18:47","parameters":{"id":39170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39169,"mutability":"mutable","name":"crossMsgs","nameLocation":"7876:9:47","nodeType":"VariableDeclaration","scope":39187,"src":"7856:29:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":39167,"nodeType":"UserDefinedTypeName","pathNode":{"id":39166,"name":"CrossMsg","nameLocations":["7856:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"7856:8:47"},"referencedDeclaration":48452,"src":"7856:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":39168,"nodeType":"ArrayTypeName","src":"7856:10:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"7855:31:47"},"returnParameters":{"id":39173,"nodeType":"ParameterList","parameters":[],"src":"7912:0:47"},"scope":39706,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39339,"nodeType":"FunctionDefinition","src":"8261:1702:47","nodes":[],"body":{"id":39338,"nodeType":"Block","src":"8342:1621:47","nodes":[],"statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"expression":{"id":39197,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39194,"src":"8356:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8365:7:47","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"8356:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8373:2:47","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":48458,"src":"8356:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},"id":39200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8376:8:47","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":48683,"src":"8356:28:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":39201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8385:7:47","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":46875,"src":"8356:36:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":39202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8356:38:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39207,"nodeType":"IfStatement","src":"8352:102:47","trueBody":{"id":39206,"nodeType":"Block","src":"8396:58:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39203,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36988,"src":"8417:24:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8417:26:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39205,"nodeType":"RevertStatement","src":"8410:33:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":39212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":39208,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39194,"src":"8467:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8476:7:47","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"8467:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39210,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8484:6:47","memberName":"method","nodeType":"MemberAccess","referencedDeclaration":48464,"src":"8467:23:47","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":39211,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"8494:11:47","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"8467:38:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39228,"nodeType":"IfStatement","src":"8463:178:47","trueBody":{"id":39227,"nodeType":"Block","src":"8507:134:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":39213,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39194,"src":"8525:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8534:7:47","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"8525:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8542:5:47","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48460,"src":"8525:22:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":39218,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8558:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}],"id":39217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8550:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":39216,"name":"address","nodeType":"ElementaryTypeName","src":"8550:7:47","typeDescriptions":{}}},"id":39219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8550:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8564:7:47","memberName":"balance","nodeType":"MemberAccess","src":"8550:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8525:46:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39226,"nodeType":"IfStatement","src":"8521:110:47","trueBody":{"id":39225,"nodeType":"Block","src":"8573:58:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39222,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37030,"src":"8598:16:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8598:18:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39224,"nodeType":"RevertStatement","src":"8591:25:47"}]}}]}},{"assignments":[39231],"declarations":[{"constant":false,"id":39231,"mutability":"mutable","name":"applyType","nameLocation":"8662:9:47","nodeType":"VariableDeclaration","scope":39338,"src":"8651:20:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"},"typeName":{"id":39230,"nodeType":"UserDefinedTypeName","pathNode":{"id":39229,"name":"IPCMsgType","nameLocations":["8651:10:47"],"nodeType":"IdentifierPath","referencedDeclaration":36923,"src":"8651:10:47"},"referencedDeclaration":36923,"src":"8651:10:47","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"}},"visibility":"internal"}],"id":39238,"initialValue":{"arguments":[{"expression":{"id":39235,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"8701:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8703:11:47","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42322,"src":"8701:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"id":39232,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39194,"src":"8674:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8683:7:47","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"8674:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8691:9:47","memberName":"applyType","nodeType":"MemberAccess","referencedDeclaration":46248,"src":"8674:26:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_StorableMsg_$48469_memory_ptr_$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_enum$_IPCMsgType_$36923_$attached_to$_t_struct$_StorableMsg_$48469_memory_ptr_$","typeString":"function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)"}},"id":39237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8674:41:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"}},"nodeType":"VariableDeclarationStatement","src":"8651:64:47"},{"condition":{"arguments":[{"expression":{"id":39244,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"8834:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8836:11:47","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42322,"src":"8834:13:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"expression":{"expression":{"id":39239,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39194,"src":"8798:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8807:7:47","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"8798:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39241,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8815:2:47","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":48458,"src":"8798:19:47","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},"id":39242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8818:8:47","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":48683,"src":"8798:28:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":39243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8827:6:47","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":46629,"src":"8798:35:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":39246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8798:50:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39323,"nodeType":"IfStatement","src":"8794:977:47","trueBody":{"id":39322,"nodeType":"Block","src":"8850:921:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"},"id":39250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39247,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39231,"src":"8868:9:47","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":39248,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36923,"src":"8881:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$36923_$","typeString":"type(enum IPCMsgType)"}},"id":39249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8892:8:47","memberName":"BottomUp","nodeType":"MemberAccess","referencedDeclaration":36922,"src":"8881:19:47","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"}},"src":"8868:32:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39292,"nodeType":"IfStatement","src":"8864:539:47","trueBody":{"id":39291,"nodeType":"Block","src":"8902:501:47","statements":[{"condition":{"id":39254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8924:20:47","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39251,"name":"forwarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39191,"src":"8925:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":39252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8935:7:47","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":46875,"src":"8925:17:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":39253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8925:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39290,"nodeType":"IfStatement","src":"8920:469:47","trueBody":{"id":39289,"nodeType":"Block","src":"8946:443:47","statements":[{"assignments":[39256,39259],"declarations":[{"constant":false,"id":39256,"mutability":"mutable","name":"registered","nameLocation":"8974:10:47","nodeType":"VariableDeclaration","scope":39289,"src":"8969:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39255,"name":"bool","nodeType":"ElementaryTypeName","src":"8969:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39259,"mutability":"mutable","name":"subnet","nameLocation":"9001:6:47","nodeType":"VariableDeclaration","scope":39289,"src":"8986:21:47","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":39258,"nodeType":"UserDefinedTypeName","pathNode":{"id":39257,"name":"Subnet","nameLocations":["8986:6:47"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"8986:6:47"},"referencedDeclaration":48574,"src":"8986:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":39264,"initialValue":{"arguments":[{"id":39262,"name":"forwarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39191,"src":"9032:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":39260,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"9011:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":39261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9022:9:47","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42217,"src":"9011:20:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":39263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9011:31:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"8968:74:47"},{"condition":{"id":39266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9068:11:47","subExpression":{"id":39265,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39256,"src":"9069:10:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39271,"nodeType":"IfStatement","src":"9064:94:47","trueBody":{"id":39270,"nodeType":"Block","src":"9081:77:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39267,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37050,"src":"9114:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9114:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39269,"nodeType":"RevertStatement","src":"9107:28:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":39277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39272,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39259,"src":"9183:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":39273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9190:20:47","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":48567,"src":"9183:27:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":39274,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39194,"src":"9214:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9223:7:47","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"9214:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9231:5:47","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":48462,"src":"9214:22:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9183:53:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39282,"nodeType":"IfStatement","src":"9179:137:47","trueBody":{"id":39281,"nodeType":"Block","src":"9238:78:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39278,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36992,"src":"9271:20:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9271:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39280,"nodeType":"RevertStatement","src":"9264:29:47"}]}},{"expression":{"id":39287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":39283,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39259,"src":"9338:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":39285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9345:20:47","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":48567,"src":"9338:27:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":39286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9369:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9338:32:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":39288,"nodeType":"ExpressionStatement","src":"9338:32:47"}]}}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"},"id":39296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39293,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39231,"src":"9421:9:47","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":39294,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36923,"src":"9434:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$36923_$","typeString":"type(enum IPCMsgType)"}},"id":39295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9445:7:47","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":36921,"src":"9434:18:47","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"}},"src":"9421:31:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39315,"nodeType":"IfStatement","src":"9417:236:47","trueBody":{"id":39314,"nodeType":"Block","src":"9454:199:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":39302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39297,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"9476:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9478:19:47","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":42337,"src":"9476:21:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":39299,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39194,"src":"9501:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9510:7:47","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"9501:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":39301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9518:5:47","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":48462,"src":"9501:22:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9476:47:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39307,"nodeType":"IfStatement","src":"9472:123:47","trueBody":{"id":39306,"nodeType":"Block","src":"9525:70:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39303,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36992,"src":"9554:20:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9554:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39305,"nodeType":"RevertStatement","src":"9547:29:47"}]}},{"expression":{"id":39312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":39308,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"9612:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9614:19:47","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":42337,"src":"9612:21:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":39311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9637:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9612:26:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":39313,"nodeType":"ExpressionStatement","src":"9612:26:47"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39316,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39194,"src":"9722:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9731:7:47","memberName":"execute","nodeType":"MemberAccess","referencedDeclaration":40271,"src":"9722:16:47","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_CrossMsg_$48452_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CrossMsg_$48452_memory_ptr_$","typeString":"function (struct CrossMsg memory) returns (bytes memory)"}},"id":39319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9722:18:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":39320,"nodeType":"ExpressionStatement","src":"9722:18:47"},{"functionReturnParameters":39196,"id":39321,"nodeType":"Return","src":"9754:7:47"}]}},{"assignments":[39325],"declarations":[{"constant":false,"id":39325,"mutability":"mutable","name":"cid","nameLocation":"9897:3:47","nodeType":"VariableDeclaration","scope":39338,"src":"9889:11:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9889:7:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39329,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":39326,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39194,"src":"9903:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":39327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9912:6:47","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40132,"src":"9903:15:47","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$48452_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$48452_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":39328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9903:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9889:31:47"},{"expression":{"id":39336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":39330,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"9931:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9933:7:47","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42286,"src":"9931:9:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$48452_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":39334,"indexExpression":{"id":39332,"name":"cid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39325,"src":"9941:3:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9931:14:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage","typeString":"struct CrossMsg storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":39335,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39194,"src":"9948:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"9931:25:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage","typeString":"struct CrossMsg storage ref"}},"id":39337,"nodeType":"ExpressionStatement","src":"9931:25:47"}]},"documentation":{"id":39188,"nodeType":"StructuredDocumentation","src":"7991:265:47","text":"@notice executes a cross message if its destination is the current network, otherwise adds it to the postbox to be propagated further\n @param forwarder - the subnet that handles the cross message\n @param crossMsg - the cross message to be executed"},"implemented":true,"kind":"function","modifiers":[],"name":"_applyMsg","nameLocation":"8270:9:47","parameters":{"id":39195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39191,"mutability":"mutable","name":"forwarder","nameLocation":"8296:9:47","nodeType":"VariableDeclaration","scope":39339,"src":"8280:25:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":39190,"nodeType":"UserDefinedTypeName","pathNode":{"id":39189,"name":"SubnetID","nameLocations":["8280:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"8280:8:47"},"referencedDeclaration":48557,"src":"8280:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":39194,"mutability":"mutable","name":"crossMsg","nameLocation":"8323:8:47","nodeType":"VariableDeclaration","scope":39339,"src":"8307:24:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":39193,"nodeType":"UserDefinedTypeName","pathNode":{"id":39192,"name":"CrossMsg","nameLocations":["8307:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"8307:8:47"},"referencedDeclaration":48452,"src":"8307:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"8279:53:47"},"returnParameters":{"id":39196,"nodeType":"ParameterList","parameters":[],"src":"8342:0:47"},"scope":39706,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":39375,"nodeType":"FunctionDefinition","src":"10304:314:47","nodes":[],"body":{"id":39374,"nodeType":"Block","src":"10393:225:47","nodes":[],"statements":[{"assignments":[39351],"declarations":[{"constant":false,"id":39351,"mutability":"mutable","name":"crossMsgsLength","nameLocation":"10411:15:47","nodeType":"VariableDeclaration","scope":39374,"src":"10403:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39350,"name":"uint256","nodeType":"ElementaryTypeName","src":"10403:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39354,"initialValue":{"expression":{"id":39352,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39347,"src":"10429:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":39353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10439:6:47","memberName":"length","nodeType":"MemberAccess","src":"10429:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10403:42:47"},{"body":{"id":39372,"nodeType":"Block","src":"10494:118:47","statements":[{"expression":{"arguments":[{"id":39362,"name":"forwarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39343,"src":"10518:9:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"baseExpression":{"id":39363,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39347,"src":"10529:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":39365,"indexExpression":{"id":39364,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39356,"src":"10539:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10529:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}],"id":39361,"name":"_applyMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39339,"src":"10508:9:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_CrossMsg_$48452_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct CrossMsg memory)"}},"id":39366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10508:34:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39367,"nodeType":"ExpressionStatement","src":"10508:34:47"},{"id":39371,"nodeType":"UncheckedBlock","src":"10556:46:47","statements":[{"expression":{"id":39369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10584:3:47","subExpression":{"id":39368,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39356,"src":"10586:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39370,"nodeType":"ExpressionStatement","src":"10584:3:47"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39358,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39356,"src":"10471:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39359,"name":"crossMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39351,"src":"10475:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10471:19:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39373,"initializationExpression":{"assignments":[39356],"declarations":[{"constant":false,"id":39356,"mutability":"mutable","name":"i","nameLocation":"10468:1:47","nodeType":"VariableDeclaration","scope":39373,"src":"10460:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39355,"name":"uint256","nodeType":"ElementaryTypeName","src":"10460:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39357,"nodeType":"VariableDeclarationStatement","src":"10460:9:47"},"nodeType":"ForStatement","src":"10455:157:47"}]},"documentation":{"id":39340,"nodeType":"StructuredDocumentation","src":"9969:330:47","text":"@notice applies a cross-net messages coming from some other subnet.\n The forwarder argument determines the previous subnet that submitted the checkpoint triggering the cross-net message execution.\n @param forwarder - the subnet that handles the messages\n @param crossMsgs - the cross-net messages to apply"},"implemented":true,"kind":"function","modifiers":[],"name":"_applyMessages","nameLocation":"10313:14:47","parameters":{"id":39348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39343,"mutability":"mutable","name":"forwarder","nameLocation":"10344:9:47","nodeType":"VariableDeclaration","scope":39375,"src":"10328:25:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":39342,"nodeType":"UserDefinedTypeName","pathNode":{"id":39341,"name":"SubnetID","nameLocations":["10328:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"10328:8:47"},"referencedDeclaration":48557,"src":"10328:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":39347,"mutability":"mutable","name":"crossMsgs","nameLocation":"10373:9:47","nodeType":"VariableDeclaration","scope":39375,"src":"10355:27:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":39345,"nodeType":"UserDefinedTypeName","pathNode":{"id":39344,"name":"CrossMsg","nameLocations":["10355:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"10355:8:47"},"referencedDeclaration":48452,"src":"10355:8:47","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":39346,"nodeType":"ArrayTypeName","src":"10355:10:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"10327:56:47"},"returnParameters":{"id":39349,"nodeType":"ParameterList","parameters":[],"src":"10393:0:47"},"scope":39706,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":39422,"nodeType":"FunctionDefinition","src":"11191:794:47","nodes":[],"body":{"id":39421,"nodeType":"Block","src":"11360:625:47","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":39391,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"11525:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11527:19:47","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42310,"src":"11525:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},{"id":39393,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39378,"src":"11548:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39388,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43249,"src":"11490:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43249_$","typeString":"type(library LibQuorum)"}},"id":39390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11500:24:47","memberName":"isHeightAlreadyProcessed","nodeType":"MemberAccess","referencedDeclaration":43152,"src":"11490:34:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_QuorumMap_$48537_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256) view"}},"id":39394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11490:65:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39395,"nodeType":"ExpressionStatement","src":"11490:65:47"},{"assignments":[39397,null],"declarations":[{"constant":false,"id":39397,"mutability":"mutable","name":"exists","nameLocation":"11623:6:47","nodeType":"VariableDeclaration","scope":39421,"src":"11618:11:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39396,"name":"bool","nodeType":"ElementaryTypeName","src":"11618:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":39402,"initialValue":{"arguments":[{"id":39400,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39378,"src":"11668:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39398,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"11635:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":39399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11646:21:47","memberName":"getBottomUpCheckpoint","nodeType":"MemberAccess","referencedDeclaration":41360,"src":"11635:32:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$48410_storage_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpCheckpoint storage pointer)"}},"id":39401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11635:40:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$48410_storage_ptr_$","typeString":"tuple(bool,struct BottomUpCheckpoint storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"11617:58:47"},{"condition":{"id":39404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11689:7:47","subExpression":{"id":39403,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39397,"src":"11690:6:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39409,"nodeType":"IfStatement","src":"11685:67:47","trueBody":{"id":39408,"nodeType":"Block","src":"11698:54:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39405,"name":"CheckpointNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36954,"src":"11719:20:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11719:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39407,"nodeType":"RevertStatement","src":"11712:29:47"}]}},{"expression":{"arguments":[{"expression":{"id":39413,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"11810:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11812:19:47","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42310,"src":"11810:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},{"id":39415,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39378,"src":"11853:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39416,"name":"membershipProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39381,"src":"11890:15:47","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":39417,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39383,"src":"11927:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39418,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39385,"src":"11958:9:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":39410,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43249,"src":"11761:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43249_$","typeString":"type(library LibQuorum)"}},"id":39412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11771:18:47","memberName":"addQuorumSignature","nodeType":"MemberAccess","referencedDeclaration":42965,"src":"11761:28:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$48537_storage_ptr_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32[] memory,uint256,bytes memory)"}},"id":39419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["11804:4:47","11845:6:47","11873:15:47","11919:6:47","11947:9:47"],"names":["self","height","membershipProof","weight","signature"],"nodeType":"FunctionCall","src":"11761:217:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39420,"nodeType":"ExpressionStatement","src":"11761:217:47"}]},"documentation":{"id":39376,"nodeType":"StructuredDocumentation","src":"10624:562:47","text":"@notice checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it\n @dev If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints`\n @param height - the height of the block in the checkpoint\n @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight`\n @param weight - the weight of the validator\n @param signature - the signature of the checkpoint"},"functionSelector":"53b4e7bf","implemented":true,"kind":"function","modifiers":[],"name":"addCheckpointSignature","nameLocation":"11200:22:47","parameters":{"id":39386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39378,"mutability":"mutable","name":"height","nameLocation":"11240:6:47","nodeType":"VariableDeclaration","scope":39422,"src":"11232:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39377,"name":"uint256","nodeType":"ElementaryTypeName","src":"11232:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39381,"mutability":"mutable","name":"membershipProof","nameLocation":"11273:15:47","nodeType":"VariableDeclaration","scope":39422,"src":"11256:32:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":39379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11256:7:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":39380,"nodeType":"ArrayTypeName","src":"11256:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":39383,"mutability":"mutable","name":"weight","nameLocation":"11306:6:47","nodeType":"VariableDeclaration","scope":39422,"src":"11298:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39382,"name":"uint256","nodeType":"ElementaryTypeName","src":"11298:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39385,"mutability":"mutable","name":"signature","nameLocation":"11335:9:47","nodeType":"VariableDeclaration","scope":39422,"src":"11322:22:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39384,"name":"bytes","nodeType":"ElementaryTypeName","src":"11322:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11222:128:47"},"returnParameters":{"id":39387,"nodeType":"ParameterList","parameters":[],"src":"11360:0:47"},"scope":39706,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39483,"nodeType":"FunctionDefinition","src":"12283:846:47","nodes":[],"body":{"id":39482,"nodeType":"Block","src":"12466:663:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39435,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39426,"src":"12480:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12491:11:47","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"12480:22:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":39437,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"12505:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12507:19:47","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":42343,"src":"12505:21:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12480:46:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12530:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12480:51:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39446,"nodeType":"IfStatement","src":"12476:113:47","trueBody":{"id":39445,"nodeType":"Block","src":"12533:56:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39442,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36972,"src":"12554:22:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12554:24:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39444,"nodeType":"RevertStatement","src":"12547:31:47"}]}},{"condition":{"arguments":[{"expression":{"id":39449,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39426,"src":"12638:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12649:11:47","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"12638:22:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39447,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"12602:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":39448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12613:24:47","memberName":"bottomUpCheckpointExists","nodeType":"MemberAccess","referencedDeclaration":41417,"src":"12602:35:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":39451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12602:59:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39456,"nodeType":"IfStatement","src":"12598:122:47","trueBody":{"id":39455,"nodeType":"Block","src":"12663:57:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39452,"name":"CheckpointAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36946,"src":"12684:23:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12684:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39454,"nodeType":"RevertStatement","src":"12677:32:47"}]}},{"expression":{"arguments":[{"expression":{"id":39460,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"12777:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12779:19:47","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42310,"src":"12777:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},{"expression":{"id":39462,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39426,"src":"12823:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":39463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12834:11:47","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"12823:22:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":39467,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39426,"src":"12889:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"id":39465,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12878:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12882:6:47","memberName":"encode","nodeType":"MemberAccess","src":"12878:10:47","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12878:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":39464,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12868:9:47","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":39469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12868:33:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39470,"name":"membershipRootHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39428,"src":"12935:18:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39471,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39430,"src":"12985:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39472,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"13035:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13037:18:47","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":42331,"src":"13035:20:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":39457,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43249,"src":"12730:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43249_$","typeString":"type(library LibQuorum)"}},"id":39459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12740:16:47","memberName":"createQuorumInfo","nodeType":"MemberAccess","referencedDeclaration":43041,"src":"12730:26:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$48537_storage_ptr_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32,bytes32,uint256,uint256)"}},"id":39474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["12771:4:47","12812:9:47","12859:7:47","12915:18:47","12967:16:47","13015:18:47"],"names":["self","objHeight","objHash","membershipRootHash","membershipWeight","majorityPercentage"],"nodeType":"FunctionCall","src":"12730:336:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39475,"nodeType":"ExpressionStatement","src":"12730:336:47"},{"expression":{"arguments":[{"id":39479,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39426,"src":"13111:10:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"id":39476,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"13076:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":39478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13087:23:47","memberName":"storeBottomUpCheckpoint","nodeType":"MemberAccess","referencedDeclaration":41465,"src":"13076:34:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory)"}},"id":39480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13076:46:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39481,"nodeType":"ExpressionStatement","src":"13076:46:47"}]},"documentation":{"id":39423,"nodeType":"StructuredDocumentation","src":"11991:287:47","text":"@notice creates a new bottom-up checkpoint\n @param checkpoint - a bottom-up checkpoint\n @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight\n @param membershipWeight - the total weight of the membership"},"functionSelector":"74303771","implemented":true,"kind":"function","modifiers":[{"id":39433,"kind":"modifierInvocation","modifierName":{"id":39432,"name":"systemActorOnly","nameLocations":["12450:15:47"],"nodeType":"IdentifierPath","referencedDeclaration":42437,"src":"12450:15:47"},"nodeType":"ModifierInvocation","src":"12450:15:47"}],"name":"createBottomUpCheckpoint","nameLocation":"12292:24:47","parameters":{"id":39431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39426,"mutability":"mutable","name":"checkpoint","nameLocation":"12354:10:47","nodeType":"VariableDeclaration","scope":39483,"src":"12326:38:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":39425,"nodeType":"UserDefinedTypeName","pathNode":{"id":39424,"name":"BottomUpCheckpoint","nameLocations":["12326:18:47"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"12326:18:47"},"referencedDeclaration":48410,"src":"12326:18:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":39428,"mutability":"mutable","name":"membershipRootHash","nameLocation":"12382:18:47","nodeType":"VariableDeclaration","scope":39483,"src":"12374:26:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12374:7:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39430,"mutability":"mutable","name":"membershipWeight","nameLocation":"12418:16:47","nodeType":"VariableDeclaration","scope":39483,"src":"12410:24:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39429,"name":"uint256","nodeType":"ElementaryTypeName","src":"12410:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12316:124:47"},"returnParameters":{"id":39434,"nodeType":"ParameterList","parameters":[],"src":"12466:0:47"},"scope":39706,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39521,"nodeType":"FunctionDefinition","src":"13616:577:47","nodes":[],"body":{"id":39520,"nodeType":"Block","src":"13703:490:47","nodes":[],"statements":[{"body":{"id":39510,"nodeType":"Block","src":"13996:115:47","statements":[{"expression":{"id":39504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"14010:31:47","subExpression":{"baseExpression":{"expression":{"id":39500,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"14017:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14019:19:47","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42300,"src":"14017:21:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":39503,"indexExpression":{"id":39502,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39492,"src":"14039:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14017:24:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39505,"nodeType":"ExpressionStatement","src":"14010:31:47"},{"id":39509,"nodeType":"UncheckedBlock","src":"14055:46:47","statements":[{"expression":{"id":39507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14083:3:47","subExpression":{"id":39506,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39492,"src":"14085:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39508,"nodeType":"ExpressionStatement","src":"14083:3:47"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39497,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39492,"src":"13970:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39498,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39486,"src":"13974:18:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13970:22:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39511,"initializationExpression":{"assignments":[39492],"declarations":[{"constant":false,"id":39492,"mutability":"mutable","name":"h","nameLocation":"13927:1:47","nodeType":"VariableDeclaration","scope":39511,"src":"13919:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39491,"name":"uint256","nodeType":"ElementaryTypeName","src":"13919:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39496,"initialValue":{"expression":{"expression":{"id":39493,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"13931:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13933:19:47","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42310,"src":"13931:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},"id":39495,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13953:15:47","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":48513,"src":"13931:37:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13919:49:47"},"nodeType":"ForStatement","src":"13914:197:47"},{"expression":{"arguments":[{"expression":{"id":39515,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"14144:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14146:19:47","memberName":"checkpointQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42310,"src":"14144:21:47","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},{"id":39517,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39486,"src":"14167:18:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39512,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43249,"src":"14121:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43249_$","typeString":"type(library LibQuorum)"}},"id":39514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14131:12:47","memberName":"pruneQuorums","nodeType":"MemberAccess","referencedDeclaration":43134,"src":"14121:22:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$48537_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256)"}},"id":39518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14121:65:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39519,"nodeType":"ExpressionStatement","src":"14121:65:47"}]},"documentation":{"id":39484,"nodeType":"StructuredDocumentation","src":"13135:476:47","text":"@notice Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)\n @dev `retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing.\n All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.\n @param newRetentionHeight - the height of the oldest checkpoint to keep"},"functionSelector":"ac818379","implemented":true,"kind":"function","modifiers":[{"id":39489,"kind":"modifierInvocation","modifierName":{"id":39488,"name":"systemActorOnly","nameLocations":["13687:15:47"],"nodeType":"IdentifierPath","referencedDeclaration":42437,"src":"13687:15:47"},"nodeType":"ModifierInvocation","src":"13687:15:47"}],"name":"pruneBottomUpCheckpoints","nameLocation":"13625:24:47","parameters":{"id":39487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39486,"mutability":"mutable","name":"newRetentionHeight","nameLocation":"13658:18:47","nodeType":"VariableDeclaration","scope":39521,"src":"13650:26:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39485,"name":"uint256","nodeType":"ElementaryTypeName","src":"13650:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13649:28:47"},"returnParameters":{"id":39490,"nodeType":"ParameterList","parameters":[],"src":"13703:0:47"},"scope":39706,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39568,"nodeType":"FunctionDefinition","src":"14628:685:47","nodes":[],"body":{"id":39567,"nodeType":"Block","src":"14803:510:47","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":39537,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"14848:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14850:25:47","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42314,"src":"14848:27:47","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},{"id":39539,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39524,"src":"14877:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39534,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43249,"src":"14813:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43249_$","typeString":"type(library LibQuorum)"}},"id":39536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14823:24:47","memberName":"isHeightAlreadyProcessed","nodeType":"MemberAccess","referencedDeclaration":43152,"src":"14813:34:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_QuorumMap_$48537_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256) view"}},"id":39540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14813:71:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39541,"nodeType":"ExpressionStatement","src":"14813:71:47"},{"assignments":[39543,null],"declarations":[{"constant":false,"id":39543,"mutability":"mutable","name":"exists","nameLocation":"14952:6:47","nodeType":"VariableDeclaration","scope":39567,"src":"14947:11:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39542,"name":"bool","nodeType":"ElementaryTypeName","src":"14947:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":39548,"initialValue":{"arguments":[{"id":39546,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39524,"src":"14995:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39544,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"14964:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":39545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14975:19:47","memberName":"getBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":41393,"src":"14964:30:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpMsgBatch_$48423_storage_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpMsgBatch storage pointer)"}},"id":39547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14964:38:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpMsgBatch_$48423_storage_ptr_$","typeString":"tuple(bool,struct BottomUpMsgBatch storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"14946:56:47"},{"condition":{"id":39550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15016:7:47","subExpression":{"id":39549,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39543,"src":"15017:6:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39555,"nodeType":"IfStatement","src":"15012:62:47","trueBody":{"id":39554,"nodeType":"Block","src":"15025:49:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39551,"name":"BatchNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36956,"src":"15046:15:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15046:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39553,"nodeType":"RevertStatement","src":"15039:24:47"}]}},{"expression":{"arguments":[{"expression":{"id":39559,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"15132:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15134:25:47","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42314,"src":"15132:27:47","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},{"id":39561,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39524,"src":"15181:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39562,"name":"membershipProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39527,"src":"15218:15:47","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":39563,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39529,"src":"15255:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":39564,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39531,"src":"15286:9:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":39556,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43249,"src":"15083:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43249_$","typeString":"type(library LibQuorum)"}},"id":39558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15093:18:47","memberName":"addQuorumSignature","nodeType":"MemberAccess","referencedDeclaration":42965,"src":"15083:28:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$48537_storage_ptr_$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32[] memory,uint256,bytes memory)"}},"id":39565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["15126:4:47","15173:6:47","15201:15:47","15247:6:47","15275:9:47"],"names":["self","height","membershipProof","weight","signature"],"nodeType":"FunctionCall","src":"15083:223:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39566,"nodeType":"ExpressionStatement","src":"15083:223:47"}]},"documentation":{"id":39522,"nodeType":"StructuredDocumentation","src":"14199:424:47","text":"@notice checks whether the provided batch signature for the block at height `height` is valid and accumulates that\n @param height - the height of the block in the checkpoint\n @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight`\n @param weight - the weight of the validator\n @param signature - the signature of the checkpoint"},"functionSelector":"0db0f77c","implemented":true,"kind":"function","modifiers":[],"name":"addBottomUpMsgBatchSignature","nameLocation":"14637:28:47","parameters":{"id":39532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39524,"mutability":"mutable","name":"height","nameLocation":"14683:6:47","nodeType":"VariableDeclaration","scope":39568,"src":"14675:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39523,"name":"uint256","nodeType":"ElementaryTypeName","src":"14675:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39527,"mutability":"mutable","name":"membershipProof","nameLocation":"14716:15:47","nodeType":"VariableDeclaration","scope":39568,"src":"14699:32:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":39525,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14699:7:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":39526,"nodeType":"ArrayTypeName","src":"14699:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":39529,"mutability":"mutable","name":"weight","nameLocation":"14749:6:47","nodeType":"VariableDeclaration","scope":39568,"src":"14741:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39528,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39531,"mutability":"mutable","name":"signature","nameLocation":"14778:9:47","nodeType":"VariableDeclaration","scope":39568,"src":"14765:22:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39530,"name":"bytes","nodeType":"ElementaryTypeName","src":"14765:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14665:128:47"},"returnParameters":{"id":39533,"nodeType":"ParameterList","parameters":[],"src":"14803:0:47"},"scope":39706,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39639,"nodeType":"FunctionDefinition","src":"15684:1101:47","nodes":[],"body":{"id":39638,"nodeType":"Block","src":"15858:927:47","nodes":[],"statements":[{"expression":{"arguments":[{"id":39582,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39572,"src":"15884:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"id":39581,"name":"_checkMsgLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39705,"src":"15868:15:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_BottomUpMsgBatch_$48423_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory) view"}},"id":39583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15868:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39584,"nodeType":"ExpressionStatement","src":"15868:22:47"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":39597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39585,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39572,"src":"16127:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16133:11:47","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"16127:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":39587,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"16147:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16149:22:47","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":42346,"src":"16147:24:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16127:44:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16175:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16127:49:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39592,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"16180:5:47","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":39593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16186:6:47","memberName":"number","nodeType":"MemberAccess","src":"16180:12:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":39594,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39572,"src":"16196:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16202:11:47","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"16196:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16180:33:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16127:86:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39602,"nodeType":"IfStatement","src":"16123:143:47","trueBody":{"id":39601,"nodeType":"Block","src":"16215:51:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39598,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36974,"src":"16236:17:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16236:19:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39600,"nodeType":"RevertStatement","src":"16229:26:47"}]}},{"condition":{"arguments":[{"expression":{"id":39605,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39572,"src":"16315:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16321:11:47","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"16315:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39603,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"16280:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":39604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16291:23:47","memberName":"bottomUpBatchMsgsExists","nodeType":"MemberAccess","referencedDeclaration":41441,"src":"16280:34:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":39607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16280:53:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39612,"nodeType":"IfStatement","src":"16276:111:47","trueBody":{"id":39611,"nodeType":"Block","src":"16335:52:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39608,"name":"BatchAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36948,"src":"16356:18:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16356:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39610,"nodeType":"RevertStatement","src":"16349:27:47"}]}},{"expression":{"arguments":[{"expression":{"id":39616,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"16444:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16446:25:47","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42314,"src":"16444:27:47","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},{"expression":{"id":39618,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39572,"src":"16496:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":39619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16502:11:47","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"16496:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":39623,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39572,"src":"16557:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":39621,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16546:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":39622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16550:6:47","memberName":"encode","nodeType":"MemberAccess","src":"16546:10:47","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":39624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16546:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":39620,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16536:9:47","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":39625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16536:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39626,"name":"membershipRootHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39574,"src":"16598:18:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":39627,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39576,"src":"16648:16:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":39628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"16698:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16700:18:47","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":42331,"src":"16698:20:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":39613,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43249,"src":"16397:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43249_$","typeString":"type(library LibQuorum)"}},"id":39615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16407:16:47","memberName":"createQuorumInfo","nodeType":"MemberAccess","referencedDeclaration":43041,"src":"16397:26:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$48537_storage_ptr_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256,bytes32,bytes32,uint256,uint256)"}},"id":39630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["16438:4:47","16485:9:47","16527:7:47","16578:18:47","16630:16:47","16678:18:47"],"names":["self","objHeight","objHash","membershipRootHash","membershipWeight","majorityPercentage"],"nodeType":"FunctionCall","src":"16397:332:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39631,"nodeType":"ExpressionStatement","src":"16397:332:47"},{"expression":{"arguments":[{"id":39635,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39572,"src":"16772:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":39632,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"16739:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":39634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16750:21:47","memberName":"storeBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":41532,"src":"16739:32:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BottomUpMsgBatch_$48423_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory)"}},"id":39636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16739:39:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39637,"nodeType":"ExpressionStatement","src":"16739:39:47"}]},"documentation":{"id":39569,"nodeType":"StructuredDocumentation","src":"15319:360:47","text":"@notice cuts a new message batch if the batch period is reached without\n the maximum number of messages being reached.\n @param batch - a bottom-up batch\n @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight\n @param membershipWeight - the total weight of the membership"},"functionSelector":"32e7661f","implemented":true,"kind":"function","modifiers":[{"id":39579,"kind":"modifierInvocation","modifierName":{"id":39578,"name":"systemActorOnly","nameLocations":["15842:15:47"],"nodeType":"IdentifierPath","referencedDeclaration":42437,"src":"15842:15:47"},"nodeType":"ModifierInvocation","src":"15842:15:47"}],"name":"createBottomUpMsgBatch","nameLocation":"15693:22:47","parameters":{"id":39577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39572,"mutability":"mutable","name":"batch","nameLocation":"15751:5:47","nodeType":"VariableDeclaration","scope":39639,"src":"15725:31:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":39571,"nodeType":"UserDefinedTypeName","pathNode":{"id":39570,"name":"BottomUpMsgBatch","nameLocations":["15725:16:47"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"15725:16:47"},"referencedDeclaration":48423,"src":"15725:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"},{"constant":false,"id":39574,"mutability":"mutable","name":"membershipRootHash","nameLocation":"15774:18:47","nodeType":"VariableDeclaration","scope":39639,"src":"15766:26:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39573,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15766:7:47","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39576,"mutability":"mutable","name":"membershipWeight","nameLocation":"15810:16:47","nodeType":"VariableDeclaration","scope":39639,"src":"15802:24:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39575,"name":"uint256","nodeType":"ElementaryTypeName","src":"15802:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15715:117:47"},"returnParameters":{"id":39580,"nodeType":"ParameterList","parameters":[],"src":"15858:0:47"},"scope":39706,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39677,"nodeType":"FunctionDefinition","src":"16998:386:47","nodes":[],"body":{"id":39676,"nodeType":"Block","src":"17084:300:47","nodes":[],"statements":[{"body":{"id":39666,"nodeType":"Block","src":"17182:114:47","statements":[{"expression":{"id":39660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"17196:30:47","subExpression":{"baseExpression":{"expression":{"id":39656,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"17203:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17205:18:47","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":42306,"src":"17203:20:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$48423_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":39659,"indexExpression":{"id":39658,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39648,"src":"17224:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17203:23:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39661,"nodeType":"ExpressionStatement","src":"17196:30:47"},{"id":39665,"nodeType":"UncheckedBlock","src":"17240:46:47","statements":[{"expression":{"id":39663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"17268:3:47","subExpression":{"id":39662,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39648,"src":"17270:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39664,"nodeType":"ExpressionStatement","src":"17268:3:47"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39653,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39648,"src":"17156:1:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":39654,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39642,"src":"17160:18:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17156:22:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39667,"initializationExpression":{"assignments":[39648],"declarations":[{"constant":false,"id":39648,"mutability":"mutable","name":"h","nameLocation":"17107:1:47","nodeType":"VariableDeclaration","scope":39667,"src":"17099:9:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39647,"name":"uint256","nodeType":"ElementaryTypeName","src":"17099:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":39652,"initialValue":{"expression":{"expression":{"id":39649,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"17111:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17113:25:47","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42314,"src":"17111:27:47","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},"id":39651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17139:15:47","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":48513,"src":"17111:43:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17099:55:47"},"nodeType":"ForStatement","src":"17094:202:47"},{"expression":{"arguments":[{"expression":{"id":39671,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"17329:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17331:25:47","memberName":"bottomUpMsgBatchQuorumMap","nodeType":"MemberAccess","referencedDeclaration":42314,"src":"17329:27:47","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"}},{"id":39673,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39642,"src":"17358:18:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage","typeString":"struct QuorumMap storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":39668,"name":"LibQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43249,"src":"17306:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibQuorum_$43249_$","typeString":"type(library LibQuorum)"}},"id":39670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17316:12:47","memberName":"pruneQuorums","nodeType":"MemberAccess","referencedDeclaration":43134,"src":"17306:22:47","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_QuorumMap_$48537_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct QuorumMap storage pointer,uint256)"}},"id":39674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17306:71:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39675,"nodeType":"ExpressionStatement","src":"17306:71:47"}]},"documentation":{"id":39640,"nodeType":"StructuredDocumentation","src":"16791:202:47","text":"@notice Set a new batch retention height and garbage collect all batches in range [`retentionHeight`, `newRetentionHeight`)\n @param newRetentionHeight - the height of the oldest batch to keep"},"functionSelector":"bacc656d","implemented":true,"kind":"function","modifiers":[{"id":39645,"kind":"modifierInvocation","modifierName":{"id":39644,"name":"systemActorOnly","nameLocations":["17068:15:47"],"nodeType":"IdentifierPath","referencedDeclaration":42437,"src":"17068:15:47"},"nodeType":"ModifierInvocation","src":"17068:15:47"}],"name":"pruneBottomUpMsgBatches","nameLocation":"17007:23:47","parameters":{"id":39643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39642,"mutability":"mutable","name":"newRetentionHeight","nameLocation":"17039:18:47","nodeType":"VariableDeclaration","scope":39677,"src":"17031:26:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39641,"name":"uint256","nodeType":"ElementaryTypeName","src":"17031:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17030:28:47"},"returnParameters":{"id":39646,"nodeType":"ParameterList","parameters":[],"src":"17084:0:47"},"scope":39706,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39705,"nodeType":"FunctionDefinition","src":"17390:284:47","nodes":[],"body":{"id":39704,"nodeType":"Block","src":"17460:214:47","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":39683,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39680,"src":"17474:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":39684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17480:4:47","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"17474:10:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":39685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17485:6:47","memberName":"length","nodeType":"MemberAccess","src":"17474:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":39686,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"17494:1:47","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17496:23:47","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":42349,"src":"17494:25:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"17474:45:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39693,"nodeType":"IfStatement","src":"17470:108:47","trueBody":{"id":39692,"nodeType":"Block","src":"17521:57:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39689,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36950,"src":"17542:23:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17542:25:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39691,"nodeType":"RevertStatement","src":"17535:32:47"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":39694,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39680,"src":"17591:5:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":39695,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17597:4:47","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"17591:10:47","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":39696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17602:6:47","memberName":"length","nodeType":"MemberAccess","src":"17591:17:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":39697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17612:1:47","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17591:22:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39703,"nodeType":"IfStatement","src":"17587:81:47","trueBody":{"id":39702,"nodeType":"Block","src":"17615:53:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":39699,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36976,"src":"17636:19:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":39700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17636:21:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39701,"nodeType":"RevertStatement","src":"17629:28:47"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_checkMsgLength","nameLocation":"17399:15:47","parameters":{"id":39681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39680,"mutability":"mutable","name":"batch","nameLocation":"17439:5:47","nodeType":"VariableDeclaration","scope":39705,"src":"17415:29:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":39679,"nodeType":"UserDefinedTypeName","pathNode":{"id":39678,"name":"BottomUpMsgBatch","nameLocations":["17415:16:47"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"17415:16:47"},"referencedDeclaration":48423,"src":"17415:16:47","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"17414:31:47"},"returnParameters":{"id":39682,"nodeType":"ParameterList","parameters":[],"src":"17460:0:47"},"scope":39706,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":38746,"name":"GatewayActorModifiers","nameLocations":["1820:21:47"],"nodeType":"IdentifierPath","referencedDeclaration":42438,"src":"1820:21:47"},"id":38747,"nodeType":"InheritanceSpecifier","src":"1820:21:47"}],"canonicalName":"GatewayRouterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[39706,42438],"name":"GatewayRouterFacet","nameLocation":"1798:18:47","scope":39707,"usedErrors":[32032,32037,32040,36936,36940,36946,36948,36950,36952,36954,36956,36962,36964,36966,36970,36972,36974,36976,36978,36980,36986,36988,36992,37000,37002,37014,37026,37030,37042,37050,37054,37060,37062,37064,37066,37070,37074,37076,37080]}],"license":"MIT OR Apache-2.0"},"id":47} \ No newline at end of file diff --git a/.out/IDiamond.sol/IDiamond.json b/.out/IDiamond.sol/IDiamond.json index fc7d40c97..0dfd7d1e1 100644 --- a/.out/IDiamond.sol/IDiamond.json +++ b/.out/IDiamond.sol/IDiamond.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IDiamond.sol\":\"IDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IDiamond.sol":"IDiamond"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/IDiamond.sol","id":39733,"exportedSymbols":{"IDiamond":[39732]},"nodeType":"SourceUnit","src":"46:434:48","nodes":[{"id":39708,"nodeType":"PragmaDirective","src":"46:23:48","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39732,"nodeType":"ContractDefinition","src":"71:408:48","nodes":[{"id":39712,"nodeType":"EnumDefinition","src":"130:72:48","nodes":[],"canonicalName":"IDiamond.FacetCutAction","members":[{"id":39709,"name":"Add","nameLocation":"160:3:48","nodeType":"EnumValue","src":"160:3:48"},{"id":39710,"name":"Replace","nameLocation":"173:7:48","nodeType":"EnumValue","src":"173:7:48"},{"id":39711,"name":"Remove","nameLocation":"190:6:48","nodeType":"EnumValue","src":"190:6:48"}],"name":"FacetCutAction","nameLocation":"135:14:48"},{"id":39721,"nodeType":"StructDefinition","src":"208:120:48","nodes":[],"canonicalName":"IDiamond.FacetCut","members":[{"constant":false,"id":39714,"mutability":"mutable","name":"facetAddress","nameLocation":"242:12:48","nodeType":"VariableDeclaration","scope":39721,"src":"234:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39713,"name":"address","nodeType":"ElementaryTypeName","src":"234:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39717,"mutability":"mutable","name":"action","nameLocation":"279:6:48","nodeType":"VariableDeclaration","scope":39721,"src":"264:21:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},"typeName":{"id":39716,"nodeType":"UserDefinedTypeName","pathNode":{"id":39715,"name":"FacetCutAction","nameLocations":["264:14:48"],"nodeType":"IdentifierPath","referencedDeclaration":39712,"src":"264:14:48"},"referencedDeclaration":39712,"src":"264:14:48","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},"visibility":"internal"},{"constant":false,"id":39720,"mutability":"mutable","name":"functionSelectors","nameLocation":"304:17:48","nodeType":"VariableDeclaration","scope":39721,"src":"295:26:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":39718,"name":"bytes4","nodeType":"ElementaryTypeName","src":"295:6:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":39719,"nodeType":"ArrayTypeName","src":"295:8:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"name":"FacetCut","nameLocation":"215:8:48","scope":39732,"visibility":"public"},{"id":39731,"nodeType":"EventDefinition","src":"404:73:48","nodes":[],"anonymous":false,"eventSelector":"8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673","name":"DiamondCut","nameLocation":"410:10:48","parameters":{"id":39730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39725,"indexed":false,"mutability":"mutable","name":"_diamondCut","nameLocation":"432:11:48","nodeType":"VariableDeclaration","scope":39731,"src":"421:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":39723,"nodeType":"UserDefinedTypeName","pathNode":{"id":39722,"name":"FacetCut","nameLocations":["421:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"421:8:48"},"referencedDeclaration":39721,"src":"421:8:48","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":39724,"nodeType":"ArrayTypeName","src":"421:10:48","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":39727,"indexed":false,"mutability":"mutable","name":"_init","nameLocation":"453:5:48","nodeType":"VariableDeclaration","scope":39731,"src":"445:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39726,"name":"address","nodeType":"ElementaryTypeName","src":"445:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39729,"indexed":false,"mutability":"mutable","name":"_calldata","nameLocation":"466:9:48","nodeType":"VariableDeclaration","scope":39731,"src":"460:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":39728,"name":"bytes","nodeType":"ElementaryTypeName","src":"460:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"420:56:48"}}],"abstract":false,"baseContracts":[],"canonicalName":"IDiamond","contractDependencies":[],"contractKind":"interface","fullyImplemented":true,"linearizedBaseContracts":[39732],"name":"IDiamond","nameLocation":"81:8:48","scope":39733,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":48} \ No newline at end of file +{"abi":[{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IDiamond.sol\":\"IDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IDiamond.sol":"IDiamond"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/IDiamond.sol","id":40171,"exportedSymbols":{"IDiamond":[40170]},"nodeType":"SourceUnit","src":"46:434:53","nodes":[{"id":40146,"nodeType":"PragmaDirective","src":"46:23:53","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40170,"nodeType":"ContractDefinition","src":"71:408:53","nodes":[{"id":40150,"nodeType":"EnumDefinition","src":"130:72:53","nodes":[],"canonicalName":"IDiamond.FacetCutAction","members":[{"id":40147,"name":"Add","nameLocation":"160:3:53","nodeType":"EnumValue","src":"160:3:53"},{"id":40148,"name":"Replace","nameLocation":"173:7:53","nodeType":"EnumValue","src":"173:7:53"},{"id":40149,"name":"Remove","nameLocation":"190:6:53","nodeType":"EnumValue","src":"190:6:53"}],"name":"FacetCutAction","nameLocation":"135:14:53"},{"id":40159,"nodeType":"StructDefinition","src":"208:120:53","nodes":[],"canonicalName":"IDiamond.FacetCut","members":[{"constant":false,"id":40152,"mutability":"mutable","name":"facetAddress","nameLocation":"242:12:53","nodeType":"VariableDeclaration","scope":40159,"src":"234:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40151,"name":"address","nodeType":"ElementaryTypeName","src":"234:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40155,"mutability":"mutable","name":"action","nameLocation":"279:6:53","nodeType":"VariableDeclaration","scope":40159,"src":"264:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"typeName":{"id":40154,"nodeType":"UserDefinedTypeName","pathNode":{"id":40153,"name":"FacetCutAction","nameLocations":["264:14:53"],"nodeType":"IdentifierPath","referencedDeclaration":40150,"src":"264:14:53"},"referencedDeclaration":40150,"src":"264:14:53","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"visibility":"internal"},{"constant":false,"id":40158,"mutability":"mutable","name":"functionSelectors","nameLocation":"304:17:53","nodeType":"VariableDeclaration","scope":40159,"src":"295:26:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":40156,"name":"bytes4","nodeType":"ElementaryTypeName","src":"295:6:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":40157,"nodeType":"ArrayTypeName","src":"295:8:53","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"name":"FacetCut","nameLocation":"215:8:53","scope":40170,"visibility":"public"},{"id":40169,"nodeType":"EventDefinition","src":"404:73:53","nodes":[],"anonymous":false,"eventSelector":"8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673","name":"DiamondCut","nameLocation":"410:10:53","parameters":{"id":40168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40163,"indexed":false,"mutability":"mutable","name":"_diamondCut","nameLocation":"432:11:53","nodeType":"VariableDeclaration","scope":40169,"src":"421:22:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":40161,"nodeType":"UserDefinedTypeName","pathNode":{"id":40160,"name":"FacetCut","nameLocations":["421:8:53"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"421:8:53"},"referencedDeclaration":40159,"src":"421:8:53","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":40162,"nodeType":"ArrayTypeName","src":"421:10:53","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":40165,"indexed":false,"mutability":"mutable","name":"_init","nameLocation":"453:5:53","nodeType":"VariableDeclaration","scope":40169,"src":"445:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40164,"name":"address","nodeType":"ElementaryTypeName","src":"445:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40167,"indexed":false,"mutability":"mutable","name":"_calldata","nameLocation":"466:9:53","nodeType":"VariableDeclaration","scope":40169,"src":"460:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40166,"name":"bytes","nodeType":"ElementaryTypeName","src":"460:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"420:56:53"}}],"abstract":false,"baseContracts":[],"canonicalName":"IDiamond","contractDependencies":[],"contractKind":"interface","fullyImplemented":true,"linearizedBaseContracts":[40170],"name":"IDiamond","nameLocation":"81:8:53","scope":40171,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":53} \ No newline at end of file diff --git a/.out/IDiamondCut.sol/IDiamondCut.json b/.out/IDiamondCut.sol/IDiamondCut.json index 0d3266f4d..9bff8df4c 100644 --- a/.out/IDiamondCut.sol/IDiamondCut.json +++ b/.out/IDiamondCut.sol/IDiamondCut.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"diamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":"1f931c1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"diamondCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"params\":{\"_calldata\":\"A function call, including function selector and arguments _calldata is executed with delegatecall on `_init`\",\"_diamondCut\":\"Contains the facet addresses and function selectors\",\"_init\":\"The address of the contract or facet to execute _calldata\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"notice\":\"Add/replace/remove any number of functions and optionally execute a function with delegatecall\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IDiamondCut.sol\":\"IDiamondCut\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"address","name":"_init","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"diamondCut"}],"devdoc":{"kind":"dev","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"params":{"_calldata":"A function call, including function selector and arguments _calldata is executed with delegatecall on `_init`","_diamondCut":"Contains the facet addresses and function selectors","_init":"The address of the contract or facet to execute _calldata"}}},"version":1},"userdoc":{"kind":"user","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"notice":"Add/replace/remove any number of functions and optionally execute a function with delegatecall"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IDiamondCut.sol":"IDiamondCut"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/IDiamondCut.sol","id":39752,"exportedSymbols":{"IDiamond":[39732],"IDiamondCut":[39751]},"nodeType":"SourceUnit","src":"46:638:49","nodes":[{"id":39734,"nodeType":"PragmaDirective","src":"46:23:49","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39736,"nodeType":"ImportDirective","src":"71:40:49","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./IDiamond.sol","nameLocation":"-1:-1:-1","scope":39752,"sourceUnit":39733,"symbolAliases":[{"foreign":{"id":39735,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"79:8:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39751,"nodeType":"ContractDefinition","src":"113:570:49","nodes":[{"id":39750,"nodeType":"FunctionDefinition","src":"569:112:49","nodes":[],"documentation":{"id":39739,"nodeType":"StructuredDocumentation","src":"153:411:49","text":" @notice Add/replace/remove any number of functions and optionally execute a function with delegatecall\n @param _diamondCut Contains the facet addresses and function selectors\n @param _init The address of the contract or facet to execute _calldata\n @param _calldata A function call, including function selector and arguments _calldata is executed with delegatecall on `_init`"},"functionSelector":"1f931c1c","implemented":false,"kind":"function","modifiers":[],"name":"diamondCut","nameLocation":"578:10:49","parameters":{"id":39748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39743,"mutability":"mutable","name":"_diamondCut","nameLocation":"618:11:49","nodeType":"VariableDeclaration","scope":39750,"src":"589:40:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":39741,"nodeType":"UserDefinedTypeName","pathNode":{"id":39740,"name":"IDiamond.FacetCut","nameLocations":["589:8:49","598:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"589:17:49"},"referencedDeclaration":39721,"src":"589:17:49","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":39742,"nodeType":"ArrayTypeName","src":"589:19:49","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":39745,"mutability":"mutable","name":"_init","nameLocation":"639:5:49","nodeType":"VariableDeclaration","scope":39750,"src":"631:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39744,"name":"address","nodeType":"ElementaryTypeName","src":"631:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39747,"mutability":"mutable","name":"_calldata","nameLocation":"661:9:49","nodeType":"VariableDeclaration","scope":39750,"src":"646:24:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":39746,"name":"bytes","nodeType":"ElementaryTypeName","src":"646:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"588:83:49"},"returnParameters":{"id":39749,"nodeType":"ParameterList","parameters":[],"src":"680:0:49"},"scope":39751,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":39737,"name":"IDiamond","nameLocations":["138:8:49"],"nodeType":"IdentifierPath","referencedDeclaration":39732,"src":"138:8:49"},"id":39738,"nodeType":"InheritanceSpecifier","src":"138:8:49"}],"canonicalName":"IDiamondCut","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[39751,39732],"name":"IDiamondCut","nameLocation":"123:11:49","scope":39752,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":49} \ No newline at end of file +{"abi":[{"type":"function","name":"diamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":"1f931c1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"diamondCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"params\":{\"_calldata\":\"A function call, including function selector and arguments _calldata is executed with delegatecall on `_init`\",\"_diamondCut\":\"Contains the facet addresses and function selectors\",\"_init\":\"The address of the contract or facet to execute _calldata\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"notice\":\"Add/replace/remove any number of functions and optionally execute a function with delegatecall\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IDiamondCut.sol\":\"IDiamondCut\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"address","name":"_init","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"diamondCut"}],"devdoc":{"kind":"dev","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"params":{"_calldata":"A function call, including function selector and arguments _calldata is executed with delegatecall on `_init`","_diamondCut":"Contains the facet addresses and function selectors","_init":"The address of the contract or facet to execute _calldata"}}},"version":1},"userdoc":{"kind":"user","methods":{"diamondCut((address,uint8,bytes4[])[],address,bytes)":{"notice":"Add/replace/remove any number of functions and optionally execute a function with delegatecall"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IDiamondCut.sol":"IDiamondCut"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/IDiamondCut.sol","id":40190,"exportedSymbols":{"IDiamond":[40170],"IDiamondCut":[40189]},"nodeType":"SourceUnit","src":"46:638:54","nodes":[{"id":40172,"nodeType":"PragmaDirective","src":"46:23:54","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40174,"nodeType":"ImportDirective","src":"71:40:54","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./IDiamond.sol","nameLocation":"-1:-1:-1","scope":40190,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":40173,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"79:8:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40189,"nodeType":"ContractDefinition","src":"113:570:54","nodes":[{"id":40188,"nodeType":"FunctionDefinition","src":"569:112:54","nodes":[],"documentation":{"id":40177,"nodeType":"StructuredDocumentation","src":"153:411:54","text":" @notice Add/replace/remove any number of functions and optionally execute a function with delegatecall\n @param _diamondCut Contains the facet addresses and function selectors\n @param _init The address of the contract or facet to execute _calldata\n @param _calldata A function call, including function selector and arguments _calldata is executed with delegatecall on `_init`"},"functionSelector":"1f931c1c","implemented":false,"kind":"function","modifiers":[],"name":"diamondCut","nameLocation":"578:10:54","parameters":{"id":40186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40181,"mutability":"mutable","name":"_diamondCut","nameLocation":"618:11:54","nodeType":"VariableDeclaration","scope":40188,"src":"589:40:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":40179,"nodeType":"UserDefinedTypeName","pathNode":{"id":40178,"name":"IDiamond.FacetCut","nameLocations":["589:8:54","598:8:54"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"589:17:54"},"referencedDeclaration":40159,"src":"589:17:54","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":40180,"nodeType":"ArrayTypeName","src":"589:19:54","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":40183,"mutability":"mutable","name":"_init","nameLocation":"639:5:54","nodeType":"VariableDeclaration","scope":40188,"src":"631:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40182,"name":"address","nodeType":"ElementaryTypeName","src":"631:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40185,"mutability":"mutable","name":"_calldata","nameLocation":"661:9:54","nodeType":"VariableDeclaration","scope":40188,"src":"646:24:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":40184,"name":"bytes","nodeType":"ElementaryTypeName","src":"646:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"588:83:54"},"returnParameters":{"id":40187,"nodeType":"ParameterList","parameters":[],"src":"680:0:54"},"scope":40189,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":40175,"name":"IDiamond","nameLocations":["138:8:54"],"nodeType":"IdentifierPath","referencedDeclaration":40170,"src":"138:8:54"},"id":40176,"nodeType":"InheritanceSpecifier","src":"138:8:54"}],"canonicalName":"IDiamondCut","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[40189,40170],"name":"IDiamondCut","nameLocation":"123:11:54","scope":40190,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":54} \ No newline at end of file diff --git a/.out/IDiamondLoupe.sol/IDiamondLoupe.json b/.out/IDiamondLoupe.sol/IDiamondLoupe.json index eecbf0143..01b7754db 100644 --- a/.out/IDiamondLoupe.sol/IDiamondLoupe.json +++ b/.out/IDiamondLoupe.sol/IDiamondLoupe.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"facetAddress","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"facetAddress_","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"facetAddresses","inputs":[],"outputs":[{"name":"facetAddresses_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"facetFunctionSelectors","inputs":[{"name":"_facet","type":"address","internalType":"address"}],"outputs":[{"name":"facetFunctionSelectors_","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"facets","inputs":[],"outputs":[{"name":"facets_","type":"tuple[]","internalType":"struct IDiamondLoupe.Facet[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"facetAddress(bytes4)":"cdffacc6","facetAddresses()":"52ef6b2c","facetFunctionSelectors(address)":"adfca15e","facets()":"7a0ed627"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"facetAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"facetAddress_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facetAddresses\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"facetAddresses_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facet\",\"type\":\"address\"}],\"name\":\"facetFunctionSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"facetFunctionSelectors_\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facets\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamondLoupe.Facet[]\",\"name\":\"facets_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"facetAddress(bytes4)\":{\"details\":\"If facet is not found return address(0).\",\"params\":{\"_functionSelector\":\"The function selector.\"},\"returns\":{\"facetAddress_\":\"The facet address.\"}},\"facetAddresses()\":{\"returns\":{\"facetAddresses_\":\"facetAddresses_\"}},\"facetFunctionSelectors(address)\":{\"params\":{\"_facet\":\"The facet address.\"},\"returns\":{\"facetFunctionSelectors_\":\"facetFunctionSelectors_\"}},\"facets()\":{\"returns\":{\"facets_\":\"Facet\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"facetAddress(bytes4)\":{\"notice\":\"Gets the facet that supports the given selector.\"},\"facetAddresses()\":{\"notice\":\"Get all the facet addresses used by a diamond.\"},\"facetFunctionSelectors(address)\":{\"notice\":\"Gets all the function selectors supported by a specific facet.\"},\"facets()\":{\"notice\":\"Gets all facet addresses and their four byte function selectors.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IDiamondLoupe.sol\":\"IDiamondLoupe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"stateMutability":"view","type":"function","name":"facetAddress","outputs":[{"internalType":"address","name":"facetAddress_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facetAddresses","outputs":[{"internalType":"address[]","name":"facetAddresses_","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_facet","type":"address"}],"stateMutability":"view","type":"function","name":"facetFunctionSelectors","outputs":[{"internalType":"bytes4[]","name":"facetFunctionSelectors_","type":"bytes4[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facets","outputs":[{"internalType":"struct IDiamondLoupe.Facet[]","name":"facets_","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]}]}],"devdoc":{"kind":"dev","methods":{"facetAddress(bytes4)":{"details":"If facet is not found return address(0).","params":{"_functionSelector":"The function selector."},"returns":{"facetAddress_":"The facet address."}},"facetAddresses()":{"returns":{"facetAddresses_":"facetAddresses_"}},"facetFunctionSelectors(address)":{"params":{"_facet":"The facet address."},"returns":{"facetFunctionSelectors_":"facetFunctionSelectors_"}},"facets()":{"returns":{"facets_":"Facet"}}},"version":1},"userdoc":{"kind":"user","methods":{"facetAddress(bytes4)":{"notice":"Gets the facet that supports the given selector."},"facetAddresses()":{"notice":"Get all the facet addresses used by a diamond."},"facetFunctionSelectors(address)":{"notice":"Gets all the function selectors supported by a specific facet."},"facets()":{"notice":"Gets all facet addresses and their four byte function selectors."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IDiamondLoupe.sol":"IDiamondLoupe"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/interfaces/IDiamondLoupe.sol","id":39793,"exportedSymbols":{"IDiamondLoupe":[39792]},"nodeType":"SourceUnit","src":"32:1598:50","nodes":[{"id":39753,"nodeType":"PragmaDirective","src":"32:23:50","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39792,"nodeType":"ContractDefinition","src":"463:1166:50","nodes":[{"id":39759,"nodeType":"StructDefinition","src":"573:86:50","nodes":[],"canonicalName":"IDiamondLoupe.Facet","members":[{"constant":false,"id":39755,"mutability":"mutable","name":"facetAddress","nameLocation":"604:12:50","nodeType":"VariableDeclaration","scope":39759,"src":"596:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39754,"name":"address","nodeType":"ElementaryTypeName","src":"596:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39758,"mutability":"mutable","name":"functionSelectors","nameLocation":"635:17:50","nodeType":"VariableDeclaration","scope":39759,"src":"626:26:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":39756,"name":"bytes4","nodeType":"ElementaryTypeName","src":"626:6:50","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":39757,"nodeType":"ArrayTypeName","src":"626:8:50","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"name":"Facet","nameLocation":"580:5:50","scope":39792,"visibility":"public"},{"id":39767,"nodeType":"FunctionDefinition","src":"776:65:50","nodes":[],"documentation":{"id":39760,"nodeType":"StructuredDocumentation","src":"665:106:50","text":"@notice Gets all facet addresses and their four byte function selectors.\n @return facets_ Facet"},"functionSelector":"7a0ed627","implemented":false,"kind":"function","modifiers":[],"name":"facets","nameLocation":"785:6:50","parameters":{"id":39761,"nodeType":"ParameterList","parameters":[],"src":"791:2:50"},"returnParameters":{"id":39766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39765,"mutability":"mutable","name":"facets_","nameLocation":"832:7:50","nodeType":"VariableDeclaration","scope":39767,"src":"817:22:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$39759_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet[]"},"typeName":{"baseType":{"id":39763,"nodeType":"UserDefinedTypeName","pathNode":{"id":39762,"name":"Facet","nameLocations":["817:5:50"],"nodeType":"IdentifierPath","referencedDeclaration":39759,"src":"817:5:50"},"referencedDeclaration":39759,"src":"817:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$39759_storage_ptr","typeString":"struct IDiamondLoupe.Facet"}},"id":39764,"nodeType":"ArrayTypeName","src":"817:7:50","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$39759_storage_$dyn_storage_ptr","typeString":"struct IDiamondLoupe.Facet[]"}},"visibility":"internal"}],"src":"816:24:50"},"scope":39792,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":39776,"nodeType":"FunctionDefinition","src":"1007:112:50","nodes":[],"documentation":{"id":39768,"nodeType":"StructuredDocumentation","src":"847:155:50","text":"@notice Gets all the function selectors supported by a specific facet.\n @param _facet The facet address.\n @return facetFunctionSelectors_"},"functionSelector":"adfca15e","implemented":false,"kind":"function","modifiers":[],"name":"facetFunctionSelectors","nameLocation":"1016:22:50","parameters":{"id":39771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39770,"mutability":"mutable","name":"_facet","nameLocation":"1047:6:50","nodeType":"VariableDeclaration","scope":39776,"src":"1039:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39769,"name":"address","nodeType":"ElementaryTypeName","src":"1039:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1038:16:50"},"returnParameters":{"id":39775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39774,"mutability":"mutable","name":"facetFunctionSelectors_","nameLocation":"1094:23:50","nodeType":"VariableDeclaration","scope":39776,"src":"1078:39:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":39772,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1078:6:50","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":39773,"nodeType":"ArrayTypeName","src":"1078:8:50","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"1077:41:50"},"scope":39792,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":39783,"nodeType":"FunctionDefinition","src":"1220:83:50","nodes":[],"documentation":{"id":39777,"nodeType":"StructuredDocumentation","src":"1125:90:50","text":"@notice Get all the facet addresses used by a diamond.\n @return facetAddresses_"},"functionSelector":"52ef6b2c","implemented":false,"kind":"function","modifiers":[],"name":"facetAddresses","nameLocation":"1229:14:50","parameters":{"id":39778,"nodeType":"ParameterList","parameters":[],"src":"1243:2:50"},"returnParameters":{"id":39782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39781,"mutability":"mutable","name":"facetAddresses_","nameLocation":"1286:15:50","nodeType":"VariableDeclaration","scope":39783,"src":"1269:32:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":39779,"name":"address","nodeType":"ElementaryTypeName","src":"1269:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39780,"nodeType":"ArrayTypeName","src":"1269:9:50","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1268:34:50"},"scope":39792,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":39791,"nodeType":"FunctionDefinition","src":"1533:94:50","nodes":[],"documentation":{"id":39784,"nodeType":"StructuredDocumentation","src":"1309:219:50","text":"@notice Gets the facet that supports the given selector.\n @dev If facet is not found return address(0).\n @param _functionSelector The function selector.\n @return facetAddress_ The facet address."},"functionSelector":"cdffacc6","implemented":false,"kind":"function","modifiers":[],"name":"facetAddress","nameLocation":"1542:12:50","parameters":{"id":39787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39786,"mutability":"mutable","name":"_functionSelector","nameLocation":"1562:17:50","nodeType":"VariableDeclaration","scope":39791,"src":"1555:24:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":39785,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1555:6:50","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1554:26:50"},"returnParameters":{"id":39790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39789,"mutability":"mutable","name":"facetAddress_","nameLocation":"1612:13:50","nodeType":"VariableDeclaration","scope":39791,"src":"1604:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39788,"name":"address","nodeType":"ElementaryTypeName","src":"1604:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1603:23:50"},"scope":39792,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IDiamondLoupe","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[39792],"name":"IDiamondLoupe","nameLocation":"473:13:50","scope":39793,"usedErrors":[]}],"license":"MIT"},"id":50} \ No newline at end of file +{"abi":[{"type":"function","name":"facetAddress","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"facetAddress_","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"facetAddresses","inputs":[],"outputs":[{"name":"facetAddresses_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"facetFunctionSelectors","inputs":[{"name":"_facet","type":"address","internalType":"address"}],"outputs":[{"name":"facetFunctionSelectors_","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"facets","inputs":[],"outputs":[{"name":"facets_","type":"tuple[]","internalType":"struct IDiamondLoupe.Facet[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"facetAddress(bytes4)":"cdffacc6","facetAddresses()":"52ef6b2c","facetFunctionSelectors(address)":"adfca15e","facets()":"7a0ed627"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"facetAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"facetAddress_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facetAddresses\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"facetAddresses_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facet\",\"type\":\"address\"}],\"name\":\"facetFunctionSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"facetFunctionSelectors_\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"facets\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamondLoupe.Facet[]\",\"name\":\"facets_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"facetAddress(bytes4)\":{\"details\":\"If facet is not found return address(0).\",\"params\":{\"_functionSelector\":\"The function selector.\"},\"returns\":{\"facetAddress_\":\"The facet address.\"}},\"facetAddresses()\":{\"returns\":{\"facetAddresses_\":\"facetAddresses_\"}},\"facetFunctionSelectors(address)\":{\"params\":{\"_facet\":\"The facet address.\"},\"returns\":{\"facetFunctionSelectors_\":\"facetFunctionSelectors_\"}},\"facets()\":{\"returns\":{\"facets_\":\"Facet\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"facetAddress(bytes4)\":{\"notice\":\"Gets the facet that supports the given selector.\"},\"facetAddresses()\":{\"notice\":\"Get all the facet addresses used by a diamond.\"},\"facetFunctionSelectors(address)\":{\"notice\":\"Gets all the function selectors supported by a specific facet.\"},\"facets()\":{\"notice\":\"Gets all facet addresses and their four byte function selectors.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IDiamondLoupe.sol\":\"IDiamondLoupe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"stateMutability":"view","type":"function","name":"facetAddress","outputs":[{"internalType":"address","name":"facetAddress_","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facetAddresses","outputs":[{"internalType":"address[]","name":"facetAddresses_","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"_facet","type":"address"}],"stateMutability":"view","type":"function","name":"facetFunctionSelectors","outputs":[{"internalType":"bytes4[]","name":"facetFunctionSelectors_","type":"bytes4[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"facets","outputs":[{"internalType":"struct IDiamondLoupe.Facet[]","name":"facets_","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]}]}],"devdoc":{"kind":"dev","methods":{"facetAddress(bytes4)":{"details":"If facet is not found return address(0).","params":{"_functionSelector":"The function selector."},"returns":{"facetAddress_":"The facet address."}},"facetAddresses()":{"returns":{"facetAddresses_":"facetAddresses_"}},"facetFunctionSelectors(address)":{"params":{"_facet":"The facet address."},"returns":{"facetFunctionSelectors_":"facetFunctionSelectors_"}},"facets()":{"returns":{"facets_":"Facet"}}},"version":1},"userdoc":{"kind":"user","methods":{"facetAddress(bytes4)":{"notice":"Gets the facet that supports the given selector."},"facetAddresses()":{"notice":"Get all the facet addresses used by a diamond."},"facetFunctionSelectors(address)":{"notice":"Gets all the function selectors supported by a specific facet."},"facets()":{"notice":"Gets all facet addresses and their four byte function selectors."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IDiamondLoupe.sol":"IDiamondLoupe"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/interfaces/IDiamondLoupe.sol","id":40231,"exportedSymbols":{"IDiamondLoupe":[40230]},"nodeType":"SourceUnit","src":"32:1598:55","nodes":[{"id":40191,"nodeType":"PragmaDirective","src":"32:23:55","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40230,"nodeType":"ContractDefinition","src":"463:1166:55","nodes":[{"id":40197,"nodeType":"StructDefinition","src":"573:86:55","nodes":[],"canonicalName":"IDiamondLoupe.Facet","members":[{"constant":false,"id":40193,"mutability":"mutable","name":"facetAddress","nameLocation":"604:12:55","nodeType":"VariableDeclaration","scope":40197,"src":"596:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40192,"name":"address","nodeType":"ElementaryTypeName","src":"596:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40196,"mutability":"mutable","name":"functionSelectors","nameLocation":"635:17:55","nodeType":"VariableDeclaration","scope":40197,"src":"626:26:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":40194,"name":"bytes4","nodeType":"ElementaryTypeName","src":"626:6:55","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":40195,"nodeType":"ArrayTypeName","src":"626:8:55","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"name":"Facet","nameLocation":"580:5:55","scope":40230,"visibility":"public"},{"id":40205,"nodeType":"FunctionDefinition","src":"776:65:55","nodes":[],"documentation":{"id":40198,"nodeType":"StructuredDocumentation","src":"665:106:55","text":"@notice Gets all facet addresses and their four byte function selectors.\n @return facets_ Facet"},"functionSelector":"7a0ed627","implemented":false,"kind":"function","modifiers":[],"name":"facets","nameLocation":"785:6:55","parameters":{"id":40199,"nodeType":"ParameterList","parameters":[],"src":"791:2:55"},"returnParameters":{"id":40204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40203,"mutability":"mutable","name":"facets_","nameLocation":"832:7:55","nodeType":"VariableDeclaration","scope":40205,"src":"817:22:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamondLoupe.Facet[]"},"typeName":{"baseType":{"id":40201,"nodeType":"UserDefinedTypeName","pathNode":{"id":40200,"name":"Facet","nameLocations":["817:5:55"],"nodeType":"IdentifierPath","referencedDeclaration":40197,"src":"817:5:55"},"referencedDeclaration":40197,"src":"817:5:55","typeDescriptions":{"typeIdentifier":"t_struct$_Facet_$40197_storage_ptr","typeString":"struct IDiamondLoupe.Facet"}},"id":40202,"nodeType":"ArrayTypeName","src":"817:7:55","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Facet_$40197_storage_$dyn_storage_ptr","typeString":"struct IDiamondLoupe.Facet[]"}},"visibility":"internal"}],"src":"816:24:55"},"scope":40230,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":40214,"nodeType":"FunctionDefinition","src":"1007:112:55","nodes":[],"documentation":{"id":40206,"nodeType":"StructuredDocumentation","src":"847:155:55","text":"@notice Gets all the function selectors supported by a specific facet.\n @param _facet The facet address.\n @return facetFunctionSelectors_"},"functionSelector":"adfca15e","implemented":false,"kind":"function","modifiers":[],"name":"facetFunctionSelectors","nameLocation":"1016:22:55","parameters":{"id":40209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40208,"mutability":"mutable","name":"_facet","nameLocation":"1047:6:55","nodeType":"VariableDeclaration","scope":40214,"src":"1039:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40207,"name":"address","nodeType":"ElementaryTypeName","src":"1039:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1038:16:55"},"returnParameters":{"id":40213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40212,"mutability":"mutable","name":"facetFunctionSelectors_","nameLocation":"1094:23:55","nodeType":"VariableDeclaration","scope":40214,"src":"1078:39:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":40210,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1078:6:55","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":40211,"nodeType":"ArrayTypeName","src":"1078:8:55","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"1077:41:55"},"scope":40230,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":40221,"nodeType":"FunctionDefinition","src":"1220:83:55","nodes":[],"documentation":{"id":40215,"nodeType":"StructuredDocumentation","src":"1125:90:55","text":"@notice Get all the facet addresses used by a diamond.\n @return facetAddresses_"},"functionSelector":"52ef6b2c","implemented":false,"kind":"function","modifiers":[],"name":"facetAddresses","nameLocation":"1229:14:55","parameters":{"id":40216,"nodeType":"ParameterList","parameters":[],"src":"1243:2:55"},"returnParameters":{"id":40220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40219,"mutability":"mutable","name":"facetAddresses_","nameLocation":"1286:15:55","nodeType":"VariableDeclaration","scope":40221,"src":"1269:32:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":40217,"name":"address","nodeType":"ElementaryTypeName","src":"1269:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40218,"nodeType":"ArrayTypeName","src":"1269:9:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1268:34:55"},"scope":40230,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":40229,"nodeType":"FunctionDefinition","src":"1533:94:55","nodes":[],"documentation":{"id":40222,"nodeType":"StructuredDocumentation","src":"1309:219:55","text":"@notice Gets the facet that supports the given selector.\n @dev If facet is not found return address(0).\n @param _functionSelector The function selector.\n @return facetAddress_ The facet address."},"functionSelector":"cdffacc6","implemented":false,"kind":"function","modifiers":[],"name":"facetAddress","nameLocation":"1542:12:55","parameters":{"id":40225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40224,"mutability":"mutable","name":"_functionSelector","nameLocation":"1562:17:55","nodeType":"VariableDeclaration","scope":40229,"src":"1555:24:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40223,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1555:6:55","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1554:26:55"},"returnParameters":{"id":40228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40227,"mutability":"mutable","name":"facetAddress_","nameLocation":"1612:13:55","nodeType":"VariableDeclaration","scope":40229,"src":"1604:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40226,"name":"address","nodeType":"ElementaryTypeName","src":"1604:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1603:23:55"},"scope":40230,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IDiamondLoupe","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[40230],"name":"IDiamondLoupe","nameLocation":"473:13:55","scope":40231,"usedErrors":[]}],"license":"MIT"},"id":55} \ No newline at end of file diff --git a/.out/IERC165.sol/IERC165.json b/.out/IERC165.sol/IERC165.json index eb3ca1afa..d947f47d9 100644 --- a/.out/IERC165.sol/IERC165.json +++ b/.out/IERC165.sol/IERC165.json @@ -1 +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.19+commit.7dd6d404\"},\"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\":{\"src/interfaces/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IERC165.sol":"IERC165"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/interfaces/IERC165.sol","id":39804,"exportedSymbols":{"IERC165":[39803]},"nodeType":"SourceUnit","src":"32:506:51","nodes":[{"id":39794,"nodeType":"PragmaDirective","src":"32:23:51","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39803,"nodeType":"ContractDefinition","src":"57:480:51","nodes":[{"id":39802,"nodeType":"FunctionDefinition","src":"459:76:51","nodes":[],"documentation":{"id":39795,"nodeType":"StructuredDocumentation","src":"81:373:51","text":"@notice Query if a contract implements an interface\n @param interfaceId The interface identifier, as specified in ERC-165\n @dev Interface identification is specified in ERC-165. This function\n uses less than 30,000 gas.\n @return `true` if the contract implements `interfaceID` and\n `interfaceID` is not 0xffffffff, `false` otherwise"},"functionSelector":"01ffc9a7","implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"468:17:51","parameters":{"id":39798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39797,"mutability":"mutable","name":"interfaceId","nameLocation":"493:11:51","nodeType":"VariableDeclaration","scope":39802,"src":"486:18:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":39796,"name":"bytes4","nodeType":"ElementaryTypeName","src":"486:6:51","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"485:20:51"},"returnParameters":{"id":39801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39800,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":39802,"src":"529:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39799,"name":"bool","nodeType":"ElementaryTypeName","src":"529:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"528:6:51"},"scope":39803,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[39803],"name":"IERC165","nameLocation":"67:7:51","scope":39804,"usedErrors":[]}],"license":"MIT"},"id":51} \ No newline at end of file +{"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.19+commit.7dd6d404\"},\"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\":{\"src/interfaces/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IERC165.sol":"IERC165"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/interfaces/IERC165.sol","id":40242,"exportedSymbols":{"IERC165":[40241]},"nodeType":"SourceUnit","src":"32:506:56","nodes":[{"id":40232,"nodeType":"PragmaDirective","src":"32:23:56","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40241,"nodeType":"ContractDefinition","src":"57:480:56","nodes":[{"id":40240,"nodeType":"FunctionDefinition","src":"459:76:56","nodes":[],"documentation":{"id":40233,"nodeType":"StructuredDocumentation","src":"81:373:56","text":"@notice Query if a contract implements an interface\n @param interfaceId The interface identifier, as specified in ERC-165\n @dev Interface identification is specified in ERC-165. This function\n uses less than 30,000 gas.\n @return `true` if the contract implements `interfaceID` and\n `interfaceID` is not 0xffffffff, `false` otherwise"},"functionSelector":"01ffc9a7","implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"468:17:56","parameters":{"id":40236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40235,"mutability":"mutable","name":"interfaceId","nameLocation":"493:11:56","nodeType":"VariableDeclaration","scope":40240,"src":"486:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40234,"name":"bytes4","nodeType":"ElementaryTypeName","src":"486:6:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"485:20:56"},"returnParameters":{"id":40239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40238,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40240,"src":"529:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40237,"name":"bool","nodeType":"ElementaryTypeName","src":"529:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"528:6:56"},"scope":40241,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[40241],"name":"IERC165","nameLocation":"67:7:56","scope":40242,"usedErrors":[]}],"license":"MIT"},"id":56} \ No newline at end of file diff --git a/.out/IERC20Metadata.sol/IERC20Metadata.json b/.out/IERC20Metadata.sol/IERC20Metadata.json index 947770577..a992209b8 100644 --- a/.out/IERC20Metadata.sol/IERC20Metadata.json +++ b/.out/IERC20Metadata.sol/IERC20Metadata.json @@ -1 +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.19+commit.7dd6d404\"},\"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 for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"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`.\"},\"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 amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013\",\"dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":{"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`."},"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 amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":"IERC20Metadata"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca","urls":["bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013","dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":32025,"exportedSymbols":{"IERC20":[31999],"IERC20Metadata":[32024]},"nodeType":"SourceUnit","src":"110:574:25","nodes":[{"id":32001,"nodeType":"PragmaDirective","src":"110:24:25","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":32002,"nodeType":"ImportDirective","src":"136:23:25","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","nameLocation":"-1:-1:-1","scope":32025,"sourceUnit":32000,"symbolAliases":[],"unitAlias":""},{"id":32024,"nodeType":"ContractDefinition","src":"278:405:25","nodes":[{"id":32011,"nodeType":"FunctionDefinition","src":"378:54:25","nodes":[],"documentation":{"id":32006,"nodeType":"StructuredDocumentation","src":"319:54:25","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"387:4:25","parameters":{"id":32007,"nodeType":"ParameterList","parameters":[],"src":"391:2:25"},"returnParameters":{"id":32010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32011,"src":"417:13:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32008,"name":"string","nodeType":"ElementaryTypeName","src":"417:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"416:15:25"},"scope":32024,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32017,"nodeType":"FunctionDefinition","src":"499:56:25","nodes":[],"documentation":{"id":32012,"nodeType":"StructuredDocumentation","src":"438:56:25","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"508:6:25","parameters":{"id":32013,"nodeType":"ParameterList","parameters":[],"src":"514:2:25"},"returnParameters":{"id":32016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32015,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32017,"src":"540:13:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32014,"name":"string","nodeType":"ElementaryTypeName","src":"540:6:25","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"539:15:25"},"scope":32024,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32023,"nodeType":"FunctionDefinition","src":"631:50:25","nodes":[],"documentation":{"id":32018,"nodeType":"StructuredDocumentation","src":"561:65:25","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"640:8:25","parameters":{"id":32019,"nodeType":"ParameterList","parameters":[],"src":"648:2:25"},"returnParameters":{"id":32022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32021,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32023,"src":"674:5:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":32020,"name":"uint8","nodeType":"ElementaryTypeName","src":"674:5:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"673:7:25"},"scope":32024,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":32004,"name":"IERC20","nameLocations":["306:6:25"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"306:6:25"},"id":32005,"nodeType":"InheritanceSpecifier","src":"306:6:25"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":32003,"nodeType":"StructuredDocumentation","src":"161:116:25","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"linearizedBaseContracts":[32024,31999],"name":"IERC20Metadata","nameLocation":"288:14:25","scope":32025,"usedErrors":[]}],"license":"MIT"},"id":25} \ No newline at end of file +{"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.19+commit.7dd6d404\"},\"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 for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"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`.\"},\"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 amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013\",\"dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":{"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`."},"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 amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":"IERC20Metadata"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x2837661e72b15493671ff5e5099b565b626c53f4d90f347211dd78924aca24ca","urls":["bzz-raw://34ced2145df7d08fbb3fba9471faf5a1609fc3def76d004c658f480e5cebb013","dweb:/ipfs/QmSJ42tRU39HdpJSLXCinUtzzxnxBFncnCbfK6juqqep7U"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":32069,"exportedSymbols":{"IERC20":[31999],"IERC20Metadata":[32068]},"nodeType":"SourceUnit","src":"110:574:26","nodes":[{"id":32045,"nodeType":"PragmaDirective","src":"110:24:26","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":32046,"nodeType":"ImportDirective","src":"136:23:26","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","nameLocation":"-1:-1:-1","scope":32069,"sourceUnit":32000,"symbolAliases":[],"unitAlias":""},{"id":32068,"nodeType":"ContractDefinition","src":"278:405:26","nodes":[{"id":32055,"nodeType":"FunctionDefinition","src":"378:54:26","nodes":[],"documentation":{"id":32050,"nodeType":"StructuredDocumentation","src":"319:54:26","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"387:4:26","parameters":{"id":32051,"nodeType":"ParameterList","parameters":[],"src":"391:2:26"},"returnParameters":{"id":32054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32053,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32055,"src":"417:13:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32052,"name":"string","nodeType":"ElementaryTypeName","src":"417:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"416:15:26"},"scope":32068,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32061,"nodeType":"FunctionDefinition","src":"499:56:26","nodes":[],"documentation":{"id":32056,"nodeType":"StructuredDocumentation","src":"438:56:26","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"508:6:26","parameters":{"id":32057,"nodeType":"ParameterList","parameters":[],"src":"514:2:26"},"returnParameters":{"id":32060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32061,"src":"540:13:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32058,"name":"string","nodeType":"ElementaryTypeName","src":"540:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"539:15:26"},"scope":32068,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32067,"nodeType":"FunctionDefinition","src":"631:50:26","nodes":[],"documentation":{"id":32062,"nodeType":"StructuredDocumentation","src":"561:65:26","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"640:8:26","parameters":{"id":32063,"nodeType":"ParameterList","parameters":[],"src":"648:2:26"},"returnParameters":{"id":32066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32065,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32067,"src":"674:5:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":32064,"name":"uint8","nodeType":"ElementaryTypeName","src":"674:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"673:7:26"},"scope":32068,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":32048,"name":"IERC20","nameLocations":["306:6:26"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"306:6:26"},"id":32049,"nodeType":"InheritanceSpecifier","src":"306:6:26"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":32047,"nodeType":"StructuredDocumentation","src":"161:116:26","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"linearizedBaseContracts":[32068,31999],"name":"IERC20Metadata","nameLocation":"288:14:26","scope":32069,"usedErrors":[]}],"license":"MIT"},"id":26} \ No newline at end of file diff --git a/.out/IERC20Permit.sol/IERC20Permit.json b/.out/IERC20Permit.sol/IERC20Permit.json new file mode 100644 index 000000000..462e78faa --- /dev/null +++ b/.out/IERC20Permit.sol/IERC20Permit.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","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"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"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\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","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"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":"IERC20Permit"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol","id":32105,"exportedSymbols":{"IERC20Permit":[32104]},"nodeType":"SourceUnit","src":"123:2139:27","nodes":[{"id":32070,"nodeType":"PragmaDirective","src":"123:24:27","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":32104,"nodeType":"ContractDefinition","src":"630:1631:27","nodes":[{"id":32089,"nodeType":"FunctionDefinition","src":"1456:183:27","nodes":[],"documentation":{"id":32072,"nodeType":"StructuredDocumentation","src":"659:792:27","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]."},"functionSelector":"d505accf","implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1465:6:27","parameters":{"id":32087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32074,"mutability":"mutable","name":"owner","nameLocation":"1489:5:27","nodeType":"VariableDeclaration","scope":32089,"src":"1481:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32073,"name":"address","nodeType":"ElementaryTypeName","src":"1481:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32076,"mutability":"mutable","name":"spender","nameLocation":"1512:7:27","nodeType":"VariableDeclaration","scope":32089,"src":"1504:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32075,"name":"address","nodeType":"ElementaryTypeName","src":"1504:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32078,"mutability":"mutable","name":"value","nameLocation":"1537:5:27","nodeType":"VariableDeclaration","scope":32089,"src":"1529:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32077,"name":"uint256","nodeType":"ElementaryTypeName","src":"1529:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32080,"mutability":"mutable","name":"deadline","nameLocation":"1560:8:27","nodeType":"VariableDeclaration","scope":32089,"src":"1552:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32079,"name":"uint256","nodeType":"ElementaryTypeName","src":"1552:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32082,"mutability":"mutable","name":"v","nameLocation":"1584:1:27","nodeType":"VariableDeclaration","scope":32089,"src":"1578:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":32081,"name":"uint8","nodeType":"ElementaryTypeName","src":"1578:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":32084,"mutability":"mutable","name":"r","nameLocation":"1603:1:27","nodeType":"VariableDeclaration","scope":32089,"src":"1595:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1595:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32086,"mutability":"mutable","name":"s","nameLocation":"1622:1:27","nodeType":"VariableDeclaration","scope":32089,"src":"1614:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32085,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1614:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1471:158:27"},"returnParameters":{"id":32088,"nodeType":"ParameterList","parameters":[],"src":"1638:0:27"},"scope":32104,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":32097,"nodeType":"FunctionDefinition","src":"1944:63:27","nodes":[],"documentation":{"id":32090,"nodeType":"StructuredDocumentation","src":"1645:294:27","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"1953:6:27","parameters":{"id":32093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32092,"mutability":"mutable","name":"owner","nameLocation":"1968:5:27","nodeType":"VariableDeclaration","scope":32097,"src":"1960:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32091,"name":"address","nodeType":"ElementaryTypeName","src":"1960:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1959:15:27"},"returnParameters":{"id":32096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32095,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32097,"src":"1998:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32094,"name":"uint256","nodeType":"ElementaryTypeName","src":"1998:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1997:9:27"},"scope":32104,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32103,"nodeType":"FunctionDefinition","src":"2199:60:27","nodes":[],"documentation":{"id":32098,"nodeType":"StructuredDocumentation","src":"2013:128:27","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"2208:16:27","parameters":{"id":32099,"nodeType":"ParameterList","parameters":[],"src":"2224:2:27"},"returnParameters":{"id":32102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32101,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32103,"src":"2250:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32100,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2250:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2249:9:27"},"scope":32104,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":32071,"nodeType":"StructuredDocumentation","src":"149:480:27","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all."},"fullyImplemented":false,"linearizedBaseContracts":[32104],"name":"IERC20Permit","nameLocation":"640:12:27","scope":32105,"usedErrors":[]}],"license":"MIT"},"id":27} \ No newline at end of file diff --git a/.out/IGateway.sol/IGateway.json b/.out/IGateway.sol/IGateway.json index 488e9f175..8266932e0 100644 --- a/.out/IGateway.sol/IGateway.json +++ b/.out/IGateway.sol/IGateway.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addStake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"commitCheckpoint","inputs":[{"name":"bottomUpCheckpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitParentFinality","inputs":[{"name":"finality","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBottomUpCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"membershipRootHash","type":"bytes32","internalType":"bytes32"},{"name":"membershipWeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fund","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"propagate","inputs":[{"name":"msgCid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"register","inputs":[{"name":"genesisCircSupply","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"release","inputs":[{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"releaseRewardForRelayer","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"releaseStake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sendUserXnetMessage","inputs":[{"name":"crossMsg","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addStake()":"5a627dbc","commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":"47dc9b4f","commitParentFinality((uint256,bytes32))":"11196974","createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":"74303771","execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":"0bed7615","fund((uint64,address[]),(uint8,bytes))":"18f44b70","kill()":"41c0e1b5","propagate(bytes32)":"25bf0db6","register(uint256)":"f207564e","release((uint8,bytes))":"6b2c1eef","releaseRewardForRelayer(uint256)":"d8e25572","releaseStake(uint256)":"45f54485","sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":"210b944e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"bottomUpCheckpoint\",\"type\":\"tuple\"}],\"name\":\"commitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"finality\",\"type\":\"tuple\"}],\"name\":\"commitParentFinality\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"membershipRootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"membershipWeight\",\"type\":\"uint256\"}],\"name\":\"createBottomUpCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"}],\"name\":\"execBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgCid\",\"type\":\"bytes32\"}],\"name\":\"propagate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"genesisCircSupply\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"crossMsg\",\"type\":\"tuple\"}],\"name\":\"sendUserXnetMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Gateway interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addStake()\":{\"notice\":\"AddStake adds stake to the collateral of a subnet.\"},\"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))\":{\"notice\":\"commitCheckpoint propagates the commitment of a checkpoint from a child\"},\"commitParentFinality((uint256,bytes32))\":{\"notice\":\"commit the ipc parent finality into storage\"},\"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)\":{\"notice\":\"creates a new bottom-up checkpoint\"},\"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"notice\":\"execBottomUpMsgBatch submits a batch of cross-net messages from a subnet actor for their execution.\"},\"fund((uint64,address[]),(uint8,bytes))\":{\"notice\":\"Fund injects new funds from an account of the parent chain to a subnet. This functions receives a transaction with the FILs that want to be injected in the subnet. - Funds injected are frozen. - A new fund cross-message is created and stored to propagate it to the subnet. It will be picked up by miners to include it in the next possible block. - The cross-message nonce is updated\"},\"kill()\":{\"notice\":\"Kill propagates the kill signal from a subnet actor to unregister it from th hierarchy.\"},\"propagate(bytes32)\":{\"notice\":\"Propagates the stored postbox item for the given cid\"},\"register(uint256)\":{\"notice\":\"Register is called by subnet actors to put the required collateral and register the subnet to the hierarchy.\"},\"release((uint8,bytes))\":{\"notice\":\"Release creates a new check message to release funds in parent chain This function burns the funds that will be released in the current subnet and propagates a new checkpoint message to the parent chain to signal the amount of funds that can be released for a specific address.\"},\"releaseRewardForRelayer(uint256)\":{\"notice\":\"Release reward for relayer\"},\"releaseStake(uint256)\":{\"notice\":\"Release stake recovers some collateral of the subnet\"},\"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))\":{\"notice\":\"SendUserXnetMessage sends an arbitrary cross-message to other subnet in the hierarchy. If the message includes any funds they need to be burnt (like in Release) before being propagated to the corresponding subnet. The circulating supply in each subnet needs to be updated as the message passes through them. Params expect a raw message without any subnet context (the IPC address is included in the message by the actor). Only actors are allowed to send arbitrary cross-messages as a side-effect of their execution. For plain token exchanges fund and release have to be used.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IGateway.sol\":\"IGateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"bottomUpCheckpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"commitCheckpoint"},{"inputs":[{"internalType":"struct ParentFinality","name":"finality","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"commitParentFinality"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"bytes32","name":"membershipRootHash","type":"bytes32"},{"internalType":"uint256","name":"membershipWeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createBottomUpCheckpoint"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}],"stateMutability":"nonpayable","type":"function","name":"execBottomUpMsgBatch"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"fund"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[{"internalType":"bytes32","name":"msgCid","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"propagate"},{"inputs":[{"internalType":"uint256","name":"genesisCircSupply","type":"uint256"}],"stateMutability":"payable","type":"function","name":"register"},{"inputs":[{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"release"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseStake"},{"inputs":[{"internalType":"struct CrossMsg","name":"crossMsg","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"payable","type":"function","name":"sendUserXnetMessage"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"addStake()":{"notice":"AddStake adds stake to the collateral of a subnet."},"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":{"notice":"commitCheckpoint propagates the commitment of a checkpoint from a child"},"commitParentFinality((uint256,bytes32))":{"notice":"commit the ipc parent finality into storage"},"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":{"notice":"creates a new bottom-up checkpoint"},"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":{"notice":"execBottomUpMsgBatch submits a batch of cross-net messages from a subnet actor for their execution."},"fund((uint64,address[]),(uint8,bytes))":{"notice":"Fund injects new funds from an account of the parent chain to a subnet. This functions receives a transaction with the FILs that want to be injected in the subnet. - Funds injected are frozen. - A new fund cross-message is created and stored to propagate it to the subnet. It will be picked up by miners to include it in the next possible block. - The cross-message nonce is updated"},"kill()":{"notice":"Kill propagates the kill signal from a subnet actor to unregister it from th hierarchy."},"propagate(bytes32)":{"notice":"Propagates the stored postbox item for the given cid"},"register(uint256)":{"notice":"Register is called by subnet actors to put the required collateral and register the subnet to the hierarchy."},"release((uint8,bytes))":{"notice":"Release creates a new check message to release funds in parent chain This function burns the funds that will be released in the current subnet and propagates a new checkpoint message to the parent chain to signal the amount of funds that can be released for a specific address."},"releaseRewardForRelayer(uint256)":{"notice":"Release reward for relayer"},"releaseStake(uint256)":{"notice":"Release stake recovers some collateral of the subnet"},"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":{"notice":"SendUserXnetMessage sends an arbitrary cross-message to other subnet in the hierarchy. If the message includes any funds they need to be burnt (like in Release) before being propagated to the corresponding subnet. The circulating supply in each subnet needs to be updated as the message passes through them. Params expect a raw message without any subnet context (the IPC address is included in the message by the actor). Only actors are allowed to send arbitrary cross-messages as a side-effect of their execution. For plain token exchanges fund and release have to be used."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IGateway.sol":"IGateway"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/IGateway.sol","id":39905,"exportedSymbols":{"BottomUpCheckpoint":[48410],"BottomUpMsgBatch":[48423],"CrossMsg":[48452],"FvmAddress":[48476],"IGateway":[39904],"ParentFinality":[48396],"SubnetID":[48557]},"nodeType":"SourceUnit","src":"46:3530:52","nodes":[{"id":39805,"nodeType":"PragmaDirective","src":"46:23:52","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39810,"nodeType":"ImportDirective","src":"71:103:52","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39905,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":39806,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"79:18:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39807,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48423,"src":"99:16:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39808,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"117:8:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39809,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"127:14:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39812,"nodeType":"ImportDirective","src":"175:47:52","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":39905,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":39811,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"183:8:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39814,"nodeType":"ImportDirective","src":"223:53:52","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":39905,"sourceUnit":48484,"symbolAliases":[{"foreign":{"id":39813,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"231:10:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39904,"nodeType":"ContractDefinition","src":"334:3241:52","nodes":[{"id":39821,"nodeType":"FunctionDefinition","src":"492:62:52","nodes":[],"documentation":{"id":39816,"nodeType":"StructuredDocumentation","src":"359:128:52","text":"@notice Register is called by subnet actors to put the required collateral\n and register the subnet to the hierarchy."},"functionSelector":"f207564e","implemented":false,"kind":"function","modifiers":[],"name":"register","nameLocation":"501:8:52","parameters":{"id":39819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39818,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"518:17:52","nodeType":"VariableDeclaration","scope":39821,"src":"510:25:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39817,"name":"uint256","nodeType":"ElementaryTypeName","src":"510:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"509:27:52"},"returnParameters":{"id":39820,"nodeType":"ParameterList","parameters":[],"src":"553:0:52"},"scope":39904,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":39825,"nodeType":"FunctionDefinition","src":"627:37:52","nodes":[],"documentation":{"id":39822,"nodeType":"StructuredDocumentation","src":"560:62:52","text":"@notice AddStake adds stake to the collateral of a subnet."},"functionSelector":"5a627dbc","implemented":false,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"636:8:52","parameters":{"id":39823,"nodeType":"ParameterList","parameters":[],"src":"644:2:52"},"returnParameters":{"id":39824,"nodeType":"ParameterList","parameters":[],"src":"663:0:52"},"scope":39904,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":39831,"nodeType":"FunctionDefinition","src":"739:47:52","nodes":[],"documentation":{"id":39826,"nodeType":"StructuredDocumentation","src":"670:64:52","text":"@notice Release stake recovers some collateral of the subnet"},"functionSelector":"45f54485","implemented":false,"kind":"function","modifiers":[],"name":"releaseStake","nameLocation":"748:12:52","parameters":{"id":39829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39828,"mutability":"mutable","name":"amount","nameLocation":"769:6:52","nodeType":"VariableDeclaration","scope":39831,"src":"761:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39827,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:16:52"},"returnParameters":{"id":39830,"nodeType":"ParameterList","parameters":[],"src":"785:0:52"},"scope":39904,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39837,"nodeType":"FunctionDefinition","src":"835:58:52","nodes":[],"documentation":{"id":39832,"nodeType":"StructuredDocumentation","src":"792:38:52","text":"@notice Release reward for relayer"},"functionSelector":"d8e25572","implemented":false,"kind":"function","modifiers":[],"name":"releaseRewardForRelayer","nameLocation":"844:23:52","parameters":{"id":39835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39834,"mutability":"mutable","name":"amount","nameLocation":"876:6:52","nodeType":"VariableDeclaration","scope":39837,"src":"868:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39833,"name":"uint256","nodeType":"ElementaryTypeName","src":"868:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"867:16:52"},"returnParameters":{"id":39836,"nodeType":"ParameterList","parameters":[],"src":"892:0:52"},"scope":39904,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39841,"nodeType":"FunctionDefinition","src":"1011:25:52","nodes":[],"documentation":{"id":39838,"nodeType":"StructuredDocumentation","src":"899:107:52","text":"@notice Kill propagates the kill signal from a subnet actor to unregister it from th\n hierarchy."},"functionSelector":"41c0e1b5","implemented":false,"kind":"function","modifiers":[],"name":"kill","nameLocation":"1020:4:52","parameters":{"id":39839,"nodeType":"ParameterList","parameters":[],"src":"1024:2:52"},"returnParameters":{"id":39840,"nodeType":"ParameterList","parameters":[],"src":"1035:0:52"},"scope":39904,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39848,"nodeType":"FunctionDefinition","src":"1130:83:52","nodes":[],"documentation":{"id":39842,"nodeType":"StructuredDocumentation","src":"1042:83:52","text":"@notice commitCheckpoint propagates the commitment of a checkpoint from a child"},"functionSelector":"47dc9b4f","implemented":false,"kind":"function","modifiers":[],"name":"commitCheckpoint","nameLocation":"1139:16:52","parameters":{"id":39846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39845,"mutability":"mutable","name":"bottomUpCheckpoint","nameLocation":"1184:18:52","nodeType":"VariableDeclaration","scope":39848,"src":"1156:46:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":39844,"nodeType":"UserDefinedTypeName","pathNode":{"id":39843,"name":"BottomUpCheckpoint","nameLocations":["1156:18:52"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"1156:18:52"},"referencedDeclaration":48410,"src":"1156:18:52","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"1155:48:52"},"returnParameters":{"id":39847,"nodeType":"ParameterList","parameters":[],"src":"1212:0:52"},"scope":39904,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39858,"nodeType":"FunctionDefinition","src":"1666:83:52","nodes":[],"documentation":{"id":39849,"nodeType":"StructuredDocumentation","src":"1219:442:52","text":"@notice Fund injects new funds from an account of the parent chain to a subnet.\n This functions receives a transaction with the FILs that want to be injected in the subnet.\n - Funds injected are frozen.\n - A new fund cross-message is created and stored to propagate it to the subnet. It will be\n picked up by miners to include it in the next possible block.\n - The cross-message nonce is updated"},"functionSelector":"18f44b70","implemented":false,"kind":"function","modifiers":[],"name":"fund","nameLocation":"1675:4:52","parameters":{"id":39856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39852,"mutability":"mutable","name":"subnetId","nameLocation":"1698:8:52","nodeType":"VariableDeclaration","scope":39858,"src":"1680:26:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":39851,"nodeType":"UserDefinedTypeName","pathNode":{"id":39850,"name":"SubnetID","nameLocations":["1680:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1680:8:52"},"referencedDeclaration":48557,"src":"1680:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":39855,"mutability":"mutable","name":"to","nameLocation":"1728:2:52","nodeType":"VariableDeclaration","scope":39858,"src":"1708:22:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":39854,"nodeType":"UserDefinedTypeName","pathNode":{"id":39853,"name":"FvmAddress","nameLocations":["1708:10:52"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"1708:10:52"},"referencedDeclaration":48476,"src":"1708:10:52","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"1679:52:52"},"returnParameters":{"id":39857,"nodeType":"ParameterList","parameters":[],"src":"1748:0:52"},"scope":39904,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":39865,"nodeType":"FunctionDefinition","src":"2081:58:52","nodes":[],"documentation":{"id":39859,"nodeType":"StructuredDocumentation","src":"1755:321:52","text":"@notice Release creates a new check message to release funds in parent chain\n This function burns the funds that will be released in the current subnet\n and propagates a new checkpoint message to the parent chain to signal\n the amount of funds that can be released for a specific address."},"functionSelector":"6b2c1eef","implemented":false,"kind":"function","modifiers":[],"name":"release","nameLocation":"2090:7:52","parameters":{"id":39863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39862,"mutability":"mutable","name":"to","nameLocation":"2118:2:52","nodeType":"VariableDeclaration","scope":39865,"src":"2098:22:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":39861,"nodeType":"UserDefinedTypeName","pathNode":{"id":39860,"name":"FvmAddress","nameLocations":["2098:10:52"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"2098:10:52"},"referencedDeclaration":48476,"src":"2098:10:52","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"2097:24:52"},"returnParameters":{"id":39864,"nodeType":"ParameterList","parameters":[],"src":"2138:0:52"},"scope":39904,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":39872,"nodeType":"FunctionDefinition","src":"2809:72:52","nodes":[],"documentation":{"id":39866,"nodeType":"StructuredDocumentation","src":"2145:659:52","text":"@notice SendUserXnetMessage sends an arbitrary cross-message to other subnet in the hierarchy.\n If the message includes any funds they need to be burnt (like in Release)\n before being propagated to the corresponding subnet.\n The circulating supply in each subnet needs to be updated as the message passes through them.\n Params expect a raw message without any subnet context (the IPC address is\n included in the message by the actor). Only actors are allowed to send arbitrary\n cross-messages as a side-effect of their execution. For plain token exchanges\n fund and release have to be used."},"functionSelector":"210b944e","implemented":false,"kind":"function","modifiers":[],"name":"sendUserXnetMessage","nameLocation":"2818:19:52","parameters":{"id":39870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39869,"mutability":"mutable","name":"crossMsg","nameLocation":"2854:8:52","nodeType":"VariableDeclaration","scope":39872,"src":"2838:24:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":39868,"nodeType":"UserDefinedTypeName","pathNode":{"id":39867,"name":"CrossMsg","nameLocations":["2838:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"2838:8:52"},"referencedDeclaration":48452,"src":"2838:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"2837:26:52"},"returnParameters":{"id":39871,"nodeType":"ParameterList","parameters":[],"src":"2880:0:52"},"scope":39904,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":39878,"nodeType":"FunctionDefinition","src":"2956:52:52","nodes":[],"documentation":{"id":39873,"nodeType":"StructuredDocumentation","src":"2887:64:52","text":"@notice Propagates the stored postbox item for the given cid"},"functionSelector":"25bf0db6","implemented":false,"kind":"function","modifiers":[],"name":"propagate","nameLocation":"2965:9:52","parameters":{"id":39876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39875,"mutability":"mutable","name":"msgCid","nameLocation":"2983:6:52","nodeType":"VariableDeclaration","scope":39878,"src":"2975:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39874,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2975:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2974:16:52"},"returnParameters":{"id":39877,"nodeType":"ParameterList","parameters":[],"src":"3007:0:52"},"scope":39904,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":39885,"nodeType":"FunctionDefinition","src":"3074:73:52","nodes":[],"documentation":{"id":39879,"nodeType":"StructuredDocumentation","src":"3014:55:52","text":"@notice commit the ipc parent finality into storage"},"functionSelector":"11196974","implemented":false,"kind":"function","modifiers":[],"name":"commitParentFinality","nameLocation":"3083:20:52","parameters":{"id":39883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39882,"mutability":"mutable","name":"finality","nameLocation":"3128:8:52","nodeType":"VariableDeclaration","scope":39885,"src":"3104:32:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_calldata_ptr","typeString":"struct ParentFinality"},"typeName":{"id":39881,"nodeType":"UserDefinedTypeName","pathNode":{"id":39880,"name":"ParentFinality","nameLocations":["3104:14:52"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"3104:14:52"},"referencedDeclaration":48396,"src":"3104:14:52","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"3103:34:52"},"returnParameters":{"id":39884,"nodeType":"ParameterList","parameters":[],"src":"3146:0:52"},"scope":39904,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39896,"nodeType":"FunctionDefinition","src":"3204:167:52","nodes":[],"documentation":{"id":39886,"nodeType":"StructuredDocumentation","src":"3153:46:52","text":"@notice creates a new bottom-up checkpoint"},"functionSelector":"74303771","implemented":false,"kind":"function","modifiers":[],"name":"createBottomUpCheckpoint","nameLocation":"3213:24:52","parameters":{"id":39894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39889,"mutability":"mutable","name":"checkpoint","nameLocation":"3275:10:52","nodeType":"VariableDeclaration","scope":39896,"src":"3247:38:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":39888,"nodeType":"UserDefinedTypeName","pathNode":{"id":39887,"name":"BottomUpCheckpoint","nameLocations":["3247:18:52"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"3247:18:52"},"referencedDeclaration":48410,"src":"3247:18:52","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":39891,"mutability":"mutable","name":"membershipRootHash","nameLocation":"3303:18:52","nodeType":"VariableDeclaration","scope":39896,"src":"3295:26:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39890,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3295:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39893,"mutability":"mutable","name":"membershipWeight","nameLocation":"3339:16:52","nodeType":"VariableDeclaration","scope":39896,"src":"3331:24:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39892,"name":"uint256","nodeType":"ElementaryTypeName","src":"3331:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3237:124:52"},"returnParameters":{"id":39895,"nodeType":"ParameterList","parameters":[],"src":"3370:0:52"},"scope":39904,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39903,"nodeType":"FunctionDefinition","src":"3501:72:52","nodes":[],"documentation":{"id":39897,"nodeType":"StructuredDocumentation","src":"3377:119:52","text":"@notice execBottomUpMsgBatch submits a batch of cross-net messages\n from a subnet actor for their execution."},"functionSelector":"0bed7615","implemented":false,"kind":"function","modifiers":[],"name":"execBottomUpMsgBatch","nameLocation":"3510:20:52","parameters":{"id":39901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39900,"mutability":"mutable","name":"batch","nameLocation":"3557:5:52","nodeType":"VariableDeclaration","scope":39903,"src":"3531:31:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":39899,"nodeType":"UserDefinedTypeName","pathNode":{"id":39898,"name":"BottomUpMsgBatch","nameLocations":["3531:16:52"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"3531:16:52"},"referencedDeclaration":48423,"src":"3531:16:52","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"3530:33:52"},"returnParameters":{"id":39902,"nodeType":"ParameterList","parameters":[],"src":"3572:0:52"},"scope":39904,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IGateway","contractDependencies":[],"contractKind":"interface","documentation":{"id":39815,"nodeType":"StructuredDocumentation","src":"278:56:52","text":"@title Gateway interface\n @author LimeChain team"},"fullyImplemented":false,"linearizedBaseContracts":[39904],"name":"IGateway","nameLocation":"344:8:52","scope":39905,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":52} \ No newline at end of file +{"abi":[{"type":"function","name":"addStake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"commitCheckpoint","inputs":[{"name":"bottomUpCheckpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"commitParentFinality","inputs":[{"name":"finality","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createBottomUpCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"membershipRootHash","type":"bytes32","internalType":"bytes32"},{"name":"membershipWeight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"execBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fund","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"fundWithToken","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"propagate","inputs":[{"name":"msgCid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"register","inputs":[{"name":"genesisCircSupply","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"release","inputs":[{"name":"to","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"releaseRewardForRelayer","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"releaseStake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sendUserXnetMessage","inputs":[{"name":"crossMsg","type":"tuple","internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addStake()":"5a627dbc","commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":"47dc9b4f","commitParentFinality((uint256,bytes32))":"11196974","createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":"74303771","execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":"0bed7615","fund((uint64,address[]),(uint8,bytes))":"18f44b70","fundWithToken((uint64,address[]),(uint8,bytes),uint256)":"0517e1aa","kill()":"41c0e1b5","propagate(bytes32)":"25bf0db6","register(uint256)":"f207564e","release((uint8,bytes))":"6b2c1eef","releaseRewardForRelayer(uint256)":"d8e25572","releaseStake(uint256)":"45f54485","sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":"210b944e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"bottomUpCheckpoint\",\"type\":\"tuple\"}],\"name\":\"commitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"finality\",\"type\":\"tuple\"}],\"name\":\"commitParentFinality\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"membershipRootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"membershipWeight\",\"type\":\"uint256\"}],\"name\":\"createBottomUpCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"}],\"name\":\"execBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundWithToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgCid\",\"type\":\"bytes32\"}],\"name\":\"propagate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"genesisCircSupply\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"to\",\"type\":\"tuple\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg\",\"name\":\"crossMsg\",\"type\":\"tuple\"}],\"name\":\"sendUserXnetMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Gateway interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addStake()\":{\"notice\":\"AddStake adds stake to the collateral of a subnet.\"},\"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))\":{\"notice\":\"commitCheckpoint propagates the commitment of a checkpoint from a child\"},\"commitParentFinality((uint256,bytes32))\":{\"notice\":\"commit the ipc parent finality into storage\"},\"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)\":{\"notice\":\"creates a new bottom-up checkpoint\"},\"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"notice\":\"execBottomUpMsgBatch submits a batch of cross-net messages from a subnet actor for their execution.\"},\"fund((uint64,address[]),(uint8,bytes))\":{\"notice\":\"fund locks the received funds \\u2014denominated in the native coin\\u2014 and moves the value down the hierarchy, crediting the funds to the specified address in the destination network. This functions ends up minting supply in the subnet equal to the value of the transaction. It does so by committing the relevant top-down message, updating the top-down nonce along the way. Calling this method on a subnet whose supply source is not 'native' will revert with UnexpectedSupplySource().\"},\"fundWithToken((uint64,address[]),(uint8,bytes),uint256)\":{\"notice\":\"fundWithToken locks the specified amount of tokens in the ERC20 contract linked to the subnet, and moves the value down the hierarchy, crediting the funds as native coins to the specified address in the destination network. This method expects the caller to have approved the gateway to spend `amount` tokens on their behalf (usually done through IERC20#approve). Tokens are locked by calling IERC20#transferFrom(caller, address(this), amount). A failure in transferring tokens to the gateway will revert the call. It's possible to call this method from an EOA or a contract. Regardless, it's recommended to approve strictly the amount that will subsequently be deposited into the subnet. Keeping outstanding approvals is not recommended. Calling this method on a subnet whose supply source is not 'ERC20' will revert with UnexpectedSupplySource().\"},\"kill()\":{\"notice\":\"Kill propagates the kill signal from a subnet actor to unregister it from th hierarchy.\"},\"propagate(bytes32)\":{\"notice\":\"Propagates the stored postbox item for the given cid\"},\"register(uint256)\":{\"notice\":\"Register is called by subnet actors to put the required collateral and register the subnet to the hierarchy.\"},\"release((uint8,bytes))\":{\"notice\":\"Release creates a new check message to release funds in parent chain This function burns the funds that will be released in the current subnet and propagates a new checkpoint message to the parent chain to signal the amount of funds that can be released for a specific address.\"},\"releaseRewardForRelayer(uint256)\":{\"notice\":\"Release reward for relayer\"},\"releaseStake(uint256)\":{\"notice\":\"Release stake recovers some collateral of the subnet\"},\"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))\":{\"notice\":\"SendUserXnetMessage sends an arbitrary cross-message to other subnet in the hierarchy. If the message includes any funds they need to be burnt (like in Release) before being propagated to the corresponding subnet. The circulating supply in each subnet needs to be updated as the message passes through them. Params expect a raw message without any subnet context (the IPC address is included in the message by the actor). Only actors are allowed to send arbitrary cross-messages as a side-effect of their execution. For plain token exchanges fund and release have to be used.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IGateway.sol\":\"IGateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"function","name":"addStake"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"bottomUpCheckpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"commitCheckpoint"},{"inputs":[{"internalType":"struct ParentFinality","name":"finality","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"commitParentFinality"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"bytes32","name":"membershipRootHash","type":"bytes32"},{"internalType":"uint256","name":"membershipWeight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createBottomUpCheckpoint"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]}],"stateMutability":"nonpayable","type":"function","name":"execBottomUpMsgBatch"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"fund"},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fundWithToken"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[{"internalType":"bytes32","name":"msgCid","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"propagate"},{"inputs":[{"internalType":"uint256","name":"genesisCircSupply","type":"uint256"}],"stateMutability":"payable","type":"function","name":"register"},{"inputs":[{"internalType":"struct FvmAddress","name":"to","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"release"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"releaseStake"},{"inputs":[{"internalType":"struct CrossMsg","name":"crossMsg","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"payable","type":"function","name":"sendUserXnetMessage"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"addStake()":{"notice":"AddStake adds stake to the collateral of a subnet."},"commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))":{"notice":"commitCheckpoint propagates the commitment of a checkpoint from a child"},"commitParentFinality((uint256,bytes32))":{"notice":"commit the ipc parent finality into storage"},"createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)":{"notice":"creates a new bottom-up checkpoint"},"execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))":{"notice":"execBottomUpMsgBatch submits a batch of cross-net messages from a subnet actor for their execution."},"fund((uint64,address[]),(uint8,bytes))":{"notice":"fund locks the received funds —denominated in the native coin— and moves the value down the hierarchy, crediting the funds to the specified address in the destination network. This functions ends up minting supply in the subnet equal to the value of the transaction. It does so by committing the relevant top-down message, updating the top-down nonce along the way. Calling this method on a subnet whose supply source is not 'native' will revert with UnexpectedSupplySource()."},"fundWithToken((uint64,address[]),(uint8,bytes),uint256)":{"notice":"fundWithToken locks the specified amount of tokens in the ERC20 contract linked to the subnet, and moves the value down the hierarchy, crediting the funds as native coins to the specified address in the destination network. This method expects the caller to have approved the gateway to spend `amount` tokens on their behalf (usually done through IERC20#approve). Tokens are locked by calling IERC20#transferFrom(caller, address(this), amount). A failure in transferring tokens to the gateway will revert the call. It's possible to call this method from an EOA or a contract. Regardless, it's recommended to approve strictly the amount that will subsequently be deposited into the subnet. Keeping outstanding approvals is not recommended. Calling this method on a subnet whose supply source is not 'ERC20' will revert with UnexpectedSupplySource()."},"kill()":{"notice":"Kill propagates the kill signal from a subnet actor to unregister it from th hierarchy."},"propagate(bytes32)":{"notice":"Propagates the stored postbox item for the given cid"},"register(uint256)":{"notice":"Register is called by subnet actors to put the required collateral and register the subnet to the hierarchy."},"release((uint8,bytes))":{"notice":"Release creates a new check message to release funds in parent chain This function burns the funds that will be released in the current subnet and propagates a new checkpoint message to the parent chain to signal the amount of funds that can be released for a specific address."},"releaseRewardForRelayer(uint256)":{"notice":"Release reward for relayer"},"releaseStake(uint256)":{"notice":"Release stake recovers some collateral of the subnet"},"sendUserXnetMessage(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))":{"notice":"SendUserXnetMessage sends an arbitrary cross-message to other subnet in the hierarchy. If the message includes any funds they need to be burnt (like in Release) before being propagated to the corresponding subnet. The circulating supply in each subnet needs to be updated as the message passes through them. Params expect a raw message without any subnet context (the IPC address is included in the message by the actor). Only actors are allowed to send arbitrary cross-messages as a side-effect of their execution. For plain token exchanges fund and release have to be used."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IGateway.sol":"IGateway"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/IGateway.sol","id":40355,"exportedSymbols":{"BottomUpCheckpoint":[49932],"BottomUpMsgBatch":[49945],"CrossMsg":[49974],"FvmAddress":[49998],"IGateway":[40354],"ParentFinality":[49918],"SubnetID":[50077]},"nodeType":"SourceUnit","src":"46:4687:57","nodes":[{"id":40243,"nodeType":"PragmaDirective","src":"46:23:57","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40248,"nodeType":"ImportDirective","src":"71:103:57","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40355,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":40244,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"79:18:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40245,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"99:16:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40246,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"117:8:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40247,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"127:14:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40250,"nodeType":"ImportDirective","src":"175:47:57","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40355,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":40249,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"183:8:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40252,"nodeType":"ImportDirective","src":"223:53:57","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":40355,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":40251,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"231:10:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40354,"nodeType":"ContractDefinition","src":"334:4398:57","nodes":[{"id":40259,"nodeType":"FunctionDefinition","src":"492:62:57","nodes":[],"documentation":{"id":40254,"nodeType":"StructuredDocumentation","src":"359:128:57","text":"@notice Register is called by subnet actors to put the required collateral\n and register the subnet to the hierarchy."},"functionSelector":"f207564e","implemented":false,"kind":"function","modifiers":[],"name":"register","nameLocation":"501:8:57","parameters":{"id":40257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40256,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"518:17:57","nodeType":"VariableDeclaration","scope":40259,"src":"510:25:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40255,"name":"uint256","nodeType":"ElementaryTypeName","src":"510:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"509:27:57"},"returnParameters":{"id":40258,"nodeType":"ParameterList","parameters":[],"src":"553:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40263,"nodeType":"FunctionDefinition","src":"627:37:57","nodes":[],"documentation":{"id":40260,"nodeType":"StructuredDocumentation","src":"560:62:57","text":"@notice AddStake adds stake to the collateral of a subnet."},"functionSelector":"5a627dbc","implemented":false,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"636:8:57","parameters":{"id":40261,"nodeType":"ParameterList","parameters":[],"src":"644:2:57"},"returnParameters":{"id":40262,"nodeType":"ParameterList","parameters":[],"src":"663:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40269,"nodeType":"FunctionDefinition","src":"739:47:57","nodes":[],"documentation":{"id":40264,"nodeType":"StructuredDocumentation","src":"670:64:57","text":"@notice Release stake recovers some collateral of the subnet"},"functionSelector":"45f54485","implemented":false,"kind":"function","modifiers":[],"name":"releaseStake","nameLocation":"748:12:57","parameters":{"id":40267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40266,"mutability":"mutable","name":"amount","nameLocation":"769:6:57","nodeType":"VariableDeclaration","scope":40269,"src":"761:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40265,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:16:57"},"returnParameters":{"id":40268,"nodeType":"ParameterList","parameters":[],"src":"785:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40275,"nodeType":"FunctionDefinition","src":"835:58:57","nodes":[],"documentation":{"id":40270,"nodeType":"StructuredDocumentation","src":"792:38:57","text":"@notice Release reward for relayer"},"functionSelector":"d8e25572","implemented":false,"kind":"function","modifiers":[],"name":"releaseRewardForRelayer","nameLocation":"844:23:57","parameters":{"id":40273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40272,"mutability":"mutable","name":"amount","nameLocation":"876:6:57","nodeType":"VariableDeclaration","scope":40275,"src":"868:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40271,"name":"uint256","nodeType":"ElementaryTypeName","src":"868:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"867:16:57"},"returnParameters":{"id":40274,"nodeType":"ParameterList","parameters":[],"src":"892:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40279,"nodeType":"FunctionDefinition","src":"1011:25:57","nodes":[],"documentation":{"id":40276,"nodeType":"StructuredDocumentation","src":"899:107:57","text":"@notice Kill propagates the kill signal from a subnet actor to unregister it from th\n hierarchy."},"functionSelector":"41c0e1b5","implemented":false,"kind":"function","modifiers":[],"name":"kill","nameLocation":"1020:4:57","parameters":{"id":40277,"nodeType":"ParameterList","parameters":[],"src":"1024:2:57"},"returnParameters":{"id":40278,"nodeType":"ParameterList","parameters":[],"src":"1035:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40286,"nodeType":"FunctionDefinition","src":"1130:83:57","nodes":[],"documentation":{"id":40280,"nodeType":"StructuredDocumentation","src":"1042:83:57","text":"@notice commitCheckpoint propagates the commitment of a checkpoint from a child"},"functionSelector":"47dc9b4f","implemented":false,"kind":"function","modifiers":[],"name":"commitCheckpoint","nameLocation":"1139:16:57","parameters":{"id":40284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40283,"mutability":"mutable","name":"bottomUpCheckpoint","nameLocation":"1184:18:57","nodeType":"VariableDeclaration","scope":40286,"src":"1156:46:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":40282,"nodeType":"UserDefinedTypeName","pathNode":{"id":40281,"name":"BottomUpCheckpoint","nameLocations":["1156:18:57"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"1156:18:57"},"referencedDeclaration":49932,"src":"1156:18:57","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"1155:48:57"},"returnParameters":{"id":40285,"nodeType":"ParameterList","parameters":[],"src":"1212:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40296,"nodeType":"FunctionDefinition","src":"1764:83:57","nodes":[],"documentation":{"id":40287,"nodeType":"StructuredDocumentation","src":"1219:540:57","text":"@notice fund locks the received funds —denominated in the native coin— and moves the value down the hierarchy,\n crediting the funds to the specified address in the destination network.\n This functions ends up minting supply in the subnet equal to the value of the transaction. It does so by\n committing the relevant top-down message, updating the top-down nonce along the way.\n Calling this method on a subnet whose supply source is not 'native' will revert with UnexpectedSupplySource()."},"functionSelector":"18f44b70","implemented":false,"kind":"function","modifiers":[],"name":"fund","nameLocation":"1773:4:57","parameters":{"id":40294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40290,"mutability":"mutable","name":"subnetId","nameLocation":"1796:8:57","nodeType":"VariableDeclaration","scope":40296,"src":"1778:26:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":40289,"nodeType":"UserDefinedTypeName","pathNode":{"id":40288,"name":"SubnetID","nameLocations":["1778:8:57"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1778:8:57"},"referencedDeclaration":50077,"src":"1778:8:57","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":40293,"mutability":"mutable","name":"to","nameLocation":"1826:2:57","nodeType":"VariableDeclaration","scope":40296,"src":"1806:22:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40292,"nodeType":"UserDefinedTypeName","pathNode":{"id":40291,"name":"FvmAddress","nameLocations":["1806:10:57"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"1806:10:57"},"referencedDeclaration":49998,"src":"1806:10:57","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"1777:52:57"},"returnParameters":{"id":40295,"nodeType":"ParameterList","parameters":[],"src":"1846:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40308,"nodeType":"FunctionDefinition","src":"2806:100:57","nodes":[],"documentation":{"id":40297,"nodeType":"StructuredDocumentation","src":"1853:948:57","text":"@notice fundWithToken locks the specified amount of tokens in the ERC20 contract linked to the subnet, and\n moves the value down the hierarchy, crediting the funds as native coins to the specified address\n in the destination network.\n This method expects the caller to have approved the gateway to spend `amount` tokens on their behalf\n (usually done through IERC20#approve). Tokens are locked by calling IERC20#transferFrom(caller, address(this), amount).\n A failure in transferring tokens to the gateway will revert the call.\n It's possible to call this method from an EOA or a contract. Regardless, it's recommended to approve strictly\n the amount that will subsequently be deposited into the subnet. Keeping outstanding approvals is not recommended.\n Calling this method on a subnet whose supply source is not 'ERC20' will revert with UnexpectedSupplySource()."},"functionSelector":"0517e1aa","implemented":false,"kind":"function","modifiers":[],"name":"fundWithToken","nameLocation":"2815:13:57","parameters":{"id":40306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40300,"mutability":"mutable","name":"subnetId","nameLocation":"2847:8:57","nodeType":"VariableDeclaration","scope":40308,"src":"2829:26:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":40299,"nodeType":"UserDefinedTypeName","pathNode":{"id":40298,"name":"SubnetID","nameLocations":["2829:8:57"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2829:8:57"},"referencedDeclaration":50077,"src":"2829:8:57","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":40303,"mutability":"mutable","name":"to","nameLocation":"2877:2:57","nodeType":"VariableDeclaration","scope":40308,"src":"2857:22:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40302,"nodeType":"UserDefinedTypeName","pathNode":{"id":40301,"name":"FvmAddress","nameLocations":["2857:10:57"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"2857:10:57"},"referencedDeclaration":49998,"src":"2857:10:57","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"},{"constant":false,"id":40305,"mutability":"mutable","name":"amount","nameLocation":"2889:6:57","nodeType":"VariableDeclaration","scope":40308,"src":"2881:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40304,"name":"uint256","nodeType":"ElementaryTypeName","src":"2881:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2828:68:57"},"returnParameters":{"id":40307,"nodeType":"ParameterList","parameters":[],"src":"2905:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40315,"nodeType":"FunctionDefinition","src":"3238:58:57","nodes":[],"documentation":{"id":40309,"nodeType":"StructuredDocumentation","src":"2912:321:57","text":"@notice Release creates a new check message to release funds in parent chain\n This function burns the funds that will be released in the current subnet\n and propagates a new checkpoint message to the parent chain to signal\n the amount of funds that can be released for a specific address."},"functionSelector":"6b2c1eef","implemented":false,"kind":"function","modifiers":[],"name":"release","nameLocation":"3247:7:57","parameters":{"id":40313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40312,"mutability":"mutable","name":"to","nameLocation":"3275:2:57","nodeType":"VariableDeclaration","scope":40315,"src":"3255:22:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_calldata_ptr","typeString":"struct FvmAddress"},"typeName":{"id":40311,"nodeType":"UserDefinedTypeName","pathNode":{"id":40310,"name":"FvmAddress","nameLocations":["3255:10:57"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"3255:10:57"},"referencedDeclaration":49998,"src":"3255:10:57","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"src":"3254:24:57"},"returnParameters":{"id":40314,"nodeType":"ParameterList","parameters":[],"src":"3295:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40322,"nodeType":"FunctionDefinition","src":"3966:72:57","nodes":[],"documentation":{"id":40316,"nodeType":"StructuredDocumentation","src":"3302:659:57","text":"@notice SendUserXnetMessage sends an arbitrary cross-message to other subnet in the hierarchy.\n If the message includes any funds they need to be burnt (like in Release)\n before being propagated to the corresponding subnet.\n The circulating supply in each subnet needs to be updated as the message passes through them.\n Params expect a raw message without any subnet context (the IPC address is\n included in the message by the actor). Only actors are allowed to send arbitrary\n cross-messages as a side-effect of their execution. For plain token exchanges\n fund and release have to be used."},"functionSelector":"210b944e","implemented":false,"kind":"function","modifiers":[],"name":"sendUserXnetMessage","nameLocation":"3975:19:57","parameters":{"id":40320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40319,"mutability":"mutable","name":"crossMsg","nameLocation":"4011:8:57","nodeType":"VariableDeclaration","scope":40322,"src":"3995:24:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":40318,"nodeType":"UserDefinedTypeName","pathNode":{"id":40317,"name":"CrossMsg","nameLocations":["3995:8:57"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"3995:8:57"},"referencedDeclaration":49974,"src":"3995:8:57","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"3994:26:57"},"returnParameters":{"id":40321,"nodeType":"ParameterList","parameters":[],"src":"4037:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40328,"nodeType":"FunctionDefinition","src":"4113:52:57","nodes":[],"documentation":{"id":40323,"nodeType":"StructuredDocumentation","src":"4044:64:57","text":"@notice Propagates the stored postbox item for the given cid"},"functionSelector":"25bf0db6","implemented":false,"kind":"function","modifiers":[],"name":"propagate","nameLocation":"4122:9:57","parameters":{"id":40326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40325,"mutability":"mutable","name":"msgCid","nameLocation":"4140:6:57","nodeType":"VariableDeclaration","scope":40328,"src":"4132:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4132:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4131:16:57"},"returnParameters":{"id":40327,"nodeType":"ParameterList","parameters":[],"src":"4164:0:57"},"scope":40354,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40335,"nodeType":"FunctionDefinition","src":"4231:73:57","nodes":[],"documentation":{"id":40329,"nodeType":"StructuredDocumentation","src":"4171:55:57","text":"@notice commit the ipc parent finality into storage"},"functionSelector":"11196974","implemented":false,"kind":"function","modifiers":[],"name":"commitParentFinality","nameLocation":"4240:20:57","parameters":{"id":40333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40332,"mutability":"mutable","name":"finality","nameLocation":"4285:8:57","nodeType":"VariableDeclaration","scope":40335,"src":"4261:32:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality"},"typeName":{"id":40331,"nodeType":"UserDefinedTypeName","pathNode":{"id":40330,"name":"ParentFinality","nameLocations":["4261:14:57"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"4261:14:57"},"referencedDeclaration":49918,"src":"4261:14:57","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"4260:34:57"},"returnParameters":{"id":40334,"nodeType":"ParameterList","parameters":[],"src":"4303:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40346,"nodeType":"FunctionDefinition","src":"4361:167:57","nodes":[],"documentation":{"id":40336,"nodeType":"StructuredDocumentation","src":"4310:46:57","text":"@notice creates a new bottom-up checkpoint"},"functionSelector":"74303771","implemented":false,"kind":"function","modifiers":[],"name":"createBottomUpCheckpoint","nameLocation":"4370:24:57","parameters":{"id":40344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40339,"mutability":"mutable","name":"checkpoint","nameLocation":"4432:10:57","nodeType":"VariableDeclaration","scope":40346,"src":"4404:38:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":40338,"nodeType":"UserDefinedTypeName","pathNode":{"id":40337,"name":"BottomUpCheckpoint","nameLocations":["4404:18:57"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"4404:18:57"},"referencedDeclaration":49932,"src":"4404:18:57","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":40341,"mutability":"mutable","name":"membershipRootHash","nameLocation":"4460:18:57","nodeType":"VariableDeclaration","scope":40346,"src":"4452:26:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4452:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40343,"mutability":"mutable","name":"membershipWeight","nameLocation":"4496:16:57","nodeType":"VariableDeclaration","scope":40346,"src":"4488:24:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40342,"name":"uint256","nodeType":"ElementaryTypeName","src":"4488:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4394:124:57"},"returnParameters":{"id":40345,"nodeType":"ParameterList","parameters":[],"src":"4527:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40353,"nodeType":"FunctionDefinition","src":"4658:72:57","nodes":[],"documentation":{"id":40347,"nodeType":"StructuredDocumentation","src":"4534:119:57","text":"@notice execBottomUpMsgBatch submits a batch of cross-net messages\n from a subnet actor for their execution."},"functionSelector":"0bed7615","implemented":false,"kind":"function","modifiers":[],"name":"execBottomUpMsgBatch","nameLocation":"4667:20:57","parameters":{"id":40351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40350,"mutability":"mutable","name":"batch","nameLocation":"4714:5:57","nodeType":"VariableDeclaration","scope":40353,"src":"4688:31:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":40349,"nodeType":"UserDefinedTypeName","pathNode":{"id":40348,"name":"BottomUpMsgBatch","nameLocations":["4688:16:57"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"4688:16:57"},"referencedDeclaration":49945,"src":"4688:16:57","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"4687:33:57"},"returnParameters":{"id":40352,"nodeType":"ParameterList","parameters":[],"src":"4729:0:57"},"scope":40354,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IGateway","contractDependencies":[],"contractKind":"interface","documentation":{"id":40253,"nodeType":"StructuredDocumentation","src":"278:56:57","text":"@title Gateway interface\n @author LimeChain team"},"fullyImplemented":false,"linearizedBaseContracts":[40354],"name":"IGateway","nameLocation":"344:8:57","scope":40355,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":57} \ No newline at end of file diff --git a/.out/IPCErrors.sol/IPCErrors.json b/.out/IPCErrors.sol/IPCErrors.json index 02c23c131..4e2996ef1 100644 --- a/.out/IPCErrors.sol/IPCErrors.json +++ b/.out/IPCErrors.sol/IPCErrors.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/errors/IPCErrors.sol","id":37101,"exportedSymbols":{"AddressShouldBeValidator":[36936],"AlreadyRegisteredSubnet":[36938],"BatchAlreadyExists":[36948],"BatchNotCreated":[36956],"BatchWithNoMessages":[36976],"CannotConfirmFutureChanges":[36940],"CannotFindSubnet":[37088],"CannotReleaseZero":[36942],"CannotSendCrossMsgToItself":[36944],"CheckpointAlreadyExists":[36946],"CheckpointNotCreated":[36954],"CollateralIsZero":[36958],"DuplicatedGenesisValidator":[37098],"EmptyAddress":[36960],"FacetCannotBeZero":[37084],"FailedAddIncompleteQuorum":[36962],"FailedAddSignatory":[36964],"FailedRemoveIncompleteQuorum":[36966],"GatewayCannotBeZero":[36968],"InvalidActorAddress":[36970],"InvalidBatchEpoch":[36974],"InvalidBatchSource":[36980],"InvalidCheckpointEpoch":[36972],"InvalidCheckpointSource":[36978],"InvalidCollateral":[36984],"InvalidConfigurationNumber":[36986],"InvalidCrossMsgDstSubnet":[36988],"InvalidCrossMsgFromSubnet":[36990],"InvalidCrossMsgNonce":[36992],"InvalidCrossMsgValue":[36994],"InvalidFederationPayload":[37096],"InvalidMajorityPercentage":[36996],"InvalidPowerScale":[36998],"InvalidPublicKeyLength":[37010],"InvalidRetentionHeight":[37000],"InvalidSignature":[37002],"InvalidSignatureErr":[37006],"InvalidSignatureLength":[37008],"InvalidSubmissionPeriod":[37012],"InvalidSubnet":[37014],"InvalidSubnetActor":[36982],"MaxMsgsPerBatchExceeded":[36950],"MethodNotAllowed":[37094],"NoCollateralToWithdraw":[37016],"NoRewardToWithdraw":[37018],"NoValidatorsInSubnet":[37020],"NotAllValidatorsHaveLeft":[37022],"NotAuthorized":[37026],"NotEmptySubnetCircSupply":[37028],"NotEnoughBalance":[37030],"NotEnoughBalanceForRewards":[37032],"NotEnoughCollateral":[37034],"NotEnoughFee":[37036],"NotEnoughFunds":[37038],"NotEnoughFundsToRelease":[37040],"NotEnoughGenesisValidators":[37100],"NotEnoughSubnetCircSupply":[37042],"NotEnoughValidatorsInSubnet":[37044],"NotGateway":[37046],"NotOwnerOfPublicKey":[37048],"NotRegisteredSubnet":[37050],"NotStakedBefore":[37052],"NotSystemActor":[37054],"NotValidator":[37058],"OldConfigurationNumber":[37060],"PQDoesNotContainAddress":[37062],"PQEmpty":[37064],"ParentFinalityAlreadyCommitted":[37066],"PostboxNotExist":[37068],"QuorumAlreadyProcessed":[36952],"SignatureReplay":[37070],"SubnetAlreadyBootstrapped":[37082],"SubnetAlreadyKilled":[37072],"SubnetNotActive":[37074],"SubnetNotFound":[37076],"UnknownSubnet":[37090],"WithdrawExceedingCollateral":[37078],"WrongGateway":[37086],"ZeroMembershipWeight":[37080]},"nodeType":"SourceUnit","src":"46:2403:43","nodes":[{"id":36934,"nodeType":"PragmaDirective","src":"46:23:43","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36936,"nodeType":"ErrorDefinition","src":"71:33:43","nodes":[],"errorSelector":"2a55ca53","name":"AddressShouldBeValidator","nameLocation":"77:24:43","parameters":{"id":36935,"nodeType":"ParameterList","parameters":[],"src":"101:2:43"}},{"id":36938,"nodeType":"ErrorDefinition","src":"105:32:43","nodes":[],"errorSelector":"36a719be","name":"AlreadyRegisteredSubnet","nameLocation":"111:23:43","parameters":{"id":36937,"nodeType":"ParameterList","parameters":[],"src":"134:2:43"}},{"id":36940,"nodeType":"ErrorDefinition","src":"138:35:43","nodes":[],"errorSelector":"0815540a","name":"CannotConfirmFutureChanges","nameLocation":"144:26:43","parameters":{"id":36939,"nodeType":"ParameterList","parameters":[],"src":"170:2:43"}},{"id":36942,"nodeType":"ErrorDefinition","src":"174:26:43","nodes":[],"errorSelector":"c79cad7b","name":"CannotReleaseZero","nameLocation":"180:17:43","parameters":{"id":36941,"nodeType":"ParameterList","parameters":[],"src":"197:2:43"}},{"id":36944,"nodeType":"ErrorDefinition","src":"201:35:43","nodes":[],"errorSelector":"bcccd7fc","name":"CannotSendCrossMsgToItself","nameLocation":"207:26:43","parameters":{"id":36943,"nodeType":"ParameterList","parameters":[],"src":"233:2:43"}},{"id":36946,"nodeType":"ErrorDefinition","src":"237:32:43","nodes":[],"errorSelector":"b8a1eae1","name":"CheckpointAlreadyExists","nameLocation":"243:23:43","parameters":{"id":36945,"nodeType":"ParameterList","parameters":[],"src":"266:2:43"}},{"id":36948,"nodeType":"ErrorDefinition","src":"270:27:43","nodes":[],"errorSelector":"d15f973b","name":"BatchAlreadyExists","nameLocation":"276:18:43","parameters":{"id":36947,"nodeType":"ParameterList","parameters":[],"src":"294:2:43"}},{"id":36950,"nodeType":"ErrorDefinition","src":"298:32:43","nodes":[],"errorSelector":"351c7007","name":"MaxMsgsPerBatchExceeded","nameLocation":"304:23:43","parameters":{"id":36949,"nodeType":"ParameterList","parameters":[],"src":"327:2:43"}},{"id":36952,"nodeType":"ErrorDefinition","src":"331:31:43","nodes":[],"errorSelector":"042384dc","name":"QuorumAlreadyProcessed","nameLocation":"337:22:43","parameters":{"id":36951,"nodeType":"ParameterList","parameters":[],"src":"359:2:43"}},{"id":36954,"nodeType":"ErrorDefinition","src":"363:29:43","nodes":[],"errorSelector":"58cdd2e7","name":"CheckpointNotCreated","nameLocation":"369:20:43","parameters":{"id":36953,"nodeType":"ParameterList","parameters":[],"src":"389:2:43"}},{"id":36956,"nodeType":"ErrorDefinition","src":"393:24:43","nodes":[],"errorSelector":"a88f96f1","name":"BatchNotCreated","nameLocation":"399:15:43","parameters":{"id":36955,"nodeType":"ParameterList","parameters":[],"src":"414:2:43"}},{"id":36958,"nodeType":"ErrorDefinition","src":"418:25:43","nodes":[],"errorSelector":"b4f18b02","name":"CollateralIsZero","nameLocation":"424:16:43","parameters":{"id":36957,"nodeType":"ParameterList","parameters":[],"src":"440:2:43"}},{"id":36960,"nodeType":"ErrorDefinition","src":"444:21:43","nodes":[],"errorSelector":"7138356f","name":"EmptyAddress","nameLocation":"450:12:43","parameters":{"id":36959,"nodeType":"ParameterList","parameters":[],"src":"462:2:43"}},{"id":36962,"nodeType":"ErrorDefinition","src":"466:34:43","nodes":[],"errorSelector":"197a39a6","name":"FailedAddIncompleteQuorum","nameLocation":"472:25:43","parameters":{"id":36961,"nodeType":"ParameterList","parameters":[],"src":"497:2:43"}},{"id":36964,"nodeType":"ErrorDefinition","src":"501:27:43","nodes":[],"errorSelector":"3363140f","name":"FailedAddSignatory","nameLocation":"507:18:43","parameters":{"id":36963,"nodeType":"ParameterList","parameters":[],"src":"525:2:43"}},{"id":36966,"nodeType":"ErrorDefinition","src":"529:37:43","nodes":[],"errorSelector":"894f690e","name":"FailedRemoveIncompleteQuorum","nameLocation":"535:28:43","parameters":{"id":36965,"nodeType":"ParameterList","parameters":[],"src":"563:2:43"}},{"id":36968,"nodeType":"ErrorDefinition","src":"567:28:43","nodes":[],"errorSelector":"8b3ddc33","name":"GatewayCannotBeZero","nameLocation":"573:19:43","parameters":{"id":36967,"nodeType":"ParameterList","parameters":[],"src":"592:2:43"}},{"id":36970,"nodeType":"ErrorDefinition","src":"596:28:43","nodes":[],"errorSelector":"70e45109","name":"InvalidActorAddress","nameLocation":"602:19:43","parameters":{"id":36969,"nodeType":"ParameterList","parameters":[],"src":"621:2:43"}},{"id":36972,"nodeType":"ErrorDefinition","src":"625:31:43","nodes":[],"errorSelector":"fae4eadb","name":"InvalidCheckpointEpoch","nameLocation":"631:22:43","parameters":{"id":36971,"nodeType":"ParameterList","parameters":[],"src":"653:2:43"}},{"id":36974,"nodeType":"ErrorDefinition","src":"657:26:43","nodes":[],"errorSelector":"80314bdc","name":"InvalidBatchEpoch","nameLocation":"663:17:43","parameters":{"id":36973,"nodeType":"ParameterList","parameters":[],"src":"680:2:43"}},{"id":36976,"nodeType":"ErrorDefinition","src":"684:28:43","nodes":[],"errorSelector":"38d2307f","name":"BatchWithNoMessages","nameLocation":"690:19:43","parameters":{"id":36975,"nodeType":"ParameterList","parameters":[],"src":"709:2:43"}},{"id":36978,"nodeType":"ErrorDefinition","src":"713:32:43","nodes":[],"errorSelector":"fe72264e","name":"InvalidCheckpointSource","nameLocation":"719:23:43","parameters":{"id":36977,"nodeType":"ParameterList","parameters":[],"src":"742:2:43"}},{"id":36980,"nodeType":"ErrorDefinition","src":"746:27:43","nodes":[],"errorSelector":"ff949b40","name":"InvalidBatchSource","nameLocation":"752:18:43","parameters":{"id":36979,"nodeType":"ParameterList","parameters":[],"src":"770:2:43"}},{"id":36982,"nodeType":"ErrorDefinition","src":"774:27:43","nodes":[],"errorSelector":"6d5d4caa","name":"InvalidSubnetActor","nameLocation":"780:18:43","parameters":{"id":36981,"nodeType":"ParameterList","parameters":[],"src":"798:2:43"}},{"id":36984,"nodeType":"ErrorDefinition","src":"802:26:43","nodes":[],"errorSelector":"d1ef4cea","name":"InvalidCollateral","nameLocation":"808:17:43","parameters":{"id":36983,"nodeType":"ParameterList","parameters":[],"src":"825:2:43"}},{"id":36986,"nodeType":"ErrorDefinition","src":"829:35:43","nodes":[],"errorSelector":"6ae94ca4","name":"InvalidConfigurationNumber","nameLocation":"835:26:43","parameters":{"id":36985,"nodeType":"ParameterList","parameters":[],"src":"861:2:43"}},{"id":36988,"nodeType":"ErrorDefinition","src":"865:33:43","nodes":[],"errorSelector":"c5f563eb","name":"InvalidCrossMsgDstSubnet","nameLocation":"871:24:43","parameters":{"id":36987,"nodeType":"ParameterList","parameters":[],"src":"895:2:43"}},{"id":36990,"nodeType":"ErrorDefinition","src":"899:34:43","nodes":[],"errorSelector":"a1108f56","name":"InvalidCrossMsgFromSubnet","nameLocation":"905:25:43","parameters":{"id":36989,"nodeType":"ParameterList","parameters":[],"src":"930:2:43"}},{"id":36992,"nodeType":"ErrorDefinition","src":"934:29:43","nodes":[],"errorSelector":"a57cadff","name":"InvalidCrossMsgNonce","nameLocation":"940:20:43","parameters":{"id":36991,"nodeType":"ParameterList","parameters":[],"src":"960:2:43"}},{"id":36994,"nodeType":"ErrorDefinition","src":"964:29:43","nodes":[],"errorSelector":"c1d89cd6","name":"InvalidCrossMsgValue","nameLocation":"970:20:43","parameters":{"id":36993,"nodeType":"ParameterList","parameters":[],"src":"990:2:43"}},{"id":36996,"nodeType":"ErrorDefinition","src":"994:34:43","nodes":[],"errorSelector":"75c3b427","name":"InvalidMajorityPercentage","nameLocation":"1000:25:43","parameters":{"id":36995,"nodeType":"ParameterList","parameters":[],"src":"1025:2:43"}},{"id":36998,"nodeType":"ErrorDefinition","src":"1029:26:43","nodes":[],"errorSelector":"f162efca","name":"InvalidPowerScale","nameLocation":"1035:17:43","parameters":{"id":36997,"nodeType":"ParameterList","parameters":[],"src":"1052:2:43"}},{"id":37000,"nodeType":"ErrorDefinition","src":"1056:31:43","nodes":[],"errorSelector":"6819a3a9","name":"InvalidRetentionHeight","nameLocation":"1062:22:43","parameters":{"id":36999,"nodeType":"ParameterList","parameters":[],"src":"1084:2:43"}},{"id":37002,"nodeType":"ErrorDefinition","src":"1088:25:43","nodes":[],"errorSelector":"8baa579f","name":"InvalidSignature","nameLocation":"1094:16:43","parameters":{"id":37001,"nodeType":"ParameterList","parameters":[],"src":"1110:2:43"}},{"id":37006,"nodeType":"ErrorDefinition","src":"1114:33:43","nodes":[],"errorSelector":"282ef1c1","name":"InvalidSignatureErr","nameLocation":"1120:19:43","parameters":{"id":37005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37006,"src":"1140:5:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":37003,"name":"uint8","nodeType":"ElementaryTypeName","src":"1140:5:43","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1139:7:43"}},{"id":37008,"nodeType":"ErrorDefinition","src":"1148:31:43","nodes":[],"errorSelector":"4be6321b","name":"InvalidSignatureLength","nameLocation":"1154:22:43","parameters":{"id":37007,"nodeType":"ParameterList","parameters":[],"src":"1176:2:43"}},{"id":37010,"nodeType":"ErrorDefinition","src":"1180:31:43","nodes":[],"errorSelector":"637297a4","name":"InvalidPublicKeyLength","nameLocation":"1186:22:43","parameters":{"id":37009,"nodeType":"ParameterList","parameters":[],"src":"1208:2:43"}},{"id":37012,"nodeType":"ErrorDefinition","src":"1212:32:43","nodes":[],"errorSelector":"312f8e05","name":"InvalidSubmissionPeriod","nameLocation":"1218:23:43","parameters":{"id":37011,"nodeType":"ParameterList","parameters":[],"src":"1241:2:43"}},{"id":37014,"nodeType":"ErrorDefinition","src":"1245:22:43","nodes":[],"errorSelector":"076bb706","name":"InvalidSubnet","nameLocation":"1251:13:43","parameters":{"id":37013,"nodeType":"ParameterList","parameters":[],"src":"1264:2:43"}},{"id":37016,"nodeType":"ErrorDefinition","src":"1268:31:43","nodes":[],"errorSelector":"64b0557f","name":"NoCollateralToWithdraw","nameLocation":"1274:22:43","parameters":{"id":37015,"nodeType":"ParameterList","parameters":[],"src":"1296:2:43"}},{"id":37018,"nodeType":"ErrorDefinition","src":"1300:27:43","nodes":[],"errorSelector":"ce601f22","name":"NoRewardToWithdraw","nameLocation":"1306:18:43","parameters":{"id":37017,"nodeType":"ParameterList","parameters":[],"src":"1324:2:43"}},{"id":37020,"nodeType":"ErrorDefinition","src":"1328:29:43","nodes":[],"errorSelector":"efa9c8f1","name":"NoValidatorsInSubnet","nameLocation":"1334:20:43","parameters":{"id":37019,"nodeType":"ParameterList","parameters":[],"src":"1354:2:43"}},{"id":37022,"nodeType":"ErrorDefinition","src":"1358:33:43","nodes":[],"errorSelector":"d6c44aa2","name":"NotAllValidatorsHaveLeft","nameLocation":"1364:24:43","parameters":{"id":37021,"nodeType":"ParameterList","parameters":[],"src":"1388:2:43"}},{"id":37026,"nodeType":"ErrorDefinition","src":"1392:29:43","nodes":[],"errorSelector":"4a0bfec1","name":"NotAuthorized","nameLocation":"1398:13:43","parameters":{"id":37025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37026,"src":"1412:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37023,"name":"address","nodeType":"ElementaryTypeName","src":"1412:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1411:9:43"}},{"id":37028,"nodeType":"ErrorDefinition","src":"1422:33:43","nodes":[],"errorSelector":"f8cf8e02","name":"NotEmptySubnetCircSupply","nameLocation":"1428:24:43","parameters":{"id":37027,"nodeType":"ParameterList","parameters":[],"src":"1452:2:43"}},{"id":37030,"nodeType":"ErrorDefinition","src":"1456:25:43","nodes":[],"errorSelector":"ad3a8b9e","name":"NotEnoughBalance","nameLocation":"1462:16:43","parameters":{"id":37029,"nodeType":"ParameterList","parameters":[],"src":"1478:2:43"}},{"id":37032,"nodeType":"ErrorDefinition","src":"1482:35:43","nodes":[],"errorSelector":"60e9957e","name":"NotEnoughBalanceForRewards","nameLocation":"1488:26:43","parameters":{"id":37031,"nodeType":"ParameterList","parameters":[],"src":"1514:2:43"}},{"id":37034,"nodeType":"ErrorDefinition","src":"1518:28:43","nodes":[],"errorSelector":"34477cc0","name":"NotEnoughCollateral","nameLocation":"1524:19:43","parameters":{"id":37033,"nodeType":"ParameterList","parameters":[],"src":"1543:2:43"}},{"id":37036,"nodeType":"ErrorDefinition","src":"1547:21:43","nodes":[],"errorSelector":"688e55ae","name":"NotEnoughFee","nameLocation":"1553:12:43","parameters":{"id":37035,"nodeType":"ParameterList","parameters":[],"src":"1565:2:43"}},{"id":37038,"nodeType":"ErrorDefinition","src":"1569:23:43","nodes":[],"errorSelector":"81b5ad68","name":"NotEnoughFunds","nameLocation":"1575:14:43","parameters":{"id":37037,"nodeType":"ParameterList","parameters":[],"src":"1589:2:43"}},{"id":37040,"nodeType":"ErrorDefinition","src":"1593:32:43","nodes":[],"errorSelector":"79b33e79","name":"NotEnoughFundsToRelease","nameLocation":"1599:23:43","parameters":{"id":37039,"nodeType":"ParameterList","parameters":[],"src":"1622:2:43"}},{"id":37042,"nodeType":"ErrorDefinition","src":"1626:34:43","nodes":[],"errorSelector":"74db2854","name":"NotEnoughSubnetCircSupply","nameLocation":"1632:25:43","parameters":{"id":37041,"nodeType":"ParameterList","parameters":[],"src":"1657:2:43"}},{"id":37044,"nodeType":"ErrorDefinition","src":"1661:36:43","nodes":[],"errorSelector":"f8cf4679","name":"NotEnoughValidatorsInSubnet","nameLocation":"1667:27:43","parameters":{"id":37043,"nodeType":"ParameterList","parameters":[],"src":"1694:2:43"}},{"id":37046,"nodeType":"ErrorDefinition","src":"1698:19:43","nodes":[],"errorSelector":"e7e601db","name":"NotGateway","nameLocation":"1704:10:43","parameters":{"id":37045,"nodeType":"ParameterList","parameters":[],"src":"1714:2:43"}},{"id":37048,"nodeType":"ErrorDefinition","src":"1718:28:43","nodes":[],"errorSelector":"97d24a3a","name":"NotOwnerOfPublicKey","nameLocation":"1724:19:43","parameters":{"id":37047,"nodeType":"ParameterList","parameters":[],"src":"1743:2:43"}},{"id":37050,"nodeType":"ErrorDefinition","src":"1747:28:43","nodes":[],"errorSelector":"e991abd0","name":"NotRegisteredSubnet","nameLocation":"1753:19:43","parameters":{"id":37049,"nodeType":"ParameterList","parameters":[],"src":"1772:2:43"}},{"id":37052,"nodeType":"ErrorDefinition","src":"1776:24:43","nodes":[],"errorSelector":"528fc165","name":"NotStakedBefore","nameLocation":"1782:15:43","parameters":{"id":37051,"nodeType":"ParameterList","parameters":[],"src":"1797:2:43"}},{"id":37054,"nodeType":"ErrorDefinition","src":"1801:23:43","nodes":[],"errorSelector":"f0d97f3b","name":"NotSystemActor","nameLocation":"1807:14:43","parameters":{"id":37053,"nodeType":"ParameterList","parameters":[],"src":"1821:2:43"}},{"id":37058,"nodeType":"ErrorDefinition","src":"1825:28:43","nodes":[],"errorSelector":"ed3db8ac","name":"NotValidator","nameLocation":"1831:12:43","parameters":{"id":37057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37058,"src":"1844:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37055,"name":"address","nodeType":"ElementaryTypeName","src":"1844:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1843:9:43"}},{"id":37060,"nodeType":"ErrorDefinition","src":"1854:31:43","nodes":[],"errorSelector":"6e8d7c4a","name":"OldConfigurationNumber","nameLocation":"1860:22:43","parameters":{"id":37059,"nodeType":"ParameterList","parameters":[],"src":"1882:2:43"}},{"id":37062,"nodeType":"ErrorDefinition","src":"1886:32:43","nodes":[],"errorSelector":"f2755e37","name":"PQDoesNotContainAddress","nameLocation":"1892:23:43","parameters":{"id":37061,"nodeType":"ParameterList","parameters":[],"src":"1915:2:43"}},{"id":37064,"nodeType":"ErrorDefinition","src":"1919:16:43","nodes":[],"errorSelector":"40d9b011","name":"PQEmpty","nameLocation":"1925:7:43","parameters":{"id":37063,"nodeType":"ParameterList","parameters":[],"src":"1932:2:43"}},{"id":37066,"nodeType":"ErrorDefinition","src":"1936:39:43","nodes":[],"errorSelector":"2a75b082","name":"ParentFinalityAlreadyCommitted","nameLocation":"1942:30:43","parameters":{"id":37065,"nodeType":"ParameterList","parameters":[],"src":"1972:2:43"}},{"id":37068,"nodeType":"ErrorDefinition","src":"1976:24:43","nodes":[],"errorSelector":"24498941","name":"PostboxNotExist","nameLocation":"1982:15:43","parameters":{"id":37067,"nodeType":"ParameterList","parameters":[],"src":"1997:2:43"}},{"id":37070,"nodeType":"ErrorDefinition","src":"2001:24:43","nodes":[],"errorSelector":"b47fa1b2","name":"SignatureReplay","nameLocation":"2007:15:43","parameters":{"id":37069,"nodeType":"ParameterList","parameters":[],"src":"2022:2:43"}},{"id":37072,"nodeType":"ErrorDefinition","src":"2026:28:43","nodes":[],"errorSelector":"49191df6","name":"SubnetAlreadyKilled","nameLocation":"2032:19:43","parameters":{"id":37071,"nodeType":"ParameterList","parameters":[],"src":"2051:2:43"}},{"id":37074,"nodeType":"ErrorDefinition","src":"2055:24:43","nodes":[],"errorSelector":"c18316bf","name":"SubnetNotActive","nameLocation":"2061:15:43","parameters":{"id":37073,"nodeType":"ParameterList","parameters":[],"src":"2076:2:43"}},{"id":37076,"nodeType":"ErrorDefinition","src":"2080:23:43","nodes":[],"errorSelector":"00476ad8","name":"SubnetNotFound","nameLocation":"2086:14:43","parameters":{"id":37075,"nodeType":"ParameterList","parameters":[],"src":"2100:2:43"}},{"id":37078,"nodeType":"ErrorDefinition","src":"2104:36:43","nodes":[],"errorSelector":"ac693603","name":"WithdrawExceedingCollateral","nameLocation":"2110:27:43","parameters":{"id":37077,"nodeType":"ParameterList","parameters":[],"src":"2137:2:43"}},{"id":37080,"nodeType":"ErrorDefinition","src":"2141:29:43","nodes":[],"errorSelector":"4e8ac6e5","name":"ZeroMembershipWeight","nameLocation":"2147:20:43","parameters":{"id":37079,"nodeType":"ParameterList","parameters":[],"src":"2167:2:43"}},{"id":37082,"nodeType":"ErrorDefinition","src":"2171:34:43","nodes":[],"errorSelector":"3673e5e6","name":"SubnetAlreadyBootstrapped","nameLocation":"2177:25:43","parameters":{"id":37081,"nodeType":"ParameterList","parameters":[],"src":"2202:2:43"}},{"id":37084,"nodeType":"ErrorDefinition","src":"2206:26:43","nodes":[],"errorSelector":"f4086a20","name":"FacetCannotBeZero","nameLocation":"2212:17:43","parameters":{"id":37083,"nodeType":"ParameterList","parameters":[],"src":"2229:2:43"}},{"id":37086,"nodeType":"ErrorDefinition","src":"2233:21:43","nodes":[],"errorSelector":"3bed0499","name":"WrongGateway","nameLocation":"2239:12:43","parameters":{"id":37085,"nodeType":"ParameterList","parameters":[],"src":"2251:2:43"}},{"id":37088,"nodeType":"ErrorDefinition","src":"2255:25:43","nodes":[],"errorSelector":"4edce94e","name":"CannotFindSubnet","nameLocation":"2261:16:43","parameters":{"id":37087,"nodeType":"ParameterList","parameters":[],"src":"2277:2:43"}},{"id":37090,"nodeType":"ErrorDefinition","src":"2281:22:43","nodes":[],"errorSelector":"63b0e022","name":"UnknownSubnet","nameLocation":"2287:13:43","parameters":{"id":37089,"nodeType":"ParameterList","parameters":[],"src":"2300:2:43"}},{"id":37094,"nodeType":"ErrorDefinition","src":"2304:38:43","nodes":[],"errorSelector":"015538b1","name":"MethodNotAllowed","nameLocation":"2310:16:43","parameters":{"id":37093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37092,"mutability":"mutable","name":"reason","nameLocation":"2334:6:43","nodeType":"VariableDeclaration","scope":37094,"src":"2327:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":37091,"name":"string","nodeType":"ElementaryTypeName","src":"2327:6:43","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2326:15:43"}},{"id":37096,"nodeType":"ErrorDefinition","src":"2343:33:43","nodes":[],"errorSelector":"7e659359","name":"InvalidFederationPayload","nameLocation":"2349:24:43","parameters":{"id":37095,"nodeType":"ParameterList","parameters":[],"src":"2373:2:43"}},{"id":37098,"nodeType":"ErrorDefinition","src":"2377:35:43","nodes":[],"errorSelector":"472b3530","name":"DuplicatedGenesisValidator","nameLocation":"2383:26:43","parameters":{"id":37097,"nodeType":"ParameterList","parameters":[],"src":"2409:2:43"}},{"id":37100,"nodeType":"ErrorDefinition","src":"2413:35:43","nodes":[],"errorSelector":"62901620","name":"NotEnoughGenesisValidators","nameLocation":"2419:26:43","parameters":{"id":37099,"nodeType":"ParameterList","parameters":[],"src":"2445:2:43"}}],"license":"MIT OR Apache-2.0"},"id":43} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/errors/IPCErrors.sol","id":37542,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CollateralIsZero":[37390],"DuplicatedGenesisValidator":[37530],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"GatewayCannotBeZero":[37400],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinalityAlreadyCommitted":[37498],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"SignatureReplay":[37502],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"UnknownSubnet":[37522],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"ZeroMembershipWeight":[37512]},"nodeType":"SourceUnit","src":"46:2715:45","nodes":[{"id":37366,"nodeType":"PragmaDirective","src":"46:23:45","nodes":[],"literals":["solidity","0.8",".19"]},{"id":37368,"nodeType":"ErrorDefinition","src":"71:33:45","nodes":[],"errorSelector":"2a55ca53","name":"AddressShouldBeValidator","nameLocation":"77:24:45","parameters":{"id":37367,"nodeType":"ParameterList","parameters":[],"src":"101:2:45"}},{"id":37370,"nodeType":"ErrorDefinition","src":"105:32:45","nodes":[],"errorSelector":"36a719be","name":"AlreadyRegisteredSubnet","nameLocation":"111:23:45","parameters":{"id":37369,"nodeType":"ParameterList","parameters":[],"src":"134:2:45"}},{"id":37372,"nodeType":"ErrorDefinition","src":"138:35:45","nodes":[],"errorSelector":"0815540a","name":"CannotConfirmFutureChanges","nameLocation":"144:26:45","parameters":{"id":37371,"nodeType":"ParameterList","parameters":[],"src":"170:2:45"}},{"id":37374,"nodeType":"ErrorDefinition","src":"174:26:45","nodes":[],"errorSelector":"c79cad7b","name":"CannotReleaseZero","nameLocation":"180:17:45","parameters":{"id":37373,"nodeType":"ParameterList","parameters":[],"src":"197:2:45"}},{"id":37376,"nodeType":"ErrorDefinition","src":"201:35:45","nodes":[],"errorSelector":"bcccd7fc","name":"CannotSendCrossMsgToItself","nameLocation":"207:26:45","parameters":{"id":37375,"nodeType":"ParameterList","parameters":[],"src":"233:2:45"}},{"id":37378,"nodeType":"ErrorDefinition","src":"237:32:45","nodes":[],"errorSelector":"b8a1eae1","name":"CheckpointAlreadyExists","nameLocation":"243:23:45","parameters":{"id":37377,"nodeType":"ParameterList","parameters":[],"src":"266:2:45"}},{"id":37380,"nodeType":"ErrorDefinition","src":"270:27:45","nodes":[],"errorSelector":"d15f973b","name":"BatchAlreadyExists","nameLocation":"276:18:45","parameters":{"id":37379,"nodeType":"ParameterList","parameters":[],"src":"294:2:45"}},{"id":37382,"nodeType":"ErrorDefinition","src":"298:32:45","nodes":[],"errorSelector":"351c7007","name":"MaxMsgsPerBatchExceeded","nameLocation":"304:23:45","parameters":{"id":37381,"nodeType":"ParameterList","parameters":[],"src":"327:2:45"}},{"id":37384,"nodeType":"ErrorDefinition","src":"331:31:45","nodes":[],"errorSelector":"042384dc","name":"QuorumAlreadyProcessed","nameLocation":"337:22:45","parameters":{"id":37383,"nodeType":"ParameterList","parameters":[],"src":"359:2:45"}},{"id":37386,"nodeType":"ErrorDefinition","src":"363:29:45","nodes":[],"errorSelector":"58cdd2e7","name":"CheckpointNotCreated","nameLocation":"369:20:45","parameters":{"id":37385,"nodeType":"ParameterList","parameters":[],"src":"389:2:45"}},{"id":37388,"nodeType":"ErrorDefinition","src":"393:24:45","nodes":[],"errorSelector":"a88f96f1","name":"BatchNotCreated","nameLocation":"399:15:45","parameters":{"id":37387,"nodeType":"ParameterList","parameters":[],"src":"414:2:45"}},{"id":37390,"nodeType":"ErrorDefinition","src":"418:25:45","nodes":[],"errorSelector":"b4f18b02","name":"CollateralIsZero","nameLocation":"424:16:45","parameters":{"id":37389,"nodeType":"ParameterList","parameters":[],"src":"440:2:45"}},{"id":37392,"nodeType":"ErrorDefinition","src":"444:21:45","nodes":[],"errorSelector":"7138356f","name":"EmptyAddress","nameLocation":"450:12:45","parameters":{"id":37391,"nodeType":"ParameterList","parameters":[],"src":"462:2:45"}},{"id":37394,"nodeType":"ErrorDefinition","src":"466:34:45","nodes":[],"errorSelector":"197a39a6","name":"FailedAddIncompleteQuorum","nameLocation":"472:25:45","parameters":{"id":37393,"nodeType":"ParameterList","parameters":[],"src":"497:2:45"}},{"id":37396,"nodeType":"ErrorDefinition","src":"501:27:45","nodes":[],"errorSelector":"3363140f","name":"FailedAddSignatory","nameLocation":"507:18:45","parameters":{"id":37395,"nodeType":"ParameterList","parameters":[],"src":"525:2:45"}},{"id":37398,"nodeType":"ErrorDefinition","src":"529:37:45","nodes":[],"errorSelector":"894f690e","name":"FailedRemoveIncompleteQuorum","nameLocation":"535:28:45","parameters":{"id":37397,"nodeType":"ParameterList","parameters":[],"src":"563:2:45"}},{"id":37400,"nodeType":"ErrorDefinition","src":"567:28:45","nodes":[],"errorSelector":"8b3ddc33","name":"GatewayCannotBeZero","nameLocation":"573:19:45","parameters":{"id":37399,"nodeType":"ParameterList","parameters":[],"src":"592:2:45"}},{"id":37402,"nodeType":"ErrorDefinition","src":"596:28:45","nodes":[],"errorSelector":"70e45109","name":"InvalidActorAddress","nameLocation":"602:19:45","parameters":{"id":37401,"nodeType":"ParameterList","parameters":[],"src":"621:2:45"}},{"id":37404,"nodeType":"ErrorDefinition","src":"625:31:45","nodes":[],"errorSelector":"fae4eadb","name":"InvalidCheckpointEpoch","nameLocation":"631:22:45","parameters":{"id":37403,"nodeType":"ParameterList","parameters":[],"src":"653:2:45"}},{"id":37406,"nodeType":"ErrorDefinition","src":"657:26:45","nodes":[],"errorSelector":"80314bdc","name":"InvalidBatchEpoch","nameLocation":"663:17:45","parameters":{"id":37405,"nodeType":"ParameterList","parameters":[],"src":"680:2:45"}},{"id":37408,"nodeType":"ErrorDefinition","src":"684:28:45","nodes":[],"errorSelector":"38d2307f","name":"BatchWithNoMessages","nameLocation":"690:19:45","parameters":{"id":37407,"nodeType":"ParameterList","parameters":[],"src":"709:2:45"}},{"id":37410,"nodeType":"ErrorDefinition","src":"713:32:45","nodes":[],"errorSelector":"fe72264e","name":"InvalidCheckpointSource","nameLocation":"719:23:45","parameters":{"id":37409,"nodeType":"ParameterList","parameters":[],"src":"742:2:45"}},{"id":37412,"nodeType":"ErrorDefinition","src":"746:27:45","nodes":[],"errorSelector":"ff949b40","name":"InvalidBatchSource","nameLocation":"752:18:45","parameters":{"id":37411,"nodeType":"ParameterList","parameters":[],"src":"770:2:45"}},{"id":37414,"nodeType":"ErrorDefinition","src":"774:27:45","nodes":[],"errorSelector":"6d5d4caa","name":"InvalidSubnetActor","nameLocation":"780:18:45","parameters":{"id":37413,"nodeType":"ParameterList","parameters":[],"src":"798:2:45"}},{"id":37416,"nodeType":"ErrorDefinition","src":"802:26:45","nodes":[],"errorSelector":"d1ef4cea","name":"InvalidCollateral","nameLocation":"808:17:45","parameters":{"id":37415,"nodeType":"ParameterList","parameters":[],"src":"825:2:45"}},{"id":37418,"nodeType":"ErrorDefinition","src":"829:35:45","nodes":[],"errorSelector":"6ae94ca4","name":"InvalidConfigurationNumber","nameLocation":"835:26:45","parameters":{"id":37417,"nodeType":"ParameterList","parameters":[],"src":"861:2:45"}},{"id":37420,"nodeType":"ErrorDefinition","src":"865:33:45","nodes":[],"errorSelector":"c5f563eb","name":"InvalidCrossMsgDstSubnet","nameLocation":"871:24:45","parameters":{"id":37419,"nodeType":"ParameterList","parameters":[],"src":"895:2:45"}},{"id":37422,"nodeType":"ErrorDefinition","src":"899:34:45","nodes":[],"errorSelector":"a1108f56","name":"InvalidCrossMsgFromSubnet","nameLocation":"905:25:45","parameters":{"id":37421,"nodeType":"ParameterList","parameters":[],"src":"930:2:45"}},{"id":37424,"nodeType":"ErrorDefinition","src":"934:29:45","nodes":[],"errorSelector":"a57cadff","name":"InvalidCrossMsgNonce","nameLocation":"940:20:45","parameters":{"id":37423,"nodeType":"ParameterList","parameters":[],"src":"960:2:45"}},{"id":37426,"nodeType":"ErrorDefinition","src":"964:29:45","nodes":[],"errorSelector":"c1d89cd6","name":"InvalidCrossMsgValue","nameLocation":"970:20:45","parameters":{"id":37425,"nodeType":"ParameterList","parameters":[],"src":"990:2:45"}},{"id":37428,"nodeType":"ErrorDefinition","src":"994:34:45","nodes":[],"errorSelector":"75c3b427","name":"InvalidMajorityPercentage","nameLocation":"1000:25:45","parameters":{"id":37427,"nodeType":"ParameterList","parameters":[],"src":"1025:2:45"}},{"id":37430,"nodeType":"ErrorDefinition","src":"1029:26:45","nodes":[],"errorSelector":"f162efca","name":"InvalidPowerScale","nameLocation":"1035:17:45","parameters":{"id":37429,"nodeType":"ParameterList","parameters":[],"src":"1052:2:45"}},{"id":37432,"nodeType":"ErrorDefinition","src":"1056:31:45","nodes":[],"errorSelector":"6819a3a9","name":"InvalidRetentionHeight","nameLocation":"1062:22:45","parameters":{"id":37431,"nodeType":"ParameterList","parameters":[],"src":"1084:2:45"}},{"id":37434,"nodeType":"ErrorDefinition","src":"1088:25:45","nodes":[],"errorSelector":"8baa579f","name":"InvalidSignature","nameLocation":"1094:16:45","parameters":{"id":37433,"nodeType":"ParameterList","parameters":[],"src":"1110:2:45"}},{"id":37438,"nodeType":"ErrorDefinition","src":"1114:33:45","nodes":[],"errorSelector":"282ef1c1","name":"InvalidSignatureErr","nameLocation":"1120:19:45","parameters":{"id":37437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37436,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37438,"src":"1140:5:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":37435,"name":"uint8","nodeType":"ElementaryTypeName","src":"1140:5:45","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1139:7:45"}},{"id":37440,"nodeType":"ErrorDefinition","src":"1148:31:45","nodes":[],"errorSelector":"4be6321b","name":"InvalidSignatureLength","nameLocation":"1154:22:45","parameters":{"id":37439,"nodeType":"ParameterList","parameters":[],"src":"1176:2:45"}},{"id":37442,"nodeType":"ErrorDefinition","src":"1180:31:45","nodes":[],"errorSelector":"637297a4","name":"InvalidPublicKeyLength","nameLocation":"1186:22:45","parameters":{"id":37441,"nodeType":"ParameterList","parameters":[],"src":"1208:2:45"}},{"id":37444,"nodeType":"ErrorDefinition","src":"1212:32:45","nodes":[],"errorSelector":"312f8e05","name":"InvalidSubmissionPeriod","nameLocation":"1218:23:45","parameters":{"id":37443,"nodeType":"ParameterList","parameters":[],"src":"1241:2:45"}},{"id":37446,"nodeType":"ErrorDefinition","src":"1245:22:45","nodes":[],"errorSelector":"076bb706","name":"InvalidSubnet","nameLocation":"1251:13:45","parameters":{"id":37445,"nodeType":"ParameterList","parameters":[],"src":"1264:2:45"}},{"id":37448,"nodeType":"ErrorDefinition","src":"1268:31:45","nodes":[],"errorSelector":"64b0557f","name":"NoCollateralToWithdraw","nameLocation":"1274:22:45","parameters":{"id":37447,"nodeType":"ParameterList","parameters":[],"src":"1296:2:45"}},{"id":37450,"nodeType":"ErrorDefinition","src":"1300:27:45","nodes":[],"errorSelector":"ce601f22","name":"NoRewardToWithdraw","nameLocation":"1306:18:45","parameters":{"id":37449,"nodeType":"ParameterList","parameters":[],"src":"1324:2:45"}},{"id":37452,"nodeType":"ErrorDefinition","src":"1328:29:45","nodes":[],"errorSelector":"efa9c8f1","name":"NoValidatorsInSubnet","nameLocation":"1334:20:45","parameters":{"id":37451,"nodeType":"ParameterList","parameters":[],"src":"1354:2:45"}},{"id":37454,"nodeType":"ErrorDefinition","src":"1358:33:45","nodes":[],"errorSelector":"d6c44aa2","name":"NotAllValidatorsHaveLeft","nameLocation":"1364:24:45","parameters":{"id":37453,"nodeType":"ParameterList","parameters":[],"src":"1388:2:45"}},{"id":37458,"nodeType":"ErrorDefinition","src":"1392:29:45","nodes":[],"errorSelector":"4a0bfec1","name":"NotAuthorized","nameLocation":"1398:13:45","parameters":{"id":37457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37458,"src":"1412:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37455,"name":"address","nodeType":"ElementaryTypeName","src":"1412:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1411:9:45"}},{"id":37460,"nodeType":"ErrorDefinition","src":"1422:33:45","nodes":[],"errorSelector":"f8cf8e02","name":"NotEmptySubnetCircSupply","nameLocation":"1428:24:45","parameters":{"id":37459,"nodeType":"ParameterList","parameters":[],"src":"1452:2:45"}},{"id":37462,"nodeType":"ErrorDefinition","src":"1456:25:45","nodes":[],"errorSelector":"ad3a8b9e","name":"NotEnoughBalance","nameLocation":"1462:16:45","parameters":{"id":37461,"nodeType":"ParameterList","parameters":[],"src":"1478:2:45"}},{"id":37464,"nodeType":"ErrorDefinition","src":"1482:35:45","nodes":[],"errorSelector":"60e9957e","name":"NotEnoughBalanceForRewards","nameLocation":"1488:26:45","parameters":{"id":37463,"nodeType":"ParameterList","parameters":[],"src":"1514:2:45"}},{"id":37466,"nodeType":"ErrorDefinition","src":"1518:28:45","nodes":[],"errorSelector":"34477cc0","name":"NotEnoughCollateral","nameLocation":"1524:19:45","parameters":{"id":37465,"nodeType":"ParameterList","parameters":[],"src":"1543:2:45"}},{"id":37468,"nodeType":"ErrorDefinition","src":"1547:21:45","nodes":[],"errorSelector":"688e55ae","name":"NotEnoughFee","nameLocation":"1553:12:45","parameters":{"id":37467,"nodeType":"ParameterList","parameters":[],"src":"1565:2:45"}},{"id":37470,"nodeType":"ErrorDefinition","src":"1569:23:45","nodes":[],"errorSelector":"81b5ad68","name":"NotEnoughFunds","nameLocation":"1575:14:45","parameters":{"id":37469,"nodeType":"ParameterList","parameters":[],"src":"1589:2:45"}},{"id":37472,"nodeType":"ErrorDefinition","src":"1593:32:45","nodes":[],"errorSelector":"79b33e79","name":"NotEnoughFundsToRelease","nameLocation":"1599:23:45","parameters":{"id":37471,"nodeType":"ParameterList","parameters":[],"src":"1622:2:45"}},{"id":37474,"nodeType":"ErrorDefinition","src":"1626:34:45","nodes":[],"errorSelector":"74db2854","name":"NotEnoughSubnetCircSupply","nameLocation":"1632:25:45","parameters":{"id":37473,"nodeType":"ParameterList","parameters":[],"src":"1657:2:45"}},{"id":37476,"nodeType":"ErrorDefinition","src":"1661:36:45","nodes":[],"errorSelector":"f8cf4679","name":"NotEnoughValidatorsInSubnet","nameLocation":"1667:27:45","parameters":{"id":37475,"nodeType":"ParameterList","parameters":[],"src":"1694:2:45"}},{"id":37478,"nodeType":"ErrorDefinition","src":"1698:19:45","nodes":[],"errorSelector":"e7e601db","name":"NotGateway","nameLocation":"1704:10:45","parameters":{"id":37477,"nodeType":"ParameterList","parameters":[],"src":"1714:2:45"}},{"id":37480,"nodeType":"ErrorDefinition","src":"1718:28:45","nodes":[],"errorSelector":"97d24a3a","name":"NotOwnerOfPublicKey","nameLocation":"1724:19:45","parameters":{"id":37479,"nodeType":"ParameterList","parameters":[],"src":"1743:2:45"}},{"id":37482,"nodeType":"ErrorDefinition","src":"1747:28:45","nodes":[],"errorSelector":"e991abd0","name":"NotRegisteredSubnet","nameLocation":"1753:19:45","parameters":{"id":37481,"nodeType":"ParameterList","parameters":[],"src":"1772:2:45"}},{"id":37484,"nodeType":"ErrorDefinition","src":"1776:24:45","nodes":[],"errorSelector":"528fc165","name":"NotStakedBefore","nameLocation":"1782:15:45","parameters":{"id":37483,"nodeType":"ParameterList","parameters":[],"src":"1797:2:45"}},{"id":37486,"nodeType":"ErrorDefinition","src":"1801:23:45","nodes":[],"errorSelector":"f0d97f3b","name":"NotSystemActor","nameLocation":"1807:14:45","parameters":{"id":37485,"nodeType":"ParameterList","parameters":[],"src":"1821:2:45"}},{"id":37490,"nodeType":"ErrorDefinition","src":"1825:28:45","nodes":[],"errorSelector":"ed3db8ac","name":"NotValidator","nameLocation":"1831:12:45","parameters":{"id":37489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37490,"src":"1844:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37487,"name":"address","nodeType":"ElementaryTypeName","src":"1844:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1843:9:45"}},{"id":37492,"nodeType":"ErrorDefinition","src":"1854:31:45","nodes":[],"errorSelector":"6e8d7c4a","name":"OldConfigurationNumber","nameLocation":"1860:22:45","parameters":{"id":37491,"nodeType":"ParameterList","parameters":[],"src":"1882:2:45"}},{"id":37494,"nodeType":"ErrorDefinition","src":"1886:32:45","nodes":[],"errorSelector":"f2755e37","name":"PQDoesNotContainAddress","nameLocation":"1892:23:45","parameters":{"id":37493,"nodeType":"ParameterList","parameters":[],"src":"1915:2:45"}},{"id":37496,"nodeType":"ErrorDefinition","src":"1919:16:45","nodes":[],"errorSelector":"40d9b011","name":"PQEmpty","nameLocation":"1925:7:45","parameters":{"id":37495,"nodeType":"ParameterList","parameters":[],"src":"1932:2:45"}},{"id":37498,"nodeType":"ErrorDefinition","src":"1936:39:45","nodes":[],"errorSelector":"2a75b082","name":"ParentFinalityAlreadyCommitted","nameLocation":"1942:30:45","parameters":{"id":37497,"nodeType":"ParameterList","parameters":[],"src":"1972:2:45"}},{"id":37500,"nodeType":"ErrorDefinition","src":"1976:24:45","nodes":[],"errorSelector":"24498941","name":"PostboxNotExist","nameLocation":"1982:15:45","parameters":{"id":37499,"nodeType":"ParameterList","parameters":[],"src":"1997:2:45"}},{"id":37502,"nodeType":"ErrorDefinition","src":"2001:24:45","nodes":[],"errorSelector":"b47fa1b2","name":"SignatureReplay","nameLocation":"2007:15:45","parameters":{"id":37501,"nodeType":"ParameterList","parameters":[],"src":"2022:2:45"}},{"id":37504,"nodeType":"ErrorDefinition","src":"2026:28:45","nodes":[],"errorSelector":"49191df6","name":"SubnetAlreadyKilled","nameLocation":"2032:19:45","parameters":{"id":37503,"nodeType":"ParameterList","parameters":[],"src":"2051:2:45"}},{"id":37506,"nodeType":"ErrorDefinition","src":"2055:24:45","nodes":[],"errorSelector":"c18316bf","name":"SubnetNotActive","nameLocation":"2061:15:45","parameters":{"id":37505,"nodeType":"ParameterList","parameters":[],"src":"2076:2:45"}},{"id":37508,"nodeType":"ErrorDefinition","src":"2080:23:45","nodes":[],"errorSelector":"00476ad8","name":"SubnetNotFound","nameLocation":"2086:14:45","parameters":{"id":37507,"nodeType":"ParameterList","parameters":[],"src":"2100:2:45"}},{"id":37510,"nodeType":"ErrorDefinition","src":"2104:36:45","nodes":[],"errorSelector":"ac693603","name":"WithdrawExceedingCollateral","nameLocation":"2110:27:45","parameters":{"id":37509,"nodeType":"ParameterList","parameters":[],"src":"2137:2:45"}},{"id":37512,"nodeType":"ErrorDefinition","src":"2141:29:45","nodes":[],"errorSelector":"4e8ac6e5","name":"ZeroMembershipWeight","nameLocation":"2147:20:45","parameters":{"id":37511,"nodeType":"ParameterList","parameters":[],"src":"2167:2:45"}},{"id":37514,"nodeType":"ErrorDefinition","src":"2171:34:45","nodes":[],"errorSelector":"3673e5e6","name":"SubnetAlreadyBootstrapped","nameLocation":"2177:25:45","parameters":{"id":37513,"nodeType":"ParameterList","parameters":[],"src":"2202:2:45"}},{"id":37516,"nodeType":"ErrorDefinition","src":"2206:26:45","nodes":[],"errorSelector":"f4086a20","name":"FacetCannotBeZero","nameLocation":"2212:17:45","parameters":{"id":37515,"nodeType":"ParameterList","parameters":[],"src":"2229:2:45"}},{"id":37518,"nodeType":"ErrorDefinition","src":"2233:21:45","nodes":[],"errorSelector":"3bed0499","name":"WrongGateway","nameLocation":"2239:12:45","parameters":{"id":37517,"nodeType":"ParameterList","parameters":[],"src":"2251:2:45"}},{"id":37520,"nodeType":"ErrorDefinition","src":"2255:25:45","nodes":[],"errorSelector":"4edce94e","name":"CannotFindSubnet","nameLocation":"2261:16:45","parameters":{"id":37519,"nodeType":"ParameterList","parameters":[],"src":"2277:2:45"}},{"id":37522,"nodeType":"ErrorDefinition","src":"2281:22:45","nodes":[],"errorSelector":"63b0e022","name":"UnknownSubnet","nameLocation":"2287:13:45","parameters":{"id":37521,"nodeType":"ParameterList","parameters":[],"src":"2300:2:45"}},{"id":37526,"nodeType":"ErrorDefinition","src":"2304:38:45","nodes":[],"errorSelector":"015538b1","name":"MethodNotAllowed","nameLocation":"2310:16:45","parameters":{"id":37525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37524,"mutability":"mutable","name":"reason","nameLocation":"2334:6:45","nodeType":"VariableDeclaration","scope":37526,"src":"2327:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":37523,"name":"string","nodeType":"ElementaryTypeName","src":"2327:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2326:15:45"}},{"id":37528,"nodeType":"ErrorDefinition","src":"2343:33:45","nodes":[],"errorSelector":"7e659359","name":"InvalidFederationPayload","nameLocation":"2349:24:45","parameters":{"id":37527,"nodeType":"ParameterList","parameters":[],"src":"2373:2:45"}},{"id":37530,"nodeType":"ErrorDefinition","src":"2377:35:45","nodes":[],"errorSelector":"472b3530","name":"DuplicatedGenesisValidator","nameLocation":"2383:26:45","parameters":{"id":37529,"nodeType":"ParameterList","parameters":[],"src":"2409:2:45"}},{"id":37532,"nodeType":"ErrorDefinition","src":"2413:35:45","nodes":[],"errorSelector":"62901620","name":"NotEnoughGenesisValidators","nameLocation":"2419:26:45","parameters":{"id":37531,"nodeType":"ParameterList","parameters":[],"src":"2445:2:45"}},{"id":37535,"nodeType":"VariableDeclaration","src":"2450:123:45","nodes":[],"constant":true,"mutability":"constant","name":"ERR_PERMISSIONED_AND_BOOTSTRAPPED","nameLocation":"2466:33:45","scope":37542,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":37533,"name":"string","nodeType":"ElementaryTypeName","src":"2450:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e656420697320656e61626c656420616e64207375626e657420626f6f747374726170706564","id":37534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2502:71:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_c378361dcfdda07d25cacf3f9129b5aaba0002006afe795cd699e6c675496f23","typeString":"literal_string \"Method not allowed if permissioned is enabled and subnet bootstrapped\""},"value":"Method not allowed if permissioned is enabled and subnet bootstrapped"},"visibility":"internal"},{"id":37538,"nodeType":"VariableDeclaration","src":"2575:91:45","nodes":[],"constant":true,"mutability":"constant","name":"ERR_VALIDATOR_JOINED","nameLocation":"2591:20:45","scope":37542,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":37536,"name":"string","nodeType":"ElementaryTypeName","src":"2575:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722068617320616c7265616479206a6f696e6564","id":37537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2614:52:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_296552a3558a0591332d5684236d512032e62645d0ddcebb5ea3d749bd138eea","typeString":"literal_string \"Method not allowed if validator has already joined\""},"value":"Method not allowed if validator has already joined"},"visibility":"internal"},{"id":37541,"nodeType":"VariableDeclaration","src":"2668:91:45","nodes":[],"constant":true,"mutability":"constant","name":"ERR_VALIDATOR_NOT_JOINED","nameLocation":"2684:24:45","scope":37542,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":37539,"name":"string","nodeType":"ElementaryTypeName","src":"2668:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f7220686173206e6f74206a6f696e6564","id":37540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2711:48:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_5af8273efb6134c5ff6c2f65ae2a8c39ec8412f33f0a5fd9496cabff132a8b87","typeString":"literal_string \"Method not allowed if validator has not joined\""},"value":"Method not allowed if validator has not joined"},"visibility":"internal"}],"license":"MIT OR Apache-2.0"},"id":45} \ No newline at end of file diff --git a/.out/IPCMsgType.sol/IPCMsgType.json b/.out/IPCMsgType.sol/IPCMsgType.json index 819d922cb..dfd1d0912 100644 --- a/.out/IPCMsgType.sol/IPCMsgType.json +++ b/.out/IPCMsgType.sol/IPCMsgType.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/enums/IPCMsgType.sol","id":36924,"exportedSymbols":{"IPCMsgType":[36923]},"nodeType":"SourceUnit","src":"46:131:41","nodes":[{"id":36920,"nodeType":"PragmaDirective","src":"46:23:41","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36923,"nodeType":"EnumDefinition","src":"131:45:41","nodes":[],"canonicalName":"IPCMsgType","members":[{"id":36921,"name":"TopDown","nameLocation":"153:7:41","nodeType":"EnumValue","src":"153:7:41"},{"id":36922,"name":"BottomUp","nameLocation":"166:8:41","nodeType":"EnumValue","src":"166:8:41"}],"name":"IPCMsgType","nameLocation":"136:10:41"}],"license":"MIT OR Apache-2.0"},"id":41} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/enums/IPCMsgType.sol","id":37365,"exportedSymbols":{"IPCMsgType":[37364]},"nodeType":"SourceUnit","src":"46:131:44","nodes":[{"id":37361,"nodeType":"PragmaDirective","src":"46:23:44","nodes":[],"literals":["solidity","0.8",".19"]},{"id":37364,"nodeType":"EnumDefinition","src":"131:45:44","nodes":[],"canonicalName":"IPCMsgType","members":[{"id":37362,"name":"TopDown","nameLocation":"153:7:44","nodeType":"EnumValue","src":"153:7:44"},{"id":37363,"name":"BottomUp","nameLocation":"166:8:44","nodeType":"EnumValue","src":"166:8:44"}],"name":"IPCMsgType","nameLocation":"136:10:44"}],"license":"MIT OR Apache-2.0"},"id":44} \ No newline at end of file diff --git a/.out/ISubnetActor.sol/ISubnetActor.json b/.out/ISubnetActor.sol/ISubnetActor.json index c51b8f553..3f1c08143 100644 --- a/.out/ISubnetActor.sol/ISubnetActor.json +++ b/.out/ISubnetActor.sol/ISubnetActor.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"claim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardForRelayer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeRewardToRelayers","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"kind","type":"uint8","internalType":"enum QuorumObjKind"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"join","inputs":[{"name":"metadata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leave","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"preFund","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"preRelease","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"claim()":"4e71d92d","claimRewardForRelayer()":"ed7c4da1","distributeRewardToRelayers(uint256,uint256,uint8)":"4c860af6","join(bytes)":"6170b162","kill()":"41c0e1b5","leave()":"d66d9e19","preFund()":"0b7fbe60","preRelease(uint256)":"66783c9b","stake()":"3a4b66f1","submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":"b9ee2bb9","unstake(uint256)":"2e17de78"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"enum QuorumObjKind\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"distributeRewardToRelayers\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preFund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"preRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Subnet Actor interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"claim()\":{\"notice\":\"Validator claims released collateral\"},\"claimRewardForRelayer()\":{\"notice\":\"Relayer claims a reward\"},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"notice\":\"reward the relayers for processing checkpoint at height `height`. The reword includes the fixed reward for a relayer defined in the contract and `amount` of fees from the cross-messages.\"},\"join(bytes)\":{\"notice\":\"Called by peers looking to join a subnet. It implements the basic logic to onboard new peers to the subnet.\"},\"kill()\":{\"notice\":\"Unregister the subnet from the hierarchy, making it no longer discoverable.\"},\"leave()\":{\"notice\":\"Called by peers looking to leave a subnet.\"},\"preFund()\":{\"notice\":\"Method that allows to pre-fund an address in the subnet before it bootstraps.\"},\"preRelease(uint256)\":{\"notice\":\"Method that allows to recover initial balance for an address from a subnet that hasn't bootstrapped yet.\"},\"stake()\":{\"notice\":\"Method that allows a validator to increase their stake\"},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"notice\":\"Executes the checkpoint if it is valid. It triggers the commitment of the checkpoint, the execution of related cross-net messages, and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.\"},\"unstake(uint256)\":{\"notice\":\"Method that allows a validator to unstake their collateral from a subnet\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ISubnetActor.sol\":\"ISubnetActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum QuorumObjKind","name":"kind","type":"uint8"}],"stateMutability":"payable","type":"function","name":"distributeRewardToRelayers"},{"inputs":[{"internalType":"bytes","name":"metadata","type":"bytes"}],"stateMutability":"payable","type":"function","name":"join"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"leave"},{"inputs":[],"stateMutability":"payable","type":"function","name":"preFund"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preRelease"},{"inputs":[],"stateMutability":"payable","type":"function","name":"stake"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitCheckpoint"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"claim()":{"notice":"Validator claims released collateral"},"claimRewardForRelayer()":{"notice":"Relayer claims a reward"},"distributeRewardToRelayers(uint256,uint256,uint8)":{"notice":"reward the relayers for processing checkpoint at height `height`. The reword includes the fixed reward for a relayer defined in the contract and `amount` of fees from the cross-messages."},"join(bytes)":{"notice":"Called by peers looking to join a subnet. It implements the basic logic to onboard new peers to the subnet."},"kill()":{"notice":"Unregister the subnet from the hierarchy, making it no longer discoverable."},"leave()":{"notice":"Called by peers looking to leave a subnet."},"preFund()":{"notice":"Method that allows to pre-fund an address in the subnet before it bootstraps."},"preRelease(uint256)":{"notice":"Method that allows to recover initial balance for an address from a subnet that hasn't bootstrapped yet."},"stake()":{"notice":"Method that allows a validator to increase their stake"},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"notice":"Executes the checkpoint if it is valid. It triggers the commitment of the checkpoint, the execution of related cross-net messages, and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping."},"unstake(uint256)":{"notice":"Method that allows a validator to unstake their collateral from a subnet"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/ISubnetActor.sol":"ISubnetActor"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/ISubnetActor.sol","id":39979,"exportedSymbols":{"BottomUpCheckpoint":[48410],"ISubnetActor":[39978],"QuorumObjKind":[48490]},"nodeType":"SourceUnit","src":"46:2048:53","nodes":[{"id":39906,"nodeType":"PragmaDirective","src":"46:23:53","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39908,"nodeType":"ImportDirective","src":"71:59:53","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":39979,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":39907,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"79:18:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39910,"nodeType":"ImportDirective","src":"131:52:53","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":39979,"sourceUnit":48538,"symbolAliases":[{"foreign":{"id":39909,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48490,"src":"139:13:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39978,"nodeType":"ContractDefinition","src":"246:1847:53","nodes":[{"id":39917,"nodeType":"FunctionDefinition","src":"407:56:53","nodes":[],"documentation":{"id":39912,"nodeType":"StructuredDocumentation","src":"275:127:53","text":"Called by peers looking to join a subnet.\n It implements the basic logic to onboard new peers to the subnet."},"functionSelector":"6170b162","implemented":false,"kind":"function","modifiers":[],"name":"join","nameLocation":"416:4:53","parameters":{"id":39915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39914,"mutability":"mutable","name":"metadata","nameLocation":"436:8:53","nodeType":"VariableDeclaration","scope":39917,"src":"421:23:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":39913,"name":"bytes","nodeType":"ElementaryTypeName","src":"421:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"420:25:53"},"returnParameters":{"id":39916,"nodeType":"ParameterList","parameters":[],"src":"462:0:53"},"scope":39978,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":39921,"nodeType":"FunctionDefinition","src":"520:26:53","nodes":[],"documentation":{"id":39918,"nodeType":"StructuredDocumentation","src":"469:46:53","text":"Called by peers looking to leave a subnet."},"functionSelector":"d66d9e19","implemented":false,"kind":"function","modifiers":[],"name":"leave","nameLocation":"529:5:53","parameters":{"id":39919,"nodeType":"ParameterList","parameters":[],"src":"534:2:53"},"returnParameters":{"id":39920,"nodeType":"ParameterList","parameters":[],"src":"545:0:53"},"scope":39978,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39925,"nodeType":"FunctionDefinition","src":"615:34:53","nodes":[],"documentation":{"id":39922,"nodeType":"StructuredDocumentation","src":"552:58:53","text":"Method that allows a validator to increase their stake"},"functionSelector":"3a4b66f1","implemented":false,"kind":"function","modifiers":[],"name":"stake","nameLocation":"624:5:53","parameters":{"id":39923,"nodeType":"ParameterList","parameters":[],"src":"629:2:53"},"returnParameters":{"id":39924,"nodeType":"ParameterList","parameters":[],"src":"648:0:53"},"scope":39978,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":39929,"nodeType":"FunctionDefinition","src":"741:36:53","nodes":[],"documentation":{"id":39926,"nodeType":"StructuredDocumentation","src":"655:81:53","text":"Method that allows to pre-fund an address in the subnet before it bootstraps."},"functionSelector":"0b7fbe60","implemented":false,"kind":"function","modifiers":[],"name":"preFund","nameLocation":"750:7:53","parameters":{"id":39927,"nodeType":"ParameterList","parameters":[],"src":"757:2:53"},"returnParameters":{"id":39928,"nodeType":"ParameterList","parameters":[],"src":"776:0:53"},"scope":39978,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":39935,"nodeType":"FunctionDefinition","src":"896:45:53","nodes":[],"documentation":{"id":39930,"nodeType":"StructuredDocumentation","src":"783:108:53","text":"Method that allows to recover initial balance for an address from a subnet that hasn't bootstrapped yet."},"functionSelector":"66783c9b","implemented":false,"kind":"function","modifiers":[],"name":"preRelease","nameLocation":"905:10:53","parameters":{"id":39933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39932,"mutability":"mutable","name":"amount","nameLocation":"924:6:53","nodeType":"VariableDeclaration","scope":39935,"src":"916:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39931,"name":"uint256","nodeType":"ElementaryTypeName","src":"916:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"915:16:53"},"returnParameters":{"id":39934,"nodeType":"ParameterList","parameters":[],"src":"940:0:53"},"scope":39978,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39941,"nodeType":"FunctionDefinition","src":"1028:42:53","nodes":[],"documentation":{"id":39936,"nodeType":"StructuredDocumentation","src":"947:76:53","text":"Method that allows a validator to unstake their collateral from a subnet"},"functionSelector":"2e17de78","implemented":false,"kind":"function","modifiers":[],"name":"unstake","nameLocation":"1037:7:53","parameters":{"id":39939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39938,"mutability":"mutable","name":"amount","nameLocation":"1053:6:53","nodeType":"VariableDeclaration","scope":39941,"src":"1045:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39937,"name":"uint256","nodeType":"ElementaryTypeName","src":"1045:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1044:16:53"},"returnParameters":{"id":39940,"nodeType":"ParameterList","parameters":[],"src":"1069:0:53"},"scope":39978,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39945,"nodeType":"FunctionDefinition","src":"1160:25:53","nodes":[],"documentation":{"id":39942,"nodeType":"StructuredDocumentation","src":"1076:79:53","text":"Unregister the subnet from the hierarchy, making it no longer discoverable."},"functionSelector":"41c0e1b5","implemented":false,"kind":"function","modifiers":[],"name":"kill","nameLocation":"1169:4:53","parameters":{"id":39943,"nodeType":"ParameterList","parameters":[],"src":"1173:2:53"},"returnParameters":{"id":39944,"nodeType":"ParameterList","parameters":[],"src":"1184:0:53"},"scope":39978,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39949,"nodeType":"FunctionDefinition","src":"1236:26:53","nodes":[],"documentation":{"id":39946,"nodeType":"StructuredDocumentation","src":"1191:40:53","text":"Validator claims released collateral"},"functionSelector":"4e71d92d","implemented":false,"kind":"function","modifiers":[],"name":"claim","nameLocation":"1245:5:53","parameters":{"id":39947,"nodeType":"ParameterList","parameters":[],"src":"1250:2:53"},"returnParameters":{"id":39948,"nodeType":"ParameterList","parameters":[],"src":"1261:0:53"},"scope":39978,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39953,"nodeType":"FunctionDefinition","src":"1300:42:53","nodes":[],"documentation":{"id":39950,"nodeType":"StructuredDocumentation","src":"1268:27:53","text":"Relayer claims a reward"},"functionSelector":"ed7c4da1","implemented":false,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"1309:21:53","parameters":{"id":39951,"nodeType":"ParameterList","parameters":[],"src":"1330:2:53"},"returnParameters":{"id":39952,"nodeType":"ParameterList","parameters":[],"src":"1341:0:53"},"scope":39978,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39966,"nodeType":"FunctionDefinition","src":"1611:166:53","nodes":[],"documentation":{"id":39954,"nodeType":"StructuredDocumentation","src":"1348:258:53","text":"Executes the checkpoint if it is valid.\n It triggers the commitment of the checkpoint, the execution of related cross-net messages,\n and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping."},"functionSelector":"b9ee2bb9","implemented":false,"kind":"function","modifiers":[],"name":"submitCheckpoint","nameLocation":"1620:16:53","parameters":{"id":39964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39957,"mutability":"mutable","name":"checkpoint","nameLocation":"1674:10:53","nodeType":"VariableDeclaration","scope":39966,"src":"1646:38:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":39956,"nodeType":"UserDefinedTypeName","pathNode":{"id":39955,"name":"BottomUpCheckpoint","nameLocations":["1646:18:53"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"1646:18:53"},"referencedDeclaration":48410,"src":"1646:18:53","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":39960,"mutability":"mutable","name":"signatories","nameLocation":"1713:11:53","nodeType":"VariableDeclaration","scope":39966,"src":"1694:30:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":39958,"name":"address","nodeType":"ElementaryTypeName","src":"1694:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39959,"nodeType":"ArrayTypeName","src":"1694:9:53","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":39963,"mutability":"mutable","name":"signatures","nameLocation":"1751:10:53","nodeType":"VariableDeclaration","scope":39966,"src":"1734:27:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":39961,"name":"bytes","nodeType":"ElementaryTypeName","src":"1734:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":39962,"nodeType":"ArrayTypeName","src":"1734:7:53","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1636:131:53"},"returnParameters":{"id":39965,"nodeType":"ParameterList","parameters":[],"src":"1776:0:53"},"scope":39978,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39977,"nodeType":"FunctionDefinition","src":"1986:105:53","nodes":[],"documentation":{"id":39967,"nodeType":"StructuredDocumentation","src":"1783:198:53","text":"reward the relayers for processing checkpoint at height `height`.\n The reword includes the fixed reward for a relayer defined in the contract and `amount` of fees from the cross-messages."},"functionSelector":"4c860af6","implemented":false,"kind":"function","modifiers":[],"name":"distributeRewardToRelayers","nameLocation":"1995:26:53","parameters":{"id":39975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39969,"mutability":"mutable","name":"height","nameLocation":"2030:6:53","nodeType":"VariableDeclaration","scope":39977,"src":"2022:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39968,"name":"uint256","nodeType":"ElementaryTypeName","src":"2022:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39971,"mutability":"mutable","name":"amount","nameLocation":"2046:6:53","nodeType":"VariableDeclaration","scope":39977,"src":"2038:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39970,"name":"uint256","nodeType":"ElementaryTypeName","src":"2038:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39974,"mutability":"mutable","name":"kind","nameLocation":"2068:4:53","nodeType":"VariableDeclaration","scope":39977,"src":"2054:18:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"},"typeName":{"id":39973,"nodeType":"UserDefinedTypeName","pathNode":{"id":39972,"name":"QuorumObjKind","nameLocations":["2054:13:53"],"nodeType":"IdentifierPath","referencedDeclaration":48490,"src":"2054:13:53"},"referencedDeclaration":48490,"src":"2054:13:53","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"}},"visibility":"internal"}],"src":"2021:52:53"},"returnParameters":{"id":39976,"nodeType":"ParameterList","parameters":[],"src":"2090:0:53"},"scope":39978,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISubnetActor","contractDependencies":[],"contractKind":"interface","documentation":{"id":39911,"nodeType":"StructuredDocumentation","src":"185:61:53","text":"@title Subnet Actor interface\n @author LimeChain team"},"fullyImplemented":false,"linearizedBaseContracts":[39978],"name":"ISubnetActor","nameLocation":"256:12:53","scope":39979,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":53} \ No newline at end of file +{"abi":[{"type":"function","name":"claim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardForRelayer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeRewardToRelayers","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"kind","type":"uint8","internalType":"enum QuorumObjKind"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"join","inputs":[{"name":"metadata","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leave","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"preFund","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"preRelease","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"claim()":"4e71d92d","claimRewardForRelayer()":"ed7c4da1","distributeRewardToRelayers(uint256,uint256,uint8)":"4c860af6","join(bytes)":"6170b162","kill()":"41c0e1b5","leave()":"d66d9e19","preFund()":"0b7fbe60","preRelease(uint256)":"66783c9b","stake()":"3a4b66f1","submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":"b9ee2bb9","unstake(uint256)":"2e17de78"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"enum QuorumObjKind\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"distributeRewardToRelayers\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"preFund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"preRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Subnet Actor interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"claim()\":{\"notice\":\"Validator claims released collateral\"},\"claimRewardForRelayer()\":{\"notice\":\"Relayer claims a reward\"},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"notice\":\"reward the relayers for processing checkpoint at height `height`. The reword includes the fixed reward for a relayer defined in the contract and `amount` of fees from the cross-messages.\"},\"join(bytes)\":{\"notice\":\"Called by peers looking to join a subnet. It implements the basic logic to onboard new peers to the subnet.\"},\"kill()\":{\"notice\":\"Unregister the subnet from the hierarchy, making it no longer discoverable.\"},\"leave()\":{\"notice\":\"Called by peers looking to leave a subnet.\"},\"preFund()\":{\"notice\":\"Method that allows to pre-fund an address in the subnet before it bootstraps.\"},\"preRelease(uint256)\":{\"notice\":\"Method that allows to recover initial balance for an address from a subnet that hasn't bootstrapped yet.\"},\"stake()\":{\"notice\":\"Method that allows a validator to increase their stake\"},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"notice\":\"Executes the checkpoint if it is valid. It triggers the commitment of the checkpoint, the execution of related cross-net messages, and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.\"},\"unstake(uint256)\":{\"notice\":\"Method that allows a validator to unstake their collateral from a subnet\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ISubnetActor.sol\":\"ISubnetActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum QuorumObjKind","name":"kind","type":"uint8"}],"stateMutability":"payable","type":"function","name":"distributeRewardToRelayers"},{"inputs":[{"internalType":"bytes","name":"metadata","type":"bytes"}],"stateMutability":"payable","type":"function","name":"join"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"leave"},{"inputs":[],"stateMutability":"payable","type":"function","name":"preFund"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preRelease"},{"inputs":[],"stateMutability":"payable","type":"function","name":"stake"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitCheckpoint"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"claim()":{"notice":"Validator claims released collateral"},"claimRewardForRelayer()":{"notice":"Relayer claims a reward"},"distributeRewardToRelayers(uint256,uint256,uint8)":{"notice":"reward the relayers for processing checkpoint at height `height`. The reword includes the fixed reward for a relayer defined in the contract and `amount` of fees from the cross-messages."},"join(bytes)":{"notice":"Called by peers looking to join a subnet. It implements the basic logic to onboard new peers to the subnet."},"kill()":{"notice":"Unregister the subnet from the hierarchy, making it no longer discoverable."},"leave()":{"notice":"Called by peers looking to leave a subnet."},"preFund()":{"notice":"Method that allows to pre-fund an address in the subnet before it bootstraps."},"preRelease(uint256)":{"notice":"Method that allows to recover initial balance for an address from a subnet that hasn't bootstrapped yet."},"stake()":{"notice":"Method that allows a validator to increase their stake"},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"notice":"Executes the checkpoint if it is valid. It triggers the commitment of the checkpoint, the execution of related cross-net messages, and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping."},"unstake(uint256)":{"notice":"Method that allows a validator to unstake their collateral from a subnet"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/ISubnetActor.sol":"ISubnetActor"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/interfaces/ISubnetActor.sol","id":40429,"exportedSymbols":{"BottomUpCheckpoint":[49932],"ISubnetActor":[40428],"QuorumObjKind":[50012]},"nodeType":"SourceUnit","src":"46:2048:58","nodes":[{"id":40356,"nodeType":"PragmaDirective","src":"46:23:58","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40358,"nodeType":"ImportDirective","src":"71:59:58","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40429,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":40357,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"79:18:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40360,"nodeType":"ImportDirective","src":"131:52:58","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":40429,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":40359,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"139:13:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40428,"nodeType":"ContractDefinition","src":"246:1847:58","nodes":[{"id":40367,"nodeType":"FunctionDefinition","src":"407:56:58","nodes":[],"documentation":{"id":40362,"nodeType":"StructuredDocumentation","src":"275:127:58","text":"Called by peers looking to join a subnet.\n It implements the basic logic to onboard new peers to the subnet."},"functionSelector":"6170b162","implemented":false,"kind":"function","modifiers":[],"name":"join","nameLocation":"416:4:58","parameters":{"id":40365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40364,"mutability":"mutable","name":"metadata","nameLocation":"436:8:58","nodeType":"VariableDeclaration","scope":40367,"src":"421:23:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":40363,"name":"bytes","nodeType":"ElementaryTypeName","src":"421:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"420:25:58"},"returnParameters":{"id":40366,"nodeType":"ParameterList","parameters":[],"src":"462:0:58"},"scope":40428,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40371,"nodeType":"FunctionDefinition","src":"520:26:58","nodes":[],"documentation":{"id":40368,"nodeType":"StructuredDocumentation","src":"469:46:58","text":"Called by peers looking to leave a subnet."},"functionSelector":"d66d9e19","implemented":false,"kind":"function","modifiers":[],"name":"leave","nameLocation":"529:5:58","parameters":{"id":40369,"nodeType":"ParameterList","parameters":[],"src":"534:2:58"},"returnParameters":{"id":40370,"nodeType":"ParameterList","parameters":[],"src":"545:0:58"},"scope":40428,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40375,"nodeType":"FunctionDefinition","src":"615:34:58","nodes":[],"documentation":{"id":40372,"nodeType":"StructuredDocumentation","src":"552:58:58","text":"Method that allows a validator to increase their stake"},"functionSelector":"3a4b66f1","implemented":false,"kind":"function","modifiers":[],"name":"stake","nameLocation":"624:5:58","parameters":{"id":40373,"nodeType":"ParameterList","parameters":[],"src":"629:2:58"},"returnParameters":{"id":40374,"nodeType":"ParameterList","parameters":[],"src":"648:0:58"},"scope":40428,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40379,"nodeType":"FunctionDefinition","src":"741:36:58","nodes":[],"documentation":{"id":40376,"nodeType":"StructuredDocumentation","src":"655:81:58","text":"Method that allows to pre-fund an address in the subnet before it bootstraps."},"functionSelector":"0b7fbe60","implemented":false,"kind":"function","modifiers":[],"name":"preFund","nameLocation":"750:7:58","parameters":{"id":40377,"nodeType":"ParameterList","parameters":[],"src":"757:2:58"},"returnParameters":{"id":40378,"nodeType":"ParameterList","parameters":[],"src":"776:0:58"},"scope":40428,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":40385,"nodeType":"FunctionDefinition","src":"896:45:58","nodes":[],"documentation":{"id":40380,"nodeType":"StructuredDocumentation","src":"783:108:58","text":"Method that allows to recover initial balance for an address from a subnet that hasn't bootstrapped yet."},"functionSelector":"66783c9b","implemented":false,"kind":"function","modifiers":[],"name":"preRelease","nameLocation":"905:10:58","parameters":{"id":40383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40382,"mutability":"mutable","name":"amount","nameLocation":"924:6:58","nodeType":"VariableDeclaration","scope":40385,"src":"916:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40381,"name":"uint256","nodeType":"ElementaryTypeName","src":"916:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"915:16:58"},"returnParameters":{"id":40384,"nodeType":"ParameterList","parameters":[],"src":"940:0:58"},"scope":40428,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40391,"nodeType":"FunctionDefinition","src":"1028:42:58","nodes":[],"documentation":{"id":40386,"nodeType":"StructuredDocumentation","src":"947:76:58","text":"Method that allows a validator to unstake their collateral from a subnet"},"functionSelector":"2e17de78","implemented":false,"kind":"function","modifiers":[],"name":"unstake","nameLocation":"1037:7:58","parameters":{"id":40389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40388,"mutability":"mutable","name":"amount","nameLocation":"1053:6:58","nodeType":"VariableDeclaration","scope":40391,"src":"1045:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40387,"name":"uint256","nodeType":"ElementaryTypeName","src":"1045:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1044:16:58"},"returnParameters":{"id":40390,"nodeType":"ParameterList","parameters":[],"src":"1069:0:58"},"scope":40428,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40395,"nodeType":"FunctionDefinition","src":"1160:25:58","nodes":[],"documentation":{"id":40392,"nodeType":"StructuredDocumentation","src":"1076:79:58","text":"Unregister the subnet from the hierarchy, making it no longer discoverable."},"functionSelector":"41c0e1b5","implemented":false,"kind":"function","modifiers":[],"name":"kill","nameLocation":"1169:4:58","parameters":{"id":40393,"nodeType":"ParameterList","parameters":[],"src":"1173:2:58"},"returnParameters":{"id":40394,"nodeType":"ParameterList","parameters":[],"src":"1184:0:58"},"scope":40428,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40399,"nodeType":"FunctionDefinition","src":"1236:26:58","nodes":[],"documentation":{"id":40396,"nodeType":"StructuredDocumentation","src":"1191:40:58","text":"Validator claims released collateral"},"functionSelector":"4e71d92d","implemented":false,"kind":"function","modifiers":[],"name":"claim","nameLocation":"1245:5:58","parameters":{"id":40397,"nodeType":"ParameterList","parameters":[],"src":"1250:2:58"},"returnParameters":{"id":40398,"nodeType":"ParameterList","parameters":[],"src":"1261:0:58"},"scope":40428,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40403,"nodeType":"FunctionDefinition","src":"1300:42:58","nodes":[],"documentation":{"id":40400,"nodeType":"StructuredDocumentation","src":"1268:27:58","text":"Relayer claims a reward"},"functionSelector":"ed7c4da1","implemented":false,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"1309:21:58","parameters":{"id":40401,"nodeType":"ParameterList","parameters":[],"src":"1330:2:58"},"returnParameters":{"id":40402,"nodeType":"ParameterList","parameters":[],"src":"1341:0:58"},"scope":40428,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40416,"nodeType":"FunctionDefinition","src":"1611:166:58","nodes":[],"documentation":{"id":40404,"nodeType":"StructuredDocumentation","src":"1348:258:58","text":"Executes the checkpoint if it is valid.\n It triggers the commitment of the checkpoint, the execution of related cross-net messages,\n and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping."},"functionSelector":"b9ee2bb9","implemented":false,"kind":"function","modifiers":[],"name":"submitCheckpoint","nameLocation":"1620:16:58","parameters":{"id":40414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40407,"mutability":"mutable","name":"checkpoint","nameLocation":"1674:10:58","nodeType":"VariableDeclaration","scope":40416,"src":"1646:38:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":40406,"nodeType":"UserDefinedTypeName","pathNode":{"id":40405,"name":"BottomUpCheckpoint","nameLocations":["1646:18:58"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"1646:18:58"},"referencedDeclaration":49932,"src":"1646:18:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":40410,"mutability":"mutable","name":"signatories","nameLocation":"1713:11:58","nodeType":"VariableDeclaration","scope":40416,"src":"1694:30:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":40408,"name":"address","nodeType":"ElementaryTypeName","src":"1694:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40409,"nodeType":"ArrayTypeName","src":"1694:9:58","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":40413,"mutability":"mutable","name":"signatures","nameLocation":"1751:10:58","nodeType":"VariableDeclaration","scope":40416,"src":"1734:27:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":40411,"name":"bytes","nodeType":"ElementaryTypeName","src":"1734:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":40412,"nodeType":"ArrayTypeName","src":"1734:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1636:131:58"},"returnParameters":{"id":40415,"nodeType":"ParameterList","parameters":[],"src":"1776:0:58"},"scope":40428,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40427,"nodeType":"FunctionDefinition","src":"1986:105:58","nodes":[],"documentation":{"id":40417,"nodeType":"StructuredDocumentation","src":"1783:198:58","text":"reward the relayers for processing checkpoint at height `height`.\n The reword includes the fixed reward for a relayer defined in the contract and `amount` of fees from the cross-messages."},"functionSelector":"4c860af6","implemented":false,"kind":"function","modifiers":[],"name":"distributeRewardToRelayers","nameLocation":"1995:26:58","parameters":{"id":40425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40419,"mutability":"mutable","name":"height","nameLocation":"2030:6:58","nodeType":"VariableDeclaration","scope":40427,"src":"2022:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40418,"name":"uint256","nodeType":"ElementaryTypeName","src":"2022:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40421,"mutability":"mutable","name":"amount","nameLocation":"2046:6:58","nodeType":"VariableDeclaration","scope":40427,"src":"2038:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40420,"name":"uint256","nodeType":"ElementaryTypeName","src":"2038:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40424,"mutability":"mutable","name":"kind","nameLocation":"2068:4:58","nodeType":"VariableDeclaration","scope":40427,"src":"2054:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},"typeName":{"id":40423,"nodeType":"UserDefinedTypeName","pathNode":{"id":40422,"name":"QuorumObjKind","nameLocations":["2054:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"2054:13:58"},"referencedDeclaration":50012,"src":"2054:13:58","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"visibility":"internal"}],"src":"2021:52:58"},"returnParameters":{"id":40426,"nodeType":"ParameterList","parameters":[],"src":"2090:0:58"},"scope":40428,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISubnetActor","contractDependencies":[],"contractKind":"interface","documentation":{"id":40361,"nodeType":"StructuredDocumentation","src":"185:61:58","text":"@title Subnet Actor interface\n @author LimeChain team"},"fullyImplemented":false,"linearizedBaseContracts":[40428],"name":"ISubnetActor","nameLocation":"256:12:58","scope":40429,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":58} \ No newline at end of file diff --git a/.out/IntegrationTestBase.sol/IntegrationTestBase.json b/.out/IntegrationTestBase.sol/IntegrationTestBase.json index 36505841f..912e8f5c8 100644 --- a/.out/IntegrationTestBase.sol/IntegrationTestBase.json +++ b/.out/IntegrationTestBase.sol/IntegrationTestBase.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"addStake","inputs":[{"name":"stakeAmount","type":"uint256","internalType":"uint256"},{"name":"subnetAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addValidator","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addValidator","inputs":[{"name":"validator","type":"address","internalType":"address"},{"name":"weight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createGatewayDiamond","inputs":[{"name":"params","type":"tuple","internalType":"struct GatewayDiamond.ConstructorParams","components":[{"name":"networkName","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"bottomUpCheckPeriod","type":"uint256","internalType":"uint256"},{"name":"minCollateral","type":"uint256","internalType":"uint256"},{"name":"msgFee","type":"uint256","internalType":"uint256"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"genesisValidators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"","type":"address","internalType":"contract GatewayDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createMockedSubnetActorWithGateway","inputs":[{"name":"gw","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActor","inputs":[{"name":"_ipcGatewayAddr","type":"address","internalType":"address"},{"name":"_consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"_minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"_minValidators","type":"uint64","internalType":"uint64"},{"name":"_checkPeriod","type":"uint64","internalType":"uint64"},{"name":"_majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"_permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"_activeValidatorsLimit","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActor","inputs":[{"name":"_ipcGatewayAddr","type":"address","internalType":"address"},{"name":"_consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"_minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"_minValidators","type":"uint64","internalType":"uint64"},{"name":"_checkPeriod","type":"uint64","internalType":"uint64"},{"name":"_majorityPercentage","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActor","inputs":[{"name":"params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"}]}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActorDiamondWithFaucets","inputs":[{"name":"params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"}]},{"name":"getterFaucet","type":"address","internalType":"address"},{"name":"managerFaucet","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetRegistry","inputs":[{"name":"params","type":"tuple","internalType":"struct SubnetRegistryDiamond.ConstructorParams","components":[{"name":"gateway","type":"address","internalType":"address"},{"name":"getterFacet","type":"address","internalType":"address"},{"name":"managerFacet","type":"address","internalType":"address"},{"name":"subnetGetterSelectors","type":"bytes4[]","internalType":"bytes4[]"},{"name":"subnetManagerSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetRegistryDiamond"}],"stateMutability":"nonpayable"},{"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":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"fund","inputs":[{"name":"funderAddress","type":"address","internalType":"address"},{"name":"fundAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getSubnet","inputs":[{"name":"subnetAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint8","internalType":"enum Status"}],"stateMutability":"nonpayable"},{"type":"function","name":"getSubnetGW","inputs":[{"name":"subnetAddress","type":"address","internalType":"address"},{"name":"gw","type":"address","internalType":"contract GatewayDiamond"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint8","internalType":"enum Status"}],"stateMutability":"nonpayable"},{"type":"function","name":"join","inputs":[{"name":"validatorAddress","type":"address","internalType":"address"},{"name":"pubkey","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSubnet","inputs":[{"name":"collateral","type":"uint256","internalType":"uint256"},{"name":"subnetAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSubnetGW","inputs":[{"name":"collateral","type":"uint256","internalType":"uint256"},{"name":"subnetAddress","type":"address","internalType":"address"},{"name":"gw","type":"address","internalType":"contract GatewayDiamond"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"release","inputs":[{"name":"releaseAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reward","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setupValidators","inputs":[],"outputs":[{"name":"validators","type":"tuple[]","internalType":"struct FvmAddress[]","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"addresses","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"setupWhiteListMethod","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"src","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"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":"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":"function","name":"totalWeight","inputs":[{"name":"weights","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"sum","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"event","name":"SubnetRegistryCreated","inputs":[{"name":"subnetRegistryAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"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":"0x608060409080825234620018b55760019060ff196000928082855416178455806004928354161782556200003383620018ba565b60138352620000696020937f52656769737465725375626e657446616365740000000000000000000000000085820152620019d7565b8051936001600160401b0391828611620018a25768010000000000000000908187116200188f578290601b5488601b5580891062001825575b500194601b88528288209560039688881c908a5b828110620017d1575060071999808b169003806200177c575b50505050620001078951620000e481620018ba565b601181527014dd589b995d11d95d1d195c919858d95d607a1b85820152620019d7565b9081518581116200176957838111620017695784601c93845483865580841062001703575b500190838b52858b20818a1c918c5b838110620016af5750808c169003806200165a575b50505050620001686200016262001910565b620019d7565b805190868211620015375784821162001537578590601d5483601d55808410620015f3575b500190601d8b52858b20818a1c918c5b8381106200159f5750808c169003806200154a575b50505050620001c4620001626200193d565b805190868211620015375784821162001537578590601e5483601e55808410620014d0575b500190601e8b52858b20818a1c918c5b8381106200147c5750808c1690038062001427575b50505050620002528a516200022381620018ba565b601681527f5375626e65744163746f7247657474657246616365740000000000000000000086820152620019d7565b90815186811162001414578481116200141457856024938454838655808410620013aa575b50908c9291019084835287832090808c1c92845b8481106200134c57508d82168083039203620012f8575b5050505050620002e78b51620002b881620018ba565b601781527f5375626e65744163746f724d616e61676572466163657400000000000000000087820152620019d7565b805190878211620009fe57858211620009fe578690602554836025558084106200128d575b50908c929101906025835287832090808c1c92845b8481106200122f57508d82168083039203620011db575b50505050506200037d8b516200034e81620018ba565b601b81527f5375626e65744163746f724d616e6167657246616365744d6f636b000000000087820152620019d7565b805190878211620009fe57858211620009fe5786906026548360265580841062001170575b50908c929101906026835287832090808c1c92845b8481106200111257508d82168083039203620010be575b5050505050620003e16200016262001910565b805190878211620009fe57858211620009fe5786906027548360275580841062001053575b50908c929101906027835287832090808c1c92845b84811062000ff557508d8216808303920362000fa1575b505050505062000445620001626200193d565b805190878211620009fe57858211620009fe5786906028548360285580841062000f36575b50908c929101906028835287832090808c1c92845b84811062000ed857508d8216808303920362000e84575b5050505050620004d08b51620004ac81620018ba565b601281527111d85d195dd85e549bdd5d195c919858d95d60721b87820152620019d7565b805190878211620009fe57858211620009fe578690602f5483602f5580841062000e19575b50908c92910190602f835287832090808c1c92845b84811062000dbb57508d8216808303920362000d67575b50505050506200055b8b516200053781620018ba565b601281527111d85d195dd85e51d95d1d195c919858d95d60721b87820152620019d7565b805190878211620009fe57858211620009fe5786906031548360315580841062000cfc575b50908c929101906031835287832090808c1c92845b84811062000c9e57508d8216808303920362000c4a575b5050505050620005f18b51620005c281620018ba565b601381527f476174657761794d616e6167657246616365740000000000000000000000000087820152620019d7565b805190878211620009fe57858211620009fe5786906030548360305580841062000bdf575b50908c929101906030835287832090808c1c92845b84811062000b8157508d8216808303920362000b2d575b5050505050620006878b516200065881620018ba565b601581527f476174657761794d657373656e6765724661636574000000000000000000000087820152620019d7565b805190878211620009fe57858211620009fe5786906032548360325580841062000ac2575b50908c929101906032835287832090808c1c92845b84811062000a6457508d8216808303920362000a10575b5050505050620006eb6200016262001910565b805190878211620009fe57858211620009fe5786906033548360335580841062000993575b50908c929101906033835287832090808c1c92845b8481106200093557508d82168083039203620008e1575b50505050506200074f620001626200193d565b938451968711620008cf578611620008be5750509082916034548560345580861062000859575b5050016034875282828820951c95875b87811062000805575083168084039303620007ac575b875162025e4c908162001cbe8239f35b929190865b828110620007cd5750505050500155388080808080806200079c565b90919282620007f8869983975160e01c908560021b60031b9163ffffffff809116831b921b19161790565b98019493929101620007b1565b8590898a5b866008821062000821575050818901550162000786565b90959293916200084b90845160e01c908860021b60031b9163ffffffff809116831b921b19161790565b92019401908792916200080a565b90919250603489528389206007808701891c82019201881c01918560021b1680620008a4575b5090858493925b82811062000895575062000776565b8a815585945087910162000886565b600019908183019182549187038a1b1c169055386200087f565b634e487b7160e01b8a526041905288fd5b50634e487b7160e01b8a526041905288fd5b90845b8c8b83831062000900575050505050015589388080806200073c565b90919293966200092a90885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620008e4565b858d9293949596905b8c600882106200095b5750508186015501908e9493929162000725565b90949293916200098590845160e01c908760021b60031b9163ffffffff809116831b921b19161790565b92019301908d92916200093e565b90915060338d52878d2060078085018d1c820192018c1c01908b878560021b1680620009e4575b5050908a8e8a9493905b838210620009d55750505062000710565b81558a94508c91018f620009c4565b6000198381018054928d0390931b1c1690558b38620009ba565b634e487b7160e01b8c5260418352838cfd5b90845b8c8b83831062000a2f57505050505001558938808080620006d8565b909192939662000a5990885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000a13565b858d9293949596905b8c6008821062000a8a5750508186015501908e94939291620006c1565b909492939162000ab490845160e01c908760021b60031b9163ffffffff809116831b921b19161790565b92019301908d929162000a6d565b90915060328d52878d2060078085018d1c820192018c1c01908b878560021b168062000b13575b5050908a8e8a9493905b83821062000b0457505050620006ac565b81558a94508c91018f62000af3565b6000198381018054928d0390931b1c1690558b3862000ae9565b90845b8c8b83831062000b4c5750505050500155893880808062000642565b909192939662000b7690885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000b30565b858d9293949596905b8c6008821062000ba75750508186015501908e949392916200062b565b909492939162000bd190845160e01c908760021b60031b9163ffffffff809116831b921b19161790565b92019301908d929162000b8a565b90915060308d52878d2060078085018d1c820192018c1c01908b878560021b168062000c30575b5050908a8e8a9493905b83821062000c215750505062000616565b81558a94508c91018f62000c10565b6000198381018054928d0390931b1c1690558b3862000c06565b90845b8c8b83831062000c6957505050505001558938808080620005ac565b909192939662000c9390885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000c4d565b858d9293949596905b8c6008821062000cc45750508186015501908e9493929162000595565b909492939162000cee90845160e01c908760021b60031b9163ffffffff809116831b921b19161790565b92019301908d929162000ca7565b90915060318d52878d2060078085018d1c820192018c1c01908b878560021b168062000d4d575b5050908a8e8a9493905b83821062000d3e5750505062000580565b81558a94508c91018f62000d2d565b6000198381018054928d0390931b1c1690558b3862000d23565b90845b8c8b83831062000d865750505050500155893880808062000521565b909192939662000db090885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000d6a565b858d9293949596905b8c6008821062000de15750508186015501908e949392916200050a565b909492939162000e0b90845160e01c908760021b60031b9163ffffffff809116831b921b19161790565b92019301908d929162000dc4565b909150602f8d52878d2060078085018d1c820192018c1c01908b878560021b168062000e6a575b5050908a8e8a9493905b83821062000e5b57505050620004f5565b81558a94508c91018f62000e4a565b6000198381018054928d0390931b1c1690558b3862000e40565b90845b8c8b83831062000ea35750505050500155893880808062000496565b909192939662000ecd90885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000e87565b858d9293949596905b8c6008821062000efe5750508186015501908e949392916200047f565b909492939162000f2890845160e01c908760021b60031b9163ffffffff809116831b921b19161790565b92019301908d929162000ee1565b90915060288d52878d2060078085018d1c820192018c1c01908b878560021b168062000f87575b5050908a8e8a9493905b83821062000f78575050506200046a565b81558a94508c91018f62000f67565b6000198381018054928d0390931b1c1690558b3862000f5d565b90845b8c8b83831062000fc05750505050500155893880808062000432565b909192939662000fea90885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000fa4565b858d9293949596905b8c600882106200101b5750508186015501908e949392916200041b565b90949293916200104590845160e01c908760021b60031b9163ffffffff809116831b921b19161790565b92019301908d929162000ffe565b90915060278d52878d2060078085018d1c820192018c1c01908b878560021b1680620010a4575b5050908a8e8a9493905b838210620010955750505062000406565b81558a94508c91018f62001084565b6000198381018054928d0390931b1c1690558b386200107a565b90845b8c8b838310620010dd57505050505001558938808080620003ce565b90919293966200110790885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620010c1565b858d9293949596905b8c60088210620011385750508186015501908e94939291620003b7565b90949293916200116290845160e01c908760021b60031b9163ffffffff809116831b921b19161790565b92019301908d92916200111b565b90915060268d52878d2060078085018d1c820192018c1c01908b878560021b1680620011c1575b5050908a8e8a9493905b838210620011b257505050620003a2565b81558a94508c91018f620011a1565b6000198381018054928d0390931b1c1690558b3862001197565b90845b8c8b838310620011fa5750505050500155893880808062000338565b90919293966200122490885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620011de565b858d9293949596905b8c60088210620012555750508186015501908e9493929162000321565b90949293916200127f90845160e01c908760021b60031b9163ffffffff809116831b921b19161790565b92019301908d929162001238565b90915060258d52878d2060078085018d1c820192018c1c01908b878560021b1680620012de575b5050908a8e8a9493905b838210620012cf575050506200030c565b81558a94508c91018f620012be565b6000198381018054928d0390931b1c1690558b38620012b4565b90845b8c8b8383106200131757505050505001558938808080620002a2565b90919293966200134190885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620012fb565b858d9293949596905b8c60088210620013725750508186015501908e949392916200028b565b90949293916200139c90845160e01c908760021b60031b9163ffffffff809116831b921b19161790565b92019301908d929162001355565b909150848d52878d2060078085018d1c820192018c1c01908b878560021b1680620013fa575b5050908a8e8a9493905b838210620013eb5750505062000277565b81558a94508c91018f620013da565b6000198381018054928d0390931b1c1690558b38620013d0565b634e487b7160e01b8b526041825260248bfd5b928c938d5b8b8a838310620014475750505050500155388080806200020e565b90919293966200147190885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200142c565b8a908e805b8b60088210620014985750508185015501620001f9565b9097929391620014c290845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601908c929162001481565b909150601e8c52868c2060078085018c1c820192018b1c0190858460021b16806200151c575b5090898893925b8281106200150d575050620001e9565b8e81558994508b9101620014fd565b60001990818301918d8354928c03901b1c16905538620014f6565b634e487b7160e01b8b526041835260248bfd5b928c938d5b8b8a8383106200156a575050505050015538808080620001b2565b90919293966200159490885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200154f565b8a908e805b8b60088210620015bb57505081850155016200019d565b9097929391620015e590845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601908c9291620015a4565b909150601d8c52868c2060078085018c1c820192018b1c0190858460021b16806200163f575b5090898893925b828110620016305750506200018d565b8e81558994508b910162001620565b60001990818301918d8354928c03901b1c1690553862001619565b928c938d5b8b8a8383106200167a57505050505001553880808062000150565b9091929396620016a490885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200165f565b8a908e805b8b60088210620016cb57505081850155016200013b565b9097929391620016f590845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601908c9291620016b4565b909150848c52868c2060078085018c1c820192018b1c0190858460021b16806200174e575b5090898893925b8281106200173f5750506200012c565b8e81558994508b91016200172f565b60001990818301918d8354928c03901b1c1690553862001728565b634e487b7160e01b8a526041825260248afd5b928b938c5b8a898383106200179c575050505050015538808080620000cf565b9091929396620017c690885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162001781565b88908c8d5b8960088210620017ed5750508184015501620000b6565b90969293916200181790845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501908a9291620017d6565b909150601b89528389206007808a0160031c8201920160031c0190601c8960021b168062001874575b5090868593925b82811062001865575050620000a2565b8b815586945088910162001855565b6000199081830191825491880360031b1c169055386200184e565b634e487b7160e01b885260418652602488fd5b634e487b7160e01b875260418552602487fd5b600080fd5b604081019081106001600160401b03821117620018d657604052565b634e487b7160e01b600052604160045260246000fd5b601f909101601f19168101906001600160401b03821190821017620018d657604052565b604051906200191f82620018ba565b600f82526e111a585b5bdb9910dd5d119858d95d608a1b6020830152565b604051906200194c82620018ba565b6011825270111a585b5bdb99131bdd5c19519858d95d607a1b6020830152565b8051156200197a5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156200197a5760400190565b8051600210156200197a5760600190565b60005b838110620019c65750506000910152565b8181015183820152602001620019b5565b604080516001600160401b036080820181811183821017620018d65783526003825260005b60608082101562001a18579060209182828601015201620019fc565b5050929180519262001a2a84620018ba565b6007845260209366707974686f6e3360c81b8582015262001a4b846200196c565b5262001a57836200196c565b5081519062001a6682620018ba565b601f918281527f736372697074732f707974686f6e2f6765745f73656c6563746f72732e7079008682015262001a9c8562001990565b5262001aa88462001990565b5062001ab484620019a1565b5262001ac083620019a1565b50815192638916046760e01b84528360248101866004830152825180915260448201908760448260051b8501019401916000905b8983831062001c7757505050505080600092038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af192831562001c6c5760009362001bc8575b505081518201918381818501940312620018b5578381015190858211620018b557019082603f83011215620018b55783820151948511620018d6578460051b9181519562001b8286850188620018ec565b86528185870193820101938411620018b55701905b82821062001ba6575050505090565b81516001600160e01b031981168103620018b557815290830190830162001b97565b9091923d8082843e62001bdc8184620018ec565b820191858184031262001c685780519087821162001c6457019082848301121562001c4d5781519287841162001c505785519462001c23908501601f1916880186620018ec565b83855286848401011162001c4d57509062001c4491858085019101620019b2565b90388062001b31565b80fd5b634e487b7160e01b82526041600452602482fd5b8280fd5b5080fd5b82513d6000823e3d90fd5b80809294965060019395976043198c8203018652885162001ca481518092818552858086019101620019b2565b8a601f1991011601019601920192018793919262001af456fe60808060405260043610156200001457600080fd5b600090813560e01c9081630a9254e41462003ee6575080631ed7831c1462003e605780632d49aa1c1462003d2857806330dd2c451462003c1257806337bdc99b1462003a155780633e5e3c23146200398f5780633f7286f414620039095780634d238c8e14620038ab5780635c2c2fed146200347f57806363323eb8146200344757806366d9a9a014620033905780637b1837de146200305157806385226c811462002f16578063871055571462002edf578063916a17c61462002e28578063951759c91462002abf5780639b21108014620022c65780639c821dc61462001b65578063a0aaa28514620017ba578063a9fb763c1462001714578063b0ed3c0014620016d2578063b5508aa91462001583578063b64544ec1462001241578063ba414fa61462001218578063c33dd9d514620008d8578063cfebf30014620006d3578063d8d527131462000543578063dd78497414620004eb578063e20c9f71146200044b578063fa7626d41462000427578063fbfb892714620003ee5763fc6c1f0214620001a257600080fd5b346200034b5760403660031901126200034b57620001bf62004330565b620001c9620062f9565b90620001ef620001d98262006397565b92600093620001e882620050f2565b52620050f2565b50604051620001fe816200438f565b60018152602036818301376200021760243591620050f2565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003ea5760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003df57620003c9575b506040519062000280826200438f565b438252836020830152823b15620003ba576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003be5790859392916200039c575b506038546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af1801562000391576200035d575b50803b1562000359578180916004604051809481936390c5013b60e01b83525af180156200034e5762000335578280f35b620003418291620043ab565b6200034b57808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b620003829060603d811162000389575b62000379818362004430565b81019062006350565b5062000304565b503d6200036d565b6040513d85823e3d90fd5b620003ab9093919293620043ab565b620003ba5790839138620002c3565b8380fd5b6040513d87823e3d90fd5b620003d790939193620043ab565b913862000270565b6040513d86823e3d90fd5b8280fd5b50346200034b5760603660031901126200034b57620004246200041062004319565b6200041a62004347565b9060043562006730565b80f35b50346200034b57806003193601126200034b5760ff60209154166040519015158152f35b50346200034b57806003193601126200034b57604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b85828210620004cb57505050620004b19250038362004430565b620004c7604051928284938452830190620042da565b0390f35b85546001600160a01b031684526001958601958895509301920162000497565b50346200034b5760203660031901126200034b57620004c76200052f6200051162004330565b6200051b6200516b565b506035546001600160a01b03169062006a5f565b9260409694969291925196879687620046ac565b50346200034b5760403660031901126200034b57806200056262004330565b6024356001600160401b0381116200068b576200058490369060040162004963565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620006ce5760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620006c3578691620006ab575b5050813b15620006a757849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003df5784916200068f575b5050602a5416803b156200068b57620006658391670de0b6b3a7640000936040519485809481936330b858b160e11b8352602060048401526024830190620045c2565b03925af180156200034e57620006785750f35b6200068390620043ab565b6200034b5780f35b5050fd5b6200069a90620043ab565b6200068b57823862000622565b8480fd5b620006b690620043ab565b620006a7578438620005db565b6040513d88823e3d90fd5b505050fd5b50346200034b5760031960203682011262000359576001600160401b0360043511620003595760e090600435360301126200034b5760405190620007178262004373565b600435600401356001600160401b03811162000359576200074090600436918135010162004727565b82526004356024810135602084015260448101356040840152606481013560608401526200077190608401620044be565b608083015260a460043501356001600160401b0381116200035957366023826004350101121562000359576004818135010135620007af8162004452565b92620007bf604051948562004430565b81845260208401923660248460051b836004350101011162000359576024816004350101935b60248460051b8360043501010185106200083357602062000821888860a08201526200081660c460043501620044cd565b60c0820152620053be565b6040516001600160a01b039091168152f35b84356001600160401b038111620003ba5760606004358401820136036023190112620003ba57604051906200086882620043bf565b600435840181016024810135835262000884906044016200435e565b60208301526001600160401b03606482866004350101013511620006a7576024926020928392620008c5903690600435890101606481013501870162004963565b60408201528152019501949050620007e5565b50346200034b576003196020368201126200035957600435906001600160401b038211620003ea5760a090823603011262000359576040519060a082018281106001600160401b03821117620012025760405262000939816004016200435e565b825262000949602482016200435e565b60208301526200095c604482016200435e565b604083015260648101356001600160401b038111620003ba57620009879060043691840101620048cf565b60608301526084810135906001600160401b038211620003ba576004620009b29236920101620048cf565b6080820152620009c1620052ea565b9060405180610d308101106001600160401b03610d3083011117620011ee57610d306200ad47823980610d308101039084f080156200039157604051806108848101106001600160401b0361088483011117620011da576108846200ba778239806108848101039085f0908115620003df5760405180611d608101106001600160401b03611d608301111762000ee657611d606201e670823980611d608101039086f0908115620003be5760405180610b3d8101106001600160401b03610b3d83011117620011c657610b3d620203d0823980610b3d8101039087f0928315620006c3576040519062000ab482620043bf565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b806007830110620011505762000b5f94549181811062000fce575b81811062000fae575b81811062000f8e575b81811062000f6e575b81811062000f4e575b81811062000f2e575b81811062000f10575b1062000efa575b50038262004430565b604082015262000b6f86620050f2565b5262000b7b85620050f2565b506040519062000b8b82620043bf565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b806007830110620010da5762000c2e94549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b604082015262000c3e8562005116565b5262000c4a8462005116565b506040519062000c5a82620043bf565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b806007830110620010645762000cfd94549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b604082015262000d0d8462005127565b5262000d198362005127565b506040519062000d2982620043bf565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b80600783011062000fee5762000dcc94549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b604082015262000ddc8362005138565b5262000de88262005138565b506040519161111e90818401918483106001600160401b0384111762000ee6579162000e2a85949262000e929462009c29873960408352604083019062005337565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b036040830151166040820152608062000e80606084015160a0606085015260a0840190620044dd565b920151906080818403910152620044dd565b039082f0801562000ed95760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b50604051903d90823e3d90fd5b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000b56565b602083811b6001600160e01b03191685529093019260010162000b4f565b604083901b6001600160e01b031916845260209093019260010162000b46565b606083901b6001600160e01b031916845260209093019260010162000b3d565b608083901b6001600160e01b031916845260209093019260010162000b34565b60a083901b6001600160e01b031916845260209093019260010162000b2b565b60c083901b6001600160e01b031916845260209093019260010162000b22565b60e083901b6001600160e01b031916845260209093019260010162000b19565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000d73565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000ca4565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000bd5565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000afe565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b634e487b7160e01b84526041600452602484fd5b634e487b7160e01b600052604160045260246000fd5b50346200034b57806003193601126200034b57602062001237620049be565b6040519015158152f35b50346200034b57606090816003193601126200034b576001600160401b03600435818111620003ea576200127a903690600401620047da565b906200128562004319565b916200129062004347565b6200129a620052aa565b90604051620012a981620043bf565b6001600160a01b0395861681526020808201889052978891620012cb62004abd565b6040820152620012db85620050f2565b52620012e784620050f2565b508660405193620012f885620043bf565b168352878284015260405190819283918160255494858152019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b8160078201106200150a5784620013a2975493838310620014e9575b838310620014c8575b838310620014a7575b83831062001486575b83831062001468575b5082821062001449575b8282106200142c575b501062001416575b509050038262004430565b6040820152620013b28262005116565b52620013be8162005116565b506040519261137c80850191821185831017620011c65791849391620013ea93620088ad863962005dd9565b039083f080156200034e571660295491816001600160601b0360a01b8416176029556040519216178152f35b6001600160e01b03191681528b91013862001397565b83811b6001600160e01b031916855290930192600101846200138f565b604084901b6001600160e01b0319168552909301926001018462001386565b84901b6001600160e01b03191685529093019260010184386200137c565b608085901b6001600160e01b03191686529481019460019092019162001373565b60a085901b6001600160e01b0319168652948101946001909201916200136a565b60c085901b6001600160e01b03191686529481019460019092019162001361565b60e085901b6001600160e01b03191686529481019460019092019162001358565b9260089295506101009060019295885463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901528d84846080928282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520195019101928c9286949592956200133c565b50346200034b57806003193601126200034b57601054620015a48162004452565b90620015b4604051928362004430565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b848310620015fc5760405180620004c78882620045e9565b604051849188549160019280841c908481168015620016c7575b8783108114620016b3578284528794939291811562001695575060011462001659575b506200164a81600196038262004430565b815201970192019195620015e4565b8b8952838920955088905b8082106200167d57508101830194506200164a62001639565b86548383018601529585019587949091019062001664565b60ff19168584015250151560051b8101830194506200164a62001639565b634e487b7160e01b8a52602260045260248afd5b91607f169162001616565b50346200034b5760203660031901126200034b57600435906001600160401b0382116200034b576020620008216200170e3660048601620047da565b62005eab565b50346200034b5760203660031901126200034b57808060405162001738816200438f565b601c81527f726577617264206d6574686f642063616c6c65642077697468202564000000006020820152604051620017a6816200178f60208201946309710a9d60e41b8652604060248401526064830190620045c2565b600435604483015203601f19810183528262004430565b51906a636f6e736f6c652e6c6f675afa5080f35b50346200034b5760c03660031901126200034b57620017d862004330565b60248035906001821015620003ba57620017f16200446a565b91620017fc62004481565b9362001807620044ad565b91604051906200181782620043f8565b60008252604051936200182a856200438f565b607b85526020928386015260405192614db7938481016001600160401b03958282108783111762001b5057908291620198b9833903906000f098891562001b1b5760018060a01b0398896001600160601b0360a01b9b168b602a541617602a556040516114c8808201908282108983111762001b3b57908291620183f1833903906000f0801562001b1b578a168b602c541617602c55604051610d30808201908282108983111762001b3b579082916200ad47833903906000f0801562001b1b578a168b602d541617602d55604051610884808201908282108983111762001b3b579082916200ba77833903906000f090811562001b1b5762001a6f60ff9688958d8f9b62001a429c828a98168091602e541617602e556200194b620052ea565b9d8e84602a5416604051906200196182620043bf565b81526000878201526200197362004ccd565b60408201526200198382620050f2565b526200198f81620050f2565b5084602c541660405190620019a482620043bf565b8152600087820152620019b662004abd565b6040820152620019c68262005116565b52620019d28162005116565b5084602d541660405190620019e782620043bf565b8152600087820152620019f962004dde565b604082015262001a098262005127565b5262001a158162005127565b506040519262001a2584620043bf565b835260008684015262001a3762004eef565b604084015262005138565b5262001a4e8d62005138565b506040519d8e62001a5f81620043db565b5216908c015260408b01620051aa565b60443560608a01521660808801521660a08601521660c0840152606460e08401526402540be400610100840152600c61012084015260006101408401526040519361137c90818601928684109084111762001b2757509184939162001ada93620088ad863962005dd9565b03906000f0801562001b1b571690818160295416176029558181602a541617602a558181602c541617602c558181602d541617602d55602e541617602e5580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b50346200034b57806003193601126200034b5760405162001b868162004414565b6003815260005b60608110620022ac575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa8015620003915783906200226d575b62001bec915062006397565b62001bf787620050f2565b5262001c0386620050f2565b5060405183815260c8600482015284818381895afa8015620003915783906200222e575b62001c33915062006397565b62001c3e8762005116565b5262001c4a8662005116565b506040519280845261012c93846004820152858184818a5afa8015620003df578490620021ef575b62001c7e915062006397565b62001c898862005127565b5262001c958762005127565b506040519562001ca58762004414565b600387526060988936888a01376040519280845281600485015287848681865afa938415620006c3578694620021b0575b5062001ce289620050f2565b6001600160a01b03948516905260405181815260c8600482015288818781875afa9081156200201c57879162002173575b508462001d208b62005116565b9116905260405181815287600482015288818781875afa9081156200201c57879162002132575b508462001d548b62005127565b911690526040519062001d678262004414565b600382528b368a8401376040519080825283600483015289828881885afa91821562002068578892620020f3575b50843b15620020275760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af180156200208f57908a91620020db575b505060405182815260c860048201528b818a818a5afa9081156200208f578a916200209e575b50863b156200209a5787604051918583521660048201528a898201528981604481838b5af180156200208f57908a9162002073575b5050604051918252600482015289818881885afa908115620020685788916200202b575b50843b15620020275785906040519283521660048201528786820152868160448183885af180156200201c5790879162002000575b5050808262001e9e62001eb293620050f2565b528262001eab8262005116565b5262005127565b526040519262001ec2846200438f565b4384528487850152813b15620006a75760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003df57918493918a9362001fe0575b506038546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200034e5762001fbf575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b82821062001f8a57888803868a01528880620004c78a8a620042da565b9193975091848062001faa83979899605f198d82030186528b5162004702565b99019201920188979695949293919362001f6d565b62001fd990873d8911620003895762000379818362004430565b5062001f44565b62001ff0919350939193620043ab565b620003ea57829188913862001f07565b6200200b90620043ab565b6200201857853862001e8b565b8580fd5b6040513d89823e3d90fd5b8780fd5b90508981813d831162002060575b62002045818362004430565b81010312620020275762002059906200633b565b3862001e56565b503d62002039565b6040513d8a823e3d90fd5b6200207e90620043ab565b6200208b57883862001e32565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d8311620020d3575b620020b8818362004430565b810103126200209a57620020cc906200633b565b3862001dfd565b503d620020ac565b620020e690620043ab565b6200208b57883862001dd7565b9091508981813d83116200212a575b6200210e818362004430565b81010312620020275762002122906200633b565b903862001d95565b503d62002102565b90508881813d83116200216b575b6200214c818362004430565b81010312620021675762002160906200633b565b3862001d47565b8680fd5b503d62002140565b90508881813d8311620021a8575b6200218d818362004430565b810103126200216757620021a1906200633b565b3862001d13565b503d62002181565b9093508781813d8311620021e7575b620021cb818362004430565b810103126200201857620021df906200633b565b923862001cd6565b503d620021bf565b508581813d831162002226575b62002208818362004430565b81010312620003ba576200222062001c7e916200633b565b62001c72565b503d620021fc565b508481813d831162002265575b62002247818362004430565b81010312620003ea576200225f62001c33916200633b565b62001c27565b503d6200223b565b508481813d8311620022a4575b62002286818362004430565b81010312620003ea576200229e62001bec916200633b565b62001be0565b503d6200227a565b602090620022b96200516b565b8282850101520162001b8d565b50346200034b5760403660031901126200034b57620022e462004330565b90620022ef62004319565b6035546001600160a01b03169290833b1562002a1357604051637903ab2760e11b815260006004820181905290948186602481670de0b6b3a7640000855af19586156200034e57600494959662002aa6575b506200234e908362006a5f565b6037546040516394074b0360e01b8152919994969295949193508791849182906001600160a01b03165afa918215620006c357869262002a7e575b506020620023b391604051809381926390ba52cf60e01b835284600484015260248301906200464f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115620006c357878791829362002a3f575b5060405163aa5106cb60e01b81529293839182916200240391906004840162006547565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115620006c357620024589291602091889162002a21575b50604051809481926390ba52cf60e01b835284600484015260248301906200464f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620006c3578692620029e2575b50036200296b57620024b492620024a6670de0b6b3a7640000620024ad9314620066f0565b156200666b565b15620066ab565b600683101562002957575060018092036200291e576037546040516394074b0360e01b8152939085908190869060049082906001600160a01b03165afa94851562000ed95762002525958391839162002900575b5060405163aa5106cb60e01b815296879283926004840162006547565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4938415620003be578594620028d6575b50906200255d60049262006397565b604051946200256c866200438f565b855260208501526037546040516394074b0360e01b81529286918291859182906001600160a01b03165afa92831562000ed957620025cb9383918391620028b8575b5060405163aa5106cb60e01b815294859283926004840162006547565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003be5785926200288a575b50620026009062006397565b604051916200260f836200438f565b82526020820152604051906200262582620043f8565b84825260405193620026378562004373565b845260208401526402540be401604084015260608481850152608091858386015260a0908186015260c0926402540be40084870152604051956200267b876200438f565b86528660208701526040519362002692856200438f565b858552875b602081106200282357505050505082620026b182620050f2565b52620026bd81620050f2565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003595760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200034e576200280b575b50506038546001600160a01b031690813b15620006a75791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b828210620027d45750505050508383809203925af180156200039157620027bc575b602082604051620027b181620027a2858201948686526040830190620065cc565b03601f19810183528262004430565b519020604051908152f35b620027c88391620043ab565b62000359578162002781565b9295975092955092602080620027f687936043198c82030186528951620065cc565b970192019201928795938a979592936200275f565b6200281690620043ab565b620003ba5783386200270e565b60209060405162002834816200438f565b604051620028428162004373565b6200284c62006571565b81526200285862006571565b848201528b60408201528b888201528b8682015287878201528b8582015281528a838201528282890101520162002697565b62002600919250620028b0903d8088833e620028a7818362004430565b8101906200651e565b9190620025f4565b620028cf91503d8085833e620028a7818362004430565b38620025ae565b600492919450620028f66200255d913d8089833e620028a7818362004430565b949192506200254e565b6200291791503d8085833e620028a7818362004430565b3862002508565b60405162461bcd60e51b8152602060048201526011602482015270756e65787065637465642073746174757360781b6044820152606490fd5b634e487b7160e01b81526021600452602490fd5b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d60201162002a18575b8162002a016020938362004430565b8101031262002a135751903862002481565b600080fd5b3d9150620029f2565b62002a3891503d808a833e620028a7818362004430565b3862002435565b925050506020813d60201162002a75575b8162002a5f6020938362004430565b8101031262002a135751858762002403620023df565b3d915062002a50565b620023b391925062002a9d6020913d808a833e620028a7818362004430565b92915062002389565b9162002ab76200234e9293620043ab565b919062002341565b50346200034b57602090816003193601126200034b5762002adf62004330565b604051614f0a908181016001600160401b03928282108483111762000ee65790829162020f0d8339039084f091821562000391576040516114c88082019082821085831117620011c657908291620183f18339039085f0908115620003df57859062002b4a620052aa565b9260405162002b5981620043bf565b6001600160a01b03968716815283810188905260405160268054808352600091825282870191907f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35945b81600784011062002dad5792849262002c71999262002c0f9554918482821062002d8e575b82821062002d6f575b82821062002d50575b82821062002d31575b82821062002d12575b82821062002cf3575b82821062002cd6575b501062002cc057509050038262004430565b604082015262002c1f85620050f2565b5262002c2b84620050f2565b50856040519162002c3c83620043bf565b168152868882015262002c4e62004abd565b604082015262002c5e8462005116565b5262002c6a8362005116565b50620051c2565b906040519261137c8085019185831090831117620011c6579184939162002c9e93620088ad863962005dd9565b039083f091821562002cb4575060405191168152f35b604051903d90823e3d90fd5b6001600160e01b03191681528d91013862001397565b83811b6001600160e01b0319168552909301926001018462002bfd565b604084901b6001600160e01b0319168552909301926001018462002bf4565b606084901b6001600160e01b0319168552909301926001018462002beb565b608084901b6001600160e01b0319168552909301926001018462002be2565b60a084901b6001600160e01b0319168552909301926001018462002bd9565b60c084901b6001600160e01b0319168552909301926001018462002bd0565b60e084901b6001600160e01b0319168552909301926001018462002bc7565b93949596976101006008929394600192875463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520194019201908c97969594939262002ba2565b50346200034b57806003193601126200034b5760135462002e498162004452565b9062002e59604051928362004430565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b83831062002ea05760405180620004c787826200451d565b60028260019260405162002eb4816200438f565b848060a01b038a5416815262002ecc858b0162005000565b8382015281520196019201919462002e88565b50346200034b5760403660031901126200034b57620004c76200052f62002f0562004330565b62002f0f62004319565b9062006a5f565b50346200034b57806003193601126200034b5760115462002f378162004452565b9062002f47604051928362004430565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b84831062002f8f5760405180620004c78882620045e9565b604051849188549160019280841c90848116801562003046575b8783108114620016b3578284528794939291811562003028575060011462002fec575b5062002fdd81600196038262004430565b81520197019201919562002f77565b8b8952838920955088905b80821062003010575081018301945062002fdd62002fcc565b86548383018601529585019587949091019062002ff7565b60ff19168584015250151560051b81018301945062002fdd62002fcc565b91607f169162002fa9565b50346200034b57600319906040368301126200034b576200307162004330565b9060249182359360018060a01b03620030d7620030a382602a5416620030966200516b565b5083603554169062006a5f565b5091969392505084603754169660405193639d3070b560e01b928386528b86806020998a938460048401528201896200464f565b03818d5afa9586156200333d578b966200335b575b5060018601809611620033485760018901809911620033485786620031148e600493620062eb565b9a60405192838092632472942560e01b82525afa9081156200333d578b916200330a575b5015620032d3576200314f87603654169262006397565b9b823b15620032cf57918b9c918b936040519e8f948593849263018f44b760e41b84526004840160409052604484016200318a908c6200464f565b9184830301908401526200319e9162004702565b03925af18015620020685797899a819a9899620032a8575b505062003207918491620031df87602a5416620031d26200516b565b5088603554169062006a5f565b509c93505098905060375416916040519586948593849384528760048501528301906200464f565b03915afa9081156200206857889162003275575b50036200323d5750620004249392916200323691146200666b565b14620066ab565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b90508281813d8311620032a0575b6200328f818362004430565b8101031262002a135751386200321b565b503d62003283565b620032bb919293949596979850620043ab565b6200202757908895949392918838620031b6565b8a80fd5b60405162461bcd60e51b8152600481018790526010818d01526f063726f73734d736746656520697320360841b6044820152606490fd5b90508681813d831162003335575b62003324818362004430565b8101031262002a1357513862003138565b503d62003318565b6040513d8d823e3d90fd5b634e487b7160e01b8b5260116004528b8bfd5b9095508681813d831162003388575b62003376818362004430565b8101031262002a1357519438620030ec565b503d6200336a565b50346200034b57806003193601126200034b57601254620033b18162004452565b90620033c1604051928362004430565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b838310620034085760405180620004c787826200451d565b6002826001926040516200341c816200438f565b848060a01b038a5416815262003434858b0162005000565b83820152815201960192019194620033f0565b50346200034b5760403660031901126200034b57620004246200346962004319565b6035546001600160a01b03169060043562006730565b50346200034b576101003660031901126200034b576200349e62004330565b600160243510156200035957620034b46200446a565b620034be62004481565b620034c8620044ad565b92600360c4351015620006a75760e4359061ffff8216820362002a135760405194620034f486620043f8565b600086526040519562003507876200438f565b607b87526020870152604051614db78082018281106001600160401b0382111762001202578291620198b9833903906000f0801562001b1b5760018060a01b03166001600160601b0360a01b602a541617602a556040516114c88082018281106001600160401b0382111762001202578291620183f1833903906000f0801562001b1b5760018060a01b03166001600160601b0360a01b602c541617602c55604051610d308082018281106001600160401b03821117620012025782916200ad47833903906000f0801562001b1b5760018060a01b03166001600160601b0360a01b602d541617602d556040516108848082018281106001600160401b03821117620012025782916200ba77833903906000f094851562001b1b57602e80546001600160a01b0319166001600160a01b03881617905561ffff9460ff936001600160401b0392839162003659620052ea565b602a54604051919b91906001600160a01b03166200367782620043bf565b8152600060208201526200368a62004ccd565b60408201526200369a8c620050f2565b52620036a68b620050f2565b50602c54604051906001600160a01b0316620036c282620043bf565b815260006020820152620036d562004abd565b6040820152620036e58c62005116565b52620036f18b62005116565b50602d54604051906001600160a01b03166200370d82620043bf565b8152600060208201526200372062004dde565b6040820152620037308c62005127565b526200373c8b62005127565b50604051906200374c82620043bf565b6001600160a01b03168152600060208201526200376862004eef565b6040820152620037788b62005138565b52620037848a62005138565b506040519a620037948c620043db565b8b526001600160a01b031660208b0152620037b560243560408c01620051aa565b60443560608b01521660808901521660a08701521660c08501521660e08301526402540be400610100830152600c610120830152620037f660c435620051b7565b60c4356101408301526040519161137c90818401928484106001600160401b03851117620012025784936200383193620088ad863962005dd9565b03906000f0801562001b1b5760018060a01b0316806001600160601b0360a01b6029541617602955806001600160601b0360a01b602a541617602a55806001600160601b0360a01b602c541617602c55806001600160601b0360a01b602d541617602d556001600160601b0360a01b602e541617602e5580f35b50346200034b5760203660031901126200034b57620038c962004330565b620038d3620062f9565b90620038e3620001d98262006397565b50606462000217604051620038f8816200438f565b6001815260203681830137620050f2565b50346200034b57806003193601126200034b57604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b858282106200396f57505050620004b19250038362004430565b85546001600160a01b031684526001958601958895509301920162003955565b50346200034b57806003193601126200034b57604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b85828210620039f557505050620004b19250038362004430565b85546001600160a01b0316845260019586019588955093019201620039db565b50346200034b576020806003193601126200035957603754604051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003be57859262003bd3575b5060016001600160401b03809316019082821162003bbd578060365416908662003a8c3362006397565b92803b15620003595762003abf9382916040518080978194636b2c1eef60e01b83528d6004840152602483019062004702565b0391600435905af192831562000ed957879362003ba0575b5050603754169360046040518096819382525afa928315620003be57859362003b60575b50811691160362003b0a575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d831162003b98575b62003b7b818362004430565b81010312620006a75762003b90829162006456565b929062003afb565b503d62003b6f565b62003bae91929350620043ab565b62002018578490863862003ad7565b634e487b7160e01b600052601160045260246000fd5b9091508381813d831162003c0a575b62003bee818362004430565b81010312620006a75762003c029062006456565b903862003a62565b503d62003be2565b50346200034b576020806003193601126200035957600435916001600160401b0391828411620003595736602385011215620003595783600401359062003c598262004452565b9162003c69604051938462004430565b8083528183019560249687600593841b83010191368311620021675788859101915b83831062003d1757505050508384905b868216600381101562003d0d578551111562003cf85762003cd1879185681fffffffffffffffe085871b168801015190620062eb565b911686811462003ce5576001019062003c9b565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b823581529181019185910162003c8b565b50346200034b5760403660031901126200034b5760043562003d4962004319565b80319062003d566200516b565b506035546001600160a01b03929062003d729084168362006a5f565b50505050929050836036541686813b156200034b5786916004604051809481936316989f6f60e21b83525af180156200201c5762003e47575b508062003dca91319462003dbe6200516b565b50603554169062006a5f565b5050505093905084820391821162003e33570362003df957620004249262003df291620062eb565b14620066f0565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b634e487b7160e01b86526011600452602486fd5b9562003e5862003dca9297620043ab565b959062003dab565b50346200034b57806003193601126200034b57604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b8582821062003ec657505050620004b19250038362004430565b85546001600160a01b031684526001958601958895509301920162003eac565b905034620003595781600319360112620003595762003ff78162003f126001600160401b03936200438f565b60018152600162003f2b602092833681830137620050f2565b526040519062003f3b8262004373565b62003f456200516b565b825284818301528460408301528460c060609382858201528260808201528460a0820152015260405162003f7981620043f8565b8581526040519062003f8b826200438f565b607b82528282015260405162003fa181620043f8565b8681526040519162003fb38362004373565b8252600a83830152670de0b6b3a764000060408301526402540be400848301526046608083015260a0820152606460c08201526001600160a01b03938491620053be565b1683620040596200170e6001600160601b0360a01b9380856035541617603555808560375416176037558085603654161760365580856038541617603855808560395416176039558085603b541617603b558085603a541617603a55620051c2565b1690818160295416176029558181602a541617602a558181602c541617602c558181602e541617602e55602d541617602d556200414e62004099620062f9565b620040a36200516b565b50604051600360621b84820152601481526200412a90620040c4816200438f565b6200411b60405191620040d783620043bf565b600a83526001600160801b0387840160148152604085019283526040519b8c958a80880152511660408601525116888401525187608084015260a0830190620045c2565b03601f19810188528762004430565b6040519562004139876200438f565b60048752838701528695620001e882620050f2565b5060646200417360405162004163816200438f565b60018152833681830137620050f2565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b15620020185760405163c88a5e6d60e01b8152600c600482015260016024820152868160448183895af180156200201c57620042c4575b508460405192620041d4846200438f565b438452830152833b15620006a7576040516303223eab60e11b815260ff60981b6004820152858160248183895af18015620006c357918693918593620042a4575b506038546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af18015620003df5762004284575b5050803b1562000359578180916004604051809481936390c5013b60e01b83525af180156200034e5762000335578280f35b816200429e92903d10620003895762000379818362004430565b62004252565b620042b4919350939193620043ab565b620006a757849183913862004215565b620042d1919550620043ab565b849338620041c3565b90815180825260208080930193019160005b828110620042fb575050505090565b83516001600160a01b031685529381019392810192600101620042ec565b602435906001600160a01b038216820362002a1357565b600435906001600160a01b038216820362002a1357565b604435906001600160a01b038216820362002a1357565b35906001600160a01b038216820362002a1357565b60e081019081106001600160401b038211176200120257604052565b604081019081106001600160401b038211176200120257604052565b6001600160401b0381116200120257604052565b606081019081106001600160401b038211176200120257604052565b61016081019081106001600160401b038211176200120257604052565b602081019081106001600160401b038211176200120257604052565b608081019081106001600160401b038211176200120257604052565b90601f801991011681019081106001600160401b038211176200120257604052565b6001600160401b038111620012025760051b60200190565b606435906001600160401b038216820362002a1357565b608435906001600160401b038216820362002a1357565b35906001600160401b038216820362002a1357565b60a4359060ff8216820362002a1357565b359060ff8216820362002a1357565b359061ffff8216820362002a1357565b90815180825260208080930193019160005b828110620044fe575050505090565b83516001600160e01b03191685529381019392810192600101620044ef565b602080820190808352835180925260409283810182858560051b8401019601946000925b85841062004553575050505050505090565b9091929394959685806200458b600193603f1986820301885286838d51878060a01b03815116845201519181858201520190620044dd565b99019401940192959493919062004541565b60005b838110620045b15750506000910152565b8181015183820152602001620045a0565b90602091620045dd815180928185528580860191016200459d565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b8483106200461e5750505050505090565b90919293949584806200463e600193603f198682030187528a51620045c2565b98019301930191949392906200460d565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106200468e575050505090565b83516001600160a01b0316855293810193928101926001016200467f565b93919695949290620046c79060c0865260c08601906200464f565b9660208501526040840152606083015260808201526006821015620046ec5760a00152565b634e487b7160e01b600052602160045260246000fd5b9060406020620047249360ff81511684520151918160208201520190620045c2565b90565b919060408382031262002a13576040519262004743846200438f565b836200474f8262004498565b815260209182810135906001600160401b03821162002a1357019280601f8501121562002a13578335620047838162004452565b9462004793604051968762004430565b818652848087019260051b82010192831162002a135784809101915b838310620047bf57505050500152565b8190620047cc846200435e565b8152019101908490620047af565b9190916101608184031262002a135760405190620047f882620043db565b81938135906001600160401b03821162002a13576200481991830162004727565b825262004829602082016200435e565b60208301526040810135600181101562002a13576040830152606081013560608301526200485a6080820162004498565b60808301526200486d60a0820162004498565b60a08301526200488060c08201620044be565b60c08301526200489360e08201620044cd565b60e0830152610100808201359083015261012080820135908160000b820362002a13578301526101408091013591600383101562002a13570152565b81601f8201121562002a1357803591620048e98362004452565b92620048f9604051948562004430565b808452602092838086019260051b82010192831162002a13578301905b82821062004925575050505090565b81356001600160e01b03198116810362002a1357815290830190830162004916565b6001600160401b0381116200120257601f01601f191660200190565b81601f8201121562002a13578035906200497d8262004947565b926200498d604051948562004430565b8284526020838301011162002a1357816000926020809301838601378301015290565b5190811515820362002a1357565b6000805460081c60ff1615620049d8575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620049fa57505090565b819250819060405182602082018381526519985a5b195960d21b60408401526040835262004a2883620043bf565b62004a646024604051809362004a536020830197630667f9d760e41b8952518092858501906200459d565b810103600481018452018262004430565b51925af1503d1562004ab4573d9062004a7d8262004947565b9162004a8d604051938462004430565b82523d81602084013e5b6020828051810103126200034b57506020620047249101620049b0565b60609062004a97565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b81600782011062004c59578462004b6297549383831062004c38575b83831062004c17575b83831062004bf6575b83831062004bd5575b83831062004bb4575b83831062004b96575b5082821062004b79575b501062004b64575b509050038362004430565b565b6001600160e01b031916815201803862004b57565b83811b6001600160e01b0319168552909301926001018462004b4f565b84901b6001600160e01b031916855290930192600101843862004b45565b606085901b6001600160e01b03191686529481019460019092019162004b3c565b608085901b6001600160e01b03191686529481019460019092019162004b33565b60a085901b6001600160e01b03191686529481019460019092019162004b2a565b60c085901b6001600160e01b03191686529481019460019092019162004b21565b60e085901b6001600160e01b03191686529481019460019092019162004b18565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162004afc565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b81600782011062004d6a578462004b6297549383831062004c385783831062004c175783831062004bf65783831062004bd55783831062004bb45783831062004b96575082821062004b7957501062004b6457509050038362004430565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162004d0c565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062004e7b578462004b6297549383831062004c385783831062004c175783831062004bf65783831062004bd55783831062004bb45783831062004b96575082821062004b7957501062004b6457509050038362004430565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162004e1d565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b81600782011062004f8c578462004b6297549383831062004c385783831062004c175783831062004bf65783831062004bd55783831062004bb45783831062004b96575082821062004b7957501062004b6457509050038362004430565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162004f2e565b906040918251809382549283835260209182840191600052826000209460005b8160078201106200507e578462004b6297549383831062004c385783831062004c175783831062004bf65783831062004bd55783831062004bb45783831062004b96575082821062004b7957501062004b6457509050038362004430565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005020565b805115620051005760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620051005760400190565b805160021015620051005760600190565b805160031015620051005760800190565b805160041015620051005760a00190565b805160051015620051005760c00190565b604051906200517a826200438f565b6060602083600081520152565b604051906200519682620043bf565b606060408360008152600060208201520152565b6001821015620046ec5752565b60031115620046ec57565b60408051620051d181620043db565b620051db6200516b565b8152600c60009283602084015283818401528360608401528360808401528360a08401528360c08401528360e08401526402540be4006101008581860152856101209381858801528161014080980152805198620052398a620043f8565b828a528151996200524a8b6200438f565b607b8b5260208b0152815199620052618b620043db565b8a526001600160a01b031660208a0152880152670de0b6b3a7640000606088015260016080880152600a60a0880152604660c0880152606460e088015286015284015282015290565b604090815191620052bb83620043bf565b600283528260005b828110620052d057505050565b602090620052dd62005187565b82828501015201620052c3565b6040519060a082018281106001600160401b038211176200120257604052600482528160005b608081106200531d575050565b6020906200532a62005187565b8282850101520162005310565b90815180825260208092019182818360051b85019501936000915b848310620053635750505050505090565b9091929394958480620053ad83856001950387528a51858060a01b038151168252838101516200539381620051b7565b8483015260408091015191606080928201520190620044dd565b980193019301919493929062005352565b90604051615c268082018281106001600160401b0382111762001202578291620127cb833903906000f0801562001b1b576040516122448082018281106001600160401b03821117620012025782916200e5a7833903906000f0801562001b1b576040516122ac8082018281106001600160401b03821117620012025782916200c2fb833903906000f0801562001b1b57604051611fe08082018281106001600160401b0382111762001202578291620107eb833903906000f090811562001b1b57604051610d308082018281106001600160401b03821117620012025782916200ad47833903906000f091821562001b1b576040516108848082018281106001600160401b03821117620012025782916200ba77833903906000f091821562001b1b5760405194620054f18662004373565b6006865260005b60c0811062005dbf57506040516200551081620043bf565b60018060a01b0380981681526000602082015260405180816020602f549283815201602f6000527fa813484aef6fb598f9f753daf162068ff39ccea4075cb95e1a30f86995b5b7ee926000905b80600783011062005d4a57620055b694549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b6040820152620055c687620050f2565b52620055d286620050f2565b508660405191620055e383620043bf565b1681526000602082015260405180816020603054928381520160306000527f6ff97a59c90d62cc7236ba3a37cd85351bf564556780cf8c1157a220f31f0cbb926000905b80600783011062005cd5576200568094549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b6040820152620056908662005116565b526200569c8562005116565b508560405191620056ad83620043bf565b1681526000602082015260405180816020603154928381520160316000527fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc926000905b80600783011062005c60576200574a94549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b60408201526200575a8562005127565b52620057668462005127565b5084604051916200577783620043bf565b1681526000602082015260405180816020603254928381520160326000527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff697926000905b80600783011062005beb576200581494549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b6040820152620058248462005138565b52620058308362005138565b5083604051916200584183620043bf565b1681526000602082015260405180816020603454928381520160346000527f46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c1926000905b80600783011062005b7657620058de94549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b6040820152620058ee8362005149565b52620058fa8262005149565b5082604051916200590b83620043bf565b1681526000602082015260405180816020603354928381520160336000527f82a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a82926000905b80600783011062005b0157620059a894549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b6040820152620059b8826200515a565b52620059c4816200515a565b5060405190611b8c808301918383106001600160401b038411176200120257620059fd9162006d21853960408352604083019062005337565b90602081830391015262005a1b855160e0835260e08301906200464f565b9060208601516020820152604086015160408201526060808701518183015260ff608088015116608083015260a08701519282810360a0840152835190818152602081016020808460051b8401019601936000925b84841062005ab25750505050505060c061ffff818596979801511691015203906000f0801562001b1b5716806001600160601b0360a01b603554161760355590565b90919293949660208062005af06001938660408f8e601f198a8603018c525190815185528682015116868501520151918160408201520190620045c2565b990194019401929493919062005a70565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200594f565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005885565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620057bb565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620056f1565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005627565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200555d565b60209062005dcc62005187565b82828a01015201620054f8565b9062005dee9060408352604083019062005337565b90602081830391015262005e0c82516101608084528301906200464f565b6020808401516001600160a01b03169083015260408301519092906001811015620046ec576040830152606081015160608301526001600160401b0380608083015116608084015260a08201511660a083015260ff60c08201511660c083015261ffff60e08201511660e083015261010080820151908301526101208082015160000b90830152610140809101519162005ea683620051b7565b015290565b60405190614db791828101928184106001600160401b038511176200120257620198b9823980600093039083f09081156200034e576040516114c8808201908282106001600160401b0383111762000ee657908291620183f18339039084f080156200039157604051610884808201908282106001600160401b03831117620011c6579082916200ba778339039085f0908115620003df57604051610d30808201908282106001600160401b03831117620062d7579082916200ad478339039086f0908115620003be5762005f7f620052ea565b946040519062005f8f82620043bf565b6001600160a01b031681526020810187905262005fab62004ccd565b604082015262005fbb86620050f2565b5262005fc785620050f2565b506040519062005fd782620043bf565b6001600160a01b031681526020810186905262005ff362004abd565b6040820152620060038562005116565b526200600f8462005116565b50604051906200601f82620043bf565b60018060a01b03168152846020820152604051808160206033549283815201603389527f82a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a829289905b8060078301106200626257620060c094549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b6040820152620060d08462005127565b52620060dc8362005127565b5060405190620060ec82620043bf565b60018060a01b03168152836020820152604051808160206034549283815201603488527f46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c19288905b806007830110620061ed576200618d94549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b60408201526200619d8362005138565b52620061a98262005138565b506040519161137c808401908482106001600160401b0383111762000ee65791849391620061dd93620088ad863962005dd9565b039082f090811562002cb4575090565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006134565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006067565b634e487b7160e01b88526041600452602488fd5b9190820180921162003bbd57565b6040519062006308826200438f565b600182528160005b602090818110156200633657602091620063296200516b565b9082850101520162006310565b505050565b51906001600160a01b038216820362002a1357565b80929103916060831262002a135760406200636b82620049b0565b93601f19011262002a1357604080519162006386836200438f565b602081015183520151602082015290565b6001600160401b0390620063aa6200516b565b506200643d6040918251906001600160601b03199060601b16602082015260148152620063d7816200438f565b6200642e835191620063e983620043bf565b600a83526001600160801b036020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a0830190620045c2565b03601f19810184528362004430565b51906200644a826200438f565b60048252602082015290565b51906001600160401b038216820362002a1357565b919060408382031262002a13576040519262006487846200438f565b83620064938262006456565b815260209182810151906001600160401b03821162002a1357019280601f8501121562002a13578351620064c78162004452565b94620064d7604051968762004430565b818652848087019260051b82010192831162002a135784809101915b8383106200650357505050500152565b819062006510846200633b565b8152019101908490620064f3565b9060208282031262002a135781516001600160401b03811162002a13576200472492016200646b565b90620065616020919493946040845260408401906200464f565b6001600160a01b03909416910152565b6040519062006580826200438f565b816200658b6200516b565b81526020620065996200516b565b910152565b62004724916020620065ba83516040845260408401906200464f565b92015190602081840391015262004702565b906020808351936040845260c062006658620065f6875160e060408901526101208801906200659e565b620066138589015191603f1992838a83030160608b01526200659e565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152620045c2565b9501516101008501520151151591015290565b156200667357565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b15620066b357565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b15620066f857565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b0380841694939190853b1562002a135781604093845197637903ab2760e11b89528860248160009788948560048401525af197881562006a555760049596979862006a38575b50906200678c84928862006a5f565b9993949b9296915096603754168a51938480926394074b0360e01b82525afa9182156200699e57879262006a18575b5073__$a0fe38a9a81205afccc10810b09a4d3f45$__89519a8b926390ba52cf60e01b918285528460209e8f9283600483015260248201620067fd916200464f565b0381865af493841562006a0e57908a918295620069d2575b508c5163aa5106cb60e01b81529495859182916200683891906004840162006547565b0381855af4928315620069c85791620068739493918d938b93620069a8575b508c51809681948293835286600484015260248301906200464f565b03915af49182156200699e57879262006969575b5003620068f35791620024a6620024ad92620068a5959414620066f0565b6006821015620029575750600103620068bc575050565b60649250519062461bcd60e51b825260048201526011602482015270756e65787065637465642073746174757360781b6044820152fd5b865162461bcd60e51b815260048101899052604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091508981813d831162006996575b62006984818362004430565b8101031262002a135751903862006887565b503d62006978565b89513d89823e3d90fd5b620069c09193503d808d833e620028a7818362004430565b913862006857565b8b513d8b823e3d90fd5b8e809296508193503d831162006a06575b620069ef818362004430565b8101031262002a1357519289906200683862006815565b503d620069e3565b8c513d8c823e3d90fd5b62006a309192503d8089833e620028a7818362004430565b9038620067bb565b9362006a4b6200678c95939293620043ab565b939190916200677d565b85513d86823e3d90fd5b9062006a6a6200516b565b5060018060a01b0380911690816001600160601b0360a01b8181603854161760385581816036541617603655603754161760375560409182519384916394074b0360e01b835282600460009788935afa91821562006cd35762006b0592918691829362006d00575b50855163aa5106cb60e01b81529373__$a0fe38a9a81205afccc10810b09a4d3f45$__9385928392916004840162006547565b0381845af491821562006cd357859262006cdd575b5062006b4c91926037541692845180926390ba52cf60e01b82528180602096879586600484015260248301906200464f565b03915af490811562006cd357908591829162006c9c575b50602485518095819363017187cd60e11b835260048301525afa91821562006c8f57849262006bcc575b505060c0810151928151946001600160401b039460a0866060860151169660808601511695850151940151926006841015620029575750959493929190565b9091503d8085833e62006be0818362004430565b8101908281830312620006a75780516001600160401b039182821162002167570160e081840312620020185784519362006c1a8562004373565b815185528082015190850152848101518585015262006c3c6060820162006456565b606085015262006c4f6080820162006456565b608085015260a08101516006811015620021675760a085015260c0810151918211620020185762006c829291016200646b565b60c0820152388062006b8d565b50505051903d90823e3d90fd5b809250838092503d831162006ccb575b62006cb8818362004430565b81010312620006a7578490513862006b63565b503d62006cac565b84513d87823e3d90fd5b62006b4c925062006cf9903d8088833e620028a7818362004430565b9162006b1a565b62006d189193503d8084833e620028a7818362004430565b913862006ad256fe60806040523462000cb55762001b8c80380380916200002082608062000f1e565b6080396040811262000cb5576080516001600160401b03811162000cb55760808201609f8201121562000cb5578060800151906200005e8262000f42565b916200006e604051938462000f1e565b8083526020830180928560800160208460051b8360800101011162000cb55760a08101915b60a0600585901b830101831062000ddc57505060a0519150506001600160401b03811162000cb55760e08185031262000cb5576040519360e085016001600160401b03811186821017620005a857604081905260808301516001600160401b03811162000cb557836080010160408184608001031262000cb557620001188262000f02565b80516001600160401b038116810362000cb55782526020810151906001600160401b03821162000cb5570182608001601f8201121562000cb557805190620001608262000f42565b9162000170604051938462000f1e565b80835260208084019160051b8301019185608001831162000cb557602001905b82821062000dc1575050506101008781019190915290865260a0830151602087015260c0830151604087015260e0830151606087015282015160ff8116810362000cb55760808601526101208201516001600160401b03811162000cb55760808201609f84830101121562000cb55780836080010151620002118162000f42565b9262000221604051948562000f1e565b818452602084016080820160a0878601600586901b01011162000cb55760a086850101905b60a0878601600586901b0101821062000cba5789898960c08a8a60a0860152608001015161ffff8116810362000cb55760c084015260408301511562000ca35760208301511562000c915760ff6080840151166033811090811562000c85575b5062000c73577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b036020820190811190821117620005a8576020810160405260008152825160005b818110620006185750506040519260608401906060855251809152608084019060808160051b86010193916000905b828210620005be57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806200037e8a8a60006020850152838203604085015262001026565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549091169091179055602c805464ffffffffff1916600217905581518051601980546001600160401b0319166001600160401b039283161790559101518051918211620005a857680100000000000000008211620005a857602090601a5483601a5580841062000587575b5001601a600052602060002060005b83811062000569576200055960a0866040810151601b556020810151601e556060810151601c5560ff60808201511660ff19601d541617601d556001600b5560016012556064601f55600a60018060401b0319602054161760205560c081015162ffff006021549160081b169062ffff001916176021556801000000000000000160018060801b0319602a541617602a550151604051906200054a8262000f02565b815260006020820152620013fe565b604051610133908162001a198239f35b82516001600160a01b031681830155602090920191600101620004a8565b620005a190601a6000528484600020918201910162000f94565b8462000499565b634e487b7160e01b600052604160045260246000fd5b9091929460208062000609600193607f198b8203018652606060408b51878060a01b038151168452620005f8868201518786019062000fd8565b015191816040820152019062000fe6565b97019201920190929162000337565b604062000626828762000fad565b5101516001600160a01b036200063d838862000fad565b5151169080511562000c5a57602062000657848962000fad565b510151600381101562000c4457806200088157508115620008565761ffff60008051602062001b4c8339815191525416620006d4604051620006998162000ee6565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b6040820152846200107f565b8151916000915b838310620006f35750505050506001905b0162000308565b6001600160e01b031962000708848462000fad565b5116600081815260008051602062001b6c83398151915260205260409020549091906001600160a01b03166200083d57620007ab6040516200074a8162000f02565b87815261ffff929092166020808401828152600086815260008051602062001b6c83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b4c833981519152549168010000000000000000831015620005a8576200081290620007f560019485810160008051602062001b4c833981519152556200104d565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000827578101920191620006db565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200087d90602483019062000fe6565b0390fd5b60018103620009fa57508115620009d357620008e6604051620008a48162000ee6565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b6040820152836200107f565b80519060005b828110620009015750505050600190620006ec565b6001600160e01b031962000916828462000fad565b5116600081815260008051602062001b6c83398151915260205260409020546001600160a01b0316308114620009ba57858114620009a157156200098957600090815260008051602062001b6c8339815191526020526040902080546001600160a01b03191685179055600101620008ec565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200087d90602483019062000fe6565b6002810362000c22575060008051602062001b4c83398151915254918062000c0a575080519060005b82811062000a385750505050600190620006ec565b6001600160e01b031962000a4d828462000fad565b5116908160005260008051602062001b6c8339815191526020526040600020946040519562000a7c8762000f02565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bf15785516001600160a01b0316301462000bd8578015620008275760001901948561ffff6020830151160362000b55575b5060008051602062001b4c8339815191525491821562000b3f576001926000190162000afa816200104d565b63ffffffff82549160031b1b1916905560008051602062001b4c8339815191525560005260008051602062001b6c833981519152602052600060408120550162000a23565b634e487b7160e01b600052603160045260246000fd5b62000bd19061ffff602062000b6a896200104d565b90549060031b1c60e01b9262000b8a84620007f58585850151166200104d565b01516001600160e01b0319909216600090815260008051602062001b6c83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000ace565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c4290600483019062000fd8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b606491501184620002a6565b60405163312f8e0560e01b8152600490fd5b6040516368f7a67560e11b8152600490fd5b600080fd5b8151906001600160401b03821162000cb557606088870183018503601f19011262000cb5576040519162000cee8362000ee6565b868901810160a0810151845262000d089060c00162000f5a565b602084015260e089880182010151906001600160401b03821162000cb557878a6080010101019084608001603f8301121562000cb5576020820151906001600160401b03821162000dac576040519362000d6d601f8401601f19166020018662000f1e565b828552866080016040848601011162000cb5578462000d99602096948796604088809801910162000f6f565b6040820152815201920191905062000246565b60246000634e487b7160e01b81526041600452fd5b6020809162000dd08462000f5a565b81520191019062000190565b82516001600160401b03811162000cb557606090830160808101908903601f1901821362000cb5576040519162000e138362000ee6565b62000e216020830162000f5a565b83526040820151600381101562000cb5576020840152810151906001600160401b03821162000cb5570188608001603f8201121562000cb55760208101519062000e6b8262000f42565b9162000e7b604051938462000f1e565b808352602083018b60800160408360051b8501011162000cb55760408301905b60408360051b850101821062000ec35750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000cb55781526020918201910162000e9b565b606081019081106001600160401b03821117620005a857604052565b604081019081106001600160401b03821117620005a857604052565b601f909101601f19168101906001600160401b03821190821017620005a857604052565b6001600160401b038111620005a85760051b60200190565b51906001600160a01b038216820362000cb557565b60005b83811062000f835750506000910152565b818101518382015260200162000f72565b81811062000fa0575050565b6000815560010162000f94565b805182101562000fc25760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c445752565b90815180825260208080930193019160005b82811062001007575050505090565b83516001600160e01b0319168552938101939281019260010162000ff8565b90602091620010418151809281855285808601910162000f6f565b601f01601f1916010190565b9060008051602062001b4c833981519152805483101562000fc257600052601c60206000208360031c019260021b1690565b803b156200108b575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200087d90604483019062001026565b908082519081815260208091019281808460051b8301019501936000915b848310620010f05750505050505090565b909192939495848062001133600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062001026565b9801930193019194939290620010df565b90600182811c9216801562001176575b60208310146200116057565b634e487b7160e01b600052602260045260246000fd5b91607f169162001154565b9190601f81116200119157505050565b620011c0926000526020600020906020601f840160051c83019310620011c2575b601f0160051c019062000f94565b565b9091508190620011b2565b90808214620012b657620011e2815462001144565b906001600160401b038211620005a85781906200120c8262001205865462001144565b8662001181565b600090601f831160011462001246576000926200123a575b50508160011b916000199060031b1c1916179055565b01549050388062001224565b81526020808220858352818320935090601f1985169083905b8282106200129c57505090846001959493921062001282575b505050811b019055565b015460001960f88460031b161c1916905538808062001278565b84958192958501548155600180910196019401906200125f565b5050565b60045481101562000fc25760046000526003602060002091020190600090565b90620013e85781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b038311620005a85762001346836200133f875462001144565b8762001181565b81601f841160011462001382575092829391839260009462001376575b50501b916000199060031b1c1916179055565b01519250388062001363565b919083601f1981168760005284600020946000905b88838310620013cd5750505010620013b357505050811b019055565b015160001960f88460031b161c1916905538808062001278565b85870151885590960195948501948793509081019062001397565b634e487b7160e01b600052600060045260246000fd5b60409081519060209081835262001420815185848601526060850190620010c1565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200178d575b505060049182549168010000000000000000958684116200177857600654846006558085106200168e575b50600093858552868520600686528786209086905b838210620016385750505050808854169160018060401b03199283600754161760075583515193865498865b868110620015b657505050511690875416178655808511620014f9575b505050505050565b84811015620014f15782548015620015a35760001901906200151b82620012ba565b92909262001591578383558360026001948286820155016200153e815462001144565b8062001551575b505050845501620014f9565b82601f8083116001146200156d57505050555b83388062001545565b8382528a82209391926200158991018d1c840188850162000f94565b555562001564565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ed5780620015e6620015d3600193865162000fad565b51620015df83620012ba565b90620012da565b01620014d4565b620015fa81845162000fad565b51895483811015620016255760019291620015df828d866200161f95019055620012ba565b620015e6565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001655575b6003809101930191019091620014a8565b805484558180850190838060a01b039083015416838060a01b0319825416179055620016886002808301908601620011cd565b62001644565b6003908082029082820403620017635785820282810487036200174e57886000916006835281832093840193015b8c848210620016d057505050505062001493565b85928491828455600183818601556002850191620016ef835462001144565b918262001706575b505050505050018990620016bc565b8591601f8085116001146200172a5750505050509050555b828b388f8082620016f7565b859496849662001746955286209601901c850190850162000f94565b55556200171e565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b858351168660075416908181146200191357106200190257815191620017b38362000f02565b600454620017c18162000f42565b91620017d08151938462000f1e565b81835287830190600460005288600020906000925b84841062001819575050509184525050848201526200180590836200191e565b6200181257388062001468565b5050505050565b8a8d835190620018298262000ee6565b8554825260018060a01b0360018701541683830152600286018551916000918054620018558162001144565b8086529260018216918215620018df5750506001146200189b575b50509181620018886001969360039695038262000f1e565b86820152815201930193019291620017e5565b60009081528581209092505b818310620018c057505081018301816200188862001870565b8060019196929394959654838688010152019201908f949392620018a7565b60ff19168689015292151590921b84018601925083915062001888905062001870565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b03918216911603620019d0576200194981620019d8565b6200195484620019d8565b03620019d05751805183515103620019d057620019c9620019bc9160405190816200198a868201928784526040830190620010c1565b0391620019a0601f199384810183528262000f1e565b51902094516040519384918683019687526040830190620010c1565b0390810183528262000f1e565b5190201490565b505050600090565b8051519060009182915b818310620019f05750505090565b90919262001a0084835162000fad565b515181018091116200082757926001019190620019e256fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220e59c2630963e949be385777de1611b923486901fdbf3970ac63167b49cdbae2a64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd26080604052346106715761137c803803809161001c826080610faf565b60803960408112610671576080516001600160401b0381116106715760808201609f8201121561067157806080015161005481610fd2565b906100626040519283610faf565b8082526020820180938560800160208460051b836080010101116106715760a08101915b60a0600585901b8301018310610e5457505060a051939150506001600160401b03831161067157610160938381038513610671576040519485016001600160401b0381118682101761075d5760405260808401516001600160401b038111610671576100fa91608001908560800101611011565b845261010860a08401610fe9565b6020850181905260c0840151600181101561067157604086015260e084015160608601526101396101008501610ffd565b608086015261014b6101208501610ffd565b60a086015261014084015160ff811681036106715760c086015261016084015161ffff811681036106715760e0860152610100938481608001015185870152610120816080010151908160000b8203610671576101409161012088015260800101516003811015610671576101408601526001600160a01b031615610e425760a08401516001600160401b031615610e305760016101408501516101ee816110b4565b6101f7816110b4565b141580610e24575b610e125760ff60c08501511660338110908115610e07575b50610df557601261012085015160000b13610de3577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111761075d576020810160405260008152825160005b8181106107d55750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061077f5788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67389806102fa8b8b600060208501528382036040850152611181565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054909116821790556101408301516103be816110b4565b6103c7816110b4565b14610773575b81518051601080546001600160401b0319166001600160401b0392831617905560209190910151805191821161075d5768010000000000000000821161075d5760115482601155808310610728575b506020016011600052602060002060005b83811061070b57858560018060a01b03602083015116600e5490604084015160018110156106f5576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040516104e881610f79565b6010546001600160401b0316815260405160118054808352600091825260008051602061131c83398151915291839160208301915b8181106106d357505061053292500382610faf565b6020820152610574600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518093819263aa5106cb60e01b83526040600484015260448301906110be565b3060248301520381855af490811561067e5760009161068a575b506020906105b89260405180809581946390ba52cf60e01b835286600484015260248301906110be565b03915af490811561067e57600091610647575b50600d55610140810151906105df826110b4565b6105e8826110b4565b60ff62ffff0060e0601354936064600855600a60018060401b03196009541617600955015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c5560405160eb90816112318239f35b90506020813d602011610676575b8161066260209383610faf565b810103126106715751826105cb565b600080fd5b3d9150610655565b6040513d6000823e3d90fd5b90503d806000833e61069c8183610faf565b810191602082840312610671578151916001600160401b038311610671576105b8936020936106cb9201611011565b91509161058e565b84546001600160a01b031683526001948501948694506020909301920161051d565b634e487b7160e01b600052602160045260246000fd5b82516001600160a01b03168183015560209092019160010161042d565b601160005260008051602061131c833981519152908382015b818301811061075157505061041c565b60008155600101610741565b634e487b7160e01b600052604160045260246000fd5b600060608301526103cd565b909192946020806107c7600193607f198b8203018652606060408b51878060a01b038151168452858101516107b3816110b4565b868501520151918160408201520190611143565b9701920192019092916102b5565b60406107e18287611119565b5101516001600160a01b036107f68388611119565b51511690805115610dca57602061080d8489611119565b510151610819816110b4565b610822816110b4565b80610a24575081156109fb5761ffff60008051602061133c83398151915254169161088c60405161085281610f94565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b6040820152826111f1565b8151916000935b8385106108a95750505050506001905b01610287565b6001600160e01b03196108bc8684611119565b5116600081815260008051602061135c83398151915260205260409020546001600160a01b03166109e3576109526040516108f681610f79565b85815261ffff84166020808301918252600085815260008051602061135c833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b60008051602061133c83398151915254906801000000000000000082101561075d576109948260016109b1940160008051602061133c833981519152556111c1565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff808216146109cd57600161ffff81921601940193610893565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610a20906024830190611143565b0390fd5b610a2d816110b4565b60018103610b9457508115610b6f57610a8c604051610a4b81610f94565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b6040820152836111f1565b80519060005b828110610aa557505050506001906108a3565b6001600160e01b0319610ab88284611119565b5116600081815260008051602061135c83398151915260205260409020546001600160a01b0316308114610b5657858114610b3d5715610b2557600090815260008051602061135c8339815191526020526040902080546001600160a01b03191685179055600101610a92565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610a20906024830190611143565b610b9d816110b4565b60028103610daa575060008051602061133c833981519152549180610d92575080519060005b828110610bd657505050506001906108a3565b6001600160e01b0319610be98284611119565b5116908160005260008051602061135c83398151915260205260406000209460405195610c1587610f79565b546001600160a01b03811680885260a09190911c61ffff16602088015215610d795785516001600160a01b03163014610d605780156109cd576000190180958161ffff60208301511603610ce5575b505060008051602061133c83398151915254918215610ccf5760019260001901610c8d816111c1565b63ffffffff82549160031b1b1916905560008051602061133c8339815191525560005260008051602061135c8339815191526020526000604081205501610bc3565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610cf6610d59946111c1565b90549060031b1c60e01b92610d13846109948585850151166111c1565b01516001600160e01b0319909216600090815260008051602061135c83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610c64565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610dc3816110b4565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610217565b6040516368f7a67560e11b8152600490fd5b506060840151156101ff565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161067157606090830160808101908903601f1901821361067157604051918083016001600160401b03811184821017610f6457604052610ea260208301610fe9565b8352604082015160038110156106715760208401528101516001600160401b0381116106715789608001603f8284010112156106715760208183010151610ee881610fd2565b92610ef66040519485610faf565b81845260208401908c60800160408460051b86840101011161067157604084820101915b60408460051b86840101018310610f435750505050506040820152815260209283019201610086565b82516001600160e01b03198116810361067157815260209283019201610f1a565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b0382111761075d57604052565b606081019081106001600160401b0382111761075d57604052565b601f909101601f19168101906001600160401b0382119082101761075d57604052565b6001600160401b03811161075d5760051b60200190565b51906001600160a01b038216820361067157565b51906001600160401b038216820361067157565b9190604083820312610671576040519261102a84610f79565b8361103482610ffd565b815260208281015190926001600160401b03821161067157019280601f8501121561067157835161106481610fd2565b946110726040519687610faf565b818652848087019260051b8201019283116106715784809101915b83831061109c57505050500152565b81906110a784610fe9565b815201910190849061108d565b600311156106f557565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b8281106110fc575050505090565b83516001600160a01b0316855293810193928101926001016110ee565b805182101561112d5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b828110611163575050505090565b83516001600160e01b03191685529381019392810192600101611155565b919082519283825260005b8481106111ad575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161118c565b9060008051602061133c833981519152805483101561112d57600052601c60206000208360031c019260021b1690565b803b156111fc575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610a2090604483019061118156fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122034477731f6063883c0c4e645241b575decdff772ed0eed5c444e648eaad09a2e64736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610ce35761111e8038038061001981610dcf565b928339810190604081830312610ce35780516001600160401b038111610ce35781019082601f83011215610ce35781519061005b61005683610df4565b610dcf565b92602084848152016020819460051b83010191868311610ce35760208101915b838310610ce857505050506020810151906001600160401b038211610ce3570160a081850312610ce3576040519360a085016001600160401b0381118682101761051c576040526100cb82610e0b565b85526100d960208301610e0b565b60208601526100ea60408301610e0b565b604086015260608201516001600160401b038111610ce3578161010e918401610e1f565b606086015260808201516001600160401b038111610ce3576101309201610e1f565b608084015282516001600160a01b031615610cd15760208301516001600160a01b031615610cbf5760408301516001600160a01b031615610cbf577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b03191633179055604051602081016001600160401b0381118282101761051c5760405260008152825160005b8181106106885750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061063357877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806102338a8a600060208501528382036040850152610efb565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b60009081527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549092168317909155835181546001600160a01b039182166001600160a01b0319918216179092559284015182549084169082161782556040840151600280549190941691161782556060830151805192939091906001600160401b03841161051c57680100000000000000009081851161051c5760039384548686558087106105d7575b5060200184600052602060002086861c9060005b828110610586575060071997808916900380610532575b50505050608001518051916001600160401b03831161051c57821161051c57600454826004558083106104a3575b506020016004600052816020600020941c9460005b8681106104525750821680830392036103fa575b6040516101339081610fab8239f35b91906000956000905b82821061041c57505050505001558080808080806103eb565b9091926020610446869983975160e01c9086861b60031b9163ffffffff809116831b921b19161790565b98019493920190610403565b84906000805b8a6008821061046d57505081880155016103d7565b610496908794959383602094995160e01c921b60031b9163ffffffff809116831b921b19161790565b9201940190869291610458565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6007918201861c8101918401861c01601c84891b1680610502575b5084905b8281106104f65750506103c2565b600081550184906104e8565b6000199081830191825491602003891b1c169055886104e4565b634e487b7160e01b600052604160045260246000fd5b9260009360005b888c83831061055357505050505001556080878080610394565b61057c908598846020949596975160e01c921b60031b9163ffffffff809116831b921b19161790565b9601929101610539565b86906000805b8c600882106105a1575050818401550161037d565b6105ca9088949593836020949a5160e01c921b60031b9163ffffffff809116831b921b19161790565b920195019088929161058c565b8560005260206000206007808901881c82019201871c0190601c888a1b1680610619575b5085905b82811061060d575050610369565b600081550185906105ff565b60001990818301918254916020038a1b1c169055896105fb565b9091929460208061067a600193607f198b8203018652606060408b51878060a01b03815116845261066a8682015187860190610eb0565b0151918160408201520190610ebd565b9701920192019092916101ef565b60406106948287610e86565b5101516001600160a01b036106a98388610e86565b51511690805115610ca65760206106c08489610e86565b5101516003811015610c9057806108de575081156108b55761ffff6000805160206110de83398151915254166107316106f7610db0565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610f6b565b8151916000915b83831061074e5750505050506001905b016101c1565b6107588383610e86565b516001600160e01b0319811660009081526000805160206110fe83398151915260205260409020549091906001600160a01b03166108935761080661079b610d91565b87815261ffff9290921660208084018281526001600160e01b0319861660009081526000805160206110fe83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b6000805160206110de83398151915254916801000000000000000083101561051c576108686108496001948581016000805160206110de83398151915255610f3b565b909260e01c9083549060031b9163ffffffff809116831b921b19161790565b905561ffff811461087d578101920191610738565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b81526001600160e01b031983166004820152602490fd5b6040516302b8da0760e21b8152602060048201529081906108da906024830190610ebd565b0390fd5b60018103610a4157508115610a1c576109396108f8610db0565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610f6b565b80519060005b8281106109525750505050600190610748565b6001600160e01b03196109658284610e86565b511660008181526000805160206110fe83398151915260205260409020546001600160a01b0316308114610a03578581146109ea57156109d25760009081526000805160206110fe8339815191526020526040902080546001600160a01b0319168517905560010161093f565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906108da906024830190610ebd565b60028103610c7057506000805160206110de833981519152549180610c58575080519060005b828110610a7a5750505050600190610748565b6001600160e01b0319610a8d8284610e86565b511690816000526000805160206110fe833981519152602052604060002094610ab4610d91565b95546001600160a01b03811680885260a09190911c61ffff16602088015215610c3f5785516001600160a01b03163014610c2657801561087d576000190180958161ffff60208301511603610b85575b50506000805160206110de83398151915254918215610b6f5760019260001901610b2d81610f3b565b63ffffffff82549160031b1b191690556000805160206110de833981519152556000526000805160206110fe8339815191526020526000604081205501610a67565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610b96610c1f94610f3b565b90549060031b1c92610bd3610baf848484015116610f3b565b63ffffffff87939293169083549060031b9163ffffffff809116831b921b19161790565b9055015160e09290921b6001600160e01b03191660009081526000805160206110fe83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610b04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610c8e906004830190610eb0565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516307a0435160e51b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b600080fd5b82516001600160401b038111610ce35782019060609081601f19848c030112610ce357604051918083016001600160401b03811184821017610d7c57604052610d3360208501610e0b565b835260408401516003811015610ce3576020840152830151916001600160401b038311610ce357610d6c8b602080969581960101610e1f565b604082015281520192019161007b565b60246000634e487b7160e01b81526041600452fd5b60408051919082016001600160401b0381118382101761051c57604052565b60405190606082016001600160401b0381118382101761051c57604052565b6040519190601f01601f191682016001600160401b0381118382101761051c57604052565b6001600160401b03811161051c5760051b60200190565b51906001600160a01b0382168203610ce357565b9080601f83011215610ce357815190610e3a61005683610df4565b9182938184526020808095019260051b820101928311610ce3578301905b828210610e66575050505090565b81516001600160e01b031981168103610ce3578152908301908301610e58565b8051821015610e9a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906003821015610c905752565b90815180825260208080930193019160005b828110610edd575050505090565b83516001600160e01b03191685529381019392810192600101610ecf565b919082519283825260005b848110610f27575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610f06565b906000805160206110de8339815191528054831015610e9a57600052601c60206000208360031c019260021b1690565b803b15610f76575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906108da906044830190610efb56fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b0b1bfa760488d138ca9ff61961c26b6d50e21d751087ca61ff93b367084c60e64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd26080806040523461001657610d14908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c634300081300336080806040523461001657610868908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c634300081300336080806040523461001657612290908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114d15781630338150f1461148b57816305aff0b31461146457816306572c1a1461143357816306c468531461141457816322180594146113f557816324729425146113d65781632da5794a1461135d578163335eb62a14611160578163375b3c0a1461114157816341b6a2e8146111165781634aa8f8a5146110f7578163544dddff146110cf578163599c7bd1146110ad5781635d02968514610f965781636547cd6414610f6b57816369e737fd14610f4c5781636ad21bb014610e6e578163767ee5f414610df45781637edeac9214610da55781638789f83b14610d7a5781638cfd78e714610cea57816394074b0314610c345781639704276614610a935781639d3070b514610a4d5781639e530b5714610a1b578163a2b67158146109f0578163a517218f1461096c578163a9294bdd146107d0578163ac12d76314610792578163b1ba49b01461076a578163b3ab3f741461073f578163b9ee5842146106a2578163c66c66a114610651578163ca41d5ce146104ed578163d6c5c3971461037d578163dd81b5cf146102a8575063f3229131146101c557600080fd5b346102a457816003193601126102a4576101dd611e81565b508051906101ea826118ea565b6006546101f68161195c565b6102028351918261193b565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b8282106102625750505061025e945083526001600160401b03600754169083015251918291826117c3565b0390f35b6003856001928851610273816118cf565b8b548152848060a01b03858d0154168382015261029260028d01611bcc565b8a820152815201980191019096610233565b5080fd5b919050346103795760209182600319360112610375576102c6611ba5565b50358352600982528083209260038251946102e0866118cf565b6102e981611afe565b8652600281015485870152018054906103018261195c565b9261030e8551948561193b565b828452908152848120858085015b84841061033b5786890186905286518281528061025e8185018c61172a565b600191600d91885161034c816118ea565b61035586611ce3565b815260ff600c87015416151583820152815201920192019190869061031c565b8380fd5b8280fd5b8383346102a457816003193601126102a457610397611b79565b506103a0611b79565b50601e549081156104da576001600160401b03918083431604600181018091116104c757906103ce91612231565b80845261042c6020809660088252848720908551966103ec8861189e565b816103f684611afe565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612083565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104bc578095610475575b50508160609161025e94935196879615875286015284015260608301906115ef565b909194508582813d83116104b5575b61048e818361193b565b810103126104b2575061025e92916104a7606092611ec6565b949181939450610453565b80fd5b503d610484565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b919050346103795760203660031901126103795781359161050c611b79565b50610515611e9b565b508284526008602052818420926001600160401b03828451956105378761189e565b61054081611afe565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af4908115610647579061025e9291856105c79691818094610617575b50506105fc610609939451978897610100808a528901906115ef565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a52565b9083820360e0850152611a8f565b61060994506105fc935061063d92503d8091833e610635818361193b565b810190611ed3565b91929091936105ab565b82513d86823e3d90fd5b8284346104b2575061068b61025e61068361067e61066e36611a21565b610676611d5a565b503690611973565b612121565b929092611d99565b835193849315158452806020850152830190611571565b91905034610379576020366003190112610379578060ff61073d9260a0956106c8611e9b565b5085358152601360205220938251946106e086611920565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b9050346103795760203660031901126103795781602093600392358152600c85522001549051908152f35b5050346102a457816003193601126102a4576020906001600160401b03600754169051908152f35b91905034610379576020366003190112610379578060ff61073d9260a0956107b8611e9b565b5085358152600c60205220938251946106e086611920565b919050346103795760209182600319360112610375578035926107f1611ba5565b506107fa611e9b565b5083855260098152828520936003845195610814876118cf565b61081d81611afe565b87526002810154848801520180546108348161195c565b916108418751938461193b565b81835288528388208890858085015b8484106109325750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561092857908561025e9493926108cc97908280956108ff575b50506105fc90610609949551988998610100808b528a019061172a565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b61060995506105fc935061091d92503d8091833e610635818361193b565b9490925081906108af565b83513d87823e3d90fd5b600191600d918b51610943816118ea565b61094c86611ce3565b815260ff600c870154161515838201528152019201920191908690610850565b8284346104b257806003193601126104b2578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109d95761025e86866109cf828b038361193b565b5191829182611863565b8354875295860195600193840193909101906109b7565b5050346102a457816003193601126102a4576020906001600160401b03601d5460881c169051908152f35b8284346104b257506001600160401b03610a3c610a3736611a21565b611e03565b835191151582529091166020820152f35b8284346104b25760203660031901126104b25782356001600160401b03918282116104b25750610a8761067e602095600393369101611973565b90500154169051908152f35b905082346104b257806003193601126104b25782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1e57505050610af59250038561193b565b835191610b018361195c565b91610b0e8751938461193b565b838352601f19610b1d8561195c565b0182865b828110610c0857505050845b6001600160401b039081811686811015610bab5790610ba38284610b536001958d611e57565b51168a52600887528b8587828d20835193610b6d8561189e565b610b7682611afe565b855260028201548c8601526003820154908501520154166060820152610b9c828a611e57565b5287611e57565b500116610b2d565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bdc5785850386f35b909192938280610bf8600193603f198a820301865288516115ef565b9601920196019592919092610bcf565b610c10611b79565b828288010152018390610b21565b855484526001958601958a955093019201610ade565b8284346104b257806003193601126104b257610c4e611ae4565b50815191610c5b836118ea565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610ccd57889061025e8888610cba818a038261193b565b8385015251928284938452830190611516565b83546001600160a01b031685529093019260019283019201610c9f565b905034610379576020366003190112610379579181928160c08451610d0e81611905565b610d16611e35565b8152610d20611e35565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d5a60ff600c8401541692611ce3565b91610d6e82519383859485528401906116b0565b90151560208301520390f35b5050346102a457816003193601126102a4576020906001600160401b03601d5460481c169051908152f35b90503461037957602036600319011261037957610dd89061025e9360208451610dcd816118ea565b8281520152356120e2565b9051918291829190916020806040830194805184520151910152565b8284346104b257806003193601126104b2578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e575761025e86866109cf828b038361193b565b835487529586019560019384019390910190610e3f565b8383346102a457816003193601126102a4578290610e8a611e81565b50805191610e97836118ea565b8054610ea28161195c565b90610eaf8451928361193b565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610f0a5750505061025e945083526001600160401b03600554169083015251918291826117c3565b6003856001928851610f1b816118cf565b8b548152848060a01b03858d01541683820152610f3a60028d01611bcc565b8a820152815201980191019096610edf565b5050346102a457816003193601126102a457602090601f549051908152f35b9050346103795760203660031901126103795781602093600392358152601385522001549051908152f35b8284346104b257806003193601126104b257601854610fb48161195c565b90610fc18451928361193b565b808252601f19610fd08261195c565b01835b818110611096575050825b818110611042575050825191602080840190808552835180925280868601968360051b870101940192955b8287106110165785850386f35b909192938280611032600193603f198a82030186528851611571565b9601920196019592919092611009565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261107a868620611d99565b6110848286611e57565b5261108f8185611e57565b5001610fde565b6020906110a1611d5a565b82828701015201610fd3565b5050346102a457816003193601126102a45760209060ff601d54169051908152f35b5050346102a457816003193601126102a4576020906001600160401b03600554169051908152f35b5050346102a457816003193601126102a457602090600b549051908152f35b5050346102a457816003193601126102a4576020906001600160401b03601d5460081c169051908152f35b5050346102a457816003193601126102a457602090601b549051908152f35b5050346102a457816003193601126102a45780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b86828210611347575050506111c19250038561193b565b8351916111cd8361195c565b916111da8551938461193b565b838352601f196111e98561195c565b0182825b82811061133157505050805b6001600160401b0390818116868110156112d55782611218828b611e57565b51168452600985528784206003895191611231836118cf565b61123a81611afe565b83526002810154888401520180546112518161195c565b9161125e8c51938461193b565b818352875287872087898085018e5b85841061129a579250505084611292959350600197969492500152610b9c828a611e57565b5001166111f9565b91600d91600193516112ab816118ea565b6112b487611ce3565b815260ff600c880154161515838201528152019301910190918a908e61126d565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106113055785850386f35b909192938280611321600193603f198a8203018652885161172a565b96019201960195929190926112f8565b611339611ba5565b8282880101520183906111ed565b855484526001958601958a9550930192016111aa565b91905034610379576020366003190112610379576001600160401b038161025e94611386611b79565b50843581526008602052209282519361139e8561189e565b6113a781611afe565b8552600281015460208601526003810154848601520154166060830152519182916020835260208301906115ef565b5050346102a457816003193601126102a457602090601c549051908152f35b5050346102a457816003193601126102a4576020906012549051908152f35b5050346102a457816003193601126102a457602090601e549051908152f35b8284346104b25760203660031901126104b25750606461145c60209360ff601d54169035612231565b049051908152f35b5050346102a457816003193601126102a4576020906001600160401b038254169051908152f35b5050346102a457816003193601126102a4578161025e92602083516114af816118ea565b8281520152602082516114c1816118ea565b8281520152610dd86002546120e2565b905034610379576020366003190112610379578161025e93611503926114f5611d5a565b503581528060205220611d99565b9051918291602083526020830190611571565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611554575050505090565b83516001600160a01b031685529381019392810192600101611546565b908151815260208201516020820152604082015160408201526001600160401b03806060840151166060830152608083015116608082015260a08201519160068310156115d95760c060e0916115d69460a08501520151918160c08201520190611516565b90565b634e487b7160e01b600052602160045260246000fd5b9060606001600160401b038161160e8551608086526080860190611516565b94602081015160208601526040810151604086015201511691015290565b60005b83811061163f5750506000910152565b818101518382015260200161162f565b906020916116688151809281855285808601910161162c565b601f01601f1916010190565b604060206115d6938161168e855185845285840190611516565b940151908281860391015260ff8151168452015191816020820152019061164f565b9060c0806117216116df6116cd865160e0875260e0870190611674565b60208701518682036020880152611674565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a087015261164f565b93015191015290565b61173d8151606084526060840190611516565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061177f575050505050505090565b909192939495968580600192601f198582030187528a519082806117aa84518a85528a8501906116b0565b930151151591015299019401940192959493919061176e565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b838310611815575050505050906001600160401b039101511691015290565b909192939886806118548a856001958f8f83918591607f19908503018c525180518452898060a01b03888201511688850152015193820152019061164f565b9b0193019301919392906117f6565b6020908160408183019282815285518094520193019160005b82811061188a575050505090565b83518552938101939281019260010161187c565b608081019081106001600160401b038211176118b957604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176118b957604052565b604081019081106001600160401b038211176118b957604052565b60e081019081106001600160401b038211176118b957604052565b60a081019081106001600160401b038211176118b957604052565b90601f801991011681019081106001600160401b038211176118b957604052565b6001600160401b0381116118b95760051b60200190565b9190604083820312611a1c576040519261198c846118ea565b836001600160401b0382358181168103611a1c57825260209283810135918211611a1c57019280601f85011215611a1c5783356119c88161195c565b946119d6604051968761193b565b818652848087019260051b820101928311611a1c578401905b8282106119fd575050500152565b81356001600160a01b0381168103611a1c5781529084019084016119ef565b600080fd5b60031990602081830112611a1c57600435916001600160401b038311611a1c5782604092030112611a1c5760040190565b90815180825260208080930193019160005b828110611a72575050505090565b83516001600160a01b031685529381019392810192600101611a64565b90815180825260208092019182818360051b85019501936000915b848310611aba5750505050505090565b9091929394958480611ad483856001950387528a5161164f565b9801930193019194939290611aaa565b60405190611af1826118ea565b6060602083600081520152565b90604051611b0b816118ea565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b5a5750505050611b569250038461193b565b0152565b83546001600160a01b0316855289955090930192918101918101611b3e565b60405190611b868261189e565b6000606083611b93611ae4565b81528260208201528260408201520152565b60405190611bb2826118cf565b6060604083611bbf611ae4565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c93575b6020948584108914611c7f5787988489979899529081600014611c5d5750600114611c1e575b505050611c1c9250038361193b565b565b600090815285812095935091905b818310611c45575050611c1c9350820101388080611c0d565b85548884018501529485019487945091830191611c2c565b92505050611c1c94925060ff191682840152151560051b820101388080611c0d565b634e487b7160e01b85526022600452602485fd5b91607f1691611be7565b9060405191611cab836118ea565b602083611cb783611afe565b8152611cdb600360405194611ccb866118ea565b60ff600282015416865201611bcc565b828401520152565b90604051611cf081611905565b60c0600b8294611cff81611c9d565b8452611d0d60048201611c9d565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d4e600a8201611bcc565b60a08501520154910152565b60405190611d6782611905565b81600080825280602083015280604083015280606083015280608083015260a082015260c0611d94611ae4565b910152565b90604051611da681611905565b809280548252600181015460208301526002810154604083015260ff60038201546001600160401b0380821660608601528160401c16608085015260801c169060068210156115d9576004611d949160c09360a086015201611afe565b61067e611e11913690611973565b9015611e2c5760036001600160401b03910154169060019190565b50600090600090565b60405190611e42826118ea565b81611e4b611ae4565b81526020611d94611ae4565b8051821015611e6b5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e8e826118ea565b6000602083606081520152565b60405190611ea882611920565b60006080838281528260208201528260408201528260608201520152565b51908115158203611a1c57565b909181830360e08112611a1c5760a013611a1c576040928351611ef581611920565b835181526020908185015182820152858501518682015260608501516060820152611f2260808601611ec6565b60808201529460a0850151926001600160401b0393848111611a1c57860191601f92828482011215611a1c57805190611f5a8261195c565b91611f678451938461193b565b808352868084019160051b83010191858311611a1c578701905b828210612064575050509660c081015190868211611a1c570192828185011215611a1c57835191611fb18361195c565b96611fbe8251988961193b565b838852868089019460051b87010195858711611a1c57878101945b878610611fec5750505050505050505090565b8551838111611a1c5782019087603f83011215611a1c57898201519084821161204f578551612023838901601f19168d018261193b565b82815289878486010111611a1c576120448c9493859489868501910161162c565b815201950194611fd9565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b0381168103611a1c578152908701908701611f81565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b8281106120c5575050505090565b83516001600160a01b0316855293810193928101926001016120b7565b600060206040516120f2816118ea565b828152015260005260016020526040600020600160405191612113836118ea565b805483520154602082015290565b61215873__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612083565b0381865af49081156121f657600091612202575b50906121a891600052600081528060406000209361218c60048601611afe565b906040518080968194630c133d1360e31b835260048301612083565b03915af49081156121f6576000916121c2575b5090501591565b82813d83116121ef575b6121d6818361193b565b810103126104b257506121e890611ec6565b80386121bb565b503d6121cc565b6040513d6000823e3d90fd5b908282813d831161222a575b612218818361193b565b810103126104b25750516121a861216c565b503d61220e565b8181029291811591840414171561224457565b634e487b7160e01b600052601160045260246000fdfea264697066735822122067742e4c5fa957844b2d6923ec2aff7e65c291fb3a98c6dcc21d758686401ee164736f6c634300081300336080806040523461001657612228908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816318f44b7014610d855750806341c0e1b514610c3857806345f5448514610b835780635a627dbc14610b005780636b2c1eef146104ea578063d8e25572146103aa5763f207564e1461006c57600080fd5b60208060031936011261029d5760043590601a546001908181018091116103945760ff602c5416111561031b57823410610309576100eb6100ad8434611175565b936100b6611182565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016113dd565b0381855af49283156102a9576000936102e4575b50610109836120bd565b906102d25760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025e57908983926101568299979a98969584611442565b0190600052866000208960005b8481106102b5575050505050856002916101b6975560038101600160801b60ff60801b198254161790554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611382565b03915af49283156102a957600093610274575b505060185490600160401b82101561025e578101806018558110156102485760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601d549061022d6001600160401b0360881b918360881c16611476565b60881b1667ffffffffffffffff60881b199190911617601d55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d83116102a2575b61028c81836110f1565b8101031261029d57519038806101c9565b600080fd5b503d610282565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b9101610163565b604051631b538cdf60e11b8152600490fd5b6103029193503d806000833e6102fa81836110f1565b81019061135a565b91386100ff565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025e57604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261039060405192839263015538b160e01b845260048401526024830190611150565b0390fd5b634e487b7160e01b600052601160045260246000fd5b3461029d5760208060031936011261029d57600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104d8576001825582156104c6576103fe33611f9f565b90156104b4578161041460046104359301611201565b60405180938192632cff562160e11b83528460048401526024830190611382565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156102a957600092610476575b600084610473876001600160a01b03871661148e565b55005b90809250813d83116104ad575b61048d81836110f1565b8101031261029d576000926104a4610473926112a3565b9181945061045d565b503d610483565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b60031960203682011261029d576004356001600160401b03811161029d57604082823603011261029d573415610aee57604051632e82508d60e21b815260a06004820152916000918391829161055f919061054760a48501611726565b913360248601528483030160448501526004016116bb565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af49081156102a957600091610acb575b50601f54908115610ab557816001600160401b03431604600181018091116103945782810292818404149015171561039457601d5468ffffffffffffffff006105ee6001600160401b038360081c1680606086510152611476565b60081b169068ffffffffffffffff00191617601d55816000526009602052604060002091600283018054156000146106ce579260039161063894601983036106a2575b55016118be565b3447106106905760008080803460635af13d1561068b573d61065981611112565b9061066760405192836110f1565b8152600060203d92013e5b1561067957005b604051633204506f60e01b8152600490fd5b610672565b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b03198454161783556106c960018401611f2e565b610631565b505060038201546020546001600160401b031603610aa4576003820154916106f58361128c565b9261070360405194856110f1565b808452601f196107128261128c565b0160005b818110610a3c575050604051938460608101106001600160401b0360608701111761025e576060850160405261074a611182565b8552436020860152604085015260005b81811061097a57506040516020815261077f8551606060208401526080830190611382565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061094d575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108db575b5090600361080692016118be565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b03831161025e5760209061085c8484611442565b0190600052602060002060005b8381106108be57505050602083015160028301555060408201515160039091019160005b82811061089d5750505050610638565b806108b86108b16001936040860151611dcc565b51866118be565b0161088d565b82516001600160a01b031681830155602090920191600101610869565b80600d0290600d82040361039457600382016000526020600020908101905b81811061090757506107f8565b80610913600d92611f0b565b61091f60048201611f0b565b6000600882015560006009820155610939600a8201611ec2565b6000600b8201556000600c820155016108fa565b909192939560208061096b600193601f198682030187528a516117cf565b980193019301919392906107b7565b80610a358161098e60019460038801611868565b5060408901519060ff600c604051926109a6846110bb565b6040516109b2816110d6565b6109bb82611e84565b81526109c960048301611e84565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a0a600a8301611de0565b60a0820152600b82015460c0820152845201541615156020820152610a2f8383611dcc565b52611dcc565b500161075a565b602090604051610a4b816110bb565b604051610a57816110d6565b610a5f611da5565b8152610a69611da5565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828901015201610716565b6003610ab092016118be565b610638565b634e487b7160e01b600052601260045260246000fd5b610ae891503d806000833e610ae081836110f1565b8101906115bc565b81610593565b6040516360ec4e6b60e11b8152600490fd5b600036600319011261029d57341561030957610b1b33611f9f565b90156104b4576003610b2e3483546110ae565b91828155019081549060ff8260801c166006811015610b6d57600214610b5057005b601b541115610b5c575b005b60ff60801b1916600160801b179055005b634e487b7160e01b600052602160045260246000fd5b3461029d5760208060031936011261029d57600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104d8576001825582156104c657610bd733611f9f565b90156104b4578054848110610c2657610414600461043593610bfa888795611175565b808255601b5411610c0c575b01611201565b60038101805460ff60801b1916600160811b179055610c06565b6040516379b33e7960e01b8152600490fd5b3461029d57600036600319011261029d57610c5233611f9f565b90156104b4576002810154610d73578054601d546001600160401b03600019818360881c16019081116103945767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601d55610cdb91610cb690600401611201565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611382565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156102a957600091610d44575b50610b5a92600091825252610d3e6005604060002060008155600060018201556000600282015560006003820155600060048201550161141c565b3361148e565b90508281813d8311610d6c575b610d5b81836110f1565b8101031261029d5751610b5a610d03565b503d610d51565b604051637c67c70160e11b8152600490fd5b6003199060403683011261029d576004356001600160401b0380821161029d5781360360408582011261029d5760249384359083821161029d57604087833603011261029d57341561109f5750604051936379185f5960e11b855260a0600486015260e4850192816004013585811680910361029d5760a487015281870135906022190181121561029d570185600482013591019284821161029d578160051b3603841361029d57908086939492604060c486015252610104830191906000905b80821061106d57505050610e6f82916000943389850152898483030160448501526004016116bb565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af49182156102a957600092611050575b506020938483510151516000610eee73__$a0fe38a9a81205afccc10810b09a4d3f45$__92610efc604051958693849363089032d560e01b8552604060048601526044850190611382565b90838203018a840152611726565b0381845af49182156102a957600092611033575b50610f1a826120bd565b9590156104b4578587946003610f88980190815490610f418183168060608c510152611476565b16906001600160401b031916179055610f65600260408851015192019182546110ae565b90556040518096819482936304e384ff60e21b8452876004850152830190611382565b03915af480156102a957600090610fdf575b7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969250610fda60405192839286845260018060a01b0316958301906117cf565b0390a2005b508282813d831161102c575b610ff581836110f1565b8101031261029d576110277f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f7096926112a3565b610f9a565b503d610feb565b6110499192503d806000833e6102fa81836110f1565b9086610f10565b6110669192503d806000833e610ae081836110f1565b9084610ea3565b919493509184356001600160a01b038116919082900361029d5760019181526020809101950192018693949291610e46565b6360ec4e6b60e11b8152600490fd5b9190820180921161039457565b604081019081106001600160401b0382111761025e57604052565b60e081019081106001600160401b0382111761025e57604052565b90601f801991011681019081106001600160401b0382111761025e57604052565b6001600160401b03811161025e57601f01601f191660200190565b60005b8381106111405750506000910152565b8181015183820152602001611130565b906020916111698151809281855285808601910161112d565b601f01601f1916010190565b9190820391821161039457565b6040519061118f826110bb565b816001600160401b036019541681526040518091601a54808352836020809401601a6000526000805160206121d38339815191529260005b868282106111e2575050506111de925003846110f1565b0152565b85546001600160a01b03168452600195860195899550930192016111c7565b9060405161120e816110bb565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061125957505050506111de925003846110f1565b83546001600160a01b0316855289955090930192918101918101611241565b51906001600160401b038216820361029d57565b6001600160401b03811161025e5760051b60200190565b51906001600160a01b038216820361029d57565b919060408382031261029d57604051926112d0846110bb565b836112da82611278565b815260209182810151906001600160401b03821161029d57019280601f8501121561029d57835161130a8161128c565b9461131860405196876110f1565b818652848087019260051b82010192831161029d5784809101915b83831061134257505050500152565b819061134d846112a3565b8152019101908490611333565b9060208282031261029d5781516001600160401b03811161029d5761137f92016112b7565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106113c0575050505090565b83516001600160a01b0316855293810193928101926001016113b2565b906113f5602091949394604084526040840190611382565b6001600160a01b03909416910152565b818110611410575050565b60008155600101611405565b8054600082558061142b575050565b61144091600052602060002090810190611405565b565b90600160401b811161025e5781549080835581811061146057505050565b6114409260005260206000209182019101611405565b9060016001600160401b038093160191821161039457565b814710610690576000918291829182916001600160a01b03165af13d156114d9573d6114b981611112565b906114c760405192836110f1565b8152600060203d92013e5b1561067957565b6114d2565b81601f8201121561029d5780516114f481611112565b9261150260405194856110f1565b8184526020828401011161029d5761137f916020808501910161112d565b919060408382031261029d5760405192611539846110bb565b838151916001600160401b039283811161029d57846115599183016112b7565b825260208101519083821161029d570160408185031261029d5760405193611580856110bb565b815160ff8116810361029d578552602082015193841161029d576020936115a792016114de565b828401520152565b5190811515820361029d57565b9060208282031261029d5781516001600160401b039283821161029d57019160408383031261029d57604051926115f2846110bb565b805182811161029d5781019260e08482031261029d5760405190611615826110d6565b845184811161029d578161162a918701611520565b8252602085015184811161029d5781611644918701611520565b60208301526040850151604083015261165f60608601611278565b606083015260808501516001600160e01b03198116810361029d57608083015260a085015193841161029d578461169f60c0926020966116b398016114de565b60a0840152015160c08201528452016115af565b602082015290565b803560ff811680910361029d5782526020810135601e198236030181121561029d570190602082359201916001600160401b03811161029d57803603831361029d578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000526000805160206121d3833981519152916000905b828210611773575050505090565b83546001600160a01b031685529384019360019384019390910190611765565b6040602061137f93816117ad855185845285840190611382565b940151908281860391015260ff81511684520151918160208201520190611150565b906020808351936040845260c06118556117f6875160e06040890152610120880190611793565b6118118589015191603f1992838a83030160608b0152611793565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152611150565b9501516101008501520151151591015290565b805482101561024857600052600d602060002091020190600090565b90600182811c921680156118b4575b602083101461189e57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611893565b8054600160401b81101561025e576118dd906001928382018155611868565b919091611d75578251918251928351926001600160401b03808551166001600160401b031990818654161785558285019260208097015180519084821161025e57889061192a8388611442565b01600095865288862083875b848110611d5a575050505050866002870198015160ff8151169860ff19998a82541617905560039288848901920151918251868111611c74578061197a8354611884565b94898d601f9788808211611d2d575b505050508c90868311600114611cc2578a92611cb7575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a0191015190815191878311611ca3578b906119e98484611442565b019088528a882085895b848110611c8857505050505088600689019101519060ff8251168b8254161790558860078901910151805190868211611c74578190611a328454611884565b8c868211611c47575b50508b90858311600114611be8578992611bdd575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a0870151908151958611611bc957611ac28754611884565b8a848211611b92575b505089928611600114611b2357938560ff9a999794819460c09894600c9b9895611b18575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611af0565b9294939190601f1985168785528a8520945b818110611b7d575092859260ff9b9a989592600c9a9760c0999610611b63575b50505050811b019055611b00565b01519060f884600019921b161c1916905538808080611b55565b82840151865594870194928b01928b01611b35565b611bb9918984528582852091818b0160051c8301938b10611bc0575b0160051c0190611405565b388a611acb565b92508192611bae565b634e487b7160e01b81526041600452602490fd5b015190503880611a50565b848a528c8a208794509190601f1984168b8f5b828210611c305750508411611c18575b505050811b019055611a62565b015160001983891b60f8161c19169055388080611c0b565b8385015186558a979095019493840193018f611bfb565b611c6d91868c5287828d209181870160051c8301938710611bc0570160051c0190611405565b388c611a3b565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119f3565b634e487b7160e01b89526041600452602489fd5b0151905038806119a0565b879350908d91601f198416868d52838d20938d905b828210611d0c5750508411611cf4575b505050811b0190556119b2565b0151600019838a1b60f8161c19169055388080611ce7565b91929395968291958786015181550195019301908f918a9695949392611cd7565b828489611d519652209181870160051c8301938710611bc0570160051c0190611405565b898d3888611989565b83516001600160a01b031683820155928b0192859101611936565b634e487b7160e01b600052600060045260246000fd5b60405190611d98826110bb565b6060602083600081520152565b60405190611db2826110bb565b81611dbb611d8b565b81526020611dc7611d8b565b910152565b80518210156102485760209160051b010190565b9060405191826000825492611df484611884565b908184526001948581169081600014611e615750600114611e1e575b5050611440925003836110f1565b9093915060005260209081600020936000915b818310611e4957505061144093508201013880611e10565b85548884018501529485019487945091830191611e31565b91505061144094506020925060ff191682840152151560051b8201013880611e10565b9060405191611e92836110bb565b602083611e9e83611201565b81526115a7600360405194611eb2866110bb565b60ff600282015416865201611de0565b611ecc8154611884565b9081611ed6575050565b81601f60009311600114611ee8575055565b908083918252611f07601f60208420940160051c840160018501611405565b5555565b60036114409160008155611f216001820161141c565b6000600282015501611ec2565b601a8114611f9c57601a54906001600160401b03821161025e57611f528282611442565b6000908152602081206000805160206121d383398151915280545b848410611f7b575050505050565b600191820180546001600160a01b0390921684860155939091019290611f6d565b50565b6001600160a01b039190828116156120ab57604051611fbd816110bb565b6001600160401b03601954168152604051918291601a54928385526020809501946000978895601a87526000805160206121d38339815191529187905b82821061208f5750505050612014826120329703836110f1565b82015260405163aa5106cb60e01b81529384928392600484016113dd565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156120845783612065939492612069575b50506120bd565b9091565b61207d92503d8091833e6102fa81836110f1565b388061205e565b6040513d85823e3d90fd5b835481168a52988401988b985060019384019390910190611ffa565b6040516370e4510960e01b8152600490fd5b6120fb73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611382565b0381865af49081156102a9576000916121a3575b509061215291600052600081528060406000209361212f60048601611201565b906040518080968194630c133d1360e31b83528660048401526024830190611382565b03915af49081156102a95760009161216c575b5090501591565b82813d831161219c575b61218081836110f1565b810103126121995750612192906115af565b8038612165565b80fd5b503d612176565b908282813d83116121cb575b6121b981836110f1565b8101031261219957505161215261210f565b503d6121af56fe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220acbf28f3c1bbdd7e2cb1d9044f01fb6e14ac0808692405782f49d96bd3db170464736f6c634300081300336080806040523461001657611fc4908161001c8239f35b600080fdfe60406080815260048036101561001457600080fd5b600091823560e01c8063210b944e1461016c576325bf0db61461003657600080fd5b602036600319011261016857813560ff602c5460101c161561013957808452600360205281842090600b820154601c54811061012957341061011a57906100a591600861008a610085846109db565b610c8f565b92015490865260036020526100a0848720610b47565b611886565b6100b1601c5434610582565b806100ba578380f35b80471061010c578380808093335af13d15610107573d6100d98161049e565b906100e68451928361047d565b81528460203d92013e5b156100fa57808380f35b51633204506f60e01b8152fd5b6100f0565b505163356680b760e01b8152fd5b505051631036b5ad60e31b8152fd5b505050516334472ad760e11b8152fd5b602083610164846101486104b9565b905193849363015538b160e01b85528401526024830190610528565b0390fd5b8280fd5b50600319906020368301811361042d576001600160401b039380358581116104295780820194848183360301126104255760ff602c5460081c161561041757846101b68780610568565b01356101cf60c06101c78980610568565b013534610582565b036104075761021d846101fe6101ee6101e88a80610568565b806105a5565b6101f93691806105a5565b6105e5565b875163c836244d60e01b815286810189905292839160448301906106a4565b848282030160248301526060898201918c6019541681528a85820152601a548093520190601a8d52600080516020611f6f833981519152908d5b8181106103e5575050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103db5789916103ae575b501561039e5784519661029c88610431565b86358181116103925760e090840192833603011261039a578551916102c083610462565b84810135828111610396576102da908636918401016107b3565b83526024810135828111610396576102f7908636918401016107b3565b86840152604481013587840152610310606482016105ba565b606084015260848101356001600160e01b03198116810361039657608084015260a48101359182116103925761034f60c492602496369184010161076c565b60a0840152013560c08201528652013590811515820361038e57846103849261037d9261038b970152610c8f565b9280610568565b0135611886565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ce9150853d87116103d4575b6103c6818361047d565b81019061068c565b3861028a565b503d6103bc565b86513d8b823e3d90fd5b82546001600160a01b031684528a958795509093019260019283019201610257565b84516360ec4e6b60e11b81528390fd5b5050610164836101486104b9565b8780fd5b8680fd5b8480fd5b604081019081106001600160401b0382111761044c57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b0382111761044c57604052565b90601f801991011681019081106001600160401b0382111761044c57604052565b6001600160401b03811161044c57601f01601f191660200190565b60405190606082018281106001600160401b0382111761044c57604052603a82527f732d6e6574206d657373616765732069732064697361626c65640000000000006040837f537570706f727420666f722067656e6572616c2d707572706f73652063726f7360208201520152565b919082519283825260005b848110610554575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610533565b90359060de198136030182121561057d570190565b600080fd5b9190820391821161058f57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561057d570190565b35906001600160401b038216820361057d57565b6001600160401b03811161044c5760051b60200190565b919060408382031261057d57604051926105fe84610431565b83610608826105ba565b815260209182810135906001600160401b03821161057d57019280601f8501121561057d578335610638816105ce565b94610646604051968761047d565b818652848087019260051b82010192831161057d578401905b82821061066d575050500152565b81356001600160a01b038116810361057d57815290840190840161065f565b9081602091031261057d5751801515810361057d5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106e2575050505090565b83516001600160a01b0316855293810193928101926001016106d4565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020611f6f833981519152916000905b82821061074c575050505090565b83546001600160a01b03168552938401936001938401939091019061073e565b81601f8201121561057d578035906107838261049e565b92610791604051948561047d565b8284526020838301011161057d57816000926020809301838601378301015290565b919060408382031261057d57604051926107cc84610431565b838135916001600160401b039283811161057d57846107ec9183016105e5565b825260208101359083821161057d570160408185031261057d576040519361081385610431565b813560ff8116810361057d578552602082013593841161057d5760209361083a920161076c565b828401520152565b9060405161084f81610431565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061089e575050505061089a9250038461047d565b0152565b83546001600160a01b0316855289955090930192918101918101610882565b90600182811c921680156108ed575b60208310146108d757565b634e487b7160e01b600052602260045260246000fd5b91607f16916108cc565b906040519182600082549261090b846108bd565b90818452600194858116908160001461097a5750600114610937575b50506109359250038361047d565b565b9093915060005260209081600020936000915b81831061096257505061093593508201013880610927565b8554888401850152948501948794509183019161094a565b91505061093594506020925060ff191682840152151560051b8201013880610927565b90604051916109ab83610431565b6020836109b783610842565b815261083a6003604051946109cb86610431565b60ff6002820154168652016108f7565b906040516109e881610431565b602060ff600c83956040516109fc81610462565b610a058261099d565b8152610a136004830161099d565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a53600a83016108f7565b60a0820152600b82015460c082015285520154161515910152565b818110610a79575050565b60008155600101610a6e565b90600160401b811161044c57815490808355818110610aa357505050565b6109359260005260206000209182019101610a6e565b610ac381546108bd565b9081610acd575050565b81601f60009311600114610adf575055565b908083918252610afe601f60208420940160051c840160018501610a6e565b5555565b600361093591600081556001810180546000825580610b2b575b50506000600282015501610ab9565b610b4091600052602060002090810190610a6e565b3880610b1c565b600c600091610b5581610b02565b610b6160048201610b02565b826008820155826009820155610b79600a8201610ab9565b82600b8201550155565b60406020610bbf9381610b9d8551858452858401906106a4565b940151908281860391015260ff81511684520151918160208201520190610528565b90565b51906001600160a01b038216820361057d57565b906020808383031261057d5782516001600160401b039384821161057d57019260408484031261057d5760405193610c0d85610431565b8051828116810361057d5785528281015191821161057d57019180601f8401121561057d578251610c3d816105ce565b93610c4b604051958661047d565b818552838086019260051b82010192831161057d5783809101915b838310610c77575050505082015290565b8190610c8284610bc2565b8152019101908390610c66565b60208151015151604051630c133d1360e31b81526020600482015260208180610cbb60248201866106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611867575b506118555760405163c836244d60e01b81526040600482015260208180610d21610d1060448301876106a4565b8281036003190160248401526106ff565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611836575b5061182457610e0a9082516020815151916040518095819263f47ad7eb60e01b83526040600484015260c0610df0610d8e835160e06044880152610124870190610b83565b610da9888501519160431992838983030160648a0152610b83565b6040850151608488015260608501516001600160401b031660a488015260808501516001600160e01b03191660c488015260a085015187820390920160e488015290610528565b9101516101048401528281036003190160248401526106ff565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4928315611103576000936117e1575b5060009160028410156117cd578290600185146116bc575b5050506111ff57156111b5575b610e826020825101515160405191829163089032d560e01b83526040600484015260448301906106a4565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a600052600080516020611f6f8339815191529060005b818110611193575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611172575b506040516390ba52cf60e01b81526020600482018190528180610f2760248201866106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611140575b506000526000602052604060002090610f906020610f6f60048501610842565b60405180938192630c133d1360e31b835284600484015260248301906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611121575b5061110f576003820180546001600160401b03610fdd818316806060895101526118f8565b16906001600160401b0319161790556002604084510151920190815492830180931161058f5761102c9260209255604051809381926304e384ff60e21b835284600484015260248301906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611103576000916110a1575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161109991830190611910565b0390a2600090565b906020823d6020116110fb575b816110bb6020938361047d565b810103126110f857506110996110f17f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bc2565b9150611054565b80fd5b3d91506110ae565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b61113a915060203d6020116103d4576103c6818361047d565b38610fb8565b906020823d60201161116a575b8161115a6020938361047d565b810103126110f857505138610f4f565b3d915061114d565b61118d913d8091833e611185818361047d565b810190610bd6565b38610f01565b82546001600160a01b0316845285945060209093019260019283019201610eca565b601d546001600160401b038160481c166001600160401b03811461058f57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601d55610e57565b50601f5480156116a657806001600160401b034316046001810180911161058f5781810291818304149015171561058f57601d5468ffffffffffffffff006112596001600160401b038360081c16806060875101526118f8565b60081b169068ffffffffffffffff00191617601d55806000526009602052604060002090600282018054156000146112db57926003836112a79360409660198597036112af575b55016119db565b510151151590565b6001600160401b03601954166001600160401b03198454161783556112d660018401611efd565b6112a0565b505060038101546020546001600160401b03160361169157600381015490611302826105ce565b91611310604051938461047d565b808352601f1961131f826105ce565b0160005b818110611629575050604051928360608101106001600160401b0360608601111761044c579084916060850160405261135e60608601610431565b6001600160401b03601954166060860152604051806020601a54918281520190601a600052600080516020611f6f8339815191529060005b81811061160757505050816113ac91038261047d565b6080860152606085018552436020860152604085015260005b8181106115c85750604051602081526113ea85516060602084015260808301906106a4565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611593575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a26000600384015580611548575b50600361147092016119db565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b03831161044c576020906114c78484610a85565b0190600052602060002060005b83811061152b575050506020820151600284015550604081015151916003019060005b83811061150a57505050506040906112a7565b8061152561151e6001936040860151611ee9565b51856119db565b016114f7565b82516001600160a01b0316818301556020909201916001016114d4565b600d9150818102908282040361058f57908491600384016000526020600020908101905b81811061157a575050611463565b82935061158981939293610b47565b019085929161156c565b91939697509193946020806115b4600193601f198682030187528a51611910565b98019301930190928a979695949293611422565b60019192506115fd816115de81600388016119a9565b506115ed6040890151916109db565b6115f78383611ee9565b52611ee9565b50019084916113c5565b82546001600160a01b031684528a975060209093019260019283019201611396565b60209060405161163881610431565b60405161164481610462565b61164c611ec2565b8152611656611ec2565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611323565b906116a1816003604094016119db565b6112a7565b634e487b7160e01b600052601260045260246000fd5b6116e6906116f86040519485938493631ccc893360e11b85526040600486015260448501906106a4565b838103600319016024850152906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117c257610d1061174d9260209285916117a8575b50604051938492839263c836244d60e01b84526040600485015260448401906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561179c579161177d575b5015388181610e4a565b611796915060203d6020116103d4576103c6818361047d565b38611773565b604051903d90823e3d90fd5b6117bc91503d8087833e611185818361047d565b38611729565b6040513d84823e3d90fd5b634e487b7160e01b83526021600452602483fd5b6020939193813d60201161181c575b816117fd6020938361047d565b8101031261181857519060028210156110f857509138610e32565b5080fd5b3d91506117f0565b604051632f3335ff60e21b8152600490fd5b61184f915060203d6020116103d4576103c6818361047d565b38610d49565b60405163c5f563eb60e01b8152600490fd5b611880915060203d6020116103d4576103c6818361047d565b38610ce3565b9061188e5750565b8047106118e65760008080809360635af13d156118e1573d6118af8161049e565b906118bd604051928361047d565b8152600060203d92013e5b156118cf57565b604051633204506f60e01b8152600490fd5b6118c8565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161058f57565b906020808351936040845260c0611996611937875160e06040890152610120880190610b83565b6119528589015191603f1992838a83030160608b0152610b83565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610528565b9501516101008501520151151591015290565b80548210156119c557600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b81101561044c576119fa9060019283820181556119a9565b919091611e92578251918251928351926001600160401b03808551166001600160401b031990818654161785558285019260208097015180519084821161044c578890611a478388610a85565b01600095865288862083875b848110611e77575050505050866002870198015160ff8151169860ff19998a82541617905560039288848901920151918251868111611d915780611a9783546108bd565b94898d601f9788808211611e4a575b505050508c90868311600114611ddf578a92611dd4575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a0191015190815191878311611dc0578b90611b068484610a85565b019088528a882085895b848110611da557505050505088600689019101519060ff8251168b8254161790558860078901910151805190868211611d91578190611b4f84546108bd565b8c868211611d64575b50508b90858311600114611d05578992611cfa575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a0870151908151958611611ce657611bdf87546108bd565b8a848211611caf575b505089928611600114611c4057938560ff9a999794819460c09894600c9b9895611c35575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611c0d565b9294939190601f1985168785528a8520945b818110611c9a575092859260ff9b9a989592600c9a9760c0999610611c80575b50505050811b019055611c1d565b01519060f884600019921b161c1916905538808080611c72565b82840151865594870194928b01928b01611c52565b611cd6918984528582852091818b0160051c8301938b10611cdd575b0160051c0190610a6e565b388a611be8565b92508192611ccb565b634e487b7160e01b81526041600452602490fd5b015190503880611b6d565b848a528c8a208794509190601f1984168b8f5b828210611d4d5750508411611d35575b505050811b019055611b7f565b015160001983891b60f8161c19169055388080611d28565b8385015186558a979095019493840193018f611d18565b611d8a91868c5287828d209181870160051c8301938710611cdd570160051c0190610a6e565b388c611b58565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611b10565b634e487b7160e01b89526041600452602489fd5b015190503880611abd565b879350908d91601f198416868d52838d20938d905b828210611e295750508411611e11575b505050811b019055611acf565b0151600019838a1b60f8161c19169055388080611e04565b91929395968291958786015181550195019301908f918a9695949392611df4565b828489611e6e9652209181870160051c8301938710611cdd570160051c0190610a6e565b898d3888611aa6565b83516001600160a01b031683820155928b0192859101611a53565b634e487b7160e01b600052600060045260246000fd5b60405190611eb582610431565b6060602083600081520152565b60405190611ecf82610431565b81611ed8611ea8565b81526020611ee4611ea8565b910152565b80518210156119c55760209160051b010190565b601a8114611f6b57601a54906001600160401b03821161044c57611f218282610a85565b600090815260208120600080516020611f6f83398151915280545b848410611f4a575050505050565b600191820180546001600160a01b0390921684860155939091019290611f3c565b5056fe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea264697066735822122035cc7096ac779f53abd63a316e6e38a2bb2e1eebdb2c2e1e879ef88b6bc054af64736f6c634300081300336080806040523461001757615c0990816200001d8239f35b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c80630bed7615146116845780630db0f77c1461138e5780630df144611461135a578063111969741461129d57806332e7661f14610e7a57806347dc9b4f14610b8257806353b4e7bf146107e9578063743037711461050d578063ac81837914610393578063bacc656d14610183578063c62eb4d5146100ec5763e49a547d146100a157600080fd5b346100e95760203660031901126100e9576004356001600160401b0381116100e5576100d46100e2913690600401611abc565b906100dd613c0f565b6140a9565b80f35b5080fd5b80fd5b50346100e95760203660031901126100e9576001600160401b0360043581811161017f5761011e903690600401611abc565b610126613c0f565b60405192602084019081118482101761016b5791610165916100e294936040528584526040519361015685611909565b86855260208501523691611e0e565b906123bd565b634e487b7160e01b85526041600452602485fd5b8280fd5b50346100e9576020806003193601126100e557600435906101a2613c0f565b6012545b8281106102db5750601254808311156102c9575b8281106101c957505060125580f35b808452601382526040842090848255846004600193828582015582600282015582600382015501556016835260408520805490868155816102a6575b50508085526040852060405180828682945493848152019089528689209289905b878982841061028d575050505061023f92500382611970565b80519083875b8381106102565750505050016101ba565b84895260178752604089206001600160a01b036102738386612111565b51168a52875261028560408a2061305e565b018490610245565b9092945082919386548152019401920184929391610226565b865282848720918201915b8281106102be5750610205565b8781550183906102b1565b604051636819a3a960e01b8152600490fd5b808452600990818352604085209185835560036001936102fc858201612557565b876002820155019081549087835581610319575b505050016101a6565b600d92828402928484040361037f578852858820918201915b82811061033f5750610310565b8061034a85926130a7565b610356600482016130a7565b896008820155898382015561036d600a820161305e565b89600b82015589600c82015501610332565b634e487b7160e01b89526011600452602489fd5b50346100e9576020806003193601126100e557600435906103b2613c0f565b600b545b8281106104d95750600b54808311156102c9575b8281106103d9575050600b5580f35b808452600c8252604084209084825584600460019382858201558260028201558260038201550155600f835260408520805490868155816104b6575b50508085526040852060405180828682945493848152019089528689209289905b878982841061049d575050505061044f92500382611970565b80519083875b8381106104665750505050016103ca565b84895260108752604089206001600160a01b036104838386612111565b51168a52875261049560408a2061305e565b018490610455565b9092945082919386548152019401920184929391610436565b865282848720918201915b8281106104ce5750610415565b8781550183906104c1565b8084526008825260408420908482558460046001936104f9858201612557565b8260028201558260038201550155016103b6565b50346100e9576003196060368201126100e5576004356001600160401b038082116107e5576080826004019383360301126107e5576044359261054e613c0f565b602483013593610560601e5486612ed3565b6107d3578486526020936008855260026040882001546107c15760405191858301918683526105a36105928680612ef3565b6080604087015260c0860190612f3b565b928860608601526044820135948560808201526105dd8160648501968a6105c989611b01565b1660a083015203601f198101835282611970565b5190209160ff601d541690600b548a106107af57801561079d576064916106039161252d565b049161060e89613e58565b1561078b576040516106809161062382611955565b815260048a8a8d6040828601916024358352818701998a52600c60608801948286526080890196838852835252209451855551966001978886015551600285015551600384015551151591019060ff801983541691151516179055565b6040519460808601868110888211176107775760405235908682116107735760046106ae9236920101611b29565b84526106c68685019288845260408601948552611b01565b96606085019788528852600886526040882093519585875116966001600160401b03199788875416178655818387019101519182519288841161075f57819061070f858561257b565b01918b52808b20908b5b848110610745575050505050509060049291516002830155516003820155019251169082541617905580f35b83516001600160a01b031683820155928101928501610719565b634e487b7160e01b8c52604160045260248cfd5b8980fd5b634e487b7160e01b8b52604160045260248bfd5b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b8380fd5b50346100e9576107f836611a1d565b909291600b5483106107af5782855260209160088352600260408720015415610b7057838652600c83526040862092610832828554613cb5565b5061083c81613c86565b610b5e57858852600f825260408089206001600160a01b0383166000818152600190920160205291902054610b4c57604080516001600160a01b03909316848401908152602081018a9052908390820103926108a0601f1994858101835282611970565b5190206040518481019182528481526108b881611909565b519020600195868089015492918c915b610ae9575b505003610ad157868952600f83526108e88160408b20613ea5565b15610abf578689526010835260408920908952825260408820928051926001600160401b038411610aab579083929161092b846109258854612125565b886125af565b8092601f8511600114610a4b5750508992610a40575b5050600019600383901b1c191690831b1790555b6109646003830194855461204e565b908185556002830154821015610978578580f35b600483018054909260ff82166109f9575060ff191617905561099982613fec565b156109e7576109da7fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949360ff600a5416925490549060405194859485613c90565b0390a15b38808080808580f35b6040516344a7b48760e11b8152600490fd5b9150507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9450610a38915060ff600a5416925460405194859485613c90565b0390a16109de565b015190503880610941565b87959392919316868c52838c20938c905b828210610a925750508411610a79575b505050811b019055610955565b015160001960f88460031b161c19169055388080610a6c565b8484015186558997909501949384019390810190610a5c565b634e487b7160e01b8a52604160045260248afd5b604051633363140f60e01b8152600490fd5b60249060405190634a0bfec160e01b82526004820152fd5b90918151831015610b4657610afe8383612111565b519081811015610b38578d52865260408c205b916000198114610b2457880190886108c8565b634e487b7160e01b8d52601160045260248dfd5b908d52865260408c20610b11565b916108cd565b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b6040516358cdd2e760e01b8152600490fd5b50346100e9576003196020368201811361017f57600435916001600160401b0390818411610e765783600401916080828636030112610e7257610c0b91610bd236610bcd8680611aec565b611b29565b918573__$a0fe38a9a81205afccc10810b09a4d3f45$__9360405180968192632cff562160e11b83528460048401526024830190611be0565b0381865af4938415610e67578894610e2c575b506001600160a01b03933390851603610e1a57610c3a33613914565b959015610e095791610c7a94610c5888959394610bcd369180611aec565b9360405196879563c836244d60e01b8752604060048801526044870190611be0565b928584030160248601526040830190600489015416835260606005890193604088820152845480935201928b52858b20918b905b828210610deb575050505082809103915af4908115610de0578591610db3575b5015610da1576003015460801c60ff166006811015610d8d57600103610d7b578260ff602c5460181c16610cff5780f35b80610d6b93604051602485820192632643057b60e11b84520135602482015282604482015282606482015260648152610d3781611955565b519082335af13d15610d72573d610d4d816119a8565b90610d5b6040519283611970565b81528481933d92013e5b33611cf2565b5038808280f35b60609150610d65565b60405163c18316bf60e01b8152600490fd5b634e487b7160e01b84526021600452602484fd5b6040516303b5db8360e11b8152600490fd5b610dd39150833d8511610dd9575b610dcb8183611970565b810190611c3b565b38610cce565b503d610dc1565b6040513d87823e3d90fd5b8354811685528a978997509094019360019384019390910190610cae565b6040516208ed5b60e31b8152600490fd5b604051637f39132760e11b8152600490fd5b9093508581813d8311610e60575b610e448183611970565b81010312610e5c57610e5590611bcc565b9238610c1e565b8780fd5b503d610e3a565b6040513d8a823e3d90fd5b8580fd5b8480fd5b50346100e9576003196060368201126100e557600435906001600160401b03821161017f5760609082360301126100e557610eb3613c0f565b610ec8610ec33683600401611f62565b6130ca565b610ed8601f546024830135612ed3565b1580159061128f575b61127d57602481013582526009602052600260408320015461126b57604051602080820152610f27610f166004840180612ef3565b6060604084015260a0830190612f3b565b6024830135606083015281610f426044850185600401612f07565b603f93919319838303016080840152808252602082019160208260051b820101928589925b848410611160575050505050610f86925003601f198101835282611970565b6020815191012060ff601d54166012546024840135106107af57604435801561079d57606491610fb59161252d565b0491610fc46024820135613def565b1561078b5761103f6110499260405190610fdd82611955565b815260046020820160243581526040830196875260608301888152608084019189835260248701358a52601360205260408a209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611f62565b6020810190815184526009602052604084209181516001600160401b038151166001600160401b03198554161784556020858501910151908151916001600160401b03831161112f5760209061109f848461257b565b019087526020872086885b8481106111435789828960408a8a5160028401550190815151916003859201915b8381106110d6578580f35b6110e1818351612111565b518354600160401b81101561112f5786810180865581101561111b5786929161111591868a52600d60208b209102016125f4565b016110cb565b634e487b7160e01b88526032600452602488fd5b634e487b7160e01b88526041600452602488fd5b83516001600160a01b0316818401556020909301928891016110aa565b919395509193601f198282030184526111798784612ef3565b90813560de19833603018112156112675782602092836112508160019781960194604085526111dd6111c06111ae8880612ef3565b60e06040890152610120880190612ffd565b6111cc84890189612ef3565b878203603f19016060890152612ffd565b604087013560808701526001600160401b036111fb60608901611b01565b1660a08701526112416001600160e01b031961121960808a01611dec565b169160c0928389015261122f60a08a018a612fab565b898303603f190160e08b015290612fdc565b96013561010086015201611e01565b151591015298019401940191879593969491610f67565b8b80fd5b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b506024810135431115610ee1565b50346100e95760403660031901126100e9576040516112bb81611909565b818152816020809201526112cd613c0f565b81816040516112db81611909565b828152015260025491600435918284116113485760609382526001815260408220926040600181519561130d87611909565b805487520154938386019485528281526001845220818155600160243591015560025582511515926040519384525190830152516040820152f35b60405163153ad84160e11b8152600490fd5b50346100e957806003193601126100e957611373613c0f565b602061137d612205565b6001600160401b0360405191168152f35b50346100e95761139d36611a1d565b90929160125483106107af5782855260209160098352600260408720015415611672578386526013835260408620926113d7828554613cb5565b506113e181613c86565b610b5e578588526016825260408089206001600160a01b0383166000818152600190920160205291902054610b4c57604080516001600160a01b03909316848401908152602081018a905290839082010392611445601f1994858101835282611970565b51902060405184810191825284815261145d81611909565b519020600195868089015492918c915b611623575b505003610ad1578689526016835261148d8160408b20613ea5565b15610abf578689526017835260408920908952825260408820928051926001600160401b038411610aab57908392916114ca846109258854612125565b8092601f85116001146115c357505089926115b8575b5050600019600383901b1c191690831b1790555b6115036003830194855461204e565b908185556002830154821015611517578580f35b600483018054909260ff8216611579575060ff191617905561153882613f02565b156109e7576109da7fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949360ff60115416925490549060405194859485613c90565b9150507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9450610a38915060ff60115416925460405194859485613c90565b0151905038806114e0565b87959392919316868c52838c20938c905b82821061160a57505084116115f1575b505050811b0190556114f4565b015160001960f88460031b161c191690553880806115e4565b84840151865589979095019493840193908101906115d4565b9091815183101561166c576116388383612111565b51908181101561165e578d52865260408c205b916000198114610b24578801908861146d565b908d52865260408c2061164b565b91611472565b60405163a88f96f160e01b8152600490fd5b50346100e9576003196020368201811361017f57600435916001600160401b0383116107e5576060836004019184360301126107e5576116ed826116cc36610bcd8580611aec565b60405180938192632cff562160e11b83528460048401526024830190611be0565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610de05785916118d4575b50336001600160a01b03909116036118bf57611733610ec33683611f62565b61173c33613914565b919015610e095760ff600383015460801c169160068310156118ab576001809303610d7b57856044879601936117728585611fd7565b899291505b80831061185c5750505061178b908661204e565b90600281019182549080821061184a576117ce95600495610165956117b66117bd946117c696612071565b9055611fd7565b9490920161207e565b923691611e0e565b60ff602c54821c166117de578280f35b60405181810190632643057b60e11b82524360248201528360448201528460648201526064815261180e81611955565b83471061183257610d6b93859283925191335af13d15610d72573d610d4d816119a8565b60405163cd78605960e01b8152306004820152602490fd5b604051631d36ca1560e21b8152600490fd5b906118a261188e849a956040611886611880869861187a8e8e611fd7565b9061200c565b80612039565b01359061204e565b9460c06118866118808d61187a8d8d611fd7565b98019190611777565b634e487b7160e01b86526021600452602486fd5b60405160016201ad9360e61b03198152600490fd5b90508281813d8311611902575b6118eb8183611970565b81010312610e76576118fc90611bcc565b38611714565b503d6118e1565b604081019081106001600160401b0382111761192457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761192457604052565b60a081019081106001600160401b0382111761192457604052565b90601f801991011681019081106001600160401b0382111761192457604052565b6001600160401b0381116119245760051b60200190565b6001600160401b03811161192457601f01601f191660200190565b9291926119cf826119a8565b916119dd6040519384611970565b8294818452818301116119fa578281602093846000960137010152565b600080fd5b9080601f830112156119fa57816020611a1a933591016119c3565b90565b9060806003198301126119fa57600435916001600160401b03916024358381116119fa57826023820112156119fa578060040135611a5a81611991565b91611a686040519384611970565b81835260209160248385019160051b830101918683116119fa57602401905b828210611aad575050505092604435926064359182116119fa57611a1a916004016119ff565b81358152908301908301611a87565b9181601f840112156119fa578235916001600160401b0383116119fa576020808501948460051b0101116119fa57565b903590603e19813603018212156119fa570190565b35906001600160401b03821682036119fa57565b35906001600160a01b03821682036119fa57565b91906040838203126119fa5760405192611b4284611909565b83611b4c82611b01565b815260209182810135906001600160401b0382116119fa57019280601f850112156119fa578335611b7c81611991565b94611b8a6040519687611970565b818652848087019260051b8201019283116119fa5784809101915b838310611bb457505050500152565b8190611bbf84611b15565b8152019101908490611ba5565b51906001600160a01b03821682036119fa57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611c1e575050505090565b83516001600160a01b031685529381019392810192600101611c10565b908160209103126119fa575180151581036119fa5790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611cb2575050505090565b83546001600160a01b031685529384019360019384019390910190611ca4565b60021115611cdc57565b634e487b7160e01b600052602160045260246000fd5b9015611d3057815115611d03575090565b803b15611d0e575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50805115611d4057805190602001fd5b604051630a12f52160e11b8152600490fd5b359060ff821682036119fa57565b91906040838203126119fa5760405192611d7984611909565b838135916001600160401b03928381116119fa5784611d99918301611b29565b82526020810135908382116119fa57016040818503126119fa5760405193611dc085611909565b611dc982611d52565b855260208201359384116119fa57602093611de492016119ff565b828401520152565b35906001600160e01b0319821682036119fa57565b359081151582036119fa57565b929192611e1a82611991565b91604090611e2a82519485611970565b839581855260208095019160051b8401938185116119fa5780925b858410611e555750505050505050565b6001600160401b039084358281116119fa5783019086828603126119fa578651611e7e81611909565b82358481116119fa5783019260e09485858903126119fa57895195860186811082821117611f4d578a5284358181116119fa5788611ebd918701611d60565b86528b8501358181116119fa5788611ed6918701611d60565b8c870152898501358a8701526060611eef818701611b01565b908701526080611f00818701611dec565b9087015260a091828601359182116119fa578c9686611f3e94611f288c8b9a968b97016119ff565b9083015260c08091013590820152845201611e01565b83820152815201930192611e45565b60246000634e487b7160e01b81526041600452fd5b91906060838203126119fa5760405190611f7b8261193a565b81938035906001600160401b03918281116119fa5783611f9c918301611b29565b84526020810135602085015260408101359182116119fa570181601f820112156119fa57604091816020611fd293359101611e0e565b910152565b903590601e19813603018212156119fa57018035906001600160401b0382116119fa57602001918160051b360383136119fa57565b9082101561202357611a1a9160051b810190611aec565b634e487b7160e01b600052603260045260246000fd5b90359060de19813603018212156119fa570190565b9190820180921161205b57565b634e487b7160e01b600052601160045260246000fd5b9190820391821161205b57565b9060405161208b81611909565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106120da57505050506120d692500384611970565b0152565b83546001600160a01b03168552899550909301929181019181016120be565b9060016001600160401b038093160191821161205b57565b80518210156120235760209160051b010190565b90600182811c92168015612155575b602083101461213f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691612134565b906040519182600082549261217384612125565b9081845260019485811690816000146121e2575060011461219f575b505061219d92500383611970565b565b9093915060005260209081600020936000915b8183106121ca57505061219d9350820101388061218f565b855488840185015294850194879450918301916121b2565b91505061219d94506020925060ff191682840152151560051b820101388061218f565b602a546001600160401b038082166000190181811161205b57612227816120f9565b8280604095861c169116146123b55761223f816142f2565b61ffff9283602454169161225283611991565b9561225f83519788611970565b838752601f19918261227086611991565b019260209336858b013760015b8881168781116122bf576000908152602686528690205489916001916001600160a01b03166122b78d856122b085614095565b1690612111565b52011661227d565b5050945094919290955086516122d481611991565b946122e183519687611970565b8186526122ed82611991565b018460005b82811061238c5750505060005b818110612327575050611a1a94959650519261231a84611909565b8352841690820152613435565b6001906001600160a01b0361233c828c612111565b5116806000526023875261236c60038660002085810154938851946123608661193a565b85528a8501520161215f565b8582015261237a8289612111565b526123858188612111565b50016122ff565b84516123978161193a565b6000815260008382015260608682015282828a0101520185906122f2565b505050600090565b81519160005b8381106123d05750505050565b806123e76123e060019385612111565b51856129ea565b016123c3565b60005b8381106124005750506000910152565b81810151838201526020016123f0565b90602091612429815180928185528580860191016123ed565b601f01601f1916010190565b60406020611a1a938161244f855185845285840190611be0565b940151908281860391015260ff81511684520151918160208201520190612410565b9060c0806124e26124a061248e865160e0875260e0870190612435565b60208701518682036020880152612435565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152612410565b93015191015290565b81601f820112156119fa578051612501816119a8565b9261250f6040519485611970565b818452602082840101116119fa57611a1a91602080850191016123ed565b8181029291811591840414171561205b57565b81811061254b575050565b60008155600101612540565b80546000825580612566575050565b61219d91600052602060002090810190612540565b90600160401b81116119245781549080835581811061259957505050565b61219d9260005260206000209182019101612540565b9190601f81116125be57505050565b61219d926000526020600020906020601f840160051c830193106125ea575b601f0160051c0190612540565b90915081906125dd565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161192457899061263d838961257b565b01600096875289872084885b8481106129cf5750505050508760028a019101519260ff8451169160ff19928382541617905560039389858c01910151805190878211612945578190612699826126938654612125565b866125af565b8c90601f8311600114612964578a92612959575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311612945578b906126f6848461257b565b019088528a882085895b84811061292a5750505050508860068b019101519160ff835116908254161790558760078a01910151805190858211612916578190612743826126938654612125565b8a90601f83116001146128b75788926128ac575b505060001982861b1c191690831b1790555b6040850151600889015560098801836060870151168154906bffffffff0000000000000000608089015160a01c16916001600160601b03191617179055600a88019360a08601518051948511612898576127c7856109258854612125565b8891601f8611600114612827579385600c999794819460c0989461219d9e9d9b989561281c575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b0151935038806127ee565b9294939190601f1985168785528a8520945b8181106128835750928592600c9a98959261219d9d9c9a9760c0999610612869575b50505050811b0190556127fe565b01519060f884600019921b161c191690553880808061285b565b82840151865594870194928b01928b01612839565b634e487b7160e01b82526041600452602482fd5b015190503880612757565b8489528b89208694509190601f1984168a8e5b8282106128ff57505084116128e7575b505050811b019055612769565b015160001983881b60f8161c191690553880806128da565b83850151865589979095019493840193018e6128ca565b634e487b7160e01b87526041600452602487fd5b83516001600160a01b031683820155928d0192879101612700565b634e487b7160e01b89526041600452602489fd5b0151905038806126ad565b879350908d91601f198416868d52838d20938d905b8282106129ae5750508411612996575b505050811b0190556126bf565b0151600019838a1b60f8161c19169055388080612989565b91929395968291958786015181550195019301908f918a9695949392612979565b83516001600160a01b031683820155928c0192869101612649565b9060209182825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604092835190630c133d1360e31b91828152878180612a3460049784898401526024830190611be0565b0381885af4908115612ec857600091612eab575b50612e9b57855160808101516001600160e01b031995918791871615612e7c575b5050865192612a8d87519463f47ad7eb60e01b865288878701526044860190612471565b898580612aa66003199485838203016024840152611c53565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4948515612e3457908a91600096612e3f575b50895182015151895163c836244d60e01b81528881018b9052929183918291612b1191612b02906044850190611be0565b90838203016024840152611c53565b0381865af4908115612e3457600091612e17575b50612bf057505050505061219d936003918351612be1818481019385855260c0612bbf8a51928a80860152612b67845160e0608088015261016087019061310e565b612b828a86015191607f1992838983030160a08a015261310e565b918c860151858801526001600160401b0360608701511660e088015260808601511661010087015260a08501519086830301610120870152612410565b910151610140830152858901511515606083015203601f198101835282611970565b519020600052526000206125f4565b889798949550612bff84611cd2565b60018414612d24575b505050612c1481611cd2565b15612cbc575b60009183519586928392635c46fefb60e11b845283015285612c4782518760248601526064850190612471565b91015115156044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4908115612cb25750612c7a575050565b3d806000843e612c8a8184611970565b820190828203126119fa5781516001600160401b0381116119fa57612caf92016124eb565b50565b513d6000823e3d90fd5b50601d546001600160401b03808260481c1690606087510151168103612d145791849167ffffffffffffffff60481b612cf66000956120f9565b60481b169067ffffffffffffffff60481b191617601d559150612c1a565b835163a57cadff60e01b81528390fd5b86949192939451928391825282878301528180612d446024820188611be0565b03915af4908115612e0c579086939291600091612def575b5015612d6a575b8080612c08565b612d75919250613b0d565b9015612ddf5760030180546001600160401b038082871c1690606089510151168103612dcf579067ffffffffffffffff60401b612db4889594936120f9565b871b169067ffffffffffffffff60401b191617905538612d63565b855163a57cadff60e01b81528590fd5b8351630e991abd60e41b81528390fd5b612e069150843d8611610dd957610dcb8183611970565b38612d5c565b85513d6000823e3d90fd5b612e2e91508a3d8c11610dd957610dcb8183611970565b38612b25565b88513d6000823e3d90fd5b90959181813d8311612e75575b612e568183611970565b810103126100e557519060028210156100e95750938990612b02612ad1565b503d612e4c565b01514710612e8b578538612a69565b855163569d45cf60e11b81528490fd5b845163c5f563eb60e01b81528390fd5b612ec29150883d8a11610dd957610dcb8183611970565b38612a48565b86513d6000823e3d90fd5b8115612edd570690565b634e487b7160e01b600052601260045260246000fd5b9035603e19823603018112156119fa570190565b9035601e19823603018112156119fa5701602081359101916001600160401b0382116119fa578160051b360383136119fa57565b60408201916001600160401b03612f5183611b01565b1681526060612f6560209384810190612f07565b839195604086839601525201929160005b828110612f84575050505090565b909192938280600192838060a01b03612f9c89611b15565b16815201950193929101612f76565b9035601e19823603018112156119fa5701602081359101916001600160401b0382116119fa5781360383136119fa57565b908060209392818452848401376000828201840152601f01601f1916010190565b604061304e611a1a9361302d6130226130168680612ef3565b85845285840190612f3b565b946020810190612ef3565b90602081860391015260ff61304182611d52565b1684526020810190612fab565b9190928160208201520191612fdc565b6130688154612125565b9081613072575050565b81601f60009311600114613084575055565b9080839182526130a3601f60208420940160051c840160018501612540565b5555565b600361219d91600081556130bd60018201612557565b600060028201550161305e565b6040018051516001600160401b0360205416106130fc575151156130ea57565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061317e5750505093604083819381611a1a97980151908281860391015260ff81511684520151938201520190612410565b82516001600160a01b03168852968501969185019160010161314a565b90815180825260208092019182818360051b85019501936000915b8483106131c65750505050505090565b909192939495848061320383856001950387528a5180518252858060a01b0384820151168483015260408091015191606080928201520190612410565b98019301930191949392906131b6565b908082146132e7576132258154612125565b906001600160401b038211611924578190613244826126938654612125565b600090601f831160011461327b57600092613270575b50508160011b916000199060031b1c1916179055565b01549050388061325a565b81526020808220858352818320935090601f1985169083905b8282106132ce5750509084600195949392106132b5575b505050811b019055565b015460001960f88460031b161c191690553880806132ab565b8495819295850154815560018091019601940190613294565b5050565b600454811015612023576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b9061341f5781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b038311611924576133848361337e8754612125565b876125af565b81601f84116001146133bd57509282939183926000946133b2575b50501b916000199060031b1c1916179055565b01519250388061339f565b919083601f1981168760005284600020946000905b8883831061340557505050106133ec57505050811b019055565b015160001960f88460031b161c191690553880806132ab565b8587015188559096019594850194879350908101906133d2565b634e487b7160e01b600052600060045260246000fd5b604080519160209182845261345482518285870152606086019061319b565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081613740575b505050600490815493600160401b9384861161372b576006548660065580871061368c575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83821061363757505050508060055416916001600160401b03199283600754161760075583515193855496885b8681106135c557505050511690600554161760055580831161355d575b50505050565b8281101561355757815480156135b257600019019061357b826132eb565b9290926135a057858355613598600260019488868201550161305e565b83550161355d565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b888110156135f457806135ee6135de6001938651612111565b516135e8836132eb565b90613326565b0161353a565b6135ff818451612111565b5188548381101561362457600192916135e8828561361f94018d556132eb565b6135ee565b634e487b7160e01b8c5260418a5260248cfd5b806001918403613652575b600380910193019101909161350d565b805484558180850190838060a01b0390830154166001600160601b0360a01b8254161790556136876002808301908601613213565b613642565b600390808202908282040361371657878202828104890361370157600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b8281106136e4575050506134c0565b80828592558260018201556136fb6002820161305e565b016136d5565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b8486511685600754169081811461382d571061381c5782519261376284611909565b60045461376e81611991565b9161377b81519384611970565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b8484106137da5750505091855250508201526137c99082613837565b6137d55738808061349b565b505050565b60038760019284516137eb8161193a565b86548152848060a01b0385880154168382015261380a6002880161215f565b868201528152019301930192916137ad565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b0390602091808383015116908385015116036123b55761385d816138d8565b613866846138d8565b036123b557518051835151036123b5576138d16138c591604051908161389686820192878452604083019061319b565b03916138aa601f1993848101835282611970565b5190209451604051938491868301968752604083019061319b565b03908101835282611970565b5190201490565b8051519060009182915b8183106138ef5750505090565b90919261390b600191613903868551612111565b51519061204e565b930191906138e2565b6001600160a01b0390811691908215613afb5760409283519361393685611909565b6001600160401b0391826019541686528151958690601a54908189526020809901926000978893601a85527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9185905b8d838310613ade5750505050506139a3816139c994950382611970565b818a0152845163aa5106cb60e01b81526004810186905293849283926044840190611be0565b906024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4938415613ad3578094613a09575b50505050613a05919250613b0d565b9091565b90919293503d8082843e613a1d8184611970565b82019186818403126100e55780519085821161017f57019383858403126100e557835194613a4a86611909565b805182811681036107e55786528781015191821161017f570182601f820112156100e557805191613a86613a7d84611991565b95519586611970565b828552878086019360051b8301019384116100e957508601905b828210613abc57505050613a05929382015282913880806139f6565b868091613ac884611bcc565b815201910190613aa0565b8251903d90823e3d90fd5b845482168952909701968b96506001938401939190910190613986565b6040516370e4510960e01b8152600490fd5b613b4b73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611be0565b0381865af4908115613bd657600091613be2575b5060005260008152613ba081604060002093613b7d6004860161207e565b906040518080958194630c133d1360e31b83528660048401526024830190611be0565b03915af4918215613bd657600092613bb9575b50501591565b613bcf9250803d10610dd957610dcb8183611970565b3880613bb3565b6040513d6000823e3d90fd5b908282813d8311613c08575b613bf88183611970565b810103126100e957505138613b5f565b503d613bee565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115613bd657600091613c68575b5015613c5657565b60405163f0d97f3b60e01b8152600490fd5b613c80915060203d8111610dd957610dcb8183611970565b38613c4e565b60041115611cdc57565b909493926060926080830196613ca581611cd2565b8352602083015260408201520152565b8151919060418303613ce657613cdf92506020820151906060604084015193015160001a90613cf1565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613d7557926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613d695780516001600160a01b03811615613d6057918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156120235760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b600d5481101561202357600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b600081815260156020526040812054613e5357601454600160401b811015612898579082613e3f613e2884600160409601601455613d81565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b905090565b6000818152600e6020526040812054613e5357600d54600160401b811015612898579082613e91613e2884600160409601600d55613db8565b9055600d54928152600e6020522055600190565b6000828152600182016020526040902054613efb57805490600160401b82101561192457600182018082558210156120235782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015613fe75760001990808201818111613fd35760145490838201918211613fbf57808203613f8b575b5050506014548015613f7757810190613f5682613d81565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b613fa9613f9a613e2893613d81565b90549060031b1c928392613d81565b9055845260156020526040842055388080613f3e565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b6000818152600e60205260408120549091908015613fe75760001990808201818111613fd357600d5490838201918211613fbf57808203614061575b505050600d548015613f775781019061404082613db8565b909182549160031b1b19169055600d558152600e6020526040812055600190565b61407f614070613e2893613db8565b90549060031b1c928392613db8565b90558452600e6020526040842055388080614028565b61ffff908116600019019190821161205b57565b919080156142d85760005b8181106140c15750509050565b6140cc81838661200c565b9060406140d983806142dd565b01356001600160a01b03818116918290036119fa576140f884806142dd565b359360048510156119fa5761410d81806142dd565b906020918281013590601e19813603018212156119fa57019384356001600160401b03958682116119fa57840181360381136119fa5761414e9136916119c3565b9385602a541694604051986141628a61193a565b61416b81613c86565b89528489019081526040890192835285600052602b85526040600020985161419281613c86565b61419b81613c86565b60ff80198b541691161789555197885198878a11611924576001998a8301916141ce826141c88554612125565b856125af565b8790601f83116001146142635760029493929160009183614258575b5050600019600383901b1c1916908c1b1790555b019151166001600160601b0360a01b8254161790558361421d846120f9565b166001600160401b0319602a541617602a5501359182168092036119fa570361424657016140b4565b604051631aba532960e21b8152600490fd5b0151905038806141ea565b9392918c918360005289600020906000601f198416905b8c8282106142b557505096836002981061429c575b505050811b0190556141fe565b015160001960f88460031b161c1916905538808061428f565b919295899487849397999a9b015181550195019301908f9492979695939161427a565b509050565b903590605e19813603018212156119fa570190565b602a546001600160401b0392838316929190848216841061431f5760405163040aaa0560e11b8152600490fd5b848260401c16841061464c579392919083604091821c16945b84861695848711614615576000908782526020602b81528483209860018060a01b0360028b0154169960ff81541661436f81613c86565b600281036143c457509061439c6001602b94938c9d889d999a9b9c9d52602385520160038a882001613213565b8452528482209180835560026001936143b685820161305e565b015501169493929190614338565b9a6143d28c9a99989a613c86565b60039b808d0361451057506143ea600180930161215f565b809c8b825183019e8f0312610e5c57818601519d9b9c9b8c8f1161450c57906144218e9f8e9f9c9d9e9389809101918601016124eb565b9e8f93015194848a5260238852818c8b20019351928311610aab578e9f9d9e9a9b9c9d6144528461337e8754612125565b88908b601f861160011461449c579480938193602b9c9b9a98969361448c9a9895614491575b50501b92600019911b1c1916179055614653565b61439c565b015193503880614478565b50858c52898c209294939190601f1985168d5b8181106144f7575091859391602b9c9b9a989661448c9a989694106144dd575b50505050811b019055614653565b01519060f884600019921b161c19169055388080806144cf565b82840151865594870194928c01928c016144af565b8880fd5b92939495969799989a9b61452a600193929380930161215f565b868180518101031261450c5797602b9593838f9a938d958a859c9b999601519561455381613c86565b036145d45761457385836145ab9798868852602397888d52200154612071565b93838c5288528d8b208b60028201868154811590816145cb575b50156145bf5750816145a695818555840155550161305e565b614b2d565b6145b86022918254612071565b905561439c565b94935050500155614b2d565b9050153861458d565b50929061448c94508092528b6145f48285602393848b528d20015461204e565b938491848c5288528d8b20015561460e602291825461204e565b9055614697565b509450925067ffffffffffffffff60401b9150614631906120f9565b602a54921b169067ffffffffffffffff60401b191617602a55565b9350505050565b9060018060a01b03821660005260236020526040600020818154915581811460001461467e57505050565b81111561468e5761219d916149a7565b61219d91614e7f565b919060018060a01b03928381166000948186526020916025835261ffff916040978389822054166148b6578360215460081c16846024541610614882576146dc615952565b60019283825260268652828a83205416886146f68261500a565b106147fc57508152602885528389822054166147655750505050506147607f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461474083614f9f565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b61476e866159a5565b926147788761500a565b935b81868216116147be575b505097516001600160a01b039095168552505050506020810191909152909150600080516020615bb4833981519152908060408101614760565b80856147dd86617fff8f95871c169485885260298c528720541661500a565b10156147f657906147ef839282615b04565b905061477a565b50614784565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506147609560289161483761552c565b835252205416614874575b61484b846154bd565b61485483614f9f565b516001600160a01b03928316815292909116602083015281906040820190565b61487d846151c0565b614842565b50505050506147607f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394614740836154bd565b979291506148c7859497969561596e565b976148d18561500a565b976148db8a6153b2565b8460245416905b858116828111614982578281101561496657508061490261490892614f8c565b90615902565b9b909b5b8b111561492b5761491d908c615a6b565b6149268b6153b2565b6148e2565b505093516001600160a01b039095168552505050506020810191909152909250600080516020615b9483398151915291508060408101614760565b849c919c526026835261497d85888620541661500a565b61490c565b505050505050506147609192939550600080516020615b948339815191529450614740565b6001600160a01b03808216600081815260256020526040808220549095949361ffff93918416614afb578360215460081c16846024541610614ac9576149eb615952565b600183526026602052868320541685614a038261500a565b10614a755750815260286020528490205416614a47576147607f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361474083614f9f565b614760600080516020615bb483398151915293614740614a66846159a5565b614a6f8561500a565b9061535d565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75969261476094614aa961552c565b81526028602052205416614ac05761484b846154bd565b61487d8461524b565b505050506147607f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93614740836154bd565b50505050614760600080516020615b9483398151915293614740614b1e8461596e565b614b278561500a565b9061586f565b909160018060a01b03928383169060009382855260206028815261ffff95604094878683205416614d55578082526025835287868320541615614d44578415614c9c5750614b7a8361596e565b97614b848461500a565b985b6001808a83161115614c8d5781617fff911c1690818452602685528a614bb0848a8720541661500a565b1115614bc557614bc09082615a6b565b614b86565b505091939597509193955b6027541615614c8557614be1615952565b600182526026835285818184205416926029614bfc8561500a565b95614c05615960565b600183525220541691614c178361500a565b11614c4c57505091516001600160a01b0390921682526020820152600080516020615b94833981519152908060408101614760565b915091506147607ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593614c7d61552c565b614842615059565b505050505050565b50509193959750919395614bd0565b829450614cd07f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799615675565b8651908152a160275416614ce45750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360298492614d12615960565b6001835252205416614d38614d268261500a565b92614d2f615059565b614740836154bd565b0390a138808080613557565b8551632a55ca5360e01b8152600490fd5b84969792939598919415614e44575061fffe9193614d72866159a5565b93614d7c8761500a565b9480966001958692831b168160275416925b614dd0575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020615bb48339815191529190508060408101614760565b818116838111614e3e578d9084811015614e2257505080614df3614df992614f8c565b90615465565b9890985b881015614e1d57614e0e9089615b04565b614e17886153b2565b86614d8e565b614d93565b865260298552852054909890614e3990871661500a565b614dfd565b50614d93565b94915050614e789194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506151c0565b51908152a1565b6001600160a01b0380821660008181526028602090815260408083205490969594919361ffff918216614f22578084526025855281888520541615614f11578615614ee05750614bd0614ed18661596e565b614eda8761500a565b90615820565b849193979650614cd07f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9396615700565b8751632a55ca5360e01b8152600490fd5b9693925050508315614f5f5750600080516020615bb4833981519152935061476090614740614f50846159a5565b614f598561500a565b906153c9565b9250614e787f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b949261524b565b90600161ffff8093160191821161205b57565b61219d90614a6f61ffff91614fb78360275416614f8c565b9260018060a01b0382169081600052602860205260406000209085169161ffff199183838254161790558260005260296020526040600020906001600160601b0360a01b82541617905560275416176027555b60ff602154166003811015611cdc5760010361503b576001600160a01b031660009081526023602052604090205490565b6001600160a01b031660009081526023602052604090206001015490565b61ffff80602754169081156151ae579060019061507881831115615a4e565b6000828152602960208181526040808420805486865282862080546001600160a01b0392831680895260288752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161511291908a61510383614095565b169060275416176027556159ca565b84825280865261512684848420541661500a565b95859860028160275416995b615144575b5050505050505050505050565b8181168a81116151a8578a81101561518d575080614df361516492614f8c565b9a909a5b89101561518857615179908b615b04565b6151828a6153b2565b87615132565b615137565b859b919b528383526151a387878720541661500a565b615168565b50615137565b6040516340d9b01160e01b8152600490fd5b6151c9906159a5565b61ffff908160275416916151dd8383615b04565b806151e784614095565b1661ffff1960275416176027556151fd836159ca565b81168092146132e757614f598261219d93600052602960205260018060a01b0390615237615231836040600020541661500a565b8561535d565b60005260296020526040600020541661500a565b615254906159a5565b61ffff908160275416916152688383615b04565b8061527284614095565b1661ffff196027541617602755615288836159ca565b8082168093146137d5579161fffe9160009180835260299060209382855260018060a01b03926040926152c86152c286868620541661500a565b8761535d565b82528086526152db84848420541661500a565b9585986001988997881b168160275416995b6152fe575050505050505050505050565b8181168a81116151a8578a811015615342575080614df361531e92614f8c565b9a909a5b89101561518857615333908b615b04565b61533c8a6153b2565b876152ed565b859b919b5283835261535887878720541661500a565b615322565b9190915b60018061ffff831611156153ac5781617fff911c16908361539760008481526029602052604060018060a01b039120541661500a565b10156153ac576153a79082615b04565b615361565b50509050565b60011b906201fffe61fffe83169216820361205b57565b90600161fffe83821b168160009161ffff908160275416925b6153f0575b50505050505050565b81811683811161545f5783811015615439575080614df361541092614f8c565b9690965b861015615434576154259087615b04565b61542e866153b2565b846153e2565b6153e7565b84526029602052604084205490969061545a906001600160a01b031661500a565b615414565b506153e7565b91909161ffff9283821660005260296020526154a860018060a01b03615491816040600020541661500a565b95831660005260296020526040600020541661500a565b908185106154b65750509190565b9350919050565b61219d90614eda61ffff916154d58360245416614f8c565b9260018060a01b0382169081600052602560205260406000209085169161ffff199183838254161790558260005260266020526040600020906001600160601b0360a01b825416179055602454161760245561500a565b61ffff80602454169081156151ae579060019061554b81831115615a4e565b6000828152602660208181526040808420805486865282862080546001600160a01b0392831680895260258752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a8952845416909117909255929587959394929392916155e591908a6155d683614095565b16906024541617602455615a0c565b8482528086526155f984848420541661500a565b95859860028160245416995b615616575050505050505050505050565b8181168a81116151a8578a81101561565a57508061490261563692614f8c565b9a909a5b8911156151885761564b908b615a6b565b6156548a6153b2565b87615605565b859b919b5283835261567087878720541661500a565b61563a565b61567e9061596e565b61ffff908160245416916156928383615a6b565b8061569c84614095565b1661ffff1960245416176024556156b283615a0c565b81168092146132e757614b278261219d93600052602660205260018060a01b03906156ec6156e6836040600020541661500a565b85615820565b60005260266020526040600020541661500a565b6157099061596e565b9061ffff9081602454169061571e8285615a6b565b8261572883614095565b1661ffff19602454161760245561573e82615a0c565b82841680921461581a5760009291929183835260269260209484865260018060a01b039160409161577c61577685858520541661500a565b8a615820565b815285875261578f83838320541661500a565b95615799896153b2565b978560245416985b8681168a811161580c578a8110156157f15750806149026157c192614f8c565b9a909a5b8911156157e4576157d6908b615a6b565b6157df8a6153b2565b6157a1565b5050505050505092505050565b849b919b5282825261580786868620541661500a565b6157c5565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156153ac5781617fff911c16908361585a60008481526026602052604060018060a01b039120541661500a565b11156153ac5761586a9082615a6b565b615824565b91615879836153b2565b600061ffff918260245416905b8381168281116158f857828110156158d25750806149026158a692614f8c565b9690965b8611156158c9576158bb9087615a6b565b6158c4866153b2565b615886565b50505050915050565b8352602660205260408320549096906158f3906001600160a01b031661500a565b6158aa565b5050505050915050565b919061ffff808416600052602660205261594360018060a01b0361592c816040600020541661500a565b92841660005260266020526040600020541661500a565b93848211156154b65750509190565b61ffff60245416156151ae57565b61ffff60275416156151ae57565b6001600160a01b031660009081526025602052604090205461ffff1690811561599357565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526028602052604090205461ffff1690811561599357565b61ffff16600090815260296020908152604080832080546001600160a01b031981169091556001600160a01b0316835260289091529020805461ffff19169055565b61ffff16600090815260266020908152604080832080546001600160a01b031981169091556001600160a01b0316835260259091529020805461ffff19169055565b15615a5557565b634e487b7160e01b600052600160045260246000fd5b615a9061ffff808060245416931693615a8684861115615a4e565b1691821115615a4e565b6000828152602660208181526040808420805486865282862080546001600160a01b0392831680895260258752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b615b1f61ffff808060275416931693615a8684861115615a4e565b6000828152602960208181526040808420805486865282862080546001600160a01b0392831680895260288752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda26469706673582212206fa7c426f6b653d524b8e179a4014abbbe2edc425d47335deb06c41e8b83ff6e64736f6c6343000813003360808060405234610016576114ac908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610d90575081631597bf7e14610d4a5781631904bb2e14610c7b5781631f3a0e4114610c5457816328d5551d14610c355781632bc31eb314610bec578163332a5ac9146103b25781633354c3e114610bc657816335142c8c14610b9f57816338a210b314610b6e5781633da33241146109b757816340550a1c146109785781634b0694e21461091f5781634b27aa72146108e357816352d182d11461089b578163599c7bd1146108765781635dd9147c146107ea5781636704287c146107cb57816369e737fd146107ac57816372d0a0e01461078d57816380f76021146106d35781638ef3f761146106a7578163903e693014610578578163948628a9146105595781639754b29e146104e15781639e33bd02146104c2578163ad81e4d6146104a2578163b2bd295e1461046a578163c5ab224114610442578163c7cda7621461041f578163cfca2824146103f6578163d081be03146103b7578163d6eb5910146103b2578163d92e8f1214610244578163f0cf6c9614610205575063f75499dc146101b157600080fd5b34610201576020366003190112610201576101f8602092826101d1610dac565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020157816003193601126102015760ff60135416905191600382101561023157602083838152f35b634e487b7160e01b815260218452602490fd5b83915034610201578160031936011261020157919060019081549361026885610f4f565b9061027585519283610f14565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b83831061032e5750505050508451948186019282875251809352808601818460051b8801019794915b8483106102dd5787890388f35b909192939495848061031c839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610dc7565b9a9801969594919091019201906102d0565b89959697999a989a51606081018181106001600160401b0382111761039f57875282548152828c01546001600160a01b03168882015286518c926003928a926103858161037e8160028b01610f66565b0382610f14565b8a82015281520192019201919099979998969594986102a7565b634e487b7160e01b8c526041875260248cfd5b610e07565b5050346102015760203660031901126102015760209161ffff9082906001600160a01b036103e3610dac565b168152601a855220541615159051908152f35b505034610201578160031936011261020157600e5490516001600160a01b039091168152602090f35b50503461020157816003193601126102015760209061ffff601654169051908152f35b5050346102015781600319360112610201576020906001600160401b03600c54169051908152f35b5050346102015760203660031901126102015760209181906001600160a01b03610492610dac565b1681526021845220549051908152f35b5050346102015781600319360112610201576020918254900b9051908152f35b505034610201578160031936011261020157602090600a549051908152f35b8284346105565780600319360112610556576104fb6111fc565b825191602080840190808552835180925280868601968360051b870101940192955b82871061052a5785850386f35b909192938280610546600193603f198a82030186528851610dc7565b960192019601959291909261051d565b80fd5b5050346102015781600319360112610201576020906002549051908152f35b83915034610201578160031936011261020157919082549061059982610f4f565b936105a684519586610f14565b828552601f1992836105b782610f4f565b019060209136838901376105ca81610f4f565b926105d787519485610f14565b8184526105e382610f4f565b8484019601368737845b828110610642575050508061060b8651978789988952880190610e25565b928684038288015251928381520193925b82811061062b57505050500390f35b83518552869550938101939281019260010161061c565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b015416806106848388611023565b5286526003875289862054610699828a611023565b5201979695939492976105ed565b83833461020157816003193601126102015760ff60125416905191600182101561023157602083838152f35b8284346105565780600319360112610556576106ed610f35565b508151916106fa83610ef9565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077057889061076c8888610759818a0382610f14565b8385015251928284938452830190610e62565b0390f35b83546001600160a01b03168552909301926001928301920161073e565b5050346102015781600319360112610201576020906005549051908152f35b5050346102015781600319360112610201576020906008549051908152f35b505034610201578160031936011261020157602090600f549051908152f35b82843461055657602036600319011261055657610805610dac565b9060ff60135416906003821015610863576020848460018503610842576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b03166000908152601560205260409020600101549061083c565b634e487b7160e01b815260218552602490fd5b50503461020157816003193601126102015760209060ff600e5460a01c169051908152f35b83833461020157816003193601126102015761ffff908160195416826016541601928284116108d05750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610556576020366003190112610556575061090561076c913561104d565b839291925193849315158452806020850152830190610e8b565b90508234610556576020366003190112610556575061093e903561104d565b82516109678161095960208201946020865287830190610e8b565b03601f198101835282610f14565b519020825191151582526020820152f35b5050346102015760203660031901126102015760209161ffff9082906001600160a01b036109a4610dac565b1681526017855220541615159051908152f35b8284346105565760209283600319360112610201578035906001600160401b0390818311610b6a5736602384011215610b6a57820135818111610b6a5760248301908060051b936024853692010111610b66579093855193849288840196818986018b8a525260608086019386010193819681925b848410610a5657505050505050610a4c925003601f198101835282610f14565b5190209051908152f35b9193959092949650605f19898203018752610a718883611312565b803560de1982360301811215610b5e5790610acb8e610aba8f959484610ab191019680875260e0610aa28980611312565b9188015261012087019061138c565b91860186611312565b848203603f1901606086015261138c565b8d6080908501358185015286610ae360608701611326565b1660a08501528401359063ffffffff60e01b8216809203610b6257908f9291610b2c9060c09283870152610b1a60a088018861133a565b878303603f190160e08901529061136b565b940135610100840152013590811515809203610b5e576001928e92838093015299019701940191889697959391610a2c565b8580fd5b8780fd5b8480fd5b8380fd5b82843461055657806003193601126105565750601c548151906001600160401b03908181168352831c166020820152f35b50503461020157816003193601126102015760209060ff60125460081c1690519015158152f35b50503461020157816003193601126102015760209061ffff60135460081c169051908152f35b505034610201576020366003190112610201576101f860209282610c0e610dac565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b5050346102015781600319360112610201576020906006549051908152f35b50503461020157816003193601126102015760209060ff60125460101c1690519015158152f35b82843461055657602036600319011261055657610cd190606080610c9d610dac565b92855190610caa82610ec8565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b61076c6003835192610ce284610ec8565b8054845260018101549460208501958652610d18600283015492828701938452610d1183518096819301610f66565b0384610f14565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610dc7565b505034610201576020366003190112610201576020906002610d87610d6d610dac565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b849034610201578160031936011261020157602090600b548152f35b600435906001600160a01b0382168203610dc257565b600080fd5b919082519283825260005b848110610df3575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610dd2565b34610dc2576000366003190112610dc2576020601454604051908152f35b90815180825260208080930193019160005b828110610e45575050505090565b83516001600160a01b031685529381019392810192600101610e37565b9060406020610e88936001600160401b0381511684520151918160208201520190610e25565b90565b9060606001600160401b0381610eaa8551608086526080860190610e62565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610ee357604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610ee357604052565b90601f801991011681019081106001600160401b03821117610ee357604052565b60405190610f4282610ef9565b6060602083600081520152565b6001600160401b038111610ee35760051b60200190565b80546000939260018083169383821c938515611019575b602095868610811461100357858552908115610fe45750600114610fa3575b5050505050565b90939495506000929192528360002092846000945b838610610fd057505050500101903880808080610f9c565b805485870183015294019385908201610fb8565b60ff19168685015250505090151560051b010191503880808080610f9c565b634e487b7160e01b600052602260045260246000fd5b93607f1693610f7d565b80518210156110375760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90604080519261105c84610ec8565b611064610f35565b845260009081606060209682888201528286820152015281528084528181209382519461109086610ec8565b83519161109c83610ef9565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b8181106111e057505050600484916110e18888999a038a610f14565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b8181106111bf57505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156111b65750829361117b575b505050159190565b9080929350813d83116111af575b6111938183610f14565b8101031261020157519081151582036105565750388080611173565b503d611189565b513d84823e3d90fd5b83516001600160a01b0316855287968996509485019490930192820161113e565b82546001600160a01b03168a52988701989185019185016110c5565b60255461120881610f4f565b90604061121781519384610f14565b818352601f1961122683610f4f565b0160005b81811061130157505081156112fc5780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b858882106112e657505061128592500382610f14565b60005b84811061129757505050505090565b6001906001600160a01b036112ac8285611023565b51166000526024845261037e6112ca86600020875192838092610f66565b6112d48289611023565b526112df8188611023565b5001611288565b845483526001948501948694509201910161126f565b505090565b80606060208093880101520161122a565b9035603e1982360301811215610dc2570190565b35906001600160401b0382168203610dc257565b9035601e1982360301811215610dc25701602081359101916001600160401b038211610dc2578136038313610dc257565b908060209392818452848401376000828201840152601f01601f1916010190565b906113978280611312565b906040815260808101926001600160401b0393846113b485611326565b16604084015260209384810135601e1982360301811215610dc25701908482359201958211610dc2578160051b36038613610dc2578190604060608601525260a08301949060005b81811061144e575050508083611413920190611312565b908281850391015280359060ff8216809203610dc25783611441604093928493610e8897528581019061133a565b939094820152019161136b565b90919586359060018060a01b038216809203610dc257908152850195850191906001016113fc56fea2646970667358221220a7b61af91d974861edf454d704d58a0fa3a8981396761652d84b0c75521bed2964736f6c634300081300336080806040523461001657614d9b908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146118405750806310fd4261146116c957806326811936146114b65780632e17de78146114895780633a4b66f1146114655780633f4ba83a146113ed57806341c0e1b51461135c5780634c860af6146113085780634e71d92d146111745780635c975abb146111445780636170b16214610d5a57806366783c9b14610c795780638456cb5914610c11578063b9ee2bb914610812578063cc2dc2b914610792578063d66d9e1914610747578063da5d09ee146101a55763ed7c4da1146100e757600080fd5b346101a257806003193601126101a257600080516020614d4683398151915260018154146101905780600183925561011d611b3d565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b1561018c5782602491604051928380926382985e0b60e01b82523360048301525af490811561018157839161016a575b50505580f35b61017390611922565b61017e578138610164565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101a25760603660031901126101a2576004356001600160401b038111610743576101d69036906004016119c8565b906024356001600160401b03811161073f576101f69036906004016119c8565b916044356001600160401b03811161073b576102169036906004016119c8565b9094610220613a7b565b610228611af8565b60ff601354166003811015610727576001036106f7578181036106e5578481036106e55760125460081c60ff161561050f57865b81811061026d575050505050505080f35b61028161027b828888614cb4565b90614b91565b6001600160a01b0361029c610297848689614cf5565b611d08565b166001600160a01b03909116036104fd576103066102be610297838588614cf5565b6102c9838989614cb4565b6102d785888d969496614cf5565b356102f26040519586936040602086015260608501916137f5565b90604083015203601f198101845283611950565b6001600160401b03601c541660405161031e81611935565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161035181611e8e565b61035a81611e8e565b60ff80198454169116178255518051906001600160401b0382116104e757610392826103896001860154611eae565b60018601611fa1565b602090601f8311600114610460579282600080516020614d0683398151915297959360029360019b9a9896600092610455575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361040b826120c6565b166001600160401b0319601c541617601c5561044660405193849360038552888060a01b031660208501526080806040860152840190613b19565b9060608301520390a10161025c565b0151905038806103c5565b906001840160005260206000209160005b601f19851681106104cf57508360029360019b9a9896938c93600080516020614d068339815191529b9997601f198116106104b6575b505050811b01898201556103db565b015160001960f88460031b161c191690553880806104a7565b91926020600181928685015181550194019201610471565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9492909391865b8681106105e6575050505050506001600160401b03600c541610156105d45761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061057281613b3e565b0390a1600e5460025482916001600160a01b0316803b1561018c578290602460405180948193637903ab2760e11b83528160048401525af180156105c9576105b957505080f35b6105c290611922565b6101a25780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b6105f461027b828686614cb4565b6001600160a01b039190828061060e610297858d89614cf5565b169116036104fd5761062c610627610297838b87614cf5565b612e61565b6106d3576106cd600192610658610647610297858d89614cf5565b610652858a8a614cb4565b91613beb565b61067b610669610297858d89614cf5565b610674858c8c614cf5565b35906125b7565b6106c361068c610297858d89614cf5565b610697858c8c614cf5565b35926106a4868b8b614cb4565b919092604051956106b487611935565b8652166020850152369161198c565b6040820152613cc8565b01610516565b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b610723610702613a9c565b60405163015538b160e01b8152602060048201529182916024830190613b19565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101a257806003193601126101a257600080516020614d4683398151915260018154146101905780600183925561077e611b3d565b610786613a7b565b61078e6144bb565b5580f35b50346101a25760603660031901126101a2576001600160401b0360043581811161080e573660238201121561080e576107d5903690602481600401359101611a23565b60443591821161080e573660238301121561080e5761080161080b923690602481600401359101611a79565b9060243590614856565b80f35b8280fd5b50346101a257600319606036820112610743576001600160401b03600435116107435760806004356004019160043536030112610743576024356001600160401b03811161080e576108689036906004016119c8565b91906044356001600160401b038111610c0d576108899036906004016119c8565b91610892611b3d565b60055494600b54956108a48782611b68565b60246004350135141580610bfd575b610beb57604051906108eb60208301836108cd8a83611c57565b03936108e1601f1995868101835282611950565b5190209882611b68565b6004356024013503610ae85750509161090e6109169261091c9697943691611a23565b933691611a79565b91614856565b602460043501358252816020526040822090803560421960043536030181121561073f576004350191600483016001600160401b0361095a82611ca8565b16936001600160401b031994858454161783556109806001926024848601930190611cbc565b91906001600160401b038311610ad457600160401b8311610ad4578154838355808410610ab9575b509087959493929190865260208620865b838110610a92575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b036109f586611ca8565b16908254161790556024600435013582526022602052610a19604083203390611e09565b5060043560240135600555600e546001600160a01b0316803b1561080e576040516347dc9b4f60e01b81529183918391829084908290610a5c9060048301611c57565b03925af180156105c957610a7e575b5050610a7961080b91611ca8565b6120de565b610a8790611922565b610743578138610a6b565b84959697506020610aa68495969394611d08565b848301558a9897969594019291016109b9565b82895260208920610ace918101908501611cf1565b386109a8565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610b0057505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610bca575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610b9f915082611950565b51902014610baa5780f35b6024600435013581526022602052610bc6604082203390611e09565b5080f35b82546001600160a01b03168552889550602090940193918101918101610b5e565b60405163fae4eadb60e01b8152600490fd5b50806024600435013514156108b3565b8480fd5b50346101a257806003193601126101a257610c2a611af8565b610c32611b3d565b600080516020614d26833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101a25760203660031901126101a257600435600080516020614d46833981519152600181541461019057600181558115610d485760ff60125460081c16610d3657338352600360205281604084205410610d245761078e8392338452600360205260408420610cec82825461264b565b9055610cfa8160025461264b565b6002553384526003602052604084205415610d16575b33613a01565b610d1f33614bcd565b610d10565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101a2576004356001600160401b0381116107435736602382011215610743576001600160401b0381600401351161074357366024826004013583010111610743576001600080516020614d468339815191525414610190576001600080516020614d4683398151915255610dd6611b3d565b610dde613a7b565b60ff60125460081c1680611137575b341561112557604182600401350361111357610e10826004013560248401614b91565b336001600160a01b03909116036104fd57610f2257806024610e389260040135910133613beb565b610e423433613e3c565b80601454600a54811015610e68575b50505b80600080516020614d468339815191525580f35b61ffff601654166001600160401b03600c541611610e515761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c959360405180610ebd81613b3e565b0390a160018060a01b03600e541690610ed96002548092611b68565b91803b15610f1d57602484926040519485938492637903ab2760e11b845260048401525af180156105c95715610e5157610f1290611922565b6101a2578038610e51565b505050fd5b610f343682600401356024840161198c565b6001600160401b03601c54169060405190610f4e82611935565b600282526020820190815233604083015282600052601d6020526040600020908251610f7981611e8e565b610f8281611e8e565b60ff80198454169116178255518051906001600160401b0382116104e757610fb1826103896001860154611eae565b602090601f831160011461108b579282600080516020614d068339815191529795936002936110689896600092611080575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361102c826120c6565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016137f5565b9060608301520390a161107b3433613f77565b610e54565b015190503880610fe3565b906001840160005260206000209160005b601f19851681106110fb575083600293611068989693600193600080516020614d068339815191529b9997601f198116106110e2575b505050811b016001820155610ffb565b015160001960f88460031b161c191690553880806110d2565b9192602060018192868501518155019401920161109c565b6040516318dca5e960e21b8152600490fd5b604051635a78c58160e11b8152600490fd5b61113f61417c565b610ded565b50346101a257806003193601126101a257602060ff600080516020614d2683398151915254166040519015158152f35b50346101a257806003193601126101a257600190600080516020614d4683398151915282815414610190578281556111aa611b3d565b336000908152601f602052604090209283549061ffff908183169283156112f657829060101c16918391808795818a01915b611270575b50505086611252937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611259575b61123a8133613a01565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f60205260409020859055611230565b9091939483811696828810156112ed578760005260208091858252604060002060405161129c81611907565b898254928383520154938491015243106112e257859493889688946112c386958a95611b68565b9c600052526000826040822082815501550116966000190116946111dc565b9850505094936111e1565b965094936111e1565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101a257604435600281101561074357611329611b3d565b600e546001600160a01b0316330361134a5761080b906024356004356146b3565b60405163e7e601db60e01b8152600490fd5b50346101a257806003193601126101a257611375613a7b565b61ffff61138b81601954168260165416906125a1565b166113db576012805462ff0000191662010000179055600e5481906001600160a01b0316803b1561017e578180916004604051809481936341c0e1b560e01b83525af180156105c9576105b95750f35b604051636b62255160e11b8152600490fd5b50346101a257806003193601126101a257611406611af8565b600080516020614d26833981519152805460ff8116156114535760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101a257611479611b3d565b611481613a7b565b61080b614191565b50346101a25760203660031901126101a2576114a3611b3d565b6114ab613a7b565b61080b6004356141eb565b50346101a257600319606036820112610743576004356001600160401b039182821161073f5760608260040191833603011261073f57602435838111610c0d576115049036906004016119c8565b91906044358581116116c55761151e9036906004016119c8565b916024860135966006549687891061167a576044019061153e8287611cbc565b919050600954168091116116b3576115568287611cbc565b905014158061168c575b61167a5761156e9085611cbc565b905015611668578794604051602081019061159b8161158d898561387f565b03601f198101835282611950565b5190209688036115cc57505050505050600754146115b7575080f35b81526023602052610bc6604082203390611e09565b6115e6939261090e88969893610916939a989a3691611a23565b8060206040516115f581611907565b84815201528160065560075582526023602052611616604083203390611e09565b50600e546001600160a01b031690813b1561018c57829161164d91604051948580948193630bed761560e01b83526004830161387f565b03925af180156105c95761165f575080f35b61080b90611922565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b50600854801561169f5788061515611560565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101a257602090816003193601126101a2576001600160401b039160043583811161080e573660238201121561080e5761170f90369060248160040135910161198c565b92611718611b3d565b3383526017825261ffff60408420541615611828578351156118165733835260248252604083209184519182116118025761175d826117578554611eae565b85611fa1565b80601f831160011461179e5750839482939492611793575b50508160011b916000199060031b1c19161790555b610bc633611da0565b015190503880611775565b90601f198316958486528286209286905b8882106117ea575050836001959697106117d1575b505050811b01905561178a565b015160001960f88460031b161c191690553880806117c4565b806001859682949686015181550195019301906117af565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b9050816003193601126107435734156118f8575060ff60125460081c16610d3657338152600360205260408120541561189f575b33815260036020526040812061188b348254611b68565b905561189934600254611b68565b60025580f35b600454600160401b8110156118e4576118c18160016118df9301600455611d1c565b81546001600160a01b0360039290921b91821b19163390911b179055565b611874565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757604052565b606081019081106001600160401b038211176104e757604052565b90601f801991011681019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757601f01601f191660200190565b92919261199882611971565b916119a66040519384611950565b8294818452818301116119c3578281602093846000960137010152565b600080fd5b9181601f840112156119c3578235916001600160401b0383116119c3576020808501948460051b0101116119c357565b6001600160401b0381116104e75760051b60200190565b35906001600160a01b03821682036119c357565b9291611a2e826119f8565b91611a3c6040519384611950565b829481845260208094019160051b81019283116119c357905b828210611a625750505050565b838091611a6e84611a0f565b815201910190611a55565b92919092611a86846119f8565b91611a946040519384611950565b829480845260208094019060051b8301928284116119c35780915b848310611abe57505050505050565b82356001600160401b0381116119c357820184601f820112156119c3578691611aed868385809535910161198c565b815201920191611aaf565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611b2b57565b6040516330cd747160e01b8152600490fd5b60ff600080516020614d268339815191525416611b5657565b60405163d93c066560e01b8152600490fd5b91908201809211611b7557565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156119c3570190565b35906001600160401b03821682036119c357565b9035601e19823603018112156119c35701602081359101916001600160401b0382116119c3578160051b360383136119c357565b60408201916001600160401b03611bfd83611b9f565b1681526060611c1160209384810190611bb3565b839195604086839601525201929160005b828110611c30575050505090565b909192938280600192838060a01b03611c4889611a0f565b16815201950193929101611c22565b6020815260806001600160401b03611ca16060611c87611c778780611b8b565b85602088015260a0870190611be7565b956020810135604087015260408101358287015201611b9f565b1691015290565b356001600160401b03811681036119c35790565b903590601e19813603018212156119c357018035906001600160401b0382116119c357602001918160051b360383136119c357565b818110611cfc575050565b60008155600101611cf1565b356001600160a01b03811681036119c35790565b600454811015611d535760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611d535760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611e0457602554600160401b8110156118e4579082611df0611dd984600160409601602555611d69565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b91906001830160009082825280602052604082205415600014611e8857845494600160401b861015611e745760018601808255861015611e6057836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60041115611e9857565b634e487b7160e01b600052602160045260246000fd5b90600182811c92168015611ede575b6020831014611ec857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611ebd565b9060009291805491611ef983611eae565b918282526001938481169081600014611f5b5750600114611f1b575b50505050565b90919394506000526020928360002092846000945b838610611f47575050505001019038808080611f15565b805485870183015294019385908201611f30565b9294505050602093945060ff191683830152151560051b01019038808080611f15565b60005b838110611f915750506000910152565b8181015183820152602001611f81565b9190601f8111611fb057505050565b611fdc926000526020600020906020601f840160051c83019310611fde575b601f0160051c0190611cf1565b565b9091508190611fcf565b908082146120c257611ffa8154611eae565b906001600160401b0382116104e757819061201f826120198654611eae565b86611fa1565b600090601f83116001146120565760009261204b575b50508160011b916000199060031b1c1916179055565b015490503880612035565b81526020808220858352818320935090601f1985169083905b8282106120a9575050908460019594939210612090575b505050811b019055565b015460001960f88460031b161c19169055388080612086565b849581929585015481556001809101960194019061206f565b5050565b9060016001600160401b0380931601918211611b7557565b601c546001600160401b03828116929080831684106121095760405163040aaa0560e11b8152600490fd5b808360401c168410611f155780604093841c165b848282161115612184575050916020916121577f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946120c6565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b816121a2826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166121c781611e8e565b80850361223957505060036121f860016121fe94959697019260018060a01b03166000526015602052604060002090565b01611fe8565b61221b816001600160401b0316600052601d602052604060002090565b91600090818455600193612230858201612658565b0155011661211d565b9091945061224681611e8e565b6003918183036123e457505087519361226e85612267816001809a01611ee8565b0386611950565b84518501916020928a878583019203126119c357838701518981116119c35787019681603f890112156119c35787858d990151926122b76122ae85611971565b9a519a8b611950565b838a528d84830101116119c3578c926122d59184888c019101611f7e565b015192816122f58460018060a01b03166000526015602052604060002090565b01918751918a83116123cf578a98612317846123118754611eae565b87611fa1565b81601f851160011461235c575061234c9798999a8493928492600095612351575b50501b92600019911b1c19161790556125b7565b6121fe565b015193503880612338565b91601f9b9493919b1984169b866000528c84600020946000915b82106123b45750508461234c9a9b9c9d1061239a575b50505050811b0190556125b7565b01519060f884600019921b161c191690553880808061238c565b8383015186558f9d509487019492830192908101908e612376565b60246000634e487b7160e01b81526041600452fd5b9150919388959395519361240085612267816001809501611ee8565b602080868051810103126119c35781818c9701519561241e81611e8e565b0361254357849061242f82856126a1565b601e5461243c9043611b68565b9287519061244982611907565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061248c916125a1565b169c60009d8e5282870188528d2092518355519101556124ab9061258e565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561080e578291602483928a5195869384926345f5448560e01b845260048401525af190811561253857509084939291612529575b506121fe565b61253290611922565b38612523565b8751903d90823e3d90fd5b50508293509161255391926125fb565b600e541690813b156119c3578651916316989f6f60e21b83528260048160009485945af19081156125385750908493929161252957506121fe565b90600161ffff80931601918211611b7557565b91909161ffff80809416911601918211611b7557565b9060018060a01b0382166000526015602052604060002081815491558181146000146125e257505050565b8111156125f257611fdc91612730565b611fdc91612a76565b90611fdc9161264360018060a01b0382169283600052601560205261262881600160406000200154611b68565b93600052601560205283600160406000200155601454611b68565b601455612730565b91908203918211611b7557565b6126628154611eae565b908161266c575050565b81601f6000931160011461267e575055565b90808391825261269d601f60208420940160051c840160018501611cf1565b5555565b9061270e6127169260018060a01b03811690600082815260156020526126ce85600160408420015461264b565b9281526015602052604081206002810184815481159081612727575b501561271b575090826003926127099483558160018401555501612658565b612a76565b60145461264b565b601455565b92505060010155612a76565b905015386126ea565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612961578360135460081c1684601654161061292d57612775613583565b60019283825260188652828a832054168861278f82612e61565b106128a757508152601a85528389822054166127fe5750505050506127f97f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946127d983612dec565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b612807866135d6565b9261281187612e61565b935b8186821611612869575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016127f9565b808561288886617fff8f95871c1694858852601b8c5287205416612e61565b10156128a1579061289a839282613735565b9050612813565b5061281d565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506127f995601a916128e261327b565b83525220541661291f575b6128f684613206565b6128ff83612dec565b516001600160a01b03928316815292909116602083015281906040820190565b6129288461302b565b6128ed565b50505050506127f97f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946127d983613206565b97929150612972859497969561359f565b9761297c85612e61565b976129868a613197565b8460165416905b858116828111612a3f5782811015612a235750806129ad6129b39261258e565b90613533565b9b909b5b8b11156129d6576129c8908c61369c565b6129d18b613197565b61298d565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016127f9565b849c919c5260188352612a3a858886205416612e61565b6129b7565b505050505050506127f991929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506127d9565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612cb0578082526017835287868320541615612c9f578415612bf75750612ac38361359f565b97612acd84612e61565b985b6001808a83161115612be85781617fff911c1690818452601885528a612af9848a87205416612e61565b1115612b0e57612b09908261369c565b612acf565b505091939597509193955b6019541615612be057612b2a613583565b60018252601883528581818420541692601b612b4585612e61565b95612b4e613591565b600183525220541691612b6083612e61565b11612ba757505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016127f9565b915091506127f97ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612bd861327b565b6128ed612ec4565b505050505050565b50509193959750919395612b19565b829450612c2b7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996133c4565b8651908152a160195416612c3f5750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612c6d613591565b6001835252205416612c93612c8182612e61565b92612c8a612ec4565b6127d983613206565b0390a138808080611f15565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612db1575061fffe9193612ccd866135d6565b93612cd787612e61565b9480966001958692831b168160195416925b612d3d575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016127f9565b818116838111612dab578d9084811015612d8f57505080612d60612d669261258e565b906131ae565b9890985b881015612d8a57612d7b9089613735565b612d8488613197565b86612ce9565b612cee565b8652601b8552852054909890612da6908716612e61565b612d6a565b50612cee565b94915050612de59194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9596925061302b565b51908152a1565b611fdc90612e5b61ffff91612e04836019541661258e565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955612e61565b90613142565b60ff601354166003811015611e9857600103612e92576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611b7557565b61ffff80601954169081156130195790600190612ee38183111561367f565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291612f7d91908a612f6e83612eb0565b169060195416176019556135fb565b848252808652612f91848484205416612e61565b95859860028160195416995b612faf575b5050505050505050505050565b8181168a8111613013578a811015612ff8575080612d60612fcf9261258e565b9a909a5b891015612ff357612fe4908b613735565b612fed8a613197565b87612f9d565b612fa2565b859b919b5283835261300e878787205416612e61565b612fd3565b50612fa2565b6040516340d9b01160e01b8152600490fd5b613034906135d6565b61ffff908160195416916130488383613735565b8061305284612eb0565b1661ffff196019541617601955613068836135fb565b80821680931461313d579161fffe91600091808352601b9060209382855260018060a01b03926040926130a86130a2868686205416612e61565b87613142565b82528086526130bb848484205416612e61565b9585986001988997881b168160195416995b6130de575050505050505050505050565b8181168a8111613013578a811015613122575080612d606130fe9261258e565b9a909a5b891015612ff357613113908b613735565b61311c8a613197565b876130cd565b859b919b52838352613138878787205416612e61565b613102565b505050565b9190915b60018061ffff831611156131915781617fff911c16908361317c6000848152601b602052604060018060a01b0391205416612e61565b10156131915761318c9082613735565b613146565b50509050565b60011b906201fffe61fffe831692168203611b7557565b91909161ffff92838216600052601b6020526131f160018060a01b036131da8160406000205416612e61565b958316600052601b60205260406000205416612e61565b908185106131ff5750509190565b9350919050565b611fdc9061327561ffff9161321e836016541661258e565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655612e61565b906134e4565b61ffff8060165416908115613019579060019061329a8183111561367f565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161333491908a61332583612eb0565b1690601654161760165561363d565b848252808652613348848484205416612e61565b95859860028160165416995b613365575050505050505050505050565b8181168a8111613013578a8110156133a95750806129ad6133859261258e565b9a909a5b891115612ff35761339a908b61369c565b6133a38a613197565b87613354565b859b919b528383526133bf878787205416612e61565b613389565b6133cd9061359f565b9061ffff908160165416906133e2828561369c565b826133ec83612eb0565b1661ffff1960165416176016556134028261363d565b8284168092146134de5760009291929183835260189260209484865260018060a01b039160409161344061343a858585205416612e61565b8a6134e4565b8152858752613453838383205416612e61565b9561345d89613197565b978560165416985b8681168a81116134d0578a8110156134b55750806129ad6134859261258e565b9a909a5b8911156134a85761349a908b61369c565b6134a38a613197565b613465565b5050505050505092505050565b849b919b528282526134cb868686205416612e61565b613489565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156131915781617fff911c16908361351e60008481526018602052604060018060a01b0391205416612e61565b11156131915761352e908261369c565b6134e8565b919061ffff808416600052601860205261357460018060a01b0361355d8160406000205416612e61565b928416600052601860205260406000205416612e61565b93848211156131ff5750509190565b61ffff601654161561301957565b61ffff601954161561301957565b6001600160a01b031660009081526017602052604090205461ffff169081156135c457565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156135c457565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561368657565b634e487b7160e01b600052600160045260246000fd5b6136c161ffff8080601654169316936136b78486111561367f565b169182111561367f565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61375061ffff8080601954169316936136b78486111561367f565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156119c35701602081359101916001600160401b0382116119c35781360383136119c357565b908060209392818452848401376000828201840152601f01601f1916010190565b61383f6138346138268380611b8b565b604085526040850190611be7565b916020810190611b8b565b91602081830391015281359160ff83168093036119c35761386c60409161387c94845260208101906137c4565b91909281602082015201916137f5565b90565b602080825261388e8380611b8b565b60609182818501526138a560809283860190611be7565b6138bc604096838101358888015287810190611bb3565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b8887106138f757505050505050505050505090565b909192939495969798999a828282030187526139138c85611b8b565b90813560de19833603018112156119c3578782528201918a90888e6001600160401b0361398a61397a61396761395e61394c8b80611b8b565b60e080988c01526101208b0190613816565b978a018a611b8b565b96603f1997888a830301868b0152613816565b928d8901358d8901528801611b9f565b169060a091828701528a8701359263ffffffff60e01b84168094036119c3578f956139c16139d19460c096878b01528a018a6137c4565b92909189850301908901526137f5565b9401356101008401520135908115158092036119c3578a01529a88019998979660010195870194939291906138e2565b814710613a63576000918291829182916001600160a01b03165af13d15613a5e573d613a2c81611971565b90613a3a6040519283611950565b8152600060203d92013e5b15613a4c57565b604051630a12f52160e11b8152600490fd5b613a45565b60405163cd78605960e01b8152306004820152602490fd5b60ff60125460101c16613a8a57565b60405163248c8efb60e11b8152600490fd5b60405190608082018281106001600160401b038211176104e7576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613b3281518092818552858086019101611f7e565b601f01601f1916010190565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613b9a57505050505050505090565b909192939495856003613bd9839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01611ee8565b9a019401940192969594939190613b88565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104e757613c2c81613c268454611eae565b84611fa1565b6000601f8211600114613c655781929394600092613c5a5750508160011b916000199060031b1c1916179055565b013590503880612035565b601f198216948382526020918281209281905b888210613cb057505083600195969710613c9657505050811b019055565b0135600019600384901b60f8161c19169055388080612086565b80600184968294958701358155019501920190613c78565b60018054600160401b8110156104e757818101808355811015611d5357600360009183835202918351837fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6015560407fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf87fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf785019460209560018060a01b0387890151166001600160601b0360a01b82541617905501940151918251926001600160401b0384116118e457613da684613da08854611eae565b88611fa1565b8491601f8511600114613dde579394508492919083613dd3575b50501b916000199060031b1c1916179055565b015192503880613dc0565b86815285812093958591601f198316915b88838310613e225750505010613e0957505050811b019055565b015160001960f88460031b161c19169055388080612086565b858701518855909601959485019487935090810190613def565b90613e5190613e4b8184613f50565b826125fb565b60ff60125460081c1615613e625750565b6000908160019283549084815b838110613efe575b5050505015613e84575050565b613ef76106c3611fdc93613eaa8460018060a01b03166000526015602052604060002090565b0154926003613ecb8260018060a01b03166000526015602052604060002090565b019060405194613eda86611935565b85526001600160a01b031660208501526040519283918290611ee8565b0382611950565b818352600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614613f4257018590613e6f565b509250505038808481613e77565b60018060a01b03166000526015602052613f736002604060002001918254611b68565b9055565b91906040519281602085015260208452613f9084611907565b6001600160401b03601c54169360405194613faa86611935565b60008652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151613fde81611e8e565b613fe781611e8e565b60ff80198a54169116178855519687516001600160401b0381116104e75761401f816140166001850154611eae565b60018501611fa1565b6020601f82116001146140f1576140d8949282600080516020614d06833981519152979593600293611fdc9c9d6000926140e6575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361409d826120c6565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613b19565b9060608301520390a1613f50565b015190503880614054565b6001830160005260206000209960005b601f1984168110614164575092600183611fdc9b9c6002946140d89997600080516020614d068339815191529b9997601f1981161061414b575b505050811b01600182015561406c565b015160001960f88460031b161c1916905538808061413b565b828201518c556001909b019a60209283019201614101565b60ff601354166003811015611e98576106f757565b61419961417c565b34156111255733600090815260156020526040902060020154156141d95760ff60125460081c16156141cf57611fdc3433613f77565b611fdc3433613e3c565b60405163528fc16560e01b8152600490fd5b6141f361417c565b801561425a57336000908152601560205260409020600201548015611828578110156142495760ff60125460081c161561423157611fdc90336142bf565b8061423f611fdc923361426c565b610d1081336126a1565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106142ad576142999161264b565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526142d884611907565b6001600160401b03601c541693604051946142f286611935565b60018652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161432681611e8e565b61432f81611e8e565b60ff80198a54169116178855519687516001600160401b0381116104e75761435e816140166001850154611eae565b6020601f821160011461443057614417949282600080516020614d06833981519152979593600293611fdc9c9d600092614425575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036143dc826120c6565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613b19565b9060608301520390a161426c565b015190503880614393565b6001830160005260206000209960005b601f19841681106144a3575092600183611fdc9b9c6002946144179997600080516020614d068339815191529b9997601f1981161061448a575b505050811b0160018201556143ab565b015160001960f88460031b161c1916905538808061447a565b828201518c556001909b019a60209283019201614440565b60ff60125460081c166145a8575b336000908152601560205260409020600201548015611828576144eb336145b5565b50600090338252602460205281604081206145068154611eae565b8061456b575b50505060ff60125460081c161561452857611fdc9150336142bf565b6040611fdc923381526003602052205480614549575b5061423f813361426c565b806145596145659260025461264b565b600255610d1033614bcd565b3861453e565b82601f8211600114614583575050555b81388061450c565b90918082526145a1601f60208420940160051c840160018501611cf1565b555561457b565b6145b061417c565b6144c9565b600081815260266020526040812054909190801561469a576000199080820181811161468657602554908382019182116146725780820361463e575b505050602554801561462a5781019061460982611d69565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b61465c61464d611dd993611d69565b90549060031b1c928392611d69565b90558452602660205260408420553880806145f1565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611d535760209160051b010190565b919091821561313d576040908151906020938483018381106001600160401b038211176104e7578452600092839052600281101561484257806147a35750600b546146fd9161264b565b8152602283528181208251808286829454938481520190855286852092855b8882821061478d5750505061473392500382611950565b928351948515612be057858110612be05785900493825b86811061475a5750505050505050565b6001906001600160a01b0361476f828561469f565b5116855260218452858520614785888254611b68565b90550161474a565b855484526001958601958795509301920161471c565b8460018592146000146147f357606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614863836119f8565b9360409461487386519182611950565b848152601f19614882866119f8565b0194602095368784013760005b81811061495957505060009461ffff8060165416600192839182945b614908575b505050505060ff600e5460a01c1694858102958187041490151715611b755760646148dc9504916149d0565b90156148e6575050565b6006811015611e985760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614951576000908152601885522054849392918691859161494791614941906001600160a01b0316612e61565b90611b68565b9b011694936148ab565b5050986148b0565b6001600160a01b038061496c838761469f565b51166000526017885261ffff896000205416156149ac579061499b600192614994838861469f565b5116612e61565b6149a5828661469f565b520161488f565b88906149ba6024938761469f565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614ab85782518514801590614aad575b614aa0579392919085945b848610614a18575050505050501015614a1057600090600590565b600190600090565b909192939495614a32614a2b888461469f565b5184614ac5565b50614a3c81611e8e565b614a8f576001600160a01b0380614a538a8861469f565b5116911603614a7f57614a73600191614a6c898861469f565b5190611b68565b960194939291906149f5565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b5083518514156149ea565b5050505050905090600290565b8151919060418303614af657614aef92506020820151906060604084015193015160001a90614b01565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614b8557926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614b795780516001600160a01b03811615614b7057918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b90614b9e6041821461367f565b806001116119c357614bb9913691600019019060010161198c565b80516020909101206001600160a01b031690565b60049081549160005b838110614be35750505050565b614bec81611d1c565b90546003916001600160a01b039190831b1c811685821614614c12575050600101614bd6565b929350939060001991828101908111614c9f5790614c4384614c36614c6294611d1c565b905490891b1c1691611d1c565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015614c8a570192614c7584611d1c565b81939154921b1b191690555538808080611f15565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b9190811015611d535760051b81013590601e19813603018212156119c35701908135916001600160401b0383116119c35760200182360381136119c3579190565b9190811015611d535760051b019056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a2646970667358221220f77b469ad41d890021da53a2a7426b41d10e67ba4805753f9ed9c3e881e183eb64736f6c634300081300336080806040523461001657611d44908161001c8239f35b600080fdfe60808060405260043610156200001457600080fd5b60003560e01c63aa3d1588146200002a57600080fd5b34620005c657600319602036820112620005c6576001600160401b0360043511620005c6576101609060043536030112620005c65760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620008c55760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b03811690819003620005c6576000546001600160a01b031603620008b357604051620000e781620008d4565b6002815260005b60408110620008845750600154604051906001600160a01b03166200011382620008d4565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200080f57620001b79454918181106200077a575b8181106200075a575b8181106200073a575b8181106200071a575b818110620006fa575b818110620006da575b818110620006bc575b10620006a6575b500382620008f0565b6040820152620001c78262000933565b52620001d38162000933565b50600254604051906001600160a01b0316620001ef82620008d4565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b8060078301106200079a576200028b9454918181106200077a578181106200075a578181106200073a578181106200071a57818110620006fa57818110620006da57818110620006bc5710620006a657500382620008f0565b60408201526200029b8262000957565b52620002a78162000957565b50604051908161137c8101106001600160401b0361137c84011117620006905761137c620009938339604061137c830181815282519181018290526060600583901b82018101936020019291600091015b828210620005f857858561137c82018103602061137c8401015260043560040135604219600435360301811215620005c6576004350161016082526001600160401b03620003496004830162000968565b16610160830152602481013560221982360301811215620005c657016001600160401b03600482013511620005c6576024810190600481013560051b36038213620005c657604061018084015260048101356101a08401526101c08301919060005b60048201358110620005cb57506001600160a01b039150620003d490506004356024016200097d565b166020830152604460043501356001811015620005c65760408301526064600435013560608301526001600160401b036200041460846004350162000968565b1660808301526001600160401b036200043260a46004350162000968565b1660a083015260c4600435013560ff8116809103620005c65760c083015260e4600435013561ffff8116809103620005c65760e0830152610104600435013561010083015261012460043501358060000b809103620005c65761012083015261014460043501356003811015620005c6576101408493620004b38362000912565b015203906000f08015620005ba5733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005a4576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b03620005e7896200097d565b1681520195019392019050620003ab565b90919293605f1961137c870182030182528451602060806040606085019360018060a01b03815116865283810151620006318162000912565b84870152015193606060408201528451809452019201906000905b8082106200066c57505050602080600192960192019201909291620002f8565b82516001600160e01b0319168452602093840193909201916001909101906200064c565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b6020906040516200089581620008d4565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b038211176200069057604052565b90601f801991011681019081106001600160401b038211176200069057604052565b600311156200091d57565b634e487b7160e01b600052602160045260246000fd5b805115620009415760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620009415760400190565b35906001600160401b0382168203620005c657565b35906001600160a01b0382168203620005c65756fe6080604052346106715761137c803803809161001c826080610faf565b60803960408112610671576080516001600160401b0381116106715760808201609f8201121561067157806080015161005481610fd2565b906100626040519283610faf565b8082526020820180938560800160208460051b836080010101116106715760a08101915b60a0600585901b8301018310610e5457505060a051939150506001600160401b03831161067157610160938381038513610671576040519485016001600160401b0381118682101761075d5760405260808401516001600160401b038111610671576100fa91608001908560800101611011565b845261010860a08401610fe9565b6020850181905260c0840151600181101561067157604086015260e084015160608601526101396101008501610ffd565b608086015261014b6101208501610ffd565b60a086015261014084015160ff811681036106715760c086015261016084015161ffff811681036106715760e0860152610100938481608001015185870152610120816080010151908160000b8203610671576101409161012088015260800101516003811015610671576101408601526001600160a01b031615610e425760a08401516001600160401b031615610e305760016101408501516101ee816110b4565b6101f7816110b4565b141580610e24575b610e125760ff60c08501511660338110908115610e07575b50610df557601261012085015160000b13610de3577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111761075d576020810160405260008152825160005b8181106107d55750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061077f5788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67389806102fa8b8b600060208501528382036040850152611181565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054909116821790556101408301516103be816110b4565b6103c7816110b4565b14610773575b81518051601080546001600160401b0319166001600160401b0392831617905560209190910151805191821161075d5768010000000000000000821161075d5760115482601155808310610728575b506020016011600052602060002060005b83811061070b57858560018060a01b03602083015116600e5490604084015160018110156106f5576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040516104e881610f79565b6010546001600160401b0316815260405160118054808352600091825260008051602061131c83398151915291839160208301915b8181106106d357505061053292500382610faf565b6020820152610574600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518093819263aa5106cb60e01b83526040600484015260448301906110be565b3060248301520381855af490811561067e5760009161068a575b506020906105b89260405180809581946390ba52cf60e01b835286600484015260248301906110be565b03915af490811561067e57600091610647575b50600d55610140810151906105df826110b4565b6105e8826110b4565b60ff62ffff0060e0601354936064600855600a60018060401b03196009541617600955015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c5560405160eb90816112318239f35b90506020813d602011610676575b8161066260209383610faf565b810103126106715751826105cb565b600080fd5b3d9150610655565b6040513d6000823e3d90fd5b90503d806000833e61069c8183610faf565b810191602082840312610671578151916001600160401b038311610671576105b8936020936106cb9201611011565b91509161058e565b84546001600160a01b031683526001948501948694506020909301920161051d565b634e487b7160e01b600052602160045260246000fd5b82516001600160a01b03168183015560209092019160010161042d565b601160005260008051602061131c833981519152908382015b818301811061075157505061041c565b60008155600101610741565b634e487b7160e01b600052604160045260246000fd5b600060608301526103cd565b909192946020806107c7600193607f198b8203018652606060408b51878060a01b038151168452858101516107b3816110b4565b868501520151918160408201520190611143565b9701920192019092916102b5565b60406107e18287611119565b5101516001600160a01b036107f68388611119565b51511690805115610dca57602061080d8489611119565b510151610819816110b4565b610822816110b4565b80610a24575081156109fb5761ffff60008051602061133c83398151915254169161088c60405161085281610f94565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b6040820152826111f1565b8151916000935b8385106108a95750505050506001905b01610287565b6001600160e01b03196108bc8684611119565b5116600081815260008051602061135c83398151915260205260409020546001600160a01b03166109e3576109526040516108f681610f79565b85815261ffff84166020808301918252600085815260008051602061135c833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b60008051602061133c83398151915254906801000000000000000082101561075d576109948260016109b1940160008051602061133c833981519152556111c1565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff808216146109cd57600161ffff81921601940193610893565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610a20906024830190611143565b0390fd5b610a2d816110b4565b60018103610b9457508115610b6f57610a8c604051610a4b81610f94565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b6040820152836111f1565b80519060005b828110610aa557505050506001906108a3565b6001600160e01b0319610ab88284611119565b5116600081815260008051602061135c83398151915260205260409020546001600160a01b0316308114610b5657858114610b3d5715610b2557600090815260008051602061135c8339815191526020526040902080546001600160a01b03191685179055600101610a92565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610a20906024830190611143565b610b9d816110b4565b60028103610daa575060008051602061133c833981519152549180610d92575080519060005b828110610bd657505050506001906108a3565b6001600160e01b0319610be98284611119565b5116908160005260008051602061135c83398151915260205260406000209460405195610c1587610f79565b546001600160a01b03811680885260a09190911c61ffff16602088015215610d795785516001600160a01b03163014610d605780156109cd576000190180958161ffff60208301511603610ce5575b505060008051602061133c83398151915254918215610ccf5760019260001901610c8d816111c1565b63ffffffff82549160031b1b1916905560008051602061133c8339815191525560005260008051602061135c8339815191526020526000604081205501610bc3565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610cf6610d59946111c1565b90549060031b1c60e01b92610d13846109948585850151166111c1565b01516001600160e01b0319909216600090815260008051602061135c83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610c64565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610dc3816110b4565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610217565b6040516368f7a67560e11b8152600490fd5b506060840151156101ff565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161067157606090830160808101908903601f1901821361067157604051918083016001600160401b03811184821017610f6457604052610ea260208301610fe9565b8352604082015160038110156106715760208401528101516001600160401b0381116106715789608001603f8284010112156106715760208183010151610ee881610fd2565b92610ef66040519485610faf565b81845260208401908c60800160408460051b86840101011161067157604084820101915b60408460051b86840101018310610f435750505050506040820152815260209283019201610086565b82516001600160e01b03198116810361067157815260209283019201610f1a565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b0382111761075d57604052565b606081019081106001600160401b0382111761075d57604052565b601f909101601f19168101906001600160401b0382119082101761075d57604052565b6001600160401b03811161075d5760051b60200190565b51906001600160a01b038216820361067157565b51906001600160401b038216820361067157565b9190604083820312610671576040519261102a84610f79565b8361103482610ffd565b815260208281015190926001600160401b03821161067157019280601f8501121561067157835161106481610fd2565b946110726040519687610faf565b818652848087019260051b8201019283116106715784809101915b83831061109c57505050500152565b81906110a784610fe9565b815201910190849061108d565b600311156106f557565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b8281106110fc575050505090565b83516001600160a01b0316855293810193928101926001016110ee565b805182101561112d5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b828110611163575050505090565b83516001600160e01b03191685529381019392810192600101611155565b919082519283825260005b8481106111ad575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161118c565b9060008051602061133c833981519152805483101561112d57600052601c60206000208360031c019260021b1690565b803b156111fc575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610a2090604483019061118156fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122034477731f6063883c0c4e645241b575decdff772ed0eed5c444e648eaad09a2e64736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a264697066735822122056352174ae2f3cc8b74ee0638a0eb0959aefb2c77c028d1f2c960d17a9f408b064736f6c634300081300336080806040523461001657610b21908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba26469706673582212202229f911c9a50f4c7891678d6e2abc5c757052067fc33ef42e2db8d7502b68ce64736f6c634300081300336080806040523461001657614eee908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146119f25750806310fd426114611881578063268119361461166e5780632e17de7814611641578063350a14bf1461160e5780633a4b66f1146115ea5780633f4ba83a1461157257806341c0e1b5146114e15780634c860af61461148d5780634e71d92d146112f95780635c975abb146112c95780636170b16214610edf57806366783c9b14610dfe5780638456cb5914610d96578063b9ee2bb914610997578063c7ebdaef14610951578063cc2dc2b9146108d1578063d66d9e1914610886578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b857600080516020614e9983398151915260018154146101a657806001839255610133611cfe565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611ad4565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611b75565b906024356001600160401b03811161087e5761020c903690600401611b75565b916044356001600160401b03811161087a5761022c903690600401611b75565b9094610236613c28565b61023e611cb9565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b610297610291828888614e07565b90614ce4565b6001600160a01b036102b26102ad848689614e48565b611eb5565b166001600160a01b03909116036105135761031c6102d46102ad838588614e48565b6102df838989614e07565b6102ed85888d969496614e48565b356103086040519586936040602086015260608501916139a2565b90604083015203601f198101845283611b02565b6001600160401b03601c541660405161033481611ae7565b600381526020810184815260018060a01b038416604083015282600052601d60205260406000209082516103678161203b565b6103708161203b565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f600186015461205b565b6001860161214e565b602090601f8311600114610476579282600080516020614e5983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361042182612273565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190613cc6565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614e598339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061058881613ceb565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611ad4565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a610291828786614e07565b6001600160a01b03919082806106246102ad858d8d614e48565b169116036105135761064261063d6102ad838b8b614e48565b61300e565b610812576106d99161066c61065b6102ad848c8c614e48565b610666848a89614e07565b91613d98565b61068f61067d6102ad848c8c614e48565b61068884878a614e48565b3590612764565b61069d6102ad838b8b614e48565b906106a9838689614e48565b35906106b6848a89614e07565b9590604051936106c585611ae7565b845260209683888601961686523691611b3e565b9260408301938452600154600160401b8110156104fd578060016107009201600155613e75565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e82610748855461205b565b8561214e565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b610862610841613c49565b60405163015538b160e01b8152602060048201529182916024830190613cc6565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614e9983398151915260018154146101a6578060018392556108bd611cfe565b6108c5613c28565b6108cd61460e565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611be4565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611c3a565b90602435906149a9565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a9061228b565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611b75565b91906044356001600160401b038111610d9257610a0e903690600401611b75565b91610a17611cfe565b60055494600b5495610a298782611d29565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e04565b0393610a66601f1995868101835282611b02565b5190209882611d29565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611be4565b933691611c3a565b916149a9565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e55565b16936001600160401b03199485845416178355610b056001926024848601930190611e69565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e55565b16908254161790556024600435013582526022602052610b9e604083203390611fb6565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e04565b03925af180156105df57610c03575b5050610bfe61094a91611e55565b61228b565b610c0c90611ad4565b610882578138610bf0565b84959697506020610c2b8495969394611eb5565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611e9e565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b02565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fb6565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf611cb9565b610db7611cfe565b600080516020614e79833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614e9983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e718282546127f8565b9055610e7f816002546127f8565b6002553384526003602052604084205415610e9b575b33613bae565b610ea433614d20565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614e9983398151915254146101a6576001600080516020614e9983398151915255610f5b611cfe565b610f63613c28565b60ff60125460081c16806112bc575b34156112aa57604182600401350361129857610f95826004013560248401614ce4565b336001600160a01b0390911603610513576110a757806024610fbd9260040135910133613d98565b610fc73433613eb0565b80601454600a54811015610fed575b50505b80600080516020614e998339815191525580f35b61ffff601654166001600160401b03600c541611610fd65761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061104281613ceb565b0390a160018060a01b03600e54169061105e6002548092611d29565b91803b156110a257602484926040519485938492637903ab2760e11b845260048401525af180156105df5715610fd65761109790611ad4565b6101b8578038610fd6565b505050fd5b6110b936826004013560248401611b3e565b6001600160401b03601c541690604051906110d382611ae7565b600282526020820190815233604083015282600052601d60205260406000209082516110fe8161203b565b6111078161203b565b60ff80198454169116178255518051906001600160401b0382116104fd576111368261039f600186015461205b565b602090601f8311600114611210579282600080516020614e598339815191529795936002936111ed9896600092611205575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036111b182612273565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139a2565b9060608301520390a161120034336140ca565b610fd9565b015190503880611168565b906001840160005260206000209160005b601f19851681106112805750836002936111ed989693600193600080516020614e598339815191529b9997601f19811610611267575b505050811b016001820155611180565b015160001960f88460031b161c19169055388080611257565b91926020600181928685015181550194019201611221565b6040516318dca5e960e21b8152600490fd5b604051635a78c58160e11b8152600490fd5b6112c46142cf565b610f72565b50346101b857806003193601126101b857602060ff600080516020614e7983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614e99833981519152828154146101a65782815561132f611cfe565b336000908152601f602052604090209283549061ffff9081831692831561147b57829060101c16918391808795818a01915b6113f5575b505050866113d7937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113de575b6113bf8133613bae565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f602052604090208590556113b5565b909193948381169682881015611472578760005260208091858252604060002060405161142181611ab9565b89825492838352015493849101524310611467578594938896889461144886958a95611d29565b9c60005252600082604082208281550155011696600019011694611361565b985050509493611366565b96509493611366565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b8576044356002811015610882576114ae611cfe565b600e546001600160a01b031633036114cf5761094a90602435600435614806565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114fa613c28565b61ffff611510816019541682601654169061274e565b16611560576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b85761158b611cb9565b600080516020614e79833981519152805460ff8116156115d85760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115fe611cfe565b611606613c28565b61094a6142e4565b50346101b85760203660031901126101b8576004356001600160401b038116810361163c5761094a9061228b565b600080fd5b50346101b85760203660031901126101b85761165b611cfe565b611663613c28565b61094a60043561433e565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d92576116bc903690600401611b75565b919060443585811161187d576116d6903690600401611b75565b916024860135966006549687891061183257604401906116f68287611e69565b9190506009541680911161186b5761170e8287611e69565b9050141580611844575b611832576117269085611e69565b9050156118205787946040516020810190611753816117458985613a2c565b03601f198101835282611b02565b519020968803611784575050505050506007541461176f575080f35b81526023602052610d4b604082203390611fb6565b61179e9392610a9388969893610a9b939a989a3691611be4565b8060206040516117ad81611ab9565b848152015281600655600755825260236020526117ce604083203390611fb6565b50600e546001600160a01b031690813b156101a257829161180591604051948580948193630bed761560e01b835260048301613a2c565b03925af180156105df57611817575080f35b61094a90611ad4565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118575788061515611718565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d576118c7903690602481600401359101611b3e565b926118d0611cfe565b3383526017825261ffff604084205416156119da578351156119c85733835260248252604083209184519182116119b45761190f82610748855461205b565b80601f83116001146119505750839482939492611945575b50508160011b916000199060031b1c19161790555b610d4b33611f4d565b015190503880611927565b90601f198316958486528286209286905b88821061199c57505083600195969710611983575b505050811b01905561193c565b015160001960f88460031b161c19169055388080611976565b80600185968294968601518155019501930190611961565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611aaa575060ff60125460081c16610ebb573381526003602052604081205415611a51575b338152600360205260408120611a3d348254611d29565b9055611a4b34600254611d29565b60025580f35b600454600160401b811015611a9657611a73816001611a919301600455611ec9565b81546001600160a01b0360039290921b91821b19163390911b179055565b611a26565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611b4a82611b23565b91611b586040519384611b02565b82948184528183011161163c578281602093846000960137010152565b9181601f8401121561163c578235916001600160401b03831161163c576020808501948460051b01011161163c57565b35906001600160401b038216820361163c57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b038216820361163c57565b9291611bef82611bb9565b91611bfd6040519384611b02565b829481845260208094019160051b810192831161163c57905b828210611c235750505050565b838091611c2f84611bd0565b815201910190611c16565b92919092611c4784611bb9565b91611c556040519384611b02565b829480845260208094019060051b83019282841161163c5780915b848310611c7f57505050505050565b82356001600160401b03811161163c57820184601f8201121561163c578691611cae8683858095359101611b3e565b815201920191611c70565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611cec57565b6040516330cd747160e01b8152600490fd5b60ff600080516020614e798339815191525416611d1757565b60405163d93c066560e01b8152600490fd5b91908201809211611d3657565b634e487b7160e01b600052601160045260246000fd5b9035603e198236030181121561163c570190565b9035601e198236030181121561163c5701602081359101916001600160401b03821161163c578160051b3603831361163c57565b60408201916001600160401b03611daa83611ba5565b1681526060611dbe60209384810190611d60565b839195604086839601525201929160005b828110611ddd575050505090565b909192938280600192838060a01b03611df589611bd0565b16815201950193929101611dcf565b6020815260806001600160401b03611e4e6060611e34611e248780611d4c565b85602088015260a0870190611d94565b956020810135604087015260408101358287015201611ba5565b1691015290565b356001600160401b038116810361163c5790565b903590601e198136030182121561163c57018035906001600160401b03821161163c57602001918160051b3603831361163c57565b818110611ea9575050565b60008155600101611e9e565b356001600160a01b038116810361163c5790565b600454811015611f005760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f005760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fb157602554600160401b811015611a96579082611f9d611f8684600160409601602555611f16565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461203557845494600160401b861015612021576001860180825586101561200d57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561204557565b634e487b7160e01b600052602160045260246000fd5b90600182811c9216801561208b575b602083101461207557565b634e487b7160e01b600052602260045260246000fd5b91607f169161206a565b90600092918054916120a68361205b565b91828252600193848116908160001461210857506001146120c8575b50505050565b90919394506000526020928360002092846000945b8386106120f45750505050010190388080806120c2565b8054858701830152940193859082016120dd565b9294505050602093945060ff191683830152151560051b010190388080806120c2565b60005b83811061213e5750506000910152565b818101518382015260200161212e565b9190601f811161215d57505050565b612189926000526020600020906020601f840160051c8301931061218b575b601f0160051c0190611e9e565b565b909150819061217c565b9080821461226f576121a7815461205b565b906001600160401b0382116104fd5781906121cc826121c6865461205b565b8661214e565b600090601f8311600114612203576000926121f8575b50508160011b916000199060031b1c1916179055565b0154905038806121e2565b81526020808220858352818320935090601f1985169083905b82821061225657505090846001959493921061223d575b505050811b019055565b015460001960f88460031b161c19169055388080612233565b849581929585015481556001809101960194019061221c565b5050565b9060016001600160401b0380931601918211611d3657565b601c546001600160401b03828116929080831684106122b65760405163040aaa0560e11b8152600490fd5b808360401c1684106120c25780604093841c165b848282161115612331575050916020916123047f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612273565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b8161234f826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123748161203b565b8085036123e657505060036123a560016123ab94959697019260018060a01b03166000526015602052604060002090565b01612195565b6123c8816001600160401b0316600052601d602052604060002090565b916000908184556001936123dd858201612805565b015501166122ca565b909194506123f38161203b565b60039181830361259157505087519361241b85612414816001809a01612095565b0386611b02565b84518501916020928a8785830192031261163c578387015189811161163c5787019681603f8901121561163c5787858d9901519261246461245b85611b23565b9a519a8b611b02565b838a528d848301011161163c578c926124829184888c01910161212b565b015192816124a28460018060a01b03166000526015602052604060002090565b01918751918a831161257c578a986124c4846124be875461205b565b8761214e565b81601f851160011461250957506124f99798999a84939284926000956124fe575b50501b92600019911b1c1916179055612764565b6123ab565b0151935038806124e5565b91601f9b9493919b1984169b866000528c84600020946000915b8210612561575050846124f99a9b9c9d10612547575b50505050811b019055612764565b01519060f884600019921b161c1916905538808080612539565b8383015186558f9d509487019492830192908101908e612523565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125ad85612414816001809501612095565b6020808680518101031261163c5781818c970151956125cb8161203b565b036126f05784906125dc828561284e565b601e546125e99043611d29565b928751906125f682611ab9565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c16906126399161274e565b169c60009d8e5282870188528d2092518355519101556126589061273b565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af19081156126e5575090849392916126d6575b506123ab565b6126df90611ad4565b386126d0565b8751903d90823e3d90fd5b50508293509161270091926127a8565b600e541690813b1561163c578651916316989f6f60e21b83528260048160009485945af19081156126e5575090849392916126d657506123ab565b90600161ffff80931601918211611d3657565b91909161ffff80809416911601918211611d3657565b9060018060a01b03821660005260156020526040600020818154915581811460001461278f57505050565b81111561279f57612189916128dd565b61218991612c23565b90612189916127f060018060a01b038216928360005260156020526127d581600160406000200154611d29565b93600052601560205283600160406000200155601454611d29565b6014556128dd565b91908203918211611d3657565b61280f815461205b565b9081612819575050565b81601f6000931160011461282b575055565b90808391825261284a601f60208420940160051c840160018501611e9e565b5555565b906128bb6128c39260018060a01b038116906000828152601560205261287b8560016040842001546127f8565b92815260156020526040812060028101848154811590816128d4575b50156128c8575090826003926128b69483558160018401555501612805565b612c23565b6014546127f8565b601455565b92505060010155612c23565b90501538612897565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b0e578360135460081c16846016541610612ada57612922613730565b60019283825260188652828a832054168861293c8261300e565b10612a5457508152601a85528389822054166129ab5750505050506129a67f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461298683612f99565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129b486613783565b926129be8761300e565b935b8186821611612a16575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129a6565b8085612a3586617fff8f95871c1694858852601b8c528720541661300e565b1015612a4e5790612a478392826138e2565b90506129c0565b506129ca565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129a695601a91612a8f613428565b835252205416612acc575b612aa3846133b3565b612aac83612f99565b516001600160a01b03928316815292909116602083015281906040820190565b612ad5846131d8565b612a9a565b50505050506129a67f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394612986836133b3565b97929150612b1f859497969561374c565b97612b298561300e565b97612b338a613344565b8460165416905b858116828111612bec5782811015612bd0575080612b5a612b609261273b565b906136e0565b9b909b5b8b1115612b8357612b75908c613849565b612b7e8b613344565b612b3a565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129a6565b849c919c5260188352612be785888620541661300e565b612b64565b505050505050506129a691929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612986565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e5d578082526017835287868320541615612e4c578415612da45750612c708361374c565b97612c7a8461300e565b985b6001808a83161115612d955781617fff911c1690818452601885528a612ca6848a8720541661300e565b1115612cbb57612cb69082613849565b612c7c565b505091939597509193955b6019541615612d8d57612cd7613730565b60018252601883528581818420541692601b612cf28561300e565b95612cfb61373e565b600183525220541691612d0d8361300e565b11612d5457505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129a6565b915091506129a67ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612d85613428565b612a9a613071565b505050505050565b50509193959750919395612cc6565b829450612dd87f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799613571565b8651908152a160195416612dec5750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e1a61373e565b6001835252205416612e40612e2e8261300e565b92612e37613071565b612986836133b3565b0390a1388080806120c2565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f5e575061fffe9193612e7a86613783565b93612e848761300e565b9480966001958692831b168160195416925b612eea575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129a6565b818116838111612f58578d9084811015612f3c57505080612f0d612f139261273b565b9061335b565b9890985b881015612f3757612f2890896138e2565b612f3188613344565b86612e96565b612e9b565b8652601b8552852054909890612f5390871661300e565b612f17565b50612e9b565b94915050612f929194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506131d8565b51908152a1565b6121899061300861ffff91612fb1836019541661273b565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b825416179055601954161760195561300e565b906132ef565b60ff6013541660038110156120455760010361303f576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d3657565b61ffff80601954169081156131c657906001906130908183111561382c565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161312a91908a61311b8361305d565b169060195416176019556137a8565b84825280865261313e84848420541661300e565b95859860028160195416995b61315c575b5050505050505050505050565b8181168a81116131c0578a8110156131a5575080612f0d61317c9261273b565b9a909a5b8910156131a057613191908b6138e2565b61319a8a613344565b8761314a565b61314f565b859b919b528383526131bb87878720541661300e565b613180565b5061314f565b6040516340d9b01160e01b8152600490fd5b6131e190613783565b61ffff908160195416916131f583836138e2565b806131ff8461305d565b1661ffff196019541617601955613215836137a8565b8082168093146132ea579161fffe91600091808352601b9060209382855260018060a01b039260409261325561324f86868620541661300e565b876132ef565b825280865261326884848420541661300e565b9585986001988997881b168160195416995b61328b575050505050505050505050565b8181168a81116131c0578a8110156132cf575080612f0d6132ab9261273b565b9a909a5b8910156131a0576132c0908b6138e2565b6132c98a613344565b8761327a565b859b919b528383526132e587878720541661300e565b6132af565b505050565b9190915b60018061ffff8316111561333e5781617fff911c1690836133296000848152601b602052604060018060a01b039120541661300e565b101561333e5761333990826138e2565b6132f3565b50509050565b60011b906201fffe61fffe831692168203611d3657565b91909161ffff92838216600052601b60205261339e60018060a01b03613387816040600020541661300e565b958316600052601b6020526040600020541661300e565b908185106133ac5750509190565b9350919050565b6121899061342261ffff916133cb836016541661273b565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b825416179055601654161760165561300e565b90613691565b61ffff80601654169081156131c657906001906134478183111561382c565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a8952845416909117909255929587959394929392916134e191908a6134d28361305d565b169060165416176016556137ea565b8482528086526134f584848420541661300e565b95859860028160165416995b613512575050505050505050505050565b8181168a81116131c0578a811015613556575080612b5a6135329261273b565b9a909a5b8911156131a057613547908b613849565b6135508a613344565b87613501565b859b919b5283835261356c87878720541661300e565b613536565b61357a9061374c565b9061ffff9081601654169061358f8285613849565b826135998361305d565b1661ffff1960165416176016556135af826137ea565b82841680921461368b5760009291929183835260189260209484865260018060a01b03916040916135ed6135e785858520541661300e565b8a613691565b815285875261360083838320541661300e565b9561360a89613344565b978560165416985b8681168a811161367d578a811015613662575080612b5a6136329261273b565b9a909a5b89111561365557613647908b613849565b6136508a613344565b613612565b5050505050505092505050565b849b919b5282825261367886868620541661300e565b613636565b505050505050505092505050565b92505050565b9190915b60018061ffff8316111561333e5781617fff911c1690836136cb60008481526018602052604060018060a01b039120541661300e565b111561333e576136db9082613849565b613695565b919061ffff808416600052601860205261372160018060a01b0361370a816040600020541661300e565b92841660005260186020526040600020541661300e565b93848211156133ac5750509190565b61ffff60165416156131c657565b61ffff60195416156131c657565b6001600160a01b031660009081526017602052604090205461ffff1690811561377157565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff1690811561377157565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561383357565b634e487b7160e01b600052600160045260246000fd5b61386e61ffff8080601654169316936138648486111561382c565b169182111561382c565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b6138fd61ffff8080601954169316936138648486111561382c565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e198236030181121561163c5701602081359101916001600160401b03821161163c57813603831361163c57565b908060209392818452848401376000828201840152601f01601f1916010190565b6139ec6139e16139d38380611d4c565b604085526040850190611d94565b916020810190611d4c565b91602081830391015281359160ff831680930361163c57613a19604091613a299484526020810190613971565b91909281602082015201916139a2565b90565b6020808252613a3b8380611d4c565b6060918281850152613a5260809283860190611d94565b613a69604096838101358888015287810190611d60565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613aa457505050505050505050505090565b909192939495969798999a82828203018752613ac08c85611d4c565b90813560de198336030181121561163c578782528201918a90888e6001600160401b03613b37613b27613b14613b0b613af98b80611d4c565b60e080988c01526101208b01906139c3565b978a018a611d4c565b96603f1997888a830301868b01526139c3565b928d8901358d8901528801611ba5565b169060a091828701528a8701359263ffffffff60e01b841680940361163c578f95613b6e613b7e9460c096878b01528a018a613971565b92909189850301908901526139a2565b94013561010084015201359081151580920361163c578a01529a8801999897966001019587019493929190613a8f565b814710613c10576000918291829182916001600160a01b03165af13d15613c0b573d613bd981611b23565b90613be76040519283611b02565b8152600060203d92013e5b15613bf957565b604051630a12f52160e11b8152600490fd5b613bf2565b60405163cd78605960e01b8152306004820152602490fd5b60ff60125460101c16613c3757565b60405163248c8efb60e11b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613cdf8151809281855285808601910161212b565b601f01601f1916010190565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613d4757505050505050505090565b909192939495856003613d86839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01612095565b9a019401940192969594939190613d35565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd57613dd981613dd3845461205b565b8461214e565b6000601f8211600114613e125781929394600092613e075750508160011b916000199060031b1c1916179055565b0135905038806121e2565b601f198216948382526020918281209281905b888210613e5d57505083600195969710613e4357505050811b019055565b0135600019600384901b60f8161c19169055388080612233565b80600184968294958701358155019501920190613e25565b600154811015611f00576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b90613ec590613ebf81846140a3565b826127a8565b60ff60125460081c1615613ed65750565b60018054600082815b838110614053575b505015613ef357505050565b6001600160a01b038316600090815260156020526040902082810154613f4994909160030160405192613f2584611ae7565b8352602093613f508585019260018060a01b03809516845260405198898092612095565b0388611b02565b60408401968752600160401b8110156104fd578086613f7192018755613e75565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd57613fb8836124be875461205b565b81601f8411600114613ff15750928293918392600094613fe6575b50501b916000199060031b1c1916179055565b015192503880613fd3565b919083601f1981168760005284600020946000905b88838310614039575050501061402057505050811b019055565b015160001960f88460031b161c19169055388080612233565b858701518855909601959485019487935090810190614006565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b0387811691161461409957018390613edf565b5090508238613ee7565b60018060a01b031660005260156020526140c66002604060002001918254611d29565b9055565b919060405192816020850152602084526140e384611ab9565b6001600160401b03601c541693604051946140fd86611ae7565b60008652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516141318161203b565b61413a8161203b565b60ff80198a54169116178855519687516001600160401b0381116104fd5761417281614169600185015461205b565b6001850161214e565b6020601f82116001146142445761422b949282600080516020614e598339815191529795936002936121899c9d600092614239575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036141f082612273565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613cc6565b9060608301520390a16140a3565b0151905038806141a7565b6001830160005260206000209960005b601f19841681106142b75750926001836121899b9c60029461422b9997600080516020614e598339815191529b9997601f1981161061429e575b505050811b0160018201556141bf565b015160001960f88460031b161c1916905538808061428e565b828201518c556001909b019a60209283019201614254565b60ff6013541660038110156120455761083657565b6142ec6142cf565b34156112aa57336000908152601560205260409020600201541561432c5760ff60125460081c16156143225761218934336140ca565b6121893433613eb0565b60405163528fc16560e01b8152600490fd5b6143466142cf565b80156143ad573360009081526015602052604090206002015480156119da5781101561439c5760ff60125460081c1615614384576121899033614412565b8061439261218992336143bf565b610e95813361284e565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b03166000818152601560205260409020600201549091808210614400576143ec916127f8565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261442b84611ab9565b6001600160401b03601c5416936040519461444586611ae7565b60018652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516144798161203b565b6144828161203b565b60ff80198a54169116178855519687516001600160401b0381116104fd576144b181614169600185015461205b565b6020601f82116001146145835761456a949282600080516020614e598339815191529795936002936121899c9d600092614578575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361452f82612273565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613cc6565b9060608301520390a16143bf565b0151905038806144e6565b6001830160005260206000209960005b601f19841681106145f65750926001836121899b9c60029461456a9997600080516020614e598339815191529b9997601f198116106145dd575b505050811b0160018201556144fe565b015160001960f88460031b161c191690553880806145cd565b828201518c556001909b019a60209283019201614593565b60ff60125460081c166146fb575b3360009081526015602052604090206002015480156119da5761463e33614708565b5060009033825260246020528160408120614659815461205b565b806146be575b50505060ff60125460081c161561467b57612189915033614412565b604061218992338152600360205220548061469c575b5061439281336143bf565b806146ac6146b8926002546127f8565b600255610e9533614d20565b38614691565b82601f82116001146146d6575050555b81388061465f565b90918082526146f4601f60208420940160051c840160018501611e9e565b55556146ce565b6147036142cf565b61461c565b60008181526026602052604081205490919080156147ed57600019908082018181116147d957602554908382019182116147c557808203614791575b505050602554801561477d5781019061475c82611f16565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6147af6147a0611f8693611f16565b90549060031b1c928392611f16565b9055845260266020526040842055388080614744565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611f005760209160051b010190565b91909182156132ea576040908151906020938483018381106001600160401b038211176104fd578452600092839052600281101561499557806148f65750600b54614850916127f8565b8152602283528181208251808286829454938481520190855286852092855b888282106148e05750505061488692500382611b02565b928351948515612d8d57858110612d8d5785900493825b8681106148ad5750505050505050565b6001906001600160a01b036148c282856147f2565b51168552602184528585206148d8888254611d29565b90550161489d565b855484526001958601958795509301920161486f565b84600185921460001461494657606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b918251916149b683611bb9565b936040946149c686519182611b02565b848152601f196149d586611bb9565b0194602095368784013760005b818110614aac57505060009461ffff8060165416600192839182945b614a5b575b505050505060ff600e5460a01c1694858102958187041490151715611d36576064614a2f950491614b23565b9015614a39575050565b60068110156120455760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614aa45760009081526018855220548493929186918591614a9a91614a94906001600160a01b031661300e565b90611d29565b9b011694936149fe565b505098614a03565b6001600160a01b0380614abf83876147f2565b51166000526017885261ffff89600020541615614aff5790614aee600192614ae783886147f2565b511661300e565b614af882866147f2565b52016149e2565b8890614b0d602493876147f2565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614c0b5782518514801590614c00575b614bf3579392919085945b848610614b6b575050505050501015614b6357600090600590565b600190600090565b909192939495614b85614b7e88846147f2565b5184614c18565b50614b8f8161203b565b614be2576001600160a01b0380614ba68a886147f2565b5116911603614bd257614bc6600191614bbf89886147f2565b5190611d29565b96019493929190614b48565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614b3d565b5050505050905090600290565b8151919060418303614c4957614c4292506020820151906060604084015193015160001a90614c54565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614cd857926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614ccc5780516001600160a01b03811615614cc357918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b90614cf16041821461382c565b8060011161163c57614d0c9136916000190190600101611b3e565b80516020909101206001600160a01b031690565b60049081549160005b838110614d365750505050565b614d3f81611ec9565b90546003916001600160a01b039190831b1c811685821614614d65575050600101614d29565b929350939060001991828101908111614df25790614d9684614d89614db594611ec9565b905490891b1c1691611ec9565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015614ddd570192614dc884611ec9565b81939154921b1b1916905555388080806120c2565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b9190811015611f005760051b81013590601e198136030182121561163c5701908135916001600160401b03831161163c57602001823603811361163c579190565b9190811015611f005760051b019056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a2646970667358221220e314a0dcaf7e64a05613b4a7d0d301b3da5d183e2f2dc5a8c4f639b5168fc4e164736f6c63430008130033a2646970667358221220d4840c85f7ddd8e12a2adf31ab984af97c7742708e4d9cb8c30b3c289e27865d64736f6c63430008130033","sourceMap":"7607:21719:81:-:0;;;;;;;;;1594:4:2;7607:21719:81;;;1594:4:2;7607:21719:81;;;;;;;;;3201:4:5;;7607:21719:81;;;;;;;1220:14:3;;;:::i;:::-;7607:21719:81;1220:14:3;;3774:54:81;7607:21719;;;;;;;3774:54;:::i;:::-;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;;;;;;;;;;;;;;3743:85:81;1220:14:3;;3743:85:81;1220:14:3;;;;;;-1:-1:-1;1220:14:3;;;3743:85:81;1220:14:3;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;;;7607:21719:81;;;;3875:52;7607:21719;;1220:14:3;;;:::i;:::-;7607:21719:81;1220:14:3;;-1:-1:-1;;;7607:21719:81;;;;3875:52;:::i;:::-;1220:14:3;;;;;;;;;;;;;3838:89:81;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;;;;;;;3963:50:81;1220:14:3;;:::i;:::-;3963:50:81;:::i;:::-;1220:14:3;;;;;;;;;;;;;;;3937:76:81;1220:14:3;;3937:76:81;1220:14:3;;;;;;;;;;3937:76:81;1220:14:3;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;;;;;;;4049:52:81;1220:14:3;;:::i;4049:52:81:-;1220:14:3;;;;;;;;;;;;;;;4023:78:81;1220:14:3;;4023:78:81;1220:14:3;;;;;;;;;;4023:78:81;1220:14:3;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;;;7607:21719:81;;;;6276:57;7607:21719;;1220:14:3;;;:::i;:::-;7607:21719:81;1220:14:3;;7607:21719:81;;;;;6276:57;:::i;:::-;1220:14:3;;;;;;;;;;;;;6256:77:81;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7607:21719:81;;;;;6364:58;7607:21719;;1220:14:3;;;:::i;:::-;7607:21719:81;1220:14:3;;7607:21719:81;;;;;6364:58;:::i;:::-;1220:14:3;;;;;;;;;;;;;;;6343:79:81;1220:14:3;;6343:79:81;1220:14:3;;;;;;;;;;;;;;6343:79:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7607:21719:81;;;;;6459:62;7607:21719;;1220:14:3;;;:::i;:::-;3743:85:81;1220:14:3;;7607:21719:81;;;;;6459:62;:::i;:::-;1220:14:3;;;;;;;;;;;;;;;6432:89:81;1220:14:3;;6432:89:81;1220:14:3;;;;;;;;;;;;;;6432:89:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6551:50:81;1220:14:3;;:::i;6551:50:81:-;1220:14:3;;;;;;;;;;;;;;;6531:70:81;1220:14:3;;6531:70:81;1220:14:3;;;;;;;;;;;;;;6531:70:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6631:52:81;1220:14:3;;:::i;6631:52:81:-;1220:14:3;;;;;;;;;;;;;;;6611:72:81;1220:14:3;;6611:72:81;1220:14:3;;;;;;;;;;;;;;6611:72:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7607:21719:81;;;;;4642:53;7607:21719;;1220:14:3;;;:::i;:::-;;;;-1:-1:-1;;;1220:14:3;;;;4642:53:81;:::i;:::-;1220:14:3;;;;;;;;;;;;;;;4622:73:81;1220:14:3;;4622:73:81;1220:14:3;;;;;;;;;;;;;;4622:73:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7607:21719:81;;;;;4725:53;7607:21719;;1220:14:3;;;:::i;:::-;;;;-1:-1:-1;;;1220:14:3;;;;4725:53:81;:::i;:::-;1220:14:3;;;;;;;;;;;;;;;4705:73:81;1220:14:3;;4705:73:81;1220:14:3;;;;;;;;;;;;;;4705:73:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7607:21719:81;;;;;4809:54;7607:21719;;1220:14:3;;;:::i;:::-;7607:21719:81;1220:14:3;;;;;;;4809:54:81;:::i;:::-;1220:14:3;;;;;;;;;;;;;;;4788:75:81;1220:14:3;;4788:75:81;1220:14:3;;;;;;;;;;;;;;4788:75:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7607:21719:81;;;;;4896:56;7607:21719;;1220:14:3;;;:::i;:::-;;;;;;;;;4896:56:81;:::i;:::-;1220:14:3;;;;;;;;;;;;;;;4873:79:81;1220:14:3;;4873:79:81;1220:14:3;;;;;;;;;;;;;;4873:79:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4982:50:81;1220:14:3;;:::i;4982:50:81:-;1220:14:3;;;;;;;;;;;;;;;4962:70:81;1220:14:3;;4962:70:81;1220:14:3;;;;;;;;;;;;;;4962:70:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5061:52:81;1220:14:3;;:::i;5061:52:81:-;1220:14:3;;;;;;;;;;;;;;;;;5042:71:81;1220:14:3;;5042:71:81;1220:14:3;;;;;;;;;;5042:71:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;7607:21719:81;;;;;;;;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5042:71:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;-1:-1:-1;;;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4962:70:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;-1:-1:-1;;1220:14:3;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4873:79:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;-1:-1:-1;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4788:75:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;-1:-1:-1;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4705:73:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;-1:-1:-1;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4622:73:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;-1:-1:-1;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6611:72:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;-1:-1:-1;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6531:70:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;-1:-1:-1;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6432:89:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;-1:-1:-1;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6343:79:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;-1:-1:-1;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;-1:-1:-1;;1220:14:3;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;6256:77:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4023:78:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3937:76:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3743:85:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;7607:21719:81;;;;1220:14:3;7607:21719:81;1220:14:3;;;;;-1:-1:-1;;;;;1220:14:3;;;;;7607:21719:81;1220:14:3;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;1220:14:3;;;;-1:-1:-1;;;;;1220:14:3;;;;;;;;;;:::o;:::-;;7607:21719:81;1220:14:3;;;;:::i;:::-;;;;-1:-1:-1;;;1220:14:3;;;;:::o;:::-;;7607:21719:81;1220:14:3;;;;:::i;:::-;;;;-1:-1:-1;;;1220:14:3;;;;:::o;7607:21719:81:-;1220:14:3;;7607:21719:81;;;;;;:::o;:::-;1220:14:3;;;7607:21719:81;;;;;;;;;1220:14:3;;1511:1:86;7607:21719:81;;;;;;;:::o;:::-;1220:14:3;;1566:1:86;7607:21719:81;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;7607:21719:81;;;;:::o;:::-;;;;;;;;;;;;;1304:381:86;7607:21719:81;;;-1:-1:-1;;;;;7607:21719:81;1220:14:3;;;;;;;;;;;;;1461:1:86;7607:21719:81;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:14:3;;;;:::i;:::-;7607:21719:81;1220:14:3;;7607:21719:81;;-1:-1:-1;;;7607:21719:81;;;;1473:21:86;;;:::i;:::-;7607:21719:81;1473:21:86;;;:::i;:::-;;7607:21719:81;;1220:14:3;;;;:::i;:::-;7607:21719:81;1220:14:3;;;;7607:21719:81;;;;;1504:45:86;;;:::i;:::-;7607:21719:81;1504:45:86;;;:::i;:::-;;1559:21;;;:::i;:::-;;;;;:::i;:::-;;7607:21719:81;;1220:14:3;;;;1610::86;;7607:21719:81;;;;1610:14:86;;;;7607:21719:81;1220:14:3;;7607:21719:81;;;;;;;;;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;1610:14:86;;;;;;-1:-1:-1;1610:14:86;;;;7607:21719:81;1610:14:86;;;;;;;-1:-1:-1;1610:14:86;;;7607:21719:81;1220:14:3;;;;1651:27:86;;;;;;;;7607:21719:81;;;;;1651:27:86;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:14:3;7607:21719:81;;;1220:14:3;;:::i;:::-;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;1634:44:86;;;;1304:381;:::o;7607:21719:81:-;;;-1:-1:-1;;;;;;1220:14:3;;7607:21719:81;;;;;;;;;;;;;;1610:14:86;;;;;;;;;;;;;:::i;:::-;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:14:3;;;;;;7607:21719:81;;;1220:14:3;;;;-1:-1:-1;;1220:14:3;;;7607:21719:81;1220:14:3;:::i;:::-;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1610:14:86;;;;;7607:21719:81;;;1220:14:3;-1:-1:-1;;;1220:14:3;;;1610::86;1220::3;7607:21719:81;1220:14:3;;7607:21719:81;;;;;;;;1610:14:86;7607:21719:81;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;1511:1:86;7607:21719:81;;;;;;;;;;;;;;1220:14:3;;7607:21719:81;;;;;;;;;;;;:::i;:::-;1220:14:3;;;;;;7607:21719:81;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":98512,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":67568,"length":20},{"start":69888,"length":20},{"start":94459,"length":20}]},"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":58704,"length":20},{"start":59475,"length":20}]},"src/lib/LibStaking.sol":{"LibStaking":[{"start":112306,"length":20},{"start":142620,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":78547,"length":20},{"start":94032,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":16501,"length":20},{"start":16581,"length":20},{"start":16666,"length":20},{"start":16871,"length":20},{"start":17037,"length":20},{"start":33916,"length":20},{"start":34720,"length":20},{"start":43689,"length":20},{"start":58373,"length":20},{"start":65787,"length":20},{"start":66364,"length":20},{"start":67258,"length":20},{"start":69472,"length":20},{"start":69941,"length":20},{"start":74423,"length":20},{"start":74563,"length":20},{"start":75564,"length":20},{"start":78212,"length":20},{"start":78314,"length":20},{"start":78754,"length":20},{"start":78832,"length":20},{"start":78937,"length":20},{"start":79093,"length":20},{"start":80833,"length":20},{"start":80918,"length":20},{"start":86140,"length":20},{"start":88983,"length":20},{"start":93852,"length":20},{"start":97913,"length":20},{"start":98232,"length":20},{"start":111130,"length":20},{"start":135707,"length":20}]}}},"deployedBytecode":{"object":"0x60808060405260043610156200001457600080fd5b600090813560e01c9081630a9254e41462003ee6575080631ed7831c1462003e605780632d49aa1c1462003d2857806330dd2c451462003c1257806337bdc99b1462003a155780633e5e3c23146200398f5780633f7286f414620039095780634d238c8e14620038ab5780635c2c2fed146200347f57806363323eb8146200344757806366d9a9a014620033905780637b1837de146200305157806385226c811462002f16578063871055571462002edf578063916a17c61462002e28578063951759c91462002abf5780639b21108014620022c65780639c821dc61462001b65578063a0aaa28514620017ba578063a9fb763c1462001714578063b0ed3c0014620016d2578063b5508aa91462001583578063b64544ec1462001241578063ba414fa61462001218578063c33dd9d514620008d8578063cfebf30014620006d3578063d8d527131462000543578063dd78497414620004eb578063e20c9f71146200044b578063fa7626d41462000427578063fbfb892714620003ee5763fc6c1f0214620001a257600080fd5b346200034b5760403660031901126200034b57620001bf62004330565b620001c9620062f9565b90620001ef620001d98262006397565b92600093620001e882620050f2565b52620050f2565b50604051620001fe816200438f565b60018152602036818301376200021760243591620050f2565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003ea5760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003df57620003c9575b506040519062000280826200438f565b438252836020830152823b15620003ba576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003be5790859392916200039c575b506038546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af1801562000391576200035d575b50803b1562000359578180916004604051809481936390c5013b60e01b83525af180156200034e5762000335578280f35b620003418291620043ab565b6200034b57808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b620003829060603d811162000389575b62000379818362004430565b81019062006350565b5062000304565b503d6200036d565b6040513d85823e3d90fd5b620003ab9093919293620043ab565b620003ba5790839138620002c3565b8380fd5b6040513d87823e3d90fd5b620003d790939193620043ab565b913862000270565b6040513d86823e3d90fd5b8280fd5b50346200034b5760603660031901126200034b57620004246200041062004319565b6200041a62004347565b9060043562006730565b80f35b50346200034b57806003193601126200034b5760ff60209154166040519015158152f35b50346200034b57806003193601126200034b57604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b85828210620004cb57505050620004b19250038362004430565b620004c7604051928284938452830190620042da565b0390f35b85546001600160a01b031684526001958601958895509301920162000497565b50346200034b5760203660031901126200034b57620004c76200052f6200051162004330565b6200051b6200516b565b506035546001600160a01b03169062006a5f565b9260409694969291925196879687620046ac565b50346200034b5760403660031901126200034b57806200056262004330565b6024356001600160401b0381116200068b576200058490369060040162004963565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620006ce5760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620006c3578691620006ab575b5050813b15620006a757849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003df5784916200068f575b5050602a5416803b156200068b57620006658391670de0b6b3a7640000936040519485809481936330b858b160e11b8352602060048401526024830190620045c2565b03925af180156200034e57620006785750f35b6200068390620043ab565b6200034b5780f35b5050fd5b6200069a90620043ab565b6200068b57823862000622565b8480fd5b620006b690620043ab565b620006a7578438620005db565b6040513d88823e3d90fd5b505050fd5b50346200034b5760031960203682011262000359576001600160401b0360043511620003595760e090600435360301126200034b5760405190620007178262004373565b600435600401356001600160401b03811162000359576200074090600436918135010162004727565b82526004356024810135602084015260448101356040840152606481013560608401526200077190608401620044be565b608083015260a460043501356001600160401b0381116200035957366023826004350101121562000359576004818135010135620007af8162004452565b92620007bf604051948562004430565b81845260208401923660248460051b836004350101011162000359576024816004350101935b60248460051b8360043501010185106200083357602062000821888860a08201526200081660c460043501620044cd565b60c0820152620053be565b6040516001600160a01b039091168152f35b84356001600160401b038111620003ba5760606004358401820136036023190112620003ba57604051906200086882620043bf565b600435840181016024810135835262000884906044016200435e565b60208301526001600160401b03606482866004350101013511620006a7576024926020928392620008c5903690600435890101606481013501870162004963565b60408201528152019501949050620007e5565b50346200034b576003196020368201126200035957600435906001600160401b038211620003ea5760a090823603011262000359576040519060a082018281106001600160401b03821117620012025760405262000939816004016200435e565b825262000949602482016200435e565b60208301526200095c604482016200435e565b604083015260648101356001600160401b038111620003ba57620009879060043691840101620048cf565b60608301526084810135906001600160401b038211620003ba576004620009b29236920101620048cf565b6080820152620009c1620052ea565b9060405180610d308101106001600160401b03610d3083011117620011ee57610d306200ad47823980610d308101039084f080156200039157604051806108848101106001600160401b0361088483011117620011da576108846200ba778239806108848101039085f0908115620003df5760405180611d608101106001600160401b03611d608301111762000ee657611d606201e670823980611d608101039086f0908115620003be5760405180610b3d8101106001600160401b03610b3d83011117620011c657610b3d620203d0823980610b3d8101039087f0928315620006c3576040519062000ab482620043bf565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b806007830110620011505762000b5f94549181811062000fce575b81811062000fae575b81811062000f8e575b81811062000f6e575b81811062000f4e575b81811062000f2e575b81811062000f10575b1062000efa575b50038262004430565b604082015262000b6f86620050f2565b5262000b7b85620050f2565b506040519062000b8b82620043bf565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b806007830110620010da5762000c2e94549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b604082015262000c3e8562005116565b5262000c4a8462005116565b506040519062000c5a82620043bf565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b806007830110620010645762000cfd94549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b604082015262000d0d8462005127565b5262000d198362005127565b506040519062000d2982620043bf565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b80600783011062000fee5762000dcc94549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b604082015262000ddc8362005138565b5262000de88262005138565b506040519161111e90818401918483106001600160401b0384111762000ee6579162000e2a85949262000e929462009c29873960408352604083019062005337565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b036040830151166040820152608062000e80606084015160a0606085015260a0840190620044dd565b920151906080818403910152620044dd565b039082f0801562000ed95760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b50604051903d90823e3d90fd5b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000b56565b602083811b6001600160e01b03191685529093019260010162000b4f565b604083901b6001600160e01b031916845260209093019260010162000b46565b606083901b6001600160e01b031916845260209093019260010162000b3d565b608083901b6001600160e01b031916845260209093019260010162000b34565b60a083901b6001600160e01b031916845260209093019260010162000b2b565b60c083901b6001600160e01b031916845260209093019260010162000b22565b60e083901b6001600160e01b031916845260209093019260010162000b19565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000d73565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000ca4565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000bd5565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000afe565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b634e487b7160e01b84526041600452602484fd5b634e487b7160e01b600052604160045260246000fd5b50346200034b57806003193601126200034b57602062001237620049be565b6040519015158152f35b50346200034b57606090816003193601126200034b576001600160401b03600435818111620003ea576200127a903690600401620047da565b906200128562004319565b916200129062004347565b6200129a620052aa565b90604051620012a981620043bf565b6001600160a01b0395861681526020808201889052978891620012cb62004abd565b6040820152620012db85620050f2565b52620012e784620050f2565b508660405193620012f885620043bf565b168352878284015260405190819283918160255494858152019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b8160078201106200150a5784620013a2975493838310620014e9575b838310620014c8575b838310620014a7575b83831062001486575b83831062001468575b5082821062001449575b8282106200142c575b501062001416575b509050038262004430565b6040820152620013b28262005116565b52620013be8162005116565b506040519261137c80850191821185831017620011c65791849391620013ea93620088ad863962005dd9565b039083f080156200034e571660295491816001600160601b0360a01b8416176029556040519216178152f35b6001600160e01b03191681528b91013862001397565b83811b6001600160e01b031916855290930192600101846200138f565b604084901b6001600160e01b0319168552909301926001018462001386565b84901b6001600160e01b03191685529093019260010184386200137c565b608085901b6001600160e01b03191686529481019460019092019162001373565b60a085901b6001600160e01b0319168652948101946001909201916200136a565b60c085901b6001600160e01b03191686529481019460019092019162001361565b60e085901b6001600160e01b03191686529481019460019092019162001358565b9260089295506101009060019295885463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901528d84846080928282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520195019101928c9286949592956200133c565b50346200034b57806003193601126200034b57601054620015a48162004452565b90620015b4604051928362004430565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b848310620015fc5760405180620004c78882620045e9565b604051849188549160019280841c908481168015620016c7575b8783108114620016b3578284528794939291811562001695575060011462001659575b506200164a81600196038262004430565b815201970192019195620015e4565b8b8952838920955088905b8082106200167d57508101830194506200164a62001639565b86548383018601529585019587949091019062001664565b60ff19168584015250151560051b8101830194506200164a62001639565b634e487b7160e01b8a52602260045260248afd5b91607f169162001616565b50346200034b5760203660031901126200034b57600435906001600160401b0382116200034b576020620008216200170e3660048601620047da565b62005eab565b50346200034b5760203660031901126200034b57808060405162001738816200438f565b601c81527f726577617264206d6574686f642063616c6c65642077697468202564000000006020820152604051620017a6816200178f60208201946309710a9d60e41b8652604060248401526064830190620045c2565b600435604483015203601f19810183528262004430565b51906a636f6e736f6c652e6c6f675afa5080f35b50346200034b5760c03660031901126200034b57620017d862004330565b60248035906001821015620003ba57620017f16200446a565b91620017fc62004481565b9362001807620044ad565b91604051906200181782620043f8565b60008252604051936200182a856200438f565b607b85526020928386015260405192614db7938481016001600160401b03958282108783111762001b5057908291620198b9833903906000f098891562001b1b5760018060a01b0398896001600160601b0360a01b9b168b602a541617602a556040516114c8808201908282108983111762001b3b57908291620183f1833903906000f0801562001b1b578a168b602c541617602c55604051610d30808201908282108983111762001b3b579082916200ad47833903906000f0801562001b1b578a168b602d541617602d55604051610884808201908282108983111762001b3b579082916200ba77833903906000f090811562001b1b5762001a6f60ff9688958d8f9b62001a429c828a98168091602e541617602e556200194b620052ea565b9d8e84602a5416604051906200196182620043bf565b81526000878201526200197362004ccd565b60408201526200198382620050f2565b526200198f81620050f2565b5084602c541660405190620019a482620043bf565b8152600087820152620019b662004abd565b6040820152620019c68262005116565b52620019d28162005116565b5084602d541660405190620019e782620043bf565b8152600087820152620019f962004dde565b604082015262001a098262005127565b5262001a158162005127565b506040519262001a2584620043bf565b835260008684015262001a3762004eef565b604084015262005138565b5262001a4e8d62005138565b506040519d8e62001a5f81620043db565b5216908c015260408b01620051aa565b60443560608a01521660808801521660a08601521660c0840152606460e08401526402540be400610100840152600c61012084015260006101408401526040519361137c90818601928684109084111762001b2757509184939162001ada93620088ad863962005dd9565b03906000f0801562001b1b571690818160295416176029558181602a541617602a558181602c541617602c558181602d541617602d55602e541617602e5580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b50346200034b57806003193601126200034b5760405162001b868162004414565b6003815260005b60608110620022ac575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa8015620003915783906200226d575b62001bec915062006397565b62001bf787620050f2565b5262001c0386620050f2565b5060405183815260c8600482015284818381895afa8015620003915783906200222e575b62001c33915062006397565b62001c3e8762005116565b5262001c4a8662005116565b506040519280845261012c93846004820152858184818a5afa8015620003df578490620021ef575b62001c7e915062006397565b62001c898862005127565b5262001c958762005127565b506040519562001ca58762004414565b600387526060988936888a01376040519280845281600485015287848681865afa938415620006c3578694620021b0575b5062001ce289620050f2565b6001600160a01b03948516905260405181815260c8600482015288818781875afa9081156200201c57879162002173575b508462001d208b62005116565b9116905260405181815287600482015288818781875afa9081156200201c57879162002132575b508462001d548b62005127565b911690526040519062001d678262004414565b600382528b368a8401376040519080825283600483015289828881885afa91821562002068578892620020f3575b50843b15620020275760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af180156200208f57908a91620020db575b505060405182815260c860048201528b818a818a5afa9081156200208f578a916200209e575b50863b156200209a5787604051918583521660048201528a898201528981604481838b5af180156200208f57908a9162002073575b5050604051918252600482015289818881885afa908115620020685788916200202b575b50843b15620020275785906040519283521660048201528786820152868160448183885af180156200201c5790879162002000575b5050808262001e9e62001eb293620050f2565b528262001eab8262005116565b5262005127565b526040519262001ec2846200438f565b4384528487850152813b15620006a75760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003df57918493918a9362001fe0575b506038546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200034e5762001fbf575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b82821062001f8a57888803868a01528880620004c78a8a620042da565b9193975091848062001faa83979899605f198d82030186528b5162004702565b99019201920188979695949293919362001f6d565b62001fd990873d8911620003895762000379818362004430565b5062001f44565b62001ff0919350939193620043ab565b620003ea57829188913862001f07565b6200200b90620043ab565b6200201857853862001e8b565b8580fd5b6040513d89823e3d90fd5b8780fd5b90508981813d831162002060575b62002045818362004430565b81010312620020275762002059906200633b565b3862001e56565b503d62002039565b6040513d8a823e3d90fd5b6200207e90620043ab565b6200208b57883862001e32565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d8311620020d3575b620020b8818362004430565b810103126200209a57620020cc906200633b565b3862001dfd565b503d620020ac565b620020e690620043ab565b6200208b57883862001dd7565b9091508981813d83116200212a575b6200210e818362004430565b81010312620020275762002122906200633b565b903862001d95565b503d62002102565b90508881813d83116200216b575b6200214c818362004430565b81010312620021675762002160906200633b565b3862001d47565b8680fd5b503d62002140565b90508881813d8311620021a8575b6200218d818362004430565b810103126200216757620021a1906200633b565b3862001d13565b503d62002181565b9093508781813d8311620021e7575b620021cb818362004430565b810103126200201857620021df906200633b565b923862001cd6565b503d620021bf565b508581813d831162002226575b62002208818362004430565b81010312620003ba576200222062001c7e916200633b565b62001c72565b503d620021fc565b508481813d831162002265575b62002247818362004430565b81010312620003ea576200225f62001c33916200633b565b62001c27565b503d6200223b565b508481813d8311620022a4575b62002286818362004430565b81010312620003ea576200229e62001bec916200633b565b62001be0565b503d6200227a565b602090620022b96200516b565b8282850101520162001b8d565b50346200034b5760403660031901126200034b57620022e462004330565b90620022ef62004319565b6035546001600160a01b03169290833b1562002a1357604051637903ab2760e11b815260006004820181905290948186602481670de0b6b3a7640000855af19586156200034e57600494959662002aa6575b506200234e908362006a5f565b6037546040516394074b0360e01b8152919994969295949193508791849182906001600160a01b03165afa918215620006c357869262002a7e575b506020620023b391604051809381926390ba52cf60e01b835284600484015260248301906200464f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115620006c357878791829362002a3f575b5060405163aa5106cb60e01b81529293839182916200240391906004840162006547565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115620006c357620024589291602091889162002a21575b50604051809481926390ba52cf60e01b835284600484015260248301906200464f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620006c3578692620029e2575b50036200296b57620024b492620024a6670de0b6b3a7640000620024ad9314620066f0565b156200666b565b15620066ab565b600683101562002957575060018092036200291e576037546040516394074b0360e01b8152939085908190869060049082906001600160a01b03165afa94851562000ed95762002525958391839162002900575b5060405163aa5106cb60e01b815296879283926004840162006547565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4938415620003be578594620028d6575b50906200255d60049262006397565b604051946200256c866200438f565b855260208501526037546040516394074b0360e01b81529286918291859182906001600160a01b03165afa92831562000ed957620025cb9383918391620028b8575b5060405163aa5106cb60e01b815294859283926004840162006547565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003be5785926200288a575b50620026009062006397565b604051916200260f836200438f565b82526020820152604051906200262582620043f8565b84825260405193620026378562004373565b845260208401526402540be401604084015260608481850152608091858386015260a0908186015260c0926402540be40084870152604051956200267b876200438f565b86528660208701526040519362002692856200438f565b858552875b602081106200282357505050505082620026b182620050f2565b52620026bd81620050f2565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003595760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200034e576200280b575b50506038546001600160a01b031690813b15620006a75791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b828210620027d45750505050508383809203925af180156200039157620027bc575b602082604051620027b181620027a2858201948686526040830190620065cc565b03601f19810183528262004430565b519020604051908152f35b620027c88391620043ab565b62000359578162002781565b9295975092955092602080620027f687936043198c82030186528951620065cc565b970192019201928795938a979592936200275f565b6200281690620043ab565b620003ba5783386200270e565b60209060405162002834816200438f565b604051620028428162004373565b6200284c62006571565b81526200285862006571565b848201528b60408201528b888201528b8682015287878201528b8582015281528a838201528282890101520162002697565b62002600919250620028b0903d8088833e620028a7818362004430565b8101906200651e565b9190620025f4565b620028cf91503d8085833e620028a7818362004430565b38620025ae565b600492919450620028f66200255d913d8089833e620028a7818362004430565b949192506200254e565b6200291791503d8085833e620028a7818362004430565b3862002508565b60405162461bcd60e51b8152602060048201526011602482015270756e65787065637465642073746174757360781b6044820152606490fd5b634e487b7160e01b81526021600452602490fd5b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d60201162002a18575b8162002a016020938362004430565b8101031262002a135751903862002481565b600080fd5b3d9150620029f2565b62002a3891503d808a833e620028a7818362004430565b3862002435565b925050506020813d60201162002a75575b8162002a5f6020938362004430565b8101031262002a135751858762002403620023df565b3d915062002a50565b620023b391925062002a9d6020913d808a833e620028a7818362004430565b92915062002389565b9162002ab76200234e9293620043ab565b919062002341565b50346200034b57602090816003193601126200034b5762002adf62004330565b604051614f0a908181016001600160401b03928282108483111762000ee65790829162020f0d8339039084f091821562000391576040516114c88082019082821085831117620011c657908291620183f18339039085f0908115620003df57859062002b4a620052aa565b9260405162002b5981620043bf565b6001600160a01b03968716815283810188905260405160268054808352600091825282870191907f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35945b81600784011062002dad5792849262002c71999262002c0f9554918482821062002d8e575b82821062002d6f575b82821062002d50575b82821062002d31575b82821062002d12575b82821062002cf3575b82821062002cd6575b501062002cc057509050038262004430565b604082015262002c1f85620050f2565b5262002c2b84620050f2565b50856040519162002c3c83620043bf565b168152868882015262002c4e62004abd565b604082015262002c5e8462005116565b5262002c6a8362005116565b50620051c2565b906040519261137c8085019185831090831117620011c6579184939162002c9e93620088ad863962005dd9565b039083f091821562002cb4575060405191168152f35b604051903d90823e3d90fd5b6001600160e01b03191681528d91013862001397565b83811b6001600160e01b0319168552909301926001018462002bfd565b604084901b6001600160e01b0319168552909301926001018462002bf4565b606084901b6001600160e01b0319168552909301926001018462002beb565b608084901b6001600160e01b0319168552909301926001018462002be2565b60a084901b6001600160e01b0319168552909301926001018462002bd9565b60c084901b6001600160e01b0319168552909301926001018462002bd0565b60e084901b6001600160e01b0319168552909301926001018462002bc7565b93949596976101006008929394600192875463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520194019201908c97969594939262002ba2565b50346200034b57806003193601126200034b5760135462002e498162004452565b9062002e59604051928362004430565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b83831062002ea05760405180620004c787826200451d565b60028260019260405162002eb4816200438f565b848060a01b038a5416815262002ecc858b0162005000565b8382015281520196019201919462002e88565b50346200034b5760403660031901126200034b57620004c76200052f62002f0562004330565b62002f0f62004319565b9062006a5f565b50346200034b57806003193601126200034b5760115462002f378162004452565b9062002f47604051928362004430565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b84831062002f8f5760405180620004c78882620045e9565b604051849188549160019280841c90848116801562003046575b8783108114620016b3578284528794939291811562003028575060011462002fec575b5062002fdd81600196038262004430565b81520197019201919562002f77565b8b8952838920955088905b80821062003010575081018301945062002fdd62002fcc565b86548383018601529585019587949091019062002ff7565b60ff19168584015250151560051b81018301945062002fdd62002fcc565b91607f169162002fa9565b50346200034b57600319906040368301126200034b576200307162004330565b9060249182359360018060a01b03620030d7620030a382602a5416620030966200516b565b5083603554169062006a5f565b5091969392505084603754169660405193639d3070b560e01b928386528b86806020998a938460048401528201896200464f565b03818d5afa9586156200333d578b966200335b575b5060018601809611620033485760018901809911620033485786620031148e600493620062eb565b9a60405192838092632472942560e01b82525afa9081156200333d578b916200330a575b5015620032d3576200314f87603654169262006397565b9b823b15620032cf57918b9c918b936040519e8f948593849263018f44b760e41b84526004840160409052604484016200318a908c6200464f565b9184830301908401526200319e9162004702565b03925af18015620020685797899a819a9899620032a8575b505062003207918491620031df87602a5416620031d26200516b565b5088603554169062006a5f565b509c93505098905060375416916040519586948593849384528760048501528301906200464f565b03915afa9081156200206857889162003275575b50036200323d5750620004249392916200323691146200666b565b14620066ab565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b90508281813d8311620032a0575b6200328f818362004430565b8101031262002a135751386200321b565b503d62003283565b620032bb919293949596979850620043ab565b6200202757908895949392918838620031b6565b8a80fd5b60405162461bcd60e51b8152600481018790526010818d01526f063726f73734d736746656520697320360841b6044820152606490fd5b90508681813d831162003335575b62003324818362004430565b8101031262002a1357513862003138565b503d62003318565b6040513d8d823e3d90fd5b634e487b7160e01b8b5260116004528b8bfd5b9095508681813d831162003388575b62003376818362004430565b8101031262002a1357519438620030ec565b503d6200336a565b50346200034b57806003193601126200034b57601254620033b18162004452565b90620033c1604051928362004430565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b838310620034085760405180620004c787826200451d565b6002826001926040516200341c816200438f565b848060a01b038a5416815262003434858b0162005000565b83820152815201960192019194620033f0565b50346200034b5760403660031901126200034b57620004246200346962004319565b6035546001600160a01b03169060043562006730565b50346200034b576101003660031901126200034b576200349e62004330565b600160243510156200035957620034b46200446a565b620034be62004481565b620034c8620044ad565b92600360c4351015620006a75760e4359061ffff8216820362002a135760405194620034f486620043f8565b600086526040519562003507876200438f565b607b87526020870152604051614db78082018281106001600160401b0382111762001202578291620198b9833903906000f0801562001b1b5760018060a01b03166001600160601b0360a01b602a541617602a556040516114c88082018281106001600160401b0382111762001202578291620183f1833903906000f0801562001b1b5760018060a01b03166001600160601b0360a01b602c541617602c55604051610d308082018281106001600160401b03821117620012025782916200ad47833903906000f0801562001b1b5760018060a01b03166001600160601b0360a01b602d541617602d556040516108848082018281106001600160401b03821117620012025782916200ba77833903906000f094851562001b1b57602e80546001600160a01b0319166001600160a01b03881617905561ffff9460ff936001600160401b0392839162003659620052ea565b602a54604051919b91906001600160a01b03166200367782620043bf565b8152600060208201526200368a62004ccd565b60408201526200369a8c620050f2565b52620036a68b620050f2565b50602c54604051906001600160a01b0316620036c282620043bf565b815260006020820152620036d562004abd565b6040820152620036e58c62005116565b52620036f18b62005116565b50602d54604051906001600160a01b03166200370d82620043bf565b8152600060208201526200372062004dde565b6040820152620037308c62005127565b526200373c8b62005127565b50604051906200374c82620043bf565b6001600160a01b03168152600060208201526200376862004eef565b6040820152620037788b62005138565b52620037848a62005138565b506040519a620037948c620043db565b8b526001600160a01b031660208b0152620037b560243560408c01620051aa565b60443560608b01521660808901521660a08701521660c08501521660e08301526402540be400610100830152600c610120830152620037f660c435620051b7565b60c4356101408301526040519161137c90818401928484106001600160401b03851117620012025784936200383193620088ad863962005dd9565b03906000f0801562001b1b5760018060a01b0316806001600160601b0360a01b6029541617602955806001600160601b0360a01b602a541617602a55806001600160601b0360a01b602c541617602c55806001600160601b0360a01b602d541617602d556001600160601b0360a01b602e541617602e5580f35b50346200034b5760203660031901126200034b57620038c962004330565b620038d3620062f9565b90620038e3620001d98262006397565b50606462000217604051620038f8816200438f565b6001815260203681830137620050f2565b50346200034b57806003193601126200034b57604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b858282106200396f57505050620004b19250038362004430565b85546001600160a01b031684526001958601958895509301920162003955565b50346200034b57806003193601126200034b57604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b85828210620039f557505050620004b19250038362004430565b85546001600160a01b0316845260019586019588955093019201620039db565b50346200034b576020806003193601126200035957603754604051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003be57859262003bd3575b5060016001600160401b03809316019082821162003bbd578060365416908662003a8c3362006397565b92803b15620003595762003abf9382916040518080978194636b2c1eef60e01b83528d6004840152602483019062004702565b0391600435905af192831562000ed957879362003ba0575b5050603754169360046040518096819382525afa928315620003be57859362003b60575b50811691160362003b0a575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d831162003b98575b62003b7b818362004430565b81010312620006a75762003b90829162006456565b929062003afb565b503d62003b6f565b62003bae91929350620043ab565b62002018578490863862003ad7565b634e487b7160e01b600052601160045260246000fd5b9091508381813d831162003c0a575b62003bee818362004430565b81010312620006a75762003c029062006456565b903862003a62565b503d62003be2565b50346200034b576020806003193601126200035957600435916001600160401b0391828411620003595736602385011215620003595783600401359062003c598262004452565b9162003c69604051938462004430565b8083528183019560249687600593841b83010191368311620021675788859101915b83831062003d1757505050508384905b868216600381101562003d0d578551111562003cf85762003cd1879185681fffffffffffffffe085871b168801015190620062eb565b911686811462003ce5576001019062003c9b565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b823581529181019185910162003c8b565b50346200034b5760403660031901126200034b5760043562003d4962004319565b80319062003d566200516b565b506035546001600160a01b03929062003d729084168362006a5f565b50505050929050836036541686813b156200034b5786916004604051809481936316989f6f60e21b83525af180156200201c5762003e47575b508062003dca91319462003dbe6200516b565b50603554169062006a5f565b5050505093905084820391821162003e33570362003df957620004249262003df291620062eb565b14620066f0565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b634e487b7160e01b86526011600452602486fd5b9562003e5862003dca9297620043ab565b959062003dab565b50346200034b57806003193601126200034b57604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b8582821062003ec657505050620004b19250038362004430565b85546001600160a01b031684526001958601958895509301920162003eac565b905034620003595781600319360112620003595762003ff78162003f126001600160401b03936200438f565b60018152600162003f2b602092833681830137620050f2565b526040519062003f3b8262004373565b62003f456200516b565b825284818301528460408301528460c060609382858201528260808201528460a0820152015260405162003f7981620043f8565b8581526040519062003f8b826200438f565b607b82528282015260405162003fa181620043f8565b8681526040519162003fb38362004373565b8252600a83830152670de0b6b3a764000060408301526402540be400848301526046608083015260a0820152606460c08201526001600160a01b03938491620053be565b1683620040596200170e6001600160601b0360a01b9380856035541617603555808560375416176037558085603654161760365580856038541617603855808560395416176039558085603b541617603b558085603a541617603a55620051c2565b1690818160295416176029558181602a541617602a558181602c541617602c558181602e541617602e55602d541617602d556200414e62004099620062f9565b620040a36200516b565b50604051600360621b84820152601481526200412a90620040c4816200438f565b6200411b60405191620040d783620043bf565b600a83526001600160801b0387840160148152604085019283526040519b8c958a80880152511660408601525116888401525187608084015260a0830190620045c2565b03601f19810188528762004430565b6040519562004139876200438f565b60048752838701528695620001e882620050f2565b5060646200417360405162004163816200438f565b60018152833681830137620050f2565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b15620020185760405163c88a5e6d60e01b8152600c600482015260016024820152868160448183895af180156200201c57620042c4575b508460405192620041d4846200438f565b438452830152833b15620006a7576040516303223eab60e11b815260ff60981b6004820152858160248183895af18015620006c357918693918593620042a4575b506038546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af18015620003df5762004284575b5050803b1562000359578180916004604051809481936390c5013b60e01b83525af180156200034e5762000335578280f35b816200429e92903d10620003895762000379818362004430565b62004252565b620042b4919350939193620043ab565b620006a757849183913862004215565b620042d1919550620043ab565b849338620041c3565b90815180825260208080930193019160005b828110620042fb575050505090565b83516001600160a01b031685529381019392810192600101620042ec565b602435906001600160a01b038216820362002a1357565b600435906001600160a01b038216820362002a1357565b604435906001600160a01b038216820362002a1357565b35906001600160a01b038216820362002a1357565b60e081019081106001600160401b038211176200120257604052565b604081019081106001600160401b038211176200120257604052565b6001600160401b0381116200120257604052565b606081019081106001600160401b038211176200120257604052565b61016081019081106001600160401b038211176200120257604052565b602081019081106001600160401b038211176200120257604052565b608081019081106001600160401b038211176200120257604052565b90601f801991011681019081106001600160401b038211176200120257604052565b6001600160401b038111620012025760051b60200190565b606435906001600160401b038216820362002a1357565b608435906001600160401b038216820362002a1357565b35906001600160401b038216820362002a1357565b60a4359060ff8216820362002a1357565b359060ff8216820362002a1357565b359061ffff8216820362002a1357565b90815180825260208080930193019160005b828110620044fe575050505090565b83516001600160e01b03191685529381019392810192600101620044ef565b602080820190808352835180925260409283810182858560051b8401019601946000925b85841062004553575050505050505090565b9091929394959685806200458b600193603f1986820301885286838d51878060a01b03815116845201519181858201520190620044dd565b99019401940192959493919062004541565b60005b838110620045b15750506000910152565b8181015183820152602001620045a0565b90602091620045dd815180928185528580860191016200459d565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b8483106200461e5750505050505090565b90919293949584806200463e600193603f198682030187528a51620045c2565b98019301930191949392906200460d565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106200468e575050505090565b83516001600160a01b0316855293810193928101926001016200467f565b93919695949290620046c79060c0865260c08601906200464f565b9660208501526040840152606083015260808201526006821015620046ec5760a00152565b634e487b7160e01b600052602160045260246000fd5b9060406020620047249360ff81511684520151918160208201520190620045c2565b90565b919060408382031262002a13576040519262004743846200438f565b836200474f8262004498565b815260209182810135906001600160401b03821162002a1357019280601f8501121562002a13578335620047838162004452565b9462004793604051968762004430565b818652848087019260051b82010192831162002a135784809101915b838310620047bf57505050500152565b8190620047cc846200435e565b8152019101908490620047af565b9190916101608184031262002a135760405190620047f882620043db565b81938135906001600160401b03821162002a13576200481991830162004727565b825262004829602082016200435e565b60208301526040810135600181101562002a13576040830152606081013560608301526200485a6080820162004498565b60808301526200486d60a0820162004498565b60a08301526200488060c08201620044be565b60c08301526200489360e08201620044cd565b60e0830152610100808201359083015261012080820135908160000b820362002a13578301526101408091013591600383101562002a13570152565b81601f8201121562002a1357803591620048e98362004452565b92620048f9604051948562004430565b808452602092838086019260051b82010192831162002a13578301905b82821062004925575050505090565b81356001600160e01b03198116810362002a1357815290830190830162004916565b6001600160401b0381116200120257601f01601f191660200190565b81601f8201121562002a13578035906200497d8262004947565b926200498d604051948562004430565b8284526020838301011162002a1357816000926020809301838601378301015290565b5190811515820362002a1357565b6000805460081c60ff1615620049d8575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b620049fa57505090565b819250819060405182602082018381526519985a5b195960d21b60408401526040835262004a2883620043bf565b62004a646024604051809362004a536020830197630667f9d760e41b8952518092858501906200459d565b810103600481018452018262004430565b51925af1503d1562004ab4573d9062004a7d8262004947565b9162004a8d604051938462004430565b82523d81602084013e5b6020828051810103126200034b57506020620047249101620049b0565b60609062004a97565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b81600782011062004c59578462004b6297549383831062004c38575b83831062004c17575b83831062004bf6575b83831062004bd5575b83831062004bb4575b83831062004b96575b5082821062004b79575b501062004b64575b509050038362004430565b565b6001600160e01b031916815201803862004b57565b83811b6001600160e01b0319168552909301926001018462004b4f565b84901b6001600160e01b031916855290930192600101843862004b45565b606085901b6001600160e01b03191686529481019460019092019162004b3c565b608085901b6001600160e01b03191686529481019460019092019162004b33565b60a085901b6001600160e01b03191686529481019460019092019162004b2a565b60c085901b6001600160e01b03191686529481019460019092019162004b21565b60e085901b6001600160e01b03191686529481019460019092019162004b18565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162004afc565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b81600782011062004d6a578462004b6297549383831062004c385783831062004c175783831062004bf65783831062004bd55783831062004bb45783831062004b96575082821062004b7957501062004b6457509050038362004430565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162004d0c565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062004e7b578462004b6297549383831062004c385783831062004c175783831062004bf65783831062004bd55783831062004bb45783831062004b96575082821062004b7957501062004b6457509050038362004430565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162004e1d565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b81600782011062004f8c578462004b6297549383831062004c385783831062004c175783831062004bf65783831062004bd55783831062004bb45783831062004b96575082821062004b7957501062004b6457509050038362004430565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162004f2e565b906040918251809382549283835260209182840191600052826000209460005b8160078201106200507e578462004b6297549383831062004c385783831062004c175783831062004bf65783831062004bd55783831062004bb45783831062004b96575082821062004b7957501062004b6457509050038362004430565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005020565b805115620051005760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620051005760400190565b805160021015620051005760600190565b805160031015620051005760800190565b805160041015620051005760a00190565b805160051015620051005760c00190565b604051906200517a826200438f565b6060602083600081520152565b604051906200519682620043bf565b606060408360008152600060208201520152565b6001821015620046ec5752565b60031115620046ec57565b60408051620051d181620043db565b620051db6200516b565b8152600c60009283602084015283818401528360608401528360808401528360a08401528360c08401528360e08401526402540be4006101008581860152856101209381858801528161014080980152805198620052398a620043f8565b828a528151996200524a8b6200438f565b607b8b5260208b0152815199620052618b620043db565b8a526001600160a01b031660208a0152880152670de0b6b3a7640000606088015260016080880152600a60a0880152604660c0880152606460e088015286015284015282015290565b604090815191620052bb83620043bf565b600283528260005b828110620052d057505050565b602090620052dd62005187565b82828501015201620052c3565b6040519060a082018281106001600160401b038211176200120257604052600482528160005b608081106200531d575050565b6020906200532a62005187565b8282850101520162005310565b90815180825260208092019182818360051b85019501936000915b848310620053635750505050505090565b9091929394958480620053ad83856001950387528a51858060a01b038151168252838101516200539381620051b7565b8483015260408091015191606080928201520190620044dd565b980193019301919493929062005352565b90604051615c268082018281106001600160401b0382111762001202578291620127cb833903906000f0801562001b1b576040516122448082018281106001600160401b03821117620012025782916200e5a7833903906000f0801562001b1b576040516122ac8082018281106001600160401b03821117620012025782916200c2fb833903906000f0801562001b1b57604051611fe08082018281106001600160401b0382111762001202578291620107eb833903906000f090811562001b1b57604051610d308082018281106001600160401b03821117620012025782916200ad47833903906000f091821562001b1b576040516108848082018281106001600160401b03821117620012025782916200ba77833903906000f091821562001b1b5760405194620054f18662004373565b6006865260005b60c0811062005dbf57506040516200551081620043bf565b60018060a01b0380981681526000602082015260405180816020602f549283815201602f6000527fa813484aef6fb598f9f753daf162068ff39ccea4075cb95e1a30f86995b5b7ee926000905b80600783011062005d4a57620055b694549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b6040820152620055c687620050f2565b52620055d286620050f2565b508660405191620055e383620043bf565b1681526000602082015260405180816020603054928381520160306000527f6ff97a59c90d62cc7236ba3a37cd85351bf564556780cf8c1157a220f31f0cbb926000905b80600783011062005cd5576200568094549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b6040820152620056908662005116565b526200569c8562005116565b508560405191620056ad83620043bf565b1681526000602082015260405180816020603154928381520160316000527fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc926000905b80600783011062005c60576200574a94549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b60408201526200575a8562005127565b52620057668462005127565b5084604051916200577783620043bf565b1681526000602082015260405180816020603254928381520160326000527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff697926000905b80600783011062005beb576200581494549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b6040820152620058248462005138565b52620058308362005138565b5083604051916200584183620043bf565b1681526000602082015260405180816020603454928381520160346000527f46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c1926000905b80600783011062005b7657620058de94549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b6040820152620058ee8362005149565b52620058fa8262005149565b5082604051916200590b83620043bf565b1681526000602082015260405180816020603354928381520160336000527f82a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a82926000905b80600783011062005b0157620059a894549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b6040820152620059b8826200515a565b52620059c4816200515a565b5060405190611b8c808301918383106001600160401b038411176200120257620059fd9162006d21853960408352604083019062005337565b90602081830391015262005a1b855160e0835260e08301906200464f565b9060208601516020820152604086015160408201526060808701518183015260ff608088015116608083015260a08701519282810360a0840152835190818152602081016020808460051b8401019601936000925b84841062005ab25750505050505060c061ffff818596979801511691015203906000f0801562001b1b5716806001600160601b0360a01b603554161760355590565b90919293949660208062005af06001938660408f8e601f198a8603018c525190815185528682015116868501520151918160408201520190620045c2565b990194019401929493919062005a70565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200594f565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005885565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620057bb565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b16908501521690820152019401920184929391620056f1565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005627565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b169085015216908201520194019201849293916200555d565b60209062005dcc62005187565b82828a01015201620054f8565b9062005dee9060408352604083019062005337565b90602081830391015262005e0c82516101608084528301906200464f565b6020808401516001600160a01b03169083015260408301519092906001811015620046ec576040830152606081015160608301526001600160401b0380608083015116608084015260a08201511660a083015260ff60c08201511660c083015261ffff60e08201511660e083015261010080820151908301526101208082015160000b90830152610140809101519162005ea683620051b7565b015290565b60405190614db791828101928184106001600160401b038511176200120257620198b9823980600093039083f09081156200034e576040516114c8808201908282106001600160401b0383111762000ee657908291620183f18339039084f080156200039157604051610884808201908282106001600160401b03831117620011c6579082916200ba778339039085f0908115620003df57604051610d30808201908282106001600160401b03831117620062d7579082916200ad478339039086f0908115620003be5762005f7f620052ea565b946040519062005f8f82620043bf565b6001600160a01b031681526020810187905262005fab62004ccd565b604082015262005fbb86620050f2565b5262005fc785620050f2565b506040519062005fd782620043bf565b6001600160a01b031681526020810186905262005ff362004abd565b6040820152620060038562005116565b526200600f8462005116565b50604051906200601f82620043bf565b60018060a01b03168152846020820152604051808160206033549283815201603389527f82a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a829289905b8060078301106200626257620060c094549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b6040820152620060d08462005127565b52620060dc8362005127565b5060405190620060ec82620043bf565b60018060a01b03168152836020820152604051808160206034549283815201603488527f46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c19288905b806007830110620061ed576200618d94549181811062000fce5781811062000fae5781811062000f8e5781811062000f6e5781811062000f4e5781811062000f2e5781811062000f10571062000efa5750038262004430565b60408201526200619d8362005138565b52620061a98262005138565b506040519161137c808401908482106001600160401b0383111762000ee65791849391620061dd93620088ad863962005dd9565b039082f090811562002cb4575090565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006134565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006067565b634e487b7160e01b88526041600452602488fd5b9190820180921162003bbd57565b6040519062006308826200438f565b600182528160005b602090818110156200633657602091620063296200516b565b9082850101520162006310565b505050565b51906001600160a01b038216820362002a1357565b80929103916060831262002a135760406200636b82620049b0565b93601f19011262002a1357604080519162006386836200438f565b602081015183520151602082015290565b6001600160401b0390620063aa6200516b565b506200643d6040918251906001600160601b03199060601b16602082015260148152620063d7816200438f565b6200642e835191620063e983620043bf565b600a83526001600160801b036020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a0830190620045c2565b03601f19810184528362004430565b51906200644a826200438f565b60048252602082015290565b51906001600160401b038216820362002a1357565b919060408382031262002a13576040519262006487846200438f565b83620064938262006456565b815260209182810151906001600160401b03821162002a1357019280601f8501121562002a13578351620064c78162004452565b94620064d7604051968762004430565b818652848087019260051b82010192831162002a135784809101915b8383106200650357505050500152565b819062006510846200633b565b8152019101908490620064f3565b9060208282031262002a135781516001600160401b03811162002a13576200472492016200646b565b90620065616020919493946040845260408401906200464f565b6001600160a01b03909416910152565b6040519062006580826200438f565b816200658b6200516b565b81526020620065996200516b565b910152565b62004724916020620065ba83516040845260408401906200464f565b92015190602081840391015262004702565b906020808351936040845260c062006658620065f6875160e060408901526101208801906200659e565b620066138589015191603f1992838a83030160608b01526200659e565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152620045c2565b9501516101008501520151151591015290565b156200667357565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b15620066b357565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b15620066f857565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b0380841694939190853b1562002a135781604093845197637903ab2760e11b89528860248160009788948560048401525af197881562006a555760049596979862006a38575b50906200678c84928862006a5f565b9993949b9296915096603754168a51938480926394074b0360e01b82525afa9182156200699e57879262006a18575b5073__$a0fe38a9a81205afccc10810b09a4d3f45$__89519a8b926390ba52cf60e01b918285528460209e8f9283600483015260248201620067fd916200464f565b0381865af493841562006a0e57908a918295620069d2575b508c5163aa5106cb60e01b81529495859182916200683891906004840162006547565b0381855af4928315620069c85791620068739493918d938b93620069a8575b508c51809681948293835286600484015260248301906200464f565b03915af49182156200699e57879262006969575b5003620068f35791620024a6620024ad92620068a5959414620066f0565b6006821015620029575750600103620068bc575050565b60649250519062461bcd60e51b825260048201526011602482015270756e65787065637465642073746174757360781b6044820152fd5b865162461bcd60e51b815260048101899052604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091508981813d831162006996575b62006984818362004430565b8101031262002a135751903862006887565b503d62006978565b89513d89823e3d90fd5b620069c09193503d808d833e620028a7818362004430565b913862006857565b8b513d8b823e3d90fd5b8e809296508193503d831162006a06575b620069ef818362004430565b8101031262002a1357519289906200683862006815565b503d620069e3565b8c513d8c823e3d90fd5b62006a309192503d8089833e620028a7818362004430565b9038620067bb565b9362006a4b6200678c95939293620043ab565b939190916200677d565b85513d86823e3d90fd5b9062006a6a6200516b565b5060018060a01b0380911690816001600160601b0360a01b8181603854161760385581816036541617603655603754161760375560409182519384916394074b0360e01b835282600460009788935afa91821562006cd35762006b0592918691829362006d00575b50855163aa5106cb60e01b81529373__$a0fe38a9a81205afccc10810b09a4d3f45$__9385928392916004840162006547565b0381845af491821562006cd357859262006cdd575b5062006b4c91926037541692845180926390ba52cf60e01b82528180602096879586600484015260248301906200464f565b03915af490811562006cd357908591829162006c9c575b50602485518095819363017187cd60e11b835260048301525afa91821562006c8f57849262006bcc575b505060c0810151928151946001600160401b039460a0866060860151169660808601511695850151940151926006841015620029575750959493929190565b9091503d8085833e62006be0818362004430565b8101908281830312620006a75780516001600160401b039182821162002167570160e081840312620020185784519362006c1a8562004373565b815185528082015190850152848101518585015262006c3c6060820162006456565b606085015262006c4f6080820162006456565b608085015260a08101516006811015620021675760a085015260c0810151918211620020185762006c829291016200646b565b60c0820152388062006b8d565b50505051903d90823e3d90fd5b809250838092503d831162006ccb575b62006cb8818362004430565b81010312620006a7578490513862006b63565b503d62006cac565b84513d87823e3d90fd5b62006b4c925062006cf9903d8088833e620028a7818362004430565b9162006b1a565b62006d189193503d8084833e620028a7818362004430565b913862006ad256fe60806040523462000cb55762001b8c80380380916200002082608062000f1e565b6080396040811262000cb5576080516001600160401b03811162000cb55760808201609f8201121562000cb5578060800151906200005e8262000f42565b916200006e604051938462000f1e565b8083526020830180928560800160208460051b8360800101011162000cb55760a08101915b60a0600585901b830101831062000ddc57505060a0519150506001600160401b03811162000cb55760e08185031262000cb5576040519360e085016001600160401b03811186821017620005a857604081905260808301516001600160401b03811162000cb557836080010160408184608001031262000cb557620001188262000f02565b80516001600160401b038116810362000cb55782526020810151906001600160401b03821162000cb5570182608001601f8201121562000cb557805190620001608262000f42565b9162000170604051938462000f1e565b80835260208084019160051b8301019185608001831162000cb557602001905b82821062000dc1575050506101008781019190915290865260a0830151602087015260c0830151604087015260e0830151606087015282015160ff8116810362000cb55760808601526101208201516001600160401b03811162000cb55760808201609f84830101121562000cb55780836080010151620002118162000f42565b9262000221604051948562000f1e565b818452602084016080820160a0878601600586901b01011162000cb55760a086850101905b60a0878601600586901b0101821062000cba5789898960c08a8a60a0860152608001015161ffff8116810362000cb55760c084015260408301511562000ca35760208301511562000c915760ff6080840151166033811090811562000c85575b5062000c73577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b036020820190811190821117620005a8576020810160405260008152825160005b818110620006185750506040519260608401906060855251809152608084019060808160051b86010193916000905b828210620005be57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806200037e8a8a60006020850152838203604085015262001026565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549091169091179055602c805464ffffffffff1916600217905581518051601980546001600160401b0319166001600160401b039283161790559101518051918211620005a857680100000000000000008211620005a857602090601a5483601a5580841062000587575b5001601a600052602060002060005b83811062000569576200055960a0866040810151601b556020810151601e556060810151601c5560ff60808201511660ff19601d541617601d556001600b5560016012556064601f55600a60018060401b0319602054161760205560c081015162ffff006021549160081b169062ffff001916176021556801000000000000000160018060801b0319602a541617602a550151604051906200054a8262000f02565b815260006020820152620013fe565b604051610133908162001a198239f35b82516001600160a01b031681830155602090920191600101620004a8565b620005a190601a6000528484600020918201910162000f94565b8462000499565b634e487b7160e01b600052604160045260246000fd5b9091929460208062000609600193607f198b8203018652606060408b51878060a01b038151168452620005f8868201518786019062000fd8565b015191816040820152019062000fe6565b97019201920190929162000337565b604062000626828762000fad565b5101516001600160a01b036200063d838862000fad565b5151169080511562000c5a57602062000657848962000fad565b510151600381101562000c4457806200088157508115620008565761ffff60008051602062001b4c8339815191525416620006d4604051620006998162000ee6565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b6040820152846200107f565b8151916000915b838310620006f35750505050506001905b0162000308565b6001600160e01b031962000708848462000fad565b5116600081815260008051602062001b6c83398151915260205260409020549091906001600160a01b03166200083d57620007ab6040516200074a8162000f02565b87815261ffff929092166020808401828152600086815260008051602062001b6c83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b4c833981519152549168010000000000000000831015620005a8576200081290620007f560019485810160008051602062001b4c833981519152556200104d565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000827578101920191620006db565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200087d90602483019062000fe6565b0390fd5b60018103620009fa57508115620009d357620008e6604051620008a48162000ee6565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b6040820152836200107f565b80519060005b828110620009015750505050600190620006ec565b6001600160e01b031962000916828462000fad565b5116600081815260008051602062001b6c83398151915260205260409020546001600160a01b0316308114620009ba57858114620009a157156200098957600090815260008051602062001b6c8339815191526020526040902080546001600160a01b03191685179055600101620008ec565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200087d90602483019062000fe6565b6002810362000c22575060008051602062001b4c83398151915254918062000c0a575080519060005b82811062000a385750505050600190620006ec565b6001600160e01b031962000a4d828462000fad565b5116908160005260008051602062001b6c8339815191526020526040600020946040519562000a7c8762000f02565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bf15785516001600160a01b0316301462000bd8578015620008275760001901948561ffff6020830151160362000b55575b5060008051602062001b4c8339815191525491821562000b3f576001926000190162000afa816200104d565b63ffffffff82549160031b1b1916905560008051602062001b4c8339815191525560005260008051602062001b6c833981519152602052600060408120550162000a23565b634e487b7160e01b600052603160045260246000fd5b62000bd19061ffff602062000b6a896200104d565b90549060031b1c60e01b9262000b8a84620007f58585850151166200104d565b01516001600160e01b0319909216600090815260008051602062001b6c83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000ace565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c4290600483019062000fd8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b606491501184620002a6565b60405163312f8e0560e01b8152600490fd5b6040516368f7a67560e11b8152600490fd5b600080fd5b8151906001600160401b03821162000cb557606088870183018503601f19011262000cb5576040519162000cee8362000ee6565b868901810160a0810151845262000d089060c00162000f5a565b602084015260e089880182010151906001600160401b03821162000cb557878a6080010101019084608001603f8301121562000cb5576020820151906001600160401b03821162000dac576040519362000d6d601f8401601f19166020018662000f1e565b828552866080016040848601011162000cb5578462000d99602096948796604088809801910162000f6f565b6040820152815201920191905062000246565b60246000634e487b7160e01b81526041600452fd5b6020809162000dd08462000f5a565b81520191019062000190565b82516001600160401b03811162000cb557606090830160808101908903601f1901821362000cb5576040519162000e138362000ee6565b62000e216020830162000f5a565b83526040820151600381101562000cb5576020840152810151906001600160401b03821162000cb5570188608001603f8201121562000cb55760208101519062000e6b8262000f42565b9162000e7b604051938462000f1e565b808352602083018b60800160408360051b8501011162000cb55760408301905b60408360051b850101821062000ec35750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000cb55781526020918201910162000e9b565b606081019081106001600160401b03821117620005a857604052565b604081019081106001600160401b03821117620005a857604052565b601f909101601f19168101906001600160401b03821190821017620005a857604052565b6001600160401b038111620005a85760051b60200190565b51906001600160a01b038216820362000cb557565b60005b83811062000f835750506000910152565b818101518382015260200162000f72565b81811062000fa0575050565b6000815560010162000f94565b805182101562000fc25760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c445752565b90815180825260208080930193019160005b82811062001007575050505090565b83516001600160e01b0319168552938101939281019260010162000ff8565b90602091620010418151809281855285808601910162000f6f565b601f01601f1916010190565b9060008051602062001b4c833981519152805483101562000fc257600052601c60206000208360031c019260021b1690565b803b156200108b575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200087d90604483019062001026565b908082519081815260208091019281808460051b8301019501936000915b848310620010f05750505050505090565b909192939495848062001133600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062001026565b9801930193019194939290620010df565b90600182811c9216801562001176575b60208310146200116057565b634e487b7160e01b600052602260045260246000fd5b91607f169162001154565b9190601f81116200119157505050565b620011c0926000526020600020906020601f840160051c83019310620011c2575b601f0160051c019062000f94565b565b9091508190620011b2565b90808214620012b657620011e2815462001144565b906001600160401b038211620005a85781906200120c8262001205865462001144565b8662001181565b600090601f831160011462001246576000926200123a575b50508160011b916000199060031b1c1916179055565b01549050388062001224565b81526020808220858352818320935090601f1985169083905b8282106200129c57505090846001959493921062001282575b505050811b019055565b015460001960f88460031b161c1916905538808062001278565b84958192958501548155600180910196019401906200125f565b5050565b60045481101562000fc25760046000526003602060002091020190600090565b90620013e85781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b038311620005a85762001346836200133f875462001144565b8762001181565b81601f841160011462001382575092829391839260009462001376575b50501b916000199060031b1c1916179055565b01519250388062001363565b919083601f1981168760005284600020946000905b88838310620013cd5750505010620013b357505050811b019055565b015160001960f88460031b161c1916905538808062001278565b85870151885590960195948501948793509081019062001397565b634e487b7160e01b600052600060045260246000fd5b60409081519060209081835262001420815185848601526060850190620010c1565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200178d575b505060049182549168010000000000000000958684116200177857600654846006558085106200168e575b50600093858552868520600686528786209086905b838210620016385750505050808854169160018060401b03199283600754161760075583515193865498865b868110620015b657505050511690875416178655808511620014f9575b505050505050565b84811015620014f15782548015620015a35760001901906200151b82620012ba565b92909262001591578383558360026001948286820155016200153e815462001144565b8062001551575b505050845501620014f9565b82601f8083116001146200156d57505050555b83388062001545565b8382528a82209391926200158991018d1c840188850162000f94565b555562001564565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ed5780620015e6620015d3600193865162000fad565b51620015df83620012ba565b90620012da565b01620014d4565b620015fa81845162000fad565b51895483811015620016255760019291620015df828d866200161f95019055620012ba565b620015e6565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001655575b6003809101930191019091620014a8565b805484558180850190838060a01b039083015416838060a01b0319825416179055620016886002808301908601620011cd565b62001644565b6003908082029082820403620017635785820282810487036200174e57886000916006835281832093840193015b8c848210620016d057505050505062001493565b85928491828455600183818601556002850191620016ef835462001144565b918262001706575b505050505050018990620016bc565b8591601f8085116001146200172a5750505050509050555b828b388f8082620016f7565b859496849662001746955286209601901c850190850162000f94565b55556200171e565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b858351168660075416908181146200191357106200190257815191620017b38362000f02565b600454620017c18162000f42565b91620017d08151938462000f1e565b81835287830190600460005288600020906000925b84841062001819575050509184525050848201526200180590836200191e565b6200181257388062001468565b5050505050565b8a8d835190620018298262000ee6565b8554825260018060a01b0360018701541683830152600286018551916000918054620018558162001144565b8086529260018216918215620018df5750506001146200189b575b50509181620018886001969360039695038262000f1e565b86820152815201930193019291620017e5565b60009081528581209092505b818310620018c057505081018301816200188862001870565b8060019196929394959654838688010152019201908f949392620018a7565b60ff19168689015292151590921b84018601925083915062001888905062001870565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b03918216911603620019d0576200194981620019d8565b6200195484620019d8565b03620019d05751805183515103620019d057620019c9620019bc9160405190816200198a868201928784526040830190620010c1565b0391620019a0601f199384810183528262000f1e565b51902094516040519384918683019687526040830190620010c1565b0390810183528262000f1e565b5190201490565b505050600090565b8051519060009182915b818310620019f05750505090565b90919262001a0084835162000fad565b515181018091116200082757926001019190620019e256fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220e59c2630963e949be385777de1611b923486901fdbf3970ac63167b49cdbae2a64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd26080604052346106715761137c803803809161001c826080610faf565b60803960408112610671576080516001600160401b0381116106715760808201609f8201121561067157806080015161005481610fd2565b906100626040519283610faf565b8082526020820180938560800160208460051b836080010101116106715760a08101915b60a0600585901b8301018310610e5457505060a051939150506001600160401b03831161067157610160938381038513610671576040519485016001600160401b0381118682101761075d5760405260808401516001600160401b038111610671576100fa91608001908560800101611011565b845261010860a08401610fe9565b6020850181905260c0840151600181101561067157604086015260e084015160608601526101396101008501610ffd565b608086015261014b6101208501610ffd565b60a086015261014084015160ff811681036106715760c086015261016084015161ffff811681036106715760e0860152610100938481608001015185870152610120816080010151908160000b8203610671576101409161012088015260800101516003811015610671576101408601526001600160a01b031615610e425760a08401516001600160401b031615610e305760016101408501516101ee816110b4565b6101f7816110b4565b141580610e24575b610e125760ff60c08501511660338110908115610e07575b50610df557601261012085015160000b13610de3577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111761075d576020810160405260008152825160005b8181106107d55750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061077f5788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67389806102fa8b8b600060208501528382036040850152611181565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054909116821790556101408301516103be816110b4565b6103c7816110b4565b14610773575b81518051601080546001600160401b0319166001600160401b0392831617905560209190910151805191821161075d5768010000000000000000821161075d5760115482601155808310610728575b506020016011600052602060002060005b83811061070b57858560018060a01b03602083015116600e5490604084015160018110156106f5576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040516104e881610f79565b6010546001600160401b0316815260405160118054808352600091825260008051602061131c83398151915291839160208301915b8181106106d357505061053292500382610faf565b6020820152610574600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518093819263aa5106cb60e01b83526040600484015260448301906110be565b3060248301520381855af490811561067e5760009161068a575b506020906105b89260405180809581946390ba52cf60e01b835286600484015260248301906110be565b03915af490811561067e57600091610647575b50600d55610140810151906105df826110b4565b6105e8826110b4565b60ff62ffff0060e0601354936064600855600a60018060401b03196009541617600955015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c5560405160eb90816112318239f35b90506020813d602011610676575b8161066260209383610faf565b810103126106715751826105cb565b600080fd5b3d9150610655565b6040513d6000823e3d90fd5b90503d806000833e61069c8183610faf565b810191602082840312610671578151916001600160401b038311610671576105b8936020936106cb9201611011565b91509161058e565b84546001600160a01b031683526001948501948694506020909301920161051d565b634e487b7160e01b600052602160045260246000fd5b82516001600160a01b03168183015560209092019160010161042d565b601160005260008051602061131c833981519152908382015b818301811061075157505061041c565b60008155600101610741565b634e487b7160e01b600052604160045260246000fd5b600060608301526103cd565b909192946020806107c7600193607f198b8203018652606060408b51878060a01b038151168452858101516107b3816110b4565b868501520151918160408201520190611143565b9701920192019092916102b5565b60406107e18287611119565b5101516001600160a01b036107f68388611119565b51511690805115610dca57602061080d8489611119565b510151610819816110b4565b610822816110b4565b80610a24575081156109fb5761ffff60008051602061133c83398151915254169161088c60405161085281610f94565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b6040820152826111f1565b8151916000935b8385106108a95750505050506001905b01610287565b6001600160e01b03196108bc8684611119565b5116600081815260008051602061135c83398151915260205260409020546001600160a01b03166109e3576109526040516108f681610f79565b85815261ffff84166020808301918252600085815260008051602061135c833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b60008051602061133c83398151915254906801000000000000000082101561075d576109948260016109b1940160008051602061133c833981519152556111c1565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff808216146109cd57600161ffff81921601940193610893565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610a20906024830190611143565b0390fd5b610a2d816110b4565b60018103610b9457508115610b6f57610a8c604051610a4b81610f94565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b6040820152836111f1565b80519060005b828110610aa557505050506001906108a3565b6001600160e01b0319610ab88284611119565b5116600081815260008051602061135c83398151915260205260409020546001600160a01b0316308114610b5657858114610b3d5715610b2557600090815260008051602061135c8339815191526020526040902080546001600160a01b03191685179055600101610a92565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610a20906024830190611143565b610b9d816110b4565b60028103610daa575060008051602061133c833981519152549180610d92575080519060005b828110610bd657505050506001906108a3565b6001600160e01b0319610be98284611119565b5116908160005260008051602061135c83398151915260205260406000209460405195610c1587610f79565b546001600160a01b03811680885260a09190911c61ffff16602088015215610d795785516001600160a01b03163014610d605780156109cd576000190180958161ffff60208301511603610ce5575b505060008051602061133c83398151915254918215610ccf5760019260001901610c8d816111c1565b63ffffffff82549160031b1b1916905560008051602061133c8339815191525560005260008051602061135c8339815191526020526000604081205501610bc3565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610cf6610d59946111c1565b90549060031b1c60e01b92610d13846109948585850151166111c1565b01516001600160e01b0319909216600090815260008051602061135c83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610c64565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610dc3816110b4565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610217565b6040516368f7a67560e11b8152600490fd5b506060840151156101ff565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161067157606090830160808101908903601f1901821361067157604051918083016001600160401b03811184821017610f6457604052610ea260208301610fe9565b8352604082015160038110156106715760208401528101516001600160401b0381116106715789608001603f8284010112156106715760208183010151610ee881610fd2565b92610ef66040519485610faf565b81845260208401908c60800160408460051b86840101011161067157604084820101915b60408460051b86840101018310610f435750505050506040820152815260209283019201610086565b82516001600160e01b03198116810361067157815260209283019201610f1a565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b0382111761075d57604052565b606081019081106001600160401b0382111761075d57604052565b601f909101601f19168101906001600160401b0382119082101761075d57604052565b6001600160401b03811161075d5760051b60200190565b51906001600160a01b038216820361067157565b51906001600160401b038216820361067157565b9190604083820312610671576040519261102a84610f79565b8361103482610ffd565b815260208281015190926001600160401b03821161067157019280601f8501121561067157835161106481610fd2565b946110726040519687610faf565b818652848087019260051b8201019283116106715784809101915b83831061109c57505050500152565b81906110a784610fe9565b815201910190849061108d565b600311156106f557565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b8281106110fc575050505090565b83516001600160a01b0316855293810193928101926001016110ee565b805182101561112d5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b828110611163575050505090565b83516001600160e01b03191685529381019392810192600101611155565b919082519283825260005b8481106111ad575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161118c565b9060008051602061133c833981519152805483101561112d57600052601c60206000208360031c019260021b1690565b803b156111fc575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610a2090604483019061118156fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122034477731f6063883c0c4e645241b575decdff772ed0eed5c444e648eaad09a2e64736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610ce35761111e8038038061001981610dcf565b928339810190604081830312610ce35780516001600160401b038111610ce35781019082601f83011215610ce35781519061005b61005683610df4565b610dcf565b92602084848152016020819460051b83010191868311610ce35760208101915b838310610ce857505050506020810151906001600160401b038211610ce3570160a081850312610ce3576040519360a085016001600160401b0381118682101761051c576040526100cb82610e0b565b85526100d960208301610e0b565b60208601526100ea60408301610e0b565b604086015260608201516001600160401b038111610ce3578161010e918401610e1f565b606086015260808201516001600160401b038111610ce3576101309201610e1f565b608084015282516001600160a01b031615610cd15760208301516001600160a01b031615610cbf5760408301516001600160a01b031615610cbf577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b03191633179055604051602081016001600160401b0381118282101761051c5760405260008152825160005b8181106106885750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061063357877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806102338a8a600060208501528382036040850152610efb565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b60009081527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549092168317909155835181546001600160a01b039182166001600160a01b0319918216179092559284015182549084169082161782556040840151600280549190941691161782556060830151805192939091906001600160401b03841161051c57680100000000000000009081851161051c5760039384548686558087106105d7575b5060200184600052602060002086861c9060005b828110610586575060071997808916900380610532575b50505050608001518051916001600160401b03831161051c57821161051c57600454826004558083106104a3575b506020016004600052816020600020941c9460005b8681106104525750821680830392036103fa575b6040516101339081610fab8239f35b91906000956000905b82821061041c57505050505001558080808080806103eb565b9091926020610446869983975160e01c9086861b60031b9163ffffffff809116831b921b19161790565b98019493920190610403565b84906000805b8a6008821061046d57505081880155016103d7565b610496908794959383602094995160e01c921b60031b9163ffffffff809116831b921b19161790565b9201940190869291610458565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6007918201861c8101918401861c01601c84891b1680610502575b5084905b8281106104f65750506103c2565b600081550184906104e8565b6000199081830191825491602003891b1c169055886104e4565b634e487b7160e01b600052604160045260246000fd5b9260009360005b888c83831061055357505050505001556080878080610394565b61057c908598846020949596975160e01c921b60031b9163ffffffff809116831b921b19161790565b9601929101610539565b86906000805b8c600882106105a1575050818401550161037d565b6105ca9088949593836020949a5160e01c921b60031b9163ffffffff809116831b921b19161790565b920195019088929161058c565b8560005260206000206007808901881c82019201871c0190601c888a1b1680610619575b5085905b82811061060d575050610369565b600081550185906105ff565b60001990818301918254916020038a1b1c169055896105fb565b9091929460208061067a600193607f198b8203018652606060408b51878060a01b03815116845261066a8682015187860190610eb0565b0151918160408201520190610ebd565b9701920192019092916101ef565b60406106948287610e86565b5101516001600160a01b036106a98388610e86565b51511690805115610ca65760206106c08489610e86565b5101516003811015610c9057806108de575081156108b55761ffff6000805160206110de83398151915254166107316106f7610db0565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610f6b565b8151916000915b83831061074e5750505050506001905b016101c1565b6107588383610e86565b516001600160e01b0319811660009081526000805160206110fe83398151915260205260409020549091906001600160a01b03166108935761080661079b610d91565b87815261ffff9290921660208084018281526001600160e01b0319861660009081526000805160206110fe83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b6000805160206110de83398151915254916801000000000000000083101561051c576108686108496001948581016000805160206110de83398151915255610f3b565b909260e01c9083549060031b9163ffffffff809116831b921b19161790565b905561ffff811461087d578101920191610738565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b81526001600160e01b031983166004820152602490fd5b6040516302b8da0760e21b8152602060048201529081906108da906024830190610ebd565b0390fd5b60018103610a4157508115610a1c576109396108f8610db0565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610f6b565b80519060005b8281106109525750505050600190610748565b6001600160e01b03196109658284610e86565b511660008181526000805160206110fe83398151915260205260409020546001600160a01b0316308114610a03578581146109ea57156109d25760009081526000805160206110fe8339815191526020526040902080546001600160a01b0319168517905560010161093f565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906108da906024830190610ebd565b60028103610c7057506000805160206110de833981519152549180610c58575080519060005b828110610a7a5750505050600190610748565b6001600160e01b0319610a8d8284610e86565b511690816000526000805160206110fe833981519152602052604060002094610ab4610d91565b95546001600160a01b03811680885260a09190911c61ffff16602088015215610c3f5785516001600160a01b03163014610c2657801561087d576000190180958161ffff60208301511603610b85575b50506000805160206110de83398151915254918215610b6f5760019260001901610b2d81610f3b565b63ffffffff82549160031b1b191690556000805160206110de833981519152556000526000805160206110fe8339815191526020526000604081205501610a67565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610b96610c1f94610f3b565b90549060031b1c92610bd3610baf848484015116610f3b565b63ffffffff87939293169083549060031b9163ffffffff809116831b921b19161790565b9055015160e09290921b6001600160e01b03191660009081526000805160206110fe83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610b04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610c8e906004830190610eb0565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516307a0435160e51b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b600080fd5b82516001600160401b038111610ce35782019060609081601f19848c030112610ce357604051918083016001600160401b03811184821017610d7c57604052610d3360208501610e0b565b835260408401516003811015610ce3576020840152830151916001600160401b038311610ce357610d6c8b602080969581960101610e1f565b604082015281520192019161007b565b60246000634e487b7160e01b81526041600452fd5b60408051919082016001600160401b0381118382101761051c57604052565b60405190606082016001600160401b0381118382101761051c57604052565b6040519190601f01601f191682016001600160401b0381118382101761051c57604052565b6001600160401b03811161051c5760051b60200190565b51906001600160a01b0382168203610ce357565b9080601f83011215610ce357815190610e3a61005683610df4565b9182938184526020808095019260051b820101928311610ce3578301905b828210610e66575050505090565b81516001600160e01b031981168103610ce3578152908301908301610e58565b8051821015610e9a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906003821015610c905752565b90815180825260208080930193019160005b828110610edd575050505090565b83516001600160e01b03191685529381019392810192600101610ecf565b919082519283825260005b848110610f27575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610f06565b906000805160206110de8339815191528054831015610e9a57600052601c60206000208360031c019260021b1690565b803b15610f76575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906108da906044830190610efb56fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b0b1bfa760488d138ca9ff61961c26b6d50e21d751087ca61ff93b367084c60e64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd26080806040523461001657610d14908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c634300081300336080806040523461001657610868908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c634300081300336080806040523461001657612290908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114d15781630338150f1461148b57816305aff0b31461146457816306572c1a1461143357816306c468531461141457816322180594146113f557816324729425146113d65781632da5794a1461135d578163335eb62a14611160578163375b3c0a1461114157816341b6a2e8146111165781634aa8f8a5146110f7578163544dddff146110cf578163599c7bd1146110ad5781635d02968514610f965781636547cd6414610f6b57816369e737fd14610f4c5781636ad21bb014610e6e578163767ee5f414610df45781637edeac9214610da55781638789f83b14610d7a5781638cfd78e714610cea57816394074b0314610c345781639704276614610a935781639d3070b514610a4d5781639e530b5714610a1b578163a2b67158146109f0578163a517218f1461096c578163a9294bdd146107d0578163ac12d76314610792578163b1ba49b01461076a578163b3ab3f741461073f578163b9ee5842146106a2578163c66c66a114610651578163ca41d5ce146104ed578163d6c5c3971461037d578163dd81b5cf146102a8575063f3229131146101c557600080fd5b346102a457816003193601126102a4576101dd611e81565b508051906101ea826118ea565b6006546101f68161195c565b6102028351918261193b565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b8282106102625750505061025e945083526001600160401b03600754169083015251918291826117c3565b0390f35b6003856001928851610273816118cf565b8b548152848060a01b03858d0154168382015261029260028d01611bcc565b8a820152815201980191019096610233565b5080fd5b919050346103795760209182600319360112610375576102c6611ba5565b50358352600982528083209260038251946102e0866118cf565b6102e981611afe565b8652600281015485870152018054906103018261195c565b9261030e8551948561193b565b828452908152848120858085015b84841061033b5786890186905286518281528061025e8185018c61172a565b600191600d91885161034c816118ea565b61035586611ce3565b815260ff600c87015416151583820152815201920192019190869061031c565b8380fd5b8280fd5b8383346102a457816003193601126102a457610397611b79565b506103a0611b79565b50601e549081156104da576001600160401b03918083431604600181018091116104c757906103ce91612231565b80845261042c6020809660088252848720908551966103ec8861189e565b816103f684611afe565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612083565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104bc578095610475575b50508160609161025e94935196879615875286015284015260608301906115ef565b909194508582813d83116104b5575b61048e818361193b565b810103126104b2575061025e92916104a7606092611ec6565b949181939450610453565b80fd5b503d610484565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b919050346103795760203660031901126103795781359161050c611b79565b50610515611e9b565b508284526008602052818420926001600160401b03828451956105378761189e565b61054081611afe565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af4908115610647579061025e9291856105c79691818094610617575b50506105fc610609939451978897610100808a528901906115ef565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a52565b9083820360e0850152611a8f565b61060994506105fc935061063d92503d8091833e610635818361193b565b810190611ed3565b91929091936105ab565b82513d86823e3d90fd5b8284346104b2575061068b61025e61068361067e61066e36611a21565b610676611d5a565b503690611973565b612121565b929092611d99565b835193849315158452806020850152830190611571565b91905034610379576020366003190112610379578060ff61073d9260a0956106c8611e9b565b5085358152601360205220938251946106e086611920565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b9050346103795760203660031901126103795781602093600392358152600c85522001549051908152f35b5050346102a457816003193601126102a4576020906001600160401b03600754169051908152f35b91905034610379576020366003190112610379578060ff61073d9260a0956107b8611e9b565b5085358152600c60205220938251946106e086611920565b919050346103795760209182600319360112610375578035926107f1611ba5565b506107fa611e9b565b5083855260098152828520936003845195610814876118cf565b61081d81611afe565b87526002810154848801520180546108348161195c565b916108418751938461193b565b81835288528388208890858085015b8484106109325750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561092857908561025e9493926108cc97908280956108ff575b50506105fc90610609949551988998610100808b528a019061172a565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b61060995506105fc935061091d92503d8091833e610635818361193b565b9490925081906108af565b83513d87823e3d90fd5b600191600d918b51610943816118ea565b61094c86611ce3565b815260ff600c870154161515838201528152019201920191908690610850565b8284346104b257806003193601126104b2578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109d95761025e86866109cf828b038361193b565b5191829182611863565b8354875295860195600193840193909101906109b7565b5050346102a457816003193601126102a4576020906001600160401b03601d5460881c169051908152f35b8284346104b257506001600160401b03610a3c610a3736611a21565b611e03565b835191151582529091166020820152f35b8284346104b25760203660031901126104b25782356001600160401b03918282116104b25750610a8761067e602095600393369101611973565b90500154169051908152f35b905082346104b257806003193601126104b25782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1e57505050610af59250038561193b565b835191610b018361195c565b91610b0e8751938461193b565b838352601f19610b1d8561195c565b0182865b828110610c0857505050845b6001600160401b039081811686811015610bab5790610ba38284610b536001958d611e57565b51168a52600887528b8587828d20835193610b6d8561189e565b610b7682611afe565b855260028201548c8601526003820154908501520154166060820152610b9c828a611e57565b5287611e57565b500116610b2d565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bdc5785850386f35b909192938280610bf8600193603f198a820301865288516115ef565b9601920196019592919092610bcf565b610c10611b79565b828288010152018390610b21565b855484526001958601958a955093019201610ade565b8284346104b257806003193601126104b257610c4e611ae4565b50815191610c5b836118ea565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610ccd57889061025e8888610cba818a038261193b565b8385015251928284938452830190611516565b83546001600160a01b031685529093019260019283019201610c9f565b905034610379576020366003190112610379579181928160c08451610d0e81611905565b610d16611e35565b8152610d20611e35565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d5a60ff600c8401541692611ce3565b91610d6e82519383859485528401906116b0565b90151560208301520390f35b5050346102a457816003193601126102a4576020906001600160401b03601d5460481c169051908152f35b90503461037957602036600319011261037957610dd89061025e9360208451610dcd816118ea565b8281520152356120e2565b9051918291829190916020806040830194805184520151910152565b8284346104b257806003193601126104b2578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e575761025e86866109cf828b038361193b565b835487529586019560019384019390910190610e3f565b8383346102a457816003193601126102a4578290610e8a611e81565b50805191610e97836118ea565b8054610ea28161195c565b90610eaf8451928361193b565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610f0a5750505061025e945083526001600160401b03600554169083015251918291826117c3565b6003856001928851610f1b816118cf565b8b548152848060a01b03858d01541683820152610f3a60028d01611bcc565b8a820152815201980191019096610edf565b5050346102a457816003193601126102a457602090601f549051908152f35b9050346103795760203660031901126103795781602093600392358152601385522001549051908152f35b8284346104b257806003193601126104b257601854610fb48161195c565b90610fc18451928361193b565b808252601f19610fd08261195c565b01835b818110611096575050825b818110611042575050825191602080840190808552835180925280868601968360051b870101940192955b8287106110165785850386f35b909192938280611032600193603f198a82030186528851611571565b9601920196019592919092611009565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261107a868620611d99565b6110848286611e57565b5261108f8185611e57565b5001610fde565b6020906110a1611d5a565b82828701015201610fd3565b5050346102a457816003193601126102a45760209060ff601d54169051908152f35b5050346102a457816003193601126102a4576020906001600160401b03600554169051908152f35b5050346102a457816003193601126102a457602090600b549051908152f35b5050346102a457816003193601126102a4576020906001600160401b03601d5460081c169051908152f35b5050346102a457816003193601126102a457602090601b549051908152f35b5050346102a457816003193601126102a45780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b86828210611347575050506111c19250038561193b565b8351916111cd8361195c565b916111da8551938461193b565b838352601f196111e98561195c565b0182825b82811061133157505050805b6001600160401b0390818116868110156112d55782611218828b611e57565b51168452600985528784206003895191611231836118cf565b61123a81611afe565b83526002810154888401520180546112518161195c565b9161125e8c51938461193b565b818352875287872087898085018e5b85841061129a579250505084611292959350600197969492500152610b9c828a611e57565b5001166111f9565b91600d91600193516112ab816118ea565b6112b487611ce3565b815260ff600c880154161515838201528152019301910190918a908e61126d565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106113055785850386f35b909192938280611321600193603f198a8203018652885161172a565b96019201960195929190926112f8565b611339611ba5565b8282880101520183906111ed565b855484526001958601958a9550930192016111aa565b91905034610379576020366003190112610379576001600160401b038161025e94611386611b79565b50843581526008602052209282519361139e8561189e565b6113a781611afe565b8552600281015460208601526003810154848601520154166060830152519182916020835260208301906115ef565b5050346102a457816003193601126102a457602090601c549051908152f35b5050346102a457816003193601126102a4576020906012549051908152f35b5050346102a457816003193601126102a457602090601e549051908152f35b8284346104b25760203660031901126104b25750606461145c60209360ff601d54169035612231565b049051908152f35b5050346102a457816003193601126102a4576020906001600160401b038254169051908152f35b5050346102a457816003193601126102a4578161025e92602083516114af816118ea565b8281520152602082516114c1816118ea565b8281520152610dd86002546120e2565b905034610379576020366003190112610379578161025e93611503926114f5611d5a565b503581528060205220611d99565b9051918291602083526020830190611571565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611554575050505090565b83516001600160a01b031685529381019392810192600101611546565b908151815260208201516020820152604082015160408201526001600160401b03806060840151166060830152608083015116608082015260a08201519160068310156115d95760c060e0916115d69460a08501520151918160c08201520190611516565b90565b634e487b7160e01b600052602160045260246000fd5b9060606001600160401b038161160e8551608086526080860190611516565b94602081015160208601526040810151604086015201511691015290565b60005b83811061163f5750506000910152565b818101518382015260200161162f565b906020916116688151809281855285808601910161162c565b601f01601f1916010190565b604060206115d6938161168e855185845285840190611516565b940151908281860391015260ff8151168452015191816020820152019061164f565b9060c0806117216116df6116cd865160e0875260e0870190611674565b60208701518682036020880152611674565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a087015261164f565b93015191015290565b61173d8151606084526060840190611516565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061177f575050505050505090565b909192939495968580600192601f198582030187528a519082806117aa84518a85528a8501906116b0565b930151151591015299019401940192959493919061176e565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b838310611815575050505050906001600160401b039101511691015290565b909192939886806118548a856001958f8f83918591607f19908503018c525180518452898060a01b03888201511688850152015193820152019061164f565b9b0193019301919392906117f6565b6020908160408183019282815285518094520193019160005b82811061188a575050505090565b83518552938101939281019260010161187c565b608081019081106001600160401b038211176118b957604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176118b957604052565b604081019081106001600160401b038211176118b957604052565b60e081019081106001600160401b038211176118b957604052565b60a081019081106001600160401b038211176118b957604052565b90601f801991011681019081106001600160401b038211176118b957604052565b6001600160401b0381116118b95760051b60200190565b9190604083820312611a1c576040519261198c846118ea565b836001600160401b0382358181168103611a1c57825260209283810135918211611a1c57019280601f85011215611a1c5783356119c88161195c565b946119d6604051968761193b565b818652848087019260051b820101928311611a1c578401905b8282106119fd575050500152565b81356001600160a01b0381168103611a1c5781529084019084016119ef565b600080fd5b60031990602081830112611a1c57600435916001600160401b038311611a1c5782604092030112611a1c5760040190565b90815180825260208080930193019160005b828110611a72575050505090565b83516001600160a01b031685529381019392810192600101611a64565b90815180825260208092019182818360051b85019501936000915b848310611aba5750505050505090565b9091929394958480611ad483856001950387528a5161164f565b9801930193019194939290611aaa565b60405190611af1826118ea565b6060602083600081520152565b90604051611b0b816118ea565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b5a5750505050611b569250038461193b565b0152565b83546001600160a01b0316855289955090930192918101918101611b3e565b60405190611b868261189e565b6000606083611b93611ae4565b81528260208201528260408201520152565b60405190611bb2826118cf565b6060604083611bbf611ae4565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c93575b6020948584108914611c7f5787988489979899529081600014611c5d5750600114611c1e575b505050611c1c9250038361193b565b565b600090815285812095935091905b818310611c45575050611c1c9350820101388080611c0d565b85548884018501529485019487945091830191611c2c565b92505050611c1c94925060ff191682840152151560051b820101388080611c0d565b634e487b7160e01b85526022600452602485fd5b91607f1691611be7565b9060405191611cab836118ea565b602083611cb783611afe565b8152611cdb600360405194611ccb866118ea565b60ff600282015416865201611bcc565b828401520152565b90604051611cf081611905565b60c0600b8294611cff81611c9d565b8452611d0d60048201611c9d565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d4e600a8201611bcc565b60a08501520154910152565b60405190611d6782611905565b81600080825280602083015280604083015280606083015280608083015260a082015260c0611d94611ae4565b910152565b90604051611da681611905565b809280548252600181015460208301526002810154604083015260ff60038201546001600160401b0380821660608601528160401c16608085015260801c169060068210156115d9576004611d949160c09360a086015201611afe565b61067e611e11913690611973565b9015611e2c5760036001600160401b03910154169060019190565b50600090600090565b60405190611e42826118ea565b81611e4b611ae4565b81526020611d94611ae4565b8051821015611e6b5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e8e826118ea565b6000602083606081520152565b60405190611ea882611920565b60006080838281528260208201528260408201528260608201520152565b51908115158203611a1c57565b909181830360e08112611a1c5760a013611a1c576040928351611ef581611920565b835181526020908185015182820152858501518682015260608501516060820152611f2260808601611ec6565b60808201529460a0850151926001600160401b0393848111611a1c57860191601f92828482011215611a1c57805190611f5a8261195c565b91611f678451938461193b565b808352868084019160051b83010191858311611a1c578701905b828210612064575050509660c081015190868211611a1c570192828185011215611a1c57835191611fb18361195c565b96611fbe8251988961193b565b838852868089019460051b87010195858711611a1c57878101945b878610611fec5750505050505050505090565b8551838111611a1c5782019087603f83011215611a1c57898201519084821161204f578551612023838901601f19168d018261193b565b82815289878486010111611a1c576120448c9493859489868501910161162c565b815201950194611fd9565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b0381168103611a1c578152908701908701611f81565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b8281106120c5575050505090565b83516001600160a01b0316855293810193928101926001016120b7565b600060206040516120f2816118ea565b828152015260005260016020526040600020600160405191612113836118ea565b805483520154602082015290565b61215873__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612083565b0381865af49081156121f657600091612202575b50906121a891600052600081528060406000209361218c60048601611afe565b906040518080968194630c133d1360e31b835260048301612083565b03915af49081156121f6576000916121c2575b5090501591565b82813d83116121ef575b6121d6818361193b565b810103126104b257506121e890611ec6565b80386121bb565b503d6121cc565b6040513d6000823e3d90fd5b908282813d831161222a575b612218818361193b565b810103126104b25750516121a861216c565b503d61220e565b8181029291811591840414171561224457565b634e487b7160e01b600052601160045260246000fdfea264697066735822122067742e4c5fa957844b2d6923ec2aff7e65c291fb3a98c6dcc21d758686401ee164736f6c634300081300336080806040523461001657612228908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816318f44b7014610d855750806341c0e1b514610c3857806345f5448514610b835780635a627dbc14610b005780636b2c1eef146104ea578063d8e25572146103aa5763f207564e1461006c57600080fd5b60208060031936011261029d5760043590601a546001908181018091116103945760ff602c5416111561031b57823410610309576100eb6100ad8434611175565b936100b6611182565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016113dd565b0381855af49283156102a9576000936102e4575b50610109836120bd565b906102d25760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025e57908983926101568299979a98969584611442565b0190600052866000208960005b8481106102b5575050505050856002916101b6975560038101600160801b60ff60801b198254161790554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611382565b03915af49283156102a957600093610274575b505060185490600160401b82101561025e578101806018558110156102485760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601d549061022d6001600160401b0360881b918360881c16611476565b60881b1667ffffffffffffffff60881b199190911617601d55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d83116102a2575b61028c81836110f1565b8101031261029d57519038806101c9565b600080fd5b503d610282565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b9101610163565b604051631b538cdf60e11b8152600490fd5b6103029193503d806000833e6102fa81836110f1565b81019061135a565b91386100ff565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025e57604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261039060405192839263015538b160e01b845260048401526024830190611150565b0390fd5b634e487b7160e01b600052601160045260246000fd5b3461029d5760208060031936011261029d57600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104d8576001825582156104c6576103fe33611f9f565b90156104b4578161041460046104359301611201565b60405180938192632cff562160e11b83528460048401526024830190611382565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156102a957600092610476575b600084610473876001600160a01b03871661148e565b55005b90809250813d83116104ad575b61048d81836110f1565b8101031261029d576000926104a4610473926112a3565b9181945061045d565b503d610483565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b60031960203682011261029d576004356001600160401b03811161029d57604082823603011261029d573415610aee57604051632e82508d60e21b815260a06004820152916000918391829161055f919061054760a48501611726565b913360248601528483030160448501526004016116bb565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af49081156102a957600091610acb575b50601f54908115610ab557816001600160401b03431604600181018091116103945782810292818404149015171561039457601d5468ffffffffffffffff006105ee6001600160401b038360081c1680606086510152611476565b60081b169068ffffffffffffffff00191617601d55816000526009602052604060002091600283018054156000146106ce579260039161063894601983036106a2575b55016118be565b3447106106905760008080803460635af13d1561068b573d61065981611112565b9061066760405192836110f1565b8152600060203d92013e5b1561067957005b604051633204506f60e01b8152600490fd5b610672565b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b03198454161783556106c960018401611f2e565b610631565b505060038201546020546001600160401b031603610aa4576003820154916106f58361128c565b9261070360405194856110f1565b808452601f196107128261128c565b0160005b818110610a3c575050604051938460608101106001600160401b0360608701111761025e576060850160405261074a611182565b8552436020860152604085015260005b81811061097a57506040516020815261077f8551606060208401526080830190611382565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061094d575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108db575b5090600361080692016118be565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b03831161025e5760209061085c8484611442565b0190600052602060002060005b8381106108be57505050602083015160028301555060408201515160039091019160005b82811061089d5750505050610638565b806108b86108b16001936040860151611dcc565b51866118be565b0161088d565b82516001600160a01b031681830155602090920191600101610869565b80600d0290600d82040361039457600382016000526020600020908101905b81811061090757506107f8565b80610913600d92611f0b565b61091f60048201611f0b565b6000600882015560006009820155610939600a8201611ec2565b6000600b8201556000600c820155016108fa565b909192939560208061096b600193601f198682030187528a516117cf565b980193019301919392906107b7565b80610a358161098e60019460038801611868565b5060408901519060ff600c604051926109a6846110bb565b6040516109b2816110d6565b6109bb82611e84565b81526109c960048301611e84565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a0a600a8301611de0565b60a0820152600b82015460c0820152845201541615156020820152610a2f8383611dcc565b52611dcc565b500161075a565b602090604051610a4b816110bb565b604051610a57816110d6565b610a5f611da5565b8152610a69611da5565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828901015201610716565b6003610ab092016118be565b610638565b634e487b7160e01b600052601260045260246000fd5b610ae891503d806000833e610ae081836110f1565b8101906115bc565b81610593565b6040516360ec4e6b60e11b8152600490fd5b600036600319011261029d57341561030957610b1b33611f9f565b90156104b4576003610b2e3483546110ae565b91828155019081549060ff8260801c166006811015610b6d57600214610b5057005b601b541115610b5c575b005b60ff60801b1916600160801b179055005b634e487b7160e01b600052602160045260246000fd5b3461029d5760208060031936011261029d57600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104d8576001825582156104c657610bd733611f9f565b90156104b4578054848110610c2657610414600461043593610bfa888795611175565b808255601b5411610c0c575b01611201565b60038101805460ff60801b1916600160811b179055610c06565b6040516379b33e7960e01b8152600490fd5b3461029d57600036600319011261029d57610c5233611f9f565b90156104b4576002810154610d73578054601d546001600160401b03600019818360881c16019081116103945767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601d55610cdb91610cb690600401611201565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611382565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156102a957600091610d44575b50610b5a92600091825252610d3e6005604060002060008155600060018201556000600282015560006003820155600060048201550161141c565b3361148e565b90508281813d8311610d6c575b610d5b81836110f1565b8101031261029d5751610b5a610d03565b503d610d51565b604051637c67c70160e11b8152600490fd5b6003199060403683011261029d576004356001600160401b0380821161029d5781360360408582011261029d5760249384359083821161029d57604087833603011261029d57341561109f5750604051936379185f5960e11b855260a0600486015260e4850192816004013585811680910361029d5760a487015281870135906022190181121561029d570185600482013591019284821161029d578160051b3603841361029d57908086939492604060c486015252610104830191906000905b80821061106d57505050610e6f82916000943389850152898483030160448501526004016116bb565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af49182156102a957600092611050575b506020938483510151516000610eee73__$a0fe38a9a81205afccc10810b09a4d3f45$__92610efc604051958693849363089032d560e01b8552604060048601526044850190611382565b90838203018a840152611726565b0381845af49182156102a957600092611033575b50610f1a826120bd565b9590156104b4578587946003610f88980190815490610f418183168060608c510152611476565b16906001600160401b031916179055610f65600260408851015192019182546110ae565b90556040518096819482936304e384ff60e21b8452876004850152830190611382565b03915af480156102a957600090610fdf575b7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969250610fda60405192839286845260018060a01b0316958301906117cf565b0390a2005b508282813d831161102c575b610ff581836110f1565b8101031261029d576110277f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f7096926112a3565b610f9a565b503d610feb565b6110499192503d806000833e6102fa81836110f1565b9086610f10565b6110669192503d806000833e610ae081836110f1565b9084610ea3565b919493509184356001600160a01b038116919082900361029d5760019181526020809101950192018693949291610e46565b6360ec4e6b60e11b8152600490fd5b9190820180921161039457565b604081019081106001600160401b0382111761025e57604052565b60e081019081106001600160401b0382111761025e57604052565b90601f801991011681019081106001600160401b0382111761025e57604052565b6001600160401b03811161025e57601f01601f191660200190565b60005b8381106111405750506000910152565b8181015183820152602001611130565b906020916111698151809281855285808601910161112d565b601f01601f1916010190565b9190820391821161039457565b6040519061118f826110bb565b816001600160401b036019541681526040518091601a54808352836020809401601a6000526000805160206121d38339815191529260005b868282106111e2575050506111de925003846110f1565b0152565b85546001600160a01b03168452600195860195899550930192016111c7565b9060405161120e816110bb565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061125957505050506111de925003846110f1565b83546001600160a01b0316855289955090930192918101918101611241565b51906001600160401b038216820361029d57565b6001600160401b03811161025e5760051b60200190565b51906001600160a01b038216820361029d57565b919060408382031261029d57604051926112d0846110bb565b836112da82611278565b815260209182810151906001600160401b03821161029d57019280601f8501121561029d57835161130a8161128c565b9461131860405196876110f1565b818652848087019260051b82010192831161029d5784809101915b83831061134257505050500152565b819061134d846112a3565b8152019101908490611333565b9060208282031261029d5781516001600160401b03811161029d5761137f92016112b7565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106113c0575050505090565b83516001600160a01b0316855293810193928101926001016113b2565b906113f5602091949394604084526040840190611382565b6001600160a01b03909416910152565b818110611410575050565b60008155600101611405565b8054600082558061142b575050565b61144091600052602060002090810190611405565b565b90600160401b811161025e5781549080835581811061146057505050565b6114409260005260206000209182019101611405565b9060016001600160401b038093160191821161039457565b814710610690576000918291829182916001600160a01b03165af13d156114d9573d6114b981611112565b906114c760405192836110f1565b8152600060203d92013e5b1561067957565b6114d2565b81601f8201121561029d5780516114f481611112565b9261150260405194856110f1565b8184526020828401011161029d5761137f916020808501910161112d565b919060408382031261029d5760405192611539846110bb565b838151916001600160401b039283811161029d57846115599183016112b7565b825260208101519083821161029d570160408185031261029d5760405193611580856110bb565b815160ff8116810361029d578552602082015193841161029d576020936115a792016114de565b828401520152565b5190811515820361029d57565b9060208282031261029d5781516001600160401b039283821161029d57019160408383031261029d57604051926115f2846110bb565b805182811161029d5781019260e08482031261029d5760405190611615826110d6565b845184811161029d578161162a918701611520565b8252602085015184811161029d5781611644918701611520565b60208301526040850151604083015261165f60608601611278565b606083015260808501516001600160e01b03198116810361029d57608083015260a085015193841161029d578461169f60c0926020966116b398016114de565b60a0840152015160c08201528452016115af565b602082015290565b803560ff811680910361029d5782526020810135601e198236030181121561029d570190602082359201916001600160401b03811161029d57803603831361029d578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000526000805160206121d3833981519152916000905b828210611773575050505090565b83546001600160a01b031685529384019360019384019390910190611765565b6040602061137f93816117ad855185845285840190611382565b940151908281860391015260ff81511684520151918160208201520190611150565b906020808351936040845260c06118556117f6875160e06040890152610120880190611793565b6118118589015191603f1992838a83030160608b0152611793565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152611150565b9501516101008501520151151591015290565b805482101561024857600052600d602060002091020190600090565b90600182811c921680156118b4575b602083101461189e57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611893565b8054600160401b81101561025e576118dd906001928382018155611868565b919091611d75578251918251928351926001600160401b03808551166001600160401b031990818654161785558285019260208097015180519084821161025e57889061192a8388611442565b01600095865288862083875b848110611d5a575050505050866002870198015160ff8151169860ff19998a82541617905560039288848901920151918251868111611c74578061197a8354611884565b94898d601f9788808211611d2d575b505050508c90868311600114611cc2578a92611cb7575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a0191015190815191878311611ca3578b906119e98484611442565b019088528a882085895b848110611c8857505050505088600689019101519060ff8251168b8254161790558860078901910151805190868211611c74578190611a328454611884565b8c868211611c47575b50508b90858311600114611be8578992611bdd575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a0870151908151958611611bc957611ac28754611884565b8a848211611b92575b505089928611600114611b2357938560ff9a999794819460c09894600c9b9895611b18575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611af0565b9294939190601f1985168785528a8520945b818110611b7d575092859260ff9b9a989592600c9a9760c0999610611b63575b50505050811b019055611b00565b01519060f884600019921b161c1916905538808080611b55565b82840151865594870194928b01928b01611b35565b611bb9918984528582852091818b0160051c8301938b10611bc0575b0160051c0190611405565b388a611acb565b92508192611bae565b634e487b7160e01b81526041600452602490fd5b015190503880611a50565b848a528c8a208794509190601f1984168b8f5b828210611c305750508411611c18575b505050811b019055611a62565b015160001983891b60f8161c19169055388080611c0b565b8385015186558a979095019493840193018f611bfb565b611c6d91868c5287828d209181870160051c8301938710611bc0570160051c0190611405565b388c611a3b565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119f3565b634e487b7160e01b89526041600452602489fd5b0151905038806119a0565b879350908d91601f198416868d52838d20938d905b828210611d0c5750508411611cf4575b505050811b0190556119b2565b0151600019838a1b60f8161c19169055388080611ce7565b91929395968291958786015181550195019301908f918a9695949392611cd7565b828489611d519652209181870160051c8301938710611bc0570160051c0190611405565b898d3888611989565b83516001600160a01b031683820155928b0192859101611936565b634e487b7160e01b600052600060045260246000fd5b60405190611d98826110bb565b6060602083600081520152565b60405190611db2826110bb565b81611dbb611d8b565b81526020611dc7611d8b565b910152565b80518210156102485760209160051b010190565b9060405191826000825492611df484611884565b908184526001948581169081600014611e615750600114611e1e575b5050611440925003836110f1565b9093915060005260209081600020936000915b818310611e4957505061144093508201013880611e10565b85548884018501529485019487945091830191611e31565b91505061144094506020925060ff191682840152151560051b8201013880611e10565b9060405191611e92836110bb565b602083611e9e83611201565b81526115a7600360405194611eb2866110bb565b60ff600282015416865201611de0565b611ecc8154611884565b9081611ed6575050565b81601f60009311600114611ee8575055565b908083918252611f07601f60208420940160051c840160018501611405565b5555565b60036114409160008155611f216001820161141c565b6000600282015501611ec2565b601a8114611f9c57601a54906001600160401b03821161025e57611f528282611442565b6000908152602081206000805160206121d383398151915280545b848410611f7b575050505050565b600191820180546001600160a01b0390921684860155939091019290611f6d565b50565b6001600160a01b039190828116156120ab57604051611fbd816110bb565b6001600160401b03601954168152604051918291601a54928385526020809501946000978895601a87526000805160206121d38339815191529187905b82821061208f5750505050612014826120329703836110f1565b82015260405163aa5106cb60e01b81529384928392600484016113dd565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156120845783612065939492612069575b50506120bd565b9091565b61207d92503d8091833e6102fa81836110f1565b388061205e565b6040513d85823e3d90fd5b835481168a52988401988b985060019384019390910190611ffa565b6040516370e4510960e01b8152600490fd5b6120fb73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611382565b0381865af49081156102a9576000916121a3575b509061215291600052600081528060406000209361212f60048601611201565b906040518080968194630c133d1360e31b83528660048401526024830190611382565b03915af49081156102a95760009161216c575b5090501591565b82813d831161219c575b61218081836110f1565b810103126121995750612192906115af565b8038612165565b80fd5b503d612176565b908282813d83116121cb575b6121b981836110f1565b8101031261219957505161215261210f565b503d6121af56fe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220acbf28f3c1bbdd7e2cb1d9044f01fb6e14ac0808692405782f49d96bd3db170464736f6c634300081300336080806040523461001657611fc4908161001c8239f35b600080fdfe60406080815260048036101561001457600080fd5b600091823560e01c8063210b944e1461016c576325bf0db61461003657600080fd5b602036600319011261016857813560ff602c5460101c161561013957808452600360205281842090600b820154601c54811061012957341061011a57906100a591600861008a610085846109db565b610c8f565b92015490865260036020526100a0848720610b47565b611886565b6100b1601c5434610582565b806100ba578380f35b80471061010c578380808093335af13d15610107573d6100d98161049e565b906100e68451928361047d565b81528460203d92013e5b156100fa57808380f35b51633204506f60e01b8152fd5b6100f0565b505163356680b760e01b8152fd5b505051631036b5ad60e31b8152fd5b505050516334472ad760e11b8152fd5b602083610164846101486104b9565b905193849363015538b160e01b85528401526024830190610528565b0390fd5b8280fd5b50600319906020368301811361042d576001600160401b039380358581116104295780820194848183360301126104255760ff602c5460081c161561041757846101b68780610568565b01356101cf60c06101c78980610568565b013534610582565b036104075761021d846101fe6101ee6101e88a80610568565b806105a5565b6101f93691806105a5565b6105e5565b875163c836244d60e01b815286810189905292839160448301906106a4565b848282030160248301526060898201918c6019541681528a85820152601a548093520190601a8d52600080516020611f6f833981519152908d5b8181106103e5575050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103db5789916103ae575b501561039e5784519661029c88610431565b86358181116103925760e090840192833603011261039a578551916102c083610462565b84810135828111610396576102da908636918401016107b3565b83526024810135828111610396576102f7908636918401016107b3565b86840152604481013587840152610310606482016105ba565b606084015260848101356001600160e01b03198116810361039657608084015260a48101359182116103925761034f60c492602496369184010161076c565b60a0840152013560c08201528652013590811515820361038e57846103849261037d9261038b970152610c8f565b9280610568565b0135611886565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ce9150853d87116103d4575b6103c6818361047d565b81019061068c565b3861028a565b503d6103bc565b86513d8b823e3d90fd5b82546001600160a01b031684528a958795509093019260019283019201610257565b84516360ec4e6b60e11b81528390fd5b5050610164836101486104b9565b8780fd5b8680fd5b8480fd5b604081019081106001600160401b0382111761044c57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b0382111761044c57604052565b90601f801991011681019081106001600160401b0382111761044c57604052565b6001600160401b03811161044c57601f01601f191660200190565b60405190606082018281106001600160401b0382111761044c57604052603a82527f732d6e6574206d657373616765732069732064697361626c65640000000000006040837f537570706f727420666f722067656e6572616c2d707572706f73652063726f7360208201520152565b919082519283825260005b848110610554575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610533565b90359060de198136030182121561057d570190565b600080fd5b9190820391821161058f57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561057d570190565b35906001600160401b038216820361057d57565b6001600160401b03811161044c5760051b60200190565b919060408382031261057d57604051926105fe84610431565b83610608826105ba565b815260209182810135906001600160401b03821161057d57019280601f8501121561057d578335610638816105ce565b94610646604051968761047d565b818652848087019260051b82010192831161057d578401905b82821061066d575050500152565b81356001600160a01b038116810361057d57815290840190840161065f565b9081602091031261057d5751801515810361057d5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106e2575050505090565b83516001600160a01b0316855293810193928101926001016106d4565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020611f6f833981519152916000905b82821061074c575050505090565b83546001600160a01b03168552938401936001938401939091019061073e565b81601f8201121561057d578035906107838261049e565b92610791604051948561047d565b8284526020838301011161057d57816000926020809301838601378301015290565b919060408382031261057d57604051926107cc84610431565b838135916001600160401b039283811161057d57846107ec9183016105e5565b825260208101359083821161057d570160408185031261057d576040519361081385610431565b813560ff8116810361057d578552602082013593841161057d5760209361083a920161076c565b828401520152565b9060405161084f81610431565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061089e575050505061089a9250038461047d565b0152565b83546001600160a01b0316855289955090930192918101918101610882565b90600182811c921680156108ed575b60208310146108d757565b634e487b7160e01b600052602260045260246000fd5b91607f16916108cc565b906040519182600082549261090b846108bd565b90818452600194858116908160001461097a5750600114610937575b50506109359250038361047d565b565b9093915060005260209081600020936000915b81831061096257505061093593508201013880610927565b8554888401850152948501948794509183019161094a565b91505061093594506020925060ff191682840152151560051b8201013880610927565b90604051916109ab83610431565b6020836109b783610842565b815261083a6003604051946109cb86610431565b60ff6002820154168652016108f7565b906040516109e881610431565b602060ff600c83956040516109fc81610462565b610a058261099d565b8152610a136004830161099d565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a53600a83016108f7565b60a0820152600b82015460c082015285520154161515910152565b818110610a79575050565b60008155600101610a6e565b90600160401b811161044c57815490808355818110610aa357505050565b6109359260005260206000209182019101610a6e565b610ac381546108bd565b9081610acd575050565b81601f60009311600114610adf575055565b908083918252610afe601f60208420940160051c840160018501610a6e565b5555565b600361093591600081556001810180546000825580610b2b575b50506000600282015501610ab9565b610b4091600052602060002090810190610a6e565b3880610b1c565b600c600091610b5581610b02565b610b6160048201610b02565b826008820155826009820155610b79600a8201610ab9565b82600b8201550155565b60406020610bbf9381610b9d8551858452858401906106a4565b940151908281860391015260ff81511684520151918160208201520190610528565b90565b51906001600160a01b038216820361057d57565b906020808383031261057d5782516001600160401b039384821161057d57019260408484031261057d5760405193610c0d85610431565b8051828116810361057d5785528281015191821161057d57019180601f8401121561057d578251610c3d816105ce565b93610c4b604051958661047d565b818552838086019260051b82010192831161057d5783809101915b838310610c77575050505082015290565b8190610c8284610bc2565b8152019101908390610c66565b60208151015151604051630c133d1360e31b81526020600482015260208180610cbb60248201866106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611867575b506118555760405163c836244d60e01b81526040600482015260208180610d21610d1060448301876106a4565b8281036003190160248401526106ff565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611836575b5061182457610e0a9082516020815151916040518095819263f47ad7eb60e01b83526040600484015260c0610df0610d8e835160e06044880152610124870190610b83565b610da9888501519160431992838983030160648a0152610b83565b6040850151608488015260608501516001600160401b031660a488015260808501516001600160e01b03191660c488015260a085015187820390920160e488015290610528565b9101516101048401528281036003190160248401526106ff565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4928315611103576000936117e1575b5060009160028410156117cd578290600185146116bc575b5050506111ff57156111b5575b610e826020825101515160405191829163089032d560e01b83526040600484015260448301906106a4565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a600052600080516020611f6f8339815191529060005b818110611193575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611172575b506040516390ba52cf60e01b81526020600482018190528180610f2760248201866106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611140575b506000526000602052604060002090610f906020610f6f60048501610842565b60405180938192630c133d1360e31b835284600484015260248301906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561110357600091611121575b5061110f576003820180546001600160401b03610fdd818316806060895101526118f8565b16906001600160401b0319161790556002604084510151920190815492830180931161058f5761102c9260209255604051809381926304e384ff60e21b835284600484015260248301906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611103576000916110a1575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161109991830190611910565b0390a2600090565b906020823d6020116110fb575b816110bb6020938361047d565b810103126110f857506110996110f17f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bc2565b9150611054565b80fd5b3d91506110ae565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b61113a915060203d6020116103d4576103c6818361047d565b38610fb8565b906020823d60201161116a575b8161115a6020938361047d565b810103126110f857505138610f4f565b3d915061114d565b61118d913d8091833e611185818361047d565b810190610bd6565b38610f01565b82546001600160a01b0316845285945060209093019260019283019201610eca565b601d546001600160401b038160481c166001600160401b03811461058f57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601d55610e57565b50601f5480156116a657806001600160401b034316046001810180911161058f5781810291818304149015171561058f57601d5468ffffffffffffffff006112596001600160401b038360081c16806060875101526118f8565b60081b169068ffffffffffffffff00191617601d55806000526009602052604060002090600282018054156000146112db57926003836112a79360409660198597036112af575b55016119db565b510151151590565b6001600160401b03601954166001600160401b03198454161783556112d660018401611efd565b6112a0565b505060038101546020546001600160401b03160361169157600381015490611302826105ce565b91611310604051938461047d565b808352601f1961131f826105ce565b0160005b818110611629575050604051928360608101106001600160401b0360608601111761044c579084916060850160405261135e60608601610431565b6001600160401b03601954166060860152604051806020601a54918281520190601a600052600080516020611f6f8339815191529060005b81811061160757505050816113ac91038261047d565b6080860152606085018552436020860152604085015260005b8181106115c85750604051602081526113ea85516060602084015260808301906106a4565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611593575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a26000600384015580611548575b50600361147092016119db565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b03831161044c576020906114c78484610a85565b0190600052602060002060005b83811061152b575050506020820151600284015550604081015151916003019060005b83811061150a57505050506040906112a7565b8061152561151e6001936040860151611ee9565b51856119db565b016114f7565b82516001600160a01b0316818301556020909201916001016114d4565b600d9150818102908282040361058f57908491600384016000526020600020908101905b81811061157a575050611463565b82935061158981939293610b47565b019085929161156c565b91939697509193946020806115b4600193601f198682030187528a51611910565b98019301930190928a979695949293611422565b60019192506115fd816115de81600388016119a9565b506115ed6040890151916109db565b6115f78383611ee9565b52611ee9565b50019084916113c5565b82546001600160a01b031684528a975060209093019260019283019201611396565b60209060405161163881610431565b60405161164481610462565b61164c611ec2565b8152611656611ec2565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611323565b906116a1816003604094016119db565b6112a7565b634e487b7160e01b600052601260045260246000fd5b6116e6906116f86040519485938493631ccc893360e11b85526040600486015260448501906106a4565b838103600319016024850152906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117c257610d1061174d9260209285916117a8575b50604051938492839263c836244d60e01b84526040600485015260448401906106a4565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561179c579161177d575b5015388181610e4a565b611796915060203d6020116103d4576103c6818361047d565b38611773565b604051903d90823e3d90fd5b6117bc91503d8087833e611185818361047d565b38611729565b6040513d84823e3d90fd5b634e487b7160e01b83526021600452602483fd5b6020939193813d60201161181c575b816117fd6020938361047d565b8101031261181857519060028210156110f857509138610e32565b5080fd5b3d91506117f0565b604051632f3335ff60e21b8152600490fd5b61184f915060203d6020116103d4576103c6818361047d565b38610d49565b60405163c5f563eb60e01b8152600490fd5b611880915060203d6020116103d4576103c6818361047d565b38610ce3565b9061188e5750565b8047106118e65760008080809360635af13d156118e1573d6118af8161049e565b906118bd604051928361047d565b8152600060203d92013e5b156118cf57565b604051633204506f60e01b8152600490fd5b6118c8565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161058f57565b906020808351936040845260c0611996611937875160e06040890152610120880190610b83565b6119528589015191603f1992838a83030160608b0152610b83565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610528565b9501516101008501520151151591015290565b80548210156119c557600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b81101561044c576119fa9060019283820181556119a9565b919091611e92578251918251928351926001600160401b03808551166001600160401b031990818654161785558285019260208097015180519084821161044c578890611a478388610a85565b01600095865288862083875b848110611e77575050505050866002870198015160ff8151169860ff19998a82541617905560039288848901920151918251868111611d915780611a9783546108bd565b94898d601f9788808211611e4a575b505050508c90868311600114611ddf578a92611dd4575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a0191015190815191878311611dc0578b90611b068484610a85565b019088528a882085895b848110611da557505050505088600689019101519060ff8251168b8254161790558860078901910151805190868211611d91578190611b4f84546108bd565b8c868211611d64575b50508b90858311600114611d05578992611cfa575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a0870151908151958611611ce657611bdf87546108bd565b8a848211611caf575b505089928611600114611c4057938560ff9a999794819460c09894600c9b9895611c35575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611c0d565b9294939190601f1985168785528a8520945b818110611c9a575092859260ff9b9a989592600c9a9760c0999610611c80575b50505050811b019055611c1d565b01519060f884600019921b161c1916905538808080611c72565b82840151865594870194928b01928b01611c52565b611cd6918984528582852091818b0160051c8301938b10611cdd575b0160051c0190610a6e565b388a611be8565b92508192611ccb565b634e487b7160e01b81526041600452602490fd5b015190503880611b6d565b848a528c8a208794509190601f1984168b8f5b828210611d4d5750508411611d35575b505050811b019055611b7f565b015160001983891b60f8161c19169055388080611d28565b8385015186558a979095019493840193018f611d18565b611d8a91868c5287828d209181870160051c8301938710611cdd570160051c0190610a6e565b388c611b58565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611b10565b634e487b7160e01b89526041600452602489fd5b015190503880611abd565b879350908d91601f198416868d52838d20938d905b828210611e295750508411611e11575b505050811b019055611acf565b0151600019838a1b60f8161c19169055388080611e04565b91929395968291958786015181550195019301908f918a9695949392611df4565b828489611e6e9652209181870160051c8301938710611cdd570160051c0190610a6e565b898d3888611aa6565b83516001600160a01b031683820155928b0192859101611a53565b634e487b7160e01b600052600060045260246000fd5b60405190611eb582610431565b6060602083600081520152565b60405190611ecf82610431565b81611ed8611ea8565b81526020611ee4611ea8565b910152565b80518210156119c55760209160051b010190565b601a8114611f6b57601a54906001600160401b03821161044c57611f218282610a85565b600090815260208120600080516020611f6f83398151915280545b848410611f4a575050505050565b600191820180546001600160a01b0390921684860155939091019290611f3c565b5056fe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea264697066735822122035cc7096ac779f53abd63a316e6e38a2bb2e1eebdb2c2e1e879ef88b6bc054af64736f6c634300081300336080806040523461001757615c0990816200001d8239f35b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c80630bed7615146116845780630db0f77c1461138e5780630df144611461135a578063111969741461129d57806332e7661f14610e7a57806347dc9b4f14610b8257806353b4e7bf146107e9578063743037711461050d578063ac81837914610393578063bacc656d14610183578063c62eb4d5146100ec5763e49a547d146100a157600080fd5b346100e95760203660031901126100e9576004356001600160401b0381116100e5576100d46100e2913690600401611abc565b906100dd613c0f565b6140a9565b80f35b5080fd5b80fd5b50346100e95760203660031901126100e9576001600160401b0360043581811161017f5761011e903690600401611abc565b610126613c0f565b60405192602084019081118482101761016b5791610165916100e294936040528584526040519361015685611909565b86855260208501523691611e0e565b906123bd565b634e487b7160e01b85526041600452602485fd5b8280fd5b50346100e9576020806003193601126100e557600435906101a2613c0f565b6012545b8281106102db5750601254808311156102c9575b8281106101c957505060125580f35b808452601382526040842090848255846004600193828582015582600282015582600382015501556016835260408520805490868155816102a6575b50508085526040852060405180828682945493848152019089528689209289905b878982841061028d575050505061023f92500382611970565b80519083875b8381106102565750505050016101ba565b84895260178752604089206001600160a01b036102738386612111565b51168a52875261028560408a2061305e565b018490610245565b9092945082919386548152019401920184929391610226565b865282848720918201915b8281106102be5750610205565b8781550183906102b1565b604051636819a3a960e01b8152600490fd5b808452600990818352604085209185835560036001936102fc858201612557565b876002820155019081549087835581610319575b505050016101a6565b600d92828402928484040361037f578852858820918201915b82811061033f5750610310565b8061034a85926130a7565b610356600482016130a7565b896008820155898382015561036d600a820161305e565b89600b82015589600c82015501610332565b634e487b7160e01b89526011600452602489fd5b50346100e9576020806003193601126100e557600435906103b2613c0f565b600b545b8281106104d95750600b54808311156102c9575b8281106103d9575050600b5580f35b808452600c8252604084209084825584600460019382858201558260028201558260038201550155600f835260408520805490868155816104b6575b50508085526040852060405180828682945493848152019089528689209289905b878982841061049d575050505061044f92500382611970565b80519083875b8381106104665750505050016103ca565b84895260108752604089206001600160a01b036104838386612111565b51168a52875261049560408a2061305e565b018490610455565b9092945082919386548152019401920184929391610436565b865282848720918201915b8281106104ce5750610415565b8781550183906104c1565b8084526008825260408420908482558460046001936104f9858201612557565b8260028201558260038201550155016103b6565b50346100e9576003196060368201126100e5576004356001600160401b038082116107e5576080826004019383360301126107e5576044359261054e613c0f565b602483013593610560601e5486612ed3565b6107d3578486526020936008855260026040882001546107c15760405191858301918683526105a36105928680612ef3565b6080604087015260c0860190612f3b565b928860608601526044820135948560808201526105dd8160648501968a6105c989611b01565b1660a083015203601f198101835282611970565b5190209160ff601d541690600b548a106107af57801561079d576064916106039161252d565b049161060e89613e58565b1561078b576040516106809161062382611955565b815260048a8a8d6040828601916024358352818701998a52600c60608801948286526080890196838852835252209451855551966001978886015551600285015551600384015551151591019060ff801983541691151516179055565b6040519460808601868110888211176107775760405235908682116107735760046106ae9236920101611b29565b84526106c68685019288845260408601948552611b01565b96606085019788528852600886526040882093519585875116966001600160401b03199788875416178655818387019101519182519288841161075f57819061070f858561257b565b01918b52808b20908b5b848110610745575050505050509060049291516002830155516003820155019251169082541617905580f35b83516001600160a01b031683820155928101928501610719565b634e487b7160e01b8c52604160045260248cfd5b8980fd5b634e487b7160e01b8b52604160045260248bfd5b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b8380fd5b50346100e9576107f836611a1d565b909291600b5483106107af5782855260209160088352600260408720015415610b7057838652600c83526040862092610832828554613cb5565b5061083c81613c86565b610b5e57858852600f825260408089206001600160a01b0383166000818152600190920160205291902054610b4c57604080516001600160a01b03909316848401908152602081018a9052908390820103926108a0601f1994858101835282611970565b5190206040518481019182528481526108b881611909565b519020600195868089015492918c915b610ae9575b505003610ad157868952600f83526108e88160408b20613ea5565b15610abf578689526010835260408920908952825260408820928051926001600160401b038411610aab579083929161092b846109258854612125565b886125af565b8092601f8511600114610a4b5750508992610a40575b5050600019600383901b1c191690831b1790555b6109646003830194855461204e565b908185556002830154821015610978578580f35b600483018054909260ff82166109f9575060ff191617905561099982613fec565b156109e7576109da7fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949360ff600a5416925490549060405194859485613c90565b0390a15b38808080808580f35b6040516344a7b48760e11b8152600490fd5b9150507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9450610a38915060ff600a5416925460405194859485613c90565b0390a16109de565b015190503880610941565b87959392919316868c52838c20938c905b828210610a925750508411610a79575b505050811b019055610955565b015160001960f88460031b161c19169055388080610a6c565b8484015186558997909501949384019390810190610a5c565b634e487b7160e01b8a52604160045260248afd5b604051633363140f60e01b8152600490fd5b60249060405190634a0bfec160e01b82526004820152fd5b90918151831015610b4657610afe8383612111565b519081811015610b38578d52865260408c205b916000198114610b2457880190886108c8565b634e487b7160e01b8d52601160045260248dfd5b908d52865260408c20610b11565b916108cd565b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b6040516358cdd2e760e01b8152600490fd5b50346100e9576003196020368201811361017f57600435916001600160401b0390818411610e765783600401916080828636030112610e7257610c0b91610bd236610bcd8680611aec565b611b29565b918573__$a0fe38a9a81205afccc10810b09a4d3f45$__9360405180968192632cff562160e11b83528460048401526024830190611be0565b0381865af4938415610e67578894610e2c575b506001600160a01b03933390851603610e1a57610c3a33613914565b959015610e095791610c7a94610c5888959394610bcd369180611aec565b9360405196879563c836244d60e01b8752604060048801526044870190611be0565b928584030160248601526040830190600489015416835260606005890193604088820152845480935201928b52858b20918b905b828210610deb575050505082809103915af4908115610de0578591610db3575b5015610da1576003015460801c60ff166006811015610d8d57600103610d7b578260ff602c5460181c16610cff5780f35b80610d6b93604051602485820192632643057b60e11b84520135602482015282604482015282606482015260648152610d3781611955565b519082335af13d15610d72573d610d4d816119a8565b90610d5b6040519283611970565b81528481933d92013e5b33611cf2565b5038808280f35b60609150610d65565b60405163c18316bf60e01b8152600490fd5b634e487b7160e01b84526021600452602484fd5b6040516303b5db8360e11b8152600490fd5b610dd39150833d8511610dd9575b610dcb8183611970565b810190611c3b565b38610cce565b503d610dc1565b6040513d87823e3d90fd5b8354811685528a978997509094019360019384019390910190610cae565b6040516208ed5b60e31b8152600490fd5b604051637f39132760e11b8152600490fd5b9093508581813d8311610e60575b610e448183611970565b81010312610e5c57610e5590611bcc565b9238610c1e565b8780fd5b503d610e3a565b6040513d8a823e3d90fd5b8580fd5b8480fd5b50346100e9576003196060368201126100e557600435906001600160401b03821161017f5760609082360301126100e557610eb3613c0f565b610ec8610ec33683600401611f62565b6130ca565b610ed8601f546024830135612ed3565b1580159061128f575b61127d57602481013582526009602052600260408320015461126b57604051602080820152610f27610f166004840180612ef3565b6060604084015260a0830190612f3b565b6024830135606083015281610f426044850185600401612f07565b603f93919319838303016080840152808252602082019160208260051b820101928589925b848410611160575050505050610f86925003601f198101835282611970565b6020815191012060ff601d54166012546024840135106107af57604435801561079d57606491610fb59161252d565b0491610fc46024820135613def565b1561078b5761103f6110499260405190610fdd82611955565b815260046020820160243581526040830196875260608301888152608084019189835260248701358a52601360205260408a209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611f62565b6020810190815184526009602052604084209181516001600160401b038151166001600160401b03198554161784556020858501910151908151916001600160401b03831161112f5760209061109f848461257b565b019087526020872086885b8481106111435789828960408a8a5160028401550190815151916003859201915b8381106110d6578580f35b6110e1818351612111565b518354600160401b81101561112f5786810180865581101561111b5786929161111591868a52600d60208b209102016125f4565b016110cb565b634e487b7160e01b88526032600452602488fd5b634e487b7160e01b88526041600452602488fd5b83516001600160a01b0316818401556020909301928891016110aa565b919395509193601f198282030184526111798784612ef3565b90813560de19833603018112156112675782602092836112508160019781960194604085526111dd6111c06111ae8880612ef3565b60e06040890152610120880190612ffd565b6111cc84890189612ef3565b878203603f19016060890152612ffd565b604087013560808701526001600160401b036111fb60608901611b01565b1660a08701526112416001600160e01b031961121960808a01611dec565b169160c0928389015261122f60a08a018a612fab565b898303603f190160e08b015290612fdc565b96013561010086015201611e01565b151591015298019401940191879593969491610f67565b8b80fd5b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b506024810135431115610ee1565b50346100e95760403660031901126100e9576040516112bb81611909565b818152816020809201526112cd613c0f565b81816040516112db81611909565b828152015260025491600435918284116113485760609382526001815260408220926040600181519561130d87611909565b805487520154938386019485528281526001845220818155600160243591015560025582511515926040519384525190830152516040820152f35b60405163153ad84160e11b8152600490fd5b50346100e957806003193601126100e957611373613c0f565b602061137d612205565b6001600160401b0360405191168152f35b50346100e95761139d36611a1d565b90929160125483106107af5782855260209160098352600260408720015415611672578386526013835260408620926113d7828554613cb5565b506113e181613c86565b610b5e578588526016825260408089206001600160a01b0383166000818152600190920160205291902054610b4c57604080516001600160a01b03909316848401908152602081018a905290839082010392611445601f1994858101835282611970565b51902060405184810191825284815261145d81611909565b519020600195868089015492918c915b611623575b505003610ad1578689526016835261148d8160408b20613ea5565b15610abf578689526017835260408920908952825260408820928051926001600160401b038411610aab57908392916114ca846109258854612125565b8092601f85116001146115c357505089926115b8575b5050600019600383901b1c191690831b1790555b6115036003830194855461204e565b908185556002830154821015611517578580f35b600483018054909260ff8216611579575060ff191617905561153882613f02565b156109e7576109da7fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949360ff60115416925490549060405194859485613c90565b9150507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9450610a38915060ff60115416925460405194859485613c90565b0151905038806114e0565b87959392919316868c52838c20938c905b82821061160a57505084116115f1575b505050811b0190556114f4565b015160001960f88460031b161c191690553880806115e4565b84840151865589979095019493840193908101906115d4565b9091815183101561166c576116388383612111565b51908181101561165e578d52865260408c205b916000198114610b24578801908861146d565b908d52865260408c2061164b565b91611472565b60405163a88f96f160e01b8152600490fd5b50346100e9576003196020368201811361017f57600435916001600160401b0383116107e5576060836004019184360301126107e5576116ed826116cc36610bcd8580611aec565b60405180938192632cff562160e11b83528460048401526024830190611be0565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610de05785916118d4575b50336001600160a01b03909116036118bf57611733610ec33683611f62565b61173c33613914565b919015610e095760ff600383015460801c169160068310156118ab576001809303610d7b57856044879601936117728585611fd7565b899291505b80831061185c5750505061178b908661204e565b90600281019182549080821061184a576117ce95600495610165956117b66117bd946117c696612071565b9055611fd7565b9490920161207e565b923691611e0e565b60ff602c54821c166117de578280f35b60405181810190632643057b60e11b82524360248201528360448201528460648201526064815261180e81611955565b83471061183257610d6b93859283925191335af13d15610d72573d610d4d816119a8565b60405163cd78605960e01b8152306004820152602490fd5b604051631d36ca1560e21b8152600490fd5b906118a261188e849a956040611886611880869861187a8e8e611fd7565b9061200c565b80612039565b01359061204e565b9460c06118866118808d61187a8d8d611fd7565b98019190611777565b634e487b7160e01b86526021600452602486fd5b60405160016201ad9360e61b03198152600490fd5b90508281813d8311611902575b6118eb8183611970565b81010312610e76576118fc90611bcc565b38611714565b503d6118e1565b604081019081106001600160401b0382111761192457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761192457604052565b60a081019081106001600160401b0382111761192457604052565b90601f801991011681019081106001600160401b0382111761192457604052565b6001600160401b0381116119245760051b60200190565b6001600160401b03811161192457601f01601f191660200190565b9291926119cf826119a8565b916119dd6040519384611970565b8294818452818301116119fa578281602093846000960137010152565b600080fd5b9080601f830112156119fa57816020611a1a933591016119c3565b90565b9060806003198301126119fa57600435916001600160401b03916024358381116119fa57826023820112156119fa578060040135611a5a81611991565b91611a686040519384611970565b81835260209160248385019160051b830101918683116119fa57602401905b828210611aad575050505092604435926064359182116119fa57611a1a916004016119ff565b81358152908301908301611a87565b9181601f840112156119fa578235916001600160401b0383116119fa576020808501948460051b0101116119fa57565b903590603e19813603018212156119fa570190565b35906001600160401b03821682036119fa57565b35906001600160a01b03821682036119fa57565b91906040838203126119fa5760405192611b4284611909565b83611b4c82611b01565b815260209182810135906001600160401b0382116119fa57019280601f850112156119fa578335611b7c81611991565b94611b8a6040519687611970565b818652848087019260051b8201019283116119fa5784809101915b838310611bb457505050500152565b8190611bbf84611b15565b8152019101908490611ba5565b51906001600160a01b03821682036119fa57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611c1e575050505090565b83516001600160a01b031685529381019392810192600101611c10565b908160209103126119fa575180151581036119fa5790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611cb2575050505090565b83546001600160a01b031685529384019360019384019390910190611ca4565b60021115611cdc57565b634e487b7160e01b600052602160045260246000fd5b9015611d3057815115611d03575090565b803b15611d0e575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50805115611d4057805190602001fd5b604051630a12f52160e11b8152600490fd5b359060ff821682036119fa57565b91906040838203126119fa5760405192611d7984611909565b838135916001600160401b03928381116119fa5784611d99918301611b29565b82526020810135908382116119fa57016040818503126119fa5760405193611dc085611909565b611dc982611d52565b855260208201359384116119fa57602093611de492016119ff565b828401520152565b35906001600160e01b0319821682036119fa57565b359081151582036119fa57565b929192611e1a82611991565b91604090611e2a82519485611970565b839581855260208095019160051b8401938185116119fa5780925b858410611e555750505050505050565b6001600160401b039084358281116119fa5783019086828603126119fa578651611e7e81611909565b82358481116119fa5783019260e09485858903126119fa57895195860186811082821117611f4d578a5284358181116119fa5788611ebd918701611d60565b86528b8501358181116119fa5788611ed6918701611d60565b8c870152898501358a8701526060611eef818701611b01565b908701526080611f00818701611dec565b9087015260a091828601359182116119fa578c9686611f3e94611f288c8b9a968b97016119ff565b9083015260c08091013590820152845201611e01565b83820152815201930192611e45565b60246000634e487b7160e01b81526041600452fd5b91906060838203126119fa5760405190611f7b8261193a565b81938035906001600160401b03918281116119fa5783611f9c918301611b29565b84526020810135602085015260408101359182116119fa570181601f820112156119fa57604091816020611fd293359101611e0e565b910152565b903590601e19813603018212156119fa57018035906001600160401b0382116119fa57602001918160051b360383136119fa57565b9082101561202357611a1a9160051b810190611aec565b634e487b7160e01b600052603260045260246000fd5b90359060de19813603018212156119fa570190565b9190820180921161205b57565b634e487b7160e01b600052601160045260246000fd5b9190820391821161205b57565b9060405161208b81611909565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106120da57505050506120d692500384611970565b0152565b83546001600160a01b03168552899550909301929181019181016120be565b9060016001600160401b038093160191821161205b57565b80518210156120235760209160051b010190565b90600182811c92168015612155575b602083101461213f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691612134565b906040519182600082549261217384612125565b9081845260019485811690816000146121e2575060011461219f575b505061219d92500383611970565b565b9093915060005260209081600020936000915b8183106121ca57505061219d9350820101388061218f565b855488840185015294850194879450918301916121b2565b91505061219d94506020925060ff191682840152151560051b820101388061218f565b602a546001600160401b038082166000190181811161205b57612227816120f9565b8280604095861c169116146123b55761223f816142f2565b61ffff9283602454169161225283611991565b9561225f83519788611970565b838752601f19918261227086611991565b019260209336858b013760015b8881168781116122bf576000908152602686528690205489916001916001600160a01b03166122b78d856122b085614095565b1690612111565b52011661227d565b5050945094919290955086516122d481611991565b946122e183519687611970565b8186526122ed82611991565b018460005b82811061238c5750505060005b818110612327575050611a1a94959650519261231a84611909565b8352841690820152613435565b6001906001600160a01b0361233c828c612111565b5116806000526023875261236c60038660002085810154938851946123608661193a565b85528a8501520161215f565b8582015261237a8289612111565b526123858188612111565b50016122ff565b84516123978161193a565b6000815260008382015260608682015282828a0101520185906122f2565b505050600090565b81519160005b8381106123d05750505050565b806123e76123e060019385612111565b51856129ea565b016123c3565b60005b8381106124005750506000910152565b81810151838201526020016123f0565b90602091612429815180928185528580860191016123ed565b601f01601f1916010190565b60406020611a1a938161244f855185845285840190611be0565b940151908281860391015260ff81511684520151918160208201520190612410565b9060c0806124e26124a061248e865160e0875260e0870190612435565b60208701518682036020880152612435565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152612410565b93015191015290565b81601f820112156119fa578051612501816119a8565b9261250f6040519485611970565b818452602082840101116119fa57611a1a91602080850191016123ed565b8181029291811591840414171561205b57565b81811061254b575050565b60008155600101612540565b80546000825580612566575050565b61219d91600052602060002090810190612540565b90600160401b81116119245781549080835581811061259957505050565b61219d9260005260206000209182019101612540565b9190601f81116125be57505050565b61219d926000526020600020906020601f840160051c830193106125ea575b601f0160051c0190612540565b90915081906125dd565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161192457899061263d838961257b565b01600096875289872084885b8481106129cf5750505050508760028a019101519260ff8451169160ff19928382541617905560039389858c01910151805190878211612945578190612699826126938654612125565b866125af565b8c90601f8311600114612964578a92612959575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311612945578b906126f6848461257b565b019088528a882085895b84811061292a5750505050508860068b019101519160ff835116908254161790558760078a01910151805190858211612916578190612743826126938654612125565b8a90601f83116001146128b75788926128ac575b505060001982861b1c191690831b1790555b6040850151600889015560098801836060870151168154906bffffffff0000000000000000608089015160a01c16916001600160601b03191617179055600a88019360a08601518051948511612898576127c7856109258854612125565b8891601f8611600114612827579385600c999794819460c0989461219d9e9d9b989561281c575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b0151935038806127ee565b9294939190601f1985168785528a8520945b8181106128835750928592600c9a98959261219d9d9c9a9760c0999610612869575b50505050811b0190556127fe565b01519060f884600019921b161c191690553880808061285b565b82840151865594870194928b01928b01612839565b634e487b7160e01b82526041600452602482fd5b015190503880612757565b8489528b89208694509190601f1984168a8e5b8282106128ff57505084116128e7575b505050811b019055612769565b015160001983881b60f8161c191690553880806128da565b83850151865589979095019493840193018e6128ca565b634e487b7160e01b87526041600452602487fd5b83516001600160a01b031683820155928d0192879101612700565b634e487b7160e01b89526041600452602489fd5b0151905038806126ad565b879350908d91601f198416868d52838d20938d905b8282106129ae5750508411612996575b505050811b0190556126bf565b0151600019838a1b60f8161c19169055388080612989565b91929395968291958786015181550195019301908f918a9695949392612979565b83516001600160a01b031683820155928c0192869101612649565b9060209182825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604092835190630c133d1360e31b91828152878180612a3460049784898401526024830190611be0565b0381885af4908115612ec857600091612eab575b50612e9b57855160808101516001600160e01b031995918791871615612e7c575b5050865192612a8d87519463f47ad7eb60e01b865288878701526044860190612471565b898580612aa66003199485838203016024840152611c53565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4948515612e3457908a91600096612e3f575b50895182015151895163c836244d60e01b81528881018b9052929183918291612b1191612b02906044850190611be0565b90838203016024840152611c53565b0381865af4908115612e3457600091612e17575b50612bf057505050505061219d936003918351612be1818481019385855260c0612bbf8a51928a80860152612b67845160e0608088015261016087019061310e565b612b828a86015191607f1992838983030160a08a015261310e565b918c860151858801526001600160401b0360608701511660e088015260808601511661010087015260a08501519086830301610120870152612410565b910151610140830152858901511515606083015203601f198101835282611970565b519020600052526000206125f4565b889798949550612bff84611cd2565b60018414612d24575b505050612c1481611cd2565b15612cbc575b60009183519586928392635c46fefb60e11b845283015285612c4782518760248601526064850190612471565b91015115156044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4908115612cb25750612c7a575050565b3d806000843e612c8a8184611970565b820190828203126119fa5781516001600160401b0381116119fa57612caf92016124eb565b50565b513d6000823e3d90fd5b50601d546001600160401b03808260481c1690606087510151168103612d145791849167ffffffffffffffff60481b612cf66000956120f9565b60481b169067ffffffffffffffff60481b191617601d559150612c1a565b835163a57cadff60e01b81528390fd5b86949192939451928391825282878301528180612d446024820188611be0565b03915af4908115612e0c579086939291600091612def575b5015612d6a575b8080612c08565b612d75919250613b0d565b9015612ddf5760030180546001600160401b038082871c1690606089510151168103612dcf579067ffffffffffffffff60401b612db4889594936120f9565b871b169067ffffffffffffffff60401b191617905538612d63565b855163a57cadff60e01b81528590fd5b8351630e991abd60e41b81528390fd5b612e069150843d8611610dd957610dcb8183611970565b38612d5c565b85513d6000823e3d90fd5b612e2e91508a3d8c11610dd957610dcb8183611970565b38612b25565b88513d6000823e3d90fd5b90959181813d8311612e75575b612e568183611970565b810103126100e557519060028210156100e95750938990612b02612ad1565b503d612e4c565b01514710612e8b578538612a69565b855163569d45cf60e11b81528490fd5b845163c5f563eb60e01b81528390fd5b612ec29150883d8a11610dd957610dcb8183611970565b38612a48565b86513d6000823e3d90fd5b8115612edd570690565b634e487b7160e01b600052601260045260246000fd5b9035603e19823603018112156119fa570190565b9035601e19823603018112156119fa5701602081359101916001600160401b0382116119fa578160051b360383136119fa57565b60408201916001600160401b03612f5183611b01565b1681526060612f6560209384810190612f07565b839195604086839601525201929160005b828110612f84575050505090565b909192938280600192838060a01b03612f9c89611b15565b16815201950193929101612f76565b9035601e19823603018112156119fa5701602081359101916001600160401b0382116119fa5781360383136119fa57565b908060209392818452848401376000828201840152601f01601f1916010190565b604061304e611a1a9361302d6130226130168680612ef3565b85845285840190612f3b565b946020810190612ef3565b90602081860391015260ff61304182611d52565b1684526020810190612fab565b9190928160208201520191612fdc565b6130688154612125565b9081613072575050565b81601f60009311600114613084575055565b9080839182526130a3601f60208420940160051c840160018501612540565b5555565b600361219d91600081556130bd60018201612557565b600060028201550161305e565b6040018051516001600160401b0360205416106130fc575151156130ea57565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061317e5750505093604083819381611a1a97980151908281860391015260ff81511684520151938201520190612410565b82516001600160a01b03168852968501969185019160010161314a565b90815180825260208092019182818360051b85019501936000915b8483106131c65750505050505090565b909192939495848061320383856001950387528a5180518252858060a01b0384820151168483015260408091015191606080928201520190612410565b98019301930191949392906131b6565b908082146132e7576132258154612125565b906001600160401b038211611924578190613244826126938654612125565b600090601f831160011461327b57600092613270575b50508160011b916000199060031b1c1916179055565b01549050388061325a565b81526020808220858352818320935090601f1985169083905b8282106132ce5750509084600195949392106132b5575b505050811b019055565b015460001960f88460031b161c191690553880806132ab565b8495819295850154815560018091019601940190613294565b5050565b600454811015612023576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b9061341f5781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b038311611924576133848361337e8754612125565b876125af565b81601f84116001146133bd57509282939183926000946133b2575b50501b916000199060031b1c1916179055565b01519250388061339f565b919083601f1981168760005284600020946000905b8883831061340557505050106133ec57505050811b019055565b015160001960f88460031b161c191690553880806132ab565b8587015188559096019594850194879350908101906133d2565b634e487b7160e01b600052600060045260246000fd5b604080519160209182845261345482518285870152606086019061319b565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081613740575b505050600490815493600160401b9384861161372b576006548660065580871061368c575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83821061363757505050508060055416916001600160401b03199283600754161760075583515193855496885b8681106135c557505050511690600554161760055580831161355d575b50505050565b8281101561355757815480156135b257600019019061357b826132eb565b9290926135a057858355613598600260019488868201550161305e565b83550161355d565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b888110156135f457806135ee6135de6001938651612111565b516135e8836132eb565b90613326565b0161353a565b6135ff818451612111565b5188548381101561362457600192916135e8828561361f94018d556132eb565b6135ee565b634e487b7160e01b8c5260418a5260248cfd5b806001918403613652575b600380910193019101909161350d565b805484558180850190838060a01b0390830154166001600160601b0360a01b8254161790556136876002808301908601613213565b613642565b600390808202908282040361371657878202828104890361370157600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b8281106136e4575050506134c0565b80828592558260018201556136fb6002820161305e565b016136d5565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b8486511685600754169081811461382d571061381c5782519261376284611909565b60045461376e81611991565b9161377b81519384611970565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b8484106137da5750505091855250508201526137c99082613837565b6137d55738808061349b565b505050565b60038760019284516137eb8161193a565b86548152848060a01b0385880154168382015261380a6002880161215f565b868201528152019301930192916137ad565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b0390602091808383015116908385015116036123b55761385d816138d8565b613866846138d8565b036123b557518051835151036123b5576138d16138c591604051908161389686820192878452604083019061319b565b03916138aa601f1993848101835282611970565b5190209451604051938491868301968752604083019061319b565b03908101835282611970565b5190201490565b8051519060009182915b8183106138ef5750505090565b90919261390b600191613903868551612111565b51519061204e565b930191906138e2565b6001600160a01b0390811691908215613afb5760409283519361393685611909565b6001600160401b0391826019541686528151958690601a54908189526020809901926000978893601a85527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9185905b8d838310613ade5750505050506139a3816139c994950382611970565b818a0152845163aa5106cb60e01b81526004810186905293849283926044840190611be0565b906024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4938415613ad3578094613a09575b50505050613a05919250613b0d565b9091565b90919293503d8082843e613a1d8184611970565b82019186818403126100e55780519085821161017f57019383858403126100e557835194613a4a86611909565b805182811681036107e55786528781015191821161017f570182601f820112156100e557805191613a86613a7d84611991565b95519586611970565b828552878086019360051b8301019384116100e957508601905b828210613abc57505050613a05929382015282913880806139f6565b868091613ac884611bcc565b815201910190613aa0565b8251903d90823e3d90fd5b845482168952909701968b96506001938401939190910190613986565b6040516370e4510960e01b8152600490fd5b613b4b73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611be0565b0381865af4908115613bd657600091613be2575b5060005260008152613ba081604060002093613b7d6004860161207e565b906040518080958194630c133d1360e31b83528660048401526024830190611be0565b03915af4918215613bd657600092613bb9575b50501591565b613bcf9250803d10610dd957610dcb8183611970565b3880613bb3565b6040513d6000823e3d90fd5b908282813d8311613c08575b613bf88183611970565b810103126100e957505138613b5f565b503d613bee565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115613bd657600091613c68575b5015613c5657565b60405163f0d97f3b60e01b8152600490fd5b613c80915060203d8111610dd957610dcb8183611970565b38613c4e565b60041115611cdc57565b909493926060926080830196613ca581611cd2565b8352602083015260408201520152565b8151919060418303613ce657613cdf92506020820151906060604084015193015160001a90613cf1565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411613d7557926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15613d695780516001600160a01b03811615613d6057918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156120235760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b600d5481101561202357600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b600081815260156020526040812054613e5357601454600160401b811015612898579082613e3f613e2884600160409601601455613d81565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b905090565b6000818152600e6020526040812054613e5357600d54600160401b811015612898579082613e91613e2884600160409601600d55613db8565b9055600d54928152600e6020522055600190565b6000828152600182016020526040902054613efb57805490600160401b82101561192457600182018082558210156120235782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015613fe75760001990808201818111613fd35760145490838201918211613fbf57808203613f8b575b5050506014548015613f7757810190613f5682613d81565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b613fa9613f9a613e2893613d81565b90549060031b1c928392613d81565b9055845260156020526040842055388080613f3e565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b6000818152600e60205260408120549091908015613fe75760001990808201818111613fd357600d5490838201918211613fbf57808203614061575b505050600d548015613f775781019061404082613db8565b909182549160031b1b19169055600d558152600e6020526040812055600190565b61407f614070613e2893613db8565b90549060031b1c928392613db8565b90558452600e6020526040842055388080614028565b61ffff908116600019019190821161205b57565b919080156142d85760005b8181106140c15750509050565b6140cc81838661200c565b9060406140d983806142dd565b01356001600160a01b03818116918290036119fa576140f884806142dd565b359360048510156119fa5761410d81806142dd565b906020918281013590601e19813603018212156119fa57019384356001600160401b03958682116119fa57840181360381136119fa5761414e9136916119c3565b9385602a541694604051986141628a61193a565b61416b81613c86565b89528489019081526040890192835285600052602b85526040600020985161419281613c86565b61419b81613c86565b60ff80198b541691161789555197885198878a11611924576001998a8301916141ce826141c88554612125565b856125af565b8790601f83116001146142635760029493929160009183614258575b5050600019600383901b1c1916908c1b1790555b019151166001600160601b0360a01b8254161790558361421d846120f9565b166001600160401b0319602a541617602a5501359182168092036119fa570361424657016140b4565b604051631aba532960e21b8152600490fd5b0151905038806141ea565b9392918c918360005289600020906000601f198416905b8c8282106142b557505096836002981061429c575b505050811b0190556141fe565b015160001960f88460031b161c1916905538808061428f565b919295899487849397999a9b015181550195019301908f9492979695939161427a565b509050565b903590605e19813603018212156119fa570190565b602a546001600160401b0392838316929190848216841061431f5760405163040aaa0560e11b8152600490fd5b848260401c16841061464c579392919083604091821c16945b84861695848711614615576000908782526020602b81528483209860018060a01b0360028b0154169960ff81541661436f81613c86565b600281036143c457509061439c6001602b94938c9d889d999a9b9c9d52602385520160038a882001613213565b8452528482209180835560026001936143b685820161305e565b015501169493929190614338565b9a6143d28c9a99989a613c86565b60039b808d0361451057506143ea600180930161215f565b809c8b825183019e8f0312610e5c57818601519d9b9c9b8c8f1161450c57906144218e9f8e9f9c9d9e9389809101918601016124eb565b9e8f93015194848a5260238852818c8b20019351928311610aab578e9f9d9e9a9b9c9d6144528461337e8754612125565b88908b601f861160011461449c579480938193602b9c9b9a98969361448c9a9895614491575b50501b92600019911b1c1916179055614653565b61439c565b015193503880614478565b50858c52898c209294939190601f1985168d5b8181106144f7575091859391602b9c9b9a989661448c9a989694106144dd575b50505050811b019055614653565b01519060f884600019921b161c19169055388080806144cf565b82840151865594870194928c01928c016144af565b8880fd5b92939495969799989a9b61452a600193929380930161215f565b868180518101031261450c5797602b9593838f9a938d958a859c9b999601519561455381613c86565b036145d45761457385836145ab9798868852602397888d52200154612071565b93838c5288528d8b208b60028201868154811590816145cb575b50156145bf5750816145a695818555840155550161305e565b614b2d565b6145b86022918254612071565b905561439c565b94935050500155614b2d565b9050153861458d565b50929061448c94508092528b6145f48285602393848b528d20015461204e565b938491848c5288528d8b20015561460e602291825461204e565b9055614697565b509450925067ffffffffffffffff60401b9150614631906120f9565b602a54921b169067ffffffffffffffff60401b191617602a55565b9350505050565b9060018060a01b03821660005260236020526040600020818154915581811460001461467e57505050565b81111561468e5761219d916149a7565b61219d91614e7f565b919060018060a01b03928381166000948186526020916025835261ffff916040978389822054166148b6578360215460081c16846024541610614882576146dc615952565b60019283825260268652828a83205416886146f68261500a565b106147fc57508152602885528389822054166147655750505050506147607f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461474083614f9f565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b61476e866159a5565b926147788761500a565b935b81868216116147be575b505097516001600160a01b039095168552505050506020810191909152909150600080516020615bb4833981519152908060408101614760565b80856147dd86617fff8f95871c169485885260298c528720541661500a565b10156147f657906147ef839282615b04565b905061477a565b50614784565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506147609560289161483761552c565b835252205416614874575b61484b846154bd565b61485483614f9f565b516001600160a01b03928316815292909116602083015281906040820190565b61487d846151c0565b614842565b50505050506147607f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394614740836154bd565b979291506148c7859497969561596e565b976148d18561500a565b976148db8a6153b2565b8460245416905b858116828111614982578281101561496657508061490261490892614f8c565b90615902565b9b909b5b8b111561492b5761491d908c615a6b565b6149268b6153b2565b6148e2565b505093516001600160a01b039095168552505050506020810191909152909250600080516020615b9483398151915291508060408101614760565b849c919c526026835261497d85888620541661500a565b61490c565b505050505050506147609192939550600080516020615b948339815191529450614740565b6001600160a01b03808216600081815260256020526040808220549095949361ffff93918416614afb578360215460081c16846024541610614ac9576149eb615952565b600183526026602052868320541685614a038261500a565b10614a755750815260286020528490205416614a47576147607f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361474083614f9f565b614760600080516020615bb483398151915293614740614a66846159a5565b614a6f8561500a565b9061535d565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75969261476094614aa961552c565b81526028602052205416614ac05761484b846154bd565b61487d8461524b565b505050506147607f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93614740836154bd565b50505050614760600080516020615b9483398151915293614740614b1e8461596e565b614b278561500a565b9061586f565b909160018060a01b03928383169060009382855260206028815261ffff95604094878683205416614d55578082526025835287868320541615614d44578415614c9c5750614b7a8361596e565b97614b848461500a565b985b6001808a83161115614c8d5781617fff911c1690818452602685528a614bb0848a8720541661500a565b1115614bc557614bc09082615a6b565b614b86565b505091939597509193955b6027541615614c8557614be1615952565b600182526026835285818184205416926029614bfc8561500a565b95614c05615960565b600183525220541691614c178361500a565b11614c4c57505091516001600160a01b0390921682526020820152600080516020615b94833981519152908060408101614760565b915091506147607ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593614c7d61552c565b614842615059565b505050505050565b50509193959750919395614bd0565b829450614cd07f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799615675565b8651908152a160275416614ce45750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360298492614d12615960565b6001835252205416614d38614d268261500a565b92614d2f615059565b614740836154bd565b0390a138808080613557565b8551632a55ca5360e01b8152600490fd5b84969792939598919415614e44575061fffe9193614d72866159a5565b93614d7c8761500a565b9480966001958692831b168160275416925b614dd0575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020615bb48339815191529190508060408101614760565b818116838111614e3e578d9084811015614e2257505080614df3614df992614f8c565b90615465565b9890985b881015614e1d57614e0e9089615b04565b614e17886153b2565b86614d8e565b614d93565b865260298552852054909890614e3990871661500a565b614dfd565b50614d93565b94915050614e789194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506151c0565b51908152a1565b6001600160a01b0380821660008181526028602090815260408083205490969594919361ffff918216614f22578084526025855281888520541615614f11578615614ee05750614bd0614ed18661596e565b614eda8761500a565b90615820565b849193979650614cd07f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9396615700565b8751632a55ca5360e01b8152600490fd5b9693925050508315614f5f5750600080516020615bb4833981519152935061476090614740614f50846159a5565b614f598561500a565b906153c9565b9250614e787f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b949261524b565b90600161ffff8093160191821161205b57565b61219d90614a6f61ffff91614fb78360275416614f8c565b9260018060a01b0382169081600052602860205260406000209085169161ffff199183838254161790558260005260296020526040600020906001600160601b0360a01b82541617905560275416176027555b60ff602154166003811015611cdc5760010361503b576001600160a01b031660009081526023602052604090205490565b6001600160a01b031660009081526023602052604090206001015490565b61ffff80602754169081156151ae579060019061507881831115615a4e565b6000828152602960208181526040808420805486865282862080546001600160a01b0392831680895260288752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161511291908a61510383614095565b169060275416176027556159ca565b84825280865261512684848420541661500a565b95859860028160275416995b615144575b5050505050505050505050565b8181168a81116151a8578a81101561518d575080614df361516492614f8c565b9a909a5b89101561518857615179908b615b04565b6151828a6153b2565b87615132565b615137565b859b919b528383526151a387878720541661500a565b615168565b50615137565b6040516340d9b01160e01b8152600490fd5b6151c9906159a5565b61ffff908160275416916151dd8383615b04565b806151e784614095565b1661ffff1960275416176027556151fd836159ca565b81168092146132e757614f598261219d93600052602960205260018060a01b0390615237615231836040600020541661500a565b8561535d565b60005260296020526040600020541661500a565b615254906159a5565b61ffff908160275416916152688383615b04565b8061527284614095565b1661ffff196027541617602755615288836159ca565b8082168093146137d5579161fffe9160009180835260299060209382855260018060a01b03926040926152c86152c286868620541661500a565b8761535d565b82528086526152db84848420541661500a565b9585986001988997881b168160275416995b6152fe575050505050505050505050565b8181168a81116151a8578a811015615342575080614df361531e92614f8c565b9a909a5b89101561518857615333908b615b04565b61533c8a6153b2565b876152ed565b859b919b5283835261535887878720541661500a565b615322565b9190915b60018061ffff831611156153ac5781617fff911c16908361539760008481526029602052604060018060a01b039120541661500a565b10156153ac576153a79082615b04565b615361565b50509050565b60011b906201fffe61fffe83169216820361205b57565b90600161fffe83821b168160009161ffff908160275416925b6153f0575b50505050505050565b81811683811161545f5783811015615439575080614df361541092614f8c565b9690965b861015615434576154259087615b04565b61542e866153b2565b846153e2565b6153e7565b84526029602052604084205490969061545a906001600160a01b031661500a565b615414565b506153e7565b91909161ffff9283821660005260296020526154a860018060a01b03615491816040600020541661500a565b95831660005260296020526040600020541661500a565b908185106154b65750509190565b9350919050565b61219d90614eda61ffff916154d58360245416614f8c565b9260018060a01b0382169081600052602560205260406000209085169161ffff199183838254161790558260005260266020526040600020906001600160601b0360a01b825416179055602454161760245561500a565b61ffff80602454169081156151ae579060019061554b81831115615a4e565b6000828152602660208181526040808420805486865282862080546001600160a01b0392831680895260258752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a8952845416909117909255929587959394929392916155e591908a6155d683614095565b16906024541617602455615a0c565b8482528086526155f984848420541661500a565b95859860028160245416995b615616575050505050505050505050565b8181168a81116151a8578a81101561565a57508061490261563692614f8c565b9a909a5b8911156151885761564b908b615a6b565b6156548a6153b2565b87615605565b859b919b5283835261567087878720541661500a565b61563a565b61567e9061596e565b61ffff908160245416916156928383615a6b565b8061569c84614095565b1661ffff1960245416176024556156b283615a0c565b81168092146132e757614b278261219d93600052602660205260018060a01b03906156ec6156e6836040600020541661500a565b85615820565b60005260266020526040600020541661500a565b6157099061596e565b9061ffff9081602454169061571e8285615a6b565b8261572883614095565b1661ffff19602454161760245561573e82615a0c565b82841680921461581a5760009291929183835260269260209484865260018060a01b039160409161577c61577685858520541661500a565b8a615820565b815285875261578f83838320541661500a565b95615799896153b2565b978560245416985b8681168a811161580c578a8110156157f15750806149026157c192614f8c565b9a909a5b8911156157e4576157d6908b615a6b565b6157df8a6153b2565b6157a1565b5050505050505092505050565b849b919b5282825261580786868620541661500a565b6157c5565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156153ac5781617fff911c16908361585a60008481526026602052604060018060a01b039120541661500a565b11156153ac5761586a9082615a6b565b615824565b91615879836153b2565b600061ffff918260245416905b8381168281116158f857828110156158d25750806149026158a692614f8c565b9690965b8611156158c9576158bb9087615a6b565b6158c4866153b2565b615886565b50505050915050565b8352602660205260408320549096906158f3906001600160a01b031661500a565b6158aa565b5050505050915050565b919061ffff808416600052602660205261594360018060a01b0361592c816040600020541661500a565b92841660005260266020526040600020541661500a565b93848211156154b65750509190565b61ffff60245416156151ae57565b61ffff60275416156151ae57565b6001600160a01b031660009081526025602052604090205461ffff1690811561599357565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526028602052604090205461ffff1690811561599357565b61ffff16600090815260296020908152604080832080546001600160a01b031981169091556001600160a01b0316835260289091529020805461ffff19169055565b61ffff16600090815260266020908152604080832080546001600160a01b031981169091556001600160a01b0316835260259091529020805461ffff19169055565b15615a5557565b634e487b7160e01b600052600160045260246000fd5b615a9061ffff808060245416931693615a8684861115615a4e565b1691821115615a4e565b6000828152602660208181526040808420805486865282862080546001600160a01b0392831680895260258752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b615b1f61ffff808060275416931693615a8684861115615a4e565b6000828152602960208181526040808420805486865282862080546001600160a01b0392831680895260288752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda26469706673582212206fa7c426f6b653d524b8e179a4014abbbe2edc425d47335deb06c41e8b83ff6e64736f6c6343000813003360808060405234610016576114ac908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610d90575081631597bf7e14610d4a5781631904bb2e14610c7b5781631f3a0e4114610c5457816328d5551d14610c355781632bc31eb314610bec578163332a5ac9146103b25781633354c3e114610bc657816335142c8c14610b9f57816338a210b314610b6e5781633da33241146109b757816340550a1c146109785781634b0694e21461091f5781634b27aa72146108e357816352d182d11461089b578163599c7bd1146108765781635dd9147c146107ea5781636704287c146107cb57816369e737fd146107ac57816372d0a0e01461078d57816380f76021146106d35781638ef3f761146106a7578163903e693014610578578163948628a9146105595781639754b29e146104e15781639e33bd02146104c2578163ad81e4d6146104a2578163b2bd295e1461046a578163c5ab224114610442578163c7cda7621461041f578163cfca2824146103f6578163d081be03146103b7578163d6eb5910146103b2578163d92e8f1214610244578163f0cf6c9614610205575063f75499dc146101b157600080fd5b34610201576020366003190112610201576101f8602092826101d1610dac565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020157816003193601126102015760ff60135416905191600382101561023157602083838152f35b634e487b7160e01b815260218452602490fd5b83915034610201578160031936011261020157919060019081549361026885610f4f565b9061027585519283610f14565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b83831061032e5750505050508451948186019282875251809352808601818460051b8801019794915b8483106102dd5787890388f35b909192939495848061031c839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610dc7565b9a9801969594919091019201906102d0565b89959697999a989a51606081018181106001600160401b0382111761039f57875282548152828c01546001600160a01b03168882015286518c926003928a926103858161037e8160028b01610f66565b0382610f14565b8a82015281520192019201919099979998969594986102a7565b634e487b7160e01b8c526041875260248cfd5b610e07565b5050346102015760203660031901126102015760209161ffff9082906001600160a01b036103e3610dac565b168152601a855220541615159051908152f35b505034610201578160031936011261020157600e5490516001600160a01b039091168152602090f35b50503461020157816003193601126102015760209061ffff601654169051908152f35b5050346102015781600319360112610201576020906001600160401b03600c54169051908152f35b5050346102015760203660031901126102015760209181906001600160a01b03610492610dac565b1681526021845220549051908152f35b5050346102015781600319360112610201576020918254900b9051908152f35b505034610201578160031936011261020157602090600a549051908152f35b8284346105565780600319360112610556576104fb6111fc565b825191602080840190808552835180925280868601968360051b870101940192955b82871061052a5785850386f35b909192938280610546600193603f198a82030186528851610dc7565b960192019601959291909261051d565b80fd5b5050346102015781600319360112610201576020906002549051908152f35b83915034610201578160031936011261020157919082549061059982610f4f565b936105a684519586610f14565b828552601f1992836105b782610f4f565b019060209136838901376105ca81610f4f565b926105d787519485610f14565b8184526105e382610f4f565b8484019601368737845b828110610642575050508061060b8651978789988952880190610e25565b928684038288015251928381520193925b82811061062b57505050500390f35b83518552869550938101939281019260010161061c565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b015416806106848388611023565b5286526003875289862054610699828a611023565b5201979695939492976105ed565b83833461020157816003193601126102015760ff60125416905191600182101561023157602083838152f35b8284346105565780600319360112610556576106ed610f35565b508151916106fa83610ef9565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077057889061076c8888610759818a0382610f14565b8385015251928284938452830190610e62565b0390f35b83546001600160a01b03168552909301926001928301920161073e565b5050346102015781600319360112610201576020906005549051908152f35b5050346102015781600319360112610201576020906008549051908152f35b505034610201578160031936011261020157602090600f549051908152f35b82843461055657602036600319011261055657610805610dac565b9060ff60135416906003821015610863576020848460018503610842576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b03166000908152601560205260409020600101549061083c565b634e487b7160e01b815260218552602490fd5b50503461020157816003193601126102015760209060ff600e5460a01c169051908152f35b83833461020157816003193601126102015761ffff908160195416826016541601928284116108d05750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610556576020366003190112610556575061090561076c913561104d565b839291925193849315158452806020850152830190610e8b565b90508234610556576020366003190112610556575061093e903561104d565b82516109678161095960208201946020865287830190610e8b565b03601f198101835282610f14565b519020825191151582526020820152f35b5050346102015760203660031901126102015760209161ffff9082906001600160a01b036109a4610dac565b1681526017855220541615159051908152f35b8284346105565760209283600319360112610201578035906001600160401b0390818311610b6a5736602384011215610b6a57820135818111610b6a5760248301908060051b936024853692010111610b66579093855193849288840196818986018b8a525260608086019386010193819681925b848410610a5657505050505050610a4c925003601f198101835282610f14565b5190209051908152f35b9193959092949650605f19898203018752610a718883611312565b803560de1982360301811215610b5e5790610acb8e610aba8f959484610ab191019680875260e0610aa28980611312565b9188015261012087019061138c565b91860186611312565b848203603f1901606086015261138c565b8d6080908501358185015286610ae360608701611326565b1660a08501528401359063ffffffff60e01b8216809203610b6257908f9291610b2c9060c09283870152610b1a60a088018861133a565b878303603f190160e08901529061136b565b940135610100840152013590811515809203610b5e576001928e92838093015299019701940191889697959391610a2c565b8580fd5b8780fd5b8480fd5b8380fd5b82843461055657806003193601126105565750601c548151906001600160401b03908181168352831c166020820152f35b50503461020157816003193601126102015760209060ff60125460081c1690519015158152f35b50503461020157816003193601126102015760209061ffff60135460081c169051908152f35b505034610201576020366003190112610201576101f860209282610c0e610dac565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b5050346102015781600319360112610201576020906006549051908152f35b50503461020157816003193601126102015760209060ff60125460101c1690519015158152f35b82843461055657602036600319011261055657610cd190606080610c9d610dac565b92855190610caa82610ec8565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b61076c6003835192610ce284610ec8565b8054845260018101549460208501958652610d18600283015492828701938452610d1183518096819301610f66565b0384610f14565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610dc7565b505034610201576020366003190112610201576020906002610d87610d6d610dac565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b849034610201578160031936011261020157602090600b548152f35b600435906001600160a01b0382168203610dc257565b600080fd5b919082519283825260005b848110610df3575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610dd2565b34610dc2576000366003190112610dc2576020601454604051908152f35b90815180825260208080930193019160005b828110610e45575050505090565b83516001600160a01b031685529381019392810192600101610e37565b9060406020610e88936001600160401b0381511684520151918160208201520190610e25565b90565b9060606001600160401b0381610eaa8551608086526080860190610e62565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610ee357604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610ee357604052565b90601f801991011681019081106001600160401b03821117610ee357604052565b60405190610f4282610ef9565b6060602083600081520152565b6001600160401b038111610ee35760051b60200190565b80546000939260018083169383821c938515611019575b602095868610811461100357858552908115610fe45750600114610fa3575b5050505050565b90939495506000929192528360002092846000945b838610610fd057505050500101903880808080610f9c565b805485870183015294019385908201610fb8565b60ff19168685015250505090151560051b010191503880808080610f9c565b634e487b7160e01b600052602260045260246000fd5b93607f1693610f7d565b80518210156110375760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90604080519261105c84610ec8565b611064610f35565b845260009081606060209682888201528286820152015281528084528181209382519461109086610ec8565b83519161109c83610ef9565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b8181106111e057505050600484916110e18888999a038a610f14565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b8181106111bf57505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156111b65750829361117b575b505050159190565b9080929350813d83116111af575b6111938183610f14565b8101031261020157519081151582036105565750388080611173565b503d611189565b513d84823e3d90fd5b83516001600160a01b0316855287968996509485019490930192820161113e565b82546001600160a01b03168a52988701989185019185016110c5565b60255461120881610f4f565b90604061121781519384610f14565b818352601f1961122683610f4f565b0160005b81811061130157505081156112fc5780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b858882106112e657505061128592500382610f14565b60005b84811061129757505050505090565b6001906001600160a01b036112ac8285611023565b51166000526024845261037e6112ca86600020875192838092610f66565b6112d48289611023565b526112df8188611023565b5001611288565b845483526001948501948694509201910161126f565b505090565b80606060208093880101520161122a565b9035603e1982360301811215610dc2570190565b35906001600160401b0382168203610dc257565b9035601e1982360301811215610dc25701602081359101916001600160401b038211610dc2578136038313610dc257565b908060209392818452848401376000828201840152601f01601f1916010190565b906113978280611312565b906040815260808101926001600160401b0393846113b485611326565b16604084015260209384810135601e1982360301811215610dc25701908482359201958211610dc2578160051b36038613610dc2578190604060608601525260a08301949060005b81811061144e575050508083611413920190611312565b908281850391015280359060ff8216809203610dc25783611441604093928493610e8897528581019061133a565b939094820152019161136b565b90919586359060018060a01b038216809203610dc257908152850195850191906001016113fc56fea2646970667358221220a7b61af91d974861edf454d704d58a0fa3a8981396761652d84b0c75521bed2964736f6c634300081300336080806040523461001657614d9b908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146118405750806310fd4261146116c957806326811936146114b65780632e17de78146114895780633a4b66f1146114655780633f4ba83a146113ed57806341c0e1b51461135c5780634c860af6146113085780634e71d92d146111745780635c975abb146111445780636170b16214610d5a57806366783c9b14610c795780638456cb5914610c11578063b9ee2bb914610812578063cc2dc2b914610792578063d66d9e1914610747578063da5d09ee146101a55763ed7c4da1146100e757600080fd5b346101a257806003193601126101a257600080516020614d4683398151915260018154146101905780600183925561011d611b3d565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b1561018c5782602491604051928380926382985e0b60e01b82523360048301525af490811561018157839161016a575b50505580f35b61017390611922565b61017e578138610164565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101a25760603660031901126101a2576004356001600160401b038111610743576101d69036906004016119c8565b906024356001600160401b03811161073f576101f69036906004016119c8565b916044356001600160401b03811161073b576102169036906004016119c8565b9094610220613a7b565b610228611af8565b60ff601354166003811015610727576001036106f7578181036106e5578481036106e55760125460081c60ff161561050f57865b81811061026d575050505050505080f35b61028161027b828888614cb4565b90614b91565b6001600160a01b0361029c610297848689614cf5565b611d08565b166001600160a01b03909116036104fd576103066102be610297838588614cf5565b6102c9838989614cb4565b6102d785888d969496614cf5565b356102f26040519586936040602086015260608501916137f5565b90604083015203601f198101845283611950565b6001600160401b03601c541660405161031e81611935565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161035181611e8e565b61035a81611e8e565b60ff80198454169116178255518051906001600160401b0382116104e757610392826103896001860154611eae565b60018601611fa1565b602090601f8311600114610460579282600080516020614d0683398151915297959360029360019b9a9896600092610455575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361040b826120c6565b166001600160401b0319601c541617601c5561044660405193849360038552888060a01b031660208501526080806040860152840190613b19565b9060608301520390a10161025c565b0151905038806103c5565b906001840160005260206000209160005b601f19851681106104cf57508360029360019b9a9896938c93600080516020614d068339815191529b9997601f198116106104b6575b505050811b01898201556103db565b015160001960f88460031b161c191690553880806104a7565b91926020600181928685015181550194019201610471565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9492909391865b8681106105e6575050505050506001600160401b03600c541610156105d45761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061057281613b3e565b0390a1600e5460025482916001600160a01b0316803b1561018c578290602460405180948193637903ab2760e11b83528160048401525af180156105c9576105b957505080f35b6105c290611922565b6101a25780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b6105f461027b828686614cb4565b6001600160a01b039190828061060e610297858d89614cf5565b169116036104fd5761062c610627610297838b87614cf5565b612e61565b6106d3576106cd600192610658610647610297858d89614cf5565b610652858a8a614cb4565b91613beb565b61067b610669610297858d89614cf5565b610674858c8c614cf5565b35906125b7565b6106c361068c610297858d89614cf5565b610697858c8c614cf5565b35926106a4868b8b614cb4565b919092604051956106b487611935565b8652166020850152369161198c565b6040820152613cc8565b01610516565b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b610723610702613a9c565b60405163015538b160e01b8152602060048201529182916024830190613b19565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101a257806003193601126101a257600080516020614d4683398151915260018154146101905780600183925561077e611b3d565b610786613a7b565b61078e6144bb565b5580f35b50346101a25760603660031901126101a2576001600160401b0360043581811161080e573660238201121561080e576107d5903690602481600401359101611a23565b60443591821161080e573660238301121561080e5761080161080b923690602481600401359101611a79565b9060243590614856565b80f35b8280fd5b50346101a257600319606036820112610743576001600160401b03600435116107435760806004356004019160043536030112610743576024356001600160401b03811161080e576108689036906004016119c8565b91906044356001600160401b038111610c0d576108899036906004016119c8565b91610892611b3d565b60055494600b54956108a48782611b68565b60246004350135141580610bfd575b610beb57604051906108eb60208301836108cd8a83611c57565b03936108e1601f1995868101835282611950565b5190209882611b68565b6004356024013503610ae85750509161090e6109169261091c9697943691611a23565b933691611a79565b91614856565b602460043501358252816020526040822090803560421960043536030181121561073f576004350191600483016001600160401b0361095a82611ca8565b16936001600160401b031994858454161783556109806001926024848601930190611cbc565b91906001600160401b038311610ad457600160401b8311610ad4578154838355808410610ab9575b509087959493929190865260208620865b838110610a92575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b036109f586611ca8565b16908254161790556024600435013582526022602052610a19604083203390611e09565b5060043560240135600555600e546001600160a01b0316803b1561080e576040516347dc9b4f60e01b81529183918391829084908290610a5c9060048301611c57565b03925af180156105c957610a7e575b5050610a7961080b91611ca8565b6120de565b610a8790611922565b610743578138610a6b565b84959697506020610aa68495969394611d08565b848301558a9897969594019291016109b9565b82895260208920610ace918101908501611cf1565b386109a8565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610b0057505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610bca575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610b9f915082611950565b51902014610baa5780f35b6024600435013581526022602052610bc6604082203390611e09565b5080f35b82546001600160a01b03168552889550602090940193918101918101610b5e565b60405163fae4eadb60e01b8152600490fd5b50806024600435013514156108b3565b8480fd5b50346101a257806003193601126101a257610c2a611af8565b610c32611b3d565b600080516020614d26833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101a25760203660031901126101a257600435600080516020614d46833981519152600181541461019057600181558115610d485760ff60125460081c16610d3657338352600360205281604084205410610d245761078e8392338452600360205260408420610cec82825461264b565b9055610cfa8160025461264b565b6002553384526003602052604084205415610d16575b33613a01565b610d1f33614bcd565b610d10565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101a2576004356001600160401b0381116107435736602382011215610743576001600160401b0381600401351161074357366024826004013583010111610743576001600080516020614d468339815191525414610190576001600080516020614d4683398151915255610dd6611b3d565b610dde613a7b565b60ff60125460081c1680611137575b341561112557604182600401350361111357610e10826004013560248401614b91565b336001600160a01b03909116036104fd57610f2257806024610e389260040135910133613beb565b610e423433613e3c565b80601454600a54811015610e68575b50505b80600080516020614d468339815191525580f35b61ffff601654166001600160401b03600c541611610e515761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c959360405180610ebd81613b3e565b0390a160018060a01b03600e541690610ed96002548092611b68565b91803b15610f1d57602484926040519485938492637903ab2760e11b845260048401525af180156105c95715610e5157610f1290611922565b6101a2578038610e51565b505050fd5b610f343682600401356024840161198c565b6001600160401b03601c54169060405190610f4e82611935565b600282526020820190815233604083015282600052601d6020526040600020908251610f7981611e8e565b610f8281611e8e565b60ff80198454169116178255518051906001600160401b0382116104e757610fb1826103896001860154611eae565b602090601f831160011461108b579282600080516020614d068339815191529795936002936110689896600092611080575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361102c826120c6565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016137f5565b9060608301520390a161107b3433613f77565b610e54565b015190503880610fe3565b906001840160005260206000209160005b601f19851681106110fb575083600293611068989693600193600080516020614d068339815191529b9997601f198116106110e2575b505050811b016001820155610ffb565b015160001960f88460031b161c191690553880806110d2565b9192602060018192868501518155019401920161109c565b6040516318dca5e960e21b8152600490fd5b604051635a78c58160e11b8152600490fd5b61113f61417c565b610ded565b50346101a257806003193601126101a257602060ff600080516020614d2683398151915254166040519015158152f35b50346101a257806003193601126101a257600190600080516020614d4683398151915282815414610190578281556111aa611b3d565b336000908152601f602052604090209283549061ffff908183169283156112f657829060101c16918391808795818a01915b611270575b50505086611252937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611259575b61123a8133613a01565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f60205260409020859055611230565b9091939483811696828810156112ed578760005260208091858252604060002060405161129c81611907565b898254928383520154938491015243106112e257859493889688946112c386958a95611b68565b9c600052526000826040822082815501550116966000190116946111dc565b9850505094936111e1565b965094936111e1565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101a257604435600281101561074357611329611b3d565b600e546001600160a01b0316330361134a5761080b906024356004356146b3565b60405163e7e601db60e01b8152600490fd5b50346101a257806003193601126101a257611375613a7b565b61ffff61138b81601954168260165416906125a1565b166113db576012805462ff0000191662010000179055600e5481906001600160a01b0316803b1561017e578180916004604051809481936341c0e1b560e01b83525af180156105c9576105b95750f35b604051636b62255160e11b8152600490fd5b50346101a257806003193601126101a257611406611af8565b600080516020614d26833981519152805460ff8116156114535760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101a257611479611b3d565b611481613a7b565b61080b614191565b50346101a25760203660031901126101a2576114a3611b3d565b6114ab613a7b565b61080b6004356141eb565b50346101a257600319606036820112610743576004356001600160401b039182821161073f5760608260040191833603011261073f57602435838111610c0d576115049036906004016119c8565b91906044358581116116c55761151e9036906004016119c8565b916024860135966006549687891061167a576044019061153e8287611cbc565b919050600954168091116116b3576115568287611cbc565b905014158061168c575b61167a5761156e9085611cbc565b905015611668578794604051602081019061159b8161158d898561387f565b03601f198101835282611950565b5190209688036115cc57505050505050600754146115b7575080f35b81526023602052610bc6604082203390611e09565b6115e6939261090e88969893610916939a989a3691611a23565b8060206040516115f581611907565b84815201528160065560075582526023602052611616604083203390611e09565b50600e546001600160a01b031690813b1561018c57829161164d91604051948580948193630bed761560e01b83526004830161387f565b03925af180156105c95761165f575080f35b61080b90611922565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b50600854801561169f5788061515611560565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101a257602090816003193601126101a2576001600160401b039160043583811161080e573660238201121561080e5761170f90369060248160040135910161198c565b92611718611b3d565b3383526017825261ffff60408420541615611828578351156118165733835260248252604083209184519182116118025761175d826117578554611eae565b85611fa1565b80601f831160011461179e5750839482939492611793575b50508160011b916000199060031b1c19161790555b610bc633611da0565b015190503880611775565b90601f198316958486528286209286905b8882106117ea575050836001959697106117d1575b505050811b01905561178a565b015160001960f88460031b161c191690553880806117c4565b806001859682949686015181550195019301906117af565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b9050816003193601126107435734156118f8575060ff60125460081c16610d3657338152600360205260408120541561189f575b33815260036020526040812061188b348254611b68565b905561189934600254611b68565b60025580f35b600454600160401b8110156118e4576118c18160016118df9301600455611d1c565b81546001600160a01b0360039290921b91821b19163390911b179055565b611874565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757604052565b606081019081106001600160401b038211176104e757604052565b90601f801991011681019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757601f01601f191660200190565b92919261199882611971565b916119a66040519384611950565b8294818452818301116119c3578281602093846000960137010152565b600080fd5b9181601f840112156119c3578235916001600160401b0383116119c3576020808501948460051b0101116119c357565b6001600160401b0381116104e75760051b60200190565b35906001600160a01b03821682036119c357565b9291611a2e826119f8565b91611a3c6040519384611950565b829481845260208094019160051b81019283116119c357905b828210611a625750505050565b838091611a6e84611a0f565b815201910190611a55565b92919092611a86846119f8565b91611a946040519384611950565b829480845260208094019060051b8301928284116119c35780915b848310611abe57505050505050565b82356001600160401b0381116119c357820184601f820112156119c3578691611aed868385809535910161198c565b815201920191611aaf565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611b2b57565b6040516330cd747160e01b8152600490fd5b60ff600080516020614d268339815191525416611b5657565b60405163d93c066560e01b8152600490fd5b91908201809211611b7557565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156119c3570190565b35906001600160401b03821682036119c357565b9035601e19823603018112156119c35701602081359101916001600160401b0382116119c3578160051b360383136119c357565b60408201916001600160401b03611bfd83611b9f565b1681526060611c1160209384810190611bb3565b839195604086839601525201929160005b828110611c30575050505090565b909192938280600192838060a01b03611c4889611a0f565b16815201950193929101611c22565b6020815260806001600160401b03611ca16060611c87611c778780611b8b565b85602088015260a0870190611be7565b956020810135604087015260408101358287015201611b9f565b1691015290565b356001600160401b03811681036119c35790565b903590601e19813603018212156119c357018035906001600160401b0382116119c357602001918160051b360383136119c357565b818110611cfc575050565b60008155600101611cf1565b356001600160a01b03811681036119c35790565b600454811015611d535760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611d535760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611e0457602554600160401b8110156118e4579082611df0611dd984600160409601602555611d69565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b91906001830160009082825280602052604082205415600014611e8857845494600160401b861015611e745760018601808255861015611e6057836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60041115611e9857565b634e487b7160e01b600052602160045260246000fd5b90600182811c92168015611ede575b6020831014611ec857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611ebd565b9060009291805491611ef983611eae565b918282526001938481169081600014611f5b5750600114611f1b575b50505050565b90919394506000526020928360002092846000945b838610611f47575050505001019038808080611f15565b805485870183015294019385908201611f30565b9294505050602093945060ff191683830152151560051b01019038808080611f15565b60005b838110611f915750506000910152565b8181015183820152602001611f81565b9190601f8111611fb057505050565b611fdc926000526020600020906020601f840160051c83019310611fde575b601f0160051c0190611cf1565b565b9091508190611fcf565b908082146120c257611ffa8154611eae565b906001600160401b0382116104e757819061201f826120198654611eae565b86611fa1565b600090601f83116001146120565760009261204b575b50508160011b916000199060031b1c1916179055565b015490503880612035565b81526020808220858352818320935090601f1985169083905b8282106120a9575050908460019594939210612090575b505050811b019055565b015460001960f88460031b161c19169055388080612086565b849581929585015481556001809101960194019061206f565b5050565b9060016001600160401b0380931601918211611b7557565b601c546001600160401b03828116929080831684106121095760405163040aaa0560e11b8152600490fd5b808360401c168410611f155780604093841c165b848282161115612184575050916020916121577f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946120c6565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b816121a2826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166121c781611e8e565b80850361223957505060036121f860016121fe94959697019260018060a01b03166000526015602052604060002090565b01611fe8565b61221b816001600160401b0316600052601d602052604060002090565b91600090818455600193612230858201612658565b0155011661211d565b9091945061224681611e8e565b6003918183036123e457505087519361226e85612267816001809a01611ee8565b0386611950565b84518501916020928a878583019203126119c357838701518981116119c35787019681603f890112156119c35787858d990151926122b76122ae85611971565b9a519a8b611950565b838a528d84830101116119c3578c926122d59184888c019101611f7e565b015192816122f58460018060a01b03166000526015602052604060002090565b01918751918a83116123cf578a98612317846123118754611eae565b87611fa1565b81601f851160011461235c575061234c9798999a8493928492600095612351575b50501b92600019911b1c19161790556125b7565b6121fe565b015193503880612338565b91601f9b9493919b1984169b866000528c84600020946000915b82106123b45750508461234c9a9b9c9d1061239a575b50505050811b0190556125b7565b01519060f884600019921b161c191690553880808061238c565b8383015186558f9d509487019492830192908101908e612376565b60246000634e487b7160e01b81526041600452fd5b9150919388959395519361240085612267816001809501611ee8565b602080868051810103126119c35781818c9701519561241e81611e8e565b0361254357849061242f82856126a1565b601e5461243c9043611b68565b9287519061244982611907565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061248c916125a1565b169c60009d8e5282870188528d2092518355519101556124ab9061258e565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561080e578291602483928a5195869384926345f5448560e01b845260048401525af190811561253857509084939291612529575b506121fe565b61253290611922565b38612523565b8751903d90823e3d90fd5b50508293509161255391926125fb565b600e541690813b156119c3578651916316989f6f60e21b83528260048160009485945af19081156125385750908493929161252957506121fe565b90600161ffff80931601918211611b7557565b91909161ffff80809416911601918211611b7557565b9060018060a01b0382166000526015602052604060002081815491558181146000146125e257505050565b8111156125f257611fdc91612730565b611fdc91612a76565b90611fdc9161264360018060a01b0382169283600052601560205261262881600160406000200154611b68565b93600052601560205283600160406000200155601454611b68565b601455612730565b91908203918211611b7557565b6126628154611eae565b908161266c575050565b81601f6000931160011461267e575055565b90808391825261269d601f60208420940160051c840160018501611cf1565b5555565b9061270e6127169260018060a01b03811690600082815260156020526126ce85600160408420015461264b565b9281526015602052604081206002810184815481159081612727575b501561271b575090826003926127099483558160018401555501612658565b612a76565b60145461264b565b601455565b92505060010155612a76565b905015386126ea565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612961578360135460081c1684601654161061292d57612775613583565b60019283825260188652828a832054168861278f82612e61565b106128a757508152601a85528389822054166127fe5750505050506127f97f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946127d983612dec565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b612807866135d6565b9261281187612e61565b935b8186821611612869575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016127f9565b808561288886617fff8f95871c1694858852601b8c5287205416612e61565b10156128a1579061289a839282613735565b9050612813565b5061281d565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506127f995601a916128e261327b565b83525220541661291f575b6128f684613206565b6128ff83612dec565b516001600160a01b03928316815292909116602083015281906040820190565b6129288461302b565b6128ed565b50505050506127f97f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946127d983613206565b97929150612972859497969561359f565b9761297c85612e61565b976129868a613197565b8460165416905b858116828111612a3f5782811015612a235750806129ad6129b39261258e565b90613533565b9b909b5b8b11156129d6576129c8908c61369c565b6129d18b613197565b61298d565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016127f9565b849c919c5260188352612a3a858886205416612e61565b6129b7565b505050505050506127f991929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506127d9565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612cb0578082526017835287868320541615612c9f578415612bf75750612ac38361359f565b97612acd84612e61565b985b6001808a83161115612be85781617fff911c1690818452601885528a612af9848a87205416612e61565b1115612b0e57612b09908261369c565b612acf565b505091939597509193955b6019541615612be057612b2a613583565b60018252601883528581818420541692601b612b4585612e61565b95612b4e613591565b600183525220541691612b6083612e61565b11612ba757505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016127f9565b915091506127f97ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612bd861327b565b6128ed612ec4565b505050505050565b50509193959750919395612b19565b829450612c2b7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996133c4565b8651908152a160195416612c3f5750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612c6d613591565b6001835252205416612c93612c8182612e61565b92612c8a612ec4565b6127d983613206565b0390a138808080611f15565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612db1575061fffe9193612ccd866135d6565b93612cd787612e61565b9480966001958692831b168160195416925b612d3d575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016127f9565b818116838111612dab578d9084811015612d8f57505080612d60612d669261258e565b906131ae565b9890985b881015612d8a57612d7b9089613735565b612d8488613197565b86612ce9565b612cee565b8652601b8552852054909890612da6908716612e61565b612d6a565b50612cee565b94915050612de59194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9596925061302b565b51908152a1565b611fdc90612e5b61ffff91612e04836019541661258e565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955612e61565b90613142565b60ff601354166003811015611e9857600103612e92576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611b7557565b61ffff80601954169081156130195790600190612ee38183111561367f565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291612f7d91908a612f6e83612eb0565b169060195416176019556135fb565b848252808652612f91848484205416612e61565b95859860028160195416995b612faf575b5050505050505050505050565b8181168a8111613013578a811015612ff8575080612d60612fcf9261258e565b9a909a5b891015612ff357612fe4908b613735565b612fed8a613197565b87612f9d565b612fa2565b859b919b5283835261300e878787205416612e61565b612fd3565b50612fa2565b6040516340d9b01160e01b8152600490fd5b613034906135d6565b61ffff908160195416916130488383613735565b8061305284612eb0565b1661ffff196019541617601955613068836135fb565b80821680931461313d579161fffe91600091808352601b9060209382855260018060a01b03926040926130a86130a2868686205416612e61565b87613142565b82528086526130bb848484205416612e61565b9585986001988997881b168160195416995b6130de575050505050505050505050565b8181168a8111613013578a811015613122575080612d606130fe9261258e565b9a909a5b891015612ff357613113908b613735565b61311c8a613197565b876130cd565b859b919b52838352613138878787205416612e61565b613102565b505050565b9190915b60018061ffff831611156131915781617fff911c16908361317c6000848152601b602052604060018060a01b0391205416612e61565b10156131915761318c9082613735565b613146565b50509050565b60011b906201fffe61fffe831692168203611b7557565b91909161ffff92838216600052601b6020526131f160018060a01b036131da8160406000205416612e61565b958316600052601b60205260406000205416612e61565b908185106131ff5750509190565b9350919050565b611fdc9061327561ffff9161321e836016541661258e565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655612e61565b906134e4565b61ffff8060165416908115613019579060019061329a8183111561367f565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161333491908a61332583612eb0565b1690601654161760165561363d565b848252808652613348848484205416612e61565b95859860028160165416995b613365575050505050505050505050565b8181168a8111613013578a8110156133a95750806129ad6133859261258e565b9a909a5b891115612ff35761339a908b61369c565b6133a38a613197565b87613354565b859b919b528383526133bf878787205416612e61565b613389565b6133cd9061359f565b9061ffff908160165416906133e2828561369c565b826133ec83612eb0565b1661ffff1960165416176016556134028261363d565b8284168092146134de5760009291929183835260189260209484865260018060a01b039160409161344061343a858585205416612e61565b8a6134e4565b8152858752613453838383205416612e61565b9561345d89613197565b978560165416985b8681168a81116134d0578a8110156134b55750806129ad6134859261258e565b9a909a5b8911156134a85761349a908b61369c565b6134a38a613197565b613465565b5050505050505092505050565b849b919b528282526134cb868686205416612e61565b613489565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156131915781617fff911c16908361351e60008481526018602052604060018060a01b0391205416612e61565b11156131915761352e908261369c565b6134e8565b919061ffff808416600052601860205261357460018060a01b0361355d8160406000205416612e61565b928416600052601860205260406000205416612e61565b93848211156131ff5750509190565b61ffff601654161561301957565b61ffff601954161561301957565b6001600160a01b031660009081526017602052604090205461ffff169081156135c457565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156135c457565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561368657565b634e487b7160e01b600052600160045260246000fd5b6136c161ffff8080601654169316936136b78486111561367f565b169182111561367f565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61375061ffff8080601954169316936136b78486111561367f565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156119c35701602081359101916001600160401b0382116119c35781360383136119c357565b908060209392818452848401376000828201840152601f01601f1916010190565b61383f6138346138268380611b8b565b604085526040850190611be7565b916020810190611b8b565b91602081830391015281359160ff83168093036119c35761386c60409161387c94845260208101906137c4565b91909281602082015201916137f5565b90565b602080825261388e8380611b8b565b60609182818501526138a560809283860190611be7565b6138bc604096838101358888015287810190611bb3565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b8887106138f757505050505050505050505090565b909192939495969798999a828282030187526139138c85611b8b565b90813560de19833603018112156119c3578782528201918a90888e6001600160401b0361398a61397a61396761395e61394c8b80611b8b565b60e080988c01526101208b0190613816565b978a018a611b8b565b96603f1997888a830301868b0152613816565b928d8901358d8901528801611b9f565b169060a091828701528a8701359263ffffffff60e01b84168094036119c3578f956139c16139d19460c096878b01528a018a6137c4565b92909189850301908901526137f5565b9401356101008401520135908115158092036119c3578a01529a88019998979660010195870194939291906138e2565b814710613a63576000918291829182916001600160a01b03165af13d15613a5e573d613a2c81611971565b90613a3a6040519283611950565b8152600060203d92013e5b15613a4c57565b604051630a12f52160e11b8152600490fd5b613a45565b60405163cd78605960e01b8152306004820152602490fd5b60ff60125460101c16613a8a57565b60405163248c8efb60e11b8152600490fd5b60405190608082018281106001600160401b038211176104e7576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613b3281518092818552858086019101611f7e565b601f01601f1916010190565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613b9a57505050505050505090565b909192939495856003613bd9839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01611ee8565b9a019401940192969594939190613b88565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104e757613c2c81613c268454611eae565b84611fa1565b6000601f8211600114613c655781929394600092613c5a5750508160011b916000199060031b1c1916179055565b013590503880612035565b601f198216948382526020918281209281905b888210613cb057505083600195969710613c9657505050811b019055565b0135600019600384901b60f8161c19169055388080612086565b80600184968294958701358155019501920190613c78565b60018054600160401b8110156104e757818101808355811015611d5357600360009183835202918351837fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6015560407fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf87fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf785019460209560018060a01b0387890151166001600160601b0360a01b82541617905501940151918251926001600160401b0384116118e457613da684613da08854611eae565b88611fa1565b8491601f8511600114613dde579394508492919083613dd3575b50501b916000199060031b1c1916179055565b015192503880613dc0565b86815285812093958591601f198316915b88838310613e225750505010613e0957505050811b019055565b015160001960f88460031b161c19169055388080612086565b858701518855909601959485019487935090810190613def565b90613e5190613e4b8184613f50565b826125fb565b60ff60125460081c1615613e625750565b6000908160019283549084815b838110613efe575b5050505015613e84575050565b613ef76106c3611fdc93613eaa8460018060a01b03166000526015602052604060002090565b0154926003613ecb8260018060a01b03166000526015602052604060002090565b019060405194613eda86611935565b85526001600160a01b031660208501526040519283918290611ee8565b0382611950565b818352600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614613f4257018590613e6f565b509250505038808481613e77565b60018060a01b03166000526015602052613f736002604060002001918254611b68565b9055565b91906040519281602085015260208452613f9084611907565b6001600160401b03601c54169360405194613faa86611935565b60008652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151613fde81611e8e565b613fe781611e8e565b60ff80198a54169116178855519687516001600160401b0381116104e75761401f816140166001850154611eae565b60018501611fa1565b6020601f82116001146140f1576140d8949282600080516020614d06833981519152979593600293611fdc9c9d6000926140e6575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361409d826120c6565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613b19565b9060608301520390a1613f50565b015190503880614054565b6001830160005260206000209960005b601f1984168110614164575092600183611fdc9b9c6002946140d89997600080516020614d068339815191529b9997601f1981161061414b575b505050811b01600182015561406c565b015160001960f88460031b161c1916905538808061413b565b828201518c556001909b019a60209283019201614101565b60ff601354166003811015611e98576106f757565b61419961417c565b34156111255733600090815260156020526040902060020154156141d95760ff60125460081c16156141cf57611fdc3433613f77565b611fdc3433613e3c565b60405163528fc16560e01b8152600490fd5b6141f361417c565b801561425a57336000908152601560205260409020600201548015611828578110156142495760ff60125460081c161561423157611fdc90336142bf565b8061423f611fdc923361426c565b610d1081336126a1565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106142ad576142999161264b565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526142d884611907565b6001600160401b03601c541693604051946142f286611935565b60018652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161432681611e8e565b61432f81611e8e565b60ff80198a54169116178855519687516001600160401b0381116104e75761435e816140166001850154611eae565b6020601f821160011461443057614417949282600080516020614d06833981519152979593600293611fdc9c9d600092614425575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036143dc826120c6565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613b19565b9060608301520390a161426c565b015190503880614393565b6001830160005260206000209960005b601f19841681106144a3575092600183611fdc9b9c6002946144179997600080516020614d068339815191529b9997601f1981161061448a575b505050811b0160018201556143ab565b015160001960f88460031b161c1916905538808061447a565b828201518c556001909b019a60209283019201614440565b60ff60125460081c166145a8575b336000908152601560205260409020600201548015611828576144eb336145b5565b50600090338252602460205281604081206145068154611eae565b8061456b575b50505060ff60125460081c161561452857611fdc9150336142bf565b6040611fdc923381526003602052205480614549575b5061423f813361426c565b806145596145659260025461264b565b600255610d1033614bcd565b3861453e565b82601f8211600114614583575050555b81388061450c565b90918082526145a1601f60208420940160051c840160018501611cf1565b555561457b565b6145b061417c565b6144c9565b600081815260266020526040812054909190801561469a576000199080820181811161468657602554908382019182116146725780820361463e575b505050602554801561462a5781019061460982611d69565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b61465c61464d611dd993611d69565b90549060031b1c928392611d69565b90558452602660205260408420553880806145f1565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611d535760209160051b010190565b919091821561313d576040908151906020938483018381106001600160401b038211176104e7578452600092839052600281101561484257806147a35750600b546146fd9161264b565b8152602283528181208251808286829454938481520190855286852092855b8882821061478d5750505061473392500382611950565b928351948515612be057858110612be05785900493825b86811061475a5750505050505050565b6001906001600160a01b0361476f828561469f565b5116855260218452858520614785888254611b68565b90550161474a565b855484526001958601958795509301920161471c565b8460018592146000146147f357606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614863836119f8565b9360409461487386519182611950565b848152601f19614882866119f8565b0194602095368784013760005b81811061495957505060009461ffff8060165416600192839182945b614908575b505050505060ff600e5460a01c1694858102958187041490151715611b755760646148dc9504916149d0565b90156148e6575050565b6006811015611e985760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614951576000908152601885522054849392918691859161494791614941906001600160a01b0316612e61565b90611b68565b9b011694936148ab565b5050986148b0565b6001600160a01b038061496c838761469f565b51166000526017885261ffff896000205416156149ac579061499b600192614994838861469f565b5116612e61565b6149a5828661469f565b520161488f565b88906149ba6024938761469f565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614ab85782518514801590614aad575b614aa0579392919085945b848610614a18575050505050501015614a1057600090600590565b600190600090565b909192939495614a32614a2b888461469f565b5184614ac5565b50614a3c81611e8e565b614a8f576001600160a01b0380614a538a8861469f565b5116911603614a7f57614a73600191614a6c898861469f565b5190611b68565b960194939291906149f5565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b5083518514156149ea565b5050505050905090600290565b8151919060418303614af657614aef92506020820151906060604084015193015160001a90614b01565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614b8557926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614b795780516001600160a01b03811615614b7057918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b90614b9e6041821461367f565b806001116119c357614bb9913691600019019060010161198c565b80516020909101206001600160a01b031690565b60049081549160005b838110614be35750505050565b614bec81611d1c565b90546003916001600160a01b039190831b1c811685821614614c12575050600101614bd6565b929350939060001991828101908111614c9f5790614c4384614c36614c6294611d1c565b905490891b1c1691611d1c565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015614c8a570192614c7584611d1c565b81939154921b1b191690555538808080611f15565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b9190811015611d535760051b81013590601e19813603018212156119c35701908135916001600160401b0383116119c35760200182360381136119c3579190565b9190811015611d535760051b019056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a2646970667358221220f77b469ad41d890021da53a2a7426b41d10e67ba4805753f9ed9c3e881e183eb64736f6c634300081300336080806040523461001657611d44908161001c8239f35b600080fdfe60808060405260043610156200001457600080fd5b60003560e01c63aa3d1588146200002a57600080fd5b34620005c657600319602036820112620005c6576001600160401b0360043511620005c6576101609060043536030112620005c65760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620008c55760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b03811690819003620005c6576000546001600160a01b031603620008b357604051620000e781620008d4565b6002815260005b60408110620008845750600154604051906001600160a01b03166200011382620008d4565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200080f57620001b79454918181106200077a575b8181106200075a575b8181106200073a575b8181106200071a575b818110620006fa575b818110620006da575b818110620006bc575b10620006a6575b500382620008f0565b6040820152620001c78262000933565b52620001d38162000933565b50600254604051906001600160a01b0316620001ef82620008d4565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b8060078301106200079a576200028b9454918181106200077a578181106200075a578181106200073a578181106200071a57818110620006fa57818110620006da57818110620006bc5710620006a657500382620008f0565b60408201526200029b8262000957565b52620002a78162000957565b50604051908161137c8101106001600160401b0361137c84011117620006905761137c620009938339604061137c830181815282519181018290526060600583901b82018101936020019291600091015b828210620005f857858561137c82018103602061137c8401015260043560040135604219600435360301811215620005c6576004350161016082526001600160401b03620003496004830162000968565b16610160830152602481013560221982360301811215620005c657016001600160401b03600482013511620005c6576024810190600481013560051b36038213620005c657604061018084015260048101356101a08401526101c08301919060005b60048201358110620005cb57506001600160a01b039150620003d490506004356024016200097d565b166020830152604460043501356001811015620005c65760408301526064600435013560608301526001600160401b036200041460846004350162000968565b1660808301526001600160401b036200043260a46004350162000968565b1660a083015260c4600435013560ff8116809103620005c65760c083015260e4600435013561ffff8116809103620005c65760e0830152610104600435013561010083015261012460043501358060000b809103620005c65761012083015261014460043501356003811015620005c6576101408493620004b38362000912565b015203906000f08015620005ba5733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005a4576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b03620005e7896200097d565b1681520195019392019050620003ab565b90919293605f1961137c870182030182528451602060806040606085019360018060a01b03815116865283810151620006318162000912565b84870152015193606060408201528451809452019201906000905b8082106200066c57505050602080600192960192019201909291620002f8565b82516001600160e01b0319168452602093840193909201916001909101906200064c565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b6020906040516200089581620008d4565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b038211176200069057604052565b90601f801991011681019081106001600160401b038211176200069057604052565b600311156200091d57565b634e487b7160e01b600052602160045260246000fd5b805115620009415760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620009415760400190565b35906001600160401b0382168203620005c657565b35906001600160a01b0382168203620005c65756fe6080604052346106715761137c803803809161001c826080610faf565b60803960408112610671576080516001600160401b0381116106715760808201609f8201121561067157806080015161005481610fd2565b906100626040519283610faf565b8082526020820180938560800160208460051b836080010101116106715760a08101915b60a0600585901b8301018310610e5457505060a051939150506001600160401b03831161067157610160938381038513610671576040519485016001600160401b0381118682101761075d5760405260808401516001600160401b038111610671576100fa91608001908560800101611011565b845261010860a08401610fe9565b6020850181905260c0840151600181101561067157604086015260e084015160608601526101396101008501610ffd565b608086015261014b6101208501610ffd565b60a086015261014084015160ff811681036106715760c086015261016084015161ffff811681036106715760e0860152610100938481608001015185870152610120816080010151908160000b8203610671576101409161012088015260800101516003811015610671576101408601526001600160a01b031615610e425760a08401516001600160401b031615610e305760016101408501516101ee816110b4565b6101f7816110b4565b141580610e24575b610e125760ff60c08501511660338110908115610e07575b50610df557601261012085015160000b13610de3577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111761075d576020810160405260008152825160005b8181106107d55750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061077f5788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67389806102fa8b8b600060208501528382036040850152611181565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054909116821790556101408301516103be816110b4565b6103c7816110b4565b14610773575b81518051601080546001600160401b0319166001600160401b0392831617905560209190910151805191821161075d5768010000000000000000821161075d5760115482601155808310610728575b506020016011600052602060002060005b83811061070b57858560018060a01b03602083015116600e5490604084015160018110156106f5576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040516104e881610f79565b6010546001600160401b0316815260405160118054808352600091825260008051602061131c83398151915291839160208301915b8181106106d357505061053292500382610faf565b6020820152610574600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518093819263aa5106cb60e01b83526040600484015260448301906110be565b3060248301520381855af490811561067e5760009161068a575b506020906105b89260405180809581946390ba52cf60e01b835286600484015260248301906110be565b03915af490811561067e57600091610647575b50600d55610140810151906105df826110b4565b6105e8826110b4565b60ff62ffff0060e0601354936064600855600a60018060401b03196009541617600955015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c5560405160eb90816112318239f35b90506020813d602011610676575b8161066260209383610faf565b810103126106715751826105cb565b600080fd5b3d9150610655565b6040513d6000823e3d90fd5b90503d806000833e61069c8183610faf565b810191602082840312610671578151916001600160401b038311610671576105b8936020936106cb9201611011565b91509161058e565b84546001600160a01b031683526001948501948694506020909301920161051d565b634e487b7160e01b600052602160045260246000fd5b82516001600160a01b03168183015560209092019160010161042d565b601160005260008051602061131c833981519152908382015b818301811061075157505061041c565b60008155600101610741565b634e487b7160e01b600052604160045260246000fd5b600060608301526103cd565b909192946020806107c7600193607f198b8203018652606060408b51878060a01b038151168452858101516107b3816110b4565b868501520151918160408201520190611143565b9701920192019092916102b5565b60406107e18287611119565b5101516001600160a01b036107f68388611119565b51511690805115610dca57602061080d8489611119565b510151610819816110b4565b610822816110b4565b80610a24575081156109fb5761ffff60008051602061133c83398151915254169161088c60405161085281610f94565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b6040820152826111f1565b8151916000935b8385106108a95750505050506001905b01610287565b6001600160e01b03196108bc8684611119565b5116600081815260008051602061135c83398151915260205260409020546001600160a01b03166109e3576109526040516108f681610f79565b85815261ffff84166020808301918252600085815260008051602061135c833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b60008051602061133c83398151915254906801000000000000000082101561075d576109948260016109b1940160008051602061133c833981519152556111c1565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff808216146109cd57600161ffff81921601940193610893565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610a20906024830190611143565b0390fd5b610a2d816110b4565b60018103610b9457508115610b6f57610a8c604051610a4b81610f94565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b6040820152836111f1565b80519060005b828110610aa557505050506001906108a3565b6001600160e01b0319610ab88284611119565b5116600081815260008051602061135c83398151915260205260409020546001600160a01b0316308114610b5657858114610b3d5715610b2557600090815260008051602061135c8339815191526020526040902080546001600160a01b03191685179055600101610a92565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610a20906024830190611143565b610b9d816110b4565b60028103610daa575060008051602061133c833981519152549180610d92575080519060005b828110610bd657505050506001906108a3565b6001600160e01b0319610be98284611119565b5116908160005260008051602061135c83398151915260205260406000209460405195610c1587610f79565b546001600160a01b03811680885260a09190911c61ffff16602088015215610d795785516001600160a01b03163014610d605780156109cd576000190180958161ffff60208301511603610ce5575b505060008051602061133c83398151915254918215610ccf5760019260001901610c8d816111c1565b63ffffffff82549160031b1b1916905560008051602061133c8339815191525560005260008051602061135c8339815191526020526000604081205501610bc3565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610cf6610d59946111c1565b90549060031b1c60e01b92610d13846109948585850151166111c1565b01516001600160e01b0319909216600090815260008051602061135c83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610c64565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610dc3816110b4565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610217565b6040516368f7a67560e11b8152600490fd5b506060840151156101ff565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161067157606090830160808101908903601f1901821361067157604051918083016001600160401b03811184821017610f6457604052610ea260208301610fe9565b8352604082015160038110156106715760208401528101516001600160401b0381116106715789608001603f8284010112156106715760208183010151610ee881610fd2565b92610ef66040519485610faf565b81845260208401908c60800160408460051b86840101011161067157604084820101915b60408460051b86840101018310610f435750505050506040820152815260209283019201610086565b82516001600160e01b03198116810361067157815260209283019201610f1a565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b0382111761075d57604052565b606081019081106001600160401b0382111761075d57604052565b601f909101601f19168101906001600160401b0382119082101761075d57604052565b6001600160401b03811161075d5760051b60200190565b51906001600160a01b038216820361067157565b51906001600160401b038216820361067157565b9190604083820312610671576040519261102a84610f79565b8361103482610ffd565b815260208281015190926001600160401b03821161067157019280601f8501121561067157835161106481610fd2565b946110726040519687610faf565b818652848087019260051b8201019283116106715784809101915b83831061109c57505050500152565b81906110a784610fe9565b815201910190849061108d565b600311156106f557565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b8281106110fc575050505090565b83516001600160a01b0316855293810193928101926001016110ee565b805182101561112d5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b828110611163575050505090565b83516001600160e01b03191685529381019392810192600101611155565b919082519283825260005b8481106111ad575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161118c565b9060008051602061133c833981519152805483101561112d57600052601c60206000208360031c019260021b1690565b803b156111fc575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610a2090604483019061118156fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122034477731f6063883c0c4e645241b575decdff772ed0eed5c444e648eaad09a2e64736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a264697066735822122056352174ae2f3cc8b74ee0638a0eb0959aefb2c77c028d1f2c960d17a9f408b064736f6c634300081300336080806040523461001657610b21908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba26469706673582212202229f911c9a50f4c7891678d6e2abc5c757052067fc33ef42e2db8d7502b68ce64736f6c634300081300336080806040523461001657614eee908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146119f25750806310fd426114611881578063268119361461166e5780632e17de7814611641578063350a14bf1461160e5780633a4b66f1146115ea5780633f4ba83a1461157257806341c0e1b5146114e15780634c860af61461148d5780634e71d92d146112f95780635c975abb146112c95780636170b16214610edf57806366783c9b14610dfe5780638456cb5914610d96578063b9ee2bb914610997578063c7ebdaef14610951578063cc2dc2b9146108d1578063d66d9e1914610886578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b857600080516020614e9983398151915260018154146101a657806001839255610133611cfe565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611ad4565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611b75565b906024356001600160401b03811161087e5761020c903690600401611b75565b916044356001600160401b03811161087a5761022c903690600401611b75565b9094610236613c28565b61023e611cb9565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b610297610291828888614e07565b90614ce4565b6001600160a01b036102b26102ad848689614e48565b611eb5565b166001600160a01b03909116036105135761031c6102d46102ad838588614e48565b6102df838989614e07565b6102ed85888d969496614e48565b356103086040519586936040602086015260608501916139a2565b90604083015203601f198101845283611b02565b6001600160401b03601c541660405161033481611ae7565b600381526020810184815260018060a01b038416604083015282600052601d60205260406000209082516103678161203b565b6103708161203b565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f600186015461205b565b6001860161214e565b602090601f8311600114610476579282600080516020614e5983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361042182612273565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190613cc6565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614e598339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061058881613ceb565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611ad4565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a610291828786614e07565b6001600160a01b03919082806106246102ad858d8d614e48565b169116036105135761064261063d6102ad838b8b614e48565b61300e565b610812576106d99161066c61065b6102ad848c8c614e48565b610666848a89614e07565b91613d98565b61068f61067d6102ad848c8c614e48565b61068884878a614e48565b3590612764565b61069d6102ad838b8b614e48565b906106a9838689614e48565b35906106b6848a89614e07565b9590604051936106c585611ae7565b845260209683888601961686523691611b3e565b9260408301938452600154600160401b8110156104fd578060016107009201600155613e75565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e82610748855461205b565b8561214e565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b610862610841613c49565b60405163015538b160e01b8152602060048201529182916024830190613cc6565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614e9983398151915260018154146101a6578060018392556108bd611cfe565b6108c5613c28565b6108cd61460e565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611be4565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611c3a565b90602435906149a9565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a9061228b565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611b75565b91906044356001600160401b038111610d9257610a0e903690600401611b75565b91610a17611cfe565b60055494600b5495610a298782611d29565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e04565b0393610a66601f1995868101835282611b02565b5190209882611d29565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611be4565b933691611c3a565b916149a9565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e55565b16936001600160401b03199485845416178355610b056001926024848601930190611e69565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e55565b16908254161790556024600435013582526022602052610b9e604083203390611fb6565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e04565b03925af180156105df57610c03575b5050610bfe61094a91611e55565b61228b565b610c0c90611ad4565b610882578138610bf0565b84959697506020610c2b8495969394611eb5565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611e9e565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b02565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fb6565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf611cb9565b610db7611cfe565b600080516020614e79833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614e9983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e718282546127f8565b9055610e7f816002546127f8565b6002553384526003602052604084205415610e9b575b33613bae565b610ea433614d20565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614e9983398151915254146101a6576001600080516020614e9983398151915255610f5b611cfe565b610f63613c28565b60ff60125460081c16806112bc575b34156112aa57604182600401350361129857610f95826004013560248401614ce4565b336001600160a01b0390911603610513576110a757806024610fbd9260040135910133613d98565b610fc73433613eb0565b80601454600a54811015610fed575b50505b80600080516020614e998339815191525580f35b61ffff601654166001600160401b03600c541611610fd65761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061104281613ceb565b0390a160018060a01b03600e54169061105e6002548092611d29565b91803b156110a257602484926040519485938492637903ab2760e11b845260048401525af180156105df5715610fd65761109790611ad4565b6101b8578038610fd6565b505050fd5b6110b936826004013560248401611b3e565b6001600160401b03601c541690604051906110d382611ae7565b600282526020820190815233604083015282600052601d60205260406000209082516110fe8161203b565b6111078161203b565b60ff80198454169116178255518051906001600160401b0382116104fd576111368261039f600186015461205b565b602090601f8311600114611210579282600080516020614e598339815191529795936002936111ed9896600092611205575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036111b182612273565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139a2565b9060608301520390a161120034336140ca565b610fd9565b015190503880611168565b906001840160005260206000209160005b601f19851681106112805750836002936111ed989693600193600080516020614e598339815191529b9997601f19811610611267575b505050811b016001820155611180565b015160001960f88460031b161c19169055388080611257565b91926020600181928685015181550194019201611221565b6040516318dca5e960e21b8152600490fd5b604051635a78c58160e11b8152600490fd5b6112c46142cf565b610f72565b50346101b857806003193601126101b857602060ff600080516020614e7983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614e99833981519152828154146101a65782815561132f611cfe565b336000908152601f602052604090209283549061ffff9081831692831561147b57829060101c16918391808795818a01915b6113f5575b505050866113d7937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113de575b6113bf8133613bae565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f602052604090208590556113b5565b909193948381169682881015611472578760005260208091858252604060002060405161142181611ab9565b89825492838352015493849101524310611467578594938896889461144886958a95611d29565b9c60005252600082604082208281550155011696600019011694611361565b985050509493611366565b96509493611366565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b8576044356002811015610882576114ae611cfe565b600e546001600160a01b031633036114cf5761094a90602435600435614806565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114fa613c28565b61ffff611510816019541682601654169061274e565b16611560576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b85761158b611cb9565b600080516020614e79833981519152805460ff8116156115d85760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115fe611cfe565b611606613c28565b61094a6142e4565b50346101b85760203660031901126101b8576004356001600160401b038116810361163c5761094a9061228b565b600080fd5b50346101b85760203660031901126101b85761165b611cfe565b611663613c28565b61094a60043561433e565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d92576116bc903690600401611b75565b919060443585811161187d576116d6903690600401611b75565b916024860135966006549687891061183257604401906116f68287611e69565b9190506009541680911161186b5761170e8287611e69565b9050141580611844575b611832576117269085611e69565b9050156118205787946040516020810190611753816117458985613a2c565b03601f198101835282611b02565b519020968803611784575050505050506007541461176f575080f35b81526023602052610d4b604082203390611fb6565b61179e9392610a9388969893610a9b939a989a3691611be4565b8060206040516117ad81611ab9565b848152015281600655600755825260236020526117ce604083203390611fb6565b50600e546001600160a01b031690813b156101a257829161180591604051948580948193630bed761560e01b835260048301613a2c565b03925af180156105df57611817575080f35b61094a90611ad4565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118575788061515611718565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d576118c7903690602481600401359101611b3e565b926118d0611cfe565b3383526017825261ffff604084205416156119da578351156119c85733835260248252604083209184519182116119b45761190f82610748855461205b565b80601f83116001146119505750839482939492611945575b50508160011b916000199060031b1c19161790555b610d4b33611f4d565b015190503880611927565b90601f198316958486528286209286905b88821061199c57505083600195969710611983575b505050811b01905561193c565b015160001960f88460031b161c19169055388080611976565b80600185968294968601518155019501930190611961565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611aaa575060ff60125460081c16610ebb573381526003602052604081205415611a51575b338152600360205260408120611a3d348254611d29565b9055611a4b34600254611d29565b60025580f35b600454600160401b811015611a9657611a73816001611a919301600455611ec9565b81546001600160a01b0360039290921b91821b19163390911b179055565b611a26565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611b4a82611b23565b91611b586040519384611b02565b82948184528183011161163c578281602093846000960137010152565b9181601f8401121561163c578235916001600160401b03831161163c576020808501948460051b01011161163c57565b35906001600160401b038216820361163c57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b038216820361163c57565b9291611bef82611bb9565b91611bfd6040519384611b02565b829481845260208094019160051b810192831161163c57905b828210611c235750505050565b838091611c2f84611bd0565b815201910190611c16565b92919092611c4784611bb9565b91611c556040519384611b02565b829480845260208094019060051b83019282841161163c5780915b848310611c7f57505050505050565b82356001600160401b03811161163c57820184601f8201121561163c578691611cae8683858095359101611b3e565b815201920191611c70565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611cec57565b6040516330cd747160e01b8152600490fd5b60ff600080516020614e798339815191525416611d1757565b60405163d93c066560e01b8152600490fd5b91908201809211611d3657565b634e487b7160e01b600052601160045260246000fd5b9035603e198236030181121561163c570190565b9035601e198236030181121561163c5701602081359101916001600160401b03821161163c578160051b3603831361163c57565b60408201916001600160401b03611daa83611ba5565b1681526060611dbe60209384810190611d60565b839195604086839601525201929160005b828110611ddd575050505090565b909192938280600192838060a01b03611df589611bd0565b16815201950193929101611dcf565b6020815260806001600160401b03611e4e6060611e34611e248780611d4c565b85602088015260a0870190611d94565b956020810135604087015260408101358287015201611ba5565b1691015290565b356001600160401b038116810361163c5790565b903590601e198136030182121561163c57018035906001600160401b03821161163c57602001918160051b3603831361163c57565b818110611ea9575050565b60008155600101611e9e565b356001600160a01b038116810361163c5790565b600454811015611f005760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f005760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fb157602554600160401b811015611a96579082611f9d611f8684600160409601602555611f16565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461203557845494600160401b861015612021576001860180825586101561200d57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561204557565b634e487b7160e01b600052602160045260246000fd5b90600182811c9216801561208b575b602083101461207557565b634e487b7160e01b600052602260045260246000fd5b91607f169161206a565b90600092918054916120a68361205b565b91828252600193848116908160001461210857506001146120c8575b50505050565b90919394506000526020928360002092846000945b8386106120f45750505050010190388080806120c2565b8054858701830152940193859082016120dd565b9294505050602093945060ff191683830152151560051b010190388080806120c2565b60005b83811061213e5750506000910152565b818101518382015260200161212e565b9190601f811161215d57505050565b612189926000526020600020906020601f840160051c8301931061218b575b601f0160051c0190611e9e565b565b909150819061217c565b9080821461226f576121a7815461205b565b906001600160401b0382116104fd5781906121cc826121c6865461205b565b8661214e565b600090601f8311600114612203576000926121f8575b50508160011b916000199060031b1c1916179055565b0154905038806121e2565b81526020808220858352818320935090601f1985169083905b82821061225657505090846001959493921061223d575b505050811b019055565b015460001960f88460031b161c19169055388080612233565b849581929585015481556001809101960194019061221c565b5050565b9060016001600160401b0380931601918211611d3657565b601c546001600160401b03828116929080831684106122b65760405163040aaa0560e11b8152600490fd5b808360401c1684106120c25780604093841c165b848282161115612331575050916020916123047f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612273565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b8161234f826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123748161203b565b8085036123e657505060036123a560016123ab94959697019260018060a01b03166000526015602052604060002090565b01612195565b6123c8816001600160401b0316600052601d602052604060002090565b916000908184556001936123dd858201612805565b015501166122ca565b909194506123f38161203b565b60039181830361259157505087519361241b85612414816001809a01612095565b0386611b02565b84518501916020928a8785830192031261163c578387015189811161163c5787019681603f8901121561163c5787858d9901519261246461245b85611b23565b9a519a8b611b02565b838a528d848301011161163c578c926124829184888c01910161212b565b015192816124a28460018060a01b03166000526015602052604060002090565b01918751918a831161257c578a986124c4846124be875461205b565b8761214e565b81601f851160011461250957506124f99798999a84939284926000956124fe575b50501b92600019911b1c1916179055612764565b6123ab565b0151935038806124e5565b91601f9b9493919b1984169b866000528c84600020946000915b8210612561575050846124f99a9b9c9d10612547575b50505050811b019055612764565b01519060f884600019921b161c1916905538808080612539565b8383015186558f9d509487019492830192908101908e612523565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125ad85612414816001809501612095565b6020808680518101031261163c5781818c970151956125cb8161203b565b036126f05784906125dc828561284e565b601e546125e99043611d29565b928751906125f682611ab9565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c16906126399161274e565b169c60009d8e5282870188528d2092518355519101556126589061273b565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af19081156126e5575090849392916126d6575b506123ab565b6126df90611ad4565b386126d0565b8751903d90823e3d90fd5b50508293509161270091926127a8565b600e541690813b1561163c578651916316989f6f60e21b83528260048160009485945af19081156126e5575090849392916126d657506123ab565b90600161ffff80931601918211611d3657565b91909161ffff80809416911601918211611d3657565b9060018060a01b03821660005260156020526040600020818154915581811460001461278f57505050565b81111561279f57612189916128dd565b61218991612c23565b90612189916127f060018060a01b038216928360005260156020526127d581600160406000200154611d29565b93600052601560205283600160406000200155601454611d29565b6014556128dd565b91908203918211611d3657565b61280f815461205b565b9081612819575050565b81601f6000931160011461282b575055565b90808391825261284a601f60208420940160051c840160018501611e9e565b5555565b906128bb6128c39260018060a01b038116906000828152601560205261287b8560016040842001546127f8565b92815260156020526040812060028101848154811590816128d4575b50156128c8575090826003926128b69483558160018401555501612805565b612c23565b6014546127f8565b601455565b92505060010155612c23565b90501538612897565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b0e578360135460081c16846016541610612ada57612922613730565b60019283825260188652828a832054168861293c8261300e565b10612a5457508152601a85528389822054166129ab5750505050506129a67f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461298683612f99565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129b486613783565b926129be8761300e565b935b8186821611612a16575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129a6565b8085612a3586617fff8f95871c1694858852601b8c528720541661300e565b1015612a4e5790612a478392826138e2565b90506129c0565b506129ca565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129a695601a91612a8f613428565b835252205416612acc575b612aa3846133b3565b612aac83612f99565b516001600160a01b03928316815292909116602083015281906040820190565b612ad5846131d8565b612a9a565b50505050506129a67f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394612986836133b3565b97929150612b1f859497969561374c565b97612b298561300e565b97612b338a613344565b8460165416905b858116828111612bec5782811015612bd0575080612b5a612b609261273b565b906136e0565b9b909b5b8b1115612b8357612b75908c613849565b612b7e8b613344565b612b3a565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129a6565b849c919c5260188352612be785888620541661300e565b612b64565b505050505050506129a691929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612986565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e5d578082526017835287868320541615612e4c578415612da45750612c708361374c565b97612c7a8461300e565b985b6001808a83161115612d955781617fff911c1690818452601885528a612ca6848a8720541661300e565b1115612cbb57612cb69082613849565b612c7c565b505091939597509193955b6019541615612d8d57612cd7613730565b60018252601883528581818420541692601b612cf28561300e565b95612cfb61373e565b600183525220541691612d0d8361300e565b11612d5457505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129a6565b915091506129a67ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612d85613428565b612a9a613071565b505050505050565b50509193959750919395612cc6565b829450612dd87f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799613571565b8651908152a160195416612dec5750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e1a61373e565b6001835252205416612e40612e2e8261300e565b92612e37613071565b612986836133b3565b0390a1388080806120c2565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f5e575061fffe9193612e7a86613783565b93612e848761300e565b9480966001958692831b168160195416925b612eea575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129a6565b818116838111612f58578d9084811015612f3c57505080612f0d612f139261273b565b9061335b565b9890985b881015612f3757612f2890896138e2565b612f3188613344565b86612e96565b612e9b565b8652601b8552852054909890612f5390871661300e565b612f17565b50612e9b565b94915050612f929194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506131d8565b51908152a1565b6121899061300861ffff91612fb1836019541661273b565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b825416179055601954161760195561300e565b906132ef565b60ff6013541660038110156120455760010361303f576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d3657565b61ffff80601954169081156131c657906001906130908183111561382c565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161312a91908a61311b8361305d565b169060195416176019556137a8565b84825280865261313e84848420541661300e565b95859860028160195416995b61315c575b5050505050505050505050565b8181168a81116131c0578a8110156131a5575080612f0d61317c9261273b565b9a909a5b8910156131a057613191908b6138e2565b61319a8a613344565b8761314a565b61314f565b859b919b528383526131bb87878720541661300e565b613180565b5061314f565b6040516340d9b01160e01b8152600490fd5b6131e190613783565b61ffff908160195416916131f583836138e2565b806131ff8461305d565b1661ffff196019541617601955613215836137a8565b8082168093146132ea579161fffe91600091808352601b9060209382855260018060a01b039260409261325561324f86868620541661300e565b876132ef565b825280865261326884848420541661300e565b9585986001988997881b168160195416995b61328b575050505050505050505050565b8181168a81116131c0578a8110156132cf575080612f0d6132ab9261273b565b9a909a5b8910156131a0576132c0908b6138e2565b6132c98a613344565b8761327a565b859b919b528383526132e587878720541661300e565b6132af565b505050565b9190915b60018061ffff8316111561333e5781617fff911c1690836133296000848152601b602052604060018060a01b039120541661300e565b101561333e5761333990826138e2565b6132f3565b50509050565b60011b906201fffe61fffe831692168203611d3657565b91909161ffff92838216600052601b60205261339e60018060a01b03613387816040600020541661300e565b958316600052601b6020526040600020541661300e565b908185106133ac5750509190565b9350919050565b6121899061342261ffff916133cb836016541661273b565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b825416179055601654161760165561300e565b90613691565b61ffff80601654169081156131c657906001906134478183111561382c565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a8952845416909117909255929587959394929392916134e191908a6134d28361305d565b169060165416176016556137ea565b8482528086526134f584848420541661300e565b95859860028160165416995b613512575050505050505050505050565b8181168a81116131c0578a811015613556575080612b5a6135329261273b565b9a909a5b8911156131a057613547908b613849565b6135508a613344565b87613501565b859b919b5283835261356c87878720541661300e565b613536565b61357a9061374c565b9061ffff9081601654169061358f8285613849565b826135998361305d565b1661ffff1960165416176016556135af826137ea565b82841680921461368b5760009291929183835260189260209484865260018060a01b03916040916135ed6135e785858520541661300e565b8a613691565b815285875261360083838320541661300e565b9561360a89613344565b978560165416985b8681168a811161367d578a811015613662575080612b5a6136329261273b565b9a909a5b89111561365557613647908b613849565b6136508a613344565b613612565b5050505050505092505050565b849b919b5282825261367886868620541661300e565b613636565b505050505050505092505050565b92505050565b9190915b60018061ffff8316111561333e5781617fff911c1690836136cb60008481526018602052604060018060a01b039120541661300e565b111561333e576136db9082613849565b613695565b919061ffff808416600052601860205261372160018060a01b0361370a816040600020541661300e565b92841660005260186020526040600020541661300e565b93848211156133ac5750509190565b61ffff60165416156131c657565b61ffff60195416156131c657565b6001600160a01b031660009081526017602052604090205461ffff1690811561377157565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff1690811561377157565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561383357565b634e487b7160e01b600052600160045260246000fd5b61386e61ffff8080601654169316936138648486111561382c565b169182111561382c565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b6138fd61ffff8080601954169316936138648486111561382c565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e198236030181121561163c5701602081359101916001600160401b03821161163c57813603831361163c57565b908060209392818452848401376000828201840152601f01601f1916010190565b6139ec6139e16139d38380611d4c565b604085526040850190611d94565b916020810190611d4c565b91602081830391015281359160ff831680930361163c57613a19604091613a299484526020810190613971565b91909281602082015201916139a2565b90565b6020808252613a3b8380611d4c565b6060918281850152613a5260809283860190611d94565b613a69604096838101358888015287810190611d60565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613aa457505050505050505050505090565b909192939495969798999a82828203018752613ac08c85611d4c565b90813560de198336030181121561163c578782528201918a90888e6001600160401b03613b37613b27613b14613b0b613af98b80611d4c565b60e080988c01526101208b01906139c3565b978a018a611d4c565b96603f1997888a830301868b01526139c3565b928d8901358d8901528801611ba5565b169060a091828701528a8701359263ffffffff60e01b841680940361163c578f95613b6e613b7e9460c096878b01528a018a613971565b92909189850301908901526139a2565b94013561010084015201359081151580920361163c578a01529a8801999897966001019587019493929190613a8f565b814710613c10576000918291829182916001600160a01b03165af13d15613c0b573d613bd981611b23565b90613be76040519283611b02565b8152600060203d92013e5b15613bf957565b604051630a12f52160e11b8152600490fd5b613bf2565b60405163cd78605960e01b8152306004820152602490fd5b60ff60125460101c16613c3757565b60405163248c8efb60e11b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613cdf8151809281855285808601910161212b565b601f01601f1916010190565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613d4757505050505050505090565b909192939495856003613d86839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01612095565b9a019401940192969594939190613d35565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd57613dd981613dd3845461205b565b8461214e565b6000601f8211600114613e125781929394600092613e075750508160011b916000199060031b1c1916179055565b0135905038806121e2565b601f198216948382526020918281209281905b888210613e5d57505083600195969710613e4357505050811b019055565b0135600019600384901b60f8161c19169055388080612233565b80600184968294958701358155019501920190613e25565b600154811015611f00576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b90613ec590613ebf81846140a3565b826127a8565b60ff60125460081c1615613ed65750565b60018054600082815b838110614053575b505015613ef357505050565b6001600160a01b038316600090815260156020526040902082810154613f4994909160030160405192613f2584611ae7565b8352602093613f508585019260018060a01b03809516845260405198898092612095565b0388611b02565b60408401968752600160401b8110156104fd578086613f7192018755613e75565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd57613fb8836124be875461205b565b81601f8411600114613ff15750928293918392600094613fe6575b50501b916000199060031b1c1916179055565b015192503880613fd3565b919083601f1981168760005284600020946000905b88838310614039575050501061402057505050811b019055565b015160001960f88460031b161c19169055388080612233565b858701518855909601959485019487935090810190614006565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b0387811691161461409957018390613edf565b5090508238613ee7565b60018060a01b031660005260156020526140c66002604060002001918254611d29565b9055565b919060405192816020850152602084526140e384611ab9565b6001600160401b03601c541693604051946140fd86611ae7565b60008652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516141318161203b565b61413a8161203b565b60ff80198a54169116178855519687516001600160401b0381116104fd5761417281614169600185015461205b565b6001850161214e565b6020601f82116001146142445761422b949282600080516020614e598339815191529795936002936121899c9d600092614239575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036141f082612273565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613cc6565b9060608301520390a16140a3565b0151905038806141a7565b6001830160005260206000209960005b601f19841681106142b75750926001836121899b9c60029461422b9997600080516020614e598339815191529b9997601f1981161061429e575b505050811b0160018201556141bf565b015160001960f88460031b161c1916905538808061428e565b828201518c556001909b019a60209283019201614254565b60ff6013541660038110156120455761083657565b6142ec6142cf565b34156112aa57336000908152601560205260409020600201541561432c5760ff60125460081c16156143225761218934336140ca565b6121893433613eb0565b60405163528fc16560e01b8152600490fd5b6143466142cf565b80156143ad573360009081526015602052604090206002015480156119da5781101561439c5760ff60125460081c1615614384576121899033614412565b8061439261218992336143bf565b610e95813361284e565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b03166000818152601560205260409020600201549091808210614400576143ec916127f8565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261442b84611ab9565b6001600160401b03601c5416936040519461444586611ae7565b60018652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516144798161203b565b6144828161203b565b60ff80198a54169116178855519687516001600160401b0381116104fd576144b181614169600185015461205b565b6020601f82116001146145835761456a949282600080516020614e598339815191529795936002936121899c9d600092614578575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361452f82612273565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613cc6565b9060608301520390a16143bf565b0151905038806144e6565b6001830160005260206000209960005b601f19841681106145f65750926001836121899b9c60029461456a9997600080516020614e598339815191529b9997601f198116106145dd575b505050811b0160018201556144fe565b015160001960f88460031b161c191690553880806145cd565b828201518c556001909b019a60209283019201614593565b60ff60125460081c166146fb575b3360009081526015602052604090206002015480156119da5761463e33614708565b5060009033825260246020528160408120614659815461205b565b806146be575b50505060ff60125460081c161561467b57612189915033614412565b604061218992338152600360205220548061469c575b5061439281336143bf565b806146ac6146b8926002546127f8565b600255610e9533614d20565b38614691565b82601f82116001146146d6575050555b81388061465f565b90918082526146f4601f60208420940160051c840160018501611e9e565b55556146ce565b6147036142cf565b61461c565b60008181526026602052604081205490919080156147ed57600019908082018181116147d957602554908382019182116147c557808203614791575b505050602554801561477d5781019061475c82611f16565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6147af6147a0611f8693611f16565b90549060031b1c928392611f16565b9055845260266020526040842055388080614744565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611f005760209160051b010190565b91909182156132ea576040908151906020938483018381106001600160401b038211176104fd578452600092839052600281101561499557806148f65750600b54614850916127f8565b8152602283528181208251808286829454938481520190855286852092855b888282106148e05750505061488692500382611b02565b928351948515612d8d57858110612d8d5785900493825b8681106148ad5750505050505050565b6001906001600160a01b036148c282856147f2565b51168552602184528585206148d8888254611d29565b90550161489d565b855484526001958601958795509301920161486f565b84600185921460001461494657606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b918251916149b683611bb9565b936040946149c686519182611b02565b848152601f196149d586611bb9565b0194602095368784013760005b818110614aac57505060009461ffff8060165416600192839182945b614a5b575b505050505060ff600e5460a01c1694858102958187041490151715611d36576064614a2f950491614b23565b9015614a39575050565b60068110156120455760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614aa45760009081526018855220548493929186918591614a9a91614a94906001600160a01b031661300e565b90611d29565b9b011694936149fe565b505098614a03565b6001600160a01b0380614abf83876147f2565b51166000526017885261ffff89600020541615614aff5790614aee600192614ae783886147f2565b511661300e565b614af882866147f2565b52016149e2565b8890614b0d602493876147f2565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614c0b5782518514801590614c00575b614bf3579392919085945b848610614b6b575050505050501015614b6357600090600590565b600190600090565b909192939495614b85614b7e88846147f2565b5184614c18565b50614b8f8161203b565b614be2576001600160a01b0380614ba68a886147f2565b5116911603614bd257614bc6600191614bbf89886147f2565b5190611d29565b96019493929190614b48565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614b3d565b5050505050905090600290565b8151919060418303614c4957614c4292506020820151906060604084015193015160001a90614c54565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614cd857926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614ccc5780516001600160a01b03811615614cc357918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b90614cf16041821461382c565b8060011161163c57614d0c9136916000190190600101611b3e565b80516020909101206001600160a01b031690565b60049081549160005b838110614d365750505050565b614d3f81611ec9565b90546003916001600160a01b039190831b1c811685821614614d65575050600101614d29565b929350939060001991828101908111614df25790614d9684614d89614db594611ec9565b905490891b1c1691611ec9565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015614ddd570192614dc884611ec9565b81939154921b1b1916905555388080806120c2565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b9190811015611f005760051b81013590601e198136030182121561163c5701908135916001600160401b03831161163c57602001823603811361163c579190565b9190811015611f005760051b019056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a2646970667358221220e314a0dcaf7e64a05613b4a7d0d301b3da5d183e2f2dc5a8c4f639b5168fc4e164736f6c63430008130033a2646970667358221220d4840c85f7ddd8e12a2adf31ab984af97c7742708e4d9cb8c30b3c289e27865d64736f6c63430008130033","sourceMap":"7607:21719:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;;;:::i;:::-;22275:19;;:::i;:::-;22320:32;22304:48;22320:32;;;:::i;:::-;22304:48;7607:21719;22304:48;;;;:::i;:::-;;;:::i;:::-;;7607:21719;;;;;:::i;:::-;22292:1;7607:21719;;1220:14:3;7607:21719:81;1220:14:3;;;7607:21719:81;22415:19;7607:21719;;22415:19;;:::i;:::-;7607:21719;;22445:21;;;;;;7607:21719;;-1:-1:-1;;;22445:21:81;;-1:-1:-1;;;;;7607:21719:81;;;;22445:21;;7607:21719;;;1220:14:3;;7607:21719:81;22445:21;7607:21719;1220:14:3;7607:21719:81;22445:21;;;;;;;;;;7607:21719;;;;;;;;:::i;:::-;22533:12;7607:21719;;22509:61;1220:14:3;22509:61:81;;7607:21719;22646:38;;;;;7607:21719;;-1:-1:-1;;;22646:38:81;;-1:-1:-1;;;7607:21719:81;22646:38;;7607:21719;22646:38;7607:21719;;;22646:38;;;;;;;;;;;;;;;7607:21719;-1:-1:-1;22694:8:81;540:42:1;7607:21719:81;;-1:-1:-1;;;22694:39:81;;540:42:1;;7607:21719:81;22694:39;;7607:21719;540:42:1;;;;;;;;7607:21719:81;;;22694:39;;7607:21719;;540:42:1;;7607:21719:81;;;;;22694:39;;;;;;;;7607:21719;22743:14;;;;;;7607:21719;;;;;;;;;;;;;22743:14;;;;;;;;;;7607:21719;;;22743:14;;;;;:::i;:::-;7607:21719;;22743:14;7607:21719;;;;;;22743:14;7607:21719;;;;;;;;;22743:14;7607:21719;;;22694:39;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;7607:21719;;;;;;;;;22646:38;;;;;;;;:::i;:::-;7607:21719;;22646:38;;;;;;7607:21719;;;;22646:38;7607:21719;;;;;;;;;22445:21;;;;;;;:::i;:::-;;;;;;7607:21719;;;;;;;;;22445:21;7607:21719;;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;7607:21719:81;;;;;;;;;2130:18:8;7607:21719:81;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;;29275:42;7607:21719;;:::i;:::-;;;:::i;:::-;-1:-1:-1;29302:14:81;3156:10;-1:-1:-1;;;;;7607:21719:81;;29275:42;:::i;:::-;7607:21719;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;7607:21719:81;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;:::i;:::-;;;23940:26;;;;;7607:21719;;-1:-1:-1;;;23940:26:81;;-1:-1:-1;;;;;7607:21719:81;;;;23940:26;;7607:21719;;;;23940:26;7607:21719;;;23940:26;;;;;;;;;;;;;7607:21719;23976:56;;;;;;;7607:21719;;;;;;;;;;;;;;;23976:56;;7607:21719;23976:56;;7607:21719;;;;;;23976:56;;;;;;;;;;;7607:21719;;;24042:9;7607:21719;;24042:56;;;;;7607:21719;;;2472:7;7607:21719;;;;;;;;;;;;24042:56;;7607:21719;;24042:56;;7607:21719;;;;;;:::i;:::-;24042:56;;;;;;;;;;7607:21719;;24042:56;;;;:::i;:::-;7607:21719;;24042:56;7607:21719;24042:56;7607:21719;;;23976:56;;;;:::i;:::-;7607:21719;;23976:56;;;;;7607:21719;;;23940:26;;;;:::i;:::-;7607:21719;;23940:26;;;;;7607:21719;;;;;;;;;23940:26;7607:21719;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;:::i;:::-;;;;;18136:26;;:::i;:::-;7607:21719;;;18203:21;;;;;-1:-1:-1;;;;;18203:21:81;;;;;;;;;;;;;;;;;;;;;;;7607:21719;;18268:23;;;;;-1:-1:-1;;;;;18268:23:81;;;;;;;;;;;;;;;;;;;;;;;;7607:21719;;18338:25;;;;;-1:-1:-1;;;;;18338:25:81;;;;;;;;;;;;;;;;;;;;;;;;7607:21719;;18408:23;;;;;-1:-1:-1;;;;;18408:23:81;;;;;;;;;;;;;;;;;;;;;;;;7607:21719;;;;;;:::i;:::-;;;;;;;;;18472:200;7607:21719;18472:200;;7607:21719;;;;;;18634:23;7607:21719;;;;;;18634:23;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18472:200;;7607:21719;18442:240;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;:::i;:::-;;;;;;;;;18722:198;7607:21719;18722:198;;7607:21719;;;;;;18882:23;7607:21719;;;;;;18882:23;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18722:198;;7607:21719;18692:238;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;:::i;:::-;;;;;;;;;18970:206;7607:21719;18970:206;;7607:21719;;;;;;19133:28;7607:21719;;;;;;19133:28;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18970:206;;7607:21719;18940:246;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;:::i;:::-;;;;;;;;;19226:212;7607:21719;19226:212;;7607:21719;;;;;;19389:34;7607:21719;;;;;;19389:34;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19226:212;;7607:21719;19196:252;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;19501:45;;;;;;;;;;-1:-1:-1;;;;;19501:45:81;;;;;;7607:21719;19501:45;;;7607:21719;19501:45;;;;7607:21719;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;19501:45;;;;;;;;7607:21719;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;19561:49;;7607:21719;19561:49;7607:21719;;;19501:45;7607:21719;;;;;;;;;;;19501:45;-1:-1:-1;;;7607:21719:81;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18408:23;-1:-1:-1;;;7607:21719:81;;;;;;;;18268:23;-1:-1:-1;;;7607:21719:81;;;;;;;;18203:21;-1:-1:-1;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;11644:26;;:::i;:::-;7607:21719;;;;;;:::i;:::-;-1:-1:-1;;;;;7607:21719:81;;;;;;11711:184;;;7607:21719;;;;;;;;:::i;:::-;;11711:184;;7607:21719;11681:224;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;;:::i;:::-;;;;11946:186;;;;7607:21719;;;;;;;;;12099:18;7607:21719;;;;;;;12099:18;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11946:186;;7607:21719;11916:226;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;7607:21719:81;;;12165:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;7607:21719;12153:54;3156:10;;;-1:-1:-1;;;;;3156:10:81;;;;;12153:54;3156:10;7607:21719;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1982:18:8;7607:21719:81;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;1982:18:8;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;-1:-1:-1;7607:21719:81;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;-1:-1:-1;7607:21719:81;;;;-1:-1:-1;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;7607:21719:81;;;;;;;;;;;:::i;:::-;;1671:64:2;;7607:21719:81;;;;;;;6628:51:16;;7607:21719:81;;6628:51:16;;;;;;;;7607:21719:81;6628:51:16;;;7607:21719:81;;;;;;:::i;:::-;;;;;;;6628:51:16;779:22:56;;6628:51:16;;;;;;:::i;:::-;7607:21719:81;392:159:16;131:42;392:159;;;7607:21719:81;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3112:3;;;7607:21719;14659:43;;;;7607:21719;;;14725:29;;;;;;-1:-1:-1;;;;;14725:29:81;;;;;;;;;;;;;;;;;;7607:21719;14725:29;;;;;;7607:21719;;;;;3156:10;;-1:-1:-1;;;;;3156:10:81;;7607:21719;;3156:10;14713:41;3156:10;;;14713:41;3156:10;7607:21719;;14775:28;;;;;;;;;;;;;;;;;;;;;;7607:21719;14775:28;;;;;7607:21719;;3156:10;14764:39;3156:10;;;14764:39;3156:10;7607:21719;;14824:21;;;;;;;;;;;;;;;;;;;;;;7607:21719;14824:21;;;;;7607:21719;;3156:10;14813:32;3156:10;;;14813:32;3156:10;7607:21719;;14866:23;;;;;;;;;;;;;;;;;;;;;;7607:21719;14866:23;;;;;;16011:598;7607:21719;;;;;;;15699:229;7607:21719;;;;;3156:10;;14855:34;3156:10;;;14855:34;3156:10;14940:26;;:::i;:::-;7607:21719;;;14713:41;7607:21719;;;;;;;;:::i;:::-;;;;15007:191;;;7607:21719;;;:::i;:::-;;15007:191;;7607:21719;14977:231;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;14764:39;7607:21719;;;;;;;;:::i;:::-;;;;15249:189;;;7607:21719;;;:::i;:::-;;15249:189;;7607:21719;15219:229;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;14813:32;7607:21719;;;;;;;;:::i;:::-;;;;15489:189;;;7607:21719;;;:::i;:::-;;15489:189;;7607:21719;15459:229;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;:::i;:::-;;;;15729:189;;;7607:21719;;;:::i;:::-;;15729:189;;7607:21719;15699:229;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;;:::i;:::-;;;16011:598;;;7607:21719;;16011:598;;;:::i;:::-;7607:21719;;2420:2;16011:598;;7607:21719;;16011:598;;;3112:3;7607:21719;;16011:598;;3112:3;7607:21719;;16011:598;;3025:3;7607:21719;;16011:598;;3025:3;2670:7;16011:598;;;7607:21719;16488:2;16011:598;;;3070:2;7607:21719;16011:598;;;3070:2;7607:21719;;15951:668;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7607:21719;15951:668;;;;;7607:21719;3156:10;;;15939:680;3156:10;;;15939:680;3156:10;;;14713:41;3156:10;;;14713:41;3156:10;;;14764:39;3156:10;;;14764:39;3156:10;;;14813:32;3156:10;;;14813:32;3156:10;14855:34;3156:10;;;14855:34;3156:10;7607:21719;;15951:668;7607:21719;;;;;;;;;15951:668;-1:-1:-1;;;7607:21719:81;;;;;;;;14866:23;7607:21719;;;;;;;;;;;14725:29;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;20046:12;;;;20054:3;20046:12;;7607:21719;20046:12;;7607:21719;;1220:14:3;;7607:21719:81;20046:12;;;;;;;;;;;;;;;;7607:21719;20024:35;;;;:::i;:::-;20008:51;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;20107:12;;;20115:3;7607:21719;20107:12;;7607:21719;20107:12;;;;;;;;;;;;;;;7607:21719;20085:35;;;;:::i;:::-;20069:51;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;20168:12;;;;20176:3;20168:12;;7607:21719;20168:12;;7607:21719;20168:12;;;;;;;;;;;;;;;7607:21719;20146:35;;;;:::i;:::-;20130:51;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;:::i;:::-;;;;;;;;;;;;;;20245:12;;;;;7607:21719;20245:12;;7607:21719;20245:12;;;;;;;;;;;;;;;;7607:21719;20230:27;;;;:::i;:::-;-1:-1:-1;;;;;7607:21719:81;;;;;;;20282:12;;;20115:3;7607:21719;20282:12;;7607:21719;20282:12;7607:21719;20282:12;7607:21719;20282:12;;;;;;;;;;;;7607:21719;20267:27;;;;;:::i;:::-;7607:21719;;;;;;20319:12;;;;7607:21719;20319:12;;7607:21719;20319:12;;;;;;;;;;;;;;;;7607:21719;20304:27;;;;;:::i;:::-;7607:21719;;;;;;;;;;:::i;:::-;;;;;;1220:14:3;;;7607:21719:81;;;20404:12;;;;;7607:21719;20404:12;;7607:21719;20404:12;;;;;;;;;;;;;;;;7607:21719;20396:24;;;;;;7607:21719;;-1:-1:-1;;;20396:24:81;;;7607:21719;;;;20396:24;;7607:21719;;1220:14:3;;;7607:21719:81;;;;;20396:24;7607:21719;1220:14:3;7607:21719:81;20396:24;;;;;;;;;;;;;7607:21719;;;;;20438:12;;;20115:3;7607:21719;20438:12;;7607:21719;20438:12;;;;;;;;;;;;;;;;7607:21719;20430:24;;;;;;7607:21719;;;20430:24;;;;7607:21719;;20430:24;;7607:21719;1220:14:3;;;;7607:21719:81;20430:24;;1220:14:3;20430:24:81;;;;;;;;;;;;;;7607:21719;;;;;20472:12;;;7607:21719;20472:12;;7607:21719;20472:12;;;;;;;;;;;;;;;;7607:21719;20464:24;;;;;;7607:21719;;;;20464:24;;;7607:21719;;20464:24;;7607:21719;1220:14:3;;;;7607:21719:81;20464:24;;1220:14:3;20464:24:81;;;;;;;;;;;;;;7607:21719;20499:16;;;;;20551;20499;;:::i;:::-;7607:21719;20525:16;;;;:::i;:::-;7607:21719;20551:16;:::i;:::-;7607:21719;;;;;;;:::i;:::-;20635:12;7607:21719;;20611:61;;;;7607:21719;20683:33;;;;;7607:21719;;-1:-1:-1;;;20683:33:81;;-1:-1:-1;;;7607:21719:81;20683:33;;7607:21719;;;;;;;;;;20683:33;;;;;;;;;;;;;;7607:21719;-1:-1:-1;20726:8:81;540:42:1;7607:21719:81;;-1:-1:-1;;;20726:39:81;;540:42:1;;7607:21719:81;20726:39;;7607:21719;540:42:1;;;;;;;;7607:21719:81;;;;;540:42:1;;7607:21719:81;;;;20726:39;;;;;;;;7607:21719;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;20726:39;;;;;;;;;;;;;:::i;:::-;;;;20683:33;;;;;;;;;:::i;:::-;7607:21719;;20683:33;;;;;;;20464:24;;;;:::i;:::-;7607:21719;;20464:24;;;;7607:21719;;;;20464:24;7607:21719;;;;;;;;;20464:24;7607:21719;;;20472:12;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;20472:12:81;;;;;;;;;7607:21719;;;;;;;;;20430:24;;;;:::i;:::-;7607:21719;;20430:24;;;;7607:21719;;;;20430:24;7607:21719;;;;;;;;;20430:24;7607:21719;;;20438:12;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;20438:12:81;;;;;;;;20396:24;;;;:::i;:::-;7607:21719;;20396:24;;;;20404:12;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;20404:12:81;;;;;;;;;20319;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;20319:12:81;;;1220:14:3;7607:21719:81;;;20319:12;;;;;20282;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;20282:12:81;;;;;;;;20245;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;20245:12:81;;;;;;;;;20168;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;20146:35:81;1220:14:3;;:::i;:::-;20168:12:81;;;;;;;20107;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;20085:35:81;1220:14:3;;:::i;:::-;20107:12:81;;;;;;;20046;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;20024:35:81;1220:14:3;;:::i;:::-;20046:12:81;;;;;;;7607:21719;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;;;:::i;:::-;;;;:::i;:::-;28393:14;3156:10;-1:-1:-1;;;;;7607:21719:81;;;27546:38;;;;;7607:21719;;-1:-1:-1;;;27546:38:81;;7607:21719;;27546:38;;7607:21719;;;;;;;;;;;27546:38;;;;;;;7607:21719;27546:38;;;;;7607:21719;27692:64;;;;;:::i;:::-;27799:8;7607:21719;;;-1:-1:-1;;;27799:25:81;;7607:21719;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;-1:-1:-1;;;;;7607:21719:81;27799:25;;;;;;;;;;;7607:21719;;;;;;;;;;;;;;27856:11;;;7607:21719;27856:11;;7607:21719;;;;;;:::i;:::-;27856:11;:9;;:11;;;;;;;;;;;;;;7607:21719;-1:-1:-1;7607:21719:81;;-1:-1:-1;;;27871:43:81;;7607:21719;;;;;;27871:43;;7607:21719;;27871:43;;;:::i;:::-;;27856:9;;27871:43;;;;;;;7607:21719;27871:43;;7607:21719;27871:43;;;;;7607:21719;;;;;;;;;;;27871:52;;;7607:21719;27871:52;;7607:21719;;;;;;:::i;:::-;27871:52;27856:9;;27871:52;;;;;;;;;;;7607:21719;27856:67;;7607:21719;;28140:49;28034:19;28026:48;7607:21719;28084:46;28034:19;;28026:48;:::i;:::-;28092:17;28084:46;:::i;:::-;28148:15;28140:49;:::i;:::-;7607:21719;;;;;;;;28207:23;;;7607:21719;;27799:8;7607:21719;;;-1:-1:-1;;;21067:25:81;;7607:21719;;;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;21067:25;;;;;;;:48;:25;;;;;;;7607:21719;-1:-1:-1;7607:21719:81;;-1:-1:-1;;;21067:48:81;;7607:21719;;;;;;21067:48;;;:::i;:::-;;27856:9;;21067:48;;;;;;;;;;;7607:21719;21149:29;;;7607:21719;21149:29;;:::i;:::-;7607:21719;;;;;;:::i;:::-;;;;21024:173;;7607:21719;27799:8;7607:21719;;;-1:-1:-1;;;21262:25:81;;7607:21719;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;21262:25;;;;;;;:45;:25;;;;;;;7607:21719;-1:-1:-1;7607:21719:81;;-1:-1:-1;;;21262:45:81;;7607:21719;;;;;;21262:45;;;:::i;:::-;;27856:9;;21262:45;;;;;;;;;;;7607:21719;21341:26;;;;:::i;:::-;7607:21719;;;;;;:::i;:::-;;;;21219:167;;7607:21719;;;;;;;:::i;:::-;1671:64:2;;;7607:21719:81;;;;;;:::i;:::-;;;;20988:608;;7607:21719;;;20988:608;;7607:21719;20988:608;;;;;3112:3;20988:608;;;;;;234:9:37;7607:21719:81;20988:608;;;;7607:21719;20988:608;;2670:7;20988:608;;;7607:21719;;;;;;;:::i;:::-;;;20956:679;7607:21719;20956:679;;234:9:37;7607:21719:81;;;;;;:::i;:::-;;;;234:9:37;;7607:21719:81;234:9:37;;;;21697:18:81;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;21945:33;;;;;7607:21719;;-1:-1:-1;;;21945:33:81;;-1:-1:-1;;;7607:21719:81;21945:33;;7607:21719;;;;;;;;;;;;21945:33;;;;;;;;234:9:37;-1:-1:-1;;21988:8:81;540:42:1;-1:-1:-1;;;;;7607:21719:81;;21988:33;;;;;7607:21719;;;;;;;;;;;21988:33;;7607:21719;234:9:37;;21988:33:81;7607:21719;;21988:33;;234:9:37;7607:21719:81;;;;;;;;234:9:37;7607:21719:81;;234:9:37;;;;;;;;;;;;;;;;;21988:33:81;;;;;;;;;;;;;;;;;;;234:9:37;7607:21719:81;;;;2348:20:55;;7607:21719:81;2348:20:55;;;7607:21719:81;;;;;;;;;:::i;:::-;2348:20:55;779:22:56;;2348:20:55;;;;;;:::i;:::-;7607:21719:81;2338:31:55;;7607:21719:81;;;;;;21988:33;;;;;:::i;:::-;7607:21719;;21988:33;;;234:9:37;;;;;;;;;7607:21719:81;234:9:37;;;;;;;;;;;;;;;:::i;:::-;7607:21719:81;;234:9:37;;;;;;;;;;;;;;;21945:33:81;;;;:::i;:::-;7607:21719;;21945:33;;;;234:9:37;7607:21719:81;;;;;;;:::i;:::-;;;;;;:::i;:::-;234:9:37;;:::i;:::-;;;;;:::i;:::-;;;;;;7607:21719:81;234:9:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21262:45:81;21341:26;21262:45;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:25;;;;;;;;;;;;;:::i;:::-;;;;21067:48;7607:21719;21067:48;;;;;21149:29;21067:48;;;;;;;;;;:::i;:::-;;;;;;;:25;;;;;;;;;;;;;:::i;:::-;;;;7607:21719;;;-1:-1:-1;;;7607:21719:81;;;;;;;;;;;;-1:-1:-1;;;7607:21719:81;;;;;;;;-1:-1:-1;;;7607:21719:81;;;;;;;;;;;-1:-1:-1;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7607:21719:81;;;;;;;27871:52;;;;7607:21719;27871:52;;7607:21719;27871:52;;;;;;7607:21719;27871:52;;;:::i;:::-;;;7607:21719;;;;540:42:1;27871:52:81;;;;7607:21719;;;;27871:52;;;-1:-1:-1;27871:52:81;;:43;;;;;;;;;;;;;:::i;:::-;;;;27856:11;;;;;7607:21719;27856:11;;7607:21719;27856:11;;;;;;7607:21719;27856:11;;;:::i;:::-;;;7607:21719;;;;540:42:1;;;27871:43:81;27856:11;;;;;-1:-1:-1;27856:11:81;;27799:25;7607:21719;27799:25;;;;7607:21719;27799:25;;;;;;;;;;:::i;:::-;;;;;;27546:38;;;27692:64;27546:38;;;:::i;:::-;;;;;7607:21719;;;;;;;;;;;;;;;;;:::i;:::-;;;17021:33;;;;;-1:-1:-1;;;;;17021:33:81;;;;;;;;;;;;;;;;;;;;;;;;;7607:21719;;17096:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17175:26;;;;:::i;:::-;7607:21719;;;;;;:::i;:::-;-1:-1:-1;;;;;7607:21719:81;;;;;17242:201;;;7607:21719;;;;;17404:24;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;17755:39;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17242:201;;7607:21719;17212:241;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;;:::i;:::-;;;;17494:187;;;;7607:21719;;;:::i;:::-;;17494:187;;7607:21719;17464:227;;;:::i;:::-;;;;;:::i;:::-;;17755:39;:::i;:::-;7607:21719;;;17828:42;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7607:21719;;;;;;;;17828:42;7607:21719;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;7607:21719:81;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2899:18:8;7607:21719:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;2416:18:8;7607:21719:81;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2416:18:8;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;-1:-1:-1;7607:21719:81;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;29275:42;7607:21719;23127:9;7607:21719;;;;:::i;:::-;;3156:10;29302:14;3156:10;7607:21719;29275:42;;:::i;:::-;7607:21719;;;;;;;;23185:8;7607:21719;;;;;;;;;23185:45;;;;7607:21719;;;;23185:45;;;;7607:21719;23185:45;;7607:21719;;;;;:::i;:::-;23185:45;;;;;;;;;;;;;;7607:21719;;;;;;;;;;;;;;;;;;23322:29;;;7607:21719;23322:29;;:::i;:::-;7607:21719;;;;;;;;;;23370:22;;;;;;;;;;;;;7607:21719;23370:26;;7607:21719;;23472:36;7607:21719;23428:9;7607:21719;;23472:36;;:::i;:::-;23428:81;;;;;;7607:21719;;;;;;;;;;;;;;;;;;23428:81;;7607:21719;23428:81;;7607:21719;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;23428:81;;;;;;;;;;;;;;;;;7607:21719;;;;;;;29275:42;7607:21719;23127:9;7607:21719;;;;:::i;:::-;;3156:10;29302:14;3156:10;7607:21719;29275:42;;:::i;:::-;7607:21719;;;;;;;;23185:8;7607:21719;;;;;23614:45;;;;;;;;;;7607:21719;23614:45;;7607:21719;;;;;:::i;:::-;23614:45;;;;;;;;;;;;;7607:21719;23614:74;;7607:21719;;23730:22;23783:66;23730:22;;;23722:51;23730:22;;23722:51;:::i;:::-;23791:32;23783:66;:::i;7607:21719::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7607:21719:81;;;;;23614:45;;;;;;;;;;;;;;;;:::i;:::-;;;7607:21719;;;;540:42:1;23614:45:81;;;;;;;;23428:81;;;;;;;;;;;;:::i;:::-;7607:21719;;23428:81;;;;;;;;;;;;7607:21719;;;;;;-1:-1:-1;;;7607:21719:81;;;;;;;;;;;;;-1:-1:-1;;;7607:21719:81;;;;;;;23370:22;;;;;;;;;;;;;;;;:::i;:::-;;;7607:21719;;;;540:42:1;23370:22:81;;;;;;;;;7607:21719;;;;;;;;;;-1:-1:-1;;;7607:21719:81;;;;;;;;23185:45;;;;;;;;;;;;;;;;;:::i;:::-;;;7607:21719;;;;540:42:1;23185:45:81;;;;;;;;;7607:21719;;;;;;;;;;;;;2592:26:8;7607:21719:81;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2592:26:8;7607:21719:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;28393:14;7607:21719;;:::i;:::-;28393:14;3156:10;-1:-1:-1;;;;;7607:21719:81;;;;28393:14;:::i;7607:21719::-;;;;;;;-1:-1:-1;;7607:21719:81;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3112:3;;;7607:21719;14659:43;;7607:21719;;;14725:29;;;;;;;-1:-1:-1;;;;;14725:29:81;;;;;;;;;;;;7607:21719;14725:29;;;;;7607:21719;;;;;;-1:-1:-1;;;;;3156:10:81;;14713:41;3156:10;;;14713:41;3156:10;7607:21719;;14775:28;;;;;;;-1:-1:-1;;;;;14775:28:81;;;;;;;;;;;;7607:21719;14775:28;;;;;7607:21719;;;;;;-1:-1:-1;;;;;3156:10:81;;14764:39;3156:10;;;14764:39;3156:10;7607:21719;;14824:21;;;;;;;-1:-1:-1;;;;;14824:21:81;;;;;;;;;;;;7607:21719;14824:21;;;;;7607:21719;;;;;;-1:-1:-1;;;;;3156:10:81;;14813:32;3156:10;;;14813:32;3156:10;7607:21719;;14866:23;;;;;;;-1:-1:-1;;;;;14866:23:81;;;;;;;;;;;;7607:21719;14866:23;;;;;;14855:34;3156:10;;-1:-1:-1;;;;;;3156:10:81;-1:-1:-1;;;;;7607:21719:81;;3156:10;;;7607:21719;;;;-1:-1:-1;;;;;7607:21719:81;;;14940:26;;:::i;:::-;14713:41;7607:21719;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;:::i;:::-;;;;;15007:191;;7607:21719;;;:::i;:::-;;15007:191;;7607:21719;14977:231;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;14764:39:81;7607:21719;;;;-1:-1:-1;;;;;7607:21719:81;;;;:::i;:::-;;;;;15249:189;;7607:21719;;;:::i;:::-;;15249:189;;7607:21719;15219:229;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;14813:32:81;7607:21719;;;;-1:-1:-1;;;;;7607:21719:81;;;;:::i;:::-;;;;;15489:189;;7607:21719;;;:::i;:::-;;15489:189;;7607:21719;15459:229;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;:::i;:::-;-1:-1:-1;;;;;7607:21719:81;;;;;15729:189;;7607:21719;;;:::i;:::-;;15729:189;;7607:21719;15699:229;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7607:21719:81;;16011:598;;7607:21719;16011:598;7607:21719;;;16011:598;;;:::i;:::-;7607:21719;;2420:2;16011:598;;7607:21719;;16011:598;;;3112:3;7607:21719;;16011:598;;3112:3;7607:21719;16011:598;;;3025:3;7607:21719;;16011:598;;3025:3;2670:7;7607:21719;16011:598;;7607:21719;16488:2;16011:598;;;3070:2;;7607:21719;;3070:2;:::i;:::-;7607:21719;;16011:598;;;3070:2;7607:21719;;15951:668;;;;;;;;;;-1:-1:-1;;;;;15951:668:81;;;;;;;;;;;;;:::i;:::-;;;7607:21719;15951:668;;;;;7607:21719;;;;;;3156:10;-1:-1:-1;;;;;3156:10:81;;15939:680;3156:10;;;15939:680;3156:10;;-1:-1:-1;;;;;3156:10:81;;14713:41;3156:10;;;14713:41;3156:10;;-1:-1:-1;;;;;3156:10:81;;14764:39;3156:10;;;14764:39;3156:10;;-1:-1:-1;;;;;3156:10:81;;14813:32;3156:10;;;14813:32;3156:10;-1:-1:-1;;;;;3156:10:81;;14855:34;3156:10;;;14855:34;3156:10;7607:21719;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;;;:::i;:::-;22275:19;;:::i;:::-;22320:32;22304:48;22320:32;;;:::i;22304:48::-;;22151:3;22415:19;7607:21719;;;;;:::i;:::-;22292:1;7607:21719;;;;1220:14:3;;;7607:21719:81;22415:19;:::i;7607:21719::-;;;;;;;;;;;;;;;;;;2747:18:8;7607:21719:81;;;;;;;;;2747:18:8;7607:21719:81;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;7607:21719:81;;;;;;;;;3040:16:8;7607:21719:81;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;;;;;26592:8;7607:21719;;;-1:-1:-1;;;26592:24:81;;;7607:21719;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;26592:24;;;;;;;;;;;7607:21719;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;26630:9;7607:21719;;26692:10;;26670:33;26692:10;26670:33;:::i;:::-;26630:74;;;;;;7607:21719;;;;;;;;;;;;;;26630:74;;;7607:21719;26630:74;;7607:21719;;;;;;:::i;:::-;26630:74;7607:21719;;;26630:74;;;;;;;;;;;;7607:21719;;;26592:8;7607:21719;;;;;;26722:24;;;;;;;;;;;;;;;;;7607:21719;;;;;;26722:41;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7607:21719:81;;;;;26722:24;;;;;;;;;;;;;;;;;:::i;:::-;;;7607:21719;;;;;;;;:::i;:::-;26722:24;;;;;;;;;26630:74;;;;;;;:::i;:::-;7607:21719;;26630:74;;;;;;7607:21719;;;;;;;;;;;;26592:24;;;;;;;;;;;;;;;;;:::i;:::-;;;7607:21719;;;;;;;:::i;:::-;26592:24;;;;;;;;;7607:21719;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19725:11;19753:12;19748:73;19774:3;7607:21719;;;;19767:5;;;;;7607:21719;;-1:-1:-1;3156:10:81;;;19793:17;3156:10;;;;;;;;;;;7607:21719;19793:17;;:::i;:::-;19774:3;7607:21719;;;;;;;;19753:12;;;7607:21719;-1:-1:-1;;;7607:21719:81;;;;;;;;3156:10;7607:21719;;;;;3156:10;;7607:21719;3156:10;7607:21719;3156:10;19767:5;;;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;;;;;:::i;:::-;26925:21;;7607:21719;;;:::i;:::-;-1:-1:-1;29302:14:81;3156:10;-1:-1:-1;;;;;7607:21719:81;3156:10;29275:42;;7607:21719;;29275:42;;:::i;:::-;7607:21719;;;;;;;;27027:9;7607:21719;;27027:40;;;;;;7607:21719;;;;;;;;;;;;27027:40;;;;;;;;;;7607:21719;27101:21;;29275:42;27101:21;;7607:21719;;;:::i;:::-;;29302:14;3156:10;7607:21719;29275:42;;:::i;:::-;7607:21719;;;;;;;;;;;;;;;27209:43;7607:21719;;27285:70;27308:26;;;;:::i;:::-;27293:41;27285:70;:::i;7607:21719::-;;;-1:-1:-1;;;7607:21719:81;;;;;;;;;;;;-1:-1:-1;;;7607:21719:81;;;;;;;;-1:-1:-1;;;7607:21719:81;;;;;;;;27027:40;;;29275:42;27027:40;;;:::i;:::-;;;;;7607:21719;;;;;;;;;;;;;;;;;;2272:16:8;7607:21719:81;;;;;;;;;2272:16:8;7607:21719:81;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;;;;;8254:41;7607:21719;;-1:-1:-1;;;;;7607:21719:81;;:::i;:::-;8053:1;7607:21719;;8053:1;8065:25;7607:21719;;;;;;;;8065:25;:::i;:::-;7607:21719;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3112:3;;;5349:58;;;7607:21719;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;2529:2;5289:466;;;7607:21719;2472:7;7607:21719;5289:466;;7607:21719;2670:7;5289:466;;;7607:21719;2420:2;7607:21719;5289:466;;3025:3;7607:21719;5289:466;;7607:21719;3025:3;7607:21719;5289:466;;3025:3;-1:-1:-1;;;;;7607:21719:81;;;8254:41;:::i;:::-;7607:21719;3156:10;8919:38;8814:82;-1:-1:-1;;;;;3156:10:81;;;;;8237:58;3156:10;;;8237:58;3156:10;;;8305:54;3156:10;;;8305:54;3156:10;;;8369:56;3156:10;;;8369:56;3156:10;;;8435:54;3156:10;;;8435:54;3156:10;;;8499:60;3156:10;;;8499:60;3156:10;;;8569:53;3156:10;;;8569:53;3156:10;;;8632:51;3156:10;;;8632:51;3156:10;8814:82;:::i;8919:38::-;7607:21719;3156:10;;;8907:50;3156:10;;;8907:50;3156:10;;;8967:55;3156:10;;;8967:55;3156:10;;;9032:53;3156:10;;;9032:53;3156:10;;;9095:48;3156:10;;;9095:48;3156:10;9153:46;3156:10;;;9153:46;3156:10;22304:48;22275:19;;:::i;:::-;7607:21719;;:::i;:::-;-1:-1:-1;7607:21719:81;;-1:-1:-1;;;779:22:56;;;480:2;;779:22;;695:118;;779:22;7607:21719:81;779:22:56;:::i;:::-;480:2;7607:21719:81;;;;;;:::i;:::-;2529:2;3112:3;;-1:-1:-1;;;;;719:84:56;;;480:2;;;7607:21719:81;719:84:56;;7607:21719:81;;;;;695:118:56;;;;;;;480:2;;7607:21719:81;;480:2:56;;7607:21719:81;480:2:56;;;;;;;;7607:21719:81;480:2:56;;;7607:21719:81;480:2:56;;;;:::i;:::-;695:118;779:22;;695:118;;;;;;:::i;:::-;7607:21719:81;;;;;;:::i;:::-;;3025:3;;837:51:56;;;7607:21719:81;22304:48;;;;;:::i;:::-;;3025:3;22415:19;7607:21719;;;;;:::i;:::-;8053:1;7607:21719;;;;1220:14:3;;;7607:21719:81;22415:19;:::i;:::-;7607:21719;;22445:21;;;;;;7607:21719;;-1:-1:-1;;;22445:21:81;;7607:21719;;22445:21;;7607:21719;8053:1;1220:14:3;;;7607:21719:81;22445:21;7607:21719;1220:14:3;7607:21719:81;22445:21;;;;;;;;;;7607:21719;;;;;;;;;:::i;:::-;22533:12;7607:21719;;22509:61;;7607:21719;22646:38;;;;;7607:21719;;-1:-1:-1;;;22646:38:81;;-1:-1:-1;;;7607:21719:81;22646:38;;7607:21719;22646:38;7607:21719;1220:14:3;7607:21719:81;22646:38;;;;;;;;;;;;;;;;7607:21719;-1:-1:-1;8435:54:81;540:42:1;7607:21719:81;;-1:-1:-1;;;22694:39:81;;540:42:1;;7607:21719:81;22694:39;;7607:21719;540:42:1;;;;;;;;7607:21719:81;;;;;540:42:1;;7607:21719:81;;;;22694:39;;;;;;;;7607:21719;22743:14;;;;;;;7607:21719;;;;;;;;;;;;;22743:14;;;;;;;;;;7607:21719;;;22694:39;;;;;;-1:-1:-1;22694:39:81;;;;;;:::i;:::-;;;22646:38;;;;;;;;;:::i;:::-;7607:21719;;22646:38;;;;;;;22445:21;;;;;;:::i;:::-;7607:21719;22445:21;;;;7607:21719;;;;;;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;:::o;:::-;;;-1:-1:-1;;;;;7607:21719:81;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;:::o;:::-;-1:-1:-1;;;;;7607:21719:81;;;;;;:::o;:::-;2420:2;7607:21719;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;:::o;:::-;;779:22:56;;;7607:21719:81;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;:::o;:::-;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;:::o;:::-;;;-1:-1:-1;;;;;7607:21719:81;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7607:21719:81;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;779:22:56;7607:21719:81;-1:-1:-1;;7607:21719:81;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;779:22:56;7607:21719:81;-1:-1:-1;;7607:21719:81;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;:::o;1671:64:2:-;;7607:21719:81;;;;1671:64:2;;;;:::o;1819:584::-;1873:7;7607:21719:81;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;7607:21719:81;;;;;;;2196:43:2;;;;7607:21719:81;;;1671:64:2;;;7607:21719:81;1671:64:2;;7607:21719:81;;2196:43:2;;;;;:::i;:::-;2086:175;1671:64;7607:21719:81;;2086:175:2;;1671:64;2196:43;2086:175;;7607:21719:81;;;;;;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;:::i;:::-;7607:21719:81;;;;;;;:::i;:::-;1671:64:2;;;;2196:43;1671:64;;;;2196:43;7607:21719:81;;;2312:27:2;;1671:64;;;;2312:27;2196:43;1671:64;2312:27;;1671:64;:::i;:::-;7607:21719:81;1671:64:2;;;7607:21719:81;;;;;;;17649:17;7607:21719;;;;;;;;;;;17649:17;-1:-1:-1;7607:21719:81;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;12894:18;7607:21719;;;;;;;;;;;12894:18;-1:-1:-1;7607:21719:81;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;15646:17;7607:21719;;;;;;;;;;;15646:17;-1:-1:-1;7607:21719:81;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;15886:17;7607:21719;;;;;;;;;;;15886:17;-1:-1:-1;7607:21719:81;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7607:21719:81;;-1:-1:-1;7607:21719:81;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;3156:10;7607:21719;;3156:10;;;;;;:::o;:::-;7607:21719;;;;3156:10;;;;;7607:21719;3156:10;;7607:21719;;17475:1;3156:10;;;;;;;:::o;:::-;7607:21719;;20141:1;3156:10;;;;;;;:::o;:::-;7607:21719;;19207:1;3156:10;;;;;;;:::o;:::-;7607:21719;;10818:1;3156:10;;;;;;;:::o;:::-;7607:21719;;11057:1;3156:10;;;;;;;:::o;7607:21719::-;;;;;;;:::i;:::-;1671:64:2;7607:21719:81;;-1:-1:-1;7607:21719:81;;;;:::o;2420:2::-;7607:21719;;;;;;:::i;:::-;2420:2;7607:21719;2420:2;-1:-1:-1;2420:2:81;;-1:-1:-1;2420:2:81;;;;;;:::o;3070:::-;;;;;;;;:::o;:::-;;-1:-1:-1;3070:2:81;;;:::o;6696:907::-;7607:21719;;;;;;:::i;:::-;;;:::i;:::-;;;3070:2;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2670:7;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3112:3;;;7607:21719;6967:58;;7607:21719;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7607:21719:81;;6906:666;;7607:21719;6906:666;;3070:2;2472:7;7607:21719;6906:666;;7607:21719;;;6906:666;;3112:3;2529:2;7607:21719;6906:666;;3112:3;2420:2;7607:21719;6906:666;;3025:3;;7607:21719;6906:666;;3025:3;6906:666;;7607:21719;6906:666;;3070:2;6906:666;;3070:2;7607:21719;6696:907::o;7607:21719::-;;;;;;;;;:::i;:::-;17199:1;7607:21719;;;-1:-1:-1;7607:21719:81;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3070:2;;;:::i;:::-;7607:21719;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;9261:2119;;7607:21719;;9409:24;;;;;;;-1:-1:-1;;;;;9409:24:81;;;;;;;;;;;;;;;;;;7607:21719;;9473:25;;;;;;;-1:-1:-1;;;;;9473:25:81;;;;;;;;;;;;9409:24;9473:25;;;;;7607:21719;;9536:24;;;;;;;-1:-1:-1;;;;;9536:24:81;;;;;;;;;;;;9409;9536;;;;;7607:21719;;9604:27;;;;;;;-1:-1:-1;;;;;9604:27:81;;;;;;;;;;;;9409:24;9604:27;;;;;;7607:21719;;9666:21;;;;;;;-1:-1:-1;;;;;9666:21:81;;;;;;;;;;;;9409:24;9666:21;;;;;;7607:21719;;9724:23;;;;;;;-1:-1:-1;;;;;9724:23:81;;;;;;;;;;;;9409:24;9724:23;;;;;;7607:21719;;;;;;:::i;:::-;9824:1;7607:21719;;9409:24;7607:21719;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;9409:24;7607:21719;9869:187;;7607:21719;;;;;;10024:17;7607:21719;;;;;;10024:17;9409:24;7607:21719;;;9409:24;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9869:187;;7607:21719;9837:229;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;;:::i;:::-;;;;9409:24;7607:21719;10109:189;;7607:21719;;;;;;10265:18;7607:21719;;;;;;10265:18;9409:24;7607:21719;;;9409:24;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10109:189;;7607:21719;10077:231;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;;:::i;:::-;;;;9409:24;7607:21719;10351:187;;7607:21719;;;;;;10506:17;7607:21719;;;;;;10506:17;9409:24;7607:21719;;;9409:24;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10351:187;;7607:21719;10319:229;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;;:::i;:::-;;;;9409:24;7607:21719;10591:193;;7607:21719;;;;;;10749:20;7607:21719;;;;;;10749:20;9409:24;7607:21719;;;9409:24;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10591:193;;7607:21719;10559:235;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;;:::i;:::-;;;;9409:24;7607:21719;10837:186;;7607:21719;;;;;;10992:16;7607:21719;;;;;;10992:16;9409:24;7607:21719;;;9409:24;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10837:186;;7607:21719;10805:228;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;;:::i;:::-;;;;9409:24;7607:21719;11076:187;;7607:21719;;;;;;11231:17;7607:21719;;;;;;11231:17;9409:24;7607:21719;;;9409:24;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11076:187;;7607:21719;11044:229;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;11301:40;;;;;;;;;-1:-1:-1;;;;;11301:40:81;;;;;7607:21719;11301:40;;;;7607:21719;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9409:24;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;11301:40;;9409:24;11301:40;;;;;7607:21719;3156:10;-1:-1:-1;;;;;3156:10:81;;11284:57;3156:10;;;11284:57;3156:10;9261:2119;:::o;7607:21719::-;779:22:56;;;;;;7607:21719:81;779:22:56;7607:21719:81;;779:22:56;;7607:21719:81;779:22:56;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;3070:2;;;;;7607:21719;;;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3070:2;;;;:::i;:::-;7607:21719;;;:::o;12246:1518::-;7607:21719;;12405:29;;;;;;;;;;-1:-1:-1;;;;;12405:29:81;;;;;;;;;;;;;;;;;;;;7607:21719;;12476:28;;;;;;;;-1:-1:-1;;;;;12476:28:81;;;;;;;;;;;;;;;;;;;7607:21719;;12541:23;;;;;;;;-1:-1:-1;;;;;12541:23:81;;;;;;;;;;;;;;;;;;;;7607:21719;;12599:21;;;;;;;;-1:-1:-1;;;;;12599:21:81;;;;;;;;;;;;;;;;;;;;12671:26;;:::i;:::-;7607:21719;;;;;;;:::i;:::-;-1:-1:-1;;;;;7607:21719:81;;;12738:189;;;7607:21719;;;;;:::i;:::-;;12738:189;;7607:21719;12708:229;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;:::i;:::-;-1:-1:-1;;;;;7607:21719:81;;;12738:189;12978:187;;7607:21719;;;;;:::i;:::-;;12978:187;;7607:21719;12948:227;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;:::i;:::-;;;;;;;;;13216:187;12738:189;13216:187;;7607:21719;;;;;12738:189;13371:17;7607:21719;;;;;;13371:17;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13216:187;;7607:21719;13186:227;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;;;;;:::i;:::-;;;;;;;;;13454:186;12738:189;13454:186;;7607:21719;;;;;12738:189;13609:16;7607:21719;;;;;;13609:16;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13454:186;;7607:21719;13424:226;;;:::i;:::-;;;;;:::i;:::-;;7607:21719;;13690:42;;;;;;;;;-1:-1:-1;;;;;13690:42:81;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;13743:14;12246:1518;:::o;7607:21719::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12738:189;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12738:189;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12738:189;7607:21719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12738:189;7607:21719;;;;;;;;;;;;;;;;;;;;;;12599:21;-1:-1:-1;;;7607:21719:81;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;22292:1;7607:21719;;;-1:-1:-1;7607:21719:81;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;1220:14:3:-;;;-1:-1:-1;;;;;7607:21719:81;;;;;;1220:14:3:o;540:42:1:-;;;;;;;;;;;;1671:64:2;;;:::i;:::-;779:22:56;-1:-1:-1;;540:42:1;;;;;7607:21719:81;;;;;;:::i;:::-;540:42:1;;;;;;;;;;;;;:::o;581:314:56:-;-1:-1:-1;;;;;581:314:56;7607:21719:81;;:::i;:::-;;695:118:56;7607:21719:81;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;779:22:56;;;480:2;;779:22;;;;;:::i;:::-;480:2;7607:21719:81;;;;;;:::i;:::-;2529:2;3112:3;;-1:-1:-1;;;;;779:22:56;719:84;;480:2;;;719:84;;;7607:21719:81;;;;;695:118:56;;;779:22;695:118;;;480:2;;7607:21719:81;480:2:56;;;7607:21719:81;480:2:56;;7607:21719:81;480:2:56;;;;7607:21719:81;480:2:56;;;;;;;;;:::i;:::-;695:118;779:22;;695:118;;;;;;:::i;:::-;7607:21719:81;;;;;:::i;:::-;438:1:56;3025:3:81;;779:22:56;837:51;;7607:21719:81;581:314:56;:::o;7607:21719:81:-;;;-1:-1:-1;;;;;7607:21719:81;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1220:14:3;;;;;:::i;:::-;7607:21719:81;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7607:21719:81;;;;;;:::o;234:9:37:-;7607:21719:81;;;;;;:::i;:::-;234:9:37;7607:21719:81;;:::i;:::-;234:9:37;;;7607:21719:81;;:::i;:::-;234:9:37;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;7607:21719:81;;;234:9:37;;;;;;;;;;;:::i;:::-;;;;;;;;;7607:21719:81;-1:-1:-1;;;;;234:9:37;;;;7607:21719:81;234:9:37;;;7607:21719:81;;;;234:9:37;;;;7607:21719:81;234:9:37;;;7607:21719:81;234:9:37;;;;;;;;;;;;;;:::i;:::-;;;;;;;7607:21719:81;234:9:37;;7607:21719:81;;234:9:37;;7607:21719:81;234:9:37;:::o;7607:21719:81:-;;;;:::o;:::-;;;-1:-1:-1;;;7607:21719:81;;;;;;;;;;;;-1:-1:-1;;;7607:21719:81;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;7607:21719:81;;;;;;;;;;;;-1:-1:-1;;;7607:21719:81;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;7607:21719:81;;;;;;;;;;;;-1:-1:-1;;;7607:21719:81;;;;;;;27368:891;-1:-1:-1;;;;;7607:21719:81;;;;27368:891;;;27546:38;;;;;7607:21719;;;;;;;;;27546:38;;27582:1;7607:21719;27582:1;;27546:38;;;;;;;7607:21719;27546:38;;;;;;;;;;;;;;27368:891;27692:64;;;;;;;:::i;:::-;7607:21719;;;;;;;;;27799:8;7607:21719;;;;;;;;;;;27799:25;;;;;;;;;;;;;27368:891;27856:9;;7607:21719;;;;;;;;27856:11;;;;7607:21719;;27856:11;;;;27546:38;27856:11;;7607:21719;;;;;;;:::i;:::-;27856:11;;;;;;;;;;;;;;;;;27368:891;-1:-1:-1;7607:21719:81;;-1:-1:-1;;;27871:43:81;;7607:21719;;;;;;27871:43;;7607:21719;27546:38;27871:43;;;:::i;:::-;;;;;;;;;;;;7607:21719;27871:43;;;;;;;;;27368:891;7607:21719;;;27871:52;;;;;;;;;27546:38;27871:52;;7607:21719;;;;;;:::i;:::-;27871:52;;;;;;;;;;;;;27368:891;27856:67;;7607:21719;;28034:19;28026:48;28084:46;28034:19;28140:49;28034:19;;;28026:48;:::i;28140:49::-;7607:21719;;;;;;28207:23;7607:21719;28207:23;7607:21719;;27368:891;;:::o;7607:21719::-;;;;;;;;;;;27546:38;7607:21719;;;;;;;;-1:-1:-1;;;7607:21719:81;;;;;;;;-1:-1:-1;;;7607:21719:81;;27546:38;7607:21719;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7607:21719:81;;;;;;;27871:52;;;;;;;;;;;;;;;;;:::i;:::-;;;7607:21719;;;;540:42:1;27871:52:81;;;;;;;;;;7607:21719;;;;;;;;;27871:43;;;;;;;;;;;;;;:::i;:::-;;;;;;7607:21719;;;;;;;;;27856:11;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7607:21719;;;;540:42:1;;;;27871:43:81;27856:11;;;;;;;;7607:21719;;;;;;;;;27799:25;;;;;;;;;;;;;;:::i;:::-;;;;;27546:38;;;27692:64;27546:38;;;;;:::i;:::-;;;;;;;;7607:21719;;;;;;;;;28421:698;;7607:21719;;:::i;:::-;;;;;;;;;;3156:10;;-1:-1:-1;;;;;3156:10:81;;;;28593:42;3156:10;;;28593:42;3156:10;;;28645:44;3156:10;;;28645:44;3156:10;28699:42;3156:10;;;28699:42;3156:10;7607:21719;;;;;;;;;;28779:25;;-1:-1:-1;28779:25:81;-1:-1:-1;28779:25:81;;;;;;;;;;:55;:25;;;;;;;;28421:698;-1:-1:-1;7607:21719:81;;-1:-1:-1;;;28779:55:81;;7607:21719;28779:40;;7607:21719;;;;;28779:25;:55;;;:::i;:::-;;;;;;;;;;;;;;;28421:698;7607:21719;;;;28699:42;7607:21719;;;;;;;;;;28885:17;;;;;;;;;28779:25;28885:17;;7607:21719;;;;;;:::i;:::-;28885:17;;;;;;;;;;;;;;;;28421:698;7607:21719;;;;;;;;;;;28868:35;;28779:25;28868:35;;7607:21719;28868:35;;;;;;;;;;;28421:698;28935:9;;;;;;7607:21719;;;;-1:-1:-1;;;;;28984:19:81;7607:21719;28984:19;;;;7607:21719;;29017:27;;;;7607:21719;;29058:17;;;7607:21719;29089:13;;7607:21719;;;;;;;;28914:198;;;;;;28421:698;:::o;28868:35::-;;;;;;;;;;;;;:::i;:::-;;;7607:21719;;;;;;;;;;-1:-1:-1;;;;;7607:21719:81;;;;;;;;;;;;;;;;;;;;:::i;:::-;540:42:1;;7607:21719:81;;;;;540:42:1;7607:21719:81;;;;;;;540:42:1;7607:21719:81;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;28868:35;;;;;7607:21719;;;;;;;;;;;;28885:17;;;;;;;;;;;;;;;;;;:::i;:::-;;;7607:21719;;;;540:42:1;;;28885:17:81;;;;;;;;;7607:21719;;;;;;;;;28779:55;7607:21719;28779:55;;;;;;;;;;;;;:::i;:::-;;;;:25;;;;;;;;;;;;;;:::i;:::-;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":91154,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":60210,"length":20},{"start":62530,"length":20},{"start":87101,"length":20}]},"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":51346,"length":20},{"start":52117,"length":20}]},"src/lib/LibStaking.sol":{"LibStaking":[{"start":104948,"length":20},{"start":135262,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":71189,"length":20},{"start":86674,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":9143,"length":20},{"start":9223,"length":20},{"start":9308,"length":20},{"start":9513,"length":20},{"start":9679,"length":20},{"start":26558,"length":20},{"start":27362,"length":20},{"start":36331,"length":20},{"start":51015,"length":20},{"start":58429,"length":20},{"start":59006,"length":20},{"start":59900,"length":20},{"start":62114,"length":20},{"start":62583,"length":20},{"start":67065,"length":20},{"start":67205,"length":20},{"start":68206,"length":20},{"start":70854,"length":20},{"start":70956,"length":20},{"start":71396,"length":20},{"start":71474,"length":20},{"start":71579,"length":20},{"start":71735,"length":20},{"start":73475,"length":20},{"start":73560,"length":20},{"start":78782,"length":20},{"start":81625,"length":20},{"start":86494,"length":20},{"start":90555,"length":20},{"start":90874,"length":20},{"start":103772,"length":20},{"start":128349,"length":20}]}}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","addStake(uint256,address)":"2d49aa1c","addValidator(address)":"4d238c8e","addValidator(address,uint256)":"fc6c1f02","createGatewayDiamond(((uint64,address[]),uint256,uint256,uint256,uint8,(uint256,address,bytes)[],uint16))":"cfebf300","createMockedSubnetActorWithGateway(address)":"951759c9","createSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8))":"b0ed3c00","createSubnetActor(address,uint8,uint256,uint64,uint64,uint8)":"a0aaa285","createSubnetActor(address,uint8,uint256,uint64,uint64,uint8,uint8,uint16)":"5c2c2fed","createSubnetActorDiamondWithFaucets(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8),address,address)":"b64544ec","createSubnetRegistry((address,address,address,bytes4[],bytes4[]))":"c33dd9d5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","fund(address,uint256)":"7b1837de","getSubnet(address)":"dd784974","getSubnetGW(address,address)":"87105557","join(address,bytes)":"d8d52713","registerSubnet(uint256,address)":"63323eb8","registerSubnetGW(uint256,address,address)":"fbfb8927","release(uint256)":"37bdc99b","reward(uint256)":"a9fb763c","setUp()":"0a9254e4","setupValidators()":"9c821dc6","setupWhiteListMethod(address,address)":"9b211080","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","totalWeight(uint256[])":"30dd2c45"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subnetRegistryAddress\",\"type\":\"address\"}],\"name\":\"SubnetRegistryCreated\",\"type\":\"event\"},{\"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\":[{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"addValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"}],\"name\":\"addValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"networkName\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"msgFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"genesisValidators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"}],\"internalType\":\"struct GatewayDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createGatewayDiamond\",\"outputs\":[{\"internalType\":\"contract GatewayDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"gw\",\"type\":\"address\"}],\"name\":\"createMockedSubnetActorWithGateway\",\"outputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"_consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_checkPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"_majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"_permissionMode\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"_activeValidatorsLimit\",\"type\":\"uint16\"}],\"name\":\"createSubnetActor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"_consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_checkPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"_majorityPercentage\",\"type\":\"uint8\"}],\"name\":\"createSubnetActor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createSubnetActor\",\"outputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"getterFaucet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"managerFaucet\",\"type\":\"address\"}],\"name\":\"createSubnetActorDiamondWithFaucets\",\"outputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"getterFacet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"managerFacet\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetGetterSelectors\",\"type\":\"bytes4[]\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetManagerSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct SubnetRegistryDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createSubnetRegistry\",\"outputs\":[{\"internalType\":\"contract SubnetRegistryDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"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\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"funderAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fundAmount\",\"type\":\"uint256\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"}],\"name\":\"getSubnet\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"enum Status\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"},{\"internalType\":\"contract GatewayDiamond\",\"name\":\"gw\",\"type\":\"address\"}],\"name\":\"getSubnetGW\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"enum Status\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"pubkey\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"}],\"name\":\"registerSubnet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"},{\"internalType\":\"contract GatewayDiamond\",\"name\":\"gw\",\"type\":\"address\"}],\"name\":\"registerSubnetGW\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"releaseAmount\",\"type\":\"uint256\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"reward\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setupValidators\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"}],\"name\":\"setupWhiteListMethod\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"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\":\"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\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"weights\",\"type\":\"uint256[]\"}],\"name\":\"totalWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"sum\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/IntegrationTestBase.sol\":\"IntegrationTestBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x1771042e416900276fc557c71365bcb7a470c46378109feae5813fd2df1f6cdd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5c02c7b8141cade572031ce857f0c66f8bf33ef9627c1c2c849532489334f095\",\"dweb:/ipfs/QmbM5n1rm9ZzoX9P22LT1xfaxqjVHCsMkPAactq5CYMjyt\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b\",\"dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21\",\"dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xe5c934c38631fc852b2d818a5234f6514c172311218b890a6fc5fd797f92dec9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://180a99f9ae7f52c07efd8d50c12562889661cc0a8d2e1f6e8dd10e8ef399193e\",\"dweb:/ipfs/QmNoscfa82rSeb6WXcFhj5GJ5iNmiMGmphQf3SLkbXZEeu\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0x4517792d005bd1b3e1a0bea06af04f20119222fffffbc6b310522d820be83369\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ef8859a2e7e61a15776c6110f4183fd62099a34a2bc16d33c09b37f220ce3673\",\"dweb:/ipfs/Qme38CS7qv8tCFWfYCMUcZvBnF63wf5E1pzGmG4kYjhoh1\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x5a8e1e7961e424e04b21c3aa85a2624e0996d7d401e8f9759239c09eac6c3cd2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d1083fcdfd0489cad22a516b7f551d08dea47d95a4a25f24b1aa3dd9b01a0501\",\"dweb:/ipfs/QmdxhTnQbWsxMCawiBL1mow2q8nXP5XPXr7KAbi5FxAK2W\"]},\"src/gateway/GatewayRouterFacet.sol\":{\"keccak256\":\"0x409518aa2f9f3df22be447bdede6c4bdff2535be7a5209c997725cd6fc77c00e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b337abc4fe880c91eca25d1312fe6d1f2f6f9e95d564a9aecaa553d215d1422b\",\"dweb:/ipfs/QmQoT3xpE9QJPvcmXdpSkkYsSWew6qBMqreTkEvk9pxn64\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14\",\"dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7\",\"dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2\",\"dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x96a4183d613f1cfefc19a6032361910d8d06ba68e14f2c26c7ed058ab9116bc4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://330a52b5ecb618b4846ecb04da3ee1109149228ccf05a2e098a87750ae4dd82e\",\"dweb:/ipfs/QmNY8kSJpHA238pR9dSbXFLw5D5WzfFj9pHqe8DQ2GmSuq\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c\",\"dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x7e36a89eb829f018acd7e8877a8a1b93bc939e87467700846741cda033432d99\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0f4db114142828d91b8ac120269a3de36390e63f3e5c0d27a821bdbad7d77f0\",\"dweb:/ipfs/QmYZAiaWWPATDrtF3MFoxdcBkmwMacFrjByFNb3hPeLDo6\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0x957c018167e9314422d52f4817e22b6a72f3d5651277579c62266375f95cc8aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e0b2f6f034bff2e50a6552b8963d7a193fd68da3aa38342127ec25ec1fd950b8\",\"dweb:/ipfs/QmcLWq8bWeU2D3wS9mVmxNixZa25uYg4WB63CfdrC1qboT\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x754f60bfb99884f3347c68fd063a18a8c80bcbdaf848391803d89654cdd97aef\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ed97511b421373b8e94222d825568f9c2a3a4e6ff2d9ab4f3f48fe1e9e3a8ba9\",\"dweb:/ipfs/QmadhEoTUMstJtS1M7Gzdz3Df1kEs1C7u7Mk2v4x6PDy7H\"]},\"test/mocks/SubnetActor.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"subnetRegistryAddress","type":"address","indexed":true}],"type":"event","name":"SubnetRegistryCreated","anonymous":false},{"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":[{"internalType":"uint256","name":"stakeAmount","type":"uint256"},{"internalType":"address","name":"subnetAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addStake"},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addValidator"},{"inputs":[{"internalType":"address","name":"validator","type":"address"},{"internalType":"uint256","name":"weight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addValidator"},{"inputs":[{"internalType":"struct GatewayDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"networkName","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"bottomUpCheckPeriod","type":"uint256"},{"internalType":"uint256","name":"minCollateral","type":"uint256"},{"internalType":"uint256","name":"msgFee","type":"uint256"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"struct Validator[]","name":"genesisValidators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"}]}],"stateMutability":"nonpayable","type":"function","name":"createGatewayDiamond","outputs":[{"internalType":"contract GatewayDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"gw","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createMockedSubnetActorWithGateway","outputs":[{"internalType":"contract SubnetActorDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"_consensus","type":"uint8"},{"internalType":"uint256","name":"_minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"_minValidators","type":"uint64"},{"internalType":"uint64","name":"_checkPeriod","type":"uint64"},{"internalType":"uint8","name":"_majorityPercentage","type":"uint8"},{"internalType":"enum PermissionMode","name":"_permissionMode","type":"uint8"},{"internalType":"uint16","name":"_activeValidatorsLimit","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActor"},{"inputs":[{"internalType":"address","name":"_ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"_consensus","type":"uint8"},{"internalType":"uint256","name":"_minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"_minValidators","type":"uint64"},{"internalType":"uint64","name":"_checkPeriod","type":"uint64"},{"internalType":"uint8","name":"_majorityPercentage","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActor"},{"inputs":[{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"}]}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActor","outputs":[{"internalType":"contract SubnetActorDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"}]},{"internalType":"address","name":"getterFaucet","type":"address"},{"internalType":"address","name":"managerFaucet","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActorDiamondWithFaucets","outputs":[{"internalType":"contract SubnetActorDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetRegistryDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"gateway","type":"address"},{"internalType":"address","name":"getterFacet","type":"address"},{"internalType":"address","name":"managerFacet","type":"address"},{"internalType":"bytes4[]","name":"subnetGetterSelectors","type":"bytes4[]"},{"internalType":"bytes4[]","name":"subnetManagerSelectors","type":"bytes4[]"}]}],"stateMutability":"nonpayable","type":"function","name":"createSubnetRegistry","outputs":[{"internalType":"contract SubnetRegistryDiamond","name":"","type":"address"}]},{"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":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"funderAddress","type":"address"},{"internalType":"uint256","name":"fundAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fund"},{"inputs":[{"internalType":"address","name":"subnetAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getSubnet","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"enum Status","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"subnetAddress","type":"address"},{"internalType":"contract GatewayDiamond","name":"gw","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getSubnetGW","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"enum Status","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"validatorAddress","type":"address"},{"internalType":"bytes","name":"pubkey","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"join"},{"inputs":[{"internalType":"uint256","name":"collateral","type":"uint256"},{"internalType":"address","name":"subnetAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerSubnet"},{"inputs":[{"internalType":"uint256","name":"collateral","type":"uint256"},{"internalType":"address","name":"subnetAddress","type":"address"},{"internalType":"contract GatewayDiamond","name":"gw","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerSubnetGW"},{"inputs":[{"internalType":"uint256","name":"releaseAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"release"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"reward"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setupValidators","outputs":[{"internalType":"struct FvmAddress[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"address[]","name":"addresses","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"src","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setupWhiteListMethod","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"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":"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[]"}]},{"inputs":[{"internalType":"uint256[]","name":"weights","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"totalWeight","outputs":[{"internalType":"uint256","name":"sum","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"IntegrationTestBase"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x1771042e416900276fc557c71365bcb7a470c46378109feae5813fd2df1f6cdd","urls":["bzz-raw://5c02c7b8141cade572031ce857f0c66f8bf33ef9627c1c2c849532489334f095","dweb:/ipfs/QmbM5n1rm9ZzoX9P22LT1xfaxqjVHCsMkPAactq5CYMjyt"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87","urls":["bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b","dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140","urls":["bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21","dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xe5c934c38631fc852b2d818a5234f6514c172311218b890a6fc5fd797f92dec9","urls":["bzz-raw://180a99f9ae7f52c07efd8d50c12562889661cc0a8d2e1f6e8dd10e8ef399193e","dweb:/ipfs/QmNoscfa82rSeb6WXcFhj5GJ5iNmiMGmphQf3SLkbXZEeu"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0x4517792d005bd1b3e1a0bea06af04f20119222fffffbc6b310522d820be83369","urls":["bzz-raw://ef8859a2e7e61a15776c6110f4183fd62099a34a2bc16d33c09b37f220ce3673","dweb:/ipfs/Qme38CS7qv8tCFWfYCMUcZvBnF63wf5E1pzGmG4kYjhoh1"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x5a8e1e7961e424e04b21c3aa85a2624e0996d7d401e8f9759239c09eac6c3cd2","urls":["bzz-raw://d1083fcdfd0489cad22a516b7f551d08dea47d95a4a25f24b1aa3dd9b01a0501","dweb:/ipfs/QmdxhTnQbWsxMCawiBL1mow2q8nXP5XPXr7KAbi5FxAK2W"],"license":"UNLICENSED"},"src/gateway/GatewayRouterFacet.sol":{"keccak256":"0x409518aa2f9f3df22be447bdede6c4bdff2535be7a5209c997725cd6fc77c00e","urls":["bzz-raw://b337abc4fe880c91eca25d1312fe6d1f2f6f9e95d564a9aecaa553d215d1422b","dweb:/ipfs/QmQoT3xpE9QJPvcmXdpSkkYsSWew6qBMqreTkEvk9pxn64"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3","urls":["bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14","dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d","urls":["bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7","dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c","urls":["bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2","dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x96a4183d613f1cfefc19a6032361910d8d06ba68e14f2c26c7ed058ab9116bc4","urls":["bzz-raw://330a52b5ecb618b4846ecb04da3ee1109149228ccf05a2e098a87750ae4dd82e","dweb:/ipfs/QmNY8kSJpHA238pR9dSbXFLw5D5WzfFj9pHqe8DQ2GmSuq"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad","urls":["bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c","dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x7e36a89eb829f018acd7e8877a8a1b93bc939e87467700846741cda033432d99","urls":["bzz-raw://d0f4db114142828d91b8ac120269a3de36390e63f3e5c0d27a821bdbad7d77f0","dweb:/ipfs/QmYZAiaWWPATDrtF3MFoxdcBkmwMacFrjByFNb3hPeLDo6"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0x957c018167e9314422d52f4817e22b6a72f3d5651277579c62266375f95cc8aa","urls":["bzz-raw://e0b2f6f034bff2e50a6552b8963d7a193fd68da3aa38342127ec25ec1fd950b8","dweb:/ipfs/QmcLWq8bWeU2D3wS9mVmxNixZa25uYg4WB63CfdrC1qboT"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x754f60bfb99884f3347c68fd063a18a8c80bcbdaf848391803d89654cdd97aef","urls":["bzz-raw://ed97511b421373b8e94222d825568f9c2a3a4e6ff2d9ab4f3f48fe1e9e3a8ba9","dweb:/ipfs/QmadhEoTUMstJtS1M7Gzdz3Df1kEs1C7u7Mk2v4x6PDy7H"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActor.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":54009,"exportedSymbols":{"AddressShouldBeValidator":[36936],"AlreadyRegisteredSubnet":[36938],"BatchAlreadyExists":[36948],"BatchNotCreated":[36956],"BatchWithNoMessages":[36976],"BottomUpCheckpoint":[48410],"CannotConfirmFutureChanges":[36940],"CannotFindSubnet":[37088],"CannotReleaseZero":[36942],"CannotSendCrossMsgToItself":[36944],"CheckpointAlreadyExists":[36946],"CheckpointNotCreated":[36954],"CollateralIsZero":[36958],"ConsensusType":[36918],"CrossMsg":[48452],"CrossMsgHelper":[40328],"DSTest":[3720],"DiamondCutFacet":[36477],"DiamondLoupeFacet":[36914],"DuplicatedGenesisValidator":[37098],"EMPTY_BYTES":[36435],"EmptyAddress":[36960],"FacetCannotBeZero":[37084],"FailedAddIncompleteQuorum":[36962],"FailedAddSignatory":[36964],"FailedRemoveIncompleteQuorum":[36966],"FilAddress":[1428],"FvmAddress":[48476],"FvmAddressHelper":[40509],"GatewayCannotBeZero":[36968],"GatewayDiamond":[35759],"GatewayGetterFacet":[37869],"GatewayManagerFacet":[38359],"GatewayMessengerFacet":[38674],"GatewayRouterFacet":[39706],"IDiamond":[39732],"IPCAddress":[48687],"IntegrationTestBase":[54008],"InvalidActorAddress":[36970],"InvalidBatchEpoch":[36974],"InvalidBatchSource":[36980],"InvalidCheckpointEpoch":[36972],"InvalidCheckpointSource":[36978],"InvalidCollateral":[36984],"InvalidConfigurationNumber":[36986],"InvalidCrossMsgDstSubnet":[36988],"InvalidCrossMsgFromSubnet":[36990],"InvalidCrossMsgNonce":[36992],"InvalidCrossMsgValue":[36994],"InvalidFederationPayload":[37096],"InvalidMajorityPercentage":[36996],"InvalidPowerScale":[36998],"InvalidPublicKeyLength":[37010],"InvalidRetentionHeight":[37000],"InvalidSignature":[37002],"InvalidSignatureErr":[37006],"InvalidSignatureLength":[37008],"InvalidSubmissionPeriod":[37012],"InvalidSubnet":[37014],"InvalidSubnetActor":[36982],"METHOD_SEND":[36441],"MaxMsgsPerBatchExceeded":[36950],"MethodNotAllowed":[37094],"NoCollateralToWithdraw":[37016],"NoRewardToWithdraw":[37018],"NoValidatorsInSubnet":[37020],"NotAllValidatorsHaveLeft":[37022],"NotAuthorized":[37026],"NotEmptySubnetCircSupply":[37028],"NotEnoughBalance":[37030],"NotEnoughBalanceForRewards":[37032],"NotEnoughCollateral":[37034],"NotEnoughFee":[37036],"NotEnoughFunds":[37038],"NotEnoughFundsToRelease":[37040],"NotEnoughGenesisValidators":[37100],"NotEnoughSubnetCircSupply":[37042],"NotEnoughValidatorsInSubnet":[37044],"NotGateway":[37046],"NotOwnerOfPublicKey":[37048],"NotRegisteredSubnet":[37050],"NotStakedBefore":[37052],"NotSystemActor":[37054],"NotValidator":[37058],"OldConfigurationNumber":[37060],"PQDoesNotContainAddress":[37062],"PQEmpty":[37064],"ParentFinality":[48396],"ParentFinalityAlreadyCommitted":[37066],"PermissionMode":[48648],"PostboxNotExist":[37068],"QuorumAlreadyProcessed":[36952],"RegisterSubnetFacet":[51075],"SignatureReplay":[37070],"Status":[36932],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[48469],"StorableMsgHelper":[46265],"Subnet":[48574],"SubnetActorDiamond":[36177],"SubnetActorGetterFacet":[49325],"SubnetActorManagerFacet":[50947],"SubnetActorManagerFacetMock":[56069],"SubnetAlreadyBootstrapped":[37082],"SubnetAlreadyKilled":[37072],"SubnetGetterFacet":[51313],"SubnetID":[48557],"SubnetIDHelper":[46876],"SubnetNotActive":[37074],"SubnetNotFound":[37076],"SubnetRegistryDiamond":[36415],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[51670],"TestParams":[51469],"TestRegistry":[51537],"TestSubnetActor":[51792],"TestUtils":[55168],"UnknownSubnet":[37090],"Validator":[48694],"Vm":[14222],"WithdrawExceedingCollateral":[37078],"WrongGateway":[37086],"ZeroMembershipWeight":[37080],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:29281:81","nodes":[{"id":51315,"nodeType":"PragmaDirective","src":"46:23:81","nodes":[],"literals":["solidity","0.8",".19"]},{"id":51316,"nodeType":"ImportDirective","src":"71:28:81","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":51317,"nodeType":"ImportDirective","src":"100:36:81","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":51318,"nodeType":"ImportDirective","src":"137:37:81","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":37101,"symbolAliases":[],"unitAlias":""},{"id":51321,"nodeType":"ImportDirective","src":"176:72:81","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36442,"symbolAliases":[{"foreign":{"id":51319,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36435,"src":"184:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51320,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"197:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51323,"nodeType":"ImportDirective","src":"249:61:81","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":51322,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"257:13:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51325,"nodeType":"ImportDirective","src":"311:47:81","nodes":[],"absolutePath":"src/enums/Status.sol","file":"../src/enums/Status.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36933,"symbolAliases":[{"foreign":{"id":51324,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"319:6:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51327,"nodeType":"ImportDirective","src":"359:56:81","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":39733,"symbolAliases":[{"foreign":{"id":51326,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"367:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51332,"nodeType":"ImportDirective","src":"416:102:81","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":51328,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"424:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51329,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"434:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51330,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"454:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51331,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"467:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51334,"nodeType":"ImportDirective","src":"519:57:81","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":48484,"symbolAliases":[{"foreign":{"id":51333,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"527:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51341,"nodeType":"ImportDirective","src":"577:114:81","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":51335,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"585:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51336,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"595:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51337,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"611:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51338,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48574,"src":"627:6:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51339,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"635:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51340,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"647:9:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51343,"nodeType":"ImportDirective","src":"692:61:81","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":46877,"symbolAliases":[{"foreign":{"id":51342,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46876,"src":"700:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51345,"nodeType":"ImportDirective","src":"754:65:81","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":40510,"symbolAliases":[{"foreign":{"id":51344,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"762:16:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51347,"nodeType":"ImportDirective","src":"820:61:81","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":40329,"symbolAliases":[{"foreign":{"id":51346,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40328,"src":"828:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51349,"nodeType":"ImportDirective","src":"882:67:81","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":46266,"symbolAliases":[{"foreign":{"id":51348,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"890:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51351,"nodeType":"ImportDirective","src":"950:56:81","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":51350,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"958:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51353,"nodeType":"ImportDirective","src":"1007:57:81","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":35760,"symbolAliases":[{"foreign":{"id":51352,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35759,"src":"1015:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51355,"nodeType":"ImportDirective","src":"1065:65:81","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36178,"symbolAliases":[{"foreign":{"id":51354,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"1073:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51357,"nodeType":"ImportDirective","src":"1131:73:81","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":37870,"symbolAliases":[{"foreign":{"id":51356,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"1139:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51359,"nodeType":"ImportDirective","src":"1205:79:81","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":38675,"symbolAliases":[{"foreign":{"id":51358,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38674,"src":"1213:21:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51361,"nodeType":"ImportDirective","src":"1285:75:81","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":38360,"symbolAliases":[{"foreign":{"id":51360,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"1293:19:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51363,"nodeType":"ImportDirective","src":"1361:73:81","nodes":[],"absolutePath":"src/gateway/GatewayRouterFacet.sol","file":"../src/gateway/GatewayRouterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":39707,"symbolAliases":[{"foreign":{"id":51362,"name":"GatewayRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39706,"src":"1369:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51365,"nodeType":"ImportDirective","src":"1435:68:81","nodes":[],"absolutePath":"test/mocks/SubnetActor.sol","file":"./mocks/SubnetActor.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":56070,"symbolAliases":[{"foreign":{"id":51364,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56069,"src":"1443:27:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51367,"nodeType":"ImportDirective","src":"1504:82:81","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":50948,"symbolAliases":[{"foreign":{"id":51366,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"1512:23:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51369,"nodeType":"ImportDirective","src":"1587:80:81","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":49326,"symbolAliases":[{"foreign":{"id":51368,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"1595:22:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51371,"nodeType":"ImportDirective","src":"1668:71:81","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36416,"symbolAliases":[{"foreign":{"id":51370,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36415,"src":"1676:21:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51373,"nodeType":"ImportDirective","src":"1740:82:81","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":51076,"symbolAliases":[{"foreign":{"id":51372,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51075,"src":"1748:19:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51375,"nodeType":"ImportDirective","src":"1823:78:81","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":51314,"symbolAliases":[{"foreign":{"id":51374,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51313,"src":"1831:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51377,"nodeType":"ImportDirective","src":"1902:71:81","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36915,"symbolAliases":[{"foreign":{"id":51376,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"1910:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51379,"nodeType":"ImportDirective","src":"1974:67:81","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36478,"symbolAliases":[{"foreign":{"id":51378,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"1982:15:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51381,"nodeType":"ImportDirective","src":"2042:50:81","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":55169,"symbolAliases":[{"foreign":{"id":51380,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"2050:9:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51469,"nodeType":"ContractDefinition","src":"2094:1194:81","nodes":[{"id":51388,"nodeType":"VariableDeclaration","src":"2120:44:81","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2136:9:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51382,"name":"uint64","nodeType":"ElementaryTypeName","src":"2120:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":51385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2153:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":51384,"name":"uint64","nodeType":"ElementaryTypeName","src":"2153:6:81","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":51383,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2148:4:81","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":51386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2148:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":51387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2161:3:81","memberName":"max","nodeType":"MemberAccess","src":"2148:16:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":51394,"nodeType":"VariableDeclaration","src":"2170:91:81","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2187:20:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51389,"name":"address","nodeType":"ElementaryTypeName","src":"2170:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":51392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2218:42:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2210:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51390,"name":"address","nodeType":"ElementaryTypeName","src":"2210:7:81","typeDescriptions":{}}},"id":51393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2210:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51397,"nodeType":"VariableDeclaration","src":"2267:42:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2283:22:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51395,"name":"uint64","nodeType":"ElementaryTypeName","src":"2267:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":51396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2308:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":51400,"nodeType":"VariableDeclaration","src":"2315:54:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2332:27:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51398,"name":"uint256","nodeType":"ElementaryTypeName","src":"2315:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":51399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2362:7:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":51403,"nodeType":"VariableDeclaration","src":"2375:47:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2390:27:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":51401,"name":"uint8","nodeType":"ElementaryTypeName","src":"2375:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":51402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2420:2:81","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":51406,"nodeType":"VariableDeclaration","src":"2428:51:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"2444:25:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51404,"name":"uint64","nodeType":"ElementaryTypeName","src":"2428:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":51405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2472:7:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":51409,"nodeType":"VariableDeclaration","src":"2485:46:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"2501:25:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51407,"name":"uint64","nodeType":"ElementaryTypeName","src":"2485:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":51408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2529:2:81","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":51412,"nodeType":"VariableDeclaration","src":"2537:44:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"2553:16:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51410,"name":"string","nodeType":"ElementaryTypeName","src":"2537:6:81","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":51411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2572:9:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":51415,"nodeType":"VariableDeclaration","src":"2587:36:81","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"2602:7:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":51413,"name":"bytes","nodeType":"ElementaryTypeName","src":"2587:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":51414,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36435,"src":"2612:11:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":51418,"nodeType":"VariableDeclaration","src":"2629:48:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"2646:21:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51416,"name":"uint256","nodeType":"ElementaryTypeName","src":"2629:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":51417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2670:7:81","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":51421,"nodeType":"VariableDeclaration","src":"2683:49:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"2700:22:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51419,"name":"uint256","nodeType":"ElementaryTypeName","src":"2683:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":51420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2725:7:81","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":51427,"nodeType":"VariableDeclaration","src":"2738:52:81","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"2755:21:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51422,"name":"address","nodeType":"ElementaryTypeName","src":"2738:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":51425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2787:2:81","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":51424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2779:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51423,"name":"address","nodeType":"ElementaryTypeName","src":"2779:7:81","typeDescriptions":{}}},"id":51426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51433,"nodeType":"VariableDeclaration","src":"2796:54:81","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"2813:23:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51428,"name":"address","nodeType":"ElementaryTypeName","src":"2796:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":51431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2847:2:81","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":51430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2839:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51429,"name":"address","nodeType":"ElementaryTypeName","src":"2839:7:81","typeDescriptions":{}}},"id":51432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2839:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51438,"nodeType":"VariableDeclaration","src":"2856:57:81","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"2872:9:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51434,"name":"uint64","nodeType":"ElementaryTypeName","src":"2856:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":51437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":51435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2884:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":51436,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51409,"src":"2888:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2884:29:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":51441,"nodeType":"VariableDeclaration","src":"2919:50:81","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"2936:23:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51439,"name":"uint256","nodeType":"ElementaryTypeName","src":"2919:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":51440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2962:7:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":51444,"nodeType":"VariableDeclaration","src":"2975:53:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"2991:31:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":51442,"name":"uint16","nodeType":"ElementaryTypeName","src":"2975:6:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":51443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3025:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":51447,"nodeType":"VariableDeclaration","src":"3034:38:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3048:19:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":51445,"name":"int8","nodeType":"ElementaryTypeName","src":"3034:4:81","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":51446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3070:2:81","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":51450,"nodeType":"VariableDeclaration","src":"3078:37:81","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3094:15:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51448,"name":"uint64","nodeType":"ElementaryTypeName","src":"3078:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":51449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3112:3:81","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":51456,"nodeType":"VariableDeclaration","src":"3121:45:81","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3138:15:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51451,"name":"address","nodeType":"ElementaryTypeName","src":"3121:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":51454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3164:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":51453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3156:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51452,"name":"address","nodeType":"ElementaryTypeName","src":"3156:7:81","typeDescriptions":{}}},"id":51455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3156:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51462,"nodeType":"VariableDeclaration","src":"3172:57:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3189:24:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51457,"name":"address","nodeType":"ElementaryTypeName","src":"3172:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":51460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3224:4:81","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":51459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3216:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51458,"name":"address","nodeType":"ElementaryTypeName","src":"3216:7:81","typeDescriptions":{}}},"id":51461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3216:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51468,"nodeType":"VariableDeclaration","src":"3235:50:81","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3252:19:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51463,"name":"address","nodeType":"ElementaryTypeName","src":"3235:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":51466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3282:2:81","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":51465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3274:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51464,"name":"address","nodeType":"ElementaryTypeName","src":"3274:7:81","typeDescriptions":{}}},"id":51467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3274:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51469],"name":"TestParams","nameLocation":"2103:10:81","scope":54009,"usedErrors":[]},{"id":51537,"nodeType":"ContractDefinition","src":"3290:820:81","nodes":[{"id":51476,"nodeType":"VariableDeclaration","src":"3338:37:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3347:28:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51474,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3338:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51475,"nodeType":"ArrayTypeName","src":"3338:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51479,"nodeType":"VariableDeclaration","src":"3381:43:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3390:34:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51477,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3381:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51478,"nodeType":"ArrayTypeName","src":"3381:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51482,"nodeType":"VariableDeclaration","src":"3430:32:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"3439:23:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51480,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3430:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51481,"nodeType":"ArrayTypeName","src":"3430:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51485,"nodeType":"VariableDeclaration","src":"3468:32:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"3477:23:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51483,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3468:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51484,"nodeType":"ArrayTypeName","src":"3468:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51488,"nodeType":"VariableDeclaration","src":"3507:37:81","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"3529:15:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":51487,"nodeType":"UserDefinedTypeName","pathNode":{"id":51486,"name":"SubnetRegistryDiamond","nameLocations":["3507:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"3507:21:81"},"referencedDeclaration":36415,"src":"3507:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":51491,"nodeType":"VariableDeclaration","src":"3550:32:81","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"3568:14:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":51490,"nodeType":"UserDefinedTypeName","pathNode":{"id":51489,"name":"DiamondLoupeFacet","nameLocations":["3550:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"3550:17:81"},"referencedDeclaration":36914,"src":"3550:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":51494,"nodeType":"VariableDeclaration","src":"3588:30:81","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"3604:14:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":51493,"nodeType":"UserDefinedTypeName","pathNode":{"id":51492,"name":"DiamondCutFacet","nameLocations":["3588:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"3588:15:81"},"referencedDeclaration":36477,"src":"3588:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":51497,"nodeType":"VariableDeclaration","src":"3624:39:81","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"3644:19:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":51496,"nodeType":"UserDefinedTypeName","pathNode":{"id":51495,"name":"RegisterSubnetFacet","nameLocations":["3624:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"3624:19:81"},"referencedDeclaration":51075,"src":"3624:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":51500,"nodeType":"VariableDeclaration","src":"3669:43:81","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"3687:25:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"},"typeName":{"id":51499,"nodeType":"UserDefinedTypeName","pathNode":{"id":51498,"name":"SubnetGetterFacet","nameLocations":["3669:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"3669:17:81"},"referencedDeclaration":51313,"src":"3669:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":51536,"nodeType":"FunctionDefinition","src":"3719:389:81","nodes":[],"body":{"id":51535,"nodeType":"Block","src":"3733:375:81","nodes":[],"statements":[{"expression":{"id":51509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51503,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51476,"src":"3743:28:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51506,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3802:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"52656769737465725375626e65744661636574","id":51507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3806:21:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":51504,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"3774:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3784:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"3774:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3774:54:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"3743:85:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51510,"nodeType":"ExpressionStatement","src":"3743:85:81"},{"expression":{"id":51517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51511,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51479,"src":"3838:34:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51514,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3903:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744765747465724661636574","id":51515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3907:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":51512,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"3875:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3885:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"3875:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3875:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"3838:89:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51518,"nodeType":"ExpressionStatement","src":"3838:89:81"},{"expression":{"id":51525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51519,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51482,"src":"3937:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51522,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3991:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644375744661636574","id":51523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3995:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":51520,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"3963:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3973:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"3963:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3963:50:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"3937:76:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51526,"nodeType":"ExpressionStatement","src":"3937:76:81"},{"expression":{"id":51533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51527,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51485,"src":"4023:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51530,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4077:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644c6f7570654661636574","id":51531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4081:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":51528,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4049:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4059:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4049:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4023:78:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51534,"nodeType":"ExpressionStatement","src":"4023:78:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51501,"nodeType":"ParameterList","parameters":[],"src":"3730:2:81"},"returnParameters":{"id":51502,"nodeType":"ParameterList","parameters":[],"src":"3733:0:81"},"scope":51537,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":51470,"name":"Test","nameLocations":["3315:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3315:4:81"},"id":51471,"nodeType":"InheritanceSpecifier","src":"3315:4:81"},{"baseName":{"id":51472,"name":"TestParams","nameLocations":["3321:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"3321:10:81"},"id":51473,"nodeType":"InheritanceSpecifier","src":"3321:10:81"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51537,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3299:12:81","scope":54009,"usedErrors":[]},{"id":51670,"nodeType":"ContractDefinition","src":"4112:1676:81","nodes":[{"id":51544,"nodeType":"VariableDeclaration","src":"4164:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwRouterSelectors","nameLocation":"4173:17:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51542,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4164:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51543,"nodeType":"ArrayTypeName","src":"4164:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51547,"nodeType":"VariableDeclaration","src":"4196:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4205:18:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51545,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4196:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51546,"nodeType":"ArrayTypeName","src":"4196:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51550,"nodeType":"VariableDeclaration","src":"4229:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4238:17:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51548,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4229:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51549,"nodeType":"ArrayTypeName","src":"4229:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51553,"nodeType":"VariableDeclaration","src":"4261:29:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"4270:20:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51551,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4261:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51552,"nodeType":"ArrayTypeName","src":"4261:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51556,"nodeType":"VariableDeclaration","src":"4296:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"4305:17:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51554,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4296:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51555,"nodeType":"ArrayTypeName","src":"4296:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51559,"nodeType":"VariableDeclaration","src":"4328:25:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"4337:16:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51557,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4328:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51558,"nodeType":"ArrayTypeName","src":"4328:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51562,"nodeType":"VariableDeclaration","src":"4360:29:81","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"4375:14:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":51561,"nodeType":"UserDefinedTypeName","pathNode":{"id":51560,"name":"GatewayDiamond","nameLocations":["4360:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"4360:14:81"},"referencedDeclaration":35759,"src":"4360:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":51565,"nodeType":"VariableDeclaration","src":"4395:29:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"4415:9:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"},"typeName":{"id":51564,"nodeType":"UserDefinedTypeName","pathNode":{"id":51563,"name":"GatewayManagerFacet","nameLocations":["4395:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"4395:19:81"},"referencedDeclaration":38359,"src":"4395:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":51568,"nodeType":"VariableDeclaration","src":"4430:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"4449:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"},"typeName":{"id":51567,"nodeType":"UserDefinedTypeName","pathNode":{"id":51566,"name":"GatewayGetterFacet","nameLocations":["4430:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":37869,"src":"4430:18:81"},"referencedDeclaration":37869,"src":"4430:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":51571,"nodeType":"VariableDeclaration","src":"4463:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwRouter","nameLocation":"4482:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"},"typeName":{"id":51570,"nodeType":"UserDefinedTypeName","pathNode":{"id":51569,"name":"GatewayRouterFacet","nameLocations":["4463:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":39706,"src":"4463:18:81"},"referencedDeclaration":39706,"src":"4463:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"visibility":"internal"},{"id":51574,"nodeType":"VariableDeclaration","src":"4496:33:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"4518:11:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":51573,"nodeType":"UserDefinedTypeName","pathNode":{"id":51572,"name":"GatewayMessengerFacet","nameLocations":["4496:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":38674,"src":"4496:21:81"},"referencedDeclaration":38674,"src":"4496:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":51577,"nodeType":"VariableDeclaration","src":"4535:24:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"4551:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":51576,"nodeType":"UserDefinedTypeName","pathNode":{"id":51575,"name":"DiamondCutFacet","nameLocations":["4535:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"4535:15:81"},"referencedDeclaration":36477,"src":"4535:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":51580,"nodeType":"VariableDeclaration","src":"4565:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"4583:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":51579,"nodeType":"UserDefinedTypeName","pathNode":{"id":51578,"name":"DiamondLoupeFacet","nameLocations":["4565:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"4565:17:81"},"referencedDeclaration":36914,"src":"4565:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":51632,"nodeType":"FunctionDefinition","src":"4598:522:81","nodes":[],"body":{"id":51631,"nodeType":"Block","src":"4612:508:81","nodes":[],"statements":[{"expression":{"id":51589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51583,"name":"gwRouterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51544,"src":"4622:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51586,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4670:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"47617465776179526f757465724661636574","id":51587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4674:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_47c9e89e207c1506806062b80d03800461672df762dd01e4466ff0c24375e91c","typeString":"literal_string \"GatewayRouterFacet\""},"value":"GatewayRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_47c9e89e207c1506806062b80d03800461672df762dd01e4466ff0c24375e91c","typeString":"literal_string \"GatewayRouterFacet\""}],"expression":{"id":51584,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4642:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4652:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4642:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4642:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4622:73:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51590,"nodeType":"ExpressionStatement","src":"4622:73:81"},{"expression":{"id":51597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51591,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51550,"src":"4705:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51594,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4753:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"476174657761794765747465724661636574","id":51595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4757:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":51592,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4725:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4735:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4725:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4725:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4705:73:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51598,"nodeType":"ExpressionStatement","src":"4705:73:81"},{"expression":{"id":51605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51599,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51547,"src":"4788:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51602,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4837:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"476174657761794d616e616765724661636574","id":51603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4841:21:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":51600,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4809:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4819:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4809:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4809:54:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4788:75:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51606,"nodeType":"ExpressionStatement","src":"4788:75:81"},{"expression":{"id":51613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51607,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"4873:20:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51610,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4924:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"476174657761794d657373656e6765724661636574","id":51611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4928:23:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":51608,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4896:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4906:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4896:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4896:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4873:79:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51614,"nodeType":"ExpressionStatement","src":"4873:79:81"},{"expression":{"id":51621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51615,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51556,"src":"4962:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51618,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5010:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644375744661636574","id":51619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5014:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":51616,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4982:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4992:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4982:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4982:50:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4962:70:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51622,"nodeType":"ExpressionStatement","src":"4962:70:81"},{"expression":{"id":51629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51623,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51559,"src":"5042:16:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51626,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5089:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644c6f7570654661636574","id":51627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5093:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":51624,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"5061:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5071:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"5061:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5061:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5042:71:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51630,"nodeType":"ExpressionStatement","src":"5042:71:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51581,"nodeType":"ParameterList","parameters":[],"src":"4609:2:81"},"returnParameters":{"id":51582,"nodeType":"ParameterList","parameters":[],"src":"4612:0:81"},"scope":51670,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51669,"nodeType":"FunctionDefinition","src":"5126:660:81","nodes":[],"body":{"id":51668,"nodeType":"Block","src":"5230:556:81","nodes":[],"statements":[{"assignments":[51642],"declarations":[{"constant":false,"id":51642,"mutability":"mutable","name":"params","nameLocation":"5280:6:81","nodeType":"VariableDeclaration","scope":51668,"src":"5240:46:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51641,"nodeType":"UserDefinedTypeName","pathNode":{"id":51640,"name":"GatewayDiamond.ConstructorParams","nameLocations":["5240:14:81","5255:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"5240:32:81"},"referencedDeclaration":35456,"src":"5240:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51665,"initialValue":{"arguments":[{"arguments":[{"id":51646,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51450,"src":"5365:15:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":51650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5403:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5389:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":51647,"name":"address","nodeType":"ElementaryTypeName","src":"5393:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51648,"nodeType":"ArrayTypeName","src":"5393:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":51651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":51645,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"5349:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":51652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5359:4:81","5382:5:81"],"names":["root","route"],"nodeType":"FunctionCall","src":"5349:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":51653,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51409,"src":"5442:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51654,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"5489:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":51655,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"5539:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51656,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51403,"src":"5598:27:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":51661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5674:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5658:15:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":51658,"nodeType":"UserDefinedTypeName","pathNode":{"id":51657,"name":"Validator","nameLocations":["5662:9:81"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"5662:9:81"},"referencedDeclaration":48694,"src":"5662:9:81","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"id":51659,"nodeType":"ArrayTypeName","src":"5662:11:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":51662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5658:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":51663,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51444,"src":"5713:31:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":51643,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35759,"src":"5289:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$35759_$","typeString":"type(contract GatewayDiamond)"}},"id":51644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5304:17:81","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35456,"src":"5289:32:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35456_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":51664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5336:11:81","5421:19:81","5481:6:81","5524:13:81","5578:18:81","5639:17:81","5690:21:81"],"names":["networkName","bottomUpCheckPeriod","msgFee","minCollateral","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"5289:466:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"5240:515:81"},{"expression":{"id":51666,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51642,"src":"5773:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":51637,"id":51667,"nodeType":"Return","src":"5766:13:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"5135:20:81","parameters":{"id":51633,"nodeType":"ParameterList","parameters":[],"src":"5155:2:81"},"returnParameters":{"id":51637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51669,"src":"5189:39:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51635,"nodeType":"UserDefinedTypeName","pathNode":{"id":51634,"name":"GatewayDiamond.ConstructorParams","nameLocations":["5189:14:81","5204:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"5189:32:81"},"referencedDeclaration":35456,"src":"5189:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"5188:41:81"},"scope":51670,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":51538,"name":"Test","nameLocations":["4141:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4141:4:81"},"id":51539,"nodeType":"InheritanceSpecifier","src":"4141:4:81"},{"baseName":{"id":51540,"name":"TestParams","nameLocations":["4147:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"4147:10:81"},"id":51541,"nodeType":"InheritanceSpecifier","src":"4147:10:81"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51670,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4121:16:81","scope":54009,"usedErrors":[]},{"id":51792,"nodeType":"ContractDefinition","src":"5790:1815:81","nodes":[{"id":51677,"nodeType":"VariableDeclaration","src":"5841:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"5850:17:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51675,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5841:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51676,"nodeType":"ArrayTypeName","src":"5841:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51680,"nodeType":"VariableDeclaration","src":"5873:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"5882:18:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51678,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5873:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51679,"nodeType":"ArrayTypeName","src":"5873:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51683,"nodeType":"VariableDeclaration","src":"5906:33:81","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"5915:24:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51681,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5906:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51682,"nodeType":"ArrayTypeName","src":"5906:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51686,"nodeType":"VariableDeclaration","src":"5945:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"5954:17:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51684,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5945:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51685,"nodeType":"ArrayTypeName","src":"5945:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51689,"nodeType":"VariableDeclaration","src":"5977:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"5986:17:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51687,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5977:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51688,"nodeType":"ArrayTypeName","src":"5977:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51692,"nodeType":"VariableDeclaration","src":"6010:28:81","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6029:9:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":51691,"nodeType":"UserDefinedTypeName","pathNode":{"id":51690,"name":"SubnetActorDiamond","nameLocations":["6010:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"6010:18:81"},"referencedDeclaration":36177,"src":"6010:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":51695,"nodeType":"VariableDeclaration","src":"6044:33:81","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"6068:9:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":51694,"nodeType":"UserDefinedTypeName","pathNode":{"id":51693,"name":"SubnetActorManagerFacet","nameLocations":["6044:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"6044:23:81"},"referencedDeclaration":50947,"src":"6044:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":51698,"nodeType":"VariableDeclaration","src":"6083:43:81","nodes":[],"constant":false,"mutability":"mutable","name":"saMockedManager","nameLocation":"6111:15:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":51697,"nodeType":"UserDefinedTypeName","pathNode":{"id":51696,"name":"SubnetActorManagerFacetMock","nameLocations":["6083:27:81"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"6083:27:81"},"referencedDeclaration":56069,"src":"6083:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"},{"id":51701,"nodeType":"VariableDeclaration","src":"6132:31:81","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"6155:8:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":51700,"nodeType":"UserDefinedTypeName","pathNode":{"id":51699,"name":"SubnetActorGetterFacet","nameLocations":["6132:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"6132:22:81"},"referencedDeclaration":49325,"src":"6132:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":51704,"nodeType":"VariableDeclaration","src":"6169:24:81","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"6185:8:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":51703,"nodeType":"UserDefinedTypeName","pathNode":{"id":51702,"name":"DiamondCutFacet","nameLocations":["6169:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"6169:15:81"},"referencedDeclaration":36477,"src":"6169:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":51707,"nodeType":"VariableDeclaration","src":"6199:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"6217:8:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":51706,"nodeType":"UserDefinedTypeName","pathNode":{"id":51705,"name":"DiamondLoupeFacet","nameLocations":["6199:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"6199:17:81"},"referencedDeclaration":36914,"src":"6199:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":51751,"nodeType":"FunctionDefinition","src":"6232:458:81","nodes":[],"body":{"id":51750,"nodeType":"Block","src":"6246:444:81","nodes":[],"statements":[{"expression":{"id":51716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51710,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"6256:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51713,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6304:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744163746f724765747465724661636574","id":51714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6308:24:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":51711,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6276:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6286:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6276:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6276:57:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6256:77:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51717,"nodeType":"ExpressionStatement","src":"6256:77:81"},{"expression":{"id":51724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51718,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"6343:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51721,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6392:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":51722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6396:25:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":51719,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6364:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6374:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6364:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6364:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6343:79:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51725,"nodeType":"ExpressionStatement","src":"6343:79:81"},{"expression":{"id":51732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51726,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51683,"src":"6432:24:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51729,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6487:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":51730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6491:29:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":51727,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6459:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6469:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6459:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6459:62:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6432:89:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51733,"nodeType":"ExpressionStatement","src":"6432:89:81"},{"expression":{"id":51740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51734,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"6531:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51737,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6579:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644375744661636574","id":51738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6583:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":51735,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6551:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6561:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6551:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6551:50:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6531:70:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51741,"nodeType":"ExpressionStatement","src":"6531:70:81"},{"expression":{"id":51748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51742,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51689,"src":"6611:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51745,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6659:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644c6f7570654661636574","id":51746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6663:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":51743,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6631:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6641:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6631:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6631:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6611:72:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51749,"nodeType":"ExpressionStatement","src":"6611:72:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51708,"nodeType":"ParameterList","parameters":[],"src":"6243:2:81"},"returnParameters":{"id":51709,"nodeType":"ParameterList","parameters":[],"src":"6246:0:81"},"scope":51792,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51791,"nodeType":"FunctionDefinition","src":"6696:907:81","nodes":[],"body":{"id":51790,"nodeType":"Block","src":"6843:760:81","nodes":[],"statements":[{"assignments":[51763],"declarations":[{"constant":false,"id":51763,"mutability":"mutable","name":"params","nameLocation":"6897:6:81","nodeType":"VariableDeclaration","scope":51790,"src":"6853:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":51762,"nodeType":"UserDefinedTypeName","pathNode":{"id":51761,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["6853:18:81","6872:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"6853:36:81"},"referencedDeclaration":35829,"src":"6853:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51787,"initialValue":{"arguments":[{"arguments":[{"id":51767,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51450,"src":"6983:15:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":51771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7021:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7007:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":51768,"name":"address","nodeType":"ElementaryTypeName","src":"7011:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51769,"nodeType":"ArrayTypeName","src":"7011:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":51772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7007:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":51766,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"6967:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":51773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6977:4:81","7000:5:81"],"names":["root","route"],"nodeType":"FunctionCall","src":"6967:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":51774,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51753,"src":"7055:2:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51775,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"7082:13:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$36918_$","typeString":"type(enum ConsensusType)"}},"id":51776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7096:10:81","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":36917,"src":"7082:24:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":51777,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"7145:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51778,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51397,"src":"7199:22:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51779,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51409,"src":"7256:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51780,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51403,"src":"7315:27:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":51781,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51444,"src":"7379:31:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":51782,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51447,"src":"7436:19:81","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":51783,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"7485:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":51784,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"7536:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":51785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7551:10:81","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":48645,"src":"7536:25:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}],"expression":{"id":51764,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"6906:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"type(contract SubnetActorDiamond)"}},"id":51765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6925:17:81","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35829,"src":"6906:36:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35829_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":51786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6957:8:81","7039:14:81","7071:9:81","7120:23:81","7184:13:81","7235:19:81","7295:18:81","7356:21:81","7424:10:81","7469:14:81","7520:14:81"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode"],"nodeType":"FunctionCall","src":"6906:666:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6853:719:81"},{"expression":{"id":51788,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51763,"src":"7590:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":51758,"id":51789,"nodeType":"Return","src":"7583:13:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"6705:35:81","parameters":{"id":51754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51753,"mutability":"mutable","name":"gw","nameLocation":"6758:2:81","nodeType":"VariableDeclaration","scope":51791,"src":"6750:10:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51752,"name":"address","nodeType":"ElementaryTypeName","src":"6750:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6740:26:81"},"returnParameters":{"id":51758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51757,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51791,"src":"6798:43:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":51756,"nodeType":"UserDefinedTypeName","pathNode":{"id":51755,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["6798:18:81","6817:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"6798:36:81"},"referencedDeclaration":35829,"src":"6798:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6797:45:81"},"scope":51792,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":51671,"name":"Test","nameLocations":["5818:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"5818:4:81"},"id":51672,"nodeType":"InheritanceSpecifier","src":"5818:4:81"},{"baseName":{"id":51673,"name":"TestParams","nameLocations":["5824:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"5824:10:81"},"id":51674,"nodeType":"InheritanceSpecifier","src":"5824:10:81"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51792,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"5799:15:81","scope":54009,"usedErrors":[]},{"id":54008,"nodeType":"ContractDefinition","src":"7607:21719:81","nodes":[{"id":51806,"nodeType":"UsingForDirective","src":"7711:34:81","nodes":[],"global":false,"libraryName":{"id":51803,"name":"SubnetIDHelper","nameLocations":["7717:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":46876,"src":"7717:14:81"},"typeName":{"id":51805,"nodeType":"UserDefinedTypeName","pathNode":{"id":51804,"name":"SubnetID","nameLocations":["7736:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"7736:8:81"},"referencedDeclaration":48557,"src":"7736:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}}},{"id":51810,"nodeType":"UsingForDirective","src":"7750:34:81","nodes":[],"global":false,"libraryName":{"id":51807,"name":"CrossMsgHelper","nameLocations":["7756:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":40328,"src":"7756:14:81"},"typeName":{"id":51809,"nodeType":"UserDefinedTypeName","pathNode":{"id":51808,"name":"CrossMsg","nameLocations":["7775:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"7775:8:81"},"referencedDeclaration":48452,"src":"7775:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}}},{"id":51814,"nodeType":"UsingForDirective","src":"7789:40:81","nodes":[],"global":false,"libraryName":{"id":51811,"name":"StorableMsgHelper","nameLocations":["7795:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":46265,"src":"7795:17:81"},"typeName":{"id":51813,"nodeType":"UserDefinedTypeName","pathNode":{"id":51812,"name":"StorableMsg","nameLocations":["7817:11:81"],"nodeType":"IdentifierPath","referencedDeclaration":48469,"src":"7817:11:81"},"referencedDeclaration":48469,"src":"7817:11:81","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_storage_ptr","typeString":"struct StorableMsg"}}},{"id":51818,"nodeType":"UsingForDirective","src":"7834:38:81","nodes":[],"global":false,"libraryName":{"id":51815,"name":"FvmAddressHelper","nameLocations":["7840:16:81"],"nodeType":"IdentifierPath","referencedDeclaration":40509,"src":"7840:16:81"},"typeName":{"id":51817,"nodeType":"UserDefinedTypeName","pathNode":{"id":51816,"name":"FvmAddress","nameLocations":["7861:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"7861:10:81"},"referencedDeclaration":48476,"src":"7861:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}}},{"id":51822,"nodeType":"EventDefinition","src":"7878:67:81","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"7884:21:81","parameters":{"id":51821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51820,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"7922:21:81","nodeType":"VariableDeclaration","scope":51822,"src":"7906:37:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51819,"name":"address","nodeType":"ElementaryTypeName","src":"7906:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7905:39:81"}},{"id":51826,"nodeType":"FunctionDefinition","src":"7951:16:81","nodes":[],"body":{"id":51825,"nodeType":"Block","src":"7965:2:81","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51823,"nodeType":"ParameterList","parameters":[],"src":"7962:2:81"},"returnParameters":{"id":51824,"nodeType":"ParameterList","parameters":[],"src":"7965:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51974,"nodeType":"FunctionDefinition","src":"7973:1282:81","nodes":[],"body":{"id":51973,"nodeType":"Block","src":"8005:1250:81","nodes":[],"statements":[{"assignments":[51833],"declarations":[{"constant":false,"id":51833,"mutability":"mutable","name":"path","nameLocation":"8032:4:81","nodeType":"VariableDeclaration","scope":51973,"src":"8015:21:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":51831,"name":"address","nodeType":"ElementaryTypeName","src":"8015:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51832,"nodeType":"ArrayTypeName","src":"8015:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":51839,"initialValue":{"arguments":[{"hexValue":"31","id":51837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8053:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":51836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8039:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":51834,"name":"address","nodeType":"ElementaryTypeName","src":"8043:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51835,"nodeType":"ArrayTypeName","src":"8043:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":51838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8039:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8015:40:81"},{"expression":{"id":51844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51840,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51833,"src":"8065:4:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":51842,"indexExpression":{"hexValue":"30","id":51841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8070:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8065:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51843,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51456,"src":"8075:15:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8065:25:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51845,"nodeType":"ExpressionStatement","src":"8065:25:81"},{"assignments":[51850],"declarations":[{"constant":false,"id":51850,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"8183:19:81","nodeType":"VariableDeclaration","scope":51973,"src":"8143:59:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51849,"nodeType":"UserDefinedTypeName","pathNode":{"id":51848,"name":"GatewayDiamond.ConstructorParams","nameLocations":["8143:14:81","8158:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"8143:32:81"},"referencedDeclaration":35456,"src":"8143:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51853,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51851,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51669,"src":"8205:20:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35456_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":51852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8205:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8143:84:81"},{"expression":{"id":51858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51854,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8237:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51856,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51850,"src":"8275:19:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":51855,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"8254:20:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35456_memory_ptr_$returns$_t_contract$_GatewayDiamond_$35759_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":51857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8254:41:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"src":"8237:58:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"id":51859,"nodeType":"ExpressionStatement","src":"8237:58:81"},{"expression":{"id":51867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51860,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"8305:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51864,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8343:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8335:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51862,"name":"address","nodeType":"ElementaryTypeName","src":"8335:7:81","typeDescriptions":{}}},"id":51865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8335:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51861,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"8316:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$37869_$","typeString":"type(contract GatewayGetterFacet)"}},"id":51866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8316:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"src":"8305:54:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":51868,"nodeType":"ExpressionStatement","src":"8305:54:81"},{"expression":{"id":51876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51869,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"8369:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51873,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8409:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8401:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51871,"name":"address","nodeType":"ElementaryTypeName","src":"8401:7:81","typeDescriptions":{}}},"id":51874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8401:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51870,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"8381:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"type(contract GatewayManagerFacet)"}},"id":51875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8381:44:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"src":"8369:56:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":51877,"nodeType":"ExpressionStatement","src":"8369:56:81"},{"expression":{"id":51885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51878,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"8435:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51882,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8473:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8465:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51880,"name":"address","nodeType":"ElementaryTypeName","src":"8465:7:81","typeDescriptions":{}}},"id":51883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8465:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51879,"name":"GatewayRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39706,"src":"8446:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayRouterFacet_$39706_$","typeString":"type(contract GatewayRouterFacet)"}},"id":51884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8446:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"src":"8435:54:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":51886,"nodeType":"ExpressionStatement","src":"8435:54:81"},{"expression":{"id":51894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51887,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51574,"src":"8499:11:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51891,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8543:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8535:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51889,"name":"address","nodeType":"ElementaryTypeName","src":"8535:7:81","typeDescriptions":{}}},"id":51892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8535:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51888,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38674,"src":"8513:21:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$38674_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":51893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8513:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"src":"8499:60:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"id":51895,"nodeType":"ExpressionStatement","src":"8499:60:81"},{"expression":{"id":51903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51896,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51580,"src":"8569:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51900,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8606:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8598:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51898,"name":"address","nodeType":"ElementaryTypeName","src":"8598:7:81","typeDescriptions":{}}},"id":51901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8598:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51897,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"8580:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":51902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8580:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"8569:53:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":51904,"nodeType":"ExpressionStatement","src":"8569:53:81"},{"expression":{"id":51912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51905,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51577,"src":"8632:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51909,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8667:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8659:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51907,"name":"address","nodeType":"ElementaryTypeName","src":"8659:7:81","typeDescriptions":{}}},"id":51910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8659:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51906,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"8643:15:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36477_$","typeString":"type(contract DiamondCutFacet)"}},"id":51911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8643:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"8632:51:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":51913,"nodeType":"ExpressionStatement","src":"8632:51:81"},{"assignments":[51918],"declarations":[{"constant":false,"id":51918,"mutability":"mutable","name":"saConstructorParams","nameLocation":"8792:19:81","nodeType":"VariableDeclaration","scope":51973,"src":"8748:63:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":51917,"nodeType":"UserDefinedTypeName","pathNode":{"id":51916,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["8748:18:81","8767:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"8748:36:81"},"referencedDeclaration":35829,"src":"8748:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51925,"initialValue":{"arguments":[{"arguments":[{"id":51922,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8871:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8863:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51920,"name":"address","nodeType":"ElementaryTypeName","src":"8863:7:81","typeDescriptions":{}}},"id":51923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8863:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51919,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51791,"src":"8814:35:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$35829_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":51924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8814:82:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8748:148:81"},{"expression":{"id":51930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51926,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"8907:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51928,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51918,"src":"8937:19:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":51927,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[52359,52388,52589],"referencedDeclaration":52359,"src":"8919:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":51929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8919:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"src":"8907:50:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"id":51931,"nodeType":"ExpressionStatement","src":"8907:50:81"},{"expression":{"id":51939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51932,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"8967:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51936,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9011:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9003:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51934,"name":"address","nodeType":"ElementaryTypeName","src":"9003:7:81","typeDescriptions":{}}},"id":51937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9003:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51933,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"8979:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":51938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8979:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"src":"8967:55:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":51940,"nodeType":"ExpressionStatement","src":"8967:55:81"},{"expression":{"id":51948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51941,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"9032:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51945,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9074:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9066:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51943,"name":"address","nodeType":"ElementaryTypeName","src":"9066:7:81","typeDescriptions":{}}},"id":51946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9066:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51942,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"9043:22:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":51947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9043:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"9032:53:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":51949,"nodeType":"ExpressionStatement","src":"9032:53:81"},{"expression":{"id":51957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51950,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"9095:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51954,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9132:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9124:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51952,"name":"address","nodeType":"ElementaryTypeName","src":"9124:7:81","typeDescriptions":{}}},"id":51955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9124:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51951,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"9106:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":51956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9106:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"9095:48:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":51958,"nodeType":"ExpressionStatement","src":"9095:48:81"},{"expression":{"id":51966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51959,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"9153:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51963,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9188:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9180:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51961,"name":"address","nodeType":"ElementaryTypeName","src":"9180:7:81","typeDescriptions":{}}},"id":51964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9180:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51960,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"9164:15:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36477_$","typeString":"type(contract DiamondCutFacet)"}},"id":51965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9164:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"9153:46:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":51967,"nodeType":"ExpressionStatement","src":"9153:46:81"},{"expression":{"arguments":[{"id":51969,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51468,"src":"9223:19:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9244:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":51968,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[53132,53215],"referencedDeclaration":53215,"src":"9210:12:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9210:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51972,"nodeType":"ExpressionStatement","src":"9210:38:81"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"7982:5:81","parameters":{"id":51827,"nodeType":"ParameterList","parameters":[],"src":"7987:2:81"},"returnParameters":{"id":51828,"nodeType":"ParameterList","parameters":[],"src":"8005:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":52158,"nodeType":"FunctionDefinition","src":"9261:2119:81","nodes":[],"body":{"id":52157,"nodeType":"Block","src":"9371:2009:81","nodes":[],"statements":[{"assignments":[51985],"declarations":[{"constant":false,"id":51985,"mutability":"mutable","name":"router","nameLocation":"9400:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9381:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"},"typeName":{"id":51984,"nodeType":"UserDefinedTypeName","pathNode":{"id":51983,"name":"GatewayRouterFacet","nameLocations":["9381:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":39706,"src":"9381:18:81"},"referencedDeclaration":39706,"src":"9381:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"visibility":"internal"}],"id":51990,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9409:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayRouterFacet_$39706_$","typeString":"function () returns (contract GatewayRouterFacet)"},"typeName":{"id":51987,"nodeType":"UserDefinedTypeName","pathNode":{"id":51986,"name":"GatewayRouterFacet","nameLocations":["9413:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":39706,"src":"9413:18:81"},"referencedDeclaration":39706,"src":"9413:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}}},"id":51989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9409:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"9381:52:81"},{"assignments":[51993],"declarations":[{"constant":false,"id":51993,"mutability":"mutable","name":"manager","nameLocation":"9463:7:81","nodeType":"VariableDeclaration","scope":52157,"src":"9443:27:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"},"typeName":{"id":51992,"nodeType":"UserDefinedTypeName","pathNode":{"id":51991,"name":"GatewayManagerFacet","nameLocations":["9443:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"9443:19:81"},"referencedDeclaration":38359,"src":"9443:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":51998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9473:23:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":51995,"nodeType":"UserDefinedTypeName","pathNode":{"id":51994,"name":"GatewayManagerFacet","nameLocations":["9477:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"9477:19:81"},"referencedDeclaration":38359,"src":"9477:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}}},"id":51997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9473:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"9443:55:81"},{"assignments":[52001],"declarations":[{"constant":false,"id":52001,"mutability":"mutable","name":"getter","nameLocation":"9527:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9508:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52000,"nodeType":"UserDefinedTypeName","pathNode":{"id":51999,"name":"GatewayGetterFacet","nameLocations":["9508:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":37869,"src":"9508:18:81"},"referencedDeclaration":37869,"src":"9508:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":52006,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9536:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$37869_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":52003,"nodeType":"UserDefinedTypeName","pathNode":{"id":52002,"name":"GatewayGetterFacet","nameLocations":["9540:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":37869,"src":"9540:18:81"},"referencedDeclaration":37869,"src":"9540:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}}},"id":52005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9536:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"9508:52:81"},{"assignments":[52009],"declarations":[{"constant":false,"id":52009,"mutability":"mutable","name":"messenger","nameLocation":"9592:9:81","nodeType":"VariableDeclaration","scope":52157,"src":"9570:31:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52008,"nodeType":"UserDefinedTypeName","pathNode":{"id":52007,"name":"GatewayMessengerFacet","nameLocations":["9570:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":38674,"src":"9570:21:81"},"referencedDeclaration":38674,"src":"9570:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":52014,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9604:25:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$38674_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":52011,"nodeType":"UserDefinedTypeName","pathNode":{"id":52010,"name":"GatewayMessengerFacet","nameLocations":["9608:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":38674,"src":"9608:21:81"},"referencedDeclaration":38674,"src":"9608:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}}},"id":52013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9604:27:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"9570:61:81"},{"assignments":[52017],"declarations":[{"constant":false,"id":52017,"mutability":"mutable","name":"cutter","nameLocation":"9657:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9641:22:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":52016,"nodeType":"UserDefinedTypeName","pathNode":{"id":52015,"name":"DiamondCutFacet","nameLocations":["9641:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"9641:15:81"},"referencedDeclaration":36477,"src":"9641:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":52022,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9666:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52019,"nodeType":"UserDefinedTypeName","pathNode":{"id":52018,"name":"DiamondCutFacet","nameLocations":["9670:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"9670:15:81"},"referencedDeclaration":36477,"src":"9670:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9666:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"9641:46:81"},{"assignments":[52025],"declarations":[{"constant":false,"id":52025,"mutability":"mutable","name":"louper","nameLocation":"9715:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9697:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52024,"nodeType":"UserDefinedTypeName","pathNode":{"id":52023,"name":"DiamondLoupeFacet","nameLocations":["9697:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"9697:17:81"},"referencedDeclaration":36914,"src":"9697:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":52030,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9724:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52027,"nodeType":"UserDefinedTypeName","pathNode":{"id":52026,"name":"DiamondLoupeFacet","nameLocations":["9728:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"9728:17:81"},"referencedDeclaration":36914,"src":"9728:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9724:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"9697:50:81"},{"assignments":[52036],"declarations":[{"constant":false,"id":52036,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"9785:12:81","nodeType":"VariableDeclaration","scope":52157,"src":"9758:39:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52034,"nodeType":"UserDefinedTypeName","pathNode":{"id":52033,"name":"IDiamond.FacetCut","nameLocations":["9758:8:81","9767:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"9758:17:81"},"referencedDeclaration":39721,"src":"9758:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52035,"nodeType":"ArrayTypeName","src":"9758:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52043,"initialValue":{"arguments":[{"hexValue":"36","id":52041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9824:1:81","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"}],"id":52040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9800:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52038,"nodeType":"UserDefinedTypeName","pathNode":{"id":52037,"name":"IDiamond.FacetCut","nameLocations":["9804:8:81","9813:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"9804:17:81"},"referencedDeclaration":39721,"src":"9804:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52039,"nodeType":"ArrayTypeName","src":"9804:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9800:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9758:68:81"},{"expression":{"id":52059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52044,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"9837:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52046,"indexExpression":{"hexValue":"30","id":52045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9850:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9837:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52051,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51985,"src":"9927:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}],"id":52050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9919:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52049,"name":"address","nodeType":"ElementaryTypeName","src":"9919:7:81","typeDescriptions":{}}},"id":52052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52053,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"9960:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9969:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"9960:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9984:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"9960:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52056,"name":"gwRouterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51544,"src":"10024:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52047,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"9869:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9878:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"9869:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9905:12:81","9952:6:81","10005:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"9869:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52058,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9855:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"9837:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52060,"nodeType":"ExpressionStatement","src":"9837:229:81"},{"expression":{"id":52076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52061,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10077:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52063,"indexExpression":{"hexValue":"31","id":52062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10090:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10077:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52068,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51993,"src":"10167:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}],"id":52067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10159:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52066,"name":"address","nodeType":"ElementaryTypeName","src":"10159:7:81","typeDescriptions":{}}},"id":52069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10159:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52070,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10201:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10210:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10201:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10225:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10201:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52073,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51547,"src":"10265:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52064,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10109:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10118:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10109:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10145:12:81","10193:6:81","10246:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10109:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52075,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10095:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10077:231:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52077,"nodeType":"ExpressionStatement","src":"10077:231:81"},{"expression":{"id":52093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52078,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10319:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52080,"indexExpression":{"hexValue":"32","id":52079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10332:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10319:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52085,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52001,"src":"10409:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}],"id":52084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10401:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52083,"name":"address","nodeType":"ElementaryTypeName","src":"10401:7:81","typeDescriptions":{}}},"id":52086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10401:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52087,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10442:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10451:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10442:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10466:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10442:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52090,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51550,"src":"10506:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52081,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10351:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10360:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10351:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10387:12:81","10434:6:81","10487:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10351:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10337:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10319:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52094,"nodeType":"ExpressionStatement","src":"10319:229:81"},{"expression":{"id":52110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52095,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10559:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52097,"indexExpression":{"hexValue":"33","id":52096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10572:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10559:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52102,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52009,"src":"10649:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}],"id":52101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10641:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52100,"name":"address","nodeType":"ElementaryTypeName","src":"10641:7:81","typeDescriptions":{}}},"id":52103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10641:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52104,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10685:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10694:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10685:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10709:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10685:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52107,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"10749:20:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52098,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10591:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10600:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10591:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10627:12:81","10677:6:81","10730:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10591:193:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52109,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10577:217:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10559:235:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52111,"nodeType":"ExpressionStatement","src":"10559:235:81"},{"expression":{"id":52127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52112,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10805:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52114,"indexExpression":{"hexValue":"34","id":52113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10818:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10805:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52119,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52025,"src":"10895:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10887:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52117,"name":"address","nodeType":"ElementaryTypeName","src":"10887:7:81","typeDescriptions":{}}},"id":52120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10887:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52121,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10928:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10937:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10928:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10952:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10928:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52124,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51559,"src":"10992:16:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52115,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10837:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10846:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10837:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10873:12:81","10920:6:81","10973:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10837:186:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52126,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10823:210:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10805:228:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52128,"nodeType":"ExpressionStatement","src":"10805:228:81"},{"expression":{"id":52144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52129,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"11044:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52131,"indexExpression":{"hexValue":"35","id":52130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11057:1:81","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11044:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52136,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52017,"src":"11134:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11126:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52134,"name":"address","nodeType":"ElementaryTypeName","src":"11126:7:81","typeDescriptions":{}}},"id":52137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11126:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52138,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11167:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11176:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"11167:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11191:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"11167:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52141,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51556,"src":"11231:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52132,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11076:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11085:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"11076:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11112:12:81","11159:6:81","11212:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11076:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52143,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11062:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11044:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52145,"nodeType":"ExpressionStatement","src":"11044:229:81"},{"expression":{"id":52153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52146,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"11284:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52150,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"11320:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52151,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51977,"src":"11334:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":52149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11301:18:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35456_memory_ptr_$returns$_t_contract$_GatewayDiamond_$35759_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":52148,"nodeType":"UserDefinedTypeName","pathNode":{"id":52147,"name":"GatewayDiamond","nameLocations":["11305:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"11305:14:81"},"referencedDeclaration":35759,"src":"11305:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}},"id":52152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11301:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"src":"11284:57:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"id":52154,"nodeType":"ExpressionStatement","src":"11284:57:81"},{"expression":{"id":52155,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"11359:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"functionReturnParameters":51982,"id":52156,"nodeType":"Return","src":"11352:21:81"}]},"functionSelector":"cfebf300","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"9270:20:81","parameters":{"id":51978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51977,"mutability":"mutable","name":"params","nameLocation":"9331:6:81","nodeType":"VariableDeclaration","scope":52158,"src":"9291:46:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51976,"nodeType":"UserDefinedTypeName","pathNode":{"id":51975,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9291:14:81","9306:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"9291:32:81"},"referencedDeclaration":35456,"src":"9291:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"9290:48:81"},"returnParameters":{"id":51982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52158,"src":"9355:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":51980,"nodeType":"UserDefinedTypeName","pathNode":{"id":51979,"name":"GatewayDiamond","nameLocations":["9355:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"9355:14:81"},"referencedDeclaration":35759,"src":"9355:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"9354:16:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52224,"nodeType":"FunctionDefinition","src":"11386:854:81","nodes":[],"body":{"id":52223,"nodeType":"Block","src":"11594:646:81","nodes":[],"statements":[{"assignments":[52176],"declarations":[{"constant":false,"id":52176,"mutability":"mutable","name":"diamondCut","nameLocation":"11631:10:81","nodeType":"VariableDeclaration","scope":52223,"src":"11604:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52174,"nodeType":"UserDefinedTypeName","pathNode":{"id":52173,"name":"IDiamond.FacetCut","nameLocations":["11604:8:81","11613:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"11604:17:81"},"referencedDeclaration":39721,"src":"11604:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52175,"nodeType":"ArrayTypeName","src":"11604:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52183,"initialValue":{"arguments":[{"hexValue":"32","id":52181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11668:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":52180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11644:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52178,"nodeType":"UserDefinedTypeName","pathNode":{"id":52177,"name":"IDiamond.FacetCut","nameLocations":["11648:8:81","11657:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"11648:17:81"},"referencedDeclaration":39721,"src":"11648:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52179,"nodeType":"ArrayTypeName","src":"11648:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11644:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11604:66:81"},{"expression":{"id":52196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52184,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"11681:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52186,"indexExpression":{"hexValue":"30","id":52185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11692:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11681:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":52189,"name":"getterFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52163,"src":"11761:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52190,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11799:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11808:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"11799:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11823:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"11799:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52193,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"11863:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52187,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11711:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11720:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"11711:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11747:12:81","11791:6:81","11844:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11711:184:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52195,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11697:208:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11681:224:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52197,"nodeType":"ExpressionStatement","src":"11681:224:81"},{"expression":{"id":52210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52198,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"11916:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52200,"indexExpression":{"hexValue":"31","id":52199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11927:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11916:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":52203,"name":"managerFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52165,"src":"11996:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52204,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12035:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12044:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"12035:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12059:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"12035:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52207,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"12099:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52201,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11946:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11955:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"11946:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11982:12:81","12027:6:81","12080:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11946:186:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52209,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11932:210:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11916:226:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52211,"nodeType":"ExpressionStatement","src":"11916:226:81"},{"expression":{"id":52219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52212,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"12153:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52216,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"12188:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52217,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52161,"src":"12200:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12165:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52214,"nodeType":"UserDefinedTypeName","pathNode":{"id":52213,"name":"SubnetActorDiamond","nameLocations":["12169:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"12169:18:81"},"referencedDeclaration":36177,"src":"12169:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12165:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"src":"12153:54:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"id":52220,"nodeType":"ExpressionStatement","src":"12153:54:81"},{"expression":{"id":52221,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"12224:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":52170,"id":52222,"nodeType":"Return","src":"12217:16:81"}]},"functionSelector":"b64544ec","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"11395:35:81","parameters":{"id":52166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52161,"mutability":"mutable","name":"params","nameLocation":"11484:6:81","nodeType":"VariableDeclaration","scope":52224,"src":"11440:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52160,"nodeType":"UserDefinedTypeName","pathNode":{"id":52159,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["11440:18:81","11459:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"11440:36:81"},"referencedDeclaration":35829,"src":"11440:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":52163,"mutability":"mutable","name":"getterFaucet","nameLocation":"11508:12:81","nodeType":"VariableDeclaration","scope":52224,"src":"11500:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52162,"name":"address","nodeType":"ElementaryTypeName","src":"11500:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52165,"mutability":"mutable","name":"managerFaucet","nameLocation":"11538:13:81","nodeType":"VariableDeclaration","scope":52224,"src":"11530:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52164,"name":"address","nodeType":"ElementaryTypeName","src":"11530:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11430:127:81"},"returnParameters":{"id":52170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52224,"src":"11574:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52168,"nodeType":"UserDefinedTypeName","pathNode":{"id":52167,"name":"SubnetActorDiamond","nameLocations":["11574:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"11574:18:81"},"referencedDeclaration":36177,"src":"11574:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"11573:20:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52359,"nodeType":"FunctionDefinition","src":"12246:1518:81","nodes":[],"body":{"id":52358,"nodeType":"Block","src":"12361:1403:81","nodes":[],"statements":[{"assignments":[52235],"declarations":[{"constant":false,"id":52235,"mutability":"mutable","name":"manager","nameLocation":"12395:7:81","nodeType":"VariableDeclaration","scope":52358,"src":"12371:31:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52234,"nodeType":"UserDefinedTypeName","pathNode":{"id":52233,"name":"SubnetActorManagerFacet","nameLocations":["12371:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"12371:23:81"},"referencedDeclaration":50947,"src":"12371:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":52240,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12405:27:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":52237,"nodeType":"UserDefinedTypeName","pathNode":{"id":52236,"name":"SubnetActorManagerFacet","nameLocations":["12409:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"12409:23:81"},"referencedDeclaration":50947,"src":"12409:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}},"id":52239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12405:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"12371:63:81"},{"assignments":[52243],"declarations":[{"constant":false,"id":52243,"mutability":"mutable","name":"getter","nameLocation":"12467:6:81","nodeType":"VariableDeclaration","scope":52358,"src":"12444:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52242,"nodeType":"UserDefinedTypeName","pathNode":{"id":52241,"name":"SubnetActorGetterFacet","nameLocations":["12444:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"12444:22:81"},"referencedDeclaration":49325,"src":"12444:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":52248,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12476:26:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":52245,"nodeType":"UserDefinedTypeName","pathNode":{"id":52244,"name":"SubnetActorGetterFacet","nameLocations":["12480:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"12480:22:81"},"referencedDeclaration":49325,"src":"12480:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}},"id":52247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12476:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"12444:60:81"},{"assignments":[52251],"declarations":[{"constant":false,"id":52251,"mutability":"mutable","name":"louper","nameLocation":"12532:6:81","nodeType":"VariableDeclaration","scope":52358,"src":"12514:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52250,"nodeType":"UserDefinedTypeName","pathNode":{"id":52249,"name":"DiamondLoupeFacet","nameLocations":["12514:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"12514:17:81"},"referencedDeclaration":36914,"src":"12514:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":52256,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12541:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52253,"nodeType":"UserDefinedTypeName","pathNode":{"id":52252,"name":"DiamondLoupeFacet","nameLocations":["12545:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"12545:17:81"},"referencedDeclaration":36914,"src":"12545:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12541:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"12514:50:81"},{"assignments":[52259],"declarations":[{"constant":false,"id":52259,"mutability":"mutable","name":"cutter","nameLocation":"12590:6:81","nodeType":"VariableDeclaration","scope":52358,"src":"12574:22:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":52258,"nodeType":"UserDefinedTypeName","pathNode":{"id":52257,"name":"DiamondCutFacet","nameLocations":["12574:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"12574:15:81"},"referencedDeclaration":36477,"src":"12574:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":52264,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12599:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52261,"nodeType":"UserDefinedTypeName","pathNode":{"id":52260,"name":"DiamondCutFacet","nameLocations":["12603:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"12603:15:81"},"referencedDeclaration":36477,"src":"12603:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12599:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"12574:46:81"},{"assignments":[52270],"declarations":[{"constant":false,"id":52270,"mutability":"mutable","name":"diamondCut","nameLocation":"12658:10:81","nodeType":"VariableDeclaration","scope":52358,"src":"12631:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52268,"nodeType":"UserDefinedTypeName","pathNode":{"id":52267,"name":"IDiamond.FacetCut","nameLocations":["12631:8:81","12640:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"12631:17:81"},"referencedDeclaration":39721,"src":"12631:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52269,"nodeType":"ArrayTypeName","src":"12631:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52277,"initialValue":{"arguments":[{"hexValue":"34","id":52275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12695:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":52274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12671:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52272,"nodeType":"UserDefinedTypeName","pathNode":{"id":52271,"name":"IDiamond.FacetCut","nameLocations":["12675:8:81","12684:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"12675:17:81"},"referencedDeclaration":39721,"src":"12675:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52273,"nodeType":"ArrayTypeName","src":"12675:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12671:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12631:66:81"},{"expression":{"id":52293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52278,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"12708:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52280,"indexExpression":{"hexValue":"30","id":52279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12719:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12708:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52285,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52235,"src":"12796:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":52284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12788:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52283,"name":"address","nodeType":"ElementaryTypeName","src":"12788:7:81","typeDescriptions":{}}},"id":52286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12788:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52287,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12830:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12839:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"12830:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12854:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"12830:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52290,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"12894:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52281,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12738:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12747:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"12738:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12774:12:81","12822:6:81","12875:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12738:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52292,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12724:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12708:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52294,"nodeType":"ExpressionStatement","src":"12708:229:81"},{"expression":{"id":52310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52295,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"12948:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52297,"indexExpression":{"hexValue":"31","id":52296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12959:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12948:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52302,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52243,"src":"13036:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}],"id":52301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13028:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52300,"name":"address","nodeType":"ElementaryTypeName","src":"13028:7:81","typeDescriptions":{}}},"id":52303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13028:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52304,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13069:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13078:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"13069:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13093:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"13069:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52307,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"13133:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52298,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12978:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12987:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"12978:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13014:12:81","13061:6:81","13114:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12978:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52309,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12964:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12948:227:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52311,"nodeType":"ExpressionStatement","src":"12948:227:81"},{"expression":{"id":52327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52312,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"13186:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52314,"indexExpression":{"hexValue":"32","id":52313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13197:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13186:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52319,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52259,"src":"13274:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13266:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52317,"name":"address","nodeType":"ElementaryTypeName","src":"13266:7:81","typeDescriptions":{}}},"id":52320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13266:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52321,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13307:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13316:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"13307:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13331:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"13307:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52324,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51556,"src":"13371:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52315,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13216:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13225:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"13216:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13252:12:81","13299:6:81","13352:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13216:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52326,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13202:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13186:227:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52328,"nodeType":"ExpressionStatement","src":"13186:227:81"},{"expression":{"id":52344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52329,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"13424:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52331,"indexExpression":{"hexValue":"33","id":52330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13435:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13424:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52336,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52251,"src":"13512:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13504:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52334,"name":"address","nodeType":"ElementaryTypeName","src":"13504:7:81","typeDescriptions":{}}},"id":52337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13504:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52338,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13545:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13554:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"13545:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13569:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"13545:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52341,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51559,"src":"13609:16:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52332,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13454:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13463:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"13454:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13490:12:81","13537:6:81","13590:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13454:186:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52343,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13440:210:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13424:226:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52345,"nodeType":"ExpressionStatement","src":"13424:226:81"},{"assignments":[52348],"declarations":[{"constant":false,"id":52348,"mutability":"mutable","name":"diamond","nameLocation":"13680:7:81","nodeType":"VariableDeclaration","scope":52358,"src":"13661:26:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52347,"nodeType":"UserDefinedTypeName","pathNode":{"id":52346,"name":"SubnetActorDiamond","nameLocations":["13661:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"13661:18:81"},"referencedDeclaration":36177,"src":"13661:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":52355,"initialValue":{"arguments":[{"id":52352,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"13713:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52353,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52227,"src":"13725:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"13690:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52350,"nodeType":"UserDefinedTypeName","pathNode":{"id":52349,"name":"SubnetActorDiamond","nameLocations":["13694:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"13694:18:81"},"referencedDeclaration":36177,"src":"13694:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13690:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"13661:71:81"},{"expression":{"id":52356,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52348,"src":"13750:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":52232,"id":52357,"nodeType":"Return","src":"13743:14:81"}]},"functionSelector":"b0ed3c00","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"12255:17:81","parameters":{"id":52228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52227,"mutability":"mutable","name":"params","nameLocation":"12317:6:81","nodeType":"VariableDeclaration","scope":52359,"src":"12273:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52226,"nodeType":"UserDefinedTypeName","pathNode":{"id":52225,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["12273:18:81","12292:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"12273:36:81"},"referencedDeclaration":35829,"src":"12273:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"12272:52:81"},"returnParameters":{"id":52232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52359,"src":"12341:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52230,"nodeType":"UserDefinedTypeName","pathNode":{"id":52229,"name":"SubnetActorDiamond","nameLocations":["12341:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"12341:18:81"},"referencedDeclaration":36177,"src":"12341:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"12340:20:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52388,"nodeType":"FunctionDefinition","src":"13770:522:81","nodes":[],"body":{"id":52387,"nodeType":"Block","src":"14014:278:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":52376,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52361,"src":"14055:15:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":52377,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52364,"src":"14084:10:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":52378,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52366,"src":"14108:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52379,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52368,"src":"14146:14:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52380,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52370,"src":"14174:12:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52381,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52372,"src":"14200:19:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":52382,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"14233:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":52383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14248:10:81","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":48645,"src":"14233:25:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":52384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14272:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":52375,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[52359,52388,52589],"referencedDeclaration":52589,"src":"14024:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$36918_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$48648_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":52385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14024:261:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52386,"nodeType":"ExpressionStatement","src":"14024:261:81"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"13779:17:81","parameters":{"id":52373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52361,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"13814:15:81","nodeType":"VariableDeclaration","scope":52388,"src":"13806:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52360,"name":"address","nodeType":"ElementaryTypeName","src":"13806:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52364,"mutability":"mutable","name":"_consensus","nameLocation":"13853:10:81","nodeType":"VariableDeclaration","scope":52388,"src":"13839:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},"typeName":{"id":52363,"nodeType":"UserDefinedTypeName","pathNode":{"id":52362,"name":"ConsensusType","nameLocations":["13839:13:81"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"13839:13:81"},"referencedDeclaration":36918,"src":"13839:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":52366,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"13881:24:81","nodeType":"VariableDeclaration","scope":52388,"src":"13873:32:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52365,"name":"uint256","nodeType":"ElementaryTypeName","src":"13873:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52368,"mutability":"mutable","name":"_minValidators","nameLocation":"13922:14:81","nodeType":"VariableDeclaration","scope":52388,"src":"13915:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52367,"name":"uint64","nodeType":"ElementaryTypeName","src":"13915:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52370,"mutability":"mutable","name":"_checkPeriod","nameLocation":"13953:12:81","nodeType":"VariableDeclaration","scope":52388,"src":"13946:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52369,"name":"uint64","nodeType":"ElementaryTypeName","src":"13946:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52372,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"13981:19:81","nodeType":"VariableDeclaration","scope":52388,"src":"13975:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52371,"name":"uint8","nodeType":"ElementaryTypeName","src":"13975:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"13796:210:81"},"returnParameters":{"id":52374,"nodeType":"ParameterList","parameters":[],"src":"14014:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52589,"nodeType":"FunctionDefinition","src":"14298:2571:81","nodes":[],"body":{"id":52588,"nodeType":"Block","src":"14621:2248:81","nodes":[],"statements":[{"assignments":[52411],"declarations":[{"constant":false,"id":52411,"mutability":"mutable","name":"_parentId","nameLocation":"14647:9:81","nodeType":"VariableDeclaration","scope":52588,"src":"14631:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":52410,"nodeType":"UserDefinedTypeName","pathNode":{"id":52409,"name":"SubnetID","nameLocations":["14631:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"14631:8:81"},"referencedDeclaration":48557,"src":"14631:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":52420,"initialValue":{"arguments":[{"id":52413,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51450,"src":"14668:15:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14699:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14685:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52414,"name":"address","nodeType":"ElementaryTypeName","src":"14689:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52415,"nodeType":"ArrayTypeName","src":"14689:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14685:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52412,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"14659:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14659:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"14631:71:81"},{"expression":{"id":52426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52421,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"14713:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14725:27:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":52423,"nodeType":"UserDefinedTypeName","pathNode":{"id":52422,"name":"SubnetActorManagerFacet","nameLocations":["14729:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"14729:23:81"},"referencedDeclaration":50947,"src":"14729:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}},"id":52425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14725:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"src":"14713:41:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":52427,"nodeType":"ExpressionStatement","src":"14713:41:81"},{"expression":{"id":52433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52428,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"14764:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14775:26:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":52430,"nodeType":"UserDefinedTypeName","pathNode":{"id":52429,"name":"SubnetActorGetterFacet","nameLocations":["14779:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"14779:22:81"},"referencedDeclaration":49325,"src":"14779:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}},"id":52432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14775:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"14764:39:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":52434,"nodeType":"ExpressionStatement","src":"14764:39:81"},{"expression":{"id":52440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52435,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"14813:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14824:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52437,"nodeType":"UserDefinedTypeName","pathNode":{"id":52436,"name":"DiamondCutFacet","nameLocations":["14828:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"14828:15:81"},"referencedDeclaration":36477,"src":"14828:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14824:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"14813:32:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":52441,"nodeType":"ExpressionStatement","src":"14813:32:81"},{"expression":{"id":52447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52442,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"14855:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14866:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52444,"nodeType":"UserDefinedTypeName","pathNode":{"id":52443,"name":"DiamondLoupeFacet","nameLocations":["14870:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"14870:17:81"},"referencedDeclaration":36914,"src":"14870:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14866:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"14855:34:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":52448,"nodeType":"ExpressionStatement","src":"14855:34:81"},{"assignments":[52454],"declarations":[{"constant":false,"id":52454,"mutability":"mutable","name":"diamondCut","nameLocation":"14927:10:81","nodeType":"VariableDeclaration","scope":52588,"src":"14900:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52452,"nodeType":"UserDefinedTypeName","pathNode":{"id":52451,"name":"IDiamond.FacetCut","nameLocations":["14900:8:81","14909:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"14900:17:81"},"referencedDeclaration":39721,"src":"14900:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52453,"nodeType":"ArrayTypeName","src":"14900:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52461,"initialValue":{"arguments":[{"hexValue":"34","id":52459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14964:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":52458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14940:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52456,"nodeType":"UserDefinedTypeName","pathNode":{"id":52455,"name":"IDiamond.FacetCut","nameLocations":["14944:8:81","14953:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"14944:17:81"},"referencedDeclaration":39721,"src":"14944:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52457,"nodeType":"ArrayTypeName","src":"14944:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14940:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14900:66:81"},{"expression":{"id":52477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52462,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"14977:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52464,"indexExpression":{"hexValue":"30","id":52463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14988:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14977:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52469,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"15065:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":52468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15057:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52467,"name":"address","nodeType":"ElementaryTypeName","src":"15057:7:81","typeDescriptions":{}}},"id":52470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15057:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52471,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15101:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15110:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15101:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15125:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15101:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52474,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"15165:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52465,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15007:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15016:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15007:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15043:12:81","15093:6:81","15146:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15007:191:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52476,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14993:215:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14977:231:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52478,"nodeType":"ExpressionStatement","src":"14977:231:81"},{"expression":{"id":52494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52479,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15219:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52481,"indexExpression":{"hexValue":"31","id":52480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15230:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15219:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52486,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"15307:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}],"id":52485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15299:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52484,"name":"address","nodeType":"ElementaryTypeName","src":"15299:7:81","typeDescriptions":{}}},"id":52487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15299:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52488,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15342:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15351:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15342:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15366:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15342:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52491,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"15406:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52482,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15249:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15258:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15249:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15285:12:81","15334:6:81","15387:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15249:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52493,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15235:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15219:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52495,"nodeType":"ExpressionStatement","src":"15219:229:81"},{"expression":{"id":52511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52496,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15459:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52498,"indexExpression":{"hexValue":"32","id":52497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15470:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15459:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52503,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"15547:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15539:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52501,"name":"address","nodeType":"ElementaryTypeName","src":"15539:7:81","typeDescriptions":{}}},"id":52504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15539:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52505,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15582:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15591:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15582:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15606:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15582:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52508,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"15646:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52499,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15489:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15498:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15489:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15525:12:81","15574:6:81","15627:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15489:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52510,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15475:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15459:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52512,"nodeType":"ExpressionStatement","src":"15459:229:81"},{"expression":{"id":52528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52513,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15699:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52515,"indexExpression":{"hexValue":"33","id":52514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15710:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15699:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52520,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"15787:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15779:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52518,"name":"address","nodeType":"ElementaryTypeName","src":"15779:7:81","typeDescriptions":{}}},"id":52521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15779:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52522,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15822:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15831:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15822:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15846:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15822:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52525,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51689,"src":"15886:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52516,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15729:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15738:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15729:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15765:12:81","15814:6:81","15867:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15729:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52527,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15715:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15699:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52529,"nodeType":"ExpressionStatement","src":"15699:229:81"},{"expression":{"id":52550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52530,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"15939:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52534,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15987:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":52537,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52411,"src":"16076:9:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52538,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52390,"src":"16119:15:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":52539,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52393,"src":"16163:10:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":52540,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52395,"src":"16216:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52541,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52397,"src":"16273:14:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52542,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52399,"src":"16326:12:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52543,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52401,"src":"16376:19:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":52544,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52406,"src":"16436:22:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":52545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16488:2:81","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":52546,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52404,"src":"16524:15:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},{"id":52547,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"16573:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52535,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"16011:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"type(contract SubnetActorDiamond)"}},"id":52536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16030:17:81","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35829,"src":"16011:36:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35829_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":52548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16066:8:81","16103:14:81","16152:9:81","16191:23:81","16258:13:81","16305:19:81","16356:18:81","16413:21:81","16476:10:81","16508:14:81","16557:14:81"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee"],"nodeType":"FunctionCall","src":"16011:598:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"15951:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52532,"nodeType":"UserDefinedTypeName","pathNode":{"id":52531,"name":"SubnetActorDiamond","nameLocations":["15955:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"15955:18:81"},"referencedDeclaration":36177,"src":"15955:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15951:668:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"src":"15939:680:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"id":52551,"nodeType":"ExpressionStatement","src":"15939:680:81"},{"expression":{"id":52559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52552,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"16630:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52556,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16674:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16666:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52554,"name":"address","nodeType":"ElementaryTypeName","src":"16666:7:81","typeDescriptions":{}}},"id":52557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16666:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52553,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"16642:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":52558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16642:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"src":"16630:55:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":52560,"nodeType":"ExpressionStatement","src":"16630:55:81"},{"expression":{"id":52568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52561,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"16695:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52565,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16737:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16729:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52563,"name":"address","nodeType":"ElementaryTypeName","src":"16729:7:81","typeDescriptions":{}}},"id":52566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16729:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52562,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"16706:22:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":52567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16706:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"16695:53:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":52569,"nodeType":"ExpressionStatement","src":"16695:53:81"},{"expression":{"id":52577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52570,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"16758:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52574,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16793:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16785:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52572,"name":"address","nodeType":"ElementaryTypeName","src":"16785:7:81","typeDescriptions":{}}},"id":52575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16785:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52571,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"16769:15:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36477_$","typeString":"type(contract DiamondCutFacet)"}},"id":52576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16769:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"16758:46:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":52578,"nodeType":"ExpressionStatement","src":"16758:46:81"},{"expression":{"id":52586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52579,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"16814:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52583,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16851:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16843:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52581,"name":"address","nodeType":"ElementaryTypeName","src":"16843:7:81","typeDescriptions":{}}},"id":52584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16843:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52580,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"16825:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":52585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16825:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"16814:48:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":52587,"nodeType":"ExpressionStatement","src":"16814:48:81"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"14307:17:81","parameters":{"id":52407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52390,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"14342:15:81","nodeType":"VariableDeclaration","scope":52589,"src":"14334:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52389,"name":"address","nodeType":"ElementaryTypeName","src":"14334:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52393,"mutability":"mutable","name":"_consensus","nameLocation":"14381:10:81","nodeType":"VariableDeclaration","scope":52589,"src":"14367:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},"typeName":{"id":52392,"nodeType":"UserDefinedTypeName","pathNode":{"id":52391,"name":"ConsensusType","nameLocations":["14367:13:81"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"14367:13:81"},"referencedDeclaration":36918,"src":"14367:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":52395,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"14409:24:81","nodeType":"VariableDeclaration","scope":52589,"src":"14401:32:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52394,"name":"uint256","nodeType":"ElementaryTypeName","src":"14401:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52397,"mutability":"mutable","name":"_minValidators","nameLocation":"14450:14:81","nodeType":"VariableDeclaration","scope":52589,"src":"14443:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52396,"name":"uint64","nodeType":"ElementaryTypeName","src":"14443:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52399,"mutability":"mutable","name":"_checkPeriod","nameLocation":"14481:12:81","nodeType":"VariableDeclaration","scope":52589,"src":"14474:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52398,"name":"uint64","nodeType":"ElementaryTypeName","src":"14474:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52401,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"14509:19:81","nodeType":"VariableDeclaration","scope":52589,"src":"14503:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52400,"name":"uint8","nodeType":"ElementaryTypeName","src":"14503:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":52404,"mutability":"mutable","name":"_permissionMode","nameLocation":"14553:15:81","nodeType":"VariableDeclaration","scope":52589,"src":"14538:30:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"typeName":{"id":52403,"nodeType":"UserDefinedTypeName","pathNode":{"id":52402,"name":"PermissionMode","nameLocations":["14538:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48648,"src":"14538:14:81"},"referencedDeclaration":48648,"src":"14538:14:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":52406,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"14585:22:81","nodeType":"VariableDeclaration","scope":52589,"src":"14578:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52405,"name":"uint16","nodeType":"ElementaryTypeName","src":"14578:6:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"14324:289:81"},"returnParameters":{"id":52408,"nodeType":"ParameterList","parameters":[],"src":"14621:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52682,"nodeType":"FunctionDefinition","src":"16875:1021:81","nodes":[],"body":{"id":52681,"nodeType":"Block","src":"16967:929:81","nodes":[],"statements":[{"assignments":[52599],"declarations":[{"constant":false,"id":52599,"mutability":"mutable","name":"mockedManager","nameLocation":"17005:13:81","nodeType":"VariableDeclaration","scope":52681,"src":"16977:41:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":52598,"nodeType":"UserDefinedTypeName","pathNode":{"id":52597,"name":"SubnetActorManagerFacetMock","nameLocations":["16977:27:81"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"16977:27:81"},"referencedDeclaration":56069,"src":"16977:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"}],"id":52604,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17021:31:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacetMock_$56069_$","typeString":"function () returns (contract SubnetActorManagerFacetMock)"},"typeName":{"id":52601,"nodeType":"UserDefinedTypeName","pathNode":{"id":52600,"name":"SubnetActorManagerFacetMock","nameLocations":["17025:27:81"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"17025:27:81"},"referencedDeclaration":56069,"src":"17025:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}}},"id":52603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17021:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"VariableDeclarationStatement","src":"16977:77:81"},{"assignments":[52607],"declarations":[{"constant":false,"id":52607,"mutability":"mutable","name":"getter","nameLocation":"17087:6:81","nodeType":"VariableDeclaration","scope":52681,"src":"17064:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52606,"nodeType":"UserDefinedTypeName","pathNode":{"id":52605,"name":"SubnetActorGetterFacet","nameLocations":["17064:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"17064:22:81"},"referencedDeclaration":49325,"src":"17064:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":52612,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17096:26:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":52609,"nodeType":"UserDefinedTypeName","pathNode":{"id":52608,"name":"SubnetActorGetterFacet","nameLocations":["17100:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"17100:22:81"},"referencedDeclaration":49325,"src":"17100:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}},"id":52611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17096:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"17064:60:81"},{"assignments":[52618],"declarations":[{"constant":false,"id":52618,"mutability":"mutable","name":"diamondCut","nameLocation":"17162:10:81","nodeType":"VariableDeclaration","scope":52681,"src":"17135:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52616,"nodeType":"UserDefinedTypeName","pathNode":{"id":52615,"name":"IDiamond.FacetCut","nameLocations":["17135:8:81","17144:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"17135:17:81"},"referencedDeclaration":39721,"src":"17135:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52617,"nodeType":"ArrayTypeName","src":"17135:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52625,"initialValue":{"arguments":[{"hexValue":"32","id":52623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17199:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":52622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17175:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52620,"nodeType":"UserDefinedTypeName","pathNode":{"id":52619,"name":"IDiamond.FacetCut","nameLocations":["17179:8:81","17188:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"17179:17:81"},"referencedDeclaration":39721,"src":"17179:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52621,"nodeType":"ArrayTypeName","src":"17179:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17175:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17135:66:81"},{"expression":{"id":52641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52626,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"17212:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52628,"indexExpression":{"hexValue":"30","id":52627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17223:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17212:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52633,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52599,"src":"17300:13:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}],"id":52632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17292:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52631,"name":"address","nodeType":"ElementaryTypeName","src":"17292:7:81","typeDescriptions":{}}},"id":52634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17292:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52635,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17340:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17349:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"17340:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17364:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"17340:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52638,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51683,"src":"17404:24:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52629,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17242:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17251:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"17242:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17278:12:81","17332:6:81","17385:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17242:201:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52640,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17228:225:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17212:241:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52642,"nodeType":"ExpressionStatement","src":"17212:241:81"},{"expression":{"id":52658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52643,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"17464:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52645,"indexExpression":{"hexValue":"31","id":52644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17475:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17464:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52650,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52607,"src":"17552:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}],"id":52649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17544:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52648,"name":"address","nodeType":"ElementaryTypeName","src":"17544:7:81","typeDescriptions":{}}},"id":52651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17544:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52652,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17585:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17594:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"17585:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17609:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"17585:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52655,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"17649:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52646,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17494:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17503:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"17494:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17530:12:81","17577:6:81","17630:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17494:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52657,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17480:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17464:227:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52659,"nodeType":"ExpressionStatement","src":"17464:227:81"},{"assignments":[52664],"declarations":[{"constant":false,"id":52664,"mutability":"mutable","name":"params","nameLocation":"17746:6:81","nodeType":"VariableDeclaration","scope":52681,"src":"17702:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52663,"nodeType":"UserDefinedTypeName","pathNode":{"id":52662,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["17702:18:81","17721:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"17702:36:81"},"referencedDeclaration":35829,"src":"17702:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52668,"initialValue":{"arguments":[{"id":52666,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52591,"src":"17791:2:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52665,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51791,"src":"17755:35:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$35829_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":52667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17755:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"17702:92:81"},{"assignments":[52671],"declarations":[{"constant":false,"id":52671,"mutability":"mutable","name":"d","nameLocation":"17824:1:81","nodeType":"VariableDeclaration","scope":52681,"src":"17805:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52670,"nodeType":"UserDefinedTypeName","pathNode":{"id":52669,"name":"SubnetActorDiamond","nameLocations":["17805:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"17805:18:81"},"referencedDeclaration":36177,"src":"17805:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":52678,"initialValue":{"arguments":[{"id":52675,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"17851:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52676,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"17863:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17828:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52673,"nodeType":"UserDefinedTypeName","pathNode":{"id":52672,"name":"SubnetActorDiamond","nameLocations":["17832:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"17832:18:81"},"referencedDeclaration":36177,"src":"17832:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17828:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"17805:65:81"},{"expression":{"id":52679,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52671,"src":"17888:1:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":52596,"id":52680,"nodeType":"Return","src":"17881:8:81"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"16884:34:81","parameters":{"id":52592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52591,"mutability":"mutable","name":"gw","nameLocation":"16927:2:81","nodeType":"VariableDeclaration","scope":52682,"src":"16919:10:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52590,"name":"address","nodeType":"ElementaryTypeName","src":"16919:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16918:12:81"},"returnParameters":{"id":52596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52682,"src":"16947:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52594,"nodeType":"UserDefinedTypeName","pathNode":{"id":52593,"name":"SubnetActorDiamond","nameLocations":["16947:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"16947:18:81"},"referencedDeclaration":36177,"src":"16947:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"16946:20:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52824,"nodeType":"FunctionDefinition","src":"17948:1703:81","nodes":[],"body":{"id":52823,"nodeType":"Block","src":"18086:1565:81","nodes":[],"statements":[{"assignments":[52696],"declarations":[{"constant":false,"id":52696,"mutability":"mutable","name":"diamondCut","nameLocation":"18123:10:81","nodeType":"VariableDeclaration","scope":52823,"src":"18096:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52694,"nodeType":"UserDefinedTypeName","pathNode":{"id":52693,"name":"IDiamond.FacetCut","nameLocations":["18096:8:81","18105:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"18096:17:81"},"referencedDeclaration":39721,"src":"18096:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52695,"nodeType":"ArrayTypeName","src":"18096:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52703,"initialValue":{"arguments":[{"hexValue":"34","id":52701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18160:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":52700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18136:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52698,"nodeType":"UserDefinedTypeName","pathNode":{"id":52697,"name":"IDiamond.FacetCut","nameLocations":["18140:8:81","18149:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"18140:17:81"},"referencedDeclaration":39721,"src":"18140:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52699,"nodeType":"ArrayTypeName","src":"18140:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18136:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18096:66:81"},{"assignments":[52706],"declarations":[{"constant":false,"id":52706,"mutability":"mutable","name":"regCutFacet","nameLocation":"18189:11:81","nodeType":"VariableDeclaration","scope":52823,"src":"18173:27:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":52705,"nodeType":"UserDefinedTypeName","pathNode":{"id":52704,"name":"DiamondCutFacet","nameLocations":["18173:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"18173:15:81"},"referencedDeclaration":36477,"src":"18173:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":52711,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18203:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52708,"nodeType":"UserDefinedTypeName","pathNode":{"id":52707,"name":"DiamondCutFacet","nameLocations":["18207:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"18207:15:81"},"referencedDeclaration":36477,"src":"18207:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18203:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"18173:51:81"},{"assignments":[52714],"declarations":[{"constant":false,"id":52714,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"18252:13:81","nodeType":"VariableDeclaration","scope":52823,"src":"18234:31:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"DiamondLoupeFacet","nameLocations":["18234:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"18234:17:81"},"referencedDeclaration":36914,"src":"18234:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":52719,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18268:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52716,"nodeType":"UserDefinedTypeName","pathNode":{"id":52715,"name":"DiamondLoupeFacet","nameLocations":["18272:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"18272:17:81"},"referencedDeclaration":36914,"src":"18272:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18268:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"18234:57:81"},{"assignments":[52722],"declarations":[{"constant":false,"id":52722,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"18321:14:81","nodeType":"VariableDeclaration","scope":52823,"src":"18301:34:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52721,"nodeType":"UserDefinedTypeName","pathNode":{"id":52720,"name":"RegisterSubnetFacet","nameLocations":["18301:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"18301:19:81"},"referencedDeclaration":51075,"src":"18301:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":52727,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18338:23:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$51075_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":52724,"nodeType":"UserDefinedTypeName","pathNode":{"id":52723,"name":"RegisterSubnetFacet","nameLocations":["18342:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"18342:19:81"},"referencedDeclaration":51075,"src":"18342:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}}},"id":52726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18338:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"18301:62:81"},{"assignments":[52730],"declarations":[{"constant":false,"id":52730,"mutability":"mutable","name":"regGetterFacet","nameLocation":"18391:14:81","nodeType":"VariableDeclaration","scope":52823,"src":"18373:32:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52729,"nodeType":"UserDefinedTypeName","pathNode":{"id":52728,"name":"SubnetGetterFacet","nameLocations":["18373:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"18373:17:81"},"referencedDeclaration":51313,"src":"18373:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":52735,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18408:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$51313_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":52732,"nodeType":"UserDefinedTypeName","pathNode":{"id":52731,"name":"SubnetGetterFacet","nameLocations":["18412:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"18412:17:81"},"referencedDeclaration":51313,"src":"18412:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}}},"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18408:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"18373:58:81"},{"expression":{"id":52751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52736,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"18442:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52738,"indexExpression":{"hexValue":"30","id":52737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18453:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18442:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52743,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52714,"src":"18530:13:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18522:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52741,"name":"address","nodeType":"ElementaryTypeName","src":"18522:7:81","typeDescriptions":{}}},"id":52744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18522:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52745,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18570:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18579:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"18570:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18594:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"18570:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52748,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51485,"src":"18634:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52739,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18472:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18481:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"18472:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18508:12:81","18562:6:81","18615:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18472:200:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52750,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18458:224:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18442:240:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52752,"nodeType":"ExpressionStatement","src":"18442:240:81"},{"expression":{"id":52768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52753,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"18692:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52755,"indexExpression":{"hexValue":"31","id":52754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18703:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18692:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52760,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52706,"src":"18780:11:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18772:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52758,"name":"address","nodeType":"ElementaryTypeName","src":"18772:7:81","typeDescriptions":{}}},"id":52761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18772:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52762,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18818:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18827:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"18818:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18842:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"18818:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52765,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51482,"src":"18882:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52756,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18722:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18731:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"18722:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18758:12:81","18810:6:81","18863:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18722:198:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52767,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18708:222:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18692:238:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52769,"nodeType":"ExpressionStatement","src":"18692:238:81"},{"expression":{"id":52785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52770,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"18940:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52772,"indexExpression":{"hexValue":"32","id":52771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18951:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18940:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52777,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52722,"src":"19028:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}],"id":52776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19020:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52775,"name":"address","nodeType":"ElementaryTypeName","src":"19020:7:81","typeDescriptions":{}}},"id":52778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19020:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52779,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"19069:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19078:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"19069:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19093:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"19069:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52782,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51476,"src":"19133:28:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52773,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18970:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18979:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"18970:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19006:12:81","19061:6:81","19114:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18970:206:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52784,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18956:230:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18940:246:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52786,"nodeType":"ExpressionStatement","src":"18940:246:81"},{"expression":{"id":52802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52787,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"19196:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52789,"indexExpression":{"hexValue":"33","id":52788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19207:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19196:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52794,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52730,"src":"19284:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}],"id":52793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19276:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52792,"name":"address","nodeType":"ElementaryTypeName","src":"19276:7:81","typeDescriptions":{}}},"id":52795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19276:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52796,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"19325:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19334:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"19325:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19349:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"19325:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52799,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51479,"src":"19389:34:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52790,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"19226:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19235:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"19226:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19262:12:81","19317:6:81","19370:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19226:212:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52801,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19212:236:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19196:252:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52803,"nodeType":"ExpressionStatement","src":"19196:252:81"},{"assignments":[52806],"declarations":[{"constant":false,"id":52806,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"19481:17:81","nodeType":"VariableDeclaration","scope":52823,"src":"19459:39:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52805,"nodeType":"UserDefinedTypeName","pathNode":{"id":52804,"name":"SubnetRegistryDiamond","nameLocations":["19459:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"19459:21:81"},"referencedDeclaration":36415,"src":"19459:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":52813,"initialValue":{"arguments":[{"id":52810,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"19527:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52811,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52685,"src":"19539:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":52809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19501:25:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36214_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36415_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":52808,"nodeType":"UserDefinedTypeName","pathNode":{"id":52807,"name":"SubnetRegistryDiamond","nameLocations":["19505:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"19505:21:81"},"referencedDeclaration":36415,"src":"19505:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}}},"id":52812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19501:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"19459:87:81"},{"eventCall":{"arguments":[{"arguments":[{"id":52817,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"19591:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}],"id":52816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19583:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52815,"name":"address","nodeType":"ElementaryTypeName","src":"19583:7:81","typeDescriptions":{}}},"id":52818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19583:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52814,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51822,"src":"19561:21:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":52819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19561:49:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52820,"nodeType":"EmitStatement","src":"19556:54:81"},{"expression":{"id":52821,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"19627:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":52690,"id":52822,"nodeType":"Return","src":"19620:24:81"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"17957:20:81","parameters":{"id":52686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52685,"mutability":"mutable","name":"params","nameLocation":"18034:6:81","nodeType":"VariableDeclaration","scope":52824,"src":"17987:53:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":52684,"nodeType":"UserDefinedTypeName","pathNode":{"id":52683,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["17987:21:81","18009:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36214,"src":"17987:39:81"},"referencedDeclaration":36214,"src":"17987:39:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"17977:69:81"},"returnParameters":{"id":52690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52824,"src":"18063:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52688,"nodeType":"UserDefinedTypeName","pathNode":{"id":52687,"name":"SubnetRegistryDiamond","nameLocations":["18063:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"18063:21:81"},"referencedDeclaration":36415,"src":"18063:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"18062:23:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52853,"nodeType":"FunctionDefinition","src":"19657:190:81","nodes":[],"body":{"id":52852,"nodeType":"Block","src":"19738:109:81","nodes":[],"statements":[{"body":{"id":52848,"nodeType":"Block","src":"19779:42:81","statements":[{"expression":{"id":52846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52842,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52830,"src":"19793:3:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":52843,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52827,"src":"19800:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52845,"indexExpression":{"id":52844,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52833,"src":"19808:1:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19800:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19793:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52847,"nodeType":"ExpressionStatement","src":"19793:17:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52836,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52833,"src":"19767:1:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":52837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19771:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"19767:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52849,"initializationExpression":{"assignments":[52833],"declarations":[{"constant":false,"id":52833,"mutability":"mutable","name":"i","nameLocation":"19760:1:81","nodeType":"VariableDeclaration","scope":52849,"src":"19753:8:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52832,"name":"uint64","nodeType":"ElementaryTypeName","src":"19753:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":52835,"initialValue":{"hexValue":"30","id":52834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19764:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"19753:12:81"},"loopExpression":{"expression":{"id":52840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19774:3:81","subExpression":{"id":52839,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52833,"src":"19774:1:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":52841,"nodeType":"ExpressionStatement","src":"19774:3:81"},"nodeType":"ForStatement","src":"19748:73:81"},{"expression":{"id":52850,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52830,"src":"19837:3:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":52831,"id":52851,"nodeType":"Return","src":"19830:10:81"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"19666:11:81","parameters":{"id":52828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52827,"mutability":"mutable","name":"weights","nameLocation":"19695:7:81","nodeType":"VariableDeclaration","scope":52853,"src":"19678:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":52825,"name":"uint256","nodeType":"ElementaryTypeName","src":"19678:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52826,"nodeType":"ArrayTypeName","src":"19678:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"19677:26:81"},"returnParameters":{"id":52831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52830,"mutability":"mutable","name":"sum","nameLocation":"19733:3:81","nodeType":"VariableDeclaration","scope":52853,"src":"19725:11:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52829,"name":"uint256","nodeType":"ElementaryTypeName","src":"19725:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19724:13:81"},"scope":54008,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":53028,"nodeType":"FunctionDefinition","src":"19853:919:81","nodes":[],"body":{"id":53027,"nodeType":"Block","src":"19956:816:81","nodes":[],"statements":[{"expression":{"id":52870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52863,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"19966:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":52868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19996:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":52867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19979:16:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":52865,"nodeType":"UserDefinedTypeName","pathNode":{"id":52864,"name":"FvmAddress","nameLocations":["19983:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"19983:10:81"},"referencedDeclaration":48476,"src":"19983:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":52866,"nodeType":"ArrayTypeName","src":"19983:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":52869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19979:19:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"19966:32:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52871,"nodeType":"ExpressionStatement","src":"19966:32:81"},{"expression":{"id":52882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52872,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"20008:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52874,"indexExpression":{"hexValue":"30","id":52873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20019:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20008:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":52879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20054:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":52877,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20046:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20049:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20046:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20046:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52875,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"20024:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":52876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20041:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"20024:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":52881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20024:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"20008:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":52883,"nodeType":"ExpressionStatement","src":"20008:51:81"},{"expression":{"id":52894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52884,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"20069:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52886,"indexExpression":{"hexValue":"31","id":52885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20080:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20069:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":52891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20115:3:81","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":52889,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20107:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20110:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20107:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20107:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52887,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"20085:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":52888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20102:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"20085:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":52893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20085:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"20069:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":52895,"nodeType":"ExpressionStatement","src":"20069:51:81"},{"expression":{"id":52906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52896,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"20130:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52898,"indexExpression":{"hexValue":"32","id":52897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20141:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20130:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":52903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20176:3:81","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":52901,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20168:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20171:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20168:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20168:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52899,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"20146:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":52900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20163:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"20146:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":52905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20146:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"20130:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":52907,"nodeType":"ExpressionStatement","src":"20130:51:81"},{"expression":{"id":52914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52908,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20192:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":52912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20218:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":52911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20204:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52909,"name":"address","nodeType":"ElementaryTypeName","src":"20208:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52910,"nodeType":"ArrayTypeName","src":"20208:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20204:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"20192:28:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52915,"nodeType":"ExpressionStatement","src":"20192:28:81"},{"expression":{"id":52923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52916,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20230:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52918,"indexExpression":{"hexValue":"30","id":52917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20240:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20230:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":52921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20253:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":52919,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20245:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20248:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20245:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20245:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20230:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52924,"nodeType":"ExpressionStatement","src":"20230:27:81"},{"expression":{"id":52932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52925,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20267:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52927,"indexExpression":{"hexValue":"31","id":52926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20277:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20267:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":52930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20290:3:81","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":52928,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20282:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20285:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20282:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20282:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20267:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52933,"nodeType":"ExpressionStatement","src":"20267:27:81"},{"expression":{"id":52941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52934,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20304:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52936,"indexExpression":{"hexValue":"32","id":52935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20314:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20304:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":52939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20327:3:81","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":52937,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20319:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20322:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20319:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20319:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20304:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52942,"nodeType":"ExpressionStatement","src":"20304:27:81"},{"assignments":[52947],"declarations":[{"constant":false,"id":52947,"mutability":"mutable","name":"weights","nameLocation":"20359:7:81","nodeType":"VariableDeclaration","scope":53027,"src":"20342:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":52945,"name":"uint256","nodeType":"ElementaryTypeName","src":"20342:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52946,"nodeType":"ArrayTypeName","src":"20342:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":52953,"initialValue":{"arguments":[{"hexValue":"33","id":52951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20383:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":52950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20369:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":52948,"name":"uint256","nodeType":"ElementaryTypeName","src":"20373:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52949,"nodeType":"ArrayTypeName","src":"20373:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":52952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20369:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20342:43:81"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":52959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20412:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":52957,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20404:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20407:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20404:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":52961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20418:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":52954,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20396:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20399:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"20396:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":52962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20396:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52963,"nodeType":"ExpressionStatement","src":"20396:24:81"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":52969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20446:3:81","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":52967,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20438:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20441:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20438:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20438:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":52971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20452:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":52964,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20430:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20433:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"20430:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":52972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20430:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52973,"nodeType":"ExpressionStatement","src":"20430:24:81"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":52979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20480:3:81","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":52977,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20472:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20475:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20472:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20472:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":52981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20486:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":52974,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20464:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20467:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"20464:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20464:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52983,"nodeType":"ExpressionStatement","src":"20464:24:81"},{"expression":{"id":52988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52984,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"20499:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52986,"indexExpression":{"hexValue":"30","id":52985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20507:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20499:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":52987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20512:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20499:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52989,"nodeType":"ExpressionStatement","src":"20499:16:81"},{"expression":{"id":52994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52990,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"20525:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52992,"indexExpression":{"hexValue":"31","id":52991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20533:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20525:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":52993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20538:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20525:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52995,"nodeType":"ExpressionStatement","src":"20525:16:81"},{"expression":{"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52996,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"20551:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52998,"indexExpression":{"hexValue":"32","id":52997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20559:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20551:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":52999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20564:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20551:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53001,"nodeType":"ExpressionStatement","src":"20551:16:81"},{"assignments":[53004],"declarations":[{"constant":false,"id":53004,"mutability":"mutable","name":"finality","nameLocation":"20600:8:81","nodeType":"VariableDeclaration","scope":53027,"src":"20578:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":53003,"nodeType":"UserDefinedTypeName","pathNode":{"id":53002,"name":"ParentFinality","nameLocations":["20578:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"20578:14:81"},"referencedDeclaration":48396,"src":"20578:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":53013,"initialValue":{"arguments":[{"expression":{"id":53006,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20635:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":53007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20641:6:81","memberName":"number","nodeType":"MemberAccess","src":"20635:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":53010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20668:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20660:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":53008,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20660:7:81","typeDescriptions":{}}},"id":53011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20660:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53005,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"20611:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$48396_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":53012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20627:6:81","20649:9:81"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"20611:61:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"20578:94:81"},{"expression":{"arguments":[{"expression":{"id":53017,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"20692:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":53018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20703:12:81","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"20692:23:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53014,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20683:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20686:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"20683:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20683:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53020,"nodeType":"ExpressionStatement","src":"20683:33:81"},{"expression":{"arguments":[{"id":53024,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53004,"src":"20756:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":53021,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"20726:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20735:20:81","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39027,"src":"20726:29:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$48396_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":53025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20726:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":53026,"nodeType":"ExpressionStatement","src":"20726:39:81"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"19862:15:81","parameters":{"id":52854,"nodeType":"ParameterList","parameters":[],"src":"19877:2:81"},"returnParameters":{"id":52862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52858,"mutability":"mutable","name":"validators","nameLocation":"19916:10:81","nodeType":"VariableDeclaration","scope":53028,"src":"19896:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":52856,"nodeType":"UserDefinedTypeName","pathNode":{"id":52855,"name":"FvmAddress","nameLocations":["19896:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"19896:10:81"},"referencedDeclaration":48476,"src":"19896:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":52857,"nodeType":"ArrayTypeName","src":"19896:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":52861,"mutability":"mutable","name":"addresses","nameLocation":"19945:9:81","nodeType":"VariableDeclaration","scope":53028,"src":"19928:26:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":52859,"name":"address","nodeType":"ElementaryTypeName","src":"19928:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52860,"nodeType":"ArrayTypeName","src":"19928:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"19895:60:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53121,"nodeType":"FunctionDefinition","src":"20778:1285:81","nodes":[],"body":{"id":53120,"nodeType":"Block","src":"20862:1201:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53038,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"20887:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53039,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53032,"src":"20914:3:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":53037,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53898,"src":"20872:14:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":53040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20872:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53041,"nodeType":"ExpressionStatement","src":"20872:46:81"},{"assignments":[53044],"declarations":[{"constant":false,"id":53044,"mutability":"mutable","name":"crossMsg","nameLocation":"20945:8:81","nodeType":"VariableDeclaration","scope":53120,"src":"20929:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":53043,"nodeType":"UserDefinedTypeName","pathNode":{"id":53042,"name":"CrossMsg","nameLocations":["20929:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"20929:8:81"},"referencedDeclaration":48452,"src":"20929:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":53084,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":53052,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53030,"src":"21108:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53048,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"21067:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21076:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"21067:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21093:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"21067:40:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:48:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":53056,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53030,"src":"21171:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53054,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"21149:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21166:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"21149:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21149:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"id":53047,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"21024:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$48687_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":53058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21057:8:81","21137:10:81"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"21024:173:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":53064,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53032,"src":"21303:3:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53060,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"21262:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21271:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"21262:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21262:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21288:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"21262:40:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21262:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":53068,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53032,"src":"21363:3:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53066,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"21341:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21358:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"21341:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21341:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"id":53059,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"21219:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$48687_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":53070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21252:8:81","21329:10:81"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"21219:167:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":53071,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"21411:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21435:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21411:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":53074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21461:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":53075,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"21488:11:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":53078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21535:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21525:9:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":53076,"name":"bytes","nodeType":"ElementaryTypeName","src":"21529:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":53079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21525:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":53080,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"21560:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53046,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"20988:11:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$48469_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":53081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21018:4:81","21215:2:81","21404:5:81","21454:5:81","21480:6:81","21517:6:81","21555:3:81"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"20988:608:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":53082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21619:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":53045,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"20956:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$48452_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":53083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20979:7:81","21610:7:81"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"20956:679:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"20929:706:81"},{"assignments":[53089],"declarations":[{"constant":false,"id":53089,"mutability":"mutable","name":"msgs","nameLocation":"21663:4:81","nodeType":"VariableDeclaration","scope":53120,"src":"21645:22:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":53087,"nodeType":"UserDefinedTypeName","pathNode":{"id":53086,"name":"CrossMsg","nameLocations":["21645:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"21645:8:81"},"referencedDeclaration":48452,"src":"21645:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":53088,"nodeType":"ArrayTypeName","src":"21645:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":53096,"initialValue":{"arguments":[{"hexValue":"31","id":53094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21685:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21670:14:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":53091,"nodeType":"UserDefinedTypeName","pathNode":{"id":53090,"name":"CrossMsg","nameLocations":["21674:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"21674:8:81"},"referencedDeclaration":48452,"src":"21674:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":53092,"nodeType":"ArrayTypeName","src":"21674:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":53095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21670:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"21645:42:81"},{"expression":{"id":53101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53097,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53089,"src":"21697:4:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":53099,"indexExpression":{"hexValue":"30","id":53098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21702:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21697:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53100,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53044,"src":"21707:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"21697:18:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":53102,"nodeType":"ExpressionStatement","src":"21697:18:81"},{"expression":{"arguments":[{"expression":{"id":53106,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"21954:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":53107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21965:12:81","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"21954:23:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53103,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"21945:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21948:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"21945:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21945:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53109,"nodeType":"ExpressionStatement","src":"21945:33:81"},{"expression":{"arguments":[{"id":53113,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53089,"src":"22016:4:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":53110,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"21988:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21997:18:81","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":39187,"src":"21988:27:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":53114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21988:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53115,"nodeType":"ExpressionStatement","src":"21988:33:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53116,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53044,"src":"22039:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":53117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22048:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40132,"src":"22039:15:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$48452_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$48452_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":53118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22039:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":53036,"id":53119,"nodeType":"Return","src":"22032:24:81"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"20787:20:81","parameters":{"id":53033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53030,"mutability":"mutable","name":"caller","nameLocation":"20816:6:81","nodeType":"VariableDeclaration","scope":53121,"src":"20808:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53029,"name":"address","nodeType":"ElementaryTypeName","src":"20808:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53032,"mutability":"mutable","name":"src","nameLocation":"20832:3:81","nodeType":"VariableDeclaration","scope":53121,"src":"20824:11:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53031,"name":"address","nodeType":"ElementaryTypeName","src":"20824:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20807:29:81"},"returnParameters":{"id":53036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53121,"src":"20853:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20853:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20852:9:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53132,"nodeType":"FunctionDefinition","src":"22069:93:81","nodes":[],"body":{"id":53131,"nodeType":"Block","src":"22117:45:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53127,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53123,"src":"22140:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22151:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53126,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[53132,53215],"referencedDeclaration":53215,"src":"22127:12:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22127:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53130,"nodeType":"ExpressionStatement","src":"22127:28:81"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"22078:12:81","parameters":{"id":53124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53123,"mutability":"mutable","name":"validator","nameLocation":"22099:9:81","nodeType":"VariableDeclaration","scope":53132,"src":"22091:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53122,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22090:19:81"},"returnParameters":{"id":53125,"nodeType":"ParameterList","parameters":[],"src":"22117:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53215,"nodeType":"FunctionDefinition","src":"22168:596:81","nodes":[],"body":{"id":53214,"nodeType":"Block","src":"22232:532:81","nodes":[],"statements":[{"assignments":[53143],"declarations":[{"constant":false,"id":53143,"mutability":"mutable","name":"validators","nameLocation":"22262:10:81","nodeType":"VariableDeclaration","scope":53214,"src":"22242:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":53141,"nodeType":"UserDefinedTypeName","pathNode":{"id":53140,"name":"FvmAddress","nameLocations":["22242:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"22242:10:81"},"referencedDeclaration":48476,"src":"22242:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":53142,"nodeType":"ArrayTypeName","src":"22242:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":53150,"initialValue":{"arguments":[{"hexValue":"31","id":53148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22292:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22275:16:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":53145,"nodeType":"UserDefinedTypeName","pathNode":{"id":53144,"name":"FvmAddress","nameLocations":["22279:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"22279:10:81"},"referencedDeclaration":48476,"src":"22279:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":53146,"nodeType":"ArrayTypeName","src":"22279:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":53149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22275:19:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22242:52:81"},{"expression":{"id":53158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53151,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53143,"src":"22304:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":53153,"indexExpression":{"hexValue":"30","id":53152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22315:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22304:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53156,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53134,"src":"22342:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53154,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"22320:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22337:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"22320:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22320:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22304:48:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":53159,"nodeType":"ExpressionStatement","src":"22304:48:81"},{"assignments":[53164],"declarations":[{"constant":false,"id":53164,"mutability":"mutable","name":"weights","nameLocation":"22379:7:81","nodeType":"VariableDeclaration","scope":53214,"src":"22362:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53162,"name":"uint256","nodeType":"ElementaryTypeName","src":"22362:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53163,"nodeType":"ArrayTypeName","src":"22362:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53170,"initialValue":{"arguments":[{"hexValue":"31","id":53168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22403:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22389:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53165,"name":"uint256","nodeType":"ElementaryTypeName","src":"22393:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53166,"nodeType":"ArrayTypeName","src":"22393:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22389:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22362:43:81"},{"expression":{"id":53175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53171,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53164,"src":"22415:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53173,"indexExpression":{"hexValue":"30","id":53172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22423:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22415:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53174,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53136,"src":"22428:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22415:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53176,"nodeType":"ExpressionStatement","src":"22415:19:81"},{"expression":{"arguments":[{"id":53180,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53134,"src":"22453:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":53181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22464:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":53177,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22445:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22448:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22445:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22445:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53183,"nodeType":"ExpressionStatement","src":"22445:21:81"},{"assignments":[53186],"declarations":[{"constant":false,"id":53186,"mutability":"mutable","name":"finality","nameLocation":"22498:8:81","nodeType":"VariableDeclaration","scope":53214,"src":"22476:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":53185,"nodeType":"UserDefinedTypeName","pathNode":{"id":53184,"name":"ParentFinality","nameLocations":["22476:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"22476:14:81"},"referencedDeclaration":48396,"src":"22476:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":53195,"initialValue":{"arguments":[{"expression":{"id":53188,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22533:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":53189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22539:6:81","memberName":"number","nodeType":"MemberAccess","src":"22533:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":53192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22566:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22558:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":53190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22558:7:81","typeDescriptions":{}}},"id":53193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22558:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53187,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"22509:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$48396_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":53194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["22525:6:81","22547:9:81"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"22509:61:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"22476:94:81"},{"expression":{"arguments":[{"expression":{"id":53199,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"22660:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":53200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22671:12:81","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"22660:23:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53196,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22646:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22649:10:81","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"22646:13:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22646:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53202,"nodeType":"ExpressionStatement","src":"22646:38:81"},{"expression":{"arguments":[{"id":53206,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53186,"src":"22724:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":53203,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"22694:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22703:20:81","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39027,"src":"22694:29:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$48396_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":53207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22694:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":53208,"nodeType":"ExpressionStatement","src":"22694:39:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53209,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22743:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22746:9:81","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"22743:12:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":53212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22743:14:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53213,"nodeType":"ExpressionStatement","src":"22743:14:81"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"22177:12:81","parameters":{"id":53137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53134,"mutability":"mutable","name":"validator","nameLocation":"22198:9:81","nodeType":"VariableDeclaration","scope":53215,"src":"22190:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53133,"name":"address","nodeType":"ElementaryTypeName","src":"22190:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53136,"mutability":"mutable","name":"weight","nameLocation":"22217:6:81","nodeType":"VariableDeclaration","scope":53215,"src":"22209:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53135,"name":"uint256","nodeType":"ElementaryTypeName","src":"22209:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22189:35:81"},"returnParameters":{"id":53138,"nodeType":"ParameterList","parameters":[],"src":"22232:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53228,"nodeType":"FunctionDefinition","src":"22770:112:81","nodes":[],"body":{"id":53227,"nodeType":"Block","src":"22814:68:81","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":53223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22836:30:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":53224,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53217,"src":"22868:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53220,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"22824:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22832:3:81","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"22824:11:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":53225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22824:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53226,"nodeType":"ExpressionStatement","src":"22824:51:81"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"22779:6:81","parameters":{"id":53218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53217,"mutability":"mutable","name":"amount","nameLocation":"22794:6:81","nodeType":"VariableDeclaration","scope":53228,"src":"22786:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53216,"name":"uint256","nodeType":"ElementaryTypeName","src":"22786:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22785:16:81"},"returnParameters":{"id":53219,"nodeType":"ParameterList","parameters":[],"src":"22814:0:81"},"scope":54008,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":53327,"nodeType":"FunctionDefinition","src":"22888:968:81","nodes":[],"body":{"id":53326,"nodeType":"Block","src":"22952:904:81","nodes":[],"statements":[{"assignments":[53237,null,53239,null,53241,null],"declarations":[{"constant":false,"id":53237,"mutability":"mutable","name":"subnetId","nameLocation":"23044:8:81","nodeType":"VariableDeclaration","scope":53326,"src":"23028:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53236,"nodeType":"UserDefinedTypeName","pathNode":{"id":53235,"name":"SubnetID","nameLocations":["23028:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"23028:8:81"},"referencedDeclaration":48557,"src":"23028:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":53239,"mutability":"mutable","name":"nonceBefore","nameLocation":"23064:11:81","nodeType":"VariableDeclaration","scope":53326,"src":"23056:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53238,"name":"uint256","nodeType":"ElementaryTypeName","src":"23056:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":53241,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"23087:16:81","nodeType":"VariableDeclaration","scope":53326,"src":"23079:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53240,"name":"uint256","nodeType":"ElementaryTypeName","src":"23079:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":53248,"initialValue":{"arguments":[{"arguments":[{"id":53245,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"23127:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":53244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23119:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53243,"name":"address","nodeType":"ElementaryTypeName","src":"23119:7:81","typeDescriptions":{}}},"id":53246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23119:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53242,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"23109:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23109:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"23027:111:81"},{"assignments":[53250],"declarations":[{"constant":false,"id":53250,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"23157:25:81","nodeType":"VariableDeclaration","scope":53326,"src":"23149:33:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53249,"name":"uint256","nodeType":"ElementaryTypeName","src":"23149:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53257,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":53253,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53237,"src":"23221:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":53251,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"23185:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23194:26:81","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37318,"src":"23185:35:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":53254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23185:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23233:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23185:49:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23149:85:81"},{"assignments":[53259],"declarations":[{"constant":false,"id":53259,"mutability":"mutable","name":"expectedNonce","nameLocation":"23252:13:81","nodeType":"VariableDeclaration","scope":53326,"src":"23244:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53258,"name":"uint256","nodeType":"ElementaryTypeName","src":"23244:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53263,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53260,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53239,"src":"23268:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23282:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23268:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23244:39:81"},{"assignments":[53265],"declarations":[{"constant":false,"id":53265,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"23301:18:81","nodeType":"VariableDeclaration","scope":53326,"src":"23293:26:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53264,"name":"uint256","nodeType":"ElementaryTypeName","src":"23293:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53269,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53266,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53241,"src":"23322:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":53267,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53232,"src":"23341:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23322:29:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23293:58:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53271,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"23370:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23379:11:81","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37148,"src":"23370:20:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23370:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":53274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23395:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23370:26:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":53276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23398:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":53270,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23362:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23362:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53278,"nodeType":"ExpressionStatement","src":"23362:55:81"},{"expression":{"arguments":[{"id":53284,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53237,"src":"23462:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":53287,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"23494:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53285,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"23472:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23489:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"23472:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23472:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":53279,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"23428:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23438:4:81","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38311,"src":"23428:14:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":53283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53282,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53232,"src":"23450:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"23428:33:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23428:81:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53290,"nodeType":"ExpressionStatement","src":"23428:81:81"},{"assignments":[null,null,53292,null,53294,null],"declarations":[null,null,{"constant":false,"id":53292,"mutability":"mutable","name":"nonce","nameLocation":"23533:5:81","nodeType":"VariableDeclaration","scope":53326,"src":"23525:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53291,"name":"uint256","nodeType":"ElementaryTypeName","src":"23525:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":53294,"mutability":"mutable","name":"circSupply","nameLocation":"23550:10:81","nodeType":"VariableDeclaration","scope":53326,"src":"23542:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53293,"name":"uint256","nodeType":"ElementaryTypeName","src":"23542:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":53301,"initialValue":{"arguments":[{"arguments":[{"id":53298,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"23584:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":53297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23576:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53296,"name":"address","nodeType":"ElementaryTypeName","src":"23576:7:81","typeDescriptions":{}}},"id":53299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23576:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53295,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"23566:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23566:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"23520:75:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":53305,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53237,"src":"23650:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":53303,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"23614:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23623:26:81","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37318,"src":"23614:35:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":53306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23614:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53307,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53250,"src":"23663:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23614:74:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":53309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23690:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":53302,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23606:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23606:105:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53311,"nodeType":"ExpressionStatement","src":"23606:105:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53313,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53292,"src":"23730:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53314,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53259,"src":"23739:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23730:22:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":53316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23754:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":53312,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23722:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23722:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53318,"nodeType":"ExpressionStatement","src":"23722:51:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53320,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53294,"src":"23791:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53321,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53265,"src":"23805:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23791:32:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":53323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23825:23:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":53319,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23783:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23783:66:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53325,"nodeType":"ExpressionStatement","src":"23783:66:81"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"22897:4:81","parameters":{"id":53233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53230,"mutability":"mutable","name":"funderAddress","nameLocation":"22910:13:81","nodeType":"VariableDeclaration","scope":53327,"src":"22902:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53229,"name":"address","nodeType":"ElementaryTypeName","src":"22902:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53232,"mutability":"mutable","name":"fundAmount","nameLocation":"22933:10:81","nodeType":"VariableDeclaration","scope":53327,"src":"22925:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53231,"name":"uint256","nodeType":"ElementaryTypeName","src":"22925:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22901:43:81"},"returnParameters":{"id":53234,"nodeType":"ParameterList","parameters":[],"src":"22952:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53358,"nodeType":"FunctionDefinition","src":"23862:243:81","nodes":[],"body":{"id":53357,"nodeType":"Block","src":"23930:175:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53337,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53329,"src":"23949:16:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53334,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23940:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23943:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"23940:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23940:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53339,"nodeType":"ExpressionStatement","src":"23940:26:81"},{"expression":{"arguments":[{"id":53343,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53329,"src":"23984:16:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":53346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":53344,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"24002:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24030:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24002:29:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":53340,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23976:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23979:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"23976:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23976:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53348,"nodeType":"ExpressionStatement","src":"23976:56:81"},{"expression":{"arguments":[{"id":53354,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53331,"src":"24091:6:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":53349,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"24042:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":53351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24052:4:81","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"24042:14:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":53353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53352,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"24064:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"24042:48:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":53355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24042:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53356,"nodeType":"ExpressionStatement","src":"24042:56:81"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"23871:4:81","parameters":{"id":53332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53329,"mutability":"mutable","name":"validatorAddress","nameLocation":"23884:16:81","nodeType":"VariableDeclaration","scope":53358,"src":"23876:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53328,"name":"address","nodeType":"ElementaryTypeName","src":"23876:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53331,"mutability":"mutable","name":"pubkey","nameLocation":"23915:6:81","nodeType":"VariableDeclaration","scope":53358,"src":"23902:19:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53330,"name":"bytes","nodeType":"ElementaryTypeName","src":"23902:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"23875:47:81"},"returnParameters":{"id":53333,"nodeType":"ParameterList","parameters":[],"src":"23930:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53405,"nodeType":"FunctionDefinition","src":"24111:298:81","nodes":[],"body":{"id":53404,"nodeType":"Block","src":"24179:230:81","nodes":[],"statements":[{"assignments":[53369],"declarations":[{"constant":false,"id":53369,"mutability":"mutable","name":"validators","nameLocation":"24206:10:81","nodeType":"VariableDeclaration","scope":53404,"src":"24189:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53367,"name":"address","nodeType":"ElementaryTypeName","src":"24189:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53368,"nodeType":"ArrayTypeName","src":"24189:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53375,"initialValue":{"arguments":[{"hexValue":"31","id":53373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24233:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24219:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53370,"name":"address","nodeType":"ElementaryTypeName","src":"24223:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53371,"nodeType":"ArrayTypeName","src":"24223:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24219:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24189:46:81"},{"expression":{"id":53380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53376,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53369,"src":"24245:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53378,"indexExpression":{"hexValue":"30","id":53377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24256:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24245:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53379,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53360,"src":"24261:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24245:25:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53381,"nodeType":"ExpressionStatement","src":"24245:25:81"},{"assignments":[53386],"declarations":[{"constant":false,"id":53386,"mutability":"mutable","name":"privKeys","nameLocation":"24298:8:81","nodeType":"VariableDeclaration","scope":53404,"src":"24281:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53384,"name":"uint256","nodeType":"ElementaryTypeName","src":"24281:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53385,"nodeType":"ArrayTypeName","src":"24281:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53392,"initialValue":{"arguments":[{"hexValue":"31","id":53390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24323:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24309:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53387,"name":"uint256","nodeType":"ElementaryTypeName","src":"24313:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53388,"nodeType":"ArrayTypeName","src":"24313:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24309:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24281:44:81"},{"expression":{"id":53397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53393,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53386,"src":"24335:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53395,"indexExpression":{"hexValue":"30","id":53394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24344:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24335:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53396,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53362,"src":"24349:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24335:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53398,"nodeType":"ExpressionStatement","src":"24335:21:81"},{"expression":{"arguments":[{"id":53400,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53369,"src":"24381:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53401,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53386,"src":"24393:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":53399,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[53405,53468,53547,53698],"referencedDeclaration":53698,"src":"24367:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":53402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24367:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53403,"nodeType":"ExpressionStatement","src":"24367:35:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24120:13:81","parameters":{"id":53363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53360,"mutability":"mutable","name":"validator","nameLocation":"24142:9:81","nodeType":"VariableDeclaration","scope":53405,"src":"24134:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53359,"name":"address","nodeType":"ElementaryTypeName","src":"24134:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53362,"mutability":"mutable","name":"privKey","nameLocation":"24161:7:81","nodeType":"VariableDeclaration","scope":53405,"src":"24153:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53361,"name":"uint256","nodeType":"ElementaryTypeName","src":"24153:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24133:36:81"},"returnParameters":{"id":53364,"nodeType":"ParameterList","parameters":[],"src":"24179:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53468,"nodeType":"FunctionDefinition","src":"24415:408:81","nodes":[],"body":{"id":53467,"nodeType":"Block","src":"24523:300:81","nodes":[],"statements":[{"assignments":[53420],"declarations":[{"constant":false,"id":53420,"mutability":"mutable","name":"validators","nameLocation":"24550:10:81","nodeType":"VariableDeclaration","scope":53467,"src":"24533:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53418,"name":"address","nodeType":"ElementaryTypeName","src":"24533:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53419,"nodeType":"ArrayTypeName","src":"24533:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53426,"initialValue":{"arguments":[{"hexValue":"32","id":53424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24577:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24563:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53421,"name":"address","nodeType":"ElementaryTypeName","src":"24567:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53422,"nodeType":"ArrayTypeName","src":"24567:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24563:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24533:46:81"},{"expression":{"id":53431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53427,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53420,"src":"24589:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53429,"indexExpression":{"hexValue":"30","id":53428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24600:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24589:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53430,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53407,"src":"24605:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24589:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53432,"nodeType":"ExpressionStatement","src":"24589:26:81"},{"expression":{"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53433,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53420,"src":"24625:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53435,"indexExpression":{"hexValue":"31","id":53434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24636:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24625:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53436,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53411,"src":"24641:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24625:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53438,"nodeType":"ExpressionStatement","src":"24625:26:81"},{"assignments":[53443],"declarations":[{"constant":false,"id":53443,"mutability":"mutable","name":"privKeys","nameLocation":"24679:8:81","nodeType":"VariableDeclaration","scope":53467,"src":"24662:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53441,"name":"uint256","nodeType":"ElementaryTypeName","src":"24662:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53442,"nodeType":"ArrayTypeName","src":"24662:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53449,"initialValue":{"arguments":[{"hexValue":"32","id":53447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24704:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24690:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53444,"name":"uint256","nodeType":"ElementaryTypeName","src":"24694:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53445,"nodeType":"ArrayTypeName","src":"24694:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24690:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24662:44:81"},{"expression":{"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53450,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"24716:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53452,"indexExpression":{"hexValue":"30","id":53451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24725:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24716:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53453,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53409,"src":"24730:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24716:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53455,"nodeType":"ExpressionStatement","src":"24716:22:81"},{"expression":{"id":53460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53456,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"24748:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53458,"indexExpression":{"hexValue":"31","id":53457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24757:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24748:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53459,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53413,"src":"24762:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24748:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53461,"nodeType":"ExpressionStatement","src":"24748:22:81"},{"expression":{"arguments":[{"id":53463,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53420,"src":"24795:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53464,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"24807:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":53462,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[53405,53468,53547,53698],"referencedDeclaration":53698,"src":"24781:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":53465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24781:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53466,"nodeType":"ExpressionStatement","src":"24781:35:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24424:13:81","parameters":{"id":53414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53407,"mutability":"mutable","name":"validator1","nameLocation":"24446:10:81","nodeType":"VariableDeclaration","scope":53468,"src":"24438:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53406,"name":"address","nodeType":"ElementaryTypeName","src":"24438:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53409,"mutability":"mutable","name":"privKey1","nameLocation":"24466:8:81","nodeType":"VariableDeclaration","scope":53468,"src":"24458:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53408,"name":"uint256","nodeType":"ElementaryTypeName","src":"24458:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53411,"mutability":"mutable","name":"validator2","nameLocation":"24484:10:81","nodeType":"VariableDeclaration","scope":53468,"src":"24476:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53410,"name":"address","nodeType":"ElementaryTypeName","src":"24476:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53413,"mutability":"mutable","name":"privKey2","nameLocation":"24504:8:81","nodeType":"VariableDeclaration","scope":53468,"src":"24496:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53412,"name":"uint256","nodeType":"ElementaryTypeName","src":"24496:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24437:76:81"},"returnParameters":{"id":53415,"nodeType":"ParameterList","parameters":[],"src":"24523:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53547,"nodeType":"FunctionDefinition","src":"24829:568:81","nodes":[],"body":{"id":53546,"nodeType":"Block","src":"25029:368:81","nodes":[],"statements":[{"assignments":[53487],"declarations":[{"constant":false,"id":53487,"mutability":"mutable","name":"validators","nameLocation":"25056:10:81","nodeType":"VariableDeclaration","scope":53546,"src":"25039:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53485,"name":"address","nodeType":"ElementaryTypeName","src":"25039:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53486,"nodeType":"ArrayTypeName","src":"25039:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53493,"initialValue":{"arguments":[{"hexValue":"33","id":53491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25083:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":53490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25069:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53488,"name":"address","nodeType":"ElementaryTypeName","src":"25073:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53489,"nodeType":"ArrayTypeName","src":"25073:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25069:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"25039:46:81"},{"expression":{"id":53498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53494,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25095:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53496,"indexExpression":{"hexValue":"30","id":53495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25106:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25095:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53497,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53470,"src":"25111:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25095:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53499,"nodeType":"ExpressionStatement","src":"25095:26:81"},{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53500,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25131:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53502,"indexExpression":{"hexValue":"31","id":53501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25142:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25131:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53503,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53474,"src":"25147:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25131:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53505,"nodeType":"ExpressionStatement","src":"25131:26:81"},{"expression":{"id":53510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53506,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25167:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53508,"indexExpression":{"hexValue":"32","id":53507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25178:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25167:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53509,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53478,"src":"25183:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25167:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53511,"nodeType":"ExpressionStatement","src":"25167:26:81"},{"assignments":[53516],"declarations":[{"constant":false,"id":53516,"mutability":"mutable","name":"privKeys","nameLocation":"25221:8:81","nodeType":"VariableDeclaration","scope":53546,"src":"25204:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53514,"name":"uint256","nodeType":"ElementaryTypeName","src":"25204:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53515,"nodeType":"ArrayTypeName","src":"25204:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53522,"initialValue":{"arguments":[{"hexValue":"33","id":53520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25246:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":53519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25232:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53517,"name":"uint256","nodeType":"ElementaryTypeName","src":"25236:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53518,"nodeType":"ArrayTypeName","src":"25236:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25232:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"25204:44:81"},{"expression":{"id":53527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53523,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25258:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53525,"indexExpression":{"hexValue":"30","id":53524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25267:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25258:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53526,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53472,"src":"25272:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25258:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53528,"nodeType":"ExpressionStatement","src":"25258:22:81"},{"expression":{"id":53533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53529,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25290:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53531,"indexExpression":{"hexValue":"31","id":53530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25299:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25290:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53532,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53476,"src":"25304:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25290:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53534,"nodeType":"ExpressionStatement","src":"25290:22:81"},{"expression":{"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53535,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25322:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53537,"indexExpression":{"hexValue":"32","id":53536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25331:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25322:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53538,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53480,"src":"25336:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25322:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53540,"nodeType":"ExpressionStatement","src":"25322:22:81"},{"expression":{"arguments":[{"id":53542,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25369:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53543,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25381:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":53541,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[53405,53468,53547,53698],"referencedDeclaration":53698,"src":"25355:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":53544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25355:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53545,"nodeType":"ExpressionStatement","src":"25355:35:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24838:13:81","parameters":{"id":53481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53470,"mutability":"mutable","name":"validator1","nameLocation":"24869:10:81","nodeType":"VariableDeclaration","scope":53547,"src":"24861:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53469,"name":"address","nodeType":"ElementaryTypeName","src":"24861:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53472,"mutability":"mutable","name":"privKey1","nameLocation":"24897:8:81","nodeType":"VariableDeclaration","scope":53547,"src":"24889:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53471,"name":"uint256","nodeType":"ElementaryTypeName","src":"24889:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53474,"mutability":"mutable","name":"validator2","nameLocation":"24923:10:81","nodeType":"VariableDeclaration","scope":53547,"src":"24915:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53473,"name":"address","nodeType":"ElementaryTypeName","src":"24915:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53476,"mutability":"mutable","name":"privKey2","nameLocation":"24951:8:81","nodeType":"VariableDeclaration","scope":53547,"src":"24943:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53475,"name":"uint256","nodeType":"ElementaryTypeName","src":"24943:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53478,"mutability":"mutable","name":"validator3","nameLocation":"24977:10:81","nodeType":"VariableDeclaration","scope":53547,"src":"24969:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53477,"name":"address","nodeType":"ElementaryTypeName","src":"24969:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53480,"mutability":"mutable","name":"privKey3","nameLocation":"25005:8:81","nodeType":"VariableDeclaration","scope":53547,"src":"24997:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53479,"name":"uint256","nodeType":"ElementaryTypeName","src":"24997:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24851:168:81"},"returnParameters":{"id":53482,"nodeType":"ParameterList","parameters":[],"src":"25029:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53698,"nodeType":"FunctionDefinition","src":"25403:1102:81","nodes":[],"body":{"id":53697,"nodeType":"Block","src":"25491:1014:81","nodes":[],"statements":[{"assignments":[53557],"declarations":[{"constant":false,"id":53557,"mutability":"mutable","name":"n","nameLocation":"25509:1:81","nodeType":"VariableDeclaration","scope":53697,"src":"25501:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53556,"name":"uint256","nodeType":"ElementaryTypeName","src":"25501:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53560,"initialValue":{"expression":{"id":53558,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53550,"src":"25513:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25524:6:81","memberName":"length","nodeType":"MemberAccess","src":"25513:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25501:29:81"},{"assignments":[53565],"declarations":[{"constant":false,"id":53565,"mutability":"mutable","name":"signatures","nameLocation":"25556:10:81","nodeType":"VariableDeclaration","scope":53697,"src":"25541:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":53563,"name":"bytes","nodeType":"ElementaryTypeName","src":"25541:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":53564,"nodeType":"ArrayTypeName","src":"25541:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":53571,"initialValue":{"arguments":[{"id":53569,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53557,"src":"25581:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25569:11:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":53566,"name":"bytes","nodeType":"ElementaryTypeName","src":"25573:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":53567,"nodeType":"ArrayTypeName","src":"25573:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25569:14:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"25541:42:81"},{"assignments":[53573,null],"declarations":[{"constant":false,"id":53573,"mutability":"mutable","name":"nextConfigNum","nameLocation":"25602:13:81","nodeType":"VariableDeclaration","scope":53697,"src":"25595:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53572,"name":"uint64","nodeType":"ElementaryTypeName","src":"25595:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":53577,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53574,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25621:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25630:23:81","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":48814,"src":"25621:32:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":53576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25621:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"25594:61:81"},{"assignments":[53579],"declarations":[{"constant":false,"id":53579,"mutability":"mutable","name":"h","nameLocation":"25674:1:81","nodeType":"VariableDeclaration","scope":53697,"src":"25666:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53578,"name":"uint256","nodeType":"ElementaryTypeName","src":"25666:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53587,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53580,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25678:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25687:28:81","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":48937,"src":"25678:37:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25678:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53583,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25720:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25729:19:81","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":48919,"src":"25720:28:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":53585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25720:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25678:72:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25666:84:81"},{"assignments":[53590],"declarations":[{"constant":false,"id":53590,"mutability":"mutable","name":"checkpoint","nameLocation":"25787:10:81","nodeType":"VariableDeclaration","scope":53697,"src":"25761:36:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":53589,"nodeType":"UserDefinedTypeName","pathNode":{"id":53588,"name":"BottomUpCheckpoint","nameLocations":["25761:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"25761:18:81"},"referencedDeclaration":48410,"src":"25761:18:81","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":53612,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":53598,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"25887:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":53597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25879:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53596,"name":"address","nodeType":"ElementaryTypeName","src":"25879:7:81","typeDescriptions":{}}},"id":53599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25879:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53592,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25843:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25852:9:81","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":48750,"src":"25843:18:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25843:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25864:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"25843:35:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25843:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53601,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53579,"src":"25925:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":53605,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53579,"src":"25972:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53603,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25961:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25965:6:81","memberName":"encode","nodeType":"MemberAccess","src":"25961:10:81","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25961:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53602,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"25951:9:81","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25951:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":53610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53608,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53573,"src":"26014:13:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":53609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26030:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26014:17:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":53591,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"25800:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$48410_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":53611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25833:8:81","25912:11:81","25940:9:81","25989:23:81"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"25800:242:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"25761:281:81"},{"expression":{"arguments":[{"arguments":[{"id":53618,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"26069:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":53617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26061:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53616,"name":"address","nodeType":"ElementaryTypeName","src":"26061:7:81","typeDescriptions":{}}},"id":53619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26061:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26081:9:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":53613,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26053:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26056:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26053:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26053:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53622,"nodeType":"ExpressionStatement","src":"26053:38:81"},{"assignments":[53624],"declarations":[{"constant":false,"id":53624,"mutability":"mutable","name":"hash","nameLocation":"26110:4:81","nodeType":"VariableDeclaration","scope":53697,"src":"26102:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26102:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":53631,"initialValue":{"arguments":[{"arguments":[{"id":53628,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53590,"src":"26138:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":53626,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26127:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26131:6:81","memberName":"encode","nodeType":"MemberAccess","src":"26127:10:81","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26127:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53625,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"26117:9:81","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26117:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26102:48:81"},{"body":{"id":53667,"nodeType":"Block","src":"26193:140:81","statements":[{"assignments":[53643,53645,53647],"declarations":[{"constant":false,"id":53643,"mutability":"mutable","name":"v","nameLocation":"26214:1:81","nodeType":"VariableDeclaration","scope":53667,"src":"26208:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53642,"name":"uint8","nodeType":"ElementaryTypeName","src":"26208:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53645,"mutability":"mutable","name":"r","nameLocation":"26225:1:81","nodeType":"VariableDeclaration","scope":53667,"src":"26217:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26217:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":53647,"mutability":"mutable","name":"s","nameLocation":"26236:1:81","nodeType":"VariableDeclaration","scope":53667,"src":"26228:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26228:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":53655,"initialValue":{"arguments":[{"baseExpression":{"id":53650,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53553,"src":"26249:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53652,"indexExpression":{"id":53651,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26258:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26249:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53653,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53624,"src":"26262:4:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":53648,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26241:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26244:4:81","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"26241:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26241:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"26207:60:81"},{"expression":{"id":53665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53656,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53565,"src":"26281:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":53658,"indexExpression":{"id":53657,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26292:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26281:13:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53661,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53645,"src":"26314:1:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":53662,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53647,"src":"26317:1:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":53663,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53643,"src":"26320:1:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":53659,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26297:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26301:12:81","memberName":"encodePacked","nodeType":"MemberAccess","src":"26297:16:81","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26297:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"26281:41:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":53666,"nodeType":"ExpressionStatement","src":"26281:41:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26181:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":53637,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53557,"src":"26185:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26181:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53668,"initializationExpression":{"assignments":[53633],"declarations":[{"constant":false,"id":53633,"mutability":"mutable","name":"i","nameLocation":"26174:1:81","nodeType":"VariableDeclaration","scope":53668,"src":"26166:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53632,"name":"uint256","nodeType":"ElementaryTypeName","src":"26166:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53635,"initialValue":{"hexValue":"30","id":53634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26178:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26166:13:81"},"loopExpression":{"expression":{"id":53640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26188:3:81","subExpression":{"id":53639,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26188:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53641,"nodeType":"ExpressionStatement","src":"26188:3:81"},"nodeType":"ForStatement","src":"26161:172:81"},{"body":{"id":53695,"nodeType":"Block","src":"26375:124:81","statements":[{"expression":{"arguments":[{"baseExpression":{"id":53682,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53550,"src":"26398:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53684,"indexExpression":{"id":53683,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53670,"src":"26409:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26398:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53679,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26389:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26392:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26389:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26389:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53686,"nodeType":"ExpressionStatement","src":"26389:23:81"},{"expression":{"arguments":[{"id":53690,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53590,"src":"26453:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":53691,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53550,"src":"26465:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53692,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53565,"src":"26477:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":53687,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"26426:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":53689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26436:16:81","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":49634,"src":"26426:26:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26426:62:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53694,"nodeType":"ExpressionStatement","src":"26426:62:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53673,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53670,"src":"26363:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":53674,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53557,"src":"26367:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26363:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53696,"initializationExpression":{"assignments":[53670],"declarations":[{"constant":false,"id":53670,"mutability":"mutable","name":"i","nameLocation":"26356:1:81","nodeType":"VariableDeclaration","scope":53696,"src":"26348:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53669,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53672,"initialValue":{"hexValue":"30","id":53671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26360:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26348:13:81"},"loopExpression":{"expression":{"id":53677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26370:3:81","subExpression":{"id":53676,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53670,"src":"26370:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53678,"nodeType":"ExpressionStatement","src":"26370:3:81"},"nodeType":"ForStatement","src":"26343:156:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"25412:13:81","parameters":{"id":53554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53550,"mutability":"mutable","name":"validators","nameLocation":"25443:10:81","nodeType":"VariableDeclaration","scope":53698,"src":"25426:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53548,"name":"address","nodeType":"ElementaryTypeName","src":"25426:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53549,"nodeType":"ArrayTypeName","src":"25426:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":53553,"mutability":"mutable","name":"privKeys","nameLocation":"25472:8:81","nodeType":"VariableDeclaration","scope":53698,"src":"25455:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53551,"name":"uint256","nodeType":"ElementaryTypeName","src":"25455:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53552,"nodeType":"ArrayTypeName","src":"25455:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"25425:56:81"},"returnParameters":{"id":53555,"nodeType":"ParameterList","parameters":[],"src":"25491:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53733,"nodeType":"FunctionDefinition","src":"26511:305:81","nodes":[],"body":{"id":53732,"nodeType":"Block","src":"26558:258:81","nodes":[],"statements":[{"assignments":[53704],"declarations":[{"constant":false,"id":53704,"mutability":"mutable","name":"expectedNonce","nameLocation":"26576:13:81","nodeType":"VariableDeclaration","scope":53732,"src":"26568:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53703,"name":"uint256","nodeType":"ElementaryTypeName","src":"26568:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53710,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":53709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53705,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"26592:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26601:13:81","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37157,"src":"26592:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":53707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26592:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26619:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26592:28:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26568:52:81"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":53718,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"26692:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26696:6:81","memberName":"sender","nodeType":"MemberAccess","src":"26692:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53716,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"26670:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26687:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"26670:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26670:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":53711,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"26630:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26640:7:81","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38358,"src":"26630:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":53715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53714,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53700,"src":"26655:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26630:39:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":53721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26630:74:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53722,"nodeType":"ExpressionStatement","src":"26630:74:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53724,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"26722:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26731:13:81","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37157,"src":"26722:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":53726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26722:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53727,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53704,"src":"26750:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26722:41:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":53729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26765:43:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":53723,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26714:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26714:95:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53731,"nodeType":"ExpressionStatement","src":"26714:95:81"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"26520:7:81","parameters":{"id":53701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53700,"mutability":"mutable","name":"releaseAmount","nameLocation":"26536:13:81","nodeType":"VariableDeclaration","scope":53733,"src":"26528:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53699,"name":"uint256","nodeType":"ElementaryTypeName","src":"26528:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26527:23:81"},"returnParameters":{"id":53702,"nodeType":"ParameterList","parameters":[],"src":"26558:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53788,"nodeType":"FunctionDefinition","src":"26822:540:81","nodes":[],"body":{"id":53787,"nodeType":"Block","src":"26891:471:81","nodes":[],"statements":[{"assignments":[53741],"declarations":[{"constant":false,"id":53741,"mutability":"mutable","name":"balanceBefore","nameLocation":"26909:13:81","nodeType":"VariableDeclaration","scope":53787,"src":"26901:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53740,"name":"uint256","nodeType":"ElementaryTypeName","src":"26901:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53744,"initialValue":{"expression":{"id":53742,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"26925:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26939:7:81","memberName":"balance","nodeType":"MemberAccess","src":"26925:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26901:45:81"},{"assignments":[null,53746,null,null,null,null],"declarations":[null,{"constant":false,"id":53746,"mutability":"mutable","name":"stakedBefore","nameLocation":"26968:12:81","nodeType":"VariableDeclaration","scope":53787,"src":"26960:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53745,"name":"uint256","nodeType":"ElementaryTypeName","src":"26960:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null,null],"id":53750,"initialValue":{"arguments":[{"id":53748,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"27002:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53747,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"26992:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26992:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"26957:59:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":53751,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"27027:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27037:8:81","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38090,"src":"27027:18:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":53755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53754,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"27053:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"27027:38:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":53756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27027:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53757,"nodeType":"ExpressionStatement","src":"27027:40:81"},{"assignments":[53759],"declarations":[{"constant":false,"id":53759,"mutability":"mutable","name":"balanceAfter","nameLocation":"27086:12:81","nodeType":"VariableDeclaration","scope":53787,"src":"27078:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53758,"name":"uint256","nodeType":"ElementaryTypeName","src":"27078:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53762,"initialValue":{"expression":{"id":53760,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"27101:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27115:7:81","memberName":"balance","nodeType":"MemberAccess","src":"27101:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27078:44:81"},{"assignments":[null,53764,null,null,null,null],"declarations":[null,{"constant":false,"id":53764,"mutability":"mutable","name":"stakedAfter","nameLocation":"27143:11:81","nodeType":"VariableDeclaration","scope":53787,"src":"27135:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53763,"name":"uint256","nodeType":"ElementaryTypeName","src":"27135:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null,null],"id":53768,"initialValue":{"arguments":[{"id":53766,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"27176:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53765,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"27166:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27166:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"27132:58:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53770,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53759,"src":"27209:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53771,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53741,"src":"27225:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":53772,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"27241:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27225:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27209:43:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":53775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27254:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":53769,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27201:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27201:74:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53777,"nodeType":"ExpressionStatement","src":"27201:74:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53779,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53764,"src":"27293:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53780,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53746,"src":"27308:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":53781,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"27323:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27308:26:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27293:41:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":53784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27336:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":53778,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27285:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27285:70:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53786,"nodeType":"ExpressionStatement","src":"27285:70:81"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"26831:8:81","parameters":{"id":53738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53735,"mutability":"mutable","name":"stakeAmount","nameLocation":"26848:11:81","nodeType":"VariableDeclaration","scope":53788,"src":"26840:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53734,"name":"uint256","nodeType":"ElementaryTypeName","src":"26840:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53737,"mutability":"mutable","name":"subnetAddress","nameLocation":"26869:13:81","nodeType":"VariableDeclaration","scope":53788,"src":"26861:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53736,"name":"address","nodeType":"ElementaryTypeName","src":"26861:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26839:44:81"},"returnParameters":{"id":53739,"nodeType":"ParameterList","parameters":[],"src":"26891:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53884,"nodeType":"FunctionDefinition","src":"27368:891:81","nodes":[],"body":{"id":53883,"nodeType":"Block","src":"27463:796:81","nodes":[],"statements":[{"assignments":[53800],"declarations":[{"constant":false,"id":53800,"mutability":"mutable","name":"manager","nameLocation":"27493:7:81","nodeType":"VariableDeclaration","scope":53883,"src":"27473:27:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53799,"nodeType":"UserDefinedTypeName","pathNode":{"id":53798,"name":"GatewayManagerFacet","nameLocations":["27473:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"27473:19:81"},"referencedDeclaration":38359,"src":"27473:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53807,"initialValue":{"arguments":[{"arguments":[{"id":53804,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53795,"src":"27531:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27523:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53802,"name":"address","nodeType":"ElementaryTypeName","src":"27523:7:81","typeDescriptions":{}}},"id":53805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27523:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53801,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"27503:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27503:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"27473:62:81"},{"expression":{"arguments":[{"hexValue":"30","id":53813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27582:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":53808,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53800,"src":"27546:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27554:8:81","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38030,"src":"27546:16:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":53812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53811,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53790,"src":"27570:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"27546:35:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":53814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27546:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53815,"nodeType":"ExpressionStatement","src":"27546:38:81"},{"assignments":[53818,53820,53822,null,53824,53827],"declarations":[{"constant":false,"id":53818,"mutability":"mutable","name":"id","nameLocation":"27612:2:81","nodeType":"VariableDeclaration","scope":53883,"src":"27596:18:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53817,"nodeType":"UserDefinedTypeName","pathNode":{"id":53816,"name":"SubnetID","nameLocations":["27596:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"27596:8:81"},"referencedDeclaration":48557,"src":"27596:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":53820,"mutability":"mutable","name":"stake","nameLocation":"27624:5:81","nodeType":"VariableDeclaration","scope":53883,"src":"27616:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53819,"name":"uint256","nodeType":"ElementaryTypeName","src":"27616:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53822,"mutability":"mutable","name":"topDownNonce","nameLocation":"27639:12:81","nodeType":"VariableDeclaration","scope":53883,"src":"27631:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53821,"name":"uint256","nodeType":"ElementaryTypeName","src":"27631:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":53824,"mutability":"mutable","name":"circSupply","nameLocation":"27663:10:81","nodeType":"VariableDeclaration","scope":53883,"src":"27655:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53823,"name":"uint256","nodeType":"ElementaryTypeName","src":"27655:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53827,"mutability":"mutable","name":"status","nameLocation":"27682:6:81","nodeType":"VariableDeclaration","scope":53883,"src":"27675:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":53826,"nodeType":"UserDefinedTypeName","pathNode":{"id":53825,"name":"Status","nameLocations":["27675:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"27675:6:81"},"referencedDeclaration":36932,"src":"27675:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"}],"id":53832,"initialValue":{"arguments":[{"id":53829,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53792,"src":"27717:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53830,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53795,"src":"27744:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53828,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53982,"src":"27692:11:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$35759_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27692:64:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"27595:161:81"},{"assignments":[53835],"declarations":[{"constant":false,"id":53835,"mutability":"mutable","name":"parentNetwork","nameLocation":"27783:13:81","nodeType":"VariableDeclaration","scope":53883,"src":"27767:29:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53834,"nodeType":"UserDefinedTypeName","pathNode":{"id":53833,"name":"SubnetID","nameLocations":["27767:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"27767:8:81"},"referencedDeclaration":48557,"src":"27767:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53836,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"27799:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27808:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"27799:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27799:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"27767:57:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":53850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53841,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53818,"src":"27856:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27859:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"27856:9:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":53843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27856:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":53846,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53792,"src":"27900:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53844,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53835,"src":"27871:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27885:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"27871:28:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27871:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27915:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"27871:50:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":53849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27871:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"27856:67:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":53851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27937:69:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":53840,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27835:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27835:181:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53853,"nodeType":"ExpressionStatement","src":"27835:181:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53855,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53820,"src":"28034:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53856,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53790,"src":"28043:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28034:19:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":53858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28055:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":53854,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28026:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28026:48:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53860,"nodeType":"ExpressionStatement","src":"28026:48:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53862,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53822,"src":"28092:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28108:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28092:17:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28111:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":53861,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28084:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28084:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53867,"nodeType":"ExpressionStatement","src":"28084:46:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53869,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53824,"src":"28148:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28162:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28148:15:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":53872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28165:23:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":53868,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28140:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28140:49:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53874,"nodeType":"ExpressionStatement","src":"28140:49:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53876,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53827,"src":"28207:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":53877,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"28217:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$36932_$","typeString":"type(enum Status)"}},"id":53878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28224:6:81","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":36927,"src":"28217:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"src":"28207:23:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e657870656374656420737461747573","id":53880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28232:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba313606cd95d33cf8055f53d8400718c19a556faf6b3b571b4ee34226df46ef","typeString":"literal_string \"unexpected status\""},"value":"unexpected status"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba313606cd95d33cf8055f53d8400718c19a556faf6b3b571b4ee34226df46ef","typeString":"literal_string \"unexpected status\""}],"id":53875,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28199:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28199:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53882,"nodeType":"ExpressionStatement","src":"28199:53:81"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"27377:16:81","parameters":{"id":53796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53790,"mutability":"mutable","name":"collateral","nameLocation":"27402:10:81","nodeType":"VariableDeclaration","scope":53884,"src":"27394:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53789,"name":"uint256","nodeType":"ElementaryTypeName","src":"27394:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53792,"mutability":"mutable","name":"subnetAddress","nameLocation":"27422:13:81","nodeType":"VariableDeclaration","scope":53884,"src":"27414:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53791,"name":"address","nodeType":"ElementaryTypeName","src":"27414:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53795,"mutability":"mutable","name":"gw","nameLocation":"27452:2:81","nodeType":"VariableDeclaration","scope":53884,"src":"27437:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":53794,"nodeType":"UserDefinedTypeName","pathNode":{"id":53793,"name":"GatewayDiamond","nameLocations":["27437:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"27437:14:81"},"referencedDeclaration":35759,"src":"27437:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"27393:62:81"},"returnParameters":{"id":53797,"nodeType":"ParameterList","parameters":[],"src":"27463:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53898,"nodeType":"FunctionDefinition","src":"28265:150:81","nodes":[],"body":{"id":53897,"nodeType":"Block","src":"28339:76:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53892,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53886,"src":"28366:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53893,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53888,"src":"28378:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53894,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"28393:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53891,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53884,"src":"28349:16:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$35759_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":53895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28349:59:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53896,"nodeType":"ExpressionStatement","src":"28349:59:81"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"28274:14:81","parameters":{"id":53889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53886,"mutability":"mutable","name":"collateral","nameLocation":"28297:10:81","nodeType":"VariableDeclaration","scope":53898,"src":"28289:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53885,"name":"uint256","nodeType":"ElementaryTypeName","src":"28289:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53888,"mutability":"mutable","name":"subnetAddress","nameLocation":"28317:13:81","nodeType":"VariableDeclaration","scope":53898,"src":"28309:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53887,"name":"address","nodeType":"ElementaryTypeName","src":"28309:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28288:43:81"},"returnParameters":{"id":53890,"nodeType":"ParameterList","parameters":[],"src":"28339:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53982,"nodeType":"FunctionDefinition","src":"28421:698:81","nodes":[],"body":{"id":53981,"nodeType":"Block","src":"28583:536:81","nodes":[],"statements":[{"expression":{"id":53927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53920,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"28593:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53924,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53903,"src":"28631:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28623:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53922,"name":"address","nodeType":"ElementaryTypeName","src":"28623:7:81","typeDescriptions":{}}},"id":53925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28623:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53921,"name":"GatewayRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39706,"src":"28604:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayRouterFacet_$39706_$","typeString":"type(contract GatewayRouterFacet)"}},"id":53926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"src":"28593:42:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53928,"nodeType":"ExpressionStatement","src":"28593:42:81"},{"expression":{"id":53936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53929,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"28645:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53933,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53903,"src":"28685:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28677:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53931,"name":"address","nodeType":"ElementaryTypeName","src":"28677:7:81","typeDescriptions":{}}},"id":53934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28677:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53930,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"28657:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28657:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"src":"28645:44:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53937,"nodeType":"ExpressionStatement","src":"28645:44:81"},{"expression":{"id":53945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53938,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"28699:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53942,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53903,"src":"28737:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28729:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53940,"name":"address","nodeType":"ElementaryTypeName","src":"28729:7:81","typeDescriptions":{}}},"id":53943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28729:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53939,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"28710:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$37869_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28710:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"src":"28699:42:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53946,"nodeType":"ExpressionStatement","src":"28699:42:81"},{"assignments":[53949],"declarations":[{"constant":false,"id":53949,"mutability":"mutable","name":"subnetId","nameLocation":"28768:8:81","nodeType":"VariableDeclaration","scope":53981,"src":"28752:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53948,"nodeType":"UserDefinedTypeName","pathNode":{"id":53947,"name":"SubnetID","nameLocations":["28752:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"28752:8:81"},"referencedDeclaration":48557,"src":"28752:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53956,"initialValue":{"arguments":[{"id":53954,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53900,"src":"28820:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53950,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"28779:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28788:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"28779:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28779:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28805:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"28779:40:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28779:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"28752:82:81"},{"assignments":[53959],"declarations":[{"constant":false,"id":53959,"mutability":"mutable","name":"subnet","nameLocation":"28859:6:81","nodeType":"VariableDeclaration","scope":53981,"src":"28845:20:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":53958,"nodeType":"UserDefinedTypeName","pathNode":{"id":53957,"name":"Subnet","nameLocations":["28845:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"28845:6:81"},"referencedDeclaration":48574,"src":"28845:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":53966,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53962,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53949,"src":"28885:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28894:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"28885:15:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":53964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28885:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":53960,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"28868:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28877:7:81","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37297,"src":"28868:16:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$48574_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":53965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28868:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"28845:58:81"},{"expression":{"components":[{"expression":{"id":53967,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"28935:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28942:2:81","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":48573,"src":"28935:9:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":53969,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"28958:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28965:5:81","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":48559,"src":"28958:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53971,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"28984:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28991:12:81","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":48565,"src":"28984:19:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":53973,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"29017:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29024:20:81","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":48567,"src":"29017:27:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":53975,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"29058:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29065:10:81","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":48563,"src":"29058:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53977,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"29089:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29096:6:81","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":48570,"src":"29089:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}}],"id":53979,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28921:191:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256,enum Status)"}},"functionReturnParameters":53919,"id":53980,"nodeType":"Return","src":"28914:198:81"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"28430:11:81","parameters":{"id":53904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53900,"mutability":"mutable","name":"subnetAddress","nameLocation":"28459:13:81","nodeType":"VariableDeclaration","scope":53982,"src":"28451:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53899,"name":"address","nodeType":"ElementaryTypeName","src":"28451:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53903,"mutability":"mutable","name":"gw","nameLocation":"28497:2:81","nodeType":"VariableDeclaration","scope":53982,"src":"28482:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":53902,"nodeType":"UserDefinedTypeName","pathNode":{"id":53901,"name":"GatewayDiamond","nameLocations":["28482:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"28482:14:81"},"referencedDeclaration":35759,"src":"28482:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"28441:64:81"},"returnParameters":{"id":53919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28522:15:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53906,"nodeType":"UserDefinedTypeName","pathNode":{"id":53905,"name":"SubnetID","nameLocations":["28522:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"28522:8:81"},"referencedDeclaration":48557,"src":"28522:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":53909,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28539:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53908,"name":"uint256","nodeType":"ElementaryTypeName","src":"28539:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53911,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28548:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53910,"name":"uint256","nodeType":"ElementaryTypeName","src":"28548:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28557:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53912,"name":"uint256","nodeType":"ElementaryTypeName","src":"28557:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53915,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28566:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53914,"name":"uint256","nodeType":"ElementaryTypeName","src":"28566:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28575:6:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":53917,"nodeType":"UserDefinedTypeName","pathNode":{"id":53916,"name":"Status","nameLocations":["28575:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"28575:6:81"},"referencedDeclaration":36932,"src":"28575:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"}],"src":"28521:61:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54007,"nodeType":"FunctionDefinition","src":"29125:199:81","nodes":[],"body":{"id":54006,"nodeType":"Block","src":"29258:66:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":54002,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53984,"src":"29287:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54003,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"29302:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":54001,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53982,"src":"29275:11:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$35759_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":54004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29275:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"functionReturnParameters":54000,"id":54005,"nodeType":"Return","src":"29268:49:81"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"29134:9:81","parameters":{"id":53985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53984,"mutability":"mutable","name":"subnetAddress","nameLocation":"29161:13:81","nodeType":"VariableDeclaration","scope":54007,"src":"29153:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53983,"name":"address","nodeType":"ElementaryTypeName","src":"29153:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29143:37:81"},"returnParameters":{"id":54000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29197:15:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53987,"nodeType":"UserDefinedTypeName","pathNode":{"id":53986,"name":"SubnetID","nameLocations":["29197:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"29197:8:81"},"referencedDeclaration":48557,"src":"29197:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":53990,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29214:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53989,"name":"uint256","nodeType":"ElementaryTypeName","src":"29214:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29223:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53991,"name":"uint256","nodeType":"ElementaryTypeName","src":"29223:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29232:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53993,"name":"uint256","nodeType":"ElementaryTypeName","src":"29232:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29241:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53995,"name":"uint256","nodeType":"ElementaryTypeName","src":"29241:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29250:6:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":53998,"nodeType":"UserDefinedTypeName","pathNode":{"id":53997,"name":"Status","nameLocations":["29250:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"29250:6:81"},"referencedDeclaration":36932,"src":"29250:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"}],"src":"29196:61:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":51793,"name":"Test","nameLocations":["7639:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"7639:4:81"},"id":51794,"nodeType":"InheritanceSpecifier","src":"7639:4:81"},{"baseName":{"id":51795,"name":"TestParams","nameLocations":["7645:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"7645:10:81"},"id":51796,"nodeType":"InheritanceSpecifier","src":"7645:10:81"},{"baseName":{"id":51797,"name":"TestRegistry","nameLocations":["7657:12:81"],"nodeType":"IdentifierPath","referencedDeclaration":51537,"src":"7657:12:81"},"id":51798,"nodeType":"InheritanceSpecifier","src":"7657:12:81"},{"baseName":{"id":51799,"name":"TestSubnetActor","nameLocations":["7671:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":51792,"src":"7671:15:81"},"id":51800,"nodeType":"InheritanceSpecifier","src":"7671:15:81"},{"baseName":{"id":51801,"name":"TestGatewayActor","nameLocations":["7688:16:81"],"nodeType":"IdentifierPath","referencedDeclaration":51670,"src":"7688:16:81"},"id":51802,"nodeType":"InheritanceSpecifier","src":"7688:16:81"}],"canonicalName":"IntegrationTestBase","contractDependencies":[35759,36177,36415,36477,36914,37869,38359,38674,39706,49325,50947,51075,51313,56069],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54008,51670,51792,51537,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"7616:19:81","scope":54009,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":81} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"addStake","inputs":[{"name":"stakeAmount","type":"uint256","internalType":"uint256"},{"name":"subnetAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addValidator","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addValidator","inputs":[{"name":"validator","type":"address","internalType":"address"},{"name":"weight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createGatewayDiamond","inputs":[{"name":"params","type":"tuple","internalType":"struct GatewayDiamond.ConstructorParams","components":[{"name":"networkName","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"bottomUpCheckPeriod","type":"uint256","internalType":"uint256"},{"name":"msgFee","type":"uint256","internalType":"uint256"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"genesisValidators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"}]}],"outputs":[{"name":"","type":"address","internalType":"contract GatewayDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createMockedSubnetActorWithGateway","inputs":[{"name":"gw","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActor","inputs":[{"name":"_ipcGatewayAddr","type":"address","internalType":"address"},{"name":"_consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"_minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"_minValidators","type":"uint64","internalType":"uint64"},{"name":"_checkPeriod","type":"uint64","internalType":"uint64"},{"name":"_majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"_permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"_activeValidatorsLimit","type":"uint16","internalType":"uint16"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActor","inputs":[{"name":"_ipcGatewayAddr","type":"address","internalType":"address"},{"name":"_consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"_minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"_minValidators","type":"uint64","internalType":"uint64"},{"name":"_checkPeriod","type":"uint64","internalType":"uint64"},{"name":"_majorityPercentage","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActor","inputs":[{"name":"params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"supplySource","type":"tuple","internalType":"struct SupplySource","components":[{"name":"kind","type":"uint8","internalType":"enum SupplyKind"},{"name":"tokenAddress","type":"address","internalType":"address"}]}]}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetActorDiamondWithFaucets","inputs":[{"name":"params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"supplySource","type":"tuple","internalType":"struct SupplySource","components":[{"name":"kind","type":"uint8","internalType":"enum SupplyKind"},{"name":"tokenAddress","type":"address","internalType":"address"}]}]},{"name":"getterFaucet","type":"address","internalType":"address"},{"name":"managerFaucet","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"createSubnetRegistry","inputs":[{"name":"params","type":"tuple","internalType":"struct SubnetRegistryDiamond.ConstructorParams","components":[{"name":"gateway","type":"address","internalType":"address"},{"name":"getterFacet","type":"address","internalType":"address"},{"name":"managerFacet","type":"address","internalType":"address"},{"name":"subnetGetterSelectors","type":"bytes4[]","internalType":"bytes4[]"},{"name":"subnetManagerSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"outputs":[{"name":"","type":"address","internalType":"contract SubnetRegistryDiamond"}],"stateMutability":"nonpayable"},{"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":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"fund","inputs":[{"name":"funderAddress","type":"address","internalType":"address"},{"name":"fundAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fund","inputs":[{"name":"funderAddress","type":"address","internalType":"address"},{"name":"fundAmount","type":"uint256","internalType":"uint256"},{"name":"mode","type":"uint8","internalType":"enum SupplyKind"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getSubnet","inputs":[{"name":"subnetAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getSubnetGW","inputs":[{"name":"subnetAddress","type":"address","internalType":"address"},{"name":"gw","type":"address","internalType":"contract GatewayDiamond"}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"join","inputs":[{"name":"validatorAddress","type":"address","internalType":"address"},{"name":"pubkey","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSubnet","inputs":[{"name":"collateral","type":"uint256","internalType":"uint256"},{"name":"subnetAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSubnetGW","inputs":[{"name":"collateral","type":"uint256","internalType":"uint256"},{"name":"subnetAddress","type":"address","internalType":"address"},{"name":"gw","type":"address","internalType":"contract GatewayDiamond"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"release","inputs":[{"name":"releaseAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reward","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setupValidators","inputs":[],"outputs":[{"name":"validators","type":"tuple[]","internalType":"struct FvmAddress[]","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]},{"name":"addresses","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"setupWhiteListMethod","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"src","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"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":"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":"function","name":"totalWeight","inputs":[{"name":"weights","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"sum","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"event","name":"SubnetRegistryCreated","inputs":[{"name":"subnetRegistryAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"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":"0x60808060405234620025fd57600160ff198181600054161760005560045416176004556319b8a26360e21b815260206004820152601360248201527f52656769737465725375626e6574466163657400000000000000000000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd657600091620025de575b508051906001600160401b03821162000f985768010000000000000000821162000f9857601b5482601b558083106200257b575b5060200190601b60005260206000209060005b8160031c81106200252b57506007198116810380620024d3575b505050506040516319b8a26360e21b815260206004820152601160248201527014dd589b995d11d95d1d195c919858d95d607a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd657600091620024b4575b508051906001600160401b03821162000f985768010000000000000000821162000f9857601c5482601c5580831062002448575b5060200190601c60005260206000209060005b8160031c8110620023f85750600719811681036200239f575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162002380575b508051906001600160401b03821162000f985768010000000000000000821162000f9857601d5482601d55808310620022f7575b5060200190601d60005260206000209060005b8160031c8110620022a75750600719811681036200224e575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd6576000916200222f575b508051906001600160401b03821162000f985768010000000000000000821162000f9857601e5482601e55808310620021a6575b5060200190601e60005260206000209060005b8160031c811062002156575060071981168103620020fd575b50506040516319b8a26360e21b815260206004820152601660248201527f5375626e65744163746f724765747465724661636574000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd657600091620020de575b508051906001600160401b03821162000f985768010000000000000000821162000f98576024548260245580831062002055575b5060200190602460005260206000209060005b8160031c81106200200557506007198116810362001fac575b50506040516319b8a26360e21b815260206004820152601760248201527f5375626e65744163746f724d616e6167657246616365740000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001f8d575b508051906001600160401b03821162000f985768010000000000000000821162000f98576025548260255580831062001f04575b5060200190602560005260206000209060005b8160031c811062001eb457506007198116810362001e5b575b50506040516319b8a26360e21b815260206004820152601b60248201527f5375626e65744163746f724d616e6167657246616365744d6f636b00000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001e3c575b508051906001600160401b03821162000f985768010000000000000000821162000f98576026548260265580831062001db3575b5060200190602660005260206000209060005b8160031c811062001d6357506007198116810362001d0a575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001ceb575b508051906001600160401b03821162000f985768010000000000000000821162000f98576027548260275580831062001c62575b5060200190602760005260206000209060005b8160031c811062001c1257506007198116810362001bb9575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001b9a575b508051906001600160401b03821162000f985768010000000000000000821162000f98576028548260285580831062001b11575b5060200190602860005260206000209060005b8160031c811062001ac157506007198116810362001a68575b50506040516319b8a26360e21b815260206004820152601260248201527110da1958dadc1bda5b9d1a5b99d19858d95d60721b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001a49575b508051906001600160401b03821162000f985768010000000000000000821162000f9857602f5482602f55808310620019c0575b5060200190602f60005260206000209060005b8160031c81106200197057506007198116810362001917575b50506040516319b8a26360e21b8152602060048201526012602482015271161b995d13595cdcd859da5b99d19858d95d60721b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd657600091620018f8575b508051906001600160401b03821162000f985768010000000000000000821162000f9857603054826030558083106200186f575b5060200190603060005260206000209060005b8160031c81106200181f575060071981168103620017c6575b50506040516319b8a26360e21b815260206004820152601460248201527f546f70446f776e46696e616c69747946616365740000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd657600091620017a7575b508051906001600160401b03821162000f985768010000000000000000821162000f9857603154826031558083106200171e575b5060200190603160005260206000209060005b8160031c8110620016ce57506007198116810362001675575b50506040516319b8a26360e21b815260206004820152601360248201527f426f74746f6d5570526f757465724661636574000000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001656575b508051906001600160401b03821162000f985768010000000000000000821162000f985760325482603255808310620015cd575b5060200190603260005260206000209060005b8160031c81106200157d57506007198116810362001524575b50506040516319b8a26360e21b815260206004820152601260248201527111d85d195dd85e51d95d1d195c919858d95d60721b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001505575b508051906001600160401b03821162000f985768010000000000000000821162000f9857603454826034558083106200147c575b5060200190603460005260206000209060005b8160031c81106200142c575060071981168103620013d3575b50506040516319b8a26360e21b815260206004820152601360248201527f476174657761794d616e616765724661636574000000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd657600091620013b4575b508051906001600160401b03821162000f985768010000000000000000821162000f9857603354826033558083106200132b575b5060200190603360005260206000209060005b8160031c8110620012db57506007198116810362001282575b50506040516319b8a26360e21b815260206004820152601560248201527f476174657761794d657373656e676572466163657400000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001263575b508051906001600160401b03821162000f985768010000000000000000821162000f985760355482603555808310620011db575b5060200190603560005260206000209060005b8160031c81106200118b5750600719811681038062001133575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b60448201529150600090508160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162001114575b508051906001600160401b03821162000f985768010000000000000000821162000f9857603654826036558083106200108c575b5060200190603660005260206000209060005b8160031c81106200103c5750600719811680820362000fe2575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b60448201529150600090508160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af490811562000fd65760009162000fae575b508051906001600160401b03821162000f985768010000000000000000821162000f98576037548260375580831062000f35575b5060200190603760005260206000208160031c9160005b83811062000ee55750600719811690038062000e90575b60405162029b459081620026bd8239f35b9260009360005b81811062000eae5750505001553880808062000e7f565b909194602062000eda600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000e97565b6000805b6008811062000f0057508382015560010162000e68565b9590602062000f2b600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960162000ee9565b60376000526020600020600780850160031c8201920160031c0190601c8460021b168062000f7c575b505b81811062000f6f575062000e51565b6000815560010162000f60565b600019908183019182549160200360031b1c1690553862000f5e565b634e487b7160e01b600052604160045260246000fd5b62000fcf91503d806000833e62000fc6818362002602565b81019062002626565b3862000e1d565b6040513d6000823e3d90fd5b9260009360005b8184038110620010055750505060031c01553880808062000db4565b909194602062001031600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000fe9565b6000805b600881106200105757508382015560010162000d9a565b9490602062001082600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001040565b60366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8600284901b601c1680620010f0575b50600780850160031c8201920160031c01905b818110620010e3575062000d87565b60008155600101620010d4565b60001990816007870160031c8401019182549160200360031b1c16905538620010c1565b6200112c91503d806000833e62000fc6818362002602565b3862000d53565b9260009360005b818110620011545750505060031c01553880808062000cec565b909194602062001180600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200113a565b6000805b60088110620011a657508382015560010162000cd2565b94906020620011d1600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016200118f565b60356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d600284901b601c16806200123f575b50600780850160031c8201920160031c01905b81811062001232575062000cbf565b6000815560010162001223565b60001990816007870160031c8401019182549160200360031b1c1690553862001210565b6200127b91503d806000833e62000fc6818362002602565b3862000c8b565b60009260005b600719831683038110620012a657505060031c015538808062000c18565b90936020620012d1600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001288565b6000805b60088110620012f657508382015560010162000bff565b9490602062001321600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620012df565b60336000527f82a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a82600284901b601c168062001390575b506007840160031c81015b6007830160031c820181106200138357505062000bec565b600081556001016200136b565b60001990816007870160031c8401019182549160200360031b1c1690553862001360565b620013cc91503d806000833e62000fc6818362002602565b3862000bb8565b60009260005b600719831683038110620013f757505060031c015538808062000b45565b9093602062001422600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101620013d9565b6000805b600881106200144757508382015560010162000b2c565b9490602062001472600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001430565b60346000527f46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c1600284901b601c1680620014e1575b506007840160031c81015b6007830160031c82018110620014d457505062000b19565b60008155600101620014bc565b60001990816007870160031c8401019182549160200360031b1c16905538620014b1565b6200151d91503d806000833e62000fc6818362002602565b3862000ae5565b60009260005b6007198316830381106200154857505060031c015538808062000a7d565b9093602062001573600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016200152a565b6000805b600881106200159857508382015560010162000a64565b94906020620015c3600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001581565b60326000527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff697600284901b601c168062001632575b506007840160031c81015b6007830160031c820181106200162557505062000a51565b600081556001016200160d565b60001990816007870160031c8401019182549160200360031b1c1690553862001602565b6200166e91503d806000833e62000fc6818362002602565b3862000a1d565b60009260005b6007198316830381106200169957505060031c0155388080620009aa565b90936020620016c4600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016200167b565b6000805b60088110620016e957508382015560010162000991565b9490602062001714600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620016d2565b60316000527fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc600284901b601c168062001783575b506007840160031c81015b6007830160031c82018110620017765750506200097e565b600081556001016200175e565b60001990816007870160031c8401019182549160200360031b1c1690553862001753565b620017bf91503d806000833e62000fc6818362002602565b386200094a565b60009260005b600719831683038110620017ea57505060031c0155388080620008d7565b9093602062001815600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101620017cc565b6000805b600881106200183a575083820155600101620008be565b9490602062001865600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001823565b60306000527f6ff97a59c90d62cc7236ba3a37cd85351bf564556780cf8c1157a220f31f0cbb600284901b601c1680620018d4575b506007840160031c81015b6007830160031c82018110620018c7575050620008ab565b60008155600101620018af565b60001990816007870160031c8401019182549160200360031b1c16905538620018a4565b6200191091503d806000833e62000fc6818362002602565b3862000877565b60009260005b6007198316830381106200193b57505060031c01553880806200080f565b9093602062001966600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b950191016200191d565b6000805b600881106200198b575083820155600101620007f6565b94906020620019b6600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001974565b602f6000527fa813484aef6fb598f9f753daf162068ff39ccea4075cb95e1a30f86995b5b7ee600284901b601c168062001a25575b506007840160031c81015b6007830160031c8201811062001a18575050620007e3565b6000815560010162001a00565b60001990816007870160031c8401019182549160200360031b1c16905538620019f5565b62001a6191503d806000833e62000fc6818362002602565b38620007af565b60009260005b60071983168303811062001a8c57505060031c015538808062000747565b9093602062001ab7600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001a6e565b6000805b6008811062001adc5750838201556001016200072e565b9490602062001b07600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001ac5565b60286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab5600284901b601c168062001b76575b506007840160031c81015b6007830160031c8201811062001b695750506200071b565b6000815560010162001b51565b60001990816007870160031c8401019182549160200360031b1c1690553862001b46565b62001bb291503d806000833e62000fc6818362002602565b38620006e7565b60009260005b60071983168303811062001bdd57505060031c015538808062000680565b9093602062001c08600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001bbf565b6000805b6008811062001c2d57508382015560010162000667565b9490602062001c58600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001c16565b60276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b600284901b601c168062001cc7575b506007840160031c81015b6007830160031c8201811062001cba57505062000654565b6000815560010162001ca2565b60001990816007870160031c8401019182549160200360031b1c1690553862001c97565b62001d0391503d806000833e62000fc6818362002602565b3862000620565b60009260005b60071983168303811062001d2e57505060031c0155388080620005bb565b9093602062001d59600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001d10565b6000805b6008811062001d7e575083820155600101620005a2565b9490602062001da9600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001d67565b60266000527f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a3594600284901b601c168062001e18575b506007840160031c81015b6007830160031c8201811062001e0b5750506200058f565b6000815560010162001df3565b60001990816007870160031c8401019182549160200360031b1c1690553862001de8565b62001e5491503d806000833e62000fc6818362002602565b386200055b565b60009260005b60071983168303811062001e7f57505060031c0155388080620004e8565b9093602062001eaa600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001e61565b6000805b6008811062001ecf575083820155600101620004cf565b9490602062001efa600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162001eb8565b60256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c600284901b601c168062001f69575b506007840160031c81015b6007830160031c8201811062001f5c575050620004bc565b6000815560010162001f44565b60001990816007870160031c8401019182549160200360031b1c1690553862001f39565b62001fa591503d806000833e62000fc6818362002602565b3862000488565b60009260005b60071983168303811062001fd057505060031c015538808062000415565b9093602062001ffb600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001fb2565b6000805b6008811062002020575083820155600101620003fc565b949060206200204b600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162002009565b60246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4600284901b601c1680620020ba575b506007840160031c81015b6007830160031c82018110620020ad575050620003e9565b6000815560010162002095565b60001990816007870160031c8401019182549160200360031b1c169055386200208a565b620020f691503d806000833e62000fc6818362002602565b38620003b5565b60009260005b6007198316830381106200212157505060031c015538808062000342565b909360206200214c600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162002103565b6000805b600881106200217157508382015560010162000329565b949060206200219c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016200215a565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c16806200220b575b506007840160031c81015b6007830160031c82018110620021fe57505062000316565b60008155600101620021e6565b60001990816007870160031c8401019182549160200360031b1c16905538620021db565b6200224791503d806000833e62000fc6818362002602565b38620002e2565b60009260005b6007198316830381106200227257505060031c01553880806200027b565b909360206200229d600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162002254565b6000805b60088110620022c257508382015560010162000262565b94906020620022ed600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620022ab565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c16806200235c575b506007840160031c81015b6007830160031c820181106200234f5750506200024f565b6000815560010162002337565b60001990816007870160031c8401019182549160200360031b1c169055386200232c565b6200239891503d806000833e62000fc6818362002602565b386200021b565b60009260005b600719831683038110620023c357505060031c0155388080620001b6565b90936020620023ee600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101620023a5565b6000805b60088110620024135750838201556001016200019d565b949060206200243e600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620023fc565b601c6000526020600020601c8460021b168062002490575b506007840160031c81015b6007830160031c82018110620024835750506200018a565b600081556001016200246b565b60001990816007870160031c8401019182549160200360031b1c1690553862002460565b620024cc91503d806000833e62000fc6818362002602565b3862000156565b9260009360005b818110620024f45750505060031c015538808080620000ef565b909194602062002520600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620024da565b6000805b6008811062002546575083820155600101620000d5565b9490602062002571600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016200252f565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b1680620025c2575b505b818110620025b55750620000c2565b60008155600101620025a6565b600019908183019182549160200360031b1c16905538620025a4565b620025f691503d806000833e62000fc6818362002602565b386200008e565b600080fd5b601f909101601f19168101906001600160401b0382119082101762000f9857604052565b906020908183820312620025fd5782516001600160401b0393848211620025fd570181601f82011215620025fd57805193841162000f98578360051b9060405194620026758584018762002602565b85528380860192820101928311620025fd578301905b8282106200269a575050505090565b81516001600160e01b031981168103620025fd5781529083019083016200268b56fe60808060405260043610156200001457600080fd5b600090813560e01c9081630a9254e41462004252575080630d8d4acf1462003f145780631e3342941462003d2b5780631ed7831c1462003ca55780632d49aa1c1462003b8357806330dd2c451462003a6d57806337bdc99b14620038705780633e5e3c2314620037ea5780633f7286f414620037645780634d238c8e14620037065780635c2c2fed14620032c957806363323eb8146200329157806366d9a9a014620031da5780637b1837de1462002ecb57806385226c811462002d90578063871055571462002d59578063916a17c61462002ca2578063951759c914620029445780639b21108014620021d85780639c821dc61462001a8a578063a0aaa28514620016ce578063a9fb763c1462001628578063b5508aa914620014d9578063ba414fa614620014b0578063c33dd9d51462000b7d578063c69a04691462000b29578063d8d5271314620009a4578063dd7849741462000963578063e20c9f7114620008c3578063eb8df0521462000457578063fa7626d41462000433578063fbfb892714620003fa5763fc6c1f0214620001ae57600080fd5b34620003575760403660031901126200035757620001cb620047d4565b620001d562006a55565b90620001fb620001e58262006af3565b92600093620001f482620056cd565b52620056cd565b506040516200020a816200466c565b60018152602036818301376200022360243591620056cd565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003f65760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003eb57620003d5575b50604051906200028c826200466c565b438252836020830152823b15620003c6576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003ca579085939291620003a8575b50603d546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af180156200039d5762000369575b50803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b6200034d8291620046a4565b6200035757808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b6200038e9060603d811162000395575b62000385818362004729565b81019062006aac565b5062000310565b503d62000379565b6040513d85823e3d90fd5b620003b79093919293620046a4565b620003c65790839138620002cf565b8380fd5b6040513d87823e3d90fd5b620003e390939193620046a4565b91386200027c565b6040513d86823e3d90fd5b8280fd5b5034620003575760603660031901126200035757620004306200041c620047a6565b62000426620047bd565b9060043562006e8c565b80f35b5034620003575780600319360112620003575760ff60209154166040519015158152f35b50346200035757600319606036820112620003655762000476620047d4565b6044356002811015620003c657602a54620004ae600091620004976200577b565b506038546001600160a01b0390811691166200714f565b9195939792505060018060a01b03603a54169560405193639d3070b560e01b85526020600486015260208580620004e9602482018d62004c3f565b03818b5afa948515620008b85786956200087e575b506001850185116200086a576001870187116200086a576004602062000528602435809662006a47565b9960405192838092632472942560e01b82525afa9081156200085f57879162000823575b5015620007eb57806200071957506039546001600160a01b031690620005729062006af3565b91813b15620007155790620005ae8693928a620005be6040519788968795869463018f44b760e41b865260406004870152604486019062004c3f565b9184830301602485015262004ccc565b03925af180156200039d57620006fd575b5090602092915b602a546200063f906200060a906001600160a01b0316620005f66200577b565b506038546001600160a01b0316906200714f565b9893505098905060018060a01b03603a54166040518080958194639d3070b560e01b8352866004840152602483019062004c3f565b03915afa928315620006f15792620006b1575b50600101036200067757620004309360016200067092011462006dc7565b1462006e07565b60405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564206c656e6774687360701b6044820152606490fd5b9091506020813d602011620006e8575b81620006d06020938362004729565b81010312620006e3575190600162000652565b600080fd5b3d9150620006c1565b604051903d90823e3d90fd5b620007098391620046a4565b620003655738620005cf565b8580fd5b929897969594939260011462000739575b505060209394959650620005d6565b6039549293926001600160a01b031690620007549062006af3565b91813b15620003c65790620007918489819594620007a16040519e8f978896879563028bf0d560e11b875260606004880152606487019062004c3f565b9185830301602486015262004ccc565b90604483015203925af1968715620007de57602094959697620007cc575b879695949291926200072a565b620007d790620046a4565b38620007bf565b50604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f063726f73734d736746656520697320360841b6044820152606490fd5b90506020813d60201162000856575b81620008416020938362004729565b81010312620008525751386200054c565b8680fd5b3d915062000832565b6040513d89823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9094506020813d602011620008af575b816200089d6020938362004729565b810103126200071557519338620004fe565b3d91506200088e565b6040513d88823e3d90fd5b50346200035757806003193601126200035757604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b858282106200094357505050620009299250038362004729565b6200093f60405192828493845283019062004a8e565b0390f35b85546001600160a01b03168452600195860195889550930192016200090f565b50346200035757602036600319011262000357576200093f6200099362000989620047d4565b620005f66200577b565b916040959395519586958662004c9c565b503462000357576040366003190112620003575780620009c3620047d4565b6024356001600160401b03811162000aec57620009e590369060040162004a41565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000b245760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620008b857869162000b0c575b5050813b1562000b0857849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003eb57849162000af0575b5050602a5416803b1562000aec5762000ac68391670de0b6b3a7640000936040519485809481936330b858b160e11b835260206004840152602483019062004bb2565b03925af180156200035a5762000ad95750f35b62000ae490620046a4565b620003575780f35b5050fd5b62000afb90620046a4565b62000aec57823862000a83565b8480fd5b62000b1790620046a4565b62000b0857843862000a3c565b505050fd5b5034620003575760203660031901126200035757600435906001600160401b0382116200035757602062000b6b62000b653660048601620048e3565b620067f2565b6040516001600160a01b039091168152f35b503462000357576003196020368201126200036557600435906001600160401b038211620003f65760a090823603011262000365576040519060a082018281106001600160401b038211176200149a5760405262000bde81600401620047eb565b825262000bee60248201620047eb565b602083015262000c0160448201620047eb565b604083015260648101356001600160401b038111620003c65762000c2c906004369184010162004cf1565b60608301526084810135906001600160401b038211620003c657600462000c57923692010162004cf1565b608082015262000c666200596d565b9060405180610d308101106001600160401b03610d30830111176200148657610d306200b4fe823980610d308101039084f080156200039d57604051806108848101106001600160401b036108848301111762001472576108846200c22e8239806108848101039085f0908115620003eb5760405180611ec58101106001600160401b03611ec5830111176200117e57611ec56202207c823980611ec58101039086f0908115620003ca5760405180610b3d8101106001600160401b03610b3d830111176200145e57610b3d62023f41823980610b3d8101039087f0928315620008b8576040519062000d598262004688565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b806007830110620013e85762000e0494549181811062001266575b81811062001246575b81811062001226575b81811062001206575b818110620011e6575b818110620011c6575b818110620011a8575b1062001192575b50038262004729565b604082015262000e1486620056cd565b5262000e2085620056cd565b506040519062000e308262004688565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b806007830110620013725762000ed39454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262000ee385620056f1565b5262000eef84620056f1565b506040519062000eff8262004688565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b806007830110620012fc5762000fa29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262000fb28462005702565b5262000fbe8362005702565b506040519062000fce8262004688565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b8060078301106200128657620010719454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b6040820152620010818362005713565b526200108d8262005713565b506040519161111e90818401918483106001600160401b038411176200117e5791620010cf85949262001137946200a3e08739604083526040830190620059ba565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b036040830151166040820152608062001125606084015160a0606085015260a084019062004acd565b92015190608081840391015262004acd565b039082f08015620007de5760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000dfb565b602083811b6001600160e01b03191685529093019260010162000df4565b604083901b6001600160e01b031916845260209093019260010162000deb565b606083901b6001600160e01b031916845260209093019260010162000de2565b608083901b6001600160e01b031916845260209093019260010162000dd9565b60a083901b6001600160e01b031916845260209093019260010162000dd0565b60c083901b6001600160e01b031916845260209093019260010162000dc7565b60e083901b6001600160e01b031916845260209093019260010162000dbe565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001018565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000f49565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000e7a565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000da3565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b634e487b7160e01b84526041600452602484fd5b634e487b7160e01b600052604160045260246000fd5b503462000357578060031936011262000357576020620014cf62004d77565b6040519015158152f35b50346200035757806003193601126200035757601054620014fa816200478e565b906200150a604051928362004729565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b8483106200155257604051806200093f888262004bd9565b604051849188549160019280841c9084811680156200161d575b8783108114620016095782845287949392918115620015eb5750600114620015af575b50620015a081600196038262004729565b8152019701920191956200153a565b8b8952838920955088905b808210620015d35750810183019450620015a06200158f565b865483830186015295850195879490910190620015ba565b60ff19168584015250151560051b810183019450620015a06200158f565b634e487b7160e01b8a52602260045260248afd5b91607f16916200156c565b503462000357576020366003190112620003575780806040516200164c816200466c565b601c81527f726577617264206d6574686f642063616c6c65642077697468202564000000006020820152604051620016ba81620016a360208201946309710a9d60e41b865260406024840152606483019062004bb2565b600435604483015203601f19810183528262004729565b51906a636f6e736f6c652e6c6f675afa5080f35b5034620003575760c03660031901126200035757620016ec620047d4565b6024908135916001831015620003c657620017066200474b565b916200171162004762565b926200171c620048b3565b604051926200172b84620046f1565b60008452604051936200173e856200466c565b607b8552602090818601526040519261509d938481016001600160401b03958282108783111762001a75579082916201cfdf833903906000f098891562001a405760018060a01b0398896001600160601b0360a01b9b168b602a541617602a5560405161154f808201908282108983111762001a60579082916201ba90833903906000f0801562001a40578a168b602c541617602c55604051610d30808201908282108983111762001a60579082916200b4fe833903906000f0801562001a40578a168b602d541617602d55604051610884808201908282108983111762001a60579082916200c22e833903906000f093841562001a405762001956976200198e889485938f8f908160ff9b168091602e541617602e556200185f6200596d565b9d8e83602a541660405190620018758262004688565b815260008682015262001887620052a8565b60408201526200189782620056cd565b52620018a381620056cd565b5083602c541660405190620018b88262004688565b8152600086820152620018ca62004e76565b6040820152620018da82620056f1565b52620018e681620056f1565b5083602d541660405190620018fb8262004688565b81526000868201526200190d620053b9565b60408201526200191d8262005702565b52620019298162005702565b5060405192620019398462004688565b83526000858401526200194b620054ca565b604084015262005713565b52620019628d62005713565b506200196d620058fa565b9a6040519e8f6200197e81620046d4565b5216908d015260408c01620057ba565b60443560608b01521660808901521660a08701521660c0850152606460e08501526402540be400610100850152600c6101208501526000610140850152610160840152604051936114a490818601928684109084111762001a4c575091849391620019ff9362008f3c8639620066fc565b03906000f0801562001a40571690818160295416176029558181602a541617602a558181602c541617602c558181602d541617602d55602e541617602e5580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b5034620003575780600319360112620003575760405162001aab816200470d565b6003815260005b60608110620021be575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa80156200039d5783906200217f575b62001b11915062006af3565b62001b1c87620056cd565b5262001b2886620056cd565b5060405183815260c8600482015284818381895afa80156200039d57839062002140575b62001b58915062006af3565b62001b6387620056f1565b5262001b6f86620056f1565b506040519280845261012c93846004820152858184818a5afa8015620003eb57849062002101575b62001ba3915062006af3565b62001bae8862005702565b5262001bba8762005702565b506040519562001bca876200470d565b600387526060988936888a01376040519280845281600485015287848681865afa938415620008b8578694620020c2575b5062001c0789620056cd565b6001600160a01b03948516905260405181815260c8600482015288818781875afa9081156200085f57879162002085575b508462001c458b620056f1565b9116905260405181815287600482015288818781875afa9081156200085f57879162002048575b508462001c798b62005702565b911690526040519062001c8c826200470d565b600382528b368a8401376040519080825283600483015289828881885afa91821562001f7e57889262002009575b50843b1562001f3d5760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af1801562001fa557908a9162001ff1575b505060405182815260c860048201528b818a818a5afa90811562001fa5578a9162001fb4575b50863b1562001fb05787604051918583521660048201528a898201528981604481838b5af1801562001fa557908a9162001f89575b5050604051918252600482015289818881885afa90811562001f7e57889162001f41575b50843b1562001f3d5785906040519283521660048201528786820152868160448183885af180156200085f5790879162001f25575b5050808262001dc362001dd793620056cd565b528262001dd082620056f1565b5262005702565b526040519262001de7846200466c565b4384528487850152813b1562000b085760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003eb57918493918a9362001f05575b50603d546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200035a5762001ee4575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b82821062001eaf57888803868a015288806200093f8a8a62004a8e565b9193975091848062001ecf83979899605f198d82030186528b5162004ccc565b99019201920188979695949293919362001e92565b62001efe90873d8911620003955762000385818362004729565b5062001e69565b62001f15919350939193620046a4565b620003f657829188913862001e2c565b62001f3090620046a4565b6200071557853862001db0565b8780fd5b90508981813d831162001f76575b62001f5b818362004729565b8101031262001f3d5762001f6f9062006a97565b3862001d7b565b503d62001f4f565b6040513d8a823e3d90fd5b62001f9490620046a4565b62001fa157883862001d57565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d831162001fe9575b62001fce818362004729565b8101031262001fb05762001fe29062006a97565b3862001d22565b503d62001fc2565b62001ffc90620046a4565b62001fa157883862001cfc565b9091508981813d831162002040575b62002024818362004729565b8101031262001f3d57620020389062006a97565b903862001cba565b503d62002018565b90508881813d83116200207d575b62002062818362004729565b810103126200085257620020769062006a97565b3862001c6c565b503d62002056565b90508881813d8311620020ba575b6200209f818362004729565b810103126200085257620020b39062006a97565b3862001c38565b503d62002093565b9093508781813d8311620020f9575b620020dd818362004729565b810103126200071557620020f19062006a97565b923862001bfb565b503d620020d1565b508581813d831162002138575b6200211a818362004729565b81010312620003c6576200213262001ba39162006a97565b62001b97565b503d6200210e565b508481813d831162002177575b62002159818362004729565b81010312620003f6576200217162001b589162006a97565b62001b4c565b503d6200214d565b508481813d8311620021b6575b62002198818362004729565b81010312620003f657620021b062001b119162006a97565b62001b05565b503d6200218c565b602090620021cb6200577b565b8282850101520162001ab2565b5034620003575760403660031901126200035757620021f6620047d4565b62002200620047a6565b6038546001600160a01b031690813b15620006e357604051637903ab2760e11b815260006004820181905292908381602481670de0b6b3a7640000865af18015620003eb5762002928575b506200225a600491836200714f565b603a546040516394074b0360e01b815294989396919593949392508491849182906001600160a01b03165afa9182156200039d57839262002900575b506020620022c091604051809381926390ba52cf60e01b8352846004840152602483019062004c3f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d578684918293620028c1575b5060405163aa5106cb60e01b81529293839182916200231091906004840162006ca3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d5762002364916020918591620028a3575b50604051809381926390ba52cf60e01b8352846004840152602483019062004c3f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4928315620006f1579262002869575b5003620027f257620023ba620023c192620023b3670de0b6b3a76400006004971462006e4c565b1562006dc7565b1562006e07565b603a546040516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de57620024199385918391620027ae575b5060405163aa5106cb60e01b815294859283926004840162006ca3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb578492620027cc575b50620024516004929362006af3565b6040519362002460856200466c565b84526020840152603a546040516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de57620024be9383918391620027ae575060405163aa5106cb60e01b815294859283926004840162006ca3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb57849262002780575b50620024f39062006af3565b6040519162002502836200466c565b82526020820152604051906200251882620046f1565b838252604051926200252a84620046b8565b835260208301526402540be401604083015260608381840152608090848285015260a0928385015260c0926402540be40084860152604051946200256e866200466c565b85528560208601526040519262002585846200466c565b600194858552875b602081106200271957505050505082620025a782620056cd565b52620025b381620056cd565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003655760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200035a5762002701575b5050603c546001600160a01b031690813b1562000b085791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b828210620026ca5750505050508383809203925af180156200039d57620026b2575b602082604051620026a7816200269885820194868652604083019062006d28565b03601f19810183528262004729565b519020604051908152f35b620026be8391620046a4565b62000365578162002677565b9295975092955092602080620026ec87936043198c8203018652895162006d28565b970192019201928795938a9795929362002655565b6200270c90620046a4565b620003c657833862002604565b6020906040516200272a816200466c565b6040516200273881620046b8565b6200274262006ccd565b81526200274e62006ccd565b848201528b60408201528b888201528b8682015287878201528b8582015281528a83820152828289010152016200258d565b620024f3919250620027a6903d8087833e6200279d818362004729565b81019062006c7a565b9190620024e7565b620027c591503d8085833e6200279d818362004729565b38620023fc565b60049250620027ea62002451913d8088833e6200279d818362004729565b925062002442565b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d6020116200289a575b81620028886020938362004729565b81010312620006e3575190386200238c565b3d915062002879565b620028ba91503d8087833e6200279d818362004729565b3862002341565b925050506020813d602011620028f7575b81620028e16020938362004729565b81010312620006e35751828662002310620022ec565b3d9150620028d2565b620022c09192506200291f6020913d8087833e6200279d818362004729565b92915062002296565b600491936200293b6200225a92620046a4565b9391506200224b565b5034620003575760209081600319360112620003575762002964620047d4565b604051615092908181016001600160401b0392828210848311176200117e5790829162024a7e8339039084f09182156200039d5760405161154f80820190828210858311176200145e579082916201ba908339039085f0908115620003eb578590620029cf6200592d565b92604051620029de8162004688565b6001600160a01b03968716815283810188905260405160268054808352600091825282870191907f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35945b81600784011062002c275792849262002af7999262002a959554918482821062002c08575b82821062002be9575b82821062002bca575b82821062002bab575b82821062002b8c575b82821062002b6d575b82821062002b50575b501062002b3a575b509050038262004729565b604082015262002aa585620056cd565b5262002ab184620056cd565b50856040519162002ac28362004688565b168152868882015262002ad462004e76565b604082015262002ae484620056f1565b5262002af083620056f1565b50620057e8565b90604051926114a480850191858310908311176200145e579184939162002b249362008f3c8639620066fc565b039083f0918215620006f1575060405191168152f35b6001600160e01b03191681528d91013862002a8a565b83811b6001600160e01b0319168552909301926001018462002a82565b604084901b6001600160e01b0319168552909301926001018462002a79565b606084901b6001600160e01b0319168552909301926001018462002a70565b608084901b6001600160e01b0319168552909301926001018462002a67565b60a084901b6001600160e01b0319168552909301926001018462002a5e565b60c084901b6001600160e01b0319168552909301926001018462002a55565b60e084901b6001600160e01b0319168552909301926001018462002a4c565b93949596976101006008929394600192875463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520194019201908c97969594939262002a27565b5034620003575780600319360112620003575760135462002cc3816200478e565b9062002cd3604051928362004729565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b83831062002d1a57604051806200093f878262004b0d565b60028260019260405162002d2e816200466c565b848060a01b038a5416815262002d46858b01620055db565b8382015281520196019201919462002d02565b50346200035757604036600319011262000357576200093f6200099362002d7f620047d4565b62002d89620047a6565b906200714f565b5034620003575780600319360112620003575760115462002db1816200478e565b9062002dc1604051928362004729565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b84831062002e0957604051806200093f888262004bd9565b604051849188549160019280841c90848116801562002ec0575b878310811462001609578284528794939291811562002ea2575060011462002e66575b5062002e5781600196038262004729565b81520197019201919562002df1565b8b8952838920955088905b80821062002e8a575081018301945062002e5762002e46565b86548383018601529585019587949091019062002e71565b60ff19168584015250151560051b81018301945062002e5762002e46565b91607f169162002e23565b5034620003575760031990604036830112620003575762002eeb620047d4565b60249283359160018060a01b0362002f5262002f1c82602a541662002f0f6200577b565b508360385416906200714f565b9793919692505084603a54169760405193639d3070b560e01b988986528c868c818060209b8c9586600484015282018a62004c3f565b03915afa95861562001a4057600096620031a5575b506001860180961162003190576001890180991162003190578662002f8f8460049362006a47565b9b60405192838092632472942560e01b82525afa90811562001a40576000916200315d575b5015620031265762002fcb87603954169462006af3565b93803b15620006e35762003016946000938e6040519788958694859363018f44b760e41b85526040600486015262003007604486018c62004c3f565b92858403019085015262004ccc565b03925af190811562001a40578a976200307993869362003114575b506200305287602a5416620030456200577b565b508860385416906200714f565b9c935050989050603a54169160405195869485938493845287600485015283019062004c3f565b03915afa90811562001a4057600091620030e1575b5003620030a957506200043093929162000670911462006dc7565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b908382813d83116200310c575b620030fa818362004729565b8101031262000357575051386200308e565b503d620030ee565b6200311f90620046a4565b3862003031565b60405162461bcd60e51b8152600481018790526010818e01526f063726f73734d736746656520697320360841b6044820152606490fd5b908782813d831162003188575b62003176818362004729565b81010312620003575750513862002fb4565b503d6200316a565b8c634e487b7160e01b60005260116004526000fd5b90958782813d8311620031d2575b620031bf818362004729565b8101031262000357575051943862002f67565b503d620031b3565b50346200035757806003193601126200035757601254620031fb816200478e565b906200320b604051928362004729565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b8383106200325257604051806200093f878262004b0d565b60028260019260405162003266816200466c565b848060a01b038a541681526200327e858b01620055db565b838201528152019601920191946200323a565b503462000357576040366003190112620003575762000430620032b3620047a6565b6038546001600160a01b03169060043562006e8c565b503462000357576101003660031901126200035757620032e8620047d4565b600160243510156200036557620032fe6200474b565b6200330862004762565b9162003313620048b3565b91600360c435101562000b085760e43561ffff81168103620006e357604051946200333e86620046f1565b600086526040519562003351876200466c565b607b8752602087015260405161509d8082018281106001600160401b038211176200149a5782916201cfdf833903906000f0801562001a405760018060a01b03166001600160601b0360a01b602a541617602a5560405161154f8082018281106001600160401b038211176200149a5782916201ba90833903906000f0801562001a405760018060a01b03166001600160601b0360a01b602c541617602c55604051610d308082018281106001600160401b038211176200149a5782916200b4fe833903906000f0801562001a405760018060a01b03166001600160601b0360a01b602d541617602d556040516108848082018281106001600160401b038211176200149a5782916200c22e833903906000f094851562001a4057602e80546001600160a01b0319166001600160a01b03881617905561ffff9360ff926001600160401b03918290620034a36200596d565b602a54604051919b91906001600160a01b0316620034c18262004688565b815260006020820152620034d4620052a8565b6040820152620034e48c620056cd565b52620034f08b620056cd565b50602c54604051906001600160a01b03166200350c8262004688565b8152600060208201526200351f62004e76565b60408201526200352f8c620056f1565b526200353b8b620056f1565b50602d54604051906001600160a01b0316620035578262004688565b8152600060208201526200356a620053b9565b60408201526200357a8c62005702565b52620035868b62005702565b5060405190620035968262004688565b6001600160a01b0316815260006020820152620035b2620054ca565b6040820152620035c28b62005713565b52620035ce8a62005713565b50620035d9620058fa565b986040519b620035e98d620046d4565b8c526001600160a01b031660208c01526200360a60243560408d01620057ba565b60443560608c01521660808a01521660a08801521660c08601521660e08401526402540be400610100840152600c6101208401526200364b60c435620057dd565b60c435610140840152610160830152604051916114a490818401928484106001600160401b038511176200149a5784936200368c9362008f3c8639620066fc565b03906000f0801562001a405760018060a01b0316806001600160601b0360a01b6029541617602955806001600160601b0360a01b602a541617602a55806001600160601b0360a01b602c541617602c55806001600160601b0360a01b602d541617602d556001600160601b0360a01b602e541617602e5580f35b503462000357576020366003190112620003575762003724620047d4565b6200372e62006a55565b906200373e620001e58262006af3565b5060646200022360405162003753816200466c565b6001815260203681830137620056cd565b50346200035757806003193601126200035757604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b85828210620037ca57505050620009299250038362004729565b85546001600160a01b0316845260019586019588955093019201620037b0565b50346200035757806003193601126200035757604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b858282106200385057505050620009299250038362004729565b85546001600160a01b031684526001958601958895509301920162003836565b503462000357576020806003193601126200036557603a54604051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003ca57859262003a2e575b5060016001600160401b03809316019082821162003a185780603954169086620038e73362006af3565b92803b1562000365576200391a9382916040518080978194636b2c1eef60e01b83528d6004840152602483019062004ccc565b0391600435905af1928315620007de578793620039fb575b5050603a54169360046040518096819382525afa928315620003ca578593620039bb575b50811691160362003965575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d8311620039f3575b620039d6818362004729565b8101031262000b0857620039eb829162006bb2565b929062003956565b503d620039ca565b62003a0991929350620046a4565b62000715578490863862003932565b634e487b7160e01b600052601160045260246000fd5b9091508381813d831162003a65575b62003a49818362004729565b8101031262000b085762003a5d9062006bb2565b9038620038bd565b503d62003a3d565b503462000357576020806003193601126200036557600435916001600160401b0391828411620003655736602385011215620003655783600401359062003ab4826200478e565b9162003ac4604051938462004729565b8083528183019560249687600593841b83010191368311620008525788859101915b83831062003b7257505050508384905b868216600381101562003b68578551111562003b535762003b2c879185681fffffffffffffffe085871b16880101519062006a47565b911686811462003b40576001019062003af6565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b823581529181019185910162003ae6565b503462000357576040366003190112620003575760043562003ba4620047a6565b80319062003bb16200577b565b506038546001600160a01b03929062003bcd908416836200714f565b505050929050836039541686813b15620003575786916004604051809481936316989f6f60e21b83525af180156200085f5762003c8c575b508062003c2491319462003c186200577b565b5060385416906200714f565b5050509390508482039182116200086a570362003c5257620004309262003c4b9162006a47565b1462006e4c565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b9562003c9d62003c249297620046a4565b959062003c05565b50346200035757806003193601126200035757604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b8582821062003d0b57505050620009299250038362004729565b85546001600160a01b031684526001958601958895509301920162003cf1565b5034620003575760031960203682011262000365576001600160401b0360043511620003655760c0906004353603011262000357576040519062003d6f8262004650565b600435600401356001600160401b038111620003655762003d9890600436918135010162004800565b8252600435602481013560208401526044810135604084015262003dbf90606401620048c4565b6060830152608460043501356001600160401b038111620003655736602382600435010112156200036557600481813501013562003dfd816200478e565b9262003e0d604051948562004729565b81845260208401923660248460051b836004350101011162000365576024816004350101935b60248460051b83600435010101851062003e6f57602062000b6b8888608082015262003e6460a460043501620048d3565b60a082015262005a48565b84356001600160401b038111620003c65760606004358401820136036023190112620003c6576040519062003ea48262004688565b600435840181016024810135835262003ec090604401620047eb565b60208301526001600160401b0360648286600435010101351162000b0857602492602092839262003f01903690600435890101606481013501870162004a41565b6040820152815201950194905062003e33565b503462000357576060908160031936011262000357576001600160401b0390600435828111620003655762003f4e903690600401620048e3565b9162003f59620047a6565b9262003f64620047bd565b62003f6e6200592d565b9060405162003f7d8162004688565b6001600160a01b039687168152602080820187905297889162003f9f62004e76565b604082015262003faf85620056cd565b5262003fbb84620056cd565b50876040519362003fcc8562004688565b168352868284015260405190819283918160255494858152019060258b527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c948b5b816007820110620041d9578462004073975493838310620041b8575b83831062004197575b83831062004176575b83831062004155575b83831062004137575b5082821062004118575b828210620040fb575b5010620040e557509050038262004729565b60408201526200408382620056f1565b526200408f81620056f1565b50604051926114a4808501918211858310176200117e5791849391620040bb9362008f3c8639620066fc565b039082f0908115620006f1575016806001600160601b0360a01b6029541617602955604051908152f35b6001600160e01b03191681528b91013862002a8a565b83811b6001600160e01b0319168552909301926001018462004061565b604084901b6001600160e01b0319168552909301926001018462004058565b84901b6001600160e01b03191685529093019260010184386200404e565b608085901b6001600160e01b03191686529481019460019092019162004045565b60a085901b6001600160e01b0319168652948101946001909201916200403c565b60c085901b6001600160e01b03191686529481019460019092019162004033565b60e085901b6001600160e01b0319168652948101946001909201916200402a565b9260089295506101009060019295885463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901528d84846080928282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520195019101928c9286949592956200400e565b90503462000365578160031936011262000365576200434f816200427e6001600160401b03936200466c565b60018152600162004297602092833681830137620056cd565b5260405190620042a78262004650565b620042b16200577b565b825284818301528460408301528460a060609382858201528460808201520152604051620042df81620046f1565b85815260405190620042f1826200466c565b607b8252828201526040516200430781620046f1565b86815260405191620043198362004650565b8252600a838301526402540be40060408301526046848301526080820152606460a08201526001600160a01b0393849162005a48565b1683620043cf62000b656001600160601b0360a01b93808560385416176038558085603a541617603a55808560395416176039558085603b541617603b558085603c541617603c558085603d541617603d558085603e541617603e558085603f541617603f558085604154161760415580856040541617604055620057e8565b1690818160295416176029558181602a541617602a558181602c541617602c558181602e541617602e55602d541617602d55620044c46200440f62006a55565b620044196200577b565b50604051600360621b8482015260148152620044a0906200443a816200466c565b62004491604051916200444d8362004688565b600a83526001600160801b0387840160148152604085019283526040519b8c958a80880152511660408601525116888401525187608084015260a083019062004bb2565b03601f19810188528762004729565b60405195620044af876200466c565b60048752838701528695620001f482620056cd565b506064620044e9604051620044d9816200466c565b60018152833681830137620056cd565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b15620007155760405163c88a5e6d60e01b8152600c600482015260016024820152868160448183895af180156200085f576200463a575b5084604051926200454a846200466c565b438452830152833b1562000b08576040516303223eab60e11b815260ff60981b6004820152858160248183895af18015620008b8579186939185936200461a575b50603d546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af18015620003eb57620045fa575b5050803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b816200461492903d10620003955762000385818362004729565b620045c8565b6200462a919350939193620046a4565b62000b085784918391386200458b565b62004647919550620046a4565b84933862004539565b60c081019081106001600160401b038211176200149a57604052565b604081019081106001600160401b038211176200149a57604052565b606081019081106001600160401b038211176200149a57604052565b6001600160401b0381116200149a57604052565b60e081019081106001600160401b038211176200149a57604052565b61018081019081106001600160401b038211176200149a57604052565b602081019081106001600160401b038211176200149a57604052565b608081019081106001600160401b038211176200149a57604052565b90601f801991011681019081106001600160401b038211176200149a57604052565b606435906001600160401b0382168203620006e357565b608435906001600160401b0382168203620006e357565b35906001600160401b0382168203620006e357565b6001600160401b0381116200149a5760051b60200190565b602435906001600160a01b0382168203620006e357565b604435906001600160a01b0382168203620006e357565b600435906001600160a01b0382168203620006e357565b35906001600160a01b0382168203620006e357565b9190604083820312620006e357604051926200481c846200466c565b83620048288262004779565b815260209182810135906001600160401b038211620006e357019280601f85011215620006e35783356200485c816200478e565b946200486c604051968762004729565b818652848087019260051b820101928311620006e35784809101915b8383106200489857505050500152565b8190620048a584620047eb565b815201910190849062004888565b60a4359060ff82168203620006e357565b359060ff82168203620006e357565b359061ffff82168203620006e357565b9190918083036101a08112620006e3576040516200490181620046d4565b80948335906001600160401b038211620006e3576200492291850162004800565b81526200493260208401620047eb565b602082015260408301356001811015620006e357604082015260608301356060820152620049636080840162004779565b60808201526200497660a0840162004779565b60a08201526200498960c08401620048c4565b60c08201526200499c60e08401620048d3565b60e08201526101008084013590820152610120918284013560009381850b820362000b08578301526101408085013590600382101562000b0857830152604061015f1990910112620003655760405192620049f7846200466c565b6101609283820135906002821015620003575750845262004a1c9061018001620047eb565b60208401520152565b6001600160401b0381116200149a57601f01601f191660200190565b81601f82011215620006e35780359062004a5b8262004a25565b9262004a6b604051948562004729565b82845260208383010111620006e357816000926020809301838601378301015290565b90815180825260208080930193019160005b82811062004aaf575050505090565b83516001600160a01b03168552938101939281019260010162004aa0565b90815180825260208080930193019160005b82811062004aee575050505090565b83516001600160e01b0319168552938101939281019260010162004adf565b602080820190808352835180925260409283810182858560051b8401019601946000925b85841062004b43575050505050505090565b90919293949596858062004b7b600193603f1986820301885286838d51878060a01b0381511684520151918185820152019062004acd565b99019401940192959493919062004b31565b60005b83811062004ba15750506000910152565b818101518382015260200162004b90565b9060209162004bcd8151809281855285808601910162004b8d565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b84831062004c0e5750505050505090565b909192939495848062004c2e600193603f198682030187528a5162004bb2565b980193019301919493929062004bfd565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811062004c7e575050505090565b83516001600160a01b03168552938101939281019260010162004c6f565b91959493909262004cb860809460a0855260a085019062004c3f565b966020840152604083015260608201520152565b906040602062004cee9360ff8151168452015191816020820152019062004bb2565b90565b81601f82011215620006e35780359162004d0b836200478e565b9262004d1b604051948562004729565b808452602092838086019260051b820101928311620006e3578301905b82821062004d47575050505090565b81356001600160e01b031981168103620006e357815290830190830162004d38565b51908115158203620006e357565b6000805460081c60ff161562004d91575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62004db357505090565b819250819060405182602082018381526519985a5b195960d21b60408401526040835262004de18362004688565b62004e1d6024604051809362004e0c6020830197630667f9d760e41b89525180928585019062004b8d565b810103600481018452018262004729565b51925af1503d1562004e6d573d9062004e368262004a25565b9162004e46604051938462004729565b82523d81602084013e5b602082805181010312620003575750602062004cee910162004d69565b60609062004e50565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b81600782011062005012578462004f1b97549383831062004ff1575b83831062004fd0575b83831062004faf575b83831062004f8e575b83831062004f6d575b83831062004f4f575b5082821062004f32575b501062004f1d575b509050038362004729565b565b6001600160e01b031916815201803862004f10565b83811b6001600160e01b0319168552909301926001018462004f08565b84901b6001600160e01b031916855290930192600101843862004efe565b606085901b6001600160e01b03191686529481019460019092019162004ef5565b608085901b6001600160e01b03191686529481019460019092019162004eec565b60a085901b6001600160e01b03191686529481019460019092019162004ee3565b60c085901b6001600160e01b03191686529481019460019092019162004eda565b60e085901b6001600160e01b03191686529481019460019092019162004ed1565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162004eb5565b60409081519182603754918282526020908183019060376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae9460005b81600782011062005123578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620050c5565b60409081519182603654918282526020908183019060366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b89460005b81600782011062005234578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620051d6565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b81600782011062005345578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620052e7565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062005456578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620053f8565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b81600782011062005567578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005509565b906040918251809382549283835260209182840191600052826000209460005b81600782011062005659578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620055fb565b805115620056db5760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620056db5760400190565b805160021015620056db5760600190565b805160031015620056db5760800190565b805160061015620056db5760e00190565b805160071015620056db576101000190565b805160081015620056db576101200190565b805160041015620056db5760a00190565b805160051015620056db5760c00190565b604051906200578a826200466c565b6060602083600081520152565b60405190620057a68262004688565b606060408360008152600060208201520152565b6001821015620057c75752565b634e487b7160e01b600052602160045260246000fd5b60031115620057c757565b60408051620057f781620046d4565b620058016200577b565b8152600080602083015280838301528060608301528060808301528060a08301528060c08301528060e08301526101008181840152600c61012083818601526402540be40061014093858588015287516200585c816200466c565b868152866020820152610160809801528562005877620058fa565b9880519a620058868c620046f1565b828c5281519b620058978d6200466c565b607b8d5260208d015281519b620058ae8d620046d4565b8c526001600160a01b031660208c01528a0152670de0b6b3a764000060608a0152600160808a0152600a60a08a0152604660c08a0152606460e08a015288015286015284015282015290565b600060206040516200590c816200466c565b82815201526040516200591f816200466c565b600081526000602082015290565b6040908151916200593e8362004688565b600283528260005b8281106200595357505050565b6020906200596062005797565b8282850101520162005946565b6040519060a082018281106001600160401b038211176200149a57604052600482528160005b60808110620059a0575050565b602090620059ad62005797565b8282850101520162005993565b908082519081815260208091019281808460051b8301019501936000915b848310620059e95750505050505090565b909192939495848062005a37600193601f198682030187528a51858060a01b0381511682528381015162005a1d81620057dd565b848301526040809101519160608092820152019062004acd565b9801930193019194939290620059d8565b906040516117848082018281106001600160401b038211176200149a57829162016232833903906000f0801562001a40576040516116598082018281106001600160401b038211176200149a5782916201a437833903906000f0801562001a4057604051612a818082018281106001600160401b038211176200149a578291620179b6833903906000f090811562001a4057604051612a728082018281106001600160401b038211176200149a578291620137c0833903906000f0801562001a40576040516126e78082018281106001600160401b038211176200149a5782916200ed13833903906000f0801562001a40576040516122618082018281106001600160401b038211176200149a5782916200cab2833903906000f090811562001a40576040516123c68082018281106001600160401b038211176200149a578291620113fa833903906000f092831562001a4057604051610d308082018281106001600160401b038211176200149a5782916200b4fe833903906000f095861562001a40576040516108848082018281106001600160401b038211176200149a5782916200c22e833903906000f095861562001a4057604051986101408a018a81106001600160401b038211176200149a5760405260098a5260005b6101208110620066e157506040519062005c3e8262004688565b60018060a01b031681526000602082015260405180816020602f549283815201602f6000527fa813484aef6fb598f9f753daf162068ff39ccea4075cb95e1a30f86995b5b7ee926000905b8060078301106200666c5762005ce29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005cf28a620056cd565b5262005cfe89620056cd565b506040519062005d0e8262004688565b60018060a01b031681526000602082015260405180816020603054928381520160306000527f6ff97a59c90d62cc7236ba3a37cd85351bf564556780cf8c1157a220f31f0cbb926000905b806007830110620065f75762005db29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005dc28962005724565b5262005dce8862005724565b506040519062005dde8262004688565b60018060a01b031681526000602082015260405180816020603154928381520160316000527fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc926000905b806007830110620065825762005e829454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005e928862005735565b5262005e9e8762005735565b506040519062005eae8262004688565b60018060a01b031681526000602082015260405180816020603254928381520160326000527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff697926000905b8060078301106200650d5762005f529454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005f628762005747565b5262005f6e8662005747565b506040519062005f7e8262004688565b60018060a01b031681526000602082015260405180816020603354928381520160336000527f82a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a82926000905b8060078301106200649857620060229454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b60408201526200603286620056f1565b526200603e85620056f1565b50604051906200604e8262004688565b60018060a01b031681526000602082015260405180816020603454928381520160346000527f46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c1926000905b8060078301106200642357620060f29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b6040820152620061028562005702565b526200610e8462005702565b50604051906200611e8262004688565b60018060a01b031681526000602082015260405180816020603554928381520160356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d926000905b806007830110620063ae57620061c29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b6040820152620061d28462005713565b52620061de8362005713565b5060405190620061ee8262004688565b6001600160a01b03168152600060208201526200620a62005086565b60408201526200621a8362005759565b52620062268262005759565b5060405190620062368262004688565b6001600160a01b03168152600060208201526200625262005197565b604082015262006262826200576a565b526200626e816200576a565b5060405190611b4d808301918383106001600160401b038411176200149a57620062a791620073ef8539604083526040830190620059ba565b906020818303910152620062c5845160c0835260c083019062004c3f565b906020850151602082015260408501516040820152606060ff8187015116818301526080860151928281036080840152835190818152602081016020808460051b8401019601936000925b8484106200635b5750505050505060a061ffff8185969701511691015203906000f0801562001a4057603880546001600160a01b0319166001600160a01b0392909216918217905590565b9091929394966020806200639d600193601f198682030188528660408d5180518452878060a01b03868201511686850152015191816040820152019062004bb2565b990194019401929493919062006310565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006169565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006099565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005fc9565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005ef9565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005e29565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005d59565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005c89565b808b60208093620066f162005797565b920101520162005c24565b906200671190604083526040830190620059ba565b9060208183039101526200672f82516101a080845283019062004c3f565b9160018060a01b0380602083015116602084015260408201516001811015620057c7576040840152606082015160608401526001600160401b0380608084015116608085015260a08301511660a084015260ff60c08301511660c084015261ffff60e08301511660e084015261010080830151908401526101208083015160000b908401526101408083015190620067c782620057dd565b84015261016080920151918251926002841015620057c7576101809360209286015201511691015290565b60409081519061509d90818301926001600160401b0392818510848611176200149a576201cfdf823980600094039084f0801562006a3d57845161154f80820190828210868311176200145e579082916201ba908339039085f090811562006a33578551610884808201908282108783111762006a1f579082916200c22e8339039086f090811562006a15578651610d30808201908282108883111762006a01579082916200b4fe8339039087f08015620069f757620068b16200596d565b938851620068bf8162004688565b6001600160a01b03938416815260208101899052620068dd620052a8565b8a820152620068ec86620056cd565b52620068f885620056cd565b5082895191620069088362004688565b1681528760208201526200691b62004e76565b898201526200692a85620056f1565b526200693684620056f1565b5081885191620069468362004688565b1681528660208201526200695962005197565b88820152620069688462005702565b52620069748362005702565b50865191620069838362004688565b1681528460208201526200699662005086565b86820152620069a58262005713565b52620069b18162005713565b508451926114a4808501918211858310176200117e5791849391620069dc9362008f3c8639620066fc565b039082f0918215620069ed57505090565b51903d90823e3d90fd5b87513d88823e3d90fd5b634e487b7160e01b89526041600452602489fd5b86513d87823e3d90fd5b634e487b7160e01b88526041600452602488fd5b85513d86823e3d90fd5b84513d85823e3d90fd5b9190820180921162003a1857565b6040519062006a64826200466c565b600182528160005b6020908181101562006a925760209162006a856200577b565b9082850101520162006a6c565b505050565b51906001600160a01b0382168203620006e357565b809291039160608312620006e357604062006ac78262004d69565b93601f190112620006e357604080519162006ae2836200466c565b602081015183520151602082015290565b6001600160401b039062006b066200577b565b5062006b996040918251906001600160601b03199060601b1660208201526014815262006b33816200466c565b62006b8a83519162006b458362004688565b600a83526001600160801b036020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a083019062004bb2565b03601f19810184528362004729565b519062006ba6826200466c565b60048252602082015290565b51906001600160401b0382168203620006e357565b9190604083820312620006e3576040519262006be3846200466c565b8362006bef8262006bb2565b815260209182810151906001600160401b038211620006e357019280601f85011215620006e357835162006c23816200478e565b9462006c33604051968762004729565b818652848087019260051b820101928311620006e35784809101915b83831062006c5f57505050500152565b819062006c6c8462006a97565b815201910190849062006c4f565b90602082820312620006e35781516001600160401b038111620006e35762004cee920162006bc7565b9062006cbd60209194939460408452604084019062004c3f565b6001600160a01b03909416910152565b6040519062006cdc826200466c565b8162006ce76200577b565b8152602062006cf56200577b565b910152565b62004cee91602062006d16835160408452604084019062004c3f565b92015190602081840391015262004ccc565b906020808351936040845260c062006db462006d52875160e0604089015261012088019062006cfa565b62006d6f8589015191603f1992838a83030160608b015262006cfa565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015262004bb2565b9501516101008501520151151591015290565b1562006dcf57565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b1562006e0f57565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b1562006e5457565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b03808416939092843b15620006e357829160409081518097637903ab2760e11b825281602460009a8b98899460049d8e8401525af1801562007145579088949392916200712e575b5062006ee98591846200714f565b9b93969298919a9050603a54168551938480926394074b0360e01b82525afa91821562006a3d5783926200710e575b5073__$a0fe38a9a81205afccc10810b09a4d3f45$__8451916390ba52cf60e01b9081845288848062006f5860209b8c8095840152602483019062004c3f565b0381865af4938415620069f7579086918295620070d2575b50875163aa5106cb60e01b815294958591829162006f9291908d840162006ca3565b0381855af492831562006a15579162006fcb939188938793620070b2575b5087518095819482938352868d840152602483019062004c3f565b03915af4928315620070a7579262007072575b500362006fff5750505091620023b3620023ba9262004f1b95941462006e4c565b5162461bcd60e51b815291820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a49150fd5b9091508381813d83116200709f575b6200708d818362004729565b81010312620006e35751903862006fde565b503d62007081565b8451903d90823e3d90fd5b620070ca9193503d8089833e6200279d818362004729565b913862006fb0565b89809296508193503d831162007106575b620070ef818362004729565b81010312620006e3575192859062006f9262006f70565b503d620070e3565b620071269192503d8085833e6200279d818362004729565b903862006f18565b946200713e62006ee996620046a4565b9462006edb565b83513d87823e3d90fd5b906200715a6200577b565b5060018060a01b0380911691826001600160601b0360a01b81816039541617603955603a541617603a5560409283519182916394074b0360e01b835282600460009586935afa918215620073e45792809291620071ec948293620073c4575b50865163aa5106cb60e01b81529473__$a0fe38a9a81205afccc10810b09a4d3f45$__9386928392916004840162006ca3565b0381845af492831562007397578293620073a1575b50620072339293603a541693855180926390ba52cf60e01b825281806020978895866004840152602483019062004c3f565b03915af49081156200739757908291829162007360575b50602486518096819363017187cd60e11b835260048301525afa92831562007354578193620072a1575b50505060a08101518151936001600160401b03938460608501511694608085015116930151919493929190565b909192503d8083833e620072b6818362004729565b8101918382840312620003575781516001600160401b0392838211620003f657019060c0828503126200035757855194620072f18662004650565b8251865280830151908601528582015186860152620073136060830162006bb2565b6060860152620073266080830162006bb2565b608086015260a08201519283116200035757506200734692910162006bc7565b60a082015238808062007274565b508351903d90823e3d90fd5b809250848092503d83116200738f575b6200737c818362004729565b810103126200036557819051386200724a565b503d62007370565b85513d84823e3d90fd5b620072339350620073bd903d8085833e6200279d818362004729565b9262007201565b620073dc9193503d8084833e6200279d818362004729565b9138620071b9565b85513d85823e3d90fdfe60806040523462000c825762001b4d80380380916200002082608062000edf565b6080396040811262000c82576080516001600160401b03811162000c825760808201609f8201121562000c82578060800151906200005e8262000f03565b916200006e604051938462000edf565b8083526020830180928560800160208460051b8360800101011162000c825760a08101915b60a0600585901b830101831062000d9d57505060a0519150506001600160401b03811162000c825760c08185031262000c82576040519360c085016001600160401b038111868210176200058757604081905260808301516001600160401b03811162000c8257836080010160408184608001031262000c8257620001188262000ec3565b80516001600160401b038116810362000c825782526020810151906001600160401b03821162000c82570182608001601f8201121562000c8257805190620001608262000f03565b9162000170604051938462000edf565b80835260208084019160051b8301019185608001831162000c8257602001905b82821062000d825750505060e08781019190915290865260a0830151602087015260c0830151604087015282015160ff8116810362000c825760608601526101008201516001600160401b03811162000c825760808201609f84830101121562000c825780836080010151620002068162000f03565b9262000216604051948562000edf565b81845260208401926080820160a0878301600586901b01011162000c825760a086820101935b60a0878301600586901b0101851062000c875789898960a08a8a6080860152608001015161ffff8116810362000c825760a084015260208301511562000c705760ff6060840151166033811090811562000c64575b5062000c52577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000587576020810160405260008152825160005b818110620005f75750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106200059d57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003698a8a60006020850152838203604085015262000fe7565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054821683179055602b805464ffffffffff1916600217905583518051601980546001600160401b03199081166001600160401b039384161790915591909401518051939594919391821162000587576801000000000000000082116200058757602090601a5483601a5580841062000566575b5001601a600052602060002060005b838110620005495762000539608088600a898c8a6020850151601d556040850151601b5560ff60608601511690601c541617601c5580600b556012556064601e55601f541617601f5560a081015162ffff006020549160081b169062ffff0019161760205568010000000000000001600180841b031960295416176029550151604051906200052a8262000ec3565b815260006020820152620013bf565b6040516101339081620019da8239f35b82516001600160a01b03168183015560209092019187016200049b565b6200058090601a6000528484600020918201910162000f55565b876200048c565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005e8600193607f198b8203018652606060408b51878060a01b038151168452620005d7868201518786019062000f99565b015191816040820152019062000fa7565b97019201920190929162000322565b604062000605828762000f6e565b5101516001600160a01b036200061c838862000f6e565b5151169080511562000c3957602062000636848962000f6e565b510151600381101562000c2357806200086057508115620008355761ffff60008051602062001b0d8339815191525416620006b3604051620006788162000ea7565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001040565b8151916000915b838310620006d25750505050506001905b01620002f3565b6001600160e01b0319620006e7848462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020549091906001600160a01b03166200081c576200078a604051620007298162000ec3565b87815261ffff929092166020808401828152600086815260008051602062001b2d83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b0d8339815191525491680100000000000000008310156200058757620007f190620007d460019485810160008051602062001b0d833981519152556200100e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000806578101920191620006ba565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200085c90602483019062000fa7565b0390fd5b60018103620009d957508115620009b257620008c5604051620008838162000ea7565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001040565b80519060005b828110620008e05750505050600190620006cb565b6001600160e01b0319620008f5828462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020546001600160a01b031630811462000999578581146200098057156200096857600090815260008051602062001b2d8339815191526020526040902080546001600160a01b03191685179055600101620008cb565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200085c90602483019062000fa7565b6002810362000c01575060008051602062001b0d83398151915254918062000be9575080519060005b82811062000a175750505050600190620006cb565b6001600160e01b031962000a2c828462000f6e565b5116908160005260008051602062001b2d8339815191526020526040600020946040519562000a5b8762000ec3565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bd05785516001600160a01b0316301462000bb7578015620008065760001901948561ffff6020830151160362000b34575b5060008051602062001b0d8339815191525491821562000b1e576001926000190162000ad9816200100e565b63ffffffff82549160031b1b1916905560008051602062001b0d8339815191525560005260008051602062001b2d833981519152602052600060408120550162000a02565b634e487b7160e01b600052603160045260246000fd5b62000bb09061ffff602062000b49896200100e565b90549060031b1c60e01b9262000b6984620007d48585850151166200100e565b01516001600160e01b0319909216600090815260008051602062001b2d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000aad565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c2190600483019062000f99565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b60649150118462000291565b60405163312f8e0560e01b8152600490fd5b600080fd5b84516001600160401b03811162000c8257601f199190888401016080810190606090860384011262000c82576040519062000cc28262000ea7565b6020810151825262000cd76040820162000f1b565b60208301526060810151906001600160401b03821162000c8257019185608001603f8401121562000c82576020830151916001600160401b03831162000d6d5762000d2e602060405196601f860116018662000edf565b828552866080016040848601011162000c82578462000d5a602096948796604088809801910162000f30565b604082015281520195019490506200023c565b60246000634e487b7160e01b81526041600452fd5b6020809162000d918462000f1b565b81520191019062000190565b82516001600160401b03811162000c8257606090830160808101908903601f1901821362000c82576040519162000dd48362000ea7565b62000de26020830162000f1b565b83526040820151600381101562000c82576020840152810151906001600160401b03821162000c82570188608001603f8201121562000c825760208101519062000e2c8262000f03565b9162000e3c604051938462000edf565b808352602083018b60800160408360051b8501011162000c825760408301905b60408360051b850101821062000e845750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000c825781526020918201910162000e5c565b606081019081106001600160401b038211176200058757604052565b604081019081106001600160401b038211176200058757604052565b601f909101601f19168101906001600160401b038211908210176200058757604052565b6001600160401b038111620005875760051b60200190565b51906001600160a01b038216820362000c8257565b60005b83811062000f445750506000910152565b818101518382015260200162000f33565b81811062000f61575050565b6000815560010162000f55565b805182101562000f835760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c235752565b90815180825260208080930193019160005b82811062000fc8575050505090565b83516001600160e01b0319168552938101939281019260010162000fb9565b90602091620010028151809281855285808601910162000f30565b601f01601f1916010190565b9060008051602062001b0d833981519152805483101562000f8357600052601c60206000208360031c019260021b1690565b803b156200104c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200085c90604483019062000fe7565b908082519081815260208091019281808460051b8301019501936000915b848310620010b15750505050505090565b9091929394958480620010f4600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062000fe7565b9801930193019194939290620010a0565b90600182811c9216801562001137575b60208310146200112157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001115565b9190601f81116200115257505050565b62001181926000526020600020906020601f840160051c8301931062001183575b601f0160051c019062000f55565b565b909150819062001173565b908082146200127757620011a3815462001105565b906001600160401b03821162000587578190620011cd82620011c6865462001105565b8662001142565b600090601f83116001146200120757600092620011fb575b50508160011b916000199060031b1c1916179055565b015490503880620011e5565b81526020808220858352818320935090601f1985169083905b8282106200125d57505090846001959493921062001243575b505050811b019055565b015460001960f88460031b161c1916905538808062001239565b849581929585015481556001809101960194019062001220565b5050565b60045481101562000f835760046000526003602060002091020190600090565b90620013a95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200058757620013078362001300875462001105565b8762001142565b81601f841160011462001343575092829391839260009462001337575b50501b916000199060031b1c1916179055565b01519250388062001324565b919083601f1981168760005284600020946000905b888383106200138e57505050106200137457505050811b019055565b015160001960f88460031b161c1916905538808062001239565b85870151885590960195948501948793509081019062001358565b634e487b7160e01b600052600060045260246000fd5b604090815190602090818352620013e181518584860152606085019062001082565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200174e575b505060049182549168010000000000000000958684116200173957600654846006558085106200164f575b50600093858552868520600686528786209086905b838210620015f95750505050808854169160018060401b03199283600754161760075583515193865498865b8681106200157757505050511690875416178655808511620014ba575b505050505050565b84811015620014b2578254801562001564576000190190620014dc826200127b565b9290926200155257838355836002600194828682015501620014ff815462001105565b8062001512575b505050845501620014ba565b82601f8083116001146200152e57505050555b83388062001506565b8382528a82209391926200154a91018d1c840188850162000f55565b555562001525565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ae5780620015a762001594600193865162000f6e565b51620015a0836200127b565b906200129b565b0162001495565b620015bb81845162000f6e565b51895483811015620015e65760019291620015a0828d86620015e0950190556200127b565b620015a7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001616575b600380910193019101909162001469565b805484558180850190838060a01b039083015416838060a01b03198254161790556200164960028083019086016200118e565b62001605565b6003908082029082820403620017245785820282810487036200170f57886000916006835281832093840193015b8c8482106200169157505050505062001454565b85928491828455600183818601556002850191620016b0835462001105565b9182620016c7575b5050505050500189906200167d565b8591601f808511600114620016eb5750505050509050555b828b388f8082620016b8565b859496849662001707955286209601901c850190850162000f55565b5555620016df565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b85835116866007541690818114620018d45710620018c357815191620017748362000ec3565b600454620017828162000f03565b91620017918151938462000edf565b81835287830190600460005288600020906000925b848410620017da57505050918452505084820152620017c69083620018df565b620017d357388062001429565b5050505050565b8a8d835190620017ea8262000ea7565b8554825260018060a01b0360018701541683830152600286018551916000918054620018168162001105565b8086529260018216918215620018a05750506001146200185c575b50509181620018496001969360039695038262000edf565b86820152815201930193019291620017a6565b60009081528581209092505b8183106200188157505081018301816200184962001831565b8060019196929394959654838688010152019201908f94939262001868565b60ff19168689015292151590921b84018601925083915062001849905062001831565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b0391821691160362001991576200190a8162001999565b620019158462001999565b0362001991575180518351510362001991576200198a6200197d9160405190816200194b86820192878452604083019062001082565b039162001961601f199384810183528262000edf565b5190209451604051938491868301968752604083019062001082565b0390810183528262000edf565b5190201490565b505050600090565b8051519060009182915b818310620019b15750505090565b909192620019c184835162000f6e565b515181018091116200080657926001019190620019a356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610ce35761111e8038038061001981610dcf565b928339810190604081830312610ce35780516001600160401b038111610ce35781019082601f83011215610ce35781519061005b61005683610df4565b610dcf565b92602084848152016020819460051b83010191868311610ce35760208101915b838310610ce857505050506020810151906001600160401b038211610ce3570160a081850312610ce3576040519360a085016001600160401b0381118682101761051c576040526100cb82610e0b565b85526100d960208301610e0b565b60208601526100ea60408301610e0b565b604086015260608201516001600160401b038111610ce3578161010e918401610e1f565b606086015260808201516001600160401b038111610ce3576101309201610e1f565b608084015282516001600160a01b031615610cd15760208301516001600160a01b031615610cbf5760408301516001600160a01b031615610cbf577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b03191633179055604051602081016001600160401b0381118282101761051c5760405260008152825160005b8181106106885750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061063357877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806102338a8a600060208501528382036040850152610efb565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b60009081527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549092168317909155835181546001600160a01b039182166001600160a01b0319918216179092559284015182549084169082161782556040840151600280549190941691161782556060830151805192939091906001600160401b03841161051c57680100000000000000009081851161051c5760039384548686558087106105d7575b5060200184600052602060002086861c9060005b828110610586575060071997808916900380610532575b50505050608001518051916001600160401b03831161051c57821161051c57600454826004558083106104a3575b506020016004600052816020600020941c9460005b8681106104525750821680830392036103fa575b6040516101339081610fab8239f35b91906000956000905b82821061041c57505050505001558080808080806103eb565b9091926020610446869983975160e01c9086861b60031b9163ffffffff809116831b921b19161790565b98019493920190610403565b84906000805b8a6008821061046d57505081880155016103d7565b610496908794959383602094995160e01c921b60031b9163ffffffff809116831b921b19161790565b9201940190869291610458565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6007918201861c8101918401861c01601c84891b1680610502575b5084905b8281106104f65750506103c2565b600081550184906104e8565b6000199081830191825491602003891b1c169055886104e4565b634e487b7160e01b600052604160045260246000fd5b9260009360005b888c83831061055357505050505001556080878080610394565b61057c908598846020949596975160e01c921b60031b9163ffffffff809116831b921b19161790565b9601929101610539565b86906000805b8c600882106105a1575050818401550161037d565b6105ca9088949593836020949a5160e01c921b60031b9163ffffffff809116831b921b19161790565b920195019088929161058c565b8560005260206000206007808901881c82019201871c0190601c888a1b1680610619575b5085905b82811061060d575050610369565b600081550185906105ff565b60001990818301918254916020038a1b1c169055896105fb565b9091929460208061067a600193607f198b8203018652606060408b51878060a01b03815116845261066a8682015187860190610eb0565b0151918160408201520190610ebd565b9701920192019092916101ef565b60406106948287610e86565b5101516001600160a01b036106a98388610e86565b51511690805115610ca65760206106c08489610e86565b5101516003811015610c9057806108de575081156108b55761ffff6000805160206110de83398151915254166107316106f7610db0565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610f6b565b8151916000915b83831061074e5750505050506001905b016101c1565b6107588383610e86565b516001600160e01b0319811660009081526000805160206110fe83398151915260205260409020549091906001600160a01b03166108935761080661079b610d91565b87815261ffff9290921660208084018281526001600160e01b0319861660009081526000805160206110fe83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b6000805160206110de83398151915254916801000000000000000083101561051c576108686108496001948581016000805160206110de83398151915255610f3b565b909260e01c9083549060031b9163ffffffff809116831b921b19161790565b905561ffff811461087d578101920191610738565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b81526001600160e01b031983166004820152602490fd5b6040516302b8da0760e21b8152602060048201529081906108da906024830190610ebd565b0390fd5b60018103610a4157508115610a1c576109396108f8610db0565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610f6b565b80519060005b8281106109525750505050600190610748565b6001600160e01b03196109658284610e86565b511660008181526000805160206110fe83398151915260205260409020546001600160a01b0316308114610a03578581146109ea57156109d25760009081526000805160206110fe8339815191526020526040902080546001600160a01b0319168517905560010161093f565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906108da906024830190610ebd565b60028103610c7057506000805160206110de833981519152549180610c58575080519060005b828110610a7a5750505050600190610748565b6001600160e01b0319610a8d8284610e86565b511690816000526000805160206110fe833981519152602052604060002094610ab4610d91565b95546001600160a01b03811680885260a09190911c61ffff16602088015215610c3f5785516001600160a01b03163014610c2657801561087d576000190180958161ffff60208301511603610b85575b50506000805160206110de83398151915254918215610b6f5760019260001901610b2d81610f3b565b63ffffffff82549160031b1b191690556000805160206110de833981519152556000526000805160206110fe8339815191526020526000604081205501610a67565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610b96610c1f94610f3b565b90549060031b1c92610bd3610baf848484015116610f3b565b63ffffffff87939293169083549060031b9163ffffffff809116831b921b19161790565b9055015160e09290921b6001600160e01b03191660009081526000805160206110fe83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610b04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610c8e906004830190610eb0565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516307a0435160e51b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b600080fd5b82516001600160401b038111610ce35782019060609081601f19848c030112610ce357604051918083016001600160401b03811184821017610d7c57604052610d3360208501610e0b565b835260408401516003811015610ce3576020840152830151916001600160401b038311610ce357610d6c8b602080969581960101610e1f565b604082015281520192019161007b565b60246000634e487b7160e01b81526041600452fd5b60408051919082016001600160401b0381118382101761051c57604052565b60405190606082016001600160401b0381118382101761051c57604052565b6040519190601f01601f191682016001600160401b0381118382101761051c57604052565b6001600160401b03811161051c5760051b60200190565b51906001600160a01b0382168203610ce357565b9080601f83011215610ce357815190610e3a61005683610df4565b9182938184526020808095019260051b820101928311610ce3578301905b828210610e66575050505090565b81516001600160e01b031981168103610ce3578152908301908301610e58565b8051821015610e9a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906003821015610c905752565b90815180825260208080930193019160005b828110610edd575050505090565b83516001600160e01b03191685529381019392810192600101610ecf565b919082519283825260005b848110610f27575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610f06565b906000805160206110de8339815191528054831015610e9a57600052601c60206000208360031c019260021b1690565b803b15610f76575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906108da906044830190610efb56fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b9d7f9c6859a7892a4a07de8c422249a35a0277dfd6ed6a8d534a807b3da4c7c64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd26080806040523461001657610d14908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c634300081300336080806040523461001657610868908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c634300081300336080806040523461001657612245908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114a85781630338150f1461146257816305aff0b31461143a57816306572c1a1461140957816306c46853146113ea57816322180594146113cb57816324729425146113ac5781632da5794a14611333578163335eb62a1461113657816341b6a2e81461110b5781634aa8f8a5146110ec578163544dddff146110c4578163599c7bd1146110a25781635d02968514610f8b5781636547cd6414610f6057816369e737fd14610f415781636ad21bb014610e63578163767ee5f414610de95781637edeac9214610d9a5781638789f83b14610d6f5781638cfd78e714610cdf57816394074b0314610c295781639704276614610a885781639d3070b514610a425781639e530b5714610a10578163a2b67158146109e5578163a517218f14610961578163a9294bdd146107c5578163ac12d76314610787578163b1ba49b01461075f578163b3ab3f7414610734578163b9ee584214610697578163c66c66a114610646578163ca41d5ce146104e2578163d6c5c39714610372578163dd81b5cf1461029d575063f3229131146101ba57600080fd5b346102995781600319360112610299576101d2611e36565b508051906101df82611896565b6006546101eb81611923565b6101f783519182611902565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b82821061025757505050610253945083526001600160401b036007541690830152519182918261176f565b0390f35b60038560019288516102688161187b565b8b548152848060a01b03858d0154168382015261028760028d01611b9a565b8a820152815201980191019096610228565b5080fd5b9190503461036e576020918260031936011261036a576102bb611b73565b50358352600982528083209260038251946102d58661187b565b6102de81611acc565b8652600281015485870152018054906102f682611923565b9261030385519485611902565b828452908152848120858085015b848410610330578689018690528651828152806102538185018c6116d6565b600191600d91885161034181611896565b61034a86611cb1565b815260ff600c870154161515838201528152019201920191908690610311565b8380fd5b8280fd5b83833461029957816003193601126102995761038c611b47565b50610395611b47565b50601d549081156104cf576001600160401b03918083431604600181018091116104bc57906103c3916121e6565b8084526104216020809660088252848720908551966103e18861184a565b816103eb84611acc565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612038565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104b157809561046a575b505081606091610253949351968796158752860152840152606083019061159b565b909194508582813d83116104aa575b6104838183611902565b810103126104a75750610253929161049c606092611e7b565b949181939450610448565b80fd5b503d610479565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b9190503461036e57602036600319011261036e57813591610501611b47565b5061050a611e50565b508284526008602052818420926001600160401b038284519561052c8761184a565b61053581611acc565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af490811561063c57906102539291856105bc969181809461060c575b50506105f16105fe939451978897610100808a5289019061159b565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a19565b9083820360e0850152611a56565b6105fe94506105f1935061063292503d8091833e61062a8183611902565b810190611e88565b91929091936105a0565b82513d86823e3d90fd5b8284346104a75750610680610253610678610673610663366119e8565b61066b611d28565b50369061193a565b6120d6565b929092611d65565b835193849315158452806020850152830190611548565b9190503461036e57602036600319011261036e578060ff6107329260a0956106bd611e50565b5085358152601360205220938251946106d5866118cc565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b90503461036e57602036600319011261036e5781602093600392358152600c85522001549051908152f35b5050346102995781600319360112610299576020906001600160401b03600754169051908152f35b9190503461036e57602036600319011261036e578060ff6107329260a0956107ad611e50565b5085358152600c60205220938251946106d5866118cc565b9190503461036e576020918260031936011261036a578035926107e6611b73565b506107ef611e50565b50838552600981528285209360038451956108098761187b565b61081281611acc565b875260028101548488015201805461082981611923565b9161083687519384611902565b81835288528388208890858085015b8484106109275750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561091d5790856102539493926108c197908280956108f4575b50506105f1906105fe949551988998610100808b528a01906116d6565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b6105fe95506105f1935061091292503d8091833e61062a8183611902565b9490925081906108a4565b83513d87823e3d90fd5b600191600d918b5161093881611896565b61094186611cb1565b815260ff600c870154161515838201528152019201920191908690610845565b8284346104a757806003193601126104a7578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109ce5761025386866109c4828b0383611902565b519182918261180f565b8354875295860195600193840193909101906109ac565b5050346102995781600319360112610299576020906001600160401b03601c5460881c169051908152f35b8284346104a757506001600160401b03610a31610a2c366119e8565b611db8565b835191151582529091166020820152f35b8284346104a75760203660031901126104a75782356001600160401b03918282116104a75750610a7c61067360209560039336910161193a565b90500154169051908152f35b905082346104a757806003193601126104a75782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1357505050610aea92500385611902565b835191610af683611923565b91610b0387519384611902565b838352601f19610b1285611923565b0182865b828110610bfd57505050845b6001600160401b039081811686811015610ba05790610b988284610b486001958d611e0c565b51168a52600887528b8587828d20835193610b628561184a565b610b6b82611acc565b855260028201548c8601526003820154908501520154166060820152610b91828a611e0c565b5287611e0c565b500116610b22565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bd15785850386f35b909192938280610bed600193603f198a8203018652885161159b565b9601920196019592919092610bc4565b610c05611b47565b828288010152018390610b16565b855484526001958601958a955093019201610ad3565b8284346104a757806003193601126104a757610c43611ab2565b50815191610c5083611896565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610cc25788906102538888610caf818a0382611902565b83850152519282849384528301906114ed565b83546001600160a01b031685529093019260019283019201610c94565b90503461036e57602036600319011261036e579181928160c08451610d03816118b1565b610d0b611dea565b8152610d15611dea565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d4f60ff600c8401541692611cb1565b91610d63825193838594855284019061165c565b90151560208301520390f35b5050346102995781600319360112610299576020906001600160401b03601c5460481c169051908152f35b90503461036e57602036600319011261036e57610dcd906102539360208451610dc281611896565b828152015235612097565b9051918291829190916020806040830194805184520151910152565b8284346104a757806003193601126104a7578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e4c5761025386866109c4828b0383611902565b835487529586019560019384019390910190610e34565b8383346102995781600319360112610299578290610e7f611e36565b50805191610e8c83611896565b8054610e9781611923565b90610ea484519283611902565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610eff57505050610253945083526001600160401b036005541690830152519182918261176f565b6003856001928851610f108161187b565b8b548152848060a01b03858d01541683820152610f2f60028d01611b9a565b8a820152815201980191019096610ed4565b505034610299578160031936011261029957602090601e549051908152f35b90503461036e57602036600319011261036e5781602093600392358152601385522001549051908152f35b8284346104a757806003193601126104a757601854610fa981611923565b90610fb684519283611902565b808252601f19610fc582611923565b01835b81811061108b575050825b818110611037575050825191602080840190808552835180925280868601968360051b870101940192955b82871061100b5785850386f35b909192938280611027600193603f198a82030186528851611548565b9601920196019592919092610ffe565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261106f868620611d65565b6110798286611e0c565b526110848185611e0c565b5001610fd3565b602090611096611d28565b82828701015201610fc8565b50503461029957816003193601126102995760209060ff601c54169051908152f35b5050346102995781600319360112610299576020906001600160401b03600554169051908152f35b505034610299578160031936011261029957602090600b549051908152f35b5050346102995781600319360112610299576020906001600160401b03601c5460081c169051908152f35b50503461029957816003193601126102995780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b8682821061131d5750505061119792500385611902565b8351916111a383611923565b916111b085519384611902565b838352601f196111bf85611923565b0182825b82811061130757505050805b6001600160401b0390818116868110156112ab57826111ee828b611e0c565b511684526009855287842060038951916112078361187b565b61121081611acc565b835260028101548884015201805461122781611923565b916112348c519384611902565b818352875287872087898085018e5b858410611270579250505084611268959350600197969492500152610b91828a611e0c565b5001166111cf565b91600d916001935161128181611896565b61128a87611cb1565b815260ff600c880154161515838201528152019301910190918a908e611243565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106112db5785850386f35b9091929382806112f7600193603f198a820301865288516116d6565b96019201960195929190926112ce565b61130f611b73565b8282880101520183906111c3565b855484526001958601958a955093019201611180565b9190503461036e57602036600319011261036e576001600160401b03816102539461135c611b47565b5084358152600860205220928251936113748561184a565b61137d81611acc565b85526002810154602086015260038101548486015201541660608301525191829160208352602083019061159b565b505034610299578160031936011261029957602090601b549051908152f35b5050346102995781600319360112610299576020906012549051908152f35b505034610299578160031936011261029957602090601d549051908152f35b8284346104a75760203660031901126104a75750606461143260209360ff601c541690356121e6565b049051908152f35b5050346102995781600319360112610299576020906001600160401b03601f54169051908152f35b50503461029957816003193601126102995781610253926020835161148681611896565b82815201526020825161149881611896565b8281520152610dcd600254612097565b90503461036e57602036600319011261036e5781610253936114da926114cc611d28565b503581528060205220611d65565b9051918291602083526020830190611548565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061152b575050505090565b83516001600160a01b03168552938101939281019260010161151d565b9060c060a0611598938051845260208101516020850152604081015160408501526001600160401b0380606083015116606086015260808201511660808501520151918160a082015201906114ed565b90565b9060606001600160401b03816115ba85516080865260808601906114ed565b94602081015160208601526040810151604086015201511691015290565b60005b8381106115eb5750506000910152565b81810151838201526020016115db565b90602091611614815180928185528580860191016115d8565b601f01601f1916010190565b60406020611598938161163a8551858452858401906114ed565b940151908281860391015260ff815116845201519181602082015201906115fb565b9060c0806116cd61168b611679865160e0875260e0870190611620565b60208701518682036020880152611620565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a08701526115fb565b93015191015290565b6116e981516060845260608401906114ed565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061172b575050505050505090565b909192939495968580600192601f198582030187528a5190828061175684518a85528a85019061165c565b930151151591015299019401940192959493919061171a565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b8383106117c1575050505050906001600160401b039101511691015290565b909192939886806118008a856001958f8f83918591607f19908503018c525180518452898060a01b0388820151168885015201519382015201906115fb565b9b0193019301919392906117a2565b6020908160408183019282815285518094520193019160005b828110611836575050505090565b835185529381019392810192600101611828565b608081019081106001600160401b0382111761186557604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761186557604052565b604081019081106001600160401b0382111761186557604052565b60e081019081106001600160401b0382111761186557604052565b60a081019081106001600160401b0382111761186557604052565b60c081019081106001600160401b0382111761186557604052565b90601f801991011681019081106001600160401b0382111761186557604052565b6001600160401b0381116118655760051b60200190565b91906040838203126119e3576040519261195384611896565b836001600160401b03823581811681036119e3578252602092838101359182116119e357019280601f850112156119e357833561198f81611923565b9461199d6040519687611902565b818652848087019260051b8201019283116119e3578401905b8282106119c4575050500152565b81356001600160a01b03811681036119e35781529084019084016119b6565b600080fd5b600319906020818301126119e357600435916001600160401b0383116119e357826040920301126119e35760040190565b90815180825260208080930193019160005b828110611a39575050505090565b83516001600160a01b031685529381019392810192600101611a2b565b908082519081815260208091019281808460051b8301019501936000915b848310611a845750505050505090565b9091929394958480611aa2600193601f198682030187528a516115fb565b9801930193019194939290611a74565b60405190611abf82611896565b6060602083600081520152565b90604051611ad981611896565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b285750505050611b2492500384611902565b0152565b83546001600160a01b0316855289955090930192918101918101611b0c565b60405190611b548261184a565b6000606083611b61611ab2565b81528260208201528260408201520152565b60405190611b808261187b565b6060604083611b8d611ab2565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c61575b6020948584108914611c4d5787988489979899529081600014611c2b5750600114611bec575b505050611bea92500383611902565b565b600090815285812095935091905b818310611c13575050611bea9350820101388080611bdb565b85548884018501529485019487945091830191611bfa565b92505050611bea94925060ff191682840152151560051b820101388080611bdb565b634e487b7160e01b85526022600452602485fd5b91607f1691611bb5565b9060405191611c7983611896565b602083611c8583611acc565b8152611ca9600360405194611c9986611896565b60ff600282015416865201611b9a565b828401520152565b90604051611cbe816118b1565b60c0600b8294611ccd81611c6b565b8452611cdb60048201611c6b565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d1c600a8201611b9a565b60a08501520154910152565b60405190611d35826118e7565b81600081526000602082015260006040820152600060608201526000608082015260a0611d60611ab2565b910152565b90604051611d72816118e7565b60a0611d606004839580548552600181015460208601526002810154604086015260038101546001600160401b0390818116606088015260401c16608086015201611acc565b610673611dc691369061193a565b9015611de15760036001600160401b03910154169060019190565b50600090600090565b60405190611df782611896565b81611e00611ab2565b81526020611d60611ab2565b8051821015611e205760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e4382611896565b6000602083606081520152565b60405190611e5d826118cc565b60006080838281528260208201528260408201528260608201520152565b519081151582036119e357565b909181830360e081126119e35760a0136119e3576040928351611eaa816118cc565b835181526020908185015182820152858501518682015260608501516060820152611ed760808601611e7b565b60808201529460a0850151926001600160401b03938481116119e357860191601f928284820112156119e357805190611f0f82611923565b91611f1c84519384611902565b808352868084019160051b830101918583116119e3578701905b828210612019575050509660c0810151908682116119e35701928281850112156119e357835191611f6683611923565b96611f7382519889611902565b838852868089019460051b870101958587116119e357878101945b878610611fa15750505050505050505090565b85518381116119e35782019087603f830112156119e3578982015190848211612004578551611fd8838901601f19168d0182611902565b828152898784860101116119e357611ff98c949385948986850191016115d8565b815201950194611f8e565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b03811681036119e3578152908701908701611f36565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061207a575050505090565b83516001600160a01b03168552938101939281019260010161206c565b600060206040516120a781611896565b8281520152600052600160205260406000206001604051916120c883611896565b805483520154602082015290565b61210d73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612038565b0381865af49081156121ab576000916121b7575b509061215d91600052600081528060406000209361214160048601611acc565b906040518080968194630c133d1360e31b835260048301612038565b03915af49081156121ab57600091612177575b5090501591565b82813d83116121a4575b61218b8183611902565b810103126104a7575061219d90611e7b565b8038612170565b503d612181565b6040513d6000823e3d90fd5b908282813d83116121df575b6121cd8183611902565b810103126104a757505161215d612121565b503d6121c3565b818102929181159184041417156121f957565b634e487b7160e01b600052601160045260246000fdfea26469706673582212200894d1fa73274627bfc97f431b5696c4fbe4f8d666f48d8812d4dadb1542782a64736f6c6343000813003360808060405234610016576126cb908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081630517e1aa14610ec75750806318f44b7014610ce157806341c0e1b514610b9257806345f5448514610b015780635a627dbc14610ad15780636b2c1eef146104e0578063d8e25572146103a05763f207564e1461007757600080fd5b6020806003193601126102935760043590601a5460019081810180911161038a5760ff602b54161115610311578234106102ff576100f66100b88434611272565b936100c161127f565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016114ec565b0381855af492831561029f576000936102da575b5061011483612523565b906102c85760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025457908983926101618299979a98969584611551565b0190600052866000208960005b8481106102ab575050505050856002916101ac97554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611491565b03915af492831561029f5760009361026a575b505060185490600160401b8210156102545781018060185581101561023e5760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601c54906102236001600160401b0360881b918360881c16611585565b60881b1667ffffffffffffffff60881b199190911617601c55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d8311610298575b61028281836111ee565b8101031261029357519038806101bf565b600080fd5b503d610278565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b910161016e565b604051631b538cdf60e11b8152600490fd5b6102f89193503d806000833e6102f081836111ee565b810190611469565b913861010a565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025457604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261038660405192839263015538b160e01b84526004840152602483019061124d565b0390fd5b634e487b7160e01b600052601160045260246000fd5b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc576103f43361248b565b90156104aa578161040a600461042b9301611310565b60405180938192632cff562160e11b83528460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561029f5760009261046c575b600084610469876001600160a01b0387166115cd565b55005b90809250813d83116104a3575b61048381836111ee565b810103126102935760009261049a610469926113b2565b91819450610453565b503d610479565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b600319602036820112610293576004356001600160401b038111610293576040828236030112610293573415610abf57604051632e82508d60e21b815260a060048201529160009183918291610555919061053d60a48501611a06565b913360248601528483030160448501526004016118d1565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561029f57600091610a9c575b50601e54908115610a8657816001600160401b034316046001810180911161038a5782810292818404149015171561038a57601c5468ffffffffffffffff006105e46001600160401b038360081c1680606086510152611585565b60081b169068ffffffffffffffff00191617601c558160005260096020526040600020916002830180541560001461069f579260039161062e9460198303610673575b5501611d98565b3447106106615760008080803460635af161064761159d565b501561064f57005b604051633204506f60e01b8152600490fd5b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b031984541617835561069a60018401612408565b610627565b50506003820154601f546001600160401b031603610a75576003820154916106c68361139b565b926106d460405194856111ee565b808452601f196106e38261139b565b0160005b818110610a0d575050604051938460608101106001600160401b03606087011117610254576060850160405261071b61127f565b8552436020860152604085015260005b81811061094b5750604051602081526107508551606060208401526080830190611491565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061091e575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108ac575b509060036107d79201611d98565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b0383116102545760209061082d8484611551565b0190600052602060002060005b83811061088f57505050602083015160028301555060408201515160039091019160005b82811061086e575050505061062e565b8061088961088260019360408601516122a6565b5186611d98565b0161085e565b82516001600160a01b03168183015560209092019160010161083a565b80600d0290600d82040361038a57600382016000526020600020908101905b8181106108d857506107c9565b806108e4600d926123e5565b6108f0600482016123e5565b600060088201556000600982015561090a600a820161239c565b6000600b8201556000600c820155016108cb565b909192939560208061093c600193601f198682030187528a51611ac1565b98019301930191939290610788565b80610a068161095f60019460038801611d42565b5060408901519060ff600c60405192610977846111b8565b604051610983816111d3565b61098c8261235e565b815261099a6004830161235e565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b03191660808201526109db600a83016122ba565b60a0820152600b82015460c0820152845201541615156020820152610a0083836122a6565b526122a6565b500161072b565b602090604051610a1c816111b8565b604051610a28816111d3565b610a3061227f565b8152610a3a61227f565b84820152600060408201526000606082015260006080820152606060a0820152600060c08201528152600083820152828289010152016106e7565b6003610a819201611d98565b61062e565b634e487b7160e01b600052601260045260246000fd5b610ab991503d806000833e610ab181836111ee565b8101906117da565b81610589565b6040516360ec4e6b60e11b8152600490fd5b60003660031901126102935734156102ff57610aec3361248b565b90156104aa57610afd3482546111ab565b9055005b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc57610b553361248b565b90156104aa578054848110610b805761040a600461042b93610b78888795611272565b815501611310565b6040516379b33e7960e01b8152600490fd5b3461029357600036600319011261029357610bac3361248b565b90156104aa576002810154610ccf578054601c546001600160401b03600019818360881c160190811161038a5767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601c55610c3591610c1090600401611310565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610ca0575b50610c9e92600091825252610c986005604060002060008155600060018201556000600282015560006003820155600060048201550161152b565b336115cd565b005b90508281813d8311610cc8575b610cb781836111ee565b810103126102935751610c9e610c5d565b503d610cad565b604051637c67c70160e11b8152600490fd5b600319604036820112610293576004356001600160401b03918282116102935760408183600401933603011261029357602435928311610293576040908336030112610293573415610abf57610d3f610d3a3683611620565b612523565b50156104aa57610d54602061040a3684611620565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610e89575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa90811561029f57600091610e5a575b50516002811015610e4457610e3257610de69160009160405193849283926379185f5960e11b845234916004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4801561029f57610c9e91600091610e17575b50611b5a565b610e2c91503d806000833e610ab181836111ee565b82610e11565b6040516340772cb360e11b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b610e7c915060403d604011610e82575b610e7481836111ee565b8101906116c3565b83610dad565b503d610e6a565b90506020813d8211610ebf575b81610ea3602093836111ee565b81010312610293576040610eb86004926113b2565b9150610d7c565b3d9150610e96565b346102935760031990606036830112610293576004356001600160401b03928382116102935760408183600401933603011261029357602480359185831161029357604090833603011261029357604435947f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009594600186541461119c575060018555610f7a610f563686611620565b60405190632cff562160e11b82528180602094859384600484015288830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091611167575b506040516380875df760e01b815260408160048160018060a01b038096165afa90811561029f57600091611148575b508051600281101561113357600103610e32578051600281101561113357600114611071575b50505050509060009161102460405195869384936379185f5960e11b85526004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af491821561029f576000926104699184916110575750611b5a565b61106b91503d8086833e610ab181836111ee565b84610e11565b8201511691604051828101916323b872dd60e01b835233868301523060448301528960648301526064825260a08201908282109082111761111e57604052516110cc91600091829182875af16110c561159d565b9084612635565b80519182151592836110fd575b5050506110e857808080610ff7565b60405190635274afe760e01b82526004820152fd5b829350918192810103126102935761111591016117cd565b158780806110d9565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b611161915060403d604011610e8257610e7481836111ee565b89610fd1565b90508181813d8311611195575b61117e81836111ee565b810103126102935761118f906113b2565b88610fa2565b503d611174565b6329f745a760e01b8152600490fd5b9190820180921161038a57565b604081019081106001600160401b0382111761025457604052565b60e081019081106001600160401b0382111761025457604052565b90601f801991011681019081106001600160401b0382111761025457604052565b6001600160401b03811161025457601f01601f191660200190565b60005b83811061123d5750506000910152565b818101518382015260200161122d565b906020916112668151809281855285808601910161122a565b601f01601f1916010190565b9190820391821161038a57565b6040519061128c826111b8565b816001600160401b036019541681526040518091601a54808352836020809401601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9260005b868282106112f1575050506112ed925003846111ee565b0152565b85546001600160a01b03168452600195860195899550930192016112d6565b9060405161131d816111b8565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061136857505050506112ed925003846111ee565b83546001600160a01b0316855289955090930192918101918101611350565b51906001600160401b038216820361029357565b6001600160401b0381116102545760051b60200190565b51906001600160a01b038216820361029357565b919060408382031261029357604051926113df846111b8565b836113e982611387565b815260209182810151906001600160401b03821161029357019280601f850112156102935783516114198161139b565b9461142760405196876111ee565b818652848087019260051b8201019283116102935784809101915b83831061145157505050500152565b819061145c846113b2565b8152019101908490611442565b906020828203126102935781516001600160401b0381116102935761148e92016113c6565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106114cf575050505090565b83516001600160a01b0316855293810193928101926001016114c1565b90611504602091949394604084526040840190611491565b6001600160a01b03909416910152565b81811061151f575050565b60008155600101611514565b8054600082558061153a575050565b61154f91600052602060002090810190611514565b565b90600160401b81116102545781549080835581811061156f57505050565b61154f9260005260206000209182019101611514565b9060016001600160401b038093160191821161038a57565b3d156115c8573d906115ae8261120f565b916115bc60405193846111ee565b82523d6000602084013e565b606090565b814710610661576000918291829182916001600160a01b03165af16115f061159d565b501561064f57565b35906001600160401b038216820361029357565b35906001600160a01b038216820361029357565b91906040838203126102935760405192611639846111b8565b83611643826115f8565b815260209182810135906001600160401b03821161029357019280601f850112156102935783356116738161139b565b9461168160405196876111ee565b818652848087019260051b8201019283116102935784809101915b8383106116ab57505050500152565b81906116b68461160c565b815201910190849061169c565b9081604091031261029357604051906116db826111b8565b805160028110156102935782526116f4906020016113b2565b602082015290565b81601f820112156102935780516117128161120f565b9261172060405194856111ee565b818452602082840101116102935761148e916020808501910161122a565b91906040838203126102935760405192611757846111b8565b838151916001600160401b039283811161029357846117779183016113c6565b82526020810151908382116102935701604081850312610293576040519361179e856111b8565b815160ff811681036102935785526020820151938411610293576020936117c592016116fc565b828401520152565b5190811515820361029357565b906020828203126102935781516001600160401b03928382116102935701916040838303126102935760405192611810846111b8565b80518281116102935781019260e0848203126102935760405190611833826111d3565b8451848111610293578161184891870161173e565b82526020850151848111610293578161186291870161173e565b60208301526040850151604083015261187d60608601611387565b606083015260808501516001600160e01b03198116810361029357608083015260a085015193841161029357846118bd60c0926020966116f498016116fc565b60a0840152015160c08201528452016117cd565b803560ff81168091036102935782526020810135601e1982360301811215610293570190602082359201916001600160401b038111610293578036038313610293578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b929094939460a0845260e08401926001600160401b03938461195d846115f8565b1660a087015260209283810135601e19823603018112156102935701908382359201958211610293578160051b36038613610293578190604060c0890152526101008601949060005b8181106119e1575050506001600160a01b031690840152828203604084015260009260809290916119d791906118d1565b9460608201520152565b9091958480600192838060a01b036119f88b61160c565b1681520197019291016119a6565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611a65575050505090565b83546001600160a01b031685529384019360019384019390910190611a57565b6040602061148e9381611a9f855185845285840190611491565b940151908281860391015260ff8151168452015191816020820152019061124d565b906020808351936040845260c0611b47611ae8875160e06040890152610120880190611a85565b611b038589015191603f1992838a83030160608b0152611a85565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015261124d565b9501516101008501520151151591015290565b611bb760209182815101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604091611b9f83519263089032d560e01b84528460048501526044840190611491565b60031983820301602484015282806000978893611a06565b0381845af4918215611d38578592611d1c575b50611bd482612523565b9015611d0b57918691836003611c4896950180546001600160401b03611c028183168060608d510152611585565b16906001600160401b031916179055611c256002868951015192019182546111ab565b9055835180809681946304e384ff60e21b83528660048401526024830190611491565b03915af4918215611d01578492611c9f575b507f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969350611c9a905192839286845260018060a01b031695830190611ac1565b0390a2565b915091928482813d8311611cfa575b611cb881836111ee565b81010312611cf7575090611c9a611cf07f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709694936113b2565b9190611c5a565b80fd5b503d611cae565b81513d86823e3d90fd5b8351630e991abd60e41b8152600490fd5b611d319192503d8087833e6102f081836111ee565b9038611bca565b83513d87823e3d90fd5b805482101561023e57600052600d602060002091020190600090565b90600182811c92168015611d8e575b6020831014611d7857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d6d565b8054600160401b81101561025457611db7906001928382018155611d42565b91909161224f578251918251928351926001600160401b03808551166001600160401b0319908186541617855582850192602080970151805190848211610254578890611e048388611551565b01600095865288862083875b848110612234575050505050866002870198015160ff8151169860ff19998a8254161790556003928884890192015191825186811161214e5780611e548354611d5e565b94898d601f9788808211612207575b505050508c9086831160011461219c578a92612191575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a019101519081519187831161217d578b90611ec38484611551565b019088528a882085895b84811061216257505050505088600689019101519060ff8251168b825416179055886007890191015180519086821161214e578190611f0c8454611d5e565b8c868211612121575b50508b908583116001146120c25789926120b7575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a08701519081519586116120a357611f9c8754611d5e565b8a84821161206c575b505089928611600114611ffd57938560ff9a999794819460c09894600c9b9895611ff2575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611fca565b9294939190601f1985168785528a8520945b818110612057575092859260ff9b9a989592600c9a9760c099961061203d575b50505050811b019055611fda565b01519060f884600019921b161c191690553880808061202f565b82840151865594870194928b01928b0161200f565b612093918984528582852091818b0160051c8301938b1061209a575b0160051c0190611514565b388a611fa5565b92508192612088565b634e487b7160e01b81526041600452602490fd5b015190503880611f2a565b848a528c8a208794509190601f1984168b8f5b82821061210a57505084116120f2575b505050811b019055611f3c565b015160001983891b60f8161c191690553880806120e5565b8385015186558a979095019493840193018f6120d5565b61214791868c5287828d209181870160051c830193871061209a570160051c0190611514565b388c611f15565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611ecd565b634e487b7160e01b89526041600452602489fd5b015190503880611e7a565b879350908d91601f198416868d52838d20938d905b8282106121e657505084116121ce575b505050811b019055611e8c565b0151600019838a1b60f8161c191690553880806121c1565b91929395968291958786015181550195019301908f918a96959493926121b1565b82848961222b9652209181870160051c830193871061209a570160051c0190611514565b898d3888611e63565b83516001600160a01b031683820155928b0192859101611e10565b634e487b7160e01b600052600060045260246000fd5b60405190612272826111b8565b6060602083600081520152565b6040519061228c826111b8565b81612295612265565b815260206122a1612265565b910152565b805182101561023e5760209160051b010190565b90604051918260008254926122ce84611d5e565b90818452600194858116908160001461233b57506001146122f8575b505061154f925003836111ee565b9093915060005260209081600020936000915b81831061232357505061154f935082010138806122ea565b8554888401850152948501948794509183019161230b565b91505061154f94506020925060ff191682840152151560051b82010138806122ea565b906040519161236c836111b8565b60208361237883611310565b81526117c560036040519461238c866111b8565b60ff6002820154168652016122ba565b6123a68154611d5e565b90816123b0575050565b81601f600093116001146123c2575055565b9080839182526123e1601f60208420940160051c840160018501611514565b5555565b600361154f91600081556123fb6001820161152b565b600060028201550161239c565b601a811461248857601a54906001600160401b0382116102545761242c8282611551565b6000908152602081207f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e80545b848410612467575050505050565b600191820180546001600160a01b0390921684860155939091019290612459565b50565b6001600160a01b038116156125115760006124c3916124a861127f565b60405163aa5106cb60e01b81529384928392600484016114ec565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561029f576124f4916000916124f8575b50612523565b9091565b61250b913d8091833e6102f081836111ee565b386124ee565b6040516370e4510960e01b8152600490fd5b61256173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611491565b0381865af490811561029f57600091612606575b50906125b891600052600081528060406000209361259560048601611310565b906040518080968194630c133d1360e31b83528660048401526024830190611491565b03915af490811561029f576000916125d2575b5090501591565b82813d83116125ff575b6125e681836111ee565b81010312611cf757506125f8906117cd565b80386125cb565b503d6125dc565b908282813d831161262e575b61261c81836111ee565b81010312611cf75750516125b8612575565b503d612612565b901561267357815115612646575090565b803b15612651575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561268357805190602001fd5b604051630a12f52160e11b8152600490fdfea2646970667358221220dd92a67b67699877016ad359a138b85ca6f355bae9c3a9f9e69e9c5d927b8a0264736f6c6343000813003360808060405234610016576123aa908161001c8239f35b600080fdfe608060408181526004908136101561001657600080fd5b600092833560e01c908163210b944e146101bc57506325bf0db61461003a57600080fd5b6020806003193601126101b857823560ff602b5460101c1615610140578085526003825282852090600b820154601b54811061013057341061012057906100a891600861008e610089846109e9565b610cbd565b920154908752600384526100a3858820610b55565b611bb5565b6100b4601b5434610590565b806100bd578480f35b804710610111578480808093335af1903d1561010b57843d916100df8361051b565b926100ec865194856104fa565b83523d92013e5b156100fe5780808480f35b51633204506f60e01b8152fd5b506100f3565b50505163356680b760e01b8152fd5b50505051631036b5ad60e31b8152fd5b84516334472ad760e11b81528690fd5b50826101b483805190610152826104df565b603682527f537570706f727420666f72206d756c74692d6c6576656c2063726f73732d6e6585830152751d081b595cdcd859d95cc81a5cc8191a5cd8589b195960521b818301525193849363015538b160e01b85528401526024830190610536565b0390fd5b8380fd5b91905060206003199381853601126103af5780356001600160401b039586821161048f5781830195858284360301126103bb5760ff602b5460081c16156104165750846102098780610576565b013561022260c061021a8980610576565b013534610590565b03610406576102848461027561025461024461023e8b80610576565b806105b3565b61024f3691806105b3565b6105f3565b885163c836244d60e01b81528781018a9052938492839260448401906106b2565b8683820301602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103fc5789916103cf575b50156103bf578451966102bd88610493565b86358181116103b35760e09084019283360301126103bb578551916102e1836104c4565b848101358281116103b7576102fb908636918401016107c1565b835260248101358281116103b757610318908636918401016107c1565b86840152604481013587840152610331606482016105c8565b606084015260848101356001600160e01b0319811681036103b757608084015260a48101359182116103b35761037060c492602496369184010161077a565b60a0840152013560c0820152865201359081151582036103af57846103a59261039e926103ac970152610cbd565b9280610576565b0135611bb5565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ef9150853d87116103f5575b6103e781836104fa565b81019061069a565b386102ab565b503d6103dd565b86513d8b823e3d90fd5b84516360ec4e6b60e11b81528390fd5b836101b4828861042689956104df565b603a82527f537570706f727420666f722067656e6572616c2d707572706f73652063726f73858301527f732d6e6574206d657373616765732069732064697361626c6564000000000000818301525193849363015538b160e01b85528401526024830190610536565b8780fd5b604081019081106001600160401b038211176104ae57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176104ae57604052565b606081019081106001600160401b038211176104ae57604052565b90601f801991011681019081106001600160401b038211176104ae57604052565b6001600160401b0381116104ae57601f01601f191660200190565b919082519283825260005b848110610562575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610541565b90359060de198136030182121561058b570190565b600080fd5b9190820391821161059d57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561058b570190565b35906001600160401b038216820361058b57565b6001600160401b0381116104ae5760051b60200190565b919060408382031261058b576040519261060c84610493565b83610616826105c8565b815260209182810135906001600160401b03821161058b57019280601f8501121561058b578335610646816105dc565b9461065460405196876104fa565b818652848087019260051b82010192831161058b578401905b82821061067b575050500152565b81356001600160a01b038116810361058b57815290840190840161066d565b9081602091031261058b5751801515810361058b5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106f0575050505090565b83516001600160a01b0316855293810193928101926001016106e2565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020612355833981519152916000905b82821061075a575050505090565b83546001600160a01b03168552938401936001938401939091019061074c565b81601f8201121561058b578035906107918261051b565b9261079f60405194856104fa565b8284526020838301011161058b57816000926020809301838601378301015290565b919060408382031261058b57604051926107da84610493565b838135916001600160401b039283811161058b57846107fa9183016105f3565b825260208101359083821161058b570160408185031261058b576040519361082185610493565b813560ff8116810361058b578552602082013593841161058b57602093610848920161077a565b828401520152565b9060405161085d81610493565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106108ac57505050506108a8925003846104fa565b0152565b83546001600160a01b0316855289955090930192918101918101610890565b90600182811c921680156108fb575b60208310146108e557565b634e487b7160e01b600052602260045260246000fd5b91607f16916108da565b9060405191826000825492610919846108cb565b9081845260019485811690816000146109885750600114610945575b5050610943925003836104fa565b565b9093915060005260209081600020936000915b81831061097057505061094393508201013880610935565b85548884018501529485019487945091830191610958565b91505061094394506020925060ff191682840152151560051b8201013880610935565b90604051916109b983610493565b6020836109c583610850565b81526108486003604051946109d986610493565b60ff600282015416865201610905565b906040516109f681610493565b602060ff600c8395604051610a0a816104c4565b610a13826109ab565b8152610a21600483016109ab565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a61600a8301610905565b60a0820152600b82015460c082015285520154161515910152565b818110610a87575050565b60008155600101610a7c565b90600160401b81116104ae57815490808355818110610ab157505050565b6109439260005260206000209182019101610a7c565b610ad181546108cb565b9081610adb575050565b81601f60009311600114610aed575055565b908083918252610b0c601f60208420940160051c840160018501610a7c565b5555565b600361094391600081556001810180546000825580610b39575b50506000600282015501610ac7565b610b4e91600052602060002090810190610a7c565b3880610b2a565b600c600091610b6381610b10565b610b6f60048201610b10565b826008820155826009820155610b87600a8201610ac7565b82600b8201550155565b60406020610bcd9381610bab8551858452858401906106b2565b940151908281860391015260ff81511684520151918160208201520190610536565b90565b51906001600160a01b038216820361058b57565b906020808383031261058b5782516001600160401b039384821161058b57019260408484031261058b5760405193610c1b85610493565b8051828116810361058b5785528281015191821161058b57019180601f8401121561058b578251610c4b816105dc565b93610c5960405195866104fa565b818552838086019260051b82010192831161058b5783809101915b838310610c85575050505082015290565b8190610c9084610bd0565b8152019101908390610c74565b60021115610ca757565b634e487b7160e01b600052602160045260246000fd5b60208151015151604051630c133d1360e31b81526020600482015260208180610ce960248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b96575b50611b845760405163c836244d60e01b81526040600482015260208180610d4f610d3e60448301876106b2565b82810360031901602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b65575b50611b53578151610e346020825151926040518093819263f47ad7eb60e01b83526040600484015260c0610e1a610dd3610dbe845160e06044890152610124880190610b91565b84890151878203604319016064890152610b91565b6040840151608487015260608401516001600160401b031660a487015260808401516001600160e01b03191660c487015260a08401518682036043190160e4880152610536565b91015161010484015282810360031901602484015261070d565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156117a157600091611b14575b509060405192631ccc893360e11b84526040600485015260008480610e99610e8760448301866106b2565b828103600319016024840152866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610eee96600091611afb575b50604051968792839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156117a157600094611ada575b50600090610f2384610c9d565b6001840361199c5750506040516308c7427760e11b8152602060048201529060008280610f5360248201856106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610fa894600091611983575b50604051948592839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156117a157600092611962575b50816118c7575b505b61185b57610fe681610c9d565b15908115611853575b506114b057601e54801561149a57806001600160401b034316046001810180911161059d5781810291818304149015171561059d57601c5468ffffffffffffffff0061104d6001600160401b038360081c1680606087510152611c27565b60081b169068ffffffffffffffff00191617601c55806000526009602052604060002090600282018054156000146110cf579260038361109b9360409660198597036110a3575b5501611d0a565b510151151590565b6001600160401b03601954166001600160401b03198454161783556110ca6001840161222c565b611094565b50506003810154601f546001600160401b031603611485576003810154906110f6826105dc565b9161110460405193846104fa565b808352601f19611113826105dc565b0160005b81811061141d575050604051928360608101106001600160401b036060860111176104ae579084916060850160405261115260608601610493565b6001600160401b03601954166060860152604051806020601a54918281520190601a6000526000805160206123558339815191529060005b8181106113fb57505050816111a09103826104fa565b6080860152606085018552436020860152604085015260005b8181106113bc5750604051602081526111de85516060602084015260808301906106b2565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611387575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a2600060038401558061133c575b5060036112649201611d0a565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b0383116104ae576020906112bb8484610a93565b0190600052602060002060005b83811061131f575050506020820151600284015550604081015151916003019060005b8381106112fe575050505060409061109b565b806113196113126001936040860151612218565b5185611d0a565b016112eb565b82516001600160a01b0316818301556020909201916001016112c8565b600d9150818102908282040361059d57908491600384016000526020600020908101905b81811061136e575050611257565b82935061137d81939293610b55565b0190859291611360565b91939697509193946020806113a8600193601f198682030187528a51611c3f565b98019301930190928a979695949293611216565b60019192506113f1816113d28160038801611cd8565b506113e16040890151916109e9565b6113eb8383612218565b52612218565b50019084916111b9565b82546001600160a01b031684528a97506020909301926001928301920161118a565b60209060405161142c81610493565b604051611438816104c4565b6114406121f1565b815261144a6121f1565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611117565b9061149581600360409401611d0a565b61109b565b634e487b7160e01b600052601260045260246000fd5b601c546001600160401b038160481c166001600160401b03811461059d57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601c556115206020825101515160405191829163089032d560e01b83526040600484015260448301906106b2565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a6000526000805160206123558339815191529060005b818110611831575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611810575b506040516390ba52cf60e01b815260206004820181905281806115c560248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117de575b50600052600060205260406000209061162e602061160d60048501610850565b60405180938192630c133d1360e31b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117bf575b506117ad576003820180546001600160401b0361167b81831680606089510152611c27565b16906001600160401b0319161790556002604084510151920190815492830180931161059d576116ca9260209255604051809381926304e384ff60e21b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a15760009161173f575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161173791830190611c3f565b0390a2600090565b906020823d602011611799575b81611759602093836104fa565b81010312611796575061173761178f7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bd0565b91506116f2565b80fd5b3d915061174c565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b6117d8915060203d6020116103f5576103e781836104fa565b38611656565b906020823d602011611808575b816117f8602093836104fa565b81010312611796575051386115ed565b3d91506117eb565b61182b913d8091833e61182381836104fa565b810190610be4565b3861159f565b82546001600160a01b0316845285945060209093019260019283019201611568565b905038610fef565b60405163015538b160e01b815260206004820152603860248201527f70726f7061676174696f6e206e6f742073757070706f7274656420666f72207360448201527f75626e657473207769746820455243323020737570706c7900000000000000006064820152608490fd5b6118f0915060209060405180938192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157600090611927575b611921915061229d565b38610fd7565b6020823d60201161195a575b81611940602093836104fa565b81010312611796575061195561192191610bd0565b611917565b3d9150611933565b61197c91925060203d6020116103f5576103e781836104fa565b9038610fd0565b611996913d8091833e61182381836104fa565b38610f84565b9091506119a883610c9d565b8183156119b7575b5050610fd9565b610d3e6119e192604051938492839263089032d560e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611acf578291602091611a329491611ab5575b5060405180948192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611aa9578091611a6b575b50611a64915061229d565b38816119b0565b90506020823d602011611aa1575b81611a86602093836104fa565b810103126117965750611a9b611a6491610bd0565b38611a59565b3d9150611a79565b604051903d90823e3d90fd5b611ac991503d8085833e61182381836104fa565b38611a10565b6040513d84823e3d90fd5b611af491945060203d6020116103f5576103e781836104fa565b9238610f16565b611b0e913d8091833e61182381836104fa565b38610eca565b6020813d602011611b4b575b81611b2d602093836104fa565b81010312611b475751906002821015611796575038610e5c565b5080fd5b3d9150611b20565b604051632f3335ff60e21b8152600490fd5b611b7e915060203d6020116103f5576103e781836104fa565b38610d77565b60405163c5f563eb60e01b8152600490fd5b611baf915060203d6020116103f5576103e781836104fa565b38610d11565b90611bbd5750565b804710611c155760008080809360635af13d15611c10573d611bde8161051b565b90611bec60405192836104fa565b8152600060203d92013e5b15611bfe57565b604051633204506f60e01b8152600490fd5b611bf7565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161059d57565b906020808351936040845260c0611cc5611c66875160e06040890152610120880190610b91565b611c818589015191603f1992838a83030160608b0152610b91565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610536565b9501516101008501520151151591015290565b8054821015611cf457600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b8110156104ae57611d29906001928382018155611cd8565b9190916121c1578251918251928351926001600160401b03808551166001600160401b03199081865416178555828501926020809701518051908482116104ae578890611d768388610a93565b01600095865288862083875b8481106121a6575050505050866002870198015160ff8151169860ff19998a825416179055600392888489019201519182518681116120c05780611dc683546108cb565b94898d601f9788808211612179575b505050508c9086831160011461210e578a92612103575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a01910151908151918783116120ef578b90611e358484610a93565b019088528a882085895b8481106120d457505050505088600689019101519060ff8251168b82541617905588600789019101518051908682116120c0578190611e7e84546108cb565b8c868211612093575b50508b90858311600114612034578992612029575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a087015190815195861161201557611f0e87546108cb565b8a848211611fde575b505089928611600114611f6f57938560ff9a999794819460c09894600c9b9895611f64575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611f3c565b9294939190601f1985168785528a8520945b818110611fc9575092859260ff9b9a989592600c9a9760c0999610611faf575b50505050811b019055611f4c565b01519060f884600019921b161c1916905538808080611fa1565b82840151865594870194928b01928b01611f81565b612005918984528582852091818b0160051c8301938b1061200c575b0160051c0190610a7c565b388a611f17565b92508192611ffa565b634e487b7160e01b81526041600452602490fd5b015190503880611e9c565b848a528c8a208794509190601f1984168b8f5b82821061207c5750508411612064575b505050811b019055611eae565b015160001983891b60f8161c19169055388080612057565b8385015186558a979095019493840193018f612047565b6120b991868c5287828d209181870160051c830193871061200c570160051c0190610a7c565b388c611e87565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611e3f565b634e487b7160e01b89526041600452602489fd5b015190503880611dec565b879350908d91601f198416868d52838d20938d905b8282106121585750508411612140575b505050811b019055611dfe565b0151600019838a1b60f8161c19169055388080612133565b91929395968291958786015181550195019301908f918a9695949392612123565b82848961219d9652209181870160051c830193871061200c570160051c0190610a7c565b898d3888611dd5565b83516001600160a01b031683820155928b0192859101611d82565b634e487b7160e01b600052600060045260246000fd5b604051906121e482610493565b6060602083600081520152565b604051906121fe82610493565b816122076121d7565b815260206122136121d7565b910152565b8051821015611cf45760209160051b010190565b601a811461229a57601a54906001600160401b0382116104ae576122508282610a93565b60009081526020812060008051602061235583398151915280545b848410612279575050505050565b600191820180546001600160a01b039092168486015593909101929061226b565b50565b604080516380875df760e01b815290918290829060049082906001600160a01b03165afa91821561234a576000926122ec575b5050600190516122df81610c9d565b6122e881610c9d565b1490565b8082813d8311612343575b61230181836104fa565b8101031261233f57519161231483610493565b8151906002821015611796575060208392612333926001955201610bd0565b602082015290386122d0565b8280fd5b503d6122f7565b513d6000823e3d90fdfe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220d8540252cab147fdb631bf9262837b6746ad5c2b287d013c80030ea982af557e64736f6c634300081300336080806040523461001657612a56908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630bed761514610b845780630db0f77c1461070357806332e7661f1461027b5763bacc656d1461004857600080fd5b346102765760208060031936011261027657600435906100666126bd565b6012545b8281106101b157506012548083111561019f575b82811061008c576012839055005b80600052601382526040600020906000825560006004600193828582015582600282015582600382015501556016835260406000208054906000815581610179575b505080600052604060002060405180828682945493848152019060005286600020926000905b8789828410610160575050505061010d9250038261104c565b8051908360005b83811061012557505050500161007e565b600085815260178852604090206001600160a01b036101448386611899565b51166000528752610158604060002061182d565b018490610114565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b82811061019357506100ce565b60008155018390610186565b604051636819a3a960e01b8152600490fd5b806000526009908183526040600020916000835560036001936101d5858201611799565b60006002820155019081549060008355816101f4575b5050500161006a565b600d9282840292848404036102605760005285600020918201915b82811061021c57506101eb565b806102278592611876565b61023360048201611876565b6000600882015560008382015561024c600a820161182d565b6000600b8201556000600c8201550161020f565b634e487b7160e01b600052601160045260246000fd5b600080fd5b346102765760031960603682011261027657600435906001600160401b038211610276576060908236030112610276576102b36126bd565b6102c86102c33683600401611445565b612679565b601e5480156106ed57602482013506158015906106df575b6106cd57602481013560005260096020526002604060002001546106bb576040516020808201526103286103176004840180611617565b6060604084015260a083019061165f565b6024830135606083015281610343604485018560040161162b565b603f93919319838303016080840152808252602082019060208160051b84010192856000915b8383106105b4578987610385818903601f19810183528261104c565b6020815191012060ff601c5416916012546024820135106105a2576044359283156105905780840293840403610260576103c2602482013561285c565b1561057e5760405160a08101908082106001600160401b0383111761054b5761045f9361045592604052815260046020820160243581526064604084019704875260608301600081526080840191600083526024870135600052601360205260406000209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611445565b6020810190815160005260096020526040600020908051926001600160401b038451166001600160401b03198454161783556020858401940151938451946001600160401b03861161054b576020906104b887846117bf565b019060005260206000208660005b8781106105615750835160028701556040850180515190600388019060005b8381106104ee57005b6104f9818351611899565b51908354600160401b81101561054b5786810180865581101561053557869261052f9186600052600d60206000209102016118ad565b016104e5565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b83516001600160a01b0316818401556020909301928891016104c6565b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b919395509193601f198282030186526105cd8784611617565b90813560de19833603018112156102765782602092836106a48160019781960194604085526106316106146106028880611617565b60e06040890152610120880190611721565b61062084890189611617565b878203603f19016060890152611721565b604087013560808701526001600160401b0361064f606089016110fb565b1660a08701526106956001600160e01b031961066d60808a016112cf565b169160c0928389015261068360a08a018a6116cf565b898303603f190160e08b015290611700565b960135610100860152016112e4565b151591015298019601930190918795969492610369565b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060248101354311156102e0565b634e487b7160e01b600052601260045260246000fd5b34610276576080366003190112610276576024356001600160401b03811161027657366023820112156102765780600401359061073f8261106d565b9161074d604051938461104c565b8083526024602084019160051b8301019136831161027657602401905b828210610b7457836064356001600160401b0381116102765761079190369060040161109f565b601254600435106105a257600435600052600960205260026040600020015415610b625760043560005260136020526040600020916107d1828454612759565b506004819492941015610b4c57610b3a5760043560009081526016602090815260408083206001600160a01b0387168452600101909152902054610b2857604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b0382118383101761054b57608090826040528351902092019182526020815261086381611031565b51902093600181015494936000945b84518610156108bf576108858686611899565b5190818110156108ae5760005260205260406000205b9460001981146102605760010194610872565b90600052602052604060002061089b565b8603610b065760043560005260166020526108e660018060a01b03821660406000206128d9565b15610af457600435600052601760205260406000209060018060a01b0316600052602052604060002082516001600160401b03811161054b5761092982546117f3565b601f8111610ab7575b506020601f8211600114610a515781929394600092610a46575b50508160011b916000199060031b1c19161790555b600381016109726044358254611525565b808255600283015481101561098357005b600483018054909160ff8216610a04575060ff191660011790556109a8600435612936565b156109f2577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494916109ec60ff60115416915492546040519384936004359085612734565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc916109ec60ff601154169154926040519384936004359085612734565b01519050848061094c565b601f198216908360005260206000209160005b818110610a9f57509583600195969710610a86575b505050811b019055610961565b015160001960f88460031b161c19169055848080610a79565b9192602060018192868b015181550194019201610a64565b610ae490836000526020600020601f840160051c81019160208510610aea575b601f0160051c0190611782565b84610932565b9091508190610ad7565b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b60405163a88f96f160e01b8152600490fd5b813581526020918201910161076a565b34610276576003196020368201811361027657600435916001600160401b03908184116102765760608460040191853603011261027657610bce36610bc983806110e6565b611123565b9073__$a0fe38a9a81205afccc10810b09a4d3f45$__60405190632cff562160e11b8252856004830152858280610c0a602497888301906111da565b0381845af4918215610fad57600092610ffa575b506001600160a01b03913390831603610fe557610c3e6102c33685611445565b3315610fd35760405191610c5183611031565b85601954168352604051809188601a54928381520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8b838310610fb95750505050509181610cb3610cda9593600095038261104c565b88830152604051808095819463aa5106cb60e01b83526040600484015260448301906111da565b338983015203915af48015610fad57600090610ee2575b610cfb9150611d63565b919015610ed1576000956044019086610d1483836114c1565b600091505b808210610e80575050610d2c9088611525565b60028401805491808310610e6e578203918211610e5957610d6a9360049593610d6293610d5993556114c1565b94909201611532565b9236916112f1565b9081519160005b838110610e3c575050505060ff602b54841c16610d8a57005b6040519083820192632643057b60e11b84524382840152856044840152600060648401526064835260a083019083821090821117610e275780604052854710610e155750506109f09360009283925191335af13d15610e0c573d610ded81611084565b90610dfb604051928361104c565b8152600081933d92013e5b336115b7565b60609150610e06565b63cd78605960e01b81523060a4840152fd5b50634e487b7160e01b60009081526041600452fd5b80610e53610e4c60019385611899565b5185612001565b01610d71565b85634e487b7160e01b60005260116004526000fd5b604051631d36ca1560e21b8152600490fd5b9098610ec960019160c0610eb6610eb0610ebe8f986040610eb6610eb08c8f8f90610eaa916114c1565b906114f6565b80611510565b013590611525565b97610eaa8b8b6114c1565b990190610d19565b6040516208ed5b60e31b8152600490fd5b503d806000833e610ef3818361104c565b8101908581830312610276578051908582116102765701906040828203126102765760405191610f2283611031565b80518681168103610276578352868101519086821161027657019080601f83011215610276578151610f538161106d565b92610f61604051948561104c565b818452888085019260051b8201019283116102765788809101915b838310610f955750905083610cfb949392500152610cf1565b8190610fa0846111c6565b8152019101908890610f7c565b6040513d6000823e3d90fd5b845482168652909401936001938401939190910190610c92565b6040516370e4510960e01b8152600490fd5b60405160016201ad9360e61b03198152600490fd5b9091508581813d831161102a575b611012818361104c565b8101031261027657611023906111c6565b9087610c1e565b503d611008565b604081019081106001600160401b0382111761054b57604052565b90601f801991011681019081106001600160401b0382111761054b57604052565b6001600160401b03811161054b5760051b60200190565b6001600160401b03811161054b57601f01601f191660200190565b81601f82011215610276578035906110b682611084565b926110c4604051948561104c565b8284526020838301011161027657816000926020809301838601378301015290565b903590603e1981360301821215610276570190565b35906001600160401b038216820361027657565b35906001600160a01b038216820361027657565b9190604083820312610276576040519261113c84611031565b83611146826110fb565b815260209182810135906001600160401b03821161027657019280601f850112156102765783356111768161106d565b94611184604051968761104c565b818652848087019260051b8201019283116102765784809101915b8383106111ae57505050500152565b81906111b98461110f565b815201910190849061119f565b51906001600160a01b038216820361027657565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611218575050505090565b83516001600160a01b03168552938101939281019260010161120a565b359060ff8216820361027657565b9190604083820312610276576040519261125c84611031565b838135916001600160401b0392838111610276578461127c918301611123565b8252602081013590838211610276570160408185031261027657604051936112a385611031565b6112ac82611235565b85526020820135938411610276576020936112c7920161109f565b828401520152565b35906001600160e01b03198216820361027657565b3590811515820361027657565b9291926112fd8261106d565b9160409061130d8251948561104c565b839581855260208095019160051b8401938185116102765780925b8584106113385750505050505050565b6001600160401b0390843582811161027657830190868286031261027657865161136181611031565b82358481116102765783019260e094858589031261027657895195860186811082821117611430578a52843581811161027657886113a0918701611243565b86528b85013581811161027657886113b9918701611243565b8c870152898501358a87015260606113d28187016110fb565b9087015260806113e38187016112cf565b9087015260a09182860135918211610276578c96866114219461140b8c8b9a968b970161109f565b9083015260c080910135908201528452016112e4565b83820152815201930192611328565b60246000634e487b7160e01b81526041600452fd5b919060608382031261027657604051906001600160401b03606083018181118482101761054b57604052829480358281116102765783611486918301611123565b8452602081013560208501526040810135918211610276570181601f82011215610276576040918160206114bc933591016112f1565b910152565b903590601e198136030182121561027657018035906001600160401b03821161027657602001918160051b3603831361027657565b908210156105355761150d9160051b8101906110e6565b90565b90359060de1981360301821215610276570190565b9190820180921161026057565b9060405161153f81611031565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061158e575050505061158a9250038461104c565b0152565b83546001600160a01b0316855289955090930192918101918101611572565b60021115610b4c57565b90156115f5578151156115c8575090565b803b156115d3575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561160557805190602001fd5b604051630a12f52160e11b8152600490fd5b9035603e1982360301811215610276570190565b9035601e19823603018112156102765701602081359101916001600160401b038211610276578160051b3603831361027657565b60408201916001600160401b03611675836110fb565b16815260606116896020938481019061162b565b839195604086839601525201929160005b8281106116a8575050505090565b909192938280600192838060a01b036116c08961110f565b1681520195019392910161169a565b9035601e19823603018112156102765701602081359101916001600160401b03821161027657813603831361027657565b908060209392818452848401376000828201840152601f01601f1916010190565b604061177261150d9361175161174661173a8680611617565b8584528584019061165f565b946020810190611617565b90602081860391015260ff61176582611235565b16845260208101906116cf565b9190928160208201520191611700565b81811061178d575050565b60008155600101611782565b805460008255806117a8575050565b6117bd91600052602060002090810190611782565b565b90600160401b811161054b578154908083558181106117dd57505050565b6117bd9260005260206000209182019101611782565b90600182811c92168015611823575b602083101461180d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611802565b61183781546117f3565b9081611841575050565b81601f60009311600114611853575055565b908083918252611872601f60208420940160051c840160018501611782565b5555565b60036117bd916000815561188c60018201611799565b600060028201550161182d565b80518210156105355760209160051b010190565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161054b5789906118f683896117bf565b01600096875289872084885b848110611d305750505050508760028a019101519060ff82511660ff1982541617905560039288848b01920151918251868111611c4a578061194483546117f3565b94898d601f9788808211611d03575b505050508c90868311600114611c98578a92611c8d575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311611c79578b906119b384846117bf565b019088528a882085895b848110611c5e5750505050508860068b019101519060ff82511660ff198254161790558860078b01910151805190868211611c4a5781906119fe84546117f3565b8c868211611c1d575b50508b90858311600114611bbe578992611bb3575b505060001982871b1c191690841b1790555b604086015160088a015560098901846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a89019460a0870151908151958611611b9f57611a8e87546117f3565b8a848211611b68575b505089928611600114611af7579385600c999794819460c098946117bd9e9d9b9895611aec575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b015193503880611abe565b9294939190601f1985168785528a8520945b818110611b535750928592600c9a9895926117bd9d9c9a9760c0999610611b39575b50505050811b019055611ace565b01519060f884600019921b161c1916905538808080611b2b565b82840151865594870194928b01928b01611b09565b611b8f918984528582852091818b0160051c8301938b10611b96575b0160051c0190611782565b388a611a97565b92508192611b84565b634e487b7160e01b81526041600452602490fd5b015190503880611a1c565b848a528c8a208794509190601f1984168b8f5b828210611c065750508411611bee575b505050811b019055611a2e565b015160001983891b60f8161c19169055388080611be1565b8385015186558a979095019493840193018f611bd1565b611c4391868c5287828d209181870160051c8301938710611b96570160051c0190611782565b388c611a07565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119bd565b634e487b7160e01b89526041600452602489fd5b01519050388061196a565b879350908d91601f198416868d52838d20938d905b828210611ce25750508411611cca575b505050811b01905561197c565b0151600019838a1b60f8161c19169055388080611cbd565b91929395968291958786015181550195019301908f918a9695949392611cad565b828489611d279652209181870160051c8301938710611b96570160051c0190611782565b898d3888611953565b83516001600160a01b031683820155928c0192869101611902565b90816020910312610276575180151581036102765790565b611da173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859384600484015260248301906111da565b0381865af4908115610fad57600091611e3c575b5060005260008152611df681604060002093611dd360048601611532565b906040518080958194630c133d1360e31b835286600484015260248301906111da565b03915af4918215610fad57600092611e0f575b50501591565b611e2e9250803d10611e35575b611e26818361104c565b810190611d4b565b3880611e09565b503d611e1c565b908282813d8311611e65575b611e52818361104c565b81010312611e6257505138611db5565b80fd5b503d611e48565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611ecb575050505090565b83546001600160a01b031685529384019360019384019390910190611ebd565b60005b838110611efe5750506000910152565b8181015183820152602001611eee565b90602091611f2781518092818552858086019101611eeb565b601f01601f1916010190565b6040602061150d9381611f4d8551858452858401906111da565b940151908281860391015260ff81511684520151918160208201520190611f0e565b9060c080611fe0611f9e611f8c865160e0875260e0870190611f33565b60208701518682036020880152611f33565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152611f0e565b93015191015290565b9060016001600160401b038093160191821161026057565b90602080825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__6040948551630c133d1360e31b8152848180612046600497848984015260248301906111da565b0381865af49081156125e1576000916125c4575b506125b45783855101515161208487519163c836244d60e01b8352888684015260448301906111da565b9085818061209e6003199586838203016024840152611e6c565b0381875af49081156124be57600091612597575b50156124c9576120f88560008951906120ca82611031565b8082528282015292896121078a51928251958694859463f47ad7eb60e01b86528c8601526044850190611f6f565b90838203016024840152611e6c565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156124be57600091612488575b50612139816115ad565b600181036123d657505061214c90611d63565b90156123c6576003810180546001600160401b0380828a1c16906060895101511681036123b65786936121d095936121af9367ffffffffffffffff60401b6121948a95611fe9565b8d1b169067ffffffffffffffff60401b191617905501611532565b9087518080958194632cff562160e11b8352868984015260248301906111da565b03915af4908115612371578291869160009161237c575b5081516380875df760e01b815292839182906001600160a01b03165afa90811561237157600091612310575b50600091606091945b865195869384936373b464b760e01b85528401528561224683518a606487015260a4860190611f6f565b92015115156084840152805161225b816115ad565b60248401528501516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af480156123055761229957505050565b3d806000843e6122a9818461104c565b8201918181840312610276578051906001600160401b03821161027657019082601f83011215610276578151926122eb6122e285611084565b9551958661104c565b83855281848401011161027657806117bd94019101611eeb565b83513d6000823e3d90fd5b8581813d831161236a575b612325818361104c565b810103126123665785519161233983611031565b8151906002821015611e6257509161235a85600095936060958452016111c6565b85820152915091612213565b5080fd5b503d61231b565b85513d6000823e3d90fd5b925090508382813d81116123af575b612395818361104c565b81010312611e625750846123a983926111c6565b386121e7565b503d61238b565b885163a57cadff60e01b81528690fd5b8551630e991abd60e41b81528390fd5b6123e5919693508092506115ad565b156123f6575b60009160609161221c565b9250601c546001600160401b03808260481c1690606086510151168103612478579160609167ffffffffffffffff60481b612432600095611fe9565b60481b169067ffffffffffffffff60481b191617601c558284875161245681611031565b8281520152855161246681611031565b838152838582015294915091506123eb565b855163a57cadff60e01b81528390fd5b8681813d83116124b7575b61249d818361104c565b810103126123665751906002821015611e6257503861212f565b503d612493565b88513d6000823e3d90fd5b505050509160036117bd93825181810190828252612588818751878083015260c0612566612504835160e060808701526101608601906125ec565b61251f8985015191607f1992838883030160a08901526125ec565b848c01518685015260608501516001600160401b031660e087015260808501516001600160e01b03191661010087015260a085015186820390920161012087015290611f0e565b910151610140830152858901511515606083015203601f19810183528261104c565b519020600052526000206118ad565b6125ae9150863d8811611e3557611e26818361104c565b386120b2565b855163c5f563eb60e01b81528390fd5b6125db9150853d8711611e3557611e26818361104c565b3861205a565b87513d6000823e3d90fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061265c575050509360408381938161150d97980151908281860391015260ff81511684520151938201520190611f0e565b82516001600160a01b031688529685019691850191600101612628565b6040018051516001600160401b03601f5416106126ab5751511561269957565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610fad57600091612716575b501561270457565b60405163f0d97f3b60e01b8152600490fd5b61272e915060203d8111611e3557611e26818361104c565b386126fc565b909493926060926080830196612749816115ad565b8352602083015260408201520152565b815191906041830361278a5761278392506020820151906060604084015193015160001a90612795565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161281957926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561280d5780516001600160a01b0381161561280457918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156105355760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b6000818152601560205260408120546128d457601454600160401b8110156128c05790826128ac61289584600160409601601455612825565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461292f57805490600160401b82101561054b57600182018082558210156105355782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015612a1b5760001990808201818111612a0757601454908382019182116129f3578082036129bf575b50505060145480156129ab5781019061298a82612825565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6129dd6129ce61289593612825565b90549060031b1c928392612825565b9055845260156020526040842055388080612972565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220b48c09038cb95ca358f6b3b986231aac3e6aa9fe9a876f90865eb1782122308064736f6c634300081300336080806040523461001657611768908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806347dc9b4f14610b0557806353b4e7bf1461061d57806374303771146102545763ac8183791461004857600080fd5b3461024f5760208060031936011261024f576004359061006661136a565b600b545b8281106101f95750600b54808311156101e7575b82811061008c57600b839055005b80600052600c8252604060002090600082556000600460019382858201558260028201558260038201550155600f8352604060002080549060008155816101c1575b505080600052604060002060405180828682945493848152019060005286600020926000905b87898284106101a8575050505061010d92500382611139565b8051908360005b83811061012557505050500161007e565b600085815260108852604090206001600160a01b03610144838661150d565b51166000528752604060002061015a81546113e1565b908161016b575b5050018490610114565b600091601f808211600114610185575050555b3880610161565b916101a18492938284528c8420940160051c8401878501611353565b555561017e565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b8281106101db57506100ce565b600081550183906101ce565b604051636819a3a960e01b8152600490fd5b80600052600882526040600020906000825560006004600193848101805484825580610236575b505082600282015582600382015501550161006a565b61024891855287852090810190611353565b3880610220565b600080fd5b3461024f5760031960603682011261024f576004356001600160401b0380821161024f5760808236039384011261024f576044359161029161136a565b60248082013594601d5480156106085786066105f65785600052602094600886526002604060002001546105e45760405192868401928784528560040135906042190181121561024f5760806040860152610100850193818701886102f8600483016111a1565b1660c0880152838101356022198236030181121561024f570183600482013591019589821161024f578160051b3603871361024f578190604060e08a0152526101208701959060005b8b8282106105c057505050508960608701526044870135958660808201526103868160648a01978b6103728a6111a1565b1660a083015203601f198101835282611139565b51902060ff601c5416600b548b106105ae57841561059c5780850294850403610587576103b28a61156e565b15610575576040519060a082018281108a821117610560576040528152600489820191843583526064604082019604865260608101600081526080820193600085528d600052600c8d52604060002092518355519660019788840155516002830155516003820155019051151560ff8019835416911617905560405195608087018781108982111761054b5760405287821161024f57600461045792369201016111c9565b855261046f87860193898552604087019586526111a1565b9760608601988952600052600887526040600020945186815116976001600160401b031998898854161787558084880192015180519389851161053757600160401b851161053757508190835485855580861061051a575b500191600052806000209060005b848110610500578b8b8b60048c8c8c5160028301555160038201550192511690825416179055600080f35b83516001600160a01b0316838201559281019285016104d5565b610531908560005286846000209182019101611353565b8c6104c7565b634e487b7160e01b60009081526041600452fd5b83634e487b7160e01b60005260416004526000fd5b84634e487b7160e01b60005260416004526000fd5b604051630cbd1cd360e11b8152600490fd5b82634e487b7160e01b60005260116004526000fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b80600192939499838060a01b036105d68c6111b5565b168152019801929101610341565b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b82634e487b7160e01b60005260126004526000fd5b3461024f57608036600319011261024f576024356001600160401b03811161024f573660238201121561024f578060040135906106598261115a565b916106676040519384611139565b8083526024602084019160051b8301019136831161024f57602401905b828210610af557836064356001600160401b03811161024f573660238201121561024f5780600401356106b681611171565b916106c46040519384611139565b818352366024838301011161024f57816000926024602093018386013783010152600b54600435106105ae57600435600052600860205260026040600020015415610ae357600435600052600c602052604060002091610725828454611441565b506004819492941015610acd57610abb576004356000908152600f602090815260408083206001600160a01b0387168452600101909152902054610aa957604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b03821183831017610a5f5760809082604052835190209201918252602081526107b78161111e565b51902093600181015494936000945b8451861015610829576107d9868661150d565b5190818110156108185760005260205260406000205b94600019811461080257600101946107c6565b634e487b7160e01b600052601160045260246000fd5b9060005260205260406000206107ef565b8603610a8757600435600052600f60205261085060018060a01b03821660406000206115eb565b15610a7557600435600052601060205260406000209060018060a01b0316600052602052604060002082516001600160401b038111610a5f5761089382546113e1565b601f8111610a22575b506020601f82116001146109bc57819293946000926109b1575b50508160011b916000199060031b1c19161790555b60038101805460443581018091116108025780825560028301548110156108ee57005b600483018054909160ff821661096f575060ff19166001179055610913600435611648565b1561095d577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949161095760ff600a541691549254604051938493600435908561141b565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9161095760ff600a5416915492604051938493600435908561141b565b0151905084806108b6565b601f198216908360005260206000209160005b818110610a0a575095836001959697106109f1575b505050811b0190556108cb565b015160001960f88460031b161c191690558480806109e4565b9192602060018192868b0151815501940192016109cf565b610a4f90836000526020600020601f840160051c81019160208510610a55575b601f0160051c0190611353565b8461089c565b9091508190610a42565b634e487b7160e01b600052604160045260246000fd5b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b6040516358cdd2e760e01b8152600490fd5b8135815260209182019101610684565b3461024f57602036600319011261024f576004356001600160401b03811161024f576080600319823603011261024f57610b716020610b5036610b4b600486018061118c565b6111c9565b60405180938192632cff562160e11b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f10576000916110e4575b50336001600160a01b03909116036110d25733156110c057604051610bbd8161111e565b6001600160401b03601954168152604051806020601a54918281520190601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9060005b8181106110a15786610c4660008888610c1f818a0382611139565b60208201526040518093819263aa5106cb60e01b8352604060048401526044830190611280565b336024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610fbf575b506020610c9c91604051809381926390ba52cf60e01b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f8d575b5060005260006020526040600020604051610cde8161111e565b6001600160401b03600483015416815260405180602060058501549182815201906005850160005260206000209060005b818110610f6e575050509181610d2c602093610d51950382611139565b8282015260405180938192630c133d1360e31b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f4f575b50610f3e57610db590610d9336610b4b600486018061118c565b9060405192839263c836244d60e01b8452604060048501526044840190611280565b6003198382030160248401526005606060408301926001600160401b036004860154168152604060208201528285015480945201920160005260206000209060005b818110610f1c575050509080602092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610ee1575b5015610ecf5760ff602b5460181c16610e4357005b60405160246020820192632643057b60e11b84520135602482015260006044820152600060648201526064815260a081018181106001600160401b03821117610a5f576040525161095b91600091829182335af13d15610ec7573d90610ea882611171565b91610eb66040519384611139565b82523d6000602084013e5b336112f3565b606090610ec1565b6040516303b5db8360e11b8152600490fd5b610f03915060203d602011610f09575b610efb8183611139565b8101906112db565b82610e2e565b503d610ef1565b6040513d6000823e3d90fd5b82546001600160a01b0316845285945060209093019260019283019201610df7565b6040516208ed5b60e31b8152600490fd5b610f68915060203d602011610f0957610efb8183611139565b83610d79565b82546001600160a01b0316845260209093019260019283019201610d0f565b90506020813d602011610fb7575b81610fa860209383611139565b8101031261024f575182610cc4565b3d9150610f9b565b90503d806000833e610fd18183611139565b81019060208183031261024f578051906001600160401b03821161024f57019060408282031261024f57604051916110088361111e565b80516001600160401b038116810361024f5783526020810151906001600160401b03821161024f57019080601f8301121561024f5781516110488161115a565b926110566040519485611139565b81845260208085019260051b82010192831161024f57602001905b82821061108957505050602080830191909152610c74565b602080916110968461126c565b815201910190611071565b82546001600160a01b0316845260209093019260019283019201610c04565b6040516370e4510960e01b8152600490fd5b604051637f39132760e11b8152600490fd5b90506020813d602011611116575b816110ff60209383611139565b8101031261024f576111109061126c565b82610b99565b3d91506110f2565b604081019081106001600160401b03821117610a5f57604052565b90601f801991011681019081106001600160401b03821117610a5f57604052565b6001600160401b038111610a5f5760051b60200190565b6001600160401b038111610a5f57601f01601f191660200190565b903590603e198136030182121561024f570190565b35906001600160401b038216820361024f57565b35906001600160a01b038216820361024f57565b919060408382031261024f57604051926111e28461111e565b836111ec826111a1565b815260209182810135906001600160401b03821161024f57019280601f8501121561024f57833561121c8161115a565b9461122a6040519687611139565b818652848087019260051b82010192831161024f5784809101915b83831061125457505050500152565b819061125f846111b5565b8152019101908490611245565b51906001600160a01b038216820361024f57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106112be575050505090565b83516001600160a01b0316855293810193928101926001016112b0565b9081602091031261024f5751801515810361024f5790565b901561133157815115611304575090565b803b1561130f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561134157805190602001fd5b604051630a12f52160e11b8152600490fd5b81811061135e575050565b60008155600101611353565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610f10576000916113c3575b50156113b157565b60405163f0d97f3b60e01b8152600490fd5b6113db915060203d8111610f0957610efb8183611139565b386113a9565b90600182811c92168015611411575b60208310146113fb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916113f0565b909194939260808201956002841015610acd576060938352602083015260408201520152565b81519190604183036114725761146b92506020820151906060604084015193015160001a9061147d565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161150157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156114f55780516001600160a01b038116156114ec57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b80518210156115215760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600d5481101561152157600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b6000818152600e60205260408120546115e657600d54600160401b8110156115d25790826115be6115a784600160409601600d55611537565b819391549060031b91821b91600019901b19161790565b9055600d54928152600e6020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461164157805490600160401b821015610a5f57600182018082558210156115215782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152600e6020526040812054909190801561172d576000199080820181811161171957600d5490838201918211611705578082036116d1575b505050600d5480156116bd5781019061169c82611537565b909182549160031b1b19169055600d558152600e6020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6116ef6116e06115a793611537565b90549060031b1c928392611537565b90558452600e6020526040842055388080611684565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220290a93e36b6805df006441b141a908ae17483412928035e4fb087e0eb0d40d6264736f6c634300081300336080806040523461001657612a65908161001c8239f35b600080fdfe604060a08152600436101561001357600080fd5b600090813560e01c9081630df144611461016457816311196974146100a9575063e49a547d1461004257600080fd5b346100a65760203660031901126100a6576004356001600160401b038082116100a257366023830112156100a25781600401359081116100a2573660248260051b840101116100a257602461009f92610099610d88565b01610e3b565b80f35b8280fd5b80fd5b9050346101605780600319360112610160578051906100c782610199565b828252826020809301526100d9610d88565b828282516100e681610199565b8281520152600254926004359283851161014f576060948252600181528282209383600181519661011688610199565b80548852015493838701948552828152600184522081815560016024359101556002558351151593835194855251908401525190820152f35b825163153ad84160e11b8152600490fd5b5080fd5b905034610160578160031936011261016057602090610181610d88565b6001600160401b03610191610355565b915191168152f35b604081019081106001600160401b038211176101b457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176101b457604052565b90601f801991011681019081106001600160401b038211176101b457604052565b9060016001600160401b038093160191821161021e57565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381116101b45760051b60200190565b805182101561025f5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600182811c921680156102a5575b602083101461028f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610284565b90604051918260008254926102c384610275565b90818452600194858116908160001461033257506001146102ef575b50506102ed925003836101e5565b565b9093915060005260209081600020936000915b81831061031a5750506102ed935082010138806102df565b85548884018501529485019487945091830191610302565b9150506102ed94506020925060ff191682840152151560051b82010138806102df565b6029546001600160401b038082166000190181811161021e5761037781610206565b8280604095861c169116146105085761038f816110d2565b61ffff928360235416916103a283610234565b956103af835197886101e5565b838752601f1991826103c086610234565b019260209336858b013760015b88811687811161040f576000908152602586528690205489916001916001600160a01b03166104078d8561040085610e27565b169061024b565b5201166103cd565b50509450949192909550865161042481610234565b94610431835196876101e5565b81865261043d82610234565b018460005b8281106104df5750505060005b81811061047a57505061047794959650519261046a84610199565b8352841690820152610897565b90565b6001906001600160a01b0361048f828c61024b565b511680600052602287526104bf60038660002085810154938851946104b3866101ca565b85528a850152016102af565b858201526104cd828961024b565b526104d8818861024b565b500161044f565b84516104ea816101ca565b6000815260008382015260608682015282828a010152018590610442565b505050600090565b60005b8381106105235750506000910152565b8181015183820152602001610513565b908082519081815260208091019281808460051b8301019501936000915b8483106105615750505050505090565b9091929394958480600192601f1990818682030187528a519182518252858060a01b03848401511684830152601f6040809401519360608091850152845180918501526105b681608096888888019101610510565b011601019801930193019194939290610551565b8181106105d5575050565b600081556001016105ca565b6105eb8154610275565b90816105f5575050565b81601f60009311600114610607575055565b908083918252610626601f60208420940160051c8401600185016105ca565b5555565b9190601f811161063957505050565b6102ed926000526020600020906020601f840160051c83019310610665575b601f0160051c01906105ca565b9091508190610658565b90808214610749576106818154610275565b906001600160401b0382116101b45781906106a6826106a08654610275565b8661062a565b600090601f83116001146106dd576000926106d2575b50508160011b916000199060031b1c1916179055565b0154905038806106bc565b81526020808220858352818320935090601f1985169083905b828210610730575050908460019594939210610717575b505050811b019055565b015460001960f88460031b161c1916905538808061070d565b84958192958501548155600180910196019401906106f6565b5050565b60045481101561025f576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b906108815781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b0383116101b4576107e6836107e08754610275565b8761062a565b81601f841160011461081f5750928293918392600094610814575b50501b916000199060031b1c1916179055565b015192503880610801565b919083601f1981168760005284600020946000905b88838310610867575050501061084e57505050811b019055565b015160001960f88460031b161c1916905538808061070d565b858701518855909601959485019487935090810190610834565b634e487b7160e01b600052600060045260246000fd5b60408051916020918284526108b6825182858701526060860190610533565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081610ba7575b5050506004908154936801000000000000000093848611610b925760065486600655808710610af3575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b838210610a9e57505050508060055416916001600160401b03199283600754161760075583515193855496885b868110610a2c5750505051169060055416176005558083116109c4575b50505050565b828110156109be5781548015610a195760001901906109e28261074d565b929092610a07578583556109ff60026001948886820155016105e1565b8355016109c4565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b88811015610a5b5780610a55610a45600193865161024b565b51610a4f8361074d565b90610788565b016109a1565b610a6681845161024b565b51885483811015610a8b5760019291610a4f8285610a8694018d5561074d565b610a55565b634e487b7160e01b8c5260418a5260248cfd5b806001918403610ab9575b6003809101930191019091610974565b805484558180850190838060a01b0390830154166001600160601b0360a01b825416179055610aee600280830190860161066f565b610aa9565b6003908082029082820403610b7d578782028281048903610b6857600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b828110610b4b57505050610927565b8082859255826001820155610b62600282016105e1565b01610b3c565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b84865116856007541690818114610c945710610c8357825192610bc984610199565b600454610bd581610234565b91610be2815193846101e5565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b848410610c41575050509185525050820152610c309082610c9e565b610c3c573880806108fd565b505050565b6003876001928451610c52816101ca565b86548152848060a01b03858801541683820152610c71600288016102af565b86820152815201930193019291610c14565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b03906020918083830151169083850151160361050857610cc481610d4c565b610ccd84610d4c565b03610508575180518351510361050857610d38610d2c916040519081610cfd868201928784526040830190610533565b0391610d11601f19938481018352826101e5565b51902094516040519384918683019687526040830190610533565b039081018352826101e5565b5190201490565b9190820180921161021e57565b8051519060009182915b818310610d635750505090565b909192610d7f600191610d7786855161024b565b515190610d3f565b93019190610d56565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610e1b57600091610de1575b5015610dcf57565b60405163f0d97f3b60e01b8152600490fd5b6020813d8211610e13575b81610df9602093836101e5565b8101031261016057519081151582036100a6575038610dc7565b3d9150610dec565b6040513d6000823e3d90fd5b61ffff908116600019019190821161021e57565b81156107495760005b828110610e5057505050565b8060051b820135603e198336030181121561100757820190604080610e7584806110a2565b013560018060a01b0380608052811680910361100757610e9584806110a2565b35600481101561100757610ea985806110a2565b6020908181013590601e19813603018212156110075701956001600160401b0393873585811161100757838901813603811361100757610ee8826110b7565b99610ef589519b8c6101e5565b828b528583369201011161100757816000928692838d01378a010152846029541693865190610f23826101ca565b815283810198895286810191825284600052602a8452866000209051600481101561108c5760ff8019835416911617815560019889820190518051908882116101b457610f7a82610f748554610275565b8561062a565b8690601f8311600114611017576002949392916000918361100c575b5050600019600383901b1c1916908c1b1790555b01906080519051166001600160601b0360a01b82541617905583610fcd84610206565b166001600160401b0319602954161760295501359182168092036110075703610ff7575001610e44565b51631aba532960e21b8152600490fd5b600080fd5b015190503880610f96565b9392918c91601f1982169084600052896000209160005b8b828210611069575050968360029810611050575b505050811b019055610faa565b015160001960f88460031b161c19169055388080611043565b919295899487849397999a9b015181550195019301908f9492979695939161102e565b634e487b7160e01b600052602160045260246000fd5b903590605e1981360301821215611007570190565b6001600160401b0381116101b457601f01601f191660200190565b906029546001600160401b0381166001600160401b03841610156000146111055760405163040aaa0560e11b8152600490fd5b6001600160401b038160401c166001600160401b0384161061149e5760401c6001600160401b03165b6001600160401b0383166001600160401b0382161161146a576001600160401b038116600052602a60205260406000209060018060a01b036002830154169160ff815416600481101561108c57600281036111d9575060016111a9916001600160401b0394600052602260205201600360406000200161066f565b818116600052602a60205260406000209060008255600060026001936111d08582016105e1565b0155011661112e565b91929160038103611367575060016111f191016102af565b90815182019160408160208501940312611007576020810151906001600160401b0382116110075783603f838301011215611007576020828201015191611237836110b7565b9461124560405196876101e5565b8386526040848385010101116110075760409261126a91846020880191850101610510565b0151918160005260226020526003604060002001908051906001600160401b0382116101b45761129e82610f748554610275565b602090601f83116001146112f05791806001600160401b03979694926112e096946000926112e5575b50508160011b916000199060031b1c19161790556114a3565b6111a9565b0151905038806112c7565b90601f198316918460005260206000209260005b81811061134f57509260019285926112e098966001600160401b039b9a989610611336575b505050811b0190556114a3565b015160001960f88460031b161c19169055388080611329565b92936020600181928786015181550195019301611304565b9061137860019493948092016102af565b93602085805181010312611007578160206001600160401b03960151931460001461142657908161140092600052602291826020526113be8582604060002001546114e7565b9282600052602052604060002060028101918483548115908161141d575b501561141457509060006113fb938160039481855584015555016105e1565b611989565b61140d60219182546114e7565b90556111a9565b92500155611989565b905015386113dc565b6112e09281600052602280602052611445828560406000200154610d3f565b93849184600052602052604060002001556114636021918254610d3f565b90556114f4565b509061147590610206565b67ffffffffffffffff60401b6029549160401b169067ffffffffffffffff60401b191617602955565b509050565b9060018060a01b0382166000526022602052604060002081815491558181146000146114ce57505050565b8111156114de576102ed91611803565b6102ed91611cdb565b9190820391821161021e57565b919060018060a01b03928381166000948186526020916024835261ffff916040978389822054166117125783855460081c168460235416106116de576115386127ae565b60019283825260258652828a832054168861155282611e66565b1061165857508152602785528389822054166115c15750505050506115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461159c83611dfb565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6115ca86612801565b926115d487611e66565b935b818682161161161a575b505097516001600160a01b039095168552505050506020810191909152909150600080516020612a108339815191529080604081016115bc565b808561163986617fff8f95871c169485885260288c5287205416611e66565b1015611652579061164b839282612960565b90506115d6565b506115e0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506115bc95602791611693612388565b8352522054166116d0575b6116a784612319565b6116b083611dfb565b516001600160a01b03928316815292909116602083015281906040820190565b6116d98461201c565b61169e565b50505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461159c83612319565b9792915061172385949796956127ca565b9761172d85611e66565b976117378a61220e565b8460235416905b8581168281116117de57828110156117c257508061175e61176492611de8565b9061275e565b9b909b5b8b111561178757611779908c6128c7565b6117828b61220e565b61173e565b505093516001600160a01b0390951685525050505060208101919091529092506000805160206129f0833981519152915080604081016115bc565b849c919c52602583526117d9858886205416611e66565b611768565b505050505050506115bc91929395506000805160206129f0833981519152945061159c565b6001600160a01b03808216600081815260246020526040808220549095949361ffff93918416611957578360205460081c16846023541610611925576118476127ae565b60018352602560205286832054168561185f82611e66565b106118d157508152602760205284902054166118a3576115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361159c83611dfb565b6115bc600080516020612a108339815191529361159c6118c284612801565b6118cb85611e66565b906121b9565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7596926115bc94611905612388565b8152602760205220541661191c576116a784612319565b6116d9846120a7565b505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361159c83612319565b505050506115bc6000805160206129f08339815191529361159c61197a846127ca565b61198385611e66565b906126cb565b909160018060a01b03928383169060009382855260206027815261ffff95604094878683205416611bb1578082526024835287868320541615611ba0578415611af857506119d6836127ca565b976119e084611e66565b985b6001808a83161115611ae95781617fff911c1690818452602585528a611a0c848a87205416611e66565b1115611a2157611a1c90826128c7565b6119e2565b505091939597509193955b6026541615611ae157611a3d6127ae565b600182526025835285818184205416926028611a5885611e66565b95611a616127bc565b600183525220541691611a7383611e66565b11611aa857505091516001600160a01b03909216825260208201526000805160206129f08339815191529080604081016115bc565b915091506115bc7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611ad9612388565b61169e611eb5565b505050505050565b50509193959750919395611a2c565b829450611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996124d1565b8651908152a160265416611b405750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360288492611b6e6127bc565b6001835252205416611b94611b8282611e66565b92611b8b611eb5565b61159c83612319565b0390a1388080806109be565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611ca0575061fffe9193611bce86612801565b93611bd887611e66565b9480966001958692831b168160265416925b611c2c575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020612a1083398151915291905080604081016115bc565b818116838111611c9a578d9084811015611c7e57505080611c4f611c5592611de8565b906122c1565b9890985b881015611c7957611c6a9089612960565b611c738861220e565b86611bea565b611bef565b865260288552852054909890611c95908716611e66565b611c59565b50611bef565b94915050611cd49194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9596925061201c565b51908152a1565b6001600160a01b0380821660008181526027602090815260408083205490969594919361ffff918216611d7e578084526024855281888520541615611d6d578615611d3c5750611a2c611d2d866127ca565b611d3687611e66565b9061267c565b849193979650611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b939661255c565b8751632a55ca5360e01b8152600490fd5b9693925050508315611dbb5750600080516020612a1083398151915293506115bc9061159c611dac84612801565b611db585611e66565b90612225565b9250611cd47f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b94926120a7565b90600161ffff8093160191821161021e57565b6102ed906118cb61ffff91611e138360265416611de8565b9260018060a01b0382169081600052602760205260406000209085169161ffff199183838254161790558260005260286020526040600020906001600160601b0360a01b82541617905560265416176026555b60ff60205416600381101561108c57600103611e97576001600160a01b031660009081526022602052604090205490565b6001600160a01b031660009081526022602052604090206001015490565b61ffff806026541690811561200a5790600190611ed4818311156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611f6e91908a611f5f83610e27565b16906026541617602655612826565b848252808652611f82848484205416611e66565b95859860028160265416995b611fa0575b5050505050505050505050565b8181168a8111612004578a811015611fe9575080611c4f611fc092611de8565b9a909a5b891015611fe457611fd5908b612960565b611fde8a61220e565b87611f8e565b611f93565b859b919b52838352611fff878787205416611e66565b611fc4565b50611f93565b6040516340d9b01160e01b8152600490fd5b61202590612801565b61ffff908160265416916120398383612960565b8061204384610e27565b1661ffff19602654161760265561205983612826565b811680921461074957611db5826102ed93600052602860205260018060a01b039061209361208d8360406000205416611e66565b856121b9565b600052602860205260406000205416611e66565b6120b090612801565b61ffff908160265416916120c48383612960565b806120ce84610e27565b1661ffff1960265416176026556120e483612826565b808216809314610c3c579161fffe9160009180835260289060209382855260018060a01b039260409261212461211e868686205416611e66565b876121b9565b8252808652612137848484205416611e66565b9585986001988997881b168160265416995b61215a575050505050505050505050565b8181168a8111612004578a81101561219e575080611c4f61217a92611de8565b9a909a5b891015611fe45761218f908b612960565b6121988a61220e565b87612149565b859b919b528383526121b4878787205416611e66565b61217e565b9190915b60018061ffff831611156122085781617fff911c1690836121f360008481526028602052604060018060a01b0391205416611e66565b1015612208576122039082612960565b6121bd565b50509050565b60011b906201fffe61fffe83169216820361021e57565b90600161fffe83821b168160009161ffff908160265416925b61224c575b50505050505050565b8181168381116122bb5783811015612295575080611c4f61226c92611de8565b9690965b861015612290576122819087612960565b61228a8661220e565b8461223e565b612243565b8452602860205260408420549096906122b6906001600160a01b0316611e66565b612270565b50612243565b91909161ffff92838216600052602860205261230460018060a01b036122ed8160406000205416611e66565b958316600052602860205260406000205416611e66565b908185106123125750509190565b9350919050565b6102ed90611d3661ffff916123318360235416611de8565b9260018060a01b0382169081600052602460205260406000209085169161ffff199183838254161790558260005260256020526040600020906001600160601b0360a01b8254161790556023541617602355611e66565b61ffff806023541690811561200a57906001906123a7818311156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161244191908a61243283610e27565b16906023541617602355612868565b848252808652612455848484205416611e66565b95859860028160235416995b612472575050505050505050505050565b8181168a8111612004578a8110156124b657508061175e61249292611de8565b9a909a5b891115611fe4576124a7908b6128c7565b6124b08a61220e565b87612461565b859b919b528383526124cc878787205416611e66565b612496565b6124da906127ca565b61ffff908160235416916124ee83836128c7565b806124f884610e27565b1661ffff19602354161760235561250e83612868565b811680921461074957611983826102ed93600052602560205260018060a01b03906125486125428360406000205416611e66565b8561267c565b600052602560205260406000205416611e66565b612565906127ca565b9061ffff9081602354169061257a82856128c7565b8261258483610e27565b1661ffff19602354161760235561259a82612868565b8284168092146126765760009291929183835260259260209484865260018060a01b03916040916125d86125d2858585205416611e66565b8a61267c565b81528587526125eb838383205416611e66565b956125f58961220e565b978560235416985b8681168a8111612668578a81101561264d57508061175e61261d92611de8565b9a909a5b89111561264057612632908b6128c7565b61263b8a61220e565b6125fd565b5050505050505092505050565b849b919b52828252612663868686205416611e66565b612621565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156122085781617fff911c1690836126b660008481526025602052604060018060a01b0391205416611e66565b1115612208576126c690826128c7565b612680565b916126d58361220e565b600061ffff918260235416905b838116828111612754578281101561272e57508061175e61270292611de8565b9690965b8611156127255761271790876128c7565b6127208661220e565b6126e2565b50505050915050565b83526025602052604083205490969061274f906001600160a01b0316611e66565b612706565b5050505050915050565b919061ffff808416600052602560205261279f60018060a01b036127888160406000205416611e66565b928416600052602560205260406000205416611e66565b93848211156123125750509190565b61ffff602354161561200a57565b61ffff602654161561200a57565b6001600160a01b031660009081526024602052604090205461ffff169081156127ef57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526027602052604090205461ffff169081156127ef57565b61ffff16600090815260286020908152604080832080546001600160a01b031981169091556001600160a01b0316835260279091529020805461ffff19169055565b61ffff16600090815260256020908152604080832080546001600160a01b031981169091556001600160a01b0316835260249091529020805461ffff19169055565b156128b157565b634e487b7160e01b600052600160045260246000fd5b6128ec61ffff8080602354169316936128e2848611156128aa565b16918211156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61297b61ffff8080602654169316936128e2848611156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda2646970667358221220cff9f210462ab66eb409caf3ccd6d5276d22bbdb298d3cafd0f082e4e5621cc564736f6c63430008130033608080604052346100165761163d908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e08435811c63c62eb4d51461002e57600080fd5b346104655760209182600319360112610461578335916001600160401b039586841161045d573660238501121561045d578386013593878511610459576024926005948487871b8401019336851161045557635d3f8a6960e01b8152338a8201528881878173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af49081156103ef578c91610428575b5015610419578051996100ca8b610469565b80601954168b5281518c8180928c601a54918281520190601a84528d7f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e94905b8282106103f9575050506101209250038261049a565b898c01528b898b61014785519e8f9384936308c7427760e11b85528401528a830190610566565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49a8b156103ef578c9b610323575b5061017888610536565b976101858351998a61049a565b8852858401938989015b8686106101e25750505050505050825194875b8681106101ad578880f35b84518110156101d057806101ca87600193871b880101518a61094e565b016101a2565b50634e487b7160e01b88526032905286fd5b853583811161031f57820190602319858184360301126102f35785519261020884610469565b8a8101358681116103195788908201928336030112610314578651888101818110888211176102fe5788528b8301358781116102f75761024d908d3691860101610637565b815260448301358781116102f7578f9061026c908e3691870101610637565b90820152606483013588820152610285608484016105c1565b606082015260a48301356001600160e01b0319811681036102f757608082015260c48301358781116102f7576044936102c560e4928f36918401016105f0565b60a0840152013560c0820152845201359081151582036102f357828d9392848094015281520195019461018f565b8f80fd5b5050508f80fd5b50505050888f60418f634e487b7160e01b835252fd5b508f80fd5b50508f80fd5b8e80fd5b909a503d808d833e610335818361049a565b81019089818303126103eb578051908c82116103e757019082828203126103eb5782519161036283610469565b80518d8116810361031f5783528a810151908d821161031f57019080601f830112156103e757815161039381610536565b926103a08651948561049a565b8184528c808501928c1b8201019283116102f3578c809101915b8383106103cf5750915050820152993861016e565b81906103da8461054d565b8152019101908c906103ba565b8d80fd5b8c80fd5b82513d8e823e3d90fd5b85546001600160a01b03168452600195860195879550930192018e61010a565b5163f0d97f3b60e01b81528890fd5b6104489150893d8b1161044e575b610440818361049a565b810190610751565b386100b8565b503d610436565b8b80fd5b8880fd5b8780fd5b8580fd5b8480fd5b604081019081106001600160401b0382111761048457604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761048457604052565b906040516104c881610469565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061051757505050506105139250038461049a565b0152565b83546001600160a01b03168552899550909301929181019181016104fb565b6001600160401b0381116104845760051b60200190565b51906001600160a01b038216820361056157565b600080fd5b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106105a4575050505090565b83516001600160a01b031685529381019392810192600101610596565b35906001600160401b038216820361056157565b6001600160401b03811161048457601f01601f191660200190565b81601f8201121561056157803590610607826105d5565b92610615604051948561049a565b8284526020838301011161056157816000926020809301838601378301015290565b9190604092838183031261056157835161065081610469565b80948235936001600160401b039485811161056157840193828583031261056157825161067c81610469565b610685866105c1565b81526020958681013590888211610561570183601f82011215610561578035906106ae82610536565b916106bb8751938461049a565b808352888084019160051b83010191868311610561578901905b828210610732575050508682015284528481013590868211610561570191808383031261056157519461070786610469565b823560ff81168103610561578652848301359081116105615761072a92016105f0565b828401520152565b81356001600160a01b03811681036105615781529089019089016106d5565b90816020910312610561575180151581036105615790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8282106107c8575050505090565b83546001600160a01b0316855293840193600193840193909101906107ba565b8181106107f3575050565b600081556001016107e8565b60005b8381106108125750506000910152565b8181015183820152602001610802565b9060209161083b815180928185528580860191016107ff565b601f01601f1916010190565b604060206108839381610861855185845285840190610566565b940151908281860391015260ff81511684520151918160208201520190610822565b90565b9060c0806108f76108b56108a3865160e0875260e0870190610847565b60208701518682036020880152610847565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152610822565b93015191015290565b6002111561090a57565b634e487b7160e01b600052602160045260246000fd5b9060016001600160401b038093160191821161093857565b634e487b7160e01b600052601160045260246000fd5b6020825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__9160405160208180610991630c133d1360e31b968783528460048401526024830190610566565b0381875af4908115610ce65760009161155b575b5061154957602084510151516109d36040519163c836244d60e01b8352604060048401526044830190610566565b90602081806109ee6003199586838203016024840152610769565b0381885af4908115610ce65760009161152a575b5015610ee3576040516000610a1682610469565b8082526020820152906020610a4c8751610a5b604051948593849363f47ad7eb60e01b8552604060048601526044850190610886565b90838203016024840152610769565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4908115610ce657600091610ea8575b50610a8d81610900565b60018103610e0d5750506020610abe91604051809381926390ba52cf60e01b83528460048401526024830190610566565b0381865af4908115610ce657600091610ddb575b5060005260006020526040600020610b0e60206004830193610af3856104bb565b90604051938492839283528460048401526024830190610566565b0381875af4908115610ce657600091610dbc575b50610daa57600301918254916001600160401b0390818460401c1691606087510151168203610d9857610ba89460209467ffffffffffffffff60401b610b6a610b8595610920565b60401b169067ffffffffffffffff60401b19161790556104bb565b906040518080958194632cff562160e11b83528660048401526024830190610566565b03915af4908115610ce657600091610d59575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa908115610ce657600091610cf2575b506000905b604051809381926373b464b760e01b8352606060048401526020610c2183516040606487015260a4860190610886565b920151151560848401528051610c3681610900565b6024840152602001516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af48015610ce657610c735750565b3d806000833e610c83818361049a565b810190602081830312610561578051906001600160401b038211610561570181601f8201121561056157805190610cb9826105d5565b92610cc7604051948561049a565b8284526020838301011161056157602080610ce4940191016107ff565b565b6040513d6000823e3d90fd5b6040813d604011610d51575b81610d0b6040938361049a565b81010312610d4d5760405191610d2083610469565b8151906002821015610d4a575060208392610d3f92600095520161054d565b602082015290610bec565b80fd5b5080fd5b3d9150610cfe565b906020823d602011610d90575b81610d736020938361049a565b81010312610d4a57506040610d8960049261054d565b9150610bbb565b3d9150610d66565b60405163a57cadff60e01b8152600490fd5b604051630e991abd60e41b8152600490fd5b610dd5915060203d60201161044e57610440818361049a565b38610b22565b906020823d602011610e05575b81610df56020938361049a565b81010312610d4a57505138610ad2565b3d9150610de8565b9250925050610e1b81610900565b15610e29575b600090610bf1565b50601c546001600160401b03808260481c1690606084510151168103610d9857610e5e67ffffffffffffffff60481b91610920565b60481b169067ffffffffffffffff60481b191617601c5560006020604051610e8581610469565b82815201526000604051610e9881610469565b8181528160208201529050610e21565b6020813d602011610edb575b81610ec16020938361049a565b81010312610d4d5751906002821015610d4a575038610a83565b3d9150610eb4565b5050505060405190602082016020815281519260408082015260c0610f7c610f18865160e0608086015261016085019061157a565b610f34602088015191607f1992838783030160a088015261157a565b60408801518585015260608801516001600160401b031660e086015260808801516001600160e01b03191661010086015260a088015185820390920161012086015290610822565b940151610140820152610fa581602085019586511515606083015203601f19810183528261049a565b519020600052600360205260406000209051805180516001600160401b038151166001600160401b0319855416178455602060018501910151908151916001600160401b03831161048457600160401b831161048457602090825484845580851061150d575b500190600052602060002060005b8381106114f0575050505060208091015160ff815116600285019060ff1982541617905501518051906001600160401b03821161048457600384015490600182811c921680156114e6575b602083101461132d5781601f8493116114b1575b50602090601f831160011461143f57600092611434575b50508160011b916000199060031b1c19161760038301555b600482016020820151908151906001600160401b038251166001600160401b0319825416179055602060058501910151908151916001600160401b03831161048457600160401b8311610484576020908254848455808510611417575b500190600052602060002060005b8381106113fa57505050506020600684019101519060ff82511660ff198254161790556020600784019101518051906001600160401b03821161048457825490600182811c921680156113f0575b602083101461132d5781601f8493116113be575b50602090601f83116001146113585760009261134d575b50508160011b916000199060031b1c19161790555b60408101516008830155600982016001600160401b036060830151168154906bffffffff0000000000000000608085015160a01c16916bffffffffffffffffffffffff191617179055600a820160a08201518051906001600160401b038211610484578254600181811c91168015611343575b602082101461132d57601f81116112f0575b50602090601f831160011461128157918060c09492600c979694600092611276575b50508160011b916000199060031b1c19161790555b0151600b820155019051151560ff80198354169116179055565b015190503880611247565b90601f198316918460005260206000209260005b8181106112d85750926001928592600c99989660c09896106112bf575b505050811b01905561125c565b015160001960f88460031b161c191690553880806112b2565b92936020600181928786015181550195019301611295565b61131d90846000526020600020601f850160051c81019160208610611323575b601f0160051c01906107e8565b38611225565b9091508190611310565b634e487b7160e01b600052602260045260246000fd5b90607f1690611213565b01519050388061118b565b6000858152602081209350601f198516905b8181106113a6575090846001959493921061138d575b505050811b0190556111a0565b015160001960f88460031b161c19169055388080611380565b9293602060018192878601518155019501930161136a565b6113ea90856000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611174565b91607f1691611160565b82516001600160a01b031681830155602090920191600101611112565b61142e9084600052858460002091820191016107e8565b38611104565b01519050388061108f565b9250600385016000526020600020906000935b601f1984168510611496576001945083601f1981161061147d575b505050811b0160038301556110a7565b015160001960f88460031b161c1916905538808061146d565b81810151835560209485019460019093019290910190611452565b6114e090600387016000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611078565b91607f1691611064565b82516001600160a01b031681830155602090920191600101611019565b6115249084600052858460002091820191016107e8565b3861100b565b611543915060203d60201161044e57610440818361049a565b38610a02565b60405163c5f563eb60e01b8152600490fd5b611574915060203d60201161044e57610440818361049a565b386109a5565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b8181106115ea575050509360408381938161088397980151908281860391015260ff81511684520151938201520190610822565b82516001600160a01b0316885296850196918501916001016115b656fea264697066735822122005881028574a21639c3cb4d9d5bc2c20e70622999c6082a2414cc35ec07c6f2564736f6c634300081300336080806040523461001657611533908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610e17575081631597bf7e14610dd15781631904bb2e14610d025781631f3a0e4114610cdb57816328d5551d14610cbc5781632bc31eb314610c73578163332a5ac9146103bd5781633354c3e114610c4d57816335142c8c14610c2657816338a210b314610bf55781633da3324114610a3e57816340550a1c146109ff5781634b0694e2146109a65781634b27aa721461096a57816352d182d114610922578163599c7bd1146108fd5781635dd9147c146108715781636704287c1461085257816369e737fd1461083357816372d0a0e01461081457816380875df71461079857816380f76021146106de5781638ef3f761146106b2578163903e693014610583578163948628a9146105645781639754b29e146104ec5781639e33bd02146104cd578163ad81e4d6146104ad578163b2bd295e14610475578163c5ab22411461044d578163c7cda7621461042a578163cfca282414610401578163d081be03146103c2578163d6eb5910146103bd578163d92e8f121461024f578163f0cf6c9614610210575063f75499dc146101bc57600080fd5b3461020c57602036600319011261020c57610203602092826101dc610e33565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020c578160031936011261020c5760ff60135416905191600382101561023c57602083838152f35b634e487b7160e01b815260218452602490fd5b8391503461020c578160031936011261020c57919060019081549361027385610fd6565b9061028085519283610f9b565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b8383106103395750505050508451948186019282875251809352808601818460051b8801019794915b8483106102e85787890388f35b9091929394958480610327839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610e4e565b9a9801969594919091019201906102db565b89959697999a989a51606081018181106001600160401b038211176103aa57875282548152828c01546001600160a01b03168882015286518c926003928a92610390816103898160028b01610fed565b0382610f9b565b8a82015281520192019201919099979998969594986102b2565b634e487b7160e01b8c526041875260248cfd5b610e8e565b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b036103ee610e33565b168152601a855220541615159051908152f35b50503461020c578160031936011261020c57600e5490516001600160a01b039091168152602090f35b50503461020c578160031936011261020c5760209061ffff601654169051908152f35b50503461020c578160031936011261020c576020906001600160401b03600c54169051908152f35b50503461020c57602036600319011261020c5760209181906001600160a01b0361049d610e33565b1681526021845220549051908152f35b50503461020c578160031936011261020c576020918254900b9051908152f35b50503461020c578160031936011261020c57602090600a549051908152f35b828434610561578060031936011261056157610506611283565b825191602080840190808552835180925280868601968360051b870101940192955b8287106105355785850386f35b909192938280610551600193603f198a82030186528851610e4e565b9601920196019592919092610528565b80fd5b50503461020c578160031936011261020c576020906002549051908152f35b8391503461020c578160031936011261020c5791908254906105a482610fd6565b936105b184519586610f9b565b828552601f1992836105c282610fd6565b019060209136838901376105d581610fd6565b926105e287519485610f9b565b8184526105ee82610fd6565b8484019601368737845b82811061064d57505050806106168651978789988952880190610eac565b928684038288015251928381520193925b82811061063657505050500390f35b835185528695509381019392810192600101610627565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154168061068f83886110aa565b52865260038752898620546106a4828a6110aa565b5201979695939492976105f8565b83833461020c578160031936011261020c5760ff60125416905191600182101561023c57602083838152f35b8284346105615780600319360112610561576106f8610fbc565b5081519161070583610f80565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077b5788906107778888610764818a0382610f9b565b8385015251928284938452830190610ee9565b0390f35b83546001600160a01b031685529093019260019283019201610749565b9050823461056157806003193601126105615780602084516107b981610f80565b828152015282516107c981610f80565b6027549160ff83169360028510156108015750508083602092520160018060a01b03809260081c168152835192835251166020820152f35b634e487b7160e01b825260219052602490fd5b50503461020c578160031936011261020c576020906005549051908152f35b50503461020c578160031936011261020c576020906008549051908152f35b50503461020c578160031936011261020c57602090600f549051908152f35b8284346105615760203660031901126105615761088c610e33565b9060ff601354169060038210156108ea5760208484600185036108c9576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b0316600090815260156020526040902060010154906108c3565b634e487b7160e01b815260218552602490fd5b50503461020c578160031936011261020c5760209060ff600e5460a01c169051908152f35b83833461020c578160031936011261020c5761ffff908160195416826016541601928284116109575750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610561576020366003190112610561575061098c61077791356110d4565b839291925193849315158452806020850152830190610f12565b9050823461056157602036600319011261056157506109c590356110d4565b82516109ee816109e060208201946020865287830190610f12565b03601f198101835282610f9b565b519020825191151582526020820152f35b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b03610a2b610e33565b1681526017855220541615159051908152f35b828434610561576020928360031936011261020c578035906001600160401b0390818311610bf15736602384011215610bf157820135818111610bf15760248301908060051b936024853692010111610bed579093855193849288840196818986018b8a525260608086019386010193819681925b848410610add57505050505050610ad3925003601f198101835282610f9b565b5190209051908152f35b9193959092949650605f19898203018752610af88883611399565b803560de1982360301811215610be55790610b528e610b418f959484610b3891019680875260e0610b298980611399565b91880152610120870190611413565b91860186611399565b848203603f19016060860152611413565b8d6080908501358185015286610b6a606087016113ad565b1660a08501528401359063ffffffff60e01b8216809203610be957908f9291610bb39060c09283870152610ba160a08801886113c1565b878303603f190160e0890152906113f2565b940135610100840152013590811515809203610be5576001928e92838093015299019701940191889697959391610ab3565b8580fd5b8780fd5b8480fd5b8380fd5b82843461056157806003193601126105615750601c548151906001600160401b03908181168352831c166020820152f35b50503461020c578160031936011261020c5760209060ff60125460081c1690519015158152f35b50503461020c578160031936011261020c5760209061ffff60135460081c169051908152f35b50503461020c57602036600319011261020c5761020360209282610c95610e33565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b50503461020c578160031936011261020c576020906006549051908152f35b50503461020c578160031936011261020c5760209060ff60125460101c1690519015158152f35b82843461056157602036600319011261056157610d5890606080610d24610e33565b92855190610d3182610f4f565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b6107776003835192610d6984610f4f565b8054845260018101549460208501958652610d9f600283015492828701938452610d9883518096819301610fed565b0384610f9b565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610e4e565b50503461020c57602036600319011261020c576020906002610e0e610df4610e33565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b84903461020c578160031936011261020c57602090600b548152f35b600435906001600160a01b0382168203610e4957565b600080fd5b919082519283825260005b848110610e7a575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610e59565b34610e49576000366003190112610e49576020601454604051908152f35b90815180825260208080930193019160005b828110610ecc575050505090565b83516001600160a01b031685529381019392810192600101610ebe565b9060406020610f0f936001600160401b0381511684520151918160208201520190610eac565b90565b9060606001600160401b0381610f318551608086526080860190610ee9565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610f6a57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610f6a57604052565b90601f801991011681019081106001600160401b03821117610f6a57604052565b60405190610fc982610f80565b6060602083600081520152565b6001600160401b038111610f6a5760051b60200190565b80546000939260018083169383821c9385156110a0575b602095868610811461108a5785855290811561106b575060011461102a575b5050505050565b90939495506000929192528360002092846000945b83861061105757505050500101903880808080611023565b80548587018301529401938590820161103f565b60ff19168685015250505090151560051b010191503880808080611023565b634e487b7160e01b600052602260045260246000fd5b93607f1693611004565b80518210156110be5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9060408051926110e384610f4f565b6110eb610fbc565b845260009081606060209682888201528286820152015281528084528181209382519461111786610f4f565b83519161112383610f80565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b81811061126757505050600484916111688888999a038a610f9b565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b81811061124657505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af493841561123d57508293611202575b505050159190565b9080929350813d8311611236575b61121a8183610f9b565b8101031261020c575190811515820361056157503880806111fa565b503d611210565b513d84823e3d90fd5b83516001600160a01b031685528796899650948501949093019282016111c5565b82546001600160a01b03168a529887019891850191850161114c565b60255461128f81610fd6565b90604061129e81519384610f9b565b818352601f196112ad83610fd6565b0160005b81811061138857505081156113835780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b8588821061136d57505061130c92500382610f9b565b60005b84811061131e57505050505090565b6001906001600160a01b0361133382856110aa565b51166000526024845261038961135186600020875192838092610fed565b61135b82896110aa565b5261136681886110aa565b500161130f565b84548352600194850194869450920191016112f6565b505090565b8060606020809388010152016112b1565b9035603e1982360301811215610e49570190565b35906001600160401b0382168203610e4957565b9035601e1982360301811215610e495701602081359101916001600160401b038211610e49578136038313610e4957565b908060209392818452848401376000828201840152601f01601f1916010190565b9061141e8280611399565b906040815260808101926001600160401b03938461143b856113ad565b16604084015260209384810135601e1982360301811215610e495701908482359201958211610e49578160051b36038613610e49578190604060608601525260a08301949060005b8181106114d557505050808361149a920190611399565b908281850391015280359060ff8216809203610e4957836114c8604093928493610f0f9752858101906113c1565b93909482015201916113f2565b90919586359060018060a01b038216809203610e49579081528501958501919060010161148356fea2646970667358221220bf850d4074a1e793a659119e8b06c4c9588d3187183ea6e92cb7f9d7466de16664736f6c634300081300336080806040523461001657615081908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146119e15750806310fd426114611870578063268119361461165d5780632e17de78146116305780633a4b66f1146115545780633f4ba83a146114dc57806341c0e1b51461144b5780634c860af6146113f75780634e71d92d146112635780635c975abb146112335780636170b16214610e8357806366783c9b14610da25780638456cb5914610d3a578063b9ee2bb91461093b578063cc2dc2b9146108bb578063d66d9e1914610870578063da5d09ee146101a55763ed7c4da1146100e757600080fd5b346101a257806003193601126101a25760008051602061502c83398151915260018154146101905780600183925561011d611cde565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b1561018c5782602491604051928380926382985e0b60e01b82523360048301525af490811561018157839161016a575b50505580f35b61017390611ac3565b61017e578138610164565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101a25760603660031901126101a2576004356001600160401b03811161086c576101d6903690600401611b69565b906024356001600160401b038111610868576101f6903690600401611b69565b916044356001600160401b03811161086457610216903690600401611b69565b909461022061411c565b610228611c99565b60ff601354166003811015610850576001036108205781810361080e5784810361080e5760125460081c60ff161561050f57865b81811061026d575050505050505080f35b61028161027b828888613eca565b906140e0565b6001600160a01b0361029c610297848689613f0b565b611ea9565b166001600160a01b03909116036104fd576103066102be610297838588613f0b565b6102c9838989613eca565b6102d785888d969496613f0b565b356102f2604051958693604060208601526060850191613abb565b90604083015203601f198101845283611af1565b6001600160401b03601c541660405161031e81611ad6565b600381526020810184815260018060a01b038416604083015282600052601d60205260406000209082516103518161202f565b61035a8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761039282610389600186015461204f565b60018601612142565b602090601f8311600114610460579282600080516020614fec83398151915297959360029360019b9a9896600092610455575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361040b82612267565b166001600160401b0319601c541617601c5561044660405193849360038552888060a01b031660208501526080806040860152840190613ea5565b9060608301520390a10161025c565b0151905038806103c5565b906001840160005260206000209160005b601f19851681106104cf57508360029360019b9a9896938c93600080516020614fec8339815191529b9997601f198116106104b6575b505050811b01898201556103db565b015160001960f88460031b161c191690553880806104a7565b91926020600181928685015181550194019201610471565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105e6575050505050506001600160401b03600c541610156105d45761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061057281613f56565b0390a1600e5460025482916001600160a01b0316803b1561018c578290602460405180948193637903ab2760e11b83528160048401525af180156105c9576105b957505080f35b6105c290611ac3565b6101a25780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b6105f461027b828786613eca565b6001600160a01b039190828061060e610297858d8d613f0b565b169116036104fd5761062c610627610297838b8b613f0b565b6131c1565b6107fc576106c391610656610645610297848c8c613f0b565b610650848a89613eca565b91614003565b610679610667610297848c8c613f0b565b61067284878a613f0b565b3590612758565b610687610297838b8b613f0b565b90610693838689613f0b565b35906106a0848a89613eca565b9590604051936106af85611ad6565b845260209683888601961686523691611b2d565b9260408301938452600154600160401b8110156104e7578060016106ea9201600155613f1b565b9290926107e657600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104e75761073882610732855461204f565b85612142565b80601f83116001146107775750819060019560009261076c575b5050600019600383901b1c191690841b1790555b01610516565b015190503880610752565b91929394601f1984168560005283600020936000905b8282106107ce575050916001969594929183889593106107b5575b505050811b019055610766565b015160001960f88460031b161c191690553880806107a8565b8060018697829497870151815501960194019061078d565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b61084c61082b613e28565b60405163015538b160e01b8152602060048201529182916024830190613ea5565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101a257806003193601126101a25760008051602061502c8339815191526001815414610190578060018392556108a7611cde565b6108af61411c565b6108b761490d565b5580f35b50346101a25760603660031901126101a2576001600160401b036004358181116109375736602382011215610937576108fe903690602481600401359101611bc4565b60443591821161093757366023830112156109375761092a610934923690602481600401359101611c1a565b9060243590614cb0565b80f35b8280fd5b50346101a25760031960603682011261086c576001600160401b036004351161086c576080600435600401916004353603011261086c576024356001600160401b03811161093757610991903690600401611b69565b91906044356001600160401b038111610d36576109b2903690600401611b69565b916109bb611cde565b60055494600b54956109cd8782611d09565b60246004350135141580610d26575b610d145760405190610a1460208301836109f68a83611df8565b0393610a0a601f1995868101835282611af1565b5190209882611d09565b6004356024013503610c1157505091610a37610a3f92610a459697943691611bc4565b933691611c1a565b91614cb0565b6024600435013582528160205260408220908035604219600435360301811215610868576004350191600483016001600160401b03610a8382611e49565b16936001600160401b03199485845416178355610aa96001926024848601930190611e5d565b91906001600160401b038311610bfd57600160401b8311610bfd578154838355808410610be2575b509087959493929190865260208620865b838110610bbb575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b1e86611e49565b16908254161790556024600435013582526022602052610b42604083203390611faa565b5060043560240135600555600e546001600160a01b0316803b15610937576040516347dc9b4f60e01b81529183918391829084908290610b859060048301611df8565b03925af180156105c957610ba7575b5050610ba261093491611e49565b61227f565b610bb090611ac3565b61086c578138610b94565b84959697506020610bcf8495969394611ea9565b848301558a989796959401929101610ae2565b82895260208920610bf7918101908501611e92565b38610ad1565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c2957505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610cf3575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610cc8915082611af1565b51902014610cd35780f35b6024600435013581526022602052610cef604082203390611faa565b5080f35b82546001600160a01b03168552889550602090940193918101918101610c87565b60405163fae4eadb60e01b8152600490fd5b50806024600435013514156109dc565b8480fd5b50346101a257806003193601126101a257610d53611c99565b610d5b611cde565b60008051602061500c833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101a25760203660031901126101a25760043560008051602061502c833981519152600181541461019057600181558115610e715760ff60125460081c16610e5f57338352600360205281604084205410610e4d576108b78392338452600360205260408420610e158282546127ec565b9055610e23816002546127ec565b6002553384526003602052604084205415610e3f575b33613cc7565b610e4833613d41565b610e39565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101a2576004356001600160401b03811161086c573660238201121561086c576001600160401b0381600401351161086c5736602482600401358301011161086c57600160008051602061502c833981519152541461019057600160008051602061502c83398151915255610eff611cde565b610f0761411c565b60ff60125460081c1680611226575b3415611214573360009081526015602052604090206002015461119f57604182600401350361118d57336001600160a01b03610f596004850135602486016140e0565b16036104fd57610f9c57806024610f769260040135910133614003565b610f80343361413d565b610f88614571565b8060008051602061502c8339815191525580f35b610fae36826004013560248401611b2d565b6001600160401b03601c54169060405190610fc882611ad6565b600282526020820190815233604083015282600052601d6020526040600020908251610ff38161202f565b610ffc8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761102b82610389600186015461204f565b602090601f8311600114611105579282600080516020614fec8339815191529795936002936110e298966000926110fa575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036110a682612267565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613abb565b9060608301520390a16110f53433614357565b610f88565b01519050388061105d565b906001840160005260206000209160005b601f19851681106111755750836002936110e2989693600193600080516020614fec8339815191529b9997601f1981161061115c575b505050811b016001820155611075565b015160001960f88460031b161c1916905538808061114c565b91926020600181928685015181550194019201611116565b6040516318dca5e960e21b8152600490fd5b61084c6040516111ae81611ad6565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b604051635a78c58160e11b8152600490fd5b61122e61455c565b610f16565b50346101a257806003193601126101a257602060ff60008051602061500c83398151915254166040519015158152f35b50346101a257806003193601126101a25760019060008051602061502c8339815191528281541461019057828155611299611cde565b336000908152601f602052604090209283549061ffff908183169283156113e557829060101c16918391808795818a01915b61135f575b50505086611341937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611348575b6113298133613cc7565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561131f565b9091939483811696828810156113dc578760005260208091858252604060002060405161138b81611aa8565b898254928383520154938491015243106113d157859493889688946113b286958a95611d09565b9c600052526000826040822082815501550116966000190116946112cb565b9850505094936112d0565b965094936112d0565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101a257604435600281101561086c57611418611cde565b600e546001600160a01b031633036114395761093490602435600435614b05565b60405163e7e601db60e01b8152600490fd5b50346101a257806003193601126101a25761146461411c565b61ffff61147a8160195416826016541690612742565b166114ca576012805462ff0000191662010000179055600e5481906001600160a01b0316803b1561017e578180916004604051809481936341c0e1b560e01b83525af180156105c9576105b95750f35b604051636b62255160e11b8152600490fd5b50346101a257806003193601126101a2576114f5611c99565b60008051602061500c833981519152805460ff8116156115425760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101a257611568611cde565b61157061411c565b61157861455c565b34156112145733600090815260156020526040902060020154156115bf5760125460081c60ff166115b5576115ad343361413d565b610934614571565b6109343433614357565b61084c6040516115ce81611ad6565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b50346101a25760203660031901126101a25761164a611cde565b61165261411c565b61093460043561463d565b50346101a25760031960603682011261086c576004356001600160401b03918282116108685760608260040191833603011261086857602435838111610d36576116ab903690600401611b69565b919060443585811161186c576116c5903690600401611b69565b916024860135966006549687891061182157604401906116e58287611e5d565b9190506009541680911161185a576116fd8287611e5d565b9050141580611833575b611821576117159085611e5d565b90501561180f5787946040516020810190611742816117348985613b45565b03601f198101835282611af1565b519020968803611773575050505050506007541461175e575080f35b81526023602052610cef604082203390611faa565b61178d9392610a3788969893610a3f939a989a3691611bc4565b80602060405161179c81611aa8565b848152015281600655600755825260236020526117bd604083203390611faa565b50600e546001600160a01b031690813b1561018c5782916117f491604051948580948193630bed761560e01b835260048301613b45565b03925af180156105c957611806575080f35b61093490611ac3565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118465788061515611707565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101a257602090816003193601126101a2576001600160401b03916004358381116109375736602382011215610937576118b6903690602481600401359101611b2d565b926118bf611cde565b3383526017825261ffff604084205416156119c9578351156119b75733835260248252604083209184519182116119a3576118fe82610732855461204f565b80601f831160011461193f5750839482939492611934575b50508160011b916000199060031b1c19161790555b610cef33611f41565b015190503880611916565b90601f198316958486528286209286905b88821061198b57505083600195969710611972575b505050811b01905561192b565b015160001960f88460031b161c19169055388080611965565b80600185968294968601518155019501930190611950565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b90508160031936011261086c573415611a99575060ff60125460081c16610e5f573381526003602052604081205415611a40575b338152600360205260408120611a2c348254611d09565b9055611a3a34600254611d09565b60025580f35b600454600160401b811015611a8557611a62816001611a809301600455611ebd565b81546001600160a01b0360039290921b91821b19163390911b179055565b611a15565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757604052565b606081019081106001600160401b038211176104e757604052565b90601f801991011681019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757601f01601f191660200190565b929192611b3982611b12565b91611b476040519384611af1565b829481845281830111611b64578281602093846000960137010152565b600080fd5b9181601f84011215611b64578235916001600160401b038311611b64576020808501948460051b010111611b6457565b6001600160401b0381116104e75760051b60200190565b35906001600160a01b0382168203611b6457565b9291611bcf82611b99565b91611bdd6040519384611af1565b829481845260208094019160051b8101928311611b6457905b828210611c035750505050565b838091611c0f84611bb0565b815201910190611bf6565b92919092611c2784611b99565b91611c356040519384611af1565b829480845260208094019060051b830192828411611b645780915b848310611c5f57505050505050565b82356001600160401b038111611b6457820184601f82011215611b64578691611c8e8683858095359101611b2d565b815201920191611c50565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611ccc57565b6040516330cd747160e01b8152600490fd5b60ff60008051602061500c8339815191525416611cf757565b60405163d93c066560e01b8152600490fd5b91908201809211611d1657565b634e487b7160e01b600052601160045260246000fd5b9035603e1982360301811215611b64570190565b35906001600160401b0382168203611b6457565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578160051b36038313611b6457565b60408201916001600160401b03611d9e83611d40565b1681526060611db260209384810190611d54565b839195604086839601525201929160005b828110611dd1575050505090565b909192938280600192838060a01b03611de989611bb0565b16815201950193929101611dc3565b6020815260806001600160401b03611e426060611e28611e188780611d2c565b85602088015260a0870190611d88565b956020810135604087015260408101358287015201611d40565b1691015290565b356001600160401b0381168103611b645790565b903590601e1981360301821215611b6457018035906001600160401b038211611b6457602001918160051b36038313611b6457565b818110611e9d575050565b60008155600101611e92565b356001600160a01b0381168103611b645790565b600454811015611ef45760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611ef45760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fa557602554600160401b811015611a85579082611f91611f7a84600160409601602555611f0a565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461202957845494600160401b861015612015576001860180825586101561200157836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561203957565b634e487b7160e01b600052602160045260246000fd5b90600182811c9216801561207f575b602083101461206957565b634e487b7160e01b600052602260045260246000fd5b91607f169161205e565b906000929180549161209a8361204f565b9182825260019384811690816000146120fc57506001146120bc575b50505050565b90919394506000526020928360002092846000945b8386106120e85750505050010190388080806120b6565b8054858701830152940193859082016120d1565b9294505050602093945060ff191683830152151560051b010190388080806120b6565b60005b8381106121325750506000910152565b8181015183820152602001612122565b9190601f811161215157505050565b61217d926000526020600020906020601f840160051c8301931061217f575b601f0160051c0190611e92565b565b9091508190612170565b908082146122635761219b815461204f565b906001600160401b0382116104e75781906121c0826121ba865461204f565b86612142565b600090601f83116001146121f7576000926121ec575b50508160011b916000199060031b1c1916179055565b0154905038806121d6565b81526020808220858352818320935090601f1985169083905b82821061224a575050908460019594939210612231575b505050811b019055565b015460001960f88460031b161c19169055388080612227565b8495819295850154815560018091019601940190612210565b5050565b9060016001600160401b0380931601918211611d1657565b601c546001600160401b03828116929080831684106122aa5760405163040aaa0560e11b8152600490fd5b808360401c1684106120b65780604093841c165b848282161115612325575050916020916122f87f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612267565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612343826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123688161202f565b8085036123da5750506003612399600161239f94959697019260018060a01b03166000526015602052604060002090565b01612189565b6123bc816001600160401b0316600052601d602052604060002090565b916000908184556001936123d18582016127f9565b015501166122be565b909194506123e78161202f565b60039181830361258557505087519361240f85612408816001809a01612089565b0386611af1565b84518501916020928a87858301920312611b645783870151898111611b645787019681603f89011215611b645787858d9901519261245861244f85611b12565b9a519a8b611af1565b838a528d8483010111611b64578c926124769184888c01910161211f565b015192816124968460018060a01b03166000526015602052604060002090565b01918751918a8311612570578a986124b8846124b2875461204f565b87612142565b81601f85116001146124fd57506124ed9798999a84939284926000956124f2575b50501b92600019911b1c1916179055612758565b61239f565b0151935038806124d9565b91601f9b9493919b1984169b866000528c84600020946000915b8210612555575050846124ed9a9b9c9d1061253b575b50505050811b019055612758565b01519060f884600019921b161c191690553880808061252d565b8383015186558f9d509487019492830192908101908e612517565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125a185612408816001809501612089565b60208086805181010312611b645781818c970151956125bf8161202f565b036126e45784906125d08285612842565b601e546125dd9043611d09565b928751906125ea82611aa8565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061262d91612742565b169c60009d8e5282870188528d20925183555191015561264c9061272f565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b15610937578291602483928a5195869384926345f5448560e01b845260048401525af19081156126d9575090849392916126ca575b5061239f565b6126d390611ac3565b386126c4565b8751903d90823e3d90fd5b5050829350916126f4919261279c565b600e541690813b15611b64578651916316989f6f60e21b83528260048160009485945af19081156126d9575090849392916126ca575061239f565b90600161ffff80931601918211611d1657565b91909161ffff80809416911601918211611d1657565b9060018060a01b03821660005260156020526040600020818154915581811460001461278357505050565b8111156127935761217d916128d1565b61217d91612c17565b9061217d916127e460018060a01b038216928360005260156020526127c981600160406000200154611d09565b93600052601560205283600160406000200155601454611d09565b6014556128d1565b91908203918211611d1657565b612803815461204f565b908161280d575050565b81601f6000931160011461281f575055565b90808391825261283e601f60208420940160051c840160018501611e92565b5555565b906128af6128b79260018060a01b038116906000828152601560205261286f8560016040842001546127ec565b92815260156020526040812060028101848154811590816128c8575b50156128bc575090826003926128aa94835581600184015555016127f9565b612c17565b6014546127ec565b601455565b92505060010155612c17565b9050153861288b565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b02578360135460081c16846016541610612ace5761291661379a565b60019283825260188652828a8320541688612930826131c1565b10612a4857508152601a855283898220541661299f57505050505061299a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461297a8361314c565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129a8866137ed565b926129b2876131c1565b935b8186821611612a0a575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd90806040810161299a565b8085612a2986617fff8f95871c1694858852601b8c52872054166131c1565b1015612a425790612a3b8392826139fb565b90506129b4565b506129be565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061299a95601a91612a83613480565b835252205416612ac0575b612a978461340b565b612aa08361314c565b516001600160a01b03928316815292909116602083015281906040820190565b612ac984613224565b612a8e565b505050505061299a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b97929150612b1385949796956137b6565b97612b1d856131c1565b97612b278a61339c565b8460165416905b858116828111612be05782811015612bc4575080612b4e612b549261272f565b9061374a565b9b909b5b8b1115612b7757612b69908c61396c565b612b728b61339c565b612b2e565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979150806040810161299a565b849c919c5260188352612bdb8588862054166131c1565b612b58565b5050505050505061299a91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197945061297a565b9060018060a01b039283831691600093838552602094601a865261ffff96604095888784205416613016578083526017885288878420541615613005578415612e9f5750612c64836137b6565b97612c6e846131c1565b985b6001808383161115612e905781617fff911c169081855260188a528a612c9a858b882054166131c1565b1115612caf57612caa908261396c565b612c70565b505091939597509193955b816019541615612e8657612ccc61379a565b6001918285526018825283898620541693612ce6856131c1565b95612cef6137a8565b848152601b808552828c8320541697612d07896131c1565b11612d5a57505098516001600160a01b0390961686525050505060208201929092529192507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197919050806040810161299a565b91939597509193959750612d6c613480565b83601954168015612e755780612d87612da3929896986138b3565b87612d9182613210565b1661ffff196019541617601955613812565b838252808552612db7838b842054166131c1565b9484809760028160195416925b612e02575b5050505050505050505061299a7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759394612a978461340b565b818116838111612e6f578e9080851115612e5457505080612e25612e2b9261272f565b906133b3565b9990995b891015612e4f57612e40908a6139fb565b612e498961339c565b87612dc4565b612dc9565b8752858552862054909990612e6a9088166131c1565b612e2f565b50612dc9565b8a516340d9b01160e01b8152600490fd5b5050505050509050565b50509193959750919395612cba565b7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b929450612ed388949996989297996135db565b8851908152a18260195416928315948515612ef2575050505050509050565b612efa6137a8565b600193848152601b808552828a8320541696612f15886131c1565b98612e755780612d87612f2a929896986138b3565b838252808552612f3e838b842054166131c1565b9484809760028160195416925b612f98575b50505050505050505050612f897f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b0390a180388080808080612e86565b818116838111612fff578e9080851115612fe457505080612e25612fbb9261272f565b9990995b891015612fdf57612fd0908a6139fb565b612fd98961339c565b87612f4b565b612f50565b8752858552862054909990612ffa9088166131c1565b612fbf565b50612f50565b8651632a55ca5360e01b8152600490fd5b84969892949793959715613111575061fffe9193613033866137ed565b9361303d876131c1565b9480966001958692831b168160195416925b6130a3575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd919050806040810161299a565b81811683811161310b578d90848110156130ef57505080612e256130c69261272f565b9890985b8810156130ea576130db90896139fb565b6130e48861339c565b8661304f565b613054565b8652601b85528520549098906131069087166131c1565b6130ca565b50613054565b949150506131459194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613224565b51908152a1565b61217d906131bb61ffff91613164836019541661272f565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b82541617905560195416176019556131c1565b90613347565b60ff601354166003811015612039576001036131f2576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d1657565b61322d906137ed565b61ffff9081601954169161324183836139fb565b8061324b84613210565b1661ffff19601954161760195561326183613812565b808216809314613342579161fffe91600091808352601b9060209382855260018060a01b03926040926132a161329b8686862054166131c1565b87613347565b82528086526132b48484842054166131c1565b9585986001988997881b168160195416995b6132d8575b5050505050505050505050565b8181168a811161333c578a811015613321575080612e256132f89261272f565b9a909a5b89101561331c5761330d908b6139fb565b6133168a61339c565b876132c6565b6132cb565b859b919b528383526133378787872054166131c1565b6132fc565b506132cb565b505050565b9190915b60018061ffff831611156133965781617fff911c1690836133816000848152601b602052604060018060a01b03912054166131c1565b10156133965761339190826139fb565b61334b565b50509050565b60011b906201fffe61fffe831692168203611d1657565b91909161ffff92838216600052601b6020526133f660018060a01b036133df81604060002054166131c1565b958316600052601b602052604060002054166131c1565b908185106134045750509190565b9350919050565b61217d9061347a61ffff91613423836016541661272f565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b82541617905560165416176016556131c1565b906136fb565b61ffff80601654169081156135c9579060019061349f81831115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161353991908a61352a83613210565b16906016541617601655613854565b84825280865261354d8484842054166131c1565b95859860028160165416995b61356a575050505050505050505050565b8181168a811161333c578a8110156135ae575080612b4e61358a9261272f565b9a909a5b89111561331c5761359f908b61396c565b6135a88a61339c565b87613559565b859b919b528383526135c48787872054166131c1565b61358e565b6040516340d9b01160e01b8152600490fd5b6135e4906137b6565b9061ffff908160165416906135f9828561396c565b8261360383613210565b1661ffff19601654161760165561361982613854565b8284168092146136f55760009291929183835260189260209484865260018060a01b03916040916136576136518585852054166131c1565b8a6136fb565b815285875261366a8383832054166131c1565b956136748961339c565b978560165416985b8681168a81116136e7578a8110156136cc575080612b4e61369c9261272f565b9a909a5b8911156136bf576136b1908b61396c565b6136ba8a61339c565b61367c565b5050505050505092505050565b849b919b528282526136e28686862054166131c1565b6136a0565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133965781617fff911c16908361373560008481526018602052604060018060a01b03912054166131c1565b111561339657613745908261396c565b6136ff565b919061ffff808416600052601860205261378b60018060a01b0361377481604060002054166131c1565b9284166000526018602052604060002054166131c1565b93848211156134045750509190565b61ffff60165416156135c957565b61ffff60195416156135c957565b6001600160a01b031660009081526017602052604090205461ffff169081156137db57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137db57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561389d57565b634e487b7160e01b600052600160045260246000fd5b6138d661ffff8060195416926138cc8460011115613896565b1691821115613896565b601b60208181527f9fafca4c9c0d5c2cbf85f49fd8ab8212430ce78c2a0cb75b51e0f9c4f9ace00380546000858152604080822080546001600160a01b03948516808552601a8852838520805461ffff19908116909b1790559416808452918320805490981660019081179098559590945284546001600160a01b03199081169092179094559390925281549092169091179055565b61398761ffff8080601654169316936138cc84861115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a1661ffff8080601954169316936138cc84861115613896565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578136038313611b6457565b908060209392818452848401376000828201840152601f01601f1916010190565b613b05613afa613aec8380611d2c565b604085526040850190611d88565b916020810190611d2c565b91602081830391015281359160ff8316809303611b6457613b32604091613b429484526020810190613a8a565b9190928160208201520191613abb565b90565b6020808252613b548380611d2c565b6060918281850152613b6b60809283860190611d88565b613b82604096838101358888015287810190611d54565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bbd57505050505050505050505090565b909192939495969798999a82828203018752613bd98c85611d2c565b90813560de1983360301811215611b64578782528201918a90888e6001600160401b03613c50613c40613c2d613c24613c128b80611d2c565b60e080988c01526101208b0190613adc565b978a018a611d2c565b96603f1997888a830301868b0152613adc565b928d8901358d8901528801611d40565b169060a091828701528a8701359263ffffffff60e01b8416809403611b64578f95613c87613c979460c096878b01528a018a613a8a565b9290918985030190890152613abb565b940135610100840152013590811515809203611b64578a01529a8801999897966001019587019493929190613ba8565b814710613d29576000918291829182916001600160a01b03165af13d15613d24573d613cf281611b12565b90613d006040519283611af1565b8152600060203d92013e5b15613d1257565b604051630a12f52160e11b8152600490fd5b613d0b565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d575750505050565b613d6081611ebd565b90546003916001600160a01b039190831b1c811685821614613d86575050600101613d4a565b929350939060001991828101908111613e135790613db784613daa613dd694611ebd565b905490891b1c1691611ebd565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613dfe570192613de984611ebd565b81939154921b1b1916905555388080806120b6565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104e7576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613ebe8151809281855285808601910161211f565b601f01601f1916010190565b9190811015611ef45760051b81013590601e1981360301821215611b645701908135916001600160401b038311611b64576020018236038113611b64579190565b9190811015611ef45760051b0190565b600154811015611ef4576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613fb257505050505050505090565b909192939495856003613ff1839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01612089565b9a019401940192969594939190613fa0565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104e7576140448161403e845461204f565b84612142565b6000601f821160011461407d57819293946000926140725750508160011b916000199060031b1c1916179055565b0135905038806121d6565b601f198216948382526020918281209281905b8882106140c8575050836001959697106140ae57505050811b019055565b0135600019600384901b60f8161c19169055388080612227565b80600184968294958701358155019501920190614090565b906140ed60418214613896565b80600111611b64576141089136916000190190600101611b2d565b80516020909101206001600160a01b031690565b60ff60125460101c1661412b57565b60405163248c8efb60e11b8152600490fd5b906141529061414c8184614330565b8261279c565b60ff60125460081c16156141635750565b60018054600082815b8381106142e0575b50501561418057505050565b6001600160a01b0383166000908152601560205260409020828101546141d6949091600301604051926141b284611ad6565b83526020936141dd8585019260018060a01b03809516845260405198898092612089565b0388611af1565b60408401968752600160401b8110156104e75780866141fe92018755613f1b565b9290926107e6576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104e757614245836124b2875461204f565b81601f841160011461427e5750928293918392600094614273575b50501b916000199060031b1c1916179055565b015192503880614260565b919083601f1981168760005284600020946000905b888383106142c657505050106142ad57505050811b019055565b015160001960f88460031b161c19169055388080612227565b858701518855909601959485019487935090810190614293565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146143265701839061416c565b5090508238614174565b60018060a01b031660005260156020526143536002604060002001918254611d09565b9055565b9190604051928160208501526020845261437084611aa8565b6001600160401b03601c5416936040519461438a86611ad6565b60008652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516143be8161202f565b6143c78161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576143ff816143f6600185015461204f565b60018501612142565b6020601f82116001146144d1576144b8949282600080516020614fec83398151915297959360029361217d9c9d6000926144c6575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361447d82612267565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a1614330565b015190503880614434565b6001830160005260206000209960005b601f198416811061454457509260018361217d9b9c6002946144b89997600080516020614fec8339815191529b9997601f1981161061452b575b505050811b01600182015561444c565b015160001960f88460031b161c1916905538808061451b565b828201518c556001909b019a602092830192016144e1565b60ff6013541660038110156120395761082057565b601454600a54811015614582575b50565b61ffff601654166001600160401b03600c5416111561459e5750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806145db81613f56565b0390a160018060a01b03600e5416906145f76002548092611d09565b91803b15611b645760246000926040519485938492637903ab2760e11b845260048401525af18015614631571561457f5761217d90611ac3565b6040513d6000823e3d90fd5b61464561455c565b80156146ac573360009081526015602052604090206002015480156119c95781101561469b5760ff60125460081c16156146835761217d9033614711565b8061469161217d92336146be565b610e398133612842565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146ff576146eb916127ec565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472a84611aa8565b6001600160401b03601c5416936040519461474486611ad6565b60018652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516147788161202f565b6147818161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576147b0816143f6600185015461204f565b6020601f821160011461488257614869949282600080516020614fec83398151915297959360029361217d9c9d600092614877575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482e82612267565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a16146be565b0151905038806147e5565b6001830160005260206000209960005b601f19841681106148f557509260018361217d9b9c6002946148699997600080516020614fec8339815191529b9997601f198116106148dc575b505050811b0160018201556147fd565b015160001960f88460031b161c191690553880806148cc565b828201518c556001909b019a60209283019201614892565b60ff60125460081c166149fa575b3360009081526015602052604090206002015480156119c95761493d33614a07565b5060009033825260246020528160408120614958815461204f565b806149bd575b50505060ff60125460081c161561497a5761217d915033614711565b604061217d92338152600360205220548061499b575b5061469181336146be565b806149ab6149b7926002546127ec565b600255610e3933613d41565b38614990565b82601f82116001146149d5575050555b81388061495e565b90918082526149f3601f60208420940160051c840160018501611e92565b55556149cd565b614a0261455c565b61491b565b6000818152602660205260408120549091908015614aec5760001990808201818111614ad85760255490838201918211614ac457808203614a90575b5050506025548015614a7c57810190614a5b82611f0a565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aae614a9f611f7a93611f0a565b90549060031b1c928392611f0a565b9055845260266020526040842055388080614a43565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611ef45760209160051b010190565b9190918215613342576040908151906020938483018381106001600160401b038211176104e75784526000928390526002811015614c9c5780614bfd5750600b54614b4f916127ec565b8152602283528181208251808286829454938481520190855286852092855b88828210614be757505050614b8592500382611af1565b928351948515614bdf57858110614bdf5785900493825b868110614bac5750505050505050565b6001906001600160a01b03614bc18285614af1565b5116855260218452858520614bd7888254611d09565b905501614b9c565b505050505050565b8554845260019586019587955093019201614b6e565b846001859214600014614c4d57606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cbd83611b99565b93604094614ccd86519182611af1565b848152601f19614cdc86611b99565b0194602095368784013760005b818110614db357505060009461ffff8060165416600192839182945b614d62575b505050505060ff600e5460a01c1694858102958187041490151715611d16576064614d36950491614e2a565b9015614d40575050565b60068110156120395760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614dab5760009081526018855220548493929186918591614da191614d9b906001600160a01b03166131c1565b90611d09565b9b01169493614d05565b505098614d0a565b6001600160a01b0380614dc68387614af1565b51166000526017885261ffff89600020541615614e065790614df5600192614dee8388614af1565b51166131c1565b614dff8286614af1565b5201614ce9565b8890614e1460249387614af1565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f125782518514801590614f07575b614efa579392919085945b848610614e72575050505050501015614e6a57600090600590565b600190600090565b909192939495614e8c614e858884614af1565b5184614f1f565b50614e968161202f565b614ee9576001600160a01b0380614ead8a88614af1565b5116911603614ed957614ecd600191614ec68988614af1565b5190611d09565b96019493929190614e4f565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e44565b5050505050905090600290565b8151919060418303614f5057614f4992506020820151906060604084015193015160001a90614f5b565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fdf57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fd35780516001600160a01b03811615614fca57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122078a0ac48511a213e0eba4669384b0aa5256d166c6201d23a213b1f403cf446a764736f6c634300081300336080806040523461001657611ea9908161001c8239f35b600080fdfe60808060405260043610156200001457600080fd5b60003560e01c637be005d5146200002a57600080fd5b34620006035760031960203682011262000603576001600160401b036004351162000603576101a09060043536030112620006035760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620009025760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b0381169081900362000603576000546001600160a01b031603620008f057604051620000e78162000911565b6002815260005b60408110620008c15750600154604051906001600160a01b0316620001138262000911565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200084c57620001b7945491818110620007b7575b81811062000797575b81811062000777575b81811062000757575b81811062000737575b81811062000717575b818110620006f9575b10620006e3575b5003826200092d565b6040820152620001c78262000970565b52620001d38162000970565b50600254604051906001600160a01b0316620001ef8262000911565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b806007830110620007d7576200028b945491818110620007b75781811062000797578181106200077757818110620007575781811062000737578181106200071757818110620006f95710620006e3575003826200092d565b60408201526200029b8262000994565b52620002a78162000994565b5060405190816114a48101106001600160401b036114a484011117620006cd576114a4620009d0833960406114a4830181815282519181018290526060600583901b82018101936020019291600091015b828210620006355785856114a48201810360206114a484010152600435600401356042196004353603018112156200060357600435016101a082526001600160401b036200034960048301620009a5565b166101a08301526024810135602219823603018112156200060357016001600160401b0360048201351162000603576024810190600481013560051b36038213620006035760406101c084015260048101356101e08401526102008301919060005b600482013581106200060857506001600160a01b039150620003d49050600435602401620009ba565b166020830152604460043501356001811015620006035760408301526064600435013560608301526001600160401b0362000414608460043501620009a5565b1660808301526001600160401b036200043260a460043501620009a5565b1660a083015260c4600435013560ff8116809103620006035760c083015260e4600435013561ffff8116809103620006035760e0830152610104600435013561010083015261012460043501358060000b8091036200060357610120830152610144600435013560038110156200060357620004ae816200094f565b6101408301526101646004350135916002831015620006035761016081019290925282916101806001600160a01b03620004ee60043561018401620009ba565b1691015203906000f08015620005f75733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005e1576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b036200062489620009ba565b1681520195019392019050620003ab565b90919293605f196114a4870182030182528451602060806040606085019360018060a01b038151168652838101516200066e816200094f565b84870152015193606060408201528451809452019201906000905b808210620006a957505050602080600192960192019201909291620002f8565b82516001600160e01b03191684526020938401939092019160019091019062000689565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b602090604051620008d28162000911565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b03821117620006cd57604052565b90601f801991011681019081106001600160401b03821117620006cd57604052565b600311156200095a57565b634e487b7160e01b600052602160045260246000fd5b8051156200097e5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156200097e5760400190565b35906001600160401b03821682036200060357565b35906001600160a01b0382168203620006035756fe608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212204a1029b43006a00fb724cee38a6c5f8bef964c7c85590654dbea4b2c1c0a3b3464736f6c634300081300336080806040523461001657610b21908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba2646970667358221220c02181d14c65e4a760705046e486a45f505b7ca43c4ba8c435ba915f6b7c065f64736f6c634300081300336080806040523461001657615076908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014611b175750806310fd4261146119a0578063268119361461178d5780632e17de7814611760578063350a14bf1461172d5780633a4b66f1146116515780633f4ba83a146115d957806341c0e1b5146115485780634c860af6146114f45780634e71d92d146113605780635c975abb146113305780636170b16214610f8057806366783c9b14610e9f5780638456cb5914610e37578063b9ee2bb914610a38578063c7ebdaef146109f2578063cc2dc2b914610972578063d66d9e1914610927578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b85760008051602061502183398151915260018154146101a657806001839255610133611e23565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611bf9565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610923576101ec903690600401611c9a565b906024356001600160401b03811161091f5761020c903690600401611c9a565b916044356001600160401b03811161091b5761022c903690600401611c9a565b909461023661407b565b61023e611dde565b60ff601354166003811015610907576001036108d7578181036108c5578481036108c55760125460081c60ff161561052557865b818110610283575050505050505080f35b610297610291828888613ed6565b9061403f565b6001600160a01b036102b26102ad848689613f17565b611fda565b166001600160a01b03909116036105135761031c6102d46102ad838588613f17565b6102df838989613ed6565b6102ed85888d969496613f17565b35610308604051958693604060208601526060850191613ac7565b90604083015203601f198101845283611c27565b6001600160401b03601c541660405161033481611c0c565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612160565b61037081612160565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612180565b60018601612273565b602090601f8311600114610476579282600080516020614fe183398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361042182612398565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190613eb1565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614fe18339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9490929391865b868110610697575050505050506001600160401b03600c541610156106855761010061ff0019601254161760125560405190602091828101838252600154809152604082019060408160051b8401019460016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6926000905b838210610639575050505050807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c959392930390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af1801561062e5761061e57505080f35b61062790611bf9565b6101b85780f35b6040513d84823e3d90fd5b90919293968360036106766060600194603f198b82030187528c5481528c86808060a01b0391015416858201528160408201520160028c016121ba565b990192019201909392916105a7565b60405163031480b160e51b8152600490fd5b6106a5610291828689613ed6565b6001600160a01b039081806106be6102ad868d89613f17565b16911603610513576106dc6106d76102ad848b87613f17565b613133565b6108b3576107026106f16102ad848b87613f17565b6106fc84888b613ed6565b91613f62565b6107256107136102ad848b87613f17565b61071e848988613f17565b3590612889565b6107336102ad838a86613f17565b9061073f838887613f17565b359161076e61074f85898c613ed6565b6040519561075c87611c0c565b86528460208701941684523691611c63565b9160408401928352600154600160401b8110156104fd578060016107959201600155613f27565b94909461089d57518455600184019151166001600160601b0360a01b825416179055518051906001600160401b0382116104fd576107e3826107da6002860154612180565b60028601612273565b602090601f8311600114610829579180600292600196959460009261081e575b5050600019600383901b1c191690851b179101555b0161052c565b015190503880610803565b906002840160005260206000209160005b601f1985168110610885575092600292600196959492879383601f1981161061086c575b505050811b01910155610818565b015160001960f88460031b161c1916905538808061085e565b9192602060018192868501518155019401920161083a565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6109036108e2613e34565b60405163015538b160e01b8152602060048201529182916024830190613eb1565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b85760008051602061502183398151915260018154146101a65780600183925561095e611e23565b61096661407b565b61096e61490a565b5580f35b50346101b85760603660031901126101b8576001600160401b036004358181116109ee57366023820112156109ee576109b5903690602481600401359101611d09565b6044359182116109ee57366023830112156109ee576109e16109eb923690602481600401359101611d5f565b9060243590614ca5565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c541601908111610a24576109eb906123b0565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610923576001600160401b03600435116109235760806004356004019160043536030112610923576024356001600160401b0381116109ee57610a8e903690600401611c9a565b91906044356001600160401b038111610e3357610aaf903690600401611c9a565b91610ab8611e23565b60055494600b5495610aca8782611e4e565b60246004350135141580610e23575b610e115760405190610b116020830183610af38a83611f29565b0393610b07601f1995868101835282611c27565b5190209882611e4e565b6004356024013503610d0e57505091610b34610b3c92610b429697943691611d09565b933691611d5f565b91614ca5565b602460043501358252816020526040822090803560421960043536030181121561091f576004350191600483016001600160401b03610b8082611f7a565b16936001600160401b03199485845416178355610ba66001926024848601930190611f8e565b91906001600160401b038311610cfa57600160401b8311610cfa578154838355808410610cdf575b509087959493929190865260208620865b838110610cb8575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610c1b86611f7a565b16908254161790556024600435013582526022602052610c3f6040832033906120db565b5060043560240135600555600e546001600160a01b0316803b156109ee576040516347dc9b4f60e01b81529183918391829084908290610c829060048301611f29565b03925af1801561062e57610ca4575b5050610c9f6109eb91611f7a565b6123b0565b610cad90611bf9565b610923578138610c91565b84959697506020610ccc8495969394611fda565b848301558a989796959401929101610bdf565b82895260208920610cf4918101908501611fc3565b38610bce565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610d2657505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610df0575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610dc5915082611c27565b51902014610dd05780f35b6024600435013581526022602052610dec6040822033906120db565b5080f35b82546001600160a01b03168552889550602090940193918101918101610d84565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610ad9565b8480fd5b50346101b857806003193601126101b857610e50611dde565b610e58611e23565b600080516020615001833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101b85760203660031901126101b85760043560008051602061502183398151915260018154146101a657600181558115610f6e5760ff60125460081c16610f5c57338352600360205281604084205410610f4a5761096e8392338452600360205260408420610f1282825461291d565b9055610f208160025461291d565b6002553384526003602052604084205415610f3c575b33613cd3565b610f4533613d4d565b610f36565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116109235736602382011215610923576001600160401b038160040135116109235736602482600401358301011161092357600160008051602061502183398151915254146101a657600160008051602061502183398151915255610ffc611e23565b61100461407b565b60ff60125460081c1680611323575b3415611311573360009081526015602052604090206002015461129c57604182600401350361128a57336001600160a01b0361105660048501356024860161403f565b160361051357611099578060246110739260040135910133613f62565b61107d343361409c565b6110856144d0565b806000805160206150218339815191525580f35b6110ab36826004013560248401611c63565b6001600160401b03601c541690604051906110c582611c0c565b600282526020820190815233604083015282600052601d60205260406000209082516110f081612160565b6110f981612160565b60ff80198454169116178255518051906001600160401b0382116104fd576111288261039f6001860154612180565b602090601f8311600114611202579282600080516020614fe18339815191529795936002936111df98966000926111f7575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036111a382612398565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613ac7565b9060608301520390a16111f234336142b6565b611085565b01519050388061115a565b906001840160005260206000209160005b601f19851681106112725750836002936111df989693600193600080516020614fe18339815191529b9997601f19811610611259575b505050811b016001820155611172565b015160001960f88460031b161c19169055388080611249565b91926020600181928685015181550194019201611213565b6040516318dca5e960e21b8152600490fd5b6109036040516112ab81611c0c565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b604051635a78c58160e11b8152600490fd5b61132b6144bb565b611013565b50346101b857806003193601126101b857602060ff60008051602061500183398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020615021833981519152828154146101a657828155611396611e23565b336000908152601f602052604090209283549061ffff908183169283156114e257829060101c16918391808795818a01915b61145c575b5050508661143e937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611445575b6114268133613cd3565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561141c565b9091939483811696828810156114d9578760005260208091858252604060002060405161148881611bde565b898254928383520154938491015243106114ce57859493889688946114af86958a95611e4e565b9c600052526000826040822082815501550116966000190116946113c8565b9850505094936113cd565b965094936113cd565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561092357611515611e23565b600e546001600160a01b03163303611536576109eb90602435600435614b02565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b85761156161407b565b61ffff6115778160195416826016541690612873565b166115c7576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af1801561062e5761061e5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b8576115f2611dde565b600080516020615001833981519152805460ff81161561163f5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b857611665611e23565b61166d61407b565b6116756144bb565b34156113115733600090815260156020526040902060020154156116bc5760125460081c60ff166116b2576116aa343361409c565b6109eb6144d0565b6109eb34336142b6565b6109036040516116cb81611c0c565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b50346101b85760203660031901126101b8576004356001600160401b038116810361175b576109eb906123b0565b600080fd5b50346101b85760203660031901126101b85761177a611e23565b61178261407b565b6109eb60043561463a565b50346101b857600319606036820112610923576004356001600160401b039182821161091f5760608260040191833603011261091f57602435838111610e33576117db903690600401611c9a565b919060443585811161199c576117f5903690600401611c9a565b916024860135966006549687891061195157604401906118158287611f8e565b9190506009541680911161198a5761182d8287611f8e565b9050141580611963575b611951576118459085611f8e565b90501561193f5787946040516020810190611872816118648985613b51565b03601f198101835282611c27565b5190209688036118a3575050505050506007541461188e575080f35b81526023602052610dec6040822033906120db565b6118bd9392610b3488969893610b3c939a989a3691611d09565b8060206040516118cc81611bde565b848152015281600655600755825260236020526118ed6040832033906120db565b50600e546001600160a01b031690813b156101a257829161192491604051948580948193630bed761560e01b835260048301613b51565b03925af1801561062e57611936575080f35b6109eb90611bf9565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156119765788061515611837565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b03916004358381116109ee57366023820112156109ee576119e6903690602481600401359101611c63565b926119ef611e23565b3383526017825261ffff60408420541615611aff57835115611aed573383526024825260408320918451918211611ad957611a3482611a2e8554612180565b85612273565b80601f8311600114611a755750839482939492611a6a575b50508160011b916000199060031b1c19161790555b610dec33612072565b015190503880611a4c565b90601f198316958486528286209286905b888210611ac157505083600195969710611aa8575b505050811b019055611a61565b015160001960f88460031b161c19169055388080611a9b565b80600185968294968601518155019501930190611a86565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610923573415611bcf575060ff60125460081c16610f5c573381526003602052604081205415611b76575b338152600360205260408120611b62348254611e4e565b9055611b7034600254611e4e565b60025580f35b600454600160401b811015611bbb57611b98816001611bb69301600455611fee565b81546001600160a01b0360039290921b91821b19163390911b179055565b611b4b565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611c6f82611c48565b91611c7d6040519384611c27565b82948184528183011161175b578281602093846000960137010152565b9181601f8401121561175b578235916001600160401b03831161175b576020808501948460051b01011161175b57565b35906001600160401b038216820361175b57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b038216820361175b57565b9291611d1482611cde565b91611d226040519384611c27565b829481845260208094019160051b810192831161175b57905b828210611d485750505050565b838091611d5484611cf5565b815201910190611d3b565b92919092611d6c84611cde565b91611d7a6040519384611c27565b829480845260208094019060051b83019282841161175b5780915b848310611da457505050505050565b82356001600160401b03811161175b57820184601f8201121561175b578691611dd38683858095359101611c63565b815201920191611d95565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611e1157565b6040516330cd747160e01b8152600490fd5b60ff6000805160206150018339815191525416611e3c57565b60405163d93c066560e01b8152600490fd5b91908201809211611e5b57565b634e487b7160e01b600052601160045260246000fd5b9035603e198236030181121561175b570190565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b578160051b3603831361175b57565b60408201916001600160401b03611ecf83611cca565b1681526060611ee360209384810190611e85565b839195604086839601525201929160005b828110611f02575050505090565b909192938280600192838060a01b03611f1a89611cf5565b16815201950193929101611ef4565b6020815260806001600160401b03611f736060611f59611f498780611e71565b85602088015260a0870190611eb9565b956020810135604087015260408101358287015201611cca565b1691015290565b356001600160401b038116810361175b5790565b903590601e198136030182121561175b57018035906001600160401b03821161175b57602001918160051b3603831361175b57565b818110611fce575050565b60008155600101611fc3565b356001600160a01b038116810361175b5790565b6004548110156120255760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b6025548110156120255760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b6000818152602660205260408120546120d657602554600160401b811015611bbb5790826120c26120ab8460016040960160255561203b565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461215a57845494600160401b861015612146576001860180825586101561213257836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561216a57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156121b0575b602083101461219a57565b634e487b7160e01b600052602260045260246000fd5b91607f169161218f565b90600092918054916121cb83612180565b91828252600193848116908160001461222d57506001146121ed575b50505050565b90919394506000526020928360002092846000945b8386106122195750505050010190388080806121e7565b805485870183015294019385908201612202565b9294505050602093945060ff191683830152151560051b010190388080806121e7565b60005b8381106122635750506000910152565b8181015183820152602001612253565b9190601f811161228257505050565b6122ae926000526020600020906020601f840160051c830193106122b0575b601f0160051c0190611fc3565b565b90915081906122a1565b90808214612394576122cc8154612180565b906001600160401b0382116104fd5781906122f1826122eb8654612180565b86612273565b600090601f83116001146123285760009261231d575b50508160011b916000199060031b1c1916179055565b015490503880612307565b81526020808220858352818320935090601f1985169083905b82821061237b575050908460019594939210612362575b505050811b019055565b015460001960f88460031b161c19169055388080612358565b8495819295850154815560018091019601940190612341565b5050565b9060016001600160401b0380931601918211611e5b57565b601c546001600160401b03828116929080831684106123db5760405163040aaa0560e11b8152600490fd5b808360401c1684106121e75780604093841c165b848282161115612456575050916020916124297f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612398565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612474826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff1661249981612160565b80850361250b57505060036124ca60016124d094959697019260018060a01b03166000526015602052604060002090565b016122ba565b6124ed816001600160401b0316600052601d602052604060002090565b9160009081845560019361250285820161292a565b015501166123ef565b9091945061251881612160565b6003918183036126b657505087519361254085612539816001809a016121ba565b0386611c27565b84518501916020928a8785830192031261175b578387015189811161175b5787019681603f8901121561175b5787858d9901519261258961258085611c48565b9a519a8b611c27565b838a528d848301011161175b578c926125a79184888c019101612250565b015192816125c78460018060a01b03166000526015602052604060002090565b01918751918a83116126a1578a986125e9846125e38754612180565b87612273565b81601f851160011461262e575061261e9798999a8493928492600095612623575b50501b92600019911b1c1916179055612889565b6124d0565b01519350388061260a565b91601f9b9493919b1984169b866000528c84600020946000915b82106126865750508461261e9a9b9c9d1061266c575b50505050811b019055612889565b01519060f884600019921b161c191690553880808061265e565b8383015186558f9d509487019492830192908101908e612648565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936126d2856125398160018095016121ba565b6020808680518101031261175b5781818c970151956126f081612160565b036128155784906127018285612973565b601e5461270e9043611e4e565b9287519061271b82611bde565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061275e91612873565b169c60009d8e5282870188528d20925183555191015561277d90612860565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b156109ee578291602483928a5195869384926345f5448560e01b845260048401525af190811561280a575090849392916127fb575b506124d0565b61280490611bf9565b386127f5565b8751903d90823e3d90fd5b50508293509161282591926128cd565b600e541690813b1561175b578651916316989f6f60e21b83528260048160009485945af190811561280a575090849392916127fb57506124d0565b90600161ffff80931601918211611e5b57565b91909161ffff80809416911601918211611e5b57565b9060018060a01b0382166000526015602052604060002081815491558181146000146128b457505050565b8111156128c4576122ae91612a02565b6122ae91612d48565b906122ae9161291560018060a01b038216928360005260156020526128fa81600160406000200154611e4e565b93600052601560205283600160406000200155601454611e4e565b601455612a02565b91908203918211611e5b57565b6129348154612180565b908161293e575050565b81601f60009311600114612950575055565b90808391825261296f601f60208420940160051c840160018501611fc3565b5555565b906129e06129e89260018060a01b03811690600082815260156020526129a085600160408420015461291d565b92815260156020526040812060028101848154811590816129f9575b50156129ed575090826003926129db948355816001840155550161292a565b612d48565b60145461291d565b601455565b92505060010155612d48565b905015386129bc565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612c33578360135460081c16846016541610612bff57612a47613855565b60019283825260188652828a8320541688612a6182613133565b10612b7957508152601a8552838982205416612ad0575050505050612acb7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649394612aab836130be565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b612ad9866138a8565b92612ae387613133565b935b8186821611612b3b575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd908060408101612acb565b8085612b5a86617fff8f95871c1694858852601b8c5287205416613133565b1015612b735790612b6c839282613a07565b9050612ae5565b50612aef565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7598999250612acb95601a91612bb461354d565b835252205416612bf1575b612bc8846134d8565b612bd1836130be565b516001600160a01b03928316815292909116602083015281906040820190565b612bfa846132fd565b612bbf565b5050505050612acb7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394612aab836134d8565b97929150612c448594979695613871565b97612c4e85613133565b97612c588a613469565b8460165416905b858116828111612d115782811015612cf5575080612c7f612c8592612860565b90613805565b9b909b5b8b1115612ca857612c9a908c61396e565b612ca38b613469565b612c5f565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019791508060408101612acb565b849c919c5260188352612d0c858886205416613133565b612c89565b50505050505050612acb91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612aab565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612f82578082526017835287868320541615612f71578415612ec95750612d9583613871565b97612d9f84613133565b985b6001808a83161115612eba5781617fff911c1690818452601885528a612dcb848a87205416613133565b1115612de057612ddb908261396e565b612da1565b505091939597509193955b6019541615612eb257612dfc613855565b60018252601883528581818420541692601b612e1785613133565b95612e20613863565b600183525220541691612e3283613133565b11612e7957505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197908060408101612acb565b91509150612acb7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612eaa61354d565b612bbf613196565b505050505050565b50509193959750919395612deb565b829450612efd7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799613696565b8651908152a160195416612f115750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612f3f613863565b6001835252205416612f65612f5382613133565b92612f5c613196565b612aab836134d8565b0390a1388080806121e7565b8551632a55ca5360e01b8152600490fd5b84969792939598919415613083575061fffe9193612f9f866138a8565b93612fa987613133565b9480966001958692831b168160195416925b61300f575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9190508060408101612acb565b81811683811161307d578d90848110156130615750508061303261303892612860565b90613480565b9890985b88101561305c5761304d9089613a07565b61305688613469565b86612fbb565b612fc0565b8652601b8552852054909890613078908716613133565b61303c565b50612fc0565b949150506130b79194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506132fd565b51908152a1565b6122ae9061312d61ffff916130d68360195416612860565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613133565b90613414565b60ff60135416600381101561216a57600103613164576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611e5b57565b61ffff80601954169081156132eb57906001906131b581831115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161324f91908a61324083613182565b169060195416176019556138cd565b848252808652613263848484205416613133565b95859860028160195416995b613281575b5050505050505050505050565b8181168a81116132e5578a8110156132ca5750806130326132a192612860565b9a909a5b8910156132c5576132b6908b613a07565b6132bf8a613469565b8761326f565b613274565b859b919b528383526132e0878787205416613133565b6132a5565b50613274565b6040516340d9b01160e01b8152600490fd5b613306906138a8565b61ffff9081601954169161331a8383613a07565b8061332484613182565b1661ffff19601954161760195561333a836138cd565b80821680931461340f579161fffe91600091808352601b9060209382855260018060a01b039260409261337a613374868686205416613133565b87613414565b825280865261338d848484205416613133565b9585986001988997881b168160195416995b6133b0575050505050505050505050565b8181168a81116132e5578a8110156133f45750806130326133d092612860565b9a909a5b8910156132c5576133e5908b613a07565b6133ee8a613469565b8761339f565b859b919b5283835261340a878787205416613133565b6133d4565b505050565b9190915b60018061ffff831611156134635781617fff911c16908361344e6000848152601b602052604060018060a01b0391205416613133565b10156134635761345e9082613a07565b613418565b50509050565b60011b906201fffe61fffe831692168203611e5b57565b91909161ffff92838216600052601b6020526134c360018060a01b036134ac8160406000205416613133565b958316600052601b60205260406000205416613133565b908185106134d15750509190565b9350919050565b6122ae9061354761ffff916134f08360165416612860565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613133565b906137b6565b61ffff80601654169081156132eb579060019061356c81831115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161360691908a6135f783613182565b1690601654161760165561390f565b84825280865261361a848484205416613133565b95859860028160165416995b613637575050505050505050505050565b8181168a81116132e5578a81101561367b575080612c7f61365792612860565b9a909a5b8911156132c55761366c908b61396e565b6136758a613469565b87613626565b859b919b52838352613691878787205416613133565b61365b565b61369f90613871565b9061ffff908160165416906136b4828561396e565b826136be83613182565b1661ffff1960165416176016556136d48261390f565b8284168092146137b05760009291929183835260189260209484865260018060a01b039160409161371261370c858585205416613133565b8a6137b6565b8152858752613725838383205416613133565b9561372f89613469565b978560165416985b8681168a81116137a2578a811015613787575080612c7f61375792612860565b9a909a5b89111561377a5761376c908b61396e565b6137758a613469565b613737565b5050505050505092505050565b849b919b5282825261379d868686205416613133565b61375b565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156134635781617fff911c1690836137f060008481526018602052604060018060a01b0391205416613133565b111561346357613800908261396e565b6137ba565b919061ffff808416600052601860205261384660018060a01b0361382f8160406000205416613133565b928416600052601860205260406000205416613133565b93848211156134d15750509190565b61ffff60165416156132eb57565b61ffff60195416156132eb57565b6001600160a01b031660009081526017602052604090205461ffff1690811561389657565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff1690811561389657565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561395857565b634e487b7160e01b600052600160045260246000fd5b61399361ffff80806016541693169361398984861115613951565b1691821115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a2261ffff80806019541693169361398984861115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b57813603831361175b57565b908060209392818452848401376000828201840152601f01601f1916010190565b613b11613b06613af88380611e71565b604085526040850190611eb9565b916020810190611e71565b91602081830391015281359160ff831680930361175b57613b3e604091613b4e9484526020810190613a96565b9190928160208201520191613ac7565b90565b6020808252613b608380611e71565b6060918281850152613b7760809283860190611eb9565b613b8e604096838101358888015287810190611e85565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bc957505050505050505050505090565b909192939495969798999a82828203018752613be58c85611e71565b90813560de198336030181121561175b578782528201918a90888e6001600160401b03613c5c613c4c613c39613c30613c1e8b80611e71565b60e080988c01526101208b0190613ae8565b978a018a611e71565b96603f1997888a830301868b0152613ae8565b928d8901358d8901528801611cca565b169060a091828701528a8701359263ffffffff60e01b841680940361175b578f95613c93613ca39460c096878b01528a018a613a96565b9290918985030190890152613ac7565b94013561010084015201359081151580920361175b578a01529a8801999897966001019587019493929190613bb4565b814710613d35576000918291829182916001600160a01b03165af13d15613d30573d613cfe81611c48565b90613d0c6040519283611c27565b8152600060203d92013e5b15613d1e57565b604051630a12f52160e11b8152600490fd5b613d17565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d635750505050565b613d6c81611fee565b90546003916001600160a01b039190831b1c811685821614613d92575050600101613d56565b929350939060001991828101908111613e1f5790613dc384613db6613de294611fee565b905490891b1c1691611fee565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613e0a570192613df584611fee565b81939154921b1b1916905555388080806121e7565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613eca81518092818552858086019101612250565b601f01601f1916010190565b91908110156120255760051b81013590601e198136030182121561175b5701908135916001600160401b03831161175b57602001823603811361175b579190565b91908110156120255760051b0190565b600154811015612025576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd57613fa381613f9d8454612180565b84612273565b6000601f8211600114613fdc5781929394600092613fd15750508160011b916000199060031b1c1916179055565b013590503880612307565b601f198216948382526020918281209281905b8882106140275750508360019596971061400d57505050811b019055565b0135600019600384901b60f8161c19169055388080612358565b80600184968294958701358155019501920190613fef565b9061404c60418214613951565b8060011161175b576140679136916000190190600101611c63565b80516020909101206001600160a01b031690565b60ff60125460101c1661408a57565b60405163248c8efb60e11b8152600490fd5b906140b1906140ab818461428f565b826128cd565b60ff60125460081c16156140c25750565b60018054600082815b83811061423f575b5050156140df57505050565b6001600160a01b0383166000908152601560205260409020828101546141359490916003016040519261411184611c0c565b835260209361413c8585019260018060a01b038095168452604051988980926121ba565b0388611c27565b60408401968752600160401b8110156104fd57808661415d92018755613f27565b92909261089d576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576141a4836125e38754612180565b81601f84116001146141dd57509282939183926000946141d2575b50501b916000199060031b1c1916179055565b0151925038806141bf565b919083601f1981168760005284600020946000905b88838310614225575050501061420c57505050811b019055565b015160001960f88460031b161c19169055388080612358565b8587015188559096019594850194879350908101906141f2565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614614285570183906140cb565b50905082386140d3565b60018060a01b031660005260156020526142b26002604060002001918254611e4e565b9055565b919060405192816020850152602084526142cf84611bde565b6001600160401b03601c541693604051946142e986611c0c565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161431d81612160565b61432681612160565b60ff80198a54169116178855519687516001600160401b0381116104fd5761435e816143556001850154612180565b60018501612273565b6020601f821160011461443057614417949282600080516020614fe18339815191529795936002936122ae9c9d600092614425575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036143dc82612398565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a161428f565b015190503880614393565b6001830160005260206000209960005b601f19841681106144a35750926001836122ae9b9c6002946144179997600080516020614fe18339815191529b9997601f1981161061448a575b505050811b0160018201556143ab565b015160001960f88460031b161c1916905538808061447a565b828201518c556001909b019a60209283019201614440565b60ff60135416600381101561216a576108d757565b601454600a548110156144e1575b50565b61ffff601654166001600160401b03600c541611156144fd5750565b61010061ff00196012541617601255604080516020908181018282526001805480925284830190858360051b850101926000958287527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69387905b898483106145ec575050505050505090807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593920390a160018060a01b03600e54166145a66002548095611e4e565b93813b156109ee57906024839285519687938492637903ab2760e11b845260048401525af19182156145e2575050156144de576122ae90611bf9565b51903d90823e3d90fd5b92600361462a87989995839798949596603f198d82030187528b54815260018060a01b03868d01541685820152606080928201520160028b016121ba565b9801920192019094939291614558565b6146426144bb565b80156146a957336000908152601560205260409020600201548015611aff578110156146985760ff60125460081c1615614680576122ae903361470e565b8061468e6122ae92336146bb565b610f368133612973565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146fc576146e89161291d565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472784611bde565b6001600160401b03601c5416936040519461474186611c0c565b60018652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161477581612160565b61477e81612160565b60ff80198a54169116178855519687516001600160401b0381116104fd576147ad816143556001850154612180565b6020601f821160011461487f57614866949282600080516020614fe18339815191529795936002936122ae9c9d600092614874575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482b82612398565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a16146bb565b0151905038806147e2565b6001830160005260206000209960005b601f19841681106148f25750926001836122ae9b9c6002946148669997600080516020614fe18339815191529b9997601f198116106148d9575b505050811b0160018201556147fa565b015160001960f88460031b161c191690553880806148c9565b828201518c556001909b019a6020928301920161488f565b60ff60125460081c166149f7575b336000908152601560205260409020600201548015611aff5761493a33614a04565b50600090338252602460205281604081206149558154612180565b806149ba575b50505060ff60125460081c1615614977576122ae91503361470e565b60406122ae923381526003602052205480614998575b5061468e81336146bb565b806149a86149b49260025461291d565b600255610f3633613d4d565b3861498d565b82601f82116001146149d2575050555b81388061495b565b90918082526149f0601f60208420940160051c840160018501611fc3565b55556149ca565b6149ff6144bb565b614918565b6000818152602660205260408120549091908015614ae95760001990808201818111614ad55760255490838201918211614ac157808203614a8d575b5050506025548015614a7957810190614a588261203b565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aab614a9c6120ab9361203b565b90549060031b1c92839261203b565b9055845260266020526040842055388080614a40565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b80518210156120255760209160051b010190565b919091821561340f576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614c915780614bf25750600b54614b4c9161291d565b8152602283528181208251808286829454938481520190855286852092855b88828210614bdc57505050614b8292500382611c27565b928351948515612eb257858110612eb25785900493825b868110614ba95750505050505050565b6001906001600160a01b03614bbe8285614aee565b5116855260218452858520614bd4888254611e4e565b905501614b99565b8554845260019586019587955093019201614b6b565b846001859214600014614c4257606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cb283611cde565b93604094614cc286519182611c27565b848152601f19614cd186611cde565b0194602095368784013760005b818110614da857505060009461ffff8060165416600192839182945b614d57575b505050505060ff600e5460a01c1694858102958187041490151715611e5b576064614d2b950491614e1f565b9015614d35575050565b600681101561216a5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614da05760009081526018855220548493929186918591614d9691614d90906001600160a01b0316613133565b90611e4e565b9b01169493614cfa565b505098614cff565b6001600160a01b0380614dbb8387614aee565b51166000526017885261ffff89600020541615614dfb5790614dea600192614de38388614aee565b5116613133565b614df48286614aee565b5201614cde565b8890614e0960249387614aee565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f075782518514801590614efc575b614eef579392919085945b848610614e67575050505050501015614e5f57600090600590565b600190600090565b909192939495614e81614e7a8884614aee565b5184614f14565b50614e8b81612160565b614ede576001600160a01b0380614ea28a88614aee565b5116911603614ece57614ec2600191614ebb8988614aee565b5190611e4e565b96019493929190614e44565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e39565b5050505050905090600290565b8151919060418303614f4557614f3e92506020820151906060604084015193015160001a90614f50565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fd457926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fc85780516001600160a01b03811615614fbf57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212208365497f3930f76c2e44a97011eac04d4fdac27c51258885a3dbc3b6ce4a273664736f6c63430008130033a264697066735822122006739a8771b16ea6d82ac437ffc1850d16cc03f85e86cc522084a712fd90678e64736f6c63430008130033","sourceMap":"8662:23266:88:-:0;;;;;;;1594:4:2;8662:23266:88;;;;1594:4:2;8662:23266:88;;;1594:4:2;8662:23266:88;3201:4:5;8662:23266:88;;;3201:4:5;8662:23266:88;;;;4159:55;;8662:23266;3201:4:5;4159:55:88;;8662:23266;;;;;;;;;;;1594:4:2;4159:15:88;8662:23266;4159:15;;:55;;;;;;;1594:4:2;4159:55:88;;;-1:-1:-1;;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;4128:86;8662:23266;;4128:86;8662:23266;;;;;;-1:-1:-1;8662:23266:88;;;;4128:86;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;;;;;;4261:53;;8662:23266;3201:4:5;4261:53:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;1594:4:2;4159:15:88;8662:23266;4159:15;;4261:53;;;;;;;1594:4:2;4261:53:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;4224:90;8662:23266;;4224:90;8662:23266;;;;;;;;;;;4224:90;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;4350:51:88;;8662:23266;3201:4:5;4350:51:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;4350:51;;;;;;;1594:4:2;4350:51:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;4324:77;8662:23266;;4324:77;8662:23266;;;;;;;;;;;4324:77;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;4437:53:88;;8662:23266;3201:4:5;4437:53:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;4437:53;;;;;;;1594:4:2;4437:53:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;4411:79;8662:23266;;4411:79;8662:23266;;;;;;;;;;;4411:79;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;7226:58:88;;8662:23266;3201:4:5;7226:58:88;;8662:23266;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;7226:58;;;;;;;1594:4:2;7226:58:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;7315:59:88;;8662:23266;3201:4:5;7315:59:88;;8662:23266;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;7315:59;;;;;;;1594:4:2;7315:59:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;7294:80;8662:23266;;7294:80;8662:23266;;;;;;;;;;;7294:80;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;7411:63:88;;8662:23266;3201:4:5;7411:63:88;;8662:23266;4128:86;8662:23266;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;7411:63;;;;;;;1594:4:2;7411:63:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;7384:90;8662:23266;;7384:90;8662:23266;;;;;;;;;;;7384:90;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;7504:51:88;;8662:23266;3201:4:5;7504:51:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;7504:51;;;;;;;1594:4:2;7504:51:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;7484:71;8662:23266;;7484:71;8662:23266;;;;;;;;;;;7484:71;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;7585:53:88;;8662:23266;3201:4:5;7585:53:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;7585:53;;;;;;;1594:4:2;7585:53:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;7565:73;8662:23266;;7565:73;8662:23266;;;;;;;;;;;7565:73;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5345:54:88;;8662:23266;3201:4:5;5345:54:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;5345:54;;;;;;;1594:4:2;5345:54:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5313:86;8662:23266;;5313:86;8662:23266;;;;;;;;;;;5313:86;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5441:54:88;;8662:23266;3201:4:5;5441:54:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;5441:54;;;;;;;1594:4:2;5441:54:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5409:86;8662:23266;;5409:86;8662:23266;;;;;;;;;;;5409:86;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5539:56:88;;8662:23266;3201:4:5;5539:56:88;;8662:23266;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;5539:56;;;;;;;1594:4:2;5539:56:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5505:90;8662:23266;;5505:90;8662:23266;;;;;;;;;;;5505:90;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5638:55:88;;8662:23266;3201:4:5;5638:55:88;;8662:23266;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;5638:55;;;;;;;1594:4:2;5638:55:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5605:88;8662:23266;;5605:88;8662:23266;;;;;;;;;;;5605:88;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5724:54:88;;8662:23266;3201:4:5;5724:54:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;5724:54;;;;;;;1594:4:2;5724:54:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5704:74;8662:23266;;5704:74;8662:23266;;;;;;;;;;;5704:74;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5809:55:88;;8662:23266;3201:4:5;5809:55:88;;8662:23266;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;5809:55;;;;;;;1594:4:2;5809:55:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5788:76;8662:23266;;5788:76;8662:23266;;;;;;;;;;;5788:76;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5897:57:88;;8662:23266;3201:4:5;5897:57:88;;8662:23266;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;4159:15;5897:57;;;;;;;1594:4:2;5897:57:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5874:80;8662:23266;;5874:80;8662:23266;;;;;;;;;;;5874:80;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;5984:51:88;;8662:23266;3201:4:5;5984:51:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;;;8662:23266:88;;;4159:15;5984:51;;;;;;;1594:4:2;5984:51:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;5964:71;8662:23266;;5964:71;8662:23266;;;;;;;;;;;5964:71;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;-1:-1:-1;;8662:23266:88;;-1:-1:-1;;;6064:53:88;;8662:23266;3201:4:5;6064:53:88;;8662:23266;;;;;;-1:-1:-1;;;8662:23266:88;;;;;-1:-1:-1;;;;8662:23266:88;;;4159:15;6064:53;;;;;;;1594:4:2;6064:53:88;;;8662:23266;-1:-1:-1;8662:23266:88;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;6045:72;8662:23266;;6045:72;8662:23266;;;;;;;;;;;6045:72;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;1594:4:2;8662:23266:88;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6045:72;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;3201:4:5;8662:23266:88;;1594:4:2;8662:23266:88;6064:53;;;;;;1594:4:2;6064:53:88;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;8662:23266;;;1594:4:2;8662:23266:88;;;;;;;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5964:71;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5984:51;;;;;;1594:4:2;5984:51:88;;;;;;:::i;:::-;;;;8662:23266;;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5874:80;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5897:57;;;;;;1594:4:2;5897:57:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5788:76;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5809:55;;;;;;1594:4:2;5809:55:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5704:74;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5724:54;;;;;;1594:4:2;5724:54:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5605:88;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5638:55;;;;;;1594:4:2;5638:55:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5505:90;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5539:56;;;;;;1594:4:2;5539:56:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5409:86;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5441:54;;;;;;1594:4:2;5441:54:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5313:86;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5345:54;;;;;;1594:4:2;5345:54:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7565:73;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7585:53;;;;;;1594:4:2;7585:53:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7484:71;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7504:51;;;;;;1594:4:2;7504:51:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7384:90;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7411:63;;;;;;1594:4:2;7411:63:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7294:80;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7315:59;;;;;;1594:4:2;7315:59:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7226:58;;;;;;1594:4:2;7226:58:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4411:79;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4437:53;;;;;;1594:4:2;4437:53:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:77;1594:4:2;8662:23266:88;;;;;;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4350:51;;;;;;1594:4:2;4350:51:88;;;;;;:::i;:::-;;;;8662:23266;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4224:90;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;4224:90;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4261:53;;;;;;1594:4:2;4261:53:88;;;;;;:::i;:::-;;;;8662:23266;;1594:4:2;8662:23266:88;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;;;;1594:4:2;8662:23266:88;;;;;;;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4128:86;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;8662:23266:88;;1594:4:2;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;4159:55;;;;;;1594:4:2;4159:55:88;;;;;;:::i;:::-;;;;8662:23266;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":99697,"length":20},{"start":105616,"length":20},{"start":110130,"length":20},{"start":117669,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":72017,"length":20},{"start":74198,"length":20},{"start":74772,"length":20},{"start":98574,"length":20},{"start":120673,"length":20}]},"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":63227,"length":20},{"start":63998,"length":20}]},"src/lib/LibStaking.sol":{"LibStaking":[{"start":128983,"length":20},{"start":160396,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":84235,"length":20},{"start":98212,"length":20},{"start":120175,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":18817,"length":20},{"start":18897,"length":20},{"start":18981,"length":20},{"start":19162,"length":20},{"start":19327,"length":20},{"start":38360,"length":20},{"start":39046,"length":20},{"start":48029,"length":20},{"start":62896,"length":20},{"start":70246,"length":20},{"start":70834,"length":20},{"start":71707,"length":20},{"start":73765,"length":20},{"start":74052,"length":20},{"start":74602,"length":20},{"start":77652,"length":20},{"start":80051,"length":20},{"start":80148,"length":20},{"start":81243,"length":20},{"start":83904,"length":20},{"start":84006,"length":20},{"start":84336,"length":20},{"start":84421,"length":20},{"start":84522,"length":20},{"start":84607,"length":20},{"start":86094,"length":20},{"start":86172,"length":20},{"start":86277,"length":20},{"start":86433,"length":20},{"start":86983,"length":20},{"start":87224,"length":20},{"start":87305,"length":20},{"start":92778,"length":20},{"start":97281,"length":20},{"start":97957,"length":20},{"start":103552,"length":20},{"start":103771,"length":20},{"start":103851,"length":20},{"start":104032,"length":20},{"start":104213,"length":20},{"start":117851,"length":20},{"start":119911,"length":20},{"start":127807,"length":20},{"start":153289,"length":20}]},"test/helpers/SelectorLibrary.sol":{"SelectorLibrary":[{"start":104,"length":20},{"start":304,"length":20},{"start":501,"length":20},{"start":700,"length":20},{"start":911,"length":20},{"start":1122,"length":20},{"start":1333,"length":20},{"start":1530,"length":20},{"start":1729,"length":20},{"start":1929,"length":20},{"start":2129,"length":20},{"start":2340,"length":20},{"start":2551,"length":20},{"start":2751,"length":20},{"start":2962,"length":20},{"start":3173,"length":20},{"start":3373,"length":20},{"start":3575,"length":20}]}}},"deployedBytecode":{"object":"0x60808060405260043610156200001457600080fd5b600090813560e01c9081630a9254e41462004252575080630d8d4acf1462003f145780631e3342941462003d2b5780631ed7831c1462003ca55780632d49aa1c1462003b8357806330dd2c451462003a6d57806337bdc99b14620038705780633e5e3c2314620037ea5780633f7286f414620037645780634d238c8e14620037065780635c2c2fed14620032c957806363323eb8146200329157806366d9a9a014620031da5780637b1837de1462002ecb57806385226c811462002d90578063871055571462002d59578063916a17c61462002ca2578063951759c914620029445780639b21108014620021d85780639c821dc61462001a8a578063a0aaa28514620016ce578063a9fb763c1462001628578063b5508aa914620014d9578063ba414fa614620014b0578063c33dd9d51462000b7d578063c69a04691462000b29578063d8d5271314620009a4578063dd7849741462000963578063e20c9f7114620008c3578063eb8df0521462000457578063fa7626d41462000433578063fbfb892714620003fa5763fc6c1f0214620001ae57600080fd5b34620003575760403660031901126200035757620001cb620047d4565b620001d562006a55565b90620001fb620001e58262006af3565b92600093620001f482620056cd565b52620056cd565b506040516200020a816200466c565b60018152602036818301376200022360243591620056cd565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15620003f65760405163c88a5e6d60e01b81526001600160a01b03918216600482015260016024820152838160448183875af18015620003eb57620003d5575b50604051906200028c826200466c565b438252836020830152823b15620003c6576040516303223eab60e11b815260ff60981b6004820152848160248183885af18015620003ca579085939291620003a8575b50603d546040516304465a5d60e21b81528351600482015260209093015160248401529192606092849260449284929091165af180156200039d5762000369575b50803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b6200034d8291620046a4565b6200035757808280f35b80fd5b6040513d84823e3d90fd5b5080fd5b6200038e9060603d811162000395575b62000385818362004729565b81019062006aac565b5062000310565b503d62000379565b6040513d85823e3d90fd5b620003b79093919293620046a4565b620003c65790839138620002cf565b8380fd5b6040513d87823e3d90fd5b620003e390939193620046a4565b91386200027c565b6040513d86823e3d90fd5b8280fd5b5034620003575760603660031901126200035757620004306200041c620047a6565b62000426620047bd565b9060043562006e8c565b80f35b5034620003575780600319360112620003575760ff60209154166040519015158152f35b50346200035757600319606036820112620003655762000476620047d4565b6044356002811015620003c657602a54620004ae600091620004976200577b565b506038546001600160a01b0390811691166200714f565b9195939792505060018060a01b03603a54169560405193639d3070b560e01b85526020600486015260208580620004e9602482018d62004c3f565b03818b5afa948515620008b85786956200087e575b506001850185116200086a576001870187116200086a576004602062000528602435809662006a47565b9960405192838092632472942560e01b82525afa9081156200085f57879162000823575b5015620007eb57806200071957506039546001600160a01b031690620005729062006af3565b91813b15620007155790620005ae8693928a620005be6040519788968795869463018f44b760e41b865260406004870152604486019062004c3f565b9184830301602485015262004ccc565b03925af180156200039d57620006fd575b5090602092915b602a546200063f906200060a906001600160a01b0316620005f66200577b565b506038546001600160a01b0316906200714f565b9893505098905060018060a01b03603a54166040518080958194639d3070b560e01b8352866004840152602483019062004c3f565b03915afa928315620006f15792620006b1575b50600101036200067757620004309360016200067092011462006dc7565b1462006e07565b60405162461bcd60e51b8152602060048201526012602482015271756e6578706563746564206c656e6774687360701b6044820152606490fd5b9091506020813d602011620006e8575b81620006d06020938362004729565b81010312620006e3575190600162000652565b600080fd5b3d9150620006c1565b604051903d90823e3d90fd5b620007098391620046a4565b620003655738620005cf565b8580fd5b929897969594939260011462000739575b505060209394959650620005d6565b6039549293926001600160a01b031690620007549062006af3565b91813b15620003c65790620007918489819594620007a16040519e8f978896879563028bf0d560e11b875260606004880152606487019062004c3f565b9185830301602486015262004ccc565b90604483015203925af1968715620007de57602094959697620007cc575b879695949291926200072a565b620007d790620046a4565b38620007bf565b50604051903d90823e3d90fd5b60405162461bcd60e51b815260206004820152601060248201526f063726f73734d736746656520697320360841b6044820152606490fd5b90506020813d60201162000856575b81620008416020938362004729565b81010312620008525751386200054c565b8680fd5b3d915062000832565b6040513d89823e3d90fd5b634e487b7160e01b86526011600452602486fd5b9094506020813d602011620008af575b816200089d6020938362004729565b810103126200071557519338620004fe565b3d91506200088e565b6040513d88823e3d90fd5b50346200035757806003193601126200035757604051809182600c54808452602080940190600c84527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7935b858282106200094357505050620009299250038362004729565b6200093f60405192828493845283019062004a8e565b0390f35b85546001600160a01b03168452600195860195889550930192016200090f565b50346200035757602036600319011262000357576200093f6200099362000989620047d4565b620005f66200577b565b916040959395519586958662004c9c565b503462000357576040366003190112620003575780620009c3620047d4565b6024356001600160401b03811162000aec57620009e590369060040162004a41565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d803b1562000b245760405163ca669fa760e01b81526001600160a01b039283166004820181905290858160248183875af1908115620008b857869162000b0c575b5050813b1562000b0857849160448392604051948593849263c88a5e6d60e01b84526004840152670de0b6b3a764000160248401525af1908115620003eb57849162000af0575b5050602a5416803b1562000aec5762000ac68391670de0b6b3a7640000936040519485809481936330b858b160e11b835260206004840152602483019062004bb2565b03925af180156200035a5762000ad95750f35b62000ae490620046a4565b620003575780f35b5050fd5b62000afb90620046a4565b62000aec57823862000a83565b8480fd5b62000b1790620046a4565b62000b0857843862000a3c565b505050fd5b5034620003575760203660031901126200035757600435906001600160401b0382116200035757602062000b6b62000b653660048601620048e3565b620067f2565b6040516001600160a01b039091168152f35b503462000357576003196020368201126200036557600435906001600160401b038211620003f65760a090823603011262000365576040519060a082018281106001600160401b038211176200149a5760405262000bde81600401620047eb565b825262000bee60248201620047eb565b602083015262000c0160448201620047eb565b604083015260648101356001600160401b038111620003c65762000c2c906004369184010162004cf1565b60608301526084810135906001600160401b038211620003c657600462000c57923692010162004cf1565b608082015262000c666200596d565b9060405180610d308101106001600160401b03610d30830111176200148657610d306200b4fe823980610d308101039084f080156200039d57604051806108848101106001600160401b036108848301111762001472576108846200c22e8239806108848101039085f0908115620003eb5760405180611ec58101106001600160401b03611ec5830111176200117e57611ec56202207c823980611ec58101039086f0908115620003ca5760405180610b3d8101106001600160401b03610b3d830111176200145e57610b3d62023f41823980610b3d8101039087f0928315620008b8576040519062000d598262004688565b60018060a01b0316815286602082015260405180816020601e549283815201601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350926000905b806007830110620013e85762000e0494549181811062001266575b81811062001246575b81811062001226575b81811062001206575b818110620011e6575b818110620011c6575b818110620011a8575b1062001192575b50038262004729565b604082015262000e1486620056cd565b5262000e2085620056cd565b506040519062000e308262004688565b60018060a01b0316815285602082015260405180816020601d549283815201601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f926000905b806007830110620013725762000ed39454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262000ee385620056f1565b5262000eef84620056f1565b506040519062000eff8262004688565b60018060a01b0316815284602082015260405180816020601b549283815201601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1926000905b806007830110620012fc5762000fa29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262000fb28462005702565b5262000fbe8362005702565b506040519062000fce8262004688565b60018060a01b0316815283602082015260405180816020601c549283815201601c6000527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211926000905b8060078301106200128657620010719454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b6040820152620010818362005713565b526200108d8262005713565b506040519161111e90818401918483106001600160401b038411176200117e5791620010cf85949262001137946200a3e08739604083526040830190620059ba565b90602081830391015260018060a01b03825116815260018060a01b03602083015116602082015260018060a01b036040830151166040820152608062001125606084015160a0606085015260a084019062004acd565b92015190608081840391015262004acd565b039082f08015620007de5760405160209290916001600160a01b03169081907f8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc19080a28152f35b634e487b7160e01b86526041600452602486fd5b6001600160e01b03191681526020013862000dfb565b602083811b6001600160e01b03191685529093019260010162000df4565b604083901b6001600160e01b031916845260209093019260010162000deb565b606083901b6001600160e01b031916845260209093019260010162000de2565b608083901b6001600160e01b031916845260209093019260010162000dd9565b60a083901b6001600160e01b031916845260209093019260010162000dd0565b60c083901b6001600160e01b031916845260209093019260010162000dc7565b60e083901b6001600160e01b031916845260209093019260010162000dbe565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162001018565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000f49565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000e7a565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b166020850152828260a01b166040850152828260801b166060850152828260601b166080850152828260401b1660a0850152828260201b16908401521660e082015201940192018492939162000da3565b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526041600452602485fd5b634e487b7160e01b84526041600452602484fd5b634e487b7160e01b600052604160045260246000fd5b503462000357578060031936011262000357576020620014cf62004d77565b6040519015158152f35b50346200035757806003193601126200035757601054620014fa816200478e565b906200150a604051928362004729565b808252601083527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672928060208085015b8483106200155257604051806200093f888262004bd9565b604051849188549160019280841c9084811680156200161d575b8783108114620016095782845287949392918115620015eb5750600114620015af575b50620015a081600196038262004729565b8152019701920191956200153a565b8b8952838920955088905b808210620015d35750810183019450620015a06200158f565b865483830186015295850195879490910190620015ba565b60ff19168584015250151560051b810183019450620015a06200158f565b634e487b7160e01b8a52602260045260248afd5b91607f16916200156c565b503462000357576020366003190112620003575780806040516200164c816200466c565b601c81527f726577617264206d6574686f642063616c6c65642077697468202564000000006020820152604051620016ba81620016a360208201946309710a9d60e41b865260406024840152606483019062004bb2565b600435604483015203601f19810183528262004729565b51906a636f6e736f6c652e6c6f675afa5080f35b5034620003575760c03660031901126200035757620016ec620047d4565b6024908135916001831015620003c657620017066200474b565b916200171162004762565b926200171c620048b3565b604051926200172b84620046f1565b60008452604051936200173e856200466c565b607b8552602090818601526040519261509d938481016001600160401b03958282108783111762001a75579082916201cfdf833903906000f098891562001a405760018060a01b0398896001600160601b0360a01b9b168b602a541617602a5560405161154f808201908282108983111762001a60579082916201ba90833903906000f0801562001a40578a168b602c541617602c55604051610d30808201908282108983111762001a60579082916200b4fe833903906000f0801562001a40578a168b602d541617602d55604051610884808201908282108983111762001a60579082916200c22e833903906000f093841562001a405762001956976200198e889485938f8f908160ff9b168091602e541617602e556200185f6200596d565b9d8e83602a541660405190620018758262004688565b815260008682015262001887620052a8565b60408201526200189782620056cd565b52620018a381620056cd565b5083602c541660405190620018b88262004688565b8152600086820152620018ca62004e76565b6040820152620018da82620056f1565b52620018e681620056f1565b5083602d541660405190620018fb8262004688565b81526000868201526200190d620053b9565b60408201526200191d8262005702565b52620019298162005702565b5060405192620019398462004688565b83526000858401526200194b620054ca565b604084015262005713565b52620019628d62005713565b506200196d620058fa565b9a6040519e8f6200197e81620046d4565b5216908d015260408c01620057ba565b60443560608b01521660808901521660a08701521660c0850152606460e08501526402540be400610100850152600c6101208501526000610140850152610160840152604051936114a490818601928684109084111762001a4c575091849391620019ff9362008f3c8639620066fc565b03906000f0801562001a40571690818160295416176029558181602a541617602a558181602c541617602c558181602d541617602d55602e541617602e5580f35b6040513d6000823e3d90fd5b634e487b7160e01b60009081526041600452fd5b8b634e487b7160e01b60005260416004526000fd5b89634e487b7160e01b60005260416004526000fd5b5034620003575780600319360112620003575760405162001aab816200470d565b6003815260005b60608110620021be575060405163ffa1864960e01b928382526064938460048401526020916024737109709ecfa91a80626ff3989d68f67f5b1dd12d9484818381895afa80156200039d5783906200217f575b62001b11915062006af3565b62001b1c87620056cd565b5262001b2886620056cd565b5060405183815260c8600482015284818381895afa80156200039d57839062002140575b62001b58915062006af3565b62001b6387620056f1565b5262001b6f86620056f1565b506040519280845261012c93846004820152858184818a5afa8015620003eb57849062002101575b62001ba3915062006af3565b62001bae8862005702565b5262001bba8762005702565b506040519562001bca876200470d565b600387526060988936888a01376040519280845281600485015287848681865afa938415620008b8578694620020c2575b5062001c0789620056cd565b6001600160a01b03948516905260405181815260c8600482015288818781875afa9081156200085f57879162002085575b508462001c458b620056f1565b9116905260405181815287600482015288818781875afa9081156200085f57879162002048575b508462001c798b62005702565b911690526040519062001c8c826200470d565b600382528b368a8401376040519080825283600483015289828881885afa91821562001f7e57889262002009575b50843b1562001f3d5760405163c88a5e6d60e01b8082529287166004820152600188820181905299908981604481838b5af1801562001fa557908a9162001ff1575b505060405182815260c860048201528b818a818a5afa90811562001fa5578a9162001fb4575b50863b1562001fb05787604051918583521660048201528a898201528981604481838b5af1801562001fa557908a9162001f89575b5050604051918252600482015289818881885afa90811562001f7e57889162001f41575b50843b1562001f3d5785906040519283521660048201528786820152868160448183885af180156200085f5790879162001f25575b5050808262001dc362001dd793620056cd565b528262001dd082620056f1565b5262005702565b526040519262001de7846200466c565b4384528487850152813b1562000b085760405163ca669fa760e01b815260ff60981b60048201529185918391829084905af18015620003eb57918493918a9362001f05575b50603d546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af180156200035a5762001ee4575b50604080518181528651918101829052968796600583901b880182019695949085019390929188015b82821062001eaf57888803868a015288806200093f8a8a62004a8e565b9193975091848062001ecf83979899605f198d82030186528b5162004ccc565b99019201920188979695949293919362001e92565b62001efe90873d8911620003955762000385818362004729565b5062001e69565b62001f15919350939193620046a4565b620003f657829188913862001e2c565b62001f3090620046a4565b6200071557853862001db0565b8780fd5b90508981813d831162001f76575b62001f5b818362004729565b8101031262001f3d5762001f6f9062006a97565b3862001d7b565b503d62001f4f565b6040513d8a823e3d90fd5b62001f9490620046a4565b62001fa157883862001d57565b8880fd5b6040513d8c823e3d90fd5b8980fd5b90508b81813d831162001fe9575b62001fce818362004729565b8101031262001fb05762001fe29062006a97565b3862001d22565b503d62001fc2565b62001ffc90620046a4565b62001fa157883862001cfc565b9091508981813d831162002040575b62002024818362004729565b8101031262001f3d57620020389062006a97565b903862001cba565b503d62002018565b90508881813d83116200207d575b62002062818362004729565b810103126200085257620020769062006a97565b3862001c6c565b503d62002056565b90508881813d8311620020ba575b6200209f818362004729565b810103126200085257620020b39062006a97565b3862001c38565b503d62002093565b9093508781813d8311620020f9575b620020dd818362004729565b810103126200071557620020f19062006a97565b923862001bfb565b503d620020d1565b508581813d831162002138575b6200211a818362004729565b81010312620003c6576200213262001ba39162006a97565b62001b97565b503d6200210e565b508481813d831162002177575b62002159818362004729565b81010312620003f6576200217162001b589162006a97565b62001b4c565b503d6200214d565b508481813d8311620021b6575b62002198818362004729565b81010312620003f657620021b062001b119162006a97565b62001b05565b503d6200218c565b602090620021cb6200577b565b8282850101520162001ab2565b5034620003575760403660031901126200035757620021f6620047d4565b62002200620047a6565b6038546001600160a01b031690813b15620006e357604051637903ab2760e11b815260006004820181905292908381602481670de0b6b3a7640000865af18015620003eb5762002928575b506200225a600491836200714f565b603a546040516394074b0360e01b815294989396919593949392508491849182906001600160a01b03165afa9182156200039d57839262002900575b506020620022c091604051809381926390ba52cf60e01b8352846004840152602483019062004c3f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d578684918293620028c1575b5060405163aa5106cb60e01b81529293839182916200231091906004840162006ca3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156200039d5762002364916020918591620028a3575b50604051809381926390ba52cf60e01b8352846004840152602483019062004c3f565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4928315620006f1579262002869575b5003620027f257620023ba620023c192620023b3670de0b6b3a76400006004971462006e4c565b1562006dc7565b1562006e07565b603a546040516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de57620024199385918391620027ae575b5060405163aa5106cb60e01b815294859283926004840162006ca3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb578492620027cc575b50620024516004929362006af3565b6040519362002460856200466c565b84526020840152603a546040516394074b0360e01b81529285918291859182906001600160a01b03165afa928315620007de57620024be9383918391620027ae575060405163aa5106cb60e01b815294859283926004840162006ca3565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4918215620003eb57849262002780575b50620024f39062006af3565b6040519162002502836200466c565b82526020820152604051906200251882620046f1565b838252604051926200252a84620046b8565b835260208301526402540be401604083015260608381840152608090848285015260a0928385015260c0926402540be40084860152604051946200256e866200466c565b85528560208601526040519262002585846200466c565b600194858552875b602081106200271957505050505082620025a782620056cd565b52620025b381620056cd565b5083737109709ecfa91a80626ff3989d68f67f5b1dd12d803b15620003655760405163ca669fa760e01b815260ff60981b60048201529082908290602490829084905af180156200035a5762002701575b5050603c546001600160a01b031690813b1562000b085791849160405193849263c62eb4d560e01b845260248401906020600486015282518092526044850191602060448260051b88010194019287905b828210620026ca5750505050508383809203925af180156200039d57620026b2575b602082604051620026a7816200269885820194868652604083019062006d28565b03601f19810183528262004729565b519020604051908152f35b620026be8391620046a4565b62000365578162002677565b9295975092955092602080620026ec87936043198c8203018652895162006d28565b970192019201928795938a9795929362002655565b6200270c90620046a4565b620003c657833862002604565b6020906040516200272a816200466c565b6040516200273881620046b8565b6200274262006ccd565b81526200274e62006ccd565b848201528b60408201528b888201528b8682015287878201528b8582015281528a83820152828289010152016200258d565b620024f3919250620027a6903d8087833e6200279d818362004729565b81019062006c7a565b9190620024e7565b620027c591503d8085833e6200279d818362004729565b38620023fc565b60049250620027ea62002451913d8088833e6200279d818362004729565b925062002442565b60405162461bcd60e51b815260206004820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a490fd5b9091506020813d6020116200289a575b81620028886020938362004729565b81010312620006e3575190386200238c565b3d915062002879565b620028ba91503d8087833e6200279d818362004729565b3862002341565b925050506020813d602011620028f7575b81620028e16020938362004729565b81010312620006e35751828662002310620022ec565b3d9150620028d2565b620022c09192506200291f6020913d8087833e6200279d818362004729565b92915062002296565b600491936200293b6200225a92620046a4565b9391506200224b565b5034620003575760209081600319360112620003575762002964620047d4565b604051615092908181016001600160401b0392828210848311176200117e5790829162024a7e8339039084f09182156200039d5760405161154f80820190828210858311176200145e579082916201ba908339039085f0908115620003eb578590620029cf6200592d565b92604051620029de8162004688565b6001600160a01b03968716815283810188905260405160268054808352600091825282870191907f744a2cf8fd7008e3d53b67916e73460df9fa5214e3ef23dd4259ca09493a35945b81600784011062002c275792849262002af7999262002a959554918482821062002c08575b82821062002be9575b82821062002bca575b82821062002bab575b82821062002b8c575b82821062002b6d575b82821062002b50575b501062002b3a575b509050038262004729565b604082015262002aa585620056cd565b5262002ab184620056cd565b50856040519162002ac28362004688565b168152868882015262002ad462004e76565b604082015262002ae484620056f1565b5262002af083620056f1565b50620057e8565b90604051926114a480850191858310908311176200145e579184939162002b249362008f3c8639620066fc565b039083f0918215620006f1575060405191168152f35b6001600160e01b03191681528d91013862002a8a565b83811b6001600160e01b0319168552909301926001018462002a82565b604084901b6001600160e01b0319168552909301926001018462002a79565b606084901b6001600160e01b0319168552909301926001018462002a70565b608084901b6001600160e01b0319168552909301926001018462002a67565b60a084901b6001600160e01b0319168552909301926001018462002a5e565b60c084901b6001600160e01b0319168552909301926001018462002a55565b60e084901b6001600160e01b0319168552909301926001018462002a4c565b93949596976101006008929394600192875463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901526080848460608282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520194019201908c97969594939262002a27565b5034620003575780600319360112620003575760135462002cc3816200478e565b9062002cd3604051928362004729565b808252601383527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909260208084015b83831062002d1a57604051806200093f878262004b0d565b60028260019260405162002d2e816200466c565b848060a01b038a5416815262002d46858b01620055db565b8382015281520196019201919462002d02565b50346200035757604036600319011262000357576200093f6200099362002d7f620047d4565b62002d89620047a6565b906200714f565b5034620003575780600319360112620003575760115462002db1816200478e565b9062002dc1604051928362004729565b808252601183527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68928060208085015b84831062002e0957604051806200093f888262004bd9565b604051849188549160019280841c90848116801562002ec0575b878310811462001609578284528794939291811562002ea2575060011462002e66575b5062002e5781600196038262004729565b81520197019201919562002df1565b8b8952838920955088905b80821062002e8a575081018301945062002e5762002e46565b86548383018601529585019587949091019062002e71565b60ff19168584015250151560051b81018301945062002e5762002e46565b91607f169162002e23565b5034620003575760031990604036830112620003575762002eeb620047d4565b60249283359160018060a01b0362002f5262002f1c82602a541662002f0f6200577b565b508360385416906200714f565b9793919692505084603a54169760405193639d3070b560e01b988986528c868c818060209b8c9586600484015282018a62004c3f565b03915afa95861562001a4057600096620031a5575b506001860180961162003190576001890180991162003190578662002f8f8460049362006a47565b9b60405192838092632472942560e01b82525afa90811562001a40576000916200315d575b5015620031265762002fcb87603954169462006af3565b93803b15620006e35762003016946000938e6040519788958694859363018f44b760e41b85526040600486015262003007604486018c62004c3f565b92858403019085015262004ccc565b03925af190811562001a40578a976200307993869362003114575b506200305287602a5416620030456200577b565b508860385416906200714f565b9c935050989050603a54169160405195869485938493845287600485015283019062004c3f565b03915afa90811562001a4057600091620030e1575b5003620030a957506200043093929162000670911462006dc7565b6064906012886040519262461bcd60e51b8452600484015282015271756e6578706563746564206c656e6774687360701b6044820152fd5b908382813d83116200310c575b620030fa818362004729565b8101031262000357575051386200308e565b503d620030ee565b6200311f90620046a4565b3862003031565b60405162461bcd60e51b8152600481018790526010818e01526f063726f73734d736746656520697320360841b6044820152606490fd5b908782813d831162003188575b62003176818362004729565b81010312620003575750513862002fb4565b503d6200316a565b8c634e487b7160e01b60005260116004526000fd5b90958782813d8311620031d2575b620031bf818362004729565b8101031262000357575051943862002f67565b503d620031b3565b50346200035757806003193601126200035757601254620031fb816200478e565b906200320b604051928362004729565b808252601283527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449260208084015b8383106200325257604051806200093f878262004b0d565b60028260019260405162003266816200466c565b848060a01b038a541681526200327e858b01620055db565b838201528152019601920191946200323a565b503462000357576040366003190112620003575762000430620032b3620047a6565b6038546001600160a01b03169060043562006e8c565b503462000357576101003660031901126200035757620032e8620047d4565b600160243510156200036557620032fe6200474b565b6200330862004762565b9162003313620048b3565b91600360c435101562000b085760e43561ffff81168103620006e357604051946200333e86620046f1565b600086526040519562003351876200466c565b607b8752602087015260405161509d8082018281106001600160401b038211176200149a5782916201cfdf833903906000f0801562001a405760018060a01b03166001600160601b0360a01b602a541617602a5560405161154f8082018281106001600160401b038211176200149a5782916201ba90833903906000f0801562001a405760018060a01b03166001600160601b0360a01b602c541617602c55604051610d308082018281106001600160401b038211176200149a5782916200b4fe833903906000f0801562001a405760018060a01b03166001600160601b0360a01b602d541617602d556040516108848082018281106001600160401b038211176200149a5782916200c22e833903906000f094851562001a4057602e80546001600160a01b0319166001600160a01b03881617905561ffff9360ff926001600160401b03918290620034a36200596d565b602a54604051919b91906001600160a01b0316620034c18262004688565b815260006020820152620034d4620052a8565b6040820152620034e48c620056cd565b52620034f08b620056cd565b50602c54604051906001600160a01b03166200350c8262004688565b8152600060208201526200351f62004e76565b60408201526200352f8c620056f1565b526200353b8b620056f1565b50602d54604051906001600160a01b0316620035578262004688565b8152600060208201526200356a620053b9565b60408201526200357a8c62005702565b52620035868b62005702565b5060405190620035968262004688565b6001600160a01b0316815260006020820152620035b2620054ca565b6040820152620035c28b62005713565b52620035ce8a62005713565b50620035d9620058fa565b986040519b620035e98d620046d4565b8c526001600160a01b031660208c01526200360a60243560408d01620057ba565b60443560608c01521660808a01521660a08801521660c08601521660e08401526402540be400610100840152600c6101208401526200364b60c435620057dd565b60c435610140840152610160830152604051916114a490818401928484106001600160401b038511176200149a5784936200368c9362008f3c8639620066fc565b03906000f0801562001a405760018060a01b0316806001600160601b0360a01b6029541617602955806001600160601b0360a01b602a541617602a55806001600160601b0360a01b602c541617602c55806001600160601b0360a01b602d541617602d556001600160601b0360a01b602e541617602e5580f35b503462000357576020366003190112620003575762003724620047d4565b6200372e62006a55565b906200373e620001e58262006af3565b5060646200022360405162003753816200466c565b6001815260203681830137620056cd565b50346200035757806003193601126200035757604051809182600e54808452602080940190600e84527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd935b85828210620037ca57505050620009299250038362004729565b85546001600160a01b0316845260019586019588955093019201620037b0565b50346200035757806003193601126200035757604051809182600f54808452602080940190600f84527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802935b858282106200385057505050620009299250038362004729565b85546001600160a01b031684526001958601958895509301920162003836565b503462000357576020806003193601126200036557603a54604051630836d45d60e31b808252916001600160a01b039084908390600490829085165afa918215620003ca57859262003a2e575b5060016001600160401b03809316019082821162003a185780603954169086620038e73362006af3565b92803b1562000365576200391a9382916040518080978194636b2c1eef60e01b83528d6004840152602483019062004ccc565b0391600435905af1928315620007de578793620039fb575b5050603a54169360046040518096819382525afa928315620003ca578593620039bb575b50811691160362003965575080f35b6084906040519062461bcd60e51b82526004820152602960248201527f67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065604482015268637465644e6f6e636560b81b6064820152fd5b9092508381813d8311620039f3575b620039d6818362004729565b8101031262000b0857620039eb829162006bb2565b929062003956565b503d620039ca565b62003a0991929350620046a4565b62000715578490863862003932565b634e487b7160e01b600052601160045260246000fd5b9091508381813d831162003a65575b62003a49818362004729565b8101031262000b085762003a5d9062006bb2565b9038620038bd565b503d62003a3d565b503462000357576020806003193601126200036557600435916001600160401b0391828411620003655736602385011215620003655783600401359062003ab4826200478e565b9162003ac4604051938462004729565b8083528183019560249687600593841b83010191368311620008525788859101915b83831062003b7257505050508384905b868216600381101562003b68578551111562003b535762003b2c879185681fffffffffffffffe085871b16880101519062006a47565b911686811462003b40576001019062003af6565b634e487b7160e01b865260116004528786fd5b87634e487b7160e01b60005260326004526000fd5b8482604051908152f35b823581529181019185910162003ae6565b503462000357576040366003190112620003575760043562003ba4620047a6565b80319062003bb16200577b565b506038546001600160a01b03929062003bcd908416836200714f565b505050929050836039541686813b15620003575786916004604051809481936316989f6f60e21b83525af180156200085f5762003c8c575b508062003c2491319462003c186200577b565b5060385416906200714f565b5050509390508482039182116200086a570362003c5257620004309262003c4b9162006a47565b1462006e4c565b60405162461bcd60e51b8152602060048201526012602482015271756e65787065637465642062616c616e636560701b6044820152606490fd5b9562003c9d62003c249297620046a4565b959062003c05565b50346200035757806003193601126200035757604051809182600d54808452602080940190600d84527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5935b8582821062003d0b57505050620009299250038362004729565b85546001600160a01b031684526001958601958895509301920162003cf1565b5034620003575760031960203682011262000365576001600160401b0360043511620003655760c0906004353603011262000357576040519062003d6f8262004650565b600435600401356001600160401b038111620003655762003d9890600436918135010162004800565b8252600435602481013560208401526044810135604084015262003dbf90606401620048c4565b6060830152608460043501356001600160401b038111620003655736602382600435010112156200036557600481813501013562003dfd816200478e565b9262003e0d604051948562004729565b81845260208401923660248460051b836004350101011162000365576024816004350101935b60248460051b83600435010101851062003e6f57602062000b6b8888608082015262003e6460a460043501620048d3565b60a082015262005a48565b84356001600160401b038111620003c65760606004358401820136036023190112620003c6576040519062003ea48262004688565b600435840181016024810135835262003ec090604401620047eb565b60208301526001600160401b0360648286600435010101351162000b0857602492602092839262003f01903690600435890101606481013501870162004a41565b6040820152815201950194905062003e33565b503462000357576060908160031936011262000357576001600160401b0390600435828111620003655762003f4e903690600401620048e3565b9162003f59620047a6565b9262003f64620047bd565b62003f6e6200592d565b9060405162003f7d8162004688565b6001600160a01b039687168152602080820187905297889162003f9f62004e76565b604082015262003faf85620056cd565b5262003fbb84620056cd565b50876040519362003fcc8562004688565b168352868284015260405190819283918160255494858152019060258b527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c948b5b816007820110620041d9578462004073975493838310620041b8575b83831062004197575b83831062004176575b83831062004155575b83831062004137575b5082821062004118575b828210620040fb575b5010620040e557509050038262004729565b60408201526200408382620056f1565b526200408f81620056f1565b50604051926114a4808501918211858310176200117e5791849391620040bb9362008f3c8639620066fc565b039082f0908115620006f1575016806001600160601b0360a01b6029541617602955604051908152f35b6001600160e01b03191681528b91013862002a8a565b83811b6001600160e01b0319168552909301926001018462004061565b604084901b6001600160e01b0319168552909301926001018462004058565b84901b6001600160e01b03191685529093019260010184386200404e565b608085901b6001600160e01b03191686529481019460019092019162004045565b60a085901b6001600160e01b0319168652948101946001909201916200403c565b60c085901b6001600160e01b03191686529481019460019092019162004033565b60e085901b6001600160e01b0319168652948101946001909201916200402a565b9260089295506101009060019295885463ffffffff60e01b91828260e01b168452828260c0928282851b168188015260a08383821b1660408901528d84846080928282851b16818d01521b1690890152838360401b16908801521b16908401521660e08201520195019101928c9286949592956200400e565b90503462000365578160031936011262000365576200434f816200427e6001600160401b03936200466c565b60018152600162004297602092833681830137620056cd565b5260405190620042a78262004650565b620042b16200577b565b825284818301528460408301528460a060609382858201528460808201520152604051620042df81620046f1565b85815260405190620042f1826200466c565b607b8252828201526040516200430781620046f1565b86815260405191620043198362004650565b8252600a838301526402540be40060408301526046848301526080820152606460a08201526001600160a01b0393849162005a48565b1683620043cf62000b656001600160601b0360a01b93808560385416176038558085603a541617603a55808560395416176039558085603b541617603b558085603c541617603c558085603d541617603d558085603e541617603e558085603f541617603f558085604154161760415580856040541617604055620057e8565b1690818160295416176029558181602a541617602a558181602c541617602c558181602e541617602e55602d541617602d55620044c46200440f62006a55565b620044196200577b565b50604051600360621b8482015260148152620044a0906200443a816200466c565b62004491604051916200444d8362004688565b600a83526001600160801b0387840160148152604085019283526040519b8c958a80880152511660408601525116888401525187608084015260a083019062004bb2565b03601f19810188528762004729565b60405195620044af876200466c565b60048752838701528695620001f482620056cd565b506064620044e9604051620044d9816200466c565b60018152833681830137620056cd565b52737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b15620007155760405163c88a5e6d60e01b8152600c600482015260016024820152868160448183895af180156200085f576200463a575b5084604051926200454a846200466c565b438452830152833b1562000b08576040516303223eab60e11b815260ff60981b6004820152858160248183895af18015620008b8579186939185936200461a575b50603d546040516304465a5d60e21b815283516004820152602090930151602484015291938492604492849291165af18015620003eb57620045fa575b5050803b1562000365578180916004604051809481936390c5013b60e01b83525af180156200035a5762000341578280f35b816200461492903d10620003955762000385818362004729565b620045c8565b6200462a919350939193620046a4565b62000b085784918391386200458b565b62004647919550620046a4565b84933862004539565b60c081019081106001600160401b038211176200149a57604052565b604081019081106001600160401b038211176200149a57604052565b606081019081106001600160401b038211176200149a57604052565b6001600160401b0381116200149a57604052565b60e081019081106001600160401b038211176200149a57604052565b61018081019081106001600160401b038211176200149a57604052565b602081019081106001600160401b038211176200149a57604052565b608081019081106001600160401b038211176200149a57604052565b90601f801991011681019081106001600160401b038211176200149a57604052565b606435906001600160401b0382168203620006e357565b608435906001600160401b0382168203620006e357565b35906001600160401b0382168203620006e357565b6001600160401b0381116200149a5760051b60200190565b602435906001600160a01b0382168203620006e357565b604435906001600160a01b0382168203620006e357565b600435906001600160a01b0382168203620006e357565b35906001600160a01b0382168203620006e357565b9190604083820312620006e357604051926200481c846200466c565b83620048288262004779565b815260209182810135906001600160401b038211620006e357019280601f85011215620006e35783356200485c816200478e565b946200486c604051968762004729565b818652848087019260051b820101928311620006e35784809101915b8383106200489857505050500152565b8190620048a584620047eb565b815201910190849062004888565b60a4359060ff82168203620006e357565b359060ff82168203620006e357565b359061ffff82168203620006e357565b9190918083036101a08112620006e3576040516200490181620046d4565b80948335906001600160401b038211620006e3576200492291850162004800565b81526200493260208401620047eb565b602082015260408301356001811015620006e357604082015260608301356060820152620049636080840162004779565b60808201526200497660a0840162004779565b60a08201526200498960c08401620048c4565b60c08201526200499c60e08401620048d3565b60e08201526101008084013590820152610120918284013560009381850b820362000b08578301526101408085013590600382101562000b0857830152604061015f1990910112620003655760405192620049f7846200466c565b6101609283820135906002821015620003575750845262004a1c9061018001620047eb565b60208401520152565b6001600160401b0381116200149a57601f01601f191660200190565b81601f82011215620006e35780359062004a5b8262004a25565b9262004a6b604051948562004729565b82845260208383010111620006e357816000926020809301838601378301015290565b90815180825260208080930193019160005b82811062004aaf575050505090565b83516001600160a01b03168552938101939281019260010162004aa0565b90815180825260208080930193019160005b82811062004aee575050505090565b83516001600160e01b0319168552938101939281019260010162004adf565b602080820190808352835180925260409283810182858560051b8401019601946000925b85841062004b43575050505050505090565b90919293949596858062004b7b600193603f1986820301885286838d51878060a01b0381511684520151918185820152019062004acd565b99019401940192959493919062004b31565b60005b83811062004ba15750506000910152565b818101518382015260200162004b90565b9060209162004bcd8151809281855285808601910162004b8d565b601f01601f1916010190565b602080820190808352835180925260408301928160408460051b8301019501936000915b84831062004c0e5750505050505090565b909192939495848062004c2e600193603f198682030187528a5162004bb2565b980193019301919493929062004bfd565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811062004c7e575050505090565b83516001600160a01b03168552938101939281019260010162004c6f565b91959493909262004cb860809460a0855260a085019062004c3f565b966020840152604083015260608201520152565b906040602062004cee9360ff8151168452015191816020820152019062004bb2565b90565b81601f82011215620006e35780359162004d0b836200478e565b9262004d1b604051948562004729565b808452602092838086019260051b820101928311620006e3578301905b82821062004d47575050505090565b81356001600160e01b031981168103620006e357815290830190830162004d38565b51908115158203620006e357565b6000805460081c60ff161562004d91575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b62004db357505090565b819250819060405182602082018381526519985a5b195960d21b60408401526040835262004de18362004688565b62004e1d6024604051809362004e0c6020830197630667f9d760e41b89525180928585019062004b8d565b810103600481018452018262004729565b51925af1503d1562004e6d573d9062004e368262004a25565b9162004e46604051938462004729565b82523d81602084013e5b602082805181010312620003575750602062004cee910162004d69565b60609062004e50565b60409081519182602454918282526020908183019060246000527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49460005b81600782011062005012578462004f1b97549383831062004ff1575b83831062004fd0575b83831062004faf575b83831062004f8e575b83831062004f6d575b83831062004f4f575b5082821062004f32575b501062004f1d575b509050038362004729565b565b6001600160e01b031916815201803862004f10565b83811b6001600160e01b0319168552909301926001018462004f08565b84901b6001600160e01b031916855290930192600101843862004efe565b606085901b6001600160e01b03191686529481019460019092019162004ef5565b608085901b6001600160e01b03191686529481019460019092019162004eec565b60a085901b6001600160e01b03191686529481019460019092019162004ee3565b60c085901b6001600160e01b03191686529481019460019092019162004eda565b60e085901b6001600160e01b03191686529481019460019092019162004ed1565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162004eb5565b60409081519182603754918282526020908183019060376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae9460005b81600782011062005123578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620050c5565b60409081519182603654918282526020908183019060366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b89460005b81600782011062005234578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620051d6565b60409081519182602554918282526020908183019060256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9460005b81600782011062005345578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620052e7565b60409081519182602754918282526020908183019060276000527f98a476f1687bc3d60a2da2adbcba2c46958e61fa2fb4042cd7bc5816a710195b9460005b81600782011062005456578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620053f8565b60409081519182602854918282526020908183019060286000527fe16da923a2d88192e5070f37b4571d58682c0d66212ec634d495f33de3f77ab59460005b81600782011062005567578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b8316908801529116908501526001909601958895506101009093019260080162005509565b906040918251809382549283835260209182840191600052826000209460005b81600782011062005659578462004f1b97549383831062004ff15783831062004fd05783831062004faf5783831062004f8e5783831062004f6d5783831062004f4f575082821062004f3257501062004f1d57509050038362004729565b86546001600160e01b031960e082811b8216875260c083811b83168989015260a084811b8416888a0152608085811b85166060808c019190915286901b8516908a015284881b84169089015283891b83169088015291169085015260019096019588955061010090930192600801620055fb565b805115620056db5760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620056db5760400190565b805160021015620056db5760600190565b805160031015620056db5760800190565b805160061015620056db5760e00190565b805160071015620056db576101000190565b805160081015620056db576101200190565b805160041015620056db5760a00190565b805160051015620056db5760c00190565b604051906200578a826200466c565b6060602083600081520152565b60405190620057a68262004688565b606060408360008152600060208201520152565b6001821015620057c75752565b634e487b7160e01b600052602160045260246000fd5b60031115620057c757565b60408051620057f781620046d4565b620058016200577b565b8152600080602083015280838301528060608301528060808301528060a08301528060c08301528060e08301526101008181840152600c61012083818601526402540be40061014093858588015287516200585c816200466c565b868152866020820152610160809801528562005877620058fa565b9880519a620058868c620046f1565b828c5281519b620058978d6200466c565b607b8d5260208d015281519b620058ae8d620046d4565b8c526001600160a01b031660208c01528a0152670de0b6b3a764000060608a0152600160808a0152600a60a08a0152604660c08a0152606460e08a015288015286015284015282015290565b600060206040516200590c816200466c565b82815201526040516200591f816200466c565b600081526000602082015290565b6040908151916200593e8362004688565b600283528260005b8281106200595357505050565b6020906200596062005797565b8282850101520162005946565b6040519060a082018281106001600160401b038211176200149a57604052600482528160005b60808110620059a0575050565b602090620059ad62005797565b8282850101520162005993565b908082519081815260208091019281808460051b8301019501936000915b848310620059e95750505050505090565b909192939495848062005a37600193601f198682030187528a51858060a01b0381511682528381015162005a1d81620057dd565b848301526040809101519160608092820152019062004acd565b9801930193019194939290620059d8565b906040516117848082018281106001600160401b038211176200149a57829162016232833903906000f0801562001a40576040516116598082018281106001600160401b038211176200149a5782916201a437833903906000f0801562001a4057604051612a818082018281106001600160401b038211176200149a578291620179b6833903906000f090811562001a4057604051612a728082018281106001600160401b038211176200149a578291620137c0833903906000f0801562001a40576040516126e78082018281106001600160401b038211176200149a5782916200ed13833903906000f0801562001a40576040516122618082018281106001600160401b038211176200149a5782916200cab2833903906000f090811562001a40576040516123c68082018281106001600160401b038211176200149a578291620113fa833903906000f092831562001a4057604051610d308082018281106001600160401b038211176200149a5782916200b4fe833903906000f095861562001a40576040516108848082018281106001600160401b038211176200149a5782916200c22e833903906000f095861562001a4057604051986101408a018a81106001600160401b038211176200149a5760405260098a5260005b6101208110620066e157506040519062005c3e8262004688565b60018060a01b031681526000602082015260405180816020602f549283815201602f6000527fa813484aef6fb598f9f753daf162068ff39ccea4075cb95e1a30f86995b5b7ee926000905b8060078301106200666c5762005ce29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005cf28a620056cd565b5262005cfe89620056cd565b506040519062005d0e8262004688565b60018060a01b031681526000602082015260405180816020603054928381520160306000527f6ff97a59c90d62cc7236ba3a37cd85351bf564556780cf8c1157a220f31f0cbb926000905b806007830110620065f75762005db29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005dc28962005724565b5262005dce8862005724565b506040519062005dde8262004688565b60018060a01b031681526000602082015260405180816020603154928381520160316000527fc54045fa7c6ec765e825df7f9e9bf9dec12c5cef146f93a5eee56772ee647fbc926000905b806007830110620065825762005e829454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005e928862005735565b5262005e9e8762005735565b506040519062005eae8262004688565b60018060a01b031681526000602082015260405180816020603254928381520160326000527f11df491316f14931039edfd4f8964c9a443b862f02d4c7611d18c2bc4e6ff697926000905b8060078301106200650d5762005f529454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b604082015262005f628762005747565b5262005f6e8662005747565b506040519062005f7e8262004688565b60018060a01b031681526000602082015260405180816020603354928381520160336000527f82a75bdeeae8604d839476ae9efd8b0e15aa447e21bfd7f41283bb54e22c9a82926000905b8060078301106200649857620060229454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b60408201526200603286620056f1565b526200603e85620056f1565b50604051906200604e8262004688565b60018060a01b031681526000602082015260405180816020603454928381520160346000527f46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c1926000905b8060078301106200642357620060f29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b6040820152620061028562005702565b526200610e8462005702565b50604051906200611e8262004688565b60018060a01b031681526000602082015260405180816020603554928381520160356000527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d926000905b806007830110620063ae57620061c29454918181106200126657818110620012465781811062001226578181106200120657818110620011e657818110620011c657818110620011a85710620011925750038262004729565b6040820152620061d28462005713565b52620061de8362005713565b5060405190620061ee8262004688565b6001600160a01b03168152600060208201526200620a62005086565b60408201526200621a8362005759565b52620062268262005759565b5060405190620062368262004688565b6001600160a01b03168152600060208201526200625262005197565b604082015262006262826200576a565b526200626e816200576a565b5060405190611b4d808301918383106001600160401b038411176200149a57620062a791620073ef8539604083526040830190620059ba565b906020818303910152620062c5845160c0835260c083019062004c3f565b906020850151602082015260408501516040820152606060ff8187015116818301526080860151928281036080840152835190818152602081016020808460051b8401019601936000925b8484106200635b5750505050505060a061ffff8185969701511691015203906000f0801562001a4057603880546001600160a01b0319166001600160a01b0392909216918217905590565b9091929394966020806200639d600193601f198682030188528660408d5180518452878060a01b03868201511686850152015191816040820152019062004bb2565b990194019401929493919062006310565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006169565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162006099565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005fc9565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005ef9565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005e29565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005d59565b916008919350610100600191865463ffffffff60e01b60e0918181841b16845260c08282821b16602086015260a08383821b1660408701526080848460608282851b16818b01521b1690870152838360401b1690860152828260201b1690850152169082015201940192018492939162005c89565b808b60208093620066f162005797565b920101520162005c24565b906200671190604083526040830190620059ba565b9060208183039101526200672f82516101a080845283019062004c3f565b9160018060a01b0380602083015116602084015260408201516001811015620057c7576040840152606082015160608401526001600160401b0380608084015116608085015260a08301511660a084015260ff60c08301511660c084015261ffff60e08301511660e084015261010080830151908401526101208083015160000b908401526101408083015190620067c782620057dd565b84015261016080920151918251926002841015620057c7576101809360209286015201511691015290565b60409081519061509d90818301926001600160401b0392818510848611176200149a576201cfdf823980600094039084f0801562006a3d57845161154f80820190828210868311176200145e579082916201ba908339039085f090811562006a33578551610884808201908282108783111762006a1f579082916200c22e8339039086f090811562006a15578651610d30808201908282108883111762006a01579082916200b4fe8339039087f08015620069f757620068b16200596d565b938851620068bf8162004688565b6001600160a01b03938416815260208101899052620068dd620052a8565b8a820152620068ec86620056cd565b52620068f885620056cd565b5082895191620069088362004688565b1681528760208201526200691b62004e76565b898201526200692a85620056f1565b526200693684620056f1565b5081885191620069468362004688565b1681528660208201526200695962005197565b88820152620069688462005702565b52620069748362005702565b50865191620069838362004688565b1681528460208201526200699662005086565b86820152620069a58262005713565b52620069b18162005713565b508451926114a4808501918211858310176200117e5791849391620069dc9362008f3c8639620066fc565b039082f0918215620069ed57505090565b51903d90823e3d90fd5b87513d88823e3d90fd5b634e487b7160e01b89526041600452602489fd5b86513d87823e3d90fd5b634e487b7160e01b88526041600452602488fd5b85513d86823e3d90fd5b84513d85823e3d90fd5b9190820180921162003a1857565b6040519062006a64826200466c565b600182528160005b6020908181101562006a925760209162006a856200577b565b9082850101520162006a6c565b505050565b51906001600160a01b0382168203620006e357565b809291039160608312620006e357604062006ac78262004d69565b93601f190112620006e357604080519162006ae2836200466c565b602081015183520151602082015290565b6001600160401b039062006b066200577b565b5062006b996040918251906001600160601b03199060601b1660208201526014815262006b33816200466c565b62006b8a83519162006b458362004688565b600a83526001600160801b036020840160148152868501928352865197889560208088015251168786015251166060840152516060608084015260a083019062004bb2565b03601f19810184528362004729565b519062006ba6826200466c565b60048252602082015290565b51906001600160401b0382168203620006e357565b9190604083820312620006e3576040519262006be3846200466c565b8362006bef8262006bb2565b815260209182810151906001600160401b038211620006e357019280601f85011215620006e357835162006c23816200478e565b9462006c33604051968762004729565b818652848087019260051b820101928311620006e35784809101915b83831062006c5f57505050500152565b819062006c6c8462006a97565b815201910190849062006c4f565b90602082820312620006e35781516001600160401b038111620006e35762004cee920162006bc7565b9062006cbd60209194939460408452604084019062004c3f565b6001600160a01b03909416910152565b6040519062006cdc826200466c565b8162006ce76200577b565b8152602062006cf56200577b565b910152565b62004cee91602062006d16835160408452604084019062004c3f565b92015190602081840391015262004ccc565b906020808351936040845260c062006db462006d52875160e0604089015261012088019062006cfa565b62006d6f8589015191603f1992838a83030160608b015262006cfa565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015262004bb2565b9501516101008501520151151591015290565b1562006dcf57565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564206e6f6e636560801b6044820152606490fd5b1562006e0f57565b60405162461bcd60e51b8152602060048201526015602482015274756e65787065637465642063697263537570706c7960581b6044820152606490fd5b1562006e5457565b60405162461bcd60e51b815260206004820152601060248201526f756e6578706563746564207374616b6560801b6044820152606490fd5b6001600160a01b03808416939092843b15620006e357829160409081518097637903ab2760e11b825281602460009a8b98899460049d8e8401525af1801562007145579088949392916200712e575b5062006ee98591846200714f565b9b93969298919a9050603a54168551938480926394074b0360e01b82525afa91821562006a3d5783926200710e575b5073__$a0fe38a9a81205afccc10810b09a4d3f45$__8451916390ba52cf60e01b9081845288848062006f5860209b8c8095840152602483019062004c3f565b0381865af4938415620069f7579086918295620070d2575b50875163aa5106cb60e01b815294958591829162006f9291908d840162006ca3565b0381855af492831562006a15579162006fcb939188938793620070b2575b5087518095819482938352868d840152602483019062004c3f565b03915af4928315620070a7579262007072575b500362006fff5750505091620023b3620023ba9262004f1b95941462006e4c565b5162461bcd60e51b815291820152604360248201527f69642e746f486173682829203d3d20706172656e744e6574776f726b2e63726560448201527f6174655375626e65744964287375626e657441646472657373292e746f48617360648201526268282960e81b608482015260a49150fd5b9091508381813d83116200709f575b6200708d818362004729565b81010312620006e35751903862006fde565b503d62007081565b8451903d90823e3d90fd5b620070ca9193503d8089833e6200279d818362004729565b913862006fb0565b89809296508193503d831162007106575b620070ef818362004729565b81010312620006e3575192859062006f9262006f70565b503d620070e3565b620071269192503d8085833e6200279d818362004729565b903862006f18565b946200713e62006ee996620046a4565b9462006edb565b83513d87823e3d90fd5b906200715a6200577b565b5060018060a01b0380911691826001600160601b0360a01b81816039541617603955603a541617603a5560409283519182916394074b0360e01b835282600460009586935afa918215620073e45792809291620071ec948293620073c4575b50865163aa5106cb60e01b81529473__$a0fe38a9a81205afccc10810b09a4d3f45$__9386928392916004840162006ca3565b0381845af492831562007397578293620073a1575b50620072339293603a541693855180926390ba52cf60e01b825281806020978895866004840152602483019062004c3f565b03915af49081156200739757908291829162007360575b50602486518096819363017187cd60e11b835260048301525afa92831562007354578193620072a1575b50505060a08101518151936001600160401b03938460608501511694608085015116930151919493929190565b909192503d8083833e620072b6818362004729565b8101918382840312620003575781516001600160401b0392838211620003f657019060c0828503126200035757855194620072f18662004650565b8251865280830151908601528582015186860152620073136060830162006bb2565b6060860152620073266080830162006bb2565b608086015260a08201519283116200035757506200734692910162006bc7565b60a082015238808062007274565b508351903d90823e3d90fd5b809250848092503d83116200738f575b6200737c818362004729565b810103126200036557819051386200724a565b503d62007370565b85513d84823e3d90fd5b620072339350620073bd903d8085833e6200279d818362004729565b9262007201565b620073dc9193503d8084833e6200279d818362004729565b9138620071b9565b85513d85823e3d90fdfe60806040523462000c825762001b4d80380380916200002082608062000edf565b6080396040811262000c82576080516001600160401b03811162000c825760808201609f8201121562000c82578060800151906200005e8262000f03565b916200006e604051938462000edf565b8083526020830180928560800160208460051b8360800101011162000c825760a08101915b60a0600585901b830101831062000d9d57505060a0519150506001600160401b03811162000c825760c08185031262000c82576040519360c085016001600160401b038111868210176200058757604081905260808301516001600160401b03811162000c8257836080010160408184608001031262000c8257620001188262000ec3565b80516001600160401b038116810362000c825782526020810151906001600160401b03821162000c82570182608001601f8201121562000c8257805190620001608262000f03565b9162000170604051938462000edf565b80835260208084019160051b8301019185608001831162000c8257602001905b82821062000d825750505060e08781019190915290865260a0830151602087015260c0830151604087015282015160ff8116810362000c825760608601526101008201516001600160401b03811162000c825760808201609f84830101121562000c825780836080010151620002068162000f03565b9262000216604051948562000edf565b81845260208401926080820160a0878301600586901b01011162000c825760a086820101935b60a0878301600586901b0101851062000c875789898960a08a8a6080860152608001015161ffff8116810362000c825760a084015260208301511562000c705760ff6060840151166033811090811562000c64575b5062000c52577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111762000587576020810160405260008152825160005b818110620005f75750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106200059d57877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880620003698a8a60006020850152838203604085015262000fe7565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d25805460ff1990811660019081179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054821683179055602b805464ffffffffff1916600217905583518051601980546001600160401b03199081166001600160401b039384161790915591909401518051939594919391821162000587576801000000000000000082116200058757602090601a5483601a5580841062000566575b5001601a600052602060002060005b838110620005495762000539608088600a898c8a6020850151601d556040850151601b5560ff60608601511690601c541617601c5580600b556012556064601e55601f541617601f5560a081015162ffff006020549160081b169062ffff0019161760205568010000000000000001600180841b031960295416176029550151604051906200052a8262000ec3565b815260006020820152620013bf565b6040516101339081620019da8239f35b82516001600160a01b03168183015560209092019187016200049b565b6200058090601a6000528484600020918201910162000f55565b876200048c565b634e487b7160e01b600052604160045260246000fd5b90919294602080620005e8600193607f198b8203018652606060408b51878060a01b038151168452620005d7868201518786019062000f99565b015191816040820152019062000fa7565b97019201920190929162000322565b604062000605828762000f6e565b5101516001600160a01b036200061c838862000f6e565b5151169080511562000c3957602062000636848962000f6e565b510151600381101562000c2357806200086057508115620008355761ffff60008051602062001b0d8339815191525416620006b3604051620006788162000ea7565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b60408201528462001040565b8151916000915b838310620006d25750505050506001905b01620002f3565b6001600160e01b0319620006e7848462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020549091906001600160a01b03166200081c576200078a604051620007298162000ec3565b87815261ffff929092166020808401828152600086815260008051602062001b2d83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b60008051602062001b0d8339815191525491680100000000000000008310156200058757620007f190620007d460019485810160008051602062001b0d833981519152556200100e565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811462000806578101920191620006ba565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b8152602060048201529081906200085c90602483019062000fa7565b0390fd5b60018103620009d957508115620009b257620008c5604051620008838162000ea7565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b60408201528362001040565b80519060005b828110620008e05750505050600190620006cb565b6001600160e01b0319620008f5828462000f6e565b5116600081815260008051602062001b2d83398151915260205260409020546001600160a01b031630811462000999578581146200098057156200096857600090815260008051602062001b2d8339815191526020526040902080546001600160a01b03191685179055600101620008cb565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906200085c90602483019062000fa7565b6002810362000c01575060008051602062001b0d83398151915254918062000be9575080519060005b82811062000a175750505050600190620006cb565b6001600160e01b031962000a2c828462000f6e565b5116908160005260008051602062001b2d8339815191526020526040600020946040519562000a5b8762000ec3565b546001600160a01b03811680885260a09190911c61ffff1660208801521562000bd05785516001600160a01b0316301462000bb7578015620008065760001901948561ffff6020830151160362000b34575b5060008051602062001b0d8339815191525491821562000b1e576001926000190162000ad9816200100e565b63ffffffff82549160031b1b1916905560008051602062001b0d8339815191525560005260008051602062001b2d833981519152602052600060408120550162000a02565b634e487b7160e01b600052603160045260246000fd5b62000bb09061ffff602062000b49896200100e565b90549060031b1c60e01b9262000b6984620007d48585850151166200100e565b01516001600160e01b0319909216600090815260008051602062001b2d83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b8b62000aad565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b815260249162000c2190600483019062000f99565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516375c3b42760e01b8152600490fd5b60649150118462000291565b60405163312f8e0560e01b8152600490fd5b600080fd5b84516001600160401b03811162000c8257601f199190888401016080810190606090860384011262000c82576040519062000cc28262000ea7565b6020810151825262000cd76040820162000f1b565b60208301526060810151906001600160401b03821162000c8257019185608001603f8401121562000c82576020830151916001600160401b03831162000d6d5762000d2e602060405196601f860116018662000edf565b828552866080016040848601011162000c82578462000d5a602096948796604088809801910162000f30565b604082015281520195019490506200023c565b60246000634e487b7160e01b81526041600452fd5b6020809162000d918462000f1b565b81520191019062000190565b82516001600160401b03811162000c8257606090830160808101908903601f1901821362000c82576040519162000dd48362000ea7565b62000de26020830162000f1b565b83526040820151600381101562000c82576020840152810151906001600160401b03821162000c82570188608001603f8201121562000c825760208101519062000e2c8262000f03565b9162000e3c604051938462000edf565b808352602083018b60800160408360051b8501011162000c825760408301905b60408360051b850101821062000e845750505050604082015281526020928301920162000093565b81516001600160e01b03198116810362000c825781526020918201910162000e5c565b606081019081106001600160401b038211176200058757604052565b604081019081106001600160401b038211176200058757604052565b601f909101601f19168101906001600160401b038211908210176200058757604052565b6001600160401b038111620005875760051b60200190565b51906001600160a01b038216820362000c8257565b60005b83811062000f445750506000910152565b818101518382015260200162000f33565b81811062000f61575050565b6000815560010162000f55565b805182101562000f835760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101562000c235752565b90815180825260208080930193019160005b82811062000fc8575050505090565b83516001600160e01b0319168552938101939281019260010162000fb9565b90602091620010028151809281855285808601910162000f30565b601f01601f1916010190565b9060008051602062001b0d833981519152805483101562000f8357600052601c60206000208360031c019260021b1690565b803b156200104c575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906200085c90604483019062000fe7565b908082519081815260208091019281808460051b8301019501936000915b848310620010b15750505050505090565b9091929394958480620010f4600193601f198682030187528a5180518252858060a01b038482015116848301526040809101519160608092820152019062000fe7565b9801930193019194939290620010a0565b90600182811c9216801562001137575b60208310146200112157565b634e487b7160e01b600052602260045260246000fd5b91607f169162001115565b9190601f81116200115257505050565b62001181926000526020600020906020601f840160051c8301931062001183575b601f0160051c019062000f55565b565b909150819062001173565b908082146200127757620011a3815462001105565b906001600160401b03821162000587578190620011cd82620011c6865462001105565b8662001142565b600090601f83116001146200120757600092620011fb575b50508160011b916000199060031b1c1916179055565b015490503880620011e5565b81526020808220858352818320935090601f1985169083905b8282106200125d57505090846001959493921062001243575b505050811b019055565b015460001960f88460031b161c1916905538808062001239565b849581929585015481556001809101960194019062001220565b5050565b60045481101562000f835760046000526003602060002091020190600090565b90620013a95781518155602080830151600180840180546001600160a01b0319166001600160a01b03939093169290921790915560409093015180516002909301939291906001600160401b0383116200058757620013078362001300875462001105565b8762001142565b81601f841160011462001343575092829391839260009462001337575b50501b916000199060031b1c1916179055565b01519250388062001324565b919083601f1981168760005284600020946000905b888383106200138e57505050106200137457505050811b019055565b015160001960f88460031b161c1916905538808062001239565b85870151885590960195948501948793509081019062001358565b634e487b7160e01b600052600060045260246000fd5b604090815190602090818352620013e181518584860152606085019062001082565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481838301918060018060401b039687855116898301520390a160059484865416806200174e575b505060049182549168010000000000000000958684116200173957600654846006558085106200164f575b50600093858552868520600686528786209086905b838210620015f95750505050808854169160018060401b03199283600754161760075583515193865498865b8681106200157757505050511690875416178655808511620014ba575b505050505050565b84811015620014b2578254801562001564576000190190620014dc826200127b565b9290926200155257838355836002600194828682015501620014ff815462001105565b8062001512575b505050845501620014ba565b82601f8083116001146200152e57505050555b83388062001506565b8382528a82209391926200154a91018d1c840188850162000f55565b555562001525565b634e487b7160e01b8452838552602484fd5b634e487b7160e01b835260318452602483fd5b8a811015620015ae5780620015a762001594600193865162000f6e565b51620015a0836200127b565b906200129b565b0162001495565b620015bb81845162000f6e565b51895483811015620015e65760019291620015a0828d86620015e0950190556200127b565b620015a7565b634e487b7160e01b8a5260418b5260248afd5b80600191840362001616575b600380910193019101909162001469565b805484558180850190838060a01b039083015416838060a01b03198254161790556200164960028083019086016200118e565b62001605565b6003908082029082820403620017245785820282810487036200170f57886000916006835281832093840193015b8c8482106200169157505050505062001454565b85928491828455600183818601556002850191620016b0835462001105565b9182620016c7575b5050505050500189906200167d565b8591601f808511600114620016eb5750505050509050555b828b388f8082620016b8565b859496849662001707955286209601901c850190850162000f55565b5555620016df565b601188634e487b7160e01b6000525260246000fd5b601187634e487b7160e01b6000525260246000fd5b604185634e487b7160e01b6000525260246000fd5b85835116866007541690818114620018d45710620018c357815191620017748362000ec3565b600454620017828162000f03565b91620017918151938462000edf565b81835287830190600460005288600020906000925b848410620017da57505050918452505084820152620017c69083620018df565b620017d357388062001429565b5050505050565b8a8d835190620017ea8262000ea7565b8554825260018060a01b0360018701541683830152600286018551916000918054620018168162001105565b8086529260018216918215620018a05750506001146200185c575b50509181620018496001969360039695038262000edf565b86820152815201930193019291620017a6565b60009081528581209092505b8183106200188157505081018301816200184962001831565b8060019196929394959654838688010152019201908f94939262001868565b60ff19168689015292151590921b84018601925083915062001849905062001831565b8151633746be2560e11b8152600490fd5b505050505050505050565b602080820151838201519192916001600160401b0391821691160362001991576200190a8162001999565b620019158462001999565b0362001991575180518351510362001991576200198a6200197d9160405190816200194b86820192878452604083019062001082565b039162001961601f199384810183528262000edf565b5190209451604051938491868301968752604083019062001082565b0390810183528262000edf565b5190201490565b505050600090565b8051519060009182915b818310620019b15750505090565b909192620019c184835162000f6e565b515181018091116200080657926001019190620019a356fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220ad3b5f89095c80cc878b4a39613bdd3c3ed2487d5d500f73495572b7476e1c2764736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2608060405234610ce35761111e8038038061001981610dcf565b928339810190604081830312610ce35780516001600160401b038111610ce35781019082601f83011215610ce35781519061005b61005683610df4565b610dcf565b92602084848152016020819460051b83010191868311610ce35760208101915b838310610ce857505050506020810151906001600160401b038211610ce3570160a081850312610ce3576040519360a085016001600160401b0381118682101761051c576040526100cb82610e0b565b85526100d960208301610e0b565b60208601526100ea60408301610e0b565b604086015260608201516001600160401b038111610ce3578161010e918401610e1f565b606086015260808201516001600160401b038111610ce3576101309201610e1f565b608084015282516001600160a01b031615610cd15760208301516001600160a01b031615610cbf5760408301516001600160a01b031615610cbf577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b03191633179055604051602081016001600160401b0381118282101761051c5760405260008152825160005b8181106106885750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061063357877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806102338a8a600060208501528382036040850152610efb565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b60009081527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549092168317909155835181546001600160a01b039182166001600160a01b0319918216179092559284015182549084169082161782556040840151600280549190941691161782556060830151805192939091906001600160401b03841161051c57680100000000000000009081851161051c5760039384548686558087106105d7575b5060200184600052602060002086861c9060005b828110610586575060071997808916900380610532575b50505050608001518051916001600160401b03831161051c57821161051c57600454826004558083106104a3575b506020016004600052816020600020941c9460005b8681106104525750821680830392036103fa575b6040516101339081610fab8239f35b91906000956000905b82821061041c57505050505001558080808080806103eb565b9091926020610446869983975160e01c9086861b60031b9163ffffffff809116831b921b19161790565b98019493920190610403565b84906000805b8a6008821061046d57505081880155016103d7565b610496908794959383602094995160e01c921b60031b9163ffffffff809116831b921b19161790565b9201940190869291610458565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6007918201861c8101918401861c01601c84891b1680610502575b5084905b8281106104f65750506103c2565b600081550184906104e8565b6000199081830191825491602003891b1c169055886104e4565b634e487b7160e01b600052604160045260246000fd5b9260009360005b888c83831061055357505050505001556080878080610394565b61057c908598846020949596975160e01c921b60031b9163ffffffff809116831b921b19161790565b9601929101610539565b86906000805b8c600882106105a1575050818401550161037d565b6105ca9088949593836020949a5160e01c921b60031b9163ffffffff809116831b921b19161790565b920195019088929161058c565b8560005260206000206007808901881c82019201871c0190601c888a1b1680610619575b5085905b82811061060d575050610369565b600081550185906105ff565b60001990818301918254916020038a1b1c169055896105fb565b9091929460208061067a600193607f198b8203018652606060408b51878060a01b03815116845261066a8682015187860190610eb0565b0151918160408201520190610ebd565b9701920192019092916101ef565b60406106948287610e86565b5101516001600160a01b036106a98388610e86565b51511690805115610ca65760206106c08489610e86565b5101516003811015610c9057806108de575081156108b55761ffff6000805160206110de83398151915254166107316106f7610db0565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610f6b565b8151916000915b83831061074e5750505050506001905b016101c1565b6107588383610e86565b516001600160e01b0319811660009081526000805160206110fe83398151915260205260409020549091906001600160a01b03166108935761080661079b610d91565b87815261ffff9290921660208084018281526001600160e01b0319861660009081526000805160206110fe83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b6000805160206110de83398151915254916801000000000000000083101561051c576108686108496001948581016000805160206110de83398151915255610f3b565b909260e01c9083549060031b9163ffffffff809116831b921b19161790565b905561ffff811461087d578101920191610738565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b81526001600160e01b031983166004820152602490fd5b6040516302b8da0760e21b8152602060048201529081906108da906024830190610ebd565b0390fd5b60018103610a4157508115610a1c576109396108f8610db0565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610f6b565b80519060005b8281106109525750505050600190610748565b6001600160e01b03196109658284610e86565b511660008181526000805160206110fe83398151915260205260409020546001600160a01b0316308114610a03578581146109ea57156109d25760009081526000805160206110fe8339815191526020526040902080546001600160a01b0319168517905560010161093f565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906108da906024830190610ebd565b60028103610c7057506000805160206110de833981519152549180610c58575080519060005b828110610a7a5750505050600190610748565b6001600160e01b0319610a8d8284610e86565b511690816000526000805160206110fe833981519152602052604060002094610ab4610d91565b95546001600160a01b03811680885260a09190911c61ffff16602088015215610c3f5785516001600160a01b03163014610c2657801561087d576000190180958161ffff60208301511603610b85575b50506000805160206110de83398151915254918215610b6f5760019260001901610b2d81610f3b565b63ffffffff82549160031b1b191690556000805160206110de833981519152556000526000805160206110fe8339815191526020526000604081205501610a67565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610b96610c1f94610f3b565b90549060031b1c92610bd3610baf848484015116610f3b565b63ffffffff87939293169083549060031b9163ffffffff809116831b921b19161790565b9055015160e09290921b6001600160e01b03191660009081526000805160206110fe83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610b04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610c8e906004830190610eb0565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516307a0435160e51b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b600080fd5b82516001600160401b038111610ce35782019060609081601f19848c030112610ce357604051918083016001600160401b03811184821017610d7c57604052610d3360208501610e0b565b835260408401516003811015610ce3576020840152830151916001600160401b038311610ce357610d6c8b602080969581960101610e1f565b604082015281520192019161007b565b60246000634e487b7160e01b81526041600452fd5b60408051919082016001600160401b0381118382101761051c57604052565b60405190606082016001600160401b0381118382101761051c57604052565b6040519190601f01601f191682016001600160401b0381118382101761051c57604052565b6001600160401b03811161051c5760051b60200190565b51906001600160a01b0382168203610ce357565b9080601f83011215610ce357815190610e3a61005683610df4565b9182938184526020808095019260051b820101928311610ce3578301905b828210610e66575050505090565b81516001600160e01b031981168103610ce3578152908301908301610e58565b8051821015610e9a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906003821015610c905752565b90815180825260208080930193019160005b828110610edd575050505090565b83516001600160e01b03191685529381019392810192600101610ecf565b919082519283825260005b848110610f27575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610f06565b906000805160206110de8339815191528054831015610e9a57600052601c60206000208360031c019260021b1690565b803b15610f76575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906108da906044830190610efb56fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b9d7f9c6859a7892a4a07de8c422249a35a0277dfd6ed6a8d534a807b3da4c7c64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd26080806040523461001657610d14908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c631f931c1c1461002857600080fd5b346109d05760603660031901126109d05767ffffffffffffffff600435116109d0573660236004350112156109d057600435600401359067ffffffffffffffff82116109d0573660248360051b6004350101116109d0576024356001600160a01b03811690036109d05767ffffffffffffffff604435116109d0573660236044350112156109d05767ffffffffffffffff60443560040135116109d057366024604435600401356044350101116109d0577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b031633036109d5575061011c61011782610a4a565b610a24565b602081838152018092602460043501915b60248260051b600435010183106108995750505061015361011760443560040135610a62565b6044356004810135808352919291906024016020840137600060206044356004013584010152805160005b81811061029a575050604051906060820190606083525180915260809081830191808260051b85010195926000915b83831061020b576024356001600160a01b031660208701528588036040870152610209877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806101fe8d85610ab5565b0390a1602435610b86565b005b9091929396607f1986820301835287516020836040606085019360018060a01b0381511686526102418482015185880190610aa8565b015193606060408201528451809452019201906000905b80821061027757505050602080600192990193019301919392906101ad565b82516001600160e01b031916845260209384019390920191600190910190610258565b60406102a68285610a7e565b5101516001600160a01b036102bb8386610a7e565b515116908051156108805760206102d28487610a7e565b510151600381101561086a57806104e6575081156104c55761ffff600080516020610c9f8339815191525416610343610309610a04565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610c5f565b8151916000915b8383106103605750505050506001905b0161017e565b6001600160e01b03196103738484610a7e565b51166000818152600080516020610cbf83398151915260205260409020549091906001600160a01b03166104ac5761040c6103ac6109e4565b87815261ffff9290921660208084018281526000868152600080516020610cbf83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b600080516020610c9f8339815191525491680100000000000000008310156104965761046d90610450600194858101600080516020610c9f83398151915255610b3a565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461048057810192019161034a565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405163ebbf5d0760e01b815260048101839052602490fd5b6040516302b8da0760e21b81529081906104e29060048301610af5565b0390fd5b600181036106415750811561062457610541610500610a04565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610c5f565b80519060005b82811061055a575050505060019061035a565b6001600160e01b031961056d8284610a7e565b51166000818152600080516020610cbf83398151915260205260409020546001600160a01b031630811461060b578581146105f257156105da576000908152600080516020610cbf8339815191526020526040902080546001600160a01b03191685179055600101610547565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b81529081906104e29060048301610af5565b6002810361084a5750600080516020610c9f833981519152549180610832575080519060005b82811061067a575050505060019061035a565b6001600160e01b031961068d8284610a7e565b51169081600052600080516020610cbf8339815191526020526040600020946106b46109e4565b95546001600160a01b03811680885260a09190911c61ffff166020880152156108195785516001600160a01b03163014610800578015610480576000190180958161ffff60208301511603610785575b5050600080516020610c9f8339815191525491821561076f576001926000190161072d81610b3a565b63ffffffff82549160031b1b19169055600080516020610c9f83398151915255600052600080516020610cbf8339815191526020526000604081205501610667565b634e487b7160e01b600052603160045260246000fd5b61ffff60206107966107f994610b3a565b90549060031b1c60e01b926107b384610450858585015116610b3a565b01516001600160e01b03199092166000908152600080516020610cbf83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610704565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610868906004830190610aa8565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b823567ffffffffffffffff81116109d05760606004358201360360231901126109d0576040519081606081011067ffffffffffffffff60608401111761049657606082016040526004358101602401356001600160a01b03811681036109d0578252600360448260043501013510156109d0576004358101604481013560208401526064013567ffffffffffffffff81116109d057366043828460043501010112156109d057602481836004350101013561095661011782610a4a565b9260208483815201903660448460051b868460043501010101116109d05760448482600435010101915b60448460051b86846004350101010183106109ad575050505050604082015281526020928301920161012d565b82356001600160e01b0319811690036109d0578235815260209283019201610980565b600080fd5b6330cd747160e01b8152600490fd5b604051906040820182811067ffffffffffffffff82111761049657604052565b604051906060820182811067ffffffffffffffff82111761049657604052565b6040519190601f01601f1916820167ffffffffffffffff81118382101761049657604052565b67ffffffffffffffff81116104965760051b60200190565b67ffffffffffffffff811161049657601f01601f191660200190565b8051821015610a925760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600382101561086a5752565b919082519283825260005b848110610ae1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ac0565b6020908160408183019282815285518094520193019160005b828110610b1c575050505090565b83516001600160e01b03191685529381019392810192600101610b0e565b90600080516020610c9f8339815191528054831015610a9257600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b6001600160a01b03811691908215610c5a5760008091610be5610ba7610a04565b602581527f6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f60208201526420636f646560d81b604082015282610c5f565b83519060208501905af4913d15610c52573d92610c0461011785610a62565b9384523d6000602086013e5b15610c1a57505050565b825115610c2957825160208401fd5b6104e260405192839263192105d760e01b84526004840152604060248401526044830190610ab5565b606092610c10565b505050565b803b15610c6a575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906104e2906044830190610ab556fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a2646970667358221220dfc9545f8f7121e6f756faa3af82eb336aaee62e7f49390d40c809bc467aff8164736f6c634300081300336080806040523461001657610868908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a71461006757806352ef6b2c146100625780637a0ed6271461005d578063adfca15e146100585763cdffacc61461005357600080fd5b610606565b610545565b610305565b610126565b346100ba576001600160e01b031961007e366100bf565b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460205260ff60406000205416151560805260206080f35b600080fd5b60209060031901126100ba576004356001600160e01b0319811681036100ba5790565b6020908160408183019282815285518094520193019160005b828110610109575050505090565b83516001600160a01b0316855293810193928101926001016100fb565b346100ba5760008060031936011261024a5760008051602061081383398151915254610151816106ed565b90829083905b808210610173578284526040518061016f86826100e2565b0390f35b90916101a661019961019461018786610755565b90549060031b1c60e01b90565b6107a6565b546001600160a01b031690565b856001600160a01b038216815b848110610201575b50506101f657816101e56101ea926101d66101f095896107eb565b6001600160a01b039091169052565b61072b565b9261072b565b90610157565b50916101f09061072b565b61022a61021e610211838b6107eb565b516001600160a01b031690565b6001600160a01b031690565b821461023e576102399061072b565b6101b3565b505050600138806101bb565b80fd5b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061028457505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106102e15750505090806001929a019501950193969594929190610272565b82516001600160e01b03191684528a949384019390920191600191909101906102c0565b346100ba5760008060031936011261024a576000805160206108138339815191525461033081610684565b9061033a816106ed565b92809181905b80821061039a5750505b818110610362578183526040518061016f858261024d565b8061038461037d610375600194886107eb565b5161ffff1690565b61ffff1690565b602061039083876107eb565b510151520161034a565b90926103a861018785610755565b6103b4610199826107a6565b846001600160a01b038216815b858110610463575b5050610457579161043861044b926103f8610451956103e8858c6107eb565b516001600160a01b039091169052565b61042883610405886106ed565b8b61041360209384926107eb565b510152610420858c6107eb565b5101516107de565b6001600160e01b03199091169052565b6101e5610445828a6107eb565b60019052565b9361072b565b90610340565b5050926104519061072b565b8a858b8461048561021e61047787856107eb565b51516001600160a01b031690565b1461049b575050506104969061072b565b6103c1565b6104f79550838095506104e7936104dd6104e29461042860206104c46104ee9a610375986107eb565b5101516104d761037d61037588886107eb565b906107eb565b6107eb565b6107ff565b918b6107eb565b9061ffff169052565b600138806103c9565b6020908160408183019282815285518094520193019160005b828110610527575050505090565b83516001600160e01b03191685529381019392810192600101610519565b346100ba5760203660031901126100ba576001600160a01b03600435818116908190036100ba576000805160206108138339815191525491600090610589846106ed565b92825b8581106105a4578385526040518061016f8782610500565b6105ad81610755565b90549060031b1c60e01b836105c1826107a6565b541683146105d9575b506105d49061072b565b61058c565b846105ff916105ec6105d49497896107eb565b6001600160e01b0319909116905261072b565b93906105ca565b346100ba5760206001600160a01b03610621610194366100bf565b5416604051908152f35b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761066757604052565b61062b565b67ffffffffffffffff81116106675760051b60200190565b906106966106918361066c565b610641565b82815280926106a7601f199161066c565b016000805b8281106106b95750505050565b604090815182810181811067ffffffffffffffff8211176106675760209352838152826060818301528287010152016106ac565b906106fa6106918361066c565b828152809261070b601f199161066c565b0190602036910137565b634e487b7160e01b600052601160045260246000fd5b600019811461073a5760010190565b610715565b634e487b7160e01b600052603260045260246000fd5b9060008051602061081383398151915280548310156107a157600052601c8260031c7fb65beca8b6fa788bcb1528c2ab5f4dc6bc98e5896550baa013d8330fab0b86f4019260021b1690565b61073f565b63ffffffff60e01b166000527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2602052604060002090565b8051156107a15760200190565b80518210156107a15760209160051b010190565b61ffff80911690811461073a576001019056fe806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3a2646970667358221220973a67b705440e239035d8e4163f857f54443566ddf15a7fa1823b14acd6f5e164736f6c634300081300336080806040523461001657612245908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c90816302e30f9a146114a85781630338150f1461146257816305aff0b31461143a57816306572c1a1461140957816306c46853146113ea57816322180594146113cb57816324729425146113ac5781632da5794a14611333578163335eb62a1461113657816341b6a2e81461110b5781634aa8f8a5146110ec578163544dddff146110c4578163599c7bd1146110a25781635d02968514610f8b5781636547cd6414610f6057816369e737fd14610f415781636ad21bb014610e63578163767ee5f414610de95781637edeac9214610d9a5781638789f83b14610d6f5781638cfd78e714610cdf57816394074b0314610c295781639704276614610a885781639d3070b514610a425781639e530b5714610a10578163a2b67158146109e5578163a517218f14610961578163a9294bdd146107c5578163ac12d76314610787578163b1ba49b01461075f578163b3ab3f7414610734578163b9ee584214610697578163c66c66a114610646578163ca41d5ce146104e2578163d6c5c39714610372578163dd81b5cf1461029d575063f3229131146101ba57600080fd5b346102995781600319360112610299576101d2611e36565b508051906101df82611896565b6006546101eb81611923565b6101f783519182611902565b818152602091828201600687527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f96905b82821061025757505050610253945083526001600160401b036007541690830152519182918261176f565b0390f35b60038560019288516102688161187b565b8b548152848060a01b03858d0154168382015261028760028d01611b9a565b8a820152815201980191019096610228565b5080fd5b9190503461036e576020918260031936011261036a576102bb611b73565b50358352600982528083209260038251946102d58661187b565b6102de81611acc565b8652600281015485870152018054906102f682611923565b9261030385519485611902565b828452908152848120858085015b848410610330578689018690528651828152806102538185018c6116d6565b600191600d91885161034181611896565b61034a86611cb1565b815260ff600c870154161515838201528152019201920191908690610311565b8380fd5b8280fd5b83833461029957816003193601126102995761038c611b47565b50610395611b47565b50601d549081156104cf576001600160401b03918083431604600181018091116104bc57906103c3916121e6565b8084526104216020809660088252848720908551966103e18861184a565b816103eb84611acc565b808a526002850154868b01526003850154898b01529301541660608801528551630c133d1360e31b815293849283928301612038565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49485156104b157809561046a575b505081606091610253949351968796158752860152840152606083019061159b565b909194508582813d83116104aa575b6104838183611902565b810103126104a75750610253929161049c606092611e7b565b949181939450610448565b80fd5b503d610479565b8351903d90823e3d90fd5b634e487b7160e01b855260118652602485fd5b634e487b7160e01b835260128452602483fd5b9190503461036e57602036600319011261036e57813591610501611b47565b5061050a611e50565b508284526008602052818420926001600160401b038284519561052c8761184a565b61053581611acc565b8752600281015460208801526003810154868801520154166060850152600a8351926308a6ad2560e01b84528301526024820152838160448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af490811561063c57906102539291856105bc969181809461060c575b50506105f16105fe939451978897610100808a5289019061159b565b926020880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b85820360c0870152611a19565b9083820360e0850152611a56565b6105fe94506105f1935061063292503d8091833e61062a8183611902565b810190611e88565b91929091936105a0565b82513d86823e3d90fd5b8284346104a75750610680610253610678610673610663366119e8565b61066b611d28565b50369061193a565b6120d6565b929092611d65565b835193849315158452806020850152830190611548565b9190503461036e57602036600319011261036e578060ff6107329260a0956106bd611e50565b5085358152601360205220938251946106d5866118cc565b80548652600181015460208701526002810154848701526003810154606087015201541615156080840152518092608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565bf35b90503461036e57602036600319011261036e5781602093600392358152600c85522001549051908152f35b5050346102995781600319360112610299576020906001600160401b03600754169051908152f35b9190503461036e57602036600319011261036e578060ff6107329260a0956107ad611e50565b5085358152600c60205220938251946106d5866118cc565b9190503461036e576020918260031936011261036a578035926107e6611b73565b506107ef611e50565b50838552600981528285209360038451956108098761187b565b61081281611acc565b875260028101548488015201805461082981611923565b9161083687519384611902565b81835288528388208890858085015b8484106109275750505050508486015260118451936308a6ad2560e01b85528401526024830152848260448173__$dd40c2ca5826d197ed7e2b6aae8146ec7b$__5af491821561091d5790856102539493926108c197908280956108f4575b50506105f1906105fe949551988998610100808b528a01906116d6565b93880190608080918051845260208101516020850152604081015160408501526060810151606085015201511515910152565b6105fe95506105f1935061091292503d8091833e61062a8183611902565b9490925081906108a4565b83513d87823e3d90fd5b600191600d918b5161093881611896565b61094186611cb1565b815260ff600c870154161515838201528152019201920191908690610845565b8284346104a757806003193601126104a7578151918291600d54808552602080950194600d83527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592905b8282106109ce5761025386866109c4828b0383611902565b519182918261180f565b8354875295860195600193840193909101906109ac565b5050346102995781600319360112610299576020906001600160401b03601c5460881c169051908152f35b8284346104a757506001600160401b03610a31610a2c366119e8565b611db8565b835191151582529091166020820152f35b8284346104a75760203660031901126104a75782356001600160401b03918282116104a75750610a7c61067360209560039336910161193a565b90500154169051908152f35b905082346104a757806003193601126104a75782518092600d54808352846020809401600d86527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592865b86828210610c1357505050610aea92500385611902565b835191610af683611923565b91610b0387519384611902565b838352601f19610b1285611923565b0182865b828110610bfd57505050845b6001600160401b039081811686811015610ba05790610b988284610b486001958d611e0c565b51168a52600887528b8587828d20835193610b628561184a565b610b6b82611acc565b855260028201548c8601526003820154908501520154166060820152610b91828a611e0c565b5287611e0c565b500116610b22565b8985878a83519280840190808552835180925280868601968360051b870101940192955b828710610bd15785850386f35b909192938280610bed600193603f198a8203018652885161159b565b9601920196019592919092610bc4565b610c05611b47565b828288010152018390610b16565b855484526001958601958a955093019201610ad3565b8284346104a757806003193601126104a757610c43611ab2565b50815191610c5083611896565b6019546001600160401b031683528051601a8054808352908452602093848301917f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e915b86828210610cc25788906102538888610caf818a0382611902565b83850152519282849384528301906114ed565b83546001600160a01b031685529093019260019283019201610c94565b90503461036e57602036600319011261036e579181928160c08451610d03816118b1565b610d0b611dea565b8152610d15611dea565b60208201528286820152826060820152826080820152606060a0820152015235815260036020522090610d4f60ff600c8401541692611cb1565b91610d63825193838594855284019061165c565b90151560208301520390f35b5050346102995781600319360112610299576020906001600160401b03601c5460481c169051908152f35b90503461036e57602036600319011261036e57610dcd906102539360208451610dc281611896565b828152015235612097565b9051918291829190916020806040830194805184520151910152565b8284346104a757806003193601126104a7578151918291601454808552602080950194601483527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92905b828210610e4c5761025386866109c4828b0383611902565b835487529586019560019384019390910190610e34565b8383346102995781600319360112610299578290610e7f611e36565b50805191610e8c83611896565b8054610e9781611923565b90610ea484519283611902565b8082526020928383019087527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96905b828210610eff57505050610253945083526001600160401b036005541690830152519182918261176f565b6003856001928851610f108161187b565b8b548152848060a01b03858d01541683820152610f2f60028d01611b9a565b8a820152815201980191019096610ed4565b505034610299578160031936011261029957602090601e549051908152f35b90503461036e57602036600319011261036e5781602093600392358152601385522001549051908152f35b8284346104a757806003193601126104a757601854610fa981611923565b90610fb684519283611902565b808252601f19610fc582611923565b01835b81811061108b575050825b818110611037575050825191602080840190808552835180925280868601968360051b870101940192955b82871061100b5785850386f35b909192938280611027600193603f198a82030186528851611548565b9601920196019592919092610ffe565b806001917fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e015485528460205261106f868620611d65565b6110798286611e0c565b526110848185611e0c565b5001610fd3565b602090611096611d28565b82828701015201610fc8565b50503461029957816003193601126102995760209060ff601c54169051908152f35b5050346102995781600319360112610299576020906001600160401b03600554169051908152f35b505034610299578160031936011261029957602090600b549051908152f35b5050346102995781600319360112610299576020906001600160401b03601c5460081c169051908152f35b50503461029957816003193601126102995780518092601454808352846020809401601484527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec92845b8682821061131d5750505061119792500385611902565b8351916111a383611923565b916111b085519384611902565b838352601f196111bf85611923565b0182825b82811061130757505050805b6001600160401b0390818116868110156112ab57826111ee828b611e0c565b511684526009855287842060038951916112078361187b565b61121081611acc565b835260028101548884015201805461122781611923565b916112348c519384611902565b818352875287872087898085018e5b858410611270579250505084611268959350600197969492500152610b91828a611e0c565b5001166111cf565b91600d916001935161128181611896565b61128a87611cb1565b815260ff600c880154161515838201528152019301910190918a908e611243565b87518581528651818701819052859190600581901b82018b01908989019089848e015b8287106112db5785850386f35b9091929382806112f7600193603f198a820301865288516116d6565b96019201960195929190926112ce565b61130f611b73565b8282880101520183906111c3565b855484526001958601958a955093019201611180565b9190503461036e57602036600319011261036e576001600160401b03816102539461135c611b47565b5084358152600860205220928251936113748561184a565b61137d81611acc565b85526002810154602086015260038101548486015201541660608301525191829160208352602083019061159b565b505034610299578160031936011261029957602090601b549051908152f35b5050346102995781600319360112610299576020906012549051908152f35b505034610299578160031936011261029957602090601d549051908152f35b8284346104a75760203660031901126104a75750606461143260209360ff601c541690356121e6565b049051908152f35b5050346102995781600319360112610299576020906001600160401b03601f54169051908152f35b50503461029957816003193601126102995781610253926020835161148681611896565b82815201526020825161149881611896565b8281520152610dcd600254612097565b90503461036e57602036600319011261036e5781610253936114da926114cc611d28565b503581528060205220611d65565b9051918291602083526020830190611548565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b82811061152b575050505090565b83516001600160a01b03168552938101939281019260010161151d565b9060c060a0611598938051845260208101516020850152604081015160408501526001600160401b0380606083015116606086015260808201511660808501520151918160a082015201906114ed565b90565b9060606001600160401b03816115ba85516080865260808601906114ed565b94602081015160208601526040810151604086015201511691015290565b60005b8381106115eb5750506000910152565b81810151838201526020016115db565b90602091611614815180928185528580860191016115d8565b601f01601f1916010190565b60406020611598938161163a8551858452858401906114ed565b940151908281860391015260ff815116845201519181602082015201906115fb565b9060c0806116cd61168b611679865160e0875260e0870190611620565b60208701518682036020880152611620565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a08701526115fb565b93015191015290565b6116e981516060845260608401906114ed565b60208083015181850152604080930151938381840391015283519182815281810182808560051b8401019601946000925b85841061172b575050505050505090565b909192939495968580600192601f198582030187528a5190828061175684518a85528a85019061165c565b930151151591015299019401940192959493919061171a565b602091828252606092838301918051946040938484870152865180915260808601918460808360051b8901019801926000915b8383106117c1575050505050906001600160401b039101511691015290565b909192939886806118008a856001958f8f83918591607f19908503018c525180518452898060a01b0388820151168885015201519382015201906115fb565b9b0193019301919392906117a2565b6020908160408183019282815285518094520193019160005b828110611836575050505090565b835185529381019392810192600101611828565b608081019081106001600160401b0382111761186557604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761186557604052565b604081019081106001600160401b0382111761186557604052565b60e081019081106001600160401b0382111761186557604052565b60a081019081106001600160401b0382111761186557604052565b60c081019081106001600160401b0382111761186557604052565b90601f801991011681019081106001600160401b0382111761186557604052565b6001600160401b0381116118655760051b60200190565b91906040838203126119e3576040519261195384611896565b836001600160401b03823581811681036119e3578252602092838101359182116119e357019280601f850112156119e357833561198f81611923565b9461199d6040519687611902565b818652848087019260051b8201019283116119e3578401905b8282106119c4575050500152565b81356001600160a01b03811681036119e35781529084019084016119b6565b600080fd5b600319906020818301126119e357600435916001600160401b0383116119e357826040920301126119e35760040190565b90815180825260208080930193019160005b828110611a39575050505090565b83516001600160a01b031685529381019392810192600101611a2b565b908082519081815260208091019281808460051b8301019501936000915b848310611a845750505050505090565b9091929394958480611aa2600193601f198682030187528a516115fb565b9801930193019194939290611a74565b60405190611abf82611896565b6060602083600081520152565b90604051611ad981611896565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b87868210611b285750505050611b2492500384611902565b0152565b83546001600160a01b0316855289955090930192918101918101611b0c565b60405190611b548261184a565b6000606083611b61611ab2565b81528260208201528260408201520152565b60405190611b808261187b565b6060604083611b8d611ab2565b8152600060208201520152565b90604051906000835490600182811c90808416968715611c61575b6020948584108914611c4d5787988489979899529081600014611c2b5750600114611bec575b505050611bea92500383611902565b565b600090815285812095935091905b818310611c13575050611bea9350820101388080611bdb565b85548884018501529485019487945091830191611bfa565b92505050611bea94925060ff191682840152151560051b820101388080611bdb565b634e487b7160e01b85526022600452602485fd5b91607f1691611bb5565b9060405191611c7983611896565b602083611c8583611acc565b8152611ca9600360405194611c9986611896565b60ff600282015416865201611b9a565b828401520152565b90604051611cbe816118b1565b60c0600b8294611ccd81611c6b565b8452611cdb60048201611c6b565b60208501526008810154604085015260098101546001600160401b038116606086015260a01b6001600160e01b0319166080850152611d1c600a8201611b9a565b60a08501520154910152565b60405190611d35826118e7565b81600081526000602082015260006040820152600060608201526000608082015260a0611d60611ab2565b910152565b90604051611d72816118e7565b60a0611d606004839580548552600181015460208601526002810154604086015260038101546001600160401b0390818116606088015260401c16608086015201611acc565b610673611dc691369061193a565b9015611de15760036001600160401b03910154169060019190565b50600090600090565b60405190611df782611896565b81611e00611ab2565b81526020611d60611ab2565b8051821015611e205760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405190611e4382611896565b6000602083606081520152565b60405190611e5d826118cc565b60006080838281528260208201528260408201528260608201520152565b519081151582036119e357565b909181830360e081126119e35760a0136119e3576040928351611eaa816118cc565b835181526020908185015182820152858501518682015260608501516060820152611ed760808601611e7b565b60808201529460a0850151926001600160401b03938481116119e357860191601f928284820112156119e357805190611f0f82611923565b91611f1c84519384611902565b808352868084019160051b830101918583116119e3578701905b828210612019575050509660c0810151908682116119e35701928281850112156119e357835191611f6683611923565b96611f7382519889611902565b838852868089019460051b870101958587116119e357878101945b878610611fa15750505050505050505090565b85518381116119e35782019087603f830112156119e3578982015190848211612004578551611fd8838901601f19168d0182611902565b828152898784860101116119e357611ff98c949385948986850191016115d8565b815201950194611f8e565b60246000634e487b7160e01b81526041600452fd5b81516001600160a01b03811681036119e3578152908701908701611f36565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061207a575050505090565b83516001600160a01b03168552938101939281019260010161206c565b600060206040516120a781611896565b8281520152600052600160205260406000206001604051916120c883611896565b805483520154602082015290565b61210d73__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859360048301612038565b0381865af49081156121ab576000916121b7575b509061215d91600052600081528060406000209361214160048601611acc565b906040518080968194630c133d1360e31b835260048301612038565b03915af49081156121ab57600091612177575b5090501591565b82813d83116121a4575b61218b8183611902565b810103126104a7575061219d90611e7b565b8038612170565b503d612181565b6040513d6000823e3d90fd5b908282813d83116121df575b6121cd8183611902565b810103126104a757505161215d612121565b503d6121c3565b818102929181159184041417156121f957565b634e487b7160e01b600052601160045260246000fdfea26469706673582212200894d1fa73274627bfc97f431b5696c4fbe4f8d666f48d8812d4dadb1542782a64736f6c6343000813003360808060405234610016576126cb908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081630517e1aa14610ec75750806318f44b7014610ce157806341c0e1b514610b9257806345f5448514610b015780635a627dbc14610ad15780636b2c1eef146104e0578063d8e25572146103a05763f207564e1461007757600080fd5b6020806003193601126102935760043590601a5460019081810180911161038a5760ff602b54161115610311578234106102ff576100f66100b88434611272565b936100c161127f565b90600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518095819263aa5106cb60e01b83523390600484016114ec565b0381855af492831561029f576000936102da575b5061011483612523565b906102c85760048101966001600160401b0397888651166001600160401b03198254161790556005820187860151908151918a831161025457908983926101618299979a98969584611551565b0190600052866000208960005b8481106102ab575050505050856002916101ac97554388820155015560405180809581946390ba52cf60e01b83528660048401526024830190611491565b03915af492831561029f5760009361026a575b505060185490600160401b8210156102545781018060185581101561023e5760186000527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0155601c54906102236001600160401b0360881b918360881c16611585565b60881b1667ffffffffffffffff60881b199190911617601c55005b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9080929350813d8311610298575b61028281836111ee565b8101031261029357519038806101bf565b600080fd5b503d610278565b6040513d6000823e3d90fd5b83516001600160a01b0316838201558c99909301928b910161016e565b604051631b538cdf60e11b8152600490fd5b6102f89193503d806000833e6102f081836111ee565b810190611469565b913861010a565b604051631036b5ad60e31b8152600490fd5b5060405190606082018281106001600160401b0382111761025457604052602382527f5375626e657420646f6573206e6f7420616c6c6f77206368696c64207375626e818301526265747360e81b604083015261038660405192839263015538b160e01b84526004840152602483019061124d565b0390fd5b634e487b7160e01b600052601160045260246000fd5b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc576103f43361248b565b90156104aa578161040a600461042b9301611310565b60405180938192632cff562160e11b83528460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af491821561029f5760009261046c575b600084610469876001600160a01b0387166115cd565b55005b90809250813d83116104a3575b61048381836111ee565b810103126102935760009261049a610469926113b2565b91819450610453565b503d610479565b604051630e991abd60e41b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6040516329f745a760e01b8152600490fd5b600319602036820112610293576004356001600160401b038111610293576040828236030112610293573415610abf57604051632e82508d60e21b815260a060048201529160009183918291610555919061053d60a48501611a06565b913360248601528483030160448501526004016118d1565b346064830152836084830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af490811561029f57600091610a9c575b50601e54908115610a8657816001600160401b034316046001810180911161038a5782810292818404149015171561038a57601c5468ffffffffffffffff006105e46001600160401b038360081c1680606086510152611585565b60081b169068ffffffffffffffff00191617601c558160005260096020526040600020916002830180541560001461069f579260039161062e9460198303610673575b5501611d98565b3447106106615760008080803460635af161064761159d565b501561064f57005b604051633204506f60e01b8152600490fd5b60405163356680b760e01b8152600490fd5b6001600160401b03601954166001600160401b031984541617835561069a60018401612408565b610627565b50506003820154601f546001600160401b031603610a75576003820154916106c68361139b565b926106d460405194856111ee565b808452601f196106e38261139b565b0160005b818110610a0d575050604051938460608101106001600160401b03606087011117610254576060850160405261071b61127f565b8552436020860152604085015260005b81811061094b5750604051602081526107508551606060208401526080830190611491565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b83831061091e575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a260006003830155806108ac575b509060036107d79201611d98565b60208101516000526009602052604060002081516001600160401b038151166001600160401b0319835416178255602060018301910151908151916001600160401b0383116102545760209061082d8484611551565b0190600052602060002060005b83811061088f57505050602083015160028301555060408201515160039091019160005b82811061086e575050505061062e565b8061088961088260019360408601516122a6565b5186611d98565b0161085e565b82516001600160a01b03168183015560209092019160010161083a565b80600d0290600d82040361038a57600382016000526020600020908101905b8181106108d857506107c9565b806108e4600d926123e5565b6108f0600482016123e5565b600060088201556000600982015561090a600a820161239c565b6000600b8201556000600c820155016108cb565b909192939560208061093c600193601f198682030187528a51611ac1565b98019301930191939290610788565b80610a068161095f60019460038801611d42565b5060408901519060ff600c60405192610977846111b8565b604051610983816111d3565b61098c8261235e565b815261099a6004830161235e565b60208201526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b03191660808201526109db600a83016122ba565b60a0820152600b82015460c0820152845201541615156020820152610a0083836122a6565b526122a6565b500161072b565b602090604051610a1c816111b8565b604051610a28816111d3565b610a3061227f565b8152610a3a61227f565b84820152600060408201526000606082015260006080820152606060a0820152600060c08201528152600083820152828289010152016106e7565b6003610a819201611d98565b61062e565b634e487b7160e01b600052601260045260246000fd5b610ab991503d806000833e610ab181836111ee565b8101906117da565b81610589565b6040516360ec4e6b60e11b8152600490fd5b60003660031901126102935734156102ff57610aec3361248b565b90156104aa57610afd3482546111ab565b9055005b346102935760208060031936011261029357600435907f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600959060018254146104ce576001825582156104bc57610b553361248b565b90156104aa578054848110610b805761040a600461042b93610b78888795611272565b815501611310565b6040516379b33e7960e01b8152600490fd5b3461029357600036600319011261029357610bac3361248b565b90156104aa576002810154610ccf578054601c546001600160401b03600019818360881c160190811161038a5767ffffffffffffffff60881b1990911660889190911b67ffffffffffffffff60881b1617601c55610c3591610c1090600401611310565b604051906390ba52cf60e01b8252818060209586938460048401526024830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610ca0575b50610c9e92600091825252610c986005604060002060008155600060018201556000600282015560006003820155600060048201550161152b565b336115cd565b005b90508281813d8311610cc8575b610cb781836111ee565b810103126102935751610c9e610c5d565b503d610cad565b604051637c67c70160e11b8152600490fd5b600319604036820112610293576004356001600160401b03918282116102935760408183600401933603011261029357602435928311610293576040908336030112610293573415610abf57610d3f610d3a3683611620565b612523565b50156104aa57610d54602061040a3684611620565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091610e89575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa90811561029f57600091610e5a575b50516002811015610e4457610e3257610de69160009160405193849283926379185f5960e11b845234916004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af4801561029f57610c9e91600091610e17575b50611b5a565b610e2c91503d806000833e610ab181836111ee565b82610e11565b6040516340772cb360e11b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b610e7c915060403d604011610e82575b610e7481836111ee565b8101906116c3565b83610dad565b503d610e6a565b90506020813d8211610ebf575b81610ea3602093836111ee565b81010312610293576040610eb86004926113b2565b9150610d7c565b3d9150610e96565b346102935760031990606036830112610293576004356001600160401b03928382116102935760408183600401933603011261029357602480359185831161029357604090833603011261029357604435947f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009594600186541461119c575060018555610f7a610f563686611620565b60405190632cff562160e11b82528180602094859384600484015288830190611491565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af490811561029f57600091611167575b506040516380875df760e01b815260408160048160018060a01b038096165afa90811561029f57600091611148575b508051600281101561113357600103610e32578051600281101561113357600114611071575b50505050509060009161102460405195869384936379185f5960e11b85526004019033906004860161193c565b038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af491821561029f576000926104699184916110575750611b5a565b61106b91503d8086833e610ab181836111ee565b84610e11565b8201511691604051828101916323b872dd60e01b835233868301523060448301528960648301526064825260a08201908282109082111761111e57604052516110cc91600091829182875af16110c561159d565b9084612635565b80519182151592836110fd575b5050506110e857808080610ff7565b60405190635274afe760e01b82526004820152fd5b829350918192810103126102935761111591016117cd565b158780806110d9565b85634e487b7160e01b60005260416004526000fd5b85634e487b7160e01b60005260216004526000fd5b611161915060403d604011610e8257610e7481836111ee565b89610fd1565b90508181813d8311611195575b61117e81836111ee565b810103126102935761118f906113b2565b88610fa2565b503d611174565b6329f745a760e01b8152600490fd5b9190820180921161038a57565b604081019081106001600160401b0382111761025457604052565b60e081019081106001600160401b0382111761025457604052565b90601f801991011681019081106001600160401b0382111761025457604052565b6001600160401b03811161025457601f01601f191660200190565b60005b83811061123d5750506000910152565b818101518382015260200161122d565b906020916112668151809281855285808601910161122a565b601f01601f1916010190565b9190820391821161038a57565b6040519061128c826111b8565b816001600160401b036019541681526040518091601a54808352836020809401601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9260005b868282106112f1575050506112ed925003846111ee565b0152565b85546001600160a01b03168452600195860195899550930192016112d6565b9060405161131d816111b8565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061136857505050506112ed925003846111ee565b83546001600160a01b0316855289955090930192918101918101611350565b51906001600160401b038216820361029357565b6001600160401b0381116102545760051b60200190565b51906001600160a01b038216820361029357565b919060408382031261029357604051926113df846111b8565b836113e982611387565b815260209182810151906001600160401b03821161029357019280601f850112156102935783516114198161139b565b9461142760405196876111ee565b818652848087019260051b8201019283116102935784809101915b83831061145157505050500152565b819061145c846113b2565b8152019101908490611442565b906020828203126102935781516001600160401b0381116102935761148e92016113c6565b90565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106114cf575050505090565b83516001600160a01b0316855293810193928101926001016114c1565b90611504602091949394604084526040840190611491565b6001600160a01b03909416910152565b81811061151f575050565b60008155600101611514565b8054600082558061153a575050565b61154f91600052602060002090810190611514565b565b90600160401b81116102545781549080835581811061156f57505050565b61154f9260005260206000209182019101611514565b9060016001600160401b038093160191821161038a57565b3d156115c8573d906115ae8261120f565b916115bc60405193846111ee565b82523d6000602084013e565b606090565b814710610661576000918291829182916001600160a01b03165af16115f061159d565b501561064f57565b35906001600160401b038216820361029357565b35906001600160a01b038216820361029357565b91906040838203126102935760405192611639846111b8565b83611643826115f8565b815260209182810135906001600160401b03821161029357019280601f850112156102935783356116738161139b565b9461168160405196876111ee565b818652848087019260051b8201019283116102935784809101915b8383106116ab57505050500152565b81906116b68461160c565b815201910190849061169c565b9081604091031261029357604051906116db826111b8565b805160028110156102935782526116f4906020016113b2565b602082015290565b81601f820112156102935780516117128161120f565b9261172060405194856111ee565b818452602082840101116102935761148e916020808501910161122a565b91906040838203126102935760405192611757846111b8565b838151916001600160401b039283811161029357846117779183016113c6565b82526020810151908382116102935701604081850312610293576040519361179e856111b8565b815160ff811681036102935785526020820151938411610293576020936117c592016116fc565b828401520152565b5190811515820361029357565b906020828203126102935781516001600160401b03928382116102935701916040838303126102935760405192611810846111b8565b80518281116102935781019260e0848203126102935760405190611833826111d3565b8451848111610293578161184891870161173e565b82526020850151848111610293578161186291870161173e565b60208301526040850151604083015261187d60608601611387565b606083015260808501516001600160e01b03198116810361029357608083015260a085015193841161029357846118bd60c0926020966116f498016116fc565b60a0840152015160c08201528452016117cd565b803560ff81168091036102935782526020810135601e1982360301811215610293570190602082359201916001600160401b038111610293578036038313610293578060609360406020850152816040850152848401376000828201840152601f01601f1916010190565b929094939460a0845260e08401926001600160401b03938461195d846115f8565b1660a087015260209283810135601e19823603018112156102935701908382359201958211610293578160051b36038613610293578190604060c0890152526101008601949060005b8181106119e1575050506001600160a01b031690840152828203604084015260009260809290916119d791906118d1565b9460608201520152565b9091958480600192838060a01b036119f88b61160c565b1681520197019291016119a6565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611a65575050505090565b83546001600160a01b031685529384019360019384019390910190611a57565b6040602061148e9381611a9f855185845285840190611491565b940151908281860391015260ff8151168452015191816020820152019061124d565b906020808351936040845260c0611b47611ae8875160e06040890152610120880190611a85565b611b038589015191603f1992838a83030160608b0152611a85565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e089015261124d565b9501516101008501520151151591015290565b611bb760209182815101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__90604091611b9f83519263089032d560e01b84528460048501526044840190611491565b60031983820301602484015282806000978893611a06565b0381845af4918215611d38578592611d1c575b50611bd482612523565b9015611d0b57918691836003611c4896950180546001600160401b03611c028183168060608d510152611585565b16906001600160401b031916179055611c256002868951015192019182546111ab565b9055835180809681946304e384ff60e21b83528660048401526024830190611491565b03915af4918215611d01578492611c9f575b507f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f70969350611c9a905192839286845260018060a01b031695830190611ac1565b0390a2565b915091928482813d8311611cfa575b611cb881836111ee565b81010312611cf7575090611c9a611cf07f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709694936113b2565b9190611c5a565b80fd5b503d611cae565b81513d86823e3d90fd5b8351630e991abd60e41b8152600490fd5b611d319192503d8087833e6102f081836111ee565b9038611bca565b83513d87823e3d90fd5b805482101561023e57600052600d602060002091020190600090565b90600182811c92168015611d8e575b6020831014611d7857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d6d565b8054600160401b81101561025457611db7906001928382018155611d42565b91909161224f578251918251928351926001600160401b03808551166001600160401b0319908186541617855582850192602080970151805190848211610254578890611e048388611551565b01600095865288862083875b848110612234575050505050866002870198015160ff8151169860ff19998a8254161790556003928884890192015191825186811161214e5780611e548354611d5e565b94898d601f9788808211612207575b505050508c9086831160011461219c578a92612191575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a019101519081519187831161217d578b90611ec38484611551565b019088528a882085895b84811061216257505050505088600689019101519060ff8251168b825416179055886007890191015180519086821161214e578190611f0c8454611d5e565b8c868211612121575b50508b908583116001146120c25789926120b7575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a08701519081519586116120a357611f9c8754611d5e565b8a84821161206c575b505089928611600114611ffd57938560ff9a999794819460c09894600c9b9895611ff2575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611fca565b9294939190601f1985168785528a8520945b818110612057575092859260ff9b9a989592600c9a9760c099961061203d575b50505050811b019055611fda565b01519060f884600019921b161c191690553880808061202f565b82840151865594870194928b01928b0161200f565b612093918984528582852091818b0160051c8301938b1061209a575b0160051c0190611514565b388a611fa5565b92508192612088565b634e487b7160e01b81526041600452602490fd5b015190503880611f2a565b848a528c8a208794509190601f1984168b8f5b82821061210a57505084116120f2575b505050811b019055611f3c565b015160001983891b60f8161c191690553880806120e5565b8385015186558a979095019493840193018f6120d5565b61214791868c5287828d209181870160051c830193871061209a570160051c0190611514565b388c611f15565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611ecd565b634e487b7160e01b89526041600452602489fd5b015190503880611e7a565b879350908d91601f198416868d52838d20938d905b8282106121e657505084116121ce575b505050811b019055611e8c565b0151600019838a1b60f8161c191690553880806121c1565b91929395968291958786015181550195019301908f918a96959493926121b1565b82848961222b9652209181870160051c830193871061209a570160051c0190611514565b898d3888611e63565b83516001600160a01b031683820155928b0192859101611e10565b634e487b7160e01b600052600060045260246000fd5b60405190612272826111b8565b6060602083600081520152565b6040519061228c826111b8565b81612295612265565b815260206122a1612265565b910152565b805182101561023e5760209160051b010190565b90604051918260008254926122ce84611d5e565b90818452600194858116908160001461233b57506001146122f8575b505061154f925003836111ee565b9093915060005260209081600020936000915b81831061232357505061154f935082010138806122ea565b8554888401850152948501948794509183019161230b565b91505061154f94506020925060ff191682840152151560051b82010138806122ea565b906040519161236c836111b8565b60208361237883611310565b81526117c560036040519461238c866111b8565b60ff6002820154168652016122ba565b6123a68154611d5e565b90816123b0575050565b81601f600093116001146123c2575055565b9080839182526123e1601f60208420940160051c840160018501611514565b5555565b600361154f91600081556123fb6001820161152b565b600060028201550161239c565b601a811461248857601a54906001600160401b0382116102545761242c8282611551565b6000908152602081207f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e80545b848410612467575050505050565b600191820180546001600160a01b0390921684860155939091019290612459565b50565b6001600160a01b038116156125115760006124c3916124a861127f565b60405163aa5106cb60e01b81529384928392600484016114ec565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4801561029f576124f4916000916124f8575b50612523565b9091565b61250b913d8091833e6102f081836111ee565b386124ee565b6040516370e4510960e01b8152600490fd5b61256173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b8252818060209485938460048401526024830190611491565b0381865af490811561029f57600091612606575b50906125b891600052600081528060406000209361259560048601611310565b906040518080968194630c133d1360e31b83528660048401526024830190611491565b03915af490811561029f576000916125d2575b5090501591565b82813d83116125ff575b6125e681836111ee565b81010312611cf757506125f8906117cd565b80386125cb565b503d6125dc565b908282813d831161262e575b61261c81836111ee565b81010312611cf75750516125b8612575565b503d612612565b901561267357815115612646575090565b803b15612651575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561268357805190602001fd5b604051630a12f52160e11b8152600490fdfea2646970667358221220dd92a67b67699877016ad359a138b85ca6f355bae9c3a9f9e69e9c5d927b8a0264736f6c6343000813003360808060405234610016576123aa908161001c8239f35b600080fdfe608060408181526004908136101561001657600080fd5b600092833560e01c908163210b944e146101bc57506325bf0db61461003a57600080fd5b6020806003193601126101b857823560ff602b5460101c1615610140578085526003825282852090600b820154601b54811061013057341061012057906100a891600861008e610089846109e9565b610cbd565b920154908752600384526100a3858820610b55565b611bb5565b6100b4601b5434610590565b806100bd578480f35b804710610111578480808093335af1903d1561010b57843d916100df8361051b565b926100ec865194856104fa565b83523d92013e5b156100fe5780808480f35b51633204506f60e01b8152fd5b506100f3565b50505163356680b760e01b8152fd5b50505051631036b5ad60e31b8152fd5b84516334472ad760e11b81528690fd5b50826101b483805190610152826104df565b603682527f537570706f727420666f72206d756c74692d6c6576656c2063726f73732d6e6585830152751d081b595cdcd859d95cc81a5cc8191a5cd8589b195960521b818301525193849363015538b160e01b85528401526024830190610536565b0390fd5b8380fd5b91905060206003199381853601126103af5780356001600160401b039586821161048f5781830195858284360301126103bb5760ff602b5460081c16156104165750846102098780610576565b013561022260c061021a8980610576565b013534610590565b03610406576102848461027561025461024461023e8b80610576565b806105b3565b61024f3691806105b3565b6105f3565b885163c836244d60e01b81528781018a9052938492839260448401906106b2565b8683820301602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156103fc5789916103cf575b50156103bf578451966102bd88610493565b86358181116103b35760e09084019283360301126103bb578551916102e1836104c4565b848101358281116103b7576102fb908636918401016107c1565b835260248101358281116103b757610318908636918401016107c1565b86840152604481013587840152610331606482016105c8565b606084015260848101356001600160e01b0319811681036103b757608084015260a48101359182116103b35761037060c492602496369184010161077a565b60a0840152013560c0820152865201359081151582036103af57846103a59261039e926103ac970152610cbd565b9280610576565b0135611bb5565b80f35b8580fd5b8980fd5b8a80fd5b8880fd5b845163508847ab60e11b81528390fd5b6103ef9150853d87116103f5575b6103e781836104fa565b81019061069a565b386102ab565b503d6103dd565b86513d8b823e3d90fd5b84516360ec4e6b60e11b81528390fd5b836101b4828861042689956104df565b603a82527f537570706f727420666f722067656e6572616c2d707572706f73652063726f73858301527f732d6e6574206d657373616765732069732064697361626c6564000000000000818301525193849363015538b160e01b85528401526024830190610536565b8780fd5b604081019081106001600160401b038211176104ae57604052565b634e487b7160e01b600052604160045260246000fd5b60e081019081106001600160401b038211176104ae57604052565b606081019081106001600160401b038211176104ae57604052565b90601f801991011681019081106001600160401b038211176104ae57604052565b6001600160401b0381116104ae57601f01601f191660200190565b919082519283825260005b848110610562575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610541565b90359060de198136030182121561058b570190565b600080fd5b9190820391821161059d57565b634e487b7160e01b600052601160045260246000fd5b903590603e198136030182121561058b570190565b35906001600160401b038216820361058b57565b6001600160401b0381116104ae5760051b60200190565b919060408382031261058b576040519261060c84610493565b83610616826105c8565b815260209182810135906001600160401b03821161058b57019280601f8501121561058b578335610646816105dc565b9461065460405196876104fa565b818652848087019260051b82010192831161058b578401905b82821061067b575050500152565b81356001600160a01b038116810361058b57815290840190840161066d565b9081602091031261058b5751801515810361058b5790565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106106f0575050505090565b83516001600160a01b0316855293810193928101926001016106e2565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a600052600080516020612355833981519152916000905b82821061075a575050505090565b83546001600160a01b03168552938401936001938401939091019061074c565b81601f8201121561058b578035906107918261051b565b9261079f60405194856104fa565b8284526020838301011161058b57816000926020809301838601378301015290565b919060408382031261058b57604051926107da84610493565b838135916001600160401b039283811161058b57846107fa9183016105f3565b825260208101359083821161058b570160408185031261058b576040519361082185610493565b813560ff8116810361058b578552602082013593841161058b57602093610848920161077a565b828401520152565b9060405161085d81610493565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b878682106108ac57505050506108a8925003846104fa565b0152565b83546001600160a01b0316855289955090930192918101918101610890565b90600182811c921680156108fb575b60208310146108e557565b634e487b7160e01b600052602260045260246000fd5b91607f16916108da565b9060405191826000825492610919846108cb565b9081845260019485811690816000146109885750600114610945575b5050610943925003836104fa565b565b9093915060005260209081600020936000915b81831061097057505061094393508201013880610935565b85548884018501529485019487945091830191610958565b91505061094394506020925060ff191682840152151560051b8201013880610935565b90604051916109b983610493565b6020836109c583610850565b81526108486003604051946109d986610493565b60ff600282015416865201610905565b906040516109f681610493565b602060ff600c8395604051610a0a816104c4565b610a13826109ab565b8152610a21600483016109ab565b818601526008820154604082015260098201546001600160401b038116606083015260a01b6001600160e01b0319166080820152610a61600a8301610905565b60a0820152600b82015460c082015285520154161515910152565b818110610a87575050565b60008155600101610a7c565b90600160401b81116104ae57815490808355818110610ab157505050565b6109439260005260206000209182019101610a7c565b610ad181546108cb565b9081610adb575050565b81601f60009311600114610aed575055565b908083918252610b0c601f60208420940160051c840160018501610a7c565b5555565b600361094391600081556001810180546000825580610b39575b50506000600282015501610ac7565b610b4e91600052602060002090810190610a7c565b3880610b2a565b600c600091610b6381610b10565b610b6f60048201610b10565b826008820155826009820155610b87600a8201610ac7565b82600b8201550155565b60406020610bcd9381610bab8551858452858401906106b2565b940151908281860391015260ff81511684520151918160208201520190610536565b90565b51906001600160a01b038216820361058b57565b906020808383031261058b5782516001600160401b039384821161058b57019260408484031261058b5760405193610c1b85610493565b8051828116810361058b5785528281015191821161058b57019180601f8401121561058b578251610c4b816105dc565b93610c5960405195866104fa565b818552838086019260051b82010192831161058b5783809101915b838310610c85575050505082015290565b8190610c9084610bd0565b8152019101908390610c74565b60021115610ca757565b634e487b7160e01b600052602160045260246000fd5b60208151015151604051630c133d1360e31b81526020600482015260208180610ce960248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b96575b50611b845760405163c836244d60e01b81526040600482015260208180610d4f610d3e60448301876106b2565b82810360031901602484015261070d565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611b65575b50611b53578151610e346020825151926040518093819263f47ad7eb60e01b83526040600484015260c0610e1a610dd3610dbe845160e06044890152610124880190610b91565b84890151878203604319016064890152610b91565b6040840151608487015260608401516001600160401b031660a487015260808401516001600160e01b03191660c487015260a08401518682036043190160e4880152610536565b91015161010484015282810360031901602484015261070d565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156117a157600091611b14575b509060405192631ccc893360e11b84526040600485015260008480610e99610e8760448301866106b2565b828103600319016024840152866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610eee96600091611afb575b50604051968792839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156117a157600094611ada575b50600090610f2384610c9d565b6001840361199c5750506040516308c7427760e11b8152602060048201529060008280610f5360248201856106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157610d3e602091610fa894600091611983575b50604051948592839263c836244d60e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49182156117a157600092611962575b50816118c7575b505b61185b57610fe681610c9d565b15908115611853575b506114b057601e54801561149a57806001600160401b034316046001810180911161059d5781810291818304149015171561059d57601c5468ffffffffffffffff0061104d6001600160401b038360081c1680606087510152611c27565b60081b169068ffffffffffffffff00191617601c55806000526009602052604060002090600282018054156000146110cf579260038361109b9360409660198597036110a3575b5501611d0a565b510151151590565b6001600160401b03601954166001600160401b03198454161783556110ca6001840161222c565b611094565b50506003810154601f546001600160401b031603611485576003810154906110f6826105dc565b9161110460405193846104fa565b808352601f19611113826105dc565b0160005b81811061141d575050604051928360608101106001600160401b036060860111176104ae579084916060850160405261115260608601610493565b6001600160401b03601954166060860152604051806020601a54918281520190601a6000526000805160206123558339815191529060005b8181106113fb57505050816111a09103826104fa565b6080860152606085018552436020860152604085015260005b8181106113bc5750604051602081526111de85516060602084015260808301906106b2565b9060208601516040820152604086015191601f19828203016060830152825180825260208201916020808360051b8301019501926000915b838310611387575050505050807f39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e9143930390a2600060038401558061133c575b5060036112649201611d0a565b6020810151600052600960205260406000209080516001600160401b038151166001600160401b0319845416178355602060018401910151908151916001600160401b0383116104ae576020906112bb8484610a93565b0190600052602060002060005b83811061131f575050506020820151600284015550604081015151916003019060005b8381106112fe575050505060409061109b565b806113196113126001936040860151612218565b5185611d0a565b016112eb565b82516001600160a01b0316818301556020909201916001016112c8565b600d9150818102908282040361059d57908491600384016000526020600020908101905b81811061136e575050611257565b82935061137d81939293610b55565b0190859291611360565b91939697509193946020806113a8600193601f198682030187528a51611c3f565b98019301930190928a979695949293611216565b60019192506113f1816113d28160038801611cd8565b506113e16040890151916109e9565b6113eb8383612218565b52612218565b50019084916111b9565b82546001600160a01b031684528a97506020909301926001928301920161118a565b60209060405161142c81610493565b604051611438816104c4565b6114406121f1565b815261144a6121f1565b84820152600060408201526000606082015260006080820152606060a0820152600060c0820152815260008382015282828801015201611117565b9061149581600360409401611d0a565b61109b565b634e487b7160e01b600052601260045260246000fd5b601c546001600160401b038160481c166001600160401b03811461059d57600167ffffffffffffffff60481b910160481b169067ffffffffffffffff60481b191617601c556115206020825101515160405191829163089032d560e01b83526040600484015260448301906106b2565b600319828203016024830152606060408201916001600160401b0360195416815260406020820152601a548093520190601a6000526000805160206123558339815191529060005b818110611831575050509080600092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a157600091611810575b506040516390ba52cf60e01b815260206004820181905281806115c560248201866106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117de575b50600052600060205260406000209061162e602061160d60048501610850565b60405180938192630c133d1360e31b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a1576000916117bf575b506117ad576003820180546001600160401b0361167b81831680606089510152611c27565b16906001600160401b0319161790556002604084510151920190815492830180931161059d576116ca9260209255604051809381926304e384ff60e21b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49081156117a15760009161173f575b5060405160208082526001600160a01b03909216927f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692829161173791830190611c3f565b0390a2600090565b906020823d602011611799575b81611759602093836104fa565b81010312611796575061173761178f7f392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f709692610bd0565b91506116f2565b80fd5b3d915061174c565b6040513d6000823e3d90fd5b604051630e991abd60e41b8152600490fd5b6117d8915060203d6020116103f5576103e781836104fa565b38611656565b906020823d602011611808575b816117f8602093836104fa565b81010312611796575051386115ed565b3d91506117eb565b61182b913d8091833e61182381836104fa565b810190610be4565b3861159f565b82546001600160a01b0316845285945060209093019260019283019201611568565b905038610fef565b60405163015538b160e01b815260206004820152603860248201527f70726f7061676174696f6e206e6f742073757070706f7274656420666f72207360448201527f75626e657473207769746820455243323020737570706c7900000000000000006064820152608490fd5b6118f0915060209060405180938192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af480156117a157600090611927575b611921915061229d565b38610fd7565b6020823d60201161195a575b81611940602093836104fa565b81010312611796575061195561192191610bd0565b611917565b3d9150611933565b61197c91925060203d6020116103f5576103e781836104fa565b9038610fd0565b611996913d8091833e61182381836104fa565b38610f84565b9091506119a883610c9d565b8183156119b7575b5050610fd9565b610d3e6119e192604051938492839263089032d560e01b84526040600485015260448401906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611acf578291602091611a329491611ab5575b5060405180948192632cff562160e11b835284600484015260248301906106b2565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115611aa9578091611a6b575b50611a64915061229d565b38816119b0565b90506020823d602011611aa1575b81611a86602093836104fa565b810103126117965750611a9b611a6491610bd0565b38611a59565b3d9150611a79565b604051903d90823e3d90fd5b611ac991503d8085833e61182381836104fa565b38611a10565b6040513d84823e3d90fd5b611af491945060203d6020116103f5576103e781836104fa565b9238610f16565b611b0e913d8091833e61182381836104fa565b38610eca565b6020813d602011611b4b575b81611b2d602093836104fa565b81010312611b475751906002821015611796575038610e5c565b5080fd5b3d9150611b20565b604051632f3335ff60e21b8152600490fd5b611b7e915060203d6020116103f5576103e781836104fa565b38610d77565b60405163c5f563eb60e01b8152600490fd5b611baf915060203d6020116103f5576103e781836104fa565b38610d11565b90611bbd5750565b804710611c155760008080809360635af13d15611c10573d611bde8161051b565b90611bec60405192836104fa565b8152600060203d92013e5b15611bfe57565b604051633204506f60e01b8152600490fd5b611bf7565b60405163356680b760e01b8152600490fd5b9060016001600160401b038093160191821161059d57565b906020808351936040845260c0611cc5611c66875160e06040890152610120880190610b91565b611c818589015191603f1992838a83030160608b0152610b91565b90604089015160808901526001600160401b0360608a01511660a089015263ffffffff60e01b60808a0151168489015260a0890151908883030160e0890152610536565b9501516101008501520151151591015290565b8054821015611cf457600052600d602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b8054600160401b8110156104ae57611d29906001928382018155611cd8565b9190916121c1578251918251928351926001600160401b03808551166001600160401b03199081865416178555828501926020809701518051908482116104ae578890611d768388610a93565b01600095865288862083875b8481106121a6575050505050866002870198015160ff8151169860ff19998a825416179055600392888489019201519182518681116120c05780611dc683546108cb565b94898d601f9788808211612179575b505050508c9086831160011461210e578a92612103575b505060001982881b1c191690851b1790555b6004880190898801519182519187835116908254161790558960058a01910151908151918783116120ef578b90611e358484610a93565b019088528a882085895b8481106120d457505050505088600689019101519060ff8251168b82541617905588600789019101518051908682116120c0578190611e7e84546108cb565b8c868211612093575b50508b90858311600114612034578992612029575b505060001982871b1c191690841b1790555b6040860151600888015560098701846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a87019460a087015190815195861161201557611f0e87546108cb565b8a848211611fde575b505089928611600114611f6f57938560ff9a999794819460c09894600c9b9895611f64575b50501b92600019911b1c19161790555b0151600b820155019301511515918354169116179055565b015193503880611f3c565b9294939190601f1985168785528a8520945b818110611fc9575092859260ff9b9a989592600c9a9760c0999610611faf575b50505050811b019055611f4c565b01519060f884600019921b161c1916905538808080611fa1565b82840151865594870194928b01928b01611f81565b612005918984528582852091818b0160051c8301938b1061200c575b0160051c0190610a7c565b388a611f17565b92508192611ffa565b634e487b7160e01b81526041600452602490fd5b015190503880611e9c565b848a528c8a208794509190601f1984168b8f5b82821061207c5750508411612064575b505050811b019055611eae565b015160001983891b60f8161c19169055388080612057565b8385015186558a979095019493840193018f612047565b6120b991868c5287828d209181870160051c830193871061200c570160051c0190610a7c565b388c611e87565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d0192879101611e3f565b634e487b7160e01b89526041600452602489fd5b015190503880611dec565b879350908d91601f198416868d52838d20938d905b8282106121585750508411612140575b505050811b019055611dfe565b0151600019838a1b60f8161c19169055388080612133565b91929395968291958786015181550195019301908f918a9695949392612123565b82848961219d9652209181870160051c830193871061200c570160051c0190610a7c565b898d3888611dd5565b83516001600160a01b031683820155928b0192859101611d82565b634e487b7160e01b600052600060045260246000fd5b604051906121e482610493565b6060602083600081520152565b604051906121fe82610493565b816122076121d7565b815260206122136121d7565b910152565b8051821015611cf45760209160051b010190565b601a811461229a57601a54906001600160401b0382116104ae576122508282610a93565b60009081526020812060008051602061235583398151915280545b848410612279575050505050565b600191820180546001600160a01b039092168486015593909101929061226b565b50565b604080516380875df760e01b815290918290829060049082906001600160a01b03165afa91821561234a576000926122ec575b5050600190516122df81610c9d565b6122e881610c9d565b1490565b8082813d8311612343575b61230181836104fa565b8101031261233f57519161231483610493565b8151906002821015611796575060208392612333926001955201610bd0565b602082015290386122d0565b8280fd5b503d6122f7565b513d6000823e3d90fdfe057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63ea2646970667358221220d8540252cab147fdb631bf9262837b6746ad5c2b287d013c80030ea982af557e64736f6c634300081300336080806040523461001657612a56908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630bed761514610b845780630db0f77c1461070357806332e7661f1461027b5763bacc656d1461004857600080fd5b346102765760208060031936011261027657600435906100666126bd565b6012545b8281106101b157506012548083111561019f575b82811061008c576012839055005b80600052601382526040600020906000825560006004600193828582015582600282015582600382015501556016835260406000208054906000815581610179575b505080600052604060002060405180828682945493848152019060005286600020926000905b8789828410610160575050505061010d9250038261104c565b8051908360005b83811061012557505050500161007e565b600085815260178852604090206001600160a01b036101448386611899565b51166000528752610158604060002061182d565b018490610114565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b82811061019357506100ce565b60008155018390610186565b604051636819a3a960e01b8152600490fd5b806000526009908183526040600020916000835560036001936101d5858201611799565b60006002820155019081549060008355816101f4575b5050500161006a565b600d9282840292848404036102605760005285600020918201915b82811061021c57506101eb565b806102278592611876565b61023360048201611876565b6000600882015560008382015561024c600a820161182d565b6000600b8201556000600c8201550161020f565b634e487b7160e01b600052601160045260246000fd5b600080fd5b346102765760031960603682011261027657600435906001600160401b038211610276576060908236030112610276576102b36126bd565b6102c86102c33683600401611445565b612679565b601e5480156106ed57602482013506158015906106df575b6106cd57602481013560005260096020526002604060002001546106bb576040516020808201526103286103176004840180611617565b6060604084015260a083019061165f565b6024830135606083015281610343604485018560040161162b565b603f93919319838303016080840152808252602082019060208160051b84010192856000915b8383106105b4578987610385818903601f19810183528261104c565b6020815191012060ff601c5416916012546024820135106105a2576044359283156105905780840293840403610260576103c2602482013561285c565b1561057e5760405160a08101908082106001600160401b0383111761054b5761045f9361045592604052815260046020820160243581526064604084019704875260608301600081526080840191600083526024870135600052601360205260406000209451855551976001988986015551600285015551600384015551151591019060ff801983541691151516179055565b3690600401611445565b6020810190815160005260096020526040600020908051926001600160401b038451166001600160401b03198454161783556020858401940151938451946001600160401b03861161054b576020906104b887846117bf565b019060005260206000208660005b8781106105615750835160028701556040850180515190600388019060005b8381106104ee57005b6104f9818351611899565b51908354600160401b81101561054b5786810180865581101561053557869261052f9186600052600d60206000209102016118ad565b016104e5565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b83516001600160a01b0316818401556020909301928891016104c6565b604051630cbd1cd360e11b8152600490fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b919395509193601f198282030186526105cd8784611617565b90813560de19833603018112156102765782602092836106a48160019781960194604085526106316106146106028880611617565b60e06040890152610120880190611721565b61062084890189611617565b878203603f19016060890152611721565b604087013560808701526001600160401b0361064f606089016110fb565b1660a08701526106956001600160e01b031961066d60808a016112cf565b169160c0928389015261068360a08a018a6116cf565b898303603f190160e08b015290611700565b960135610100860152016112e4565b151591015298019601930190918795969492610369565b60405163d15f973b60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060248101354311156102e0565b634e487b7160e01b600052601260045260246000fd5b34610276576080366003190112610276576024356001600160401b03811161027657366023820112156102765780600401359061073f8261106d565b9161074d604051938461104c565b8083526024602084019160051b8301019136831161027657602401905b828210610b7457836064356001600160401b0381116102765761079190369060040161109f565b601254600435106105a257600435600052600960205260026040600020015415610b625760043560005260136020526040600020916107d1828454612759565b506004819492941015610b4c57610b3a5760043560009081526016602090815260408083206001600160a01b0387168452600101909152902054610b2857604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b0382118383101761054b57608090826040528351902092019182526020815261086381611031565b51902093600181015494936000945b84518610156108bf576108858686611899565b5190818110156108ae5760005260205260406000205b9460001981146102605760010194610872565b90600052602052604060002061089b565b8603610b065760043560005260166020526108e660018060a01b03821660406000206128d9565b15610af457600435600052601760205260406000209060018060a01b0316600052602052604060002082516001600160401b03811161054b5761092982546117f3565b601f8111610ab7575b506020601f8211600114610a515781929394600092610a46575b50508160011b916000199060031b1c19161790555b600381016109726044358254611525565b808255600283015481101561098357005b600483018054909160ff8216610a04575060ff191660011790556109a8600435612936565b156109f2577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494916109ec60ff60115416915492546040519384936004359085612734565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc916109ec60ff601154169154926040519384936004359085612734565b01519050848061094c565b601f198216908360005260206000209160005b818110610a9f57509583600195969710610a86575b505050811b019055610961565b015160001960f88460031b161c19169055848080610a79565b9192602060018192868b015181550194019201610a64565b610ae490836000526020600020601f840160051c81019160208510610aea575b601f0160051c0190611782565b84610932565b9091508190610ad7565b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b60405163a88f96f160e01b8152600490fd5b813581526020918201910161076a565b34610276576003196020368201811361027657600435916001600160401b03908184116102765760608460040191853603011261027657610bce36610bc983806110e6565b611123565b9073__$a0fe38a9a81205afccc10810b09a4d3f45$__60405190632cff562160e11b8252856004830152858280610c0a602497888301906111da565b0381845af4918215610fad57600092610ffa575b506001600160a01b03913390831603610fe557610c3e6102c33685611445565b3315610fd35760405191610c5183611031565b85601954168352604051809188601a54928381520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8b838310610fb95750505050509181610cb3610cda9593600095038261104c565b88830152604051808095819463aa5106cb60e01b83526040600484015260448301906111da565b338983015203915af48015610fad57600090610ee2575b610cfb9150611d63565b919015610ed1576000956044019086610d1483836114c1565b600091505b808210610e80575050610d2c9088611525565b60028401805491808310610e6e578203918211610e5957610d6a9360049593610d6293610d5993556114c1565b94909201611532565b9236916112f1565b9081519160005b838110610e3c575050505060ff602b54841c16610d8a57005b6040519083820192632643057b60e11b84524382840152856044840152600060648401526064835260a083019083821090821117610e275780604052854710610e155750506109f09360009283925191335af13d15610e0c573d610ded81611084565b90610dfb604051928361104c565b8152600081933d92013e5b336115b7565b60609150610e06565b63cd78605960e01b81523060a4840152fd5b50634e487b7160e01b60009081526041600452fd5b80610e53610e4c60019385611899565b5185612001565b01610d71565b85634e487b7160e01b60005260116004526000fd5b604051631d36ca1560e21b8152600490fd5b9098610ec960019160c0610eb6610eb0610ebe8f986040610eb6610eb08c8f8f90610eaa916114c1565b906114f6565b80611510565b013590611525565b97610eaa8b8b6114c1565b990190610d19565b6040516208ed5b60e31b8152600490fd5b503d806000833e610ef3818361104c565b8101908581830312610276578051908582116102765701906040828203126102765760405191610f2283611031565b80518681168103610276578352868101519086821161027657019080601f83011215610276578151610f538161106d565b92610f61604051948561104c565b818452888085019260051b8201019283116102765788809101915b838310610f955750905083610cfb949392500152610cf1565b8190610fa0846111c6565b8152019101908890610f7c565b6040513d6000823e3d90fd5b845482168652909401936001938401939190910190610c92565b6040516370e4510960e01b8152600490fd5b60405160016201ad9360e61b03198152600490fd5b9091508581813d831161102a575b611012818361104c565b8101031261027657611023906111c6565b9087610c1e565b503d611008565b604081019081106001600160401b0382111761054b57604052565b90601f801991011681019081106001600160401b0382111761054b57604052565b6001600160401b03811161054b5760051b60200190565b6001600160401b03811161054b57601f01601f191660200190565b81601f82011215610276578035906110b682611084565b926110c4604051948561104c565b8284526020838301011161027657816000926020809301838601378301015290565b903590603e1981360301821215610276570190565b35906001600160401b038216820361027657565b35906001600160a01b038216820361027657565b9190604083820312610276576040519261113c84611031565b83611146826110fb565b815260209182810135906001600160401b03821161027657019280601f850112156102765783356111768161106d565b94611184604051968761104c565b818652848087019260051b8201019283116102765784809101915b8383106111ae57505050500152565b81906111b98461110f565b815201910190849061119f565b51906001600160a01b038216820361027657565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b828110611218575050505090565b83516001600160a01b03168552938101939281019260010161120a565b359060ff8216820361027657565b9190604083820312610276576040519261125c84611031565b838135916001600160401b0392838111610276578461127c918301611123565b8252602081013590838211610276570160408185031261027657604051936112a385611031565b6112ac82611235565b85526020820135938411610276576020936112c7920161109f565b828401520152565b35906001600160e01b03198216820361027657565b3590811515820361027657565b9291926112fd8261106d565b9160409061130d8251948561104c565b839581855260208095019160051b8401938185116102765780925b8584106113385750505050505050565b6001600160401b0390843582811161027657830190868286031261027657865161136181611031565b82358481116102765783019260e094858589031261027657895195860186811082821117611430578a52843581811161027657886113a0918701611243565b86528b85013581811161027657886113b9918701611243565b8c870152898501358a87015260606113d28187016110fb565b9087015260806113e38187016112cf565b9087015260a09182860135918211610276578c96866114219461140b8c8b9a968b970161109f565b9083015260c080910135908201528452016112e4565b83820152815201930192611328565b60246000634e487b7160e01b81526041600452fd5b919060608382031261027657604051906001600160401b03606083018181118482101761054b57604052829480358281116102765783611486918301611123565b8452602081013560208501526040810135918211610276570181601f82011215610276576040918160206114bc933591016112f1565b910152565b903590601e198136030182121561027657018035906001600160401b03821161027657602001918160051b3603831361027657565b908210156105355761150d9160051b8101906110e6565b90565b90359060de1981360301821215610276570190565b9190820180921161026057565b9060405161153f81611031565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061158e575050505061158a9250038461104c565b0152565b83546001600160a01b0316855289955090930192918101918101611572565b60021115610b4c57565b90156115f5578151156115c8575090565b803b156115d3575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561160557805190602001fd5b604051630a12f52160e11b8152600490fd5b9035603e1982360301811215610276570190565b9035601e19823603018112156102765701602081359101916001600160401b038211610276578160051b3603831361027657565b60408201916001600160401b03611675836110fb565b16815260606116896020938481019061162b565b839195604086839601525201929160005b8281106116a8575050505090565b909192938280600192838060a01b036116c08961110f565b1681520195019392910161169a565b9035601e19823603018112156102765701602081359101916001600160401b03821161027657813603831361027657565b908060209392818452848401376000828201840152601f01601f1916010190565b604061177261150d9361175161174661173a8680611617565b8584528584019061165f565b946020810190611617565b90602081860391015260ff61176582611235565b16845260208101906116cf565b9190928160208201520191611700565b81811061178d575050565b60008155600101611782565b805460008255806117a8575050565b6117bd91600052602060002090810190611782565b565b90600160401b811161054b578154908083558181106117dd57505050565b6117bd9260005260206000209182019101611782565b90600182811c92168015611823575b602083101461180d57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611802565b61183781546117f3565b9081611841575050565b81601f60009311600114611853575055565b908083918252611872601f60208420940160051c840160018501611782565b5555565b60036117bd916000815561188c60018201611799565b600060028201550161182d565b80518210156105355760209160051b010190565b908051908151918251926001600160401b03808551166001600160401b0319908188541617875560018088019360208098015180519085821161054b5789906118f683896117bf565b01600096875289872084885b848110611d305750505050508760028a019101519060ff82511660ff1982541617905560039288848b01920151918251868111611c4a578061194483546117f3565b94898d601f9788808211611d03575b505050508c90868311600114611c98578a92611c8d575b505060001982881b1c191690851b1790555b60048a0190898801519182519187835116908254161790558960058c0191015190815191878311611c79578b906119b384846117bf565b019088528a882085895b848110611c5e5750505050508860068b019101519060ff82511660ff198254161790558860078b01910151805190868211611c4a5781906119fe84546117f3565b8c868211611c1d575b50508b90858311600114611bbe578992611bb3575b505060001982871b1c191690841b1790555b604086015160088a015560098901846060880151168154906bffffffff000000000000000060808a015160a01c16916bffffffffffffffffffffffff191617179055600a89019460a0870151908151958611611b9f57611a8e87546117f3565b8a848211611b68575b505089928611600114611af7579385600c999794819460c098946117bd9e9d9b9895611aec575b50501b92600019911b1c19161790555b0151600b8501550151151591019060ff801983541691151516179055565b015193503880611abe565b9294939190601f1985168785528a8520945b818110611b535750928592600c9a9895926117bd9d9c9a9760c0999610611b39575b50505050811b019055611ace565b01519060f884600019921b161c1916905538808080611b2b565b82840151865594870194928b01928b01611b09565b611b8f918984528582852091818b0160051c8301938b10611b96575b0160051c0190611782565b388a611a97565b92508192611b84565b634e487b7160e01b81526041600452602490fd5b015190503880611a1c565b848a528c8a208794509190601f1984168b8f5b828210611c065750508411611bee575b505050811b019055611a2e565b015160001983891b60f8161c19169055388080611be1565b8385015186558a979095019493840193018f611bd1565b611c4391868c5287828d209181870160051c8301938710611b96570160051c0190611782565b388c611a07565b634e487b7160e01b88526041600452602488fd5b83516001600160a01b031683820155928d01928791016119bd565b634e487b7160e01b89526041600452602489fd5b01519050388061196a565b879350908d91601f198416868d52838d20938d905b828210611ce25750508411611cca575b505050811b01905561197c565b0151600019838a1b60f8161c19169055388080611cbd565b91929395968291958786015181550195019301908f918a9695949392611cad565b828489611d279652209181870160051c8301938710611b96570160051c0190611782565b898d3888611953565b83516001600160a01b031683820155928c0192869101611902565b90816020910312610276575180151581036102765790565b611da173__$a0fe38a9a81205afccc10810b09a4d3f45$__91604051906390ba52cf60e01b82528180602094859384600484015260248301906111da565b0381865af4908115610fad57600091611e3c575b5060005260008152611df681604060002093611dd360048601611532565b906040518080958194630c133d1360e31b835286600484015260248301906111da565b03915af4918215610fad57600092611e0f575b50501591565b611e2e9250803d10611e35575b611e26818361104c565b810190611d4b565b3880611e09565b503d611e1c565b908282813d8311611e65575b611e52818361104c565b81010312611e6257505138611db5565b80fd5b503d611e48565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b828210611ecb575050505090565b83546001600160a01b031685529384019360019384019390910190611ebd565b60005b838110611efe5750506000910152565b8181015183820152602001611eee565b90602091611f2781518092818552858086019101611eeb565b601f01601f1916010190565b6040602061150d9381611f4d8551858452858401906111da565b940151908281860391015260ff81511684520151918160208201520190611f0e565b9060c080611fe0611f9e611f8c865160e0875260e0870190611f33565b60208701518682036020880152611f33565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152611f0e565b93015191015290565b9060016001600160401b038093160191821161026057565b90602080825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__6040948551630c133d1360e31b8152848180612046600497848984015260248301906111da565b0381865af49081156125e1576000916125c4575b506125b45783855101515161208487519163c836244d60e01b8352888684015260448301906111da565b9085818061209e6003199586838203016024840152611e6c565b0381875af49081156124be57600091612597575b50156124c9576120f88560008951906120ca82611031565b8082528282015292896121078a51928251958694859463f47ad7eb60e01b86528c8601526044850190611f6f565b90838203016024840152611e6c565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af49081156124be57600091612488575b50612139816115ad565b600181036123d657505061214c90611d63565b90156123c6576003810180546001600160401b0380828a1c16906060895101511681036123b65786936121d095936121af9367ffffffffffffffff60401b6121948a95611fe9565b8d1b169067ffffffffffffffff60401b191617905501611532565b9087518080958194632cff562160e11b8352868984015260248301906111da565b03915af4908115612371578291869160009161237c575b5081516380875df760e01b815292839182906001600160a01b03165afa90811561237157600091612310575b50600091606091945b865195869384936373b464b760e01b85528401528561224683518a606487015260a4860190611f6f565b92015115156084840152805161225b816115ad565b60248401528501516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af480156123055761229957505050565b3d806000843e6122a9818461104c565b8201918181840312610276578051906001600160401b03821161027657019082601f83011215610276578151926122eb6122e285611084565b9551958661104c565b83855281848401011161027657806117bd94019101611eeb565b83513d6000823e3d90fd5b8581813d831161236a575b612325818361104c565b810103126123665785519161233983611031565b8151906002821015611e6257509161235a85600095936060958452016111c6565b85820152915091612213565b5080fd5b503d61231b565b85513d6000823e3d90fd5b925090508382813d81116123af575b612395818361104c565b81010312611e625750846123a983926111c6565b386121e7565b503d61238b565b885163a57cadff60e01b81528690fd5b8551630e991abd60e41b81528390fd5b6123e5919693508092506115ad565b156123f6575b60009160609161221c565b9250601c546001600160401b03808260481c1690606086510151168103612478579160609167ffffffffffffffff60481b612432600095611fe9565b60481b169067ffffffffffffffff60481b191617601c558284875161245681611031565b8281520152855161246681611031565b838152838582015294915091506123eb565b855163a57cadff60e01b81528390fd5b8681813d83116124b7575b61249d818361104c565b810103126123665751906002821015611e6257503861212f565b503d612493565b88513d6000823e3d90fd5b505050509160036117bd93825181810190828252612588818751878083015260c0612566612504835160e060808701526101608601906125ec565b61251f8985015191607f1992838883030160a08901526125ec565b848c01518685015260608501516001600160401b031660e087015260808501516001600160e01b03191661010087015260a085015186820390920161012087015290611f0e565b910151610140830152858901511515606083015203601f19810183528261104c565b519020600052526000206118ad565b6125ae9150863d8811611e3557611e26818361104c565b386120b2565b855163c5f563eb60e01b81528390fd5b6125db9150853d8711611e3557611e26818361104c565b3861205a565b87513d6000823e3d90fd5b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b81811061265c575050509360408381938161150d97980151908281860391015260ff81511684520151938201520190611f0e565b82516001600160a01b031688529685019691850191600101612628565b6040018051516001600160401b03601f5416106126ab5751511561269957565b6040516338d2307f60e01b8152600490fd5b60405163351c700760e01b8152600490fd5b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610fad57600091612716575b501561270457565b60405163f0d97f3b60e01b8152600490fd5b61272e915060203d8111611e3557611e26818361104c565b386126fc565b909493926060926080830196612749816115ad565b8352602083015260408201520152565b815191906041830361278a5761278392506020820151906060604084015193015160001a90612795565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161281957926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa1561280d5780516001600160a01b0381161561280457918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6014548110156105355760146000527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0190600090565b6000818152601560205260408120546128d457601454600160401b8110156128c05790826128ac61289584600160409601601455612825565b819391549060031b91821b91600019901b19161790565b905560145492815260156020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461292f57805490600160401b82101561054b57600182018082558210156105355782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152601560205260408120549091908015612a1b5760001990808201818111612a0757601454908382019182116129f3578082036129bf575b50505060145480156129ab5781019061298a82612825565b909182549160031b1b19169055601455815260156020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6129dd6129ce61289593612825565b90549060031b1c928392612825565b9055845260156020526040842055388080612972565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220b48c09038cb95ca358f6b3b986231aac3e6aa9fe9a876f90865eb1782122308064736f6c634300081300336080806040523461001657611768908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806347dc9b4f14610b0557806353b4e7bf1461061d57806374303771146102545763ac8183791461004857600080fd5b3461024f5760208060031936011261024f576004359061006661136a565b600b545b8281106101f95750600b54808311156101e7575b82811061008c57600b839055005b80600052600c8252604060002090600082556000600460019382858201558260028201558260038201550155600f8352604060002080549060008155816101c1575b505080600052604060002060405180828682945493848152019060005286600020926000905b87898284106101a8575050505061010d92500382611139565b8051908360005b83811061012557505050500161007e565b600085815260108852604090206001600160a01b03610144838661150d565b51166000528752604060002061015a81546113e1565b908161016b575b5050018490610114565b600091601f808211600114610185575050555b3880610161565b916101a18492938284528c8420940160051c8401878501611353565b555561017e565b90929450829193865481520194019201849293916100f4565b6000528284600020918201915b8281106101db57506100ce565b600081550183906101ce565b604051636819a3a960e01b8152600490fd5b80600052600882526040600020906000825560006004600193848101805484825580610236575b505082600282015582600382015501550161006a565b61024891855287852090810190611353565b3880610220565b600080fd5b3461024f5760031960603682011261024f576004356001600160401b0380821161024f5760808236039384011261024f576044359161029161136a565b60248082013594601d5480156106085786066105f65785600052602094600886526002604060002001546105e45760405192868401928784528560040135906042190181121561024f5760806040860152610100850193818701886102f8600483016111a1565b1660c0880152838101356022198236030181121561024f570183600482013591019589821161024f578160051b3603871361024f578190604060e08a0152526101208701959060005b8b8282106105c057505050508960608701526044870135958660808201526103868160648a01978b6103728a6111a1565b1660a083015203601f198101835282611139565b51902060ff601c5416600b548b106105ae57841561059c5780850294850403610587576103b28a61156e565b15610575576040519060a082018281108a821117610560576040528152600489820191843583526064604082019604865260608101600081526080820193600085528d600052600c8d52604060002092518355519660019788840155516002830155516003820155019051151560ff8019835416911617905560405195608087018781108982111761054b5760405287821161024f57600461045792369201016111c9565b855261046f87860193898552604087019586526111a1565b9760608601988952600052600887526040600020945186815116976001600160401b031998898854161787558084880192015180519389851161053757600160401b851161053757508190835485855580861061051a575b500191600052806000209060005b848110610500578b8b8b60048c8c8c5160028301555160038201550192511690825416179055600080f35b83516001600160a01b0316838201559281019285016104d5565b610531908560005286846000209182019101611353565b8c6104c7565b634e487b7160e01b60009081526041600452fd5b83634e487b7160e01b60005260416004526000fd5b84634e487b7160e01b60005260416004526000fd5b604051630cbd1cd360e11b8152600490fd5b82634e487b7160e01b60005260116004526000fd5b604051634e8ac6e560e01b8152600490fd5b604051630108e13760e21b8152600490fd5b80600192939499838060a01b036105d68c6111b5565b168152019801929101610341565b60405163b8a1eae160e01b8152600490fd5b60405163fae4eadb60e01b8152600490fd5b82634e487b7160e01b60005260126004526000fd5b3461024f57608036600319011261024f576024356001600160401b03811161024f573660238201121561024f578060040135906106598261115a565b916106676040519384611139565b8083526024602084019160051b8301019136831161024f57602401905b828210610af557836064356001600160401b03811161024f573660238201121561024f5780600401356106b681611171565b916106c46040519384611139565b818352366024838301011161024f57816000926024602093018386013783010152600b54600435106105ae57600435600052600860205260026040600020015415610ae357600435600052600c602052604060002091610725828454611441565b506004819492941015610acd57610abb576004356000908152600f602090815260408083206001600160a01b0387168452600101909152902054610aa957604080516001600160a01b03851660208201908152604435828401529181529060608201906001600160401b03821183831017610a5f5760809082604052835190209201918252602081526107b78161111e565b51902093600181015494936000945b8451861015610829576107d9868661150d565b5190818110156108185760005260205260406000205b94600019811461080257600101946107c6565b634e487b7160e01b600052601160045260246000fd5b9060005260205260406000206107ef565b8603610a8757600435600052600f60205261085060018060a01b03821660406000206115eb565b15610a7557600435600052601060205260406000209060018060a01b0316600052602052604060002082516001600160401b038111610a5f5761089382546113e1565b601f8111610a22575b506020601f82116001146109bc57819293946000926109b1575b50508160011b916000199060031b1c19161790555b60038101805460443581018091116108025780825560028301548110156108ee57005b600483018054909160ff821661096f575060ff19166001179055610913600435611648565b1561095d577fc08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc36514949161095760ff600a541691549254604051938493600435908561141b565b0390a15b005b6040516344a7b48760e11b8152600490fd5b925050507f103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc9161095760ff600a5416915492604051938493600435908561141b565b0151905084806108b6565b601f198216908360005260206000209160005b818110610a0a575095836001959697106109f1575b505050811b0190556108cb565b015160001960f88460031b161c191690558480806109e4565b9192602060018192868b0151815501940192016109cf565b610a4f90836000526020600020601f840160051c81019160208510610a55575b601f0160051c0190611353565b8461089c565b9091508190610a42565b634e487b7160e01b600052604160045260246000fd5b604051633363140f60e01b8152600490fd5b604051634a0bfec160e01b81526001600160a01b039091166004820152602490fd5b604051635a3fd0d960e11b8152600490fd5b604051638baa579f60e01b8152600490fd5b634e487b7160e01b600052602160045260246000fd5b6040516358cdd2e760e01b8152600490fd5b8135815260209182019101610684565b3461024f57602036600319011261024f576004356001600160401b03811161024f576080600319823603011261024f57610b716020610b5036610b4b600486018061118c565b6111c9565b60405180938192632cff562160e11b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f10576000916110e4575b50336001600160a01b03909116036110d25733156110c057604051610bbd8161111e565b6001600160401b03601954168152604051806020601a54918281520190601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e9060005b8181106110a15786610c4660008888610c1f818a0382611139565b60208201526040518093819263aa5106cb60e01b8352604060048401526044830190611280565b336024830152038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610fbf575b506020610c9c91604051809381926390ba52cf60e01b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f8d575b5060005260006020526040600020604051610cde8161111e565b6001600160401b03600483015416815260405180602060058501549182815201906005850160005260206000209060005b818110610f6e575050509181610d2c602093610d51950382611139565b8282015260405180938192630c133d1360e31b83528460048401526024830190611280565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610f4f575b50610f3e57610db590610d9336610b4b600486018061118c565b9060405192839263c836244d60e01b8452604060048501526044840190611280565b6003198382030160248401526005606060408301926001600160401b036004860154168152604060208201528285015480945201920160005260206000209060005b818110610f1c575050509080602092038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af4908115610f1057600091610ee1575b5015610ecf5760ff602b5460181c16610e4357005b60405160246020820192632643057b60e11b84520135602482015260006044820152600060648201526064815260a081018181106001600160401b03821117610a5f576040525161095b91600091829182335af13d15610ec7573d90610ea882611171565b91610eb66040519384611139565b82523d6000602084013e5b336112f3565b606090610ec1565b6040516303b5db8360e11b8152600490fd5b610f03915060203d602011610f09575b610efb8183611139565b8101906112db565b82610e2e565b503d610ef1565b6040513d6000823e3d90fd5b82546001600160a01b0316845285945060209093019260019283019201610df7565b6040516208ed5b60e31b8152600490fd5b610f68915060203d602011610f0957610efb8183611139565b83610d79565b82546001600160a01b0316845260209093019260019283019201610d0f565b90506020813d602011610fb7575b81610fa860209383611139565b8101031261024f575182610cc4565b3d9150610f9b565b90503d806000833e610fd18183611139565b81019060208183031261024f578051906001600160401b03821161024f57019060408282031261024f57604051916110088361111e565b80516001600160401b038116810361024f5783526020810151906001600160401b03821161024f57019080601f8301121561024f5781516110488161115a565b926110566040519485611139565b81845260208085019260051b82010192831161024f57602001905b82821061108957505050602080830191909152610c74565b602080916110968461126c565b815201910190611071565b82546001600160a01b0316845260209093019260019283019201610c04565b6040516370e4510960e01b8152600490fd5b604051637f39132760e11b8152600490fd5b90506020813d602011611116575b816110ff60209383611139565b8101031261024f576111109061126c565b82610b99565b3d91506110f2565b604081019081106001600160401b03821117610a5f57604052565b90601f801991011681019081106001600160401b03821117610a5f57604052565b6001600160401b038111610a5f5760051b60200190565b6001600160401b038111610a5f57601f01601f191660200190565b903590603e198136030182121561024f570190565b35906001600160401b038216820361024f57565b35906001600160a01b038216820361024f57565b919060408382031261024f57604051926111e28461111e565b836111ec826111a1565b815260209182810135906001600160401b03821161024f57019280601f8501121561024f57833561121c8161115a565b9461122a6040519687611139565b818652848087019260051b82010192831161024f5784809101915b83831061125457505050500152565b819061125f846111b5565b8152019101908490611245565b51906001600160a01b038216820361024f57565b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106112be575050505090565b83516001600160a01b0316855293810193928101926001016112b0565b9081602091031261024f5751801515810361024f5790565b901561133157815115611304575090565b803b1561130f575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b5080511561134157805190602001fd5b604051630a12f52160e11b8152600490fd5b81811061135e575050565b60008155600101611353565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610f10576000916113c3575b50156113b157565b60405163f0d97f3b60e01b8152600490fd5b6113db915060203d8111610f0957610efb8183611139565b386113a9565b90600182811c92168015611411575b60208310146113fb57565b634e487b7160e01b600052602260045260246000fd5b91607f16916113f0565b909194939260808201956002841015610acd576060938352602083015260408201520152565b81519190604183036114725761146b92506020820151906060604084015193015160001a9061147d565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161150157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156114f55780516001600160a01b038116156114ec57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b80518210156115215760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600d5481101561152157600d6000527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50190600090565b6000818152600e60205260408120546115e657600d54600160401b8110156115d25790826115be6115a784600160409601600d55611537565b819391549060031b91821b91600019901b19161790565b9055600d54928152600e6020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b600082815260018201602052604090205461164157805490600160401b821015610a5f57600182018082558210156115215782600192826000526020600020015580549260005201602052604060002055600190565b5050600090565b6000818152600e6020526040812054909190801561172d576000199080820181811161171957600d5490838201918211611705578082036116d1575b505050600d5480156116bd5781019061169c82611537565b909182549160031b1b19169055600d558152600e6020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6116ef6116e06115a793611537565b90549060031b1c928392611537565b90558452600e6020526040842055388080611684565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b50509056fea2646970667358221220290a93e36b6805df006441b141a908ae17483412928035e4fb087e0eb0d40d6264736f6c634300081300336080806040523461001657612a65908161001c8239f35b600080fdfe604060a08152600436101561001357600080fd5b600090813560e01c9081630df144611461016457816311196974146100a9575063e49a547d1461004257600080fd5b346100a65760203660031901126100a6576004356001600160401b038082116100a257366023830112156100a25781600401359081116100a2573660248260051b840101116100a257602461009f92610099610d88565b01610e3b565b80f35b8280fd5b80fd5b9050346101605780600319360112610160578051906100c782610199565b828252826020809301526100d9610d88565b828282516100e681610199565b8281520152600254926004359283851161014f576060948252600181528282209383600181519661011688610199565b80548852015493838701948552828152600184522081815560016024359101556002558351151593835194855251908401525190820152f35b825163153ad84160e11b8152600490fd5b5080fd5b905034610160578160031936011261016057602090610181610d88565b6001600160401b03610191610355565b915191168152f35b604081019081106001600160401b038211176101b457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176101b457604052565b90601f801991011681019081106001600160401b038211176101b457604052565b9060016001600160401b038093160191821161021e57565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381116101b45760051b60200190565b805182101561025f5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600182811c921680156102a5575b602083101461028f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610284565b90604051918260008254926102c384610275565b90818452600194858116908160001461033257506001146102ef575b50506102ed925003836101e5565b565b9093915060005260209081600020936000915b81831061031a5750506102ed935082010138806102df565b85548884018501529485019487945091830191610302565b9150506102ed94506020925060ff191682840152151560051b82010138806102df565b6029546001600160401b038082166000190181811161021e5761037781610206565b8280604095861c169116146105085761038f816110d2565b61ffff928360235416916103a283610234565b956103af835197886101e5565b838752601f1991826103c086610234565b019260209336858b013760015b88811687811161040f576000908152602586528690205489916001916001600160a01b03166104078d8561040085610e27565b169061024b565b5201166103cd565b50509450949192909550865161042481610234565b94610431835196876101e5565b81865261043d82610234565b018460005b8281106104df5750505060005b81811061047a57505061047794959650519261046a84610199565b8352841690820152610897565b90565b6001906001600160a01b0361048f828c61024b565b511680600052602287526104bf60038660002085810154938851946104b3866101ca565b85528a850152016102af565b858201526104cd828961024b565b526104d8818861024b565b500161044f565b84516104ea816101ca565b6000815260008382015260608682015282828a010152018590610442565b505050600090565b60005b8381106105235750506000910152565b8181015183820152602001610513565b908082519081815260208091019281808460051b8301019501936000915b8483106105615750505050505090565b9091929394958480600192601f1990818682030187528a519182518252858060a01b03848401511684830152601f6040809401519360608091850152845180918501526105b681608096888888019101610510565b011601019801930193019194939290610551565b8181106105d5575050565b600081556001016105ca565b6105eb8154610275565b90816105f5575050565b81601f60009311600114610607575055565b908083918252610626601f60208420940160051c8401600185016105ca565b5555565b9190601f811161063957505050565b6102ed926000526020600020906020601f840160051c83019310610665575b601f0160051c01906105ca565b9091508190610658565b90808214610749576106818154610275565b906001600160401b0382116101b45781906106a6826106a08654610275565b8661062a565b600090601f83116001146106dd576000926106d2575b50508160011b916000199060031b1c1916179055565b0154905038806106bc565b81526020808220858352818320935090601f1985169083905b828210610730575050908460019594939210610717575b505050811b019055565b015460001960f88460031b161c1916905538808061070d565b84958192958501548155600180910196019401906106f6565b5050565b60045481101561025f576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b906108815781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b0383116101b4576107e6836107e08754610275565b8761062a565b81601f841160011461081f5750928293918392600094610814575b50501b916000199060031b1c1916179055565b015192503880610801565b919083601f1981168760005284600020946000905b88838310610867575050501061084e57505050811b019055565b015160001960f88460031b161c1916905538808061070d565b858701518855909601959485019487935090810190610834565b634e487b7160e01b600052600060045260246000fd5b60408051916020918284526108b6825182858701526060860190610533565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081610ba7575b5050506004908154936801000000000000000093848611610b925760065486600655808710610af3575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b838210610a9e57505050508060055416916001600160401b03199283600754161760075583515193855496885b868110610a2c5750505051169060055416176005558083116109c4575b50505050565b828110156109be5781548015610a195760001901906109e28261074d565b929092610a07578583556109ff60026001948886820155016105e1565b8355016109c4565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b88811015610a5b5780610a55610a45600193865161024b565b51610a4f8361074d565b90610788565b016109a1565b610a6681845161024b565b51885483811015610a8b5760019291610a4f8285610a8694018d5561074d565b610a55565b634e487b7160e01b8c5260418a5260248cfd5b806001918403610ab9575b6003809101930191019091610974565b805484558180850190838060a01b0390830154166001600160601b0360a01b825416179055610aee600280830190860161066f565b610aa9565b6003908082029082820403610b7d578782028281048903610b6857600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b828110610b4b57505050610927565b8082859255826001820155610b62600282016105e1565b01610b3c565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b84865116856007541690818114610c945710610c8357825192610bc984610199565b600454610bd581610234565b91610be2815193846101e5565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b848410610c41575050509185525050820152610c309082610c9e565b610c3c573880806108fd565b505050565b6003876001928451610c52816101ca565b86548152848060a01b03858801541683820152610c71600288016102af565b86820152815201930193019291610c14565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b03906020918083830151169083850151160361050857610cc481610d4c565b610ccd84610d4c565b03610508575180518351510361050857610d38610d2c916040519081610cfd868201928784526040830190610533565b0391610d11601f19938481018352826101e5565b51902094516040519384918683019687526040830190610533565b039081018352826101e5565b5190201490565b9190820180921161021e57565b8051519060009182915b818310610d635750505090565b909192610d7f600191610d7786855161024b565b515190610d3f565b93019190610d56565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610e1b57600091610de1575b5015610dcf57565b60405163f0d97f3b60e01b8152600490fd5b6020813d8211610e13575b81610df9602093836101e5565b8101031261016057519081151582036100a6575038610dc7565b3d9150610dec565b6040513d6000823e3d90fd5b61ffff908116600019019190821161021e57565b81156107495760005b828110610e5057505050565b8060051b820135603e198336030181121561100757820190604080610e7584806110a2565b013560018060a01b0380608052811680910361100757610e9584806110a2565b35600481101561100757610ea985806110a2565b6020908181013590601e19813603018212156110075701956001600160401b0393873585811161100757838901813603811361100757610ee8826110b7565b99610ef589519b8c6101e5565b828b528583369201011161100757816000928692838d01378a010152846029541693865190610f23826101ca565b815283810198895286810191825284600052602a8452866000209051600481101561108c5760ff8019835416911617815560019889820190518051908882116101b457610f7a82610f748554610275565b8561062a565b8690601f8311600114611017576002949392916000918361100c575b5050600019600383901b1c1916908c1b1790555b01906080519051166001600160601b0360a01b82541617905583610fcd84610206565b166001600160401b0319602954161760295501359182168092036110075703610ff7575001610e44565b51631aba532960e21b8152600490fd5b600080fd5b015190503880610f96565b9392918c91601f1982169084600052896000209160005b8b828210611069575050968360029810611050575b505050811b019055610faa565b015160001960f88460031b161c19169055388080611043565b919295899487849397999a9b015181550195019301908f9492979695939161102e565b634e487b7160e01b600052602160045260246000fd5b903590605e1981360301821215611007570190565b6001600160401b0381116101b457601f01601f191660200190565b906029546001600160401b0381166001600160401b03841610156000146111055760405163040aaa0560e11b8152600490fd5b6001600160401b038160401c166001600160401b0384161061149e5760401c6001600160401b03165b6001600160401b0383166001600160401b0382161161146a576001600160401b038116600052602a60205260406000209060018060a01b036002830154169160ff815416600481101561108c57600281036111d9575060016111a9916001600160401b0394600052602260205201600360406000200161066f565b818116600052602a60205260406000209060008255600060026001936111d08582016105e1565b0155011661112e565b91929160038103611367575060016111f191016102af565b90815182019160408160208501940312611007576020810151906001600160401b0382116110075783603f838301011215611007576020828201015191611237836110b7565b9461124560405196876101e5565b8386526040848385010101116110075760409261126a91846020880191850101610510565b0151918160005260226020526003604060002001908051906001600160401b0382116101b45761129e82610f748554610275565b602090601f83116001146112f05791806001600160401b03979694926112e096946000926112e5575b50508160011b916000199060031b1c19161790556114a3565b6111a9565b0151905038806112c7565b90601f198316918460005260206000209260005b81811061134f57509260019285926112e098966001600160401b039b9a989610611336575b505050811b0190556114a3565b015160001960f88460031b161c19169055388080611329565b92936020600181928786015181550195019301611304565b9061137860019493948092016102af565b93602085805181010312611007578160206001600160401b03960151931460001461142657908161140092600052602291826020526113be8582604060002001546114e7565b9282600052602052604060002060028101918483548115908161141d575b501561141457509060006113fb938160039481855584015555016105e1565b611989565b61140d60219182546114e7565b90556111a9565b92500155611989565b905015386113dc565b6112e09281600052602280602052611445828560406000200154610d3f565b93849184600052602052604060002001556114636021918254610d3f565b90556114f4565b509061147590610206565b67ffffffffffffffff60401b6029549160401b169067ffffffffffffffff60401b191617602955565b509050565b9060018060a01b0382166000526022602052604060002081815491558181146000146114ce57505050565b8111156114de576102ed91611803565b6102ed91611cdb565b9190820391821161021e57565b919060018060a01b03928381166000948186526020916024835261ffff916040978389822054166117125783855460081c168460235416106116de576115386127ae565b60019283825260258652828a832054168861155282611e66565b1061165857508152602785528389822054166115c15750505050506115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461159c83611dfb565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6115ca86612801565b926115d487611e66565b935b818682161161161a575b505097516001600160a01b039095168552505050506020810191909152909150600080516020612a108339815191529080604081016115bc565b808561163986617fff8f95871c169485885260288c5287205416611e66565b1015611652579061164b839282612960565b90506115d6565b506115e0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506115bc95602791611693612388565b8352522054166116d0575b6116a784612319565b6116b083611dfb565b516001600160a01b03928316815292909116602083015281906040820190565b6116d98461201c565b61169e565b50505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461159c83612319565b9792915061172385949796956127ca565b9761172d85611e66565b976117378a61220e565b8460235416905b8581168281116117de57828110156117c257508061175e61176492611de8565b9061275e565b9b909b5b8b111561178757611779908c6128c7565b6117828b61220e565b61173e565b505093516001600160a01b0390951685525050505060208101919091529092506000805160206129f0833981519152915080604081016115bc565b849c919c52602583526117d9858886205416611e66565b611768565b505050505050506115bc91929395506000805160206129f0833981519152945061159c565b6001600160a01b03808216600081815260246020526040808220549095949361ffff93918416611957578360205460081c16846023541610611925576118476127ae565b60018352602560205286832054168561185f82611e66565b106118d157508152602760205284902054166118a3576115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361159c83611dfb565b6115bc600080516020612a108339815191529361159c6118c284612801565b6118cb85611e66565b906121b9565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7596926115bc94611905612388565b8152602760205220541661191c576116a784612319565b6116d9846120a7565b505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361159c83612319565b505050506115bc6000805160206129f08339815191529361159c61197a846127ca565b61198385611e66565b906126cb565b909160018060a01b03928383169060009382855260206027815261ffff95604094878683205416611bb1578082526024835287868320541615611ba0578415611af857506119d6836127ca565b976119e084611e66565b985b6001808a83161115611ae95781617fff911c1690818452602585528a611a0c848a87205416611e66565b1115611a2157611a1c90826128c7565b6119e2565b505091939597509193955b6026541615611ae157611a3d6127ae565b600182526025835285818184205416926028611a5885611e66565b95611a616127bc565b600183525220541691611a7383611e66565b11611aa857505091516001600160a01b03909216825260208201526000805160206129f08339815191529080604081016115bc565b915091506115bc7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611ad9612388565b61169e611eb5565b505050505050565b50509193959750919395611a2c565b829450611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996124d1565b8651908152a160265416611b405750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360288492611b6e6127bc565b6001835252205416611b94611b8282611e66565b92611b8b611eb5565b61159c83612319565b0390a1388080806109be565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611ca0575061fffe9193611bce86612801565b93611bd887611e66565b9480966001958692831b168160265416925b611c2c575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020612a1083398151915291905080604081016115bc565b818116838111611c9a578d9084811015611c7e57505080611c4f611c5592611de8565b906122c1565b9890985b881015611c7957611c6a9089612960565b611c738861220e565b86611bea565b611bef565b865260288552852054909890611c95908716611e66565b611c59565b50611bef565b94915050611cd49194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9596925061201c565b51908152a1565b6001600160a01b0380821660008181526027602090815260408083205490969594919361ffff918216611d7e578084526024855281888520541615611d6d578615611d3c5750611a2c611d2d866127ca565b611d3687611e66565b9061267c565b849193979650611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b939661255c565b8751632a55ca5360e01b8152600490fd5b9693925050508315611dbb5750600080516020612a1083398151915293506115bc9061159c611dac84612801565b611db585611e66565b90612225565b9250611cd47f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b94926120a7565b90600161ffff8093160191821161021e57565b6102ed906118cb61ffff91611e138360265416611de8565b9260018060a01b0382169081600052602760205260406000209085169161ffff199183838254161790558260005260286020526040600020906001600160601b0360a01b82541617905560265416176026555b60ff60205416600381101561108c57600103611e97576001600160a01b031660009081526022602052604090205490565b6001600160a01b031660009081526022602052604090206001015490565b61ffff806026541690811561200a5790600190611ed4818311156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611f6e91908a611f5f83610e27565b16906026541617602655612826565b848252808652611f82848484205416611e66565b95859860028160265416995b611fa0575b5050505050505050505050565b8181168a8111612004578a811015611fe9575080611c4f611fc092611de8565b9a909a5b891015611fe457611fd5908b612960565b611fde8a61220e565b87611f8e565b611f93565b859b919b52838352611fff878787205416611e66565b611fc4565b50611f93565b6040516340d9b01160e01b8152600490fd5b61202590612801565b61ffff908160265416916120398383612960565b8061204384610e27565b1661ffff19602654161760265561205983612826565b811680921461074957611db5826102ed93600052602860205260018060a01b039061209361208d8360406000205416611e66565b856121b9565b600052602860205260406000205416611e66565b6120b090612801565b61ffff908160265416916120c48383612960565b806120ce84610e27565b1661ffff1960265416176026556120e483612826565b808216809314610c3c579161fffe9160009180835260289060209382855260018060a01b039260409261212461211e868686205416611e66565b876121b9565b8252808652612137848484205416611e66565b9585986001988997881b168160265416995b61215a575050505050505050505050565b8181168a8111612004578a81101561219e575080611c4f61217a92611de8565b9a909a5b891015611fe45761218f908b612960565b6121988a61220e565b87612149565b859b919b528383526121b4878787205416611e66565b61217e565b9190915b60018061ffff831611156122085781617fff911c1690836121f360008481526028602052604060018060a01b0391205416611e66565b1015612208576122039082612960565b6121bd565b50509050565b60011b906201fffe61fffe83169216820361021e57565b90600161fffe83821b168160009161ffff908160265416925b61224c575b50505050505050565b8181168381116122bb5783811015612295575080611c4f61226c92611de8565b9690965b861015612290576122819087612960565b61228a8661220e565b8461223e565b612243565b8452602860205260408420549096906122b6906001600160a01b0316611e66565b612270565b50612243565b91909161ffff92838216600052602860205261230460018060a01b036122ed8160406000205416611e66565b958316600052602860205260406000205416611e66565b908185106123125750509190565b9350919050565b6102ed90611d3661ffff916123318360235416611de8565b9260018060a01b0382169081600052602460205260406000209085169161ffff199183838254161790558260005260256020526040600020906001600160601b0360a01b8254161790556023541617602355611e66565b61ffff806023541690811561200a57906001906123a7818311156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161244191908a61243283610e27565b16906023541617602355612868565b848252808652612455848484205416611e66565b95859860028160235416995b612472575050505050505050505050565b8181168a8111612004578a8110156124b657508061175e61249292611de8565b9a909a5b891115611fe4576124a7908b6128c7565b6124b08a61220e565b87612461565b859b919b528383526124cc878787205416611e66565b612496565b6124da906127ca565b61ffff908160235416916124ee83836128c7565b806124f884610e27565b1661ffff19602354161760235561250e83612868565b811680921461074957611983826102ed93600052602560205260018060a01b03906125486125428360406000205416611e66565b8561267c565b600052602560205260406000205416611e66565b612565906127ca565b9061ffff9081602354169061257a82856128c7565b8261258483610e27565b1661ffff19602354161760235561259a82612868565b8284168092146126765760009291929183835260259260209484865260018060a01b03916040916125d86125d2858585205416611e66565b8a61267c565b81528587526125eb838383205416611e66565b956125f58961220e565b978560235416985b8681168a8111612668578a81101561264d57508061175e61261d92611de8565b9a909a5b89111561264057612632908b6128c7565b61263b8a61220e565b6125fd565b5050505050505092505050565b849b919b52828252612663868686205416611e66565b612621565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156122085781617fff911c1690836126b660008481526025602052604060018060a01b0391205416611e66565b1115612208576126c690826128c7565b612680565b916126d58361220e565b600061ffff918260235416905b838116828111612754578281101561272e57508061175e61270292611de8565b9690965b8611156127255761271790876128c7565b6127208661220e565b6126e2565b50505050915050565b83526025602052604083205490969061274f906001600160a01b0316611e66565b612706565b5050505050915050565b919061ffff808416600052602560205261279f60018060a01b036127888160406000205416611e66565b928416600052602560205260406000205416611e66565b93848211156123125750509190565b61ffff602354161561200a57565b61ffff602654161561200a57565b6001600160a01b031660009081526024602052604090205461ffff169081156127ef57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526027602052604090205461ffff169081156127ef57565b61ffff16600090815260286020908152604080832080546001600160a01b031981169091556001600160a01b0316835260279091529020805461ffff19169055565b61ffff16600090815260256020908152604080832080546001600160a01b031981169091556001600160a01b0316835260249091529020805461ffff19169055565b156128b157565b634e487b7160e01b600052600160045260246000fd5b6128ec61ffff8080602354169316936128e2848611156128aa565b16918211156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61297b61ffff8080602654169316936128e2848611156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda2646970667358221220cff9f210462ab66eb409caf3ccd6d5276d22bbdb298d3cafd0f082e4e5621cc564736f6c63430008130033608080604052346100165761163d908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e08435811c63c62eb4d51461002e57600080fd5b346104655760209182600319360112610461578335916001600160401b039586841161045d573660238501121561045d578386013593878511610459576024926005948487871b8401019336851161045557635d3f8a6960e01b8152338a8201528881878173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af49081156103ef578c91610428575b5015610419578051996100ca8b610469565b80601954168b5281518c8180928c601a54918281520190601a84528d7f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e94905b8282106103f9575050506101209250038261049a565b898c01528b898b61014785519e8f9384936308c7427760e11b85528401528a830190610566565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49a8b156103ef578c9b610323575b5061017888610536565b976101858351998a61049a565b8852858401938989015b8686106101e25750505050505050825194875b8681106101ad578880f35b84518110156101d057806101ca87600193871b880101518a61094e565b016101a2565b50634e487b7160e01b88526032905286fd5b853583811161031f57820190602319858184360301126102f35785519261020884610469565b8a8101358681116103195788908201928336030112610314578651888101818110888211176102fe5788528b8301358781116102f75761024d908d3691860101610637565b815260448301358781116102f7578f9061026c908e3691870101610637565b90820152606483013588820152610285608484016105c1565b606082015260a48301356001600160e01b0319811681036102f757608082015260c48301358781116102f7576044936102c560e4928f36918401016105f0565b60a0840152013560c0820152845201359081151582036102f357828d9392848094015281520195019461018f565b8f80fd5b5050508f80fd5b50505050888f60418f634e487b7160e01b835252fd5b508f80fd5b50508f80fd5b8e80fd5b909a503d808d833e610335818361049a565b81019089818303126103eb578051908c82116103e757019082828203126103eb5782519161036283610469565b80518d8116810361031f5783528a810151908d821161031f57019080601f830112156103e757815161039381610536565b926103a08651948561049a565b8184528c808501928c1b8201019283116102f3578c809101915b8383106103cf5750915050820152993861016e565b81906103da8461054d565b8152019101908c906103ba565b8d80fd5b8c80fd5b82513d8e823e3d90fd5b85546001600160a01b03168452600195860195879550930192018e61010a565b5163f0d97f3b60e01b81528890fd5b6104489150893d8b1161044e575b610440818361049a565b810190610751565b386100b8565b503d610436565b8b80fd5b8880fd5b8780fd5b8580fd5b8480fd5b604081019081106001600160401b0382111761048457604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761048457604052565b906040516104c881610469565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061051757505050506105139250038461049a565b0152565b83546001600160a01b03168552899550909301929181019181016104fb565b6001600160401b0381116104845760051b60200190565b51906001600160a01b038216820361056157565b600080fd5b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106105a4575050505090565b83516001600160a01b031685529381019392810192600101610596565b35906001600160401b038216820361056157565b6001600160401b03811161048457601f01601f191660200190565b81601f8201121561056157803590610607826105d5565b92610615604051948561049a565b8284526020838301011161056157816000926020809301838601378301015290565b9190604092838183031261056157835161065081610469565b80948235936001600160401b039485811161056157840193828583031261056157825161067c81610469565b610685866105c1565b81526020958681013590888211610561570183601f82011215610561578035906106ae82610536565b916106bb8751938461049a565b808352888084019160051b83010191868311610561578901905b828210610732575050508682015284528481013590868211610561570191808383031261056157519461070786610469565b823560ff81168103610561578652848301359081116105615761072a92016105f0565b828401520152565b81356001600160a01b03811681036105615781529089019089016106d5565b90816020910312610561575180151581036105615790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8282106107c8575050505090565b83546001600160a01b0316855293840193600193840193909101906107ba565b8181106107f3575050565b600081556001016107e8565b60005b8381106108125750506000910152565b8181015183820152602001610802565b9060209161083b815180928185528580860191016107ff565b601f01601f1916010190565b604060206108839381610861855185845285840190610566565b940151908281860391015260ff81511684520151918160208201520190610822565b90565b9060c0806108f76108b56108a3865160e0875260e0870190610847565b60208701518682036020880152610847565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152610822565b93015191015290565b6002111561090a57565b634e487b7160e01b600052602160045260246000fd5b9060016001600160401b038093160191821161093857565b634e487b7160e01b600052601160045260246000fd5b6020825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__9160405160208180610991630c133d1360e31b968783528460048401526024830190610566565b0381875af4908115610ce65760009161155b575b5061154957602084510151516109d36040519163c836244d60e01b8352604060048401526044830190610566565b90602081806109ee6003199586838203016024840152610769565b0381885af4908115610ce65760009161152a575b5015610ee3576040516000610a1682610469565b8082526020820152906020610a4c8751610a5b604051948593849363f47ad7eb60e01b8552604060048601526044850190610886565b90838203016024840152610769565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4908115610ce657600091610ea8575b50610a8d81610900565b60018103610e0d5750506020610abe91604051809381926390ba52cf60e01b83528460048401526024830190610566565b0381865af4908115610ce657600091610ddb575b5060005260006020526040600020610b0e60206004830193610af3856104bb565b90604051938492839283528460048401526024830190610566565b0381875af4908115610ce657600091610dbc575b50610daa57600301918254916001600160401b0390818460401c1691606087510151168203610d9857610ba89460209467ffffffffffffffff60401b610b6a610b8595610920565b60401b169067ffffffffffffffff60401b19161790556104bb565b906040518080958194632cff562160e11b83528660048401526024830190610566565b03915af4908115610ce657600091610d59575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa908115610ce657600091610cf2575b506000905b604051809381926373b464b760e01b8352606060048401526020610c2183516040606487015260a4860190610886565b920151151560848401528051610c3681610900565b6024840152602001516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af48015610ce657610c735750565b3d806000833e610c83818361049a565b810190602081830312610561578051906001600160401b038211610561570181601f8201121561056157805190610cb9826105d5565b92610cc7604051948561049a565b8284526020838301011161056157602080610ce4940191016107ff565b565b6040513d6000823e3d90fd5b6040813d604011610d51575b81610d0b6040938361049a565b81010312610d4d5760405191610d2083610469565b8151906002821015610d4a575060208392610d3f92600095520161054d565b602082015290610bec565b80fd5b5080fd5b3d9150610cfe565b906020823d602011610d90575b81610d736020938361049a565b81010312610d4a57506040610d8960049261054d565b9150610bbb565b3d9150610d66565b60405163a57cadff60e01b8152600490fd5b604051630e991abd60e41b8152600490fd5b610dd5915060203d60201161044e57610440818361049a565b38610b22565b906020823d602011610e05575b81610df56020938361049a565b81010312610d4a57505138610ad2565b3d9150610de8565b9250925050610e1b81610900565b15610e29575b600090610bf1565b50601c546001600160401b03808260481c1690606084510151168103610d9857610e5e67ffffffffffffffff60481b91610920565b60481b169067ffffffffffffffff60481b191617601c5560006020604051610e8581610469565b82815201526000604051610e9881610469565b8181528160208201529050610e21565b6020813d602011610edb575b81610ec16020938361049a565b81010312610d4d5751906002821015610d4a575038610a83565b3d9150610eb4565b5050505060405190602082016020815281519260408082015260c0610f7c610f18865160e0608086015261016085019061157a565b610f34602088015191607f1992838783030160a088015261157a565b60408801518585015260608801516001600160401b031660e086015260808801516001600160e01b03191661010086015260a088015185820390920161012086015290610822565b940151610140820152610fa581602085019586511515606083015203601f19810183528261049a565b519020600052600360205260406000209051805180516001600160401b038151166001600160401b0319855416178455602060018501910151908151916001600160401b03831161048457600160401b831161048457602090825484845580851061150d575b500190600052602060002060005b8381106114f0575050505060208091015160ff815116600285019060ff1982541617905501518051906001600160401b03821161048457600384015490600182811c921680156114e6575b602083101461132d5781601f8493116114b1575b50602090601f831160011461143f57600092611434575b50508160011b916000199060031b1c19161760038301555b600482016020820151908151906001600160401b038251166001600160401b0319825416179055602060058501910151908151916001600160401b03831161048457600160401b8311610484576020908254848455808510611417575b500190600052602060002060005b8381106113fa57505050506020600684019101519060ff82511660ff198254161790556020600784019101518051906001600160401b03821161048457825490600182811c921680156113f0575b602083101461132d5781601f8493116113be575b50602090601f83116001146113585760009261134d575b50508160011b916000199060031b1c19161790555b60408101516008830155600982016001600160401b036060830151168154906bffffffff0000000000000000608085015160a01c16916bffffffffffffffffffffffff191617179055600a820160a08201518051906001600160401b038211610484578254600181811c91168015611343575b602082101461132d57601f81116112f0575b50602090601f831160011461128157918060c09492600c979694600092611276575b50508160011b916000199060031b1c19161790555b0151600b820155019051151560ff80198354169116179055565b015190503880611247565b90601f198316918460005260206000209260005b8181106112d85750926001928592600c99989660c09896106112bf575b505050811b01905561125c565b015160001960f88460031b161c191690553880806112b2565b92936020600181928786015181550195019301611295565b61131d90846000526020600020601f850160051c81019160208610611323575b601f0160051c01906107e8565b38611225565b9091508190611310565b634e487b7160e01b600052602260045260246000fd5b90607f1690611213565b01519050388061118b565b6000858152602081209350601f198516905b8181106113a6575090846001959493921061138d575b505050811b0190556111a0565b015160001960f88460031b161c19169055388080611380565b9293602060018192878601518155019501930161136a565b6113ea90856000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611174565b91607f1691611160565b82516001600160a01b031681830155602090920191600101611112565b61142e9084600052858460002091820191016107e8565b38611104565b01519050388061108f565b9250600385016000526020600020906000935b601f1984168510611496576001945083601f1981161061147d575b505050811b0160038301556110a7565b015160001960f88460031b161c1916905538808061146d565b81810151835560209485019460019093019290910190611452565b6114e090600387016000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611078565b91607f1691611064565b82516001600160a01b031681830155602090920191600101611019565b6115249084600052858460002091820191016107e8565b3861100b565b611543915060203d60201161044e57610440818361049a565b38610a02565b60405163c5f563eb60e01b8152600490fd5b611574915060203d60201161044e57610440818361049a565b386109a5565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b8181106115ea575050509360408381938161088397980151908281860391015260ff81511684520151938201520190610822565b82516001600160a01b0316885296850196918501916001016115b656fea264697066735822122005881028574a21639c3cb4d9d5bc2c20e70622999c6082a2414cc35ec07c6f2564736f6c634300081300336080806040523461001657611533908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610e17575081631597bf7e14610dd15781631904bb2e14610d025781631f3a0e4114610cdb57816328d5551d14610cbc5781632bc31eb314610c73578163332a5ac9146103bd5781633354c3e114610c4d57816335142c8c14610c2657816338a210b314610bf55781633da3324114610a3e57816340550a1c146109ff5781634b0694e2146109a65781634b27aa721461096a57816352d182d114610922578163599c7bd1146108fd5781635dd9147c146108715781636704287c1461085257816369e737fd1461083357816372d0a0e01461081457816380875df71461079857816380f76021146106de5781638ef3f761146106b2578163903e693014610583578163948628a9146105645781639754b29e146104ec5781639e33bd02146104cd578163ad81e4d6146104ad578163b2bd295e14610475578163c5ab22411461044d578163c7cda7621461042a578163cfca282414610401578163d081be03146103c2578163d6eb5910146103bd578163d92e8f121461024f578163f0cf6c9614610210575063f75499dc146101bc57600080fd5b3461020c57602036600319011261020c57610203602092826101dc610e33565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020c578160031936011261020c5760ff60135416905191600382101561023c57602083838152f35b634e487b7160e01b815260218452602490fd5b8391503461020c578160031936011261020c57919060019081549361027385610fd6565b9061028085519283610f9b565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b8383106103395750505050508451948186019282875251809352808601818460051b8801019794915b8483106102e85787890388f35b9091929394958480610327839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610e4e565b9a9801969594919091019201906102db565b89959697999a989a51606081018181106001600160401b038211176103aa57875282548152828c01546001600160a01b03168882015286518c926003928a92610390816103898160028b01610fed565b0382610f9b565b8a82015281520192019201919099979998969594986102b2565b634e487b7160e01b8c526041875260248cfd5b610e8e565b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b036103ee610e33565b168152601a855220541615159051908152f35b50503461020c578160031936011261020c57600e5490516001600160a01b039091168152602090f35b50503461020c578160031936011261020c5760209061ffff601654169051908152f35b50503461020c578160031936011261020c576020906001600160401b03600c54169051908152f35b50503461020c57602036600319011261020c5760209181906001600160a01b0361049d610e33565b1681526021845220549051908152f35b50503461020c578160031936011261020c576020918254900b9051908152f35b50503461020c578160031936011261020c57602090600a549051908152f35b828434610561578060031936011261056157610506611283565b825191602080840190808552835180925280868601968360051b870101940192955b8287106105355785850386f35b909192938280610551600193603f198a82030186528851610e4e565b9601920196019592919092610528565b80fd5b50503461020c578160031936011261020c576020906002549051908152f35b8391503461020c578160031936011261020c5791908254906105a482610fd6565b936105b184519586610f9b565b828552601f1992836105c282610fd6565b019060209136838901376105d581610fd6565b926105e287519485610f9b565b8184526105ee82610fd6565b8484019601368737845b82811061064d57505050806106168651978789988952880190610eac565b928684038288015251928381520193925b82811061063657505050500390f35b835185528695509381019392810192600101610627565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154168061068f83886110aa565b52865260038752898620546106a4828a6110aa565b5201979695939492976105f8565b83833461020c578160031936011261020c5760ff60125416905191600182101561023c57602083838152f35b8284346105615780600319360112610561576106f8610fbc565b5081519161070583610f80565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077b5788906107778888610764818a0382610f9b565b8385015251928284938452830190610ee9565b0390f35b83546001600160a01b031685529093019260019283019201610749565b9050823461056157806003193601126105615780602084516107b981610f80565b828152015282516107c981610f80565b6027549160ff83169360028510156108015750508083602092520160018060a01b03809260081c168152835192835251166020820152f35b634e487b7160e01b825260219052602490fd5b50503461020c578160031936011261020c576020906005549051908152f35b50503461020c578160031936011261020c576020906008549051908152f35b50503461020c578160031936011261020c57602090600f549051908152f35b8284346105615760203660031901126105615761088c610e33565b9060ff601354169060038210156108ea5760208484600185036108c9576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b0316600090815260156020526040902060010154906108c3565b634e487b7160e01b815260218552602490fd5b50503461020c578160031936011261020c5760209060ff600e5460a01c169051908152f35b83833461020c578160031936011261020c5761ffff908160195416826016541601928284116109575750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610561576020366003190112610561575061098c61077791356110d4565b839291925193849315158452806020850152830190610f12565b9050823461056157602036600319011261056157506109c590356110d4565b82516109ee816109e060208201946020865287830190610f12565b03601f198101835282610f9b565b519020825191151582526020820152f35b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b03610a2b610e33565b1681526017855220541615159051908152f35b828434610561576020928360031936011261020c578035906001600160401b0390818311610bf15736602384011215610bf157820135818111610bf15760248301908060051b936024853692010111610bed579093855193849288840196818986018b8a525260608086019386010193819681925b848410610add57505050505050610ad3925003601f198101835282610f9b565b5190209051908152f35b9193959092949650605f19898203018752610af88883611399565b803560de1982360301811215610be55790610b528e610b418f959484610b3891019680875260e0610b298980611399565b91880152610120870190611413565b91860186611399565b848203603f19016060860152611413565b8d6080908501358185015286610b6a606087016113ad565b1660a08501528401359063ffffffff60e01b8216809203610be957908f9291610bb39060c09283870152610ba160a08801886113c1565b878303603f190160e0890152906113f2565b940135610100840152013590811515809203610be5576001928e92838093015299019701940191889697959391610ab3565b8580fd5b8780fd5b8480fd5b8380fd5b82843461056157806003193601126105615750601c548151906001600160401b03908181168352831c166020820152f35b50503461020c578160031936011261020c5760209060ff60125460081c1690519015158152f35b50503461020c578160031936011261020c5760209061ffff60135460081c169051908152f35b50503461020c57602036600319011261020c5761020360209282610c95610e33565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b50503461020c578160031936011261020c576020906006549051908152f35b50503461020c578160031936011261020c5760209060ff60125460101c1690519015158152f35b82843461056157602036600319011261056157610d5890606080610d24610e33565b92855190610d3182610f4f565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b6107776003835192610d6984610f4f565b8054845260018101549460208501958652610d9f600283015492828701938452610d9883518096819301610fed565b0384610f9b565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610e4e565b50503461020c57602036600319011261020c576020906002610e0e610df4610e33565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b84903461020c578160031936011261020c57602090600b548152f35b600435906001600160a01b0382168203610e4957565b600080fd5b919082519283825260005b848110610e7a575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610e59565b34610e49576000366003190112610e49576020601454604051908152f35b90815180825260208080930193019160005b828110610ecc575050505090565b83516001600160a01b031685529381019392810192600101610ebe565b9060406020610f0f936001600160401b0381511684520151918160208201520190610eac565b90565b9060606001600160401b0381610f318551608086526080860190610ee9565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610f6a57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610f6a57604052565b90601f801991011681019081106001600160401b03821117610f6a57604052565b60405190610fc982610f80565b6060602083600081520152565b6001600160401b038111610f6a5760051b60200190565b80546000939260018083169383821c9385156110a0575b602095868610811461108a5785855290811561106b575060011461102a575b5050505050565b90939495506000929192528360002092846000945b83861061105757505050500101903880808080611023565b80548587018301529401938590820161103f565b60ff19168685015250505090151560051b010191503880808080611023565b634e487b7160e01b600052602260045260246000fd5b93607f1693611004565b80518210156110be5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9060408051926110e384610f4f565b6110eb610fbc565b845260009081606060209682888201528286820152015281528084528181209382519461111786610f4f565b83519161112383610f80565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b81811061126757505050600484916111688888999a038a610f9b565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b81811061124657505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af493841561123d57508293611202575b505050159190565b9080929350813d8311611236575b61121a8183610f9b565b8101031261020c575190811515820361056157503880806111fa565b503d611210565b513d84823e3d90fd5b83516001600160a01b031685528796899650948501949093019282016111c5565b82546001600160a01b03168a529887019891850191850161114c565b60255461128f81610fd6565b90604061129e81519384610f9b565b818352601f196112ad83610fd6565b0160005b81811061138857505081156113835780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b8588821061136d57505061130c92500382610f9b565b60005b84811061131e57505050505090565b6001906001600160a01b0361133382856110aa565b51166000526024845261038961135186600020875192838092610fed565b61135b82896110aa565b5261136681886110aa565b500161130f565b84548352600194850194869450920191016112f6565b505090565b8060606020809388010152016112b1565b9035603e1982360301811215610e49570190565b35906001600160401b0382168203610e4957565b9035601e1982360301811215610e495701602081359101916001600160401b038211610e49578136038313610e4957565b908060209392818452848401376000828201840152601f01601f1916010190565b9061141e8280611399565b906040815260808101926001600160401b03938461143b856113ad565b16604084015260209384810135601e1982360301811215610e495701908482359201958211610e49578160051b36038613610e49578190604060608601525260a08301949060005b8181106114d557505050808361149a920190611399565b908281850391015280359060ff8216809203610e4957836114c8604093928493610f0f9752858101906113c1565b93909482015201916113f2565b90919586359060018060a01b038216809203610e49579081528501958501919060010161148356fea2646970667358221220bf850d4074a1e793a659119e8b06c4c9588d3187183ea6e92cb7f9d7466de16664736f6c634300081300336080806040523461001657615081908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146119e15750806310fd426114611870578063268119361461165d5780632e17de78146116305780633a4b66f1146115545780633f4ba83a146114dc57806341c0e1b51461144b5780634c860af6146113f75780634e71d92d146112635780635c975abb146112335780636170b16214610e8357806366783c9b14610da25780638456cb5914610d3a578063b9ee2bb91461093b578063cc2dc2b9146108bb578063d66d9e1914610870578063da5d09ee146101a55763ed7c4da1146100e757600080fd5b346101a257806003193601126101a25760008051602061502c83398151915260018154146101905780600183925561011d611cde565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b1561018c5782602491604051928380926382985e0b60e01b82523360048301525af490811561018157839161016a575b50505580f35b61017390611ac3565b61017e578138610164565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101a25760603660031901126101a2576004356001600160401b03811161086c576101d6903690600401611b69565b906024356001600160401b038111610868576101f6903690600401611b69565b916044356001600160401b03811161086457610216903690600401611b69565b909461022061411c565b610228611c99565b60ff601354166003811015610850576001036108205781810361080e5784810361080e5760125460081c60ff161561050f57865b81811061026d575050505050505080f35b61028161027b828888613eca565b906140e0565b6001600160a01b0361029c610297848689613f0b565b611ea9565b166001600160a01b03909116036104fd576103066102be610297838588613f0b565b6102c9838989613eca565b6102d785888d969496613f0b565b356102f2604051958693604060208601526060850191613abb565b90604083015203601f198101845283611af1565b6001600160401b03601c541660405161031e81611ad6565b600381526020810184815260018060a01b038416604083015282600052601d60205260406000209082516103518161202f565b61035a8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761039282610389600186015461204f565b60018601612142565b602090601f8311600114610460579282600080516020614fec83398151915297959360029360019b9a9896600092610455575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361040b82612267565b166001600160401b0319601c541617601c5561044660405193849360038552888060a01b031660208501526080806040860152840190613ea5565b9060608301520390a10161025c565b0151905038806103c5565b906001840160005260206000209160005b601f19851681106104cf57508360029360019b9a9896938c93600080516020614fec8339815191529b9997601f198116106104b6575b505050811b01898201556103db565b015160001960f88460031b161c191690553880806104a7565b91926020600181928685015181550194019201610471565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105e6575050505050506001600160401b03600c541610156105d45761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061057281613f56565b0390a1600e5460025482916001600160a01b0316803b1561018c578290602460405180948193637903ab2760e11b83528160048401525af180156105c9576105b957505080f35b6105c290611ac3565b6101a25780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b6105f461027b828786613eca565b6001600160a01b039190828061060e610297858d8d613f0b565b169116036104fd5761062c610627610297838b8b613f0b565b6131c1565b6107fc576106c391610656610645610297848c8c613f0b565b610650848a89613eca565b91614003565b610679610667610297848c8c613f0b565b61067284878a613f0b565b3590612758565b610687610297838b8b613f0b565b90610693838689613f0b565b35906106a0848a89613eca565b9590604051936106af85611ad6565b845260209683888601961686523691611b2d565b9260408301938452600154600160401b8110156104e7578060016106ea9201600155613f1b565b9290926107e657600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104e75761073882610732855461204f565b85612142565b80601f83116001146107775750819060019560009261076c575b5050600019600383901b1c191690841b1790555b01610516565b015190503880610752565b91929394601f1984168560005283600020936000905b8282106107ce575050916001969594929183889593106107b5575b505050811b019055610766565b015160001960f88460031b161c191690553880806107a8565b8060018697829497870151815501960194019061078d565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b61084c61082b613e28565b60405163015538b160e01b8152602060048201529182916024830190613ea5565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101a257806003193601126101a25760008051602061502c8339815191526001815414610190578060018392556108a7611cde565b6108af61411c565b6108b761490d565b5580f35b50346101a25760603660031901126101a2576001600160401b036004358181116109375736602382011215610937576108fe903690602481600401359101611bc4565b60443591821161093757366023830112156109375761092a610934923690602481600401359101611c1a565b9060243590614cb0565b80f35b8280fd5b50346101a25760031960603682011261086c576001600160401b036004351161086c576080600435600401916004353603011261086c576024356001600160401b03811161093757610991903690600401611b69565b91906044356001600160401b038111610d36576109b2903690600401611b69565b916109bb611cde565b60055494600b54956109cd8782611d09565b60246004350135141580610d26575b610d145760405190610a1460208301836109f68a83611df8565b0393610a0a601f1995868101835282611af1565b5190209882611d09565b6004356024013503610c1157505091610a37610a3f92610a459697943691611bc4565b933691611c1a565b91614cb0565b6024600435013582528160205260408220908035604219600435360301811215610868576004350191600483016001600160401b03610a8382611e49565b16936001600160401b03199485845416178355610aa96001926024848601930190611e5d565b91906001600160401b038311610bfd57600160401b8311610bfd578154838355808410610be2575b509087959493929190865260208620865b838110610bbb575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b1e86611e49565b16908254161790556024600435013582526022602052610b42604083203390611faa565b5060043560240135600555600e546001600160a01b0316803b15610937576040516347dc9b4f60e01b81529183918391829084908290610b859060048301611df8565b03925af180156105c957610ba7575b5050610ba261093491611e49565b61227f565b610bb090611ac3565b61086c578138610b94565b84959697506020610bcf8495969394611ea9565b848301558a989796959401929101610ae2565b82895260208920610bf7918101908501611e92565b38610ad1565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c2957505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610cf3575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610cc8915082611af1565b51902014610cd35780f35b6024600435013581526022602052610cef604082203390611faa565b5080f35b82546001600160a01b03168552889550602090940193918101918101610c87565b60405163fae4eadb60e01b8152600490fd5b50806024600435013514156109dc565b8480fd5b50346101a257806003193601126101a257610d53611c99565b610d5b611cde565b60008051602061500c833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101a25760203660031901126101a25760043560008051602061502c833981519152600181541461019057600181558115610e715760ff60125460081c16610e5f57338352600360205281604084205410610e4d576108b78392338452600360205260408420610e158282546127ec565b9055610e23816002546127ec565b6002553384526003602052604084205415610e3f575b33613cc7565b610e4833613d41565b610e39565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101a2576004356001600160401b03811161086c573660238201121561086c576001600160401b0381600401351161086c5736602482600401358301011161086c57600160008051602061502c833981519152541461019057600160008051602061502c83398151915255610eff611cde565b610f0761411c565b60ff60125460081c1680611226575b3415611214573360009081526015602052604090206002015461119f57604182600401350361118d57336001600160a01b03610f596004850135602486016140e0565b16036104fd57610f9c57806024610f769260040135910133614003565b610f80343361413d565b610f88614571565b8060008051602061502c8339815191525580f35b610fae36826004013560248401611b2d565b6001600160401b03601c54169060405190610fc882611ad6565b600282526020820190815233604083015282600052601d6020526040600020908251610ff38161202f565b610ffc8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761102b82610389600186015461204f565b602090601f8311600114611105579282600080516020614fec8339815191529795936002936110e298966000926110fa575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036110a682612267565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613abb565b9060608301520390a16110f53433614357565b610f88565b01519050388061105d565b906001840160005260206000209160005b601f19851681106111755750836002936110e2989693600193600080516020614fec8339815191529b9997601f1981161061115c575b505050811b016001820155611075565b015160001960f88460031b161c1916905538808061114c565b91926020600181928685015181550194019201611116565b6040516318dca5e960e21b8152600490fd5b61084c6040516111ae81611ad6565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b604051635a78c58160e11b8152600490fd5b61122e61455c565b610f16565b50346101a257806003193601126101a257602060ff60008051602061500c83398151915254166040519015158152f35b50346101a257806003193601126101a25760019060008051602061502c8339815191528281541461019057828155611299611cde565b336000908152601f602052604090209283549061ffff908183169283156113e557829060101c16918391808795818a01915b61135f575b50505086611341937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611348575b6113298133613cc7565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561131f565b9091939483811696828810156113dc578760005260208091858252604060002060405161138b81611aa8565b898254928383520154938491015243106113d157859493889688946113b286958a95611d09565b9c600052526000826040822082815501550116966000190116946112cb565b9850505094936112d0565b965094936112d0565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101a257604435600281101561086c57611418611cde565b600e546001600160a01b031633036114395761093490602435600435614b05565b60405163e7e601db60e01b8152600490fd5b50346101a257806003193601126101a25761146461411c565b61ffff61147a8160195416826016541690612742565b166114ca576012805462ff0000191662010000179055600e5481906001600160a01b0316803b1561017e578180916004604051809481936341c0e1b560e01b83525af180156105c9576105b95750f35b604051636b62255160e11b8152600490fd5b50346101a257806003193601126101a2576114f5611c99565b60008051602061500c833981519152805460ff8116156115425760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101a257611568611cde565b61157061411c565b61157861455c565b34156112145733600090815260156020526040902060020154156115bf5760125460081c60ff166115b5576115ad343361413d565b610934614571565b6109343433614357565b61084c6040516115ce81611ad6565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b50346101a25760203660031901126101a25761164a611cde565b61165261411c565b61093460043561463d565b50346101a25760031960603682011261086c576004356001600160401b03918282116108685760608260040191833603011261086857602435838111610d36576116ab903690600401611b69565b919060443585811161186c576116c5903690600401611b69565b916024860135966006549687891061182157604401906116e58287611e5d565b9190506009541680911161185a576116fd8287611e5d565b9050141580611833575b611821576117159085611e5d565b90501561180f5787946040516020810190611742816117348985613b45565b03601f198101835282611af1565b519020968803611773575050505050506007541461175e575080f35b81526023602052610cef604082203390611faa565b61178d9392610a3788969893610a3f939a989a3691611bc4565b80602060405161179c81611aa8565b848152015281600655600755825260236020526117bd604083203390611faa565b50600e546001600160a01b031690813b1561018c5782916117f491604051948580948193630bed761560e01b835260048301613b45565b03925af180156105c957611806575080f35b61093490611ac3565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118465788061515611707565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101a257602090816003193601126101a2576001600160401b03916004358381116109375736602382011215610937576118b6903690602481600401359101611b2d565b926118bf611cde565b3383526017825261ffff604084205416156119c9578351156119b75733835260248252604083209184519182116119a3576118fe82610732855461204f565b80601f831160011461193f5750839482939492611934575b50508160011b916000199060031b1c19161790555b610cef33611f41565b015190503880611916565b90601f198316958486528286209286905b88821061198b57505083600195969710611972575b505050811b01905561192b565b015160001960f88460031b161c19169055388080611965565b80600185968294968601518155019501930190611950565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b90508160031936011261086c573415611a99575060ff60125460081c16610e5f573381526003602052604081205415611a40575b338152600360205260408120611a2c348254611d09565b9055611a3a34600254611d09565b60025580f35b600454600160401b811015611a8557611a62816001611a809301600455611ebd565b81546001600160a01b0360039290921b91821b19163390911b179055565b611a15565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757604052565b606081019081106001600160401b038211176104e757604052565b90601f801991011681019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757601f01601f191660200190565b929192611b3982611b12565b91611b476040519384611af1565b829481845281830111611b64578281602093846000960137010152565b600080fd5b9181601f84011215611b64578235916001600160401b038311611b64576020808501948460051b010111611b6457565b6001600160401b0381116104e75760051b60200190565b35906001600160a01b0382168203611b6457565b9291611bcf82611b99565b91611bdd6040519384611af1565b829481845260208094019160051b8101928311611b6457905b828210611c035750505050565b838091611c0f84611bb0565b815201910190611bf6565b92919092611c2784611b99565b91611c356040519384611af1565b829480845260208094019060051b830192828411611b645780915b848310611c5f57505050505050565b82356001600160401b038111611b6457820184601f82011215611b64578691611c8e8683858095359101611b2d565b815201920191611c50565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611ccc57565b6040516330cd747160e01b8152600490fd5b60ff60008051602061500c8339815191525416611cf757565b60405163d93c066560e01b8152600490fd5b91908201809211611d1657565b634e487b7160e01b600052601160045260246000fd5b9035603e1982360301811215611b64570190565b35906001600160401b0382168203611b6457565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578160051b36038313611b6457565b60408201916001600160401b03611d9e83611d40565b1681526060611db260209384810190611d54565b839195604086839601525201929160005b828110611dd1575050505090565b909192938280600192838060a01b03611de989611bb0565b16815201950193929101611dc3565b6020815260806001600160401b03611e426060611e28611e188780611d2c565b85602088015260a0870190611d88565b956020810135604087015260408101358287015201611d40565b1691015290565b356001600160401b0381168103611b645790565b903590601e1981360301821215611b6457018035906001600160401b038211611b6457602001918160051b36038313611b6457565b818110611e9d575050565b60008155600101611e92565b356001600160a01b0381168103611b645790565b600454811015611ef45760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611ef45760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fa557602554600160401b811015611a85579082611f91611f7a84600160409601602555611f0a565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461202957845494600160401b861015612015576001860180825586101561200157836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561203957565b634e487b7160e01b600052602160045260246000fd5b90600182811c9216801561207f575b602083101461206957565b634e487b7160e01b600052602260045260246000fd5b91607f169161205e565b906000929180549161209a8361204f565b9182825260019384811690816000146120fc57506001146120bc575b50505050565b90919394506000526020928360002092846000945b8386106120e85750505050010190388080806120b6565b8054858701830152940193859082016120d1565b9294505050602093945060ff191683830152151560051b010190388080806120b6565b60005b8381106121325750506000910152565b8181015183820152602001612122565b9190601f811161215157505050565b61217d926000526020600020906020601f840160051c8301931061217f575b601f0160051c0190611e92565b565b9091508190612170565b908082146122635761219b815461204f565b906001600160401b0382116104e75781906121c0826121ba865461204f565b86612142565b600090601f83116001146121f7576000926121ec575b50508160011b916000199060031b1c1916179055565b0154905038806121d6565b81526020808220858352818320935090601f1985169083905b82821061224a575050908460019594939210612231575b505050811b019055565b015460001960f88460031b161c19169055388080612227565b8495819295850154815560018091019601940190612210565b5050565b9060016001600160401b0380931601918211611d1657565b601c546001600160401b03828116929080831684106122aa5760405163040aaa0560e11b8152600490fd5b808360401c1684106120b65780604093841c165b848282161115612325575050916020916122f87f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612267565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612343826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123688161202f565b8085036123da5750506003612399600161239f94959697019260018060a01b03166000526015602052604060002090565b01612189565b6123bc816001600160401b0316600052601d602052604060002090565b916000908184556001936123d18582016127f9565b015501166122be565b909194506123e78161202f565b60039181830361258557505087519361240f85612408816001809a01612089565b0386611af1565b84518501916020928a87858301920312611b645783870151898111611b645787019681603f89011215611b645787858d9901519261245861244f85611b12565b9a519a8b611af1565b838a528d8483010111611b64578c926124769184888c01910161211f565b015192816124968460018060a01b03166000526015602052604060002090565b01918751918a8311612570578a986124b8846124b2875461204f565b87612142565b81601f85116001146124fd57506124ed9798999a84939284926000956124f2575b50501b92600019911b1c1916179055612758565b61239f565b0151935038806124d9565b91601f9b9493919b1984169b866000528c84600020946000915b8210612555575050846124ed9a9b9c9d1061253b575b50505050811b019055612758565b01519060f884600019921b161c191690553880808061252d565b8383015186558f9d509487019492830192908101908e612517565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125a185612408816001809501612089565b60208086805181010312611b645781818c970151956125bf8161202f565b036126e45784906125d08285612842565b601e546125dd9043611d09565b928751906125ea82611aa8565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061262d91612742565b169c60009d8e5282870188528d20925183555191015561264c9061272f565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b15610937578291602483928a5195869384926345f5448560e01b845260048401525af19081156126d9575090849392916126ca575b5061239f565b6126d390611ac3565b386126c4565b8751903d90823e3d90fd5b5050829350916126f4919261279c565b600e541690813b15611b64578651916316989f6f60e21b83528260048160009485945af19081156126d9575090849392916126ca575061239f565b90600161ffff80931601918211611d1657565b91909161ffff80809416911601918211611d1657565b9060018060a01b03821660005260156020526040600020818154915581811460001461278357505050565b8111156127935761217d916128d1565b61217d91612c17565b9061217d916127e460018060a01b038216928360005260156020526127c981600160406000200154611d09565b93600052601560205283600160406000200155601454611d09565b6014556128d1565b91908203918211611d1657565b612803815461204f565b908161280d575050565b81601f6000931160011461281f575055565b90808391825261283e601f60208420940160051c840160018501611e92565b5555565b906128af6128b79260018060a01b038116906000828152601560205261286f8560016040842001546127ec565b92815260156020526040812060028101848154811590816128c8575b50156128bc575090826003926128aa94835581600184015555016127f9565b612c17565b6014546127ec565b601455565b92505060010155612c17565b9050153861288b565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b02578360135460081c16846016541610612ace5761291661379a565b60019283825260188652828a8320541688612930826131c1565b10612a4857508152601a855283898220541661299f57505050505061299a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461297a8361314c565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129a8866137ed565b926129b2876131c1565b935b8186821611612a0a575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd90806040810161299a565b8085612a2986617fff8f95871c1694858852601b8c52872054166131c1565b1015612a425790612a3b8392826139fb565b90506129b4565b506129be565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061299a95601a91612a83613480565b835252205416612ac0575b612a978461340b565b612aa08361314c565b516001600160a01b03928316815292909116602083015281906040820190565b612ac984613224565b612a8e565b505050505061299a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b97929150612b1385949796956137b6565b97612b1d856131c1565b97612b278a61339c565b8460165416905b858116828111612be05782811015612bc4575080612b4e612b549261272f565b9061374a565b9b909b5b8b1115612b7757612b69908c61396c565b612b728b61339c565b612b2e565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979150806040810161299a565b849c919c5260188352612bdb8588862054166131c1565b612b58565b5050505050505061299a91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197945061297a565b9060018060a01b039283831691600093838552602094601a865261ffff96604095888784205416613016578083526017885288878420541615613005578415612e9f5750612c64836137b6565b97612c6e846131c1565b985b6001808383161115612e905781617fff911c169081855260188a528a612c9a858b882054166131c1565b1115612caf57612caa908261396c565b612c70565b505091939597509193955b816019541615612e8657612ccc61379a565b6001918285526018825283898620541693612ce6856131c1565b95612cef6137a8565b848152601b808552828c8320541697612d07896131c1565b11612d5a57505098516001600160a01b0390961686525050505060208201929092529192507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197919050806040810161299a565b91939597509193959750612d6c613480565b83601954168015612e755780612d87612da3929896986138b3565b87612d9182613210565b1661ffff196019541617601955613812565b838252808552612db7838b842054166131c1565b9484809760028160195416925b612e02575b5050505050505050505061299a7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759394612a978461340b565b818116838111612e6f578e9080851115612e5457505080612e25612e2b9261272f565b906133b3565b9990995b891015612e4f57612e40908a6139fb565b612e498961339c565b87612dc4565b612dc9565b8752858552862054909990612e6a9088166131c1565b612e2f565b50612dc9565b8a516340d9b01160e01b8152600490fd5b5050505050509050565b50509193959750919395612cba565b7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b929450612ed388949996989297996135db565b8851908152a18260195416928315948515612ef2575050505050509050565b612efa6137a8565b600193848152601b808552828a8320541696612f15886131c1565b98612e755780612d87612f2a929896986138b3565b838252808552612f3e838b842054166131c1565b9484809760028160195416925b612f98575b50505050505050505050612f897f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b0390a180388080808080612e86565b818116838111612fff578e9080851115612fe457505080612e25612fbb9261272f565b9990995b891015612fdf57612fd0908a6139fb565b612fd98961339c565b87612f4b565b612f50565b8752858552862054909990612ffa9088166131c1565b612fbf565b50612f50565b8651632a55ca5360e01b8152600490fd5b84969892949793959715613111575061fffe9193613033866137ed565b9361303d876131c1565b9480966001958692831b168160195416925b6130a3575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd919050806040810161299a565b81811683811161310b578d90848110156130ef57505080612e256130c69261272f565b9890985b8810156130ea576130db90896139fb565b6130e48861339c565b8661304f565b613054565b8652601b85528520549098906131069087166131c1565b6130ca565b50613054565b949150506131459194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613224565b51908152a1565b61217d906131bb61ffff91613164836019541661272f565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b82541617905560195416176019556131c1565b90613347565b60ff601354166003811015612039576001036131f2576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d1657565b61322d906137ed565b61ffff9081601954169161324183836139fb565b8061324b84613210565b1661ffff19601954161760195561326183613812565b808216809314613342579161fffe91600091808352601b9060209382855260018060a01b03926040926132a161329b8686862054166131c1565b87613347565b82528086526132b48484842054166131c1565b9585986001988997881b168160195416995b6132d8575b5050505050505050505050565b8181168a811161333c578a811015613321575080612e256132f89261272f565b9a909a5b89101561331c5761330d908b6139fb565b6133168a61339c565b876132c6565b6132cb565b859b919b528383526133378787872054166131c1565b6132fc565b506132cb565b505050565b9190915b60018061ffff831611156133965781617fff911c1690836133816000848152601b602052604060018060a01b03912054166131c1565b10156133965761339190826139fb565b61334b565b50509050565b60011b906201fffe61fffe831692168203611d1657565b91909161ffff92838216600052601b6020526133f660018060a01b036133df81604060002054166131c1565b958316600052601b602052604060002054166131c1565b908185106134045750509190565b9350919050565b61217d9061347a61ffff91613423836016541661272f565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b82541617905560165416176016556131c1565b906136fb565b61ffff80601654169081156135c9579060019061349f81831115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161353991908a61352a83613210565b16906016541617601655613854565b84825280865261354d8484842054166131c1565b95859860028160165416995b61356a575050505050505050505050565b8181168a811161333c578a8110156135ae575080612b4e61358a9261272f565b9a909a5b89111561331c5761359f908b61396c565b6135a88a61339c565b87613559565b859b919b528383526135c48787872054166131c1565b61358e565b6040516340d9b01160e01b8152600490fd5b6135e4906137b6565b9061ffff908160165416906135f9828561396c565b8261360383613210565b1661ffff19601654161760165561361982613854565b8284168092146136f55760009291929183835260189260209484865260018060a01b03916040916136576136518585852054166131c1565b8a6136fb565b815285875261366a8383832054166131c1565b956136748961339c565b978560165416985b8681168a81116136e7578a8110156136cc575080612b4e61369c9261272f565b9a909a5b8911156136bf576136b1908b61396c565b6136ba8a61339c565b61367c565b5050505050505092505050565b849b919b528282526136e28686862054166131c1565b6136a0565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133965781617fff911c16908361373560008481526018602052604060018060a01b03912054166131c1565b111561339657613745908261396c565b6136ff565b919061ffff808416600052601860205261378b60018060a01b0361377481604060002054166131c1565b9284166000526018602052604060002054166131c1565b93848211156134045750509190565b61ffff60165416156135c957565b61ffff60195416156135c957565b6001600160a01b031660009081526017602052604090205461ffff169081156137db57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137db57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561389d57565b634e487b7160e01b600052600160045260246000fd5b6138d661ffff8060195416926138cc8460011115613896565b1691821115613896565b601b60208181527f9fafca4c9c0d5c2cbf85f49fd8ab8212430ce78c2a0cb75b51e0f9c4f9ace00380546000858152604080822080546001600160a01b03948516808552601a8852838520805461ffff19908116909b1790559416808452918320805490981660019081179098559590945284546001600160a01b03199081169092179094559390925281549092169091179055565b61398761ffff8080601654169316936138cc84861115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a1661ffff8080601954169316936138cc84861115613896565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578136038313611b6457565b908060209392818452848401376000828201840152601f01601f1916010190565b613b05613afa613aec8380611d2c565b604085526040850190611d88565b916020810190611d2c565b91602081830391015281359160ff8316809303611b6457613b32604091613b429484526020810190613a8a565b9190928160208201520191613abb565b90565b6020808252613b548380611d2c565b6060918281850152613b6b60809283860190611d88565b613b82604096838101358888015287810190611d54565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bbd57505050505050505050505090565b909192939495969798999a82828203018752613bd98c85611d2c565b90813560de1983360301811215611b64578782528201918a90888e6001600160401b03613c50613c40613c2d613c24613c128b80611d2c565b60e080988c01526101208b0190613adc565b978a018a611d2c565b96603f1997888a830301868b0152613adc565b928d8901358d8901528801611d40565b169060a091828701528a8701359263ffffffff60e01b8416809403611b64578f95613c87613c979460c096878b01528a018a613a8a565b9290918985030190890152613abb565b940135610100840152013590811515809203611b64578a01529a8801999897966001019587019493929190613ba8565b814710613d29576000918291829182916001600160a01b03165af13d15613d24573d613cf281611b12565b90613d006040519283611af1565b8152600060203d92013e5b15613d1257565b604051630a12f52160e11b8152600490fd5b613d0b565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d575750505050565b613d6081611ebd565b90546003916001600160a01b039190831b1c811685821614613d86575050600101613d4a565b929350939060001991828101908111613e135790613db784613daa613dd694611ebd565b905490891b1c1691611ebd565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613dfe570192613de984611ebd565b81939154921b1b1916905555388080806120b6565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104e7576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613ebe8151809281855285808601910161211f565b601f01601f1916010190565b9190811015611ef45760051b81013590601e1981360301821215611b645701908135916001600160401b038311611b64576020018236038113611b64579190565b9190811015611ef45760051b0190565b600154811015611ef4576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613fb257505050505050505090565b909192939495856003613ff1839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01612089565b9a019401940192969594939190613fa0565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104e7576140448161403e845461204f565b84612142565b6000601f821160011461407d57819293946000926140725750508160011b916000199060031b1c1916179055565b0135905038806121d6565b601f198216948382526020918281209281905b8882106140c8575050836001959697106140ae57505050811b019055565b0135600019600384901b60f8161c19169055388080612227565b80600184968294958701358155019501920190614090565b906140ed60418214613896565b80600111611b64576141089136916000190190600101611b2d565b80516020909101206001600160a01b031690565b60ff60125460101c1661412b57565b60405163248c8efb60e11b8152600490fd5b906141529061414c8184614330565b8261279c565b60ff60125460081c16156141635750565b60018054600082815b8381106142e0575b50501561418057505050565b6001600160a01b0383166000908152601560205260409020828101546141d6949091600301604051926141b284611ad6565b83526020936141dd8585019260018060a01b03809516845260405198898092612089565b0388611af1565b60408401968752600160401b8110156104e75780866141fe92018755613f1b565b9290926107e6576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104e757614245836124b2875461204f565b81601f841160011461427e5750928293918392600094614273575b50501b916000199060031b1c1916179055565b015192503880614260565b919083601f1981168760005284600020946000905b888383106142c657505050106142ad57505050811b019055565b015160001960f88460031b161c19169055388080612227565b858701518855909601959485019487935090810190614293565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146143265701839061416c565b5090508238614174565b60018060a01b031660005260156020526143536002604060002001918254611d09565b9055565b9190604051928160208501526020845261437084611aa8565b6001600160401b03601c5416936040519461438a86611ad6565b60008652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516143be8161202f565b6143c78161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576143ff816143f6600185015461204f565b60018501612142565b6020601f82116001146144d1576144b8949282600080516020614fec83398151915297959360029361217d9c9d6000926144c6575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361447d82612267565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a1614330565b015190503880614434565b6001830160005260206000209960005b601f198416811061454457509260018361217d9b9c6002946144b89997600080516020614fec8339815191529b9997601f1981161061452b575b505050811b01600182015561444c565b015160001960f88460031b161c1916905538808061451b565b828201518c556001909b019a602092830192016144e1565b60ff6013541660038110156120395761082057565b601454600a54811015614582575b50565b61ffff601654166001600160401b03600c5416111561459e5750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806145db81613f56565b0390a160018060a01b03600e5416906145f76002548092611d09565b91803b15611b645760246000926040519485938492637903ab2760e11b845260048401525af18015614631571561457f5761217d90611ac3565b6040513d6000823e3d90fd5b61464561455c565b80156146ac573360009081526015602052604090206002015480156119c95781101561469b5760ff60125460081c16156146835761217d9033614711565b8061469161217d92336146be565b610e398133612842565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146ff576146eb916127ec565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472a84611aa8565b6001600160401b03601c5416936040519461474486611ad6565b60018652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516147788161202f565b6147818161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576147b0816143f6600185015461204f565b6020601f821160011461488257614869949282600080516020614fec83398151915297959360029361217d9c9d600092614877575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482e82612267565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a16146be565b0151905038806147e5565b6001830160005260206000209960005b601f19841681106148f557509260018361217d9b9c6002946148699997600080516020614fec8339815191529b9997601f198116106148dc575b505050811b0160018201556147fd565b015160001960f88460031b161c191690553880806148cc565b828201518c556001909b019a60209283019201614892565b60ff60125460081c166149fa575b3360009081526015602052604090206002015480156119c95761493d33614a07565b5060009033825260246020528160408120614958815461204f565b806149bd575b50505060ff60125460081c161561497a5761217d915033614711565b604061217d92338152600360205220548061499b575b5061469181336146be565b806149ab6149b7926002546127ec565b600255610e3933613d41565b38614990565b82601f82116001146149d5575050555b81388061495e565b90918082526149f3601f60208420940160051c840160018501611e92565b55556149cd565b614a0261455c565b61491b565b6000818152602660205260408120549091908015614aec5760001990808201818111614ad85760255490838201918211614ac457808203614a90575b5050506025548015614a7c57810190614a5b82611f0a565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aae614a9f611f7a93611f0a565b90549060031b1c928392611f0a565b9055845260266020526040842055388080614a43565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611ef45760209160051b010190565b9190918215613342576040908151906020938483018381106001600160401b038211176104e75784526000928390526002811015614c9c5780614bfd5750600b54614b4f916127ec565b8152602283528181208251808286829454938481520190855286852092855b88828210614be757505050614b8592500382611af1565b928351948515614bdf57858110614bdf5785900493825b868110614bac5750505050505050565b6001906001600160a01b03614bc18285614af1565b5116855260218452858520614bd7888254611d09565b905501614b9c565b505050505050565b8554845260019586019587955093019201614b6e565b846001859214600014614c4d57606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cbd83611b99565b93604094614ccd86519182611af1565b848152601f19614cdc86611b99565b0194602095368784013760005b818110614db357505060009461ffff8060165416600192839182945b614d62575b505050505060ff600e5460a01c1694858102958187041490151715611d16576064614d36950491614e2a565b9015614d40575050565b60068110156120395760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614dab5760009081526018855220548493929186918591614da191614d9b906001600160a01b03166131c1565b90611d09565b9b01169493614d05565b505098614d0a565b6001600160a01b0380614dc68387614af1565b51166000526017885261ffff89600020541615614e065790614df5600192614dee8388614af1565b51166131c1565b614dff8286614af1565b5201614ce9565b8890614e1460249387614af1565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f125782518514801590614f07575b614efa579392919085945b848610614e72575050505050501015614e6a57600090600590565b600190600090565b909192939495614e8c614e858884614af1565b5184614f1f565b50614e968161202f565b614ee9576001600160a01b0380614ead8a88614af1565b5116911603614ed957614ecd600191614ec68988614af1565b5190611d09565b96019493929190614e4f565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e44565b5050505050905090600290565b8151919060418303614f5057614f4992506020820151906060604084015193015160001a90614f5b565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fdf57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fd35780516001600160a01b03811615614fca57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122078a0ac48511a213e0eba4669384b0aa5256d166c6201d23a213b1f403cf446a764736f6c634300081300336080806040523461001657611ea9908161001c8239f35b600080fdfe60808060405260043610156200001457600080fd5b60003560e01c637be005d5146200002a57600080fd5b34620006035760031960203682011262000603576001600160401b036004351162000603576101a09060043536030112620006035760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620009025760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b0381169081900362000603576000546001600160a01b031603620008f057604051620000e78162000911565b6002815260005b60408110620008c15750600154604051906001600160a01b0316620001138262000911565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200084c57620001b7945491818110620007b7575b81811062000797575b81811062000777575b81811062000757575b81811062000737575b81811062000717575b818110620006f9575b10620006e3575b5003826200092d565b6040820152620001c78262000970565b52620001d38162000970565b50600254604051906001600160a01b0316620001ef8262000911565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b806007830110620007d7576200028b945491818110620007b75781811062000797578181106200077757818110620007575781811062000737578181106200071757818110620006f95710620006e3575003826200092d565b60408201526200029b8262000994565b52620002a78162000994565b5060405190816114a48101106001600160401b036114a484011117620006cd576114a4620009d0833960406114a4830181815282519181018290526060600583901b82018101936020019291600091015b828210620006355785856114a48201810360206114a484010152600435600401356042196004353603018112156200060357600435016101a082526001600160401b036200034960048301620009a5565b166101a08301526024810135602219823603018112156200060357016001600160401b0360048201351162000603576024810190600481013560051b36038213620006035760406101c084015260048101356101e08401526102008301919060005b600482013581106200060857506001600160a01b039150620003d49050600435602401620009ba565b166020830152604460043501356001811015620006035760408301526064600435013560608301526001600160401b0362000414608460043501620009a5565b1660808301526001600160401b036200043260a460043501620009a5565b1660a083015260c4600435013560ff8116809103620006035760c083015260e4600435013561ffff8116809103620006035760e0830152610104600435013561010083015261012460043501358060000b8091036200060357610120830152610144600435013560038110156200060357620004ae816200094f565b6101408301526101646004350135916002831015620006035761016081019290925282916101806001600160a01b03620004ee60043561018401620009ba565b1691015203906000f08015620005f75733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005e1576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b036200062489620009ba565b1681520195019392019050620003ab565b90919293605f196114a4870182030182528451602060806040606085019360018060a01b038151168652838101516200066e816200094f565b84870152015193606060408201528451809452019201906000905b808210620006a957505050602080600192960192019201909291620002f8565b82516001600160e01b03191684526020938401939092019160019091019062000689565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b602090604051620008d28162000911565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b03821117620006cd57604052565b90601f801991011681019081106001600160401b03821117620006cd57604052565b600311156200095a57565b634e487b7160e01b600052602160045260246000fd5b8051156200097e5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156200097e5760400190565b35906001600160401b03821682036200060357565b35906001600160a01b0382168203620006035756fe608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212204a1029b43006a00fb724cee38a6c5f8bef964c7c85590654dbea4b2c1c0a3b3464736f6c634300081300336080806040523461001657610b21908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba2646970667358221220c02181d14c65e4a760705046e486a45f505b7ca43c4ba8c435ba915f6b7c065f64736f6c634300081300336080806040523461001657615076908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014611b175750806310fd4261146119a0578063268119361461178d5780632e17de7814611760578063350a14bf1461172d5780633a4b66f1146116515780633f4ba83a146115d957806341c0e1b5146115485780634c860af6146114f45780634e71d92d146113605780635c975abb146113305780636170b16214610f8057806366783c9b14610e9f5780638456cb5914610e37578063b9ee2bb914610a38578063c7ebdaef146109f2578063cc2dc2b914610972578063d66d9e1914610927578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b85760008051602061502183398151915260018154146101a657806001839255610133611e23565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611bf9565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610923576101ec903690600401611c9a565b906024356001600160401b03811161091f5761020c903690600401611c9a565b916044356001600160401b03811161091b5761022c903690600401611c9a565b909461023661407b565b61023e611dde565b60ff601354166003811015610907576001036108d7578181036108c5578481036108c55760125460081c60ff161561052557865b818110610283575050505050505080f35b610297610291828888613ed6565b9061403f565b6001600160a01b036102b26102ad848689613f17565b611fda565b166001600160a01b03909116036105135761031c6102d46102ad838588613f17565b6102df838989613ed6565b6102ed85888d969496613f17565b35610308604051958693604060208601526060850191613ac7565b90604083015203601f198101845283611c27565b6001600160401b03601c541660405161033481611c0c565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612160565b61037081612160565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612180565b60018601612273565b602090601f8311600114610476579282600080516020614fe183398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361042182612398565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190613eb1565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614fe18339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9490929391865b868110610697575050505050506001600160401b03600c541610156106855761010061ff0019601254161760125560405190602091828101838252600154809152604082019060408160051b8401019460016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6926000905b838210610639575050505050807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c959392930390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af1801561062e5761061e57505080f35b61062790611bf9565b6101b85780f35b6040513d84823e3d90fd5b90919293968360036106766060600194603f198b82030187528c5481528c86808060a01b0391015416858201528160408201520160028c016121ba565b990192019201909392916105a7565b60405163031480b160e51b8152600490fd5b6106a5610291828689613ed6565b6001600160a01b039081806106be6102ad868d89613f17565b16911603610513576106dc6106d76102ad848b87613f17565b613133565b6108b3576107026106f16102ad848b87613f17565b6106fc84888b613ed6565b91613f62565b6107256107136102ad848b87613f17565b61071e848988613f17565b3590612889565b6107336102ad838a86613f17565b9061073f838887613f17565b359161076e61074f85898c613ed6565b6040519561075c87611c0c565b86528460208701941684523691611c63565b9160408401928352600154600160401b8110156104fd578060016107959201600155613f27565b94909461089d57518455600184019151166001600160601b0360a01b825416179055518051906001600160401b0382116104fd576107e3826107da6002860154612180565b60028601612273565b602090601f8311600114610829579180600292600196959460009261081e575b5050600019600383901b1c191690851b179101555b0161052c565b015190503880610803565b906002840160005260206000209160005b601f1985168110610885575092600292600196959492879383601f1981161061086c575b505050811b01910155610818565b015160001960f88460031b161c1916905538808061085e565b9192602060018192868501518155019401920161083a565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6109036108e2613e34565b60405163015538b160e01b8152602060048201529182916024830190613eb1565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b85760008051602061502183398151915260018154146101a65780600183925561095e611e23565b61096661407b565b61096e61490a565b5580f35b50346101b85760603660031901126101b8576001600160401b036004358181116109ee57366023820112156109ee576109b5903690602481600401359101611d09565b6044359182116109ee57366023830112156109ee576109e16109eb923690602481600401359101611d5f565b9060243590614ca5565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c541601908111610a24576109eb906123b0565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610923576001600160401b03600435116109235760806004356004019160043536030112610923576024356001600160401b0381116109ee57610a8e903690600401611c9a565b91906044356001600160401b038111610e3357610aaf903690600401611c9a565b91610ab8611e23565b60055494600b5495610aca8782611e4e565b60246004350135141580610e23575b610e115760405190610b116020830183610af38a83611f29565b0393610b07601f1995868101835282611c27565b5190209882611e4e565b6004356024013503610d0e57505091610b34610b3c92610b429697943691611d09565b933691611d5f565b91614ca5565b602460043501358252816020526040822090803560421960043536030181121561091f576004350191600483016001600160401b03610b8082611f7a565b16936001600160401b03199485845416178355610ba66001926024848601930190611f8e565b91906001600160401b038311610cfa57600160401b8311610cfa578154838355808410610cdf575b509087959493929190865260208620865b838110610cb8575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610c1b86611f7a565b16908254161790556024600435013582526022602052610c3f6040832033906120db565b5060043560240135600555600e546001600160a01b0316803b156109ee576040516347dc9b4f60e01b81529183918391829084908290610c829060048301611f29565b03925af1801561062e57610ca4575b5050610c9f6109eb91611f7a565b6123b0565b610cad90611bf9565b610923578138610c91565b84959697506020610ccc8495969394611fda565b848301558a989796959401929101610bdf565b82895260208920610cf4918101908501611fc3565b38610bce565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610d2657505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610df0575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610dc5915082611c27565b51902014610dd05780f35b6024600435013581526022602052610dec6040822033906120db565b5080f35b82546001600160a01b03168552889550602090940193918101918101610d84565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610ad9565b8480fd5b50346101b857806003193601126101b857610e50611dde565b610e58611e23565b600080516020615001833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101b85760203660031901126101b85760043560008051602061502183398151915260018154146101a657600181558115610f6e5760ff60125460081c16610f5c57338352600360205281604084205410610f4a5761096e8392338452600360205260408420610f1282825461291d565b9055610f208160025461291d565b6002553384526003602052604084205415610f3c575b33613cd3565b610f4533613d4d565b610f36565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116109235736602382011215610923576001600160401b038160040135116109235736602482600401358301011161092357600160008051602061502183398151915254146101a657600160008051602061502183398151915255610ffc611e23565b61100461407b565b60ff60125460081c1680611323575b3415611311573360009081526015602052604090206002015461129c57604182600401350361128a57336001600160a01b0361105660048501356024860161403f565b160361051357611099578060246110739260040135910133613f62565b61107d343361409c565b6110856144d0565b806000805160206150218339815191525580f35b6110ab36826004013560248401611c63565b6001600160401b03601c541690604051906110c582611c0c565b600282526020820190815233604083015282600052601d60205260406000209082516110f081612160565b6110f981612160565b60ff80198454169116178255518051906001600160401b0382116104fd576111288261039f6001860154612180565b602090601f8311600114611202579282600080516020614fe18339815191529795936002936111df98966000926111f7575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036111a382612398565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613ac7565b9060608301520390a16111f234336142b6565b611085565b01519050388061115a565b906001840160005260206000209160005b601f19851681106112725750836002936111df989693600193600080516020614fe18339815191529b9997601f19811610611259575b505050811b016001820155611172565b015160001960f88460031b161c19169055388080611249565b91926020600181928685015181550194019201611213565b6040516318dca5e960e21b8152600490fd5b6109036040516112ab81611c0c565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b604051635a78c58160e11b8152600490fd5b61132b6144bb565b611013565b50346101b857806003193601126101b857602060ff60008051602061500183398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020615021833981519152828154146101a657828155611396611e23565b336000908152601f602052604090209283549061ffff908183169283156114e257829060101c16918391808795818a01915b61145c575b5050508661143e937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611445575b6114268133613cd3565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561141c565b9091939483811696828810156114d9578760005260208091858252604060002060405161148881611bde565b898254928383520154938491015243106114ce57859493889688946114af86958a95611e4e565b9c600052526000826040822082815501550116966000190116946113c8565b9850505094936113cd565b965094936113cd565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561092357611515611e23565b600e546001600160a01b03163303611536576109eb90602435600435614b02565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b85761156161407b565b61ffff6115778160195416826016541690612873565b166115c7576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af1801561062e5761061e5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b8576115f2611dde565b600080516020615001833981519152805460ff81161561163f5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b857611665611e23565b61166d61407b565b6116756144bb565b34156113115733600090815260156020526040902060020154156116bc5760125460081c60ff166116b2576116aa343361409c565b6109eb6144d0565b6109eb34336142b6565b6109036040516116cb81611c0c565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b50346101b85760203660031901126101b8576004356001600160401b038116810361175b576109eb906123b0565b600080fd5b50346101b85760203660031901126101b85761177a611e23565b61178261407b565b6109eb60043561463a565b50346101b857600319606036820112610923576004356001600160401b039182821161091f5760608260040191833603011261091f57602435838111610e33576117db903690600401611c9a565b919060443585811161199c576117f5903690600401611c9a565b916024860135966006549687891061195157604401906118158287611f8e565b9190506009541680911161198a5761182d8287611f8e565b9050141580611963575b611951576118459085611f8e565b90501561193f5787946040516020810190611872816118648985613b51565b03601f198101835282611c27565b5190209688036118a3575050505050506007541461188e575080f35b81526023602052610dec6040822033906120db565b6118bd9392610b3488969893610b3c939a989a3691611d09565b8060206040516118cc81611bde565b848152015281600655600755825260236020526118ed6040832033906120db565b50600e546001600160a01b031690813b156101a257829161192491604051948580948193630bed761560e01b835260048301613b51565b03925af1801561062e57611936575080f35b6109eb90611bf9565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156119765788061515611837565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b03916004358381116109ee57366023820112156109ee576119e6903690602481600401359101611c63565b926119ef611e23565b3383526017825261ffff60408420541615611aff57835115611aed573383526024825260408320918451918211611ad957611a3482611a2e8554612180565b85612273565b80601f8311600114611a755750839482939492611a6a575b50508160011b916000199060031b1c19161790555b610dec33612072565b015190503880611a4c565b90601f198316958486528286209286905b888210611ac157505083600195969710611aa8575b505050811b019055611a61565b015160001960f88460031b161c19169055388080611a9b565b80600185968294968601518155019501930190611a86565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610923573415611bcf575060ff60125460081c16610f5c573381526003602052604081205415611b76575b338152600360205260408120611b62348254611e4e565b9055611b7034600254611e4e565b60025580f35b600454600160401b811015611bbb57611b98816001611bb69301600455611fee565b81546001600160a01b0360039290921b91821b19163390911b179055565b611b4b565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611c6f82611c48565b91611c7d6040519384611c27565b82948184528183011161175b578281602093846000960137010152565b9181601f8401121561175b578235916001600160401b03831161175b576020808501948460051b01011161175b57565b35906001600160401b038216820361175b57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b038216820361175b57565b9291611d1482611cde565b91611d226040519384611c27565b829481845260208094019160051b810192831161175b57905b828210611d485750505050565b838091611d5484611cf5565b815201910190611d3b565b92919092611d6c84611cde565b91611d7a6040519384611c27565b829480845260208094019060051b83019282841161175b5780915b848310611da457505050505050565b82356001600160401b03811161175b57820184601f8201121561175b578691611dd38683858095359101611c63565b815201920191611d95565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611e1157565b6040516330cd747160e01b8152600490fd5b60ff6000805160206150018339815191525416611e3c57565b60405163d93c066560e01b8152600490fd5b91908201809211611e5b57565b634e487b7160e01b600052601160045260246000fd5b9035603e198236030181121561175b570190565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b578160051b3603831361175b57565b60408201916001600160401b03611ecf83611cca565b1681526060611ee360209384810190611e85565b839195604086839601525201929160005b828110611f02575050505090565b909192938280600192838060a01b03611f1a89611cf5565b16815201950193929101611ef4565b6020815260806001600160401b03611f736060611f59611f498780611e71565b85602088015260a0870190611eb9565b956020810135604087015260408101358287015201611cca565b1691015290565b356001600160401b038116810361175b5790565b903590601e198136030182121561175b57018035906001600160401b03821161175b57602001918160051b3603831361175b57565b818110611fce575050565b60008155600101611fc3565b356001600160a01b038116810361175b5790565b6004548110156120255760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b6025548110156120255760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b6000818152602660205260408120546120d657602554600160401b811015611bbb5790826120c26120ab8460016040960160255561203b565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461215a57845494600160401b861015612146576001860180825586101561213257836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561216a57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156121b0575b602083101461219a57565b634e487b7160e01b600052602260045260246000fd5b91607f169161218f565b90600092918054916121cb83612180565b91828252600193848116908160001461222d57506001146121ed575b50505050565b90919394506000526020928360002092846000945b8386106122195750505050010190388080806121e7565b805485870183015294019385908201612202565b9294505050602093945060ff191683830152151560051b010190388080806121e7565b60005b8381106122635750506000910152565b8181015183820152602001612253565b9190601f811161228257505050565b6122ae926000526020600020906020601f840160051c830193106122b0575b601f0160051c0190611fc3565b565b90915081906122a1565b90808214612394576122cc8154612180565b906001600160401b0382116104fd5781906122f1826122eb8654612180565b86612273565b600090601f83116001146123285760009261231d575b50508160011b916000199060031b1c1916179055565b015490503880612307565b81526020808220858352818320935090601f1985169083905b82821061237b575050908460019594939210612362575b505050811b019055565b015460001960f88460031b161c19169055388080612358565b8495819295850154815560018091019601940190612341565b5050565b9060016001600160401b0380931601918211611e5b57565b601c546001600160401b03828116929080831684106123db5760405163040aaa0560e11b8152600490fd5b808360401c1684106121e75780604093841c165b848282161115612456575050916020916124297f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612398565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612474826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff1661249981612160565b80850361250b57505060036124ca60016124d094959697019260018060a01b03166000526015602052604060002090565b016122ba565b6124ed816001600160401b0316600052601d602052604060002090565b9160009081845560019361250285820161292a565b015501166123ef565b9091945061251881612160565b6003918183036126b657505087519361254085612539816001809a016121ba565b0386611c27565b84518501916020928a8785830192031261175b578387015189811161175b5787019681603f8901121561175b5787858d9901519261258961258085611c48565b9a519a8b611c27565b838a528d848301011161175b578c926125a79184888c019101612250565b015192816125c78460018060a01b03166000526015602052604060002090565b01918751918a83116126a1578a986125e9846125e38754612180565b87612273565b81601f851160011461262e575061261e9798999a8493928492600095612623575b50501b92600019911b1c1916179055612889565b6124d0565b01519350388061260a565b91601f9b9493919b1984169b866000528c84600020946000915b82106126865750508461261e9a9b9c9d1061266c575b50505050811b019055612889565b01519060f884600019921b161c191690553880808061265e565b8383015186558f9d509487019492830192908101908e612648565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936126d2856125398160018095016121ba565b6020808680518101031261175b5781818c970151956126f081612160565b036128155784906127018285612973565b601e5461270e9043611e4e565b9287519061271b82611bde565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061275e91612873565b169c60009d8e5282870188528d20925183555191015561277d90612860565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b156109ee578291602483928a5195869384926345f5448560e01b845260048401525af190811561280a575090849392916127fb575b506124d0565b61280490611bf9565b386127f5565b8751903d90823e3d90fd5b50508293509161282591926128cd565b600e541690813b1561175b578651916316989f6f60e21b83528260048160009485945af190811561280a575090849392916127fb57506124d0565b90600161ffff80931601918211611e5b57565b91909161ffff80809416911601918211611e5b57565b9060018060a01b0382166000526015602052604060002081815491558181146000146128b457505050565b8111156128c4576122ae91612a02565b6122ae91612d48565b906122ae9161291560018060a01b038216928360005260156020526128fa81600160406000200154611e4e565b93600052601560205283600160406000200155601454611e4e565b601455612a02565b91908203918211611e5b57565b6129348154612180565b908161293e575050565b81601f60009311600114612950575055565b90808391825261296f601f60208420940160051c840160018501611fc3565b5555565b906129e06129e89260018060a01b03811690600082815260156020526129a085600160408420015461291d565b92815260156020526040812060028101848154811590816129f9575b50156129ed575090826003926129db948355816001840155550161292a565b612d48565b60145461291d565b601455565b92505060010155612d48565b905015386129bc565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612c33578360135460081c16846016541610612bff57612a47613855565b60019283825260188652828a8320541688612a6182613133565b10612b7957508152601a8552838982205416612ad0575050505050612acb7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649394612aab836130be565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b612ad9866138a8565b92612ae387613133565b935b8186821611612b3b575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd908060408101612acb565b8085612b5a86617fff8f95871c1694858852601b8c5287205416613133565b1015612b735790612b6c839282613a07565b9050612ae5565b50612aef565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7598999250612acb95601a91612bb461354d565b835252205416612bf1575b612bc8846134d8565b612bd1836130be565b516001600160a01b03928316815292909116602083015281906040820190565b612bfa846132fd565b612bbf565b5050505050612acb7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394612aab836134d8565b97929150612c448594979695613871565b97612c4e85613133565b97612c588a613469565b8460165416905b858116828111612d115782811015612cf5575080612c7f612c8592612860565b90613805565b9b909b5b8b1115612ca857612c9a908c61396e565b612ca38b613469565b612c5f565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019791508060408101612acb565b849c919c5260188352612d0c858886205416613133565b612c89565b50505050505050612acb91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612aab565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612f82578082526017835287868320541615612f71578415612ec95750612d9583613871565b97612d9f84613133565b985b6001808a83161115612eba5781617fff911c1690818452601885528a612dcb848a87205416613133565b1115612de057612ddb908261396e565b612da1565b505091939597509193955b6019541615612eb257612dfc613855565b60018252601883528581818420541692601b612e1785613133565b95612e20613863565b600183525220541691612e3283613133565b11612e7957505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197908060408101612acb565b91509150612acb7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612eaa61354d565b612bbf613196565b505050505050565b50509193959750919395612deb565b829450612efd7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799613696565b8651908152a160195416612f115750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612f3f613863565b6001835252205416612f65612f5382613133565b92612f5c613196565b612aab836134d8565b0390a1388080806121e7565b8551632a55ca5360e01b8152600490fd5b84969792939598919415613083575061fffe9193612f9f866138a8565b93612fa987613133565b9480966001958692831b168160195416925b61300f575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9190508060408101612acb565b81811683811161307d578d90848110156130615750508061303261303892612860565b90613480565b9890985b88101561305c5761304d9089613a07565b61305688613469565b86612fbb565b612fc0565b8652601b8552852054909890613078908716613133565b61303c565b50612fc0565b949150506130b79194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506132fd565b51908152a1565b6122ae9061312d61ffff916130d68360195416612860565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613133565b90613414565b60ff60135416600381101561216a57600103613164576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611e5b57565b61ffff80601954169081156132eb57906001906131b581831115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161324f91908a61324083613182565b169060195416176019556138cd565b848252808652613263848484205416613133565b95859860028160195416995b613281575b5050505050505050505050565b8181168a81116132e5578a8110156132ca5750806130326132a192612860565b9a909a5b8910156132c5576132b6908b613a07565b6132bf8a613469565b8761326f565b613274565b859b919b528383526132e0878787205416613133565b6132a5565b50613274565b6040516340d9b01160e01b8152600490fd5b613306906138a8565b61ffff9081601954169161331a8383613a07565b8061332484613182565b1661ffff19601954161760195561333a836138cd565b80821680931461340f579161fffe91600091808352601b9060209382855260018060a01b039260409261337a613374868686205416613133565b87613414565b825280865261338d848484205416613133565b9585986001988997881b168160195416995b6133b0575050505050505050505050565b8181168a81116132e5578a8110156133f45750806130326133d092612860565b9a909a5b8910156132c5576133e5908b613a07565b6133ee8a613469565b8761339f565b859b919b5283835261340a878787205416613133565b6133d4565b505050565b9190915b60018061ffff831611156134635781617fff911c16908361344e6000848152601b602052604060018060a01b0391205416613133565b10156134635761345e9082613a07565b613418565b50509050565b60011b906201fffe61fffe831692168203611e5b57565b91909161ffff92838216600052601b6020526134c360018060a01b036134ac8160406000205416613133565b958316600052601b60205260406000205416613133565b908185106134d15750509190565b9350919050565b6122ae9061354761ffff916134f08360165416612860565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613133565b906137b6565b61ffff80601654169081156132eb579060019061356c81831115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161360691908a6135f783613182565b1690601654161760165561390f565b84825280865261361a848484205416613133565b95859860028160165416995b613637575050505050505050505050565b8181168a81116132e5578a81101561367b575080612c7f61365792612860565b9a909a5b8911156132c55761366c908b61396e565b6136758a613469565b87613626565b859b919b52838352613691878787205416613133565b61365b565b61369f90613871565b9061ffff908160165416906136b4828561396e565b826136be83613182565b1661ffff1960165416176016556136d48261390f565b8284168092146137b05760009291929183835260189260209484865260018060a01b039160409161371261370c858585205416613133565b8a6137b6565b8152858752613725838383205416613133565b9561372f89613469565b978560165416985b8681168a81116137a2578a811015613787575080612c7f61375792612860565b9a909a5b89111561377a5761376c908b61396e565b6137758a613469565b613737565b5050505050505092505050565b849b919b5282825261379d868686205416613133565b61375b565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156134635781617fff911c1690836137f060008481526018602052604060018060a01b0391205416613133565b111561346357613800908261396e565b6137ba565b919061ffff808416600052601860205261384660018060a01b0361382f8160406000205416613133565b928416600052601860205260406000205416613133565b93848211156134d15750509190565b61ffff60165416156132eb57565b61ffff60195416156132eb57565b6001600160a01b031660009081526017602052604090205461ffff1690811561389657565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff1690811561389657565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561395857565b634e487b7160e01b600052600160045260246000fd5b61399361ffff80806016541693169361398984861115613951565b1691821115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a2261ffff80806019541693169361398984861115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b57813603831361175b57565b908060209392818452848401376000828201840152601f01601f1916010190565b613b11613b06613af88380611e71565b604085526040850190611eb9565b916020810190611e71565b91602081830391015281359160ff831680930361175b57613b3e604091613b4e9484526020810190613a96565b9190928160208201520191613ac7565b90565b6020808252613b608380611e71565b6060918281850152613b7760809283860190611eb9565b613b8e604096838101358888015287810190611e85565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bc957505050505050505050505090565b909192939495969798999a82828203018752613be58c85611e71565b90813560de198336030181121561175b578782528201918a90888e6001600160401b03613c5c613c4c613c39613c30613c1e8b80611e71565b60e080988c01526101208b0190613ae8565b978a018a611e71565b96603f1997888a830301868b0152613ae8565b928d8901358d8901528801611cca565b169060a091828701528a8701359263ffffffff60e01b841680940361175b578f95613c93613ca39460c096878b01528a018a613a96565b9290918985030190890152613ac7565b94013561010084015201359081151580920361175b578a01529a8801999897966001019587019493929190613bb4565b814710613d35576000918291829182916001600160a01b03165af13d15613d30573d613cfe81611c48565b90613d0c6040519283611c27565b8152600060203d92013e5b15613d1e57565b604051630a12f52160e11b8152600490fd5b613d17565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d635750505050565b613d6c81611fee565b90546003916001600160a01b039190831b1c811685821614613d92575050600101613d56565b929350939060001991828101908111613e1f5790613dc384613db6613de294611fee565b905490891b1c1691611fee565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613e0a570192613df584611fee565b81939154921b1b1916905555388080806121e7565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613eca81518092818552858086019101612250565b601f01601f1916010190565b91908110156120255760051b81013590601e198136030182121561175b5701908135916001600160401b03831161175b57602001823603811361175b579190565b91908110156120255760051b0190565b600154811015612025576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd57613fa381613f9d8454612180565b84612273565b6000601f8211600114613fdc5781929394600092613fd15750508160011b916000199060031b1c1916179055565b013590503880612307565b601f198216948382526020918281209281905b8882106140275750508360019596971061400d57505050811b019055565b0135600019600384901b60f8161c19169055388080612358565b80600184968294958701358155019501920190613fef565b9061404c60418214613951565b8060011161175b576140679136916000190190600101611c63565b80516020909101206001600160a01b031690565b60ff60125460101c1661408a57565b60405163248c8efb60e11b8152600490fd5b906140b1906140ab818461428f565b826128cd565b60ff60125460081c16156140c25750565b60018054600082815b83811061423f575b5050156140df57505050565b6001600160a01b0383166000908152601560205260409020828101546141359490916003016040519261411184611c0c565b835260209361413c8585019260018060a01b038095168452604051988980926121ba565b0388611c27565b60408401968752600160401b8110156104fd57808661415d92018755613f27565b92909261089d576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576141a4836125e38754612180565b81601f84116001146141dd57509282939183926000946141d2575b50501b916000199060031b1c1916179055565b0151925038806141bf565b919083601f1981168760005284600020946000905b88838310614225575050501061420c57505050811b019055565b015160001960f88460031b161c19169055388080612358565b8587015188559096019594850194879350908101906141f2565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614614285570183906140cb565b50905082386140d3565b60018060a01b031660005260156020526142b26002604060002001918254611e4e565b9055565b919060405192816020850152602084526142cf84611bde565b6001600160401b03601c541693604051946142e986611c0c565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161431d81612160565b61432681612160565b60ff80198a54169116178855519687516001600160401b0381116104fd5761435e816143556001850154612180565b60018501612273565b6020601f821160011461443057614417949282600080516020614fe18339815191529795936002936122ae9c9d600092614425575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036143dc82612398565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a161428f565b015190503880614393565b6001830160005260206000209960005b601f19841681106144a35750926001836122ae9b9c6002946144179997600080516020614fe18339815191529b9997601f1981161061448a575b505050811b0160018201556143ab565b015160001960f88460031b161c1916905538808061447a565b828201518c556001909b019a60209283019201614440565b60ff60135416600381101561216a576108d757565b601454600a548110156144e1575b50565b61ffff601654166001600160401b03600c541611156144fd5750565b61010061ff00196012541617601255604080516020908181018282526001805480925284830190858360051b850101926000958287527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69387905b898483106145ec575050505050505090807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593920390a160018060a01b03600e54166145a66002548095611e4e565b93813b156109ee57906024839285519687938492637903ab2760e11b845260048401525af19182156145e2575050156144de576122ae90611bf9565b51903d90823e3d90fd5b92600361462a87989995839798949596603f198d82030187528b54815260018060a01b03868d01541685820152606080928201520160028b016121ba565b9801920192019094939291614558565b6146426144bb565b80156146a957336000908152601560205260409020600201548015611aff578110156146985760ff60125460081c1615614680576122ae903361470e565b8061468e6122ae92336146bb565b610f368133612973565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146fc576146e89161291d565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472784611bde565b6001600160401b03601c5416936040519461474186611c0c565b60018652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161477581612160565b61477e81612160565b60ff80198a54169116178855519687516001600160401b0381116104fd576147ad816143556001850154612180565b6020601f821160011461487f57614866949282600080516020614fe18339815191529795936002936122ae9c9d600092614874575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482b82612398565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a16146bb565b0151905038806147e2565b6001830160005260206000209960005b601f19841681106148f25750926001836122ae9b9c6002946148669997600080516020614fe18339815191529b9997601f198116106148d9575b505050811b0160018201556147fa565b015160001960f88460031b161c191690553880806148c9565b828201518c556001909b019a6020928301920161488f565b60ff60125460081c166149f7575b336000908152601560205260409020600201548015611aff5761493a33614a04565b50600090338252602460205281604081206149558154612180565b806149ba575b50505060ff60125460081c1615614977576122ae91503361470e565b60406122ae923381526003602052205480614998575b5061468e81336146bb565b806149a86149b49260025461291d565b600255610f3633613d4d565b3861498d565b82601f82116001146149d2575050555b81388061495b565b90918082526149f0601f60208420940160051c840160018501611fc3565b55556149ca565b6149ff6144bb565b614918565b6000818152602660205260408120549091908015614ae95760001990808201818111614ad55760255490838201918211614ac157808203614a8d575b5050506025548015614a7957810190614a588261203b565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aab614a9c6120ab9361203b565b90549060031b1c92839261203b565b9055845260266020526040842055388080614a40565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b80518210156120255760209160051b010190565b919091821561340f576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614c915780614bf25750600b54614b4c9161291d565b8152602283528181208251808286829454938481520190855286852092855b88828210614bdc57505050614b8292500382611c27565b928351948515612eb257858110612eb25785900493825b868110614ba95750505050505050565b6001906001600160a01b03614bbe8285614aee565b5116855260218452858520614bd4888254611e4e565b905501614b99565b8554845260019586019587955093019201614b6b565b846001859214600014614c4257606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cb283611cde565b93604094614cc286519182611c27565b848152601f19614cd186611cde565b0194602095368784013760005b818110614da857505060009461ffff8060165416600192839182945b614d57575b505050505060ff600e5460a01c1694858102958187041490151715611e5b576064614d2b950491614e1f565b9015614d35575050565b600681101561216a5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614da05760009081526018855220548493929186918591614d9691614d90906001600160a01b0316613133565b90611e4e565b9b01169493614cfa565b505098614cff565b6001600160a01b0380614dbb8387614aee565b51166000526017885261ffff89600020541615614dfb5790614dea600192614de38388614aee565b5116613133565b614df48286614aee565b5201614cde565b8890614e0960249387614aee565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f075782518514801590614efc575b614eef579392919085945b848610614e67575050505050501015614e5f57600090600590565b600190600090565b909192939495614e81614e7a8884614aee565b5184614f14565b50614e8b81612160565b614ede576001600160a01b0380614ea28a88614aee565b5116911603614ece57614ec2600191614ebb8988614aee565b5190611e4e565b96019493929190614e44565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e39565b5050505050905090600290565b8151919060418303614f4557614f3e92506020820151906060604084015193015160001a90614f50565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fd457926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fc85780516001600160a01b03811615614fbf57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212208365497f3930f76c2e44a97011eac04d4fdac27c51258885a3dbc3b6ce4a273664736f6c63430008130033a264697066735822122006739a8771b16ea6d82ac437ffc1850d16cc03f85e86cc522084a712fd90678e64736f6c63430008130033","sourceMap":"8662:23266:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;:::i;:::-;24775:19;;:::i;:::-;24820:32;24804:48;24820:32;;;:::i;:::-;24804:48;8662:23266;24804:48;;;;:::i;:::-;;;:::i;:::-;;8662:23266;;;;;:::i;:::-;24792:1;8662:23266;;1220:14:3;8662:23266:88;1220:14:3;;;8662:23266:88;24915:19;8662:23266;;24915:19;;:::i;:::-;8662:23266;;24945:21;;;;;;8662:23266;;-1:-1:-1;;;24945:21:88;;-1:-1:-1;;;;;8662:23266:88;;;;24945:21;;8662:23266;;;1220:14:3;;8662:23266:88;24945:21;8662:23266;1220:14:3;8662:23266:88;24945:21;;;;;;;;;;8662:23266;;;;;;;;:::i;:::-;25033:12;8662:23266;;25009:61;1220:14:3;25009:61:88;;8662:23266;25146:38;;;;;8662:23266;;-1:-1:-1;;;25146:38:88;;-1:-1:-1;;;8662:23266:88;25146:38;;8662:23266;25146:38;8662:23266;;;25146:38;;;;;;;;;;;;;;;8662:23266;-1:-1:-1;25194:22:88;540:42:1;8662:23266:88;;-1:-1:-1;;;25194:53:88;;540:42:1;;8662:23266:88;25194:53;;8662:23266;540:42:1;;;;;;;;8662:23266:88;;;25194:53;;8662:23266;;540:42:1;;8662:23266:88;;;;;25194:53;;;;;;;;8662:23266;25257:14;;;;;;8662:23266;;;;;;;;;;;;;25257:14;;;;;;;;;;8662:23266;;;25257:14;;;;;:::i;:::-;8662:23266;;25257:14;8662:23266;;;;;;25257:14;8662:23266;;;;;;;;;25257:14;8662:23266;;;25194:53;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;8662:23266;;;;;;;;;25146:38;;;;;;;;:::i;:::-;8662:23266;;25146:38;;;;;;8662:23266;;;;25146:38;8662:23266;;;;;;;;;24945:21;;;;;;;:::i;:::-;;;;;;8662:23266;;;;;;;;;24945:21;8662:23266;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;;:::i;:::-;;;;;;;;;25793:9;8662:23266;31877:42;8662:23266;;;;:::i;:::-;-1:-1:-1;31904:14:88;3541:10;-1:-1:-1;;;;;8662:23266:88;;;;;31877:42;:::i;:::-;8662:23266;;;;;;;;;;;;25851:8;8662:23266;;;;;;;;;25851:45;;;8662:23266;25851:45;;8662:23266;25851:45;8662:23266;;;;;;;;:::i;:::-;25851:45;;;;;;;;;;;;;;8662:23266;;;;;;;;;;;;;;;;;25851:45;25988:29;8662:23266;;25988:29;;;:::i;:::-;8662:23266;;;;;;;;;;26036:22;;;;;;;;;;;;;8662:23266;26036:26;;8662:23266;;26098:25;8662:23266;;-1:-1:-1;26139:9:88;8662:23266;-1:-1:-1;;;;;8662:23266:88;;26183:36;;;:::i;:::-;26139:81;;;;;;8662:23266;;;;;;;;;;;;;;;;;;;26139:81;;8662:23266;;26139:81;;8662:23266;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;26139:81;;;;;;;;;;26094:281;;;25851:45;26094:281;;;25793:9;8662:23266;;;31877:42;;-1:-1:-1;;;;;8662:23266:88;;;:::i;:::-;-1:-1:-1;31904:14:88;3541:10;-1:-1:-1;;;;;8662:23266:88;;31877:42;:::i;:::-;8662:23266;;;;;;;;;;;;25851:8;8662:23266;;;;;;;;;;;;26477:45;;;8662:23266;26477:45;;8662:23266;;;;;;:::i;:::-;26477:45;;;;;;;;;;;;26094:281;8662:23266;;;26477:74;8662:23266;;26646:66;8662:23266;;26585:51;8662:23266;;26593:22;26585:51;:::i;:::-;26654:32;26646:66;:::i;8662:23266::-;;;-1:-1:-1;;;8662:23266:88;;25851:45;8662:23266;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;26477:45;;;;25851;26477;;25851;26477;;;;;;25851;26477;;;:::i;:::-;;;8662:23266;;;;540:42:1;;8662:23266:88;26477:45;;8662:23266;;;;26477:45;;;-1:-1:-1;26477:45:88;;;8662:23266;;;;;;;;;;26139:81;;;;;:::i;:::-;8662:23266;;26139:81;;;;8662:23266;;;26094:281;26241:24;;;;;;;;8662:23266;26241:24;26237:138;;26094:281;;;25851:45;26094:281;;;;;;;26237:138;26281:9;8662:23266;;;;-1:-1:-1;;;;;8662:23266:88;;26315:36;;;:::i;:::-;26281:83;;;;;;8662:23266;;;;;;;;;;;;;;;;;;;;26281:83;;8662:23266;;26281:83;;8662:23266;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;26281:83;;;;;;;;;25851:45;26281:83;;;;;;26237:138;;;;;;;;;;26281:83;;;;:::i;:::-;;;;;8662:23266;;;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;25851:45;8662:23266;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;26036:22;;;25851:45;26036:22;;25851:45;26036:22;;;;;;25851:45;26036:22;;;:::i;:::-;;;8662:23266;;;;540:42:1;26036:22:88;;;8662:23266;;;;26036:22;;;-1:-1:-1;26036:22:88;;;8662:23266;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;25851:45;;;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;540:42:1;25851:45:88;;;;;;;-1:-1:-1;25851:45:88;;;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;8662:23266:88;;;;;;;;;2130:18:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;31877:42;8662:23266;;:::i;:::-;;;:::i;31877:42::-;8662:23266;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;:::i;:::-;;;26803:26;;;;;8662:23266;;-1:-1:-1;;;26803:26:88;;-1:-1:-1;;;;;8662:23266:88;;;;26803:26;;8662:23266;;;;26803:26;8662:23266;;;26803:26;;;;;;;;;;;;;8662:23266;26839:56;;;;;;;8662:23266;;;;;;;;;;;;;;;26839:56;;8662:23266;26839:56;;8662:23266;;;;;;26839:56;;;;;;;;;;;8662:23266;;;26905:9;8662:23266;;26905:56;;;;;8662:23266;;;2857:7;8662:23266;;;;;;;;;;;;26905:56;;8662:23266;;26905:56;;8662:23266;;;;;;:::i;:::-;26905:56;;;;;;;;;;8662:23266;;26905:56;;;;:::i;:::-;8662:23266;;26905:56;8662:23266;26905:56;8662:23266;;;26839:56;;;;:::i;:::-;8662:23266;;26839:56;;;;;8662:23266;;;26803:26;;;;:::i;:::-;8662:23266;;26803:26;;;;;8662:23266;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;:::i;:::-;;;;;20610:26;;:::i;:::-;8662:23266;;;20677:21;;;;;-1:-1:-1;;;;;20677:21:88;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;20742:23;;;;;-1:-1:-1;;;;;20742:23:88;;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;20812:25;;;;;-1:-1:-1;;;;;20812:25:88;;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;20882:23;;;;;-1:-1:-1;;;;;20882:23:88;;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;;;;;:::i;:::-;;;;;;;;;20946:200;8662:23266;20946:200;;8662:23266;;;;;;21108:23;8662:23266;;;;;;21108:23;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20946:200;;8662:23266;20916:240;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;21196:198;8662:23266;21196:198;;8662:23266;;;;;;21356:23;8662:23266;;;;;;21356:23;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21196:198;;8662:23266;21166:238;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;21444:206;8662:23266;21444:206;;8662:23266;;;;;;21607:28;8662:23266;;;;;;21607:28;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21444:206;;8662:23266;21414:246;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;21700:212;8662:23266;21700:212;;8662:23266;;;;;;21863:34;8662:23266;;;;;;21863:34;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21700:212;;8662:23266;21670:252;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;21975:45;;;;;;;;;;-1:-1:-1;;;;;21975:45:88;;;;;;8662:23266;21975:45;;;8662:23266;21975:45;;;;8662:23266;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;21975:45;;;;;;;;8662:23266;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;22035:49;;8662:23266;22035:49;8662:23266;;;21975:45;-1:-1:-1;;;8662:23266:88;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20882:23;-1:-1:-1;;;8662:23266:88;;;;;;;;20742:23;-1:-1:-1;;;8662:23266:88;;;;;;;;20677:21;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;8662:23266:88;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;1982:18:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;-1:-1:-1;8662:23266:88;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;-1:-1:-1;8662:23266:88;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;;;;:::i;:::-;;1671:64:2;;8662:23266:88;;;;;;;6628:51:16;;8662:23266:88;;6628:51:16;;;;;;;;8662:23266:88;6628:51:16;;;8662:23266:88;;;;;;:::i;:::-;;;;;;;6628:51:16;779:22:61;;6628:51:16;;;;;;:::i;:::-;8662:23266:88;392:159:16;131:42;392:159;;;8662:23266:88;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3497:3;;;8662:23266;17074:43;;;;8662:23266;;;17140:29;;;;;;-1:-1:-1;;;;;17140:29:88;;;;;;;;;;;;;;;;;;8662:23266;17140:29;;;;;;8662:23266;;;;;3541:10;;-1:-1:-1;;;;;3541:10:88;;8662:23266;;3541:10;17128:41;3541:10;;;17128:41;3541:10;8662:23266;;17190:28;;;;;;;;;;;;;;;;;;;;;;8662:23266;17190:28;;;;;8662:23266;;3541:10;17179:39;3541:10;;;17179:39;3541:10;8662:23266;;17239:21;;;;;;;;;;;;;;;;;;;;;;8662:23266;17239:21;;;;;8662:23266;;3541:10;17228:32;3541:10;;;17228:32;3541:10;8662:23266;;17281:23;;;;;;;;;;;;;;;;;;;;;;8662:23266;17281:23;;;;;;18114:229;8662:23266;18426:657;8662:23266;;;;;;;;;;;3541:10;;17270:34;3541:10;;;17270:34;3541:10;17355:26;;:::i;:::-;8662:23266;;;17128:41;8662:23266;;;;;;;;:::i;:::-;;;;17422:191;;;8662:23266;;;:::i;:::-;;17422:191;;8662:23266;17392:231;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;17179:39;8662:23266;;;;;;;;:::i;:::-;;;;17664:189;;;8662:23266;;;:::i;:::-;;17664:189;;8662:23266;17634:229;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;17228:32;8662:23266;;;;;;;;:::i;:::-;;;;17904:189;;;8662:23266;;;:::i;:::-;;17904:189;;8662:23266;17874:229;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;18144:189;;;8662:23266;;;:::i;:::-;;18144:189;;8662:23266;18114:229;:::i;:::-;;;;;:::i;:::-;;19041:27;;:::i;:::-;8662:23266;;;;;;;;:::i;:::-;;;18426:657;;;8662:23266;;18426:657;;;:::i;:::-;8662:23266;;2805:2;18426:657;;8662:23266;;18426:657;;;3497:3;8662:23266;;18426:657;;3497:3;8662:23266;;18426:657;;3410:3;8662:23266;;18426:657;;3410:3;3055:7;18426:657;;;8662:23266;18903:2;18426:657;;;3455:2;8662:23266;18426:657;;;3455:2;18426:657;;;8662:23266;;;18366:727;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;18366:727;;;;;8662:23266;3541:10;;;18354:739;3541:10;;;18354:739;3541:10;;;17128:41;3541:10;;;17128:41;3541:10;;;17179:39;3541:10;;;17179:39;3541:10;;;17228:32;3541:10;;;17228:32;3541:10;17270:34;3541:10;;;17270:34;3541:10;8662:23266;;18366:727;8662:23266;;;;;;;;;18366:727;-1:-1:-1;;;8662:23266:88;;;;;;;;17281:23;8662:23266;;;;;;;;;;;17140:29;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;22520:12;;;;22528:3;22520:12;;8662:23266;22520:12;;8662:23266;;1220:14:3;;8662:23266:88;22520:12;;;;;;;;;;;;;;;;8662:23266;22498:35;;;;:::i;:::-;22482:51;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;22581:12;;;22589:3;8662:23266;22581:12;;8662:23266;22581:12;;;;;;;;;;;;;;;8662:23266;22559:35;;;;:::i;:::-;22543:51;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;22642:12;;;;22650:3;22642:12;;8662:23266;22642:12;;8662:23266;22642:12;;;;;;;;;;;;;;;8662:23266;22620:35;;;;:::i;:::-;22604:51;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;;;;;;22719:12;;;;;8662:23266;22719:12;;8662:23266;22719:12;;;;;;;;;;;;;;;;8662:23266;22704:27;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;;;22756:12;;;22589:3;8662:23266;22756:12;;8662:23266;22756:12;8662:23266;22756:12;8662:23266;22756:12;;;;;;;;;;;;8662:23266;22741:27;;;;;:::i;:::-;8662:23266;;;;;;22793:12;;;;8662:23266;22793:12;;8662:23266;22793:12;;;;;;;;;;;;;;;;8662:23266;22778:27;;;;;:::i;:::-;8662:23266;;;;;;;;;;:::i;:::-;;;;;;1220:14:3;;;8662:23266:88;;;22878:12;;;;;8662:23266;22878:12;;8662:23266;22878:12;;;;;;;;;;;;;;;;8662:23266;22870:24;;;;;;8662:23266;;-1:-1:-1;;;22870:24:88;;;8662:23266;;;;22870:24;;8662:23266;;1220:14:3;;;8662:23266:88;;;;;22870:24;8662:23266;1220:14:3;8662:23266:88;22870:24;;;;;;;;;;;;;8662:23266;;;;;22912:12;;;22589:3;8662:23266;22912:12;;8662:23266;22912:12;;;;;;;;;;;;;;;;8662:23266;22904:24;;;;;;8662:23266;;;22904:24;;;;8662:23266;;22904:24;;8662:23266;1220:14:3;;;;8662:23266:88;22904:24;;1220:14:3;22904:24:88;;;;;;;;;;;;;;8662:23266;;;;;22946:12;;;8662:23266;22946:12;;8662:23266;22946:12;;;;;;;;;;;;;;;;8662:23266;22938:24;;;;;;8662:23266;;;;22938:24;;;8662:23266;;22938:24;;8662:23266;1220:14:3;;;;8662:23266:88;22938:24;;1220:14:3;22938:24:88;;;;;;;;;;;;;;8662:23266;22973:16;;;;;23025;22973;;:::i;:::-;8662:23266;22999:16;;;;:::i;:::-;8662:23266;23025:16;:::i;:::-;8662:23266;;;;;;;:::i;:::-;23109:12;8662:23266;;23085:61;;;;8662:23266;23157:33;;;;;8662:23266;;-1:-1:-1;;;23157:33:88;;-1:-1:-1;;;8662:23266:88;23157:33;;8662:23266;;;;;;;;;;23157:33;;;;;;;;;;;;;;8662:23266;-1:-1:-1;23200:22:88;540:42:1;8662:23266:88;;-1:-1:-1;;;23200:53:88;;540:42:1;;8662:23266:88;23200:53;;8662:23266;540:42:1;;;;;;;;8662:23266:88;;;;;540:42:1;;8662:23266:88;;;;23200:53;;;;;;;;8662:23266;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;23200:53;;;;;;;;;;;;;:::i;:::-;;;;23157:33;;;;;;;;;:::i;:::-;8662:23266;;23157:33;;;;;;;22938:24;;;;:::i;:::-;8662:23266;;22938:24;;;;;8662:23266;;;22946:12;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;22946:12:88;;;;;;;;;8662:23266;;;;;;;;;22904:24;;;;:::i;:::-;8662:23266;;22904:24;;;;8662:23266;;;;22904:24;8662:23266;;;;;;;;;22904:24;8662:23266;;;22912:12;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;22912:12:88;;;;;;;;22870:24;;;;:::i;:::-;8662:23266;;22870:24;;;;22878:12;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;22878:12:88;;;;;;;;;22793;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;22793:12:88;;;;;;;;22756;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;22756:12:88;;;;;;;;22719;;;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;;;:::i;:::-;22719:12:88;;;;;;;;;22642;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;22620:35:88;1220:14:3;;:::i;:::-;22642:12:88;;;;;;;22581;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;22559:35:88;1220:14:3;;:::i;:::-;22581:12:88;;;;;;;22520;;;;;;;;;;;;;;;:::i;:::-;;;1220:14:3;;;;;22498:35:88;1220:14:3;;:::i;:::-;22520:12:88;;;;;;;8662:23266;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;:::i;:::-;;;:::i;:::-;31174:14;3541:10;-1:-1:-1;;;;;8662:23266:88;;30405:38;;;;;8662:23266;;-1:-1:-1;;;30405:38:88;;8662:23266;;30405:38;;8662:23266;;;;;;;;;;;30405:38;;;;;;;;8662:23266;30536:64;;8662:23266;30536:64;;;:::i;:::-;30643:8;8662:23266;;;-1:-1:-1;;;30643:25:88;;8662:23266;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;-1:-1:-1;;;;;8662:23266:88;30643:25;;;;;;;;;;;8662:23266;;;;;;;;;;;;;;30700:11;;;8662:23266;30700:11;;8662:23266;;;;;;:::i;:::-;30700:11;:9;;:11;;;;;;;;;;;;;;8662:23266;-1:-1:-1;8662:23266:88;;-1:-1:-1;;;30715:43:88;;8662:23266;;;;;;30715:43;;8662:23266;;30715:43;;;:::i;:::-;;30700:9;;30715:43;;;;;;;8662:23266;30715:43;8662:23266;30715:43;;;;;8662:23266;;;;;;;;;;;30715:52;;;8662:23266;30715:52;;8662:23266;;;;;;:::i;:::-;30715:52;30700:9;;30715:52;;;;;;;;;;8662:23266;30700:67;;8662:23266;;30928:46;30984:49;30878:19;30870:48;8662:23266;;30878:19;;30870:48;:::i;:::-;30936:17;30928:46;:::i;:::-;30992:15;30984:49;:::i;:::-;30643:8;8662:23266;;;-1:-1:-1;;;23555:25:88;;8662:23266;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;23555:25;;;;;;;:48;:25;;;;;;;8662:23266;-1:-1:-1;8662:23266:88;;-1:-1:-1;;;23555:48:88;;8662:23266;;;;;;23555:48;;;:::i;:::-;;30700:9;;23555:48;;;;;;;;;;;8662:23266;23637:29;;8662:23266;23637:29;;;:::i;:::-;8662:23266;;;;;;:::i;:::-;;;;23512:173;;8662:23266;30643:8;8662:23266;;;-1:-1:-1;;;23750:25:88;;8662:23266;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;23750:25;;;;;;;:45;:25;;;;;;;-1:-1:-1;8662:23266:88;;-1:-1:-1;;;23750:45:88;;8662:23266;;;;;;23750:45;;;:::i;:::-;;30700:9;;23750:45;;;;;;;;;;;8662:23266;23829:26;;;;:::i;:::-;8662:23266;;;;;;:::i;:::-;;;;23707:167;;8662:23266;;;;;;;:::i;:::-;1671:64:2;;;8662:23266:88;;;;;;:::i;:::-;;;;23476:608;;8662:23266;;;23476:608;;8662:23266;23476:608;;;;;3497:3;23476:608;;;;;;234:9:40;8662:23266:88;23476:608;;;;8662:23266;23476:608;;3055:7;23476:608;;;8662:23266;;;;;;;:::i;:::-;;;23444:679;8662:23266;23444:679;;234:9:40;8662:23266:88;;;;;;:::i;:::-;;;;;;234:9:40;;8662:23266:88;234:9:40;;;;24185:18:88;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;24433:33;;;;;8662:23266;;-1:-1:-1;;;24433:33:88;;-1:-1:-1;;;8662:23266:88;24433:33;;8662:23266;;;;;;;;;;;;24433:33;;;;;;;;234:9:40;-1:-1:-1;;24476:20:88;234:9:40;-1:-1:-1;;;;;8662:23266:88;;24476:45;;;;;8662:23266;;;;;;;;;;;24476:45;;8662:23266;234:9:40;;24476:45:88;8662:23266;;24476:45;;234:9:40;8662:23266:88;;;;;;;;234:9:40;8662:23266:88;;234:9:40;;;;;;;;;;;;;;;;;24476:45:88;;;;;;;;;;;;;;;;;;;234:9:40;8662:23266:88;;;;2508:20:60;;8662:23266:88;2508:20:60;;;8662:23266:88;;;;;;;;;:::i;:::-;2508:20:60;779:22:61;;2508:20:60;;;;;;:::i;:::-;8662:23266:88;2498:31:60;;8662:23266:88;;;;;;24476:45;;;;;:::i;:::-;8662:23266;;24476:45;;;234:9:40;;;;;;;;;8662:23266:88;234:9:40;;;;;;;;;;;;;;;:::i;:::-;8662:23266:88;;234:9:40;;;;;;;;;;;;;;;24433:33:88;;;;:::i;:::-;8662:23266;;24433:33;;;;234:9:40;8662:23266:88;;;;;;;:::i;:::-;;;;;;:::i;:::-;234:9:40;;:::i;:::-;;;;;:::i;:::-;;;;;;8662:23266:88;234:9:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23750:45:88;23829:26;23750:45;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;:25;;;;;;;;;;;;;:::i;:::-;;;;23555:48;8662:23266;23555:48;;;23637:29;23555:48;;;;;;;;;;:::i;:::-;;;;;8662:23266;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;30715:52;;;;8662:23266;30715:52;;8662:23266;30715:52;;;;;;8662:23266;30715:52;;;:::i;:::-;;;8662:23266;;;;540:42:1;30715:52:88;;;;;;;-1:-1:-1;30715:52:88;;:43;;;;;;;;;;;;;:::i;:::-;;;;30700:11;;;;;8662:23266;30700:11;;8662:23266;30700:11;;;;;;8662:23266;30700:11;;;:::i;:::-;;;8662:23266;;;;540:42:1;;;30715:43:88;30700:11;;;;;-1:-1:-1;30700:11:88;;30643:25;8662:23266;30643:25;;;;8662:23266;30643:25;;;;;;;;;;:::i;:::-;;;;;;30405:38;8662:23266;30405:38;;;30536:64;30405:38;;:::i;:::-;;;;;;8662:23266;;;;;;;;;;;;;;;;;:::i;:::-;;;19495:33;;;;;-1:-1:-1;;;;;19495:33:88;;;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;19570:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19649:26;;;;:::i;:::-;8662:23266;;;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;19716:201;;;8662:23266;;;;;19878:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;20229:39;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19716:201;;8662:23266;19686:241;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;;:::i;:::-;;;;19968:187;;;;8662:23266;;;:::i;:::-;;19968:187;;8662:23266;19938:227;;;:::i;:::-;;;;;:::i;:::-;;20229:39;:::i;:::-;8662:23266;;;20302:42;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8662:23266;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;8662:23266:88;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2899:18:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;2416:18:8;8662:23266:88;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2416:18:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;-1:-1:-1;8662:23266:88;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;;;:::i;:::-;;;;;;;;;;;;31877:42;8662:23266;25793:9;8662:23266;;;;:::i;:::-;;3541:10;31904:14;3541:10;8662:23266;31877:42;;:::i;:::-;8662:23266;;;;;;;;25851:8;8662:23266;;;;;;;;;25851:45;;;;;;;;;;;;;;8662:23266;25851:45;;8662:23266;;;;;:::i;:::-;25851:45;;;;;;;;;8662:23266;25851:45;;;8662:23266;;;;;;;;;;;;;;;;;;25988:29;;;8662:23266;25988:29;;:::i;:::-;8662:23266;;;;;;;;;;26036:22;;;;;;;;;8662:23266;26036:22;;;8662:23266;26036:26;;8662:23266;;26183:36;8662:23266;26139:9;8662:23266;;26183:36;;:::i;:::-;26139:81;;;;;;8662:23266;;;;;;;;;;;;;;;;;26139:81;;8662:23266;;26139:81;;8662:23266;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;26139:81;;;;;;;;;;;8662:23266;26139:81;;;;;8662:23266;;31877:42;8662:23266;25793:9;8662:23266;;;;:::i;:::-;;3541:10;31904:14;3541:10;8662:23266;31877:42;;:::i;:::-;8662:23266;;;;;;;25851:8;8662:23266;;;;;26477:45;;;;;;;;;;8662:23266;26477:45;;8662:23266;;;;;:::i;:::-;26477:45;;;;;;;;;8662:23266;26477:45;;;8662:23266;26477:74;;8662:23266;;26593:22;26646:66;26593:22;;;26585:51;26593:22;;26585:51;:::i;8662:23266::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;26477:45;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;540:42:1;;26477:45:88;;;;;;;;26139:81;;;;:::i;:::-;;;;8662:23266;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;26036:22;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;540:42:1;;26036:22:88;;;;;;;;8662:23266;;;;;;;;;;;;25851:45;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;540:42:1;;25851:45:88;;;;;;;;;8662:23266;;;;;;;;;;;;;2592:26:8;8662:23266:88;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2592:26:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;31174:14;8662:23266;;:::i;:::-;31174:14;3541:10;-1:-1:-1;;;;;8662:23266:88;;;;31174:14;:::i;8662:23266::-;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3497:3;;;8662:23266;17074:43;;8662:23266;;;17140:29;;;;;;;-1:-1:-1;;;;;17140:29:88;;;;;;;;;;;;8662:23266;17140:29;;;;;8662:23266;;;;;;-1:-1:-1;;;;;3541:10:88;;17128:41;3541:10;;;17128:41;3541:10;8662:23266;;17190:28;;;;;;;-1:-1:-1;;;;;17190:28:88;;;;;;;;;;;;8662:23266;17190:28;;;;;8662:23266;;;;;;-1:-1:-1;;;;;3541:10:88;;17179:39;3541:10;;;17179:39;3541:10;8662:23266;;17239:21;;;;;;;-1:-1:-1;;;;;17239:21:88;;;;;;;;;;;;8662:23266;17239:21;;;;;8662:23266;;;;;;-1:-1:-1;;;;;3541:10:88;;17228:32;3541:10;;;17228:32;3541:10;8662:23266;;17281:23;;;;;;;-1:-1:-1;;;;;17281:23:88;;;;;;;;;;;;8662:23266;17281:23;;;;;;17270:34;3541:10;;-1:-1:-1;;;;;;3541:10:88;-1:-1:-1;;;;;8662:23266:88;;3541:10;;;8662:23266;;;;-1:-1:-1;;;;;8662:23266:88;;;17355:26;;:::i;:::-;17128:41;8662:23266;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;:::i;:::-;;;;;17422:191;;8662:23266;;;:::i;:::-;;17422:191;;8662:23266;17392:231;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;17179:39:88;8662:23266;;;;-1:-1:-1;;;;;8662:23266:88;;;;:::i;:::-;;;;;17664:189;;8662:23266;;;:::i;:::-;;17664:189;;8662:23266;17634:229;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;17228:32:88;8662:23266;;;;-1:-1:-1;;;;;8662:23266:88;;;;:::i;:::-;;;;;17904:189;;8662:23266;;;:::i;:::-;;17904:189;;8662:23266;17874:229;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;18144:189;;8662:23266;;;:::i;:::-;;18144:189;;8662:23266;18114:229;;;:::i;:::-;;;;;:::i;:::-;;19041:27;;:::i;:::-;8662:23266;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;18426:657;;8662:23266;18426:657;8662:23266;;;18426:657;;;:::i;:::-;8662:23266;;2805:2;18426:657;;8662:23266;;18426:657;;;3497:3;8662:23266;;18426:657;;3497:3;8662:23266;18426:657;;;3410:3;8662:23266;;18426:657;;3410:3;3055:7;8662:23266;18426:657;;8662:23266;18903:2;18426:657;;;3455:2;;8662:23266;;3455:2;:::i;:::-;8662:23266;;18426:657;;;3455:2;18426:657;;;8662:23266;;;18366:727;;;;;;;;;;-1:-1:-1;;;;;18366:727:88;;;;;;;;;;;;;:::i;:::-;;;8662:23266;18366:727;;;;;8662:23266;;;;;;3541:10;-1:-1:-1;;;;;3541:10:88;;18354:739;3541:10;;;18354:739;3541:10;;-1:-1:-1;;;;;3541:10:88;;17128:41;3541:10;;;17128:41;3541:10;;-1:-1:-1;;;;;3541:10:88;;17179:39;3541:10;;;17179:39;3541:10;;-1:-1:-1;;;;;3541:10:88;;17228:32;3541:10;;;17228:32;3541:10;-1:-1:-1;;;;;3541:10:88;;17270:34;3541:10;;;17270:34;3541:10;8662:23266;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;:::i;:::-;24775:19;;:::i;:::-;24820:32;24804:48;24820:32;;;:::i;24804:48::-;;24651:3;24915:19;8662:23266;;;;;:::i;:::-;24792:1;8662:23266;;;;1220:14:3;;;8662:23266:88;24915:19;:::i;8662:23266::-;;;;;;;;;;;;;;;;;;2747:18:8;8662:23266:88;;;;;;;;;2747:18:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;8662:23266:88;;;;;;;;;3040:16:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;29455:8;8662:23266;;;-1:-1:-1;;;29455:24:88;;;8662:23266;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;29455:24;;;;;;;;;;;8662:23266;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;29493:9;8662:23266;;29555:10;;29533:33;29555:10;29533:33;:::i;:::-;29493:74;;;;;;8662:23266;;;;;;;;;;;;;;29493:74;;;8662:23266;29493:74;;8662:23266;;;;;;:::i;:::-;29493:74;8662:23266;;;29493:74;;;;;;;;;;;;8662:23266;;;29455:8;8662:23266;;;;;;29585:24;;;;;;;;;;;;;;;;;8662:23266;;;;;;29585:41;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;29585:24;;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;;;;;:::i;:::-;29585:24;;;;;;;;;29493:74;;;;;;;:::i;:::-;8662:23266;;29493:74;;;;;;8662:23266;;;;;;;;;;;;29455:24;;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;;;;:::i;:::-;29455:24;;;;;;;;;8662:23266;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22199:11;22227:12;22222:73;22248:3;8662:23266;;;;22241:5;;;;;8662:23266;;-1:-1:-1;3541:10:88;;;22267:17;3541:10;;;;;;;;;;;8662:23266;22267:17;;:::i;:::-;22248:3;8662:23266;;;;;;;;22227:12;;;8662:23266;-1:-1:-1;;;8662:23266:88;;;;;;;;3541:10;8662:23266;;;;;3541:10;;8662:23266;3541:10;8662:23266;3541:10;22241:5;;;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;:::i;:::-;29788:21;;8662:23266;;;:::i;:::-;-1:-1:-1;31904:14:88;3541:10;-1:-1:-1;;;;;8662:23266:88;3541:10;31877:42;;8662:23266;;31877:42;;:::i;:::-;8662:23266;;;;;;;29888:9;8662:23266;;29888:40;;;;;;8662:23266;;;;;;;;;;;;29888:40;;;;;;;;;;8662:23266;29962:21;;31877:42;29962:21;;8662:23266;;;:::i;:::-;;31904:14;3541:10;8662:23266;31877:42;;:::i;:::-;8662:23266;;;;;;;;;;;;;;30068:43;8662:23266;;30144:70;30167:26;;;;:::i;:::-;30152:41;30144:70;:::i;8662:23266::-;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;29888:40;;;31877:42;29888:40;;;:::i;:::-;;;;;8662:23266;;;;;;;;;;;;;;;;;;2272:16:8;8662:23266:88;;;;;;;;;2272:16:8;8662:23266:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;14059:26;;:::i;:::-;8662:23266;;;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;;14126:184;;;8662:23266;;;;;;;;:::i;:::-;;14126:184;;8662:23266;14096:224;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;;:::i;:::-;;;;14361:186;;;;8662:23266;;;;;;;;;14514:18;8662:23266;;;;;;;14514:18;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14361:186;;8662:23266;14331:226;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;8662:23266:88;;;14580:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;8662:23266;;3541:10;-1:-1:-1;;;;;3541:10:88;;14568:54;3541:10;;;14568:54;3541:10;8662:23266;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9356:41;8662:23266;;-1:-1:-1;;;;;8662:23266:88;;:::i;:::-;9155:1;8662:23266;;9155:1;9167:25;8662:23266;;;;;;;;9167:25;:::i;:::-;8662:23266;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3497:3;;;6353:58;;;8662:23266;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;2914:2;6293:412;;;8662:23266;3055:7;8662:23266;6293:412;;8662:23266;2805:2;6293:412;;;3410:3;8662:23266;6293:412;;8662:23266;3410:3;8662:23266;6293:412;;3410:3;-1:-1:-1;;;;;8662:23266:88;;;9356:41;:::i;:::-;8662:23266;3541:10;10268:38;10163:82;-1:-1:-1;;;;;3541:10:88;;;;;9339:58;3541:10;;;9339:58;3541:10;;;9408:54;3541:10;;;9408:54;3541:10;;;9472:56;3541:10;;;9472:56;3541:10;;;9538:66;3541:10;;;9538:66;3541:10;;;9614:66;3541:10;;;9614:66;3541:10;;;9690:70;3541:10;;;9690:70;3541:10;;;9770:68;3541:10;;;9770:68;3541:10;;;9848:60;3541:10;;;9848:60;3541:10;;;9918:53;3541:10;;;9918:53;3541:10;;;8662:23266;3541:10;;;8662:23266;3541:10;10163:82;:::i;10268:38::-;8662:23266;3541:10;;;10256:50;3541:10;;;10256:50;3541:10;;;10316:55;3541:10;;;10316:55;3541:10;;;10381:53;3541:10;;;10381:53;3541:10;;;10444:48;3541:10;;;10444:48;3541:10;10502:46;3541:10;;;10502:46;3541:10;24804:48;24775:19;;:::i;:::-;8662:23266;;:::i;:::-;-1:-1:-1;8662:23266:88;;-1:-1:-1;;;779:22:61;;;480:2;;779:22;;695:118;;779:22;8662:23266:88;779:22:61;:::i;:::-;480:2;8662:23266:88;;;;;;:::i;:::-;2914:2;3497:3;;-1:-1:-1;;;;;719:84:61;;;480:2;;;8662:23266:88;719:84:61;;8662:23266:88;;;;;695:118:61;;;;;;;480:2;;8662:23266:88;;480:2:61;;8662:23266:88;480:2:61;;;;;;;;8662:23266:88;480:2:61;;;8662:23266:88;480:2:61;;;;:::i;:::-;695:118;779:22;;695:118;;;;;;:::i;:::-;8662:23266:88;;;;;;:::i;:::-;;3410:3;;837:51:61;;;8662:23266:88;24804:48;;;;;:::i;:::-;;3410:3;24915:19;8662:23266;;;;;:::i;:::-;9155:1;8662:23266;;;;1220:14:3;;;8662:23266:88;24915:19;:::i;:::-;8662:23266;;24945:21;;;;;;8662:23266;;-1:-1:-1;;;24945:21:88;;8662:23266;;24945:21;;8662:23266;9155:1;1220:14:3;;;8662:23266:88;24945:21;8662:23266;1220:14:3;8662:23266:88;24945:21;;;;;;;;;;8662:23266;;;;;;;;;:::i;:::-;25033:12;8662:23266;;25009:61;;8662:23266;25146:38;;;;;8662:23266;;-1:-1:-1;;;25146:38:88;;-1:-1:-1;;;8662:23266:88;25146:38;;8662:23266;25146:38;8662:23266;1220:14:3;8662:23266:88;25146:38;;;;;;;;;;;;;;;;8662:23266;-1:-1:-1;9690:70:88;540:42:1;8662:23266:88;;-1:-1:-1;;;25194:53:88;;540:42:1;;8662:23266:88;25194:53;;8662:23266;540:42:1;;;;;;;;8662:23266:88;;;;;540:42:1;;8662:23266:88;;;;25194:53;;;;;;;;8662:23266;25257:14;;;;;;;8662:23266;;;;;;;;;;;;;25257:14;;;;;;;;;;8662:23266;;;25194:53;;;;;;-1:-1:-1;25194:53:88;;;;;;:::i;:::-;;;25146:38;;;;;;;;;:::i;:::-;8662:23266;;25146:38;;;;;;;24945:21;;;;;;:::i;:::-;8662:23266;24945:21;;;;8662:23266;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;;779:22:61;;;8662:23266:88;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;:::i;:::-;;;;;;;:::o;:::-;-1:-1:-1;;;;;8662:23266:88;;;;779:22:61;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8662:23266:88;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;779:22:61;8662:23266:88;-1:-1:-1;;8662:23266:88;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;1671:64:2;;8662:23266:88;;;;1671:64:2;;;;:::o;1819:584::-;1873:7;8662:23266:88;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;8662:23266:88;;;;;;;2196:43:2;;;;8662:23266:88;;;1671:64:2;;;8662:23266:88;1671:64:2;;8662:23266:88;;2196:43:2;;;;;:::i;:::-;2086:175;1671:64;8662:23266:88;;2086:175:2;;1671:64;2196:43;2086:175;;8662:23266:88;;;;;;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;:::i;:::-;8662:23266:88;;;;;;;:::i;:::-;1671:64:2;;;;2196:43;1671:64;;;;2196:43;8662:23266:88;;;2312:27:2;;1671:64;;;;2312:27;2196:43;1671:64;2312:27;;1671:64;:::i;:::-;8662:23266:88;1671:64:2;;;8662:23266:88;;;;;;;14278:17;8662:23266;;;;;;;;;;;14278:17;-1:-1:-1;8662:23266:88;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;13407:16;8662:23266;;;;;;;;;;;13407:16;-1:-1:-1;8662:23266:88;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;13646:17;8662:23266;;;;;;;;;;;13646:17;-1:-1:-1;8662:23266:88;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;15309:18;8662:23266;;;;;;;;;;;15309:18;-1:-1:-1;8662:23266:88;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;18061:17;8662:23266;;;;;;;;;;;18061:17;-1:-1:-1;8662:23266:88;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;18301:17;8662:23266;;;;;;;;;;;18301:17;-1:-1:-1;8662:23266:88;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;-1:-1:-1;8662:23266:88;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;3541:10;8662:23266;;3541:10;;;;;;:::o;:::-;8662:23266;;;;3541:10;;;;;8662:23266;3541:10;;8662:23266;;14342:1;3541:10;;;;;;;:::o;:::-;8662:23266;;22615:1;3541:10;;;;;;;:::o;:::-;8662:23266;;21681:1;3541:10;;;;;;;:::o;:::-;8662:23266;;11707:1;3541:10;;;;;;;:::o;:::-;8662:23266;;11971:1;3541:10;;;;;;;:::o;:::-;8662:23266;;12239:1;3541:10;;;;;;;:::o;:::-;8662:23266;;13233:1;3541:10;;;;;;;:::o;:::-;8662:23266;;13472:1;3541:10;;;;;;;:::o;8662:23266::-;;;;;;;:::i;:::-;1671:64:2;8662:23266:88;;-1:-1:-1;8662:23266:88;;;;:::o;2805:2::-;8662:23266;;;;;;:::i;:::-;2805:2;8662:23266;2805:2;-1:-1:-1;2805:2:88;;-1:-1:-1;2805:2:88;;;;;;:::o;3455:::-;;;;;;;;:::o;:::-;8662:23266;;;-1:-1:-1;3455:2:88;;;;;-1:-1:-1;3455:2:88;;;-1:-1:-1;3455:2:88;;;:::o;7651:1007::-;8662:23266;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3455:2;8662:23266;;;;;;3055:7;8662:23266;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;7837:27;;;:::i;:::-;8662:23266;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;3497:3;;;8662:23266;7988:58;;8662:23266;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;8662:23266:88;;7927:700;;8662:23266;7927:700;;3455:2;2857:7;8662:23266;7927:700;;8662:23266;;;7927:700;;3497:3;2914:2;8662:23266;7927:700;;3497:3;2805:2;8662:23266;7927:700;;3410:3;;8662:23266;7927:700;;3410:3;7927:700;;8662:23266;7927:700;;3455:2;7927:700;;3455:2;7927:700;;8662:23266;;7651:1007::o;4539:185:76:-;-1:-1:-1;8662:23266:88;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;-1:-1:-1;8662:23266:88;;-1:-1:-1;8662:23266:88;4618:99:76;;8662:23266:88;4539:185:76;:::o;8662:23266:88:-;;;;;;;;;:::i;:::-;14083:1;8662:23266;;;-1:-1:-1;8662:23266:88;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;;:::o;:::-;779:22:61;;;;;;;;8662:23266:88;;779:22:61;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;3455:2;;;:::i;:::-;8662:23266;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;10610:3185;;8662:23266;;10770:24;;;;;;;-1:-1:-1;;;;;10770:24:88;;;;;;;;;;;;;;;;;;8662:23266;;10844:24;;;;;;;-1:-1:-1;;;;;10844:24:88;;;;;;;;;;;;10770;10844;;;;;8662:23266;;10922:26;;;;;;;-1:-1:-1;;;;;10922:26:88;;;;;;;;;;;;10770:24;10922:26;;;;;;8662:23266;;11000:25;;;;;;;-1:-1:-1;;;;;11000:25:88;;;;;;;;;;;;10770:24;11000:25;;;;;8662:23266;;11066:25;;;;;;;-1:-1:-1;;;;;11066:25:88;;;;;;;;;;;;10770:24;11066:25;;;;;8662:23266;;11129:24;;;;;;;-1:-1:-1;;;;;11129:24:88;;;;;;;;;;;;10770;11129;;;;;;8662:23266;;11197:27;;;;;;;-1:-1:-1;;;;;11197:27:88;;;;;;;;;;;;10770:24;11197:27;;;;;;8662:23266;;11259:21;;;;;;;-1:-1:-1;;;;;11259:21:88;;;;;;;;;;;;10770:24;11259:21;;;;;;8662:23266;;11317:23;;;;;;;-1:-1:-1;;;;;11317:23:88;;;;;;;;;;;;10770:24;11317:23;;;;;;8662:23266;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;11417:1;8662:23266;;10770:24;8662:23266;;;;;;;;;;;;;:::i;:::-;;;;;;;;;10770:24;8662:23266;11462:211;;8662:23266;;;;;;11629:29;8662:23266;;;;;;11629:29;10770:24;8662:23266;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11462:211;;8662:23266;11430:253;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;10770:24;8662:23266;11726:211;;8662:23266;;;;;;11893:29;8662:23266;;;;;;11893:29;10770:24;8662:23266;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11726:211;;8662:23266;11694:253;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;10770:24;8662:23266;11990:215;;8662:23266;;;;;;12159:31;8662:23266;;;;;;12159:31;10770:24;8662:23266;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11990:215;;8662:23266;11958:257;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;10770:24;8662:23266;12258:213;;8662:23266;;;;;;12426:30;8662:23266;;;;;;12426:30;10770:24;8662:23266;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12258:213;;8662:23266;12226:255;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;10770:24;8662:23266;12524:189;;8662:23266;;;;;;12680:18;8662:23266;;;;;;12680:18;10770:24;8662:23266;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12524:189;;8662:23266;12492:231;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;10770:24;8662:23266;12766:187;;8662:23266;;;;;;12921:17;8662:23266;;;;;;12921:17;10770:24;8662:23266;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12766:187;;8662:23266;12734:229;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;;;;;;10770:24;8662:23266;13006:193;;8662:23266;;;;;;13164:20;8662:23266;;;;;;13164:20;10770:24;8662:23266;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13006:193;;8662:23266;12974:235;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;10770:24;8662:23266;13252:186;;8662:23266;;;:::i;:::-;;13252:186;;8662:23266;13220:228;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;10770:24;8662:23266;13491:187;;8662:23266;;;:::i;:::-;;13491:187;;8662:23266;13459:229;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;13716:40;;;;;;;;;-1:-1:-1;;;;;13716:40:88;;;;;8662:23266;13716:40;;;;8662:23266;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10770:24;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;13716:40;;10770:24;13716:40;;;;;13699:57;3541:10;;-1:-1:-1;;;;;;3541:10:88;-1:-1:-1;;;;;8662:23266:88;;;;3541:10;;;;;8662:23266;10610:3185::o;8662:23266::-;779:22:61;;;;;;8662:23266:88;779:22:61;8662:23266:88;;779:22:61;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3455:2;;;;;8662:23266;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3455:2;;;;:::i;:::-;8662:23266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14661:1518::-;8662:23266;;;;14820:29;;;;;;;-1:-1:-1;;;;;14820:29:88;;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;14891:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;14956:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8662:23266;;15014:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;15086:26;;:::i;:::-;8662:23266;;;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;15153:189;;;8662:23266;;;;;:::i;:::-;15153:189;;;8662:23266;15123:229;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;;:::i;:::-;;;;15393:187;15153:189;15393:187;;8662:23266;;;:::i;:::-;15393:187;;;8662:23266;15363:227;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;;:::i;:::-;;;;15631:187;15153:189;15631:187;;8662:23266;;;:::i;:::-;15631:187;;;8662:23266;15601:227;;;:::i;:::-;;;;;:::i;:::-;;8662:23266;;;;;;:::i;:::-;;;;15869:186;15153:189;15869:186;;8662:23266;;;:::i;:::-;15869:186;;;8662:23266;15839:226;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;8662:23266:88;;;16105:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;16158:14;;14661:1518;:::o;16105:42::-;8662:23266;;;;;;;;;15014:21;8662:23266;;;;;;;;;15014:21;-1:-1:-1;;;8662:23266:88;;;;;;;;14956:23;8662:23266;;;;;;;;;14956:23;-1:-1:-1;;;8662:23266:88;;;;;;;;14891:28;8662:23266;;;;;;;;;14820:29;8662:23266;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;24792:1;8662:23266;;;-1:-1:-1;8662:23266:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;1220:14:3:-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;1220:14:3:o;540:42:1:-;;;;;;;;;;;;1671:64:2;;;:::i;:::-;779:22:61;-1:-1:-1;;540:42:1;;;;;8662:23266:88;;;;;;:::i;:::-;540:42:1;;;;;;;;;;;;;:::o;581:314:61:-;-1:-1:-1;;;;;581:314:61;8662:23266:88;;:::i;:::-;;695:118:61;8662:23266:88;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;779:22:61;;;480:2;;779:22;;;;;:::i;:::-;480:2;8662:23266:88;;;;;;:::i;:::-;2914:2;3497:3;;-1:-1:-1;;;;;779:22:61;719:84;;480:2;;;719:84;;;8662:23266:88;;;;;695:118:61;;;779:22;695:118;;;480:2;;8662:23266:88;480:2:61;;;8662:23266:88;480:2:61;;8662:23266:88;480:2:61;;;;8662:23266:88;480:2:61;;;;;;;;;:::i;:::-;695:118;779:22;;695:118;;;;;;:::i;:::-;8662:23266:88;;;;;:::i;:::-;438:1:61;3410:3:88;;779:22:61;837:51;;8662:23266:88;581:314:61;:::o;8662:23266:88:-;;;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;1220:14:3;;;;;:::i;:::-;8662:23266:88;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8662:23266:88;;;;;;:::o;234:9:40:-;8662:23266:88;;;;;;:::i;:::-;234:9:40;8662:23266:88;;:::i;:::-;234:9:40;;;8662:23266:88;;:::i;:::-;234:9:40;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;8662:23266:88;;;234:9:40;;;;;;;;;;;:::i;:::-;;;;;;;;;8662:23266:88;-1:-1:-1;;;;;234:9:40;;;;8662:23266:88;234:9:40;;;8662:23266:88;;;;234:9:40;;;;8662:23266:88;234:9:40;;;8662:23266:88;234:9:40;;;;;;;;;;;;;;:::i;:::-;;;;;;;8662:23266:88;234:9:40;;8662:23266:88;;234:9:40;;8662:23266:88;234:9:40;:::o;8662:23266:88:-;;;;:::o;:::-;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;;30227:813;-1:-1:-1;;;;;8662:23266:88;;;;;;30405:38;;;;;8662:23266;;;;;;;;;;;30405:38;;30441:1;8662:23266;30441:1;30405:38;;;;;;;;;;8662:23266;30405:38;;;;;;;;;;;;;;30227:813;30536:64;;;;;;:::i;:::-;8662:23266;;;;;;;;;30643:8;8662:23266;;;;;;;;;;;30643:25;;;;;;;;;;;;;30227:813;30700:9;;8662:23266;;;;;;30700:11;;;;8662:23266;;;;;30700:11;;;;;;8662:23266;;;;;;:::i;:::-;30700:11;;;;;;;;;;;;;;;;;30227:813;-1:-1:-1;8662:23266:88;;-1:-1:-1;;;30715:43:88;;8662:23266;;;;;;30715:43;;8662:23266;30715:43;;;;:::i;:::-;;;;;;;;;;;;8662:23266;30715:43;;;;;;;;30227:813;8662:23266;;;30715:52;;;;;;;;;;;;8662:23266;;;;;;:::i;:::-;30715:52;;;;;;;;;;;;30227:813;30700:67;;8662:23266;;30878:19;;;;30870:48;30928:46;30878:19;30984:49;30878:19;;;30870:48;:::i;8662:23266::-;;-1:-1:-1;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8662:23266:88;;;;;;-1:-1:-1;8662:23266:88;30715:52;;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;540:42:1;30715:52:88;;;;;;;;;;8662:23266;;;;;;;;;;30715:43;;;;;;;;;;;;;;:::i;:::-;;;;;30700:11;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;540:42:1;;;;30715:43:88;30700:11;;;;;;;30643:25;;;;;;;;;;;;;;:::i;:::-;;;;;30405:38;;;30536:64;30405:38;;:::i;:::-;;;;;8662:23266;;;;;;;;;31202:541;;8662:23266;;:::i;:::-;;;;;;;;;;3541:10;;-1:-1:-1;;;;;3541:10:88;;;;31366:44;3541:10;;;31366:44;3541:10;31420:42;3541:10;;;31420:42;3541:10;8662:23266;;;;;;;;;;31500:25;;-1:-1:-1;31500:25:88;-1:-1:-1;31500:25:88;;;;;;;;;;;;;;:55;:25;;;;;31202:541;-1:-1:-1;8662:23266:88;;-1:-1:-1;;;31500:55:88;;8662:23266;31500:40;;8662:23266;;;;;31500:25;:55;;;:::i;:::-;;;;;;;;;;;;;;;31202:541;8662:23266;;;;31420:42;8662:23266;;;;;;;;;;31606:17;;;;;;;;;31500:25;31606:17;;8662:23266;;;;;;:::i;:::-;31606:17;;;;;;;;;;;;;;;;31202:541;8662:23266;;;;;;;;;;;31589:35;;31500:25;31589:35;;8662:23266;31589:35;;;;;;;;;;;31202:541;31643:9;;;8662:23266;31643:9;;;8662:23266;;;-1:-1:-1;;;;;31668:19:88;;;;;8662:23266;;31689:27;;;;8662:23266;;31718:17;;8662:23266;31635:101;;;;;31202:541;:::o;31589:35::-;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;;;;;;;-1:-1:-1;;;;;8662:23266:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;540:42:1;;8662:23266:88;;;;;540:42:1;8662:23266:88;;;;;;;540:42:1;8662:23266:88;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;8662:23266:88;;;;;:::i;:::-;;;;;31589:35;;;;;;8662:23266;;;;;;;;;;;31606:17;;;;;;;;;;;;;;;;;;:::i;:::-;;;8662:23266;;;;540:42:1;;;31606:17:88;;;;;;;;;8662:23266;;;;;;;;;31500:55;8662:23266;31500:55;;;;;;;;;;;;;:::i;:::-;;;;:25;;;;;;;;;;;;;;:::i;:::-;;;;;;8662:23266;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":89780,"length":20},{"start":95699,"length":20},{"start":100213,"length":20},{"start":107752,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":62100,"length":20},{"start":64281,"length":20},{"start":64855,"length":20},{"start":88657,"length":20},{"start":110756,"length":20}]},"src/lib/LibQuorum.sol":{"LibQuorum":[{"start":53310,"length":20},{"start":54081,"length":20}]},"src/lib/LibStaking.sol":{"LibStaking":[{"start":119066,"length":20},{"start":150479,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":74318,"length":20},{"start":88295,"length":20},{"start":110258,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":8900,"length":20},{"start":8980,"length":20},{"start":9064,"length":20},{"start":9245,"length":20},{"start":9410,"length":20},{"start":28443,"length":20},{"start":29129,"length":20},{"start":38112,"length":20},{"start":52979,"length":20},{"start":60329,"length":20},{"start":60917,"length":20},{"start":61790,"length":20},{"start":63848,"length":20},{"start":64135,"length":20},{"start":64685,"length":20},{"start":67735,"length":20},{"start":70134,"length":20},{"start":70231,"length":20},{"start":71326,"length":20},{"start":73987,"length":20},{"start":74089,"length":20},{"start":74419,"length":20},{"start":74504,"length":20},{"start":74605,"length":20},{"start":74690,"length":20},{"start":76177,"length":20},{"start":76255,"length":20},{"start":76360,"length":20},{"start":76516,"length":20},{"start":77066,"length":20},{"start":77307,"length":20},{"start":77388,"length":20},{"start":82861,"length":20},{"start":87364,"length":20},{"start":88040,"length":20},{"start":93635,"length":20},{"start":93854,"length":20},{"start":93934,"length":20},{"start":94115,"length":20},{"start":94296,"length":20},{"start":107934,"length":20},{"start":109994,"length":20},{"start":117890,"length":20},{"start":143372,"length":20}]}}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","addStake(uint256,address)":"2d49aa1c","addValidator(address)":"4d238c8e","addValidator(address,uint256)":"fc6c1f02","createGatewayDiamond(((uint64,address[]),uint256,uint256,uint8,(uint256,address,bytes)[],uint16))":"1e334294","createMockedSubnetActorWithGateway(address)":"951759c9","createSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))":"c69a0469","createSubnetActor(address,uint8,uint256,uint64,uint64,uint8)":"a0aaa285","createSubnetActor(address,uint8,uint256,uint64,uint64,uint8,uint8,uint16)":"5c2c2fed","createSubnetActorDiamondWithFaucets(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)),address,address)":"0d8d4acf","createSubnetRegistry((address,address,address,bytes4[],bytes4[]))":"c33dd9d5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","fund(address,uint256)":"7b1837de","fund(address,uint256,uint8)":"eb8df052","getSubnet(address)":"dd784974","getSubnetGW(address,address)":"87105557","join(address,bytes)":"d8d52713","registerSubnet(uint256,address)":"63323eb8","registerSubnetGW(uint256,address,address)":"fbfb8927","release(uint256)":"37bdc99b","reward(uint256)":"a9fb763c","setUp()":"0a9254e4","setupValidators()":"9c821dc6","setupWhiteListMethod(address,address)":"9b211080","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","totalWeight(uint256[])":"30dd2c45"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subnetRegistryAddress\",\"type\":\"address\"}],\"name\":\"SubnetRegistryCreated\",\"type\":\"event\"},{\"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\":[{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"}],\"name\":\"addStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"addValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"}],\"name\":\"addValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"networkName\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"msgFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"genesisValidators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"}],\"internalType\":\"struct GatewayDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createGatewayDiamond\",\"outputs\":[{\"internalType\":\"contract GatewayDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"gw\",\"type\":\"address\"}],\"name\":\"createMockedSubnetActorWithGateway\",\"outputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"_consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_checkPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"_majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"_permissionMode\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"_activeValidatorsLimit\",\"type\":\"uint16\"}],\"name\":\"createSubnetActor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"_consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_checkPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"_majorityPercentage\",\"type\":\"uint8\"}],\"name\":\"createSubnetActor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum SupplyKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct SupplySource\",\"name\":\"supplySource\",\"type\":\"tuple\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createSubnetActor\",\"outputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum SupplyKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct SupplySource\",\"name\":\"supplySource\",\"type\":\"tuple\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"getterFaucet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"managerFaucet\",\"type\":\"address\"}],\"name\":\"createSubnetActorDiamondWithFaucets\",\"outputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"getterFacet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"managerFacet\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetGetterSelectors\",\"type\":\"bytes4[]\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetManagerSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct SubnetRegistryDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createSubnetRegistry\",\"outputs\":[{\"internalType\":\"contract SubnetRegistryDiamond\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"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\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"funderAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fundAmount\",\"type\":\"uint256\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"funderAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fundAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum SupplyKind\",\"name\":\"mode\",\"type\":\"uint8\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"}],\"name\":\"getSubnet\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"},{\"internalType\":\"contract GatewayDiamond\",\"name\":\"gw\",\"type\":\"address\"}],\"name\":\"getSubnetGW\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"pubkey\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"}],\"name\":\"registerSubnet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"subnetAddress\",\"type\":\"address\"},{\"internalType\":\"contract GatewayDiamond\",\"name\":\"gw\",\"type\":\"address\"}],\"name\":\"registerSubnetGW\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"releaseAmount\",\"type\":\"uint256\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"reward\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setupValidators\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"}],\"name\":\"setupWhiteListMethod\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"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\":\"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\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"weights\",\"type\":\"uint256[]\"}],\"name\":\"totalWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"sum\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/IntegrationTestBase.sol\":\"IntegrationTestBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20\",\"dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f\",\"dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496\",\"dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT\"]},\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be\",\"dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/mocks/SubnetActorManagerFacetMock.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"subnetRegistryAddress","type":"address","indexed":true}],"type":"event","name":"SubnetRegistryCreated","anonymous":false},{"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":[{"internalType":"uint256","name":"stakeAmount","type":"uint256"},{"internalType":"address","name":"subnetAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addStake"},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addValidator"},{"inputs":[{"internalType":"address","name":"validator","type":"address"},{"internalType":"uint256","name":"weight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addValidator"},{"inputs":[{"internalType":"struct GatewayDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"networkName","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"bottomUpCheckPeriod","type":"uint256"},{"internalType":"uint256","name":"msgFee","type":"uint256"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"struct Validator[]","name":"genesisValidators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"}]}],"stateMutability":"nonpayable","type":"function","name":"createGatewayDiamond","outputs":[{"internalType":"contract GatewayDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"gw","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createMockedSubnetActorWithGateway","outputs":[{"internalType":"contract SubnetActorDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"_consensus","type":"uint8"},{"internalType":"uint256","name":"_minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"_minValidators","type":"uint64"},{"internalType":"uint64","name":"_checkPeriod","type":"uint64"},{"internalType":"uint8","name":"_majorityPercentage","type":"uint8"},{"internalType":"enum PermissionMode","name":"_permissionMode","type":"uint8"},{"internalType":"uint16","name":"_activeValidatorsLimit","type":"uint16"}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActor"},{"inputs":[{"internalType":"address","name":"_ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"_consensus","type":"uint8"},{"internalType":"uint256","name":"_minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"_minValidators","type":"uint64"},{"internalType":"uint64","name":"_checkPeriod","type":"uint64"},{"internalType":"uint8","name":"_majorityPercentage","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActor"},{"inputs":[{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"},{"internalType":"struct SupplySource","name":"supplySource","type":"tuple","components":[{"internalType":"enum SupplyKind","name":"kind","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActor","outputs":[{"internalType":"contract SubnetActorDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"},{"internalType":"struct SupplySource","name":"supplySource","type":"tuple","components":[{"internalType":"enum SupplyKind","name":"kind","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"}]}]},{"internalType":"address","name":"getterFaucet","type":"address"},{"internalType":"address","name":"managerFaucet","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createSubnetActorDiamondWithFaucets","outputs":[{"internalType":"contract SubnetActorDiamond","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetRegistryDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"gateway","type":"address"},{"internalType":"address","name":"getterFacet","type":"address"},{"internalType":"address","name":"managerFacet","type":"address"},{"internalType":"bytes4[]","name":"subnetGetterSelectors","type":"bytes4[]"},{"internalType":"bytes4[]","name":"subnetManagerSelectors","type":"bytes4[]"}]}],"stateMutability":"nonpayable","type":"function","name":"createSubnetRegistry","outputs":[{"internalType":"contract SubnetRegistryDiamond","name":"","type":"address"}]},{"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":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"funderAddress","type":"address"},{"internalType":"uint256","name":"fundAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"fund"},{"inputs":[{"internalType":"address","name":"funderAddress","type":"address"},{"internalType":"uint256","name":"fundAmount","type":"uint256"},{"internalType":"enum SupplyKind","name":"mode","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"fund"},{"inputs":[{"internalType":"address","name":"subnetAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getSubnet","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"subnetAddress","type":"address"},{"internalType":"contract GatewayDiamond","name":"gw","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getSubnetGW","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"validatorAddress","type":"address"},{"internalType":"bytes","name":"pubkey","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"join"},{"inputs":[{"internalType":"uint256","name":"collateral","type":"uint256"},{"internalType":"address","name":"subnetAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerSubnet"},{"inputs":[{"internalType":"uint256","name":"collateral","type":"uint256"},{"internalType":"address","name":"subnetAddress","type":"address"},{"internalType":"contract GatewayDiamond","name":"gw","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerSubnetGW"},{"inputs":[{"internalType":"uint256","name":"releaseAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"release"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"reward"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setupValidators","outputs":[{"internalType":"struct FvmAddress[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]},{"internalType":"address[]","name":"addresses","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"src","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setupWhiteListMethod","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"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":"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[]"}]},{"inputs":[{"internalType":"uint256[]","name":"weights","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"totalWeight","outputs":[{"internalType":"uint256","name":"sum","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"IntegrationTestBase"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec","urls":["bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20","dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870","urls":["bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f","dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692","urls":["bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496","dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT"],"license":"MIT OR Apache-2.0"},"test/helpers/SelectorLibrary.sol":{"keccak256":"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd","urls":["bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be","dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorManagerFacetMock.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":55376,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"BottomUpRouterFacet":[39601],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"CollateralIsZero":[37390],"ConsensusType":[37359],"CrossMsg":[49974],"CrossMsgHelper":[40781],"DSTest":[3720],"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"DuplicatedGenesisValidator":[37530],"EMPTY_BYTES":[36873],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"FilAddress":[1428],"FvmAddress":[49998],"FvmAddressHelper":[40962],"GatewayCannotBeZero":[37400],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IDiamond":[40170],"IPCAddress":[50204],"IntegrationTestBase":[55375],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"METHOD_SEND":[36879],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinality":[49918],"ParentFinalityAlreadyCommitted":[37498],"PermissionMode":[50165],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"RegisterSubnetFacet":[52279],"SelectorLibrary":[56263],"SignatureReplay":[37502],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[50887],"SubnetActorManagerFacet":[52151],"SubnetActorManagerFacetMock":[57957],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetGetterFacet":[52517],"SubnetID":[50077],"SubnetIDHelper":[48072],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SubnetRegistryDiamond":[36853],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[52912],"TestParams":[52683],"TestRegistry":[52747],"TestSubnetActor":[53037],"TestUtils":[57051],"TopDownFinalityFacet":[40071],"UnknownSubnet":[37522],"Validator":[50211],"Vm":[14222],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"XnetMessagingFacet":[40144],"ZeroMembershipWeight":[37512],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:31883:88","nodes":[{"id":52519,"nodeType":"PragmaDirective","src":"46:23:88","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52520,"nodeType":"ImportDirective","src":"71:28:88","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52521,"nodeType":"ImportDirective","src":"100:36:88","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":52522,"nodeType":"ImportDirective","src":"137:37:88","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52525,"nodeType":"ImportDirective","src":"176:72:88","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52523,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"184:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52524,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"197:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52527,"nodeType":"ImportDirective","src":"249:61:88","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52526,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"257:13:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52529,"nodeType":"ImportDirective","src":"311:56:88","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52528,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"319:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52534,"nodeType":"ImportDirective","src":"368:102:88","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":52530,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"376:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52531,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"386:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52532,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"406:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52533,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"419:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52536,"nodeType":"ImportDirective","src":"471:57:88","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":52535,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"479:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52545,"nodeType":"ImportDirective","src":"529:140:88","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":52537,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"537:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"547:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"559:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52540,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"575:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52541,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"591:6:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52542,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"599:12:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52543,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"613:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52544,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"625:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52547,"nodeType":"ImportDirective","src":"670:61:88","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":52546,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"678:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52549,"nodeType":"ImportDirective","src":"732:65:88","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40963,"symbolAliases":[{"foreign":{"id":52548,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"740:16:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52551,"nodeType":"ImportDirective","src":"798:61:88","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":52550,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"806:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52553,"nodeType":"ImportDirective","src":"860:67:88","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":52552,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"868:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52555,"nodeType":"ImportDirective","src":"928:56:88","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52554,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"936:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52557,"nodeType":"ImportDirective","src":"985:57:88","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52556,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"993:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52559,"nodeType":"ImportDirective","src":"1043:65:88","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52558,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1051:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52561,"nodeType":"ImportDirective","src":"1109:73:88","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52560,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1117:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52563,"nodeType":"ImportDirective","src":"1183:79:88","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52562,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1191:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52565,"nodeType":"ImportDirective","src":"1263:75:88","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52564,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1271:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52567,"nodeType":"ImportDirective","src":"1340:80:88","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52566,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1348:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52569,"nodeType":"ImportDirective","src":"1421:80:88","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52568,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1429:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52571,"nodeType":"ImportDirective","src":"1502:84:88","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52570,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1510:20:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52573,"nodeType":"ImportDirective","src":"1587:82:88","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52572,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1595:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52575,"nodeType":"ImportDirective","src":"1671:84:88","nodes":[],"absolutePath":"test/mocks/SubnetActorManagerFacetMock.sol","file":"./mocks/SubnetActorManagerFacetMock.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57958,"symbolAliases":[{"foreign":{"id":52574,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57957,"src":"1679:27:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52577,"nodeType":"ImportDirective","src":"1756:82:88","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52152,"symbolAliases":[{"foreign":{"id":52576,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"1764:23:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52579,"nodeType":"ImportDirective","src":"1839:80:88","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":52578,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1847:22:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52581,"nodeType":"ImportDirective","src":"1920:71:88","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52580,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"1928:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52583,"nodeType":"ImportDirective","src":"1992:82:88","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52280,"symbolAliases":[{"foreign":{"id":52582,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52279,"src":"2000:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52585,"nodeType":"ImportDirective","src":"2075:78:88","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52518,"symbolAliases":[{"foreign":{"id":52584,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52517,"src":"2083:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52587,"nodeType":"ImportDirective","src":"2154:71:88","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52586,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2162:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52589,"nodeType":"ImportDirective","src":"2226:67:88","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52588,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2234:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52591,"nodeType":"ImportDirective","src":"2294:69:88","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":52590,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"2302:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52593,"nodeType":"ImportDirective","src":"2364:50:88","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57052,"symbolAliases":[{"foreign":{"id":52592,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"2372:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52595,"nodeType":"ImportDirective","src":"2415:62:88","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":56264,"symbolAliases":[{"foreign":{"id":52594,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"2423:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52683,"nodeType":"ContractDefinition","src":"2479:1194:88","nodes":[{"id":52602,"nodeType":"VariableDeclaration","src":"2505:44:88","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2521:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52596,"name":"uint64","nodeType":"ElementaryTypeName","src":"2505:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2538:6:88","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52598,"name":"uint64","nodeType":"ElementaryTypeName","src":"2538:6:88","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52597,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2533:4:88","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2533:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2546:3:88","memberName":"max","nodeType":"MemberAccess","src":"2533:16:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52608,"nodeType":"VariableDeclaration","src":"2555:91:88","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2572:20:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52603,"name":"address","nodeType":"ElementaryTypeName","src":"2555:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2603:42:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2595:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52604,"name":"address","nodeType":"ElementaryTypeName","src":"2595:7:88","typeDescriptions":{}}},"id":52607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2595:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52611,"nodeType":"VariableDeclaration","src":"2652:42:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2668:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52609,"name":"uint64","nodeType":"ElementaryTypeName","src":"2652:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2693:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52614,"nodeType":"VariableDeclaration","src":"2700:54:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2717:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52612,"name":"uint256","nodeType":"ElementaryTypeName","src":"2700:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2747:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52617,"nodeType":"VariableDeclaration","src":"2760:47:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2775:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52615,"name":"uint8","nodeType":"ElementaryTypeName","src":"2760:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2805:2:88","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52620,"nodeType":"VariableDeclaration","src":"2813:51:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"2829:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52618,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2857:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52623,"nodeType":"VariableDeclaration","src":"2870:46:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"2886:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52621,"name":"uint64","nodeType":"ElementaryTypeName","src":"2870:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2914:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52626,"nodeType":"VariableDeclaration","src":"2922:44:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"2938:16:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52624,"name":"string","nodeType":"ElementaryTypeName","src":"2922:6:88","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2957:9:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52629,"nodeType":"VariableDeclaration","src":"2972:36:88","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"2987:7:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52627,"name":"bytes","nodeType":"ElementaryTypeName","src":"2972:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52628,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"2997:11:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52632,"nodeType":"VariableDeclaration","src":"3014:48:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3031:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52630,"name":"uint256","nodeType":"ElementaryTypeName","src":"3014:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3055:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52635,"nodeType":"VariableDeclaration","src":"3068:49:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3085:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52633,"name":"uint256","nodeType":"ElementaryTypeName","src":"3068:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52641,"nodeType":"VariableDeclaration","src":"3123:52:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3140:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52636,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3172:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":52638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3164:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52637,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:88","typeDescriptions":{}}},"id":52640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3164:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52647,"nodeType":"VariableDeclaration","src":"3181:54:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3198:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52642,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3232:2:88","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":52644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3224:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52643,"name":"address","nodeType":"ElementaryTypeName","src":"3224:7:88","typeDescriptions":{}}},"id":52646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3224:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52652,"nodeType":"VariableDeclaration","src":"3241:57:88","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3257:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52648,"name":"uint64","nodeType":"ElementaryTypeName","src":"3241:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3269:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52650,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"3273:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3269:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52655,"nodeType":"VariableDeclaration","src":"3304:50:88","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3321:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52653,"name":"uint256","nodeType":"ElementaryTypeName","src":"3304:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3347:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52658,"nodeType":"VariableDeclaration","src":"3360:53:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3376:31:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52656,"name":"uint16","nodeType":"ElementaryTypeName","src":"3360:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3410:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52661,"nodeType":"VariableDeclaration","src":"3419:38:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3433:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52659,"name":"int8","nodeType":"ElementaryTypeName","src":"3419:4:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3455:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52664,"nodeType":"VariableDeclaration","src":"3463:37:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3479:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52662,"name":"uint64","nodeType":"ElementaryTypeName","src":"3463:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3497:3:88","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52670,"nodeType":"VariableDeclaration","src":"3506:45:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3523:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52665,"name":"address","nodeType":"ElementaryTypeName","src":"3506:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3549:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":52667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52666,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:88","typeDescriptions":{}}},"id":52669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3541:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52676,"nodeType":"VariableDeclaration","src":"3557:57:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3574:24:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52671,"name":"address","nodeType":"ElementaryTypeName","src":"3557:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3609:4:88","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":52673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3601:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52672,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:88","typeDescriptions":{}}},"id":52675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52682,"nodeType":"VariableDeclaration","src":"3620:50:88","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3637:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52677,"name":"address","nodeType":"ElementaryTypeName","src":"3620:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3667:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":52679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3659:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3659:7:88","typeDescriptions":{}}},"id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3659:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52683],"name":"TestParams","nameLocation":"2488:10:88","scope":55376,"usedErrors":[]},{"id":52747,"nodeType":"ContractDefinition","src":"3675:824:88","nodes":[{"id":52690,"nodeType":"VariableDeclaration","src":"3723:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3732:28:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52688,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3723:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52689,"nodeType":"ArrayTypeName","src":"3723:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52693,"nodeType":"VariableDeclaration","src":"3766:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3775:34:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52691,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52692,"nodeType":"ArrayTypeName","src":"3766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52696,"nodeType":"VariableDeclaration","src":"3815:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"3824:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52694,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3815:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52695,"nodeType":"ArrayTypeName","src":"3815:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52699,"nodeType":"VariableDeclaration","src":"3853:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"3862:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52697,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3853:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52698,"nodeType":"ArrayTypeName","src":"3853:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52702,"nodeType":"VariableDeclaration","src":"3892:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"3914:15:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52701,"nodeType":"UserDefinedTypeName","pathNode":{"id":52700,"name":"SubnetRegistryDiamond","nameLocations":["3892:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"3892:21:88"},"referencedDeclaration":36853,"src":"3892:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52705,"nodeType":"VariableDeclaration","src":"3935:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"3953:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52704,"nodeType":"UserDefinedTypeName","pathNode":{"id":52703,"name":"DiamondLoupeFacet","nameLocations":["3935:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"3935:17:88"},"referencedDeclaration":37355,"src":"3935:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52708,"nodeType":"VariableDeclaration","src":"3973:30:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"3989:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52707,"nodeType":"UserDefinedTypeName","pathNode":{"id":52706,"name":"DiamondCutFacet","nameLocations":["3973:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"3973:15:88"},"referencedDeclaration":36918,"src":"3973:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52711,"nodeType":"VariableDeclaration","src":"4009:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4029:19:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52710,"nodeType":"UserDefinedTypeName","pathNode":{"id":52709,"name":"RegisterSubnetFacet","nameLocations":["4009:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"4009:19:88"},"referencedDeclaration":52279,"src":"4009:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52714,"nodeType":"VariableDeclaration","src":"4054:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4072:25:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"SubnetGetterFacet","nameLocations":["4054:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"4054:17:88"},"referencedDeclaration":52517,"src":"4054:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52746,"nodeType":"FunctionDefinition","src":"4104:393:88","nodes":[],"body":{"id":52745,"nodeType":"Block","src":"4118:379:88","nodes":[],"statements":[{"expression":{"id":52722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52717,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"4128:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4192:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":52718,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4159:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4175:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4159:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4128:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52723,"nodeType":"ExpressionStatement","src":"4128:86:88"},{"expression":{"id":52729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52724,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"4224:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4294:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":52725,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4261:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4277:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4261:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4261:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4224:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52730,"nodeType":"ExpressionStatement","src":"4224:90:88"},{"expression":{"id":52736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52731,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"4324:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4383:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52732,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4350:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4366:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4350:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4350:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4324:77:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52737,"nodeType":"ExpressionStatement","src":"4324:77:88"},{"expression":{"id":52743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52738,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"4411:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4470:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52739,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4437:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4453:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4437:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4411:79:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52744,"nodeType":"ExpressionStatement","src":"4411:79:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52715,"nodeType":"ParameterList","parameters":[],"src":"4115:2:88"},"returnParameters":{"id":52716,"nodeType":"ParameterList","parameters":[],"src":"4118:0:88"},"scope":52747,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52684,"name":"Test","nameLocations":["3700:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3700:4:88"},"id":52685,"nodeType":"InheritanceSpecifier","src":"3700:4:88"},{"baseName":{"id":52686,"name":"TestParams","nameLocations":["3706:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"3706:10:88"},"id":52687,"nodeType":"InheritanceSpecifier","src":"3706:10:88"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3684:12:88","scope":55376,"usedErrors":[]},{"id":52912,"nodeType":"ContractDefinition","src":"4501:2237:88","nodes":[{"id":52754,"nodeType":"VariableDeclaration","src":"4553:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4562:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52752,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4553:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52753,"nodeType":"ArrayTypeName","src":"4553:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52757,"nodeType":"VariableDeclaration","src":"4597:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4606:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52755,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4597:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52756,"nodeType":"ArrayTypeName","src":"4597:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52760,"nodeType":"VariableDeclaration","src":"4641:40:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4650:31:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52758,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4641:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52759,"nodeType":"ArrayTypeName","src":"4641:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52763,"nodeType":"VariableDeclaration","src":"4687:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4696:30:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52761,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4687:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52762,"nodeType":"ArrayTypeName","src":"4687:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52766,"nodeType":"VariableDeclaration","src":"4733:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4742:18:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52764,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4733:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52765,"nodeType":"ArrayTypeName","src":"4733:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52769,"nodeType":"VariableDeclaration","src":"4766:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4775:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52767,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52768,"nodeType":"ArrayTypeName","src":"4766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52772,"nodeType":"VariableDeclaration","src":"4798:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"4807:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52770,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4798:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52771,"nodeType":"ArrayTypeName","src":"4798:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52775,"nodeType":"VariableDeclaration","src":"4834:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"4843:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52773,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4834:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52774,"nodeType":"ArrayTypeName","src":"4834:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52778,"nodeType":"VariableDeclaration","src":"4866:25:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"4875:16:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52776,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4866:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52777,"nodeType":"ArrayTypeName","src":"4866:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52781,"nodeType":"VariableDeclaration","src":"4898:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"4913:14:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52780,"nodeType":"UserDefinedTypeName","pathNode":{"id":52779,"name":"GatewayDiamond","nameLocations":["4898:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"4898:14:88"},"referencedDeclaration":36170,"src":"4898:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52784,"nodeType":"VariableDeclaration","src":"4933:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"4953:9:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52783,"nodeType":"UserDefinedTypeName","pathNode":{"id":52782,"name":"GatewayManagerFacet","nameLocations":["4933:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"4933:19:88"},"referencedDeclaration":38870,"src":"4933:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52787,"nodeType":"VariableDeclaration","src":"4968:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"4987:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52786,"nodeType":"UserDefinedTypeName","pathNode":{"id":52785,"name":"GatewayGetterFacet","nameLocations":["4968:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"4968:18:88"},"referencedDeclaration":38317,"src":"4968:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52790,"nodeType":"VariableDeclaration","src":"5001:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5020:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52789,"nodeType":"UserDefinedTypeName","pathNode":{"id":52788,"name":"CheckpointingFacet","nameLocations":["5001:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5001:18:88"},"referencedDeclaration":39870,"src":"5001:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52793,"nodeType":"VariableDeclaration","src":"5046:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5065:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52792,"nodeType":"UserDefinedTypeName","pathNode":{"id":52791,"name":"XnetMessagingFacet","nameLocations":["5046:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5046:18:88"},"referencedDeclaration":40144,"src":"5046:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52796,"nodeType":"VariableDeclaration","src":"5091:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5112:22:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52795,"nodeType":"UserDefinedTypeName","pathNode":{"id":52794,"name":"TopDownFinalityFacet","nameLocations":["5091:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5091:20:88"},"referencedDeclaration":40071,"src":"5091:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52799,"nodeType":"VariableDeclaration","src":"5140:41:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5160:21:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52798,"nodeType":"UserDefinedTypeName","pathNode":{"id":52797,"name":"BottomUpRouterFacet","nameLocations":["5140:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5140:19:88"},"referencedDeclaration":39601,"src":"5140:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52802,"nodeType":"VariableDeclaration","src":"5187:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5209:11:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52801,"nodeType":"UserDefinedTypeName","pathNode":{"id":52800,"name":"GatewayMessengerFacet","nameLocations":["5187:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5187:21:88"},"referencedDeclaration":39235,"src":"5187:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52805,"nodeType":"VariableDeclaration","src":"5226:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5242:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52804,"nodeType":"UserDefinedTypeName","pathNode":{"id":52803,"name":"DiamondCutFacet","nameLocations":["5226:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5226:15:88"},"referencedDeclaration":36918,"src":"5226:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52808,"nodeType":"VariableDeclaration","src":"5256:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5274:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52807,"nodeType":"UserDefinedTypeName","pathNode":{"id":52806,"name":"DiamondLoupeFacet","nameLocations":["5256:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5256:17:88"},"referencedDeclaration":37355,"src":"5256:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52875,"nodeType":"FunctionDefinition","src":"5289:835:88","nodes":[],"body":{"id":52874,"nodeType":"Block","src":"5303:821:88","nodes":[],"statements":[{"expression":{"id":52816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52811,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"5313:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5378:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":52812,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5345:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5361:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5345:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5345:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5313:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52817,"nodeType":"ExpressionStatement","src":"5313:86:88"},{"expression":{"id":52823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52818,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"5409:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5474:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":52819,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5441:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5457:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5441:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5441:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5409:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52824,"nodeType":"ExpressionStatement","src":"5409:86:88"},{"expression":{"id":52830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52825,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"5505:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5572:22:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":52826,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5539:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5555:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5539:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5539:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5505:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52831,"nodeType":"ExpressionStatement","src":"5505:90:88"},{"expression":{"id":52837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52832,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"5605:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5671:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":52833,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5638:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5654:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5638:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5638:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5605:88:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52838,"nodeType":"ExpressionStatement","src":"5605:88:88"},{"expression":{"id":52844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52839,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"5704:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5757:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":52840,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5724:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5740:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5724:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5724:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5704:74:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52845,"nodeType":"ExpressionStatement","src":"5704:74:88"},{"expression":{"id":52851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52846,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"5788:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5842:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":52847,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5809:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5825:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5809:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5809:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5788:76:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52852,"nodeType":"ExpressionStatement","src":"5788:76:88"},{"expression":{"id":52858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52853,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"5874:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5930:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":52854,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5897:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5913:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5897:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5897:57:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5874:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52859,"nodeType":"ExpressionStatement","src":"5874:80:88"},{"expression":{"id":52865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52860,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"5964:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6017:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52861,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5984:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6000:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5984:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5984:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5964:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52866,"nodeType":"ExpressionStatement","src":"5964:71:88"},{"expression":{"id":52872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52867,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"6045:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6097:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52868,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"6064:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6080:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"6064:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6064:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6045:72:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52873,"nodeType":"ExpressionStatement","src":"6045:72:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52809,"nodeType":"ParameterList","parameters":[],"src":"5300:2:88"},"returnParameters":{"id":52810,"nodeType":"ParameterList","parameters":[],"src":"5303:0:88"},"scope":52912,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52911,"nodeType":"FunctionDefinition","src":"6130:606:88","nodes":[],"body":{"id":52910,"nodeType":"Block","src":"6234:502:88","nodes":[],"statements":[{"assignments":[52885],"declarations":[{"constant":false,"id":52885,"mutability":"mutable","name":"params","nameLocation":"6284:6:88","nodeType":"VariableDeclaration","scope":52910,"src":"6244:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52884,"nodeType":"UserDefinedTypeName","pathNode":{"id":52883,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6244:14:88","6259:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6244:32:88"},"referencedDeclaration":35883,"src":"6244:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52907,"initialValue":{"arguments":[{"arguments":[{"id":52889,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"6369:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6407:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6393:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52890,"name":"address","nodeType":"ElementaryTypeName","src":"6397:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52891,"nodeType":"ArrayTypeName","src":"6397:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6393:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52888,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"6353:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6363:4:88","6386:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"6353:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52896,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"6446:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52897,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"6493:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52898,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"6548:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":52903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6624:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6608:15:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":52900,"nodeType":"UserDefinedTypeName","pathNode":{"id":52899,"name":"Validator","nameLocations":["6612:9:88"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"6612:9:88"},"referencedDeclaration":50211,"src":"6612:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":52901,"nodeType":"ArrayTypeName","src":"6612:11:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":52904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6608:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":52905,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"6663:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":52886,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"6293:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":52887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6308:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"6293:32:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":52906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6340:11:88","6425:19:88","6485:6:88","6528:18:88","6589:17:88","6640:21:88"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"6293:412:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6244:461:88"},{"expression":{"id":52908,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52885,"src":"6723:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":52880,"id":52909,"nodeType":"Return","src":"6716:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"6139:20:88","parameters":{"id":52876,"nodeType":"ParameterList","parameters":[],"src":"6159:2:88"},"returnParameters":{"id":52880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52911,"src":"6193:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52878,"nodeType":"UserDefinedTypeName","pathNode":{"id":52877,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6193:14:88","6208:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6193:32:88"},"referencedDeclaration":35883,"src":"6193:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6192:41:88"},"scope":52912,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52748,"name":"Test","nameLocations":["4530:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4530:4:88"},"id":52749,"nodeType":"InheritanceSpecifier","src":"4530:4:88"},{"baseName":{"id":52750,"name":"TestParams","nameLocations":["4536:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"4536:10:88"},"id":52751,"nodeType":"InheritanceSpecifier","src":"4536:10:88"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52912,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4510:16:88","scope":55376,"usedErrors":[]},{"id":53037,"nodeType":"ContractDefinition","src":"6740:1920:88","nodes":[{"id":52919,"nodeType":"VariableDeclaration","src":"6791:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"6800:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52917,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6791:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52918,"nodeType":"ArrayTypeName","src":"6791:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52922,"nodeType":"VariableDeclaration","src":"6823:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"6832:18:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52920,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6823:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52921,"nodeType":"ArrayTypeName","src":"6823:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52925,"nodeType":"VariableDeclaration","src":"6856:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"6865:24:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52923,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6856:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52924,"nodeType":"ArrayTypeName","src":"6856:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52928,"nodeType":"VariableDeclaration","src":"6895:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"6904:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52926,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6895:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52927,"nodeType":"ArrayTypeName","src":"6895:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52931,"nodeType":"VariableDeclaration","src":"6927:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"6936:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52929,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6927:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52930,"nodeType":"ArrayTypeName","src":"6927:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52934,"nodeType":"VariableDeclaration","src":"6960:28:88","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6979:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52933,"nodeType":"UserDefinedTypeName","pathNode":{"id":52932,"name":"SubnetActorDiamond","nameLocations":["6960:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"6960:18:88"},"referencedDeclaration":36615,"src":"6960:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52937,"nodeType":"VariableDeclaration","src":"6994:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"7018:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52936,"nodeType":"UserDefinedTypeName","pathNode":{"id":52935,"name":"SubnetActorManagerFacet","nameLocations":["6994:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"6994:23:88"},"referencedDeclaration":52151,"src":"6994:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52940,"nodeType":"VariableDeclaration","src":"7033:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"saMockedManager","nameLocation":"7061:15:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":52939,"nodeType":"UserDefinedTypeName","pathNode":{"id":52938,"name":"SubnetActorManagerFacetMock","nameLocations":["7033:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"7033:27:88"},"referencedDeclaration":57957,"src":"7033:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"},{"id":52943,"nodeType":"VariableDeclaration","src":"7082:31:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"7105:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52942,"nodeType":"UserDefinedTypeName","pathNode":{"id":52941,"name":"SubnetActorGetterFacet","nameLocations":["7082:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"7082:22:88"},"referencedDeclaration":50887,"src":"7082:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52946,"nodeType":"VariableDeclaration","src":"7119:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"7135:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52945,"nodeType":"UserDefinedTypeName","pathNode":{"id":52944,"name":"DiamondCutFacet","nameLocations":["7119:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"7119:15:88"},"referencedDeclaration":36918,"src":"7119:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52949,"nodeType":"VariableDeclaration","src":"7149:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"7167:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52948,"nodeType":"UserDefinedTypeName","pathNode":{"id":52947,"name":"DiamondLoupeFacet","nameLocations":["7149:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"7149:17:88"},"referencedDeclaration":37355,"src":"7149:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52988,"nodeType":"FunctionDefinition","src":"7182:463:88","nodes":[],"body":{"id":52987,"nodeType":"Block","src":"7196:449:88","nodes":[],"statements":[{"expression":{"id":52957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52952,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"7206:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7259:24:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":52953,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7226:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7242:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7226:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7226:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7206:78:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52958,"nodeType":"ExpressionStatement","src":"7206:78:88"},{"expression":{"id":52964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52959,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"7294:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7348:25:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":52960,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7315:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7331:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7315:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7315:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7294:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52965,"nodeType":"ExpressionStatement","src":"7294:80:88"},{"expression":{"id":52971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52966,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"7384:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":52969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7444:29:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":52967,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7411:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7427:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7411:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:63:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7384:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52972,"nodeType":"ExpressionStatement","src":"7384:90:88"},{"expression":{"id":52978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52973,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"7484:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7537:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52974,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7504:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7520:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7504:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7504:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7484:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52979,"nodeType":"ExpressionStatement","src":"7484:71:88"},{"expression":{"id":52985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52980,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"7565:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7618:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52981,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7585:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7601:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7585:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7565:73:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52986,"nodeType":"ExpressionStatement","src":"7565:73:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52950,"nodeType":"ParameterList","parameters":[],"src":"7193:2:88"},"returnParameters":{"id":52951,"nodeType":"ParameterList","parameters":[],"src":"7196:0:88"},"scope":53037,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53036,"nodeType":"FunctionDefinition","src":"7651:1007:88","nodes":[],"body":{"id":53035,"nodeType":"Block","src":"7798:860:88","nodes":[],"statements":[{"assignments":[52998],"declarations":[{"constant":false,"id":52998,"mutability":"mutable","name":"native","nameLocation":"7828:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7808:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":52997,"nodeType":"UserDefinedTypeName","pathNode":{"id":52996,"name":"SupplySource","nameLocations":["7808:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"7808:12:88"},"referencedDeclaration":50226,"src":"7808:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53002,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52999,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"7837:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7856:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"7837:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7837:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7808:56:88"},{"assignments":[53007],"declarations":[{"constant":false,"id":53007,"mutability":"mutable","name":"params","nameLocation":"7918:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7874:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53006,"nodeType":"UserDefinedTypeName","pathNode":{"id":53005,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7874:18:88","7893:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7874:36:88"},"referencedDeclaration":36253,"src":"7874:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53032,"initialValue":{"arguments":[{"arguments":[{"id":53011,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"8004:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8042:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8028:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53012,"name":"address","nodeType":"ElementaryTypeName","src":"8032:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53013,"nodeType":"ArrayTypeName","src":"8032:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8028:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53010,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"7988:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7998:4:88","8021:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"7988:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53018,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52990,"src":"8076:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53019,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8103:13:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8117:10:88","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8103:24:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53021,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"8166:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53022,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52611,"src":"8220:22:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53023,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"8277:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53024,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"8336:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53025,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"8400:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53026,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52661,"src":"8457:19:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53027,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"8506:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53028,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"8557:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8572:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"8557:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53030,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52998,"src":"8610:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53008,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"7927:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7946:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"7927:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7978:8:88","8060:14:88","8092:9:88","8141:23:88","8205:13:88","8256:19:88","8316:18:88","8377:21:88","8445:10:88","8490:14:88","8541:14:88","8596:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"7927:700:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7874:753:88"},{"expression":{"id":53033,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53007,"src":"8645:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":52995,"id":53034,"nodeType":"Return","src":"8638:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"7660:35:88","parameters":{"id":52991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52990,"mutability":"mutable","name":"gw","nameLocation":"7713:2:88","nodeType":"VariableDeclaration","scope":53036,"src":"7705:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52989,"name":"address","nodeType":"ElementaryTypeName","src":"7705:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7695:26:88"},"returnParameters":{"id":52995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53036,"src":"7753:43:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52993,"nodeType":"UserDefinedTypeName","pathNode":{"id":52992,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7753:18:88","7772:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7753:36:88"},"referencedDeclaration":36253,"src":"7753:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"7752:45:88"},"scope":53037,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52913,"name":"Test","nameLocations":["6768:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"6768:4:88"},"id":52914,"nodeType":"InheritanceSpecifier","src":"6768:4:88"},{"baseName":{"id":52915,"name":"TestParams","nameLocations":["6774:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"6774:10:88"},"id":52916,"nodeType":"InheritanceSpecifier","src":"6774:10:88"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53037,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6749:15:88","scope":55376,"usedErrors":[]},{"id":55375,"nodeType":"ContractDefinition","src":"8662:23266:88","nodes":[{"id":53051,"nodeType":"UsingForDirective","src":"8766:34:88","nodes":[],"global":false,"libraryName":{"id":53048,"name":"SubnetIDHelper","nameLocations":["8772:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"8772:14:88"},"typeName":{"id":53050,"nodeType":"UserDefinedTypeName","pathNode":{"id":53049,"name":"SubnetID","nameLocations":["8791:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"8791:8:88"},"referencedDeclaration":50077,"src":"8791:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":53055,"nodeType":"UsingForDirective","src":"8805:42:88","nodes":[],"global":false,"libraryName":{"id":53052,"name":"SupplySourceHelper","nameLocations":["8811:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"8811:18:88"},"typeName":{"id":53054,"nodeType":"UserDefinedTypeName","pathNode":{"id":53053,"name":"SupplySource","nameLocations":["8834:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"8834:12:88"},"referencedDeclaration":50226,"src":"8834:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":53059,"nodeType":"UsingForDirective","src":"8852:34:88","nodes":[],"global":false,"libraryName":{"id":53056,"name":"CrossMsgHelper","nameLocations":["8858:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"8858:14:88"},"typeName":{"id":53058,"nodeType":"UserDefinedTypeName","pathNode":{"id":53057,"name":"CrossMsg","nameLocations":["8877:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"8877:8:88"},"referencedDeclaration":49974,"src":"8877:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53063,"nodeType":"UsingForDirective","src":"8891:40:88","nodes":[],"global":false,"libraryName":{"id":53060,"name":"StorableMsgHelper","nameLocations":["8897:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"8897:17:88"},"typeName":{"id":53062,"nodeType":"UserDefinedTypeName","pathNode":{"id":53061,"name":"StorableMsg","nameLocations":["8919:11:88"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"8919:11:88"},"referencedDeclaration":49991,"src":"8919:11:88","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53067,"nodeType":"UsingForDirective","src":"8936:38:88","nodes":[],"global":false,"libraryName":{"id":53064,"name":"FvmAddressHelper","nameLocations":["8942:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":40962,"src":"8942:16:88"},"typeName":{"id":53066,"nodeType":"UserDefinedTypeName","pathNode":{"id":53065,"name":"FvmAddress","nameLocations":["8963:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"8963:10:88"},"referencedDeclaration":49998,"src":"8963:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53071,"nodeType":"EventDefinition","src":"8980:67:88","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"8986:21:88","parameters":{"id":53070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53069,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9024:21:88","nodeType":"VariableDeclaration","scope":53071,"src":"9008:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53068,"name":"address","nodeType":"ElementaryTypeName","src":"9008:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9007:39:88"}},{"id":53075,"nodeType":"FunctionDefinition","src":"9053:16:88","nodes":[],"body":{"id":53074,"nodeType":"Block","src":"9067:2:88","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53072,"nodeType":"ParameterList","parameters":[],"src":"9064:2:88"},"returnParameters":{"id":53073,"nodeType":"ParameterList","parameters":[],"src":"9067:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53250,"nodeType":"FunctionDefinition","src":"9075:1529:88","nodes":[],"body":{"id":53249,"nodeType":"Block","src":"9107:1497:88","nodes":[],"statements":[{"assignments":[53082],"declarations":[{"constant":false,"id":53082,"mutability":"mutable","name":"path","nameLocation":"9134:4:88","nodeType":"VariableDeclaration","scope":53249,"src":"9117:21:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53080,"name":"address","nodeType":"ElementaryTypeName","src":"9117:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53081,"nodeType":"ArrayTypeName","src":"9117:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53088,"initialValue":{"arguments":[{"hexValue":"31","id":53086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9155:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9141:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53083,"name":"address","nodeType":"ElementaryTypeName","src":"9145:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53084,"nodeType":"ArrayTypeName","src":"9145:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9141:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9117:40:88"},{"expression":{"id":53093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53089,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53082,"src":"9167:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53091,"indexExpression":{"hexValue":"30","id":53090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9172:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9167:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53092,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"9177:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9167:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53094,"nodeType":"ExpressionStatement","src":"9167:25:88"},{"assignments":[53099],"declarations":[{"constant":false,"id":53099,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9285:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"9245:59:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53098,"nodeType":"UserDefinedTypeName","pathNode":{"id":53097,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9245:14:88","9260:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9245:32:88"},"referencedDeclaration":35883,"src":"9245:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53102,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53100,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52911,"src":"9307:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9307:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9245:84:88"},{"expression":{"id":53107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53103,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9339:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53105,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53099,"src":"9377:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53104,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53509,"src":"9356:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":53106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:41:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"9339:58:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53108,"nodeType":"ExpressionStatement","src":"9339:58:88"},{"expression":{"id":53116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53109,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"9408:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53113,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9446:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9438:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53111,"name":"address","nodeType":"ElementaryTypeName","src":"9438:7:88","typeDescriptions":{}}},"id":53114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9438:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53110,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"9419:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9419:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"9408:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53117,"nodeType":"ExpressionStatement","src":"9408:54:88"},{"expression":{"id":53125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53118,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"9472:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53122,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9512:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9504:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53120,"name":"address","nodeType":"ElementaryTypeName","src":"9504:7:88","typeDescriptions":{}}},"id":53123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9504:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53119,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"9484:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9484:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"9472:56:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53126,"nodeType":"ExpressionStatement","src":"9472:56:88"},{"expression":{"id":53134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53127,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"9538:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53131,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9588:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9580:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53129,"name":"address","nodeType":"ElementaryTypeName","src":"9580:7:88","typeDescriptions":{}}},"id":53132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9580:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53128,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"9561:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9561:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"9538:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53135,"nodeType":"ExpressionStatement","src":"9538:66:88"},{"expression":{"id":53143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53136,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9614:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53140,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9664:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9656:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53138,"name":"address","nodeType":"ElementaryTypeName","src":"9656:7:88","typeDescriptions":{}}},"id":53141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9656:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53137,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"9637:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9637:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"9614:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53144,"nodeType":"ExpressionStatement","src":"9614:66:88"},{"expression":{"id":53152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53145,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"9690:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53149,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9744:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9736:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53147,"name":"address","nodeType":"ElementaryTypeName","src":"9736:7:88","typeDescriptions":{}}},"id":53150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9736:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53146,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"9715:20:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"9690:70:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53153,"nodeType":"ExpressionStatement","src":"9690:70:88"},{"expression":{"id":53161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53154,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"9770:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53158,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9822:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9814:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53156,"name":"address","nodeType":"ElementaryTypeName","src":"9814:7:88","typeDescriptions":{}}},"id":53159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9814:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53155,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"9794:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9794:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"9770:68:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53162,"nodeType":"ExpressionStatement","src":"9770:68:88"},{"expression":{"id":53170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53163,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52802,"src":"9848:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53167,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9892:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9884:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53165,"name":"address","nodeType":"ElementaryTypeName","src":"9884:7:88","typeDescriptions":{}}},"id":53168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9884:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53164,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"9862:21:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9862:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"9848:60:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53171,"nodeType":"ExpressionStatement","src":"9848:60:88"},{"expression":{"id":53179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53172,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"9918:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53176,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9955:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9947:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53174,"name":"address","nodeType":"ElementaryTypeName","src":"9947:7:88","typeDescriptions":{}}},"id":53177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9947:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53173,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"9929:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9929:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"9918:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53180,"nodeType":"ExpressionStatement","src":"9918:53:88"},{"expression":{"id":53188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53181,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"9981:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53185,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10016:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53183,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:88","typeDescriptions":{}}},"id":53186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53182,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"9992:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9992:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"9981:51:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53189,"nodeType":"ExpressionStatement","src":"9981:51:88"},{"assignments":[53194],"declarations":[{"constant":false,"id":53194,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10141:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"10097:63:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53193,"nodeType":"UserDefinedTypeName","pathNode":{"id":53192,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10097:18:88","10116:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10097:36:88"},"referencedDeclaration":36253,"src":"10097:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53201,"initialValue":{"arguments":[{"arguments":[{"id":53198,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10220:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10212:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53196,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:88","typeDescriptions":{}}},"id":53199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10212:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53195,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"10163:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":53200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10163:82:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10097:148:88"},{"expression":{"id":53206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53202,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10256:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53204,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53194,"src":"10286:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53203,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53710,"src":"10268:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10268:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10256:50:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53207,"nodeType":"ExpressionStatement","src":"10256:50:88"},{"expression":{"id":53215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53208,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"10316:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53212,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10360:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10352:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53210,"name":"address","nodeType":"ElementaryTypeName","src":"10352:7:88","typeDescriptions":{}}},"id":53213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10352:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53209,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"10328:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10328:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"10316:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53216,"nodeType":"ExpressionStatement","src":"10316:55:88"},{"expression":{"id":53224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53217,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"10381:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53221,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10423:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10415:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53219,"name":"address","nodeType":"ElementaryTypeName","src":"10415:7:88","typeDescriptions":{}}},"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10415:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53218,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"10392:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10392:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"10381:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53225,"nodeType":"ExpressionStatement","src":"10381:53:88"},{"expression":{"id":53233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53226,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"10444:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53230,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10481:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10473:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53228,"name":"address","nodeType":"ElementaryTypeName","src":"10473:7:88","typeDescriptions":{}}},"id":53231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10473:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53227,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10455:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10455:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10444:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53234,"nodeType":"ExpressionStatement","src":"10444:48:88"},{"expression":{"id":53242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53235,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"10502:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53239,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10537:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10529:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53237,"name":"address","nodeType":"ElementaryTypeName","src":"10529:7:88","typeDescriptions":{}}},"id":53240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10529:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53236,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10513:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10513:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10502:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53243,"nodeType":"ExpressionStatement","src":"10502:46:88"},{"expression":{"arguments":[{"id":53245,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52682,"src":"10572:19:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10593:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53244,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"10559:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10559:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53248,"nodeType":"ExpressionStatement","src":"10559:38:88"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9084:5:88","parameters":{"id":53076,"nodeType":"ParameterList","parameters":[],"src":"9089:2:88"},"returnParameters":{"id":53077,"nodeType":"ParameterList","parameters":[],"src":"9107:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53509,"nodeType":"FunctionDefinition","src":"10610:3185:88","nodes":[],"body":{"id":53508,"nodeType":"Block","src":"10720:3075:88","nodes":[],"statements":[{"assignments":[53261],"declarations":[{"constant":false,"id":53261,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"10749:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10730:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53260,"nodeType":"UserDefinedTypeName","pathNode":{"id":53259,"name":"CheckpointingFacet","nameLocations":["10730:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10730:18:88"},"referencedDeclaration":39870,"src":"10730:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10770:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53263,"nodeType":"UserDefinedTypeName","pathNode":{"id":53262,"name":"CheckpointingFacet","nameLocations":["10774:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10774:18:88"},"referencedDeclaration":39870,"src":"10774:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10770:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10730:64:88"},{"assignments":[53269],"declarations":[{"constant":false,"id":53269,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"10823:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10804:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53268,"nodeType":"UserDefinedTypeName","pathNode":{"id":53267,"name":"XnetMessagingFacet","nameLocations":["10804:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10804:18:88"},"referencedDeclaration":40144,"src":"10804:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53274,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10844:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53271,"nodeType":"UserDefinedTypeName","pathNode":{"id":53270,"name":"XnetMessagingFacet","nameLocations":["10848:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10848:18:88"},"referencedDeclaration":40144,"src":"10848:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10844:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10804:64:88"},{"assignments":[53277],"declarations":[{"constant":false,"id":53277,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"10899:20:88","nodeType":"VariableDeclaration","scope":53508,"src":"10878:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53276,"nodeType":"UserDefinedTypeName","pathNode":{"id":53275,"name":"TopDownFinalityFacet","nameLocations":["10878:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10878:20:88"},"referencedDeclaration":40071,"src":"10878:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53282,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10922:24:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53279,"nodeType":"UserDefinedTypeName","pathNode":{"id":53278,"name":"TopDownFinalityFacet","nameLocations":["10926:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10926:20:88"},"referencedDeclaration":40071,"src":"10926:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10922:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"10878:70:88"},{"assignments":[53285],"declarations":[{"constant":false,"id":53285,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"10978:19:88","nodeType":"VariableDeclaration","scope":53508,"src":"10958:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53284,"nodeType":"UserDefinedTypeName","pathNode":{"id":53283,"name":"BottomUpRouterFacet","nameLocations":["10958:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"10958:19:88"},"referencedDeclaration":39601,"src":"10958:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53290,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11000:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53287,"nodeType":"UserDefinedTypeName","pathNode":{"id":53286,"name":"BottomUpRouterFacet","nameLocations":["11004:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11004:19:88"},"referencedDeclaration":39601,"src":"11004:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11000:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"10958:67:88"},{"assignments":[53293],"declarations":[{"constant":false,"id":53293,"mutability":"mutable","name":"manager","nameLocation":"11056:7:88","nodeType":"VariableDeclaration","scope":53508,"src":"11036:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53292,"nodeType":"UserDefinedTypeName","pathNode":{"id":53291,"name":"GatewayManagerFacet","nameLocations":["11036:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11036:19:88"},"referencedDeclaration":38870,"src":"11036:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53298,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11066:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53295,"nodeType":"UserDefinedTypeName","pathNode":{"id":53294,"name":"GatewayManagerFacet","nameLocations":["11070:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11070:19:88"},"referencedDeclaration":38870,"src":"11070:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11066:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11036:55:88"},{"assignments":[53301],"declarations":[{"constant":false,"id":53301,"mutability":"mutable","name":"getter","nameLocation":"11120:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11101:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53300,"nodeType":"UserDefinedTypeName","pathNode":{"id":53299,"name":"GatewayGetterFacet","nameLocations":["11101:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11101:18:88"},"referencedDeclaration":38317,"src":"11101:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53306,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11129:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53303,"nodeType":"UserDefinedTypeName","pathNode":{"id":53302,"name":"GatewayGetterFacet","nameLocations":["11133:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11133:18:88"},"referencedDeclaration":38317,"src":"11133:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11101:52:88"},{"assignments":[53309],"declarations":[{"constant":false,"id":53309,"mutability":"mutable","name":"messenger","nameLocation":"11185:9:88","nodeType":"VariableDeclaration","scope":53508,"src":"11163:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53308,"nodeType":"UserDefinedTypeName","pathNode":{"id":53307,"name":"GatewayMessengerFacet","nameLocations":["11163:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11163:21:88"},"referencedDeclaration":39235,"src":"11163:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53314,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11197:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53311,"nodeType":"UserDefinedTypeName","pathNode":{"id":53310,"name":"GatewayMessengerFacet","nameLocations":["11201:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11201:21:88"},"referencedDeclaration":39235,"src":"11201:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11197:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11163:61:88"},{"assignments":[53317],"declarations":[{"constant":false,"id":53317,"mutability":"mutable","name":"cutter","nameLocation":"11250:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11234:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53316,"nodeType":"UserDefinedTypeName","pathNode":{"id":53315,"name":"DiamondCutFacet","nameLocations":["11234:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11234:15:88"},"referencedDeclaration":36918,"src":"11234:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53322,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11259:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53319,"nodeType":"UserDefinedTypeName","pathNode":{"id":53318,"name":"DiamondCutFacet","nameLocations":["11263:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11263:15:88"},"referencedDeclaration":36918,"src":"11263:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11259:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"11234:46:88"},{"assignments":[53325],"declarations":[{"constant":false,"id":53325,"mutability":"mutable","name":"louper","nameLocation":"11308:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11290:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53324,"nodeType":"UserDefinedTypeName","pathNode":{"id":53323,"name":"DiamondLoupeFacet","nameLocations":["11290:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11290:17:88"},"referencedDeclaration":37355,"src":"11290:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53330,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11317:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53327,"nodeType":"UserDefinedTypeName","pathNode":{"id":53326,"name":"DiamondLoupeFacet","nameLocations":["11321:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11321:17:88"},"referencedDeclaration":37355,"src":"11321:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11317:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"11290:50:88"},{"assignments":[53336],"declarations":[{"constant":false,"id":53336,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"11378:12:88","nodeType":"VariableDeclaration","scope":53508,"src":"11351:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53334,"nodeType":"UserDefinedTypeName","pathNode":{"id":53333,"name":"IDiamond.FacetCut","nameLocations":["11351:8:88","11360:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11351:17:88"},"referencedDeclaration":40159,"src":"11351:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53335,"nodeType":"ArrayTypeName","src":"11351:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53343,"initialValue":{"arguments":[{"hexValue":"39","id":53341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11417:1:88","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":53340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11393:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53338,"nodeType":"UserDefinedTypeName","pathNode":{"id":53337,"name":"IDiamond.FacetCut","nameLocations":["11397:8:88","11406:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11397:17:88"},"referencedDeclaration":40159,"src":"11397:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53339,"nodeType":"ArrayTypeName","src":"11397:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11393:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11351:68:88"},{"expression":{"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53344,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11430:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53346,"indexExpression":{"hexValue":"30","id":53345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11443:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11430:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53351,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53261,"src":"11520:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11512:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53349,"name":"address","nodeType":"ElementaryTypeName","src":"11512:7:88","typeDescriptions":{}}},"id":53352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11512:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53353,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11565:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11574:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11565:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11589:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11565:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53356,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"11629:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53347,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11462:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11471:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11462:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11498:12:88","11557:6:88","11610:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11462:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53358,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11448:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11430:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53360,"nodeType":"ExpressionStatement","src":"11430:253:88"},{"expression":{"id":53376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53361,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11694:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53363,"indexExpression":{"hexValue":"36","id":53362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11707:1:88","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11694:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53368,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53269,"src":"11784:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11776:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53366,"name":"address","nodeType":"ElementaryTypeName","src":"11776:7:88","typeDescriptions":{}}},"id":53369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11776:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53370,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11829:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11838:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11829:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11853:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11829:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53373,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"11893:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53364,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11726:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11735:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11726:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11762:12:88","11821:6:88","11874:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11726:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53375,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11712:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11694:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53377,"nodeType":"ExpressionStatement","src":"11694:253:88"},{"expression":{"id":53393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53378,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11958:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53380,"indexExpression":{"hexValue":"37","id":53379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11971:1:88","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11958:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53385,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53277,"src":"12048:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12040:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53383,"name":"address","nodeType":"ElementaryTypeName","src":"12040:7:88","typeDescriptions":{}}},"id":53386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12040:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53387,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12095:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12104:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12095:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12119:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12095:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53390,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"12159:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53381,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11990:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11999:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11990:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12026:12:88","12087:6:88","12140:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11990:215:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53392,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11976:239:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11958:257:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53394,"nodeType":"ExpressionStatement","src":"11958:257:88"},{"expression":{"id":53410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53395,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12226:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53397,"indexExpression":{"hexValue":"38","id":53396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:88","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12226:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53402,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53285,"src":"12316:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12308:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53400,"name":"address","nodeType":"ElementaryTypeName","src":"12308:7:88","typeDescriptions":{}}},"id":53403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12308:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53404,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12362:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12371:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12362:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12386:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12362:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53407,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"12426:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53398,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12258:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12267:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12258:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12294:12:88","12354:6:88","12407:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12258:213:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53409,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12244:237:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12226:255:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53411,"nodeType":"ExpressionStatement","src":"12226:255:88"},{"expression":{"id":53427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53412,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12492:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53414,"indexExpression":{"hexValue":"31","id":53413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12505:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12492:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53419,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53293,"src":"12582:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12574:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53417,"name":"address","nodeType":"ElementaryTypeName","src":"12574:7:88","typeDescriptions":{}}},"id":53420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12574:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53421,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12616:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12625:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12616:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12640:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12616:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53424,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"12680:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53415,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12524:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12533:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12524:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12560:12:88","12608:6:88","12661:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12524:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12510:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12492:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53428,"nodeType":"ExpressionStatement","src":"12492:231:88"},{"expression":{"id":53444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53429,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12734:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53431,"indexExpression":{"hexValue":"32","id":53430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12747:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12734:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53436,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53301,"src":"12824:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12816:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53434,"name":"address","nodeType":"ElementaryTypeName","src":"12816:7:88","typeDescriptions":{}}},"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12816:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53438,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12857:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12866:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12857:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12881:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12857:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53441,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"12921:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53432,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12766:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12775:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12766:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12802:12:88","12849:6:88","12902:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12766:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53443,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12752:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12734:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53445,"nodeType":"ExpressionStatement","src":"12734:229:88"},{"expression":{"id":53461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53446,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12974:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53448,"indexExpression":{"hexValue":"33","id":53447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12987:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12974:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53453,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53309,"src":"13064:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13056:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53451,"name":"address","nodeType":"ElementaryTypeName","src":"13056:7:88","typeDescriptions":{}}},"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13056:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53455,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13100:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13109:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13100:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13124:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13100:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53458,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"13164:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53449,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13006:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13015:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13006:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13042:12:88","13092:6:88","13145:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13006:193:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12992:217:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12974:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53462,"nodeType":"ExpressionStatement","src":"12974:235:88"},{"expression":{"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53463,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13220:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53465,"indexExpression":{"hexValue":"34","id":53464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13233:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13220:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53470,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53325,"src":"13310:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13302:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53468,"name":"address","nodeType":"ElementaryTypeName","src":"13302:7:88","typeDescriptions":{}}},"id":53471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13302:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53472,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13343:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13352:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13343:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13367:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13343:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53475,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"13407:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53466,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13252:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13261:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13252:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13288:12:88","13335:6:88","13388:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13252:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13238:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13220:228:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53479,"nodeType":"ExpressionStatement","src":"13220:228:88"},{"expression":{"id":53495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53480,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13459:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53482,"indexExpression":{"hexValue":"35","id":53481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13472:1:88","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13459:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53487,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53317,"src":"13549:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53485,"name":"address","nodeType":"ElementaryTypeName","src":"13541:7:88","typeDescriptions":{}}},"id":53488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13541:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53489,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13582:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13591:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13582:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13606:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13582:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53492,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"13646:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53483,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13491:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13500:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13491:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13527:12:88","13574:6:88","13627:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13491:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13477:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13459:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53496,"nodeType":"ExpressionStatement","src":"13459:229:88"},{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53497,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13699:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53501,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13735:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53502,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53253,"src":"13749:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"13716:18:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":53499,"nodeType":"UserDefinedTypeName","pathNode":{"id":53498,"name":"GatewayDiamond","nameLocations":["13720:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"13720:14:88"},"referencedDeclaration":36170,"src":"13720:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13716:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"13699:57:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53505,"nodeType":"ExpressionStatement","src":"13699:57:88"},{"expression":{"id":53506,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13774:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53258,"id":53507,"nodeType":"Return","src":"13767:21:88"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"10619:20:88","parameters":{"id":53254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53253,"mutability":"mutable","name":"params","nameLocation":"10680:6:88","nodeType":"VariableDeclaration","scope":53509,"src":"10640:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53252,"nodeType":"UserDefinedTypeName","pathNode":{"id":53251,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10640:14:88","10655:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10640:32:88"},"referencedDeclaration":35883,"src":"10640:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"10639:48:88"},"returnParameters":{"id":53258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53509,"src":"10704:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53256,"nodeType":"UserDefinedTypeName","pathNode":{"id":53255,"name":"GatewayDiamond","nameLocations":["10704:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"10704:14:88"},"referencedDeclaration":36170,"src":"10704:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"10703:16:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53575,"nodeType":"FunctionDefinition","src":"13801:854:88","nodes":[],"body":{"id":53574,"nodeType":"Block","src":"14009:646:88","nodes":[],"statements":[{"assignments":[53527],"declarations":[{"constant":false,"id":53527,"mutability":"mutable","name":"diamondCut","nameLocation":"14046:10:88","nodeType":"VariableDeclaration","scope":53574,"src":"14019:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53525,"nodeType":"UserDefinedTypeName","pathNode":{"id":53524,"name":"IDiamond.FacetCut","nameLocations":["14019:8:88","14028:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14019:17:88"},"referencedDeclaration":40159,"src":"14019:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53526,"nodeType":"ArrayTypeName","src":"14019:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53534,"initialValue":{"arguments":[{"hexValue":"32","id":53532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14083:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14059:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53529,"nodeType":"UserDefinedTypeName","pathNode":{"id":53528,"name":"IDiamond.FacetCut","nameLocations":["14063:8:88","14072:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14063:17:88"},"referencedDeclaration":40159,"src":"14063:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53530,"nodeType":"ArrayTypeName","src":"14063:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14059:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14019:66:88"},{"expression":{"id":53547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53535,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14096:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53537,"indexExpression":{"hexValue":"30","id":53536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14096:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53540,"name":"getterFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53514,"src":"14176:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53541,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14214:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14223:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14214:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14238:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14214:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53544,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"14278:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53538,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14126:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14135:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14126:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14162:12:88","14206:6:88","14259:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14126:184:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53546,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14112:208:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14096:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53548,"nodeType":"ExpressionStatement","src":"14096:224:88"},{"expression":{"id":53561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53549,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14331:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53551,"indexExpression":{"hexValue":"31","id":53550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14342:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14331:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53554,"name":"managerFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"14411:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53555,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14450:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14459:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14450:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14474:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14450:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53558,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"14514:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53552,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14361:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14370:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14361:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14397:12:88","14442:6:88","14495:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14361:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53560,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14347:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14331:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53562,"nodeType":"ExpressionStatement","src":"14331:226:88"},{"expression":{"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53563,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14568:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53567,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14603:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53568,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53512,"src":"14615:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14580:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53565,"nodeType":"UserDefinedTypeName","pathNode":{"id":53564,"name":"SubnetActorDiamond","nameLocations":["14584:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14584:18:88"},"referencedDeclaration":36615,"src":"14584:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14580:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"14568:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53571,"nodeType":"ExpressionStatement","src":"14568:54:88"},{"expression":{"id":53572,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14639:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53521,"id":53573,"nodeType":"Return","src":"14632:16:88"}]},"functionSelector":"0d8d4acf","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"13810:35:88","parameters":{"id":53517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53512,"mutability":"mutable","name":"params","nameLocation":"13899:6:88","nodeType":"VariableDeclaration","scope":53575,"src":"13855:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53511,"nodeType":"UserDefinedTypeName","pathNode":{"id":53510,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["13855:18:88","13874:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"13855:36:88"},"referencedDeclaration":36253,"src":"13855:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53514,"mutability":"mutable","name":"getterFaucet","nameLocation":"13923:12:88","nodeType":"VariableDeclaration","scope":53575,"src":"13915:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53513,"name":"address","nodeType":"ElementaryTypeName","src":"13915:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53516,"mutability":"mutable","name":"managerFaucet","nameLocation":"13953:13:88","nodeType":"VariableDeclaration","scope":53575,"src":"13945:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53515,"name":"address","nodeType":"ElementaryTypeName","src":"13945:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13845:127:88"},"returnParameters":{"id":53521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53575,"src":"13989:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53519,"nodeType":"UserDefinedTypeName","pathNode":{"id":53518,"name":"SubnetActorDiamond","nameLocations":["13989:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"13989:18:88"},"referencedDeclaration":36615,"src":"13989:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"13988:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53710,"nodeType":"FunctionDefinition","src":"14661:1518:88","nodes":[],"body":{"id":53709,"nodeType":"Block","src":"14776:1403:88","nodes":[],"statements":[{"assignments":[53586],"declarations":[{"constant":false,"id":53586,"mutability":"mutable","name":"manager","nameLocation":"14810:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"14786:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53585,"nodeType":"UserDefinedTypeName","pathNode":{"id":53584,"name":"SubnetActorManagerFacet","nameLocations":["14786:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14786:23:88"},"referencedDeclaration":52151,"src":"14786:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53591,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14820:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53588,"nodeType":"UserDefinedTypeName","pathNode":{"id":53587,"name":"SubnetActorManagerFacet","nameLocations":["14824:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14824:23:88"},"referencedDeclaration":52151,"src":"14824:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14820:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"14786:63:88"},{"assignments":[53594],"declarations":[{"constant":false,"id":53594,"mutability":"mutable","name":"getter","nameLocation":"14882:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14859:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53593,"nodeType":"UserDefinedTypeName","pathNode":{"id":53592,"name":"SubnetActorGetterFacet","nameLocations":["14859:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14859:22:88"},"referencedDeclaration":50887,"src":"14859:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53599,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14891:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53596,"nodeType":"UserDefinedTypeName","pathNode":{"id":53595,"name":"SubnetActorGetterFacet","nameLocations":["14895:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14895:22:88"},"referencedDeclaration":50887,"src":"14895:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14891:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"14859:60:88"},{"assignments":[53602],"declarations":[{"constant":false,"id":53602,"mutability":"mutable","name":"louper","nameLocation":"14947:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14929:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53601,"nodeType":"UserDefinedTypeName","pathNode":{"id":53600,"name":"DiamondLoupeFacet","nameLocations":["14929:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14929:17:88"},"referencedDeclaration":37355,"src":"14929:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53607,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14956:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53604,"nodeType":"UserDefinedTypeName","pathNode":{"id":53603,"name":"DiamondLoupeFacet","nameLocations":["14960:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14960:17:88"},"referencedDeclaration":37355,"src":"14960:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14956:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"14929:50:88"},{"assignments":[53610],"declarations":[{"constant":false,"id":53610,"mutability":"mutable","name":"cutter","nameLocation":"15005:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14989:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53609,"nodeType":"UserDefinedTypeName","pathNode":{"id":53608,"name":"DiamondCutFacet","nameLocations":["14989:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"14989:15:88"},"referencedDeclaration":36918,"src":"14989:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53615,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"15014:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53612,"nodeType":"UserDefinedTypeName","pathNode":{"id":53611,"name":"DiamondCutFacet","nameLocations":["15018:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"15018:15:88"},"referencedDeclaration":36918,"src":"15018:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15014:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"14989:46:88"},{"assignments":[53621],"declarations":[{"constant":false,"id":53621,"mutability":"mutable","name":"diamondCut","nameLocation":"15073:10:88","nodeType":"VariableDeclaration","scope":53709,"src":"15046:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53619,"nodeType":"UserDefinedTypeName","pathNode":{"id":53618,"name":"IDiamond.FacetCut","nameLocations":["15046:8:88","15055:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15046:17:88"},"referencedDeclaration":40159,"src":"15046:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53620,"nodeType":"ArrayTypeName","src":"15046:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53628,"initialValue":{"arguments":[{"hexValue":"34","id":53626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15110:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15086:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53623,"nodeType":"UserDefinedTypeName","pathNode":{"id":53622,"name":"IDiamond.FacetCut","nameLocations":["15090:8:88","15099:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15090:17:88"},"referencedDeclaration":40159,"src":"15090:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53624,"nodeType":"ArrayTypeName","src":"15090:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15086:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15046:66:88"},{"expression":{"id":53644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53629,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15123:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53631,"indexExpression":{"hexValue":"30","id":53630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15134:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15123:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53636,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53586,"src":"15211:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53634,"name":"address","nodeType":"ElementaryTypeName","src":"15203:7:88","typeDescriptions":{}}},"id":53637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15203:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53638,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15245:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15254:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15245:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15269:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15245:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53641,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"15309:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53632,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15153:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15162:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15153:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15189:12:88","15237:6:88","15290:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15153:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53643,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15139:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15123:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53645,"nodeType":"ExpressionStatement","src":"15123:229:88"},{"expression":{"id":53661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53646,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15363:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53648,"indexExpression":{"hexValue":"31","id":53647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15374:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15363:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53653,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53594,"src":"15451:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15443:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53651,"name":"address","nodeType":"ElementaryTypeName","src":"15443:7:88","typeDescriptions":{}}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15443:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53655,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15484:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15493:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15484:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15508:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15484:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53658,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"15548:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53649,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15393:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15402:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15393:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15429:12:88","15476:6:88","15529:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15393:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53660,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15379:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15363:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53662,"nodeType":"ExpressionStatement","src":"15363:227:88"},{"expression":{"id":53678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53663,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15601:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53665,"indexExpression":{"hexValue":"32","id":53664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15612:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15601:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53670,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53610,"src":"15689:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15681:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53668,"name":"address","nodeType":"ElementaryTypeName","src":"15681:7:88","typeDescriptions":{}}},"id":53671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15681:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53672,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15722:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15722:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15746:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15722:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53675,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"15786:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53666,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15631:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15640:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15631:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15667:12:88","15714:6:88","15767:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15631:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53677,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15617:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15601:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53679,"nodeType":"ExpressionStatement","src":"15601:227:88"},{"expression":{"id":53695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53680,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15839:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53682,"indexExpression":{"hexValue":"33","id":53681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15850:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15839:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53687,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53602,"src":"15927:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15919:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53685,"name":"address","nodeType":"ElementaryTypeName","src":"15919:7:88","typeDescriptions":{}}},"id":53688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15919:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53689,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15960:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15969:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15960:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15984:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15960:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53692,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"16024:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53683,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15869:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15878:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15869:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15905:12:88","15952:6:88","16005:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15869:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53694,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15855:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15839:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53696,"nodeType":"ExpressionStatement","src":"15839:226:88"},{"assignments":[53699],"declarations":[{"constant":false,"id":53699,"mutability":"mutable","name":"diamond","nameLocation":"16095:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"16076:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53698,"nodeType":"UserDefinedTypeName","pathNode":{"id":53697,"name":"SubnetActorDiamond","nameLocations":["16076:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16076:18:88"},"referencedDeclaration":36615,"src":"16076:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53706,"initialValue":{"arguments":[{"id":53703,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"16128:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53704,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53578,"src":"16140:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16105:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53701,"nodeType":"UserDefinedTypeName","pathNode":{"id":53700,"name":"SubnetActorDiamond","nameLocations":["16109:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16109:18:88"},"referencedDeclaration":36615,"src":"16109:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16105:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"16076:71:88"},{"expression":{"id":53707,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53699,"src":"16165:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53583,"id":53708,"nodeType":"Return","src":"16158:14:88"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"14670:17:88","parameters":{"id":53579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53578,"mutability":"mutable","name":"params","nameLocation":"14732:6:88","nodeType":"VariableDeclaration","scope":53710,"src":"14688:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53577,"nodeType":"UserDefinedTypeName","pathNode":{"id":53576,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14688:18:88","14707:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14688:36:88"},"referencedDeclaration":36253,"src":"14688:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"14687:52:88"},"returnParameters":{"id":53583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53710,"src":"14756:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53581,"nodeType":"UserDefinedTypeName","pathNode":{"id":53580,"name":"SubnetActorDiamond","nameLocations":["14756:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14756:18:88"},"referencedDeclaration":36615,"src":"14756:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14755:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53739,"nodeType":"FunctionDefinition","src":"16185:522:88","nodes":[],"body":{"id":53738,"nodeType":"Block","src":"16429:278:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":53727,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53712,"src":"16470:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53728,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53715,"src":"16499:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53729,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53717,"src":"16523:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53730,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53719,"src":"16561:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53731,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53721,"src":"16589:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53732,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53723,"src":"16615:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53733,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"16648:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16663:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"16648:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16687:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53726,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53943,"src":"16439:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$37359_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$50165_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":53736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16439:261:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53737,"nodeType":"ExpressionStatement","src":"16439:261:88"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16194:17:88","parameters":{"id":53724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53712,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16229:15:88","nodeType":"VariableDeclaration","scope":53739,"src":"16221:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53711,"name":"address","nodeType":"ElementaryTypeName","src":"16221:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53715,"mutability":"mutable","name":"_consensus","nameLocation":"16268:10:88","nodeType":"VariableDeclaration","scope":53739,"src":"16254:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53714,"nodeType":"UserDefinedTypeName","pathNode":{"id":53713,"name":"ConsensusType","nameLocations":["16254:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16254:13:88"},"referencedDeclaration":37359,"src":"16254:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53717,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16296:24:88","nodeType":"VariableDeclaration","scope":53739,"src":"16288:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53716,"name":"uint256","nodeType":"ElementaryTypeName","src":"16288:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53719,"mutability":"mutable","name":"_minValidators","nameLocation":"16337:14:88","nodeType":"VariableDeclaration","scope":53739,"src":"16330:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53718,"name":"uint64","nodeType":"ElementaryTypeName","src":"16330:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53721,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16368:12:88","nodeType":"VariableDeclaration","scope":53739,"src":"16361:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53720,"name":"uint64","nodeType":"ElementaryTypeName","src":"16361:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53723,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16396:19:88","nodeType":"VariableDeclaration","scope":53739,"src":"16390:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53722,"name":"uint8","nodeType":"ElementaryTypeName","src":"16390:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16211:210:88"},"returnParameters":{"id":53725,"nodeType":"ParameterList","parameters":[],"src":"16429:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53943,"nodeType":"FunctionDefinition","src":"16713:2630:88","nodes":[],"body":{"id":53942,"nodeType":"Block","src":"17036:2307:88","nodes":[],"statements":[{"assignments":[53762],"declarations":[{"constant":false,"id":53762,"mutability":"mutable","name":"_parentId","nameLocation":"17062:9:88","nodeType":"VariableDeclaration","scope":53942,"src":"17046:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53761,"nodeType":"UserDefinedTypeName","pathNode":{"id":53760,"name":"SubnetID","nameLocations":["17046:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"17046:8:88"},"referencedDeclaration":50077,"src":"17046:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53771,"initialValue":{"arguments":[{"id":53764,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"17083:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17114:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17100:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53765,"name":"address","nodeType":"ElementaryTypeName","src":"17104:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53766,"nodeType":"ArrayTypeName","src":"17104:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17100:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53763,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"17074:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17074:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"17046:71:88"},{"expression":{"id":53777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53772,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17128:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17140:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53774,"nodeType":"UserDefinedTypeName","pathNode":{"id":53773,"name":"SubnetActorManagerFacet","nameLocations":["17144:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"17144:23:88"},"referencedDeclaration":52151,"src":"17144:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17140:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"17128:41:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53778,"nodeType":"ExpressionStatement","src":"17128:41:88"},{"expression":{"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53779,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17179:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17190:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53781,"nodeType":"UserDefinedTypeName","pathNode":{"id":53780,"name":"SubnetActorGetterFacet","nameLocations":["17194:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"17194:22:88"},"referencedDeclaration":50887,"src":"17194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17190:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"17179:39:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53785,"nodeType":"ExpressionStatement","src":"17179:39:88"},{"expression":{"id":53791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53786,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17228:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17239:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53788,"nodeType":"UserDefinedTypeName","pathNode":{"id":53787,"name":"DiamondCutFacet","nameLocations":["17243:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"17243:15:88"},"referencedDeclaration":36918,"src":"17243:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17239:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"17228:32:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53792,"nodeType":"ExpressionStatement","src":"17228:32:88"},{"expression":{"id":53798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53793,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"17270:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17281:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53795,"nodeType":"UserDefinedTypeName","pathNode":{"id":53794,"name":"DiamondLoupeFacet","nameLocations":["17285:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"17285:17:88"},"referencedDeclaration":37355,"src":"17285:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17281:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"17270:34:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53799,"nodeType":"ExpressionStatement","src":"17270:34:88"},{"assignments":[53805],"declarations":[{"constant":false,"id":53805,"mutability":"mutable","name":"diamondCut","nameLocation":"17342:10:88","nodeType":"VariableDeclaration","scope":53942,"src":"17315:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53803,"nodeType":"UserDefinedTypeName","pathNode":{"id":53802,"name":"IDiamond.FacetCut","nameLocations":["17315:8:88","17324:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17315:17:88"},"referencedDeclaration":40159,"src":"17315:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53804,"nodeType":"ArrayTypeName","src":"17315:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53812,"initialValue":{"arguments":[{"hexValue":"34","id":53810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17379:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17355:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53807,"nodeType":"UserDefinedTypeName","pathNode":{"id":53806,"name":"IDiamond.FacetCut","nameLocations":["17359:8:88","17368:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17359:17:88"},"referencedDeclaration":40159,"src":"17359:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53808,"nodeType":"ArrayTypeName","src":"17359:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17355:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17315:66:88"},{"expression":{"id":53828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53813,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17392:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53815,"indexExpression":{"hexValue":"30","id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17403:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17392:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53820,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17480:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17472:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53818,"name":"address","nodeType":"ElementaryTypeName","src":"17472:7:88","typeDescriptions":{}}},"id":53821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17472:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53822,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17516:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17516:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17540:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17516:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53825,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"17580:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53816,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17422:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17431:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17422:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17458:12:88","17508:6:88","17561:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17422:191:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53827,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17408:215:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17392:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53829,"nodeType":"ExpressionStatement","src":"17392:231:88"},{"expression":{"id":53845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53830,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17634:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53832,"indexExpression":{"hexValue":"31","id":53831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17645:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17634:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53837,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17722:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17714:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53835,"name":"address","nodeType":"ElementaryTypeName","src":"17714:7:88","typeDescriptions":{}}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17714:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53839,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17757:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17766:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17757:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17781:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17757:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53842,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"17821:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53833,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17664:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17673:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17664:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17700:12:88","17749:6:88","17802:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17664:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53844,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17650:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17634:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53846,"nodeType":"ExpressionStatement","src":"17634:229:88"},{"expression":{"id":53862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53847,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17874:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53849,"indexExpression":{"hexValue":"32","id":53848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17885:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17874:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53854,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17962:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17954:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53852,"name":"address","nodeType":"ElementaryTypeName","src":"17954:7:88","typeDescriptions":{}}},"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17954:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53856,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17997:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18006:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17997:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18021:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17997:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53859,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"18061:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53850,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17904:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17904:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17940:12:88","17989:6:88","18042:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17904:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53861,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17890:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17874:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53863,"nodeType":"ExpressionStatement","src":"17874:229:88"},{"expression":{"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53864,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18114:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53866,"indexExpression":{"hexValue":"33","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18125:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18114:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53871,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"18202:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18194:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53869,"name":"address","nodeType":"ElementaryTypeName","src":"18194:7:88","typeDescriptions":{}}},"id":53872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18194:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53873,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18237:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18246:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18237:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18261:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18237:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53876,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"18301:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53867,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18144:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18153:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18144:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18180:12:88","18229:6:88","18282:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18144:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18130:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18114:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53880,"nodeType":"ExpressionStatement","src":"18114:229:88"},{"expression":{"id":53904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53881,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"18354:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53885,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18402:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":53888,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53762,"src":"18491:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53889,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53741,"src":"18534:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53890,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53744,"src":"18578:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53891,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53746,"src":"18631:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53892,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53748,"src":"18688:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53893,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53750,"src":"18741:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53894,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53752,"src":"18791:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53895,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53757,"src":"18851:22:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":53896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18903:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":53897,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53755,"src":"18939:15:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53898,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"18988:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53899,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"19041:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19060:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"19041:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19041:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53886,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"18426:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18445:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"18426:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18481:8:88","18518:14:88","18567:9:88","18606:23:88","18673:13:88","18720:19:88","18771:18:88","18828:21:88","18891:10:88","18923:14:88","18972:14:88","19027:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"18426:657:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18366:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53883,"nodeType":"UserDefinedTypeName","pathNode":{"id":53882,"name":"SubnetActorDiamond","nameLocations":["18370:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18370:18:88"},"referencedDeclaration":36615,"src":"18370:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18366:727:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"18354:739:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53905,"nodeType":"ExpressionStatement","src":"18354:739:88"},{"expression":{"id":53913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53906,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"19104:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53910,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19148:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19140:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53908,"name":"address","nodeType":"ElementaryTypeName","src":"19140:7:88","typeDescriptions":{}}},"id":53911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19140:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53907,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"19116:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19116:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"19104:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53914,"nodeType":"ExpressionStatement","src":"19104:55:88"},{"expression":{"id":53922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53915,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"19169:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53919,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19211:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53917,"name":"address","nodeType":"ElementaryTypeName","src":"19203:7:88","typeDescriptions":{}}},"id":53920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19203:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53916,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"19180:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19180:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"19169:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53923,"nodeType":"ExpressionStatement","src":"19169:53:88"},{"expression":{"id":53931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53924,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"19232:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53928,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19267:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19259:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53926,"name":"address","nodeType":"ElementaryTypeName","src":"19259:7:88","typeDescriptions":{}}},"id":53929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19259:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53925,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"19243:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19243:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"19232:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53932,"nodeType":"ExpressionStatement","src":"19232:46:88"},{"expression":{"id":53940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53933,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"19288:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53937,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19325:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19317:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53935,"name":"address","nodeType":"ElementaryTypeName","src":"19317:7:88","typeDescriptions":{}}},"id":53938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19317:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53934,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"19299:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19299:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"19288:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53941,"nodeType":"ExpressionStatement","src":"19288:48:88"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16722:17:88","parameters":{"id":53758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53741,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16757:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16749:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53740,"name":"address","nodeType":"ElementaryTypeName","src":"16749:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53744,"mutability":"mutable","name":"_consensus","nameLocation":"16796:10:88","nodeType":"VariableDeclaration","scope":53943,"src":"16782:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53743,"nodeType":"UserDefinedTypeName","pathNode":{"id":53742,"name":"ConsensusType","nameLocations":["16782:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16782:13:88"},"referencedDeclaration":37359,"src":"16782:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53746,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16824:24:88","nodeType":"VariableDeclaration","scope":53943,"src":"16816:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53745,"name":"uint256","nodeType":"ElementaryTypeName","src":"16816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53748,"mutability":"mutable","name":"_minValidators","nameLocation":"16865:14:88","nodeType":"VariableDeclaration","scope":53943,"src":"16858:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53747,"name":"uint64","nodeType":"ElementaryTypeName","src":"16858:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53750,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16896:12:88","nodeType":"VariableDeclaration","scope":53943,"src":"16889:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53749,"name":"uint64","nodeType":"ElementaryTypeName","src":"16889:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53752,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16924:19:88","nodeType":"VariableDeclaration","scope":53943,"src":"16918:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53751,"name":"uint8","nodeType":"ElementaryTypeName","src":"16918:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53755,"mutability":"mutable","name":"_permissionMode","nameLocation":"16968:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16953:30:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":53754,"nodeType":"UserDefinedTypeName","pathNode":{"id":53753,"name":"PermissionMode","nameLocations":["16953:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"16953:14:88"},"referencedDeclaration":50165,"src":"16953:14:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53757,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"17000:22:88","nodeType":"VariableDeclaration","scope":53943,"src":"16993:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53756,"name":"uint16","nodeType":"ElementaryTypeName","src":"16993:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16739:289:88"},"returnParameters":{"id":53759,"nodeType":"ParameterList","parameters":[],"src":"17036:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54036,"nodeType":"FunctionDefinition","src":"19349:1021:88","nodes":[],"body":{"id":54035,"nodeType":"Block","src":"19441:929:88","nodes":[],"statements":[{"assignments":[53953],"declarations":[{"constant":false,"id":53953,"mutability":"mutable","name":"mockedManager","nameLocation":"19479:13:88","nodeType":"VariableDeclaration","scope":54035,"src":"19451:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":53952,"nodeType":"UserDefinedTypeName","pathNode":{"id":53951,"name":"SubnetActorManagerFacetMock","nameLocations":["19451:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19451:27:88"},"referencedDeclaration":57957,"src":"19451:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"}],"id":53958,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19495:31:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacetMock_$57957_$","typeString":"function () returns (contract SubnetActorManagerFacetMock)"},"typeName":{"id":53955,"nodeType":"UserDefinedTypeName","pathNode":{"id":53954,"name":"SubnetActorManagerFacetMock","nameLocations":["19499:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19499:27:88"},"referencedDeclaration":57957,"src":"19499:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}},"id":53957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19495:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"VariableDeclarationStatement","src":"19451:77:88"},{"assignments":[53961],"declarations":[{"constant":false,"id":53961,"mutability":"mutable","name":"getter","nameLocation":"19561:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"19538:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53960,"nodeType":"UserDefinedTypeName","pathNode":{"id":53959,"name":"SubnetActorGetterFacet","nameLocations":["19538:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19538:22:88"},"referencedDeclaration":50887,"src":"19538:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53966,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19570:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53963,"nodeType":"UserDefinedTypeName","pathNode":{"id":53962,"name":"SubnetActorGetterFacet","nameLocations":["19574:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19574:22:88"},"referencedDeclaration":50887,"src":"19574:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19570:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"19538:60:88"},{"assignments":[53972],"declarations":[{"constant":false,"id":53972,"mutability":"mutable","name":"diamondCut","nameLocation":"19636:10:88","nodeType":"VariableDeclaration","scope":54035,"src":"19609:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53970,"nodeType":"UserDefinedTypeName","pathNode":{"id":53969,"name":"IDiamond.FacetCut","nameLocations":["19609:8:88","19618:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19609:17:88"},"referencedDeclaration":40159,"src":"19609:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53971,"nodeType":"ArrayTypeName","src":"19609:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53979,"initialValue":{"arguments":[{"hexValue":"32","id":53977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19673:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19649:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53974,"nodeType":"UserDefinedTypeName","pathNode":{"id":53973,"name":"IDiamond.FacetCut","nameLocations":["19653:8:88","19662:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19653:17:88"},"referencedDeclaration":40159,"src":"19653:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53975,"nodeType":"ArrayTypeName","src":"19653:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19649:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"19609:66:88"},{"expression":{"id":53995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53980,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19686:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53982,"indexExpression":{"hexValue":"30","id":53981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19697:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19686:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53987,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53953,"src":"19774:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}],"id":53986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19766:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53985,"name":"address","nodeType":"ElementaryTypeName","src":"19766:7:88","typeDescriptions":{}}},"id":53988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19766:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53989,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19814:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19823:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"19814:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19838:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"19814:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53992,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"19878:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53983,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19716:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19725:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19716:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19752:12:88","19806:6:88","19859:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19716:201:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53994,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19702:225:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19686:241:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53996,"nodeType":"ExpressionStatement","src":"19686:241:88"},{"expression":{"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53997,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19938:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53999,"indexExpression":{"hexValue":"31","id":53998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19938:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54004,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53961,"src":"20026:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":54003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20018:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54002,"name":"address","nodeType":"ElementaryTypeName","src":"20018:7:88","typeDescriptions":{}}},"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20018:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54006,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20059:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20068:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20059:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20083:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20059:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54009,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"20123:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54000,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19968:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19977:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19968:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20004:12:88","20051:6:88","20104:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19968:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54011,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19954:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19938:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54013,"nodeType":"ExpressionStatement","src":"19938:227:88"},{"assignments":[54018],"declarations":[{"constant":false,"id":54018,"mutability":"mutable","name":"params","nameLocation":"20220:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"20176:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54017,"nodeType":"UserDefinedTypeName","pathNode":{"id":54016,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["20176:18:88","20195:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"20176:36:88"},"referencedDeclaration":36253,"src":"20176:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54022,"initialValue":{"arguments":[{"id":54020,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53945,"src":"20265:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54019,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"20229:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":54021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20229:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"20176:92:88"},{"assignments":[54025],"declarations":[{"constant":false,"id":54025,"mutability":"mutable","name":"d","nameLocation":"20298:1:88","nodeType":"VariableDeclaration","scope":54035,"src":"20279:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54024,"nodeType":"UserDefinedTypeName","pathNode":{"id":54023,"name":"SubnetActorDiamond","nameLocations":["20279:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20279:18:88"},"referencedDeclaration":36615,"src":"20279:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54032,"initialValue":{"arguments":[{"id":54029,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"20325:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54030,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54018,"src":"20337:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20302:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54027,"nodeType":"UserDefinedTypeName","pathNode":{"id":54026,"name":"SubnetActorDiamond","nameLocations":["20306:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20306:18:88"},"referencedDeclaration":36615,"src":"20306:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20302:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"20279:65:88"},{"expression":{"id":54033,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54025,"src":"20362:1:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53950,"id":54034,"nodeType":"Return","src":"20355:8:88"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"19358:34:88","parameters":{"id":53946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53945,"mutability":"mutable","name":"gw","nameLocation":"19401:2:88","nodeType":"VariableDeclaration","scope":54036,"src":"19393:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53944,"name":"address","nodeType":"ElementaryTypeName","src":"19393:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19392:12:88"},"returnParameters":{"id":53950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54036,"src":"19421:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53948,"nodeType":"UserDefinedTypeName","pathNode":{"id":53947,"name":"SubnetActorDiamond","nameLocations":["19421:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"19421:18:88"},"referencedDeclaration":36615,"src":"19421:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"19420:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54178,"nodeType":"FunctionDefinition","src":"20422:1703:88","nodes":[],"body":{"id":54177,"nodeType":"Block","src":"20560:1565:88","nodes":[],"statements":[{"assignments":[54050],"declarations":[{"constant":false,"id":54050,"mutability":"mutable","name":"diamondCut","nameLocation":"20597:10:88","nodeType":"VariableDeclaration","scope":54177,"src":"20570:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54048,"nodeType":"UserDefinedTypeName","pathNode":{"id":54047,"name":"IDiamond.FacetCut","nameLocations":["20570:8:88","20579:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20570:17:88"},"referencedDeclaration":40159,"src":"20570:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54049,"nodeType":"ArrayTypeName","src":"20570:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54057,"initialValue":{"arguments":[{"hexValue":"34","id":54055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20634:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20610:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54052,"nodeType":"UserDefinedTypeName","pathNode":{"id":54051,"name":"IDiamond.FacetCut","nameLocations":["20614:8:88","20623:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20614:17:88"},"referencedDeclaration":40159,"src":"20614:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54053,"nodeType":"ArrayTypeName","src":"20614:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20610:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20570:66:88"},{"assignments":[54060],"declarations":[{"constant":false,"id":54060,"mutability":"mutable","name":"regCutFacet","nameLocation":"20663:11:88","nodeType":"VariableDeclaration","scope":54177,"src":"20647:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54059,"nodeType":"UserDefinedTypeName","pathNode":{"id":54058,"name":"DiamondCutFacet","nameLocations":["20647:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20647:15:88"},"referencedDeclaration":36918,"src":"20647:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54065,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20677:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54062,"nodeType":"UserDefinedTypeName","pathNode":{"id":54061,"name":"DiamondCutFacet","nameLocations":["20681:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20681:15:88"},"referencedDeclaration":36918,"src":"20681:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20677:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"20647:51:88"},{"assignments":[54068],"declarations":[{"constant":false,"id":54068,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"20726:13:88","nodeType":"VariableDeclaration","scope":54177,"src":"20708:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54067,"nodeType":"UserDefinedTypeName","pathNode":{"id":54066,"name":"DiamondLoupeFacet","nameLocations":["20708:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20708:17:88"},"referencedDeclaration":37355,"src":"20708:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54073,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20742:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54070,"nodeType":"UserDefinedTypeName","pathNode":{"id":54069,"name":"DiamondLoupeFacet","nameLocations":["20746:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20746:17:88"},"referencedDeclaration":37355,"src":"20746:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20742:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"20708:57:88"},{"assignments":[54076],"declarations":[{"constant":false,"id":54076,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"20795:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20775:34:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54075,"nodeType":"UserDefinedTypeName","pathNode":{"id":54074,"name":"RegisterSubnetFacet","nameLocations":["20775:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20775:19:88"},"referencedDeclaration":52279,"src":"20775:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54081,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20812:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52279_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54078,"nodeType":"UserDefinedTypeName","pathNode":{"id":54077,"name":"RegisterSubnetFacet","nameLocations":["20816:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20816:19:88"},"referencedDeclaration":52279,"src":"20816:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}},"id":54080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20812:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"20775:62:88"},{"assignments":[54084],"declarations":[{"constant":false,"id":54084,"mutability":"mutable","name":"regGetterFacet","nameLocation":"20865:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20847:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54083,"nodeType":"UserDefinedTypeName","pathNode":{"id":54082,"name":"SubnetGetterFacet","nameLocations":["20847:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20847:17:88"},"referencedDeclaration":52517,"src":"20847:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54089,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20882:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52517_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54086,"nodeType":"UserDefinedTypeName","pathNode":{"id":54085,"name":"SubnetGetterFacet","nameLocations":["20886:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20886:17:88"},"referencedDeclaration":52517,"src":"20886:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}},"id":54088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20882:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"20847:58:88"},{"expression":{"id":54105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54090,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"20916:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54092,"indexExpression":{"hexValue":"30","id":54091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20927:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20916:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54097,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54068,"src":"21004:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20996:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54095,"name":"address","nodeType":"ElementaryTypeName","src":"20996:7:88","typeDescriptions":{}}},"id":54098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20996:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54099,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21044:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21053:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21044:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21068:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21044:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54102,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"21108:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54093,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20946:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20955:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20946:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20982:12:88","21036:6:88","21089:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20946:200:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20932:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20916:240:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54106,"nodeType":"ExpressionStatement","src":"20916:240:88"},{"expression":{"id":54122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54107,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21166:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54109,"indexExpression":{"hexValue":"31","id":54108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21177:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21166:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54114,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54060,"src":"21254:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21246:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54112,"name":"address","nodeType":"ElementaryTypeName","src":"21246:7:88","typeDescriptions":{}}},"id":54115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21246:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54116,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21292:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21301:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21292:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21316:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21292:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54119,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"21356:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54110,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21196:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21205:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21196:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21232:12:88","21284:6:88","21337:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21196:198:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54121,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21182:222:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21166:238:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54123,"nodeType":"ExpressionStatement","src":"21166:238:88"},{"expression":{"id":54139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54124,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21414:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54126,"indexExpression":{"hexValue":"32","id":54125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21425:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21414:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54131,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54076,"src":"21502:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}],"id":54130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21494:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54129,"name":"address","nodeType":"ElementaryTypeName","src":"21494:7:88","typeDescriptions":{}}},"id":54132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21494:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54133,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21543:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21552:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21543:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21567:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21543:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54136,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"21607:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54127,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21453:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21444:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21480:12:88","21535:6:88","21588:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21444:206:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54138,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21430:230:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21414:246:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54140,"nodeType":"ExpressionStatement","src":"21414:246:88"},{"expression":{"id":54156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54141,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21670:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54143,"indexExpression":{"hexValue":"33","id":54142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21681:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21670:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54148,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54084,"src":"21758:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}],"id":54147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21750:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54146,"name":"address","nodeType":"ElementaryTypeName","src":"21750:7:88","typeDescriptions":{}}},"id":54149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21750:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54150,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21799:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21808:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21799:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21823:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21799:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54153,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"21863:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54144,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21700:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21709:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21700:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21736:12:88","21791:6:88","21844:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21700:212:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21686:236:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21670:252:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54157,"nodeType":"ExpressionStatement","src":"21670:252:88"},{"assignments":[54160],"declarations":[{"constant":false,"id":54160,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"21955:17:88","nodeType":"VariableDeclaration","scope":54177,"src":"21933:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54159,"nodeType":"UserDefinedTypeName","pathNode":{"id":54158,"name":"SubnetRegistryDiamond","nameLocations":["21933:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21933:21:88"},"referencedDeclaration":36853,"src":"21933:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54167,"initialValue":{"arguments":[{"id":54164,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"22001:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54165,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54039,"src":"22013:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":54163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21975:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36652_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36853_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":54162,"nodeType":"UserDefinedTypeName","pathNode":{"id":54161,"name":"SubnetRegistryDiamond","nameLocations":["21979:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21979:21:88"},"referencedDeclaration":36853,"src":"21979:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21975:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"21933:87:88"},{"eventCall":{"arguments":[{"arguments":[{"id":54171,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22065:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22057:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54169,"name":"address","nodeType":"ElementaryTypeName","src":"22057:7:88","typeDescriptions":{}}},"id":54172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22057:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54168,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53071,"src":"22035:21:88","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22035:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54174,"nodeType":"EmitStatement","src":"22030:54:88"},{"expression":{"id":54175,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22101:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54044,"id":54176,"nodeType":"Return","src":"22094:24:88"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"20431:20:88","parameters":{"id":54040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54039,"mutability":"mutable","name":"params","nameLocation":"20508:6:88","nodeType":"VariableDeclaration","scope":54178,"src":"20461:53:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54038,"nodeType":"UserDefinedTypeName","pathNode":{"id":54037,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["20461:21:88","20483:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"20461:39:88"},"referencedDeclaration":36652,"src":"20461:39:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"20451:69:88"},"returnParameters":{"id":54044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54178,"src":"20537:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54042,"nodeType":"UserDefinedTypeName","pathNode":{"id":54041,"name":"SubnetRegistryDiamond","nameLocations":["20537:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"20537:21:88"},"referencedDeclaration":36853,"src":"20537:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"20536:23:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54207,"nodeType":"FunctionDefinition","src":"22131:190:88","nodes":[],"body":{"id":54206,"nodeType":"Block","src":"22212:109:88","nodes":[],"statements":[{"body":{"id":54202,"nodeType":"Block","src":"22253:42:88","statements":[{"expression":{"id":54200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54196,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22267:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54197,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54181,"src":"22274:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54199,"indexExpression":{"id":54198,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22282:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22274:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22267:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54201,"nodeType":"ExpressionStatement","src":"22267:17:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54190,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22241:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22245:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"22241:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54203,"initializationExpression":{"assignments":[54187],"declarations":[{"constant":false,"id":54187,"mutability":"mutable","name":"i","nameLocation":"22234:1:88","nodeType":"VariableDeclaration","scope":54203,"src":"22227:8:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54186,"name":"uint64","nodeType":"ElementaryTypeName","src":"22227:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54189,"initialValue":{"hexValue":"30","id":54188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22238:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22227:12:88"},"loopExpression":{"expression":{"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22248:3:88","subExpression":{"id":54193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22248:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54195,"nodeType":"ExpressionStatement","src":"22248:3:88"},"nodeType":"ForStatement","src":"22222:73:88"},{"expression":{"id":54204,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22311:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54185,"id":54205,"nodeType":"Return","src":"22304:10:88"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"22140:11:88","parameters":{"id":54182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54181,"mutability":"mutable","name":"weights","nameLocation":"22169:7:88","nodeType":"VariableDeclaration","scope":54207,"src":"22152:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54179,"name":"uint256","nodeType":"ElementaryTypeName","src":"22152:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54180,"nodeType":"ArrayTypeName","src":"22152:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"22151:26:88"},"returnParameters":{"id":54185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54184,"mutability":"mutable","name":"sum","nameLocation":"22207:3:88","nodeType":"VariableDeclaration","scope":54207,"src":"22199:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54183,"name":"uint256","nodeType":"ElementaryTypeName","src":"22199:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22198:13:88"},"scope":55375,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54382,"nodeType":"FunctionDefinition","src":"22327:933:88","nodes":[],"body":{"id":54381,"nodeType":"Block","src":"22430:830:88","nodes":[],"statements":[{"expression":{"id":54224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54217,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22440:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22470:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22453:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54219,"nodeType":"UserDefinedTypeName","pathNode":{"id":54218,"name":"FvmAddress","nameLocations":["22457:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22457:10:88"},"referencedDeclaration":49998,"src":"22457:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54220,"nodeType":"ArrayTypeName","src":"22457:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22453:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"22440:32:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54225,"nodeType":"ExpressionStatement","src":"22440:32:88"},{"expression":{"id":54236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54226,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22482:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54228,"indexExpression":{"hexValue":"30","id":54227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22493:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22482:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22528:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54231,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22520:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22523:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22520:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22520:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54229,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22498:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22515:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22498:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22498:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22482:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54237,"nodeType":"ExpressionStatement","src":"22482:51:88"},{"expression":{"id":54248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22543:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54240,"indexExpression":{"hexValue":"31","id":54239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22554:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22543:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22589:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54243,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22581:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22584:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22581:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22581:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54241,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22559:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22576:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22559:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22559:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22543:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54249,"nodeType":"ExpressionStatement","src":"22543:51:88"},{"expression":{"id":54260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54250,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22604:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54252,"indexExpression":{"hexValue":"32","id":54251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22615:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22604:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22650:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54255,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22642:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22645:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22642:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22642:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54253,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22620:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22637:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22620:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22620:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22604:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54261,"nodeType":"ExpressionStatement","src":"22604:51:88"},{"expression":{"id":54268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54262,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22666:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22692:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22678:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54263,"name":"address","nodeType":"ElementaryTypeName","src":"22682:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54264,"nodeType":"ArrayTypeName","src":"22682:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22678:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"22666:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54269,"nodeType":"ExpressionStatement","src":"22666:28:88"},{"expression":{"id":54277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54270,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22704:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54272,"indexExpression":{"hexValue":"30","id":54271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22714:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22704:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22727:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54273,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22719:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22722:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22719:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22719:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22704:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54278,"nodeType":"ExpressionStatement","src":"22704:27:88"},{"expression":{"id":54286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54279,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22741:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54281,"indexExpression":{"hexValue":"31","id":54280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22751:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22741:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22764:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54282,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22756:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22759:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22756:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22756:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22741:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54287,"nodeType":"ExpressionStatement","src":"22741:27:88"},{"expression":{"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54288,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22778:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54290,"indexExpression":{"hexValue":"32","id":54289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22788:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22778:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22801:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54291,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22793:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22796:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22793:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22793:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22778:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54296,"nodeType":"ExpressionStatement","src":"22778:27:88"},{"assignments":[54301],"declarations":[{"constant":false,"id":54301,"mutability":"mutable","name":"weights","nameLocation":"22833:7:88","nodeType":"VariableDeclaration","scope":54381,"src":"22816:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54299,"name":"uint256","nodeType":"ElementaryTypeName","src":"22816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54300,"nodeType":"ArrayTypeName","src":"22816:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54307,"initialValue":{"arguments":[{"hexValue":"33","id":54305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22857:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22843:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54302,"name":"uint256","nodeType":"ElementaryTypeName","src":"22847:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54303,"nodeType":"ArrayTypeName","src":"22847:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22843:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22816:43:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22886:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54311,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22878:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22881:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22878:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22878:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22892:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22870:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22873:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22870:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22870:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54317,"nodeType":"ExpressionStatement","src":"22870:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22920:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54321,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22912:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22915:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22912:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22926:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54318,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22904:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22907:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22904:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22904:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54327,"nodeType":"ExpressionStatement","src":"22904:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22954:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54331,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22946:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22949:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22946:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22946:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22960:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54328,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22938:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22941:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22938:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22938:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54337,"nodeType":"ExpressionStatement","src":"22938:24:88"},{"expression":{"id":54342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54338,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22973:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54340,"indexExpression":{"hexValue":"30","id":54339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22981:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22973:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22986:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22973:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54343,"nodeType":"ExpressionStatement","src":"22973:16:88"},{"expression":{"id":54348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54344,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22999:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54346,"indexExpression":{"hexValue":"31","id":54345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23007:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22999:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23012:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22999:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54349,"nodeType":"ExpressionStatement","src":"22999:16:88"},{"expression":{"id":54354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54350,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"23025:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54352,"indexExpression":{"hexValue":"32","id":54351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23033:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23025:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23038:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"23025:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54355,"nodeType":"ExpressionStatement","src":"23025:16:88"},{"assignments":[54358],"declarations":[{"constant":false,"id":54358,"mutability":"mutable","name":"finality","nameLocation":"23074:8:88","nodeType":"VariableDeclaration","scope":54381,"src":"23052:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54357,"nodeType":"UserDefinedTypeName","pathNode":{"id":54356,"name":"ParentFinality","nameLocations":["23052:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"23052:14:88"},"referencedDeclaration":49918,"src":"23052:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54367,"initialValue":{"arguments":[{"expression":{"id":54360,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23109:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:6:88","memberName":"number","nodeType":"MemberAccess","src":"23109:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23142:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23134:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23134:7:88","typeDescriptions":{}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23134:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54359,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"23085:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23101:6:88","23123:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"23085:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"23052:94:88"},{"expression":{"arguments":[{"expression":{"id":54371,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"23166:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23177:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"23166:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54368,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23157:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23160:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"23157:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23157:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54374,"nodeType":"ExpressionStatement","src":"23157:33:88"},{"expression":{"arguments":[{"id":54378,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54358,"src":"23244:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54375,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"23200:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23223:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"23200:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54380,"nodeType":"ExpressionStatement","src":"23200:53:88"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"22336:15:88","parameters":{"id":54208,"nodeType":"ParameterList","parameters":[],"src":"22351:2:88"},"returnParameters":{"id":54216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54212,"mutability":"mutable","name":"validators","nameLocation":"22390:10:88","nodeType":"VariableDeclaration","scope":54382,"src":"22370:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54210,"nodeType":"UserDefinedTypeName","pathNode":{"id":54209,"name":"FvmAddress","nameLocations":["22370:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22370:10:88"},"referencedDeclaration":49998,"src":"22370:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54211,"nodeType":"ArrayTypeName","src":"22370:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54215,"mutability":"mutable","name":"addresses","nameLocation":"22419:9:88","nodeType":"VariableDeclaration","scope":54382,"src":"22402:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54213,"name":"address","nodeType":"ElementaryTypeName","src":"22402:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54214,"nodeType":"ArrayTypeName","src":"22402:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"22369:60:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54475,"nodeType":"FunctionDefinition","src":"23266:1297:88","nodes":[],"body":{"id":54474,"nodeType":"Block","src":"23350:1213:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54392,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"23375:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54393,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23402:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54391,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55282,"src":"23360:14:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23360:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54395,"nodeType":"ExpressionStatement","src":"23360:46:88"},{"assignments":[54398],"declarations":[{"constant":false,"id":54398,"mutability":"mutable","name":"crossMsg","nameLocation":"23433:8:88","nodeType":"VariableDeclaration","scope":54474,"src":"23417:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54397,"nodeType":"UserDefinedTypeName","pathNode":{"id":54396,"name":"CrossMsg","nameLocations":["23417:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"23417:8:88"},"referencedDeclaration":49974,"src":"23417:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54438,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54406,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23596:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54402,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23555:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23564:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23555:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23581:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23555:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54410,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23659:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54408,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23637:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23654:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23637:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23637:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54401,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23512:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23545:8:88","23625:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23512:173:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54418,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23791:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54414,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23750:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23759:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23750:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23776:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23750:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54422,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23851:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54420,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23829:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23846:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23829:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23829:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54413,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23707:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23740:8:88","23817:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23707:167:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54425,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"23899:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23899:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54429,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"23976:11:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24023:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24013:9:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54430,"name":"bytes","nodeType":"ElementaryTypeName","src":"24017:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24013:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54434,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"24048:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54400,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"23476:11:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49991_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23506:4:88","23703:2:88","23892:5:88","23942:5:88","23968:6:88","24005:6:88","24043:3:88"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"23476:608:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24107:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54399,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"23444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49974_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23467:7:88","24098:7:88"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"23444:679:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"23417:706:88"},{"assignments":[54443],"declarations":[{"constant":false,"id":54443,"mutability":"mutable","name":"msgs","nameLocation":"24151:4:88","nodeType":"VariableDeclaration","scope":54474,"src":"24133:22:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":54441,"nodeType":"UserDefinedTypeName","pathNode":{"id":54440,"name":"CrossMsg","nameLocations":["24133:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24133:8:88"},"referencedDeclaration":49974,"src":"24133:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54442,"nodeType":"ArrayTypeName","src":"24133:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54450,"initialValue":{"arguments":[{"hexValue":"31","id":54448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24173:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24158:14:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":54445,"nodeType":"UserDefinedTypeName","pathNode":{"id":54444,"name":"CrossMsg","nameLocations":["24162:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24162:8:88"},"referencedDeclaration":49974,"src":"24162:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54446,"nodeType":"ArrayTypeName","src":"24162:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24158:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24133:42:88"},{"expression":{"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54451,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24185:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54453,"indexExpression":{"hexValue":"30","id":54452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24190:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24185:7:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54454,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24195:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"24185:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54456,"nodeType":"ExpressionStatement","src":"24185:18:88"},{"expression":{"arguments":[{"expression":{"id":54460,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"24442:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24453:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"24442:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54457,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24433:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24436:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"24433:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24433:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54463,"nodeType":"ExpressionStatement","src":"24433:33:88"},{"expression":{"arguments":[{"id":54467,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24516:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":54464,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"24476:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24497:18:88","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"24476:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":54468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24476:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54469,"nodeType":"ExpressionStatement","src":"24476:45:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54470,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24539:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24548:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40590,"src":"24539:15:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24539:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54390,"id":54473,"nodeType":"Return","src":"24532:24:88"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"23275:20:88","parameters":{"id":54387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54384,"mutability":"mutable","name":"caller","nameLocation":"23304:6:88","nodeType":"VariableDeclaration","scope":54475,"src":"23296:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54383,"name":"address","nodeType":"ElementaryTypeName","src":"23296:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54386,"mutability":"mutable","name":"src","nameLocation":"23320:3:88","nodeType":"VariableDeclaration","scope":54475,"src":"23312:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54385,"name":"address","nodeType":"ElementaryTypeName","src":"23312:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23295:29:88"},"returnParameters":{"id":54390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54475,"src":"23341:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23341:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23340:9:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54486,"nodeType":"FunctionDefinition","src":"24569:93:88","nodes":[],"body":{"id":54485,"nodeType":"Block","src":"24617:45:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54481,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54477,"src":"24640:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24651:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":54480,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"24627:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24627:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54484,"nodeType":"ExpressionStatement","src":"24627:28:88"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24578:12:88","parameters":{"id":54478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54477,"mutability":"mutable","name":"validator","nameLocation":"24599:9:88","nodeType":"VariableDeclaration","scope":54486,"src":"24591:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54476,"name":"address","nodeType":"ElementaryTypeName","src":"24591:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24590:19:88"},"returnParameters":{"id":54479,"nodeType":"ParameterList","parameters":[],"src":"24617:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54569,"nodeType":"FunctionDefinition","src":"24668:610:88","nodes":[],"body":{"id":54568,"nodeType":"Block","src":"24732:546:88","nodes":[],"statements":[{"assignments":[54497],"declarations":[{"constant":false,"id":54497,"mutability":"mutable","name":"validators","nameLocation":"24762:10:88","nodeType":"VariableDeclaration","scope":54568,"src":"24742:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54495,"nodeType":"UserDefinedTypeName","pathNode":{"id":54494,"name":"FvmAddress","nameLocations":["24742:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24742:10:88"},"referencedDeclaration":49998,"src":"24742:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54496,"nodeType":"ArrayTypeName","src":"24742:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54504,"initialValue":{"arguments":[{"hexValue":"31","id":54502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24792:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24775:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54499,"nodeType":"UserDefinedTypeName","pathNode":{"id":54498,"name":"FvmAddress","nameLocations":["24779:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24779:10:88"},"referencedDeclaration":49998,"src":"24779:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54500,"nodeType":"ArrayTypeName","src":"24779:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24775:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24742:52:88"},{"expression":{"id":54512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54505,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54497,"src":"24804:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54507,"indexExpression":{"hexValue":"30","id":54506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24815:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24804:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24842:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54508,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"24820:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24837:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"24820:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24820:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"24804:48:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54513,"nodeType":"ExpressionStatement","src":"24804:48:88"},{"assignments":[54518],"declarations":[{"constant":false,"id":54518,"mutability":"mutable","name":"weights","nameLocation":"24879:7:88","nodeType":"VariableDeclaration","scope":54568,"src":"24862:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54516,"name":"uint256","nodeType":"ElementaryTypeName","src":"24862:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54517,"nodeType":"ArrayTypeName","src":"24862:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54524,"initialValue":{"arguments":[{"hexValue":"31","id":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24903:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24889:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54519,"name":"uint256","nodeType":"ElementaryTypeName","src":"24893:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54520,"nodeType":"ArrayTypeName","src":"24893:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24889:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24862:43:88"},{"expression":{"id":54529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54525,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54518,"src":"24915:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54527,"indexExpression":{"hexValue":"30","id":54526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24915:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54528,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54490,"src":"24928:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24915:19:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54530,"nodeType":"ExpressionStatement","src":"24915:19:88"},{"expression":{"arguments":[{"id":54534,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24953:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24964:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24945:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24948:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"24945:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24945:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54537,"nodeType":"ExpressionStatement","src":"24945:21:88"},{"assignments":[54540],"declarations":[{"constant":false,"id":54540,"mutability":"mutable","name":"finality","nameLocation":"24998:8:88","nodeType":"VariableDeclaration","scope":54568,"src":"24976:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54539,"nodeType":"UserDefinedTypeName","pathNode":{"id":54538,"name":"ParentFinality","nameLocations":["24976:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"24976:14:88"},"referencedDeclaration":49918,"src":"24976:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54549,"initialValue":{"arguments":[{"expression":{"id":54542,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25033:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25039:6:88","memberName":"number","nodeType":"MemberAccess","src":"25033:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25066:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25058:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25058:7:88","typeDescriptions":{}}},"id":54547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25058:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54541,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"25009:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25025:6:88","25047:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"25009:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"24976:94:88"},{"expression":{"arguments":[{"expression":{"id":54553,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"25160:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25171:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"25160:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54550,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25146:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25149:10:88","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"25146:13:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25146:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54556,"nodeType":"ExpressionStatement","src":"25146:38:88"},{"expression":{"arguments":[{"id":54560,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54540,"src":"25238:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54557,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"25194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25217:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"25194:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25194:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54562,"nodeType":"ExpressionStatement","src":"25194:53:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54563,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25257:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25260:9:88","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"25257:12:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25257:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54567,"nodeType":"ExpressionStatement","src":"25257:14:88"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24677:12:88","parameters":{"id":54491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54488,"mutability":"mutable","name":"validator","nameLocation":"24698:9:88","nodeType":"VariableDeclaration","scope":54569,"src":"24690:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54487,"name":"address","nodeType":"ElementaryTypeName","src":"24690:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54490,"mutability":"mutable","name":"weight","nameLocation":"24717:6:88","nodeType":"VariableDeclaration","scope":54569,"src":"24709:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54489,"name":"uint256","nodeType":"ElementaryTypeName","src":"24709:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24689:35:88"},"returnParameters":{"id":54492,"nodeType":"ParameterList","parameters":[],"src":"24732:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54582,"nodeType":"FunctionDefinition","src":"25284:112:88","nodes":[],"body":{"id":54581,"nodeType":"Block","src":"25328:68:88","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25350:30:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54578,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54571,"src":"25382:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54574,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"25338:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25346:3:88","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"25338:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25338:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54580,"nodeType":"ExpressionStatement","src":"25338:51:88"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"25293:6:88","parameters":{"id":54572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54571,"mutability":"mutable","name":"amount","nameLocation":"25308:6:88","nodeType":"VariableDeclaration","scope":54582,"src":"25300:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54570,"name":"uint256","nodeType":"ElementaryTypeName","src":"25300:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25299:16:88"},"returnParameters":{"id":54573,"nodeType":"ParameterList","parameters":[],"src":"25328:0:88"},"scope":55375,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54597,"nodeType":"FunctionDefinition","src":"25402:131:88","nodes":[],"body":{"id":54596,"nodeType":"Block","src":"25466:67:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54590,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54584,"src":"25481:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54591,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54586,"src":"25496:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54592,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"25508:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25519:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"25508:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"id":54589,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54597,54722],"referencedDeclaration":54722,"src":"25476:4:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50229_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25476:50:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54595,"nodeType":"ExpressionStatement","src":"25476:50:88"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25411:4:88","parameters":{"id":54587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54584,"mutability":"mutable","name":"funderAddress","nameLocation":"25424:13:88","nodeType":"VariableDeclaration","scope":54597,"src":"25416:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54583,"name":"address","nodeType":"ElementaryTypeName","src":"25416:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54586,"mutability":"mutable","name":"fundAmount","nameLocation":"25447:10:88","nodeType":"VariableDeclaration","scope":54597,"src":"25439:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54585,"name":"uint256","nodeType":"ElementaryTypeName","src":"25439:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25415:43:88"},"returnParameters":{"id":54588,"nodeType":"ParameterList","parameters":[],"src":"25466:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54722,"nodeType":"FunctionDefinition","src":"25539:1180:88","nodes":[],"body":{"id":54721,"nodeType":"Block","src":"25620:1099:88","nodes":[],"statements":[{"assignments":[54609,null,54611,null,54613],"declarations":[{"constant":false,"id":54609,"mutability":"mutable","name":"subnetId","nameLocation":"25712:8:88","nodeType":"VariableDeclaration","scope":54721,"src":"25696:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54608,"nodeType":"UserDefinedTypeName","pathNode":{"id":54607,"name":"SubnetID","nameLocations":["25696:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"25696:8:88"},"referencedDeclaration":50077,"src":"25696:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54611,"mutability":"mutable","name":"nonceBefore","nameLocation":"25732:11:88","nodeType":"VariableDeclaration","scope":54721,"src":"25724:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54610,"name":"uint256","nodeType":"ElementaryTypeName","src":"25724:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54613,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"25755:16:88","nodeType":"VariableDeclaration","scope":54721,"src":"25747:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54612,"name":"uint256","nodeType":"ElementaryTypeName","src":"25747:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54620,"initialValue":{"arguments":[{"arguments":[{"id":54617,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"25793:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25785:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54615,"name":"address","nodeType":"ElementaryTypeName","src":"25785:7:88","typeDescriptions":{}}},"id":54618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25785:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54614,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"25775:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25775:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25695:109:88"},{"assignments":[54622],"declarations":[{"constant":false,"id":54622,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"25823:25:88","nodeType":"VariableDeclaration","scope":54721,"src":"25815:33:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54621,"name":"uint256","nodeType":"ElementaryTypeName","src":"25815:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54629,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54625,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"25887:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54623,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"25851:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25860:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"25851:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25851:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25899:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25851:49:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25815:85:88"},{"assignments":[54631],"declarations":[{"constant":false,"id":54631,"mutability":"mutable","name":"expectedNonce","nameLocation":"25918:13:88","nodeType":"VariableDeclaration","scope":54721,"src":"25910:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54630,"name":"uint256","nodeType":"ElementaryTypeName","src":"25910:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54635,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54632,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54611,"src":"25934:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25948:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25934:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25910:39:88"},{"assignments":[54637],"declarations":[{"constant":false,"id":54637,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"25967:18:88","nodeType":"VariableDeclaration","scope":54721,"src":"25959:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54636,"name":"uint256","nodeType":"ElementaryTypeName","src":"25959:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54641,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54638,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54613,"src":"25988:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54639,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26007:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25988:29:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25959:58:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54643,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26036:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26045:11:88","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"26036:20:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26061:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26036:26:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26064:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":54642,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26028:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26028:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54650,"nodeType":"ExpressionStatement","src":"26028:55:88"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54651,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26098:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54652,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26106:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26117:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"26106:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26098:25:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54668,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26241:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54669,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26249:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26260:5:88","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"26249:16:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26241:24:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54684,"nodeType":"IfStatement","src":"26237:138:88","trueBody":{"id":54683,"nodeType":"Block","src":"26267:108:88","statements":[{"expression":{"arguments":[{"id":54675,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26305:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54678,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26337:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54676,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26315:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26332:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26315:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26315:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54680,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26353:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54672,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26281:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26291:13:88","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"26281:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory,uint256) external"}},"id":54681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26281:83:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54682,"nodeType":"ExpressionStatement","src":"26281:83:88"}]}},"id":54685,"nodeType":"IfStatement","src":"26094:281:88","trueBody":{"id":54667,"nodeType":"Block","src":"26125:106:88","statements":[{"expression":{"arguments":[{"id":54660,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26173:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54663,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26205:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54661,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26183:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26200:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26183:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26183:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":54655,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26139:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26149:4:88","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"26139:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54658,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26161:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26139:33:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26139:81:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54666,"nodeType":"ExpressionStatement","src":"26139:81:88"}]}},{"assignments":[null,null,54687,null,54689],"declarations":[null,null,{"constant":false,"id":54687,"mutability":"mutable","name":"nonce","nameLocation":"26398:5:88","nodeType":"VariableDeclaration","scope":54721,"src":"26390:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54686,"name":"uint256","nodeType":"ElementaryTypeName","src":"26390:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54689,"mutability":"mutable","name":"circSupply","nameLocation":"26415:10:88","nodeType":"VariableDeclaration","scope":54721,"src":"26407:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54688,"name":"uint256","nodeType":"ElementaryTypeName","src":"26407:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54696,"initialValue":{"arguments":[{"arguments":[{"id":54693,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26447:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26439:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54691,"name":"address","nodeType":"ElementaryTypeName","src":"26439:7:88","typeDescriptions":{}}},"id":54694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26439:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54690,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"26429:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26429:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"26385:73:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54700,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26513:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54698,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26477:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26486:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"26477:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26477:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54702,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54622,"src":"26526:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26477:74:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":54704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26553:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":54697,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26469:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26469:105:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54706,"nodeType":"ExpressionStatement","src":"26469:105:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54708,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"26593:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54709,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54631,"src":"26602:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26593:22:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":54711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26617:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":54707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26585:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26585:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54713,"nodeType":"ExpressionStatement","src":"26585:51:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54715,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54689,"src":"26654:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54716,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54637,"src":"26668:18:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26654:32:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":54718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26688:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":54714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26646:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26646:66:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54720,"nodeType":"ExpressionStatement","src":"26646:66:88"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25548:4:88","parameters":{"id":54605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54599,"mutability":"mutable","name":"funderAddress","nameLocation":"25561:13:88","nodeType":"VariableDeclaration","scope":54722,"src":"25553:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54598,"name":"address","nodeType":"ElementaryTypeName","src":"25553:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54601,"mutability":"mutable","name":"fundAmount","nameLocation":"25584:10:88","nodeType":"VariableDeclaration","scope":54722,"src":"25576:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54600,"name":"uint256","nodeType":"ElementaryTypeName","src":"25576:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54604,"mutability":"mutable","name":"mode","nameLocation":"25607:4:88","nodeType":"VariableDeclaration","scope":54722,"src":"25596:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":54603,"nodeType":"UserDefinedTypeName","pathNode":{"id":54602,"name":"SupplyKind","nameLocations":["25596:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"25596:10:88"},"referencedDeclaration":50229,"src":"25596:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"25552:60:88"},"returnParameters":{"id":54606,"nodeType":"ParameterList","parameters":[],"src":"25620:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54753,"nodeType":"FunctionDefinition","src":"26725:243:88","nodes":[],"body":{"id":54752,"nodeType":"Block","src":"26793:175:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54732,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26812:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54729,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26803:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26806:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26803:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26803:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54734,"nodeType":"ExpressionStatement","src":"26803:26:88"},{"expression":{"arguments":[{"id":54738,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26847:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54739,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26865:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26865:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":54735,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26839:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26842:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26839:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26839:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54743,"nodeType":"ExpressionStatement","src":"26839:56:88"},{"expression":{"arguments":[{"id":54749,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54726,"src":"26954:6:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54744,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26905:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":54746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26915:4:88","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51605,"src":"26905:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":54748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54747,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26927:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"26905:48:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":54750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26905:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54751,"nodeType":"ExpressionStatement","src":"26905:56:88"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"26734:4:88","parameters":{"id":54727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54724,"mutability":"mutable","name":"validatorAddress","nameLocation":"26747:16:88","nodeType":"VariableDeclaration","scope":54753,"src":"26739:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54723,"name":"address","nodeType":"ElementaryTypeName","src":"26739:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54726,"mutability":"mutable","name":"pubkey","nameLocation":"26778:6:88","nodeType":"VariableDeclaration","scope":54753,"src":"26765:19:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54725,"name":"bytes","nodeType":"ElementaryTypeName","src":"26765:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26738:47:88"},"returnParameters":{"id":54728,"nodeType":"ParameterList","parameters":[],"src":"26793:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54800,"nodeType":"FunctionDefinition","src":"26974:298:88","nodes":[],"body":{"id":54799,"nodeType":"Block","src":"27042:230:88","nodes":[],"statements":[{"assignments":[54764],"declarations":[{"constant":false,"id":54764,"mutability":"mutable","name":"validators","nameLocation":"27069:10:88","nodeType":"VariableDeclaration","scope":54799,"src":"27052:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54762,"name":"address","nodeType":"ElementaryTypeName","src":"27052:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54763,"nodeType":"ArrayTypeName","src":"27052:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54770,"initialValue":{"arguments":[{"hexValue":"31","id":54768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27096:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27082:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54765,"name":"address","nodeType":"ElementaryTypeName","src":"27086:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54766,"nodeType":"ArrayTypeName","src":"27086:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27082:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27052:46:88"},{"expression":{"id":54775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54771,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27108:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54773,"indexExpression":{"hexValue":"30","id":54772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27119:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27108:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54774,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54755,"src":"27124:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27108:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54776,"nodeType":"ExpressionStatement","src":"27108:25:88"},{"assignments":[54781],"declarations":[{"constant":false,"id":54781,"mutability":"mutable","name":"privKeys","nameLocation":"27161:8:88","nodeType":"VariableDeclaration","scope":54799,"src":"27144:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54779,"name":"uint256","nodeType":"ElementaryTypeName","src":"27144:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54780,"nodeType":"ArrayTypeName","src":"27144:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54787,"initialValue":{"arguments":[{"hexValue":"31","id":54785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27186:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27172:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54782,"name":"uint256","nodeType":"ElementaryTypeName","src":"27176:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54783,"nodeType":"ArrayTypeName","src":"27176:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27172:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27144:44:88"},{"expression":{"id":54792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54788,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27198:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54790,"indexExpression":{"hexValue":"30","id":54789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27207:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27198:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54791,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54757,"src":"27212:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27198:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54793,"nodeType":"ExpressionStatement","src":"27198:21:88"},{"expression":{"arguments":[{"id":54795,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27244:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54796,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27256:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54794,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27230:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27230:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54798,"nodeType":"ExpressionStatement","src":"27230:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"26983:13:88","parameters":{"id":54758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54755,"mutability":"mutable","name":"validator","nameLocation":"27005:9:88","nodeType":"VariableDeclaration","scope":54800,"src":"26997:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54754,"name":"address","nodeType":"ElementaryTypeName","src":"26997:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54757,"mutability":"mutable","name":"privKey","nameLocation":"27024:7:88","nodeType":"VariableDeclaration","scope":54800,"src":"27016:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54756,"name":"uint256","nodeType":"ElementaryTypeName","src":"27016:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26996:36:88"},"returnParameters":{"id":54759,"nodeType":"ParameterList","parameters":[],"src":"27042:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54863,"nodeType":"FunctionDefinition","src":"27278:408:88","nodes":[],"body":{"id":54862,"nodeType":"Block","src":"27386:300:88","nodes":[],"statements":[{"assignments":[54815],"declarations":[{"constant":false,"id":54815,"mutability":"mutable","name":"validators","nameLocation":"27413:10:88","nodeType":"VariableDeclaration","scope":54862,"src":"27396:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54813,"name":"address","nodeType":"ElementaryTypeName","src":"27396:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54814,"nodeType":"ArrayTypeName","src":"27396:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54821,"initialValue":{"arguments":[{"hexValue":"32","id":54819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27440:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27426:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54816,"name":"address","nodeType":"ElementaryTypeName","src":"27430:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54817,"nodeType":"ArrayTypeName","src":"27430:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27426:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27396:46:88"},{"expression":{"id":54826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54822,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27452:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54824,"indexExpression":{"hexValue":"30","id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27463:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27452:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54825,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54802,"src":"27468:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27452:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54827,"nodeType":"ExpressionStatement","src":"27452:26:88"},{"expression":{"id":54832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54828,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27488:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54830,"indexExpression":{"hexValue":"31","id":54829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27499:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27488:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54831,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54806,"src":"27504:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27488:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54833,"nodeType":"ExpressionStatement","src":"27488:26:88"},{"assignments":[54838],"declarations":[{"constant":false,"id":54838,"mutability":"mutable","name":"privKeys","nameLocation":"27542:8:88","nodeType":"VariableDeclaration","scope":54862,"src":"27525:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54836,"name":"uint256","nodeType":"ElementaryTypeName","src":"27525:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54837,"nodeType":"ArrayTypeName","src":"27525:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54844,"initialValue":{"arguments":[{"hexValue":"32","id":54842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27567:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27553:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54839,"name":"uint256","nodeType":"ElementaryTypeName","src":"27557:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54840,"nodeType":"ArrayTypeName","src":"27557:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27553:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27525:44:88"},{"expression":{"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54845,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27579:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54847,"indexExpression":{"hexValue":"30","id":54846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27588:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27579:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54848,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54804,"src":"27593:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27579:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54850,"nodeType":"ExpressionStatement","src":"27579:22:88"},{"expression":{"id":54855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54851,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27611:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54853,"indexExpression":{"hexValue":"31","id":54852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27620:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27611:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54854,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54808,"src":"27625:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27611:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54856,"nodeType":"ExpressionStatement","src":"27611:22:88"},{"expression":{"arguments":[{"id":54858,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27658:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54859,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27670:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54857,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27644:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27644:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54861,"nodeType":"ExpressionStatement","src":"27644:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27287:13:88","parameters":{"id":54809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54802,"mutability":"mutable","name":"validator1","nameLocation":"27309:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27301:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54801,"name":"address","nodeType":"ElementaryTypeName","src":"27301:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54804,"mutability":"mutable","name":"privKey1","nameLocation":"27329:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27321:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54803,"name":"uint256","nodeType":"ElementaryTypeName","src":"27321:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54806,"mutability":"mutable","name":"validator2","nameLocation":"27347:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27339:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54805,"name":"address","nodeType":"ElementaryTypeName","src":"27339:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54808,"mutability":"mutable","name":"privKey2","nameLocation":"27367:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27359:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54807,"name":"uint256","nodeType":"ElementaryTypeName","src":"27359:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27300:76:88"},"returnParameters":{"id":54810,"nodeType":"ParameterList","parameters":[],"src":"27386:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54942,"nodeType":"FunctionDefinition","src":"27692:568:88","nodes":[],"body":{"id":54941,"nodeType":"Block","src":"27892:368:88","nodes":[],"statements":[{"assignments":[54882],"declarations":[{"constant":false,"id":54882,"mutability":"mutable","name":"validators","nameLocation":"27919:10:88","nodeType":"VariableDeclaration","scope":54941,"src":"27902:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54880,"name":"address","nodeType":"ElementaryTypeName","src":"27902:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54881,"nodeType":"ArrayTypeName","src":"27902:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54888,"initialValue":{"arguments":[{"hexValue":"33","id":54886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27946:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27932:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54883,"name":"address","nodeType":"ElementaryTypeName","src":"27936:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54884,"nodeType":"ArrayTypeName","src":"27936:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27932:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27902:46:88"},{"expression":{"id":54893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54889,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27958:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54891,"indexExpression":{"hexValue":"30","id":54890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27969:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27958:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54892,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54865,"src":"27974:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27958:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54894,"nodeType":"ExpressionStatement","src":"27958:26:88"},{"expression":{"id":54899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54895,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27994:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54897,"indexExpression":{"hexValue":"31","id":54896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28005:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27994:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54898,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54869,"src":"28010:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27994:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54900,"nodeType":"ExpressionStatement","src":"27994:26:88"},{"expression":{"id":54905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54901,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28030:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54903,"indexExpression":{"hexValue":"32","id":54902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28030:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54904,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54873,"src":"28046:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"28030:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54906,"nodeType":"ExpressionStatement","src":"28030:26:88"},{"assignments":[54911],"declarations":[{"constant":false,"id":54911,"mutability":"mutable","name":"privKeys","nameLocation":"28084:8:88","nodeType":"VariableDeclaration","scope":54941,"src":"28067:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54909,"name":"uint256","nodeType":"ElementaryTypeName","src":"28067:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54910,"nodeType":"ArrayTypeName","src":"28067:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54917,"initialValue":{"arguments":[{"hexValue":"33","id":54915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28109:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28095:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54912,"name":"uint256","nodeType":"ElementaryTypeName","src":"28099:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54913,"nodeType":"ArrayTypeName","src":"28099:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28095:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28067:44:88"},{"expression":{"id":54922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54918,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28121:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54920,"indexExpression":{"hexValue":"30","id":54919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28130:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28121:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54921,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54867,"src":"28135:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28121:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54923,"nodeType":"ExpressionStatement","src":"28121:22:88"},{"expression":{"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54924,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28153:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54926,"indexExpression":{"hexValue":"31","id":54925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28162:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28153:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54927,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54871,"src":"28167:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28153:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54929,"nodeType":"ExpressionStatement","src":"28153:22:88"},{"expression":{"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54930,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28185:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54932,"indexExpression":{"hexValue":"32","id":54931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28194:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28185:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54933,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54875,"src":"28199:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28185:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54935,"nodeType":"ExpressionStatement","src":"28185:22:88"},{"expression":{"arguments":[{"id":54937,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28232:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54938,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28244:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54936,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"28218:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28218:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54940,"nodeType":"ExpressionStatement","src":"28218:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27701:13:88","parameters":{"id":54876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54865,"mutability":"mutable","name":"validator1","nameLocation":"27732:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27724:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54864,"name":"address","nodeType":"ElementaryTypeName","src":"27724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54867,"mutability":"mutable","name":"privKey1","nameLocation":"27760:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27752:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54866,"name":"uint256","nodeType":"ElementaryTypeName","src":"27752:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54869,"mutability":"mutable","name":"validator2","nameLocation":"27786:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27778:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54868,"name":"address","nodeType":"ElementaryTypeName","src":"27778:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54871,"mutability":"mutable","name":"privKey2","nameLocation":"27814:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27806:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54870,"name":"uint256","nodeType":"ElementaryTypeName","src":"27806:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54873,"mutability":"mutable","name":"validator3","nameLocation":"27840:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27832:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54872,"name":"address","nodeType":"ElementaryTypeName","src":"27832:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54875,"mutability":"mutable","name":"privKey3","nameLocation":"27868:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27860:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54874,"name":"uint256","nodeType":"ElementaryTypeName","src":"27860:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27714:168:88"},"returnParameters":{"id":54877,"nodeType":"ParameterList","parameters":[],"src":"27892:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55093,"nodeType":"FunctionDefinition","src":"28266:1102:88","nodes":[],"body":{"id":55092,"nodeType":"Block","src":"28354:1014:88","nodes":[],"statements":[{"assignments":[54952],"declarations":[{"constant":false,"id":54952,"mutability":"mutable","name":"n","nameLocation":"28372:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28364:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54951,"name":"uint256","nodeType":"ElementaryTypeName","src":"28364:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54955,"initialValue":{"expression":{"id":54953,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"28376:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28387:6:88","memberName":"length","nodeType":"MemberAccess","src":"28376:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28364:29:88"},{"assignments":[54960],"declarations":[{"constant":false,"id":54960,"mutability":"mutable","name":"signatures","nameLocation":"28419:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28404:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":54958,"name":"bytes","nodeType":"ElementaryTypeName","src":"28404:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54959,"nodeType":"ArrayTypeName","src":"28404:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":54966,"initialValue":{"arguments":[{"id":54964,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"28444:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28432:11:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":54961,"name":"bytes","nodeType":"ElementaryTypeName","src":"28436:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54962,"nodeType":"ArrayTypeName","src":"28436:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28432:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28404:42:88"},{"assignments":[54968,null],"declarations":[{"constant":false,"id":54968,"mutability":"mutable","name":"nextConfigNum","nameLocation":"28465:13:88","nodeType":"VariableDeclaration","scope":55092,"src":"28458:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54967,"name":"uint64","nodeType":"ElementaryTypeName","src":"28458:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":54972,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54969,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28484:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28493:23:88","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50349,"src":"28484:32:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":54971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28484:34:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"28457:61:88"},{"assignments":[54974],"declarations":[{"constant":false,"id":54974,"mutability":"mutable","name":"h","nameLocation":"28537:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28529:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54973,"name":"uint256","nodeType":"ElementaryTypeName","src":"28529:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54982,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54975,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28541:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28550:28:88","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50477,"src":"28541:37:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28541:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54978,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28583:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28592:19:88","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50457,"src":"28583:28:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28583:30:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28541:72:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28529:84:88"},{"assignments":[54985],"declarations":[{"constant":false,"id":54985,"mutability":"mutable","name":"checkpoint","nameLocation":"28650:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28624:36:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":54984,"nodeType":"UserDefinedTypeName","pathNode":{"id":54983,"name":"BottomUpCheckpoint","nameLocations":["28624:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"28624:18:88"},"referencedDeclaration":49932,"src":"28624:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55007,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":54993,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28750:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28742:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54991,"name":"address","nodeType":"ElementaryTypeName","src":"28742:7:88","typeDescriptions":{}}},"id":54994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28742:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54987,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28706:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28715:9:88","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50279,"src":"28706:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28727:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"28706:35:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54996,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28788:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55000,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28835:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28824:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28828:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28824:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28824:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54997,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28814:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28814:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55003,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54968,"src":"28877:13:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28877:17:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":54986,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"28663:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49932_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28696:8:88","28775:11:88","28803:9:88","28852:23:88"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"28663:242:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"28624:281:88"},{"expression":{"arguments":[{"arguments":[{"id":55013,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28932:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28924:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55011,"name":"address","nodeType":"ElementaryTypeName","src":"28924:7:88","typeDescriptions":{}}},"id":55014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28924:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28944:9:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":55008,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28916:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28919:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28916:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55017,"nodeType":"ExpressionStatement","src":"28916:38:88"},{"assignments":[55019],"declarations":[{"constant":false,"id":55019,"mutability":"mutable","name":"hash","nameLocation":"28973:4:88","nodeType":"VariableDeclaration","scope":55092,"src":"28965:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28965:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55026,"initialValue":{"arguments":[{"arguments":[{"id":55023,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29001:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":55021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28990:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28994:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28990:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28990:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55020,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28980:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28980:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28965:48:88"},{"body":{"id":55062,"nodeType":"Block","src":"29056:140:88","statements":[{"assignments":[55038,55040,55042],"declarations":[{"constant":false,"id":55038,"mutability":"mutable","name":"v","nameLocation":"29077:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29071:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55037,"name":"uint8","nodeType":"ElementaryTypeName","src":"29071:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55040,"mutability":"mutable","name":"r","nameLocation":"29088:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29080:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29080:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55042,"mutability":"mutable","name":"s","nameLocation":"29099:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29091:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29091:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55050,"initialValue":{"arguments":[{"baseExpression":{"id":55045,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54948,"src":"29112:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55047,"indexExpression":{"id":55046,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29121:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29112:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55048,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55019,"src":"29125:4:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55043,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29104:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29107:4:88","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"29104:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":55049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29104:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"29070:60:88"},{"expression":{"id":55060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55051,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29144:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55053,"indexExpression":{"id":55052,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29155:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29144:13:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55056,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55040,"src":"29177:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55057,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55042,"src":"29180:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55058,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55038,"src":"29183:1:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29160:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29164:12:88","memberName":"encodePacked","nodeType":"MemberAccess","src":"29160:16:88","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29160:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"29144:41:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55061,"nodeType":"ExpressionStatement","src":"29144:41:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55031,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29044:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55032,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29048:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29044:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55063,"initializationExpression":{"assignments":[55028],"declarations":[{"constant":false,"id":55028,"mutability":"mutable","name":"i","nameLocation":"29037:1:88","nodeType":"VariableDeclaration","scope":55063,"src":"29029:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55027,"name":"uint256","nodeType":"ElementaryTypeName","src":"29029:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55030,"initialValue":{"hexValue":"30","id":55029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29029:13:88"},"loopExpression":{"expression":{"id":55035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29051:3:88","subExpression":{"id":55034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29051:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55036,"nodeType":"ExpressionStatement","src":"29051:3:88"},"nodeType":"ForStatement","src":"29024:172:88"},{"body":{"id":55090,"nodeType":"Block","src":"29238:124:88","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55077,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29261:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55079,"indexExpression":{"id":55078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29272:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29261:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55074,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29252:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29255:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"29252:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29252:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55081,"nodeType":"ExpressionStatement","src":"29252:23:88"},{"expression":{"arguments":[{"id":55085,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29316:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55086,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29328:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55087,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29340:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":55082,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"29289:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":55084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29299:16:88","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":51154,"src":"29289:26:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":55088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29289:62:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55089,"nodeType":"ExpressionStatement","src":"29289:62:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55068,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29226:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55069,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29230:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29226:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55091,"initializationExpression":{"assignments":[55065],"declarations":[{"constant":false,"id":55065,"mutability":"mutable","name":"i","nameLocation":"29219:1:88","nodeType":"VariableDeclaration","scope":55091,"src":"29211:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55064,"name":"uint256","nodeType":"ElementaryTypeName","src":"29211:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55067,"initialValue":{"hexValue":"30","id":55066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29223:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29211:13:88"},"loopExpression":{"expression":{"id":55072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29233:3:88","subExpression":{"id":55071,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29233:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55073,"nodeType":"ExpressionStatement","src":"29233:3:88"},"nodeType":"ForStatement","src":"29206:156:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"28275:13:88","parameters":{"id":54949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54945,"mutability":"mutable","name":"validators","nameLocation":"28306:10:88","nodeType":"VariableDeclaration","scope":55093,"src":"28289:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54943,"name":"address","nodeType":"ElementaryTypeName","src":"28289:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54944,"nodeType":"ArrayTypeName","src":"28289:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":54948,"mutability":"mutable","name":"privKeys","nameLocation":"28335:8:88","nodeType":"VariableDeclaration","scope":55093,"src":"28318:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54946,"name":"uint256","nodeType":"ElementaryTypeName","src":"28318:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54947,"nodeType":"ArrayTypeName","src":"28318:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"28288:56:88"},"returnParameters":{"id":54950,"nodeType":"ParameterList","parameters":[],"src":"28354:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55128,"nodeType":"FunctionDefinition","src":"29374:305:88","nodes":[],"body":{"id":55127,"nodeType":"Block","src":"29421:258:88","nodes":[],"statements":[{"assignments":[55099],"declarations":[{"constant":false,"id":55099,"mutability":"mutable","name":"expectedNonce","nameLocation":"29439:13:88","nodeType":"VariableDeclaration","scope":55127,"src":"29431:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55098,"name":"uint256","nodeType":"ElementaryTypeName","src":"29431:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55105,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55100,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29455:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29464:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29455:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29455:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29482:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29455:28:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"29431:52:88"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55113,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29555:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29559:6:88","memberName":"sender","nodeType":"MemberAccess","src":"29555:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55111,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"29533:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":55112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29550:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"29533:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":55115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29533:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":55106,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29493:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29503:7:88","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"29493:17:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55109,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55095,"src":"29518:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29493:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29493:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55117,"nodeType":"ExpressionStatement","src":"29493:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55119,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29585:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29594:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29585:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29585:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55122,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55099,"src":"29613:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29585:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29628:43:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":55118,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29577:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29577:95:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55126,"nodeType":"ExpressionStatement","src":"29577:95:88"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"29383:7:88","parameters":{"id":55096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55095,"mutability":"mutable","name":"releaseAmount","nameLocation":"29399:13:88","nodeType":"VariableDeclaration","scope":55128,"src":"29391:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55094,"name":"uint256","nodeType":"ElementaryTypeName","src":"29391:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29390:23:88"},"returnParameters":{"id":55097,"nodeType":"ParameterList","parameters":[],"src":"29421:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55183,"nodeType":"FunctionDefinition","src":"29685:536:88","nodes":[],"body":{"id":55182,"nodeType":"Block","src":"29754:467:88","nodes":[],"statements":[{"assignments":[55136],"declarations":[{"constant":false,"id":55136,"mutability":"mutable","name":"balanceBefore","nameLocation":"29772:13:88","nodeType":"VariableDeclaration","scope":55182,"src":"29764:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55135,"name":"uint256","nodeType":"ElementaryTypeName","src":"29764:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55139,"initialValue":{"expression":{"id":55137,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29788:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29802:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29788:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29764:45:88"},{"assignments":[null,55141,null,null,null],"declarations":[null,{"constant":false,"id":55141,"mutability":"mutable","name":"stakedBefore","nameLocation":"29831:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29823:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55140,"name":"uint256","nodeType":"ElementaryTypeName","src":"29823:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55145,"initialValue":{"arguments":[{"id":55143,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29863:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55142,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"29853:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29853:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29820:57:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55146,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29888:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29898:8:88","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"29888:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55149,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"29914:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29888:38:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29888:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55152,"nodeType":"ExpressionStatement","src":"29888:40:88"},{"assignments":[55154],"declarations":[{"constant":false,"id":55154,"mutability":"mutable","name":"balanceAfter","nameLocation":"29947:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29939:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55153,"name":"uint256","nodeType":"ElementaryTypeName","src":"29939:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55157,"initialValue":{"expression":{"id":55155,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29962:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29976:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29962:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29939:44:88"},{"assignments":[null,55159,null,null,null],"declarations":[null,{"constant":false,"id":55159,"mutability":"mutable","name":"stakedAfter","nameLocation":"30004:11:88","nodeType":"VariableDeclaration","scope":55182,"src":"29996:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55158,"name":"uint256","nodeType":"ElementaryTypeName","src":"29996:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55163,"initialValue":{"arguments":[{"id":55161,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"30035:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55160,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"30025:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30025:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29993:56:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55165,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55154,"src":"30068:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55166,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55136,"src":"30084:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55167,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30100:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30084:27:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30068:43:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30113:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":55164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30060:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30060:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55172,"nodeType":"ExpressionStatement","src":"30060:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55174,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55159,"src":"30152:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55175,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55141,"src":"30167:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55176,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30182:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30167:26:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30152:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30195:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30144:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30144:70:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55181,"nodeType":"ExpressionStatement","src":"30144:70:88"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"29694:8:88","parameters":{"id":55133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55130,"mutability":"mutable","name":"stakeAmount","nameLocation":"29711:11:88","nodeType":"VariableDeclaration","scope":55183,"src":"29703:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55129,"name":"uint256","nodeType":"ElementaryTypeName","src":"29703:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55132,"mutability":"mutable","name":"subnetAddress","nameLocation":"29732:13:88","nodeType":"VariableDeclaration","scope":55183,"src":"29724:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55131,"name":"address","nodeType":"ElementaryTypeName","src":"29724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29702:44:88"},"returnParameters":{"id":55134,"nodeType":"ParameterList","parameters":[],"src":"29754:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55268,"nodeType":"FunctionDefinition","src":"30227:813:88","nodes":[],"body":{"id":55267,"nodeType":"Block","src":"30322:718:88","nodes":[],"statements":[{"assignments":[55195],"declarations":[{"constant":false,"id":55195,"mutability":"mutable","name":"manager","nameLocation":"30352:7:88","nodeType":"VariableDeclaration","scope":55267,"src":"30332:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55194,"nodeType":"UserDefinedTypeName","pathNode":{"id":55193,"name":"GatewayManagerFacet","nameLocations":["30332:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"30332:19:88"},"referencedDeclaration":38870,"src":"30332:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55202,"initialValue":{"arguments":[{"arguments":[{"id":55199,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30390:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30382:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55197,"name":"address","nodeType":"ElementaryTypeName","src":"30382:7:88","typeDescriptions":{}}},"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30382:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55196,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"30362:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30362:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"30332:62:88"},{"expression":{"arguments":[{"hexValue":"30","id":55208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30441:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":55203,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55195,"src":"30405:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30413:8:88","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"30405:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55206,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30429:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"30405:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30405:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55210,"nodeType":"ExpressionStatement","src":"30405:38:88"},{"assignments":[55213,55215,55217,null,55219],"declarations":[{"constant":false,"id":55213,"mutability":"mutable","name":"id","nameLocation":"30471:2:88","nodeType":"VariableDeclaration","scope":55267,"src":"30455:18:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55212,"nodeType":"UserDefinedTypeName","pathNode":{"id":55211,"name":"SubnetID","nameLocations":["30455:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30455:8:88"},"referencedDeclaration":50077,"src":"30455:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55215,"mutability":"mutable","name":"stake","nameLocation":"30483:5:88","nodeType":"VariableDeclaration","scope":55267,"src":"30475:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55214,"name":"uint256","nodeType":"ElementaryTypeName","src":"30475:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55217,"mutability":"mutable","name":"topDownNonce","nameLocation":"30498:12:88","nodeType":"VariableDeclaration","scope":55267,"src":"30490:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55216,"name":"uint256","nodeType":"ElementaryTypeName","src":"30490:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55219,"mutability":"mutable","name":"circSupply","nameLocation":"30522:10:88","nodeType":"VariableDeclaration","scope":55267,"src":"30514:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55218,"name":"uint256","nodeType":"ElementaryTypeName","src":"30514:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55224,"initialValue":{"arguments":[{"id":55221,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30561:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55222,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30588:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55220,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"30536:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30536:64:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"30454:146:88"},{"assignments":[55227],"declarations":[{"constant":false,"id":55227,"mutability":"mutable","name":"parentNetwork","nameLocation":"30627:13:88","nodeType":"VariableDeclaration","scope":55267,"src":"30611:29:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55226,"nodeType":"UserDefinedTypeName","pathNode":{"id":55225,"name":"SubnetID","nameLocations":["30611:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30611:8:88"},"referencedDeclaration":50077,"src":"30611:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55228,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"30643:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30652:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"30643:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30643:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"30611:57:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55233,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55213,"src":"30700:2:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30703:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30700:9:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30700:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55238,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30744:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55236,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55227,"src":"30715:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30729:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"30715:28:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30759:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30715:50:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:52:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"30700:67:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30781:69:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":55232,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30679:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30679:181:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55245,"nodeType":"ExpressionStatement","src":"30679:181:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55247,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55215,"src":"30878:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55248,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30887:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30878:19:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30899:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55246,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30870:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30870:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55252,"nodeType":"ExpressionStatement","src":"30870:48:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55254,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55217,"src":"30936:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30952:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30936:17:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30955:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55253,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30928:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55259,"nodeType":"ExpressionStatement","src":"30928:46:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55261,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55219,"src":"30992:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31006:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30992:15:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31009:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30984:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30984:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55266,"nodeType":"ExpressionStatement","src":"30984:49:88"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"30236:16:88","parameters":{"id":55191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55185,"mutability":"mutable","name":"collateral","nameLocation":"30261:10:88","nodeType":"VariableDeclaration","scope":55268,"src":"30253:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55184,"name":"uint256","nodeType":"ElementaryTypeName","src":"30253:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55187,"mutability":"mutable","name":"subnetAddress","nameLocation":"30281:13:88","nodeType":"VariableDeclaration","scope":55268,"src":"30273:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55186,"name":"address","nodeType":"ElementaryTypeName","src":"30273:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55190,"mutability":"mutable","name":"gw","nameLocation":"30311:2:88","nodeType":"VariableDeclaration","scope":55268,"src":"30296:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55189,"nodeType":"UserDefinedTypeName","pathNode":{"id":55188,"name":"GatewayDiamond","nameLocations":["30296:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"30296:14:88"},"referencedDeclaration":36170,"src":"30296:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"30252:62:88"},"returnParameters":{"id":55192,"nodeType":"ParameterList","parameters":[],"src":"30322:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55282,"nodeType":"FunctionDefinition","src":"31046:150:88","nodes":[],"body":{"id":55281,"nodeType":"Block","src":"31120:76:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55276,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55270,"src":"31147:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55277,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55272,"src":"31159:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55278,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31174:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55275,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55268,"src":"31130:16:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31130:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55280,"nodeType":"ExpressionStatement","src":"31130:59:88"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"31055:14:88","parameters":{"id":55273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55270,"mutability":"mutable","name":"collateral","nameLocation":"31078:10:88","nodeType":"VariableDeclaration","scope":55282,"src":"31070:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55269,"name":"uint256","nodeType":"ElementaryTypeName","src":"31070:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55272,"mutability":"mutable","name":"subnetAddress","nameLocation":"31098:13:88","nodeType":"VariableDeclaration","scope":55282,"src":"31090:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55271,"name":"address","nodeType":"ElementaryTypeName","src":"31090:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31069:43:88"},"returnParameters":{"id":55274,"nodeType":"ParameterList","parameters":[],"src":"31120:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55352,"nodeType":"FunctionDefinition","src":"31202:541:88","nodes":[],"body":{"id":55351,"nodeType":"Block","src":"31356:387:88","nodes":[],"statements":[{"expression":{"id":55308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55301,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"31366:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55305,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31406:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55303,"name":"address","nodeType":"ElementaryTypeName","src":"31398:7:88","typeDescriptions":{}}},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55302,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"31378:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31378:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"31366:44:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55309,"nodeType":"ExpressionStatement","src":"31366:44:88"},{"expression":{"id":55317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55310,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31420:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55314,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31458:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31450:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55312,"name":"address","nodeType":"ElementaryTypeName","src":"31450:7:88","typeDescriptions":{}}},"id":55315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31450:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55311,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"31431:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31431:31:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"31420:42:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55318,"nodeType":"ExpressionStatement","src":"31420:42:88"},{"assignments":[55321],"declarations":[{"constant":false,"id":55321,"mutability":"mutable","name":"subnetId","nameLocation":"31489:8:88","nodeType":"VariableDeclaration","scope":55351,"src":"31473:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55320,"nodeType":"UserDefinedTypeName","pathNode":{"id":55319,"name":"SubnetID","nameLocations":["31473:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31473:8:88"},"referencedDeclaration":50077,"src":"31473:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55328,"initialValue":{"arguments":[{"id":55326,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55284,"src":"31541:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55322,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31500:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31509:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"31500:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31526:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"31500:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"31473:82:88"},{"assignments":[55331],"declarations":[{"constant":false,"id":55331,"mutability":"mutable","name":"subnet","nameLocation":"31580:6:88","nodeType":"VariableDeclaration","scope":55351,"src":"31566:20:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55330,"nodeType":"UserDefinedTypeName","pathNode":{"id":55329,"name":"Subnet","nameLocations":["31566:6:88"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"31566:6:88"},"referencedDeclaration":50091,"src":"31566:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55338,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55334,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55321,"src":"31606:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31615:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"31606:15:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31606:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55332,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31589:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31598:7:88","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"31589:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$50091_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":55337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31589:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"31566:58:88"},{"expression":{"components":[{"expression":{"id":55339,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31643:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31650:2:88","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"31643:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55341,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31654:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31661:5:88","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"31654:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55343,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31668:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31675:12:88","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"31668:19:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55345,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31689:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31696:20:88","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"31689:27:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55347,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31718:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31725:10:88","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"31718:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31642:94:88","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256)"}},"functionReturnParameters":55300,"id":55350,"nodeType":"Return","src":"31635:101:88"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"31211:11:88","parameters":{"id":55288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55284,"mutability":"mutable","name":"subnetAddress","nameLocation":"31240:13:88","nodeType":"VariableDeclaration","scope":55352,"src":"31232:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55283,"name":"address","nodeType":"ElementaryTypeName","src":"31232:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55287,"mutability":"mutable","name":"gw","nameLocation":"31278:2:88","nodeType":"VariableDeclaration","scope":55352,"src":"31263:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55286,"nodeType":"UserDefinedTypeName","pathNode":{"id":55285,"name":"GatewayDiamond","nameLocations":["31263:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"31263:14:88"},"referencedDeclaration":36170,"src":"31263:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"31222:64:88"},"returnParameters":{"id":55300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31303:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55290,"nodeType":"UserDefinedTypeName","pathNode":{"id":55289,"name":"SubnetID","nameLocations":["31303:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31303:8:88"},"referencedDeclaration":50077,"src":"31303:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31320:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55292,"name":"uint256","nodeType":"ElementaryTypeName","src":"31320:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31329:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55294,"name":"uint256","nodeType":"ElementaryTypeName","src":"31329:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31338:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55296,"name":"uint256","nodeType":"ElementaryTypeName","src":"31338:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31347:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55298,"name":"uint256","nodeType":"ElementaryTypeName","src":"31347:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31302:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55374,"nodeType":"FunctionDefinition","src":"31749:177:88","nodes":[],"body":{"id":55373,"nodeType":"Block","src":"31860:66:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55369,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55354,"src":"31889:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55370,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31904:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55368,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"31877:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31877:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":55367,"id":55372,"nodeType":"Return","src":"31870:49:88"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"31758:9:88","parameters":{"id":55355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55354,"mutability":"mutable","name":"subnetAddress","nameLocation":"31776:13:88","nodeType":"VariableDeclaration","scope":55374,"src":"31768:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55353,"name":"address","nodeType":"ElementaryTypeName","src":"31768:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31767:23:88"},"returnParameters":{"id":55367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31807:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55357,"nodeType":"UserDefinedTypeName","pathNode":{"id":55356,"name":"SubnetID","nameLocations":["31807:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31807:8:88"},"referencedDeclaration":50077,"src":"31807:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31824:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55359,"name":"uint256","nodeType":"ElementaryTypeName","src":"31824:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31833:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55361,"name":"uint256","nodeType":"ElementaryTypeName","src":"31833:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31842:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55363,"name":"uint256","nodeType":"ElementaryTypeName","src":"31842:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31851:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55365,"name":"uint256","nodeType":"ElementaryTypeName","src":"31851:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31806:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53038,"name":"Test","nameLocations":["8694:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"8694:4:88"},"id":53039,"nodeType":"InheritanceSpecifier","src":"8694:4:88"},{"baseName":{"id":53040,"name":"TestParams","nameLocations":["8700:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"8700:10:88"},"id":53041,"nodeType":"InheritanceSpecifier","src":"8700:10:88"},{"baseName":{"id":53042,"name":"TestRegistry","nameLocations":["8712:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":52747,"src":"8712:12:88"},"id":53043,"nodeType":"InheritanceSpecifier","src":"8712:12:88"},{"baseName":{"id":53044,"name":"TestSubnetActor","nameLocations":["8726:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":53037,"src":"8726:15:88"},"id":53045,"nodeType":"InheritanceSpecifier","src":"8726:15:88"},{"baseName":{"id":53046,"name":"TestGatewayActor","nameLocations":["8743:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":52912,"src":"8743:16:88"},"id":53047,"nodeType":"InheritanceSpecifier","src":"8743:16:88"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50887,52151,52279,52517,57957],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55375,52912,53037,52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"8671:19:88","scope":55376,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":88} \ No newline at end of file diff --git a/.out/IntegrationTestBase.sol/TestGatewayActor.json b/.out/IntegrationTestBase.sol/TestGatewayActor.json index c7d3d9a9b..8630e7df5 100644 --- a/.out/IntegrationTestBase.sol/TestGatewayActor.json +++ b/.out/IntegrationTestBase.sol/TestGatewayActor.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"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":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"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":"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":"0x608080604052346200089057600160ff198181600054161760005560045416176004556200002d8162001043565b601281527111d85d195dd85e549bdd5d195c919858d95d60721b6020820152604051906200005b826200105f565b6003825260005b606090818110156200007e576020918282860101520162000062565b50506040516200008e8162001043565b6007815266707974686f6e3360c81b6020820152620000ad83620010d3565b52620000b982620010d3565b50604051620000c88162001043565b601f81526000805160206200208a8339815191526020820152620000ec83620010f7565b52620000f882620010f7565b50620001048262001108565b52620001108162001108565b5060405190638916046760e01b825281602481016020600483015282518091526044820190602060448260051b8501019401916000905b82821062000ffc57846000818089038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af19081156200091b5760009162000f76575b50805181019060208183031262000890576020810151906001600160401b038211620008905760208301603f838301011215620008905760208282010151620001c981620010bb565b92620001d960405194856200107b565b8184526020840192602084960160408460051b848401010111620008905780820160400193915b60408460051b8284010101851062000f4c578551876001600160401b03821162000850576801000000000000000082116200085057601b5482601b5580831062000ec4575b5090601b60005260206000209060005b8160031c811062000e745750600719811680820362000e1a575b50505050620002aa604051620002858162001043565b601281527111d85d195dd85e51d95d1d195c919858d95d60721b60208201526200113e565b8051906001600160401b03821162000850576801000000000000000082116200085057601d5482601d5580831062000d91575b5060200190601d60005260206000209060005b8160031c811062000d415750600719811680820362000ce7575b5050505062000350604051620003208162001043565b601381527f476174657761794d616e6167657246616365740000000000000000000000000060208201526200113e565b8051906001600160401b03821162000850576801000000000000000082116200085057601c5482601c5580831062000c7b575b5060200190601c60005260206000209060005b8160031c811062000c2b57506007198116810362000bd2575b505050620003f4604051620003c48162001043565b601581527f476174657761794d657373656e6765724661636574000000000000000000000060208201526200113e565b8051906001600160401b03821162000850576801000000000000000082116200085057601e5482601e5580831062000b49575b5060200190601e60005260206000209060005b8160031c811062000af957506007198116810362000aa0575b5050506200048a604051620004688162001043565b600f81526e111a585b5bdb9910dd5d119858d95d608a1b60208201526200113e565b8051906001600160401b03821162000850576801000000000000000082116200085057601f5482601f5580831062000a17575b5060200190601f60005260206000209060005b8160031c8110620009c75750600719811681036200096e575b505050604051620004fa8162001043565b6011815270111a585b5bdb99131bdd5c19519858d95d607a1b60208201526040519062000527826200105f565b6003825260005b60608110156200054a578060606020809386010152016200052e565b50604051620005598162001043565b6007815266707974686f6e3360c81b60208201526200057883620010d3565b526200058482620010d3565b50604051620005938162001043565b601f81526000805160206200208a8339815191526020820152620005b783620010f7565b52620005c382620010f7565b50620005cf8262001108565b52620005db8162001108565b5060405190638916046760e01b825281602481016020600483015282518091526044820190602060448260051b8501019401916000905b8282106200092757846000818089038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af19081156200091b5760009162000895575b50805181019060208181840193031262000890576020810151906001600160401b038211620008905782603f8383010112156200089057602082820101516200069481620010bb565b92620006a460405194856200107b565b8184526020840192839560408460051b848401010111620008905780820160400193915b60408460051b8284010101851062000866578551876001600160401b0382116200085057680100000000000000008211620008505760205482602055808310620007ed575b5090602060005260206000208160031c9160005b8381106200079d5750600719811690038062000748575b604051610c8e9081620013fc8239f35b9260009360005b818110620007665750505001558080808062000738565b909194602062000792600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200074f565b6000805b60088110620007b857508382015560010162000721565b95906020620007e3600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601620007a1565b60206000526020600020600780850160031c8201920160031c0190601c8460021b168062000834575b505b8181106200082757506200070d565b6000815560010162000818565b600019908183019182549160200360031b1c1690558462000816565b634e487b7160e01b600052604160045260246000fd5b8451926001600160e01b0319841684036200089057602081604095829352019501949250620006c8565b600080fd5b90503d806000833e620008a981836200107b565b81019060208183031262000890578051906001600160401b03821162000890570181601f8201121562000890578051620008e3816200109f565b92620008f360405194856200107b565b81845260208284010111620008905762000914916020808501910162001119565b816200064b565b6040513d6000823e3d90fd5b9193509193602080806001936043198a82030186528851620009558151809281855285808601910162001119565b601f801991011601019601920192018593919262000612565b60009260005b6007198316830381106200099257505060031c0155808080620004e9565b90936020620009bd600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000974565b6000805b60088110620009e2575083820155600101620004d0565b9490602062000a0d600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620009cb565b601f6000527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807600284901b601c168062000a7c575b506007840160031c81015b6007830160031c8201811062000a6f575050620004bd565b6000815560010162000a57565b60001990816007870160031c8401019182549160200360031b1c1690558462000a4c565b60009260005b60071983168303811062000ac457505060031c015580808062000453565b9093602062000aef600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000aa6565b6000805b6008811062000b145750838201556001016200043a565b9490602062000b3f600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000afd565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c168062000bae575b506007840160031c81015b6007830160031c8201811062000ba157505062000427565b6000815560010162000b89565b60001990816007870160031c8401019182549160200360031b1c1690558462000b7e565b60009260005b60071983168303811062000bf657505060031c0155808080620003af565b9093602062000c21600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000bd8565b6000805b6008811062000c4657508382015560010162000396565b9490602062000c71600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000c2f565b601c6000526020600020601c8460021b168062000cc3575b506007840160031c81015b6007830160031c8201811062000cb657505062000383565b6000815560010162000c9e565b60001990816007870160031c8401019182549160200360031b1c1690558462000c93565b9260009360005b818403811062000d0a5750505060031c0155808080806200030a565b909194602062000d36600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000cee565b6000805b6008811062000d5c575083820155600101620002f0565b9490602062000d87600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000d45565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c168062000df6575b506007840160031c81015b6007830160031c8201811062000de9575050620002dd565b6000815560010162000dd1565b60001990816007870160031c8401019182549160200360031b1c1690558462000dc6565b9260009360005b818403811062000e3d5750505060031c0155808080806200026f565b909194602062000e69600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000e21565b6000805b6008811062000e8f57508382015560010162000255565b9490602062000eba600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000e78565b601b6000527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1600284901b601c168062000f28575b50600780850160031c8201920160031c01905b81811062000f1b575062000245565b6000815560010162000f0c565b60001990816007870160031c8401019182549160200360031b1c1690558462000ef9565b8451926001600160e01b031984168403620008905760208160409582935201950194925062000200565b90503d806000833e62000f8a81836200107b565b81019060208183031262000890578051906001600160401b03821162000890570181601f820112156200089057805162000fc4816200109f565b9262000fd460405194856200107b565b81845260208284010111620008905762000ff5916020808501910162001119565b8162000180565b9193509193602080806001936043198a820301865288516200102a8151809281855285808601910162001119565b601f801991011601019601920192018593919262000147565b604081019081106001600160401b038211176200085057604052565b608081019081106001600160401b038211176200085057604052565b601f909101601f19168101906001600160401b038211908210176200085057604052565b6001600160401b0381116200085057601f01601f191660200190565b6001600160401b038111620008505760051b60200190565b805115620010e15760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620010e15760400190565b805160021015620010e15760600190565b60005b8381106200112d5750506000910152565b81810151838201526020016200111c565b6040908151926200114f846200105f565b6003845260005b6060808210156200117257906020918282880101520162001156565b505092825191620011838362001043565b6007835260209266707974686f6e3360c81b84820152620011a483620010d3565b52620011b082620010d3565b50835190620011bf8262001043565b601f918281526000805160206200208a83398151915285820152620011e484620010f7565b52620011f083620010f7565b50620011fc8362001108565b52620012088262001108565b50835191638916046760e01b83528260248101856004830152825180915260448201908660448260051b8501019401916000905b88838310620013b557505050505080600092038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1908115620013aa5760009162001319575b50809150518101908281818401930312620008905780830151906001600160401b0382116200089057019281603f8501121562000890578284015190620012c082620010bb565b94620012cf825196876200107b565b828652818587019360051b820101938411620008905701905b828210620012f7575050505090565b81516001600160e01b03198116810362000890578152908301908301620012e8565b3d8083853e6200132a81856200107b565b8301928481850312620013a6578051906001600160401b038211620013a257019081018313156200139e5780519162001363836200109f565b9362001372875195866200107b565b8385528584840101116200139b575090620013939184808501910162001119565b803862001279565b80fd5b5080fd5b8380fd5b8280fd5b84513d6000823e3d90fd5b80809294965060019395976043198b82030186528851620013e28151809281855285808601910162001119565b8a601f199101160101960192019201869391926200123c56fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea26469706673582212208b77ca5b770a7b91f07babb0d238ed5a62c7e3966b41f7c4ccd7c05706c4f8dc64736f6c63430008130033736372697074732f707974686f6e2f6765745f73656c6563746f72732e707900","sourceMap":"4112:1676:81:-:0;;;;;;;1594:4:2;4112:1676:81;;;;1594:4:2;4112:1676:81;;;1594:4:2;4112:1676:81;3201:4:5;4112:1676:81;;;3201:4:5;4112:1676:81;1220:14:3;;;:::i;:::-;;;;-1:-1:-1;;;1220:14:3;;;;4112:1676:81;;1220:14:3;;;;:::i;:::-;1461:1:86;4112:1676:81;;1594:4:2;4112:1676:81;;;;;;;;;1220:14:3;4112:1676:81;;;;;;;;;;;;;;;1220:14:3;;;:::i;:::-;4112:1676:81;1220:14:3;;-1:-1:-1;;;1220:14:3;4112:1676:81;;;1473:21:86;;;:::i;:::-;4112:1676:81;1473:21:86;;;:::i;:::-;;4112:1676:81;;1220:14:3;;;:::i;:::-;4112:1676:81;1220:14:3;;-1:-1:-1;;;;;;;;;;;1220:14:3;4112:1676:81;;;1504:45:86;;;:::i;:::-;4112:1676:81;1504:45:86;;;:::i;:::-;;1559:21;;;:::i;:::-;;;;;:::i;:::-;;4112:1676:81;;1220:14:3;;;;1610::86;;4112:1676:81;;;;1220:14:3;3201:4:5;1610:14:86;;4112:1676:81;1220:14:3;;4112:1676:81;;;;;;;1220:14:3;4112:1676:81;;;;;;;;;;1594:4:2;4112:1676:81;;;;;;;1610:14:86;1594:4:2;1610:14:86;;;;;;4112:1676:81;1610:14:86;;;;;;;1594:4:2;1610:14:86;;;4112:1676:81;1220:14:3;;;1651:27:86;;4112:1676:81;1220:14:3;4112:1676:81;;;;;;1220:14:3;1651:27:86;;4112:1676:81;;-1:-1:-1;;;;;4112:1676:81;;;;1220:14:3;1651:27:86;;4112:1676:81;;;;;;;;;1220:14:3;4112:1676:81;;;;;;;;:::i;:::-;;1220:14:3;4112:1676:81;;1220:14:3;;;:::i;:::-;4112:1676:81;;;1220:14:3;4112:1676:81;;;1220:14:3;4112:1676:81;1651:27:86;;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;;;4112:1676:81;1220:14:3;;;;4622:73:81;1220:14:3;;4622:73:81;1220:14:3;;;;;;4112:1676:81;1220:14:3;;4622:73:81;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;1461:1:86;1220:14:3;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;4112:1676:81;;;;4725:53;4112:1676;;1220:14:3;;;:::i;:::-;;;;-1:-1:-1;;;1220:14:3;;;;4725:53:81;:::i;:::-;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;;;4112:1676:81;1220:14:3;;;;4705:73:81;1220:14:3;;4705:73:81;1220:14:3;;;;;;;;;;;4705:73:81;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;1461:1:86;1220:14:3;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;4112:1676:81;;;;4809:54;4112:1676;;1220:14:3;;;:::i;:::-;;;;;;;;;4809:54:81;:::i;:::-;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;;;4112:1676:81;1220:14:3;;;;4788:75:81;1220:14:3;;4788:75:81;1220:14:3;;;;;;;;;;;4788:75:81;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;1461:1:86;1220:14:3;;;;;-1:-1:-1;;;1220:14:3;;;;;;;4112:1676:81;;;4896:56;4112:1676;;1220:14:3;;;:::i;:::-;;;;;;;;;4896:56:81;:::i;:::-;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;;;4112:1676:81;1220:14:3;;;;4873:79:81;1220:14:3;;4873:79:81;1220:14:3;;;;;;;;;;;4873:79:81;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;1461:1:86;1220:14:3;;;;;-1:-1:-1;;;1220:14:3;;;;;;;4112:1676:81;;;4982:50;4112:1676;;1220:14:3;;;:::i;:::-;;;;-1:-1:-1;;;1220:14:3;;;;4982:50:81;:::i;:::-;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;;;4112:1676:81;1220:14:3;;;;4112:1676:81;1220:14:3;;4112:1676:81;1220:14:3;;;;;;;;;;;4112:1676:81;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;1461:1:86;1220:14:3;;;;;-1:-1:-1;;;1220:14:3;;;;;;;4112:1676:81;;;;;1220:14:3;;;:::i;:::-;;;;-1:-1:-1;;;1220:14:3;;;;4112:1676:81;;1220:14:3;;;;:::i;:::-;1461:1:86;4112:1676:81;;1594:4:2;4112:1676:81;;;;;;;;;1220:14:3;4112:1676:81;;;;;;;;;;;;;1220:14:3;;;:::i;:::-;4112:1676:81;1220:14:3;;-1:-1:-1;;;1220:14:3;4112:1676:81;;;1473:21:86;;;:::i;:::-;4112:1676:81;1473:21:86;;;:::i;:::-;;4112:1676:81;;1220:14:3;;;:::i;:::-;4112:1676:81;1220:14:3;;-1:-1:-1;;;;;;;;;;;1220:14:3;4112:1676:81;;;1504:45:86;;;:::i;:::-;4112:1676:81;1504:45:86;;;:::i;:::-;;1559:21;;;:::i;:::-;;;;;:::i;:::-;;4112:1676:81;;1220:14:3;;;;1610::86;;4112:1676:81;;;;1220:14:3;3201:4:5;1610:14:86;;4112:1676:81;1220:14:3;;4112:1676:81;;;;;;;1220:14:3;4112:1676:81;;;;;;;;;;1594:4:2;4112:1676:81;;;;;;;1610:14:86;1594:4:2;1610:14:86;;;;;;4112:1676:81;1610:14:86;;;;;;;1594:4:2;1610:14:86;;;4112:1676:81;1220:14:3;;;1651:27:86;;;1220:14:3;1651:27:86;;;;4112:1676:81;;;;;1220:14:3;1651:27:86;;4112:1676:81;;-1:-1:-1;;;;;4112:1676:81;;;;;;;;;;;;;;1220:14:3;4112:1676:81;;;;;;;;:::i;:::-;;1220:14:3;4112:1676:81;;1220:14:3;;;:::i;:::-;4112:1676:81;;;1220:14:3;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;;;4112:1676:81;1220:14:3;;;;;;;;;;;;;;4112:1676:81;1220:14:3;;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;1461:1:86;1220:14:3;;1594:4:2;1220:14:3;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;4112:1676:81;;;;;;;;;1220:14:3;;1594:4:2;1220:14:3;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;1220:14:3;;;;;;-1:-1:-1;1220:14:3;;;;1594:4:2;1220:14:3;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;4112:1676:81;1220:14:3;;;1461:1:86;1220:14:3;;;;;1461:1:86;1220:14:3;;;4788:75:81;1220:14:3;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;1461:1:86;1220:14:3;;;;;;;;;;;;1594:4:2;1220:14:3;;3201:4:5;1220:14:3;4112:1676:81;1594:4:2;1220:14:3;4112:1676:81;;;;-1:-1:-1;;;;;;1220:14:3;;4112:1676:81;;;;1220:14:3;4112:1676:81;;;;;;;;;;;;;;;1594:4:2;4112:1676:81;;1610:14:86;;;;;1594:4:2;1610:14:86;;;;;;:::i;:::-;;;4112:1676:81;1220:14:3;4112:1676:81;;;;;;;;;-1:-1:-1;;;;;4112:1676:81;;;;;;;;;;;;;;;;;;:::i;:::-;;1220:14:3;4112:1676:81;;1220:14:3;;;:::i;:::-;4112:1676:81;;;1220:14:3;4112:1676:81;;;;;;;;;1220:14:3;4112:1676:81;;;;;;:::i;:::-;1610:14:86;;;;4112:1676:81;;;1594:4:2;4112:1676:81;;;;;;;;;;;1220:14:3;4112:1676:81;;1594:4:2;4112:1676:81;;;;;;;;;;;;1220:14:3;;4112:1676:81;;;;;;;;;;;;:::i;:::-;;;;1220:14:3;;;4112:1676:81;;;;;;;;;;;;;;1220:14:3;1594:4:2;1220:14:3;1594:4:2;1220:14:3;-1:-1:-1;;1220:14:3;;;;;;;;;;1461:1:86;1220:14:3;;;;;;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;1220:14:3;;;;;;-1:-1:-1;1220:14:3;;;;1594:4:2;1220:14:3;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4112:1676:81;1594:4:2;1220:14:3;;;;;;4788:75:81;1220:14:3;;;;;;4112:1676:81;1220:14:3;;1461:1:86;1220:14:3;;;;4112:1676:81;1220:14:3;;1461:1:86;1220:14:3;;;;;;;;;;;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;4112:1676:81;1220:14:3;;1461:1:86;1220:14:3;;;;;;;;;;1461:1:86;1220:14:3;;;;;;;;;1594:4:2;1220:14:3;1594:4:2;1220:14:3;-1:-1:-1;;1220:14:3;;;;;;;;;;1461:1:86;1220:14:3;;;;;;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;1220:14:3;;;;;;-1:-1:-1;1220:14:3;;;;1594:4:2;1220:14:3;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4873:79:81;1594:4:2;1220:14:3;;;;;;4788:75:81;1220:14:3;;;;;;4112:1676:81;1220:14:3;;1461:1:86;1220:14:3;;;;4112:1676:81;1220:14:3;;1461:1:86;1220:14:3;;;;;;;;;;;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;4112:1676:81;1220:14:3;;1461:1:86;1220:14:3;;;;;;;;;;1461:1:86;1220:14:3;;;;;;;;;1594:4:2;1220:14:3;1594:4:2;1220:14:3;-1:-1:-1;;1220:14:3;;;;;;;;;;1461:1:86;1220:14:3;;;;;;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;1220:14:3;;;;;;-1:-1:-1;1220:14:3;;;;1594:4:2;1220:14:3;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4788:75:81;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;4788:75:81;1220:14:3;;;;;;;;;4112:1676:81;1220:14:3;;1461:1:86;1220:14:3;;;;4112:1676:81;1220:14:3;;1461:1:86;1220:14:3;;;;;;;;;;;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;4112:1676:81;1220:14:3;;1461:1:86;1220:14:3;;;;;;;;;;1461:1:86;1220:14:3;;;;;;;;;;1594:4:2;1220:14:3;1594:4:2;1220:14:3;;;;;;;;;;;1461:1:86;1220:14:3;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;1220:14:3;;;;;;-1:-1:-1;1220:14:3;;;;1594:4:2;1220:14:3;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4705:73:81;1594:4:2;1220:14:3;;;;;;;;;;;;;4112:1676:81;1220:14:3;;1461:1:86;1220:14:3;;;;4112:1676:81;1220:14:3;;1461:1:86;1220:14:3;;;;;;;;;;;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;4112:1676:81;1220:14:3;;1461:1:86;1220:14:3;;;;;;;;;;1461:1:86;1220:14:3;;;;;;;;;;1594:4:2;1220:14:3;1594:4:2;1220:14:3;;;;;;;;;;;1461:1:86;1220:14:3;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;1220:14:3;;;;;;-1:-1:-1;1220:14:3;;;;1594:4:2;1220:14:3;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4622:73:81;1594:4:2;1220:14:3;;;;;;;;;;;;;4112:1676:81;1220:14:3;;;1461:1:86;1220:14:3;;;;;1461:1:86;1220:14:3;;;;;;;;;;;;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;4112:1676:81;1220:14:3;;1461:1:86;1220:14:3;;;;;;;;;;1461:1:86;1220:14:3;;;;;;;;4112:1676:81;;;;-1:-1:-1;;;;;;1220:14:3;;4112:1676:81;;;;1220:14:3;4112:1676:81;;;;;;;;;;;;;;1610:14:86;;;;;1594:4:2;1610:14:86;;;;;;:::i;:::-;;;4112:1676:81;1220:14:3;4112:1676:81;;;;;;;;;-1:-1:-1;;;;;4112:1676:81;;;;;;;;;;;;;;;;;;:::i;:::-;;1220:14:3;4112:1676:81;;1220:14:3;;;:::i;:::-;4112:1676:81;;;1220:14:3;4112:1676:81;;;;;;;;;1220:14:3;4112:1676:81;;;;;;:::i;:::-;1610:14:86;;;4112:1676:81;;;;;;1220:14:3;4112:1676:81;;1594:4:2;4112:1676:81;;;;;;;;;;;;1220:14:3;;4112:1676:81;;;;;;;;;;;;:::i;:::-;;;;1220:14:3;;;4112:1676:81;;;;;;;;;;;;;;1220:14:3;4112:1676:81;1220:14:3;;;;;-1:-1:-1;;;;;1220:14:3;;;;;4112:1676:81;1220:14:3;:::o;:::-;4112:1676:81;1220:14:3;;;;;-1:-1:-1;;;;;1220:14:3;;;;;4112:1676:81;1220:14:3;:::o;:::-;4112:1676:81;1220:14:3;;;-1:-1:-1;;1220:14:3;;;;-1:-1:-1;;;;;1220:14:3;;;;;;;;4112:1676:81;1220:14:3;:::o;:::-;-1:-1:-1;;;;;1220:14:3;;;;4112:1676:81;1220:14:3;-1:-1:-1;;1220:14:3;;;;:::o;4112:1676:81:-;-1:-1:-1;;;;;4112:1676:81;;;;;;;;;:::o;:::-;1220:14:3;;4112:1676:81;;;;;;:::o;:::-;1220:14:3;;;4112:1676:81;;;;;;;;;1220:14:3;;1511:1:86;4112:1676:81;;;;;;;:::o;:::-;1220:14:3;;1566:1:86;4112:1676:81;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;4112:1676:81;;;;:::o;:::-;;;;;;;;;;;;;1304:381:86;4112:1676:81;;;;1220:14:3;;;;:::i;:::-;1461:1:86;4112:1676:81;;-1:-1:-1;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;1220:14:3;;;;:::i;:::-;4112:1676:81;1220:14:3;;4112:1676:81;;-1:-1:-1;;;4112:1676:81;;;;1473:21:86;;;:::i;:::-;4112:1676:81;1473:21:86;;;:::i;:::-;;4112:1676:81;;1220:14:3;;;;:::i;:::-;4112:1676:81;1220:14:3;;;;-1:-1:-1;;;;;;;;;;;4112:1676:81;;;;1504:45:86;;;:::i;:::-;4112:1676:81;1504:45:86;;;:::i;:::-;;1559:21;;;:::i;:::-;;;;;:::i;:::-;;4112:1676:81;;1220:14:3;;;;1610::86;;4112:1676:81;;;;1610:14:86;;;;4112:1676:81;1220:14:3;;4112:1676:81;;;;;;;;;;;;;;;;;;-1:-1:-1;4112:1676:81;;;;;;;;1610:14:86;;;;;;-1:-1:-1;1610:14:86;;;;4112:1676:81;1610:14:86;;;;;;;-1:-1:-1;1610:14:86;;;4112:1676:81;1220:14:3;;;;;1651:27:86;;;;;;;;4112:1676:81;;;;;1651:27:86;;;4112:1676:81;;-1:-1:-1;;;;;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1220:14:3;4112:1676:81;;1220:14:3;;;:::i;:::-;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;1634:44:86;;;;1304:381;:::o;4112:1676:81:-;;;-1:-1:-1;;;;;;1220:14:3;;4112:1676:81;;;;;;;;;;;;;;1610:14:86;;;;;;;;;;:::i;:::-;;;4112:1676:81;;;;;;;;;;;-1:-1:-1;;;;;4112:1676:81;;;;;;;;;-1:-1:-1;4112:1676:81;;;;;;;;;:::i;:::-;;1220:14:3;4112:1676:81;;1220:14:3;;;:::i;:::-;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1610:14:86;;;;4112:1676:81;;;;;;;;;;;;;;;1610:14:86;4112:1676:81;;;-1:-1:-1;4112:1676:81;;;;;;;;;;;;1511:1:86;4112:1676:81;;;;;;;;;;;;;;1220:14:3;;4112:1676:81;;;;;;;;;;;;:::i;:::-;;;;1220:14:3;;;4112:1676:81;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea26469706673582212208b77ca5b770a7b91f07babb0d238ed5a62c7e3966b41f7c4ccd7c05706c4f8dc64736f6c63430008130033","sourceMap":"4112:1676:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;4112:1676:81;;;;:::i;:::-;;1671:64:2;4112:1676:81;;1671:64:2;;;:::i;:::-;4112:1676:81;;;1982:18:8;4112:1676:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4112:1676:81;;;;;;;;-1:-1:-1;4112:1676:81;;;;;-1:-1:-1;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4112:1676:81;;;;;-1:-1:-1;4112:1676:81;;;;;;;;;-1:-1:-1;4112:1676:81;;;;-1:-1:-1;;;;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;4112:1676:81;;;;:::i;:::-;;1671:64:2;4112:1676:81;;1671:64:2;;;:::i;:::-;4112:1676:81;;;2899:18:8;4112:1676:81;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;4112:1676:81;;-1:-1:-1;;;;;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4112:1676:81;;;;;;;;;;;;-1:-1:-1;;;;;;4112:1676:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4112:1676:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4112:1676:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4112:1676:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4112:1676:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4112:1676:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;4112:1676:81;;;;:::i;:::-;;1671:64:2;4112:1676:81;;1671:64:2;;;:::i;:::-;4112:1676:81;;;2416:18:8;4112:1676:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4112:1676:81;;;;;;;;-1:-1:-1;4112:1676:81;;;;;-1:-1:-1;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4112:1676:81;;;;;-1:-1:-1;4112:1676:81;;;;;;;;;-1:-1:-1;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;4112:1676:81;;;;:::i;:::-;;1671:64:2;4112:1676:81;;1671:64:2;;;:::i;:::-;4112:1676:81;;;2592:26:8;4112:1676:81;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;4112:1676:81;;-1:-1:-1;;;;;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4112:1676:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4112:1676:81;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;4112:1676:81;;;;;;;;;;;;;;;;;1671:64:2;4112:1676:81;1671:64:2;;;;;;;;;;;4112:1676:81;1671:64:2;:::o;:::-;4112:1676:81;;;1671:64:2;;;;;;;;;;4112:1676:81;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;4112:1676:81;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;4112:1676:81;;;2196:43:2;;;4112:1676:81;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;4112:1676:81;;-1:-1:-1;1671:64:2;;4112:1676:81;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;4112:1676:81;1671:64:2;2086:175;;;4112:1676:81;;;;;;1671:64:2;4112:1676:81;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;4112:1676:81;;;1671:64:2;4112:1676:81;;;-1:-1:-1;;4112:1676:81;2196:43:2;1671:64;4112:1676:81;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;4112:1676:81;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;4112:1676:81;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;4112:1676:81;1671:64:2;;;4112:1676:81;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;4112:1676:81;1671:64:2;4112:1676:81;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"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\":\"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/IntegrationTestBase.sol\":\"TestGatewayActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x1771042e416900276fc557c71365bcb7a470c46378109feae5813fd2df1f6cdd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5c02c7b8141cade572031ce857f0c66f8bf33ef9627c1c2c849532489334f095\",\"dweb:/ipfs/QmbM5n1rm9ZzoX9P22LT1xfaxqjVHCsMkPAactq5CYMjyt\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b\",\"dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21\",\"dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xe5c934c38631fc852b2d818a5234f6514c172311218b890a6fc5fd797f92dec9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://180a99f9ae7f52c07efd8d50c12562889661cc0a8d2e1f6e8dd10e8ef399193e\",\"dweb:/ipfs/QmNoscfa82rSeb6WXcFhj5GJ5iNmiMGmphQf3SLkbXZEeu\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0x4517792d005bd1b3e1a0bea06af04f20119222fffffbc6b310522d820be83369\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ef8859a2e7e61a15776c6110f4183fd62099a34a2bc16d33c09b37f220ce3673\",\"dweb:/ipfs/Qme38CS7qv8tCFWfYCMUcZvBnF63wf5E1pzGmG4kYjhoh1\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x5a8e1e7961e424e04b21c3aa85a2624e0996d7d401e8f9759239c09eac6c3cd2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d1083fcdfd0489cad22a516b7f551d08dea47d95a4a25f24b1aa3dd9b01a0501\",\"dweb:/ipfs/QmdxhTnQbWsxMCawiBL1mow2q8nXP5XPXr7KAbi5FxAK2W\"]},\"src/gateway/GatewayRouterFacet.sol\":{\"keccak256\":\"0x409518aa2f9f3df22be447bdede6c4bdff2535be7a5209c997725cd6fc77c00e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b337abc4fe880c91eca25d1312fe6d1f2f6f9e95d564a9aecaa553d215d1422b\",\"dweb:/ipfs/QmQoT3xpE9QJPvcmXdpSkkYsSWew6qBMqreTkEvk9pxn64\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14\",\"dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7\",\"dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2\",\"dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x96a4183d613f1cfefc19a6032361910d8d06ba68e14f2c26c7ed058ab9116bc4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://330a52b5ecb618b4846ecb04da3ee1109149228ccf05a2e098a87750ae4dd82e\",\"dweb:/ipfs/QmNY8kSJpHA238pR9dSbXFLw5D5WzfFj9pHqe8DQ2GmSuq\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c\",\"dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x7e36a89eb829f018acd7e8877a8a1b93bc939e87467700846741cda033432d99\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0f4db114142828d91b8ac120269a3de36390e63f3e5c0d27a821bdbad7d77f0\",\"dweb:/ipfs/QmYZAiaWWPATDrtF3MFoxdcBkmwMacFrjByFNb3hPeLDo6\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0x957c018167e9314422d52f4817e22b6a72f3d5651277579c62266375f95cc8aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e0b2f6f034bff2e50a6552b8963d7a193fd68da3aa38342127ec25ec1fd950b8\",\"dweb:/ipfs/QmcLWq8bWeU2D3wS9mVmxNixZa25uYg4WB63CfdrC1qboT\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x754f60bfb99884f3347c68fd063a18a8c80bcbdaf848391803d89654cdd97aef\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ed97511b421373b8e94222d825568f9c2a3a4e6ff2d9ab4f3f48fe1e9e3a8ba9\",\"dweb:/ipfs/QmadhEoTUMstJtS1M7Gzdz3Df1kEs1C7u7Mk2v4x6PDy7H\"]},\"test/mocks/SubnetActor.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"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":"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestGatewayActor"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x1771042e416900276fc557c71365bcb7a470c46378109feae5813fd2df1f6cdd","urls":["bzz-raw://5c02c7b8141cade572031ce857f0c66f8bf33ef9627c1c2c849532489334f095","dweb:/ipfs/QmbM5n1rm9ZzoX9P22LT1xfaxqjVHCsMkPAactq5CYMjyt"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87","urls":["bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b","dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140","urls":["bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21","dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xe5c934c38631fc852b2d818a5234f6514c172311218b890a6fc5fd797f92dec9","urls":["bzz-raw://180a99f9ae7f52c07efd8d50c12562889661cc0a8d2e1f6e8dd10e8ef399193e","dweb:/ipfs/QmNoscfa82rSeb6WXcFhj5GJ5iNmiMGmphQf3SLkbXZEeu"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0x4517792d005bd1b3e1a0bea06af04f20119222fffffbc6b310522d820be83369","urls":["bzz-raw://ef8859a2e7e61a15776c6110f4183fd62099a34a2bc16d33c09b37f220ce3673","dweb:/ipfs/Qme38CS7qv8tCFWfYCMUcZvBnF63wf5E1pzGmG4kYjhoh1"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x5a8e1e7961e424e04b21c3aa85a2624e0996d7d401e8f9759239c09eac6c3cd2","urls":["bzz-raw://d1083fcdfd0489cad22a516b7f551d08dea47d95a4a25f24b1aa3dd9b01a0501","dweb:/ipfs/QmdxhTnQbWsxMCawiBL1mow2q8nXP5XPXr7KAbi5FxAK2W"],"license":"UNLICENSED"},"src/gateway/GatewayRouterFacet.sol":{"keccak256":"0x409518aa2f9f3df22be447bdede6c4bdff2535be7a5209c997725cd6fc77c00e","urls":["bzz-raw://b337abc4fe880c91eca25d1312fe6d1f2f6f9e95d564a9aecaa553d215d1422b","dweb:/ipfs/QmQoT3xpE9QJPvcmXdpSkkYsSWew6qBMqreTkEvk9pxn64"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3","urls":["bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14","dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d","urls":["bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7","dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c","urls":["bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2","dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x96a4183d613f1cfefc19a6032361910d8d06ba68e14f2c26c7ed058ab9116bc4","urls":["bzz-raw://330a52b5ecb618b4846ecb04da3ee1109149228ccf05a2e098a87750ae4dd82e","dweb:/ipfs/QmNY8kSJpHA238pR9dSbXFLw5D5WzfFj9pHqe8DQ2GmSuq"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad","urls":["bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c","dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x7e36a89eb829f018acd7e8877a8a1b93bc939e87467700846741cda033432d99","urls":["bzz-raw://d0f4db114142828d91b8ac120269a3de36390e63f3e5c0d27a821bdbad7d77f0","dweb:/ipfs/QmYZAiaWWPATDrtF3MFoxdcBkmwMacFrjByFNb3hPeLDo6"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0x957c018167e9314422d52f4817e22b6a72f3d5651277579c62266375f95cc8aa","urls":["bzz-raw://e0b2f6f034bff2e50a6552b8963d7a193fd68da3aa38342127ec25ec1fd950b8","dweb:/ipfs/QmcLWq8bWeU2D3wS9mVmxNixZa25uYg4WB63CfdrC1qboT"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x754f60bfb99884f3347c68fd063a18a8c80bcbdaf848391803d89654cdd97aef","urls":["bzz-raw://ed97511b421373b8e94222d825568f9c2a3a4e6ff2d9ab4f3f48fe1e9e3a8ba9","dweb:/ipfs/QmadhEoTUMstJtS1M7Gzdz3Df1kEs1C7u7Mk2v4x6PDy7H"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActor.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":54009,"exportedSymbols":{"AddressShouldBeValidator":[36936],"AlreadyRegisteredSubnet":[36938],"BatchAlreadyExists":[36948],"BatchNotCreated":[36956],"BatchWithNoMessages":[36976],"BottomUpCheckpoint":[48410],"CannotConfirmFutureChanges":[36940],"CannotFindSubnet":[37088],"CannotReleaseZero":[36942],"CannotSendCrossMsgToItself":[36944],"CheckpointAlreadyExists":[36946],"CheckpointNotCreated":[36954],"CollateralIsZero":[36958],"ConsensusType":[36918],"CrossMsg":[48452],"CrossMsgHelper":[40328],"DSTest":[3720],"DiamondCutFacet":[36477],"DiamondLoupeFacet":[36914],"DuplicatedGenesisValidator":[37098],"EMPTY_BYTES":[36435],"EmptyAddress":[36960],"FacetCannotBeZero":[37084],"FailedAddIncompleteQuorum":[36962],"FailedAddSignatory":[36964],"FailedRemoveIncompleteQuorum":[36966],"FilAddress":[1428],"FvmAddress":[48476],"FvmAddressHelper":[40509],"GatewayCannotBeZero":[36968],"GatewayDiamond":[35759],"GatewayGetterFacet":[37869],"GatewayManagerFacet":[38359],"GatewayMessengerFacet":[38674],"GatewayRouterFacet":[39706],"IDiamond":[39732],"IPCAddress":[48687],"IntegrationTestBase":[54008],"InvalidActorAddress":[36970],"InvalidBatchEpoch":[36974],"InvalidBatchSource":[36980],"InvalidCheckpointEpoch":[36972],"InvalidCheckpointSource":[36978],"InvalidCollateral":[36984],"InvalidConfigurationNumber":[36986],"InvalidCrossMsgDstSubnet":[36988],"InvalidCrossMsgFromSubnet":[36990],"InvalidCrossMsgNonce":[36992],"InvalidCrossMsgValue":[36994],"InvalidFederationPayload":[37096],"InvalidMajorityPercentage":[36996],"InvalidPowerScale":[36998],"InvalidPublicKeyLength":[37010],"InvalidRetentionHeight":[37000],"InvalidSignature":[37002],"InvalidSignatureErr":[37006],"InvalidSignatureLength":[37008],"InvalidSubmissionPeriod":[37012],"InvalidSubnet":[37014],"InvalidSubnetActor":[36982],"METHOD_SEND":[36441],"MaxMsgsPerBatchExceeded":[36950],"MethodNotAllowed":[37094],"NoCollateralToWithdraw":[37016],"NoRewardToWithdraw":[37018],"NoValidatorsInSubnet":[37020],"NotAllValidatorsHaveLeft":[37022],"NotAuthorized":[37026],"NotEmptySubnetCircSupply":[37028],"NotEnoughBalance":[37030],"NotEnoughBalanceForRewards":[37032],"NotEnoughCollateral":[37034],"NotEnoughFee":[37036],"NotEnoughFunds":[37038],"NotEnoughFundsToRelease":[37040],"NotEnoughGenesisValidators":[37100],"NotEnoughSubnetCircSupply":[37042],"NotEnoughValidatorsInSubnet":[37044],"NotGateway":[37046],"NotOwnerOfPublicKey":[37048],"NotRegisteredSubnet":[37050],"NotStakedBefore":[37052],"NotSystemActor":[37054],"NotValidator":[37058],"OldConfigurationNumber":[37060],"PQDoesNotContainAddress":[37062],"PQEmpty":[37064],"ParentFinality":[48396],"ParentFinalityAlreadyCommitted":[37066],"PermissionMode":[48648],"PostboxNotExist":[37068],"QuorumAlreadyProcessed":[36952],"RegisterSubnetFacet":[51075],"SignatureReplay":[37070],"Status":[36932],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[48469],"StorableMsgHelper":[46265],"Subnet":[48574],"SubnetActorDiamond":[36177],"SubnetActorGetterFacet":[49325],"SubnetActorManagerFacet":[50947],"SubnetActorManagerFacetMock":[56069],"SubnetAlreadyBootstrapped":[37082],"SubnetAlreadyKilled":[37072],"SubnetGetterFacet":[51313],"SubnetID":[48557],"SubnetIDHelper":[46876],"SubnetNotActive":[37074],"SubnetNotFound":[37076],"SubnetRegistryDiamond":[36415],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[51670],"TestParams":[51469],"TestRegistry":[51537],"TestSubnetActor":[51792],"TestUtils":[55168],"UnknownSubnet":[37090],"Validator":[48694],"Vm":[14222],"WithdrawExceedingCollateral":[37078],"WrongGateway":[37086],"ZeroMembershipWeight":[37080],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:29281:81","nodes":[{"id":51315,"nodeType":"PragmaDirective","src":"46:23:81","nodes":[],"literals":["solidity","0.8",".19"]},{"id":51316,"nodeType":"ImportDirective","src":"71:28:81","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":51317,"nodeType":"ImportDirective","src":"100:36:81","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":51318,"nodeType":"ImportDirective","src":"137:37:81","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":37101,"symbolAliases":[],"unitAlias":""},{"id":51321,"nodeType":"ImportDirective","src":"176:72:81","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36442,"symbolAliases":[{"foreign":{"id":51319,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36435,"src":"184:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51320,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"197:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51323,"nodeType":"ImportDirective","src":"249:61:81","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":51322,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"257:13:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51325,"nodeType":"ImportDirective","src":"311:47:81","nodes":[],"absolutePath":"src/enums/Status.sol","file":"../src/enums/Status.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36933,"symbolAliases":[{"foreign":{"id":51324,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"319:6:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51327,"nodeType":"ImportDirective","src":"359:56:81","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":39733,"symbolAliases":[{"foreign":{"id":51326,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"367:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51332,"nodeType":"ImportDirective","src":"416:102:81","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":51328,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"424:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51329,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"434:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51330,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"454:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51331,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"467:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51334,"nodeType":"ImportDirective","src":"519:57:81","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":48484,"symbolAliases":[{"foreign":{"id":51333,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"527:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51341,"nodeType":"ImportDirective","src":"577:114:81","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":51335,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"585:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51336,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"595:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51337,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"611:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51338,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48574,"src":"627:6:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51339,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"635:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51340,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"647:9:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51343,"nodeType":"ImportDirective","src":"692:61:81","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":46877,"symbolAliases":[{"foreign":{"id":51342,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46876,"src":"700:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51345,"nodeType":"ImportDirective","src":"754:65:81","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":40510,"symbolAliases":[{"foreign":{"id":51344,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"762:16:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51347,"nodeType":"ImportDirective","src":"820:61:81","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":40329,"symbolAliases":[{"foreign":{"id":51346,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40328,"src":"828:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51349,"nodeType":"ImportDirective","src":"882:67:81","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":46266,"symbolAliases":[{"foreign":{"id":51348,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"890:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51351,"nodeType":"ImportDirective","src":"950:56:81","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":51350,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"958:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51353,"nodeType":"ImportDirective","src":"1007:57:81","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":35760,"symbolAliases":[{"foreign":{"id":51352,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35759,"src":"1015:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51355,"nodeType":"ImportDirective","src":"1065:65:81","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36178,"symbolAliases":[{"foreign":{"id":51354,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"1073:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51357,"nodeType":"ImportDirective","src":"1131:73:81","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":37870,"symbolAliases":[{"foreign":{"id":51356,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"1139:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51359,"nodeType":"ImportDirective","src":"1205:79:81","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":38675,"symbolAliases":[{"foreign":{"id":51358,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38674,"src":"1213:21:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51361,"nodeType":"ImportDirective","src":"1285:75:81","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":38360,"symbolAliases":[{"foreign":{"id":51360,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"1293:19:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51363,"nodeType":"ImportDirective","src":"1361:73:81","nodes":[],"absolutePath":"src/gateway/GatewayRouterFacet.sol","file":"../src/gateway/GatewayRouterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":39707,"symbolAliases":[{"foreign":{"id":51362,"name":"GatewayRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39706,"src":"1369:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51365,"nodeType":"ImportDirective","src":"1435:68:81","nodes":[],"absolutePath":"test/mocks/SubnetActor.sol","file":"./mocks/SubnetActor.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":56070,"symbolAliases":[{"foreign":{"id":51364,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56069,"src":"1443:27:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51367,"nodeType":"ImportDirective","src":"1504:82:81","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":50948,"symbolAliases":[{"foreign":{"id":51366,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"1512:23:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51369,"nodeType":"ImportDirective","src":"1587:80:81","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":49326,"symbolAliases":[{"foreign":{"id":51368,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"1595:22:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51371,"nodeType":"ImportDirective","src":"1668:71:81","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36416,"symbolAliases":[{"foreign":{"id":51370,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36415,"src":"1676:21:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51373,"nodeType":"ImportDirective","src":"1740:82:81","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":51076,"symbolAliases":[{"foreign":{"id":51372,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51075,"src":"1748:19:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51375,"nodeType":"ImportDirective","src":"1823:78:81","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":51314,"symbolAliases":[{"foreign":{"id":51374,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51313,"src":"1831:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51377,"nodeType":"ImportDirective","src":"1902:71:81","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36915,"symbolAliases":[{"foreign":{"id":51376,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"1910:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51379,"nodeType":"ImportDirective","src":"1974:67:81","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36478,"symbolAliases":[{"foreign":{"id":51378,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"1982:15:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51381,"nodeType":"ImportDirective","src":"2042:50:81","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":55169,"symbolAliases":[{"foreign":{"id":51380,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"2050:9:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51469,"nodeType":"ContractDefinition","src":"2094:1194:81","nodes":[{"id":51388,"nodeType":"VariableDeclaration","src":"2120:44:81","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2136:9:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51382,"name":"uint64","nodeType":"ElementaryTypeName","src":"2120:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":51385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2153:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":51384,"name":"uint64","nodeType":"ElementaryTypeName","src":"2153:6:81","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":51383,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2148:4:81","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":51386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2148:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":51387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2161:3:81","memberName":"max","nodeType":"MemberAccess","src":"2148:16:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":51394,"nodeType":"VariableDeclaration","src":"2170:91:81","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2187:20:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51389,"name":"address","nodeType":"ElementaryTypeName","src":"2170:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":51392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2218:42:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2210:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51390,"name":"address","nodeType":"ElementaryTypeName","src":"2210:7:81","typeDescriptions":{}}},"id":51393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2210:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51397,"nodeType":"VariableDeclaration","src":"2267:42:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2283:22:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51395,"name":"uint64","nodeType":"ElementaryTypeName","src":"2267:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":51396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2308:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":51400,"nodeType":"VariableDeclaration","src":"2315:54:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2332:27:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51398,"name":"uint256","nodeType":"ElementaryTypeName","src":"2315:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":51399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2362:7:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":51403,"nodeType":"VariableDeclaration","src":"2375:47:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2390:27:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":51401,"name":"uint8","nodeType":"ElementaryTypeName","src":"2375:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":51402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2420:2:81","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":51406,"nodeType":"VariableDeclaration","src":"2428:51:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"2444:25:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51404,"name":"uint64","nodeType":"ElementaryTypeName","src":"2428:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":51405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2472:7:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":51409,"nodeType":"VariableDeclaration","src":"2485:46:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"2501:25:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51407,"name":"uint64","nodeType":"ElementaryTypeName","src":"2485:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":51408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2529:2:81","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":51412,"nodeType":"VariableDeclaration","src":"2537:44:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"2553:16:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51410,"name":"string","nodeType":"ElementaryTypeName","src":"2537:6:81","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":51411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2572:9:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":51415,"nodeType":"VariableDeclaration","src":"2587:36:81","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"2602:7:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":51413,"name":"bytes","nodeType":"ElementaryTypeName","src":"2587:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":51414,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36435,"src":"2612:11:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":51418,"nodeType":"VariableDeclaration","src":"2629:48:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"2646:21:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51416,"name":"uint256","nodeType":"ElementaryTypeName","src":"2629:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":51417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2670:7:81","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":51421,"nodeType":"VariableDeclaration","src":"2683:49:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"2700:22:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51419,"name":"uint256","nodeType":"ElementaryTypeName","src":"2683:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":51420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2725:7:81","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":51427,"nodeType":"VariableDeclaration","src":"2738:52:81","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"2755:21:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51422,"name":"address","nodeType":"ElementaryTypeName","src":"2738:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":51425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2787:2:81","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":51424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2779:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51423,"name":"address","nodeType":"ElementaryTypeName","src":"2779:7:81","typeDescriptions":{}}},"id":51426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51433,"nodeType":"VariableDeclaration","src":"2796:54:81","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"2813:23:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51428,"name":"address","nodeType":"ElementaryTypeName","src":"2796:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":51431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2847:2:81","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":51430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2839:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51429,"name":"address","nodeType":"ElementaryTypeName","src":"2839:7:81","typeDescriptions":{}}},"id":51432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2839:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51438,"nodeType":"VariableDeclaration","src":"2856:57:81","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"2872:9:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51434,"name":"uint64","nodeType":"ElementaryTypeName","src":"2856:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":51437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":51435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2884:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":51436,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51409,"src":"2888:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2884:29:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":51441,"nodeType":"VariableDeclaration","src":"2919:50:81","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"2936:23:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51439,"name":"uint256","nodeType":"ElementaryTypeName","src":"2919:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":51440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2962:7:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":51444,"nodeType":"VariableDeclaration","src":"2975:53:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"2991:31:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":51442,"name":"uint16","nodeType":"ElementaryTypeName","src":"2975:6:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":51443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3025:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":51447,"nodeType":"VariableDeclaration","src":"3034:38:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3048:19:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":51445,"name":"int8","nodeType":"ElementaryTypeName","src":"3034:4:81","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":51446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3070:2:81","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":51450,"nodeType":"VariableDeclaration","src":"3078:37:81","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3094:15:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51448,"name":"uint64","nodeType":"ElementaryTypeName","src":"3078:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":51449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3112:3:81","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":51456,"nodeType":"VariableDeclaration","src":"3121:45:81","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3138:15:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51451,"name":"address","nodeType":"ElementaryTypeName","src":"3121:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":51454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3164:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":51453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3156:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51452,"name":"address","nodeType":"ElementaryTypeName","src":"3156:7:81","typeDescriptions":{}}},"id":51455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3156:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51462,"nodeType":"VariableDeclaration","src":"3172:57:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3189:24:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51457,"name":"address","nodeType":"ElementaryTypeName","src":"3172:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":51460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3224:4:81","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":51459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3216:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51458,"name":"address","nodeType":"ElementaryTypeName","src":"3216:7:81","typeDescriptions":{}}},"id":51461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3216:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51468,"nodeType":"VariableDeclaration","src":"3235:50:81","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3252:19:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51463,"name":"address","nodeType":"ElementaryTypeName","src":"3235:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":51466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3282:2:81","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":51465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3274:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51464,"name":"address","nodeType":"ElementaryTypeName","src":"3274:7:81","typeDescriptions":{}}},"id":51467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3274:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51469],"name":"TestParams","nameLocation":"2103:10:81","scope":54009,"usedErrors":[]},{"id":51537,"nodeType":"ContractDefinition","src":"3290:820:81","nodes":[{"id":51476,"nodeType":"VariableDeclaration","src":"3338:37:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3347:28:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51474,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3338:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51475,"nodeType":"ArrayTypeName","src":"3338:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51479,"nodeType":"VariableDeclaration","src":"3381:43:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3390:34:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51477,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3381:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51478,"nodeType":"ArrayTypeName","src":"3381:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51482,"nodeType":"VariableDeclaration","src":"3430:32:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"3439:23:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51480,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3430:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51481,"nodeType":"ArrayTypeName","src":"3430:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51485,"nodeType":"VariableDeclaration","src":"3468:32:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"3477:23:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51483,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3468:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51484,"nodeType":"ArrayTypeName","src":"3468:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51488,"nodeType":"VariableDeclaration","src":"3507:37:81","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"3529:15:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":51487,"nodeType":"UserDefinedTypeName","pathNode":{"id":51486,"name":"SubnetRegistryDiamond","nameLocations":["3507:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"3507:21:81"},"referencedDeclaration":36415,"src":"3507:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":51491,"nodeType":"VariableDeclaration","src":"3550:32:81","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"3568:14:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":51490,"nodeType":"UserDefinedTypeName","pathNode":{"id":51489,"name":"DiamondLoupeFacet","nameLocations":["3550:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"3550:17:81"},"referencedDeclaration":36914,"src":"3550:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":51494,"nodeType":"VariableDeclaration","src":"3588:30:81","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"3604:14:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":51493,"nodeType":"UserDefinedTypeName","pathNode":{"id":51492,"name":"DiamondCutFacet","nameLocations":["3588:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"3588:15:81"},"referencedDeclaration":36477,"src":"3588:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":51497,"nodeType":"VariableDeclaration","src":"3624:39:81","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"3644:19:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":51496,"nodeType":"UserDefinedTypeName","pathNode":{"id":51495,"name":"RegisterSubnetFacet","nameLocations":["3624:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"3624:19:81"},"referencedDeclaration":51075,"src":"3624:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":51500,"nodeType":"VariableDeclaration","src":"3669:43:81","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"3687:25:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"},"typeName":{"id":51499,"nodeType":"UserDefinedTypeName","pathNode":{"id":51498,"name":"SubnetGetterFacet","nameLocations":["3669:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"3669:17:81"},"referencedDeclaration":51313,"src":"3669:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":51536,"nodeType":"FunctionDefinition","src":"3719:389:81","nodes":[],"body":{"id":51535,"nodeType":"Block","src":"3733:375:81","nodes":[],"statements":[{"expression":{"id":51509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51503,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51476,"src":"3743:28:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51506,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3802:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"52656769737465725375626e65744661636574","id":51507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3806:21:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":51504,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"3774:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3784:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"3774:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3774:54:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"3743:85:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51510,"nodeType":"ExpressionStatement","src":"3743:85:81"},{"expression":{"id":51517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51511,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51479,"src":"3838:34:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51514,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3903:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744765747465724661636574","id":51515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3907:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":51512,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"3875:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3885:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"3875:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3875:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"3838:89:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51518,"nodeType":"ExpressionStatement","src":"3838:89:81"},{"expression":{"id":51525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51519,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51482,"src":"3937:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51522,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3991:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644375744661636574","id":51523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3995:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":51520,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"3963:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3973:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"3963:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3963:50:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"3937:76:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51526,"nodeType":"ExpressionStatement","src":"3937:76:81"},{"expression":{"id":51533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51527,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51485,"src":"4023:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51530,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4077:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644c6f7570654661636574","id":51531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4081:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":51528,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4049:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4059:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4049:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4023:78:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51534,"nodeType":"ExpressionStatement","src":"4023:78:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51501,"nodeType":"ParameterList","parameters":[],"src":"3730:2:81"},"returnParameters":{"id":51502,"nodeType":"ParameterList","parameters":[],"src":"3733:0:81"},"scope":51537,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":51470,"name":"Test","nameLocations":["3315:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3315:4:81"},"id":51471,"nodeType":"InheritanceSpecifier","src":"3315:4:81"},{"baseName":{"id":51472,"name":"TestParams","nameLocations":["3321:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"3321:10:81"},"id":51473,"nodeType":"InheritanceSpecifier","src":"3321:10:81"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51537,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3299:12:81","scope":54009,"usedErrors":[]},{"id":51670,"nodeType":"ContractDefinition","src":"4112:1676:81","nodes":[{"id":51544,"nodeType":"VariableDeclaration","src":"4164:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwRouterSelectors","nameLocation":"4173:17:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51542,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4164:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51543,"nodeType":"ArrayTypeName","src":"4164:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51547,"nodeType":"VariableDeclaration","src":"4196:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4205:18:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51545,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4196:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51546,"nodeType":"ArrayTypeName","src":"4196:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51550,"nodeType":"VariableDeclaration","src":"4229:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4238:17:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51548,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4229:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51549,"nodeType":"ArrayTypeName","src":"4229:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51553,"nodeType":"VariableDeclaration","src":"4261:29:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"4270:20:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51551,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4261:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51552,"nodeType":"ArrayTypeName","src":"4261:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51556,"nodeType":"VariableDeclaration","src":"4296:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"4305:17:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51554,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4296:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51555,"nodeType":"ArrayTypeName","src":"4296:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51559,"nodeType":"VariableDeclaration","src":"4328:25:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"4337:16:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51557,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4328:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51558,"nodeType":"ArrayTypeName","src":"4328:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51562,"nodeType":"VariableDeclaration","src":"4360:29:81","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"4375:14:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":51561,"nodeType":"UserDefinedTypeName","pathNode":{"id":51560,"name":"GatewayDiamond","nameLocations":["4360:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"4360:14:81"},"referencedDeclaration":35759,"src":"4360:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":51565,"nodeType":"VariableDeclaration","src":"4395:29:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"4415:9:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"},"typeName":{"id":51564,"nodeType":"UserDefinedTypeName","pathNode":{"id":51563,"name":"GatewayManagerFacet","nameLocations":["4395:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"4395:19:81"},"referencedDeclaration":38359,"src":"4395:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":51568,"nodeType":"VariableDeclaration","src":"4430:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"4449:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"},"typeName":{"id":51567,"nodeType":"UserDefinedTypeName","pathNode":{"id":51566,"name":"GatewayGetterFacet","nameLocations":["4430:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":37869,"src":"4430:18:81"},"referencedDeclaration":37869,"src":"4430:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":51571,"nodeType":"VariableDeclaration","src":"4463:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwRouter","nameLocation":"4482:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"},"typeName":{"id":51570,"nodeType":"UserDefinedTypeName","pathNode":{"id":51569,"name":"GatewayRouterFacet","nameLocations":["4463:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":39706,"src":"4463:18:81"},"referencedDeclaration":39706,"src":"4463:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"visibility":"internal"},{"id":51574,"nodeType":"VariableDeclaration","src":"4496:33:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"4518:11:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":51573,"nodeType":"UserDefinedTypeName","pathNode":{"id":51572,"name":"GatewayMessengerFacet","nameLocations":["4496:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":38674,"src":"4496:21:81"},"referencedDeclaration":38674,"src":"4496:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":51577,"nodeType":"VariableDeclaration","src":"4535:24:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"4551:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":51576,"nodeType":"UserDefinedTypeName","pathNode":{"id":51575,"name":"DiamondCutFacet","nameLocations":["4535:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"4535:15:81"},"referencedDeclaration":36477,"src":"4535:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":51580,"nodeType":"VariableDeclaration","src":"4565:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"4583:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":51579,"nodeType":"UserDefinedTypeName","pathNode":{"id":51578,"name":"DiamondLoupeFacet","nameLocations":["4565:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"4565:17:81"},"referencedDeclaration":36914,"src":"4565:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":51632,"nodeType":"FunctionDefinition","src":"4598:522:81","nodes":[],"body":{"id":51631,"nodeType":"Block","src":"4612:508:81","nodes":[],"statements":[{"expression":{"id":51589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51583,"name":"gwRouterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51544,"src":"4622:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51586,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4670:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"47617465776179526f757465724661636574","id":51587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4674:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_47c9e89e207c1506806062b80d03800461672df762dd01e4466ff0c24375e91c","typeString":"literal_string \"GatewayRouterFacet\""},"value":"GatewayRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_47c9e89e207c1506806062b80d03800461672df762dd01e4466ff0c24375e91c","typeString":"literal_string \"GatewayRouterFacet\""}],"expression":{"id":51584,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4642:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4652:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4642:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4642:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4622:73:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51590,"nodeType":"ExpressionStatement","src":"4622:73:81"},{"expression":{"id":51597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51591,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51550,"src":"4705:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51594,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4753:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"476174657761794765747465724661636574","id":51595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4757:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":51592,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4725:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4735:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4725:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4725:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4705:73:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51598,"nodeType":"ExpressionStatement","src":"4705:73:81"},{"expression":{"id":51605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51599,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51547,"src":"4788:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51602,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4837:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"476174657761794d616e616765724661636574","id":51603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4841:21:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":51600,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4809:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4819:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4809:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4809:54:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4788:75:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51606,"nodeType":"ExpressionStatement","src":"4788:75:81"},{"expression":{"id":51613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51607,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"4873:20:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51610,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4924:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"476174657761794d657373656e6765724661636574","id":51611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4928:23:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":51608,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4896:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4906:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4896:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4896:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4873:79:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51614,"nodeType":"ExpressionStatement","src":"4873:79:81"},{"expression":{"id":51621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51615,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51556,"src":"4962:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51618,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5010:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644375744661636574","id":51619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5014:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":51616,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4982:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4992:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4982:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4982:50:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4962:70:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51622,"nodeType":"ExpressionStatement","src":"4962:70:81"},{"expression":{"id":51629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51623,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51559,"src":"5042:16:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51626,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5089:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644c6f7570654661636574","id":51627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5093:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":51624,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"5061:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5071:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"5061:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5061:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5042:71:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51630,"nodeType":"ExpressionStatement","src":"5042:71:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51581,"nodeType":"ParameterList","parameters":[],"src":"4609:2:81"},"returnParameters":{"id":51582,"nodeType":"ParameterList","parameters":[],"src":"4612:0:81"},"scope":51670,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51669,"nodeType":"FunctionDefinition","src":"5126:660:81","nodes":[],"body":{"id":51668,"nodeType":"Block","src":"5230:556:81","nodes":[],"statements":[{"assignments":[51642],"declarations":[{"constant":false,"id":51642,"mutability":"mutable","name":"params","nameLocation":"5280:6:81","nodeType":"VariableDeclaration","scope":51668,"src":"5240:46:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51641,"nodeType":"UserDefinedTypeName","pathNode":{"id":51640,"name":"GatewayDiamond.ConstructorParams","nameLocations":["5240:14:81","5255:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"5240:32:81"},"referencedDeclaration":35456,"src":"5240:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51665,"initialValue":{"arguments":[{"arguments":[{"id":51646,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51450,"src":"5365:15:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":51650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5403:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5389:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":51647,"name":"address","nodeType":"ElementaryTypeName","src":"5393:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51648,"nodeType":"ArrayTypeName","src":"5393:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":51651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":51645,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"5349:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":51652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5359:4:81","5382:5:81"],"names":["root","route"],"nodeType":"FunctionCall","src":"5349:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":51653,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51409,"src":"5442:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51654,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"5489:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":51655,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"5539:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51656,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51403,"src":"5598:27:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":51661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5674:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5658:15:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":51658,"nodeType":"UserDefinedTypeName","pathNode":{"id":51657,"name":"Validator","nameLocations":["5662:9:81"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"5662:9:81"},"referencedDeclaration":48694,"src":"5662:9:81","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"id":51659,"nodeType":"ArrayTypeName","src":"5662:11:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":51662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5658:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":51663,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51444,"src":"5713:31:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":51643,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35759,"src":"5289:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$35759_$","typeString":"type(contract GatewayDiamond)"}},"id":51644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5304:17:81","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35456,"src":"5289:32:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35456_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":51664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5336:11:81","5421:19:81","5481:6:81","5524:13:81","5578:18:81","5639:17:81","5690:21:81"],"names":["networkName","bottomUpCheckPeriod","msgFee","minCollateral","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"5289:466:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"5240:515:81"},{"expression":{"id":51666,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51642,"src":"5773:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":51637,"id":51667,"nodeType":"Return","src":"5766:13:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"5135:20:81","parameters":{"id":51633,"nodeType":"ParameterList","parameters":[],"src":"5155:2:81"},"returnParameters":{"id":51637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51669,"src":"5189:39:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51635,"nodeType":"UserDefinedTypeName","pathNode":{"id":51634,"name":"GatewayDiamond.ConstructorParams","nameLocations":["5189:14:81","5204:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"5189:32:81"},"referencedDeclaration":35456,"src":"5189:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"5188:41:81"},"scope":51670,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":51538,"name":"Test","nameLocations":["4141:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4141:4:81"},"id":51539,"nodeType":"InheritanceSpecifier","src":"4141:4:81"},{"baseName":{"id":51540,"name":"TestParams","nameLocations":["4147:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"4147:10:81"},"id":51541,"nodeType":"InheritanceSpecifier","src":"4147:10:81"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51670,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4121:16:81","scope":54009,"usedErrors":[]},{"id":51792,"nodeType":"ContractDefinition","src":"5790:1815:81","nodes":[{"id":51677,"nodeType":"VariableDeclaration","src":"5841:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"5850:17:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51675,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5841:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51676,"nodeType":"ArrayTypeName","src":"5841:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51680,"nodeType":"VariableDeclaration","src":"5873:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"5882:18:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51678,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5873:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51679,"nodeType":"ArrayTypeName","src":"5873:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51683,"nodeType":"VariableDeclaration","src":"5906:33:81","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"5915:24:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51681,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5906:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51682,"nodeType":"ArrayTypeName","src":"5906:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51686,"nodeType":"VariableDeclaration","src":"5945:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"5954:17:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51684,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5945:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51685,"nodeType":"ArrayTypeName","src":"5945:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51689,"nodeType":"VariableDeclaration","src":"5977:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"5986:17:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51687,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5977:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51688,"nodeType":"ArrayTypeName","src":"5977:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51692,"nodeType":"VariableDeclaration","src":"6010:28:81","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6029:9:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":51691,"nodeType":"UserDefinedTypeName","pathNode":{"id":51690,"name":"SubnetActorDiamond","nameLocations":["6010:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"6010:18:81"},"referencedDeclaration":36177,"src":"6010:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":51695,"nodeType":"VariableDeclaration","src":"6044:33:81","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"6068:9:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":51694,"nodeType":"UserDefinedTypeName","pathNode":{"id":51693,"name":"SubnetActorManagerFacet","nameLocations":["6044:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"6044:23:81"},"referencedDeclaration":50947,"src":"6044:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":51698,"nodeType":"VariableDeclaration","src":"6083:43:81","nodes":[],"constant":false,"mutability":"mutable","name":"saMockedManager","nameLocation":"6111:15:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":51697,"nodeType":"UserDefinedTypeName","pathNode":{"id":51696,"name":"SubnetActorManagerFacetMock","nameLocations":["6083:27:81"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"6083:27:81"},"referencedDeclaration":56069,"src":"6083:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"},{"id":51701,"nodeType":"VariableDeclaration","src":"6132:31:81","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"6155:8:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":51700,"nodeType":"UserDefinedTypeName","pathNode":{"id":51699,"name":"SubnetActorGetterFacet","nameLocations":["6132:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"6132:22:81"},"referencedDeclaration":49325,"src":"6132:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":51704,"nodeType":"VariableDeclaration","src":"6169:24:81","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"6185:8:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":51703,"nodeType":"UserDefinedTypeName","pathNode":{"id":51702,"name":"DiamondCutFacet","nameLocations":["6169:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"6169:15:81"},"referencedDeclaration":36477,"src":"6169:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":51707,"nodeType":"VariableDeclaration","src":"6199:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"6217:8:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":51706,"nodeType":"UserDefinedTypeName","pathNode":{"id":51705,"name":"DiamondLoupeFacet","nameLocations":["6199:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"6199:17:81"},"referencedDeclaration":36914,"src":"6199:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":51751,"nodeType":"FunctionDefinition","src":"6232:458:81","nodes":[],"body":{"id":51750,"nodeType":"Block","src":"6246:444:81","nodes":[],"statements":[{"expression":{"id":51716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51710,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"6256:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51713,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6304:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744163746f724765747465724661636574","id":51714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6308:24:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":51711,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6276:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6286:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6276:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6276:57:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6256:77:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51717,"nodeType":"ExpressionStatement","src":"6256:77:81"},{"expression":{"id":51724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51718,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"6343:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51721,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6392:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":51722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6396:25:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":51719,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6364:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6374:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6364:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6364:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6343:79:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51725,"nodeType":"ExpressionStatement","src":"6343:79:81"},{"expression":{"id":51732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51726,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51683,"src":"6432:24:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51729,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6487:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":51730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6491:29:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":51727,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6459:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6469:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6459:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6459:62:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6432:89:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51733,"nodeType":"ExpressionStatement","src":"6432:89:81"},{"expression":{"id":51740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51734,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"6531:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51737,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6579:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644375744661636574","id":51738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6583:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":51735,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6551:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6561:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6551:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6551:50:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6531:70:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51741,"nodeType":"ExpressionStatement","src":"6531:70:81"},{"expression":{"id":51748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51742,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51689,"src":"6611:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51745,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6659:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644c6f7570654661636574","id":51746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6663:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":51743,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6631:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6641:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6631:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6631:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6611:72:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51749,"nodeType":"ExpressionStatement","src":"6611:72:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51708,"nodeType":"ParameterList","parameters":[],"src":"6243:2:81"},"returnParameters":{"id":51709,"nodeType":"ParameterList","parameters":[],"src":"6246:0:81"},"scope":51792,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51791,"nodeType":"FunctionDefinition","src":"6696:907:81","nodes":[],"body":{"id":51790,"nodeType":"Block","src":"6843:760:81","nodes":[],"statements":[{"assignments":[51763],"declarations":[{"constant":false,"id":51763,"mutability":"mutable","name":"params","nameLocation":"6897:6:81","nodeType":"VariableDeclaration","scope":51790,"src":"6853:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":51762,"nodeType":"UserDefinedTypeName","pathNode":{"id":51761,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["6853:18:81","6872:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"6853:36:81"},"referencedDeclaration":35829,"src":"6853:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51787,"initialValue":{"arguments":[{"arguments":[{"id":51767,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51450,"src":"6983:15:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":51771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7021:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7007:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":51768,"name":"address","nodeType":"ElementaryTypeName","src":"7011:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51769,"nodeType":"ArrayTypeName","src":"7011:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":51772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7007:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":51766,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"6967:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":51773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6977:4:81","7000:5:81"],"names":["root","route"],"nodeType":"FunctionCall","src":"6967:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":51774,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51753,"src":"7055:2:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51775,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"7082:13:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$36918_$","typeString":"type(enum ConsensusType)"}},"id":51776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7096:10:81","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":36917,"src":"7082:24:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":51777,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"7145:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51778,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51397,"src":"7199:22:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51779,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51409,"src":"7256:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51780,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51403,"src":"7315:27:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":51781,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51444,"src":"7379:31:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":51782,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51447,"src":"7436:19:81","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":51783,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"7485:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":51784,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"7536:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":51785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7551:10:81","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":48645,"src":"7536:25:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}],"expression":{"id":51764,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"6906:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"type(contract SubnetActorDiamond)"}},"id":51765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6925:17:81","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35829,"src":"6906:36:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35829_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":51786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6957:8:81","7039:14:81","7071:9:81","7120:23:81","7184:13:81","7235:19:81","7295:18:81","7356:21:81","7424:10:81","7469:14:81","7520:14:81"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode"],"nodeType":"FunctionCall","src":"6906:666:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6853:719:81"},{"expression":{"id":51788,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51763,"src":"7590:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":51758,"id":51789,"nodeType":"Return","src":"7583:13:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"6705:35:81","parameters":{"id":51754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51753,"mutability":"mutable","name":"gw","nameLocation":"6758:2:81","nodeType":"VariableDeclaration","scope":51791,"src":"6750:10:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51752,"name":"address","nodeType":"ElementaryTypeName","src":"6750:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6740:26:81"},"returnParameters":{"id":51758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51757,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51791,"src":"6798:43:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":51756,"nodeType":"UserDefinedTypeName","pathNode":{"id":51755,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["6798:18:81","6817:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"6798:36:81"},"referencedDeclaration":35829,"src":"6798:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6797:45:81"},"scope":51792,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":51671,"name":"Test","nameLocations":["5818:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"5818:4:81"},"id":51672,"nodeType":"InheritanceSpecifier","src":"5818:4:81"},{"baseName":{"id":51673,"name":"TestParams","nameLocations":["5824:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"5824:10:81"},"id":51674,"nodeType":"InheritanceSpecifier","src":"5824:10:81"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51792,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"5799:15:81","scope":54009,"usedErrors":[]},{"id":54008,"nodeType":"ContractDefinition","src":"7607:21719:81","nodes":[{"id":51806,"nodeType":"UsingForDirective","src":"7711:34:81","nodes":[],"global":false,"libraryName":{"id":51803,"name":"SubnetIDHelper","nameLocations":["7717:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":46876,"src":"7717:14:81"},"typeName":{"id":51805,"nodeType":"UserDefinedTypeName","pathNode":{"id":51804,"name":"SubnetID","nameLocations":["7736:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"7736:8:81"},"referencedDeclaration":48557,"src":"7736:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}}},{"id":51810,"nodeType":"UsingForDirective","src":"7750:34:81","nodes":[],"global":false,"libraryName":{"id":51807,"name":"CrossMsgHelper","nameLocations":["7756:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":40328,"src":"7756:14:81"},"typeName":{"id":51809,"nodeType":"UserDefinedTypeName","pathNode":{"id":51808,"name":"CrossMsg","nameLocations":["7775:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"7775:8:81"},"referencedDeclaration":48452,"src":"7775:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}}},{"id":51814,"nodeType":"UsingForDirective","src":"7789:40:81","nodes":[],"global":false,"libraryName":{"id":51811,"name":"StorableMsgHelper","nameLocations":["7795:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":46265,"src":"7795:17:81"},"typeName":{"id":51813,"nodeType":"UserDefinedTypeName","pathNode":{"id":51812,"name":"StorableMsg","nameLocations":["7817:11:81"],"nodeType":"IdentifierPath","referencedDeclaration":48469,"src":"7817:11:81"},"referencedDeclaration":48469,"src":"7817:11:81","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_storage_ptr","typeString":"struct StorableMsg"}}},{"id":51818,"nodeType":"UsingForDirective","src":"7834:38:81","nodes":[],"global":false,"libraryName":{"id":51815,"name":"FvmAddressHelper","nameLocations":["7840:16:81"],"nodeType":"IdentifierPath","referencedDeclaration":40509,"src":"7840:16:81"},"typeName":{"id":51817,"nodeType":"UserDefinedTypeName","pathNode":{"id":51816,"name":"FvmAddress","nameLocations":["7861:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"7861:10:81"},"referencedDeclaration":48476,"src":"7861:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}}},{"id":51822,"nodeType":"EventDefinition","src":"7878:67:81","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"7884:21:81","parameters":{"id":51821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51820,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"7922:21:81","nodeType":"VariableDeclaration","scope":51822,"src":"7906:37:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51819,"name":"address","nodeType":"ElementaryTypeName","src":"7906:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7905:39:81"}},{"id":51826,"nodeType":"FunctionDefinition","src":"7951:16:81","nodes":[],"body":{"id":51825,"nodeType":"Block","src":"7965:2:81","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51823,"nodeType":"ParameterList","parameters":[],"src":"7962:2:81"},"returnParameters":{"id":51824,"nodeType":"ParameterList","parameters":[],"src":"7965:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51974,"nodeType":"FunctionDefinition","src":"7973:1282:81","nodes":[],"body":{"id":51973,"nodeType":"Block","src":"8005:1250:81","nodes":[],"statements":[{"assignments":[51833],"declarations":[{"constant":false,"id":51833,"mutability":"mutable","name":"path","nameLocation":"8032:4:81","nodeType":"VariableDeclaration","scope":51973,"src":"8015:21:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":51831,"name":"address","nodeType":"ElementaryTypeName","src":"8015:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51832,"nodeType":"ArrayTypeName","src":"8015:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":51839,"initialValue":{"arguments":[{"hexValue":"31","id":51837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8053:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":51836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8039:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":51834,"name":"address","nodeType":"ElementaryTypeName","src":"8043:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51835,"nodeType":"ArrayTypeName","src":"8043:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":51838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8039:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8015:40:81"},{"expression":{"id":51844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51840,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51833,"src":"8065:4:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":51842,"indexExpression":{"hexValue":"30","id":51841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8070:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8065:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51843,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51456,"src":"8075:15:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8065:25:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51845,"nodeType":"ExpressionStatement","src":"8065:25:81"},{"assignments":[51850],"declarations":[{"constant":false,"id":51850,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"8183:19:81","nodeType":"VariableDeclaration","scope":51973,"src":"8143:59:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51849,"nodeType":"UserDefinedTypeName","pathNode":{"id":51848,"name":"GatewayDiamond.ConstructorParams","nameLocations":["8143:14:81","8158:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"8143:32:81"},"referencedDeclaration":35456,"src":"8143:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51853,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51851,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51669,"src":"8205:20:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35456_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":51852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8205:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8143:84:81"},{"expression":{"id":51858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51854,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8237:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51856,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51850,"src":"8275:19:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":51855,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"8254:20:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35456_memory_ptr_$returns$_t_contract$_GatewayDiamond_$35759_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":51857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8254:41:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"src":"8237:58:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"id":51859,"nodeType":"ExpressionStatement","src":"8237:58:81"},{"expression":{"id":51867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51860,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"8305:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51864,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8343:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8335:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51862,"name":"address","nodeType":"ElementaryTypeName","src":"8335:7:81","typeDescriptions":{}}},"id":51865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8335:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51861,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"8316:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$37869_$","typeString":"type(contract GatewayGetterFacet)"}},"id":51866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8316:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"src":"8305:54:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":51868,"nodeType":"ExpressionStatement","src":"8305:54:81"},{"expression":{"id":51876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51869,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"8369:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51873,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8409:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8401:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51871,"name":"address","nodeType":"ElementaryTypeName","src":"8401:7:81","typeDescriptions":{}}},"id":51874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8401:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51870,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"8381:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"type(contract GatewayManagerFacet)"}},"id":51875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8381:44:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"src":"8369:56:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":51877,"nodeType":"ExpressionStatement","src":"8369:56:81"},{"expression":{"id":51885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51878,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"8435:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51882,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8473:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8465:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51880,"name":"address","nodeType":"ElementaryTypeName","src":"8465:7:81","typeDescriptions":{}}},"id":51883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8465:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51879,"name":"GatewayRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39706,"src":"8446:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayRouterFacet_$39706_$","typeString":"type(contract GatewayRouterFacet)"}},"id":51884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8446:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"src":"8435:54:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":51886,"nodeType":"ExpressionStatement","src":"8435:54:81"},{"expression":{"id":51894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51887,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51574,"src":"8499:11:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51891,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8543:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8535:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51889,"name":"address","nodeType":"ElementaryTypeName","src":"8535:7:81","typeDescriptions":{}}},"id":51892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8535:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51888,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38674,"src":"8513:21:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$38674_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":51893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8513:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"src":"8499:60:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"id":51895,"nodeType":"ExpressionStatement","src":"8499:60:81"},{"expression":{"id":51903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51896,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51580,"src":"8569:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51900,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8606:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8598:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51898,"name":"address","nodeType":"ElementaryTypeName","src":"8598:7:81","typeDescriptions":{}}},"id":51901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8598:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51897,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"8580:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":51902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8580:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"8569:53:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":51904,"nodeType":"ExpressionStatement","src":"8569:53:81"},{"expression":{"id":51912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51905,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51577,"src":"8632:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51909,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8667:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8659:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51907,"name":"address","nodeType":"ElementaryTypeName","src":"8659:7:81","typeDescriptions":{}}},"id":51910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8659:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51906,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"8643:15:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36477_$","typeString":"type(contract DiamondCutFacet)"}},"id":51911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8643:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"8632:51:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":51913,"nodeType":"ExpressionStatement","src":"8632:51:81"},{"assignments":[51918],"declarations":[{"constant":false,"id":51918,"mutability":"mutable","name":"saConstructorParams","nameLocation":"8792:19:81","nodeType":"VariableDeclaration","scope":51973,"src":"8748:63:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":51917,"nodeType":"UserDefinedTypeName","pathNode":{"id":51916,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["8748:18:81","8767:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"8748:36:81"},"referencedDeclaration":35829,"src":"8748:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51925,"initialValue":{"arguments":[{"arguments":[{"id":51922,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8871:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8863:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51920,"name":"address","nodeType":"ElementaryTypeName","src":"8863:7:81","typeDescriptions":{}}},"id":51923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8863:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51919,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51791,"src":"8814:35:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$35829_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":51924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8814:82:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8748:148:81"},{"expression":{"id":51930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51926,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"8907:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51928,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51918,"src":"8937:19:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":51927,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[52359,52388,52589],"referencedDeclaration":52359,"src":"8919:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":51929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8919:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"src":"8907:50:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"id":51931,"nodeType":"ExpressionStatement","src":"8907:50:81"},{"expression":{"id":51939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51932,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"8967:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51936,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9011:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9003:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51934,"name":"address","nodeType":"ElementaryTypeName","src":"9003:7:81","typeDescriptions":{}}},"id":51937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9003:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51933,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"8979:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":51938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8979:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"src":"8967:55:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":51940,"nodeType":"ExpressionStatement","src":"8967:55:81"},{"expression":{"id":51948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51941,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"9032:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51945,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9074:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9066:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51943,"name":"address","nodeType":"ElementaryTypeName","src":"9066:7:81","typeDescriptions":{}}},"id":51946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9066:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51942,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"9043:22:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":51947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9043:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"9032:53:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":51949,"nodeType":"ExpressionStatement","src":"9032:53:81"},{"expression":{"id":51957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51950,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"9095:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51954,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9132:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9124:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51952,"name":"address","nodeType":"ElementaryTypeName","src":"9124:7:81","typeDescriptions":{}}},"id":51955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9124:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51951,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"9106:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":51956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9106:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"9095:48:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":51958,"nodeType":"ExpressionStatement","src":"9095:48:81"},{"expression":{"id":51966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51959,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"9153:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51963,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9188:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9180:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51961,"name":"address","nodeType":"ElementaryTypeName","src":"9180:7:81","typeDescriptions":{}}},"id":51964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9180:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51960,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"9164:15:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36477_$","typeString":"type(contract DiamondCutFacet)"}},"id":51965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9164:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"9153:46:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":51967,"nodeType":"ExpressionStatement","src":"9153:46:81"},{"expression":{"arguments":[{"id":51969,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51468,"src":"9223:19:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9244:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":51968,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[53132,53215],"referencedDeclaration":53215,"src":"9210:12:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9210:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51972,"nodeType":"ExpressionStatement","src":"9210:38:81"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"7982:5:81","parameters":{"id":51827,"nodeType":"ParameterList","parameters":[],"src":"7987:2:81"},"returnParameters":{"id":51828,"nodeType":"ParameterList","parameters":[],"src":"8005:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":52158,"nodeType":"FunctionDefinition","src":"9261:2119:81","nodes":[],"body":{"id":52157,"nodeType":"Block","src":"9371:2009:81","nodes":[],"statements":[{"assignments":[51985],"declarations":[{"constant":false,"id":51985,"mutability":"mutable","name":"router","nameLocation":"9400:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9381:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"},"typeName":{"id":51984,"nodeType":"UserDefinedTypeName","pathNode":{"id":51983,"name":"GatewayRouterFacet","nameLocations":["9381:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":39706,"src":"9381:18:81"},"referencedDeclaration":39706,"src":"9381:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"visibility":"internal"}],"id":51990,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9409:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayRouterFacet_$39706_$","typeString":"function () returns (contract GatewayRouterFacet)"},"typeName":{"id":51987,"nodeType":"UserDefinedTypeName","pathNode":{"id":51986,"name":"GatewayRouterFacet","nameLocations":["9413:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":39706,"src":"9413:18:81"},"referencedDeclaration":39706,"src":"9413:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}}},"id":51989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9409:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"9381:52:81"},{"assignments":[51993],"declarations":[{"constant":false,"id":51993,"mutability":"mutable","name":"manager","nameLocation":"9463:7:81","nodeType":"VariableDeclaration","scope":52157,"src":"9443:27:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"},"typeName":{"id":51992,"nodeType":"UserDefinedTypeName","pathNode":{"id":51991,"name":"GatewayManagerFacet","nameLocations":["9443:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"9443:19:81"},"referencedDeclaration":38359,"src":"9443:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":51998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9473:23:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":51995,"nodeType":"UserDefinedTypeName","pathNode":{"id":51994,"name":"GatewayManagerFacet","nameLocations":["9477:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"9477:19:81"},"referencedDeclaration":38359,"src":"9477:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}}},"id":51997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9473:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"9443:55:81"},{"assignments":[52001],"declarations":[{"constant":false,"id":52001,"mutability":"mutable","name":"getter","nameLocation":"9527:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9508:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52000,"nodeType":"UserDefinedTypeName","pathNode":{"id":51999,"name":"GatewayGetterFacet","nameLocations":["9508:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":37869,"src":"9508:18:81"},"referencedDeclaration":37869,"src":"9508:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":52006,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9536:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$37869_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":52003,"nodeType":"UserDefinedTypeName","pathNode":{"id":52002,"name":"GatewayGetterFacet","nameLocations":["9540:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":37869,"src":"9540:18:81"},"referencedDeclaration":37869,"src":"9540:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}}},"id":52005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9536:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"9508:52:81"},{"assignments":[52009],"declarations":[{"constant":false,"id":52009,"mutability":"mutable","name":"messenger","nameLocation":"9592:9:81","nodeType":"VariableDeclaration","scope":52157,"src":"9570:31:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52008,"nodeType":"UserDefinedTypeName","pathNode":{"id":52007,"name":"GatewayMessengerFacet","nameLocations":["9570:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":38674,"src":"9570:21:81"},"referencedDeclaration":38674,"src":"9570:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":52014,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9604:25:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$38674_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":52011,"nodeType":"UserDefinedTypeName","pathNode":{"id":52010,"name":"GatewayMessengerFacet","nameLocations":["9608:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":38674,"src":"9608:21:81"},"referencedDeclaration":38674,"src":"9608:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}}},"id":52013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9604:27:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"9570:61:81"},{"assignments":[52017],"declarations":[{"constant":false,"id":52017,"mutability":"mutable","name":"cutter","nameLocation":"9657:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9641:22:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":52016,"nodeType":"UserDefinedTypeName","pathNode":{"id":52015,"name":"DiamondCutFacet","nameLocations":["9641:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"9641:15:81"},"referencedDeclaration":36477,"src":"9641:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":52022,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9666:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52019,"nodeType":"UserDefinedTypeName","pathNode":{"id":52018,"name":"DiamondCutFacet","nameLocations":["9670:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"9670:15:81"},"referencedDeclaration":36477,"src":"9670:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9666:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"9641:46:81"},{"assignments":[52025],"declarations":[{"constant":false,"id":52025,"mutability":"mutable","name":"louper","nameLocation":"9715:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9697:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52024,"nodeType":"UserDefinedTypeName","pathNode":{"id":52023,"name":"DiamondLoupeFacet","nameLocations":["9697:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"9697:17:81"},"referencedDeclaration":36914,"src":"9697:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":52030,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9724:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52027,"nodeType":"UserDefinedTypeName","pathNode":{"id":52026,"name":"DiamondLoupeFacet","nameLocations":["9728:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"9728:17:81"},"referencedDeclaration":36914,"src":"9728:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9724:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"9697:50:81"},{"assignments":[52036],"declarations":[{"constant":false,"id":52036,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"9785:12:81","nodeType":"VariableDeclaration","scope":52157,"src":"9758:39:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52034,"nodeType":"UserDefinedTypeName","pathNode":{"id":52033,"name":"IDiamond.FacetCut","nameLocations":["9758:8:81","9767:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"9758:17:81"},"referencedDeclaration":39721,"src":"9758:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52035,"nodeType":"ArrayTypeName","src":"9758:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52043,"initialValue":{"arguments":[{"hexValue":"36","id":52041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9824:1:81","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"}],"id":52040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9800:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52038,"nodeType":"UserDefinedTypeName","pathNode":{"id":52037,"name":"IDiamond.FacetCut","nameLocations":["9804:8:81","9813:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"9804:17:81"},"referencedDeclaration":39721,"src":"9804:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52039,"nodeType":"ArrayTypeName","src":"9804:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9800:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9758:68:81"},{"expression":{"id":52059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52044,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"9837:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52046,"indexExpression":{"hexValue":"30","id":52045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9850:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9837:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52051,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51985,"src":"9927:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}],"id":52050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9919:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52049,"name":"address","nodeType":"ElementaryTypeName","src":"9919:7:81","typeDescriptions":{}}},"id":52052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52053,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"9960:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9969:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"9960:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9984:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"9960:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52056,"name":"gwRouterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51544,"src":"10024:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52047,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"9869:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9878:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"9869:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9905:12:81","9952:6:81","10005:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"9869:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52058,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9855:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"9837:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52060,"nodeType":"ExpressionStatement","src":"9837:229:81"},{"expression":{"id":52076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52061,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10077:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52063,"indexExpression":{"hexValue":"31","id":52062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10090:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10077:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52068,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51993,"src":"10167:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}],"id":52067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10159:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52066,"name":"address","nodeType":"ElementaryTypeName","src":"10159:7:81","typeDescriptions":{}}},"id":52069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10159:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52070,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10201:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10210:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10201:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10225:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10201:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52073,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51547,"src":"10265:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52064,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10109:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10118:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10109:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10145:12:81","10193:6:81","10246:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10109:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52075,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10095:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10077:231:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52077,"nodeType":"ExpressionStatement","src":"10077:231:81"},{"expression":{"id":52093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52078,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10319:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52080,"indexExpression":{"hexValue":"32","id":52079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10332:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10319:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52085,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52001,"src":"10409:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}],"id":52084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10401:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52083,"name":"address","nodeType":"ElementaryTypeName","src":"10401:7:81","typeDescriptions":{}}},"id":52086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10401:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52087,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10442:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10451:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10442:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10466:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10442:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52090,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51550,"src":"10506:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52081,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10351:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10360:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10351:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10387:12:81","10434:6:81","10487:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10351:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10337:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10319:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52094,"nodeType":"ExpressionStatement","src":"10319:229:81"},{"expression":{"id":52110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52095,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10559:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52097,"indexExpression":{"hexValue":"33","id":52096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10572:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10559:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52102,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52009,"src":"10649:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}],"id":52101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10641:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52100,"name":"address","nodeType":"ElementaryTypeName","src":"10641:7:81","typeDescriptions":{}}},"id":52103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10641:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52104,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10685:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10694:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10685:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10709:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10685:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52107,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"10749:20:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52098,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10591:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10600:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10591:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10627:12:81","10677:6:81","10730:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10591:193:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52109,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10577:217:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10559:235:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52111,"nodeType":"ExpressionStatement","src":"10559:235:81"},{"expression":{"id":52127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52112,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10805:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52114,"indexExpression":{"hexValue":"34","id":52113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10818:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10805:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52119,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52025,"src":"10895:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10887:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52117,"name":"address","nodeType":"ElementaryTypeName","src":"10887:7:81","typeDescriptions":{}}},"id":52120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10887:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52121,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10928:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10937:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10928:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10952:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10928:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52124,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51559,"src":"10992:16:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52115,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10837:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10846:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10837:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10873:12:81","10920:6:81","10973:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10837:186:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52126,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10823:210:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10805:228:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52128,"nodeType":"ExpressionStatement","src":"10805:228:81"},{"expression":{"id":52144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52129,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"11044:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52131,"indexExpression":{"hexValue":"35","id":52130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11057:1:81","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11044:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52136,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52017,"src":"11134:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11126:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52134,"name":"address","nodeType":"ElementaryTypeName","src":"11126:7:81","typeDescriptions":{}}},"id":52137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11126:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52138,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11167:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11176:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"11167:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11191:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"11167:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52141,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51556,"src":"11231:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52132,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11076:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11085:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"11076:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11112:12:81","11159:6:81","11212:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11076:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52143,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11062:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11044:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52145,"nodeType":"ExpressionStatement","src":"11044:229:81"},{"expression":{"id":52153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52146,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"11284:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52150,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"11320:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52151,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51977,"src":"11334:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":52149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11301:18:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35456_memory_ptr_$returns$_t_contract$_GatewayDiamond_$35759_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":52148,"nodeType":"UserDefinedTypeName","pathNode":{"id":52147,"name":"GatewayDiamond","nameLocations":["11305:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"11305:14:81"},"referencedDeclaration":35759,"src":"11305:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}},"id":52152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11301:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"src":"11284:57:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"id":52154,"nodeType":"ExpressionStatement","src":"11284:57:81"},{"expression":{"id":52155,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"11359:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"functionReturnParameters":51982,"id":52156,"nodeType":"Return","src":"11352:21:81"}]},"functionSelector":"cfebf300","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"9270:20:81","parameters":{"id":51978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51977,"mutability":"mutable","name":"params","nameLocation":"9331:6:81","nodeType":"VariableDeclaration","scope":52158,"src":"9291:46:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51976,"nodeType":"UserDefinedTypeName","pathNode":{"id":51975,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9291:14:81","9306:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"9291:32:81"},"referencedDeclaration":35456,"src":"9291:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"9290:48:81"},"returnParameters":{"id":51982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52158,"src":"9355:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":51980,"nodeType":"UserDefinedTypeName","pathNode":{"id":51979,"name":"GatewayDiamond","nameLocations":["9355:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"9355:14:81"},"referencedDeclaration":35759,"src":"9355:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"9354:16:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52224,"nodeType":"FunctionDefinition","src":"11386:854:81","nodes":[],"body":{"id":52223,"nodeType":"Block","src":"11594:646:81","nodes":[],"statements":[{"assignments":[52176],"declarations":[{"constant":false,"id":52176,"mutability":"mutable","name":"diamondCut","nameLocation":"11631:10:81","nodeType":"VariableDeclaration","scope":52223,"src":"11604:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52174,"nodeType":"UserDefinedTypeName","pathNode":{"id":52173,"name":"IDiamond.FacetCut","nameLocations":["11604:8:81","11613:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"11604:17:81"},"referencedDeclaration":39721,"src":"11604:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52175,"nodeType":"ArrayTypeName","src":"11604:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52183,"initialValue":{"arguments":[{"hexValue":"32","id":52181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11668:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":52180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11644:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52178,"nodeType":"UserDefinedTypeName","pathNode":{"id":52177,"name":"IDiamond.FacetCut","nameLocations":["11648:8:81","11657:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"11648:17:81"},"referencedDeclaration":39721,"src":"11648:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52179,"nodeType":"ArrayTypeName","src":"11648:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11644:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11604:66:81"},{"expression":{"id":52196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52184,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"11681:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52186,"indexExpression":{"hexValue":"30","id":52185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11692:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11681:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":52189,"name":"getterFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52163,"src":"11761:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52190,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11799:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11808:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"11799:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11823:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"11799:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52193,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"11863:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52187,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11711:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11720:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"11711:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11747:12:81","11791:6:81","11844:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11711:184:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52195,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11697:208:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11681:224:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52197,"nodeType":"ExpressionStatement","src":"11681:224:81"},{"expression":{"id":52210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52198,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"11916:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52200,"indexExpression":{"hexValue":"31","id":52199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11927:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11916:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":52203,"name":"managerFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52165,"src":"11996:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52204,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12035:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12044:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"12035:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12059:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"12035:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52207,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"12099:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52201,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11946:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11955:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"11946:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11982:12:81","12027:6:81","12080:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11946:186:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52209,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11932:210:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11916:226:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52211,"nodeType":"ExpressionStatement","src":"11916:226:81"},{"expression":{"id":52219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52212,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"12153:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52216,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"12188:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52217,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52161,"src":"12200:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12165:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52214,"nodeType":"UserDefinedTypeName","pathNode":{"id":52213,"name":"SubnetActorDiamond","nameLocations":["12169:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"12169:18:81"},"referencedDeclaration":36177,"src":"12169:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12165:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"src":"12153:54:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"id":52220,"nodeType":"ExpressionStatement","src":"12153:54:81"},{"expression":{"id":52221,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"12224:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":52170,"id":52222,"nodeType":"Return","src":"12217:16:81"}]},"functionSelector":"b64544ec","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"11395:35:81","parameters":{"id":52166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52161,"mutability":"mutable","name":"params","nameLocation":"11484:6:81","nodeType":"VariableDeclaration","scope":52224,"src":"11440:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52160,"nodeType":"UserDefinedTypeName","pathNode":{"id":52159,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["11440:18:81","11459:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"11440:36:81"},"referencedDeclaration":35829,"src":"11440:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":52163,"mutability":"mutable","name":"getterFaucet","nameLocation":"11508:12:81","nodeType":"VariableDeclaration","scope":52224,"src":"11500:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52162,"name":"address","nodeType":"ElementaryTypeName","src":"11500:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52165,"mutability":"mutable","name":"managerFaucet","nameLocation":"11538:13:81","nodeType":"VariableDeclaration","scope":52224,"src":"11530:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52164,"name":"address","nodeType":"ElementaryTypeName","src":"11530:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11430:127:81"},"returnParameters":{"id":52170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52224,"src":"11574:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52168,"nodeType":"UserDefinedTypeName","pathNode":{"id":52167,"name":"SubnetActorDiamond","nameLocations":["11574:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"11574:18:81"},"referencedDeclaration":36177,"src":"11574:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"11573:20:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52359,"nodeType":"FunctionDefinition","src":"12246:1518:81","nodes":[],"body":{"id":52358,"nodeType":"Block","src":"12361:1403:81","nodes":[],"statements":[{"assignments":[52235],"declarations":[{"constant":false,"id":52235,"mutability":"mutable","name":"manager","nameLocation":"12395:7:81","nodeType":"VariableDeclaration","scope":52358,"src":"12371:31:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52234,"nodeType":"UserDefinedTypeName","pathNode":{"id":52233,"name":"SubnetActorManagerFacet","nameLocations":["12371:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"12371:23:81"},"referencedDeclaration":50947,"src":"12371:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":52240,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12405:27:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":52237,"nodeType":"UserDefinedTypeName","pathNode":{"id":52236,"name":"SubnetActorManagerFacet","nameLocations":["12409:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"12409:23:81"},"referencedDeclaration":50947,"src":"12409:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}},"id":52239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12405:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"12371:63:81"},{"assignments":[52243],"declarations":[{"constant":false,"id":52243,"mutability":"mutable","name":"getter","nameLocation":"12467:6:81","nodeType":"VariableDeclaration","scope":52358,"src":"12444:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52242,"nodeType":"UserDefinedTypeName","pathNode":{"id":52241,"name":"SubnetActorGetterFacet","nameLocations":["12444:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"12444:22:81"},"referencedDeclaration":49325,"src":"12444:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":52248,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12476:26:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":52245,"nodeType":"UserDefinedTypeName","pathNode":{"id":52244,"name":"SubnetActorGetterFacet","nameLocations":["12480:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"12480:22:81"},"referencedDeclaration":49325,"src":"12480:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}},"id":52247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12476:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"12444:60:81"},{"assignments":[52251],"declarations":[{"constant":false,"id":52251,"mutability":"mutable","name":"louper","nameLocation":"12532:6:81","nodeType":"VariableDeclaration","scope":52358,"src":"12514:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52250,"nodeType":"UserDefinedTypeName","pathNode":{"id":52249,"name":"DiamondLoupeFacet","nameLocations":["12514:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"12514:17:81"},"referencedDeclaration":36914,"src":"12514:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":52256,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12541:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52253,"nodeType":"UserDefinedTypeName","pathNode":{"id":52252,"name":"DiamondLoupeFacet","nameLocations":["12545:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"12545:17:81"},"referencedDeclaration":36914,"src":"12545:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12541:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"12514:50:81"},{"assignments":[52259],"declarations":[{"constant":false,"id":52259,"mutability":"mutable","name":"cutter","nameLocation":"12590:6:81","nodeType":"VariableDeclaration","scope":52358,"src":"12574:22:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":52258,"nodeType":"UserDefinedTypeName","pathNode":{"id":52257,"name":"DiamondCutFacet","nameLocations":["12574:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"12574:15:81"},"referencedDeclaration":36477,"src":"12574:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":52264,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12599:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52261,"nodeType":"UserDefinedTypeName","pathNode":{"id":52260,"name":"DiamondCutFacet","nameLocations":["12603:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"12603:15:81"},"referencedDeclaration":36477,"src":"12603:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12599:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"12574:46:81"},{"assignments":[52270],"declarations":[{"constant":false,"id":52270,"mutability":"mutable","name":"diamondCut","nameLocation":"12658:10:81","nodeType":"VariableDeclaration","scope":52358,"src":"12631:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52268,"nodeType":"UserDefinedTypeName","pathNode":{"id":52267,"name":"IDiamond.FacetCut","nameLocations":["12631:8:81","12640:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"12631:17:81"},"referencedDeclaration":39721,"src":"12631:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52269,"nodeType":"ArrayTypeName","src":"12631:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52277,"initialValue":{"arguments":[{"hexValue":"34","id":52275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12695:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":52274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12671:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52272,"nodeType":"UserDefinedTypeName","pathNode":{"id":52271,"name":"IDiamond.FacetCut","nameLocations":["12675:8:81","12684:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"12675:17:81"},"referencedDeclaration":39721,"src":"12675:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52273,"nodeType":"ArrayTypeName","src":"12675:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12671:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12631:66:81"},{"expression":{"id":52293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52278,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"12708:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52280,"indexExpression":{"hexValue":"30","id":52279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12719:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12708:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52285,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52235,"src":"12796:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":52284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12788:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52283,"name":"address","nodeType":"ElementaryTypeName","src":"12788:7:81","typeDescriptions":{}}},"id":52286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12788:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52287,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12830:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12839:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"12830:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12854:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"12830:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52290,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"12894:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52281,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12738:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12747:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"12738:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12774:12:81","12822:6:81","12875:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12738:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52292,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12724:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12708:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52294,"nodeType":"ExpressionStatement","src":"12708:229:81"},{"expression":{"id":52310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52295,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"12948:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52297,"indexExpression":{"hexValue":"31","id":52296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12959:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12948:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52302,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52243,"src":"13036:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}],"id":52301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13028:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52300,"name":"address","nodeType":"ElementaryTypeName","src":"13028:7:81","typeDescriptions":{}}},"id":52303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13028:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52304,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13069:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13078:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"13069:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13093:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"13069:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52307,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"13133:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52298,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12978:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12987:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"12978:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13014:12:81","13061:6:81","13114:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12978:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52309,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12964:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12948:227:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52311,"nodeType":"ExpressionStatement","src":"12948:227:81"},{"expression":{"id":52327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52312,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"13186:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52314,"indexExpression":{"hexValue":"32","id":52313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13197:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13186:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52319,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52259,"src":"13274:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13266:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52317,"name":"address","nodeType":"ElementaryTypeName","src":"13266:7:81","typeDescriptions":{}}},"id":52320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13266:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52321,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13307:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13316:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"13307:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13331:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"13307:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52324,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51556,"src":"13371:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52315,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13216:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13225:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"13216:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13252:12:81","13299:6:81","13352:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13216:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52326,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13202:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13186:227:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52328,"nodeType":"ExpressionStatement","src":"13186:227:81"},{"expression":{"id":52344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52329,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"13424:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52331,"indexExpression":{"hexValue":"33","id":52330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13435:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13424:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52336,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52251,"src":"13512:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13504:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52334,"name":"address","nodeType":"ElementaryTypeName","src":"13504:7:81","typeDescriptions":{}}},"id":52337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13504:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52338,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13545:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13554:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"13545:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13569:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"13545:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52341,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51559,"src":"13609:16:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52332,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13454:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13463:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"13454:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13490:12:81","13537:6:81","13590:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13454:186:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52343,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13440:210:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13424:226:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52345,"nodeType":"ExpressionStatement","src":"13424:226:81"},{"assignments":[52348],"declarations":[{"constant":false,"id":52348,"mutability":"mutable","name":"diamond","nameLocation":"13680:7:81","nodeType":"VariableDeclaration","scope":52358,"src":"13661:26:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52347,"nodeType":"UserDefinedTypeName","pathNode":{"id":52346,"name":"SubnetActorDiamond","nameLocations":["13661:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"13661:18:81"},"referencedDeclaration":36177,"src":"13661:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":52355,"initialValue":{"arguments":[{"id":52352,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"13713:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52353,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52227,"src":"13725:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"13690:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52350,"nodeType":"UserDefinedTypeName","pathNode":{"id":52349,"name":"SubnetActorDiamond","nameLocations":["13694:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"13694:18:81"},"referencedDeclaration":36177,"src":"13694:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13690:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"13661:71:81"},{"expression":{"id":52356,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52348,"src":"13750:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":52232,"id":52357,"nodeType":"Return","src":"13743:14:81"}]},"functionSelector":"b0ed3c00","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"12255:17:81","parameters":{"id":52228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52227,"mutability":"mutable","name":"params","nameLocation":"12317:6:81","nodeType":"VariableDeclaration","scope":52359,"src":"12273:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52226,"nodeType":"UserDefinedTypeName","pathNode":{"id":52225,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["12273:18:81","12292:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"12273:36:81"},"referencedDeclaration":35829,"src":"12273:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"12272:52:81"},"returnParameters":{"id":52232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52359,"src":"12341:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52230,"nodeType":"UserDefinedTypeName","pathNode":{"id":52229,"name":"SubnetActorDiamond","nameLocations":["12341:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"12341:18:81"},"referencedDeclaration":36177,"src":"12341:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"12340:20:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52388,"nodeType":"FunctionDefinition","src":"13770:522:81","nodes":[],"body":{"id":52387,"nodeType":"Block","src":"14014:278:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":52376,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52361,"src":"14055:15:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":52377,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52364,"src":"14084:10:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":52378,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52366,"src":"14108:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52379,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52368,"src":"14146:14:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52380,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52370,"src":"14174:12:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52381,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52372,"src":"14200:19:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":52382,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"14233:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":52383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14248:10:81","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":48645,"src":"14233:25:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":52384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14272:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":52375,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[52359,52388,52589],"referencedDeclaration":52589,"src":"14024:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$36918_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$48648_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":52385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14024:261:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52386,"nodeType":"ExpressionStatement","src":"14024:261:81"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"13779:17:81","parameters":{"id":52373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52361,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"13814:15:81","nodeType":"VariableDeclaration","scope":52388,"src":"13806:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52360,"name":"address","nodeType":"ElementaryTypeName","src":"13806:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52364,"mutability":"mutable","name":"_consensus","nameLocation":"13853:10:81","nodeType":"VariableDeclaration","scope":52388,"src":"13839:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},"typeName":{"id":52363,"nodeType":"UserDefinedTypeName","pathNode":{"id":52362,"name":"ConsensusType","nameLocations":["13839:13:81"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"13839:13:81"},"referencedDeclaration":36918,"src":"13839:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":52366,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"13881:24:81","nodeType":"VariableDeclaration","scope":52388,"src":"13873:32:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52365,"name":"uint256","nodeType":"ElementaryTypeName","src":"13873:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52368,"mutability":"mutable","name":"_minValidators","nameLocation":"13922:14:81","nodeType":"VariableDeclaration","scope":52388,"src":"13915:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52367,"name":"uint64","nodeType":"ElementaryTypeName","src":"13915:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52370,"mutability":"mutable","name":"_checkPeriod","nameLocation":"13953:12:81","nodeType":"VariableDeclaration","scope":52388,"src":"13946:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52369,"name":"uint64","nodeType":"ElementaryTypeName","src":"13946:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52372,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"13981:19:81","nodeType":"VariableDeclaration","scope":52388,"src":"13975:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52371,"name":"uint8","nodeType":"ElementaryTypeName","src":"13975:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"13796:210:81"},"returnParameters":{"id":52374,"nodeType":"ParameterList","parameters":[],"src":"14014:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52589,"nodeType":"FunctionDefinition","src":"14298:2571:81","nodes":[],"body":{"id":52588,"nodeType":"Block","src":"14621:2248:81","nodes":[],"statements":[{"assignments":[52411],"declarations":[{"constant":false,"id":52411,"mutability":"mutable","name":"_parentId","nameLocation":"14647:9:81","nodeType":"VariableDeclaration","scope":52588,"src":"14631:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":52410,"nodeType":"UserDefinedTypeName","pathNode":{"id":52409,"name":"SubnetID","nameLocations":["14631:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"14631:8:81"},"referencedDeclaration":48557,"src":"14631:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":52420,"initialValue":{"arguments":[{"id":52413,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51450,"src":"14668:15:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14699:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14685:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52414,"name":"address","nodeType":"ElementaryTypeName","src":"14689:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52415,"nodeType":"ArrayTypeName","src":"14689:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14685:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52412,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"14659:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14659:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"14631:71:81"},{"expression":{"id":52426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52421,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"14713:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14725:27:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":52423,"nodeType":"UserDefinedTypeName","pathNode":{"id":52422,"name":"SubnetActorManagerFacet","nameLocations":["14729:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"14729:23:81"},"referencedDeclaration":50947,"src":"14729:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}},"id":52425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14725:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"src":"14713:41:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":52427,"nodeType":"ExpressionStatement","src":"14713:41:81"},{"expression":{"id":52433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52428,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"14764:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14775:26:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":52430,"nodeType":"UserDefinedTypeName","pathNode":{"id":52429,"name":"SubnetActorGetterFacet","nameLocations":["14779:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"14779:22:81"},"referencedDeclaration":49325,"src":"14779:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}},"id":52432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14775:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"14764:39:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":52434,"nodeType":"ExpressionStatement","src":"14764:39:81"},{"expression":{"id":52440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52435,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"14813:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14824:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52437,"nodeType":"UserDefinedTypeName","pathNode":{"id":52436,"name":"DiamondCutFacet","nameLocations":["14828:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"14828:15:81"},"referencedDeclaration":36477,"src":"14828:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14824:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"14813:32:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":52441,"nodeType":"ExpressionStatement","src":"14813:32:81"},{"expression":{"id":52447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52442,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"14855:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14866:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52444,"nodeType":"UserDefinedTypeName","pathNode":{"id":52443,"name":"DiamondLoupeFacet","nameLocations":["14870:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"14870:17:81"},"referencedDeclaration":36914,"src":"14870:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14866:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"14855:34:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":52448,"nodeType":"ExpressionStatement","src":"14855:34:81"},{"assignments":[52454],"declarations":[{"constant":false,"id":52454,"mutability":"mutable","name":"diamondCut","nameLocation":"14927:10:81","nodeType":"VariableDeclaration","scope":52588,"src":"14900:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52452,"nodeType":"UserDefinedTypeName","pathNode":{"id":52451,"name":"IDiamond.FacetCut","nameLocations":["14900:8:81","14909:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"14900:17:81"},"referencedDeclaration":39721,"src":"14900:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52453,"nodeType":"ArrayTypeName","src":"14900:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52461,"initialValue":{"arguments":[{"hexValue":"34","id":52459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14964:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":52458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14940:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52456,"nodeType":"UserDefinedTypeName","pathNode":{"id":52455,"name":"IDiamond.FacetCut","nameLocations":["14944:8:81","14953:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"14944:17:81"},"referencedDeclaration":39721,"src":"14944:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52457,"nodeType":"ArrayTypeName","src":"14944:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14940:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14900:66:81"},{"expression":{"id":52477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52462,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"14977:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52464,"indexExpression":{"hexValue":"30","id":52463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14988:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14977:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52469,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"15065:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":52468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15057:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52467,"name":"address","nodeType":"ElementaryTypeName","src":"15057:7:81","typeDescriptions":{}}},"id":52470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15057:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52471,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15101:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15110:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15101:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15125:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15101:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52474,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"15165:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52465,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15007:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15016:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15007:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15043:12:81","15093:6:81","15146:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15007:191:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52476,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14993:215:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14977:231:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52478,"nodeType":"ExpressionStatement","src":"14977:231:81"},{"expression":{"id":52494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52479,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15219:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52481,"indexExpression":{"hexValue":"31","id":52480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15230:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15219:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52486,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"15307:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}],"id":52485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15299:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52484,"name":"address","nodeType":"ElementaryTypeName","src":"15299:7:81","typeDescriptions":{}}},"id":52487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15299:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52488,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15342:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15351:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15342:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15366:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15342:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52491,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"15406:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52482,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15249:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15258:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15249:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15285:12:81","15334:6:81","15387:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15249:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52493,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15235:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15219:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52495,"nodeType":"ExpressionStatement","src":"15219:229:81"},{"expression":{"id":52511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52496,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15459:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52498,"indexExpression":{"hexValue":"32","id":52497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15470:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15459:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52503,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"15547:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15539:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52501,"name":"address","nodeType":"ElementaryTypeName","src":"15539:7:81","typeDescriptions":{}}},"id":52504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15539:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52505,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15582:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15591:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15582:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15606:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15582:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52508,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"15646:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52499,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15489:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15498:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15489:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15525:12:81","15574:6:81","15627:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15489:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52510,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15475:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15459:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52512,"nodeType":"ExpressionStatement","src":"15459:229:81"},{"expression":{"id":52528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52513,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15699:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52515,"indexExpression":{"hexValue":"33","id":52514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15710:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15699:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52520,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"15787:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15779:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52518,"name":"address","nodeType":"ElementaryTypeName","src":"15779:7:81","typeDescriptions":{}}},"id":52521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15779:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52522,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15822:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15831:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15822:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15846:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15822:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52525,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51689,"src":"15886:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52516,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15729:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15738:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15729:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15765:12:81","15814:6:81","15867:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15729:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52527,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15715:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15699:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52529,"nodeType":"ExpressionStatement","src":"15699:229:81"},{"expression":{"id":52550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52530,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"15939:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52534,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15987:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":52537,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52411,"src":"16076:9:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52538,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52390,"src":"16119:15:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":52539,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52393,"src":"16163:10:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":52540,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52395,"src":"16216:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52541,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52397,"src":"16273:14:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52542,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52399,"src":"16326:12:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52543,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52401,"src":"16376:19:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":52544,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52406,"src":"16436:22:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":52545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16488:2:81","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":52546,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52404,"src":"16524:15:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},{"id":52547,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"16573:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52535,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"16011:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"type(contract SubnetActorDiamond)"}},"id":52536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16030:17:81","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35829,"src":"16011:36:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35829_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":52548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16066:8:81","16103:14:81","16152:9:81","16191:23:81","16258:13:81","16305:19:81","16356:18:81","16413:21:81","16476:10:81","16508:14:81","16557:14:81"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee"],"nodeType":"FunctionCall","src":"16011:598:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"15951:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52532,"nodeType":"UserDefinedTypeName","pathNode":{"id":52531,"name":"SubnetActorDiamond","nameLocations":["15955:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"15955:18:81"},"referencedDeclaration":36177,"src":"15955:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15951:668:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"src":"15939:680:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"id":52551,"nodeType":"ExpressionStatement","src":"15939:680:81"},{"expression":{"id":52559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52552,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"16630:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52556,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16674:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16666:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52554,"name":"address","nodeType":"ElementaryTypeName","src":"16666:7:81","typeDescriptions":{}}},"id":52557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16666:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52553,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"16642:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":52558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16642:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"src":"16630:55:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":52560,"nodeType":"ExpressionStatement","src":"16630:55:81"},{"expression":{"id":52568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52561,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"16695:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52565,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16737:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16729:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52563,"name":"address","nodeType":"ElementaryTypeName","src":"16729:7:81","typeDescriptions":{}}},"id":52566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16729:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52562,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"16706:22:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":52567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16706:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"16695:53:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":52569,"nodeType":"ExpressionStatement","src":"16695:53:81"},{"expression":{"id":52577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52570,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"16758:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52574,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16793:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16785:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52572,"name":"address","nodeType":"ElementaryTypeName","src":"16785:7:81","typeDescriptions":{}}},"id":52575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16785:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52571,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"16769:15:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36477_$","typeString":"type(contract DiamondCutFacet)"}},"id":52576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16769:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"16758:46:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":52578,"nodeType":"ExpressionStatement","src":"16758:46:81"},{"expression":{"id":52586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52579,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"16814:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52583,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16851:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16843:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52581,"name":"address","nodeType":"ElementaryTypeName","src":"16843:7:81","typeDescriptions":{}}},"id":52584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16843:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52580,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"16825:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":52585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16825:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"16814:48:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":52587,"nodeType":"ExpressionStatement","src":"16814:48:81"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"14307:17:81","parameters":{"id":52407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52390,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"14342:15:81","nodeType":"VariableDeclaration","scope":52589,"src":"14334:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52389,"name":"address","nodeType":"ElementaryTypeName","src":"14334:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52393,"mutability":"mutable","name":"_consensus","nameLocation":"14381:10:81","nodeType":"VariableDeclaration","scope":52589,"src":"14367:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},"typeName":{"id":52392,"nodeType":"UserDefinedTypeName","pathNode":{"id":52391,"name":"ConsensusType","nameLocations":["14367:13:81"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"14367:13:81"},"referencedDeclaration":36918,"src":"14367:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":52395,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"14409:24:81","nodeType":"VariableDeclaration","scope":52589,"src":"14401:32:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52394,"name":"uint256","nodeType":"ElementaryTypeName","src":"14401:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52397,"mutability":"mutable","name":"_minValidators","nameLocation":"14450:14:81","nodeType":"VariableDeclaration","scope":52589,"src":"14443:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52396,"name":"uint64","nodeType":"ElementaryTypeName","src":"14443:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52399,"mutability":"mutable","name":"_checkPeriod","nameLocation":"14481:12:81","nodeType":"VariableDeclaration","scope":52589,"src":"14474:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52398,"name":"uint64","nodeType":"ElementaryTypeName","src":"14474:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52401,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"14509:19:81","nodeType":"VariableDeclaration","scope":52589,"src":"14503:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52400,"name":"uint8","nodeType":"ElementaryTypeName","src":"14503:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":52404,"mutability":"mutable","name":"_permissionMode","nameLocation":"14553:15:81","nodeType":"VariableDeclaration","scope":52589,"src":"14538:30:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"typeName":{"id":52403,"nodeType":"UserDefinedTypeName","pathNode":{"id":52402,"name":"PermissionMode","nameLocations":["14538:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48648,"src":"14538:14:81"},"referencedDeclaration":48648,"src":"14538:14:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":52406,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"14585:22:81","nodeType":"VariableDeclaration","scope":52589,"src":"14578:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52405,"name":"uint16","nodeType":"ElementaryTypeName","src":"14578:6:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"14324:289:81"},"returnParameters":{"id":52408,"nodeType":"ParameterList","parameters":[],"src":"14621:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52682,"nodeType":"FunctionDefinition","src":"16875:1021:81","nodes":[],"body":{"id":52681,"nodeType":"Block","src":"16967:929:81","nodes":[],"statements":[{"assignments":[52599],"declarations":[{"constant":false,"id":52599,"mutability":"mutable","name":"mockedManager","nameLocation":"17005:13:81","nodeType":"VariableDeclaration","scope":52681,"src":"16977:41:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":52598,"nodeType":"UserDefinedTypeName","pathNode":{"id":52597,"name":"SubnetActorManagerFacetMock","nameLocations":["16977:27:81"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"16977:27:81"},"referencedDeclaration":56069,"src":"16977:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"}],"id":52604,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17021:31:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacetMock_$56069_$","typeString":"function () returns (contract SubnetActorManagerFacetMock)"},"typeName":{"id":52601,"nodeType":"UserDefinedTypeName","pathNode":{"id":52600,"name":"SubnetActorManagerFacetMock","nameLocations":["17025:27:81"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"17025:27:81"},"referencedDeclaration":56069,"src":"17025:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}}},"id":52603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17021:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"VariableDeclarationStatement","src":"16977:77:81"},{"assignments":[52607],"declarations":[{"constant":false,"id":52607,"mutability":"mutable","name":"getter","nameLocation":"17087:6:81","nodeType":"VariableDeclaration","scope":52681,"src":"17064:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52606,"nodeType":"UserDefinedTypeName","pathNode":{"id":52605,"name":"SubnetActorGetterFacet","nameLocations":["17064:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"17064:22:81"},"referencedDeclaration":49325,"src":"17064:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":52612,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17096:26:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":52609,"nodeType":"UserDefinedTypeName","pathNode":{"id":52608,"name":"SubnetActorGetterFacet","nameLocations":["17100:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"17100:22:81"},"referencedDeclaration":49325,"src":"17100:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}},"id":52611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17096:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"17064:60:81"},{"assignments":[52618],"declarations":[{"constant":false,"id":52618,"mutability":"mutable","name":"diamondCut","nameLocation":"17162:10:81","nodeType":"VariableDeclaration","scope":52681,"src":"17135:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52616,"nodeType":"UserDefinedTypeName","pathNode":{"id":52615,"name":"IDiamond.FacetCut","nameLocations":["17135:8:81","17144:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"17135:17:81"},"referencedDeclaration":39721,"src":"17135:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52617,"nodeType":"ArrayTypeName","src":"17135:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52625,"initialValue":{"arguments":[{"hexValue":"32","id":52623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17199:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":52622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17175:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52620,"nodeType":"UserDefinedTypeName","pathNode":{"id":52619,"name":"IDiamond.FacetCut","nameLocations":["17179:8:81","17188:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"17179:17:81"},"referencedDeclaration":39721,"src":"17179:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52621,"nodeType":"ArrayTypeName","src":"17179:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17175:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17135:66:81"},{"expression":{"id":52641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52626,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"17212:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52628,"indexExpression":{"hexValue":"30","id":52627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17223:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17212:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52633,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52599,"src":"17300:13:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}],"id":52632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17292:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52631,"name":"address","nodeType":"ElementaryTypeName","src":"17292:7:81","typeDescriptions":{}}},"id":52634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17292:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52635,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17340:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17349:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"17340:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17364:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"17340:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52638,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51683,"src":"17404:24:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52629,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17242:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17251:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"17242:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17278:12:81","17332:6:81","17385:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17242:201:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52640,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17228:225:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17212:241:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52642,"nodeType":"ExpressionStatement","src":"17212:241:81"},{"expression":{"id":52658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52643,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"17464:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52645,"indexExpression":{"hexValue":"31","id":52644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17475:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17464:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52650,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52607,"src":"17552:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}],"id":52649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17544:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52648,"name":"address","nodeType":"ElementaryTypeName","src":"17544:7:81","typeDescriptions":{}}},"id":52651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17544:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52652,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17585:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17594:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"17585:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17609:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"17585:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52655,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"17649:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52646,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17494:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17503:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"17494:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17530:12:81","17577:6:81","17630:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17494:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52657,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17480:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17464:227:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52659,"nodeType":"ExpressionStatement","src":"17464:227:81"},{"assignments":[52664],"declarations":[{"constant":false,"id":52664,"mutability":"mutable","name":"params","nameLocation":"17746:6:81","nodeType":"VariableDeclaration","scope":52681,"src":"17702:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52663,"nodeType":"UserDefinedTypeName","pathNode":{"id":52662,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["17702:18:81","17721:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"17702:36:81"},"referencedDeclaration":35829,"src":"17702:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52668,"initialValue":{"arguments":[{"id":52666,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52591,"src":"17791:2:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52665,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51791,"src":"17755:35:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$35829_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":52667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17755:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"17702:92:81"},{"assignments":[52671],"declarations":[{"constant":false,"id":52671,"mutability":"mutable","name":"d","nameLocation":"17824:1:81","nodeType":"VariableDeclaration","scope":52681,"src":"17805:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52670,"nodeType":"UserDefinedTypeName","pathNode":{"id":52669,"name":"SubnetActorDiamond","nameLocations":["17805:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"17805:18:81"},"referencedDeclaration":36177,"src":"17805:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":52678,"initialValue":{"arguments":[{"id":52675,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"17851:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52676,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"17863:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17828:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52673,"nodeType":"UserDefinedTypeName","pathNode":{"id":52672,"name":"SubnetActorDiamond","nameLocations":["17832:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"17832:18:81"},"referencedDeclaration":36177,"src":"17832:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17828:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"17805:65:81"},{"expression":{"id":52679,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52671,"src":"17888:1:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":52596,"id":52680,"nodeType":"Return","src":"17881:8:81"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"16884:34:81","parameters":{"id":52592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52591,"mutability":"mutable","name":"gw","nameLocation":"16927:2:81","nodeType":"VariableDeclaration","scope":52682,"src":"16919:10:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52590,"name":"address","nodeType":"ElementaryTypeName","src":"16919:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16918:12:81"},"returnParameters":{"id":52596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52682,"src":"16947:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52594,"nodeType":"UserDefinedTypeName","pathNode":{"id":52593,"name":"SubnetActorDiamond","nameLocations":["16947:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"16947:18:81"},"referencedDeclaration":36177,"src":"16947:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"16946:20:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52824,"nodeType":"FunctionDefinition","src":"17948:1703:81","nodes":[],"body":{"id":52823,"nodeType":"Block","src":"18086:1565:81","nodes":[],"statements":[{"assignments":[52696],"declarations":[{"constant":false,"id":52696,"mutability":"mutable","name":"diamondCut","nameLocation":"18123:10:81","nodeType":"VariableDeclaration","scope":52823,"src":"18096:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52694,"nodeType":"UserDefinedTypeName","pathNode":{"id":52693,"name":"IDiamond.FacetCut","nameLocations":["18096:8:81","18105:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"18096:17:81"},"referencedDeclaration":39721,"src":"18096:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52695,"nodeType":"ArrayTypeName","src":"18096:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52703,"initialValue":{"arguments":[{"hexValue":"34","id":52701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18160:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":52700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18136:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52698,"nodeType":"UserDefinedTypeName","pathNode":{"id":52697,"name":"IDiamond.FacetCut","nameLocations":["18140:8:81","18149:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"18140:17:81"},"referencedDeclaration":39721,"src":"18140:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52699,"nodeType":"ArrayTypeName","src":"18140:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18136:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18096:66:81"},{"assignments":[52706],"declarations":[{"constant":false,"id":52706,"mutability":"mutable","name":"regCutFacet","nameLocation":"18189:11:81","nodeType":"VariableDeclaration","scope":52823,"src":"18173:27:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":52705,"nodeType":"UserDefinedTypeName","pathNode":{"id":52704,"name":"DiamondCutFacet","nameLocations":["18173:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"18173:15:81"},"referencedDeclaration":36477,"src":"18173:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":52711,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18203:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52708,"nodeType":"UserDefinedTypeName","pathNode":{"id":52707,"name":"DiamondCutFacet","nameLocations":["18207:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"18207:15:81"},"referencedDeclaration":36477,"src":"18207:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18203:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"18173:51:81"},{"assignments":[52714],"declarations":[{"constant":false,"id":52714,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"18252:13:81","nodeType":"VariableDeclaration","scope":52823,"src":"18234:31:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"DiamondLoupeFacet","nameLocations":["18234:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"18234:17:81"},"referencedDeclaration":36914,"src":"18234:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":52719,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18268:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52716,"nodeType":"UserDefinedTypeName","pathNode":{"id":52715,"name":"DiamondLoupeFacet","nameLocations":["18272:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"18272:17:81"},"referencedDeclaration":36914,"src":"18272:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18268:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"18234:57:81"},{"assignments":[52722],"declarations":[{"constant":false,"id":52722,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"18321:14:81","nodeType":"VariableDeclaration","scope":52823,"src":"18301:34:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52721,"nodeType":"UserDefinedTypeName","pathNode":{"id":52720,"name":"RegisterSubnetFacet","nameLocations":["18301:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"18301:19:81"},"referencedDeclaration":51075,"src":"18301:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":52727,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18338:23:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$51075_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":52724,"nodeType":"UserDefinedTypeName","pathNode":{"id":52723,"name":"RegisterSubnetFacet","nameLocations":["18342:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"18342:19:81"},"referencedDeclaration":51075,"src":"18342:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}}},"id":52726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18338:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"18301:62:81"},{"assignments":[52730],"declarations":[{"constant":false,"id":52730,"mutability":"mutable","name":"regGetterFacet","nameLocation":"18391:14:81","nodeType":"VariableDeclaration","scope":52823,"src":"18373:32:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52729,"nodeType":"UserDefinedTypeName","pathNode":{"id":52728,"name":"SubnetGetterFacet","nameLocations":["18373:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"18373:17:81"},"referencedDeclaration":51313,"src":"18373:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":52735,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18408:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$51313_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":52732,"nodeType":"UserDefinedTypeName","pathNode":{"id":52731,"name":"SubnetGetterFacet","nameLocations":["18412:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"18412:17:81"},"referencedDeclaration":51313,"src":"18412:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}}},"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18408:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"18373:58:81"},{"expression":{"id":52751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52736,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"18442:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52738,"indexExpression":{"hexValue":"30","id":52737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18453:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18442:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52743,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52714,"src":"18530:13:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18522:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52741,"name":"address","nodeType":"ElementaryTypeName","src":"18522:7:81","typeDescriptions":{}}},"id":52744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18522:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52745,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18570:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18579:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"18570:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18594:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"18570:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52748,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51485,"src":"18634:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52739,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18472:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18481:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"18472:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18508:12:81","18562:6:81","18615:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18472:200:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52750,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18458:224:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18442:240:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52752,"nodeType":"ExpressionStatement","src":"18442:240:81"},{"expression":{"id":52768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52753,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"18692:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52755,"indexExpression":{"hexValue":"31","id":52754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18703:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18692:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52760,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52706,"src":"18780:11:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18772:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52758,"name":"address","nodeType":"ElementaryTypeName","src":"18772:7:81","typeDescriptions":{}}},"id":52761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18772:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52762,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18818:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18827:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"18818:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18842:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"18818:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52765,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51482,"src":"18882:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52756,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18722:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18731:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"18722:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18758:12:81","18810:6:81","18863:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18722:198:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52767,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18708:222:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18692:238:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52769,"nodeType":"ExpressionStatement","src":"18692:238:81"},{"expression":{"id":52785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52770,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"18940:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52772,"indexExpression":{"hexValue":"32","id":52771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18951:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18940:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52777,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52722,"src":"19028:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}],"id":52776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19020:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52775,"name":"address","nodeType":"ElementaryTypeName","src":"19020:7:81","typeDescriptions":{}}},"id":52778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19020:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52779,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"19069:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19078:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"19069:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19093:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"19069:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52782,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51476,"src":"19133:28:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52773,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18970:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18979:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"18970:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19006:12:81","19061:6:81","19114:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18970:206:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52784,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18956:230:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18940:246:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52786,"nodeType":"ExpressionStatement","src":"18940:246:81"},{"expression":{"id":52802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52787,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"19196:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52789,"indexExpression":{"hexValue":"33","id":52788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19207:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19196:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52794,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52730,"src":"19284:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}],"id":52793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19276:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52792,"name":"address","nodeType":"ElementaryTypeName","src":"19276:7:81","typeDescriptions":{}}},"id":52795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19276:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52796,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"19325:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19334:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"19325:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19349:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"19325:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52799,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51479,"src":"19389:34:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52790,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"19226:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19235:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"19226:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19262:12:81","19317:6:81","19370:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19226:212:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52801,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19212:236:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19196:252:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52803,"nodeType":"ExpressionStatement","src":"19196:252:81"},{"assignments":[52806],"declarations":[{"constant":false,"id":52806,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"19481:17:81","nodeType":"VariableDeclaration","scope":52823,"src":"19459:39:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52805,"nodeType":"UserDefinedTypeName","pathNode":{"id":52804,"name":"SubnetRegistryDiamond","nameLocations":["19459:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"19459:21:81"},"referencedDeclaration":36415,"src":"19459:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":52813,"initialValue":{"arguments":[{"id":52810,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"19527:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52811,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52685,"src":"19539:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":52809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19501:25:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36214_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36415_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":52808,"nodeType":"UserDefinedTypeName","pathNode":{"id":52807,"name":"SubnetRegistryDiamond","nameLocations":["19505:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"19505:21:81"},"referencedDeclaration":36415,"src":"19505:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}}},"id":52812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19501:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"19459:87:81"},{"eventCall":{"arguments":[{"arguments":[{"id":52817,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"19591:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}],"id":52816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19583:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52815,"name":"address","nodeType":"ElementaryTypeName","src":"19583:7:81","typeDescriptions":{}}},"id":52818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19583:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52814,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51822,"src":"19561:21:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":52819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19561:49:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52820,"nodeType":"EmitStatement","src":"19556:54:81"},{"expression":{"id":52821,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"19627:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":52690,"id":52822,"nodeType":"Return","src":"19620:24:81"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"17957:20:81","parameters":{"id":52686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52685,"mutability":"mutable","name":"params","nameLocation":"18034:6:81","nodeType":"VariableDeclaration","scope":52824,"src":"17987:53:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":52684,"nodeType":"UserDefinedTypeName","pathNode":{"id":52683,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["17987:21:81","18009:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36214,"src":"17987:39:81"},"referencedDeclaration":36214,"src":"17987:39:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"17977:69:81"},"returnParameters":{"id":52690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52824,"src":"18063:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52688,"nodeType":"UserDefinedTypeName","pathNode":{"id":52687,"name":"SubnetRegistryDiamond","nameLocations":["18063:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"18063:21:81"},"referencedDeclaration":36415,"src":"18063:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"18062:23:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52853,"nodeType":"FunctionDefinition","src":"19657:190:81","nodes":[],"body":{"id":52852,"nodeType":"Block","src":"19738:109:81","nodes":[],"statements":[{"body":{"id":52848,"nodeType":"Block","src":"19779:42:81","statements":[{"expression":{"id":52846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52842,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52830,"src":"19793:3:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":52843,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52827,"src":"19800:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52845,"indexExpression":{"id":52844,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52833,"src":"19808:1:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19800:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19793:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52847,"nodeType":"ExpressionStatement","src":"19793:17:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52836,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52833,"src":"19767:1:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":52837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19771:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"19767:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52849,"initializationExpression":{"assignments":[52833],"declarations":[{"constant":false,"id":52833,"mutability":"mutable","name":"i","nameLocation":"19760:1:81","nodeType":"VariableDeclaration","scope":52849,"src":"19753:8:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52832,"name":"uint64","nodeType":"ElementaryTypeName","src":"19753:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":52835,"initialValue":{"hexValue":"30","id":52834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19764:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"19753:12:81"},"loopExpression":{"expression":{"id":52840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19774:3:81","subExpression":{"id":52839,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52833,"src":"19774:1:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":52841,"nodeType":"ExpressionStatement","src":"19774:3:81"},"nodeType":"ForStatement","src":"19748:73:81"},{"expression":{"id":52850,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52830,"src":"19837:3:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":52831,"id":52851,"nodeType":"Return","src":"19830:10:81"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"19666:11:81","parameters":{"id":52828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52827,"mutability":"mutable","name":"weights","nameLocation":"19695:7:81","nodeType":"VariableDeclaration","scope":52853,"src":"19678:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":52825,"name":"uint256","nodeType":"ElementaryTypeName","src":"19678:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52826,"nodeType":"ArrayTypeName","src":"19678:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"19677:26:81"},"returnParameters":{"id":52831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52830,"mutability":"mutable","name":"sum","nameLocation":"19733:3:81","nodeType":"VariableDeclaration","scope":52853,"src":"19725:11:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52829,"name":"uint256","nodeType":"ElementaryTypeName","src":"19725:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19724:13:81"},"scope":54008,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":53028,"nodeType":"FunctionDefinition","src":"19853:919:81","nodes":[],"body":{"id":53027,"nodeType":"Block","src":"19956:816:81","nodes":[],"statements":[{"expression":{"id":52870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52863,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"19966:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":52868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19996:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":52867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19979:16:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":52865,"nodeType":"UserDefinedTypeName","pathNode":{"id":52864,"name":"FvmAddress","nameLocations":["19983:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"19983:10:81"},"referencedDeclaration":48476,"src":"19983:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":52866,"nodeType":"ArrayTypeName","src":"19983:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":52869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19979:19:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"19966:32:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52871,"nodeType":"ExpressionStatement","src":"19966:32:81"},{"expression":{"id":52882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52872,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"20008:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52874,"indexExpression":{"hexValue":"30","id":52873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20019:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20008:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":52879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20054:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":52877,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20046:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20049:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20046:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20046:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52875,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"20024:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":52876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20041:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"20024:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":52881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20024:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"20008:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":52883,"nodeType":"ExpressionStatement","src":"20008:51:81"},{"expression":{"id":52894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52884,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"20069:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52886,"indexExpression":{"hexValue":"31","id":52885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20080:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20069:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":52891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20115:3:81","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":52889,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20107:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20110:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20107:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20107:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52887,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"20085:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":52888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20102:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"20085:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":52893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20085:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"20069:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":52895,"nodeType":"ExpressionStatement","src":"20069:51:81"},{"expression":{"id":52906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52896,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"20130:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52898,"indexExpression":{"hexValue":"32","id":52897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20141:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20130:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":52903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20176:3:81","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":52901,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20168:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20171:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20168:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20168:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52899,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"20146:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":52900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20163:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"20146:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":52905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20146:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"20130:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":52907,"nodeType":"ExpressionStatement","src":"20130:51:81"},{"expression":{"id":52914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52908,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20192:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":52912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20218:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":52911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20204:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52909,"name":"address","nodeType":"ElementaryTypeName","src":"20208:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52910,"nodeType":"ArrayTypeName","src":"20208:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20204:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"20192:28:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52915,"nodeType":"ExpressionStatement","src":"20192:28:81"},{"expression":{"id":52923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52916,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20230:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52918,"indexExpression":{"hexValue":"30","id":52917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20240:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20230:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":52921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20253:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":52919,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20245:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20248:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20245:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20245:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20230:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52924,"nodeType":"ExpressionStatement","src":"20230:27:81"},{"expression":{"id":52932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52925,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20267:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52927,"indexExpression":{"hexValue":"31","id":52926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20277:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20267:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":52930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20290:3:81","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":52928,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20282:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20285:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20282:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20282:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20267:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52933,"nodeType":"ExpressionStatement","src":"20267:27:81"},{"expression":{"id":52941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52934,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20304:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52936,"indexExpression":{"hexValue":"32","id":52935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20314:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20304:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":52939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20327:3:81","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":52937,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20319:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20322:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20319:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20319:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20304:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52942,"nodeType":"ExpressionStatement","src":"20304:27:81"},{"assignments":[52947],"declarations":[{"constant":false,"id":52947,"mutability":"mutable","name":"weights","nameLocation":"20359:7:81","nodeType":"VariableDeclaration","scope":53027,"src":"20342:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":52945,"name":"uint256","nodeType":"ElementaryTypeName","src":"20342:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52946,"nodeType":"ArrayTypeName","src":"20342:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":52953,"initialValue":{"arguments":[{"hexValue":"33","id":52951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20383:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":52950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20369:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":52948,"name":"uint256","nodeType":"ElementaryTypeName","src":"20373:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52949,"nodeType":"ArrayTypeName","src":"20373:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":52952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20369:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20342:43:81"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":52959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20412:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":52957,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20404:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20407:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20404:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":52961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20418:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":52954,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20396:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20399:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"20396:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":52962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20396:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52963,"nodeType":"ExpressionStatement","src":"20396:24:81"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":52969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20446:3:81","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":52967,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20438:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20441:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20438:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20438:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":52971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20452:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":52964,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20430:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20433:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"20430:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":52972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20430:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52973,"nodeType":"ExpressionStatement","src":"20430:24:81"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":52979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20480:3:81","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":52977,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20472:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20475:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20472:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20472:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":52981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20486:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":52974,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20464:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20467:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"20464:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20464:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52983,"nodeType":"ExpressionStatement","src":"20464:24:81"},{"expression":{"id":52988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52984,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"20499:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52986,"indexExpression":{"hexValue":"30","id":52985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20507:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20499:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":52987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20512:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20499:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52989,"nodeType":"ExpressionStatement","src":"20499:16:81"},{"expression":{"id":52994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52990,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"20525:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52992,"indexExpression":{"hexValue":"31","id":52991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20533:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20525:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":52993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20538:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20525:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52995,"nodeType":"ExpressionStatement","src":"20525:16:81"},{"expression":{"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52996,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"20551:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52998,"indexExpression":{"hexValue":"32","id":52997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20559:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20551:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":52999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20564:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20551:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53001,"nodeType":"ExpressionStatement","src":"20551:16:81"},{"assignments":[53004],"declarations":[{"constant":false,"id":53004,"mutability":"mutable","name":"finality","nameLocation":"20600:8:81","nodeType":"VariableDeclaration","scope":53027,"src":"20578:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":53003,"nodeType":"UserDefinedTypeName","pathNode":{"id":53002,"name":"ParentFinality","nameLocations":["20578:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"20578:14:81"},"referencedDeclaration":48396,"src":"20578:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":53013,"initialValue":{"arguments":[{"expression":{"id":53006,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20635:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":53007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20641:6:81","memberName":"number","nodeType":"MemberAccess","src":"20635:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":53010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20668:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20660:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":53008,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20660:7:81","typeDescriptions":{}}},"id":53011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20660:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53005,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"20611:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$48396_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":53012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20627:6:81","20649:9:81"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"20611:61:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"20578:94:81"},{"expression":{"arguments":[{"expression":{"id":53017,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"20692:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":53018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20703:12:81","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"20692:23:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53014,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20683:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20686:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"20683:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20683:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53020,"nodeType":"ExpressionStatement","src":"20683:33:81"},{"expression":{"arguments":[{"id":53024,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53004,"src":"20756:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":53021,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"20726:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20735:20:81","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39027,"src":"20726:29:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$48396_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":53025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20726:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":53026,"nodeType":"ExpressionStatement","src":"20726:39:81"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"19862:15:81","parameters":{"id":52854,"nodeType":"ParameterList","parameters":[],"src":"19877:2:81"},"returnParameters":{"id":52862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52858,"mutability":"mutable","name":"validators","nameLocation":"19916:10:81","nodeType":"VariableDeclaration","scope":53028,"src":"19896:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":52856,"nodeType":"UserDefinedTypeName","pathNode":{"id":52855,"name":"FvmAddress","nameLocations":["19896:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"19896:10:81"},"referencedDeclaration":48476,"src":"19896:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":52857,"nodeType":"ArrayTypeName","src":"19896:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":52861,"mutability":"mutable","name":"addresses","nameLocation":"19945:9:81","nodeType":"VariableDeclaration","scope":53028,"src":"19928:26:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":52859,"name":"address","nodeType":"ElementaryTypeName","src":"19928:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52860,"nodeType":"ArrayTypeName","src":"19928:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"19895:60:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53121,"nodeType":"FunctionDefinition","src":"20778:1285:81","nodes":[],"body":{"id":53120,"nodeType":"Block","src":"20862:1201:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53038,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"20887:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53039,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53032,"src":"20914:3:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":53037,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53898,"src":"20872:14:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":53040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20872:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53041,"nodeType":"ExpressionStatement","src":"20872:46:81"},{"assignments":[53044],"declarations":[{"constant":false,"id":53044,"mutability":"mutable","name":"crossMsg","nameLocation":"20945:8:81","nodeType":"VariableDeclaration","scope":53120,"src":"20929:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":53043,"nodeType":"UserDefinedTypeName","pathNode":{"id":53042,"name":"CrossMsg","nameLocations":["20929:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"20929:8:81"},"referencedDeclaration":48452,"src":"20929:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":53084,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":53052,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53030,"src":"21108:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53048,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"21067:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21076:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"21067:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21093:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"21067:40:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:48:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":53056,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53030,"src":"21171:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53054,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"21149:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21166:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"21149:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21149:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"id":53047,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"21024:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$48687_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":53058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21057:8:81","21137:10:81"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"21024:173:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":53064,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53032,"src":"21303:3:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53060,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"21262:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21271:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"21262:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21262:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21288:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"21262:40:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21262:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":53068,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53032,"src":"21363:3:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53066,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"21341:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21358:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"21341:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21341:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"id":53059,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"21219:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$48687_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":53070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21252:8:81","21329:10:81"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"21219:167:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":53071,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"21411:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21435:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21411:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":53074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21461:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":53075,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"21488:11:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":53078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21535:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21525:9:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":53076,"name":"bytes","nodeType":"ElementaryTypeName","src":"21529:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":53079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21525:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":53080,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"21560:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53046,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"20988:11:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$48469_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":53081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21018:4:81","21215:2:81","21404:5:81","21454:5:81","21480:6:81","21517:6:81","21555:3:81"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"20988:608:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":53082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21619:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":53045,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"20956:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$48452_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":53083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20979:7:81","21610:7:81"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"20956:679:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"20929:706:81"},{"assignments":[53089],"declarations":[{"constant":false,"id":53089,"mutability":"mutable","name":"msgs","nameLocation":"21663:4:81","nodeType":"VariableDeclaration","scope":53120,"src":"21645:22:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":53087,"nodeType":"UserDefinedTypeName","pathNode":{"id":53086,"name":"CrossMsg","nameLocations":["21645:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"21645:8:81"},"referencedDeclaration":48452,"src":"21645:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":53088,"nodeType":"ArrayTypeName","src":"21645:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":53096,"initialValue":{"arguments":[{"hexValue":"31","id":53094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21685:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21670:14:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":53091,"nodeType":"UserDefinedTypeName","pathNode":{"id":53090,"name":"CrossMsg","nameLocations":["21674:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"21674:8:81"},"referencedDeclaration":48452,"src":"21674:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":53092,"nodeType":"ArrayTypeName","src":"21674:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":53095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21670:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"21645:42:81"},{"expression":{"id":53101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53097,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53089,"src":"21697:4:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":53099,"indexExpression":{"hexValue":"30","id":53098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21702:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21697:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53100,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53044,"src":"21707:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"21697:18:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":53102,"nodeType":"ExpressionStatement","src":"21697:18:81"},{"expression":{"arguments":[{"expression":{"id":53106,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"21954:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":53107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21965:12:81","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"21954:23:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53103,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"21945:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21948:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"21945:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21945:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53109,"nodeType":"ExpressionStatement","src":"21945:33:81"},{"expression":{"arguments":[{"id":53113,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53089,"src":"22016:4:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":53110,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"21988:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21997:18:81","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":39187,"src":"21988:27:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":53114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21988:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53115,"nodeType":"ExpressionStatement","src":"21988:33:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53116,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53044,"src":"22039:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":53117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22048:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40132,"src":"22039:15:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$48452_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$48452_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":53118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22039:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":53036,"id":53119,"nodeType":"Return","src":"22032:24:81"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"20787:20:81","parameters":{"id":53033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53030,"mutability":"mutable","name":"caller","nameLocation":"20816:6:81","nodeType":"VariableDeclaration","scope":53121,"src":"20808:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53029,"name":"address","nodeType":"ElementaryTypeName","src":"20808:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53032,"mutability":"mutable","name":"src","nameLocation":"20832:3:81","nodeType":"VariableDeclaration","scope":53121,"src":"20824:11:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53031,"name":"address","nodeType":"ElementaryTypeName","src":"20824:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20807:29:81"},"returnParameters":{"id":53036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53121,"src":"20853:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20853:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20852:9:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53132,"nodeType":"FunctionDefinition","src":"22069:93:81","nodes":[],"body":{"id":53131,"nodeType":"Block","src":"22117:45:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53127,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53123,"src":"22140:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22151:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53126,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[53132,53215],"referencedDeclaration":53215,"src":"22127:12:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22127:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53130,"nodeType":"ExpressionStatement","src":"22127:28:81"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"22078:12:81","parameters":{"id":53124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53123,"mutability":"mutable","name":"validator","nameLocation":"22099:9:81","nodeType":"VariableDeclaration","scope":53132,"src":"22091:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53122,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22090:19:81"},"returnParameters":{"id":53125,"nodeType":"ParameterList","parameters":[],"src":"22117:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53215,"nodeType":"FunctionDefinition","src":"22168:596:81","nodes":[],"body":{"id":53214,"nodeType":"Block","src":"22232:532:81","nodes":[],"statements":[{"assignments":[53143],"declarations":[{"constant":false,"id":53143,"mutability":"mutable","name":"validators","nameLocation":"22262:10:81","nodeType":"VariableDeclaration","scope":53214,"src":"22242:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":53141,"nodeType":"UserDefinedTypeName","pathNode":{"id":53140,"name":"FvmAddress","nameLocations":["22242:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"22242:10:81"},"referencedDeclaration":48476,"src":"22242:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":53142,"nodeType":"ArrayTypeName","src":"22242:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":53150,"initialValue":{"arguments":[{"hexValue":"31","id":53148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22292:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22275:16:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":53145,"nodeType":"UserDefinedTypeName","pathNode":{"id":53144,"name":"FvmAddress","nameLocations":["22279:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"22279:10:81"},"referencedDeclaration":48476,"src":"22279:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":53146,"nodeType":"ArrayTypeName","src":"22279:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":53149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22275:19:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22242:52:81"},{"expression":{"id":53158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53151,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53143,"src":"22304:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":53153,"indexExpression":{"hexValue":"30","id":53152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22315:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22304:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53156,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53134,"src":"22342:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53154,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"22320:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22337:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"22320:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22320:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22304:48:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":53159,"nodeType":"ExpressionStatement","src":"22304:48:81"},{"assignments":[53164],"declarations":[{"constant":false,"id":53164,"mutability":"mutable","name":"weights","nameLocation":"22379:7:81","nodeType":"VariableDeclaration","scope":53214,"src":"22362:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53162,"name":"uint256","nodeType":"ElementaryTypeName","src":"22362:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53163,"nodeType":"ArrayTypeName","src":"22362:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53170,"initialValue":{"arguments":[{"hexValue":"31","id":53168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22403:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22389:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53165,"name":"uint256","nodeType":"ElementaryTypeName","src":"22393:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53166,"nodeType":"ArrayTypeName","src":"22393:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22389:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22362:43:81"},{"expression":{"id":53175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53171,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53164,"src":"22415:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53173,"indexExpression":{"hexValue":"30","id":53172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22423:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22415:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53174,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53136,"src":"22428:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22415:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53176,"nodeType":"ExpressionStatement","src":"22415:19:81"},{"expression":{"arguments":[{"id":53180,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53134,"src":"22453:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":53181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22464:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":53177,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22445:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22448:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22445:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22445:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53183,"nodeType":"ExpressionStatement","src":"22445:21:81"},{"assignments":[53186],"declarations":[{"constant":false,"id":53186,"mutability":"mutable","name":"finality","nameLocation":"22498:8:81","nodeType":"VariableDeclaration","scope":53214,"src":"22476:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":53185,"nodeType":"UserDefinedTypeName","pathNode":{"id":53184,"name":"ParentFinality","nameLocations":["22476:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"22476:14:81"},"referencedDeclaration":48396,"src":"22476:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":53195,"initialValue":{"arguments":[{"expression":{"id":53188,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22533:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":53189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22539:6:81","memberName":"number","nodeType":"MemberAccess","src":"22533:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":53192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22566:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22558:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":53190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22558:7:81","typeDescriptions":{}}},"id":53193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22558:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53187,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"22509:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$48396_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":53194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["22525:6:81","22547:9:81"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"22509:61:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"22476:94:81"},{"expression":{"arguments":[{"expression":{"id":53199,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"22660:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":53200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22671:12:81","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"22660:23:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53196,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22646:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22649:10:81","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"22646:13:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22646:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53202,"nodeType":"ExpressionStatement","src":"22646:38:81"},{"expression":{"arguments":[{"id":53206,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53186,"src":"22724:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":53203,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"22694:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22703:20:81","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39027,"src":"22694:29:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$48396_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":53207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22694:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":53208,"nodeType":"ExpressionStatement","src":"22694:39:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53209,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22743:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22746:9:81","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"22743:12:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":53212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22743:14:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53213,"nodeType":"ExpressionStatement","src":"22743:14:81"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"22177:12:81","parameters":{"id":53137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53134,"mutability":"mutable","name":"validator","nameLocation":"22198:9:81","nodeType":"VariableDeclaration","scope":53215,"src":"22190:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53133,"name":"address","nodeType":"ElementaryTypeName","src":"22190:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53136,"mutability":"mutable","name":"weight","nameLocation":"22217:6:81","nodeType":"VariableDeclaration","scope":53215,"src":"22209:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53135,"name":"uint256","nodeType":"ElementaryTypeName","src":"22209:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22189:35:81"},"returnParameters":{"id":53138,"nodeType":"ParameterList","parameters":[],"src":"22232:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53228,"nodeType":"FunctionDefinition","src":"22770:112:81","nodes":[],"body":{"id":53227,"nodeType":"Block","src":"22814:68:81","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":53223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22836:30:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":53224,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53217,"src":"22868:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53220,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"22824:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22832:3:81","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"22824:11:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":53225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22824:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53226,"nodeType":"ExpressionStatement","src":"22824:51:81"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"22779:6:81","parameters":{"id":53218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53217,"mutability":"mutable","name":"amount","nameLocation":"22794:6:81","nodeType":"VariableDeclaration","scope":53228,"src":"22786:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53216,"name":"uint256","nodeType":"ElementaryTypeName","src":"22786:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22785:16:81"},"returnParameters":{"id":53219,"nodeType":"ParameterList","parameters":[],"src":"22814:0:81"},"scope":54008,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":53327,"nodeType":"FunctionDefinition","src":"22888:968:81","nodes":[],"body":{"id":53326,"nodeType":"Block","src":"22952:904:81","nodes":[],"statements":[{"assignments":[53237,null,53239,null,53241,null],"declarations":[{"constant":false,"id":53237,"mutability":"mutable","name":"subnetId","nameLocation":"23044:8:81","nodeType":"VariableDeclaration","scope":53326,"src":"23028:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53236,"nodeType":"UserDefinedTypeName","pathNode":{"id":53235,"name":"SubnetID","nameLocations":["23028:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"23028:8:81"},"referencedDeclaration":48557,"src":"23028:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":53239,"mutability":"mutable","name":"nonceBefore","nameLocation":"23064:11:81","nodeType":"VariableDeclaration","scope":53326,"src":"23056:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53238,"name":"uint256","nodeType":"ElementaryTypeName","src":"23056:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":53241,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"23087:16:81","nodeType":"VariableDeclaration","scope":53326,"src":"23079:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53240,"name":"uint256","nodeType":"ElementaryTypeName","src":"23079:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":53248,"initialValue":{"arguments":[{"arguments":[{"id":53245,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"23127:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":53244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23119:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53243,"name":"address","nodeType":"ElementaryTypeName","src":"23119:7:81","typeDescriptions":{}}},"id":53246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23119:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53242,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"23109:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23109:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"23027:111:81"},{"assignments":[53250],"declarations":[{"constant":false,"id":53250,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"23157:25:81","nodeType":"VariableDeclaration","scope":53326,"src":"23149:33:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53249,"name":"uint256","nodeType":"ElementaryTypeName","src":"23149:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53257,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":53253,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53237,"src":"23221:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":53251,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"23185:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23194:26:81","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37318,"src":"23185:35:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":53254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23185:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23233:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23185:49:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23149:85:81"},{"assignments":[53259],"declarations":[{"constant":false,"id":53259,"mutability":"mutable","name":"expectedNonce","nameLocation":"23252:13:81","nodeType":"VariableDeclaration","scope":53326,"src":"23244:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53258,"name":"uint256","nodeType":"ElementaryTypeName","src":"23244:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53263,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53260,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53239,"src":"23268:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23282:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23268:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23244:39:81"},{"assignments":[53265],"declarations":[{"constant":false,"id":53265,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"23301:18:81","nodeType":"VariableDeclaration","scope":53326,"src":"23293:26:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53264,"name":"uint256","nodeType":"ElementaryTypeName","src":"23293:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53269,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53266,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53241,"src":"23322:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":53267,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53232,"src":"23341:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23322:29:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23293:58:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53271,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"23370:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23379:11:81","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37148,"src":"23370:20:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23370:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":53274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23395:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23370:26:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":53276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23398:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":53270,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23362:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23362:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53278,"nodeType":"ExpressionStatement","src":"23362:55:81"},{"expression":{"arguments":[{"id":53284,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53237,"src":"23462:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":53287,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"23494:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53285,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"23472:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23489:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"23472:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23472:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":53279,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"23428:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23438:4:81","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38311,"src":"23428:14:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":53283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53282,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53232,"src":"23450:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"23428:33:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23428:81:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53290,"nodeType":"ExpressionStatement","src":"23428:81:81"},{"assignments":[null,null,53292,null,53294,null],"declarations":[null,null,{"constant":false,"id":53292,"mutability":"mutable","name":"nonce","nameLocation":"23533:5:81","nodeType":"VariableDeclaration","scope":53326,"src":"23525:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53291,"name":"uint256","nodeType":"ElementaryTypeName","src":"23525:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":53294,"mutability":"mutable","name":"circSupply","nameLocation":"23550:10:81","nodeType":"VariableDeclaration","scope":53326,"src":"23542:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53293,"name":"uint256","nodeType":"ElementaryTypeName","src":"23542:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":53301,"initialValue":{"arguments":[{"arguments":[{"id":53298,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"23584:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":53297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23576:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53296,"name":"address","nodeType":"ElementaryTypeName","src":"23576:7:81","typeDescriptions":{}}},"id":53299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23576:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53295,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"23566:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23566:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"23520:75:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":53305,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53237,"src":"23650:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":53303,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"23614:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23623:26:81","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37318,"src":"23614:35:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":53306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23614:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53307,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53250,"src":"23663:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23614:74:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":53309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23690:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":53302,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23606:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23606:105:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53311,"nodeType":"ExpressionStatement","src":"23606:105:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53313,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53292,"src":"23730:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53314,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53259,"src":"23739:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23730:22:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":53316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23754:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":53312,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23722:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23722:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53318,"nodeType":"ExpressionStatement","src":"23722:51:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53320,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53294,"src":"23791:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53321,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53265,"src":"23805:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23791:32:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":53323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23825:23:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":53319,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23783:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23783:66:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53325,"nodeType":"ExpressionStatement","src":"23783:66:81"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"22897:4:81","parameters":{"id":53233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53230,"mutability":"mutable","name":"funderAddress","nameLocation":"22910:13:81","nodeType":"VariableDeclaration","scope":53327,"src":"22902:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53229,"name":"address","nodeType":"ElementaryTypeName","src":"22902:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53232,"mutability":"mutable","name":"fundAmount","nameLocation":"22933:10:81","nodeType":"VariableDeclaration","scope":53327,"src":"22925:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53231,"name":"uint256","nodeType":"ElementaryTypeName","src":"22925:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22901:43:81"},"returnParameters":{"id":53234,"nodeType":"ParameterList","parameters":[],"src":"22952:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53358,"nodeType":"FunctionDefinition","src":"23862:243:81","nodes":[],"body":{"id":53357,"nodeType":"Block","src":"23930:175:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53337,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53329,"src":"23949:16:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53334,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23940:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23943:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"23940:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23940:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53339,"nodeType":"ExpressionStatement","src":"23940:26:81"},{"expression":{"arguments":[{"id":53343,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53329,"src":"23984:16:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":53346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":53344,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"24002:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24030:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24002:29:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":53340,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23976:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23979:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"23976:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23976:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53348,"nodeType":"ExpressionStatement","src":"23976:56:81"},{"expression":{"arguments":[{"id":53354,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53331,"src":"24091:6:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":53349,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"24042:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":53351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24052:4:81","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"24042:14:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":53353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53352,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"24064:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"24042:48:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":53355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24042:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53356,"nodeType":"ExpressionStatement","src":"24042:56:81"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"23871:4:81","parameters":{"id":53332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53329,"mutability":"mutable","name":"validatorAddress","nameLocation":"23884:16:81","nodeType":"VariableDeclaration","scope":53358,"src":"23876:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53328,"name":"address","nodeType":"ElementaryTypeName","src":"23876:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53331,"mutability":"mutable","name":"pubkey","nameLocation":"23915:6:81","nodeType":"VariableDeclaration","scope":53358,"src":"23902:19:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53330,"name":"bytes","nodeType":"ElementaryTypeName","src":"23902:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"23875:47:81"},"returnParameters":{"id":53333,"nodeType":"ParameterList","parameters":[],"src":"23930:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53405,"nodeType":"FunctionDefinition","src":"24111:298:81","nodes":[],"body":{"id":53404,"nodeType":"Block","src":"24179:230:81","nodes":[],"statements":[{"assignments":[53369],"declarations":[{"constant":false,"id":53369,"mutability":"mutable","name":"validators","nameLocation":"24206:10:81","nodeType":"VariableDeclaration","scope":53404,"src":"24189:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53367,"name":"address","nodeType":"ElementaryTypeName","src":"24189:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53368,"nodeType":"ArrayTypeName","src":"24189:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53375,"initialValue":{"arguments":[{"hexValue":"31","id":53373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24233:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24219:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53370,"name":"address","nodeType":"ElementaryTypeName","src":"24223:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53371,"nodeType":"ArrayTypeName","src":"24223:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24219:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24189:46:81"},{"expression":{"id":53380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53376,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53369,"src":"24245:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53378,"indexExpression":{"hexValue":"30","id":53377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24256:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24245:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53379,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53360,"src":"24261:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24245:25:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53381,"nodeType":"ExpressionStatement","src":"24245:25:81"},{"assignments":[53386],"declarations":[{"constant":false,"id":53386,"mutability":"mutable","name":"privKeys","nameLocation":"24298:8:81","nodeType":"VariableDeclaration","scope":53404,"src":"24281:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53384,"name":"uint256","nodeType":"ElementaryTypeName","src":"24281:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53385,"nodeType":"ArrayTypeName","src":"24281:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53392,"initialValue":{"arguments":[{"hexValue":"31","id":53390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24323:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24309:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53387,"name":"uint256","nodeType":"ElementaryTypeName","src":"24313:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53388,"nodeType":"ArrayTypeName","src":"24313:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24309:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24281:44:81"},{"expression":{"id":53397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53393,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53386,"src":"24335:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53395,"indexExpression":{"hexValue":"30","id":53394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24344:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24335:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53396,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53362,"src":"24349:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24335:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53398,"nodeType":"ExpressionStatement","src":"24335:21:81"},{"expression":{"arguments":[{"id":53400,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53369,"src":"24381:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53401,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53386,"src":"24393:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":53399,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[53405,53468,53547,53698],"referencedDeclaration":53698,"src":"24367:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":53402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24367:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53403,"nodeType":"ExpressionStatement","src":"24367:35:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24120:13:81","parameters":{"id":53363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53360,"mutability":"mutable","name":"validator","nameLocation":"24142:9:81","nodeType":"VariableDeclaration","scope":53405,"src":"24134:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53359,"name":"address","nodeType":"ElementaryTypeName","src":"24134:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53362,"mutability":"mutable","name":"privKey","nameLocation":"24161:7:81","nodeType":"VariableDeclaration","scope":53405,"src":"24153:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53361,"name":"uint256","nodeType":"ElementaryTypeName","src":"24153:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24133:36:81"},"returnParameters":{"id":53364,"nodeType":"ParameterList","parameters":[],"src":"24179:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53468,"nodeType":"FunctionDefinition","src":"24415:408:81","nodes":[],"body":{"id":53467,"nodeType":"Block","src":"24523:300:81","nodes":[],"statements":[{"assignments":[53420],"declarations":[{"constant":false,"id":53420,"mutability":"mutable","name":"validators","nameLocation":"24550:10:81","nodeType":"VariableDeclaration","scope":53467,"src":"24533:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53418,"name":"address","nodeType":"ElementaryTypeName","src":"24533:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53419,"nodeType":"ArrayTypeName","src":"24533:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53426,"initialValue":{"arguments":[{"hexValue":"32","id":53424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24577:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24563:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53421,"name":"address","nodeType":"ElementaryTypeName","src":"24567:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53422,"nodeType":"ArrayTypeName","src":"24567:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24563:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24533:46:81"},{"expression":{"id":53431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53427,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53420,"src":"24589:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53429,"indexExpression":{"hexValue":"30","id":53428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24600:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24589:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53430,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53407,"src":"24605:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24589:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53432,"nodeType":"ExpressionStatement","src":"24589:26:81"},{"expression":{"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53433,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53420,"src":"24625:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53435,"indexExpression":{"hexValue":"31","id":53434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24636:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24625:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53436,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53411,"src":"24641:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24625:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53438,"nodeType":"ExpressionStatement","src":"24625:26:81"},{"assignments":[53443],"declarations":[{"constant":false,"id":53443,"mutability":"mutable","name":"privKeys","nameLocation":"24679:8:81","nodeType":"VariableDeclaration","scope":53467,"src":"24662:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53441,"name":"uint256","nodeType":"ElementaryTypeName","src":"24662:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53442,"nodeType":"ArrayTypeName","src":"24662:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53449,"initialValue":{"arguments":[{"hexValue":"32","id":53447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24704:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24690:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53444,"name":"uint256","nodeType":"ElementaryTypeName","src":"24694:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53445,"nodeType":"ArrayTypeName","src":"24694:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24690:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24662:44:81"},{"expression":{"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53450,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"24716:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53452,"indexExpression":{"hexValue":"30","id":53451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24725:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24716:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53453,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53409,"src":"24730:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24716:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53455,"nodeType":"ExpressionStatement","src":"24716:22:81"},{"expression":{"id":53460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53456,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"24748:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53458,"indexExpression":{"hexValue":"31","id":53457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24757:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24748:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53459,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53413,"src":"24762:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24748:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53461,"nodeType":"ExpressionStatement","src":"24748:22:81"},{"expression":{"arguments":[{"id":53463,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53420,"src":"24795:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53464,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"24807:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":53462,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[53405,53468,53547,53698],"referencedDeclaration":53698,"src":"24781:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":53465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24781:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53466,"nodeType":"ExpressionStatement","src":"24781:35:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24424:13:81","parameters":{"id":53414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53407,"mutability":"mutable","name":"validator1","nameLocation":"24446:10:81","nodeType":"VariableDeclaration","scope":53468,"src":"24438:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53406,"name":"address","nodeType":"ElementaryTypeName","src":"24438:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53409,"mutability":"mutable","name":"privKey1","nameLocation":"24466:8:81","nodeType":"VariableDeclaration","scope":53468,"src":"24458:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53408,"name":"uint256","nodeType":"ElementaryTypeName","src":"24458:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53411,"mutability":"mutable","name":"validator2","nameLocation":"24484:10:81","nodeType":"VariableDeclaration","scope":53468,"src":"24476:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53410,"name":"address","nodeType":"ElementaryTypeName","src":"24476:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53413,"mutability":"mutable","name":"privKey2","nameLocation":"24504:8:81","nodeType":"VariableDeclaration","scope":53468,"src":"24496:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53412,"name":"uint256","nodeType":"ElementaryTypeName","src":"24496:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24437:76:81"},"returnParameters":{"id":53415,"nodeType":"ParameterList","parameters":[],"src":"24523:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53547,"nodeType":"FunctionDefinition","src":"24829:568:81","nodes":[],"body":{"id":53546,"nodeType":"Block","src":"25029:368:81","nodes":[],"statements":[{"assignments":[53487],"declarations":[{"constant":false,"id":53487,"mutability":"mutable","name":"validators","nameLocation":"25056:10:81","nodeType":"VariableDeclaration","scope":53546,"src":"25039:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53485,"name":"address","nodeType":"ElementaryTypeName","src":"25039:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53486,"nodeType":"ArrayTypeName","src":"25039:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53493,"initialValue":{"arguments":[{"hexValue":"33","id":53491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25083:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":53490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25069:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53488,"name":"address","nodeType":"ElementaryTypeName","src":"25073:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53489,"nodeType":"ArrayTypeName","src":"25073:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25069:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"25039:46:81"},{"expression":{"id":53498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53494,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25095:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53496,"indexExpression":{"hexValue":"30","id":53495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25106:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25095:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53497,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53470,"src":"25111:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25095:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53499,"nodeType":"ExpressionStatement","src":"25095:26:81"},{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53500,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25131:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53502,"indexExpression":{"hexValue":"31","id":53501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25142:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25131:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53503,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53474,"src":"25147:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25131:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53505,"nodeType":"ExpressionStatement","src":"25131:26:81"},{"expression":{"id":53510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53506,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25167:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53508,"indexExpression":{"hexValue":"32","id":53507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25178:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25167:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53509,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53478,"src":"25183:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25167:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53511,"nodeType":"ExpressionStatement","src":"25167:26:81"},{"assignments":[53516],"declarations":[{"constant":false,"id":53516,"mutability":"mutable","name":"privKeys","nameLocation":"25221:8:81","nodeType":"VariableDeclaration","scope":53546,"src":"25204:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53514,"name":"uint256","nodeType":"ElementaryTypeName","src":"25204:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53515,"nodeType":"ArrayTypeName","src":"25204:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53522,"initialValue":{"arguments":[{"hexValue":"33","id":53520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25246:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":53519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25232:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53517,"name":"uint256","nodeType":"ElementaryTypeName","src":"25236:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53518,"nodeType":"ArrayTypeName","src":"25236:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25232:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"25204:44:81"},{"expression":{"id":53527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53523,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25258:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53525,"indexExpression":{"hexValue":"30","id":53524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25267:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25258:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53526,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53472,"src":"25272:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25258:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53528,"nodeType":"ExpressionStatement","src":"25258:22:81"},{"expression":{"id":53533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53529,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25290:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53531,"indexExpression":{"hexValue":"31","id":53530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25299:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25290:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53532,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53476,"src":"25304:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25290:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53534,"nodeType":"ExpressionStatement","src":"25290:22:81"},{"expression":{"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53535,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25322:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53537,"indexExpression":{"hexValue":"32","id":53536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25331:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25322:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53538,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53480,"src":"25336:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25322:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53540,"nodeType":"ExpressionStatement","src":"25322:22:81"},{"expression":{"arguments":[{"id":53542,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25369:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53543,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25381:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":53541,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[53405,53468,53547,53698],"referencedDeclaration":53698,"src":"25355:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":53544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25355:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53545,"nodeType":"ExpressionStatement","src":"25355:35:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24838:13:81","parameters":{"id":53481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53470,"mutability":"mutable","name":"validator1","nameLocation":"24869:10:81","nodeType":"VariableDeclaration","scope":53547,"src":"24861:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53469,"name":"address","nodeType":"ElementaryTypeName","src":"24861:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53472,"mutability":"mutable","name":"privKey1","nameLocation":"24897:8:81","nodeType":"VariableDeclaration","scope":53547,"src":"24889:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53471,"name":"uint256","nodeType":"ElementaryTypeName","src":"24889:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53474,"mutability":"mutable","name":"validator2","nameLocation":"24923:10:81","nodeType":"VariableDeclaration","scope":53547,"src":"24915:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53473,"name":"address","nodeType":"ElementaryTypeName","src":"24915:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53476,"mutability":"mutable","name":"privKey2","nameLocation":"24951:8:81","nodeType":"VariableDeclaration","scope":53547,"src":"24943:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53475,"name":"uint256","nodeType":"ElementaryTypeName","src":"24943:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53478,"mutability":"mutable","name":"validator3","nameLocation":"24977:10:81","nodeType":"VariableDeclaration","scope":53547,"src":"24969:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53477,"name":"address","nodeType":"ElementaryTypeName","src":"24969:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53480,"mutability":"mutable","name":"privKey3","nameLocation":"25005:8:81","nodeType":"VariableDeclaration","scope":53547,"src":"24997:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53479,"name":"uint256","nodeType":"ElementaryTypeName","src":"24997:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24851:168:81"},"returnParameters":{"id":53482,"nodeType":"ParameterList","parameters":[],"src":"25029:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53698,"nodeType":"FunctionDefinition","src":"25403:1102:81","nodes":[],"body":{"id":53697,"nodeType":"Block","src":"25491:1014:81","nodes":[],"statements":[{"assignments":[53557],"declarations":[{"constant":false,"id":53557,"mutability":"mutable","name":"n","nameLocation":"25509:1:81","nodeType":"VariableDeclaration","scope":53697,"src":"25501:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53556,"name":"uint256","nodeType":"ElementaryTypeName","src":"25501:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53560,"initialValue":{"expression":{"id":53558,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53550,"src":"25513:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25524:6:81","memberName":"length","nodeType":"MemberAccess","src":"25513:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25501:29:81"},{"assignments":[53565],"declarations":[{"constant":false,"id":53565,"mutability":"mutable","name":"signatures","nameLocation":"25556:10:81","nodeType":"VariableDeclaration","scope":53697,"src":"25541:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":53563,"name":"bytes","nodeType":"ElementaryTypeName","src":"25541:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":53564,"nodeType":"ArrayTypeName","src":"25541:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":53571,"initialValue":{"arguments":[{"id":53569,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53557,"src":"25581:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25569:11:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":53566,"name":"bytes","nodeType":"ElementaryTypeName","src":"25573:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":53567,"nodeType":"ArrayTypeName","src":"25573:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25569:14:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"25541:42:81"},{"assignments":[53573,null],"declarations":[{"constant":false,"id":53573,"mutability":"mutable","name":"nextConfigNum","nameLocation":"25602:13:81","nodeType":"VariableDeclaration","scope":53697,"src":"25595:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53572,"name":"uint64","nodeType":"ElementaryTypeName","src":"25595:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":53577,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53574,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25621:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25630:23:81","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":48814,"src":"25621:32:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":53576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25621:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"25594:61:81"},{"assignments":[53579],"declarations":[{"constant":false,"id":53579,"mutability":"mutable","name":"h","nameLocation":"25674:1:81","nodeType":"VariableDeclaration","scope":53697,"src":"25666:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53578,"name":"uint256","nodeType":"ElementaryTypeName","src":"25666:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53587,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53580,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25678:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25687:28:81","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":48937,"src":"25678:37:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25678:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53583,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25720:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25729:19:81","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":48919,"src":"25720:28:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":53585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25720:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25678:72:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25666:84:81"},{"assignments":[53590],"declarations":[{"constant":false,"id":53590,"mutability":"mutable","name":"checkpoint","nameLocation":"25787:10:81","nodeType":"VariableDeclaration","scope":53697,"src":"25761:36:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":53589,"nodeType":"UserDefinedTypeName","pathNode":{"id":53588,"name":"BottomUpCheckpoint","nameLocations":["25761:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"25761:18:81"},"referencedDeclaration":48410,"src":"25761:18:81","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":53612,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":53598,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"25887:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":53597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25879:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53596,"name":"address","nodeType":"ElementaryTypeName","src":"25879:7:81","typeDescriptions":{}}},"id":53599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25879:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53592,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25843:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25852:9:81","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":48750,"src":"25843:18:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25843:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25864:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"25843:35:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25843:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53601,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53579,"src":"25925:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":53605,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53579,"src":"25972:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53603,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25961:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25965:6:81","memberName":"encode","nodeType":"MemberAccess","src":"25961:10:81","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25961:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53602,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"25951:9:81","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25951:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":53610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53608,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53573,"src":"26014:13:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":53609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26030:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26014:17:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":53591,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"25800:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$48410_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":53611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25833:8:81","25912:11:81","25940:9:81","25989:23:81"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"25800:242:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"25761:281:81"},{"expression":{"arguments":[{"arguments":[{"id":53618,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"26069:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":53617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26061:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53616,"name":"address","nodeType":"ElementaryTypeName","src":"26061:7:81","typeDescriptions":{}}},"id":53619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26061:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26081:9:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":53613,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26053:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26056:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26053:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26053:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53622,"nodeType":"ExpressionStatement","src":"26053:38:81"},{"assignments":[53624],"declarations":[{"constant":false,"id":53624,"mutability":"mutable","name":"hash","nameLocation":"26110:4:81","nodeType":"VariableDeclaration","scope":53697,"src":"26102:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26102:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":53631,"initialValue":{"arguments":[{"arguments":[{"id":53628,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53590,"src":"26138:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":53626,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26127:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26131:6:81","memberName":"encode","nodeType":"MemberAccess","src":"26127:10:81","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26127:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53625,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"26117:9:81","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26117:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26102:48:81"},{"body":{"id":53667,"nodeType":"Block","src":"26193:140:81","statements":[{"assignments":[53643,53645,53647],"declarations":[{"constant":false,"id":53643,"mutability":"mutable","name":"v","nameLocation":"26214:1:81","nodeType":"VariableDeclaration","scope":53667,"src":"26208:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53642,"name":"uint8","nodeType":"ElementaryTypeName","src":"26208:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53645,"mutability":"mutable","name":"r","nameLocation":"26225:1:81","nodeType":"VariableDeclaration","scope":53667,"src":"26217:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26217:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":53647,"mutability":"mutable","name":"s","nameLocation":"26236:1:81","nodeType":"VariableDeclaration","scope":53667,"src":"26228:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26228:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":53655,"initialValue":{"arguments":[{"baseExpression":{"id":53650,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53553,"src":"26249:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53652,"indexExpression":{"id":53651,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26258:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26249:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53653,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53624,"src":"26262:4:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":53648,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26241:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26244:4:81","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"26241:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26241:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"26207:60:81"},{"expression":{"id":53665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53656,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53565,"src":"26281:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":53658,"indexExpression":{"id":53657,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26292:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26281:13:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53661,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53645,"src":"26314:1:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":53662,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53647,"src":"26317:1:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":53663,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53643,"src":"26320:1:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":53659,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26297:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26301:12:81","memberName":"encodePacked","nodeType":"MemberAccess","src":"26297:16:81","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26297:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"26281:41:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":53666,"nodeType":"ExpressionStatement","src":"26281:41:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26181:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":53637,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53557,"src":"26185:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26181:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53668,"initializationExpression":{"assignments":[53633],"declarations":[{"constant":false,"id":53633,"mutability":"mutable","name":"i","nameLocation":"26174:1:81","nodeType":"VariableDeclaration","scope":53668,"src":"26166:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53632,"name":"uint256","nodeType":"ElementaryTypeName","src":"26166:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53635,"initialValue":{"hexValue":"30","id":53634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26178:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26166:13:81"},"loopExpression":{"expression":{"id":53640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26188:3:81","subExpression":{"id":53639,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26188:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53641,"nodeType":"ExpressionStatement","src":"26188:3:81"},"nodeType":"ForStatement","src":"26161:172:81"},{"body":{"id":53695,"nodeType":"Block","src":"26375:124:81","statements":[{"expression":{"arguments":[{"baseExpression":{"id":53682,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53550,"src":"26398:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53684,"indexExpression":{"id":53683,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53670,"src":"26409:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26398:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53679,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26389:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26392:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26389:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26389:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53686,"nodeType":"ExpressionStatement","src":"26389:23:81"},{"expression":{"arguments":[{"id":53690,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53590,"src":"26453:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":53691,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53550,"src":"26465:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53692,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53565,"src":"26477:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":53687,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"26426:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":53689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26436:16:81","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":49634,"src":"26426:26:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26426:62:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53694,"nodeType":"ExpressionStatement","src":"26426:62:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53673,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53670,"src":"26363:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":53674,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53557,"src":"26367:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26363:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53696,"initializationExpression":{"assignments":[53670],"declarations":[{"constant":false,"id":53670,"mutability":"mutable","name":"i","nameLocation":"26356:1:81","nodeType":"VariableDeclaration","scope":53696,"src":"26348:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53669,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53672,"initialValue":{"hexValue":"30","id":53671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26360:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26348:13:81"},"loopExpression":{"expression":{"id":53677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26370:3:81","subExpression":{"id":53676,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53670,"src":"26370:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53678,"nodeType":"ExpressionStatement","src":"26370:3:81"},"nodeType":"ForStatement","src":"26343:156:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"25412:13:81","parameters":{"id":53554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53550,"mutability":"mutable","name":"validators","nameLocation":"25443:10:81","nodeType":"VariableDeclaration","scope":53698,"src":"25426:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53548,"name":"address","nodeType":"ElementaryTypeName","src":"25426:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53549,"nodeType":"ArrayTypeName","src":"25426:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":53553,"mutability":"mutable","name":"privKeys","nameLocation":"25472:8:81","nodeType":"VariableDeclaration","scope":53698,"src":"25455:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53551,"name":"uint256","nodeType":"ElementaryTypeName","src":"25455:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53552,"nodeType":"ArrayTypeName","src":"25455:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"25425:56:81"},"returnParameters":{"id":53555,"nodeType":"ParameterList","parameters":[],"src":"25491:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53733,"nodeType":"FunctionDefinition","src":"26511:305:81","nodes":[],"body":{"id":53732,"nodeType":"Block","src":"26558:258:81","nodes":[],"statements":[{"assignments":[53704],"declarations":[{"constant":false,"id":53704,"mutability":"mutable","name":"expectedNonce","nameLocation":"26576:13:81","nodeType":"VariableDeclaration","scope":53732,"src":"26568:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53703,"name":"uint256","nodeType":"ElementaryTypeName","src":"26568:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53710,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":53709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53705,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"26592:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26601:13:81","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37157,"src":"26592:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":53707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26592:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26619:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26592:28:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26568:52:81"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":53718,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"26692:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26696:6:81","memberName":"sender","nodeType":"MemberAccess","src":"26692:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53716,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"26670:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26687:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"26670:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26670:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":53711,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"26630:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26640:7:81","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38358,"src":"26630:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":53715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53714,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53700,"src":"26655:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26630:39:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":53721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26630:74:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53722,"nodeType":"ExpressionStatement","src":"26630:74:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53724,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"26722:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26731:13:81","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37157,"src":"26722:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":53726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26722:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53727,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53704,"src":"26750:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26722:41:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":53729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26765:43:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":53723,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26714:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26714:95:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53731,"nodeType":"ExpressionStatement","src":"26714:95:81"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"26520:7:81","parameters":{"id":53701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53700,"mutability":"mutable","name":"releaseAmount","nameLocation":"26536:13:81","nodeType":"VariableDeclaration","scope":53733,"src":"26528:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53699,"name":"uint256","nodeType":"ElementaryTypeName","src":"26528:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26527:23:81"},"returnParameters":{"id":53702,"nodeType":"ParameterList","parameters":[],"src":"26558:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53788,"nodeType":"FunctionDefinition","src":"26822:540:81","nodes":[],"body":{"id":53787,"nodeType":"Block","src":"26891:471:81","nodes":[],"statements":[{"assignments":[53741],"declarations":[{"constant":false,"id":53741,"mutability":"mutable","name":"balanceBefore","nameLocation":"26909:13:81","nodeType":"VariableDeclaration","scope":53787,"src":"26901:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53740,"name":"uint256","nodeType":"ElementaryTypeName","src":"26901:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53744,"initialValue":{"expression":{"id":53742,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"26925:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26939:7:81","memberName":"balance","nodeType":"MemberAccess","src":"26925:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26901:45:81"},{"assignments":[null,53746,null,null,null,null],"declarations":[null,{"constant":false,"id":53746,"mutability":"mutable","name":"stakedBefore","nameLocation":"26968:12:81","nodeType":"VariableDeclaration","scope":53787,"src":"26960:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53745,"name":"uint256","nodeType":"ElementaryTypeName","src":"26960:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null,null],"id":53750,"initialValue":{"arguments":[{"id":53748,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"27002:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53747,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"26992:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26992:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"26957:59:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":53751,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"27027:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27037:8:81","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38090,"src":"27027:18:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":53755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53754,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"27053:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"27027:38:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":53756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27027:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53757,"nodeType":"ExpressionStatement","src":"27027:40:81"},{"assignments":[53759],"declarations":[{"constant":false,"id":53759,"mutability":"mutable","name":"balanceAfter","nameLocation":"27086:12:81","nodeType":"VariableDeclaration","scope":53787,"src":"27078:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53758,"name":"uint256","nodeType":"ElementaryTypeName","src":"27078:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53762,"initialValue":{"expression":{"id":53760,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"27101:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27115:7:81","memberName":"balance","nodeType":"MemberAccess","src":"27101:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27078:44:81"},{"assignments":[null,53764,null,null,null,null],"declarations":[null,{"constant":false,"id":53764,"mutability":"mutable","name":"stakedAfter","nameLocation":"27143:11:81","nodeType":"VariableDeclaration","scope":53787,"src":"27135:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53763,"name":"uint256","nodeType":"ElementaryTypeName","src":"27135:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null,null],"id":53768,"initialValue":{"arguments":[{"id":53766,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"27176:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53765,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"27166:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27166:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"27132:58:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53770,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53759,"src":"27209:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53771,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53741,"src":"27225:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":53772,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"27241:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27225:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27209:43:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":53775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27254:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":53769,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27201:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27201:74:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53777,"nodeType":"ExpressionStatement","src":"27201:74:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53779,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53764,"src":"27293:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53780,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53746,"src":"27308:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":53781,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"27323:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27308:26:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27293:41:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":53784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27336:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":53778,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27285:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27285:70:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53786,"nodeType":"ExpressionStatement","src":"27285:70:81"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"26831:8:81","parameters":{"id":53738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53735,"mutability":"mutable","name":"stakeAmount","nameLocation":"26848:11:81","nodeType":"VariableDeclaration","scope":53788,"src":"26840:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53734,"name":"uint256","nodeType":"ElementaryTypeName","src":"26840:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53737,"mutability":"mutable","name":"subnetAddress","nameLocation":"26869:13:81","nodeType":"VariableDeclaration","scope":53788,"src":"26861:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53736,"name":"address","nodeType":"ElementaryTypeName","src":"26861:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26839:44:81"},"returnParameters":{"id":53739,"nodeType":"ParameterList","parameters":[],"src":"26891:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53884,"nodeType":"FunctionDefinition","src":"27368:891:81","nodes":[],"body":{"id":53883,"nodeType":"Block","src":"27463:796:81","nodes":[],"statements":[{"assignments":[53800],"declarations":[{"constant":false,"id":53800,"mutability":"mutable","name":"manager","nameLocation":"27493:7:81","nodeType":"VariableDeclaration","scope":53883,"src":"27473:27:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53799,"nodeType":"UserDefinedTypeName","pathNode":{"id":53798,"name":"GatewayManagerFacet","nameLocations":["27473:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"27473:19:81"},"referencedDeclaration":38359,"src":"27473:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53807,"initialValue":{"arguments":[{"arguments":[{"id":53804,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53795,"src":"27531:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27523:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53802,"name":"address","nodeType":"ElementaryTypeName","src":"27523:7:81","typeDescriptions":{}}},"id":53805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27523:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53801,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"27503:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27503:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"27473:62:81"},{"expression":{"arguments":[{"hexValue":"30","id":53813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27582:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":53808,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53800,"src":"27546:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27554:8:81","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38030,"src":"27546:16:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":53812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53811,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53790,"src":"27570:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"27546:35:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":53814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27546:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53815,"nodeType":"ExpressionStatement","src":"27546:38:81"},{"assignments":[53818,53820,53822,null,53824,53827],"declarations":[{"constant":false,"id":53818,"mutability":"mutable","name":"id","nameLocation":"27612:2:81","nodeType":"VariableDeclaration","scope":53883,"src":"27596:18:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53817,"nodeType":"UserDefinedTypeName","pathNode":{"id":53816,"name":"SubnetID","nameLocations":["27596:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"27596:8:81"},"referencedDeclaration":48557,"src":"27596:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":53820,"mutability":"mutable","name":"stake","nameLocation":"27624:5:81","nodeType":"VariableDeclaration","scope":53883,"src":"27616:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53819,"name":"uint256","nodeType":"ElementaryTypeName","src":"27616:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53822,"mutability":"mutable","name":"topDownNonce","nameLocation":"27639:12:81","nodeType":"VariableDeclaration","scope":53883,"src":"27631:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53821,"name":"uint256","nodeType":"ElementaryTypeName","src":"27631:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":53824,"mutability":"mutable","name":"circSupply","nameLocation":"27663:10:81","nodeType":"VariableDeclaration","scope":53883,"src":"27655:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53823,"name":"uint256","nodeType":"ElementaryTypeName","src":"27655:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53827,"mutability":"mutable","name":"status","nameLocation":"27682:6:81","nodeType":"VariableDeclaration","scope":53883,"src":"27675:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":53826,"nodeType":"UserDefinedTypeName","pathNode":{"id":53825,"name":"Status","nameLocations":["27675:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"27675:6:81"},"referencedDeclaration":36932,"src":"27675:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"}],"id":53832,"initialValue":{"arguments":[{"id":53829,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53792,"src":"27717:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53830,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53795,"src":"27744:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53828,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53982,"src":"27692:11:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$35759_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27692:64:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"27595:161:81"},{"assignments":[53835],"declarations":[{"constant":false,"id":53835,"mutability":"mutable","name":"parentNetwork","nameLocation":"27783:13:81","nodeType":"VariableDeclaration","scope":53883,"src":"27767:29:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53834,"nodeType":"UserDefinedTypeName","pathNode":{"id":53833,"name":"SubnetID","nameLocations":["27767:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"27767:8:81"},"referencedDeclaration":48557,"src":"27767:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53836,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"27799:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27808:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"27799:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27799:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"27767:57:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":53850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53841,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53818,"src":"27856:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27859:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"27856:9:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":53843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27856:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":53846,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53792,"src":"27900:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53844,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53835,"src":"27871:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27885:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"27871:28:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27871:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27915:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"27871:50:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":53849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27871:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"27856:67:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":53851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27937:69:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":53840,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27835:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27835:181:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53853,"nodeType":"ExpressionStatement","src":"27835:181:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53855,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53820,"src":"28034:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53856,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53790,"src":"28043:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28034:19:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":53858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28055:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":53854,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28026:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28026:48:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53860,"nodeType":"ExpressionStatement","src":"28026:48:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53862,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53822,"src":"28092:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28108:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28092:17:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28111:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":53861,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28084:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28084:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53867,"nodeType":"ExpressionStatement","src":"28084:46:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53869,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53824,"src":"28148:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28162:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28148:15:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":53872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28165:23:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":53868,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28140:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28140:49:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53874,"nodeType":"ExpressionStatement","src":"28140:49:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53876,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53827,"src":"28207:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":53877,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"28217:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$36932_$","typeString":"type(enum Status)"}},"id":53878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28224:6:81","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":36927,"src":"28217:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"src":"28207:23:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e657870656374656420737461747573","id":53880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28232:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba313606cd95d33cf8055f53d8400718c19a556faf6b3b571b4ee34226df46ef","typeString":"literal_string \"unexpected status\""},"value":"unexpected status"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba313606cd95d33cf8055f53d8400718c19a556faf6b3b571b4ee34226df46ef","typeString":"literal_string \"unexpected status\""}],"id":53875,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28199:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28199:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53882,"nodeType":"ExpressionStatement","src":"28199:53:81"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"27377:16:81","parameters":{"id":53796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53790,"mutability":"mutable","name":"collateral","nameLocation":"27402:10:81","nodeType":"VariableDeclaration","scope":53884,"src":"27394:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53789,"name":"uint256","nodeType":"ElementaryTypeName","src":"27394:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53792,"mutability":"mutable","name":"subnetAddress","nameLocation":"27422:13:81","nodeType":"VariableDeclaration","scope":53884,"src":"27414:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53791,"name":"address","nodeType":"ElementaryTypeName","src":"27414:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53795,"mutability":"mutable","name":"gw","nameLocation":"27452:2:81","nodeType":"VariableDeclaration","scope":53884,"src":"27437:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":53794,"nodeType":"UserDefinedTypeName","pathNode":{"id":53793,"name":"GatewayDiamond","nameLocations":["27437:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"27437:14:81"},"referencedDeclaration":35759,"src":"27437:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"27393:62:81"},"returnParameters":{"id":53797,"nodeType":"ParameterList","parameters":[],"src":"27463:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53898,"nodeType":"FunctionDefinition","src":"28265:150:81","nodes":[],"body":{"id":53897,"nodeType":"Block","src":"28339:76:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53892,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53886,"src":"28366:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53893,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53888,"src":"28378:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53894,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"28393:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53891,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53884,"src":"28349:16:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$35759_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":53895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28349:59:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53896,"nodeType":"ExpressionStatement","src":"28349:59:81"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"28274:14:81","parameters":{"id":53889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53886,"mutability":"mutable","name":"collateral","nameLocation":"28297:10:81","nodeType":"VariableDeclaration","scope":53898,"src":"28289:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53885,"name":"uint256","nodeType":"ElementaryTypeName","src":"28289:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53888,"mutability":"mutable","name":"subnetAddress","nameLocation":"28317:13:81","nodeType":"VariableDeclaration","scope":53898,"src":"28309:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53887,"name":"address","nodeType":"ElementaryTypeName","src":"28309:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28288:43:81"},"returnParameters":{"id":53890,"nodeType":"ParameterList","parameters":[],"src":"28339:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53982,"nodeType":"FunctionDefinition","src":"28421:698:81","nodes":[],"body":{"id":53981,"nodeType":"Block","src":"28583:536:81","nodes":[],"statements":[{"expression":{"id":53927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53920,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"28593:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53924,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53903,"src":"28631:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28623:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53922,"name":"address","nodeType":"ElementaryTypeName","src":"28623:7:81","typeDescriptions":{}}},"id":53925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28623:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53921,"name":"GatewayRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39706,"src":"28604:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayRouterFacet_$39706_$","typeString":"type(contract GatewayRouterFacet)"}},"id":53926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"src":"28593:42:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53928,"nodeType":"ExpressionStatement","src":"28593:42:81"},{"expression":{"id":53936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53929,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"28645:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53933,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53903,"src":"28685:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28677:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53931,"name":"address","nodeType":"ElementaryTypeName","src":"28677:7:81","typeDescriptions":{}}},"id":53934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28677:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53930,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"28657:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28657:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"src":"28645:44:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53937,"nodeType":"ExpressionStatement","src":"28645:44:81"},{"expression":{"id":53945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53938,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"28699:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53942,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53903,"src":"28737:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28729:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53940,"name":"address","nodeType":"ElementaryTypeName","src":"28729:7:81","typeDescriptions":{}}},"id":53943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28729:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53939,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"28710:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$37869_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28710:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"src":"28699:42:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53946,"nodeType":"ExpressionStatement","src":"28699:42:81"},{"assignments":[53949],"declarations":[{"constant":false,"id":53949,"mutability":"mutable","name":"subnetId","nameLocation":"28768:8:81","nodeType":"VariableDeclaration","scope":53981,"src":"28752:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53948,"nodeType":"UserDefinedTypeName","pathNode":{"id":53947,"name":"SubnetID","nameLocations":["28752:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"28752:8:81"},"referencedDeclaration":48557,"src":"28752:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53956,"initialValue":{"arguments":[{"id":53954,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53900,"src":"28820:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53950,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"28779:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28788:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"28779:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28779:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28805:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"28779:40:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28779:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"28752:82:81"},{"assignments":[53959],"declarations":[{"constant":false,"id":53959,"mutability":"mutable","name":"subnet","nameLocation":"28859:6:81","nodeType":"VariableDeclaration","scope":53981,"src":"28845:20:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":53958,"nodeType":"UserDefinedTypeName","pathNode":{"id":53957,"name":"Subnet","nameLocations":["28845:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"28845:6:81"},"referencedDeclaration":48574,"src":"28845:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":53966,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53962,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53949,"src":"28885:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28894:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"28885:15:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":53964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28885:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":53960,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"28868:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28877:7:81","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37297,"src":"28868:16:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$48574_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":53965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28868:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"28845:58:81"},{"expression":{"components":[{"expression":{"id":53967,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"28935:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28942:2:81","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":48573,"src":"28935:9:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":53969,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"28958:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28965:5:81","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":48559,"src":"28958:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53971,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"28984:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28991:12:81","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":48565,"src":"28984:19:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":53973,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"29017:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29024:20:81","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":48567,"src":"29017:27:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":53975,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"29058:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29065:10:81","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":48563,"src":"29058:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53977,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"29089:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29096:6:81","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":48570,"src":"29089:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}}],"id":53979,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28921:191:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256,enum Status)"}},"functionReturnParameters":53919,"id":53980,"nodeType":"Return","src":"28914:198:81"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"28430:11:81","parameters":{"id":53904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53900,"mutability":"mutable","name":"subnetAddress","nameLocation":"28459:13:81","nodeType":"VariableDeclaration","scope":53982,"src":"28451:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53899,"name":"address","nodeType":"ElementaryTypeName","src":"28451:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53903,"mutability":"mutable","name":"gw","nameLocation":"28497:2:81","nodeType":"VariableDeclaration","scope":53982,"src":"28482:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":53902,"nodeType":"UserDefinedTypeName","pathNode":{"id":53901,"name":"GatewayDiamond","nameLocations":["28482:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"28482:14:81"},"referencedDeclaration":35759,"src":"28482:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"28441:64:81"},"returnParameters":{"id":53919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28522:15:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53906,"nodeType":"UserDefinedTypeName","pathNode":{"id":53905,"name":"SubnetID","nameLocations":["28522:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"28522:8:81"},"referencedDeclaration":48557,"src":"28522:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":53909,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28539:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53908,"name":"uint256","nodeType":"ElementaryTypeName","src":"28539:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53911,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28548:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53910,"name":"uint256","nodeType":"ElementaryTypeName","src":"28548:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28557:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53912,"name":"uint256","nodeType":"ElementaryTypeName","src":"28557:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53915,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28566:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53914,"name":"uint256","nodeType":"ElementaryTypeName","src":"28566:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28575:6:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":53917,"nodeType":"UserDefinedTypeName","pathNode":{"id":53916,"name":"Status","nameLocations":["28575:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"28575:6:81"},"referencedDeclaration":36932,"src":"28575:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"}],"src":"28521:61:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54007,"nodeType":"FunctionDefinition","src":"29125:199:81","nodes":[],"body":{"id":54006,"nodeType":"Block","src":"29258:66:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":54002,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53984,"src":"29287:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54003,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"29302:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":54001,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53982,"src":"29275:11:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$35759_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":54004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29275:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"functionReturnParameters":54000,"id":54005,"nodeType":"Return","src":"29268:49:81"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"29134:9:81","parameters":{"id":53985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53984,"mutability":"mutable","name":"subnetAddress","nameLocation":"29161:13:81","nodeType":"VariableDeclaration","scope":54007,"src":"29153:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53983,"name":"address","nodeType":"ElementaryTypeName","src":"29153:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29143:37:81"},"returnParameters":{"id":54000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29197:15:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53987,"nodeType":"UserDefinedTypeName","pathNode":{"id":53986,"name":"SubnetID","nameLocations":["29197:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"29197:8:81"},"referencedDeclaration":48557,"src":"29197:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":53990,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29214:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53989,"name":"uint256","nodeType":"ElementaryTypeName","src":"29214:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29223:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53991,"name":"uint256","nodeType":"ElementaryTypeName","src":"29223:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29232:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53993,"name":"uint256","nodeType":"ElementaryTypeName","src":"29232:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29241:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53995,"name":"uint256","nodeType":"ElementaryTypeName","src":"29241:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29250:6:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":53998,"nodeType":"UserDefinedTypeName","pathNode":{"id":53997,"name":"Status","nameLocations":["29250:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"29250:6:81"},"referencedDeclaration":36932,"src":"29250:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"}],"src":"29196:61:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":51793,"name":"Test","nameLocations":["7639:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"7639:4:81"},"id":51794,"nodeType":"InheritanceSpecifier","src":"7639:4:81"},{"baseName":{"id":51795,"name":"TestParams","nameLocations":["7645:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"7645:10:81"},"id":51796,"nodeType":"InheritanceSpecifier","src":"7645:10:81"},{"baseName":{"id":51797,"name":"TestRegistry","nameLocations":["7657:12:81"],"nodeType":"IdentifierPath","referencedDeclaration":51537,"src":"7657:12:81"},"id":51798,"nodeType":"InheritanceSpecifier","src":"7657:12:81"},{"baseName":{"id":51799,"name":"TestSubnetActor","nameLocations":["7671:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":51792,"src":"7671:15:81"},"id":51800,"nodeType":"InheritanceSpecifier","src":"7671:15:81"},{"baseName":{"id":51801,"name":"TestGatewayActor","nameLocations":["7688:16:81"],"nodeType":"IdentifierPath","referencedDeclaration":51670,"src":"7688:16:81"},"id":51802,"nodeType":"InheritanceSpecifier","src":"7688:16:81"}],"canonicalName":"IntegrationTestBase","contractDependencies":[35759,36177,36415,36477,36914,37869,38359,38674,39706,49325,50947,51075,51313,56069],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54008,51670,51792,51537,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"7616:19:81","scope":54009,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":81} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"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":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"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":"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":"0x60808060405234620012ed57600160ff198181600054161760005560045416176004556319b8a26360e21b815260206004820152601260248201527110da1958dadc1bda5b9d1a5b99d19858d95d60721b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae57600091620012ce575b508051906001600160401b03821162000870576801000000000000000082116200087057601b5482601b558083106200126b575b5060200190601b60005260206000209060005b8160031c81106200121b57506007198116810380620011c3575b505050506040516319b8a26360e21b8152602060048201526012602482015271161b995d13595cdcd859da5b99d19858d95d60721b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae57600091620011a4575b508051906001600160401b03821162000870576801000000000000000082116200087057601c5482601c5580831062001138575b5060200190601c60005260206000209060005b8160031c8110620010e85750600719811681036200108f575b50506040516319b8a26360e21b815260206004820152601460248201527f546f70446f776e46696e616c69747946616365740000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162001070575b508051906001600160401b03821162000870576801000000000000000082116200087057601d5482601d5580831062000fe7575b5060200190601d60005260206000209060005b8160031c811062000f9757506007198116810362000f3e575b50506040516319b8a26360e21b815260206004820152601360248201527f426f74746f6d5570526f757465724661636574000000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162000f1f575b508051906001600160401b03821162000870576801000000000000000082116200087057601e5482601e5580831062000e96575b5060200190601e60005260206000209060005b8160031c811062000e4657506007198116810362000ded575b50506040516319b8a26360e21b815260206004820152601260248201527111d85d195dd85e51d95d1d195c919858d95d60721b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162000dce575b508051906001600160401b038211620008705768010000000000000000821162000870576020548260205580831062000d56575b50602060008181529101916000805160206200203b833981519152915b8160031c811062000d0657506007198116810362000cad575b50506040516319b8a26360e21b815260206004820152601360248201527f476174657761794d616e616765724661636574000000000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162000c8e575b508051906001600160401b03821162000870576801000000000000000082116200087057601f5482601f5580831062000c05575b5060200190601f60005260206000209060005b8160031c811062000bb557506007198116810362000b5c575b50506040516319b8a26360e21b815260206004820152601560248201527f476174657761794d657373656e676572466163657400000000000000000000006044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162000b3d575b508051906001600160401b038211620008705768010000000000000000821162000870576021548260215580831062000ab4575b5060200190602160005260206000209060005b8160031c811062000a6457506007198116810362000a0b575b50506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae57600091620009ec575b508051906001600160401b038211620008705768010000000000000000821162000870576022548260225580831062000963575b5060200190602260005260206000209060005b8160031c811062000913575060071981168103620008ba575b50506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b6044820152905060008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af4908115620008ae5760009162000886575b508051906001600160401b03821162000870576801000000000000000082116200087057602354826023558083106200080d575b5060200190602360005260206000208160031c9160005b838110620007bd5750600719811690038062000768575b604051610c8e9081620013ad8239f35b9260009360005b818110620007865750505001553880808062000758565b9091946020620007b2600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200076f565b6000805b60088110620007d857508382015560010162000741565b9590602062000803600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601620007c1565b60236000526020600020600780850160031c8201920160031c0190601c8460021b168062000854575b505b8181106200084757506200072a565b6000815560010162000838565b600019908183019182549160200360031b1c1690553862000836565b634e487b7160e01b600052604160045260246000fd5b620008a791503d806000833e6200089e8183620012f2565b81019062001316565b38620006f6565b6040513d6000823e3d90fd5b60009260005b600719831683038110620008de57505060031c01553880806200068f565b9093602062000909600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b95019101620008c0565b6000805b600881106200092e57508382015560010162000676565b9490602062000959600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000917565b60226000527f61035b26e3e9eee00e0d72fd1ee8ddca6894550dca6916ea2ac6baa90d11e510600284901b601c1680620009c8575b506007840160031c81015b6007830160031c82018110620009bb57505062000663565b60008155600101620009a3565b60001990816007870160031c8401019182549160200360031b1c1690553862000998565b62000a0491503d806000833e6200089e8183620012f2565b386200062f565b60009260005b60071983168303811062000a2f57505060031c0155388080620005ca565b9093602062000a5a600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000a11565b6000805b6008811062000a7f575083820155600101620005b1565b9490602062000aaa600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000a68565b60216000527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b570600284901b601c168062000b19575b506007840160031c81015b6007830160031c8201811062000b0c5750506200059e565b6000815560010162000af4565b60001990816007870160031c8401019182549160200360031b1c1690553862000ae9565b62000b5591503d806000833e6200089e8183620012f2565b386200056a565b60009260005b60071983168303811062000b8057505060031c0155388080620004f7565b9093602062000bab600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000b62565b6000805b6008811062000bd0575083820155600101620004de565b9490602062000bfb600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000bb9565b601f6000527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807600284901b601c168062000c6a575b506007840160031c81015b6007830160031c8201811062000c5d575050620004cb565b6000815560010162000c45565b60001990816007870160031c8401019182549160200360031b1c1690553862000c3a565b62000ca691503d806000833e6200089e8183620012f2565b3862000497565b60009260005b60071983168303811062000cd157505060031c015538808062000424565b9093602062000cfc600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000cb3565b6000805b6008811062000d215750838201556001016200040b565b9490602062000d4c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000d0a565b60206000526000805160206200203b833981519152600284901b601c168062000daa575b506007840160031c81015b6007830160031c8201811062000d9d575050620003ee565b6000815560010162000d85565b60001990816007870160031c8401019182549160200360031b1c1690553862000d7a565b62000de691503d806000833e6200089e8183620012f2565b38620003ba565b60009260005b60071983168303811062000e1157505060031c015538808062000352565b9093602062000e3c600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000df3565b6000805b6008811062000e6157508382015560010162000339565b9490602062000e8c600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000e4a565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c168062000efb575b506007840160031c81015b6007830160031c8201811062000eee57505062000326565b6000815560010162000ed6565b60001990816007870160031c8401019182549160200360031b1c1690553862000ecb565b62000f3791503d806000833e6200089e8183620012f2565b38620002f2565b60009260005b60071983168303811062000f6257505060031c01553880806200027f565b9093602062000f8d600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162000f44565b6000805b6008811062000fb257508382015560010162000266565b9490602062000fdd600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000f9b565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c16806200104c575b506007840160031c81015b6007830160031c820181106200103f57505062000253565b6000815560010162001027565b60001990816007870160031c8401019182549160200360031b1c169055386200101c565b6200108891503d806000833e6200089e8183620012f2565b386200021f565b60009260005b600719831683038110620010b357505060031c0155388080620001ac565b90936020620010de600192875160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9501910162001095565b6000805b600881106200110357508382015560010162000193565b949060206200112e600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620010ec565b601c6000526020600020601c8460021b168062001180575b506007840160031c81015b6007830160031c820181106200117357505062000180565b600081556001016200115b565b60001990816007870160031c8401019182549160200360031b1c1690553862001150565b620011bc91503d806000833e6200089e8183620012f2565b386200014c565b9260009360005b818110620011e45750505060031c015538808080620000e4565b909194602062001210600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620011ca565b6000805b6008811062001236575083820155600101620000ca565b9490602062001261600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b920195016200121f565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b1680620012b2575b505b818110620012a55750620000b7565b6000815560010162001296565b600019908183019182549160200360031b1c1690553862001294565b620012e691503d806000833e6200089e8183620012f2565b3862000083565b600080fd5b601f909101601f19168101906001600160401b038211908210176200087057604052565b906020908183820312620012ed5782516001600160401b0393848211620012ed570181601f82011215620012ed57805193841162000870578360051b90604051946200136585840187620012f2565b85528380860192820101928311620012ed578301905b8282106200138a575050505090565b81516001600160e01b031981168103620012ed5781529083019083016200137b56fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220c963444b4037c9ad40a9bc0d116932e1e3ee1de56d04368062ea43244df2937b64736f6c63430008130033c97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb","sourceMap":"4501:2237:88:-:0;;;;;;;1594:4:2;4501:2237:88;;;;1594:4:2;4501:2237:88;;;1594:4:2;4501:2237:88;3201:4:5;4501:2237:88;;;3201:4:5;4501:2237:88;;;;5345:54;;4501:2237;3201:4:5;5345:54:88;;4501:2237;;;;;;-1:-1:-1;;;4501:2237:88;;;;1594:4:2;5345:15:88;4501:2237;5345:15;;:54;;;;;;;1594:4:2;5345:54:88;;;-1:-1:-1;;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;5313:86;4501:2237;;5313:86;4501:2237;;;;;;-1:-1:-1;4501:2237:88;;;;5313:86;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;;;;;;;;;;;5441:54;;4501:2237;3201:4:5;5441:54:88;;4501:2237;;;;;;-1:-1:-1;;;4501:2237:88;;;;1594:4:2;5345:15:88;4501:2237;5345:15;;5441:54;;;;;;;1594:4:2;5441:54:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;5409:86;4501:2237;;5409:86;4501:2237;;;;;;;;;;;5409:86;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;-1:-1:-1;;4501:2237:88;;-1:-1:-1;;;5539:56:88;;4501:2237;3201:4:5;5539:56:88;;4501:2237;;;;;;;;;;;;-1:-1:-1;;4501:2237:88;;;5345:15;5539:56;;;;;;;1594:4:2;5539:56:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;5505:90;4501:2237;;5505:90;4501:2237;;;;;;;;;;;5505:90;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;-1:-1:-1;;4501:2237:88;;-1:-1:-1;;;5638:55:88;;4501:2237;3201:4:5;5638:55:88;;4501:2237;;;;;;;;;;;;-1:-1:-1;;4501:2237:88;;;5345:15;5638:55;;;;;;;1594:4:2;5638:55:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;5605:88;4501:2237;;5605:88;4501:2237;;;;;;;;;;;5605:88;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;-1:-1:-1;;4501:2237:88;;-1:-1:-1;;;5724:54:88;;4501:2237;3201:4:5;5724:54:88;;4501:2237;;;;;;-1:-1:-1;;;4501:2237:88;;;;;-1:-1:-1;;4501:2237:88;;;5345:15;5724:54;;;;;;;1594:4:2;5724:54:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4501:2237:88;1594:4:2;4501:2237:88;;;;;;-1:-1:-1;;;;;;;;;;;4501:2237:88;;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;-1:-1:-1;;4501:2237:88;;-1:-1:-1;;;5809:55:88;;4501:2237;3201:4:5;5809:55:88;;4501:2237;;;;;;;;;;;;-1:-1:-1;;4501:2237:88;;;5345:15;5809:55;;;;;;;1594:4:2;5809:55:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;5788:76;4501:2237;;5788:76;4501:2237;;;;;;;;;;;5788:76;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;-1:-1:-1;;4501:2237:88;;-1:-1:-1;;;5897:57:88;;4501:2237;3201:4:5;5897:57:88;;4501:2237;;;;;;;;;;;;-1:-1:-1;;4501:2237:88;;;5345:15;5897:57;;;;;;;1594:4:2;5897:57:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;5874:80;4501:2237;;5874:80;4501:2237;;;;;;;;;;;5874:80;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;-1:-1:-1;;4501:2237:88;;-1:-1:-1;;;5984:51:88;;4501:2237;3201:4:5;5984:51:88;;4501:2237;;;;;;-1:-1:-1;;;4501:2237:88;;;;;-1:-1:-1;;4501:2237:88;;;5345:15;5984:51;;;;;;;1594:4:2;5984:51:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;5964:71;4501:2237;;5964:71;4501:2237;;;;;;;;;;;5964:71;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;-1:-1:-1;;4501:2237:88;;-1:-1:-1;;;6064:53:88;;4501:2237;3201:4:5;6064:53:88;;4501:2237;;;;;;-1:-1:-1;;;4501:2237:88;;;;;-1:-1:-1;;4501:2237:88;;;5345:15;6064:53;;;;;;;1594:4:2;6064:53:88;;;4501:2237;-1:-1:-1;4501:2237:88;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;6045:72;4501:2237;;6045:72;4501:2237;;;;;;;;;;;6045:72;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;1594:4:2;4501:2237:88;;;;;;-1:-1:-1;;;4501:2237:88;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6045:72;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;3201:4:5;4501:2237:88;;1594:4:2;4501:2237:88;6064:53;;;;;;1594:4:2;6064:53:88;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;4501:2237;;;1594:4:2;4501:2237:88;;;;;;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5964:71;1594:4:2;4501:2237:88;;;;;;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5984:51;;;;;;1594:4:2;5984:51:88;;;;;;:::i;:::-;;;;4501:2237;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5874:80;1594:4:2;4501:2237:88;;;;;;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5897:57;;;;;;1594:4:2;5897:57:88;;;;;;:::i;:::-;;;;4501:2237;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5788:76;1594:4:2;4501:2237:88;;;;;;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5809:55;;;;;;1594:4:2;5809:55:88;;;;;;:::i;:::-;;;;4501:2237;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;-1:-1:-1;;;;;;;;;;;4501:2237:88;;;;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5724:54;;;;;;1594:4:2;5724:54:88;;;;;;:::i;:::-;;;;4501:2237;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5605:88;1594:4:2;4501:2237:88;;;;;;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5638:55;;;;;;1594:4:2;5638:55:88;;;;;;:::i;:::-;;;;4501:2237;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5505:90;1594:4:2;4501:2237:88;;;;;;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5539:56;;;;;;1594:4:2;5539:56:88;;;;;;:::i;:::-;;;;4501:2237;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5409:86;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;5409:86;4501:2237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5441:54;;;;;;1594:4:2;5441:54:88;;;;;;:::i;:::-;;;;4501:2237;;1594:4:2;4501:2237:88;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;4501:2237:88;;;;;;-1:-1:-1;4501:2237:88;;;;1594:4:2;4501:2237:88;;;;;;;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5313:86;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;4501:2237:88;;1594:4:2;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;5345:54;;;;;;1594:4:2;5345:54:88;;;;;;:::i;:::-;;;;4501:2237;;;;;;;;;-1:-1:-1;;4501:2237:88;;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;","linkReferences":{"test/helpers/SelectorLibrary.sol":{"SelectorLibrary":[{"start":93,"length":20},{"start":294,"length":20},{"start":505,"length":20},{"start":716,"length":20},{"start":916,"length":20},{"start":1137,"length":20},{"start":1348,"length":20},{"start":1545,"length":20},{"start":1744,"length":20}]}}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220c963444b4037c9ad40a9bc0d116932e1e3ee1de56d04368062ea43244df2937b64736f6c63430008130033","sourceMap":"4501:2237:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;4501:2237:88;;;;:::i;:::-;;1671:64:2;4501:2237:88;;1671:64:2;;;:::i;:::-;4501:2237:88;;;1982:18:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4501:2237:88;;;;;;;;-1:-1:-1;4501:2237:88;;;;;-1:-1:-1;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4501:2237:88;;;;;-1:-1:-1;4501:2237:88;;;;;;;;;-1:-1:-1;4501:2237:88;;;;-1:-1:-1;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;4501:2237:88;;;;:::i;:::-;;1671:64:2;4501:2237:88;;1671:64:2;;;:::i;:::-;4501:2237:88;;;2899:18:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;4501:2237:88;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;4501:2237:88;;;;:::i;:::-;;1671:64:2;4501:2237:88;;1671:64:2;;;:::i;:::-;4501:2237:88;;;2416:18:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4501:2237:88;;;;;;;;-1:-1:-1;4501:2237:88;;;;;-1:-1:-1;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4501:2237:88;;;;;-1:-1:-1;4501:2237:88;;;;;;;;;-1:-1:-1;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;4501:2237:88;;;;:::i;:::-;;1671:64:2;4501:2237:88;;1671:64:2;;;:::i;:::-;4501:2237:88;;;2592:26:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;4501:2237:88;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4501:2237:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4501:2237:88;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;4501:2237:88;;;;;;;;;;;;;;;;;1671:64:2;4501:2237:88;1671:64:2;;;;;;;;;;;4501:2237:88;1671:64:2;:::o;:::-;4501:2237:88;;;1671:64:2;;;;;;;;;;4501:2237:88;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;4501:2237:88;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;4501:2237:88;;;2196:43:2;;;4501:2237:88;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;4501:2237:88;;-1:-1:-1;1671:64:2;;4501:2237:88;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;4501:2237:88;1671:64:2;2086:175;;;4501:2237:88;;;;;;1671:64:2;4501:2237:88;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;4501:2237:88;;;1671:64:2;4501:2237:88;;;-1:-1:-1;;4501:2237:88;2196:43:2;1671:64;4501:2237:88;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;4501:2237:88;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;4501:2237:88;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;4501:2237:88;1671:64:2;;;4501:2237:88;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;4501:2237:88;1671:64:2;4501:2237:88;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"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\":\"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/IntegrationTestBase.sol\":\"TestGatewayActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20\",\"dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f\",\"dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496\",\"dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT\"]},\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be\",\"dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/mocks/SubnetActorManagerFacetMock.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"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":"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestGatewayActor"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec","urls":["bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20","dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870","urls":["bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f","dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692","urls":["bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496","dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT"],"license":"MIT OR Apache-2.0"},"test/helpers/SelectorLibrary.sol":{"keccak256":"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd","urls":["bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be","dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorManagerFacetMock.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":55376,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"BottomUpRouterFacet":[39601],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"CollateralIsZero":[37390],"ConsensusType":[37359],"CrossMsg":[49974],"CrossMsgHelper":[40781],"DSTest":[3720],"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"DuplicatedGenesisValidator":[37530],"EMPTY_BYTES":[36873],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"FilAddress":[1428],"FvmAddress":[49998],"FvmAddressHelper":[40962],"GatewayCannotBeZero":[37400],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IDiamond":[40170],"IPCAddress":[50204],"IntegrationTestBase":[55375],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"METHOD_SEND":[36879],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinality":[49918],"ParentFinalityAlreadyCommitted":[37498],"PermissionMode":[50165],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"RegisterSubnetFacet":[52279],"SelectorLibrary":[56263],"SignatureReplay":[37502],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[50887],"SubnetActorManagerFacet":[52151],"SubnetActorManagerFacetMock":[57957],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetGetterFacet":[52517],"SubnetID":[50077],"SubnetIDHelper":[48072],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SubnetRegistryDiamond":[36853],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[52912],"TestParams":[52683],"TestRegistry":[52747],"TestSubnetActor":[53037],"TestUtils":[57051],"TopDownFinalityFacet":[40071],"UnknownSubnet":[37522],"Validator":[50211],"Vm":[14222],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"XnetMessagingFacet":[40144],"ZeroMembershipWeight":[37512],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:31883:88","nodes":[{"id":52519,"nodeType":"PragmaDirective","src":"46:23:88","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52520,"nodeType":"ImportDirective","src":"71:28:88","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52521,"nodeType":"ImportDirective","src":"100:36:88","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":52522,"nodeType":"ImportDirective","src":"137:37:88","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52525,"nodeType":"ImportDirective","src":"176:72:88","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52523,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"184:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52524,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"197:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52527,"nodeType":"ImportDirective","src":"249:61:88","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52526,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"257:13:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52529,"nodeType":"ImportDirective","src":"311:56:88","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52528,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"319:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52534,"nodeType":"ImportDirective","src":"368:102:88","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":52530,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"376:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52531,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"386:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52532,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"406:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52533,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"419:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52536,"nodeType":"ImportDirective","src":"471:57:88","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":52535,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"479:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52545,"nodeType":"ImportDirective","src":"529:140:88","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":52537,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"537:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"547:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"559:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52540,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"575:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52541,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"591:6:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52542,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"599:12:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52543,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"613:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52544,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"625:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52547,"nodeType":"ImportDirective","src":"670:61:88","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":52546,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"678:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52549,"nodeType":"ImportDirective","src":"732:65:88","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40963,"symbolAliases":[{"foreign":{"id":52548,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"740:16:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52551,"nodeType":"ImportDirective","src":"798:61:88","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":52550,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"806:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52553,"nodeType":"ImportDirective","src":"860:67:88","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":52552,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"868:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52555,"nodeType":"ImportDirective","src":"928:56:88","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52554,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"936:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52557,"nodeType":"ImportDirective","src":"985:57:88","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52556,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"993:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52559,"nodeType":"ImportDirective","src":"1043:65:88","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52558,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1051:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52561,"nodeType":"ImportDirective","src":"1109:73:88","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52560,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1117:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52563,"nodeType":"ImportDirective","src":"1183:79:88","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52562,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1191:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52565,"nodeType":"ImportDirective","src":"1263:75:88","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52564,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1271:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52567,"nodeType":"ImportDirective","src":"1340:80:88","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52566,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1348:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52569,"nodeType":"ImportDirective","src":"1421:80:88","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52568,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1429:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52571,"nodeType":"ImportDirective","src":"1502:84:88","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52570,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1510:20:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52573,"nodeType":"ImportDirective","src":"1587:82:88","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52572,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1595:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52575,"nodeType":"ImportDirective","src":"1671:84:88","nodes":[],"absolutePath":"test/mocks/SubnetActorManagerFacetMock.sol","file":"./mocks/SubnetActorManagerFacetMock.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57958,"symbolAliases":[{"foreign":{"id":52574,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57957,"src":"1679:27:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52577,"nodeType":"ImportDirective","src":"1756:82:88","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52152,"symbolAliases":[{"foreign":{"id":52576,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"1764:23:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52579,"nodeType":"ImportDirective","src":"1839:80:88","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":52578,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1847:22:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52581,"nodeType":"ImportDirective","src":"1920:71:88","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52580,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"1928:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52583,"nodeType":"ImportDirective","src":"1992:82:88","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52280,"symbolAliases":[{"foreign":{"id":52582,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52279,"src":"2000:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52585,"nodeType":"ImportDirective","src":"2075:78:88","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52518,"symbolAliases":[{"foreign":{"id":52584,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52517,"src":"2083:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52587,"nodeType":"ImportDirective","src":"2154:71:88","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52586,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2162:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52589,"nodeType":"ImportDirective","src":"2226:67:88","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52588,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2234:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52591,"nodeType":"ImportDirective","src":"2294:69:88","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":52590,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"2302:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52593,"nodeType":"ImportDirective","src":"2364:50:88","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57052,"symbolAliases":[{"foreign":{"id":52592,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"2372:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52595,"nodeType":"ImportDirective","src":"2415:62:88","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":56264,"symbolAliases":[{"foreign":{"id":52594,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"2423:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52683,"nodeType":"ContractDefinition","src":"2479:1194:88","nodes":[{"id":52602,"nodeType":"VariableDeclaration","src":"2505:44:88","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2521:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52596,"name":"uint64","nodeType":"ElementaryTypeName","src":"2505:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2538:6:88","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52598,"name":"uint64","nodeType":"ElementaryTypeName","src":"2538:6:88","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52597,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2533:4:88","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2533:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2546:3:88","memberName":"max","nodeType":"MemberAccess","src":"2533:16:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52608,"nodeType":"VariableDeclaration","src":"2555:91:88","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2572:20:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52603,"name":"address","nodeType":"ElementaryTypeName","src":"2555:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2603:42:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2595:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52604,"name":"address","nodeType":"ElementaryTypeName","src":"2595:7:88","typeDescriptions":{}}},"id":52607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2595:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52611,"nodeType":"VariableDeclaration","src":"2652:42:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2668:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52609,"name":"uint64","nodeType":"ElementaryTypeName","src":"2652:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2693:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52614,"nodeType":"VariableDeclaration","src":"2700:54:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2717:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52612,"name":"uint256","nodeType":"ElementaryTypeName","src":"2700:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2747:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52617,"nodeType":"VariableDeclaration","src":"2760:47:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2775:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52615,"name":"uint8","nodeType":"ElementaryTypeName","src":"2760:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2805:2:88","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52620,"nodeType":"VariableDeclaration","src":"2813:51:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"2829:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52618,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2857:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52623,"nodeType":"VariableDeclaration","src":"2870:46:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"2886:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52621,"name":"uint64","nodeType":"ElementaryTypeName","src":"2870:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2914:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52626,"nodeType":"VariableDeclaration","src":"2922:44:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"2938:16:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52624,"name":"string","nodeType":"ElementaryTypeName","src":"2922:6:88","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2957:9:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52629,"nodeType":"VariableDeclaration","src":"2972:36:88","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"2987:7:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52627,"name":"bytes","nodeType":"ElementaryTypeName","src":"2972:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52628,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"2997:11:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52632,"nodeType":"VariableDeclaration","src":"3014:48:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3031:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52630,"name":"uint256","nodeType":"ElementaryTypeName","src":"3014:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3055:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52635,"nodeType":"VariableDeclaration","src":"3068:49:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3085:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52633,"name":"uint256","nodeType":"ElementaryTypeName","src":"3068:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52641,"nodeType":"VariableDeclaration","src":"3123:52:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3140:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52636,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3172:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":52638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3164:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52637,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:88","typeDescriptions":{}}},"id":52640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3164:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52647,"nodeType":"VariableDeclaration","src":"3181:54:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3198:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52642,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3232:2:88","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":52644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3224:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52643,"name":"address","nodeType":"ElementaryTypeName","src":"3224:7:88","typeDescriptions":{}}},"id":52646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3224:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52652,"nodeType":"VariableDeclaration","src":"3241:57:88","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3257:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52648,"name":"uint64","nodeType":"ElementaryTypeName","src":"3241:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3269:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52650,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"3273:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3269:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52655,"nodeType":"VariableDeclaration","src":"3304:50:88","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3321:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52653,"name":"uint256","nodeType":"ElementaryTypeName","src":"3304:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3347:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52658,"nodeType":"VariableDeclaration","src":"3360:53:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3376:31:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52656,"name":"uint16","nodeType":"ElementaryTypeName","src":"3360:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3410:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52661,"nodeType":"VariableDeclaration","src":"3419:38:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3433:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52659,"name":"int8","nodeType":"ElementaryTypeName","src":"3419:4:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3455:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52664,"nodeType":"VariableDeclaration","src":"3463:37:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3479:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52662,"name":"uint64","nodeType":"ElementaryTypeName","src":"3463:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3497:3:88","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52670,"nodeType":"VariableDeclaration","src":"3506:45:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3523:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52665,"name":"address","nodeType":"ElementaryTypeName","src":"3506:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3549:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":52667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52666,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:88","typeDescriptions":{}}},"id":52669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3541:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52676,"nodeType":"VariableDeclaration","src":"3557:57:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3574:24:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52671,"name":"address","nodeType":"ElementaryTypeName","src":"3557:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3609:4:88","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":52673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3601:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52672,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:88","typeDescriptions":{}}},"id":52675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52682,"nodeType":"VariableDeclaration","src":"3620:50:88","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3637:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52677,"name":"address","nodeType":"ElementaryTypeName","src":"3620:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3667:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":52679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3659:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3659:7:88","typeDescriptions":{}}},"id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3659:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52683],"name":"TestParams","nameLocation":"2488:10:88","scope":55376,"usedErrors":[]},{"id":52747,"nodeType":"ContractDefinition","src":"3675:824:88","nodes":[{"id":52690,"nodeType":"VariableDeclaration","src":"3723:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3732:28:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52688,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3723:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52689,"nodeType":"ArrayTypeName","src":"3723:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52693,"nodeType":"VariableDeclaration","src":"3766:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3775:34:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52691,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52692,"nodeType":"ArrayTypeName","src":"3766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52696,"nodeType":"VariableDeclaration","src":"3815:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"3824:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52694,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3815:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52695,"nodeType":"ArrayTypeName","src":"3815:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52699,"nodeType":"VariableDeclaration","src":"3853:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"3862:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52697,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3853:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52698,"nodeType":"ArrayTypeName","src":"3853:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52702,"nodeType":"VariableDeclaration","src":"3892:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"3914:15:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52701,"nodeType":"UserDefinedTypeName","pathNode":{"id":52700,"name":"SubnetRegistryDiamond","nameLocations":["3892:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"3892:21:88"},"referencedDeclaration":36853,"src":"3892:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52705,"nodeType":"VariableDeclaration","src":"3935:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"3953:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52704,"nodeType":"UserDefinedTypeName","pathNode":{"id":52703,"name":"DiamondLoupeFacet","nameLocations":["3935:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"3935:17:88"},"referencedDeclaration":37355,"src":"3935:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52708,"nodeType":"VariableDeclaration","src":"3973:30:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"3989:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52707,"nodeType":"UserDefinedTypeName","pathNode":{"id":52706,"name":"DiamondCutFacet","nameLocations":["3973:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"3973:15:88"},"referencedDeclaration":36918,"src":"3973:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52711,"nodeType":"VariableDeclaration","src":"4009:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4029:19:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52710,"nodeType":"UserDefinedTypeName","pathNode":{"id":52709,"name":"RegisterSubnetFacet","nameLocations":["4009:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"4009:19:88"},"referencedDeclaration":52279,"src":"4009:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52714,"nodeType":"VariableDeclaration","src":"4054:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4072:25:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"SubnetGetterFacet","nameLocations":["4054:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"4054:17:88"},"referencedDeclaration":52517,"src":"4054:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52746,"nodeType":"FunctionDefinition","src":"4104:393:88","nodes":[],"body":{"id":52745,"nodeType":"Block","src":"4118:379:88","nodes":[],"statements":[{"expression":{"id":52722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52717,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"4128:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4192:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":52718,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4159:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4175:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4159:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4128:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52723,"nodeType":"ExpressionStatement","src":"4128:86:88"},{"expression":{"id":52729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52724,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"4224:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4294:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":52725,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4261:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4277:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4261:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4261:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4224:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52730,"nodeType":"ExpressionStatement","src":"4224:90:88"},{"expression":{"id":52736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52731,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"4324:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4383:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52732,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4350:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4366:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4350:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4350:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4324:77:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52737,"nodeType":"ExpressionStatement","src":"4324:77:88"},{"expression":{"id":52743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52738,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"4411:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4470:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52739,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4437:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4453:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4437:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4411:79:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52744,"nodeType":"ExpressionStatement","src":"4411:79:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52715,"nodeType":"ParameterList","parameters":[],"src":"4115:2:88"},"returnParameters":{"id":52716,"nodeType":"ParameterList","parameters":[],"src":"4118:0:88"},"scope":52747,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52684,"name":"Test","nameLocations":["3700:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3700:4:88"},"id":52685,"nodeType":"InheritanceSpecifier","src":"3700:4:88"},{"baseName":{"id":52686,"name":"TestParams","nameLocations":["3706:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"3706:10:88"},"id":52687,"nodeType":"InheritanceSpecifier","src":"3706:10:88"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3684:12:88","scope":55376,"usedErrors":[]},{"id":52912,"nodeType":"ContractDefinition","src":"4501:2237:88","nodes":[{"id":52754,"nodeType":"VariableDeclaration","src":"4553:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4562:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52752,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4553:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52753,"nodeType":"ArrayTypeName","src":"4553:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52757,"nodeType":"VariableDeclaration","src":"4597:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4606:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52755,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4597:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52756,"nodeType":"ArrayTypeName","src":"4597:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52760,"nodeType":"VariableDeclaration","src":"4641:40:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4650:31:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52758,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4641:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52759,"nodeType":"ArrayTypeName","src":"4641:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52763,"nodeType":"VariableDeclaration","src":"4687:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4696:30:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52761,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4687:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52762,"nodeType":"ArrayTypeName","src":"4687:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52766,"nodeType":"VariableDeclaration","src":"4733:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4742:18:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52764,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4733:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52765,"nodeType":"ArrayTypeName","src":"4733:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52769,"nodeType":"VariableDeclaration","src":"4766:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4775:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52767,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52768,"nodeType":"ArrayTypeName","src":"4766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52772,"nodeType":"VariableDeclaration","src":"4798:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"4807:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52770,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4798:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52771,"nodeType":"ArrayTypeName","src":"4798:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52775,"nodeType":"VariableDeclaration","src":"4834:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"4843:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52773,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4834:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52774,"nodeType":"ArrayTypeName","src":"4834:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52778,"nodeType":"VariableDeclaration","src":"4866:25:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"4875:16:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52776,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4866:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52777,"nodeType":"ArrayTypeName","src":"4866:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52781,"nodeType":"VariableDeclaration","src":"4898:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"4913:14:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52780,"nodeType":"UserDefinedTypeName","pathNode":{"id":52779,"name":"GatewayDiamond","nameLocations":["4898:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"4898:14:88"},"referencedDeclaration":36170,"src":"4898:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52784,"nodeType":"VariableDeclaration","src":"4933:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"4953:9:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52783,"nodeType":"UserDefinedTypeName","pathNode":{"id":52782,"name":"GatewayManagerFacet","nameLocations":["4933:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"4933:19:88"},"referencedDeclaration":38870,"src":"4933:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52787,"nodeType":"VariableDeclaration","src":"4968:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"4987:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52786,"nodeType":"UserDefinedTypeName","pathNode":{"id":52785,"name":"GatewayGetterFacet","nameLocations":["4968:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"4968:18:88"},"referencedDeclaration":38317,"src":"4968:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52790,"nodeType":"VariableDeclaration","src":"5001:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5020:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52789,"nodeType":"UserDefinedTypeName","pathNode":{"id":52788,"name":"CheckpointingFacet","nameLocations":["5001:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5001:18:88"},"referencedDeclaration":39870,"src":"5001:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52793,"nodeType":"VariableDeclaration","src":"5046:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5065:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52792,"nodeType":"UserDefinedTypeName","pathNode":{"id":52791,"name":"XnetMessagingFacet","nameLocations":["5046:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5046:18:88"},"referencedDeclaration":40144,"src":"5046:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52796,"nodeType":"VariableDeclaration","src":"5091:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5112:22:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52795,"nodeType":"UserDefinedTypeName","pathNode":{"id":52794,"name":"TopDownFinalityFacet","nameLocations":["5091:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5091:20:88"},"referencedDeclaration":40071,"src":"5091:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52799,"nodeType":"VariableDeclaration","src":"5140:41:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5160:21:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52798,"nodeType":"UserDefinedTypeName","pathNode":{"id":52797,"name":"BottomUpRouterFacet","nameLocations":["5140:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5140:19:88"},"referencedDeclaration":39601,"src":"5140:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52802,"nodeType":"VariableDeclaration","src":"5187:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5209:11:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52801,"nodeType":"UserDefinedTypeName","pathNode":{"id":52800,"name":"GatewayMessengerFacet","nameLocations":["5187:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5187:21:88"},"referencedDeclaration":39235,"src":"5187:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52805,"nodeType":"VariableDeclaration","src":"5226:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5242:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52804,"nodeType":"UserDefinedTypeName","pathNode":{"id":52803,"name":"DiamondCutFacet","nameLocations":["5226:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5226:15:88"},"referencedDeclaration":36918,"src":"5226:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52808,"nodeType":"VariableDeclaration","src":"5256:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5274:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52807,"nodeType":"UserDefinedTypeName","pathNode":{"id":52806,"name":"DiamondLoupeFacet","nameLocations":["5256:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5256:17:88"},"referencedDeclaration":37355,"src":"5256:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52875,"nodeType":"FunctionDefinition","src":"5289:835:88","nodes":[],"body":{"id":52874,"nodeType":"Block","src":"5303:821:88","nodes":[],"statements":[{"expression":{"id":52816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52811,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"5313:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5378:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":52812,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5345:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5361:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5345:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5345:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5313:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52817,"nodeType":"ExpressionStatement","src":"5313:86:88"},{"expression":{"id":52823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52818,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"5409:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5474:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":52819,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5441:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5457:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5441:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5441:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5409:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52824,"nodeType":"ExpressionStatement","src":"5409:86:88"},{"expression":{"id":52830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52825,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"5505:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5572:22:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":52826,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5539:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5555:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5539:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5539:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5505:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52831,"nodeType":"ExpressionStatement","src":"5505:90:88"},{"expression":{"id":52837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52832,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"5605:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5671:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":52833,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5638:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5654:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5638:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5638:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5605:88:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52838,"nodeType":"ExpressionStatement","src":"5605:88:88"},{"expression":{"id":52844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52839,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"5704:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5757:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":52840,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5724:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5740:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5724:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5724:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5704:74:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52845,"nodeType":"ExpressionStatement","src":"5704:74:88"},{"expression":{"id":52851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52846,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"5788:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5842:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":52847,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5809:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5825:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5809:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5809:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5788:76:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52852,"nodeType":"ExpressionStatement","src":"5788:76:88"},{"expression":{"id":52858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52853,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"5874:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5930:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":52854,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5897:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5913:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5897:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5897:57:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5874:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52859,"nodeType":"ExpressionStatement","src":"5874:80:88"},{"expression":{"id":52865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52860,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"5964:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6017:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52861,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5984:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6000:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5984:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5984:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5964:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52866,"nodeType":"ExpressionStatement","src":"5964:71:88"},{"expression":{"id":52872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52867,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"6045:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6097:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52868,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"6064:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6080:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"6064:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6064:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6045:72:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52873,"nodeType":"ExpressionStatement","src":"6045:72:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52809,"nodeType":"ParameterList","parameters":[],"src":"5300:2:88"},"returnParameters":{"id":52810,"nodeType":"ParameterList","parameters":[],"src":"5303:0:88"},"scope":52912,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52911,"nodeType":"FunctionDefinition","src":"6130:606:88","nodes":[],"body":{"id":52910,"nodeType":"Block","src":"6234:502:88","nodes":[],"statements":[{"assignments":[52885],"declarations":[{"constant":false,"id":52885,"mutability":"mutable","name":"params","nameLocation":"6284:6:88","nodeType":"VariableDeclaration","scope":52910,"src":"6244:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52884,"nodeType":"UserDefinedTypeName","pathNode":{"id":52883,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6244:14:88","6259:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6244:32:88"},"referencedDeclaration":35883,"src":"6244:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52907,"initialValue":{"arguments":[{"arguments":[{"id":52889,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"6369:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6407:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6393:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52890,"name":"address","nodeType":"ElementaryTypeName","src":"6397:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52891,"nodeType":"ArrayTypeName","src":"6397:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6393:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52888,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"6353:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6363:4:88","6386:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"6353:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52896,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"6446:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52897,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"6493:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52898,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"6548:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":52903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6624:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6608:15:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":52900,"nodeType":"UserDefinedTypeName","pathNode":{"id":52899,"name":"Validator","nameLocations":["6612:9:88"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"6612:9:88"},"referencedDeclaration":50211,"src":"6612:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":52901,"nodeType":"ArrayTypeName","src":"6612:11:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":52904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6608:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":52905,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"6663:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":52886,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"6293:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":52887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6308:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"6293:32:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":52906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6340:11:88","6425:19:88","6485:6:88","6528:18:88","6589:17:88","6640:21:88"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"6293:412:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6244:461:88"},{"expression":{"id":52908,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52885,"src":"6723:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":52880,"id":52909,"nodeType":"Return","src":"6716:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"6139:20:88","parameters":{"id":52876,"nodeType":"ParameterList","parameters":[],"src":"6159:2:88"},"returnParameters":{"id":52880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52911,"src":"6193:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52878,"nodeType":"UserDefinedTypeName","pathNode":{"id":52877,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6193:14:88","6208:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6193:32:88"},"referencedDeclaration":35883,"src":"6193:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6192:41:88"},"scope":52912,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52748,"name":"Test","nameLocations":["4530:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4530:4:88"},"id":52749,"nodeType":"InheritanceSpecifier","src":"4530:4:88"},{"baseName":{"id":52750,"name":"TestParams","nameLocations":["4536:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"4536:10:88"},"id":52751,"nodeType":"InheritanceSpecifier","src":"4536:10:88"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52912,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4510:16:88","scope":55376,"usedErrors":[]},{"id":53037,"nodeType":"ContractDefinition","src":"6740:1920:88","nodes":[{"id":52919,"nodeType":"VariableDeclaration","src":"6791:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"6800:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52917,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6791:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52918,"nodeType":"ArrayTypeName","src":"6791:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52922,"nodeType":"VariableDeclaration","src":"6823:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"6832:18:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52920,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6823:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52921,"nodeType":"ArrayTypeName","src":"6823:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52925,"nodeType":"VariableDeclaration","src":"6856:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"6865:24:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52923,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6856:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52924,"nodeType":"ArrayTypeName","src":"6856:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52928,"nodeType":"VariableDeclaration","src":"6895:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"6904:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52926,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6895:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52927,"nodeType":"ArrayTypeName","src":"6895:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52931,"nodeType":"VariableDeclaration","src":"6927:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"6936:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52929,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6927:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52930,"nodeType":"ArrayTypeName","src":"6927:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52934,"nodeType":"VariableDeclaration","src":"6960:28:88","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6979:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52933,"nodeType":"UserDefinedTypeName","pathNode":{"id":52932,"name":"SubnetActorDiamond","nameLocations":["6960:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"6960:18:88"},"referencedDeclaration":36615,"src":"6960:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52937,"nodeType":"VariableDeclaration","src":"6994:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"7018:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52936,"nodeType":"UserDefinedTypeName","pathNode":{"id":52935,"name":"SubnetActorManagerFacet","nameLocations":["6994:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"6994:23:88"},"referencedDeclaration":52151,"src":"6994:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52940,"nodeType":"VariableDeclaration","src":"7033:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"saMockedManager","nameLocation":"7061:15:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":52939,"nodeType":"UserDefinedTypeName","pathNode":{"id":52938,"name":"SubnetActorManagerFacetMock","nameLocations":["7033:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"7033:27:88"},"referencedDeclaration":57957,"src":"7033:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"},{"id":52943,"nodeType":"VariableDeclaration","src":"7082:31:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"7105:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52942,"nodeType":"UserDefinedTypeName","pathNode":{"id":52941,"name":"SubnetActorGetterFacet","nameLocations":["7082:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"7082:22:88"},"referencedDeclaration":50887,"src":"7082:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52946,"nodeType":"VariableDeclaration","src":"7119:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"7135:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52945,"nodeType":"UserDefinedTypeName","pathNode":{"id":52944,"name":"DiamondCutFacet","nameLocations":["7119:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"7119:15:88"},"referencedDeclaration":36918,"src":"7119:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52949,"nodeType":"VariableDeclaration","src":"7149:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"7167:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52948,"nodeType":"UserDefinedTypeName","pathNode":{"id":52947,"name":"DiamondLoupeFacet","nameLocations":["7149:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"7149:17:88"},"referencedDeclaration":37355,"src":"7149:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52988,"nodeType":"FunctionDefinition","src":"7182:463:88","nodes":[],"body":{"id":52987,"nodeType":"Block","src":"7196:449:88","nodes":[],"statements":[{"expression":{"id":52957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52952,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"7206:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7259:24:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":52953,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7226:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7242:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7226:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7226:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7206:78:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52958,"nodeType":"ExpressionStatement","src":"7206:78:88"},{"expression":{"id":52964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52959,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"7294:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7348:25:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":52960,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7315:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7331:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7315:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7315:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7294:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52965,"nodeType":"ExpressionStatement","src":"7294:80:88"},{"expression":{"id":52971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52966,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"7384:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":52969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7444:29:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":52967,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7411:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7427:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7411:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:63:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7384:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52972,"nodeType":"ExpressionStatement","src":"7384:90:88"},{"expression":{"id":52978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52973,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"7484:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7537:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52974,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7504:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7520:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7504:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7504:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7484:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52979,"nodeType":"ExpressionStatement","src":"7484:71:88"},{"expression":{"id":52985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52980,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"7565:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7618:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52981,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7585:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7601:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7585:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7565:73:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52986,"nodeType":"ExpressionStatement","src":"7565:73:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52950,"nodeType":"ParameterList","parameters":[],"src":"7193:2:88"},"returnParameters":{"id":52951,"nodeType":"ParameterList","parameters":[],"src":"7196:0:88"},"scope":53037,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53036,"nodeType":"FunctionDefinition","src":"7651:1007:88","nodes":[],"body":{"id":53035,"nodeType":"Block","src":"7798:860:88","nodes":[],"statements":[{"assignments":[52998],"declarations":[{"constant":false,"id":52998,"mutability":"mutable","name":"native","nameLocation":"7828:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7808:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":52997,"nodeType":"UserDefinedTypeName","pathNode":{"id":52996,"name":"SupplySource","nameLocations":["7808:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"7808:12:88"},"referencedDeclaration":50226,"src":"7808:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53002,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52999,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"7837:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7856:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"7837:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7837:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7808:56:88"},{"assignments":[53007],"declarations":[{"constant":false,"id":53007,"mutability":"mutable","name":"params","nameLocation":"7918:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7874:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53006,"nodeType":"UserDefinedTypeName","pathNode":{"id":53005,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7874:18:88","7893:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7874:36:88"},"referencedDeclaration":36253,"src":"7874:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53032,"initialValue":{"arguments":[{"arguments":[{"id":53011,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"8004:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8042:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8028:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53012,"name":"address","nodeType":"ElementaryTypeName","src":"8032:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53013,"nodeType":"ArrayTypeName","src":"8032:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8028:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53010,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"7988:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7998:4:88","8021:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"7988:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53018,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52990,"src":"8076:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53019,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8103:13:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8117:10:88","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8103:24:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53021,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"8166:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53022,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52611,"src":"8220:22:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53023,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"8277:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53024,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"8336:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53025,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"8400:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53026,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52661,"src":"8457:19:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53027,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"8506:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53028,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"8557:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8572:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"8557:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53030,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52998,"src":"8610:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53008,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"7927:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7946:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"7927:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7978:8:88","8060:14:88","8092:9:88","8141:23:88","8205:13:88","8256:19:88","8316:18:88","8377:21:88","8445:10:88","8490:14:88","8541:14:88","8596:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"7927:700:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7874:753:88"},{"expression":{"id":53033,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53007,"src":"8645:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":52995,"id":53034,"nodeType":"Return","src":"8638:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"7660:35:88","parameters":{"id":52991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52990,"mutability":"mutable","name":"gw","nameLocation":"7713:2:88","nodeType":"VariableDeclaration","scope":53036,"src":"7705:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52989,"name":"address","nodeType":"ElementaryTypeName","src":"7705:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7695:26:88"},"returnParameters":{"id":52995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53036,"src":"7753:43:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52993,"nodeType":"UserDefinedTypeName","pathNode":{"id":52992,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7753:18:88","7772:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7753:36:88"},"referencedDeclaration":36253,"src":"7753:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"7752:45:88"},"scope":53037,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52913,"name":"Test","nameLocations":["6768:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"6768:4:88"},"id":52914,"nodeType":"InheritanceSpecifier","src":"6768:4:88"},{"baseName":{"id":52915,"name":"TestParams","nameLocations":["6774:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"6774:10:88"},"id":52916,"nodeType":"InheritanceSpecifier","src":"6774:10:88"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53037,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6749:15:88","scope":55376,"usedErrors":[]},{"id":55375,"nodeType":"ContractDefinition","src":"8662:23266:88","nodes":[{"id":53051,"nodeType":"UsingForDirective","src":"8766:34:88","nodes":[],"global":false,"libraryName":{"id":53048,"name":"SubnetIDHelper","nameLocations":["8772:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"8772:14:88"},"typeName":{"id":53050,"nodeType":"UserDefinedTypeName","pathNode":{"id":53049,"name":"SubnetID","nameLocations":["8791:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"8791:8:88"},"referencedDeclaration":50077,"src":"8791:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":53055,"nodeType":"UsingForDirective","src":"8805:42:88","nodes":[],"global":false,"libraryName":{"id":53052,"name":"SupplySourceHelper","nameLocations":["8811:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"8811:18:88"},"typeName":{"id":53054,"nodeType":"UserDefinedTypeName","pathNode":{"id":53053,"name":"SupplySource","nameLocations":["8834:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"8834:12:88"},"referencedDeclaration":50226,"src":"8834:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":53059,"nodeType":"UsingForDirective","src":"8852:34:88","nodes":[],"global":false,"libraryName":{"id":53056,"name":"CrossMsgHelper","nameLocations":["8858:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"8858:14:88"},"typeName":{"id":53058,"nodeType":"UserDefinedTypeName","pathNode":{"id":53057,"name":"CrossMsg","nameLocations":["8877:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"8877:8:88"},"referencedDeclaration":49974,"src":"8877:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53063,"nodeType":"UsingForDirective","src":"8891:40:88","nodes":[],"global":false,"libraryName":{"id":53060,"name":"StorableMsgHelper","nameLocations":["8897:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"8897:17:88"},"typeName":{"id":53062,"nodeType":"UserDefinedTypeName","pathNode":{"id":53061,"name":"StorableMsg","nameLocations":["8919:11:88"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"8919:11:88"},"referencedDeclaration":49991,"src":"8919:11:88","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53067,"nodeType":"UsingForDirective","src":"8936:38:88","nodes":[],"global":false,"libraryName":{"id":53064,"name":"FvmAddressHelper","nameLocations":["8942:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":40962,"src":"8942:16:88"},"typeName":{"id":53066,"nodeType":"UserDefinedTypeName","pathNode":{"id":53065,"name":"FvmAddress","nameLocations":["8963:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"8963:10:88"},"referencedDeclaration":49998,"src":"8963:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53071,"nodeType":"EventDefinition","src":"8980:67:88","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"8986:21:88","parameters":{"id":53070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53069,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9024:21:88","nodeType":"VariableDeclaration","scope":53071,"src":"9008:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53068,"name":"address","nodeType":"ElementaryTypeName","src":"9008:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9007:39:88"}},{"id":53075,"nodeType":"FunctionDefinition","src":"9053:16:88","nodes":[],"body":{"id":53074,"nodeType":"Block","src":"9067:2:88","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53072,"nodeType":"ParameterList","parameters":[],"src":"9064:2:88"},"returnParameters":{"id":53073,"nodeType":"ParameterList","parameters":[],"src":"9067:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53250,"nodeType":"FunctionDefinition","src":"9075:1529:88","nodes":[],"body":{"id":53249,"nodeType":"Block","src":"9107:1497:88","nodes":[],"statements":[{"assignments":[53082],"declarations":[{"constant":false,"id":53082,"mutability":"mutable","name":"path","nameLocation":"9134:4:88","nodeType":"VariableDeclaration","scope":53249,"src":"9117:21:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53080,"name":"address","nodeType":"ElementaryTypeName","src":"9117:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53081,"nodeType":"ArrayTypeName","src":"9117:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53088,"initialValue":{"arguments":[{"hexValue":"31","id":53086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9155:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9141:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53083,"name":"address","nodeType":"ElementaryTypeName","src":"9145:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53084,"nodeType":"ArrayTypeName","src":"9145:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9141:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9117:40:88"},{"expression":{"id":53093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53089,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53082,"src":"9167:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53091,"indexExpression":{"hexValue":"30","id":53090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9172:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9167:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53092,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"9177:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9167:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53094,"nodeType":"ExpressionStatement","src":"9167:25:88"},{"assignments":[53099],"declarations":[{"constant":false,"id":53099,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9285:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"9245:59:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53098,"nodeType":"UserDefinedTypeName","pathNode":{"id":53097,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9245:14:88","9260:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9245:32:88"},"referencedDeclaration":35883,"src":"9245:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53102,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53100,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52911,"src":"9307:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9307:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9245:84:88"},{"expression":{"id":53107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53103,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9339:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53105,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53099,"src":"9377:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53104,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53509,"src":"9356:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":53106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:41:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"9339:58:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53108,"nodeType":"ExpressionStatement","src":"9339:58:88"},{"expression":{"id":53116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53109,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"9408:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53113,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9446:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9438:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53111,"name":"address","nodeType":"ElementaryTypeName","src":"9438:7:88","typeDescriptions":{}}},"id":53114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9438:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53110,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"9419:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9419:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"9408:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53117,"nodeType":"ExpressionStatement","src":"9408:54:88"},{"expression":{"id":53125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53118,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"9472:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53122,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9512:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9504:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53120,"name":"address","nodeType":"ElementaryTypeName","src":"9504:7:88","typeDescriptions":{}}},"id":53123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9504:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53119,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"9484:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9484:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"9472:56:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53126,"nodeType":"ExpressionStatement","src":"9472:56:88"},{"expression":{"id":53134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53127,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"9538:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53131,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9588:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9580:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53129,"name":"address","nodeType":"ElementaryTypeName","src":"9580:7:88","typeDescriptions":{}}},"id":53132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9580:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53128,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"9561:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9561:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"9538:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53135,"nodeType":"ExpressionStatement","src":"9538:66:88"},{"expression":{"id":53143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53136,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9614:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53140,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9664:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9656:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53138,"name":"address","nodeType":"ElementaryTypeName","src":"9656:7:88","typeDescriptions":{}}},"id":53141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9656:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53137,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"9637:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9637:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"9614:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53144,"nodeType":"ExpressionStatement","src":"9614:66:88"},{"expression":{"id":53152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53145,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"9690:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53149,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9744:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9736:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53147,"name":"address","nodeType":"ElementaryTypeName","src":"9736:7:88","typeDescriptions":{}}},"id":53150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9736:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53146,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"9715:20:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"9690:70:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53153,"nodeType":"ExpressionStatement","src":"9690:70:88"},{"expression":{"id":53161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53154,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"9770:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53158,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9822:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9814:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53156,"name":"address","nodeType":"ElementaryTypeName","src":"9814:7:88","typeDescriptions":{}}},"id":53159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9814:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53155,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"9794:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9794:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"9770:68:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53162,"nodeType":"ExpressionStatement","src":"9770:68:88"},{"expression":{"id":53170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53163,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52802,"src":"9848:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53167,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9892:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9884:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53165,"name":"address","nodeType":"ElementaryTypeName","src":"9884:7:88","typeDescriptions":{}}},"id":53168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9884:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53164,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"9862:21:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9862:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"9848:60:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53171,"nodeType":"ExpressionStatement","src":"9848:60:88"},{"expression":{"id":53179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53172,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"9918:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53176,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9955:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9947:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53174,"name":"address","nodeType":"ElementaryTypeName","src":"9947:7:88","typeDescriptions":{}}},"id":53177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9947:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53173,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"9929:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9929:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"9918:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53180,"nodeType":"ExpressionStatement","src":"9918:53:88"},{"expression":{"id":53188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53181,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"9981:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53185,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10016:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53183,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:88","typeDescriptions":{}}},"id":53186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53182,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"9992:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9992:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"9981:51:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53189,"nodeType":"ExpressionStatement","src":"9981:51:88"},{"assignments":[53194],"declarations":[{"constant":false,"id":53194,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10141:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"10097:63:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53193,"nodeType":"UserDefinedTypeName","pathNode":{"id":53192,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10097:18:88","10116:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10097:36:88"},"referencedDeclaration":36253,"src":"10097:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53201,"initialValue":{"arguments":[{"arguments":[{"id":53198,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10220:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10212:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53196,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:88","typeDescriptions":{}}},"id":53199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10212:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53195,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"10163:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":53200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10163:82:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10097:148:88"},{"expression":{"id":53206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53202,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10256:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53204,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53194,"src":"10286:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53203,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53710,"src":"10268:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10268:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10256:50:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53207,"nodeType":"ExpressionStatement","src":"10256:50:88"},{"expression":{"id":53215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53208,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"10316:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53212,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10360:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10352:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53210,"name":"address","nodeType":"ElementaryTypeName","src":"10352:7:88","typeDescriptions":{}}},"id":53213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10352:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53209,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"10328:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10328:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"10316:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53216,"nodeType":"ExpressionStatement","src":"10316:55:88"},{"expression":{"id":53224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53217,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"10381:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53221,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10423:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10415:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53219,"name":"address","nodeType":"ElementaryTypeName","src":"10415:7:88","typeDescriptions":{}}},"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10415:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53218,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"10392:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10392:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"10381:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53225,"nodeType":"ExpressionStatement","src":"10381:53:88"},{"expression":{"id":53233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53226,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"10444:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53230,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10481:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10473:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53228,"name":"address","nodeType":"ElementaryTypeName","src":"10473:7:88","typeDescriptions":{}}},"id":53231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10473:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53227,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10455:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10455:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10444:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53234,"nodeType":"ExpressionStatement","src":"10444:48:88"},{"expression":{"id":53242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53235,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"10502:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53239,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10537:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10529:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53237,"name":"address","nodeType":"ElementaryTypeName","src":"10529:7:88","typeDescriptions":{}}},"id":53240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10529:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53236,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10513:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10513:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10502:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53243,"nodeType":"ExpressionStatement","src":"10502:46:88"},{"expression":{"arguments":[{"id":53245,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52682,"src":"10572:19:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10593:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53244,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"10559:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10559:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53248,"nodeType":"ExpressionStatement","src":"10559:38:88"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9084:5:88","parameters":{"id":53076,"nodeType":"ParameterList","parameters":[],"src":"9089:2:88"},"returnParameters":{"id":53077,"nodeType":"ParameterList","parameters":[],"src":"9107:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53509,"nodeType":"FunctionDefinition","src":"10610:3185:88","nodes":[],"body":{"id":53508,"nodeType":"Block","src":"10720:3075:88","nodes":[],"statements":[{"assignments":[53261],"declarations":[{"constant":false,"id":53261,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"10749:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10730:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53260,"nodeType":"UserDefinedTypeName","pathNode":{"id":53259,"name":"CheckpointingFacet","nameLocations":["10730:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10730:18:88"},"referencedDeclaration":39870,"src":"10730:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10770:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53263,"nodeType":"UserDefinedTypeName","pathNode":{"id":53262,"name":"CheckpointingFacet","nameLocations":["10774:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10774:18:88"},"referencedDeclaration":39870,"src":"10774:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10770:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10730:64:88"},{"assignments":[53269],"declarations":[{"constant":false,"id":53269,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"10823:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10804:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53268,"nodeType":"UserDefinedTypeName","pathNode":{"id":53267,"name":"XnetMessagingFacet","nameLocations":["10804:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10804:18:88"},"referencedDeclaration":40144,"src":"10804:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53274,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10844:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53271,"nodeType":"UserDefinedTypeName","pathNode":{"id":53270,"name":"XnetMessagingFacet","nameLocations":["10848:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10848:18:88"},"referencedDeclaration":40144,"src":"10848:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10844:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10804:64:88"},{"assignments":[53277],"declarations":[{"constant":false,"id":53277,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"10899:20:88","nodeType":"VariableDeclaration","scope":53508,"src":"10878:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53276,"nodeType":"UserDefinedTypeName","pathNode":{"id":53275,"name":"TopDownFinalityFacet","nameLocations":["10878:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10878:20:88"},"referencedDeclaration":40071,"src":"10878:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53282,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10922:24:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53279,"nodeType":"UserDefinedTypeName","pathNode":{"id":53278,"name":"TopDownFinalityFacet","nameLocations":["10926:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10926:20:88"},"referencedDeclaration":40071,"src":"10926:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10922:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"10878:70:88"},{"assignments":[53285],"declarations":[{"constant":false,"id":53285,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"10978:19:88","nodeType":"VariableDeclaration","scope":53508,"src":"10958:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53284,"nodeType":"UserDefinedTypeName","pathNode":{"id":53283,"name":"BottomUpRouterFacet","nameLocations":["10958:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"10958:19:88"},"referencedDeclaration":39601,"src":"10958:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53290,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11000:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53287,"nodeType":"UserDefinedTypeName","pathNode":{"id":53286,"name":"BottomUpRouterFacet","nameLocations":["11004:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11004:19:88"},"referencedDeclaration":39601,"src":"11004:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11000:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"10958:67:88"},{"assignments":[53293],"declarations":[{"constant":false,"id":53293,"mutability":"mutable","name":"manager","nameLocation":"11056:7:88","nodeType":"VariableDeclaration","scope":53508,"src":"11036:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53292,"nodeType":"UserDefinedTypeName","pathNode":{"id":53291,"name":"GatewayManagerFacet","nameLocations":["11036:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11036:19:88"},"referencedDeclaration":38870,"src":"11036:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53298,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11066:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53295,"nodeType":"UserDefinedTypeName","pathNode":{"id":53294,"name":"GatewayManagerFacet","nameLocations":["11070:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11070:19:88"},"referencedDeclaration":38870,"src":"11070:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11066:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11036:55:88"},{"assignments":[53301],"declarations":[{"constant":false,"id":53301,"mutability":"mutable","name":"getter","nameLocation":"11120:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11101:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53300,"nodeType":"UserDefinedTypeName","pathNode":{"id":53299,"name":"GatewayGetterFacet","nameLocations":["11101:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11101:18:88"},"referencedDeclaration":38317,"src":"11101:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53306,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11129:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53303,"nodeType":"UserDefinedTypeName","pathNode":{"id":53302,"name":"GatewayGetterFacet","nameLocations":["11133:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11133:18:88"},"referencedDeclaration":38317,"src":"11133:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11101:52:88"},{"assignments":[53309],"declarations":[{"constant":false,"id":53309,"mutability":"mutable","name":"messenger","nameLocation":"11185:9:88","nodeType":"VariableDeclaration","scope":53508,"src":"11163:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53308,"nodeType":"UserDefinedTypeName","pathNode":{"id":53307,"name":"GatewayMessengerFacet","nameLocations":["11163:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11163:21:88"},"referencedDeclaration":39235,"src":"11163:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53314,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11197:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53311,"nodeType":"UserDefinedTypeName","pathNode":{"id":53310,"name":"GatewayMessengerFacet","nameLocations":["11201:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11201:21:88"},"referencedDeclaration":39235,"src":"11201:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11197:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11163:61:88"},{"assignments":[53317],"declarations":[{"constant":false,"id":53317,"mutability":"mutable","name":"cutter","nameLocation":"11250:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11234:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53316,"nodeType":"UserDefinedTypeName","pathNode":{"id":53315,"name":"DiamondCutFacet","nameLocations":["11234:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11234:15:88"},"referencedDeclaration":36918,"src":"11234:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53322,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11259:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53319,"nodeType":"UserDefinedTypeName","pathNode":{"id":53318,"name":"DiamondCutFacet","nameLocations":["11263:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11263:15:88"},"referencedDeclaration":36918,"src":"11263:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11259:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"11234:46:88"},{"assignments":[53325],"declarations":[{"constant":false,"id":53325,"mutability":"mutable","name":"louper","nameLocation":"11308:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11290:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53324,"nodeType":"UserDefinedTypeName","pathNode":{"id":53323,"name":"DiamondLoupeFacet","nameLocations":["11290:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11290:17:88"},"referencedDeclaration":37355,"src":"11290:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53330,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11317:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53327,"nodeType":"UserDefinedTypeName","pathNode":{"id":53326,"name":"DiamondLoupeFacet","nameLocations":["11321:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11321:17:88"},"referencedDeclaration":37355,"src":"11321:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11317:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"11290:50:88"},{"assignments":[53336],"declarations":[{"constant":false,"id":53336,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"11378:12:88","nodeType":"VariableDeclaration","scope":53508,"src":"11351:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53334,"nodeType":"UserDefinedTypeName","pathNode":{"id":53333,"name":"IDiamond.FacetCut","nameLocations":["11351:8:88","11360:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11351:17:88"},"referencedDeclaration":40159,"src":"11351:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53335,"nodeType":"ArrayTypeName","src":"11351:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53343,"initialValue":{"arguments":[{"hexValue":"39","id":53341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11417:1:88","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":53340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11393:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53338,"nodeType":"UserDefinedTypeName","pathNode":{"id":53337,"name":"IDiamond.FacetCut","nameLocations":["11397:8:88","11406:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11397:17:88"},"referencedDeclaration":40159,"src":"11397:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53339,"nodeType":"ArrayTypeName","src":"11397:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11393:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11351:68:88"},{"expression":{"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53344,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11430:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53346,"indexExpression":{"hexValue":"30","id":53345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11443:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11430:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53351,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53261,"src":"11520:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11512:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53349,"name":"address","nodeType":"ElementaryTypeName","src":"11512:7:88","typeDescriptions":{}}},"id":53352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11512:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53353,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11565:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11574:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11565:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11589:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11565:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53356,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"11629:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53347,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11462:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11471:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11462:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11498:12:88","11557:6:88","11610:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11462:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53358,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11448:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11430:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53360,"nodeType":"ExpressionStatement","src":"11430:253:88"},{"expression":{"id":53376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53361,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11694:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53363,"indexExpression":{"hexValue":"36","id":53362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11707:1:88","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11694:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53368,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53269,"src":"11784:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11776:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53366,"name":"address","nodeType":"ElementaryTypeName","src":"11776:7:88","typeDescriptions":{}}},"id":53369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11776:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53370,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11829:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11838:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11829:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11853:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11829:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53373,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"11893:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53364,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11726:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11735:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11726:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11762:12:88","11821:6:88","11874:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11726:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53375,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11712:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11694:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53377,"nodeType":"ExpressionStatement","src":"11694:253:88"},{"expression":{"id":53393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53378,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11958:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53380,"indexExpression":{"hexValue":"37","id":53379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11971:1:88","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11958:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53385,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53277,"src":"12048:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12040:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53383,"name":"address","nodeType":"ElementaryTypeName","src":"12040:7:88","typeDescriptions":{}}},"id":53386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12040:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53387,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12095:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12104:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12095:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12119:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12095:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53390,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"12159:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53381,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11990:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11999:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11990:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12026:12:88","12087:6:88","12140:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11990:215:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53392,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11976:239:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11958:257:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53394,"nodeType":"ExpressionStatement","src":"11958:257:88"},{"expression":{"id":53410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53395,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12226:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53397,"indexExpression":{"hexValue":"38","id":53396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:88","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12226:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53402,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53285,"src":"12316:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12308:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53400,"name":"address","nodeType":"ElementaryTypeName","src":"12308:7:88","typeDescriptions":{}}},"id":53403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12308:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53404,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12362:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12371:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12362:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12386:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12362:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53407,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"12426:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53398,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12258:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12267:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12258:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12294:12:88","12354:6:88","12407:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12258:213:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53409,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12244:237:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12226:255:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53411,"nodeType":"ExpressionStatement","src":"12226:255:88"},{"expression":{"id":53427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53412,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12492:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53414,"indexExpression":{"hexValue":"31","id":53413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12505:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12492:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53419,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53293,"src":"12582:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12574:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53417,"name":"address","nodeType":"ElementaryTypeName","src":"12574:7:88","typeDescriptions":{}}},"id":53420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12574:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53421,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12616:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12625:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12616:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12640:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12616:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53424,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"12680:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53415,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12524:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12533:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12524:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12560:12:88","12608:6:88","12661:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12524:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12510:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12492:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53428,"nodeType":"ExpressionStatement","src":"12492:231:88"},{"expression":{"id":53444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53429,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12734:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53431,"indexExpression":{"hexValue":"32","id":53430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12747:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12734:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53436,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53301,"src":"12824:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12816:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53434,"name":"address","nodeType":"ElementaryTypeName","src":"12816:7:88","typeDescriptions":{}}},"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12816:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53438,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12857:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12866:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12857:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12881:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12857:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53441,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"12921:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53432,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12766:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12775:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12766:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12802:12:88","12849:6:88","12902:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12766:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53443,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12752:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12734:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53445,"nodeType":"ExpressionStatement","src":"12734:229:88"},{"expression":{"id":53461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53446,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12974:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53448,"indexExpression":{"hexValue":"33","id":53447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12987:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12974:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53453,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53309,"src":"13064:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13056:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53451,"name":"address","nodeType":"ElementaryTypeName","src":"13056:7:88","typeDescriptions":{}}},"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13056:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53455,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13100:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13109:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13100:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13124:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13100:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53458,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"13164:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53449,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13006:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13015:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13006:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13042:12:88","13092:6:88","13145:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13006:193:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12992:217:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12974:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53462,"nodeType":"ExpressionStatement","src":"12974:235:88"},{"expression":{"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53463,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13220:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53465,"indexExpression":{"hexValue":"34","id":53464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13233:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13220:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53470,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53325,"src":"13310:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13302:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53468,"name":"address","nodeType":"ElementaryTypeName","src":"13302:7:88","typeDescriptions":{}}},"id":53471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13302:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53472,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13343:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13352:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13343:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13367:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13343:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53475,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"13407:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53466,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13252:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13261:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13252:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13288:12:88","13335:6:88","13388:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13252:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13238:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13220:228:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53479,"nodeType":"ExpressionStatement","src":"13220:228:88"},{"expression":{"id":53495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53480,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13459:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53482,"indexExpression":{"hexValue":"35","id":53481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13472:1:88","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13459:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53487,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53317,"src":"13549:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53485,"name":"address","nodeType":"ElementaryTypeName","src":"13541:7:88","typeDescriptions":{}}},"id":53488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13541:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53489,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13582:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13591:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13582:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13606:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13582:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53492,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"13646:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53483,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13491:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13500:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13491:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13527:12:88","13574:6:88","13627:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13491:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13477:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13459:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53496,"nodeType":"ExpressionStatement","src":"13459:229:88"},{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53497,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13699:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53501,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13735:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53502,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53253,"src":"13749:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"13716:18:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":53499,"nodeType":"UserDefinedTypeName","pathNode":{"id":53498,"name":"GatewayDiamond","nameLocations":["13720:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"13720:14:88"},"referencedDeclaration":36170,"src":"13720:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13716:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"13699:57:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53505,"nodeType":"ExpressionStatement","src":"13699:57:88"},{"expression":{"id":53506,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13774:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53258,"id":53507,"nodeType":"Return","src":"13767:21:88"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"10619:20:88","parameters":{"id":53254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53253,"mutability":"mutable","name":"params","nameLocation":"10680:6:88","nodeType":"VariableDeclaration","scope":53509,"src":"10640:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53252,"nodeType":"UserDefinedTypeName","pathNode":{"id":53251,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10640:14:88","10655:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10640:32:88"},"referencedDeclaration":35883,"src":"10640:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"10639:48:88"},"returnParameters":{"id":53258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53509,"src":"10704:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53256,"nodeType":"UserDefinedTypeName","pathNode":{"id":53255,"name":"GatewayDiamond","nameLocations":["10704:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"10704:14:88"},"referencedDeclaration":36170,"src":"10704:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"10703:16:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53575,"nodeType":"FunctionDefinition","src":"13801:854:88","nodes":[],"body":{"id":53574,"nodeType":"Block","src":"14009:646:88","nodes":[],"statements":[{"assignments":[53527],"declarations":[{"constant":false,"id":53527,"mutability":"mutable","name":"diamondCut","nameLocation":"14046:10:88","nodeType":"VariableDeclaration","scope":53574,"src":"14019:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53525,"nodeType":"UserDefinedTypeName","pathNode":{"id":53524,"name":"IDiamond.FacetCut","nameLocations":["14019:8:88","14028:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14019:17:88"},"referencedDeclaration":40159,"src":"14019:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53526,"nodeType":"ArrayTypeName","src":"14019:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53534,"initialValue":{"arguments":[{"hexValue":"32","id":53532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14083:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14059:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53529,"nodeType":"UserDefinedTypeName","pathNode":{"id":53528,"name":"IDiamond.FacetCut","nameLocations":["14063:8:88","14072:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14063:17:88"},"referencedDeclaration":40159,"src":"14063:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53530,"nodeType":"ArrayTypeName","src":"14063:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14059:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14019:66:88"},{"expression":{"id":53547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53535,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14096:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53537,"indexExpression":{"hexValue":"30","id":53536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14096:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53540,"name":"getterFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53514,"src":"14176:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53541,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14214:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14223:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14214:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14238:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14214:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53544,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"14278:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53538,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14126:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14135:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14126:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14162:12:88","14206:6:88","14259:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14126:184:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53546,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14112:208:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14096:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53548,"nodeType":"ExpressionStatement","src":"14096:224:88"},{"expression":{"id":53561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53549,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14331:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53551,"indexExpression":{"hexValue":"31","id":53550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14342:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14331:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53554,"name":"managerFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"14411:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53555,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14450:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14459:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14450:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14474:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14450:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53558,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"14514:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53552,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14361:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14370:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14361:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14397:12:88","14442:6:88","14495:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14361:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53560,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14347:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14331:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53562,"nodeType":"ExpressionStatement","src":"14331:226:88"},{"expression":{"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53563,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14568:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53567,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14603:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53568,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53512,"src":"14615:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14580:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53565,"nodeType":"UserDefinedTypeName","pathNode":{"id":53564,"name":"SubnetActorDiamond","nameLocations":["14584:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14584:18:88"},"referencedDeclaration":36615,"src":"14584:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14580:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"14568:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53571,"nodeType":"ExpressionStatement","src":"14568:54:88"},{"expression":{"id":53572,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14639:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53521,"id":53573,"nodeType":"Return","src":"14632:16:88"}]},"functionSelector":"0d8d4acf","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"13810:35:88","parameters":{"id":53517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53512,"mutability":"mutable","name":"params","nameLocation":"13899:6:88","nodeType":"VariableDeclaration","scope":53575,"src":"13855:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53511,"nodeType":"UserDefinedTypeName","pathNode":{"id":53510,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["13855:18:88","13874:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"13855:36:88"},"referencedDeclaration":36253,"src":"13855:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53514,"mutability":"mutable","name":"getterFaucet","nameLocation":"13923:12:88","nodeType":"VariableDeclaration","scope":53575,"src":"13915:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53513,"name":"address","nodeType":"ElementaryTypeName","src":"13915:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53516,"mutability":"mutable","name":"managerFaucet","nameLocation":"13953:13:88","nodeType":"VariableDeclaration","scope":53575,"src":"13945:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53515,"name":"address","nodeType":"ElementaryTypeName","src":"13945:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13845:127:88"},"returnParameters":{"id":53521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53575,"src":"13989:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53519,"nodeType":"UserDefinedTypeName","pathNode":{"id":53518,"name":"SubnetActorDiamond","nameLocations":["13989:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"13989:18:88"},"referencedDeclaration":36615,"src":"13989:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"13988:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53710,"nodeType":"FunctionDefinition","src":"14661:1518:88","nodes":[],"body":{"id":53709,"nodeType":"Block","src":"14776:1403:88","nodes":[],"statements":[{"assignments":[53586],"declarations":[{"constant":false,"id":53586,"mutability":"mutable","name":"manager","nameLocation":"14810:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"14786:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53585,"nodeType":"UserDefinedTypeName","pathNode":{"id":53584,"name":"SubnetActorManagerFacet","nameLocations":["14786:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14786:23:88"},"referencedDeclaration":52151,"src":"14786:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53591,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14820:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53588,"nodeType":"UserDefinedTypeName","pathNode":{"id":53587,"name":"SubnetActorManagerFacet","nameLocations":["14824:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14824:23:88"},"referencedDeclaration":52151,"src":"14824:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14820:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"14786:63:88"},{"assignments":[53594],"declarations":[{"constant":false,"id":53594,"mutability":"mutable","name":"getter","nameLocation":"14882:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14859:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53593,"nodeType":"UserDefinedTypeName","pathNode":{"id":53592,"name":"SubnetActorGetterFacet","nameLocations":["14859:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14859:22:88"},"referencedDeclaration":50887,"src":"14859:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53599,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14891:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53596,"nodeType":"UserDefinedTypeName","pathNode":{"id":53595,"name":"SubnetActorGetterFacet","nameLocations":["14895:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14895:22:88"},"referencedDeclaration":50887,"src":"14895:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14891:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"14859:60:88"},{"assignments":[53602],"declarations":[{"constant":false,"id":53602,"mutability":"mutable","name":"louper","nameLocation":"14947:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14929:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53601,"nodeType":"UserDefinedTypeName","pathNode":{"id":53600,"name":"DiamondLoupeFacet","nameLocations":["14929:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14929:17:88"},"referencedDeclaration":37355,"src":"14929:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53607,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14956:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53604,"nodeType":"UserDefinedTypeName","pathNode":{"id":53603,"name":"DiamondLoupeFacet","nameLocations":["14960:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14960:17:88"},"referencedDeclaration":37355,"src":"14960:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14956:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"14929:50:88"},{"assignments":[53610],"declarations":[{"constant":false,"id":53610,"mutability":"mutable","name":"cutter","nameLocation":"15005:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14989:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53609,"nodeType":"UserDefinedTypeName","pathNode":{"id":53608,"name":"DiamondCutFacet","nameLocations":["14989:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"14989:15:88"},"referencedDeclaration":36918,"src":"14989:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53615,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"15014:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53612,"nodeType":"UserDefinedTypeName","pathNode":{"id":53611,"name":"DiamondCutFacet","nameLocations":["15018:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"15018:15:88"},"referencedDeclaration":36918,"src":"15018:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15014:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"14989:46:88"},{"assignments":[53621],"declarations":[{"constant":false,"id":53621,"mutability":"mutable","name":"diamondCut","nameLocation":"15073:10:88","nodeType":"VariableDeclaration","scope":53709,"src":"15046:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53619,"nodeType":"UserDefinedTypeName","pathNode":{"id":53618,"name":"IDiamond.FacetCut","nameLocations":["15046:8:88","15055:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15046:17:88"},"referencedDeclaration":40159,"src":"15046:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53620,"nodeType":"ArrayTypeName","src":"15046:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53628,"initialValue":{"arguments":[{"hexValue":"34","id":53626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15110:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15086:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53623,"nodeType":"UserDefinedTypeName","pathNode":{"id":53622,"name":"IDiamond.FacetCut","nameLocations":["15090:8:88","15099:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15090:17:88"},"referencedDeclaration":40159,"src":"15090:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53624,"nodeType":"ArrayTypeName","src":"15090:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15086:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15046:66:88"},{"expression":{"id":53644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53629,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15123:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53631,"indexExpression":{"hexValue":"30","id":53630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15134:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15123:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53636,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53586,"src":"15211:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53634,"name":"address","nodeType":"ElementaryTypeName","src":"15203:7:88","typeDescriptions":{}}},"id":53637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15203:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53638,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15245:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15254:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15245:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15269:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15245:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53641,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"15309:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53632,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15153:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15162:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15153:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15189:12:88","15237:6:88","15290:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15153:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53643,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15139:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15123:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53645,"nodeType":"ExpressionStatement","src":"15123:229:88"},{"expression":{"id":53661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53646,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15363:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53648,"indexExpression":{"hexValue":"31","id":53647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15374:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15363:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53653,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53594,"src":"15451:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15443:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53651,"name":"address","nodeType":"ElementaryTypeName","src":"15443:7:88","typeDescriptions":{}}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15443:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53655,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15484:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15493:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15484:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15508:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15484:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53658,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"15548:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53649,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15393:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15402:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15393:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15429:12:88","15476:6:88","15529:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15393:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53660,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15379:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15363:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53662,"nodeType":"ExpressionStatement","src":"15363:227:88"},{"expression":{"id":53678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53663,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15601:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53665,"indexExpression":{"hexValue":"32","id":53664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15612:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15601:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53670,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53610,"src":"15689:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15681:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53668,"name":"address","nodeType":"ElementaryTypeName","src":"15681:7:88","typeDescriptions":{}}},"id":53671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15681:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53672,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15722:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15722:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15746:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15722:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53675,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"15786:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53666,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15631:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15640:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15631:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15667:12:88","15714:6:88","15767:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15631:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53677,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15617:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15601:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53679,"nodeType":"ExpressionStatement","src":"15601:227:88"},{"expression":{"id":53695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53680,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15839:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53682,"indexExpression":{"hexValue":"33","id":53681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15850:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15839:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53687,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53602,"src":"15927:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15919:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53685,"name":"address","nodeType":"ElementaryTypeName","src":"15919:7:88","typeDescriptions":{}}},"id":53688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15919:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53689,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15960:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15969:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15960:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15984:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15960:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53692,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"16024:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53683,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15869:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15878:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15869:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15905:12:88","15952:6:88","16005:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15869:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53694,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15855:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15839:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53696,"nodeType":"ExpressionStatement","src":"15839:226:88"},{"assignments":[53699],"declarations":[{"constant":false,"id":53699,"mutability":"mutable","name":"diamond","nameLocation":"16095:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"16076:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53698,"nodeType":"UserDefinedTypeName","pathNode":{"id":53697,"name":"SubnetActorDiamond","nameLocations":["16076:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16076:18:88"},"referencedDeclaration":36615,"src":"16076:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53706,"initialValue":{"arguments":[{"id":53703,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"16128:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53704,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53578,"src":"16140:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16105:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53701,"nodeType":"UserDefinedTypeName","pathNode":{"id":53700,"name":"SubnetActorDiamond","nameLocations":["16109:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16109:18:88"},"referencedDeclaration":36615,"src":"16109:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16105:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"16076:71:88"},{"expression":{"id":53707,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53699,"src":"16165:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53583,"id":53708,"nodeType":"Return","src":"16158:14:88"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"14670:17:88","parameters":{"id":53579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53578,"mutability":"mutable","name":"params","nameLocation":"14732:6:88","nodeType":"VariableDeclaration","scope":53710,"src":"14688:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53577,"nodeType":"UserDefinedTypeName","pathNode":{"id":53576,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14688:18:88","14707:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14688:36:88"},"referencedDeclaration":36253,"src":"14688:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"14687:52:88"},"returnParameters":{"id":53583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53710,"src":"14756:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53581,"nodeType":"UserDefinedTypeName","pathNode":{"id":53580,"name":"SubnetActorDiamond","nameLocations":["14756:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14756:18:88"},"referencedDeclaration":36615,"src":"14756:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14755:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53739,"nodeType":"FunctionDefinition","src":"16185:522:88","nodes":[],"body":{"id":53738,"nodeType":"Block","src":"16429:278:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":53727,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53712,"src":"16470:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53728,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53715,"src":"16499:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53729,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53717,"src":"16523:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53730,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53719,"src":"16561:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53731,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53721,"src":"16589:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53732,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53723,"src":"16615:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53733,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"16648:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16663:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"16648:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16687:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53726,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53943,"src":"16439:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$37359_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$50165_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":53736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16439:261:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53737,"nodeType":"ExpressionStatement","src":"16439:261:88"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16194:17:88","parameters":{"id":53724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53712,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16229:15:88","nodeType":"VariableDeclaration","scope":53739,"src":"16221:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53711,"name":"address","nodeType":"ElementaryTypeName","src":"16221:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53715,"mutability":"mutable","name":"_consensus","nameLocation":"16268:10:88","nodeType":"VariableDeclaration","scope":53739,"src":"16254:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53714,"nodeType":"UserDefinedTypeName","pathNode":{"id":53713,"name":"ConsensusType","nameLocations":["16254:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16254:13:88"},"referencedDeclaration":37359,"src":"16254:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53717,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16296:24:88","nodeType":"VariableDeclaration","scope":53739,"src":"16288:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53716,"name":"uint256","nodeType":"ElementaryTypeName","src":"16288:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53719,"mutability":"mutable","name":"_minValidators","nameLocation":"16337:14:88","nodeType":"VariableDeclaration","scope":53739,"src":"16330:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53718,"name":"uint64","nodeType":"ElementaryTypeName","src":"16330:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53721,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16368:12:88","nodeType":"VariableDeclaration","scope":53739,"src":"16361:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53720,"name":"uint64","nodeType":"ElementaryTypeName","src":"16361:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53723,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16396:19:88","nodeType":"VariableDeclaration","scope":53739,"src":"16390:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53722,"name":"uint8","nodeType":"ElementaryTypeName","src":"16390:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16211:210:88"},"returnParameters":{"id":53725,"nodeType":"ParameterList","parameters":[],"src":"16429:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53943,"nodeType":"FunctionDefinition","src":"16713:2630:88","nodes":[],"body":{"id":53942,"nodeType":"Block","src":"17036:2307:88","nodes":[],"statements":[{"assignments":[53762],"declarations":[{"constant":false,"id":53762,"mutability":"mutable","name":"_parentId","nameLocation":"17062:9:88","nodeType":"VariableDeclaration","scope":53942,"src":"17046:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53761,"nodeType":"UserDefinedTypeName","pathNode":{"id":53760,"name":"SubnetID","nameLocations":["17046:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"17046:8:88"},"referencedDeclaration":50077,"src":"17046:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53771,"initialValue":{"arguments":[{"id":53764,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"17083:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17114:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17100:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53765,"name":"address","nodeType":"ElementaryTypeName","src":"17104:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53766,"nodeType":"ArrayTypeName","src":"17104:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17100:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53763,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"17074:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17074:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"17046:71:88"},{"expression":{"id":53777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53772,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17128:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17140:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53774,"nodeType":"UserDefinedTypeName","pathNode":{"id":53773,"name":"SubnetActorManagerFacet","nameLocations":["17144:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"17144:23:88"},"referencedDeclaration":52151,"src":"17144:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17140:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"17128:41:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53778,"nodeType":"ExpressionStatement","src":"17128:41:88"},{"expression":{"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53779,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17179:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17190:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53781,"nodeType":"UserDefinedTypeName","pathNode":{"id":53780,"name":"SubnetActorGetterFacet","nameLocations":["17194:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"17194:22:88"},"referencedDeclaration":50887,"src":"17194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17190:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"17179:39:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53785,"nodeType":"ExpressionStatement","src":"17179:39:88"},{"expression":{"id":53791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53786,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17228:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17239:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53788,"nodeType":"UserDefinedTypeName","pathNode":{"id":53787,"name":"DiamondCutFacet","nameLocations":["17243:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"17243:15:88"},"referencedDeclaration":36918,"src":"17243:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17239:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"17228:32:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53792,"nodeType":"ExpressionStatement","src":"17228:32:88"},{"expression":{"id":53798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53793,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"17270:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17281:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53795,"nodeType":"UserDefinedTypeName","pathNode":{"id":53794,"name":"DiamondLoupeFacet","nameLocations":["17285:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"17285:17:88"},"referencedDeclaration":37355,"src":"17285:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17281:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"17270:34:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53799,"nodeType":"ExpressionStatement","src":"17270:34:88"},{"assignments":[53805],"declarations":[{"constant":false,"id":53805,"mutability":"mutable","name":"diamondCut","nameLocation":"17342:10:88","nodeType":"VariableDeclaration","scope":53942,"src":"17315:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53803,"nodeType":"UserDefinedTypeName","pathNode":{"id":53802,"name":"IDiamond.FacetCut","nameLocations":["17315:8:88","17324:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17315:17:88"},"referencedDeclaration":40159,"src":"17315:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53804,"nodeType":"ArrayTypeName","src":"17315:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53812,"initialValue":{"arguments":[{"hexValue":"34","id":53810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17379:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17355:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53807,"nodeType":"UserDefinedTypeName","pathNode":{"id":53806,"name":"IDiamond.FacetCut","nameLocations":["17359:8:88","17368:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17359:17:88"},"referencedDeclaration":40159,"src":"17359:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53808,"nodeType":"ArrayTypeName","src":"17359:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17355:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17315:66:88"},{"expression":{"id":53828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53813,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17392:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53815,"indexExpression":{"hexValue":"30","id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17403:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17392:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53820,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17480:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17472:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53818,"name":"address","nodeType":"ElementaryTypeName","src":"17472:7:88","typeDescriptions":{}}},"id":53821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17472:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53822,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17516:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17516:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17540:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17516:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53825,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"17580:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53816,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17422:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17431:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17422:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17458:12:88","17508:6:88","17561:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17422:191:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53827,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17408:215:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17392:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53829,"nodeType":"ExpressionStatement","src":"17392:231:88"},{"expression":{"id":53845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53830,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17634:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53832,"indexExpression":{"hexValue":"31","id":53831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17645:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17634:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53837,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17722:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17714:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53835,"name":"address","nodeType":"ElementaryTypeName","src":"17714:7:88","typeDescriptions":{}}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17714:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53839,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17757:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17766:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17757:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17781:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17757:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53842,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"17821:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53833,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17664:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17673:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17664:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17700:12:88","17749:6:88","17802:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17664:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53844,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17650:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17634:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53846,"nodeType":"ExpressionStatement","src":"17634:229:88"},{"expression":{"id":53862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53847,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17874:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53849,"indexExpression":{"hexValue":"32","id":53848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17885:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17874:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53854,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17962:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17954:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53852,"name":"address","nodeType":"ElementaryTypeName","src":"17954:7:88","typeDescriptions":{}}},"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17954:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53856,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17997:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18006:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17997:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18021:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17997:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53859,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"18061:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53850,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17904:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17904:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17940:12:88","17989:6:88","18042:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17904:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53861,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17890:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17874:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53863,"nodeType":"ExpressionStatement","src":"17874:229:88"},{"expression":{"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53864,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18114:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53866,"indexExpression":{"hexValue":"33","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18125:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18114:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53871,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"18202:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18194:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53869,"name":"address","nodeType":"ElementaryTypeName","src":"18194:7:88","typeDescriptions":{}}},"id":53872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18194:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53873,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18237:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18246:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18237:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18261:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18237:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53876,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"18301:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53867,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18144:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18153:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18144:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18180:12:88","18229:6:88","18282:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18144:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18130:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18114:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53880,"nodeType":"ExpressionStatement","src":"18114:229:88"},{"expression":{"id":53904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53881,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"18354:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53885,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18402:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":53888,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53762,"src":"18491:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53889,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53741,"src":"18534:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53890,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53744,"src":"18578:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53891,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53746,"src":"18631:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53892,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53748,"src":"18688:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53893,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53750,"src":"18741:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53894,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53752,"src":"18791:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53895,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53757,"src":"18851:22:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":53896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18903:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":53897,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53755,"src":"18939:15:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53898,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"18988:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53899,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"19041:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19060:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"19041:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19041:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53886,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"18426:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18445:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"18426:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18481:8:88","18518:14:88","18567:9:88","18606:23:88","18673:13:88","18720:19:88","18771:18:88","18828:21:88","18891:10:88","18923:14:88","18972:14:88","19027:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"18426:657:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18366:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53883,"nodeType":"UserDefinedTypeName","pathNode":{"id":53882,"name":"SubnetActorDiamond","nameLocations":["18370:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18370:18:88"},"referencedDeclaration":36615,"src":"18370:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18366:727:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"18354:739:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53905,"nodeType":"ExpressionStatement","src":"18354:739:88"},{"expression":{"id":53913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53906,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"19104:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53910,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19148:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19140:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53908,"name":"address","nodeType":"ElementaryTypeName","src":"19140:7:88","typeDescriptions":{}}},"id":53911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19140:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53907,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"19116:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19116:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"19104:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53914,"nodeType":"ExpressionStatement","src":"19104:55:88"},{"expression":{"id":53922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53915,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"19169:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53919,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19211:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53917,"name":"address","nodeType":"ElementaryTypeName","src":"19203:7:88","typeDescriptions":{}}},"id":53920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19203:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53916,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"19180:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19180:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"19169:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53923,"nodeType":"ExpressionStatement","src":"19169:53:88"},{"expression":{"id":53931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53924,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"19232:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53928,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19267:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19259:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53926,"name":"address","nodeType":"ElementaryTypeName","src":"19259:7:88","typeDescriptions":{}}},"id":53929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19259:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53925,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"19243:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19243:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"19232:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53932,"nodeType":"ExpressionStatement","src":"19232:46:88"},{"expression":{"id":53940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53933,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"19288:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53937,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19325:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19317:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53935,"name":"address","nodeType":"ElementaryTypeName","src":"19317:7:88","typeDescriptions":{}}},"id":53938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19317:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53934,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"19299:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19299:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"19288:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53941,"nodeType":"ExpressionStatement","src":"19288:48:88"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16722:17:88","parameters":{"id":53758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53741,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16757:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16749:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53740,"name":"address","nodeType":"ElementaryTypeName","src":"16749:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53744,"mutability":"mutable","name":"_consensus","nameLocation":"16796:10:88","nodeType":"VariableDeclaration","scope":53943,"src":"16782:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53743,"nodeType":"UserDefinedTypeName","pathNode":{"id":53742,"name":"ConsensusType","nameLocations":["16782:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16782:13:88"},"referencedDeclaration":37359,"src":"16782:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53746,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16824:24:88","nodeType":"VariableDeclaration","scope":53943,"src":"16816:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53745,"name":"uint256","nodeType":"ElementaryTypeName","src":"16816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53748,"mutability":"mutable","name":"_minValidators","nameLocation":"16865:14:88","nodeType":"VariableDeclaration","scope":53943,"src":"16858:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53747,"name":"uint64","nodeType":"ElementaryTypeName","src":"16858:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53750,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16896:12:88","nodeType":"VariableDeclaration","scope":53943,"src":"16889:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53749,"name":"uint64","nodeType":"ElementaryTypeName","src":"16889:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53752,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16924:19:88","nodeType":"VariableDeclaration","scope":53943,"src":"16918:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53751,"name":"uint8","nodeType":"ElementaryTypeName","src":"16918:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53755,"mutability":"mutable","name":"_permissionMode","nameLocation":"16968:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16953:30:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":53754,"nodeType":"UserDefinedTypeName","pathNode":{"id":53753,"name":"PermissionMode","nameLocations":["16953:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"16953:14:88"},"referencedDeclaration":50165,"src":"16953:14:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53757,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"17000:22:88","nodeType":"VariableDeclaration","scope":53943,"src":"16993:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53756,"name":"uint16","nodeType":"ElementaryTypeName","src":"16993:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16739:289:88"},"returnParameters":{"id":53759,"nodeType":"ParameterList","parameters":[],"src":"17036:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54036,"nodeType":"FunctionDefinition","src":"19349:1021:88","nodes":[],"body":{"id":54035,"nodeType":"Block","src":"19441:929:88","nodes":[],"statements":[{"assignments":[53953],"declarations":[{"constant":false,"id":53953,"mutability":"mutable","name":"mockedManager","nameLocation":"19479:13:88","nodeType":"VariableDeclaration","scope":54035,"src":"19451:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":53952,"nodeType":"UserDefinedTypeName","pathNode":{"id":53951,"name":"SubnetActorManagerFacetMock","nameLocations":["19451:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19451:27:88"},"referencedDeclaration":57957,"src":"19451:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"}],"id":53958,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19495:31:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacetMock_$57957_$","typeString":"function () returns (contract SubnetActorManagerFacetMock)"},"typeName":{"id":53955,"nodeType":"UserDefinedTypeName","pathNode":{"id":53954,"name":"SubnetActorManagerFacetMock","nameLocations":["19499:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19499:27:88"},"referencedDeclaration":57957,"src":"19499:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}},"id":53957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19495:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"VariableDeclarationStatement","src":"19451:77:88"},{"assignments":[53961],"declarations":[{"constant":false,"id":53961,"mutability":"mutable","name":"getter","nameLocation":"19561:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"19538:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53960,"nodeType":"UserDefinedTypeName","pathNode":{"id":53959,"name":"SubnetActorGetterFacet","nameLocations":["19538:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19538:22:88"},"referencedDeclaration":50887,"src":"19538:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53966,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19570:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53963,"nodeType":"UserDefinedTypeName","pathNode":{"id":53962,"name":"SubnetActorGetterFacet","nameLocations":["19574:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19574:22:88"},"referencedDeclaration":50887,"src":"19574:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19570:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"19538:60:88"},{"assignments":[53972],"declarations":[{"constant":false,"id":53972,"mutability":"mutable","name":"diamondCut","nameLocation":"19636:10:88","nodeType":"VariableDeclaration","scope":54035,"src":"19609:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53970,"nodeType":"UserDefinedTypeName","pathNode":{"id":53969,"name":"IDiamond.FacetCut","nameLocations":["19609:8:88","19618:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19609:17:88"},"referencedDeclaration":40159,"src":"19609:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53971,"nodeType":"ArrayTypeName","src":"19609:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53979,"initialValue":{"arguments":[{"hexValue":"32","id":53977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19673:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19649:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53974,"nodeType":"UserDefinedTypeName","pathNode":{"id":53973,"name":"IDiamond.FacetCut","nameLocations":["19653:8:88","19662:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19653:17:88"},"referencedDeclaration":40159,"src":"19653:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53975,"nodeType":"ArrayTypeName","src":"19653:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19649:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"19609:66:88"},{"expression":{"id":53995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53980,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19686:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53982,"indexExpression":{"hexValue":"30","id":53981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19697:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19686:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53987,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53953,"src":"19774:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}],"id":53986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19766:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53985,"name":"address","nodeType":"ElementaryTypeName","src":"19766:7:88","typeDescriptions":{}}},"id":53988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19766:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53989,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19814:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19823:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"19814:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19838:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"19814:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53992,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"19878:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53983,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19716:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19725:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19716:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19752:12:88","19806:6:88","19859:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19716:201:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53994,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19702:225:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19686:241:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53996,"nodeType":"ExpressionStatement","src":"19686:241:88"},{"expression":{"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53997,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19938:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53999,"indexExpression":{"hexValue":"31","id":53998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19938:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54004,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53961,"src":"20026:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":54003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20018:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54002,"name":"address","nodeType":"ElementaryTypeName","src":"20018:7:88","typeDescriptions":{}}},"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20018:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54006,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20059:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20068:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20059:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20083:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20059:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54009,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"20123:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54000,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19968:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19977:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19968:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20004:12:88","20051:6:88","20104:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19968:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54011,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19954:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19938:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54013,"nodeType":"ExpressionStatement","src":"19938:227:88"},{"assignments":[54018],"declarations":[{"constant":false,"id":54018,"mutability":"mutable","name":"params","nameLocation":"20220:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"20176:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54017,"nodeType":"UserDefinedTypeName","pathNode":{"id":54016,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["20176:18:88","20195:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"20176:36:88"},"referencedDeclaration":36253,"src":"20176:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54022,"initialValue":{"arguments":[{"id":54020,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53945,"src":"20265:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54019,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"20229:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":54021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20229:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"20176:92:88"},{"assignments":[54025],"declarations":[{"constant":false,"id":54025,"mutability":"mutable","name":"d","nameLocation":"20298:1:88","nodeType":"VariableDeclaration","scope":54035,"src":"20279:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54024,"nodeType":"UserDefinedTypeName","pathNode":{"id":54023,"name":"SubnetActorDiamond","nameLocations":["20279:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20279:18:88"},"referencedDeclaration":36615,"src":"20279:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54032,"initialValue":{"arguments":[{"id":54029,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"20325:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54030,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54018,"src":"20337:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20302:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54027,"nodeType":"UserDefinedTypeName","pathNode":{"id":54026,"name":"SubnetActorDiamond","nameLocations":["20306:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20306:18:88"},"referencedDeclaration":36615,"src":"20306:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20302:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"20279:65:88"},{"expression":{"id":54033,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54025,"src":"20362:1:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53950,"id":54034,"nodeType":"Return","src":"20355:8:88"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"19358:34:88","parameters":{"id":53946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53945,"mutability":"mutable","name":"gw","nameLocation":"19401:2:88","nodeType":"VariableDeclaration","scope":54036,"src":"19393:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53944,"name":"address","nodeType":"ElementaryTypeName","src":"19393:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19392:12:88"},"returnParameters":{"id":53950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54036,"src":"19421:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53948,"nodeType":"UserDefinedTypeName","pathNode":{"id":53947,"name":"SubnetActorDiamond","nameLocations":["19421:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"19421:18:88"},"referencedDeclaration":36615,"src":"19421:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"19420:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54178,"nodeType":"FunctionDefinition","src":"20422:1703:88","nodes":[],"body":{"id":54177,"nodeType":"Block","src":"20560:1565:88","nodes":[],"statements":[{"assignments":[54050],"declarations":[{"constant":false,"id":54050,"mutability":"mutable","name":"diamondCut","nameLocation":"20597:10:88","nodeType":"VariableDeclaration","scope":54177,"src":"20570:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54048,"nodeType":"UserDefinedTypeName","pathNode":{"id":54047,"name":"IDiamond.FacetCut","nameLocations":["20570:8:88","20579:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20570:17:88"},"referencedDeclaration":40159,"src":"20570:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54049,"nodeType":"ArrayTypeName","src":"20570:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54057,"initialValue":{"arguments":[{"hexValue":"34","id":54055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20634:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20610:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54052,"nodeType":"UserDefinedTypeName","pathNode":{"id":54051,"name":"IDiamond.FacetCut","nameLocations":["20614:8:88","20623:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20614:17:88"},"referencedDeclaration":40159,"src":"20614:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54053,"nodeType":"ArrayTypeName","src":"20614:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20610:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20570:66:88"},{"assignments":[54060],"declarations":[{"constant":false,"id":54060,"mutability":"mutable","name":"regCutFacet","nameLocation":"20663:11:88","nodeType":"VariableDeclaration","scope":54177,"src":"20647:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54059,"nodeType":"UserDefinedTypeName","pathNode":{"id":54058,"name":"DiamondCutFacet","nameLocations":["20647:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20647:15:88"},"referencedDeclaration":36918,"src":"20647:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54065,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20677:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54062,"nodeType":"UserDefinedTypeName","pathNode":{"id":54061,"name":"DiamondCutFacet","nameLocations":["20681:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20681:15:88"},"referencedDeclaration":36918,"src":"20681:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20677:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"20647:51:88"},{"assignments":[54068],"declarations":[{"constant":false,"id":54068,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"20726:13:88","nodeType":"VariableDeclaration","scope":54177,"src":"20708:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54067,"nodeType":"UserDefinedTypeName","pathNode":{"id":54066,"name":"DiamondLoupeFacet","nameLocations":["20708:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20708:17:88"},"referencedDeclaration":37355,"src":"20708:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54073,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20742:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54070,"nodeType":"UserDefinedTypeName","pathNode":{"id":54069,"name":"DiamondLoupeFacet","nameLocations":["20746:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20746:17:88"},"referencedDeclaration":37355,"src":"20746:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20742:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"20708:57:88"},{"assignments":[54076],"declarations":[{"constant":false,"id":54076,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"20795:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20775:34:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54075,"nodeType":"UserDefinedTypeName","pathNode":{"id":54074,"name":"RegisterSubnetFacet","nameLocations":["20775:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20775:19:88"},"referencedDeclaration":52279,"src":"20775:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54081,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20812:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52279_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54078,"nodeType":"UserDefinedTypeName","pathNode":{"id":54077,"name":"RegisterSubnetFacet","nameLocations":["20816:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20816:19:88"},"referencedDeclaration":52279,"src":"20816:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}},"id":54080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20812:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"20775:62:88"},{"assignments":[54084],"declarations":[{"constant":false,"id":54084,"mutability":"mutable","name":"regGetterFacet","nameLocation":"20865:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20847:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54083,"nodeType":"UserDefinedTypeName","pathNode":{"id":54082,"name":"SubnetGetterFacet","nameLocations":["20847:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20847:17:88"},"referencedDeclaration":52517,"src":"20847:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54089,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20882:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52517_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54086,"nodeType":"UserDefinedTypeName","pathNode":{"id":54085,"name":"SubnetGetterFacet","nameLocations":["20886:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20886:17:88"},"referencedDeclaration":52517,"src":"20886:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}},"id":54088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20882:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"20847:58:88"},{"expression":{"id":54105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54090,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"20916:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54092,"indexExpression":{"hexValue":"30","id":54091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20927:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20916:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54097,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54068,"src":"21004:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20996:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54095,"name":"address","nodeType":"ElementaryTypeName","src":"20996:7:88","typeDescriptions":{}}},"id":54098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20996:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54099,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21044:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21053:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21044:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21068:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21044:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54102,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"21108:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54093,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20946:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20955:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20946:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20982:12:88","21036:6:88","21089:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20946:200:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20932:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20916:240:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54106,"nodeType":"ExpressionStatement","src":"20916:240:88"},{"expression":{"id":54122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54107,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21166:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54109,"indexExpression":{"hexValue":"31","id":54108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21177:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21166:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54114,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54060,"src":"21254:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21246:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54112,"name":"address","nodeType":"ElementaryTypeName","src":"21246:7:88","typeDescriptions":{}}},"id":54115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21246:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54116,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21292:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21301:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21292:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21316:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21292:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54119,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"21356:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54110,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21196:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21205:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21196:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21232:12:88","21284:6:88","21337:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21196:198:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54121,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21182:222:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21166:238:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54123,"nodeType":"ExpressionStatement","src":"21166:238:88"},{"expression":{"id":54139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54124,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21414:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54126,"indexExpression":{"hexValue":"32","id":54125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21425:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21414:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54131,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54076,"src":"21502:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}],"id":54130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21494:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54129,"name":"address","nodeType":"ElementaryTypeName","src":"21494:7:88","typeDescriptions":{}}},"id":54132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21494:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54133,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21543:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21552:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21543:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21567:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21543:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54136,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"21607:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54127,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21453:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21444:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21480:12:88","21535:6:88","21588:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21444:206:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54138,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21430:230:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21414:246:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54140,"nodeType":"ExpressionStatement","src":"21414:246:88"},{"expression":{"id":54156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54141,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21670:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54143,"indexExpression":{"hexValue":"33","id":54142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21681:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21670:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54148,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54084,"src":"21758:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}],"id":54147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21750:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54146,"name":"address","nodeType":"ElementaryTypeName","src":"21750:7:88","typeDescriptions":{}}},"id":54149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21750:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54150,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21799:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21808:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21799:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21823:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21799:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54153,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"21863:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54144,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21700:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21709:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21700:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21736:12:88","21791:6:88","21844:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21700:212:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21686:236:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21670:252:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54157,"nodeType":"ExpressionStatement","src":"21670:252:88"},{"assignments":[54160],"declarations":[{"constant":false,"id":54160,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"21955:17:88","nodeType":"VariableDeclaration","scope":54177,"src":"21933:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54159,"nodeType":"UserDefinedTypeName","pathNode":{"id":54158,"name":"SubnetRegistryDiamond","nameLocations":["21933:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21933:21:88"},"referencedDeclaration":36853,"src":"21933:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54167,"initialValue":{"arguments":[{"id":54164,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"22001:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54165,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54039,"src":"22013:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":54163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21975:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36652_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36853_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":54162,"nodeType":"UserDefinedTypeName","pathNode":{"id":54161,"name":"SubnetRegistryDiamond","nameLocations":["21979:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21979:21:88"},"referencedDeclaration":36853,"src":"21979:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21975:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"21933:87:88"},{"eventCall":{"arguments":[{"arguments":[{"id":54171,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22065:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22057:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54169,"name":"address","nodeType":"ElementaryTypeName","src":"22057:7:88","typeDescriptions":{}}},"id":54172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22057:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54168,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53071,"src":"22035:21:88","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22035:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54174,"nodeType":"EmitStatement","src":"22030:54:88"},{"expression":{"id":54175,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22101:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54044,"id":54176,"nodeType":"Return","src":"22094:24:88"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"20431:20:88","parameters":{"id":54040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54039,"mutability":"mutable","name":"params","nameLocation":"20508:6:88","nodeType":"VariableDeclaration","scope":54178,"src":"20461:53:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54038,"nodeType":"UserDefinedTypeName","pathNode":{"id":54037,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["20461:21:88","20483:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"20461:39:88"},"referencedDeclaration":36652,"src":"20461:39:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"20451:69:88"},"returnParameters":{"id":54044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54178,"src":"20537:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54042,"nodeType":"UserDefinedTypeName","pathNode":{"id":54041,"name":"SubnetRegistryDiamond","nameLocations":["20537:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"20537:21:88"},"referencedDeclaration":36853,"src":"20537:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"20536:23:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54207,"nodeType":"FunctionDefinition","src":"22131:190:88","nodes":[],"body":{"id":54206,"nodeType":"Block","src":"22212:109:88","nodes":[],"statements":[{"body":{"id":54202,"nodeType":"Block","src":"22253:42:88","statements":[{"expression":{"id":54200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54196,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22267:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54197,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54181,"src":"22274:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54199,"indexExpression":{"id":54198,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22282:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22274:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22267:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54201,"nodeType":"ExpressionStatement","src":"22267:17:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54190,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22241:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22245:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"22241:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54203,"initializationExpression":{"assignments":[54187],"declarations":[{"constant":false,"id":54187,"mutability":"mutable","name":"i","nameLocation":"22234:1:88","nodeType":"VariableDeclaration","scope":54203,"src":"22227:8:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54186,"name":"uint64","nodeType":"ElementaryTypeName","src":"22227:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54189,"initialValue":{"hexValue":"30","id":54188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22238:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22227:12:88"},"loopExpression":{"expression":{"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22248:3:88","subExpression":{"id":54193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22248:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54195,"nodeType":"ExpressionStatement","src":"22248:3:88"},"nodeType":"ForStatement","src":"22222:73:88"},{"expression":{"id":54204,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22311:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54185,"id":54205,"nodeType":"Return","src":"22304:10:88"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"22140:11:88","parameters":{"id":54182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54181,"mutability":"mutable","name":"weights","nameLocation":"22169:7:88","nodeType":"VariableDeclaration","scope":54207,"src":"22152:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54179,"name":"uint256","nodeType":"ElementaryTypeName","src":"22152:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54180,"nodeType":"ArrayTypeName","src":"22152:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"22151:26:88"},"returnParameters":{"id":54185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54184,"mutability":"mutable","name":"sum","nameLocation":"22207:3:88","nodeType":"VariableDeclaration","scope":54207,"src":"22199:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54183,"name":"uint256","nodeType":"ElementaryTypeName","src":"22199:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22198:13:88"},"scope":55375,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54382,"nodeType":"FunctionDefinition","src":"22327:933:88","nodes":[],"body":{"id":54381,"nodeType":"Block","src":"22430:830:88","nodes":[],"statements":[{"expression":{"id":54224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54217,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22440:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22470:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22453:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54219,"nodeType":"UserDefinedTypeName","pathNode":{"id":54218,"name":"FvmAddress","nameLocations":["22457:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22457:10:88"},"referencedDeclaration":49998,"src":"22457:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54220,"nodeType":"ArrayTypeName","src":"22457:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22453:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"22440:32:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54225,"nodeType":"ExpressionStatement","src":"22440:32:88"},{"expression":{"id":54236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54226,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22482:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54228,"indexExpression":{"hexValue":"30","id":54227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22493:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22482:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22528:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54231,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22520:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22523:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22520:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22520:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54229,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22498:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22515:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22498:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22498:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22482:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54237,"nodeType":"ExpressionStatement","src":"22482:51:88"},{"expression":{"id":54248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22543:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54240,"indexExpression":{"hexValue":"31","id":54239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22554:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22543:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22589:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54243,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22581:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22584:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22581:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22581:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54241,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22559:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22576:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22559:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22559:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22543:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54249,"nodeType":"ExpressionStatement","src":"22543:51:88"},{"expression":{"id":54260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54250,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22604:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54252,"indexExpression":{"hexValue":"32","id":54251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22615:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22604:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22650:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54255,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22642:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22645:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22642:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22642:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54253,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22620:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22637:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22620:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22620:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22604:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54261,"nodeType":"ExpressionStatement","src":"22604:51:88"},{"expression":{"id":54268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54262,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22666:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22692:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22678:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54263,"name":"address","nodeType":"ElementaryTypeName","src":"22682:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54264,"nodeType":"ArrayTypeName","src":"22682:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22678:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"22666:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54269,"nodeType":"ExpressionStatement","src":"22666:28:88"},{"expression":{"id":54277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54270,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22704:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54272,"indexExpression":{"hexValue":"30","id":54271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22714:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22704:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22727:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54273,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22719:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22722:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22719:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22719:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22704:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54278,"nodeType":"ExpressionStatement","src":"22704:27:88"},{"expression":{"id":54286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54279,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22741:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54281,"indexExpression":{"hexValue":"31","id":54280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22751:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22741:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22764:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54282,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22756:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22759:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22756:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22756:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22741:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54287,"nodeType":"ExpressionStatement","src":"22741:27:88"},{"expression":{"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54288,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22778:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54290,"indexExpression":{"hexValue":"32","id":54289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22788:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22778:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22801:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54291,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22793:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22796:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22793:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22793:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22778:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54296,"nodeType":"ExpressionStatement","src":"22778:27:88"},{"assignments":[54301],"declarations":[{"constant":false,"id":54301,"mutability":"mutable","name":"weights","nameLocation":"22833:7:88","nodeType":"VariableDeclaration","scope":54381,"src":"22816:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54299,"name":"uint256","nodeType":"ElementaryTypeName","src":"22816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54300,"nodeType":"ArrayTypeName","src":"22816:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54307,"initialValue":{"arguments":[{"hexValue":"33","id":54305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22857:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22843:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54302,"name":"uint256","nodeType":"ElementaryTypeName","src":"22847:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54303,"nodeType":"ArrayTypeName","src":"22847:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22843:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22816:43:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22886:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54311,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22878:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22881:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22878:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22878:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22892:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22870:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22873:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22870:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22870:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54317,"nodeType":"ExpressionStatement","src":"22870:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22920:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54321,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22912:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22915:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22912:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22926:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54318,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22904:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22907:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22904:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22904:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54327,"nodeType":"ExpressionStatement","src":"22904:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22954:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54331,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22946:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22949:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22946:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22946:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22960:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54328,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22938:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22941:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22938:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22938:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54337,"nodeType":"ExpressionStatement","src":"22938:24:88"},{"expression":{"id":54342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54338,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22973:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54340,"indexExpression":{"hexValue":"30","id":54339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22981:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22973:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22986:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22973:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54343,"nodeType":"ExpressionStatement","src":"22973:16:88"},{"expression":{"id":54348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54344,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22999:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54346,"indexExpression":{"hexValue":"31","id":54345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23007:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22999:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23012:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22999:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54349,"nodeType":"ExpressionStatement","src":"22999:16:88"},{"expression":{"id":54354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54350,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"23025:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54352,"indexExpression":{"hexValue":"32","id":54351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23033:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23025:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23038:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"23025:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54355,"nodeType":"ExpressionStatement","src":"23025:16:88"},{"assignments":[54358],"declarations":[{"constant":false,"id":54358,"mutability":"mutable","name":"finality","nameLocation":"23074:8:88","nodeType":"VariableDeclaration","scope":54381,"src":"23052:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54357,"nodeType":"UserDefinedTypeName","pathNode":{"id":54356,"name":"ParentFinality","nameLocations":["23052:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"23052:14:88"},"referencedDeclaration":49918,"src":"23052:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54367,"initialValue":{"arguments":[{"expression":{"id":54360,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23109:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:6:88","memberName":"number","nodeType":"MemberAccess","src":"23109:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23142:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23134:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23134:7:88","typeDescriptions":{}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23134:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54359,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"23085:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23101:6:88","23123:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"23085:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"23052:94:88"},{"expression":{"arguments":[{"expression":{"id":54371,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"23166:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23177:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"23166:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54368,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23157:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23160:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"23157:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23157:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54374,"nodeType":"ExpressionStatement","src":"23157:33:88"},{"expression":{"arguments":[{"id":54378,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54358,"src":"23244:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54375,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"23200:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23223:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"23200:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54380,"nodeType":"ExpressionStatement","src":"23200:53:88"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"22336:15:88","parameters":{"id":54208,"nodeType":"ParameterList","parameters":[],"src":"22351:2:88"},"returnParameters":{"id":54216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54212,"mutability":"mutable","name":"validators","nameLocation":"22390:10:88","nodeType":"VariableDeclaration","scope":54382,"src":"22370:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54210,"nodeType":"UserDefinedTypeName","pathNode":{"id":54209,"name":"FvmAddress","nameLocations":["22370:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22370:10:88"},"referencedDeclaration":49998,"src":"22370:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54211,"nodeType":"ArrayTypeName","src":"22370:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54215,"mutability":"mutable","name":"addresses","nameLocation":"22419:9:88","nodeType":"VariableDeclaration","scope":54382,"src":"22402:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54213,"name":"address","nodeType":"ElementaryTypeName","src":"22402:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54214,"nodeType":"ArrayTypeName","src":"22402:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"22369:60:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54475,"nodeType":"FunctionDefinition","src":"23266:1297:88","nodes":[],"body":{"id":54474,"nodeType":"Block","src":"23350:1213:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54392,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"23375:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54393,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23402:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54391,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55282,"src":"23360:14:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23360:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54395,"nodeType":"ExpressionStatement","src":"23360:46:88"},{"assignments":[54398],"declarations":[{"constant":false,"id":54398,"mutability":"mutable","name":"crossMsg","nameLocation":"23433:8:88","nodeType":"VariableDeclaration","scope":54474,"src":"23417:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54397,"nodeType":"UserDefinedTypeName","pathNode":{"id":54396,"name":"CrossMsg","nameLocations":["23417:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"23417:8:88"},"referencedDeclaration":49974,"src":"23417:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54438,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54406,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23596:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54402,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23555:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23564:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23555:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23581:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23555:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54410,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23659:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54408,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23637:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23654:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23637:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23637:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54401,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23512:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23545:8:88","23625:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23512:173:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54418,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23791:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54414,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23750:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23759:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23750:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23776:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23750:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54422,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23851:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54420,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23829:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23846:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23829:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23829:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54413,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23707:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23740:8:88","23817:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23707:167:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54425,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"23899:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23899:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54429,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"23976:11:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24023:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24013:9:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54430,"name":"bytes","nodeType":"ElementaryTypeName","src":"24017:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24013:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54434,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"24048:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54400,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"23476:11:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49991_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23506:4:88","23703:2:88","23892:5:88","23942:5:88","23968:6:88","24005:6:88","24043:3:88"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"23476:608:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24107:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54399,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"23444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49974_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23467:7:88","24098:7:88"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"23444:679:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"23417:706:88"},{"assignments":[54443],"declarations":[{"constant":false,"id":54443,"mutability":"mutable","name":"msgs","nameLocation":"24151:4:88","nodeType":"VariableDeclaration","scope":54474,"src":"24133:22:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":54441,"nodeType":"UserDefinedTypeName","pathNode":{"id":54440,"name":"CrossMsg","nameLocations":["24133:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24133:8:88"},"referencedDeclaration":49974,"src":"24133:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54442,"nodeType":"ArrayTypeName","src":"24133:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54450,"initialValue":{"arguments":[{"hexValue":"31","id":54448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24173:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24158:14:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":54445,"nodeType":"UserDefinedTypeName","pathNode":{"id":54444,"name":"CrossMsg","nameLocations":["24162:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24162:8:88"},"referencedDeclaration":49974,"src":"24162:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54446,"nodeType":"ArrayTypeName","src":"24162:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24158:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24133:42:88"},{"expression":{"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54451,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24185:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54453,"indexExpression":{"hexValue":"30","id":54452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24190:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24185:7:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54454,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24195:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"24185:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54456,"nodeType":"ExpressionStatement","src":"24185:18:88"},{"expression":{"arguments":[{"expression":{"id":54460,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"24442:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24453:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"24442:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54457,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24433:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24436:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"24433:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24433:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54463,"nodeType":"ExpressionStatement","src":"24433:33:88"},{"expression":{"arguments":[{"id":54467,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24516:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":54464,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"24476:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24497:18:88","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"24476:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":54468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24476:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54469,"nodeType":"ExpressionStatement","src":"24476:45:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54470,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24539:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24548:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40590,"src":"24539:15:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24539:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54390,"id":54473,"nodeType":"Return","src":"24532:24:88"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"23275:20:88","parameters":{"id":54387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54384,"mutability":"mutable","name":"caller","nameLocation":"23304:6:88","nodeType":"VariableDeclaration","scope":54475,"src":"23296:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54383,"name":"address","nodeType":"ElementaryTypeName","src":"23296:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54386,"mutability":"mutable","name":"src","nameLocation":"23320:3:88","nodeType":"VariableDeclaration","scope":54475,"src":"23312:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54385,"name":"address","nodeType":"ElementaryTypeName","src":"23312:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23295:29:88"},"returnParameters":{"id":54390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54475,"src":"23341:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23341:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23340:9:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54486,"nodeType":"FunctionDefinition","src":"24569:93:88","nodes":[],"body":{"id":54485,"nodeType":"Block","src":"24617:45:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54481,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54477,"src":"24640:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24651:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":54480,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"24627:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24627:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54484,"nodeType":"ExpressionStatement","src":"24627:28:88"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24578:12:88","parameters":{"id":54478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54477,"mutability":"mutable","name":"validator","nameLocation":"24599:9:88","nodeType":"VariableDeclaration","scope":54486,"src":"24591:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54476,"name":"address","nodeType":"ElementaryTypeName","src":"24591:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24590:19:88"},"returnParameters":{"id":54479,"nodeType":"ParameterList","parameters":[],"src":"24617:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54569,"nodeType":"FunctionDefinition","src":"24668:610:88","nodes":[],"body":{"id":54568,"nodeType":"Block","src":"24732:546:88","nodes":[],"statements":[{"assignments":[54497],"declarations":[{"constant":false,"id":54497,"mutability":"mutable","name":"validators","nameLocation":"24762:10:88","nodeType":"VariableDeclaration","scope":54568,"src":"24742:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54495,"nodeType":"UserDefinedTypeName","pathNode":{"id":54494,"name":"FvmAddress","nameLocations":["24742:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24742:10:88"},"referencedDeclaration":49998,"src":"24742:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54496,"nodeType":"ArrayTypeName","src":"24742:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54504,"initialValue":{"arguments":[{"hexValue":"31","id":54502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24792:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24775:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54499,"nodeType":"UserDefinedTypeName","pathNode":{"id":54498,"name":"FvmAddress","nameLocations":["24779:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24779:10:88"},"referencedDeclaration":49998,"src":"24779:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54500,"nodeType":"ArrayTypeName","src":"24779:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24775:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24742:52:88"},{"expression":{"id":54512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54505,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54497,"src":"24804:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54507,"indexExpression":{"hexValue":"30","id":54506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24815:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24804:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24842:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54508,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"24820:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24837:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"24820:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24820:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"24804:48:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54513,"nodeType":"ExpressionStatement","src":"24804:48:88"},{"assignments":[54518],"declarations":[{"constant":false,"id":54518,"mutability":"mutable","name":"weights","nameLocation":"24879:7:88","nodeType":"VariableDeclaration","scope":54568,"src":"24862:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54516,"name":"uint256","nodeType":"ElementaryTypeName","src":"24862:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54517,"nodeType":"ArrayTypeName","src":"24862:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54524,"initialValue":{"arguments":[{"hexValue":"31","id":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24903:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24889:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54519,"name":"uint256","nodeType":"ElementaryTypeName","src":"24893:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54520,"nodeType":"ArrayTypeName","src":"24893:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24889:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24862:43:88"},{"expression":{"id":54529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54525,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54518,"src":"24915:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54527,"indexExpression":{"hexValue":"30","id":54526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24915:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54528,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54490,"src":"24928:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24915:19:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54530,"nodeType":"ExpressionStatement","src":"24915:19:88"},{"expression":{"arguments":[{"id":54534,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24953:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24964:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24945:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24948:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"24945:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24945:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54537,"nodeType":"ExpressionStatement","src":"24945:21:88"},{"assignments":[54540],"declarations":[{"constant":false,"id":54540,"mutability":"mutable","name":"finality","nameLocation":"24998:8:88","nodeType":"VariableDeclaration","scope":54568,"src":"24976:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54539,"nodeType":"UserDefinedTypeName","pathNode":{"id":54538,"name":"ParentFinality","nameLocations":["24976:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"24976:14:88"},"referencedDeclaration":49918,"src":"24976:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54549,"initialValue":{"arguments":[{"expression":{"id":54542,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25033:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25039:6:88","memberName":"number","nodeType":"MemberAccess","src":"25033:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25066:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25058:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25058:7:88","typeDescriptions":{}}},"id":54547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25058:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54541,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"25009:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25025:6:88","25047:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"25009:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"24976:94:88"},{"expression":{"arguments":[{"expression":{"id":54553,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"25160:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25171:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"25160:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54550,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25146:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25149:10:88","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"25146:13:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25146:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54556,"nodeType":"ExpressionStatement","src":"25146:38:88"},{"expression":{"arguments":[{"id":54560,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54540,"src":"25238:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54557,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"25194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25217:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"25194:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25194:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54562,"nodeType":"ExpressionStatement","src":"25194:53:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54563,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25257:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25260:9:88","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"25257:12:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25257:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54567,"nodeType":"ExpressionStatement","src":"25257:14:88"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24677:12:88","parameters":{"id":54491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54488,"mutability":"mutable","name":"validator","nameLocation":"24698:9:88","nodeType":"VariableDeclaration","scope":54569,"src":"24690:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54487,"name":"address","nodeType":"ElementaryTypeName","src":"24690:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54490,"mutability":"mutable","name":"weight","nameLocation":"24717:6:88","nodeType":"VariableDeclaration","scope":54569,"src":"24709:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54489,"name":"uint256","nodeType":"ElementaryTypeName","src":"24709:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24689:35:88"},"returnParameters":{"id":54492,"nodeType":"ParameterList","parameters":[],"src":"24732:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54582,"nodeType":"FunctionDefinition","src":"25284:112:88","nodes":[],"body":{"id":54581,"nodeType":"Block","src":"25328:68:88","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25350:30:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54578,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54571,"src":"25382:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54574,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"25338:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25346:3:88","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"25338:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25338:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54580,"nodeType":"ExpressionStatement","src":"25338:51:88"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"25293:6:88","parameters":{"id":54572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54571,"mutability":"mutable","name":"amount","nameLocation":"25308:6:88","nodeType":"VariableDeclaration","scope":54582,"src":"25300:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54570,"name":"uint256","nodeType":"ElementaryTypeName","src":"25300:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25299:16:88"},"returnParameters":{"id":54573,"nodeType":"ParameterList","parameters":[],"src":"25328:0:88"},"scope":55375,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54597,"nodeType":"FunctionDefinition","src":"25402:131:88","nodes":[],"body":{"id":54596,"nodeType":"Block","src":"25466:67:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54590,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54584,"src":"25481:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54591,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54586,"src":"25496:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54592,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"25508:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25519:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"25508:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"id":54589,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54597,54722],"referencedDeclaration":54722,"src":"25476:4:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50229_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25476:50:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54595,"nodeType":"ExpressionStatement","src":"25476:50:88"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25411:4:88","parameters":{"id":54587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54584,"mutability":"mutable","name":"funderAddress","nameLocation":"25424:13:88","nodeType":"VariableDeclaration","scope":54597,"src":"25416:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54583,"name":"address","nodeType":"ElementaryTypeName","src":"25416:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54586,"mutability":"mutable","name":"fundAmount","nameLocation":"25447:10:88","nodeType":"VariableDeclaration","scope":54597,"src":"25439:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54585,"name":"uint256","nodeType":"ElementaryTypeName","src":"25439:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25415:43:88"},"returnParameters":{"id":54588,"nodeType":"ParameterList","parameters":[],"src":"25466:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54722,"nodeType":"FunctionDefinition","src":"25539:1180:88","nodes":[],"body":{"id":54721,"nodeType":"Block","src":"25620:1099:88","nodes":[],"statements":[{"assignments":[54609,null,54611,null,54613],"declarations":[{"constant":false,"id":54609,"mutability":"mutable","name":"subnetId","nameLocation":"25712:8:88","nodeType":"VariableDeclaration","scope":54721,"src":"25696:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54608,"nodeType":"UserDefinedTypeName","pathNode":{"id":54607,"name":"SubnetID","nameLocations":["25696:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"25696:8:88"},"referencedDeclaration":50077,"src":"25696:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54611,"mutability":"mutable","name":"nonceBefore","nameLocation":"25732:11:88","nodeType":"VariableDeclaration","scope":54721,"src":"25724:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54610,"name":"uint256","nodeType":"ElementaryTypeName","src":"25724:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54613,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"25755:16:88","nodeType":"VariableDeclaration","scope":54721,"src":"25747:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54612,"name":"uint256","nodeType":"ElementaryTypeName","src":"25747:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54620,"initialValue":{"arguments":[{"arguments":[{"id":54617,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"25793:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25785:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54615,"name":"address","nodeType":"ElementaryTypeName","src":"25785:7:88","typeDescriptions":{}}},"id":54618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25785:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54614,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"25775:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25775:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25695:109:88"},{"assignments":[54622],"declarations":[{"constant":false,"id":54622,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"25823:25:88","nodeType":"VariableDeclaration","scope":54721,"src":"25815:33:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54621,"name":"uint256","nodeType":"ElementaryTypeName","src":"25815:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54629,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54625,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"25887:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54623,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"25851:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25860:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"25851:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25851:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25899:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25851:49:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25815:85:88"},{"assignments":[54631],"declarations":[{"constant":false,"id":54631,"mutability":"mutable","name":"expectedNonce","nameLocation":"25918:13:88","nodeType":"VariableDeclaration","scope":54721,"src":"25910:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54630,"name":"uint256","nodeType":"ElementaryTypeName","src":"25910:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54635,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54632,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54611,"src":"25934:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25948:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25934:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25910:39:88"},{"assignments":[54637],"declarations":[{"constant":false,"id":54637,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"25967:18:88","nodeType":"VariableDeclaration","scope":54721,"src":"25959:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54636,"name":"uint256","nodeType":"ElementaryTypeName","src":"25959:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54641,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54638,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54613,"src":"25988:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54639,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26007:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25988:29:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25959:58:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54643,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26036:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26045:11:88","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"26036:20:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26061:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26036:26:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26064:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":54642,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26028:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26028:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54650,"nodeType":"ExpressionStatement","src":"26028:55:88"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54651,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26098:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54652,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26106:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26117:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"26106:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26098:25:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54668,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26241:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54669,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26249:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26260:5:88","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"26249:16:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26241:24:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54684,"nodeType":"IfStatement","src":"26237:138:88","trueBody":{"id":54683,"nodeType":"Block","src":"26267:108:88","statements":[{"expression":{"arguments":[{"id":54675,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26305:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54678,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26337:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54676,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26315:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26332:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26315:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26315:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54680,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26353:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54672,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26281:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26291:13:88","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"26281:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory,uint256) external"}},"id":54681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26281:83:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54682,"nodeType":"ExpressionStatement","src":"26281:83:88"}]}},"id":54685,"nodeType":"IfStatement","src":"26094:281:88","trueBody":{"id":54667,"nodeType":"Block","src":"26125:106:88","statements":[{"expression":{"arguments":[{"id":54660,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26173:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54663,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26205:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54661,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26183:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26200:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26183:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26183:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":54655,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26139:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26149:4:88","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"26139:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54658,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26161:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26139:33:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26139:81:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54666,"nodeType":"ExpressionStatement","src":"26139:81:88"}]}},{"assignments":[null,null,54687,null,54689],"declarations":[null,null,{"constant":false,"id":54687,"mutability":"mutable","name":"nonce","nameLocation":"26398:5:88","nodeType":"VariableDeclaration","scope":54721,"src":"26390:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54686,"name":"uint256","nodeType":"ElementaryTypeName","src":"26390:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54689,"mutability":"mutable","name":"circSupply","nameLocation":"26415:10:88","nodeType":"VariableDeclaration","scope":54721,"src":"26407:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54688,"name":"uint256","nodeType":"ElementaryTypeName","src":"26407:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54696,"initialValue":{"arguments":[{"arguments":[{"id":54693,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26447:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26439:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54691,"name":"address","nodeType":"ElementaryTypeName","src":"26439:7:88","typeDescriptions":{}}},"id":54694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26439:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54690,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"26429:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26429:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"26385:73:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54700,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26513:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54698,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26477:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26486:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"26477:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26477:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54702,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54622,"src":"26526:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26477:74:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":54704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26553:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":54697,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26469:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26469:105:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54706,"nodeType":"ExpressionStatement","src":"26469:105:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54708,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"26593:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54709,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54631,"src":"26602:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26593:22:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":54711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26617:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":54707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26585:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26585:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54713,"nodeType":"ExpressionStatement","src":"26585:51:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54715,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54689,"src":"26654:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54716,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54637,"src":"26668:18:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26654:32:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":54718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26688:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":54714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26646:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26646:66:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54720,"nodeType":"ExpressionStatement","src":"26646:66:88"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25548:4:88","parameters":{"id":54605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54599,"mutability":"mutable","name":"funderAddress","nameLocation":"25561:13:88","nodeType":"VariableDeclaration","scope":54722,"src":"25553:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54598,"name":"address","nodeType":"ElementaryTypeName","src":"25553:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54601,"mutability":"mutable","name":"fundAmount","nameLocation":"25584:10:88","nodeType":"VariableDeclaration","scope":54722,"src":"25576:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54600,"name":"uint256","nodeType":"ElementaryTypeName","src":"25576:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54604,"mutability":"mutable","name":"mode","nameLocation":"25607:4:88","nodeType":"VariableDeclaration","scope":54722,"src":"25596:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":54603,"nodeType":"UserDefinedTypeName","pathNode":{"id":54602,"name":"SupplyKind","nameLocations":["25596:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"25596:10:88"},"referencedDeclaration":50229,"src":"25596:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"25552:60:88"},"returnParameters":{"id":54606,"nodeType":"ParameterList","parameters":[],"src":"25620:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54753,"nodeType":"FunctionDefinition","src":"26725:243:88","nodes":[],"body":{"id":54752,"nodeType":"Block","src":"26793:175:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54732,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26812:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54729,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26803:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26806:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26803:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26803:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54734,"nodeType":"ExpressionStatement","src":"26803:26:88"},{"expression":{"arguments":[{"id":54738,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26847:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54739,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26865:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26865:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":54735,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26839:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26842:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26839:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26839:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54743,"nodeType":"ExpressionStatement","src":"26839:56:88"},{"expression":{"arguments":[{"id":54749,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54726,"src":"26954:6:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54744,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26905:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":54746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26915:4:88","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51605,"src":"26905:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":54748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54747,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26927:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"26905:48:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":54750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26905:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54751,"nodeType":"ExpressionStatement","src":"26905:56:88"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"26734:4:88","parameters":{"id":54727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54724,"mutability":"mutable","name":"validatorAddress","nameLocation":"26747:16:88","nodeType":"VariableDeclaration","scope":54753,"src":"26739:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54723,"name":"address","nodeType":"ElementaryTypeName","src":"26739:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54726,"mutability":"mutable","name":"pubkey","nameLocation":"26778:6:88","nodeType":"VariableDeclaration","scope":54753,"src":"26765:19:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54725,"name":"bytes","nodeType":"ElementaryTypeName","src":"26765:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26738:47:88"},"returnParameters":{"id":54728,"nodeType":"ParameterList","parameters":[],"src":"26793:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54800,"nodeType":"FunctionDefinition","src":"26974:298:88","nodes":[],"body":{"id":54799,"nodeType":"Block","src":"27042:230:88","nodes":[],"statements":[{"assignments":[54764],"declarations":[{"constant":false,"id":54764,"mutability":"mutable","name":"validators","nameLocation":"27069:10:88","nodeType":"VariableDeclaration","scope":54799,"src":"27052:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54762,"name":"address","nodeType":"ElementaryTypeName","src":"27052:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54763,"nodeType":"ArrayTypeName","src":"27052:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54770,"initialValue":{"arguments":[{"hexValue":"31","id":54768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27096:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27082:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54765,"name":"address","nodeType":"ElementaryTypeName","src":"27086:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54766,"nodeType":"ArrayTypeName","src":"27086:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27082:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27052:46:88"},{"expression":{"id":54775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54771,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27108:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54773,"indexExpression":{"hexValue":"30","id":54772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27119:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27108:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54774,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54755,"src":"27124:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27108:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54776,"nodeType":"ExpressionStatement","src":"27108:25:88"},{"assignments":[54781],"declarations":[{"constant":false,"id":54781,"mutability":"mutable","name":"privKeys","nameLocation":"27161:8:88","nodeType":"VariableDeclaration","scope":54799,"src":"27144:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54779,"name":"uint256","nodeType":"ElementaryTypeName","src":"27144:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54780,"nodeType":"ArrayTypeName","src":"27144:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54787,"initialValue":{"arguments":[{"hexValue":"31","id":54785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27186:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27172:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54782,"name":"uint256","nodeType":"ElementaryTypeName","src":"27176:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54783,"nodeType":"ArrayTypeName","src":"27176:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27172:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27144:44:88"},{"expression":{"id":54792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54788,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27198:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54790,"indexExpression":{"hexValue":"30","id":54789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27207:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27198:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54791,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54757,"src":"27212:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27198:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54793,"nodeType":"ExpressionStatement","src":"27198:21:88"},{"expression":{"arguments":[{"id":54795,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27244:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54796,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27256:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54794,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27230:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27230:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54798,"nodeType":"ExpressionStatement","src":"27230:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"26983:13:88","parameters":{"id":54758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54755,"mutability":"mutable","name":"validator","nameLocation":"27005:9:88","nodeType":"VariableDeclaration","scope":54800,"src":"26997:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54754,"name":"address","nodeType":"ElementaryTypeName","src":"26997:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54757,"mutability":"mutable","name":"privKey","nameLocation":"27024:7:88","nodeType":"VariableDeclaration","scope":54800,"src":"27016:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54756,"name":"uint256","nodeType":"ElementaryTypeName","src":"27016:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26996:36:88"},"returnParameters":{"id":54759,"nodeType":"ParameterList","parameters":[],"src":"27042:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54863,"nodeType":"FunctionDefinition","src":"27278:408:88","nodes":[],"body":{"id":54862,"nodeType":"Block","src":"27386:300:88","nodes":[],"statements":[{"assignments":[54815],"declarations":[{"constant":false,"id":54815,"mutability":"mutable","name":"validators","nameLocation":"27413:10:88","nodeType":"VariableDeclaration","scope":54862,"src":"27396:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54813,"name":"address","nodeType":"ElementaryTypeName","src":"27396:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54814,"nodeType":"ArrayTypeName","src":"27396:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54821,"initialValue":{"arguments":[{"hexValue":"32","id":54819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27440:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27426:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54816,"name":"address","nodeType":"ElementaryTypeName","src":"27430:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54817,"nodeType":"ArrayTypeName","src":"27430:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27426:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27396:46:88"},{"expression":{"id":54826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54822,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27452:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54824,"indexExpression":{"hexValue":"30","id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27463:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27452:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54825,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54802,"src":"27468:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27452:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54827,"nodeType":"ExpressionStatement","src":"27452:26:88"},{"expression":{"id":54832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54828,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27488:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54830,"indexExpression":{"hexValue":"31","id":54829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27499:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27488:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54831,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54806,"src":"27504:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27488:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54833,"nodeType":"ExpressionStatement","src":"27488:26:88"},{"assignments":[54838],"declarations":[{"constant":false,"id":54838,"mutability":"mutable","name":"privKeys","nameLocation":"27542:8:88","nodeType":"VariableDeclaration","scope":54862,"src":"27525:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54836,"name":"uint256","nodeType":"ElementaryTypeName","src":"27525:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54837,"nodeType":"ArrayTypeName","src":"27525:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54844,"initialValue":{"arguments":[{"hexValue":"32","id":54842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27567:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27553:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54839,"name":"uint256","nodeType":"ElementaryTypeName","src":"27557:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54840,"nodeType":"ArrayTypeName","src":"27557:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27553:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27525:44:88"},{"expression":{"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54845,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27579:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54847,"indexExpression":{"hexValue":"30","id":54846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27588:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27579:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54848,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54804,"src":"27593:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27579:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54850,"nodeType":"ExpressionStatement","src":"27579:22:88"},{"expression":{"id":54855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54851,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27611:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54853,"indexExpression":{"hexValue":"31","id":54852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27620:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27611:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54854,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54808,"src":"27625:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27611:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54856,"nodeType":"ExpressionStatement","src":"27611:22:88"},{"expression":{"arguments":[{"id":54858,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27658:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54859,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27670:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54857,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27644:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27644:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54861,"nodeType":"ExpressionStatement","src":"27644:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27287:13:88","parameters":{"id":54809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54802,"mutability":"mutable","name":"validator1","nameLocation":"27309:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27301:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54801,"name":"address","nodeType":"ElementaryTypeName","src":"27301:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54804,"mutability":"mutable","name":"privKey1","nameLocation":"27329:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27321:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54803,"name":"uint256","nodeType":"ElementaryTypeName","src":"27321:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54806,"mutability":"mutable","name":"validator2","nameLocation":"27347:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27339:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54805,"name":"address","nodeType":"ElementaryTypeName","src":"27339:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54808,"mutability":"mutable","name":"privKey2","nameLocation":"27367:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27359:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54807,"name":"uint256","nodeType":"ElementaryTypeName","src":"27359:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27300:76:88"},"returnParameters":{"id":54810,"nodeType":"ParameterList","parameters":[],"src":"27386:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54942,"nodeType":"FunctionDefinition","src":"27692:568:88","nodes":[],"body":{"id":54941,"nodeType":"Block","src":"27892:368:88","nodes":[],"statements":[{"assignments":[54882],"declarations":[{"constant":false,"id":54882,"mutability":"mutable","name":"validators","nameLocation":"27919:10:88","nodeType":"VariableDeclaration","scope":54941,"src":"27902:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54880,"name":"address","nodeType":"ElementaryTypeName","src":"27902:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54881,"nodeType":"ArrayTypeName","src":"27902:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54888,"initialValue":{"arguments":[{"hexValue":"33","id":54886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27946:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27932:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54883,"name":"address","nodeType":"ElementaryTypeName","src":"27936:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54884,"nodeType":"ArrayTypeName","src":"27936:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27932:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27902:46:88"},{"expression":{"id":54893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54889,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27958:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54891,"indexExpression":{"hexValue":"30","id":54890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27969:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27958:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54892,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54865,"src":"27974:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27958:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54894,"nodeType":"ExpressionStatement","src":"27958:26:88"},{"expression":{"id":54899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54895,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27994:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54897,"indexExpression":{"hexValue":"31","id":54896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28005:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27994:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54898,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54869,"src":"28010:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27994:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54900,"nodeType":"ExpressionStatement","src":"27994:26:88"},{"expression":{"id":54905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54901,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28030:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54903,"indexExpression":{"hexValue":"32","id":54902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28030:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54904,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54873,"src":"28046:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"28030:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54906,"nodeType":"ExpressionStatement","src":"28030:26:88"},{"assignments":[54911],"declarations":[{"constant":false,"id":54911,"mutability":"mutable","name":"privKeys","nameLocation":"28084:8:88","nodeType":"VariableDeclaration","scope":54941,"src":"28067:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54909,"name":"uint256","nodeType":"ElementaryTypeName","src":"28067:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54910,"nodeType":"ArrayTypeName","src":"28067:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54917,"initialValue":{"arguments":[{"hexValue":"33","id":54915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28109:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28095:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54912,"name":"uint256","nodeType":"ElementaryTypeName","src":"28099:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54913,"nodeType":"ArrayTypeName","src":"28099:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28095:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28067:44:88"},{"expression":{"id":54922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54918,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28121:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54920,"indexExpression":{"hexValue":"30","id":54919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28130:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28121:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54921,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54867,"src":"28135:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28121:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54923,"nodeType":"ExpressionStatement","src":"28121:22:88"},{"expression":{"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54924,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28153:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54926,"indexExpression":{"hexValue":"31","id":54925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28162:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28153:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54927,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54871,"src":"28167:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28153:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54929,"nodeType":"ExpressionStatement","src":"28153:22:88"},{"expression":{"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54930,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28185:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54932,"indexExpression":{"hexValue":"32","id":54931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28194:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28185:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54933,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54875,"src":"28199:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28185:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54935,"nodeType":"ExpressionStatement","src":"28185:22:88"},{"expression":{"arguments":[{"id":54937,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28232:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54938,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28244:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54936,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"28218:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28218:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54940,"nodeType":"ExpressionStatement","src":"28218:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27701:13:88","parameters":{"id":54876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54865,"mutability":"mutable","name":"validator1","nameLocation":"27732:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27724:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54864,"name":"address","nodeType":"ElementaryTypeName","src":"27724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54867,"mutability":"mutable","name":"privKey1","nameLocation":"27760:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27752:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54866,"name":"uint256","nodeType":"ElementaryTypeName","src":"27752:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54869,"mutability":"mutable","name":"validator2","nameLocation":"27786:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27778:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54868,"name":"address","nodeType":"ElementaryTypeName","src":"27778:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54871,"mutability":"mutable","name":"privKey2","nameLocation":"27814:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27806:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54870,"name":"uint256","nodeType":"ElementaryTypeName","src":"27806:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54873,"mutability":"mutable","name":"validator3","nameLocation":"27840:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27832:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54872,"name":"address","nodeType":"ElementaryTypeName","src":"27832:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54875,"mutability":"mutable","name":"privKey3","nameLocation":"27868:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27860:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54874,"name":"uint256","nodeType":"ElementaryTypeName","src":"27860:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27714:168:88"},"returnParameters":{"id":54877,"nodeType":"ParameterList","parameters":[],"src":"27892:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55093,"nodeType":"FunctionDefinition","src":"28266:1102:88","nodes":[],"body":{"id":55092,"nodeType":"Block","src":"28354:1014:88","nodes":[],"statements":[{"assignments":[54952],"declarations":[{"constant":false,"id":54952,"mutability":"mutable","name":"n","nameLocation":"28372:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28364:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54951,"name":"uint256","nodeType":"ElementaryTypeName","src":"28364:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54955,"initialValue":{"expression":{"id":54953,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"28376:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28387:6:88","memberName":"length","nodeType":"MemberAccess","src":"28376:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28364:29:88"},{"assignments":[54960],"declarations":[{"constant":false,"id":54960,"mutability":"mutable","name":"signatures","nameLocation":"28419:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28404:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":54958,"name":"bytes","nodeType":"ElementaryTypeName","src":"28404:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54959,"nodeType":"ArrayTypeName","src":"28404:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":54966,"initialValue":{"arguments":[{"id":54964,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"28444:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28432:11:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":54961,"name":"bytes","nodeType":"ElementaryTypeName","src":"28436:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54962,"nodeType":"ArrayTypeName","src":"28436:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28432:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28404:42:88"},{"assignments":[54968,null],"declarations":[{"constant":false,"id":54968,"mutability":"mutable","name":"nextConfigNum","nameLocation":"28465:13:88","nodeType":"VariableDeclaration","scope":55092,"src":"28458:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54967,"name":"uint64","nodeType":"ElementaryTypeName","src":"28458:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":54972,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54969,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28484:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28493:23:88","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50349,"src":"28484:32:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":54971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28484:34:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"28457:61:88"},{"assignments":[54974],"declarations":[{"constant":false,"id":54974,"mutability":"mutable","name":"h","nameLocation":"28537:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28529:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54973,"name":"uint256","nodeType":"ElementaryTypeName","src":"28529:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54982,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54975,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28541:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28550:28:88","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50477,"src":"28541:37:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28541:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54978,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28583:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28592:19:88","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50457,"src":"28583:28:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28583:30:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28541:72:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28529:84:88"},{"assignments":[54985],"declarations":[{"constant":false,"id":54985,"mutability":"mutable","name":"checkpoint","nameLocation":"28650:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28624:36:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":54984,"nodeType":"UserDefinedTypeName","pathNode":{"id":54983,"name":"BottomUpCheckpoint","nameLocations":["28624:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"28624:18:88"},"referencedDeclaration":49932,"src":"28624:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55007,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":54993,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28750:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28742:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54991,"name":"address","nodeType":"ElementaryTypeName","src":"28742:7:88","typeDescriptions":{}}},"id":54994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28742:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54987,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28706:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28715:9:88","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50279,"src":"28706:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28727:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"28706:35:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54996,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28788:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55000,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28835:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28824:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28828:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28824:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28824:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54997,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28814:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28814:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55003,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54968,"src":"28877:13:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28877:17:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":54986,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"28663:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49932_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28696:8:88","28775:11:88","28803:9:88","28852:23:88"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"28663:242:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"28624:281:88"},{"expression":{"arguments":[{"arguments":[{"id":55013,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28932:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28924:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55011,"name":"address","nodeType":"ElementaryTypeName","src":"28924:7:88","typeDescriptions":{}}},"id":55014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28924:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28944:9:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":55008,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28916:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28919:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28916:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55017,"nodeType":"ExpressionStatement","src":"28916:38:88"},{"assignments":[55019],"declarations":[{"constant":false,"id":55019,"mutability":"mutable","name":"hash","nameLocation":"28973:4:88","nodeType":"VariableDeclaration","scope":55092,"src":"28965:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28965:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55026,"initialValue":{"arguments":[{"arguments":[{"id":55023,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29001:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":55021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28990:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28994:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28990:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28990:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55020,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28980:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28980:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28965:48:88"},{"body":{"id":55062,"nodeType":"Block","src":"29056:140:88","statements":[{"assignments":[55038,55040,55042],"declarations":[{"constant":false,"id":55038,"mutability":"mutable","name":"v","nameLocation":"29077:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29071:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55037,"name":"uint8","nodeType":"ElementaryTypeName","src":"29071:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55040,"mutability":"mutable","name":"r","nameLocation":"29088:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29080:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29080:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55042,"mutability":"mutable","name":"s","nameLocation":"29099:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29091:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29091:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55050,"initialValue":{"arguments":[{"baseExpression":{"id":55045,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54948,"src":"29112:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55047,"indexExpression":{"id":55046,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29121:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29112:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55048,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55019,"src":"29125:4:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55043,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29104:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29107:4:88","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"29104:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":55049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29104:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"29070:60:88"},{"expression":{"id":55060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55051,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29144:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55053,"indexExpression":{"id":55052,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29155:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29144:13:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55056,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55040,"src":"29177:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55057,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55042,"src":"29180:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55058,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55038,"src":"29183:1:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29160:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29164:12:88","memberName":"encodePacked","nodeType":"MemberAccess","src":"29160:16:88","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29160:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"29144:41:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55061,"nodeType":"ExpressionStatement","src":"29144:41:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55031,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29044:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55032,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29048:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29044:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55063,"initializationExpression":{"assignments":[55028],"declarations":[{"constant":false,"id":55028,"mutability":"mutable","name":"i","nameLocation":"29037:1:88","nodeType":"VariableDeclaration","scope":55063,"src":"29029:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55027,"name":"uint256","nodeType":"ElementaryTypeName","src":"29029:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55030,"initialValue":{"hexValue":"30","id":55029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29029:13:88"},"loopExpression":{"expression":{"id":55035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29051:3:88","subExpression":{"id":55034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29051:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55036,"nodeType":"ExpressionStatement","src":"29051:3:88"},"nodeType":"ForStatement","src":"29024:172:88"},{"body":{"id":55090,"nodeType":"Block","src":"29238:124:88","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55077,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29261:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55079,"indexExpression":{"id":55078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29272:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29261:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55074,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29252:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29255:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"29252:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29252:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55081,"nodeType":"ExpressionStatement","src":"29252:23:88"},{"expression":{"arguments":[{"id":55085,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29316:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55086,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29328:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55087,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29340:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":55082,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"29289:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":55084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29299:16:88","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":51154,"src":"29289:26:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":55088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29289:62:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55089,"nodeType":"ExpressionStatement","src":"29289:62:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55068,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29226:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55069,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29230:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29226:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55091,"initializationExpression":{"assignments":[55065],"declarations":[{"constant":false,"id":55065,"mutability":"mutable","name":"i","nameLocation":"29219:1:88","nodeType":"VariableDeclaration","scope":55091,"src":"29211:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55064,"name":"uint256","nodeType":"ElementaryTypeName","src":"29211:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55067,"initialValue":{"hexValue":"30","id":55066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29223:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29211:13:88"},"loopExpression":{"expression":{"id":55072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29233:3:88","subExpression":{"id":55071,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29233:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55073,"nodeType":"ExpressionStatement","src":"29233:3:88"},"nodeType":"ForStatement","src":"29206:156:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"28275:13:88","parameters":{"id":54949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54945,"mutability":"mutable","name":"validators","nameLocation":"28306:10:88","nodeType":"VariableDeclaration","scope":55093,"src":"28289:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54943,"name":"address","nodeType":"ElementaryTypeName","src":"28289:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54944,"nodeType":"ArrayTypeName","src":"28289:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":54948,"mutability":"mutable","name":"privKeys","nameLocation":"28335:8:88","nodeType":"VariableDeclaration","scope":55093,"src":"28318:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54946,"name":"uint256","nodeType":"ElementaryTypeName","src":"28318:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54947,"nodeType":"ArrayTypeName","src":"28318:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"28288:56:88"},"returnParameters":{"id":54950,"nodeType":"ParameterList","parameters":[],"src":"28354:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55128,"nodeType":"FunctionDefinition","src":"29374:305:88","nodes":[],"body":{"id":55127,"nodeType":"Block","src":"29421:258:88","nodes":[],"statements":[{"assignments":[55099],"declarations":[{"constant":false,"id":55099,"mutability":"mutable","name":"expectedNonce","nameLocation":"29439:13:88","nodeType":"VariableDeclaration","scope":55127,"src":"29431:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55098,"name":"uint256","nodeType":"ElementaryTypeName","src":"29431:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55105,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55100,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29455:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29464:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29455:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29455:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29482:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29455:28:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"29431:52:88"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55113,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29555:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29559:6:88","memberName":"sender","nodeType":"MemberAccess","src":"29555:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55111,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"29533:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":55112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29550:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"29533:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":55115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29533:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":55106,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29493:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29503:7:88","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"29493:17:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55109,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55095,"src":"29518:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29493:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29493:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55117,"nodeType":"ExpressionStatement","src":"29493:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55119,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29585:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29594:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29585:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29585:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55122,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55099,"src":"29613:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29585:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29628:43:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":55118,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29577:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29577:95:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55126,"nodeType":"ExpressionStatement","src":"29577:95:88"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"29383:7:88","parameters":{"id":55096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55095,"mutability":"mutable","name":"releaseAmount","nameLocation":"29399:13:88","nodeType":"VariableDeclaration","scope":55128,"src":"29391:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55094,"name":"uint256","nodeType":"ElementaryTypeName","src":"29391:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29390:23:88"},"returnParameters":{"id":55097,"nodeType":"ParameterList","parameters":[],"src":"29421:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55183,"nodeType":"FunctionDefinition","src":"29685:536:88","nodes":[],"body":{"id":55182,"nodeType":"Block","src":"29754:467:88","nodes":[],"statements":[{"assignments":[55136],"declarations":[{"constant":false,"id":55136,"mutability":"mutable","name":"balanceBefore","nameLocation":"29772:13:88","nodeType":"VariableDeclaration","scope":55182,"src":"29764:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55135,"name":"uint256","nodeType":"ElementaryTypeName","src":"29764:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55139,"initialValue":{"expression":{"id":55137,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29788:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29802:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29788:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29764:45:88"},{"assignments":[null,55141,null,null,null],"declarations":[null,{"constant":false,"id":55141,"mutability":"mutable","name":"stakedBefore","nameLocation":"29831:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29823:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55140,"name":"uint256","nodeType":"ElementaryTypeName","src":"29823:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55145,"initialValue":{"arguments":[{"id":55143,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29863:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55142,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"29853:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29853:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29820:57:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55146,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29888:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29898:8:88","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"29888:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55149,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"29914:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29888:38:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29888:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55152,"nodeType":"ExpressionStatement","src":"29888:40:88"},{"assignments":[55154],"declarations":[{"constant":false,"id":55154,"mutability":"mutable","name":"balanceAfter","nameLocation":"29947:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29939:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55153,"name":"uint256","nodeType":"ElementaryTypeName","src":"29939:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55157,"initialValue":{"expression":{"id":55155,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29962:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29976:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29962:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29939:44:88"},{"assignments":[null,55159,null,null,null],"declarations":[null,{"constant":false,"id":55159,"mutability":"mutable","name":"stakedAfter","nameLocation":"30004:11:88","nodeType":"VariableDeclaration","scope":55182,"src":"29996:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55158,"name":"uint256","nodeType":"ElementaryTypeName","src":"29996:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55163,"initialValue":{"arguments":[{"id":55161,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"30035:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55160,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"30025:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30025:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29993:56:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55165,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55154,"src":"30068:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55166,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55136,"src":"30084:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55167,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30100:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30084:27:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30068:43:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30113:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":55164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30060:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30060:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55172,"nodeType":"ExpressionStatement","src":"30060:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55174,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55159,"src":"30152:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55175,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55141,"src":"30167:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55176,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30182:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30167:26:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30152:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30195:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30144:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30144:70:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55181,"nodeType":"ExpressionStatement","src":"30144:70:88"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"29694:8:88","parameters":{"id":55133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55130,"mutability":"mutable","name":"stakeAmount","nameLocation":"29711:11:88","nodeType":"VariableDeclaration","scope":55183,"src":"29703:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55129,"name":"uint256","nodeType":"ElementaryTypeName","src":"29703:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55132,"mutability":"mutable","name":"subnetAddress","nameLocation":"29732:13:88","nodeType":"VariableDeclaration","scope":55183,"src":"29724:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55131,"name":"address","nodeType":"ElementaryTypeName","src":"29724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29702:44:88"},"returnParameters":{"id":55134,"nodeType":"ParameterList","parameters":[],"src":"29754:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55268,"nodeType":"FunctionDefinition","src":"30227:813:88","nodes":[],"body":{"id":55267,"nodeType":"Block","src":"30322:718:88","nodes":[],"statements":[{"assignments":[55195],"declarations":[{"constant":false,"id":55195,"mutability":"mutable","name":"manager","nameLocation":"30352:7:88","nodeType":"VariableDeclaration","scope":55267,"src":"30332:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55194,"nodeType":"UserDefinedTypeName","pathNode":{"id":55193,"name":"GatewayManagerFacet","nameLocations":["30332:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"30332:19:88"},"referencedDeclaration":38870,"src":"30332:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55202,"initialValue":{"arguments":[{"arguments":[{"id":55199,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30390:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30382:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55197,"name":"address","nodeType":"ElementaryTypeName","src":"30382:7:88","typeDescriptions":{}}},"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30382:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55196,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"30362:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30362:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"30332:62:88"},{"expression":{"arguments":[{"hexValue":"30","id":55208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30441:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":55203,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55195,"src":"30405:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30413:8:88","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"30405:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55206,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30429:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"30405:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30405:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55210,"nodeType":"ExpressionStatement","src":"30405:38:88"},{"assignments":[55213,55215,55217,null,55219],"declarations":[{"constant":false,"id":55213,"mutability":"mutable","name":"id","nameLocation":"30471:2:88","nodeType":"VariableDeclaration","scope":55267,"src":"30455:18:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55212,"nodeType":"UserDefinedTypeName","pathNode":{"id":55211,"name":"SubnetID","nameLocations":["30455:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30455:8:88"},"referencedDeclaration":50077,"src":"30455:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55215,"mutability":"mutable","name":"stake","nameLocation":"30483:5:88","nodeType":"VariableDeclaration","scope":55267,"src":"30475:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55214,"name":"uint256","nodeType":"ElementaryTypeName","src":"30475:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55217,"mutability":"mutable","name":"topDownNonce","nameLocation":"30498:12:88","nodeType":"VariableDeclaration","scope":55267,"src":"30490:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55216,"name":"uint256","nodeType":"ElementaryTypeName","src":"30490:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55219,"mutability":"mutable","name":"circSupply","nameLocation":"30522:10:88","nodeType":"VariableDeclaration","scope":55267,"src":"30514:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55218,"name":"uint256","nodeType":"ElementaryTypeName","src":"30514:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55224,"initialValue":{"arguments":[{"id":55221,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30561:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55222,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30588:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55220,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"30536:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30536:64:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"30454:146:88"},{"assignments":[55227],"declarations":[{"constant":false,"id":55227,"mutability":"mutable","name":"parentNetwork","nameLocation":"30627:13:88","nodeType":"VariableDeclaration","scope":55267,"src":"30611:29:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55226,"nodeType":"UserDefinedTypeName","pathNode":{"id":55225,"name":"SubnetID","nameLocations":["30611:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30611:8:88"},"referencedDeclaration":50077,"src":"30611:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55228,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"30643:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30652:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"30643:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30643:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"30611:57:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55233,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55213,"src":"30700:2:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30703:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30700:9:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30700:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55238,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30744:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55236,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55227,"src":"30715:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30729:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"30715:28:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30759:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30715:50:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:52:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"30700:67:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30781:69:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":55232,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30679:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30679:181:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55245,"nodeType":"ExpressionStatement","src":"30679:181:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55247,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55215,"src":"30878:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55248,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30887:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30878:19:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30899:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55246,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30870:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30870:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55252,"nodeType":"ExpressionStatement","src":"30870:48:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55254,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55217,"src":"30936:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30952:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30936:17:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30955:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55253,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30928:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55259,"nodeType":"ExpressionStatement","src":"30928:46:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55261,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55219,"src":"30992:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31006:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30992:15:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31009:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30984:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30984:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55266,"nodeType":"ExpressionStatement","src":"30984:49:88"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"30236:16:88","parameters":{"id":55191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55185,"mutability":"mutable","name":"collateral","nameLocation":"30261:10:88","nodeType":"VariableDeclaration","scope":55268,"src":"30253:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55184,"name":"uint256","nodeType":"ElementaryTypeName","src":"30253:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55187,"mutability":"mutable","name":"subnetAddress","nameLocation":"30281:13:88","nodeType":"VariableDeclaration","scope":55268,"src":"30273:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55186,"name":"address","nodeType":"ElementaryTypeName","src":"30273:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55190,"mutability":"mutable","name":"gw","nameLocation":"30311:2:88","nodeType":"VariableDeclaration","scope":55268,"src":"30296:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55189,"nodeType":"UserDefinedTypeName","pathNode":{"id":55188,"name":"GatewayDiamond","nameLocations":["30296:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"30296:14:88"},"referencedDeclaration":36170,"src":"30296:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"30252:62:88"},"returnParameters":{"id":55192,"nodeType":"ParameterList","parameters":[],"src":"30322:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55282,"nodeType":"FunctionDefinition","src":"31046:150:88","nodes":[],"body":{"id":55281,"nodeType":"Block","src":"31120:76:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55276,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55270,"src":"31147:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55277,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55272,"src":"31159:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55278,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31174:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55275,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55268,"src":"31130:16:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31130:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55280,"nodeType":"ExpressionStatement","src":"31130:59:88"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"31055:14:88","parameters":{"id":55273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55270,"mutability":"mutable","name":"collateral","nameLocation":"31078:10:88","nodeType":"VariableDeclaration","scope":55282,"src":"31070:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55269,"name":"uint256","nodeType":"ElementaryTypeName","src":"31070:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55272,"mutability":"mutable","name":"subnetAddress","nameLocation":"31098:13:88","nodeType":"VariableDeclaration","scope":55282,"src":"31090:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55271,"name":"address","nodeType":"ElementaryTypeName","src":"31090:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31069:43:88"},"returnParameters":{"id":55274,"nodeType":"ParameterList","parameters":[],"src":"31120:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55352,"nodeType":"FunctionDefinition","src":"31202:541:88","nodes":[],"body":{"id":55351,"nodeType":"Block","src":"31356:387:88","nodes":[],"statements":[{"expression":{"id":55308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55301,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"31366:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55305,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31406:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55303,"name":"address","nodeType":"ElementaryTypeName","src":"31398:7:88","typeDescriptions":{}}},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55302,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"31378:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31378:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"31366:44:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55309,"nodeType":"ExpressionStatement","src":"31366:44:88"},{"expression":{"id":55317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55310,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31420:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55314,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31458:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31450:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55312,"name":"address","nodeType":"ElementaryTypeName","src":"31450:7:88","typeDescriptions":{}}},"id":55315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31450:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55311,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"31431:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31431:31:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"31420:42:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55318,"nodeType":"ExpressionStatement","src":"31420:42:88"},{"assignments":[55321],"declarations":[{"constant":false,"id":55321,"mutability":"mutable","name":"subnetId","nameLocation":"31489:8:88","nodeType":"VariableDeclaration","scope":55351,"src":"31473:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55320,"nodeType":"UserDefinedTypeName","pathNode":{"id":55319,"name":"SubnetID","nameLocations":["31473:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31473:8:88"},"referencedDeclaration":50077,"src":"31473:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55328,"initialValue":{"arguments":[{"id":55326,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55284,"src":"31541:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55322,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31500:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31509:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"31500:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31526:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"31500:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"31473:82:88"},{"assignments":[55331],"declarations":[{"constant":false,"id":55331,"mutability":"mutable","name":"subnet","nameLocation":"31580:6:88","nodeType":"VariableDeclaration","scope":55351,"src":"31566:20:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55330,"nodeType":"UserDefinedTypeName","pathNode":{"id":55329,"name":"Subnet","nameLocations":["31566:6:88"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"31566:6:88"},"referencedDeclaration":50091,"src":"31566:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55338,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55334,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55321,"src":"31606:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31615:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"31606:15:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31606:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55332,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31589:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31598:7:88","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"31589:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$50091_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":55337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31589:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"31566:58:88"},{"expression":{"components":[{"expression":{"id":55339,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31643:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31650:2:88","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"31643:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55341,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31654:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31661:5:88","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"31654:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55343,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31668:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31675:12:88","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"31668:19:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55345,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31689:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31696:20:88","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"31689:27:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55347,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31718:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31725:10:88","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"31718:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31642:94:88","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256)"}},"functionReturnParameters":55300,"id":55350,"nodeType":"Return","src":"31635:101:88"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"31211:11:88","parameters":{"id":55288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55284,"mutability":"mutable","name":"subnetAddress","nameLocation":"31240:13:88","nodeType":"VariableDeclaration","scope":55352,"src":"31232:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55283,"name":"address","nodeType":"ElementaryTypeName","src":"31232:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55287,"mutability":"mutable","name":"gw","nameLocation":"31278:2:88","nodeType":"VariableDeclaration","scope":55352,"src":"31263:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55286,"nodeType":"UserDefinedTypeName","pathNode":{"id":55285,"name":"GatewayDiamond","nameLocations":["31263:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"31263:14:88"},"referencedDeclaration":36170,"src":"31263:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"31222:64:88"},"returnParameters":{"id":55300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31303:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55290,"nodeType":"UserDefinedTypeName","pathNode":{"id":55289,"name":"SubnetID","nameLocations":["31303:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31303:8:88"},"referencedDeclaration":50077,"src":"31303:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31320:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55292,"name":"uint256","nodeType":"ElementaryTypeName","src":"31320:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31329:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55294,"name":"uint256","nodeType":"ElementaryTypeName","src":"31329:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31338:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55296,"name":"uint256","nodeType":"ElementaryTypeName","src":"31338:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31347:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55298,"name":"uint256","nodeType":"ElementaryTypeName","src":"31347:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31302:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55374,"nodeType":"FunctionDefinition","src":"31749:177:88","nodes":[],"body":{"id":55373,"nodeType":"Block","src":"31860:66:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55369,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55354,"src":"31889:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55370,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31904:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55368,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"31877:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31877:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":55367,"id":55372,"nodeType":"Return","src":"31870:49:88"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"31758:9:88","parameters":{"id":55355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55354,"mutability":"mutable","name":"subnetAddress","nameLocation":"31776:13:88","nodeType":"VariableDeclaration","scope":55374,"src":"31768:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55353,"name":"address","nodeType":"ElementaryTypeName","src":"31768:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31767:23:88"},"returnParameters":{"id":55367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31807:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55357,"nodeType":"UserDefinedTypeName","pathNode":{"id":55356,"name":"SubnetID","nameLocations":["31807:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31807:8:88"},"referencedDeclaration":50077,"src":"31807:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31824:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55359,"name":"uint256","nodeType":"ElementaryTypeName","src":"31824:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31833:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55361,"name":"uint256","nodeType":"ElementaryTypeName","src":"31833:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31842:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55363,"name":"uint256","nodeType":"ElementaryTypeName","src":"31842:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31851:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55365,"name":"uint256","nodeType":"ElementaryTypeName","src":"31851:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31806:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53038,"name":"Test","nameLocations":["8694:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"8694:4:88"},"id":53039,"nodeType":"InheritanceSpecifier","src":"8694:4:88"},{"baseName":{"id":53040,"name":"TestParams","nameLocations":["8700:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"8700:10:88"},"id":53041,"nodeType":"InheritanceSpecifier","src":"8700:10:88"},{"baseName":{"id":53042,"name":"TestRegistry","nameLocations":["8712:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":52747,"src":"8712:12:88"},"id":53043,"nodeType":"InheritanceSpecifier","src":"8712:12:88"},{"baseName":{"id":53044,"name":"TestSubnetActor","nameLocations":["8726:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":53037,"src":"8726:15:88"},"id":53045,"nodeType":"InheritanceSpecifier","src":"8726:15:88"},{"baseName":{"id":53046,"name":"TestGatewayActor","nameLocations":["8743:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":52912,"src":"8743:16:88"},"id":53047,"nodeType":"InheritanceSpecifier","src":"8743:16:88"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50887,52151,52279,52517,57957],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55375,52912,53037,52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"8671:19:88","scope":55376,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":88} \ No newline at end of file diff --git a/.out/IntegrationTestBase.sol/TestParams.json b/.out/IntegrationTestBase.sol/TestParams.json index b71c040e7..745d680d7 100644 --- a/.out/IntegrationTestBase.sol/TestParams.json +++ b/.out/IntegrationTestBase.sol/TestParams.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea2646970667358221220a00c85f9819966aadadbef2d46b357bfb718afcc44c64c7889449a20f29ccc1964736f6c63430008130033","sourceMap":"2094:1194:81:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220a00c85f9819966aadadbef2d46b357bfb718afcc44c64c7889449a20f29ccc1964736f6c63430008130033","sourceMap":"2094:1194:81:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/IntegrationTestBase.sol\":\"TestParams\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x1771042e416900276fc557c71365bcb7a470c46378109feae5813fd2df1f6cdd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5c02c7b8141cade572031ce857f0c66f8bf33ef9627c1c2c849532489334f095\",\"dweb:/ipfs/QmbM5n1rm9ZzoX9P22LT1xfaxqjVHCsMkPAactq5CYMjyt\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b\",\"dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21\",\"dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xe5c934c38631fc852b2d818a5234f6514c172311218b890a6fc5fd797f92dec9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://180a99f9ae7f52c07efd8d50c12562889661cc0a8d2e1f6e8dd10e8ef399193e\",\"dweb:/ipfs/QmNoscfa82rSeb6WXcFhj5GJ5iNmiMGmphQf3SLkbXZEeu\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0x4517792d005bd1b3e1a0bea06af04f20119222fffffbc6b310522d820be83369\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ef8859a2e7e61a15776c6110f4183fd62099a34a2bc16d33c09b37f220ce3673\",\"dweb:/ipfs/Qme38CS7qv8tCFWfYCMUcZvBnF63wf5E1pzGmG4kYjhoh1\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x5a8e1e7961e424e04b21c3aa85a2624e0996d7d401e8f9759239c09eac6c3cd2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d1083fcdfd0489cad22a516b7f551d08dea47d95a4a25f24b1aa3dd9b01a0501\",\"dweb:/ipfs/QmdxhTnQbWsxMCawiBL1mow2q8nXP5XPXr7KAbi5FxAK2W\"]},\"src/gateway/GatewayRouterFacet.sol\":{\"keccak256\":\"0x409518aa2f9f3df22be447bdede6c4bdff2535be7a5209c997725cd6fc77c00e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b337abc4fe880c91eca25d1312fe6d1f2f6f9e95d564a9aecaa553d215d1422b\",\"dweb:/ipfs/QmQoT3xpE9QJPvcmXdpSkkYsSWew6qBMqreTkEvk9pxn64\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14\",\"dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7\",\"dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2\",\"dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x96a4183d613f1cfefc19a6032361910d8d06ba68e14f2c26c7ed058ab9116bc4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://330a52b5ecb618b4846ecb04da3ee1109149228ccf05a2e098a87750ae4dd82e\",\"dweb:/ipfs/QmNY8kSJpHA238pR9dSbXFLw5D5WzfFj9pHqe8DQ2GmSuq\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c\",\"dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x7e36a89eb829f018acd7e8877a8a1b93bc939e87467700846741cda033432d99\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0f4db114142828d91b8ac120269a3de36390e63f3e5c0d27a821bdbad7d77f0\",\"dweb:/ipfs/QmYZAiaWWPATDrtF3MFoxdcBkmwMacFrjByFNb3hPeLDo6\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0x957c018167e9314422d52f4817e22b6a72f3d5651277579c62266375f95cc8aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e0b2f6f034bff2e50a6552b8963d7a193fd68da3aa38342127ec25ec1fd950b8\",\"dweb:/ipfs/QmcLWq8bWeU2D3wS9mVmxNixZa25uYg4WB63CfdrC1qboT\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x754f60bfb99884f3347c68fd063a18a8c80bcbdaf848391803d89654cdd97aef\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ed97511b421373b8e94222d825568f9c2a3a4e6ff2d9ab4f3f48fe1e9e3a8ba9\",\"dweb:/ipfs/QmadhEoTUMstJtS1M7Gzdz3Df1kEs1C7u7Mk2v4x6PDy7H\"]},\"test/mocks/SubnetActor.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestParams"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x1771042e416900276fc557c71365bcb7a470c46378109feae5813fd2df1f6cdd","urls":["bzz-raw://5c02c7b8141cade572031ce857f0c66f8bf33ef9627c1c2c849532489334f095","dweb:/ipfs/QmbM5n1rm9ZzoX9P22LT1xfaxqjVHCsMkPAactq5CYMjyt"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87","urls":["bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b","dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140","urls":["bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21","dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xe5c934c38631fc852b2d818a5234f6514c172311218b890a6fc5fd797f92dec9","urls":["bzz-raw://180a99f9ae7f52c07efd8d50c12562889661cc0a8d2e1f6e8dd10e8ef399193e","dweb:/ipfs/QmNoscfa82rSeb6WXcFhj5GJ5iNmiMGmphQf3SLkbXZEeu"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0x4517792d005bd1b3e1a0bea06af04f20119222fffffbc6b310522d820be83369","urls":["bzz-raw://ef8859a2e7e61a15776c6110f4183fd62099a34a2bc16d33c09b37f220ce3673","dweb:/ipfs/Qme38CS7qv8tCFWfYCMUcZvBnF63wf5E1pzGmG4kYjhoh1"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x5a8e1e7961e424e04b21c3aa85a2624e0996d7d401e8f9759239c09eac6c3cd2","urls":["bzz-raw://d1083fcdfd0489cad22a516b7f551d08dea47d95a4a25f24b1aa3dd9b01a0501","dweb:/ipfs/QmdxhTnQbWsxMCawiBL1mow2q8nXP5XPXr7KAbi5FxAK2W"],"license":"UNLICENSED"},"src/gateway/GatewayRouterFacet.sol":{"keccak256":"0x409518aa2f9f3df22be447bdede6c4bdff2535be7a5209c997725cd6fc77c00e","urls":["bzz-raw://b337abc4fe880c91eca25d1312fe6d1f2f6f9e95d564a9aecaa553d215d1422b","dweb:/ipfs/QmQoT3xpE9QJPvcmXdpSkkYsSWew6qBMqreTkEvk9pxn64"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3","urls":["bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14","dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d","urls":["bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7","dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c","urls":["bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2","dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x96a4183d613f1cfefc19a6032361910d8d06ba68e14f2c26c7ed058ab9116bc4","urls":["bzz-raw://330a52b5ecb618b4846ecb04da3ee1109149228ccf05a2e098a87750ae4dd82e","dweb:/ipfs/QmNY8kSJpHA238pR9dSbXFLw5D5WzfFj9pHqe8DQ2GmSuq"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad","urls":["bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c","dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x7e36a89eb829f018acd7e8877a8a1b93bc939e87467700846741cda033432d99","urls":["bzz-raw://d0f4db114142828d91b8ac120269a3de36390e63f3e5c0d27a821bdbad7d77f0","dweb:/ipfs/QmYZAiaWWPATDrtF3MFoxdcBkmwMacFrjByFNb3hPeLDo6"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0x957c018167e9314422d52f4817e22b6a72f3d5651277579c62266375f95cc8aa","urls":["bzz-raw://e0b2f6f034bff2e50a6552b8963d7a193fd68da3aa38342127ec25ec1fd950b8","dweb:/ipfs/QmcLWq8bWeU2D3wS9mVmxNixZa25uYg4WB63CfdrC1qboT"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x754f60bfb99884f3347c68fd063a18a8c80bcbdaf848391803d89654cdd97aef","urls":["bzz-raw://ed97511b421373b8e94222d825568f9c2a3a4e6ff2d9ab4f3f48fe1e9e3a8ba9","dweb:/ipfs/QmadhEoTUMstJtS1M7Gzdz3Df1kEs1C7u7Mk2v4x6PDy7H"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActor.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":54009,"exportedSymbols":{"AddressShouldBeValidator":[36936],"AlreadyRegisteredSubnet":[36938],"BatchAlreadyExists":[36948],"BatchNotCreated":[36956],"BatchWithNoMessages":[36976],"BottomUpCheckpoint":[48410],"CannotConfirmFutureChanges":[36940],"CannotFindSubnet":[37088],"CannotReleaseZero":[36942],"CannotSendCrossMsgToItself":[36944],"CheckpointAlreadyExists":[36946],"CheckpointNotCreated":[36954],"CollateralIsZero":[36958],"ConsensusType":[36918],"CrossMsg":[48452],"CrossMsgHelper":[40328],"DSTest":[3720],"DiamondCutFacet":[36477],"DiamondLoupeFacet":[36914],"DuplicatedGenesisValidator":[37098],"EMPTY_BYTES":[36435],"EmptyAddress":[36960],"FacetCannotBeZero":[37084],"FailedAddIncompleteQuorum":[36962],"FailedAddSignatory":[36964],"FailedRemoveIncompleteQuorum":[36966],"FilAddress":[1428],"FvmAddress":[48476],"FvmAddressHelper":[40509],"GatewayCannotBeZero":[36968],"GatewayDiamond":[35759],"GatewayGetterFacet":[37869],"GatewayManagerFacet":[38359],"GatewayMessengerFacet":[38674],"GatewayRouterFacet":[39706],"IDiamond":[39732],"IPCAddress":[48687],"IntegrationTestBase":[54008],"InvalidActorAddress":[36970],"InvalidBatchEpoch":[36974],"InvalidBatchSource":[36980],"InvalidCheckpointEpoch":[36972],"InvalidCheckpointSource":[36978],"InvalidCollateral":[36984],"InvalidConfigurationNumber":[36986],"InvalidCrossMsgDstSubnet":[36988],"InvalidCrossMsgFromSubnet":[36990],"InvalidCrossMsgNonce":[36992],"InvalidCrossMsgValue":[36994],"InvalidFederationPayload":[37096],"InvalidMajorityPercentage":[36996],"InvalidPowerScale":[36998],"InvalidPublicKeyLength":[37010],"InvalidRetentionHeight":[37000],"InvalidSignature":[37002],"InvalidSignatureErr":[37006],"InvalidSignatureLength":[37008],"InvalidSubmissionPeriod":[37012],"InvalidSubnet":[37014],"InvalidSubnetActor":[36982],"METHOD_SEND":[36441],"MaxMsgsPerBatchExceeded":[36950],"MethodNotAllowed":[37094],"NoCollateralToWithdraw":[37016],"NoRewardToWithdraw":[37018],"NoValidatorsInSubnet":[37020],"NotAllValidatorsHaveLeft":[37022],"NotAuthorized":[37026],"NotEmptySubnetCircSupply":[37028],"NotEnoughBalance":[37030],"NotEnoughBalanceForRewards":[37032],"NotEnoughCollateral":[37034],"NotEnoughFee":[37036],"NotEnoughFunds":[37038],"NotEnoughFundsToRelease":[37040],"NotEnoughGenesisValidators":[37100],"NotEnoughSubnetCircSupply":[37042],"NotEnoughValidatorsInSubnet":[37044],"NotGateway":[37046],"NotOwnerOfPublicKey":[37048],"NotRegisteredSubnet":[37050],"NotStakedBefore":[37052],"NotSystemActor":[37054],"NotValidator":[37058],"OldConfigurationNumber":[37060],"PQDoesNotContainAddress":[37062],"PQEmpty":[37064],"ParentFinality":[48396],"ParentFinalityAlreadyCommitted":[37066],"PermissionMode":[48648],"PostboxNotExist":[37068],"QuorumAlreadyProcessed":[36952],"RegisterSubnetFacet":[51075],"SignatureReplay":[37070],"Status":[36932],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[48469],"StorableMsgHelper":[46265],"Subnet":[48574],"SubnetActorDiamond":[36177],"SubnetActorGetterFacet":[49325],"SubnetActorManagerFacet":[50947],"SubnetActorManagerFacetMock":[56069],"SubnetAlreadyBootstrapped":[37082],"SubnetAlreadyKilled":[37072],"SubnetGetterFacet":[51313],"SubnetID":[48557],"SubnetIDHelper":[46876],"SubnetNotActive":[37074],"SubnetNotFound":[37076],"SubnetRegistryDiamond":[36415],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[51670],"TestParams":[51469],"TestRegistry":[51537],"TestSubnetActor":[51792],"TestUtils":[55168],"UnknownSubnet":[37090],"Validator":[48694],"Vm":[14222],"WithdrawExceedingCollateral":[37078],"WrongGateway":[37086],"ZeroMembershipWeight":[37080],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:29281:81","nodes":[{"id":51315,"nodeType":"PragmaDirective","src":"46:23:81","nodes":[],"literals":["solidity","0.8",".19"]},{"id":51316,"nodeType":"ImportDirective","src":"71:28:81","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":51317,"nodeType":"ImportDirective","src":"100:36:81","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":51318,"nodeType":"ImportDirective","src":"137:37:81","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":37101,"symbolAliases":[],"unitAlias":""},{"id":51321,"nodeType":"ImportDirective","src":"176:72:81","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36442,"symbolAliases":[{"foreign":{"id":51319,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36435,"src":"184:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51320,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"197:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51323,"nodeType":"ImportDirective","src":"249:61:81","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":51322,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"257:13:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51325,"nodeType":"ImportDirective","src":"311:47:81","nodes":[],"absolutePath":"src/enums/Status.sol","file":"../src/enums/Status.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36933,"symbolAliases":[{"foreign":{"id":51324,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"319:6:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51327,"nodeType":"ImportDirective","src":"359:56:81","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":39733,"symbolAliases":[{"foreign":{"id":51326,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"367:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51332,"nodeType":"ImportDirective","src":"416:102:81","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":51328,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"424:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51329,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"434:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51330,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"454:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51331,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"467:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51334,"nodeType":"ImportDirective","src":"519:57:81","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":48484,"symbolAliases":[{"foreign":{"id":51333,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"527:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51341,"nodeType":"ImportDirective","src":"577:114:81","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":51335,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"585:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51336,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"595:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51337,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"611:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51338,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48574,"src":"627:6:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51339,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"635:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51340,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"647:9:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51343,"nodeType":"ImportDirective","src":"692:61:81","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":46877,"symbolAliases":[{"foreign":{"id":51342,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46876,"src":"700:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51345,"nodeType":"ImportDirective","src":"754:65:81","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":40510,"symbolAliases":[{"foreign":{"id":51344,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"762:16:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51347,"nodeType":"ImportDirective","src":"820:61:81","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":40329,"symbolAliases":[{"foreign":{"id":51346,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40328,"src":"828:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51349,"nodeType":"ImportDirective","src":"882:67:81","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":46266,"symbolAliases":[{"foreign":{"id":51348,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"890:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51351,"nodeType":"ImportDirective","src":"950:56:81","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":51350,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"958:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51353,"nodeType":"ImportDirective","src":"1007:57:81","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":35760,"symbolAliases":[{"foreign":{"id":51352,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35759,"src":"1015:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51355,"nodeType":"ImportDirective","src":"1065:65:81","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36178,"symbolAliases":[{"foreign":{"id":51354,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"1073:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51357,"nodeType":"ImportDirective","src":"1131:73:81","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":37870,"symbolAliases":[{"foreign":{"id":51356,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"1139:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51359,"nodeType":"ImportDirective","src":"1205:79:81","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":38675,"symbolAliases":[{"foreign":{"id":51358,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38674,"src":"1213:21:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51361,"nodeType":"ImportDirective","src":"1285:75:81","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":38360,"symbolAliases":[{"foreign":{"id":51360,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"1293:19:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51363,"nodeType":"ImportDirective","src":"1361:73:81","nodes":[],"absolutePath":"src/gateway/GatewayRouterFacet.sol","file":"../src/gateway/GatewayRouterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":39707,"symbolAliases":[{"foreign":{"id":51362,"name":"GatewayRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39706,"src":"1369:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51365,"nodeType":"ImportDirective","src":"1435:68:81","nodes":[],"absolutePath":"test/mocks/SubnetActor.sol","file":"./mocks/SubnetActor.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":56070,"symbolAliases":[{"foreign":{"id":51364,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56069,"src":"1443:27:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51367,"nodeType":"ImportDirective","src":"1504:82:81","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":50948,"symbolAliases":[{"foreign":{"id":51366,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"1512:23:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51369,"nodeType":"ImportDirective","src":"1587:80:81","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":49326,"symbolAliases":[{"foreign":{"id":51368,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"1595:22:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51371,"nodeType":"ImportDirective","src":"1668:71:81","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36416,"symbolAliases":[{"foreign":{"id":51370,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36415,"src":"1676:21:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51373,"nodeType":"ImportDirective","src":"1740:82:81","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":51076,"symbolAliases":[{"foreign":{"id":51372,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51075,"src":"1748:19:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51375,"nodeType":"ImportDirective","src":"1823:78:81","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":51314,"symbolAliases":[{"foreign":{"id":51374,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51313,"src":"1831:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51377,"nodeType":"ImportDirective","src":"1902:71:81","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36915,"symbolAliases":[{"foreign":{"id":51376,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"1910:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51379,"nodeType":"ImportDirective","src":"1974:67:81","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36478,"symbolAliases":[{"foreign":{"id":51378,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"1982:15:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51381,"nodeType":"ImportDirective","src":"2042:50:81","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":55169,"symbolAliases":[{"foreign":{"id":51380,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"2050:9:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51469,"nodeType":"ContractDefinition","src":"2094:1194:81","nodes":[{"id":51388,"nodeType":"VariableDeclaration","src":"2120:44:81","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2136:9:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51382,"name":"uint64","nodeType":"ElementaryTypeName","src":"2120:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":51385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2153:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":51384,"name":"uint64","nodeType":"ElementaryTypeName","src":"2153:6:81","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":51383,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2148:4:81","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":51386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2148:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":51387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2161:3:81","memberName":"max","nodeType":"MemberAccess","src":"2148:16:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":51394,"nodeType":"VariableDeclaration","src":"2170:91:81","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2187:20:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51389,"name":"address","nodeType":"ElementaryTypeName","src":"2170:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":51392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2218:42:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2210:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51390,"name":"address","nodeType":"ElementaryTypeName","src":"2210:7:81","typeDescriptions":{}}},"id":51393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2210:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51397,"nodeType":"VariableDeclaration","src":"2267:42:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2283:22:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51395,"name":"uint64","nodeType":"ElementaryTypeName","src":"2267:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":51396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2308:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":51400,"nodeType":"VariableDeclaration","src":"2315:54:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2332:27:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51398,"name":"uint256","nodeType":"ElementaryTypeName","src":"2315:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":51399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2362:7:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":51403,"nodeType":"VariableDeclaration","src":"2375:47:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2390:27:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":51401,"name":"uint8","nodeType":"ElementaryTypeName","src":"2375:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":51402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2420:2:81","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":51406,"nodeType":"VariableDeclaration","src":"2428:51:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"2444:25:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51404,"name":"uint64","nodeType":"ElementaryTypeName","src":"2428:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":51405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2472:7:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":51409,"nodeType":"VariableDeclaration","src":"2485:46:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"2501:25:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51407,"name":"uint64","nodeType":"ElementaryTypeName","src":"2485:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":51408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2529:2:81","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":51412,"nodeType":"VariableDeclaration","src":"2537:44:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"2553:16:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51410,"name":"string","nodeType":"ElementaryTypeName","src":"2537:6:81","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":51411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2572:9:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":51415,"nodeType":"VariableDeclaration","src":"2587:36:81","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"2602:7:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":51413,"name":"bytes","nodeType":"ElementaryTypeName","src":"2587:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":51414,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36435,"src":"2612:11:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":51418,"nodeType":"VariableDeclaration","src":"2629:48:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"2646:21:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51416,"name":"uint256","nodeType":"ElementaryTypeName","src":"2629:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":51417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2670:7:81","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":51421,"nodeType":"VariableDeclaration","src":"2683:49:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"2700:22:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51419,"name":"uint256","nodeType":"ElementaryTypeName","src":"2683:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":51420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2725:7:81","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":51427,"nodeType":"VariableDeclaration","src":"2738:52:81","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"2755:21:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51422,"name":"address","nodeType":"ElementaryTypeName","src":"2738:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":51425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2787:2:81","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":51424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2779:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51423,"name":"address","nodeType":"ElementaryTypeName","src":"2779:7:81","typeDescriptions":{}}},"id":51426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51433,"nodeType":"VariableDeclaration","src":"2796:54:81","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"2813:23:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51428,"name":"address","nodeType":"ElementaryTypeName","src":"2796:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":51431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2847:2:81","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":51430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2839:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51429,"name":"address","nodeType":"ElementaryTypeName","src":"2839:7:81","typeDescriptions":{}}},"id":51432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2839:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51438,"nodeType":"VariableDeclaration","src":"2856:57:81","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"2872:9:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51434,"name":"uint64","nodeType":"ElementaryTypeName","src":"2856:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":51437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":51435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2884:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":51436,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51409,"src":"2888:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2884:29:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":51441,"nodeType":"VariableDeclaration","src":"2919:50:81","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"2936:23:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51439,"name":"uint256","nodeType":"ElementaryTypeName","src":"2919:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":51440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2962:7:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":51444,"nodeType":"VariableDeclaration","src":"2975:53:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"2991:31:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":51442,"name":"uint16","nodeType":"ElementaryTypeName","src":"2975:6:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":51443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3025:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":51447,"nodeType":"VariableDeclaration","src":"3034:38:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3048:19:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":51445,"name":"int8","nodeType":"ElementaryTypeName","src":"3034:4:81","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":51446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3070:2:81","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":51450,"nodeType":"VariableDeclaration","src":"3078:37:81","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3094:15:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51448,"name":"uint64","nodeType":"ElementaryTypeName","src":"3078:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":51449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3112:3:81","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":51456,"nodeType":"VariableDeclaration","src":"3121:45:81","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3138:15:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51451,"name":"address","nodeType":"ElementaryTypeName","src":"3121:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":51454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3164:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":51453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3156:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51452,"name":"address","nodeType":"ElementaryTypeName","src":"3156:7:81","typeDescriptions":{}}},"id":51455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3156:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51462,"nodeType":"VariableDeclaration","src":"3172:57:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3189:24:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51457,"name":"address","nodeType":"ElementaryTypeName","src":"3172:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":51460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3224:4:81","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":51459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3216:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51458,"name":"address","nodeType":"ElementaryTypeName","src":"3216:7:81","typeDescriptions":{}}},"id":51461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3216:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51468,"nodeType":"VariableDeclaration","src":"3235:50:81","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3252:19:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51463,"name":"address","nodeType":"ElementaryTypeName","src":"3235:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":51466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3282:2:81","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":51465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3274:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51464,"name":"address","nodeType":"ElementaryTypeName","src":"3274:7:81","typeDescriptions":{}}},"id":51467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3274:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51469],"name":"TestParams","nameLocation":"2103:10:81","scope":54009,"usedErrors":[]},{"id":51537,"nodeType":"ContractDefinition","src":"3290:820:81","nodes":[{"id":51476,"nodeType":"VariableDeclaration","src":"3338:37:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3347:28:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51474,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3338:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51475,"nodeType":"ArrayTypeName","src":"3338:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51479,"nodeType":"VariableDeclaration","src":"3381:43:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3390:34:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51477,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3381:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51478,"nodeType":"ArrayTypeName","src":"3381:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51482,"nodeType":"VariableDeclaration","src":"3430:32:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"3439:23:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51480,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3430:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51481,"nodeType":"ArrayTypeName","src":"3430:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51485,"nodeType":"VariableDeclaration","src":"3468:32:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"3477:23:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51483,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3468:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51484,"nodeType":"ArrayTypeName","src":"3468:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51488,"nodeType":"VariableDeclaration","src":"3507:37:81","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"3529:15:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":51487,"nodeType":"UserDefinedTypeName","pathNode":{"id":51486,"name":"SubnetRegistryDiamond","nameLocations":["3507:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"3507:21:81"},"referencedDeclaration":36415,"src":"3507:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":51491,"nodeType":"VariableDeclaration","src":"3550:32:81","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"3568:14:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":51490,"nodeType":"UserDefinedTypeName","pathNode":{"id":51489,"name":"DiamondLoupeFacet","nameLocations":["3550:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"3550:17:81"},"referencedDeclaration":36914,"src":"3550:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":51494,"nodeType":"VariableDeclaration","src":"3588:30:81","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"3604:14:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":51493,"nodeType":"UserDefinedTypeName","pathNode":{"id":51492,"name":"DiamondCutFacet","nameLocations":["3588:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"3588:15:81"},"referencedDeclaration":36477,"src":"3588:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":51497,"nodeType":"VariableDeclaration","src":"3624:39:81","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"3644:19:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":51496,"nodeType":"UserDefinedTypeName","pathNode":{"id":51495,"name":"RegisterSubnetFacet","nameLocations":["3624:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"3624:19:81"},"referencedDeclaration":51075,"src":"3624:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":51500,"nodeType":"VariableDeclaration","src":"3669:43:81","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"3687:25:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"},"typeName":{"id":51499,"nodeType":"UserDefinedTypeName","pathNode":{"id":51498,"name":"SubnetGetterFacet","nameLocations":["3669:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"3669:17:81"},"referencedDeclaration":51313,"src":"3669:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":51536,"nodeType":"FunctionDefinition","src":"3719:389:81","nodes":[],"body":{"id":51535,"nodeType":"Block","src":"3733:375:81","nodes":[],"statements":[{"expression":{"id":51509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51503,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51476,"src":"3743:28:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51506,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3802:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"52656769737465725375626e65744661636574","id":51507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3806:21:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":51504,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"3774:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3784:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"3774:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3774:54:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"3743:85:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51510,"nodeType":"ExpressionStatement","src":"3743:85:81"},{"expression":{"id":51517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51511,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51479,"src":"3838:34:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51514,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3903:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744765747465724661636574","id":51515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3907:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":51512,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"3875:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3885:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"3875:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3875:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"3838:89:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51518,"nodeType":"ExpressionStatement","src":"3838:89:81"},{"expression":{"id":51525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51519,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51482,"src":"3937:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51522,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3991:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644375744661636574","id":51523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3995:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":51520,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"3963:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3973:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"3963:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3963:50:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"3937:76:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51526,"nodeType":"ExpressionStatement","src":"3937:76:81"},{"expression":{"id":51533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51527,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51485,"src":"4023:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51530,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4077:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644c6f7570654661636574","id":51531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4081:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":51528,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4049:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4059:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4049:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4023:78:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51534,"nodeType":"ExpressionStatement","src":"4023:78:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51501,"nodeType":"ParameterList","parameters":[],"src":"3730:2:81"},"returnParameters":{"id":51502,"nodeType":"ParameterList","parameters":[],"src":"3733:0:81"},"scope":51537,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":51470,"name":"Test","nameLocations":["3315:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3315:4:81"},"id":51471,"nodeType":"InheritanceSpecifier","src":"3315:4:81"},{"baseName":{"id":51472,"name":"TestParams","nameLocations":["3321:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"3321:10:81"},"id":51473,"nodeType":"InheritanceSpecifier","src":"3321:10:81"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51537,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3299:12:81","scope":54009,"usedErrors":[]},{"id":51670,"nodeType":"ContractDefinition","src":"4112:1676:81","nodes":[{"id":51544,"nodeType":"VariableDeclaration","src":"4164:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwRouterSelectors","nameLocation":"4173:17:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51542,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4164:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51543,"nodeType":"ArrayTypeName","src":"4164:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51547,"nodeType":"VariableDeclaration","src":"4196:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4205:18:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51545,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4196:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51546,"nodeType":"ArrayTypeName","src":"4196:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51550,"nodeType":"VariableDeclaration","src":"4229:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4238:17:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51548,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4229:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51549,"nodeType":"ArrayTypeName","src":"4229:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51553,"nodeType":"VariableDeclaration","src":"4261:29:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"4270:20:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51551,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4261:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51552,"nodeType":"ArrayTypeName","src":"4261:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51556,"nodeType":"VariableDeclaration","src":"4296:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"4305:17:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51554,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4296:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51555,"nodeType":"ArrayTypeName","src":"4296:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51559,"nodeType":"VariableDeclaration","src":"4328:25:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"4337:16:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51557,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4328:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51558,"nodeType":"ArrayTypeName","src":"4328:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51562,"nodeType":"VariableDeclaration","src":"4360:29:81","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"4375:14:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":51561,"nodeType":"UserDefinedTypeName","pathNode":{"id":51560,"name":"GatewayDiamond","nameLocations":["4360:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"4360:14:81"},"referencedDeclaration":35759,"src":"4360:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":51565,"nodeType":"VariableDeclaration","src":"4395:29:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"4415:9:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"},"typeName":{"id":51564,"nodeType":"UserDefinedTypeName","pathNode":{"id":51563,"name":"GatewayManagerFacet","nameLocations":["4395:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"4395:19:81"},"referencedDeclaration":38359,"src":"4395:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":51568,"nodeType":"VariableDeclaration","src":"4430:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"4449:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"},"typeName":{"id":51567,"nodeType":"UserDefinedTypeName","pathNode":{"id":51566,"name":"GatewayGetterFacet","nameLocations":["4430:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":37869,"src":"4430:18:81"},"referencedDeclaration":37869,"src":"4430:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":51571,"nodeType":"VariableDeclaration","src":"4463:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwRouter","nameLocation":"4482:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"},"typeName":{"id":51570,"nodeType":"UserDefinedTypeName","pathNode":{"id":51569,"name":"GatewayRouterFacet","nameLocations":["4463:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":39706,"src":"4463:18:81"},"referencedDeclaration":39706,"src":"4463:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"visibility":"internal"},{"id":51574,"nodeType":"VariableDeclaration","src":"4496:33:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"4518:11:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":51573,"nodeType":"UserDefinedTypeName","pathNode":{"id":51572,"name":"GatewayMessengerFacet","nameLocations":["4496:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":38674,"src":"4496:21:81"},"referencedDeclaration":38674,"src":"4496:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":51577,"nodeType":"VariableDeclaration","src":"4535:24:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"4551:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":51576,"nodeType":"UserDefinedTypeName","pathNode":{"id":51575,"name":"DiamondCutFacet","nameLocations":["4535:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"4535:15:81"},"referencedDeclaration":36477,"src":"4535:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":51580,"nodeType":"VariableDeclaration","src":"4565:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"4583:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":51579,"nodeType":"UserDefinedTypeName","pathNode":{"id":51578,"name":"DiamondLoupeFacet","nameLocations":["4565:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"4565:17:81"},"referencedDeclaration":36914,"src":"4565:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":51632,"nodeType":"FunctionDefinition","src":"4598:522:81","nodes":[],"body":{"id":51631,"nodeType":"Block","src":"4612:508:81","nodes":[],"statements":[{"expression":{"id":51589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51583,"name":"gwRouterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51544,"src":"4622:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51586,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4670:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"47617465776179526f757465724661636574","id":51587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4674:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_47c9e89e207c1506806062b80d03800461672df762dd01e4466ff0c24375e91c","typeString":"literal_string \"GatewayRouterFacet\""},"value":"GatewayRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_47c9e89e207c1506806062b80d03800461672df762dd01e4466ff0c24375e91c","typeString":"literal_string \"GatewayRouterFacet\""}],"expression":{"id":51584,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4642:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4652:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4642:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4642:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4622:73:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51590,"nodeType":"ExpressionStatement","src":"4622:73:81"},{"expression":{"id":51597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51591,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51550,"src":"4705:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51594,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4753:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"476174657761794765747465724661636574","id":51595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4757:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":51592,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4725:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4735:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4725:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4725:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4705:73:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51598,"nodeType":"ExpressionStatement","src":"4705:73:81"},{"expression":{"id":51605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51599,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51547,"src":"4788:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51602,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4837:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"476174657761794d616e616765724661636574","id":51603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4841:21:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":51600,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4809:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4819:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4809:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4809:54:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4788:75:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51606,"nodeType":"ExpressionStatement","src":"4788:75:81"},{"expression":{"id":51613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51607,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"4873:20:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51610,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4924:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"476174657761794d657373656e6765724661636574","id":51611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4928:23:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":51608,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4896:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4906:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4896:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4896:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4873:79:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51614,"nodeType":"ExpressionStatement","src":"4873:79:81"},{"expression":{"id":51621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51615,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51556,"src":"4962:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51618,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5010:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644375744661636574","id":51619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5014:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":51616,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4982:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4992:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4982:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4982:50:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4962:70:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51622,"nodeType":"ExpressionStatement","src":"4962:70:81"},{"expression":{"id":51629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51623,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51559,"src":"5042:16:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51626,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5089:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644c6f7570654661636574","id":51627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5093:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":51624,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"5061:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5071:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"5061:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5061:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5042:71:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51630,"nodeType":"ExpressionStatement","src":"5042:71:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51581,"nodeType":"ParameterList","parameters":[],"src":"4609:2:81"},"returnParameters":{"id":51582,"nodeType":"ParameterList","parameters":[],"src":"4612:0:81"},"scope":51670,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51669,"nodeType":"FunctionDefinition","src":"5126:660:81","nodes":[],"body":{"id":51668,"nodeType":"Block","src":"5230:556:81","nodes":[],"statements":[{"assignments":[51642],"declarations":[{"constant":false,"id":51642,"mutability":"mutable","name":"params","nameLocation":"5280:6:81","nodeType":"VariableDeclaration","scope":51668,"src":"5240:46:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51641,"nodeType":"UserDefinedTypeName","pathNode":{"id":51640,"name":"GatewayDiamond.ConstructorParams","nameLocations":["5240:14:81","5255:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"5240:32:81"},"referencedDeclaration":35456,"src":"5240:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51665,"initialValue":{"arguments":[{"arguments":[{"id":51646,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51450,"src":"5365:15:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":51650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5403:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5389:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":51647,"name":"address","nodeType":"ElementaryTypeName","src":"5393:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51648,"nodeType":"ArrayTypeName","src":"5393:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":51651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":51645,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"5349:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":51652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5359:4:81","5382:5:81"],"names":["root","route"],"nodeType":"FunctionCall","src":"5349:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":51653,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51409,"src":"5442:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51654,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"5489:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":51655,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"5539:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51656,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51403,"src":"5598:27:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":51661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5674:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5658:15:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":51658,"nodeType":"UserDefinedTypeName","pathNode":{"id":51657,"name":"Validator","nameLocations":["5662:9:81"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"5662:9:81"},"referencedDeclaration":48694,"src":"5662:9:81","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"id":51659,"nodeType":"ArrayTypeName","src":"5662:11:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":51662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5658:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":51663,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51444,"src":"5713:31:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":51643,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35759,"src":"5289:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$35759_$","typeString":"type(contract GatewayDiamond)"}},"id":51644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5304:17:81","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35456,"src":"5289:32:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35456_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":51664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5336:11:81","5421:19:81","5481:6:81","5524:13:81","5578:18:81","5639:17:81","5690:21:81"],"names":["networkName","bottomUpCheckPeriod","msgFee","minCollateral","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"5289:466:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"5240:515:81"},{"expression":{"id":51666,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51642,"src":"5773:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":51637,"id":51667,"nodeType":"Return","src":"5766:13:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"5135:20:81","parameters":{"id":51633,"nodeType":"ParameterList","parameters":[],"src":"5155:2:81"},"returnParameters":{"id":51637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51669,"src":"5189:39:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51635,"nodeType":"UserDefinedTypeName","pathNode":{"id":51634,"name":"GatewayDiamond.ConstructorParams","nameLocations":["5189:14:81","5204:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"5189:32:81"},"referencedDeclaration":35456,"src":"5189:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"5188:41:81"},"scope":51670,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":51538,"name":"Test","nameLocations":["4141:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4141:4:81"},"id":51539,"nodeType":"InheritanceSpecifier","src":"4141:4:81"},{"baseName":{"id":51540,"name":"TestParams","nameLocations":["4147:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"4147:10:81"},"id":51541,"nodeType":"InheritanceSpecifier","src":"4147:10:81"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51670,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4121:16:81","scope":54009,"usedErrors":[]},{"id":51792,"nodeType":"ContractDefinition","src":"5790:1815:81","nodes":[{"id":51677,"nodeType":"VariableDeclaration","src":"5841:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"5850:17:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51675,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5841:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51676,"nodeType":"ArrayTypeName","src":"5841:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51680,"nodeType":"VariableDeclaration","src":"5873:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"5882:18:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51678,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5873:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51679,"nodeType":"ArrayTypeName","src":"5873:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51683,"nodeType":"VariableDeclaration","src":"5906:33:81","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"5915:24:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51681,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5906:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51682,"nodeType":"ArrayTypeName","src":"5906:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51686,"nodeType":"VariableDeclaration","src":"5945:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"5954:17:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51684,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5945:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51685,"nodeType":"ArrayTypeName","src":"5945:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51689,"nodeType":"VariableDeclaration","src":"5977:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"5986:17:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51687,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5977:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51688,"nodeType":"ArrayTypeName","src":"5977:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51692,"nodeType":"VariableDeclaration","src":"6010:28:81","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6029:9:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":51691,"nodeType":"UserDefinedTypeName","pathNode":{"id":51690,"name":"SubnetActorDiamond","nameLocations":["6010:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"6010:18:81"},"referencedDeclaration":36177,"src":"6010:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":51695,"nodeType":"VariableDeclaration","src":"6044:33:81","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"6068:9:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":51694,"nodeType":"UserDefinedTypeName","pathNode":{"id":51693,"name":"SubnetActorManagerFacet","nameLocations":["6044:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"6044:23:81"},"referencedDeclaration":50947,"src":"6044:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":51698,"nodeType":"VariableDeclaration","src":"6083:43:81","nodes":[],"constant":false,"mutability":"mutable","name":"saMockedManager","nameLocation":"6111:15:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":51697,"nodeType":"UserDefinedTypeName","pathNode":{"id":51696,"name":"SubnetActorManagerFacetMock","nameLocations":["6083:27:81"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"6083:27:81"},"referencedDeclaration":56069,"src":"6083:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"},{"id":51701,"nodeType":"VariableDeclaration","src":"6132:31:81","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"6155:8:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":51700,"nodeType":"UserDefinedTypeName","pathNode":{"id":51699,"name":"SubnetActorGetterFacet","nameLocations":["6132:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"6132:22:81"},"referencedDeclaration":49325,"src":"6132:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":51704,"nodeType":"VariableDeclaration","src":"6169:24:81","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"6185:8:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":51703,"nodeType":"UserDefinedTypeName","pathNode":{"id":51702,"name":"DiamondCutFacet","nameLocations":["6169:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"6169:15:81"},"referencedDeclaration":36477,"src":"6169:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":51707,"nodeType":"VariableDeclaration","src":"6199:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"6217:8:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":51706,"nodeType":"UserDefinedTypeName","pathNode":{"id":51705,"name":"DiamondLoupeFacet","nameLocations":["6199:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"6199:17:81"},"referencedDeclaration":36914,"src":"6199:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":51751,"nodeType":"FunctionDefinition","src":"6232:458:81","nodes":[],"body":{"id":51750,"nodeType":"Block","src":"6246:444:81","nodes":[],"statements":[{"expression":{"id":51716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51710,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"6256:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51713,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6304:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744163746f724765747465724661636574","id":51714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6308:24:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":51711,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6276:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6286:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6276:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6276:57:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6256:77:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51717,"nodeType":"ExpressionStatement","src":"6256:77:81"},{"expression":{"id":51724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51718,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"6343:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51721,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6392:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":51722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6396:25:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":51719,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6364:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6374:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6364:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6364:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6343:79:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51725,"nodeType":"ExpressionStatement","src":"6343:79:81"},{"expression":{"id":51732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51726,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51683,"src":"6432:24:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51729,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6487:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":51730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6491:29:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":51727,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6459:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6469:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6459:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6459:62:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6432:89:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51733,"nodeType":"ExpressionStatement","src":"6432:89:81"},{"expression":{"id":51740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51734,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"6531:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51737,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6579:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644375744661636574","id":51738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6583:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":51735,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6551:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6561:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6551:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6551:50:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6531:70:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51741,"nodeType":"ExpressionStatement","src":"6531:70:81"},{"expression":{"id":51748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51742,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51689,"src":"6611:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51745,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6659:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644c6f7570654661636574","id":51746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6663:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":51743,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6631:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6641:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6631:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6631:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6611:72:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51749,"nodeType":"ExpressionStatement","src":"6611:72:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51708,"nodeType":"ParameterList","parameters":[],"src":"6243:2:81"},"returnParameters":{"id":51709,"nodeType":"ParameterList","parameters":[],"src":"6246:0:81"},"scope":51792,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51791,"nodeType":"FunctionDefinition","src":"6696:907:81","nodes":[],"body":{"id":51790,"nodeType":"Block","src":"6843:760:81","nodes":[],"statements":[{"assignments":[51763],"declarations":[{"constant":false,"id":51763,"mutability":"mutable","name":"params","nameLocation":"6897:6:81","nodeType":"VariableDeclaration","scope":51790,"src":"6853:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":51762,"nodeType":"UserDefinedTypeName","pathNode":{"id":51761,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["6853:18:81","6872:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"6853:36:81"},"referencedDeclaration":35829,"src":"6853:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51787,"initialValue":{"arguments":[{"arguments":[{"id":51767,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51450,"src":"6983:15:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":51771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7021:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7007:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":51768,"name":"address","nodeType":"ElementaryTypeName","src":"7011:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51769,"nodeType":"ArrayTypeName","src":"7011:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":51772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7007:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":51766,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"6967:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":51773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6977:4:81","7000:5:81"],"names":["root","route"],"nodeType":"FunctionCall","src":"6967:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":51774,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51753,"src":"7055:2:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51775,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"7082:13:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$36918_$","typeString":"type(enum ConsensusType)"}},"id":51776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7096:10:81","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":36917,"src":"7082:24:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":51777,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"7145:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51778,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51397,"src":"7199:22:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51779,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51409,"src":"7256:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51780,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51403,"src":"7315:27:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":51781,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51444,"src":"7379:31:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":51782,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51447,"src":"7436:19:81","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":51783,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"7485:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":51784,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"7536:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":51785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7551:10:81","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":48645,"src":"7536:25:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}],"expression":{"id":51764,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"6906:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"type(contract SubnetActorDiamond)"}},"id":51765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6925:17:81","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35829,"src":"6906:36:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35829_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":51786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6957:8:81","7039:14:81","7071:9:81","7120:23:81","7184:13:81","7235:19:81","7295:18:81","7356:21:81","7424:10:81","7469:14:81","7520:14:81"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode"],"nodeType":"FunctionCall","src":"6906:666:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6853:719:81"},{"expression":{"id":51788,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51763,"src":"7590:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":51758,"id":51789,"nodeType":"Return","src":"7583:13:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"6705:35:81","parameters":{"id":51754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51753,"mutability":"mutable","name":"gw","nameLocation":"6758:2:81","nodeType":"VariableDeclaration","scope":51791,"src":"6750:10:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51752,"name":"address","nodeType":"ElementaryTypeName","src":"6750:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6740:26:81"},"returnParameters":{"id":51758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51757,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51791,"src":"6798:43:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":51756,"nodeType":"UserDefinedTypeName","pathNode":{"id":51755,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["6798:18:81","6817:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"6798:36:81"},"referencedDeclaration":35829,"src":"6798:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6797:45:81"},"scope":51792,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":51671,"name":"Test","nameLocations":["5818:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"5818:4:81"},"id":51672,"nodeType":"InheritanceSpecifier","src":"5818:4:81"},{"baseName":{"id":51673,"name":"TestParams","nameLocations":["5824:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"5824:10:81"},"id":51674,"nodeType":"InheritanceSpecifier","src":"5824:10:81"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51792,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"5799:15:81","scope":54009,"usedErrors":[]},{"id":54008,"nodeType":"ContractDefinition","src":"7607:21719:81","nodes":[{"id":51806,"nodeType":"UsingForDirective","src":"7711:34:81","nodes":[],"global":false,"libraryName":{"id":51803,"name":"SubnetIDHelper","nameLocations":["7717:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":46876,"src":"7717:14:81"},"typeName":{"id":51805,"nodeType":"UserDefinedTypeName","pathNode":{"id":51804,"name":"SubnetID","nameLocations":["7736:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"7736:8:81"},"referencedDeclaration":48557,"src":"7736:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}}},{"id":51810,"nodeType":"UsingForDirective","src":"7750:34:81","nodes":[],"global":false,"libraryName":{"id":51807,"name":"CrossMsgHelper","nameLocations":["7756:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":40328,"src":"7756:14:81"},"typeName":{"id":51809,"nodeType":"UserDefinedTypeName","pathNode":{"id":51808,"name":"CrossMsg","nameLocations":["7775:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"7775:8:81"},"referencedDeclaration":48452,"src":"7775:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}}},{"id":51814,"nodeType":"UsingForDirective","src":"7789:40:81","nodes":[],"global":false,"libraryName":{"id":51811,"name":"StorableMsgHelper","nameLocations":["7795:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":46265,"src":"7795:17:81"},"typeName":{"id":51813,"nodeType":"UserDefinedTypeName","pathNode":{"id":51812,"name":"StorableMsg","nameLocations":["7817:11:81"],"nodeType":"IdentifierPath","referencedDeclaration":48469,"src":"7817:11:81"},"referencedDeclaration":48469,"src":"7817:11:81","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_storage_ptr","typeString":"struct StorableMsg"}}},{"id":51818,"nodeType":"UsingForDirective","src":"7834:38:81","nodes":[],"global":false,"libraryName":{"id":51815,"name":"FvmAddressHelper","nameLocations":["7840:16:81"],"nodeType":"IdentifierPath","referencedDeclaration":40509,"src":"7840:16:81"},"typeName":{"id":51817,"nodeType":"UserDefinedTypeName","pathNode":{"id":51816,"name":"FvmAddress","nameLocations":["7861:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"7861:10:81"},"referencedDeclaration":48476,"src":"7861:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}}},{"id":51822,"nodeType":"EventDefinition","src":"7878:67:81","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"7884:21:81","parameters":{"id":51821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51820,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"7922:21:81","nodeType":"VariableDeclaration","scope":51822,"src":"7906:37:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51819,"name":"address","nodeType":"ElementaryTypeName","src":"7906:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7905:39:81"}},{"id":51826,"nodeType":"FunctionDefinition","src":"7951:16:81","nodes":[],"body":{"id":51825,"nodeType":"Block","src":"7965:2:81","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51823,"nodeType":"ParameterList","parameters":[],"src":"7962:2:81"},"returnParameters":{"id":51824,"nodeType":"ParameterList","parameters":[],"src":"7965:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51974,"nodeType":"FunctionDefinition","src":"7973:1282:81","nodes":[],"body":{"id":51973,"nodeType":"Block","src":"8005:1250:81","nodes":[],"statements":[{"assignments":[51833],"declarations":[{"constant":false,"id":51833,"mutability":"mutable","name":"path","nameLocation":"8032:4:81","nodeType":"VariableDeclaration","scope":51973,"src":"8015:21:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":51831,"name":"address","nodeType":"ElementaryTypeName","src":"8015:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51832,"nodeType":"ArrayTypeName","src":"8015:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":51839,"initialValue":{"arguments":[{"hexValue":"31","id":51837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8053:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":51836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8039:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":51834,"name":"address","nodeType":"ElementaryTypeName","src":"8043:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51835,"nodeType":"ArrayTypeName","src":"8043:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":51838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8039:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8015:40:81"},{"expression":{"id":51844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51840,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51833,"src":"8065:4:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":51842,"indexExpression":{"hexValue":"30","id":51841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8070:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8065:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51843,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51456,"src":"8075:15:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8065:25:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51845,"nodeType":"ExpressionStatement","src":"8065:25:81"},{"assignments":[51850],"declarations":[{"constant":false,"id":51850,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"8183:19:81","nodeType":"VariableDeclaration","scope":51973,"src":"8143:59:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51849,"nodeType":"UserDefinedTypeName","pathNode":{"id":51848,"name":"GatewayDiamond.ConstructorParams","nameLocations":["8143:14:81","8158:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"8143:32:81"},"referencedDeclaration":35456,"src":"8143:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51853,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51851,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51669,"src":"8205:20:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35456_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":51852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8205:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8143:84:81"},{"expression":{"id":51858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51854,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8237:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51856,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51850,"src":"8275:19:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":51855,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"8254:20:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35456_memory_ptr_$returns$_t_contract$_GatewayDiamond_$35759_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":51857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8254:41:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"src":"8237:58:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"id":51859,"nodeType":"ExpressionStatement","src":"8237:58:81"},{"expression":{"id":51867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51860,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"8305:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51864,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8343:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8335:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51862,"name":"address","nodeType":"ElementaryTypeName","src":"8335:7:81","typeDescriptions":{}}},"id":51865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8335:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51861,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"8316:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$37869_$","typeString":"type(contract GatewayGetterFacet)"}},"id":51866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8316:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"src":"8305:54:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":51868,"nodeType":"ExpressionStatement","src":"8305:54:81"},{"expression":{"id":51876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51869,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"8369:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51873,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8409:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8401:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51871,"name":"address","nodeType":"ElementaryTypeName","src":"8401:7:81","typeDescriptions":{}}},"id":51874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8401:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51870,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"8381:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"type(contract GatewayManagerFacet)"}},"id":51875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8381:44:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"src":"8369:56:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":51877,"nodeType":"ExpressionStatement","src":"8369:56:81"},{"expression":{"id":51885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51878,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"8435:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51882,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8473:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8465:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51880,"name":"address","nodeType":"ElementaryTypeName","src":"8465:7:81","typeDescriptions":{}}},"id":51883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8465:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51879,"name":"GatewayRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39706,"src":"8446:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayRouterFacet_$39706_$","typeString":"type(contract GatewayRouterFacet)"}},"id":51884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8446:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"src":"8435:54:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":51886,"nodeType":"ExpressionStatement","src":"8435:54:81"},{"expression":{"id":51894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51887,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51574,"src":"8499:11:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51891,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8543:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8535:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51889,"name":"address","nodeType":"ElementaryTypeName","src":"8535:7:81","typeDescriptions":{}}},"id":51892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8535:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51888,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38674,"src":"8513:21:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$38674_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":51893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8513:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"src":"8499:60:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"id":51895,"nodeType":"ExpressionStatement","src":"8499:60:81"},{"expression":{"id":51903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51896,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51580,"src":"8569:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51900,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8606:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8598:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51898,"name":"address","nodeType":"ElementaryTypeName","src":"8598:7:81","typeDescriptions":{}}},"id":51901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8598:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51897,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"8580:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":51902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8580:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"8569:53:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":51904,"nodeType":"ExpressionStatement","src":"8569:53:81"},{"expression":{"id":51912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51905,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51577,"src":"8632:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51909,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8667:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8659:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51907,"name":"address","nodeType":"ElementaryTypeName","src":"8659:7:81","typeDescriptions":{}}},"id":51910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8659:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51906,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"8643:15:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36477_$","typeString":"type(contract DiamondCutFacet)"}},"id":51911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8643:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"8632:51:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":51913,"nodeType":"ExpressionStatement","src":"8632:51:81"},{"assignments":[51918],"declarations":[{"constant":false,"id":51918,"mutability":"mutable","name":"saConstructorParams","nameLocation":"8792:19:81","nodeType":"VariableDeclaration","scope":51973,"src":"8748:63:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":51917,"nodeType":"UserDefinedTypeName","pathNode":{"id":51916,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["8748:18:81","8767:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"8748:36:81"},"referencedDeclaration":35829,"src":"8748:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51925,"initialValue":{"arguments":[{"arguments":[{"id":51922,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8871:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8863:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51920,"name":"address","nodeType":"ElementaryTypeName","src":"8863:7:81","typeDescriptions":{}}},"id":51923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8863:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51919,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51791,"src":"8814:35:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$35829_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":51924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8814:82:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8748:148:81"},{"expression":{"id":51930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51926,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"8907:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51928,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51918,"src":"8937:19:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":51927,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[52359,52388,52589],"referencedDeclaration":52359,"src":"8919:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":51929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8919:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"src":"8907:50:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"id":51931,"nodeType":"ExpressionStatement","src":"8907:50:81"},{"expression":{"id":51939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51932,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"8967:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51936,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9011:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9003:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51934,"name":"address","nodeType":"ElementaryTypeName","src":"9003:7:81","typeDescriptions":{}}},"id":51937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9003:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51933,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"8979:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":51938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8979:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"src":"8967:55:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":51940,"nodeType":"ExpressionStatement","src":"8967:55:81"},{"expression":{"id":51948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51941,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"9032:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51945,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9074:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9066:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51943,"name":"address","nodeType":"ElementaryTypeName","src":"9066:7:81","typeDescriptions":{}}},"id":51946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9066:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51942,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"9043:22:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":51947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9043:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"9032:53:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":51949,"nodeType":"ExpressionStatement","src":"9032:53:81"},{"expression":{"id":51957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51950,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"9095:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51954,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9132:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9124:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51952,"name":"address","nodeType":"ElementaryTypeName","src":"9124:7:81","typeDescriptions":{}}},"id":51955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9124:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51951,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"9106:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":51956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9106:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"9095:48:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":51958,"nodeType":"ExpressionStatement","src":"9095:48:81"},{"expression":{"id":51966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51959,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"9153:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51963,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9188:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9180:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51961,"name":"address","nodeType":"ElementaryTypeName","src":"9180:7:81","typeDescriptions":{}}},"id":51964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9180:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51960,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"9164:15:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36477_$","typeString":"type(contract DiamondCutFacet)"}},"id":51965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9164:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"9153:46:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":51967,"nodeType":"ExpressionStatement","src":"9153:46:81"},{"expression":{"arguments":[{"id":51969,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51468,"src":"9223:19:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9244:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":51968,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[53132,53215],"referencedDeclaration":53215,"src":"9210:12:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9210:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51972,"nodeType":"ExpressionStatement","src":"9210:38:81"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"7982:5:81","parameters":{"id":51827,"nodeType":"ParameterList","parameters":[],"src":"7987:2:81"},"returnParameters":{"id":51828,"nodeType":"ParameterList","parameters":[],"src":"8005:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":52158,"nodeType":"FunctionDefinition","src":"9261:2119:81","nodes":[],"body":{"id":52157,"nodeType":"Block","src":"9371:2009:81","nodes":[],"statements":[{"assignments":[51985],"declarations":[{"constant":false,"id":51985,"mutability":"mutable","name":"router","nameLocation":"9400:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9381:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"},"typeName":{"id":51984,"nodeType":"UserDefinedTypeName","pathNode":{"id":51983,"name":"GatewayRouterFacet","nameLocations":["9381:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":39706,"src":"9381:18:81"},"referencedDeclaration":39706,"src":"9381:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"visibility":"internal"}],"id":51990,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9409:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayRouterFacet_$39706_$","typeString":"function () returns (contract GatewayRouterFacet)"},"typeName":{"id":51987,"nodeType":"UserDefinedTypeName","pathNode":{"id":51986,"name":"GatewayRouterFacet","nameLocations":["9413:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":39706,"src":"9413:18:81"},"referencedDeclaration":39706,"src":"9413:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}}},"id":51989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9409:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"9381:52:81"},{"assignments":[51993],"declarations":[{"constant":false,"id":51993,"mutability":"mutable","name":"manager","nameLocation":"9463:7:81","nodeType":"VariableDeclaration","scope":52157,"src":"9443:27:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"},"typeName":{"id":51992,"nodeType":"UserDefinedTypeName","pathNode":{"id":51991,"name":"GatewayManagerFacet","nameLocations":["9443:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"9443:19:81"},"referencedDeclaration":38359,"src":"9443:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":51998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9473:23:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":51995,"nodeType":"UserDefinedTypeName","pathNode":{"id":51994,"name":"GatewayManagerFacet","nameLocations":["9477:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"9477:19:81"},"referencedDeclaration":38359,"src":"9477:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}}},"id":51997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9473:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"9443:55:81"},{"assignments":[52001],"declarations":[{"constant":false,"id":52001,"mutability":"mutable","name":"getter","nameLocation":"9527:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9508:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52000,"nodeType":"UserDefinedTypeName","pathNode":{"id":51999,"name":"GatewayGetterFacet","nameLocations":["9508:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":37869,"src":"9508:18:81"},"referencedDeclaration":37869,"src":"9508:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":52006,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9536:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$37869_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":52003,"nodeType":"UserDefinedTypeName","pathNode":{"id":52002,"name":"GatewayGetterFacet","nameLocations":["9540:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":37869,"src":"9540:18:81"},"referencedDeclaration":37869,"src":"9540:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}}},"id":52005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9536:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"9508:52:81"},{"assignments":[52009],"declarations":[{"constant":false,"id":52009,"mutability":"mutable","name":"messenger","nameLocation":"9592:9:81","nodeType":"VariableDeclaration","scope":52157,"src":"9570:31:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52008,"nodeType":"UserDefinedTypeName","pathNode":{"id":52007,"name":"GatewayMessengerFacet","nameLocations":["9570:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":38674,"src":"9570:21:81"},"referencedDeclaration":38674,"src":"9570:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":52014,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9604:25:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$38674_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":52011,"nodeType":"UserDefinedTypeName","pathNode":{"id":52010,"name":"GatewayMessengerFacet","nameLocations":["9608:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":38674,"src":"9608:21:81"},"referencedDeclaration":38674,"src":"9608:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}}},"id":52013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9604:27:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"9570:61:81"},{"assignments":[52017],"declarations":[{"constant":false,"id":52017,"mutability":"mutable","name":"cutter","nameLocation":"9657:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9641:22:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":52016,"nodeType":"UserDefinedTypeName","pathNode":{"id":52015,"name":"DiamondCutFacet","nameLocations":["9641:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"9641:15:81"},"referencedDeclaration":36477,"src":"9641:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":52022,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9666:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52019,"nodeType":"UserDefinedTypeName","pathNode":{"id":52018,"name":"DiamondCutFacet","nameLocations":["9670:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"9670:15:81"},"referencedDeclaration":36477,"src":"9670:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9666:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"9641:46:81"},{"assignments":[52025],"declarations":[{"constant":false,"id":52025,"mutability":"mutable","name":"louper","nameLocation":"9715:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9697:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52024,"nodeType":"UserDefinedTypeName","pathNode":{"id":52023,"name":"DiamondLoupeFacet","nameLocations":["9697:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"9697:17:81"},"referencedDeclaration":36914,"src":"9697:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":52030,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9724:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52027,"nodeType":"UserDefinedTypeName","pathNode":{"id":52026,"name":"DiamondLoupeFacet","nameLocations":["9728:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"9728:17:81"},"referencedDeclaration":36914,"src":"9728:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9724:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"9697:50:81"},{"assignments":[52036],"declarations":[{"constant":false,"id":52036,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"9785:12:81","nodeType":"VariableDeclaration","scope":52157,"src":"9758:39:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52034,"nodeType":"UserDefinedTypeName","pathNode":{"id":52033,"name":"IDiamond.FacetCut","nameLocations":["9758:8:81","9767:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"9758:17:81"},"referencedDeclaration":39721,"src":"9758:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52035,"nodeType":"ArrayTypeName","src":"9758:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52043,"initialValue":{"arguments":[{"hexValue":"36","id":52041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9824:1:81","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"}],"id":52040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9800:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52038,"nodeType":"UserDefinedTypeName","pathNode":{"id":52037,"name":"IDiamond.FacetCut","nameLocations":["9804:8:81","9813:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"9804:17:81"},"referencedDeclaration":39721,"src":"9804:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52039,"nodeType":"ArrayTypeName","src":"9804:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9800:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9758:68:81"},{"expression":{"id":52059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52044,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"9837:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52046,"indexExpression":{"hexValue":"30","id":52045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9850:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9837:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52051,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51985,"src":"9927:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}],"id":52050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9919:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52049,"name":"address","nodeType":"ElementaryTypeName","src":"9919:7:81","typeDescriptions":{}}},"id":52052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52053,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"9960:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9969:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"9960:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9984:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"9960:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52056,"name":"gwRouterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51544,"src":"10024:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52047,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"9869:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9878:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"9869:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9905:12:81","9952:6:81","10005:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"9869:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52058,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9855:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"9837:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52060,"nodeType":"ExpressionStatement","src":"9837:229:81"},{"expression":{"id":52076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52061,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10077:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52063,"indexExpression":{"hexValue":"31","id":52062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10090:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10077:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52068,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51993,"src":"10167:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}],"id":52067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10159:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52066,"name":"address","nodeType":"ElementaryTypeName","src":"10159:7:81","typeDescriptions":{}}},"id":52069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10159:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52070,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10201:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10210:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10201:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10225:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10201:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52073,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51547,"src":"10265:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52064,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10109:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10118:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10109:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10145:12:81","10193:6:81","10246:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10109:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52075,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10095:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10077:231:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52077,"nodeType":"ExpressionStatement","src":"10077:231:81"},{"expression":{"id":52093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52078,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10319:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52080,"indexExpression":{"hexValue":"32","id":52079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10332:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10319:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52085,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52001,"src":"10409:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}],"id":52084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10401:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52083,"name":"address","nodeType":"ElementaryTypeName","src":"10401:7:81","typeDescriptions":{}}},"id":52086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10401:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52087,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10442:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10451:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10442:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10466:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10442:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52090,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51550,"src":"10506:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52081,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10351:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10360:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10351:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10387:12:81","10434:6:81","10487:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10351:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10337:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10319:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52094,"nodeType":"ExpressionStatement","src":"10319:229:81"},{"expression":{"id":52110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52095,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10559:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52097,"indexExpression":{"hexValue":"33","id":52096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10572:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10559:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52102,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52009,"src":"10649:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}],"id":52101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10641:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52100,"name":"address","nodeType":"ElementaryTypeName","src":"10641:7:81","typeDescriptions":{}}},"id":52103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10641:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52104,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10685:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10694:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10685:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10709:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10685:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52107,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"10749:20:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52098,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10591:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10600:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10591:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10627:12:81","10677:6:81","10730:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10591:193:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52109,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10577:217:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10559:235:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52111,"nodeType":"ExpressionStatement","src":"10559:235:81"},{"expression":{"id":52127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52112,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10805:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52114,"indexExpression":{"hexValue":"34","id":52113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10818:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10805:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52119,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52025,"src":"10895:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10887:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52117,"name":"address","nodeType":"ElementaryTypeName","src":"10887:7:81","typeDescriptions":{}}},"id":52120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10887:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52121,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10928:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10937:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10928:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10952:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10928:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52124,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51559,"src":"10992:16:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52115,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10837:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10846:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10837:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10873:12:81","10920:6:81","10973:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10837:186:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52126,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10823:210:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10805:228:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52128,"nodeType":"ExpressionStatement","src":"10805:228:81"},{"expression":{"id":52144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52129,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"11044:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52131,"indexExpression":{"hexValue":"35","id":52130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11057:1:81","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11044:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52136,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52017,"src":"11134:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11126:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52134,"name":"address","nodeType":"ElementaryTypeName","src":"11126:7:81","typeDescriptions":{}}},"id":52137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11126:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52138,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11167:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11176:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"11167:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11191:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"11167:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52141,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51556,"src":"11231:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52132,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11076:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11085:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"11076:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11112:12:81","11159:6:81","11212:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11076:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52143,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11062:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11044:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52145,"nodeType":"ExpressionStatement","src":"11044:229:81"},{"expression":{"id":52153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52146,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"11284:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52150,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"11320:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52151,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51977,"src":"11334:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":52149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11301:18:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35456_memory_ptr_$returns$_t_contract$_GatewayDiamond_$35759_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":52148,"nodeType":"UserDefinedTypeName","pathNode":{"id":52147,"name":"GatewayDiamond","nameLocations":["11305:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"11305:14:81"},"referencedDeclaration":35759,"src":"11305:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}},"id":52152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11301:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"src":"11284:57:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"id":52154,"nodeType":"ExpressionStatement","src":"11284:57:81"},{"expression":{"id":52155,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"11359:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"functionReturnParameters":51982,"id":52156,"nodeType":"Return","src":"11352:21:81"}]},"functionSelector":"cfebf300","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"9270:20:81","parameters":{"id":51978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51977,"mutability":"mutable","name":"params","nameLocation":"9331:6:81","nodeType":"VariableDeclaration","scope":52158,"src":"9291:46:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51976,"nodeType":"UserDefinedTypeName","pathNode":{"id":51975,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9291:14:81","9306:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"9291:32:81"},"referencedDeclaration":35456,"src":"9291:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"9290:48:81"},"returnParameters":{"id":51982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52158,"src":"9355:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":51980,"nodeType":"UserDefinedTypeName","pathNode":{"id":51979,"name":"GatewayDiamond","nameLocations":["9355:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"9355:14:81"},"referencedDeclaration":35759,"src":"9355:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"9354:16:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52224,"nodeType":"FunctionDefinition","src":"11386:854:81","nodes":[],"body":{"id":52223,"nodeType":"Block","src":"11594:646:81","nodes":[],"statements":[{"assignments":[52176],"declarations":[{"constant":false,"id":52176,"mutability":"mutable","name":"diamondCut","nameLocation":"11631:10:81","nodeType":"VariableDeclaration","scope":52223,"src":"11604:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52174,"nodeType":"UserDefinedTypeName","pathNode":{"id":52173,"name":"IDiamond.FacetCut","nameLocations":["11604:8:81","11613:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"11604:17:81"},"referencedDeclaration":39721,"src":"11604:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52175,"nodeType":"ArrayTypeName","src":"11604:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52183,"initialValue":{"arguments":[{"hexValue":"32","id":52181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11668:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":52180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11644:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52178,"nodeType":"UserDefinedTypeName","pathNode":{"id":52177,"name":"IDiamond.FacetCut","nameLocations":["11648:8:81","11657:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"11648:17:81"},"referencedDeclaration":39721,"src":"11648:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52179,"nodeType":"ArrayTypeName","src":"11648:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11644:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11604:66:81"},{"expression":{"id":52196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52184,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"11681:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52186,"indexExpression":{"hexValue":"30","id":52185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11692:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11681:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":52189,"name":"getterFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52163,"src":"11761:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52190,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11799:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11808:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"11799:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11823:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"11799:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52193,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"11863:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52187,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11711:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11720:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"11711:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11747:12:81","11791:6:81","11844:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11711:184:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52195,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11697:208:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11681:224:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52197,"nodeType":"ExpressionStatement","src":"11681:224:81"},{"expression":{"id":52210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52198,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"11916:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52200,"indexExpression":{"hexValue":"31","id":52199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11927:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11916:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":52203,"name":"managerFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52165,"src":"11996:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52204,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12035:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12044:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"12035:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12059:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"12035:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52207,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"12099:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52201,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11946:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11955:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"11946:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11982:12:81","12027:6:81","12080:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11946:186:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52209,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11932:210:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11916:226:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52211,"nodeType":"ExpressionStatement","src":"11916:226:81"},{"expression":{"id":52219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52212,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"12153:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52216,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"12188:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52217,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52161,"src":"12200:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12165:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52214,"nodeType":"UserDefinedTypeName","pathNode":{"id":52213,"name":"SubnetActorDiamond","nameLocations":["12169:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"12169:18:81"},"referencedDeclaration":36177,"src":"12169:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12165:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"src":"12153:54:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"id":52220,"nodeType":"ExpressionStatement","src":"12153:54:81"},{"expression":{"id":52221,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"12224:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":52170,"id":52222,"nodeType":"Return","src":"12217:16:81"}]},"functionSelector":"b64544ec","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"11395:35:81","parameters":{"id":52166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52161,"mutability":"mutable","name":"params","nameLocation":"11484:6:81","nodeType":"VariableDeclaration","scope":52224,"src":"11440:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52160,"nodeType":"UserDefinedTypeName","pathNode":{"id":52159,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["11440:18:81","11459:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"11440:36:81"},"referencedDeclaration":35829,"src":"11440:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":52163,"mutability":"mutable","name":"getterFaucet","nameLocation":"11508:12:81","nodeType":"VariableDeclaration","scope":52224,"src":"11500:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52162,"name":"address","nodeType":"ElementaryTypeName","src":"11500:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52165,"mutability":"mutable","name":"managerFaucet","nameLocation":"11538:13:81","nodeType":"VariableDeclaration","scope":52224,"src":"11530:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52164,"name":"address","nodeType":"ElementaryTypeName","src":"11530:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11430:127:81"},"returnParameters":{"id":52170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52224,"src":"11574:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52168,"nodeType":"UserDefinedTypeName","pathNode":{"id":52167,"name":"SubnetActorDiamond","nameLocations":["11574:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"11574:18:81"},"referencedDeclaration":36177,"src":"11574:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"11573:20:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52359,"nodeType":"FunctionDefinition","src":"12246:1518:81","nodes":[],"body":{"id":52358,"nodeType":"Block","src":"12361:1403:81","nodes":[],"statements":[{"assignments":[52235],"declarations":[{"constant":false,"id":52235,"mutability":"mutable","name":"manager","nameLocation":"12395:7:81","nodeType":"VariableDeclaration","scope":52358,"src":"12371:31:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52234,"nodeType":"UserDefinedTypeName","pathNode":{"id":52233,"name":"SubnetActorManagerFacet","nameLocations":["12371:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"12371:23:81"},"referencedDeclaration":50947,"src":"12371:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":52240,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12405:27:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":52237,"nodeType":"UserDefinedTypeName","pathNode":{"id":52236,"name":"SubnetActorManagerFacet","nameLocations":["12409:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"12409:23:81"},"referencedDeclaration":50947,"src":"12409:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}},"id":52239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12405:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"12371:63:81"},{"assignments":[52243],"declarations":[{"constant":false,"id":52243,"mutability":"mutable","name":"getter","nameLocation":"12467:6:81","nodeType":"VariableDeclaration","scope":52358,"src":"12444:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52242,"nodeType":"UserDefinedTypeName","pathNode":{"id":52241,"name":"SubnetActorGetterFacet","nameLocations":["12444:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"12444:22:81"},"referencedDeclaration":49325,"src":"12444:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":52248,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12476:26:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":52245,"nodeType":"UserDefinedTypeName","pathNode":{"id":52244,"name":"SubnetActorGetterFacet","nameLocations":["12480:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"12480:22:81"},"referencedDeclaration":49325,"src":"12480:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}},"id":52247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12476:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"12444:60:81"},{"assignments":[52251],"declarations":[{"constant":false,"id":52251,"mutability":"mutable","name":"louper","nameLocation":"12532:6:81","nodeType":"VariableDeclaration","scope":52358,"src":"12514:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52250,"nodeType":"UserDefinedTypeName","pathNode":{"id":52249,"name":"DiamondLoupeFacet","nameLocations":["12514:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"12514:17:81"},"referencedDeclaration":36914,"src":"12514:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":52256,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12541:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52253,"nodeType":"UserDefinedTypeName","pathNode":{"id":52252,"name":"DiamondLoupeFacet","nameLocations":["12545:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"12545:17:81"},"referencedDeclaration":36914,"src":"12545:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12541:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"12514:50:81"},{"assignments":[52259],"declarations":[{"constant":false,"id":52259,"mutability":"mutable","name":"cutter","nameLocation":"12590:6:81","nodeType":"VariableDeclaration","scope":52358,"src":"12574:22:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":52258,"nodeType":"UserDefinedTypeName","pathNode":{"id":52257,"name":"DiamondCutFacet","nameLocations":["12574:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"12574:15:81"},"referencedDeclaration":36477,"src":"12574:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":52264,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12599:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52261,"nodeType":"UserDefinedTypeName","pathNode":{"id":52260,"name":"DiamondCutFacet","nameLocations":["12603:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"12603:15:81"},"referencedDeclaration":36477,"src":"12603:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12599:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"12574:46:81"},{"assignments":[52270],"declarations":[{"constant":false,"id":52270,"mutability":"mutable","name":"diamondCut","nameLocation":"12658:10:81","nodeType":"VariableDeclaration","scope":52358,"src":"12631:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52268,"nodeType":"UserDefinedTypeName","pathNode":{"id":52267,"name":"IDiamond.FacetCut","nameLocations":["12631:8:81","12640:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"12631:17:81"},"referencedDeclaration":39721,"src":"12631:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52269,"nodeType":"ArrayTypeName","src":"12631:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52277,"initialValue":{"arguments":[{"hexValue":"34","id":52275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12695:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":52274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12671:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52272,"nodeType":"UserDefinedTypeName","pathNode":{"id":52271,"name":"IDiamond.FacetCut","nameLocations":["12675:8:81","12684:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"12675:17:81"},"referencedDeclaration":39721,"src":"12675:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52273,"nodeType":"ArrayTypeName","src":"12675:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12671:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12631:66:81"},{"expression":{"id":52293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52278,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"12708:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52280,"indexExpression":{"hexValue":"30","id":52279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12719:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12708:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52285,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52235,"src":"12796:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":52284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12788:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52283,"name":"address","nodeType":"ElementaryTypeName","src":"12788:7:81","typeDescriptions":{}}},"id":52286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12788:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52287,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12830:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12839:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"12830:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12854:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"12830:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52290,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"12894:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52281,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12738:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12747:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"12738:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12774:12:81","12822:6:81","12875:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12738:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52292,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12724:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12708:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52294,"nodeType":"ExpressionStatement","src":"12708:229:81"},{"expression":{"id":52310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52295,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"12948:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52297,"indexExpression":{"hexValue":"31","id":52296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12959:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12948:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52302,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52243,"src":"13036:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}],"id":52301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13028:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52300,"name":"address","nodeType":"ElementaryTypeName","src":"13028:7:81","typeDescriptions":{}}},"id":52303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13028:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52304,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13069:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13078:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"13069:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13093:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"13069:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52307,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"13133:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52298,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12978:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12987:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"12978:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13014:12:81","13061:6:81","13114:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12978:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52309,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12964:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12948:227:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52311,"nodeType":"ExpressionStatement","src":"12948:227:81"},{"expression":{"id":52327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52312,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"13186:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52314,"indexExpression":{"hexValue":"32","id":52313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13197:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13186:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52319,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52259,"src":"13274:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13266:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52317,"name":"address","nodeType":"ElementaryTypeName","src":"13266:7:81","typeDescriptions":{}}},"id":52320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13266:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52321,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13307:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13316:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"13307:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13331:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"13307:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52324,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51556,"src":"13371:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52315,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13216:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13225:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"13216:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13252:12:81","13299:6:81","13352:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13216:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52326,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13202:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13186:227:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52328,"nodeType":"ExpressionStatement","src":"13186:227:81"},{"expression":{"id":52344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52329,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"13424:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52331,"indexExpression":{"hexValue":"33","id":52330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13435:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13424:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52336,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52251,"src":"13512:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13504:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52334,"name":"address","nodeType":"ElementaryTypeName","src":"13504:7:81","typeDescriptions":{}}},"id":52337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13504:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52338,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13545:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13554:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"13545:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13569:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"13545:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52341,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51559,"src":"13609:16:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52332,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13454:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13463:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"13454:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13490:12:81","13537:6:81","13590:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13454:186:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52343,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13440:210:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13424:226:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52345,"nodeType":"ExpressionStatement","src":"13424:226:81"},{"assignments":[52348],"declarations":[{"constant":false,"id":52348,"mutability":"mutable","name":"diamond","nameLocation":"13680:7:81","nodeType":"VariableDeclaration","scope":52358,"src":"13661:26:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52347,"nodeType":"UserDefinedTypeName","pathNode":{"id":52346,"name":"SubnetActorDiamond","nameLocations":["13661:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"13661:18:81"},"referencedDeclaration":36177,"src":"13661:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":52355,"initialValue":{"arguments":[{"id":52352,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"13713:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52353,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52227,"src":"13725:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"13690:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52350,"nodeType":"UserDefinedTypeName","pathNode":{"id":52349,"name":"SubnetActorDiamond","nameLocations":["13694:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"13694:18:81"},"referencedDeclaration":36177,"src":"13694:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13690:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"13661:71:81"},{"expression":{"id":52356,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52348,"src":"13750:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":52232,"id":52357,"nodeType":"Return","src":"13743:14:81"}]},"functionSelector":"b0ed3c00","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"12255:17:81","parameters":{"id":52228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52227,"mutability":"mutable","name":"params","nameLocation":"12317:6:81","nodeType":"VariableDeclaration","scope":52359,"src":"12273:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52226,"nodeType":"UserDefinedTypeName","pathNode":{"id":52225,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["12273:18:81","12292:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"12273:36:81"},"referencedDeclaration":35829,"src":"12273:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"12272:52:81"},"returnParameters":{"id":52232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52359,"src":"12341:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52230,"nodeType":"UserDefinedTypeName","pathNode":{"id":52229,"name":"SubnetActorDiamond","nameLocations":["12341:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"12341:18:81"},"referencedDeclaration":36177,"src":"12341:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"12340:20:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52388,"nodeType":"FunctionDefinition","src":"13770:522:81","nodes":[],"body":{"id":52387,"nodeType":"Block","src":"14014:278:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":52376,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52361,"src":"14055:15:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":52377,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52364,"src":"14084:10:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":52378,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52366,"src":"14108:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52379,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52368,"src":"14146:14:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52380,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52370,"src":"14174:12:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52381,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52372,"src":"14200:19:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":52382,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"14233:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":52383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14248:10:81","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":48645,"src":"14233:25:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":52384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14272:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":52375,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[52359,52388,52589],"referencedDeclaration":52589,"src":"14024:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$36918_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$48648_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":52385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14024:261:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52386,"nodeType":"ExpressionStatement","src":"14024:261:81"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"13779:17:81","parameters":{"id":52373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52361,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"13814:15:81","nodeType":"VariableDeclaration","scope":52388,"src":"13806:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52360,"name":"address","nodeType":"ElementaryTypeName","src":"13806:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52364,"mutability":"mutable","name":"_consensus","nameLocation":"13853:10:81","nodeType":"VariableDeclaration","scope":52388,"src":"13839:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},"typeName":{"id":52363,"nodeType":"UserDefinedTypeName","pathNode":{"id":52362,"name":"ConsensusType","nameLocations":["13839:13:81"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"13839:13:81"},"referencedDeclaration":36918,"src":"13839:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":52366,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"13881:24:81","nodeType":"VariableDeclaration","scope":52388,"src":"13873:32:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52365,"name":"uint256","nodeType":"ElementaryTypeName","src":"13873:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52368,"mutability":"mutable","name":"_minValidators","nameLocation":"13922:14:81","nodeType":"VariableDeclaration","scope":52388,"src":"13915:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52367,"name":"uint64","nodeType":"ElementaryTypeName","src":"13915:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52370,"mutability":"mutable","name":"_checkPeriod","nameLocation":"13953:12:81","nodeType":"VariableDeclaration","scope":52388,"src":"13946:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52369,"name":"uint64","nodeType":"ElementaryTypeName","src":"13946:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52372,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"13981:19:81","nodeType":"VariableDeclaration","scope":52388,"src":"13975:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52371,"name":"uint8","nodeType":"ElementaryTypeName","src":"13975:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"13796:210:81"},"returnParameters":{"id":52374,"nodeType":"ParameterList","parameters":[],"src":"14014:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52589,"nodeType":"FunctionDefinition","src":"14298:2571:81","nodes":[],"body":{"id":52588,"nodeType":"Block","src":"14621:2248:81","nodes":[],"statements":[{"assignments":[52411],"declarations":[{"constant":false,"id":52411,"mutability":"mutable","name":"_parentId","nameLocation":"14647:9:81","nodeType":"VariableDeclaration","scope":52588,"src":"14631:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":52410,"nodeType":"UserDefinedTypeName","pathNode":{"id":52409,"name":"SubnetID","nameLocations":["14631:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"14631:8:81"},"referencedDeclaration":48557,"src":"14631:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":52420,"initialValue":{"arguments":[{"id":52413,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51450,"src":"14668:15:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14699:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14685:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52414,"name":"address","nodeType":"ElementaryTypeName","src":"14689:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52415,"nodeType":"ArrayTypeName","src":"14689:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14685:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52412,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"14659:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14659:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"14631:71:81"},{"expression":{"id":52426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52421,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"14713:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14725:27:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":52423,"nodeType":"UserDefinedTypeName","pathNode":{"id":52422,"name":"SubnetActorManagerFacet","nameLocations":["14729:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"14729:23:81"},"referencedDeclaration":50947,"src":"14729:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}},"id":52425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14725:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"src":"14713:41:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":52427,"nodeType":"ExpressionStatement","src":"14713:41:81"},{"expression":{"id":52433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52428,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"14764:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14775:26:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":52430,"nodeType":"UserDefinedTypeName","pathNode":{"id":52429,"name":"SubnetActorGetterFacet","nameLocations":["14779:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"14779:22:81"},"referencedDeclaration":49325,"src":"14779:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}},"id":52432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14775:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"14764:39:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":52434,"nodeType":"ExpressionStatement","src":"14764:39:81"},{"expression":{"id":52440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52435,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"14813:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14824:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52437,"nodeType":"UserDefinedTypeName","pathNode":{"id":52436,"name":"DiamondCutFacet","nameLocations":["14828:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"14828:15:81"},"referencedDeclaration":36477,"src":"14828:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14824:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"14813:32:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":52441,"nodeType":"ExpressionStatement","src":"14813:32:81"},{"expression":{"id":52447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52442,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"14855:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14866:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52444,"nodeType":"UserDefinedTypeName","pathNode":{"id":52443,"name":"DiamondLoupeFacet","nameLocations":["14870:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"14870:17:81"},"referencedDeclaration":36914,"src":"14870:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14866:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"14855:34:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":52448,"nodeType":"ExpressionStatement","src":"14855:34:81"},{"assignments":[52454],"declarations":[{"constant":false,"id":52454,"mutability":"mutable","name":"diamondCut","nameLocation":"14927:10:81","nodeType":"VariableDeclaration","scope":52588,"src":"14900:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52452,"nodeType":"UserDefinedTypeName","pathNode":{"id":52451,"name":"IDiamond.FacetCut","nameLocations":["14900:8:81","14909:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"14900:17:81"},"referencedDeclaration":39721,"src":"14900:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52453,"nodeType":"ArrayTypeName","src":"14900:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52461,"initialValue":{"arguments":[{"hexValue":"34","id":52459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14964:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":52458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14940:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52456,"nodeType":"UserDefinedTypeName","pathNode":{"id":52455,"name":"IDiamond.FacetCut","nameLocations":["14944:8:81","14953:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"14944:17:81"},"referencedDeclaration":39721,"src":"14944:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52457,"nodeType":"ArrayTypeName","src":"14944:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14940:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14900:66:81"},{"expression":{"id":52477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52462,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"14977:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52464,"indexExpression":{"hexValue":"30","id":52463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14988:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14977:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52469,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"15065:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":52468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15057:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52467,"name":"address","nodeType":"ElementaryTypeName","src":"15057:7:81","typeDescriptions":{}}},"id":52470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15057:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52471,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15101:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15110:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15101:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15125:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15101:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52474,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"15165:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52465,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15007:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15016:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15007:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15043:12:81","15093:6:81","15146:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15007:191:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52476,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14993:215:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14977:231:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52478,"nodeType":"ExpressionStatement","src":"14977:231:81"},{"expression":{"id":52494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52479,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15219:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52481,"indexExpression":{"hexValue":"31","id":52480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15230:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15219:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52486,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"15307:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}],"id":52485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15299:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52484,"name":"address","nodeType":"ElementaryTypeName","src":"15299:7:81","typeDescriptions":{}}},"id":52487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15299:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52488,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15342:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15351:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15342:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15366:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15342:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52491,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"15406:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52482,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15249:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15258:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15249:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15285:12:81","15334:6:81","15387:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15249:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52493,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15235:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15219:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52495,"nodeType":"ExpressionStatement","src":"15219:229:81"},{"expression":{"id":52511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52496,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15459:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52498,"indexExpression":{"hexValue":"32","id":52497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15470:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15459:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52503,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"15547:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15539:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52501,"name":"address","nodeType":"ElementaryTypeName","src":"15539:7:81","typeDescriptions":{}}},"id":52504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15539:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52505,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15582:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15591:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15582:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15606:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15582:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52508,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"15646:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52499,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15489:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15498:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15489:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15525:12:81","15574:6:81","15627:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15489:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52510,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15475:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15459:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52512,"nodeType":"ExpressionStatement","src":"15459:229:81"},{"expression":{"id":52528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52513,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15699:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52515,"indexExpression":{"hexValue":"33","id":52514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15710:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15699:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52520,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"15787:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15779:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52518,"name":"address","nodeType":"ElementaryTypeName","src":"15779:7:81","typeDescriptions":{}}},"id":52521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15779:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52522,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15822:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15831:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15822:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15846:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15822:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52525,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51689,"src":"15886:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52516,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15729:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15738:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15729:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15765:12:81","15814:6:81","15867:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15729:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52527,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15715:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15699:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52529,"nodeType":"ExpressionStatement","src":"15699:229:81"},{"expression":{"id":52550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52530,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"15939:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52534,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15987:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":52537,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52411,"src":"16076:9:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52538,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52390,"src":"16119:15:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":52539,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52393,"src":"16163:10:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":52540,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52395,"src":"16216:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52541,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52397,"src":"16273:14:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52542,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52399,"src":"16326:12:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52543,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52401,"src":"16376:19:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":52544,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52406,"src":"16436:22:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":52545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16488:2:81","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":52546,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52404,"src":"16524:15:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},{"id":52547,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"16573:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52535,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"16011:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"type(contract SubnetActorDiamond)"}},"id":52536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16030:17:81","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35829,"src":"16011:36:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35829_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":52548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16066:8:81","16103:14:81","16152:9:81","16191:23:81","16258:13:81","16305:19:81","16356:18:81","16413:21:81","16476:10:81","16508:14:81","16557:14:81"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee"],"nodeType":"FunctionCall","src":"16011:598:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"15951:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52532,"nodeType":"UserDefinedTypeName","pathNode":{"id":52531,"name":"SubnetActorDiamond","nameLocations":["15955:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"15955:18:81"},"referencedDeclaration":36177,"src":"15955:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15951:668:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"src":"15939:680:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"id":52551,"nodeType":"ExpressionStatement","src":"15939:680:81"},{"expression":{"id":52559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52552,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"16630:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52556,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16674:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16666:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52554,"name":"address","nodeType":"ElementaryTypeName","src":"16666:7:81","typeDescriptions":{}}},"id":52557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16666:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52553,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"16642:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":52558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16642:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"src":"16630:55:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":52560,"nodeType":"ExpressionStatement","src":"16630:55:81"},{"expression":{"id":52568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52561,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"16695:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52565,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16737:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16729:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52563,"name":"address","nodeType":"ElementaryTypeName","src":"16729:7:81","typeDescriptions":{}}},"id":52566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16729:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52562,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"16706:22:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":52567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16706:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"16695:53:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":52569,"nodeType":"ExpressionStatement","src":"16695:53:81"},{"expression":{"id":52577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52570,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"16758:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52574,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16793:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16785:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52572,"name":"address","nodeType":"ElementaryTypeName","src":"16785:7:81","typeDescriptions":{}}},"id":52575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16785:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52571,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"16769:15:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36477_$","typeString":"type(contract DiamondCutFacet)"}},"id":52576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16769:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"16758:46:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":52578,"nodeType":"ExpressionStatement","src":"16758:46:81"},{"expression":{"id":52586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52579,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"16814:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52583,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16851:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16843:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52581,"name":"address","nodeType":"ElementaryTypeName","src":"16843:7:81","typeDescriptions":{}}},"id":52584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16843:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52580,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"16825:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":52585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16825:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"16814:48:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":52587,"nodeType":"ExpressionStatement","src":"16814:48:81"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"14307:17:81","parameters":{"id":52407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52390,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"14342:15:81","nodeType":"VariableDeclaration","scope":52589,"src":"14334:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52389,"name":"address","nodeType":"ElementaryTypeName","src":"14334:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52393,"mutability":"mutable","name":"_consensus","nameLocation":"14381:10:81","nodeType":"VariableDeclaration","scope":52589,"src":"14367:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},"typeName":{"id":52392,"nodeType":"UserDefinedTypeName","pathNode":{"id":52391,"name":"ConsensusType","nameLocations":["14367:13:81"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"14367:13:81"},"referencedDeclaration":36918,"src":"14367:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":52395,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"14409:24:81","nodeType":"VariableDeclaration","scope":52589,"src":"14401:32:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52394,"name":"uint256","nodeType":"ElementaryTypeName","src":"14401:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52397,"mutability":"mutable","name":"_minValidators","nameLocation":"14450:14:81","nodeType":"VariableDeclaration","scope":52589,"src":"14443:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52396,"name":"uint64","nodeType":"ElementaryTypeName","src":"14443:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52399,"mutability":"mutable","name":"_checkPeriod","nameLocation":"14481:12:81","nodeType":"VariableDeclaration","scope":52589,"src":"14474:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52398,"name":"uint64","nodeType":"ElementaryTypeName","src":"14474:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52401,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"14509:19:81","nodeType":"VariableDeclaration","scope":52589,"src":"14503:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52400,"name":"uint8","nodeType":"ElementaryTypeName","src":"14503:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":52404,"mutability":"mutable","name":"_permissionMode","nameLocation":"14553:15:81","nodeType":"VariableDeclaration","scope":52589,"src":"14538:30:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"typeName":{"id":52403,"nodeType":"UserDefinedTypeName","pathNode":{"id":52402,"name":"PermissionMode","nameLocations":["14538:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48648,"src":"14538:14:81"},"referencedDeclaration":48648,"src":"14538:14:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":52406,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"14585:22:81","nodeType":"VariableDeclaration","scope":52589,"src":"14578:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52405,"name":"uint16","nodeType":"ElementaryTypeName","src":"14578:6:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"14324:289:81"},"returnParameters":{"id":52408,"nodeType":"ParameterList","parameters":[],"src":"14621:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52682,"nodeType":"FunctionDefinition","src":"16875:1021:81","nodes":[],"body":{"id":52681,"nodeType":"Block","src":"16967:929:81","nodes":[],"statements":[{"assignments":[52599],"declarations":[{"constant":false,"id":52599,"mutability":"mutable","name":"mockedManager","nameLocation":"17005:13:81","nodeType":"VariableDeclaration","scope":52681,"src":"16977:41:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":52598,"nodeType":"UserDefinedTypeName","pathNode":{"id":52597,"name":"SubnetActorManagerFacetMock","nameLocations":["16977:27:81"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"16977:27:81"},"referencedDeclaration":56069,"src":"16977:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"}],"id":52604,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17021:31:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacetMock_$56069_$","typeString":"function () returns (contract SubnetActorManagerFacetMock)"},"typeName":{"id":52601,"nodeType":"UserDefinedTypeName","pathNode":{"id":52600,"name":"SubnetActorManagerFacetMock","nameLocations":["17025:27:81"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"17025:27:81"},"referencedDeclaration":56069,"src":"17025:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}}},"id":52603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17021:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"VariableDeclarationStatement","src":"16977:77:81"},{"assignments":[52607],"declarations":[{"constant":false,"id":52607,"mutability":"mutable","name":"getter","nameLocation":"17087:6:81","nodeType":"VariableDeclaration","scope":52681,"src":"17064:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52606,"nodeType":"UserDefinedTypeName","pathNode":{"id":52605,"name":"SubnetActorGetterFacet","nameLocations":["17064:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"17064:22:81"},"referencedDeclaration":49325,"src":"17064:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":52612,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17096:26:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":52609,"nodeType":"UserDefinedTypeName","pathNode":{"id":52608,"name":"SubnetActorGetterFacet","nameLocations":["17100:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"17100:22:81"},"referencedDeclaration":49325,"src":"17100:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}},"id":52611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17096:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"17064:60:81"},{"assignments":[52618],"declarations":[{"constant":false,"id":52618,"mutability":"mutable","name":"diamondCut","nameLocation":"17162:10:81","nodeType":"VariableDeclaration","scope":52681,"src":"17135:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52616,"nodeType":"UserDefinedTypeName","pathNode":{"id":52615,"name":"IDiamond.FacetCut","nameLocations":["17135:8:81","17144:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"17135:17:81"},"referencedDeclaration":39721,"src":"17135:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52617,"nodeType":"ArrayTypeName","src":"17135:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52625,"initialValue":{"arguments":[{"hexValue":"32","id":52623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17199:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":52622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17175:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52620,"nodeType":"UserDefinedTypeName","pathNode":{"id":52619,"name":"IDiamond.FacetCut","nameLocations":["17179:8:81","17188:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"17179:17:81"},"referencedDeclaration":39721,"src":"17179:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52621,"nodeType":"ArrayTypeName","src":"17179:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17175:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17135:66:81"},{"expression":{"id":52641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52626,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"17212:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52628,"indexExpression":{"hexValue":"30","id":52627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17223:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17212:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52633,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52599,"src":"17300:13:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}],"id":52632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17292:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52631,"name":"address","nodeType":"ElementaryTypeName","src":"17292:7:81","typeDescriptions":{}}},"id":52634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17292:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52635,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17340:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17349:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"17340:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17364:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"17340:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52638,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51683,"src":"17404:24:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52629,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17242:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17251:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"17242:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17278:12:81","17332:6:81","17385:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17242:201:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52640,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17228:225:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17212:241:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52642,"nodeType":"ExpressionStatement","src":"17212:241:81"},{"expression":{"id":52658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52643,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"17464:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52645,"indexExpression":{"hexValue":"31","id":52644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17475:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17464:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52650,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52607,"src":"17552:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}],"id":52649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17544:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52648,"name":"address","nodeType":"ElementaryTypeName","src":"17544:7:81","typeDescriptions":{}}},"id":52651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17544:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52652,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17585:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17594:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"17585:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17609:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"17585:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52655,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"17649:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52646,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17494:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17503:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"17494:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17530:12:81","17577:6:81","17630:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17494:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52657,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17480:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17464:227:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52659,"nodeType":"ExpressionStatement","src":"17464:227:81"},{"assignments":[52664],"declarations":[{"constant":false,"id":52664,"mutability":"mutable","name":"params","nameLocation":"17746:6:81","nodeType":"VariableDeclaration","scope":52681,"src":"17702:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52663,"nodeType":"UserDefinedTypeName","pathNode":{"id":52662,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["17702:18:81","17721:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"17702:36:81"},"referencedDeclaration":35829,"src":"17702:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52668,"initialValue":{"arguments":[{"id":52666,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52591,"src":"17791:2:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52665,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51791,"src":"17755:35:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$35829_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":52667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17755:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"17702:92:81"},{"assignments":[52671],"declarations":[{"constant":false,"id":52671,"mutability":"mutable","name":"d","nameLocation":"17824:1:81","nodeType":"VariableDeclaration","scope":52681,"src":"17805:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52670,"nodeType":"UserDefinedTypeName","pathNode":{"id":52669,"name":"SubnetActorDiamond","nameLocations":["17805:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"17805:18:81"},"referencedDeclaration":36177,"src":"17805:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":52678,"initialValue":{"arguments":[{"id":52675,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"17851:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52676,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"17863:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17828:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52673,"nodeType":"UserDefinedTypeName","pathNode":{"id":52672,"name":"SubnetActorDiamond","nameLocations":["17832:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"17832:18:81"},"referencedDeclaration":36177,"src":"17832:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17828:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"17805:65:81"},{"expression":{"id":52679,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52671,"src":"17888:1:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":52596,"id":52680,"nodeType":"Return","src":"17881:8:81"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"16884:34:81","parameters":{"id":52592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52591,"mutability":"mutable","name":"gw","nameLocation":"16927:2:81","nodeType":"VariableDeclaration","scope":52682,"src":"16919:10:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52590,"name":"address","nodeType":"ElementaryTypeName","src":"16919:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16918:12:81"},"returnParameters":{"id":52596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52682,"src":"16947:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52594,"nodeType":"UserDefinedTypeName","pathNode":{"id":52593,"name":"SubnetActorDiamond","nameLocations":["16947:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"16947:18:81"},"referencedDeclaration":36177,"src":"16947:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"16946:20:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52824,"nodeType":"FunctionDefinition","src":"17948:1703:81","nodes":[],"body":{"id":52823,"nodeType":"Block","src":"18086:1565:81","nodes":[],"statements":[{"assignments":[52696],"declarations":[{"constant":false,"id":52696,"mutability":"mutable","name":"diamondCut","nameLocation":"18123:10:81","nodeType":"VariableDeclaration","scope":52823,"src":"18096:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52694,"nodeType":"UserDefinedTypeName","pathNode":{"id":52693,"name":"IDiamond.FacetCut","nameLocations":["18096:8:81","18105:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"18096:17:81"},"referencedDeclaration":39721,"src":"18096:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52695,"nodeType":"ArrayTypeName","src":"18096:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52703,"initialValue":{"arguments":[{"hexValue":"34","id":52701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18160:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":52700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18136:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52698,"nodeType":"UserDefinedTypeName","pathNode":{"id":52697,"name":"IDiamond.FacetCut","nameLocations":["18140:8:81","18149:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"18140:17:81"},"referencedDeclaration":39721,"src":"18140:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52699,"nodeType":"ArrayTypeName","src":"18140:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18136:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18096:66:81"},{"assignments":[52706],"declarations":[{"constant":false,"id":52706,"mutability":"mutable","name":"regCutFacet","nameLocation":"18189:11:81","nodeType":"VariableDeclaration","scope":52823,"src":"18173:27:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":52705,"nodeType":"UserDefinedTypeName","pathNode":{"id":52704,"name":"DiamondCutFacet","nameLocations":["18173:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"18173:15:81"},"referencedDeclaration":36477,"src":"18173:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":52711,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18203:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52708,"nodeType":"UserDefinedTypeName","pathNode":{"id":52707,"name":"DiamondCutFacet","nameLocations":["18207:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"18207:15:81"},"referencedDeclaration":36477,"src":"18207:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18203:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"18173:51:81"},{"assignments":[52714],"declarations":[{"constant":false,"id":52714,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"18252:13:81","nodeType":"VariableDeclaration","scope":52823,"src":"18234:31:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"DiamondLoupeFacet","nameLocations":["18234:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"18234:17:81"},"referencedDeclaration":36914,"src":"18234:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":52719,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18268:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52716,"nodeType":"UserDefinedTypeName","pathNode":{"id":52715,"name":"DiamondLoupeFacet","nameLocations":["18272:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"18272:17:81"},"referencedDeclaration":36914,"src":"18272:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18268:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"18234:57:81"},{"assignments":[52722],"declarations":[{"constant":false,"id":52722,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"18321:14:81","nodeType":"VariableDeclaration","scope":52823,"src":"18301:34:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52721,"nodeType":"UserDefinedTypeName","pathNode":{"id":52720,"name":"RegisterSubnetFacet","nameLocations":["18301:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"18301:19:81"},"referencedDeclaration":51075,"src":"18301:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":52727,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18338:23:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$51075_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":52724,"nodeType":"UserDefinedTypeName","pathNode":{"id":52723,"name":"RegisterSubnetFacet","nameLocations":["18342:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"18342:19:81"},"referencedDeclaration":51075,"src":"18342:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}}},"id":52726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18338:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"18301:62:81"},{"assignments":[52730],"declarations":[{"constant":false,"id":52730,"mutability":"mutable","name":"regGetterFacet","nameLocation":"18391:14:81","nodeType":"VariableDeclaration","scope":52823,"src":"18373:32:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52729,"nodeType":"UserDefinedTypeName","pathNode":{"id":52728,"name":"SubnetGetterFacet","nameLocations":["18373:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"18373:17:81"},"referencedDeclaration":51313,"src":"18373:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":52735,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18408:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$51313_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":52732,"nodeType":"UserDefinedTypeName","pathNode":{"id":52731,"name":"SubnetGetterFacet","nameLocations":["18412:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"18412:17:81"},"referencedDeclaration":51313,"src":"18412:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}}},"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18408:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"18373:58:81"},{"expression":{"id":52751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52736,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"18442:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52738,"indexExpression":{"hexValue":"30","id":52737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18453:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18442:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52743,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52714,"src":"18530:13:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18522:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52741,"name":"address","nodeType":"ElementaryTypeName","src":"18522:7:81","typeDescriptions":{}}},"id":52744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18522:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52745,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18570:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18579:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"18570:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18594:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"18570:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52748,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51485,"src":"18634:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52739,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18472:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18481:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"18472:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18508:12:81","18562:6:81","18615:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18472:200:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52750,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18458:224:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18442:240:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52752,"nodeType":"ExpressionStatement","src":"18442:240:81"},{"expression":{"id":52768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52753,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"18692:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52755,"indexExpression":{"hexValue":"31","id":52754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18703:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18692:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52760,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52706,"src":"18780:11:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18772:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52758,"name":"address","nodeType":"ElementaryTypeName","src":"18772:7:81","typeDescriptions":{}}},"id":52761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18772:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52762,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18818:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18827:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"18818:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18842:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"18818:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52765,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51482,"src":"18882:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52756,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18722:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18731:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"18722:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18758:12:81","18810:6:81","18863:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18722:198:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52767,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18708:222:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18692:238:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52769,"nodeType":"ExpressionStatement","src":"18692:238:81"},{"expression":{"id":52785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52770,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"18940:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52772,"indexExpression":{"hexValue":"32","id":52771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18951:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18940:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52777,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52722,"src":"19028:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}],"id":52776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19020:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52775,"name":"address","nodeType":"ElementaryTypeName","src":"19020:7:81","typeDescriptions":{}}},"id":52778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19020:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52779,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"19069:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19078:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"19069:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19093:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"19069:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52782,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51476,"src":"19133:28:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52773,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18970:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18979:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"18970:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19006:12:81","19061:6:81","19114:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18970:206:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52784,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18956:230:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18940:246:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52786,"nodeType":"ExpressionStatement","src":"18940:246:81"},{"expression":{"id":52802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52787,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"19196:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52789,"indexExpression":{"hexValue":"33","id":52788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19207:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19196:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52794,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52730,"src":"19284:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}],"id":52793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19276:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52792,"name":"address","nodeType":"ElementaryTypeName","src":"19276:7:81","typeDescriptions":{}}},"id":52795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19276:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52796,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"19325:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19334:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"19325:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19349:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"19325:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52799,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51479,"src":"19389:34:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52790,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"19226:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19235:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"19226:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19262:12:81","19317:6:81","19370:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19226:212:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52801,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19212:236:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19196:252:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52803,"nodeType":"ExpressionStatement","src":"19196:252:81"},{"assignments":[52806],"declarations":[{"constant":false,"id":52806,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"19481:17:81","nodeType":"VariableDeclaration","scope":52823,"src":"19459:39:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52805,"nodeType":"UserDefinedTypeName","pathNode":{"id":52804,"name":"SubnetRegistryDiamond","nameLocations":["19459:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"19459:21:81"},"referencedDeclaration":36415,"src":"19459:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":52813,"initialValue":{"arguments":[{"id":52810,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"19527:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52811,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52685,"src":"19539:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":52809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19501:25:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36214_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36415_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":52808,"nodeType":"UserDefinedTypeName","pathNode":{"id":52807,"name":"SubnetRegistryDiamond","nameLocations":["19505:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"19505:21:81"},"referencedDeclaration":36415,"src":"19505:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}}},"id":52812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19501:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"19459:87:81"},{"eventCall":{"arguments":[{"arguments":[{"id":52817,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"19591:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}],"id":52816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19583:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52815,"name":"address","nodeType":"ElementaryTypeName","src":"19583:7:81","typeDescriptions":{}}},"id":52818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19583:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52814,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51822,"src":"19561:21:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":52819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19561:49:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52820,"nodeType":"EmitStatement","src":"19556:54:81"},{"expression":{"id":52821,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"19627:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":52690,"id":52822,"nodeType":"Return","src":"19620:24:81"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"17957:20:81","parameters":{"id":52686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52685,"mutability":"mutable","name":"params","nameLocation":"18034:6:81","nodeType":"VariableDeclaration","scope":52824,"src":"17987:53:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":52684,"nodeType":"UserDefinedTypeName","pathNode":{"id":52683,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["17987:21:81","18009:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36214,"src":"17987:39:81"},"referencedDeclaration":36214,"src":"17987:39:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"17977:69:81"},"returnParameters":{"id":52690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52824,"src":"18063:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52688,"nodeType":"UserDefinedTypeName","pathNode":{"id":52687,"name":"SubnetRegistryDiamond","nameLocations":["18063:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"18063:21:81"},"referencedDeclaration":36415,"src":"18063:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"18062:23:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52853,"nodeType":"FunctionDefinition","src":"19657:190:81","nodes":[],"body":{"id":52852,"nodeType":"Block","src":"19738:109:81","nodes":[],"statements":[{"body":{"id":52848,"nodeType":"Block","src":"19779:42:81","statements":[{"expression":{"id":52846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52842,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52830,"src":"19793:3:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":52843,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52827,"src":"19800:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52845,"indexExpression":{"id":52844,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52833,"src":"19808:1:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19800:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19793:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52847,"nodeType":"ExpressionStatement","src":"19793:17:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52836,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52833,"src":"19767:1:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":52837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19771:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"19767:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52849,"initializationExpression":{"assignments":[52833],"declarations":[{"constant":false,"id":52833,"mutability":"mutable","name":"i","nameLocation":"19760:1:81","nodeType":"VariableDeclaration","scope":52849,"src":"19753:8:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52832,"name":"uint64","nodeType":"ElementaryTypeName","src":"19753:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":52835,"initialValue":{"hexValue":"30","id":52834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19764:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"19753:12:81"},"loopExpression":{"expression":{"id":52840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19774:3:81","subExpression":{"id":52839,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52833,"src":"19774:1:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":52841,"nodeType":"ExpressionStatement","src":"19774:3:81"},"nodeType":"ForStatement","src":"19748:73:81"},{"expression":{"id":52850,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52830,"src":"19837:3:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":52831,"id":52851,"nodeType":"Return","src":"19830:10:81"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"19666:11:81","parameters":{"id":52828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52827,"mutability":"mutable","name":"weights","nameLocation":"19695:7:81","nodeType":"VariableDeclaration","scope":52853,"src":"19678:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":52825,"name":"uint256","nodeType":"ElementaryTypeName","src":"19678:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52826,"nodeType":"ArrayTypeName","src":"19678:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"19677:26:81"},"returnParameters":{"id":52831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52830,"mutability":"mutable","name":"sum","nameLocation":"19733:3:81","nodeType":"VariableDeclaration","scope":52853,"src":"19725:11:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52829,"name":"uint256","nodeType":"ElementaryTypeName","src":"19725:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19724:13:81"},"scope":54008,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":53028,"nodeType":"FunctionDefinition","src":"19853:919:81","nodes":[],"body":{"id":53027,"nodeType":"Block","src":"19956:816:81","nodes":[],"statements":[{"expression":{"id":52870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52863,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"19966:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":52868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19996:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":52867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19979:16:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":52865,"nodeType":"UserDefinedTypeName","pathNode":{"id":52864,"name":"FvmAddress","nameLocations":["19983:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"19983:10:81"},"referencedDeclaration":48476,"src":"19983:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":52866,"nodeType":"ArrayTypeName","src":"19983:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":52869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19979:19:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"19966:32:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52871,"nodeType":"ExpressionStatement","src":"19966:32:81"},{"expression":{"id":52882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52872,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"20008:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52874,"indexExpression":{"hexValue":"30","id":52873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20019:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20008:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":52879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20054:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":52877,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20046:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20049:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20046:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20046:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52875,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"20024:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":52876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20041:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"20024:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":52881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20024:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"20008:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":52883,"nodeType":"ExpressionStatement","src":"20008:51:81"},{"expression":{"id":52894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52884,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"20069:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52886,"indexExpression":{"hexValue":"31","id":52885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20080:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20069:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":52891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20115:3:81","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":52889,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20107:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20110:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20107:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20107:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52887,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"20085:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":52888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20102:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"20085:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":52893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20085:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"20069:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":52895,"nodeType":"ExpressionStatement","src":"20069:51:81"},{"expression":{"id":52906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52896,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"20130:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52898,"indexExpression":{"hexValue":"32","id":52897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20141:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20130:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":52903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20176:3:81","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":52901,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20168:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20171:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20168:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20168:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52899,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"20146:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":52900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20163:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"20146:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":52905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20146:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"20130:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":52907,"nodeType":"ExpressionStatement","src":"20130:51:81"},{"expression":{"id":52914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52908,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20192:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":52912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20218:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":52911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20204:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52909,"name":"address","nodeType":"ElementaryTypeName","src":"20208:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52910,"nodeType":"ArrayTypeName","src":"20208:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20204:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"20192:28:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52915,"nodeType":"ExpressionStatement","src":"20192:28:81"},{"expression":{"id":52923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52916,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20230:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52918,"indexExpression":{"hexValue":"30","id":52917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20240:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20230:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":52921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20253:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":52919,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20245:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20248:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20245:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20245:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20230:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52924,"nodeType":"ExpressionStatement","src":"20230:27:81"},{"expression":{"id":52932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52925,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20267:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52927,"indexExpression":{"hexValue":"31","id":52926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20277:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20267:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":52930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20290:3:81","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":52928,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20282:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20285:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20282:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20282:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20267:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52933,"nodeType":"ExpressionStatement","src":"20267:27:81"},{"expression":{"id":52941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52934,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20304:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52936,"indexExpression":{"hexValue":"32","id":52935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20314:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20304:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":52939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20327:3:81","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":52937,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20319:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20322:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20319:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20319:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20304:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52942,"nodeType":"ExpressionStatement","src":"20304:27:81"},{"assignments":[52947],"declarations":[{"constant":false,"id":52947,"mutability":"mutable","name":"weights","nameLocation":"20359:7:81","nodeType":"VariableDeclaration","scope":53027,"src":"20342:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":52945,"name":"uint256","nodeType":"ElementaryTypeName","src":"20342:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52946,"nodeType":"ArrayTypeName","src":"20342:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":52953,"initialValue":{"arguments":[{"hexValue":"33","id":52951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20383:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":52950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20369:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":52948,"name":"uint256","nodeType":"ElementaryTypeName","src":"20373:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52949,"nodeType":"ArrayTypeName","src":"20373:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":52952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20369:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20342:43:81"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":52959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20412:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":52957,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20404:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20407:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20404:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":52961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20418:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":52954,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20396:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20399:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"20396:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":52962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20396:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52963,"nodeType":"ExpressionStatement","src":"20396:24:81"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":52969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20446:3:81","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":52967,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20438:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20441:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20438:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20438:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":52971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20452:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":52964,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20430:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20433:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"20430:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":52972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20430:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52973,"nodeType":"ExpressionStatement","src":"20430:24:81"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":52979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20480:3:81","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":52977,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20472:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20475:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20472:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20472:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":52981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20486:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":52974,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20464:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20467:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"20464:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20464:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52983,"nodeType":"ExpressionStatement","src":"20464:24:81"},{"expression":{"id":52988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52984,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"20499:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52986,"indexExpression":{"hexValue":"30","id":52985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20507:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20499:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":52987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20512:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20499:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52989,"nodeType":"ExpressionStatement","src":"20499:16:81"},{"expression":{"id":52994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52990,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"20525:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52992,"indexExpression":{"hexValue":"31","id":52991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20533:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20525:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":52993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20538:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20525:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52995,"nodeType":"ExpressionStatement","src":"20525:16:81"},{"expression":{"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52996,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"20551:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52998,"indexExpression":{"hexValue":"32","id":52997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20559:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20551:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":52999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20564:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20551:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53001,"nodeType":"ExpressionStatement","src":"20551:16:81"},{"assignments":[53004],"declarations":[{"constant":false,"id":53004,"mutability":"mutable","name":"finality","nameLocation":"20600:8:81","nodeType":"VariableDeclaration","scope":53027,"src":"20578:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":53003,"nodeType":"UserDefinedTypeName","pathNode":{"id":53002,"name":"ParentFinality","nameLocations":["20578:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"20578:14:81"},"referencedDeclaration":48396,"src":"20578:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":53013,"initialValue":{"arguments":[{"expression":{"id":53006,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20635:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":53007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20641:6:81","memberName":"number","nodeType":"MemberAccess","src":"20635:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":53010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20668:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20660:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":53008,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20660:7:81","typeDescriptions":{}}},"id":53011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20660:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53005,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"20611:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$48396_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":53012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20627:6:81","20649:9:81"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"20611:61:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"20578:94:81"},{"expression":{"arguments":[{"expression":{"id":53017,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"20692:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":53018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20703:12:81","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"20692:23:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53014,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20683:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20686:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"20683:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20683:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53020,"nodeType":"ExpressionStatement","src":"20683:33:81"},{"expression":{"arguments":[{"id":53024,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53004,"src":"20756:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":53021,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"20726:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20735:20:81","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39027,"src":"20726:29:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$48396_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":53025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20726:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":53026,"nodeType":"ExpressionStatement","src":"20726:39:81"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"19862:15:81","parameters":{"id":52854,"nodeType":"ParameterList","parameters":[],"src":"19877:2:81"},"returnParameters":{"id":52862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52858,"mutability":"mutable","name":"validators","nameLocation":"19916:10:81","nodeType":"VariableDeclaration","scope":53028,"src":"19896:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":52856,"nodeType":"UserDefinedTypeName","pathNode":{"id":52855,"name":"FvmAddress","nameLocations":["19896:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"19896:10:81"},"referencedDeclaration":48476,"src":"19896:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":52857,"nodeType":"ArrayTypeName","src":"19896:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":52861,"mutability":"mutable","name":"addresses","nameLocation":"19945:9:81","nodeType":"VariableDeclaration","scope":53028,"src":"19928:26:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":52859,"name":"address","nodeType":"ElementaryTypeName","src":"19928:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52860,"nodeType":"ArrayTypeName","src":"19928:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"19895:60:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53121,"nodeType":"FunctionDefinition","src":"20778:1285:81","nodes":[],"body":{"id":53120,"nodeType":"Block","src":"20862:1201:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53038,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"20887:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53039,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53032,"src":"20914:3:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":53037,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53898,"src":"20872:14:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":53040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20872:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53041,"nodeType":"ExpressionStatement","src":"20872:46:81"},{"assignments":[53044],"declarations":[{"constant":false,"id":53044,"mutability":"mutable","name":"crossMsg","nameLocation":"20945:8:81","nodeType":"VariableDeclaration","scope":53120,"src":"20929:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":53043,"nodeType":"UserDefinedTypeName","pathNode":{"id":53042,"name":"CrossMsg","nameLocations":["20929:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"20929:8:81"},"referencedDeclaration":48452,"src":"20929:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":53084,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":53052,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53030,"src":"21108:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53048,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"21067:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21076:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"21067:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21093:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"21067:40:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:48:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":53056,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53030,"src":"21171:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53054,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"21149:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21166:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"21149:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21149:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"id":53047,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"21024:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$48687_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":53058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21057:8:81","21137:10:81"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"21024:173:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":53064,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53032,"src":"21303:3:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53060,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"21262:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21271:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"21262:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21262:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21288:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"21262:40:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21262:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":53068,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53032,"src":"21363:3:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53066,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"21341:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21358:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"21341:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21341:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"id":53059,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"21219:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$48687_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":53070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21252:8:81","21329:10:81"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"21219:167:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":53071,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"21411:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21435:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21411:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":53074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21461:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":53075,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"21488:11:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":53078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21535:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21525:9:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":53076,"name":"bytes","nodeType":"ElementaryTypeName","src":"21529:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":53079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21525:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":53080,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"21560:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53046,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"20988:11:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$48469_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":53081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21018:4:81","21215:2:81","21404:5:81","21454:5:81","21480:6:81","21517:6:81","21555:3:81"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"20988:608:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":53082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21619:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":53045,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"20956:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$48452_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":53083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20979:7:81","21610:7:81"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"20956:679:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"20929:706:81"},{"assignments":[53089],"declarations":[{"constant":false,"id":53089,"mutability":"mutable","name":"msgs","nameLocation":"21663:4:81","nodeType":"VariableDeclaration","scope":53120,"src":"21645:22:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":53087,"nodeType":"UserDefinedTypeName","pathNode":{"id":53086,"name":"CrossMsg","nameLocations":["21645:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"21645:8:81"},"referencedDeclaration":48452,"src":"21645:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":53088,"nodeType":"ArrayTypeName","src":"21645:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":53096,"initialValue":{"arguments":[{"hexValue":"31","id":53094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21685:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21670:14:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":53091,"nodeType":"UserDefinedTypeName","pathNode":{"id":53090,"name":"CrossMsg","nameLocations":["21674:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"21674:8:81"},"referencedDeclaration":48452,"src":"21674:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":53092,"nodeType":"ArrayTypeName","src":"21674:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":53095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21670:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"21645:42:81"},{"expression":{"id":53101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53097,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53089,"src":"21697:4:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":53099,"indexExpression":{"hexValue":"30","id":53098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21702:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21697:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53100,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53044,"src":"21707:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"21697:18:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":53102,"nodeType":"ExpressionStatement","src":"21697:18:81"},{"expression":{"arguments":[{"expression":{"id":53106,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"21954:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":53107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21965:12:81","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"21954:23:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53103,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"21945:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21948:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"21945:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21945:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53109,"nodeType":"ExpressionStatement","src":"21945:33:81"},{"expression":{"arguments":[{"id":53113,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53089,"src":"22016:4:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":53110,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"21988:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21997:18:81","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":39187,"src":"21988:27:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":53114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21988:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53115,"nodeType":"ExpressionStatement","src":"21988:33:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53116,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53044,"src":"22039:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":53117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22048:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40132,"src":"22039:15:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$48452_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$48452_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":53118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22039:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":53036,"id":53119,"nodeType":"Return","src":"22032:24:81"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"20787:20:81","parameters":{"id":53033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53030,"mutability":"mutable","name":"caller","nameLocation":"20816:6:81","nodeType":"VariableDeclaration","scope":53121,"src":"20808:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53029,"name":"address","nodeType":"ElementaryTypeName","src":"20808:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53032,"mutability":"mutable","name":"src","nameLocation":"20832:3:81","nodeType":"VariableDeclaration","scope":53121,"src":"20824:11:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53031,"name":"address","nodeType":"ElementaryTypeName","src":"20824:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20807:29:81"},"returnParameters":{"id":53036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53121,"src":"20853:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20853:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20852:9:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53132,"nodeType":"FunctionDefinition","src":"22069:93:81","nodes":[],"body":{"id":53131,"nodeType":"Block","src":"22117:45:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53127,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53123,"src":"22140:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22151:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53126,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[53132,53215],"referencedDeclaration":53215,"src":"22127:12:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22127:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53130,"nodeType":"ExpressionStatement","src":"22127:28:81"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"22078:12:81","parameters":{"id":53124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53123,"mutability":"mutable","name":"validator","nameLocation":"22099:9:81","nodeType":"VariableDeclaration","scope":53132,"src":"22091:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53122,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22090:19:81"},"returnParameters":{"id":53125,"nodeType":"ParameterList","parameters":[],"src":"22117:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53215,"nodeType":"FunctionDefinition","src":"22168:596:81","nodes":[],"body":{"id":53214,"nodeType":"Block","src":"22232:532:81","nodes":[],"statements":[{"assignments":[53143],"declarations":[{"constant":false,"id":53143,"mutability":"mutable","name":"validators","nameLocation":"22262:10:81","nodeType":"VariableDeclaration","scope":53214,"src":"22242:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":53141,"nodeType":"UserDefinedTypeName","pathNode":{"id":53140,"name":"FvmAddress","nameLocations":["22242:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"22242:10:81"},"referencedDeclaration":48476,"src":"22242:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":53142,"nodeType":"ArrayTypeName","src":"22242:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":53150,"initialValue":{"arguments":[{"hexValue":"31","id":53148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22292:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22275:16:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":53145,"nodeType":"UserDefinedTypeName","pathNode":{"id":53144,"name":"FvmAddress","nameLocations":["22279:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"22279:10:81"},"referencedDeclaration":48476,"src":"22279:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":53146,"nodeType":"ArrayTypeName","src":"22279:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":53149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22275:19:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22242:52:81"},{"expression":{"id":53158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53151,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53143,"src":"22304:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":53153,"indexExpression":{"hexValue":"30","id":53152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22315:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22304:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53156,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53134,"src":"22342:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53154,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"22320:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22337:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"22320:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22320:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22304:48:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":53159,"nodeType":"ExpressionStatement","src":"22304:48:81"},{"assignments":[53164],"declarations":[{"constant":false,"id":53164,"mutability":"mutable","name":"weights","nameLocation":"22379:7:81","nodeType":"VariableDeclaration","scope":53214,"src":"22362:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53162,"name":"uint256","nodeType":"ElementaryTypeName","src":"22362:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53163,"nodeType":"ArrayTypeName","src":"22362:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53170,"initialValue":{"arguments":[{"hexValue":"31","id":53168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22403:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22389:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53165,"name":"uint256","nodeType":"ElementaryTypeName","src":"22393:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53166,"nodeType":"ArrayTypeName","src":"22393:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22389:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22362:43:81"},{"expression":{"id":53175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53171,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53164,"src":"22415:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53173,"indexExpression":{"hexValue":"30","id":53172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22423:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22415:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53174,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53136,"src":"22428:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22415:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53176,"nodeType":"ExpressionStatement","src":"22415:19:81"},{"expression":{"arguments":[{"id":53180,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53134,"src":"22453:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":53181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22464:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":53177,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22445:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22448:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22445:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22445:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53183,"nodeType":"ExpressionStatement","src":"22445:21:81"},{"assignments":[53186],"declarations":[{"constant":false,"id":53186,"mutability":"mutable","name":"finality","nameLocation":"22498:8:81","nodeType":"VariableDeclaration","scope":53214,"src":"22476:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":53185,"nodeType":"UserDefinedTypeName","pathNode":{"id":53184,"name":"ParentFinality","nameLocations":["22476:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"22476:14:81"},"referencedDeclaration":48396,"src":"22476:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":53195,"initialValue":{"arguments":[{"expression":{"id":53188,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22533:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":53189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22539:6:81","memberName":"number","nodeType":"MemberAccess","src":"22533:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":53192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22566:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22558:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":53190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22558:7:81","typeDescriptions":{}}},"id":53193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22558:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53187,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"22509:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$48396_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":53194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["22525:6:81","22547:9:81"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"22509:61:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"22476:94:81"},{"expression":{"arguments":[{"expression":{"id":53199,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"22660:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":53200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22671:12:81","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"22660:23:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53196,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22646:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22649:10:81","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"22646:13:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22646:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53202,"nodeType":"ExpressionStatement","src":"22646:38:81"},{"expression":{"arguments":[{"id":53206,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53186,"src":"22724:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":53203,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"22694:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22703:20:81","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39027,"src":"22694:29:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$48396_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":53207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22694:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":53208,"nodeType":"ExpressionStatement","src":"22694:39:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53209,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22743:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22746:9:81","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"22743:12:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":53212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22743:14:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53213,"nodeType":"ExpressionStatement","src":"22743:14:81"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"22177:12:81","parameters":{"id":53137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53134,"mutability":"mutable","name":"validator","nameLocation":"22198:9:81","nodeType":"VariableDeclaration","scope":53215,"src":"22190:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53133,"name":"address","nodeType":"ElementaryTypeName","src":"22190:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53136,"mutability":"mutable","name":"weight","nameLocation":"22217:6:81","nodeType":"VariableDeclaration","scope":53215,"src":"22209:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53135,"name":"uint256","nodeType":"ElementaryTypeName","src":"22209:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22189:35:81"},"returnParameters":{"id":53138,"nodeType":"ParameterList","parameters":[],"src":"22232:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53228,"nodeType":"FunctionDefinition","src":"22770:112:81","nodes":[],"body":{"id":53227,"nodeType":"Block","src":"22814:68:81","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":53223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22836:30:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":53224,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53217,"src":"22868:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53220,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"22824:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22832:3:81","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"22824:11:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":53225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22824:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53226,"nodeType":"ExpressionStatement","src":"22824:51:81"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"22779:6:81","parameters":{"id":53218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53217,"mutability":"mutable","name":"amount","nameLocation":"22794:6:81","nodeType":"VariableDeclaration","scope":53228,"src":"22786:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53216,"name":"uint256","nodeType":"ElementaryTypeName","src":"22786:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22785:16:81"},"returnParameters":{"id":53219,"nodeType":"ParameterList","parameters":[],"src":"22814:0:81"},"scope":54008,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":53327,"nodeType":"FunctionDefinition","src":"22888:968:81","nodes":[],"body":{"id":53326,"nodeType":"Block","src":"22952:904:81","nodes":[],"statements":[{"assignments":[53237,null,53239,null,53241,null],"declarations":[{"constant":false,"id":53237,"mutability":"mutable","name":"subnetId","nameLocation":"23044:8:81","nodeType":"VariableDeclaration","scope":53326,"src":"23028:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53236,"nodeType":"UserDefinedTypeName","pathNode":{"id":53235,"name":"SubnetID","nameLocations":["23028:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"23028:8:81"},"referencedDeclaration":48557,"src":"23028:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":53239,"mutability":"mutable","name":"nonceBefore","nameLocation":"23064:11:81","nodeType":"VariableDeclaration","scope":53326,"src":"23056:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53238,"name":"uint256","nodeType":"ElementaryTypeName","src":"23056:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":53241,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"23087:16:81","nodeType":"VariableDeclaration","scope":53326,"src":"23079:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53240,"name":"uint256","nodeType":"ElementaryTypeName","src":"23079:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":53248,"initialValue":{"arguments":[{"arguments":[{"id":53245,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"23127:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":53244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23119:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53243,"name":"address","nodeType":"ElementaryTypeName","src":"23119:7:81","typeDescriptions":{}}},"id":53246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23119:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53242,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"23109:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23109:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"23027:111:81"},{"assignments":[53250],"declarations":[{"constant":false,"id":53250,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"23157:25:81","nodeType":"VariableDeclaration","scope":53326,"src":"23149:33:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53249,"name":"uint256","nodeType":"ElementaryTypeName","src":"23149:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53257,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":53253,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53237,"src":"23221:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":53251,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"23185:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23194:26:81","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37318,"src":"23185:35:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":53254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23185:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23233:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23185:49:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23149:85:81"},{"assignments":[53259],"declarations":[{"constant":false,"id":53259,"mutability":"mutable","name":"expectedNonce","nameLocation":"23252:13:81","nodeType":"VariableDeclaration","scope":53326,"src":"23244:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53258,"name":"uint256","nodeType":"ElementaryTypeName","src":"23244:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53263,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53260,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53239,"src":"23268:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23282:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23268:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23244:39:81"},{"assignments":[53265],"declarations":[{"constant":false,"id":53265,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"23301:18:81","nodeType":"VariableDeclaration","scope":53326,"src":"23293:26:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53264,"name":"uint256","nodeType":"ElementaryTypeName","src":"23293:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53269,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53266,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53241,"src":"23322:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":53267,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53232,"src":"23341:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23322:29:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23293:58:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53271,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"23370:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23379:11:81","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37148,"src":"23370:20:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23370:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":53274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23395:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23370:26:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":53276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23398:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":53270,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23362:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23362:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53278,"nodeType":"ExpressionStatement","src":"23362:55:81"},{"expression":{"arguments":[{"id":53284,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53237,"src":"23462:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":53287,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"23494:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53285,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"23472:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23489:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"23472:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23472:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":53279,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"23428:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23438:4:81","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38311,"src":"23428:14:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":53283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53282,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53232,"src":"23450:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"23428:33:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23428:81:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53290,"nodeType":"ExpressionStatement","src":"23428:81:81"},{"assignments":[null,null,53292,null,53294,null],"declarations":[null,null,{"constant":false,"id":53292,"mutability":"mutable","name":"nonce","nameLocation":"23533:5:81","nodeType":"VariableDeclaration","scope":53326,"src":"23525:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53291,"name":"uint256","nodeType":"ElementaryTypeName","src":"23525:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":53294,"mutability":"mutable","name":"circSupply","nameLocation":"23550:10:81","nodeType":"VariableDeclaration","scope":53326,"src":"23542:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53293,"name":"uint256","nodeType":"ElementaryTypeName","src":"23542:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":53301,"initialValue":{"arguments":[{"arguments":[{"id":53298,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"23584:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":53297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23576:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53296,"name":"address","nodeType":"ElementaryTypeName","src":"23576:7:81","typeDescriptions":{}}},"id":53299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23576:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53295,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"23566:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23566:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"23520:75:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":53305,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53237,"src":"23650:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":53303,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"23614:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23623:26:81","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37318,"src":"23614:35:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":53306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23614:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53307,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53250,"src":"23663:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23614:74:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":53309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23690:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":53302,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23606:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23606:105:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53311,"nodeType":"ExpressionStatement","src":"23606:105:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53313,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53292,"src":"23730:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53314,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53259,"src":"23739:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23730:22:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":53316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23754:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":53312,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23722:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23722:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53318,"nodeType":"ExpressionStatement","src":"23722:51:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53320,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53294,"src":"23791:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53321,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53265,"src":"23805:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23791:32:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":53323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23825:23:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":53319,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23783:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23783:66:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53325,"nodeType":"ExpressionStatement","src":"23783:66:81"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"22897:4:81","parameters":{"id":53233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53230,"mutability":"mutable","name":"funderAddress","nameLocation":"22910:13:81","nodeType":"VariableDeclaration","scope":53327,"src":"22902:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53229,"name":"address","nodeType":"ElementaryTypeName","src":"22902:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53232,"mutability":"mutable","name":"fundAmount","nameLocation":"22933:10:81","nodeType":"VariableDeclaration","scope":53327,"src":"22925:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53231,"name":"uint256","nodeType":"ElementaryTypeName","src":"22925:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22901:43:81"},"returnParameters":{"id":53234,"nodeType":"ParameterList","parameters":[],"src":"22952:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53358,"nodeType":"FunctionDefinition","src":"23862:243:81","nodes":[],"body":{"id":53357,"nodeType":"Block","src":"23930:175:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53337,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53329,"src":"23949:16:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53334,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23940:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23943:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"23940:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23940:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53339,"nodeType":"ExpressionStatement","src":"23940:26:81"},{"expression":{"arguments":[{"id":53343,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53329,"src":"23984:16:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":53346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":53344,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"24002:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24030:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24002:29:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":53340,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23976:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23979:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"23976:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23976:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53348,"nodeType":"ExpressionStatement","src":"23976:56:81"},{"expression":{"arguments":[{"id":53354,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53331,"src":"24091:6:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":53349,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"24042:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":53351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24052:4:81","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"24042:14:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":53353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53352,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"24064:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"24042:48:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":53355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24042:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53356,"nodeType":"ExpressionStatement","src":"24042:56:81"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"23871:4:81","parameters":{"id":53332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53329,"mutability":"mutable","name":"validatorAddress","nameLocation":"23884:16:81","nodeType":"VariableDeclaration","scope":53358,"src":"23876:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53328,"name":"address","nodeType":"ElementaryTypeName","src":"23876:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53331,"mutability":"mutable","name":"pubkey","nameLocation":"23915:6:81","nodeType":"VariableDeclaration","scope":53358,"src":"23902:19:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53330,"name":"bytes","nodeType":"ElementaryTypeName","src":"23902:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"23875:47:81"},"returnParameters":{"id":53333,"nodeType":"ParameterList","parameters":[],"src":"23930:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53405,"nodeType":"FunctionDefinition","src":"24111:298:81","nodes":[],"body":{"id":53404,"nodeType":"Block","src":"24179:230:81","nodes":[],"statements":[{"assignments":[53369],"declarations":[{"constant":false,"id":53369,"mutability":"mutable","name":"validators","nameLocation":"24206:10:81","nodeType":"VariableDeclaration","scope":53404,"src":"24189:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53367,"name":"address","nodeType":"ElementaryTypeName","src":"24189:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53368,"nodeType":"ArrayTypeName","src":"24189:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53375,"initialValue":{"arguments":[{"hexValue":"31","id":53373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24233:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24219:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53370,"name":"address","nodeType":"ElementaryTypeName","src":"24223:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53371,"nodeType":"ArrayTypeName","src":"24223:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24219:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24189:46:81"},{"expression":{"id":53380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53376,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53369,"src":"24245:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53378,"indexExpression":{"hexValue":"30","id":53377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24256:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24245:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53379,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53360,"src":"24261:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24245:25:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53381,"nodeType":"ExpressionStatement","src":"24245:25:81"},{"assignments":[53386],"declarations":[{"constant":false,"id":53386,"mutability":"mutable","name":"privKeys","nameLocation":"24298:8:81","nodeType":"VariableDeclaration","scope":53404,"src":"24281:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53384,"name":"uint256","nodeType":"ElementaryTypeName","src":"24281:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53385,"nodeType":"ArrayTypeName","src":"24281:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53392,"initialValue":{"arguments":[{"hexValue":"31","id":53390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24323:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24309:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53387,"name":"uint256","nodeType":"ElementaryTypeName","src":"24313:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53388,"nodeType":"ArrayTypeName","src":"24313:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24309:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24281:44:81"},{"expression":{"id":53397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53393,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53386,"src":"24335:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53395,"indexExpression":{"hexValue":"30","id":53394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24344:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24335:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53396,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53362,"src":"24349:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24335:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53398,"nodeType":"ExpressionStatement","src":"24335:21:81"},{"expression":{"arguments":[{"id":53400,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53369,"src":"24381:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53401,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53386,"src":"24393:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":53399,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[53405,53468,53547,53698],"referencedDeclaration":53698,"src":"24367:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":53402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24367:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53403,"nodeType":"ExpressionStatement","src":"24367:35:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24120:13:81","parameters":{"id":53363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53360,"mutability":"mutable","name":"validator","nameLocation":"24142:9:81","nodeType":"VariableDeclaration","scope":53405,"src":"24134:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53359,"name":"address","nodeType":"ElementaryTypeName","src":"24134:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53362,"mutability":"mutable","name":"privKey","nameLocation":"24161:7:81","nodeType":"VariableDeclaration","scope":53405,"src":"24153:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53361,"name":"uint256","nodeType":"ElementaryTypeName","src":"24153:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24133:36:81"},"returnParameters":{"id":53364,"nodeType":"ParameterList","parameters":[],"src":"24179:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53468,"nodeType":"FunctionDefinition","src":"24415:408:81","nodes":[],"body":{"id":53467,"nodeType":"Block","src":"24523:300:81","nodes":[],"statements":[{"assignments":[53420],"declarations":[{"constant":false,"id":53420,"mutability":"mutable","name":"validators","nameLocation":"24550:10:81","nodeType":"VariableDeclaration","scope":53467,"src":"24533:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53418,"name":"address","nodeType":"ElementaryTypeName","src":"24533:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53419,"nodeType":"ArrayTypeName","src":"24533:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53426,"initialValue":{"arguments":[{"hexValue":"32","id":53424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24577:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24563:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53421,"name":"address","nodeType":"ElementaryTypeName","src":"24567:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53422,"nodeType":"ArrayTypeName","src":"24567:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24563:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24533:46:81"},{"expression":{"id":53431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53427,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53420,"src":"24589:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53429,"indexExpression":{"hexValue":"30","id":53428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24600:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24589:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53430,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53407,"src":"24605:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24589:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53432,"nodeType":"ExpressionStatement","src":"24589:26:81"},{"expression":{"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53433,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53420,"src":"24625:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53435,"indexExpression":{"hexValue":"31","id":53434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24636:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24625:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53436,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53411,"src":"24641:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24625:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53438,"nodeType":"ExpressionStatement","src":"24625:26:81"},{"assignments":[53443],"declarations":[{"constant":false,"id":53443,"mutability":"mutable","name":"privKeys","nameLocation":"24679:8:81","nodeType":"VariableDeclaration","scope":53467,"src":"24662:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53441,"name":"uint256","nodeType":"ElementaryTypeName","src":"24662:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53442,"nodeType":"ArrayTypeName","src":"24662:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53449,"initialValue":{"arguments":[{"hexValue":"32","id":53447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24704:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24690:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53444,"name":"uint256","nodeType":"ElementaryTypeName","src":"24694:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53445,"nodeType":"ArrayTypeName","src":"24694:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24690:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24662:44:81"},{"expression":{"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53450,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"24716:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53452,"indexExpression":{"hexValue":"30","id":53451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24725:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24716:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53453,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53409,"src":"24730:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24716:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53455,"nodeType":"ExpressionStatement","src":"24716:22:81"},{"expression":{"id":53460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53456,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"24748:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53458,"indexExpression":{"hexValue":"31","id":53457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24757:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24748:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53459,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53413,"src":"24762:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24748:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53461,"nodeType":"ExpressionStatement","src":"24748:22:81"},{"expression":{"arguments":[{"id":53463,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53420,"src":"24795:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53464,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"24807:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":53462,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[53405,53468,53547,53698],"referencedDeclaration":53698,"src":"24781:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":53465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24781:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53466,"nodeType":"ExpressionStatement","src":"24781:35:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24424:13:81","parameters":{"id":53414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53407,"mutability":"mutable","name":"validator1","nameLocation":"24446:10:81","nodeType":"VariableDeclaration","scope":53468,"src":"24438:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53406,"name":"address","nodeType":"ElementaryTypeName","src":"24438:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53409,"mutability":"mutable","name":"privKey1","nameLocation":"24466:8:81","nodeType":"VariableDeclaration","scope":53468,"src":"24458:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53408,"name":"uint256","nodeType":"ElementaryTypeName","src":"24458:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53411,"mutability":"mutable","name":"validator2","nameLocation":"24484:10:81","nodeType":"VariableDeclaration","scope":53468,"src":"24476:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53410,"name":"address","nodeType":"ElementaryTypeName","src":"24476:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53413,"mutability":"mutable","name":"privKey2","nameLocation":"24504:8:81","nodeType":"VariableDeclaration","scope":53468,"src":"24496:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53412,"name":"uint256","nodeType":"ElementaryTypeName","src":"24496:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24437:76:81"},"returnParameters":{"id":53415,"nodeType":"ParameterList","parameters":[],"src":"24523:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53547,"nodeType":"FunctionDefinition","src":"24829:568:81","nodes":[],"body":{"id":53546,"nodeType":"Block","src":"25029:368:81","nodes":[],"statements":[{"assignments":[53487],"declarations":[{"constant":false,"id":53487,"mutability":"mutable","name":"validators","nameLocation":"25056:10:81","nodeType":"VariableDeclaration","scope":53546,"src":"25039:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53485,"name":"address","nodeType":"ElementaryTypeName","src":"25039:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53486,"nodeType":"ArrayTypeName","src":"25039:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53493,"initialValue":{"arguments":[{"hexValue":"33","id":53491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25083:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":53490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25069:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53488,"name":"address","nodeType":"ElementaryTypeName","src":"25073:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53489,"nodeType":"ArrayTypeName","src":"25073:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25069:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"25039:46:81"},{"expression":{"id":53498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53494,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25095:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53496,"indexExpression":{"hexValue":"30","id":53495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25106:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25095:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53497,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53470,"src":"25111:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25095:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53499,"nodeType":"ExpressionStatement","src":"25095:26:81"},{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53500,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25131:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53502,"indexExpression":{"hexValue":"31","id":53501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25142:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25131:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53503,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53474,"src":"25147:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25131:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53505,"nodeType":"ExpressionStatement","src":"25131:26:81"},{"expression":{"id":53510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53506,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25167:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53508,"indexExpression":{"hexValue":"32","id":53507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25178:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25167:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53509,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53478,"src":"25183:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25167:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53511,"nodeType":"ExpressionStatement","src":"25167:26:81"},{"assignments":[53516],"declarations":[{"constant":false,"id":53516,"mutability":"mutable","name":"privKeys","nameLocation":"25221:8:81","nodeType":"VariableDeclaration","scope":53546,"src":"25204:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53514,"name":"uint256","nodeType":"ElementaryTypeName","src":"25204:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53515,"nodeType":"ArrayTypeName","src":"25204:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53522,"initialValue":{"arguments":[{"hexValue":"33","id":53520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25246:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":53519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25232:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53517,"name":"uint256","nodeType":"ElementaryTypeName","src":"25236:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53518,"nodeType":"ArrayTypeName","src":"25236:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25232:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"25204:44:81"},{"expression":{"id":53527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53523,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25258:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53525,"indexExpression":{"hexValue":"30","id":53524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25267:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25258:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53526,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53472,"src":"25272:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25258:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53528,"nodeType":"ExpressionStatement","src":"25258:22:81"},{"expression":{"id":53533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53529,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25290:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53531,"indexExpression":{"hexValue":"31","id":53530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25299:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25290:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53532,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53476,"src":"25304:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25290:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53534,"nodeType":"ExpressionStatement","src":"25290:22:81"},{"expression":{"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53535,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25322:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53537,"indexExpression":{"hexValue":"32","id":53536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25331:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25322:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53538,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53480,"src":"25336:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25322:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53540,"nodeType":"ExpressionStatement","src":"25322:22:81"},{"expression":{"arguments":[{"id":53542,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25369:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53543,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25381:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":53541,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[53405,53468,53547,53698],"referencedDeclaration":53698,"src":"25355:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":53544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25355:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53545,"nodeType":"ExpressionStatement","src":"25355:35:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24838:13:81","parameters":{"id":53481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53470,"mutability":"mutable","name":"validator1","nameLocation":"24869:10:81","nodeType":"VariableDeclaration","scope":53547,"src":"24861:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53469,"name":"address","nodeType":"ElementaryTypeName","src":"24861:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53472,"mutability":"mutable","name":"privKey1","nameLocation":"24897:8:81","nodeType":"VariableDeclaration","scope":53547,"src":"24889:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53471,"name":"uint256","nodeType":"ElementaryTypeName","src":"24889:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53474,"mutability":"mutable","name":"validator2","nameLocation":"24923:10:81","nodeType":"VariableDeclaration","scope":53547,"src":"24915:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53473,"name":"address","nodeType":"ElementaryTypeName","src":"24915:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53476,"mutability":"mutable","name":"privKey2","nameLocation":"24951:8:81","nodeType":"VariableDeclaration","scope":53547,"src":"24943:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53475,"name":"uint256","nodeType":"ElementaryTypeName","src":"24943:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53478,"mutability":"mutable","name":"validator3","nameLocation":"24977:10:81","nodeType":"VariableDeclaration","scope":53547,"src":"24969:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53477,"name":"address","nodeType":"ElementaryTypeName","src":"24969:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53480,"mutability":"mutable","name":"privKey3","nameLocation":"25005:8:81","nodeType":"VariableDeclaration","scope":53547,"src":"24997:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53479,"name":"uint256","nodeType":"ElementaryTypeName","src":"24997:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24851:168:81"},"returnParameters":{"id":53482,"nodeType":"ParameterList","parameters":[],"src":"25029:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53698,"nodeType":"FunctionDefinition","src":"25403:1102:81","nodes":[],"body":{"id":53697,"nodeType":"Block","src":"25491:1014:81","nodes":[],"statements":[{"assignments":[53557],"declarations":[{"constant":false,"id":53557,"mutability":"mutable","name":"n","nameLocation":"25509:1:81","nodeType":"VariableDeclaration","scope":53697,"src":"25501:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53556,"name":"uint256","nodeType":"ElementaryTypeName","src":"25501:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53560,"initialValue":{"expression":{"id":53558,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53550,"src":"25513:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25524:6:81","memberName":"length","nodeType":"MemberAccess","src":"25513:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25501:29:81"},{"assignments":[53565],"declarations":[{"constant":false,"id":53565,"mutability":"mutable","name":"signatures","nameLocation":"25556:10:81","nodeType":"VariableDeclaration","scope":53697,"src":"25541:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":53563,"name":"bytes","nodeType":"ElementaryTypeName","src":"25541:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":53564,"nodeType":"ArrayTypeName","src":"25541:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":53571,"initialValue":{"arguments":[{"id":53569,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53557,"src":"25581:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25569:11:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":53566,"name":"bytes","nodeType":"ElementaryTypeName","src":"25573:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":53567,"nodeType":"ArrayTypeName","src":"25573:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25569:14:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"25541:42:81"},{"assignments":[53573,null],"declarations":[{"constant":false,"id":53573,"mutability":"mutable","name":"nextConfigNum","nameLocation":"25602:13:81","nodeType":"VariableDeclaration","scope":53697,"src":"25595:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53572,"name":"uint64","nodeType":"ElementaryTypeName","src":"25595:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":53577,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53574,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25621:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25630:23:81","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":48814,"src":"25621:32:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":53576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25621:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"25594:61:81"},{"assignments":[53579],"declarations":[{"constant":false,"id":53579,"mutability":"mutable","name":"h","nameLocation":"25674:1:81","nodeType":"VariableDeclaration","scope":53697,"src":"25666:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53578,"name":"uint256","nodeType":"ElementaryTypeName","src":"25666:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53587,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53580,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25678:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25687:28:81","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":48937,"src":"25678:37:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25678:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53583,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25720:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25729:19:81","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":48919,"src":"25720:28:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":53585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25720:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25678:72:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25666:84:81"},{"assignments":[53590],"declarations":[{"constant":false,"id":53590,"mutability":"mutable","name":"checkpoint","nameLocation":"25787:10:81","nodeType":"VariableDeclaration","scope":53697,"src":"25761:36:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":53589,"nodeType":"UserDefinedTypeName","pathNode":{"id":53588,"name":"BottomUpCheckpoint","nameLocations":["25761:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"25761:18:81"},"referencedDeclaration":48410,"src":"25761:18:81","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":53612,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":53598,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"25887:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":53597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25879:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53596,"name":"address","nodeType":"ElementaryTypeName","src":"25879:7:81","typeDescriptions":{}}},"id":53599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25879:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53592,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25843:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25852:9:81","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":48750,"src":"25843:18:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25843:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25864:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"25843:35:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25843:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53601,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53579,"src":"25925:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":53605,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53579,"src":"25972:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53603,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25961:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25965:6:81","memberName":"encode","nodeType":"MemberAccess","src":"25961:10:81","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25961:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53602,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"25951:9:81","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25951:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":53610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53608,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53573,"src":"26014:13:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":53609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26030:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26014:17:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":53591,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"25800:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$48410_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":53611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25833:8:81","25912:11:81","25940:9:81","25989:23:81"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"25800:242:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"25761:281:81"},{"expression":{"arguments":[{"arguments":[{"id":53618,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"26069:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":53617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26061:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53616,"name":"address","nodeType":"ElementaryTypeName","src":"26061:7:81","typeDescriptions":{}}},"id":53619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26061:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26081:9:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":53613,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26053:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26056:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26053:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26053:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53622,"nodeType":"ExpressionStatement","src":"26053:38:81"},{"assignments":[53624],"declarations":[{"constant":false,"id":53624,"mutability":"mutable","name":"hash","nameLocation":"26110:4:81","nodeType":"VariableDeclaration","scope":53697,"src":"26102:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26102:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":53631,"initialValue":{"arguments":[{"arguments":[{"id":53628,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53590,"src":"26138:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":53626,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26127:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26131:6:81","memberName":"encode","nodeType":"MemberAccess","src":"26127:10:81","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26127:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53625,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"26117:9:81","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26117:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26102:48:81"},{"body":{"id":53667,"nodeType":"Block","src":"26193:140:81","statements":[{"assignments":[53643,53645,53647],"declarations":[{"constant":false,"id":53643,"mutability":"mutable","name":"v","nameLocation":"26214:1:81","nodeType":"VariableDeclaration","scope":53667,"src":"26208:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53642,"name":"uint8","nodeType":"ElementaryTypeName","src":"26208:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53645,"mutability":"mutable","name":"r","nameLocation":"26225:1:81","nodeType":"VariableDeclaration","scope":53667,"src":"26217:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26217:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":53647,"mutability":"mutable","name":"s","nameLocation":"26236:1:81","nodeType":"VariableDeclaration","scope":53667,"src":"26228:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26228:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":53655,"initialValue":{"arguments":[{"baseExpression":{"id":53650,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53553,"src":"26249:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53652,"indexExpression":{"id":53651,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26258:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26249:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53653,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53624,"src":"26262:4:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":53648,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26241:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26244:4:81","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"26241:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26241:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"26207:60:81"},{"expression":{"id":53665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53656,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53565,"src":"26281:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":53658,"indexExpression":{"id":53657,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26292:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26281:13:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53661,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53645,"src":"26314:1:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":53662,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53647,"src":"26317:1:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":53663,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53643,"src":"26320:1:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":53659,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26297:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26301:12:81","memberName":"encodePacked","nodeType":"MemberAccess","src":"26297:16:81","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26297:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"26281:41:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":53666,"nodeType":"ExpressionStatement","src":"26281:41:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26181:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":53637,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53557,"src":"26185:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26181:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53668,"initializationExpression":{"assignments":[53633],"declarations":[{"constant":false,"id":53633,"mutability":"mutable","name":"i","nameLocation":"26174:1:81","nodeType":"VariableDeclaration","scope":53668,"src":"26166:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53632,"name":"uint256","nodeType":"ElementaryTypeName","src":"26166:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53635,"initialValue":{"hexValue":"30","id":53634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26178:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26166:13:81"},"loopExpression":{"expression":{"id":53640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26188:3:81","subExpression":{"id":53639,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26188:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53641,"nodeType":"ExpressionStatement","src":"26188:3:81"},"nodeType":"ForStatement","src":"26161:172:81"},{"body":{"id":53695,"nodeType":"Block","src":"26375:124:81","statements":[{"expression":{"arguments":[{"baseExpression":{"id":53682,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53550,"src":"26398:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53684,"indexExpression":{"id":53683,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53670,"src":"26409:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26398:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53679,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26389:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26392:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26389:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26389:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53686,"nodeType":"ExpressionStatement","src":"26389:23:81"},{"expression":{"arguments":[{"id":53690,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53590,"src":"26453:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":53691,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53550,"src":"26465:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53692,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53565,"src":"26477:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":53687,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"26426:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":53689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26436:16:81","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":49634,"src":"26426:26:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26426:62:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53694,"nodeType":"ExpressionStatement","src":"26426:62:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53673,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53670,"src":"26363:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":53674,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53557,"src":"26367:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26363:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53696,"initializationExpression":{"assignments":[53670],"declarations":[{"constant":false,"id":53670,"mutability":"mutable","name":"i","nameLocation":"26356:1:81","nodeType":"VariableDeclaration","scope":53696,"src":"26348:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53669,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53672,"initialValue":{"hexValue":"30","id":53671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26360:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26348:13:81"},"loopExpression":{"expression":{"id":53677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26370:3:81","subExpression":{"id":53676,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53670,"src":"26370:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53678,"nodeType":"ExpressionStatement","src":"26370:3:81"},"nodeType":"ForStatement","src":"26343:156:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"25412:13:81","parameters":{"id":53554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53550,"mutability":"mutable","name":"validators","nameLocation":"25443:10:81","nodeType":"VariableDeclaration","scope":53698,"src":"25426:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53548,"name":"address","nodeType":"ElementaryTypeName","src":"25426:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53549,"nodeType":"ArrayTypeName","src":"25426:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":53553,"mutability":"mutable","name":"privKeys","nameLocation":"25472:8:81","nodeType":"VariableDeclaration","scope":53698,"src":"25455:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53551,"name":"uint256","nodeType":"ElementaryTypeName","src":"25455:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53552,"nodeType":"ArrayTypeName","src":"25455:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"25425:56:81"},"returnParameters":{"id":53555,"nodeType":"ParameterList","parameters":[],"src":"25491:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53733,"nodeType":"FunctionDefinition","src":"26511:305:81","nodes":[],"body":{"id":53732,"nodeType":"Block","src":"26558:258:81","nodes":[],"statements":[{"assignments":[53704],"declarations":[{"constant":false,"id":53704,"mutability":"mutable","name":"expectedNonce","nameLocation":"26576:13:81","nodeType":"VariableDeclaration","scope":53732,"src":"26568:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53703,"name":"uint256","nodeType":"ElementaryTypeName","src":"26568:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53710,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":53709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53705,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"26592:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26601:13:81","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37157,"src":"26592:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":53707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26592:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26619:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26592:28:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26568:52:81"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":53718,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"26692:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26696:6:81","memberName":"sender","nodeType":"MemberAccess","src":"26692:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53716,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"26670:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26687:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"26670:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26670:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":53711,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"26630:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26640:7:81","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38358,"src":"26630:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":53715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53714,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53700,"src":"26655:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26630:39:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":53721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26630:74:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53722,"nodeType":"ExpressionStatement","src":"26630:74:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53724,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"26722:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26731:13:81","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37157,"src":"26722:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":53726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26722:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53727,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53704,"src":"26750:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26722:41:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":53729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26765:43:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":53723,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26714:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26714:95:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53731,"nodeType":"ExpressionStatement","src":"26714:95:81"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"26520:7:81","parameters":{"id":53701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53700,"mutability":"mutable","name":"releaseAmount","nameLocation":"26536:13:81","nodeType":"VariableDeclaration","scope":53733,"src":"26528:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53699,"name":"uint256","nodeType":"ElementaryTypeName","src":"26528:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26527:23:81"},"returnParameters":{"id":53702,"nodeType":"ParameterList","parameters":[],"src":"26558:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53788,"nodeType":"FunctionDefinition","src":"26822:540:81","nodes":[],"body":{"id":53787,"nodeType":"Block","src":"26891:471:81","nodes":[],"statements":[{"assignments":[53741],"declarations":[{"constant":false,"id":53741,"mutability":"mutable","name":"balanceBefore","nameLocation":"26909:13:81","nodeType":"VariableDeclaration","scope":53787,"src":"26901:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53740,"name":"uint256","nodeType":"ElementaryTypeName","src":"26901:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53744,"initialValue":{"expression":{"id":53742,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"26925:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26939:7:81","memberName":"balance","nodeType":"MemberAccess","src":"26925:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26901:45:81"},{"assignments":[null,53746,null,null,null,null],"declarations":[null,{"constant":false,"id":53746,"mutability":"mutable","name":"stakedBefore","nameLocation":"26968:12:81","nodeType":"VariableDeclaration","scope":53787,"src":"26960:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53745,"name":"uint256","nodeType":"ElementaryTypeName","src":"26960:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null,null],"id":53750,"initialValue":{"arguments":[{"id":53748,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"27002:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53747,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"26992:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26992:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"26957:59:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":53751,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"27027:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27037:8:81","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38090,"src":"27027:18:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":53755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53754,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"27053:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"27027:38:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":53756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27027:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53757,"nodeType":"ExpressionStatement","src":"27027:40:81"},{"assignments":[53759],"declarations":[{"constant":false,"id":53759,"mutability":"mutable","name":"balanceAfter","nameLocation":"27086:12:81","nodeType":"VariableDeclaration","scope":53787,"src":"27078:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53758,"name":"uint256","nodeType":"ElementaryTypeName","src":"27078:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53762,"initialValue":{"expression":{"id":53760,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"27101:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27115:7:81","memberName":"balance","nodeType":"MemberAccess","src":"27101:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27078:44:81"},{"assignments":[null,53764,null,null,null,null],"declarations":[null,{"constant":false,"id":53764,"mutability":"mutable","name":"stakedAfter","nameLocation":"27143:11:81","nodeType":"VariableDeclaration","scope":53787,"src":"27135:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53763,"name":"uint256","nodeType":"ElementaryTypeName","src":"27135:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null,null],"id":53768,"initialValue":{"arguments":[{"id":53766,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"27176:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53765,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"27166:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27166:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"27132:58:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53770,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53759,"src":"27209:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53771,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53741,"src":"27225:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":53772,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"27241:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27225:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27209:43:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":53775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27254:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":53769,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27201:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27201:74:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53777,"nodeType":"ExpressionStatement","src":"27201:74:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53779,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53764,"src":"27293:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53780,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53746,"src":"27308:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":53781,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"27323:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27308:26:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27293:41:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":53784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27336:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":53778,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27285:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27285:70:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53786,"nodeType":"ExpressionStatement","src":"27285:70:81"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"26831:8:81","parameters":{"id":53738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53735,"mutability":"mutable","name":"stakeAmount","nameLocation":"26848:11:81","nodeType":"VariableDeclaration","scope":53788,"src":"26840:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53734,"name":"uint256","nodeType":"ElementaryTypeName","src":"26840:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53737,"mutability":"mutable","name":"subnetAddress","nameLocation":"26869:13:81","nodeType":"VariableDeclaration","scope":53788,"src":"26861:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53736,"name":"address","nodeType":"ElementaryTypeName","src":"26861:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26839:44:81"},"returnParameters":{"id":53739,"nodeType":"ParameterList","parameters":[],"src":"26891:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53884,"nodeType":"FunctionDefinition","src":"27368:891:81","nodes":[],"body":{"id":53883,"nodeType":"Block","src":"27463:796:81","nodes":[],"statements":[{"assignments":[53800],"declarations":[{"constant":false,"id":53800,"mutability":"mutable","name":"manager","nameLocation":"27493:7:81","nodeType":"VariableDeclaration","scope":53883,"src":"27473:27:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53799,"nodeType":"UserDefinedTypeName","pathNode":{"id":53798,"name":"GatewayManagerFacet","nameLocations":["27473:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"27473:19:81"},"referencedDeclaration":38359,"src":"27473:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53807,"initialValue":{"arguments":[{"arguments":[{"id":53804,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53795,"src":"27531:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27523:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53802,"name":"address","nodeType":"ElementaryTypeName","src":"27523:7:81","typeDescriptions":{}}},"id":53805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27523:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53801,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"27503:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27503:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"27473:62:81"},{"expression":{"arguments":[{"hexValue":"30","id":53813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27582:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":53808,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53800,"src":"27546:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27554:8:81","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38030,"src":"27546:16:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":53812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53811,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53790,"src":"27570:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"27546:35:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":53814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27546:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53815,"nodeType":"ExpressionStatement","src":"27546:38:81"},{"assignments":[53818,53820,53822,null,53824,53827],"declarations":[{"constant":false,"id":53818,"mutability":"mutable","name":"id","nameLocation":"27612:2:81","nodeType":"VariableDeclaration","scope":53883,"src":"27596:18:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53817,"nodeType":"UserDefinedTypeName","pathNode":{"id":53816,"name":"SubnetID","nameLocations":["27596:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"27596:8:81"},"referencedDeclaration":48557,"src":"27596:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":53820,"mutability":"mutable","name":"stake","nameLocation":"27624:5:81","nodeType":"VariableDeclaration","scope":53883,"src":"27616:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53819,"name":"uint256","nodeType":"ElementaryTypeName","src":"27616:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53822,"mutability":"mutable","name":"topDownNonce","nameLocation":"27639:12:81","nodeType":"VariableDeclaration","scope":53883,"src":"27631:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53821,"name":"uint256","nodeType":"ElementaryTypeName","src":"27631:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":53824,"mutability":"mutable","name":"circSupply","nameLocation":"27663:10:81","nodeType":"VariableDeclaration","scope":53883,"src":"27655:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53823,"name":"uint256","nodeType":"ElementaryTypeName","src":"27655:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53827,"mutability":"mutable","name":"status","nameLocation":"27682:6:81","nodeType":"VariableDeclaration","scope":53883,"src":"27675:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":53826,"nodeType":"UserDefinedTypeName","pathNode":{"id":53825,"name":"Status","nameLocations":["27675:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"27675:6:81"},"referencedDeclaration":36932,"src":"27675:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"}],"id":53832,"initialValue":{"arguments":[{"id":53829,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53792,"src":"27717:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53830,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53795,"src":"27744:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53828,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53982,"src":"27692:11:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$35759_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27692:64:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"27595:161:81"},{"assignments":[53835],"declarations":[{"constant":false,"id":53835,"mutability":"mutable","name":"parentNetwork","nameLocation":"27783:13:81","nodeType":"VariableDeclaration","scope":53883,"src":"27767:29:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53834,"nodeType":"UserDefinedTypeName","pathNode":{"id":53833,"name":"SubnetID","nameLocations":["27767:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"27767:8:81"},"referencedDeclaration":48557,"src":"27767:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53836,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"27799:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27808:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"27799:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27799:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"27767:57:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":53850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53841,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53818,"src":"27856:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27859:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"27856:9:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":53843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27856:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":53846,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53792,"src":"27900:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53844,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53835,"src":"27871:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27885:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"27871:28:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27871:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27915:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"27871:50:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":53849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27871:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"27856:67:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":53851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27937:69:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":53840,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27835:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27835:181:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53853,"nodeType":"ExpressionStatement","src":"27835:181:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53855,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53820,"src":"28034:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53856,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53790,"src":"28043:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28034:19:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":53858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28055:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":53854,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28026:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28026:48:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53860,"nodeType":"ExpressionStatement","src":"28026:48:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53862,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53822,"src":"28092:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28108:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28092:17:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28111:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":53861,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28084:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28084:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53867,"nodeType":"ExpressionStatement","src":"28084:46:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53869,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53824,"src":"28148:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28162:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28148:15:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":53872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28165:23:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":53868,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28140:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28140:49:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53874,"nodeType":"ExpressionStatement","src":"28140:49:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53876,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53827,"src":"28207:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":53877,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"28217:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$36932_$","typeString":"type(enum Status)"}},"id":53878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28224:6:81","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":36927,"src":"28217:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"src":"28207:23:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e657870656374656420737461747573","id":53880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28232:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba313606cd95d33cf8055f53d8400718c19a556faf6b3b571b4ee34226df46ef","typeString":"literal_string \"unexpected status\""},"value":"unexpected status"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba313606cd95d33cf8055f53d8400718c19a556faf6b3b571b4ee34226df46ef","typeString":"literal_string \"unexpected status\""}],"id":53875,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28199:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28199:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53882,"nodeType":"ExpressionStatement","src":"28199:53:81"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"27377:16:81","parameters":{"id":53796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53790,"mutability":"mutable","name":"collateral","nameLocation":"27402:10:81","nodeType":"VariableDeclaration","scope":53884,"src":"27394:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53789,"name":"uint256","nodeType":"ElementaryTypeName","src":"27394:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53792,"mutability":"mutable","name":"subnetAddress","nameLocation":"27422:13:81","nodeType":"VariableDeclaration","scope":53884,"src":"27414:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53791,"name":"address","nodeType":"ElementaryTypeName","src":"27414:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53795,"mutability":"mutable","name":"gw","nameLocation":"27452:2:81","nodeType":"VariableDeclaration","scope":53884,"src":"27437:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":53794,"nodeType":"UserDefinedTypeName","pathNode":{"id":53793,"name":"GatewayDiamond","nameLocations":["27437:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"27437:14:81"},"referencedDeclaration":35759,"src":"27437:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"27393:62:81"},"returnParameters":{"id":53797,"nodeType":"ParameterList","parameters":[],"src":"27463:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53898,"nodeType":"FunctionDefinition","src":"28265:150:81","nodes":[],"body":{"id":53897,"nodeType":"Block","src":"28339:76:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53892,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53886,"src":"28366:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53893,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53888,"src":"28378:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53894,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"28393:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53891,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53884,"src":"28349:16:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$35759_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":53895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28349:59:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53896,"nodeType":"ExpressionStatement","src":"28349:59:81"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"28274:14:81","parameters":{"id":53889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53886,"mutability":"mutable","name":"collateral","nameLocation":"28297:10:81","nodeType":"VariableDeclaration","scope":53898,"src":"28289:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53885,"name":"uint256","nodeType":"ElementaryTypeName","src":"28289:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53888,"mutability":"mutable","name":"subnetAddress","nameLocation":"28317:13:81","nodeType":"VariableDeclaration","scope":53898,"src":"28309:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53887,"name":"address","nodeType":"ElementaryTypeName","src":"28309:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28288:43:81"},"returnParameters":{"id":53890,"nodeType":"ParameterList","parameters":[],"src":"28339:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53982,"nodeType":"FunctionDefinition","src":"28421:698:81","nodes":[],"body":{"id":53981,"nodeType":"Block","src":"28583:536:81","nodes":[],"statements":[{"expression":{"id":53927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53920,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"28593:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53924,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53903,"src":"28631:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28623:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53922,"name":"address","nodeType":"ElementaryTypeName","src":"28623:7:81","typeDescriptions":{}}},"id":53925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28623:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53921,"name":"GatewayRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39706,"src":"28604:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayRouterFacet_$39706_$","typeString":"type(contract GatewayRouterFacet)"}},"id":53926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"src":"28593:42:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53928,"nodeType":"ExpressionStatement","src":"28593:42:81"},{"expression":{"id":53936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53929,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"28645:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53933,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53903,"src":"28685:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28677:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53931,"name":"address","nodeType":"ElementaryTypeName","src":"28677:7:81","typeDescriptions":{}}},"id":53934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28677:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53930,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"28657:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28657:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"src":"28645:44:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53937,"nodeType":"ExpressionStatement","src":"28645:44:81"},{"expression":{"id":53945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53938,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"28699:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53942,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53903,"src":"28737:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28729:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53940,"name":"address","nodeType":"ElementaryTypeName","src":"28729:7:81","typeDescriptions":{}}},"id":53943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28729:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53939,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"28710:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$37869_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28710:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"src":"28699:42:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53946,"nodeType":"ExpressionStatement","src":"28699:42:81"},{"assignments":[53949],"declarations":[{"constant":false,"id":53949,"mutability":"mutable","name":"subnetId","nameLocation":"28768:8:81","nodeType":"VariableDeclaration","scope":53981,"src":"28752:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53948,"nodeType":"UserDefinedTypeName","pathNode":{"id":53947,"name":"SubnetID","nameLocations":["28752:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"28752:8:81"},"referencedDeclaration":48557,"src":"28752:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53956,"initialValue":{"arguments":[{"id":53954,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53900,"src":"28820:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53950,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"28779:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28788:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"28779:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28779:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28805:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"28779:40:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28779:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"28752:82:81"},{"assignments":[53959],"declarations":[{"constant":false,"id":53959,"mutability":"mutable","name":"subnet","nameLocation":"28859:6:81","nodeType":"VariableDeclaration","scope":53981,"src":"28845:20:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":53958,"nodeType":"UserDefinedTypeName","pathNode":{"id":53957,"name":"Subnet","nameLocations":["28845:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"28845:6:81"},"referencedDeclaration":48574,"src":"28845:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":53966,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53962,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53949,"src":"28885:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28894:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"28885:15:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":53964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28885:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":53960,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"28868:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28877:7:81","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37297,"src":"28868:16:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$48574_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":53965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28868:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"28845:58:81"},{"expression":{"components":[{"expression":{"id":53967,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"28935:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28942:2:81","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":48573,"src":"28935:9:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":53969,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"28958:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28965:5:81","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":48559,"src":"28958:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53971,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"28984:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28991:12:81","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":48565,"src":"28984:19:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":53973,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"29017:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29024:20:81","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":48567,"src":"29017:27:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":53975,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"29058:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29065:10:81","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":48563,"src":"29058:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53977,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"29089:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29096:6:81","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":48570,"src":"29089:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}}],"id":53979,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28921:191:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256,enum Status)"}},"functionReturnParameters":53919,"id":53980,"nodeType":"Return","src":"28914:198:81"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"28430:11:81","parameters":{"id":53904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53900,"mutability":"mutable","name":"subnetAddress","nameLocation":"28459:13:81","nodeType":"VariableDeclaration","scope":53982,"src":"28451:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53899,"name":"address","nodeType":"ElementaryTypeName","src":"28451:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53903,"mutability":"mutable","name":"gw","nameLocation":"28497:2:81","nodeType":"VariableDeclaration","scope":53982,"src":"28482:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":53902,"nodeType":"UserDefinedTypeName","pathNode":{"id":53901,"name":"GatewayDiamond","nameLocations":["28482:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"28482:14:81"},"referencedDeclaration":35759,"src":"28482:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"28441:64:81"},"returnParameters":{"id":53919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28522:15:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53906,"nodeType":"UserDefinedTypeName","pathNode":{"id":53905,"name":"SubnetID","nameLocations":["28522:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"28522:8:81"},"referencedDeclaration":48557,"src":"28522:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":53909,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28539:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53908,"name":"uint256","nodeType":"ElementaryTypeName","src":"28539:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53911,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28548:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53910,"name":"uint256","nodeType":"ElementaryTypeName","src":"28548:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28557:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53912,"name":"uint256","nodeType":"ElementaryTypeName","src":"28557:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53915,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28566:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53914,"name":"uint256","nodeType":"ElementaryTypeName","src":"28566:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28575:6:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":53917,"nodeType":"UserDefinedTypeName","pathNode":{"id":53916,"name":"Status","nameLocations":["28575:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"28575:6:81"},"referencedDeclaration":36932,"src":"28575:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"}],"src":"28521:61:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54007,"nodeType":"FunctionDefinition","src":"29125:199:81","nodes":[],"body":{"id":54006,"nodeType":"Block","src":"29258:66:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":54002,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53984,"src":"29287:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54003,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"29302:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":54001,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53982,"src":"29275:11:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$35759_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":54004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29275:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"functionReturnParameters":54000,"id":54005,"nodeType":"Return","src":"29268:49:81"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"29134:9:81","parameters":{"id":53985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53984,"mutability":"mutable","name":"subnetAddress","nameLocation":"29161:13:81","nodeType":"VariableDeclaration","scope":54007,"src":"29153:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53983,"name":"address","nodeType":"ElementaryTypeName","src":"29153:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29143:37:81"},"returnParameters":{"id":54000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29197:15:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53987,"nodeType":"UserDefinedTypeName","pathNode":{"id":53986,"name":"SubnetID","nameLocations":["29197:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"29197:8:81"},"referencedDeclaration":48557,"src":"29197:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":53990,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29214:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53989,"name":"uint256","nodeType":"ElementaryTypeName","src":"29214:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29223:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53991,"name":"uint256","nodeType":"ElementaryTypeName","src":"29223:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29232:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53993,"name":"uint256","nodeType":"ElementaryTypeName","src":"29232:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29241:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53995,"name":"uint256","nodeType":"ElementaryTypeName","src":"29241:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29250:6:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":53998,"nodeType":"UserDefinedTypeName","pathNode":{"id":53997,"name":"Status","nameLocations":["29250:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"29250:6:81"},"referencedDeclaration":36932,"src":"29250:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"}],"src":"29196:61:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":51793,"name":"Test","nameLocations":["7639:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"7639:4:81"},"id":51794,"nodeType":"InheritanceSpecifier","src":"7639:4:81"},{"baseName":{"id":51795,"name":"TestParams","nameLocations":["7645:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"7645:10:81"},"id":51796,"nodeType":"InheritanceSpecifier","src":"7645:10:81"},{"baseName":{"id":51797,"name":"TestRegistry","nameLocations":["7657:12:81"],"nodeType":"IdentifierPath","referencedDeclaration":51537,"src":"7657:12:81"},"id":51798,"nodeType":"InheritanceSpecifier","src":"7657:12:81"},{"baseName":{"id":51799,"name":"TestSubnetActor","nameLocations":["7671:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":51792,"src":"7671:15:81"},"id":51800,"nodeType":"InheritanceSpecifier","src":"7671:15:81"},{"baseName":{"id":51801,"name":"TestGatewayActor","nameLocations":["7688:16:81"],"nodeType":"IdentifierPath","referencedDeclaration":51670,"src":"7688:16:81"},"id":51802,"nodeType":"InheritanceSpecifier","src":"7688:16:81"}],"canonicalName":"IntegrationTestBase","contractDependencies":[35759,36177,36415,36477,36914,37869,38359,38674,39706,49325,50947,51075,51313,56069],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54008,51670,51792,51537,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"7616:19:81","scope":54009,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":81} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea26469706673582212206e5aa7f8a333e2e9cb8449189dbf72469c3bf796a5e7685e92c7a1658f71e0c664736f6c63430008130033","sourceMap":"2479:1194:88:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212206e5aa7f8a333e2e9cb8449189dbf72469c3bf796a5e7685e92c7a1658f71e0c664736f6c63430008130033","sourceMap":"2479:1194:88:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/IntegrationTestBase.sol\":\"TestParams\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20\",\"dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f\",\"dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496\",\"dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT\"]},\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be\",\"dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/mocks/SubnetActorManagerFacetMock.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestParams"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec","urls":["bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20","dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870","urls":["bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f","dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692","urls":["bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496","dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT"],"license":"MIT OR Apache-2.0"},"test/helpers/SelectorLibrary.sol":{"keccak256":"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd","urls":["bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be","dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorManagerFacetMock.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":55376,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"BottomUpRouterFacet":[39601],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"CollateralIsZero":[37390],"ConsensusType":[37359],"CrossMsg":[49974],"CrossMsgHelper":[40781],"DSTest":[3720],"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"DuplicatedGenesisValidator":[37530],"EMPTY_BYTES":[36873],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"FilAddress":[1428],"FvmAddress":[49998],"FvmAddressHelper":[40962],"GatewayCannotBeZero":[37400],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IDiamond":[40170],"IPCAddress":[50204],"IntegrationTestBase":[55375],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"METHOD_SEND":[36879],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinality":[49918],"ParentFinalityAlreadyCommitted":[37498],"PermissionMode":[50165],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"RegisterSubnetFacet":[52279],"SelectorLibrary":[56263],"SignatureReplay":[37502],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[50887],"SubnetActorManagerFacet":[52151],"SubnetActorManagerFacetMock":[57957],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetGetterFacet":[52517],"SubnetID":[50077],"SubnetIDHelper":[48072],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SubnetRegistryDiamond":[36853],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[52912],"TestParams":[52683],"TestRegistry":[52747],"TestSubnetActor":[53037],"TestUtils":[57051],"TopDownFinalityFacet":[40071],"UnknownSubnet":[37522],"Validator":[50211],"Vm":[14222],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"XnetMessagingFacet":[40144],"ZeroMembershipWeight":[37512],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:31883:88","nodes":[{"id":52519,"nodeType":"PragmaDirective","src":"46:23:88","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52520,"nodeType":"ImportDirective","src":"71:28:88","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52521,"nodeType":"ImportDirective","src":"100:36:88","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":52522,"nodeType":"ImportDirective","src":"137:37:88","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52525,"nodeType":"ImportDirective","src":"176:72:88","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52523,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"184:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52524,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"197:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52527,"nodeType":"ImportDirective","src":"249:61:88","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52526,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"257:13:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52529,"nodeType":"ImportDirective","src":"311:56:88","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52528,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"319:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52534,"nodeType":"ImportDirective","src":"368:102:88","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":52530,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"376:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52531,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"386:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52532,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"406:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52533,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"419:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52536,"nodeType":"ImportDirective","src":"471:57:88","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":52535,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"479:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52545,"nodeType":"ImportDirective","src":"529:140:88","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":52537,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"537:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"547:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"559:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52540,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"575:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52541,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"591:6:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52542,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"599:12:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52543,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"613:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52544,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"625:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52547,"nodeType":"ImportDirective","src":"670:61:88","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":52546,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"678:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52549,"nodeType":"ImportDirective","src":"732:65:88","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40963,"symbolAliases":[{"foreign":{"id":52548,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"740:16:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52551,"nodeType":"ImportDirective","src":"798:61:88","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":52550,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"806:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52553,"nodeType":"ImportDirective","src":"860:67:88","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":52552,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"868:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52555,"nodeType":"ImportDirective","src":"928:56:88","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52554,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"936:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52557,"nodeType":"ImportDirective","src":"985:57:88","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52556,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"993:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52559,"nodeType":"ImportDirective","src":"1043:65:88","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52558,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1051:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52561,"nodeType":"ImportDirective","src":"1109:73:88","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52560,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1117:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52563,"nodeType":"ImportDirective","src":"1183:79:88","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52562,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1191:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52565,"nodeType":"ImportDirective","src":"1263:75:88","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52564,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1271:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52567,"nodeType":"ImportDirective","src":"1340:80:88","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52566,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1348:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52569,"nodeType":"ImportDirective","src":"1421:80:88","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52568,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1429:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52571,"nodeType":"ImportDirective","src":"1502:84:88","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52570,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1510:20:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52573,"nodeType":"ImportDirective","src":"1587:82:88","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52572,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1595:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52575,"nodeType":"ImportDirective","src":"1671:84:88","nodes":[],"absolutePath":"test/mocks/SubnetActorManagerFacetMock.sol","file":"./mocks/SubnetActorManagerFacetMock.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57958,"symbolAliases":[{"foreign":{"id":52574,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57957,"src":"1679:27:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52577,"nodeType":"ImportDirective","src":"1756:82:88","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52152,"symbolAliases":[{"foreign":{"id":52576,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"1764:23:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52579,"nodeType":"ImportDirective","src":"1839:80:88","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":52578,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1847:22:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52581,"nodeType":"ImportDirective","src":"1920:71:88","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52580,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"1928:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52583,"nodeType":"ImportDirective","src":"1992:82:88","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52280,"symbolAliases":[{"foreign":{"id":52582,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52279,"src":"2000:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52585,"nodeType":"ImportDirective","src":"2075:78:88","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52518,"symbolAliases":[{"foreign":{"id":52584,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52517,"src":"2083:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52587,"nodeType":"ImportDirective","src":"2154:71:88","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52586,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2162:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52589,"nodeType":"ImportDirective","src":"2226:67:88","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52588,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2234:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52591,"nodeType":"ImportDirective","src":"2294:69:88","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":52590,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"2302:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52593,"nodeType":"ImportDirective","src":"2364:50:88","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57052,"symbolAliases":[{"foreign":{"id":52592,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"2372:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52595,"nodeType":"ImportDirective","src":"2415:62:88","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":56264,"symbolAliases":[{"foreign":{"id":52594,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"2423:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52683,"nodeType":"ContractDefinition","src":"2479:1194:88","nodes":[{"id":52602,"nodeType":"VariableDeclaration","src":"2505:44:88","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2521:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52596,"name":"uint64","nodeType":"ElementaryTypeName","src":"2505:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2538:6:88","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52598,"name":"uint64","nodeType":"ElementaryTypeName","src":"2538:6:88","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52597,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2533:4:88","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2533:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2546:3:88","memberName":"max","nodeType":"MemberAccess","src":"2533:16:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52608,"nodeType":"VariableDeclaration","src":"2555:91:88","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2572:20:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52603,"name":"address","nodeType":"ElementaryTypeName","src":"2555:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2603:42:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2595:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52604,"name":"address","nodeType":"ElementaryTypeName","src":"2595:7:88","typeDescriptions":{}}},"id":52607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2595:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52611,"nodeType":"VariableDeclaration","src":"2652:42:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2668:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52609,"name":"uint64","nodeType":"ElementaryTypeName","src":"2652:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2693:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52614,"nodeType":"VariableDeclaration","src":"2700:54:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2717:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52612,"name":"uint256","nodeType":"ElementaryTypeName","src":"2700:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2747:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52617,"nodeType":"VariableDeclaration","src":"2760:47:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2775:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52615,"name":"uint8","nodeType":"ElementaryTypeName","src":"2760:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2805:2:88","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52620,"nodeType":"VariableDeclaration","src":"2813:51:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"2829:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52618,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2857:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52623,"nodeType":"VariableDeclaration","src":"2870:46:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"2886:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52621,"name":"uint64","nodeType":"ElementaryTypeName","src":"2870:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2914:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52626,"nodeType":"VariableDeclaration","src":"2922:44:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"2938:16:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52624,"name":"string","nodeType":"ElementaryTypeName","src":"2922:6:88","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2957:9:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52629,"nodeType":"VariableDeclaration","src":"2972:36:88","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"2987:7:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52627,"name":"bytes","nodeType":"ElementaryTypeName","src":"2972:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52628,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"2997:11:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52632,"nodeType":"VariableDeclaration","src":"3014:48:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3031:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52630,"name":"uint256","nodeType":"ElementaryTypeName","src":"3014:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3055:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52635,"nodeType":"VariableDeclaration","src":"3068:49:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3085:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52633,"name":"uint256","nodeType":"ElementaryTypeName","src":"3068:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52641,"nodeType":"VariableDeclaration","src":"3123:52:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3140:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52636,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3172:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":52638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3164:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52637,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:88","typeDescriptions":{}}},"id":52640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3164:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52647,"nodeType":"VariableDeclaration","src":"3181:54:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3198:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52642,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3232:2:88","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":52644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3224:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52643,"name":"address","nodeType":"ElementaryTypeName","src":"3224:7:88","typeDescriptions":{}}},"id":52646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3224:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52652,"nodeType":"VariableDeclaration","src":"3241:57:88","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3257:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52648,"name":"uint64","nodeType":"ElementaryTypeName","src":"3241:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3269:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52650,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"3273:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3269:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52655,"nodeType":"VariableDeclaration","src":"3304:50:88","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3321:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52653,"name":"uint256","nodeType":"ElementaryTypeName","src":"3304:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3347:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52658,"nodeType":"VariableDeclaration","src":"3360:53:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3376:31:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52656,"name":"uint16","nodeType":"ElementaryTypeName","src":"3360:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3410:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52661,"nodeType":"VariableDeclaration","src":"3419:38:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3433:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52659,"name":"int8","nodeType":"ElementaryTypeName","src":"3419:4:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3455:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52664,"nodeType":"VariableDeclaration","src":"3463:37:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3479:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52662,"name":"uint64","nodeType":"ElementaryTypeName","src":"3463:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3497:3:88","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52670,"nodeType":"VariableDeclaration","src":"3506:45:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3523:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52665,"name":"address","nodeType":"ElementaryTypeName","src":"3506:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3549:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":52667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52666,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:88","typeDescriptions":{}}},"id":52669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3541:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52676,"nodeType":"VariableDeclaration","src":"3557:57:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3574:24:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52671,"name":"address","nodeType":"ElementaryTypeName","src":"3557:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3609:4:88","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":52673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3601:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52672,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:88","typeDescriptions":{}}},"id":52675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52682,"nodeType":"VariableDeclaration","src":"3620:50:88","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3637:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52677,"name":"address","nodeType":"ElementaryTypeName","src":"3620:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3667:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":52679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3659:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3659:7:88","typeDescriptions":{}}},"id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3659:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52683],"name":"TestParams","nameLocation":"2488:10:88","scope":55376,"usedErrors":[]},{"id":52747,"nodeType":"ContractDefinition","src":"3675:824:88","nodes":[{"id":52690,"nodeType":"VariableDeclaration","src":"3723:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3732:28:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52688,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3723:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52689,"nodeType":"ArrayTypeName","src":"3723:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52693,"nodeType":"VariableDeclaration","src":"3766:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3775:34:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52691,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52692,"nodeType":"ArrayTypeName","src":"3766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52696,"nodeType":"VariableDeclaration","src":"3815:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"3824:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52694,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3815:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52695,"nodeType":"ArrayTypeName","src":"3815:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52699,"nodeType":"VariableDeclaration","src":"3853:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"3862:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52697,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3853:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52698,"nodeType":"ArrayTypeName","src":"3853:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52702,"nodeType":"VariableDeclaration","src":"3892:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"3914:15:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52701,"nodeType":"UserDefinedTypeName","pathNode":{"id":52700,"name":"SubnetRegistryDiamond","nameLocations":["3892:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"3892:21:88"},"referencedDeclaration":36853,"src":"3892:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52705,"nodeType":"VariableDeclaration","src":"3935:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"3953:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52704,"nodeType":"UserDefinedTypeName","pathNode":{"id":52703,"name":"DiamondLoupeFacet","nameLocations":["3935:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"3935:17:88"},"referencedDeclaration":37355,"src":"3935:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52708,"nodeType":"VariableDeclaration","src":"3973:30:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"3989:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52707,"nodeType":"UserDefinedTypeName","pathNode":{"id":52706,"name":"DiamondCutFacet","nameLocations":["3973:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"3973:15:88"},"referencedDeclaration":36918,"src":"3973:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52711,"nodeType":"VariableDeclaration","src":"4009:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4029:19:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52710,"nodeType":"UserDefinedTypeName","pathNode":{"id":52709,"name":"RegisterSubnetFacet","nameLocations":["4009:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"4009:19:88"},"referencedDeclaration":52279,"src":"4009:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52714,"nodeType":"VariableDeclaration","src":"4054:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4072:25:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"SubnetGetterFacet","nameLocations":["4054:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"4054:17:88"},"referencedDeclaration":52517,"src":"4054:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52746,"nodeType":"FunctionDefinition","src":"4104:393:88","nodes":[],"body":{"id":52745,"nodeType":"Block","src":"4118:379:88","nodes":[],"statements":[{"expression":{"id":52722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52717,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"4128:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4192:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":52718,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4159:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4175:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4159:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4128:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52723,"nodeType":"ExpressionStatement","src":"4128:86:88"},{"expression":{"id":52729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52724,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"4224:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4294:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":52725,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4261:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4277:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4261:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4261:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4224:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52730,"nodeType":"ExpressionStatement","src":"4224:90:88"},{"expression":{"id":52736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52731,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"4324:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4383:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52732,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4350:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4366:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4350:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4350:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4324:77:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52737,"nodeType":"ExpressionStatement","src":"4324:77:88"},{"expression":{"id":52743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52738,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"4411:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4470:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52739,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4437:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4453:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4437:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4411:79:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52744,"nodeType":"ExpressionStatement","src":"4411:79:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52715,"nodeType":"ParameterList","parameters":[],"src":"4115:2:88"},"returnParameters":{"id":52716,"nodeType":"ParameterList","parameters":[],"src":"4118:0:88"},"scope":52747,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52684,"name":"Test","nameLocations":["3700:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3700:4:88"},"id":52685,"nodeType":"InheritanceSpecifier","src":"3700:4:88"},{"baseName":{"id":52686,"name":"TestParams","nameLocations":["3706:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"3706:10:88"},"id":52687,"nodeType":"InheritanceSpecifier","src":"3706:10:88"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3684:12:88","scope":55376,"usedErrors":[]},{"id":52912,"nodeType":"ContractDefinition","src":"4501:2237:88","nodes":[{"id":52754,"nodeType":"VariableDeclaration","src":"4553:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4562:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52752,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4553:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52753,"nodeType":"ArrayTypeName","src":"4553:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52757,"nodeType":"VariableDeclaration","src":"4597:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4606:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52755,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4597:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52756,"nodeType":"ArrayTypeName","src":"4597:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52760,"nodeType":"VariableDeclaration","src":"4641:40:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4650:31:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52758,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4641:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52759,"nodeType":"ArrayTypeName","src":"4641:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52763,"nodeType":"VariableDeclaration","src":"4687:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4696:30:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52761,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4687:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52762,"nodeType":"ArrayTypeName","src":"4687:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52766,"nodeType":"VariableDeclaration","src":"4733:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4742:18:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52764,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4733:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52765,"nodeType":"ArrayTypeName","src":"4733:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52769,"nodeType":"VariableDeclaration","src":"4766:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4775:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52767,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52768,"nodeType":"ArrayTypeName","src":"4766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52772,"nodeType":"VariableDeclaration","src":"4798:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"4807:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52770,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4798:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52771,"nodeType":"ArrayTypeName","src":"4798:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52775,"nodeType":"VariableDeclaration","src":"4834:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"4843:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52773,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4834:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52774,"nodeType":"ArrayTypeName","src":"4834:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52778,"nodeType":"VariableDeclaration","src":"4866:25:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"4875:16:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52776,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4866:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52777,"nodeType":"ArrayTypeName","src":"4866:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52781,"nodeType":"VariableDeclaration","src":"4898:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"4913:14:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52780,"nodeType":"UserDefinedTypeName","pathNode":{"id":52779,"name":"GatewayDiamond","nameLocations":["4898:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"4898:14:88"},"referencedDeclaration":36170,"src":"4898:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52784,"nodeType":"VariableDeclaration","src":"4933:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"4953:9:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52783,"nodeType":"UserDefinedTypeName","pathNode":{"id":52782,"name":"GatewayManagerFacet","nameLocations":["4933:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"4933:19:88"},"referencedDeclaration":38870,"src":"4933:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52787,"nodeType":"VariableDeclaration","src":"4968:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"4987:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52786,"nodeType":"UserDefinedTypeName","pathNode":{"id":52785,"name":"GatewayGetterFacet","nameLocations":["4968:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"4968:18:88"},"referencedDeclaration":38317,"src":"4968:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52790,"nodeType":"VariableDeclaration","src":"5001:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5020:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52789,"nodeType":"UserDefinedTypeName","pathNode":{"id":52788,"name":"CheckpointingFacet","nameLocations":["5001:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5001:18:88"},"referencedDeclaration":39870,"src":"5001:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52793,"nodeType":"VariableDeclaration","src":"5046:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5065:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52792,"nodeType":"UserDefinedTypeName","pathNode":{"id":52791,"name":"XnetMessagingFacet","nameLocations":["5046:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5046:18:88"},"referencedDeclaration":40144,"src":"5046:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52796,"nodeType":"VariableDeclaration","src":"5091:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5112:22:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52795,"nodeType":"UserDefinedTypeName","pathNode":{"id":52794,"name":"TopDownFinalityFacet","nameLocations":["5091:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5091:20:88"},"referencedDeclaration":40071,"src":"5091:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52799,"nodeType":"VariableDeclaration","src":"5140:41:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5160:21:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52798,"nodeType":"UserDefinedTypeName","pathNode":{"id":52797,"name":"BottomUpRouterFacet","nameLocations":["5140:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5140:19:88"},"referencedDeclaration":39601,"src":"5140:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52802,"nodeType":"VariableDeclaration","src":"5187:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5209:11:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52801,"nodeType":"UserDefinedTypeName","pathNode":{"id":52800,"name":"GatewayMessengerFacet","nameLocations":["5187:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5187:21:88"},"referencedDeclaration":39235,"src":"5187:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52805,"nodeType":"VariableDeclaration","src":"5226:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5242:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52804,"nodeType":"UserDefinedTypeName","pathNode":{"id":52803,"name":"DiamondCutFacet","nameLocations":["5226:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5226:15:88"},"referencedDeclaration":36918,"src":"5226:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52808,"nodeType":"VariableDeclaration","src":"5256:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5274:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52807,"nodeType":"UserDefinedTypeName","pathNode":{"id":52806,"name":"DiamondLoupeFacet","nameLocations":["5256:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5256:17:88"},"referencedDeclaration":37355,"src":"5256:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52875,"nodeType":"FunctionDefinition","src":"5289:835:88","nodes":[],"body":{"id":52874,"nodeType":"Block","src":"5303:821:88","nodes":[],"statements":[{"expression":{"id":52816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52811,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"5313:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5378:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":52812,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5345:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5361:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5345:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5345:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5313:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52817,"nodeType":"ExpressionStatement","src":"5313:86:88"},{"expression":{"id":52823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52818,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"5409:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5474:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":52819,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5441:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5457:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5441:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5441:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5409:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52824,"nodeType":"ExpressionStatement","src":"5409:86:88"},{"expression":{"id":52830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52825,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"5505:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5572:22:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":52826,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5539:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5555:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5539:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5539:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5505:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52831,"nodeType":"ExpressionStatement","src":"5505:90:88"},{"expression":{"id":52837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52832,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"5605:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5671:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":52833,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5638:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5654:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5638:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5638:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5605:88:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52838,"nodeType":"ExpressionStatement","src":"5605:88:88"},{"expression":{"id":52844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52839,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"5704:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5757:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":52840,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5724:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5740:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5724:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5724:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5704:74:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52845,"nodeType":"ExpressionStatement","src":"5704:74:88"},{"expression":{"id":52851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52846,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"5788:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5842:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":52847,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5809:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5825:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5809:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5809:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5788:76:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52852,"nodeType":"ExpressionStatement","src":"5788:76:88"},{"expression":{"id":52858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52853,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"5874:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5930:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":52854,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5897:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5913:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5897:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5897:57:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5874:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52859,"nodeType":"ExpressionStatement","src":"5874:80:88"},{"expression":{"id":52865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52860,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"5964:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6017:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52861,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5984:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6000:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5984:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5984:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5964:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52866,"nodeType":"ExpressionStatement","src":"5964:71:88"},{"expression":{"id":52872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52867,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"6045:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6097:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52868,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"6064:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6080:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"6064:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6064:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6045:72:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52873,"nodeType":"ExpressionStatement","src":"6045:72:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52809,"nodeType":"ParameterList","parameters":[],"src":"5300:2:88"},"returnParameters":{"id":52810,"nodeType":"ParameterList","parameters":[],"src":"5303:0:88"},"scope":52912,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52911,"nodeType":"FunctionDefinition","src":"6130:606:88","nodes":[],"body":{"id":52910,"nodeType":"Block","src":"6234:502:88","nodes":[],"statements":[{"assignments":[52885],"declarations":[{"constant":false,"id":52885,"mutability":"mutable","name":"params","nameLocation":"6284:6:88","nodeType":"VariableDeclaration","scope":52910,"src":"6244:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52884,"nodeType":"UserDefinedTypeName","pathNode":{"id":52883,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6244:14:88","6259:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6244:32:88"},"referencedDeclaration":35883,"src":"6244:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52907,"initialValue":{"arguments":[{"arguments":[{"id":52889,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"6369:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6407:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6393:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52890,"name":"address","nodeType":"ElementaryTypeName","src":"6397:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52891,"nodeType":"ArrayTypeName","src":"6397:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6393:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52888,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"6353:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6363:4:88","6386:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"6353:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52896,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"6446:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52897,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"6493:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52898,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"6548:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":52903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6624:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6608:15:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":52900,"nodeType":"UserDefinedTypeName","pathNode":{"id":52899,"name":"Validator","nameLocations":["6612:9:88"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"6612:9:88"},"referencedDeclaration":50211,"src":"6612:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":52901,"nodeType":"ArrayTypeName","src":"6612:11:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":52904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6608:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":52905,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"6663:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":52886,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"6293:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":52887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6308:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"6293:32:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":52906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6340:11:88","6425:19:88","6485:6:88","6528:18:88","6589:17:88","6640:21:88"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"6293:412:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6244:461:88"},{"expression":{"id":52908,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52885,"src":"6723:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":52880,"id":52909,"nodeType":"Return","src":"6716:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"6139:20:88","parameters":{"id":52876,"nodeType":"ParameterList","parameters":[],"src":"6159:2:88"},"returnParameters":{"id":52880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52911,"src":"6193:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52878,"nodeType":"UserDefinedTypeName","pathNode":{"id":52877,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6193:14:88","6208:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6193:32:88"},"referencedDeclaration":35883,"src":"6193:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6192:41:88"},"scope":52912,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52748,"name":"Test","nameLocations":["4530:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4530:4:88"},"id":52749,"nodeType":"InheritanceSpecifier","src":"4530:4:88"},{"baseName":{"id":52750,"name":"TestParams","nameLocations":["4536:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"4536:10:88"},"id":52751,"nodeType":"InheritanceSpecifier","src":"4536:10:88"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52912,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4510:16:88","scope":55376,"usedErrors":[]},{"id":53037,"nodeType":"ContractDefinition","src":"6740:1920:88","nodes":[{"id":52919,"nodeType":"VariableDeclaration","src":"6791:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"6800:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52917,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6791:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52918,"nodeType":"ArrayTypeName","src":"6791:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52922,"nodeType":"VariableDeclaration","src":"6823:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"6832:18:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52920,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6823:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52921,"nodeType":"ArrayTypeName","src":"6823:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52925,"nodeType":"VariableDeclaration","src":"6856:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"6865:24:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52923,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6856:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52924,"nodeType":"ArrayTypeName","src":"6856:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52928,"nodeType":"VariableDeclaration","src":"6895:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"6904:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52926,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6895:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52927,"nodeType":"ArrayTypeName","src":"6895:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52931,"nodeType":"VariableDeclaration","src":"6927:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"6936:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52929,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6927:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52930,"nodeType":"ArrayTypeName","src":"6927:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52934,"nodeType":"VariableDeclaration","src":"6960:28:88","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6979:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52933,"nodeType":"UserDefinedTypeName","pathNode":{"id":52932,"name":"SubnetActorDiamond","nameLocations":["6960:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"6960:18:88"},"referencedDeclaration":36615,"src":"6960:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52937,"nodeType":"VariableDeclaration","src":"6994:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"7018:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52936,"nodeType":"UserDefinedTypeName","pathNode":{"id":52935,"name":"SubnetActorManagerFacet","nameLocations":["6994:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"6994:23:88"},"referencedDeclaration":52151,"src":"6994:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52940,"nodeType":"VariableDeclaration","src":"7033:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"saMockedManager","nameLocation":"7061:15:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":52939,"nodeType":"UserDefinedTypeName","pathNode":{"id":52938,"name":"SubnetActorManagerFacetMock","nameLocations":["7033:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"7033:27:88"},"referencedDeclaration":57957,"src":"7033:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"},{"id":52943,"nodeType":"VariableDeclaration","src":"7082:31:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"7105:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52942,"nodeType":"UserDefinedTypeName","pathNode":{"id":52941,"name":"SubnetActorGetterFacet","nameLocations":["7082:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"7082:22:88"},"referencedDeclaration":50887,"src":"7082:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52946,"nodeType":"VariableDeclaration","src":"7119:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"7135:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52945,"nodeType":"UserDefinedTypeName","pathNode":{"id":52944,"name":"DiamondCutFacet","nameLocations":["7119:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"7119:15:88"},"referencedDeclaration":36918,"src":"7119:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52949,"nodeType":"VariableDeclaration","src":"7149:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"7167:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52948,"nodeType":"UserDefinedTypeName","pathNode":{"id":52947,"name":"DiamondLoupeFacet","nameLocations":["7149:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"7149:17:88"},"referencedDeclaration":37355,"src":"7149:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52988,"nodeType":"FunctionDefinition","src":"7182:463:88","nodes":[],"body":{"id":52987,"nodeType":"Block","src":"7196:449:88","nodes":[],"statements":[{"expression":{"id":52957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52952,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"7206:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7259:24:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":52953,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7226:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7242:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7226:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7226:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7206:78:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52958,"nodeType":"ExpressionStatement","src":"7206:78:88"},{"expression":{"id":52964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52959,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"7294:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7348:25:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":52960,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7315:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7331:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7315:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7315:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7294:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52965,"nodeType":"ExpressionStatement","src":"7294:80:88"},{"expression":{"id":52971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52966,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"7384:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":52969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7444:29:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":52967,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7411:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7427:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7411:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:63:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7384:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52972,"nodeType":"ExpressionStatement","src":"7384:90:88"},{"expression":{"id":52978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52973,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"7484:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7537:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52974,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7504:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7520:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7504:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7504:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7484:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52979,"nodeType":"ExpressionStatement","src":"7484:71:88"},{"expression":{"id":52985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52980,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"7565:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7618:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52981,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7585:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7601:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7585:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7565:73:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52986,"nodeType":"ExpressionStatement","src":"7565:73:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52950,"nodeType":"ParameterList","parameters":[],"src":"7193:2:88"},"returnParameters":{"id":52951,"nodeType":"ParameterList","parameters":[],"src":"7196:0:88"},"scope":53037,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53036,"nodeType":"FunctionDefinition","src":"7651:1007:88","nodes":[],"body":{"id":53035,"nodeType":"Block","src":"7798:860:88","nodes":[],"statements":[{"assignments":[52998],"declarations":[{"constant":false,"id":52998,"mutability":"mutable","name":"native","nameLocation":"7828:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7808:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":52997,"nodeType":"UserDefinedTypeName","pathNode":{"id":52996,"name":"SupplySource","nameLocations":["7808:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"7808:12:88"},"referencedDeclaration":50226,"src":"7808:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53002,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52999,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"7837:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7856:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"7837:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7837:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7808:56:88"},{"assignments":[53007],"declarations":[{"constant":false,"id":53007,"mutability":"mutable","name":"params","nameLocation":"7918:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7874:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53006,"nodeType":"UserDefinedTypeName","pathNode":{"id":53005,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7874:18:88","7893:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7874:36:88"},"referencedDeclaration":36253,"src":"7874:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53032,"initialValue":{"arguments":[{"arguments":[{"id":53011,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"8004:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8042:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8028:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53012,"name":"address","nodeType":"ElementaryTypeName","src":"8032:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53013,"nodeType":"ArrayTypeName","src":"8032:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8028:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53010,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"7988:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7998:4:88","8021:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"7988:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53018,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52990,"src":"8076:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53019,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8103:13:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8117:10:88","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8103:24:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53021,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"8166:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53022,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52611,"src":"8220:22:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53023,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"8277:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53024,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"8336:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53025,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"8400:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53026,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52661,"src":"8457:19:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53027,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"8506:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53028,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"8557:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8572:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"8557:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53030,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52998,"src":"8610:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53008,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"7927:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7946:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"7927:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7978:8:88","8060:14:88","8092:9:88","8141:23:88","8205:13:88","8256:19:88","8316:18:88","8377:21:88","8445:10:88","8490:14:88","8541:14:88","8596:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"7927:700:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7874:753:88"},{"expression":{"id":53033,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53007,"src":"8645:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":52995,"id":53034,"nodeType":"Return","src":"8638:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"7660:35:88","parameters":{"id":52991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52990,"mutability":"mutable","name":"gw","nameLocation":"7713:2:88","nodeType":"VariableDeclaration","scope":53036,"src":"7705:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52989,"name":"address","nodeType":"ElementaryTypeName","src":"7705:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7695:26:88"},"returnParameters":{"id":52995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53036,"src":"7753:43:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52993,"nodeType":"UserDefinedTypeName","pathNode":{"id":52992,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7753:18:88","7772:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7753:36:88"},"referencedDeclaration":36253,"src":"7753:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"7752:45:88"},"scope":53037,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52913,"name":"Test","nameLocations":["6768:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"6768:4:88"},"id":52914,"nodeType":"InheritanceSpecifier","src":"6768:4:88"},{"baseName":{"id":52915,"name":"TestParams","nameLocations":["6774:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"6774:10:88"},"id":52916,"nodeType":"InheritanceSpecifier","src":"6774:10:88"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53037,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6749:15:88","scope":55376,"usedErrors":[]},{"id":55375,"nodeType":"ContractDefinition","src":"8662:23266:88","nodes":[{"id":53051,"nodeType":"UsingForDirective","src":"8766:34:88","nodes":[],"global":false,"libraryName":{"id":53048,"name":"SubnetIDHelper","nameLocations":["8772:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"8772:14:88"},"typeName":{"id":53050,"nodeType":"UserDefinedTypeName","pathNode":{"id":53049,"name":"SubnetID","nameLocations":["8791:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"8791:8:88"},"referencedDeclaration":50077,"src":"8791:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":53055,"nodeType":"UsingForDirective","src":"8805:42:88","nodes":[],"global":false,"libraryName":{"id":53052,"name":"SupplySourceHelper","nameLocations":["8811:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"8811:18:88"},"typeName":{"id":53054,"nodeType":"UserDefinedTypeName","pathNode":{"id":53053,"name":"SupplySource","nameLocations":["8834:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"8834:12:88"},"referencedDeclaration":50226,"src":"8834:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":53059,"nodeType":"UsingForDirective","src":"8852:34:88","nodes":[],"global":false,"libraryName":{"id":53056,"name":"CrossMsgHelper","nameLocations":["8858:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"8858:14:88"},"typeName":{"id":53058,"nodeType":"UserDefinedTypeName","pathNode":{"id":53057,"name":"CrossMsg","nameLocations":["8877:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"8877:8:88"},"referencedDeclaration":49974,"src":"8877:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53063,"nodeType":"UsingForDirective","src":"8891:40:88","nodes":[],"global":false,"libraryName":{"id":53060,"name":"StorableMsgHelper","nameLocations":["8897:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"8897:17:88"},"typeName":{"id":53062,"nodeType":"UserDefinedTypeName","pathNode":{"id":53061,"name":"StorableMsg","nameLocations":["8919:11:88"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"8919:11:88"},"referencedDeclaration":49991,"src":"8919:11:88","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53067,"nodeType":"UsingForDirective","src":"8936:38:88","nodes":[],"global":false,"libraryName":{"id":53064,"name":"FvmAddressHelper","nameLocations":["8942:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":40962,"src":"8942:16:88"},"typeName":{"id":53066,"nodeType":"UserDefinedTypeName","pathNode":{"id":53065,"name":"FvmAddress","nameLocations":["8963:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"8963:10:88"},"referencedDeclaration":49998,"src":"8963:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53071,"nodeType":"EventDefinition","src":"8980:67:88","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"8986:21:88","parameters":{"id":53070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53069,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9024:21:88","nodeType":"VariableDeclaration","scope":53071,"src":"9008:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53068,"name":"address","nodeType":"ElementaryTypeName","src":"9008:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9007:39:88"}},{"id":53075,"nodeType":"FunctionDefinition","src":"9053:16:88","nodes":[],"body":{"id":53074,"nodeType":"Block","src":"9067:2:88","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53072,"nodeType":"ParameterList","parameters":[],"src":"9064:2:88"},"returnParameters":{"id":53073,"nodeType":"ParameterList","parameters":[],"src":"9067:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53250,"nodeType":"FunctionDefinition","src":"9075:1529:88","nodes":[],"body":{"id":53249,"nodeType":"Block","src":"9107:1497:88","nodes":[],"statements":[{"assignments":[53082],"declarations":[{"constant":false,"id":53082,"mutability":"mutable","name":"path","nameLocation":"9134:4:88","nodeType":"VariableDeclaration","scope":53249,"src":"9117:21:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53080,"name":"address","nodeType":"ElementaryTypeName","src":"9117:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53081,"nodeType":"ArrayTypeName","src":"9117:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53088,"initialValue":{"arguments":[{"hexValue":"31","id":53086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9155:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9141:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53083,"name":"address","nodeType":"ElementaryTypeName","src":"9145:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53084,"nodeType":"ArrayTypeName","src":"9145:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9141:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9117:40:88"},{"expression":{"id":53093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53089,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53082,"src":"9167:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53091,"indexExpression":{"hexValue":"30","id":53090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9172:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9167:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53092,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"9177:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9167:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53094,"nodeType":"ExpressionStatement","src":"9167:25:88"},{"assignments":[53099],"declarations":[{"constant":false,"id":53099,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9285:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"9245:59:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53098,"nodeType":"UserDefinedTypeName","pathNode":{"id":53097,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9245:14:88","9260:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9245:32:88"},"referencedDeclaration":35883,"src":"9245:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53102,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53100,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52911,"src":"9307:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9307:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9245:84:88"},{"expression":{"id":53107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53103,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9339:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53105,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53099,"src":"9377:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53104,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53509,"src":"9356:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":53106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:41:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"9339:58:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53108,"nodeType":"ExpressionStatement","src":"9339:58:88"},{"expression":{"id":53116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53109,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"9408:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53113,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9446:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9438:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53111,"name":"address","nodeType":"ElementaryTypeName","src":"9438:7:88","typeDescriptions":{}}},"id":53114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9438:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53110,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"9419:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9419:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"9408:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53117,"nodeType":"ExpressionStatement","src":"9408:54:88"},{"expression":{"id":53125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53118,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"9472:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53122,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9512:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9504:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53120,"name":"address","nodeType":"ElementaryTypeName","src":"9504:7:88","typeDescriptions":{}}},"id":53123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9504:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53119,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"9484:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9484:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"9472:56:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53126,"nodeType":"ExpressionStatement","src":"9472:56:88"},{"expression":{"id":53134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53127,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"9538:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53131,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9588:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9580:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53129,"name":"address","nodeType":"ElementaryTypeName","src":"9580:7:88","typeDescriptions":{}}},"id":53132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9580:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53128,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"9561:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9561:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"9538:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53135,"nodeType":"ExpressionStatement","src":"9538:66:88"},{"expression":{"id":53143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53136,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9614:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53140,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9664:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9656:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53138,"name":"address","nodeType":"ElementaryTypeName","src":"9656:7:88","typeDescriptions":{}}},"id":53141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9656:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53137,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"9637:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9637:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"9614:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53144,"nodeType":"ExpressionStatement","src":"9614:66:88"},{"expression":{"id":53152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53145,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"9690:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53149,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9744:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9736:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53147,"name":"address","nodeType":"ElementaryTypeName","src":"9736:7:88","typeDescriptions":{}}},"id":53150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9736:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53146,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"9715:20:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"9690:70:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53153,"nodeType":"ExpressionStatement","src":"9690:70:88"},{"expression":{"id":53161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53154,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"9770:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53158,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9822:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9814:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53156,"name":"address","nodeType":"ElementaryTypeName","src":"9814:7:88","typeDescriptions":{}}},"id":53159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9814:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53155,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"9794:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9794:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"9770:68:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53162,"nodeType":"ExpressionStatement","src":"9770:68:88"},{"expression":{"id":53170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53163,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52802,"src":"9848:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53167,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9892:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9884:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53165,"name":"address","nodeType":"ElementaryTypeName","src":"9884:7:88","typeDescriptions":{}}},"id":53168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9884:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53164,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"9862:21:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9862:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"9848:60:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53171,"nodeType":"ExpressionStatement","src":"9848:60:88"},{"expression":{"id":53179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53172,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"9918:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53176,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9955:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9947:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53174,"name":"address","nodeType":"ElementaryTypeName","src":"9947:7:88","typeDescriptions":{}}},"id":53177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9947:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53173,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"9929:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9929:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"9918:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53180,"nodeType":"ExpressionStatement","src":"9918:53:88"},{"expression":{"id":53188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53181,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"9981:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53185,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10016:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53183,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:88","typeDescriptions":{}}},"id":53186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53182,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"9992:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9992:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"9981:51:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53189,"nodeType":"ExpressionStatement","src":"9981:51:88"},{"assignments":[53194],"declarations":[{"constant":false,"id":53194,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10141:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"10097:63:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53193,"nodeType":"UserDefinedTypeName","pathNode":{"id":53192,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10097:18:88","10116:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10097:36:88"},"referencedDeclaration":36253,"src":"10097:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53201,"initialValue":{"arguments":[{"arguments":[{"id":53198,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10220:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10212:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53196,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:88","typeDescriptions":{}}},"id":53199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10212:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53195,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"10163:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":53200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10163:82:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10097:148:88"},{"expression":{"id":53206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53202,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10256:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53204,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53194,"src":"10286:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53203,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53710,"src":"10268:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10268:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10256:50:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53207,"nodeType":"ExpressionStatement","src":"10256:50:88"},{"expression":{"id":53215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53208,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"10316:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53212,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10360:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10352:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53210,"name":"address","nodeType":"ElementaryTypeName","src":"10352:7:88","typeDescriptions":{}}},"id":53213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10352:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53209,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"10328:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10328:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"10316:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53216,"nodeType":"ExpressionStatement","src":"10316:55:88"},{"expression":{"id":53224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53217,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"10381:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53221,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10423:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10415:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53219,"name":"address","nodeType":"ElementaryTypeName","src":"10415:7:88","typeDescriptions":{}}},"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10415:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53218,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"10392:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10392:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"10381:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53225,"nodeType":"ExpressionStatement","src":"10381:53:88"},{"expression":{"id":53233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53226,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"10444:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53230,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10481:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10473:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53228,"name":"address","nodeType":"ElementaryTypeName","src":"10473:7:88","typeDescriptions":{}}},"id":53231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10473:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53227,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10455:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10455:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10444:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53234,"nodeType":"ExpressionStatement","src":"10444:48:88"},{"expression":{"id":53242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53235,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"10502:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53239,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10537:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10529:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53237,"name":"address","nodeType":"ElementaryTypeName","src":"10529:7:88","typeDescriptions":{}}},"id":53240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10529:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53236,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10513:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10513:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10502:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53243,"nodeType":"ExpressionStatement","src":"10502:46:88"},{"expression":{"arguments":[{"id":53245,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52682,"src":"10572:19:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10593:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53244,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"10559:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10559:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53248,"nodeType":"ExpressionStatement","src":"10559:38:88"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9084:5:88","parameters":{"id":53076,"nodeType":"ParameterList","parameters":[],"src":"9089:2:88"},"returnParameters":{"id":53077,"nodeType":"ParameterList","parameters":[],"src":"9107:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53509,"nodeType":"FunctionDefinition","src":"10610:3185:88","nodes":[],"body":{"id":53508,"nodeType":"Block","src":"10720:3075:88","nodes":[],"statements":[{"assignments":[53261],"declarations":[{"constant":false,"id":53261,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"10749:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10730:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53260,"nodeType":"UserDefinedTypeName","pathNode":{"id":53259,"name":"CheckpointingFacet","nameLocations":["10730:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10730:18:88"},"referencedDeclaration":39870,"src":"10730:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10770:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53263,"nodeType":"UserDefinedTypeName","pathNode":{"id":53262,"name":"CheckpointingFacet","nameLocations":["10774:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10774:18:88"},"referencedDeclaration":39870,"src":"10774:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10770:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10730:64:88"},{"assignments":[53269],"declarations":[{"constant":false,"id":53269,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"10823:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10804:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53268,"nodeType":"UserDefinedTypeName","pathNode":{"id":53267,"name":"XnetMessagingFacet","nameLocations":["10804:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10804:18:88"},"referencedDeclaration":40144,"src":"10804:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53274,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10844:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53271,"nodeType":"UserDefinedTypeName","pathNode":{"id":53270,"name":"XnetMessagingFacet","nameLocations":["10848:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10848:18:88"},"referencedDeclaration":40144,"src":"10848:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10844:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10804:64:88"},{"assignments":[53277],"declarations":[{"constant":false,"id":53277,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"10899:20:88","nodeType":"VariableDeclaration","scope":53508,"src":"10878:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53276,"nodeType":"UserDefinedTypeName","pathNode":{"id":53275,"name":"TopDownFinalityFacet","nameLocations":["10878:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10878:20:88"},"referencedDeclaration":40071,"src":"10878:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53282,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10922:24:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53279,"nodeType":"UserDefinedTypeName","pathNode":{"id":53278,"name":"TopDownFinalityFacet","nameLocations":["10926:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10926:20:88"},"referencedDeclaration":40071,"src":"10926:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10922:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"10878:70:88"},{"assignments":[53285],"declarations":[{"constant":false,"id":53285,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"10978:19:88","nodeType":"VariableDeclaration","scope":53508,"src":"10958:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53284,"nodeType":"UserDefinedTypeName","pathNode":{"id":53283,"name":"BottomUpRouterFacet","nameLocations":["10958:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"10958:19:88"},"referencedDeclaration":39601,"src":"10958:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53290,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11000:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53287,"nodeType":"UserDefinedTypeName","pathNode":{"id":53286,"name":"BottomUpRouterFacet","nameLocations":["11004:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11004:19:88"},"referencedDeclaration":39601,"src":"11004:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11000:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"10958:67:88"},{"assignments":[53293],"declarations":[{"constant":false,"id":53293,"mutability":"mutable","name":"manager","nameLocation":"11056:7:88","nodeType":"VariableDeclaration","scope":53508,"src":"11036:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53292,"nodeType":"UserDefinedTypeName","pathNode":{"id":53291,"name":"GatewayManagerFacet","nameLocations":["11036:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11036:19:88"},"referencedDeclaration":38870,"src":"11036:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53298,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11066:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53295,"nodeType":"UserDefinedTypeName","pathNode":{"id":53294,"name":"GatewayManagerFacet","nameLocations":["11070:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11070:19:88"},"referencedDeclaration":38870,"src":"11070:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11066:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11036:55:88"},{"assignments":[53301],"declarations":[{"constant":false,"id":53301,"mutability":"mutable","name":"getter","nameLocation":"11120:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11101:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53300,"nodeType":"UserDefinedTypeName","pathNode":{"id":53299,"name":"GatewayGetterFacet","nameLocations":["11101:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11101:18:88"},"referencedDeclaration":38317,"src":"11101:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53306,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11129:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53303,"nodeType":"UserDefinedTypeName","pathNode":{"id":53302,"name":"GatewayGetterFacet","nameLocations":["11133:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11133:18:88"},"referencedDeclaration":38317,"src":"11133:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11101:52:88"},{"assignments":[53309],"declarations":[{"constant":false,"id":53309,"mutability":"mutable","name":"messenger","nameLocation":"11185:9:88","nodeType":"VariableDeclaration","scope":53508,"src":"11163:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53308,"nodeType":"UserDefinedTypeName","pathNode":{"id":53307,"name":"GatewayMessengerFacet","nameLocations":["11163:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11163:21:88"},"referencedDeclaration":39235,"src":"11163:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53314,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11197:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53311,"nodeType":"UserDefinedTypeName","pathNode":{"id":53310,"name":"GatewayMessengerFacet","nameLocations":["11201:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11201:21:88"},"referencedDeclaration":39235,"src":"11201:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11197:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11163:61:88"},{"assignments":[53317],"declarations":[{"constant":false,"id":53317,"mutability":"mutable","name":"cutter","nameLocation":"11250:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11234:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53316,"nodeType":"UserDefinedTypeName","pathNode":{"id":53315,"name":"DiamondCutFacet","nameLocations":["11234:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11234:15:88"},"referencedDeclaration":36918,"src":"11234:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53322,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11259:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53319,"nodeType":"UserDefinedTypeName","pathNode":{"id":53318,"name":"DiamondCutFacet","nameLocations":["11263:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11263:15:88"},"referencedDeclaration":36918,"src":"11263:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11259:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"11234:46:88"},{"assignments":[53325],"declarations":[{"constant":false,"id":53325,"mutability":"mutable","name":"louper","nameLocation":"11308:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11290:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53324,"nodeType":"UserDefinedTypeName","pathNode":{"id":53323,"name":"DiamondLoupeFacet","nameLocations":["11290:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11290:17:88"},"referencedDeclaration":37355,"src":"11290:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53330,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11317:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53327,"nodeType":"UserDefinedTypeName","pathNode":{"id":53326,"name":"DiamondLoupeFacet","nameLocations":["11321:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11321:17:88"},"referencedDeclaration":37355,"src":"11321:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11317:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"11290:50:88"},{"assignments":[53336],"declarations":[{"constant":false,"id":53336,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"11378:12:88","nodeType":"VariableDeclaration","scope":53508,"src":"11351:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53334,"nodeType":"UserDefinedTypeName","pathNode":{"id":53333,"name":"IDiamond.FacetCut","nameLocations":["11351:8:88","11360:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11351:17:88"},"referencedDeclaration":40159,"src":"11351:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53335,"nodeType":"ArrayTypeName","src":"11351:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53343,"initialValue":{"arguments":[{"hexValue":"39","id":53341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11417:1:88","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":53340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11393:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53338,"nodeType":"UserDefinedTypeName","pathNode":{"id":53337,"name":"IDiamond.FacetCut","nameLocations":["11397:8:88","11406:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11397:17:88"},"referencedDeclaration":40159,"src":"11397:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53339,"nodeType":"ArrayTypeName","src":"11397:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11393:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11351:68:88"},{"expression":{"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53344,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11430:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53346,"indexExpression":{"hexValue":"30","id":53345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11443:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11430:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53351,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53261,"src":"11520:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11512:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53349,"name":"address","nodeType":"ElementaryTypeName","src":"11512:7:88","typeDescriptions":{}}},"id":53352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11512:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53353,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11565:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11574:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11565:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11589:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11565:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53356,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"11629:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53347,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11462:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11471:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11462:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11498:12:88","11557:6:88","11610:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11462:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53358,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11448:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11430:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53360,"nodeType":"ExpressionStatement","src":"11430:253:88"},{"expression":{"id":53376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53361,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11694:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53363,"indexExpression":{"hexValue":"36","id":53362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11707:1:88","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11694:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53368,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53269,"src":"11784:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11776:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53366,"name":"address","nodeType":"ElementaryTypeName","src":"11776:7:88","typeDescriptions":{}}},"id":53369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11776:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53370,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11829:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11838:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11829:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11853:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11829:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53373,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"11893:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53364,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11726:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11735:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11726:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11762:12:88","11821:6:88","11874:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11726:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53375,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11712:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11694:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53377,"nodeType":"ExpressionStatement","src":"11694:253:88"},{"expression":{"id":53393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53378,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11958:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53380,"indexExpression":{"hexValue":"37","id":53379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11971:1:88","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11958:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53385,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53277,"src":"12048:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12040:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53383,"name":"address","nodeType":"ElementaryTypeName","src":"12040:7:88","typeDescriptions":{}}},"id":53386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12040:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53387,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12095:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12104:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12095:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12119:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12095:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53390,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"12159:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53381,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11990:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11999:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11990:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12026:12:88","12087:6:88","12140:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11990:215:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53392,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11976:239:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11958:257:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53394,"nodeType":"ExpressionStatement","src":"11958:257:88"},{"expression":{"id":53410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53395,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12226:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53397,"indexExpression":{"hexValue":"38","id":53396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:88","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12226:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53402,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53285,"src":"12316:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12308:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53400,"name":"address","nodeType":"ElementaryTypeName","src":"12308:7:88","typeDescriptions":{}}},"id":53403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12308:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53404,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12362:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12371:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12362:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12386:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12362:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53407,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"12426:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53398,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12258:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12267:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12258:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12294:12:88","12354:6:88","12407:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12258:213:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53409,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12244:237:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12226:255:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53411,"nodeType":"ExpressionStatement","src":"12226:255:88"},{"expression":{"id":53427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53412,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12492:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53414,"indexExpression":{"hexValue":"31","id":53413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12505:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12492:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53419,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53293,"src":"12582:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12574:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53417,"name":"address","nodeType":"ElementaryTypeName","src":"12574:7:88","typeDescriptions":{}}},"id":53420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12574:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53421,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12616:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12625:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12616:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12640:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12616:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53424,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"12680:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53415,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12524:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12533:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12524:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12560:12:88","12608:6:88","12661:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12524:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12510:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12492:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53428,"nodeType":"ExpressionStatement","src":"12492:231:88"},{"expression":{"id":53444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53429,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12734:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53431,"indexExpression":{"hexValue":"32","id":53430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12747:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12734:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53436,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53301,"src":"12824:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12816:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53434,"name":"address","nodeType":"ElementaryTypeName","src":"12816:7:88","typeDescriptions":{}}},"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12816:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53438,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12857:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12866:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12857:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12881:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12857:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53441,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"12921:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53432,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12766:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12775:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12766:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12802:12:88","12849:6:88","12902:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12766:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53443,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12752:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12734:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53445,"nodeType":"ExpressionStatement","src":"12734:229:88"},{"expression":{"id":53461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53446,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12974:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53448,"indexExpression":{"hexValue":"33","id":53447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12987:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12974:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53453,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53309,"src":"13064:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13056:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53451,"name":"address","nodeType":"ElementaryTypeName","src":"13056:7:88","typeDescriptions":{}}},"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13056:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53455,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13100:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13109:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13100:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13124:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13100:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53458,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"13164:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53449,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13006:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13015:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13006:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13042:12:88","13092:6:88","13145:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13006:193:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12992:217:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12974:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53462,"nodeType":"ExpressionStatement","src":"12974:235:88"},{"expression":{"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53463,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13220:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53465,"indexExpression":{"hexValue":"34","id":53464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13233:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13220:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53470,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53325,"src":"13310:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13302:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53468,"name":"address","nodeType":"ElementaryTypeName","src":"13302:7:88","typeDescriptions":{}}},"id":53471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13302:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53472,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13343:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13352:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13343:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13367:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13343:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53475,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"13407:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53466,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13252:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13261:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13252:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13288:12:88","13335:6:88","13388:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13252:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13238:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13220:228:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53479,"nodeType":"ExpressionStatement","src":"13220:228:88"},{"expression":{"id":53495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53480,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13459:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53482,"indexExpression":{"hexValue":"35","id":53481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13472:1:88","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13459:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53487,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53317,"src":"13549:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53485,"name":"address","nodeType":"ElementaryTypeName","src":"13541:7:88","typeDescriptions":{}}},"id":53488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13541:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53489,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13582:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13591:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13582:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13606:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13582:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53492,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"13646:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53483,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13491:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13500:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13491:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13527:12:88","13574:6:88","13627:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13491:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13477:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13459:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53496,"nodeType":"ExpressionStatement","src":"13459:229:88"},{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53497,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13699:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53501,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13735:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53502,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53253,"src":"13749:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"13716:18:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":53499,"nodeType":"UserDefinedTypeName","pathNode":{"id":53498,"name":"GatewayDiamond","nameLocations":["13720:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"13720:14:88"},"referencedDeclaration":36170,"src":"13720:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13716:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"13699:57:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53505,"nodeType":"ExpressionStatement","src":"13699:57:88"},{"expression":{"id":53506,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13774:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53258,"id":53507,"nodeType":"Return","src":"13767:21:88"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"10619:20:88","parameters":{"id":53254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53253,"mutability":"mutable","name":"params","nameLocation":"10680:6:88","nodeType":"VariableDeclaration","scope":53509,"src":"10640:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53252,"nodeType":"UserDefinedTypeName","pathNode":{"id":53251,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10640:14:88","10655:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10640:32:88"},"referencedDeclaration":35883,"src":"10640:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"10639:48:88"},"returnParameters":{"id":53258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53509,"src":"10704:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53256,"nodeType":"UserDefinedTypeName","pathNode":{"id":53255,"name":"GatewayDiamond","nameLocations":["10704:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"10704:14:88"},"referencedDeclaration":36170,"src":"10704:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"10703:16:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53575,"nodeType":"FunctionDefinition","src":"13801:854:88","nodes":[],"body":{"id":53574,"nodeType":"Block","src":"14009:646:88","nodes":[],"statements":[{"assignments":[53527],"declarations":[{"constant":false,"id":53527,"mutability":"mutable","name":"diamondCut","nameLocation":"14046:10:88","nodeType":"VariableDeclaration","scope":53574,"src":"14019:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53525,"nodeType":"UserDefinedTypeName","pathNode":{"id":53524,"name":"IDiamond.FacetCut","nameLocations":["14019:8:88","14028:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14019:17:88"},"referencedDeclaration":40159,"src":"14019:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53526,"nodeType":"ArrayTypeName","src":"14019:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53534,"initialValue":{"arguments":[{"hexValue":"32","id":53532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14083:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14059:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53529,"nodeType":"UserDefinedTypeName","pathNode":{"id":53528,"name":"IDiamond.FacetCut","nameLocations":["14063:8:88","14072:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14063:17:88"},"referencedDeclaration":40159,"src":"14063:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53530,"nodeType":"ArrayTypeName","src":"14063:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14059:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14019:66:88"},{"expression":{"id":53547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53535,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14096:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53537,"indexExpression":{"hexValue":"30","id":53536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14096:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53540,"name":"getterFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53514,"src":"14176:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53541,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14214:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14223:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14214:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14238:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14214:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53544,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"14278:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53538,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14126:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14135:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14126:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14162:12:88","14206:6:88","14259:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14126:184:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53546,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14112:208:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14096:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53548,"nodeType":"ExpressionStatement","src":"14096:224:88"},{"expression":{"id":53561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53549,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14331:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53551,"indexExpression":{"hexValue":"31","id":53550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14342:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14331:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53554,"name":"managerFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"14411:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53555,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14450:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14459:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14450:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14474:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14450:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53558,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"14514:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53552,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14361:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14370:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14361:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14397:12:88","14442:6:88","14495:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14361:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53560,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14347:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14331:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53562,"nodeType":"ExpressionStatement","src":"14331:226:88"},{"expression":{"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53563,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14568:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53567,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14603:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53568,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53512,"src":"14615:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14580:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53565,"nodeType":"UserDefinedTypeName","pathNode":{"id":53564,"name":"SubnetActorDiamond","nameLocations":["14584:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14584:18:88"},"referencedDeclaration":36615,"src":"14584:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14580:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"14568:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53571,"nodeType":"ExpressionStatement","src":"14568:54:88"},{"expression":{"id":53572,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14639:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53521,"id":53573,"nodeType":"Return","src":"14632:16:88"}]},"functionSelector":"0d8d4acf","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"13810:35:88","parameters":{"id":53517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53512,"mutability":"mutable","name":"params","nameLocation":"13899:6:88","nodeType":"VariableDeclaration","scope":53575,"src":"13855:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53511,"nodeType":"UserDefinedTypeName","pathNode":{"id":53510,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["13855:18:88","13874:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"13855:36:88"},"referencedDeclaration":36253,"src":"13855:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53514,"mutability":"mutable","name":"getterFaucet","nameLocation":"13923:12:88","nodeType":"VariableDeclaration","scope":53575,"src":"13915:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53513,"name":"address","nodeType":"ElementaryTypeName","src":"13915:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53516,"mutability":"mutable","name":"managerFaucet","nameLocation":"13953:13:88","nodeType":"VariableDeclaration","scope":53575,"src":"13945:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53515,"name":"address","nodeType":"ElementaryTypeName","src":"13945:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13845:127:88"},"returnParameters":{"id":53521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53575,"src":"13989:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53519,"nodeType":"UserDefinedTypeName","pathNode":{"id":53518,"name":"SubnetActorDiamond","nameLocations":["13989:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"13989:18:88"},"referencedDeclaration":36615,"src":"13989:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"13988:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53710,"nodeType":"FunctionDefinition","src":"14661:1518:88","nodes":[],"body":{"id":53709,"nodeType":"Block","src":"14776:1403:88","nodes":[],"statements":[{"assignments":[53586],"declarations":[{"constant":false,"id":53586,"mutability":"mutable","name":"manager","nameLocation":"14810:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"14786:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53585,"nodeType":"UserDefinedTypeName","pathNode":{"id":53584,"name":"SubnetActorManagerFacet","nameLocations":["14786:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14786:23:88"},"referencedDeclaration":52151,"src":"14786:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53591,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14820:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53588,"nodeType":"UserDefinedTypeName","pathNode":{"id":53587,"name":"SubnetActorManagerFacet","nameLocations":["14824:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14824:23:88"},"referencedDeclaration":52151,"src":"14824:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14820:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"14786:63:88"},{"assignments":[53594],"declarations":[{"constant":false,"id":53594,"mutability":"mutable","name":"getter","nameLocation":"14882:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14859:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53593,"nodeType":"UserDefinedTypeName","pathNode":{"id":53592,"name":"SubnetActorGetterFacet","nameLocations":["14859:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14859:22:88"},"referencedDeclaration":50887,"src":"14859:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53599,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14891:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53596,"nodeType":"UserDefinedTypeName","pathNode":{"id":53595,"name":"SubnetActorGetterFacet","nameLocations":["14895:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14895:22:88"},"referencedDeclaration":50887,"src":"14895:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14891:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"14859:60:88"},{"assignments":[53602],"declarations":[{"constant":false,"id":53602,"mutability":"mutable","name":"louper","nameLocation":"14947:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14929:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53601,"nodeType":"UserDefinedTypeName","pathNode":{"id":53600,"name":"DiamondLoupeFacet","nameLocations":["14929:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14929:17:88"},"referencedDeclaration":37355,"src":"14929:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53607,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14956:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53604,"nodeType":"UserDefinedTypeName","pathNode":{"id":53603,"name":"DiamondLoupeFacet","nameLocations":["14960:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14960:17:88"},"referencedDeclaration":37355,"src":"14960:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14956:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"14929:50:88"},{"assignments":[53610],"declarations":[{"constant":false,"id":53610,"mutability":"mutable","name":"cutter","nameLocation":"15005:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14989:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53609,"nodeType":"UserDefinedTypeName","pathNode":{"id":53608,"name":"DiamondCutFacet","nameLocations":["14989:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"14989:15:88"},"referencedDeclaration":36918,"src":"14989:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53615,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"15014:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53612,"nodeType":"UserDefinedTypeName","pathNode":{"id":53611,"name":"DiamondCutFacet","nameLocations":["15018:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"15018:15:88"},"referencedDeclaration":36918,"src":"15018:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15014:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"14989:46:88"},{"assignments":[53621],"declarations":[{"constant":false,"id":53621,"mutability":"mutable","name":"diamondCut","nameLocation":"15073:10:88","nodeType":"VariableDeclaration","scope":53709,"src":"15046:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53619,"nodeType":"UserDefinedTypeName","pathNode":{"id":53618,"name":"IDiamond.FacetCut","nameLocations":["15046:8:88","15055:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15046:17:88"},"referencedDeclaration":40159,"src":"15046:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53620,"nodeType":"ArrayTypeName","src":"15046:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53628,"initialValue":{"arguments":[{"hexValue":"34","id":53626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15110:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15086:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53623,"nodeType":"UserDefinedTypeName","pathNode":{"id":53622,"name":"IDiamond.FacetCut","nameLocations":["15090:8:88","15099:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15090:17:88"},"referencedDeclaration":40159,"src":"15090:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53624,"nodeType":"ArrayTypeName","src":"15090:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15086:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15046:66:88"},{"expression":{"id":53644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53629,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15123:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53631,"indexExpression":{"hexValue":"30","id":53630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15134:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15123:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53636,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53586,"src":"15211:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53634,"name":"address","nodeType":"ElementaryTypeName","src":"15203:7:88","typeDescriptions":{}}},"id":53637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15203:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53638,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15245:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15254:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15245:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15269:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15245:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53641,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"15309:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53632,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15153:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15162:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15153:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15189:12:88","15237:6:88","15290:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15153:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53643,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15139:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15123:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53645,"nodeType":"ExpressionStatement","src":"15123:229:88"},{"expression":{"id":53661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53646,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15363:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53648,"indexExpression":{"hexValue":"31","id":53647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15374:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15363:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53653,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53594,"src":"15451:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15443:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53651,"name":"address","nodeType":"ElementaryTypeName","src":"15443:7:88","typeDescriptions":{}}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15443:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53655,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15484:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15493:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15484:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15508:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15484:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53658,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"15548:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53649,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15393:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15402:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15393:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15429:12:88","15476:6:88","15529:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15393:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53660,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15379:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15363:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53662,"nodeType":"ExpressionStatement","src":"15363:227:88"},{"expression":{"id":53678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53663,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15601:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53665,"indexExpression":{"hexValue":"32","id":53664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15612:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15601:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53670,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53610,"src":"15689:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15681:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53668,"name":"address","nodeType":"ElementaryTypeName","src":"15681:7:88","typeDescriptions":{}}},"id":53671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15681:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53672,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15722:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15722:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15746:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15722:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53675,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"15786:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53666,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15631:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15640:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15631:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15667:12:88","15714:6:88","15767:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15631:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53677,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15617:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15601:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53679,"nodeType":"ExpressionStatement","src":"15601:227:88"},{"expression":{"id":53695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53680,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15839:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53682,"indexExpression":{"hexValue":"33","id":53681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15850:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15839:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53687,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53602,"src":"15927:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15919:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53685,"name":"address","nodeType":"ElementaryTypeName","src":"15919:7:88","typeDescriptions":{}}},"id":53688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15919:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53689,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15960:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15969:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15960:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15984:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15960:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53692,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"16024:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53683,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15869:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15878:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15869:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15905:12:88","15952:6:88","16005:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15869:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53694,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15855:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15839:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53696,"nodeType":"ExpressionStatement","src":"15839:226:88"},{"assignments":[53699],"declarations":[{"constant":false,"id":53699,"mutability":"mutable","name":"diamond","nameLocation":"16095:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"16076:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53698,"nodeType":"UserDefinedTypeName","pathNode":{"id":53697,"name":"SubnetActorDiamond","nameLocations":["16076:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16076:18:88"},"referencedDeclaration":36615,"src":"16076:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53706,"initialValue":{"arguments":[{"id":53703,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"16128:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53704,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53578,"src":"16140:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16105:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53701,"nodeType":"UserDefinedTypeName","pathNode":{"id":53700,"name":"SubnetActorDiamond","nameLocations":["16109:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16109:18:88"},"referencedDeclaration":36615,"src":"16109:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16105:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"16076:71:88"},{"expression":{"id":53707,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53699,"src":"16165:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53583,"id":53708,"nodeType":"Return","src":"16158:14:88"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"14670:17:88","parameters":{"id":53579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53578,"mutability":"mutable","name":"params","nameLocation":"14732:6:88","nodeType":"VariableDeclaration","scope":53710,"src":"14688:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53577,"nodeType":"UserDefinedTypeName","pathNode":{"id":53576,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14688:18:88","14707:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14688:36:88"},"referencedDeclaration":36253,"src":"14688:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"14687:52:88"},"returnParameters":{"id":53583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53710,"src":"14756:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53581,"nodeType":"UserDefinedTypeName","pathNode":{"id":53580,"name":"SubnetActorDiamond","nameLocations":["14756:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14756:18:88"},"referencedDeclaration":36615,"src":"14756:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14755:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53739,"nodeType":"FunctionDefinition","src":"16185:522:88","nodes":[],"body":{"id":53738,"nodeType":"Block","src":"16429:278:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":53727,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53712,"src":"16470:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53728,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53715,"src":"16499:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53729,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53717,"src":"16523:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53730,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53719,"src":"16561:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53731,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53721,"src":"16589:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53732,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53723,"src":"16615:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53733,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"16648:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16663:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"16648:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16687:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53726,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53943,"src":"16439:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$37359_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$50165_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":53736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16439:261:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53737,"nodeType":"ExpressionStatement","src":"16439:261:88"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16194:17:88","parameters":{"id":53724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53712,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16229:15:88","nodeType":"VariableDeclaration","scope":53739,"src":"16221:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53711,"name":"address","nodeType":"ElementaryTypeName","src":"16221:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53715,"mutability":"mutable","name":"_consensus","nameLocation":"16268:10:88","nodeType":"VariableDeclaration","scope":53739,"src":"16254:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53714,"nodeType":"UserDefinedTypeName","pathNode":{"id":53713,"name":"ConsensusType","nameLocations":["16254:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16254:13:88"},"referencedDeclaration":37359,"src":"16254:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53717,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16296:24:88","nodeType":"VariableDeclaration","scope":53739,"src":"16288:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53716,"name":"uint256","nodeType":"ElementaryTypeName","src":"16288:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53719,"mutability":"mutable","name":"_minValidators","nameLocation":"16337:14:88","nodeType":"VariableDeclaration","scope":53739,"src":"16330:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53718,"name":"uint64","nodeType":"ElementaryTypeName","src":"16330:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53721,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16368:12:88","nodeType":"VariableDeclaration","scope":53739,"src":"16361:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53720,"name":"uint64","nodeType":"ElementaryTypeName","src":"16361:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53723,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16396:19:88","nodeType":"VariableDeclaration","scope":53739,"src":"16390:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53722,"name":"uint8","nodeType":"ElementaryTypeName","src":"16390:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16211:210:88"},"returnParameters":{"id":53725,"nodeType":"ParameterList","parameters":[],"src":"16429:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53943,"nodeType":"FunctionDefinition","src":"16713:2630:88","nodes":[],"body":{"id":53942,"nodeType":"Block","src":"17036:2307:88","nodes":[],"statements":[{"assignments":[53762],"declarations":[{"constant":false,"id":53762,"mutability":"mutable","name":"_parentId","nameLocation":"17062:9:88","nodeType":"VariableDeclaration","scope":53942,"src":"17046:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53761,"nodeType":"UserDefinedTypeName","pathNode":{"id":53760,"name":"SubnetID","nameLocations":["17046:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"17046:8:88"},"referencedDeclaration":50077,"src":"17046:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53771,"initialValue":{"arguments":[{"id":53764,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"17083:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17114:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17100:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53765,"name":"address","nodeType":"ElementaryTypeName","src":"17104:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53766,"nodeType":"ArrayTypeName","src":"17104:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17100:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53763,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"17074:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17074:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"17046:71:88"},{"expression":{"id":53777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53772,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17128:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17140:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53774,"nodeType":"UserDefinedTypeName","pathNode":{"id":53773,"name":"SubnetActorManagerFacet","nameLocations":["17144:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"17144:23:88"},"referencedDeclaration":52151,"src":"17144:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17140:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"17128:41:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53778,"nodeType":"ExpressionStatement","src":"17128:41:88"},{"expression":{"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53779,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17179:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17190:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53781,"nodeType":"UserDefinedTypeName","pathNode":{"id":53780,"name":"SubnetActorGetterFacet","nameLocations":["17194:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"17194:22:88"},"referencedDeclaration":50887,"src":"17194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17190:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"17179:39:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53785,"nodeType":"ExpressionStatement","src":"17179:39:88"},{"expression":{"id":53791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53786,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17228:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17239:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53788,"nodeType":"UserDefinedTypeName","pathNode":{"id":53787,"name":"DiamondCutFacet","nameLocations":["17243:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"17243:15:88"},"referencedDeclaration":36918,"src":"17243:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17239:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"17228:32:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53792,"nodeType":"ExpressionStatement","src":"17228:32:88"},{"expression":{"id":53798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53793,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"17270:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17281:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53795,"nodeType":"UserDefinedTypeName","pathNode":{"id":53794,"name":"DiamondLoupeFacet","nameLocations":["17285:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"17285:17:88"},"referencedDeclaration":37355,"src":"17285:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17281:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"17270:34:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53799,"nodeType":"ExpressionStatement","src":"17270:34:88"},{"assignments":[53805],"declarations":[{"constant":false,"id":53805,"mutability":"mutable","name":"diamondCut","nameLocation":"17342:10:88","nodeType":"VariableDeclaration","scope":53942,"src":"17315:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53803,"nodeType":"UserDefinedTypeName","pathNode":{"id":53802,"name":"IDiamond.FacetCut","nameLocations":["17315:8:88","17324:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17315:17:88"},"referencedDeclaration":40159,"src":"17315:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53804,"nodeType":"ArrayTypeName","src":"17315:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53812,"initialValue":{"arguments":[{"hexValue":"34","id":53810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17379:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17355:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53807,"nodeType":"UserDefinedTypeName","pathNode":{"id":53806,"name":"IDiamond.FacetCut","nameLocations":["17359:8:88","17368:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17359:17:88"},"referencedDeclaration":40159,"src":"17359:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53808,"nodeType":"ArrayTypeName","src":"17359:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17355:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17315:66:88"},{"expression":{"id":53828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53813,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17392:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53815,"indexExpression":{"hexValue":"30","id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17403:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17392:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53820,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17480:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17472:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53818,"name":"address","nodeType":"ElementaryTypeName","src":"17472:7:88","typeDescriptions":{}}},"id":53821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17472:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53822,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17516:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17516:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17540:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17516:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53825,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"17580:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53816,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17422:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17431:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17422:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17458:12:88","17508:6:88","17561:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17422:191:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53827,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17408:215:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17392:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53829,"nodeType":"ExpressionStatement","src":"17392:231:88"},{"expression":{"id":53845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53830,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17634:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53832,"indexExpression":{"hexValue":"31","id":53831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17645:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17634:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53837,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17722:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17714:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53835,"name":"address","nodeType":"ElementaryTypeName","src":"17714:7:88","typeDescriptions":{}}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17714:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53839,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17757:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17766:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17757:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17781:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17757:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53842,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"17821:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53833,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17664:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17673:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17664:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17700:12:88","17749:6:88","17802:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17664:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53844,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17650:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17634:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53846,"nodeType":"ExpressionStatement","src":"17634:229:88"},{"expression":{"id":53862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53847,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17874:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53849,"indexExpression":{"hexValue":"32","id":53848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17885:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17874:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53854,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17962:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17954:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53852,"name":"address","nodeType":"ElementaryTypeName","src":"17954:7:88","typeDescriptions":{}}},"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17954:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53856,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17997:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18006:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17997:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18021:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17997:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53859,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"18061:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53850,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17904:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17904:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17940:12:88","17989:6:88","18042:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17904:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53861,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17890:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17874:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53863,"nodeType":"ExpressionStatement","src":"17874:229:88"},{"expression":{"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53864,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18114:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53866,"indexExpression":{"hexValue":"33","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18125:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18114:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53871,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"18202:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18194:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53869,"name":"address","nodeType":"ElementaryTypeName","src":"18194:7:88","typeDescriptions":{}}},"id":53872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18194:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53873,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18237:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18246:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18237:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18261:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18237:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53876,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"18301:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53867,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18144:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18153:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18144:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18180:12:88","18229:6:88","18282:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18144:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18130:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18114:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53880,"nodeType":"ExpressionStatement","src":"18114:229:88"},{"expression":{"id":53904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53881,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"18354:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53885,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18402:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":53888,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53762,"src":"18491:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53889,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53741,"src":"18534:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53890,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53744,"src":"18578:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53891,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53746,"src":"18631:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53892,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53748,"src":"18688:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53893,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53750,"src":"18741:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53894,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53752,"src":"18791:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53895,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53757,"src":"18851:22:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":53896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18903:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":53897,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53755,"src":"18939:15:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53898,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"18988:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53899,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"19041:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19060:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"19041:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19041:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53886,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"18426:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18445:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"18426:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18481:8:88","18518:14:88","18567:9:88","18606:23:88","18673:13:88","18720:19:88","18771:18:88","18828:21:88","18891:10:88","18923:14:88","18972:14:88","19027:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"18426:657:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18366:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53883,"nodeType":"UserDefinedTypeName","pathNode":{"id":53882,"name":"SubnetActorDiamond","nameLocations":["18370:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18370:18:88"},"referencedDeclaration":36615,"src":"18370:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18366:727:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"18354:739:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53905,"nodeType":"ExpressionStatement","src":"18354:739:88"},{"expression":{"id":53913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53906,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"19104:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53910,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19148:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19140:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53908,"name":"address","nodeType":"ElementaryTypeName","src":"19140:7:88","typeDescriptions":{}}},"id":53911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19140:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53907,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"19116:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19116:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"19104:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53914,"nodeType":"ExpressionStatement","src":"19104:55:88"},{"expression":{"id":53922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53915,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"19169:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53919,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19211:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53917,"name":"address","nodeType":"ElementaryTypeName","src":"19203:7:88","typeDescriptions":{}}},"id":53920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19203:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53916,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"19180:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19180:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"19169:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53923,"nodeType":"ExpressionStatement","src":"19169:53:88"},{"expression":{"id":53931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53924,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"19232:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53928,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19267:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19259:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53926,"name":"address","nodeType":"ElementaryTypeName","src":"19259:7:88","typeDescriptions":{}}},"id":53929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19259:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53925,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"19243:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19243:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"19232:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53932,"nodeType":"ExpressionStatement","src":"19232:46:88"},{"expression":{"id":53940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53933,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"19288:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53937,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19325:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19317:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53935,"name":"address","nodeType":"ElementaryTypeName","src":"19317:7:88","typeDescriptions":{}}},"id":53938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19317:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53934,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"19299:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19299:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"19288:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53941,"nodeType":"ExpressionStatement","src":"19288:48:88"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16722:17:88","parameters":{"id":53758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53741,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16757:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16749:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53740,"name":"address","nodeType":"ElementaryTypeName","src":"16749:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53744,"mutability":"mutable","name":"_consensus","nameLocation":"16796:10:88","nodeType":"VariableDeclaration","scope":53943,"src":"16782:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53743,"nodeType":"UserDefinedTypeName","pathNode":{"id":53742,"name":"ConsensusType","nameLocations":["16782:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16782:13:88"},"referencedDeclaration":37359,"src":"16782:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53746,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16824:24:88","nodeType":"VariableDeclaration","scope":53943,"src":"16816:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53745,"name":"uint256","nodeType":"ElementaryTypeName","src":"16816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53748,"mutability":"mutable","name":"_minValidators","nameLocation":"16865:14:88","nodeType":"VariableDeclaration","scope":53943,"src":"16858:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53747,"name":"uint64","nodeType":"ElementaryTypeName","src":"16858:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53750,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16896:12:88","nodeType":"VariableDeclaration","scope":53943,"src":"16889:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53749,"name":"uint64","nodeType":"ElementaryTypeName","src":"16889:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53752,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16924:19:88","nodeType":"VariableDeclaration","scope":53943,"src":"16918:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53751,"name":"uint8","nodeType":"ElementaryTypeName","src":"16918:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53755,"mutability":"mutable","name":"_permissionMode","nameLocation":"16968:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16953:30:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":53754,"nodeType":"UserDefinedTypeName","pathNode":{"id":53753,"name":"PermissionMode","nameLocations":["16953:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"16953:14:88"},"referencedDeclaration":50165,"src":"16953:14:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53757,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"17000:22:88","nodeType":"VariableDeclaration","scope":53943,"src":"16993:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53756,"name":"uint16","nodeType":"ElementaryTypeName","src":"16993:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16739:289:88"},"returnParameters":{"id":53759,"nodeType":"ParameterList","parameters":[],"src":"17036:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54036,"nodeType":"FunctionDefinition","src":"19349:1021:88","nodes":[],"body":{"id":54035,"nodeType":"Block","src":"19441:929:88","nodes":[],"statements":[{"assignments":[53953],"declarations":[{"constant":false,"id":53953,"mutability":"mutable","name":"mockedManager","nameLocation":"19479:13:88","nodeType":"VariableDeclaration","scope":54035,"src":"19451:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":53952,"nodeType":"UserDefinedTypeName","pathNode":{"id":53951,"name":"SubnetActorManagerFacetMock","nameLocations":["19451:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19451:27:88"},"referencedDeclaration":57957,"src":"19451:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"}],"id":53958,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19495:31:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacetMock_$57957_$","typeString":"function () returns (contract SubnetActorManagerFacetMock)"},"typeName":{"id":53955,"nodeType":"UserDefinedTypeName","pathNode":{"id":53954,"name":"SubnetActorManagerFacetMock","nameLocations":["19499:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19499:27:88"},"referencedDeclaration":57957,"src":"19499:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}},"id":53957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19495:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"VariableDeclarationStatement","src":"19451:77:88"},{"assignments":[53961],"declarations":[{"constant":false,"id":53961,"mutability":"mutable","name":"getter","nameLocation":"19561:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"19538:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53960,"nodeType":"UserDefinedTypeName","pathNode":{"id":53959,"name":"SubnetActorGetterFacet","nameLocations":["19538:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19538:22:88"},"referencedDeclaration":50887,"src":"19538:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53966,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19570:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53963,"nodeType":"UserDefinedTypeName","pathNode":{"id":53962,"name":"SubnetActorGetterFacet","nameLocations":["19574:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19574:22:88"},"referencedDeclaration":50887,"src":"19574:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19570:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"19538:60:88"},{"assignments":[53972],"declarations":[{"constant":false,"id":53972,"mutability":"mutable","name":"diamondCut","nameLocation":"19636:10:88","nodeType":"VariableDeclaration","scope":54035,"src":"19609:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53970,"nodeType":"UserDefinedTypeName","pathNode":{"id":53969,"name":"IDiamond.FacetCut","nameLocations":["19609:8:88","19618:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19609:17:88"},"referencedDeclaration":40159,"src":"19609:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53971,"nodeType":"ArrayTypeName","src":"19609:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53979,"initialValue":{"arguments":[{"hexValue":"32","id":53977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19673:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19649:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53974,"nodeType":"UserDefinedTypeName","pathNode":{"id":53973,"name":"IDiamond.FacetCut","nameLocations":["19653:8:88","19662:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19653:17:88"},"referencedDeclaration":40159,"src":"19653:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53975,"nodeType":"ArrayTypeName","src":"19653:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19649:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"19609:66:88"},{"expression":{"id":53995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53980,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19686:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53982,"indexExpression":{"hexValue":"30","id":53981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19697:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19686:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53987,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53953,"src":"19774:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}],"id":53986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19766:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53985,"name":"address","nodeType":"ElementaryTypeName","src":"19766:7:88","typeDescriptions":{}}},"id":53988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19766:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53989,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19814:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19823:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"19814:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19838:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"19814:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53992,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"19878:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53983,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19716:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19725:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19716:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19752:12:88","19806:6:88","19859:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19716:201:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53994,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19702:225:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19686:241:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53996,"nodeType":"ExpressionStatement","src":"19686:241:88"},{"expression":{"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53997,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19938:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53999,"indexExpression":{"hexValue":"31","id":53998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19938:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54004,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53961,"src":"20026:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":54003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20018:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54002,"name":"address","nodeType":"ElementaryTypeName","src":"20018:7:88","typeDescriptions":{}}},"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20018:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54006,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20059:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20068:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20059:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20083:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20059:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54009,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"20123:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54000,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19968:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19977:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19968:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20004:12:88","20051:6:88","20104:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19968:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54011,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19954:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19938:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54013,"nodeType":"ExpressionStatement","src":"19938:227:88"},{"assignments":[54018],"declarations":[{"constant":false,"id":54018,"mutability":"mutable","name":"params","nameLocation":"20220:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"20176:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54017,"nodeType":"UserDefinedTypeName","pathNode":{"id":54016,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["20176:18:88","20195:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"20176:36:88"},"referencedDeclaration":36253,"src":"20176:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54022,"initialValue":{"arguments":[{"id":54020,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53945,"src":"20265:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54019,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"20229:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":54021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20229:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"20176:92:88"},{"assignments":[54025],"declarations":[{"constant":false,"id":54025,"mutability":"mutable","name":"d","nameLocation":"20298:1:88","nodeType":"VariableDeclaration","scope":54035,"src":"20279:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54024,"nodeType":"UserDefinedTypeName","pathNode":{"id":54023,"name":"SubnetActorDiamond","nameLocations":["20279:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20279:18:88"},"referencedDeclaration":36615,"src":"20279:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54032,"initialValue":{"arguments":[{"id":54029,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"20325:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54030,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54018,"src":"20337:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20302:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54027,"nodeType":"UserDefinedTypeName","pathNode":{"id":54026,"name":"SubnetActorDiamond","nameLocations":["20306:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20306:18:88"},"referencedDeclaration":36615,"src":"20306:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20302:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"20279:65:88"},{"expression":{"id":54033,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54025,"src":"20362:1:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53950,"id":54034,"nodeType":"Return","src":"20355:8:88"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"19358:34:88","parameters":{"id":53946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53945,"mutability":"mutable","name":"gw","nameLocation":"19401:2:88","nodeType":"VariableDeclaration","scope":54036,"src":"19393:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53944,"name":"address","nodeType":"ElementaryTypeName","src":"19393:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19392:12:88"},"returnParameters":{"id":53950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54036,"src":"19421:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53948,"nodeType":"UserDefinedTypeName","pathNode":{"id":53947,"name":"SubnetActorDiamond","nameLocations":["19421:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"19421:18:88"},"referencedDeclaration":36615,"src":"19421:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"19420:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54178,"nodeType":"FunctionDefinition","src":"20422:1703:88","nodes":[],"body":{"id":54177,"nodeType":"Block","src":"20560:1565:88","nodes":[],"statements":[{"assignments":[54050],"declarations":[{"constant":false,"id":54050,"mutability":"mutable","name":"diamondCut","nameLocation":"20597:10:88","nodeType":"VariableDeclaration","scope":54177,"src":"20570:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54048,"nodeType":"UserDefinedTypeName","pathNode":{"id":54047,"name":"IDiamond.FacetCut","nameLocations":["20570:8:88","20579:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20570:17:88"},"referencedDeclaration":40159,"src":"20570:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54049,"nodeType":"ArrayTypeName","src":"20570:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54057,"initialValue":{"arguments":[{"hexValue":"34","id":54055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20634:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20610:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54052,"nodeType":"UserDefinedTypeName","pathNode":{"id":54051,"name":"IDiamond.FacetCut","nameLocations":["20614:8:88","20623:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20614:17:88"},"referencedDeclaration":40159,"src":"20614:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54053,"nodeType":"ArrayTypeName","src":"20614:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20610:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20570:66:88"},{"assignments":[54060],"declarations":[{"constant":false,"id":54060,"mutability":"mutable","name":"regCutFacet","nameLocation":"20663:11:88","nodeType":"VariableDeclaration","scope":54177,"src":"20647:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54059,"nodeType":"UserDefinedTypeName","pathNode":{"id":54058,"name":"DiamondCutFacet","nameLocations":["20647:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20647:15:88"},"referencedDeclaration":36918,"src":"20647:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54065,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20677:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54062,"nodeType":"UserDefinedTypeName","pathNode":{"id":54061,"name":"DiamondCutFacet","nameLocations":["20681:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20681:15:88"},"referencedDeclaration":36918,"src":"20681:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20677:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"20647:51:88"},{"assignments":[54068],"declarations":[{"constant":false,"id":54068,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"20726:13:88","nodeType":"VariableDeclaration","scope":54177,"src":"20708:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54067,"nodeType":"UserDefinedTypeName","pathNode":{"id":54066,"name":"DiamondLoupeFacet","nameLocations":["20708:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20708:17:88"},"referencedDeclaration":37355,"src":"20708:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54073,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20742:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54070,"nodeType":"UserDefinedTypeName","pathNode":{"id":54069,"name":"DiamondLoupeFacet","nameLocations":["20746:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20746:17:88"},"referencedDeclaration":37355,"src":"20746:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20742:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"20708:57:88"},{"assignments":[54076],"declarations":[{"constant":false,"id":54076,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"20795:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20775:34:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54075,"nodeType":"UserDefinedTypeName","pathNode":{"id":54074,"name":"RegisterSubnetFacet","nameLocations":["20775:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20775:19:88"},"referencedDeclaration":52279,"src":"20775:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54081,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20812:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52279_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54078,"nodeType":"UserDefinedTypeName","pathNode":{"id":54077,"name":"RegisterSubnetFacet","nameLocations":["20816:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20816:19:88"},"referencedDeclaration":52279,"src":"20816:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}},"id":54080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20812:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"20775:62:88"},{"assignments":[54084],"declarations":[{"constant":false,"id":54084,"mutability":"mutable","name":"regGetterFacet","nameLocation":"20865:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20847:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54083,"nodeType":"UserDefinedTypeName","pathNode":{"id":54082,"name":"SubnetGetterFacet","nameLocations":["20847:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20847:17:88"},"referencedDeclaration":52517,"src":"20847:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54089,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20882:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52517_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54086,"nodeType":"UserDefinedTypeName","pathNode":{"id":54085,"name":"SubnetGetterFacet","nameLocations":["20886:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20886:17:88"},"referencedDeclaration":52517,"src":"20886:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}},"id":54088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20882:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"20847:58:88"},{"expression":{"id":54105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54090,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"20916:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54092,"indexExpression":{"hexValue":"30","id":54091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20927:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20916:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54097,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54068,"src":"21004:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20996:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54095,"name":"address","nodeType":"ElementaryTypeName","src":"20996:7:88","typeDescriptions":{}}},"id":54098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20996:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54099,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21044:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21053:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21044:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21068:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21044:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54102,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"21108:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54093,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20946:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20955:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20946:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20982:12:88","21036:6:88","21089:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20946:200:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20932:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20916:240:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54106,"nodeType":"ExpressionStatement","src":"20916:240:88"},{"expression":{"id":54122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54107,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21166:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54109,"indexExpression":{"hexValue":"31","id":54108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21177:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21166:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54114,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54060,"src":"21254:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21246:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54112,"name":"address","nodeType":"ElementaryTypeName","src":"21246:7:88","typeDescriptions":{}}},"id":54115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21246:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54116,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21292:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21301:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21292:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21316:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21292:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54119,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"21356:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54110,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21196:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21205:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21196:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21232:12:88","21284:6:88","21337:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21196:198:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54121,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21182:222:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21166:238:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54123,"nodeType":"ExpressionStatement","src":"21166:238:88"},{"expression":{"id":54139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54124,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21414:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54126,"indexExpression":{"hexValue":"32","id":54125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21425:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21414:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54131,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54076,"src":"21502:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}],"id":54130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21494:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54129,"name":"address","nodeType":"ElementaryTypeName","src":"21494:7:88","typeDescriptions":{}}},"id":54132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21494:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54133,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21543:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21552:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21543:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21567:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21543:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54136,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"21607:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54127,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21453:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21444:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21480:12:88","21535:6:88","21588:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21444:206:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54138,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21430:230:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21414:246:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54140,"nodeType":"ExpressionStatement","src":"21414:246:88"},{"expression":{"id":54156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54141,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21670:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54143,"indexExpression":{"hexValue":"33","id":54142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21681:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21670:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54148,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54084,"src":"21758:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}],"id":54147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21750:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54146,"name":"address","nodeType":"ElementaryTypeName","src":"21750:7:88","typeDescriptions":{}}},"id":54149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21750:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54150,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21799:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21808:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21799:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21823:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21799:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54153,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"21863:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54144,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21700:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21709:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21700:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21736:12:88","21791:6:88","21844:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21700:212:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21686:236:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21670:252:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54157,"nodeType":"ExpressionStatement","src":"21670:252:88"},{"assignments":[54160],"declarations":[{"constant":false,"id":54160,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"21955:17:88","nodeType":"VariableDeclaration","scope":54177,"src":"21933:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54159,"nodeType":"UserDefinedTypeName","pathNode":{"id":54158,"name":"SubnetRegistryDiamond","nameLocations":["21933:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21933:21:88"},"referencedDeclaration":36853,"src":"21933:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54167,"initialValue":{"arguments":[{"id":54164,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"22001:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54165,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54039,"src":"22013:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":54163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21975:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36652_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36853_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":54162,"nodeType":"UserDefinedTypeName","pathNode":{"id":54161,"name":"SubnetRegistryDiamond","nameLocations":["21979:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21979:21:88"},"referencedDeclaration":36853,"src":"21979:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21975:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"21933:87:88"},{"eventCall":{"arguments":[{"arguments":[{"id":54171,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22065:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22057:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54169,"name":"address","nodeType":"ElementaryTypeName","src":"22057:7:88","typeDescriptions":{}}},"id":54172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22057:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54168,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53071,"src":"22035:21:88","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22035:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54174,"nodeType":"EmitStatement","src":"22030:54:88"},{"expression":{"id":54175,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22101:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54044,"id":54176,"nodeType":"Return","src":"22094:24:88"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"20431:20:88","parameters":{"id":54040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54039,"mutability":"mutable","name":"params","nameLocation":"20508:6:88","nodeType":"VariableDeclaration","scope":54178,"src":"20461:53:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54038,"nodeType":"UserDefinedTypeName","pathNode":{"id":54037,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["20461:21:88","20483:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"20461:39:88"},"referencedDeclaration":36652,"src":"20461:39:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"20451:69:88"},"returnParameters":{"id":54044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54178,"src":"20537:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54042,"nodeType":"UserDefinedTypeName","pathNode":{"id":54041,"name":"SubnetRegistryDiamond","nameLocations":["20537:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"20537:21:88"},"referencedDeclaration":36853,"src":"20537:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"20536:23:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54207,"nodeType":"FunctionDefinition","src":"22131:190:88","nodes":[],"body":{"id":54206,"nodeType":"Block","src":"22212:109:88","nodes":[],"statements":[{"body":{"id":54202,"nodeType":"Block","src":"22253:42:88","statements":[{"expression":{"id":54200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54196,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22267:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54197,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54181,"src":"22274:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54199,"indexExpression":{"id":54198,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22282:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22274:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22267:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54201,"nodeType":"ExpressionStatement","src":"22267:17:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54190,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22241:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22245:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"22241:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54203,"initializationExpression":{"assignments":[54187],"declarations":[{"constant":false,"id":54187,"mutability":"mutable","name":"i","nameLocation":"22234:1:88","nodeType":"VariableDeclaration","scope":54203,"src":"22227:8:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54186,"name":"uint64","nodeType":"ElementaryTypeName","src":"22227:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54189,"initialValue":{"hexValue":"30","id":54188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22238:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22227:12:88"},"loopExpression":{"expression":{"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22248:3:88","subExpression":{"id":54193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22248:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54195,"nodeType":"ExpressionStatement","src":"22248:3:88"},"nodeType":"ForStatement","src":"22222:73:88"},{"expression":{"id":54204,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22311:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54185,"id":54205,"nodeType":"Return","src":"22304:10:88"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"22140:11:88","parameters":{"id":54182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54181,"mutability":"mutable","name":"weights","nameLocation":"22169:7:88","nodeType":"VariableDeclaration","scope":54207,"src":"22152:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54179,"name":"uint256","nodeType":"ElementaryTypeName","src":"22152:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54180,"nodeType":"ArrayTypeName","src":"22152:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"22151:26:88"},"returnParameters":{"id":54185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54184,"mutability":"mutable","name":"sum","nameLocation":"22207:3:88","nodeType":"VariableDeclaration","scope":54207,"src":"22199:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54183,"name":"uint256","nodeType":"ElementaryTypeName","src":"22199:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22198:13:88"},"scope":55375,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54382,"nodeType":"FunctionDefinition","src":"22327:933:88","nodes":[],"body":{"id":54381,"nodeType":"Block","src":"22430:830:88","nodes":[],"statements":[{"expression":{"id":54224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54217,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22440:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22470:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22453:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54219,"nodeType":"UserDefinedTypeName","pathNode":{"id":54218,"name":"FvmAddress","nameLocations":["22457:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22457:10:88"},"referencedDeclaration":49998,"src":"22457:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54220,"nodeType":"ArrayTypeName","src":"22457:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22453:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"22440:32:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54225,"nodeType":"ExpressionStatement","src":"22440:32:88"},{"expression":{"id":54236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54226,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22482:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54228,"indexExpression":{"hexValue":"30","id":54227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22493:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22482:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22528:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54231,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22520:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22523:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22520:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22520:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54229,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22498:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22515:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22498:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22498:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22482:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54237,"nodeType":"ExpressionStatement","src":"22482:51:88"},{"expression":{"id":54248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22543:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54240,"indexExpression":{"hexValue":"31","id":54239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22554:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22543:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22589:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54243,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22581:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22584:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22581:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22581:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54241,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22559:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22576:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22559:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22559:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22543:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54249,"nodeType":"ExpressionStatement","src":"22543:51:88"},{"expression":{"id":54260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54250,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22604:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54252,"indexExpression":{"hexValue":"32","id":54251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22615:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22604:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22650:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54255,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22642:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22645:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22642:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22642:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54253,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22620:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22637:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22620:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22620:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22604:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54261,"nodeType":"ExpressionStatement","src":"22604:51:88"},{"expression":{"id":54268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54262,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22666:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22692:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22678:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54263,"name":"address","nodeType":"ElementaryTypeName","src":"22682:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54264,"nodeType":"ArrayTypeName","src":"22682:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22678:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"22666:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54269,"nodeType":"ExpressionStatement","src":"22666:28:88"},{"expression":{"id":54277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54270,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22704:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54272,"indexExpression":{"hexValue":"30","id":54271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22714:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22704:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22727:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54273,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22719:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22722:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22719:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22719:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22704:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54278,"nodeType":"ExpressionStatement","src":"22704:27:88"},{"expression":{"id":54286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54279,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22741:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54281,"indexExpression":{"hexValue":"31","id":54280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22751:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22741:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22764:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54282,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22756:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22759:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22756:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22756:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22741:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54287,"nodeType":"ExpressionStatement","src":"22741:27:88"},{"expression":{"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54288,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22778:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54290,"indexExpression":{"hexValue":"32","id":54289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22788:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22778:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22801:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54291,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22793:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22796:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22793:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22793:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22778:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54296,"nodeType":"ExpressionStatement","src":"22778:27:88"},{"assignments":[54301],"declarations":[{"constant":false,"id":54301,"mutability":"mutable","name":"weights","nameLocation":"22833:7:88","nodeType":"VariableDeclaration","scope":54381,"src":"22816:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54299,"name":"uint256","nodeType":"ElementaryTypeName","src":"22816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54300,"nodeType":"ArrayTypeName","src":"22816:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54307,"initialValue":{"arguments":[{"hexValue":"33","id":54305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22857:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22843:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54302,"name":"uint256","nodeType":"ElementaryTypeName","src":"22847:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54303,"nodeType":"ArrayTypeName","src":"22847:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22843:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22816:43:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22886:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54311,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22878:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22881:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22878:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22878:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22892:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22870:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22873:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22870:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22870:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54317,"nodeType":"ExpressionStatement","src":"22870:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22920:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54321,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22912:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22915:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22912:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22926:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54318,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22904:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22907:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22904:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22904:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54327,"nodeType":"ExpressionStatement","src":"22904:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22954:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54331,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22946:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22949:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22946:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22946:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22960:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54328,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22938:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22941:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22938:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22938:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54337,"nodeType":"ExpressionStatement","src":"22938:24:88"},{"expression":{"id":54342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54338,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22973:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54340,"indexExpression":{"hexValue":"30","id":54339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22981:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22973:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22986:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22973:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54343,"nodeType":"ExpressionStatement","src":"22973:16:88"},{"expression":{"id":54348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54344,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22999:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54346,"indexExpression":{"hexValue":"31","id":54345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23007:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22999:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23012:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22999:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54349,"nodeType":"ExpressionStatement","src":"22999:16:88"},{"expression":{"id":54354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54350,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"23025:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54352,"indexExpression":{"hexValue":"32","id":54351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23033:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23025:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23038:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"23025:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54355,"nodeType":"ExpressionStatement","src":"23025:16:88"},{"assignments":[54358],"declarations":[{"constant":false,"id":54358,"mutability":"mutable","name":"finality","nameLocation":"23074:8:88","nodeType":"VariableDeclaration","scope":54381,"src":"23052:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54357,"nodeType":"UserDefinedTypeName","pathNode":{"id":54356,"name":"ParentFinality","nameLocations":["23052:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"23052:14:88"},"referencedDeclaration":49918,"src":"23052:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54367,"initialValue":{"arguments":[{"expression":{"id":54360,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23109:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:6:88","memberName":"number","nodeType":"MemberAccess","src":"23109:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23142:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23134:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23134:7:88","typeDescriptions":{}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23134:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54359,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"23085:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23101:6:88","23123:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"23085:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"23052:94:88"},{"expression":{"arguments":[{"expression":{"id":54371,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"23166:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23177:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"23166:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54368,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23157:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23160:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"23157:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23157:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54374,"nodeType":"ExpressionStatement","src":"23157:33:88"},{"expression":{"arguments":[{"id":54378,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54358,"src":"23244:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54375,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"23200:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23223:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"23200:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54380,"nodeType":"ExpressionStatement","src":"23200:53:88"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"22336:15:88","parameters":{"id":54208,"nodeType":"ParameterList","parameters":[],"src":"22351:2:88"},"returnParameters":{"id":54216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54212,"mutability":"mutable","name":"validators","nameLocation":"22390:10:88","nodeType":"VariableDeclaration","scope":54382,"src":"22370:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54210,"nodeType":"UserDefinedTypeName","pathNode":{"id":54209,"name":"FvmAddress","nameLocations":["22370:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22370:10:88"},"referencedDeclaration":49998,"src":"22370:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54211,"nodeType":"ArrayTypeName","src":"22370:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54215,"mutability":"mutable","name":"addresses","nameLocation":"22419:9:88","nodeType":"VariableDeclaration","scope":54382,"src":"22402:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54213,"name":"address","nodeType":"ElementaryTypeName","src":"22402:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54214,"nodeType":"ArrayTypeName","src":"22402:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"22369:60:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54475,"nodeType":"FunctionDefinition","src":"23266:1297:88","nodes":[],"body":{"id":54474,"nodeType":"Block","src":"23350:1213:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54392,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"23375:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54393,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23402:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54391,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55282,"src":"23360:14:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23360:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54395,"nodeType":"ExpressionStatement","src":"23360:46:88"},{"assignments":[54398],"declarations":[{"constant":false,"id":54398,"mutability":"mutable","name":"crossMsg","nameLocation":"23433:8:88","nodeType":"VariableDeclaration","scope":54474,"src":"23417:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54397,"nodeType":"UserDefinedTypeName","pathNode":{"id":54396,"name":"CrossMsg","nameLocations":["23417:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"23417:8:88"},"referencedDeclaration":49974,"src":"23417:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54438,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54406,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23596:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54402,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23555:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23564:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23555:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23581:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23555:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54410,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23659:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54408,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23637:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23654:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23637:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23637:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54401,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23512:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23545:8:88","23625:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23512:173:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54418,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23791:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54414,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23750:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23759:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23750:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23776:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23750:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54422,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23851:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54420,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23829:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23846:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23829:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23829:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54413,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23707:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23740:8:88","23817:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23707:167:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54425,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"23899:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23899:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54429,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"23976:11:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24023:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24013:9:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54430,"name":"bytes","nodeType":"ElementaryTypeName","src":"24017:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24013:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54434,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"24048:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54400,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"23476:11:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49991_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23506:4:88","23703:2:88","23892:5:88","23942:5:88","23968:6:88","24005:6:88","24043:3:88"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"23476:608:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24107:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54399,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"23444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49974_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23467:7:88","24098:7:88"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"23444:679:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"23417:706:88"},{"assignments":[54443],"declarations":[{"constant":false,"id":54443,"mutability":"mutable","name":"msgs","nameLocation":"24151:4:88","nodeType":"VariableDeclaration","scope":54474,"src":"24133:22:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":54441,"nodeType":"UserDefinedTypeName","pathNode":{"id":54440,"name":"CrossMsg","nameLocations":["24133:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24133:8:88"},"referencedDeclaration":49974,"src":"24133:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54442,"nodeType":"ArrayTypeName","src":"24133:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54450,"initialValue":{"arguments":[{"hexValue":"31","id":54448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24173:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24158:14:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":54445,"nodeType":"UserDefinedTypeName","pathNode":{"id":54444,"name":"CrossMsg","nameLocations":["24162:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24162:8:88"},"referencedDeclaration":49974,"src":"24162:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54446,"nodeType":"ArrayTypeName","src":"24162:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24158:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24133:42:88"},{"expression":{"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54451,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24185:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54453,"indexExpression":{"hexValue":"30","id":54452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24190:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24185:7:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54454,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24195:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"24185:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54456,"nodeType":"ExpressionStatement","src":"24185:18:88"},{"expression":{"arguments":[{"expression":{"id":54460,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"24442:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24453:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"24442:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54457,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24433:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24436:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"24433:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24433:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54463,"nodeType":"ExpressionStatement","src":"24433:33:88"},{"expression":{"arguments":[{"id":54467,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24516:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":54464,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"24476:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24497:18:88","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"24476:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":54468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24476:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54469,"nodeType":"ExpressionStatement","src":"24476:45:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54470,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24539:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24548:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40590,"src":"24539:15:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24539:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54390,"id":54473,"nodeType":"Return","src":"24532:24:88"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"23275:20:88","parameters":{"id":54387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54384,"mutability":"mutable","name":"caller","nameLocation":"23304:6:88","nodeType":"VariableDeclaration","scope":54475,"src":"23296:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54383,"name":"address","nodeType":"ElementaryTypeName","src":"23296:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54386,"mutability":"mutable","name":"src","nameLocation":"23320:3:88","nodeType":"VariableDeclaration","scope":54475,"src":"23312:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54385,"name":"address","nodeType":"ElementaryTypeName","src":"23312:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23295:29:88"},"returnParameters":{"id":54390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54475,"src":"23341:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23341:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23340:9:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54486,"nodeType":"FunctionDefinition","src":"24569:93:88","nodes":[],"body":{"id":54485,"nodeType":"Block","src":"24617:45:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54481,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54477,"src":"24640:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24651:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":54480,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"24627:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24627:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54484,"nodeType":"ExpressionStatement","src":"24627:28:88"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24578:12:88","parameters":{"id":54478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54477,"mutability":"mutable","name":"validator","nameLocation":"24599:9:88","nodeType":"VariableDeclaration","scope":54486,"src":"24591:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54476,"name":"address","nodeType":"ElementaryTypeName","src":"24591:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24590:19:88"},"returnParameters":{"id":54479,"nodeType":"ParameterList","parameters":[],"src":"24617:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54569,"nodeType":"FunctionDefinition","src":"24668:610:88","nodes":[],"body":{"id":54568,"nodeType":"Block","src":"24732:546:88","nodes":[],"statements":[{"assignments":[54497],"declarations":[{"constant":false,"id":54497,"mutability":"mutable","name":"validators","nameLocation":"24762:10:88","nodeType":"VariableDeclaration","scope":54568,"src":"24742:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54495,"nodeType":"UserDefinedTypeName","pathNode":{"id":54494,"name":"FvmAddress","nameLocations":["24742:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24742:10:88"},"referencedDeclaration":49998,"src":"24742:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54496,"nodeType":"ArrayTypeName","src":"24742:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54504,"initialValue":{"arguments":[{"hexValue":"31","id":54502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24792:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24775:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54499,"nodeType":"UserDefinedTypeName","pathNode":{"id":54498,"name":"FvmAddress","nameLocations":["24779:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24779:10:88"},"referencedDeclaration":49998,"src":"24779:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54500,"nodeType":"ArrayTypeName","src":"24779:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24775:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24742:52:88"},{"expression":{"id":54512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54505,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54497,"src":"24804:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54507,"indexExpression":{"hexValue":"30","id":54506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24815:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24804:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24842:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54508,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"24820:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24837:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"24820:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24820:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"24804:48:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54513,"nodeType":"ExpressionStatement","src":"24804:48:88"},{"assignments":[54518],"declarations":[{"constant":false,"id":54518,"mutability":"mutable","name":"weights","nameLocation":"24879:7:88","nodeType":"VariableDeclaration","scope":54568,"src":"24862:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54516,"name":"uint256","nodeType":"ElementaryTypeName","src":"24862:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54517,"nodeType":"ArrayTypeName","src":"24862:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54524,"initialValue":{"arguments":[{"hexValue":"31","id":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24903:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24889:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54519,"name":"uint256","nodeType":"ElementaryTypeName","src":"24893:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54520,"nodeType":"ArrayTypeName","src":"24893:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24889:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24862:43:88"},{"expression":{"id":54529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54525,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54518,"src":"24915:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54527,"indexExpression":{"hexValue":"30","id":54526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24915:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54528,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54490,"src":"24928:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24915:19:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54530,"nodeType":"ExpressionStatement","src":"24915:19:88"},{"expression":{"arguments":[{"id":54534,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24953:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24964:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24945:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24948:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"24945:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24945:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54537,"nodeType":"ExpressionStatement","src":"24945:21:88"},{"assignments":[54540],"declarations":[{"constant":false,"id":54540,"mutability":"mutable","name":"finality","nameLocation":"24998:8:88","nodeType":"VariableDeclaration","scope":54568,"src":"24976:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54539,"nodeType":"UserDefinedTypeName","pathNode":{"id":54538,"name":"ParentFinality","nameLocations":["24976:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"24976:14:88"},"referencedDeclaration":49918,"src":"24976:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54549,"initialValue":{"arguments":[{"expression":{"id":54542,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25033:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25039:6:88","memberName":"number","nodeType":"MemberAccess","src":"25033:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25066:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25058:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25058:7:88","typeDescriptions":{}}},"id":54547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25058:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54541,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"25009:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25025:6:88","25047:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"25009:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"24976:94:88"},{"expression":{"arguments":[{"expression":{"id":54553,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"25160:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25171:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"25160:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54550,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25146:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25149:10:88","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"25146:13:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25146:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54556,"nodeType":"ExpressionStatement","src":"25146:38:88"},{"expression":{"arguments":[{"id":54560,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54540,"src":"25238:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54557,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"25194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25217:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"25194:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25194:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54562,"nodeType":"ExpressionStatement","src":"25194:53:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54563,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25257:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25260:9:88","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"25257:12:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25257:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54567,"nodeType":"ExpressionStatement","src":"25257:14:88"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24677:12:88","parameters":{"id":54491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54488,"mutability":"mutable","name":"validator","nameLocation":"24698:9:88","nodeType":"VariableDeclaration","scope":54569,"src":"24690:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54487,"name":"address","nodeType":"ElementaryTypeName","src":"24690:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54490,"mutability":"mutable","name":"weight","nameLocation":"24717:6:88","nodeType":"VariableDeclaration","scope":54569,"src":"24709:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54489,"name":"uint256","nodeType":"ElementaryTypeName","src":"24709:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24689:35:88"},"returnParameters":{"id":54492,"nodeType":"ParameterList","parameters":[],"src":"24732:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54582,"nodeType":"FunctionDefinition","src":"25284:112:88","nodes":[],"body":{"id":54581,"nodeType":"Block","src":"25328:68:88","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25350:30:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54578,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54571,"src":"25382:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54574,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"25338:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25346:3:88","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"25338:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25338:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54580,"nodeType":"ExpressionStatement","src":"25338:51:88"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"25293:6:88","parameters":{"id":54572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54571,"mutability":"mutable","name":"amount","nameLocation":"25308:6:88","nodeType":"VariableDeclaration","scope":54582,"src":"25300:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54570,"name":"uint256","nodeType":"ElementaryTypeName","src":"25300:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25299:16:88"},"returnParameters":{"id":54573,"nodeType":"ParameterList","parameters":[],"src":"25328:0:88"},"scope":55375,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54597,"nodeType":"FunctionDefinition","src":"25402:131:88","nodes":[],"body":{"id":54596,"nodeType":"Block","src":"25466:67:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54590,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54584,"src":"25481:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54591,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54586,"src":"25496:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54592,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"25508:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25519:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"25508:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"id":54589,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54597,54722],"referencedDeclaration":54722,"src":"25476:4:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50229_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25476:50:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54595,"nodeType":"ExpressionStatement","src":"25476:50:88"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25411:4:88","parameters":{"id":54587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54584,"mutability":"mutable","name":"funderAddress","nameLocation":"25424:13:88","nodeType":"VariableDeclaration","scope":54597,"src":"25416:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54583,"name":"address","nodeType":"ElementaryTypeName","src":"25416:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54586,"mutability":"mutable","name":"fundAmount","nameLocation":"25447:10:88","nodeType":"VariableDeclaration","scope":54597,"src":"25439:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54585,"name":"uint256","nodeType":"ElementaryTypeName","src":"25439:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25415:43:88"},"returnParameters":{"id":54588,"nodeType":"ParameterList","parameters":[],"src":"25466:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54722,"nodeType":"FunctionDefinition","src":"25539:1180:88","nodes":[],"body":{"id":54721,"nodeType":"Block","src":"25620:1099:88","nodes":[],"statements":[{"assignments":[54609,null,54611,null,54613],"declarations":[{"constant":false,"id":54609,"mutability":"mutable","name":"subnetId","nameLocation":"25712:8:88","nodeType":"VariableDeclaration","scope":54721,"src":"25696:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54608,"nodeType":"UserDefinedTypeName","pathNode":{"id":54607,"name":"SubnetID","nameLocations":["25696:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"25696:8:88"},"referencedDeclaration":50077,"src":"25696:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54611,"mutability":"mutable","name":"nonceBefore","nameLocation":"25732:11:88","nodeType":"VariableDeclaration","scope":54721,"src":"25724:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54610,"name":"uint256","nodeType":"ElementaryTypeName","src":"25724:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54613,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"25755:16:88","nodeType":"VariableDeclaration","scope":54721,"src":"25747:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54612,"name":"uint256","nodeType":"ElementaryTypeName","src":"25747:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54620,"initialValue":{"arguments":[{"arguments":[{"id":54617,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"25793:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25785:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54615,"name":"address","nodeType":"ElementaryTypeName","src":"25785:7:88","typeDescriptions":{}}},"id":54618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25785:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54614,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"25775:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25775:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25695:109:88"},{"assignments":[54622],"declarations":[{"constant":false,"id":54622,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"25823:25:88","nodeType":"VariableDeclaration","scope":54721,"src":"25815:33:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54621,"name":"uint256","nodeType":"ElementaryTypeName","src":"25815:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54629,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54625,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"25887:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54623,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"25851:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25860:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"25851:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25851:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25899:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25851:49:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25815:85:88"},{"assignments":[54631],"declarations":[{"constant":false,"id":54631,"mutability":"mutable","name":"expectedNonce","nameLocation":"25918:13:88","nodeType":"VariableDeclaration","scope":54721,"src":"25910:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54630,"name":"uint256","nodeType":"ElementaryTypeName","src":"25910:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54635,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54632,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54611,"src":"25934:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25948:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25934:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25910:39:88"},{"assignments":[54637],"declarations":[{"constant":false,"id":54637,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"25967:18:88","nodeType":"VariableDeclaration","scope":54721,"src":"25959:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54636,"name":"uint256","nodeType":"ElementaryTypeName","src":"25959:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54641,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54638,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54613,"src":"25988:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54639,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26007:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25988:29:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25959:58:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54643,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26036:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26045:11:88","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"26036:20:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26061:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26036:26:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26064:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":54642,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26028:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26028:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54650,"nodeType":"ExpressionStatement","src":"26028:55:88"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54651,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26098:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54652,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26106:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26117:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"26106:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26098:25:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54668,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26241:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54669,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26249:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26260:5:88","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"26249:16:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26241:24:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54684,"nodeType":"IfStatement","src":"26237:138:88","trueBody":{"id":54683,"nodeType":"Block","src":"26267:108:88","statements":[{"expression":{"arguments":[{"id":54675,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26305:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54678,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26337:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54676,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26315:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26332:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26315:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26315:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54680,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26353:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54672,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26281:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26291:13:88","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"26281:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory,uint256) external"}},"id":54681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26281:83:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54682,"nodeType":"ExpressionStatement","src":"26281:83:88"}]}},"id":54685,"nodeType":"IfStatement","src":"26094:281:88","trueBody":{"id":54667,"nodeType":"Block","src":"26125:106:88","statements":[{"expression":{"arguments":[{"id":54660,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26173:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54663,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26205:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54661,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26183:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26200:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26183:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26183:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":54655,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26139:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26149:4:88","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"26139:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54658,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26161:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26139:33:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26139:81:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54666,"nodeType":"ExpressionStatement","src":"26139:81:88"}]}},{"assignments":[null,null,54687,null,54689],"declarations":[null,null,{"constant":false,"id":54687,"mutability":"mutable","name":"nonce","nameLocation":"26398:5:88","nodeType":"VariableDeclaration","scope":54721,"src":"26390:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54686,"name":"uint256","nodeType":"ElementaryTypeName","src":"26390:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54689,"mutability":"mutable","name":"circSupply","nameLocation":"26415:10:88","nodeType":"VariableDeclaration","scope":54721,"src":"26407:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54688,"name":"uint256","nodeType":"ElementaryTypeName","src":"26407:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54696,"initialValue":{"arguments":[{"arguments":[{"id":54693,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26447:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26439:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54691,"name":"address","nodeType":"ElementaryTypeName","src":"26439:7:88","typeDescriptions":{}}},"id":54694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26439:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54690,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"26429:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26429:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"26385:73:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54700,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26513:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54698,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26477:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26486:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"26477:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26477:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54702,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54622,"src":"26526:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26477:74:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":54704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26553:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":54697,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26469:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26469:105:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54706,"nodeType":"ExpressionStatement","src":"26469:105:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54708,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"26593:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54709,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54631,"src":"26602:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26593:22:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":54711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26617:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":54707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26585:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26585:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54713,"nodeType":"ExpressionStatement","src":"26585:51:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54715,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54689,"src":"26654:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54716,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54637,"src":"26668:18:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26654:32:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":54718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26688:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":54714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26646:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26646:66:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54720,"nodeType":"ExpressionStatement","src":"26646:66:88"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25548:4:88","parameters":{"id":54605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54599,"mutability":"mutable","name":"funderAddress","nameLocation":"25561:13:88","nodeType":"VariableDeclaration","scope":54722,"src":"25553:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54598,"name":"address","nodeType":"ElementaryTypeName","src":"25553:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54601,"mutability":"mutable","name":"fundAmount","nameLocation":"25584:10:88","nodeType":"VariableDeclaration","scope":54722,"src":"25576:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54600,"name":"uint256","nodeType":"ElementaryTypeName","src":"25576:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54604,"mutability":"mutable","name":"mode","nameLocation":"25607:4:88","nodeType":"VariableDeclaration","scope":54722,"src":"25596:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":54603,"nodeType":"UserDefinedTypeName","pathNode":{"id":54602,"name":"SupplyKind","nameLocations":["25596:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"25596:10:88"},"referencedDeclaration":50229,"src":"25596:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"25552:60:88"},"returnParameters":{"id":54606,"nodeType":"ParameterList","parameters":[],"src":"25620:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54753,"nodeType":"FunctionDefinition","src":"26725:243:88","nodes":[],"body":{"id":54752,"nodeType":"Block","src":"26793:175:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54732,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26812:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54729,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26803:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26806:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26803:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26803:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54734,"nodeType":"ExpressionStatement","src":"26803:26:88"},{"expression":{"arguments":[{"id":54738,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26847:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54739,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26865:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26865:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":54735,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26839:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26842:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26839:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26839:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54743,"nodeType":"ExpressionStatement","src":"26839:56:88"},{"expression":{"arguments":[{"id":54749,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54726,"src":"26954:6:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54744,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26905:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":54746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26915:4:88","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51605,"src":"26905:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":54748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54747,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26927:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"26905:48:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":54750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26905:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54751,"nodeType":"ExpressionStatement","src":"26905:56:88"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"26734:4:88","parameters":{"id":54727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54724,"mutability":"mutable","name":"validatorAddress","nameLocation":"26747:16:88","nodeType":"VariableDeclaration","scope":54753,"src":"26739:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54723,"name":"address","nodeType":"ElementaryTypeName","src":"26739:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54726,"mutability":"mutable","name":"pubkey","nameLocation":"26778:6:88","nodeType":"VariableDeclaration","scope":54753,"src":"26765:19:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54725,"name":"bytes","nodeType":"ElementaryTypeName","src":"26765:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26738:47:88"},"returnParameters":{"id":54728,"nodeType":"ParameterList","parameters":[],"src":"26793:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54800,"nodeType":"FunctionDefinition","src":"26974:298:88","nodes":[],"body":{"id":54799,"nodeType":"Block","src":"27042:230:88","nodes":[],"statements":[{"assignments":[54764],"declarations":[{"constant":false,"id":54764,"mutability":"mutable","name":"validators","nameLocation":"27069:10:88","nodeType":"VariableDeclaration","scope":54799,"src":"27052:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54762,"name":"address","nodeType":"ElementaryTypeName","src":"27052:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54763,"nodeType":"ArrayTypeName","src":"27052:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54770,"initialValue":{"arguments":[{"hexValue":"31","id":54768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27096:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27082:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54765,"name":"address","nodeType":"ElementaryTypeName","src":"27086:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54766,"nodeType":"ArrayTypeName","src":"27086:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27082:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27052:46:88"},{"expression":{"id":54775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54771,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27108:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54773,"indexExpression":{"hexValue":"30","id":54772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27119:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27108:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54774,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54755,"src":"27124:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27108:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54776,"nodeType":"ExpressionStatement","src":"27108:25:88"},{"assignments":[54781],"declarations":[{"constant":false,"id":54781,"mutability":"mutable","name":"privKeys","nameLocation":"27161:8:88","nodeType":"VariableDeclaration","scope":54799,"src":"27144:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54779,"name":"uint256","nodeType":"ElementaryTypeName","src":"27144:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54780,"nodeType":"ArrayTypeName","src":"27144:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54787,"initialValue":{"arguments":[{"hexValue":"31","id":54785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27186:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27172:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54782,"name":"uint256","nodeType":"ElementaryTypeName","src":"27176:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54783,"nodeType":"ArrayTypeName","src":"27176:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27172:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27144:44:88"},{"expression":{"id":54792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54788,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27198:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54790,"indexExpression":{"hexValue":"30","id":54789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27207:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27198:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54791,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54757,"src":"27212:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27198:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54793,"nodeType":"ExpressionStatement","src":"27198:21:88"},{"expression":{"arguments":[{"id":54795,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27244:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54796,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27256:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54794,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27230:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27230:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54798,"nodeType":"ExpressionStatement","src":"27230:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"26983:13:88","parameters":{"id":54758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54755,"mutability":"mutable","name":"validator","nameLocation":"27005:9:88","nodeType":"VariableDeclaration","scope":54800,"src":"26997:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54754,"name":"address","nodeType":"ElementaryTypeName","src":"26997:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54757,"mutability":"mutable","name":"privKey","nameLocation":"27024:7:88","nodeType":"VariableDeclaration","scope":54800,"src":"27016:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54756,"name":"uint256","nodeType":"ElementaryTypeName","src":"27016:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26996:36:88"},"returnParameters":{"id":54759,"nodeType":"ParameterList","parameters":[],"src":"27042:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54863,"nodeType":"FunctionDefinition","src":"27278:408:88","nodes":[],"body":{"id":54862,"nodeType":"Block","src":"27386:300:88","nodes":[],"statements":[{"assignments":[54815],"declarations":[{"constant":false,"id":54815,"mutability":"mutable","name":"validators","nameLocation":"27413:10:88","nodeType":"VariableDeclaration","scope":54862,"src":"27396:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54813,"name":"address","nodeType":"ElementaryTypeName","src":"27396:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54814,"nodeType":"ArrayTypeName","src":"27396:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54821,"initialValue":{"arguments":[{"hexValue":"32","id":54819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27440:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27426:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54816,"name":"address","nodeType":"ElementaryTypeName","src":"27430:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54817,"nodeType":"ArrayTypeName","src":"27430:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27426:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27396:46:88"},{"expression":{"id":54826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54822,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27452:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54824,"indexExpression":{"hexValue":"30","id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27463:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27452:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54825,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54802,"src":"27468:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27452:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54827,"nodeType":"ExpressionStatement","src":"27452:26:88"},{"expression":{"id":54832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54828,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27488:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54830,"indexExpression":{"hexValue":"31","id":54829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27499:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27488:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54831,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54806,"src":"27504:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27488:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54833,"nodeType":"ExpressionStatement","src":"27488:26:88"},{"assignments":[54838],"declarations":[{"constant":false,"id":54838,"mutability":"mutable","name":"privKeys","nameLocation":"27542:8:88","nodeType":"VariableDeclaration","scope":54862,"src":"27525:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54836,"name":"uint256","nodeType":"ElementaryTypeName","src":"27525:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54837,"nodeType":"ArrayTypeName","src":"27525:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54844,"initialValue":{"arguments":[{"hexValue":"32","id":54842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27567:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27553:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54839,"name":"uint256","nodeType":"ElementaryTypeName","src":"27557:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54840,"nodeType":"ArrayTypeName","src":"27557:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27553:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27525:44:88"},{"expression":{"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54845,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27579:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54847,"indexExpression":{"hexValue":"30","id":54846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27588:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27579:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54848,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54804,"src":"27593:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27579:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54850,"nodeType":"ExpressionStatement","src":"27579:22:88"},{"expression":{"id":54855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54851,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27611:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54853,"indexExpression":{"hexValue":"31","id":54852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27620:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27611:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54854,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54808,"src":"27625:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27611:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54856,"nodeType":"ExpressionStatement","src":"27611:22:88"},{"expression":{"arguments":[{"id":54858,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27658:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54859,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27670:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54857,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27644:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27644:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54861,"nodeType":"ExpressionStatement","src":"27644:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27287:13:88","parameters":{"id":54809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54802,"mutability":"mutable","name":"validator1","nameLocation":"27309:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27301:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54801,"name":"address","nodeType":"ElementaryTypeName","src":"27301:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54804,"mutability":"mutable","name":"privKey1","nameLocation":"27329:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27321:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54803,"name":"uint256","nodeType":"ElementaryTypeName","src":"27321:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54806,"mutability":"mutable","name":"validator2","nameLocation":"27347:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27339:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54805,"name":"address","nodeType":"ElementaryTypeName","src":"27339:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54808,"mutability":"mutable","name":"privKey2","nameLocation":"27367:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27359:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54807,"name":"uint256","nodeType":"ElementaryTypeName","src":"27359:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27300:76:88"},"returnParameters":{"id":54810,"nodeType":"ParameterList","parameters":[],"src":"27386:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54942,"nodeType":"FunctionDefinition","src":"27692:568:88","nodes":[],"body":{"id":54941,"nodeType":"Block","src":"27892:368:88","nodes":[],"statements":[{"assignments":[54882],"declarations":[{"constant":false,"id":54882,"mutability":"mutable","name":"validators","nameLocation":"27919:10:88","nodeType":"VariableDeclaration","scope":54941,"src":"27902:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54880,"name":"address","nodeType":"ElementaryTypeName","src":"27902:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54881,"nodeType":"ArrayTypeName","src":"27902:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54888,"initialValue":{"arguments":[{"hexValue":"33","id":54886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27946:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27932:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54883,"name":"address","nodeType":"ElementaryTypeName","src":"27936:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54884,"nodeType":"ArrayTypeName","src":"27936:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27932:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27902:46:88"},{"expression":{"id":54893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54889,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27958:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54891,"indexExpression":{"hexValue":"30","id":54890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27969:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27958:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54892,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54865,"src":"27974:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27958:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54894,"nodeType":"ExpressionStatement","src":"27958:26:88"},{"expression":{"id":54899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54895,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27994:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54897,"indexExpression":{"hexValue":"31","id":54896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28005:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27994:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54898,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54869,"src":"28010:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27994:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54900,"nodeType":"ExpressionStatement","src":"27994:26:88"},{"expression":{"id":54905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54901,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28030:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54903,"indexExpression":{"hexValue":"32","id":54902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28030:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54904,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54873,"src":"28046:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"28030:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54906,"nodeType":"ExpressionStatement","src":"28030:26:88"},{"assignments":[54911],"declarations":[{"constant":false,"id":54911,"mutability":"mutable","name":"privKeys","nameLocation":"28084:8:88","nodeType":"VariableDeclaration","scope":54941,"src":"28067:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54909,"name":"uint256","nodeType":"ElementaryTypeName","src":"28067:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54910,"nodeType":"ArrayTypeName","src":"28067:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54917,"initialValue":{"arguments":[{"hexValue":"33","id":54915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28109:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28095:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54912,"name":"uint256","nodeType":"ElementaryTypeName","src":"28099:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54913,"nodeType":"ArrayTypeName","src":"28099:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28095:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28067:44:88"},{"expression":{"id":54922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54918,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28121:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54920,"indexExpression":{"hexValue":"30","id":54919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28130:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28121:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54921,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54867,"src":"28135:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28121:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54923,"nodeType":"ExpressionStatement","src":"28121:22:88"},{"expression":{"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54924,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28153:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54926,"indexExpression":{"hexValue":"31","id":54925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28162:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28153:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54927,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54871,"src":"28167:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28153:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54929,"nodeType":"ExpressionStatement","src":"28153:22:88"},{"expression":{"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54930,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28185:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54932,"indexExpression":{"hexValue":"32","id":54931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28194:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28185:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54933,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54875,"src":"28199:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28185:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54935,"nodeType":"ExpressionStatement","src":"28185:22:88"},{"expression":{"arguments":[{"id":54937,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28232:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54938,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28244:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54936,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"28218:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28218:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54940,"nodeType":"ExpressionStatement","src":"28218:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27701:13:88","parameters":{"id":54876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54865,"mutability":"mutable","name":"validator1","nameLocation":"27732:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27724:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54864,"name":"address","nodeType":"ElementaryTypeName","src":"27724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54867,"mutability":"mutable","name":"privKey1","nameLocation":"27760:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27752:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54866,"name":"uint256","nodeType":"ElementaryTypeName","src":"27752:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54869,"mutability":"mutable","name":"validator2","nameLocation":"27786:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27778:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54868,"name":"address","nodeType":"ElementaryTypeName","src":"27778:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54871,"mutability":"mutable","name":"privKey2","nameLocation":"27814:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27806:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54870,"name":"uint256","nodeType":"ElementaryTypeName","src":"27806:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54873,"mutability":"mutable","name":"validator3","nameLocation":"27840:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27832:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54872,"name":"address","nodeType":"ElementaryTypeName","src":"27832:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54875,"mutability":"mutable","name":"privKey3","nameLocation":"27868:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27860:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54874,"name":"uint256","nodeType":"ElementaryTypeName","src":"27860:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27714:168:88"},"returnParameters":{"id":54877,"nodeType":"ParameterList","parameters":[],"src":"27892:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55093,"nodeType":"FunctionDefinition","src":"28266:1102:88","nodes":[],"body":{"id":55092,"nodeType":"Block","src":"28354:1014:88","nodes":[],"statements":[{"assignments":[54952],"declarations":[{"constant":false,"id":54952,"mutability":"mutable","name":"n","nameLocation":"28372:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28364:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54951,"name":"uint256","nodeType":"ElementaryTypeName","src":"28364:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54955,"initialValue":{"expression":{"id":54953,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"28376:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28387:6:88","memberName":"length","nodeType":"MemberAccess","src":"28376:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28364:29:88"},{"assignments":[54960],"declarations":[{"constant":false,"id":54960,"mutability":"mutable","name":"signatures","nameLocation":"28419:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28404:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":54958,"name":"bytes","nodeType":"ElementaryTypeName","src":"28404:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54959,"nodeType":"ArrayTypeName","src":"28404:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":54966,"initialValue":{"arguments":[{"id":54964,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"28444:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28432:11:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":54961,"name":"bytes","nodeType":"ElementaryTypeName","src":"28436:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54962,"nodeType":"ArrayTypeName","src":"28436:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28432:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28404:42:88"},{"assignments":[54968,null],"declarations":[{"constant":false,"id":54968,"mutability":"mutable","name":"nextConfigNum","nameLocation":"28465:13:88","nodeType":"VariableDeclaration","scope":55092,"src":"28458:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54967,"name":"uint64","nodeType":"ElementaryTypeName","src":"28458:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":54972,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54969,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28484:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28493:23:88","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50349,"src":"28484:32:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":54971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28484:34:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"28457:61:88"},{"assignments":[54974],"declarations":[{"constant":false,"id":54974,"mutability":"mutable","name":"h","nameLocation":"28537:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28529:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54973,"name":"uint256","nodeType":"ElementaryTypeName","src":"28529:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54982,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54975,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28541:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28550:28:88","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50477,"src":"28541:37:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28541:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54978,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28583:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28592:19:88","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50457,"src":"28583:28:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28583:30:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28541:72:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28529:84:88"},{"assignments":[54985],"declarations":[{"constant":false,"id":54985,"mutability":"mutable","name":"checkpoint","nameLocation":"28650:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28624:36:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":54984,"nodeType":"UserDefinedTypeName","pathNode":{"id":54983,"name":"BottomUpCheckpoint","nameLocations":["28624:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"28624:18:88"},"referencedDeclaration":49932,"src":"28624:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55007,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":54993,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28750:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28742:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54991,"name":"address","nodeType":"ElementaryTypeName","src":"28742:7:88","typeDescriptions":{}}},"id":54994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28742:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54987,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28706:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28715:9:88","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50279,"src":"28706:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28727:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"28706:35:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54996,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28788:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55000,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28835:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28824:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28828:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28824:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28824:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54997,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28814:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28814:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55003,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54968,"src":"28877:13:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28877:17:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":54986,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"28663:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49932_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28696:8:88","28775:11:88","28803:9:88","28852:23:88"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"28663:242:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"28624:281:88"},{"expression":{"arguments":[{"arguments":[{"id":55013,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28932:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28924:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55011,"name":"address","nodeType":"ElementaryTypeName","src":"28924:7:88","typeDescriptions":{}}},"id":55014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28924:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28944:9:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":55008,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28916:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28919:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28916:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55017,"nodeType":"ExpressionStatement","src":"28916:38:88"},{"assignments":[55019],"declarations":[{"constant":false,"id":55019,"mutability":"mutable","name":"hash","nameLocation":"28973:4:88","nodeType":"VariableDeclaration","scope":55092,"src":"28965:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28965:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55026,"initialValue":{"arguments":[{"arguments":[{"id":55023,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29001:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":55021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28990:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28994:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28990:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28990:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55020,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28980:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28980:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28965:48:88"},{"body":{"id":55062,"nodeType":"Block","src":"29056:140:88","statements":[{"assignments":[55038,55040,55042],"declarations":[{"constant":false,"id":55038,"mutability":"mutable","name":"v","nameLocation":"29077:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29071:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55037,"name":"uint8","nodeType":"ElementaryTypeName","src":"29071:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55040,"mutability":"mutable","name":"r","nameLocation":"29088:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29080:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29080:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55042,"mutability":"mutable","name":"s","nameLocation":"29099:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29091:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29091:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55050,"initialValue":{"arguments":[{"baseExpression":{"id":55045,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54948,"src":"29112:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55047,"indexExpression":{"id":55046,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29121:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29112:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55048,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55019,"src":"29125:4:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55043,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29104:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29107:4:88","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"29104:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":55049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29104:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"29070:60:88"},{"expression":{"id":55060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55051,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29144:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55053,"indexExpression":{"id":55052,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29155:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29144:13:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55056,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55040,"src":"29177:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55057,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55042,"src":"29180:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55058,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55038,"src":"29183:1:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29160:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29164:12:88","memberName":"encodePacked","nodeType":"MemberAccess","src":"29160:16:88","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29160:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"29144:41:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55061,"nodeType":"ExpressionStatement","src":"29144:41:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55031,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29044:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55032,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29048:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29044:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55063,"initializationExpression":{"assignments":[55028],"declarations":[{"constant":false,"id":55028,"mutability":"mutable","name":"i","nameLocation":"29037:1:88","nodeType":"VariableDeclaration","scope":55063,"src":"29029:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55027,"name":"uint256","nodeType":"ElementaryTypeName","src":"29029:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55030,"initialValue":{"hexValue":"30","id":55029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29029:13:88"},"loopExpression":{"expression":{"id":55035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29051:3:88","subExpression":{"id":55034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29051:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55036,"nodeType":"ExpressionStatement","src":"29051:3:88"},"nodeType":"ForStatement","src":"29024:172:88"},{"body":{"id":55090,"nodeType":"Block","src":"29238:124:88","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55077,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29261:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55079,"indexExpression":{"id":55078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29272:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29261:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55074,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29252:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29255:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"29252:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29252:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55081,"nodeType":"ExpressionStatement","src":"29252:23:88"},{"expression":{"arguments":[{"id":55085,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29316:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55086,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29328:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55087,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29340:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":55082,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"29289:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":55084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29299:16:88","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":51154,"src":"29289:26:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":55088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29289:62:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55089,"nodeType":"ExpressionStatement","src":"29289:62:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55068,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29226:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55069,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29230:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29226:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55091,"initializationExpression":{"assignments":[55065],"declarations":[{"constant":false,"id":55065,"mutability":"mutable","name":"i","nameLocation":"29219:1:88","nodeType":"VariableDeclaration","scope":55091,"src":"29211:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55064,"name":"uint256","nodeType":"ElementaryTypeName","src":"29211:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55067,"initialValue":{"hexValue":"30","id":55066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29223:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29211:13:88"},"loopExpression":{"expression":{"id":55072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29233:3:88","subExpression":{"id":55071,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29233:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55073,"nodeType":"ExpressionStatement","src":"29233:3:88"},"nodeType":"ForStatement","src":"29206:156:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"28275:13:88","parameters":{"id":54949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54945,"mutability":"mutable","name":"validators","nameLocation":"28306:10:88","nodeType":"VariableDeclaration","scope":55093,"src":"28289:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54943,"name":"address","nodeType":"ElementaryTypeName","src":"28289:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54944,"nodeType":"ArrayTypeName","src":"28289:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":54948,"mutability":"mutable","name":"privKeys","nameLocation":"28335:8:88","nodeType":"VariableDeclaration","scope":55093,"src":"28318:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54946,"name":"uint256","nodeType":"ElementaryTypeName","src":"28318:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54947,"nodeType":"ArrayTypeName","src":"28318:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"28288:56:88"},"returnParameters":{"id":54950,"nodeType":"ParameterList","parameters":[],"src":"28354:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55128,"nodeType":"FunctionDefinition","src":"29374:305:88","nodes":[],"body":{"id":55127,"nodeType":"Block","src":"29421:258:88","nodes":[],"statements":[{"assignments":[55099],"declarations":[{"constant":false,"id":55099,"mutability":"mutable","name":"expectedNonce","nameLocation":"29439:13:88","nodeType":"VariableDeclaration","scope":55127,"src":"29431:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55098,"name":"uint256","nodeType":"ElementaryTypeName","src":"29431:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55105,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55100,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29455:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29464:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29455:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29455:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29482:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29455:28:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"29431:52:88"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55113,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29555:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29559:6:88","memberName":"sender","nodeType":"MemberAccess","src":"29555:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55111,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"29533:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":55112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29550:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"29533:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":55115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29533:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":55106,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29493:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29503:7:88","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"29493:17:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55109,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55095,"src":"29518:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29493:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29493:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55117,"nodeType":"ExpressionStatement","src":"29493:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55119,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29585:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29594:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29585:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29585:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55122,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55099,"src":"29613:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29585:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29628:43:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":55118,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29577:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29577:95:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55126,"nodeType":"ExpressionStatement","src":"29577:95:88"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"29383:7:88","parameters":{"id":55096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55095,"mutability":"mutable","name":"releaseAmount","nameLocation":"29399:13:88","nodeType":"VariableDeclaration","scope":55128,"src":"29391:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55094,"name":"uint256","nodeType":"ElementaryTypeName","src":"29391:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29390:23:88"},"returnParameters":{"id":55097,"nodeType":"ParameterList","parameters":[],"src":"29421:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55183,"nodeType":"FunctionDefinition","src":"29685:536:88","nodes":[],"body":{"id":55182,"nodeType":"Block","src":"29754:467:88","nodes":[],"statements":[{"assignments":[55136],"declarations":[{"constant":false,"id":55136,"mutability":"mutable","name":"balanceBefore","nameLocation":"29772:13:88","nodeType":"VariableDeclaration","scope":55182,"src":"29764:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55135,"name":"uint256","nodeType":"ElementaryTypeName","src":"29764:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55139,"initialValue":{"expression":{"id":55137,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29788:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29802:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29788:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29764:45:88"},{"assignments":[null,55141,null,null,null],"declarations":[null,{"constant":false,"id":55141,"mutability":"mutable","name":"stakedBefore","nameLocation":"29831:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29823:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55140,"name":"uint256","nodeType":"ElementaryTypeName","src":"29823:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55145,"initialValue":{"arguments":[{"id":55143,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29863:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55142,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"29853:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29853:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29820:57:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55146,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29888:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29898:8:88","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"29888:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55149,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"29914:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29888:38:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29888:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55152,"nodeType":"ExpressionStatement","src":"29888:40:88"},{"assignments":[55154],"declarations":[{"constant":false,"id":55154,"mutability":"mutable","name":"balanceAfter","nameLocation":"29947:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29939:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55153,"name":"uint256","nodeType":"ElementaryTypeName","src":"29939:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55157,"initialValue":{"expression":{"id":55155,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29962:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29976:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29962:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29939:44:88"},{"assignments":[null,55159,null,null,null],"declarations":[null,{"constant":false,"id":55159,"mutability":"mutable","name":"stakedAfter","nameLocation":"30004:11:88","nodeType":"VariableDeclaration","scope":55182,"src":"29996:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55158,"name":"uint256","nodeType":"ElementaryTypeName","src":"29996:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55163,"initialValue":{"arguments":[{"id":55161,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"30035:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55160,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"30025:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30025:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29993:56:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55165,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55154,"src":"30068:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55166,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55136,"src":"30084:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55167,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30100:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30084:27:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30068:43:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30113:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":55164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30060:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30060:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55172,"nodeType":"ExpressionStatement","src":"30060:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55174,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55159,"src":"30152:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55175,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55141,"src":"30167:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55176,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30182:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30167:26:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30152:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30195:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30144:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30144:70:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55181,"nodeType":"ExpressionStatement","src":"30144:70:88"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"29694:8:88","parameters":{"id":55133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55130,"mutability":"mutable","name":"stakeAmount","nameLocation":"29711:11:88","nodeType":"VariableDeclaration","scope":55183,"src":"29703:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55129,"name":"uint256","nodeType":"ElementaryTypeName","src":"29703:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55132,"mutability":"mutable","name":"subnetAddress","nameLocation":"29732:13:88","nodeType":"VariableDeclaration","scope":55183,"src":"29724:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55131,"name":"address","nodeType":"ElementaryTypeName","src":"29724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29702:44:88"},"returnParameters":{"id":55134,"nodeType":"ParameterList","parameters":[],"src":"29754:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55268,"nodeType":"FunctionDefinition","src":"30227:813:88","nodes":[],"body":{"id":55267,"nodeType":"Block","src":"30322:718:88","nodes":[],"statements":[{"assignments":[55195],"declarations":[{"constant":false,"id":55195,"mutability":"mutable","name":"manager","nameLocation":"30352:7:88","nodeType":"VariableDeclaration","scope":55267,"src":"30332:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55194,"nodeType":"UserDefinedTypeName","pathNode":{"id":55193,"name":"GatewayManagerFacet","nameLocations":["30332:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"30332:19:88"},"referencedDeclaration":38870,"src":"30332:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55202,"initialValue":{"arguments":[{"arguments":[{"id":55199,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30390:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30382:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55197,"name":"address","nodeType":"ElementaryTypeName","src":"30382:7:88","typeDescriptions":{}}},"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30382:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55196,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"30362:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30362:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"30332:62:88"},{"expression":{"arguments":[{"hexValue":"30","id":55208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30441:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":55203,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55195,"src":"30405:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30413:8:88","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"30405:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55206,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30429:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"30405:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30405:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55210,"nodeType":"ExpressionStatement","src":"30405:38:88"},{"assignments":[55213,55215,55217,null,55219],"declarations":[{"constant":false,"id":55213,"mutability":"mutable","name":"id","nameLocation":"30471:2:88","nodeType":"VariableDeclaration","scope":55267,"src":"30455:18:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55212,"nodeType":"UserDefinedTypeName","pathNode":{"id":55211,"name":"SubnetID","nameLocations":["30455:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30455:8:88"},"referencedDeclaration":50077,"src":"30455:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55215,"mutability":"mutable","name":"stake","nameLocation":"30483:5:88","nodeType":"VariableDeclaration","scope":55267,"src":"30475:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55214,"name":"uint256","nodeType":"ElementaryTypeName","src":"30475:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55217,"mutability":"mutable","name":"topDownNonce","nameLocation":"30498:12:88","nodeType":"VariableDeclaration","scope":55267,"src":"30490:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55216,"name":"uint256","nodeType":"ElementaryTypeName","src":"30490:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55219,"mutability":"mutable","name":"circSupply","nameLocation":"30522:10:88","nodeType":"VariableDeclaration","scope":55267,"src":"30514:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55218,"name":"uint256","nodeType":"ElementaryTypeName","src":"30514:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55224,"initialValue":{"arguments":[{"id":55221,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30561:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55222,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30588:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55220,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"30536:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30536:64:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"30454:146:88"},{"assignments":[55227],"declarations":[{"constant":false,"id":55227,"mutability":"mutable","name":"parentNetwork","nameLocation":"30627:13:88","nodeType":"VariableDeclaration","scope":55267,"src":"30611:29:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55226,"nodeType":"UserDefinedTypeName","pathNode":{"id":55225,"name":"SubnetID","nameLocations":["30611:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30611:8:88"},"referencedDeclaration":50077,"src":"30611:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55228,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"30643:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30652:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"30643:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30643:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"30611:57:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55233,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55213,"src":"30700:2:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30703:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30700:9:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30700:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55238,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30744:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55236,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55227,"src":"30715:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30729:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"30715:28:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30759:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30715:50:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:52:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"30700:67:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30781:69:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":55232,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30679:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30679:181:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55245,"nodeType":"ExpressionStatement","src":"30679:181:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55247,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55215,"src":"30878:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55248,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30887:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30878:19:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30899:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55246,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30870:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30870:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55252,"nodeType":"ExpressionStatement","src":"30870:48:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55254,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55217,"src":"30936:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30952:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30936:17:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30955:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55253,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30928:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55259,"nodeType":"ExpressionStatement","src":"30928:46:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55261,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55219,"src":"30992:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31006:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30992:15:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31009:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30984:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30984:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55266,"nodeType":"ExpressionStatement","src":"30984:49:88"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"30236:16:88","parameters":{"id":55191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55185,"mutability":"mutable","name":"collateral","nameLocation":"30261:10:88","nodeType":"VariableDeclaration","scope":55268,"src":"30253:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55184,"name":"uint256","nodeType":"ElementaryTypeName","src":"30253:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55187,"mutability":"mutable","name":"subnetAddress","nameLocation":"30281:13:88","nodeType":"VariableDeclaration","scope":55268,"src":"30273:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55186,"name":"address","nodeType":"ElementaryTypeName","src":"30273:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55190,"mutability":"mutable","name":"gw","nameLocation":"30311:2:88","nodeType":"VariableDeclaration","scope":55268,"src":"30296:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55189,"nodeType":"UserDefinedTypeName","pathNode":{"id":55188,"name":"GatewayDiamond","nameLocations":["30296:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"30296:14:88"},"referencedDeclaration":36170,"src":"30296:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"30252:62:88"},"returnParameters":{"id":55192,"nodeType":"ParameterList","parameters":[],"src":"30322:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55282,"nodeType":"FunctionDefinition","src":"31046:150:88","nodes":[],"body":{"id":55281,"nodeType":"Block","src":"31120:76:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55276,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55270,"src":"31147:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55277,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55272,"src":"31159:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55278,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31174:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55275,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55268,"src":"31130:16:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31130:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55280,"nodeType":"ExpressionStatement","src":"31130:59:88"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"31055:14:88","parameters":{"id":55273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55270,"mutability":"mutable","name":"collateral","nameLocation":"31078:10:88","nodeType":"VariableDeclaration","scope":55282,"src":"31070:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55269,"name":"uint256","nodeType":"ElementaryTypeName","src":"31070:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55272,"mutability":"mutable","name":"subnetAddress","nameLocation":"31098:13:88","nodeType":"VariableDeclaration","scope":55282,"src":"31090:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55271,"name":"address","nodeType":"ElementaryTypeName","src":"31090:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31069:43:88"},"returnParameters":{"id":55274,"nodeType":"ParameterList","parameters":[],"src":"31120:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55352,"nodeType":"FunctionDefinition","src":"31202:541:88","nodes":[],"body":{"id":55351,"nodeType":"Block","src":"31356:387:88","nodes":[],"statements":[{"expression":{"id":55308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55301,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"31366:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55305,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31406:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55303,"name":"address","nodeType":"ElementaryTypeName","src":"31398:7:88","typeDescriptions":{}}},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55302,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"31378:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31378:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"31366:44:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55309,"nodeType":"ExpressionStatement","src":"31366:44:88"},{"expression":{"id":55317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55310,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31420:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55314,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31458:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31450:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55312,"name":"address","nodeType":"ElementaryTypeName","src":"31450:7:88","typeDescriptions":{}}},"id":55315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31450:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55311,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"31431:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31431:31:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"31420:42:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55318,"nodeType":"ExpressionStatement","src":"31420:42:88"},{"assignments":[55321],"declarations":[{"constant":false,"id":55321,"mutability":"mutable","name":"subnetId","nameLocation":"31489:8:88","nodeType":"VariableDeclaration","scope":55351,"src":"31473:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55320,"nodeType":"UserDefinedTypeName","pathNode":{"id":55319,"name":"SubnetID","nameLocations":["31473:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31473:8:88"},"referencedDeclaration":50077,"src":"31473:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55328,"initialValue":{"arguments":[{"id":55326,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55284,"src":"31541:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55322,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31500:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31509:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"31500:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31526:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"31500:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"31473:82:88"},{"assignments":[55331],"declarations":[{"constant":false,"id":55331,"mutability":"mutable","name":"subnet","nameLocation":"31580:6:88","nodeType":"VariableDeclaration","scope":55351,"src":"31566:20:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55330,"nodeType":"UserDefinedTypeName","pathNode":{"id":55329,"name":"Subnet","nameLocations":["31566:6:88"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"31566:6:88"},"referencedDeclaration":50091,"src":"31566:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55338,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55334,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55321,"src":"31606:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31615:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"31606:15:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31606:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55332,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31589:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31598:7:88","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"31589:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$50091_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":55337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31589:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"31566:58:88"},{"expression":{"components":[{"expression":{"id":55339,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31643:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31650:2:88","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"31643:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55341,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31654:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31661:5:88","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"31654:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55343,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31668:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31675:12:88","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"31668:19:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55345,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31689:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31696:20:88","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"31689:27:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55347,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31718:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31725:10:88","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"31718:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31642:94:88","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256)"}},"functionReturnParameters":55300,"id":55350,"nodeType":"Return","src":"31635:101:88"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"31211:11:88","parameters":{"id":55288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55284,"mutability":"mutable","name":"subnetAddress","nameLocation":"31240:13:88","nodeType":"VariableDeclaration","scope":55352,"src":"31232:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55283,"name":"address","nodeType":"ElementaryTypeName","src":"31232:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55287,"mutability":"mutable","name":"gw","nameLocation":"31278:2:88","nodeType":"VariableDeclaration","scope":55352,"src":"31263:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55286,"nodeType":"UserDefinedTypeName","pathNode":{"id":55285,"name":"GatewayDiamond","nameLocations":["31263:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"31263:14:88"},"referencedDeclaration":36170,"src":"31263:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"31222:64:88"},"returnParameters":{"id":55300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31303:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55290,"nodeType":"UserDefinedTypeName","pathNode":{"id":55289,"name":"SubnetID","nameLocations":["31303:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31303:8:88"},"referencedDeclaration":50077,"src":"31303:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31320:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55292,"name":"uint256","nodeType":"ElementaryTypeName","src":"31320:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31329:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55294,"name":"uint256","nodeType":"ElementaryTypeName","src":"31329:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31338:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55296,"name":"uint256","nodeType":"ElementaryTypeName","src":"31338:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31347:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55298,"name":"uint256","nodeType":"ElementaryTypeName","src":"31347:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31302:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55374,"nodeType":"FunctionDefinition","src":"31749:177:88","nodes":[],"body":{"id":55373,"nodeType":"Block","src":"31860:66:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55369,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55354,"src":"31889:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55370,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31904:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55368,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"31877:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31877:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":55367,"id":55372,"nodeType":"Return","src":"31870:49:88"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"31758:9:88","parameters":{"id":55355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55354,"mutability":"mutable","name":"subnetAddress","nameLocation":"31776:13:88","nodeType":"VariableDeclaration","scope":55374,"src":"31768:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55353,"name":"address","nodeType":"ElementaryTypeName","src":"31768:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31767:23:88"},"returnParameters":{"id":55367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31807:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55357,"nodeType":"UserDefinedTypeName","pathNode":{"id":55356,"name":"SubnetID","nameLocations":["31807:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31807:8:88"},"referencedDeclaration":50077,"src":"31807:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31824:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55359,"name":"uint256","nodeType":"ElementaryTypeName","src":"31824:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31833:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55361,"name":"uint256","nodeType":"ElementaryTypeName","src":"31833:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31842:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55363,"name":"uint256","nodeType":"ElementaryTypeName","src":"31842:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31851:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55365,"name":"uint256","nodeType":"ElementaryTypeName","src":"31851:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31806:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53038,"name":"Test","nameLocations":["8694:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"8694:4:88"},"id":53039,"nodeType":"InheritanceSpecifier","src":"8694:4:88"},{"baseName":{"id":53040,"name":"TestParams","nameLocations":["8700:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"8700:10:88"},"id":53041,"nodeType":"InheritanceSpecifier","src":"8700:10:88"},{"baseName":{"id":53042,"name":"TestRegistry","nameLocations":["8712:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":52747,"src":"8712:12:88"},"id":53043,"nodeType":"InheritanceSpecifier","src":"8712:12:88"},{"baseName":{"id":53044,"name":"TestSubnetActor","nameLocations":["8726:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":53037,"src":"8726:15:88"},"id":53045,"nodeType":"InheritanceSpecifier","src":"8726:15:88"},{"baseName":{"id":53046,"name":"TestGatewayActor","nameLocations":["8743:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":52912,"src":"8743:16:88"},"id":53047,"nodeType":"InheritanceSpecifier","src":"8743:16:88"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50887,52151,52279,52517,57957],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55375,52912,53037,52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"8671:19:88","scope":55376,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":88} \ No newline at end of file diff --git a/.out/IntegrationTestBase.sol/TestRegistry.json b/.out/IntegrationTestBase.sol/TestRegistry.json index 03113fe07..28d98f3e4 100644 --- a/.out/IntegrationTestBase.sol/TestRegistry.json +++ b/.out/IntegrationTestBase.sol/TestRegistry.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"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":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"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":"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":"0x60808060405234620007085760019060ff1960009280828554161784558060049283541617825562000031836200070d565b60138352620000676020937f52656769737465725375626e657446616365740000000000000000000000000085820152620007ce565b8051936001600160401b0391828611620006f5576801000000000000000090818711620006e2578290601b5488601b5580891062000678575b500194601b88528288209560039688881c908a5b82811062000624575060071999808b16900380620005cf575b5050505062000106604051620000e3816200070d565b601181527014dd589b995d11d95d1d195c919858d95d607a1b85820152620007ce565b9081518581116200038a578381116200038a5784601c93845483865580841062000569575b500190838b52858b20818a1c918c5b838110620005155750808c16900380620004c0575b505050506200018660405162000165816200070d565b600f81526e111a585b5bdb9910dd5d119858d95d608a1b86820152620007ce565b805190868211620004ad57848211620004ad578590601d5483601d5580841062000446575b500190601d8b52858b20818a1c918c5b838110620003f25750808c169003806200039d575b5050505062000209604051620001e6816200070d565b6011815270111a585b5bdb99131bdd5c19519858d95d607a1b86820152620007ce565b9283519586116200038a578511620003775750908291601e5485601e5580861062000312575b505001601e875282828820951c95875b878110620002be57508316808403930362000265575b604051610c8e908162000ab58239f35b929190865b8281106200028657505050505001553880808080808062000255565b90919282620002b1869983975160e01c908560021b60031b9163ffffffff809116831b921b19161790565b980194939291016200026a565b8590898a5b8660088210620002da57505081890155016200023f565b90959293916200030490845160e01c908860021b60031b9163ffffffff809116831b921b19161790565b9201940190879291620002c3565b90919250601e89528389206007808701891c82019201881c01918560021b16806200035d575b5090858493925b8281106200034e57506200022f565b8a81558594508791016200033f565b600019908183019182549187038a1b1c1690553862000338565b634e487b7160e01b895260419052602488fd5b634e487b7160e01b8a526041825260248afd5b928c938d5b8b8a838310620003bd575050505050015538808080620001d0565b9091929396620003e790885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620003a2565b8a908e805b8b600882106200040e5750508185015501620001bb565b90979293916200043890845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601908c9291620003f7565b909150601d8c52868c2060078085018c1c820192018b1c0190858460021b168062000492575b5090898893925b82811062000483575050620001ab565b8e81558994508b910162000473565b60001990818301918d8354928c03901b1c169055386200046c565b634e487b7160e01b8b526041835260248bfd5b928c938d5b8b8a838310620004e05750505050500155388080806200014f565b90919293966200050a90885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620004c5565b8a908e805b8b600882106200053157505081850155016200013a565b90979293916200055b90845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601908c92916200051a565b909150848c52868c2060078085018c1c820192018b1c0190858460021b1680620005b4575b5090898893925b828110620005a55750506200012b565b8e81558994508b910162000595565b60001990818301918d8354928c03901b1c169055386200058e565b928b938c5b8a89838310620005ef575050505050015538808080620000cd565b90919293966200061990885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620005d4565b88908c8d5b8960088210620006405750508184015501620000b4565b90969293916200066a90845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501908a929162000629565b909150601b89528389206007808a0160031c8201920160031c0190601c8960021b1680620006c7575b5090868593925b828110620006b8575050620000a0565b8b8155869450889101620006a8565b6000199081830191825491880360031b1c16905538620006a1565b634e487b7160e01b885260418652602488fd5b634e487b7160e01b875260418552602487fd5b600080fd5b604081019081106001600160401b038211176200072957604052565b634e487b7160e01b600052604160045260246000fd5b601f909101601f19168101906001600160401b038211908210176200072957604052565b805115620007715760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620007715760400190565b805160021015620007715760600190565b60005b838110620007bd5750506000910152565b8181015183820152602001620007ac565b604080516001600160401b036080820181811183821017620007295783526003825260005b6060808210156200080f579060209182828601015201620007f3565b5050929180519262000821846200070d565b6007845260209366707974686f6e3360c81b85820152620008428462000763565b526200084e8362000763565b508151906200085d826200070d565b601f918281527f736372697074732f707974686f6e2f6765745f73656c6563746f72732e70790086820152620008938562000787565b526200089f8462000787565b50620008ab8462000798565b52620008b78362000798565b50815192638916046760e01b84528360248101866004830152825180915260448201908760448260051b8501019401916000905b8983831062000a6e57505050505080600092038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af192831562000a6357600093620009bf575b505081518201918381818501940312620007085783810151908582116200070857019082603f8301121562000708578382015194851162000729578460051b9181519562000979868501886200073f565b86528185870193820101938411620007085701905b8282106200099d575050505090565b81516001600160e01b031981168103620007085781529083019083016200098e565b9091923d8082843e620009d381846200073f565b820191858184031262000a5f5780519087821162000a5b57019082848301121562000a445781519287841162000a475785519462000a1a908501601f19168801866200073f565b83855286848401011162000a4457509062000a3b91858085019101620007a9565b90388062000928565b80fd5b634e487b7160e01b82526041600452602482fd5b8280fd5b5080fd5b82513d6000823e3d90fd5b80809294965060019395976043198c8203018652885162000a9b81518092818552858086019101620007a9565b8a601f19910116010196019201920187939192620008eb56fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220ba85cf64c7e216dbe90725a852646865a85f5b39230cd1b126a756e466c4dcec64736f6c63430008130033","sourceMap":"3290:820:81:-:0;;;;;;;1594:4:2;3290:820:81;;;1594:4:2;3290:820:81;;;;;;;;;3201:4:5;;3290:820:81;;;;;;;1220:14:3;;;:::i;:::-;;;;3774:54:81;1220:14:3;;;;;;;3774:54:81;:::i;:::-;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;;;;;;;;;;;;;;3743:85:81;1220:14:3;;3743:85:81;1220:14:3;;;;;;-1:-1:-1;1220:14:3;;;3743:85:81;1220:14:3;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;;;3290:820:81;;;;3875:52;3290:820;;1220:14:3;;;:::i;:::-;;;;-1:-1:-1;;;1220:14:3;;;;3875:52:81;:::i;:::-;1220:14:3;;;;;;;;;;;;;3838:89:81;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;;;3290:820:81;;;;3963:50;3290:820;;1220:14:3;;;:::i;:::-;;;;-1:-1:-1;;;1220:14:3;;;;3963:50:81;:::i;:::-;1220:14:3;;;;;;;;;;;;;;;3937:76:81;1220:14:3;;3937:76:81;1220:14:3;;;;;;;;;;3937:76:81;1220:14:3;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;;;3290:820:81;;;;4049:52;3290:820;;1220:14:3;;;:::i;:::-;;;;-1:-1:-1;;;1220:14:3;;;;4049:52:81;:::i;:::-;1220:14:3;;;;;;;;;;;;;;;;4023:78:81;1220:14:3;;4023:78:81;1220:14:3;;;;;;;;;;4023:78:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;3290:820:81;;;;;;;;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4023:78:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3937:76:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3743:85:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;3290:820:81;;;;1220:14:3;3290:820:81;1220:14:3;;;;;-1:-1:-1;;;;;1220:14:3;;;;;3290:820:81;1220:14:3;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;1220:14:3;;;;-1:-1:-1;;;;;1220:14:3;;;;;;;;;;:::o;3290:820:81:-;1220:14:3;;3290:820:81;;;;;;:::o;:::-;1220:14:3;;;3290:820:81;;;;;;;;;1220:14:3;;1511:1:86;3290:820:81;;;;;;;:::o;:::-;1220:14:3;;1566:1:86;3290:820:81;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;3290:820:81;;;;:::o;:::-;;;;;;;;;;;;;1304:381:86;3290:820:81;;;-1:-1:-1;;;;;3290:820:81;1220:14:3;;;;;;;;;;;;;1461:1:86;3290:820:81;;-1:-1:-1;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:14:3;;;;:::i;:::-;3290:820:81;1220:14:3;;3290:820:81;;-1:-1:-1;;;3290:820:81;;;;1473:21:86;;;:::i;:::-;3290:820:81;1473:21:86;;;:::i;:::-;;3290:820:81;;1220:14:3;;;;:::i;:::-;3290:820:81;1220:14:3;;;;3290:820:81;;;;;1504:45:86;;;:::i;:::-;3290:820:81;1504:45:86;;;:::i;:::-;;1559:21;;;:::i;:::-;;;;;:::i;:::-;;3290:820:81;;1220:14:3;;;;1610::86;;3290:820:81;;;;1610:14:86;;;;3290:820:81;1220:14:3;;3290:820:81;;;;;;;;;;;;;;;;;;-1:-1:-1;3290:820:81;;;;;;;;1610:14:86;;;;;;-1:-1:-1;1610:14:86;;;;3290:820:81;1610:14:86;;;;;;;-1:-1:-1;1610:14:86;;;3290:820:81;1220:14:3;;;;1651:27:86;;;;;;;;3290:820:81;;;;;1651:27:86;;;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:14:3;3290:820:81;;;1220:14:3;;:::i;:::-;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;1634:44:86;;;;1304:381;:::o;3290:820:81:-;;;-1:-1:-1;;;;;;1220:14:3;;3290:820:81;;;;;;;;;;;;;;1610:14:86;;;;;;;;;;;;;:::i;:::-;;;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:14:3;;;;;;3290:820:81;;;1220:14:3;;;;-1:-1:-1;;1220:14:3;;;3290:820:81;1220:14:3;:::i;:::-;3290:820:81;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1610:14:86;;;;;3290:820:81;;;1220:14:3;-1:-1:-1;;;1220:14:3;;;1610::86;1220::3;3290:820:81;1220:14:3;;3290:820:81;;;;;;;;1610:14:86;3290:820:81;;;-1:-1:-1;3290:820:81;;;;;;;;;;;;1220:14:3;3290:820:81;;;;;;;;;;;;;;1220:14:3;;3290:820:81;;;;;;;;;;;;:::i;:::-;1220:14:3;;;;;;3290:820:81;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220ba85cf64c7e216dbe90725a852646865a85f5b39230cd1b126a756e466c4dcec64736f6c63430008130033","sourceMap":"3290:820:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;3290:820:81;;;;:::i;:::-;;1671:64:2;3290:820:81;;1671:64:2;;;:::i;:::-;3290:820:81;;;1982:18:8;3290:820:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3290:820:81;;;;;;;;-1:-1:-1;3290:820:81;;;;;-1:-1:-1;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3290:820:81;;;;;-1:-1:-1;3290:820:81;;;;;;;;;-1:-1:-1;3290:820:81;;;;-1:-1:-1;;;;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;3290:820:81;;;;:::i;:::-;;1671:64:2;3290:820:81;;1671:64:2;;;:::i;:::-;3290:820:81;;;2899:18:8;3290:820:81;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;3290:820:81;;-1:-1:-1;;;;;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3290:820:81;;;;;;;;;;;;-1:-1:-1;;;;;;3290:820:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3290:820:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3290:820:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3290:820:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3290:820:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3290:820:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;3290:820:81;;;;:::i;:::-;;1671:64:2;3290:820:81;;1671:64:2;;;:::i;:::-;3290:820:81;;;2416:18:8;3290:820:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3290:820:81;;;;;;;;-1:-1:-1;3290:820:81;;;;;-1:-1:-1;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3290:820:81;;;;;-1:-1:-1;3290:820:81;;;;;;;;;-1:-1:-1;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;3290:820:81;;;;:::i;:::-;;1671:64:2;3290:820:81;;1671:64:2;;;:::i;:::-;3290:820:81;;;2592:26:8;3290:820:81;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;3290:820:81;;-1:-1:-1;;;;;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3290:820:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3290:820:81;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;3290:820:81;;;;;;;;;;;;;;;;;1671:64:2;3290:820:81;1671:64:2;;;;;;;;;;;3290:820:81;1671:64:2;:::o;:::-;3290:820:81;;;1671:64:2;;;;;;;;;;3290:820:81;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;3290:820:81;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;3290:820:81;;;2196:43:2;;;3290:820:81;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;3290:820:81;;-1:-1:-1;1671:64:2;;3290:820:81;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;3290:820:81;1671:64:2;2086:175;;;3290:820:81;;;;;;1671:64:2;3290:820:81;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;3290:820:81;;;1671:64:2;3290:820:81;;;-1:-1:-1;;3290:820:81;2196:43:2;1671:64;3290:820:81;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;3290:820:81;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;3290:820:81;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;3290:820:81;1671:64:2;;;3290:820:81;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;3290:820:81;1671:64:2;3290:820:81;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"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\":\"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/IntegrationTestBase.sol\":\"TestRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x1771042e416900276fc557c71365bcb7a470c46378109feae5813fd2df1f6cdd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5c02c7b8141cade572031ce857f0c66f8bf33ef9627c1c2c849532489334f095\",\"dweb:/ipfs/QmbM5n1rm9ZzoX9P22LT1xfaxqjVHCsMkPAactq5CYMjyt\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b\",\"dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21\",\"dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xe5c934c38631fc852b2d818a5234f6514c172311218b890a6fc5fd797f92dec9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://180a99f9ae7f52c07efd8d50c12562889661cc0a8d2e1f6e8dd10e8ef399193e\",\"dweb:/ipfs/QmNoscfa82rSeb6WXcFhj5GJ5iNmiMGmphQf3SLkbXZEeu\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0x4517792d005bd1b3e1a0bea06af04f20119222fffffbc6b310522d820be83369\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ef8859a2e7e61a15776c6110f4183fd62099a34a2bc16d33c09b37f220ce3673\",\"dweb:/ipfs/Qme38CS7qv8tCFWfYCMUcZvBnF63wf5E1pzGmG4kYjhoh1\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x5a8e1e7961e424e04b21c3aa85a2624e0996d7d401e8f9759239c09eac6c3cd2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d1083fcdfd0489cad22a516b7f551d08dea47d95a4a25f24b1aa3dd9b01a0501\",\"dweb:/ipfs/QmdxhTnQbWsxMCawiBL1mow2q8nXP5XPXr7KAbi5FxAK2W\"]},\"src/gateway/GatewayRouterFacet.sol\":{\"keccak256\":\"0x409518aa2f9f3df22be447bdede6c4bdff2535be7a5209c997725cd6fc77c00e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b337abc4fe880c91eca25d1312fe6d1f2f6f9e95d564a9aecaa553d215d1422b\",\"dweb:/ipfs/QmQoT3xpE9QJPvcmXdpSkkYsSWew6qBMqreTkEvk9pxn64\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14\",\"dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7\",\"dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2\",\"dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x96a4183d613f1cfefc19a6032361910d8d06ba68e14f2c26c7ed058ab9116bc4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://330a52b5ecb618b4846ecb04da3ee1109149228ccf05a2e098a87750ae4dd82e\",\"dweb:/ipfs/QmNY8kSJpHA238pR9dSbXFLw5D5WzfFj9pHqe8DQ2GmSuq\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c\",\"dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x7e36a89eb829f018acd7e8877a8a1b93bc939e87467700846741cda033432d99\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0f4db114142828d91b8ac120269a3de36390e63f3e5c0d27a821bdbad7d77f0\",\"dweb:/ipfs/QmYZAiaWWPATDrtF3MFoxdcBkmwMacFrjByFNb3hPeLDo6\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0x957c018167e9314422d52f4817e22b6a72f3d5651277579c62266375f95cc8aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e0b2f6f034bff2e50a6552b8963d7a193fd68da3aa38342127ec25ec1fd950b8\",\"dweb:/ipfs/QmcLWq8bWeU2D3wS9mVmxNixZa25uYg4WB63CfdrC1qboT\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x754f60bfb99884f3347c68fd063a18a8c80bcbdaf848391803d89654cdd97aef\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ed97511b421373b8e94222d825568f9c2a3a4e6ff2d9ab4f3f48fe1e9e3a8ba9\",\"dweb:/ipfs/QmadhEoTUMstJtS1M7Gzdz3Df1kEs1C7u7Mk2v4x6PDy7H\"]},\"test/mocks/SubnetActor.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"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":"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestRegistry"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x1771042e416900276fc557c71365bcb7a470c46378109feae5813fd2df1f6cdd","urls":["bzz-raw://5c02c7b8141cade572031ce857f0c66f8bf33ef9627c1c2c849532489334f095","dweb:/ipfs/QmbM5n1rm9ZzoX9P22LT1xfaxqjVHCsMkPAactq5CYMjyt"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87","urls":["bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b","dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140","urls":["bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21","dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xe5c934c38631fc852b2d818a5234f6514c172311218b890a6fc5fd797f92dec9","urls":["bzz-raw://180a99f9ae7f52c07efd8d50c12562889661cc0a8d2e1f6e8dd10e8ef399193e","dweb:/ipfs/QmNoscfa82rSeb6WXcFhj5GJ5iNmiMGmphQf3SLkbXZEeu"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0x4517792d005bd1b3e1a0bea06af04f20119222fffffbc6b310522d820be83369","urls":["bzz-raw://ef8859a2e7e61a15776c6110f4183fd62099a34a2bc16d33c09b37f220ce3673","dweb:/ipfs/Qme38CS7qv8tCFWfYCMUcZvBnF63wf5E1pzGmG4kYjhoh1"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x5a8e1e7961e424e04b21c3aa85a2624e0996d7d401e8f9759239c09eac6c3cd2","urls":["bzz-raw://d1083fcdfd0489cad22a516b7f551d08dea47d95a4a25f24b1aa3dd9b01a0501","dweb:/ipfs/QmdxhTnQbWsxMCawiBL1mow2q8nXP5XPXr7KAbi5FxAK2W"],"license":"UNLICENSED"},"src/gateway/GatewayRouterFacet.sol":{"keccak256":"0x409518aa2f9f3df22be447bdede6c4bdff2535be7a5209c997725cd6fc77c00e","urls":["bzz-raw://b337abc4fe880c91eca25d1312fe6d1f2f6f9e95d564a9aecaa553d215d1422b","dweb:/ipfs/QmQoT3xpE9QJPvcmXdpSkkYsSWew6qBMqreTkEvk9pxn64"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3","urls":["bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14","dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d","urls":["bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7","dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c","urls":["bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2","dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x96a4183d613f1cfefc19a6032361910d8d06ba68e14f2c26c7ed058ab9116bc4","urls":["bzz-raw://330a52b5ecb618b4846ecb04da3ee1109149228ccf05a2e098a87750ae4dd82e","dweb:/ipfs/QmNY8kSJpHA238pR9dSbXFLw5D5WzfFj9pHqe8DQ2GmSuq"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad","urls":["bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c","dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x7e36a89eb829f018acd7e8877a8a1b93bc939e87467700846741cda033432d99","urls":["bzz-raw://d0f4db114142828d91b8ac120269a3de36390e63f3e5c0d27a821bdbad7d77f0","dweb:/ipfs/QmYZAiaWWPATDrtF3MFoxdcBkmwMacFrjByFNb3hPeLDo6"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0x957c018167e9314422d52f4817e22b6a72f3d5651277579c62266375f95cc8aa","urls":["bzz-raw://e0b2f6f034bff2e50a6552b8963d7a193fd68da3aa38342127ec25ec1fd950b8","dweb:/ipfs/QmcLWq8bWeU2D3wS9mVmxNixZa25uYg4WB63CfdrC1qboT"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x754f60bfb99884f3347c68fd063a18a8c80bcbdaf848391803d89654cdd97aef","urls":["bzz-raw://ed97511b421373b8e94222d825568f9c2a3a4e6ff2d9ab4f3f48fe1e9e3a8ba9","dweb:/ipfs/QmadhEoTUMstJtS1M7Gzdz3Df1kEs1C7u7Mk2v4x6PDy7H"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActor.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":54009,"exportedSymbols":{"AddressShouldBeValidator":[36936],"AlreadyRegisteredSubnet":[36938],"BatchAlreadyExists":[36948],"BatchNotCreated":[36956],"BatchWithNoMessages":[36976],"BottomUpCheckpoint":[48410],"CannotConfirmFutureChanges":[36940],"CannotFindSubnet":[37088],"CannotReleaseZero":[36942],"CannotSendCrossMsgToItself":[36944],"CheckpointAlreadyExists":[36946],"CheckpointNotCreated":[36954],"CollateralIsZero":[36958],"ConsensusType":[36918],"CrossMsg":[48452],"CrossMsgHelper":[40328],"DSTest":[3720],"DiamondCutFacet":[36477],"DiamondLoupeFacet":[36914],"DuplicatedGenesisValidator":[37098],"EMPTY_BYTES":[36435],"EmptyAddress":[36960],"FacetCannotBeZero":[37084],"FailedAddIncompleteQuorum":[36962],"FailedAddSignatory":[36964],"FailedRemoveIncompleteQuorum":[36966],"FilAddress":[1428],"FvmAddress":[48476],"FvmAddressHelper":[40509],"GatewayCannotBeZero":[36968],"GatewayDiamond":[35759],"GatewayGetterFacet":[37869],"GatewayManagerFacet":[38359],"GatewayMessengerFacet":[38674],"GatewayRouterFacet":[39706],"IDiamond":[39732],"IPCAddress":[48687],"IntegrationTestBase":[54008],"InvalidActorAddress":[36970],"InvalidBatchEpoch":[36974],"InvalidBatchSource":[36980],"InvalidCheckpointEpoch":[36972],"InvalidCheckpointSource":[36978],"InvalidCollateral":[36984],"InvalidConfigurationNumber":[36986],"InvalidCrossMsgDstSubnet":[36988],"InvalidCrossMsgFromSubnet":[36990],"InvalidCrossMsgNonce":[36992],"InvalidCrossMsgValue":[36994],"InvalidFederationPayload":[37096],"InvalidMajorityPercentage":[36996],"InvalidPowerScale":[36998],"InvalidPublicKeyLength":[37010],"InvalidRetentionHeight":[37000],"InvalidSignature":[37002],"InvalidSignatureErr":[37006],"InvalidSignatureLength":[37008],"InvalidSubmissionPeriod":[37012],"InvalidSubnet":[37014],"InvalidSubnetActor":[36982],"METHOD_SEND":[36441],"MaxMsgsPerBatchExceeded":[36950],"MethodNotAllowed":[37094],"NoCollateralToWithdraw":[37016],"NoRewardToWithdraw":[37018],"NoValidatorsInSubnet":[37020],"NotAllValidatorsHaveLeft":[37022],"NotAuthorized":[37026],"NotEmptySubnetCircSupply":[37028],"NotEnoughBalance":[37030],"NotEnoughBalanceForRewards":[37032],"NotEnoughCollateral":[37034],"NotEnoughFee":[37036],"NotEnoughFunds":[37038],"NotEnoughFundsToRelease":[37040],"NotEnoughGenesisValidators":[37100],"NotEnoughSubnetCircSupply":[37042],"NotEnoughValidatorsInSubnet":[37044],"NotGateway":[37046],"NotOwnerOfPublicKey":[37048],"NotRegisteredSubnet":[37050],"NotStakedBefore":[37052],"NotSystemActor":[37054],"NotValidator":[37058],"OldConfigurationNumber":[37060],"PQDoesNotContainAddress":[37062],"PQEmpty":[37064],"ParentFinality":[48396],"ParentFinalityAlreadyCommitted":[37066],"PermissionMode":[48648],"PostboxNotExist":[37068],"QuorumAlreadyProcessed":[36952],"RegisterSubnetFacet":[51075],"SignatureReplay":[37070],"Status":[36932],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[48469],"StorableMsgHelper":[46265],"Subnet":[48574],"SubnetActorDiamond":[36177],"SubnetActorGetterFacet":[49325],"SubnetActorManagerFacet":[50947],"SubnetActorManagerFacetMock":[56069],"SubnetAlreadyBootstrapped":[37082],"SubnetAlreadyKilled":[37072],"SubnetGetterFacet":[51313],"SubnetID":[48557],"SubnetIDHelper":[46876],"SubnetNotActive":[37074],"SubnetNotFound":[37076],"SubnetRegistryDiamond":[36415],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[51670],"TestParams":[51469],"TestRegistry":[51537],"TestSubnetActor":[51792],"TestUtils":[55168],"UnknownSubnet":[37090],"Validator":[48694],"Vm":[14222],"WithdrawExceedingCollateral":[37078],"WrongGateway":[37086],"ZeroMembershipWeight":[37080],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:29281:81","nodes":[{"id":51315,"nodeType":"PragmaDirective","src":"46:23:81","nodes":[],"literals":["solidity","0.8",".19"]},{"id":51316,"nodeType":"ImportDirective","src":"71:28:81","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":51317,"nodeType":"ImportDirective","src":"100:36:81","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":51318,"nodeType":"ImportDirective","src":"137:37:81","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":37101,"symbolAliases":[],"unitAlias":""},{"id":51321,"nodeType":"ImportDirective","src":"176:72:81","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36442,"symbolAliases":[{"foreign":{"id":51319,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36435,"src":"184:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51320,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"197:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51323,"nodeType":"ImportDirective","src":"249:61:81","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":51322,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"257:13:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51325,"nodeType":"ImportDirective","src":"311:47:81","nodes":[],"absolutePath":"src/enums/Status.sol","file":"../src/enums/Status.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36933,"symbolAliases":[{"foreign":{"id":51324,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"319:6:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51327,"nodeType":"ImportDirective","src":"359:56:81","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":39733,"symbolAliases":[{"foreign":{"id":51326,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"367:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51332,"nodeType":"ImportDirective","src":"416:102:81","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":51328,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"424:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51329,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"434:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51330,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"454:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51331,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"467:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51334,"nodeType":"ImportDirective","src":"519:57:81","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":48484,"symbolAliases":[{"foreign":{"id":51333,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"527:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51341,"nodeType":"ImportDirective","src":"577:114:81","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":51335,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"585:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51336,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"595:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51337,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"611:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51338,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48574,"src":"627:6:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51339,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"635:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51340,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"647:9:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51343,"nodeType":"ImportDirective","src":"692:61:81","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":46877,"symbolAliases":[{"foreign":{"id":51342,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46876,"src":"700:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51345,"nodeType":"ImportDirective","src":"754:65:81","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":40510,"symbolAliases":[{"foreign":{"id":51344,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"762:16:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51347,"nodeType":"ImportDirective","src":"820:61:81","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":40329,"symbolAliases":[{"foreign":{"id":51346,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40328,"src":"828:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51349,"nodeType":"ImportDirective","src":"882:67:81","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":46266,"symbolAliases":[{"foreign":{"id":51348,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"890:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51351,"nodeType":"ImportDirective","src":"950:56:81","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":51350,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"958:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51353,"nodeType":"ImportDirective","src":"1007:57:81","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":35760,"symbolAliases":[{"foreign":{"id":51352,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35759,"src":"1015:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51355,"nodeType":"ImportDirective","src":"1065:65:81","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36178,"symbolAliases":[{"foreign":{"id":51354,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"1073:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51357,"nodeType":"ImportDirective","src":"1131:73:81","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":37870,"symbolAliases":[{"foreign":{"id":51356,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"1139:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51359,"nodeType":"ImportDirective","src":"1205:79:81","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":38675,"symbolAliases":[{"foreign":{"id":51358,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38674,"src":"1213:21:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51361,"nodeType":"ImportDirective","src":"1285:75:81","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":38360,"symbolAliases":[{"foreign":{"id":51360,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"1293:19:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51363,"nodeType":"ImportDirective","src":"1361:73:81","nodes":[],"absolutePath":"src/gateway/GatewayRouterFacet.sol","file":"../src/gateway/GatewayRouterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":39707,"symbolAliases":[{"foreign":{"id":51362,"name":"GatewayRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39706,"src":"1369:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51365,"nodeType":"ImportDirective","src":"1435:68:81","nodes":[],"absolutePath":"test/mocks/SubnetActor.sol","file":"./mocks/SubnetActor.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":56070,"symbolAliases":[{"foreign":{"id":51364,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56069,"src":"1443:27:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51367,"nodeType":"ImportDirective","src":"1504:82:81","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":50948,"symbolAliases":[{"foreign":{"id":51366,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"1512:23:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51369,"nodeType":"ImportDirective","src":"1587:80:81","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":49326,"symbolAliases":[{"foreign":{"id":51368,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"1595:22:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51371,"nodeType":"ImportDirective","src":"1668:71:81","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36416,"symbolAliases":[{"foreign":{"id":51370,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36415,"src":"1676:21:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51373,"nodeType":"ImportDirective","src":"1740:82:81","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":51076,"symbolAliases":[{"foreign":{"id":51372,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51075,"src":"1748:19:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51375,"nodeType":"ImportDirective","src":"1823:78:81","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":51314,"symbolAliases":[{"foreign":{"id":51374,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51313,"src":"1831:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51377,"nodeType":"ImportDirective","src":"1902:71:81","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36915,"symbolAliases":[{"foreign":{"id":51376,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"1910:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51379,"nodeType":"ImportDirective","src":"1974:67:81","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36478,"symbolAliases":[{"foreign":{"id":51378,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"1982:15:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51381,"nodeType":"ImportDirective","src":"2042:50:81","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":55169,"symbolAliases":[{"foreign":{"id":51380,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"2050:9:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51469,"nodeType":"ContractDefinition","src":"2094:1194:81","nodes":[{"id":51388,"nodeType":"VariableDeclaration","src":"2120:44:81","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2136:9:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51382,"name":"uint64","nodeType":"ElementaryTypeName","src":"2120:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":51385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2153:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":51384,"name":"uint64","nodeType":"ElementaryTypeName","src":"2153:6:81","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":51383,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2148:4:81","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":51386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2148:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":51387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2161:3:81","memberName":"max","nodeType":"MemberAccess","src":"2148:16:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":51394,"nodeType":"VariableDeclaration","src":"2170:91:81","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2187:20:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51389,"name":"address","nodeType":"ElementaryTypeName","src":"2170:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":51392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2218:42:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2210:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51390,"name":"address","nodeType":"ElementaryTypeName","src":"2210:7:81","typeDescriptions":{}}},"id":51393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2210:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51397,"nodeType":"VariableDeclaration","src":"2267:42:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2283:22:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51395,"name":"uint64","nodeType":"ElementaryTypeName","src":"2267:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":51396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2308:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":51400,"nodeType":"VariableDeclaration","src":"2315:54:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2332:27:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51398,"name":"uint256","nodeType":"ElementaryTypeName","src":"2315:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":51399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2362:7:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":51403,"nodeType":"VariableDeclaration","src":"2375:47:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2390:27:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":51401,"name":"uint8","nodeType":"ElementaryTypeName","src":"2375:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":51402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2420:2:81","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":51406,"nodeType":"VariableDeclaration","src":"2428:51:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"2444:25:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51404,"name":"uint64","nodeType":"ElementaryTypeName","src":"2428:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":51405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2472:7:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":51409,"nodeType":"VariableDeclaration","src":"2485:46:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"2501:25:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51407,"name":"uint64","nodeType":"ElementaryTypeName","src":"2485:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":51408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2529:2:81","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":51412,"nodeType":"VariableDeclaration","src":"2537:44:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"2553:16:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51410,"name":"string","nodeType":"ElementaryTypeName","src":"2537:6:81","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":51411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2572:9:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":51415,"nodeType":"VariableDeclaration","src":"2587:36:81","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"2602:7:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":51413,"name":"bytes","nodeType":"ElementaryTypeName","src":"2587:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":51414,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36435,"src":"2612:11:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":51418,"nodeType":"VariableDeclaration","src":"2629:48:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"2646:21:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51416,"name":"uint256","nodeType":"ElementaryTypeName","src":"2629:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":51417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2670:7:81","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":51421,"nodeType":"VariableDeclaration","src":"2683:49:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"2700:22:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51419,"name":"uint256","nodeType":"ElementaryTypeName","src":"2683:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":51420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2725:7:81","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":51427,"nodeType":"VariableDeclaration","src":"2738:52:81","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"2755:21:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51422,"name":"address","nodeType":"ElementaryTypeName","src":"2738:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":51425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2787:2:81","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":51424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2779:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51423,"name":"address","nodeType":"ElementaryTypeName","src":"2779:7:81","typeDescriptions":{}}},"id":51426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51433,"nodeType":"VariableDeclaration","src":"2796:54:81","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"2813:23:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51428,"name":"address","nodeType":"ElementaryTypeName","src":"2796:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":51431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2847:2:81","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":51430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2839:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51429,"name":"address","nodeType":"ElementaryTypeName","src":"2839:7:81","typeDescriptions":{}}},"id":51432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2839:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51438,"nodeType":"VariableDeclaration","src":"2856:57:81","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"2872:9:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51434,"name":"uint64","nodeType":"ElementaryTypeName","src":"2856:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":51437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":51435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2884:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":51436,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51409,"src":"2888:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2884:29:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":51441,"nodeType":"VariableDeclaration","src":"2919:50:81","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"2936:23:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51439,"name":"uint256","nodeType":"ElementaryTypeName","src":"2919:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":51440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2962:7:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":51444,"nodeType":"VariableDeclaration","src":"2975:53:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"2991:31:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":51442,"name":"uint16","nodeType":"ElementaryTypeName","src":"2975:6:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":51443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3025:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":51447,"nodeType":"VariableDeclaration","src":"3034:38:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3048:19:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":51445,"name":"int8","nodeType":"ElementaryTypeName","src":"3034:4:81","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":51446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3070:2:81","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":51450,"nodeType":"VariableDeclaration","src":"3078:37:81","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3094:15:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51448,"name":"uint64","nodeType":"ElementaryTypeName","src":"3078:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":51449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3112:3:81","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":51456,"nodeType":"VariableDeclaration","src":"3121:45:81","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3138:15:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51451,"name":"address","nodeType":"ElementaryTypeName","src":"3121:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":51454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3164:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":51453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3156:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51452,"name":"address","nodeType":"ElementaryTypeName","src":"3156:7:81","typeDescriptions":{}}},"id":51455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3156:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51462,"nodeType":"VariableDeclaration","src":"3172:57:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3189:24:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51457,"name":"address","nodeType":"ElementaryTypeName","src":"3172:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":51460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3224:4:81","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":51459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3216:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51458,"name":"address","nodeType":"ElementaryTypeName","src":"3216:7:81","typeDescriptions":{}}},"id":51461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3216:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51468,"nodeType":"VariableDeclaration","src":"3235:50:81","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3252:19:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51463,"name":"address","nodeType":"ElementaryTypeName","src":"3235:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":51466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3282:2:81","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":51465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3274:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51464,"name":"address","nodeType":"ElementaryTypeName","src":"3274:7:81","typeDescriptions":{}}},"id":51467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3274:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51469],"name":"TestParams","nameLocation":"2103:10:81","scope":54009,"usedErrors":[]},{"id":51537,"nodeType":"ContractDefinition","src":"3290:820:81","nodes":[{"id":51476,"nodeType":"VariableDeclaration","src":"3338:37:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3347:28:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51474,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3338:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51475,"nodeType":"ArrayTypeName","src":"3338:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51479,"nodeType":"VariableDeclaration","src":"3381:43:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3390:34:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51477,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3381:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51478,"nodeType":"ArrayTypeName","src":"3381:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51482,"nodeType":"VariableDeclaration","src":"3430:32:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"3439:23:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51480,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3430:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51481,"nodeType":"ArrayTypeName","src":"3430:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51485,"nodeType":"VariableDeclaration","src":"3468:32:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"3477:23:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51483,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3468:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51484,"nodeType":"ArrayTypeName","src":"3468:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51488,"nodeType":"VariableDeclaration","src":"3507:37:81","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"3529:15:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":51487,"nodeType":"UserDefinedTypeName","pathNode":{"id":51486,"name":"SubnetRegistryDiamond","nameLocations":["3507:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"3507:21:81"},"referencedDeclaration":36415,"src":"3507:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":51491,"nodeType":"VariableDeclaration","src":"3550:32:81","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"3568:14:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":51490,"nodeType":"UserDefinedTypeName","pathNode":{"id":51489,"name":"DiamondLoupeFacet","nameLocations":["3550:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"3550:17:81"},"referencedDeclaration":36914,"src":"3550:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":51494,"nodeType":"VariableDeclaration","src":"3588:30:81","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"3604:14:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":51493,"nodeType":"UserDefinedTypeName","pathNode":{"id":51492,"name":"DiamondCutFacet","nameLocations":["3588:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"3588:15:81"},"referencedDeclaration":36477,"src":"3588:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":51497,"nodeType":"VariableDeclaration","src":"3624:39:81","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"3644:19:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":51496,"nodeType":"UserDefinedTypeName","pathNode":{"id":51495,"name":"RegisterSubnetFacet","nameLocations":["3624:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"3624:19:81"},"referencedDeclaration":51075,"src":"3624:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":51500,"nodeType":"VariableDeclaration","src":"3669:43:81","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"3687:25:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"},"typeName":{"id":51499,"nodeType":"UserDefinedTypeName","pathNode":{"id":51498,"name":"SubnetGetterFacet","nameLocations":["3669:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"3669:17:81"},"referencedDeclaration":51313,"src":"3669:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":51536,"nodeType":"FunctionDefinition","src":"3719:389:81","nodes":[],"body":{"id":51535,"nodeType":"Block","src":"3733:375:81","nodes":[],"statements":[{"expression":{"id":51509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51503,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51476,"src":"3743:28:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51506,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3802:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"52656769737465725375626e65744661636574","id":51507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3806:21:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":51504,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"3774:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3784:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"3774:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3774:54:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"3743:85:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51510,"nodeType":"ExpressionStatement","src":"3743:85:81"},{"expression":{"id":51517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51511,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51479,"src":"3838:34:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51514,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3903:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744765747465724661636574","id":51515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3907:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":51512,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"3875:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3885:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"3875:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3875:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"3838:89:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51518,"nodeType":"ExpressionStatement","src":"3838:89:81"},{"expression":{"id":51525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51519,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51482,"src":"3937:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51522,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3991:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644375744661636574","id":51523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3995:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":51520,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"3963:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3973:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"3963:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3963:50:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"3937:76:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51526,"nodeType":"ExpressionStatement","src":"3937:76:81"},{"expression":{"id":51533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51527,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51485,"src":"4023:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51530,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4077:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644c6f7570654661636574","id":51531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4081:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":51528,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4049:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4059:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4049:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4023:78:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51534,"nodeType":"ExpressionStatement","src":"4023:78:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51501,"nodeType":"ParameterList","parameters":[],"src":"3730:2:81"},"returnParameters":{"id":51502,"nodeType":"ParameterList","parameters":[],"src":"3733:0:81"},"scope":51537,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":51470,"name":"Test","nameLocations":["3315:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3315:4:81"},"id":51471,"nodeType":"InheritanceSpecifier","src":"3315:4:81"},{"baseName":{"id":51472,"name":"TestParams","nameLocations":["3321:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"3321:10:81"},"id":51473,"nodeType":"InheritanceSpecifier","src":"3321:10:81"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51537,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3299:12:81","scope":54009,"usedErrors":[]},{"id":51670,"nodeType":"ContractDefinition","src":"4112:1676:81","nodes":[{"id":51544,"nodeType":"VariableDeclaration","src":"4164:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwRouterSelectors","nameLocation":"4173:17:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51542,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4164:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51543,"nodeType":"ArrayTypeName","src":"4164:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51547,"nodeType":"VariableDeclaration","src":"4196:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4205:18:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51545,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4196:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51546,"nodeType":"ArrayTypeName","src":"4196:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51550,"nodeType":"VariableDeclaration","src":"4229:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4238:17:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51548,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4229:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51549,"nodeType":"ArrayTypeName","src":"4229:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51553,"nodeType":"VariableDeclaration","src":"4261:29:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"4270:20:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51551,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4261:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51552,"nodeType":"ArrayTypeName","src":"4261:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51556,"nodeType":"VariableDeclaration","src":"4296:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"4305:17:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51554,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4296:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51555,"nodeType":"ArrayTypeName","src":"4296:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51559,"nodeType":"VariableDeclaration","src":"4328:25:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"4337:16:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51557,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4328:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51558,"nodeType":"ArrayTypeName","src":"4328:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51562,"nodeType":"VariableDeclaration","src":"4360:29:81","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"4375:14:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":51561,"nodeType":"UserDefinedTypeName","pathNode":{"id":51560,"name":"GatewayDiamond","nameLocations":["4360:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"4360:14:81"},"referencedDeclaration":35759,"src":"4360:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":51565,"nodeType":"VariableDeclaration","src":"4395:29:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"4415:9:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"},"typeName":{"id":51564,"nodeType":"UserDefinedTypeName","pathNode":{"id":51563,"name":"GatewayManagerFacet","nameLocations":["4395:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"4395:19:81"},"referencedDeclaration":38359,"src":"4395:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":51568,"nodeType":"VariableDeclaration","src":"4430:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"4449:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"},"typeName":{"id":51567,"nodeType":"UserDefinedTypeName","pathNode":{"id":51566,"name":"GatewayGetterFacet","nameLocations":["4430:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":37869,"src":"4430:18:81"},"referencedDeclaration":37869,"src":"4430:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":51571,"nodeType":"VariableDeclaration","src":"4463:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwRouter","nameLocation":"4482:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"},"typeName":{"id":51570,"nodeType":"UserDefinedTypeName","pathNode":{"id":51569,"name":"GatewayRouterFacet","nameLocations":["4463:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":39706,"src":"4463:18:81"},"referencedDeclaration":39706,"src":"4463:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"visibility":"internal"},{"id":51574,"nodeType":"VariableDeclaration","src":"4496:33:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"4518:11:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":51573,"nodeType":"UserDefinedTypeName","pathNode":{"id":51572,"name":"GatewayMessengerFacet","nameLocations":["4496:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":38674,"src":"4496:21:81"},"referencedDeclaration":38674,"src":"4496:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":51577,"nodeType":"VariableDeclaration","src":"4535:24:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"4551:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":51576,"nodeType":"UserDefinedTypeName","pathNode":{"id":51575,"name":"DiamondCutFacet","nameLocations":["4535:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"4535:15:81"},"referencedDeclaration":36477,"src":"4535:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":51580,"nodeType":"VariableDeclaration","src":"4565:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"4583:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":51579,"nodeType":"UserDefinedTypeName","pathNode":{"id":51578,"name":"DiamondLoupeFacet","nameLocations":["4565:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"4565:17:81"},"referencedDeclaration":36914,"src":"4565:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":51632,"nodeType":"FunctionDefinition","src":"4598:522:81","nodes":[],"body":{"id":51631,"nodeType":"Block","src":"4612:508:81","nodes":[],"statements":[{"expression":{"id":51589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51583,"name":"gwRouterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51544,"src":"4622:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51586,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4670:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"47617465776179526f757465724661636574","id":51587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4674:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_47c9e89e207c1506806062b80d03800461672df762dd01e4466ff0c24375e91c","typeString":"literal_string \"GatewayRouterFacet\""},"value":"GatewayRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_47c9e89e207c1506806062b80d03800461672df762dd01e4466ff0c24375e91c","typeString":"literal_string \"GatewayRouterFacet\""}],"expression":{"id":51584,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4642:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4652:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4642:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4642:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4622:73:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51590,"nodeType":"ExpressionStatement","src":"4622:73:81"},{"expression":{"id":51597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51591,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51550,"src":"4705:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51594,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4753:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"476174657761794765747465724661636574","id":51595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4757:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":51592,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4725:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4735:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4725:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4725:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4705:73:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51598,"nodeType":"ExpressionStatement","src":"4705:73:81"},{"expression":{"id":51605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51599,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51547,"src":"4788:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51602,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4837:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"476174657761794d616e616765724661636574","id":51603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4841:21:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":51600,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4809:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4819:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4809:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4809:54:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4788:75:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51606,"nodeType":"ExpressionStatement","src":"4788:75:81"},{"expression":{"id":51613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51607,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"4873:20:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51610,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4924:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"476174657761794d657373656e6765724661636574","id":51611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4928:23:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":51608,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4896:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4906:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4896:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4896:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4873:79:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51614,"nodeType":"ExpressionStatement","src":"4873:79:81"},{"expression":{"id":51621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51615,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51556,"src":"4962:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51618,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5010:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644375744661636574","id":51619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5014:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":51616,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4982:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4992:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4982:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4982:50:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4962:70:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51622,"nodeType":"ExpressionStatement","src":"4962:70:81"},{"expression":{"id":51629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51623,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51559,"src":"5042:16:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51626,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5089:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644c6f7570654661636574","id":51627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5093:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":51624,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"5061:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5071:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"5061:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5061:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5042:71:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51630,"nodeType":"ExpressionStatement","src":"5042:71:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51581,"nodeType":"ParameterList","parameters":[],"src":"4609:2:81"},"returnParameters":{"id":51582,"nodeType":"ParameterList","parameters":[],"src":"4612:0:81"},"scope":51670,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51669,"nodeType":"FunctionDefinition","src":"5126:660:81","nodes":[],"body":{"id":51668,"nodeType":"Block","src":"5230:556:81","nodes":[],"statements":[{"assignments":[51642],"declarations":[{"constant":false,"id":51642,"mutability":"mutable","name":"params","nameLocation":"5280:6:81","nodeType":"VariableDeclaration","scope":51668,"src":"5240:46:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51641,"nodeType":"UserDefinedTypeName","pathNode":{"id":51640,"name":"GatewayDiamond.ConstructorParams","nameLocations":["5240:14:81","5255:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"5240:32:81"},"referencedDeclaration":35456,"src":"5240:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51665,"initialValue":{"arguments":[{"arguments":[{"id":51646,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51450,"src":"5365:15:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":51650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5403:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5389:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":51647,"name":"address","nodeType":"ElementaryTypeName","src":"5393:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51648,"nodeType":"ArrayTypeName","src":"5393:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":51651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":51645,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"5349:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":51652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5359:4:81","5382:5:81"],"names":["root","route"],"nodeType":"FunctionCall","src":"5349:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":51653,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51409,"src":"5442:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51654,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"5489:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":51655,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"5539:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51656,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51403,"src":"5598:27:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":51661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5674:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5658:15:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":51658,"nodeType":"UserDefinedTypeName","pathNode":{"id":51657,"name":"Validator","nameLocations":["5662:9:81"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"5662:9:81"},"referencedDeclaration":48694,"src":"5662:9:81","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"id":51659,"nodeType":"ArrayTypeName","src":"5662:11:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":51662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5658:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":51663,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51444,"src":"5713:31:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":51643,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35759,"src":"5289:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$35759_$","typeString":"type(contract GatewayDiamond)"}},"id":51644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5304:17:81","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35456,"src":"5289:32:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35456_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":51664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5336:11:81","5421:19:81","5481:6:81","5524:13:81","5578:18:81","5639:17:81","5690:21:81"],"names":["networkName","bottomUpCheckPeriod","msgFee","minCollateral","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"5289:466:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"5240:515:81"},{"expression":{"id":51666,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51642,"src":"5773:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":51637,"id":51667,"nodeType":"Return","src":"5766:13:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"5135:20:81","parameters":{"id":51633,"nodeType":"ParameterList","parameters":[],"src":"5155:2:81"},"returnParameters":{"id":51637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51669,"src":"5189:39:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51635,"nodeType":"UserDefinedTypeName","pathNode":{"id":51634,"name":"GatewayDiamond.ConstructorParams","nameLocations":["5189:14:81","5204:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"5189:32:81"},"referencedDeclaration":35456,"src":"5189:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"5188:41:81"},"scope":51670,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":51538,"name":"Test","nameLocations":["4141:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4141:4:81"},"id":51539,"nodeType":"InheritanceSpecifier","src":"4141:4:81"},{"baseName":{"id":51540,"name":"TestParams","nameLocations":["4147:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"4147:10:81"},"id":51541,"nodeType":"InheritanceSpecifier","src":"4147:10:81"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51670,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4121:16:81","scope":54009,"usedErrors":[]},{"id":51792,"nodeType":"ContractDefinition","src":"5790:1815:81","nodes":[{"id":51677,"nodeType":"VariableDeclaration","src":"5841:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"5850:17:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51675,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5841:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51676,"nodeType":"ArrayTypeName","src":"5841:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51680,"nodeType":"VariableDeclaration","src":"5873:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"5882:18:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51678,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5873:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51679,"nodeType":"ArrayTypeName","src":"5873:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51683,"nodeType":"VariableDeclaration","src":"5906:33:81","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"5915:24:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51681,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5906:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51682,"nodeType":"ArrayTypeName","src":"5906:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51686,"nodeType":"VariableDeclaration","src":"5945:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"5954:17:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51684,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5945:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51685,"nodeType":"ArrayTypeName","src":"5945:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51689,"nodeType":"VariableDeclaration","src":"5977:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"5986:17:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51687,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5977:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51688,"nodeType":"ArrayTypeName","src":"5977:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51692,"nodeType":"VariableDeclaration","src":"6010:28:81","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6029:9:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":51691,"nodeType":"UserDefinedTypeName","pathNode":{"id":51690,"name":"SubnetActorDiamond","nameLocations":["6010:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"6010:18:81"},"referencedDeclaration":36177,"src":"6010:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":51695,"nodeType":"VariableDeclaration","src":"6044:33:81","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"6068:9:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":51694,"nodeType":"UserDefinedTypeName","pathNode":{"id":51693,"name":"SubnetActorManagerFacet","nameLocations":["6044:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"6044:23:81"},"referencedDeclaration":50947,"src":"6044:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":51698,"nodeType":"VariableDeclaration","src":"6083:43:81","nodes":[],"constant":false,"mutability":"mutable","name":"saMockedManager","nameLocation":"6111:15:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":51697,"nodeType":"UserDefinedTypeName","pathNode":{"id":51696,"name":"SubnetActorManagerFacetMock","nameLocations":["6083:27:81"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"6083:27:81"},"referencedDeclaration":56069,"src":"6083:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"},{"id":51701,"nodeType":"VariableDeclaration","src":"6132:31:81","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"6155:8:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":51700,"nodeType":"UserDefinedTypeName","pathNode":{"id":51699,"name":"SubnetActorGetterFacet","nameLocations":["6132:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"6132:22:81"},"referencedDeclaration":49325,"src":"6132:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":51704,"nodeType":"VariableDeclaration","src":"6169:24:81","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"6185:8:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":51703,"nodeType":"UserDefinedTypeName","pathNode":{"id":51702,"name":"DiamondCutFacet","nameLocations":["6169:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"6169:15:81"},"referencedDeclaration":36477,"src":"6169:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":51707,"nodeType":"VariableDeclaration","src":"6199:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"6217:8:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":51706,"nodeType":"UserDefinedTypeName","pathNode":{"id":51705,"name":"DiamondLoupeFacet","nameLocations":["6199:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"6199:17:81"},"referencedDeclaration":36914,"src":"6199:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":51751,"nodeType":"FunctionDefinition","src":"6232:458:81","nodes":[],"body":{"id":51750,"nodeType":"Block","src":"6246:444:81","nodes":[],"statements":[{"expression":{"id":51716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51710,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"6256:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51713,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6304:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744163746f724765747465724661636574","id":51714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6308:24:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":51711,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6276:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6286:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6276:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6276:57:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6256:77:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51717,"nodeType":"ExpressionStatement","src":"6256:77:81"},{"expression":{"id":51724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51718,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"6343:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51721,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6392:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":51722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6396:25:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":51719,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6364:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6374:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6364:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6364:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6343:79:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51725,"nodeType":"ExpressionStatement","src":"6343:79:81"},{"expression":{"id":51732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51726,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51683,"src":"6432:24:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51729,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6487:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":51730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6491:29:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":51727,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6459:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6469:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6459:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6459:62:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6432:89:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51733,"nodeType":"ExpressionStatement","src":"6432:89:81"},{"expression":{"id":51740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51734,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"6531:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51737,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6579:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644375744661636574","id":51738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6583:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":51735,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6551:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6561:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6551:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6551:50:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6531:70:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51741,"nodeType":"ExpressionStatement","src":"6531:70:81"},{"expression":{"id":51748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51742,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51689,"src":"6611:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51745,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6659:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644c6f7570654661636574","id":51746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6663:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":51743,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6631:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6641:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6631:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6631:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6611:72:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51749,"nodeType":"ExpressionStatement","src":"6611:72:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51708,"nodeType":"ParameterList","parameters":[],"src":"6243:2:81"},"returnParameters":{"id":51709,"nodeType":"ParameterList","parameters":[],"src":"6246:0:81"},"scope":51792,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51791,"nodeType":"FunctionDefinition","src":"6696:907:81","nodes":[],"body":{"id":51790,"nodeType":"Block","src":"6843:760:81","nodes":[],"statements":[{"assignments":[51763],"declarations":[{"constant":false,"id":51763,"mutability":"mutable","name":"params","nameLocation":"6897:6:81","nodeType":"VariableDeclaration","scope":51790,"src":"6853:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":51762,"nodeType":"UserDefinedTypeName","pathNode":{"id":51761,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["6853:18:81","6872:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"6853:36:81"},"referencedDeclaration":35829,"src":"6853:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51787,"initialValue":{"arguments":[{"arguments":[{"id":51767,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51450,"src":"6983:15:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":51771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7021:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7007:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":51768,"name":"address","nodeType":"ElementaryTypeName","src":"7011:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51769,"nodeType":"ArrayTypeName","src":"7011:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":51772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7007:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":51766,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"6967:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":51773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6977:4:81","7000:5:81"],"names":["root","route"],"nodeType":"FunctionCall","src":"6967:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":51774,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51753,"src":"7055:2:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51775,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"7082:13:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$36918_$","typeString":"type(enum ConsensusType)"}},"id":51776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7096:10:81","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":36917,"src":"7082:24:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":51777,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"7145:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51778,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51397,"src":"7199:22:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51779,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51409,"src":"7256:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51780,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51403,"src":"7315:27:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":51781,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51444,"src":"7379:31:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":51782,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51447,"src":"7436:19:81","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":51783,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"7485:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":51784,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"7536:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":51785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7551:10:81","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":48645,"src":"7536:25:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}],"expression":{"id":51764,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"6906:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"type(contract SubnetActorDiamond)"}},"id":51765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6925:17:81","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35829,"src":"6906:36:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35829_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":51786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6957:8:81","7039:14:81","7071:9:81","7120:23:81","7184:13:81","7235:19:81","7295:18:81","7356:21:81","7424:10:81","7469:14:81","7520:14:81"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode"],"nodeType":"FunctionCall","src":"6906:666:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6853:719:81"},{"expression":{"id":51788,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51763,"src":"7590:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":51758,"id":51789,"nodeType":"Return","src":"7583:13:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"6705:35:81","parameters":{"id":51754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51753,"mutability":"mutable","name":"gw","nameLocation":"6758:2:81","nodeType":"VariableDeclaration","scope":51791,"src":"6750:10:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51752,"name":"address","nodeType":"ElementaryTypeName","src":"6750:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6740:26:81"},"returnParameters":{"id":51758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51757,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51791,"src":"6798:43:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":51756,"nodeType":"UserDefinedTypeName","pathNode":{"id":51755,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["6798:18:81","6817:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"6798:36:81"},"referencedDeclaration":35829,"src":"6798:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6797:45:81"},"scope":51792,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":51671,"name":"Test","nameLocations":["5818:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"5818:4:81"},"id":51672,"nodeType":"InheritanceSpecifier","src":"5818:4:81"},{"baseName":{"id":51673,"name":"TestParams","nameLocations":["5824:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"5824:10:81"},"id":51674,"nodeType":"InheritanceSpecifier","src":"5824:10:81"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51792,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"5799:15:81","scope":54009,"usedErrors":[]},{"id":54008,"nodeType":"ContractDefinition","src":"7607:21719:81","nodes":[{"id":51806,"nodeType":"UsingForDirective","src":"7711:34:81","nodes":[],"global":false,"libraryName":{"id":51803,"name":"SubnetIDHelper","nameLocations":["7717:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":46876,"src":"7717:14:81"},"typeName":{"id":51805,"nodeType":"UserDefinedTypeName","pathNode":{"id":51804,"name":"SubnetID","nameLocations":["7736:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"7736:8:81"},"referencedDeclaration":48557,"src":"7736:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}}},{"id":51810,"nodeType":"UsingForDirective","src":"7750:34:81","nodes":[],"global":false,"libraryName":{"id":51807,"name":"CrossMsgHelper","nameLocations":["7756:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":40328,"src":"7756:14:81"},"typeName":{"id":51809,"nodeType":"UserDefinedTypeName","pathNode":{"id":51808,"name":"CrossMsg","nameLocations":["7775:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"7775:8:81"},"referencedDeclaration":48452,"src":"7775:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}}},{"id":51814,"nodeType":"UsingForDirective","src":"7789:40:81","nodes":[],"global":false,"libraryName":{"id":51811,"name":"StorableMsgHelper","nameLocations":["7795:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":46265,"src":"7795:17:81"},"typeName":{"id":51813,"nodeType":"UserDefinedTypeName","pathNode":{"id":51812,"name":"StorableMsg","nameLocations":["7817:11:81"],"nodeType":"IdentifierPath","referencedDeclaration":48469,"src":"7817:11:81"},"referencedDeclaration":48469,"src":"7817:11:81","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_storage_ptr","typeString":"struct StorableMsg"}}},{"id":51818,"nodeType":"UsingForDirective","src":"7834:38:81","nodes":[],"global":false,"libraryName":{"id":51815,"name":"FvmAddressHelper","nameLocations":["7840:16:81"],"nodeType":"IdentifierPath","referencedDeclaration":40509,"src":"7840:16:81"},"typeName":{"id":51817,"nodeType":"UserDefinedTypeName","pathNode":{"id":51816,"name":"FvmAddress","nameLocations":["7861:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"7861:10:81"},"referencedDeclaration":48476,"src":"7861:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}}},{"id":51822,"nodeType":"EventDefinition","src":"7878:67:81","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"7884:21:81","parameters":{"id":51821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51820,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"7922:21:81","nodeType":"VariableDeclaration","scope":51822,"src":"7906:37:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51819,"name":"address","nodeType":"ElementaryTypeName","src":"7906:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7905:39:81"}},{"id":51826,"nodeType":"FunctionDefinition","src":"7951:16:81","nodes":[],"body":{"id":51825,"nodeType":"Block","src":"7965:2:81","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51823,"nodeType":"ParameterList","parameters":[],"src":"7962:2:81"},"returnParameters":{"id":51824,"nodeType":"ParameterList","parameters":[],"src":"7965:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51974,"nodeType":"FunctionDefinition","src":"7973:1282:81","nodes":[],"body":{"id":51973,"nodeType":"Block","src":"8005:1250:81","nodes":[],"statements":[{"assignments":[51833],"declarations":[{"constant":false,"id":51833,"mutability":"mutable","name":"path","nameLocation":"8032:4:81","nodeType":"VariableDeclaration","scope":51973,"src":"8015:21:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":51831,"name":"address","nodeType":"ElementaryTypeName","src":"8015:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51832,"nodeType":"ArrayTypeName","src":"8015:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":51839,"initialValue":{"arguments":[{"hexValue":"31","id":51837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8053:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":51836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8039:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":51834,"name":"address","nodeType":"ElementaryTypeName","src":"8043:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51835,"nodeType":"ArrayTypeName","src":"8043:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":51838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8039:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8015:40:81"},{"expression":{"id":51844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51840,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51833,"src":"8065:4:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":51842,"indexExpression":{"hexValue":"30","id":51841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8070:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8065:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51843,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51456,"src":"8075:15:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8065:25:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51845,"nodeType":"ExpressionStatement","src":"8065:25:81"},{"assignments":[51850],"declarations":[{"constant":false,"id":51850,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"8183:19:81","nodeType":"VariableDeclaration","scope":51973,"src":"8143:59:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51849,"nodeType":"UserDefinedTypeName","pathNode":{"id":51848,"name":"GatewayDiamond.ConstructorParams","nameLocations":["8143:14:81","8158:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"8143:32:81"},"referencedDeclaration":35456,"src":"8143:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51853,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51851,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51669,"src":"8205:20:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35456_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":51852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8205:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8143:84:81"},{"expression":{"id":51858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51854,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8237:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51856,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51850,"src":"8275:19:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":51855,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"8254:20:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35456_memory_ptr_$returns$_t_contract$_GatewayDiamond_$35759_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":51857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8254:41:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"src":"8237:58:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"id":51859,"nodeType":"ExpressionStatement","src":"8237:58:81"},{"expression":{"id":51867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51860,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"8305:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51864,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8343:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8335:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51862,"name":"address","nodeType":"ElementaryTypeName","src":"8335:7:81","typeDescriptions":{}}},"id":51865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8335:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51861,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"8316:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$37869_$","typeString":"type(contract GatewayGetterFacet)"}},"id":51866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8316:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"src":"8305:54:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":51868,"nodeType":"ExpressionStatement","src":"8305:54:81"},{"expression":{"id":51876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51869,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"8369:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51873,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8409:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8401:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51871,"name":"address","nodeType":"ElementaryTypeName","src":"8401:7:81","typeDescriptions":{}}},"id":51874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8401:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51870,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"8381:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"type(contract GatewayManagerFacet)"}},"id":51875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8381:44:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"src":"8369:56:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":51877,"nodeType":"ExpressionStatement","src":"8369:56:81"},{"expression":{"id":51885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51878,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"8435:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51882,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8473:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8465:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51880,"name":"address","nodeType":"ElementaryTypeName","src":"8465:7:81","typeDescriptions":{}}},"id":51883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8465:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51879,"name":"GatewayRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39706,"src":"8446:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayRouterFacet_$39706_$","typeString":"type(contract GatewayRouterFacet)"}},"id":51884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8446:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"src":"8435:54:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":51886,"nodeType":"ExpressionStatement","src":"8435:54:81"},{"expression":{"id":51894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51887,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51574,"src":"8499:11:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51891,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8543:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8535:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51889,"name":"address","nodeType":"ElementaryTypeName","src":"8535:7:81","typeDescriptions":{}}},"id":51892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8535:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51888,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38674,"src":"8513:21:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$38674_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":51893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8513:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"src":"8499:60:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"id":51895,"nodeType":"ExpressionStatement","src":"8499:60:81"},{"expression":{"id":51903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51896,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51580,"src":"8569:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51900,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8606:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8598:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51898,"name":"address","nodeType":"ElementaryTypeName","src":"8598:7:81","typeDescriptions":{}}},"id":51901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8598:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51897,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"8580:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":51902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8580:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"8569:53:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":51904,"nodeType":"ExpressionStatement","src":"8569:53:81"},{"expression":{"id":51912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51905,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51577,"src":"8632:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51909,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8667:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8659:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51907,"name":"address","nodeType":"ElementaryTypeName","src":"8659:7:81","typeDescriptions":{}}},"id":51910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8659:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51906,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"8643:15:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36477_$","typeString":"type(contract DiamondCutFacet)"}},"id":51911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8643:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"8632:51:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":51913,"nodeType":"ExpressionStatement","src":"8632:51:81"},{"assignments":[51918],"declarations":[{"constant":false,"id":51918,"mutability":"mutable","name":"saConstructorParams","nameLocation":"8792:19:81","nodeType":"VariableDeclaration","scope":51973,"src":"8748:63:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":51917,"nodeType":"UserDefinedTypeName","pathNode":{"id":51916,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["8748:18:81","8767:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"8748:36:81"},"referencedDeclaration":35829,"src":"8748:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51925,"initialValue":{"arguments":[{"arguments":[{"id":51922,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8871:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8863:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51920,"name":"address","nodeType":"ElementaryTypeName","src":"8863:7:81","typeDescriptions":{}}},"id":51923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8863:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51919,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51791,"src":"8814:35:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$35829_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":51924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8814:82:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8748:148:81"},{"expression":{"id":51930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51926,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"8907:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51928,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51918,"src":"8937:19:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":51927,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[52359,52388,52589],"referencedDeclaration":52359,"src":"8919:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":51929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8919:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"src":"8907:50:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"id":51931,"nodeType":"ExpressionStatement","src":"8907:50:81"},{"expression":{"id":51939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51932,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"8967:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51936,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9011:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9003:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51934,"name":"address","nodeType":"ElementaryTypeName","src":"9003:7:81","typeDescriptions":{}}},"id":51937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9003:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51933,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"8979:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":51938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8979:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"src":"8967:55:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":51940,"nodeType":"ExpressionStatement","src":"8967:55:81"},{"expression":{"id":51948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51941,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"9032:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51945,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9074:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9066:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51943,"name":"address","nodeType":"ElementaryTypeName","src":"9066:7:81","typeDescriptions":{}}},"id":51946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9066:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51942,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"9043:22:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":51947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9043:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"9032:53:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":51949,"nodeType":"ExpressionStatement","src":"9032:53:81"},{"expression":{"id":51957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51950,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"9095:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51954,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9132:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9124:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51952,"name":"address","nodeType":"ElementaryTypeName","src":"9124:7:81","typeDescriptions":{}}},"id":51955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9124:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51951,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"9106:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":51956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9106:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"9095:48:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":51958,"nodeType":"ExpressionStatement","src":"9095:48:81"},{"expression":{"id":51966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51959,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"9153:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51963,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9188:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9180:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51961,"name":"address","nodeType":"ElementaryTypeName","src":"9180:7:81","typeDescriptions":{}}},"id":51964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9180:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51960,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"9164:15:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36477_$","typeString":"type(contract DiamondCutFacet)"}},"id":51965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9164:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"9153:46:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":51967,"nodeType":"ExpressionStatement","src":"9153:46:81"},{"expression":{"arguments":[{"id":51969,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51468,"src":"9223:19:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9244:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":51968,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[53132,53215],"referencedDeclaration":53215,"src":"9210:12:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9210:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51972,"nodeType":"ExpressionStatement","src":"9210:38:81"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"7982:5:81","parameters":{"id":51827,"nodeType":"ParameterList","parameters":[],"src":"7987:2:81"},"returnParameters":{"id":51828,"nodeType":"ParameterList","parameters":[],"src":"8005:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":52158,"nodeType":"FunctionDefinition","src":"9261:2119:81","nodes":[],"body":{"id":52157,"nodeType":"Block","src":"9371:2009:81","nodes":[],"statements":[{"assignments":[51985],"declarations":[{"constant":false,"id":51985,"mutability":"mutable","name":"router","nameLocation":"9400:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9381:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"},"typeName":{"id":51984,"nodeType":"UserDefinedTypeName","pathNode":{"id":51983,"name":"GatewayRouterFacet","nameLocations":["9381:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":39706,"src":"9381:18:81"},"referencedDeclaration":39706,"src":"9381:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"visibility":"internal"}],"id":51990,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9409:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayRouterFacet_$39706_$","typeString":"function () returns (contract GatewayRouterFacet)"},"typeName":{"id":51987,"nodeType":"UserDefinedTypeName","pathNode":{"id":51986,"name":"GatewayRouterFacet","nameLocations":["9413:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":39706,"src":"9413:18:81"},"referencedDeclaration":39706,"src":"9413:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}}},"id":51989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9409:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"9381:52:81"},{"assignments":[51993],"declarations":[{"constant":false,"id":51993,"mutability":"mutable","name":"manager","nameLocation":"9463:7:81","nodeType":"VariableDeclaration","scope":52157,"src":"9443:27:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"},"typeName":{"id":51992,"nodeType":"UserDefinedTypeName","pathNode":{"id":51991,"name":"GatewayManagerFacet","nameLocations":["9443:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"9443:19:81"},"referencedDeclaration":38359,"src":"9443:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":51998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9473:23:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":51995,"nodeType":"UserDefinedTypeName","pathNode":{"id":51994,"name":"GatewayManagerFacet","nameLocations":["9477:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"9477:19:81"},"referencedDeclaration":38359,"src":"9477:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}}},"id":51997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9473:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"9443:55:81"},{"assignments":[52001],"declarations":[{"constant":false,"id":52001,"mutability":"mutable","name":"getter","nameLocation":"9527:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9508:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52000,"nodeType":"UserDefinedTypeName","pathNode":{"id":51999,"name":"GatewayGetterFacet","nameLocations":["9508:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":37869,"src":"9508:18:81"},"referencedDeclaration":37869,"src":"9508:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":52006,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9536:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$37869_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":52003,"nodeType":"UserDefinedTypeName","pathNode":{"id":52002,"name":"GatewayGetterFacet","nameLocations":["9540:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":37869,"src":"9540:18:81"},"referencedDeclaration":37869,"src":"9540:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}}},"id":52005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9536:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"9508:52:81"},{"assignments":[52009],"declarations":[{"constant":false,"id":52009,"mutability":"mutable","name":"messenger","nameLocation":"9592:9:81","nodeType":"VariableDeclaration","scope":52157,"src":"9570:31:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52008,"nodeType":"UserDefinedTypeName","pathNode":{"id":52007,"name":"GatewayMessengerFacet","nameLocations":["9570:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":38674,"src":"9570:21:81"},"referencedDeclaration":38674,"src":"9570:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":52014,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9604:25:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$38674_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":52011,"nodeType":"UserDefinedTypeName","pathNode":{"id":52010,"name":"GatewayMessengerFacet","nameLocations":["9608:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":38674,"src":"9608:21:81"},"referencedDeclaration":38674,"src":"9608:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}}},"id":52013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9604:27:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"9570:61:81"},{"assignments":[52017],"declarations":[{"constant":false,"id":52017,"mutability":"mutable","name":"cutter","nameLocation":"9657:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9641:22:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":52016,"nodeType":"UserDefinedTypeName","pathNode":{"id":52015,"name":"DiamondCutFacet","nameLocations":["9641:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"9641:15:81"},"referencedDeclaration":36477,"src":"9641:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":52022,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9666:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52019,"nodeType":"UserDefinedTypeName","pathNode":{"id":52018,"name":"DiamondCutFacet","nameLocations":["9670:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"9670:15:81"},"referencedDeclaration":36477,"src":"9670:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9666:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"9641:46:81"},{"assignments":[52025],"declarations":[{"constant":false,"id":52025,"mutability":"mutable","name":"louper","nameLocation":"9715:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9697:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52024,"nodeType":"UserDefinedTypeName","pathNode":{"id":52023,"name":"DiamondLoupeFacet","nameLocations":["9697:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"9697:17:81"},"referencedDeclaration":36914,"src":"9697:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":52030,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9724:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52027,"nodeType":"UserDefinedTypeName","pathNode":{"id":52026,"name":"DiamondLoupeFacet","nameLocations":["9728:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"9728:17:81"},"referencedDeclaration":36914,"src":"9728:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9724:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"9697:50:81"},{"assignments":[52036],"declarations":[{"constant":false,"id":52036,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"9785:12:81","nodeType":"VariableDeclaration","scope":52157,"src":"9758:39:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52034,"nodeType":"UserDefinedTypeName","pathNode":{"id":52033,"name":"IDiamond.FacetCut","nameLocations":["9758:8:81","9767:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"9758:17:81"},"referencedDeclaration":39721,"src":"9758:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52035,"nodeType":"ArrayTypeName","src":"9758:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52043,"initialValue":{"arguments":[{"hexValue":"36","id":52041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9824:1:81","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"}],"id":52040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9800:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52038,"nodeType":"UserDefinedTypeName","pathNode":{"id":52037,"name":"IDiamond.FacetCut","nameLocations":["9804:8:81","9813:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"9804:17:81"},"referencedDeclaration":39721,"src":"9804:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52039,"nodeType":"ArrayTypeName","src":"9804:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9800:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9758:68:81"},{"expression":{"id":52059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52044,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"9837:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52046,"indexExpression":{"hexValue":"30","id":52045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9850:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9837:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52051,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51985,"src":"9927:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}],"id":52050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9919:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52049,"name":"address","nodeType":"ElementaryTypeName","src":"9919:7:81","typeDescriptions":{}}},"id":52052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52053,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"9960:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9969:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"9960:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9984:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"9960:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52056,"name":"gwRouterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51544,"src":"10024:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52047,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"9869:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9878:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"9869:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9905:12:81","9952:6:81","10005:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"9869:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52058,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9855:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"9837:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52060,"nodeType":"ExpressionStatement","src":"9837:229:81"},{"expression":{"id":52076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52061,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10077:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52063,"indexExpression":{"hexValue":"31","id":52062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10090:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10077:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52068,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51993,"src":"10167:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}],"id":52067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10159:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52066,"name":"address","nodeType":"ElementaryTypeName","src":"10159:7:81","typeDescriptions":{}}},"id":52069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10159:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52070,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10201:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10210:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10201:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10225:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10201:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52073,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51547,"src":"10265:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52064,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10109:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10118:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10109:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10145:12:81","10193:6:81","10246:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10109:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52075,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10095:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10077:231:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52077,"nodeType":"ExpressionStatement","src":"10077:231:81"},{"expression":{"id":52093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52078,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10319:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52080,"indexExpression":{"hexValue":"32","id":52079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10332:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10319:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52085,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52001,"src":"10409:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}],"id":52084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10401:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52083,"name":"address","nodeType":"ElementaryTypeName","src":"10401:7:81","typeDescriptions":{}}},"id":52086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10401:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52087,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10442:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10451:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10442:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10466:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10442:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52090,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51550,"src":"10506:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52081,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10351:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10360:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10351:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10387:12:81","10434:6:81","10487:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10351:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10337:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10319:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52094,"nodeType":"ExpressionStatement","src":"10319:229:81"},{"expression":{"id":52110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52095,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10559:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52097,"indexExpression":{"hexValue":"33","id":52096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10572:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10559:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52102,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52009,"src":"10649:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}],"id":52101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10641:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52100,"name":"address","nodeType":"ElementaryTypeName","src":"10641:7:81","typeDescriptions":{}}},"id":52103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10641:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52104,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10685:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10694:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10685:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10709:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10685:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52107,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"10749:20:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52098,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10591:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10600:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10591:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10627:12:81","10677:6:81","10730:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10591:193:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52109,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10577:217:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10559:235:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52111,"nodeType":"ExpressionStatement","src":"10559:235:81"},{"expression":{"id":52127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52112,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10805:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52114,"indexExpression":{"hexValue":"34","id":52113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10818:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10805:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52119,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52025,"src":"10895:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10887:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52117,"name":"address","nodeType":"ElementaryTypeName","src":"10887:7:81","typeDescriptions":{}}},"id":52120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10887:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52121,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10928:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10937:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10928:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10952:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10928:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52124,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51559,"src":"10992:16:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52115,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10837:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10846:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10837:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10873:12:81","10920:6:81","10973:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10837:186:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52126,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10823:210:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10805:228:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52128,"nodeType":"ExpressionStatement","src":"10805:228:81"},{"expression":{"id":52144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52129,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"11044:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52131,"indexExpression":{"hexValue":"35","id":52130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11057:1:81","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11044:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52136,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52017,"src":"11134:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11126:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52134,"name":"address","nodeType":"ElementaryTypeName","src":"11126:7:81","typeDescriptions":{}}},"id":52137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11126:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52138,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11167:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11176:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"11167:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11191:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"11167:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52141,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51556,"src":"11231:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52132,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11076:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11085:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"11076:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11112:12:81","11159:6:81","11212:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11076:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52143,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11062:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11044:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52145,"nodeType":"ExpressionStatement","src":"11044:229:81"},{"expression":{"id":52153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52146,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"11284:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52150,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"11320:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52151,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51977,"src":"11334:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":52149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11301:18:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35456_memory_ptr_$returns$_t_contract$_GatewayDiamond_$35759_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":52148,"nodeType":"UserDefinedTypeName","pathNode":{"id":52147,"name":"GatewayDiamond","nameLocations":["11305:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"11305:14:81"},"referencedDeclaration":35759,"src":"11305:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}},"id":52152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11301:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"src":"11284:57:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"id":52154,"nodeType":"ExpressionStatement","src":"11284:57:81"},{"expression":{"id":52155,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"11359:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"functionReturnParameters":51982,"id":52156,"nodeType":"Return","src":"11352:21:81"}]},"functionSelector":"cfebf300","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"9270:20:81","parameters":{"id":51978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51977,"mutability":"mutable","name":"params","nameLocation":"9331:6:81","nodeType":"VariableDeclaration","scope":52158,"src":"9291:46:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51976,"nodeType":"UserDefinedTypeName","pathNode":{"id":51975,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9291:14:81","9306:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"9291:32:81"},"referencedDeclaration":35456,"src":"9291:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"9290:48:81"},"returnParameters":{"id":51982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52158,"src":"9355:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":51980,"nodeType":"UserDefinedTypeName","pathNode":{"id":51979,"name":"GatewayDiamond","nameLocations":["9355:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"9355:14:81"},"referencedDeclaration":35759,"src":"9355:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"9354:16:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52224,"nodeType":"FunctionDefinition","src":"11386:854:81","nodes":[],"body":{"id":52223,"nodeType":"Block","src":"11594:646:81","nodes":[],"statements":[{"assignments":[52176],"declarations":[{"constant":false,"id":52176,"mutability":"mutable","name":"diamondCut","nameLocation":"11631:10:81","nodeType":"VariableDeclaration","scope":52223,"src":"11604:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52174,"nodeType":"UserDefinedTypeName","pathNode":{"id":52173,"name":"IDiamond.FacetCut","nameLocations":["11604:8:81","11613:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"11604:17:81"},"referencedDeclaration":39721,"src":"11604:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52175,"nodeType":"ArrayTypeName","src":"11604:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52183,"initialValue":{"arguments":[{"hexValue":"32","id":52181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11668:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":52180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11644:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52178,"nodeType":"UserDefinedTypeName","pathNode":{"id":52177,"name":"IDiamond.FacetCut","nameLocations":["11648:8:81","11657:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"11648:17:81"},"referencedDeclaration":39721,"src":"11648:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52179,"nodeType":"ArrayTypeName","src":"11648:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11644:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11604:66:81"},{"expression":{"id":52196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52184,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"11681:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52186,"indexExpression":{"hexValue":"30","id":52185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11692:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11681:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":52189,"name":"getterFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52163,"src":"11761:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52190,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11799:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11808:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"11799:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11823:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"11799:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52193,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"11863:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52187,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11711:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11720:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"11711:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11747:12:81","11791:6:81","11844:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11711:184:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52195,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11697:208:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11681:224:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52197,"nodeType":"ExpressionStatement","src":"11681:224:81"},{"expression":{"id":52210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52198,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"11916:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52200,"indexExpression":{"hexValue":"31","id":52199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11927:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11916:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":52203,"name":"managerFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52165,"src":"11996:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52204,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12035:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12044:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"12035:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12059:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"12035:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52207,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"12099:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52201,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11946:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11955:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"11946:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11982:12:81","12027:6:81","12080:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11946:186:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52209,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11932:210:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11916:226:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52211,"nodeType":"ExpressionStatement","src":"11916:226:81"},{"expression":{"id":52219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52212,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"12153:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52216,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"12188:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52217,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52161,"src":"12200:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12165:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52214,"nodeType":"UserDefinedTypeName","pathNode":{"id":52213,"name":"SubnetActorDiamond","nameLocations":["12169:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"12169:18:81"},"referencedDeclaration":36177,"src":"12169:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12165:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"src":"12153:54:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"id":52220,"nodeType":"ExpressionStatement","src":"12153:54:81"},{"expression":{"id":52221,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"12224:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":52170,"id":52222,"nodeType":"Return","src":"12217:16:81"}]},"functionSelector":"b64544ec","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"11395:35:81","parameters":{"id":52166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52161,"mutability":"mutable","name":"params","nameLocation":"11484:6:81","nodeType":"VariableDeclaration","scope":52224,"src":"11440:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52160,"nodeType":"UserDefinedTypeName","pathNode":{"id":52159,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["11440:18:81","11459:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"11440:36:81"},"referencedDeclaration":35829,"src":"11440:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":52163,"mutability":"mutable","name":"getterFaucet","nameLocation":"11508:12:81","nodeType":"VariableDeclaration","scope":52224,"src":"11500:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52162,"name":"address","nodeType":"ElementaryTypeName","src":"11500:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52165,"mutability":"mutable","name":"managerFaucet","nameLocation":"11538:13:81","nodeType":"VariableDeclaration","scope":52224,"src":"11530:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52164,"name":"address","nodeType":"ElementaryTypeName","src":"11530:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11430:127:81"},"returnParameters":{"id":52170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52224,"src":"11574:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52168,"nodeType":"UserDefinedTypeName","pathNode":{"id":52167,"name":"SubnetActorDiamond","nameLocations":["11574:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"11574:18:81"},"referencedDeclaration":36177,"src":"11574:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"11573:20:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52359,"nodeType":"FunctionDefinition","src":"12246:1518:81","nodes":[],"body":{"id":52358,"nodeType":"Block","src":"12361:1403:81","nodes":[],"statements":[{"assignments":[52235],"declarations":[{"constant":false,"id":52235,"mutability":"mutable","name":"manager","nameLocation":"12395:7:81","nodeType":"VariableDeclaration","scope":52358,"src":"12371:31:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52234,"nodeType":"UserDefinedTypeName","pathNode":{"id":52233,"name":"SubnetActorManagerFacet","nameLocations":["12371:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"12371:23:81"},"referencedDeclaration":50947,"src":"12371:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":52240,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12405:27:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":52237,"nodeType":"UserDefinedTypeName","pathNode":{"id":52236,"name":"SubnetActorManagerFacet","nameLocations":["12409:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"12409:23:81"},"referencedDeclaration":50947,"src":"12409:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}},"id":52239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12405:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"12371:63:81"},{"assignments":[52243],"declarations":[{"constant":false,"id":52243,"mutability":"mutable","name":"getter","nameLocation":"12467:6:81","nodeType":"VariableDeclaration","scope":52358,"src":"12444:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52242,"nodeType":"UserDefinedTypeName","pathNode":{"id":52241,"name":"SubnetActorGetterFacet","nameLocations":["12444:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"12444:22:81"},"referencedDeclaration":49325,"src":"12444:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":52248,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12476:26:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":52245,"nodeType":"UserDefinedTypeName","pathNode":{"id":52244,"name":"SubnetActorGetterFacet","nameLocations":["12480:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"12480:22:81"},"referencedDeclaration":49325,"src":"12480:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}},"id":52247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12476:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"12444:60:81"},{"assignments":[52251],"declarations":[{"constant":false,"id":52251,"mutability":"mutable","name":"louper","nameLocation":"12532:6:81","nodeType":"VariableDeclaration","scope":52358,"src":"12514:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52250,"nodeType":"UserDefinedTypeName","pathNode":{"id":52249,"name":"DiamondLoupeFacet","nameLocations":["12514:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"12514:17:81"},"referencedDeclaration":36914,"src":"12514:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":52256,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12541:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52253,"nodeType":"UserDefinedTypeName","pathNode":{"id":52252,"name":"DiamondLoupeFacet","nameLocations":["12545:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"12545:17:81"},"referencedDeclaration":36914,"src":"12545:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12541:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"12514:50:81"},{"assignments":[52259],"declarations":[{"constant":false,"id":52259,"mutability":"mutable","name":"cutter","nameLocation":"12590:6:81","nodeType":"VariableDeclaration","scope":52358,"src":"12574:22:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":52258,"nodeType":"UserDefinedTypeName","pathNode":{"id":52257,"name":"DiamondCutFacet","nameLocations":["12574:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"12574:15:81"},"referencedDeclaration":36477,"src":"12574:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":52264,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12599:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52261,"nodeType":"UserDefinedTypeName","pathNode":{"id":52260,"name":"DiamondCutFacet","nameLocations":["12603:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"12603:15:81"},"referencedDeclaration":36477,"src":"12603:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12599:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"12574:46:81"},{"assignments":[52270],"declarations":[{"constant":false,"id":52270,"mutability":"mutable","name":"diamondCut","nameLocation":"12658:10:81","nodeType":"VariableDeclaration","scope":52358,"src":"12631:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52268,"nodeType":"UserDefinedTypeName","pathNode":{"id":52267,"name":"IDiamond.FacetCut","nameLocations":["12631:8:81","12640:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"12631:17:81"},"referencedDeclaration":39721,"src":"12631:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52269,"nodeType":"ArrayTypeName","src":"12631:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52277,"initialValue":{"arguments":[{"hexValue":"34","id":52275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12695:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":52274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12671:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52272,"nodeType":"UserDefinedTypeName","pathNode":{"id":52271,"name":"IDiamond.FacetCut","nameLocations":["12675:8:81","12684:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"12675:17:81"},"referencedDeclaration":39721,"src":"12675:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52273,"nodeType":"ArrayTypeName","src":"12675:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12671:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12631:66:81"},{"expression":{"id":52293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52278,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"12708:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52280,"indexExpression":{"hexValue":"30","id":52279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12719:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12708:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52285,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52235,"src":"12796:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":52284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12788:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52283,"name":"address","nodeType":"ElementaryTypeName","src":"12788:7:81","typeDescriptions":{}}},"id":52286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12788:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52287,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12830:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12839:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"12830:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12854:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"12830:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52290,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"12894:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52281,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12738:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12747:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"12738:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12774:12:81","12822:6:81","12875:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12738:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52292,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12724:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12708:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52294,"nodeType":"ExpressionStatement","src":"12708:229:81"},{"expression":{"id":52310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52295,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"12948:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52297,"indexExpression":{"hexValue":"31","id":52296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12959:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12948:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52302,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52243,"src":"13036:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}],"id":52301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13028:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52300,"name":"address","nodeType":"ElementaryTypeName","src":"13028:7:81","typeDescriptions":{}}},"id":52303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13028:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52304,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13069:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13078:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"13069:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13093:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"13069:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52307,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"13133:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52298,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12978:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12987:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"12978:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13014:12:81","13061:6:81","13114:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12978:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52309,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12964:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12948:227:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52311,"nodeType":"ExpressionStatement","src":"12948:227:81"},{"expression":{"id":52327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52312,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"13186:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52314,"indexExpression":{"hexValue":"32","id":52313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13197:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13186:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52319,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52259,"src":"13274:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13266:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52317,"name":"address","nodeType":"ElementaryTypeName","src":"13266:7:81","typeDescriptions":{}}},"id":52320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13266:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52321,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13307:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13316:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"13307:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13331:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"13307:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52324,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51556,"src":"13371:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52315,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13216:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13225:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"13216:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13252:12:81","13299:6:81","13352:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13216:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52326,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13202:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13186:227:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52328,"nodeType":"ExpressionStatement","src":"13186:227:81"},{"expression":{"id":52344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52329,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"13424:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52331,"indexExpression":{"hexValue":"33","id":52330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13435:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13424:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52336,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52251,"src":"13512:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13504:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52334,"name":"address","nodeType":"ElementaryTypeName","src":"13504:7:81","typeDescriptions":{}}},"id":52337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13504:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52338,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13545:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13554:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"13545:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13569:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"13545:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52341,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51559,"src":"13609:16:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52332,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13454:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13463:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"13454:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13490:12:81","13537:6:81","13590:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13454:186:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52343,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13440:210:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13424:226:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52345,"nodeType":"ExpressionStatement","src":"13424:226:81"},{"assignments":[52348],"declarations":[{"constant":false,"id":52348,"mutability":"mutable","name":"diamond","nameLocation":"13680:7:81","nodeType":"VariableDeclaration","scope":52358,"src":"13661:26:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52347,"nodeType":"UserDefinedTypeName","pathNode":{"id":52346,"name":"SubnetActorDiamond","nameLocations":["13661:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"13661:18:81"},"referencedDeclaration":36177,"src":"13661:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":52355,"initialValue":{"arguments":[{"id":52352,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"13713:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52353,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52227,"src":"13725:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"13690:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52350,"nodeType":"UserDefinedTypeName","pathNode":{"id":52349,"name":"SubnetActorDiamond","nameLocations":["13694:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"13694:18:81"},"referencedDeclaration":36177,"src":"13694:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13690:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"13661:71:81"},{"expression":{"id":52356,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52348,"src":"13750:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":52232,"id":52357,"nodeType":"Return","src":"13743:14:81"}]},"functionSelector":"b0ed3c00","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"12255:17:81","parameters":{"id":52228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52227,"mutability":"mutable","name":"params","nameLocation":"12317:6:81","nodeType":"VariableDeclaration","scope":52359,"src":"12273:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52226,"nodeType":"UserDefinedTypeName","pathNode":{"id":52225,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["12273:18:81","12292:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"12273:36:81"},"referencedDeclaration":35829,"src":"12273:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"12272:52:81"},"returnParameters":{"id":52232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52359,"src":"12341:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52230,"nodeType":"UserDefinedTypeName","pathNode":{"id":52229,"name":"SubnetActorDiamond","nameLocations":["12341:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"12341:18:81"},"referencedDeclaration":36177,"src":"12341:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"12340:20:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52388,"nodeType":"FunctionDefinition","src":"13770:522:81","nodes":[],"body":{"id":52387,"nodeType":"Block","src":"14014:278:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":52376,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52361,"src":"14055:15:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":52377,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52364,"src":"14084:10:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":52378,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52366,"src":"14108:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52379,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52368,"src":"14146:14:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52380,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52370,"src":"14174:12:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52381,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52372,"src":"14200:19:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":52382,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"14233:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":52383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14248:10:81","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":48645,"src":"14233:25:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":52384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14272:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":52375,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[52359,52388,52589],"referencedDeclaration":52589,"src":"14024:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$36918_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$48648_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":52385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14024:261:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52386,"nodeType":"ExpressionStatement","src":"14024:261:81"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"13779:17:81","parameters":{"id":52373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52361,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"13814:15:81","nodeType":"VariableDeclaration","scope":52388,"src":"13806:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52360,"name":"address","nodeType":"ElementaryTypeName","src":"13806:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52364,"mutability":"mutable","name":"_consensus","nameLocation":"13853:10:81","nodeType":"VariableDeclaration","scope":52388,"src":"13839:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},"typeName":{"id":52363,"nodeType":"UserDefinedTypeName","pathNode":{"id":52362,"name":"ConsensusType","nameLocations":["13839:13:81"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"13839:13:81"},"referencedDeclaration":36918,"src":"13839:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":52366,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"13881:24:81","nodeType":"VariableDeclaration","scope":52388,"src":"13873:32:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52365,"name":"uint256","nodeType":"ElementaryTypeName","src":"13873:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52368,"mutability":"mutable","name":"_minValidators","nameLocation":"13922:14:81","nodeType":"VariableDeclaration","scope":52388,"src":"13915:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52367,"name":"uint64","nodeType":"ElementaryTypeName","src":"13915:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52370,"mutability":"mutable","name":"_checkPeriod","nameLocation":"13953:12:81","nodeType":"VariableDeclaration","scope":52388,"src":"13946:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52369,"name":"uint64","nodeType":"ElementaryTypeName","src":"13946:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52372,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"13981:19:81","nodeType":"VariableDeclaration","scope":52388,"src":"13975:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52371,"name":"uint8","nodeType":"ElementaryTypeName","src":"13975:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"13796:210:81"},"returnParameters":{"id":52374,"nodeType":"ParameterList","parameters":[],"src":"14014:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52589,"nodeType":"FunctionDefinition","src":"14298:2571:81","nodes":[],"body":{"id":52588,"nodeType":"Block","src":"14621:2248:81","nodes":[],"statements":[{"assignments":[52411],"declarations":[{"constant":false,"id":52411,"mutability":"mutable","name":"_parentId","nameLocation":"14647:9:81","nodeType":"VariableDeclaration","scope":52588,"src":"14631:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":52410,"nodeType":"UserDefinedTypeName","pathNode":{"id":52409,"name":"SubnetID","nameLocations":["14631:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"14631:8:81"},"referencedDeclaration":48557,"src":"14631:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":52420,"initialValue":{"arguments":[{"id":52413,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51450,"src":"14668:15:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14699:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14685:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52414,"name":"address","nodeType":"ElementaryTypeName","src":"14689:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52415,"nodeType":"ArrayTypeName","src":"14689:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14685:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52412,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"14659:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14659:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"14631:71:81"},{"expression":{"id":52426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52421,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"14713:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14725:27:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":52423,"nodeType":"UserDefinedTypeName","pathNode":{"id":52422,"name":"SubnetActorManagerFacet","nameLocations":["14729:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"14729:23:81"},"referencedDeclaration":50947,"src":"14729:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}},"id":52425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14725:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"src":"14713:41:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":52427,"nodeType":"ExpressionStatement","src":"14713:41:81"},{"expression":{"id":52433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52428,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"14764:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14775:26:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":52430,"nodeType":"UserDefinedTypeName","pathNode":{"id":52429,"name":"SubnetActorGetterFacet","nameLocations":["14779:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"14779:22:81"},"referencedDeclaration":49325,"src":"14779:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}},"id":52432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14775:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"14764:39:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":52434,"nodeType":"ExpressionStatement","src":"14764:39:81"},{"expression":{"id":52440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52435,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"14813:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14824:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52437,"nodeType":"UserDefinedTypeName","pathNode":{"id":52436,"name":"DiamondCutFacet","nameLocations":["14828:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"14828:15:81"},"referencedDeclaration":36477,"src":"14828:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14824:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"14813:32:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":52441,"nodeType":"ExpressionStatement","src":"14813:32:81"},{"expression":{"id":52447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52442,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"14855:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14866:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52444,"nodeType":"UserDefinedTypeName","pathNode":{"id":52443,"name":"DiamondLoupeFacet","nameLocations":["14870:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"14870:17:81"},"referencedDeclaration":36914,"src":"14870:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14866:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"14855:34:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":52448,"nodeType":"ExpressionStatement","src":"14855:34:81"},{"assignments":[52454],"declarations":[{"constant":false,"id":52454,"mutability":"mutable","name":"diamondCut","nameLocation":"14927:10:81","nodeType":"VariableDeclaration","scope":52588,"src":"14900:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52452,"nodeType":"UserDefinedTypeName","pathNode":{"id":52451,"name":"IDiamond.FacetCut","nameLocations":["14900:8:81","14909:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"14900:17:81"},"referencedDeclaration":39721,"src":"14900:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52453,"nodeType":"ArrayTypeName","src":"14900:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52461,"initialValue":{"arguments":[{"hexValue":"34","id":52459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14964:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":52458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14940:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52456,"nodeType":"UserDefinedTypeName","pathNode":{"id":52455,"name":"IDiamond.FacetCut","nameLocations":["14944:8:81","14953:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"14944:17:81"},"referencedDeclaration":39721,"src":"14944:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52457,"nodeType":"ArrayTypeName","src":"14944:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14940:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14900:66:81"},{"expression":{"id":52477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52462,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"14977:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52464,"indexExpression":{"hexValue":"30","id":52463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14988:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14977:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52469,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"15065:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":52468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15057:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52467,"name":"address","nodeType":"ElementaryTypeName","src":"15057:7:81","typeDescriptions":{}}},"id":52470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15057:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52471,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15101:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15110:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15101:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15125:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15101:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52474,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"15165:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52465,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15007:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15016:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15007:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15043:12:81","15093:6:81","15146:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15007:191:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52476,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14993:215:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14977:231:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52478,"nodeType":"ExpressionStatement","src":"14977:231:81"},{"expression":{"id":52494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52479,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15219:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52481,"indexExpression":{"hexValue":"31","id":52480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15230:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15219:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52486,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"15307:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}],"id":52485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15299:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52484,"name":"address","nodeType":"ElementaryTypeName","src":"15299:7:81","typeDescriptions":{}}},"id":52487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15299:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52488,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15342:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15351:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15342:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15366:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15342:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52491,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"15406:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52482,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15249:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15258:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15249:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15285:12:81","15334:6:81","15387:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15249:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52493,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15235:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15219:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52495,"nodeType":"ExpressionStatement","src":"15219:229:81"},{"expression":{"id":52511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52496,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15459:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52498,"indexExpression":{"hexValue":"32","id":52497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15470:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15459:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52503,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"15547:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15539:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52501,"name":"address","nodeType":"ElementaryTypeName","src":"15539:7:81","typeDescriptions":{}}},"id":52504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15539:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52505,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15582:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15591:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15582:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15606:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15582:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52508,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"15646:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52499,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15489:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15498:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15489:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15525:12:81","15574:6:81","15627:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15489:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52510,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15475:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15459:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52512,"nodeType":"ExpressionStatement","src":"15459:229:81"},{"expression":{"id":52528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52513,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15699:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52515,"indexExpression":{"hexValue":"33","id":52514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15710:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15699:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52520,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"15787:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15779:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52518,"name":"address","nodeType":"ElementaryTypeName","src":"15779:7:81","typeDescriptions":{}}},"id":52521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15779:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52522,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15822:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15831:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15822:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15846:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15822:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52525,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51689,"src":"15886:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52516,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15729:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15738:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15729:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15765:12:81","15814:6:81","15867:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15729:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52527,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15715:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15699:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52529,"nodeType":"ExpressionStatement","src":"15699:229:81"},{"expression":{"id":52550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52530,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"15939:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52534,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15987:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":52537,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52411,"src":"16076:9:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52538,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52390,"src":"16119:15:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":52539,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52393,"src":"16163:10:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":52540,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52395,"src":"16216:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52541,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52397,"src":"16273:14:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52542,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52399,"src":"16326:12:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52543,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52401,"src":"16376:19:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":52544,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52406,"src":"16436:22:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":52545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16488:2:81","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":52546,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52404,"src":"16524:15:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},{"id":52547,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"16573:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52535,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"16011:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"type(contract SubnetActorDiamond)"}},"id":52536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16030:17:81","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35829,"src":"16011:36:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35829_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":52548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16066:8:81","16103:14:81","16152:9:81","16191:23:81","16258:13:81","16305:19:81","16356:18:81","16413:21:81","16476:10:81","16508:14:81","16557:14:81"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee"],"nodeType":"FunctionCall","src":"16011:598:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"15951:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52532,"nodeType":"UserDefinedTypeName","pathNode":{"id":52531,"name":"SubnetActorDiamond","nameLocations":["15955:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"15955:18:81"},"referencedDeclaration":36177,"src":"15955:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15951:668:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"src":"15939:680:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"id":52551,"nodeType":"ExpressionStatement","src":"15939:680:81"},{"expression":{"id":52559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52552,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"16630:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52556,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16674:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16666:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52554,"name":"address","nodeType":"ElementaryTypeName","src":"16666:7:81","typeDescriptions":{}}},"id":52557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16666:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52553,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"16642:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":52558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16642:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"src":"16630:55:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":52560,"nodeType":"ExpressionStatement","src":"16630:55:81"},{"expression":{"id":52568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52561,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"16695:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52565,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16737:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16729:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52563,"name":"address","nodeType":"ElementaryTypeName","src":"16729:7:81","typeDescriptions":{}}},"id":52566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16729:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52562,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"16706:22:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":52567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16706:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"16695:53:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":52569,"nodeType":"ExpressionStatement","src":"16695:53:81"},{"expression":{"id":52577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52570,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"16758:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52574,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16793:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16785:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52572,"name":"address","nodeType":"ElementaryTypeName","src":"16785:7:81","typeDescriptions":{}}},"id":52575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16785:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52571,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"16769:15:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36477_$","typeString":"type(contract DiamondCutFacet)"}},"id":52576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16769:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"16758:46:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":52578,"nodeType":"ExpressionStatement","src":"16758:46:81"},{"expression":{"id":52586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52579,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"16814:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52583,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16851:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16843:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52581,"name":"address","nodeType":"ElementaryTypeName","src":"16843:7:81","typeDescriptions":{}}},"id":52584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16843:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52580,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"16825:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":52585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16825:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"16814:48:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":52587,"nodeType":"ExpressionStatement","src":"16814:48:81"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"14307:17:81","parameters":{"id":52407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52390,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"14342:15:81","nodeType":"VariableDeclaration","scope":52589,"src":"14334:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52389,"name":"address","nodeType":"ElementaryTypeName","src":"14334:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52393,"mutability":"mutable","name":"_consensus","nameLocation":"14381:10:81","nodeType":"VariableDeclaration","scope":52589,"src":"14367:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},"typeName":{"id":52392,"nodeType":"UserDefinedTypeName","pathNode":{"id":52391,"name":"ConsensusType","nameLocations":["14367:13:81"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"14367:13:81"},"referencedDeclaration":36918,"src":"14367:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":52395,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"14409:24:81","nodeType":"VariableDeclaration","scope":52589,"src":"14401:32:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52394,"name":"uint256","nodeType":"ElementaryTypeName","src":"14401:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52397,"mutability":"mutable","name":"_minValidators","nameLocation":"14450:14:81","nodeType":"VariableDeclaration","scope":52589,"src":"14443:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52396,"name":"uint64","nodeType":"ElementaryTypeName","src":"14443:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52399,"mutability":"mutable","name":"_checkPeriod","nameLocation":"14481:12:81","nodeType":"VariableDeclaration","scope":52589,"src":"14474:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52398,"name":"uint64","nodeType":"ElementaryTypeName","src":"14474:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52401,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"14509:19:81","nodeType":"VariableDeclaration","scope":52589,"src":"14503:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52400,"name":"uint8","nodeType":"ElementaryTypeName","src":"14503:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":52404,"mutability":"mutable","name":"_permissionMode","nameLocation":"14553:15:81","nodeType":"VariableDeclaration","scope":52589,"src":"14538:30:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"typeName":{"id":52403,"nodeType":"UserDefinedTypeName","pathNode":{"id":52402,"name":"PermissionMode","nameLocations":["14538:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48648,"src":"14538:14:81"},"referencedDeclaration":48648,"src":"14538:14:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":52406,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"14585:22:81","nodeType":"VariableDeclaration","scope":52589,"src":"14578:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52405,"name":"uint16","nodeType":"ElementaryTypeName","src":"14578:6:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"14324:289:81"},"returnParameters":{"id":52408,"nodeType":"ParameterList","parameters":[],"src":"14621:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52682,"nodeType":"FunctionDefinition","src":"16875:1021:81","nodes":[],"body":{"id":52681,"nodeType":"Block","src":"16967:929:81","nodes":[],"statements":[{"assignments":[52599],"declarations":[{"constant":false,"id":52599,"mutability":"mutable","name":"mockedManager","nameLocation":"17005:13:81","nodeType":"VariableDeclaration","scope":52681,"src":"16977:41:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":52598,"nodeType":"UserDefinedTypeName","pathNode":{"id":52597,"name":"SubnetActorManagerFacetMock","nameLocations":["16977:27:81"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"16977:27:81"},"referencedDeclaration":56069,"src":"16977:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"}],"id":52604,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17021:31:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacetMock_$56069_$","typeString":"function () returns (contract SubnetActorManagerFacetMock)"},"typeName":{"id":52601,"nodeType":"UserDefinedTypeName","pathNode":{"id":52600,"name":"SubnetActorManagerFacetMock","nameLocations":["17025:27:81"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"17025:27:81"},"referencedDeclaration":56069,"src":"17025:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}}},"id":52603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17021:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"VariableDeclarationStatement","src":"16977:77:81"},{"assignments":[52607],"declarations":[{"constant":false,"id":52607,"mutability":"mutable","name":"getter","nameLocation":"17087:6:81","nodeType":"VariableDeclaration","scope":52681,"src":"17064:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52606,"nodeType":"UserDefinedTypeName","pathNode":{"id":52605,"name":"SubnetActorGetterFacet","nameLocations":["17064:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"17064:22:81"},"referencedDeclaration":49325,"src":"17064:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":52612,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17096:26:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":52609,"nodeType":"UserDefinedTypeName","pathNode":{"id":52608,"name":"SubnetActorGetterFacet","nameLocations":["17100:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"17100:22:81"},"referencedDeclaration":49325,"src":"17100:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}},"id":52611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17096:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"17064:60:81"},{"assignments":[52618],"declarations":[{"constant":false,"id":52618,"mutability":"mutable","name":"diamondCut","nameLocation":"17162:10:81","nodeType":"VariableDeclaration","scope":52681,"src":"17135:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52616,"nodeType":"UserDefinedTypeName","pathNode":{"id":52615,"name":"IDiamond.FacetCut","nameLocations":["17135:8:81","17144:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"17135:17:81"},"referencedDeclaration":39721,"src":"17135:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52617,"nodeType":"ArrayTypeName","src":"17135:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52625,"initialValue":{"arguments":[{"hexValue":"32","id":52623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17199:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":52622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17175:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52620,"nodeType":"UserDefinedTypeName","pathNode":{"id":52619,"name":"IDiamond.FacetCut","nameLocations":["17179:8:81","17188:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"17179:17:81"},"referencedDeclaration":39721,"src":"17179:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52621,"nodeType":"ArrayTypeName","src":"17179:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17175:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17135:66:81"},{"expression":{"id":52641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52626,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"17212:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52628,"indexExpression":{"hexValue":"30","id":52627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17223:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17212:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52633,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52599,"src":"17300:13:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}],"id":52632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17292:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52631,"name":"address","nodeType":"ElementaryTypeName","src":"17292:7:81","typeDescriptions":{}}},"id":52634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17292:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52635,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17340:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17349:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"17340:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17364:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"17340:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52638,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51683,"src":"17404:24:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52629,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17242:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17251:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"17242:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17278:12:81","17332:6:81","17385:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17242:201:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52640,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17228:225:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17212:241:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52642,"nodeType":"ExpressionStatement","src":"17212:241:81"},{"expression":{"id":52658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52643,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"17464:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52645,"indexExpression":{"hexValue":"31","id":52644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17475:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17464:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52650,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52607,"src":"17552:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}],"id":52649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17544:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52648,"name":"address","nodeType":"ElementaryTypeName","src":"17544:7:81","typeDescriptions":{}}},"id":52651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17544:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52652,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17585:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17594:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"17585:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17609:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"17585:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52655,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"17649:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52646,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17494:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17503:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"17494:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17530:12:81","17577:6:81","17630:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17494:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52657,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17480:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17464:227:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52659,"nodeType":"ExpressionStatement","src":"17464:227:81"},{"assignments":[52664],"declarations":[{"constant":false,"id":52664,"mutability":"mutable","name":"params","nameLocation":"17746:6:81","nodeType":"VariableDeclaration","scope":52681,"src":"17702:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52663,"nodeType":"UserDefinedTypeName","pathNode":{"id":52662,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["17702:18:81","17721:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"17702:36:81"},"referencedDeclaration":35829,"src":"17702:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52668,"initialValue":{"arguments":[{"id":52666,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52591,"src":"17791:2:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52665,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51791,"src":"17755:35:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$35829_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":52667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17755:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"17702:92:81"},{"assignments":[52671],"declarations":[{"constant":false,"id":52671,"mutability":"mutable","name":"d","nameLocation":"17824:1:81","nodeType":"VariableDeclaration","scope":52681,"src":"17805:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52670,"nodeType":"UserDefinedTypeName","pathNode":{"id":52669,"name":"SubnetActorDiamond","nameLocations":["17805:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"17805:18:81"},"referencedDeclaration":36177,"src":"17805:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":52678,"initialValue":{"arguments":[{"id":52675,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"17851:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52676,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"17863:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17828:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52673,"nodeType":"UserDefinedTypeName","pathNode":{"id":52672,"name":"SubnetActorDiamond","nameLocations":["17832:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"17832:18:81"},"referencedDeclaration":36177,"src":"17832:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17828:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"17805:65:81"},{"expression":{"id":52679,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52671,"src":"17888:1:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":52596,"id":52680,"nodeType":"Return","src":"17881:8:81"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"16884:34:81","parameters":{"id":52592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52591,"mutability":"mutable","name":"gw","nameLocation":"16927:2:81","nodeType":"VariableDeclaration","scope":52682,"src":"16919:10:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52590,"name":"address","nodeType":"ElementaryTypeName","src":"16919:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16918:12:81"},"returnParameters":{"id":52596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52682,"src":"16947:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52594,"nodeType":"UserDefinedTypeName","pathNode":{"id":52593,"name":"SubnetActorDiamond","nameLocations":["16947:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"16947:18:81"},"referencedDeclaration":36177,"src":"16947:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"16946:20:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52824,"nodeType":"FunctionDefinition","src":"17948:1703:81","nodes":[],"body":{"id":52823,"nodeType":"Block","src":"18086:1565:81","nodes":[],"statements":[{"assignments":[52696],"declarations":[{"constant":false,"id":52696,"mutability":"mutable","name":"diamondCut","nameLocation":"18123:10:81","nodeType":"VariableDeclaration","scope":52823,"src":"18096:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52694,"nodeType":"UserDefinedTypeName","pathNode":{"id":52693,"name":"IDiamond.FacetCut","nameLocations":["18096:8:81","18105:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"18096:17:81"},"referencedDeclaration":39721,"src":"18096:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52695,"nodeType":"ArrayTypeName","src":"18096:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52703,"initialValue":{"arguments":[{"hexValue":"34","id":52701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18160:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":52700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18136:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52698,"nodeType":"UserDefinedTypeName","pathNode":{"id":52697,"name":"IDiamond.FacetCut","nameLocations":["18140:8:81","18149:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"18140:17:81"},"referencedDeclaration":39721,"src":"18140:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52699,"nodeType":"ArrayTypeName","src":"18140:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18136:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18096:66:81"},{"assignments":[52706],"declarations":[{"constant":false,"id":52706,"mutability":"mutable","name":"regCutFacet","nameLocation":"18189:11:81","nodeType":"VariableDeclaration","scope":52823,"src":"18173:27:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":52705,"nodeType":"UserDefinedTypeName","pathNode":{"id":52704,"name":"DiamondCutFacet","nameLocations":["18173:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"18173:15:81"},"referencedDeclaration":36477,"src":"18173:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":52711,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18203:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52708,"nodeType":"UserDefinedTypeName","pathNode":{"id":52707,"name":"DiamondCutFacet","nameLocations":["18207:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"18207:15:81"},"referencedDeclaration":36477,"src":"18207:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18203:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"18173:51:81"},{"assignments":[52714],"declarations":[{"constant":false,"id":52714,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"18252:13:81","nodeType":"VariableDeclaration","scope":52823,"src":"18234:31:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"DiamondLoupeFacet","nameLocations":["18234:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"18234:17:81"},"referencedDeclaration":36914,"src":"18234:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":52719,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18268:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52716,"nodeType":"UserDefinedTypeName","pathNode":{"id":52715,"name":"DiamondLoupeFacet","nameLocations":["18272:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"18272:17:81"},"referencedDeclaration":36914,"src":"18272:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18268:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"18234:57:81"},{"assignments":[52722],"declarations":[{"constant":false,"id":52722,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"18321:14:81","nodeType":"VariableDeclaration","scope":52823,"src":"18301:34:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52721,"nodeType":"UserDefinedTypeName","pathNode":{"id":52720,"name":"RegisterSubnetFacet","nameLocations":["18301:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"18301:19:81"},"referencedDeclaration":51075,"src":"18301:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":52727,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18338:23:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$51075_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":52724,"nodeType":"UserDefinedTypeName","pathNode":{"id":52723,"name":"RegisterSubnetFacet","nameLocations":["18342:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"18342:19:81"},"referencedDeclaration":51075,"src":"18342:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}}},"id":52726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18338:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"18301:62:81"},{"assignments":[52730],"declarations":[{"constant":false,"id":52730,"mutability":"mutable","name":"regGetterFacet","nameLocation":"18391:14:81","nodeType":"VariableDeclaration","scope":52823,"src":"18373:32:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52729,"nodeType":"UserDefinedTypeName","pathNode":{"id":52728,"name":"SubnetGetterFacet","nameLocations":["18373:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"18373:17:81"},"referencedDeclaration":51313,"src":"18373:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":52735,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18408:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$51313_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":52732,"nodeType":"UserDefinedTypeName","pathNode":{"id":52731,"name":"SubnetGetterFacet","nameLocations":["18412:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"18412:17:81"},"referencedDeclaration":51313,"src":"18412:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}}},"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18408:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"18373:58:81"},{"expression":{"id":52751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52736,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"18442:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52738,"indexExpression":{"hexValue":"30","id":52737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18453:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18442:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52743,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52714,"src":"18530:13:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18522:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52741,"name":"address","nodeType":"ElementaryTypeName","src":"18522:7:81","typeDescriptions":{}}},"id":52744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18522:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52745,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18570:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18579:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"18570:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18594:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"18570:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52748,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51485,"src":"18634:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52739,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18472:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18481:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"18472:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18508:12:81","18562:6:81","18615:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18472:200:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52750,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18458:224:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18442:240:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52752,"nodeType":"ExpressionStatement","src":"18442:240:81"},{"expression":{"id":52768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52753,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"18692:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52755,"indexExpression":{"hexValue":"31","id":52754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18703:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18692:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52760,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52706,"src":"18780:11:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18772:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52758,"name":"address","nodeType":"ElementaryTypeName","src":"18772:7:81","typeDescriptions":{}}},"id":52761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18772:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52762,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18818:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18827:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"18818:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18842:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"18818:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52765,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51482,"src":"18882:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52756,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18722:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18731:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"18722:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18758:12:81","18810:6:81","18863:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18722:198:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52767,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18708:222:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18692:238:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52769,"nodeType":"ExpressionStatement","src":"18692:238:81"},{"expression":{"id":52785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52770,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"18940:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52772,"indexExpression":{"hexValue":"32","id":52771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18951:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18940:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52777,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52722,"src":"19028:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}],"id":52776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19020:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52775,"name":"address","nodeType":"ElementaryTypeName","src":"19020:7:81","typeDescriptions":{}}},"id":52778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19020:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52779,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"19069:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19078:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"19069:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19093:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"19069:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52782,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51476,"src":"19133:28:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52773,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18970:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18979:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"18970:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19006:12:81","19061:6:81","19114:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18970:206:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52784,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18956:230:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18940:246:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52786,"nodeType":"ExpressionStatement","src":"18940:246:81"},{"expression":{"id":52802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52787,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"19196:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52789,"indexExpression":{"hexValue":"33","id":52788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19207:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19196:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52794,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52730,"src":"19284:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}],"id":52793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19276:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52792,"name":"address","nodeType":"ElementaryTypeName","src":"19276:7:81","typeDescriptions":{}}},"id":52795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19276:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52796,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"19325:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19334:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"19325:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19349:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"19325:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52799,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51479,"src":"19389:34:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52790,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"19226:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19235:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"19226:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19262:12:81","19317:6:81","19370:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19226:212:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52801,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19212:236:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19196:252:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52803,"nodeType":"ExpressionStatement","src":"19196:252:81"},{"assignments":[52806],"declarations":[{"constant":false,"id":52806,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"19481:17:81","nodeType":"VariableDeclaration","scope":52823,"src":"19459:39:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52805,"nodeType":"UserDefinedTypeName","pathNode":{"id":52804,"name":"SubnetRegistryDiamond","nameLocations":["19459:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"19459:21:81"},"referencedDeclaration":36415,"src":"19459:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":52813,"initialValue":{"arguments":[{"id":52810,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"19527:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52811,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52685,"src":"19539:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":52809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19501:25:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36214_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36415_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":52808,"nodeType":"UserDefinedTypeName","pathNode":{"id":52807,"name":"SubnetRegistryDiamond","nameLocations":["19505:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"19505:21:81"},"referencedDeclaration":36415,"src":"19505:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}}},"id":52812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19501:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"19459:87:81"},{"eventCall":{"arguments":[{"arguments":[{"id":52817,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"19591:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}],"id":52816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19583:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52815,"name":"address","nodeType":"ElementaryTypeName","src":"19583:7:81","typeDescriptions":{}}},"id":52818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19583:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52814,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51822,"src":"19561:21:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":52819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19561:49:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52820,"nodeType":"EmitStatement","src":"19556:54:81"},{"expression":{"id":52821,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"19627:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":52690,"id":52822,"nodeType":"Return","src":"19620:24:81"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"17957:20:81","parameters":{"id":52686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52685,"mutability":"mutable","name":"params","nameLocation":"18034:6:81","nodeType":"VariableDeclaration","scope":52824,"src":"17987:53:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":52684,"nodeType":"UserDefinedTypeName","pathNode":{"id":52683,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["17987:21:81","18009:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36214,"src":"17987:39:81"},"referencedDeclaration":36214,"src":"17987:39:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"17977:69:81"},"returnParameters":{"id":52690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52824,"src":"18063:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52688,"nodeType":"UserDefinedTypeName","pathNode":{"id":52687,"name":"SubnetRegistryDiamond","nameLocations":["18063:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"18063:21:81"},"referencedDeclaration":36415,"src":"18063:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"18062:23:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52853,"nodeType":"FunctionDefinition","src":"19657:190:81","nodes":[],"body":{"id":52852,"nodeType":"Block","src":"19738:109:81","nodes":[],"statements":[{"body":{"id":52848,"nodeType":"Block","src":"19779:42:81","statements":[{"expression":{"id":52846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52842,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52830,"src":"19793:3:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":52843,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52827,"src":"19800:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52845,"indexExpression":{"id":52844,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52833,"src":"19808:1:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19800:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19793:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52847,"nodeType":"ExpressionStatement","src":"19793:17:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52836,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52833,"src":"19767:1:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":52837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19771:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"19767:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52849,"initializationExpression":{"assignments":[52833],"declarations":[{"constant":false,"id":52833,"mutability":"mutable","name":"i","nameLocation":"19760:1:81","nodeType":"VariableDeclaration","scope":52849,"src":"19753:8:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52832,"name":"uint64","nodeType":"ElementaryTypeName","src":"19753:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":52835,"initialValue":{"hexValue":"30","id":52834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19764:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"19753:12:81"},"loopExpression":{"expression":{"id":52840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19774:3:81","subExpression":{"id":52839,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52833,"src":"19774:1:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":52841,"nodeType":"ExpressionStatement","src":"19774:3:81"},"nodeType":"ForStatement","src":"19748:73:81"},{"expression":{"id":52850,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52830,"src":"19837:3:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":52831,"id":52851,"nodeType":"Return","src":"19830:10:81"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"19666:11:81","parameters":{"id":52828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52827,"mutability":"mutable","name":"weights","nameLocation":"19695:7:81","nodeType":"VariableDeclaration","scope":52853,"src":"19678:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":52825,"name":"uint256","nodeType":"ElementaryTypeName","src":"19678:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52826,"nodeType":"ArrayTypeName","src":"19678:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"19677:26:81"},"returnParameters":{"id":52831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52830,"mutability":"mutable","name":"sum","nameLocation":"19733:3:81","nodeType":"VariableDeclaration","scope":52853,"src":"19725:11:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52829,"name":"uint256","nodeType":"ElementaryTypeName","src":"19725:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19724:13:81"},"scope":54008,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":53028,"nodeType":"FunctionDefinition","src":"19853:919:81","nodes":[],"body":{"id":53027,"nodeType":"Block","src":"19956:816:81","nodes":[],"statements":[{"expression":{"id":52870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52863,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"19966:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":52868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19996:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":52867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19979:16:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":52865,"nodeType":"UserDefinedTypeName","pathNode":{"id":52864,"name":"FvmAddress","nameLocations":["19983:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"19983:10:81"},"referencedDeclaration":48476,"src":"19983:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":52866,"nodeType":"ArrayTypeName","src":"19983:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":52869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19979:19:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"19966:32:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52871,"nodeType":"ExpressionStatement","src":"19966:32:81"},{"expression":{"id":52882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52872,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"20008:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52874,"indexExpression":{"hexValue":"30","id":52873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20019:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20008:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":52879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20054:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":52877,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20046:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20049:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20046:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20046:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52875,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"20024:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":52876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20041:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"20024:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":52881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20024:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"20008:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":52883,"nodeType":"ExpressionStatement","src":"20008:51:81"},{"expression":{"id":52894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52884,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"20069:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52886,"indexExpression":{"hexValue":"31","id":52885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20080:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20069:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":52891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20115:3:81","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":52889,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20107:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20110:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20107:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20107:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52887,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"20085:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":52888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20102:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"20085:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":52893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20085:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"20069:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":52895,"nodeType":"ExpressionStatement","src":"20069:51:81"},{"expression":{"id":52906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52896,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"20130:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52898,"indexExpression":{"hexValue":"32","id":52897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20141:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20130:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":52903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20176:3:81","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":52901,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20168:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20171:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20168:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20168:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52899,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"20146:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":52900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20163:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"20146:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":52905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20146:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"20130:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":52907,"nodeType":"ExpressionStatement","src":"20130:51:81"},{"expression":{"id":52914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52908,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20192:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":52912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20218:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":52911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20204:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52909,"name":"address","nodeType":"ElementaryTypeName","src":"20208:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52910,"nodeType":"ArrayTypeName","src":"20208:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20204:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"20192:28:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52915,"nodeType":"ExpressionStatement","src":"20192:28:81"},{"expression":{"id":52923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52916,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20230:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52918,"indexExpression":{"hexValue":"30","id":52917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20240:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20230:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":52921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20253:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":52919,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20245:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20248:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20245:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20245:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20230:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52924,"nodeType":"ExpressionStatement","src":"20230:27:81"},{"expression":{"id":52932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52925,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20267:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52927,"indexExpression":{"hexValue":"31","id":52926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20277:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20267:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":52930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20290:3:81","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":52928,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20282:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20285:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20282:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20282:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20267:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52933,"nodeType":"ExpressionStatement","src":"20267:27:81"},{"expression":{"id":52941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52934,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20304:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52936,"indexExpression":{"hexValue":"32","id":52935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20314:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20304:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":52939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20327:3:81","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":52937,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20319:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20322:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20319:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20319:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20304:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52942,"nodeType":"ExpressionStatement","src":"20304:27:81"},{"assignments":[52947],"declarations":[{"constant":false,"id":52947,"mutability":"mutable","name":"weights","nameLocation":"20359:7:81","nodeType":"VariableDeclaration","scope":53027,"src":"20342:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":52945,"name":"uint256","nodeType":"ElementaryTypeName","src":"20342:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52946,"nodeType":"ArrayTypeName","src":"20342:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":52953,"initialValue":{"arguments":[{"hexValue":"33","id":52951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20383:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":52950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20369:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":52948,"name":"uint256","nodeType":"ElementaryTypeName","src":"20373:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52949,"nodeType":"ArrayTypeName","src":"20373:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":52952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20369:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20342:43:81"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":52959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20412:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":52957,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20404:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20407:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20404:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":52961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20418:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":52954,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20396:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20399:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"20396:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":52962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20396:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52963,"nodeType":"ExpressionStatement","src":"20396:24:81"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":52969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20446:3:81","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":52967,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20438:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20441:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20438:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20438:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":52971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20452:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":52964,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20430:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20433:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"20430:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":52972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20430:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52973,"nodeType":"ExpressionStatement","src":"20430:24:81"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":52979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20480:3:81","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":52977,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20472:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20475:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20472:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20472:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":52981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20486:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":52974,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20464:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20467:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"20464:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20464:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52983,"nodeType":"ExpressionStatement","src":"20464:24:81"},{"expression":{"id":52988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52984,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"20499:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52986,"indexExpression":{"hexValue":"30","id":52985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20507:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20499:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":52987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20512:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20499:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52989,"nodeType":"ExpressionStatement","src":"20499:16:81"},{"expression":{"id":52994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52990,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"20525:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52992,"indexExpression":{"hexValue":"31","id":52991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20533:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20525:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":52993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20538:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20525:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52995,"nodeType":"ExpressionStatement","src":"20525:16:81"},{"expression":{"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52996,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"20551:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52998,"indexExpression":{"hexValue":"32","id":52997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20559:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20551:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":52999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20564:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20551:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53001,"nodeType":"ExpressionStatement","src":"20551:16:81"},{"assignments":[53004],"declarations":[{"constant":false,"id":53004,"mutability":"mutable","name":"finality","nameLocation":"20600:8:81","nodeType":"VariableDeclaration","scope":53027,"src":"20578:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":53003,"nodeType":"UserDefinedTypeName","pathNode":{"id":53002,"name":"ParentFinality","nameLocations":["20578:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"20578:14:81"},"referencedDeclaration":48396,"src":"20578:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":53013,"initialValue":{"arguments":[{"expression":{"id":53006,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20635:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":53007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20641:6:81","memberName":"number","nodeType":"MemberAccess","src":"20635:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":53010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20668:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20660:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":53008,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20660:7:81","typeDescriptions":{}}},"id":53011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20660:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53005,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"20611:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$48396_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":53012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20627:6:81","20649:9:81"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"20611:61:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"20578:94:81"},{"expression":{"arguments":[{"expression":{"id":53017,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"20692:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":53018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20703:12:81","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"20692:23:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53014,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20683:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20686:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"20683:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20683:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53020,"nodeType":"ExpressionStatement","src":"20683:33:81"},{"expression":{"arguments":[{"id":53024,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53004,"src":"20756:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":53021,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"20726:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20735:20:81","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39027,"src":"20726:29:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$48396_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":53025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20726:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":53026,"nodeType":"ExpressionStatement","src":"20726:39:81"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"19862:15:81","parameters":{"id":52854,"nodeType":"ParameterList","parameters":[],"src":"19877:2:81"},"returnParameters":{"id":52862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52858,"mutability":"mutable","name":"validators","nameLocation":"19916:10:81","nodeType":"VariableDeclaration","scope":53028,"src":"19896:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":52856,"nodeType":"UserDefinedTypeName","pathNode":{"id":52855,"name":"FvmAddress","nameLocations":["19896:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"19896:10:81"},"referencedDeclaration":48476,"src":"19896:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":52857,"nodeType":"ArrayTypeName","src":"19896:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":52861,"mutability":"mutable","name":"addresses","nameLocation":"19945:9:81","nodeType":"VariableDeclaration","scope":53028,"src":"19928:26:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":52859,"name":"address","nodeType":"ElementaryTypeName","src":"19928:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52860,"nodeType":"ArrayTypeName","src":"19928:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"19895:60:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53121,"nodeType":"FunctionDefinition","src":"20778:1285:81","nodes":[],"body":{"id":53120,"nodeType":"Block","src":"20862:1201:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53038,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"20887:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53039,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53032,"src":"20914:3:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":53037,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53898,"src":"20872:14:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":53040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20872:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53041,"nodeType":"ExpressionStatement","src":"20872:46:81"},{"assignments":[53044],"declarations":[{"constant":false,"id":53044,"mutability":"mutable","name":"crossMsg","nameLocation":"20945:8:81","nodeType":"VariableDeclaration","scope":53120,"src":"20929:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":53043,"nodeType":"UserDefinedTypeName","pathNode":{"id":53042,"name":"CrossMsg","nameLocations":["20929:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"20929:8:81"},"referencedDeclaration":48452,"src":"20929:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":53084,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":53052,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53030,"src":"21108:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53048,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"21067:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21076:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"21067:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21093:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"21067:40:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:48:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":53056,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53030,"src":"21171:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53054,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"21149:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21166:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"21149:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21149:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"id":53047,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"21024:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$48687_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":53058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21057:8:81","21137:10:81"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"21024:173:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":53064,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53032,"src":"21303:3:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53060,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"21262:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21271:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"21262:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21262:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21288:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"21262:40:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21262:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":53068,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53032,"src":"21363:3:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53066,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"21341:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21358:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"21341:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21341:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"id":53059,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"21219:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$48687_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":53070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21252:8:81","21329:10:81"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"21219:167:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":53071,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"21411:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21435:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21411:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":53074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21461:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":53075,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"21488:11:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":53078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21535:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21525:9:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":53076,"name":"bytes","nodeType":"ElementaryTypeName","src":"21529:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":53079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21525:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":53080,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"21560:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53046,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"20988:11:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$48469_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":53081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21018:4:81","21215:2:81","21404:5:81","21454:5:81","21480:6:81","21517:6:81","21555:3:81"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"20988:608:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":53082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21619:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":53045,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"20956:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$48452_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":53083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20979:7:81","21610:7:81"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"20956:679:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"20929:706:81"},{"assignments":[53089],"declarations":[{"constant":false,"id":53089,"mutability":"mutable","name":"msgs","nameLocation":"21663:4:81","nodeType":"VariableDeclaration","scope":53120,"src":"21645:22:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":53087,"nodeType":"UserDefinedTypeName","pathNode":{"id":53086,"name":"CrossMsg","nameLocations":["21645:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"21645:8:81"},"referencedDeclaration":48452,"src":"21645:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":53088,"nodeType":"ArrayTypeName","src":"21645:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":53096,"initialValue":{"arguments":[{"hexValue":"31","id":53094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21685:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21670:14:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":53091,"nodeType":"UserDefinedTypeName","pathNode":{"id":53090,"name":"CrossMsg","nameLocations":["21674:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"21674:8:81"},"referencedDeclaration":48452,"src":"21674:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":53092,"nodeType":"ArrayTypeName","src":"21674:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":53095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21670:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"21645:42:81"},{"expression":{"id":53101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53097,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53089,"src":"21697:4:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":53099,"indexExpression":{"hexValue":"30","id":53098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21702:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21697:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53100,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53044,"src":"21707:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"21697:18:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":53102,"nodeType":"ExpressionStatement","src":"21697:18:81"},{"expression":{"arguments":[{"expression":{"id":53106,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"21954:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":53107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21965:12:81","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"21954:23:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53103,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"21945:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21948:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"21945:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21945:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53109,"nodeType":"ExpressionStatement","src":"21945:33:81"},{"expression":{"arguments":[{"id":53113,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53089,"src":"22016:4:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":53110,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"21988:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21997:18:81","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":39187,"src":"21988:27:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":53114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21988:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53115,"nodeType":"ExpressionStatement","src":"21988:33:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53116,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53044,"src":"22039:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":53117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22048:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40132,"src":"22039:15:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$48452_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$48452_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":53118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22039:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":53036,"id":53119,"nodeType":"Return","src":"22032:24:81"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"20787:20:81","parameters":{"id":53033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53030,"mutability":"mutable","name":"caller","nameLocation":"20816:6:81","nodeType":"VariableDeclaration","scope":53121,"src":"20808:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53029,"name":"address","nodeType":"ElementaryTypeName","src":"20808:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53032,"mutability":"mutable","name":"src","nameLocation":"20832:3:81","nodeType":"VariableDeclaration","scope":53121,"src":"20824:11:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53031,"name":"address","nodeType":"ElementaryTypeName","src":"20824:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20807:29:81"},"returnParameters":{"id":53036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53121,"src":"20853:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20853:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20852:9:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53132,"nodeType":"FunctionDefinition","src":"22069:93:81","nodes":[],"body":{"id":53131,"nodeType":"Block","src":"22117:45:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53127,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53123,"src":"22140:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22151:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53126,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[53132,53215],"referencedDeclaration":53215,"src":"22127:12:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22127:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53130,"nodeType":"ExpressionStatement","src":"22127:28:81"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"22078:12:81","parameters":{"id":53124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53123,"mutability":"mutable","name":"validator","nameLocation":"22099:9:81","nodeType":"VariableDeclaration","scope":53132,"src":"22091:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53122,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22090:19:81"},"returnParameters":{"id":53125,"nodeType":"ParameterList","parameters":[],"src":"22117:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53215,"nodeType":"FunctionDefinition","src":"22168:596:81","nodes":[],"body":{"id":53214,"nodeType":"Block","src":"22232:532:81","nodes":[],"statements":[{"assignments":[53143],"declarations":[{"constant":false,"id":53143,"mutability":"mutable","name":"validators","nameLocation":"22262:10:81","nodeType":"VariableDeclaration","scope":53214,"src":"22242:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":53141,"nodeType":"UserDefinedTypeName","pathNode":{"id":53140,"name":"FvmAddress","nameLocations":["22242:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"22242:10:81"},"referencedDeclaration":48476,"src":"22242:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":53142,"nodeType":"ArrayTypeName","src":"22242:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":53150,"initialValue":{"arguments":[{"hexValue":"31","id":53148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22292:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22275:16:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":53145,"nodeType":"UserDefinedTypeName","pathNode":{"id":53144,"name":"FvmAddress","nameLocations":["22279:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"22279:10:81"},"referencedDeclaration":48476,"src":"22279:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":53146,"nodeType":"ArrayTypeName","src":"22279:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":53149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22275:19:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22242:52:81"},{"expression":{"id":53158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53151,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53143,"src":"22304:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":53153,"indexExpression":{"hexValue":"30","id":53152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22315:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22304:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53156,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53134,"src":"22342:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53154,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"22320:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22337:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"22320:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22320:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22304:48:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":53159,"nodeType":"ExpressionStatement","src":"22304:48:81"},{"assignments":[53164],"declarations":[{"constant":false,"id":53164,"mutability":"mutable","name":"weights","nameLocation":"22379:7:81","nodeType":"VariableDeclaration","scope":53214,"src":"22362:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53162,"name":"uint256","nodeType":"ElementaryTypeName","src":"22362:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53163,"nodeType":"ArrayTypeName","src":"22362:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53170,"initialValue":{"arguments":[{"hexValue":"31","id":53168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22403:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22389:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53165,"name":"uint256","nodeType":"ElementaryTypeName","src":"22393:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53166,"nodeType":"ArrayTypeName","src":"22393:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22389:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22362:43:81"},{"expression":{"id":53175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53171,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53164,"src":"22415:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53173,"indexExpression":{"hexValue":"30","id":53172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22423:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22415:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53174,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53136,"src":"22428:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22415:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53176,"nodeType":"ExpressionStatement","src":"22415:19:81"},{"expression":{"arguments":[{"id":53180,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53134,"src":"22453:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":53181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22464:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":53177,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22445:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22448:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22445:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22445:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53183,"nodeType":"ExpressionStatement","src":"22445:21:81"},{"assignments":[53186],"declarations":[{"constant":false,"id":53186,"mutability":"mutable","name":"finality","nameLocation":"22498:8:81","nodeType":"VariableDeclaration","scope":53214,"src":"22476:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":53185,"nodeType":"UserDefinedTypeName","pathNode":{"id":53184,"name":"ParentFinality","nameLocations":["22476:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"22476:14:81"},"referencedDeclaration":48396,"src":"22476:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":53195,"initialValue":{"arguments":[{"expression":{"id":53188,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22533:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":53189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22539:6:81","memberName":"number","nodeType":"MemberAccess","src":"22533:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":53192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22566:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22558:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":53190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22558:7:81","typeDescriptions":{}}},"id":53193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22558:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53187,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"22509:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$48396_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":53194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["22525:6:81","22547:9:81"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"22509:61:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"22476:94:81"},{"expression":{"arguments":[{"expression":{"id":53199,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"22660:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":53200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22671:12:81","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"22660:23:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53196,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22646:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22649:10:81","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"22646:13:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22646:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53202,"nodeType":"ExpressionStatement","src":"22646:38:81"},{"expression":{"arguments":[{"id":53206,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53186,"src":"22724:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":53203,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"22694:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22703:20:81","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39027,"src":"22694:29:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$48396_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":53207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22694:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":53208,"nodeType":"ExpressionStatement","src":"22694:39:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53209,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22743:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22746:9:81","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"22743:12:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":53212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22743:14:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53213,"nodeType":"ExpressionStatement","src":"22743:14:81"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"22177:12:81","parameters":{"id":53137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53134,"mutability":"mutable","name":"validator","nameLocation":"22198:9:81","nodeType":"VariableDeclaration","scope":53215,"src":"22190:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53133,"name":"address","nodeType":"ElementaryTypeName","src":"22190:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53136,"mutability":"mutable","name":"weight","nameLocation":"22217:6:81","nodeType":"VariableDeclaration","scope":53215,"src":"22209:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53135,"name":"uint256","nodeType":"ElementaryTypeName","src":"22209:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22189:35:81"},"returnParameters":{"id":53138,"nodeType":"ParameterList","parameters":[],"src":"22232:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53228,"nodeType":"FunctionDefinition","src":"22770:112:81","nodes":[],"body":{"id":53227,"nodeType":"Block","src":"22814:68:81","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":53223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22836:30:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":53224,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53217,"src":"22868:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53220,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"22824:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22832:3:81","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"22824:11:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":53225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22824:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53226,"nodeType":"ExpressionStatement","src":"22824:51:81"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"22779:6:81","parameters":{"id":53218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53217,"mutability":"mutable","name":"amount","nameLocation":"22794:6:81","nodeType":"VariableDeclaration","scope":53228,"src":"22786:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53216,"name":"uint256","nodeType":"ElementaryTypeName","src":"22786:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22785:16:81"},"returnParameters":{"id":53219,"nodeType":"ParameterList","parameters":[],"src":"22814:0:81"},"scope":54008,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":53327,"nodeType":"FunctionDefinition","src":"22888:968:81","nodes":[],"body":{"id":53326,"nodeType":"Block","src":"22952:904:81","nodes":[],"statements":[{"assignments":[53237,null,53239,null,53241,null],"declarations":[{"constant":false,"id":53237,"mutability":"mutable","name":"subnetId","nameLocation":"23044:8:81","nodeType":"VariableDeclaration","scope":53326,"src":"23028:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53236,"nodeType":"UserDefinedTypeName","pathNode":{"id":53235,"name":"SubnetID","nameLocations":["23028:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"23028:8:81"},"referencedDeclaration":48557,"src":"23028:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":53239,"mutability":"mutable","name":"nonceBefore","nameLocation":"23064:11:81","nodeType":"VariableDeclaration","scope":53326,"src":"23056:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53238,"name":"uint256","nodeType":"ElementaryTypeName","src":"23056:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":53241,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"23087:16:81","nodeType":"VariableDeclaration","scope":53326,"src":"23079:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53240,"name":"uint256","nodeType":"ElementaryTypeName","src":"23079:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":53248,"initialValue":{"arguments":[{"arguments":[{"id":53245,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"23127:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":53244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23119:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53243,"name":"address","nodeType":"ElementaryTypeName","src":"23119:7:81","typeDescriptions":{}}},"id":53246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23119:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53242,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"23109:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23109:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"23027:111:81"},{"assignments":[53250],"declarations":[{"constant":false,"id":53250,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"23157:25:81","nodeType":"VariableDeclaration","scope":53326,"src":"23149:33:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53249,"name":"uint256","nodeType":"ElementaryTypeName","src":"23149:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53257,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":53253,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53237,"src":"23221:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":53251,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"23185:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23194:26:81","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37318,"src":"23185:35:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":53254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23185:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23233:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23185:49:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23149:85:81"},{"assignments":[53259],"declarations":[{"constant":false,"id":53259,"mutability":"mutable","name":"expectedNonce","nameLocation":"23252:13:81","nodeType":"VariableDeclaration","scope":53326,"src":"23244:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53258,"name":"uint256","nodeType":"ElementaryTypeName","src":"23244:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53263,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53260,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53239,"src":"23268:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23282:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23268:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23244:39:81"},{"assignments":[53265],"declarations":[{"constant":false,"id":53265,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"23301:18:81","nodeType":"VariableDeclaration","scope":53326,"src":"23293:26:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53264,"name":"uint256","nodeType":"ElementaryTypeName","src":"23293:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53269,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53266,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53241,"src":"23322:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":53267,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53232,"src":"23341:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23322:29:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23293:58:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53271,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"23370:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23379:11:81","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37148,"src":"23370:20:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23370:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":53274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23395:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23370:26:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":53276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23398:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":53270,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23362:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23362:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53278,"nodeType":"ExpressionStatement","src":"23362:55:81"},{"expression":{"arguments":[{"id":53284,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53237,"src":"23462:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":53287,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"23494:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53285,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"23472:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23489:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"23472:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23472:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":53279,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"23428:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23438:4:81","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38311,"src":"23428:14:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":53283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53282,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53232,"src":"23450:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"23428:33:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23428:81:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53290,"nodeType":"ExpressionStatement","src":"23428:81:81"},{"assignments":[null,null,53292,null,53294,null],"declarations":[null,null,{"constant":false,"id":53292,"mutability":"mutable","name":"nonce","nameLocation":"23533:5:81","nodeType":"VariableDeclaration","scope":53326,"src":"23525:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53291,"name":"uint256","nodeType":"ElementaryTypeName","src":"23525:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":53294,"mutability":"mutable","name":"circSupply","nameLocation":"23550:10:81","nodeType":"VariableDeclaration","scope":53326,"src":"23542:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53293,"name":"uint256","nodeType":"ElementaryTypeName","src":"23542:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":53301,"initialValue":{"arguments":[{"arguments":[{"id":53298,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"23584:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":53297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23576:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53296,"name":"address","nodeType":"ElementaryTypeName","src":"23576:7:81","typeDescriptions":{}}},"id":53299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23576:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53295,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"23566:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23566:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"23520:75:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":53305,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53237,"src":"23650:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":53303,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"23614:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23623:26:81","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37318,"src":"23614:35:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":53306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23614:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53307,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53250,"src":"23663:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23614:74:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":53309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23690:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":53302,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23606:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23606:105:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53311,"nodeType":"ExpressionStatement","src":"23606:105:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53313,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53292,"src":"23730:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53314,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53259,"src":"23739:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23730:22:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":53316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23754:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":53312,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23722:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23722:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53318,"nodeType":"ExpressionStatement","src":"23722:51:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53320,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53294,"src":"23791:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53321,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53265,"src":"23805:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23791:32:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":53323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23825:23:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":53319,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23783:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23783:66:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53325,"nodeType":"ExpressionStatement","src":"23783:66:81"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"22897:4:81","parameters":{"id":53233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53230,"mutability":"mutable","name":"funderAddress","nameLocation":"22910:13:81","nodeType":"VariableDeclaration","scope":53327,"src":"22902:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53229,"name":"address","nodeType":"ElementaryTypeName","src":"22902:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53232,"mutability":"mutable","name":"fundAmount","nameLocation":"22933:10:81","nodeType":"VariableDeclaration","scope":53327,"src":"22925:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53231,"name":"uint256","nodeType":"ElementaryTypeName","src":"22925:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22901:43:81"},"returnParameters":{"id":53234,"nodeType":"ParameterList","parameters":[],"src":"22952:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53358,"nodeType":"FunctionDefinition","src":"23862:243:81","nodes":[],"body":{"id":53357,"nodeType":"Block","src":"23930:175:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53337,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53329,"src":"23949:16:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53334,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23940:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23943:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"23940:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23940:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53339,"nodeType":"ExpressionStatement","src":"23940:26:81"},{"expression":{"arguments":[{"id":53343,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53329,"src":"23984:16:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":53346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":53344,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"24002:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24030:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24002:29:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":53340,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23976:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23979:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"23976:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23976:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53348,"nodeType":"ExpressionStatement","src":"23976:56:81"},{"expression":{"arguments":[{"id":53354,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53331,"src":"24091:6:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":53349,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"24042:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":53351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24052:4:81","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"24042:14:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":53353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53352,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"24064:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"24042:48:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":53355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24042:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53356,"nodeType":"ExpressionStatement","src":"24042:56:81"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"23871:4:81","parameters":{"id":53332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53329,"mutability":"mutable","name":"validatorAddress","nameLocation":"23884:16:81","nodeType":"VariableDeclaration","scope":53358,"src":"23876:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53328,"name":"address","nodeType":"ElementaryTypeName","src":"23876:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53331,"mutability":"mutable","name":"pubkey","nameLocation":"23915:6:81","nodeType":"VariableDeclaration","scope":53358,"src":"23902:19:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53330,"name":"bytes","nodeType":"ElementaryTypeName","src":"23902:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"23875:47:81"},"returnParameters":{"id":53333,"nodeType":"ParameterList","parameters":[],"src":"23930:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53405,"nodeType":"FunctionDefinition","src":"24111:298:81","nodes":[],"body":{"id":53404,"nodeType":"Block","src":"24179:230:81","nodes":[],"statements":[{"assignments":[53369],"declarations":[{"constant":false,"id":53369,"mutability":"mutable","name":"validators","nameLocation":"24206:10:81","nodeType":"VariableDeclaration","scope":53404,"src":"24189:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53367,"name":"address","nodeType":"ElementaryTypeName","src":"24189:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53368,"nodeType":"ArrayTypeName","src":"24189:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53375,"initialValue":{"arguments":[{"hexValue":"31","id":53373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24233:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24219:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53370,"name":"address","nodeType":"ElementaryTypeName","src":"24223:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53371,"nodeType":"ArrayTypeName","src":"24223:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24219:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24189:46:81"},{"expression":{"id":53380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53376,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53369,"src":"24245:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53378,"indexExpression":{"hexValue":"30","id":53377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24256:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24245:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53379,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53360,"src":"24261:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24245:25:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53381,"nodeType":"ExpressionStatement","src":"24245:25:81"},{"assignments":[53386],"declarations":[{"constant":false,"id":53386,"mutability":"mutable","name":"privKeys","nameLocation":"24298:8:81","nodeType":"VariableDeclaration","scope":53404,"src":"24281:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53384,"name":"uint256","nodeType":"ElementaryTypeName","src":"24281:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53385,"nodeType":"ArrayTypeName","src":"24281:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53392,"initialValue":{"arguments":[{"hexValue":"31","id":53390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24323:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24309:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53387,"name":"uint256","nodeType":"ElementaryTypeName","src":"24313:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53388,"nodeType":"ArrayTypeName","src":"24313:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24309:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24281:44:81"},{"expression":{"id":53397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53393,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53386,"src":"24335:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53395,"indexExpression":{"hexValue":"30","id":53394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24344:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24335:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53396,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53362,"src":"24349:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24335:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53398,"nodeType":"ExpressionStatement","src":"24335:21:81"},{"expression":{"arguments":[{"id":53400,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53369,"src":"24381:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53401,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53386,"src":"24393:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":53399,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[53405,53468,53547,53698],"referencedDeclaration":53698,"src":"24367:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":53402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24367:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53403,"nodeType":"ExpressionStatement","src":"24367:35:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24120:13:81","parameters":{"id":53363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53360,"mutability":"mutable","name":"validator","nameLocation":"24142:9:81","nodeType":"VariableDeclaration","scope":53405,"src":"24134:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53359,"name":"address","nodeType":"ElementaryTypeName","src":"24134:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53362,"mutability":"mutable","name":"privKey","nameLocation":"24161:7:81","nodeType":"VariableDeclaration","scope":53405,"src":"24153:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53361,"name":"uint256","nodeType":"ElementaryTypeName","src":"24153:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24133:36:81"},"returnParameters":{"id":53364,"nodeType":"ParameterList","parameters":[],"src":"24179:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53468,"nodeType":"FunctionDefinition","src":"24415:408:81","nodes":[],"body":{"id":53467,"nodeType":"Block","src":"24523:300:81","nodes":[],"statements":[{"assignments":[53420],"declarations":[{"constant":false,"id":53420,"mutability":"mutable","name":"validators","nameLocation":"24550:10:81","nodeType":"VariableDeclaration","scope":53467,"src":"24533:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53418,"name":"address","nodeType":"ElementaryTypeName","src":"24533:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53419,"nodeType":"ArrayTypeName","src":"24533:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53426,"initialValue":{"arguments":[{"hexValue":"32","id":53424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24577:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24563:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53421,"name":"address","nodeType":"ElementaryTypeName","src":"24567:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53422,"nodeType":"ArrayTypeName","src":"24567:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24563:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24533:46:81"},{"expression":{"id":53431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53427,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53420,"src":"24589:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53429,"indexExpression":{"hexValue":"30","id":53428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24600:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24589:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53430,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53407,"src":"24605:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24589:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53432,"nodeType":"ExpressionStatement","src":"24589:26:81"},{"expression":{"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53433,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53420,"src":"24625:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53435,"indexExpression":{"hexValue":"31","id":53434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24636:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24625:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53436,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53411,"src":"24641:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24625:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53438,"nodeType":"ExpressionStatement","src":"24625:26:81"},{"assignments":[53443],"declarations":[{"constant":false,"id":53443,"mutability":"mutable","name":"privKeys","nameLocation":"24679:8:81","nodeType":"VariableDeclaration","scope":53467,"src":"24662:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53441,"name":"uint256","nodeType":"ElementaryTypeName","src":"24662:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53442,"nodeType":"ArrayTypeName","src":"24662:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53449,"initialValue":{"arguments":[{"hexValue":"32","id":53447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24704:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24690:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53444,"name":"uint256","nodeType":"ElementaryTypeName","src":"24694:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53445,"nodeType":"ArrayTypeName","src":"24694:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24690:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24662:44:81"},{"expression":{"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53450,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"24716:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53452,"indexExpression":{"hexValue":"30","id":53451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24725:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24716:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53453,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53409,"src":"24730:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24716:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53455,"nodeType":"ExpressionStatement","src":"24716:22:81"},{"expression":{"id":53460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53456,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"24748:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53458,"indexExpression":{"hexValue":"31","id":53457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24757:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24748:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53459,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53413,"src":"24762:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24748:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53461,"nodeType":"ExpressionStatement","src":"24748:22:81"},{"expression":{"arguments":[{"id":53463,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53420,"src":"24795:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53464,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"24807:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":53462,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[53405,53468,53547,53698],"referencedDeclaration":53698,"src":"24781:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":53465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24781:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53466,"nodeType":"ExpressionStatement","src":"24781:35:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24424:13:81","parameters":{"id":53414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53407,"mutability":"mutable","name":"validator1","nameLocation":"24446:10:81","nodeType":"VariableDeclaration","scope":53468,"src":"24438:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53406,"name":"address","nodeType":"ElementaryTypeName","src":"24438:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53409,"mutability":"mutable","name":"privKey1","nameLocation":"24466:8:81","nodeType":"VariableDeclaration","scope":53468,"src":"24458:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53408,"name":"uint256","nodeType":"ElementaryTypeName","src":"24458:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53411,"mutability":"mutable","name":"validator2","nameLocation":"24484:10:81","nodeType":"VariableDeclaration","scope":53468,"src":"24476:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53410,"name":"address","nodeType":"ElementaryTypeName","src":"24476:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53413,"mutability":"mutable","name":"privKey2","nameLocation":"24504:8:81","nodeType":"VariableDeclaration","scope":53468,"src":"24496:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53412,"name":"uint256","nodeType":"ElementaryTypeName","src":"24496:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24437:76:81"},"returnParameters":{"id":53415,"nodeType":"ParameterList","parameters":[],"src":"24523:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53547,"nodeType":"FunctionDefinition","src":"24829:568:81","nodes":[],"body":{"id":53546,"nodeType":"Block","src":"25029:368:81","nodes":[],"statements":[{"assignments":[53487],"declarations":[{"constant":false,"id":53487,"mutability":"mutable","name":"validators","nameLocation":"25056:10:81","nodeType":"VariableDeclaration","scope":53546,"src":"25039:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53485,"name":"address","nodeType":"ElementaryTypeName","src":"25039:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53486,"nodeType":"ArrayTypeName","src":"25039:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53493,"initialValue":{"arguments":[{"hexValue":"33","id":53491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25083:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":53490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25069:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53488,"name":"address","nodeType":"ElementaryTypeName","src":"25073:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53489,"nodeType":"ArrayTypeName","src":"25073:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25069:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"25039:46:81"},{"expression":{"id":53498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53494,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25095:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53496,"indexExpression":{"hexValue":"30","id":53495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25106:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25095:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53497,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53470,"src":"25111:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25095:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53499,"nodeType":"ExpressionStatement","src":"25095:26:81"},{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53500,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25131:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53502,"indexExpression":{"hexValue":"31","id":53501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25142:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25131:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53503,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53474,"src":"25147:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25131:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53505,"nodeType":"ExpressionStatement","src":"25131:26:81"},{"expression":{"id":53510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53506,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25167:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53508,"indexExpression":{"hexValue":"32","id":53507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25178:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25167:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53509,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53478,"src":"25183:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25167:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53511,"nodeType":"ExpressionStatement","src":"25167:26:81"},{"assignments":[53516],"declarations":[{"constant":false,"id":53516,"mutability":"mutable","name":"privKeys","nameLocation":"25221:8:81","nodeType":"VariableDeclaration","scope":53546,"src":"25204:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53514,"name":"uint256","nodeType":"ElementaryTypeName","src":"25204:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53515,"nodeType":"ArrayTypeName","src":"25204:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53522,"initialValue":{"arguments":[{"hexValue":"33","id":53520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25246:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":53519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25232:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53517,"name":"uint256","nodeType":"ElementaryTypeName","src":"25236:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53518,"nodeType":"ArrayTypeName","src":"25236:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25232:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"25204:44:81"},{"expression":{"id":53527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53523,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25258:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53525,"indexExpression":{"hexValue":"30","id":53524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25267:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25258:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53526,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53472,"src":"25272:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25258:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53528,"nodeType":"ExpressionStatement","src":"25258:22:81"},{"expression":{"id":53533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53529,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25290:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53531,"indexExpression":{"hexValue":"31","id":53530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25299:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25290:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53532,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53476,"src":"25304:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25290:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53534,"nodeType":"ExpressionStatement","src":"25290:22:81"},{"expression":{"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53535,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25322:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53537,"indexExpression":{"hexValue":"32","id":53536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25331:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25322:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53538,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53480,"src":"25336:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25322:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53540,"nodeType":"ExpressionStatement","src":"25322:22:81"},{"expression":{"arguments":[{"id":53542,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25369:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53543,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25381:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":53541,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[53405,53468,53547,53698],"referencedDeclaration":53698,"src":"25355:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":53544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25355:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53545,"nodeType":"ExpressionStatement","src":"25355:35:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24838:13:81","parameters":{"id":53481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53470,"mutability":"mutable","name":"validator1","nameLocation":"24869:10:81","nodeType":"VariableDeclaration","scope":53547,"src":"24861:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53469,"name":"address","nodeType":"ElementaryTypeName","src":"24861:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53472,"mutability":"mutable","name":"privKey1","nameLocation":"24897:8:81","nodeType":"VariableDeclaration","scope":53547,"src":"24889:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53471,"name":"uint256","nodeType":"ElementaryTypeName","src":"24889:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53474,"mutability":"mutable","name":"validator2","nameLocation":"24923:10:81","nodeType":"VariableDeclaration","scope":53547,"src":"24915:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53473,"name":"address","nodeType":"ElementaryTypeName","src":"24915:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53476,"mutability":"mutable","name":"privKey2","nameLocation":"24951:8:81","nodeType":"VariableDeclaration","scope":53547,"src":"24943:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53475,"name":"uint256","nodeType":"ElementaryTypeName","src":"24943:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53478,"mutability":"mutable","name":"validator3","nameLocation":"24977:10:81","nodeType":"VariableDeclaration","scope":53547,"src":"24969:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53477,"name":"address","nodeType":"ElementaryTypeName","src":"24969:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53480,"mutability":"mutable","name":"privKey3","nameLocation":"25005:8:81","nodeType":"VariableDeclaration","scope":53547,"src":"24997:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53479,"name":"uint256","nodeType":"ElementaryTypeName","src":"24997:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24851:168:81"},"returnParameters":{"id":53482,"nodeType":"ParameterList","parameters":[],"src":"25029:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53698,"nodeType":"FunctionDefinition","src":"25403:1102:81","nodes":[],"body":{"id":53697,"nodeType":"Block","src":"25491:1014:81","nodes":[],"statements":[{"assignments":[53557],"declarations":[{"constant":false,"id":53557,"mutability":"mutable","name":"n","nameLocation":"25509:1:81","nodeType":"VariableDeclaration","scope":53697,"src":"25501:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53556,"name":"uint256","nodeType":"ElementaryTypeName","src":"25501:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53560,"initialValue":{"expression":{"id":53558,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53550,"src":"25513:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25524:6:81","memberName":"length","nodeType":"MemberAccess","src":"25513:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25501:29:81"},{"assignments":[53565],"declarations":[{"constant":false,"id":53565,"mutability":"mutable","name":"signatures","nameLocation":"25556:10:81","nodeType":"VariableDeclaration","scope":53697,"src":"25541:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":53563,"name":"bytes","nodeType":"ElementaryTypeName","src":"25541:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":53564,"nodeType":"ArrayTypeName","src":"25541:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":53571,"initialValue":{"arguments":[{"id":53569,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53557,"src":"25581:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25569:11:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":53566,"name":"bytes","nodeType":"ElementaryTypeName","src":"25573:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":53567,"nodeType":"ArrayTypeName","src":"25573:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25569:14:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"25541:42:81"},{"assignments":[53573,null],"declarations":[{"constant":false,"id":53573,"mutability":"mutable","name":"nextConfigNum","nameLocation":"25602:13:81","nodeType":"VariableDeclaration","scope":53697,"src":"25595:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53572,"name":"uint64","nodeType":"ElementaryTypeName","src":"25595:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":53577,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53574,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25621:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25630:23:81","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":48814,"src":"25621:32:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":53576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25621:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"25594:61:81"},{"assignments":[53579],"declarations":[{"constant":false,"id":53579,"mutability":"mutable","name":"h","nameLocation":"25674:1:81","nodeType":"VariableDeclaration","scope":53697,"src":"25666:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53578,"name":"uint256","nodeType":"ElementaryTypeName","src":"25666:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53587,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53580,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25678:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25687:28:81","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":48937,"src":"25678:37:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25678:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53583,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25720:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25729:19:81","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":48919,"src":"25720:28:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":53585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25720:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25678:72:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25666:84:81"},{"assignments":[53590],"declarations":[{"constant":false,"id":53590,"mutability":"mutable","name":"checkpoint","nameLocation":"25787:10:81","nodeType":"VariableDeclaration","scope":53697,"src":"25761:36:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":53589,"nodeType":"UserDefinedTypeName","pathNode":{"id":53588,"name":"BottomUpCheckpoint","nameLocations":["25761:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"25761:18:81"},"referencedDeclaration":48410,"src":"25761:18:81","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":53612,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":53598,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"25887:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":53597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25879:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53596,"name":"address","nodeType":"ElementaryTypeName","src":"25879:7:81","typeDescriptions":{}}},"id":53599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25879:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53592,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25843:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25852:9:81","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":48750,"src":"25843:18:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25843:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25864:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"25843:35:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25843:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53601,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53579,"src":"25925:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":53605,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53579,"src":"25972:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53603,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25961:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25965:6:81","memberName":"encode","nodeType":"MemberAccess","src":"25961:10:81","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25961:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53602,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"25951:9:81","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25951:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":53610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53608,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53573,"src":"26014:13:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":53609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26030:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26014:17:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":53591,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"25800:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$48410_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":53611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25833:8:81","25912:11:81","25940:9:81","25989:23:81"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"25800:242:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"25761:281:81"},{"expression":{"arguments":[{"arguments":[{"id":53618,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"26069:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":53617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26061:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53616,"name":"address","nodeType":"ElementaryTypeName","src":"26061:7:81","typeDescriptions":{}}},"id":53619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26061:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26081:9:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":53613,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26053:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26056:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26053:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26053:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53622,"nodeType":"ExpressionStatement","src":"26053:38:81"},{"assignments":[53624],"declarations":[{"constant":false,"id":53624,"mutability":"mutable","name":"hash","nameLocation":"26110:4:81","nodeType":"VariableDeclaration","scope":53697,"src":"26102:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26102:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":53631,"initialValue":{"arguments":[{"arguments":[{"id":53628,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53590,"src":"26138:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":53626,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26127:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26131:6:81","memberName":"encode","nodeType":"MemberAccess","src":"26127:10:81","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26127:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53625,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"26117:9:81","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26117:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26102:48:81"},{"body":{"id":53667,"nodeType":"Block","src":"26193:140:81","statements":[{"assignments":[53643,53645,53647],"declarations":[{"constant":false,"id":53643,"mutability":"mutable","name":"v","nameLocation":"26214:1:81","nodeType":"VariableDeclaration","scope":53667,"src":"26208:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53642,"name":"uint8","nodeType":"ElementaryTypeName","src":"26208:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53645,"mutability":"mutable","name":"r","nameLocation":"26225:1:81","nodeType":"VariableDeclaration","scope":53667,"src":"26217:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26217:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":53647,"mutability":"mutable","name":"s","nameLocation":"26236:1:81","nodeType":"VariableDeclaration","scope":53667,"src":"26228:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26228:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":53655,"initialValue":{"arguments":[{"baseExpression":{"id":53650,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53553,"src":"26249:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53652,"indexExpression":{"id":53651,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26258:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26249:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53653,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53624,"src":"26262:4:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":53648,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26241:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26244:4:81","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"26241:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26241:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"26207:60:81"},{"expression":{"id":53665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53656,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53565,"src":"26281:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":53658,"indexExpression":{"id":53657,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26292:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26281:13:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53661,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53645,"src":"26314:1:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":53662,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53647,"src":"26317:1:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":53663,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53643,"src":"26320:1:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":53659,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26297:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26301:12:81","memberName":"encodePacked","nodeType":"MemberAccess","src":"26297:16:81","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26297:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"26281:41:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":53666,"nodeType":"ExpressionStatement","src":"26281:41:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26181:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":53637,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53557,"src":"26185:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26181:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53668,"initializationExpression":{"assignments":[53633],"declarations":[{"constant":false,"id":53633,"mutability":"mutable","name":"i","nameLocation":"26174:1:81","nodeType":"VariableDeclaration","scope":53668,"src":"26166:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53632,"name":"uint256","nodeType":"ElementaryTypeName","src":"26166:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53635,"initialValue":{"hexValue":"30","id":53634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26178:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26166:13:81"},"loopExpression":{"expression":{"id":53640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26188:3:81","subExpression":{"id":53639,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26188:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53641,"nodeType":"ExpressionStatement","src":"26188:3:81"},"nodeType":"ForStatement","src":"26161:172:81"},{"body":{"id":53695,"nodeType":"Block","src":"26375:124:81","statements":[{"expression":{"arguments":[{"baseExpression":{"id":53682,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53550,"src":"26398:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53684,"indexExpression":{"id":53683,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53670,"src":"26409:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26398:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53679,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26389:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26392:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26389:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26389:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53686,"nodeType":"ExpressionStatement","src":"26389:23:81"},{"expression":{"arguments":[{"id":53690,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53590,"src":"26453:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":53691,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53550,"src":"26465:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53692,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53565,"src":"26477:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":53687,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"26426:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":53689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26436:16:81","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":49634,"src":"26426:26:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26426:62:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53694,"nodeType":"ExpressionStatement","src":"26426:62:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53673,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53670,"src":"26363:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":53674,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53557,"src":"26367:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26363:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53696,"initializationExpression":{"assignments":[53670],"declarations":[{"constant":false,"id":53670,"mutability":"mutable","name":"i","nameLocation":"26356:1:81","nodeType":"VariableDeclaration","scope":53696,"src":"26348:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53669,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53672,"initialValue":{"hexValue":"30","id":53671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26360:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26348:13:81"},"loopExpression":{"expression":{"id":53677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26370:3:81","subExpression":{"id":53676,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53670,"src":"26370:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53678,"nodeType":"ExpressionStatement","src":"26370:3:81"},"nodeType":"ForStatement","src":"26343:156:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"25412:13:81","parameters":{"id":53554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53550,"mutability":"mutable","name":"validators","nameLocation":"25443:10:81","nodeType":"VariableDeclaration","scope":53698,"src":"25426:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53548,"name":"address","nodeType":"ElementaryTypeName","src":"25426:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53549,"nodeType":"ArrayTypeName","src":"25426:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":53553,"mutability":"mutable","name":"privKeys","nameLocation":"25472:8:81","nodeType":"VariableDeclaration","scope":53698,"src":"25455:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53551,"name":"uint256","nodeType":"ElementaryTypeName","src":"25455:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53552,"nodeType":"ArrayTypeName","src":"25455:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"25425:56:81"},"returnParameters":{"id":53555,"nodeType":"ParameterList","parameters":[],"src":"25491:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53733,"nodeType":"FunctionDefinition","src":"26511:305:81","nodes":[],"body":{"id":53732,"nodeType":"Block","src":"26558:258:81","nodes":[],"statements":[{"assignments":[53704],"declarations":[{"constant":false,"id":53704,"mutability":"mutable","name":"expectedNonce","nameLocation":"26576:13:81","nodeType":"VariableDeclaration","scope":53732,"src":"26568:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53703,"name":"uint256","nodeType":"ElementaryTypeName","src":"26568:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53710,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":53709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53705,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"26592:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26601:13:81","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37157,"src":"26592:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":53707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26592:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26619:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26592:28:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26568:52:81"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":53718,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"26692:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26696:6:81","memberName":"sender","nodeType":"MemberAccess","src":"26692:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53716,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"26670:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26687:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"26670:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26670:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":53711,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"26630:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26640:7:81","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38358,"src":"26630:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":53715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53714,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53700,"src":"26655:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26630:39:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":53721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26630:74:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53722,"nodeType":"ExpressionStatement","src":"26630:74:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53724,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"26722:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26731:13:81","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37157,"src":"26722:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":53726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26722:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53727,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53704,"src":"26750:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26722:41:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":53729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26765:43:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":53723,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26714:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26714:95:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53731,"nodeType":"ExpressionStatement","src":"26714:95:81"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"26520:7:81","parameters":{"id":53701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53700,"mutability":"mutable","name":"releaseAmount","nameLocation":"26536:13:81","nodeType":"VariableDeclaration","scope":53733,"src":"26528:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53699,"name":"uint256","nodeType":"ElementaryTypeName","src":"26528:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26527:23:81"},"returnParameters":{"id":53702,"nodeType":"ParameterList","parameters":[],"src":"26558:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53788,"nodeType":"FunctionDefinition","src":"26822:540:81","nodes":[],"body":{"id":53787,"nodeType":"Block","src":"26891:471:81","nodes":[],"statements":[{"assignments":[53741],"declarations":[{"constant":false,"id":53741,"mutability":"mutable","name":"balanceBefore","nameLocation":"26909:13:81","nodeType":"VariableDeclaration","scope":53787,"src":"26901:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53740,"name":"uint256","nodeType":"ElementaryTypeName","src":"26901:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53744,"initialValue":{"expression":{"id":53742,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"26925:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26939:7:81","memberName":"balance","nodeType":"MemberAccess","src":"26925:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26901:45:81"},{"assignments":[null,53746,null,null,null,null],"declarations":[null,{"constant":false,"id":53746,"mutability":"mutable","name":"stakedBefore","nameLocation":"26968:12:81","nodeType":"VariableDeclaration","scope":53787,"src":"26960:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53745,"name":"uint256","nodeType":"ElementaryTypeName","src":"26960:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null,null],"id":53750,"initialValue":{"arguments":[{"id":53748,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"27002:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53747,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"26992:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26992:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"26957:59:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":53751,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"27027:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27037:8:81","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38090,"src":"27027:18:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":53755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53754,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"27053:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"27027:38:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":53756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27027:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53757,"nodeType":"ExpressionStatement","src":"27027:40:81"},{"assignments":[53759],"declarations":[{"constant":false,"id":53759,"mutability":"mutable","name":"balanceAfter","nameLocation":"27086:12:81","nodeType":"VariableDeclaration","scope":53787,"src":"27078:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53758,"name":"uint256","nodeType":"ElementaryTypeName","src":"27078:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53762,"initialValue":{"expression":{"id":53760,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"27101:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27115:7:81","memberName":"balance","nodeType":"MemberAccess","src":"27101:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27078:44:81"},{"assignments":[null,53764,null,null,null,null],"declarations":[null,{"constant":false,"id":53764,"mutability":"mutable","name":"stakedAfter","nameLocation":"27143:11:81","nodeType":"VariableDeclaration","scope":53787,"src":"27135:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53763,"name":"uint256","nodeType":"ElementaryTypeName","src":"27135:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null,null],"id":53768,"initialValue":{"arguments":[{"id":53766,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"27176:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53765,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"27166:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27166:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"27132:58:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53770,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53759,"src":"27209:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53771,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53741,"src":"27225:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":53772,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"27241:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27225:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27209:43:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":53775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27254:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":53769,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27201:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27201:74:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53777,"nodeType":"ExpressionStatement","src":"27201:74:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53779,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53764,"src":"27293:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53780,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53746,"src":"27308:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":53781,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"27323:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27308:26:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27293:41:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":53784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27336:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":53778,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27285:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27285:70:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53786,"nodeType":"ExpressionStatement","src":"27285:70:81"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"26831:8:81","parameters":{"id":53738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53735,"mutability":"mutable","name":"stakeAmount","nameLocation":"26848:11:81","nodeType":"VariableDeclaration","scope":53788,"src":"26840:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53734,"name":"uint256","nodeType":"ElementaryTypeName","src":"26840:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53737,"mutability":"mutable","name":"subnetAddress","nameLocation":"26869:13:81","nodeType":"VariableDeclaration","scope":53788,"src":"26861:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53736,"name":"address","nodeType":"ElementaryTypeName","src":"26861:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26839:44:81"},"returnParameters":{"id":53739,"nodeType":"ParameterList","parameters":[],"src":"26891:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53884,"nodeType":"FunctionDefinition","src":"27368:891:81","nodes":[],"body":{"id":53883,"nodeType":"Block","src":"27463:796:81","nodes":[],"statements":[{"assignments":[53800],"declarations":[{"constant":false,"id":53800,"mutability":"mutable","name":"manager","nameLocation":"27493:7:81","nodeType":"VariableDeclaration","scope":53883,"src":"27473:27:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53799,"nodeType":"UserDefinedTypeName","pathNode":{"id":53798,"name":"GatewayManagerFacet","nameLocations":["27473:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"27473:19:81"},"referencedDeclaration":38359,"src":"27473:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53807,"initialValue":{"arguments":[{"arguments":[{"id":53804,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53795,"src":"27531:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27523:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53802,"name":"address","nodeType":"ElementaryTypeName","src":"27523:7:81","typeDescriptions":{}}},"id":53805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27523:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53801,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"27503:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27503:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"27473:62:81"},{"expression":{"arguments":[{"hexValue":"30","id":53813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27582:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":53808,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53800,"src":"27546:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27554:8:81","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38030,"src":"27546:16:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":53812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53811,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53790,"src":"27570:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"27546:35:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":53814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27546:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53815,"nodeType":"ExpressionStatement","src":"27546:38:81"},{"assignments":[53818,53820,53822,null,53824,53827],"declarations":[{"constant":false,"id":53818,"mutability":"mutable","name":"id","nameLocation":"27612:2:81","nodeType":"VariableDeclaration","scope":53883,"src":"27596:18:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53817,"nodeType":"UserDefinedTypeName","pathNode":{"id":53816,"name":"SubnetID","nameLocations":["27596:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"27596:8:81"},"referencedDeclaration":48557,"src":"27596:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":53820,"mutability":"mutable","name":"stake","nameLocation":"27624:5:81","nodeType":"VariableDeclaration","scope":53883,"src":"27616:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53819,"name":"uint256","nodeType":"ElementaryTypeName","src":"27616:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53822,"mutability":"mutable","name":"topDownNonce","nameLocation":"27639:12:81","nodeType":"VariableDeclaration","scope":53883,"src":"27631:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53821,"name":"uint256","nodeType":"ElementaryTypeName","src":"27631:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":53824,"mutability":"mutable","name":"circSupply","nameLocation":"27663:10:81","nodeType":"VariableDeclaration","scope":53883,"src":"27655:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53823,"name":"uint256","nodeType":"ElementaryTypeName","src":"27655:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53827,"mutability":"mutable","name":"status","nameLocation":"27682:6:81","nodeType":"VariableDeclaration","scope":53883,"src":"27675:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":53826,"nodeType":"UserDefinedTypeName","pathNode":{"id":53825,"name":"Status","nameLocations":["27675:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"27675:6:81"},"referencedDeclaration":36932,"src":"27675:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"}],"id":53832,"initialValue":{"arguments":[{"id":53829,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53792,"src":"27717:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53830,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53795,"src":"27744:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53828,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53982,"src":"27692:11:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$35759_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27692:64:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"27595:161:81"},{"assignments":[53835],"declarations":[{"constant":false,"id":53835,"mutability":"mutable","name":"parentNetwork","nameLocation":"27783:13:81","nodeType":"VariableDeclaration","scope":53883,"src":"27767:29:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53834,"nodeType":"UserDefinedTypeName","pathNode":{"id":53833,"name":"SubnetID","nameLocations":["27767:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"27767:8:81"},"referencedDeclaration":48557,"src":"27767:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53836,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"27799:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27808:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"27799:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27799:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"27767:57:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":53850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53841,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53818,"src":"27856:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27859:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"27856:9:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":53843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27856:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":53846,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53792,"src":"27900:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53844,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53835,"src":"27871:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27885:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"27871:28:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27871:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27915:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"27871:50:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":53849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27871:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"27856:67:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":53851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27937:69:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":53840,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27835:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27835:181:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53853,"nodeType":"ExpressionStatement","src":"27835:181:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53855,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53820,"src":"28034:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53856,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53790,"src":"28043:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28034:19:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":53858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28055:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":53854,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28026:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28026:48:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53860,"nodeType":"ExpressionStatement","src":"28026:48:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53862,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53822,"src":"28092:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28108:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28092:17:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28111:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":53861,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28084:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28084:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53867,"nodeType":"ExpressionStatement","src":"28084:46:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53869,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53824,"src":"28148:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28162:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28148:15:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":53872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28165:23:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":53868,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28140:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28140:49:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53874,"nodeType":"ExpressionStatement","src":"28140:49:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53876,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53827,"src":"28207:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":53877,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"28217:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$36932_$","typeString":"type(enum Status)"}},"id":53878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28224:6:81","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":36927,"src":"28217:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"src":"28207:23:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e657870656374656420737461747573","id":53880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28232:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba313606cd95d33cf8055f53d8400718c19a556faf6b3b571b4ee34226df46ef","typeString":"literal_string \"unexpected status\""},"value":"unexpected status"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba313606cd95d33cf8055f53d8400718c19a556faf6b3b571b4ee34226df46ef","typeString":"literal_string \"unexpected status\""}],"id":53875,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28199:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28199:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53882,"nodeType":"ExpressionStatement","src":"28199:53:81"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"27377:16:81","parameters":{"id":53796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53790,"mutability":"mutable","name":"collateral","nameLocation":"27402:10:81","nodeType":"VariableDeclaration","scope":53884,"src":"27394:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53789,"name":"uint256","nodeType":"ElementaryTypeName","src":"27394:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53792,"mutability":"mutable","name":"subnetAddress","nameLocation":"27422:13:81","nodeType":"VariableDeclaration","scope":53884,"src":"27414:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53791,"name":"address","nodeType":"ElementaryTypeName","src":"27414:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53795,"mutability":"mutable","name":"gw","nameLocation":"27452:2:81","nodeType":"VariableDeclaration","scope":53884,"src":"27437:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":53794,"nodeType":"UserDefinedTypeName","pathNode":{"id":53793,"name":"GatewayDiamond","nameLocations":["27437:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"27437:14:81"},"referencedDeclaration":35759,"src":"27437:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"27393:62:81"},"returnParameters":{"id":53797,"nodeType":"ParameterList","parameters":[],"src":"27463:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53898,"nodeType":"FunctionDefinition","src":"28265:150:81","nodes":[],"body":{"id":53897,"nodeType":"Block","src":"28339:76:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53892,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53886,"src":"28366:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53893,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53888,"src":"28378:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53894,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"28393:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53891,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53884,"src":"28349:16:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$35759_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":53895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28349:59:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53896,"nodeType":"ExpressionStatement","src":"28349:59:81"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"28274:14:81","parameters":{"id":53889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53886,"mutability":"mutable","name":"collateral","nameLocation":"28297:10:81","nodeType":"VariableDeclaration","scope":53898,"src":"28289:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53885,"name":"uint256","nodeType":"ElementaryTypeName","src":"28289:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53888,"mutability":"mutable","name":"subnetAddress","nameLocation":"28317:13:81","nodeType":"VariableDeclaration","scope":53898,"src":"28309:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53887,"name":"address","nodeType":"ElementaryTypeName","src":"28309:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28288:43:81"},"returnParameters":{"id":53890,"nodeType":"ParameterList","parameters":[],"src":"28339:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53982,"nodeType":"FunctionDefinition","src":"28421:698:81","nodes":[],"body":{"id":53981,"nodeType":"Block","src":"28583:536:81","nodes":[],"statements":[{"expression":{"id":53927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53920,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"28593:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53924,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53903,"src":"28631:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28623:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53922,"name":"address","nodeType":"ElementaryTypeName","src":"28623:7:81","typeDescriptions":{}}},"id":53925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28623:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53921,"name":"GatewayRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39706,"src":"28604:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayRouterFacet_$39706_$","typeString":"type(contract GatewayRouterFacet)"}},"id":53926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"src":"28593:42:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53928,"nodeType":"ExpressionStatement","src":"28593:42:81"},{"expression":{"id":53936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53929,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"28645:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53933,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53903,"src":"28685:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28677:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53931,"name":"address","nodeType":"ElementaryTypeName","src":"28677:7:81","typeDescriptions":{}}},"id":53934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28677:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53930,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"28657:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28657:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"src":"28645:44:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53937,"nodeType":"ExpressionStatement","src":"28645:44:81"},{"expression":{"id":53945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53938,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"28699:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53942,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53903,"src":"28737:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28729:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53940,"name":"address","nodeType":"ElementaryTypeName","src":"28729:7:81","typeDescriptions":{}}},"id":53943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28729:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53939,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"28710:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$37869_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28710:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"src":"28699:42:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53946,"nodeType":"ExpressionStatement","src":"28699:42:81"},{"assignments":[53949],"declarations":[{"constant":false,"id":53949,"mutability":"mutable","name":"subnetId","nameLocation":"28768:8:81","nodeType":"VariableDeclaration","scope":53981,"src":"28752:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53948,"nodeType":"UserDefinedTypeName","pathNode":{"id":53947,"name":"SubnetID","nameLocations":["28752:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"28752:8:81"},"referencedDeclaration":48557,"src":"28752:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53956,"initialValue":{"arguments":[{"id":53954,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53900,"src":"28820:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53950,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"28779:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28788:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"28779:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28779:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28805:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"28779:40:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28779:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"28752:82:81"},{"assignments":[53959],"declarations":[{"constant":false,"id":53959,"mutability":"mutable","name":"subnet","nameLocation":"28859:6:81","nodeType":"VariableDeclaration","scope":53981,"src":"28845:20:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":53958,"nodeType":"UserDefinedTypeName","pathNode":{"id":53957,"name":"Subnet","nameLocations":["28845:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"28845:6:81"},"referencedDeclaration":48574,"src":"28845:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":53966,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53962,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53949,"src":"28885:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28894:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"28885:15:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":53964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28885:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":53960,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"28868:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28877:7:81","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37297,"src":"28868:16:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$48574_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":53965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28868:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"28845:58:81"},{"expression":{"components":[{"expression":{"id":53967,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"28935:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28942:2:81","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":48573,"src":"28935:9:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":53969,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"28958:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28965:5:81","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":48559,"src":"28958:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53971,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"28984:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28991:12:81","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":48565,"src":"28984:19:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":53973,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"29017:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29024:20:81","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":48567,"src":"29017:27:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":53975,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"29058:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29065:10:81","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":48563,"src":"29058:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53977,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"29089:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29096:6:81","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":48570,"src":"29089:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}}],"id":53979,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28921:191:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256,enum Status)"}},"functionReturnParameters":53919,"id":53980,"nodeType":"Return","src":"28914:198:81"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"28430:11:81","parameters":{"id":53904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53900,"mutability":"mutable","name":"subnetAddress","nameLocation":"28459:13:81","nodeType":"VariableDeclaration","scope":53982,"src":"28451:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53899,"name":"address","nodeType":"ElementaryTypeName","src":"28451:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53903,"mutability":"mutable","name":"gw","nameLocation":"28497:2:81","nodeType":"VariableDeclaration","scope":53982,"src":"28482:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":53902,"nodeType":"UserDefinedTypeName","pathNode":{"id":53901,"name":"GatewayDiamond","nameLocations":["28482:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"28482:14:81"},"referencedDeclaration":35759,"src":"28482:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"28441:64:81"},"returnParameters":{"id":53919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28522:15:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53906,"nodeType":"UserDefinedTypeName","pathNode":{"id":53905,"name":"SubnetID","nameLocations":["28522:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"28522:8:81"},"referencedDeclaration":48557,"src":"28522:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":53909,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28539:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53908,"name":"uint256","nodeType":"ElementaryTypeName","src":"28539:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53911,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28548:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53910,"name":"uint256","nodeType":"ElementaryTypeName","src":"28548:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28557:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53912,"name":"uint256","nodeType":"ElementaryTypeName","src":"28557:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53915,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28566:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53914,"name":"uint256","nodeType":"ElementaryTypeName","src":"28566:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28575:6:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":53917,"nodeType":"UserDefinedTypeName","pathNode":{"id":53916,"name":"Status","nameLocations":["28575:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"28575:6:81"},"referencedDeclaration":36932,"src":"28575:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"}],"src":"28521:61:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54007,"nodeType":"FunctionDefinition","src":"29125:199:81","nodes":[],"body":{"id":54006,"nodeType":"Block","src":"29258:66:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":54002,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53984,"src":"29287:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54003,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"29302:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":54001,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53982,"src":"29275:11:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$35759_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":54004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29275:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"functionReturnParameters":54000,"id":54005,"nodeType":"Return","src":"29268:49:81"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"29134:9:81","parameters":{"id":53985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53984,"mutability":"mutable","name":"subnetAddress","nameLocation":"29161:13:81","nodeType":"VariableDeclaration","scope":54007,"src":"29153:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53983,"name":"address","nodeType":"ElementaryTypeName","src":"29153:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29143:37:81"},"returnParameters":{"id":54000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29197:15:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53987,"nodeType":"UserDefinedTypeName","pathNode":{"id":53986,"name":"SubnetID","nameLocations":["29197:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"29197:8:81"},"referencedDeclaration":48557,"src":"29197:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":53990,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29214:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53989,"name":"uint256","nodeType":"ElementaryTypeName","src":"29214:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29223:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53991,"name":"uint256","nodeType":"ElementaryTypeName","src":"29223:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29232:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53993,"name":"uint256","nodeType":"ElementaryTypeName","src":"29232:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29241:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53995,"name":"uint256","nodeType":"ElementaryTypeName","src":"29241:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29250:6:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":53998,"nodeType":"UserDefinedTypeName","pathNode":{"id":53997,"name":"Status","nameLocations":["29250:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"29250:6:81"},"referencedDeclaration":36932,"src":"29250:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"}],"src":"29196:61:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":51793,"name":"Test","nameLocations":["7639:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"7639:4:81"},"id":51794,"nodeType":"InheritanceSpecifier","src":"7639:4:81"},{"baseName":{"id":51795,"name":"TestParams","nameLocations":["7645:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"7645:10:81"},"id":51796,"nodeType":"InheritanceSpecifier","src":"7645:10:81"},{"baseName":{"id":51797,"name":"TestRegistry","nameLocations":["7657:12:81"],"nodeType":"IdentifierPath","referencedDeclaration":51537,"src":"7657:12:81"},"id":51798,"nodeType":"InheritanceSpecifier","src":"7657:12:81"},{"baseName":{"id":51799,"name":"TestSubnetActor","nameLocations":["7671:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":51792,"src":"7671:15:81"},"id":51800,"nodeType":"InheritanceSpecifier","src":"7671:15:81"},{"baseName":{"id":51801,"name":"TestGatewayActor","nameLocations":["7688:16:81"],"nodeType":"IdentifierPath","referencedDeclaration":51670,"src":"7688:16:81"},"id":51802,"nodeType":"InheritanceSpecifier","src":"7688:16:81"}],"canonicalName":"IntegrationTestBase","contractDependencies":[35759,36177,36415,36477,36914,37869,38359,38674,39706,49325,50947,51075,51313,56069],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54008,51670,51792,51537,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"7616:19:81","scope":54009,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":81} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"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":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"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":"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":"0x608080604052346200085357600160ff198181600054161760005560045416176004556319b8a26360e21b815260206004820152601360248201527f52656769737465725375626e6574466163657400000000000000000000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200049d5760009162000834575b508051906001600160401b0382116200045f576801000000000000000082116200045f57601b5482601b55808310620007d1575b5060200190601b60005260206000208160031c9160005b83811062000781575060071981169003806200072c575b505050506040516319b8a26360e21b815260206004820152601160248201527014dd589b995d11d95d1d195c919858d95d607a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200049d576000916200070d575b508051906001600160401b0382116200045f576801000000000000000082116200045f57601c5482601c55808310620006a2575b5060200190601c60005260206000209060005b8160031c81106200065257506007198116810380620005fa575b505050506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200049d57600091620005db575b508051906001600160401b0382116200045f576801000000000000000082116200045f57601d5482601d5580831062000553575b5060200190601d60005260206000209060005b8160031c81106200050357506007198116808203620004a9575b505050506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200049d5760009162000475575b508051906001600160401b0382116200045f576801000000000000000082116200045f57601e5482601e55808310620003fc575b5060200190601e60005260206000208160031c9160005b838110620003ac5750600719811690038062000357575b604051610c8e9081620009138239f35b9260009360005b818110620003755750505001553880808062000347565b9091946020620003a1600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200035e565b6000805b60088110620003c757508382015560010162000330565b95906020620003f2600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601620003b0565b601e6000526020600020600780850160031c8201920160031c0190601c8460021b168062000443575b505b81811062000436575062000319565b6000815560010162000427565b600019908183019182549160200360031b1c1690553862000425565b634e487b7160e01b600052604160045260246000fd5b6200049691503d806000833e6200048d818362000858565b8101906200087c565b38620002e5565b6040513d6000823e3d90fd5b9260009360005b8184038110620004cc5750505060031c0155388080806200027e565b9091946020620004f8600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620004b0565b6000805b600881106200051e57508382015560010162000264565b9490602062000549600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000507565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c1680620005b7575b50600780850160031c8201920160031c01905b818110620005aa575062000251565b600081556001016200059b565b60001990816007870160031c8401019182549160200360031b1c1690553862000588565b620005f391503d806000833e6200048d818362000858565b386200021d565b9260009360005b8181106200061b5750505060031c015538808080620001b8565b909194602062000647600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000601565b6000805b600881106200066d5750838201556001016200019e565b9490602062000698600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000656565b601c6000526020600020601c8460021b1680620006e9575b50600780850160031c8201920160031c01905b818110620006dc57506200018b565b60008155600101620006cd565b60001990816007870160031c8401019182549160200360031b1c16905538620006ba565b6200072591503d806000833e6200048d818362000858565b3862000157565b9260009360005b8181106200074a57505050015538808080620000f0565b909194602062000776600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000733565b6000805b600881106200079c575083820155600101620000d9565b95906020620007c7600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960162000785565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b168062000818575b505b8181106200080b5750620000c2565b60008155600101620007fc565b600019908183019182549160200360031b1c16905538620007fa565b6200084c91503d806000833e6200048d818362000858565b386200008e565b600080fd5b601f909101601f19168101906001600160401b038211908210176200045f57604052565b906020908183820312620008535782516001600160401b039384821162000853570181601f82011215620008535780519384116200045f578360051b9060405194620008cb8584018762000858565b8552838086019282010192831162000853578301905b828210620008f0575050505090565b81516001600160e01b03198116810362000853578152908301908301620008e156fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea264697066735822122072ae30f0c2fb4a3823b766f42305e533547a7358be009d59c8760ab4c293f9cf64736f6c63430008130033","sourceMap":"3675:824:88:-:0;;;;;;;1594:4:2;3675:824:88;;;;1594:4:2;3675:824:88;;;1594:4:2;3675:824:88;3201:4:5;3675:824:88;;;3201:4:5;3675:824:88;;;;4159:55;;3675:824;3201:4:5;4159:55:88;;3675:824;;;;;;;;;;;1594:4:2;4159:15:88;3675:824;4159:15;;:55;;;;;;;1594:4:2;4159:55:88;;;-1:-1:-1;;3675:824:88;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;4128:86;3675:824;;4128:86;3675:824;;;;;;-1:-1:-1;3675:824:88;;;;4128:86;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;1594:4:2;3675:824:88;;;;;;-1:-1:-1;;;3675:824:88;;;;;;;;;;;;;;;;;4261:53;;3675:824;3201:4:5;4261:53:88;;3675:824;;;;;;-1:-1:-1;;;3675:824:88;;;;1594:4:2;4159:15:88;3675:824;4159:15;;4261:53;;;;;;;1594:4:2;4261:53:88;;;3675:824;-1:-1:-1;3675:824:88;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;4224:90;3675:824;;4224:90;3675:824;;;;;;;;;;;4224:90;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;-1:-1:-1;;;3675:824:88;;;;;;;;;;;;;;;;;4350:51;;3675:824;3201:4:5;4350:51:88;;3675:824;;;;;;-1:-1:-1;;;3675:824:88;;;;1594:4:2;4159:15:88;3675:824;4159:15;;4350:51;;;;;;;1594:4:2;4350:51:88;;;3675:824;-1:-1:-1;3675:824:88;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;4324:77;3675:824;;4324:77;3675:824;;;;;;;;;;;4324:77;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;-1:-1:-1;;;3675:824:88;;;;;;;;;;;;;;;;;4437:53;;3675:824;3201:4:5;4437:53:88;;3675:824;;;;;;-1:-1:-1;;;3675:824:88;;;;1594:4:2;4159:15:88;3675:824;4159:15;;4437:53;;;;;;;1594:4:2;4437:53:88;;;3675:824;-1:-1:-1;3675:824:88;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;4411:79;3675:824;;4411:79;3675:824;;;;;;;;;;;4411:79;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;1594:4:2;3675:824:88;;;;;;-1:-1:-1;;;3675:824:88;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3675:824:88;;;;;;-1:-1:-1;3675:824:88;;;;1594:4:2;3675:824:88;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4411:79;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;4224:90;3675:824;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;3201:4:5;3675:824:88;;1594:4:2;3675:824:88;4437:53;;;;;;1594:4:2;4437:53:88;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;3675:824;;;1594:4:2;3675:824:88;;;;;;;1594:4:2;3675:824:88;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3675:824:88;;;;;;-1:-1:-1;3675:824:88;;;;1594:4:2;3675:824:88;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:77;1594:4:2;3675:824:88;;;;;;4224:90;3675:824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4350:51;;;;;;1594:4:2;4350:51:88;;;;;;:::i;:::-;;;;3675:824;;1594:4:2;3675:824:88;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3675:824:88;;;;;;-1:-1:-1;3675:824:88;;;;1594:4:2;3675:824:88;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4224:90;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;4224:90;3675:824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4261:53;;;;;;1594:4:2;4261:53:88;;;;;;:::i;:::-;;;;3675:824;;1594:4:2;3675:824:88;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;3675:824:88;;;;;;-1:-1:-1;3675:824:88;;;;1594:4:2;3675:824:88;;;;;;;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4128:86;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;3675:824:88;;1594:4:2;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;4159:55;;;;;;1594:4:2;4159:55:88;;;;;;:::i;:::-;;;;3675:824;;;;;;;;;-1:-1:-1;;3675:824:88;;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;","linkReferences":{"test/helpers/SelectorLibrary.sol":{"SelectorLibrary":[{"start":104,"length":20},{"start":305,"length":20},{"start":503,"length":20},{"start":703,"length":20}]}}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea264697066735822122072ae30f0c2fb4a3823b766f42305e533547a7358be009d59c8760ab4c293f9cf64736f6c63430008130033","sourceMap":"3675:824:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;3675:824:88;;;;:::i;:::-;;1671:64:2;3675:824:88;;1671:64:2;;;:::i;:::-;3675:824:88;;;1982:18:8;3675:824:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3675:824:88;;;;;;;;-1:-1:-1;3675:824:88;;;;;-1:-1:-1;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3675:824:88;;;;;-1:-1:-1;3675:824:88;;;;;;;;;-1:-1:-1;3675:824:88;;;;-1:-1:-1;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;3675:824:88;;;;:::i;:::-;;1671:64:2;3675:824:88;;1671:64:2;;;:::i;:::-;3675:824:88;;;2899:18:8;3675:824:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;3675:824:88;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;3675:824:88;;;;:::i;:::-;;1671:64:2;3675:824:88;;1671:64:2;;;:::i;:::-;3675:824:88;;;2416:18:8;3675:824:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3675:824:88;;;;;;;;-1:-1:-1;3675:824:88;;;;;-1:-1:-1;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3675:824:88;;;;;-1:-1:-1;3675:824:88;;;;;;;;;-1:-1:-1;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;3675:824:88;;;;:::i;:::-;;1671:64:2;3675:824:88;;1671:64:2;;;:::i;:::-;3675:824:88;;;2592:26:8;3675:824:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;3675:824:88;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3675:824:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3675:824:88;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;3675:824:88;;;;;;;;;;;;;;;;;1671:64:2;3675:824:88;1671:64:2;;;;;;;;;;;3675:824:88;1671:64:2;:::o;:::-;3675:824:88;;;1671:64:2;;;;;;;;;;3675:824:88;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;3675:824:88;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;3675:824:88;;;2196:43:2;;;3675:824:88;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;3675:824:88;;-1:-1:-1;1671:64:2;;3675:824:88;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;3675:824:88;1671:64:2;2086:175;;;3675:824:88;;;;;;1671:64:2;3675:824:88;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;3675:824:88;;;1671:64:2;3675:824:88;;;-1:-1:-1;;3675:824:88;2196:43:2;1671:64;3675:824:88;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;3675:824:88;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;3675:824:88;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;3675:824:88;1671:64:2;;;3675:824:88;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;3675:824:88;1671:64:2;3675:824:88;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"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\":\"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/IntegrationTestBase.sol\":\"TestRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20\",\"dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f\",\"dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496\",\"dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT\"]},\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be\",\"dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/mocks/SubnetActorManagerFacetMock.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"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":"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestRegistry"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec","urls":["bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20","dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870","urls":["bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f","dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692","urls":["bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496","dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT"],"license":"MIT OR Apache-2.0"},"test/helpers/SelectorLibrary.sol":{"keccak256":"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd","urls":["bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be","dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorManagerFacetMock.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":55376,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"BottomUpRouterFacet":[39601],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"CollateralIsZero":[37390],"ConsensusType":[37359],"CrossMsg":[49974],"CrossMsgHelper":[40781],"DSTest":[3720],"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"DuplicatedGenesisValidator":[37530],"EMPTY_BYTES":[36873],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"FilAddress":[1428],"FvmAddress":[49998],"FvmAddressHelper":[40962],"GatewayCannotBeZero":[37400],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IDiamond":[40170],"IPCAddress":[50204],"IntegrationTestBase":[55375],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"METHOD_SEND":[36879],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinality":[49918],"ParentFinalityAlreadyCommitted":[37498],"PermissionMode":[50165],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"RegisterSubnetFacet":[52279],"SelectorLibrary":[56263],"SignatureReplay":[37502],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[50887],"SubnetActorManagerFacet":[52151],"SubnetActorManagerFacetMock":[57957],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetGetterFacet":[52517],"SubnetID":[50077],"SubnetIDHelper":[48072],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SubnetRegistryDiamond":[36853],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[52912],"TestParams":[52683],"TestRegistry":[52747],"TestSubnetActor":[53037],"TestUtils":[57051],"TopDownFinalityFacet":[40071],"UnknownSubnet":[37522],"Validator":[50211],"Vm":[14222],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"XnetMessagingFacet":[40144],"ZeroMembershipWeight":[37512],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:31883:88","nodes":[{"id":52519,"nodeType":"PragmaDirective","src":"46:23:88","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52520,"nodeType":"ImportDirective","src":"71:28:88","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52521,"nodeType":"ImportDirective","src":"100:36:88","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":52522,"nodeType":"ImportDirective","src":"137:37:88","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52525,"nodeType":"ImportDirective","src":"176:72:88","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52523,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"184:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52524,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"197:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52527,"nodeType":"ImportDirective","src":"249:61:88","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52526,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"257:13:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52529,"nodeType":"ImportDirective","src":"311:56:88","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52528,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"319:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52534,"nodeType":"ImportDirective","src":"368:102:88","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":52530,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"376:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52531,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"386:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52532,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"406:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52533,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"419:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52536,"nodeType":"ImportDirective","src":"471:57:88","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":52535,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"479:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52545,"nodeType":"ImportDirective","src":"529:140:88","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":52537,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"537:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"547:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"559:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52540,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"575:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52541,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"591:6:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52542,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"599:12:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52543,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"613:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52544,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"625:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52547,"nodeType":"ImportDirective","src":"670:61:88","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":52546,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"678:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52549,"nodeType":"ImportDirective","src":"732:65:88","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40963,"symbolAliases":[{"foreign":{"id":52548,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"740:16:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52551,"nodeType":"ImportDirective","src":"798:61:88","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":52550,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"806:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52553,"nodeType":"ImportDirective","src":"860:67:88","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":52552,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"868:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52555,"nodeType":"ImportDirective","src":"928:56:88","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52554,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"936:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52557,"nodeType":"ImportDirective","src":"985:57:88","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52556,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"993:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52559,"nodeType":"ImportDirective","src":"1043:65:88","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52558,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1051:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52561,"nodeType":"ImportDirective","src":"1109:73:88","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52560,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1117:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52563,"nodeType":"ImportDirective","src":"1183:79:88","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52562,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1191:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52565,"nodeType":"ImportDirective","src":"1263:75:88","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52564,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1271:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52567,"nodeType":"ImportDirective","src":"1340:80:88","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52566,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1348:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52569,"nodeType":"ImportDirective","src":"1421:80:88","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52568,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1429:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52571,"nodeType":"ImportDirective","src":"1502:84:88","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52570,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1510:20:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52573,"nodeType":"ImportDirective","src":"1587:82:88","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52572,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1595:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52575,"nodeType":"ImportDirective","src":"1671:84:88","nodes":[],"absolutePath":"test/mocks/SubnetActorManagerFacetMock.sol","file":"./mocks/SubnetActorManagerFacetMock.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57958,"symbolAliases":[{"foreign":{"id":52574,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57957,"src":"1679:27:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52577,"nodeType":"ImportDirective","src":"1756:82:88","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52152,"symbolAliases":[{"foreign":{"id":52576,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"1764:23:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52579,"nodeType":"ImportDirective","src":"1839:80:88","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":52578,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1847:22:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52581,"nodeType":"ImportDirective","src":"1920:71:88","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52580,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"1928:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52583,"nodeType":"ImportDirective","src":"1992:82:88","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52280,"symbolAliases":[{"foreign":{"id":52582,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52279,"src":"2000:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52585,"nodeType":"ImportDirective","src":"2075:78:88","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52518,"symbolAliases":[{"foreign":{"id":52584,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52517,"src":"2083:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52587,"nodeType":"ImportDirective","src":"2154:71:88","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52586,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2162:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52589,"nodeType":"ImportDirective","src":"2226:67:88","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52588,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2234:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52591,"nodeType":"ImportDirective","src":"2294:69:88","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":52590,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"2302:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52593,"nodeType":"ImportDirective","src":"2364:50:88","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57052,"symbolAliases":[{"foreign":{"id":52592,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"2372:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52595,"nodeType":"ImportDirective","src":"2415:62:88","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":56264,"symbolAliases":[{"foreign":{"id":52594,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"2423:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52683,"nodeType":"ContractDefinition","src":"2479:1194:88","nodes":[{"id":52602,"nodeType":"VariableDeclaration","src":"2505:44:88","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2521:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52596,"name":"uint64","nodeType":"ElementaryTypeName","src":"2505:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2538:6:88","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52598,"name":"uint64","nodeType":"ElementaryTypeName","src":"2538:6:88","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52597,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2533:4:88","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2533:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2546:3:88","memberName":"max","nodeType":"MemberAccess","src":"2533:16:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52608,"nodeType":"VariableDeclaration","src":"2555:91:88","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2572:20:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52603,"name":"address","nodeType":"ElementaryTypeName","src":"2555:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2603:42:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2595:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52604,"name":"address","nodeType":"ElementaryTypeName","src":"2595:7:88","typeDescriptions":{}}},"id":52607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2595:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52611,"nodeType":"VariableDeclaration","src":"2652:42:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2668:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52609,"name":"uint64","nodeType":"ElementaryTypeName","src":"2652:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2693:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52614,"nodeType":"VariableDeclaration","src":"2700:54:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2717:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52612,"name":"uint256","nodeType":"ElementaryTypeName","src":"2700:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2747:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52617,"nodeType":"VariableDeclaration","src":"2760:47:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2775:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52615,"name":"uint8","nodeType":"ElementaryTypeName","src":"2760:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2805:2:88","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52620,"nodeType":"VariableDeclaration","src":"2813:51:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"2829:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52618,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2857:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52623,"nodeType":"VariableDeclaration","src":"2870:46:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"2886:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52621,"name":"uint64","nodeType":"ElementaryTypeName","src":"2870:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2914:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52626,"nodeType":"VariableDeclaration","src":"2922:44:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"2938:16:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52624,"name":"string","nodeType":"ElementaryTypeName","src":"2922:6:88","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2957:9:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52629,"nodeType":"VariableDeclaration","src":"2972:36:88","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"2987:7:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52627,"name":"bytes","nodeType":"ElementaryTypeName","src":"2972:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52628,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"2997:11:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52632,"nodeType":"VariableDeclaration","src":"3014:48:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3031:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52630,"name":"uint256","nodeType":"ElementaryTypeName","src":"3014:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3055:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52635,"nodeType":"VariableDeclaration","src":"3068:49:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3085:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52633,"name":"uint256","nodeType":"ElementaryTypeName","src":"3068:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52641,"nodeType":"VariableDeclaration","src":"3123:52:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3140:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52636,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3172:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":52638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3164:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52637,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:88","typeDescriptions":{}}},"id":52640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3164:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52647,"nodeType":"VariableDeclaration","src":"3181:54:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3198:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52642,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3232:2:88","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":52644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3224:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52643,"name":"address","nodeType":"ElementaryTypeName","src":"3224:7:88","typeDescriptions":{}}},"id":52646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3224:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52652,"nodeType":"VariableDeclaration","src":"3241:57:88","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3257:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52648,"name":"uint64","nodeType":"ElementaryTypeName","src":"3241:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3269:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52650,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"3273:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3269:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52655,"nodeType":"VariableDeclaration","src":"3304:50:88","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3321:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52653,"name":"uint256","nodeType":"ElementaryTypeName","src":"3304:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3347:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52658,"nodeType":"VariableDeclaration","src":"3360:53:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3376:31:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52656,"name":"uint16","nodeType":"ElementaryTypeName","src":"3360:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3410:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52661,"nodeType":"VariableDeclaration","src":"3419:38:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3433:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52659,"name":"int8","nodeType":"ElementaryTypeName","src":"3419:4:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3455:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52664,"nodeType":"VariableDeclaration","src":"3463:37:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3479:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52662,"name":"uint64","nodeType":"ElementaryTypeName","src":"3463:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3497:3:88","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52670,"nodeType":"VariableDeclaration","src":"3506:45:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3523:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52665,"name":"address","nodeType":"ElementaryTypeName","src":"3506:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3549:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":52667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52666,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:88","typeDescriptions":{}}},"id":52669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3541:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52676,"nodeType":"VariableDeclaration","src":"3557:57:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3574:24:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52671,"name":"address","nodeType":"ElementaryTypeName","src":"3557:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3609:4:88","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":52673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3601:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52672,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:88","typeDescriptions":{}}},"id":52675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52682,"nodeType":"VariableDeclaration","src":"3620:50:88","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3637:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52677,"name":"address","nodeType":"ElementaryTypeName","src":"3620:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3667:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":52679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3659:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3659:7:88","typeDescriptions":{}}},"id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3659:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52683],"name":"TestParams","nameLocation":"2488:10:88","scope":55376,"usedErrors":[]},{"id":52747,"nodeType":"ContractDefinition","src":"3675:824:88","nodes":[{"id":52690,"nodeType":"VariableDeclaration","src":"3723:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3732:28:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52688,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3723:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52689,"nodeType":"ArrayTypeName","src":"3723:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52693,"nodeType":"VariableDeclaration","src":"3766:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3775:34:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52691,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52692,"nodeType":"ArrayTypeName","src":"3766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52696,"nodeType":"VariableDeclaration","src":"3815:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"3824:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52694,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3815:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52695,"nodeType":"ArrayTypeName","src":"3815:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52699,"nodeType":"VariableDeclaration","src":"3853:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"3862:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52697,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3853:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52698,"nodeType":"ArrayTypeName","src":"3853:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52702,"nodeType":"VariableDeclaration","src":"3892:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"3914:15:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52701,"nodeType":"UserDefinedTypeName","pathNode":{"id":52700,"name":"SubnetRegistryDiamond","nameLocations":["3892:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"3892:21:88"},"referencedDeclaration":36853,"src":"3892:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52705,"nodeType":"VariableDeclaration","src":"3935:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"3953:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52704,"nodeType":"UserDefinedTypeName","pathNode":{"id":52703,"name":"DiamondLoupeFacet","nameLocations":["3935:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"3935:17:88"},"referencedDeclaration":37355,"src":"3935:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52708,"nodeType":"VariableDeclaration","src":"3973:30:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"3989:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52707,"nodeType":"UserDefinedTypeName","pathNode":{"id":52706,"name":"DiamondCutFacet","nameLocations":["3973:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"3973:15:88"},"referencedDeclaration":36918,"src":"3973:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52711,"nodeType":"VariableDeclaration","src":"4009:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4029:19:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52710,"nodeType":"UserDefinedTypeName","pathNode":{"id":52709,"name":"RegisterSubnetFacet","nameLocations":["4009:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"4009:19:88"},"referencedDeclaration":52279,"src":"4009:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52714,"nodeType":"VariableDeclaration","src":"4054:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4072:25:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"SubnetGetterFacet","nameLocations":["4054:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"4054:17:88"},"referencedDeclaration":52517,"src":"4054:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52746,"nodeType":"FunctionDefinition","src":"4104:393:88","nodes":[],"body":{"id":52745,"nodeType":"Block","src":"4118:379:88","nodes":[],"statements":[{"expression":{"id":52722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52717,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"4128:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4192:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":52718,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4159:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4175:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4159:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4128:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52723,"nodeType":"ExpressionStatement","src":"4128:86:88"},{"expression":{"id":52729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52724,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"4224:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4294:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":52725,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4261:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4277:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4261:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4261:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4224:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52730,"nodeType":"ExpressionStatement","src":"4224:90:88"},{"expression":{"id":52736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52731,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"4324:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4383:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52732,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4350:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4366:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4350:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4350:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4324:77:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52737,"nodeType":"ExpressionStatement","src":"4324:77:88"},{"expression":{"id":52743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52738,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"4411:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4470:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52739,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4437:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4453:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4437:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4411:79:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52744,"nodeType":"ExpressionStatement","src":"4411:79:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52715,"nodeType":"ParameterList","parameters":[],"src":"4115:2:88"},"returnParameters":{"id":52716,"nodeType":"ParameterList","parameters":[],"src":"4118:0:88"},"scope":52747,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52684,"name":"Test","nameLocations":["3700:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3700:4:88"},"id":52685,"nodeType":"InheritanceSpecifier","src":"3700:4:88"},{"baseName":{"id":52686,"name":"TestParams","nameLocations":["3706:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"3706:10:88"},"id":52687,"nodeType":"InheritanceSpecifier","src":"3706:10:88"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3684:12:88","scope":55376,"usedErrors":[]},{"id":52912,"nodeType":"ContractDefinition","src":"4501:2237:88","nodes":[{"id":52754,"nodeType":"VariableDeclaration","src":"4553:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4562:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52752,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4553:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52753,"nodeType":"ArrayTypeName","src":"4553:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52757,"nodeType":"VariableDeclaration","src":"4597:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4606:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52755,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4597:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52756,"nodeType":"ArrayTypeName","src":"4597:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52760,"nodeType":"VariableDeclaration","src":"4641:40:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4650:31:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52758,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4641:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52759,"nodeType":"ArrayTypeName","src":"4641:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52763,"nodeType":"VariableDeclaration","src":"4687:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4696:30:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52761,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4687:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52762,"nodeType":"ArrayTypeName","src":"4687:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52766,"nodeType":"VariableDeclaration","src":"4733:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4742:18:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52764,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4733:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52765,"nodeType":"ArrayTypeName","src":"4733:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52769,"nodeType":"VariableDeclaration","src":"4766:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4775:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52767,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52768,"nodeType":"ArrayTypeName","src":"4766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52772,"nodeType":"VariableDeclaration","src":"4798:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"4807:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52770,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4798:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52771,"nodeType":"ArrayTypeName","src":"4798:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52775,"nodeType":"VariableDeclaration","src":"4834:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"4843:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52773,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4834:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52774,"nodeType":"ArrayTypeName","src":"4834:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52778,"nodeType":"VariableDeclaration","src":"4866:25:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"4875:16:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52776,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4866:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52777,"nodeType":"ArrayTypeName","src":"4866:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52781,"nodeType":"VariableDeclaration","src":"4898:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"4913:14:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52780,"nodeType":"UserDefinedTypeName","pathNode":{"id":52779,"name":"GatewayDiamond","nameLocations":["4898:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"4898:14:88"},"referencedDeclaration":36170,"src":"4898:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52784,"nodeType":"VariableDeclaration","src":"4933:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"4953:9:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52783,"nodeType":"UserDefinedTypeName","pathNode":{"id":52782,"name":"GatewayManagerFacet","nameLocations":["4933:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"4933:19:88"},"referencedDeclaration":38870,"src":"4933:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52787,"nodeType":"VariableDeclaration","src":"4968:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"4987:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52786,"nodeType":"UserDefinedTypeName","pathNode":{"id":52785,"name":"GatewayGetterFacet","nameLocations":["4968:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"4968:18:88"},"referencedDeclaration":38317,"src":"4968:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52790,"nodeType":"VariableDeclaration","src":"5001:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5020:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52789,"nodeType":"UserDefinedTypeName","pathNode":{"id":52788,"name":"CheckpointingFacet","nameLocations":["5001:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5001:18:88"},"referencedDeclaration":39870,"src":"5001:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52793,"nodeType":"VariableDeclaration","src":"5046:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5065:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52792,"nodeType":"UserDefinedTypeName","pathNode":{"id":52791,"name":"XnetMessagingFacet","nameLocations":["5046:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5046:18:88"},"referencedDeclaration":40144,"src":"5046:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52796,"nodeType":"VariableDeclaration","src":"5091:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5112:22:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52795,"nodeType":"UserDefinedTypeName","pathNode":{"id":52794,"name":"TopDownFinalityFacet","nameLocations":["5091:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5091:20:88"},"referencedDeclaration":40071,"src":"5091:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52799,"nodeType":"VariableDeclaration","src":"5140:41:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5160:21:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52798,"nodeType":"UserDefinedTypeName","pathNode":{"id":52797,"name":"BottomUpRouterFacet","nameLocations":["5140:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5140:19:88"},"referencedDeclaration":39601,"src":"5140:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52802,"nodeType":"VariableDeclaration","src":"5187:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5209:11:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52801,"nodeType":"UserDefinedTypeName","pathNode":{"id":52800,"name":"GatewayMessengerFacet","nameLocations":["5187:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5187:21:88"},"referencedDeclaration":39235,"src":"5187:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52805,"nodeType":"VariableDeclaration","src":"5226:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5242:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52804,"nodeType":"UserDefinedTypeName","pathNode":{"id":52803,"name":"DiamondCutFacet","nameLocations":["5226:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5226:15:88"},"referencedDeclaration":36918,"src":"5226:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52808,"nodeType":"VariableDeclaration","src":"5256:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5274:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52807,"nodeType":"UserDefinedTypeName","pathNode":{"id":52806,"name":"DiamondLoupeFacet","nameLocations":["5256:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5256:17:88"},"referencedDeclaration":37355,"src":"5256:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52875,"nodeType":"FunctionDefinition","src":"5289:835:88","nodes":[],"body":{"id":52874,"nodeType":"Block","src":"5303:821:88","nodes":[],"statements":[{"expression":{"id":52816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52811,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"5313:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5378:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":52812,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5345:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5361:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5345:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5345:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5313:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52817,"nodeType":"ExpressionStatement","src":"5313:86:88"},{"expression":{"id":52823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52818,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"5409:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5474:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":52819,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5441:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5457:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5441:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5441:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5409:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52824,"nodeType":"ExpressionStatement","src":"5409:86:88"},{"expression":{"id":52830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52825,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"5505:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5572:22:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":52826,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5539:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5555:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5539:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5539:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5505:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52831,"nodeType":"ExpressionStatement","src":"5505:90:88"},{"expression":{"id":52837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52832,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"5605:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5671:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":52833,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5638:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5654:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5638:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5638:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5605:88:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52838,"nodeType":"ExpressionStatement","src":"5605:88:88"},{"expression":{"id":52844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52839,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"5704:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5757:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":52840,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5724:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5740:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5724:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5724:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5704:74:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52845,"nodeType":"ExpressionStatement","src":"5704:74:88"},{"expression":{"id":52851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52846,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"5788:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5842:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":52847,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5809:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5825:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5809:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5809:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5788:76:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52852,"nodeType":"ExpressionStatement","src":"5788:76:88"},{"expression":{"id":52858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52853,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"5874:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5930:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":52854,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5897:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5913:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5897:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5897:57:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5874:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52859,"nodeType":"ExpressionStatement","src":"5874:80:88"},{"expression":{"id":52865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52860,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"5964:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6017:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52861,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5984:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6000:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5984:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5984:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5964:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52866,"nodeType":"ExpressionStatement","src":"5964:71:88"},{"expression":{"id":52872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52867,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"6045:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6097:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52868,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"6064:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6080:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"6064:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6064:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6045:72:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52873,"nodeType":"ExpressionStatement","src":"6045:72:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52809,"nodeType":"ParameterList","parameters":[],"src":"5300:2:88"},"returnParameters":{"id":52810,"nodeType":"ParameterList","parameters":[],"src":"5303:0:88"},"scope":52912,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52911,"nodeType":"FunctionDefinition","src":"6130:606:88","nodes":[],"body":{"id":52910,"nodeType":"Block","src":"6234:502:88","nodes":[],"statements":[{"assignments":[52885],"declarations":[{"constant":false,"id":52885,"mutability":"mutable","name":"params","nameLocation":"6284:6:88","nodeType":"VariableDeclaration","scope":52910,"src":"6244:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52884,"nodeType":"UserDefinedTypeName","pathNode":{"id":52883,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6244:14:88","6259:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6244:32:88"},"referencedDeclaration":35883,"src":"6244:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52907,"initialValue":{"arguments":[{"arguments":[{"id":52889,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"6369:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6407:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6393:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52890,"name":"address","nodeType":"ElementaryTypeName","src":"6397:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52891,"nodeType":"ArrayTypeName","src":"6397:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6393:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52888,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"6353:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6363:4:88","6386:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"6353:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52896,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"6446:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52897,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"6493:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52898,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"6548:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":52903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6624:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6608:15:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":52900,"nodeType":"UserDefinedTypeName","pathNode":{"id":52899,"name":"Validator","nameLocations":["6612:9:88"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"6612:9:88"},"referencedDeclaration":50211,"src":"6612:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":52901,"nodeType":"ArrayTypeName","src":"6612:11:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":52904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6608:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":52905,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"6663:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":52886,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"6293:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":52887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6308:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"6293:32:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":52906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6340:11:88","6425:19:88","6485:6:88","6528:18:88","6589:17:88","6640:21:88"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"6293:412:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6244:461:88"},{"expression":{"id":52908,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52885,"src":"6723:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":52880,"id":52909,"nodeType":"Return","src":"6716:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"6139:20:88","parameters":{"id":52876,"nodeType":"ParameterList","parameters":[],"src":"6159:2:88"},"returnParameters":{"id":52880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52911,"src":"6193:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52878,"nodeType":"UserDefinedTypeName","pathNode":{"id":52877,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6193:14:88","6208:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6193:32:88"},"referencedDeclaration":35883,"src":"6193:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6192:41:88"},"scope":52912,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52748,"name":"Test","nameLocations":["4530:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4530:4:88"},"id":52749,"nodeType":"InheritanceSpecifier","src":"4530:4:88"},{"baseName":{"id":52750,"name":"TestParams","nameLocations":["4536:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"4536:10:88"},"id":52751,"nodeType":"InheritanceSpecifier","src":"4536:10:88"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52912,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4510:16:88","scope":55376,"usedErrors":[]},{"id":53037,"nodeType":"ContractDefinition","src":"6740:1920:88","nodes":[{"id":52919,"nodeType":"VariableDeclaration","src":"6791:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"6800:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52917,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6791:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52918,"nodeType":"ArrayTypeName","src":"6791:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52922,"nodeType":"VariableDeclaration","src":"6823:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"6832:18:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52920,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6823:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52921,"nodeType":"ArrayTypeName","src":"6823:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52925,"nodeType":"VariableDeclaration","src":"6856:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"6865:24:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52923,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6856:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52924,"nodeType":"ArrayTypeName","src":"6856:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52928,"nodeType":"VariableDeclaration","src":"6895:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"6904:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52926,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6895:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52927,"nodeType":"ArrayTypeName","src":"6895:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52931,"nodeType":"VariableDeclaration","src":"6927:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"6936:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52929,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6927:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52930,"nodeType":"ArrayTypeName","src":"6927:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52934,"nodeType":"VariableDeclaration","src":"6960:28:88","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6979:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52933,"nodeType":"UserDefinedTypeName","pathNode":{"id":52932,"name":"SubnetActorDiamond","nameLocations":["6960:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"6960:18:88"},"referencedDeclaration":36615,"src":"6960:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52937,"nodeType":"VariableDeclaration","src":"6994:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"7018:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52936,"nodeType":"UserDefinedTypeName","pathNode":{"id":52935,"name":"SubnetActorManagerFacet","nameLocations":["6994:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"6994:23:88"},"referencedDeclaration":52151,"src":"6994:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52940,"nodeType":"VariableDeclaration","src":"7033:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"saMockedManager","nameLocation":"7061:15:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":52939,"nodeType":"UserDefinedTypeName","pathNode":{"id":52938,"name":"SubnetActorManagerFacetMock","nameLocations":["7033:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"7033:27:88"},"referencedDeclaration":57957,"src":"7033:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"},{"id":52943,"nodeType":"VariableDeclaration","src":"7082:31:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"7105:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52942,"nodeType":"UserDefinedTypeName","pathNode":{"id":52941,"name":"SubnetActorGetterFacet","nameLocations":["7082:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"7082:22:88"},"referencedDeclaration":50887,"src":"7082:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52946,"nodeType":"VariableDeclaration","src":"7119:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"7135:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52945,"nodeType":"UserDefinedTypeName","pathNode":{"id":52944,"name":"DiamondCutFacet","nameLocations":["7119:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"7119:15:88"},"referencedDeclaration":36918,"src":"7119:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52949,"nodeType":"VariableDeclaration","src":"7149:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"7167:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52948,"nodeType":"UserDefinedTypeName","pathNode":{"id":52947,"name":"DiamondLoupeFacet","nameLocations":["7149:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"7149:17:88"},"referencedDeclaration":37355,"src":"7149:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52988,"nodeType":"FunctionDefinition","src":"7182:463:88","nodes":[],"body":{"id":52987,"nodeType":"Block","src":"7196:449:88","nodes":[],"statements":[{"expression":{"id":52957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52952,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"7206:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7259:24:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":52953,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7226:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7242:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7226:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7226:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7206:78:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52958,"nodeType":"ExpressionStatement","src":"7206:78:88"},{"expression":{"id":52964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52959,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"7294:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7348:25:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":52960,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7315:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7331:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7315:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7315:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7294:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52965,"nodeType":"ExpressionStatement","src":"7294:80:88"},{"expression":{"id":52971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52966,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"7384:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":52969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7444:29:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":52967,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7411:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7427:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7411:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:63:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7384:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52972,"nodeType":"ExpressionStatement","src":"7384:90:88"},{"expression":{"id":52978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52973,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"7484:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7537:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52974,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7504:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7520:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7504:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7504:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7484:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52979,"nodeType":"ExpressionStatement","src":"7484:71:88"},{"expression":{"id":52985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52980,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"7565:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7618:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52981,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7585:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7601:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7585:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7565:73:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52986,"nodeType":"ExpressionStatement","src":"7565:73:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52950,"nodeType":"ParameterList","parameters":[],"src":"7193:2:88"},"returnParameters":{"id":52951,"nodeType":"ParameterList","parameters":[],"src":"7196:0:88"},"scope":53037,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53036,"nodeType":"FunctionDefinition","src":"7651:1007:88","nodes":[],"body":{"id":53035,"nodeType":"Block","src":"7798:860:88","nodes":[],"statements":[{"assignments":[52998],"declarations":[{"constant":false,"id":52998,"mutability":"mutable","name":"native","nameLocation":"7828:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7808:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":52997,"nodeType":"UserDefinedTypeName","pathNode":{"id":52996,"name":"SupplySource","nameLocations":["7808:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"7808:12:88"},"referencedDeclaration":50226,"src":"7808:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53002,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52999,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"7837:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7856:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"7837:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7837:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7808:56:88"},{"assignments":[53007],"declarations":[{"constant":false,"id":53007,"mutability":"mutable","name":"params","nameLocation":"7918:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7874:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53006,"nodeType":"UserDefinedTypeName","pathNode":{"id":53005,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7874:18:88","7893:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7874:36:88"},"referencedDeclaration":36253,"src":"7874:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53032,"initialValue":{"arguments":[{"arguments":[{"id":53011,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"8004:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8042:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8028:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53012,"name":"address","nodeType":"ElementaryTypeName","src":"8032:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53013,"nodeType":"ArrayTypeName","src":"8032:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8028:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53010,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"7988:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7998:4:88","8021:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"7988:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53018,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52990,"src":"8076:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53019,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8103:13:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8117:10:88","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8103:24:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53021,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"8166:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53022,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52611,"src":"8220:22:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53023,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"8277:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53024,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"8336:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53025,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"8400:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53026,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52661,"src":"8457:19:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53027,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"8506:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53028,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"8557:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8572:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"8557:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53030,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52998,"src":"8610:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53008,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"7927:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7946:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"7927:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7978:8:88","8060:14:88","8092:9:88","8141:23:88","8205:13:88","8256:19:88","8316:18:88","8377:21:88","8445:10:88","8490:14:88","8541:14:88","8596:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"7927:700:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7874:753:88"},{"expression":{"id":53033,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53007,"src":"8645:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":52995,"id":53034,"nodeType":"Return","src":"8638:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"7660:35:88","parameters":{"id":52991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52990,"mutability":"mutable","name":"gw","nameLocation":"7713:2:88","nodeType":"VariableDeclaration","scope":53036,"src":"7705:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52989,"name":"address","nodeType":"ElementaryTypeName","src":"7705:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7695:26:88"},"returnParameters":{"id":52995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53036,"src":"7753:43:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52993,"nodeType":"UserDefinedTypeName","pathNode":{"id":52992,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7753:18:88","7772:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7753:36:88"},"referencedDeclaration":36253,"src":"7753:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"7752:45:88"},"scope":53037,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52913,"name":"Test","nameLocations":["6768:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"6768:4:88"},"id":52914,"nodeType":"InheritanceSpecifier","src":"6768:4:88"},{"baseName":{"id":52915,"name":"TestParams","nameLocations":["6774:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"6774:10:88"},"id":52916,"nodeType":"InheritanceSpecifier","src":"6774:10:88"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53037,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6749:15:88","scope":55376,"usedErrors":[]},{"id":55375,"nodeType":"ContractDefinition","src":"8662:23266:88","nodes":[{"id":53051,"nodeType":"UsingForDirective","src":"8766:34:88","nodes":[],"global":false,"libraryName":{"id":53048,"name":"SubnetIDHelper","nameLocations":["8772:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"8772:14:88"},"typeName":{"id":53050,"nodeType":"UserDefinedTypeName","pathNode":{"id":53049,"name":"SubnetID","nameLocations":["8791:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"8791:8:88"},"referencedDeclaration":50077,"src":"8791:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":53055,"nodeType":"UsingForDirective","src":"8805:42:88","nodes":[],"global":false,"libraryName":{"id":53052,"name":"SupplySourceHelper","nameLocations":["8811:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"8811:18:88"},"typeName":{"id":53054,"nodeType":"UserDefinedTypeName","pathNode":{"id":53053,"name":"SupplySource","nameLocations":["8834:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"8834:12:88"},"referencedDeclaration":50226,"src":"8834:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":53059,"nodeType":"UsingForDirective","src":"8852:34:88","nodes":[],"global":false,"libraryName":{"id":53056,"name":"CrossMsgHelper","nameLocations":["8858:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"8858:14:88"},"typeName":{"id":53058,"nodeType":"UserDefinedTypeName","pathNode":{"id":53057,"name":"CrossMsg","nameLocations":["8877:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"8877:8:88"},"referencedDeclaration":49974,"src":"8877:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53063,"nodeType":"UsingForDirective","src":"8891:40:88","nodes":[],"global":false,"libraryName":{"id":53060,"name":"StorableMsgHelper","nameLocations":["8897:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"8897:17:88"},"typeName":{"id":53062,"nodeType":"UserDefinedTypeName","pathNode":{"id":53061,"name":"StorableMsg","nameLocations":["8919:11:88"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"8919:11:88"},"referencedDeclaration":49991,"src":"8919:11:88","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53067,"nodeType":"UsingForDirective","src":"8936:38:88","nodes":[],"global":false,"libraryName":{"id":53064,"name":"FvmAddressHelper","nameLocations":["8942:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":40962,"src":"8942:16:88"},"typeName":{"id":53066,"nodeType":"UserDefinedTypeName","pathNode":{"id":53065,"name":"FvmAddress","nameLocations":["8963:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"8963:10:88"},"referencedDeclaration":49998,"src":"8963:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53071,"nodeType":"EventDefinition","src":"8980:67:88","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"8986:21:88","parameters":{"id":53070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53069,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9024:21:88","nodeType":"VariableDeclaration","scope":53071,"src":"9008:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53068,"name":"address","nodeType":"ElementaryTypeName","src":"9008:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9007:39:88"}},{"id":53075,"nodeType":"FunctionDefinition","src":"9053:16:88","nodes":[],"body":{"id":53074,"nodeType":"Block","src":"9067:2:88","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53072,"nodeType":"ParameterList","parameters":[],"src":"9064:2:88"},"returnParameters":{"id":53073,"nodeType":"ParameterList","parameters":[],"src":"9067:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53250,"nodeType":"FunctionDefinition","src":"9075:1529:88","nodes":[],"body":{"id":53249,"nodeType":"Block","src":"9107:1497:88","nodes":[],"statements":[{"assignments":[53082],"declarations":[{"constant":false,"id":53082,"mutability":"mutable","name":"path","nameLocation":"9134:4:88","nodeType":"VariableDeclaration","scope":53249,"src":"9117:21:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53080,"name":"address","nodeType":"ElementaryTypeName","src":"9117:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53081,"nodeType":"ArrayTypeName","src":"9117:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53088,"initialValue":{"arguments":[{"hexValue":"31","id":53086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9155:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9141:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53083,"name":"address","nodeType":"ElementaryTypeName","src":"9145:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53084,"nodeType":"ArrayTypeName","src":"9145:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9141:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9117:40:88"},{"expression":{"id":53093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53089,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53082,"src":"9167:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53091,"indexExpression":{"hexValue":"30","id":53090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9172:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9167:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53092,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"9177:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9167:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53094,"nodeType":"ExpressionStatement","src":"9167:25:88"},{"assignments":[53099],"declarations":[{"constant":false,"id":53099,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9285:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"9245:59:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53098,"nodeType":"UserDefinedTypeName","pathNode":{"id":53097,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9245:14:88","9260:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9245:32:88"},"referencedDeclaration":35883,"src":"9245:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53102,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53100,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52911,"src":"9307:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9307:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9245:84:88"},{"expression":{"id":53107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53103,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9339:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53105,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53099,"src":"9377:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53104,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53509,"src":"9356:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":53106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:41:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"9339:58:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53108,"nodeType":"ExpressionStatement","src":"9339:58:88"},{"expression":{"id":53116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53109,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"9408:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53113,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9446:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9438:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53111,"name":"address","nodeType":"ElementaryTypeName","src":"9438:7:88","typeDescriptions":{}}},"id":53114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9438:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53110,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"9419:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9419:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"9408:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53117,"nodeType":"ExpressionStatement","src":"9408:54:88"},{"expression":{"id":53125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53118,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"9472:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53122,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9512:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9504:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53120,"name":"address","nodeType":"ElementaryTypeName","src":"9504:7:88","typeDescriptions":{}}},"id":53123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9504:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53119,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"9484:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9484:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"9472:56:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53126,"nodeType":"ExpressionStatement","src":"9472:56:88"},{"expression":{"id":53134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53127,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"9538:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53131,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9588:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9580:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53129,"name":"address","nodeType":"ElementaryTypeName","src":"9580:7:88","typeDescriptions":{}}},"id":53132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9580:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53128,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"9561:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9561:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"9538:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53135,"nodeType":"ExpressionStatement","src":"9538:66:88"},{"expression":{"id":53143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53136,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9614:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53140,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9664:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9656:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53138,"name":"address","nodeType":"ElementaryTypeName","src":"9656:7:88","typeDescriptions":{}}},"id":53141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9656:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53137,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"9637:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9637:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"9614:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53144,"nodeType":"ExpressionStatement","src":"9614:66:88"},{"expression":{"id":53152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53145,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"9690:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53149,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9744:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9736:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53147,"name":"address","nodeType":"ElementaryTypeName","src":"9736:7:88","typeDescriptions":{}}},"id":53150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9736:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53146,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"9715:20:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"9690:70:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53153,"nodeType":"ExpressionStatement","src":"9690:70:88"},{"expression":{"id":53161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53154,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"9770:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53158,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9822:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9814:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53156,"name":"address","nodeType":"ElementaryTypeName","src":"9814:7:88","typeDescriptions":{}}},"id":53159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9814:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53155,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"9794:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9794:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"9770:68:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53162,"nodeType":"ExpressionStatement","src":"9770:68:88"},{"expression":{"id":53170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53163,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52802,"src":"9848:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53167,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9892:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9884:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53165,"name":"address","nodeType":"ElementaryTypeName","src":"9884:7:88","typeDescriptions":{}}},"id":53168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9884:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53164,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"9862:21:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9862:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"9848:60:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53171,"nodeType":"ExpressionStatement","src":"9848:60:88"},{"expression":{"id":53179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53172,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"9918:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53176,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9955:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9947:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53174,"name":"address","nodeType":"ElementaryTypeName","src":"9947:7:88","typeDescriptions":{}}},"id":53177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9947:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53173,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"9929:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9929:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"9918:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53180,"nodeType":"ExpressionStatement","src":"9918:53:88"},{"expression":{"id":53188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53181,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"9981:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53185,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10016:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53183,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:88","typeDescriptions":{}}},"id":53186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53182,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"9992:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9992:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"9981:51:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53189,"nodeType":"ExpressionStatement","src":"9981:51:88"},{"assignments":[53194],"declarations":[{"constant":false,"id":53194,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10141:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"10097:63:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53193,"nodeType":"UserDefinedTypeName","pathNode":{"id":53192,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10097:18:88","10116:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10097:36:88"},"referencedDeclaration":36253,"src":"10097:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53201,"initialValue":{"arguments":[{"arguments":[{"id":53198,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10220:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10212:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53196,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:88","typeDescriptions":{}}},"id":53199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10212:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53195,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"10163:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":53200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10163:82:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10097:148:88"},{"expression":{"id":53206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53202,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10256:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53204,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53194,"src":"10286:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53203,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53710,"src":"10268:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10268:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10256:50:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53207,"nodeType":"ExpressionStatement","src":"10256:50:88"},{"expression":{"id":53215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53208,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"10316:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53212,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10360:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10352:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53210,"name":"address","nodeType":"ElementaryTypeName","src":"10352:7:88","typeDescriptions":{}}},"id":53213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10352:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53209,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"10328:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10328:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"10316:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53216,"nodeType":"ExpressionStatement","src":"10316:55:88"},{"expression":{"id":53224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53217,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"10381:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53221,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10423:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10415:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53219,"name":"address","nodeType":"ElementaryTypeName","src":"10415:7:88","typeDescriptions":{}}},"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10415:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53218,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"10392:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10392:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"10381:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53225,"nodeType":"ExpressionStatement","src":"10381:53:88"},{"expression":{"id":53233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53226,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"10444:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53230,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10481:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10473:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53228,"name":"address","nodeType":"ElementaryTypeName","src":"10473:7:88","typeDescriptions":{}}},"id":53231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10473:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53227,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10455:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10455:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10444:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53234,"nodeType":"ExpressionStatement","src":"10444:48:88"},{"expression":{"id":53242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53235,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"10502:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53239,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10537:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10529:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53237,"name":"address","nodeType":"ElementaryTypeName","src":"10529:7:88","typeDescriptions":{}}},"id":53240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10529:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53236,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10513:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10513:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10502:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53243,"nodeType":"ExpressionStatement","src":"10502:46:88"},{"expression":{"arguments":[{"id":53245,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52682,"src":"10572:19:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10593:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53244,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"10559:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10559:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53248,"nodeType":"ExpressionStatement","src":"10559:38:88"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9084:5:88","parameters":{"id":53076,"nodeType":"ParameterList","parameters":[],"src":"9089:2:88"},"returnParameters":{"id":53077,"nodeType":"ParameterList","parameters":[],"src":"9107:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53509,"nodeType":"FunctionDefinition","src":"10610:3185:88","nodes":[],"body":{"id":53508,"nodeType":"Block","src":"10720:3075:88","nodes":[],"statements":[{"assignments":[53261],"declarations":[{"constant":false,"id":53261,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"10749:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10730:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53260,"nodeType":"UserDefinedTypeName","pathNode":{"id":53259,"name":"CheckpointingFacet","nameLocations":["10730:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10730:18:88"},"referencedDeclaration":39870,"src":"10730:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10770:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53263,"nodeType":"UserDefinedTypeName","pathNode":{"id":53262,"name":"CheckpointingFacet","nameLocations":["10774:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10774:18:88"},"referencedDeclaration":39870,"src":"10774:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10770:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10730:64:88"},{"assignments":[53269],"declarations":[{"constant":false,"id":53269,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"10823:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10804:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53268,"nodeType":"UserDefinedTypeName","pathNode":{"id":53267,"name":"XnetMessagingFacet","nameLocations":["10804:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10804:18:88"},"referencedDeclaration":40144,"src":"10804:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53274,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10844:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53271,"nodeType":"UserDefinedTypeName","pathNode":{"id":53270,"name":"XnetMessagingFacet","nameLocations":["10848:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10848:18:88"},"referencedDeclaration":40144,"src":"10848:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10844:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10804:64:88"},{"assignments":[53277],"declarations":[{"constant":false,"id":53277,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"10899:20:88","nodeType":"VariableDeclaration","scope":53508,"src":"10878:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53276,"nodeType":"UserDefinedTypeName","pathNode":{"id":53275,"name":"TopDownFinalityFacet","nameLocations":["10878:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10878:20:88"},"referencedDeclaration":40071,"src":"10878:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53282,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10922:24:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53279,"nodeType":"UserDefinedTypeName","pathNode":{"id":53278,"name":"TopDownFinalityFacet","nameLocations":["10926:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10926:20:88"},"referencedDeclaration":40071,"src":"10926:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10922:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"10878:70:88"},{"assignments":[53285],"declarations":[{"constant":false,"id":53285,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"10978:19:88","nodeType":"VariableDeclaration","scope":53508,"src":"10958:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53284,"nodeType":"UserDefinedTypeName","pathNode":{"id":53283,"name":"BottomUpRouterFacet","nameLocations":["10958:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"10958:19:88"},"referencedDeclaration":39601,"src":"10958:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53290,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11000:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53287,"nodeType":"UserDefinedTypeName","pathNode":{"id":53286,"name":"BottomUpRouterFacet","nameLocations":["11004:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11004:19:88"},"referencedDeclaration":39601,"src":"11004:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11000:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"10958:67:88"},{"assignments":[53293],"declarations":[{"constant":false,"id":53293,"mutability":"mutable","name":"manager","nameLocation":"11056:7:88","nodeType":"VariableDeclaration","scope":53508,"src":"11036:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53292,"nodeType":"UserDefinedTypeName","pathNode":{"id":53291,"name":"GatewayManagerFacet","nameLocations":["11036:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11036:19:88"},"referencedDeclaration":38870,"src":"11036:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53298,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11066:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53295,"nodeType":"UserDefinedTypeName","pathNode":{"id":53294,"name":"GatewayManagerFacet","nameLocations":["11070:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11070:19:88"},"referencedDeclaration":38870,"src":"11070:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11066:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11036:55:88"},{"assignments":[53301],"declarations":[{"constant":false,"id":53301,"mutability":"mutable","name":"getter","nameLocation":"11120:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11101:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53300,"nodeType":"UserDefinedTypeName","pathNode":{"id":53299,"name":"GatewayGetterFacet","nameLocations":["11101:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11101:18:88"},"referencedDeclaration":38317,"src":"11101:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53306,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11129:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53303,"nodeType":"UserDefinedTypeName","pathNode":{"id":53302,"name":"GatewayGetterFacet","nameLocations":["11133:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11133:18:88"},"referencedDeclaration":38317,"src":"11133:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11101:52:88"},{"assignments":[53309],"declarations":[{"constant":false,"id":53309,"mutability":"mutable","name":"messenger","nameLocation":"11185:9:88","nodeType":"VariableDeclaration","scope":53508,"src":"11163:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53308,"nodeType":"UserDefinedTypeName","pathNode":{"id":53307,"name":"GatewayMessengerFacet","nameLocations":["11163:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11163:21:88"},"referencedDeclaration":39235,"src":"11163:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53314,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11197:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53311,"nodeType":"UserDefinedTypeName","pathNode":{"id":53310,"name":"GatewayMessengerFacet","nameLocations":["11201:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11201:21:88"},"referencedDeclaration":39235,"src":"11201:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11197:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11163:61:88"},{"assignments":[53317],"declarations":[{"constant":false,"id":53317,"mutability":"mutable","name":"cutter","nameLocation":"11250:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11234:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53316,"nodeType":"UserDefinedTypeName","pathNode":{"id":53315,"name":"DiamondCutFacet","nameLocations":["11234:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11234:15:88"},"referencedDeclaration":36918,"src":"11234:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53322,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11259:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53319,"nodeType":"UserDefinedTypeName","pathNode":{"id":53318,"name":"DiamondCutFacet","nameLocations":["11263:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11263:15:88"},"referencedDeclaration":36918,"src":"11263:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11259:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"11234:46:88"},{"assignments":[53325],"declarations":[{"constant":false,"id":53325,"mutability":"mutable","name":"louper","nameLocation":"11308:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11290:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53324,"nodeType":"UserDefinedTypeName","pathNode":{"id":53323,"name":"DiamondLoupeFacet","nameLocations":["11290:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11290:17:88"},"referencedDeclaration":37355,"src":"11290:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53330,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11317:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53327,"nodeType":"UserDefinedTypeName","pathNode":{"id":53326,"name":"DiamondLoupeFacet","nameLocations":["11321:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11321:17:88"},"referencedDeclaration":37355,"src":"11321:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11317:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"11290:50:88"},{"assignments":[53336],"declarations":[{"constant":false,"id":53336,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"11378:12:88","nodeType":"VariableDeclaration","scope":53508,"src":"11351:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53334,"nodeType":"UserDefinedTypeName","pathNode":{"id":53333,"name":"IDiamond.FacetCut","nameLocations":["11351:8:88","11360:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11351:17:88"},"referencedDeclaration":40159,"src":"11351:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53335,"nodeType":"ArrayTypeName","src":"11351:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53343,"initialValue":{"arguments":[{"hexValue":"39","id":53341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11417:1:88","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":53340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11393:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53338,"nodeType":"UserDefinedTypeName","pathNode":{"id":53337,"name":"IDiamond.FacetCut","nameLocations":["11397:8:88","11406:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11397:17:88"},"referencedDeclaration":40159,"src":"11397:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53339,"nodeType":"ArrayTypeName","src":"11397:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11393:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11351:68:88"},{"expression":{"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53344,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11430:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53346,"indexExpression":{"hexValue":"30","id":53345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11443:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11430:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53351,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53261,"src":"11520:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11512:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53349,"name":"address","nodeType":"ElementaryTypeName","src":"11512:7:88","typeDescriptions":{}}},"id":53352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11512:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53353,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11565:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11574:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11565:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11589:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11565:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53356,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"11629:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53347,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11462:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11471:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11462:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11498:12:88","11557:6:88","11610:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11462:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53358,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11448:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11430:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53360,"nodeType":"ExpressionStatement","src":"11430:253:88"},{"expression":{"id":53376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53361,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11694:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53363,"indexExpression":{"hexValue":"36","id":53362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11707:1:88","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11694:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53368,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53269,"src":"11784:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11776:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53366,"name":"address","nodeType":"ElementaryTypeName","src":"11776:7:88","typeDescriptions":{}}},"id":53369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11776:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53370,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11829:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11838:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11829:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11853:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11829:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53373,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"11893:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53364,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11726:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11735:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11726:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11762:12:88","11821:6:88","11874:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11726:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53375,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11712:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11694:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53377,"nodeType":"ExpressionStatement","src":"11694:253:88"},{"expression":{"id":53393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53378,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11958:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53380,"indexExpression":{"hexValue":"37","id":53379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11971:1:88","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11958:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53385,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53277,"src":"12048:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12040:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53383,"name":"address","nodeType":"ElementaryTypeName","src":"12040:7:88","typeDescriptions":{}}},"id":53386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12040:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53387,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12095:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12104:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12095:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12119:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12095:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53390,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"12159:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53381,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11990:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11999:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11990:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12026:12:88","12087:6:88","12140:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11990:215:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53392,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11976:239:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11958:257:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53394,"nodeType":"ExpressionStatement","src":"11958:257:88"},{"expression":{"id":53410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53395,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12226:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53397,"indexExpression":{"hexValue":"38","id":53396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:88","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12226:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53402,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53285,"src":"12316:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12308:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53400,"name":"address","nodeType":"ElementaryTypeName","src":"12308:7:88","typeDescriptions":{}}},"id":53403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12308:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53404,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12362:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12371:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12362:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12386:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12362:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53407,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"12426:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53398,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12258:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12267:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12258:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12294:12:88","12354:6:88","12407:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12258:213:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53409,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12244:237:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12226:255:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53411,"nodeType":"ExpressionStatement","src":"12226:255:88"},{"expression":{"id":53427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53412,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12492:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53414,"indexExpression":{"hexValue":"31","id":53413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12505:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12492:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53419,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53293,"src":"12582:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12574:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53417,"name":"address","nodeType":"ElementaryTypeName","src":"12574:7:88","typeDescriptions":{}}},"id":53420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12574:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53421,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12616:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12625:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12616:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12640:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12616:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53424,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"12680:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53415,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12524:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12533:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12524:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12560:12:88","12608:6:88","12661:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12524:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12510:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12492:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53428,"nodeType":"ExpressionStatement","src":"12492:231:88"},{"expression":{"id":53444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53429,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12734:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53431,"indexExpression":{"hexValue":"32","id":53430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12747:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12734:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53436,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53301,"src":"12824:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12816:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53434,"name":"address","nodeType":"ElementaryTypeName","src":"12816:7:88","typeDescriptions":{}}},"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12816:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53438,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12857:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12866:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12857:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12881:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12857:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53441,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"12921:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53432,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12766:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12775:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12766:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12802:12:88","12849:6:88","12902:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12766:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53443,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12752:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12734:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53445,"nodeType":"ExpressionStatement","src":"12734:229:88"},{"expression":{"id":53461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53446,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12974:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53448,"indexExpression":{"hexValue":"33","id":53447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12987:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12974:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53453,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53309,"src":"13064:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13056:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53451,"name":"address","nodeType":"ElementaryTypeName","src":"13056:7:88","typeDescriptions":{}}},"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13056:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53455,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13100:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13109:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13100:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13124:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13100:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53458,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"13164:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53449,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13006:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13015:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13006:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13042:12:88","13092:6:88","13145:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13006:193:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12992:217:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12974:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53462,"nodeType":"ExpressionStatement","src":"12974:235:88"},{"expression":{"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53463,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13220:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53465,"indexExpression":{"hexValue":"34","id":53464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13233:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13220:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53470,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53325,"src":"13310:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13302:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53468,"name":"address","nodeType":"ElementaryTypeName","src":"13302:7:88","typeDescriptions":{}}},"id":53471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13302:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53472,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13343:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13352:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13343:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13367:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13343:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53475,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"13407:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53466,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13252:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13261:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13252:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13288:12:88","13335:6:88","13388:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13252:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13238:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13220:228:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53479,"nodeType":"ExpressionStatement","src":"13220:228:88"},{"expression":{"id":53495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53480,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13459:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53482,"indexExpression":{"hexValue":"35","id":53481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13472:1:88","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13459:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53487,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53317,"src":"13549:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53485,"name":"address","nodeType":"ElementaryTypeName","src":"13541:7:88","typeDescriptions":{}}},"id":53488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13541:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53489,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13582:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13591:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13582:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13606:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13582:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53492,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"13646:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53483,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13491:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13500:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13491:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13527:12:88","13574:6:88","13627:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13491:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13477:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13459:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53496,"nodeType":"ExpressionStatement","src":"13459:229:88"},{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53497,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13699:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53501,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13735:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53502,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53253,"src":"13749:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"13716:18:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":53499,"nodeType":"UserDefinedTypeName","pathNode":{"id":53498,"name":"GatewayDiamond","nameLocations":["13720:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"13720:14:88"},"referencedDeclaration":36170,"src":"13720:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13716:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"13699:57:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53505,"nodeType":"ExpressionStatement","src":"13699:57:88"},{"expression":{"id":53506,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13774:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53258,"id":53507,"nodeType":"Return","src":"13767:21:88"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"10619:20:88","parameters":{"id":53254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53253,"mutability":"mutable","name":"params","nameLocation":"10680:6:88","nodeType":"VariableDeclaration","scope":53509,"src":"10640:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53252,"nodeType":"UserDefinedTypeName","pathNode":{"id":53251,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10640:14:88","10655:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10640:32:88"},"referencedDeclaration":35883,"src":"10640:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"10639:48:88"},"returnParameters":{"id":53258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53509,"src":"10704:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53256,"nodeType":"UserDefinedTypeName","pathNode":{"id":53255,"name":"GatewayDiamond","nameLocations":["10704:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"10704:14:88"},"referencedDeclaration":36170,"src":"10704:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"10703:16:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53575,"nodeType":"FunctionDefinition","src":"13801:854:88","nodes":[],"body":{"id":53574,"nodeType":"Block","src":"14009:646:88","nodes":[],"statements":[{"assignments":[53527],"declarations":[{"constant":false,"id":53527,"mutability":"mutable","name":"diamondCut","nameLocation":"14046:10:88","nodeType":"VariableDeclaration","scope":53574,"src":"14019:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53525,"nodeType":"UserDefinedTypeName","pathNode":{"id":53524,"name":"IDiamond.FacetCut","nameLocations":["14019:8:88","14028:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14019:17:88"},"referencedDeclaration":40159,"src":"14019:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53526,"nodeType":"ArrayTypeName","src":"14019:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53534,"initialValue":{"arguments":[{"hexValue":"32","id":53532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14083:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14059:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53529,"nodeType":"UserDefinedTypeName","pathNode":{"id":53528,"name":"IDiamond.FacetCut","nameLocations":["14063:8:88","14072:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14063:17:88"},"referencedDeclaration":40159,"src":"14063:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53530,"nodeType":"ArrayTypeName","src":"14063:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14059:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14019:66:88"},{"expression":{"id":53547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53535,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14096:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53537,"indexExpression":{"hexValue":"30","id":53536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14096:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53540,"name":"getterFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53514,"src":"14176:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53541,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14214:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14223:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14214:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14238:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14214:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53544,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"14278:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53538,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14126:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14135:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14126:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14162:12:88","14206:6:88","14259:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14126:184:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53546,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14112:208:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14096:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53548,"nodeType":"ExpressionStatement","src":"14096:224:88"},{"expression":{"id":53561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53549,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14331:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53551,"indexExpression":{"hexValue":"31","id":53550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14342:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14331:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53554,"name":"managerFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"14411:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53555,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14450:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14459:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14450:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14474:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14450:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53558,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"14514:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53552,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14361:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14370:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14361:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14397:12:88","14442:6:88","14495:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14361:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53560,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14347:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14331:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53562,"nodeType":"ExpressionStatement","src":"14331:226:88"},{"expression":{"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53563,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14568:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53567,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14603:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53568,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53512,"src":"14615:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14580:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53565,"nodeType":"UserDefinedTypeName","pathNode":{"id":53564,"name":"SubnetActorDiamond","nameLocations":["14584:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14584:18:88"},"referencedDeclaration":36615,"src":"14584:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14580:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"14568:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53571,"nodeType":"ExpressionStatement","src":"14568:54:88"},{"expression":{"id":53572,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14639:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53521,"id":53573,"nodeType":"Return","src":"14632:16:88"}]},"functionSelector":"0d8d4acf","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"13810:35:88","parameters":{"id":53517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53512,"mutability":"mutable","name":"params","nameLocation":"13899:6:88","nodeType":"VariableDeclaration","scope":53575,"src":"13855:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53511,"nodeType":"UserDefinedTypeName","pathNode":{"id":53510,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["13855:18:88","13874:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"13855:36:88"},"referencedDeclaration":36253,"src":"13855:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53514,"mutability":"mutable","name":"getterFaucet","nameLocation":"13923:12:88","nodeType":"VariableDeclaration","scope":53575,"src":"13915:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53513,"name":"address","nodeType":"ElementaryTypeName","src":"13915:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53516,"mutability":"mutable","name":"managerFaucet","nameLocation":"13953:13:88","nodeType":"VariableDeclaration","scope":53575,"src":"13945:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53515,"name":"address","nodeType":"ElementaryTypeName","src":"13945:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13845:127:88"},"returnParameters":{"id":53521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53575,"src":"13989:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53519,"nodeType":"UserDefinedTypeName","pathNode":{"id":53518,"name":"SubnetActorDiamond","nameLocations":["13989:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"13989:18:88"},"referencedDeclaration":36615,"src":"13989:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"13988:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53710,"nodeType":"FunctionDefinition","src":"14661:1518:88","nodes":[],"body":{"id":53709,"nodeType":"Block","src":"14776:1403:88","nodes":[],"statements":[{"assignments":[53586],"declarations":[{"constant":false,"id":53586,"mutability":"mutable","name":"manager","nameLocation":"14810:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"14786:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53585,"nodeType":"UserDefinedTypeName","pathNode":{"id":53584,"name":"SubnetActorManagerFacet","nameLocations":["14786:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14786:23:88"},"referencedDeclaration":52151,"src":"14786:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53591,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14820:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53588,"nodeType":"UserDefinedTypeName","pathNode":{"id":53587,"name":"SubnetActorManagerFacet","nameLocations":["14824:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14824:23:88"},"referencedDeclaration":52151,"src":"14824:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14820:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"14786:63:88"},{"assignments":[53594],"declarations":[{"constant":false,"id":53594,"mutability":"mutable","name":"getter","nameLocation":"14882:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14859:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53593,"nodeType":"UserDefinedTypeName","pathNode":{"id":53592,"name":"SubnetActorGetterFacet","nameLocations":["14859:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14859:22:88"},"referencedDeclaration":50887,"src":"14859:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53599,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14891:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53596,"nodeType":"UserDefinedTypeName","pathNode":{"id":53595,"name":"SubnetActorGetterFacet","nameLocations":["14895:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14895:22:88"},"referencedDeclaration":50887,"src":"14895:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14891:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"14859:60:88"},{"assignments":[53602],"declarations":[{"constant":false,"id":53602,"mutability":"mutable","name":"louper","nameLocation":"14947:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14929:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53601,"nodeType":"UserDefinedTypeName","pathNode":{"id":53600,"name":"DiamondLoupeFacet","nameLocations":["14929:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14929:17:88"},"referencedDeclaration":37355,"src":"14929:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53607,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14956:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53604,"nodeType":"UserDefinedTypeName","pathNode":{"id":53603,"name":"DiamondLoupeFacet","nameLocations":["14960:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14960:17:88"},"referencedDeclaration":37355,"src":"14960:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14956:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"14929:50:88"},{"assignments":[53610],"declarations":[{"constant":false,"id":53610,"mutability":"mutable","name":"cutter","nameLocation":"15005:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14989:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53609,"nodeType":"UserDefinedTypeName","pathNode":{"id":53608,"name":"DiamondCutFacet","nameLocations":["14989:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"14989:15:88"},"referencedDeclaration":36918,"src":"14989:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53615,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"15014:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53612,"nodeType":"UserDefinedTypeName","pathNode":{"id":53611,"name":"DiamondCutFacet","nameLocations":["15018:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"15018:15:88"},"referencedDeclaration":36918,"src":"15018:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15014:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"14989:46:88"},{"assignments":[53621],"declarations":[{"constant":false,"id":53621,"mutability":"mutable","name":"diamondCut","nameLocation":"15073:10:88","nodeType":"VariableDeclaration","scope":53709,"src":"15046:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53619,"nodeType":"UserDefinedTypeName","pathNode":{"id":53618,"name":"IDiamond.FacetCut","nameLocations":["15046:8:88","15055:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15046:17:88"},"referencedDeclaration":40159,"src":"15046:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53620,"nodeType":"ArrayTypeName","src":"15046:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53628,"initialValue":{"arguments":[{"hexValue":"34","id":53626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15110:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15086:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53623,"nodeType":"UserDefinedTypeName","pathNode":{"id":53622,"name":"IDiamond.FacetCut","nameLocations":["15090:8:88","15099:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15090:17:88"},"referencedDeclaration":40159,"src":"15090:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53624,"nodeType":"ArrayTypeName","src":"15090:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15086:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15046:66:88"},{"expression":{"id":53644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53629,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15123:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53631,"indexExpression":{"hexValue":"30","id":53630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15134:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15123:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53636,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53586,"src":"15211:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53634,"name":"address","nodeType":"ElementaryTypeName","src":"15203:7:88","typeDescriptions":{}}},"id":53637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15203:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53638,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15245:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15254:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15245:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15269:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15245:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53641,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"15309:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53632,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15153:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15162:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15153:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15189:12:88","15237:6:88","15290:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15153:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53643,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15139:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15123:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53645,"nodeType":"ExpressionStatement","src":"15123:229:88"},{"expression":{"id":53661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53646,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15363:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53648,"indexExpression":{"hexValue":"31","id":53647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15374:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15363:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53653,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53594,"src":"15451:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15443:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53651,"name":"address","nodeType":"ElementaryTypeName","src":"15443:7:88","typeDescriptions":{}}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15443:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53655,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15484:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15493:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15484:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15508:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15484:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53658,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"15548:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53649,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15393:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15402:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15393:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15429:12:88","15476:6:88","15529:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15393:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53660,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15379:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15363:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53662,"nodeType":"ExpressionStatement","src":"15363:227:88"},{"expression":{"id":53678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53663,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15601:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53665,"indexExpression":{"hexValue":"32","id":53664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15612:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15601:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53670,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53610,"src":"15689:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15681:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53668,"name":"address","nodeType":"ElementaryTypeName","src":"15681:7:88","typeDescriptions":{}}},"id":53671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15681:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53672,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15722:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15722:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15746:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15722:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53675,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"15786:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53666,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15631:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15640:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15631:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15667:12:88","15714:6:88","15767:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15631:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53677,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15617:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15601:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53679,"nodeType":"ExpressionStatement","src":"15601:227:88"},{"expression":{"id":53695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53680,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15839:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53682,"indexExpression":{"hexValue":"33","id":53681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15850:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15839:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53687,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53602,"src":"15927:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15919:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53685,"name":"address","nodeType":"ElementaryTypeName","src":"15919:7:88","typeDescriptions":{}}},"id":53688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15919:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53689,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15960:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15969:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15960:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15984:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15960:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53692,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"16024:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53683,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15869:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15878:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15869:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15905:12:88","15952:6:88","16005:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15869:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53694,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15855:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15839:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53696,"nodeType":"ExpressionStatement","src":"15839:226:88"},{"assignments":[53699],"declarations":[{"constant":false,"id":53699,"mutability":"mutable","name":"diamond","nameLocation":"16095:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"16076:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53698,"nodeType":"UserDefinedTypeName","pathNode":{"id":53697,"name":"SubnetActorDiamond","nameLocations":["16076:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16076:18:88"},"referencedDeclaration":36615,"src":"16076:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53706,"initialValue":{"arguments":[{"id":53703,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"16128:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53704,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53578,"src":"16140:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16105:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53701,"nodeType":"UserDefinedTypeName","pathNode":{"id":53700,"name":"SubnetActorDiamond","nameLocations":["16109:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16109:18:88"},"referencedDeclaration":36615,"src":"16109:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16105:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"16076:71:88"},{"expression":{"id":53707,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53699,"src":"16165:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53583,"id":53708,"nodeType":"Return","src":"16158:14:88"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"14670:17:88","parameters":{"id":53579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53578,"mutability":"mutable","name":"params","nameLocation":"14732:6:88","nodeType":"VariableDeclaration","scope":53710,"src":"14688:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53577,"nodeType":"UserDefinedTypeName","pathNode":{"id":53576,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14688:18:88","14707:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14688:36:88"},"referencedDeclaration":36253,"src":"14688:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"14687:52:88"},"returnParameters":{"id":53583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53710,"src":"14756:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53581,"nodeType":"UserDefinedTypeName","pathNode":{"id":53580,"name":"SubnetActorDiamond","nameLocations":["14756:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14756:18:88"},"referencedDeclaration":36615,"src":"14756:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14755:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53739,"nodeType":"FunctionDefinition","src":"16185:522:88","nodes":[],"body":{"id":53738,"nodeType":"Block","src":"16429:278:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":53727,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53712,"src":"16470:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53728,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53715,"src":"16499:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53729,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53717,"src":"16523:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53730,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53719,"src":"16561:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53731,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53721,"src":"16589:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53732,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53723,"src":"16615:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53733,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"16648:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16663:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"16648:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16687:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53726,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53943,"src":"16439:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$37359_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$50165_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":53736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16439:261:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53737,"nodeType":"ExpressionStatement","src":"16439:261:88"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16194:17:88","parameters":{"id":53724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53712,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16229:15:88","nodeType":"VariableDeclaration","scope":53739,"src":"16221:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53711,"name":"address","nodeType":"ElementaryTypeName","src":"16221:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53715,"mutability":"mutable","name":"_consensus","nameLocation":"16268:10:88","nodeType":"VariableDeclaration","scope":53739,"src":"16254:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53714,"nodeType":"UserDefinedTypeName","pathNode":{"id":53713,"name":"ConsensusType","nameLocations":["16254:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16254:13:88"},"referencedDeclaration":37359,"src":"16254:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53717,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16296:24:88","nodeType":"VariableDeclaration","scope":53739,"src":"16288:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53716,"name":"uint256","nodeType":"ElementaryTypeName","src":"16288:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53719,"mutability":"mutable","name":"_minValidators","nameLocation":"16337:14:88","nodeType":"VariableDeclaration","scope":53739,"src":"16330:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53718,"name":"uint64","nodeType":"ElementaryTypeName","src":"16330:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53721,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16368:12:88","nodeType":"VariableDeclaration","scope":53739,"src":"16361:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53720,"name":"uint64","nodeType":"ElementaryTypeName","src":"16361:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53723,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16396:19:88","nodeType":"VariableDeclaration","scope":53739,"src":"16390:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53722,"name":"uint8","nodeType":"ElementaryTypeName","src":"16390:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16211:210:88"},"returnParameters":{"id":53725,"nodeType":"ParameterList","parameters":[],"src":"16429:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53943,"nodeType":"FunctionDefinition","src":"16713:2630:88","nodes":[],"body":{"id":53942,"nodeType":"Block","src":"17036:2307:88","nodes":[],"statements":[{"assignments":[53762],"declarations":[{"constant":false,"id":53762,"mutability":"mutable","name":"_parentId","nameLocation":"17062:9:88","nodeType":"VariableDeclaration","scope":53942,"src":"17046:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53761,"nodeType":"UserDefinedTypeName","pathNode":{"id":53760,"name":"SubnetID","nameLocations":["17046:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"17046:8:88"},"referencedDeclaration":50077,"src":"17046:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53771,"initialValue":{"arguments":[{"id":53764,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"17083:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17114:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17100:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53765,"name":"address","nodeType":"ElementaryTypeName","src":"17104:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53766,"nodeType":"ArrayTypeName","src":"17104:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17100:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53763,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"17074:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17074:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"17046:71:88"},{"expression":{"id":53777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53772,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17128:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17140:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53774,"nodeType":"UserDefinedTypeName","pathNode":{"id":53773,"name":"SubnetActorManagerFacet","nameLocations":["17144:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"17144:23:88"},"referencedDeclaration":52151,"src":"17144:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17140:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"17128:41:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53778,"nodeType":"ExpressionStatement","src":"17128:41:88"},{"expression":{"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53779,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17179:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17190:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53781,"nodeType":"UserDefinedTypeName","pathNode":{"id":53780,"name":"SubnetActorGetterFacet","nameLocations":["17194:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"17194:22:88"},"referencedDeclaration":50887,"src":"17194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17190:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"17179:39:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53785,"nodeType":"ExpressionStatement","src":"17179:39:88"},{"expression":{"id":53791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53786,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17228:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17239:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53788,"nodeType":"UserDefinedTypeName","pathNode":{"id":53787,"name":"DiamondCutFacet","nameLocations":["17243:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"17243:15:88"},"referencedDeclaration":36918,"src":"17243:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17239:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"17228:32:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53792,"nodeType":"ExpressionStatement","src":"17228:32:88"},{"expression":{"id":53798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53793,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"17270:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17281:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53795,"nodeType":"UserDefinedTypeName","pathNode":{"id":53794,"name":"DiamondLoupeFacet","nameLocations":["17285:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"17285:17:88"},"referencedDeclaration":37355,"src":"17285:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17281:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"17270:34:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53799,"nodeType":"ExpressionStatement","src":"17270:34:88"},{"assignments":[53805],"declarations":[{"constant":false,"id":53805,"mutability":"mutable","name":"diamondCut","nameLocation":"17342:10:88","nodeType":"VariableDeclaration","scope":53942,"src":"17315:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53803,"nodeType":"UserDefinedTypeName","pathNode":{"id":53802,"name":"IDiamond.FacetCut","nameLocations":["17315:8:88","17324:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17315:17:88"},"referencedDeclaration":40159,"src":"17315:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53804,"nodeType":"ArrayTypeName","src":"17315:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53812,"initialValue":{"arguments":[{"hexValue":"34","id":53810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17379:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17355:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53807,"nodeType":"UserDefinedTypeName","pathNode":{"id":53806,"name":"IDiamond.FacetCut","nameLocations":["17359:8:88","17368:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17359:17:88"},"referencedDeclaration":40159,"src":"17359:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53808,"nodeType":"ArrayTypeName","src":"17359:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17355:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17315:66:88"},{"expression":{"id":53828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53813,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17392:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53815,"indexExpression":{"hexValue":"30","id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17403:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17392:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53820,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17480:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17472:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53818,"name":"address","nodeType":"ElementaryTypeName","src":"17472:7:88","typeDescriptions":{}}},"id":53821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17472:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53822,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17516:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17516:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17540:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17516:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53825,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"17580:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53816,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17422:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17431:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17422:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17458:12:88","17508:6:88","17561:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17422:191:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53827,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17408:215:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17392:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53829,"nodeType":"ExpressionStatement","src":"17392:231:88"},{"expression":{"id":53845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53830,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17634:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53832,"indexExpression":{"hexValue":"31","id":53831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17645:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17634:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53837,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17722:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17714:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53835,"name":"address","nodeType":"ElementaryTypeName","src":"17714:7:88","typeDescriptions":{}}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17714:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53839,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17757:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17766:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17757:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17781:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17757:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53842,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"17821:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53833,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17664:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17673:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17664:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17700:12:88","17749:6:88","17802:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17664:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53844,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17650:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17634:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53846,"nodeType":"ExpressionStatement","src":"17634:229:88"},{"expression":{"id":53862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53847,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17874:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53849,"indexExpression":{"hexValue":"32","id":53848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17885:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17874:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53854,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17962:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17954:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53852,"name":"address","nodeType":"ElementaryTypeName","src":"17954:7:88","typeDescriptions":{}}},"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17954:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53856,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17997:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18006:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17997:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18021:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17997:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53859,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"18061:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53850,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17904:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17904:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17940:12:88","17989:6:88","18042:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17904:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53861,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17890:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17874:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53863,"nodeType":"ExpressionStatement","src":"17874:229:88"},{"expression":{"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53864,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18114:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53866,"indexExpression":{"hexValue":"33","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18125:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18114:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53871,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"18202:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18194:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53869,"name":"address","nodeType":"ElementaryTypeName","src":"18194:7:88","typeDescriptions":{}}},"id":53872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18194:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53873,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18237:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18246:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18237:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18261:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18237:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53876,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"18301:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53867,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18144:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18153:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18144:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18180:12:88","18229:6:88","18282:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18144:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18130:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18114:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53880,"nodeType":"ExpressionStatement","src":"18114:229:88"},{"expression":{"id":53904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53881,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"18354:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53885,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18402:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":53888,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53762,"src":"18491:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53889,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53741,"src":"18534:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53890,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53744,"src":"18578:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53891,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53746,"src":"18631:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53892,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53748,"src":"18688:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53893,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53750,"src":"18741:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53894,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53752,"src":"18791:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53895,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53757,"src":"18851:22:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":53896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18903:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":53897,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53755,"src":"18939:15:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53898,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"18988:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53899,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"19041:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19060:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"19041:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19041:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53886,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"18426:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18445:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"18426:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18481:8:88","18518:14:88","18567:9:88","18606:23:88","18673:13:88","18720:19:88","18771:18:88","18828:21:88","18891:10:88","18923:14:88","18972:14:88","19027:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"18426:657:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18366:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53883,"nodeType":"UserDefinedTypeName","pathNode":{"id":53882,"name":"SubnetActorDiamond","nameLocations":["18370:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18370:18:88"},"referencedDeclaration":36615,"src":"18370:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18366:727:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"18354:739:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53905,"nodeType":"ExpressionStatement","src":"18354:739:88"},{"expression":{"id":53913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53906,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"19104:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53910,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19148:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19140:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53908,"name":"address","nodeType":"ElementaryTypeName","src":"19140:7:88","typeDescriptions":{}}},"id":53911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19140:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53907,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"19116:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19116:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"19104:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53914,"nodeType":"ExpressionStatement","src":"19104:55:88"},{"expression":{"id":53922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53915,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"19169:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53919,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19211:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53917,"name":"address","nodeType":"ElementaryTypeName","src":"19203:7:88","typeDescriptions":{}}},"id":53920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19203:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53916,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"19180:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19180:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"19169:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53923,"nodeType":"ExpressionStatement","src":"19169:53:88"},{"expression":{"id":53931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53924,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"19232:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53928,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19267:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19259:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53926,"name":"address","nodeType":"ElementaryTypeName","src":"19259:7:88","typeDescriptions":{}}},"id":53929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19259:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53925,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"19243:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19243:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"19232:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53932,"nodeType":"ExpressionStatement","src":"19232:46:88"},{"expression":{"id":53940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53933,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"19288:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53937,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19325:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19317:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53935,"name":"address","nodeType":"ElementaryTypeName","src":"19317:7:88","typeDescriptions":{}}},"id":53938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19317:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53934,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"19299:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19299:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"19288:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53941,"nodeType":"ExpressionStatement","src":"19288:48:88"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16722:17:88","parameters":{"id":53758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53741,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16757:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16749:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53740,"name":"address","nodeType":"ElementaryTypeName","src":"16749:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53744,"mutability":"mutable","name":"_consensus","nameLocation":"16796:10:88","nodeType":"VariableDeclaration","scope":53943,"src":"16782:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53743,"nodeType":"UserDefinedTypeName","pathNode":{"id":53742,"name":"ConsensusType","nameLocations":["16782:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16782:13:88"},"referencedDeclaration":37359,"src":"16782:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53746,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16824:24:88","nodeType":"VariableDeclaration","scope":53943,"src":"16816:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53745,"name":"uint256","nodeType":"ElementaryTypeName","src":"16816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53748,"mutability":"mutable","name":"_minValidators","nameLocation":"16865:14:88","nodeType":"VariableDeclaration","scope":53943,"src":"16858:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53747,"name":"uint64","nodeType":"ElementaryTypeName","src":"16858:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53750,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16896:12:88","nodeType":"VariableDeclaration","scope":53943,"src":"16889:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53749,"name":"uint64","nodeType":"ElementaryTypeName","src":"16889:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53752,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16924:19:88","nodeType":"VariableDeclaration","scope":53943,"src":"16918:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53751,"name":"uint8","nodeType":"ElementaryTypeName","src":"16918:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53755,"mutability":"mutable","name":"_permissionMode","nameLocation":"16968:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16953:30:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":53754,"nodeType":"UserDefinedTypeName","pathNode":{"id":53753,"name":"PermissionMode","nameLocations":["16953:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"16953:14:88"},"referencedDeclaration":50165,"src":"16953:14:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53757,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"17000:22:88","nodeType":"VariableDeclaration","scope":53943,"src":"16993:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53756,"name":"uint16","nodeType":"ElementaryTypeName","src":"16993:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16739:289:88"},"returnParameters":{"id":53759,"nodeType":"ParameterList","parameters":[],"src":"17036:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54036,"nodeType":"FunctionDefinition","src":"19349:1021:88","nodes":[],"body":{"id":54035,"nodeType":"Block","src":"19441:929:88","nodes":[],"statements":[{"assignments":[53953],"declarations":[{"constant":false,"id":53953,"mutability":"mutable","name":"mockedManager","nameLocation":"19479:13:88","nodeType":"VariableDeclaration","scope":54035,"src":"19451:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":53952,"nodeType":"UserDefinedTypeName","pathNode":{"id":53951,"name":"SubnetActorManagerFacetMock","nameLocations":["19451:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19451:27:88"},"referencedDeclaration":57957,"src":"19451:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"}],"id":53958,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19495:31:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacetMock_$57957_$","typeString":"function () returns (contract SubnetActorManagerFacetMock)"},"typeName":{"id":53955,"nodeType":"UserDefinedTypeName","pathNode":{"id":53954,"name":"SubnetActorManagerFacetMock","nameLocations":["19499:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19499:27:88"},"referencedDeclaration":57957,"src":"19499:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}},"id":53957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19495:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"VariableDeclarationStatement","src":"19451:77:88"},{"assignments":[53961],"declarations":[{"constant":false,"id":53961,"mutability":"mutable","name":"getter","nameLocation":"19561:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"19538:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53960,"nodeType":"UserDefinedTypeName","pathNode":{"id":53959,"name":"SubnetActorGetterFacet","nameLocations":["19538:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19538:22:88"},"referencedDeclaration":50887,"src":"19538:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53966,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19570:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53963,"nodeType":"UserDefinedTypeName","pathNode":{"id":53962,"name":"SubnetActorGetterFacet","nameLocations":["19574:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19574:22:88"},"referencedDeclaration":50887,"src":"19574:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19570:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"19538:60:88"},{"assignments":[53972],"declarations":[{"constant":false,"id":53972,"mutability":"mutable","name":"diamondCut","nameLocation":"19636:10:88","nodeType":"VariableDeclaration","scope":54035,"src":"19609:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53970,"nodeType":"UserDefinedTypeName","pathNode":{"id":53969,"name":"IDiamond.FacetCut","nameLocations":["19609:8:88","19618:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19609:17:88"},"referencedDeclaration":40159,"src":"19609:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53971,"nodeType":"ArrayTypeName","src":"19609:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53979,"initialValue":{"arguments":[{"hexValue":"32","id":53977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19673:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19649:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53974,"nodeType":"UserDefinedTypeName","pathNode":{"id":53973,"name":"IDiamond.FacetCut","nameLocations":["19653:8:88","19662:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19653:17:88"},"referencedDeclaration":40159,"src":"19653:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53975,"nodeType":"ArrayTypeName","src":"19653:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19649:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"19609:66:88"},{"expression":{"id":53995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53980,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19686:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53982,"indexExpression":{"hexValue":"30","id":53981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19697:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19686:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53987,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53953,"src":"19774:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}],"id":53986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19766:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53985,"name":"address","nodeType":"ElementaryTypeName","src":"19766:7:88","typeDescriptions":{}}},"id":53988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19766:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53989,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19814:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19823:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"19814:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19838:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"19814:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53992,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"19878:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53983,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19716:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19725:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19716:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19752:12:88","19806:6:88","19859:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19716:201:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53994,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19702:225:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19686:241:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53996,"nodeType":"ExpressionStatement","src":"19686:241:88"},{"expression":{"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53997,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19938:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53999,"indexExpression":{"hexValue":"31","id":53998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19938:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54004,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53961,"src":"20026:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":54003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20018:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54002,"name":"address","nodeType":"ElementaryTypeName","src":"20018:7:88","typeDescriptions":{}}},"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20018:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54006,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20059:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20068:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20059:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20083:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20059:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54009,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"20123:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54000,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19968:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19977:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19968:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20004:12:88","20051:6:88","20104:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19968:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54011,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19954:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19938:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54013,"nodeType":"ExpressionStatement","src":"19938:227:88"},{"assignments":[54018],"declarations":[{"constant":false,"id":54018,"mutability":"mutable","name":"params","nameLocation":"20220:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"20176:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54017,"nodeType":"UserDefinedTypeName","pathNode":{"id":54016,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["20176:18:88","20195:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"20176:36:88"},"referencedDeclaration":36253,"src":"20176:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54022,"initialValue":{"arguments":[{"id":54020,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53945,"src":"20265:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54019,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"20229:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":54021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20229:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"20176:92:88"},{"assignments":[54025],"declarations":[{"constant":false,"id":54025,"mutability":"mutable","name":"d","nameLocation":"20298:1:88","nodeType":"VariableDeclaration","scope":54035,"src":"20279:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54024,"nodeType":"UserDefinedTypeName","pathNode":{"id":54023,"name":"SubnetActorDiamond","nameLocations":["20279:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20279:18:88"},"referencedDeclaration":36615,"src":"20279:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54032,"initialValue":{"arguments":[{"id":54029,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"20325:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54030,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54018,"src":"20337:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20302:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54027,"nodeType":"UserDefinedTypeName","pathNode":{"id":54026,"name":"SubnetActorDiamond","nameLocations":["20306:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20306:18:88"},"referencedDeclaration":36615,"src":"20306:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20302:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"20279:65:88"},{"expression":{"id":54033,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54025,"src":"20362:1:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53950,"id":54034,"nodeType":"Return","src":"20355:8:88"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"19358:34:88","parameters":{"id":53946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53945,"mutability":"mutable","name":"gw","nameLocation":"19401:2:88","nodeType":"VariableDeclaration","scope":54036,"src":"19393:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53944,"name":"address","nodeType":"ElementaryTypeName","src":"19393:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19392:12:88"},"returnParameters":{"id":53950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54036,"src":"19421:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53948,"nodeType":"UserDefinedTypeName","pathNode":{"id":53947,"name":"SubnetActorDiamond","nameLocations":["19421:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"19421:18:88"},"referencedDeclaration":36615,"src":"19421:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"19420:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54178,"nodeType":"FunctionDefinition","src":"20422:1703:88","nodes":[],"body":{"id":54177,"nodeType":"Block","src":"20560:1565:88","nodes":[],"statements":[{"assignments":[54050],"declarations":[{"constant":false,"id":54050,"mutability":"mutable","name":"diamondCut","nameLocation":"20597:10:88","nodeType":"VariableDeclaration","scope":54177,"src":"20570:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54048,"nodeType":"UserDefinedTypeName","pathNode":{"id":54047,"name":"IDiamond.FacetCut","nameLocations":["20570:8:88","20579:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20570:17:88"},"referencedDeclaration":40159,"src":"20570:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54049,"nodeType":"ArrayTypeName","src":"20570:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54057,"initialValue":{"arguments":[{"hexValue":"34","id":54055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20634:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20610:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54052,"nodeType":"UserDefinedTypeName","pathNode":{"id":54051,"name":"IDiamond.FacetCut","nameLocations":["20614:8:88","20623:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20614:17:88"},"referencedDeclaration":40159,"src":"20614:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54053,"nodeType":"ArrayTypeName","src":"20614:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20610:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20570:66:88"},{"assignments":[54060],"declarations":[{"constant":false,"id":54060,"mutability":"mutable","name":"regCutFacet","nameLocation":"20663:11:88","nodeType":"VariableDeclaration","scope":54177,"src":"20647:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54059,"nodeType":"UserDefinedTypeName","pathNode":{"id":54058,"name":"DiamondCutFacet","nameLocations":["20647:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20647:15:88"},"referencedDeclaration":36918,"src":"20647:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54065,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20677:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54062,"nodeType":"UserDefinedTypeName","pathNode":{"id":54061,"name":"DiamondCutFacet","nameLocations":["20681:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20681:15:88"},"referencedDeclaration":36918,"src":"20681:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20677:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"20647:51:88"},{"assignments":[54068],"declarations":[{"constant":false,"id":54068,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"20726:13:88","nodeType":"VariableDeclaration","scope":54177,"src":"20708:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54067,"nodeType":"UserDefinedTypeName","pathNode":{"id":54066,"name":"DiamondLoupeFacet","nameLocations":["20708:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20708:17:88"},"referencedDeclaration":37355,"src":"20708:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54073,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20742:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54070,"nodeType":"UserDefinedTypeName","pathNode":{"id":54069,"name":"DiamondLoupeFacet","nameLocations":["20746:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20746:17:88"},"referencedDeclaration":37355,"src":"20746:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20742:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"20708:57:88"},{"assignments":[54076],"declarations":[{"constant":false,"id":54076,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"20795:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20775:34:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54075,"nodeType":"UserDefinedTypeName","pathNode":{"id":54074,"name":"RegisterSubnetFacet","nameLocations":["20775:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20775:19:88"},"referencedDeclaration":52279,"src":"20775:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54081,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20812:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52279_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54078,"nodeType":"UserDefinedTypeName","pathNode":{"id":54077,"name":"RegisterSubnetFacet","nameLocations":["20816:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20816:19:88"},"referencedDeclaration":52279,"src":"20816:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}},"id":54080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20812:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"20775:62:88"},{"assignments":[54084],"declarations":[{"constant":false,"id":54084,"mutability":"mutable","name":"regGetterFacet","nameLocation":"20865:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20847:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54083,"nodeType":"UserDefinedTypeName","pathNode":{"id":54082,"name":"SubnetGetterFacet","nameLocations":["20847:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20847:17:88"},"referencedDeclaration":52517,"src":"20847:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54089,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20882:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52517_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54086,"nodeType":"UserDefinedTypeName","pathNode":{"id":54085,"name":"SubnetGetterFacet","nameLocations":["20886:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20886:17:88"},"referencedDeclaration":52517,"src":"20886:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}},"id":54088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20882:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"20847:58:88"},{"expression":{"id":54105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54090,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"20916:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54092,"indexExpression":{"hexValue":"30","id":54091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20927:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20916:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54097,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54068,"src":"21004:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20996:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54095,"name":"address","nodeType":"ElementaryTypeName","src":"20996:7:88","typeDescriptions":{}}},"id":54098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20996:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54099,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21044:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21053:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21044:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21068:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21044:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54102,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"21108:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54093,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20946:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20955:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20946:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20982:12:88","21036:6:88","21089:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20946:200:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20932:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20916:240:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54106,"nodeType":"ExpressionStatement","src":"20916:240:88"},{"expression":{"id":54122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54107,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21166:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54109,"indexExpression":{"hexValue":"31","id":54108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21177:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21166:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54114,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54060,"src":"21254:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21246:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54112,"name":"address","nodeType":"ElementaryTypeName","src":"21246:7:88","typeDescriptions":{}}},"id":54115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21246:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54116,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21292:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21301:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21292:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21316:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21292:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54119,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"21356:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54110,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21196:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21205:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21196:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21232:12:88","21284:6:88","21337:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21196:198:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54121,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21182:222:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21166:238:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54123,"nodeType":"ExpressionStatement","src":"21166:238:88"},{"expression":{"id":54139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54124,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21414:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54126,"indexExpression":{"hexValue":"32","id":54125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21425:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21414:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54131,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54076,"src":"21502:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}],"id":54130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21494:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54129,"name":"address","nodeType":"ElementaryTypeName","src":"21494:7:88","typeDescriptions":{}}},"id":54132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21494:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54133,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21543:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21552:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21543:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21567:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21543:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54136,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"21607:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54127,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21453:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21444:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21480:12:88","21535:6:88","21588:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21444:206:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54138,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21430:230:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21414:246:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54140,"nodeType":"ExpressionStatement","src":"21414:246:88"},{"expression":{"id":54156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54141,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21670:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54143,"indexExpression":{"hexValue":"33","id":54142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21681:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21670:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54148,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54084,"src":"21758:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}],"id":54147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21750:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54146,"name":"address","nodeType":"ElementaryTypeName","src":"21750:7:88","typeDescriptions":{}}},"id":54149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21750:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54150,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21799:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21808:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21799:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21823:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21799:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54153,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"21863:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54144,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21700:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21709:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21700:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21736:12:88","21791:6:88","21844:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21700:212:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21686:236:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21670:252:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54157,"nodeType":"ExpressionStatement","src":"21670:252:88"},{"assignments":[54160],"declarations":[{"constant":false,"id":54160,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"21955:17:88","nodeType":"VariableDeclaration","scope":54177,"src":"21933:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54159,"nodeType":"UserDefinedTypeName","pathNode":{"id":54158,"name":"SubnetRegistryDiamond","nameLocations":["21933:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21933:21:88"},"referencedDeclaration":36853,"src":"21933:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54167,"initialValue":{"arguments":[{"id":54164,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"22001:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54165,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54039,"src":"22013:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":54163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21975:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36652_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36853_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":54162,"nodeType":"UserDefinedTypeName","pathNode":{"id":54161,"name":"SubnetRegistryDiamond","nameLocations":["21979:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21979:21:88"},"referencedDeclaration":36853,"src":"21979:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21975:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"21933:87:88"},{"eventCall":{"arguments":[{"arguments":[{"id":54171,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22065:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22057:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54169,"name":"address","nodeType":"ElementaryTypeName","src":"22057:7:88","typeDescriptions":{}}},"id":54172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22057:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54168,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53071,"src":"22035:21:88","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22035:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54174,"nodeType":"EmitStatement","src":"22030:54:88"},{"expression":{"id":54175,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22101:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54044,"id":54176,"nodeType":"Return","src":"22094:24:88"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"20431:20:88","parameters":{"id":54040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54039,"mutability":"mutable","name":"params","nameLocation":"20508:6:88","nodeType":"VariableDeclaration","scope":54178,"src":"20461:53:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54038,"nodeType":"UserDefinedTypeName","pathNode":{"id":54037,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["20461:21:88","20483:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"20461:39:88"},"referencedDeclaration":36652,"src":"20461:39:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"20451:69:88"},"returnParameters":{"id":54044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54178,"src":"20537:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54042,"nodeType":"UserDefinedTypeName","pathNode":{"id":54041,"name":"SubnetRegistryDiamond","nameLocations":["20537:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"20537:21:88"},"referencedDeclaration":36853,"src":"20537:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"20536:23:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54207,"nodeType":"FunctionDefinition","src":"22131:190:88","nodes":[],"body":{"id":54206,"nodeType":"Block","src":"22212:109:88","nodes":[],"statements":[{"body":{"id":54202,"nodeType":"Block","src":"22253:42:88","statements":[{"expression":{"id":54200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54196,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22267:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54197,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54181,"src":"22274:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54199,"indexExpression":{"id":54198,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22282:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22274:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22267:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54201,"nodeType":"ExpressionStatement","src":"22267:17:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54190,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22241:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22245:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"22241:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54203,"initializationExpression":{"assignments":[54187],"declarations":[{"constant":false,"id":54187,"mutability":"mutable","name":"i","nameLocation":"22234:1:88","nodeType":"VariableDeclaration","scope":54203,"src":"22227:8:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54186,"name":"uint64","nodeType":"ElementaryTypeName","src":"22227:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54189,"initialValue":{"hexValue":"30","id":54188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22238:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22227:12:88"},"loopExpression":{"expression":{"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22248:3:88","subExpression":{"id":54193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22248:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54195,"nodeType":"ExpressionStatement","src":"22248:3:88"},"nodeType":"ForStatement","src":"22222:73:88"},{"expression":{"id":54204,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22311:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54185,"id":54205,"nodeType":"Return","src":"22304:10:88"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"22140:11:88","parameters":{"id":54182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54181,"mutability":"mutable","name":"weights","nameLocation":"22169:7:88","nodeType":"VariableDeclaration","scope":54207,"src":"22152:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54179,"name":"uint256","nodeType":"ElementaryTypeName","src":"22152:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54180,"nodeType":"ArrayTypeName","src":"22152:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"22151:26:88"},"returnParameters":{"id":54185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54184,"mutability":"mutable","name":"sum","nameLocation":"22207:3:88","nodeType":"VariableDeclaration","scope":54207,"src":"22199:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54183,"name":"uint256","nodeType":"ElementaryTypeName","src":"22199:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22198:13:88"},"scope":55375,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54382,"nodeType":"FunctionDefinition","src":"22327:933:88","nodes":[],"body":{"id":54381,"nodeType":"Block","src":"22430:830:88","nodes":[],"statements":[{"expression":{"id":54224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54217,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22440:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22470:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22453:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54219,"nodeType":"UserDefinedTypeName","pathNode":{"id":54218,"name":"FvmAddress","nameLocations":["22457:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22457:10:88"},"referencedDeclaration":49998,"src":"22457:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54220,"nodeType":"ArrayTypeName","src":"22457:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22453:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"22440:32:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54225,"nodeType":"ExpressionStatement","src":"22440:32:88"},{"expression":{"id":54236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54226,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22482:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54228,"indexExpression":{"hexValue":"30","id":54227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22493:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22482:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22528:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54231,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22520:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22523:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22520:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22520:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54229,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22498:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22515:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22498:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22498:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22482:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54237,"nodeType":"ExpressionStatement","src":"22482:51:88"},{"expression":{"id":54248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22543:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54240,"indexExpression":{"hexValue":"31","id":54239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22554:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22543:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22589:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54243,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22581:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22584:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22581:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22581:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54241,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22559:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22576:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22559:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22559:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22543:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54249,"nodeType":"ExpressionStatement","src":"22543:51:88"},{"expression":{"id":54260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54250,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22604:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54252,"indexExpression":{"hexValue":"32","id":54251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22615:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22604:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22650:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54255,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22642:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22645:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22642:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22642:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54253,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22620:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22637:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22620:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22620:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22604:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54261,"nodeType":"ExpressionStatement","src":"22604:51:88"},{"expression":{"id":54268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54262,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22666:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22692:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22678:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54263,"name":"address","nodeType":"ElementaryTypeName","src":"22682:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54264,"nodeType":"ArrayTypeName","src":"22682:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22678:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"22666:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54269,"nodeType":"ExpressionStatement","src":"22666:28:88"},{"expression":{"id":54277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54270,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22704:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54272,"indexExpression":{"hexValue":"30","id":54271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22714:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22704:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22727:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54273,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22719:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22722:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22719:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22719:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22704:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54278,"nodeType":"ExpressionStatement","src":"22704:27:88"},{"expression":{"id":54286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54279,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22741:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54281,"indexExpression":{"hexValue":"31","id":54280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22751:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22741:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22764:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54282,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22756:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22759:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22756:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22756:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22741:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54287,"nodeType":"ExpressionStatement","src":"22741:27:88"},{"expression":{"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54288,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22778:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54290,"indexExpression":{"hexValue":"32","id":54289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22788:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22778:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22801:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54291,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22793:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22796:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22793:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22793:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22778:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54296,"nodeType":"ExpressionStatement","src":"22778:27:88"},{"assignments":[54301],"declarations":[{"constant":false,"id":54301,"mutability":"mutable","name":"weights","nameLocation":"22833:7:88","nodeType":"VariableDeclaration","scope":54381,"src":"22816:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54299,"name":"uint256","nodeType":"ElementaryTypeName","src":"22816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54300,"nodeType":"ArrayTypeName","src":"22816:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54307,"initialValue":{"arguments":[{"hexValue":"33","id":54305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22857:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22843:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54302,"name":"uint256","nodeType":"ElementaryTypeName","src":"22847:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54303,"nodeType":"ArrayTypeName","src":"22847:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22843:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22816:43:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22886:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54311,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22878:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22881:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22878:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22878:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22892:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22870:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22873:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22870:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22870:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54317,"nodeType":"ExpressionStatement","src":"22870:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22920:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54321,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22912:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22915:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22912:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22926:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54318,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22904:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22907:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22904:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22904:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54327,"nodeType":"ExpressionStatement","src":"22904:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22954:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54331,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22946:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22949:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22946:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22946:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22960:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54328,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22938:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22941:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22938:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22938:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54337,"nodeType":"ExpressionStatement","src":"22938:24:88"},{"expression":{"id":54342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54338,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22973:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54340,"indexExpression":{"hexValue":"30","id":54339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22981:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22973:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22986:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22973:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54343,"nodeType":"ExpressionStatement","src":"22973:16:88"},{"expression":{"id":54348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54344,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22999:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54346,"indexExpression":{"hexValue":"31","id":54345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23007:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22999:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23012:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22999:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54349,"nodeType":"ExpressionStatement","src":"22999:16:88"},{"expression":{"id":54354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54350,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"23025:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54352,"indexExpression":{"hexValue":"32","id":54351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23033:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23025:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23038:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"23025:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54355,"nodeType":"ExpressionStatement","src":"23025:16:88"},{"assignments":[54358],"declarations":[{"constant":false,"id":54358,"mutability":"mutable","name":"finality","nameLocation":"23074:8:88","nodeType":"VariableDeclaration","scope":54381,"src":"23052:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54357,"nodeType":"UserDefinedTypeName","pathNode":{"id":54356,"name":"ParentFinality","nameLocations":["23052:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"23052:14:88"},"referencedDeclaration":49918,"src":"23052:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54367,"initialValue":{"arguments":[{"expression":{"id":54360,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23109:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:6:88","memberName":"number","nodeType":"MemberAccess","src":"23109:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23142:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23134:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23134:7:88","typeDescriptions":{}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23134:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54359,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"23085:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23101:6:88","23123:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"23085:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"23052:94:88"},{"expression":{"arguments":[{"expression":{"id":54371,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"23166:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23177:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"23166:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54368,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23157:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23160:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"23157:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23157:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54374,"nodeType":"ExpressionStatement","src":"23157:33:88"},{"expression":{"arguments":[{"id":54378,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54358,"src":"23244:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54375,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"23200:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23223:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"23200:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54380,"nodeType":"ExpressionStatement","src":"23200:53:88"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"22336:15:88","parameters":{"id":54208,"nodeType":"ParameterList","parameters":[],"src":"22351:2:88"},"returnParameters":{"id":54216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54212,"mutability":"mutable","name":"validators","nameLocation":"22390:10:88","nodeType":"VariableDeclaration","scope":54382,"src":"22370:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54210,"nodeType":"UserDefinedTypeName","pathNode":{"id":54209,"name":"FvmAddress","nameLocations":["22370:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22370:10:88"},"referencedDeclaration":49998,"src":"22370:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54211,"nodeType":"ArrayTypeName","src":"22370:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54215,"mutability":"mutable","name":"addresses","nameLocation":"22419:9:88","nodeType":"VariableDeclaration","scope":54382,"src":"22402:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54213,"name":"address","nodeType":"ElementaryTypeName","src":"22402:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54214,"nodeType":"ArrayTypeName","src":"22402:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"22369:60:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54475,"nodeType":"FunctionDefinition","src":"23266:1297:88","nodes":[],"body":{"id":54474,"nodeType":"Block","src":"23350:1213:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54392,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"23375:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54393,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23402:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54391,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55282,"src":"23360:14:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23360:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54395,"nodeType":"ExpressionStatement","src":"23360:46:88"},{"assignments":[54398],"declarations":[{"constant":false,"id":54398,"mutability":"mutable","name":"crossMsg","nameLocation":"23433:8:88","nodeType":"VariableDeclaration","scope":54474,"src":"23417:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54397,"nodeType":"UserDefinedTypeName","pathNode":{"id":54396,"name":"CrossMsg","nameLocations":["23417:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"23417:8:88"},"referencedDeclaration":49974,"src":"23417:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54438,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54406,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23596:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54402,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23555:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23564:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23555:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23581:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23555:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54410,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23659:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54408,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23637:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23654:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23637:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23637:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54401,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23512:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23545:8:88","23625:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23512:173:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54418,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23791:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54414,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23750:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23759:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23750:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23776:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23750:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54422,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23851:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54420,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23829:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23846:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23829:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23829:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54413,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23707:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23740:8:88","23817:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23707:167:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54425,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"23899:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23899:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54429,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"23976:11:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24023:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24013:9:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54430,"name":"bytes","nodeType":"ElementaryTypeName","src":"24017:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24013:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54434,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"24048:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54400,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"23476:11:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49991_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23506:4:88","23703:2:88","23892:5:88","23942:5:88","23968:6:88","24005:6:88","24043:3:88"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"23476:608:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24107:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54399,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"23444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49974_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23467:7:88","24098:7:88"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"23444:679:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"23417:706:88"},{"assignments":[54443],"declarations":[{"constant":false,"id":54443,"mutability":"mutable","name":"msgs","nameLocation":"24151:4:88","nodeType":"VariableDeclaration","scope":54474,"src":"24133:22:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":54441,"nodeType":"UserDefinedTypeName","pathNode":{"id":54440,"name":"CrossMsg","nameLocations":["24133:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24133:8:88"},"referencedDeclaration":49974,"src":"24133:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54442,"nodeType":"ArrayTypeName","src":"24133:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54450,"initialValue":{"arguments":[{"hexValue":"31","id":54448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24173:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24158:14:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":54445,"nodeType":"UserDefinedTypeName","pathNode":{"id":54444,"name":"CrossMsg","nameLocations":["24162:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24162:8:88"},"referencedDeclaration":49974,"src":"24162:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54446,"nodeType":"ArrayTypeName","src":"24162:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24158:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24133:42:88"},{"expression":{"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54451,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24185:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54453,"indexExpression":{"hexValue":"30","id":54452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24190:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24185:7:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54454,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24195:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"24185:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54456,"nodeType":"ExpressionStatement","src":"24185:18:88"},{"expression":{"arguments":[{"expression":{"id":54460,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"24442:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24453:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"24442:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54457,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24433:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24436:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"24433:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24433:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54463,"nodeType":"ExpressionStatement","src":"24433:33:88"},{"expression":{"arguments":[{"id":54467,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24516:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":54464,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"24476:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24497:18:88","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"24476:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":54468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24476:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54469,"nodeType":"ExpressionStatement","src":"24476:45:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54470,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24539:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24548:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40590,"src":"24539:15:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24539:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54390,"id":54473,"nodeType":"Return","src":"24532:24:88"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"23275:20:88","parameters":{"id":54387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54384,"mutability":"mutable","name":"caller","nameLocation":"23304:6:88","nodeType":"VariableDeclaration","scope":54475,"src":"23296:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54383,"name":"address","nodeType":"ElementaryTypeName","src":"23296:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54386,"mutability":"mutable","name":"src","nameLocation":"23320:3:88","nodeType":"VariableDeclaration","scope":54475,"src":"23312:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54385,"name":"address","nodeType":"ElementaryTypeName","src":"23312:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23295:29:88"},"returnParameters":{"id":54390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54475,"src":"23341:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23341:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23340:9:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54486,"nodeType":"FunctionDefinition","src":"24569:93:88","nodes":[],"body":{"id":54485,"nodeType":"Block","src":"24617:45:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54481,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54477,"src":"24640:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24651:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":54480,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"24627:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24627:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54484,"nodeType":"ExpressionStatement","src":"24627:28:88"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24578:12:88","parameters":{"id":54478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54477,"mutability":"mutable","name":"validator","nameLocation":"24599:9:88","nodeType":"VariableDeclaration","scope":54486,"src":"24591:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54476,"name":"address","nodeType":"ElementaryTypeName","src":"24591:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24590:19:88"},"returnParameters":{"id":54479,"nodeType":"ParameterList","parameters":[],"src":"24617:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54569,"nodeType":"FunctionDefinition","src":"24668:610:88","nodes":[],"body":{"id":54568,"nodeType":"Block","src":"24732:546:88","nodes":[],"statements":[{"assignments":[54497],"declarations":[{"constant":false,"id":54497,"mutability":"mutable","name":"validators","nameLocation":"24762:10:88","nodeType":"VariableDeclaration","scope":54568,"src":"24742:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54495,"nodeType":"UserDefinedTypeName","pathNode":{"id":54494,"name":"FvmAddress","nameLocations":["24742:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24742:10:88"},"referencedDeclaration":49998,"src":"24742:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54496,"nodeType":"ArrayTypeName","src":"24742:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54504,"initialValue":{"arguments":[{"hexValue":"31","id":54502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24792:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24775:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54499,"nodeType":"UserDefinedTypeName","pathNode":{"id":54498,"name":"FvmAddress","nameLocations":["24779:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24779:10:88"},"referencedDeclaration":49998,"src":"24779:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54500,"nodeType":"ArrayTypeName","src":"24779:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24775:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24742:52:88"},{"expression":{"id":54512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54505,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54497,"src":"24804:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54507,"indexExpression":{"hexValue":"30","id":54506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24815:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24804:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24842:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54508,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"24820:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24837:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"24820:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24820:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"24804:48:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54513,"nodeType":"ExpressionStatement","src":"24804:48:88"},{"assignments":[54518],"declarations":[{"constant":false,"id":54518,"mutability":"mutable","name":"weights","nameLocation":"24879:7:88","nodeType":"VariableDeclaration","scope":54568,"src":"24862:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54516,"name":"uint256","nodeType":"ElementaryTypeName","src":"24862:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54517,"nodeType":"ArrayTypeName","src":"24862:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54524,"initialValue":{"arguments":[{"hexValue":"31","id":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24903:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24889:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54519,"name":"uint256","nodeType":"ElementaryTypeName","src":"24893:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54520,"nodeType":"ArrayTypeName","src":"24893:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24889:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24862:43:88"},{"expression":{"id":54529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54525,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54518,"src":"24915:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54527,"indexExpression":{"hexValue":"30","id":54526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24915:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54528,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54490,"src":"24928:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24915:19:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54530,"nodeType":"ExpressionStatement","src":"24915:19:88"},{"expression":{"arguments":[{"id":54534,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24953:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24964:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24945:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24948:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"24945:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24945:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54537,"nodeType":"ExpressionStatement","src":"24945:21:88"},{"assignments":[54540],"declarations":[{"constant":false,"id":54540,"mutability":"mutable","name":"finality","nameLocation":"24998:8:88","nodeType":"VariableDeclaration","scope":54568,"src":"24976:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54539,"nodeType":"UserDefinedTypeName","pathNode":{"id":54538,"name":"ParentFinality","nameLocations":["24976:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"24976:14:88"},"referencedDeclaration":49918,"src":"24976:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54549,"initialValue":{"arguments":[{"expression":{"id":54542,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25033:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25039:6:88","memberName":"number","nodeType":"MemberAccess","src":"25033:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25066:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25058:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25058:7:88","typeDescriptions":{}}},"id":54547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25058:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54541,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"25009:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25025:6:88","25047:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"25009:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"24976:94:88"},{"expression":{"arguments":[{"expression":{"id":54553,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"25160:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25171:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"25160:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54550,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25146:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25149:10:88","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"25146:13:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25146:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54556,"nodeType":"ExpressionStatement","src":"25146:38:88"},{"expression":{"arguments":[{"id":54560,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54540,"src":"25238:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54557,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"25194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25217:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"25194:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25194:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54562,"nodeType":"ExpressionStatement","src":"25194:53:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54563,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25257:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25260:9:88","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"25257:12:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25257:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54567,"nodeType":"ExpressionStatement","src":"25257:14:88"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24677:12:88","parameters":{"id":54491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54488,"mutability":"mutable","name":"validator","nameLocation":"24698:9:88","nodeType":"VariableDeclaration","scope":54569,"src":"24690:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54487,"name":"address","nodeType":"ElementaryTypeName","src":"24690:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54490,"mutability":"mutable","name":"weight","nameLocation":"24717:6:88","nodeType":"VariableDeclaration","scope":54569,"src":"24709:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54489,"name":"uint256","nodeType":"ElementaryTypeName","src":"24709:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24689:35:88"},"returnParameters":{"id":54492,"nodeType":"ParameterList","parameters":[],"src":"24732:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54582,"nodeType":"FunctionDefinition","src":"25284:112:88","nodes":[],"body":{"id":54581,"nodeType":"Block","src":"25328:68:88","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25350:30:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54578,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54571,"src":"25382:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54574,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"25338:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25346:3:88","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"25338:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25338:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54580,"nodeType":"ExpressionStatement","src":"25338:51:88"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"25293:6:88","parameters":{"id":54572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54571,"mutability":"mutable","name":"amount","nameLocation":"25308:6:88","nodeType":"VariableDeclaration","scope":54582,"src":"25300:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54570,"name":"uint256","nodeType":"ElementaryTypeName","src":"25300:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25299:16:88"},"returnParameters":{"id":54573,"nodeType":"ParameterList","parameters":[],"src":"25328:0:88"},"scope":55375,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54597,"nodeType":"FunctionDefinition","src":"25402:131:88","nodes":[],"body":{"id":54596,"nodeType":"Block","src":"25466:67:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54590,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54584,"src":"25481:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54591,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54586,"src":"25496:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54592,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"25508:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25519:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"25508:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"id":54589,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54597,54722],"referencedDeclaration":54722,"src":"25476:4:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50229_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25476:50:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54595,"nodeType":"ExpressionStatement","src":"25476:50:88"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25411:4:88","parameters":{"id":54587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54584,"mutability":"mutable","name":"funderAddress","nameLocation":"25424:13:88","nodeType":"VariableDeclaration","scope":54597,"src":"25416:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54583,"name":"address","nodeType":"ElementaryTypeName","src":"25416:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54586,"mutability":"mutable","name":"fundAmount","nameLocation":"25447:10:88","nodeType":"VariableDeclaration","scope":54597,"src":"25439:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54585,"name":"uint256","nodeType":"ElementaryTypeName","src":"25439:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25415:43:88"},"returnParameters":{"id":54588,"nodeType":"ParameterList","parameters":[],"src":"25466:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54722,"nodeType":"FunctionDefinition","src":"25539:1180:88","nodes":[],"body":{"id":54721,"nodeType":"Block","src":"25620:1099:88","nodes":[],"statements":[{"assignments":[54609,null,54611,null,54613],"declarations":[{"constant":false,"id":54609,"mutability":"mutable","name":"subnetId","nameLocation":"25712:8:88","nodeType":"VariableDeclaration","scope":54721,"src":"25696:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54608,"nodeType":"UserDefinedTypeName","pathNode":{"id":54607,"name":"SubnetID","nameLocations":["25696:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"25696:8:88"},"referencedDeclaration":50077,"src":"25696:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54611,"mutability":"mutable","name":"nonceBefore","nameLocation":"25732:11:88","nodeType":"VariableDeclaration","scope":54721,"src":"25724:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54610,"name":"uint256","nodeType":"ElementaryTypeName","src":"25724:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54613,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"25755:16:88","nodeType":"VariableDeclaration","scope":54721,"src":"25747:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54612,"name":"uint256","nodeType":"ElementaryTypeName","src":"25747:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54620,"initialValue":{"arguments":[{"arguments":[{"id":54617,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"25793:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25785:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54615,"name":"address","nodeType":"ElementaryTypeName","src":"25785:7:88","typeDescriptions":{}}},"id":54618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25785:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54614,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"25775:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25775:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25695:109:88"},{"assignments":[54622],"declarations":[{"constant":false,"id":54622,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"25823:25:88","nodeType":"VariableDeclaration","scope":54721,"src":"25815:33:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54621,"name":"uint256","nodeType":"ElementaryTypeName","src":"25815:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54629,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54625,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"25887:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54623,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"25851:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25860:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"25851:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25851:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25899:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25851:49:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25815:85:88"},{"assignments":[54631],"declarations":[{"constant":false,"id":54631,"mutability":"mutable","name":"expectedNonce","nameLocation":"25918:13:88","nodeType":"VariableDeclaration","scope":54721,"src":"25910:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54630,"name":"uint256","nodeType":"ElementaryTypeName","src":"25910:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54635,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54632,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54611,"src":"25934:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25948:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25934:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25910:39:88"},{"assignments":[54637],"declarations":[{"constant":false,"id":54637,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"25967:18:88","nodeType":"VariableDeclaration","scope":54721,"src":"25959:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54636,"name":"uint256","nodeType":"ElementaryTypeName","src":"25959:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54641,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54638,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54613,"src":"25988:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54639,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26007:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25988:29:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25959:58:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54643,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26036:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26045:11:88","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"26036:20:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26061:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26036:26:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26064:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":54642,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26028:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26028:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54650,"nodeType":"ExpressionStatement","src":"26028:55:88"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54651,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26098:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54652,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26106:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26117:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"26106:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26098:25:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54668,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26241:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54669,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26249:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26260:5:88","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"26249:16:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26241:24:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54684,"nodeType":"IfStatement","src":"26237:138:88","trueBody":{"id":54683,"nodeType":"Block","src":"26267:108:88","statements":[{"expression":{"arguments":[{"id":54675,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26305:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54678,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26337:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54676,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26315:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26332:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26315:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26315:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54680,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26353:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54672,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26281:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26291:13:88","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"26281:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory,uint256) external"}},"id":54681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26281:83:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54682,"nodeType":"ExpressionStatement","src":"26281:83:88"}]}},"id":54685,"nodeType":"IfStatement","src":"26094:281:88","trueBody":{"id":54667,"nodeType":"Block","src":"26125:106:88","statements":[{"expression":{"arguments":[{"id":54660,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26173:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54663,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26205:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54661,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26183:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26200:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26183:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26183:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":54655,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26139:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26149:4:88","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"26139:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54658,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26161:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26139:33:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26139:81:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54666,"nodeType":"ExpressionStatement","src":"26139:81:88"}]}},{"assignments":[null,null,54687,null,54689],"declarations":[null,null,{"constant":false,"id":54687,"mutability":"mutable","name":"nonce","nameLocation":"26398:5:88","nodeType":"VariableDeclaration","scope":54721,"src":"26390:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54686,"name":"uint256","nodeType":"ElementaryTypeName","src":"26390:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54689,"mutability":"mutable","name":"circSupply","nameLocation":"26415:10:88","nodeType":"VariableDeclaration","scope":54721,"src":"26407:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54688,"name":"uint256","nodeType":"ElementaryTypeName","src":"26407:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54696,"initialValue":{"arguments":[{"arguments":[{"id":54693,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26447:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26439:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54691,"name":"address","nodeType":"ElementaryTypeName","src":"26439:7:88","typeDescriptions":{}}},"id":54694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26439:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54690,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"26429:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26429:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"26385:73:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54700,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26513:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54698,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26477:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26486:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"26477:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26477:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54702,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54622,"src":"26526:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26477:74:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":54704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26553:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":54697,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26469:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26469:105:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54706,"nodeType":"ExpressionStatement","src":"26469:105:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54708,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"26593:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54709,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54631,"src":"26602:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26593:22:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":54711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26617:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":54707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26585:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26585:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54713,"nodeType":"ExpressionStatement","src":"26585:51:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54715,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54689,"src":"26654:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54716,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54637,"src":"26668:18:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26654:32:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":54718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26688:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":54714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26646:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26646:66:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54720,"nodeType":"ExpressionStatement","src":"26646:66:88"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25548:4:88","parameters":{"id":54605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54599,"mutability":"mutable","name":"funderAddress","nameLocation":"25561:13:88","nodeType":"VariableDeclaration","scope":54722,"src":"25553:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54598,"name":"address","nodeType":"ElementaryTypeName","src":"25553:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54601,"mutability":"mutable","name":"fundAmount","nameLocation":"25584:10:88","nodeType":"VariableDeclaration","scope":54722,"src":"25576:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54600,"name":"uint256","nodeType":"ElementaryTypeName","src":"25576:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54604,"mutability":"mutable","name":"mode","nameLocation":"25607:4:88","nodeType":"VariableDeclaration","scope":54722,"src":"25596:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":54603,"nodeType":"UserDefinedTypeName","pathNode":{"id":54602,"name":"SupplyKind","nameLocations":["25596:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"25596:10:88"},"referencedDeclaration":50229,"src":"25596:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"25552:60:88"},"returnParameters":{"id":54606,"nodeType":"ParameterList","parameters":[],"src":"25620:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54753,"nodeType":"FunctionDefinition","src":"26725:243:88","nodes":[],"body":{"id":54752,"nodeType":"Block","src":"26793:175:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54732,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26812:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54729,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26803:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26806:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26803:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26803:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54734,"nodeType":"ExpressionStatement","src":"26803:26:88"},{"expression":{"arguments":[{"id":54738,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26847:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54739,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26865:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26865:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":54735,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26839:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26842:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26839:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26839:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54743,"nodeType":"ExpressionStatement","src":"26839:56:88"},{"expression":{"arguments":[{"id":54749,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54726,"src":"26954:6:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54744,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26905:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":54746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26915:4:88","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51605,"src":"26905:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":54748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54747,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26927:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"26905:48:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":54750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26905:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54751,"nodeType":"ExpressionStatement","src":"26905:56:88"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"26734:4:88","parameters":{"id":54727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54724,"mutability":"mutable","name":"validatorAddress","nameLocation":"26747:16:88","nodeType":"VariableDeclaration","scope":54753,"src":"26739:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54723,"name":"address","nodeType":"ElementaryTypeName","src":"26739:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54726,"mutability":"mutable","name":"pubkey","nameLocation":"26778:6:88","nodeType":"VariableDeclaration","scope":54753,"src":"26765:19:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54725,"name":"bytes","nodeType":"ElementaryTypeName","src":"26765:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26738:47:88"},"returnParameters":{"id":54728,"nodeType":"ParameterList","parameters":[],"src":"26793:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54800,"nodeType":"FunctionDefinition","src":"26974:298:88","nodes":[],"body":{"id":54799,"nodeType":"Block","src":"27042:230:88","nodes":[],"statements":[{"assignments":[54764],"declarations":[{"constant":false,"id":54764,"mutability":"mutable","name":"validators","nameLocation":"27069:10:88","nodeType":"VariableDeclaration","scope":54799,"src":"27052:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54762,"name":"address","nodeType":"ElementaryTypeName","src":"27052:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54763,"nodeType":"ArrayTypeName","src":"27052:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54770,"initialValue":{"arguments":[{"hexValue":"31","id":54768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27096:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27082:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54765,"name":"address","nodeType":"ElementaryTypeName","src":"27086:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54766,"nodeType":"ArrayTypeName","src":"27086:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27082:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27052:46:88"},{"expression":{"id":54775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54771,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27108:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54773,"indexExpression":{"hexValue":"30","id":54772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27119:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27108:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54774,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54755,"src":"27124:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27108:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54776,"nodeType":"ExpressionStatement","src":"27108:25:88"},{"assignments":[54781],"declarations":[{"constant":false,"id":54781,"mutability":"mutable","name":"privKeys","nameLocation":"27161:8:88","nodeType":"VariableDeclaration","scope":54799,"src":"27144:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54779,"name":"uint256","nodeType":"ElementaryTypeName","src":"27144:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54780,"nodeType":"ArrayTypeName","src":"27144:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54787,"initialValue":{"arguments":[{"hexValue":"31","id":54785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27186:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27172:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54782,"name":"uint256","nodeType":"ElementaryTypeName","src":"27176:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54783,"nodeType":"ArrayTypeName","src":"27176:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27172:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27144:44:88"},{"expression":{"id":54792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54788,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27198:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54790,"indexExpression":{"hexValue":"30","id":54789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27207:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27198:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54791,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54757,"src":"27212:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27198:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54793,"nodeType":"ExpressionStatement","src":"27198:21:88"},{"expression":{"arguments":[{"id":54795,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27244:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54796,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27256:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54794,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27230:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27230:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54798,"nodeType":"ExpressionStatement","src":"27230:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"26983:13:88","parameters":{"id":54758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54755,"mutability":"mutable","name":"validator","nameLocation":"27005:9:88","nodeType":"VariableDeclaration","scope":54800,"src":"26997:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54754,"name":"address","nodeType":"ElementaryTypeName","src":"26997:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54757,"mutability":"mutable","name":"privKey","nameLocation":"27024:7:88","nodeType":"VariableDeclaration","scope":54800,"src":"27016:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54756,"name":"uint256","nodeType":"ElementaryTypeName","src":"27016:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26996:36:88"},"returnParameters":{"id":54759,"nodeType":"ParameterList","parameters":[],"src":"27042:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54863,"nodeType":"FunctionDefinition","src":"27278:408:88","nodes":[],"body":{"id":54862,"nodeType":"Block","src":"27386:300:88","nodes":[],"statements":[{"assignments":[54815],"declarations":[{"constant":false,"id":54815,"mutability":"mutable","name":"validators","nameLocation":"27413:10:88","nodeType":"VariableDeclaration","scope":54862,"src":"27396:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54813,"name":"address","nodeType":"ElementaryTypeName","src":"27396:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54814,"nodeType":"ArrayTypeName","src":"27396:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54821,"initialValue":{"arguments":[{"hexValue":"32","id":54819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27440:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27426:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54816,"name":"address","nodeType":"ElementaryTypeName","src":"27430:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54817,"nodeType":"ArrayTypeName","src":"27430:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27426:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27396:46:88"},{"expression":{"id":54826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54822,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27452:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54824,"indexExpression":{"hexValue":"30","id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27463:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27452:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54825,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54802,"src":"27468:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27452:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54827,"nodeType":"ExpressionStatement","src":"27452:26:88"},{"expression":{"id":54832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54828,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27488:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54830,"indexExpression":{"hexValue":"31","id":54829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27499:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27488:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54831,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54806,"src":"27504:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27488:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54833,"nodeType":"ExpressionStatement","src":"27488:26:88"},{"assignments":[54838],"declarations":[{"constant":false,"id":54838,"mutability":"mutable","name":"privKeys","nameLocation":"27542:8:88","nodeType":"VariableDeclaration","scope":54862,"src":"27525:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54836,"name":"uint256","nodeType":"ElementaryTypeName","src":"27525:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54837,"nodeType":"ArrayTypeName","src":"27525:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54844,"initialValue":{"arguments":[{"hexValue":"32","id":54842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27567:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27553:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54839,"name":"uint256","nodeType":"ElementaryTypeName","src":"27557:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54840,"nodeType":"ArrayTypeName","src":"27557:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27553:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27525:44:88"},{"expression":{"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54845,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27579:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54847,"indexExpression":{"hexValue":"30","id":54846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27588:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27579:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54848,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54804,"src":"27593:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27579:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54850,"nodeType":"ExpressionStatement","src":"27579:22:88"},{"expression":{"id":54855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54851,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27611:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54853,"indexExpression":{"hexValue":"31","id":54852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27620:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27611:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54854,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54808,"src":"27625:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27611:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54856,"nodeType":"ExpressionStatement","src":"27611:22:88"},{"expression":{"arguments":[{"id":54858,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27658:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54859,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27670:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54857,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27644:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27644:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54861,"nodeType":"ExpressionStatement","src":"27644:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27287:13:88","parameters":{"id":54809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54802,"mutability":"mutable","name":"validator1","nameLocation":"27309:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27301:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54801,"name":"address","nodeType":"ElementaryTypeName","src":"27301:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54804,"mutability":"mutable","name":"privKey1","nameLocation":"27329:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27321:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54803,"name":"uint256","nodeType":"ElementaryTypeName","src":"27321:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54806,"mutability":"mutable","name":"validator2","nameLocation":"27347:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27339:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54805,"name":"address","nodeType":"ElementaryTypeName","src":"27339:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54808,"mutability":"mutable","name":"privKey2","nameLocation":"27367:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27359:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54807,"name":"uint256","nodeType":"ElementaryTypeName","src":"27359:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27300:76:88"},"returnParameters":{"id":54810,"nodeType":"ParameterList","parameters":[],"src":"27386:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54942,"nodeType":"FunctionDefinition","src":"27692:568:88","nodes":[],"body":{"id":54941,"nodeType":"Block","src":"27892:368:88","nodes":[],"statements":[{"assignments":[54882],"declarations":[{"constant":false,"id":54882,"mutability":"mutable","name":"validators","nameLocation":"27919:10:88","nodeType":"VariableDeclaration","scope":54941,"src":"27902:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54880,"name":"address","nodeType":"ElementaryTypeName","src":"27902:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54881,"nodeType":"ArrayTypeName","src":"27902:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54888,"initialValue":{"arguments":[{"hexValue":"33","id":54886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27946:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27932:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54883,"name":"address","nodeType":"ElementaryTypeName","src":"27936:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54884,"nodeType":"ArrayTypeName","src":"27936:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27932:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27902:46:88"},{"expression":{"id":54893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54889,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27958:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54891,"indexExpression":{"hexValue":"30","id":54890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27969:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27958:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54892,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54865,"src":"27974:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27958:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54894,"nodeType":"ExpressionStatement","src":"27958:26:88"},{"expression":{"id":54899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54895,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27994:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54897,"indexExpression":{"hexValue":"31","id":54896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28005:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27994:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54898,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54869,"src":"28010:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27994:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54900,"nodeType":"ExpressionStatement","src":"27994:26:88"},{"expression":{"id":54905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54901,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28030:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54903,"indexExpression":{"hexValue":"32","id":54902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28030:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54904,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54873,"src":"28046:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"28030:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54906,"nodeType":"ExpressionStatement","src":"28030:26:88"},{"assignments":[54911],"declarations":[{"constant":false,"id":54911,"mutability":"mutable","name":"privKeys","nameLocation":"28084:8:88","nodeType":"VariableDeclaration","scope":54941,"src":"28067:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54909,"name":"uint256","nodeType":"ElementaryTypeName","src":"28067:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54910,"nodeType":"ArrayTypeName","src":"28067:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54917,"initialValue":{"arguments":[{"hexValue":"33","id":54915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28109:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28095:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54912,"name":"uint256","nodeType":"ElementaryTypeName","src":"28099:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54913,"nodeType":"ArrayTypeName","src":"28099:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28095:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28067:44:88"},{"expression":{"id":54922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54918,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28121:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54920,"indexExpression":{"hexValue":"30","id":54919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28130:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28121:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54921,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54867,"src":"28135:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28121:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54923,"nodeType":"ExpressionStatement","src":"28121:22:88"},{"expression":{"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54924,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28153:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54926,"indexExpression":{"hexValue":"31","id":54925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28162:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28153:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54927,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54871,"src":"28167:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28153:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54929,"nodeType":"ExpressionStatement","src":"28153:22:88"},{"expression":{"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54930,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28185:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54932,"indexExpression":{"hexValue":"32","id":54931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28194:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28185:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54933,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54875,"src":"28199:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28185:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54935,"nodeType":"ExpressionStatement","src":"28185:22:88"},{"expression":{"arguments":[{"id":54937,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28232:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54938,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28244:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54936,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"28218:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28218:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54940,"nodeType":"ExpressionStatement","src":"28218:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27701:13:88","parameters":{"id":54876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54865,"mutability":"mutable","name":"validator1","nameLocation":"27732:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27724:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54864,"name":"address","nodeType":"ElementaryTypeName","src":"27724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54867,"mutability":"mutable","name":"privKey1","nameLocation":"27760:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27752:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54866,"name":"uint256","nodeType":"ElementaryTypeName","src":"27752:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54869,"mutability":"mutable","name":"validator2","nameLocation":"27786:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27778:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54868,"name":"address","nodeType":"ElementaryTypeName","src":"27778:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54871,"mutability":"mutable","name":"privKey2","nameLocation":"27814:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27806:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54870,"name":"uint256","nodeType":"ElementaryTypeName","src":"27806:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54873,"mutability":"mutable","name":"validator3","nameLocation":"27840:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27832:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54872,"name":"address","nodeType":"ElementaryTypeName","src":"27832:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54875,"mutability":"mutable","name":"privKey3","nameLocation":"27868:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27860:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54874,"name":"uint256","nodeType":"ElementaryTypeName","src":"27860:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27714:168:88"},"returnParameters":{"id":54877,"nodeType":"ParameterList","parameters":[],"src":"27892:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55093,"nodeType":"FunctionDefinition","src":"28266:1102:88","nodes":[],"body":{"id":55092,"nodeType":"Block","src":"28354:1014:88","nodes":[],"statements":[{"assignments":[54952],"declarations":[{"constant":false,"id":54952,"mutability":"mutable","name":"n","nameLocation":"28372:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28364:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54951,"name":"uint256","nodeType":"ElementaryTypeName","src":"28364:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54955,"initialValue":{"expression":{"id":54953,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"28376:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28387:6:88","memberName":"length","nodeType":"MemberAccess","src":"28376:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28364:29:88"},{"assignments":[54960],"declarations":[{"constant":false,"id":54960,"mutability":"mutable","name":"signatures","nameLocation":"28419:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28404:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":54958,"name":"bytes","nodeType":"ElementaryTypeName","src":"28404:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54959,"nodeType":"ArrayTypeName","src":"28404:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":54966,"initialValue":{"arguments":[{"id":54964,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"28444:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28432:11:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":54961,"name":"bytes","nodeType":"ElementaryTypeName","src":"28436:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54962,"nodeType":"ArrayTypeName","src":"28436:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28432:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28404:42:88"},{"assignments":[54968,null],"declarations":[{"constant":false,"id":54968,"mutability":"mutable","name":"nextConfigNum","nameLocation":"28465:13:88","nodeType":"VariableDeclaration","scope":55092,"src":"28458:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54967,"name":"uint64","nodeType":"ElementaryTypeName","src":"28458:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":54972,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54969,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28484:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28493:23:88","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50349,"src":"28484:32:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":54971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28484:34:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"28457:61:88"},{"assignments":[54974],"declarations":[{"constant":false,"id":54974,"mutability":"mutable","name":"h","nameLocation":"28537:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28529:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54973,"name":"uint256","nodeType":"ElementaryTypeName","src":"28529:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54982,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54975,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28541:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28550:28:88","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50477,"src":"28541:37:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28541:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54978,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28583:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28592:19:88","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50457,"src":"28583:28:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28583:30:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28541:72:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28529:84:88"},{"assignments":[54985],"declarations":[{"constant":false,"id":54985,"mutability":"mutable","name":"checkpoint","nameLocation":"28650:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28624:36:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":54984,"nodeType":"UserDefinedTypeName","pathNode":{"id":54983,"name":"BottomUpCheckpoint","nameLocations":["28624:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"28624:18:88"},"referencedDeclaration":49932,"src":"28624:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55007,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":54993,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28750:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28742:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54991,"name":"address","nodeType":"ElementaryTypeName","src":"28742:7:88","typeDescriptions":{}}},"id":54994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28742:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54987,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28706:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28715:9:88","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50279,"src":"28706:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28727:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"28706:35:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54996,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28788:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55000,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28835:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28824:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28828:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28824:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28824:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54997,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28814:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28814:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55003,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54968,"src":"28877:13:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28877:17:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":54986,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"28663:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49932_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28696:8:88","28775:11:88","28803:9:88","28852:23:88"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"28663:242:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"28624:281:88"},{"expression":{"arguments":[{"arguments":[{"id":55013,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28932:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28924:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55011,"name":"address","nodeType":"ElementaryTypeName","src":"28924:7:88","typeDescriptions":{}}},"id":55014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28924:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28944:9:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":55008,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28916:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28919:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28916:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55017,"nodeType":"ExpressionStatement","src":"28916:38:88"},{"assignments":[55019],"declarations":[{"constant":false,"id":55019,"mutability":"mutable","name":"hash","nameLocation":"28973:4:88","nodeType":"VariableDeclaration","scope":55092,"src":"28965:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28965:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55026,"initialValue":{"arguments":[{"arguments":[{"id":55023,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29001:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":55021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28990:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28994:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28990:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28990:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55020,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28980:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28980:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28965:48:88"},{"body":{"id":55062,"nodeType":"Block","src":"29056:140:88","statements":[{"assignments":[55038,55040,55042],"declarations":[{"constant":false,"id":55038,"mutability":"mutable","name":"v","nameLocation":"29077:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29071:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55037,"name":"uint8","nodeType":"ElementaryTypeName","src":"29071:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55040,"mutability":"mutable","name":"r","nameLocation":"29088:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29080:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29080:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55042,"mutability":"mutable","name":"s","nameLocation":"29099:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29091:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29091:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55050,"initialValue":{"arguments":[{"baseExpression":{"id":55045,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54948,"src":"29112:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55047,"indexExpression":{"id":55046,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29121:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29112:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55048,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55019,"src":"29125:4:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55043,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29104:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29107:4:88","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"29104:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":55049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29104:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"29070:60:88"},{"expression":{"id":55060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55051,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29144:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55053,"indexExpression":{"id":55052,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29155:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29144:13:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55056,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55040,"src":"29177:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55057,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55042,"src":"29180:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55058,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55038,"src":"29183:1:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29160:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29164:12:88","memberName":"encodePacked","nodeType":"MemberAccess","src":"29160:16:88","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29160:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"29144:41:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55061,"nodeType":"ExpressionStatement","src":"29144:41:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55031,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29044:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55032,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29048:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29044:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55063,"initializationExpression":{"assignments":[55028],"declarations":[{"constant":false,"id":55028,"mutability":"mutable","name":"i","nameLocation":"29037:1:88","nodeType":"VariableDeclaration","scope":55063,"src":"29029:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55027,"name":"uint256","nodeType":"ElementaryTypeName","src":"29029:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55030,"initialValue":{"hexValue":"30","id":55029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29029:13:88"},"loopExpression":{"expression":{"id":55035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29051:3:88","subExpression":{"id":55034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29051:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55036,"nodeType":"ExpressionStatement","src":"29051:3:88"},"nodeType":"ForStatement","src":"29024:172:88"},{"body":{"id":55090,"nodeType":"Block","src":"29238:124:88","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55077,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29261:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55079,"indexExpression":{"id":55078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29272:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29261:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55074,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29252:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29255:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"29252:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29252:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55081,"nodeType":"ExpressionStatement","src":"29252:23:88"},{"expression":{"arguments":[{"id":55085,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29316:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55086,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29328:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55087,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29340:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":55082,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"29289:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":55084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29299:16:88","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":51154,"src":"29289:26:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":55088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29289:62:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55089,"nodeType":"ExpressionStatement","src":"29289:62:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55068,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29226:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55069,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29230:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29226:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55091,"initializationExpression":{"assignments":[55065],"declarations":[{"constant":false,"id":55065,"mutability":"mutable","name":"i","nameLocation":"29219:1:88","nodeType":"VariableDeclaration","scope":55091,"src":"29211:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55064,"name":"uint256","nodeType":"ElementaryTypeName","src":"29211:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55067,"initialValue":{"hexValue":"30","id":55066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29223:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29211:13:88"},"loopExpression":{"expression":{"id":55072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29233:3:88","subExpression":{"id":55071,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29233:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55073,"nodeType":"ExpressionStatement","src":"29233:3:88"},"nodeType":"ForStatement","src":"29206:156:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"28275:13:88","parameters":{"id":54949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54945,"mutability":"mutable","name":"validators","nameLocation":"28306:10:88","nodeType":"VariableDeclaration","scope":55093,"src":"28289:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54943,"name":"address","nodeType":"ElementaryTypeName","src":"28289:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54944,"nodeType":"ArrayTypeName","src":"28289:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":54948,"mutability":"mutable","name":"privKeys","nameLocation":"28335:8:88","nodeType":"VariableDeclaration","scope":55093,"src":"28318:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54946,"name":"uint256","nodeType":"ElementaryTypeName","src":"28318:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54947,"nodeType":"ArrayTypeName","src":"28318:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"28288:56:88"},"returnParameters":{"id":54950,"nodeType":"ParameterList","parameters":[],"src":"28354:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55128,"nodeType":"FunctionDefinition","src":"29374:305:88","nodes":[],"body":{"id":55127,"nodeType":"Block","src":"29421:258:88","nodes":[],"statements":[{"assignments":[55099],"declarations":[{"constant":false,"id":55099,"mutability":"mutable","name":"expectedNonce","nameLocation":"29439:13:88","nodeType":"VariableDeclaration","scope":55127,"src":"29431:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55098,"name":"uint256","nodeType":"ElementaryTypeName","src":"29431:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55105,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55100,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29455:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29464:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29455:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29455:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29482:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29455:28:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"29431:52:88"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55113,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29555:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29559:6:88","memberName":"sender","nodeType":"MemberAccess","src":"29555:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55111,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"29533:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":55112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29550:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"29533:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":55115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29533:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":55106,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29493:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29503:7:88","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"29493:17:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55109,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55095,"src":"29518:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29493:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29493:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55117,"nodeType":"ExpressionStatement","src":"29493:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55119,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29585:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29594:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29585:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29585:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55122,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55099,"src":"29613:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29585:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29628:43:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":55118,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29577:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29577:95:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55126,"nodeType":"ExpressionStatement","src":"29577:95:88"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"29383:7:88","parameters":{"id":55096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55095,"mutability":"mutable","name":"releaseAmount","nameLocation":"29399:13:88","nodeType":"VariableDeclaration","scope":55128,"src":"29391:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55094,"name":"uint256","nodeType":"ElementaryTypeName","src":"29391:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29390:23:88"},"returnParameters":{"id":55097,"nodeType":"ParameterList","parameters":[],"src":"29421:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55183,"nodeType":"FunctionDefinition","src":"29685:536:88","nodes":[],"body":{"id":55182,"nodeType":"Block","src":"29754:467:88","nodes":[],"statements":[{"assignments":[55136],"declarations":[{"constant":false,"id":55136,"mutability":"mutable","name":"balanceBefore","nameLocation":"29772:13:88","nodeType":"VariableDeclaration","scope":55182,"src":"29764:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55135,"name":"uint256","nodeType":"ElementaryTypeName","src":"29764:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55139,"initialValue":{"expression":{"id":55137,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29788:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29802:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29788:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29764:45:88"},{"assignments":[null,55141,null,null,null],"declarations":[null,{"constant":false,"id":55141,"mutability":"mutable","name":"stakedBefore","nameLocation":"29831:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29823:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55140,"name":"uint256","nodeType":"ElementaryTypeName","src":"29823:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55145,"initialValue":{"arguments":[{"id":55143,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29863:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55142,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"29853:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29853:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29820:57:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55146,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29888:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29898:8:88","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"29888:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55149,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"29914:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29888:38:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29888:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55152,"nodeType":"ExpressionStatement","src":"29888:40:88"},{"assignments":[55154],"declarations":[{"constant":false,"id":55154,"mutability":"mutable","name":"balanceAfter","nameLocation":"29947:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29939:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55153,"name":"uint256","nodeType":"ElementaryTypeName","src":"29939:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55157,"initialValue":{"expression":{"id":55155,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29962:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29976:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29962:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29939:44:88"},{"assignments":[null,55159,null,null,null],"declarations":[null,{"constant":false,"id":55159,"mutability":"mutable","name":"stakedAfter","nameLocation":"30004:11:88","nodeType":"VariableDeclaration","scope":55182,"src":"29996:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55158,"name":"uint256","nodeType":"ElementaryTypeName","src":"29996:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55163,"initialValue":{"arguments":[{"id":55161,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"30035:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55160,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"30025:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30025:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29993:56:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55165,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55154,"src":"30068:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55166,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55136,"src":"30084:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55167,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30100:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30084:27:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30068:43:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30113:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":55164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30060:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30060:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55172,"nodeType":"ExpressionStatement","src":"30060:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55174,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55159,"src":"30152:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55175,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55141,"src":"30167:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55176,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30182:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30167:26:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30152:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30195:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30144:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30144:70:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55181,"nodeType":"ExpressionStatement","src":"30144:70:88"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"29694:8:88","parameters":{"id":55133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55130,"mutability":"mutable","name":"stakeAmount","nameLocation":"29711:11:88","nodeType":"VariableDeclaration","scope":55183,"src":"29703:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55129,"name":"uint256","nodeType":"ElementaryTypeName","src":"29703:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55132,"mutability":"mutable","name":"subnetAddress","nameLocation":"29732:13:88","nodeType":"VariableDeclaration","scope":55183,"src":"29724:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55131,"name":"address","nodeType":"ElementaryTypeName","src":"29724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29702:44:88"},"returnParameters":{"id":55134,"nodeType":"ParameterList","parameters":[],"src":"29754:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55268,"nodeType":"FunctionDefinition","src":"30227:813:88","nodes":[],"body":{"id":55267,"nodeType":"Block","src":"30322:718:88","nodes":[],"statements":[{"assignments":[55195],"declarations":[{"constant":false,"id":55195,"mutability":"mutable","name":"manager","nameLocation":"30352:7:88","nodeType":"VariableDeclaration","scope":55267,"src":"30332:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55194,"nodeType":"UserDefinedTypeName","pathNode":{"id":55193,"name":"GatewayManagerFacet","nameLocations":["30332:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"30332:19:88"},"referencedDeclaration":38870,"src":"30332:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55202,"initialValue":{"arguments":[{"arguments":[{"id":55199,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30390:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30382:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55197,"name":"address","nodeType":"ElementaryTypeName","src":"30382:7:88","typeDescriptions":{}}},"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30382:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55196,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"30362:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30362:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"30332:62:88"},{"expression":{"arguments":[{"hexValue":"30","id":55208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30441:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":55203,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55195,"src":"30405:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30413:8:88","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"30405:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55206,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30429:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"30405:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30405:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55210,"nodeType":"ExpressionStatement","src":"30405:38:88"},{"assignments":[55213,55215,55217,null,55219],"declarations":[{"constant":false,"id":55213,"mutability":"mutable","name":"id","nameLocation":"30471:2:88","nodeType":"VariableDeclaration","scope":55267,"src":"30455:18:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55212,"nodeType":"UserDefinedTypeName","pathNode":{"id":55211,"name":"SubnetID","nameLocations":["30455:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30455:8:88"},"referencedDeclaration":50077,"src":"30455:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55215,"mutability":"mutable","name":"stake","nameLocation":"30483:5:88","nodeType":"VariableDeclaration","scope":55267,"src":"30475:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55214,"name":"uint256","nodeType":"ElementaryTypeName","src":"30475:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55217,"mutability":"mutable","name":"topDownNonce","nameLocation":"30498:12:88","nodeType":"VariableDeclaration","scope":55267,"src":"30490:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55216,"name":"uint256","nodeType":"ElementaryTypeName","src":"30490:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55219,"mutability":"mutable","name":"circSupply","nameLocation":"30522:10:88","nodeType":"VariableDeclaration","scope":55267,"src":"30514:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55218,"name":"uint256","nodeType":"ElementaryTypeName","src":"30514:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55224,"initialValue":{"arguments":[{"id":55221,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30561:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55222,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30588:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55220,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"30536:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30536:64:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"30454:146:88"},{"assignments":[55227],"declarations":[{"constant":false,"id":55227,"mutability":"mutable","name":"parentNetwork","nameLocation":"30627:13:88","nodeType":"VariableDeclaration","scope":55267,"src":"30611:29:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55226,"nodeType":"UserDefinedTypeName","pathNode":{"id":55225,"name":"SubnetID","nameLocations":["30611:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30611:8:88"},"referencedDeclaration":50077,"src":"30611:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55228,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"30643:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30652:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"30643:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30643:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"30611:57:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55233,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55213,"src":"30700:2:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30703:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30700:9:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30700:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55238,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30744:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55236,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55227,"src":"30715:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30729:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"30715:28:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30759:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30715:50:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:52:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"30700:67:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30781:69:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":55232,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30679:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30679:181:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55245,"nodeType":"ExpressionStatement","src":"30679:181:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55247,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55215,"src":"30878:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55248,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30887:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30878:19:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30899:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55246,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30870:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30870:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55252,"nodeType":"ExpressionStatement","src":"30870:48:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55254,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55217,"src":"30936:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30952:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30936:17:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30955:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55253,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30928:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55259,"nodeType":"ExpressionStatement","src":"30928:46:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55261,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55219,"src":"30992:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31006:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30992:15:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31009:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30984:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30984:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55266,"nodeType":"ExpressionStatement","src":"30984:49:88"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"30236:16:88","parameters":{"id":55191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55185,"mutability":"mutable","name":"collateral","nameLocation":"30261:10:88","nodeType":"VariableDeclaration","scope":55268,"src":"30253:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55184,"name":"uint256","nodeType":"ElementaryTypeName","src":"30253:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55187,"mutability":"mutable","name":"subnetAddress","nameLocation":"30281:13:88","nodeType":"VariableDeclaration","scope":55268,"src":"30273:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55186,"name":"address","nodeType":"ElementaryTypeName","src":"30273:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55190,"mutability":"mutable","name":"gw","nameLocation":"30311:2:88","nodeType":"VariableDeclaration","scope":55268,"src":"30296:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55189,"nodeType":"UserDefinedTypeName","pathNode":{"id":55188,"name":"GatewayDiamond","nameLocations":["30296:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"30296:14:88"},"referencedDeclaration":36170,"src":"30296:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"30252:62:88"},"returnParameters":{"id":55192,"nodeType":"ParameterList","parameters":[],"src":"30322:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55282,"nodeType":"FunctionDefinition","src":"31046:150:88","nodes":[],"body":{"id":55281,"nodeType":"Block","src":"31120:76:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55276,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55270,"src":"31147:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55277,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55272,"src":"31159:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55278,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31174:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55275,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55268,"src":"31130:16:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31130:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55280,"nodeType":"ExpressionStatement","src":"31130:59:88"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"31055:14:88","parameters":{"id":55273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55270,"mutability":"mutable","name":"collateral","nameLocation":"31078:10:88","nodeType":"VariableDeclaration","scope":55282,"src":"31070:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55269,"name":"uint256","nodeType":"ElementaryTypeName","src":"31070:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55272,"mutability":"mutable","name":"subnetAddress","nameLocation":"31098:13:88","nodeType":"VariableDeclaration","scope":55282,"src":"31090:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55271,"name":"address","nodeType":"ElementaryTypeName","src":"31090:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31069:43:88"},"returnParameters":{"id":55274,"nodeType":"ParameterList","parameters":[],"src":"31120:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55352,"nodeType":"FunctionDefinition","src":"31202:541:88","nodes":[],"body":{"id":55351,"nodeType":"Block","src":"31356:387:88","nodes":[],"statements":[{"expression":{"id":55308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55301,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"31366:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55305,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31406:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55303,"name":"address","nodeType":"ElementaryTypeName","src":"31398:7:88","typeDescriptions":{}}},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55302,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"31378:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31378:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"31366:44:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55309,"nodeType":"ExpressionStatement","src":"31366:44:88"},{"expression":{"id":55317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55310,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31420:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55314,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31458:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31450:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55312,"name":"address","nodeType":"ElementaryTypeName","src":"31450:7:88","typeDescriptions":{}}},"id":55315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31450:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55311,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"31431:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31431:31:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"31420:42:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55318,"nodeType":"ExpressionStatement","src":"31420:42:88"},{"assignments":[55321],"declarations":[{"constant":false,"id":55321,"mutability":"mutable","name":"subnetId","nameLocation":"31489:8:88","nodeType":"VariableDeclaration","scope":55351,"src":"31473:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55320,"nodeType":"UserDefinedTypeName","pathNode":{"id":55319,"name":"SubnetID","nameLocations":["31473:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31473:8:88"},"referencedDeclaration":50077,"src":"31473:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55328,"initialValue":{"arguments":[{"id":55326,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55284,"src":"31541:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55322,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31500:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31509:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"31500:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31526:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"31500:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"31473:82:88"},{"assignments":[55331],"declarations":[{"constant":false,"id":55331,"mutability":"mutable","name":"subnet","nameLocation":"31580:6:88","nodeType":"VariableDeclaration","scope":55351,"src":"31566:20:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55330,"nodeType":"UserDefinedTypeName","pathNode":{"id":55329,"name":"Subnet","nameLocations":["31566:6:88"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"31566:6:88"},"referencedDeclaration":50091,"src":"31566:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55338,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55334,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55321,"src":"31606:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31615:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"31606:15:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31606:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55332,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31589:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31598:7:88","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"31589:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$50091_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":55337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31589:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"31566:58:88"},{"expression":{"components":[{"expression":{"id":55339,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31643:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31650:2:88","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"31643:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55341,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31654:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31661:5:88","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"31654:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55343,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31668:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31675:12:88","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"31668:19:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55345,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31689:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31696:20:88","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"31689:27:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55347,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31718:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31725:10:88","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"31718:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31642:94:88","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256)"}},"functionReturnParameters":55300,"id":55350,"nodeType":"Return","src":"31635:101:88"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"31211:11:88","parameters":{"id":55288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55284,"mutability":"mutable","name":"subnetAddress","nameLocation":"31240:13:88","nodeType":"VariableDeclaration","scope":55352,"src":"31232:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55283,"name":"address","nodeType":"ElementaryTypeName","src":"31232:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55287,"mutability":"mutable","name":"gw","nameLocation":"31278:2:88","nodeType":"VariableDeclaration","scope":55352,"src":"31263:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55286,"nodeType":"UserDefinedTypeName","pathNode":{"id":55285,"name":"GatewayDiamond","nameLocations":["31263:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"31263:14:88"},"referencedDeclaration":36170,"src":"31263:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"31222:64:88"},"returnParameters":{"id":55300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31303:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55290,"nodeType":"UserDefinedTypeName","pathNode":{"id":55289,"name":"SubnetID","nameLocations":["31303:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31303:8:88"},"referencedDeclaration":50077,"src":"31303:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31320:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55292,"name":"uint256","nodeType":"ElementaryTypeName","src":"31320:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31329:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55294,"name":"uint256","nodeType":"ElementaryTypeName","src":"31329:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31338:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55296,"name":"uint256","nodeType":"ElementaryTypeName","src":"31338:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31347:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55298,"name":"uint256","nodeType":"ElementaryTypeName","src":"31347:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31302:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55374,"nodeType":"FunctionDefinition","src":"31749:177:88","nodes":[],"body":{"id":55373,"nodeType":"Block","src":"31860:66:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55369,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55354,"src":"31889:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55370,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31904:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55368,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"31877:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31877:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":55367,"id":55372,"nodeType":"Return","src":"31870:49:88"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"31758:9:88","parameters":{"id":55355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55354,"mutability":"mutable","name":"subnetAddress","nameLocation":"31776:13:88","nodeType":"VariableDeclaration","scope":55374,"src":"31768:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55353,"name":"address","nodeType":"ElementaryTypeName","src":"31768:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31767:23:88"},"returnParameters":{"id":55367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31807:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55357,"nodeType":"UserDefinedTypeName","pathNode":{"id":55356,"name":"SubnetID","nameLocations":["31807:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31807:8:88"},"referencedDeclaration":50077,"src":"31807:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31824:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55359,"name":"uint256","nodeType":"ElementaryTypeName","src":"31824:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31833:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55361,"name":"uint256","nodeType":"ElementaryTypeName","src":"31833:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31842:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55363,"name":"uint256","nodeType":"ElementaryTypeName","src":"31842:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31851:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55365,"name":"uint256","nodeType":"ElementaryTypeName","src":"31851:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31806:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53038,"name":"Test","nameLocations":["8694:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"8694:4:88"},"id":53039,"nodeType":"InheritanceSpecifier","src":"8694:4:88"},{"baseName":{"id":53040,"name":"TestParams","nameLocations":["8700:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"8700:10:88"},"id":53041,"nodeType":"InheritanceSpecifier","src":"8700:10:88"},{"baseName":{"id":53042,"name":"TestRegistry","nameLocations":["8712:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":52747,"src":"8712:12:88"},"id":53043,"nodeType":"InheritanceSpecifier","src":"8712:12:88"},{"baseName":{"id":53044,"name":"TestSubnetActor","nameLocations":["8726:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":53037,"src":"8726:15:88"},"id":53045,"nodeType":"InheritanceSpecifier","src":"8726:15:88"},{"baseName":{"id":53046,"name":"TestGatewayActor","nameLocations":["8743:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":52912,"src":"8743:16:88"},"id":53047,"nodeType":"InheritanceSpecifier","src":"8743:16:88"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50887,52151,52279,52517,57957],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55375,52912,53037,52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"8671:19:88","scope":55376,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":88} \ No newline at end of file diff --git a/.out/IntegrationTestBase.sol/TestSubnetActor.json b/.out/IntegrationTestBase.sol/TestSubnetActor.json index 385f4f5d8..3627b2eba 100644 --- a/.out/IntegrationTestBase.sol/TestSubnetActor.json +++ b/.out/IntegrationTestBase.sol/TestSubnetActor.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"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":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"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":"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":"0x60808060405234620008c2576200006290600160ff19818160005416176000556004541617600455620000328162000bb0565b601681527f5375626e65744163746f72476574746572466163657400000000000000000000602082015262000cab565b8051906001600160401b03821162000622576801000000000000000082116200062257601b5482601b5580831062000b4d575b5060200190601b60005260206000208160031c9160005b83811062000afd5750600719811690038062000aa8575b5050505062000109604051620000d98162000bb0565b601781527f5375626e65744163746f724d616e616765724661636574000000000000000000602082015262000cab565b8051906001600160401b03821162000622576801000000000000000082116200062257601c5482601c5580831062000a45575b5060200190601c60005260206000208160031c9160005b838110620009f557506007198116900380620009a0575b505050506040516200017c8162000bb0565b601b81527f5375626e65744163746f724d616e6167657246616365744d6f636b0000000000602082015260405190620001b58262000bcc565b6003825260005b60609081811015620001d85760209182828601015201620001bc565b5050604051620001e88162000bb0565b6007815266707974686f6e3360c81b6020820152620002078362000c40565b52620002138262000c40565b50604051620002228162000bb0565b601f81527f736372697074732f707974686f6e2f6765745f73656c6563746f72732e7079006020820152620002578362000c64565b52620002638262000c64565b506200026f8262000c75565b526200027b8162000c75565b5060405190638916046760e01b825281602481016020600483015282518091526044820190602060448260051b8501019401916000905b8282106200095957846000818089038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af19081156200094d57600091620008c7575b508051810190602081818401930312620008c2576020810151906001600160401b038211620008c25782603f838301011215620008c25760208282010151620003348162000c28565b9262000344604051948562000be8565b8184526020840192839560408460051b848401010111620008c25780820160400193915b60408460051b8284010101851062000898578551876001600160401b03821162000622576801000000000000000082116200062257601d5482601d5580831062000810575b5090601d60005260206000209060005b8160031c8110620007c05750600719811681038062000768575b505050506200040f604051620003ed8162000bb0565b600f81526e111a585b5bdb9910dd5d119858d95d608a1b602082015262000cab565b8051906001600160401b03821162000622576801000000000000000082116200062257601e5482601e55808310620006e0575b5060200190601e60005260206000209060005b8160031c8110620006905750600719811681038062000638575b50505050620004a9604051620004858162000bb0565b6011815270111a585b5bdb99131bdd5c19519858d95d607a1b602082015262000cab565b8051906001600160401b03821162000622576801000000000000000082116200062257601f5482601f55808310620005bf575b5060200190601f60005260206000208160031c9160005b8381106200056f575060071981169003806200051a575b604051610c8e908162000f7a8239f35b9260009360005b81811062000538575050500155808080806200050a565b909194602062000564600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000521565b6000805b600881106200058a575083820155600101620004f3565b95906020620005b5600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960162000573565b601f6000526020600020600780850160031c8201920160031c0190601c8460021b168062000606575b505b818110620005f95750620004dc565b60008155600101620005ea565b600019908183019182549160200360031b1c16905584620005e8565b634e487b7160e01b600052604160045260246000fd5b9260009360005b818110620006595750505060031c0155808080806200046f565b909194602062000685600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200063f565b6000805b60088110620006ab57508382015560010162000455565b94906020620006d6600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000694565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c168062000744575b50600780850160031c8201920160031c01905b81811062000737575062000442565b6000815560010162000728565b60001990816007870160031c8401019182549160200360031b1c1690558462000715565b9260009360005b818110620007895750505060031c015580808080620003d7565b9091946020620007b5600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200076f565b6000805b60088110620007db575083820155600101620003bd565b9490602062000806600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620007c4565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c168062000874575b50600780850160031c8201920160031c01905b818110620008675750620003ad565b6000815560010162000858565b60001990816007870160031c8401019182549160200360031b1c1690558462000845565b8451926001600160e01b031984168403620008c25760208160409582935201950194925062000368565b600080fd5b90503d806000833e620008db818362000be8565b810190602081830312620008c2578051906001600160401b038211620008c2570181601f82011215620008c2578051620009158162000c0c565b9262000925604051948562000be8565b81845260208284010111620008c25762000946916020808501910162000c86565b81620002eb565b6040513d6000823e3d90fd5b9193509193602080806001936043198a82030186528851620009878151809281855285808601910162000c86565b601f8019910116010196019201920185939192620002b2565b9260009360005b818110620009be575050500155388080806200016a565b9091946020620009ea600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620009a7565b6000805b6008811062000a1057508382015560010162000153565b9590602062000a3b600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601620009f9565b601c6000526020600020600780850160031c8201920160031c0190601c8460021b168062000a8c575b505b81811062000a7f57506200013c565b6000815560010162000a70565b600019908183019182549160200360031b1c1690553862000a6e565b9260009360005b81811062000ac657505050015538808080620000c3565b909194602062000af2600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000aaf565b6000805b6008811062000b18575083820155600101620000ac565b9590602062000b43600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960162000b01565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b168062000b94575b505b81811062000b87575062000095565b6000815560010162000b78565b600019908183019182549160200360031b1c1690553862000b76565b604081019081106001600160401b038211176200062257604052565b608081019081106001600160401b038211176200062257604052565b601f909101601f19168101906001600160401b038211908210176200062257604052565b6001600160401b0381116200062257601f01601f191660200190565b6001600160401b038111620006225760051b60200190565b80511562000c4e5760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101562000c4e5760400190565b80516002101562000c4e5760600190565b60005b83811062000c9a5750506000910152565b818101518382015260200162000c89565b60409081519262000cbc8462000bcc565b6003845260005b60608082101562000cdf57906020918282880101520162000cc3565b50509282519162000cf08362000bb0565b6007835260209266707974686f6e3360c81b8482015262000d118362000c40565b5262000d1d8262000c40565b5083519062000d2c8262000bb0565b601f918281527f736372697074732f707974686f6e2f6765745f73656c6563746f72732e7079008582015262000d628462000c64565b5262000d6e8362000c64565b5062000d7a8362000c75565b5262000d868262000c75565b50835191638916046760e01b83528260248101856004830152825180915260448201908660448260051b8501019401916000905b8883831062000f3357505050505080600092038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af190811562000f285760009162000e97575b50809150518101908281818401930312620008c25780830151906001600160401b038211620008c257019281603f85011215620008c257828401519062000e3e8262000c28565b9462000e4d8251968762000be8565b828652818587019360051b820101938411620008c25701905b82821062000e75575050505090565b81516001600160e01b031981168103620008c257815290830190830162000e66565b3d8083853e62000ea8818562000be8565b830192848185031262000f24578051906001600160401b03821162000f20570190810183131562000f1c5780519162000ee18362000c0c565b9362000ef08751958662000be8565b83855285848401011162000f1957509062000f119184808501910162000c86565b803862000df7565b80fd5b5080fd5b8380fd5b8280fd5b84513d6000823e3d90fd5b80809294965060019395976043198b8203018652885162000f608151809281855285808601910162000c86565b8a601f1991011601019601920192018693919262000dba56fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220ed18f9bb5bf8f30ebe17773000664e7917aaacff35d3c691f602d0b212230c9364736f6c63430008130033","sourceMap":"5790:1815:81:-:0;;;;;;;6276:57;5790:1815;1594:4:2;5790:1815:81;;;;1594:4:2;5790:1815:81;;;1594:4:2;5790:1815:81;3201:4:5;5790:1815:81;;;3201:4:5;5790:1815:81;1220:14:3;;;:::i;:::-;;;;;;;;;6276:57:81;:::i;:::-;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;;;;;;;;6256:77:81;1220:14:3;;6256:77:81;1220:14:3;;;;;;-1:-1:-1;1220:14:3;;;;6256:77:81;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;1594:4:2;1220:14:3;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;5790:1815:81;;;;6364:58;5790:1815;;1220:14:3;;;:::i;:::-;;;;;;;;;6364:58:81;:::i;:::-;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;;;;;;;;6343:79:81;1220:14:3;;6343:79:81;1220:14:3;;;;;;;;;;;6343:79:81;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;1594:4:2;1220:14:3;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;5790:1815:81;;;;;;1220:14:3;;;:::i;:::-;6256:77:81;1220:14:3;;;;;;;5790:1815:81;;1220:14:3;;;;:::i;:::-;;5790:1815:81;;1594:4:2;5790:1815:81;;;;;;;;;1220:14:3;5790:1815:81;;;;;;;;;;;;;;;1220:14:3;;;:::i;:::-;;;;-1:-1:-1;;;1220:14:3;5790:1815:81;;;1473:21:86;;;:::i;:::-;5790:1815:81;1473:21:86;;;:::i;:::-;;5790:1815:81;;1220:14:3;;;:::i;:::-;5790:1815:81;1220:14:3;;5790:1815:81;1220:14:3;5790:1815:81;;;1504:45:86;;;:::i;:::-;5790:1815:81;1504:45:86;;;:::i;:::-;;1559:21;;;:::i;:::-;;;;;:::i;:::-;;5790:1815:81;;1220:14:3;;;;1610::86;;5790:1815:81;;;;1220:14:3;3201:4:5;1610:14:86;;5790:1815:81;1220:14:3;;5790:1815:81;;;;;;;1220:14:3;5790:1815:81;;;;;;;;;;1594:4:2;5790:1815:81;;;;;;;1610:14:86;1594:4:2;1610:14:86;;;;;;5790:1815:81;1610:14:86;;;;;;;1594:4:2;1610:14:86;;;5790:1815:81;1220:14:3;;;1651:27:86;;;1220:14:3;1651:27:86;;;;5790:1815:81;;;;;1220:14:3;1651:27:86;;5790:1815:81;;-1:-1:-1;;;;;5790:1815:81;;;;;;;;;;;;;;1220:14:3;5790:1815:81;;;;;;;;:::i;:::-;;1220:14:3;5790:1815:81;;1220:14:3;;;:::i;:::-;5790:1815:81;;;1220:14:3;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;;;;;;;;6432:89:81;1220:14:3;;6432:89:81;1220:14:3;;;;;;5790:1815:81;1220:14:3;;6432:89:81;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;5790:1815:81;;;;6551:50;5790:1815;;1220:14:3;;;:::i;:::-;;;;-1:-1:-1;;;1220:14:3;;;;6551:50:81;:::i;:::-;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;;;;;;;;6531:70:81;1220:14:3;;6531:70:81;1220:14:3;;;;;;;;;;;6531:70:81;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;5790:1815:81;;;;6631:52;5790:1815;;1220:14:3;;;:::i;:::-;;;;-1:-1:-1;;;1220:14:3;;;;6631:52:81;:::i;:::-;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;;;;;;;;5790:1815:81;1220:14:3;;5790:1815:81;1220:14:3;;;;;;;;;;;5790:1815:81;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;1594:4:2;1220:14:3;;;;;;-1:-1:-1;;;1220:14:3;;;;;;;;5790:1815:81;;;;;;;;;1220:14:3;;1594:4:2;1220:14:3;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;1220:14:3;;;;;;-1:-1:-1;1220:14:3;;;;1594:4:2;1220:14:3;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5790:1815:81;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;6343:79:81;1220:14:3;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;3201:4:5;1220:14:3;5790:1815:81;1594:4:2;1220:14:3;;;1594:4:2;1220:14:3;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;1220:14:3;;;;;;-1:-1:-1;1220:14:3;;;;1594:4:2;1220:14:3;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6531:70:81;1594:4:2;1220:14:3;;;;;;6343:79:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;1220:14:3;;;;;;-1:-1:-1;1220:14:3;;;;1594:4:2;1220:14:3;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6432:89:81;1594:4:2;1220:14:3;;;;;;6343:79:81;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5790:1815:81;;;;-1:-1:-1;;;;;;1220:14:3;;5790:1815:81;;;;1220:14:3;5790:1815:81;;;;;;;;;;;;;;;1594:4:2;5790:1815:81;;1610:14:86;;;;;1594:4:2;1610:14:86;;;;;;:::i;:::-;;;5790:1815:81;1220:14:3;5790:1815:81;;;;;;;;;-1:-1:-1;;;;;5790:1815:81;;;;;;;;;;;;;;;;;;:::i;:::-;;1220:14:3;5790:1815:81;;1220:14:3;;;:::i;:::-;5790:1815:81;;;1220:14:3;5790:1815:81;;;;;;;;;1220:14:3;5790:1815:81;;;;;;:::i;:::-;1610:14:86;;;;5790:1815:81;;;1594:4:2;5790:1815:81;;;;;;;;;;;1220:14:3;5790:1815:81;;1594:4:2;5790:1815:81;;;;;;;;;;;;1220:14:3;;5790:1815:81;;;;;;;;;;;;:::i;:::-;;;;1220:14:3;;;5790:1815:81;;;;;;;;;;;;;;1220:14:3;;1594:4:2;1220:14:3;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;1220:14:3;;;;;;-1:-1:-1;1220:14:3;;;;1594:4:2;1220:14:3;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6343:79:81;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;6343:79:81;1220:14:3;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;1220:14:3;;;;;;-1:-1:-1;1220:14:3;;;;1594:4:2;1220:14:3;;;;;;;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6256:77:81;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;1220:14:3;;1594:4:2;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;5790:1815:81;1220:14:3;;;;;-1:-1:-1;;;;;1220:14:3;;;;;5790:1815:81;1220:14:3;:::o;:::-;5790:1815:81;1220:14:3;;;;;-1:-1:-1;;;;;1220:14:3;;;;;;;:::o;:::-;5790:1815:81;1220:14:3;;;-1:-1:-1;;1220:14:3;;;;-1:-1:-1;;;;;1220:14:3;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1220:14:3;;;;5790:1815:81;1220:14:3;-1:-1:-1;;1220:14:3;;;;:::o;5790:1815:81:-;-1:-1:-1;;;;;5790:1815:81;;;;;;;;;:::o;:::-;1220:14:3;;5790:1815:81;;;;;;:::o;:::-;1220:14:3;;;5790:1815:81;;;;;;;;;1220:14:3;;1511:1:86;5790:1815:81;;;;;;;:::o;:::-;1220:14:3;;1566:1:86;5790:1815:81;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;5790:1815:81;;;;:::o;:::-;;;;;;;;;;;;;1304:381:86;5790:1815:81;;;;1220:14:3;;;;:::i;:::-;1461:1:86;5790:1815:81;;-1:-1:-1;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;1220:14:3;;;;:::i;:::-;5790:1815:81;1220:14:3;;5790:1815:81;;-1:-1:-1;;;5790:1815:81;;;;1473:21:86;;;:::i;:::-;5790:1815:81;1473:21:86;;;:::i;:::-;;5790:1815:81;;1220:14:3;;;;:::i;:::-;5790:1815:81;1220:14:3;;;;5790:1815:81;;;;;1504:45:86;;;:::i;:::-;5790:1815:81;1504:45:86;;;:::i;:::-;;1559:21;;;:::i;:::-;;;;;:::i;:::-;;5790:1815:81;;1220:14:3;;;;1610::86;;5790:1815:81;;;;1610:14:86;;;;5790:1815:81;1220:14:3;;5790:1815:81;;;;;;;;;;;;;;;;;;-1:-1:-1;5790:1815:81;;;;;;;;1610:14:86;;;;;;-1:-1:-1;1610:14:86;;;;5790:1815:81;1610:14:86;;;;;;;-1:-1:-1;1610:14:86;;;5790:1815:81;1220:14:3;;;;;1651:27:86;;;;;;;;5790:1815:81;;;;;1651:27:86;;;5790:1815:81;;-1:-1:-1;;;;;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1220:14:3;5790:1815:81;;1220:14:3;;;:::i;:::-;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;1634:44:86;;;;1304:381;:::o;5790:1815:81:-;;;-1:-1:-1;;;;;;1220:14:3;;5790:1815:81;;;;;;;;;;;;;;1610:14:86;;;;;;;;;;:::i;:::-;;;5790:1815:81;;;;;;;;;;;-1:-1:-1;;;;;5790:1815:81;;;;;;;;;-1:-1:-1;5790:1815:81;;;;;;;;;:::i;:::-;;1220:14:3;5790:1815:81;;1220:14:3;;;:::i;:::-;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1610:14:86;;;;5790:1815:81;;;;;;;;;;;;;;;1610:14:86;5790:1815:81;;;-1:-1:-1;5790:1815:81;;;;;;;;;;;;1511:1:86;5790:1815:81;;;;;;;;;;;;;;1220:14:3;;5790:1815:81;;;;;;;;;;;;:::i;:::-;;;;1220:14:3;;;5790:1815:81;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220ed18f9bb5bf8f30ebe17773000664e7917aaacff35d3c691f602d0b212230c9364736f6c63430008130033","sourceMap":"5790:1815:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;5790:1815:81;;;;:::i;:::-;;1671:64:2;5790:1815:81;;1671:64:2;;;:::i;:::-;5790:1815:81;;;1982:18:8;5790:1815:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5790:1815:81;;;;;;;;-1:-1:-1;5790:1815:81;;;;;-1:-1:-1;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5790:1815:81;;;;;-1:-1:-1;5790:1815:81;;;;;;;;;-1:-1:-1;5790:1815:81;;;;-1:-1:-1;;;;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;5790:1815:81;;;;:::i;:::-;;1671:64:2;5790:1815:81;;1671:64:2;;;:::i;:::-;5790:1815:81;;;2899:18:8;5790:1815:81;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;5790:1815:81;;-1:-1:-1;;;;;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5790:1815:81;;;;;;;;;;;;-1:-1:-1;;;;;;5790:1815:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5790:1815:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5790:1815:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5790:1815:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5790:1815:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5790:1815:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;5790:1815:81;;;;:::i;:::-;;1671:64:2;5790:1815:81;;1671:64:2;;;:::i;:::-;5790:1815:81;;;2416:18:8;5790:1815:81;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5790:1815:81;;;;;;;;-1:-1:-1;5790:1815:81;;;;;-1:-1:-1;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5790:1815:81;;;;;-1:-1:-1;5790:1815:81;;;;;;;;;-1:-1:-1;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;5790:1815:81;;;;:::i;:::-;;1671:64:2;5790:1815:81;;1671:64:2;;;:::i;:::-;5790:1815:81;;;2592:26:8;5790:1815:81;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;5790:1815:81;;-1:-1:-1;;;;;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5790:1815:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5790:1815:81;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;5790:1815:81;;;;;;;;;;;;;;;;;1671:64:2;5790:1815:81;1671:64:2;;;;;;;;;;;5790:1815:81;1671:64:2;:::o;:::-;5790:1815:81;;;1671:64:2;;;;;;;;;;5790:1815:81;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;5790:1815:81;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;5790:1815:81;;;2196:43:2;;;5790:1815:81;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;5790:1815:81;;-1:-1:-1;1671:64:2;;5790:1815:81;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;5790:1815:81;1671:64:2;2086:175;;;5790:1815:81;;;;;;1671:64:2;5790:1815:81;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;5790:1815:81;;;1671:64:2;5790:1815:81;;;-1:-1:-1;;5790:1815:81;2196:43:2;1671:64;5790:1815:81;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;5790:1815:81;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;5790:1815:81;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;5790:1815:81;1671:64:2;;;5790:1815:81;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;5790:1815:81;1671:64:2;5790:1815:81;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"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\":\"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/IntegrationTestBase.sol\":\"TestSubnetActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x1771042e416900276fc557c71365bcb7a470c46378109feae5813fd2df1f6cdd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5c02c7b8141cade572031ce857f0c66f8bf33ef9627c1c2c849532489334f095\",\"dweb:/ipfs/QmbM5n1rm9ZzoX9P22LT1xfaxqjVHCsMkPAactq5CYMjyt\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b\",\"dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21\",\"dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xe5c934c38631fc852b2d818a5234f6514c172311218b890a6fc5fd797f92dec9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://180a99f9ae7f52c07efd8d50c12562889661cc0a8d2e1f6e8dd10e8ef399193e\",\"dweb:/ipfs/QmNoscfa82rSeb6WXcFhj5GJ5iNmiMGmphQf3SLkbXZEeu\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0x4517792d005bd1b3e1a0bea06af04f20119222fffffbc6b310522d820be83369\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ef8859a2e7e61a15776c6110f4183fd62099a34a2bc16d33c09b37f220ce3673\",\"dweb:/ipfs/Qme38CS7qv8tCFWfYCMUcZvBnF63wf5E1pzGmG4kYjhoh1\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x5a8e1e7961e424e04b21c3aa85a2624e0996d7d401e8f9759239c09eac6c3cd2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d1083fcdfd0489cad22a516b7f551d08dea47d95a4a25f24b1aa3dd9b01a0501\",\"dweb:/ipfs/QmdxhTnQbWsxMCawiBL1mow2q8nXP5XPXr7KAbi5FxAK2W\"]},\"src/gateway/GatewayRouterFacet.sol\":{\"keccak256\":\"0x409518aa2f9f3df22be447bdede6c4bdff2535be7a5209c997725cd6fc77c00e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b337abc4fe880c91eca25d1312fe6d1f2f6f9e95d564a9aecaa553d215d1422b\",\"dweb:/ipfs/QmQoT3xpE9QJPvcmXdpSkkYsSWew6qBMqreTkEvk9pxn64\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14\",\"dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7\",\"dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2\",\"dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x96a4183d613f1cfefc19a6032361910d8d06ba68e14f2c26c7ed058ab9116bc4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://330a52b5ecb618b4846ecb04da3ee1109149228ccf05a2e098a87750ae4dd82e\",\"dweb:/ipfs/QmNY8kSJpHA238pR9dSbXFLw5D5WzfFj9pHqe8DQ2GmSuq\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c\",\"dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x7e36a89eb829f018acd7e8877a8a1b93bc939e87467700846741cda033432d99\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0f4db114142828d91b8ac120269a3de36390e63f3e5c0d27a821bdbad7d77f0\",\"dweb:/ipfs/QmYZAiaWWPATDrtF3MFoxdcBkmwMacFrjByFNb3hPeLDo6\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0x957c018167e9314422d52f4817e22b6a72f3d5651277579c62266375f95cc8aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e0b2f6f034bff2e50a6552b8963d7a193fd68da3aa38342127ec25ec1fd950b8\",\"dweb:/ipfs/QmcLWq8bWeU2D3wS9mVmxNixZa25uYg4WB63CfdrC1qboT\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x754f60bfb99884f3347c68fd063a18a8c80bcbdaf848391803d89654cdd97aef\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ed97511b421373b8e94222d825568f9c2a3a4e6ff2d9ab4f3f48fe1e9e3a8ba9\",\"dweb:/ipfs/QmadhEoTUMstJtS1M7Gzdz3Df1kEs1C7u7Mk2v4x6PDy7H\"]},\"test/mocks/SubnetActor.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"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":"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestSubnetActor"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x1771042e416900276fc557c71365bcb7a470c46378109feae5813fd2df1f6cdd","urls":["bzz-raw://5c02c7b8141cade572031ce857f0c66f8bf33ef9627c1c2c849532489334f095","dweb:/ipfs/QmbM5n1rm9ZzoX9P22LT1xfaxqjVHCsMkPAactq5CYMjyt"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87","urls":["bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b","dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140","urls":["bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21","dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xe5c934c38631fc852b2d818a5234f6514c172311218b890a6fc5fd797f92dec9","urls":["bzz-raw://180a99f9ae7f52c07efd8d50c12562889661cc0a8d2e1f6e8dd10e8ef399193e","dweb:/ipfs/QmNoscfa82rSeb6WXcFhj5GJ5iNmiMGmphQf3SLkbXZEeu"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0x4517792d005bd1b3e1a0bea06af04f20119222fffffbc6b310522d820be83369","urls":["bzz-raw://ef8859a2e7e61a15776c6110f4183fd62099a34a2bc16d33c09b37f220ce3673","dweb:/ipfs/Qme38CS7qv8tCFWfYCMUcZvBnF63wf5E1pzGmG4kYjhoh1"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x5a8e1e7961e424e04b21c3aa85a2624e0996d7d401e8f9759239c09eac6c3cd2","urls":["bzz-raw://d1083fcdfd0489cad22a516b7f551d08dea47d95a4a25f24b1aa3dd9b01a0501","dweb:/ipfs/QmdxhTnQbWsxMCawiBL1mow2q8nXP5XPXr7KAbi5FxAK2W"],"license":"UNLICENSED"},"src/gateway/GatewayRouterFacet.sol":{"keccak256":"0x409518aa2f9f3df22be447bdede6c4bdff2535be7a5209c997725cd6fc77c00e","urls":["bzz-raw://b337abc4fe880c91eca25d1312fe6d1f2f6f9e95d564a9aecaa553d215d1422b","dweb:/ipfs/QmQoT3xpE9QJPvcmXdpSkkYsSWew6qBMqreTkEvk9pxn64"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3","urls":["bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14","dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d","urls":["bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7","dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c","urls":["bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2","dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x96a4183d613f1cfefc19a6032361910d8d06ba68e14f2c26c7ed058ab9116bc4","urls":["bzz-raw://330a52b5ecb618b4846ecb04da3ee1109149228ccf05a2e098a87750ae4dd82e","dweb:/ipfs/QmNY8kSJpHA238pR9dSbXFLw5D5WzfFj9pHqe8DQ2GmSuq"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad","urls":["bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c","dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x7e36a89eb829f018acd7e8877a8a1b93bc939e87467700846741cda033432d99","urls":["bzz-raw://d0f4db114142828d91b8ac120269a3de36390e63f3e5c0d27a821bdbad7d77f0","dweb:/ipfs/QmYZAiaWWPATDrtF3MFoxdcBkmwMacFrjByFNb3hPeLDo6"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0x957c018167e9314422d52f4817e22b6a72f3d5651277579c62266375f95cc8aa","urls":["bzz-raw://e0b2f6f034bff2e50a6552b8963d7a193fd68da3aa38342127ec25ec1fd950b8","dweb:/ipfs/QmcLWq8bWeU2D3wS9mVmxNixZa25uYg4WB63CfdrC1qboT"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x754f60bfb99884f3347c68fd063a18a8c80bcbdaf848391803d89654cdd97aef","urls":["bzz-raw://ed97511b421373b8e94222d825568f9c2a3a4e6ff2d9ab4f3f48fe1e9e3a8ba9","dweb:/ipfs/QmadhEoTUMstJtS1M7Gzdz3Df1kEs1C7u7Mk2v4x6PDy7H"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActor.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":54009,"exportedSymbols":{"AddressShouldBeValidator":[36936],"AlreadyRegisteredSubnet":[36938],"BatchAlreadyExists":[36948],"BatchNotCreated":[36956],"BatchWithNoMessages":[36976],"BottomUpCheckpoint":[48410],"CannotConfirmFutureChanges":[36940],"CannotFindSubnet":[37088],"CannotReleaseZero":[36942],"CannotSendCrossMsgToItself":[36944],"CheckpointAlreadyExists":[36946],"CheckpointNotCreated":[36954],"CollateralIsZero":[36958],"ConsensusType":[36918],"CrossMsg":[48452],"CrossMsgHelper":[40328],"DSTest":[3720],"DiamondCutFacet":[36477],"DiamondLoupeFacet":[36914],"DuplicatedGenesisValidator":[37098],"EMPTY_BYTES":[36435],"EmptyAddress":[36960],"FacetCannotBeZero":[37084],"FailedAddIncompleteQuorum":[36962],"FailedAddSignatory":[36964],"FailedRemoveIncompleteQuorum":[36966],"FilAddress":[1428],"FvmAddress":[48476],"FvmAddressHelper":[40509],"GatewayCannotBeZero":[36968],"GatewayDiamond":[35759],"GatewayGetterFacet":[37869],"GatewayManagerFacet":[38359],"GatewayMessengerFacet":[38674],"GatewayRouterFacet":[39706],"IDiamond":[39732],"IPCAddress":[48687],"IntegrationTestBase":[54008],"InvalidActorAddress":[36970],"InvalidBatchEpoch":[36974],"InvalidBatchSource":[36980],"InvalidCheckpointEpoch":[36972],"InvalidCheckpointSource":[36978],"InvalidCollateral":[36984],"InvalidConfigurationNumber":[36986],"InvalidCrossMsgDstSubnet":[36988],"InvalidCrossMsgFromSubnet":[36990],"InvalidCrossMsgNonce":[36992],"InvalidCrossMsgValue":[36994],"InvalidFederationPayload":[37096],"InvalidMajorityPercentage":[36996],"InvalidPowerScale":[36998],"InvalidPublicKeyLength":[37010],"InvalidRetentionHeight":[37000],"InvalidSignature":[37002],"InvalidSignatureErr":[37006],"InvalidSignatureLength":[37008],"InvalidSubmissionPeriod":[37012],"InvalidSubnet":[37014],"InvalidSubnetActor":[36982],"METHOD_SEND":[36441],"MaxMsgsPerBatchExceeded":[36950],"MethodNotAllowed":[37094],"NoCollateralToWithdraw":[37016],"NoRewardToWithdraw":[37018],"NoValidatorsInSubnet":[37020],"NotAllValidatorsHaveLeft":[37022],"NotAuthorized":[37026],"NotEmptySubnetCircSupply":[37028],"NotEnoughBalance":[37030],"NotEnoughBalanceForRewards":[37032],"NotEnoughCollateral":[37034],"NotEnoughFee":[37036],"NotEnoughFunds":[37038],"NotEnoughFundsToRelease":[37040],"NotEnoughGenesisValidators":[37100],"NotEnoughSubnetCircSupply":[37042],"NotEnoughValidatorsInSubnet":[37044],"NotGateway":[37046],"NotOwnerOfPublicKey":[37048],"NotRegisteredSubnet":[37050],"NotStakedBefore":[37052],"NotSystemActor":[37054],"NotValidator":[37058],"OldConfigurationNumber":[37060],"PQDoesNotContainAddress":[37062],"PQEmpty":[37064],"ParentFinality":[48396],"ParentFinalityAlreadyCommitted":[37066],"PermissionMode":[48648],"PostboxNotExist":[37068],"QuorumAlreadyProcessed":[36952],"RegisterSubnetFacet":[51075],"SignatureReplay":[37070],"Status":[36932],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[48469],"StorableMsgHelper":[46265],"Subnet":[48574],"SubnetActorDiamond":[36177],"SubnetActorGetterFacet":[49325],"SubnetActorManagerFacet":[50947],"SubnetActorManagerFacetMock":[56069],"SubnetAlreadyBootstrapped":[37082],"SubnetAlreadyKilled":[37072],"SubnetGetterFacet":[51313],"SubnetID":[48557],"SubnetIDHelper":[46876],"SubnetNotActive":[37074],"SubnetNotFound":[37076],"SubnetRegistryDiamond":[36415],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[51670],"TestParams":[51469],"TestRegistry":[51537],"TestSubnetActor":[51792],"TestUtils":[55168],"UnknownSubnet":[37090],"Validator":[48694],"Vm":[14222],"WithdrawExceedingCollateral":[37078],"WrongGateway":[37086],"ZeroMembershipWeight":[37080],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:29281:81","nodes":[{"id":51315,"nodeType":"PragmaDirective","src":"46:23:81","nodes":[],"literals":["solidity","0.8",".19"]},{"id":51316,"nodeType":"ImportDirective","src":"71:28:81","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":51317,"nodeType":"ImportDirective","src":"100:36:81","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":51318,"nodeType":"ImportDirective","src":"137:37:81","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":37101,"symbolAliases":[],"unitAlias":""},{"id":51321,"nodeType":"ImportDirective","src":"176:72:81","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36442,"symbolAliases":[{"foreign":{"id":51319,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36435,"src":"184:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51320,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"197:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51323,"nodeType":"ImportDirective","src":"249:61:81","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":51322,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"257:13:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51325,"nodeType":"ImportDirective","src":"311:47:81","nodes":[],"absolutePath":"src/enums/Status.sol","file":"../src/enums/Status.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36933,"symbolAliases":[{"foreign":{"id":51324,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"319:6:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51327,"nodeType":"ImportDirective","src":"359:56:81","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":39733,"symbolAliases":[{"foreign":{"id":51326,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"367:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51332,"nodeType":"ImportDirective","src":"416:102:81","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":51328,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"424:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51329,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"434:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51330,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"454:11:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51331,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"467:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51334,"nodeType":"ImportDirective","src":"519:57:81","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":48484,"symbolAliases":[{"foreign":{"id":51333,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"527:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51341,"nodeType":"ImportDirective","src":"577:114:81","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":51335,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"585:8:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51336,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"595:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51337,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"611:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51338,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48574,"src":"627:6:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51339,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"635:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51340,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"647:9:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51343,"nodeType":"ImportDirective","src":"692:61:81","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":46877,"symbolAliases":[{"foreign":{"id":51342,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46876,"src":"700:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51345,"nodeType":"ImportDirective","src":"754:65:81","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":40510,"symbolAliases":[{"foreign":{"id":51344,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"762:16:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51347,"nodeType":"ImportDirective","src":"820:61:81","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":40329,"symbolAliases":[{"foreign":{"id":51346,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40328,"src":"828:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51349,"nodeType":"ImportDirective","src":"882:67:81","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":46266,"symbolAliases":[{"foreign":{"id":51348,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"890:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51351,"nodeType":"ImportDirective","src":"950:56:81","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":51350,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"958:10:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51353,"nodeType":"ImportDirective","src":"1007:57:81","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":35760,"symbolAliases":[{"foreign":{"id":51352,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35759,"src":"1015:14:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51355,"nodeType":"ImportDirective","src":"1065:65:81","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36178,"symbolAliases":[{"foreign":{"id":51354,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"1073:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51357,"nodeType":"ImportDirective","src":"1131:73:81","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":37870,"symbolAliases":[{"foreign":{"id":51356,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"1139:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51359,"nodeType":"ImportDirective","src":"1205:79:81","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":38675,"symbolAliases":[{"foreign":{"id":51358,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38674,"src":"1213:21:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51361,"nodeType":"ImportDirective","src":"1285:75:81","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":38360,"symbolAliases":[{"foreign":{"id":51360,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"1293:19:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51363,"nodeType":"ImportDirective","src":"1361:73:81","nodes":[],"absolutePath":"src/gateway/GatewayRouterFacet.sol","file":"../src/gateway/GatewayRouterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":39707,"symbolAliases":[{"foreign":{"id":51362,"name":"GatewayRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39706,"src":"1369:18:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51365,"nodeType":"ImportDirective","src":"1435:68:81","nodes":[],"absolutePath":"test/mocks/SubnetActor.sol","file":"./mocks/SubnetActor.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":56070,"symbolAliases":[{"foreign":{"id":51364,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56069,"src":"1443:27:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51367,"nodeType":"ImportDirective","src":"1504:82:81","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":50948,"symbolAliases":[{"foreign":{"id":51366,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"1512:23:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51369,"nodeType":"ImportDirective","src":"1587:80:81","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":49326,"symbolAliases":[{"foreign":{"id":51368,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"1595:22:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51371,"nodeType":"ImportDirective","src":"1668:71:81","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36416,"symbolAliases":[{"foreign":{"id":51370,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36415,"src":"1676:21:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51373,"nodeType":"ImportDirective","src":"1740:82:81","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":51076,"symbolAliases":[{"foreign":{"id":51372,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51075,"src":"1748:19:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51375,"nodeType":"ImportDirective","src":"1823:78:81","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":51314,"symbolAliases":[{"foreign":{"id":51374,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51313,"src":"1831:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51377,"nodeType":"ImportDirective","src":"1902:71:81","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36915,"symbolAliases":[{"foreign":{"id":51376,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"1910:17:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51379,"nodeType":"ImportDirective","src":"1974:67:81","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":36478,"symbolAliases":[{"foreign":{"id":51378,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"1982:15:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51381,"nodeType":"ImportDirective","src":"2042:50:81","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":54009,"sourceUnit":55169,"symbolAliases":[{"foreign":{"id":51380,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"2050:9:81","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51469,"nodeType":"ContractDefinition","src":"2094:1194:81","nodes":[{"id":51388,"nodeType":"VariableDeclaration","src":"2120:44:81","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2136:9:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51382,"name":"uint64","nodeType":"ElementaryTypeName","src":"2120:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":51385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2153:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":51384,"name":"uint64","nodeType":"ElementaryTypeName","src":"2153:6:81","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":51383,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2148:4:81","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":51386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2148:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":51387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2161:3:81","memberName":"max","nodeType":"MemberAccess","src":"2148:16:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":51394,"nodeType":"VariableDeclaration","src":"2170:91:81","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2187:20:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51389,"name":"address","nodeType":"ElementaryTypeName","src":"2170:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":51392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2218:42:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2210:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51390,"name":"address","nodeType":"ElementaryTypeName","src":"2210:7:81","typeDescriptions":{}}},"id":51393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2210:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51397,"nodeType":"VariableDeclaration","src":"2267:42:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2283:22:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51395,"name":"uint64","nodeType":"ElementaryTypeName","src":"2267:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":51396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2308:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":51400,"nodeType":"VariableDeclaration","src":"2315:54:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2332:27:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51398,"name":"uint256","nodeType":"ElementaryTypeName","src":"2315:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":51399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2362:7:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":51403,"nodeType":"VariableDeclaration","src":"2375:47:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2390:27:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":51401,"name":"uint8","nodeType":"ElementaryTypeName","src":"2375:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":51402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2420:2:81","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":51406,"nodeType":"VariableDeclaration","src":"2428:51:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"2444:25:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51404,"name":"uint64","nodeType":"ElementaryTypeName","src":"2428:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":51405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2472:7:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":51409,"nodeType":"VariableDeclaration","src":"2485:46:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"2501:25:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51407,"name":"uint64","nodeType":"ElementaryTypeName","src":"2485:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":51408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2529:2:81","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":51412,"nodeType":"VariableDeclaration","src":"2537:44:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"2553:16:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51410,"name":"string","nodeType":"ElementaryTypeName","src":"2537:6:81","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":51411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2572:9:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":51415,"nodeType":"VariableDeclaration","src":"2587:36:81","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"2602:7:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":51413,"name":"bytes","nodeType":"ElementaryTypeName","src":"2587:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":51414,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36435,"src":"2612:11:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":51418,"nodeType":"VariableDeclaration","src":"2629:48:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"2646:21:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51416,"name":"uint256","nodeType":"ElementaryTypeName","src":"2629:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":51417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2670:7:81","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":51421,"nodeType":"VariableDeclaration","src":"2683:49:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"2700:22:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51419,"name":"uint256","nodeType":"ElementaryTypeName","src":"2683:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":51420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2725:7:81","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":51427,"nodeType":"VariableDeclaration","src":"2738:52:81","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"2755:21:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51422,"name":"address","nodeType":"ElementaryTypeName","src":"2738:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":51425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2787:2:81","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":51424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2779:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51423,"name":"address","nodeType":"ElementaryTypeName","src":"2779:7:81","typeDescriptions":{}}},"id":51426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51433,"nodeType":"VariableDeclaration","src":"2796:54:81","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"2813:23:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51428,"name":"address","nodeType":"ElementaryTypeName","src":"2796:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":51431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2847:2:81","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":51430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2839:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51429,"name":"address","nodeType":"ElementaryTypeName","src":"2839:7:81","typeDescriptions":{}}},"id":51432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2839:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51438,"nodeType":"VariableDeclaration","src":"2856:57:81","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"2872:9:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51434,"name":"uint64","nodeType":"ElementaryTypeName","src":"2856:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":51437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":51435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2884:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":51436,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51409,"src":"2888:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2884:29:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":51441,"nodeType":"VariableDeclaration","src":"2919:50:81","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"2936:23:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51439,"name":"uint256","nodeType":"ElementaryTypeName","src":"2919:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":51440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2962:7:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":51444,"nodeType":"VariableDeclaration","src":"2975:53:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"2991:31:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":51442,"name":"uint16","nodeType":"ElementaryTypeName","src":"2975:6:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":51443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3025:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":51447,"nodeType":"VariableDeclaration","src":"3034:38:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3048:19:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":51445,"name":"int8","nodeType":"ElementaryTypeName","src":"3034:4:81","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":51446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3070:2:81","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":51450,"nodeType":"VariableDeclaration","src":"3078:37:81","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3094:15:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51448,"name":"uint64","nodeType":"ElementaryTypeName","src":"3078:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":51449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3112:3:81","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":51456,"nodeType":"VariableDeclaration","src":"3121:45:81","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3138:15:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51451,"name":"address","nodeType":"ElementaryTypeName","src":"3121:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":51454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3164:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":51453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3156:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51452,"name":"address","nodeType":"ElementaryTypeName","src":"3156:7:81","typeDescriptions":{}}},"id":51455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3156:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51462,"nodeType":"VariableDeclaration","src":"3172:57:81","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3189:24:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51457,"name":"address","nodeType":"ElementaryTypeName","src":"3172:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":51460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3224:4:81","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":51459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3216:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51458,"name":"address","nodeType":"ElementaryTypeName","src":"3216:7:81","typeDescriptions":{}}},"id":51461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3216:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":51468,"nodeType":"VariableDeclaration","src":"3235:50:81","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3252:19:81","scope":51469,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51463,"name":"address","nodeType":"ElementaryTypeName","src":"3235:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":51466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3282:2:81","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":51465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3274:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51464,"name":"address","nodeType":"ElementaryTypeName","src":"3274:7:81","typeDescriptions":{}}},"id":51467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3274:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51469],"name":"TestParams","nameLocation":"2103:10:81","scope":54009,"usedErrors":[]},{"id":51537,"nodeType":"ContractDefinition","src":"3290:820:81","nodes":[{"id":51476,"nodeType":"VariableDeclaration","src":"3338:37:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3347:28:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51474,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3338:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51475,"nodeType":"ArrayTypeName","src":"3338:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51479,"nodeType":"VariableDeclaration","src":"3381:43:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3390:34:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51477,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3381:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51478,"nodeType":"ArrayTypeName","src":"3381:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51482,"nodeType":"VariableDeclaration","src":"3430:32:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"3439:23:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51480,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3430:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51481,"nodeType":"ArrayTypeName","src":"3430:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51485,"nodeType":"VariableDeclaration","src":"3468:32:81","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"3477:23:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51483,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3468:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51484,"nodeType":"ArrayTypeName","src":"3468:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51488,"nodeType":"VariableDeclaration","src":"3507:37:81","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"3529:15:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":51487,"nodeType":"UserDefinedTypeName","pathNode":{"id":51486,"name":"SubnetRegistryDiamond","nameLocations":["3507:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"3507:21:81"},"referencedDeclaration":36415,"src":"3507:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":51491,"nodeType":"VariableDeclaration","src":"3550:32:81","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"3568:14:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":51490,"nodeType":"UserDefinedTypeName","pathNode":{"id":51489,"name":"DiamondLoupeFacet","nameLocations":["3550:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"3550:17:81"},"referencedDeclaration":36914,"src":"3550:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":51494,"nodeType":"VariableDeclaration","src":"3588:30:81","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"3604:14:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":51493,"nodeType":"UserDefinedTypeName","pathNode":{"id":51492,"name":"DiamondCutFacet","nameLocations":["3588:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"3588:15:81"},"referencedDeclaration":36477,"src":"3588:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":51497,"nodeType":"VariableDeclaration","src":"3624:39:81","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"3644:19:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":51496,"nodeType":"UserDefinedTypeName","pathNode":{"id":51495,"name":"RegisterSubnetFacet","nameLocations":["3624:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"3624:19:81"},"referencedDeclaration":51075,"src":"3624:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":51500,"nodeType":"VariableDeclaration","src":"3669:43:81","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"3687:25:81","scope":51537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"},"typeName":{"id":51499,"nodeType":"UserDefinedTypeName","pathNode":{"id":51498,"name":"SubnetGetterFacet","nameLocations":["3669:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"3669:17:81"},"referencedDeclaration":51313,"src":"3669:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":51536,"nodeType":"FunctionDefinition","src":"3719:389:81","nodes":[],"body":{"id":51535,"nodeType":"Block","src":"3733:375:81","nodes":[],"statements":[{"expression":{"id":51509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51503,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51476,"src":"3743:28:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51506,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3802:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"52656769737465725375626e65744661636574","id":51507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3806:21:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":51504,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"3774:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3784:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"3774:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3774:54:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"3743:85:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51510,"nodeType":"ExpressionStatement","src":"3743:85:81"},{"expression":{"id":51517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51511,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51479,"src":"3838:34:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51514,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3903:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744765747465724661636574","id":51515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3907:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":51512,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"3875:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3885:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"3875:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3875:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"3838:89:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51518,"nodeType":"ExpressionStatement","src":"3838:89:81"},{"expression":{"id":51525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51519,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51482,"src":"3937:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51522,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3991:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644375744661636574","id":51523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3995:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":51520,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"3963:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3973:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"3963:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3963:50:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"3937:76:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51526,"nodeType":"ExpressionStatement","src":"3937:76:81"},{"expression":{"id":51533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51527,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51485,"src":"4023:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51530,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4077:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644c6f7570654661636574","id":51531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4081:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":51528,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4049:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4059:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4049:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4023:78:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51534,"nodeType":"ExpressionStatement","src":"4023:78:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51501,"nodeType":"ParameterList","parameters":[],"src":"3730:2:81"},"returnParameters":{"id":51502,"nodeType":"ParameterList","parameters":[],"src":"3733:0:81"},"scope":51537,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":51470,"name":"Test","nameLocations":["3315:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3315:4:81"},"id":51471,"nodeType":"InheritanceSpecifier","src":"3315:4:81"},{"baseName":{"id":51472,"name":"TestParams","nameLocations":["3321:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"3321:10:81"},"id":51473,"nodeType":"InheritanceSpecifier","src":"3321:10:81"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51537,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3299:12:81","scope":54009,"usedErrors":[]},{"id":51670,"nodeType":"ContractDefinition","src":"4112:1676:81","nodes":[{"id":51544,"nodeType":"VariableDeclaration","src":"4164:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwRouterSelectors","nameLocation":"4173:17:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51542,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4164:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51543,"nodeType":"ArrayTypeName","src":"4164:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51547,"nodeType":"VariableDeclaration","src":"4196:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4205:18:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51545,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4196:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51546,"nodeType":"ArrayTypeName","src":"4196:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51550,"nodeType":"VariableDeclaration","src":"4229:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4238:17:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51548,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4229:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51549,"nodeType":"ArrayTypeName","src":"4229:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51553,"nodeType":"VariableDeclaration","src":"4261:29:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"4270:20:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51551,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4261:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51552,"nodeType":"ArrayTypeName","src":"4261:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51556,"nodeType":"VariableDeclaration","src":"4296:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"4305:17:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51554,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4296:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51555,"nodeType":"ArrayTypeName","src":"4296:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51559,"nodeType":"VariableDeclaration","src":"4328:25:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"4337:16:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51557,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4328:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51558,"nodeType":"ArrayTypeName","src":"4328:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51562,"nodeType":"VariableDeclaration","src":"4360:29:81","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"4375:14:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":51561,"nodeType":"UserDefinedTypeName","pathNode":{"id":51560,"name":"GatewayDiamond","nameLocations":["4360:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"4360:14:81"},"referencedDeclaration":35759,"src":"4360:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":51565,"nodeType":"VariableDeclaration","src":"4395:29:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"4415:9:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"},"typeName":{"id":51564,"nodeType":"UserDefinedTypeName","pathNode":{"id":51563,"name":"GatewayManagerFacet","nameLocations":["4395:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"4395:19:81"},"referencedDeclaration":38359,"src":"4395:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":51568,"nodeType":"VariableDeclaration","src":"4430:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"4449:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"},"typeName":{"id":51567,"nodeType":"UserDefinedTypeName","pathNode":{"id":51566,"name":"GatewayGetterFacet","nameLocations":["4430:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":37869,"src":"4430:18:81"},"referencedDeclaration":37869,"src":"4430:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":51571,"nodeType":"VariableDeclaration","src":"4463:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwRouter","nameLocation":"4482:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"},"typeName":{"id":51570,"nodeType":"UserDefinedTypeName","pathNode":{"id":51569,"name":"GatewayRouterFacet","nameLocations":["4463:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":39706,"src":"4463:18:81"},"referencedDeclaration":39706,"src":"4463:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"visibility":"internal"},{"id":51574,"nodeType":"VariableDeclaration","src":"4496:33:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"4518:11:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":51573,"nodeType":"UserDefinedTypeName","pathNode":{"id":51572,"name":"GatewayMessengerFacet","nameLocations":["4496:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":38674,"src":"4496:21:81"},"referencedDeclaration":38674,"src":"4496:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":51577,"nodeType":"VariableDeclaration","src":"4535:24:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"4551:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":51576,"nodeType":"UserDefinedTypeName","pathNode":{"id":51575,"name":"DiamondCutFacet","nameLocations":["4535:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"4535:15:81"},"referencedDeclaration":36477,"src":"4535:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":51580,"nodeType":"VariableDeclaration","src":"4565:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"4583:8:81","scope":51670,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":51579,"nodeType":"UserDefinedTypeName","pathNode":{"id":51578,"name":"DiamondLoupeFacet","nameLocations":["4565:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"4565:17:81"},"referencedDeclaration":36914,"src":"4565:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":51632,"nodeType":"FunctionDefinition","src":"4598:522:81","nodes":[],"body":{"id":51631,"nodeType":"Block","src":"4612:508:81","nodes":[],"statements":[{"expression":{"id":51589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51583,"name":"gwRouterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51544,"src":"4622:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51586,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4670:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"47617465776179526f757465724661636574","id":51587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4674:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_47c9e89e207c1506806062b80d03800461672df762dd01e4466ff0c24375e91c","typeString":"literal_string \"GatewayRouterFacet\""},"value":"GatewayRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_47c9e89e207c1506806062b80d03800461672df762dd01e4466ff0c24375e91c","typeString":"literal_string \"GatewayRouterFacet\""}],"expression":{"id":51584,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4642:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4652:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4642:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4642:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4622:73:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51590,"nodeType":"ExpressionStatement","src":"4622:73:81"},{"expression":{"id":51597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51591,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51550,"src":"4705:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51594,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4753:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"476174657761794765747465724661636574","id":51595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4757:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":51592,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4725:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4735:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4725:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4725:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4705:73:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51598,"nodeType":"ExpressionStatement","src":"4705:73:81"},{"expression":{"id":51605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51599,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51547,"src":"4788:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51602,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4837:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"476174657761794d616e616765724661636574","id":51603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4841:21:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":51600,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4809:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4819:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4809:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4809:54:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4788:75:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51606,"nodeType":"ExpressionStatement","src":"4788:75:81"},{"expression":{"id":51613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51607,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"4873:20:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51610,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4924:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"476174657761794d657373656e6765724661636574","id":51611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4928:23:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":51608,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4896:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4906:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4896:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4896:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4873:79:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51614,"nodeType":"ExpressionStatement","src":"4873:79:81"},{"expression":{"id":51621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51615,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51556,"src":"4962:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51618,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5010:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644375744661636574","id":51619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5014:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":51616,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"4982:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4992:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"4982:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4982:50:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4962:70:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51622,"nodeType":"ExpressionStatement","src":"4962:70:81"},{"expression":{"id":51629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51623,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51559,"src":"5042:16:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51626,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5089:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644c6f7570654661636574","id":51627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5093:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":51624,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"5061:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5071:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"5061:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5061:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5042:71:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51630,"nodeType":"ExpressionStatement","src":"5042:71:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51581,"nodeType":"ParameterList","parameters":[],"src":"4609:2:81"},"returnParameters":{"id":51582,"nodeType":"ParameterList","parameters":[],"src":"4612:0:81"},"scope":51670,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51669,"nodeType":"FunctionDefinition","src":"5126:660:81","nodes":[],"body":{"id":51668,"nodeType":"Block","src":"5230:556:81","nodes":[],"statements":[{"assignments":[51642],"declarations":[{"constant":false,"id":51642,"mutability":"mutable","name":"params","nameLocation":"5280:6:81","nodeType":"VariableDeclaration","scope":51668,"src":"5240:46:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51641,"nodeType":"UserDefinedTypeName","pathNode":{"id":51640,"name":"GatewayDiamond.ConstructorParams","nameLocations":["5240:14:81","5255:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"5240:32:81"},"referencedDeclaration":35456,"src":"5240:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51665,"initialValue":{"arguments":[{"arguments":[{"id":51646,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51450,"src":"5365:15:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":51650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5403:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5389:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":51647,"name":"address","nodeType":"ElementaryTypeName","src":"5393:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51648,"nodeType":"ArrayTypeName","src":"5393:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":51651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":51645,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"5349:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":51652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5359:4:81","5382:5:81"],"names":["root","route"],"nodeType":"FunctionCall","src":"5349:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":51653,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51409,"src":"5442:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51654,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"5489:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":51655,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"5539:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51656,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51403,"src":"5598:27:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":51661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5674:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5658:15:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":51658,"nodeType":"UserDefinedTypeName","pathNode":{"id":51657,"name":"Validator","nameLocations":["5662:9:81"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"5662:9:81"},"referencedDeclaration":48694,"src":"5662:9:81","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"id":51659,"nodeType":"ArrayTypeName","src":"5662:11:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":51662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5658:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":51663,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51444,"src":"5713:31:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":51643,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35759,"src":"5289:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$35759_$","typeString":"type(contract GatewayDiamond)"}},"id":51644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5304:17:81","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35456,"src":"5289:32:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35456_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":51664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5336:11:81","5421:19:81","5481:6:81","5524:13:81","5578:18:81","5639:17:81","5690:21:81"],"names":["networkName","bottomUpCheckPeriod","msgFee","minCollateral","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"5289:466:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"5240:515:81"},{"expression":{"id":51666,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51642,"src":"5773:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":51637,"id":51667,"nodeType":"Return","src":"5766:13:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"5135:20:81","parameters":{"id":51633,"nodeType":"ParameterList","parameters":[],"src":"5155:2:81"},"returnParameters":{"id":51637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51669,"src":"5189:39:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51635,"nodeType":"UserDefinedTypeName","pathNode":{"id":51634,"name":"GatewayDiamond.ConstructorParams","nameLocations":["5189:14:81","5204:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"5189:32:81"},"referencedDeclaration":35456,"src":"5189:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"5188:41:81"},"scope":51670,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":51538,"name":"Test","nameLocations":["4141:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4141:4:81"},"id":51539,"nodeType":"InheritanceSpecifier","src":"4141:4:81"},{"baseName":{"id":51540,"name":"TestParams","nameLocations":["4147:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"4147:10:81"},"id":51541,"nodeType":"InheritanceSpecifier","src":"4147:10:81"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51670,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4121:16:81","scope":54009,"usedErrors":[]},{"id":51792,"nodeType":"ContractDefinition","src":"5790:1815:81","nodes":[{"id":51677,"nodeType":"VariableDeclaration","src":"5841:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"5850:17:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51675,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5841:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51676,"nodeType":"ArrayTypeName","src":"5841:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51680,"nodeType":"VariableDeclaration","src":"5873:27:81","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"5882:18:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51678,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5873:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51679,"nodeType":"ArrayTypeName","src":"5873:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51683,"nodeType":"VariableDeclaration","src":"5906:33:81","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"5915:24:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51681,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5906:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51682,"nodeType":"ArrayTypeName","src":"5906:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51686,"nodeType":"VariableDeclaration","src":"5945:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"5954:17:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51684,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5945:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51685,"nodeType":"ArrayTypeName","src":"5945:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51689,"nodeType":"VariableDeclaration","src":"5977:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"5986:17:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51687,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5977:6:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51688,"nodeType":"ArrayTypeName","src":"5977:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":51692,"nodeType":"VariableDeclaration","src":"6010:28:81","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6029:9:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":51691,"nodeType":"UserDefinedTypeName","pathNode":{"id":51690,"name":"SubnetActorDiamond","nameLocations":["6010:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"6010:18:81"},"referencedDeclaration":36177,"src":"6010:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":51695,"nodeType":"VariableDeclaration","src":"6044:33:81","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"6068:9:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":51694,"nodeType":"UserDefinedTypeName","pathNode":{"id":51693,"name":"SubnetActorManagerFacet","nameLocations":["6044:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"6044:23:81"},"referencedDeclaration":50947,"src":"6044:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":51698,"nodeType":"VariableDeclaration","src":"6083:43:81","nodes":[],"constant":false,"mutability":"mutable","name":"saMockedManager","nameLocation":"6111:15:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":51697,"nodeType":"UserDefinedTypeName","pathNode":{"id":51696,"name":"SubnetActorManagerFacetMock","nameLocations":["6083:27:81"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"6083:27:81"},"referencedDeclaration":56069,"src":"6083:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"},{"id":51701,"nodeType":"VariableDeclaration","src":"6132:31:81","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"6155:8:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":51700,"nodeType":"UserDefinedTypeName","pathNode":{"id":51699,"name":"SubnetActorGetterFacet","nameLocations":["6132:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"6132:22:81"},"referencedDeclaration":49325,"src":"6132:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":51704,"nodeType":"VariableDeclaration","src":"6169:24:81","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"6185:8:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":51703,"nodeType":"UserDefinedTypeName","pathNode":{"id":51702,"name":"DiamondCutFacet","nameLocations":["6169:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"6169:15:81"},"referencedDeclaration":36477,"src":"6169:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":51707,"nodeType":"VariableDeclaration","src":"6199:26:81","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"6217:8:81","scope":51792,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":51706,"nodeType":"UserDefinedTypeName","pathNode":{"id":51705,"name":"DiamondLoupeFacet","nameLocations":["6199:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"6199:17:81"},"referencedDeclaration":36914,"src":"6199:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":51751,"nodeType":"FunctionDefinition","src":"6232:458:81","nodes":[],"body":{"id":51750,"nodeType":"Block","src":"6246:444:81","nodes":[],"statements":[{"expression":{"id":51716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51710,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"6256:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51713,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6304:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744163746f724765747465724661636574","id":51714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6308:24:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":51711,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6276:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6286:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6276:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6276:57:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6256:77:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51717,"nodeType":"ExpressionStatement","src":"6256:77:81"},{"expression":{"id":51724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51718,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"6343:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51721,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6392:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":51722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6396:25:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":51719,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6364:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6374:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6364:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6364:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6343:79:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51725,"nodeType":"ExpressionStatement","src":"6343:79:81"},{"expression":{"id":51732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51726,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51683,"src":"6432:24:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51729,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6487:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":51730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6491:29:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":51727,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6459:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6469:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6459:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6459:62:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6432:89:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51733,"nodeType":"ExpressionStatement","src":"6432:89:81"},{"expression":{"id":51740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51734,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"6531:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51737,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6579:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644375744661636574","id":51738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6583:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":51735,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6551:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6561:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6551:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6551:50:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6531:70:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51741,"nodeType":"ExpressionStatement","src":"6531:70:81"},{"expression":{"id":51748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51742,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51689,"src":"6611:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51745,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"6659:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},{"hexValue":"4469616d6f6e644c6f7570654661636574","id":51746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6663:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":51743,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"6631:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":51744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6641:17:81","memberName":"generateSelectors","nodeType":"MemberAccess","referencedDeclaration":54476,"src":"6631:27:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Vm_$14222_$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (contract Vm,string memory) returns (bytes4[] memory)"}},"id":51747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6631:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6611:72:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51749,"nodeType":"ExpressionStatement","src":"6611:72:81"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51708,"nodeType":"ParameterList","parameters":[],"src":"6243:2:81"},"returnParameters":{"id":51709,"nodeType":"ParameterList","parameters":[],"src":"6246:0:81"},"scope":51792,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51791,"nodeType":"FunctionDefinition","src":"6696:907:81","nodes":[],"body":{"id":51790,"nodeType":"Block","src":"6843:760:81","nodes":[],"statements":[{"assignments":[51763],"declarations":[{"constant":false,"id":51763,"mutability":"mutable","name":"params","nameLocation":"6897:6:81","nodeType":"VariableDeclaration","scope":51790,"src":"6853:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":51762,"nodeType":"UserDefinedTypeName","pathNode":{"id":51761,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["6853:18:81","6872:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"6853:36:81"},"referencedDeclaration":35829,"src":"6853:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51787,"initialValue":{"arguments":[{"arguments":[{"id":51767,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51450,"src":"6983:15:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":51771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7021:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7007:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":51768,"name":"address","nodeType":"ElementaryTypeName","src":"7011:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51769,"nodeType":"ArrayTypeName","src":"7011:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":51772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7007:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":51766,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"6967:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":51773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6977:4:81","7000:5:81"],"names":["root","route"],"nodeType":"FunctionCall","src":"6967:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":51774,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51753,"src":"7055:2:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51775,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"7082:13:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$36918_$","typeString":"type(enum ConsensusType)"}},"id":51776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7096:10:81","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":36917,"src":"7082:24:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":51777,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"7145:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51778,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51397,"src":"7199:22:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51779,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51409,"src":"7256:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":51780,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51403,"src":"7315:27:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":51781,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51444,"src":"7379:31:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":51782,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51447,"src":"7436:19:81","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":51783,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"7485:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":51784,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"7536:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":51785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7551:10:81","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":48645,"src":"7536:25:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}],"expression":{"id":51764,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"6906:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"type(contract SubnetActorDiamond)"}},"id":51765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6925:17:81","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35829,"src":"6906:36:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35829_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":51786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6957:8:81","7039:14:81","7071:9:81","7120:23:81","7184:13:81","7235:19:81","7295:18:81","7356:21:81","7424:10:81","7469:14:81","7520:14:81"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode"],"nodeType":"FunctionCall","src":"6906:666:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6853:719:81"},{"expression":{"id":51788,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51763,"src":"7590:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":51758,"id":51789,"nodeType":"Return","src":"7583:13:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"6705:35:81","parameters":{"id":51754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51753,"mutability":"mutable","name":"gw","nameLocation":"6758:2:81","nodeType":"VariableDeclaration","scope":51791,"src":"6750:10:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51752,"name":"address","nodeType":"ElementaryTypeName","src":"6750:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6740:26:81"},"returnParameters":{"id":51758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51757,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51791,"src":"6798:43:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":51756,"nodeType":"UserDefinedTypeName","pathNode":{"id":51755,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["6798:18:81","6817:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"6798:36:81"},"referencedDeclaration":35829,"src":"6798:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6797:45:81"},"scope":51792,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":51671,"name":"Test","nameLocations":["5818:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"5818:4:81"},"id":51672,"nodeType":"InheritanceSpecifier","src":"5818:4:81"},{"baseName":{"id":51673,"name":"TestParams","nameLocations":["5824:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"5824:10:81"},"id":51674,"nodeType":"InheritanceSpecifier","src":"5824:10:81"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51792,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"5799:15:81","scope":54009,"usedErrors":[]},{"id":54008,"nodeType":"ContractDefinition","src":"7607:21719:81","nodes":[{"id":51806,"nodeType":"UsingForDirective","src":"7711:34:81","nodes":[],"global":false,"libraryName":{"id":51803,"name":"SubnetIDHelper","nameLocations":["7717:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":46876,"src":"7717:14:81"},"typeName":{"id":51805,"nodeType":"UserDefinedTypeName","pathNode":{"id":51804,"name":"SubnetID","nameLocations":["7736:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"7736:8:81"},"referencedDeclaration":48557,"src":"7736:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}}},{"id":51810,"nodeType":"UsingForDirective","src":"7750:34:81","nodes":[],"global":false,"libraryName":{"id":51807,"name":"CrossMsgHelper","nameLocations":["7756:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":40328,"src":"7756:14:81"},"typeName":{"id":51809,"nodeType":"UserDefinedTypeName","pathNode":{"id":51808,"name":"CrossMsg","nameLocations":["7775:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"7775:8:81"},"referencedDeclaration":48452,"src":"7775:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}}},{"id":51814,"nodeType":"UsingForDirective","src":"7789:40:81","nodes":[],"global":false,"libraryName":{"id":51811,"name":"StorableMsgHelper","nameLocations":["7795:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":46265,"src":"7795:17:81"},"typeName":{"id":51813,"nodeType":"UserDefinedTypeName","pathNode":{"id":51812,"name":"StorableMsg","nameLocations":["7817:11:81"],"nodeType":"IdentifierPath","referencedDeclaration":48469,"src":"7817:11:81"},"referencedDeclaration":48469,"src":"7817:11:81","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_storage_ptr","typeString":"struct StorableMsg"}}},{"id":51818,"nodeType":"UsingForDirective","src":"7834:38:81","nodes":[],"global":false,"libraryName":{"id":51815,"name":"FvmAddressHelper","nameLocations":["7840:16:81"],"nodeType":"IdentifierPath","referencedDeclaration":40509,"src":"7840:16:81"},"typeName":{"id":51817,"nodeType":"UserDefinedTypeName","pathNode":{"id":51816,"name":"FvmAddress","nameLocations":["7861:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"7861:10:81"},"referencedDeclaration":48476,"src":"7861:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}}},{"id":51822,"nodeType":"EventDefinition","src":"7878:67:81","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"7884:21:81","parameters":{"id":51821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51820,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"7922:21:81","nodeType":"VariableDeclaration","scope":51822,"src":"7906:37:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51819,"name":"address","nodeType":"ElementaryTypeName","src":"7906:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7905:39:81"}},{"id":51826,"nodeType":"FunctionDefinition","src":"7951:16:81","nodes":[],"body":{"id":51825,"nodeType":"Block","src":"7965:2:81","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51823,"nodeType":"ParameterList","parameters":[],"src":"7962:2:81"},"returnParameters":{"id":51824,"nodeType":"ParameterList","parameters":[],"src":"7965:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51974,"nodeType":"FunctionDefinition","src":"7973:1282:81","nodes":[],"body":{"id":51973,"nodeType":"Block","src":"8005:1250:81","nodes":[],"statements":[{"assignments":[51833],"declarations":[{"constant":false,"id":51833,"mutability":"mutable","name":"path","nameLocation":"8032:4:81","nodeType":"VariableDeclaration","scope":51973,"src":"8015:21:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":51831,"name":"address","nodeType":"ElementaryTypeName","src":"8015:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51832,"nodeType":"ArrayTypeName","src":"8015:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":51839,"initialValue":{"arguments":[{"hexValue":"31","id":51837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8053:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":51836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8039:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":51834,"name":"address","nodeType":"ElementaryTypeName","src":"8043:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51835,"nodeType":"ArrayTypeName","src":"8043:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":51838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8039:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8015:40:81"},{"expression":{"id":51844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51840,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51833,"src":"8065:4:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":51842,"indexExpression":{"hexValue":"30","id":51841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8070:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8065:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51843,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51456,"src":"8075:15:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8065:25:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51845,"nodeType":"ExpressionStatement","src":"8065:25:81"},{"assignments":[51850],"declarations":[{"constant":false,"id":51850,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"8183:19:81","nodeType":"VariableDeclaration","scope":51973,"src":"8143:59:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51849,"nodeType":"UserDefinedTypeName","pathNode":{"id":51848,"name":"GatewayDiamond.ConstructorParams","nameLocations":["8143:14:81","8158:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"8143:32:81"},"referencedDeclaration":35456,"src":"8143:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51853,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51851,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51669,"src":"8205:20:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35456_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":51852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8205:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8143:84:81"},{"expression":{"id":51858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51854,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8237:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51856,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51850,"src":"8275:19:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":51855,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52158,"src":"8254:20:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35456_memory_ptr_$returns$_t_contract$_GatewayDiamond_$35759_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":51857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8254:41:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"src":"8237:58:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"id":51859,"nodeType":"ExpressionStatement","src":"8237:58:81"},{"expression":{"id":51867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51860,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"8305:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51864,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8343:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8335:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51862,"name":"address","nodeType":"ElementaryTypeName","src":"8335:7:81","typeDescriptions":{}}},"id":51865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8335:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51861,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"8316:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$37869_$","typeString":"type(contract GatewayGetterFacet)"}},"id":51866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8316:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"src":"8305:54:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":51868,"nodeType":"ExpressionStatement","src":"8305:54:81"},{"expression":{"id":51876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51869,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"8369:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51873,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8409:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8401:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51871,"name":"address","nodeType":"ElementaryTypeName","src":"8401:7:81","typeDescriptions":{}}},"id":51874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8401:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51870,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"8381:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"type(contract GatewayManagerFacet)"}},"id":51875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8381:44:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"src":"8369:56:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":51877,"nodeType":"ExpressionStatement","src":"8369:56:81"},{"expression":{"id":51885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51878,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"8435:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51882,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8473:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8465:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51880,"name":"address","nodeType":"ElementaryTypeName","src":"8465:7:81","typeDescriptions":{}}},"id":51883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8465:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51879,"name":"GatewayRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39706,"src":"8446:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayRouterFacet_$39706_$","typeString":"type(contract GatewayRouterFacet)"}},"id":51884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8446:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"src":"8435:54:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":51886,"nodeType":"ExpressionStatement","src":"8435:54:81"},{"expression":{"id":51894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51887,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51574,"src":"8499:11:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51891,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8543:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8535:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51889,"name":"address","nodeType":"ElementaryTypeName","src":"8535:7:81","typeDescriptions":{}}},"id":51892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8535:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51888,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38674,"src":"8513:21:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$38674_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":51893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8513:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"src":"8499:60:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"id":51895,"nodeType":"ExpressionStatement","src":"8499:60:81"},{"expression":{"id":51903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51896,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51580,"src":"8569:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51900,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8606:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8598:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51898,"name":"address","nodeType":"ElementaryTypeName","src":"8598:7:81","typeDescriptions":{}}},"id":51901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8598:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51897,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"8580:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":51902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8580:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"8569:53:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":51904,"nodeType":"ExpressionStatement","src":"8569:53:81"},{"expression":{"id":51912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51905,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51577,"src":"8632:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51909,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8667:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8659:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51907,"name":"address","nodeType":"ElementaryTypeName","src":"8659:7:81","typeDescriptions":{}}},"id":51910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8659:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51906,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"8643:15:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36477_$","typeString":"type(contract DiamondCutFacet)"}},"id":51911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8643:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"8632:51:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":51913,"nodeType":"ExpressionStatement","src":"8632:51:81"},{"assignments":[51918],"declarations":[{"constant":false,"id":51918,"mutability":"mutable","name":"saConstructorParams","nameLocation":"8792:19:81","nodeType":"VariableDeclaration","scope":51973,"src":"8748:63:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":51917,"nodeType":"UserDefinedTypeName","pathNode":{"id":51916,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["8748:18:81","8767:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"8748:36:81"},"referencedDeclaration":35829,"src":"8748:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":51925,"initialValue":{"arguments":[{"arguments":[{"id":51922,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"8871:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":51921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8863:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51920,"name":"address","nodeType":"ElementaryTypeName","src":"8863:7:81","typeDescriptions":{}}},"id":51923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8863:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51919,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51791,"src":"8814:35:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$35829_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":51924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8814:82:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"8748:148:81"},{"expression":{"id":51930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51926,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"8907:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51928,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51918,"src":"8937:19:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":51927,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[52359,52388,52589],"referencedDeclaration":52359,"src":"8919:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":51929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8919:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"src":"8907:50:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"id":51931,"nodeType":"ExpressionStatement","src":"8907:50:81"},{"expression":{"id":51939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51932,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"8967:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51936,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9011:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9003:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51934,"name":"address","nodeType":"ElementaryTypeName","src":"9003:7:81","typeDescriptions":{}}},"id":51937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9003:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51933,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"8979:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":51938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8979:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"src":"8967:55:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":51940,"nodeType":"ExpressionStatement","src":"8967:55:81"},{"expression":{"id":51948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51941,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"9032:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51945,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9074:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9066:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51943,"name":"address","nodeType":"ElementaryTypeName","src":"9066:7:81","typeDescriptions":{}}},"id":51946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9066:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51942,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"9043:22:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":51947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9043:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"9032:53:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":51949,"nodeType":"ExpressionStatement","src":"9032:53:81"},{"expression":{"id":51957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51950,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"9095:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51954,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9132:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9124:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51952,"name":"address","nodeType":"ElementaryTypeName","src":"9124:7:81","typeDescriptions":{}}},"id":51955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9124:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51951,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"9106:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":51956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9106:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"9095:48:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":51958,"nodeType":"ExpressionStatement","src":"9095:48:81"},{"expression":{"id":51966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51959,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"9153:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51963,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"9188:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9180:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51961,"name":"address","nodeType":"ElementaryTypeName","src":"9180:7:81","typeDescriptions":{}}},"id":51964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9180:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51960,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"9164:15:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36477_$","typeString":"type(contract DiamondCutFacet)"}},"id":51965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9164:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"9153:46:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":51967,"nodeType":"ExpressionStatement","src":"9153:46:81"},{"expression":{"arguments":[{"id":51969,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51468,"src":"9223:19:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9244:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":51968,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[53132,53215],"referencedDeclaration":53215,"src":"9210:12:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9210:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51972,"nodeType":"ExpressionStatement","src":"9210:38:81"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"7982:5:81","parameters":{"id":51827,"nodeType":"ParameterList","parameters":[],"src":"7987:2:81"},"returnParameters":{"id":51828,"nodeType":"ParameterList","parameters":[],"src":"8005:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":52158,"nodeType":"FunctionDefinition","src":"9261:2119:81","nodes":[],"body":{"id":52157,"nodeType":"Block","src":"9371:2009:81","nodes":[],"statements":[{"assignments":[51985],"declarations":[{"constant":false,"id":51985,"mutability":"mutable","name":"router","nameLocation":"9400:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9381:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"},"typeName":{"id":51984,"nodeType":"UserDefinedTypeName","pathNode":{"id":51983,"name":"GatewayRouterFacet","nameLocations":["9381:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":39706,"src":"9381:18:81"},"referencedDeclaration":39706,"src":"9381:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"visibility":"internal"}],"id":51990,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9409:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayRouterFacet_$39706_$","typeString":"function () returns (contract GatewayRouterFacet)"},"typeName":{"id":51987,"nodeType":"UserDefinedTypeName","pathNode":{"id":51986,"name":"GatewayRouterFacet","nameLocations":["9413:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":39706,"src":"9413:18:81"},"referencedDeclaration":39706,"src":"9413:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}}},"id":51989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9409:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"9381:52:81"},{"assignments":[51993],"declarations":[{"constant":false,"id":51993,"mutability":"mutable","name":"manager","nameLocation":"9463:7:81","nodeType":"VariableDeclaration","scope":52157,"src":"9443:27:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"},"typeName":{"id":51992,"nodeType":"UserDefinedTypeName","pathNode":{"id":51991,"name":"GatewayManagerFacet","nameLocations":["9443:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"9443:19:81"},"referencedDeclaration":38359,"src":"9443:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":51998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9473:23:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":51995,"nodeType":"UserDefinedTypeName","pathNode":{"id":51994,"name":"GatewayManagerFacet","nameLocations":["9477:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"9477:19:81"},"referencedDeclaration":38359,"src":"9477:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}}},"id":51997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9473:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"9443:55:81"},{"assignments":[52001],"declarations":[{"constant":false,"id":52001,"mutability":"mutable","name":"getter","nameLocation":"9527:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9508:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52000,"nodeType":"UserDefinedTypeName","pathNode":{"id":51999,"name":"GatewayGetterFacet","nameLocations":["9508:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":37869,"src":"9508:18:81"},"referencedDeclaration":37869,"src":"9508:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":52006,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9536:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$37869_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":52003,"nodeType":"UserDefinedTypeName","pathNode":{"id":52002,"name":"GatewayGetterFacet","nameLocations":["9540:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":37869,"src":"9540:18:81"},"referencedDeclaration":37869,"src":"9540:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}}},"id":52005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9536:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"9508:52:81"},{"assignments":[52009],"declarations":[{"constant":false,"id":52009,"mutability":"mutable","name":"messenger","nameLocation":"9592:9:81","nodeType":"VariableDeclaration","scope":52157,"src":"9570:31:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52008,"nodeType":"UserDefinedTypeName","pathNode":{"id":52007,"name":"GatewayMessengerFacet","nameLocations":["9570:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":38674,"src":"9570:21:81"},"referencedDeclaration":38674,"src":"9570:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":52014,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9604:25:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$38674_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":52011,"nodeType":"UserDefinedTypeName","pathNode":{"id":52010,"name":"GatewayMessengerFacet","nameLocations":["9608:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":38674,"src":"9608:21:81"},"referencedDeclaration":38674,"src":"9608:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}}},"id":52013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9604:27:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"9570:61:81"},{"assignments":[52017],"declarations":[{"constant":false,"id":52017,"mutability":"mutable","name":"cutter","nameLocation":"9657:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9641:22:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":52016,"nodeType":"UserDefinedTypeName","pathNode":{"id":52015,"name":"DiamondCutFacet","nameLocations":["9641:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"9641:15:81"},"referencedDeclaration":36477,"src":"9641:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":52022,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9666:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52019,"nodeType":"UserDefinedTypeName","pathNode":{"id":52018,"name":"DiamondCutFacet","nameLocations":["9670:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"9670:15:81"},"referencedDeclaration":36477,"src":"9670:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9666:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"9641:46:81"},{"assignments":[52025],"declarations":[{"constant":false,"id":52025,"mutability":"mutable","name":"louper","nameLocation":"9715:6:81","nodeType":"VariableDeclaration","scope":52157,"src":"9697:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52024,"nodeType":"UserDefinedTypeName","pathNode":{"id":52023,"name":"DiamondLoupeFacet","nameLocations":["9697:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"9697:17:81"},"referencedDeclaration":36914,"src":"9697:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":52030,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"9724:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52027,"nodeType":"UserDefinedTypeName","pathNode":{"id":52026,"name":"DiamondLoupeFacet","nameLocations":["9728:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"9728:17:81"},"referencedDeclaration":36914,"src":"9728:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9724:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"9697:50:81"},{"assignments":[52036],"declarations":[{"constant":false,"id":52036,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"9785:12:81","nodeType":"VariableDeclaration","scope":52157,"src":"9758:39:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52034,"nodeType":"UserDefinedTypeName","pathNode":{"id":52033,"name":"IDiamond.FacetCut","nameLocations":["9758:8:81","9767:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"9758:17:81"},"referencedDeclaration":39721,"src":"9758:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52035,"nodeType":"ArrayTypeName","src":"9758:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52043,"initialValue":{"arguments":[{"hexValue":"36","id":52041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9824:1:81","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"}],"id":52040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9800:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52038,"nodeType":"UserDefinedTypeName","pathNode":{"id":52037,"name":"IDiamond.FacetCut","nameLocations":["9804:8:81","9813:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"9804:17:81"},"referencedDeclaration":39721,"src":"9804:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52039,"nodeType":"ArrayTypeName","src":"9804:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9800:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9758:68:81"},{"expression":{"id":52059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52044,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"9837:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52046,"indexExpression":{"hexValue":"30","id":52045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9850:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9837:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52051,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51985,"src":"9927:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}],"id":52050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9919:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52049,"name":"address","nodeType":"ElementaryTypeName","src":"9919:7:81","typeDescriptions":{}}},"id":52052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52053,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"9960:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9969:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"9960:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9984:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"9960:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52056,"name":"gwRouterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51544,"src":"10024:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52047,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"9869:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9878:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"9869:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9905:12:81","9952:6:81","10005:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"9869:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52058,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9855:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"9837:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52060,"nodeType":"ExpressionStatement","src":"9837:229:81"},{"expression":{"id":52076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52061,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10077:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52063,"indexExpression":{"hexValue":"31","id":52062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10090:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10077:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52068,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51993,"src":"10167:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}],"id":52067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10159:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52066,"name":"address","nodeType":"ElementaryTypeName","src":"10159:7:81","typeDescriptions":{}}},"id":52069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10159:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52070,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10201:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10210:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10201:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10225:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10201:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52073,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51547,"src":"10265:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52064,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10109:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10118:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10109:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10145:12:81","10193:6:81","10246:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10109:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52075,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10095:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10077:231:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52077,"nodeType":"ExpressionStatement","src":"10077:231:81"},{"expression":{"id":52093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52078,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10319:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52080,"indexExpression":{"hexValue":"32","id":52079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10332:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10319:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52085,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52001,"src":"10409:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}],"id":52084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10401:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52083,"name":"address","nodeType":"ElementaryTypeName","src":"10401:7:81","typeDescriptions":{}}},"id":52086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10401:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52087,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10442:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10451:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10442:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10466:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10442:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52090,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51550,"src":"10506:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52081,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10351:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10360:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10351:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10387:12:81","10434:6:81","10487:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10351:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10337:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10319:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52094,"nodeType":"ExpressionStatement","src":"10319:229:81"},{"expression":{"id":52110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52095,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10559:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52097,"indexExpression":{"hexValue":"33","id":52096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10572:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10559:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52102,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52009,"src":"10649:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$38674","typeString":"contract GatewayMessengerFacet"}],"id":52101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10641:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52100,"name":"address","nodeType":"ElementaryTypeName","src":"10641:7:81","typeDescriptions":{}}},"id":52103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10641:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52104,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10685:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10694:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10685:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10709:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10685:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52107,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"10749:20:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52098,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10591:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10600:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10591:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10627:12:81","10677:6:81","10730:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10591:193:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52109,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10577:217:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10559:235:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52111,"nodeType":"ExpressionStatement","src":"10559:235:81"},{"expression":{"id":52127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52112,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"10805:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52114,"indexExpression":{"hexValue":"34","id":52113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10818:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10805:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52119,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52025,"src":"10895:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10887:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52117,"name":"address","nodeType":"ElementaryTypeName","src":"10887:7:81","typeDescriptions":{}}},"id":52120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10887:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52121,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10928:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10937:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"10928:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10952:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"10928:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52124,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51559,"src":"10992:16:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52115,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"10837:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10846:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"10837:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10873:12:81","10920:6:81","10973:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"10837:186:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52126,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10823:210:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"10805:228:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52128,"nodeType":"ExpressionStatement","src":"10805:228:81"},{"expression":{"id":52144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52129,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"11044:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52131,"indexExpression":{"hexValue":"35","id":52130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11057:1:81","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11044:15:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52136,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52017,"src":"11134:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11126:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52134,"name":"address","nodeType":"ElementaryTypeName","src":"11126:7:81","typeDescriptions":{}}},"id":52137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11126:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52138,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11167:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11176:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"11167:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11191:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"11167:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52141,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51556,"src":"11231:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52132,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11076:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11085:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"11076:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11112:12:81","11159:6:81","11212:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11076:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52143,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11062:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11044:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52145,"nodeType":"ExpressionStatement","src":"11044:229:81"},{"expression":{"id":52153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52146,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"11284:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52150,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52036,"src":"11320:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52151,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51977,"src":"11334:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":52149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11301:18:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35456_memory_ptr_$returns$_t_contract$_GatewayDiamond_$35759_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":52148,"nodeType":"UserDefinedTypeName","pathNode":{"id":52147,"name":"GatewayDiamond","nameLocations":["11305:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"11305:14:81"},"referencedDeclaration":35759,"src":"11305:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}},"id":52152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11301:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"src":"11284:57:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"id":52154,"nodeType":"ExpressionStatement","src":"11284:57:81"},{"expression":{"id":52155,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"11359:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"functionReturnParameters":51982,"id":52156,"nodeType":"Return","src":"11352:21:81"}]},"functionSelector":"cfebf300","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"9270:20:81","parameters":{"id":51978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51977,"mutability":"mutable","name":"params","nameLocation":"9331:6:81","nodeType":"VariableDeclaration","scope":52158,"src":"9291:46:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":51976,"nodeType":"UserDefinedTypeName","pathNode":{"id":51975,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9291:14:81","9306:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35456,"src":"9291:32:81"},"referencedDeclaration":35456,"src":"9291:32:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35456_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"9290:48:81"},"returnParameters":{"id":51982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52158,"src":"9355:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":51980,"nodeType":"UserDefinedTypeName","pathNode":{"id":51979,"name":"GatewayDiamond","nameLocations":["9355:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"9355:14:81"},"referencedDeclaration":35759,"src":"9355:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"9354:16:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52224,"nodeType":"FunctionDefinition","src":"11386:854:81","nodes":[],"body":{"id":52223,"nodeType":"Block","src":"11594:646:81","nodes":[],"statements":[{"assignments":[52176],"declarations":[{"constant":false,"id":52176,"mutability":"mutable","name":"diamondCut","nameLocation":"11631:10:81","nodeType":"VariableDeclaration","scope":52223,"src":"11604:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52174,"nodeType":"UserDefinedTypeName","pathNode":{"id":52173,"name":"IDiamond.FacetCut","nameLocations":["11604:8:81","11613:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"11604:17:81"},"referencedDeclaration":39721,"src":"11604:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52175,"nodeType":"ArrayTypeName","src":"11604:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52183,"initialValue":{"arguments":[{"hexValue":"32","id":52181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11668:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":52180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11644:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52178,"nodeType":"UserDefinedTypeName","pathNode":{"id":52177,"name":"IDiamond.FacetCut","nameLocations":["11648:8:81","11657:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"11648:17:81"},"referencedDeclaration":39721,"src":"11648:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52179,"nodeType":"ArrayTypeName","src":"11648:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11644:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11604:66:81"},{"expression":{"id":52196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52184,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"11681:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52186,"indexExpression":{"hexValue":"30","id":52185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11692:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11681:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":52189,"name":"getterFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52163,"src":"11761:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52190,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11799:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11808:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"11799:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11823:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"11799:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52193,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"11863:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52187,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11711:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11720:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"11711:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11747:12:81","11791:6:81","11844:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11711:184:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52195,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11697:208:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11681:224:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52197,"nodeType":"ExpressionStatement","src":"11681:224:81"},{"expression":{"id":52210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52198,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"11916:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52200,"indexExpression":{"hexValue":"31","id":52199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11927:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11916:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":52203,"name":"managerFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52165,"src":"11996:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52204,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12035:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12044:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"12035:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12059:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"12035:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52207,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"12099:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52201,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"11946:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11955:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"11946:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11982:12:81","12027:6:81","12080:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11946:186:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52209,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11932:210:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11916:226:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52211,"nodeType":"ExpressionStatement","src":"11916:226:81"},{"expression":{"id":52219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52212,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"12153:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52216,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"12188:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52217,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52161,"src":"12200:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12165:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52214,"nodeType":"UserDefinedTypeName","pathNode":{"id":52213,"name":"SubnetActorDiamond","nameLocations":["12169:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"12169:18:81"},"referencedDeclaration":36177,"src":"12169:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12165:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"src":"12153:54:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"id":52220,"nodeType":"ExpressionStatement","src":"12153:54:81"},{"expression":{"id":52221,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"12224:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":52170,"id":52222,"nodeType":"Return","src":"12217:16:81"}]},"functionSelector":"b64544ec","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"11395:35:81","parameters":{"id":52166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52161,"mutability":"mutable","name":"params","nameLocation":"11484:6:81","nodeType":"VariableDeclaration","scope":52224,"src":"11440:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52160,"nodeType":"UserDefinedTypeName","pathNode":{"id":52159,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["11440:18:81","11459:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"11440:36:81"},"referencedDeclaration":35829,"src":"11440:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":52163,"mutability":"mutable","name":"getterFaucet","nameLocation":"11508:12:81","nodeType":"VariableDeclaration","scope":52224,"src":"11500:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52162,"name":"address","nodeType":"ElementaryTypeName","src":"11500:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52165,"mutability":"mutable","name":"managerFaucet","nameLocation":"11538:13:81","nodeType":"VariableDeclaration","scope":52224,"src":"11530:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52164,"name":"address","nodeType":"ElementaryTypeName","src":"11530:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11430:127:81"},"returnParameters":{"id":52170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52224,"src":"11574:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52168,"nodeType":"UserDefinedTypeName","pathNode":{"id":52167,"name":"SubnetActorDiamond","nameLocations":["11574:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"11574:18:81"},"referencedDeclaration":36177,"src":"11574:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"11573:20:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52359,"nodeType":"FunctionDefinition","src":"12246:1518:81","nodes":[],"body":{"id":52358,"nodeType":"Block","src":"12361:1403:81","nodes":[],"statements":[{"assignments":[52235],"declarations":[{"constant":false,"id":52235,"mutability":"mutable","name":"manager","nameLocation":"12395:7:81","nodeType":"VariableDeclaration","scope":52358,"src":"12371:31:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52234,"nodeType":"UserDefinedTypeName","pathNode":{"id":52233,"name":"SubnetActorManagerFacet","nameLocations":["12371:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"12371:23:81"},"referencedDeclaration":50947,"src":"12371:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":52240,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12405:27:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":52237,"nodeType":"UserDefinedTypeName","pathNode":{"id":52236,"name":"SubnetActorManagerFacet","nameLocations":["12409:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"12409:23:81"},"referencedDeclaration":50947,"src":"12409:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}},"id":52239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12405:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"12371:63:81"},{"assignments":[52243],"declarations":[{"constant":false,"id":52243,"mutability":"mutable","name":"getter","nameLocation":"12467:6:81","nodeType":"VariableDeclaration","scope":52358,"src":"12444:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52242,"nodeType":"UserDefinedTypeName","pathNode":{"id":52241,"name":"SubnetActorGetterFacet","nameLocations":["12444:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"12444:22:81"},"referencedDeclaration":49325,"src":"12444:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":52248,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12476:26:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":52245,"nodeType":"UserDefinedTypeName","pathNode":{"id":52244,"name":"SubnetActorGetterFacet","nameLocations":["12480:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"12480:22:81"},"referencedDeclaration":49325,"src":"12480:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}},"id":52247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12476:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"12444:60:81"},{"assignments":[52251],"declarations":[{"constant":false,"id":52251,"mutability":"mutable","name":"louper","nameLocation":"12532:6:81","nodeType":"VariableDeclaration","scope":52358,"src":"12514:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52250,"nodeType":"UserDefinedTypeName","pathNode":{"id":52249,"name":"DiamondLoupeFacet","nameLocations":["12514:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"12514:17:81"},"referencedDeclaration":36914,"src":"12514:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":52256,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12541:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52253,"nodeType":"UserDefinedTypeName","pathNode":{"id":52252,"name":"DiamondLoupeFacet","nameLocations":["12545:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"12545:17:81"},"referencedDeclaration":36914,"src":"12545:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12541:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"12514:50:81"},{"assignments":[52259],"declarations":[{"constant":false,"id":52259,"mutability":"mutable","name":"cutter","nameLocation":"12590:6:81","nodeType":"VariableDeclaration","scope":52358,"src":"12574:22:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":52258,"nodeType":"UserDefinedTypeName","pathNode":{"id":52257,"name":"DiamondCutFacet","nameLocations":["12574:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"12574:15:81"},"referencedDeclaration":36477,"src":"12574:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":52264,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"12599:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52261,"nodeType":"UserDefinedTypeName","pathNode":{"id":52260,"name":"DiamondCutFacet","nameLocations":["12603:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"12603:15:81"},"referencedDeclaration":36477,"src":"12603:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12599:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"12574:46:81"},{"assignments":[52270],"declarations":[{"constant":false,"id":52270,"mutability":"mutable","name":"diamondCut","nameLocation":"12658:10:81","nodeType":"VariableDeclaration","scope":52358,"src":"12631:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52268,"nodeType":"UserDefinedTypeName","pathNode":{"id":52267,"name":"IDiamond.FacetCut","nameLocations":["12631:8:81","12640:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"12631:17:81"},"referencedDeclaration":39721,"src":"12631:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52269,"nodeType":"ArrayTypeName","src":"12631:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52277,"initialValue":{"arguments":[{"hexValue":"34","id":52275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12695:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":52274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12671:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52272,"nodeType":"UserDefinedTypeName","pathNode":{"id":52271,"name":"IDiamond.FacetCut","nameLocations":["12675:8:81","12684:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"12675:17:81"},"referencedDeclaration":39721,"src":"12675:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52273,"nodeType":"ArrayTypeName","src":"12675:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12671:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12631:66:81"},{"expression":{"id":52293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52278,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"12708:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52280,"indexExpression":{"hexValue":"30","id":52279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12719:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12708:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52285,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52235,"src":"12796:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":52284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12788:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52283,"name":"address","nodeType":"ElementaryTypeName","src":"12788:7:81","typeDescriptions":{}}},"id":52286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12788:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52287,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12830:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12839:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"12830:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12854:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"12830:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52290,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"12894:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52281,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12738:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12747:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"12738:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12774:12:81","12822:6:81","12875:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12738:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52292,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12724:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12708:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52294,"nodeType":"ExpressionStatement","src":"12708:229:81"},{"expression":{"id":52310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52295,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"12948:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52297,"indexExpression":{"hexValue":"31","id":52296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12959:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12948:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52302,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52243,"src":"13036:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}],"id":52301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13028:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52300,"name":"address","nodeType":"ElementaryTypeName","src":"13028:7:81","typeDescriptions":{}}},"id":52303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13028:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52304,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13069:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13078:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"13069:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13093:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"13069:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52307,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"13133:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52298,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"12978:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12987:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"12978:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13014:12:81","13061:6:81","13114:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12978:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52309,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12964:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12948:227:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52311,"nodeType":"ExpressionStatement","src":"12948:227:81"},{"expression":{"id":52327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52312,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"13186:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52314,"indexExpression":{"hexValue":"32","id":52313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13197:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13186:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52319,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52259,"src":"13274:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13266:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52317,"name":"address","nodeType":"ElementaryTypeName","src":"13266:7:81","typeDescriptions":{}}},"id":52320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13266:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52321,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13307:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13316:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"13307:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13331:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"13307:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52324,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51556,"src":"13371:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52315,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13216:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13225:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"13216:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13252:12:81","13299:6:81","13352:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13216:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52326,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13202:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13186:227:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52328,"nodeType":"ExpressionStatement","src":"13186:227:81"},{"expression":{"id":52344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52329,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"13424:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52331,"indexExpression":{"hexValue":"33","id":52330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13435:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13424:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52336,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52251,"src":"13512:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13504:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52334,"name":"address","nodeType":"ElementaryTypeName","src":"13504:7:81","typeDescriptions":{}}},"id":52337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13504:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52338,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13545:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13554:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"13545:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13569:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"13545:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52341,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51559,"src":"13609:16:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52332,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"13454:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13463:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"13454:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13490:12:81","13537:6:81","13590:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13454:186:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52343,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13440:210:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13424:226:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52345,"nodeType":"ExpressionStatement","src":"13424:226:81"},{"assignments":[52348],"declarations":[{"constant":false,"id":52348,"mutability":"mutable","name":"diamond","nameLocation":"13680:7:81","nodeType":"VariableDeclaration","scope":52358,"src":"13661:26:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52347,"nodeType":"UserDefinedTypeName","pathNode":{"id":52346,"name":"SubnetActorDiamond","nameLocations":["13661:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"13661:18:81"},"referencedDeclaration":36177,"src":"13661:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":52355,"initialValue":{"arguments":[{"id":52352,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52270,"src":"13713:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52353,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52227,"src":"13725:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"13690:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52350,"nodeType":"UserDefinedTypeName","pathNode":{"id":52349,"name":"SubnetActorDiamond","nameLocations":["13694:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"13694:18:81"},"referencedDeclaration":36177,"src":"13694:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13690:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"13661:71:81"},{"expression":{"id":52356,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52348,"src":"13750:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":52232,"id":52357,"nodeType":"Return","src":"13743:14:81"}]},"functionSelector":"b0ed3c00","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"12255:17:81","parameters":{"id":52228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52227,"mutability":"mutable","name":"params","nameLocation":"12317:6:81","nodeType":"VariableDeclaration","scope":52359,"src":"12273:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52226,"nodeType":"UserDefinedTypeName","pathNode":{"id":52225,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["12273:18:81","12292:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"12273:36:81"},"referencedDeclaration":35829,"src":"12273:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"12272:52:81"},"returnParameters":{"id":52232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52359,"src":"12341:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52230,"nodeType":"UserDefinedTypeName","pathNode":{"id":52229,"name":"SubnetActorDiamond","nameLocations":["12341:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"12341:18:81"},"referencedDeclaration":36177,"src":"12341:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"12340:20:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52388,"nodeType":"FunctionDefinition","src":"13770:522:81","nodes":[],"body":{"id":52387,"nodeType":"Block","src":"14014:278:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":52376,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52361,"src":"14055:15:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":52377,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52364,"src":"14084:10:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":52378,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52366,"src":"14108:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52379,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52368,"src":"14146:14:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52380,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52370,"src":"14174:12:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52381,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52372,"src":"14200:19:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":52382,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"14233:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":52383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14248:10:81","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":48645,"src":"14233:25:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":52384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14272:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":52375,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[52359,52388,52589],"referencedDeclaration":52589,"src":"14024:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$36918_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$48648_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":52385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14024:261:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52386,"nodeType":"ExpressionStatement","src":"14024:261:81"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"13779:17:81","parameters":{"id":52373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52361,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"13814:15:81","nodeType":"VariableDeclaration","scope":52388,"src":"13806:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52360,"name":"address","nodeType":"ElementaryTypeName","src":"13806:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52364,"mutability":"mutable","name":"_consensus","nameLocation":"13853:10:81","nodeType":"VariableDeclaration","scope":52388,"src":"13839:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},"typeName":{"id":52363,"nodeType":"UserDefinedTypeName","pathNode":{"id":52362,"name":"ConsensusType","nameLocations":["13839:13:81"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"13839:13:81"},"referencedDeclaration":36918,"src":"13839:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":52366,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"13881:24:81","nodeType":"VariableDeclaration","scope":52388,"src":"13873:32:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52365,"name":"uint256","nodeType":"ElementaryTypeName","src":"13873:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52368,"mutability":"mutable","name":"_minValidators","nameLocation":"13922:14:81","nodeType":"VariableDeclaration","scope":52388,"src":"13915:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52367,"name":"uint64","nodeType":"ElementaryTypeName","src":"13915:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52370,"mutability":"mutable","name":"_checkPeriod","nameLocation":"13953:12:81","nodeType":"VariableDeclaration","scope":52388,"src":"13946:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52369,"name":"uint64","nodeType":"ElementaryTypeName","src":"13946:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52372,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"13981:19:81","nodeType":"VariableDeclaration","scope":52388,"src":"13975:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52371,"name":"uint8","nodeType":"ElementaryTypeName","src":"13975:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"13796:210:81"},"returnParameters":{"id":52374,"nodeType":"ParameterList","parameters":[],"src":"14014:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52589,"nodeType":"FunctionDefinition","src":"14298:2571:81","nodes":[],"body":{"id":52588,"nodeType":"Block","src":"14621:2248:81","nodes":[],"statements":[{"assignments":[52411],"declarations":[{"constant":false,"id":52411,"mutability":"mutable","name":"_parentId","nameLocation":"14647:9:81","nodeType":"VariableDeclaration","scope":52588,"src":"14631:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":52410,"nodeType":"UserDefinedTypeName","pathNode":{"id":52409,"name":"SubnetID","nameLocations":["14631:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"14631:8:81"},"referencedDeclaration":48557,"src":"14631:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":52420,"initialValue":{"arguments":[{"id":52413,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51450,"src":"14668:15:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14699:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14685:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52414,"name":"address","nodeType":"ElementaryTypeName","src":"14689:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52415,"nodeType":"ArrayTypeName","src":"14689:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14685:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52412,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"14659:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14659:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"14631:71:81"},{"expression":{"id":52426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52421,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"14713:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14725:27:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":52423,"nodeType":"UserDefinedTypeName","pathNode":{"id":52422,"name":"SubnetActorManagerFacet","nameLocations":["14729:23:81"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"14729:23:81"},"referencedDeclaration":50947,"src":"14729:23:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}},"id":52425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14725:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"src":"14713:41:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":52427,"nodeType":"ExpressionStatement","src":"14713:41:81"},{"expression":{"id":52433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52428,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"14764:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14775:26:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":52430,"nodeType":"UserDefinedTypeName","pathNode":{"id":52429,"name":"SubnetActorGetterFacet","nameLocations":["14779:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"14779:22:81"},"referencedDeclaration":49325,"src":"14779:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}},"id":52432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14775:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"14764:39:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":52434,"nodeType":"ExpressionStatement","src":"14764:39:81"},{"expression":{"id":52440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52435,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"14813:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14824:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52437,"nodeType":"UserDefinedTypeName","pathNode":{"id":52436,"name":"DiamondCutFacet","nameLocations":["14828:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"14828:15:81"},"referencedDeclaration":36477,"src":"14828:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14824:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"14813:32:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":52441,"nodeType":"ExpressionStatement","src":"14813:32:81"},{"expression":{"id":52447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52442,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"14855:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":52445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14866:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52444,"nodeType":"UserDefinedTypeName","pathNode":{"id":52443,"name":"DiamondLoupeFacet","nameLocations":["14870:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"14870:17:81"},"referencedDeclaration":36914,"src":"14870:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14866:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"14855:34:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":52448,"nodeType":"ExpressionStatement","src":"14855:34:81"},{"assignments":[52454],"declarations":[{"constant":false,"id":52454,"mutability":"mutable","name":"diamondCut","nameLocation":"14927:10:81","nodeType":"VariableDeclaration","scope":52588,"src":"14900:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52452,"nodeType":"UserDefinedTypeName","pathNode":{"id":52451,"name":"IDiamond.FacetCut","nameLocations":["14900:8:81","14909:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"14900:17:81"},"referencedDeclaration":39721,"src":"14900:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52453,"nodeType":"ArrayTypeName","src":"14900:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52461,"initialValue":{"arguments":[{"hexValue":"34","id":52459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14964:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":52458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14940:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52456,"nodeType":"UserDefinedTypeName","pathNode":{"id":52455,"name":"IDiamond.FacetCut","nameLocations":["14944:8:81","14953:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"14944:17:81"},"referencedDeclaration":39721,"src":"14944:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52457,"nodeType":"ArrayTypeName","src":"14944:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14940:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14900:66:81"},{"expression":{"id":52477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52462,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"14977:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52464,"indexExpression":{"hexValue":"30","id":52463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14988:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14977:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52469,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"15065:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":52468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15057:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52467,"name":"address","nodeType":"ElementaryTypeName","src":"15057:7:81","typeDescriptions":{}}},"id":52470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15057:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52471,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15101:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15110:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15101:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15125:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15101:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52474,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51680,"src":"15165:18:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52465,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15007:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15016:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15007:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15043:12:81","15093:6:81","15146:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15007:191:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52476,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14993:215:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14977:231:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52478,"nodeType":"ExpressionStatement","src":"14977:231:81"},{"expression":{"id":52494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52479,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15219:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52481,"indexExpression":{"hexValue":"31","id":52480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15230:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15219:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52486,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"15307:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}],"id":52485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15299:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52484,"name":"address","nodeType":"ElementaryTypeName","src":"15299:7:81","typeDescriptions":{}}},"id":52487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15299:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52488,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15342:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15351:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15342:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15366:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15342:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52491,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"15406:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52482,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15249:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15258:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15249:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15285:12:81","15334:6:81","15387:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15249:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52493,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15235:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15219:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52495,"nodeType":"ExpressionStatement","src":"15219:229:81"},{"expression":{"id":52511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52496,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15459:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52498,"indexExpression":{"hexValue":"32","id":52497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15470:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15459:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52503,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"15547:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15539:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52501,"name":"address","nodeType":"ElementaryTypeName","src":"15539:7:81","typeDescriptions":{}}},"id":52504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15539:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52505,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15582:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15591:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15582:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15606:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15582:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52508,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"15646:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52499,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15489:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15498:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15489:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15525:12:81","15574:6:81","15627:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15489:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52510,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15475:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15459:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52512,"nodeType":"ExpressionStatement","src":"15459:229:81"},{"expression":{"id":52528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52513,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15699:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52515,"indexExpression":{"hexValue":"33","id":52514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15710:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15699:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52520,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"15787:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15779:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52518,"name":"address","nodeType":"ElementaryTypeName","src":"15779:7:81","typeDescriptions":{}}},"id":52521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15779:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52522,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15822:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15831:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"15822:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15846:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"15822:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52525,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51689,"src":"15886:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52516,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"15729:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15738:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"15729:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15765:12:81","15814:6:81","15867:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15729:189:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52527,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15715:213:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15699:229:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52529,"nodeType":"ExpressionStatement","src":"15699:229:81"},{"expression":{"id":52550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52530,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"15939:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52534,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52454,"src":"15987:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":52537,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52411,"src":"16076:9:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52538,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52390,"src":"16119:15:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":52539,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52393,"src":"16163:10:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":52540,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52395,"src":"16216:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52541,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52397,"src":"16273:14:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52542,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52399,"src":"16326:12:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52543,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52401,"src":"16376:19:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":52544,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52406,"src":"16436:22:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":52545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16488:2:81","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":52546,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52404,"src":"16524:15:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},{"id":52547,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"16573:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52535,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"16011:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"type(contract SubnetActorDiamond)"}},"id":52536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16030:17:81","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35829,"src":"16011:36:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35829_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":52548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16066:8:81","16103:14:81","16152:9:81","16191:23:81","16258:13:81","16305:19:81","16356:18:81","16413:21:81","16476:10:81","16508:14:81","16557:14:81"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee"],"nodeType":"FunctionCall","src":"16011:598:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"15951:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52532,"nodeType":"UserDefinedTypeName","pathNode":{"id":52531,"name":"SubnetActorDiamond","nameLocations":["15955:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"15955:18:81"},"referencedDeclaration":36177,"src":"15955:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15951:668:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"src":"15939:680:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"id":52551,"nodeType":"ExpressionStatement","src":"15939:680:81"},{"expression":{"id":52559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52552,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"16630:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52556,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16674:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16666:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52554,"name":"address","nodeType":"ElementaryTypeName","src":"16666:7:81","typeDescriptions":{}}},"id":52557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16666:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52553,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"16642:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$50947_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":52558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16642:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"src":"16630:55:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":52560,"nodeType":"ExpressionStatement","src":"16630:55:81"},{"expression":{"id":52568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52561,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"16695:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52565,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16737:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16729:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52563,"name":"address","nodeType":"ElementaryTypeName","src":"16729:7:81","typeDescriptions":{}}},"id":52566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16729:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52562,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"16706:22:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":52567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16706:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"16695:53:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":52569,"nodeType":"ExpressionStatement","src":"16695:53:81"},{"expression":{"id":52577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52570,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51704,"src":"16758:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52574,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16793:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16785:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52572,"name":"address","nodeType":"ElementaryTypeName","src":"16785:7:81","typeDescriptions":{}}},"id":52575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16785:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52571,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36477,"src":"16769:15:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36477_$","typeString":"type(contract DiamondCutFacet)"}},"id":52576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16769:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"src":"16758:46:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"id":52578,"nodeType":"ExpressionStatement","src":"16758:46:81"},{"expression":{"id":52586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52579,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51707,"src":"16814:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52583,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"16851:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":52582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16843:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52581,"name":"address","nodeType":"ElementaryTypeName","src":"16843:7:81","typeDescriptions":{}}},"id":52584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16843:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52580,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36914,"src":"16825:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":52585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16825:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"src":"16814:48:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"id":52587,"nodeType":"ExpressionStatement","src":"16814:48:81"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"14307:17:81","parameters":{"id":52407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52390,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"14342:15:81","nodeType":"VariableDeclaration","scope":52589,"src":"14334:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52389,"name":"address","nodeType":"ElementaryTypeName","src":"14334:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52393,"mutability":"mutable","name":"_consensus","nameLocation":"14381:10:81","nodeType":"VariableDeclaration","scope":52589,"src":"14367:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},"typeName":{"id":52392,"nodeType":"UserDefinedTypeName","pathNode":{"id":52391,"name":"ConsensusType","nameLocations":["14367:13:81"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"14367:13:81"},"referencedDeclaration":36918,"src":"14367:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":52395,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"14409:24:81","nodeType":"VariableDeclaration","scope":52589,"src":"14401:32:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52394,"name":"uint256","nodeType":"ElementaryTypeName","src":"14401:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52397,"mutability":"mutable","name":"_minValidators","nameLocation":"14450:14:81","nodeType":"VariableDeclaration","scope":52589,"src":"14443:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52396,"name":"uint64","nodeType":"ElementaryTypeName","src":"14443:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52399,"mutability":"mutable","name":"_checkPeriod","nameLocation":"14481:12:81","nodeType":"VariableDeclaration","scope":52589,"src":"14474:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52398,"name":"uint64","nodeType":"ElementaryTypeName","src":"14474:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":52401,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"14509:19:81","nodeType":"VariableDeclaration","scope":52589,"src":"14503:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52400,"name":"uint8","nodeType":"ElementaryTypeName","src":"14503:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":52404,"mutability":"mutable","name":"_permissionMode","nameLocation":"14553:15:81","nodeType":"VariableDeclaration","scope":52589,"src":"14538:30:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"typeName":{"id":52403,"nodeType":"UserDefinedTypeName","pathNode":{"id":52402,"name":"PermissionMode","nameLocations":["14538:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48648,"src":"14538:14:81"},"referencedDeclaration":48648,"src":"14538:14:81","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":52406,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"14585:22:81","nodeType":"VariableDeclaration","scope":52589,"src":"14578:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52405,"name":"uint16","nodeType":"ElementaryTypeName","src":"14578:6:81","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"14324:289:81"},"returnParameters":{"id":52408,"nodeType":"ParameterList","parameters":[],"src":"14621:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52682,"nodeType":"FunctionDefinition","src":"16875:1021:81","nodes":[],"body":{"id":52681,"nodeType":"Block","src":"16967:929:81","nodes":[],"statements":[{"assignments":[52599],"declarations":[{"constant":false,"id":52599,"mutability":"mutable","name":"mockedManager","nameLocation":"17005:13:81","nodeType":"VariableDeclaration","scope":52681,"src":"16977:41:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":52598,"nodeType":"UserDefinedTypeName","pathNode":{"id":52597,"name":"SubnetActorManagerFacetMock","nameLocations":["16977:27:81"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"16977:27:81"},"referencedDeclaration":56069,"src":"16977:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"}],"id":52604,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17021:31:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacetMock_$56069_$","typeString":"function () returns (contract SubnetActorManagerFacetMock)"},"typeName":{"id":52601,"nodeType":"UserDefinedTypeName","pathNode":{"id":52600,"name":"SubnetActorManagerFacetMock","nameLocations":["17025:27:81"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"17025:27:81"},"referencedDeclaration":56069,"src":"17025:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}}},"id":52603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17021:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"VariableDeclarationStatement","src":"16977:77:81"},{"assignments":[52607],"declarations":[{"constant":false,"id":52607,"mutability":"mutable","name":"getter","nameLocation":"17087:6:81","nodeType":"VariableDeclaration","scope":52681,"src":"17064:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52606,"nodeType":"UserDefinedTypeName","pathNode":{"id":52605,"name":"SubnetActorGetterFacet","nameLocations":["17064:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"17064:22:81"},"referencedDeclaration":49325,"src":"17064:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":52612,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17096:26:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":52609,"nodeType":"UserDefinedTypeName","pathNode":{"id":52608,"name":"SubnetActorGetterFacet","nameLocations":["17100:22:81"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"17100:22:81"},"referencedDeclaration":49325,"src":"17100:22:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}},"id":52611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17096:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"17064:60:81"},{"assignments":[52618],"declarations":[{"constant":false,"id":52618,"mutability":"mutable","name":"diamondCut","nameLocation":"17162:10:81","nodeType":"VariableDeclaration","scope":52681,"src":"17135:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52616,"nodeType":"UserDefinedTypeName","pathNode":{"id":52615,"name":"IDiamond.FacetCut","nameLocations":["17135:8:81","17144:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"17135:17:81"},"referencedDeclaration":39721,"src":"17135:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52617,"nodeType":"ArrayTypeName","src":"17135:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52625,"initialValue":{"arguments":[{"hexValue":"32","id":52623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17199:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":52622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17175:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52620,"nodeType":"UserDefinedTypeName","pathNode":{"id":52619,"name":"IDiamond.FacetCut","nameLocations":["17179:8:81","17188:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"17179:17:81"},"referencedDeclaration":39721,"src":"17179:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52621,"nodeType":"ArrayTypeName","src":"17179:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17175:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17135:66:81"},{"expression":{"id":52641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52626,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"17212:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52628,"indexExpression":{"hexValue":"30","id":52627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17223:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17212:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52633,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52599,"src":"17300:13:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}],"id":52632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17292:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52631,"name":"address","nodeType":"ElementaryTypeName","src":"17292:7:81","typeDescriptions":{}}},"id":52634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17292:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52635,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17340:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17349:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"17340:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17364:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"17340:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52638,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51683,"src":"17404:24:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52629,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17242:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17251:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"17242:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17278:12:81","17332:6:81","17385:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17242:201:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52640,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17228:225:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17212:241:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52642,"nodeType":"ExpressionStatement","src":"17212:241:81"},{"expression":{"id":52658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52643,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"17464:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52645,"indexExpression":{"hexValue":"31","id":52644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17475:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17464:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52650,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52607,"src":"17552:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}],"id":52649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17544:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52648,"name":"address","nodeType":"ElementaryTypeName","src":"17544:7:81","typeDescriptions":{}}},"id":52651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17544:15:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52652,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17585:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17594:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"17585:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17609:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"17585:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52655,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51677,"src":"17649:17:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52646,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"17494:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17503:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"17494:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17530:12:81","17577:6:81","17630:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17494:187:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52657,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17480:211:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17464:227:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52659,"nodeType":"ExpressionStatement","src":"17464:227:81"},{"assignments":[52664],"declarations":[{"constant":false,"id":52664,"mutability":"mutable","name":"params","nameLocation":"17746:6:81","nodeType":"VariableDeclaration","scope":52681,"src":"17702:50:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52663,"nodeType":"UserDefinedTypeName","pathNode":{"id":52662,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["17702:18:81","17721:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"17702:36:81"},"referencedDeclaration":35829,"src":"17702:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52668,"initialValue":{"arguments":[{"id":52666,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52591,"src":"17791:2:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52665,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51791,"src":"17755:35:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$35829_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":52667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17755:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"17702:92:81"},{"assignments":[52671],"declarations":[{"constant":false,"id":52671,"mutability":"mutable","name":"d","nameLocation":"17824:1:81","nodeType":"VariableDeclaration","scope":52681,"src":"17805:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52670,"nodeType":"UserDefinedTypeName","pathNode":{"id":52669,"name":"SubnetActorDiamond","nameLocations":["17805:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"17805:18:81"},"referencedDeclaration":36177,"src":"17805:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":52678,"initialValue":{"arguments":[{"id":52675,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52618,"src":"17851:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52676,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"17863:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":52674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17828:22:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52673,"nodeType":"UserDefinedTypeName","pathNode":{"id":52672,"name":"SubnetActorDiamond","nameLocations":["17832:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"17832:18:81"},"referencedDeclaration":36177,"src":"17832:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":52677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17828:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"17805:65:81"},{"expression":{"id":52679,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52671,"src":"17888:1:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":52596,"id":52680,"nodeType":"Return","src":"17881:8:81"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"16884:34:81","parameters":{"id":52592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52591,"mutability":"mutable","name":"gw","nameLocation":"16927:2:81","nodeType":"VariableDeclaration","scope":52682,"src":"16919:10:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52590,"name":"address","nodeType":"ElementaryTypeName","src":"16919:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16918:12:81"},"returnParameters":{"id":52596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52682,"src":"16947:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52594,"nodeType":"UserDefinedTypeName","pathNode":{"id":52593,"name":"SubnetActorDiamond","nameLocations":["16947:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"16947:18:81"},"referencedDeclaration":36177,"src":"16947:18:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"16946:20:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52824,"nodeType":"FunctionDefinition","src":"17948:1703:81","nodes":[],"body":{"id":52823,"nodeType":"Block","src":"18086:1565:81","nodes":[],"statements":[{"assignments":[52696],"declarations":[{"constant":false,"id":52696,"mutability":"mutable","name":"diamondCut","nameLocation":"18123:10:81","nodeType":"VariableDeclaration","scope":52823,"src":"18096:37:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52694,"nodeType":"UserDefinedTypeName","pathNode":{"id":52693,"name":"IDiamond.FacetCut","nameLocations":["18096:8:81","18105:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"18096:17:81"},"referencedDeclaration":39721,"src":"18096:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52695,"nodeType":"ArrayTypeName","src":"18096:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52703,"initialValue":{"arguments":[{"hexValue":"34","id":52701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18160:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":52700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18136:23:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52698,"nodeType":"UserDefinedTypeName","pathNode":{"id":52697,"name":"IDiamond.FacetCut","nameLocations":["18140:8:81","18149:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"18140:17:81"},"referencedDeclaration":39721,"src":"18140:17:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52699,"nodeType":"ArrayTypeName","src":"18140:19:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18136:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18096:66:81"},{"assignments":[52706],"declarations":[{"constant":false,"id":52706,"mutability":"mutable","name":"regCutFacet","nameLocation":"18189:11:81","nodeType":"VariableDeclaration","scope":52823,"src":"18173:27:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"},"typeName":{"id":52705,"nodeType":"UserDefinedTypeName","pathNode":{"id":52704,"name":"DiamondCutFacet","nameLocations":["18173:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"18173:15:81"},"referencedDeclaration":36477,"src":"18173:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":52711,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18203:19:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36477_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":52708,"nodeType":"UserDefinedTypeName","pathNode":{"id":52707,"name":"DiamondCutFacet","nameLocations":["18207:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":36477,"src":"18207:15:81"},"referencedDeclaration":36477,"src":"18207:15:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}},"id":52710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18203:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"18173:51:81"},{"assignments":[52714],"declarations":[{"constant":false,"id":52714,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"18252:13:81","nodeType":"VariableDeclaration","scope":52823,"src":"18234:31:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"DiamondLoupeFacet","nameLocations":["18234:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"18234:17:81"},"referencedDeclaration":36914,"src":"18234:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":52719,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18268:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$36914_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":52716,"nodeType":"UserDefinedTypeName","pathNode":{"id":52715,"name":"DiamondLoupeFacet","nameLocations":["18272:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36914,"src":"18272:17:81"},"referencedDeclaration":36914,"src":"18272:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}},"id":52718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18268:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"18234:57:81"},{"assignments":[52722],"declarations":[{"constant":false,"id":52722,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"18321:14:81","nodeType":"VariableDeclaration","scope":52823,"src":"18301:34:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52721,"nodeType":"UserDefinedTypeName","pathNode":{"id":52720,"name":"RegisterSubnetFacet","nameLocations":["18301:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"18301:19:81"},"referencedDeclaration":51075,"src":"18301:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":52727,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18338:23:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$51075_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":52724,"nodeType":"UserDefinedTypeName","pathNode":{"id":52723,"name":"RegisterSubnetFacet","nameLocations":["18342:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"18342:19:81"},"referencedDeclaration":51075,"src":"18342:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}}},"id":52726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18338:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"18301:62:81"},{"assignments":[52730],"declarations":[{"constant":false,"id":52730,"mutability":"mutable","name":"regGetterFacet","nameLocation":"18391:14:81","nodeType":"VariableDeclaration","scope":52823,"src":"18373:32:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52729,"nodeType":"UserDefinedTypeName","pathNode":{"id":52728,"name":"SubnetGetterFacet","nameLocations":["18373:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"18373:17:81"},"referencedDeclaration":51313,"src":"18373:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":52735,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18408:21:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$51313_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":52732,"nodeType":"UserDefinedTypeName","pathNode":{"id":52731,"name":"SubnetGetterFacet","nameLocations":["18412:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"18412:17:81"},"referencedDeclaration":51313,"src":"18412:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}}},"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18408:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"18373:58:81"},{"expression":{"id":52751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52736,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"18442:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52738,"indexExpression":{"hexValue":"30","id":52737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18453:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18442:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52743,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52714,"src":"18530:13:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$36914","typeString":"contract DiamondLoupeFacet"}],"id":52742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18522:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52741,"name":"address","nodeType":"ElementaryTypeName","src":"18522:7:81","typeDescriptions":{}}},"id":52744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18522:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52745,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18570:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18579:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"18570:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18594:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"18570:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52748,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51485,"src":"18634:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52739,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18472:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18481:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"18472:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18508:12:81","18562:6:81","18615:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18472:200:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52750,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18458:224:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18442:240:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52752,"nodeType":"ExpressionStatement","src":"18442:240:81"},{"expression":{"id":52768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52753,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"18692:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52755,"indexExpression":{"hexValue":"31","id":52754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18703:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18692:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52760,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52706,"src":"18780:11:81","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36477","typeString":"contract DiamondCutFacet"}],"id":52759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18772:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52758,"name":"address","nodeType":"ElementaryTypeName","src":"18772:7:81","typeDescriptions":{}}},"id":52761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18772:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52762,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18818:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18827:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"18818:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18842:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"18818:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52765,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51482,"src":"18882:23:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52756,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18722:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18731:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"18722:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18758:12:81","18810:6:81","18863:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18722:198:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52767,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18708:222:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18692:238:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52769,"nodeType":"ExpressionStatement","src":"18692:238:81"},{"expression":{"id":52785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52770,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"18940:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52772,"indexExpression":{"hexValue":"32","id":52771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18951:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18940:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52777,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52722,"src":"19028:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}],"id":52776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19020:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52775,"name":"address","nodeType":"ElementaryTypeName","src":"19020:7:81","typeDescriptions":{}}},"id":52778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19020:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52779,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"19069:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19078:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"19069:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19093:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"19069:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52782,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51476,"src":"19133:28:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52773,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"18970:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18979:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"18970:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19006:12:81","19061:6:81","19114:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18970:206:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52784,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18956:230:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18940:246:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52786,"nodeType":"ExpressionStatement","src":"18940:246:81"},{"expression":{"id":52802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52787,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"19196:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52789,"indexExpression":{"hexValue":"33","id":52788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19207:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19196:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":52794,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52730,"src":"19284:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}],"id":52793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19276:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52792,"name":"address","nodeType":"ElementaryTypeName","src":"19276:7:81","typeDescriptions":{}}},"id":52795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19276:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52796,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"19325:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19334:14:81","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"19325:23:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19349:3:81","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"19325:27:81","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"id":52799,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51479,"src":"19389:34:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52790,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"19226:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":52791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19235:8:81","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"19226:17:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19262:12:81","19317:6:81","19370:17:81"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19226:212:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":52801,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19212:236:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19196:252:81","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52803,"nodeType":"ExpressionStatement","src":"19196:252:81"},{"assignments":[52806],"declarations":[{"constant":false,"id":52806,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"19481:17:81","nodeType":"VariableDeclaration","scope":52823,"src":"19459:39:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52805,"nodeType":"UserDefinedTypeName","pathNode":{"id":52804,"name":"SubnetRegistryDiamond","nameLocations":["19459:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"19459:21:81"},"referencedDeclaration":36415,"src":"19459:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":52813,"initialValue":{"arguments":[{"id":52810,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"19527:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52811,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52685,"src":"19539:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":52809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19501:25:81","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36214_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36415_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":52808,"nodeType":"UserDefinedTypeName","pathNode":{"id":52807,"name":"SubnetRegistryDiamond","nameLocations":["19505:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"19505:21:81"},"referencedDeclaration":36415,"src":"19505:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}}},"id":52812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19501:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"19459:87:81"},{"eventCall":{"arguments":[{"arguments":[{"id":52817,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"19591:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}],"id":52816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19583:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52815,"name":"address","nodeType":"ElementaryTypeName","src":"19583:7:81","typeDescriptions":{}}},"id":52818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19583:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52814,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51822,"src":"19561:21:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":52819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19561:49:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52820,"nodeType":"EmitStatement","src":"19556:54:81"},{"expression":{"id":52821,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52806,"src":"19627:17:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":52690,"id":52822,"nodeType":"Return","src":"19620:24:81"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"17957:20:81","parameters":{"id":52686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52685,"mutability":"mutable","name":"params","nameLocation":"18034:6:81","nodeType":"VariableDeclaration","scope":52824,"src":"17987:53:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":52684,"nodeType":"UserDefinedTypeName","pathNode":{"id":52683,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["17987:21:81","18009:17:81"],"nodeType":"IdentifierPath","referencedDeclaration":36214,"src":"17987:39:81"},"referencedDeclaration":36214,"src":"17987:39:81","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"17977:69:81"},"returnParameters":{"id":52690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52824,"src":"18063:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52688,"nodeType":"UserDefinedTypeName","pathNode":{"id":52687,"name":"SubnetRegistryDiamond","nameLocations":["18063:21:81"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"18063:21:81"},"referencedDeclaration":36415,"src":"18063:21:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"18062:23:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52853,"nodeType":"FunctionDefinition","src":"19657:190:81","nodes":[],"body":{"id":52852,"nodeType":"Block","src":"19738:109:81","nodes":[],"statements":[{"body":{"id":52848,"nodeType":"Block","src":"19779:42:81","statements":[{"expression":{"id":52846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52842,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52830,"src":"19793:3:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":52843,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52827,"src":"19800:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52845,"indexExpression":{"id":52844,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52833,"src":"19808:1:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19800:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19793:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52847,"nodeType":"ExpressionStatement","src":"19793:17:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52836,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52833,"src":"19767:1:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":52837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19771:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"19767:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52849,"initializationExpression":{"assignments":[52833],"declarations":[{"constant":false,"id":52833,"mutability":"mutable","name":"i","nameLocation":"19760:1:81","nodeType":"VariableDeclaration","scope":52849,"src":"19753:8:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52832,"name":"uint64","nodeType":"ElementaryTypeName","src":"19753:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":52835,"initialValue":{"hexValue":"30","id":52834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19764:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"19753:12:81"},"loopExpression":{"expression":{"id":52840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19774:3:81","subExpression":{"id":52839,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52833,"src":"19774:1:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":52841,"nodeType":"ExpressionStatement","src":"19774:3:81"},"nodeType":"ForStatement","src":"19748:73:81"},{"expression":{"id":52850,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52830,"src":"19837:3:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":52831,"id":52851,"nodeType":"Return","src":"19830:10:81"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"19666:11:81","parameters":{"id":52828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52827,"mutability":"mutable","name":"weights","nameLocation":"19695:7:81","nodeType":"VariableDeclaration","scope":52853,"src":"19678:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":52825,"name":"uint256","nodeType":"ElementaryTypeName","src":"19678:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52826,"nodeType":"ArrayTypeName","src":"19678:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"19677:26:81"},"returnParameters":{"id":52831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52830,"mutability":"mutable","name":"sum","nameLocation":"19733:3:81","nodeType":"VariableDeclaration","scope":52853,"src":"19725:11:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52829,"name":"uint256","nodeType":"ElementaryTypeName","src":"19725:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19724:13:81"},"scope":54008,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":53028,"nodeType":"FunctionDefinition","src":"19853:919:81","nodes":[],"body":{"id":53027,"nodeType":"Block","src":"19956:816:81","nodes":[],"statements":[{"expression":{"id":52870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52863,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"19966:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":52868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19996:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":52867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19979:16:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":52865,"nodeType":"UserDefinedTypeName","pathNode":{"id":52864,"name":"FvmAddress","nameLocations":["19983:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"19983:10:81"},"referencedDeclaration":48476,"src":"19983:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":52866,"nodeType":"ArrayTypeName","src":"19983:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":52869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19979:19:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"19966:32:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52871,"nodeType":"ExpressionStatement","src":"19966:32:81"},{"expression":{"id":52882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52872,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"20008:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52874,"indexExpression":{"hexValue":"30","id":52873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20019:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20008:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":52879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20054:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":52877,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20046:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20049:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20046:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20046:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52875,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"20024:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":52876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20041:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"20024:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":52881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20024:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"20008:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":52883,"nodeType":"ExpressionStatement","src":"20008:51:81"},{"expression":{"id":52894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52884,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"20069:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52886,"indexExpression":{"hexValue":"31","id":52885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20080:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20069:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":52891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20115:3:81","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":52889,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20107:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20110:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20107:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20107:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52887,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"20085:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":52888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20102:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"20085:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":52893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20085:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"20069:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":52895,"nodeType":"ExpressionStatement","src":"20069:51:81"},{"expression":{"id":52906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52896,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52858,"src":"20130:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":52898,"indexExpression":{"hexValue":"32","id":52897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20141:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20130:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":52903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20176:3:81","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":52901,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20168:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20171:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20168:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20168:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52899,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"20146:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":52900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20163:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"20146:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":52905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20146:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"20130:51:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":52907,"nodeType":"ExpressionStatement","src":"20130:51:81"},{"expression":{"id":52914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52908,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20192:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":52912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20218:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":52911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20204:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52909,"name":"address","nodeType":"ElementaryTypeName","src":"20208:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52910,"nodeType":"ArrayTypeName","src":"20208:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20204:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"20192:28:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52915,"nodeType":"ExpressionStatement","src":"20192:28:81"},{"expression":{"id":52923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52916,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20230:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52918,"indexExpression":{"hexValue":"30","id":52917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20240:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20230:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":52921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20253:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":52919,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20245:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20248:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20245:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20245:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20230:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52924,"nodeType":"ExpressionStatement","src":"20230:27:81"},{"expression":{"id":52932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52925,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20267:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52927,"indexExpression":{"hexValue":"31","id":52926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20277:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20267:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":52930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20290:3:81","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":52928,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20282:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20285:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20282:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20282:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20267:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52933,"nodeType":"ExpressionStatement","src":"20267:27:81"},{"expression":{"id":52941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52934,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52861,"src":"20304:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52936,"indexExpression":{"hexValue":"32","id":52935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20314:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20304:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":52939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20327:3:81","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":52937,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20319:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20322:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20319:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20319:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20304:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52942,"nodeType":"ExpressionStatement","src":"20304:27:81"},{"assignments":[52947],"declarations":[{"constant":false,"id":52947,"mutability":"mutable","name":"weights","nameLocation":"20359:7:81","nodeType":"VariableDeclaration","scope":53027,"src":"20342:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":52945,"name":"uint256","nodeType":"ElementaryTypeName","src":"20342:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52946,"nodeType":"ArrayTypeName","src":"20342:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":52953,"initialValue":{"arguments":[{"hexValue":"33","id":52951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20383:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":52950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20369:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":52948,"name":"uint256","nodeType":"ElementaryTypeName","src":"20373:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52949,"nodeType":"ArrayTypeName","src":"20373:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":52952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20369:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20342:43:81"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":52959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20412:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":52957,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20404:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20407:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20404:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":52961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20418:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":52954,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20396:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20399:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"20396:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":52962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20396:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52963,"nodeType":"ExpressionStatement","src":"20396:24:81"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":52969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20446:3:81","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":52967,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20438:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20441:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20438:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20438:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":52971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20452:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":52964,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20430:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20433:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"20430:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":52972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20430:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52973,"nodeType":"ExpressionStatement","src":"20430:24:81"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":52979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20480:3:81","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":52977,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20472:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20475:4:81","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"20472:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":52980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20472:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":52981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20486:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":52974,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20464:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":52976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20467:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"20464:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20464:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52983,"nodeType":"ExpressionStatement","src":"20464:24:81"},{"expression":{"id":52988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52984,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"20499:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52986,"indexExpression":{"hexValue":"30","id":52985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20507:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20499:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":52987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20512:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20499:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52989,"nodeType":"ExpressionStatement","src":"20499:16:81"},{"expression":{"id":52994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52990,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"20525:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52992,"indexExpression":{"hexValue":"31","id":52991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20533:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20525:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":52993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20538:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20525:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52995,"nodeType":"ExpressionStatement","src":"20525:16:81"},{"expression":{"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52996,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"20551:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":52998,"indexExpression":{"hexValue":"32","id":52997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20559:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20551:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":52999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20564:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20551:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53001,"nodeType":"ExpressionStatement","src":"20551:16:81"},{"assignments":[53004],"declarations":[{"constant":false,"id":53004,"mutability":"mutable","name":"finality","nameLocation":"20600:8:81","nodeType":"VariableDeclaration","scope":53027,"src":"20578:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":53003,"nodeType":"UserDefinedTypeName","pathNode":{"id":53002,"name":"ParentFinality","nameLocations":["20578:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"20578:14:81"},"referencedDeclaration":48396,"src":"20578:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":53013,"initialValue":{"arguments":[{"expression":{"id":53006,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20635:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":53007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20641:6:81","memberName":"number","nodeType":"MemberAccess","src":"20635:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":53010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20668:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20660:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":53008,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20660:7:81","typeDescriptions":{}}},"id":53011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20660:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53005,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"20611:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$48396_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":53012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20627:6:81","20649:9:81"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"20611:61:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"20578:94:81"},{"expression":{"arguments":[{"expression":{"id":53017,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"20692:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":53018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20703:12:81","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"20692:23:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53014,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"20683:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20686:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"20683:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20683:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53020,"nodeType":"ExpressionStatement","src":"20683:33:81"},{"expression":{"arguments":[{"id":53024,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53004,"src":"20756:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":53021,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"20726:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20735:20:81","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39027,"src":"20726:29:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$48396_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":53025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20726:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":53026,"nodeType":"ExpressionStatement","src":"20726:39:81"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"19862:15:81","parameters":{"id":52854,"nodeType":"ParameterList","parameters":[],"src":"19877:2:81"},"returnParameters":{"id":52862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52858,"mutability":"mutable","name":"validators","nameLocation":"19916:10:81","nodeType":"VariableDeclaration","scope":53028,"src":"19896:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":52856,"nodeType":"UserDefinedTypeName","pathNode":{"id":52855,"name":"FvmAddress","nameLocations":["19896:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"19896:10:81"},"referencedDeclaration":48476,"src":"19896:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":52857,"nodeType":"ArrayTypeName","src":"19896:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":52861,"mutability":"mutable","name":"addresses","nameLocation":"19945:9:81","nodeType":"VariableDeclaration","scope":53028,"src":"19928:26:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":52859,"name":"address","nodeType":"ElementaryTypeName","src":"19928:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52860,"nodeType":"ArrayTypeName","src":"19928:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"19895:60:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53121,"nodeType":"FunctionDefinition","src":"20778:1285:81","nodes":[],"body":{"id":53120,"nodeType":"Block","src":"20862:1201:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53038,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"20887:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53039,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53032,"src":"20914:3:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":53037,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53898,"src":"20872:14:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":53040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20872:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53041,"nodeType":"ExpressionStatement","src":"20872:46:81"},{"assignments":[53044],"declarations":[{"constant":false,"id":53044,"mutability":"mutable","name":"crossMsg","nameLocation":"20945:8:81","nodeType":"VariableDeclaration","scope":53120,"src":"20929:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":53043,"nodeType":"UserDefinedTypeName","pathNode":{"id":53042,"name":"CrossMsg","nameLocations":["20929:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"20929:8:81"},"referencedDeclaration":48452,"src":"20929:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":53084,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":53052,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53030,"src":"21108:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53048,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"21067:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21076:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"21067:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21093:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"21067:40:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:48:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":53056,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53030,"src":"21171:6:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53054,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"21149:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21166:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"21149:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21149:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"id":53047,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"21024:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$48687_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":53058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21057:8:81","21137:10:81"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"21024:173:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":53064,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53032,"src":"21303:3:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53060,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"21262:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21271:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"21262:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21262:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21288:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"21262:40:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21262:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":53068,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53032,"src":"21363:3:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53066,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"21341:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21358:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"21341:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21341:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"id":53059,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48687,"src":"21219:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$48687_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":53070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21252:8:81","21329:10:81"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"21219:167:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":53071,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"21411:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21435:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21411:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":53074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21461:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":53075,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36441,"src":"21488:11:81","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":53078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21535:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21525:9:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":53076,"name":"bytes","nodeType":"ElementaryTypeName","src":"21529:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":53079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21525:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":53080,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51418,"src":"21560:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53046,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"20988:11:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$48469_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":53081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21018:4:81","21215:2:81","21404:5:81","21454:5:81","21480:6:81","21517:6:81","21555:3:81"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"20988:608:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":53082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21619:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":53045,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"20956:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$48452_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":53083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20979:7:81","21610:7:81"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"20956:679:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"20929:706:81"},{"assignments":[53089],"declarations":[{"constant":false,"id":53089,"mutability":"mutable","name":"msgs","nameLocation":"21663:4:81","nodeType":"VariableDeclaration","scope":53120,"src":"21645:22:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":53087,"nodeType":"UserDefinedTypeName","pathNode":{"id":53086,"name":"CrossMsg","nameLocations":["21645:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"21645:8:81"},"referencedDeclaration":48452,"src":"21645:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":53088,"nodeType":"ArrayTypeName","src":"21645:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":53096,"initialValue":{"arguments":[{"hexValue":"31","id":53094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21685:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21670:14:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":53091,"nodeType":"UserDefinedTypeName","pathNode":{"id":53090,"name":"CrossMsg","nameLocations":["21674:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"21674:8:81"},"referencedDeclaration":48452,"src":"21674:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":53092,"nodeType":"ArrayTypeName","src":"21674:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":53095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21670:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"21645:42:81"},{"expression":{"id":53101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53097,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53089,"src":"21697:4:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":53099,"indexExpression":{"hexValue":"30","id":53098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21702:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21697:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53100,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53044,"src":"21707:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"21697:18:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":53102,"nodeType":"ExpressionStatement","src":"21697:18:81"},{"expression":{"arguments":[{"expression":{"id":53106,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"21954:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":53107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21965:12:81","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"21954:23:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53103,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"21945:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21948:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"21945:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21945:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53109,"nodeType":"ExpressionStatement","src":"21945:33:81"},{"expression":{"arguments":[{"id":53113,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53089,"src":"22016:4:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":53110,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"21988:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21997:18:81","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":39187,"src":"21988:27:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":53114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21988:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53115,"nodeType":"ExpressionStatement","src":"21988:33:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53116,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53044,"src":"22039:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":53117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22048:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40132,"src":"22039:15:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$48452_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$48452_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":53118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22039:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":53036,"id":53119,"nodeType":"Return","src":"22032:24:81"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"20787:20:81","parameters":{"id":53033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53030,"mutability":"mutable","name":"caller","nameLocation":"20816:6:81","nodeType":"VariableDeclaration","scope":53121,"src":"20808:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53029,"name":"address","nodeType":"ElementaryTypeName","src":"20808:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53032,"mutability":"mutable","name":"src","nameLocation":"20832:3:81","nodeType":"VariableDeclaration","scope":53121,"src":"20824:11:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53031,"name":"address","nodeType":"ElementaryTypeName","src":"20824:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20807:29:81"},"returnParameters":{"id":53036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53121,"src":"20853:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20853:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20852:9:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53132,"nodeType":"FunctionDefinition","src":"22069:93:81","nodes":[],"body":{"id":53131,"nodeType":"Block","src":"22117:45:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53127,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53123,"src":"22140:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22151:3:81","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53126,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[53132,53215],"referencedDeclaration":53215,"src":"22127:12:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22127:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53130,"nodeType":"ExpressionStatement","src":"22127:28:81"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"22078:12:81","parameters":{"id":53124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53123,"mutability":"mutable","name":"validator","nameLocation":"22099:9:81","nodeType":"VariableDeclaration","scope":53132,"src":"22091:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53122,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22090:19:81"},"returnParameters":{"id":53125,"nodeType":"ParameterList","parameters":[],"src":"22117:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53215,"nodeType":"FunctionDefinition","src":"22168:596:81","nodes":[],"body":{"id":53214,"nodeType":"Block","src":"22232:532:81","nodes":[],"statements":[{"assignments":[53143],"declarations":[{"constant":false,"id":53143,"mutability":"mutable","name":"validators","nameLocation":"22262:10:81","nodeType":"VariableDeclaration","scope":53214,"src":"22242:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":53141,"nodeType":"UserDefinedTypeName","pathNode":{"id":53140,"name":"FvmAddress","nameLocations":["22242:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"22242:10:81"},"referencedDeclaration":48476,"src":"22242:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":53142,"nodeType":"ArrayTypeName","src":"22242:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":53150,"initialValue":{"arguments":[{"hexValue":"31","id":53148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22292:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22275:16:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":53145,"nodeType":"UserDefinedTypeName","pathNode":{"id":53144,"name":"FvmAddress","nameLocations":["22279:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"22279:10:81"},"referencedDeclaration":48476,"src":"22279:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"id":53146,"nodeType":"ArrayTypeName","src":"22279:12:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":53149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22275:19:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22242:52:81"},{"expression":{"id":53158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53151,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53143,"src":"22304:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$48476_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":53153,"indexExpression":{"hexValue":"30","id":53152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22315:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22304:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53156,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53134,"src":"22342:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53154,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"22320:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22337:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"22320:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22320:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22304:48:81","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}},"id":53159,"nodeType":"ExpressionStatement","src":"22304:48:81"},{"assignments":[53164],"declarations":[{"constant":false,"id":53164,"mutability":"mutable","name":"weights","nameLocation":"22379:7:81","nodeType":"VariableDeclaration","scope":53214,"src":"22362:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53162,"name":"uint256","nodeType":"ElementaryTypeName","src":"22362:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53163,"nodeType":"ArrayTypeName","src":"22362:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53170,"initialValue":{"arguments":[{"hexValue":"31","id":53168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22403:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22389:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53165,"name":"uint256","nodeType":"ElementaryTypeName","src":"22393:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53166,"nodeType":"ArrayTypeName","src":"22393:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22389:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22362:43:81"},{"expression":{"id":53175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53171,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53164,"src":"22415:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53173,"indexExpression":{"hexValue":"30","id":53172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22423:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22415:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53174,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53136,"src":"22428:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22415:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53176,"nodeType":"ExpressionStatement","src":"22415:19:81"},{"expression":{"arguments":[{"id":53180,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53134,"src":"22453:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":53181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22464:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":53177,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22445:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22448:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22445:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22445:21:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53183,"nodeType":"ExpressionStatement","src":"22445:21:81"},{"assignments":[53186],"declarations":[{"constant":false,"id":53186,"mutability":"mutable","name":"finality","nameLocation":"22498:8:81","nodeType":"VariableDeclaration","scope":53214,"src":"22476:30:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":53185,"nodeType":"UserDefinedTypeName","pathNode":{"id":53184,"name":"ParentFinality","nameLocations":["22476:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"22476:14:81"},"referencedDeclaration":48396,"src":"22476:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":53195,"initialValue":{"arguments":[{"expression":{"id":53188,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22533:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":53189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22539:6:81","memberName":"number","nodeType":"MemberAccess","src":"22533:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":53192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22566:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22558:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":53190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22558:7:81","typeDescriptions":{}}},"id":53193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22558:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53187,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"22509:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$48396_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":53194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["22525:6:81","22547:9:81"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"22509:61:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"22476:94:81"},{"expression":{"arguments":[{"expression":{"id":53199,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"22660:10:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":53200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22671:12:81","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"22660:23:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53196,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22646:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22649:10:81","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"22646:13:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22646:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53202,"nodeType":"ExpressionStatement","src":"22646:38:81"},{"expression":{"arguments":[{"id":53206,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53186,"src":"22724:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":53203,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"22694:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22703:20:81","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39027,"src":"22694:29:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$48396_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":53207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22694:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":53208,"nodeType":"ExpressionStatement","src":"22694:39:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53209,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22743:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22746:9:81","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"22743:12:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":53212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22743:14:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53213,"nodeType":"ExpressionStatement","src":"22743:14:81"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"22177:12:81","parameters":{"id":53137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53134,"mutability":"mutable","name":"validator","nameLocation":"22198:9:81","nodeType":"VariableDeclaration","scope":53215,"src":"22190:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53133,"name":"address","nodeType":"ElementaryTypeName","src":"22190:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53136,"mutability":"mutable","name":"weight","nameLocation":"22217:6:81","nodeType":"VariableDeclaration","scope":53215,"src":"22209:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53135,"name":"uint256","nodeType":"ElementaryTypeName","src":"22209:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22189:35:81"},"returnParameters":{"id":53138,"nodeType":"ParameterList","parameters":[],"src":"22232:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53228,"nodeType":"FunctionDefinition","src":"22770:112:81","nodes":[],"body":{"id":53227,"nodeType":"Block","src":"22814:68:81","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":53223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22836:30:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":53224,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53217,"src":"22868:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53220,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"22824:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22832:3:81","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"22824:11:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":53225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22824:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53226,"nodeType":"ExpressionStatement","src":"22824:51:81"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"22779:6:81","parameters":{"id":53218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53217,"mutability":"mutable","name":"amount","nameLocation":"22794:6:81","nodeType":"VariableDeclaration","scope":53228,"src":"22786:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53216,"name":"uint256","nodeType":"ElementaryTypeName","src":"22786:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22785:16:81"},"returnParameters":{"id":53219,"nodeType":"ParameterList","parameters":[],"src":"22814:0:81"},"scope":54008,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":53327,"nodeType":"FunctionDefinition","src":"22888:968:81","nodes":[],"body":{"id":53326,"nodeType":"Block","src":"22952:904:81","nodes":[],"statements":[{"assignments":[53237,null,53239,null,53241,null],"declarations":[{"constant":false,"id":53237,"mutability":"mutable","name":"subnetId","nameLocation":"23044:8:81","nodeType":"VariableDeclaration","scope":53326,"src":"23028:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53236,"nodeType":"UserDefinedTypeName","pathNode":{"id":53235,"name":"SubnetID","nameLocations":["23028:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"23028:8:81"},"referencedDeclaration":48557,"src":"23028:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":53239,"mutability":"mutable","name":"nonceBefore","nameLocation":"23064:11:81","nodeType":"VariableDeclaration","scope":53326,"src":"23056:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53238,"name":"uint256","nodeType":"ElementaryTypeName","src":"23056:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":53241,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"23087:16:81","nodeType":"VariableDeclaration","scope":53326,"src":"23079:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53240,"name":"uint256","nodeType":"ElementaryTypeName","src":"23079:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":53248,"initialValue":{"arguments":[{"arguments":[{"id":53245,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"23127:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":53244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23119:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53243,"name":"address","nodeType":"ElementaryTypeName","src":"23119:7:81","typeDescriptions":{}}},"id":53246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23119:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53242,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"23109:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23109:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"23027:111:81"},{"assignments":[53250],"declarations":[{"constant":false,"id":53250,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"23157:25:81","nodeType":"VariableDeclaration","scope":53326,"src":"23149:33:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53249,"name":"uint256","nodeType":"ElementaryTypeName","src":"23149:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53257,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":53253,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53237,"src":"23221:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":53251,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"23185:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23194:26:81","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37318,"src":"23185:35:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":53254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23185:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23233:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23185:49:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23149:85:81"},{"assignments":[53259],"declarations":[{"constant":false,"id":53259,"mutability":"mutable","name":"expectedNonce","nameLocation":"23252:13:81","nodeType":"VariableDeclaration","scope":53326,"src":"23244:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53258,"name":"uint256","nodeType":"ElementaryTypeName","src":"23244:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53263,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53260,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53239,"src":"23268:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23282:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23268:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23244:39:81"},{"assignments":[53265],"declarations":[{"constant":false,"id":53265,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"23301:18:81","nodeType":"VariableDeclaration","scope":53326,"src":"23293:26:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53264,"name":"uint256","nodeType":"ElementaryTypeName","src":"23293:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53269,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53266,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53241,"src":"23322:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":53267,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53232,"src":"23341:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23322:29:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23293:58:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53271,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"23370:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23379:11:81","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37148,"src":"23370:20:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23370:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":53274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23395:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23370:26:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":53276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23398:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":53270,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23362:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23362:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53278,"nodeType":"ExpressionStatement","src":"23362:55:81"},{"expression":{"arguments":[{"id":53284,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53237,"src":"23462:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":53287,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"23494:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53285,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"23472:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23489:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"23472:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23472:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":53279,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"23428:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23438:4:81","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38311,"src":"23428:14:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":53283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53282,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53232,"src":"23450:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"23428:33:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23428:81:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53290,"nodeType":"ExpressionStatement","src":"23428:81:81"},{"assignments":[null,null,53292,null,53294,null],"declarations":[null,null,{"constant":false,"id":53292,"mutability":"mutable","name":"nonce","nameLocation":"23533:5:81","nodeType":"VariableDeclaration","scope":53326,"src":"23525:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53291,"name":"uint256","nodeType":"ElementaryTypeName","src":"23525:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":53294,"mutability":"mutable","name":"circSupply","nameLocation":"23550:10:81","nodeType":"VariableDeclaration","scope":53326,"src":"23542:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53293,"name":"uint256","nodeType":"ElementaryTypeName","src":"23542:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null],"id":53301,"initialValue":{"arguments":[{"arguments":[{"id":53298,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"23584:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}],"id":53297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23576:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53296,"name":"address","nodeType":"ElementaryTypeName","src":"23576:7:81","typeDescriptions":{}}},"id":53299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23576:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53295,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"23566:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23566:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"23520:75:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":53305,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53237,"src":"23650:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":53303,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"23614:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23623:26:81","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37318,"src":"23614:35:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":53306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23614:45:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53307,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53250,"src":"23663:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23614:74:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":53309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23690:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":53302,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23606:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23606:105:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53311,"nodeType":"ExpressionStatement","src":"23606:105:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53313,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53292,"src":"23730:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53314,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53259,"src":"23739:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23730:22:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":53316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23754:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":53312,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23722:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23722:51:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53318,"nodeType":"ExpressionStatement","src":"23722:51:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53320,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53294,"src":"23791:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53321,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53265,"src":"23805:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23791:32:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":53323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23825:23:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":53319,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23783:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23783:66:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53325,"nodeType":"ExpressionStatement","src":"23783:66:81"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"22897:4:81","parameters":{"id":53233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53230,"mutability":"mutable","name":"funderAddress","nameLocation":"22910:13:81","nodeType":"VariableDeclaration","scope":53327,"src":"22902:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53229,"name":"address","nodeType":"ElementaryTypeName","src":"22902:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53232,"mutability":"mutable","name":"fundAmount","nameLocation":"22933:10:81","nodeType":"VariableDeclaration","scope":53327,"src":"22925:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53231,"name":"uint256","nodeType":"ElementaryTypeName","src":"22925:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22901:43:81"},"returnParameters":{"id":53234,"nodeType":"ParameterList","parameters":[],"src":"22952:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53358,"nodeType":"FunctionDefinition","src":"23862:243:81","nodes":[],"body":{"id":53357,"nodeType":"Block","src":"23930:175:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53337,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53329,"src":"23949:16:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53334,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23940:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23943:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"23940:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23940:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53339,"nodeType":"ExpressionStatement","src":"23940:26:81"},{"expression":{"arguments":[{"id":53343,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53329,"src":"23984:16:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":53346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":53344,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"24002:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24030:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24002:29:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":53340,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23976:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23979:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"23976:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23976:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53348,"nodeType":"ExpressionStatement","src":"23976:56:81"},{"expression":{"arguments":[{"id":53354,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53331,"src":"24091:6:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":53349,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"24042:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":53351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24052:4:81","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"24042:14:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":53353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53352,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51406,"src":"24064:25:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"24042:48:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":53355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24042:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53356,"nodeType":"ExpressionStatement","src":"24042:56:81"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"23871:4:81","parameters":{"id":53332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53329,"mutability":"mutable","name":"validatorAddress","nameLocation":"23884:16:81","nodeType":"VariableDeclaration","scope":53358,"src":"23876:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53328,"name":"address","nodeType":"ElementaryTypeName","src":"23876:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53331,"mutability":"mutable","name":"pubkey","nameLocation":"23915:6:81","nodeType":"VariableDeclaration","scope":53358,"src":"23902:19:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53330,"name":"bytes","nodeType":"ElementaryTypeName","src":"23902:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"23875:47:81"},"returnParameters":{"id":53333,"nodeType":"ParameterList","parameters":[],"src":"23930:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53405,"nodeType":"FunctionDefinition","src":"24111:298:81","nodes":[],"body":{"id":53404,"nodeType":"Block","src":"24179:230:81","nodes":[],"statements":[{"assignments":[53369],"declarations":[{"constant":false,"id":53369,"mutability":"mutable","name":"validators","nameLocation":"24206:10:81","nodeType":"VariableDeclaration","scope":53404,"src":"24189:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53367,"name":"address","nodeType":"ElementaryTypeName","src":"24189:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53368,"nodeType":"ArrayTypeName","src":"24189:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53375,"initialValue":{"arguments":[{"hexValue":"31","id":53373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24233:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24219:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53370,"name":"address","nodeType":"ElementaryTypeName","src":"24223:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53371,"nodeType":"ArrayTypeName","src":"24223:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24219:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24189:46:81"},{"expression":{"id":53380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53376,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53369,"src":"24245:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53378,"indexExpression":{"hexValue":"30","id":53377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24256:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24245:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53379,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53360,"src":"24261:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24245:25:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53381,"nodeType":"ExpressionStatement","src":"24245:25:81"},{"assignments":[53386],"declarations":[{"constant":false,"id":53386,"mutability":"mutable","name":"privKeys","nameLocation":"24298:8:81","nodeType":"VariableDeclaration","scope":53404,"src":"24281:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53384,"name":"uint256","nodeType":"ElementaryTypeName","src":"24281:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53385,"nodeType":"ArrayTypeName","src":"24281:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53392,"initialValue":{"arguments":[{"hexValue":"31","id":53390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24323:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24309:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53387,"name":"uint256","nodeType":"ElementaryTypeName","src":"24313:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53388,"nodeType":"ArrayTypeName","src":"24313:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24309:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24281:44:81"},{"expression":{"id":53397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53393,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53386,"src":"24335:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53395,"indexExpression":{"hexValue":"30","id":53394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24344:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24335:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53396,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53362,"src":"24349:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24335:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53398,"nodeType":"ExpressionStatement","src":"24335:21:81"},{"expression":{"arguments":[{"id":53400,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53369,"src":"24381:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53401,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53386,"src":"24393:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":53399,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[53405,53468,53547,53698],"referencedDeclaration":53698,"src":"24367:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":53402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24367:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53403,"nodeType":"ExpressionStatement","src":"24367:35:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24120:13:81","parameters":{"id":53363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53360,"mutability":"mutable","name":"validator","nameLocation":"24142:9:81","nodeType":"VariableDeclaration","scope":53405,"src":"24134:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53359,"name":"address","nodeType":"ElementaryTypeName","src":"24134:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53362,"mutability":"mutable","name":"privKey","nameLocation":"24161:7:81","nodeType":"VariableDeclaration","scope":53405,"src":"24153:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53361,"name":"uint256","nodeType":"ElementaryTypeName","src":"24153:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24133:36:81"},"returnParameters":{"id":53364,"nodeType":"ParameterList","parameters":[],"src":"24179:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53468,"nodeType":"FunctionDefinition","src":"24415:408:81","nodes":[],"body":{"id":53467,"nodeType":"Block","src":"24523:300:81","nodes":[],"statements":[{"assignments":[53420],"declarations":[{"constant":false,"id":53420,"mutability":"mutable","name":"validators","nameLocation":"24550:10:81","nodeType":"VariableDeclaration","scope":53467,"src":"24533:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53418,"name":"address","nodeType":"ElementaryTypeName","src":"24533:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53419,"nodeType":"ArrayTypeName","src":"24533:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53426,"initialValue":{"arguments":[{"hexValue":"32","id":53424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24577:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24563:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53421,"name":"address","nodeType":"ElementaryTypeName","src":"24567:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53422,"nodeType":"ArrayTypeName","src":"24567:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24563:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24533:46:81"},{"expression":{"id":53431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53427,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53420,"src":"24589:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53429,"indexExpression":{"hexValue":"30","id":53428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24600:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24589:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53430,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53407,"src":"24605:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24589:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53432,"nodeType":"ExpressionStatement","src":"24589:26:81"},{"expression":{"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53433,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53420,"src":"24625:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53435,"indexExpression":{"hexValue":"31","id":53434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24636:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24625:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53436,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53411,"src":"24641:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24625:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53438,"nodeType":"ExpressionStatement","src":"24625:26:81"},{"assignments":[53443],"declarations":[{"constant":false,"id":53443,"mutability":"mutable","name":"privKeys","nameLocation":"24679:8:81","nodeType":"VariableDeclaration","scope":53467,"src":"24662:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53441,"name":"uint256","nodeType":"ElementaryTypeName","src":"24662:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53442,"nodeType":"ArrayTypeName","src":"24662:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53449,"initialValue":{"arguments":[{"hexValue":"32","id":53447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24704:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24690:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53444,"name":"uint256","nodeType":"ElementaryTypeName","src":"24694:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53445,"nodeType":"ArrayTypeName","src":"24694:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24690:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24662:44:81"},{"expression":{"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53450,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"24716:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53452,"indexExpression":{"hexValue":"30","id":53451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24725:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24716:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53453,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53409,"src":"24730:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24716:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53455,"nodeType":"ExpressionStatement","src":"24716:22:81"},{"expression":{"id":53460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53456,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"24748:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53458,"indexExpression":{"hexValue":"31","id":53457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24757:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24748:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53459,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53413,"src":"24762:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24748:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53461,"nodeType":"ExpressionStatement","src":"24748:22:81"},{"expression":{"arguments":[{"id":53463,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53420,"src":"24795:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53464,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53443,"src":"24807:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":53462,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[53405,53468,53547,53698],"referencedDeclaration":53698,"src":"24781:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":53465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24781:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53466,"nodeType":"ExpressionStatement","src":"24781:35:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24424:13:81","parameters":{"id":53414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53407,"mutability":"mutable","name":"validator1","nameLocation":"24446:10:81","nodeType":"VariableDeclaration","scope":53468,"src":"24438:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53406,"name":"address","nodeType":"ElementaryTypeName","src":"24438:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53409,"mutability":"mutable","name":"privKey1","nameLocation":"24466:8:81","nodeType":"VariableDeclaration","scope":53468,"src":"24458:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53408,"name":"uint256","nodeType":"ElementaryTypeName","src":"24458:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53411,"mutability":"mutable","name":"validator2","nameLocation":"24484:10:81","nodeType":"VariableDeclaration","scope":53468,"src":"24476:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53410,"name":"address","nodeType":"ElementaryTypeName","src":"24476:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53413,"mutability":"mutable","name":"privKey2","nameLocation":"24504:8:81","nodeType":"VariableDeclaration","scope":53468,"src":"24496:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53412,"name":"uint256","nodeType":"ElementaryTypeName","src":"24496:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24437:76:81"},"returnParameters":{"id":53415,"nodeType":"ParameterList","parameters":[],"src":"24523:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53547,"nodeType":"FunctionDefinition","src":"24829:568:81","nodes":[],"body":{"id":53546,"nodeType":"Block","src":"25029:368:81","nodes":[],"statements":[{"assignments":[53487],"declarations":[{"constant":false,"id":53487,"mutability":"mutable","name":"validators","nameLocation":"25056:10:81","nodeType":"VariableDeclaration","scope":53546,"src":"25039:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53485,"name":"address","nodeType":"ElementaryTypeName","src":"25039:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53486,"nodeType":"ArrayTypeName","src":"25039:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53493,"initialValue":{"arguments":[{"hexValue":"33","id":53491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25083:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":53490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25069:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53488,"name":"address","nodeType":"ElementaryTypeName","src":"25073:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53489,"nodeType":"ArrayTypeName","src":"25073:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25069:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"25039:46:81"},{"expression":{"id":53498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53494,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25095:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53496,"indexExpression":{"hexValue":"30","id":53495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25106:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25095:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53497,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53470,"src":"25111:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25095:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53499,"nodeType":"ExpressionStatement","src":"25095:26:81"},{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53500,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25131:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53502,"indexExpression":{"hexValue":"31","id":53501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25142:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25131:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53503,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53474,"src":"25147:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25131:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53505,"nodeType":"ExpressionStatement","src":"25131:26:81"},{"expression":{"id":53510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53506,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25167:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53508,"indexExpression":{"hexValue":"32","id":53507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25178:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25167:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53509,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53478,"src":"25183:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25167:26:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53511,"nodeType":"ExpressionStatement","src":"25167:26:81"},{"assignments":[53516],"declarations":[{"constant":false,"id":53516,"mutability":"mutable","name":"privKeys","nameLocation":"25221:8:81","nodeType":"VariableDeclaration","scope":53546,"src":"25204:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53514,"name":"uint256","nodeType":"ElementaryTypeName","src":"25204:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53515,"nodeType":"ArrayTypeName","src":"25204:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":53522,"initialValue":{"arguments":[{"hexValue":"33","id":53520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25246:1:81","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":53519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25232:13:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":53517,"name":"uint256","nodeType":"ElementaryTypeName","src":"25236:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53518,"nodeType":"ArrayTypeName","src":"25236:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":53521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25232:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"25204:44:81"},{"expression":{"id":53527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53523,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25258:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53525,"indexExpression":{"hexValue":"30","id":53524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25267:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25258:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53526,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53472,"src":"25272:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25258:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53528,"nodeType":"ExpressionStatement","src":"25258:22:81"},{"expression":{"id":53533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53529,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25290:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53531,"indexExpression":{"hexValue":"31","id":53530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25299:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25290:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53532,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53476,"src":"25304:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25290:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53534,"nodeType":"ExpressionStatement","src":"25290:22:81"},{"expression":{"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53535,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25322:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53537,"indexExpression":{"hexValue":"32","id":53536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25331:1:81","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"25322:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53538,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53480,"src":"25336:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25322:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53540,"nodeType":"ExpressionStatement","src":"25322:22:81"},{"expression":{"arguments":[{"id":53542,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53487,"src":"25369:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53543,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"25381:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":53541,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[53405,53468,53547,53698],"referencedDeclaration":53698,"src":"25355:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":53544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25355:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53545,"nodeType":"ExpressionStatement","src":"25355:35:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24838:13:81","parameters":{"id":53481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53470,"mutability":"mutable","name":"validator1","nameLocation":"24869:10:81","nodeType":"VariableDeclaration","scope":53547,"src":"24861:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53469,"name":"address","nodeType":"ElementaryTypeName","src":"24861:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53472,"mutability":"mutable","name":"privKey1","nameLocation":"24897:8:81","nodeType":"VariableDeclaration","scope":53547,"src":"24889:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53471,"name":"uint256","nodeType":"ElementaryTypeName","src":"24889:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53474,"mutability":"mutable","name":"validator2","nameLocation":"24923:10:81","nodeType":"VariableDeclaration","scope":53547,"src":"24915:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53473,"name":"address","nodeType":"ElementaryTypeName","src":"24915:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53476,"mutability":"mutable","name":"privKey2","nameLocation":"24951:8:81","nodeType":"VariableDeclaration","scope":53547,"src":"24943:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53475,"name":"uint256","nodeType":"ElementaryTypeName","src":"24943:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53478,"mutability":"mutable","name":"validator3","nameLocation":"24977:10:81","nodeType":"VariableDeclaration","scope":53547,"src":"24969:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53477,"name":"address","nodeType":"ElementaryTypeName","src":"24969:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53480,"mutability":"mutable","name":"privKey3","nameLocation":"25005:8:81","nodeType":"VariableDeclaration","scope":53547,"src":"24997:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53479,"name":"uint256","nodeType":"ElementaryTypeName","src":"24997:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24851:168:81"},"returnParameters":{"id":53482,"nodeType":"ParameterList","parameters":[],"src":"25029:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53698,"nodeType":"FunctionDefinition","src":"25403:1102:81","nodes":[],"body":{"id":53697,"nodeType":"Block","src":"25491:1014:81","nodes":[],"statements":[{"assignments":[53557],"declarations":[{"constant":false,"id":53557,"mutability":"mutable","name":"n","nameLocation":"25509:1:81","nodeType":"VariableDeclaration","scope":53697,"src":"25501:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53556,"name":"uint256","nodeType":"ElementaryTypeName","src":"25501:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53560,"initialValue":{"expression":{"id":53558,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53550,"src":"25513:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25524:6:81","memberName":"length","nodeType":"MemberAccess","src":"25513:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25501:29:81"},{"assignments":[53565],"declarations":[{"constant":false,"id":53565,"mutability":"mutable","name":"signatures","nameLocation":"25556:10:81","nodeType":"VariableDeclaration","scope":53697,"src":"25541:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":53563,"name":"bytes","nodeType":"ElementaryTypeName","src":"25541:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":53564,"nodeType":"ArrayTypeName","src":"25541:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":53571,"initialValue":{"arguments":[{"id":53569,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53557,"src":"25581:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"25569:11:81","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":53566,"name":"bytes","nodeType":"ElementaryTypeName","src":"25573:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":53567,"nodeType":"ArrayTypeName","src":"25573:7:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25569:14:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"25541:42:81"},{"assignments":[53573,null],"declarations":[{"constant":false,"id":53573,"mutability":"mutable","name":"nextConfigNum","nameLocation":"25602:13:81","nodeType":"VariableDeclaration","scope":53697,"src":"25595:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53572,"name":"uint64","nodeType":"ElementaryTypeName","src":"25595:6:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":53577,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53574,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25621:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25630:23:81","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":48814,"src":"25621:32:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":53576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25621:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"25594:61:81"},{"assignments":[53579],"declarations":[{"constant":false,"id":53579,"mutability":"mutable","name":"h","nameLocation":"25674:1:81","nodeType":"VariableDeclaration","scope":53697,"src":"25666:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53578,"name":"uint256","nodeType":"ElementaryTypeName","src":"25666:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53587,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53580,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25678:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25687:28:81","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":48937,"src":"25678:37:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":53582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25678:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53583,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25720:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25729:19:81","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":48919,"src":"25720:28:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":53585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25720:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25678:72:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25666:84:81"},{"assignments":[53590],"declarations":[{"constant":false,"id":53590,"mutability":"mutable","name":"checkpoint","nameLocation":"25787:10:81","nodeType":"VariableDeclaration","scope":53697,"src":"25761:36:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":53589,"nodeType":"UserDefinedTypeName","pathNode":{"id":53588,"name":"BottomUpCheckpoint","nameLocations":["25761:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"25761:18:81"},"referencedDeclaration":48410,"src":"25761:18:81","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":53612,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":53598,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"25887:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":53597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25879:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53596,"name":"address","nodeType":"ElementaryTypeName","src":"25879:7:81","typeDescriptions":{}}},"id":53599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25879:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53592,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51701,"src":"25843:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":53593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25852:9:81","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":48750,"src":"25843:18:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25843:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25864:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"25843:35:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25843:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53601,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53579,"src":"25925:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":53605,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53579,"src":"25972:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53603,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25961:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25965:6:81","memberName":"encode","nodeType":"MemberAccess","src":"25961:10:81","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25961:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53602,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"25951:9:81","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25951:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":53610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53608,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53573,"src":"26014:13:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":53609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26030:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26014:17:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":53591,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"25800:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$48410_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":53611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25833:8:81","25912:11:81","25940:9:81","25989:23:81"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"25800:242:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"25761:281:81"},{"expression":{"arguments":[{"arguments":[{"id":53618,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51692,"src":"26069:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":53617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26061:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53616,"name":"address","nodeType":"ElementaryTypeName","src":"26061:7:81","typeDescriptions":{}}},"id":53619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26061:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26081:9:81","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":53613,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26053:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26056:4:81","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26053:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26053:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53622,"nodeType":"ExpressionStatement","src":"26053:38:81"},{"assignments":[53624],"declarations":[{"constant":false,"id":53624,"mutability":"mutable","name":"hash","nameLocation":"26110:4:81","nodeType":"VariableDeclaration","scope":53697,"src":"26102:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26102:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":53631,"initialValue":{"arguments":[{"arguments":[{"id":53628,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53590,"src":"26138:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":53626,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26127:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26131:6:81","memberName":"encode","nodeType":"MemberAccess","src":"26127:10:81","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26127:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53625,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"26117:9:81","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26117:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26102:48:81"},{"body":{"id":53667,"nodeType":"Block","src":"26193:140:81","statements":[{"assignments":[53643,53645,53647],"declarations":[{"constant":false,"id":53643,"mutability":"mutable","name":"v","nameLocation":"26214:1:81","nodeType":"VariableDeclaration","scope":53667,"src":"26208:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53642,"name":"uint8","nodeType":"ElementaryTypeName","src":"26208:5:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53645,"mutability":"mutable","name":"r","nameLocation":"26225:1:81","nodeType":"VariableDeclaration","scope":53667,"src":"26217:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26217:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":53647,"mutability":"mutable","name":"s","nameLocation":"26236:1:81","nodeType":"VariableDeclaration","scope":53667,"src":"26228:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26228:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":53655,"initialValue":{"arguments":[{"baseExpression":{"id":53650,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53553,"src":"26249:8:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":53652,"indexExpression":{"id":53651,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26258:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26249:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53653,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53624,"src":"26262:4:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":53648,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26241:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26244:4:81","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"26241:7:81","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26241:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"26207:60:81"},{"expression":{"id":53665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53656,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53565,"src":"26281:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":53658,"indexExpression":{"id":53657,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26292:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26281:13:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53661,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53645,"src":"26314:1:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":53662,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53647,"src":"26317:1:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":53663,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53643,"src":"26320:1:81","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":53659,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26297:3:81","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26301:12:81","memberName":"encodePacked","nodeType":"MemberAccess","src":"26297:16:81","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26297:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"26281:41:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":53666,"nodeType":"ExpressionStatement","src":"26281:41:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26181:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":53637,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53557,"src":"26185:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26181:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53668,"initializationExpression":{"assignments":[53633],"declarations":[{"constant":false,"id":53633,"mutability":"mutable","name":"i","nameLocation":"26174:1:81","nodeType":"VariableDeclaration","scope":53668,"src":"26166:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53632,"name":"uint256","nodeType":"ElementaryTypeName","src":"26166:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53635,"initialValue":{"hexValue":"30","id":53634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26178:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26166:13:81"},"loopExpression":{"expression":{"id":53640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26188:3:81","subExpression":{"id":53639,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53633,"src":"26188:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53641,"nodeType":"ExpressionStatement","src":"26188:3:81"},"nodeType":"ForStatement","src":"26161:172:81"},{"body":{"id":53695,"nodeType":"Block","src":"26375:124:81","statements":[{"expression":{"arguments":[{"baseExpression":{"id":53682,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53550,"src":"26398:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53684,"indexExpression":{"id":53683,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53670,"src":"26409:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26398:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53679,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26389:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":53681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26392:5:81","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26389:8:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26389:23:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53686,"nodeType":"ExpressionStatement","src":"26389:23:81"},{"expression":{"arguments":[{"id":53690,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53590,"src":"26453:10:81","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":53691,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53550,"src":"26465:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":53692,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53565,"src":"26477:10:81","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":53687,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51695,"src":"26426:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$50947","typeString":"contract SubnetActorManagerFacet"}},"id":53689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26436:16:81","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":49634,"src":"26426:26:81","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26426:62:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53694,"nodeType":"ExpressionStatement","src":"26426:62:81"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53673,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53670,"src":"26363:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":53674,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53557,"src":"26367:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26363:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53696,"initializationExpression":{"assignments":[53670],"declarations":[{"constant":false,"id":53670,"mutability":"mutable","name":"i","nameLocation":"26356:1:81","nodeType":"VariableDeclaration","scope":53696,"src":"26348:9:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53669,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53672,"initialValue":{"hexValue":"30","id":53671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26360:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26348:13:81"},"loopExpression":{"expression":{"id":53677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26370:3:81","subExpression":{"id":53676,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53670,"src":"26370:1:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53678,"nodeType":"ExpressionStatement","src":"26370:3:81"},"nodeType":"ForStatement","src":"26343:156:81"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"25412:13:81","parameters":{"id":53554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53550,"mutability":"mutable","name":"validators","nameLocation":"25443:10:81","nodeType":"VariableDeclaration","scope":53698,"src":"25426:27:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53548,"name":"address","nodeType":"ElementaryTypeName","src":"25426:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53549,"nodeType":"ArrayTypeName","src":"25426:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":53553,"mutability":"mutable","name":"privKeys","nameLocation":"25472:8:81","nodeType":"VariableDeclaration","scope":53698,"src":"25455:25:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":53551,"name":"uint256","nodeType":"ElementaryTypeName","src":"25455:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53552,"nodeType":"ArrayTypeName","src":"25455:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"25425:56:81"},"returnParameters":{"id":53555,"nodeType":"ParameterList","parameters":[],"src":"25491:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":53733,"nodeType":"FunctionDefinition","src":"26511:305:81","nodes":[],"body":{"id":53732,"nodeType":"Block","src":"26558:258:81","nodes":[],"statements":[{"assignments":[53704],"declarations":[{"constant":false,"id":53704,"mutability":"mutable","name":"expectedNonce","nameLocation":"26576:13:81","nodeType":"VariableDeclaration","scope":53732,"src":"26568:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53703,"name":"uint256","nodeType":"ElementaryTypeName","src":"26568:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53710,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":53709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53705,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"26592:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26601:13:81","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37157,"src":"26592:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":53707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26592:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":53708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26619:1:81","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26592:28:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26568:52:81"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":53718,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"26692:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26696:6:81","memberName":"sender","nodeType":"MemberAccess","src":"26692:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53716,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40509,"src":"26670:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40509_$","typeString":"type(library FvmAddressHelper)"}},"id":53717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26687:4:81","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40381,"src":"26670:21:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$48476_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":53720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26670:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$48476_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":53711,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"26630:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26640:7:81","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38358,"src":"26630:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":53715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53714,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53700,"src":"26655:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26630:39:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$48476_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":53721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26630:74:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53722,"nodeType":"ExpressionStatement","src":"26630:74:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53724,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"26722:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26731:13:81","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37157,"src":"26722:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":53726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26722:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53727,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53704,"src":"26750:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26722:41:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":53729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26765:43:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":53723,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26714:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26714:95:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53731,"nodeType":"ExpressionStatement","src":"26714:95:81"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"26520:7:81","parameters":{"id":53701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53700,"mutability":"mutable","name":"releaseAmount","nameLocation":"26536:13:81","nodeType":"VariableDeclaration","scope":53733,"src":"26528:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53699,"name":"uint256","nodeType":"ElementaryTypeName","src":"26528:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26527:23:81"},"returnParameters":{"id":53702,"nodeType":"ParameterList","parameters":[],"src":"26558:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53788,"nodeType":"FunctionDefinition","src":"26822:540:81","nodes":[],"body":{"id":53787,"nodeType":"Block","src":"26891:471:81","nodes":[],"statements":[{"assignments":[53741],"declarations":[{"constant":false,"id":53741,"mutability":"mutable","name":"balanceBefore","nameLocation":"26909:13:81","nodeType":"VariableDeclaration","scope":53787,"src":"26901:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53740,"name":"uint256","nodeType":"ElementaryTypeName","src":"26901:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53744,"initialValue":{"expression":{"id":53742,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"26925:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26939:7:81","memberName":"balance","nodeType":"MemberAccess","src":"26925:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26901:45:81"},{"assignments":[null,53746,null,null,null,null],"declarations":[null,{"constant":false,"id":53746,"mutability":"mutable","name":"stakedBefore","nameLocation":"26968:12:81","nodeType":"VariableDeclaration","scope":53787,"src":"26960:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53745,"name":"uint256","nodeType":"ElementaryTypeName","src":"26960:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null,null],"id":53750,"initialValue":{"arguments":[{"id":53748,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"27002:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53747,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"26992:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26992:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"26957:59:81"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":53751,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"27027:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27037:8:81","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38090,"src":"27027:18:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":53755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53754,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"27053:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"27027:38:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":53756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27027:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53757,"nodeType":"ExpressionStatement","src":"27027:40:81"},{"assignments":[53759],"declarations":[{"constant":false,"id":53759,"mutability":"mutable","name":"balanceAfter","nameLocation":"27086:12:81","nodeType":"VariableDeclaration","scope":53787,"src":"27078:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53758,"name":"uint256","nodeType":"ElementaryTypeName","src":"27078:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53762,"initialValue":{"expression":{"id":53760,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"27101:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27115:7:81","memberName":"balance","nodeType":"MemberAccess","src":"27101:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27078:44:81"},{"assignments":[null,53764,null,null,null,null],"declarations":[null,{"constant":false,"id":53764,"mutability":"mutable","name":"stakedAfter","nameLocation":"27143:11:81","nodeType":"VariableDeclaration","scope":53787,"src":"27135:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53763,"name":"uint256","nodeType":"ElementaryTypeName","src":"27135:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null,null],"id":53768,"initialValue":{"arguments":[{"id":53766,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53737,"src":"27176:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53765,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54007,"src":"27166:9:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27166:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"27132:58:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53770,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53759,"src":"27209:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53771,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53741,"src":"27225:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":53772,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"27241:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27225:27:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27209:43:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":53775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27254:20:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":53769,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27201:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27201:74:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53777,"nodeType":"ExpressionStatement","src":"27201:74:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53779,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53764,"src":"27293:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53780,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53746,"src":"27308:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":53781,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53735,"src":"27323:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27308:26:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27293:41:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":53784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27336:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":53778,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27285:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27285:70:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53786,"nodeType":"ExpressionStatement","src":"27285:70:81"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"26831:8:81","parameters":{"id":53738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53735,"mutability":"mutable","name":"stakeAmount","nameLocation":"26848:11:81","nodeType":"VariableDeclaration","scope":53788,"src":"26840:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53734,"name":"uint256","nodeType":"ElementaryTypeName","src":"26840:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53737,"mutability":"mutable","name":"subnetAddress","nameLocation":"26869:13:81","nodeType":"VariableDeclaration","scope":53788,"src":"26861:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53736,"name":"address","nodeType":"ElementaryTypeName","src":"26861:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26839:44:81"},"returnParameters":{"id":53739,"nodeType":"ParameterList","parameters":[],"src":"26891:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53884,"nodeType":"FunctionDefinition","src":"27368:891:81","nodes":[],"body":{"id":53883,"nodeType":"Block","src":"27463:796:81","nodes":[],"statements":[{"assignments":[53800],"declarations":[{"constant":false,"id":53800,"mutability":"mutable","name":"manager","nameLocation":"27493:7:81","nodeType":"VariableDeclaration","scope":53883,"src":"27473:27:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53799,"nodeType":"UserDefinedTypeName","pathNode":{"id":53798,"name":"GatewayManagerFacet","nameLocations":["27473:19:81"],"nodeType":"IdentifierPath","referencedDeclaration":38359,"src":"27473:19:81"},"referencedDeclaration":38359,"src":"27473:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53807,"initialValue":{"arguments":[{"arguments":[{"id":53804,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53795,"src":"27531:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27523:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53802,"name":"address","nodeType":"ElementaryTypeName","src":"27523:7:81","typeDescriptions":{}}},"id":53805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27523:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53801,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"27503:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27503:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"27473:62:81"},{"expression":{"arguments":[{"hexValue":"30","id":53813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27582:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":53808,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53800,"src":"27546:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27554:8:81","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38030,"src":"27546:16:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":53812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":53811,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53790,"src":"27570:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"27546:35:81","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":53814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27546:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53815,"nodeType":"ExpressionStatement","src":"27546:38:81"},{"assignments":[53818,53820,53822,null,53824,53827],"declarations":[{"constant":false,"id":53818,"mutability":"mutable","name":"id","nameLocation":"27612:2:81","nodeType":"VariableDeclaration","scope":53883,"src":"27596:18:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53817,"nodeType":"UserDefinedTypeName","pathNode":{"id":53816,"name":"SubnetID","nameLocations":["27596:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"27596:8:81"},"referencedDeclaration":48557,"src":"27596:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":53820,"mutability":"mutable","name":"stake","nameLocation":"27624:5:81","nodeType":"VariableDeclaration","scope":53883,"src":"27616:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53819,"name":"uint256","nodeType":"ElementaryTypeName","src":"27616:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53822,"mutability":"mutable","name":"topDownNonce","nameLocation":"27639:12:81","nodeType":"VariableDeclaration","scope":53883,"src":"27631:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53821,"name":"uint256","nodeType":"ElementaryTypeName","src":"27631:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":53824,"mutability":"mutable","name":"circSupply","nameLocation":"27663:10:81","nodeType":"VariableDeclaration","scope":53883,"src":"27655:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53823,"name":"uint256","nodeType":"ElementaryTypeName","src":"27655:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53827,"mutability":"mutable","name":"status","nameLocation":"27682:6:81","nodeType":"VariableDeclaration","scope":53883,"src":"27675:13:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":53826,"nodeType":"UserDefinedTypeName","pathNode":{"id":53825,"name":"Status","nameLocations":["27675:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"27675:6:81"},"referencedDeclaration":36932,"src":"27675:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"}],"id":53832,"initialValue":{"arguments":[{"id":53829,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53792,"src":"27717:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53830,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53795,"src":"27744:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53828,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53982,"src":"27692:11:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$35759_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":53831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27692:64:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"nodeType":"VariableDeclarationStatement","src":"27595:161:81"},{"assignments":[53835],"declarations":[{"constant":false,"id":53835,"mutability":"mutable","name":"parentNetwork","nameLocation":"27783:13:81","nodeType":"VariableDeclaration","scope":53883,"src":"27767:29:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53834,"nodeType":"UserDefinedTypeName","pathNode":{"id":53833,"name":"SubnetID","nameLocations":["27767:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"27767:8:81"},"referencedDeclaration":48557,"src":"27767:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53836,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"27799:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27808:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"27799:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27799:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"27767:57:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":53850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53841,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53818,"src":"27856:2:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27859:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"27856:9:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":53843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27856:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":53846,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53792,"src":"27900:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53844,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53835,"src":"27871:13:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27885:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"27871:28:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27871:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27915:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"27871:50:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":53849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27871:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"27856:67:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":53851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27937:69:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":53840,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27835:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27835:181:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53853,"nodeType":"ExpressionStatement","src":"27835:181:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53855,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53820,"src":"28034:5:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53856,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53790,"src":"28043:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28034:19:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":53858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28055:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":53854,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28026:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28026:48:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53860,"nodeType":"ExpressionStatement","src":"28026:48:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53862,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53822,"src":"28092:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28108:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28092:17:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28111:18:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":53861,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28084:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28084:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53867,"nodeType":"ExpressionStatement","src":"28084:46:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53869,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53824,"src":"28148:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28162:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28148:15:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":53872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28165:23:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":53868,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28140:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28140:49:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53874,"nodeType":"ExpressionStatement","src":"28140:49:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53876,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53827,"src":"28207:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":53877,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"28217:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$36932_$","typeString":"type(enum Status)"}},"id":53878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28224:6:81","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":36927,"src":"28217:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"src":"28207:23:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e657870656374656420737461747573","id":53880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28232:19:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba313606cd95d33cf8055f53d8400718c19a556faf6b3b571b4ee34226df46ef","typeString":"literal_string \"unexpected status\""},"value":"unexpected status"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba313606cd95d33cf8055f53d8400718c19a556faf6b3b571b4ee34226df46ef","typeString":"literal_string \"unexpected status\""}],"id":53875,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28199:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28199:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53882,"nodeType":"ExpressionStatement","src":"28199:53:81"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"27377:16:81","parameters":{"id":53796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53790,"mutability":"mutable","name":"collateral","nameLocation":"27402:10:81","nodeType":"VariableDeclaration","scope":53884,"src":"27394:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53789,"name":"uint256","nodeType":"ElementaryTypeName","src":"27394:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53792,"mutability":"mutable","name":"subnetAddress","nameLocation":"27422:13:81","nodeType":"VariableDeclaration","scope":53884,"src":"27414:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53791,"name":"address","nodeType":"ElementaryTypeName","src":"27414:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53795,"mutability":"mutable","name":"gw","nameLocation":"27452:2:81","nodeType":"VariableDeclaration","scope":53884,"src":"27437:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":53794,"nodeType":"UserDefinedTypeName","pathNode":{"id":53793,"name":"GatewayDiamond","nameLocations":["27437:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"27437:14:81"},"referencedDeclaration":35759,"src":"27437:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"27393:62:81"},"returnParameters":{"id":53797,"nodeType":"ParameterList","parameters":[],"src":"27463:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53898,"nodeType":"FunctionDefinition","src":"28265:150:81","nodes":[],"body":{"id":53897,"nodeType":"Block","src":"28339:76:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":53892,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53886,"src":"28366:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53893,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53888,"src":"28378:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53894,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"28393:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53891,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53884,"src":"28349:16:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$35759_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":53895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28349:59:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53896,"nodeType":"ExpressionStatement","src":"28349:59:81"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"28274:14:81","parameters":{"id":53889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53886,"mutability":"mutable","name":"collateral","nameLocation":"28297:10:81","nodeType":"VariableDeclaration","scope":53898,"src":"28289:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53885,"name":"uint256","nodeType":"ElementaryTypeName","src":"28289:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53888,"mutability":"mutable","name":"subnetAddress","nameLocation":"28317:13:81","nodeType":"VariableDeclaration","scope":53898,"src":"28309:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53887,"name":"address","nodeType":"ElementaryTypeName","src":"28309:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28288:43:81"},"returnParameters":{"id":53890,"nodeType":"ParameterList","parameters":[],"src":"28339:0:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53982,"nodeType":"FunctionDefinition","src":"28421:698:81","nodes":[],"body":{"id":53981,"nodeType":"Block","src":"28583:536:81","nodes":[],"statements":[{"expression":{"id":53927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53920,"name":"gwRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51571,"src":"28593:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53924,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53903,"src":"28631:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28623:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53922,"name":"address","nodeType":"ElementaryTypeName","src":"28623:7:81","typeDescriptions":{}}},"id":53925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28623:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53921,"name":"GatewayRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39706,"src":"28604:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayRouterFacet_$39706_$","typeString":"type(contract GatewayRouterFacet)"}},"id":53926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"src":"28593:42:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayRouterFacet_$39706","typeString":"contract GatewayRouterFacet"}},"id":53928,"nodeType":"ExpressionStatement","src":"28593:42:81"},{"expression":{"id":53936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53929,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51565,"src":"28645:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53933,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53903,"src":"28685:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28677:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53931,"name":"address","nodeType":"ElementaryTypeName","src":"28677:7:81","typeDescriptions":{}}},"id":53934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28677:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53930,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"28657:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38359_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28657:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"src":"28645:44:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38359","typeString":"contract GatewayManagerFacet"}},"id":53937,"nodeType":"ExpressionStatement","src":"28645:44:81"},{"expression":{"id":53945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53938,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"28699:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53942,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53903,"src":"28737:2:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":53941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28729:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53940,"name":"address","nodeType":"ElementaryTypeName","src":"28729:7:81","typeDescriptions":{}}},"id":53943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28729:11:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53939,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37869,"src":"28710:18:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$37869_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28710:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"src":"28699:42:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53946,"nodeType":"ExpressionStatement","src":"28699:42:81"},{"assignments":[53949],"declarations":[{"constant":false,"id":53949,"mutability":"mutable","name":"subnetId","nameLocation":"28768:8:81","nodeType":"VariableDeclaration","scope":53981,"src":"28752:24:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53948,"nodeType":"UserDefinedTypeName","pathNode":{"id":53947,"name":"SubnetID","nameLocations":["28752:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"28752:8:81"},"referencedDeclaration":48557,"src":"28752:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53956,"initialValue":{"arguments":[{"id":53954,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53900,"src":"28820:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53950,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"28779:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28788:14:81","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37212,"src":"28779:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":53952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28779:25:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28805:14:81","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"28779:40:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":53955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28779:55:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"28752:82:81"},{"assignments":[53959],"declarations":[{"constant":false,"id":53959,"mutability":"mutable","name":"subnet","nameLocation":"28859:6:81","nodeType":"VariableDeclaration","scope":53981,"src":"28845:20:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":53958,"nodeType":"UserDefinedTypeName","pathNode":{"id":53957,"name":"Subnet","nameLocations":["28845:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"28845:6:81"},"referencedDeclaration":48574,"src":"28845:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":53966,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53962,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53949,"src":"28885:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":53963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28894:6:81","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"28885:15:81","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":53964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28885:17:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":53960,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51568,"src":"28868:8:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$37869","typeString":"contract GatewayGetterFacet"}},"id":53961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28877:7:81","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37297,"src":"28868:16:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$48574_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":53965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28868:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"28845:58:81"},{"expression":{"components":[{"expression":{"id":53967,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"28935:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28942:2:81","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":48573,"src":"28935:9:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":53969,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"28958:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28965:5:81","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":48559,"src":"28958:12:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53971,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"28984:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28991:12:81","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":48565,"src":"28984:19:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":53973,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"29017:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29024:20:81","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":48567,"src":"29017:27:81","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":53975,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"29058:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29065:10:81","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":48563,"src":"29058:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53977,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53959,"src":"29089:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_memory_ptr","typeString":"struct Subnet memory"}},"id":53978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29096:6:81","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":48570,"src":"29089:13:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}}],"id":53979,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28921:191:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256,enum Status)"}},"functionReturnParameters":53919,"id":53980,"nodeType":"Return","src":"28914:198:81"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"28430:11:81","parameters":{"id":53904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53900,"mutability":"mutable","name":"subnetAddress","nameLocation":"28459:13:81","nodeType":"VariableDeclaration","scope":53982,"src":"28451:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53899,"name":"address","nodeType":"ElementaryTypeName","src":"28451:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53903,"mutability":"mutable","name":"gw","nameLocation":"28497:2:81","nodeType":"VariableDeclaration","scope":53982,"src":"28482:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"},"typeName":{"id":53902,"nodeType":"UserDefinedTypeName","pathNode":{"id":53901,"name":"GatewayDiamond","nameLocations":["28482:14:81"],"nodeType":"IdentifierPath","referencedDeclaration":35759,"src":"28482:14:81"},"referencedDeclaration":35759,"src":"28482:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"28441:64:81"},"returnParameters":{"id":53919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28522:15:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53906,"nodeType":"UserDefinedTypeName","pathNode":{"id":53905,"name":"SubnetID","nameLocations":["28522:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"28522:8:81"},"referencedDeclaration":48557,"src":"28522:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":53909,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28539:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53908,"name":"uint256","nodeType":"ElementaryTypeName","src":"28539:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53911,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28548:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53910,"name":"uint256","nodeType":"ElementaryTypeName","src":"28548:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28557:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53912,"name":"uint256","nodeType":"ElementaryTypeName","src":"28557:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53915,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28566:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53914,"name":"uint256","nodeType":"ElementaryTypeName","src":"28566:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53982,"src":"28575:6:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":53917,"nodeType":"UserDefinedTypeName","pathNode":{"id":53916,"name":"Status","nameLocations":["28575:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"28575:6:81"},"referencedDeclaration":36932,"src":"28575:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"}],"src":"28521:61:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54007,"nodeType":"FunctionDefinition","src":"29125:199:81","nodes":[],"body":{"id":54006,"nodeType":"Block","src":"29258:66:81","nodes":[],"statements":[{"expression":{"arguments":[{"id":54002,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53984,"src":"29287:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54003,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51562,"src":"29302:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$35759","typeString":"contract GatewayDiamond"}],"id":54001,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53982,"src":"29275:11:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$35759_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"id":54004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29275:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$48557_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_Status_$36932_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256,enum Status)"}},"functionReturnParameters":54000,"id":54005,"nodeType":"Return","src":"29268:49:81"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"29134:9:81","parameters":{"id":53985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53984,"mutability":"mutable","name":"subnetAddress","nameLocation":"29161:13:81","nodeType":"VariableDeclaration","scope":54007,"src":"29153:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53983,"name":"address","nodeType":"ElementaryTypeName","src":"29153:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29143:37:81"},"returnParameters":{"id":54000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29197:15:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53987,"nodeType":"UserDefinedTypeName","pathNode":{"id":53986,"name":"SubnetID","nameLocations":["29197:8:81"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"29197:8:81"},"referencedDeclaration":48557,"src":"29197:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":53990,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29214:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53989,"name":"uint256","nodeType":"ElementaryTypeName","src":"29214:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29223:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53991,"name":"uint256","nodeType":"ElementaryTypeName","src":"29223:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29232:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53993,"name":"uint256","nodeType":"ElementaryTypeName","src":"29232:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29241:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53995,"name":"uint256","nodeType":"ElementaryTypeName","src":"29241:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54007,"src":"29250:6:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":53998,"nodeType":"UserDefinedTypeName","pathNode":{"id":53997,"name":"Status","nameLocations":["29250:6:81"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"29250:6:81"},"referencedDeclaration":36932,"src":"29250:6:81","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"}],"src":"29196:61:81"},"scope":54008,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":51793,"name":"Test","nameLocations":["7639:4:81"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"7639:4:81"},"id":51794,"nodeType":"InheritanceSpecifier","src":"7639:4:81"},{"baseName":{"id":51795,"name":"TestParams","nameLocations":["7645:10:81"],"nodeType":"IdentifierPath","referencedDeclaration":51469,"src":"7645:10:81"},"id":51796,"nodeType":"InheritanceSpecifier","src":"7645:10:81"},{"baseName":{"id":51797,"name":"TestRegistry","nameLocations":["7657:12:81"],"nodeType":"IdentifierPath","referencedDeclaration":51537,"src":"7657:12:81"},"id":51798,"nodeType":"InheritanceSpecifier","src":"7657:12:81"},{"baseName":{"id":51799,"name":"TestSubnetActor","nameLocations":["7671:15:81"],"nodeType":"IdentifierPath","referencedDeclaration":51792,"src":"7671:15:81"},"id":51800,"nodeType":"InheritanceSpecifier","src":"7671:15:81"},{"baseName":{"id":51801,"name":"TestGatewayActor","nameLocations":["7688:16:81"],"nodeType":"IdentifierPath","referencedDeclaration":51670,"src":"7688:16:81"},"id":51802,"nodeType":"InheritanceSpecifier","src":"7688:16:81"}],"canonicalName":"IntegrationTestBase","contractDependencies":[35759,36177,36415,36477,36914,37869,38359,38674,39706,49325,50947,51075,51313,56069],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54008,51670,51792,51537,51469,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"7616:19:81","scope":54009,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":81} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"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":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"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":"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":"0x6080806040523462000a8257600160ff198181600054161760005560045416176004556319b8a26360e21b815260206004820152601660248201527f5375626e65744163746f72476574746572466163657400000000000000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200057d5760009162000a63575b508051906001600160401b0382116200053f576801000000000000000082116200053f57601b5482601b5580831062000a00575b5060200190601b60005260206000208160031c9160005b838110620009b0575060071981169003806200095b575b505050506040516319b8a26360e21b815260206004820152601760248201527f5375626e65744163746f724d616e616765724661636574000000000000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200057d576000916200093c575b508051906001600160401b0382116200053f576801000000000000000082116200053f57601c5482601c55808310620008d1575b5060200190601c60005260206000209060005b8160031c8110620008815750600719811681038062000829575b505050506040516319b8a26360e21b815260206004820152601b60248201527f5375626e65744163746f724d616e6167657246616365744d6f636b0000000000604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200057d576000916200080a575b508051906001600160401b0382116200053f576801000000000000000082116200053f57601d5482601d5580831062000782575b5060200190601d60005260206000209060005b8160031c81106200073257506007198116810380620006da575b505050506040516319b8a26360e21b815260206004820152600f60248201526e111a585b5bdb9910dd5d119858d95d608a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200057d57600091620006bb575b508051906001600160401b0382116200053f576801000000000000000082116200053f57601e5482601e5580831062000633575b5060200190601e60005260206000209060005b8160031c8110620005e35750600719811680820362000589575b505050506040516319b8a26360e21b8152602060048201526011602482015270111a585b5bdb99131bdd5c19519858d95d607a1b604482015260008160648173__$56f90c9d10b9c0a3c012e682ffd777ec5d$__5af49081156200057d5760009162000555575b508051906001600160401b0382116200053f576801000000000000000082116200053f57601f5482601f55808310620004dc575b5060200190601f60005260206000208160031c9160005b8381106200048c5750600719811690038062000437575b604051610c8e908162000b428239f35b9260009360005b818110620004555750505001553880808062000427565b909194602062000481600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b96019291016200043e565b6000805b60088110620004a757508382015560010162000410565b95906020620004d2600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b9201960162000490565b601f6000526020600020600780850160031c8201920160031c0190601c8460021b168062000523575b505b818110620005165750620003f9565b6000815560010162000507565b600019908183019182549160200360031b1c1690553862000505565b634e487b7160e01b600052604160045260246000fd5b6200057691503d806000833e6200056d818362000a87565b81019062000aab565b38620003c5565b6040513d6000823e3d90fd5b9260009360005b8184038110620005ac5750505060031c0155388080806200035e565b9091946020620005d8600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000590565b6000805b60088110620005fe57508382015560010162000344565b9490602062000629600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b92019501620005e7565b601e6000527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350600284901b601c168062000697575b50600780850160031c8201920160031c01905b8181106200068a575062000331565b600081556001016200067b565b60001990816007870160031c8401019182549160200360031b1c1690553862000668565b620006d391503d806000833e6200056d818362000a87565b38620002fd565b9260009360005b818110620006fb5750505060031c01553880808062000298565b909194602062000727600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b9601929101620006e1565b6000805b600881106200074d5750838201556001016200027e565b9490602062000778600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000736565b601d6000527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f600284901b601c1680620007e6575b50600780850160031c8201920160031c01905b818110620007d957506200026b565b60008155600101620007ca565b60001990816007870160031c8401019182549160200360031b1c16905538620007b7565b6200082291503d806000833e6200056d818362000a87565b3862000237565b9260009360005b8181106200084a5750505060031c015538808080620001c4565b909194602062000876600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000830565b6000805b600881106200089c575083820155600101620001aa565b94906020620008c7600192845160e01c908960021b60031b9163ffffffff809116831b921b19161790565b9201950162000885565b601c6000526020600020601c8460021b168062000918575b50600780850160031c8201920160031c01905b8181106200090b575062000197565b60008155600101620008fc565b60001990816007870160031c8401019182549160200360031b1c16905538620008e9565b6200095491503d806000833e6200056d818362000a87565b3862000163565b9260009360005b8181106200097957505050015538808080620000f0565b9091946020620009a5600192885160e01c908560021b60031b9163ffffffff809116831b921b19161790565b960192910162000962565b6000805b60088110620009cb575083820155600101620000d9565b95906020620009f6600192845160e01c908a60021b60031b9163ffffffff809116831b921b19161790565b92019601620009b4565b601b6000526020600020600780850160031c8201920160031c0190601c8460021b168062000a47575b505b81811062000a3a5750620000c2565b6000815560010162000a2b565b600019908183019182549160200360031b1c1690553862000a29565b62000a7b91503d806000833e6200056d818362000a87565b386200008e565b600080fd5b601f909101601f19168101906001600160401b038211908210176200053f57604052565b90602090818382031262000a825782516001600160401b039384821162000a82570181601f8201121562000a825780519384116200053f578360051b906040519462000afa8584018762000a87565b8552838086019282010192831162000a82578301905b82821062000b1f575050505090565b81516001600160e01b03198116810362000a8257815290830190830162000b1056fe6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220f7070806381e89593969be680774e1431e5db66d7e39a595ee081b2727e2765364736f6c63430008130033","sourceMap":"6740:1920:88:-:0;;;;;;;1594:4:2;6740:1920:88;;;;1594:4:2;6740:1920:88;;;1594:4:2;6740:1920:88;3201:4:5;6740:1920:88;;;3201:4:5;6740:1920:88;;;;7226:58;;6740:1920;3201:4:5;7226:58:88;;6740:1920;;;;;;;;;;;1594:4:2;7226:15:88;6740:1920;7226:15;;:58;;;;;;;1594:4:2;7226:58:88;;;-1:-1:-1;;6740:1920:88;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;7206:78;6740:1920;;7206:78;6740:1920;;;;;;-1:-1:-1;6740:1920:88;;;;7206:78;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;1594:4:2;6740:1920:88;;;;;;-1:-1:-1;;;6740:1920:88;;;;;;;;;;;;;;;;;7315:59;;6740:1920;3201:4:5;7315:59:88;;6740:1920;;;;;;;;;;;1594:4:2;7226:15:88;6740:1920;7226:15;;7315:59;;;;;;;1594:4:2;7315:59:88;;;6740:1920;-1:-1:-1;6740:1920:88;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;7294:80;6740:1920;;7294:80;6740:1920;;;;;;;;;;;7294:80;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;-1:-1:-1;;;6740:1920:88;;;;;;;;;;;;;;;;;7411:63;;6740:1920;3201:4:5;7411:63:88;;6740:1920;7206:78;6740:1920;;;;;;;;;1594:4:2;7226:15:88;6740:1920;7226:15;;7411:63;;;;;;;1594:4:2;7411:63:88;;;6740:1920;-1:-1:-1;6740:1920:88;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;7384:90;6740:1920;;7384:90;6740:1920;;;;;;;;;;;7384:90;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;-1:-1:-1;;;6740:1920:88;;;;;;;;;;;;;;;;;7504:51;;6740:1920;3201:4:5;7504:51:88;;6740:1920;;;;;;-1:-1:-1;;;6740:1920:88;;;;1594:4:2;7226:15:88;6740:1920;7226:15;;7504:51;;;;;;;1594:4:2;7504:51:88;;;6740:1920;-1:-1:-1;6740:1920:88;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;7484:71;6740:1920;;7484:71;6740:1920;;;;;;;;;;;7484:71;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;-1:-1:-1;;;6740:1920:88;;;;;;;;;;;;;;;;;7585:53;;6740:1920;3201:4:5;7585:53:88;;6740:1920;;;;;;-1:-1:-1;;;6740:1920:88;;;;1594:4:2;7226:15:88;6740:1920;7226:15;;7585:53;;;;;;;1594:4:2;7585:53:88;;;6740:1920;-1:-1:-1;6740:1920:88;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;7565:73;6740:1920;;7565:73;6740:1920;;;;;;;;;;;7565:73;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;1594:4:2;6740:1920:88;;;;;;-1:-1:-1;;;6740:1920:88;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6740:1920:88;;;;;;-1:-1:-1;6740:1920:88;;;;1594:4:2;6740:1920:88;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7565:73;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;7294:80;6740:1920;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;3201:4:5;6740:1920:88;;1594:4:2;6740:1920:88;7585:53;;;;;;1594:4:2;7585:53:88;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;6740:1920;;;1594:4:2;6740:1920:88;;;;;;;1594:4:2;6740:1920:88;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6740:1920:88;;;;;;-1:-1:-1;6740:1920:88;;;;1594:4:2;6740:1920:88;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7484:71;1594:4:2;6740:1920:88;;;;;;7294:80;6740:1920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7504:51;;;;;;1594:4:2;7504:51:88;;;;;;:::i;:::-;;;;6740:1920;;1594:4:2;6740:1920:88;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6740:1920:88;;;;;;-1:-1:-1;6740:1920:88;;;;1594:4:2;6740:1920:88;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7384:90;1594:4:2;6740:1920:88;;;;;;7294:80;6740:1920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7411:63;;;;;;1594:4:2;7411:63:88;;;;;;:::i;:::-;;;;6740:1920;;1594:4:2;6740:1920:88;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6740:1920:88;;;;;;-1:-1:-1;6740:1920:88;;;;1594:4:2;6740:1920:88;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7294:80;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;7294:80;6740:1920;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7315:59;;;;;;1594:4:2;7315:59:88;;;;;;:::i;:::-;;;;6740:1920;;1594:4:2;6740:1920:88;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;;6740:1920:88;;;;;;-1:-1:-1;6740:1920:88;;;;1594:4:2;6740:1920:88;;;;;;;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7206:78;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4:2;6740:1920:88;;1594:4:2;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;7226:58;;;;;;1594:4:2;7226:58:88;;;;;;:::i;:::-;;;;6740:1920;;;;;;;;;-1:-1:-1;;6740:1920:88;;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;","linkReferences":{"test/helpers/SelectorLibrary.sol":{"SelectorLibrary":[{"start":104,"length":20},{"start":317,"length":20},{"start":529,"length":20},{"start":727,"length":20},{"start":927,"length":20}]}}},"deployedBytecode":{"object":"0x6080806040526004908136101561001557600080fd5b600091823560e01c9182631ed7831c1461089a575081633e5e3c231461081b5781633f7286f41461079c57816366d9a9a01461061f57816385226c81146104fc578163916a17c6146102a1578163b5508aa91461016a57508063ba414fa614610145578063e20c9f71146100b65763fa7626d41461009257600080fd5b346100b357806003193601126100b35760ff60209154166040519015158152f35b80fd5b50346100b357806003193601126100b357604051600c80548083529083526020808301937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c792915b828210610125576101218561011581890382610ae6565b6040519182918261091b565b0390f35b83546001600160a01b0316865294850194600193840193909101906100fe565b50346100b357806003193601126100b3576020610160610b08565b6040519015158152f35b82346100b357806003193601126100b35760105461018781610c40565b916101956040519384610ae6565b818352601081528060207f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6728186015b8584106101d957604051806101218982610a3a565b604051859183549160019280841c908481168015610297575b88831081146102835782845288949392918115610267575060011461022f575b50610221816001960382610ae6565b8152019201930192906101c4565b868a52838a20955089905b8082106102505750810183019450610221610212565b86548383018601529585019588949091019061023a565b60ff19168584015250151560051b810183019450610221610212565b50634e487b7160e01b8a5260228d5260248afd5b91607f16916101f2565b82346100b357806003193601126100b3576013546102be81610c40565b906102cc6040519283610ae6565b80825260138352827f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090602084015b83831061030f5760405180610121878261095f565b60405161031b81610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061048e57846001979460029794602097946103a6945491818110610472575b818110610456575b81811061043a575b81811061041e575b818110610402575b8181106103e6575b8181106103cc575b106103b8575b500382610ae6565b838201528152019201920191906102fa565b6001600160e01b031916815286018e61039e565b828a1b6001600160e01b0319168452928901928b01610398565b604083901b6001600160e01b0319168452928901928b01610390565b606083901b6001600160e01b0319168452928901928b01610388565b608083901b6001600160e01b0319168452928901928b01610380565b60a083901b6001600160e01b0319168452928901928b01610378565b60c083901b6001600160e01b0319168452928901928b01610370565b60e083901b6001600160e01b0319168452928901928b01610368565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e0820152019401920191610343565b82346100b357806003193601126100b35760115461051981610c40565b916105276040519384610ae6565b818352601181528060207f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c688186015b85841061056b57604051806101218982610a3a565b604051859183549160019280841c908481168015610615575b888310811461028357828452889493929181156105f957506001146105c1575b506105b3816001960382610ae6565b815201920193019290610556565b868a52838a20955089905b8082106105e257508101830194506105b36105a4565b8654838301860152958501958894909101906105cc565b60ff19168584015250151560051b8101830194506105b36105a4565b91607f1691610584565b82346100b357806003193601126100b35760125461063c81610c40565b9061064a6040519283610ae6565b80825260128352827fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec3444602084015b83831061068d5760405180610121878261095f565b60405161069981610ab4565b82546001600160a01b031681526040516001840180548083529089526020808a20908301918a915b81600784011061072e578460019794600297946020979461071c945491818110610472578181106104565781811061043a5781811061041e57818110610402578181106103e6578181106103cc57106103b857500382610ae6565b83820152815201920192019190610678565b926001610100600892865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e08201520194019201916106c1565b82346100b357806003193601126100b357604051600e80548083529083526020808301937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd92915b8282106107fb576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906107e4565b82346100b357806003193601126100b357604051600f80548083529083526020808301937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80292915b82821061087a576101218561011581890382610ae6565b83546001600160a01b031686529485019460019384019390910190610863565b839034610917578160031936011261091757600d80548083529083526020808301937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb592915b8282106108f7576101218561011581890382610ae6565b83546001600160a01b0316865294850194600193840193909101906108e0565b5080fd5b6020908160408183019282815285518094520193019160005b828110610942575050505090565b83516001600160a01b031685529381019392810192600101610934565b602080820190808352835180925260409283810182858560051b840101960194600080935b86851061099657505050505050505090565b909192939480969798603f198382030186528951826060818885019360018060a01b038151168652015193888382015284518094520192019085905b8082106109f35750505090806001929a019501950193969594929190610984565b82516001600160e01b03191684528a949384019390920191600191909101906109d2565b60005b838110610a2a5750506000910152565b8181015183820152602001610a1a565b602080820190808352835180925260408301928160408460051b8301019501936000915b848310610a6e5750505050505090565b909192939495848080600193603f198682030187528a51610a9a81518092818552858086019101610a17565b601f01601f19160101980196959491909101920190610a5e565b6040810190811067ffffffffffffffff821117610ad057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ad057604052565b6000805460081c60ff1615610b21575460081c60ff1690565b80737109709ecfa91a80626ff3989d68f67f5b1dd12d803b610b4257505090565b60408051602081018381526519985a5b195960d21b8284015291815292935067ffffffffffffffff92606081019084821181831017610c2c57918582610bbc60248397959684976040526080810195630667f9d760e41b8752610bac825180926084850190610a17565b8101036004810184520182610ae6565b51925af1503d15610c24573d908111610c105760405190610be7601f8201601f191660200183610ae6565b81523d82602083013e5b60208180518101031261091757602001519081151582036100b3575090565b634e487b7160e01b82526041600452602482fd5b506060610bf1565b634e487b7160e01b86526041600452602486fd5b67ffffffffffffffff8111610ad05760051b6020019056fea2646970667358221220f7070806381e89593969be680774e1431e5db66d7e39a595ee081b2727e2765364736f6c63430008130033","sourceMap":"6740:1920:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2130:18:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1982:18:8;6740:1920:88;;;;:::i;:::-;;1671:64:2;6740:1920:88;;1671:64:2;;;:::i;:::-;6740:1920:88;;;1982:18:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6740:1920:88;;;;;;;;-1:-1:-1;6740:1920:88;;;;;-1:-1:-1;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6740:1920:88;;;;;-1:-1:-1;6740:1920:88;;;;;;;;;-1:-1:-1;6740:1920:88;;;;-1:-1:-1;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;2899:18:8;6740:1920:88;;;;:::i;:::-;;1671:64:2;6740:1920:88;;1671:64:2;;;:::i;:::-;6740:1920:88;;;2899:18:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;6740:1920:88;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:18:8;6740:1920:88;;;;:::i;:::-;;1671:64:2;6740:1920:88;;1671:64:2;;;:::i;:::-;6740:1920:88;;;2416:18:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6740:1920:88;;;;;;;;-1:-1:-1;6740:1920:88;;;;;-1:-1:-1;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6740:1920:88;;;;;-1:-1:-1;6740:1920:88;;;;;;;;;-1:-1:-1;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;2592:26:8;6740:1920:88;;;;:::i;:::-;;1671:64:2;6740:1920:88;;1671:64:2;;;:::i;:::-;6740:1920:88;;;2592:26:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1671:64:2;;;:::i;:::-;6740:1920:88;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:18:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:16:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2272:16:8;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6740:1920:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6740:1920:88;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;6740:1920:88;;;;;;;;;;;;;;;;;1671:64:2;6740:1920:88;1671:64:2;;;;;;;;;;;6740:1920:88;1671:64:2;:::o;:::-;6740:1920:88;;;1671:64:2;;;;;;;;;;6740:1920:88;;;;;;1671:64:2;;;;;;;;;;;;;:::o;1819:584::-;1873:7;6740:1920:88;;;;;;;;;;;;;;;1896:14:2:o;1869:528::-;1941:25;2946:104;;;1980:374;;2367:19;;;:::o;1980:374::-;6740:1920:88;;;2196:43:2;;;6740:1920:88;;;-1:-1:-1;;;1671:64:2;;;;2196:43;;;6740:1920:88;;-1:-1:-1;1671:64:2;;6740:1920:88;1671:64:2;;;;;;;;;;;;;;;2086:175;1671:64;;;;;;;6740:1920:88;1671:64:2;2086:175;;;6740:1920:88;;;;;;1671:64:2;6740:1920:88;;1671:64:2;;;;;;;:::i;:::-;;;2086:175;;;;;;;;;:::i;:::-;2047:232;;;;-1:-1:-1;1671:64:2;;;;;;;;;;6740:1920:88;;;1671:64:2;6740:1920:88;;;-1:-1:-1;;6740:1920:88;2196:43:2;1671:64;6740:1920:88;1671:64:2;:::i;:::-;;;;;2196:43;1671:64;;;;2196:43;6740:1920:88;;;2312:27:2;;1671:64;;;;2196:43;2312:27;1671:64;6740:1920:88;;;;1671:64:2;;;;2297:42;2367:19;:::o;1671:64::-;-1:-1:-1;;;1671:64:2;;;2086:175;1671:64;;6740:1920:88;1671:64:2;;;6740:1920:88;1671:64:2;;;-1:-1:-1;;;1671:64:2;;;;;;6740:1920:88;1671:64:2;6740:1920:88;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"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\":\"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/IntegrationTestBase.sol\":\"TestSubnetActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/GatewayDiamond.sol\":{\"keccak256\":\"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825\",\"dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/diamond/DiamondCutFacet.sol\":{\"keccak256\":\"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d\",\"dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV\"]},\"src/diamond/DiamondLoupeFacet.sol\":{\"keccak256\":\"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739\",\"dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/GatewayGetterFacet.sol\":{\"keccak256\":\"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1\",\"dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU\"]},\"src/gateway/GatewayManagerFacet.sol\":{\"keccak256\":\"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526\",\"dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH\"]},\"src/gateway/GatewayMessengerFacet.sol\":{\"keccak256\":\"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f\",\"dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4\"]},\"src/gateway/router/BottomUpRouterFacet.sol\":{\"keccak256\":\"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20\",\"dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU\"]},\"src/gateway/router/CheckpointingFacet.sol\":{\"keccak256\":\"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f\",\"dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/IntegrationTestBase.sol\":{\"keccak256\":\"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496\",\"dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT\"]},\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be\",\"dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/mocks/SubnetActorManagerFacetMock.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"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":"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/IntegrationTestBase.sol":"TestSubnetActor"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/GatewayDiamond.sol":{"keccak256":"0x6a8d33788892a10f1c63939f31b4589bbcec3b93dc950d1559bf219e9aba2de3","urls":["bzz-raw://e55ad211fd98793d98ae90fb87a5f40df570eafe3c8b54238b371d4c4b849825","dweb:/ipfs/QmbUUSaebcN9kTWACeAZfqf5G24qEA1LiDKEpKb6wViC3V"],"license":"MIT OR Apache-2.0"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/diamond/DiamondCutFacet.sol":{"keccak256":"0x673f0c594445cda87a9d83c063385ffc2b9a052c2114eb77835a858e17b233a6","urls":["bzz-raw://9034b59b56ce2fdb4326b4cca030d7e5b891c5855d58cd6656b505b5b331985d","dweb:/ipfs/QmaNn4DdN2gNJ62vXDGTMzCmg19fVWpcjpwU3yBEpEX6gV"],"license":"MIT"},"src/diamond/DiamondLoupeFacet.sol":{"keccak256":"0xd04f278684b82e8ba61801f155d283ec47a2a7f71d96844e93b947b2d060eb17","urls":["bzz-raw://9e87865b4ed35ab917403c51f7250e1549ac0fbcef22380f1a0e75243a0f6739","dweb:/ipfs/QmY31Ha1c47x4GHN73FK6nswoVCvXP3B31G7XMTV8HVuak"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayGetterFacet.sol":{"keccak256":"0xa8218cc1a10ff082613c81ecc8bcfe9f8810fc7bde452cb8bbe2dbf0c6a58747","urls":["bzz-raw://d78c0404f5205af20b4b0e9fba19052dcfb6af39fe30f57ff102381f1f9a34d1","dweb:/ipfs/QmVnMbcophGLTp8YjTWenrqmmFBfvacUxjpC4YRwVtRvqU"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayManagerFacet.sol":{"keccak256":"0xc03dc465996ae994330885a6f88d1c2a888ebee4148e0154be5657f2c0e2dd3a","urls":["bzz-raw://69e7c223eec9d24c1ebead4fb4ea50bd0be62a67b9abdde76969027917792526","dweb:/ipfs/QmcLDusRZDkYcG4jPYBSsSZtSaPQiNwibsDpbF6jNjbmCH"],"license":"MIT OR Apache-2.0"},"src/gateway/GatewayMessengerFacet.sol":{"keccak256":"0x606b977a0d798bd3900cf09f44c002ef8e5c661dc819f3da7496f350d5e295b7","urls":["bzz-raw://926cff1f8c86ebea5896e6a3973bbcffc6124cab944120e52cde9dd1d78dd29f","dweb:/ipfs/QmU9k32wFzVrj1QjUFdz7TQZkrRtKqhZeWY5ydPDEGTfB4"],"license":"MIT OR Apache-2.0"},"src/gateway/router/BottomUpRouterFacet.sol":{"keccak256":"0x9a37a388c56b6efd1506334ae97edcad0c37486cf097efca63a4b81b660e21ec","urls":["bzz-raw://6b8bdc76770e803c92d20466e334e1ab2b32391c2fa71020743e93beb5190c20","dweb:/ipfs/QmSTYAcdHyYYKQUCurn2uvcRYWFhnvWWWRgxrfr6nnBGtU"],"license":"MIT OR Apache-2.0"},"src/gateway/router/CheckpointingFacet.sol":{"keccak256":"0x91fe41234bf7d82eca68242dd76a99224bc2adc8994fb9050e2a3b9573b9e870","urls":["bzz-raw://7c4bfbf19f586198cbeaa21b6d5656112429b0863cdc8e3d962b6ab61edda75f","dweb:/ipfs/QmPPdNTSA6ycpVFoKBqYYNn3wAToxudcxbU4Z34hcLpAfo"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/IntegrationTestBase.sol":{"keccak256":"0xe7ffde46f8bcd86b49cd1109dce386aab155c3bd830787b4e363050afe46a692","urls":["bzz-raw://3a2a31de3c2a8a502f19237f11a61553d9efbe5b5ad10b606d4ca82f29654496","dweb:/ipfs/QmYo4deBDHj3qX3Jy2exaZbPQxAxgNz7avxFpGjMmNAyiT"],"license":"MIT OR Apache-2.0"},"test/helpers/SelectorLibrary.sol":{"keccak256":"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd","urls":["bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be","dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorManagerFacetMock.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/IntegrationTestBase.sol","id":55376,"exportedSymbols":{"AddressShouldBeValidator":[37368],"AlreadyRegisteredSubnet":[37370],"BatchAlreadyExists":[37380],"BatchNotCreated":[37388],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"BottomUpRouterFacet":[39601],"CannotConfirmFutureChanges":[37372],"CannotFindSubnet":[37520],"CannotReleaseZero":[37374],"CannotSendCrossMsgToItself":[37376],"CheckpointAlreadyExists":[37378],"CheckpointNotCreated":[37386],"CheckpointingFacet":[39870],"CollateralIsZero":[37390],"ConsensusType":[37359],"CrossMsg":[49974],"CrossMsgHelper":[40781],"DSTest":[3720],"DiamondCutFacet":[36918],"DiamondLoupeFacet":[37355],"DuplicatedGenesisValidator":[37530],"EMPTY_BYTES":[36873],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"FacetCannotBeZero":[37516],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"FilAddress":[1428],"FvmAddress":[49998],"FvmAddressHelper":[40962],"GatewayCannotBeZero":[37400],"GatewayDiamond":[36170],"GatewayGetterFacet":[38317],"GatewayManagerFacet":[38870],"GatewayMessengerFacet":[39235],"IDiamond":[40170],"IPCAddress":[50204],"IntegrationTestBase":[55375],"InvalidActorAddress":[37402],"InvalidBatchEpoch":[37406],"InvalidBatchSource":[37412],"InvalidCheckpointEpoch":[37404],"InvalidCheckpointSource":[37410],"InvalidCollateral":[37416],"InvalidConfigurationNumber":[37418],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgFromSubnet":[37422],"InvalidCrossMsgNonce":[37424],"InvalidCrossMsgValue":[37426],"InvalidFederationPayload":[37528],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidPublicKeyLength":[37442],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"InvalidSignatureErr":[37438],"InvalidSignatureLength":[37440],"InvalidSubmissionPeriod":[37444],"InvalidSubnet":[37446],"InvalidSubnetActor":[37414],"METHOD_SEND":[36879],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NoValidatorsInSubnet":[37452],"NotAllValidatorsHaveLeft":[37454],"NotAuthorized":[37458],"NotEmptySubnetCircSupply":[37460],"NotEnoughBalance":[37462],"NotEnoughBalanceForRewards":[37464],"NotEnoughCollateral":[37466],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotEnoughFundsToRelease":[37472],"NotEnoughGenesisValidators":[37532],"NotEnoughSubnetCircSupply":[37474],"NotEnoughValidatorsInSubnet":[37476],"NotGateway":[37478],"NotOwnerOfPublicKey":[37480],"NotRegisteredSubnet":[37482],"NotStakedBefore":[37484],"NotSystemActor":[37486],"NotValidator":[37490],"OldConfigurationNumber":[37492],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ParentFinality":[49918],"ParentFinalityAlreadyCommitted":[37498],"PermissionMode":[50165],"PostboxNotExist":[37500],"QuorumAlreadyProcessed":[37384],"RegisterSubnetFacet":[52279],"SelectorLibrary":[56263],"SignatureReplay":[37502],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[50887],"SubnetActorManagerFacet":[52151],"SubnetActorManagerFacetMock":[57957],"SubnetAlreadyBootstrapped":[37514],"SubnetAlreadyKilled":[37504],"SubnetGetterFacet":[52517],"SubnetID":[50077],"SubnetIDHelper":[48072],"SubnetNotActive":[37506],"SubnetNotFound":[37508],"SubnetRegistryDiamond":[36853],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398],"Test":[12740],"TestBase":[3780],"TestGatewayActor":[52912],"TestParams":[52683],"TestRegistry":[52747],"TestSubnetActor":[53037],"TestUtils":[57051],"TopDownFinalityFacet":[40071],"UnknownSubnet":[37522],"Validator":[50211],"Vm":[14222],"WithdrawExceedingCollateral":[37510],"WrongGateway":[37518],"XnetMessagingFacet":[40144],"ZeroMembershipWeight":[37512],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:31883:88","nodes":[{"id":52519,"nodeType":"PragmaDirective","src":"46:23:88","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52520,"nodeType":"ImportDirective","src":"71:28:88","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":52521,"nodeType":"ImportDirective","src":"100:36:88","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"forge-std/StdInvariant.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":8471,"symbolAliases":[],"unitAlias":""},{"id":52522,"nodeType":"ImportDirective","src":"137:37:88","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../src/errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37542,"symbolAliases":[],"unitAlias":""},{"id":52525,"nodeType":"ImportDirective","src":"176:72:88","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../src/constants/Constants.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":52523,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"184:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52524,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"197:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52527,"nodeType":"ImportDirective","src":"249:61:88","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":52526,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"257:13:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52529,"nodeType":"ImportDirective","src":"311:56:88","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../src/interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52528,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"319:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52534,"nodeType":"ImportDirective","src":"368:102:88","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../src/structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":52530,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"376:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52531,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"386:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52532,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"406:11:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52533,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"419:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52536,"nodeType":"ImportDirective","src":"471:57:88","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"../src/structs/FvmAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":52535,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"479:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52545,"nodeType":"ImportDirective","src":"529:140:88","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":52537,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"537:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52538,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"547:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52539,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"559:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52540,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"575:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52541,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"591:6:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52542,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"599:12:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52543,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"613:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52544,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"625:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52547,"nodeType":"ImportDirective","src":"670:61:88","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../src/lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":52546,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"678:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52549,"nodeType":"ImportDirective","src":"732:65:88","nodes":[],"absolutePath":"src/lib/FvmAddressHelper.sol","file":"../src/lib/FvmAddressHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40963,"symbolAliases":[{"foreign":{"id":52548,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"740:16:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52551,"nodeType":"ImportDirective","src":"798:61:88","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../src/lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":52550,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"806:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52553,"nodeType":"ImportDirective","src":"860:67:88","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../src/lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":52552,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"868:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52555,"nodeType":"ImportDirective","src":"928:56:88","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":52554,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"936:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52557,"nodeType":"ImportDirective","src":"985:57:88","nodes":[],"absolutePath":"src/GatewayDiamond.sol","file":"../src/GatewayDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36171,"symbolAliases":[{"foreign":{"id":52556,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"993:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52559,"nodeType":"ImportDirective","src":"1043:65:88","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52558,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"1051:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52561,"nodeType":"ImportDirective","src":"1109:73:88","nodes":[],"absolutePath":"src/gateway/GatewayGetterFacet.sol","file":"../src/gateway/GatewayGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38318,"symbolAliases":[{"foreign":{"id":52560,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"1117:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52563,"nodeType":"ImportDirective","src":"1183:79:88","nodes":[],"absolutePath":"src/gateway/GatewayMessengerFacet.sol","file":"../src/gateway/GatewayMessengerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39236,"symbolAliases":[{"foreign":{"id":52562,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"1191:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52565,"nodeType":"ImportDirective","src":"1263:75:88","nodes":[],"absolutePath":"src/gateway/GatewayManagerFacet.sol","file":"../src/gateway/GatewayManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":38871,"symbolAliases":[{"foreign":{"id":52564,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"1271:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52567,"nodeType":"ImportDirective","src":"1340:80:88","nodes":[],"absolutePath":"src/gateway/router/CheckpointingFacet.sol","file":"../src/gateway/router/CheckpointingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39871,"symbolAliases":[{"foreign":{"id":52566,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"1348:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52569,"nodeType":"ImportDirective","src":"1421:80:88","nodes":[],"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","file":"../src/gateway/router/XnetMessagingFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40145,"symbolAliases":[{"foreign":{"id":52568,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"1429:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52571,"nodeType":"ImportDirective","src":"1502:84:88","nodes":[],"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","file":"../src/gateway/router/TopDownFinalityFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":40072,"symbolAliases":[{"foreign":{"id":52570,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"1510:20:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52573,"nodeType":"ImportDirective","src":"1587:82:88","nodes":[],"absolutePath":"src/gateway/router/BottomUpRouterFacet.sol","file":"../src/gateway/router/BottomUpRouterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":39602,"symbolAliases":[{"foreign":{"id":52572,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"1595:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52575,"nodeType":"ImportDirective","src":"1671:84:88","nodes":[],"absolutePath":"test/mocks/SubnetActorManagerFacetMock.sol","file":"./mocks/SubnetActorManagerFacetMock.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57958,"symbolAliases":[{"foreign":{"id":52574,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57957,"src":"1679:27:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52577,"nodeType":"ImportDirective","src":"1756:82:88","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52152,"symbolAliases":[{"foreign":{"id":52576,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"1764:23:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52579,"nodeType":"ImportDirective","src":"1839:80:88","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":52578,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1847:22:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52581,"nodeType":"ImportDirective","src":"1920:71:88","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":52580,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"1928:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52583,"nodeType":"ImportDirective","src":"1992:82:88","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52280,"symbolAliases":[{"foreign":{"id":52582,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52279,"src":"2000:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52585,"nodeType":"ImportDirective","src":"2075:78:88","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":52518,"symbolAliases":[{"foreign":{"id":52584,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52517,"src":"2083:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52587,"nodeType":"ImportDirective","src":"2154:71:88","nodes":[],"absolutePath":"src/diamond/DiamondLoupeFacet.sol","file":"../src/diamond/DiamondLoupeFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":37356,"symbolAliases":[{"foreign":{"id":52586,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"2162:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52589,"nodeType":"ImportDirective","src":"2226:67:88","nodes":[],"absolutePath":"src/diamond/DiamondCutFacet.sol","file":"../src/diamond/DiamondCutFacet.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":52588,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"2234:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52591,"nodeType":"ImportDirective","src":"2294:69:88","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":52590,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"2302:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52593,"nodeType":"ImportDirective","src":"2364:50:88","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"./helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":57052,"symbolAliases":[{"foreign":{"id":52592,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"2372:9:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52595,"nodeType":"ImportDirective","src":"2415:62:88","nodes":[],"absolutePath":"test/helpers/SelectorLibrary.sol","file":"./helpers/SelectorLibrary.sol","nameLocation":"-1:-1:-1","scope":55376,"sourceUnit":56264,"symbolAliases":[{"foreign":{"id":52594,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"2423:15:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52683,"nodeType":"ContractDefinition","src":"2479:1194:88","nodes":[{"id":52602,"nodeType":"VariableDeclaration","src":"2505:44:88","nodes":[],"constant":true,"mutability":"constant","name":"MAX_NONCE","nameLocation":"2521:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52596,"name":"uint64","nodeType":"ElementaryTypeName","src":"2505:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"expression":{"arguments":[{"id":52599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2538:6:88","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52598,"name":"uint64","nodeType":"ElementaryTypeName","src":"2538:6:88","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52597,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2533:4:88","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2533:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2546:3:88","memberName":"max","nodeType":"MemberAccess","src":"2533:16:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52608,"nodeType":"VariableDeclaration","src":"2555:91:88","nodes":[],"constant":true,"mutability":"constant","name":"BLS_ACCOUNT_ADDREESS","nameLocation":"2572:20:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52603,"name":"address","nodeType":"ElementaryTypeName","src":"2555:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307866463030303030303030303030303030303030303030303030303030303030306245656662454566","id":52606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2603:42:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xfF000000000000000000000000000000bEefbEEf"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2595:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52604,"name":"address","nodeType":"ElementaryTypeName","src":"2595:7:88","typeDescriptions":{}}},"id":52607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2595:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52611,"nodeType":"VariableDeclaration","src":"2652:42:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"2668:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52609,"name":"uint64","nodeType":"ElementaryTypeName","src":"2652:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2693:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":52614,"nodeType":"VariableDeclaration","src":"2700:54:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"2717:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52612,"name":"uint256","nodeType":"ElementaryTypeName","src":"2700:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2747:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52617,"nodeType":"VariableDeclaration","src":"2760:47:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"2775:27:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":52615,"name":"uint8","nodeType":"ElementaryTypeName","src":"2760:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":52616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2805:2:88","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"internal"},{"id":52620,"nodeType":"VariableDeclaration","src":"2813:51:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_COLLATERAL_AMOUNT","nameLocation":"2829:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52618,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":52619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2857:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52623,"nodeType":"VariableDeclaration","src":"2870:46:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"2886:25:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52621,"name":"uint64","nodeType":"ElementaryTypeName","src":"2870:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":52622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2914:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":52626,"nodeType":"VariableDeclaration","src":"2922:44:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_NET_ADDR","nameLocation":"2938:16:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52624,"name":"string","nodeType":"ElementaryTypeName","src":"2922:6:88","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6e657441646472","id":52625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2957:9:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_e25538a3ccb2c066881fc641c4dc5d3c74f04a182219c07d716a564b9fcde2b5","typeString":"literal_string \"netAddr\""},"value":"netAddr"},"visibility":"internal"},{"id":52629,"nodeType":"VariableDeclaration","src":"2972:36:88","nodes":[],"constant":true,"mutability":"constant","name":"GENESIS","nameLocation":"2987:7:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52627,"name":"bytes","nodeType":"ElementaryTypeName","src":"2972:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"id":52628,"name":"EMPTY_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36873,"src":"2997:11:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"internal"},{"id":52632,"nodeType":"VariableDeclaration","src":"3014:48:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CROSS_MSG_FEE","nameLocation":"3031:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52630,"name":"uint256","nodeType":"ElementaryTypeName","src":"3014:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3055:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52635,"nodeType":"VariableDeclaration","src":"3068:49:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_RELAYER_REWARD","nameLocation":"3085:22:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52633,"name":"uint256","nodeType":"ElementaryTypeName","src":"3068:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":52634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3110:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"internal"},{"id":52641,"nodeType":"VariableDeclaration","src":"3123:52:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS","nameLocation":"3140:21:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52636,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3130","id":52639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3172:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"id":52638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3164:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52637,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:88","typeDescriptions":{}}},"id":52640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3164:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52647,"nodeType":"VariableDeclaration","src":"3181:54:88","nodes":[],"constant":true,"mutability":"constant","name":"CHILD_NETWORK_ADDRESS_2","nameLocation":"3198:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52642,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3131","id":52645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3232:2:88","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"id":52644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3224:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52643,"name":"address","nodeType":"ElementaryTypeName","src":"3224:7:88","typeDescriptions":{}}},"id":52646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3224:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52652,"nodeType":"VariableDeclaration","src":"3241:57:88","nodes":[],"constant":true,"mutability":"constant","name":"EPOCH_ONE","nameLocation":"3257:9:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52648,"name":"uint64","nodeType":"ElementaryTypeName","src":"3241:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":52649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3269:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":52650,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"3273:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3269:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"id":52655,"nodeType":"VariableDeclaration","src":"3304:50:88","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_VALIDATOR_FUNDS","nameLocation":"3321:23:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52653,"name":"uint256","nodeType":"ElementaryTypeName","src":"3304:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":52654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3347:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"internal"},{"id":52658,"nodeType":"VariableDeclaration","src":"3360:53:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nameLocation":"3376:31:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":52656,"name":"uint16","nodeType":"ElementaryTypeName","src":"3360:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"313030","id":52657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3410:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"internal"},{"id":52661,"nodeType":"VariableDeclaration","src":"3419:38:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"3433:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":52659,"name":"int8","nodeType":"ElementaryTypeName","src":"3419:4:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3132","id":52660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3455:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":52664,"nodeType":"VariableDeclaration","src":"3463:37:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"3479:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52662,"name":"uint64","nodeType":"ElementaryTypeName","src":"3463:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":52663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3497:3:88","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"internal"},{"id":52670,"nodeType":"VariableDeclaration","src":"3506:45:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_ADDRESS","nameLocation":"3523:15:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52665,"name":"address","nodeType":"ElementaryTypeName","src":"3506:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31","id":52668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3549:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":52667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52666,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:88","typeDescriptions":{}}},"id":52669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3541:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52676,"nodeType":"VariableDeclaration","src":"3557:57:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"3574:24:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52671,"name":"address","nodeType":"ElementaryTypeName","src":"3557:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":52674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3609:4:88","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":52673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3601:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52672,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:88","typeDescriptions":{}}},"id":52675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":52682,"nodeType":"VariableDeclaration","src":"3620:50:88","nodes":[],"constant":true,"mutability":"constant","name":"TOPDOWN_VALIDATOR_1","nameLocation":"3637:19:88","scope":52683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52677,"name":"address","nodeType":"ElementaryTypeName","src":"3620:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3132","id":52680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3667:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"}],"id":52679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3659:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52678,"name":"address","nodeType":"ElementaryTypeName","src":"3659:7:88","typeDescriptions":{}}},"id":52681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3659:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestParams","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52683],"name":"TestParams","nameLocation":"2488:10:88","scope":55376,"usedErrors":[]},{"id":52747,"nodeType":"ContractDefinition","src":"3675:824:88","nodes":[{"id":52690,"nodeType":"VariableDeclaration","src":"3723:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetSelectors","nameLocation":"3732:28:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52688,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3723:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52689,"nodeType":"ArrayTypeName","src":"3723:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52693,"nodeType":"VariableDeclaration","src":"3766:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetGetterFacetSelectors","nameLocation":"3775:34:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52691,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52692,"nodeType":"ArrayTypeName","src":"3766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52696,"nodeType":"VariableDeclaration","src":"3815:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerCutterSelectors","nameLocation":"3824:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52694,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3815:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52695,"nodeType":"ArrayTypeName","src":"3815:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52699,"nodeType":"VariableDeclaration","src":"3853:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerLouperSelectors","nameLocation":"3862:23:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52697,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3853:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52698,"nodeType":"ArrayTypeName","src":"3853:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52702,"nodeType":"VariableDeclaration","src":"3892:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryDiamond","nameLocation":"3914:15:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":52701,"nodeType":"UserDefinedTypeName","pathNode":{"id":52700,"name":"SubnetRegistryDiamond","nameLocations":["3892:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"3892:21:88"},"referencedDeclaration":36853,"src":"3892:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"},{"id":52705,"nodeType":"VariableDeclaration","src":"3935:32:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryLouper","nameLocation":"3953:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52704,"nodeType":"UserDefinedTypeName","pathNode":{"id":52703,"name":"DiamondLoupeFacet","nameLocations":["3935:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"3935:17:88"},"referencedDeclaration":37355,"src":"3935:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52708,"nodeType":"VariableDeclaration","src":"3973:30:88","nodes":[],"constant":false,"mutability":"mutable","name":"registryCutter","nameLocation":"3989:14:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52707,"nodeType":"UserDefinedTypeName","pathNode":{"id":52706,"name":"DiamondCutFacet","nameLocations":["3973:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"3973:15:88"},"referencedDeclaration":36918,"src":"3973:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52711,"nodeType":"VariableDeclaration","src":"4009:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetFacet","nameLocation":"4029:19:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":52710,"nodeType":"UserDefinedTypeName","pathNode":{"id":52709,"name":"RegisterSubnetFacet","nameLocations":["4009:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"4009:19:88"},"referencedDeclaration":52279,"src":"4009:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"},{"id":52714,"nodeType":"VariableDeclaration","src":"4054:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"registrySubnetGetterFacet","nameLocation":"4072:25:88","scope":52747,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":52713,"nodeType":"UserDefinedTypeName","pathNode":{"id":52712,"name":"SubnetGetterFacet","nameLocations":["4054:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"4054:17:88"},"referencedDeclaration":52517,"src":"4054:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"},{"id":52746,"nodeType":"FunctionDefinition","src":"4104:393:88","nodes":[],"body":{"id":52745,"nodeType":"Block","src":"4118:379:88","nodes":[],"statements":[{"expression":{"id":52722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52717,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"4128:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":52720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4192:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":52718,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4159:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4175:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4159:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4128:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52723,"nodeType":"ExpressionStatement","src":"4128:86:88"},{"expression":{"id":52729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52724,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"4224:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":52727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4294:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":52725,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4261:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4277:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4261:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4261:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4224:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52730,"nodeType":"ExpressionStatement","src":"4224:90:88"},{"expression":{"id":52736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52731,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"4324:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4383:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52732,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4350:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4366:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4350:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4350:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4324:77:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52737,"nodeType":"ExpressionStatement","src":"4324:77:88"},{"expression":{"id":52743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52738,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"4411:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4470:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52739,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"4437:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4453:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"4437:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"4411:79:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52744,"nodeType":"ExpressionStatement","src":"4411:79:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52715,"nodeType":"ParameterList","parameters":[],"src":"4115:2:88"},"returnParameters":{"id":52716,"nodeType":"ParameterList","parameters":[],"src":"4118:0:88"},"scope":52747,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52684,"name":"Test","nameLocations":["3700:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"3700:4:88"},"id":52685,"nodeType":"InheritanceSpecifier","src":"3700:4:88"},{"baseName":{"id":52686,"name":"TestParams","nameLocations":["3706:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"3706:10:88"},"id":52687,"nodeType":"InheritanceSpecifier","src":"3706:10:88"}],"canonicalName":"TestRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestRegistry","nameLocation":"3684:12:88","scope":55376,"usedErrors":[]},{"id":52912,"nodeType":"ContractDefinition","src":"4501:2237:88","nodes":[{"id":52754,"nodeType":"VariableDeclaration","src":"4553:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacetSelectors","nameLocation":"4562:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52752,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4553:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52753,"nodeType":"ArrayTypeName","src":"4553:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52757,"nodeType":"VariableDeclaration","src":"4597:38:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacetSelectors","nameLocation":"4606:29:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52755,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4597:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52756,"nodeType":"ArrayTypeName","src":"4597:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52760,"nodeType":"VariableDeclaration","src":"4641:40:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacetSelectors","nameLocation":"4650:31:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52758,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4641:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52759,"nodeType":"ArrayTypeName","src":"4641:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52763,"nodeType":"VariableDeclaration","src":"4687:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacetSelectors","nameLocation":"4696:30:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52761,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4687:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52762,"nodeType":"ArrayTypeName","src":"4687:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52766,"nodeType":"VariableDeclaration","src":"4733:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManagerSelectors","nameLocation":"4742:18:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52764,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4733:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52765,"nodeType":"ArrayTypeName","src":"4733:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52769,"nodeType":"VariableDeclaration","src":"4766:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetterSelectors","nameLocation":"4775:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52767,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4766:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52768,"nodeType":"ArrayTypeName","src":"4766:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52772,"nodeType":"VariableDeclaration","src":"4798:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessengerSelectors","nameLocation":"4807:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52770,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4798:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52771,"nodeType":"ArrayTypeName","src":"4798:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52775,"nodeType":"VariableDeclaration","src":"4834:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutterSelectors","nameLocation":"4843:17:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52773,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4834:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52774,"nodeType":"ArrayTypeName","src":"4834:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52778,"nodeType":"VariableDeclaration","src":"4866:25:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLoupeSelectors","nameLocation":"4875:16:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52776,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4866:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52777,"nodeType":"ArrayTypeName","src":"4866:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52781,"nodeType":"VariableDeclaration","src":"4898:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gatewayDiamond","nameLocation":"4913:14:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":52780,"nodeType":"UserDefinedTypeName","pathNode":{"id":52779,"name":"GatewayDiamond","nameLocations":["4898:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"4898:14:88"},"referencedDeclaration":36170,"src":"4898:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"},{"id":52784,"nodeType":"VariableDeclaration","src":"4933:29:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwManager","nameLocation":"4953:9:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":52783,"nodeType":"UserDefinedTypeName","pathNode":{"id":52782,"name":"GatewayManagerFacet","nameLocations":["4933:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"4933:19:88"},"referencedDeclaration":38870,"src":"4933:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"},{"id":52787,"nodeType":"VariableDeclaration","src":"4968:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwGetter","nameLocation":"4987:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":52786,"nodeType":"UserDefinedTypeName","pathNode":{"id":52785,"name":"GatewayGetterFacet","nameLocations":["4968:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"4968:18:88"},"referencedDeclaration":38317,"src":"4968:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"},{"id":52790,"nodeType":"VariableDeclaration","src":"5001:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCheckpointingFacet","nameLocation":"5020:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":52789,"nodeType":"UserDefinedTypeName","pathNode":{"id":52788,"name":"CheckpointingFacet","nameLocations":["5001:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"5001:18:88"},"referencedDeclaration":39870,"src":"5001:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"},{"id":52793,"nodeType":"VariableDeclaration","src":"5046:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwXnetMessagingFacet","nameLocation":"5065:20:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":52792,"nodeType":"UserDefinedTypeName","pathNode":{"id":52791,"name":"XnetMessagingFacet","nameLocations":["5046:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"5046:18:88"},"referencedDeclaration":40144,"src":"5046:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"},{"id":52796,"nodeType":"VariableDeclaration","src":"5091:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwTopDownFinalityFacet","nameLocation":"5112:22:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":52795,"nodeType":"UserDefinedTypeName","pathNode":{"id":52794,"name":"TopDownFinalityFacet","nameLocations":["5091:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"5091:20:88"},"referencedDeclaration":40071,"src":"5091:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"},{"id":52799,"nodeType":"VariableDeclaration","src":"5140:41:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwBottomUpRouterFacet","nameLocation":"5160:21:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":52798,"nodeType":"UserDefinedTypeName","pathNode":{"id":52797,"name":"BottomUpRouterFacet","nameLocations":["5140:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"5140:19:88"},"referencedDeclaration":39601,"src":"5140:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"},{"id":52802,"nodeType":"VariableDeclaration","src":"5187:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwMessenger","nameLocation":"5209:11:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":52801,"nodeType":"UserDefinedTypeName","pathNode":{"id":52800,"name":"GatewayMessengerFacet","nameLocations":["5187:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"5187:21:88"},"referencedDeclaration":39235,"src":"5187:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"},{"id":52805,"nodeType":"VariableDeclaration","src":"5226:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwCutter","nameLocation":"5242:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52804,"nodeType":"UserDefinedTypeName","pathNode":{"id":52803,"name":"DiamondCutFacet","nameLocations":["5226:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"5226:15:88"},"referencedDeclaration":36918,"src":"5226:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52808,"nodeType":"VariableDeclaration","src":"5256:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"gwLouper","nameLocation":"5274:8:88","scope":52912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52807,"nodeType":"UserDefinedTypeName","pathNode":{"id":52806,"name":"DiamondLoupeFacet","nameLocations":["5256:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"5256:17:88"},"referencedDeclaration":37355,"src":"5256:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52875,"nodeType":"FunctionDefinition","src":"5289:835:88","nodes":[],"body":{"id":52874,"nodeType":"Block","src":"5303:821:88","nodes":[],"statements":[{"expression":{"id":52816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52811,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"5313:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":52814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5378:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":52812,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5345:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5361:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5345:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5345:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5313:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52817,"nodeType":"ExpressionStatement","src":"5313:86:88"},{"expression":{"id":52823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52818,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"5409:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":52821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5474:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":52819,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5441:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5457:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5441:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5441:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5409:86:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52824,"nodeType":"ExpressionStatement","src":"5409:86:88"},{"expression":{"id":52830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52825,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"5505:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":52828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5572:22:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":52826,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5539:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5555:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5539:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5539:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5505:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52831,"nodeType":"ExpressionStatement","src":"5505:90:88"},{"expression":{"id":52837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52832,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"5605:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":52835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5671:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":52833,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5638:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5654:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5638:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5638:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5605:88:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52838,"nodeType":"ExpressionStatement","src":"5605:88:88"},{"expression":{"id":52844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52839,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"5704:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":52842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5757:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":52840,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5724:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5740:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5724:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5724:54:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5704:74:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52845,"nodeType":"ExpressionStatement","src":"5704:74:88"},{"expression":{"id":52851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52846,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"5788:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":52849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5842:21:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":52847,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5809:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5825:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5809:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5809:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5788:76:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52852,"nodeType":"ExpressionStatement","src":"5788:76:88"},{"expression":{"id":52858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52853,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"5874:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":52856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5930:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":52854,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5897:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5913:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5897:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5897:57:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5874:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52859,"nodeType":"ExpressionStatement","src":"5874:80:88"},{"expression":{"id":52865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52860,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"5964:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6017:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52861,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"5984:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6000:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"5984:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5984:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"5964:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52866,"nodeType":"ExpressionStatement","src":"5964:71:88"},{"expression":{"id":52872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52867,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"6045:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6097:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52868,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"6064:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6080:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"6064:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6064:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"6045:72:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52873,"nodeType":"ExpressionStatement","src":"6045:72:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52809,"nodeType":"ParameterList","parameters":[],"src":"5300:2:88"},"returnParameters":{"id":52810,"nodeType":"ParameterList","parameters":[],"src":"5303:0:88"},"scope":52912,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52911,"nodeType":"FunctionDefinition","src":"6130:606:88","nodes":[],"body":{"id":52910,"nodeType":"Block","src":"6234:502:88","nodes":[],"statements":[{"assignments":[52885],"declarations":[{"constant":false,"id":52885,"mutability":"mutable","name":"params","nameLocation":"6284:6:88","nodeType":"VariableDeclaration","scope":52910,"src":"6244:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52884,"nodeType":"UserDefinedTypeName","pathNode":{"id":52883,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6244:14:88","6259:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6244:32:88"},"referencedDeclaration":35883,"src":"6244:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":52907,"initialValue":{"arguments":[{"arguments":[{"id":52889,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"6369:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":52893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6407:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6393:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52890,"name":"address","nodeType":"ElementaryTypeName","src":"6397:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52891,"nodeType":"ArrayTypeName","src":"6397:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6393:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":52888,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"6353:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":52895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6363:4:88","6386:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"6353:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":52896,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"6446:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":52897,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"6493:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52898,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"6548:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30","id":52903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6624:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6608:15:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":52900,"nodeType":"UserDefinedTypeName","pathNode":{"id":52899,"name":"Validator","nameLocations":["6612:9:88"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"6612:9:88"},"referencedDeclaration":50211,"src":"6612:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":52901,"nodeType":"ArrayTypeName","src":"6612:11:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":52904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6608:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},{"id":52905,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"6663:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":52886,"name":"GatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36170,"src":"6293:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayDiamond_$36170_$","typeString":"type(contract GatewayDiamond)"}},"id":52887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6308:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35883,"src":"6293:32:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35883_storage_ptr_$","typeString":"type(struct GatewayDiamond.ConstructorParams storage pointer)"}},"id":52906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6340:11:88","6425:19:88","6485:6:88","6528:18:88","6589:17:88","6640:21:88"],"names":["networkName","bottomUpCheckPeriod","msgFee","majorityPercentage","genesisValidators","activeValidatorsLimit"],"nodeType":"FunctionCall","src":"6293:412:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"6244:461:88"},{"expression":{"id":52908,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52885,"src":"6723:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"functionReturnParameters":52880,"id":52909,"nodeType":"Return","src":"6716:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultGatewayParams","nameLocation":"6139:20:88","parameters":{"id":52876,"nodeType":"ParameterList","parameters":[],"src":"6159:2:88"},"returnParameters":{"id":52880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52911,"src":"6193:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":52878,"nodeType":"UserDefinedTypeName","pathNode":{"id":52877,"name":"GatewayDiamond.ConstructorParams","nameLocations":["6193:14:88","6208:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"6193:32:88"},"referencedDeclaration":35883,"src":"6193:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"6192:41:88"},"scope":52912,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52748,"name":"Test","nameLocations":["4530:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"4530:4:88"},"id":52749,"nodeType":"InheritanceSpecifier","src":"4530:4:88"},{"baseName":{"id":52750,"name":"TestParams","nameLocations":["4536:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"4536:10:88"},"id":52751,"nodeType":"InheritanceSpecifier","src":"4536:10:88"}],"canonicalName":"TestGatewayActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52912,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestGatewayActor","nameLocation":"4510:16:88","scope":55376,"usedErrors":[]},{"id":53037,"nodeType":"ContractDefinition","src":"6740:1920:88","nodes":[{"id":52919,"nodeType":"VariableDeclaration","src":"6791:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetterSelectors","nameLocation":"6800:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52917,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6791:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52918,"nodeType":"ArrayTypeName","src":"6791:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52922,"nodeType":"VariableDeclaration","src":"6823:27:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerSelectors","nameLocation":"6832:18:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52920,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6823:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52921,"nodeType":"ArrayTypeName","src":"6823:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52925,"nodeType":"VariableDeclaration","src":"6856:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManagerMockedSelectors","nameLocation":"6865:24:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52923,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6856:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52924,"nodeType":"ArrayTypeName","src":"6856:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52928,"nodeType":"VariableDeclaration","src":"6895:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutterSelectors","nameLocation":"6904:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52926,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6895:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52927,"nodeType":"ArrayTypeName","src":"6895:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52931,"nodeType":"VariableDeclaration","src":"6927:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouperSelectors","nameLocation":"6936:17:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52929,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6927:6:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52930,"nodeType":"ArrayTypeName","src":"6927:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"id":52934,"nodeType":"VariableDeclaration","src":"6960:28:88","nodes":[],"constant":false,"mutability":"mutable","name":"saDiamond","nameLocation":"6979:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":52933,"nodeType":"UserDefinedTypeName","pathNode":{"id":52932,"name":"SubnetActorDiamond","nameLocations":["6960:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"6960:18:88"},"referencedDeclaration":36615,"src":"6960:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"},{"id":52937,"nodeType":"VariableDeclaration","src":"6994:33:88","nodes":[],"constant":false,"mutability":"mutable","name":"saManager","nameLocation":"7018:9:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":52936,"nodeType":"UserDefinedTypeName","pathNode":{"id":52935,"name":"SubnetActorManagerFacet","nameLocations":["6994:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"6994:23:88"},"referencedDeclaration":52151,"src":"6994:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"},{"id":52940,"nodeType":"VariableDeclaration","src":"7033:43:88","nodes":[],"constant":false,"mutability":"mutable","name":"saMockedManager","nameLocation":"7061:15:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":52939,"nodeType":"UserDefinedTypeName","pathNode":{"id":52938,"name":"SubnetActorManagerFacetMock","nameLocations":["7033:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"7033:27:88"},"referencedDeclaration":57957,"src":"7033:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"},{"id":52943,"nodeType":"VariableDeclaration","src":"7082:31:88","nodes":[],"constant":false,"mutability":"mutable","name":"saGetter","nameLocation":"7105:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":52942,"nodeType":"UserDefinedTypeName","pathNode":{"id":52941,"name":"SubnetActorGetterFacet","nameLocations":["7082:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"7082:22:88"},"referencedDeclaration":50887,"src":"7082:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"},{"id":52946,"nodeType":"VariableDeclaration","src":"7119:24:88","nodes":[],"constant":false,"mutability":"mutable","name":"saCutter","nameLocation":"7135:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":52945,"nodeType":"UserDefinedTypeName","pathNode":{"id":52944,"name":"DiamondCutFacet","nameLocations":["7119:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"7119:15:88"},"referencedDeclaration":36918,"src":"7119:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"},{"id":52949,"nodeType":"VariableDeclaration","src":"7149:26:88","nodes":[],"constant":false,"mutability":"mutable","name":"saLouper","nameLocation":"7167:8:88","scope":53037,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":52948,"nodeType":"UserDefinedTypeName","pathNode":{"id":52947,"name":"DiamondLoupeFacet","nameLocations":["7149:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"7149:17:88"},"referencedDeclaration":37355,"src":"7149:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"},{"id":52988,"nodeType":"FunctionDefinition","src":"7182:463:88","nodes":[],"body":{"id":52987,"nodeType":"Block","src":"7196:449:88","nodes":[],"statements":[{"expression":{"id":52957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52952,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"7206:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":52955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7259:24:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":52953,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7226:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7242:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7226:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7226:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7206:78:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52958,"nodeType":"ExpressionStatement","src":"7206:78:88"},{"expression":{"id":52964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52959,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"7294:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":52962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7348:25:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":52960,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7315:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7331:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7315:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7315:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7294:80:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52965,"nodeType":"ExpressionStatement","src":"7294:80:88"},{"expression":{"id":52971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52966,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"7384:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":52969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7444:29:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":52967,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7411:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7427:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7411:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7411:63:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7384:90:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52972,"nodeType":"ExpressionStatement","src":"7384:90:88"},{"expression":{"id":52978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52973,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"7484:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":52976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7537:17:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":52974,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7504:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7520:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7504:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7504:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7484:71:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52979,"nodeType":"ExpressionStatement","src":"7484:71:88"},{"expression":{"id":52985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52980,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"7565:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":52983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7618:19:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":52981,"name":"SelectorLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"7585:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SelectorLibrary_$56263_$","typeString":"type(library SelectorLibrary)"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7601:16:88","memberName":"resolveSelectors","nodeType":"MemberAccess","referencedDeclaration":56262,"src":"7585:32:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_string_memory_ptr_$returns$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"function (string memory) pure returns (bytes4[] memory)"}},"id":52984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"7565:73:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52986,"nodeType":"ExpressionStatement","src":"7565:73:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52950,"nodeType":"ParameterList","parameters":[],"src":"7193:2:88"},"returnParameters":{"id":52951,"nodeType":"ParameterList","parameters":[],"src":"7196:0:88"},"scope":53037,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53036,"nodeType":"FunctionDefinition","src":"7651:1007:88","nodes":[],"body":{"id":53035,"nodeType":"Block","src":"7798:860:88","nodes":[],"statements":[{"assignments":[52998],"declarations":[{"constant":false,"id":52998,"mutability":"mutable","name":"native","nameLocation":"7828:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7808:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":52997,"nodeType":"UserDefinedTypeName","pathNode":{"id":52996,"name":"SupplySource","nameLocations":["7808:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"7808:12:88"},"referencedDeclaration":50226,"src":"7808:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":53002,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52999,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"7837:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7856:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"7837:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7837:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"VariableDeclarationStatement","src":"7808:56:88"},{"assignments":[53007],"declarations":[{"constant":false,"id":53007,"mutability":"mutable","name":"params","nameLocation":"7918:6:88","nodeType":"VariableDeclaration","scope":53035,"src":"7874:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53006,"nodeType":"UserDefinedTypeName","pathNode":{"id":53005,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7874:18:88","7893:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7874:36:88"},"referencedDeclaration":36253,"src":"7874:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53032,"initialValue":{"arguments":[{"arguments":[{"id":53011,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"8004:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8042:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8028:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53012,"name":"address","nodeType":"ElementaryTypeName","src":"8032:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53013,"nodeType":"ArrayTypeName","src":"8032:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8028:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53010,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"7988:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7998:4:88","8021:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"7988:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53018,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52990,"src":"8076:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":53019,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"8103:13:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":53020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8117:10:88","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"8103:24:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53021,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"8166:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53022,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52611,"src":"8220:22:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53023,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52623,"src":"8277:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53024,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52617,"src":"8336:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53025,"name":"DEFAULT_ACTIVE_VALIDATORS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52658,"src":"8400:31:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":53026,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52661,"src":"8457:19:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"id":53027,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"8506:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":53028,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"8557:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8572:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"8557:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53030,"name":"native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52998,"src":"8610:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53008,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"7927:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7946:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"7927:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7978:8:88","8060:14:88","8092:9:88","8141:23:88","8205:13:88","8256:19:88","8316:18:88","8377:21:88","8445:10:88","8490:14:88","8541:14:88","8596:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","minCrossMsgFee","permissionMode","supplySource"],"nodeType":"FunctionCall","src":"7927:700:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7874:753:88"},{"expression":{"id":53033,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53007,"src":"8645:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"functionReturnParameters":52995,"id":53034,"nodeType":"Return","src":"8638:13:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"defaultSubnetActorParamsWithGateway","nameLocation":"7660:35:88","parameters":{"id":52991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52990,"mutability":"mutable","name":"gw","nameLocation":"7713:2:88","nodeType":"VariableDeclaration","scope":53036,"src":"7705:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52989,"name":"address","nodeType":"ElementaryTypeName","src":"7705:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7695:26:88"},"returnParameters":{"id":52995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53036,"src":"7753:43:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52993,"nodeType":"UserDefinedTypeName","pathNode":{"id":52992,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["7753:18:88","7772:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"7753:36:88"},"referencedDeclaration":36253,"src":"7753:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"7752:45:88"},"scope":53037,"stateMutability":"pure","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":52913,"name":"Test","nameLocations":["6768:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"6768:4:88"},"id":52914,"nodeType":"InheritanceSpecifier","src":"6768:4:88"},{"baseName":{"id":52915,"name":"TestParams","nameLocations":["6774:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"6774:10:88"},"id":52916,"nodeType":"InheritanceSpecifier","src":"6774:10:88"}],"canonicalName":"TestSubnetActor","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53037,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"TestSubnetActor","nameLocation":"6749:15:88","scope":55376,"usedErrors":[]},{"id":55375,"nodeType":"ContractDefinition","src":"8662:23266:88","nodes":[{"id":53051,"nodeType":"UsingForDirective","src":"8766:34:88","nodes":[],"global":false,"libraryName":{"id":53048,"name":"SubnetIDHelper","nameLocations":["8772:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"8772:14:88"},"typeName":{"id":53050,"nodeType":"UserDefinedTypeName","pathNode":{"id":53049,"name":"SubnetID","nameLocations":["8791:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"8791:8:88"},"referencedDeclaration":50077,"src":"8791:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":53055,"nodeType":"UsingForDirective","src":"8805:42:88","nodes":[],"global":false,"libraryName":{"id":53052,"name":"SupplySourceHelper","nameLocations":["8811:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"8811:18:88"},"typeName":{"id":53054,"nodeType":"UserDefinedTypeName","pathNode":{"id":53053,"name":"SupplySource","nameLocations":["8834:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"8834:12:88"},"referencedDeclaration":50226,"src":"8834:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":53059,"nodeType":"UsingForDirective","src":"8852:34:88","nodes":[],"global":false,"libraryName":{"id":53056,"name":"CrossMsgHelper","nameLocations":["8858:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"8858:14:88"},"typeName":{"id":53058,"nodeType":"UserDefinedTypeName","pathNode":{"id":53057,"name":"CrossMsg","nameLocations":["8877:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"8877:8:88"},"referencedDeclaration":49974,"src":"8877:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":53063,"nodeType":"UsingForDirective","src":"8891:40:88","nodes":[],"global":false,"libraryName":{"id":53060,"name":"StorableMsgHelper","nameLocations":["8897:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"8897:17:88"},"typeName":{"id":53062,"nodeType":"UserDefinedTypeName","pathNode":{"id":53061,"name":"StorableMsg","nameLocations":["8919:11:88"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"8919:11:88"},"referencedDeclaration":49991,"src":"8919:11:88","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":53067,"nodeType":"UsingForDirective","src":"8936:38:88","nodes":[],"global":false,"libraryName":{"id":53064,"name":"FvmAddressHelper","nameLocations":["8942:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":40962,"src":"8942:16:88"},"typeName":{"id":53066,"nodeType":"UserDefinedTypeName","pathNode":{"id":53065,"name":"FvmAddress","nameLocations":["8963:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"8963:10:88"},"referencedDeclaration":49998,"src":"8963:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}}},{"id":53071,"nodeType":"EventDefinition","src":"8980:67:88","nodes":[],"anonymous":false,"eventSelector":"8c1470d2f964ef9f70cb0019542021d2f3a29bce683776e0f643c2f77fa37bc1","name":"SubnetRegistryCreated","nameLocation":"8986:21:88","parameters":{"id":53070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53069,"indexed":true,"mutability":"mutable","name":"subnetRegistryAddress","nameLocation":"9024:21:88","nodeType":"VariableDeclaration","scope":53071,"src":"9008:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53068,"name":"address","nodeType":"ElementaryTypeName","src":"9008:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9007:39:88"}},{"id":53075,"nodeType":"FunctionDefinition","src":"9053:16:88","nodes":[],"body":{"id":53074,"nodeType":"Block","src":"9067:2:88","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53072,"nodeType":"ParameterList","parameters":[],"src":"9064:2:88"},"returnParameters":{"id":53073,"nodeType":"ParameterList","parameters":[],"src":"9067:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53250,"nodeType":"FunctionDefinition","src":"9075:1529:88","nodes":[],"body":{"id":53249,"nodeType":"Block","src":"9107:1497:88","nodes":[],"statements":[{"assignments":[53082],"declarations":[{"constant":false,"id":53082,"mutability":"mutable","name":"path","nameLocation":"9134:4:88","nodeType":"VariableDeclaration","scope":53249,"src":"9117:21:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":53080,"name":"address","nodeType":"ElementaryTypeName","src":"9117:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53081,"nodeType":"ArrayTypeName","src":"9117:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":53088,"initialValue":{"arguments":[{"hexValue":"31","id":53086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9155:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9141:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53083,"name":"address","nodeType":"ElementaryTypeName","src":"9145:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53084,"nodeType":"ArrayTypeName","src":"9145:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9141:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9117:40:88"},{"expression":{"id":53093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53089,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53082,"src":"9167:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":53091,"indexExpression":{"hexValue":"30","id":53090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9172:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9167:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53092,"name":"ROOTNET_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"9177:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9167:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53094,"nodeType":"ExpressionStatement","src":"9167:25:88"},{"assignments":[53099],"declarations":[{"constant":false,"id":53099,"mutability":"mutable","name":"gwConstructorParams","nameLocation":"9285:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"9245:59:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53098,"nodeType":"UserDefinedTypeName","pathNode":{"id":53097,"name":"GatewayDiamond.ConstructorParams","nameLocations":["9245:14:88","9260:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"9245:32:88"},"referencedDeclaration":35883,"src":"9245:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53102,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53100,"name":"defaultGatewayParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52911,"src":"9307:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ConstructorParams_$35883_memory_ptr_$","typeString":"function () pure returns (struct GatewayDiamond.ConstructorParams memory)"}},"id":53101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9307:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"9245:84:88"},{"expression":{"id":53107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53103,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9339:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53105,"name":"gwConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53099,"src":"9377:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53104,"name":"createGatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53509,"src":"9356:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"}},"id":53106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:41:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"9339:58:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53108,"nodeType":"ExpressionStatement","src":"9339:58:88"},{"expression":{"id":53116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53109,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"9408:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53113,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9446:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9438:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53111,"name":"address","nodeType":"ElementaryTypeName","src":"9438:7:88","typeDescriptions":{}}},"id":53114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9438:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53110,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"9419:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":53115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9419:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"9408:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":53117,"nodeType":"ExpressionStatement","src":"9408:54:88"},{"expression":{"id":53125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53118,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"9472:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53122,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9512:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9504:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53120,"name":"address","nodeType":"ElementaryTypeName","src":"9504:7:88","typeDescriptions":{}}},"id":53123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9504:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53119,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"9484:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":53124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9484:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"9472:56:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":53126,"nodeType":"ExpressionStatement","src":"9472:56:88"},{"expression":{"id":53134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53127,"name":"gwCheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52790,"src":"9538:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53131,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9588:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9580:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53129,"name":"address","nodeType":"ElementaryTypeName","src":"9580:7:88","typeDescriptions":{}}},"id":53132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9580:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53128,"name":"CheckpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39870,"src":"9561:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CheckpointingFacet_$39870_$","typeString":"type(contract CheckpointingFacet)"}},"id":53133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9561:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"src":"9538:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"id":53135,"nodeType":"ExpressionStatement","src":"9538:66:88"},{"expression":{"id":53143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53136,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"9614:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53140,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9664:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9656:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53138,"name":"address","nodeType":"ElementaryTypeName","src":"9656:7:88","typeDescriptions":{}}},"id":53141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9656:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53137,"name":"XnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40144,"src":"9637:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"type(contract XnetMessagingFacet)"}},"id":53142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9637:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"src":"9614:66:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":53144,"nodeType":"ExpressionStatement","src":"9614:66:88"},{"expression":{"id":53152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53145,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"9690:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53149,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9744:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9736:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53147,"name":"address","nodeType":"ElementaryTypeName","src":"9736:7:88","typeDescriptions":{}}},"id":53150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9736:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53146,"name":"TopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40071,"src":"9715:20:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"type(contract TopDownFinalityFacet)"}},"id":53151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9715:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"src":"9690:70:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":53153,"nodeType":"ExpressionStatement","src":"9690:70:88"},{"expression":{"id":53161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53154,"name":"gwBottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52799,"src":"9770:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53158,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9822:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9814:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53156,"name":"address","nodeType":"ElementaryTypeName","src":"9814:7:88","typeDescriptions":{}}},"id":53159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9814:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53155,"name":"BottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39601,"src":"9794:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"type(contract BottomUpRouterFacet)"}},"id":53160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9794:44:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"src":"9770:68:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"id":53162,"nodeType":"ExpressionStatement","src":"9770:68:88"},{"expression":{"id":53170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53163,"name":"gwMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52802,"src":"9848:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53167,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9892:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9884:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53165,"name":"address","nodeType":"ElementaryTypeName","src":"9884:7:88","typeDescriptions":{}}},"id":53168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9884:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53164,"name":"GatewayMessengerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39235,"src":"9862:21:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"type(contract GatewayMessengerFacet)"}},"id":53169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9862:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"src":"9848:60:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"id":53171,"nodeType":"ExpressionStatement","src":"9848:60:88"},{"expression":{"id":53179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53172,"name":"gwLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52808,"src":"9918:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53176,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"9955:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9947:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53174,"name":"address","nodeType":"ElementaryTypeName","src":"9947:7:88","typeDescriptions":{}}},"id":53177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9947:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53173,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"9929:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9929:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"9918:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53180,"nodeType":"ExpressionStatement","src":"9918:53:88"},{"expression":{"id":53188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53181,"name":"gwCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52805,"src":"9981:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53185,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10016:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53183,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:88","typeDescriptions":{}}},"id":53186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53182,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"9992:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9992:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"9981:51:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53189,"nodeType":"ExpressionStatement","src":"9981:51:88"},{"assignments":[53194],"declarations":[{"constant":false,"id":53194,"mutability":"mutable","name":"saConstructorParams","nameLocation":"10141:19:88","nodeType":"VariableDeclaration","scope":53249,"src":"10097:63:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53193,"nodeType":"UserDefinedTypeName","pathNode":{"id":53192,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["10097:18:88","10116:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"10097:36:88"},"referencedDeclaration":36253,"src":"10097:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":53201,"initialValue":{"arguments":[{"arguments":[{"id":53198,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"10220:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":53197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10212:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53196,"name":"address","nodeType":"ElementaryTypeName","src":"10212:7:88","typeDescriptions":{}}},"id":53199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10212:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53195,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"10163:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":53200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10163:82:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"10097:148:88"},{"expression":{"id":53206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53202,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10256:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53204,"name":"saConstructorParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53194,"src":"10286:19:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53203,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53710,"src":"10268:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10268:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"10256:50:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53207,"nodeType":"ExpressionStatement","src":"10256:50:88"},{"expression":{"id":53215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53208,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"10316:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53212,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10360:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10352:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53210,"name":"address","nodeType":"ElementaryTypeName","src":"10352:7:88","typeDescriptions":{}}},"id":53213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10352:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53209,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"10328:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10328:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"10316:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53216,"nodeType":"ExpressionStatement","src":"10316:55:88"},{"expression":{"id":53224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53217,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"10381:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53221,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10423:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10415:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53219,"name":"address","nodeType":"ElementaryTypeName","src":"10415:7:88","typeDescriptions":{}}},"id":53222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10415:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53218,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"10392:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10392:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"10381:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53225,"nodeType":"ExpressionStatement","src":"10381:53:88"},{"expression":{"id":53233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53226,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"10444:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53230,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10481:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10473:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53228,"name":"address","nodeType":"ElementaryTypeName","src":"10473:7:88","typeDescriptions":{}}},"id":53231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10473:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53227,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"10455:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10455:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"10444:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53234,"nodeType":"ExpressionStatement","src":"10444:48:88"},{"expression":{"id":53242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53235,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"10502:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53239,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"10537:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10529:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53237,"name":"address","nodeType":"ElementaryTypeName","src":"10529:7:88","typeDescriptions":{}}},"id":53240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10529:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53236,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"10513:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10513:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"10502:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53243,"nodeType":"ExpressionStatement","src":"10502:46:88"},{"expression":{"arguments":[{"id":53245,"name":"TOPDOWN_VALIDATOR_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52682,"src":"10572:19:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":53246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10593:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53244,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"10559:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10559:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53248,"nodeType":"ExpressionStatement","src":"10559:38:88"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"9084:5:88","parameters":{"id":53076,"nodeType":"ParameterList","parameters":[],"src":"9089:2:88"},"returnParameters":{"id":53077,"nodeType":"ParameterList","parameters":[],"src":"9107:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":53509,"nodeType":"FunctionDefinition","src":"10610:3185:88","nodes":[],"body":{"id":53508,"nodeType":"Block","src":"10720:3075:88","nodes":[],"statements":[{"assignments":[53261],"declarations":[{"constant":false,"id":53261,"mutability":"mutable","name":"checkpointingFacet","nameLocation":"10749:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10730:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"},"typeName":{"id":53260,"nodeType":"UserDefinedTypeName","pathNode":{"id":53259,"name":"CheckpointingFacet","nameLocations":["10730:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10730:18:88"},"referencedDeclaration":39870,"src":"10730:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"visibility":"internal"}],"id":53266,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10770:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CheckpointingFacet_$39870_$","typeString":"function () returns (contract CheckpointingFacet)"},"typeName":{"id":53263,"nodeType":"UserDefinedTypeName","pathNode":{"id":53262,"name":"CheckpointingFacet","nameLocations":["10774:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":39870,"src":"10774:18:88"},"referencedDeclaration":39870,"src":"10774:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}},"id":53265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10770:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10730:64:88"},{"assignments":[53269],"declarations":[{"constant":false,"id":53269,"mutability":"mutable","name":"xnetMessagingFacet","nameLocation":"10823:18:88","nodeType":"VariableDeclaration","scope":53508,"src":"10804:37:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"},"typeName":{"id":53268,"nodeType":"UserDefinedTypeName","pathNode":{"id":53267,"name":"XnetMessagingFacet","nameLocations":["10804:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10804:18:88"},"referencedDeclaration":40144,"src":"10804:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"visibility":"internal"}],"id":53274,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10844:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_XnetMessagingFacet_$40144_$","typeString":"function () returns (contract XnetMessagingFacet)"},"typeName":{"id":53271,"nodeType":"UserDefinedTypeName","pathNode":{"id":53270,"name":"XnetMessagingFacet","nameLocations":["10848:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":40144,"src":"10848:18:88"},"referencedDeclaration":40144,"src":"10848:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10844:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"nodeType":"VariableDeclarationStatement","src":"10804:64:88"},{"assignments":[53277],"declarations":[{"constant":false,"id":53277,"mutability":"mutable","name":"topDownFinalityFacet","nameLocation":"10899:20:88","nodeType":"VariableDeclaration","scope":53508,"src":"10878:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"},"typeName":{"id":53276,"nodeType":"UserDefinedTypeName","pathNode":{"id":53275,"name":"TopDownFinalityFacet","nameLocations":["10878:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10878:20:88"},"referencedDeclaration":40071,"src":"10878:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"visibility":"internal"}],"id":53282,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"10922:24:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TopDownFinalityFacet_$40071_$","typeString":"function () returns (contract TopDownFinalityFacet)"},"typeName":{"id":53279,"nodeType":"UserDefinedTypeName","pathNode":{"id":53278,"name":"TopDownFinalityFacet","nameLocations":["10926:20:88"],"nodeType":"IdentifierPath","referencedDeclaration":40071,"src":"10926:20:88"},"referencedDeclaration":40071,"src":"10926:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10922:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"nodeType":"VariableDeclarationStatement","src":"10878:70:88"},{"assignments":[53285],"declarations":[{"constant":false,"id":53285,"mutability":"mutable","name":"bottomUpRouterFacet","nameLocation":"10978:19:88","nodeType":"VariableDeclaration","scope":53508,"src":"10958:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"},"typeName":{"id":53284,"nodeType":"UserDefinedTypeName","pathNode":{"id":53283,"name":"BottomUpRouterFacet","nameLocations":["10958:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"10958:19:88"},"referencedDeclaration":39601,"src":"10958:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"visibility":"internal"}],"id":53290,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11000:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_BottomUpRouterFacet_$39601_$","typeString":"function () returns (contract BottomUpRouterFacet)"},"typeName":{"id":53287,"nodeType":"UserDefinedTypeName","pathNode":{"id":53286,"name":"BottomUpRouterFacet","nameLocations":["11004:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":39601,"src":"11004:19:88"},"referencedDeclaration":39601,"src":"11004:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}},"id":53289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11000:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}},"nodeType":"VariableDeclarationStatement","src":"10958:67:88"},{"assignments":[53293],"declarations":[{"constant":false,"id":53293,"mutability":"mutable","name":"manager","nameLocation":"11056:7:88","nodeType":"VariableDeclaration","scope":53508,"src":"11036:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":53292,"nodeType":"UserDefinedTypeName","pathNode":{"id":53291,"name":"GatewayManagerFacet","nameLocations":["11036:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11036:19:88"},"referencedDeclaration":38870,"src":"11036:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":53298,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11066:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"function () returns (contract GatewayManagerFacet)"},"typeName":{"id":53295,"nodeType":"UserDefinedTypeName","pathNode":{"id":53294,"name":"GatewayManagerFacet","nameLocations":["11070:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"11070:19:88"},"referencedDeclaration":38870,"src":"11070:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}},"id":53297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11066:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11036:55:88"},{"assignments":[53301],"declarations":[{"constant":false,"id":53301,"mutability":"mutable","name":"getter","nameLocation":"11120:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11101:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"},"typeName":{"id":53300,"nodeType":"UserDefinedTypeName","pathNode":{"id":53299,"name":"GatewayGetterFacet","nameLocations":["11101:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11101:18:88"},"referencedDeclaration":38317,"src":"11101:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"visibility":"internal"}],"id":53306,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11129:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"function () returns (contract GatewayGetterFacet)"},"typeName":{"id":53303,"nodeType":"UserDefinedTypeName","pathNode":{"id":53302,"name":"GatewayGetterFacet","nameLocations":["11133:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":38317,"src":"11133:18:88"},"referencedDeclaration":38317,"src":"11133:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}},"id":53305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"11101:52:88"},{"assignments":[53309],"declarations":[{"constant":false,"id":53309,"mutability":"mutable","name":"messenger","nameLocation":"11185:9:88","nodeType":"VariableDeclaration","scope":53508,"src":"11163:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"},"typeName":{"id":53308,"nodeType":"UserDefinedTypeName","pathNode":{"id":53307,"name":"GatewayMessengerFacet","nameLocations":["11163:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11163:21:88"},"referencedDeclaration":39235,"src":"11163:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"visibility":"internal"}],"id":53314,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11197:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatewayMessengerFacet_$39235_$","typeString":"function () returns (contract GatewayMessengerFacet)"},"typeName":{"id":53311,"nodeType":"UserDefinedTypeName","pathNode":{"id":53310,"name":"GatewayMessengerFacet","nameLocations":["11201:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":39235,"src":"11201:21:88"},"referencedDeclaration":39235,"src":"11201:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}},"id":53313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11197:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}},"nodeType":"VariableDeclarationStatement","src":"11163:61:88"},{"assignments":[53317],"declarations":[{"constant":false,"id":53317,"mutability":"mutable","name":"cutter","nameLocation":"11250:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11234:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53316,"nodeType":"UserDefinedTypeName","pathNode":{"id":53315,"name":"DiamondCutFacet","nameLocations":["11234:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11234:15:88"},"referencedDeclaration":36918,"src":"11234:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53322,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11259:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53319,"nodeType":"UserDefinedTypeName","pathNode":{"id":53318,"name":"DiamondCutFacet","nameLocations":["11263:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"11263:15:88"},"referencedDeclaration":36918,"src":"11263:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11259:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"11234:46:88"},{"assignments":[53325],"declarations":[{"constant":false,"id":53325,"mutability":"mutable","name":"louper","nameLocation":"11308:6:88","nodeType":"VariableDeclaration","scope":53508,"src":"11290:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53324,"nodeType":"UserDefinedTypeName","pathNode":{"id":53323,"name":"DiamondLoupeFacet","nameLocations":["11290:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11290:17:88"},"referencedDeclaration":37355,"src":"11290:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53330,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"11317:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53327,"nodeType":"UserDefinedTypeName","pathNode":{"id":53326,"name":"DiamondLoupeFacet","nameLocations":["11321:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"11321:17:88"},"referencedDeclaration":37355,"src":"11321:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11317:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"11290:50:88"},{"assignments":[53336],"declarations":[{"constant":false,"id":53336,"mutability":"mutable","name":"gwDiamondCut","nameLocation":"11378:12:88","nodeType":"VariableDeclaration","scope":53508,"src":"11351:39:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53334,"nodeType":"UserDefinedTypeName","pathNode":{"id":53333,"name":"IDiamond.FacetCut","nameLocations":["11351:8:88","11360:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11351:17:88"},"referencedDeclaration":40159,"src":"11351:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53335,"nodeType":"ArrayTypeName","src":"11351:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53343,"initialValue":{"arguments":[{"hexValue":"39","id":53341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11417:1:88","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":53340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11393:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53338,"nodeType":"UserDefinedTypeName","pathNode":{"id":53337,"name":"IDiamond.FacetCut","nameLocations":["11397:8:88","11406:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"11397:17:88"},"referencedDeclaration":40159,"src":"11397:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53339,"nodeType":"ArrayTypeName","src":"11397:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11393:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11351:68:88"},{"expression":{"id":53359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53344,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11430:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53346,"indexExpression":{"hexValue":"30","id":53345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11443:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11430:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53351,"name":"checkpointingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53261,"src":"11520:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CheckpointingFacet_$39870","typeString":"contract CheckpointingFacet"}],"id":53350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11512:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53349,"name":"address","nodeType":"ElementaryTypeName","src":"11512:7:88","typeDescriptions":{}}},"id":53352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11512:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53353,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11565:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11574:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11565:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11589:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11565:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53356,"name":"gwCheckpointingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52754,"src":"11629:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53347,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11462:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11471:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11462:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11498:12:88","11557:6:88","11610:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11462:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53358,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11448:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11430:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53360,"nodeType":"ExpressionStatement","src":"11430:253:88"},{"expression":{"id":53376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53361,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11694:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53363,"indexExpression":{"hexValue":"36","id":53362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11707:1:88","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11694:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53368,"name":"xnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53269,"src":"11784:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}],"id":53367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11776:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53366,"name":"address","nodeType":"ElementaryTypeName","src":"11776:7:88","typeDescriptions":{}}},"id":53369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11776:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53370,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11829:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11838:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"11829:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11853:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"11829:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53373,"name":"gwXnetMessagingFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52757,"src":"11893:29:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53364,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11726:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11735:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11726:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11762:12:88","11821:6:88","11874:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11726:211:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53375,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11712:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11694:253:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53377,"nodeType":"ExpressionStatement","src":"11694:253:88"},{"expression":{"id":53393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53378,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"11958:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53380,"indexExpression":{"hexValue":"37","id":53379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11971:1:88","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11958:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53385,"name":"topDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53277,"src":"12048:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}],"id":53384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12040:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53383,"name":"address","nodeType":"ElementaryTypeName","src":"12040:7:88","typeDescriptions":{}}},"id":53386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12040:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53387,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12095:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12104:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12095:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12119:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12095:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53390,"name":"gwTopDownFinalityFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52760,"src":"12159:31:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53381,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"11990:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11999:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"11990:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12026:12:88","12087:6:88","12140:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"11990:215:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53392,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11976:239:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"11958:257:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53394,"nodeType":"ExpressionStatement","src":"11958:257:88"},{"expression":{"id":53410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53395,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12226:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53397,"indexExpression":{"hexValue":"38","id":53396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:88","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12226:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53402,"name":"bottomUpRouterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53285,"src":"12316:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BottomUpRouterFacet_$39601","typeString":"contract BottomUpRouterFacet"}],"id":53401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12308:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53400,"name":"address","nodeType":"ElementaryTypeName","src":"12308:7:88","typeDescriptions":{}}},"id":53403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12308:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53404,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12362:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12371:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12362:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12386:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12362:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53407,"name":"gwBottomUpRouterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52763,"src":"12426:30:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53398,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12258:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12267:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12258:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12294:12:88","12354:6:88","12407:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12258:213:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53409,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12244:237:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12226:255:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53411,"nodeType":"ExpressionStatement","src":"12226:255:88"},{"expression":{"id":53427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53412,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12492:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53414,"indexExpression":{"hexValue":"31","id":53413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12505:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12492:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53419,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53293,"src":"12582:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}],"id":53418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12574:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53417,"name":"address","nodeType":"ElementaryTypeName","src":"12574:7:88","typeDescriptions":{}}},"id":53420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12574:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53421,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12616:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12625:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12616:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12640:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12616:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53424,"name":"gwManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52766,"src":"12680:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53415,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12524:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12533:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12524:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12560:12:88","12608:6:88","12661:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12524:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12510:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12492:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53428,"nodeType":"ExpressionStatement","src":"12492:231:88"},{"expression":{"id":53444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53429,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12734:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53431,"indexExpression":{"hexValue":"32","id":53430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12747:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12734:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53436,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53301,"src":"12824:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}],"id":53435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12816:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53434,"name":"address","nodeType":"ElementaryTypeName","src":"12816:7:88","typeDescriptions":{}}},"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12816:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53438,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12857:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12866:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"12857:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12881:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"12857:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53441,"name":"gwGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52769,"src":"12921:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53432,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"12766:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12775:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"12766:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12802:12:88","12849:6:88","12902:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"12766:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53443,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12752:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12734:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53445,"nodeType":"ExpressionStatement","src":"12734:229:88"},{"expression":{"id":53461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53446,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"12974:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53448,"indexExpression":{"hexValue":"33","id":53447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12987:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12974:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53453,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53309,"src":"13064:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayMessengerFacet_$39235","typeString":"contract GatewayMessengerFacet"}],"id":53452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13056:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53451,"name":"address","nodeType":"ElementaryTypeName","src":"13056:7:88","typeDescriptions":{}}},"id":53454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13056:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53455,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13100:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13109:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13100:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13124:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13100:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53458,"name":"gwMessengerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52772,"src":"13164:20:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53449,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13006:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13015:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13006:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13042:12:88","13092:6:88","13145:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13006:193:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12992:217:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"12974:235:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53462,"nodeType":"ExpressionStatement","src":"12974:235:88"},{"expression":{"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53463,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13220:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53465,"indexExpression":{"hexValue":"34","id":53464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13233:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13220:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53470,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53325,"src":"13310:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13302:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53468,"name":"address","nodeType":"ElementaryTypeName","src":"13302:7:88","typeDescriptions":{}}},"id":53471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13302:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53472,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13343:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13352:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13343:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13367:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13343:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53475,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"13407:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53466,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13252:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13261:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13252:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13288:12:88","13335:6:88","13388:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13252:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13238:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13220:228:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53479,"nodeType":"ExpressionStatement","src":"13220:228:88"},{"expression":{"id":53495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53480,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13459:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53482,"indexExpression":{"hexValue":"35","id":53481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13472:1:88","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13459:15:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53487,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53317,"src":"13549:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13541:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53485,"name":"address","nodeType":"ElementaryTypeName","src":"13541:7:88","typeDescriptions":{}}},"id":53488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13541:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53489,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13582:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13591:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"13582:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13606:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"13582:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53492,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"13646:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53483,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"13491:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13500:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"13491:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13527:12:88","13574:6:88","13627:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"13491:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13477:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"13459:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53496,"nodeType":"ExpressionStatement","src":"13459:229:88"},{"expression":{"id":53504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53497,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13699:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53501,"name":"gwDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53336,"src":"13735:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53502,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53253,"src":"13749:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams memory"}],"id":53500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"13716:18:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35883_memory_ptr_$returns$_t_contract$_GatewayDiamond_$36170_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct GatewayDiamond.ConstructorParams memory) returns (contract GatewayDiamond)"},"typeName":{"id":53499,"nodeType":"UserDefinedTypeName","pathNode":{"id":53498,"name":"GatewayDiamond","nameLocations":["13720:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"13720:14:88"},"referencedDeclaration":36170,"src":"13720:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}},"id":53503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13716:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"src":"13699:57:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"id":53505,"nodeType":"ExpressionStatement","src":"13699:57:88"},{"expression":{"id":53506,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"13774:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"functionReturnParameters":53258,"id":53507,"nodeType":"Return","src":"13767:21:88"}]},"functionSelector":"1e334294","implemented":true,"kind":"function","modifiers":[],"name":"createGatewayDiamond","nameLocation":"10619:20:88","parameters":{"id":53254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53253,"mutability":"mutable","name":"params","nameLocation":"10680:6:88","nodeType":"VariableDeclaration","scope":53509,"src":"10640:46:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_memory_ptr","typeString":"struct GatewayDiamond.ConstructorParams"},"typeName":{"id":53252,"nodeType":"UserDefinedTypeName","pathNode":{"id":53251,"name":"GatewayDiamond.ConstructorParams","nameLocations":["10640:14:88","10655:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35883,"src":"10640:32:88"},"referencedDeclaration":35883,"src":"10640:32:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35883_storage_ptr","typeString":"struct GatewayDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"10639:48:88"},"returnParameters":{"id":53258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53509,"src":"10704:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":53256,"nodeType":"UserDefinedTypeName","pathNode":{"id":53255,"name":"GatewayDiamond","nameLocations":["10704:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"10704:14:88"},"referencedDeclaration":36170,"src":"10704:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"10703:16:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53575,"nodeType":"FunctionDefinition","src":"13801:854:88","nodes":[],"body":{"id":53574,"nodeType":"Block","src":"14009:646:88","nodes":[],"statements":[{"assignments":[53527],"declarations":[{"constant":false,"id":53527,"mutability":"mutable","name":"diamondCut","nameLocation":"14046:10:88","nodeType":"VariableDeclaration","scope":53574,"src":"14019:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53525,"nodeType":"UserDefinedTypeName","pathNode":{"id":53524,"name":"IDiamond.FacetCut","nameLocations":["14019:8:88","14028:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14019:17:88"},"referencedDeclaration":40159,"src":"14019:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53526,"nodeType":"ArrayTypeName","src":"14019:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53534,"initialValue":{"arguments":[{"hexValue":"32","id":53532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14083:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14059:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53529,"nodeType":"UserDefinedTypeName","pathNode":{"id":53528,"name":"IDiamond.FacetCut","nameLocations":["14063:8:88","14072:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"14063:17:88"},"referencedDeclaration":40159,"src":"14063:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53530,"nodeType":"ArrayTypeName","src":"14063:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14059:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14019:66:88"},{"expression":{"id":53547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53535,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14096:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53537,"indexExpression":{"hexValue":"30","id":53536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14096:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53540,"name":"getterFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53514,"src":"14176:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53541,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14214:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14223:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14214:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14238:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14214:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53544,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"14278:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53538,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14126:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14135:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14126:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14162:12:88","14206:6:88","14259:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14126:184:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53546,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14112:208:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14096:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53548,"nodeType":"ExpressionStatement","src":"14096:224:88"},{"expression":{"id":53561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53549,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14331:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53551,"indexExpression":{"hexValue":"31","id":53550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14342:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14331:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"id":53554,"name":"managerFaucet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53516,"src":"14411:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53555,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14450:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14459:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"14450:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14474:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"14450:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53558,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"14514:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53552,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"14361:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14370:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"14361:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14397:12:88","14442:6:88","14495:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"14361:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53560,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14347:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"14331:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53562,"nodeType":"ExpressionStatement","src":"14331:226:88"},{"expression":{"id":53570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53563,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14568:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53567,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"14603:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53568,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53512,"src":"14615:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14580:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53565,"nodeType":"UserDefinedTypeName","pathNode":{"id":53564,"name":"SubnetActorDiamond","nameLocations":["14584:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14584:18:88"},"referencedDeclaration":36615,"src":"14584:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14580:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"14568:54:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53571,"nodeType":"ExpressionStatement","src":"14568:54:88"},{"expression":{"id":53572,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"14639:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53521,"id":53573,"nodeType":"Return","src":"14632:16:88"}]},"functionSelector":"0d8d4acf","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActorDiamondWithFaucets","nameLocation":"13810:35:88","parameters":{"id":53517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53512,"mutability":"mutable","name":"params","nameLocation":"13899:6:88","nodeType":"VariableDeclaration","scope":53575,"src":"13855:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53511,"nodeType":"UserDefinedTypeName","pathNode":{"id":53510,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["13855:18:88","13874:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"13855:36:88"},"referencedDeclaration":36253,"src":"13855:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"},{"constant":false,"id":53514,"mutability":"mutable","name":"getterFaucet","nameLocation":"13923:12:88","nodeType":"VariableDeclaration","scope":53575,"src":"13915:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53513,"name":"address","nodeType":"ElementaryTypeName","src":"13915:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53516,"mutability":"mutable","name":"managerFaucet","nameLocation":"13953:13:88","nodeType":"VariableDeclaration","scope":53575,"src":"13945:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53515,"name":"address","nodeType":"ElementaryTypeName","src":"13945:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13845:127:88"},"returnParameters":{"id":53521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53575,"src":"13989:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53519,"nodeType":"UserDefinedTypeName","pathNode":{"id":53518,"name":"SubnetActorDiamond","nameLocations":["13989:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"13989:18:88"},"referencedDeclaration":36615,"src":"13989:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"13988:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53710,"nodeType":"FunctionDefinition","src":"14661:1518:88","nodes":[],"body":{"id":53709,"nodeType":"Block","src":"14776:1403:88","nodes":[],"statements":[{"assignments":[53586],"declarations":[{"constant":false,"id":53586,"mutability":"mutable","name":"manager","nameLocation":"14810:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"14786:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"},"typeName":{"id":53585,"nodeType":"UserDefinedTypeName","pathNode":{"id":53584,"name":"SubnetActorManagerFacet","nameLocations":["14786:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14786:23:88"},"referencedDeclaration":52151,"src":"14786:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"visibility":"internal"}],"id":53591,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14820:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53588,"nodeType":"UserDefinedTypeName","pathNode":{"id":53587,"name":"SubnetActorManagerFacet","nameLocations":["14824:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"14824:23:88"},"referencedDeclaration":52151,"src":"14824:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14820:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"14786:63:88"},{"assignments":[53594],"declarations":[{"constant":false,"id":53594,"mutability":"mutable","name":"getter","nameLocation":"14882:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14859:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53593,"nodeType":"UserDefinedTypeName","pathNode":{"id":53592,"name":"SubnetActorGetterFacet","nameLocations":["14859:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14859:22:88"},"referencedDeclaration":50887,"src":"14859:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53599,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14891:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53596,"nodeType":"UserDefinedTypeName","pathNode":{"id":53595,"name":"SubnetActorGetterFacet","nameLocations":["14895:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"14895:22:88"},"referencedDeclaration":50887,"src":"14895:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14891:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"14859:60:88"},{"assignments":[53602],"declarations":[{"constant":false,"id":53602,"mutability":"mutable","name":"louper","nameLocation":"14947:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14929:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":53601,"nodeType":"UserDefinedTypeName","pathNode":{"id":53600,"name":"DiamondLoupeFacet","nameLocations":["14929:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14929:17:88"},"referencedDeclaration":37355,"src":"14929:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":53607,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"14956:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53604,"nodeType":"UserDefinedTypeName","pathNode":{"id":53603,"name":"DiamondLoupeFacet","nameLocations":["14960:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"14960:17:88"},"referencedDeclaration":37355,"src":"14960:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14956:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"14929:50:88"},{"assignments":[53610],"declarations":[{"constant":false,"id":53610,"mutability":"mutable","name":"cutter","nameLocation":"15005:6:88","nodeType":"VariableDeclaration","scope":53709,"src":"14989:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":53609,"nodeType":"UserDefinedTypeName","pathNode":{"id":53608,"name":"DiamondCutFacet","nameLocations":["14989:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"14989:15:88"},"referencedDeclaration":36918,"src":"14989:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":53615,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"15014:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53612,"nodeType":"UserDefinedTypeName","pathNode":{"id":53611,"name":"DiamondCutFacet","nameLocations":["15018:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"15018:15:88"},"referencedDeclaration":36918,"src":"15018:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15014:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"14989:46:88"},{"assignments":[53621],"declarations":[{"constant":false,"id":53621,"mutability":"mutable","name":"diamondCut","nameLocation":"15073:10:88","nodeType":"VariableDeclaration","scope":53709,"src":"15046:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53619,"nodeType":"UserDefinedTypeName","pathNode":{"id":53618,"name":"IDiamond.FacetCut","nameLocations":["15046:8:88","15055:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15046:17:88"},"referencedDeclaration":40159,"src":"15046:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53620,"nodeType":"ArrayTypeName","src":"15046:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53628,"initialValue":{"arguments":[{"hexValue":"34","id":53626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15110:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"15086:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53623,"nodeType":"UserDefinedTypeName","pathNode":{"id":53622,"name":"IDiamond.FacetCut","nameLocations":["15090:8:88","15099:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"15090:17:88"},"referencedDeclaration":40159,"src":"15090:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53624,"nodeType":"ArrayTypeName","src":"15090:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15086:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15046:66:88"},{"expression":{"id":53644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53629,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15123:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53631,"indexExpression":{"hexValue":"30","id":53630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15134:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15123:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53636,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53586,"src":"15211:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53634,"name":"address","nodeType":"ElementaryTypeName","src":"15203:7:88","typeDescriptions":{}}},"id":53637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15203:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53638,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15245:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15254:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15245:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15269:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15245:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53641,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"15309:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53632,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15153:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15162:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15153:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15189:12:88","15237:6:88","15290:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15153:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53643,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15139:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15123:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53645,"nodeType":"ExpressionStatement","src":"15123:229:88"},{"expression":{"id":53661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53646,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15363:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53648,"indexExpression":{"hexValue":"31","id":53647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15374:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15363:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53653,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53594,"src":"15451:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15443:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53651,"name":"address","nodeType":"ElementaryTypeName","src":"15443:7:88","typeDescriptions":{}}},"id":53654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15443:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53655,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15484:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15493:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15484:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15508:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15484:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53658,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"15548:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53649,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15393:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15402:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15393:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15429:12:88","15476:6:88","15529:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15393:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53660,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15379:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15363:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53662,"nodeType":"ExpressionStatement","src":"15363:227:88"},{"expression":{"id":53678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53663,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15601:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53665,"indexExpression":{"hexValue":"32","id":53664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15612:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15601:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53670,"name":"cutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53610,"src":"15689:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15681:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53668,"name":"address","nodeType":"ElementaryTypeName","src":"15681:7:88","typeDescriptions":{}}},"id":53671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15681:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53672,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15722:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15722:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15746:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15722:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53675,"name":"gwCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52775,"src":"15786:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53666,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15631:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15640:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15631:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15667:12:88","15714:6:88","15767:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15631:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53677,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15617:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15601:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53679,"nodeType":"ExpressionStatement","src":"15601:227:88"},{"expression":{"id":53695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53680,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"15839:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53682,"indexExpression":{"hexValue":"33","id":53681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15850:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15839:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53687,"name":"louper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53602,"src":"15927:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15919:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53685,"name":"address","nodeType":"ElementaryTypeName","src":"15919:7:88","typeDescriptions":{}}},"id":53688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15919:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53689,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15960:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15969:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"15960:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15984:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"15960:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53692,"name":"gwLoupeSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52778,"src":"16024:16:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53683,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"15869:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15878:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"15869:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15905:12:88","15952:6:88","16005:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"15869:186:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53694,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15855:210:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"15839:226:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53696,"nodeType":"ExpressionStatement","src":"15839:226:88"},{"assignments":[53699],"declarations":[{"constant":false,"id":53699,"mutability":"mutable","name":"diamond","nameLocation":"16095:7:88","nodeType":"VariableDeclaration","scope":53709,"src":"16076:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53698,"nodeType":"UserDefinedTypeName","pathNode":{"id":53697,"name":"SubnetActorDiamond","nameLocations":["16076:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16076:18:88"},"referencedDeclaration":36615,"src":"16076:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":53706,"initialValue":{"arguments":[{"id":53703,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53621,"src":"16128:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":53704,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53578,"src":"16140:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"16105:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53701,"nodeType":"UserDefinedTypeName","pathNode":{"id":53700,"name":"SubnetActorDiamond","nameLocations":["16109:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"16109:18:88"},"referencedDeclaration":36615,"src":"16109:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16105:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"16076:71:88"},{"expression":{"id":53707,"name":"diamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53699,"src":"16165:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53583,"id":53708,"nodeType":"Return","src":"16158:14:88"}]},"functionSelector":"c69a0469","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"14670:17:88","parameters":{"id":53579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53578,"mutability":"mutable","name":"params","nameLocation":"14732:6:88","nodeType":"VariableDeclaration","scope":53710,"src":"14688:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":53577,"nodeType":"UserDefinedTypeName","pathNode":{"id":53576,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["14688:18:88","14707:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"14688:36:88"},"referencedDeclaration":36253,"src":"14688:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"14687:52:88"},"returnParameters":{"id":53583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53710,"src":"14756:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53581,"nodeType":"UserDefinedTypeName","pathNode":{"id":53580,"name":"SubnetActorDiamond","nameLocations":["14756:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"14756:18:88"},"referencedDeclaration":36615,"src":"14756:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"14755:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53739,"nodeType":"FunctionDefinition","src":"16185:522:88","nodes":[],"body":{"id":53738,"nodeType":"Block","src":"16429:278:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":53727,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53712,"src":"16470:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53728,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53715,"src":"16499:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53729,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53717,"src":"16523:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53730,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53719,"src":"16561:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53731,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53721,"src":"16589:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53732,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53723,"src":"16615:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":53733,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"16648:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":53734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16663:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"16648:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"hexValue":"313030","id":53735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16687:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":53726,"name":"createSubnetActor","nodeType":"Identifier","overloadedDeclarations":[53710,53739,53943],"referencedDeclaration":53943,"src":"16439:17:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_ConsensusType_$37359_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint8_$_t_enum$_PermissionMode_$50165_$_t_uint16_$returns$__$","typeString":"function (address,enum ConsensusType,uint256,uint64,uint64,uint8,enum PermissionMode,uint16)"}},"id":53736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16439:261:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53737,"nodeType":"ExpressionStatement","src":"16439:261:88"}]},"functionSelector":"a0aaa285","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16194:17:88","parameters":{"id":53724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53712,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16229:15:88","nodeType":"VariableDeclaration","scope":53739,"src":"16221:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53711,"name":"address","nodeType":"ElementaryTypeName","src":"16221:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53715,"mutability":"mutable","name":"_consensus","nameLocation":"16268:10:88","nodeType":"VariableDeclaration","scope":53739,"src":"16254:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53714,"nodeType":"UserDefinedTypeName","pathNode":{"id":53713,"name":"ConsensusType","nameLocations":["16254:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16254:13:88"},"referencedDeclaration":37359,"src":"16254:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53717,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16296:24:88","nodeType":"VariableDeclaration","scope":53739,"src":"16288:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53716,"name":"uint256","nodeType":"ElementaryTypeName","src":"16288:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53719,"mutability":"mutable","name":"_minValidators","nameLocation":"16337:14:88","nodeType":"VariableDeclaration","scope":53739,"src":"16330:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53718,"name":"uint64","nodeType":"ElementaryTypeName","src":"16330:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53721,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16368:12:88","nodeType":"VariableDeclaration","scope":53739,"src":"16361:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53720,"name":"uint64","nodeType":"ElementaryTypeName","src":"16361:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53723,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16396:19:88","nodeType":"VariableDeclaration","scope":53739,"src":"16390:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53722,"name":"uint8","nodeType":"ElementaryTypeName","src":"16390:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16211:210:88"},"returnParameters":{"id":53725,"nodeType":"ParameterList","parameters":[],"src":"16429:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53943,"nodeType":"FunctionDefinition","src":"16713:2630:88","nodes":[],"body":{"id":53942,"nodeType":"Block","src":"17036:2307:88","nodes":[],"statements":[{"assignments":[53762],"declarations":[{"constant":false,"id":53762,"mutability":"mutable","name":"_parentId","nameLocation":"17062:9:88","nodeType":"VariableDeclaration","scope":53942,"src":"17046:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":53761,"nodeType":"UserDefinedTypeName","pathNode":{"id":53760,"name":"SubnetID","nameLocations":["17046:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"17046:8:88"},"referencedDeclaration":50077,"src":"17046:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":53771,"initialValue":{"arguments":[{"id":53764,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"17083:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":53768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17114:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17100:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":53765,"name":"address","nodeType":"ElementaryTypeName","src":"17104:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53766,"nodeType":"ArrayTypeName","src":"17104:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":53769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17100:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":53763,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"17074:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":53770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17074:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"17046:71:88"},{"expression":{"id":53777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53772,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17128:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17140:27:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"function () returns (contract SubnetActorManagerFacet)"},"typeName":{"id":53774,"nodeType":"UserDefinedTypeName","pathNode":{"id":53773,"name":"SubnetActorManagerFacet","nameLocations":["17144:23:88"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"17144:23:88"},"referencedDeclaration":52151,"src":"17144:23:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}},"id":53776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17140:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"17128:41:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53778,"nodeType":"ExpressionStatement","src":"17128:41:88"},{"expression":{"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53779,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17179:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17190:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53781,"nodeType":"UserDefinedTypeName","pathNode":{"id":53780,"name":"SubnetActorGetterFacet","nameLocations":["17194:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"17194:22:88"},"referencedDeclaration":50887,"src":"17194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17190:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"17179:39:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53785,"nodeType":"ExpressionStatement","src":"17179:39:88"},{"expression":{"id":53791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53786,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17228:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17239:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":53788,"nodeType":"UserDefinedTypeName","pathNode":{"id":53787,"name":"DiamondCutFacet","nameLocations":["17243:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"17243:15:88"},"referencedDeclaration":36918,"src":"17243:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":53790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17239:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"17228:32:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53792,"nodeType":"ExpressionStatement","src":"17228:32:88"},{"expression":{"id":53798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53793,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"17270:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17281:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":53795,"nodeType":"UserDefinedTypeName","pathNode":{"id":53794,"name":"DiamondLoupeFacet","nameLocations":["17285:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"17285:17:88"},"referencedDeclaration":37355,"src":"17285:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":53797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17281:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"17270:34:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53799,"nodeType":"ExpressionStatement","src":"17270:34:88"},{"assignments":[53805],"declarations":[{"constant":false,"id":53805,"mutability":"mutable","name":"diamondCut","nameLocation":"17342:10:88","nodeType":"VariableDeclaration","scope":53942,"src":"17315:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53803,"nodeType":"UserDefinedTypeName","pathNode":{"id":53802,"name":"IDiamond.FacetCut","nameLocations":["17315:8:88","17324:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17315:17:88"},"referencedDeclaration":40159,"src":"17315:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53804,"nodeType":"ArrayTypeName","src":"17315:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53812,"initialValue":{"arguments":[{"hexValue":"34","id":53810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17379:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":53809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17355:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53807,"nodeType":"UserDefinedTypeName","pathNode":{"id":53806,"name":"IDiamond.FacetCut","nameLocations":["17359:8:88","17368:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"17359:17:88"},"referencedDeclaration":40159,"src":"17359:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53808,"nodeType":"ArrayTypeName","src":"17359:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17355:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17315:66:88"},{"expression":{"id":53828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53813,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17392:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53815,"indexExpression":{"hexValue":"30","id":53814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17403:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17392:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53820,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"17480:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":53819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17472:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53818,"name":"address","nodeType":"ElementaryTypeName","src":"17472:7:88","typeDescriptions":{}}},"id":53821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17472:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53822,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17516:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17516:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17540:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17516:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53825,"name":"saManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52922,"src":"17580:18:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53816,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17422:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17431:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17422:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17458:12:88","17508:6:88","17561:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17422:191:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53827,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17408:215:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17392:231:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53829,"nodeType":"ExpressionStatement","src":"17392:231:88"},{"expression":{"id":53845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53830,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17634:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53832,"indexExpression":{"hexValue":"31","id":53831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17645:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17634:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53837,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"17722:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":53836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17714:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53835,"name":"address","nodeType":"ElementaryTypeName","src":"17714:7:88","typeDescriptions":{}}},"id":53838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17714:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53839,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17757:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17766:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17757:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17781:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17757:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53842,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"17821:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53833,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17664:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17673:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17664:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17700:12:88","17749:6:88","17802:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17664:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53844,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17650:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17634:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53846,"nodeType":"ExpressionStatement","src":"17634:229:88"},{"expression":{"id":53862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53847,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"17874:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53849,"indexExpression":{"hexValue":"32","id":53848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17885:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17874:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53854,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"17962:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":53853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17954:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53852,"name":"address","nodeType":"ElementaryTypeName","src":"17954:7:88","typeDescriptions":{}}},"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17954:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53856,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17997:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18006:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"17997:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18021:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"17997:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53859,"name":"saCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52928,"src":"18061:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53850,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"17904:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"17904:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["17940:12:88","17989:6:88","18042:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"17904:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53861,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17890:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"17874:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53863,"nodeType":"ExpressionStatement","src":"17874:229:88"},{"expression":{"id":53879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53864,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18114:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53866,"indexExpression":{"hexValue":"33","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18125:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18114:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53871,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"18202:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":53870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18194:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53869,"name":"address","nodeType":"ElementaryTypeName","src":"18194:7:88","typeDescriptions":{}}},"id":53872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18194:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53873,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18237:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18246:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"18237:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18261:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"18237:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53876,"name":"saLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52931,"src":"18301:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53867,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"18144:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18153:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"18144:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18180:12:88","18229:6:88","18282:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"18144:189:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18130:213:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"18114:229:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53880,"nodeType":"ExpressionStatement","src":"18114:229:88"},{"expression":{"id":53904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53881,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"18354:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":53885,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53805,"src":"18402:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"id":53888,"name":"_parentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53762,"src":"18491:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":53889,"name":"_ipcGatewayAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53741,"src":"18534:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53890,"name":"_consensus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53744,"src":"18578:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":53891,"name":"_minActivationCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53746,"src":"18631:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53892,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53748,"src":"18688:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53893,"name":"_checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53750,"src":"18741:12:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":53894,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53752,"src":"18791:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":53895,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53757,"src":"18851:22:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"3132","id":53896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18903:2:88","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},{"id":53897,"name":"_permissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53755,"src":"18939:15:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":53898,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"18988:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53899,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"19041:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":53900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19060:6:88","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"19041:25:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":53901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19041:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":53886,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"18426:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":53887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18445:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"18426:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":53902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["18481:8:88","18518:14:88","18567:9:88","18606:23:88","18673:13:88","18720:19:88","18771:18:88","18828:21:88","18891:10:88","18923:14:88","18972:14:88","19027:12:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"18426:657:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":53884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18366:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":53883,"nodeType":"UserDefinedTypeName","pathNode":{"id":53882,"name":"SubnetActorDiamond","nameLocations":["18370:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"18370:18:88"},"referencedDeclaration":36615,"src":"18370:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":53903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18366:727:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"src":"18354:739:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"id":53905,"nodeType":"ExpressionStatement","src":"18354:739:88"},{"expression":{"id":53913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53906,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"19104:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53910,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19148:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19140:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53908,"name":"address","nodeType":"ElementaryTypeName","src":"19140:7:88","typeDescriptions":{}}},"id":53911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19140:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53907,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"19116:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacet_$52151_$","typeString":"type(contract SubnetActorManagerFacet)"}},"id":53912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19116:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"src":"19104:55:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":53914,"nodeType":"ExpressionStatement","src":"19104:55:88"},{"expression":{"id":53922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53915,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"19169:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53919,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19211:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19203:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53917,"name":"address","nodeType":"ElementaryTypeName","src":"19203:7:88","typeDescriptions":{}}},"id":53920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19203:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53916,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"19180:22:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":53921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19180:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"19169:53:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":53923,"nodeType":"ExpressionStatement","src":"19169:53:88"},{"expression":{"id":53931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53924,"name":"saCutter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52946,"src":"19232:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53928,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19267:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19259:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53926,"name":"address","nodeType":"ElementaryTypeName","src":"19259:7:88","typeDescriptions":{}}},"id":53929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19259:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53925,"name":"DiamondCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"19243:15:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondCutFacet_$36918_$","typeString":"type(contract DiamondCutFacet)"}},"id":53930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19243:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"src":"19232:46:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"id":53932,"nodeType":"ExpressionStatement","src":"19232:46:88"},{"expression":{"id":53940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53933,"name":"saLouper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52949,"src":"19288:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53937,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"19325:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":53936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19317:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53935,"name":"address","nodeType":"ElementaryTypeName","src":"19317:7:88","typeDescriptions":{}}},"id":53938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19317:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53934,"name":"DiamondLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37355,"src":"19299:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"type(contract DiamondLoupeFacet)"}},"id":53939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19299:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"src":"19288:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"id":53941,"nodeType":"ExpressionStatement","src":"19288:48:88"}]},"functionSelector":"5c2c2fed","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetActor","nameLocation":"16722:17:88","parameters":{"id":53758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53741,"mutability":"mutable","name":"_ipcGatewayAddr","nameLocation":"16757:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16749:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53740,"name":"address","nodeType":"ElementaryTypeName","src":"16749:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53744,"mutability":"mutable","name":"_consensus","nameLocation":"16796:10:88","nodeType":"VariableDeclaration","scope":53943,"src":"16782:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":53743,"nodeType":"UserDefinedTypeName","pathNode":{"id":53742,"name":"ConsensusType","nameLocations":["16782:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"16782:13:88"},"referencedDeclaration":37359,"src":"16782:13:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":53746,"mutability":"mutable","name":"_minActivationCollateral","nameLocation":"16824:24:88","nodeType":"VariableDeclaration","scope":53943,"src":"16816:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53745,"name":"uint256","nodeType":"ElementaryTypeName","src":"16816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53748,"mutability":"mutable","name":"_minValidators","nameLocation":"16865:14:88","nodeType":"VariableDeclaration","scope":53943,"src":"16858:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53747,"name":"uint64","nodeType":"ElementaryTypeName","src":"16858:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53750,"mutability":"mutable","name":"_checkPeriod","nameLocation":"16896:12:88","nodeType":"VariableDeclaration","scope":53943,"src":"16889:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":53749,"name":"uint64","nodeType":"ElementaryTypeName","src":"16889:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":53752,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"16924:19:88","nodeType":"VariableDeclaration","scope":53943,"src":"16918:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53751,"name":"uint8","nodeType":"ElementaryTypeName","src":"16918:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":53755,"mutability":"mutable","name":"_permissionMode","nameLocation":"16968:15:88","nodeType":"VariableDeclaration","scope":53943,"src":"16953:30:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":53754,"nodeType":"UserDefinedTypeName","pathNode":{"id":53753,"name":"PermissionMode","nameLocations":["16953:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"16953:14:88"},"referencedDeclaration":50165,"src":"16953:14:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":53757,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"17000:22:88","nodeType":"VariableDeclaration","scope":53943,"src":"16993:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":53756,"name":"uint16","nodeType":"ElementaryTypeName","src":"16993:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16739:289:88"},"returnParameters":{"id":53759,"nodeType":"ParameterList","parameters":[],"src":"17036:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54036,"nodeType":"FunctionDefinition","src":"19349:1021:88","nodes":[],"body":{"id":54035,"nodeType":"Block","src":"19441:929:88","nodes":[],"statements":[{"assignments":[53953],"declarations":[{"constant":false,"id":53953,"mutability":"mutable","name":"mockedManager","nameLocation":"19479:13:88","nodeType":"VariableDeclaration","scope":54035,"src":"19451:41:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":53952,"nodeType":"UserDefinedTypeName","pathNode":{"id":53951,"name":"SubnetActorManagerFacetMock","nameLocations":["19451:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19451:27:88"},"referencedDeclaration":57957,"src":"19451:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"internal"}],"id":53958,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19495:31:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorManagerFacetMock_$57957_$","typeString":"function () returns (contract SubnetActorManagerFacetMock)"},"typeName":{"id":53955,"nodeType":"UserDefinedTypeName","pathNode":{"id":53954,"name":"SubnetActorManagerFacetMock","nameLocations":["19499:27:88"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"19499:27:88"},"referencedDeclaration":57957,"src":"19499:27:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}},"id":53957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19495:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"VariableDeclarationStatement","src":"19451:77:88"},{"assignments":[53961],"declarations":[{"constant":false,"id":53961,"mutability":"mutable","name":"getter","nameLocation":"19561:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"19538:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":53960,"nodeType":"UserDefinedTypeName","pathNode":{"id":53959,"name":"SubnetActorGetterFacet","nameLocations":["19538:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19538:22:88"},"referencedDeclaration":50887,"src":"19538:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"internal"}],"id":53966,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"19570:26:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"function () returns (contract SubnetActorGetterFacet)"},"typeName":{"id":53963,"nodeType":"UserDefinedTypeName","pathNode":{"id":53962,"name":"SubnetActorGetterFacet","nameLocations":["19574:22:88"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"19574:22:88"},"referencedDeclaration":50887,"src":"19574:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}},"id":53965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19570:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"19538:60:88"},{"assignments":[53972],"declarations":[{"constant":false,"id":53972,"mutability":"mutable","name":"diamondCut","nameLocation":"19636:10:88","nodeType":"VariableDeclaration","scope":54035,"src":"19609:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":53970,"nodeType":"UserDefinedTypeName","pathNode":{"id":53969,"name":"IDiamond.FacetCut","nameLocations":["19609:8:88","19618:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19609:17:88"},"referencedDeclaration":40159,"src":"19609:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53971,"nodeType":"ArrayTypeName","src":"19609:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":53979,"initialValue":{"arguments":[{"hexValue":"32","id":53977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19673:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":53976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"19649:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":53974,"nodeType":"UserDefinedTypeName","pathNode":{"id":53973,"name":"IDiamond.FacetCut","nameLocations":["19653:8:88","19662:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"19653:17:88"},"referencedDeclaration":40159,"src":"19653:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":53975,"nodeType":"ArrayTypeName","src":"19653:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":53978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19649:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"19609:66:88"},{"expression":{"id":53995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53980,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19686:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53982,"indexExpression":{"hexValue":"30","id":53981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19697:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19686:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":53987,"name":"mockedManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53953,"src":"19774:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}],"id":53986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19766:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53985,"name":"address","nodeType":"ElementaryTypeName","src":"19766:7:88","typeDescriptions":{}}},"id":53988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19766:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":53989,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19814:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19823:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"19814:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":53991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19838:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"19814:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":53992,"name":"saManagerMockedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52925,"src":"19878:24:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":53983,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19716:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":53984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19725:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19716:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["19752:12:88","19806:6:88","19859:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19716:201:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":53994,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19702:225:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19686:241:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":53996,"nodeType":"ExpressionStatement","src":"19686:241:88"},{"expression":{"id":54012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53997,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"19938:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":53999,"indexExpression":{"hexValue":"31","id":53998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19938:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54004,"name":"getter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53961,"src":"20026:6:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}],"id":54003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20018:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54002,"name":"address","nodeType":"ElementaryTypeName","src":"20018:7:88","typeDescriptions":{}}},"id":54005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20018:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54006,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20059:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20068:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"20059:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20083:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"20059:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54009,"name":"saGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52919,"src":"20123:17:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54000,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"19968:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19977:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"19968:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20004:12:88","20051:6:88","20104:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"19968:187:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54011,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19954:211:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"19938:227:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54013,"nodeType":"ExpressionStatement","src":"19938:227:88"},{"assignments":[54018],"declarations":[{"constant":false,"id":54018,"mutability":"mutable","name":"params","nameLocation":"20220:6:88","nodeType":"VariableDeclaration","scope":54035,"src":"20176:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":54017,"nodeType":"UserDefinedTypeName","pathNode":{"id":54016,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["20176:18:88","20195:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"20176:36:88"},"referencedDeclaration":36253,"src":"20176:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":54022,"initialValue":{"arguments":[{"id":54020,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53945,"src":"20265:2:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54019,"name":"defaultSubnetActorParamsWithGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53036,"src":"20229:35:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_ConstructorParams_$36253_memory_ptr_$","typeString":"function (address) pure returns (struct SubnetActorDiamond.ConstructorParams memory)"}},"id":54021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20229:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"20176:92:88"},{"assignments":[54025],"declarations":[{"constant":false,"id":54025,"mutability":"mutable","name":"d","nameLocation":"20298:1:88","nodeType":"VariableDeclaration","scope":54035,"src":"20279:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":54024,"nodeType":"UserDefinedTypeName","pathNode":{"id":54023,"name":"SubnetActorDiamond","nameLocations":["20279:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20279:18:88"},"referencedDeclaration":36615,"src":"20279:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"id":54032,"initialValue":{"arguments":[{"id":54029,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53972,"src":"20325:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54030,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54018,"src":"20337:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"id":54028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20302:22:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":54027,"nodeType":"UserDefinedTypeName","pathNode":{"id":54026,"name":"SubnetActorDiamond","nameLocations":["20306:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"20306:18:88"},"referencedDeclaration":36615,"src":"20306:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":54031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20302:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"nodeType":"VariableDeclarationStatement","src":"20279:65:88"},{"expression":{"id":54033,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54025,"src":"20362:1:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"functionReturnParameters":53950,"id":54034,"nodeType":"Return","src":"20355:8:88"}]},"functionSelector":"951759c9","implemented":true,"kind":"function","modifiers":[],"name":"createMockedSubnetActorWithGateway","nameLocation":"19358:34:88","parameters":{"id":53946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53945,"mutability":"mutable","name":"gw","nameLocation":"19401:2:88","nodeType":"VariableDeclaration","scope":54036,"src":"19393:10:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53944,"name":"address","nodeType":"ElementaryTypeName","src":"19393:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19392:12:88"},"returnParameters":{"id":53950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54036,"src":"19421:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":53948,"nodeType":"UserDefinedTypeName","pathNode":{"id":53947,"name":"SubnetActorDiamond","nameLocations":["19421:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"19421:18:88"},"referencedDeclaration":36615,"src":"19421:18:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"19420:20:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54178,"nodeType":"FunctionDefinition","src":"20422:1703:88","nodes":[],"body":{"id":54177,"nodeType":"Block","src":"20560:1565:88","nodes":[],"statements":[{"assignments":[54050],"declarations":[{"constant":false,"id":54050,"mutability":"mutable","name":"diamondCut","nameLocation":"20597:10:88","nodeType":"VariableDeclaration","scope":54177,"src":"20570:37:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":54048,"nodeType":"UserDefinedTypeName","pathNode":{"id":54047,"name":"IDiamond.FacetCut","nameLocations":["20570:8:88","20579:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20570:17:88"},"referencedDeclaration":40159,"src":"20570:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54049,"nodeType":"ArrayTypeName","src":"20570:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":54057,"initialValue":{"arguments":[{"hexValue":"34","id":54055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20634:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"20610:23:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":54052,"nodeType":"UserDefinedTypeName","pathNode":{"id":54051,"name":"IDiamond.FacetCut","nameLocations":["20614:8:88","20623:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"20614:17:88"},"referencedDeclaration":40159,"src":"20614:17:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":54053,"nodeType":"ArrayTypeName","src":"20614:19:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":54056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20610:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20570:66:88"},{"assignments":[54060],"declarations":[{"constant":false,"id":54060,"mutability":"mutable","name":"regCutFacet","nameLocation":"20663:11:88","nodeType":"VariableDeclaration","scope":54177,"src":"20647:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"},"typeName":{"id":54059,"nodeType":"UserDefinedTypeName","pathNode":{"id":54058,"name":"DiamondCutFacet","nameLocations":["20647:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20647:15:88"},"referencedDeclaration":36918,"src":"20647:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"visibility":"internal"}],"id":54065,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20677:19:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondCutFacet_$36918_$","typeString":"function () returns (contract DiamondCutFacet)"},"typeName":{"id":54062,"nodeType":"UserDefinedTypeName","pathNode":{"id":54061,"name":"DiamondCutFacet","nameLocations":["20681:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"20681:15:88"},"referencedDeclaration":36918,"src":"20681:15:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}},"id":54064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20677:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}},"nodeType":"VariableDeclarationStatement","src":"20647:51:88"},{"assignments":[54068],"declarations":[{"constant":false,"id":54068,"mutability":"mutable","name":"regLoupeFacet","nameLocation":"20726:13:88","nodeType":"VariableDeclaration","scope":54177,"src":"20708:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"},"typeName":{"id":54067,"nodeType":"UserDefinedTypeName","pathNode":{"id":54066,"name":"DiamondLoupeFacet","nameLocations":["20708:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20708:17:88"},"referencedDeclaration":37355,"src":"20708:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"visibility":"internal"}],"id":54073,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20742:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DiamondLoupeFacet_$37355_$","typeString":"function () returns (contract DiamondLoupeFacet)"},"typeName":{"id":54070,"nodeType":"UserDefinedTypeName","pathNode":{"id":54069,"name":"DiamondLoupeFacet","nameLocations":["20746:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":37355,"src":"20746:17:88"},"referencedDeclaration":37355,"src":"20746:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}},"id":54072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20742:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}},"nodeType":"VariableDeclarationStatement","src":"20708:57:88"},{"assignments":[54076],"declarations":[{"constant":false,"id":54076,"mutability":"mutable","name":"regSubnetFacet","nameLocation":"20795:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20775:34:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":54075,"nodeType":"UserDefinedTypeName","pathNode":{"id":54074,"name":"RegisterSubnetFacet","nameLocations":["20775:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20775:19:88"},"referencedDeclaration":52279,"src":"20775:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"internal"}],"id":54081,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20812:23:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegisterSubnetFacet_$52279_$","typeString":"function () returns (contract RegisterSubnetFacet)"},"typeName":{"id":54078,"nodeType":"UserDefinedTypeName","pathNode":{"id":54077,"name":"RegisterSubnetFacet","nameLocations":["20816:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"20816:19:88"},"referencedDeclaration":52279,"src":"20816:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}},"id":54080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20812:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"nodeType":"VariableDeclarationStatement","src":"20775:62:88"},{"assignments":[54084],"declarations":[{"constant":false,"id":54084,"mutability":"mutable","name":"regGetterFacet","nameLocation":"20865:14:88","nodeType":"VariableDeclaration","scope":54177,"src":"20847:32:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":54083,"nodeType":"UserDefinedTypeName","pathNode":{"id":54082,"name":"SubnetGetterFacet","nameLocations":["20847:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20847:17:88"},"referencedDeclaration":52517,"src":"20847:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"internal"}],"id":54089,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"20882:21:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SubnetGetterFacet_$52517_$","typeString":"function () returns (contract SubnetGetterFacet)"},"typeName":{"id":54086,"nodeType":"UserDefinedTypeName","pathNode":{"id":54085,"name":"SubnetGetterFacet","nameLocations":["20886:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"20886:17:88"},"referencedDeclaration":52517,"src":"20886:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}},"id":54088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20882:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"nodeType":"VariableDeclarationStatement","src":"20847:58:88"},{"expression":{"id":54105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54090,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"20916:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54092,"indexExpression":{"hexValue":"30","id":54091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20927:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20916:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54097,"name":"regLoupeFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54068,"src":"21004:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondLoupeFacet_$37355","typeString":"contract DiamondLoupeFacet"}],"id":54096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20996:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54095,"name":"address","nodeType":"ElementaryTypeName","src":"20996:7:88","typeDescriptions":{}}},"id":54098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20996:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54099,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21044:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21053:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21044:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21068:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21044:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54102,"name":"registerLouperSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"21108:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54093,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"20946:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20955:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"20946:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20982:12:88","21036:6:88","21089:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"20946:200:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20932:224:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"20916:240:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54106,"nodeType":"ExpressionStatement","src":"20916:240:88"},{"expression":{"id":54122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54107,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21166:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54109,"indexExpression":{"hexValue":"31","id":54108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21177:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21166:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54114,"name":"regCutFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54060,"src":"21254:11:88","typeDescriptions":{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DiamondCutFacet_$36918","typeString":"contract DiamondCutFacet"}],"id":54113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21246:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54112,"name":"address","nodeType":"ElementaryTypeName","src":"21246:7:88","typeDescriptions":{}}},"id":54115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21246:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54116,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21292:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21301:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21292:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21316:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21292:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54119,"name":"registerCutterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52696,"src":"21356:23:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54110,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21196:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21205:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21196:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21232:12:88","21284:6:88","21337:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21196:198:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54121,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21182:222:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21166:238:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54123,"nodeType":"ExpressionStatement","src":"21166:238:88"},{"expression":{"id":54139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54124,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21414:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54126,"indexExpression":{"hexValue":"32","id":54125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21425:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21414:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54131,"name":"regSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54076,"src":"21502:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}],"id":54130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21494:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54129,"name":"address","nodeType":"ElementaryTypeName","src":"21494:7:88","typeDescriptions":{}}},"id":54132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21494:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54133,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21543:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21552:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21543:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21567:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21543:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54136,"name":"registerSubnetFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52690,"src":"21607:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54127,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21453:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21444:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21480:12:88","21535:6:88","21588:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21444:206:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54138,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21430:230:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21414:246:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54140,"nodeType":"ExpressionStatement","src":"21414:246:88"},{"expression":{"id":54156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54141,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"21670:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":54143,"indexExpression":{"hexValue":"33","id":54142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21681:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21670:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"arguments":[{"arguments":[{"id":54148,"name":"regGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54084,"src":"21758:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}],"id":54147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21750:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54146,"name":"address","nodeType":"ElementaryTypeName","src":"21750:7:88","typeDescriptions":{}}},"id":54149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21750:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":54150,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21799:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21808:14:88","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"21799:23:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":54152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21823:3:88","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"21799:27:88","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"id":54153,"name":"registerSubnetGetterFacetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52693,"src":"21863:34:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":54144,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"21700:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":54145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21709:8:88","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"21700:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":54154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["21736:12:88","21791:6:88","21844:17:88"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"21700:212:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}}],"id":54155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21686:236:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"21670:252:88","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":54157,"nodeType":"ExpressionStatement","src":"21670:252:88"},{"assignments":[54160],"declarations":[{"constant":false,"id":54160,"mutability":"mutable","name":"newSubnetRegistry","nameLocation":"21955:17:88","nodeType":"VariableDeclaration","scope":54177,"src":"21933:39:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54159,"nodeType":"UserDefinedTypeName","pathNode":{"id":54158,"name":"SubnetRegistryDiamond","nameLocations":["21933:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21933:21:88"},"referencedDeclaration":36853,"src":"21933:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"id":54167,"initialValue":{"arguments":[{"id":54164,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54050,"src":"22001:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":54165,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54039,"src":"22013:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}],"id":54163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"21975:25:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36652_memory_ptr_$returns$_t_contract$_SubnetRegistryDiamond_$36853_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetRegistryDiamond.ConstructorParams memory) returns (contract SubnetRegistryDiamond)"},"typeName":{"id":54162,"nodeType":"UserDefinedTypeName","pathNode":{"id":54161,"name":"SubnetRegistryDiamond","nameLocations":["21979:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"21979:21:88"},"referencedDeclaration":36853,"src":"21979:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}},"id":54166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21975:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"nodeType":"VariableDeclarationStatement","src":"21933:87:88"},{"eventCall":{"arguments":[{"arguments":[{"id":54171,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22065:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":54170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22057:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54169,"name":"address","nodeType":"ElementaryTypeName","src":"22057:7:88","typeDescriptions":{}}},"id":54172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22057:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54168,"name":"SubnetRegistryCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53071,"src":"22035:21:88","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22035:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54174,"nodeType":"EmitStatement","src":"22030:54:88"},{"expression":{"id":54175,"name":"newSubnetRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54160,"src":"22101:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"functionReturnParameters":54044,"id":54176,"nodeType":"Return","src":"22094:24:88"}]},"functionSelector":"c33dd9d5","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetRegistry","nameLocation":"20431:20:88","parameters":{"id":54040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54039,"mutability":"mutable","name":"params","nameLocation":"20508:6:88","nodeType":"VariableDeclaration","scope":54178,"src":"20461:53:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":54038,"nodeType":"UserDefinedTypeName","pathNode":{"id":54037,"name":"SubnetRegistryDiamond.ConstructorParams","nameLocations":["20461:21:88","20483:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"20461:39:88"},"referencedDeclaration":36652,"src":"20461:39:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"20451:69:88"},"returnParameters":{"id":54044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54178,"src":"20537:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":54042,"nodeType":"UserDefinedTypeName","pathNode":{"id":54041,"name":"SubnetRegistryDiamond","nameLocations":["20537:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"20537:21:88"},"referencedDeclaration":36853,"src":"20537:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"20536:23:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54207,"nodeType":"FunctionDefinition","src":"22131:190:88","nodes":[],"body":{"id":54206,"nodeType":"Block","src":"22212:109:88","nodes":[],"statements":[{"body":{"id":54202,"nodeType":"Block","src":"22253:42:88","statements":[{"expression":{"id":54200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54196,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22267:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"baseExpression":{"id":54197,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54181,"src":"22274:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54199,"indexExpression":{"id":54198,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22282:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22274:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22267:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54201,"nodeType":"ExpressionStatement","src":"22267:17:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54190,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22241:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"33","id":54191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22245:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"22241:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54203,"initializationExpression":{"assignments":[54187],"declarations":[{"constant":false,"id":54187,"mutability":"mutable","name":"i","nameLocation":"22234:1:88","nodeType":"VariableDeclaration","scope":54203,"src":"22227:8:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54186,"name":"uint64","nodeType":"ElementaryTypeName","src":"22227:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":54189,"initialValue":{"hexValue":"30","id":54188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22238:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22227:12:88"},"loopExpression":{"expression":{"id":54194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22248:3:88","subExpression":{"id":54193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"22248:1:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":54195,"nodeType":"ExpressionStatement","src":"22248:3:88"},"nodeType":"ForStatement","src":"22222:73:88"},{"expression":{"id":54204,"name":"sum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54184,"src":"22311:3:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":54185,"id":54205,"nodeType":"Return","src":"22304:10:88"}]},"functionSelector":"30dd2c45","implemented":true,"kind":"function","modifiers":[],"name":"totalWeight","nameLocation":"22140:11:88","parameters":{"id":54182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54181,"mutability":"mutable","name":"weights","nameLocation":"22169:7:88","nodeType":"VariableDeclaration","scope":54207,"src":"22152:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54179,"name":"uint256","nodeType":"ElementaryTypeName","src":"22152:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54180,"nodeType":"ArrayTypeName","src":"22152:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"22151:26:88"},"returnParameters":{"id":54185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54184,"mutability":"mutable","name":"sum","nameLocation":"22207:3:88","nodeType":"VariableDeclaration","scope":54207,"src":"22199:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54183,"name":"uint256","nodeType":"ElementaryTypeName","src":"22199:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22198:13:88"},"scope":55375,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54382,"nodeType":"FunctionDefinition","src":"22327:933:88","nodes":[],"body":{"id":54381,"nodeType":"Block","src":"22430:830:88","nodes":[],"statements":[{"expression":{"id":54224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54217,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22440:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22470:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22453:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54219,"nodeType":"UserDefinedTypeName","pathNode":{"id":54218,"name":"FvmAddress","nameLocations":["22457:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22457:10:88"},"referencedDeclaration":49998,"src":"22457:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54220,"nodeType":"ArrayTypeName","src":"22457:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22453:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"src":"22440:32:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54225,"nodeType":"ExpressionStatement","src":"22440:32:88"},{"expression":{"id":54236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54226,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22482:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54228,"indexExpression":{"hexValue":"30","id":54227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22493:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22482:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"313030","id":54233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22528:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54231,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22520:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22523:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22520:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22520:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54229,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22498:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22515:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22498:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22498:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22482:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54237,"nodeType":"ExpressionStatement","src":"22482:51:88"},{"expression":{"id":54248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54238,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22543:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54240,"indexExpression":{"hexValue":"31","id":54239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22554:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22543:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":54245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22589:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54243,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22581:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22584:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22581:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22581:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54241,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22559:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22576:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22559:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22559:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22543:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54249,"nodeType":"ExpressionStatement","src":"22543:51:88"},{"expression":{"id":54260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54250,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54212,"src":"22604:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54252,"indexExpression":{"hexValue":"32","id":54251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22615:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22604:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"333030","id":54257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22650:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54255,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22642:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22645:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22642:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22642:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54253,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"22620:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22637:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"22620:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22620:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"22604:51:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54261,"nodeType":"ExpressionStatement","src":"22604:51:88"},{"expression":{"id":54268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54262,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22666:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22692:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22678:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54263,"name":"address","nodeType":"ElementaryTypeName","src":"22682:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54264,"nodeType":"ArrayTypeName","src":"22682:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22678:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"22666:28:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54269,"nodeType":"ExpressionStatement","src":"22666:28:88"},{"expression":{"id":54277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54270,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22704:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54272,"indexExpression":{"hexValue":"30","id":54271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22714:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22704:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"313030","id":54275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22727:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54273,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22719:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22722:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22719:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22719:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22704:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54278,"nodeType":"ExpressionStatement","src":"22704:27:88"},{"expression":{"id":54286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54279,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22741:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54281,"indexExpression":{"hexValue":"31","id":54280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22751:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22741:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323030","id":54284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22764:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54282,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22756:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22759:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22756:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22756:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22741:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54287,"nodeType":"ExpressionStatement","src":"22741:27:88"},{"expression":{"id":54295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54288,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54215,"src":"22778:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54290,"indexExpression":{"hexValue":"32","id":54289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22788:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22778:12:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"333030","id":54293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22801:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54291,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22793:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22796:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22793:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22793:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22778:27:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54296,"nodeType":"ExpressionStatement","src":"22778:27:88"},{"assignments":[54301],"declarations":[{"constant":false,"id":54301,"mutability":"mutable","name":"weights","nameLocation":"22833:7:88","nodeType":"VariableDeclaration","scope":54381,"src":"22816:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54299,"name":"uint256","nodeType":"ElementaryTypeName","src":"22816:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54300,"nodeType":"ArrayTypeName","src":"22816:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54307,"initialValue":{"arguments":[{"hexValue":"33","id":54305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22857:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"22843:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54302,"name":"uint256","nodeType":"ElementaryTypeName","src":"22847:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54303,"nodeType":"ArrayTypeName","src":"22847:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22843:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"22816:43:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"313030","id":54313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22886:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":54311,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22878:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22881:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22878:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22878:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22892:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22870:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22873:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22870:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22870:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54317,"nodeType":"ExpressionStatement","src":"22870:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"323030","id":54323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22920:3:88","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":54321,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22912:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22915:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22912:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22912:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22926:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54318,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22904:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22907:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22904:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22904:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54327,"nodeType":"ExpressionStatement","src":"22904:24:88"},{"expression":{"arguments":[{"arguments":[{"hexValue":"333030","id":54333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22954:3:88","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"}],"expression":{"id":54331,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22946:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22949:4:88","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"22946:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22946:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22960:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54328,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"22938:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22941:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"22938:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22938:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54337,"nodeType":"ExpressionStatement","src":"22938:24:88"},{"expression":{"id":54342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54338,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22973:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54340,"indexExpression":{"hexValue":"30","id":54339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22981:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22973:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22986:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22973:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54343,"nodeType":"ExpressionStatement","src":"22973:16:88"},{"expression":{"id":54348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54344,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"22999:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54346,"indexExpression":{"hexValue":"31","id":54345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23007:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22999:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23012:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"22999:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54349,"nodeType":"ExpressionStatement","src":"22999:16:88"},{"expression":{"id":54354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54350,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"23025:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54352,"indexExpression":{"hexValue":"32","id":54351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23033:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23025:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23038:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"23025:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54355,"nodeType":"ExpressionStatement","src":"23025:16:88"},{"assignments":[54358],"declarations":[{"constant":false,"id":54358,"mutability":"mutable","name":"finality","nameLocation":"23074:8:88","nodeType":"VariableDeclaration","scope":54381,"src":"23052:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54357,"nodeType":"UserDefinedTypeName","pathNode":{"id":54356,"name":"ParentFinality","nameLocations":["23052:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"23052:14:88"},"referencedDeclaration":49918,"src":"23052:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54367,"initialValue":{"arguments":[{"expression":{"id":54360,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23109:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:6:88","memberName":"number","nodeType":"MemberAccess","src":"23109:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23142:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23134:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23134:7:88","typeDescriptions":{}}},"id":54365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23134:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54359,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"23085:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23101:6:88","23123:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"23085:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"23052:94:88"},{"expression":{"arguments":[{"expression":{"id":54371,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"23166:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23177:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"23166:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54368,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"23157:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23160:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"23157:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23157:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54374,"nodeType":"ExpressionStatement","src":"23157:33:88"},{"expression":{"arguments":[{"id":54378,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54358,"src":"23244:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54375,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"23200:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23223:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"23200:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54380,"nodeType":"ExpressionStatement","src":"23200:53:88"}]},"functionSelector":"9c821dc6","implemented":true,"kind":"function","modifiers":[],"name":"setupValidators","nameLocation":"22336:15:88","parameters":{"id":54208,"nodeType":"ParameterList","parameters":[],"src":"22351:2:88"},"returnParameters":{"id":54216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54212,"mutability":"mutable","name":"validators","nameLocation":"22390:10:88","nodeType":"VariableDeclaration","scope":54382,"src":"22370:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54210,"nodeType":"UserDefinedTypeName","pathNode":{"id":54209,"name":"FvmAddress","nameLocations":["22370:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"22370:10:88"},"referencedDeclaration":49998,"src":"22370:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54211,"nodeType":"ArrayTypeName","src":"22370:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"},{"constant":false,"id":54215,"mutability":"mutable","name":"addresses","nameLocation":"22419:9:88","nodeType":"VariableDeclaration","scope":54382,"src":"22402:26:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54213,"name":"address","nodeType":"ElementaryTypeName","src":"22402:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54214,"nodeType":"ArrayTypeName","src":"22402:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"22369:60:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54475,"nodeType":"FunctionDefinition","src":"23266:1297:88","nodes":[],"body":{"id":54474,"nodeType":"Block","src":"23350:1213:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54392,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"23375:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":54393,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23402:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54391,"name":"registerSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55282,"src":"23360:14:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":54394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23360:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54395,"nodeType":"ExpressionStatement","src":"23360:46:88"},{"assignments":[54398],"declarations":[{"constant":false,"id":54398,"mutability":"mutable","name":"crossMsg","nameLocation":"23433:8:88","nodeType":"VariableDeclaration","scope":54474,"src":"23417:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":54397,"nodeType":"UserDefinedTypeName","pathNode":{"id":54396,"name":"CrossMsg","nameLocations":["23417:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"23417:8:88"},"referencedDeclaration":49974,"src":"23417:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"id":54438,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54406,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23596:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54402,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23555:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23564:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23555:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23581:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23555:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23555:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54410,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54384,"src":"23659:6:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54408,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23637:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23654:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23637:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23637:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54401,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23512:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23545:8:88","23625:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23512:173:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"arguments":[{"arguments":[{"id":54418,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23791:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54414,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"23750:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23759:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"23750:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23776:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"23750:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23750:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54422,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"23851:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54420,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"23829:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23846:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"23829:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23829:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"id":54413,"name":"IPCAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"23707:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_IPCAddress_$50204_storage_ptr_$","typeString":"type(struct IPCAddress storage pointer)"}},"id":54424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23740:8:88","23817:10:88"],"names":["subnetId","rawAddress"],"nodeType":"FunctionCall","src":"23707:167:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54425,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"23899:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23899:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":54428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23949:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":54429,"name":"METHOD_SEND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36879,"src":"23976:11:88","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"hexValue":"30","id":54432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24023:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24013:9:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54430,"name":"bytes","nodeType":"ElementaryTypeName","src":"24017:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24013:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":54434,"name":"DEFAULT_CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52632,"src":"24048:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54400,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"23476:11:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorableMsg_$49991_storage_ptr_$","typeString":"type(struct StorableMsg storage pointer)"}},"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23506:4:88","23703:2:88","23892:5:88","23942:5:88","23968:6:88","24005:6:88","24043:3:88"],"names":["from","to","value","nonce","method","params","fee"],"nodeType":"FunctionCall","src":"23476:608:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},{"hexValue":"66616c7365","id":54436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24107:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54399,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"23444:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CrossMsg_$49974_storage_ptr_$","typeString":"type(struct CrossMsg storage pointer)"}},"id":54437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23467:7:88","24098:7:88"],"names":["message","wrapped"],"nodeType":"FunctionCall","src":"23444:679:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"VariableDeclarationStatement","src":"23417:706:88"},{"assignments":[54443],"declarations":[{"constant":false,"id":54443,"mutability":"mutable","name":"msgs","nameLocation":"24151:4:88","nodeType":"VariableDeclaration","scope":54474,"src":"24133:22:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":54441,"nodeType":"UserDefinedTypeName","pathNode":{"id":54440,"name":"CrossMsg","nameLocations":["24133:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24133:8:88"},"referencedDeclaration":49974,"src":"24133:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54442,"nodeType":"ArrayTypeName","src":"24133:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"id":54450,"initialValue":{"arguments":[{"hexValue":"31","id":54448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24173:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24158:14:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":54445,"nodeType":"UserDefinedTypeName","pathNode":{"id":54444,"name":"CrossMsg","nameLocations":["24162:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"24162:8:88"},"referencedDeclaration":49974,"src":"24162:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":54446,"nodeType":"ArrayTypeName","src":"24162:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":54449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24158:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24133:42:88"},{"expression":{"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54451,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24185:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":54453,"indexExpression":{"hexValue":"30","id":54452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24190:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24185:7:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54454,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24195:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"24185:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54456,"nodeType":"ExpressionStatement","src":"24185:18:88"},{"expression":{"arguments":[{"expression":{"id":54460,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"24442:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24453:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"24442:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54457,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24433:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24436:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"24433:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24433:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54463,"nodeType":"ExpressionStatement","src":"24433:33:88"},{"expression":{"arguments":[{"id":54467,"name":"msgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54443,"src":"24516:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"expression":{"id":54464,"name":"gwXnetMessagingFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52793,"src":"24476:20:88","typeDescriptions":{"typeIdentifier":"t_contract$_XnetMessagingFacet_$40144","typeString":"contract XnetMessagingFacet"}},"id":54466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24497:18:88","memberName":"applyCrossMessages","nodeType":"MemberAccess","referencedDeclaration":40143,"src":"24476:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct CrossMsg memory[] memory) external"}},"id":54468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24476:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54469,"nodeType":"ExpressionStatement","src":"24476:45:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54470,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54398,"src":"24539:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":54471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24548:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40590,"src":"24539:15:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24539:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":54390,"id":54473,"nodeType":"Return","src":"24532:24:88"}]},"functionSelector":"9b211080","implemented":true,"kind":"function","modifiers":[],"name":"setupWhiteListMethod","nameLocation":"23275:20:88","parameters":{"id":54387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54384,"mutability":"mutable","name":"caller","nameLocation":"23304:6:88","nodeType":"VariableDeclaration","scope":54475,"src":"23296:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54383,"name":"address","nodeType":"ElementaryTypeName","src":"23296:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54386,"mutability":"mutable","name":"src","nameLocation":"23320:3:88","nodeType":"VariableDeclaration","scope":54475,"src":"23312:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54385,"name":"address","nodeType":"ElementaryTypeName","src":"23312:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23295:29:88"},"returnParameters":{"id":54390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54475,"src":"23341:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23341:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23340:9:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54486,"nodeType":"FunctionDefinition","src":"24569:93:88","nodes":[],"body":{"id":54485,"nodeType":"Block","src":"24617:45:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54481,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54477,"src":"24640:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":54482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24651:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":54480,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[54486,54569],"referencedDeclaration":54569,"src":"24627:12:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":54483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24627:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54484,"nodeType":"ExpressionStatement","src":"24627:28:88"}]},"functionSelector":"4d238c8e","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24578:12:88","parameters":{"id":54478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54477,"mutability":"mutable","name":"validator","nameLocation":"24599:9:88","nodeType":"VariableDeclaration","scope":54486,"src":"24591:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54476,"name":"address","nodeType":"ElementaryTypeName","src":"24591:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24590:19:88"},"returnParameters":{"id":54479,"nodeType":"ParameterList","parameters":[],"src":"24617:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54569,"nodeType":"FunctionDefinition","src":"24668:610:88","nodes":[],"body":{"id":54568,"nodeType":"Block","src":"24732:546:88","nodes":[],"statements":[{"assignments":[54497],"declarations":[{"constant":false,"id":54497,"mutability":"mutable","name":"validators","nameLocation":"24762:10:88","nodeType":"VariableDeclaration","scope":54568,"src":"24742:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress[]"},"typeName":{"baseType":{"id":54495,"nodeType":"UserDefinedTypeName","pathNode":{"id":54494,"name":"FvmAddress","nameLocations":["24742:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24742:10:88"},"referencedDeclaration":49998,"src":"24742:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54496,"nodeType":"ArrayTypeName","src":"24742:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}},"visibility":"internal"}],"id":54504,"initialValue":{"arguments":[{"hexValue":"31","id":54502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24792:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24775:16:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct FvmAddress memory[] memory)"},"typeName":{"baseType":{"id":54499,"nodeType":"UserDefinedTypeName","pathNode":{"id":54498,"name":"FvmAddress","nameLocations":["24779:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"24779:10:88"},"referencedDeclaration":49998,"src":"24779:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"id":54500,"nodeType":"ArrayTypeName","src":"24779:12:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_storage_$dyn_storage_ptr","typeString":"struct FvmAddress[]"}}},"id":54503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24775:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24742:52:88"},{"expression":{"id":54512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54505,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54497,"src":"24804:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FvmAddress_$49998_memory_ptr_$dyn_memory_ptr","typeString":"struct FvmAddress memory[] memory"}},"id":54507,"indexExpression":{"hexValue":"30","id":54506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24815:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24804:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24842:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54508,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"24820:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24837:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"24820:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24820:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"src":"24804:48:88","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},"id":54513,"nodeType":"ExpressionStatement","src":"24804:48:88"},{"assignments":[54518],"declarations":[{"constant":false,"id":54518,"mutability":"mutable","name":"weights","nameLocation":"24879:7:88","nodeType":"VariableDeclaration","scope":54568,"src":"24862:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54516,"name":"uint256","nodeType":"ElementaryTypeName","src":"24862:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54517,"nodeType":"ArrayTypeName","src":"24862:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54524,"initialValue":{"arguments":[{"hexValue":"31","id":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24903:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"24889:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54519,"name":"uint256","nodeType":"ElementaryTypeName","src":"24893:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54520,"nodeType":"ArrayTypeName","src":"24893:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24889:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"24862:43:88"},{"expression":{"id":54529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54525,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54518,"src":"24915:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54527,"indexExpression":{"hexValue":"30","id":54526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24923:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24915:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54528,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54490,"src":"24928:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24915:19:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54530,"nodeType":"ExpressionStatement","src":"24915:19:88"},{"expression":{"arguments":[{"id":54534,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54488,"src":"24953:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24964:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54531,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"24945:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24948:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"24945:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24945:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54537,"nodeType":"ExpressionStatement","src":"24945:21:88"},{"assignments":[54540],"declarations":[{"constant":false,"id":54540,"mutability":"mutable","name":"finality","nameLocation":"24998:8:88","nodeType":"VariableDeclaration","scope":54568,"src":"24976:30:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":54539,"nodeType":"UserDefinedTypeName","pathNode":{"id":54538,"name":"ParentFinality","nameLocations":["24976:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"24976:14:88"},"referencedDeclaration":49918,"src":"24976:14:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"id":54549,"initialValue":{"arguments":[{"expression":{"id":54542,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25033:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25039:6:88","memberName":"number","nodeType":"MemberAccess","src":"25033:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":54546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25066:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":54545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25058:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":54544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25058:7:88","typeDescriptions":{}}},"id":54547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25058:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54541,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"25009:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ParentFinality_$49918_storage_ptr_$","typeString":"type(struct ParentFinality storage pointer)"}},"id":54548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["25025:6:88","25047:9:88"],"names":["height","blockHash"],"nodeType":"FunctionCall","src":"25009:61:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"VariableDeclarationStatement","src":"24976:94:88"},{"expression":{"arguments":[{"expression":{"id":54553,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"25160:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FilAddress_$1428_$","typeString":"type(library FilAddress)"}},"id":54554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25171:12:88","memberName":"SYSTEM_ACTOR","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"25160:23:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54550,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25146:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25149:10:88","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":13840,"src":"25146:13:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25146:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54556,"nodeType":"ExpressionStatement","src":"25146:38:88"},{"expression":{"arguments":[{"id":54560,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54540,"src":"25238:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}],"expression":{"id":54557,"name":"gwTopDownFinalityFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52796,"src":"25194:22:88","typeDescriptions":{"typeIdentifier":"t_contract$_TopDownFinalityFacet_$40071","typeString":"contract TopDownFinalityFacet"}},"id":54559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25217:20:88","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":39933,"src":"25194:43:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ParentFinality_$49918_memory_ptr_$returns$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality memory) external returns (bool,struct ParentFinality memory)"}},"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25194:53:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"tuple(bool,struct ParentFinality memory)"}},"id":54562,"nodeType":"ExpressionStatement","src":"25194:53:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54563,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"25257:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25260:9:88","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":13857,"src":"25257:12:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":54566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25257:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54567,"nodeType":"ExpressionStatement","src":"25257:14:88"}]},"functionSelector":"fc6c1f02","implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"24677:12:88","parameters":{"id":54491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54488,"mutability":"mutable","name":"validator","nameLocation":"24698:9:88","nodeType":"VariableDeclaration","scope":54569,"src":"24690:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54487,"name":"address","nodeType":"ElementaryTypeName","src":"24690:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54490,"mutability":"mutable","name":"weight","nameLocation":"24717:6:88","nodeType":"VariableDeclaration","scope":54569,"src":"24709:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54489,"name":"uint256","nodeType":"ElementaryTypeName","src":"24709:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24689:35:88"},"returnParameters":{"id":54492,"nodeType":"ParameterList","parameters":[],"src":"24732:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54582,"nodeType":"FunctionDefinition","src":"25284:112:88","nodes":[],"body":{"id":54581,"nodeType":"Block","src":"25328:68:88","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"726577617264206d6574686f642063616c6c65642077697468202564","id":54577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25350:30:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},"value":"reward method called with %d"},{"id":54578,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54571,"src":"25382:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55861a7568c6b5d6dcd1a9f64f8956ae98a33ee3d9e78e5f98c7f36275627d7a","typeString":"literal_string \"reward method called with %d\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54574,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22286,"src":"25338:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$22286_$","typeString":"type(library console)"}},"id":54576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25346:3:88","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"25338:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":54579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25338:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54580,"nodeType":"ExpressionStatement","src":"25338:51:88"}]},"functionSelector":"a9fb763c","implemented":true,"kind":"function","modifiers":[],"name":"reward","nameLocation":"25293:6:88","parameters":{"id":54572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54571,"mutability":"mutable","name":"amount","nameLocation":"25308:6:88","nodeType":"VariableDeclaration","scope":54582,"src":"25300:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54570,"name":"uint256","nodeType":"ElementaryTypeName","src":"25300:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25299:16:88"},"returnParameters":{"id":54573,"nodeType":"ParameterList","parameters":[],"src":"25328:0:88"},"scope":55375,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":54597,"nodeType":"FunctionDefinition","src":"25402:131:88","nodes":[],"body":{"id":54596,"nodeType":"Block","src":"25466:67:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54590,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54584,"src":"25481:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54591,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54586,"src":"25496:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":54592,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"25508:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25519:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"25508:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}],"id":54589,"name":"fund","nodeType":"Identifier","overloadedDeclarations":[54597,54722],"referencedDeclaration":54722,"src":"25476:4:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_SupplyKind_$50229_$returns$__$","typeString":"function (address,uint256,enum SupplyKind)"}},"id":54594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25476:50:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54595,"nodeType":"ExpressionStatement","src":"25476:50:88"}]},"functionSelector":"7b1837de","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25411:4:88","parameters":{"id":54587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54584,"mutability":"mutable","name":"funderAddress","nameLocation":"25424:13:88","nodeType":"VariableDeclaration","scope":54597,"src":"25416:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54583,"name":"address","nodeType":"ElementaryTypeName","src":"25416:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54586,"mutability":"mutable","name":"fundAmount","nameLocation":"25447:10:88","nodeType":"VariableDeclaration","scope":54597,"src":"25439:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54585,"name":"uint256","nodeType":"ElementaryTypeName","src":"25439:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25415:43:88"},"returnParameters":{"id":54588,"nodeType":"ParameterList","parameters":[],"src":"25466:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54722,"nodeType":"FunctionDefinition","src":"25539:1180:88","nodes":[],"body":{"id":54721,"nodeType":"Block","src":"25620:1099:88","nodes":[],"statements":[{"assignments":[54609,null,54611,null,54613],"declarations":[{"constant":false,"id":54609,"mutability":"mutable","name":"subnetId","nameLocation":"25712:8:88","nodeType":"VariableDeclaration","scope":54721,"src":"25696:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":54608,"nodeType":"UserDefinedTypeName","pathNode":{"id":54607,"name":"SubnetID","nameLocations":["25696:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"25696:8:88"},"referencedDeclaration":50077,"src":"25696:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},null,{"constant":false,"id":54611,"mutability":"mutable","name":"nonceBefore","nameLocation":"25732:11:88","nodeType":"VariableDeclaration","scope":54721,"src":"25724:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54610,"name":"uint256","nodeType":"ElementaryTypeName","src":"25724:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54613,"mutability":"mutable","name":"circSupplyBefore","nameLocation":"25755:16:88","nodeType":"VariableDeclaration","scope":54721,"src":"25747:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54612,"name":"uint256","nodeType":"ElementaryTypeName","src":"25747:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54620,"initialValue":{"arguments":[{"arguments":[{"id":54617,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"25793:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25785:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54615,"name":"address","nodeType":"ElementaryTypeName","src":"25785:7:88","typeDescriptions":{}}},"id":54618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25785:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54614,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"25775:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25775:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25695:109:88"},{"assignments":[54622],"declarations":[{"constant":false,"id":54622,"mutability":"mutable","name":"expectedTopDownMsgsLength","nameLocation":"25823:25:88","nodeType":"VariableDeclaration","scope":54721,"src":"25815:33:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54621,"name":"uint256","nodeType":"ElementaryTypeName","src":"25815:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54629,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54625,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"25887:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54623,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"25851:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25860:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"25851:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25851:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25899:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25851:49:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25815:85:88"},{"assignments":[54631],"declarations":[{"constant":false,"id":54631,"mutability":"mutable","name":"expectedNonce","nameLocation":"25918:13:88","nodeType":"VariableDeclaration","scope":54721,"src":"25910:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54630,"name":"uint256","nodeType":"ElementaryTypeName","src":"25910:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54635,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54632,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54611,"src":"25934:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25948:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25934:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25910:39:88"},{"assignments":[54637],"declarations":[{"constant":false,"id":54637,"mutability":"mutable","name":"expectedCircSupply","nameLocation":"25967:18:88","nodeType":"VariableDeclaration","scope":54721,"src":"25959:26:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54636,"name":"uint256","nodeType":"ElementaryTypeName","src":"25959:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54641,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54638,"name":"circSupplyBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54613,"src":"25988:16:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54639,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26007:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25988:29:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25959:58:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54643,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26036:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26045:11:88","memberName":"crossMsgFee","nodeType":"MemberAccess","referencedDeclaration":37590,"src":"26036:20:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26061:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26036:26:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63726f73734d73674665652069732030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26064:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""},"value":"crossMsgFee is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9eeca74028a789299bc11100cc469175c757a16f763cced393736a9a03de87c7","typeString":"literal_string \"crossMsgFee is 0\""}],"id":54642,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26028:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26028:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54650,"nodeType":"ExpressionStatement","src":"26028:55:88"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54651,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26098:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54652,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26106:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26117:6:88","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"26106:17:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26098:25:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54668,"name":"mode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54604,"src":"26241:4:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":54669,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"26249:10:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":54670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26260:5:88","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"26249:16:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"26241:24:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54684,"nodeType":"IfStatement","src":"26237:138:88","trueBody":{"id":54683,"nodeType":"Block","src":"26267:108:88","statements":[{"expression":{"arguments":[{"id":54675,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26305:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54678,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26337:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54676,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26315:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26332:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26315:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26315:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}},{"id":54680,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26353:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54672,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26281:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26291:13:88","memberName":"fundWithToken","nodeType":"MemberAccess","referencedDeclaration":38822,"src":"26281:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory,uint256) external"}},"id":54681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26281:83:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54682,"nodeType":"ExpressionStatement","src":"26281:83:88"}]}},"id":54685,"nodeType":"IfStatement","src":"26094:281:88","trueBody":{"id":54667,"nodeType":"Block","src":"26125:106:88","statements":[{"expression":{"arguments":[{"id":54660,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26173:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[{"id":54663,"name":"funderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54599,"src":"26205:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54661,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"26183:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26200:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"26183:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":54664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26183:36:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":54655,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"26139:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":54657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26149:4:88","memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":38764,"src":"26139:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54658,"name":"fundAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54601,"src":"26161:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26139:33:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct SubnetID memory,struct FvmAddress memory) payable external"}},"id":54665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26139:81:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54666,"nodeType":"ExpressionStatement","src":"26139:81:88"}]}},{"assignments":[null,null,54687,null,54689],"declarations":[null,null,{"constant":false,"id":54687,"mutability":"mutable","name":"nonce","nameLocation":"26398:5:88","nodeType":"VariableDeclaration","scope":54721,"src":"26390:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54686,"name":"uint256","nodeType":"ElementaryTypeName","src":"26390:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":54689,"mutability":"mutable","name":"circSupply","nameLocation":"26415:10:88","nodeType":"VariableDeclaration","scope":54721,"src":"26407:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54688,"name":"uint256","nodeType":"ElementaryTypeName","src":"26407:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54696,"initialValue":{"arguments":[{"arguments":[{"id":54693,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26447:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}],"id":54692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26439:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54691,"name":"address","nodeType":"ElementaryTypeName","src":"26439:7:88","typeDescriptions":{}}},"id":54694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26439:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54690,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"26429:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":54695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26429:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"26385:73:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":54700,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54609,"src":"26513:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":54698,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"26477:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":54699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26486:26:88","memberName":"getSubnetTopDownMsgsLength","nodeType":"MemberAccess","referencedDeclaration":37762,"src":"26477:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct SubnetID memory) view external returns (uint256)"}},"id":54701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26477:45:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54702,"name":"expectedTopDownMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54622,"src":"26526:25:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26477:74:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206c656e67746873","id":54704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26553:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""},"value":"unexpected lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16a9658aef189dba24389e28e0e56a6257f13f39213e36d5b06a12f5e7a257ab","typeString":"literal_string \"unexpected lengths\""}],"id":54697,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26469:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26469:105:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54706,"nodeType":"ExpressionStatement","src":"26469:105:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54708,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54687,"src":"26593:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54709,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54631,"src":"26602:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26593:22:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":54711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26617:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":54707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26585:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26585:51:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54713,"nodeType":"ExpressionStatement","src":"26585:51:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54715,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54689,"src":"26654:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54716,"name":"expectedCircSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54637,"src":"26668:18:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26654:32:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":54718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26688:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":54714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26646:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26646:66:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54720,"nodeType":"ExpressionStatement","src":"26646:66:88"}]},"functionSelector":"eb8df052","implemented":true,"kind":"function","modifiers":[],"name":"fund","nameLocation":"25548:4:88","parameters":{"id":54605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54599,"mutability":"mutable","name":"funderAddress","nameLocation":"25561:13:88","nodeType":"VariableDeclaration","scope":54722,"src":"25553:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54598,"name":"address","nodeType":"ElementaryTypeName","src":"25553:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54601,"mutability":"mutable","name":"fundAmount","nameLocation":"25584:10:88","nodeType":"VariableDeclaration","scope":54722,"src":"25576:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54600,"name":"uint256","nodeType":"ElementaryTypeName","src":"25576:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54604,"mutability":"mutable","name":"mode","nameLocation":"25607:4:88","nodeType":"VariableDeclaration","scope":54722,"src":"25596:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":54603,"nodeType":"UserDefinedTypeName","pathNode":{"id":54602,"name":"SupplyKind","nameLocations":["25596:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"25596:10:88"},"referencedDeclaration":50229,"src":"25596:10:88","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"25552:60:88"},"returnParameters":{"id":54606,"nodeType":"ParameterList","parameters":[],"src":"25620:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54753,"nodeType":"FunctionDefinition","src":"26725:243:88","nodes":[],"body":{"id":54752,"nodeType":"Block","src":"26793:175:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":54732,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26812:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54729,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26803:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26806:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"26803:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26803:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54734,"nodeType":"ExpressionStatement","src":"26803:26:88"},{"expression":{"arguments":[{"id":54738,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54724,"src":"26847:16:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":54741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":54739,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26865:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":54740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26865:29:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":54735,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"26839:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26842:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"26839:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26839:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54743,"nodeType":"ExpressionStatement","src":"26839:56:88"},{"expression":{"arguments":[{"id":54749,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54726,"src":"26954:6:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54744,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"26905:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":54746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26915:4:88","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51605,"src":"26905:14:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":54748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54747,"name":"DEFAULT_COLLATERAL_AMOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52620,"src":"26927:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"src":"26905:48:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":54750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26905:56:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54751,"nodeType":"ExpressionStatement","src":"26905:56:88"}]},"functionSelector":"d8d52713","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"26734:4:88","parameters":{"id":54727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54724,"mutability":"mutable","name":"validatorAddress","nameLocation":"26747:16:88","nodeType":"VariableDeclaration","scope":54753,"src":"26739:24:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54723,"name":"address","nodeType":"ElementaryTypeName","src":"26739:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54726,"mutability":"mutable","name":"pubkey","nameLocation":"26778:6:88","nodeType":"VariableDeclaration","scope":54753,"src":"26765:19:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54725,"name":"bytes","nodeType":"ElementaryTypeName","src":"26765:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26738:47:88"},"returnParameters":{"id":54728,"nodeType":"ParameterList","parameters":[],"src":"26793:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54800,"nodeType":"FunctionDefinition","src":"26974:298:88","nodes":[],"body":{"id":54799,"nodeType":"Block","src":"27042:230:88","nodes":[],"statements":[{"assignments":[54764],"declarations":[{"constant":false,"id":54764,"mutability":"mutable","name":"validators","nameLocation":"27069:10:88","nodeType":"VariableDeclaration","scope":54799,"src":"27052:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54762,"name":"address","nodeType":"ElementaryTypeName","src":"27052:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54763,"nodeType":"ArrayTypeName","src":"27052:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54770,"initialValue":{"arguments":[{"hexValue":"31","id":54768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27096:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27082:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54765,"name":"address","nodeType":"ElementaryTypeName","src":"27086:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54766,"nodeType":"ArrayTypeName","src":"27086:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27082:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27052:46:88"},{"expression":{"id":54775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54771,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27108:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54773,"indexExpression":{"hexValue":"30","id":54772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27119:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27108:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54774,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54755,"src":"27124:9:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27108:25:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54776,"nodeType":"ExpressionStatement","src":"27108:25:88"},{"assignments":[54781],"declarations":[{"constant":false,"id":54781,"mutability":"mutable","name":"privKeys","nameLocation":"27161:8:88","nodeType":"VariableDeclaration","scope":54799,"src":"27144:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54779,"name":"uint256","nodeType":"ElementaryTypeName","src":"27144:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54780,"nodeType":"ArrayTypeName","src":"27144:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54787,"initialValue":{"arguments":[{"hexValue":"31","id":54785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27186:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27172:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54782,"name":"uint256","nodeType":"ElementaryTypeName","src":"27176:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54783,"nodeType":"ArrayTypeName","src":"27176:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27172:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27144:44:88"},{"expression":{"id":54792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54788,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27198:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54790,"indexExpression":{"hexValue":"30","id":54789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27207:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27198:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54791,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54757,"src":"27212:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27198:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54793,"nodeType":"ExpressionStatement","src":"27198:21:88"},{"expression":{"arguments":[{"id":54795,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54764,"src":"27244:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54796,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54781,"src":"27256:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54794,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27230:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27230:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54798,"nodeType":"ExpressionStatement","src":"27230:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"26983:13:88","parameters":{"id":54758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54755,"mutability":"mutable","name":"validator","nameLocation":"27005:9:88","nodeType":"VariableDeclaration","scope":54800,"src":"26997:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54754,"name":"address","nodeType":"ElementaryTypeName","src":"26997:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54757,"mutability":"mutable","name":"privKey","nameLocation":"27024:7:88","nodeType":"VariableDeclaration","scope":54800,"src":"27016:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54756,"name":"uint256","nodeType":"ElementaryTypeName","src":"27016:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26996:36:88"},"returnParameters":{"id":54759,"nodeType":"ParameterList","parameters":[],"src":"27042:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54863,"nodeType":"FunctionDefinition","src":"27278:408:88","nodes":[],"body":{"id":54862,"nodeType":"Block","src":"27386:300:88","nodes":[],"statements":[{"assignments":[54815],"declarations":[{"constant":false,"id":54815,"mutability":"mutable","name":"validators","nameLocation":"27413:10:88","nodeType":"VariableDeclaration","scope":54862,"src":"27396:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54813,"name":"address","nodeType":"ElementaryTypeName","src":"27396:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54814,"nodeType":"ArrayTypeName","src":"27396:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54821,"initialValue":{"arguments":[{"hexValue":"32","id":54819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27440:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27426:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54816,"name":"address","nodeType":"ElementaryTypeName","src":"27430:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54817,"nodeType":"ArrayTypeName","src":"27430:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27426:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27396:46:88"},{"expression":{"id":54826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54822,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27452:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54824,"indexExpression":{"hexValue":"30","id":54823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27463:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27452:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54825,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54802,"src":"27468:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27452:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54827,"nodeType":"ExpressionStatement","src":"27452:26:88"},{"expression":{"id":54832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54828,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27488:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54830,"indexExpression":{"hexValue":"31","id":54829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27499:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27488:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54831,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54806,"src":"27504:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27488:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54833,"nodeType":"ExpressionStatement","src":"27488:26:88"},{"assignments":[54838],"declarations":[{"constant":false,"id":54838,"mutability":"mutable","name":"privKeys","nameLocation":"27542:8:88","nodeType":"VariableDeclaration","scope":54862,"src":"27525:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54836,"name":"uint256","nodeType":"ElementaryTypeName","src":"27525:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54837,"nodeType":"ArrayTypeName","src":"27525:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54844,"initialValue":{"arguments":[{"hexValue":"32","id":54842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27567:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":54841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27553:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54839,"name":"uint256","nodeType":"ElementaryTypeName","src":"27557:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54840,"nodeType":"ArrayTypeName","src":"27557:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27553:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27525:44:88"},{"expression":{"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54845,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27579:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54847,"indexExpression":{"hexValue":"30","id":54846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27588:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27579:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54848,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54804,"src":"27593:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27579:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54850,"nodeType":"ExpressionStatement","src":"27579:22:88"},{"expression":{"id":54855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54851,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27611:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54853,"indexExpression":{"hexValue":"31","id":54852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27620:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27611:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54854,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54808,"src":"27625:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27611:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54856,"nodeType":"ExpressionStatement","src":"27611:22:88"},{"expression":{"arguments":[{"id":54858,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54815,"src":"27658:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54859,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54838,"src":"27670:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54857,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"27644:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27644:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54861,"nodeType":"ExpressionStatement","src":"27644:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27287:13:88","parameters":{"id":54809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54802,"mutability":"mutable","name":"validator1","nameLocation":"27309:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27301:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54801,"name":"address","nodeType":"ElementaryTypeName","src":"27301:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54804,"mutability":"mutable","name":"privKey1","nameLocation":"27329:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27321:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54803,"name":"uint256","nodeType":"ElementaryTypeName","src":"27321:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54806,"mutability":"mutable","name":"validator2","nameLocation":"27347:10:88","nodeType":"VariableDeclaration","scope":54863,"src":"27339:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54805,"name":"address","nodeType":"ElementaryTypeName","src":"27339:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54808,"mutability":"mutable","name":"privKey2","nameLocation":"27367:8:88","nodeType":"VariableDeclaration","scope":54863,"src":"27359:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54807,"name":"uint256","nodeType":"ElementaryTypeName","src":"27359:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27300:76:88"},"returnParameters":{"id":54810,"nodeType":"ParameterList","parameters":[],"src":"27386:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54942,"nodeType":"FunctionDefinition","src":"27692:568:88","nodes":[],"body":{"id":54941,"nodeType":"Block","src":"27892:368:88","nodes":[],"statements":[{"assignments":[54882],"declarations":[{"constant":false,"id":54882,"mutability":"mutable","name":"validators","nameLocation":"27919:10:88","nodeType":"VariableDeclaration","scope":54941,"src":"27902:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54880,"name":"address","nodeType":"ElementaryTypeName","src":"27902:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54881,"nodeType":"ArrayTypeName","src":"27902:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":54888,"initialValue":{"arguments":[{"hexValue":"33","id":54886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27946:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"27932:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54883,"name":"address","nodeType":"ElementaryTypeName","src":"27936:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54884,"nodeType":"ArrayTypeName","src":"27936:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27932:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"27902:46:88"},{"expression":{"id":54893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54889,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27958:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54891,"indexExpression":{"hexValue":"30","id":54890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27969:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27958:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54892,"name":"validator1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54865,"src":"27974:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27958:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54894,"nodeType":"ExpressionStatement","src":"27958:26:88"},{"expression":{"id":54899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54895,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"27994:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54897,"indexExpression":{"hexValue":"31","id":54896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28005:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27994:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54898,"name":"validator2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54869,"src":"28010:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27994:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54900,"nodeType":"ExpressionStatement","src":"27994:26:88"},{"expression":{"id":54905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54901,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28030:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54903,"indexExpression":{"hexValue":"32","id":54902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28030:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54904,"name":"validator3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54873,"src":"28046:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"28030:26:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54906,"nodeType":"ExpressionStatement","src":"28030:26:88"},{"assignments":[54911],"declarations":[{"constant":false,"id":54911,"mutability":"mutable","name":"privKeys","nameLocation":"28084:8:88","nodeType":"VariableDeclaration","scope":54941,"src":"28067:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54909,"name":"uint256","nodeType":"ElementaryTypeName","src":"28067:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54910,"nodeType":"ArrayTypeName","src":"28067:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":54917,"initialValue":{"arguments":[{"hexValue":"33","id":54915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28109:1:88","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28095:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54912,"name":"uint256","nodeType":"ElementaryTypeName","src":"28099:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54913,"nodeType":"ArrayTypeName","src":"28099:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28095:16:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28067:44:88"},{"expression":{"id":54922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54918,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28121:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54920,"indexExpression":{"hexValue":"30","id":54919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28130:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28121:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54921,"name":"privKey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54867,"src":"28135:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28121:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54923,"nodeType":"ExpressionStatement","src":"28121:22:88"},{"expression":{"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54924,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28153:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54926,"indexExpression":{"hexValue":"31","id":54925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28162:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28153:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54927,"name":"privKey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54871,"src":"28167:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28153:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54929,"nodeType":"ExpressionStatement","src":"28153:22:88"},{"expression":{"id":54934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54930,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28185:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54932,"indexExpression":{"hexValue":"32","id":54931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28194:1:88","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28185:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54933,"name":"privKey3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54875,"src":"28199:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28185:22:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54935,"nodeType":"ExpressionStatement","src":"28185:22:88"},{"expression":{"arguments":[{"id":54937,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54882,"src":"28232:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":54938,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54911,"src":"28244:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":54936,"name":"confirmChange","nodeType":"Identifier","overloadedDeclarations":[54800,54863,54942,55093],"referencedDeclaration":55093,"src":"28218:13:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,uint256[] memory)"}},"id":54939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28218:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54940,"nodeType":"ExpressionStatement","src":"28218:35:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27701:13:88","parameters":{"id":54876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54865,"mutability":"mutable","name":"validator1","nameLocation":"27732:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27724:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54864,"name":"address","nodeType":"ElementaryTypeName","src":"27724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54867,"mutability":"mutable","name":"privKey1","nameLocation":"27760:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27752:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54866,"name":"uint256","nodeType":"ElementaryTypeName","src":"27752:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54869,"mutability":"mutable","name":"validator2","nameLocation":"27786:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27778:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54868,"name":"address","nodeType":"ElementaryTypeName","src":"27778:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54871,"mutability":"mutable","name":"privKey2","nameLocation":"27814:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27806:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54870,"name":"uint256","nodeType":"ElementaryTypeName","src":"27806:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54873,"mutability":"mutable","name":"validator3","nameLocation":"27840:10:88","nodeType":"VariableDeclaration","scope":54942,"src":"27832:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54872,"name":"address","nodeType":"ElementaryTypeName","src":"27832:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54875,"mutability":"mutable","name":"privKey3","nameLocation":"27868:8:88","nodeType":"VariableDeclaration","scope":54942,"src":"27860:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54874,"name":"uint256","nodeType":"ElementaryTypeName","src":"27860:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27714:168:88"},"returnParameters":{"id":54877,"nodeType":"ParameterList","parameters":[],"src":"27892:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55093,"nodeType":"FunctionDefinition","src":"28266:1102:88","nodes":[],"body":{"id":55092,"nodeType":"Block","src":"28354:1014:88","nodes":[],"statements":[{"assignments":[54952],"declarations":[{"constant":false,"id":54952,"mutability":"mutable","name":"n","nameLocation":"28372:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28364:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54951,"name":"uint256","nodeType":"ElementaryTypeName","src":"28364:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54955,"initialValue":{"expression":{"id":54953,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"28376:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28387:6:88","memberName":"length","nodeType":"MemberAccess","src":"28376:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28364:29:88"},{"assignments":[54960],"declarations":[{"constant":false,"id":54960,"mutability":"mutable","name":"signatures","nameLocation":"28419:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28404:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":54958,"name":"bytes","nodeType":"ElementaryTypeName","src":"28404:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54959,"nodeType":"ArrayTypeName","src":"28404:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":54966,"initialValue":{"arguments":[{"id":54964,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"28444:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28432:11:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":54961,"name":"bytes","nodeType":"ElementaryTypeName","src":"28436:5:88","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54962,"nodeType":"ArrayTypeName","src":"28436:7:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":54965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28432:14:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"28404:42:88"},{"assignments":[54968,null],"declarations":[{"constant":false,"id":54968,"mutability":"mutable","name":"nextConfigNum","nameLocation":"28465:13:88","nodeType":"VariableDeclaration","scope":55092,"src":"28458:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":54967,"name":"uint64","nodeType":"ElementaryTypeName","src":"28458:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":54972,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54969,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28484:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28493:23:88","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":50349,"src":"28484:32:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view external returns (uint64,uint64)"}},"id":54971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28484:34:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"28457:61:88"},{"assignments":[54974],"declarations":[{"constant":false,"id":54974,"mutability":"mutable","name":"h","nameLocation":"28537:1:88","nodeType":"VariableDeclaration","scope":55092,"src":"28529:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54973,"name":"uint256","nodeType":"ElementaryTypeName","src":"28529:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54982,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54975,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28541:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28550:28:88","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":50477,"src":"28541:37:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28541:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54978,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28583:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28592:19:88","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":50457,"src":"28583:28:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28583:30:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28541:72:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28529:84:88"},{"assignments":[54985],"declarations":[{"constant":false,"id":54985,"mutability":"mutable","name":"checkpoint","nameLocation":"28650:10:88","nodeType":"VariableDeclaration","scope":55092,"src":"28624:36:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":54984,"nodeType":"UserDefinedTypeName","pathNode":{"id":54983,"name":"BottomUpCheckpoint","nameLocations":["28624:18:88"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"28624:18:88"},"referencedDeclaration":49932,"src":"28624:18:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":55007,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":54993,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28750:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":54992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28742:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54991,"name":"address","nodeType":"ElementaryTypeName","src":"28742:7:88","typeDescriptions":{}}},"id":54994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28742:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54987,"name":"saGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52943,"src":"28706:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":54988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28715:9:88","memberName":"getParent","nodeType":"MemberAccess","referencedDeclaration":50279,"src":"28706:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":54989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:20:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":54990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28727:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"28706:35:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":54995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":54996,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28788:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":55000,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54974,"src":"28835:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28824:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28828:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28824:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28824:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54997,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28814:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28814:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55003,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54968,"src":"28877:13:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28893:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28877:17:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":54986,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"28663:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpCheckpoint_$49932_storage_ptr_$","typeString":"type(struct BottomUpCheckpoint storage pointer)"}},"id":55006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28696:8:88","28775:11:88","28803:9:88","28852:23:88"],"names":["subnetID","blockHeight","blockHash","nextConfigurationNumber"],"nodeType":"FunctionCall","src":"28663:242:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"28624:281:88"},{"expression":{"arguments":[{"arguments":[{"id":55013,"name":"saDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52934,"src":"28932:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":55012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28924:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55011,"name":"address","nodeType":"ElementaryTypeName","src":"28924:7:88","typeDescriptions":{}}},"id":55014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28924:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":55015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28944:9:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":55008,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"28916:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28919:4:88","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"28916:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":55016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55017,"nodeType":"ExpressionStatement","src":"28916:38:88"},{"assignments":[55019],"declarations":[{"constant":false,"id":55019,"mutability":"mutable","name":"hash","nameLocation":"28973:4:88","nodeType":"VariableDeclaration","scope":55092,"src":"28965:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28965:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55026,"initialValue":{"arguments":[{"arguments":[{"id":55023,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29001:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":55021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28990:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28994:6:88","memberName":"encode","nodeType":"MemberAccess","src":"28990:10:88","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28990:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55020,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"28980:9:88","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28980:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28965:48:88"},{"body":{"id":55062,"nodeType":"Block","src":"29056:140:88","statements":[{"assignments":[55038,55040,55042],"declarations":[{"constant":false,"id":55038,"mutability":"mutable","name":"v","nameLocation":"29077:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29071:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55037,"name":"uint8","nodeType":"ElementaryTypeName","src":"29071:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55040,"mutability":"mutable","name":"r","nameLocation":"29088:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29080:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29080:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55042,"mutability":"mutable","name":"s","nameLocation":"29099:1:88","nodeType":"VariableDeclaration","scope":55062,"src":"29091:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29091:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55050,"initialValue":{"arguments":[{"baseExpression":{"id":55045,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54948,"src":"29112:8:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55047,"indexExpression":{"id":55046,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29121:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29112:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55048,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55019,"src":"29125:4:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55043,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29104:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29107:4:88","memberName":"sign","nodeType":"MemberAccess","referencedDeclaration":12804,"src":"29104:7:88","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_bytes32_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"function (uint256,bytes32) pure external returns (uint8,bytes32,bytes32)"}},"id":55049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29104:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(uint8,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"29070:60:88"},{"expression":{"id":55060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55051,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29144:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55053,"indexExpression":{"id":55052,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29155:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29144:13:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55056,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55040,"src":"29177:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55057,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55042,"src":"29180:1:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55058,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55038,"src":"29183:1:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29160:3:88","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29164:12:88","memberName":"encodePacked","nodeType":"MemberAccess","src":"29160:16:88","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29160:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"29144:41:88","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55061,"nodeType":"ExpressionStatement","src":"29144:41:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55031,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29044:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55032,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29048:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29044:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55063,"initializationExpression":{"assignments":[55028],"declarations":[{"constant":false,"id":55028,"mutability":"mutable","name":"i","nameLocation":"29037:1:88","nodeType":"VariableDeclaration","scope":55063,"src":"29029:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55027,"name":"uint256","nodeType":"ElementaryTypeName","src":"29029:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55030,"initialValue":{"hexValue":"30","id":55029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29041:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29029:13:88"},"loopExpression":{"expression":{"id":55035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29051:3:88","subExpression":{"id":55034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55028,"src":"29051:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55036,"nodeType":"ExpressionStatement","src":"29051:3:88"},"nodeType":"ForStatement","src":"29024:172:88"},{"body":{"id":55090,"nodeType":"Block","src":"29238:124:88","statements":[{"expression":{"arguments":[{"baseExpression":{"id":55077,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29261:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55079,"indexExpression":{"id":55078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29272:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29261:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55074,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"29252:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29255:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"29252:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29252:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55081,"nodeType":"ExpressionStatement","src":"29252:23:88"},{"expression":{"arguments":[{"id":55085,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"29316:10:88","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},{"id":55086,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54945,"src":"29328:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55087,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54960,"src":"29340:10:88","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":55082,"name":"saManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52937,"src":"29289:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacet_$52151","typeString":"contract SubnetActorManagerFacet"}},"id":55084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29299:16:88","memberName":"submitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":51154,"src":"29289:26:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory,address[] memory,bytes memory[] memory) external"}},"id":55088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29289:62:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55089,"nodeType":"ExpressionStatement","src":"29289:62:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55068,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29226:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55069,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54952,"src":"29230:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29226:5:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55091,"initializationExpression":{"assignments":[55065],"declarations":[{"constant":false,"id":55065,"mutability":"mutable","name":"i","nameLocation":"29219:1:88","nodeType":"VariableDeclaration","scope":55091,"src":"29211:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55064,"name":"uint256","nodeType":"ElementaryTypeName","src":"29211:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55067,"initialValue":{"hexValue":"30","id":55066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29223:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29211:13:88"},"loopExpression":{"expression":{"id":55072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29233:3:88","subExpression":{"id":55071,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55065,"src":"29233:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55073,"nodeType":"ExpressionStatement","src":"29233:3:88"},"nodeType":"ForStatement","src":"29206:156:88"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"28275:13:88","parameters":{"id":54949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54945,"mutability":"mutable","name":"validators","nameLocation":"28306:10:88","nodeType":"VariableDeclaration","scope":55093,"src":"28289:27:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54943,"name":"address","nodeType":"ElementaryTypeName","src":"28289:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54944,"nodeType":"ArrayTypeName","src":"28289:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":54948,"mutability":"mutable","name":"privKeys","nameLocation":"28335:8:88","nodeType":"VariableDeclaration","scope":55093,"src":"28318:25:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54946,"name":"uint256","nodeType":"ElementaryTypeName","src":"28318:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54947,"nodeType":"ArrayTypeName","src":"28318:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"28288:56:88"},"returnParameters":{"id":54950,"nodeType":"ParameterList","parameters":[],"src":"28354:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55128,"nodeType":"FunctionDefinition","src":"29374:305:88","nodes":[],"body":{"id":55127,"nodeType":"Block","src":"29421:258:88","nodes":[],"statements":[{"assignments":[55099],"declarations":[{"constant":false,"id":55099,"mutability":"mutable","name":"expectedNonce","nameLocation":"29439:13:88","nodeType":"VariableDeclaration","scope":55127,"src":"29431:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55098,"name":"uint256","nodeType":"ElementaryTypeName","src":"29431:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55105,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55100,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29455:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29464:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29455:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29455:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":55103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29482:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29455:28:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"29431:52:88"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":55113,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29555:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29559:6:88","memberName":"sender","nodeType":"MemberAccess","src":"29555:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55111,"name":"FvmAddressHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40962,"src":"29533:16:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FvmAddressHelper_$40962_$","typeString":"type(library FvmAddressHelper)"}},"id":55112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29550:4:88","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":40834,"src":"29533:21:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_struct$_FvmAddress_$49998_memory_ptr_$","typeString":"function (address) pure returns (struct FvmAddress memory)"}},"id":55115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29533:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FvmAddress_$49998_memory_ptr","typeString":"struct FvmAddress memory"}],"expression":{"id":55106,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29493:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29503:7:88","memberName":"release","nodeType":"MemberAccess","referencedDeclaration":38869,"src":"29493:17:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$","typeString":"function (struct FvmAddress memory) payable external"}},"id":55110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55109,"name":"releaseAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55095,"src":"29518:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29493:39:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_FvmAddress_$49998_memory_ptr_$returns$__$value","typeString":"function (struct FvmAddress memory) payable external"}},"id":55116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29493:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55117,"nodeType":"ExpressionStatement","src":"29493:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55119,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"29585:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29594:13:88","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":37600,"src":"29585:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":55121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29585:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55122,"name":"expectedNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55099,"src":"29613:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29585:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"67774765747465722e626f74746f6d55704e6f6e63652829203d3d2065787065637465644e6f6e6365","id":55124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29628:43:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""},"value":"gwGetter.bottomUpNonce() == expectedNonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b7c1e2fba3e8ccd2244be8f74e0e5e90cdfdda735b2c843a4d0b3d0f3c9aff6","typeString":"literal_string \"gwGetter.bottomUpNonce() == expectedNonce\""}],"id":55118,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29577:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29577:95:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55126,"nodeType":"ExpressionStatement","src":"29577:95:88"}]},"functionSelector":"37bdc99b","implemented":true,"kind":"function","modifiers":[],"name":"release","nameLocation":"29383:7:88","parameters":{"id":55096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55095,"mutability":"mutable","name":"releaseAmount","nameLocation":"29399:13:88","nodeType":"VariableDeclaration","scope":55128,"src":"29391:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55094,"name":"uint256","nodeType":"ElementaryTypeName","src":"29391:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29390:23:88"},"returnParameters":{"id":55097,"nodeType":"ParameterList","parameters":[],"src":"29421:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55183,"nodeType":"FunctionDefinition","src":"29685:536:88","nodes":[],"body":{"id":55182,"nodeType":"Block","src":"29754:467:88","nodes":[],"statements":[{"assignments":[55136],"declarations":[{"constant":false,"id":55136,"mutability":"mutable","name":"balanceBefore","nameLocation":"29772:13:88","nodeType":"VariableDeclaration","scope":55182,"src":"29764:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55135,"name":"uint256","nodeType":"ElementaryTypeName","src":"29764:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55139,"initialValue":{"expression":{"id":55137,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29788:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29802:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29788:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29764:45:88"},{"assignments":[null,55141,null,null,null],"declarations":[null,{"constant":false,"id":55141,"mutability":"mutable","name":"stakedBefore","nameLocation":"29831:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29823:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55140,"name":"uint256","nodeType":"ElementaryTypeName","src":"29823:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55145,"initialValue":{"arguments":[{"id":55143,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29863:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55142,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"29853:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29853:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29820:57:88"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55146,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"29888:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29898:8:88","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":38524,"src":"29888:18:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55149,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"29914:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29888:38:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29888:40:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55152,"nodeType":"ExpressionStatement","src":"29888:40:88"},{"assignments":[55154],"declarations":[{"constant":false,"id":55154,"mutability":"mutable","name":"balanceAfter","nameLocation":"29947:12:88","nodeType":"VariableDeclaration","scope":55182,"src":"29939:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55153,"name":"uint256","nodeType":"ElementaryTypeName","src":"29939:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55157,"initialValue":{"expression":{"id":55155,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"29962:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29976:7:88","memberName":"balance","nodeType":"MemberAccess","src":"29962:21:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29939:44:88"},{"assignments":[null,55159,null,null,null],"declarations":[null,{"constant":false,"id":55159,"mutability":"mutable","name":"stakedAfter","nameLocation":"30004:11:88","nodeType":"VariableDeclaration","scope":55182,"src":"29996:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55158,"name":"uint256","nodeType":"ElementaryTypeName","src":"29996:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null,null],"id":55163,"initialValue":{"arguments":[{"id":55161,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55132,"src":"30035:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55160,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55374,"src":"30025:9:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30025:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"29993:56:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55165,"name":"balanceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55154,"src":"30068:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55166,"name":"balanceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55136,"src":"30084:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55167,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30100:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30084:27:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30068:43:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642062616c616e6365","id":55170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30113:20:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""},"value":"unexpected balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19208dfd9f09befe619e951005b55fdf4fcaca3498815e2bd6e36a4c9cba0fa3","typeString":"literal_string \"unexpected balance\""}],"id":55164,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30060:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30060:74:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55172,"nodeType":"ExpressionStatement","src":"30060:74:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55174,"name":"stakedAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55159,"src":"30152:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55175,"name":"stakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55141,"src":"30167:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":55176,"name":"stakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"30182:11:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30167:26:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30152:41:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30195:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30144:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30144:70:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55181,"nodeType":"ExpressionStatement","src":"30144:70:88"}]},"functionSelector":"2d49aa1c","implemented":true,"kind":"function","modifiers":[],"name":"addStake","nameLocation":"29694:8:88","parameters":{"id":55133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55130,"mutability":"mutable","name":"stakeAmount","nameLocation":"29711:11:88","nodeType":"VariableDeclaration","scope":55183,"src":"29703:19:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55129,"name":"uint256","nodeType":"ElementaryTypeName","src":"29703:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55132,"mutability":"mutable","name":"subnetAddress","nameLocation":"29732:13:88","nodeType":"VariableDeclaration","scope":55183,"src":"29724:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55131,"name":"address","nodeType":"ElementaryTypeName","src":"29724:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29702:44:88"},"returnParameters":{"id":55134,"nodeType":"ParameterList","parameters":[],"src":"29754:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55268,"nodeType":"FunctionDefinition","src":"30227:813:88","nodes":[],"body":{"id":55267,"nodeType":"Block","src":"30322:718:88","nodes":[],"statements":[{"assignments":[55195],"declarations":[{"constant":false,"id":55195,"mutability":"mutable","name":"manager","nameLocation":"30352:7:88","nodeType":"VariableDeclaration","scope":55267,"src":"30332:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"},"typeName":{"id":55194,"nodeType":"UserDefinedTypeName","pathNode":{"id":55193,"name":"GatewayManagerFacet","nameLocations":["30332:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":38870,"src":"30332:19:88"},"referencedDeclaration":38870,"src":"30332:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"visibility":"internal"}],"id":55202,"initialValue":{"arguments":[{"arguments":[{"id":55199,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30390:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30382:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55197,"name":"address","nodeType":"ElementaryTypeName","src":"30382:7:88","typeDescriptions":{}}},"id":55200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30382:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55196,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"30362:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30362:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"VariableDeclarationStatement","src":"30332:62:88"},{"expression":{"arguments":[{"hexValue":"30","id":55208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30441:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":55203,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55195,"src":"30405:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30413:8:88","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":38485,"src":"30405:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":55207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55206,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30429:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"30405:35:88","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":55209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30405:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55210,"nodeType":"ExpressionStatement","src":"30405:38:88"},{"assignments":[55213,55215,55217,null,55219],"declarations":[{"constant":false,"id":55213,"mutability":"mutable","name":"id","nameLocation":"30471:2:88","nodeType":"VariableDeclaration","scope":55267,"src":"30455:18:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55212,"nodeType":"UserDefinedTypeName","pathNode":{"id":55211,"name":"SubnetID","nameLocations":["30455:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30455:8:88"},"referencedDeclaration":50077,"src":"30455:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55215,"mutability":"mutable","name":"stake","nameLocation":"30483:5:88","nodeType":"VariableDeclaration","scope":55267,"src":"30475:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55214,"name":"uint256","nodeType":"ElementaryTypeName","src":"30475:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55217,"mutability":"mutable","name":"topDownNonce","nameLocation":"30498:12:88","nodeType":"VariableDeclaration","scope":55267,"src":"30490:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55216,"name":"uint256","nodeType":"ElementaryTypeName","src":"30490:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":55219,"mutability":"mutable","name":"circSupply","nameLocation":"30522:10:88","nodeType":"VariableDeclaration","scope":55267,"src":"30514:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55218,"name":"uint256","nodeType":"ElementaryTypeName","src":"30514:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55224,"initialValue":{"arguments":[{"id":55221,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30561:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55222,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55190,"src":"30588:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55220,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"30536:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30536:64:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"30454:146:88"},{"assignments":[55227],"declarations":[{"constant":false,"id":55227,"mutability":"mutable","name":"parentNetwork","nameLocation":"30627:13:88","nodeType":"VariableDeclaration","scope":55267,"src":"30611:29:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55226,"nodeType":"UserDefinedTypeName","pathNode":{"id":55225,"name":"SubnetID","nameLocations":["30611:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"30611:8:88"},"referencedDeclaration":50077,"src":"30611:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55231,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55228,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"30643:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30652:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"30643:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30643:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"30611:57:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55233,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55213,"src":"30700:2:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30703:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30700:9:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30700:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":55238,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"30744:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55236,"name":"parentNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55227,"src":"30715:13:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30729:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"30715:28:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:43:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30759:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"30715:50:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30715:52:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"30700:67:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"69642e746f486173682829203d3d20706172656e744e6574776f726b2e6372656174655375626e65744964287375626e657441646472657373292e746f486173682829","id":55243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30781:69:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""},"value":"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_242d38ca9cc1481a518dbd1d81c9e559fe5dc7f533a0fd093709cfa0e4139aaa","typeString":"literal_string \"id.toHash() == parentNetwork.createSubnetId(subnetAddress).toHash()\""}],"id":55232,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30679:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30679:181:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55245,"nodeType":"ExpressionStatement","src":"30679:181:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55247,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55215,"src":"30878:5:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55248,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55185,"src":"30887:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30878:19:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564207374616b65","id":55250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30899:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""},"value":"unexpected stake"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c410e0b05ff59b9cb2942035b05cd26c27fed20a9b6f992ae3892ea525655c06","typeString":"literal_string \"unexpected stake\""}],"id":55246,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30870:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30870:48:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55252,"nodeType":"ExpressionStatement","src":"30870:48:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55254,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55217,"src":"30936:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30952:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30936:17:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e6578706563746564206e6f6e6365","id":55257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30955:18:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""},"value":"unexpected nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18bebf67a4b5fe47a141e14448aecb8b46885019057bee4783ef674d7c33a601","typeString":"literal_string \"unexpected nonce\""}],"id":55253,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30928:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55259,"nodeType":"ExpressionStatement","src":"30928:46:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55261,"name":"circSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55219,"src":"30992:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31006:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30992:15:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e65787065637465642063697263537570706c79","id":55264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31009:23:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""},"value":"unexpected circSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bfef2fe605a7fff087172fe8ce98fbab61b61613952eaa82f7fc475a01bf41b","typeString":"literal_string \"unexpected circSupply\""}],"id":55260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30984:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30984:49:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55266,"nodeType":"ExpressionStatement","src":"30984:49:88"}]},"functionSelector":"fbfb8927","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnetGW","nameLocation":"30236:16:88","parameters":{"id":55191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55185,"mutability":"mutable","name":"collateral","nameLocation":"30261:10:88","nodeType":"VariableDeclaration","scope":55268,"src":"30253:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55184,"name":"uint256","nodeType":"ElementaryTypeName","src":"30253:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55187,"mutability":"mutable","name":"subnetAddress","nameLocation":"30281:13:88","nodeType":"VariableDeclaration","scope":55268,"src":"30273:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55186,"name":"address","nodeType":"ElementaryTypeName","src":"30273:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55190,"mutability":"mutable","name":"gw","nameLocation":"30311:2:88","nodeType":"VariableDeclaration","scope":55268,"src":"30296:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55189,"nodeType":"UserDefinedTypeName","pathNode":{"id":55188,"name":"GatewayDiamond","nameLocations":["30296:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"30296:14:88"},"referencedDeclaration":36170,"src":"30296:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"30252:62:88"},"returnParameters":{"id":55192,"nodeType":"ParameterList","parameters":[],"src":"30322:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55282,"nodeType":"FunctionDefinition","src":"31046:150:88","nodes":[],"body":{"id":55281,"nodeType":"Block","src":"31120:76:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55276,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55270,"src":"31147:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55277,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55272,"src":"31159:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55278,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31174:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55275,"name":"registerSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55268,"src":"31130:16:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$__$","typeString":"function (uint256,address,contract GatewayDiamond)"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31130:59:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55280,"nodeType":"ExpressionStatement","src":"31130:59:88"}]},"functionSelector":"63323eb8","implemented":true,"kind":"function","modifiers":[],"name":"registerSubnet","nameLocation":"31055:14:88","parameters":{"id":55273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55270,"mutability":"mutable","name":"collateral","nameLocation":"31078:10:88","nodeType":"VariableDeclaration","scope":55282,"src":"31070:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55269,"name":"uint256","nodeType":"ElementaryTypeName","src":"31070:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55272,"mutability":"mutable","name":"subnetAddress","nameLocation":"31098:13:88","nodeType":"VariableDeclaration","scope":55282,"src":"31090:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55271,"name":"address","nodeType":"ElementaryTypeName","src":"31090:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31069:43:88"},"returnParameters":{"id":55274,"nodeType":"ParameterList","parameters":[],"src":"31120:0:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55352,"nodeType":"FunctionDefinition","src":"31202:541:88","nodes":[],"body":{"id":55351,"nodeType":"Block","src":"31356:387:88","nodes":[],"statements":[{"expression":{"id":55308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55301,"name":"gwManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52784,"src":"31366:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55305,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31406:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55303,"name":"address","nodeType":"ElementaryTypeName","src":"31398:7:88","typeDescriptions":{}}},"id":55306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55302,"name":"GatewayManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38870,"src":"31378:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayManagerFacet_$38870_$","typeString":"type(contract GatewayManagerFacet)"}},"id":55307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31378:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"src":"31366:44:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayManagerFacet_$38870","typeString":"contract GatewayManagerFacet"}},"id":55309,"nodeType":"ExpressionStatement","src":"31366:44:88"},{"expression":{"id":55317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55310,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31420:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55314,"name":"gw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"31458:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31450:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55312,"name":"address","nodeType":"ElementaryTypeName","src":"31450:7:88","typeDescriptions":{}}},"id":55315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31450:11:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55311,"name":"GatewayGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38317,"src":"31431:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatewayGetterFacet_$38317_$","typeString":"type(contract GatewayGetterFacet)"}},"id":55316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31431:31:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"src":"31420:42:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55318,"nodeType":"ExpressionStatement","src":"31420:42:88"},{"assignments":[55321],"declarations":[{"constant":false,"id":55321,"mutability":"mutable","name":"subnetId","nameLocation":"31489:8:88","nodeType":"VariableDeclaration","scope":55351,"src":"31473:24:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55320,"nodeType":"UserDefinedTypeName","pathNode":{"id":55319,"name":"SubnetID","nameLocations":["31473:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31473:8:88"},"referencedDeclaration":50077,"src":"31473:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":55328,"initialValue":{"arguments":[{"id":55326,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55284,"src":"31541:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55322,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31500:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31509:14:88","memberName":"getNetworkName","nodeType":"MemberAccess","referencedDeclaration":37651,"src":"31500:23:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function () view external returns (struct SubnetID memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:25:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31526:14:88","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"31500:40:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":55327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31500:55:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"31473:82:88"},{"assignments":[55331],"declarations":[{"constant":false,"id":55331,"mutability":"mutable","name":"subnet","nameLocation":"31580:6:88","nodeType":"VariableDeclaration","scope":55351,"src":"31566:20:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet"},"typeName":{"id":55330,"nodeType":"UserDefinedTypeName","pathNode":{"id":55329,"name":"Subnet","nameLocations":["31566:6:88"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"31566:6:88"},"referencedDeclaration":50091,"src":"31566:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":55338,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55334,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55321,"src":"31606:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":55335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31615:6:88","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"31606:15:88","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31606:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55332,"name":"gwGetter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52787,"src":"31589:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayGetterFacet_$38317","typeString":"contract GatewayGetterFacet"}},"id":55333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31598:7:88","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":37741,"src":"31589:16:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Subnet_$50091_memory_ptr_$","typeString":"function (bytes32) view external returns (struct Subnet memory)"}},"id":55337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31589:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"nodeType":"VariableDeclarationStatement","src":"31566:58:88"},{"expression":{"components":[{"expression":{"id":55339,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31643:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31650:2:88","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"31643:9:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"expression":{"id":55341,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31654:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31661:5:88","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50079,"src":"31654:12:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":55343,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31668:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31675:12:88","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"31668:19:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55345,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31689:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31696:20:88","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"31689:27:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":55347,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"31718:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_memory_ptr","typeString":"struct Subnet memory"}},"id":55348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31725:10:88","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"31718:17:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":55349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31642:94:88","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint64,uint64,uint256)"}},"functionReturnParameters":55300,"id":55350,"nodeType":"Return","src":"31635:101:88"}]},"functionSelector":"87105557","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetGW","nameLocation":"31211:11:88","parameters":{"id":55288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55284,"mutability":"mutable","name":"subnetAddress","nameLocation":"31240:13:88","nodeType":"VariableDeclaration","scope":55352,"src":"31232:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55283,"name":"address","nodeType":"ElementaryTypeName","src":"31232:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55287,"mutability":"mutable","name":"gw","nameLocation":"31278:2:88","nodeType":"VariableDeclaration","scope":55352,"src":"31263:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"},"typeName":{"id":55286,"nodeType":"UserDefinedTypeName","pathNode":{"id":55285,"name":"GatewayDiamond","nameLocations":["31263:14:88"],"nodeType":"IdentifierPath","referencedDeclaration":36170,"src":"31263:14:88"},"referencedDeclaration":36170,"src":"31263:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}},"visibility":"internal"}],"src":"31222:64:88"},"returnParameters":{"id":55300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31303:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55290,"nodeType":"UserDefinedTypeName","pathNode":{"id":55289,"name":"SubnetID","nameLocations":["31303:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31303:8:88"},"referencedDeclaration":50077,"src":"31303:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31320:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55292,"name":"uint256","nodeType":"ElementaryTypeName","src":"31320:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31329:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55294,"name":"uint256","nodeType":"ElementaryTypeName","src":"31329:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31338:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55296,"name":"uint256","nodeType":"ElementaryTypeName","src":"31338:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55352,"src":"31347:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55298,"name":"uint256","nodeType":"ElementaryTypeName","src":"31347:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31302:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55374,"nodeType":"FunctionDefinition","src":"31749:177:88","nodes":[],"body":{"id":55373,"nodeType":"Block","src":"31860:66:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55369,"name":"subnetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55354,"src":"31889:13:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55370,"name":"gatewayDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52781,"src":"31904:14:88","typeDescriptions":{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_GatewayDiamond_$36170","typeString":"contract GatewayDiamond"}],"id":55368,"name":"getSubnetGW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55352,"src":"31877:11:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_contract$_GatewayDiamond_$36170_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (address,contract GatewayDiamond) returns (struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"id":55371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31877:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_SubnetID_$50077_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(struct SubnetID memory,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":55367,"id":55372,"nodeType":"Return","src":"31870:49:88"}]},"functionSelector":"dd784974","implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"31758:9:88","parameters":{"id":55355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55354,"mutability":"mutable","name":"subnetAddress","nameLocation":"31776:13:88","nodeType":"VariableDeclaration","scope":55374,"src":"31768:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55353,"name":"address","nodeType":"ElementaryTypeName","src":"31768:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31767:23:88"},"returnParameters":{"id":55367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31807:15:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":55357,"nodeType":"UserDefinedTypeName","pathNode":{"id":55356,"name":"SubnetID","nameLocations":["31807:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"31807:8:88"},"referencedDeclaration":50077,"src":"31807:8:88","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":55360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31824:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55359,"name":"uint256","nodeType":"ElementaryTypeName","src":"31824:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31833:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55361,"name":"uint256","nodeType":"ElementaryTypeName","src":"31833:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31842:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55363,"name":"uint256","nodeType":"ElementaryTypeName","src":"31842:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55374,"src":"31851:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55365,"name":"uint256","nodeType":"ElementaryTypeName","src":"31851:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31806:53:88"},"scope":55375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53038,"name":"Test","nameLocations":["8694:4:88"],"nodeType":"IdentifierPath","referencedDeclaration":12740,"src":"8694:4:88"},"id":53039,"nodeType":"InheritanceSpecifier","src":"8694:4:88"},{"baseName":{"id":53040,"name":"TestParams","nameLocations":["8700:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":52683,"src":"8700:10:88"},"id":53041,"nodeType":"InheritanceSpecifier","src":"8700:10:88"},{"baseName":{"id":53042,"name":"TestRegistry","nameLocations":["8712:12:88"],"nodeType":"IdentifierPath","referencedDeclaration":52747,"src":"8712:12:88"},"id":53043,"nodeType":"InheritanceSpecifier","src":"8712:12:88"},{"baseName":{"id":53044,"name":"TestSubnetActor","nameLocations":["8726:15:88"],"nodeType":"IdentifierPath","referencedDeclaration":53037,"src":"8726:15:88"},"id":53045,"nodeType":"InheritanceSpecifier","src":"8726:15:88"},{"baseName":{"id":53046,"name":"TestGatewayActor","nameLocations":["8743:16:88"],"nodeType":"IdentifierPath","referencedDeclaration":52912,"src":"8743:16:88"},"id":53047,"nodeType":"InheritanceSpecifier","src":"8743:16:88"}],"canonicalName":"IntegrationTestBase","contractDependencies":[36170,36615,36853,36918,37355,38317,38870,39235,39601,39870,40071,40144,50887,52151,52279,52517,57957],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55375,52912,53037,52747,52683,12740,3780,3777,12691,8470,8180,7501,5904,5210,3720],"name":"IntegrationTestBase","nameLocation":"8671:19:88","scope":55376,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":88} \ No newline at end of file diff --git a/.out/LibDiamond.sol/LibDiamond.json b/.out/LibDiamond.sol/LibDiamond.json index 4009e08a3..e57269fbc 100644 --- a/.out/LibDiamond.sol/LibDiamond.json +++ b/.out/LibDiamond.sol/LibDiamond.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"DIAMOND_STORAGE_POSITION","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsGivenToAdd","inputs":[]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotContractOwner","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_contractOwner","type":"address","internalType":"address"}]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608080604052346018576094908161001e823930815050f35b600080fdfe6080806040526004361015601257600080fd5b60003560e01c63b2bebf5514602657600080fd5b6000366003190112605957807f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260209252f35b600080fdfea2646970667358221220d508694a722880a4c6eb34c059182551ad1bb0b0b65354c5f1e8ee93f631303264736f6c63430008130033","sourceMap":"184:9446:57:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b60003560e01c63b2bebf5514602657600080fd5b6000366003190112605957807f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260209252f35b600080fdfea2646970667358221220d508694a722880a4c6eb34c059182551ad1bb0b0b65354c5f1e8ee93f631303264736f6c63430008130033","sourceMap":"184:9446:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;184:9446:57;;;;;260:43;184:9446;;;;;;;","linkReferences":{}},"methodIdentifiers":{"DIAMOND_STORAGE_POSITION()":"b2bebf55"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoSelectorsGivenToAdd\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_contractOwner\",\"type\":\"address\"}],\"name\":\"NotContractOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DIAMOND_STORAGE_POSITION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibDiamond.sol\":\"LibDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[],"type":"error","name":"NoSelectorsGivenToAdd"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_contractOwner","type":"address"}],"type":"error","name":"NotContractOwner"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DIAMOND_STORAGE_POSITION","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibDiamond.sol":"LibDiamond"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibDiamond.sol","id":41230,"exportedSymbols":{"IDiamond":[39732],"IDiamondCut":[39751],"LibDiamond":[41229]},"nodeType":"SourceUnit","src":"46:9585:57","nodes":[{"id":40511,"nodeType":"PragmaDirective","src":"46:23:57","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40513,"nodeType":"ImportDirective","src":"71:58:57","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"../interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":41230,"sourceUnit":39752,"symbolAliases":[{"foreign":{"id":40512,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39751,"src":"79:11:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40515,"nodeType":"ImportDirective","src":"130:52:57","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":41230,"sourceUnit":39733,"symbolAliases":[{"foreign":{"id":40514,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"138:8:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41229,"nodeType":"ContractDefinition","src":"184:9446:57","nodes":[{"id":40520,"nodeType":"VariableDeclaration","src":"209:94:57","nodes":[],"constant":true,"functionSelector":"b2bebf55","mutability":"constant","name":"DIAMOND_STORAGE_POSITION","nameLocation":"233:24:57","scope":41229,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40516,"name":"bytes32","nodeType":"ElementaryTypeName","src":"209:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6c69626469616d6f6e642e6c69622e6469616d6f6e642e73746f72616765","id":40518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"270:32:57","typeDescriptions":{"typeIdentifier":"t_stringliteral_806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","typeString":"literal_string \"libdiamond.lib.diamond.storage\""},"value":"libdiamond.lib.diamond.storage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","typeString":"literal_string \"libdiamond.lib.diamond.storage\""}],"id":40517,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"260:9:57","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"260:43:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":40522,"nodeType":"ErrorDefinition","src":"310:17:57","nodes":[],"errorSelector":"30cd7471","name":"NotOwner","nameLocation":"316:8:57","parameters":{"id":40521,"nodeType":"ParameterList","parameters":[],"src":"324:2:57"}},{"id":40528,"nodeType":"ErrorDefinition","src":"332:69:57","nodes":[],"errorSelector":"919834b9","name":"NoBytecodeAtAddress","nameLocation":"338:19:57","parameters":{"id":40527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40524,"mutability":"mutable","name":"_contractAddress","nameLocation":"366:16:57","nodeType":"VariableDeclaration","scope":40528,"src":"358:24:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40523,"name":"address","nodeType":"ElementaryTypeName","src":"358:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40526,"mutability":"mutable","name":"_message","nameLocation":"391:8:57","nodeType":"VariableDeclaration","scope":40528,"src":"384:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":40525,"name":"string","nodeType":"ElementaryTypeName","src":"384:6:57","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"357:43:57"}},{"id":40533,"nodeType":"ErrorDefinition","src":"406:66:57","nodes":[],"errorSelector":"7fe9a41e","name":"IncorrectFacetCutAction","nameLocation":"412:23:57","parameters":{"id":40532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40531,"mutability":"mutable","name":"_action","nameLocation":"463:7:57","nodeType":"VariableDeclaration","scope":40533,"src":"436:34:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},"typeName":{"id":40530,"nodeType":"UserDefinedTypeName","pathNode":{"id":40529,"name":"IDiamondCut.FacetCutAction","nameLocations":["436:11:57","448:14:57"],"nodeType":"IdentifierPath","referencedDeclaration":39712,"src":"436:26:57"},"referencedDeclaration":39712,"src":"436:26:57","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},"visibility":"internal"}],"src":"435:36:57"}},{"id":40537,"nodeType":"ErrorDefinition","src":"477:63:57","nodes":[],"errorSelector":"e767f91f","name":"NoSelectorsProvidedForFacetForCut","nameLocation":"483:33:57","parameters":{"id":40536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40535,"mutability":"mutable","name":"_facetAddress","nameLocation":"525:13:57","nodeType":"VariableDeclaration","scope":40537,"src":"517:21:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40534,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"516:23:57"}},{"id":40541,"nodeType":"ErrorDefinition","src":"545:68:57","nodes":[],"errorSelector":"ebbf5d07","name":"CannotAddFunctionToDiamondThatAlreadyExists","nameLocation":"551:43:57","parameters":{"id":40540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40539,"mutability":"mutable","name":"_selector","nameLocation":"602:9:57","nodeType":"VariableDeclaration","scope":40541,"src":"595:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40538,"name":"bytes4","nodeType":"ElementaryTypeName","src":"595:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"594:18:57"}},{"id":40546,"nodeType":"ErrorDefinition","src":"618:59:57","nodes":[],"errorSelector":"0ae3681c","name":"CannotAddSelectorsToZeroAddress","nameLocation":"624:31:57","parameters":{"id":40545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40544,"mutability":"mutable","name":"_selectors","nameLocation":"665:10:57","nodeType":"VariableDeclaration","scope":40546,"src":"656:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":40542,"name":"bytes4","nodeType":"ElementaryTypeName","src":"656:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":40543,"nodeType":"ArrayTypeName","src":"656:8:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"655:21:57"}},{"id":40552,"nodeType":"ErrorDefinition","src":"682:94:57","nodes":[],"errorSelector":"192105d7","name":"InitializationFunctionReverted","nameLocation":"688:30:57","parameters":{"id":40551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40548,"mutability":"mutable","name":"_initializationContractAddress","nameLocation":"727:30:57","nodeType":"VariableDeclaration","scope":40552,"src":"719:38:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40547,"name":"address","nodeType":"ElementaryTypeName","src":"719:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40550,"mutability":"mutable","name":"_calldata","nameLocation":"765:9:57","nodeType":"VariableDeclaration","scope":40552,"src":"759:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40549,"name":"bytes","nodeType":"ElementaryTypeName","src":"759:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"718:57:57"}},{"id":40554,"nodeType":"ErrorDefinition","src":"781:30:57","nodes":[],"errorSelector":"eb6ba048","name":"NoSelectorsGivenToAdd","nameLocation":"787:21:57","parameters":{"id":40553,"nodeType":"ParameterList","parameters":[],"src":"808:2:57"}},{"id":40560,"nodeType":"ErrorDefinition","src":"816:62:57","nodes":[],"errorSelector":"ff4127cb","name":"NotContractOwner","nameLocation":"822:16:57","parameters":{"id":40559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40556,"mutability":"mutable","name":"_user","nameLocation":"847:5:57","nodeType":"VariableDeclaration","scope":40560,"src":"839:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40555,"name":"address","nodeType":"ElementaryTypeName","src":"839:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40558,"mutability":"mutable","name":"_contractOwner","nameLocation":"862:14:57","nodeType":"VariableDeclaration","scope":40560,"src":"854:22:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40557,"name":"address","nodeType":"ElementaryTypeName","src":"854:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"838:39:57"}},{"id":40565,"nodeType":"ErrorDefinition","src":"883:74:57","nodes":[],"errorSelector":"cd98a96f","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","nameLocation":"889:46:57","parameters":{"id":40564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40563,"mutability":"mutable","name":"_selectors","nameLocation":"945:10:57","nodeType":"VariableDeclaration","scope":40565,"src":"936:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":40561,"name":"bytes4","nodeType":"ElementaryTypeName","src":"936:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":40562,"nodeType":"ArrayTypeName","src":"936:8:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"935:21:57"}},{"id":40569,"nodeType":"ErrorDefinition","src":"962:55:57","nodes":[],"errorSelector":"520300da","name":"CannotReplaceImmutableFunction","nameLocation":"968:30:57","parameters":{"id":40568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40567,"mutability":"mutable","name":"_selector","nameLocation":"1006:9:57","nodeType":"VariableDeclaration","scope":40569,"src":"999:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40566,"name":"bytes4","nodeType":"ElementaryTypeName","src":"999:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"998:18:57"}},{"id":40573,"nodeType":"ErrorDefinition","src":"1022:81:57","nodes":[],"errorSelector":"358d9d1a","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","nameLocation":"1028:56:57","parameters":{"id":40572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40571,"mutability":"mutable","name":"_selector","nameLocation":"1092:9:57","nodeType":"VariableDeclaration","scope":40573,"src":"1085:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40570,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1085:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1084:18:57"}},{"id":40577,"nodeType":"ErrorDefinition","src":"1108:63:57","nodes":[],"errorSelector":"7479f939","name":"CannotReplaceFunctionThatDoesNotExists","nameLocation":"1114:38:57","parameters":{"id":40576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40575,"mutability":"mutable","name":"_selector","nameLocation":"1160:9:57","nodeType":"VariableDeclaration","scope":40577,"src":"1153:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40574,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1153:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1152:18:57"}},{"id":40581,"nodeType":"ErrorDefinition","src":"1176:65:57","nodes":[],"errorSelector":"d091bc81","name":"RemoveFacetAddressMustBeZeroAddress","nameLocation":"1182:35:57","parameters":{"id":40580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40579,"mutability":"mutable","name":"_facetAddress","nameLocation":"1226:13:57","nodeType":"VariableDeclaration","scope":40581,"src":"1218:21:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40578,"name":"address","nodeType":"ElementaryTypeName","src":"1218:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1217:23:57"}},{"id":40585,"nodeType":"ErrorDefinition","src":"1246:61:57","nodes":[],"errorSelector":"7a08a22d","name":"CannotRemoveFunctionThatDoesNotExist","nameLocation":"1252:36:57","parameters":{"id":40584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40583,"mutability":"mutable","name":"_selector","nameLocation":"1296:9:57","nodeType":"VariableDeclaration","scope":40585,"src":"1289:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40582,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1289:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1288:18:57"}},{"id":40589,"nodeType":"ErrorDefinition","src":"1312:54:57","nodes":[],"errorSelector":"6fafeb08","name":"CannotRemoveImmutableFunction","nameLocation":"1318:29:57","parameters":{"id":40588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40587,"mutability":"mutable","name":"_selector","nameLocation":"1355:9:57","nodeType":"VariableDeclaration","scope":40589,"src":"1348:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40586,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1348:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1347:18:57"}},{"id":40599,"nodeType":"EventDefinition","src":"1372:85:57","nodes":[],"anonymous":false,"eventSelector":"8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673","name":"DiamondCut","nameLocation":"1378:10:57","parameters":{"id":40598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40593,"indexed":false,"mutability":"mutable","name":"_diamondCut","nameLocation":"1412:11:57","nodeType":"VariableDeclaration","scope":40599,"src":"1389:34:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":40591,"nodeType":"UserDefinedTypeName","pathNode":{"id":40590,"name":"IDiamondCut.FacetCut","nameLocations":["1389:11:57","1401:8:57"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"1389:20:57"},"referencedDeclaration":39721,"src":"1389:20:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":40592,"nodeType":"ArrayTypeName","src":"1389:22:57","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":40595,"indexed":false,"mutability":"mutable","name":"_init","nameLocation":"1433:5:57","nodeType":"VariableDeclaration","scope":40599,"src":"1425:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40594,"name":"address","nodeType":"ElementaryTypeName","src":"1425:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40597,"indexed":false,"mutability":"mutable","name":"_calldata","nameLocation":"1446:9:57","nodeType":"VariableDeclaration","scope":40599,"src":"1440:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40596,"name":"bytes","nodeType":"ElementaryTypeName","src":"1440:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1388:68:57"}},{"id":40604,"nodeType":"StructDefinition","src":"1463:109:57","nodes":[],"canonicalName":"LibDiamond.FacetAddressAndSelectorPosition","members":[{"constant":false,"id":40601,"mutability":"mutable","name":"facetAddress","nameLocation":"1520:12:57","nodeType":"VariableDeclaration","scope":40604,"src":"1512:20:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40600,"name":"address","nodeType":"ElementaryTypeName","src":"1512:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40603,"mutability":"mutable","name":"selectorPosition","nameLocation":"1549:16:57","nodeType":"VariableDeclaration","scope":40604,"src":"1542:23:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":40602,"name":"uint16","nodeType":"ElementaryTypeName","src":"1542:6:57","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"name":"FacetAddressAndSelectorPosition","nameLocation":"1470:31:57","scope":41229,"visibility":"public"},{"id":40619,"nodeType":"StructDefinition","src":"1578:353:57","nodes":[],"canonicalName":"LibDiamond.DiamondStorage","members":[{"constant":false,"id":40609,"mutability":"mutable","name":"facetAddressAndSelectorPosition","nameLocation":"1748:31:57","nodeType":"VariableDeclaration","scope":40619,"src":"1697:82:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition)"},"typeName":{"id":40608,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":40605,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1705:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"1697:50:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":40607,"nodeType":"UserDefinedTypeName","pathNode":{"id":40606,"name":"FacetAddressAndSelectorPosition","nameLocations":["1715:31:57"],"nodeType":"IdentifierPath","referencedDeclaration":40604,"src":"1715:31:57"},"referencedDeclaration":40604,"src":"1715:31:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition"}}},"visibility":"internal"},{"constant":false,"id":40612,"mutability":"mutable","name":"selectors","nameLocation":"1798:9:57","nodeType":"VariableDeclaration","scope":40619,"src":"1789:18:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":40610,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1789:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":40611,"nodeType":"ArrayTypeName","src":"1789:8:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":40616,"mutability":"mutable","name":"supportedInterfaces","nameLocation":"1841:19:57","nodeType":"VariableDeclaration","scope":40619,"src":"1817:43:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"},"typeName":{"id":40615,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":40613,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1825:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"1817:23:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":40614,"name":"bool","nodeType":"ElementaryTypeName","src":"1835:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":40618,"mutability":"mutable","name":"contractOwner","nameLocation":"1911:13:57","nodeType":"VariableDeclaration","scope":40619,"src":"1903:21:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40617,"name":"address","nodeType":"ElementaryTypeName","src":"1903:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"DiamondStorage","nameLocation":"1585:14:57","scope":41229,"visibility":"public"},{"id":40631,"nodeType":"FunctionDefinition","src":"1937:197:57","nodes":[],"body":{"id":40630,"nodeType":"Block","src":"2013:121:57","nodes":[],"statements":[{"assignments":[40626],"declarations":[{"constant":false,"id":40626,"mutability":"mutable","name":"position","nameLocation":"2031:8:57","nodeType":"VariableDeclaration","scope":40630,"src":"2023:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40625,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2023:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40628,"initialValue":{"id":40627,"name":"DIAMOND_STORAGE_POSITION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40520,"src":"2042:24:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2023:43:57"},{"AST":{"nodeType":"YulBlock","src":"2085:43:57","statements":[{"nodeType":"YulAssignment","src":"2099:19:57","value":{"name":"position","nodeType":"YulIdentifier","src":"2110:8:57"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"2099:7:57"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":40623,"isOffset":false,"isSlot":true,"src":"2099:7:57","suffix":"slot","valueSize":1},{"declaration":40626,"isOffset":false,"isSlot":false,"src":"2110:8:57","valueSize":1}],"id":40629,"nodeType":"InlineAssembly","src":"2076:52:57"}]},"implemented":true,"kind":"function","modifiers":[],"name":"diamondStorage","nameLocation":"1946:14:57","parameters":{"id":40620,"nodeType":"ParameterList","parameters":[],"src":"1960:2:57"},"returnParameters":{"id":40624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40623,"mutability":"mutable","name":"ds","nameLocation":"2009:2:57","nodeType":"VariableDeclaration","scope":40631,"src":"1986:25:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":40622,"nodeType":"UserDefinedTypeName","pathNode":{"id":40621,"name":"DiamondStorage","nameLocations":["1986:14:57"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"1986:14:57"},"referencedDeclaration":40619,"src":"1986:14:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"src":"1985:27:57"},"scope":41229,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40649,"nodeType":"FunctionDefinition","src":"2140:153:57","nodes":[],"body":{"id":40648,"nodeType":"Block","src":"2194:99:57","nodes":[],"statements":[{"assignments":[40638],"declarations":[{"constant":false,"id":40638,"mutability":"mutable","name":"ds","nameLocation":"2227:2:57","nodeType":"VariableDeclaration","scope":40648,"src":"2204:25:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":40637,"nodeType":"UserDefinedTypeName","pathNode":{"id":40636,"name":"DiamondStorage","nameLocations":["2204:14:57"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"2204:14:57"},"referencedDeclaration":40619,"src":"2204:14:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":40641,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":40639,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40631,"src":"2232:14:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$40619_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":40640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2232:16:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2204:44:57"},{"expression":{"id":40646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":40642,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40638,"src":"2258:2:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":40644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2261:13:57","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":40618,"src":"2258:16:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":40645,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40633,"src":"2277:9:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2258:28:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40647,"nodeType":"ExpressionStatement","src":"2258:28:57"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setContractOwner","nameLocation":"2149:16:57","parameters":{"id":40634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40633,"mutability":"mutable","name":"_newOwner","nameLocation":"2174:9:57","nodeType":"VariableDeclaration","scope":40649,"src":"2166:17:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40632,"name":"address","nodeType":"ElementaryTypeName","src":"2166:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2165:19:57"},"returnParameters":{"id":40635,"nodeType":"ParameterList","parameters":[],"src":"2194:0:57"},"scope":41229,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":40661,"nodeType":"FunctionDefinition","src":"2299:136:57","nodes":[],"body":{"id":40660,"nodeType":"Block","src":"2371:64:57","nodes":[],"statements":[{"expression":{"id":40658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":40654,"name":"contractOwner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40652,"src":"2381:14:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":40655,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40631,"src":"2398:14:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$40619_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":40656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2398:16:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":40657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2415:13:57","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":40618,"src":"2398:30:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2381:47:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":40659,"nodeType":"ExpressionStatement","src":"2381:47:57"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contractOwner","nameLocation":"2308:13:57","parameters":{"id":40650,"nodeType":"ParameterList","parameters":[],"src":"2321:2:57"},"returnParameters":{"id":40653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40652,"mutability":"mutable","name":"contractOwner_","nameLocation":"2355:14:57","nodeType":"VariableDeclaration","scope":40661,"src":"2347:22:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40651,"name":"address","nodeType":"ElementaryTypeName","src":"2347:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2346:24:57"},"scope":41229,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":40676,"nodeType":"ModifierDefinition","src":"2441:140:57","nodes":[],"body":{"id":40675,"nodeType":"Block","src":"2462:119:57","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":40668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40663,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2476:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":40664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2480:6:57","memberName":"sender","nodeType":"MemberAccess","src":"2476:10:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":40665,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40631,"src":"2490:14:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$40619_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":40666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2490:16:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":40667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2507:13:57","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":40618,"src":"2490:30:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2476:44:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40673,"nodeType":"IfStatement","src":"2472:92:57","trueBody":{"id":40672,"nodeType":"Block","src":"2522:42:57","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40669,"name":"NotOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40522,"src":"2543:8:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2543:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40671,"nodeType":"RevertStatement","src":"2536:17:57"}]}},{"id":40674,"nodeType":"PlaceholderStatement","src":"2573:1:57"}]},"name":"onlyOwner","nameLocation":"2450:9:57","parameters":{"id":40662,"nodeType":"ParameterList","parameters":[],"src":"2459:2:57"},"virtual":false,"visibility":"internal"},{"id":40691,"nodeType":"FunctionDefinition","src":"2587:156:57","nodes":[],"body":{"id":40690,"nodeType":"Block","src":"2635:108:57","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":40684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40679,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2649:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":40680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2653:6:57","memberName":"sender","nodeType":"MemberAccess","src":"2649:10:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":40681,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40631,"src":"2663:14:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$40619_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":40682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2663:16:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":40683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2680:13:57","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":40618,"src":"2663:30:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2649:44:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40689,"nodeType":"IfStatement","src":"2645:92:57","trueBody":{"id":40688,"nodeType":"Block","src":"2695:42:57","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":40685,"name":"NotOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40522,"src":"2716:8:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":40686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2716:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40687,"nodeType":"RevertStatement","src":"2709:17:57"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"enforceIsContractOwner","nameLocation":"2596:22:57","parameters":{"id":40677,"nodeType":"ParameterList","parameters":[],"src":"2618:2:57"},"returnParameters":{"id":40678,"nodeType":"ParameterList","parameters":[],"src":"2635:0:57"},"scope":41229,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":40809,"nodeType":"FunctionDefinition","src":"2749:1291:57","nodes":[],"body":{"id":40808,"nodeType":"Block","src":"2857:1183:57","nodes":[],"statements":[{"assignments":[40703],"declarations":[{"constant":false,"id":40703,"mutability":"mutable","name":"length","nameLocation":"2875:6:57","nodeType":"VariableDeclaration","scope":40808,"src":"2867:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40702,"name":"uint256","nodeType":"ElementaryTypeName","src":"2867:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40706,"initialValue":{"expression":{"id":40704,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40695,"src":"2884:11:57","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":40705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2896:6:57","memberName":"length","nodeType":"MemberAccess","src":"2884:18:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2867:35:57"},{"body":{"id":40795,"nodeType":"Block","src":"2960:937:57","statements":[{"assignments":[40717],"declarations":[{"constant":false,"id":40717,"mutability":"mutable","name":"functionSelectors","nameLocation":"2990:17:57","nodeType":"VariableDeclaration","scope":40795,"src":"2974:33:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":40715,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2974:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":40716,"nodeType":"ArrayTypeName","src":"2974:8:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"id":40722,"initialValue":{"expression":{"baseExpression":{"id":40718,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40695,"src":"3010:11:57","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":40720,"indexExpression":{"id":40719,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40708,"src":"3022:10:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3010:23:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":40721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3034:17:57","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":39720,"src":"3010:41:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2974:77:57"},{"assignments":[40724],"declarations":[{"constant":false,"id":40724,"mutability":"mutable","name":"facetAddress","nameLocation":"3073:12:57","nodeType":"VariableDeclaration","scope":40795,"src":"3065:20:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40723,"name":"address","nodeType":"ElementaryTypeName","src":"3065:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":40729,"initialValue":{"expression":{"baseExpression":{"id":40725,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40695,"src":"3088:11:57","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":40727,"indexExpression":{"id":40726,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40708,"src":"3100:10:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3088:23:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":40728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3112:12:57","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":39714,"src":"3088:36:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3065:59:57"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":40730,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40717,"src":"3142:17:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":40731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3160:6:57","memberName":"length","nodeType":"MemberAccess","src":"3142:24:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":40732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3170:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3142:29:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40739,"nodeType":"IfStatement","src":"3138:122:57","trueBody":{"id":40738,"nodeType":"Block","src":"3173:87:57","statements":[{"errorCall":{"arguments":[{"id":40735,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40724,"src":"3232:12:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":40734,"name":"NoSelectorsProvidedForFacetForCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40537,"src":"3198:33:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":40736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3198:47:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40737,"nodeType":"RevertStatement","src":"3191:54:57"}]}},{"assignments":[40744],"declarations":[{"constant":false,"id":40744,"mutability":"mutable","name":"action","nameLocation":"3300:6:57","nodeType":"VariableDeclaration","scope":40795,"src":"3273:33:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},"typeName":{"id":40743,"nodeType":"UserDefinedTypeName","pathNode":{"id":40742,"name":"IDiamondCut.FacetCutAction","nameLocations":["3273:11:57","3285:14:57"],"nodeType":"IdentifierPath","referencedDeclaration":39712,"src":"3273:26:57"},"referencedDeclaration":39712,"src":"3273:26:57","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},"visibility":"internal"}],"id":40749,"initialValue":{"expression":{"baseExpression":{"id":40745,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40695,"src":"3309:11:57","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":40747,"indexExpression":{"id":40746,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40708,"src":"3321:10:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3309:23:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":40748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3333:6:57","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":39717,"src":"3309:30:57","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"VariableDeclarationStatement","src":"3273:66:57"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},"id":40754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40750,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40744,"src":"3357:6:57","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":40751,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"3367:8:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":40752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3376:14:57","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"3367:23:57","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":40753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3391:3:57","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"3367:27:57","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},"src":"3357:37:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},"id":40765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40761,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40744,"src":"3484:6:57","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":40762,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"3494:8:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":40763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3503:14:57","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"3494:23:57","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":40764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3518:7:57","memberName":"Replace","nodeType":"MemberAccess","referencedDeclaration":39710,"src":"3494:31:57","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},"src":"3484:41:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},"id":40776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40772,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40744,"src":"3619:6:57","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":40773,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"3629:8:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":40774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3638:14:57","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"3629:23:57","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":40775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3653:6:57","memberName":"Remove","nodeType":"MemberAccess","referencedDeclaration":39711,"src":"3629:30:57","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},"src":"3619:40:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":40787,"nodeType":"Block","src":"3748:71:57","statements":[{"errorCall":{"arguments":[{"id":40784,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40744,"src":"3797:6:57","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}],"id":40783,"name":"IncorrectFacetCutAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40533,"src":"3773:23:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_enum$_FacetCutAction_$39712_$returns$__$","typeString":"function (enum IDiamond.FacetCutAction) pure"}},"id":40785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:31:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40786,"nodeType":"RevertStatement","src":"3766:38:57"}]},"id":40788,"nodeType":"IfStatement","src":"3615:204:57","trueBody":{"id":40782,"nodeType":"Block","src":"3661:81:57","statements":[{"expression":{"arguments":[{"id":40778,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40724,"src":"3695:12:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":40779,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40717,"src":"3709:17:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":40777,"name":"removeFunctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41158,"src":"3679:15:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (address,bytes4[] memory)"}},"id":40780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3679:48:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40781,"nodeType":"ExpressionStatement","src":"3679:48:57"}]}},"id":40789,"nodeType":"IfStatement","src":"3480:339:57","trueBody":{"id":40771,"nodeType":"Block","src":"3527:82:57","statements":[{"expression":{"arguments":[{"id":40767,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40724,"src":"3562:12:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":40768,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40717,"src":"3576:17:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":40766,"name":"replaceFunctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41020,"src":"3545:16:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (address,bytes4[] memory)"}},"id":40769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3545:49:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40770,"nodeType":"ExpressionStatement","src":"3545:49:57"}]}},"id":40790,"nodeType":"IfStatement","src":"3353:466:57","trueBody":{"id":40760,"nodeType":"Block","src":"3396:78:57","statements":[{"expression":{"arguments":[{"id":40756,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40724,"src":"3427:12:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":40757,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40717,"src":"3441:17:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":40755,"name":"addFunctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40915,"src":"3414:12:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (address,bytes4[] memory)"}},"id":40758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3414:45:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40759,"nodeType":"ExpressionStatement","src":"3414:45:57"}]}},{"id":40794,"nodeType":"UncheckedBlock","src":"3832:55:57","statements":[{"expression":{"id":40792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3860:12:57","subExpression":{"id":40791,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40708,"src":"3862:10:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40793,"nodeType":"ExpressionStatement","src":"3860:12:57"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40710,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40708,"src":"2937:10:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":40711,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40703,"src":"2950:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2937:19:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40796,"initializationExpression":{"assignments":[40708],"declarations":[{"constant":false,"id":40708,"mutability":"mutable","name":"facetIndex","nameLocation":"2925:10:57","nodeType":"VariableDeclaration","scope":40796,"src":"2917:18:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40707,"name":"uint256","nodeType":"ElementaryTypeName","src":"2917:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40709,"nodeType":"VariableDeclarationStatement","src":"2917:18:57"},"nodeType":"ForStatement","src":"2912:985:57"},{"eventCall":{"arguments":[{"id":40798,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40695,"src":"3936:11:57","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":40799,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40697,"src":"3956:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":40800,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40699,"src":"3974:9:57","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40797,"name":"DiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40599,"src":"3911:10:57","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":40801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3923:11:57","3949:5:57","3963:9:57"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"3911:74:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40802,"nodeType":"EmitStatement","src":"3906:79:57"},{"expression":{"arguments":[{"id":40804,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40697,"src":"4016:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":40805,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40699,"src":"4023:9:57","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":40803,"name":"initializeDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41206,"src":"3995:20:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":40806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3995:38:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40807,"nodeType":"ExpressionStatement","src":"3995:38:57"}]},"implemented":true,"kind":"function","modifiers":[],"name":"diamondCut","nameLocation":"2758:10:57","parameters":{"id":40700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40695,"mutability":"mutable","name":"_diamondCut","nameLocation":"2796:11:57","nodeType":"VariableDeclaration","scope":40809,"src":"2769:38:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":40693,"nodeType":"UserDefinedTypeName","pathNode":{"id":40692,"name":"IDiamond.FacetCut","nameLocations":["2769:8:57","2778:8:57"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"2769:17:57"},"referencedDeclaration":39721,"src":"2769:17:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":40694,"nodeType":"ArrayTypeName","src":"2769:19:57","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":40697,"mutability":"mutable","name":"_init","nameLocation":"2817:5:57","nodeType":"VariableDeclaration","scope":40809,"src":"2809:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40696,"name":"address","nodeType":"ElementaryTypeName","src":"2809:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40699,"mutability":"mutable","name":"_calldata","nameLocation":"2837:9:57","nodeType":"VariableDeclaration","scope":40809,"src":"2824:22:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":40698,"name":"bytes","nodeType":"ElementaryTypeName","src":"2824:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2768:79:57"},"returnParameters":{"id":40701,"nodeType":"ParameterList","parameters":[],"src":"2857:0:57"},"scope":41229,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":40915,"nodeType":"FunctionDefinition","src":"4046:1158:57","nodes":[],"body":{"id":40914,"nodeType":"Block","src":"4136:1068:57","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":40822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40817,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40811,"src":"4150:13:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":40820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4175:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":40819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4167:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":40818,"name":"address","nodeType":"ElementaryTypeName","src":"4167:7:57","typeDescriptions":{}}},"id":40821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4167:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4150:27:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40828,"nodeType":"IfStatement","src":"4146:116:57","trueBody":{"id":40827,"nodeType":"Block","src":"4179:83:57","statements":[{"errorCall":{"arguments":[{"id":40824,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40814,"src":"4232:18:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":40823,"name":"CannotAddSelectorsToZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40546,"src":"4200:31:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes4[] memory) pure"}},"id":40825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4200:51:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40826,"nodeType":"RevertStatement","src":"4193:58:57"}]}},{"assignments":[40831],"declarations":[{"constant":false,"id":40831,"mutability":"mutable","name":"ds","nameLocation":"4294:2:57","nodeType":"VariableDeclaration","scope":40914,"src":"4271:25:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":40830,"nodeType":"UserDefinedTypeName","pathNode":{"id":40829,"name":"DiamondStorage","nameLocations":["4271:14:57"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"4271:14:57"},"referencedDeclaration":40619,"src":"4271:14:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":40834,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":40832,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40631,"src":"4299:14:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$40619_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":40833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4299:16:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4271:44:57"},{"assignments":[40836],"declarations":[{"constant":false,"id":40836,"mutability":"mutable","name":"selectorCount","nameLocation":"4332:13:57","nodeType":"VariableDeclaration","scope":40914,"src":"4325:20:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":40835,"name":"uint16","nodeType":"ElementaryTypeName","src":"4325:6:57","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":40843,"initialValue":{"arguments":[{"expression":{"expression":{"id":40839,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40831,"src":"4355:2:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":40840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4358:9:57","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":40612,"src":"4355:12:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":40841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4368:6:57","memberName":"length","nodeType":"MemberAccess","src":"4355:19:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4348:6:57","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":40837,"name":"uint16","nodeType":"ElementaryTypeName","src":"4348:6:57","typeDescriptions":{}}},"id":40842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4348:27:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"4325:50:57"},{"expression":{"arguments":[{"id":40845,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40811,"src":"4408:13:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"6469616d6f6e644375743a2041646420666163657420686173206e6f20636f6465","id":40846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4423:35:57","typeDescriptions":{"typeIdentifier":"t_stringliteral_d8d835faff0ba0e4baa5f22169088fa1f85cf7197f0ff5b9c9e823f3d33c8ad7","typeString":"literal_string \"diamondCut: Add facet has no code\""},"value":"diamondCut: Add facet has no code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_d8d835faff0ba0e4baa5f22169088fa1f85cf7197f0ff5b9c9e823f3d33c8ad7","typeString":"literal_string \"diamondCut: Add facet has no code\""}],"id":40844,"name":"enforceHasContractCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41228,"src":"4385:22:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) view"}},"id":40847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4385:74:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40848,"nodeType":"ExpressionStatement","src":"4385:74:57"},{"assignments":[40850],"declarations":[{"constant":false,"id":40850,"mutability":"mutable","name":"length","nameLocation":"4477:6:57","nodeType":"VariableDeclaration","scope":40914,"src":"4469:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40849,"name":"uint256","nodeType":"ElementaryTypeName","src":"4469:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40853,"initialValue":{"expression":{"id":40851,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40814,"src":"4486:18:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":40852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4505:6:57","memberName":"length","nodeType":"MemberAccess","src":"4486:25:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4469:42:57"},{"body":{"id":40912,"nodeType":"Block","src":"4575:623:57","statements":[{"assignments":[40861],"declarations":[{"constant":false,"id":40861,"mutability":"mutable","name":"selector","nameLocation":"4596:8:57","nodeType":"VariableDeclaration","scope":40912,"src":"4589:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40860,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4589:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":40865,"initialValue":{"baseExpression":{"id":40862,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40814,"src":"4607:18:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":40864,"indexExpression":{"id":40863,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40855,"src":"4626:13:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4607:33:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"4589:51:57"},{"assignments":[40867],"declarations":[{"constant":false,"id":40867,"mutability":"mutable","name":"oldFacetAddress","nameLocation":"4662:15:57","nodeType":"VariableDeclaration","scope":40912,"src":"4654:23:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40866,"name":"address","nodeType":"ElementaryTypeName","src":"4654:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":40873,"initialValue":{"expression":{"baseExpression":{"expression":{"id":40868,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40831,"src":"4680:2:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":40869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4683:31:57","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":40609,"src":"4680:34:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":40871,"indexExpression":{"id":40870,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40861,"src":"4715:8:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4680:44:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":40872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4725:12:57","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40601,"src":"4680:57:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4654:83:57"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":40879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40874,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40867,"src":"4755:15:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":40877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4782:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":40876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4774:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":40875,"name":"address","nodeType":"ElementaryTypeName","src":"4774:7:57","typeDescriptions":{}}},"id":40878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4774:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4755:29:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40885,"nodeType":"IfStatement","src":"4751:128:57","trueBody":{"id":40884,"nodeType":"Block","src":"4786:93:57","statements":[{"errorCall":{"arguments":[{"id":40881,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40861,"src":"4855:8:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":40880,"name":"CannotAddFunctionToDiamondThatAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40541,"src":"4811:43:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":40882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4811:53:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40883,"nodeType":"RevertStatement","src":"4804:60:57"}]}},{"expression":{"id":40895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":40886,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40831,"src":"4892:2:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":40889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4895:31:57","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":40609,"src":"4892:34:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":40890,"indexExpression":{"id":40888,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40861,"src":"4927:8:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4892:44:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":40892,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40811,"src":"4988:13:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":40893,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40836,"src":"5019:13:57","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":40891,"name":"FacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40604,"src":"4939:31:57","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_ptr_$","typeString":"type(struct LibDiamond.FacetAddressAndSelectorPosition storage pointer)"}},"id":40894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4939:107:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"src":"4892:154:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":40896,"nodeType":"ExpressionStatement","src":"4892:154:57"},{"expression":{"arguments":[{"id":40902,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40861,"src":"5078:8:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"expression":{"id":40897,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40831,"src":"5060:2:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":40900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5063:9:57","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":40612,"src":"5060:12:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":40901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5073:4:57","memberName":"push","nodeType":"MemberAccess","src":"5060:17:57","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes4_$dyn_storage_ptr_$_t_bytes4_$returns$__$attached_to$_t_array$_t_bytes4_$dyn_storage_ptr_$","typeString":"function (bytes4[] storage pointer,bytes4)"}},"id":40903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5060:27:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40904,"nodeType":"ExpressionStatement","src":"5060:27:57"},{"expression":{"id":40906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5101:15:57","subExpression":{"id":40905,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40836,"src":"5103:13:57","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":40907,"nodeType":"ExpressionStatement","src":"5101:15:57"},{"id":40911,"nodeType":"UncheckedBlock","src":"5130:58:57","statements":[{"expression":{"id":40909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5158:15:57","subExpression":{"id":40908,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40855,"src":"5160:13:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40910,"nodeType":"ExpressionStatement","src":"5158:15:57"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40857,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40855,"src":"4549:13:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":40858,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40850,"src":"4565:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4549:22:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40913,"initializationExpression":{"assignments":[40855],"declarations":[{"constant":false,"id":40855,"mutability":"mutable","name":"selectorIndex","nameLocation":"4534:13:57","nodeType":"VariableDeclaration","scope":40913,"src":"4526:21:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40854,"name":"uint256","nodeType":"ElementaryTypeName","src":"4526:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40856,"nodeType":"VariableDeclarationStatement","src":"4526:21:57"},"nodeType":"ForStatement","src":"4521:677:57"}]},"implemented":true,"kind":"function","modifiers":[],"name":"addFunctions","nameLocation":"4055:12:57","parameters":{"id":40815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40811,"mutability":"mutable","name":"_facetAddress","nameLocation":"4076:13:57","nodeType":"VariableDeclaration","scope":40915,"src":"4068:21:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40810,"name":"address","nodeType":"ElementaryTypeName","src":"4068:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40814,"mutability":"mutable","name":"_functionSelectors","nameLocation":"4107:18:57","nodeType":"VariableDeclaration","scope":40915,"src":"4091:34:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":40812,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4091:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":40813,"nodeType":"ArrayTypeName","src":"4091:8:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"4067:59:57"},"returnParameters":{"id":40816,"nodeType":"ParameterList","parameters":[],"src":"4136:0:57"},"scope":41229,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41020,"nodeType":"FunctionDefinition","src":"5210:1396:57","nodes":[],"body":{"id":41019,"nodeType":"Block","src":"5304:1302:57","nodes":[],"statements":[{"assignments":[40925],"declarations":[{"constant":false,"id":40925,"mutability":"mutable","name":"ds","nameLocation":"5337:2:57","nodeType":"VariableDeclaration","scope":41019,"src":"5314:25:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":40924,"nodeType":"UserDefinedTypeName","pathNode":{"id":40923,"name":"DiamondStorage","nameLocations":["5314:14:57"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"5314:14:57"},"referencedDeclaration":40619,"src":"5314:14:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":40928,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":40926,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40631,"src":"5342:14:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$40619_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":40927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5342:16:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5314:44:57"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":40934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40929,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40917,"src":"5372:13:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":40932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5397:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":40931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5389:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":40930,"name":"address","nodeType":"ElementaryTypeName","src":"5389:7:57","typeDescriptions":{}}},"id":40933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5372:27:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40940,"nodeType":"IfStatement","src":"5368:131:57","trueBody":{"id":40939,"nodeType":"Block","src":"5401:98:57","statements":[{"errorCall":{"arguments":[{"id":40936,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40920,"src":"5469:18:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":40935,"name":"CannotReplaceFunctionsFromFacetWithZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40565,"src":"5422:46:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes4[] memory) pure"}},"id":40937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5422:66:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40938,"nodeType":"RevertStatement","src":"5415:73:57"}]}},{"expression":{"arguments":[{"id":40942,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40917,"src":"5531:13:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"4c69624469616d6f6e644375743a205265706c61636520666163657420686173206e6f20636f6465","id":40943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5546:42:57","typeDescriptions":{"typeIdentifier":"t_stringliteral_de246aa8052f872d61bcd9cfb620b8012f8bc6e512400178c0e967944dadacfe","typeString":"literal_string \"LibDiamondCut: Replace facet has no code\""},"value":"LibDiamondCut: Replace facet has no code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_de246aa8052f872d61bcd9cfb620b8012f8bc6e512400178c0e967944dadacfe","typeString":"literal_string \"LibDiamondCut: Replace facet has no code\""}],"id":40941,"name":"enforceHasContractCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41228,"src":"5508:22:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) view"}},"id":40944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5508:81:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40945,"nodeType":"ExpressionStatement","src":"5508:81:57"},{"assignments":[40947],"declarations":[{"constant":false,"id":40947,"mutability":"mutable","name":"fl","nameLocation":"5607:2:57","nodeType":"VariableDeclaration","scope":41019,"src":"5599:10:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40946,"name":"uint256","nodeType":"ElementaryTypeName","src":"5599:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40950,"initialValue":{"expression":{"id":40948,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40920,"src":"5612:18:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":40949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5631:6:57","memberName":"length","nodeType":"MemberAccess","src":"5612:25:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5599:38:57"},{"body":{"id":41017,"nodeType":"Block","src":"5697:903:57","statements":[{"assignments":[40958],"declarations":[{"constant":false,"id":40958,"mutability":"mutable","name":"selector","nameLocation":"5718:8:57","nodeType":"VariableDeclaration","scope":41017,"src":"5711:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40957,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5711:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":40962,"initialValue":{"baseExpression":{"id":40959,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40920,"src":"5729:18:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":40961,"indexExpression":{"id":40960,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40952,"src":"5748:13:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5729:33:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"5711:51:57"},{"assignments":[40964],"declarations":[{"constant":false,"id":40964,"mutability":"mutable","name":"oldFacetAddress","nameLocation":"5784:15:57","nodeType":"VariableDeclaration","scope":41017,"src":"5776:23:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40963,"name":"address","nodeType":"ElementaryTypeName","src":"5776:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":40970,"initialValue":{"expression":{"baseExpression":{"expression":{"id":40965,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40925,"src":"5802:2:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":40966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5805:31:57","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":40609,"src":"5802:34:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":40968,"indexExpression":{"id":40967,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40958,"src":"5837:8:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5802:44:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":40969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5847:12:57","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40601,"src":"5802:57:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5776:83:57"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":40976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40971,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40964,"src":"5984:15:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":40974,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6011:4:57","typeDescriptions":{"typeIdentifier":"t_contract$_LibDiamond_$41229","typeString":"library LibDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LibDiamond_$41229","typeString":"library LibDiamond"}],"id":40973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6003:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":40972,"name":"address","nodeType":"ElementaryTypeName","src":"6003:7:57","typeDescriptions":{}}},"id":40975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6003:13:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5984:32:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40982,"nodeType":"IfStatement","src":"5980:118:57","trueBody":{"id":40981,"nodeType":"Block","src":"6018:80:57","statements":[{"errorCall":{"arguments":[{"id":40978,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40958,"src":"6074:8:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":40977,"name":"CannotReplaceImmutableFunction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40569,"src":"6043:30:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":40979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6043:40:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40980,"nodeType":"RevertStatement","src":"6036:47:57"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":40985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40983,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40964,"src":"6115:15:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":40984,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40917,"src":"6134:13:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6115:32:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40991,"nodeType":"IfStatement","src":"6111:144:57","trueBody":{"id":40990,"nodeType":"Block","src":"6149:106:57","statements":[{"errorCall":{"arguments":[{"id":40987,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40958,"src":"6231:8:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":40986,"name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40573,"src":"6174:56:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":40988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6174:66:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40989,"nodeType":"RevertStatement","src":"6167:73:57"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":40997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40992,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40964,"src":"6272:15:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":40995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6299:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":40994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6291:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":40993,"name":"address","nodeType":"ElementaryTypeName","src":"6291:7:57","typeDescriptions":{}}},"id":40996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6291:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6272:29:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41003,"nodeType":"IfStatement","src":"6268:123:57","trueBody":{"id":41002,"nodeType":"Block","src":"6303:88:57","statements":[{"errorCall":{"arguments":[{"id":40999,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40958,"src":"6367:8:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":40998,"name":"CannotReplaceFunctionThatDoesNotExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40577,"src":"6328:38:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6328:48:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41001,"nodeType":"RevertStatement","src":"6321:55:57"}]}},{"expression":{"id":41011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":41004,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40925,"src":"6445:2:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6448:31:57","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":40609,"src":"6445:34:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41008,"indexExpression":{"id":41006,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40958,"src":"6480:8:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6445:44:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6490:12:57","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40601,"src":"6445:57:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41010,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40917,"src":"6505:13:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6445:73:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41012,"nodeType":"ExpressionStatement","src":"6445:73:57"},{"id":41016,"nodeType":"UncheckedBlock","src":"6532:58:57","statements":[{"expression":{"id":41014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6560:15:57","subExpression":{"id":41013,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40952,"src":"6562:13:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41015,"nodeType":"ExpressionStatement","src":"6560:15:57"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40954,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40952,"src":"5675:13:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":40955,"name":"fl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40947,"src":"5691:2:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5675:18:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41018,"initializationExpression":{"assignments":[40952],"declarations":[{"constant":false,"id":40952,"mutability":"mutable","name":"selectorIndex","nameLocation":"5660:13:57","nodeType":"VariableDeclaration","scope":41018,"src":"5652:21:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40951,"name":"uint256","nodeType":"ElementaryTypeName","src":"5652:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40953,"nodeType":"VariableDeclarationStatement","src":"5652:21:57"},"nodeType":"ForStatement","src":"5647:953:57"}]},"implemented":true,"kind":"function","modifiers":[],"name":"replaceFunctions","nameLocation":"5219:16:57","parameters":{"id":40921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40917,"mutability":"mutable","name":"_facetAddress","nameLocation":"5244:13:57","nodeType":"VariableDeclaration","scope":41020,"src":"5236:21:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40916,"name":"address","nodeType":"ElementaryTypeName","src":"5236:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40920,"mutability":"mutable","name":"_functionSelectors","nameLocation":"5275:18:57","nodeType":"VariableDeclaration","scope":41020,"src":"5259:34:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":40918,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5259:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":40919,"nodeType":"ArrayTypeName","src":"5259:8:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"5235:59:57"},"returnParameters":{"id":40922,"nodeType":"ParameterList","parameters":[],"src":"5304:0:57"},"scope":41229,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41158,"nodeType":"FunctionDefinition","src":"6612:1796:57","nodes":[],"body":{"id":41157,"nodeType":"Block","src":"6705:1703:57","nodes":[],"statements":[{"assignments":[41030],"declarations":[{"constant":false,"id":41030,"mutability":"mutable","name":"ds","nameLocation":"6738:2:57","nodeType":"VariableDeclaration","scope":41157,"src":"6715:25:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41029,"nodeType":"UserDefinedTypeName","pathNode":{"id":41028,"name":"DiamondStorage","nameLocations":["6715:14:57"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"6715:14:57"},"referencedDeclaration":40619,"src":"6715:14:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":41033,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":41031,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40631,"src":"6743:14:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$40619_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6743:16:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6715:44:57"},{"assignments":[41035],"declarations":[{"constant":false,"id":41035,"mutability":"mutable","name":"selectorCount","nameLocation":"6777:13:57","nodeType":"VariableDeclaration","scope":41157,"src":"6769:21:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41034,"name":"uint256","nodeType":"ElementaryTypeName","src":"6769:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41039,"initialValue":{"expression":{"expression":{"id":41036,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41030,"src":"6793:2:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6796:9:57","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":40612,"src":"6793:12:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6806:6:57","memberName":"length","nodeType":"MemberAccess","src":"6793:19:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6769:43:57"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41040,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41022,"src":"6826:13:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":41043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6851:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":41042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6843:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41041,"name":"address","nodeType":"ElementaryTypeName","src":"6843:7:57","typeDescriptions":{}}},"id":41044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6843:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6826:27:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41051,"nodeType":"IfStatement","src":"6822:115:57","trueBody":{"id":41050,"nodeType":"Block","src":"6855:82:57","statements":[{"errorCall":{"arguments":[{"id":41047,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41022,"src":"6912:13:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41046,"name":"RemoveFacetAddressMustBeZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"6876:35:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":41048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6876:50:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41049,"nodeType":"RevertStatement","src":"6869:57:57"}]}},{"assignments":[41053],"declarations":[{"constant":false,"id":41053,"mutability":"mutable","name":"fl","nameLocation":"6954:2:57","nodeType":"VariableDeclaration","scope":41157,"src":"6946:10:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41052,"name":"uint256","nodeType":"ElementaryTypeName","src":"6946:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41056,"initialValue":{"expression":{"id":41054,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41025,"src":"6959:18:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6978:6:57","memberName":"length","nodeType":"MemberAccess","src":"6959:25:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6946:38:57"},{"body":{"id":41155,"nodeType":"Block","src":"7044:1358:57","statements":[{"assignments":[41064],"declarations":[{"constant":false,"id":41064,"mutability":"mutable","name":"selector","nameLocation":"7065:8:57","nodeType":"VariableDeclaration","scope":41155,"src":"7058:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41063,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7058:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":41068,"initialValue":{"baseExpression":{"id":41065,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41025,"src":"7076:18:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41067,"indexExpression":{"id":41066,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41058,"src":"7095:13:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7076:33:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"7058:51:57"},{"assignments":[41071],"declarations":[{"constant":false,"id":41071,"mutability":"mutable","name":"oldFacetAddressAndSelectorPosition","nameLocation":"7162:34:57","nodeType":"VariableDeclaration","scope":41155,"src":"7123:73:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition"},"typeName":{"id":41070,"nodeType":"UserDefinedTypeName","pathNode":{"id":41069,"name":"FacetAddressAndSelectorPosition","nameLocations":["7123:31:57"],"nodeType":"IdentifierPath","referencedDeclaration":40604,"src":"7123:31:57"},"referencedDeclaration":40604,"src":"7123:31:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition"}},"visibility":"internal"}],"id":41076,"initialValue":{"baseExpression":{"expression":{"id":41072,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41030,"src":"7199:2:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7219:31:57","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":40609,"src":"7199:51:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41075,"indexExpression":{"id":41074,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41064,"src":"7251:8:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7199:61:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7123:137:57"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41077,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41071,"src":"7278:34:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7313:12:57","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40601,"src":"7278:47:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7337:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":41080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7329:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41079,"name":"address","nodeType":"ElementaryTypeName","src":"7329:7:57","typeDescriptions":{}}},"id":41082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7329:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7278:61:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41089,"nodeType":"IfStatement","src":"7274:153:57","trueBody":{"id":41088,"nodeType":"Block","src":"7341:86:57","statements":[{"errorCall":{"arguments":[{"id":41085,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41064,"src":"7403:8:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41084,"name":"CannotRemoveFunctionThatDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40585,"src":"7366:36:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7366:46:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41087,"nodeType":"RevertStatement","src":"7359:53:57"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41090,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41071,"src":"7538:34:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7573:12:57","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40601,"src":"7538:47:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":41094,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7597:4:57","typeDescriptions":{"typeIdentifier":"t_contract$_LibDiamond_$41229","typeString":"library LibDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LibDiamond_$41229","typeString":"library LibDiamond"}],"id":41093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7589:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41092,"name":"address","nodeType":"ElementaryTypeName","src":"7589:7:57","typeDescriptions":{}}},"id":41095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7589:13:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7538:64:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41102,"nodeType":"IfStatement","src":"7534:149:57","trueBody":{"id":41101,"nodeType":"Block","src":"7604:79:57","statements":[{"errorCall":{"arguments":[{"id":41098,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41064,"src":"7659:8:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41097,"name":"CannotRemoveImmutableFunction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40589,"src":"7629:29:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7629:39:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41100,"nodeType":"RevertStatement","src":"7622:46:57"}]}},{"expression":{"id":41104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"7747:15:57","subExpression":{"id":41103,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41035,"src":"7749:13:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41105,"nodeType":"ExpressionStatement","src":"7747:15:57"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41106,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41071,"src":"7780:34:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7815:16:57","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":40603,"src":"7780:51:57","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":41108,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41035,"src":"7835:13:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7780:68:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41137,"nodeType":"IfStatement","src":"7776:412:57","trueBody":{"id":41136,"nodeType":"Block","src":"7850:338:57","statements":[{"assignments":[41111],"declarations":[{"constant":false,"id":41111,"mutability":"mutable","name":"lastSelector","nameLocation":"7875:12:57","nodeType":"VariableDeclaration","scope":41136,"src":"7868:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41110,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7868:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":41116,"initialValue":{"baseExpression":{"expression":{"id":41112,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41030,"src":"7890:2:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7893:9:57","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":40612,"src":"7890:12:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41115,"indexExpression":{"id":41114,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41035,"src":"7903:13:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7890:27:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"7868:49:57"},{"expression":{"id":41124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":41117,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41030,"src":"7935:2:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7938:9:57","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":40612,"src":"7935:12:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41122,"indexExpression":{"expression":{"id":41119,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41071,"src":"7948:34:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7983:16:57","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":40603,"src":"7948:51:57","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7935:65:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41123,"name":"lastSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41111,"src":"8003:12:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7935:80:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41125,"nodeType":"ExpressionStatement","src":"7935:80:57"},{"expression":{"id":41134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":41126,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41030,"src":"8033:2:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8036:31:57","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":40609,"src":"8033:34:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41130,"indexExpression":{"id":41128,"name":"lastSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41111,"src":"8068:12:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8033:48:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8082:16:57","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":40603,"src":"8033:65:57","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41132,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41071,"src":"8101:34:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8157:16:57","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":40603,"src":"8101:72:57","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"8033:140:57","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":41135,"nodeType":"ExpressionStatement","src":"8033:140:57"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":41138,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41030,"src":"8237:2:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8240:9:57","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":40612,"src":"8237:12:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8250:3:57","memberName":"pop","nodeType":"MemberAccess","src":"8237:16:57","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes4_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_bytes4_$dyn_storage_ptr_$","typeString":"function (bytes4[] storage pointer)"}},"id":41143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8237:18:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41144,"nodeType":"ExpressionStatement","src":"8237:18:57"},{"expression":{"id":41149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8269:51:57","subExpression":{"baseExpression":{"expression":{"id":41145,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41030,"src":"8276:2:57","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8279:31:57","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":40609,"src":"8276:34:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41148,"indexExpression":{"id":41147,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41064,"src":"8311:8:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8276:44:57","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41150,"nodeType":"ExpressionStatement","src":"8269:51:57"},{"id":41154,"nodeType":"UncheckedBlock","src":"8334:58:57","statements":[{"expression":{"id":41152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8362:15:57","subExpression":{"id":41151,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41058,"src":"8364:13:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41153,"nodeType":"ExpressionStatement","src":"8362:15:57"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41060,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41058,"src":"7022:13:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41061,"name":"fl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41053,"src":"7038:2:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7022:18:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41156,"initializationExpression":{"assignments":[41058],"declarations":[{"constant":false,"id":41058,"mutability":"mutable","name":"selectorIndex","nameLocation":"7007:13:57","nodeType":"VariableDeclaration","scope":41156,"src":"6999:21:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41057,"name":"uint256","nodeType":"ElementaryTypeName","src":"6999:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41059,"nodeType":"VariableDeclarationStatement","src":"6999:21:57"},"nodeType":"ForStatement","src":"6994:1408:57"}]},"implemented":true,"kind":"function","modifiers":[],"name":"removeFunctions","nameLocation":"6621:15:57","parameters":{"id":41026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41022,"mutability":"mutable","name":"_facetAddress","nameLocation":"6645:13:57","nodeType":"VariableDeclaration","scope":41158,"src":"6637:21:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41021,"name":"address","nodeType":"ElementaryTypeName","src":"6637:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41025,"mutability":"mutable","name":"_functionSelectors","nameLocation":"6676:18:57","nodeType":"VariableDeclaration","scope":41158,"src":"6660:34:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41023,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6660:6:57","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41024,"nodeType":"ArrayTypeName","src":"6660:8:57","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"6636:59:57"},"returnParameters":{"id":41027,"nodeType":"ParameterList","parameters":[],"src":"6705:0:57"},"scope":41229,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41206,"nodeType":"FunctionDefinition","src":"8414:888:57","nodes":[],"body":{"id":41205,"nodeType":"Block","src":"8492:810:57","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41165,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41160,"src":"8506:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8523:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":41167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8515:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41166,"name":"address","nodeType":"ElementaryTypeName","src":"8515:7:57","typeDescriptions":{}}},"id":41169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8515:10:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8506:19:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41173,"nodeType":"IfStatement","src":"8502:56:57","trueBody":{"id":41172,"nodeType":"Block","src":"8527:31:57","statements":[{"functionReturnParameters":41164,"id":41171,"nodeType":"Return","src":"8541:7:57"}]}},{"expression":{"arguments":[{"id":41175,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41160,"src":"8590:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f6465","id":41176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8597:39:57","typeDescriptions":{"typeIdentifier":"t_stringliteral_72db497a72f62bab0025d592feb672a31e8d1a2a1bfe9fa07cc3a061b7217c3c","typeString":"literal_string \"diamondCut: _init address has no code\""},"value":"diamondCut: _init address has no code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_72db497a72f62bab0025d592feb672a31e8d1a2a1bfe9fa07cc3a061b7217c3c","typeString":"literal_string \"diamondCut: _init address has no code\""}],"id":41174,"name":"enforceHasContractCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41228,"src":"8567:22:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) view"}},"id":41177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8567:70:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41178,"nodeType":"ExpressionStatement","src":"8567:70:57"},{"assignments":[41180,41182],"declarations":[{"constant":false,"id":41180,"mutability":"mutable","name":"success","nameLocation":"8706:7:57","nodeType":"VariableDeclaration","scope":41205,"src":"8701:12:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41179,"name":"bool","nodeType":"ElementaryTypeName","src":"8701:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41182,"mutability":"mutable","name":"error","nameLocation":"8728:5:57","nodeType":"VariableDeclaration","scope":41205,"src":"8715:18:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41181,"name":"bytes","nodeType":"ElementaryTypeName","src":"8715:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":41187,"initialValue":{"arguments":[{"id":41185,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41162,"src":"8756:9:57","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":41183,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41160,"src":"8737:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8743:12:57","memberName":"delegatecall","nodeType":"MemberAccess","src":"8737:18:57","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":41186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8737:29:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"8700:66:57"},{"condition":{"id":41189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8826:8:57","subExpression":{"id":41188,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41180,"src":"8827:7:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41204,"nodeType":"IfStatement","src":"8822:474:57","trueBody":{"id":41203,"nodeType":"Block","src":"8836:460:57","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41190,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41182,"src":"8911:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":41191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8917:6:57","memberName":"length","nodeType":"MemberAccess","src":"8911:12:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8927:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8911:17:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":41201,"nodeType":"Block","src":"9198:88:57","statements":[{"errorCall":{"arguments":[{"id":41197,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41160,"src":"9254:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41198,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41162,"src":"9261:9:57","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41196,"name":"InitializationFunctionReverted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40552,"src":"9223:30:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) pure"}},"id":41199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9223:48:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41200,"nodeType":"RevertStatement","src":"9216:55:57"}]},"id":41202,"nodeType":"IfStatement","src":"8907:379:57","trueBody":{"id":41195,"nodeType":"Block","src":"8930:262:57","statements":[{"AST":{"nodeType":"YulBlock","src":"9043:135:57","statements":[{"nodeType":"YulVariableDeclaration","src":"9065:35:57","value":{"arguments":[{"name":"error","nodeType":"YulIdentifier","src":"9094:5:57"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9088:5:57"},"nodeType":"YulFunctionCall","src":"9088:12:57"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"9069:15:57","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9132:2:57","type":"","value":"32"},{"name":"error","nodeType":"YulIdentifier","src":"9136:5:57"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9128:3:57"},"nodeType":"YulFunctionCall","src":"9128:14:57"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9144:15:57"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9121:6:57"},"nodeType":"YulFunctionCall","src":"9121:39:57"},"nodeType":"YulExpressionStatement","src":"9121:39:57"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":41182,"isOffset":false,"isSlot":false,"src":"9094:5:57","valueSize":1},{"declaration":41182,"isOffset":false,"isSlot":false,"src":"9136:5:57","valueSize":1}],"id":41194,"nodeType":"InlineAssembly","src":"9034:144:57"}]}}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"initializeDiamondCut","nameLocation":"8423:20:57","parameters":{"id":41163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41160,"mutability":"mutable","name":"_init","nameLocation":"8452:5:57","nodeType":"VariableDeclaration","scope":41206,"src":"8444:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41159,"name":"address","nodeType":"ElementaryTypeName","src":"8444:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41162,"mutability":"mutable","name":"_calldata","nameLocation":"8472:9:57","nodeType":"VariableDeclaration","scope":41206,"src":"8459:22:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41161,"name":"bytes","nodeType":"ElementaryTypeName","src":"8459:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8443:39:57"},"returnParameters":{"id":41164,"nodeType":"ParameterList","parameters":[],"src":"8492:0:57"},"scope":41229,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41228,"nodeType":"FunctionDefinition","src":"9308:320:57","nodes":[],"body":{"id":41227,"nodeType":"Block","src":"9402:226:57","nodes":[],"statements":[{"assignments":[41214],"declarations":[{"constant":false,"id":41214,"mutability":"mutable","name":"contractSize","nameLocation":"9420:12:57","nodeType":"VariableDeclaration","scope":41227,"src":"9412:20:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41213,"name":"uint256","nodeType":"ElementaryTypeName","src":"9412:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41215,"nodeType":"VariableDeclarationStatement","src":"9412:20:57"},{"AST":{"nodeType":"YulBlock","src":"9451:62:57","statements":[{"nodeType":"YulAssignment","src":"9465:38:57","value":{"arguments":[{"name":"_contract","nodeType":"YulIdentifier","src":"9493:9:57"}],"functionName":{"name":"extcodesize","nodeType":"YulIdentifier","src":"9481:11:57"},"nodeType":"YulFunctionCall","src":"9481:22:57"},"variableNames":[{"name":"contractSize","nodeType":"YulIdentifier","src":"9465:12:57"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":41208,"isOffset":false,"isSlot":false,"src":"9493:9:57","valueSize":1},{"declaration":41214,"isOffset":false,"isSlot":false,"src":"9465:12:57","valueSize":1}],"id":41216,"nodeType":"InlineAssembly","src":"9442:71:57"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41217,"name":"contractSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41214,"src":"9526:12:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":41218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9542:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9526:17:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41226,"nodeType":"IfStatement","src":"9522:100:57","trueBody":{"id":41225,"nodeType":"Block","src":"9545:77:57","statements":[{"errorCall":{"arguments":[{"id":41221,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41208,"src":"9586:9:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41222,"name":"_errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41210,"src":"9597:13:57","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":41220,"name":"NoBytecodeAtAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40528,"src":"9566:19:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) pure"}},"id":41223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9566:45:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41224,"nodeType":"RevertStatement","src":"9559:52:57"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"enforceHasContractCode","nameLocation":"9317:22:57","parameters":{"id":41211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41208,"mutability":"mutable","name":"_contract","nameLocation":"9348:9:57","nodeType":"VariableDeclaration","scope":41228,"src":"9340:17:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41207,"name":"address","nodeType":"ElementaryTypeName","src":"9340:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41210,"mutability":"mutable","name":"_errorMessage","nameLocation":"9373:13:57","nodeType":"VariableDeclaration","scope":41228,"src":"9359:27:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41209,"name":"string","nodeType":"ElementaryTypeName","src":"9359:6:57","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9339:48:57"},"returnParameters":{"id":41212,"nodeType":"ParameterList","parameters":[],"src":"9402:0:57"},"scope":41229,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDiamond","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[41229],"name":"LibDiamond","nameLocation":"192:10:57","scope":41230,"usedErrors":[40522,40528,40533,40537,40541,40546,40552,40554,40560,40565,40569,40573,40577,40581,40585,40589]}],"license":"MIT OR Apache-2.0"},"id":57} \ No newline at end of file +{"abi":[{"type":"function","name":"DIAMOND_STORAGE_POSITION","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"DiamondCut","inputs":[{"name":"_diamondCut","type":"tuple[]","indexed":false,"internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"_init","type":"address","indexed":false,"internalType":"address"},{"name":"_calldata","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsGivenToAdd","inputs":[]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotContractOwner","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_contractOwner","type":"address","internalType":"address"}]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608080604052346018576094908161001e823930815050f35b600080fdfe6080806040526004361015601257600080fd5b60003560e01c63b2bebf5514602657600080fd5b6000366003190112605957807f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260209252f35b600080fdfea2646970667358221220d508694a722880a4c6eb34c059182551ad1bb0b0b65354c5f1e8ee93f631303264736f6c63430008130033","sourceMap":"184:9446:62:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b60003560e01c63b2bebf5514602657600080fd5b6000366003190112605957807f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260209252f35b600080fdfea2646970667358221220d508694a722880a4c6eb34c059182551ad1bb0b0b65354c5f1e8ee93f631303264736f6c63430008130033","sourceMap":"184:9446:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;184:9446:62;;;;;260:43;184:9446;;;;;;;","linkReferences":{}},"methodIdentifiers":{"DIAMOND_STORAGE_POSITION()":"b2bebf55"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoSelectorsGivenToAdd\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_contractOwner\",\"type\":\"address\"}],\"name\":\"NotContractOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DIAMOND_STORAGE_POSITION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibDiamond.sol\":\"LibDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[],"type":"error","name":"NoSelectorsGivenToAdd"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_contractOwner","type":"address"}],"type":"error","name":"NotContractOwner"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false},{"internalType":"address","name":"_init","type":"address","indexed":false},{"internalType":"bytes","name":"_calldata","type":"bytes","indexed":false}],"type":"event","name":"DiamondCut","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DIAMOND_STORAGE_POSITION","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibDiamond.sol":"LibDiamond"},"libraries":{},"viaIR":true},"sources":{"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibDiamond.sol","id":41683,"exportedSymbols":{"IDiamond":[40170],"IDiamondCut":[40189],"LibDiamond":[41682]},"nodeType":"SourceUnit","src":"46:9585:62","nodes":[{"id":40964,"nodeType":"PragmaDirective","src":"46:23:62","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40966,"nodeType":"ImportDirective","src":"71:58:62","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"../interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":41683,"sourceUnit":40190,"symbolAliases":[{"foreign":{"id":40965,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"79:11:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40968,"nodeType":"ImportDirective","src":"130:52:62","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":41683,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":40967,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"138:8:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41682,"nodeType":"ContractDefinition","src":"184:9446:62","nodes":[{"id":40973,"nodeType":"VariableDeclaration","src":"209:94:62","nodes":[],"constant":true,"functionSelector":"b2bebf55","mutability":"constant","name":"DIAMOND_STORAGE_POSITION","nameLocation":"233:24:62","scope":41682,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"209:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6c69626469616d6f6e642e6c69622e6469616d6f6e642e73746f72616765","id":40971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"270:32:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","typeString":"literal_string \"libdiamond.lib.diamond.storage\""},"value":"libdiamond.lib.diamond.storage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","typeString":"literal_string \"libdiamond.lib.diamond.storage\""}],"id":40970,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"260:9:62","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":40972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"260:43:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":40975,"nodeType":"ErrorDefinition","src":"310:17:62","nodes":[],"errorSelector":"30cd7471","name":"NotOwner","nameLocation":"316:8:62","parameters":{"id":40974,"nodeType":"ParameterList","parameters":[],"src":"324:2:62"}},{"id":40981,"nodeType":"ErrorDefinition","src":"332:69:62","nodes":[],"errorSelector":"919834b9","name":"NoBytecodeAtAddress","nameLocation":"338:19:62","parameters":{"id":40980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40977,"mutability":"mutable","name":"_contractAddress","nameLocation":"366:16:62","nodeType":"VariableDeclaration","scope":40981,"src":"358:24:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40976,"name":"address","nodeType":"ElementaryTypeName","src":"358:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40979,"mutability":"mutable","name":"_message","nameLocation":"391:8:62","nodeType":"VariableDeclaration","scope":40981,"src":"384:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":40978,"name":"string","nodeType":"ElementaryTypeName","src":"384:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"357:43:62"}},{"id":40986,"nodeType":"ErrorDefinition","src":"406:66:62","nodes":[],"errorSelector":"7fe9a41e","name":"IncorrectFacetCutAction","nameLocation":"412:23:62","parameters":{"id":40985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40984,"mutability":"mutable","name":"_action","nameLocation":"463:7:62","nodeType":"VariableDeclaration","scope":40986,"src":"436:34:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"typeName":{"id":40983,"nodeType":"UserDefinedTypeName","pathNode":{"id":40982,"name":"IDiamondCut.FacetCutAction","nameLocations":["436:11:62","448:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":40150,"src":"436:26:62"},"referencedDeclaration":40150,"src":"436:26:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"visibility":"internal"}],"src":"435:36:62"}},{"id":40990,"nodeType":"ErrorDefinition","src":"477:63:62","nodes":[],"errorSelector":"e767f91f","name":"NoSelectorsProvidedForFacetForCut","nameLocation":"483:33:62","parameters":{"id":40989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40988,"mutability":"mutable","name":"_facetAddress","nameLocation":"525:13:62","nodeType":"VariableDeclaration","scope":40990,"src":"517:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40987,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"516:23:62"}},{"id":40994,"nodeType":"ErrorDefinition","src":"545:68:62","nodes":[],"errorSelector":"ebbf5d07","name":"CannotAddFunctionToDiamondThatAlreadyExists","nameLocation":"551:43:62","parameters":{"id":40993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40992,"mutability":"mutable","name":"_selector","nameLocation":"602:9:62","nodeType":"VariableDeclaration","scope":40994,"src":"595:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":40991,"name":"bytes4","nodeType":"ElementaryTypeName","src":"595:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"594:18:62"}},{"id":40999,"nodeType":"ErrorDefinition","src":"618:59:62","nodes":[],"errorSelector":"0ae3681c","name":"CannotAddSelectorsToZeroAddress","nameLocation":"624:31:62","parameters":{"id":40998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40997,"mutability":"mutable","name":"_selectors","nameLocation":"665:10:62","nodeType":"VariableDeclaration","scope":40999,"src":"656:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":40995,"name":"bytes4","nodeType":"ElementaryTypeName","src":"656:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":40996,"nodeType":"ArrayTypeName","src":"656:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"655:21:62"}},{"id":41005,"nodeType":"ErrorDefinition","src":"682:94:62","nodes":[],"errorSelector":"192105d7","name":"InitializationFunctionReverted","nameLocation":"688:30:62","parameters":{"id":41004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41001,"mutability":"mutable","name":"_initializationContractAddress","nameLocation":"727:30:62","nodeType":"VariableDeclaration","scope":41005,"src":"719:38:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41000,"name":"address","nodeType":"ElementaryTypeName","src":"719:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41003,"mutability":"mutable","name":"_calldata","nameLocation":"765:9:62","nodeType":"VariableDeclaration","scope":41005,"src":"759:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41002,"name":"bytes","nodeType":"ElementaryTypeName","src":"759:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"718:57:62"}},{"id":41007,"nodeType":"ErrorDefinition","src":"781:30:62","nodes":[],"errorSelector":"eb6ba048","name":"NoSelectorsGivenToAdd","nameLocation":"787:21:62","parameters":{"id":41006,"nodeType":"ParameterList","parameters":[],"src":"808:2:62"}},{"id":41013,"nodeType":"ErrorDefinition","src":"816:62:62","nodes":[],"errorSelector":"ff4127cb","name":"NotContractOwner","nameLocation":"822:16:62","parameters":{"id":41012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41009,"mutability":"mutable","name":"_user","nameLocation":"847:5:62","nodeType":"VariableDeclaration","scope":41013,"src":"839:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41008,"name":"address","nodeType":"ElementaryTypeName","src":"839:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41011,"mutability":"mutable","name":"_contractOwner","nameLocation":"862:14:62","nodeType":"VariableDeclaration","scope":41013,"src":"854:22:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41010,"name":"address","nodeType":"ElementaryTypeName","src":"854:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"838:39:62"}},{"id":41018,"nodeType":"ErrorDefinition","src":"883:74:62","nodes":[],"errorSelector":"cd98a96f","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","nameLocation":"889:46:62","parameters":{"id":41017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41016,"mutability":"mutable","name":"_selectors","nameLocation":"945:10:62","nodeType":"VariableDeclaration","scope":41018,"src":"936:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41014,"name":"bytes4","nodeType":"ElementaryTypeName","src":"936:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41015,"nodeType":"ArrayTypeName","src":"936:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"935:21:62"}},{"id":41022,"nodeType":"ErrorDefinition","src":"962:55:62","nodes":[],"errorSelector":"520300da","name":"CannotReplaceImmutableFunction","nameLocation":"968:30:62","parameters":{"id":41021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41020,"mutability":"mutable","name":"_selector","nameLocation":"1006:9:62","nodeType":"VariableDeclaration","scope":41022,"src":"999:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41019,"name":"bytes4","nodeType":"ElementaryTypeName","src":"999:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"998:18:62"}},{"id":41026,"nodeType":"ErrorDefinition","src":"1022:81:62","nodes":[],"errorSelector":"358d9d1a","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","nameLocation":"1028:56:62","parameters":{"id":41025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41024,"mutability":"mutable","name":"_selector","nameLocation":"1092:9:62","nodeType":"VariableDeclaration","scope":41026,"src":"1085:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41023,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1085:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1084:18:62"}},{"id":41030,"nodeType":"ErrorDefinition","src":"1108:63:62","nodes":[],"errorSelector":"7479f939","name":"CannotReplaceFunctionThatDoesNotExists","nameLocation":"1114:38:62","parameters":{"id":41029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41028,"mutability":"mutable","name":"_selector","nameLocation":"1160:9:62","nodeType":"VariableDeclaration","scope":41030,"src":"1153:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41027,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1153:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1152:18:62"}},{"id":41034,"nodeType":"ErrorDefinition","src":"1176:65:62","nodes":[],"errorSelector":"d091bc81","name":"RemoveFacetAddressMustBeZeroAddress","nameLocation":"1182:35:62","parameters":{"id":41033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41032,"mutability":"mutable","name":"_facetAddress","nameLocation":"1226:13:62","nodeType":"VariableDeclaration","scope":41034,"src":"1218:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41031,"name":"address","nodeType":"ElementaryTypeName","src":"1218:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1217:23:62"}},{"id":41038,"nodeType":"ErrorDefinition","src":"1246:61:62","nodes":[],"errorSelector":"7a08a22d","name":"CannotRemoveFunctionThatDoesNotExist","nameLocation":"1252:36:62","parameters":{"id":41037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41036,"mutability":"mutable","name":"_selector","nameLocation":"1296:9:62","nodeType":"VariableDeclaration","scope":41038,"src":"1289:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41035,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1289:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1288:18:62"}},{"id":41042,"nodeType":"ErrorDefinition","src":"1312:54:62","nodes":[],"errorSelector":"6fafeb08","name":"CannotRemoveImmutableFunction","nameLocation":"1318:29:62","parameters":{"id":41041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41040,"mutability":"mutable","name":"_selector","nameLocation":"1355:9:62","nodeType":"VariableDeclaration","scope":41042,"src":"1348:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41039,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1348:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1347:18:62"}},{"id":41052,"nodeType":"EventDefinition","src":"1372:85:62","nodes":[],"anonymous":false,"eventSelector":"8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673","name":"DiamondCut","nameLocation":"1378:10:62","parameters":{"id":41051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41046,"indexed":false,"mutability":"mutable","name":"_diamondCut","nameLocation":"1412:11:62","nodeType":"VariableDeclaration","scope":41052,"src":"1389:34:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":41044,"nodeType":"UserDefinedTypeName","pathNode":{"id":41043,"name":"IDiamondCut.FacetCut","nameLocations":["1389:11:62","1401:8:62"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"1389:20:62"},"referencedDeclaration":40159,"src":"1389:20:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":41045,"nodeType":"ArrayTypeName","src":"1389:22:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":41048,"indexed":false,"mutability":"mutable","name":"_init","nameLocation":"1433:5:62","nodeType":"VariableDeclaration","scope":41052,"src":"1425:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41047,"name":"address","nodeType":"ElementaryTypeName","src":"1425:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41050,"indexed":false,"mutability":"mutable","name":"_calldata","nameLocation":"1446:9:62","nodeType":"VariableDeclaration","scope":41052,"src":"1440:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41049,"name":"bytes","nodeType":"ElementaryTypeName","src":"1440:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1388:68:62"}},{"id":41057,"nodeType":"StructDefinition","src":"1463:109:62","nodes":[],"canonicalName":"LibDiamond.FacetAddressAndSelectorPosition","members":[{"constant":false,"id":41054,"mutability":"mutable","name":"facetAddress","nameLocation":"1520:12:62","nodeType":"VariableDeclaration","scope":41057,"src":"1512:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41053,"name":"address","nodeType":"ElementaryTypeName","src":"1512:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41056,"mutability":"mutable","name":"selectorPosition","nameLocation":"1549:16:62","nodeType":"VariableDeclaration","scope":41057,"src":"1542:23:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":41055,"name":"uint16","nodeType":"ElementaryTypeName","src":"1542:6:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"name":"FacetAddressAndSelectorPosition","nameLocation":"1470:31:62","scope":41682,"visibility":"public"},{"id":41072,"nodeType":"StructDefinition","src":"1578:353:62","nodes":[],"canonicalName":"LibDiamond.DiamondStorage","members":[{"constant":false,"id":41062,"mutability":"mutable","name":"facetAddressAndSelectorPosition","nameLocation":"1748:31:62","nodeType":"VariableDeclaration","scope":41072,"src":"1697:82:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition)"},"typeName":{"id":41061,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":41058,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1705:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"1697:50:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":41060,"nodeType":"UserDefinedTypeName","pathNode":{"id":41059,"name":"FacetAddressAndSelectorPosition","nameLocations":["1715:31:62"],"nodeType":"IdentifierPath","referencedDeclaration":41057,"src":"1715:31:62"},"referencedDeclaration":41057,"src":"1715:31:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition"}}},"visibility":"internal"},{"constant":false,"id":41065,"mutability":"mutable","name":"selectors","nameLocation":"1798:9:62","nodeType":"VariableDeclaration","scope":41072,"src":"1789:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41063,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1789:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41064,"nodeType":"ArrayTypeName","src":"1789:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":41069,"mutability":"mutable","name":"supportedInterfaces","nameLocation":"1841:19:62","nodeType":"VariableDeclaration","scope":41072,"src":"1817:43:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"},"typeName":{"id":41068,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":41066,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1825:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"1817:23:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":41067,"name":"bool","nodeType":"ElementaryTypeName","src":"1835:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":41071,"mutability":"mutable","name":"contractOwner","nameLocation":"1911:13:62","nodeType":"VariableDeclaration","scope":41072,"src":"1903:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41070,"name":"address","nodeType":"ElementaryTypeName","src":"1903:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"DiamondStorage","nameLocation":"1585:14:62","scope":41682,"visibility":"public"},{"id":41084,"nodeType":"FunctionDefinition","src":"1937:197:62","nodes":[],"body":{"id":41083,"nodeType":"Block","src":"2013:121:62","nodes":[],"statements":[{"assignments":[41079],"declarations":[{"constant":false,"id":41079,"mutability":"mutable","name":"position","nameLocation":"2031:8:62","nodeType":"VariableDeclaration","scope":41083,"src":"2023:16:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2023:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41081,"initialValue":{"id":41080,"name":"DIAMOND_STORAGE_POSITION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40973,"src":"2042:24:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2023:43:62"},{"AST":{"nodeType":"YulBlock","src":"2085:43:62","statements":[{"nodeType":"YulAssignment","src":"2099:19:62","value":{"name":"position","nodeType":"YulIdentifier","src":"2110:8:62"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"2099:7:62"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":41076,"isOffset":false,"isSlot":true,"src":"2099:7:62","suffix":"slot","valueSize":1},{"declaration":41079,"isOffset":false,"isSlot":false,"src":"2110:8:62","valueSize":1}],"id":41082,"nodeType":"InlineAssembly","src":"2076:52:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"diamondStorage","nameLocation":"1946:14:62","parameters":{"id":41073,"nodeType":"ParameterList","parameters":[],"src":"1960:2:62"},"returnParameters":{"id":41077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41076,"mutability":"mutable","name":"ds","nameLocation":"2009:2:62","nodeType":"VariableDeclaration","scope":41084,"src":"1986:25:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41075,"nodeType":"UserDefinedTypeName","pathNode":{"id":41074,"name":"DiamondStorage","nameLocations":["1986:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"1986:14:62"},"referencedDeclaration":41072,"src":"1986:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"src":"1985:27:62"},"scope":41682,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41102,"nodeType":"FunctionDefinition","src":"2140:153:62","nodes":[],"body":{"id":41101,"nodeType":"Block","src":"2194:99:62","nodes":[],"statements":[{"assignments":[41091],"declarations":[{"constant":false,"id":41091,"mutability":"mutable","name":"ds","nameLocation":"2227:2:62","nodeType":"VariableDeclaration","scope":41101,"src":"2204:25:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41090,"nodeType":"UserDefinedTypeName","pathNode":{"id":41089,"name":"DiamondStorage","nameLocations":["2204:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"2204:14:62"},"referencedDeclaration":41072,"src":"2204:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":41094,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":41092,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41084,"src":"2232:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2232:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2204:44:62"},{"expression":{"id":41099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":41095,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41091,"src":"2258:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2261:13:62","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":41071,"src":"2258:16:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41098,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41086,"src":"2277:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2258:28:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41100,"nodeType":"ExpressionStatement","src":"2258:28:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setContractOwner","nameLocation":"2149:16:62","parameters":{"id":41087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41086,"mutability":"mutable","name":"_newOwner","nameLocation":"2174:9:62","nodeType":"VariableDeclaration","scope":41102,"src":"2166:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41085,"name":"address","nodeType":"ElementaryTypeName","src":"2166:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2165:19:62"},"returnParameters":{"id":41088,"nodeType":"ParameterList","parameters":[],"src":"2194:0:62"},"scope":41682,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41114,"nodeType":"FunctionDefinition","src":"2299:136:62","nodes":[],"body":{"id":41113,"nodeType":"Block","src":"2371:64:62","nodes":[],"statements":[{"expression":{"id":41111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41107,"name":"contractOwner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41105,"src":"2381:14:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":41108,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41084,"src":"2398:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2398:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2415:13:62","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":41071,"src":"2398:30:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2381:47:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41112,"nodeType":"ExpressionStatement","src":"2381:47:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contractOwner","nameLocation":"2308:13:62","parameters":{"id":41103,"nodeType":"ParameterList","parameters":[],"src":"2321:2:62"},"returnParameters":{"id":41106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41105,"mutability":"mutable","name":"contractOwner_","nameLocation":"2355:14:62","nodeType":"VariableDeclaration","scope":41114,"src":"2347:22:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41104,"name":"address","nodeType":"ElementaryTypeName","src":"2347:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2346:24:62"},"scope":41682,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41129,"nodeType":"ModifierDefinition","src":"2441:140:62","nodes":[],"body":{"id":41128,"nodeType":"Block","src":"2462:119:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41116,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2476:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":41117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2480:6:62","memberName":"sender","nodeType":"MemberAccess","src":"2476:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":41118,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41084,"src":"2490:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2490:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2507:13:62","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":41071,"src":"2490:30:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2476:44:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41126,"nodeType":"IfStatement","src":"2472:92:62","trueBody":{"id":41125,"nodeType":"Block","src":"2522:42:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":41122,"name":"NotOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40975,"src":"2543:8:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":41123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2543:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41124,"nodeType":"RevertStatement","src":"2536:17:62"}]}},{"id":41127,"nodeType":"PlaceholderStatement","src":"2573:1:62"}]},"name":"onlyOwner","nameLocation":"2450:9:62","parameters":{"id":41115,"nodeType":"ParameterList","parameters":[],"src":"2459:2:62"},"virtual":false,"visibility":"internal"},{"id":41144,"nodeType":"FunctionDefinition","src":"2587:156:62","nodes":[],"body":{"id":41143,"nodeType":"Block","src":"2635:108:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41132,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2649:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":41133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2653:6:62","memberName":"sender","nodeType":"MemberAccess","src":"2649:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":41134,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41084,"src":"2663:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2663:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2680:13:62","memberName":"contractOwner","nodeType":"MemberAccess","referencedDeclaration":41071,"src":"2663:30:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2649:44:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41142,"nodeType":"IfStatement","src":"2645:92:62","trueBody":{"id":41141,"nodeType":"Block","src":"2695:42:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":41138,"name":"NotOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40975,"src":"2716:8:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":41139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2716:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41140,"nodeType":"RevertStatement","src":"2709:17:62"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"enforceIsContractOwner","nameLocation":"2596:22:62","parameters":{"id":41130,"nodeType":"ParameterList","parameters":[],"src":"2618:2:62"},"returnParameters":{"id":41131,"nodeType":"ParameterList","parameters":[],"src":"2635:0:62"},"scope":41682,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41262,"nodeType":"FunctionDefinition","src":"2749:1291:62","nodes":[],"body":{"id":41261,"nodeType":"Block","src":"2857:1183:62","nodes":[],"statements":[{"assignments":[41156],"declarations":[{"constant":false,"id":41156,"mutability":"mutable","name":"length","nameLocation":"2875:6:62","nodeType":"VariableDeclaration","scope":41261,"src":"2867:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41155,"name":"uint256","nodeType":"ElementaryTypeName","src":"2867:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41159,"initialValue":{"expression":{"id":41157,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41148,"src":"2884:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":41158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2896:6:62","memberName":"length","nodeType":"MemberAccess","src":"2884:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2867:35:62"},{"body":{"id":41248,"nodeType":"Block","src":"2960:937:62","statements":[{"assignments":[41170],"declarations":[{"constant":false,"id":41170,"mutability":"mutable","name":"functionSelectors","nameLocation":"2990:17:62","nodeType":"VariableDeclaration","scope":41248,"src":"2974:33:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41168,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2974:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41169,"nodeType":"ArrayTypeName","src":"2974:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"id":41175,"initialValue":{"expression":{"baseExpression":{"id":41171,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41148,"src":"3010:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":41173,"indexExpression":{"id":41172,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41161,"src":"3022:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3010:23:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":41174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3034:17:62","memberName":"functionSelectors","nodeType":"MemberAccess","referencedDeclaration":40158,"src":"3010:41:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2974:77:62"},{"assignments":[41177],"declarations":[{"constant":false,"id":41177,"mutability":"mutable","name":"facetAddress","nameLocation":"3073:12:62","nodeType":"VariableDeclaration","scope":41248,"src":"3065:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41176,"name":"address","nodeType":"ElementaryTypeName","src":"3065:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":41182,"initialValue":{"expression":{"baseExpression":{"id":41178,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41148,"src":"3088:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":41180,"indexExpression":{"id":41179,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41161,"src":"3100:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3088:23:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":41181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3112:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40152,"src":"3088:36:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3065:59:62"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41183,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41170,"src":"3142:17:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3160:6:62","memberName":"length","nodeType":"MemberAccess","src":"3142:24:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":41185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3170:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3142:29:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41192,"nodeType":"IfStatement","src":"3138:122:62","trueBody":{"id":41191,"nodeType":"Block","src":"3173:87:62","statements":[{"errorCall":{"arguments":[{"id":41188,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41177,"src":"3232:12:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41187,"name":"NoSelectorsProvidedForFacetForCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40990,"src":"3198:33:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":41189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3198:47:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41190,"nodeType":"RevertStatement","src":"3191:54:62"}]}},{"assignments":[41197],"declarations":[{"constant":false,"id":41197,"mutability":"mutable","name":"action","nameLocation":"3300:6:62","nodeType":"VariableDeclaration","scope":41248,"src":"3273:33:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"typeName":{"id":41196,"nodeType":"UserDefinedTypeName","pathNode":{"id":41195,"name":"IDiamondCut.FacetCutAction","nameLocations":["3273:11:62","3285:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":40150,"src":"3273:26:62"},"referencedDeclaration":40150,"src":"3273:26:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"visibility":"internal"}],"id":41202,"initialValue":{"expression":{"baseExpression":{"id":41198,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41148,"src":"3309:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":41200,"indexExpression":{"id":41199,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41161,"src":"3321:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3309:23:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":41201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3333:6:62","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":40155,"src":"3309:30:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"VariableDeclarationStatement","src":"3273:66:62"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"id":41207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41203,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41197,"src":"3357:6:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":41204,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"3367:8:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":41205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3376:14:62","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"3367:23:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":41206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3391:3:62","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"3367:27:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"src":"3357:37:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"id":41218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41214,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41197,"src":"3484:6:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":41215,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"3494:8:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":41216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3503:14:62","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"3494:23:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":41217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3518:7:62","memberName":"Replace","nodeType":"MemberAccess","referencedDeclaration":40148,"src":"3494:31:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"src":"3484:41:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},"id":41229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41225,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41197,"src":"3619:6:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":41226,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"3629:8:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":41227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3638:14:62","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"3629:23:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":41228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3653:6:62","memberName":"Remove","nodeType":"MemberAccess","referencedDeclaration":40149,"src":"3629:30:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},"src":"3619:40:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":41240,"nodeType":"Block","src":"3748:71:62","statements":[{"errorCall":{"arguments":[{"id":41237,"name":"action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41197,"src":"3797:6:62","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}],"id":41236,"name":"IncorrectFacetCutAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40986,"src":"3773:23:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_enum$_FacetCutAction_$40150_$returns$__$","typeString":"function (enum IDiamond.FacetCutAction) pure"}},"id":41238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:31:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41239,"nodeType":"RevertStatement","src":"3766:38:62"}]},"id":41241,"nodeType":"IfStatement","src":"3615:204:62","trueBody":{"id":41235,"nodeType":"Block","src":"3661:81:62","statements":[{"expression":{"arguments":[{"id":41231,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41177,"src":"3695:12:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41232,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41170,"src":"3709:17:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":41230,"name":"removeFunctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41611,"src":"3679:15:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (address,bytes4[] memory)"}},"id":41233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3679:48:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41234,"nodeType":"ExpressionStatement","src":"3679:48:62"}]}},"id":41242,"nodeType":"IfStatement","src":"3480:339:62","trueBody":{"id":41224,"nodeType":"Block","src":"3527:82:62","statements":[{"expression":{"arguments":[{"id":41220,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41177,"src":"3562:12:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41221,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41170,"src":"3576:17:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":41219,"name":"replaceFunctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41473,"src":"3545:16:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (address,bytes4[] memory)"}},"id":41222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3545:49:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41223,"nodeType":"ExpressionStatement","src":"3545:49:62"}]}},"id":41243,"nodeType":"IfStatement","src":"3353:466:62","trueBody":{"id":41213,"nodeType":"Block","src":"3396:78:62","statements":[{"expression":{"arguments":[{"id":41209,"name":"facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41177,"src":"3427:12:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41210,"name":"functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41170,"src":"3441:17:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":41208,"name":"addFunctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41368,"src":"3414:12:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (address,bytes4[] memory)"}},"id":41211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3414:45:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41212,"nodeType":"ExpressionStatement","src":"3414:45:62"}]}},{"id":41247,"nodeType":"UncheckedBlock","src":"3832:55:62","statements":[{"expression":{"id":41245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3860:12:62","subExpression":{"id":41244,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41161,"src":"3862:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41246,"nodeType":"ExpressionStatement","src":"3860:12:62"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41163,"name":"facetIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41161,"src":"2937:10:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41164,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41156,"src":"2950:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2937:19:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41249,"initializationExpression":{"assignments":[41161],"declarations":[{"constant":false,"id":41161,"mutability":"mutable","name":"facetIndex","nameLocation":"2925:10:62","nodeType":"VariableDeclaration","scope":41249,"src":"2917:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41160,"name":"uint256","nodeType":"ElementaryTypeName","src":"2917:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41162,"nodeType":"VariableDeclarationStatement","src":"2917:18:62"},"nodeType":"ForStatement","src":"2912:985:62"},{"eventCall":{"arguments":[{"id":41251,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41148,"src":"3936:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":41252,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41150,"src":"3956:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41253,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41152,"src":"3974:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41250,"name":"DiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41052,"src":"3911:10:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":41254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3923:11:62","3949:5:62","3963:9:62"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"3911:74:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41255,"nodeType":"EmitStatement","src":"3906:79:62"},{"expression":{"arguments":[{"id":41257,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41150,"src":"4016:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41258,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41152,"src":"4023:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41256,"name":"initializeDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41659,"src":"3995:20:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":41259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3995:38:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41260,"nodeType":"ExpressionStatement","src":"3995:38:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"diamondCut","nameLocation":"2758:10:62","parameters":{"id":41153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41148,"mutability":"mutable","name":"_diamondCut","nameLocation":"2796:11:62","nodeType":"VariableDeclaration","scope":41262,"src":"2769:38:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":41146,"nodeType":"UserDefinedTypeName","pathNode":{"id":41145,"name":"IDiamond.FacetCut","nameLocations":["2769:8:62","2778:8:62"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"2769:17:62"},"referencedDeclaration":40159,"src":"2769:17:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":41147,"nodeType":"ArrayTypeName","src":"2769:19:62","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":41150,"mutability":"mutable","name":"_init","nameLocation":"2817:5:62","nodeType":"VariableDeclaration","scope":41262,"src":"2809:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41149,"name":"address","nodeType":"ElementaryTypeName","src":"2809:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41152,"mutability":"mutable","name":"_calldata","nameLocation":"2837:9:62","nodeType":"VariableDeclaration","scope":41262,"src":"2824:22:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41151,"name":"bytes","nodeType":"ElementaryTypeName","src":"2824:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2768:79:62"},"returnParameters":{"id":41154,"nodeType":"ParameterList","parameters":[],"src":"2857:0:62"},"scope":41682,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41368,"nodeType":"FunctionDefinition","src":"4046:1158:62","nodes":[],"body":{"id":41367,"nodeType":"Block","src":"4136:1068:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41270,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41264,"src":"4150:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4175:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":41272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4167:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41271,"name":"address","nodeType":"ElementaryTypeName","src":"4167:7:62","typeDescriptions":{}}},"id":41274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4167:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4150:27:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41281,"nodeType":"IfStatement","src":"4146:116:62","trueBody":{"id":41280,"nodeType":"Block","src":"4179:83:62","statements":[{"errorCall":{"arguments":[{"id":41277,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41267,"src":"4232:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":41276,"name":"CannotAddSelectorsToZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40999,"src":"4200:31:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes4[] memory) pure"}},"id":41278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4200:51:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41279,"nodeType":"RevertStatement","src":"4193:58:62"}]}},{"assignments":[41284],"declarations":[{"constant":false,"id":41284,"mutability":"mutable","name":"ds","nameLocation":"4294:2:62","nodeType":"VariableDeclaration","scope":41367,"src":"4271:25:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41283,"nodeType":"UserDefinedTypeName","pathNode":{"id":41282,"name":"DiamondStorage","nameLocations":["4271:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"4271:14:62"},"referencedDeclaration":41072,"src":"4271:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":41287,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":41285,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41084,"src":"4299:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4299:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4271:44:62"},{"assignments":[41289],"declarations":[{"constant":false,"id":41289,"mutability":"mutable","name":"selectorCount","nameLocation":"4332:13:62","nodeType":"VariableDeclaration","scope":41367,"src":"4325:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":41288,"name":"uint16","nodeType":"ElementaryTypeName","src":"4325:6:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":41296,"initialValue":{"arguments":[{"expression":{"expression":{"id":41292,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41284,"src":"4355:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4358:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"4355:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4368:6:62","memberName":"length","nodeType":"MemberAccess","src":"4355:19:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":41291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4348:6:62","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":41290,"name":"uint16","nodeType":"ElementaryTypeName","src":"4348:6:62","typeDescriptions":{}}},"id":41295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4348:27:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"4325:50:62"},{"expression":{"arguments":[{"id":41298,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41264,"src":"4408:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"6469616d6f6e644375743a2041646420666163657420686173206e6f20636f6465","id":41299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4423:35:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_d8d835faff0ba0e4baa5f22169088fa1f85cf7197f0ff5b9c9e823f3d33c8ad7","typeString":"literal_string \"diamondCut: Add facet has no code\""},"value":"diamondCut: Add facet has no code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_d8d835faff0ba0e4baa5f22169088fa1f85cf7197f0ff5b9c9e823f3d33c8ad7","typeString":"literal_string \"diamondCut: Add facet has no code\""}],"id":41297,"name":"enforceHasContractCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41681,"src":"4385:22:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) view"}},"id":41300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4385:74:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41301,"nodeType":"ExpressionStatement","src":"4385:74:62"},{"assignments":[41303],"declarations":[{"constant":false,"id":41303,"mutability":"mutable","name":"length","nameLocation":"4477:6:62","nodeType":"VariableDeclaration","scope":41367,"src":"4469:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41302,"name":"uint256","nodeType":"ElementaryTypeName","src":"4469:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41306,"initialValue":{"expression":{"id":41304,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41267,"src":"4486:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4505:6:62","memberName":"length","nodeType":"MemberAccess","src":"4486:25:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4469:42:62"},{"body":{"id":41365,"nodeType":"Block","src":"4575:623:62","statements":[{"assignments":[41314],"declarations":[{"constant":false,"id":41314,"mutability":"mutable","name":"selector","nameLocation":"4596:8:62","nodeType":"VariableDeclaration","scope":41365,"src":"4589:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41313,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4589:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":41318,"initialValue":{"baseExpression":{"id":41315,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41267,"src":"4607:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41317,"indexExpression":{"id":41316,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41308,"src":"4626:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4607:33:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"4589:51:62"},{"assignments":[41320],"declarations":[{"constant":false,"id":41320,"mutability":"mutable","name":"oldFacetAddress","nameLocation":"4662:15:62","nodeType":"VariableDeclaration","scope":41365,"src":"4654:23:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41319,"name":"address","nodeType":"ElementaryTypeName","src":"4654:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":41326,"initialValue":{"expression":{"baseExpression":{"expression":{"id":41321,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41284,"src":"4680:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4683:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"4680:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41324,"indexExpression":{"id":41323,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41314,"src":"4715:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4680:44:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4725:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"4680:57:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4654:83:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41327,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41320,"src":"4755:15:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":41330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4782:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":41329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4774:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41328,"name":"address","nodeType":"ElementaryTypeName","src":"4774:7:62","typeDescriptions":{}}},"id":41331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4774:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4755:29:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41338,"nodeType":"IfStatement","src":"4751:128:62","trueBody":{"id":41337,"nodeType":"Block","src":"4786:93:62","statements":[{"errorCall":{"arguments":[{"id":41334,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41314,"src":"4855:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41333,"name":"CannotAddFunctionToDiamondThatAlreadyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40994,"src":"4811:43:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4811:53:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41336,"nodeType":"RevertStatement","src":"4804:60:62"}]}},{"expression":{"id":41348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":41339,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41284,"src":"4892:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4895:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"4892:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41343,"indexExpression":{"id":41341,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41314,"src":"4927:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4892:44:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":41345,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41264,"src":"4988:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41346,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41289,"src":"5019:13:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":41344,"name":"FacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41057,"src":"4939:31:62","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_ptr_$","typeString":"type(struct LibDiamond.FacetAddressAndSelectorPosition storage pointer)"}},"id":41347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4939:107:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"src":"4892:154:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41349,"nodeType":"ExpressionStatement","src":"4892:154:62"},{"expression":{"arguments":[{"id":41355,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41314,"src":"5078:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"expression":{"id":41350,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41284,"src":"5060:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5063:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"5060:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5073:4:62","memberName":"push","nodeType":"MemberAccess","src":"5060:17:62","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes4_$dyn_storage_ptr_$_t_bytes4_$returns$__$attached_to$_t_array$_t_bytes4_$dyn_storage_ptr_$","typeString":"function (bytes4[] storage pointer,bytes4)"}},"id":41356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5060:27:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41357,"nodeType":"ExpressionStatement","src":"5060:27:62"},{"expression":{"id":41359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5101:15:62","subExpression":{"id":41358,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41289,"src":"5103:13:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":41360,"nodeType":"ExpressionStatement","src":"5101:15:62"},{"id":41364,"nodeType":"UncheckedBlock","src":"5130:58:62","statements":[{"expression":{"id":41362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5158:15:62","subExpression":{"id":41361,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41308,"src":"5160:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41363,"nodeType":"ExpressionStatement","src":"5158:15:62"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41310,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41308,"src":"4549:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41311,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41303,"src":"4565:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4549:22:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41366,"initializationExpression":{"assignments":[41308],"declarations":[{"constant":false,"id":41308,"mutability":"mutable","name":"selectorIndex","nameLocation":"4534:13:62","nodeType":"VariableDeclaration","scope":41366,"src":"4526:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41307,"name":"uint256","nodeType":"ElementaryTypeName","src":"4526:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41309,"nodeType":"VariableDeclarationStatement","src":"4526:21:62"},"nodeType":"ForStatement","src":"4521:677:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"addFunctions","nameLocation":"4055:12:62","parameters":{"id":41268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41264,"mutability":"mutable","name":"_facetAddress","nameLocation":"4076:13:62","nodeType":"VariableDeclaration","scope":41368,"src":"4068:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41263,"name":"address","nodeType":"ElementaryTypeName","src":"4068:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41267,"mutability":"mutable","name":"_functionSelectors","nameLocation":"4107:18:62","nodeType":"VariableDeclaration","scope":41368,"src":"4091:34:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41265,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4091:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41266,"nodeType":"ArrayTypeName","src":"4091:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"4067:59:62"},"returnParameters":{"id":41269,"nodeType":"ParameterList","parameters":[],"src":"4136:0:62"},"scope":41682,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41473,"nodeType":"FunctionDefinition","src":"5210:1396:62","nodes":[],"body":{"id":41472,"nodeType":"Block","src":"5304:1302:62","nodes":[],"statements":[{"assignments":[41378],"declarations":[{"constant":false,"id":41378,"mutability":"mutable","name":"ds","nameLocation":"5337:2:62","nodeType":"VariableDeclaration","scope":41472,"src":"5314:25:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41377,"nodeType":"UserDefinedTypeName","pathNode":{"id":41376,"name":"DiamondStorage","nameLocations":["5314:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"5314:14:62"},"referencedDeclaration":41072,"src":"5314:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":41381,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":41379,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41084,"src":"5342:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5342:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5314:44:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41382,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41370,"src":"5372:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5397:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":41384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5389:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41383,"name":"address","nodeType":"ElementaryTypeName","src":"5389:7:62","typeDescriptions":{}}},"id":41386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5372:27:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41393,"nodeType":"IfStatement","src":"5368:131:62","trueBody":{"id":41392,"nodeType":"Block","src":"5401:98:62","statements":[{"errorCall":{"arguments":[{"id":41389,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41373,"src":"5469:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}],"id":41388,"name":"CannotReplaceFunctionsFromFacetWithZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41018,"src":"5422:46:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes4[] memory) pure"}},"id":41390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5422:66:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41391,"nodeType":"RevertStatement","src":"5415:73:62"}]}},{"expression":{"arguments":[{"id":41395,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41370,"src":"5531:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"4c69624469616d6f6e644375743a205265706c61636520666163657420686173206e6f20636f6465","id":41396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5546:42:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_de246aa8052f872d61bcd9cfb620b8012f8bc6e512400178c0e967944dadacfe","typeString":"literal_string \"LibDiamondCut: Replace facet has no code\""},"value":"LibDiamondCut: Replace facet has no code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_de246aa8052f872d61bcd9cfb620b8012f8bc6e512400178c0e967944dadacfe","typeString":"literal_string \"LibDiamondCut: Replace facet has no code\""}],"id":41394,"name":"enforceHasContractCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41681,"src":"5508:22:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) view"}},"id":41397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5508:81:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41398,"nodeType":"ExpressionStatement","src":"5508:81:62"},{"assignments":[41400],"declarations":[{"constant":false,"id":41400,"mutability":"mutable","name":"fl","nameLocation":"5607:2:62","nodeType":"VariableDeclaration","scope":41472,"src":"5599:10:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41399,"name":"uint256","nodeType":"ElementaryTypeName","src":"5599:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41403,"initialValue":{"expression":{"id":41401,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41373,"src":"5612:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5631:6:62","memberName":"length","nodeType":"MemberAccess","src":"5612:25:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5599:38:62"},{"body":{"id":41470,"nodeType":"Block","src":"5697:903:62","statements":[{"assignments":[41411],"declarations":[{"constant":false,"id":41411,"mutability":"mutable","name":"selector","nameLocation":"5718:8:62","nodeType":"VariableDeclaration","scope":41470,"src":"5711:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41410,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5711:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":41415,"initialValue":{"baseExpression":{"id":41412,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41373,"src":"5729:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41414,"indexExpression":{"id":41413,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41405,"src":"5748:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5729:33:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"5711:51:62"},{"assignments":[41417],"declarations":[{"constant":false,"id":41417,"mutability":"mutable","name":"oldFacetAddress","nameLocation":"5784:15:62","nodeType":"VariableDeclaration","scope":41470,"src":"5776:23:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41416,"name":"address","nodeType":"ElementaryTypeName","src":"5776:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":41423,"initialValue":{"expression":{"baseExpression":{"expression":{"id":41418,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41378,"src":"5802:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5805:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"5802:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41421,"indexExpression":{"id":41420,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41411,"src":"5837:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5802:44:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5847:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"5802:57:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5776:83:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41424,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41417,"src":"5984:15:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":41427,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6011:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_LibDiamond_$41682","typeString":"library LibDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LibDiamond_$41682","typeString":"library LibDiamond"}],"id":41426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6003:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41425,"name":"address","nodeType":"ElementaryTypeName","src":"6003:7:62","typeDescriptions":{}}},"id":41428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6003:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5984:32:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41435,"nodeType":"IfStatement","src":"5980:118:62","trueBody":{"id":41434,"nodeType":"Block","src":"6018:80:62","statements":[{"errorCall":{"arguments":[{"id":41431,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41411,"src":"6074:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41430,"name":"CannotReplaceImmutableFunction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41022,"src":"6043:30:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6043:40:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41433,"nodeType":"RevertStatement","src":"6036:47:62"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41436,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41417,"src":"6115:15:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":41437,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41370,"src":"6134:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6115:32:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41444,"nodeType":"IfStatement","src":"6111:144:62","trueBody":{"id":41443,"nodeType":"Block","src":"6149:106:62","statements":[{"errorCall":{"arguments":[{"id":41440,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41411,"src":"6231:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41439,"name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41026,"src":"6174:56:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6174:66:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41442,"nodeType":"RevertStatement","src":"6167:73:62"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41445,"name":"oldFacetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41417,"src":"6272:15:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6299:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":41447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6291:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41446,"name":"address","nodeType":"ElementaryTypeName","src":"6291:7:62","typeDescriptions":{}}},"id":41449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6291:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6272:29:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41456,"nodeType":"IfStatement","src":"6268:123:62","trueBody":{"id":41455,"nodeType":"Block","src":"6303:88:62","statements":[{"errorCall":{"arguments":[{"id":41452,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41411,"src":"6367:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41451,"name":"CannotReplaceFunctionThatDoesNotExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41030,"src":"6328:38:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6328:48:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41454,"nodeType":"RevertStatement","src":"6321:55:62"}]}},{"expression":{"id":41464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":41457,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41378,"src":"6445:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41460,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6448:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"6445:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41461,"indexExpression":{"id":41459,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41411,"src":"6480:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6445:44:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6490:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"6445:57:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41463,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41370,"src":"6505:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6445:73:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41465,"nodeType":"ExpressionStatement","src":"6445:73:62"},{"id":41469,"nodeType":"UncheckedBlock","src":"6532:58:62","statements":[{"expression":{"id":41467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6560:15:62","subExpression":{"id":41466,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41405,"src":"6562:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41468,"nodeType":"ExpressionStatement","src":"6560:15:62"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41407,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41405,"src":"5675:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41408,"name":"fl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41400,"src":"5691:2:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5675:18:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41471,"initializationExpression":{"assignments":[41405],"declarations":[{"constant":false,"id":41405,"mutability":"mutable","name":"selectorIndex","nameLocation":"5660:13:62","nodeType":"VariableDeclaration","scope":41471,"src":"5652:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41404,"name":"uint256","nodeType":"ElementaryTypeName","src":"5652:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41406,"nodeType":"VariableDeclarationStatement","src":"5652:21:62"},"nodeType":"ForStatement","src":"5647:953:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"replaceFunctions","nameLocation":"5219:16:62","parameters":{"id":41374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41370,"mutability":"mutable","name":"_facetAddress","nameLocation":"5244:13:62","nodeType":"VariableDeclaration","scope":41473,"src":"5236:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41369,"name":"address","nodeType":"ElementaryTypeName","src":"5236:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41373,"mutability":"mutable","name":"_functionSelectors","nameLocation":"5275:18:62","nodeType":"VariableDeclaration","scope":41473,"src":"5259:34:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41371,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5259:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41372,"nodeType":"ArrayTypeName","src":"5259:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"5235:59:62"},"returnParameters":{"id":41375,"nodeType":"ParameterList","parameters":[],"src":"5304:0:62"},"scope":41682,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41611,"nodeType":"FunctionDefinition","src":"6612:1796:62","nodes":[],"body":{"id":41610,"nodeType":"Block","src":"6705:1703:62","nodes":[],"statements":[{"assignments":[41483],"declarations":[{"constant":false,"id":41483,"mutability":"mutable","name":"ds","nameLocation":"6738:2:62","nodeType":"VariableDeclaration","scope":41610,"src":"6715:25:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":41482,"nodeType":"UserDefinedTypeName","pathNode":{"id":41481,"name":"DiamondStorage","nameLocations":["6715:14:62"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"6715:14:62"},"referencedDeclaration":41072,"src":"6715:14:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":41486,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":41484,"name":"diamondStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41084,"src":"6743:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":41485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6743:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6715:44:62"},{"assignments":[41488],"declarations":[{"constant":false,"id":41488,"mutability":"mutable","name":"selectorCount","nameLocation":"6777:13:62","nodeType":"VariableDeclaration","scope":41610,"src":"6769:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41487,"name":"uint256","nodeType":"ElementaryTypeName","src":"6769:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41492,"initialValue":{"expression":{"expression":{"id":41489,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"6793:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41490,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6796:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"6793:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6806:6:62","memberName":"length","nodeType":"MemberAccess","src":"6793:19:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6769:43:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41493,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41475,"src":"6826:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":41496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6851:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":41495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6843:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41494,"name":"address","nodeType":"ElementaryTypeName","src":"6843:7:62","typeDescriptions":{}}},"id":41497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6843:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6826:27:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41504,"nodeType":"IfStatement","src":"6822:115:62","trueBody":{"id":41503,"nodeType":"Block","src":"6855:82:62","statements":[{"errorCall":{"arguments":[{"id":41500,"name":"_facetAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41475,"src":"6912:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":41499,"name":"RemoveFacetAddressMustBeZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41034,"src":"6876:35:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":41501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6876:50:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41502,"nodeType":"RevertStatement","src":"6869:57:62"}]}},{"assignments":[41506],"declarations":[{"constant":false,"id":41506,"mutability":"mutable","name":"fl","nameLocation":"6954:2:62","nodeType":"VariableDeclaration","scope":41610,"src":"6946:10:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41505,"name":"uint256","nodeType":"ElementaryTypeName","src":"6946:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41509,"initialValue":{"expression":{"id":41507,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41478,"src":"6959:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6978:6:62","memberName":"length","nodeType":"MemberAccess","src":"6959:25:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6946:38:62"},{"body":{"id":41608,"nodeType":"Block","src":"7044:1358:62","statements":[{"assignments":[41517],"declarations":[{"constant":false,"id":41517,"mutability":"mutable","name":"selector","nameLocation":"7065:8:62","nodeType":"VariableDeclaration","scope":41608,"src":"7058:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41516,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7058:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":41521,"initialValue":{"baseExpression":{"id":41518,"name":"_functionSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41478,"src":"7076:18:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":41520,"indexExpression":{"id":41519,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41511,"src":"7095:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7076:33:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"7058:51:62"},{"assignments":[41524],"declarations":[{"constant":false,"id":41524,"mutability":"mutable","name":"oldFacetAddressAndSelectorPosition","nameLocation":"7162:34:62","nodeType":"VariableDeclaration","scope":41608,"src":"7123:73:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition"},"typeName":{"id":41523,"nodeType":"UserDefinedTypeName","pathNode":{"id":41522,"name":"FacetAddressAndSelectorPosition","nameLocations":["7123:31:62"],"nodeType":"IdentifierPath","referencedDeclaration":41057,"src":"7123:31:62"},"referencedDeclaration":41057,"src":"7123:31:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition"}},"visibility":"internal"}],"id":41529,"initialValue":{"baseExpression":{"expression":{"id":41525,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"7199:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7219:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"7199:51:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41528,"indexExpression":{"id":41527,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41517,"src":"7251:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7199:61:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7123:137:62"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41530,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41524,"src":"7278:34:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7313:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"7278:47:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7337:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":41533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7329:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41532,"name":"address","nodeType":"ElementaryTypeName","src":"7329:7:62","typeDescriptions":{}}},"id":41535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7329:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7278:61:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41542,"nodeType":"IfStatement","src":"7274:153:62","trueBody":{"id":41541,"nodeType":"Block","src":"7341:86:62","statements":[{"errorCall":{"arguments":[{"id":41538,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41517,"src":"7403:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41537,"name":"CannotRemoveFunctionThatDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41038,"src":"7366:36:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7366:46:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41540,"nodeType":"RevertStatement","src":"7359:53:62"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41543,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41524,"src":"7538:34:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7573:12:62","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"7538:47:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":41547,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7597:4:62","typeDescriptions":{"typeIdentifier":"t_contract$_LibDiamond_$41682","typeString":"library LibDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LibDiamond_$41682","typeString":"library LibDiamond"}],"id":41546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7589:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41545,"name":"address","nodeType":"ElementaryTypeName","src":"7589:7:62","typeDescriptions":{}}},"id":41548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7589:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7538:64:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41555,"nodeType":"IfStatement","src":"7534:149:62","trueBody":{"id":41554,"nodeType":"Block","src":"7604:79:62","statements":[{"errorCall":{"arguments":[{"id":41551,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41517,"src":"7659:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":41550,"name":"CannotRemoveImmutableFunction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41042,"src":"7629:29:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":41552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7629:39:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41553,"nodeType":"RevertStatement","src":"7622:46:62"}]}},{"expression":{"id":41557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"7747:15:62","subExpression":{"id":41556,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41488,"src":"7749:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41558,"nodeType":"ExpressionStatement","src":"7747:15:62"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41559,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41524,"src":"7780:34:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7815:16:62","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":41056,"src":"7780:51:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":41561,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41488,"src":"7835:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7780:68:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41590,"nodeType":"IfStatement","src":"7776:412:62","trueBody":{"id":41589,"nodeType":"Block","src":"7850:338:62","statements":[{"assignments":[41564],"declarations":[{"constant":false,"id":41564,"mutability":"mutable","name":"lastSelector","nameLocation":"7875:12:62","nodeType":"VariableDeclaration","scope":41589,"src":"7868:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":41563,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7868:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":41569,"initialValue":{"baseExpression":{"expression":{"id":41565,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"7890:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7893:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"7890:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41568,"indexExpression":{"id":41567,"name":"selectorCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41488,"src":"7903:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7890:27:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"7868:49:62"},{"expression":{"id":41577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":41570,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"7935:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7938:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"7935:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41575,"indexExpression":{"expression":{"id":41572,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41524,"src":"7948:34:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7983:16:62","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":41056,"src":"7948:51:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7935:65:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41576,"name":"lastSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41564,"src":"8003:12:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7935:80:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41578,"nodeType":"ExpressionStatement","src":"7935:80:62"},{"expression":{"id":41587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":41579,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"8033:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8036:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"8033:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41583,"indexExpression":{"id":41581,"name":"lastSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41564,"src":"8068:12:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8033:48:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":41584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8082:16:62","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":41056,"src":"8033:65:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41585,"name":"oldFacetAddressAndSelectorPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41524,"src":"8101:34:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_memory_ptr","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition memory"}},"id":41586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8157:16:62","memberName":"selectorPosition","nodeType":"MemberAccess","referencedDeclaration":41056,"src":"8101:72:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"8033:140:62","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":41588,"nodeType":"ExpressionStatement","src":"8033:140:62"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":41591,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"8237:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8240:9:62","memberName":"selectors","nodeType":"MemberAccess","referencedDeclaration":41065,"src":"8237:12:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":41595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8250:3:62","memberName":"pop","nodeType":"MemberAccess","src":"8237:16:62","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes4_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_bytes4_$dyn_storage_ptr_$","typeString":"function (bytes4[] storage pointer)"}},"id":41596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8237:18:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41597,"nodeType":"ExpressionStatement","src":"8237:18:62"},{"expression":{"id":41602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8269:51:62","subExpression":{"baseExpression":{"expression":{"id":41598,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"8276:2:62","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":41599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8279:31:62","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"8276:34:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":41601,"indexExpression":{"id":41600,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41517,"src":"8311:8:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8276:44:62","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41603,"nodeType":"ExpressionStatement","src":"8269:51:62"},{"id":41607,"nodeType":"UncheckedBlock","src":"8334:58:62","statements":[{"expression":{"id":41605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8362:15:62","subExpression":{"id":41604,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41511,"src":"8364:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41606,"nodeType":"ExpressionStatement","src":"8362:15:62"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41513,"name":"selectorIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41511,"src":"7022:13:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41514,"name":"fl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"7038:2:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7022:18:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41609,"initializationExpression":{"assignments":[41511],"declarations":[{"constant":false,"id":41511,"mutability":"mutable","name":"selectorIndex","nameLocation":"7007:13:62","nodeType":"VariableDeclaration","scope":41609,"src":"6999:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41510,"name":"uint256","nodeType":"ElementaryTypeName","src":"6999:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41512,"nodeType":"VariableDeclarationStatement","src":"6999:21:62"},"nodeType":"ForStatement","src":"6994:1408:62"}]},"implemented":true,"kind":"function","modifiers":[],"name":"removeFunctions","nameLocation":"6621:15:62","parameters":{"id":41479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41475,"mutability":"mutable","name":"_facetAddress","nameLocation":"6645:13:62","nodeType":"VariableDeclaration","scope":41611,"src":"6637:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41474,"name":"address","nodeType":"ElementaryTypeName","src":"6637:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41478,"mutability":"mutable","name":"_functionSelectors","nameLocation":"6676:18:62","nodeType":"VariableDeclaration","scope":41611,"src":"6660:34:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":41476,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6660:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":41477,"nodeType":"ArrayTypeName","src":"6660:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"6636:59:62"},"returnParameters":{"id":41480,"nodeType":"ParameterList","parameters":[],"src":"6705:0:62"},"scope":41682,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41659,"nodeType":"FunctionDefinition","src":"8414:888:62","nodes":[],"body":{"id":41658,"nodeType":"Block","src":"8492:810:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":41623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41618,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41613,"src":"8506:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":41621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8523:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":41620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8515:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":41619,"name":"address","nodeType":"ElementaryTypeName","src":"8515:7:62","typeDescriptions":{}}},"id":41622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8515:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8506:19:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41626,"nodeType":"IfStatement","src":"8502:56:62","trueBody":{"id":41625,"nodeType":"Block","src":"8527:31:62","statements":[{"functionReturnParameters":41617,"id":41624,"nodeType":"Return","src":"8541:7:62"}]}},{"expression":{"arguments":[{"id":41628,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41613,"src":"8590:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"6469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f6465","id":41629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8597:39:62","typeDescriptions":{"typeIdentifier":"t_stringliteral_72db497a72f62bab0025d592feb672a31e8d1a2a1bfe9fa07cc3a061b7217c3c","typeString":"literal_string \"diamondCut: _init address has no code\""},"value":"diamondCut: _init address has no code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_72db497a72f62bab0025d592feb672a31e8d1a2a1bfe9fa07cc3a061b7217c3c","typeString":"literal_string \"diamondCut: _init address has no code\""}],"id":41627,"name":"enforceHasContractCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41681,"src":"8567:22:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) view"}},"id":41630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8567:70:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41631,"nodeType":"ExpressionStatement","src":"8567:70:62"},{"assignments":[41633,41635],"declarations":[{"constant":false,"id":41633,"mutability":"mutable","name":"success","nameLocation":"8706:7:62","nodeType":"VariableDeclaration","scope":41658,"src":"8701:12:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41632,"name":"bool","nodeType":"ElementaryTypeName","src":"8701:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41635,"mutability":"mutable","name":"error","nameLocation":"8728:5:62","nodeType":"VariableDeclaration","scope":41658,"src":"8715:18:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41634,"name":"bytes","nodeType":"ElementaryTypeName","src":"8715:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":41640,"initialValue":{"arguments":[{"id":41638,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41615,"src":"8756:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":41636,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41613,"src":"8737:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":41637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8743:12:62","memberName":"delegatecall","nodeType":"MemberAccess","src":"8737:18:62","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":41639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8737:29:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"8700:66:62"},{"condition":{"id":41642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8826:8:62","subExpression":{"id":41641,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41633,"src":"8827:7:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41657,"nodeType":"IfStatement","src":"8822:474:62","trueBody":{"id":41656,"nodeType":"Block","src":"8836:460:62","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41643,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41635,"src":"8911:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":41644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8917:6:62","memberName":"length","nodeType":"MemberAccess","src":"8911:12:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8927:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8911:17:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":41654,"nodeType":"Block","src":"9198:88:62","statements":[{"errorCall":{"arguments":[{"id":41650,"name":"_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41613,"src":"9254:5:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41651,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41615,"src":"9261:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41649,"name":"InitializationFunctionReverted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41005,"src":"9223:30:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) pure"}},"id":41652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9223:48:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41653,"nodeType":"RevertStatement","src":"9216:55:62"}]},"id":41655,"nodeType":"IfStatement","src":"8907:379:62","trueBody":{"id":41648,"nodeType":"Block","src":"8930:262:62","statements":[{"AST":{"nodeType":"YulBlock","src":"9043:135:62","statements":[{"nodeType":"YulVariableDeclaration","src":"9065:35:62","value":{"arguments":[{"name":"error","nodeType":"YulIdentifier","src":"9094:5:62"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9088:5:62"},"nodeType":"YulFunctionCall","src":"9088:12:62"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"9069:15:62","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9132:2:62","type":"","value":"32"},{"name":"error","nodeType":"YulIdentifier","src":"9136:5:62"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9128:3:62"},"nodeType":"YulFunctionCall","src":"9128:14:62"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9144:15:62"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9121:6:62"},"nodeType":"YulFunctionCall","src":"9121:39:62"},"nodeType":"YulExpressionStatement","src":"9121:39:62"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":41635,"isOffset":false,"isSlot":false,"src":"9094:5:62","valueSize":1},{"declaration":41635,"isOffset":false,"isSlot":false,"src":"9136:5:62","valueSize":1}],"id":41647,"nodeType":"InlineAssembly","src":"9034:144:62"}]}}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"initializeDiamondCut","nameLocation":"8423:20:62","parameters":{"id":41616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41613,"mutability":"mutable","name":"_init","nameLocation":"8452:5:62","nodeType":"VariableDeclaration","scope":41659,"src":"8444:13:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41612,"name":"address","nodeType":"ElementaryTypeName","src":"8444:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41615,"mutability":"mutable","name":"_calldata","nameLocation":"8472:9:62","nodeType":"VariableDeclaration","scope":41659,"src":"8459:22:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":41614,"name":"bytes","nodeType":"ElementaryTypeName","src":"8459:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8443:39:62"},"returnParameters":{"id":41617,"nodeType":"ParameterList","parameters":[],"src":"8492:0:62"},"scope":41682,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41681,"nodeType":"FunctionDefinition","src":"9308:320:62","nodes":[],"body":{"id":41680,"nodeType":"Block","src":"9402:226:62","nodes":[],"statements":[{"assignments":[41667],"declarations":[{"constant":false,"id":41667,"mutability":"mutable","name":"contractSize","nameLocation":"9420:12:62","nodeType":"VariableDeclaration","scope":41680,"src":"9412:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41666,"name":"uint256","nodeType":"ElementaryTypeName","src":"9412:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41668,"nodeType":"VariableDeclarationStatement","src":"9412:20:62"},{"AST":{"nodeType":"YulBlock","src":"9451:62:62","statements":[{"nodeType":"YulAssignment","src":"9465:38:62","value":{"arguments":[{"name":"_contract","nodeType":"YulIdentifier","src":"9493:9:62"}],"functionName":{"name":"extcodesize","nodeType":"YulIdentifier","src":"9481:11:62"},"nodeType":"YulFunctionCall","src":"9481:22:62"},"variableNames":[{"name":"contractSize","nodeType":"YulIdentifier","src":"9465:12:62"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":41661,"isOffset":false,"isSlot":false,"src":"9493:9:62","valueSize":1},{"declaration":41667,"isOffset":false,"isSlot":false,"src":"9465:12:62","valueSize":1}],"id":41669,"nodeType":"InlineAssembly","src":"9442:71:62"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41670,"name":"contractSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41667,"src":"9526:12:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":41671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9542:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9526:17:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41679,"nodeType":"IfStatement","src":"9522:100:62","trueBody":{"id":41678,"nodeType":"Block","src":"9545:77:62","statements":[{"errorCall":{"arguments":[{"id":41674,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41661,"src":"9586:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41675,"name":"_errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41663,"src":"9597:13:62","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":41673,"name":"NoBytecodeAtAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40981,"src":"9566:19:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) pure"}},"id":41676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9566:45:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41677,"nodeType":"RevertStatement","src":"9559:52:62"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"enforceHasContractCode","nameLocation":"9317:22:62","parameters":{"id":41664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41661,"mutability":"mutable","name":"_contract","nameLocation":"9348:9:62","nodeType":"VariableDeclaration","scope":41681,"src":"9340:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41660,"name":"address","nodeType":"ElementaryTypeName","src":"9340:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41663,"mutability":"mutable","name":"_errorMessage","nameLocation":"9373:13:62","nodeType":"VariableDeclaration","scope":41681,"src":"9359:27:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":41662,"name":"string","nodeType":"ElementaryTypeName","src":"9359:6:62","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9339:48:62"},"returnParameters":{"id":41665,"nodeType":"ParameterList","parameters":[],"src":"9402:0:62"},"scope":41682,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibDiamond","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[41682],"name":"LibDiamond","nameLocation":"192:10:62","scope":41683,"usedErrors":[40975,40981,40986,40990,40994,40999,41005,41007,41013,41018,41022,41026,41030,41034,41038,41042]}],"license":"MIT OR Apache-2.0"},"id":62} \ No newline at end of file diff --git a/.out/LibGateway.sol/LibGateway.json b/.out/LibGateway.sol/LibGateway.json index 00e88a9d3..0e25a8654 100644 --- a/.out/LibGateway.sol/LibGateway.json +++ b/.out/LibGateway.sol/LibGateway.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"MembershipUpdated","inputs":[{"name":"","type":"tuple","indexed":false,"internalType":"struct Membership","components":[{"name":"validators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"anonymous":false},{"type":"event","name":"NewBottomUpMsgBatch","inputs":[{"name":"epoch","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"batch","type":"tuple","indexed":false,"internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"anonymous":false},{"type":"event","name":"NewTopDownMessage","inputs":[{"name":"subnet","type":"address","indexed":true,"internalType":"address"},{"name":"message","type":"tuple","indexed":false,"internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212209eeaa2e90a7d2df39aa381c0af2cdbfe2dd60cf40176444919672a76836f3eb064736f6c63430008130033","sourceMap":"649:12742:58:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212209eeaa2e90a7d2df39aa381c0af2cdbfe2dd60cf40176444919672a76836f3eb064736f6c63430008130033","sourceMap":"649:12742:58:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Membership\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"MembershipUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"}],\"name\":\"NewBottomUpMsgBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"indexed\":false,\"internalType\":\"struct CrossMsg\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"NewTopDownMessage\",\"type\":\"event\"}],\"devdoc\":{\"events\":{\"NewBottomUpMsgBatch(uint256,((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"details\":\"event emitted when there is a new bottom-up message batch to be signed.\"},\"NewTopDownMessage(address,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))\":{\"details\":\"subnet refers to the next \\\"down\\\" subnet that the `CrossMsg.message.to` should be forwarded to.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibGateway.sol\":\"LibGateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21\",\"dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14\",\"dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7\",\"dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2\",\"dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Membership","name":"","type":"tuple","components":[{"internalType":"struct Validator[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}],"indexed":false}],"type":"event","name":"MembershipUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":true},{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"indexed":false}],"type":"event","name":"NewBottomUpMsgBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"subnet","type":"address","indexed":true},{"internalType":"struct CrossMsg","name":"message","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}],"indexed":false}],"type":"event","name":"NewTopDownMessage","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibGateway.sol":"LibGateway"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x44dc4ecbc8229c320e2a8a1f0407c9e42b982f4793bfdd1cb3ea3068901ab140","urls":["bzz-raw://11834e9d854e0a95fb909c43b9cfb6caa0f23dd84314eb5594fb5fc7e059ae21","dweb:/ipfs/Qmf2ezsfqSc9uHgBjnFS8XTEZqkv5hPt3GzTfU4Ei7pkMH"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x0eaeb545c0b37a3aea3ec5735038be5ad6b332e3a030df162d22fdeafa1ff0d3","urls":["bzz-raw://b6d72cc688a2a731c9aa3f2328173215bad6414b46539ee0e04c38586729bf14","dweb:/ipfs/QmWsNQ4a3urJDHY2h46E8t9MjsdRGRo5UetCKLx4uzaG6m"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0x3cbc5277b28663199a9283eef077c974e72196be2467ede73ab2242db10a608d","urls":["bzz-raw://d0c844d9e0a7e4e7fd785be5e73f296b7ddb3058049734c3a860d3d5812313c7","dweb:/ipfs/QmdkSEFFyEWDFUk5KkdsGo1dqUfVFhTcjGTHPGRFmbLejM"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c","urls":["bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2","dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibGateway.sol","id":42243,"exportedSymbols":{"BottomUpCheckpoint":[48410],"BottomUpMsgBatch":[48423],"CrossMsg":[48452],"CrossMsgHelper":[40328],"GatewayActorStorage":[42369],"InvalidActorAddress":[36970],"LibGateway":[42242],"LibGatewayActorStorage":[42380],"Membership":[48701],"NotRegisteredSubnet":[37050],"OldConfigurationNumber":[37060],"ParentFinality":[48396],"ParentFinalityAlreadyCommitted":[37066],"Subnet":[48574],"SubnetID":[48557],"SubnetIDHelper":[46876]},"nodeType":"SourceUnit","src":"46:13346:58","nodes":[{"id":41231,"nodeType":"PragmaDirective","src":"46:23:58","nodes":[],"literals":["solidity","0.8",".19"]},{"id":41234,"nodeType":"ImportDirective","src":"71:94:58","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":42243,"sourceUnit":42439,"symbolAliases":[{"foreign":{"id":41232,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42369,"src":"79:19:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41233,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"100:22:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41237,"nodeType":"ImportDirective","src":"166:55:58","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":42243,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":41235,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"174:8:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41236,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48574,"src":"184:6:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41243,"nodeType":"ImportDirective","src":"222:121:58","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":42243,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":41238,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"230:8:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41239,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48423,"src":"240:16:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41240,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48423,"src":"258:16:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41241,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"276:18:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41242,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"296:14:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41245,"nodeType":"ImportDirective","src":"344:49:58","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":42243,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":41244,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48701,"src":"352:10:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41250,"nodeType":"ImportDirective","src":"394:137:58","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":42243,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":41246,"name":"OldConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37060,"src":"402:22:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41247,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37050,"src":"426:19:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41248,"name":"InvalidActorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36970,"src":"447:19:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41249,"name":"ParentFinalityAlreadyCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37066,"src":"468:30:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41252,"nodeType":"ImportDirective","src":"532:57:58","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":42243,"sourceUnit":40329,"symbolAliases":[{"foreign":{"id":41251,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40328,"src":"540:14:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41254,"nodeType":"ImportDirective","src":"590:57:58","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":42243,"sourceUnit":46877,"symbolAliases":[{"foreign":{"id":41253,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46876,"src":"598:14:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42242,"nodeType":"ContractDefinition","src":"649:12742:58","nodes":[{"id":41258,"nodeType":"UsingForDirective","src":"674:34:58","nodes":[],"global":false,"libraryName":{"id":41255,"name":"SubnetIDHelper","nameLocations":["680:14:58"],"nodeType":"IdentifierPath","referencedDeclaration":46876,"src":"680:14:58"},"typeName":{"id":41257,"nodeType":"UserDefinedTypeName","pathNode":{"id":41256,"name":"SubnetID","nameLocations":["699:8:58"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"699:8:58"},"referencedDeclaration":48557,"src":"699:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}}},{"id":41262,"nodeType":"UsingForDirective","src":"713:34:58","nodes":[],"global":false,"libraryName":{"id":41259,"name":"CrossMsgHelper","nameLocations":["719:14:58"],"nodeType":"IdentifierPath","referencedDeclaration":40328,"src":"719:14:58"},"typeName":{"id":41261,"nodeType":"UserDefinedTypeName","pathNode":{"id":41260,"name":"CrossMsg","nameLocations":["738:8:58"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"738:8:58"},"referencedDeclaration":48452,"src":"738:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}}},{"id":41267,"nodeType":"EventDefinition","src":"753:36:58","nodes":[],"anonymous":false,"eventSelector":"7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481","name":"MembershipUpdated","nameLocation":"759:17:58","parameters":{"id":41266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41265,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41267,"src":"777:10:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership"},"typeName":{"id":41264,"nodeType":"UserDefinedTypeName","pathNode":{"id":41263,"name":"Membership","nameLocations":["777:10:58"],"nodeType":"IdentifierPath","referencedDeclaration":48701,"src":"777:10:58"},"referencedDeclaration":48701,"src":"777:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"776:12:58"}},{"id":41275,"nodeType":"EventDefinition","src":"902:66:58","nodes":[],"anonymous":false,"documentation":{"id":41268,"nodeType":"StructuredDocumentation","src":"794:103:58","text":"@dev subnet refers to the next \"down\" subnet that the `CrossMsg.message.to` should be forwarded to."},"eventSelector":"392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f7096","name":"NewTopDownMessage","nameLocation":"908:17:58","parameters":{"id":41274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41270,"indexed":true,"mutability":"mutable","name":"subnet","nameLocation":"942:6:58","nodeType":"VariableDeclaration","scope":41275,"src":"926:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41269,"name":"address","nodeType":"ElementaryTypeName","src":"926:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41273,"indexed":false,"mutability":"mutable","name":"message","nameLocation":"959:7:58","nodeType":"VariableDeclaration","scope":41275,"src":"950:16:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":41272,"nodeType":"UserDefinedTypeName","pathNode":{"id":41271,"name":"CrossMsg","nameLocations":["950:8:58"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"950:8:58"},"referencedDeclaration":48452,"src":"950:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"925:42:58"}},{"id":41283,"nodeType":"EventDefinition","src":"1058:73:58","nodes":[],"anonymous":false,"documentation":{"id":41276,"nodeType":"StructuredDocumentation","src":"973:80:58","text":"@dev event emitted when there is a new bottom-up message batch to be signed."},"eventSelector":"39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e","name":"NewBottomUpMsgBatch","nameLocation":"1064:19:58","parameters":{"id":41282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41278,"indexed":true,"mutability":"mutable","name":"epoch","nameLocation":"1100:5:58","nodeType":"VariableDeclaration","scope":41283,"src":"1084:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41277,"name":"uint256","nodeType":"ElementaryTypeName","src":"1084:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41281,"indexed":false,"mutability":"mutable","name":"batch","nameLocation":"1124:5:58","nodeType":"VariableDeclaration","scope":41283,"src":"1107:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41280,"nodeType":"UserDefinedTypeName","pathNode":{"id":41279,"name":"BottomUpMsgBatch","nameLocations":["1107:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"1107:16:58"},"referencedDeclaration":48423,"src":"1107:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"1083:47:58"}},{"id":41327,"nodeType":"FunctionDefinition","src":"1352:419:58","nodes":[],"body":{"id":41326,"nodeType":"Block","src":"1509:262:58","nodes":[],"statements":[{"assignments":[41296],"declarations":[{"constant":false,"id":41296,"mutability":"mutable","name":"s","nameLocation":"1547:1:58","nodeType":"VariableDeclaration","scope":41326,"src":"1519:29:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41295,"nodeType":"UserDefinedTypeName","pathNode":{"id":41294,"name":"GatewayActorStorage","nameLocations":["1519:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"1519:19:58"},"referencedDeclaration":42369,"src":"1519:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41300,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41297,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"1551:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$42380_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1574:10:58","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":42379,"src":"1551:33:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$42369_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1551:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1519:67:58"},{"expression":{"id":41309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41301,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41289,"src":"1596:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":41304,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1628:5:58","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":41305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1634:6:58","memberName":"number","nodeType":"MemberAccess","src":"1628:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":41306,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41296,"src":"1642:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1644:19:58","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":42343,"src":"1642:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41302,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"1604:10:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":41303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1615:12:58","memberName":"getNextEpoch","nodeType":"MemberAccess","referencedDeclaration":42241,"src":"1604:23:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":41308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1604:60:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1596:68:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41310,"nodeType":"ExpressionStatement","src":"1596:68:58"},{"expression":{"id":41316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41311,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41292,"src":"1674:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":41312,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41296,"src":"1687:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1689:19:58","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42300,"src":"1687:21:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41315,"indexExpression":{"id":41314,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41289,"src":"1709:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1687:28:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"1674:41:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":41317,"nodeType":"ExpressionStatement","src":"1674:41:58"},{"expression":{"id":41324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41318,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41287,"src":"1725:6:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1734:30:58","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":41319,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41292,"src":"1735:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":41320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1746:8:58","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":48400,"src":"1735:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":41321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1755:7:58","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":46875,"src":"1735:27:58","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":41322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1735:29:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1725:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41325,"nodeType":"ExpressionStatement","src":"1725:39:58"}]},"documentation":{"id":41284,"nodeType":"StructuredDocumentation","src":"1137:210:58","text":"@notice returns the current bottom-up checkpoint\n @return exists - whether the checkpoint exists\n @return epoch - the epoch of the checkpoint\n @return checkpoint - the checkpoint struct"},"implemented":true,"kind":"function","modifiers":[],"name":"getCurrentBottomUpCheckpoint","nameLocation":"1361:28:58","parameters":{"id":41285,"nodeType":"ParameterList","parameters":[],"src":"1389:2:58"},"returnParameters":{"id":41293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41287,"mutability":"mutable","name":"exists","nameLocation":"1444:6:58","nodeType":"VariableDeclaration","scope":41327,"src":"1439:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41286,"name":"bool","nodeType":"ElementaryTypeName","src":"1439:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41289,"mutability":"mutable","name":"epoch","nameLocation":"1460:5:58","nodeType":"VariableDeclaration","scope":41327,"src":"1452:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41288,"name":"uint256","nodeType":"ElementaryTypeName","src":"1452:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41292,"mutability":"mutable","name":"checkpoint","nameLocation":"1493:10:58","nodeType":"VariableDeclaration","scope":41327,"src":"1467:36:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":41291,"nodeType":"UserDefinedTypeName","pathNode":{"id":41290,"name":"BottomUpCheckpoint","nameLocations":["1467:18:58"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"1467:18:58"},"referencedDeclaration":48410,"src":"1467:18:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"1438:66:58"},"scope":42242,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41360,"nodeType":"FunctionDefinition","src":"1826:345:58","nodes":[],"body":{"id":41359,"nodeType":"Block","src":"1989:182:58","nodes":[],"statements":[{"assignments":[41340],"declarations":[{"constant":false,"id":41340,"mutability":"mutable","name":"s","nameLocation":"2027:1:58","nodeType":"VariableDeclaration","scope":41359,"src":"1999:29:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41339,"nodeType":"UserDefinedTypeName","pathNode":{"id":41338,"name":"GatewayActorStorage","nameLocations":["1999:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"1999:19:58"},"referencedDeclaration":42369,"src":"1999:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41344,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41341,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"2031:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$42380_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2054:10:58","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":42379,"src":"2031:33:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$42369_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2031:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1999:67:58"},{"expression":{"id":41350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41345,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41336,"src":"2077:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":41346,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41340,"src":"2090:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2092:19:58","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42300,"src":"2090:21:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41349,"indexExpression":{"id":41348,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41330,"src":"2112:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2090:28:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"2077:41:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"id":41351,"nodeType":"ExpressionStatement","src":"2077:41:58"},{"expression":{"id":41357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41352,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41333,"src":"2128:6:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41353,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41336,"src":"2137:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"id":41354,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2148:11:58","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"2137:22:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2163:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2137:27:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2128:36:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41358,"nodeType":"ExpressionStatement","src":"2128:36:58"}]},"documentation":{"id":41328,"nodeType":"StructuredDocumentation","src":"1777:44:58","text":"@notice returns the bottom-up checkpoint"},"implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpCheckpoint","nameLocation":"1835:21:58","parameters":{"id":41331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41330,"mutability":"mutable","name":"epoch","nameLocation":"1874:5:58","nodeType":"VariableDeclaration","scope":41360,"src":"1866:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41329,"name":"uint256","nodeType":"ElementaryTypeName","src":"1866:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1856:29:58"},"returnParameters":{"id":41337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41333,"mutability":"mutable","name":"exists","nameLocation":"1938:6:58","nodeType":"VariableDeclaration","scope":41360,"src":"1933:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41332,"name":"bool","nodeType":"ElementaryTypeName","src":"1933:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41336,"mutability":"mutable","name":"checkpoint","nameLocation":"1973:10:58","nodeType":"VariableDeclaration","scope":41360,"src":"1946:37:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":41335,"nodeType":"UserDefinedTypeName","pathNode":{"id":41334,"name":"BottomUpCheckpoint","nameLocations":["1946:18:58"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"1946:18:58"},"referencedDeclaration":48410,"src":"1946:18:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"1932:52:58"},"scope":42242,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41393,"nodeType":"FunctionDefinition","src":"2221:325:58","nodes":[],"body":{"id":41392,"nodeType":"Block","src":"2375:171:58","nodes":[],"statements":[{"assignments":[41373],"declarations":[{"constant":false,"id":41373,"mutability":"mutable","name":"s","nameLocation":"2413:1:58","nodeType":"VariableDeclaration","scope":41392,"src":"2385:29:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41372,"nodeType":"UserDefinedTypeName","pathNode":{"id":41371,"name":"GatewayActorStorage","nameLocations":["2385:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"2385:19:58"},"referencedDeclaration":42369,"src":"2385:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41377,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41374,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"2417:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$42380_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2440:10:58","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":42379,"src":"2417:33:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$42369_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2417:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2385:67:58"},{"expression":{"id":41383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41378,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41369,"src":"2463:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":41379,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41373,"src":"2471:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2473:18:58","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":42306,"src":"2471:20:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$48423_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":41382,"indexExpression":{"id":41381,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41363,"src":"2492:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2471:27:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"src":"2463:35:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41384,"nodeType":"ExpressionStatement","src":"2463:35:58"},{"expression":{"id":41390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41385,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41366,"src":"2508:6:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41386,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41369,"src":"2517:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2523:11:58","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"2517:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2538:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2517:22:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2508:31:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41391,"nodeType":"ExpressionStatement","src":"2508:31:58"}]},"documentation":{"id":41361,"nodeType":"StructuredDocumentation","src":"2177:39:58","text":"@notice returns the bottom-up batch"},"implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatch","nameLocation":"2230:19:58","parameters":{"id":41364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41363,"mutability":"mutable","name":"epoch","nameLocation":"2267:5:58","nodeType":"VariableDeclaration","scope":41393,"src":"2259:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41362,"name":"uint256","nodeType":"ElementaryTypeName","src":"2259:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2249:29:58"},"returnParameters":{"id":41370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41366,"mutability":"mutable","name":"exists","nameLocation":"2331:6:58","nodeType":"VariableDeclaration","scope":41393,"src":"2326:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41365,"name":"bool","nodeType":"ElementaryTypeName","src":"2326:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41369,"mutability":"mutable","name":"batch","nameLocation":"2364:5:58","nodeType":"VariableDeclaration","scope":41393,"src":"2339:30:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41368,"nodeType":"UserDefinedTypeName","pathNode":{"id":41367,"name":"BottomUpMsgBatch","nameLocations":["2339:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"2339:16:58"},"referencedDeclaration":48423,"src":"2339:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"2325:45:58"},"scope":42242,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41417,"nodeType":"FunctionDefinition","src":"2638:224:58","nodes":[],"body":{"id":41416,"nodeType":"Block","src":"2716:146:58","nodes":[],"statements":[{"assignments":[41403],"declarations":[{"constant":false,"id":41403,"mutability":"mutable","name":"s","nameLocation":"2754:1:58","nodeType":"VariableDeclaration","scope":41416,"src":"2726:29:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41402,"nodeType":"UserDefinedTypeName","pathNode":{"id":41401,"name":"GatewayActorStorage","nameLocations":["2726:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"2726:19:58"},"referencedDeclaration":42369,"src":"2726:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41407,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41404,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"2758:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$42380_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2781:10:58","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":42379,"src":"2758:33:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$42369_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2758:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2726:67:58"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":41408,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41403,"src":"2810:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2812:19:58","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42300,"src":"2810:21:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41411,"indexExpression":{"id":41410,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41396,"src":"2832:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2810:28:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"id":41412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2839:11:58","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"2810:40:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2854:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2810:45:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":41400,"id":41415,"nodeType":"Return","src":"2803:52:58"}]},"documentation":{"id":41394,"nodeType":"StructuredDocumentation","src":"2552:81:58","text":"@notice checks if the bottom-up checkpoint already exists at the target epoch"},"implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpointExists","nameLocation":"2647:24:58","parameters":{"id":41397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41396,"mutability":"mutable","name":"epoch","nameLocation":"2680:5:58","nodeType":"VariableDeclaration","scope":41417,"src":"2672:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41395,"name":"uint256","nodeType":"ElementaryTypeName","src":"2672:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2671:15:58"},"returnParameters":{"id":41400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41417,"src":"2710:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41398,"name":"bool","nodeType":"ElementaryTypeName","src":"2710:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2709:6:58"},"scope":42242,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41441,"nodeType":"FunctionDefinition","src":"2954:222:58","nodes":[],"body":{"id":41440,"nodeType":"Block","src":"3031:145:58","nodes":[],"statements":[{"assignments":[41427],"declarations":[{"constant":false,"id":41427,"mutability":"mutable","name":"s","nameLocation":"3069:1:58","nodeType":"VariableDeclaration","scope":41440,"src":"3041:29:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41426,"nodeType":"UserDefinedTypeName","pathNode":{"id":41425,"name":"GatewayActorStorage","nameLocations":["3041:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"3041:19:58"},"referencedDeclaration":42369,"src":"3041:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41431,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41428,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"3073:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$42380_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3096:10:58","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":42379,"src":"3073:33:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$42369_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3073:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3041:67:58"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":41432,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41427,"src":"3125:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3127:18:58","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":42306,"src":"3125:20:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$48423_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":41435,"indexExpression":{"id":41434,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41420,"src":"3146:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3125:27:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"id":41436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3153:11:58","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"3125:39:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3168:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3125:44:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":41424,"id":41439,"nodeType":"Return","src":"3118:51:58"}]},"documentation":{"id":41418,"nodeType":"StructuredDocumentation","src":"2868:81:58","text":"@notice checks if the bottom-up checkpoint already exists at the target epoch"},"implemented":true,"kind":"function","modifiers":[],"name":"bottomUpBatchMsgsExists","nameLocation":"2963:23:58","parameters":{"id":41421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41420,"mutability":"mutable","name":"epoch","nameLocation":"2995:5:58","nodeType":"VariableDeclaration","scope":41441,"src":"2987:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41419,"name":"uint256","nodeType":"ElementaryTypeName","src":"2987:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2986:15:58"},"returnParameters":{"id":41424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41441,"src":"3025:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41422,"name":"bool","nodeType":"ElementaryTypeName","src":"3025:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3024:6:58"},"scope":42242,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41465,"nodeType":"FunctionDefinition","src":"3216:246:58","nodes":[],"body":{"id":41464,"nodeType":"Block","src":"3310:152:58","nodes":[],"statements":[{"assignments":[41450],"declarations":[{"constant":false,"id":41450,"mutability":"mutable","name":"s","nameLocation":"3348:1:58","nodeType":"VariableDeclaration","scope":41464,"src":"3320:29:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41449,"nodeType":"UserDefinedTypeName","pathNode":{"id":41448,"name":"GatewayActorStorage","nameLocations":["3320:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"3320:19:58"},"referencedDeclaration":42369,"src":"3320:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41454,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41451,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"3352:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$42380_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3375:10:58","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":42379,"src":"3352:33:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$42369_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3352:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3320:67:58"},{"expression":{"id":41462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":41455,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41450,"src":"3397:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3399:19:58","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":42300,"src":"3397:21:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41460,"indexExpression":{"expression":{"id":41457,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41445,"src":"3419:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":41458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3430:11:58","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"3419:22:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3397:45:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41461,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41445,"src":"3445:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"src":"3397:58:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"id":41463,"nodeType":"ExpressionStatement","src":"3397:58:58"}]},"documentation":{"id":41442,"nodeType":"StructuredDocumentation","src":"3182:29:58","text":"@notice stores checkpoint"},"implemented":true,"kind":"function","modifiers":[],"name":"storeBottomUpCheckpoint","nameLocation":"3225:23:58","parameters":{"id":41446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41445,"mutability":"mutable","name":"checkpoint","nameLocation":"3284:10:58","nodeType":"VariableDeclaration","scope":41465,"src":"3258:36:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":41444,"nodeType":"UserDefinedTypeName","pathNode":{"id":41443,"name":"BottomUpCheckpoint","nameLocations":["3258:18:58"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"3258:18:58"},"referencedDeclaration":48410,"src":"3258:18:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"3248:52:58"},"returnParameters":{"id":41447,"nodeType":"ParameterList","parameters":[],"src":"3310:0:58"},"scope":42242,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41532,"nodeType":"FunctionDefinition","src":"3507:709:58","nodes":[],"body":{"id":41531,"nodeType":"Block","src":"3592:624:58","nodes":[],"statements":[{"assignments":[41474],"declarations":[{"constant":false,"id":41474,"mutability":"mutable","name":"s","nameLocation":"3630:1:58","nodeType":"VariableDeclaration","scope":41531,"src":"3602:29:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41473,"nodeType":"UserDefinedTypeName","pathNode":{"id":41472,"name":"GatewayActorStorage","nameLocations":["3602:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"3602:19:58"},"referencedDeclaration":42369,"src":"3602:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41478,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41475,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"3634:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$42380_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3657:10:58","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":42379,"src":"3634:33:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$42369_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3634:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3602:67:58"},{"assignments":[41481],"declarations":[{"constant":false,"id":41481,"mutability":"mutable","name":"b","nameLocation":"3704:1:58","nodeType":"VariableDeclaration","scope":41531,"src":"3679:26:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41480,"nodeType":"UserDefinedTypeName","pathNode":{"id":41479,"name":"BottomUpMsgBatch","nameLocations":["3679:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"3679:16:58"},"referencedDeclaration":48423,"src":"3679:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"id":41487,"initialValue":{"baseExpression":{"expression":{"id":41482,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41474,"src":"3708:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3710:18:58","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":42306,"src":"3708:20:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$48423_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":41486,"indexExpression":{"expression":{"id":41484,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41469,"src":"3729:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3735:11:58","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"3729:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3708:39:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3679:68:58"},{"expression":{"id":41493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":41488,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41481,"src":"3757:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41490,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3759:8:58","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":48414,"src":"3757:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41491,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41469,"src":"3770:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3776:8:58","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":48414,"src":"3770:14:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"src":"3757:27:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"id":41494,"nodeType":"ExpressionStatement","src":"3757:27:58"},{"expression":{"id":41500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":41495,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41481,"src":"3794:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3796:11:58","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"3794:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41498,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41469,"src":"3810:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3816:11:58","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"3810:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3794:33:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41501,"nodeType":"ExpressionStatement","src":"3794:33:58"},{"assignments":[41503],"declarations":[{"constant":false,"id":41503,"mutability":"mutable","name":"msgLength","nameLocation":"3846:9:58","nodeType":"VariableDeclaration","scope":41531,"src":"3838:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41502,"name":"uint256","nodeType":"ElementaryTypeName","src":"3838:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41507,"initialValue":{"expression":{"expression":{"id":41504,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41469,"src":"3858:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3864:4:58","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"3858:10:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":41506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3869:6:58","memberName":"length","nodeType":"MemberAccess","src":"3858:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3838:37:58"},{"body":{"id":41529,"nodeType":"Block","src":"3917:293:58","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":41519,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41469,"src":"4126:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41520,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4132:4:58","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"4126:10:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":41522,"indexExpression":{"id":41521,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41509,"src":"4137:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4126:13:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":41514,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41481,"src":"4114:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4116:4:58","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"4114:6:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":41518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4121:4:58","memberName":"push","nodeType":"MemberAccess","src":"4114:11:58","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$48452_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":41523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4114:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41524,"nodeType":"ExpressionStatement","src":"4114:26:58"},{"id":41528,"nodeType":"UncheckedBlock","src":"4154:46:58","statements":[{"expression":{"id":41526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4182:3:58","subExpression":{"id":41525,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41509,"src":"4184:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41527,"nodeType":"ExpressionStatement","src":"4182:3:58"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41511,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41509,"src":"3901:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41512,"name":"msgLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41503,"src":"3905:9:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3901:13:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41530,"initializationExpression":{"assignments":[41509],"declarations":[{"constant":false,"id":41509,"mutability":"mutable","name":"i","nameLocation":"3898:1:58","nodeType":"VariableDeclaration","scope":41530,"src":"3890:9:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41508,"name":"uint256","nodeType":"ElementaryTypeName","src":"3890:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41510,"nodeType":"VariableDeclarationStatement","src":"3890:9:58"},"nodeType":"ForStatement","src":"3885:325:58"}]},"documentation":{"id":41466,"nodeType":"StructuredDocumentation","src":"3468:34:58","text":"@notice stores bottom-up batch"},"implemented":true,"kind":"function","modifiers":[],"name":"storeBottomUpMsgBatch","nameLocation":"3516:21:58","parameters":{"id":41470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41469,"mutability":"mutable","name":"batch","nameLocation":"3571:5:58","nodeType":"VariableDeclaration","scope":41532,"src":"3547:29:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41468,"nodeType":"UserDefinedTypeName","pathNode":{"id":41467,"name":"BottomUpMsgBatch","nameLocations":["3547:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"3547:16:58"},"referencedDeclaration":48423,"src":"3547:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"3537:45:58"},"returnParameters":{"id":41471,"nodeType":"ParameterList","parameters":[],"src":"3592:0:58"},"scope":42242,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41554,"nodeType":"FunctionDefinition","src":"4362:223:58","nodes":[],"body":{"id":41553,"nodeType":"Block","src":"4456:129:58","nodes":[],"statements":[{"assignments":[41543],"declarations":[{"constant":false,"id":41543,"mutability":"mutable","name":"s","nameLocation":"4494:1:58","nodeType":"VariableDeclaration","scope":41553,"src":"4466:29:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41542,"nodeType":"UserDefinedTypeName","pathNode":{"id":41541,"name":"GatewayActorStorage","nameLocations":["4466:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"4466:19:58"},"referencedDeclaration":42369,"src":"4466:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41547,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41544,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"4498:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$42380_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4521:10:58","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":42379,"src":"4498:33:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$42369_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4498:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4466:67:58"},{"expression":{"baseExpression":{"expression":{"id":41548,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41543,"src":"4550:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4552:13:58","memberName":"finalitiesMap","nodeType":"MemberAccess","referencedDeclaration":42277,"src":"4550:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$48396_storage_$","typeString":"mapping(uint256 => struct ParentFinality storage ref)"}},"id":41551,"indexExpression":{"id":41550,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41535,"src":"4566:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4550:28:58","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage","typeString":"struct ParentFinality storage ref"}},"functionReturnParameters":41540,"id":41552,"nodeType":"Return","src":"4543:35:58"}]},"documentation":{"id":41533,"nodeType":"StructuredDocumentation","src":"4222:135:58","text":"@notice obtain the ipc parent finality at certain block number\n @param blockNumber - the block number to obtain the finality"},"implemented":true,"kind":"function","modifiers":[],"name":"getParentFinality","nameLocation":"4371:17:58","parameters":{"id":41536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41535,"mutability":"mutable","name":"blockNumber","nameLocation":"4397:11:58","nodeType":"VariableDeclaration","scope":41554,"src":"4389:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41534,"name":"uint256","nodeType":"ElementaryTypeName","src":"4389:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4388:21:58"},"returnParameters":{"id":41540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41554,"src":"4433:21:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":41538,"nodeType":"UserDefinedTypeName","pathNode":{"id":41537,"name":"ParentFinality","nameLocations":["4433:14:58"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"4433:14:58"},"referencedDeclaration":48396,"src":"4433:14:58","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"4432:23:58"},"scope":42242,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41574,"nodeType":"FunctionDefinition","src":"4655:221:58","nodes":[],"body":{"id":41573,"nodeType":"Block","src":"4736:140:58","nodes":[],"statements":[{"assignments":[41563],"declarations":[{"constant":false,"id":41563,"mutability":"mutable","name":"s","nameLocation":"4774:1:58","nodeType":"VariableDeclaration","scope":41573,"src":"4746:29:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41562,"nodeType":"UserDefinedTypeName","pathNode":{"id":41561,"name":"GatewayActorStorage","nameLocations":["4746:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"4746:19:58"},"referencedDeclaration":42369,"src":"4746:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41567,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41564,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"4778:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$42380_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4801:10:58","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":42379,"src":"4778:33:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$42369_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4778:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4746:67:58"},{"expression":{"arguments":[{"expression":{"id":41569,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41563,"src":"4848:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4850:18:58","memberName":"latestParentHeight","nodeType":"MemberAccess","referencedDeclaration":42280,"src":"4848:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":41568,"name":"getParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41554,"src":"4830:17:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_ParentFinality_$48396_memory_ptr_$","typeString":"function (uint256) view returns (struct ParentFinality memory)"}},"id":41571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4830:39:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"functionReturnParameters":41560,"id":41572,"nodeType":"Return","src":"4823:46:58"}]},"documentation":{"id":41555,"nodeType":"StructuredDocumentation","src":"4591:59:58","text":"@notice obtain the latest committed ipc parent finality"},"implemented":true,"kind":"function","modifiers":[],"name":"getLatestParentFinality","nameLocation":"4664:23:58","parameters":{"id":41556,"nodeType":"ParameterList","parameters":[],"src":"4687:2:58"},"returnParameters":{"id":41560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41574,"src":"4713:21:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":41558,"nodeType":"UserDefinedTypeName","pathNode":{"id":41557,"name":"ParentFinality","nameLocations":["4713:14:58"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"4713:14:58"},"referencedDeclaration":48396,"src":"4713:14:58","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"4712:23:58"},"scope":42242,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41629,"nodeType":"FunctionDefinition","src":"4997:529:58","nodes":[],"body":{"id":41628,"nodeType":"Block","src":"5129:397:58","nodes":[],"statements":[{"assignments":[41586],"declarations":[{"constant":false,"id":41586,"mutability":"mutable","name":"s","nameLocation":"5167:1:58","nodeType":"VariableDeclaration","scope":41628,"src":"5139:29:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41585,"nodeType":"UserDefinedTypeName","pathNode":{"id":41584,"name":"GatewayActorStorage","nameLocations":["5139:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"5139:19:58"},"referencedDeclaration":42369,"src":"5139:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41590,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41587,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"5171:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$42380_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5194:10:58","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":42379,"src":"5171:33:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$42369_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5171:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5139:67:58"},{"assignments":[41592],"declarations":[{"constant":false,"id":41592,"mutability":"mutable","name":"lastHeight","nameLocation":"5225:10:58","nodeType":"VariableDeclaration","scope":41628,"src":"5217:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41591,"name":"uint256","nodeType":"ElementaryTypeName","src":"5217:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41595,"initialValue":{"expression":{"id":41593,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41586,"src":"5238:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5240:18:58","memberName":"latestParentHeight","nodeType":"MemberAccess","referencedDeclaration":42280,"src":"5238:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5217:41:58"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41596,"name":"lastHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41592,"src":"5272:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":41597,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41578,"src":"5285:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_calldata_ptr","typeString":"struct ParentFinality calldata"}},"id":41598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5294:6:58","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":48393,"src":"5285:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5272:28:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41604,"nodeType":"IfStatement","src":"5268:98:58","trueBody":{"id":41603,"nodeType":"Block","src":"5302:64:58","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":41600,"name":"ParentFinalityAlreadyCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37066,"src":"5323:30:58","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":41601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5323:32:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41602,"nodeType":"RevertStatement","src":"5316:39:58"}]}},{"expression":{"id":41610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41605,"name":"lastFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41582,"src":"5375:12:58","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":41606,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41586,"src":"5390:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5392:13:58","memberName":"finalitiesMap","nodeType":"MemberAccess","referencedDeclaration":42277,"src":"5390:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$48396_storage_$","typeString":"mapping(uint256 => struct ParentFinality storage ref)"}},"id":41609,"indexExpression":{"id":41608,"name":"lastHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41592,"src":"5406:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5390:27:58","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage","typeString":"struct ParentFinality storage ref"}},"src":"5375:42:58","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality memory"}},"id":41611,"nodeType":"ExpressionStatement","src":"5375:42:58"},{"expression":{"id":41619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":41612,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41586,"src":"5428:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5430:13:58","memberName":"finalitiesMap","nodeType":"MemberAccess","referencedDeclaration":42277,"src":"5428:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$48396_storage_$","typeString":"mapping(uint256 => struct ParentFinality storage ref)"}},"id":41617,"indexExpression":{"expression":{"id":41614,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41578,"src":"5444:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_calldata_ptr","typeString":"struct ParentFinality calldata"}},"id":41615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5453:6:58","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":48393,"src":"5444:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5428:32:58","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage","typeString":"struct ParentFinality storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41618,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41578,"src":"5463:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_calldata_ptr","typeString":"struct ParentFinality calldata"}},"src":"5428:43:58","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage","typeString":"struct ParentFinality storage ref"}},"id":41620,"nodeType":"ExpressionStatement","src":"5428:43:58"},{"expression":{"id":41626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":41621,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41586,"src":"5481:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5483:18:58","memberName":"latestParentHeight","nodeType":"MemberAccess","referencedDeclaration":42280,"src":"5481:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41624,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41578,"src":"5504:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_calldata_ptr","typeString":"struct ParentFinality calldata"}},"id":41625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5513:6:58","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":48393,"src":"5504:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5481:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41627,"nodeType":"ExpressionStatement","src":"5481:38:58"}]},"documentation":{"id":41575,"nodeType":"StructuredDocumentation","src":"4882:110:58","text":"@notice commit the ipc parent finality into storage\n @param finality - the finality to be committed"},"implemented":true,"kind":"function","modifiers":[],"name":"commitParentFinality","nameLocation":"5006:20:58","parameters":{"id":41579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41578,"mutability":"mutable","name":"finality","nameLocation":"5060:8:58","nodeType":"VariableDeclaration","scope":41629,"src":"5036:32:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_calldata_ptr","typeString":"struct ParentFinality"},"typeName":{"id":41577,"nodeType":"UserDefinedTypeName","pathNode":{"id":41576,"name":"ParentFinality","nameLocations":["5036:14:58"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"5036:14:58"},"referencedDeclaration":48396,"src":"5036:14:58","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"5026:48:58"},"returnParameters":{"id":41583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41582,"mutability":"mutable","name":"lastFinality","nameLocation":"5115:12:58","nodeType":"VariableDeclaration","scope":41629,"src":"5093:34:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":41581,"nodeType":"UserDefinedTypeName","pathNode":{"id":41580,"name":"ParentFinality","nameLocations":["5093:14:58"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"5093:14:58"},"referencedDeclaration":48396,"src":"5093:14:58","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"5092:36:58"},"scope":42242,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41783,"nodeType":"FunctionDefinition","src":"5615:1976:58","nodes":[],"body":{"id":41782,"nodeType":"Block","src":"5680:1911:58","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":41637,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41633,"src":"5713:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}],"id":41636,"name":"MembershipUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41267,"src":"5695:17:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_struct$_Membership_$48701_memory_ptr_$returns$__$","typeString":"function (struct Membership memory)"}},"id":41638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5695:29:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41639,"nodeType":"EmitStatement","src":"5690:34:58"},{"assignments":[41642],"declarations":[{"constant":false,"id":41642,"mutability":"mutable","name":"s","nameLocation":"5763:1:58","nodeType":"VariableDeclaration","scope":41782,"src":"5735:29:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41641,"nodeType":"UserDefinedTypeName","pathNode":{"id":41640,"name":"GatewayActorStorage","nameLocations":["5735:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"5735:19:58"},"referencedDeclaration":42369,"src":"5735:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41646,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41643,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"5767:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$42380_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5790:10:58","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":42379,"src":"5767:33:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$42369_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5767:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5735:67:58"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":41651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":41647,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41642,"src":"5872:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5874:17:58","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42290,"src":"5872:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}},"id":41649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5892:19:58","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48700,"src":"5872:39:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5915:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5872:44:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41681,"nodeType":"IfStatement","src":"5868:621:58","trueBody":{"id":41680,"nodeType":"Block","src":"5918:571:58","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":41657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41652,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41633,"src":"5936:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},"id":41653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5947:19:58","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48700,"src":"5936:30:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":41654,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41642,"src":"5970:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41655,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5972:14:58","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42294,"src":"5970:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}},"id":41656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5987:19:58","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48700,"src":"5970:36:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5936:70:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41660,"nodeType":"IfStatement","src":"5932:115:58","trueBody":{"id":41659,"nodeType":"Block","src":"6008:39:58","statements":[{"functionReturnParameters":41635,"id":41658,"nodeType":"Return","src":"6026:7:58"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":41666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41661,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41633,"src":"6160:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},"id":41662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6171:19:58","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48700,"src":"6160:30:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":41663,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41642,"src":"6193:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6195:14:58","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42294,"src":"6193:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}},"id":41665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6210:19:58","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48700,"src":"6193:36:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6160:69:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41671,"nodeType":"IfStatement","src":"6156:139:58","trueBody":{"id":41670,"nodeType":"Block","src":"6231:64:58","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":41667,"name":"OldConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37060,"src":"6256:22:58","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":41668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6256:24:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41669,"nodeType":"RevertStatement","src":"6249:31:58"}]}},{"condition":{"arguments":[{"id":41673,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41633,"src":"6406:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},{"expression":{"id":41674,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41642,"src":"6418:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6420:17:58","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42290,"src":"6418:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"},{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}],"id":41672,"name":"membershipEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41892,"src":"6390:15:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Membership_$48701_memory_ptr_$_t_struct$_Membership_$48701_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Membership memory,struct Membership memory) pure returns (bool)"}},"id":41676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6390:48:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41679,"nodeType":"IfStatement","src":"6386:93:58","trueBody":{"id":41678,"nodeType":"Block","src":"6440:39:58","statements":[{"functionReturnParameters":41635,"id":41677,"nodeType":"Return","src":"6458:7:58"}]}}]}},{"expression":{"id":41687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":41682,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41642,"src":"6499:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6501:14:58","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42294,"src":"6499:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41685,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41642,"src":"6518:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6520:17:58","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42290,"src":"6518:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}},"src":"6499:38:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}},"id":41688,"nodeType":"ExpressionStatement","src":"6499:38:58"},{"assignments":[41690],"declarations":[{"constant":false,"id":41690,"mutability":"mutable","name":"inputLength","nameLocation":"6556:11:58","nodeType":"VariableDeclaration","scope":41782,"src":"6548:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41689,"name":"uint256","nodeType":"ElementaryTypeName","src":"6548:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41694,"initialValue":{"expression":{"expression":{"id":41691,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41633,"src":"6570:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},"id":41692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6581:10:58","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48698,"src":"6570:21:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":41693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6592:6:58","memberName":"length","nodeType":"MemberAccess","src":"6570:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6548:50:58"},{"assignments":[41696],"declarations":[{"constant":false,"id":41696,"mutability":"mutable","name":"storeLength","nameLocation":"6616:11:58","nodeType":"VariableDeclaration","scope":41782,"src":"6608:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41695,"name":"uint256","nodeType":"ElementaryTypeName","src":"6608:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41701,"initialValue":{"expression":{"expression":{"expression":{"id":41697,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41642,"src":"6630:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6632:17:58","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42290,"src":"6630:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}},"id":41699,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6650:10:58","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48698,"src":"6630:30:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":41700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6661:6:58","memberName":"length","nodeType":"MemberAccess","src":"6630:37:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6608:59:58"},{"body":{"id":41744,"nodeType":"Block","src":"6864:297:58","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41708,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41703,"src":"6882:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41709,"name":"storeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41696,"src":"6886:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6882:15:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":41738,"nodeType":"Block","src":"6998:94:58","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":41732,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41633,"src":"7052:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},"id":41733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7063:10:58","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48698,"src":"7052:21:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":41735,"indexExpression":{"id":41734,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41703,"src":"7074:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7052:24:58","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"expression":{"id":41725,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41642,"src":"7016:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7018:17:58","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42290,"src":"7016:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}},"id":41730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7036:10:58","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48698,"src":"7016:30:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":41731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7047:4:58","memberName":"push","nodeType":"MemberAccess","src":"7016:35:58","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$_t_struct$_Validator_$48694_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":41736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7016:61:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41737,"nodeType":"ExpressionStatement","src":"7016:61:58"}]},"id":41739,"nodeType":"IfStatement","src":"6878:214:58","trueBody":{"id":41724,"nodeType":"Block","src":"6899:93:58","statements":[{"expression":{"id":41722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":41711,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41642,"src":"6917:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6919:17:58","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42290,"src":"6917:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}},"id":41716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6937:10:58","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48698,"src":"6917:30:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":41717,"indexExpression":{"id":41714,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41703,"src":"6948:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6917:33:58","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage","typeString":"struct Validator storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":41718,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41633,"src":"6953:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},"id":41719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6964:10:58","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48698,"src":"6953:21:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":41721,"indexExpression":{"id":41720,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41703,"src":"6975:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6953:24:58","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}},"src":"6917:60:58","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage","typeString":"struct Validator storage ref"}},"id":41723,"nodeType":"ExpressionStatement","src":"6917:60:58"}]}},{"id":41743,"nodeType":"UncheckedBlock","src":"7105:46:58","statements":[{"expression":{"id":41741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7133:3:58","subExpression":{"id":41740,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41703,"src":"7135:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41742,"nodeType":"ExpressionStatement","src":"7133:3:58"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41705,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41703,"src":"6845:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41706,"name":"inputLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41690,"src":"6849:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6845:15:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41745,"initializationExpression":{"assignments":[41703],"declarations":[{"constant":false,"id":41703,"mutability":"mutable","name":"i","nameLocation":"6842:1:58","nodeType":"VariableDeclaration","scope":41745,"src":"6834:9:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41702,"name":"uint256","nodeType":"ElementaryTypeName","src":"6834:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41704,"nodeType":"VariableDeclarationStatement","src":"6834:9:58"},"nodeType":"ForStatement","src":"6829:332:58"},{"expression":{"id":41753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":41746,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41642,"src":"7170:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7172:17:58","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42290,"src":"7170:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}},"id":41750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7190:19:58","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48700,"src":"7170:39:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41751,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41633,"src":"7212:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},"id":41752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7223:19:58","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48700,"src":"7212:30:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7170:72:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":41754,"nodeType":"ExpressionStatement","src":"7170:72:58"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41755,"name":"storeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41696,"src":"7345:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":41756,"name":"inputLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41690,"src":"7359:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7345:25:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41781,"nodeType":"IfStatement","src":"7341:244:58","trueBody":{"id":41780,"nodeType":"Block","src":"7372:213:58","statements":[{"body":{"id":41778,"nodeType":"Block","src":"7435:140:58","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":41765,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41642,"src":"7453:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7455:17:58","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42290,"src":"7453:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage","typeString":"struct Membership storage ref"}},"id":41770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7473:10:58","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48698,"src":"7453:30:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":41771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7484:3:58","memberName":"pop","nodeType":"MemberAccess","src":"7453:34:58","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer)"}},"id":41772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7453:36:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41773,"nodeType":"ExpressionStatement","src":"7453:36:58"},{"id":41777,"nodeType":"UncheckedBlock","src":"7507:54:58","statements":[{"expression":{"id":41775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7539:3:58","subExpression":{"id":41774,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41759,"src":"7541:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41776,"nodeType":"ExpressionStatement","src":"7539:3:58"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41762,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41759,"src":"7416:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41763,"name":"storeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41696,"src":"7420:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7416:15:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41779,"initializationExpression":{"assignments":[41759],"declarations":[{"constant":false,"id":41759,"mutability":"mutable","name":"i","nameLocation":"7399:1:58","nodeType":"VariableDeclaration","scope":41779,"src":"7391:9:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41758,"name":"uint256","nodeType":"ElementaryTypeName","src":"7391:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41761,"initialValue":{"id":41760,"name":"inputLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41690,"src":"7403:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7391:23:58"},"nodeType":"ForStatement","src":"7386:189:58"}]}}]},"documentation":{"id":41630,"nodeType":"StructuredDocumentation","src":"5532:78:58","text":"@notice set the next membership\n @param membership - new membership"},"implemented":true,"kind":"function","modifiers":[],"name":"updateMembership","nameLocation":"5624:16:58","parameters":{"id":41634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41633,"mutability":"mutable","name":"membership","nameLocation":"5659:10:58","nodeType":"VariableDeclaration","scope":41783,"src":"5641:28:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership"},"typeName":{"id":41632,"nodeType":"UserDefinedTypeName","pathNode":{"id":41631,"name":"Membership","nameLocations":["5641:10:58"],"nodeType":"IdentifierPath","referencedDeclaration":48701,"src":"5641:10:58"},"referencedDeclaration":48701,"src":"5641:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"5640:30:58"},"returnParameters":{"id":41635,"nodeType":"ParameterList","parameters":[],"src":"5680:0:58"},"scope":42242,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":41824,"nodeType":"FunctionDefinition","src":"7660:387:58","nodes":[],"body":{"id":41823,"nodeType":"Block","src":"7747:300:58","nodes":[],"statements":[{"assignments":[41793],"declarations":[{"constant":false,"id":41793,"mutability":"mutable","name":"len","nameLocation":"7765:3:58","nodeType":"VariableDeclaration","scope":41823,"src":"7757:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41792,"name":"uint256","nodeType":"ElementaryTypeName","src":"7757:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41797,"initialValue":{"expression":{"expression":{"id":41794,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41787,"src":"7771:4:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},"id":41795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7776:10:58","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48698,"src":"7771:15:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":41796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7787:6:58","memberName":"length","nodeType":"MemberAccess","src":"7771:22:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7757:36:58"},{"assignments":[41799],"declarations":[{"constant":false,"id":41799,"mutability":"mutable","name":"totalValidatorsWeight","nameLocation":"7811:21:58","nodeType":"VariableDeclaration","scope":41823,"src":"7803:29:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41798,"name":"uint256","nodeType":"ElementaryTypeName","src":"7803:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41800,"nodeType":"VariableDeclarationStatement","src":"7803:29:58"},{"body":{"id":41819,"nodeType":"Block","src":"7869:134:58","statements":[{"expression":{"id":41813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41807,"name":"totalValidatorsWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41799,"src":"7883:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":41808,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41787,"src":"7908:4:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},"id":41809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7913:10:58","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48698,"src":"7908:15:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":41811,"indexExpression":{"id":41810,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41802,"src":"7924:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7908:18:58","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}},"id":41812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7927:6:58","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"7908:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7883:50:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41814,"nodeType":"ExpressionStatement","src":"7883:50:58"},{"id":41818,"nodeType":"UncheckedBlock","src":"7947:46:58","statements":[{"expression":{"id":41816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7975:3:58","subExpression":{"id":41815,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41802,"src":"7977:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41817,"nodeType":"ExpressionStatement","src":"7975:3:58"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41804,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41802,"src":"7858:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41805,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41793,"src":"7862:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7858:7:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41820,"initializationExpression":{"assignments":[41802],"declarations":[{"constant":false,"id":41802,"mutability":"mutable","name":"i","nameLocation":"7855:1:58","nodeType":"VariableDeclaration","scope":41820,"src":"7847:9:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41801,"name":"uint256","nodeType":"ElementaryTypeName","src":"7847:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41803,"nodeType":"VariableDeclarationStatement","src":"7847:9:58"},"nodeType":"ForStatement","src":"7842:161:58"},{"expression":{"id":41821,"name":"totalValidatorsWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41799,"src":"8019:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":41791,"id":41822,"nodeType":"Return","src":"8012:28:58"}]},"documentation":{"id":41784,"nodeType":"StructuredDocumentation","src":"7597:58:58","text":"@dev - Computes total weight for a specific membership"},"implemented":true,"kind":"function","modifiers":[],"name":"membershipTotalWeight","nameLocation":"7669:21:58","parameters":{"id":41788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41787,"mutability":"mutable","name":"self","nameLocation":"7709:4:58","nodeType":"VariableDeclaration","scope":41824,"src":"7691:22:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership"},"typeName":{"id":41786,"nodeType":"UserDefinedTypeName","pathNode":{"id":41785,"name":"Membership","nameLocations":["7691:10:58"],"nodeType":"IdentifierPath","referencedDeclaration":48701,"src":"7691:10:58"},"referencedDeclaration":48701,"src":"7691:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"7690:24:58"},"returnParameters":{"id":41791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41824,"src":"7738:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41789,"name":"uint256","nodeType":"ElementaryTypeName","src":"7738:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7737:9:58"},"scope":42242,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41892,"nodeType":"FunctionDefinition","src":"8126:561:58","nodes":[],"body":{"id":41891,"nodeType":"Block","src":"8226:461:58","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":41840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41836,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41828,"src":"8240:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},"id":41837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8244:19:58","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48700,"src":"8240:23:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":41838,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41831,"src":"8267:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},"id":41839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8271:19:58","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48700,"src":"8267:23:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8240:50:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41844,"nodeType":"IfStatement","src":"8236:93:58","trueBody":{"id":41843,"nodeType":"Block","src":"8292:37:58","statements":[{"expression":{"hexValue":"66616c7365","id":41841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8313:5:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":41835,"id":41842,"nodeType":"Return","src":"8306:12:58"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":41846,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41828,"src":"8364:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}],"id":41845,"name":"membershipTotalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41824,"src":"8342:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Membership_$48701_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct Membership memory) pure returns (uint256)"}},"id":41847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8342:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":41849,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41831,"src":"8394:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}],"id":41848,"name":"membershipTotalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41824,"src":"8372:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Membership_$48701_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct Membership memory) pure returns (uint256)"}},"id":41850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8372:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8342:56:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41855,"nodeType":"IfStatement","src":"8338:99:58","trueBody":{"id":41854,"nodeType":"Block","src":"8400:37:58","statements":[{"expression":{"hexValue":"66616c7365","id":41852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8421:5:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":41835,"id":41853,"nodeType":"Return","src":"8414:12:58"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":41856,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41828,"src":"8450:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},"id":41857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8454:10:58","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48698,"src":"8450:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":41858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8465:6:58","memberName":"length","nodeType":"MemberAccess","src":"8450:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":41859,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41831,"src":"8475:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},"id":41860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8479:10:58","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48698,"src":"8475:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":41861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8490:6:58","memberName":"length","nodeType":"MemberAccess","src":"8475:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8450:46:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41866,"nodeType":"IfStatement","src":"8446:89:58","trueBody":{"id":41865,"nodeType":"Block","src":"8498:37:58","statements":[{"expression":{"hexValue":"66616c7365","id":41863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8519:5:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":41835,"id":41864,"nodeType":"Return","src":"8512:12:58"}]}},{"assignments":[41868],"declarations":[{"constant":false,"id":41868,"mutability":"mutable","name":"h1","nameLocation":"8552:2:58","nodeType":"VariableDeclaration","scope":41891,"src":"8544:10:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41867,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8544:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41876,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":41872,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41828,"src":"8578:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},"id":41873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8582:10:58","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48698,"src":"8578:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"expression":{"id":41870,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8567:3:58","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8571:6:58","memberName":"encode","nodeType":"MemberAccess","src":"8567:10:58","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":41874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8567:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41869,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8557:9:58","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":41875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8557:37:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8544:50:58"},{"assignments":[41878],"declarations":[{"constant":false,"id":41878,"mutability":"mutable","name":"h2","nameLocation":"8612:2:58","nodeType":"VariableDeclaration","scope":41891,"src":"8604:10:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41877,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8604:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41886,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":41882,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41831,"src":"8638:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership memory"}},"id":41883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8642:10:58","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48698,"src":"8638:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"expression":{"id":41880,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8627:3:58","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":41881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8631:6:58","memberName":"encode","nodeType":"MemberAccess","src":"8627:10:58","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":41884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8627:26:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":41879,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8617:9:58","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":41885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8617:37:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8604:50:58"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":41889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41887,"name":"h1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41868,"src":"8672:2:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":41888,"name":"h2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41878,"src":"8678:2:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8672:8:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":41835,"id":41890,"nodeType":"Return","src":"8665:15:58"}]},"documentation":{"id":41825,"nodeType":"StructuredDocumentation","src":"8053:68:58","text":"@dev compares two memberships and returns true if they are equal"},"implemented":true,"kind":"function","modifiers":[],"name":"membershipEqual","nameLocation":"8135:15:58","parameters":{"id":41832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41828,"mutability":"mutable","name":"mb1","nameLocation":"8169:3:58","nodeType":"VariableDeclaration","scope":41892,"src":"8151:21:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership"},"typeName":{"id":41827,"nodeType":"UserDefinedTypeName","pathNode":{"id":41826,"name":"Membership","nameLocations":["8151:10:58"],"nodeType":"IdentifierPath","referencedDeclaration":48701,"src":"8151:10:58"},"referencedDeclaration":48701,"src":"8151:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":41831,"mutability":"mutable","name":"mb2","nameLocation":"8192:3:58","nodeType":"VariableDeclaration","scope":41892,"src":"8174:21:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_memory_ptr","typeString":"struct Membership"},"typeName":{"id":41830,"nodeType":"UserDefinedTypeName","pathNode":{"id":41829,"name":"Membership","nameLocations":["8174:10:58"],"nodeType":"IdentifierPath","referencedDeclaration":48701,"src":"8174:10:58"},"referencedDeclaration":48701,"src":"8174:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"8150:46:58"},"returnParameters":{"id":41835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41834,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41892,"src":"8220:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41833,"name":"bool","nodeType":"ElementaryTypeName","src":"8220:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8219:6:58"},"scope":42242,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41971,"nodeType":"FunctionDefinition","src":"8891:689:58","nodes":[],"body":{"id":41970,"nodeType":"Block","src":"8956:624:58","nodes":[],"statements":[{"assignments":[41901],"declarations":[{"constant":false,"id":41901,"mutability":"mutable","name":"s","nameLocation":"8994:1:58","nodeType":"VariableDeclaration","scope":41970,"src":"8966:29:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41900,"nodeType":"UserDefinedTypeName","pathNode":{"id":41899,"name":"GatewayActorStorage","nameLocations":["8966:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"8966:19:58"},"referencedDeclaration":42369,"src":"8966:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41905,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41902,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"8998:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$42380_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9021:10:58","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":42379,"src":"8998:33:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$42369_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8998:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8966:67:58"},{"assignments":[41908],"declarations":[{"constant":false,"id":41908,"mutability":"mutable","name":"subnetId","nameLocation":"9059:8:58","nodeType":"VariableDeclaration","scope":41970,"src":"9043:24:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":41907,"nodeType":"UserDefinedTypeName","pathNode":{"id":41906,"name":"SubnetID","nameLocations":["9043:8:58"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"9043:8:58"},"referencedDeclaration":48557,"src":"9043:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":41917,"initialValue":{"arguments":[{"expression":{"id":41914,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41901,"src":"9108:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9110:11:58","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42322,"src":"9108:13:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"expression":{"expression":{"id":41909,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41896,"src":"9070:12:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":41910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9083:7:58","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"9070:20:58","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":41911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9091:2:58","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":48458,"src":"9070:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_memory_ptr","typeString":"struct IPCAddress memory"}},"id":41912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9094:8:58","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":48683,"src":"9070:32:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":41913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9103:4:58","memberName":"down","nodeType":"MemberAccess","referencedDeclaration":46855,"src":"9070:37:58","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":41916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9070:52:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"9043:79:58"},{"assignments":[41919,41922],"declarations":[{"constant":false,"id":41919,"mutability":"mutable","name":"registered","nameLocation":"9139:10:58","nodeType":"VariableDeclaration","scope":41970,"src":"9134:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41918,"name":"bool","nodeType":"ElementaryTypeName","src":"9134:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41922,"mutability":"mutable","name":"subnet","nameLocation":"9166:6:58","nodeType":"VariableDeclaration","scope":41970,"src":"9151:21:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":41921,"nodeType":"UserDefinedTypeName","pathNode":{"id":41920,"name":"Subnet","nameLocations":["9151:6:58"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"9151:6:58"},"referencedDeclaration":48574,"src":"9151:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":41926,"initialValue":{"arguments":[{"id":41924,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41908,"src":"9186:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"id":41923,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[42180,42217],"referencedDeclaration":42217,"src":"9176:9:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":41925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9176:19:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"9133:62:58"},{"condition":{"id":41928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9210:11:58","subExpression":{"id":41927,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41919,"src":"9211:10:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41933,"nodeType":"IfStatement","src":"9206:70:58","trueBody":{"id":41932,"nodeType":"Block","src":"9223:53:58","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":41929,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37050,"src":"9244:19:58","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":41930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9244:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41931,"nodeType":"RevertStatement","src":"9237:28:58"}]}},{"assignments":[41935],"declarations":[{"constant":false,"id":41935,"mutability":"mutable","name":"topDownNonce","nameLocation":"9293:12:58","nodeType":"VariableDeclaration","scope":41970,"src":"9286:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":41934,"name":"uint64","nodeType":"ElementaryTypeName","src":"9286:6:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":41938,"initialValue":{"expression":{"id":41936,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41922,"src":"9308:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":41937,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9315:12:58","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":48565,"src":"9308:19:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"9286:41:58"},{"expression":{"id":41945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":41939,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41896,"src":"9338:12:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":41942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9351:7:58","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"9338:20:58","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":41943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9359:5:58","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":48462,"src":"9338:26:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41944,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41935,"src":"9367:12:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9338:41:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":41946,"nodeType":"ExpressionStatement","src":"9338:41:58"},{"expression":{"id":41953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":41947,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41922,"src":"9389:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":41949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9396:12:58","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":48565,"src":"9389:19:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":41952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41950,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41935,"src":"9411:12:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":41951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9426:1:58","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9411:16:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9389:38:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":41954,"nodeType":"ExpressionStatement","src":"9389:38:58"},{"expression":{"id":41961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":41955,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41922,"src":"9437:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":41957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9444:10:58","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":48563,"src":"9437:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"expression":{"id":41958,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41896,"src":"9458:12:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":41959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9471:7:58","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"9458:20:58","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":41960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9479:5:58","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48460,"src":"9458:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9437:47:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41962,"nodeType":"ExpressionStatement","src":"9437:47:58"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41964,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41908,"src":"9527:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":41965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9536:10:58","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":46315,"src":"9527:19:58","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":41966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9527:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":41967,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41896,"src":"9559:12:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}],"id":41963,"name":"NewTopDownMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41275,"src":"9500:17:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_struct$_CrossMsg_$48452_memory_ptr_$returns$__$","typeString":"function (address,struct CrossMsg memory)"}},"id":41968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9519:6:58","9550:7:58"],"names":["subnet","message"],"nodeType":"FunctionCall","src":"9500:73:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41969,"nodeType":"EmitStatement","src":"9495:78:58"}]},"documentation":{"id":41893,"nodeType":"StructuredDocumentation","src":"8693:193:58","text":"@notice commit topdown messages for their execution in the subnet. Adds the message to the subnet struct for future execution\n @param crossMessage - the cross message to be committed"},"implemented":true,"kind":"function","modifiers":[],"name":"commitTopDownMsg","nameLocation":"8900:16:58","parameters":{"id":41897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41896,"mutability":"mutable","name":"crossMessage","nameLocation":"8933:12:58","nodeType":"VariableDeclaration","scope":41971,"src":"8917:28:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":41895,"nodeType":"UserDefinedTypeName","pathNode":{"id":41894,"name":"CrossMsg","nameLocations":["8917:8:58"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"8917:8:58"},"referencedDeclaration":48452,"src":"8917:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"8916:30:58"},"returnParameters":{"id":41898,"nodeType":"ParameterList","parameters":[],"src":"8956:0:58"},"scope":42242,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42137,"nodeType":"FunctionDefinition","src":"9731:2248:58","nodes":[],"body":{"id":42136,"nodeType":"Block","src":"9797:2182:58","nodes":[],"statements":[{"assignments":[41980],"declarations":[{"constant":false,"id":41980,"mutability":"mutable","name":"s","nameLocation":"9835:1:58","nodeType":"VariableDeclaration","scope":42136,"src":"9807:29:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41979,"nodeType":"UserDefinedTypeName","pathNode":{"id":41978,"name":"GatewayActorStorage","nameLocations":["9807:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"9807:19:58"},"referencedDeclaration":42369,"src":"9807:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41984,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41981,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"9839:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$42380_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9862:10:58","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":42379,"src":"9839:33:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$42369_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9839:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9807:67:58"},{"assignments":[41986],"declarations":[{"constant":false,"id":41986,"mutability":"mutable","name":"epoch","nameLocation":"9892:5:58","nodeType":"VariableDeclaration","scope":42136,"src":"9884:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41985,"name":"uint256","nodeType":"ElementaryTypeName","src":"9884:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41993,"initialValue":{"arguments":[{"expression":{"id":41988,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9913:5:58","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":41989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9919:6:58","memberName":"number","nodeType":"MemberAccess","src":"9913:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":41990,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41980,"src":"9927:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9929:22:58","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":42346,"src":"9927:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":41987,"name":"getNextEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42241,"src":"9900:12:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":41992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9900:52:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9884:68:58"},{"expression":{"id":42001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":41994,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41975,"src":"10003:12:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":41997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10016:7:58","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":48449,"src":"10003:20:58","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_memory_ptr","typeString":"struct StorableMsg memory"}},"id":41998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10024:5:58","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":48462,"src":"10003:26:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41999,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41980,"src":"10032:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10034:13:58","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":42334,"src":"10032:15:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10003:44:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42002,"nodeType":"ExpressionStatement","src":"10003:44:58"},{"expression":{"id":42007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42003,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41980,"src":"10057:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10059:13:58","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":42334,"src":"10057:15:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":42006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10076:1:58","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10057:20:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42008,"nodeType":"ExpressionStatement","src":"10057:20:58"},{"assignments":[42010,42013],"declarations":[{"constant":false,"id":42010,"mutability":"mutable","name":"exists","nameLocation":"10139:6:58","nodeType":"VariableDeclaration","scope":42136,"src":"10134:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42009,"name":"bool","nodeType":"ElementaryTypeName","src":"10134:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42013,"mutability":"mutable","name":"batch","nameLocation":"10172:5:58","nodeType":"VariableDeclaration","scope":42136,"src":"10147:30:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":42012,"nodeType":"UserDefinedTypeName","pathNode":{"id":42011,"name":"BottomUpMsgBatch","nameLocations":["10147:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"10147:16:58"},"referencedDeclaration":48423,"src":"10147:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"id":42018,"initialValue":{"arguments":[{"id":42016,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41986,"src":"10212:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42014,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"10181:10:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":42015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10192:19:58","memberName":"getBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":41393,"src":"10181:30:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpMsgBatch_$48423_storage_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpMsgBatch storage pointer)"}},"id":42017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10181:37:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpMsgBatch_$48423_storage_ptr_$","typeString":"tuple(bool,struct BottomUpMsgBatch storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"10133:85:58"},{"condition":{"id":42020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10232:7:58","subExpression":{"id":42019,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42010,"src":"10233:6:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":42134,"nodeType":"Block","src":"10449:1524:58","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42043,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42013,"src":"10607:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10613:4:58","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"10607:10:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10618:6:58","memberName":"length","nodeType":"MemberAccess","src":"10607:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":42046,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41980,"src":"10628:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10630:23:58","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":42349,"src":"10628:25:58","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10607:46:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":42132,"nodeType":"Block","src":"11760:203:58","statements":[{"expression":{"arguments":[{"id":42129,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41975,"src":"11935:12:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":42124,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42013,"src":"11919:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11925:4:58","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"11919:10:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11930:4:58","memberName":"push","nodeType":"MemberAccess","src":"11919:15:58","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$48452_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":42130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11919:29:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42131,"nodeType":"ExpressionStatement","src":"11919:29:58"}]},"id":42133,"nodeType":"IfStatement","src":"10603:1360:58","trueBody":{"id":42123,"nodeType":"Block","src":"10654:1100:58","statements":[{"assignments":[42050],"declarations":[{"constant":false,"id":42050,"mutability":"mutable","name":"epochCut","nameLocation":"10750:8:58","nodeType":"VariableDeclaration","scope":42123,"src":"10742:16:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42049,"name":"uint256","nodeType":"ElementaryTypeName","src":"10742:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42053,"initialValue":{"expression":{"id":42051,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10761:5:58","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":42052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10767:6:58","memberName":"number","nodeType":"MemberAccess","src":"10761:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10742:31:58"},{"assignments":[42056],"declarations":[{"constant":false,"id":42056,"mutability":"mutable","name":"newBatch","nameLocation":"10815:8:58","nodeType":"VariableDeclaration","scope":42123,"src":"10791:32:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":42055,"nodeType":"UserDefinedTypeName","pathNode":{"id":42054,"name":"BottomUpMsgBatch","nameLocations":["10791:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"10791:16:58"},"referencedDeclaration":48423,"src":"10791:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"id":42070,"initialValue":{"arguments":[{"expression":{"id":42058,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41980,"src":"10875:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10877:11:58","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42322,"src":"10875:13:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},{"id":42060,"name":"epochCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42050,"src":"10923:8:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"expression":{"id":42065,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42013,"src":"10974:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10980:4:58","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"10974:10:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10985:6:58","memberName":"length","nodeType":"MemberAccess","src":"10974:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10959:14:58","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":42062,"nodeType":"UserDefinedTypeName","pathNode":{"id":42061,"name":"CrossMsg","nameLocations":["10963:8:58"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"10963:8:58"},"referencedDeclaration":48452,"src":"10963:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":42063,"nodeType":"ArrayTypeName","src":"10963:10:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":42068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10959:33:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"id":42057,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48423,"src":"10826:16:58","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpMsgBatch_$48423_storage_ptr_$","typeString":"type(struct BottomUpMsgBatch storage pointer)"}},"id":42069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10865:8:58","10910:11:58","10953:4:58"],"names":["subnetID","blockHeight","msgs"],"nodeType":"FunctionCall","src":"10826:185:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"nodeType":"VariableDeclarationStatement","src":"10791:220:58"},{"assignments":[42072],"declarations":[{"constant":false,"id":42072,"mutability":"mutable","name":"msgLenght","nameLocation":"11037:9:58","nodeType":"VariableDeclaration","scope":42123,"src":"11029:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42071,"name":"uint256","nodeType":"ElementaryTypeName","src":"11029:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42076,"initialValue":{"expression":{"expression":{"id":42073,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42013,"src":"11049:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11055:4:58","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"11049:10:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11060:6:58","memberName":"length","nodeType":"MemberAccess","src":"11049:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11029:37:58"},{"body":{"id":42098,"nodeType":"Block","src":"11116:156:58","statements":[{"expression":{"id":42092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":42083,"name":"newBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42056,"src":"11138:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":42086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11147:4:58","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"11138:13:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42087,"indexExpression":{"id":42085,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42078,"src":"11152:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11138:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":42088,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42013,"src":"11157:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11163:4:58","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"11157:10:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42091,"indexExpression":{"id":42090,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42078,"src":"11168:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11157:13:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage","typeString":"struct CrossMsg storage ref"}},"src":"11138:32:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42093,"nodeType":"ExpressionStatement","src":"11138:32:58"},{"id":42097,"nodeType":"UncheckedBlock","src":"11192:62:58","statements":[{"expression":{"id":42095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11228:3:58","subExpression":{"id":42094,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42078,"src":"11230:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42096,"nodeType":"ExpressionStatement","src":"11228:3:58"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42080,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42078,"src":"11100:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42081,"name":"msgLenght","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42072,"src":"11104:9:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11100:13:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42099,"initializationExpression":{"assignments":[42078],"declarations":[{"constant":false,"id":42078,"mutability":"mutable","name":"i","nameLocation":"11097:1:58","nodeType":"VariableDeclaration","scope":42099,"src":"11089:9:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42077,"name":"uint256","nodeType":"ElementaryTypeName","src":"11089:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42079,"nodeType":"VariableDeclarationStatement","src":"11089:9:58"},"nodeType":"ForStatement","src":"11084:188:58"},{"eventCall":{"arguments":[{"id":42101,"name":"epochCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42050,"src":"11391:8:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42102,"name":"newBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42056,"src":"11400:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}],"id":42100,"name":"NewBottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41283,"src":"11371:19:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_BottomUpMsgBatch_$48423_memory_ptr_$returns$__$","typeString":"function (uint256,struct BottomUpMsgBatch memory)"}},"id":42103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11371:38:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42104,"nodeType":"EmitStatement","src":"11366:43:58"},{"expression":{"id":42107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11538:17:58","subExpression":{"expression":{"id":42105,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42013,"src":"11545:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11551:4:58","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"11545:10:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42108,"nodeType":"ExpressionStatement","src":"11538:17:58"},{"expression":{"arguments":[{"id":42114,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41975,"src":"11665:12:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":42109,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42013,"src":"11649:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11655:4:58","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"11649:10:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11660:4:58","memberName":"push","nodeType":"MemberAccess","src":"11649:15:58","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$48452_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":42115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11649:29:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42116,"nodeType":"ExpressionStatement","src":"11649:29:58"},{"expression":{"arguments":[{"id":42120,"name":"newBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42056,"src":"11730:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}],"expression":{"id":42117,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42242,"src":"11697:10:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42242_$","typeString":"type(library LibGateway)"}},"id":42119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11708:21:58","memberName":"storeBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":41532,"src":"11697:32:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BottomUpMsgBatch_$48423_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory)"}},"id":42121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11697:42:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42122,"nodeType":"ExpressionStatement","src":"11697:42:58"}]}}]},"id":42135,"nodeType":"IfStatement","src":"10228:1745:58","trueBody":{"id":42042,"nodeType":"Block","src":"10241:202:58","statements":[{"expression":{"id":42026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42021,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42013,"src":"10255:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10261:8:58","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":48414,"src":"10255:14:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42024,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41980,"src":"10272:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10274:11:58","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42322,"src":"10272:13:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"src":"10255:30:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"id":42027,"nodeType":"ExpressionStatement","src":"10255:30:58"},{"expression":{"id":42032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42028,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42013,"src":"10299:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10305:11:58","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"10299:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42031,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41986,"src":"10319:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10299:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42033,"nodeType":"ExpressionStatement","src":"10299:25:58"},{"expression":{"arguments":[{"id":42039,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41975,"src":"10419:12:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":42034,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42013,"src":"10403:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10409:4:58","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"10403:10:58","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10414:4:58","memberName":"push","nodeType":"MemberAccess","src":"10403:15:58","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$48452_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":42040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10403:29:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42041,"nodeType":"ExpressionStatement","src":"10403:29:58"}]}}]},"documentation":{"id":41972,"nodeType":"StructuredDocumentation","src":"9586:140:58","text":"@notice Commits a new cross-net message to a message batch for execution\n @param crossMessage - the cross message to be committed"},"implemented":true,"kind":"function","modifiers":[],"name":"commitBottomUpMsg","nameLocation":"9740:17:58","parameters":{"id":41976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41975,"mutability":"mutable","name":"crossMessage","nameLocation":"9774:12:58","nodeType":"VariableDeclaration","scope":42137,"src":"9758:28:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":41974,"nodeType":"UserDefinedTypeName","pathNode":{"id":41973,"name":"CrossMsg","nameLocations":["9758:8:58"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"9758:8:58"},"referencedDeclaration":48452,"src":"9758:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"9757:30:58"},"returnParameters":{"id":41977,"nodeType":"ParameterList","parameters":[],"src":"9797:0:58"},"scope":42242,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42180,"nodeType":"FunctionDefinition","src":"12194:372:58","nodes":[],"body":{"id":42179,"nodeType":"Block","src":"12286:280:58","nodes":[],"statements":[{"assignments":[42150],"declarations":[{"constant":false,"id":42150,"mutability":"mutable","name":"s","nameLocation":"12324:1:58","nodeType":"VariableDeclaration","scope":42179,"src":"12296:29:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42149,"nodeType":"UserDefinedTypeName","pathNode":{"id":42148,"name":"GatewayActorStorage","nameLocations":["12296:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"12296:19:58"},"referencedDeclaration":42369,"src":"12296:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42154,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42151,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"12328:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$42380_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12351:10:58","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":42379,"src":"12328:33:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$42369_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12328:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"12296:67:58"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":42160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42155,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42140,"src":"12377:5:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":42158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12394:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":42157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12386:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42156,"name":"address","nodeType":"ElementaryTypeName","src":"12386:7:58","typeDescriptions":{}}},"id":42159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12386:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12377:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42165,"nodeType":"IfStatement","src":"12373:78:58","trueBody":{"id":42164,"nodeType":"Block","src":"12398:53:58","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42161,"name":"InvalidActorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36970,"src":"12419:19:58","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12419:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42163,"nodeType":"RevertStatement","src":"12412:28:58"}]}},{"assignments":[42168],"declarations":[{"constant":false,"id":42168,"mutability":"mutable","name":"subnetId","nameLocation":"12476:8:58","nodeType":"VariableDeclaration","scope":42179,"src":"12460:24:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42167,"nodeType":"UserDefinedTypeName","pathNode":{"id":42166,"name":"SubnetID","nameLocations":["12460:8:58"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"12460:8:58"},"referencedDeclaration":48557,"src":"12460:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":42174,"initialValue":{"arguments":[{"id":42172,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42140,"src":"12516:5:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":42169,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42150,"src":"12487:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12489:11:58","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":42322,"src":"12487:13:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"id":42171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12501:14:58","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"12487:28:58","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":42173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12487:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"12460:62:58"},{"expression":{"arguments":[{"id":42176,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42168,"src":"12550:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"id":42175,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[42180,42217],"referencedDeclaration":42217,"src":"12540:9:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":42177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12540:19:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$48574_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"functionReturnParameters":42147,"id":42178,"nodeType":"Return","src":"12533:26:58"}]},"documentation":{"id":42138,"nodeType":"StructuredDocumentation","src":"11985:204:58","text":"@notice returns the subnet created by a validator\n @param actor the validator that created the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct"},"implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"12203:9:58","parameters":{"id":42141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42140,"mutability":"mutable","name":"actor","nameLocation":"12221:5:58","nodeType":"VariableDeclaration","scope":42180,"src":"12213:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42139,"name":"address","nodeType":"ElementaryTypeName","src":"12213:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12212:15:58"},"returnParameters":{"id":42147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42143,"mutability":"mutable","name":"found","nameLocation":"12256:5:58","nodeType":"VariableDeclaration","scope":42180,"src":"12251:10:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42142,"name":"bool","nodeType":"ElementaryTypeName","src":"12251:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42146,"mutability":"mutable","name":"subnet","nameLocation":"12278:6:58","nodeType":"VariableDeclaration","scope":42180,"src":"12263:21:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":42145,"nodeType":"UserDefinedTypeName","pathNode":{"id":42144,"name":"Subnet","nameLocations":["12263:6:58"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"12263:6:58"},"referencedDeclaration":48574,"src":"12263:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"12250:35:58"},"scope":42242,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":42217,"nodeType":"FunctionDefinition","src":"12762:272:58","nodes":[],"body":{"id":42216,"nodeType":"Block","src":"12865:169:58","nodes":[],"statements":[{"assignments":[42194],"declarations":[{"constant":false,"id":42194,"mutability":"mutable","name":"s","nameLocation":"12903:1:58","nodeType":"VariableDeclaration","scope":42216,"src":"12875:29:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42193,"nodeType":"UserDefinedTypeName","pathNode":{"id":42192,"name":"GatewayActorStorage","nameLocations":["12875:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"12875:19:58"},"referencedDeclaration":42369,"src":"12875:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42198,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42195,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42380,"src":"12907:22:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$42380_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12930:10:58","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":42379,"src":"12907:33:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$42369_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12907:35:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"12875:67:58"},{"expression":{"id":42206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42199,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42190,"src":"12952:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":42200,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42194,"src":"12961:1:58","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12963:7:58","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42271,"src":"12961:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$48574_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":42205,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42202,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42184,"src":"12971:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":42203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12980:6:58","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"12971:15:58","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":42204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12971:17:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12961:28:58","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage","typeString":"struct Subnet storage ref"}},"src":"12952:37:58","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42207,"nodeType":"ExpressionStatement","src":"12952:37:58"},{"expression":{"id":42214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42208,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42187,"src":"12999:5:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13007:20:58","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":42209,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42190,"src":"13008:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42210,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13015:2:58","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":48573,"src":"13008:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"id":42211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13018:7:58","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":46875,"src":"13008:17:58","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":42212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:19:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12999:28:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42215,"nodeType":"ExpressionStatement","src":"12999:28:58"}]},"documentation":{"id":42181,"nodeType":"StructuredDocumentation","src":"12572:185:58","text":"@notice returns the subnet with the given id\n @param subnetId the id of the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct"},"implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"12771:9:58","parameters":{"id":42185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42184,"mutability":"mutable","name":"subnetId","nameLocation":"12797:8:58","nodeType":"VariableDeclaration","scope":42217,"src":"12781:24:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42183,"nodeType":"UserDefinedTypeName","pathNode":{"id":42182,"name":"SubnetID","nameLocations":["12781:8:58"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"12781:8:58"},"referencedDeclaration":48557,"src":"12781:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"12780:26:58"},"returnParameters":{"id":42191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42187,"mutability":"mutable","name":"found","nameLocation":"12835:5:58","nodeType":"VariableDeclaration","scope":42217,"src":"12830:10:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42186,"name":"bool","nodeType":"ElementaryTypeName","src":"12830:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42190,"mutability":"mutable","name":"subnet","nameLocation":"12857:6:58","nodeType":"VariableDeclaration","scope":42217,"src":"12842:21:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":42189,"nodeType":"UserDefinedTypeName","pathNode":{"id":42188,"name":"Subnet","nameLocations":["12842:6:58"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"12842:6:58"},"referencedDeclaration":48574,"src":"12842:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"12829:35:58"},"scope":42242,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":42241,"nodeType":"FunctionDefinition","src":"13214:175:58","nodes":[],"body":{"id":42240,"nodeType":"Block","src":"13310:79:58","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":42229,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42220,"src":"13336:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13329:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":42227,"name":"uint64","nodeType":"ElementaryTypeName","src":"13329:6:58","typeDescriptions":{}}},"id":42230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13329:19:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":42231,"name":"checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42222,"src":"13351:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13329:33:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":42233,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13328:35:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":42234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13366:1:58","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13328:39:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":42236,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13327:41:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":42237,"name":"checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42222,"src":"13371:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13327:55:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":42226,"id":42239,"nodeType":"Return","src":"13320:62:58"}]},"documentation":{"id":42218,"nodeType":"StructuredDocumentation","src":"13040:169:58","text":"@notice method that gives the epoch for a given block number and checkpoint period\n @return epoch - the epoch for the given block number and checkpoint period"},"implemented":true,"kind":"function","modifiers":[],"name":"getNextEpoch","nameLocation":"13223:12:58","parameters":{"id":42223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42220,"mutability":"mutable","name":"blockNumber","nameLocation":"13244:11:58","nodeType":"VariableDeclaration","scope":42241,"src":"13236:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42219,"name":"uint256","nodeType":"ElementaryTypeName","src":"13236:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42222,"mutability":"mutable","name":"checkPeriod","nameLocation":"13265:11:58","nodeType":"VariableDeclaration","scope":42241,"src":"13257:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42221,"name":"uint256","nodeType":"ElementaryTypeName","src":"13257:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13235:42:58"},"returnParameters":{"id":42226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42225,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42241,"src":"13301:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42224,"name":"uint256","nodeType":"ElementaryTypeName","src":"13301:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13300:9:58"},"scope":42242,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGateway","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[42242],"name":"LibGateway","nameLocation":"657:10:58","scope":42243,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":58} \ No newline at end of file +{"abi":[{"type":"event","name":"MembershipUpdated","inputs":[{"name":"","type":"tuple","indexed":false,"internalType":"struct Membership","components":[{"name":"validators","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"anonymous":false},{"type":"event","name":"NewBottomUpMsgBatch","inputs":[{"name":"epoch","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"batch","type":"tuple","indexed":false,"internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]}],"anonymous":false},{"type":"event","name":"NewTopDownMessage","inputs":[{"name":"subnet","type":"address","indexed":true,"internalType":"address"},{"name":"message","type":"tuple","indexed":false,"internalType":"struct CrossMsg","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220eaae80ed3eb90d5c6bffe222fb115c9c48ad94a50b3e12be6a3172100a58c3cb64736f6c63430008130033","sourceMap":"1029:16632:63:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220eaae80ed3eb90d5c6bffe222fb115c9c48ad94a50b3e12be6a3172100a58c3cb64736f6c63430008130033","sourceMap":"1029:16632:63:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"validators\",\"type\":\"tuple[]\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct Membership\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"MembershipUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"}],\"name\":\"NewBottomUpMsgBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"indexed\":false,\"internalType\":\"struct CrossMsg\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"NewTopDownMessage\",\"type\":\"event\"}],\"devdoc\":{\"events\":{\"NewBottomUpMsgBatch(uint256,((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))\":{\"details\":\"event emitted when there is a new bottom-up message batch to be signed.\"},\"NewTopDownMessage(address,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool))\":{\"details\":\"subnet refers to the next \\\"down\\\" subnet that the `CrossMsg.message.to` should be forwarded to.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibGateway.sol\":\"LibGateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Membership","name":"","type":"tuple","components":[{"internalType":"struct Validator[]","name":"validators","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}],"indexed":false}],"type":"event","name":"MembershipUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":true},{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"indexed":false}],"type":"event","name":"NewBottomUpMsgBatch","anonymous":false},{"inputs":[{"internalType":"address","name":"subnet","type":"address","indexed":true},{"internalType":"struct CrossMsg","name":"message","type":"tuple","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}],"indexed":false}],"type":"event","name":"NewTopDownMessage","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibGateway.sol":"LibGateway"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibGateway.sol","id":42945,"exportedSymbols":{"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"BottomUpMsgBatch":[49945],"CrossMsg":[49974],"CrossMsgHelper":[40781],"GatewayActorStorage":[43068],"IPCMsgType":[37364],"InvalidActorAddress":[37402],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgNonce":[37424],"LibGateway":[42944],"LibGatewayActorStorage":[43079],"MaxMsgsPerBatchExceeded":[37382],"Membership":[50218],"NotRegisteredSubnet":[37482],"OldConfigurationNumber":[37492],"ParentFinality":[49918],"ParentFinalityAlreadyCommitted":[37498],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorGetterFacet":[50887],"SubnetID":[50077],"SubnetIDHelper":[48072],"SupplySource":[50226],"SupplySourceHelper":[48398]},"nodeType":"SourceUnit","src":"46:17616:63","nodes":[{"id":41684,"nodeType":"PragmaDirective","src":"46:23:63","nodes":[],"literals":["solidity","0.8",".19"]},{"id":41686,"nodeType":"ImportDirective","src":"71:51:63","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":37365,"symbolAliases":[{"foreign":{"id":41685,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"79:10:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41689,"nodeType":"ImportDirective","src":"123:94:63","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":41687,"name":"GatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43068,"src":"131:19:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41688,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"152:22:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41693,"nodeType":"ImportDirective","src":"218:69:63","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":41690,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"226:8:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41691,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"236:6:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41692,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"244:12:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41695,"nodeType":"ImportDirective","src":"288:76:63","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":41694,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"296:22:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41702,"nodeType":"ImportDirective","src":"365:134:63","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":41696,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"373:8:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41697,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"383:11:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41698,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"396:16:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41699,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"414:16:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41700,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"432:18:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41701,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"452:14:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41704,"nodeType":"ImportDirective","src":"500:49:63","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":41703,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"508:10:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41713,"nodeType":"ImportDirective","src":"550:231:63","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":41705,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"558:23:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41706,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"583:19:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41707,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"604:20:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41708,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"626:24:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41709,"name":"OldConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37492,"src":"652:22:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41710,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"676:19:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41711,"name":"InvalidActorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37402,"src":"697:19:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":41712,"name":"ParentFinalityAlreadyCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37498,"src":"718:30:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41715,"nodeType":"ImportDirective","src":"782:57:63","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":41714,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"790:14:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41717,"nodeType":"ImportDirective","src":"840:57:63","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":41716,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"848:14:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41719,"nodeType":"ImportDirective","src":"898:65:63","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":41718,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"906:18:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":41721,"nodeType":"ImportDirective","src":"964:63:63","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":42945,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":41720,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"972:17:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42944,"nodeType":"ContractDefinition","src":"1029:16632:63","nodes":[{"id":41725,"nodeType":"UsingForDirective","src":"1054:34:63","nodes":[],"global":false,"libraryName":{"id":41722,"name":"SubnetIDHelper","nameLocations":["1060:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"1060:14:63"},"typeName":{"id":41724,"nodeType":"UserDefinedTypeName","pathNode":{"id":41723,"name":"SubnetID","nameLocations":["1079:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1079:8:63"},"referencedDeclaration":50077,"src":"1079:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":41729,"nodeType":"UsingForDirective","src":"1093:34:63","nodes":[],"global":false,"libraryName":{"id":41726,"name":"CrossMsgHelper","nameLocations":["1099:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"1099:14:63"},"typeName":{"id":41728,"nodeType":"UserDefinedTypeName","pathNode":{"id":41727,"name":"CrossMsg","nameLocations":["1118:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1118:8:63"},"referencedDeclaration":49974,"src":"1118:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":41733,"nodeType":"UsingForDirective","src":"1132:42:63","nodes":[],"global":false,"libraryName":{"id":41730,"name":"SupplySourceHelper","nameLocations":["1138:18:63"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"1138:18:63"},"typeName":{"id":41732,"nodeType":"UserDefinedTypeName","pathNode":{"id":41731,"name":"SupplySource","nameLocations":["1161:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"1161:12:63"},"referencedDeclaration":50226,"src":"1161:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":41737,"nodeType":"UsingForDirective","src":"1179:40:63","nodes":[],"global":false,"libraryName":{"id":41734,"name":"StorableMsgHelper","nameLocations":["1185:17:63"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"1185:17:63"},"typeName":{"id":41736,"nodeType":"UserDefinedTypeName","pathNode":{"id":41735,"name":"StorableMsg","nameLocations":["1207:11:63"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"1207:11:63"},"referencedDeclaration":49991,"src":"1207:11:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":41742,"nodeType":"EventDefinition","src":"1225:36:63","nodes":[],"anonymous":false,"eventSelector":"7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc7481","name":"MembershipUpdated","nameLocation":"1231:17:63","parameters":{"id":41741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41740,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41742,"src":"1249:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":41739,"nodeType":"UserDefinedTypeName","pathNode":{"id":41738,"name":"Membership","nameLocations":["1249:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"1249:10:63"},"referencedDeclaration":50218,"src":"1249:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"1248:12:63"}},{"id":41750,"nodeType":"EventDefinition","src":"1374:66:63","nodes":[],"anonymous":false,"documentation":{"id":41743,"nodeType":"StructuredDocumentation","src":"1266:103:63","text":"@dev subnet refers to the next \"down\" subnet that the `CrossMsg.message.to` should be forwarded to."},"eventSelector":"392fae29c67f3b47710cb5b84d7a6fd08e0155a4f22565971f7159f12c6f7096","name":"NewTopDownMessage","nameLocation":"1380:17:63","parameters":{"id":41749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41745,"indexed":true,"mutability":"mutable","name":"subnet","nameLocation":"1414:6:63","nodeType":"VariableDeclaration","scope":41750,"src":"1398:22:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41744,"name":"address","nodeType":"ElementaryTypeName","src":"1398:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41748,"indexed":false,"mutability":"mutable","name":"message","nameLocation":"1431:7:63","nodeType":"VariableDeclaration","scope":41750,"src":"1422:16:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":41747,"nodeType":"UserDefinedTypeName","pathNode":{"id":41746,"name":"CrossMsg","nameLocations":["1422:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1422:8:63"},"referencedDeclaration":49974,"src":"1422:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"1397:42:63"}},{"id":41758,"nodeType":"EventDefinition","src":"1530:73:63","nodes":[],"anonymous":false,"documentation":{"id":41751,"nodeType":"StructuredDocumentation","src":"1445:80:63","text":"@dev event emitted when there is a new bottom-up message batch to be signed."},"eventSelector":"39504a936d8c0cbc12ddec43d5f3e7a937285064bed71961953e3de67d86215e","name":"NewBottomUpMsgBatch","nameLocation":"1536:19:63","parameters":{"id":41757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41753,"indexed":true,"mutability":"mutable","name":"epoch","nameLocation":"1572:5:63","nodeType":"VariableDeclaration","scope":41758,"src":"1556:21:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41752,"name":"uint256","nodeType":"ElementaryTypeName","src":"1556:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41756,"indexed":false,"mutability":"mutable","name":"batch","nameLocation":"1596:5:63","nodeType":"VariableDeclaration","scope":41758,"src":"1579:22:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41755,"nodeType":"UserDefinedTypeName","pathNode":{"id":41754,"name":"BottomUpMsgBatch","nameLocations":["1579:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"1579:16:63"},"referencedDeclaration":49945,"src":"1579:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"1555:47:63"}},{"id":41802,"nodeType":"FunctionDefinition","src":"1824:419:63","nodes":[],"body":{"id":41801,"nodeType":"Block","src":"1981:262:63","nodes":[],"statements":[{"assignments":[41771],"declarations":[{"constant":false,"id":41771,"mutability":"mutable","name":"s","nameLocation":"2019:1:63","nodeType":"VariableDeclaration","scope":41801,"src":"1991:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41770,"nodeType":"UserDefinedTypeName","pathNode":{"id":41769,"name":"GatewayActorStorage","nameLocations":["1991:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"1991:19:63"},"referencedDeclaration":43068,"src":"1991:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41775,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41772,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"2023:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2046:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"2023:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2023:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1991:67:63"},{"expression":{"id":41784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41776,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41764,"src":"2068:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":41779,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2100:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":41780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2106:6:63","memberName":"number","nodeType":"MemberAccess","src":"2100:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":41781,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41771,"src":"2114:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2116:19:63","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":43042,"src":"2114:21:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41777,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"2076:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":41778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2087:12:63","memberName":"getNextEpoch","nodeType":"MemberAccess","referencedDeclaration":42716,"src":"2076:23:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":41783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2076:60:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2068:68:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41785,"nodeType":"ExpressionStatement","src":"2068:68:63"},{"expression":{"id":41791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41786,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"2146:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":41787,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41771,"src":"2159:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2161:19:63","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"2159:21:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41790,"indexExpression":{"id":41789,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41764,"src":"2181:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2159:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"2146:41:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":41792,"nodeType":"ExpressionStatement","src":"2146:41:63"},{"expression":{"id":41799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41793,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41762,"src":"2197:6:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2206:30:63","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":41794,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41767,"src":"2207:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":41795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2218:8:63","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49922,"src":"2207:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":41796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2227:7:63","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":48071,"src":"2207:27:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":41797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2207:29:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2197:39:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41800,"nodeType":"ExpressionStatement","src":"2197:39:63"}]},"documentation":{"id":41759,"nodeType":"StructuredDocumentation","src":"1609:210:63","text":"@notice returns the current bottom-up checkpoint\n @return exists - whether the checkpoint exists\n @return epoch - the epoch of the checkpoint\n @return checkpoint - the checkpoint struct"},"implemented":true,"kind":"function","modifiers":[],"name":"getCurrentBottomUpCheckpoint","nameLocation":"1833:28:63","parameters":{"id":41760,"nodeType":"ParameterList","parameters":[],"src":"1861:2:63"},"returnParameters":{"id":41768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41762,"mutability":"mutable","name":"exists","nameLocation":"1916:6:63","nodeType":"VariableDeclaration","scope":41802,"src":"1911:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41761,"name":"bool","nodeType":"ElementaryTypeName","src":"1911:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41764,"mutability":"mutable","name":"epoch","nameLocation":"1932:5:63","nodeType":"VariableDeclaration","scope":41802,"src":"1924:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41763,"name":"uint256","nodeType":"ElementaryTypeName","src":"1924:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41767,"mutability":"mutable","name":"checkpoint","nameLocation":"1965:10:63","nodeType":"VariableDeclaration","scope":41802,"src":"1939:36:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":41766,"nodeType":"UserDefinedTypeName","pathNode":{"id":41765,"name":"BottomUpCheckpoint","nameLocations":["1939:18:63"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"1939:18:63"},"referencedDeclaration":49932,"src":"1939:18:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"1910:66:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41835,"nodeType":"FunctionDefinition","src":"2298:345:63","nodes":[],"body":{"id":41834,"nodeType":"Block","src":"2461:182:63","nodes":[],"statements":[{"assignments":[41815],"declarations":[{"constant":false,"id":41815,"mutability":"mutable","name":"s","nameLocation":"2499:1:63","nodeType":"VariableDeclaration","scope":41834,"src":"2471:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41814,"nodeType":"UserDefinedTypeName","pathNode":{"id":41813,"name":"GatewayActorStorage","nameLocations":["2471:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"2471:19:63"},"referencedDeclaration":43068,"src":"2471:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41819,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41816,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"2503:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2526:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"2503:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2471:67:63"},{"expression":{"id":41825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41820,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41811,"src":"2549:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":41821,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41815,"src":"2562:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2564:19:63","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"2562:21:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41824,"indexExpression":{"id":41823,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41805,"src":"2584:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2562:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"2549:41:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"id":41826,"nodeType":"ExpressionStatement","src":"2549:41:63"},{"expression":{"id":41832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41827,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41808,"src":"2600:6:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41828,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41811,"src":"2609:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint storage pointer"}},"id":41829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2620:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"2609:22:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2635:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2609:27:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2600:36:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41833,"nodeType":"ExpressionStatement","src":"2600:36:63"}]},"documentation":{"id":41803,"nodeType":"StructuredDocumentation","src":"2249:44:63","text":"@notice returns the bottom-up checkpoint"},"implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpCheckpoint","nameLocation":"2307:21:63","parameters":{"id":41806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41805,"mutability":"mutable","name":"epoch","nameLocation":"2346:5:63","nodeType":"VariableDeclaration","scope":41835,"src":"2338:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41804,"name":"uint256","nodeType":"ElementaryTypeName","src":"2338:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2328:29:63"},"returnParameters":{"id":41812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41808,"mutability":"mutable","name":"exists","nameLocation":"2410:6:63","nodeType":"VariableDeclaration","scope":41835,"src":"2405:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41807,"name":"bool","nodeType":"ElementaryTypeName","src":"2405:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41811,"mutability":"mutable","name":"checkpoint","nameLocation":"2445:10:63","nodeType":"VariableDeclaration","scope":41835,"src":"2418:37:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":41810,"nodeType":"UserDefinedTypeName","pathNode":{"id":41809,"name":"BottomUpCheckpoint","nameLocations":["2418:18:63"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"2418:18:63"},"referencedDeclaration":49932,"src":"2418:18:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"2404:52:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41868,"nodeType":"FunctionDefinition","src":"2693:325:63","nodes":[],"body":{"id":41867,"nodeType":"Block","src":"2847:171:63","nodes":[],"statements":[{"assignments":[41848],"declarations":[{"constant":false,"id":41848,"mutability":"mutable","name":"s","nameLocation":"2885:1:63","nodeType":"VariableDeclaration","scope":41867,"src":"2857:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41847,"nodeType":"UserDefinedTypeName","pathNode":{"id":41846,"name":"GatewayActorStorage","nameLocations":["2857:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"2857:19:63"},"referencedDeclaration":43068,"src":"2857:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41852,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41849,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"2889:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2912:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"2889:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2889:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2857:67:63"},{"expression":{"id":41858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41853,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41844,"src":"2935:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":41854,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41848,"src":"2943:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2945:18:63","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"2943:20:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":41857,"indexExpression":{"id":41856,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41838,"src":"2964:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2943:27:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"src":"2935:35:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41859,"nodeType":"ExpressionStatement","src":"2935:35:63"},{"expression":{"id":41865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":41860,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41841,"src":"2980:6:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":41861,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41844,"src":"2989:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2995:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"2989:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3010:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2989:22:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2980:31:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":41866,"nodeType":"ExpressionStatement","src":"2980:31:63"}]},"documentation":{"id":41836,"nodeType":"StructuredDocumentation","src":"2649:39:63","text":"@notice returns the bottom-up batch"},"implemented":true,"kind":"function","modifiers":[],"name":"getBottomUpMsgBatch","nameLocation":"2702:19:63","parameters":{"id":41839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41838,"mutability":"mutable","name":"epoch","nameLocation":"2739:5:63","nodeType":"VariableDeclaration","scope":41868,"src":"2731:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41837,"name":"uint256","nodeType":"ElementaryTypeName","src":"2731:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2721:29:63"},"returnParameters":{"id":41845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41841,"mutability":"mutable","name":"exists","nameLocation":"2803:6:63","nodeType":"VariableDeclaration","scope":41868,"src":"2798:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41840,"name":"bool","nodeType":"ElementaryTypeName","src":"2798:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41844,"mutability":"mutable","name":"batch","nameLocation":"2836:5:63","nodeType":"VariableDeclaration","scope":41868,"src":"2811:30:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41843,"nodeType":"UserDefinedTypeName","pathNode":{"id":41842,"name":"BottomUpMsgBatch","nameLocations":["2811:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"2811:16:63"},"referencedDeclaration":49945,"src":"2811:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"2797:45:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41892,"nodeType":"FunctionDefinition","src":"3110:224:63","nodes":[],"body":{"id":41891,"nodeType":"Block","src":"3188:146:63","nodes":[],"statements":[{"assignments":[41878],"declarations":[{"constant":false,"id":41878,"mutability":"mutable","name":"s","nameLocation":"3226:1:63","nodeType":"VariableDeclaration","scope":41891,"src":"3198:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41877,"nodeType":"UserDefinedTypeName","pathNode":{"id":41876,"name":"GatewayActorStorage","nameLocations":["3198:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"3198:19:63"},"referencedDeclaration":43068,"src":"3198:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41882,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41879,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"3230:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3253:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"3230:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3230:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3198:67:63"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":41883,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41878,"src":"3282:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3284:19:63","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"3282:21:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41886,"indexExpression":{"id":41885,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41871,"src":"3304:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3282:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"id":41887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3311:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3282:40:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3326:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3282:45:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":41875,"id":41890,"nodeType":"Return","src":"3275:52:63"}]},"documentation":{"id":41869,"nodeType":"StructuredDocumentation","src":"3024:81:63","text":"@notice checks if the bottom-up checkpoint already exists at the target epoch"},"implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpointExists","nameLocation":"3119:24:63","parameters":{"id":41872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41871,"mutability":"mutable","name":"epoch","nameLocation":"3152:5:63","nodeType":"VariableDeclaration","scope":41892,"src":"3144:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41870,"name":"uint256","nodeType":"ElementaryTypeName","src":"3144:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3143:15:63"},"returnParameters":{"id":41875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41874,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41892,"src":"3182:4:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41873,"name":"bool","nodeType":"ElementaryTypeName","src":"3182:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3181:6:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41916,"nodeType":"FunctionDefinition","src":"3426:222:63","nodes":[],"body":{"id":41915,"nodeType":"Block","src":"3503:145:63","nodes":[],"statements":[{"assignments":[41902],"declarations":[{"constant":false,"id":41902,"mutability":"mutable","name":"s","nameLocation":"3541:1:63","nodeType":"VariableDeclaration","scope":41915,"src":"3513:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41901,"nodeType":"UserDefinedTypeName","pathNode":{"id":41900,"name":"GatewayActorStorage","nameLocations":["3513:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"3513:19:63"},"referencedDeclaration":43068,"src":"3513:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41906,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41903,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"3545:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3568:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"3545:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3545:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3513:67:63"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":41907,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41902,"src":"3597:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3599:18:63","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"3597:20:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":41910,"indexExpression":{"id":41909,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41895,"src":"3618:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3597:27:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"id":41911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3625:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"3597:39:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":41912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3640:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3597:44:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":41899,"id":41914,"nodeType":"Return","src":"3590:51:63"}]},"documentation":{"id":41893,"nodeType":"StructuredDocumentation","src":"3340:81:63","text":"@notice checks if the bottom-up checkpoint already exists at the target epoch"},"implemented":true,"kind":"function","modifiers":[],"name":"bottomUpBatchMsgsExists","nameLocation":"3435:23:63","parameters":{"id":41896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41895,"mutability":"mutable","name":"epoch","nameLocation":"3467:5:63","nodeType":"VariableDeclaration","scope":41916,"src":"3459:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41894,"name":"uint256","nodeType":"ElementaryTypeName","src":"3459:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3458:15:63"},"returnParameters":{"id":41899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":41916,"src":"3497:4:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41897,"name":"bool","nodeType":"ElementaryTypeName","src":"3497:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3496:6:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":41940,"nodeType":"FunctionDefinition","src":"3688:246:63","nodes":[],"body":{"id":41939,"nodeType":"Block","src":"3782:152:63","nodes":[],"statements":[{"assignments":[41925],"declarations":[{"constant":false,"id":41925,"mutability":"mutable","name":"s","nameLocation":"3820:1:63","nodeType":"VariableDeclaration","scope":41939,"src":"3792:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41924,"nodeType":"UserDefinedTypeName","pathNode":{"id":41923,"name":"GatewayActorStorage","nameLocations":["3792:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"3792:19:63"},"referencedDeclaration":43068,"src":"3792:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41929,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41926,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"3824:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3847:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"3824:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3824:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3792:67:63"},{"expression":{"id":41937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":41930,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41925,"src":"3869:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3871:19:63","memberName":"bottomUpCheckpoints","nodeType":"MemberAccess","referencedDeclaration":43002,"src":"3869:21:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":41935,"indexExpression":{"expression":{"id":41932,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41920,"src":"3891:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":41933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3902:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3891:22:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3869:45:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":41936,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41920,"src":"3917:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"src":"3869:58:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"id":41938,"nodeType":"ExpressionStatement","src":"3869:58:63"}]},"documentation":{"id":41917,"nodeType":"StructuredDocumentation","src":"3654:29:63","text":"@notice stores checkpoint"},"implemented":true,"kind":"function","modifiers":[],"name":"storeBottomUpCheckpoint","nameLocation":"3697:23:63","parameters":{"id":41921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41920,"mutability":"mutable","name":"checkpoint","nameLocation":"3756:10:63","nodeType":"VariableDeclaration","scope":41940,"src":"3730:36:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":41919,"nodeType":"UserDefinedTypeName","pathNode":{"id":41918,"name":"BottomUpCheckpoint","nameLocations":["3730:18:63"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"3730:18:63"},"referencedDeclaration":49932,"src":"3730:18:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"3720:52:63"},"returnParameters":{"id":41922,"nodeType":"ParameterList","parameters":[],"src":"3782:0:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42007,"nodeType":"FunctionDefinition","src":"3979:709:63","nodes":[],"body":{"id":42006,"nodeType":"Block","src":"4064:624:63","nodes":[],"statements":[{"assignments":[41949],"declarations":[{"constant":false,"id":41949,"mutability":"mutable","name":"s","nameLocation":"4102:1:63","nodeType":"VariableDeclaration","scope":42006,"src":"4074:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":41948,"nodeType":"UserDefinedTypeName","pathNode":{"id":41947,"name":"GatewayActorStorage","nameLocations":["4074:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"4074:19:63"},"referencedDeclaration":43068,"src":"4074:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":41953,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":41950,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"4106:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":41951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4129:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"4106:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":41952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4106:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4074:67:63"},{"assignments":[41956],"declarations":[{"constant":false,"id":41956,"mutability":"mutable","name":"b","nameLocation":"4176:1:63","nodeType":"VariableDeclaration","scope":42006,"src":"4151:26:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41955,"nodeType":"UserDefinedTypeName","pathNode":{"id":41954,"name":"BottomUpMsgBatch","nameLocations":["4151:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"4151:16:63"},"referencedDeclaration":49945,"src":"4151:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"id":41962,"initialValue":{"baseExpression":{"expression":{"id":41957,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41949,"src":"4180:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":41958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4182:18:63","memberName":"bottomUpMsgBatches","nodeType":"MemberAccess","referencedDeclaration":43008,"src":"4180:20:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch storage ref)"}},"id":41961,"indexExpression":{"expression":{"id":41959,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41944,"src":"4201:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4207:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"4201:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4180:39:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage","typeString":"struct BottomUpMsgBatch storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4151:68:63"},{"expression":{"id":41968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":41963,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41956,"src":"4229:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4231:8:63","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49936,"src":"4229:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41966,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41944,"src":"4242:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4248:8:63","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49936,"src":"4242:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"src":"4229:27:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":41969,"nodeType":"ExpressionStatement","src":"4229:27:63"},{"expression":{"id":41975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":41970,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41956,"src":"4266:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4268:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"4266:13:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":41973,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41944,"src":"4282:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4288:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"4282:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4266:33:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":41976,"nodeType":"ExpressionStatement","src":"4266:33:63"},{"assignments":[41978],"declarations":[{"constant":false,"id":41978,"mutability":"mutable","name":"msgLength","nameLocation":"4318:9:63","nodeType":"VariableDeclaration","scope":42006,"src":"4310:17:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41977,"name":"uint256","nodeType":"ElementaryTypeName","src":"4310:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41982,"initialValue":{"expression":{"expression":{"id":41979,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41944,"src":"4330:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4336:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"4330:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":41981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4341:6:63","memberName":"length","nodeType":"MemberAccess","src":"4330:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4310:37:63"},{"body":{"id":42004,"nodeType":"Block","src":"4389:293:63","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":41994,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41944,"src":"4598:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":41995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4604:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"4598:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":41997,"indexExpression":{"id":41996,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41984,"src":"4609:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4598:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":41989,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41956,"src":"4586:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":41992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4588:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"4586:6:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":41993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4593:4:63","memberName":"push","nodeType":"MemberAccess","src":"4586:11:63","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$49974_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":41998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4586:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41999,"nodeType":"ExpressionStatement","src":"4586:26:63"},{"id":42003,"nodeType":"UncheckedBlock","src":"4626:46:63","statements":[{"expression":{"id":42001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4654:3:63","subExpression":{"id":42000,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41984,"src":"4656:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42002,"nodeType":"ExpressionStatement","src":"4654:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":41988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":41986,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41984,"src":"4373:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":41987,"name":"msgLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41978,"src":"4377:9:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4373:13:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42005,"initializationExpression":{"assignments":[41984],"declarations":[{"constant":false,"id":41984,"mutability":"mutable","name":"i","nameLocation":"4370:1:63","nodeType":"VariableDeclaration","scope":42005,"src":"4362:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41983,"name":"uint256","nodeType":"ElementaryTypeName","src":"4362:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":41985,"nodeType":"VariableDeclarationStatement","src":"4362:9:63"},"nodeType":"ForStatement","src":"4357:325:63"}]},"documentation":{"id":41941,"nodeType":"StructuredDocumentation","src":"3940:34:63","text":"@notice stores bottom-up batch"},"implemented":true,"kind":"function","modifiers":[],"name":"storeBottomUpMsgBatch","nameLocation":"3988:21:63","parameters":{"id":41945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41944,"mutability":"mutable","name":"batch","nameLocation":"4043:5:63","nodeType":"VariableDeclaration","scope":42007,"src":"4019:29:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":41943,"nodeType":"UserDefinedTypeName","pathNode":{"id":41942,"name":"BottomUpMsgBatch","nameLocations":["4019:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"4019:16:63"},"referencedDeclaration":49945,"src":"4019:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"4009:45:63"},"returnParameters":{"id":41946,"nodeType":"ParameterList","parameters":[],"src":"4064:0:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42029,"nodeType":"FunctionDefinition","src":"4834:223:63","nodes":[],"body":{"id":42028,"nodeType":"Block","src":"4928:129:63","nodes":[],"statements":[{"assignments":[42018],"declarations":[{"constant":false,"id":42018,"mutability":"mutable","name":"s","nameLocation":"4966:1:63","nodeType":"VariableDeclaration","scope":42028,"src":"4938:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42017,"nodeType":"UserDefinedTypeName","pathNode":{"id":42016,"name":"GatewayActorStorage","nameLocations":["4938:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"4938:19:63"},"referencedDeclaration":43068,"src":"4938:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42022,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42019,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"4970:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4993:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"4970:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4970:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4938:67:63"},{"expression":{"baseExpression":{"expression":{"id":42023,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42018,"src":"5022:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5024:13:63","memberName":"finalitiesMap","nodeType":"MemberAccess","referencedDeclaration":42979,"src":"5022:15:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49918_storage_$","typeString":"mapping(uint256 => struct ParentFinality storage ref)"}},"id":42026,"indexExpression":{"id":42025,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42010,"src":"5038:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5022:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage","typeString":"struct ParentFinality storage ref"}},"functionReturnParameters":42015,"id":42027,"nodeType":"Return","src":"5015:35:63"}]},"documentation":{"id":42008,"nodeType":"StructuredDocumentation","src":"4694:135:63","text":"@notice obtain the ipc parent finality at certain block number\n @param blockNumber - the block number to obtain the finality"},"implemented":true,"kind":"function","modifiers":[],"name":"getParentFinality","nameLocation":"4843:17:63","parameters":{"id":42011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42010,"mutability":"mutable","name":"blockNumber","nameLocation":"4869:11:63","nodeType":"VariableDeclaration","scope":42029,"src":"4861:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42009,"name":"uint256","nodeType":"ElementaryTypeName","src":"4861:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4860:21:63"},"returnParameters":{"id":42015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42014,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42029,"src":"4905:21:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":42013,"nodeType":"UserDefinedTypeName","pathNode":{"id":42012,"name":"ParentFinality","nameLocations":["4905:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"4905:14:63"},"referencedDeclaration":49918,"src":"4905:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"4904:23:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":42049,"nodeType":"FunctionDefinition","src":"5127:221:63","nodes":[],"body":{"id":42048,"nodeType":"Block","src":"5208:140:63","nodes":[],"statements":[{"assignments":[42038],"declarations":[{"constant":false,"id":42038,"mutability":"mutable","name":"s","nameLocation":"5246:1:63","nodeType":"VariableDeclaration","scope":42048,"src":"5218:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42037,"nodeType":"UserDefinedTypeName","pathNode":{"id":42036,"name":"GatewayActorStorage","nameLocations":["5218:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"5218:19:63"},"referencedDeclaration":43068,"src":"5218:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42042,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42039,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"5250:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5273:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"5250:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5250:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5218:67:63"},{"expression":{"arguments":[{"expression":{"id":42044,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42038,"src":"5320:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5322:18:63","memberName":"latestParentHeight","nodeType":"MemberAccess","referencedDeclaration":42982,"src":"5320:20:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42043,"name":"getParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42029,"src":"5302:17:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (uint256) view returns (struct ParentFinality memory)"}},"id":42046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5302:39:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"functionReturnParameters":42035,"id":42047,"nodeType":"Return","src":"5295:46:63"}]},"documentation":{"id":42030,"nodeType":"StructuredDocumentation","src":"5063:59:63","text":"@notice obtain the latest committed ipc parent finality"},"implemented":true,"kind":"function","modifiers":[],"name":"getLatestParentFinality","nameLocation":"5136:23:63","parameters":{"id":42031,"nodeType":"ParameterList","parameters":[],"src":"5159:2:63"},"returnParameters":{"id":42035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42049,"src":"5185:21:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":42033,"nodeType":"UserDefinedTypeName","pathNode":{"id":42032,"name":"ParentFinality","nameLocations":["5185:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"5185:14:63"},"referencedDeclaration":49918,"src":"5185:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"5184:23:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":42104,"nodeType":"FunctionDefinition","src":"5469:529:63","nodes":[],"body":{"id":42103,"nodeType":"Block","src":"5601:397:63","nodes":[],"statements":[{"assignments":[42061],"declarations":[{"constant":false,"id":42061,"mutability":"mutable","name":"s","nameLocation":"5639:1:63","nodeType":"VariableDeclaration","scope":42103,"src":"5611:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42060,"nodeType":"UserDefinedTypeName","pathNode":{"id":42059,"name":"GatewayActorStorage","nameLocations":["5611:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"5611:19:63"},"referencedDeclaration":43068,"src":"5611:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42065,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42062,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"5643:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5666:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"5643:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5643:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5611:67:63"},{"assignments":[42067],"declarations":[{"constant":false,"id":42067,"mutability":"mutable","name":"lastHeight","nameLocation":"5697:10:63","nodeType":"VariableDeclaration","scope":42103,"src":"5689:18:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42066,"name":"uint256","nodeType":"ElementaryTypeName","src":"5689:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42070,"initialValue":{"expression":{"id":42068,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"5710:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5712:18:63","memberName":"latestParentHeight","nodeType":"MemberAccess","referencedDeclaration":42982,"src":"5710:20:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5689:41:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42071,"name":"lastHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42067,"src":"5744:10:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":42072,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42053,"src":"5757:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality calldata"}},"id":42073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5766:6:63","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":49915,"src":"5757:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5744:28:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42079,"nodeType":"IfStatement","src":"5740:98:63","trueBody":{"id":42078,"nodeType":"Block","src":"5774:64:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42075,"name":"ParentFinalityAlreadyCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37498,"src":"5795:30:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5795:32:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42077,"nodeType":"RevertStatement","src":"5788:39:63"}]}},{"expression":{"id":42085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42080,"name":"lastFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42057,"src":"5847:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":42081,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"5862:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5864:13:63","memberName":"finalitiesMap","nodeType":"MemberAccess","referencedDeclaration":42979,"src":"5862:15:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49918_storage_$","typeString":"mapping(uint256 => struct ParentFinality storage ref)"}},"id":42084,"indexExpression":{"id":42083,"name":"lastHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42067,"src":"5878:10:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5862:27:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage","typeString":"struct ParentFinality storage ref"}},"src":"5847:42:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"id":42086,"nodeType":"ExpressionStatement","src":"5847:42:63"},{"expression":{"id":42094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":42087,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"5900:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5902:13:63","memberName":"finalitiesMap","nodeType":"MemberAccess","referencedDeclaration":42979,"src":"5900:15:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49918_storage_$","typeString":"mapping(uint256 => struct ParentFinality storage ref)"}},"id":42092,"indexExpression":{"expression":{"id":42089,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42053,"src":"5916:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality calldata"}},"id":42090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5925:6:63","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":49915,"src":"5916:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5900:32:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage","typeString":"struct ParentFinality storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42093,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42053,"src":"5935:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality calldata"}},"src":"5900:43:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage","typeString":"struct ParentFinality storage ref"}},"id":42095,"nodeType":"ExpressionStatement","src":"5900:43:63"},{"expression":{"id":42101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42096,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42061,"src":"5953:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5955:18:63","memberName":"latestParentHeight","nodeType":"MemberAccess","referencedDeclaration":42982,"src":"5953:20:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42099,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42053,"src":"5976:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality calldata"}},"id":42100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5985:6:63","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":49915,"src":"5976:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5953:38:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42102,"nodeType":"ExpressionStatement","src":"5953:38:63"}]},"documentation":{"id":42050,"nodeType":"StructuredDocumentation","src":"5354:110:63","text":"@notice commit the ipc parent finality into storage\n @param finality - the finality to be committed"},"implemented":true,"kind":"function","modifiers":[],"name":"commitParentFinality","nameLocation":"5478:20:63","parameters":{"id":42054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42053,"mutability":"mutable","name":"finality","nameLocation":"5532:8:63","nodeType":"VariableDeclaration","scope":42104,"src":"5508:32:63","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality"},"typeName":{"id":42052,"nodeType":"UserDefinedTypeName","pathNode":{"id":42051,"name":"ParentFinality","nameLocations":["5508:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"5508:14:63"},"referencedDeclaration":49918,"src":"5508:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"5498:48:63"},"returnParameters":{"id":42058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42057,"mutability":"mutable","name":"lastFinality","nameLocation":"5587:12:63","nodeType":"VariableDeclaration","scope":42104,"src":"5565:34:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":42056,"nodeType":"UserDefinedTypeName","pathNode":{"id":42055,"name":"ParentFinality","nameLocations":["5565:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"5565:14:63"},"referencedDeclaration":49918,"src":"5565:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"5564:36:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42258,"nodeType":"FunctionDefinition","src":"6087:1976:63","nodes":[],"body":{"id":42257,"nodeType":"Block","src":"6152:1911:63","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":42112,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"6185:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}],"id":42111,"name":"MembershipUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41742,"src":"6167:17:63","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_struct$_Membership_$50218_memory_ptr_$returns$__$","typeString":"function (struct Membership memory)"}},"id":42113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6167:29:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42114,"nodeType":"EmitStatement","src":"6162:34:63"},{"assignments":[42117],"declarations":[{"constant":false,"id":42117,"mutability":"mutable","name":"s","nameLocation":"6235:1:63","nodeType":"VariableDeclaration","scope":42257,"src":"6207:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42116,"nodeType":"UserDefinedTypeName","pathNode":{"id":42115,"name":"GatewayActorStorage","nameLocations":["6207:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"6207:19:63"},"referencedDeclaration":43068,"src":"6207:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42121,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42118,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"6239:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6262:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"6239:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6239:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6207:67:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42122,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"6344:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6346:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"6344:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6364:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"6344:39:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":42125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6387:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6344:44:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42156,"nodeType":"IfStatement","src":"6340:621:63","trueBody":{"id":42155,"nodeType":"Block","src":"6390:571:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42127,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"6408:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6419:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"6408:30:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":42129,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"6442:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6444:14:63","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"6442:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6459:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"6442:36:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6408:70:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42135,"nodeType":"IfStatement","src":"6404:115:63","trueBody":{"id":42134,"nodeType":"Block","src":"6480:39:63","statements":[{"functionReturnParameters":42110,"id":42133,"nodeType":"Return","src":"6498:7:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42136,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"6632:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6643:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"6632:30:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":42138,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"6665:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6667:14:63","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"6665:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6682:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"6665:36:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6632:69:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42146,"nodeType":"IfStatement","src":"6628:139:63","trueBody":{"id":42145,"nodeType":"Block","src":"6703:64:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42142,"name":"OldConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37492,"src":"6728:22:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6728:24:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42144,"nodeType":"RevertStatement","src":"6721:31:63"}]}},{"condition":{"arguments":[{"id":42148,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"6878:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},{"expression":{"id":42149,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"6890:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6892:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"6890:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"},{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}],"id":42147,"name":"membershipEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42367,"src":"6862:15:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Membership_$50218_memory_ptr_$_t_struct$_Membership_$50218_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Membership memory,struct Membership memory) pure returns (bool)"}},"id":42151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6862:48:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42154,"nodeType":"IfStatement","src":"6858:93:63","trueBody":{"id":42153,"nodeType":"Block","src":"6912:39:63","statements":[{"functionReturnParameters":42110,"id":42152,"nodeType":"Return","src":"6930:7:63"}]}}]}},{"expression":{"id":42162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42157,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"6971:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6973:14:63","memberName":"lastMembership","nodeType":"MemberAccess","referencedDeclaration":42996,"src":"6971:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42160,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"6990:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6992:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"6990:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"src":"6971:38:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42163,"nodeType":"ExpressionStatement","src":"6971:38:63"},{"assignments":[42165],"declarations":[{"constant":false,"id":42165,"mutability":"mutable","name":"inputLength","nameLocation":"7028:11:63","nodeType":"VariableDeclaration","scope":42257,"src":"7020:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42164,"name":"uint256","nodeType":"ElementaryTypeName","src":"7020:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42169,"initialValue":{"expression":{"expression":{"id":42166,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"7042:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7053:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"7042:21:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7064:6:63","memberName":"length","nodeType":"MemberAccess","src":"7042:28:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7020:50:63"},{"assignments":[42171],"declarations":[{"constant":false,"id":42171,"mutability":"mutable","name":"storeLength","nameLocation":"7088:11:63","nodeType":"VariableDeclaration","scope":42257,"src":"7080:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42170,"name":"uint256","nodeType":"ElementaryTypeName","src":"7080:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42176,"initialValue":{"expression":{"expression":{"expression":{"id":42172,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"7102:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7104:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"7102:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7122:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"7102:30:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":42175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7133:6:63","memberName":"length","nodeType":"MemberAccess","src":"7102:37:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7080:59:63"},{"body":{"id":42219,"nodeType":"Block","src":"7336:297:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42183,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42178,"src":"7354:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42184,"name":"storeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42171,"src":"7358:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7354:15:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":42213,"nodeType":"Block","src":"7470:94:63","statements":[{"expression":{"arguments":[{"baseExpression":{"expression":{"id":42207,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"7524:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7535:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"7524:21:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42210,"indexExpression":{"id":42209,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42178,"src":"7546:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7524:24:63","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"expression":{"id":42200,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"7488:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7490:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"7488:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7508:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"7488:30:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":42206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7519:4:63","memberName":"push","nodeType":"MemberAccess","src":"7488:35:63","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50211_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":42211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7488:61:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42212,"nodeType":"ExpressionStatement","src":"7488:61:63"}]},"id":42214,"nodeType":"IfStatement","src":"7350:214:63","trueBody":{"id":42199,"nodeType":"Block","src":"7371:93:63","statements":[{"expression":{"id":42197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":42186,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"7389:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7391:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"7389:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7409:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"7389:30:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":42192,"indexExpression":{"id":42189,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42178,"src":"7420:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7389:33:63","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage","typeString":"struct Validator storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":42193,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"7425:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42194,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7436:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"7425:21:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42196,"indexExpression":{"id":42195,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42178,"src":"7447:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7425:24:63","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"src":"7389:60:63","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage","typeString":"struct Validator storage ref"}},"id":42198,"nodeType":"ExpressionStatement","src":"7389:60:63"}]}},{"id":42218,"nodeType":"UncheckedBlock","src":"7577:46:63","statements":[{"expression":{"id":42216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7605:3:63","subExpression":{"id":42215,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42178,"src":"7607:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42217,"nodeType":"ExpressionStatement","src":"7605:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42180,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42178,"src":"7317:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42181,"name":"inputLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42165,"src":"7321:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7317:15:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42220,"initializationExpression":{"assignments":[42178],"declarations":[{"constant":false,"id":42178,"mutability":"mutable","name":"i","nameLocation":"7314:1:63","nodeType":"VariableDeclaration","scope":42220,"src":"7306:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42177,"name":"uint256","nodeType":"ElementaryTypeName","src":"7306:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42179,"nodeType":"VariableDeclarationStatement","src":"7306:9:63"},"nodeType":"ForStatement","src":"7301:332:63"},{"expression":{"id":42228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":42221,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"7642:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7644:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"7642:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7662:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"7642:39:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42226,"name":"membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42108,"src":"7684:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7695:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"7684:30:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7642:72:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42229,"nodeType":"ExpressionStatement","src":"7642:72:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42230,"name":"storeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42171,"src":"7817:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":42231,"name":"inputLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42165,"src":"7831:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7817:25:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42256,"nodeType":"IfStatement","src":"7813:244:63","trueBody":{"id":42255,"nodeType":"Block","src":"7844:213:63","statements":[{"body":{"id":42253,"nodeType":"Block","src":"7907:140:63","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":42240,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42117,"src":"7925:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7927:17:63","memberName":"currentMembership","nodeType":"MemberAccess","referencedDeclaration":42992,"src":"7925:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage","typeString":"struct Membership storage ref"}},"id":42245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7945:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"7925:30:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":42246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7956:3:63","memberName":"pop","nodeType":"MemberAccess","src":"7925:34:63","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer)"}},"id":42247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7925:36:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42248,"nodeType":"ExpressionStatement","src":"7925:36:63"},{"id":42252,"nodeType":"UncheckedBlock","src":"7979:54:63","statements":[{"expression":{"id":42250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8011:3:63","subExpression":{"id":42249,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42234,"src":"8013:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42251,"nodeType":"ExpressionStatement","src":"8011:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42237,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42234,"src":"7888:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42238,"name":"storeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42171,"src":"7892:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7888:15:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42254,"initializationExpression":{"assignments":[42234],"declarations":[{"constant":false,"id":42234,"mutability":"mutable","name":"i","nameLocation":"7871:1:63","nodeType":"VariableDeclaration","scope":42254,"src":"7863:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42233,"name":"uint256","nodeType":"ElementaryTypeName","src":"7863:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42236,"initialValue":{"id":42235,"name":"inputLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42165,"src":"7875:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7863:23:63"},"nodeType":"ForStatement","src":"7858:189:63"}]}}]},"documentation":{"id":42105,"nodeType":"StructuredDocumentation","src":"6004:78:63","text":"@notice set the next membership\n @param membership - new membership"},"implemented":true,"kind":"function","modifiers":[],"name":"updateMembership","nameLocation":"6096:16:63","parameters":{"id":42109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42108,"mutability":"mutable","name":"membership","nameLocation":"6131:10:63","nodeType":"VariableDeclaration","scope":42258,"src":"6113:28:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":42107,"nodeType":"UserDefinedTypeName","pathNode":{"id":42106,"name":"Membership","nameLocations":["6113:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"6113:10:63"},"referencedDeclaration":50218,"src":"6113:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"6112:30:63"},"returnParameters":{"id":42110,"nodeType":"ParameterList","parameters":[],"src":"6152:0:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42299,"nodeType":"FunctionDefinition","src":"8132:387:63","nodes":[],"body":{"id":42298,"nodeType":"Block","src":"8219:300:63","nodes":[],"statements":[{"assignments":[42268],"declarations":[{"constant":false,"id":42268,"mutability":"mutable","name":"len","nameLocation":"8237:3:63","nodeType":"VariableDeclaration","scope":42298,"src":"8229:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42267,"name":"uint256","nodeType":"ElementaryTypeName","src":"8229:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42272,"initialValue":{"expression":{"expression":{"id":42269,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42262,"src":"8243:4:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8248:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"8243:15:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8259:6:63","memberName":"length","nodeType":"MemberAccess","src":"8243:22:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8229:36:63"},{"assignments":[42274],"declarations":[{"constant":false,"id":42274,"mutability":"mutable","name":"totalValidatorsWeight","nameLocation":"8283:21:63","nodeType":"VariableDeclaration","scope":42298,"src":"8275:29:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42273,"name":"uint256","nodeType":"ElementaryTypeName","src":"8275:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42275,"nodeType":"VariableDeclarationStatement","src":"8275:29:63"},{"body":{"id":42294,"nodeType":"Block","src":"8341:134:63","statements":[{"expression":{"id":42288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42282,"name":"totalValidatorsWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42274,"src":"8355:21:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":42283,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42262,"src":"8380:4:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42284,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8385:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"8380:15:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42286,"indexExpression":{"id":42285,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42277,"src":"8396:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8380:18:63","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"id":42287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8399:6:63","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":50206,"src":"8380:25:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8355:50:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42289,"nodeType":"ExpressionStatement","src":"8355:50:63"},{"id":42293,"nodeType":"UncheckedBlock","src":"8419:46:63","statements":[{"expression":{"id":42291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8447:3:63","subExpression":{"id":42290,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42277,"src":"8449:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42292,"nodeType":"ExpressionStatement","src":"8447:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42279,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42277,"src":"8330:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42280,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42268,"src":"8334:3:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8330:7:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42295,"initializationExpression":{"assignments":[42277],"declarations":[{"constant":false,"id":42277,"mutability":"mutable","name":"i","nameLocation":"8327:1:63","nodeType":"VariableDeclaration","scope":42295,"src":"8319:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42276,"name":"uint256","nodeType":"ElementaryTypeName","src":"8319:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42278,"nodeType":"VariableDeclarationStatement","src":"8319:9:63"},"nodeType":"ForStatement","src":"8314:161:63"},{"expression":{"id":42296,"name":"totalValidatorsWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42274,"src":"8491:21:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":42266,"id":42297,"nodeType":"Return","src":"8484:28:63"}]},"documentation":{"id":42259,"nodeType":"StructuredDocumentation","src":"8069:58:63","text":"@dev - Computes total weight for a specific membership"},"implemented":true,"kind":"function","modifiers":[],"name":"membershipTotalWeight","nameLocation":"8141:21:63","parameters":{"id":42263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42262,"mutability":"mutable","name":"self","nameLocation":"8181:4:63","nodeType":"VariableDeclaration","scope":42299,"src":"8163:22:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":42261,"nodeType":"UserDefinedTypeName","pathNode":{"id":42260,"name":"Membership","nameLocations":["8163:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"8163:10:63"},"referencedDeclaration":50218,"src":"8163:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"8162:24:63"},"returnParameters":{"id":42266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42265,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42299,"src":"8210:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42264,"name":"uint256","nodeType":"ElementaryTypeName","src":"8210:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8209:9:63"},"scope":42944,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42367,"nodeType":"FunctionDefinition","src":"8598:561:63","nodes":[],"body":{"id":42366,"nodeType":"Block","src":"8698:461:63","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42311,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42303,"src":"8712:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8716:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"8712:23:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":42313,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42306,"src":"8739:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8743:19:63","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50217,"src":"8739:23:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8712:50:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42319,"nodeType":"IfStatement","src":"8708:93:63","trueBody":{"id":42318,"nodeType":"Block","src":"8764:37:63","statements":[{"expression":{"hexValue":"66616c7365","id":42316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8785:5:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":42310,"id":42317,"nodeType":"Return","src":"8778:12:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":42321,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42303,"src":"8836:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}],"id":42320,"name":"membershipTotalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42299,"src":"8814:21:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Membership_$50218_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct Membership memory) pure returns (uint256)"}},"id":42322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8814:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":42324,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42306,"src":"8866:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}],"id":42323,"name":"membershipTotalWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42299,"src":"8844:21:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Membership_$50218_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct Membership memory) pure returns (uint256)"}},"id":42325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8844:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8814:56:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42330,"nodeType":"IfStatement","src":"8810:99:63","trueBody":{"id":42329,"nodeType":"Block","src":"8872:37:63","statements":[{"expression":{"hexValue":"66616c7365","id":42327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8893:5:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":42310,"id":42328,"nodeType":"Return","src":"8886:12:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42331,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42303,"src":"8922:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8926:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"8922:14:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8937:6:63","memberName":"length","nodeType":"MemberAccess","src":"8922:21:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":42334,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42306,"src":"8947:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8951:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"8947:14:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":42336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8962:6:63","memberName":"length","nodeType":"MemberAccess","src":"8947:21:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8922:46:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42341,"nodeType":"IfStatement","src":"8918:89:63","trueBody":{"id":42340,"nodeType":"Block","src":"8970:37:63","statements":[{"expression":{"hexValue":"66616c7365","id":42338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8991:5:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":42310,"id":42339,"nodeType":"Return","src":"8984:12:63"}]}},{"assignments":[42343],"declarations":[{"constant":false,"id":42343,"mutability":"mutable","name":"h1","nameLocation":"9024:2:63","nodeType":"VariableDeclaration","scope":42366,"src":"9016:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9016:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42351,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":42347,"name":"mb1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42303,"src":"9050:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9054:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"9050:14:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"expression":{"id":42345,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9039:3:63","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9043:6:63","memberName":"encode","nodeType":"MemberAccess","src":"9039:10:63","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":42349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9039:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42344,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9029:9:63","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":42350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9029:37:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9016:50:63"},{"assignments":[42353],"declarations":[{"constant":false,"id":42353,"mutability":"mutable","name":"h2","nameLocation":"9084:2:63","nodeType":"VariableDeclaration","scope":42366,"src":"9076:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42352,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9076:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42361,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":42357,"name":"mb2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42306,"src":"9110:3:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}},"id":42358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9114:10:63","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50215,"src":"9110:14:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"expression":{"id":42355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9099:3:63","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9103:6:63","memberName":"encode","nodeType":"MemberAccess","src":"9099:10:63","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":42359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9099:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42354,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9089:9:63","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":42360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9089:37:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9076:50:63"},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":42364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42362,"name":"h1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42343,"src":"9144:2:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":42363,"name":"h2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42353,"src":"9150:2:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9144:8:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":42310,"id":42365,"nodeType":"Return","src":"9137:15:63"}]},"documentation":{"id":42300,"nodeType":"StructuredDocumentation","src":"8525:68:63","text":"@dev compares two memberships and returns true if they are equal"},"implemented":true,"kind":"function","modifiers":[],"name":"membershipEqual","nameLocation":"8607:15:63","parameters":{"id":42307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42303,"mutability":"mutable","name":"mb1","nameLocation":"8641:3:63","nodeType":"VariableDeclaration","scope":42367,"src":"8623:21:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":42302,"nodeType":"UserDefinedTypeName","pathNode":{"id":42301,"name":"Membership","nameLocations":["8623:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"8623:10:63"},"referencedDeclaration":50218,"src":"8623:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":42306,"mutability":"mutable","name":"mb2","nameLocation":"8664:3:63","nodeType":"VariableDeclaration","scope":42367,"src":"8646:21:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership"},"typeName":{"id":42305,"nodeType":"UserDefinedTypeName","pathNode":{"id":42304,"name":"Membership","nameLocations":["8646:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"8646:10:63"},"referencedDeclaration":50218,"src":"8646:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"}],"src":"8622:46:63"},"returnParameters":{"id":42310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42367,"src":"8692:4:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42308,"name":"bool","nodeType":"ElementaryTypeName","src":"8692:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8691:6:63"},"scope":42944,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42446,"nodeType":"FunctionDefinition","src":"9363:689:63","nodes":[],"body":{"id":42445,"nodeType":"Block","src":"9428:624:63","nodes":[],"statements":[{"assignments":[42376],"declarations":[{"constant":false,"id":42376,"mutability":"mutable","name":"s","nameLocation":"9466:1:63","nodeType":"VariableDeclaration","scope":42445,"src":"9438:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42375,"nodeType":"UserDefinedTypeName","pathNode":{"id":42374,"name":"GatewayActorStorage","nameLocations":["9438:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"9438:19:63"},"referencedDeclaration":43068,"src":"9438:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42380,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42377,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"9470:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9493:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"9470:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9470:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9438:67:63"},{"assignments":[42383],"declarations":[{"constant":false,"id":42383,"mutability":"mutable","name":"subnetId","nameLocation":"9531:8:63","nodeType":"VariableDeclaration","scope":42445,"src":"9515:24:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42382,"nodeType":"UserDefinedTypeName","pathNode":{"id":42381,"name":"SubnetID","nameLocations":["9515:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"9515:8:63"},"referencedDeclaration":50077,"src":"9515:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":42392,"initialValue":{"arguments":[{"expression":{"id":42389,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42376,"src":"9580:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9582:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"9580:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"expression":{"expression":{"id":42384,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42371,"src":"9542:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9555:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"9542:20:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9563:2:63","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"9542:23:63","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},"id":42387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9566:8:63","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"9542:32:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":42388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9575:4:63","memberName":"down","nodeType":"MemberAccess","referencedDeclaration":48051,"src":"9542:37:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":42391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9542:52:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"9515:79:63"},{"assignments":[42394,42397],"declarations":[{"constant":false,"id":42394,"mutability":"mutable","name":"registered","nameLocation":"9611:10:63","nodeType":"VariableDeclaration","scope":42445,"src":"9606:15:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42393,"name":"bool","nodeType":"ElementaryTypeName","src":"9606:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42397,"mutability":"mutable","name":"subnet","nameLocation":"9638:6:63","nodeType":"VariableDeclaration","scope":42445,"src":"9623:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":42396,"nodeType":"UserDefinedTypeName","pathNode":{"id":42395,"name":"Subnet","nameLocations":["9623:6:63"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"9623:6:63"},"referencedDeclaration":50091,"src":"9623:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":42401,"initialValue":{"arguments":[{"id":42399,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"9658:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"id":42398,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[42655,42692],"referencedDeclaration":42692,"src":"9648:9:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":42400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9648:19:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"9605:62:63"},{"condition":{"id":42403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9682:11:63","subExpression":{"id":42402,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42394,"src":"9683:10:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42408,"nodeType":"IfStatement","src":"9678:70:63","trueBody":{"id":42407,"nodeType":"Block","src":"9695:53:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42404,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"9716:19:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9716:21:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42406,"nodeType":"RevertStatement","src":"9709:28:63"}]}},{"assignments":[42410],"declarations":[{"constant":false,"id":42410,"mutability":"mutable","name":"topDownNonce","nameLocation":"9765:12:63","nodeType":"VariableDeclaration","scope":42445,"src":"9758:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42409,"name":"uint64","nodeType":"ElementaryTypeName","src":"9758:6:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":42413,"initialValue":{"expression":{"id":42411,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42397,"src":"9780:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9787:12:63","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"9780:19:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"9758:41:63"},{"expression":{"id":42420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":42414,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42371,"src":"9810:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9823:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"9810:20:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9831:5:63","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49984,"src":"9810:26:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42419,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42410,"src":"9839:12:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9810:41:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42421,"nodeType":"ExpressionStatement","src":"9810:41:63"},{"expression":{"id":42428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42422,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42397,"src":"9861:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9868:12:63","memberName":"topDownNonce","nodeType":"MemberAccess","referencedDeclaration":50085,"src":"9861:19:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42425,"name":"topDownNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42410,"src":"9883:12:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":42426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9898:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9883:16:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9861:38:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42429,"nodeType":"ExpressionStatement","src":"9861:38:63"},{"expression":{"id":42436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42430,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42397,"src":"9909:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9916:10:63","memberName":"circSupply","nodeType":"MemberAccess","referencedDeclaration":50083,"src":"9909:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"expression":{"id":42433,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42371,"src":"9930:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9943:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"9930:20:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9951:5:63","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":49982,"src":"9930:26:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9909:47:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42437,"nodeType":"ExpressionStatement","src":"9909:47:63"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42439,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"9999:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":42440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10008:10:63","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":47511,"src":"9999:19:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":42441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9999:21:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42442,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42371,"src":"10031:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"id":42438,"name":"NewTopDownMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41750,"src":"9972:17:63","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$__$","typeString":"function (address,struct CrossMsg memory)"}},"id":42443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9991:6:63","10022:7:63"],"names":["subnet","message"],"nodeType":"FunctionCall","src":"9972:73:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42444,"nodeType":"EmitStatement","src":"9967:78:63"}]},"documentation":{"id":42368,"nodeType":"StructuredDocumentation","src":"9165:193:63","text":"@notice commit topdown messages for their execution in the subnet. Adds the message to the subnet struct for future execution\n @param crossMessage - the cross message to be committed"},"implemented":true,"kind":"function","modifiers":[],"name":"commitTopDownMsg","nameLocation":"9372:16:63","parameters":{"id":42372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42371,"mutability":"mutable","name":"crossMessage","nameLocation":"9405:12:63","nodeType":"VariableDeclaration","scope":42446,"src":"9389:28:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":42370,"nodeType":"UserDefinedTypeName","pathNode":{"id":42369,"name":"CrossMsg","nameLocations":["9389:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"9389:8:63"},"referencedDeclaration":49974,"src":"9389:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"9388:30:63"},"returnParameters":{"id":42373,"nodeType":"ParameterList","parameters":[],"src":"9428:0:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42612,"nodeType":"FunctionDefinition","src":"10203:2248:63","nodes":[],"body":{"id":42611,"nodeType":"Block","src":"10269:2182:63","nodes":[],"statements":[{"assignments":[42455],"declarations":[{"constant":false,"id":42455,"mutability":"mutable","name":"s","nameLocation":"10307:1:63","nodeType":"VariableDeclaration","scope":42611,"src":"10279:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42454,"nodeType":"UserDefinedTypeName","pathNode":{"id":42453,"name":"GatewayActorStorage","nameLocations":["10279:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"10279:19:63"},"referencedDeclaration":43068,"src":"10279:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42459,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42456,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"10311:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10334:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"10311:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10311:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10279:67:63"},{"assignments":[42461],"declarations":[{"constant":false,"id":42461,"mutability":"mutable","name":"epoch","nameLocation":"10364:5:63","nodeType":"VariableDeclaration","scope":42611,"src":"10356:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42460,"name":"uint256","nodeType":"ElementaryTypeName","src":"10356:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42468,"initialValue":{"arguments":[{"expression":{"id":42463,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10385:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":42464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10391:6:63","memberName":"number","nodeType":"MemberAccess","src":"10385:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":42465,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42455,"src":"10399:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10401:22:63","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":43045,"src":"10399:24:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42462,"name":"getNextEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42716,"src":"10372:12:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":42467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10372:52:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10356:68:63"},{"expression":{"id":42476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":42469,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42450,"src":"10475:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10488:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"10475:20:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10496:5:63","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49984,"src":"10475:26:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42474,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42455,"src":"10504:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10506:13:63","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":43033,"src":"10504:15:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10475:44:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42477,"nodeType":"ExpressionStatement","src":"10475:44:63"},{"expression":{"id":42482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42478,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42455,"src":"10529:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10531:13:63","memberName":"bottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":43033,"src":"10529:15:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":42481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10548:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10529:20:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42483,"nodeType":"ExpressionStatement","src":"10529:20:63"},{"assignments":[42485,42488],"declarations":[{"constant":false,"id":42485,"mutability":"mutable","name":"exists","nameLocation":"10611:6:63","nodeType":"VariableDeclaration","scope":42611,"src":"10606:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42484,"name":"bool","nodeType":"ElementaryTypeName","src":"10606:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42488,"mutability":"mutable","name":"batch","nameLocation":"10644:5:63","nodeType":"VariableDeclaration","scope":42611,"src":"10619:30:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":42487,"nodeType":"UserDefinedTypeName","pathNode":{"id":42486,"name":"BottomUpMsgBatch","nameLocations":["10619:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"10619:16:63"},"referencedDeclaration":49945,"src":"10619:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"id":42493,"initialValue":{"arguments":[{"id":42491,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42461,"src":"10684:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42489,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"10653:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":42490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10664:19:63","memberName":"getBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":41868,"src":"10653:30:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpMsgBatch_$49945_storage_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpMsgBatch storage pointer)"}},"id":42492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10653:37:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpMsgBatch_$49945_storage_ptr_$","typeString":"tuple(bool,struct BottomUpMsgBatch storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"10605:85:63"},{"condition":{"id":42495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10704:7:63","subExpression":{"id":42494,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42485,"src":"10705:6:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":42609,"nodeType":"Block","src":"10921:1524:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42518,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"11079:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42519,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11085:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"11079:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11090:6:63","memberName":"length","nodeType":"MemberAccess","src":"11079:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":42521,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42455,"src":"11100:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11102:23:63","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":43048,"src":"11100:25:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11079:46:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":42607,"nodeType":"Block","src":"12232:203:63","statements":[{"expression":{"arguments":[{"id":42604,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42450,"src":"12407:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":42599,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"12391:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12397:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"12391:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12402:4:63","memberName":"push","nodeType":"MemberAccess","src":"12391:15:63","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$49974_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":42605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12391:29:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42606,"nodeType":"ExpressionStatement","src":"12391:29:63"}]},"id":42608,"nodeType":"IfStatement","src":"11075:1360:63","trueBody":{"id":42598,"nodeType":"Block","src":"11126:1100:63","statements":[{"assignments":[42525],"declarations":[{"constant":false,"id":42525,"mutability":"mutable","name":"epochCut","nameLocation":"11222:8:63","nodeType":"VariableDeclaration","scope":42598,"src":"11214:16:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42524,"name":"uint256","nodeType":"ElementaryTypeName","src":"11214:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42528,"initialValue":{"expression":{"id":42526,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"11233:5:63","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":42527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11239:6:63","memberName":"number","nodeType":"MemberAccess","src":"11233:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11214:31:63"},{"assignments":[42531],"declarations":[{"constant":false,"id":42531,"mutability":"mutable","name":"newBatch","nameLocation":"11287:8:63","nodeType":"VariableDeclaration","scope":42598,"src":"11263:32:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":42530,"nodeType":"UserDefinedTypeName","pathNode":{"id":42529,"name":"BottomUpMsgBatch","nameLocations":["11263:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"11263:16:63"},"referencedDeclaration":49945,"src":"11263:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"id":42545,"initialValue":{"arguments":[{"expression":{"id":42533,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42455,"src":"11347:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11349:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"11347:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},{"id":42535,"name":"epochCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42525,"src":"11395:8:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"expression":{"id":42540,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"11446:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11452:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"11446:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11457:6:63","memberName":"length","nodeType":"MemberAccess","src":"11446:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11431:14:63","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct CrossMsg memory[] memory)"},"typeName":{"baseType":{"id":42537,"nodeType":"UserDefinedTypeName","pathNode":{"id":42536,"name":"CrossMsg","nameLocations":["11435:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"11435:8:63"},"referencedDeclaration":49974,"src":"11435:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":42538,"nodeType":"ArrayTypeName","src":"11435:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}}},"id":42543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11431:33:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}],"id":42532,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"11298:16:63","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpMsgBatch_$49945_storage_ptr_$","typeString":"type(struct BottomUpMsgBatch storage pointer)"}},"id":42544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11337:8:63","11382:11:63","11425:4:63"],"names":["subnetID","blockHeight","msgs"],"nodeType":"FunctionCall","src":"11298:185:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"nodeType":"VariableDeclarationStatement","src":"11263:220:63"},{"assignments":[42547],"declarations":[{"constant":false,"id":42547,"mutability":"mutable","name":"msgLength","nameLocation":"11509:9:63","nodeType":"VariableDeclaration","scope":42598,"src":"11501:17:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42546,"name":"uint256","nodeType":"ElementaryTypeName","src":"11501:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42551,"initialValue":{"expression":{"expression":{"id":42548,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"11521:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11527:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"11521:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11532:6:63","memberName":"length","nodeType":"MemberAccess","src":"11521:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11501:37:63"},{"body":{"id":42573,"nodeType":"Block","src":"11588:156:63","statements":[{"expression":{"id":42567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":42558,"name":"newBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42531,"src":"11610:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":42561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11619:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"11610:13:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42562,"indexExpression":{"id":42560,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42553,"src":"11624:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11610:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":42563,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"11629:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11635:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"11629:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42566,"indexExpression":{"id":42565,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42553,"src":"11640:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11629:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage","typeString":"struct CrossMsg storage ref"}},"src":"11610:32:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42568,"nodeType":"ExpressionStatement","src":"11610:32:63"},{"id":42572,"nodeType":"UncheckedBlock","src":"11664:62:63","statements":[{"expression":{"id":42570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11700:3:63","subExpression":{"id":42569,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42553,"src":"11702:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42571,"nodeType":"ExpressionStatement","src":"11700:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42555,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42553,"src":"11572:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42556,"name":"msgLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42547,"src":"11576:9:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11572:13:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42574,"initializationExpression":{"assignments":[42553],"declarations":[{"constant":false,"id":42553,"mutability":"mutable","name":"i","nameLocation":"11569:1:63","nodeType":"VariableDeclaration","scope":42574,"src":"11561:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42552,"name":"uint256","nodeType":"ElementaryTypeName","src":"11561:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42554,"nodeType":"VariableDeclarationStatement","src":"11561:9:63"},"nodeType":"ForStatement","src":"11556:188:63"},{"eventCall":{"arguments":[{"id":42576,"name":"epochCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42525,"src":"11863:8:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":42577,"name":"newBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42531,"src":"11872:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}],"id":42575,"name":"NewBottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41758,"src":"11843:19:63","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$returns$__$","typeString":"function (uint256,struct BottomUpMsgBatch memory)"}},"id":42578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11843:38:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42579,"nodeType":"EmitStatement","src":"11838:43:63"},{"expression":{"id":42582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"12010:17:63","subExpression":{"expression":{"id":42580,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"12017:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12023:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"12017:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42583,"nodeType":"ExpressionStatement","src":"12010:17:63"},{"expression":{"arguments":[{"id":42589,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42450,"src":"12137:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":42584,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"12121:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12127:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"12121:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12132:4:63","memberName":"push","nodeType":"MemberAccess","src":"12121:15:63","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$49974_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":42590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12121:29:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42591,"nodeType":"ExpressionStatement","src":"12121:29:63"},{"expression":{"arguments":[{"id":42595,"name":"newBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42531,"src":"12202:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}],"expression":{"id":42592,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"12169:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":42594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12180:21:63","memberName":"storeBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":42007,"src":"12169:32:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory)"}},"id":42596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12169:42:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42597,"nodeType":"ExpressionStatement","src":"12169:42:63"}]}}]},"id":42610,"nodeType":"IfStatement","src":"10700:1745:63","trueBody":{"id":42517,"nodeType":"Block","src":"10713:202:63","statements":[{"expression":{"id":42501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42496,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"10727:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10733:8:63","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49936,"src":"10727:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":42499,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42455,"src":"10744:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10746:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"10744:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"src":"10727:30:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":42502,"nodeType":"ExpressionStatement","src":"10727:30:63"},{"expression":{"id":42507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42503,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"10771:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10777:11:63","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"10771:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42506,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42461,"src":"10791:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10771:25:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42508,"nodeType":"ExpressionStatement","src":"10771:25:63"},{"expression":{"arguments":[{"id":42514,"name":"crossMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42450,"src":"10891:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"expression":{"expression":{"id":42509,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42488,"src":"10875:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch storage pointer"}},"id":42512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10881:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"10875:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage","typeString":"struct CrossMsg storage ref[] storage ref"}},"id":42513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10886:4:63","memberName":"push","nodeType":"MemberAccess","src":"10875:15:63","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$_t_struct$_CrossMsg_$49974_storage_$returns$__$attached_to$_t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr_$","typeString":"function (struct CrossMsg storage ref[] storage pointer,struct CrossMsg storage ref)"}},"id":42515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10875:29:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42516,"nodeType":"ExpressionStatement","src":"10875:29:63"}]}}]},"documentation":{"id":42447,"nodeType":"StructuredDocumentation","src":"10058:140:63","text":"@notice Commits a new cross-net message to a message batch for execution\n @param crossMessage - the cross message to be committed"},"implemented":true,"kind":"function","modifiers":[],"name":"commitBottomUpMsg","nameLocation":"10212:17:63","parameters":{"id":42451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42450,"mutability":"mutable","name":"crossMessage","nameLocation":"10246:12:63","nodeType":"VariableDeclaration","scope":42612,"src":"10230:28:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":42449,"nodeType":"UserDefinedTypeName","pathNode":{"id":42448,"name":"CrossMsg","nameLocations":["10230:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"10230:8:63"},"referencedDeclaration":49974,"src":"10230:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"10229:30:63"},"returnParameters":{"id":42452,"nodeType":"ParameterList","parameters":[],"src":"10269:0:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42655,"nodeType":"FunctionDefinition","src":"12666:372:63","nodes":[],"body":{"id":42654,"nodeType":"Block","src":"12758:280:63","nodes":[],"statements":[{"assignments":[42625],"declarations":[{"constant":false,"id":42625,"mutability":"mutable","name":"s","nameLocation":"12796:1:63","nodeType":"VariableDeclaration","scope":42654,"src":"12768:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42624,"nodeType":"UserDefinedTypeName","pathNode":{"id":42623,"name":"GatewayActorStorage","nameLocations":["12768:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"12768:19:63"},"referencedDeclaration":43068,"src":"12768:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42629,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42626,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"12800:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12823:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"12800:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12800:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"12768:67:63"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":42635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42630,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42615,"src":"12849:5:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":42633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12866:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":42632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12858:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":42631,"name":"address","nodeType":"ElementaryTypeName","src":"12858:7:63","typeDescriptions":{}}},"id":42634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12858:10:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12849:19:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42640,"nodeType":"IfStatement","src":"12845:78:63","trueBody":{"id":42639,"nodeType":"Block","src":"12870:53:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42636,"name":"InvalidActorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37402,"src":"12891:19:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12891:21:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42638,"nodeType":"RevertStatement","src":"12884:28:63"}]}},{"assignments":[42643],"declarations":[{"constant":false,"id":42643,"mutability":"mutable","name":"subnetId","nameLocation":"12948:8:63","nodeType":"VariableDeclaration","scope":42654,"src":"12932:24:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42642,"nodeType":"UserDefinedTypeName","pathNode":{"id":42641,"name":"SubnetID","nameLocations":["12932:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"12932:8:63"},"referencedDeclaration":50077,"src":"12932:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":42649,"initialValue":{"arguments":[{"id":42647,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42615,"src":"12988:5:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":42644,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42625,"src":"12959:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12961:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"12959:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":42646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12973:14:63","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"12959:28:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":42648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12959:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"12932:62:63"},{"expression":{"arguments":[{"id":42651,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42643,"src":"13022:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"id":42650,"name":"getSubnet","nodeType":"Identifier","overloadedDeclarations":[42655,42692],"referencedDeclaration":42692,"src":"13012:9:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":42652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13012:19:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"functionReturnParameters":42622,"id":42653,"nodeType":"Return","src":"13005:26:63"}]},"documentation":{"id":42613,"nodeType":"StructuredDocumentation","src":"12457:204:63","text":"@notice returns the subnet created by a validator\n @param actor the validator that created the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct"},"implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"12675:9:63","parameters":{"id":42616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42615,"mutability":"mutable","name":"actor","nameLocation":"12693:5:63","nodeType":"VariableDeclaration","scope":42655,"src":"12685:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42614,"name":"address","nodeType":"ElementaryTypeName","src":"12685:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12684:15:63"},"returnParameters":{"id":42622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42618,"mutability":"mutable","name":"found","nameLocation":"12728:5:63","nodeType":"VariableDeclaration","scope":42655,"src":"12723:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42617,"name":"bool","nodeType":"ElementaryTypeName","src":"12723:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42621,"mutability":"mutable","name":"subnet","nameLocation":"12750:6:63","nodeType":"VariableDeclaration","scope":42655,"src":"12735:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":42620,"nodeType":"UserDefinedTypeName","pathNode":{"id":42619,"name":"Subnet","nameLocations":["12735:6:63"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"12735:6:63"},"referencedDeclaration":50091,"src":"12735:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"12722:35:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":42692,"nodeType":"FunctionDefinition","src":"13234:272:63","nodes":[],"body":{"id":42691,"nodeType":"Block","src":"13337:169:63","nodes":[],"statements":[{"assignments":[42669],"declarations":[{"constant":false,"id":42669,"mutability":"mutable","name":"s","nameLocation":"13375:1:63","nodeType":"VariableDeclaration","scope":42691,"src":"13347:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42668,"nodeType":"UserDefinedTypeName","pathNode":{"id":42667,"name":"GatewayActorStorage","nameLocations":["13347:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"13347:19:63"},"referencedDeclaration":43068,"src":"13347:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42673,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42670,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"13379:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13402:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"13379:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13379:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"13347:67:63"},{"expression":{"id":42681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42674,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42665,"src":"13424:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":42675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42669,"src":"13433:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13435:7:63","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":42973,"src":"13433:9:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet storage ref)"}},"id":42680,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42677,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42659,"src":"13443:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":42678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13452:6:63","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"13443:15:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":42679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13443:17:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13433:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage","typeString":"struct Subnet storage ref"}},"src":"13424:37:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42682,"nodeType":"ExpressionStatement","src":"13424:37:63"},{"expression":{"id":42689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42683,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42662,"src":"13471:5:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13479:20:63","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":42684,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42665,"src":"13480:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13487:2:63","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"13480:9:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":42686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13490:7:63","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":48071,"src":"13480:17:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":42687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13480:19:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13471:28:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42690,"nodeType":"ExpressionStatement","src":"13471:28:63"}]},"documentation":{"id":42656,"nodeType":"StructuredDocumentation","src":"13044:185:63","text":"@notice returns the subnet with the given id\n @param subnetId the id of the subnet\n @return found whether the subnet exists\n @return subnet - the subnet struct"},"implemented":true,"kind":"function","modifiers":[],"name":"getSubnet","nameLocation":"13243:9:63","parameters":{"id":42660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42659,"mutability":"mutable","name":"subnetId","nameLocation":"13269:8:63","nodeType":"VariableDeclaration","scope":42692,"src":"13253:24:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42658,"nodeType":"UserDefinedTypeName","pathNode":{"id":42657,"name":"SubnetID","nameLocations":["13253:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"13253:8:63"},"referencedDeclaration":50077,"src":"13253:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"13252:26:63"},"returnParameters":{"id":42666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42662,"mutability":"mutable","name":"found","nameLocation":"13307:5:63","nodeType":"VariableDeclaration","scope":42692,"src":"13302:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42661,"name":"bool","nodeType":"ElementaryTypeName","src":"13302:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42665,"mutability":"mutable","name":"subnet","nameLocation":"13329:6:63","nodeType":"VariableDeclaration","scope":42692,"src":"13314:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":42664,"nodeType":"UserDefinedTypeName","pathNode":{"id":42663,"name":"Subnet","nameLocations":["13314:6:63"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"13314:6:63"},"referencedDeclaration":50091,"src":"13314:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"src":"13301:35:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":42716,"nodeType":"FunctionDefinition","src":"13686:175:63","nodes":[],"body":{"id":42715,"nodeType":"Block","src":"13782:79:63","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":42704,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42695,"src":"13808:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13801:6:63","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":42702,"name":"uint64","nodeType":"ElementaryTypeName","src":"13801:6:63","typeDescriptions":{}}},"id":42705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13801:19:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":42706,"name":"checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42697,"src":"13823:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13801:33:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":42708,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13800:35:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":42709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13838:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13800:39:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":42711,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13799:41:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":42712,"name":"checkPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42697,"src":"13843:11:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13799:55:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":42701,"id":42714,"nodeType":"Return","src":"13792:62:63"}]},"documentation":{"id":42693,"nodeType":"StructuredDocumentation","src":"13512:169:63","text":"@notice method that gives the epoch for a given block number and checkpoint period\n @return epoch - the epoch for the given block number and checkpoint period"},"implemented":true,"kind":"function","modifiers":[],"name":"getNextEpoch","nameLocation":"13695:12:63","parameters":{"id":42698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42695,"mutability":"mutable","name":"blockNumber","nameLocation":"13716:11:63","nodeType":"VariableDeclaration","scope":42716,"src":"13708:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42694,"name":"uint256","nodeType":"ElementaryTypeName","src":"13708:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42697,"mutability":"mutable","name":"checkPeriod","nameLocation":"13737:11:63","nodeType":"VariableDeclaration","scope":42716,"src":"13729:19:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42696,"name":"uint256","nodeType":"ElementaryTypeName","src":"13729:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13707:42:63"},"returnParameters":{"id":42701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42716,"src":"13773:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42699,"name":"uint256","nodeType":"ElementaryTypeName","src":"13773:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13772:9:63"},"scope":42944,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42752,"nodeType":"FunctionDefinition","src":"14225:318:63","nodes":[],"body":{"id":42751,"nodeType":"Block","src":"14316:227:63","nodes":[],"statements":[{"assignments":[42728],"declarations":[{"constant":false,"id":42728,"mutability":"mutable","name":"crossMsgsLength","nameLocation":"14334:15:63","nodeType":"VariableDeclaration","scope":42751,"src":"14326:23:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42727,"name":"uint256","nodeType":"ElementaryTypeName","src":"14326:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42731,"initialValue":{"expression":{"id":42729,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42724,"src":"14352:9:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14362:6:63","memberName":"length","nodeType":"MemberAccess","src":"14352:16:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14326:42:63"},{"body":{"id":42749,"nodeType":"Block","src":"14417:120:63","statements":[{"expression":{"arguments":[{"id":42739,"name":"arrivingFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42720,"src":"14440:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"baseExpression":{"id":42740,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42724,"src":"14454:9:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42742,"indexExpression":{"id":42741,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42733,"src":"14464:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14454:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}],"id":42738,"name":"applyMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42907,"src":"14431:8:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct CrossMsg memory)"}},"id":42743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14431:36:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42744,"nodeType":"ExpressionStatement","src":"14431:36:63"},{"id":42748,"nodeType":"UncheckedBlock","src":"14481:46:63","statements":[{"expression":{"id":42746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14509:3:63","subExpression":{"id":42745,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42733,"src":"14511:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42747,"nodeType":"ExpressionStatement","src":"14509:3:63"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42735,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42733,"src":"14394:1:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42736,"name":"crossMsgsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42728,"src":"14398:15:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14394:19:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42750,"initializationExpression":{"assignments":[42733],"declarations":[{"constant":false,"id":42733,"mutability":"mutable","name":"i","nameLocation":"14391:1:63","nodeType":"VariableDeclaration","scope":42750,"src":"14383:9:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42732,"name":"uint256","nodeType":"ElementaryTypeName","src":"14383:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42734,"nodeType":"VariableDeclarationStatement","src":"14383:9:63"},"nodeType":"ForStatement","src":"14378:159:63"}]},"documentation":{"id":42717,"nodeType":"StructuredDocumentation","src":"13867:353:63","text":"@notice applies a cross-net messages coming from some other subnet.\n The forwarder argument determines the previous subnet that submitted the checkpoint triggering the cross-net message execution.\n @param arrivingFrom - the immediate subnet from which this message is arriving\n @param crossMsgs - the cross-net messages to apply"},"implemented":true,"kind":"function","modifiers":[],"name":"applyMessages","nameLocation":"14234:13:63","parameters":{"id":42725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42720,"mutability":"mutable","name":"arrivingFrom","nameLocation":"14264:12:63","nodeType":"VariableDeclaration","scope":42752,"src":"14248:28:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42719,"nodeType":"UserDefinedTypeName","pathNode":{"id":42718,"name":"SubnetID","nameLocations":["14248:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"14248:8:63"},"referencedDeclaration":50077,"src":"14248:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":42724,"mutability":"mutable","name":"crossMsgs","nameLocation":"14296:9:63","nodeType":"VariableDeclaration","scope":42752,"src":"14278:27:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":42722,"nodeType":"UserDefinedTypeName","pathNode":{"id":42721,"name":"CrossMsg","nameLocations":["14278:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"14278:8:63"},"referencedDeclaration":49974,"src":"14278:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":42723,"nodeType":"ArrayTypeName","src":"14278:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"14247:59:63"},"returnParameters":{"id":42726,"nodeType":"ParameterList","parameters":[],"src":"14316:0:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42907,"nodeType":"FunctionDefinition","src":"14837:2300:63","nodes":[],"body":{"id":42906,"nodeType":"Block","src":"14920:2217:63","nodes":[],"statements":[{"assignments":[42764],"declarations":[{"constant":false,"id":42764,"mutability":"mutable","name":"s","nameLocation":"14958:1:63","nodeType":"VariableDeclaration","scope":42906,"src":"14930:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42763,"nodeType":"UserDefinedTypeName","pathNode":{"id":42762,"name":"GatewayActorStorage","nameLocations":["14930:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"14930:19:63"},"referencedDeclaration":43068,"src":"14930:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42768,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42765,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"14962:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14985:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"14962:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14962:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14930:67:63"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"expression":{"id":42769,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"15012:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"15012:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15029:2:63","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"15012:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},"id":42772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15032:8:63","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"15012:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":42773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15041:7:63","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":48071,"src":"15012:36:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":42774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15012:38:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42779,"nodeType":"IfStatement","src":"15008:102:63","trueBody":{"id":42778,"nodeType":"Block","src":"15052:58:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42775,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"15073:24:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15073:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42777,"nodeType":"RevertStatement","src":"15066:33:63"}]}},{"condition":{"id":42788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15291:51:63","subExpression":{"arguments":[{"expression":{"id":42785,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42764,"src":"15328:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15330:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"15328:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"expression":{"expression":{"id":42780,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"15292:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15301:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"15292:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15309:2:63","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"15292:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_memory_ptr","typeString":"struct IPCAddress memory"}},"id":42783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15312:8:63","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"15292:28:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":42784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15321:6:63","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47825,"src":"15292:35:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":42787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15292:50:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42805,"nodeType":"IfStatement","src":"15287:172:63","trueBody":{"id":42804,"nodeType":"Block","src":"15344:115:63","statements":[{"assignments":[42790],"declarations":[{"constant":false,"id":42790,"mutability":"mutable","name":"cid","nameLocation":"15366:3:63","nodeType":"VariableDeclaration","scope":42804,"src":"15358:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15358:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42794,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42791,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"15372:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15381:6:63","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":40590,"src":"15372:15:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_CrossMsg_$49974_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct CrossMsg memory) pure returns (bytes32)"}},"id":42793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15372:17:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15358:31:63"},{"expression":{"id":42801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":42795,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42764,"src":"15403:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15405:7:63","memberName":"postbox","nodeType":"MemberAccess","referencedDeclaration":42988,"src":"15403:9:63","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg storage ref)"}},"id":42799,"indexExpression":{"id":42797,"name":"cid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42790,"src":"15413:3:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15403:14:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage","typeString":"struct CrossMsg storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42800,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"15420:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"src":"15403:25:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage","typeString":"struct CrossMsg storage ref"}},"id":42802,"nodeType":"ExpressionStatement","src":"15403:25:63"},{"functionReturnParameters":42761,"id":42803,"nodeType":"Return","src":"15442:7:63"}]}},{"assignments":[42808],"declarations":[{"constant":false,"id":42808,"mutability":"mutable","name":"supplySource","nameLocation":"15633:12:63","nodeType":"VariableDeclaration","scope":42906,"src":"15613:32:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":42807,"nodeType":"UserDefinedTypeName","pathNode":{"id":42806,"name":"SupplySource","nameLocations":["15613:12:63"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"15613:12:63"},"referencedDeclaration":50226,"src":"15613:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"id":42809,"nodeType":"VariableDeclarationStatement","src":"15613:32:63"},{"assignments":[42812],"declarations":[{"constant":false,"id":42812,"mutability":"mutable","name":"applyType","nameLocation":"15666:9:63","nodeType":"VariableDeclaration","scope":42906,"src":"15655:20:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"typeName":{"id":42811,"nodeType":"UserDefinedTypeName","pathNode":{"id":42810,"name":"IPCMsgType","nameLocations":["15655:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":37364,"src":"15655:10:63"},"referencedDeclaration":37364,"src":"15655:10:63","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"visibility":"internal"}],"id":42819,"initialValue":{"arguments":[{"expression":{"id":42816,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42764,"src":"15705:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15707:11:63","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"15705:13:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}],"expression":{"expression":{"id":42813,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"15678:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15687:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"15678:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15695:9:63","memberName":"applyType","nodeType":"MemberAccess","referencedDeclaration":47444,"src":"15678:26:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_StorableMsg_$49991_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_enum$_IPCMsgType_$37364_$attached_to$_t_struct$_StorableMsg_$49991_memory_ptr_$","typeString":"function (struct StorableMsg memory,struct SubnetID memory) pure returns (enum IPCMsgType)"}},"id":42818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15678:41:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"VariableDeclarationStatement","src":"15655:64:63"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"id":42823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42820,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42812,"src":"15733:9:63","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":42821,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"15746:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":42822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15757:8:63","memberName":"BottomUp","nodeType":"MemberAccess","referencedDeclaration":37363,"src":"15746:19:63","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"src":"15733:32:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"id":42873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42870,"name":"applyType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42812,"src":"16510:9:63","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":42871,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"16523:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":42872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16534:7:63","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":37362,"src":"16523:18:63","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"src":"16510:31:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42898,"nodeType":"IfStatement","src":"16506:533:63","trueBody":{"id":42897,"nodeType":"Block","src":"16543:496:63","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42874,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42764,"src":"16677:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16679:19:63","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":43036,"src":"16677:21:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":42876,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"16702:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16711:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"16702:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16719:5:63","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49984,"src":"16702:22:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"16677:47:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42884,"nodeType":"IfStatement","src":"16673:115:63","trueBody":{"id":42883,"nodeType":"Block","src":"16726:62:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42880,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"16751:20:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16751:22:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42882,"nodeType":"RevertStatement","src":"16744:29:63"}]}},{"expression":{"id":42889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42885,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42764,"src":"16801:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16803:19:63","memberName":"appliedTopDownNonce","nodeType":"MemberAccess","referencedDeclaration":43036,"src":"16801:21:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":42888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16826:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16801:26:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42890,"nodeType":"ExpressionStatement","src":"16801:26:63"},{"expression":{"id":42895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42891,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42808,"src":"16986:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42892,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"17001:18:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":42893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17020:6:63","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"17001:25:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":42894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17001:27:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"src":"16986:42:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":42896,"nodeType":"ExpressionStatement","src":"16986:42:63"}]}},"id":42899,"nodeType":"IfStatement","src":"15729:1310:63","trueBody":{"id":42869,"nodeType":"Block","src":"15767:733:63","statements":[{"assignments":[42825,42828],"declarations":[{"constant":false,"id":42825,"mutability":"mutable","name":"registered","nameLocation":"15908:10:63","nodeType":"VariableDeclaration","scope":42869,"src":"15903:15:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42824,"name":"bool","nodeType":"ElementaryTypeName","src":"15903:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42828,"mutability":"mutable","name":"subnet","nameLocation":"15935:6:63","nodeType":"VariableDeclaration","scope":42869,"src":"15920:21:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"},"typeName":{"id":42827,"nodeType":"UserDefinedTypeName","pathNode":{"id":42826,"name":"Subnet","nameLocations":["15920:6:63"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"15920:6:63"},"referencedDeclaration":50091,"src":"15920:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}},"visibility":"internal"}],"id":42833,"initialValue":{"arguments":[{"id":42831,"name":"arrivingFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42756,"src":"15966:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":42829,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"15945:10:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":42830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15956:9:63","memberName":"getSubnet","nodeType":"MemberAccess","referencedDeclaration":42692,"src":"15945:20:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"function (struct SubnetID memory) view returns (bool,struct Subnet storage pointer)"}},"id":42832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15945:34:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_Subnet_$50091_storage_ptr_$","typeString":"tuple(bool,struct Subnet storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"15902:77:63"},{"condition":{"id":42835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15997:11:63","subExpression":{"id":42834,"name":"registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42825,"src":"15998:10:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42840,"nodeType":"IfStatement","src":"15993:78:63","trueBody":{"id":42839,"nodeType":"Block","src":"16010:61:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42836,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"16035:19:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16035:21:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42838,"nodeType":"RevertStatement","src":"16028:28:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":42846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42841,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42828,"src":"16088:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16095:20:63","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"16088:27:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":42843,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"16119:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16128:7:63","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":49971,"src":"16119:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_memory_ptr","typeString":"struct StorableMsg memory"}},"id":42845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16136:5:63","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":49984,"src":"16119:22:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"16088:53:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42851,"nodeType":"IfStatement","src":"16084:121:63","trueBody":{"id":42850,"nodeType":"Block","src":"16143:62:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42847,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"16168:20:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16168:22:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42849,"nodeType":"RevertStatement","src":"16161:29:63"}]}},{"expression":{"id":42856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42852,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42828,"src":"16218:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42854,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16225:20:63","memberName":"appliedBottomUpNonce","nodeType":"MemberAccess","referencedDeclaration":50087,"src":"16218:27:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":42855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16249:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16218:32:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":42857,"nodeType":"ExpressionStatement","src":"16218:32:63"},{"expression":{"id":42867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42858,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42808,"src":"16415:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":42860,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42828,"src":"16453:6:63","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet storage pointer"}},"id":42861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16460:2:63","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":50090,"src":"16453:9:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":42862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16463:8:63","memberName":"getActor","nodeType":"MemberAccess","referencedDeclaration":47765,"src":"16453:18:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_address_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (address)"}},"id":42863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16453:20:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42859,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"16430:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":42864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16430:44:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":42865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16475:12:63","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":50886,"src":"16430:57:63","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () view external returns (struct SupplySource memory)"}},"id":42866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16430:59:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"src":"16415:74:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":42868,"nodeType":"ExpressionStatement","src":"16415:74:63"}]}},{"expression":{"arguments":[{"id":42903,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42808,"src":"17117:12:63","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":42900,"name":"crossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42759,"src":"17100:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg memory"}},"id":42902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17109:7:63","memberName":"execute","nodeType":"MemberAccess","referencedDeclaration":40724,"src":"17100:16:63","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_struct$_CrossMsg_$49974_memory_ptr_$_t_struct$_SupplySource_$50226_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CrossMsg_$49974_memory_ptr_$","typeString":"function (struct CrossMsg memory,struct SupplySource memory) returns (bytes memory)"}},"id":42904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17100:30:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":42905,"nodeType":"ExpressionStatement","src":"17100:30:63"}]},"documentation":{"id":42753,"nodeType":"StructuredDocumentation","src":"14549:283:63","text":"@notice executes a cross message if its destination is the current network, otherwise adds it to the postbox to be propagated further\n @param arrivingFrom - the immediate subnet from which this message is arriving\n @param crossMsg - the cross message to be executed"},"implemented":true,"kind":"function","modifiers":[],"name":"applyMsg","nameLocation":"14846:8:63","parameters":{"id":42760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42756,"mutability":"mutable","name":"arrivingFrom","nameLocation":"14871:12:63","nodeType":"VariableDeclaration","scope":42907,"src":"14855:28:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":42755,"nodeType":"UserDefinedTypeName","pathNode":{"id":42754,"name":"SubnetID","nameLocations":["14855:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"14855:8:63"},"referencedDeclaration":50077,"src":"14855:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":42759,"mutability":"mutable","name":"crossMsg","nameLocation":"14901:8:63","nodeType":"VariableDeclaration","scope":42907,"src":"14885:24:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_memory_ptr","typeString":"struct CrossMsg"},"typeName":{"id":42758,"nodeType":"UserDefinedTypeName","pathNode":{"id":42757,"name":"CrossMsg","nameLocations":["14885:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"14885:8:63"},"referencedDeclaration":49974,"src":"14885:8:63","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"visibility":"internal"}],"src":"14854:56:63"},"returnParameters":{"id":42761,"nodeType":"ParameterList","parameters":[],"src":"14920:0:63"},"scope":42944,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42943,"nodeType":"FunctionDefinition","src":"17298:361:63","nodes":[],"body":{"id":42942,"nodeType":"Block","src":"17367:292:63","nodes":[],"statements":[{"assignments":[42916],"declarations":[{"constant":false,"id":42916,"mutability":"mutable","name":"s","nameLocation":"17405:1:63","nodeType":"VariableDeclaration","scope":42942,"src":"17377:29:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42915,"nodeType":"UserDefinedTypeName","pathNode":{"id":42914,"name":"GatewayActorStorage","nameLocations":["17377:19:63"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"17377:19:63"},"referencedDeclaration":43068,"src":"17377:19:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"id":42920,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":42917,"name":"LibGatewayActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43079,"src":"17409:22:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGatewayActorStorage_$43079_$","typeString":"type(library LibGatewayActorStorage)"}},"id":42918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17432:10:63","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":43078,"src":"17409:33:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_GatewayActorStorage_$43068_storage_ptr_$","typeString":"function () pure returns (struct GatewayActorStorage storage pointer)"}},"id":42919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17409:35:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17377:67:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42921,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42911,"src":"17459:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":42922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17465:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"17459:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17470:6:63","memberName":"length","nodeType":"MemberAccess","src":"17459:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":42924,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42916,"src":"17479:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"id":42925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17481:23:63","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":43048,"src":"17479:25:63","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"17459:45:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42931,"nodeType":"IfStatement","src":"17455:108:63","trueBody":{"id":42930,"nodeType":"Block","src":"17506:57:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42927,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"17527:23:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17527:25:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42929,"nodeType":"RevertStatement","src":"17520:32:63"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":42932,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42911,"src":"17576:5:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch memory"}},"id":42933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17582:4:63","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"17576:10:63","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr","typeString":"struct CrossMsg memory[] memory"}},"id":42934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17587:6:63","memberName":"length","nodeType":"MemberAccess","src":"17576:17:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":42935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17597:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17576:22:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42941,"nodeType":"IfStatement","src":"17572:81:63","trueBody":{"id":42940,"nodeType":"Block","src":"17600:53:63","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42937,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"17621:19:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17621:21:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42939,"nodeType":"RevertStatement","src":"17614:28:63"}]}}]},"documentation":{"id":42908,"nodeType":"StructuredDocumentation","src":"17143:150:63","text":"@notice Checks the length of a message batch, ensuring it is in (0, maxMsgsPerBottomUpBatch).\n @param batch The batch of messages to check."},"implemented":true,"kind":"function","modifiers":[],"name":"checkMsgLength","nameLocation":"17307:14:63","parameters":{"id":42912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42911,"mutability":"mutable","name":"batch","nameLocation":"17346:5:63","nodeType":"VariableDeclaration","scope":42943,"src":"17322:29:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_memory_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":42910,"nodeType":"UserDefinedTypeName","pathNode":{"id":42909,"name":"BottomUpMsgBatch","nameLocations":["17322:16:63"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"17322:16:63"},"referencedDeclaration":49945,"src":"17322:16:63","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"}],"src":"17321:31:63"},"returnParameters":{"id":42913,"nodeType":"ParameterList","parameters":[],"src":"17367:0:63"},"scope":42944,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGateway","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[42944],"name":"LibGateway","nameLocation":"1037:10:63","scope":42945,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":63} \ No newline at end of file diff --git a/.out/LibGatewayActorStorage.sol/GatewayActorModifiers.json b/.out/LibGatewayActorStorage.sol/GatewayActorModifiers.json index 5b17817b5..95e714723 100644 --- a/.out/LibGatewayActorStorage.sol/GatewayActorModifiers.json +++ b/.out/LibGatewayActorStorage.sol/GatewayActorModifiers.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea26469706673582212204818145bdd0d4092026d4de76155b376bc7791516a69d1675ab045981726452464736f6c63430008130033","sourceMap":"4104:629:59:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212204818145bdd0d4092026d4de76155b376bc7791516a69d1675ab045981726452464736f6c63430008130033","sourceMap":"4104:629:59:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibGatewayActorStorage.sol\":\"GatewayActorModifiers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2\",\"dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibGatewayActorStorage.sol":"GatewayActorModifiers"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c","urls":["bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2","dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibGatewayActorStorage.sol","id":42439,"exportedSymbols":{"AccountHelper":[39997],"BottomUpCheckpoint":[48410],"BottomUpMsgBatch":[48423],"CrossMsg":[48452],"FilAddress":[1428],"GatewayActorModifiers":[42438],"GatewayActorStorage":[42369],"LibGatewayActorStorage":[42380],"Membership":[48701],"NotEnoughFee":[37036],"NotEnoughFunds":[37038],"NotSystemActor":[37054],"ParentFinality":[48396],"ParentValidatorsTracker":[48680],"QuorumMap":[48537],"Subnet":[48574],"SubnetID":[48557]},"nodeType":"SourceUnit","src":"46:4688:59","nodes":[{"id":42244,"nodeType":"PragmaDirective","src":"46:23:59","nodes":[],"literals":["solidity","0.8",".19"]},{"id":42248,"nodeType":"ImportDirective","src":"71:85:59","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":42439,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":42245,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37036,"src":"79:12:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42246,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37054,"src":"93:14:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42247,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37038,"src":"109:14:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42250,"nodeType":"ImportDirective","src":"157:48:59","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":42439,"sourceUnit":48538,"symbolAliases":[{"foreign":{"id":42249,"name":"QuorumMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48537,"src":"165:9:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42255,"nodeType":"ImportDirective","src":"206:103:59","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":42439,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":42251,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"214:18:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42252,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48423,"src":"234:16:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42253,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"252:8:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42254,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"262:14:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42259,"nodeType":"ImportDirective","src":"310:80:59","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":42439,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":42256,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"318:8:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42257,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48574,"src":"328:6:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42258,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48680,"src":"336:23:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42261,"nodeType":"ImportDirective","src":"391:49:59","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":42439,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":42260,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48701,"src":"399:10:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42263,"nodeType":"ImportDirective","src":"441:55:59","nodes":[],"absolutePath":"src/lib/AccountHelper.sol","file":"../lib/AccountHelper.sol","nameLocation":"-1:-1:-1","scope":42439,"sourceUnit":39998,"symbolAliases":[{"foreign":{"id":42262,"name":"AccountHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39997,"src":"449:13:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42265,"nodeType":"ImportDirective","src":"497:56:59","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":42439,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":42264,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"505:10:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42369,"nodeType":"StructDefinition","src":"555:3349:59","nodes":[],"canonicalName":"GatewayActorStorage","members":[{"constant":false,"id":42271,"mutability":"mutable","name":"subnets","nameLocation":"674:7:59","nodeType":"VariableDeclaration","scope":42369,"src":"647:34:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$48574_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"typeName":{"id":42270,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"655:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"647:26:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$48574_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42269,"nodeType":"UserDefinedTypeName","pathNode":{"id":42268,"name":"Subnet","nameLocations":["666:6:59"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"666:6:59"},"referencedDeclaration":48574,"src":"666:6:59","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}}},"visibility":"internal"},{"constant":false,"id":42277,"mutability":"mutable","name":"finalitiesMap","nameLocation":"816:13:59","nodeType":"VariableDeclaration","scope":42369,"src":"781:48:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$48396_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"typeName":{"id":42276,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42273,"name":"uint256","nodeType":"ElementaryTypeName","src":"789:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"781:34:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$48396_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42275,"nodeType":"UserDefinedTypeName","pathNode":{"id":42274,"name":"ParentFinality","nameLocations":["800:14:59"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"800:14:59"},"referencedDeclaration":48396,"src":"800:14:59","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}}},"visibility":"internal"},{"constant":false,"id":42280,"mutability":"mutable","name":"latestParentHeight","nameLocation":"895:18:59","nodeType":"VariableDeclaration","scope":42369,"src":"887:26:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42279,"name":"uint256","nodeType":"ElementaryTypeName","src":"887:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42286,"mutability":"mutable","name":"postbox","nameLocation":"1143:7:59","nodeType":"VariableDeclaration","scope":42369,"src":"1114:36:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$48452_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"typeName":{"id":42285,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1122:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1114:28:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$48452_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42284,"nodeType":"UserDefinedTypeName","pathNode":{"id":42283,"name":"CrossMsg","nameLocations":["1133:8:59"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"1133:8:59"},"referencedDeclaration":48452,"src":"1133:8:59","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}}},"visibility":"internal"},{"constant":false,"id":42290,"mutability":"mutable","name":"currentMembership","nameLocation":"1226:17:59","nodeType":"VariableDeclaration","scope":42369,"src":"1215:28:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42289,"nodeType":"UserDefinedTypeName","pathNode":{"id":42288,"name":"Membership","nameLocations":["1215:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":48701,"src":"1215:10:59"},"referencedDeclaration":48701,"src":"1215:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":42294,"mutability":"mutable","name":"lastMembership","nameLocation":"1333:14:59","nodeType":"VariableDeclaration","scope":42369,"src":"1322:25:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42293,"nodeType":"UserDefinedTypeName","pathNode":{"id":42292,"name":"Membership","nameLocations":["1322:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":48701,"src":"1322:10:59"},"referencedDeclaration":48701,"src":"1322:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":42300,"mutability":"mutable","name":"bottomUpCheckpoints","nameLocation":"1513:19:59","nodeType":"VariableDeclaration","scope":42369,"src":"1474:58:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":42299,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42296,"name":"uint256","nodeType":"ElementaryTypeName","src":"1482:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1474:38:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42298,"nodeType":"UserDefinedTypeName","pathNode":{"id":42297,"name":"BottomUpCheckpoint","nameLocations":["1493:18:59"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"1493:18:59"},"referencedDeclaration":48410,"src":"1493:18:59","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":42306,"mutability":"mutable","name":"bottomUpMsgBatches","nameLocation":"1699:18:59","nodeType":"VariableDeclaration","scope":42369,"src":"1662:55:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$48423_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"typeName":{"id":42305,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42302,"name":"uint256","nodeType":"ElementaryTypeName","src":"1670:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1662:36:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$48423_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42304,"nodeType":"UserDefinedTypeName","pathNode":{"id":42303,"name":"BottomUpMsgBatch","nameLocations":["1681:16:59"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"1681:16:59"},"referencedDeclaration":48423,"src":"1681:16:59","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}}},"visibility":"internal"},{"constant":false,"id":42310,"mutability":"mutable","name":"checkpointQuorumMap","nameLocation":"1784:19:59","nodeType":"VariableDeclaration","scope":42369,"src":"1774:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":42309,"nodeType":"UserDefinedTypeName","pathNode":{"id":42308,"name":"QuorumMap","nameLocations":["1774:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":48537,"src":"1774:9:59"},"referencedDeclaration":48537,"src":"1774:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":42314,"mutability":"mutable","name":"bottomUpMsgBatchQuorumMap","nameLocation":"1880:25:59","nodeType":"VariableDeclaration","scope":42369,"src":"1870:35:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":42313,"nodeType":"UserDefinedTypeName","pathNode":{"id":42312,"name":"QuorumMap","nameLocations":["1870:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":48537,"src":"1870:9:59"},"referencedDeclaration":48537,"src":"1870:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":42318,"mutability":"mutable","name":"subnetKeys","nameLocation":"2000:10:59","nodeType":"VariableDeclaration","scope":42369,"src":"1990:20:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":42316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1990:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":42317,"nodeType":"ArrayTypeName","src":"1990:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":42322,"mutability":"mutable","name":"networkName","nameLocation":"2069:11:59","nodeType":"VariableDeclaration","scope":42369,"src":"2060:20:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":42321,"nodeType":"UserDefinedTypeName","pathNode":{"id":42320,"name":"SubnetID","nameLocations":["2060:8:59"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"2060:8:59"},"referencedDeclaration":48557,"src":"2060:8:59","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":42325,"mutability":"mutable","name":"minStake","nameLocation":"2156:8:59","nodeType":"VariableDeclaration","scope":42369,"src":"2148:16:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42324,"name":"uint256","nodeType":"ElementaryTypeName","src":"2148:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42328,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2239:14:59","nodeType":"VariableDeclaration","scope":42369,"src":"2231:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42327,"name":"uint256","nodeType":"ElementaryTypeName","src":"2231:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42331,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2345:18:59","nodeType":"VariableDeclaration","scope":42369,"src":"2339:24:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":42330,"name":"uint8","nodeType":"ElementaryTypeName","src":"2339:5:59","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":42334,"mutability":"mutable","name":"bottomUpNonce","nameLocation":"2421:13:59","nodeType":"VariableDeclaration","scope":42369,"src":"2414:20:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42333,"name":"uint64","nodeType":"ElementaryTypeName","src":"2414:6:59","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42337,"mutability":"mutable","name":"appliedTopDownNonce","nameLocation":"2584:19:59","nodeType":"VariableDeclaration","scope":42369,"src":"2577:26:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42336,"name":"uint64","nodeType":"ElementaryTypeName","src":"2577:6:59","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42340,"mutability":"mutable","name":"totalSubnets","nameLocation":"2679:12:59","nodeType":"VariableDeclaration","scope":42369,"src":"2672:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42339,"name":"uint64","nodeType":"ElementaryTypeName","src":"2672:6:59","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42343,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"2773:19:59","nodeType":"VariableDeclaration","scope":42369,"src":"2765:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42342,"name":"uint256","nodeType":"ElementaryTypeName","src":"2765:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42346,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"2888:22:59","nodeType":"VariableDeclaration","scope":42369,"src":"2880:30:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42345,"name":"uint256","nodeType":"ElementaryTypeName","src":"2880:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42349,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"2976:23:59","nodeType":"VariableDeclaration","scope":42369,"src":"2969:30:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42348,"name":"uint64","nodeType":"ElementaryTypeName","src":"2969:6:59","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42353,"mutability":"mutable","name":"validatorsTracker","nameLocation":"3092:17:59","nodeType":"VariableDeclaration","scope":42369,"src":"3068:41:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":42352,"nodeType":"UserDefinedTypeName","pathNode":{"id":42351,"name":"ParentValidatorsTracker","nameLocations":["3068:23:59"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"3068:23:59"},"referencedDeclaration":48680,"src":"3068:23:59","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":42356,"mutability":"mutable","name":"maxTreeDepth","nameLocation":"3432:12:59","nodeType":"VariableDeclaration","scope":42369,"src":"3426:18:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":42355,"name":"uint8","nodeType":"ElementaryTypeName","src":"3426:5:59","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":42359,"mutability":"mutable","name":"generalPurposeCrossMsg","nameLocation":"3533:22:59","nodeType":"VariableDeclaration","scope":42369,"src":"3528:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42358,"name":"bool","nodeType":"ElementaryTypeName","src":"3528:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42362,"mutability":"mutable","name":"multiLevelCrossMsg","nameLocation":"3640:18:59","nodeType":"VariableDeclaration","scope":42369,"src":"3635:23:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42361,"name":"bool","nodeType":"ElementaryTypeName","src":"3635:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42365,"mutability":"mutable","name":"checkpointRelayerRewards","nameLocation":"3754:24:59","nodeType":"VariableDeclaration","scope":42369,"src":"3749:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42364,"name":"bool","nodeType":"ElementaryTypeName","src":"3749:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42368,"mutability":"mutable","name":"crossMsgRelayerRewards","nameLocation":"3879:22:59","nodeType":"VariableDeclaration","scope":42369,"src":"3874:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42367,"name":"bool","nodeType":"ElementaryTypeName","src":"3874:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"GatewayActorStorage","nameLocation":"562:19:59","scope":42439,"visibility":"public"},{"id":42380,"nodeType":"ContractDefinition","src":"3906:196:59","nodes":[{"id":42379,"nodeType":"FunctionDefinition","src":"3943:157:59","nodes":[],"body":{"id":42378,"nodeType":"Block","src":"4020:80:59","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4039:36:59","statements":[{"nodeType":"YulAssignment","src":"4053:12:59","value":{"kind":"number","nodeType":"YulLiteral","src":"4064:1:59","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"4053:7:59"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":42373,"isOffset":false,"isSlot":true,"src":"4053:7:59","suffix":"slot","valueSize":1}],"id":42375,"nodeType":"InlineAssembly","src":"4030:45:59"},{"expression":{"id":42376,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42373,"src":"4091:2:59","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"functionReturnParameters":42374,"id":42377,"nodeType":"Return","src":"4084:9:59"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3952:10:59","parameters":{"id":42370,"nodeType":"ParameterList","parameters":[],"src":"3962:2:59"},"returnParameters":{"id":42374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42373,"mutability":"mutable","name":"ds","nameLocation":"4016:2:59","nodeType":"VariableDeclaration","scope":42379,"src":"3988:30:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42372,"nodeType":"UserDefinedTypeName","pathNode":{"id":42371,"name":"GatewayActorStorage","nameLocations":["3988:19:59"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"3988:19:59"},"referencedDeclaration":42369,"src":"3988:19:59","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"src":"3987:32:59"},"scope":42380,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGatewayActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[42380],"name":"LibGatewayActorStorage","nameLocation":"3914:22:59","scope":42439,"usedErrors":[]},{"id":42438,"nodeType":"ContractDefinition","src":"4104:629:59","nodes":[{"id":42383,"nodeType":"VariableDeclaration","src":"4141:30:59","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"4170:1:59","scope":42438,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":42382,"nodeType":"UserDefinedTypeName","pathNode":{"id":42381,"name":"GatewayActorStorage","nameLocations":["4141:19:59"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"4141:19:59"},"referencedDeclaration":42369,"src":"4141:19:59","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":42386,"nodeType":"UsingForDirective","src":"4178:29:59","nodes":[],"global":false,"libraryName":{"id":42384,"name":"FilAddress","nameLocations":["4184:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4184:10:59"},"typeName":{"id":42385,"name":"address","nodeType":"ElementaryTypeName","src":"4199:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":42389,"nodeType":"UsingForDirective","src":"4212:37:59","nodes":[],"global":false,"libraryName":{"id":42387,"name":"FilAddress","nameLocations":["4218:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4218:10:59"},"typeName":{"id":42388,"name":"address","nodeType":"ElementaryTypeName","src":"4233:15:59","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":42392,"nodeType":"UsingForDirective","src":"4254:32:59","nodes":[],"global":false,"libraryName":{"id":42390,"name":"AccountHelper","nameLocations":["4260:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":39997,"src":"4260:13:59"},"typeName":{"id":42391,"name":"address","nodeType":"ElementaryTypeName","src":"4278:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":42416,"nodeType":"FunctionDefinition","src":"4292:216:59","nodes":[],"body":{"id":42415,"nodeType":"Block","src":"4340:168:59","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42397,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42394,"src":"4354:3:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":42398,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"4360:1:59","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":42399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4362:14:59","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":42328,"src":"4360:16:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4354:22:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42405,"nodeType":"IfStatement","src":"4350:74:59","trueBody":{"id":42404,"nodeType":"Block","src":"4378:46:59","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42401,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37036,"src":"4399:12:59","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4399:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42403,"nodeType":"RevertStatement","src":"4392:21:59"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42406,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4437:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":42407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4441:5:59","memberName":"value","nodeType":"MemberAccess","src":"4437:9:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42408,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42394,"src":"4449:3:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4437:15:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42414,"nodeType":"IfStatement","src":"4433:69:59","trueBody":{"id":42413,"nodeType":"Block","src":"4454:48:59","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42410,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37038,"src":"4475:14:59","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4475:16:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42412,"nodeType":"RevertStatement","src":"4468:23:59"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"validateFee","nameLocation":"4301:11:59","parameters":{"id":42395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42394,"mutability":"mutable","name":"fee","nameLocation":"4321:3:59","nodeType":"VariableDeclaration","scope":42416,"src":"4313:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42393,"name":"uint256","nodeType":"ElementaryTypeName","src":"4313:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4312:13:59"},"returnParameters":{"id":42396,"nodeType":"ParameterList","parameters":[],"src":"4340:0:59"},"scope":42438,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":42430,"nodeType":"FunctionDefinition","src":"4514:138:59","nodes":[],"body":{"id":42429,"nodeType":"Block","src":"4555:97:59","nodes":[],"statements":[{"condition":{"id":42423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4569:27:59","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":42419,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4570:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":42420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4574:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4570:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":42421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4581:13:59","memberName":"isSystemActor","nodeType":"MemberAccess","referencedDeclaration":39996,"src":"4570:24:59","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) pure returns (bool)"}},"id":42422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4570:26:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42428,"nodeType":"IfStatement","src":"4565:81:59","trueBody":{"id":42427,"nodeType":"Block","src":"4598:48:59","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42424,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37054,"src":"4619:14:59","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4619:16:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42426,"nodeType":"RevertStatement","src":"4612:23:59"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_systemActorOnly","nameLocation":"4523:16:59","parameters":{"id":42417,"nodeType":"ParameterList","parameters":[],"src":"4539:2:59"},"returnParameters":{"id":42418,"nodeType":"ParameterList","parameters":[],"src":"4555:0:59"},"scope":42438,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":42437,"nodeType":"ModifierDefinition","src":"4658:73:59","nodes":[],"body":{"id":42436,"nodeType":"Block","src":"4685:46:59","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":42432,"name":"_systemActorOnly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42430,"src":"4695:16:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":42433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4695:18:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42434,"nodeType":"ExpressionStatement","src":"4695:18:59"},{"id":42435,"nodeType":"PlaceholderStatement","src":"4723:1:59"}]},"name":"systemActorOnly","nameLocation":"4667:15:59","parameters":{"id":42431,"nodeType":"ParameterList","parameters":[],"src":"4682:2:59"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[42438],"name":"GatewayActorModifiers","nameLocation":"4113:21:59","scope":42439,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":59} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea2646970667358221220bfc9ff56ae3390d566c245da4127227bb9dd0b8bd8d282fb16bf946b60b9a4b864736f6c63430008130033","sourceMap":"4020:629:64:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220bfc9ff56ae3390d566c245da4127227bb9dd0b8bd8d282fb16bf946b60b9a4b864736f6c63430008130033","sourceMap":"4020:629:64:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibGatewayActorStorage.sol\":\"GatewayActorModifiers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibGatewayActorStorage.sol":"GatewayActorModifiers"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibGatewayActorStorage.sol","id":43138,"exportedSymbols":{"AccountHelper":[40447],"BottomUpCheckpoint":[49932],"BottomUpMsgBatch":[49945],"CrossMsg":[49974],"FilAddress":[1428],"GatewayActorModifiers":[43137],"GatewayActorStorage":[43068],"LibGatewayActorStorage":[43079],"Membership":[50218],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotSystemActor":[37486],"ParentFinality":[49918],"ParentValidatorsTracker":[50197],"QuorumMap":[50059],"Subnet":[50091],"SubnetID":[50077]},"nodeType":"SourceUnit","src":"46:4604:64","nodes":[{"id":42946,"nodeType":"PragmaDirective","src":"46:23:64","nodes":[],"literals":["solidity","0.8",".19"]},{"id":42950,"nodeType":"ImportDirective","src":"71:85:64","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":42947,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37468,"src":"79:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42948,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37486,"src":"93:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42949,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"109:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42952,"nodeType":"ImportDirective","src":"157:48:64","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":42951,"name":"QuorumMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50059,"src":"165:9:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42957,"nodeType":"ImportDirective","src":"206:103:64","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":42953,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"214:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42954,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"234:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42955,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"252:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42956,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"262:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42961,"nodeType":"ImportDirective","src":"310:80:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":42958,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"318:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42959,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"328:6:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42960,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"336:23:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42963,"nodeType":"ImportDirective","src":"391:49:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":42962,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"399:10:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42965,"nodeType":"ImportDirective","src":"441:55:64","nodes":[],"absolutePath":"src/lib/AccountHelper.sol","file":"../lib/AccountHelper.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":40448,"symbolAliases":[{"foreign":{"id":42964,"name":"AccountHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40447,"src":"449:13:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42967,"nodeType":"ImportDirective","src":"497:56:64","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":42966,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"505:10:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43068,"nodeType":"StructDefinition","src":"555:3265:64","nodes":[],"canonicalName":"GatewayActorStorage","members":[{"constant":false,"id":42973,"mutability":"mutable","name":"subnets","nameLocation":"674:7:64","nodeType":"VariableDeclaration","scope":43068,"src":"647:34:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"typeName":{"id":42972,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"655:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"647:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42971,"nodeType":"UserDefinedTypeName","pathNode":{"id":42970,"name":"Subnet","nameLocations":["666:6:64"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"666:6:64"},"referencedDeclaration":50091,"src":"666:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}}},"visibility":"internal"},{"constant":false,"id":42979,"mutability":"mutable","name":"finalitiesMap","nameLocation":"816:13:64","nodeType":"VariableDeclaration","scope":43068,"src":"781:48:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49918_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"typeName":{"id":42978,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42975,"name":"uint256","nodeType":"ElementaryTypeName","src":"789:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"781:34:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49918_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42977,"nodeType":"UserDefinedTypeName","pathNode":{"id":42976,"name":"ParentFinality","nameLocations":["800:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"800:14:64"},"referencedDeclaration":49918,"src":"800:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}}},"visibility":"internal"},{"constant":false,"id":42982,"mutability":"mutable","name":"latestParentHeight","nameLocation":"895:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"887:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42981,"name":"uint256","nodeType":"ElementaryTypeName","src":"887:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42988,"mutability":"mutable","name":"postbox","nameLocation":"1143:7:64","nodeType":"VariableDeclaration","scope":43068,"src":"1114:36:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"typeName":{"id":42987,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42984,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1122:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1114:28:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42986,"nodeType":"UserDefinedTypeName","pathNode":{"id":42985,"name":"CrossMsg","nameLocations":["1133:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1133:8:64"},"referencedDeclaration":49974,"src":"1133:8:64","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},"visibility":"internal"},{"constant":false,"id":42992,"mutability":"mutable","name":"currentMembership","nameLocation":"1226:17:64","nodeType":"VariableDeclaration","scope":43068,"src":"1215:28:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42991,"nodeType":"UserDefinedTypeName","pathNode":{"id":42990,"name":"Membership","nameLocations":["1215:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"1215:10:64"},"referencedDeclaration":50218,"src":"1215:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":42996,"mutability":"mutable","name":"lastMembership","nameLocation":"1333:14:64","nodeType":"VariableDeclaration","scope":43068,"src":"1322:25:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42995,"nodeType":"UserDefinedTypeName","pathNode":{"id":42994,"name":"Membership","nameLocations":["1322:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"1322:10:64"},"referencedDeclaration":50218,"src":"1322:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":43002,"mutability":"mutable","name":"bottomUpCheckpoints","nameLocation":"1513:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"1474:58:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":43001,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42998,"name":"uint256","nodeType":"ElementaryTypeName","src":"1482:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1474:38:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":43000,"nodeType":"UserDefinedTypeName","pathNode":{"id":42999,"name":"BottomUpCheckpoint","nameLocations":["1493:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"1493:18:64"},"referencedDeclaration":49932,"src":"1493:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":43008,"mutability":"mutable","name":"bottomUpMsgBatches","nameLocation":"1699:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"1662:55:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"typeName":{"id":43007,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":43004,"name":"uint256","nodeType":"ElementaryTypeName","src":"1670:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1662:36:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":43006,"nodeType":"UserDefinedTypeName","pathNode":{"id":43005,"name":"BottomUpMsgBatch","nameLocations":["1681:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"1681:16:64"},"referencedDeclaration":49945,"src":"1681:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}}},"visibility":"internal"},{"constant":false,"id":43012,"mutability":"mutable","name":"checkpointQuorumMap","nameLocation":"1784:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"1774:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43011,"nodeType":"UserDefinedTypeName","pathNode":{"id":43010,"name":"QuorumMap","nameLocations":["1774:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"1774:9:64"},"referencedDeclaration":50059,"src":"1774:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43016,"mutability":"mutable","name":"bottomUpMsgBatchQuorumMap","nameLocation":"1880:25:64","nodeType":"VariableDeclaration","scope":43068,"src":"1870:35:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43015,"nodeType":"UserDefinedTypeName","pathNode":{"id":43014,"name":"QuorumMap","nameLocations":["1870:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"1870:9:64"},"referencedDeclaration":50059,"src":"1870:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43020,"mutability":"mutable","name":"subnetKeys","nameLocation":"2000:10:64","nodeType":"VariableDeclaration","scope":43068,"src":"1990:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":43018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1990:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":43019,"nodeType":"ArrayTypeName","src":"1990:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":43024,"mutability":"mutable","name":"networkName","nameLocation":"2069:11:64","nodeType":"VariableDeclaration","scope":43068,"src":"2060:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":43023,"nodeType":"UserDefinedTypeName","pathNode":{"id":43022,"name":"SubnetID","nameLocations":["2060:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2060:8:64"},"referencedDeclaration":50077,"src":"2060:8:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":43027,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2155:14:64","nodeType":"VariableDeclaration","scope":43068,"src":"2147:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43026,"name":"uint256","nodeType":"ElementaryTypeName","src":"2147:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43030,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2261:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"2255:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":43029,"name":"uint8","nodeType":"ElementaryTypeName","src":"2255:5:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":43033,"mutability":"mutable","name":"bottomUpNonce","nameLocation":"2337:13:64","nodeType":"VariableDeclaration","scope":43068,"src":"2330:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43032,"name":"uint64","nodeType":"ElementaryTypeName","src":"2330:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43036,"mutability":"mutable","name":"appliedTopDownNonce","nameLocation":"2500:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"2493:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43035,"name":"uint64","nodeType":"ElementaryTypeName","src":"2493:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43039,"mutability":"mutable","name":"totalSubnets","nameLocation":"2595:12:64","nodeType":"VariableDeclaration","scope":43068,"src":"2588:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43038,"name":"uint64","nodeType":"ElementaryTypeName","src":"2588:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43042,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"2689:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"2681:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43041,"name":"uint256","nodeType":"ElementaryTypeName","src":"2681:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43045,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"2804:22:64","nodeType":"VariableDeclaration","scope":43068,"src":"2796:30:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43044,"name":"uint256","nodeType":"ElementaryTypeName","src":"2796:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43048,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"2892:23:64","nodeType":"VariableDeclaration","scope":43068,"src":"2885:30:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43047,"name":"uint64","nodeType":"ElementaryTypeName","src":"2885:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43052,"mutability":"mutable","name":"validatorsTracker","nameLocation":"3008:17:64","nodeType":"VariableDeclaration","scope":43068,"src":"2984:41:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":43051,"nodeType":"UserDefinedTypeName","pathNode":{"id":43050,"name":"ParentValidatorsTracker","nameLocations":["2984:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"2984:23:64"},"referencedDeclaration":50197,"src":"2984:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":43055,"mutability":"mutable","name":"maxTreeDepth","nameLocation":"3348:12:64","nodeType":"VariableDeclaration","scope":43068,"src":"3342:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":43054,"name":"uint8","nodeType":"ElementaryTypeName","src":"3342:5:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":43058,"mutability":"mutable","name":"generalPurposeCrossMsg","nameLocation":"3449:22:64","nodeType":"VariableDeclaration","scope":43068,"src":"3444:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43057,"name":"bool","nodeType":"ElementaryTypeName","src":"3444:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43061,"mutability":"mutable","name":"multiLevelCrossMsg","nameLocation":"3556:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"3551:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43060,"name":"bool","nodeType":"ElementaryTypeName","src":"3551:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43064,"mutability":"mutable","name":"checkpointRelayerRewards","nameLocation":"3670:24:64","nodeType":"VariableDeclaration","scope":43068,"src":"3665:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43063,"name":"bool","nodeType":"ElementaryTypeName","src":"3665:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43067,"mutability":"mutable","name":"crossMsgRelayerRewards","nameLocation":"3795:22:64","nodeType":"VariableDeclaration","scope":43068,"src":"3790:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43066,"name":"bool","nodeType":"ElementaryTypeName","src":"3790:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"GatewayActorStorage","nameLocation":"562:19:64","scope":43138,"visibility":"public"},{"id":43079,"nodeType":"ContractDefinition","src":"3822:196:64","nodes":[{"id":43078,"nodeType":"FunctionDefinition","src":"3859:157:64","nodes":[],"body":{"id":43077,"nodeType":"Block","src":"3936:80:64","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3955:36:64","statements":[{"nodeType":"YulAssignment","src":"3969:12:64","value":{"kind":"number","nodeType":"YulLiteral","src":"3980:1:64","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3969:7:64"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":43072,"isOffset":false,"isSlot":true,"src":"3969:7:64","suffix":"slot","valueSize":1}],"id":43074,"nodeType":"InlineAssembly","src":"3946:45:64"},{"expression":{"id":43075,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43072,"src":"4007:2:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"functionReturnParameters":43073,"id":43076,"nodeType":"Return","src":"4000:9:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3868:10:64","parameters":{"id":43069,"nodeType":"ParameterList","parameters":[],"src":"3878:2:64"},"returnParameters":{"id":43073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43072,"mutability":"mutable","name":"ds","nameLocation":"3932:2:64","nodeType":"VariableDeclaration","scope":43078,"src":"3904:30:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":43071,"nodeType":"UserDefinedTypeName","pathNode":{"id":43070,"name":"GatewayActorStorage","nameLocations":["3904:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"3904:19:64"},"referencedDeclaration":43068,"src":"3904:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"src":"3903:32:64"},"scope":43079,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGatewayActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[43079],"name":"LibGatewayActorStorage","nameLocation":"3830:22:64","scope":43138,"usedErrors":[]},{"id":43137,"nodeType":"ContractDefinition","src":"4020:629:64","nodes":[{"id":43082,"nodeType":"VariableDeclaration","src":"4057:30:64","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"4086:1:64","scope":43137,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":43081,"nodeType":"UserDefinedTypeName","pathNode":{"id":43080,"name":"GatewayActorStorage","nameLocations":["4057:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"4057:19:64"},"referencedDeclaration":43068,"src":"4057:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":43085,"nodeType":"UsingForDirective","src":"4094:29:64","nodes":[],"global":false,"libraryName":{"id":43083,"name":"FilAddress","nameLocations":["4100:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4100:10:64"},"typeName":{"id":43084,"name":"address","nodeType":"ElementaryTypeName","src":"4115:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":43088,"nodeType":"UsingForDirective","src":"4128:37:64","nodes":[],"global":false,"libraryName":{"id":43086,"name":"FilAddress","nameLocations":["4134:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4134:10:64"},"typeName":{"id":43087,"name":"address","nodeType":"ElementaryTypeName","src":"4149:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":43091,"nodeType":"UsingForDirective","src":"4170:32:64","nodes":[],"global":false,"libraryName":{"id":43089,"name":"AccountHelper","nameLocations":["4176:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":40447,"src":"4176:13:64"},"typeName":{"id":43090,"name":"address","nodeType":"ElementaryTypeName","src":"4194:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":43115,"nodeType":"FunctionDefinition","src":"4208:216:64","nodes":[],"body":{"id":43114,"nodeType":"Block","src":"4256:168:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43096,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43093,"src":"4270:3:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":43097,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4276:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":43098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4278:14:64","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":43027,"src":"4276:16:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4270:22:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43104,"nodeType":"IfStatement","src":"4266:74:64","trueBody":{"id":43103,"nodeType":"Block","src":"4294:46:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43100,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37468,"src":"4315:12:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4315:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43102,"nodeType":"RevertStatement","src":"4308:21:64"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43105,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4353:3:64","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4357:5:64","memberName":"value","nodeType":"MemberAccess","src":"4353:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43107,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43093,"src":"4365:3:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4353:15:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43113,"nodeType":"IfStatement","src":"4349:69:64","trueBody":{"id":43112,"nodeType":"Block","src":"4370:48:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43109,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"4391:14:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4391:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43111,"nodeType":"RevertStatement","src":"4384:23:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"validateFee","nameLocation":"4217:11:64","parameters":{"id":43094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43093,"mutability":"mutable","name":"fee","nameLocation":"4237:3:64","nodeType":"VariableDeclaration","scope":43115,"src":"4229:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43092,"name":"uint256","nodeType":"ElementaryTypeName","src":"4229:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4228:13:64"},"returnParameters":{"id":43095,"nodeType":"ParameterList","parameters":[],"src":"4256:0:64"},"scope":43137,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43129,"nodeType":"FunctionDefinition","src":"4430:138:64","nodes":[],"body":{"id":43128,"nodeType":"Block","src":"4471:97:64","nodes":[],"statements":[{"condition":{"id":43122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4485:27:64","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43118,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4486:3:64","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4490:6:64","memberName":"sender","nodeType":"MemberAccess","src":"4486:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4497:13:64","memberName":"isSystemActor","nodeType":"MemberAccess","referencedDeclaration":40446,"src":"4486:24:64","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) pure returns (bool)"}},"id":43121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4486:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43127,"nodeType":"IfStatement","src":"4481:81:64","trueBody":{"id":43126,"nodeType":"Block","src":"4514:48:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43123,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37486,"src":"4535:14:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4535:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43125,"nodeType":"RevertStatement","src":"4528:23:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_systemActorOnly","nameLocation":"4439:16:64","parameters":{"id":43116,"nodeType":"ParameterList","parameters":[],"src":"4455:2:64"},"returnParameters":{"id":43117,"nodeType":"ParameterList","parameters":[],"src":"4471:0:64"},"scope":43137,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":43136,"nodeType":"ModifierDefinition","src":"4574:73:64","nodes":[],"body":{"id":43135,"nodeType":"Block","src":"4601:46:64","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43131,"name":"_systemActorOnly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43129,"src":"4611:16:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":43132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43133,"nodeType":"ExpressionStatement","src":"4611:18:64"},{"id":43134,"nodeType":"PlaceholderStatement","src":"4639:1:64"}]},"name":"systemActorOnly","nameLocation":"4583:15:64","parameters":{"id":43130,"nodeType":"ParameterList","parameters":[],"src":"4598:2:64"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[43137],"name":"GatewayActorModifiers","nameLocation":"4029:21:64","scope":43138,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":64} \ No newline at end of file diff --git a/.out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json b/.out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json index 250775aeb..bad28c949 100644 --- a/.out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json +++ b/.out/LibGatewayActorStorage.sol/LibGatewayActorStorage.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220456a00d80059ced9edfa822aa6cb48c06ea115662244429aa726e4e0439bfae164736f6c63430008130033","sourceMap":"3906:196:59:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220456a00d80059ced9edfa822aa6cb48c06ea115662244429aa726e4e0439bfae164736f6c63430008130033","sourceMap":"3906:196:59:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibGatewayActorStorage.sol\":\"LibGatewayActorStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2\",\"dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibGatewayActorStorage.sol":"LibGatewayActorStorage"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x778f537c41cf405dc9a5e5a43d377c328cd5487ecff7154369737ac5c995c49c","urls":["bzz-raw://aa0d8f1534f70641644641c14e71a648ea6676730b7f73a9fa87640a02cf03c2","dweb:/ipfs/QmPikHbYsZQYNC3Aa9HHsDsdB83siPJkXwqJ4SqoJ8sar3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibGatewayActorStorage.sol","id":42439,"exportedSymbols":{"AccountHelper":[39997],"BottomUpCheckpoint":[48410],"BottomUpMsgBatch":[48423],"CrossMsg":[48452],"FilAddress":[1428],"GatewayActorModifiers":[42438],"GatewayActorStorage":[42369],"LibGatewayActorStorage":[42380],"Membership":[48701],"NotEnoughFee":[37036],"NotEnoughFunds":[37038],"NotSystemActor":[37054],"ParentFinality":[48396],"ParentValidatorsTracker":[48680],"QuorumMap":[48537],"Subnet":[48574],"SubnetID":[48557]},"nodeType":"SourceUnit","src":"46:4688:59","nodes":[{"id":42244,"nodeType":"PragmaDirective","src":"46:23:59","nodes":[],"literals":["solidity","0.8",".19"]},{"id":42248,"nodeType":"ImportDirective","src":"71:85:59","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":42439,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":42245,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37036,"src":"79:12:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42246,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37054,"src":"93:14:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42247,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37038,"src":"109:14:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42250,"nodeType":"ImportDirective","src":"157:48:59","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":42439,"sourceUnit":48538,"symbolAliases":[{"foreign":{"id":42249,"name":"QuorumMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48537,"src":"165:9:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42255,"nodeType":"ImportDirective","src":"206:103:59","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":42439,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":42251,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"214:18:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42252,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48423,"src":"234:16:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42253,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"252:8:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42254,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48396,"src":"262:14:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42259,"nodeType":"ImportDirective","src":"310:80:59","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":42439,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":42256,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"318:8:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42257,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48574,"src":"328:6:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42258,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48680,"src":"336:23:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42261,"nodeType":"ImportDirective","src":"391:49:59","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":42439,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":42260,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48701,"src":"399:10:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42263,"nodeType":"ImportDirective","src":"441:55:59","nodes":[],"absolutePath":"src/lib/AccountHelper.sol","file":"../lib/AccountHelper.sol","nameLocation":"-1:-1:-1","scope":42439,"sourceUnit":39998,"symbolAliases":[{"foreign":{"id":42262,"name":"AccountHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39997,"src":"449:13:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42265,"nodeType":"ImportDirective","src":"497:56:59","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":42439,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":42264,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"505:10:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42369,"nodeType":"StructDefinition","src":"555:3349:59","nodes":[],"canonicalName":"GatewayActorStorage","members":[{"constant":false,"id":42271,"mutability":"mutable","name":"subnets","nameLocation":"674:7:59","nodeType":"VariableDeclaration","scope":42369,"src":"647:34:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$48574_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"typeName":{"id":42270,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"655:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"647:26:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$48574_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42269,"nodeType":"UserDefinedTypeName","pathNode":{"id":42268,"name":"Subnet","nameLocations":["666:6:59"],"nodeType":"IdentifierPath","referencedDeclaration":48574,"src":"666:6:59"},"referencedDeclaration":48574,"src":"666:6:59","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$48574_storage_ptr","typeString":"struct Subnet"}}},"visibility":"internal"},{"constant":false,"id":42277,"mutability":"mutable","name":"finalitiesMap","nameLocation":"816:13:59","nodeType":"VariableDeclaration","scope":42369,"src":"781:48:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$48396_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"typeName":{"id":42276,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42273,"name":"uint256","nodeType":"ElementaryTypeName","src":"789:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"781:34:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$48396_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42275,"nodeType":"UserDefinedTypeName","pathNode":{"id":42274,"name":"ParentFinality","nameLocations":["800:14:59"],"nodeType":"IdentifierPath","referencedDeclaration":48396,"src":"800:14:59"},"referencedDeclaration":48396,"src":"800:14:59","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$48396_storage_ptr","typeString":"struct ParentFinality"}}},"visibility":"internal"},{"constant":false,"id":42280,"mutability":"mutable","name":"latestParentHeight","nameLocation":"895:18:59","nodeType":"VariableDeclaration","scope":42369,"src":"887:26:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42279,"name":"uint256","nodeType":"ElementaryTypeName","src":"887:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42286,"mutability":"mutable","name":"postbox","nameLocation":"1143:7:59","nodeType":"VariableDeclaration","scope":42369,"src":"1114:36:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$48452_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"typeName":{"id":42285,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1122:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1114:28:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$48452_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42284,"nodeType":"UserDefinedTypeName","pathNode":{"id":42283,"name":"CrossMsg","nameLocations":["1133:8:59"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"1133:8:59"},"referencedDeclaration":48452,"src":"1133:8:59","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}}},"visibility":"internal"},{"constant":false,"id":42290,"mutability":"mutable","name":"currentMembership","nameLocation":"1226:17:59","nodeType":"VariableDeclaration","scope":42369,"src":"1215:28:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42289,"nodeType":"UserDefinedTypeName","pathNode":{"id":42288,"name":"Membership","nameLocations":["1215:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":48701,"src":"1215:10:59"},"referencedDeclaration":48701,"src":"1215:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":42294,"mutability":"mutable","name":"lastMembership","nameLocation":"1333:14:59","nodeType":"VariableDeclaration","scope":42369,"src":"1322:25:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42293,"nodeType":"UserDefinedTypeName","pathNode":{"id":42292,"name":"Membership","nameLocations":["1322:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":48701,"src":"1322:10:59"},"referencedDeclaration":48701,"src":"1322:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$48701_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":42300,"mutability":"mutable","name":"bottomUpCheckpoints","nameLocation":"1513:19:59","nodeType":"VariableDeclaration","scope":42369,"src":"1474:58:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":42299,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42296,"name":"uint256","nodeType":"ElementaryTypeName","src":"1482:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1474:38:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42298,"nodeType":"UserDefinedTypeName","pathNode":{"id":42297,"name":"BottomUpCheckpoint","nameLocations":["1493:18:59"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"1493:18:59"},"referencedDeclaration":48410,"src":"1493:18:59","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":42306,"mutability":"mutable","name":"bottomUpMsgBatches","nameLocation":"1699:18:59","nodeType":"VariableDeclaration","scope":42369,"src":"1662:55:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$48423_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"typeName":{"id":42305,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42302,"name":"uint256","nodeType":"ElementaryTypeName","src":"1670:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1662:36:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$48423_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42304,"nodeType":"UserDefinedTypeName","pathNode":{"id":42303,"name":"BottomUpMsgBatch","nameLocations":["1681:16:59"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"1681:16:59"},"referencedDeclaration":48423,"src":"1681:16:59","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}}},"visibility":"internal"},{"constant":false,"id":42310,"mutability":"mutable","name":"checkpointQuorumMap","nameLocation":"1784:19:59","nodeType":"VariableDeclaration","scope":42369,"src":"1774:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":42309,"nodeType":"UserDefinedTypeName","pathNode":{"id":42308,"name":"QuorumMap","nameLocations":["1774:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":48537,"src":"1774:9:59"},"referencedDeclaration":48537,"src":"1774:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":42314,"mutability":"mutable","name":"bottomUpMsgBatchQuorumMap","nameLocation":"1880:25:59","nodeType":"VariableDeclaration","scope":42369,"src":"1870:35:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":42313,"nodeType":"UserDefinedTypeName","pathNode":{"id":42312,"name":"QuorumMap","nameLocations":["1870:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":48537,"src":"1870:9:59"},"referencedDeclaration":48537,"src":"1870:9:59","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":42318,"mutability":"mutable","name":"subnetKeys","nameLocation":"2000:10:59","nodeType":"VariableDeclaration","scope":42369,"src":"1990:20:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":42316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1990:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":42317,"nodeType":"ArrayTypeName","src":"1990:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":42322,"mutability":"mutable","name":"networkName","nameLocation":"2069:11:59","nodeType":"VariableDeclaration","scope":42369,"src":"2060:20:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":42321,"nodeType":"UserDefinedTypeName","pathNode":{"id":42320,"name":"SubnetID","nameLocations":["2060:8:59"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"2060:8:59"},"referencedDeclaration":48557,"src":"2060:8:59","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":42325,"mutability":"mutable","name":"minStake","nameLocation":"2156:8:59","nodeType":"VariableDeclaration","scope":42369,"src":"2148:16:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42324,"name":"uint256","nodeType":"ElementaryTypeName","src":"2148:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42328,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2239:14:59","nodeType":"VariableDeclaration","scope":42369,"src":"2231:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42327,"name":"uint256","nodeType":"ElementaryTypeName","src":"2231:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42331,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2345:18:59","nodeType":"VariableDeclaration","scope":42369,"src":"2339:24:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":42330,"name":"uint8","nodeType":"ElementaryTypeName","src":"2339:5:59","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":42334,"mutability":"mutable","name":"bottomUpNonce","nameLocation":"2421:13:59","nodeType":"VariableDeclaration","scope":42369,"src":"2414:20:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42333,"name":"uint64","nodeType":"ElementaryTypeName","src":"2414:6:59","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42337,"mutability":"mutable","name":"appliedTopDownNonce","nameLocation":"2584:19:59","nodeType":"VariableDeclaration","scope":42369,"src":"2577:26:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42336,"name":"uint64","nodeType":"ElementaryTypeName","src":"2577:6:59","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42340,"mutability":"mutable","name":"totalSubnets","nameLocation":"2679:12:59","nodeType":"VariableDeclaration","scope":42369,"src":"2672:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42339,"name":"uint64","nodeType":"ElementaryTypeName","src":"2672:6:59","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42343,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"2773:19:59","nodeType":"VariableDeclaration","scope":42369,"src":"2765:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42342,"name":"uint256","nodeType":"ElementaryTypeName","src":"2765:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42346,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"2888:22:59","nodeType":"VariableDeclaration","scope":42369,"src":"2880:30:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42345,"name":"uint256","nodeType":"ElementaryTypeName","src":"2880:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42349,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"2976:23:59","nodeType":"VariableDeclaration","scope":42369,"src":"2969:30:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42348,"name":"uint64","nodeType":"ElementaryTypeName","src":"2969:6:59","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":42353,"mutability":"mutable","name":"validatorsTracker","nameLocation":"3092:17:59","nodeType":"VariableDeclaration","scope":42369,"src":"3068:41:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":42352,"nodeType":"UserDefinedTypeName","pathNode":{"id":42351,"name":"ParentValidatorsTracker","nameLocations":["3068:23:59"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"3068:23:59"},"referencedDeclaration":48680,"src":"3068:23:59","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":42356,"mutability":"mutable","name":"maxTreeDepth","nameLocation":"3432:12:59","nodeType":"VariableDeclaration","scope":42369,"src":"3426:18:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":42355,"name":"uint8","nodeType":"ElementaryTypeName","src":"3426:5:59","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":42359,"mutability":"mutable","name":"generalPurposeCrossMsg","nameLocation":"3533:22:59","nodeType":"VariableDeclaration","scope":42369,"src":"3528:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42358,"name":"bool","nodeType":"ElementaryTypeName","src":"3528:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42362,"mutability":"mutable","name":"multiLevelCrossMsg","nameLocation":"3640:18:59","nodeType":"VariableDeclaration","scope":42369,"src":"3635:23:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42361,"name":"bool","nodeType":"ElementaryTypeName","src":"3635:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42365,"mutability":"mutable","name":"checkpointRelayerRewards","nameLocation":"3754:24:59","nodeType":"VariableDeclaration","scope":42369,"src":"3749:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42364,"name":"bool","nodeType":"ElementaryTypeName","src":"3749:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42368,"mutability":"mutable","name":"crossMsgRelayerRewards","nameLocation":"3879:22:59","nodeType":"VariableDeclaration","scope":42369,"src":"3874:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42367,"name":"bool","nodeType":"ElementaryTypeName","src":"3874:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"GatewayActorStorage","nameLocation":"562:19:59","scope":42439,"visibility":"public"},{"id":42380,"nodeType":"ContractDefinition","src":"3906:196:59","nodes":[{"id":42379,"nodeType":"FunctionDefinition","src":"3943:157:59","nodes":[],"body":{"id":42378,"nodeType":"Block","src":"4020:80:59","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"4039:36:59","statements":[{"nodeType":"YulAssignment","src":"4053:12:59","value":{"kind":"number","nodeType":"YulLiteral","src":"4064:1:59","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"4053:7:59"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":42373,"isOffset":false,"isSlot":true,"src":"4053:7:59","suffix":"slot","valueSize":1}],"id":42375,"nodeType":"InlineAssembly","src":"4030:45:59"},{"expression":{"id":42376,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42373,"src":"4091:2:59","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"functionReturnParameters":42374,"id":42377,"nodeType":"Return","src":"4084:9:59"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3952:10:59","parameters":{"id":42370,"nodeType":"ParameterList","parameters":[],"src":"3962:2:59"},"returnParameters":{"id":42374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42373,"mutability":"mutable","name":"ds","nameLocation":"4016:2:59","nodeType":"VariableDeclaration","scope":42379,"src":"3988:30:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":42372,"nodeType":"UserDefinedTypeName","pathNode":{"id":42371,"name":"GatewayActorStorage","nameLocations":["3988:19:59"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"3988:19:59"},"referencedDeclaration":42369,"src":"3988:19:59","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"src":"3987:32:59"},"scope":42380,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGatewayActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[42380],"name":"LibGatewayActorStorage","nameLocation":"3914:22:59","scope":42439,"usedErrors":[]},{"id":42438,"nodeType":"ContractDefinition","src":"4104:629:59","nodes":[{"id":42383,"nodeType":"VariableDeclaration","src":"4141:30:59","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"4170:1:59","scope":42438,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":42382,"nodeType":"UserDefinedTypeName","pathNode":{"id":42381,"name":"GatewayActorStorage","nameLocations":["4141:19:59"],"nodeType":"IdentifierPath","referencedDeclaration":42369,"src":"4141:19:59"},"referencedDeclaration":42369,"src":"4141:19:59","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":42386,"nodeType":"UsingForDirective","src":"4178:29:59","nodes":[],"global":false,"libraryName":{"id":42384,"name":"FilAddress","nameLocations":["4184:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4184:10:59"},"typeName":{"id":42385,"name":"address","nodeType":"ElementaryTypeName","src":"4199:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":42389,"nodeType":"UsingForDirective","src":"4212:37:59","nodes":[],"global":false,"libraryName":{"id":42387,"name":"FilAddress","nameLocations":["4218:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4218:10:59"},"typeName":{"id":42388,"name":"address","nodeType":"ElementaryTypeName","src":"4233:15:59","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":42392,"nodeType":"UsingForDirective","src":"4254:32:59","nodes":[],"global":false,"libraryName":{"id":42390,"name":"AccountHelper","nameLocations":["4260:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":39997,"src":"4260:13:59"},"typeName":{"id":42391,"name":"address","nodeType":"ElementaryTypeName","src":"4278:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":42416,"nodeType":"FunctionDefinition","src":"4292:216:59","nodes":[],"body":{"id":42415,"nodeType":"Block","src":"4340:168:59","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42397,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42394,"src":"4354:3:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":42398,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42383,"src":"4360:1:59","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$42369_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":42399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4362:14:59","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":42328,"src":"4360:16:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4354:22:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42405,"nodeType":"IfStatement","src":"4350:74:59","trueBody":{"id":42404,"nodeType":"Block","src":"4378:46:59","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42401,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37036,"src":"4399:12:59","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4399:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42403,"nodeType":"RevertStatement","src":"4392:21:59"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42406,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4437:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":42407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4441:5:59","memberName":"value","nodeType":"MemberAccess","src":"4437:9:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42408,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42394,"src":"4449:3:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4437:15:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42414,"nodeType":"IfStatement","src":"4433:69:59","trueBody":{"id":42413,"nodeType":"Block","src":"4454:48:59","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42410,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37038,"src":"4475:14:59","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4475:16:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42412,"nodeType":"RevertStatement","src":"4468:23:59"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"validateFee","nameLocation":"4301:11:59","parameters":{"id":42395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42394,"mutability":"mutable","name":"fee","nameLocation":"4321:3:59","nodeType":"VariableDeclaration","scope":42416,"src":"4313:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42393,"name":"uint256","nodeType":"ElementaryTypeName","src":"4313:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4312:13:59"},"returnParameters":{"id":42396,"nodeType":"ParameterList","parameters":[],"src":"4340:0:59"},"scope":42438,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":42430,"nodeType":"FunctionDefinition","src":"4514:138:59","nodes":[],"body":{"id":42429,"nodeType":"Block","src":"4555:97:59","nodes":[],"statements":[{"condition":{"id":42423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4569:27:59","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":42419,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4570:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":42420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4574:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4570:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":42421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4581:13:59","memberName":"isSystemActor","nodeType":"MemberAccess","referencedDeclaration":39996,"src":"4570:24:59","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) pure returns (bool)"}},"id":42422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4570:26:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42428,"nodeType":"IfStatement","src":"4565:81:59","trueBody":{"id":42427,"nodeType":"Block","src":"4598:48:59","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42424,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37054,"src":"4619:14:59","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4619:16:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42426,"nodeType":"RevertStatement","src":"4612:23:59"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_systemActorOnly","nameLocation":"4523:16:59","parameters":{"id":42417,"nodeType":"ParameterList","parameters":[],"src":"4539:2:59"},"returnParameters":{"id":42418,"nodeType":"ParameterList","parameters":[],"src":"4555:0:59"},"scope":42438,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":42437,"nodeType":"ModifierDefinition","src":"4658:73:59","nodes":[],"body":{"id":42436,"nodeType":"Block","src":"4685:46:59","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":42432,"name":"_systemActorOnly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42430,"src":"4695:16:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":42433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4695:18:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42434,"nodeType":"ExpressionStatement","src":"4695:18:59"},{"id":42435,"nodeType":"PlaceholderStatement","src":"4723:1:59"}]},"name":"systemActorOnly","nameLocation":"4667:15:59","parameters":{"id":42431,"nodeType":"ParameterList","parameters":[],"src":"4682:2:59"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[42438],"name":"GatewayActorModifiers","nameLocation":"4113:21:59","scope":42439,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":59} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220252e788b4beecbbfa67d5317f306aa612cba27fc7f141c3ae508dd97f6061ec064736f6c63430008130033","sourceMap":"3822:196:64:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220252e788b4beecbbfa67d5317f306aa612cba27fc7f141c3ae508dd97f6061ec064736f6c63430008130033","sourceMap":"3822:196:64:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibGatewayActorStorage.sol\":\"LibGatewayActorStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibGatewayActorStorage.sol":"LibGatewayActorStorage"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibGatewayActorStorage.sol","id":43138,"exportedSymbols":{"AccountHelper":[40447],"BottomUpCheckpoint":[49932],"BottomUpMsgBatch":[49945],"CrossMsg":[49974],"FilAddress":[1428],"GatewayActorModifiers":[43137],"GatewayActorStorage":[43068],"LibGatewayActorStorage":[43079],"Membership":[50218],"NotEnoughFee":[37468],"NotEnoughFunds":[37470],"NotSystemActor":[37486],"ParentFinality":[49918],"ParentValidatorsTracker":[50197],"QuorumMap":[50059],"Subnet":[50091],"SubnetID":[50077]},"nodeType":"SourceUnit","src":"46:4604:64","nodes":[{"id":42946,"nodeType":"PragmaDirective","src":"46:23:64","nodes":[],"literals":["solidity","0.8",".19"]},{"id":42950,"nodeType":"ImportDirective","src":"71:85:64","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":42947,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37468,"src":"79:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42948,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37486,"src":"93:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42949,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"109:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42952,"nodeType":"ImportDirective","src":"157:48:64","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":42951,"name":"QuorumMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50059,"src":"165:9:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42957,"nodeType":"ImportDirective","src":"206:103:64","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":42953,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"214:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42954,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"234:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42955,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"252:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42956,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"262:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42961,"nodeType":"ImportDirective","src":"310:80:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":42958,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"318:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42959,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"328:6:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42960,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"336:23:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42963,"nodeType":"ImportDirective","src":"391:49:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":42962,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"399:10:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42965,"nodeType":"ImportDirective","src":"441:55:64","nodes":[],"absolutePath":"src/lib/AccountHelper.sol","file":"../lib/AccountHelper.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":40448,"symbolAliases":[{"foreign":{"id":42964,"name":"AccountHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40447,"src":"449:13:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42967,"nodeType":"ImportDirective","src":"497:56:64","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":43138,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":42966,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"505:10:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43068,"nodeType":"StructDefinition","src":"555:3265:64","nodes":[],"canonicalName":"GatewayActorStorage","members":[{"constant":false,"id":42973,"mutability":"mutable","name":"subnets","nameLocation":"674:7:64","nodeType":"VariableDeclaration","scope":43068,"src":"647:34:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"typeName":{"id":42972,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"655:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"647:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Subnet_$50091_storage_$","typeString":"mapping(bytes32 => struct Subnet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42971,"nodeType":"UserDefinedTypeName","pathNode":{"id":42970,"name":"Subnet","nameLocations":["666:6:64"],"nodeType":"IdentifierPath","referencedDeclaration":50091,"src":"666:6:64"},"referencedDeclaration":50091,"src":"666:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_Subnet_$50091_storage_ptr","typeString":"struct Subnet"}}},"visibility":"internal"},{"constant":false,"id":42979,"mutability":"mutable","name":"finalitiesMap","nameLocation":"816:13:64","nodeType":"VariableDeclaration","scope":43068,"src":"781:48:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49918_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"typeName":{"id":42978,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42975,"name":"uint256","nodeType":"ElementaryTypeName","src":"789:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"781:34:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ParentFinality_$49918_storage_$","typeString":"mapping(uint256 => struct ParentFinality)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42977,"nodeType":"UserDefinedTypeName","pathNode":{"id":42976,"name":"ParentFinality","nameLocations":["800:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"800:14:64"},"referencedDeclaration":49918,"src":"800:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}}},"visibility":"internal"},{"constant":false,"id":42982,"mutability":"mutable","name":"latestParentHeight","nameLocation":"895:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"887:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42981,"name":"uint256","nodeType":"ElementaryTypeName","src":"887:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42988,"mutability":"mutable","name":"postbox","nameLocation":"1143:7:64","nodeType":"VariableDeclaration","scope":43068,"src":"1114:36:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"typeName":{"id":42987,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42984,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1122:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1114:28:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CrossMsg_$49974_storage_$","typeString":"mapping(bytes32 => struct CrossMsg)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":42986,"nodeType":"UserDefinedTypeName","pathNode":{"id":42985,"name":"CrossMsg","nameLocations":["1133:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1133:8:64"},"referencedDeclaration":49974,"src":"1133:8:64","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},"visibility":"internal"},{"constant":false,"id":42992,"mutability":"mutable","name":"currentMembership","nameLocation":"1226:17:64","nodeType":"VariableDeclaration","scope":43068,"src":"1215:28:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42991,"nodeType":"UserDefinedTypeName","pathNode":{"id":42990,"name":"Membership","nameLocations":["1215:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"1215:10:64"},"referencedDeclaration":50218,"src":"1215:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":42996,"mutability":"mutable","name":"lastMembership","nameLocation":"1333:14:64","nodeType":"VariableDeclaration","scope":43068,"src":"1322:25:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"},"typeName":{"id":42995,"nodeType":"UserDefinedTypeName","pathNode":{"id":42994,"name":"Membership","nameLocations":["1322:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":50218,"src":"1322:10:64"},"referencedDeclaration":50218,"src":"1322:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_storage_ptr","typeString":"struct Membership"}},"visibility":"internal"},{"constant":false,"id":43002,"mutability":"mutable","name":"bottomUpCheckpoints","nameLocation":"1513:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"1474:58:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":43001,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":42998,"name":"uint256","nodeType":"ElementaryTypeName","src":"1482:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1474:38:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":43000,"nodeType":"UserDefinedTypeName","pathNode":{"id":42999,"name":"BottomUpCheckpoint","nameLocations":["1493:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"1493:18:64"},"referencedDeclaration":49932,"src":"1493:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":43008,"mutability":"mutable","name":"bottomUpMsgBatches","nameLocation":"1699:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"1662:55:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"typeName":{"id":43007,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":43004,"name":"uint256","nodeType":"ElementaryTypeName","src":"1670:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1662:36:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpMsgBatch_$49945_storage_$","typeString":"mapping(uint256 => struct BottomUpMsgBatch)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":43006,"nodeType":"UserDefinedTypeName","pathNode":{"id":43005,"name":"BottomUpMsgBatch","nameLocations":["1681:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"1681:16:64"},"referencedDeclaration":49945,"src":"1681:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}}},"visibility":"internal"},{"constant":false,"id":43012,"mutability":"mutable","name":"checkpointQuorumMap","nameLocation":"1784:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"1774:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43011,"nodeType":"UserDefinedTypeName","pathNode":{"id":43010,"name":"QuorumMap","nameLocations":["1774:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"1774:9:64"},"referencedDeclaration":50059,"src":"1774:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43016,"mutability":"mutable","name":"bottomUpMsgBatchQuorumMap","nameLocation":"1880:25:64","nodeType":"VariableDeclaration","scope":43068,"src":"1870:35:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43015,"nodeType":"UserDefinedTypeName","pathNode":{"id":43014,"name":"QuorumMap","nameLocations":["1870:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"1870:9:64"},"referencedDeclaration":50059,"src":"1870:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43020,"mutability":"mutable","name":"subnetKeys","nameLocation":"2000:10:64","nodeType":"VariableDeclaration","scope":43068,"src":"1990:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":43018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1990:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":43019,"nodeType":"ArrayTypeName","src":"1990:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":43024,"mutability":"mutable","name":"networkName","nameLocation":"2069:11:64","nodeType":"VariableDeclaration","scope":43068,"src":"2060:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":43023,"nodeType":"UserDefinedTypeName","pathNode":{"id":43022,"name":"SubnetID","nameLocations":["2060:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2060:8:64"},"referencedDeclaration":50077,"src":"2060:8:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":43027,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2155:14:64","nodeType":"VariableDeclaration","scope":43068,"src":"2147:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43026,"name":"uint256","nodeType":"ElementaryTypeName","src":"2147:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43030,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2261:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"2255:24:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":43029,"name":"uint8","nodeType":"ElementaryTypeName","src":"2255:5:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":43033,"mutability":"mutable","name":"bottomUpNonce","nameLocation":"2337:13:64","nodeType":"VariableDeclaration","scope":43068,"src":"2330:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43032,"name":"uint64","nodeType":"ElementaryTypeName","src":"2330:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43036,"mutability":"mutable","name":"appliedTopDownNonce","nameLocation":"2500:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"2493:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43035,"name":"uint64","nodeType":"ElementaryTypeName","src":"2493:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43039,"mutability":"mutable","name":"totalSubnets","nameLocation":"2595:12:64","nodeType":"VariableDeclaration","scope":43068,"src":"2588:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43038,"name":"uint64","nodeType":"ElementaryTypeName","src":"2588:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43042,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"2689:19:64","nodeType":"VariableDeclaration","scope":43068,"src":"2681:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43041,"name":"uint256","nodeType":"ElementaryTypeName","src":"2681:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43045,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"2804:22:64","nodeType":"VariableDeclaration","scope":43068,"src":"2796:30:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43044,"name":"uint256","nodeType":"ElementaryTypeName","src":"2796:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43048,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"2892:23:64","nodeType":"VariableDeclaration","scope":43068,"src":"2885:30:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":43047,"name":"uint64","nodeType":"ElementaryTypeName","src":"2885:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":43052,"mutability":"mutable","name":"validatorsTracker","nameLocation":"3008:17:64","nodeType":"VariableDeclaration","scope":43068,"src":"2984:41:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":43051,"nodeType":"UserDefinedTypeName","pathNode":{"id":43050,"name":"ParentValidatorsTracker","nameLocations":["2984:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"2984:23:64"},"referencedDeclaration":50197,"src":"2984:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":43055,"mutability":"mutable","name":"maxTreeDepth","nameLocation":"3348:12:64","nodeType":"VariableDeclaration","scope":43068,"src":"3342:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":43054,"name":"uint8","nodeType":"ElementaryTypeName","src":"3342:5:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":43058,"mutability":"mutable","name":"generalPurposeCrossMsg","nameLocation":"3449:22:64","nodeType":"VariableDeclaration","scope":43068,"src":"3444:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43057,"name":"bool","nodeType":"ElementaryTypeName","src":"3444:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43061,"mutability":"mutable","name":"multiLevelCrossMsg","nameLocation":"3556:18:64","nodeType":"VariableDeclaration","scope":43068,"src":"3551:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43060,"name":"bool","nodeType":"ElementaryTypeName","src":"3551:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43064,"mutability":"mutable","name":"checkpointRelayerRewards","nameLocation":"3670:24:64","nodeType":"VariableDeclaration","scope":43068,"src":"3665:29:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43063,"name":"bool","nodeType":"ElementaryTypeName","src":"3665:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43067,"mutability":"mutable","name":"crossMsgRelayerRewards","nameLocation":"3795:22:64","nodeType":"VariableDeclaration","scope":43068,"src":"3790:27:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43066,"name":"bool","nodeType":"ElementaryTypeName","src":"3790:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"GatewayActorStorage","nameLocation":"562:19:64","scope":43138,"visibility":"public"},{"id":43079,"nodeType":"ContractDefinition","src":"3822:196:64","nodes":[{"id":43078,"nodeType":"FunctionDefinition","src":"3859:157:64","nodes":[],"body":{"id":43077,"nodeType":"Block","src":"3936:80:64","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3955:36:64","statements":[{"nodeType":"YulAssignment","src":"3969:12:64","value":{"kind":"number","nodeType":"YulLiteral","src":"3980:1:64","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3969:7:64"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":43072,"isOffset":false,"isSlot":true,"src":"3969:7:64","suffix":"slot","valueSize":1}],"id":43074,"nodeType":"InlineAssembly","src":"3946:45:64"},{"expression":{"id":43075,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43072,"src":"4007:2:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage storage pointer"}},"functionReturnParameters":43073,"id":43076,"nodeType":"Return","src":"4000:9:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3868:10:64","parameters":{"id":43069,"nodeType":"ParameterList","parameters":[],"src":"3878:2:64"},"returnParameters":{"id":43073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43072,"mutability":"mutable","name":"ds","nameLocation":"3932:2:64","nodeType":"VariableDeclaration","scope":43078,"src":"3904:30:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"},"typeName":{"id":43071,"nodeType":"UserDefinedTypeName","pathNode":{"id":43070,"name":"GatewayActorStorage","nameLocations":["3904:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"3904:19:64"},"referencedDeclaration":43068,"src":"3904:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"}],"src":"3903:32:64"},"scope":43079,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibGatewayActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[43079],"name":"LibGatewayActorStorage","nameLocation":"3830:22:64","scope":43138,"usedErrors":[]},{"id":43137,"nodeType":"ContractDefinition","src":"4020:629:64","nodes":[{"id":43082,"nodeType":"VariableDeclaration","src":"4057:30:64","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"4086:1:64","scope":43137,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage"},"typeName":{"id":43081,"nodeType":"UserDefinedTypeName","pathNode":{"id":43080,"name":"GatewayActorStorage","nameLocations":["4057:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":43068,"src":"4057:19:64"},"referencedDeclaration":43068,"src":"4057:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage_ptr","typeString":"struct GatewayActorStorage"}},"visibility":"internal"},{"id":43085,"nodeType":"UsingForDirective","src":"4094:29:64","nodes":[],"global":false,"libraryName":{"id":43083,"name":"FilAddress","nameLocations":["4100:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4100:10:64"},"typeName":{"id":43084,"name":"address","nodeType":"ElementaryTypeName","src":"4115:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":43088,"nodeType":"UsingForDirective","src":"4128:37:64","nodes":[],"global":false,"libraryName":{"id":43086,"name":"FilAddress","nameLocations":["4134:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"4134:10:64"},"typeName":{"id":43087,"name":"address","nodeType":"ElementaryTypeName","src":"4149:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":43091,"nodeType":"UsingForDirective","src":"4170:32:64","nodes":[],"global":false,"libraryName":{"id":43089,"name":"AccountHelper","nameLocations":["4176:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":40447,"src":"4176:13:64"},"typeName":{"id":43090,"name":"address","nodeType":"ElementaryTypeName","src":"4194:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":43115,"nodeType":"FunctionDefinition","src":"4208:216:64","nodes":[],"body":{"id":43114,"nodeType":"Block","src":"4256:168:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43096,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43093,"src":"4270:3:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":43097,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"4276:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":43098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4278:14:64","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":43027,"src":"4276:16:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4270:22:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43104,"nodeType":"IfStatement","src":"4266:74:64","trueBody":{"id":43103,"nodeType":"Block","src":"4294:46:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43100,"name":"NotEnoughFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37468,"src":"4315:12:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4315:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43102,"nodeType":"RevertStatement","src":"4308:21:64"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43105,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4353:3:64","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4357:5:64","memberName":"value","nodeType":"MemberAccess","src":"4353:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43107,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43093,"src":"4365:3:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4353:15:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43113,"nodeType":"IfStatement","src":"4349:69:64","trueBody":{"id":43112,"nodeType":"Block","src":"4370:48:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43109,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"4391:14:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4391:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43111,"nodeType":"RevertStatement","src":"4384:23:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"validateFee","nameLocation":"4217:11:64","parameters":{"id":43094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43093,"mutability":"mutable","name":"fee","nameLocation":"4237:3:64","nodeType":"VariableDeclaration","scope":43115,"src":"4229:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43092,"name":"uint256","nodeType":"ElementaryTypeName","src":"4229:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4228:13:64"},"returnParameters":{"id":43095,"nodeType":"ParameterList","parameters":[],"src":"4256:0:64"},"scope":43137,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43129,"nodeType":"FunctionDefinition","src":"4430:138:64","nodes":[],"body":{"id":43128,"nodeType":"Block","src":"4471:97:64","nodes":[],"statements":[{"condition":{"id":43122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4485:27:64","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43118,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4486:3:64","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4490:6:64","memberName":"sender","nodeType":"MemberAccess","src":"4486:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4497:13:64","memberName":"isSystemActor","nodeType":"MemberAccess","referencedDeclaration":40446,"src":"4486:24:64","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) pure returns (bool)"}},"id":43121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4486:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43127,"nodeType":"IfStatement","src":"4481:81:64","trueBody":{"id":43126,"nodeType":"Block","src":"4514:48:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43123,"name":"NotSystemActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37486,"src":"4535:14:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4535:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43125,"nodeType":"RevertStatement","src":"4528:23:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_systemActorOnly","nameLocation":"4439:16:64","parameters":{"id":43116,"nodeType":"ParameterList","parameters":[],"src":"4455:2:64"},"returnParameters":{"id":43117,"nodeType":"ParameterList","parameters":[],"src":"4471:0:64"},"scope":43137,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":43136,"nodeType":"ModifierDefinition","src":"4574:73:64","nodes":[],"body":{"id":43135,"nodeType":"Block","src":"4601:46:64","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43131,"name":"_systemActorOnly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43129,"src":"4611:16:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":43132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4611:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43133,"nodeType":"ExpressionStatement","src":"4611:18:64"},{"id":43134,"nodeType":"PlaceholderStatement","src":"4639:1:64"}]},"name":"systemActorOnly","nameLocation":"4583:15:64","parameters":{"id":43130,"nodeType":"ParameterList","parameters":[],"src":"4598:2:64"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"GatewayActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[43137],"name":"GatewayActorModifiers","nameLocation":"4029:21:64","scope":43138,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":64} \ No newline at end of file diff --git a/.out/LibMaxPQ.sol/LibMaxPQ.json b/.out/LibMaxPQ.sol/LibMaxPQ.json index 8ea2d2059..d4b17328f 100644 --- a/.out/LibMaxPQ.sol/LibMaxPQ.json +++ b/.out/LibMaxPQ.sol/LibMaxPQ.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212205e0452e95a5fedb33868e0dccb00062be98be344e5051612463f1533928cb25064736f6c63430008130033","sourceMap":"368:6310:70:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212205e0452e95a5fedb33868e0dccb00062be98be344e5051612463f1533928cb25064736f6c63430008130033","sourceMap":"368:6310:70:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The max index priority queue for staking. The same implementation as LibMinPQ, just order compare is reversed.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/priority/LibMaxPQ.sol\":\"LibMaxPQ\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/priority/LibMaxPQ.sol":"LibMaxPQ"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/priority/LibMaxPQ.sol","id":47495,"exportedSymbols":{"LibMaxPQ":[47494],"LibPQ":[48378],"LibValidatorSet":[44594],"MaxPQ":[46889],"PQ":[48136],"ValidatorSet":[48673]},"nodeType":"SourceUnit","src":"46:6632:70","nodes":[{"id":46878,"nodeType":"PragmaDirective","src":"46:23:70","nodes":[],"literals":["solidity","0.8",".19"]},{"id":46880,"nodeType":"ImportDirective","src":"71:50:70","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../LibStaking.sol","nameLocation":"-1:-1:-1","scope":47495,"sourceUnit":45729,"symbolAliases":[{"foreign":{"id":46879,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44594,"src":"79:15:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46882,"nodeType":"ImportDirective","src":"122:54:70","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":47495,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":46881,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48673,"src":"130:12:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46885,"nodeType":"ImportDirective","src":"177:38:70","nodes":[],"absolutePath":"src/lib/priority/LibPQ.sol","file":"./LibPQ.sol","nameLocation":"-1:-1:-1","scope":47495,"sourceUnit":48379,"symbolAliases":[{"foreign":{"id":46883,"name":"PQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48136,"src":"185:2:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46884,"name":"LibPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48378,"src":"189:5:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46889,"nodeType":"StructDefinition","src":"217:30:70","nodes":[],"canonicalName":"MaxPQ","members":[{"constant":false,"id":46888,"mutability":"mutable","name":"inner","nameLocation":"239:5:70","nodeType":"VariableDeclaration","scope":46889,"src":"236:8:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"},"typeName":{"id":46887,"nodeType":"UserDefinedTypeName","pathNode":{"id":46886,"name":"PQ","nameLocations":["236:2:70"],"nodeType":"IdentifierPath","referencedDeclaration":48136,"src":"236:2:70"},"referencedDeclaration":48136,"src":"236:2:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"name":"MaxPQ","nameLocation":"224:5:70","scope":47495,"visibility":"public"},{"id":47494,"nodeType":"ContractDefinition","src":"368:6310:70","nodes":[{"id":46894,"nodeType":"UsingForDirective","src":"391:19:70","nodes":[],"global":false,"libraryName":{"id":46891,"name":"LibPQ","nameLocations":["397:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":48378,"src":"397:5:70"},"typeName":{"id":46893,"nodeType":"UserDefinedTypeName","pathNode":{"id":46892,"name":"PQ","nameLocations":["407:2:70"],"nodeType":"IdentifierPath","referencedDeclaration":48136,"src":"407:2:70"},"referencedDeclaration":48136,"src":"407:2:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"}}},{"id":46898,"nodeType":"UsingForDirective","src":"415:39:70","nodes":[],"global":false,"libraryName":{"id":46895,"name":"LibValidatorSet","nameLocations":["421:15:70"],"nodeType":"IdentifierPath","referencedDeclaration":44594,"src":"421:15:70"},"typeName":{"id":46897,"nodeType":"UserDefinedTypeName","pathNode":{"id":46896,"name":"ValidatorSet","nameLocations":["441:12:70"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"441:12:70"},"referencedDeclaration":48673,"src":"441:12:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46911,"nodeType":"FunctionDefinition","src":"460:107:70","nodes":[],"body":{"id":46910,"nodeType":"Block","src":"528:39:70","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":46906,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46901,"src":"545:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":46907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"550:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"545:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":46908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"556:4:70","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"545:15:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":46905,"id":46909,"nodeType":"Return","src":"538:22:70"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSize","nameLocation":"469:7:70","parameters":{"id":46902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46901,"mutability":"mutable","name":"self","nameLocation":"491:4:70","nodeType":"VariableDeclaration","scope":46911,"src":"477:18:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":46900,"nodeType":"UserDefinedTypeName","pathNode":{"id":46899,"name":"MaxPQ","nameLocations":["477:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"477:5:70"},"referencedDeclaration":46889,"src":"477:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"}],"src":"476:20:70"},"returnParameters":{"id":46905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46911,"src":"520:6:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":46903,"name":"uint16","nodeType":"ElementaryTypeName","src":"520:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"519:8:70"},"scope":47494,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46928,"nodeType":"FunctionDefinition","src":"573:132:70","nodes":[],"body":{"id":46927,"nodeType":"Block","src":"655:50:70","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":46921,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46914,"src":"672:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":46922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"677:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"672:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":46923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"683:12:70","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":48135,"src":"672:23:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":46925,"indexExpression":{"id":46924,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46916,"src":"696:1:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"672:26:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":46920,"id":46926,"nodeType":"Return","src":"665:33:70"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"582:10:70","parameters":{"id":46917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46914,"mutability":"mutable","name":"self","nameLocation":"607:4:70","nodeType":"VariableDeclaration","scope":46928,"src":"593:18:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":46913,"nodeType":"UserDefinedTypeName","pathNode":{"id":46912,"name":"MaxPQ","nameLocations":["593:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"593:5:70"},"referencedDeclaration":46889,"src":"593:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":46916,"mutability":"mutable","name":"i","nameLocation":"620:1:70","nodeType":"VariableDeclaration","scope":46928,"src":"613:8:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":46915,"name":"uint16","nodeType":"ElementaryTypeName","src":"613:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"592:30:70"},"returnParameters":{"id":46920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46928,"src":"646:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46918,"name":"address","nodeType":"ElementaryTypeName","src":"646:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"645:9:70"},"scope":47494,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46945,"nodeType":"FunctionDefinition","src":"711:140:70","nodes":[],"body":{"id":46944,"nodeType":"Block","src":"797:54:70","nodes":[],"statements":[{"expression":{"arguments":[{"id":46941,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46933,"src":"834:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":46938,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46931,"src":"814:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":46939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"819:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"814:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":46940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"825:8:70","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48200,"src":"814:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (bool)"}},"id":46942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"814:30:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":46937,"id":46943,"nodeType":"Return","src":"807:37:70"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"720:8:70","parameters":{"id":46934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46931,"mutability":"mutable","name":"self","nameLocation":"743:4:70","nodeType":"VariableDeclaration","scope":46945,"src":"729:18:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":46930,"nodeType":"UserDefinedTypeName","pathNode":{"id":46929,"name":"MaxPQ","nameLocations":["729:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"729:5:70"},"referencedDeclaration":46889,"src":"729:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":46933,"mutability":"mutable","name":"validator","nameLocation":"757:9:70","nodeType":"VariableDeclaration","scope":46945,"src":"749:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46932,"name":"address","nodeType":"ElementaryTypeName","src":"749:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"728:39:70"},"returnParameters":{"id":46937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46945,"src":"791:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46935,"name":"bool","nodeType":"ElementaryTypeName","src":"791:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"790:6:70"},"scope":47494,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":47008,"nodeType":"FunctionDefinition","src":"998:417:70","nodes":[],"body":{"id":47007,"nodeType":"Block","src":"1095:320:70","nodes":[],"statements":[{"assignments":[46958],"declarations":[{"constant":false,"id":46958,"mutability":"mutable","name":"size","nameLocation":"1112:4:70","nodeType":"VariableDeclaration","scope":47007,"src":"1105:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":46957,"name":"uint16","nodeType":"ElementaryTypeName","src":"1105:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":46964,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":46963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46959,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46949,"src":"1119:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":46960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1124:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"1119:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":46961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1130:4:70","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"1119:15:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1137:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1119:19:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1105:33:70"},{"expression":{"id":46973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":46965,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46949,"src":"1149:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":46969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1154:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"1149:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":46970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1160:12:70","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":48130,"src":"1149:23:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":46971,"indexExpression":{"id":46968,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46954,"src":"1173:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1149:34:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46972,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46958,"src":"1186:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1149:41:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":46974,"nodeType":"ExpressionStatement","src":"1149:41:70"},{"expression":{"id":46983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":46975,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46949,"src":"1200:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":46979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1205:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"1200:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":46980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1211:12:70","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":48135,"src":"1200:23:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":46981,"indexExpression":{"id":46978,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46958,"src":"1224:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1200:29:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46982,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46954,"src":"1232:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1200:41:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46984,"nodeType":"ExpressionStatement","src":"1200:41:70"},{"expression":{"id":46991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46949,"src":"1252:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":46988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1257:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"1252:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":46989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1263:4:70","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"1252:15:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46990,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46958,"src":"1270:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1252:22:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":46992,"nodeType":"ExpressionStatement","src":"1252:22:70"},{"assignments":[46994],"declarations":[{"constant":false,"id":46994,"mutability":"mutable","name":"power","nameLocation":"1293:5:70","nodeType":"VariableDeclaration","scope":47007,"src":"1285:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46993,"name":"uint256","nodeType":"ElementaryTypeName","src":"1285:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46999,"initialValue":{"arguments":[{"id":46997,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46954,"src":"1321:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46995,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46952,"src":"1301:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":46996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1312:8:70","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":43686,"src":"1301:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":46998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1301:30:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1285:46:70"},{"expression":{"arguments":[{"id":47001,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46949,"src":"1353:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":47002,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46952,"src":"1371:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47003,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46958,"src":"1388:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47004,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46994,"src":"1401:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47000,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47339,"src":"1341:4:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":47005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1347:4:70","1359:10:70","1383:3:70","1394:5:70"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1341:67:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47006,"nodeType":"ExpressionStatement","src":"1341:67:70"}]},"documentation":{"id":46946,"nodeType":"StructuredDocumentation","src":"857:136:70","text":"@notice Insert the validator address into this PQ.\n NOTE that caller should ensure the valdiator is not already in the queue."},"implemented":true,"kind":"function","modifiers":[],"name":"insert","nameLocation":"1007:6:70","parameters":{"id":46955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46949,"mutability":"mutable","name":"self","nameLocation":"1028:4:70","nodeType":"VariableDeclaration","scope":47008,"src":"1014:18:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":46948,"nodeType":"UserDefinedTypeName","pathNode":{"id":46947,"name":"MaxPQ","nameLocations":["1014:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"1014:5:70"},"referencedDeclaration":46889,"src":"1014:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":46952,"mutability":"mutable","name":"validators","nameLocation":"1055:10:70","nodeType":"VariableDeclaration","scope":47008,"src":"1034:31:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":46951,"nodeType":"UserDefinedTypeName","pathNode":{"id":46950,"name":"ValidatorSet","nameLocations":["1034:12:70"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"1034:12:70"},"referencedDeclaration":48673,"src":"1034:12:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":46954,"mutability":"mutable","name":"validator","nameLocation":"1075:9:70","nodeType":"VariableDeclaration","scope":47008,"src":"1067:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46953,"name":"address","nodeType":"ElementaryTypeName","src":"1067:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1013:72:70"},"returnParameters":{"id":46956,"nodeType":"ParameterList","parameters":[],"src":"1095:0:70"},"scope":47494,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47075,"nodeType":"FunctionDefinition","src":"1545:401:70","nodes":[],"body":{"id":47074,"nodeType":"Block","src":"1620:326:70","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":47018,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47012,"src":"1630:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1635:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"1630:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1641:15:70","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":48170,"src":"1630:26:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":47023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1630:28:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47024,"nodeType":"ExpressionStatement","src":"1630:28:70"},{"assignments":[47026],"declarations":[{"constant":false,"id":47026,"mutability":"mutable","name":"size","nameLocation":"1676:4:70","nodeType":"VariableDeclaration","scope":47074,"src":"1669:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47025,"name":"uint16","nodeType":"ElementaryTypeName","src":"1669:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47030,"initialValue":{"expression":{"expression":{"id":47027,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47012,"src":"1683:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1688:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"1683:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1694:4:70","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"1683:15:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1669:29:70"},{"expression":{"arguments":[{"hexValue":"31","id":47036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1729:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":47037,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47026,"src":"1732:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47031,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47012,"src":"1709:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1714:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"1709:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1720:8:70","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":48377,"src":"1709:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$48136_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":47038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1709:28:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47039,"nodeType":"ExpressionStatement","src":"1709:28:70"},{"expression":{"id":47048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":47040,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47012,"src":"1748:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1753:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"1748:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1759:4:70","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"1748:15:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47045,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47026,"src":"1766:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1773:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1766:8:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1748:26:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":47049,"nodeType":"ExpressionStatement","src":"1748:26:70"},{"expression":{"arguments":[{"id":47055,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47026,"src":"1799:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47050,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47012,"src":"1784:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1789:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"1784:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1795:3:70","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":48254,"src":"1784:14:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$48136_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":47056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1784:20:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47057,"nodeType":"ExpressionStatement","src":"1784:20:70"},{"assignments":[47059],"declarations":[{"constant":false,"id":47059,"mutability":"mutable","name":"power","nameLocation":"1823:5:70","nodeType":"VariableDeclaration","scope":47074,"src":"1815:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47058,"name":"uint256","nodeType":"ElementaryTypeName","src":"1815:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47066,"initialValue":{"arguments":[{"id":47063,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47015,"src":"1851:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":47064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1863:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"expression":{"id":47060,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47012,"src":"1831:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1836:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"1831:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1842:8:70","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":48280,"src":"1831:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":47065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1831:34:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1815:50:70"},{"expression":{"arguments":[{"id":47068,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47012,"src":"1887:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":47069,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47015,"src":"1905:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":47070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":47071,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47059,"src":"1932:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47067,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47428,"src":"1875:4:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":47072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1881:4:70","1893:10:70","1917:3:70","1925:5:70"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1875:64:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47073,"nodeType":"ExpressionStatement","src":"1875:64:70"}]},"documentation":{"id":47009,"nodeType":"StructuredDocumentation","src":"1421:119:70","text":"@notice Pop the minimal value in the priority queue.\n NOTE that caller should ensure the queue is not empty!"},"implemented":true,"kind":"function","modifiers":[],"name":"pop","nameLocation":"1554:3:70","parameters":{"id":47016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47012,"mutability":"mutable","name":"self","nameLocation":"1572:4:70","nodeType":"VariableDeclaration","scope":47075,"src":"1558:18:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":47011,"nodeType":"UserDefinedTypeName","pathNode":{"id":47010,"name":"MaxPQ","nameLocations":["1558:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"1558:5:70"},"referencedDeclaration":46889,"src":"1558:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":47015,"mutability":"mutable","name":"validators","nameLocation":"1599:10:70","nodeType":"VariableDeclaration","scope":47075,"src":"1578:31:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47014,"nodeType":"UserDefinedTypeName","pathNode":{"id":47013,"name":"ValidatorSet","nameLocations":["1578:12:70"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"1578:12:70"},"referencedDeclaration":48673,"src":"1578:12:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"1557:53:70"},"returnParameters":{"id":47017,"nodeType":"ParameterList","parameters":[],"src":"1620:0:70"},"scope":47494,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47167,"nodeType":"FunctionDefinition","src":"2081:787:70","nodes":[],"body":{"id":47166,"nodeType":"Block","src":"2187:681:70","nodes":[],"statements":[{"assignments":[47088],"declarations":[{"constant":false,"id":47088,"mutability":"mutable","name":"pos","nameLocation":"2204:3:70","nodeType":"VariableDeclaration","scope":47166,"src":"2197:10:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47087,"name":"uint16","nodeType":"ElementaryTypeName","src":"2197:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47094,"initialValue":{"arguments":[{"id":47092,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47084,"src":"2236:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":47089,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47079,"src":"2210:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2215:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"2210:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2221:14:70","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":48226,"src":"2210:25:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":47093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2210:36:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2197:49:70"},{"assignments":[47096],"declarations":[{"constant":false,"id":47096,"mutability":"mutable","name":"size","nameLocation":"2263:4:70","nodeType":"VariableDeclaration","scope":47166,"src":"2256:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47095,"name":"uint16","nodeType":"ElementaryTypeName","src":"2256:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47100,"initialValue":{"expression":{"expression":{"id":47097,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47079,"src":"2270:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2275:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"2270:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2281:4:70","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"2270:15:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2256:29:70"},{"expression":{"arguments":[{"id":47106,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47088,"src":"2316:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47107,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47096,"src":"2321:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47101,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47079,"src":"2296:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2301:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"2296:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2307:8:70","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":48377,"src":"2296:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$48136_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":47108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2296:30:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47109,"nodeType":"ExpressionStatement","src":"2296:30:70"},{"expression":{"id":47118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":47110,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47079,"src":"2364:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2369:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"2364:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2375:4:70","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"2364:15:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47115,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47096,"src":"2382:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2389:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2382:8:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2364:26:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":47119,"nodeType":"ExpressionStatement","src":"2364:26:70"},{"expression":{"arguments":[{"id":47125,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47096,"src":"2415:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47120,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47079,"src":"2400:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2405:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"2400:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2411:3:70","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":48254,"src":"2400:14:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$48136_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":47126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2400:20:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47127,"nodeType":"ExpressionStatement","src":"2400:20:70"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47128,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47096,"src":"2435:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":47129,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47088,"src":"2443:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2435:11:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47133,"nodeType":"IfStatement","src":"2431:48:70","trueBody":{"id":47132,"nodeType":"Block","src":"2448:31:70","statements":[{"functionReturnParameters":47086,"id":47131,"nodeType":"Return","src":"2462:7:70"}]}},{"assignments":[47135],"declarations":[{"constant":false,"id":47135,"mutability":"mutable","name":"power","nameLocation":"2555:5:70","nodeType":"VariableDeclaration","scope":47166,"src":"2547:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47134,"name":"uint256","nodeType":"ElementaryTypeName","src":"2547:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47142,"initialValue":{"arguments":[{"id":47139,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47082,"src":"2583:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47140,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47088,"src":"2595:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47136,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47079,"src":"2563:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2568:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"2563:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2574:8:70","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":48280,"src":"2563:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":47141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2563:36:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2547:52:70"},{"expression":{"arguments":[{"id":47144,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47079,"src":"2621:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":47145,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47082,"src":"2639:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47146,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47088,"src":"2656:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47147,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47135,"src":"2668:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47143,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47339,"src":"2609:4:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":47148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2615:4:70","2627:10:70","2651:3:70","2661:5:70"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2609:66:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47149,"nodeType":"ExpressionStatement","src":"2609:66:70"},{"expression":{"id":47157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47150,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47135,"src":"2741:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47154,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47082,"src":"2769:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47155,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47088,"src":"2781:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47151,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47079,"src":"2749:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2754:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"2749:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2760:8:70","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":48280,"src":"2749:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":47156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2749:36:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2741:44:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47158,"nodeType":"ExpressionStatement","src":"2741:44:70"},{"expression":{"arguments":[{"id":47160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47079,"src":"2807:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":47161,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47082,"src":"2825:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47162,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47088,"src":"2842:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47163,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47135,"src":"2854:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47159,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47428,"src":"2795:4:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":47164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2801:4:70","2813:10:70","2837:3:70","2847:5:70"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2795:66:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47165,"nodeType":"ExpressionStatement","src":"2795:66:70"}]},"documentation":{"id":47076,"nodeType":"StructuredDocumentation","src":"1952:124:70","text":"@notice Reheapify the heap when the validator is deleted.\n NOTE that caller should ensure the queue is not empty."},"implemented":true,"kind":"function","modifiers":[],"name":"deleteReheapify","nameLocation":"2090:15:70","parameters":{"id":47085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47079,"mutability":"mutable","name":"self","nameLocation":"2120:4:70","nodeType":"VariableDeclaration","scope":47167,"src":"2106:18:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":47078,"nodeType":"UserDefinedTypeName","pathNode":{"id":47077,"name":"MaxPQ","nameLocations":["2106:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"2106:5:70"},"referencedDeclaration":46889,"src":"2106:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":47082,"mutability":"mutable","name":"validators","nameLocation":"2147:10:70","nodeType":"VariableDeclaration","scope":47167,"src":"2126:31:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47081,"nodeType":"UserDefinedTypeName","pathNode":{"id":47080,"name":"ValidatorSet","nameLocations":["2126:12:70"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"2126:12:70"},"referencedDeclaration":48673,"src":"2126:12:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47084,"mutability":"mutable","name":"validator","nameLocation":"2167:9:70","nodeType":"VariableDeclaration","scope":47167,"src":"2159:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47083,"name":"address","nodeType":"ElementaryTypeName","src":"2159:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2105:72:70"},"returnParameters":{"id":47086,"nodeType":"ParameterList","parameters":[],"src":"2187:0:70"},"scope":47494,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47202,"nodeType":"FunctionDefinition","src":"3016:306:70","nodes":[],"body":{"id":47201,"nodeType":"Block","src":"3124:198:70","nodes":[],"statements":[{"assignments":[47180],"declarations":[{"constant":false,"id":47180,"mutability":"mutable","name":"pos","nameLocation":"3141:3:70","nodeType":"VariableDeclaration","scope":47201,"src":"3134:10:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47179,"name":"uint16","nodeType":"ElementaryTypeName","src":"3134:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47186,"initialValue":{"arguments":[{"id":47184,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47176,"src":"3173:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":47181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47171,"src":"3147:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3152:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"3147:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3158:14:70","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":48226,"src":"3147:25:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":47185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3147:36:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3134:49:70"},{"assignments":[47188],"declarations":[{"constant":false,"id":47188,"mutability":"mutable","name":"power","nameLocation":"3201:5:70","nodeType":"VariableDeclaration","scope":47201,"src":"3193:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47187,"name":"uint256","nodeType":"ElementaryTypeName","src":"3193:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47193,"initialValue":{"arguments":[{"id":47191,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47176,"src":"3229:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47189,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47174,"src":"3209:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":47190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3220:8:70","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":43686,"src":"3209:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":47192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3209:30:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3193:46:70"},{"expression":{"arguments":[{"id":47195,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47171,"src":"3261:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":47196,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47174,"src":"3279:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47197,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47180,"src":"3296:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47198,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47188,"src":"3308:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47194,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47339,"src":"3249:4:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":47199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3255:4:70","3267:10:70","3291:3:70","3301:5:70"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3249:66:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47200,"nodeType":"ExpressionStatement","src":"3249:66:70"}]},"documentation":{"id":47168,"nodeType":"StructuredDocumentation","src":"2874:137:70","text":"@notice Reheapify the heap when the collateral of a key has increased.\n NOTE that caller should ensure the queue is not empty."},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReheapify","nameLocation":"3025:17:70","parameters":{"id":47177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47171,"mutability":"mutable","name":"self","nameLocation":"3057:4:70","nodeType":"VariableDeclaration","scope":47202,"src":"3043:18:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":47170,"nodeType":"UserDefinedTypeName","pathNode":{"id":47169,"name":"MaxPQ","nameLocations":["3043:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"3043:5:70"},"referencedDeclaration":46889,"src":"3043:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":47174,"mutability":"mutable","name":"validators","nameLocation":"3084:10:70","nodeType":"VariableDeclaration","scope":47202,"src":"3063:31:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47173,"nodeType":"UserDefinedTypeName","pathNode":{"id":47172,"name":"ValidatorSet","nameLocations":["3063:12:70"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"3063:12:70"},"referencedDeclaration":48673,"src":"3063:12:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47176,"mutability":"mutable","name":"validator","nameLocation":"3104:9:70","nodeType":"VariableDeclaration","scope":47202,"src":"3096:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47175,"name":"address","nodeType":"ElementaryTypeName","src":"3096:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3042:72:70"},"returnParameters":{"id":47178,"nodeType":"ParameterList","parameters":[],"src":"3124:0:70"},"scope":47494,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47237,"nodeType":"FunctionDefinition","src":"3470:306:70","nodes":[],"body":{"id":47236,"nodeType":"Block","src":"3578:198:70","nodes":[],"statements":[{"assignments":[47215],"declarations":[{"constant":false,"id":47215,"mutability":"mutable","name":"pos","nameLocation":"3595:3:70","nodeType":"VariableDeclaration","scope":47236,"src":"3588:10:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47214,"name":"uint16","nodeType":"ElementaryTypeName","src":"3588:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47221,"initialValue":{"arguments":[{"id":47219,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47211,"src":"3627:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":47216,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47206,"src":"3601:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3606:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"3601:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3612:14:70","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":48226,"src":"3601:25:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":47220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:36:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3588:49:70"},{"assignments":[47223],"declarations":[{"constant":false,"id":47223,"mutability":"mutable","name":"power","nameLocation":"3655:5:70","nodeType":"VariableDeclaration","scope":47236,"src":"3647:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47222,"name":"uint256","nodeType":"ElementaryTypeName","src":"3647:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47228,"initialValue":{"arguments":[{"id":47226,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47211,"src":"3683:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47224,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47209,"src":"3663:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":47225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3674:8:70","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":43686,"src":"3663:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":47227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3663:30:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3647:46:70"},{"expression":{"arguments":[{"id":47230,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47206,"src":"3715:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":47231,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47209,"src":"3733:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47232,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47215,"src":"3750:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47233,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47223,"src":"3762:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47229,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47428,"src":"3703:4:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":47234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3709:4:70","3721:10:70","3745:3:70","3755:5:70"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3703:66:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47235,"nodeType":"ExpressionStatement","src":"3703:66:70"}]},"documentation":{"id":47203,"nodeType":"StructuredDocumentation","src":"3328:137:70","text":"@notice Reheapify the heap when the collateral of a key has decreased.\n NOTE that caller should ensure the queue is not empty."},"implemented":true,"kind":"function","modifiers":[],"name":"decreaseReheapify","nameLocation":"3479:17:70","parameters":{"id":47212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47206,"mutability":"mutable","name":"self","nameLocation":"3511:4:70","nodeType":"VariableDeclaration","scope":47237,"src":"3497:18:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":47205,"nodeType":"UserDefinedTypeName","pathNode":{"id":47204,"name":"MaxPQ","nameLocations":["3497:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"3497:5:70"},"referencedDeclaration":46889,"src":"3497:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":47209,"mutability":"mutable","name":"validators","nameLocation":"3538:10:70","nodeType":"VariableDeclaration","scope":47237,"src":"3517:31:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47208,"nodeType":"UserDefinedTypeName","pathNode":{"id":47207,"name":"ValidatorSet","nameLocations":["3517:12:70"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"3517:12:70"},"referencedDeclaration":48673,"src":"3517:12:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47211,"mutability":"mutable","name":"validator","nameLocation":"3558:9:70","nodeType":"VariableDeclaration","scope":47237,"src":"3550:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47210,"name":"address","nodeType":"ElementaryTypeName","src":"3550:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3496:72:70"},"returnParameters":{"id":47213,"nodeType":"ParameterList","parameters":[],"src":"3578:0:70"},"scope":47494,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47278,"nodeType":"FunctionDefinition","src":"3906:285:70","nodes":[],"body":{"id":47277,"nodeType":"Block","src":"4013:178:70","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":47251,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47241,"src":"4023:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4028:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"4023:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4034:15:70","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":48170,"src":"4023:26:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":47256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4023:28:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47257,"nodeType":"ExpressionStatement","src":"4023:28:70"},{"assignments":[47259],"declarations":[{"constant":false,"id":47259,"mutability":"mutable","name":"addr","nameLocation":"4070:4:70","nodeType":"VariableDeclaration","scope":47277,"src":"4062:12:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47258,"name":"address","nodeType":"ElementaryTypeName","src":"4062:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":47265,"initialValue":{"baseExpression":{"expression":{"expression":{"id":47260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47241,"src":"4077:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4082:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"4077:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4088:12:70","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":48135,"src":"4077:23:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":47264,"indexExpression":{"hexValue":"31","id":47263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4101:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4077:26:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4062:41:70"},{"assignments":[47267],"declarations":[{"constant":false,"id":47267,"mutability":"mutable","name":"power","nameLocation":"4121:5:70","nodeType":"VariableDeclaration","scope":47277,"src":"4113:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47266,"name":"uint256","nodeType":"ElementaryTypeName","src":"4113:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47272,"initialValue":{"arguments":[{"id":47270,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47259,"src":"4149:4:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47268,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47244,"src":"4129:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":47269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4140:8:70","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":43686,"src":"4129:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":47271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4129:25:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4113:41:70"},{"expression":{"components":[{"id":47273,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47259,"src":"4172:4:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47274,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47267,"src":"4178:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":47275,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4171:13:70","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"functionReturnParameters":47250,"id":47276,"nodeType":"Return","src":"4164:20:70"}]},"documentation":{"id":47238,"nodeType":"StructuredDocumentation","src":"3782:119:70","text":"@notice Get the maximum value in the priority queue.\n NOTE that caller should ensure the queue is not empty!"},"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"3915:3:70","parameters":{"id":47245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47241,"mutability":"mutable","name":"self","nameLocation":"3933:4:70","nodeType":"VariableDeclaration","scope":47278,"src":"3919:18:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":47240,"nodeType":"UserDefinedTypeName","pathNode":{"id":47239,"name":"MaxPQ","nameLocations":["3919:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"3919:5:70"},"referencedDeclaration":46889,"src":"3919:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":47244,"mutability":"mutable","name":"validators","nameLocation":"3960:10:70","nodeType":"VariableDeclaration","scope":47278,"src":"3939:31:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47243,"nodeType":"UserDefinedTypeName","pathNode":{"id":47242,"name":"ValidatorSet","nameLocations":["3939:12:70"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"3939:12:70"},"referencedDeclaration":48673,"src":"3939:12:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"3918:53:70"},"returnParameters":{"id":47250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47278,"src":"3995:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47246,"name":"address","nodeType":"ElementaryTypeName","src":"3995:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47278,"src":"4004:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47248,"name":"uint256","nodeType":"ElementaryTypeName","src":"4004:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3994:18:70"},"scope":47494,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":47339,"nodeType":"FunctionDefinition","src":"4443:598:70","nodes":[],"body":{"id":47338,"nodeType":"Block","src":"4546:495:70","nodes":[],"statements":[{"assignments":[47292],"declarations":[{"constant":false,"id":47292,"mutability":"mutable","name":"parentPos","nameLocation":"4563:9:70","nodeType":"VariableDeclaration","scope":47338,"src":"4556:16:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47291,"name":"uint16","nodeType":"ElementaryTypeName","src":"4556:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47293,"nodeType":"VariableDeclarationStatement","src":"4556:16:70"},{"assignments":[47295],"declarations":[{"constant":false,"id":47295,"mutability":"mutable","name":"parentPower","nameLocation":"4590:11:70","nodeType":"VariableDeclaration","scope":47338,"src":"4582:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47294,"name":"uint256","nodeType":"ElementaryTypeName","src":"4582:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47296,"nodeType":"VariableDeclarationStatement","src":"4582:19:70"},{"body":{"id":47336,"nodeType":"Block","src":"4628:407:70","statements":[{"expression":{"id":47304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47300,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"4642:9:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47301,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47286,"src":"4654:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":47302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4661:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4654:8:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4642:20:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":47305,"nodeType":"ExpressionStatement","src":"4642:20:70"},{"expression":{"id":47313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47306,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4699:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47310,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47284,"src":"4733:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47311,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"4745:9:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47307,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"4713:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4718:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"4713:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4724:8:70","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":48280,"src":"4713:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":47312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4713:42:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4699:56:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47314,"nodeType":"ExpressionStatement","src":"4699:56:70"},{"condition":{"id":47319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4868:38:70","subExpression":{"arguments":[{"id":47316,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4887:11:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47317,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47288,"src":"4900:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47315,"name":"firstValueSmaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47493,"src":"4869:17:70","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":47318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4869:37:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47322,"nodeType":"IfStatement","src":"4864:82:70","trueBody":{"id":47321,"nodeType":"Block","src":"4908:38:70","statements":[{"id":47320,"nodeType":"Break","src":"4926:5:70"}]}},{"expression":{"arguments":[{"id":47328,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"4980:9:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47329,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47286,"src":"4991:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47323,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"4960:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4965:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"4960:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4971:8:70","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":48377,"src":"4960:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$48136_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":47330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4960:35:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47331,"nodeType":"ExpressionStatement","src":"4960:35:70"},{"expression":{"id":47334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47332,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47286,"src":"5009:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47333,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"5015:9:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5009:15:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":47335,"nodeType":"ExpressionStatement","src":"5009:15:70"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47297,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47286,"src":"4619:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":47298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4625:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4619:7:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47337,"nodeType":"WhileStatement","src":"4612:423:70"}]},"implemented":true,"kind":"function","modifiers":[],"name":"swim","nameLocation":"4452:4:70","parameters":{"id":47289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47281,"mutability":"mutable","name":"self","nameLocation":"4471:4:70","nodeType":"VariableDeclaration","scope":47339,"src":"4457:18:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":47280,"nodeType":"UserDefinedTypeName","pathNode":{"id":47279,"name":"MaxPQ","nameLocations":["4457:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"4457:5:70"},"referencedDeclaration":46889,"src":"4457:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":47284,"mutability":"mutable","name":"validators","nameLocation":"4498:10:70","nodeType":"VariableDeclaration","scope":47339,"src":"4477:31:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47283,"nodeType":"UserDefinedTypeName","pathNode":{"id":47282,"name":"ValidatorSet","nameLocations":["4477:12:70"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"4477:12:70"},"referencedDeclaration":48673,"src":"4477:12:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47286,"mutability":"mutable","name":"pos","nameLocation":"4517:3:70","nodeType":"VariableDeclaration","scope":47339,"src":"4510:10:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47285,"name":"uint16","nodeType":"ElementaryTypeName","src":"4510:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":47288,"mutability":"mutable","name":"value","nameLocation":"4530:5:70","nodeType":"VariableDeclaration","scope":47339,"src":"4522:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47287,"name":"uint256","nodeType":"ElementaryTypeName","src":"4522:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4456:80:70"},"returnParameters":{"id":47290,"nodeType":"ParameterList","parameters":[],"src":"4546:0:70"},"scope":47494,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47428,"nodeType":"FunctionDefinition","src":"5047:1009:70","nodes":[],"body":{"id":47427,"nodeType":"Block","src":"5150:906:70","nodes":[],"statements":[{"assignments":[47353],"declarations":[{"constant":false,"id":47353,"mutability":"mutable","name":"childPos","nameLocation":"5167:8:70","nodeType":"VariableDeclaration","scope":47427,"src":"5160:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47352,"name":"uint16","nodeType":"ElementaryTypeName","src":"5160:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47357,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47354,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47347,"src":"5178:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"31","id":47355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5185:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5178:8:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5160:26:70"},{"assignments":[47359],"declarations":[{"constant":false,"id":47359,"mutability":"mutable","name":"childPower","nameLocation":"5226:10:70","nodeType":"VariableDeclaration","scope":47427,"src":"5218:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47358,"name":"uint256","nodeType":"ElementaryTypeName","src":"5218:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47360,"nodeType":"VariableDeclarationStatement","src":"5218:18:70"},{"assignments":[47362],"declarations":[{"constant":false,"id":47362,"mutability":"mutable","name":"size","nameLocation":"5254:4:70","nodeType":"VariableDeclaration","scope":47427,"src":"5247:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47361,"name":"uint16","nodeType":"ElementaryTypeName","src":"5247:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47366,"initialValue":{"expression":{"expression":{"id":47363,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47342,"src":"5261:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5266:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"5261:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5272:4:70","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"5261:15:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5247:29:70"},{"body":{"id":47425,"nodeType":"Block","src":"5312:738:70","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47370,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47353,"src":"5330:8:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47371,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47362,"src":"5341:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5330:15:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":47396,"nodeType":"Block","src":"5651:87:70","statements":[{"expression":{"id":47394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47387,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47359,"src":"5669:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47391,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47345,"src":"5702:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47392,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47353,"src":"5714:8:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47388,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47342,"src":"5682:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5687:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"5682:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5693:8:70","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":48280,"src":"5682:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":47393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5682:41:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5669:54:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47395,"nodeType":"ExpressionStatement","src":"5669:54:70"}]},"id":47397,"nodeType":"IfStatement","src":"5326:412:70","trueBody":{"id":47386,"nodeType":"Block","src":"5347:298:70","statements":[{"expression":{"id":47384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":47373,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47353,"src":"5420:8:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47374,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47359,"src":"5430:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":47375,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5419:22:70","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47377,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47342,"src":"5487:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":47378,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47345,"src":"5525:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47379,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47353,"src":"5563:8:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47380,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47353,"src":"5599:8:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":47381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5610:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5599:12:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":47376,"name":"largerPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47479,"src":"5444:14:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$_t_uint16_$returns$_t_uint16_$_t_uint256_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint16) view returns (uint16,uint256)"}},"id":47383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5481:4:70","5513:10:70","5557:4:70","5593:4:70"],"names":["self","validators","pos1","pos2"],"nodeType":"FunctionCall","src":"5444:186:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"src":"5419:211:70","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47385,"nodeType":"ExpressionStatement","src":"5419:211:70"}]}},{"condition":{"id":47402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5854:37:70","subExpression":{"arguments":[{"id":47399,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47349,"src":"5873:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47400,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47359,"src":"5880:10:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47398,"name":"firstValueSmaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47493,"src":"5855:17:70","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":47401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5855:36:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47405,"nodeType":"IfStatement","src":"5850:81:70","trueBody":{"id":47404,"nodeType":"Block","src":"5893:38:70","statements":[{"id":47403,"nodeType":"Break","src":"5911:5:70"}]}},{"expression":{"arguments":[{"id":47411,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47353,"src":"5965:8:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47412,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47347,"src":"5975:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47406,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47342,"src":"5945:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5950:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"5945:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5956:8:70","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":48377,"src":"5945:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$48136_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":47413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5945:34:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47414,"nodeType":"ExpressionStatement","src":"5945:34:70"},{"expression":{"id":47417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47415,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47347,"src":"5993:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47416,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47353,"src":"5999:8:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5993:14:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":47418,"nodeType":"ExpressionStatement","src":"5993:14:70"},{"expression":{"id":47423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47419,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47353,"src":"6021:8:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47420,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47347,"src":"6032:3:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":47421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6038:1:70","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6032:7:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6021:18:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":47424,"nodeType":"ExpressionStatement","src":"6021:18:70"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47367,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47353,"src":"5294:8:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":47368,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47362,"src":"5306:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5294:16:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47426,"nodeType":"WhileStatement","src":"5287:763:70"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sink","nameLocation":"5056:4:70","parameters":{"id":47350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47342,"mutability":"mutable","name":"self","nameLocation":"5075:4:70","nodeType":"VariableDeclaration","scope":47428,"src":"5061:18:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":47341,"nodeType":"UserDefinedTypeName","pathNode":{"id":47340,"name":"MaxPQ","nameLocations":["5061:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"5061:5:70"},"referencedDeclaration":46889,"src":"5061:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":47345,"mutability":"mutable","name":"validators","nameLocation":"5102:10:70","nodeType":"VariableDeclaration","scope":47428,"src":"5081:31:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47344,"nodeType":"UserDefinedTypeName","pathNode":{"id":47343,"name":"ValidatorSet","nameLocations":["5081:12:70"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5081:12:70"},"referencedDeclaration":48673,"src":"5081:12:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47347,"mutability":"mutable","name":"pos","nameLocation":"5121:3:70","nodeType":"VariableDeclaration","scope":47428,"src":"5114:10:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47346,"name":"uint16","nodeType":"ElementaryTypeName","src":"5114:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":47349,"mutability":"mutable","name":"value","nameLocation":"5134:5:70","nodeType":"VariableDeclaration","scope":47428,"src":"5126:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47348,"name":"uint256","nodeType":"ElementaryTypeName","src":"5126:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5060:80:70"},"returnParameters":{"id":47351,"nodeType":"ParameterList","parameters":[],"src":"5150:0:70"},"scope":47494,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47479,"nodeType":"FunctionDefinition","src":"6117:442:70","nodes":[],"body":{"id":47478,"nodeType":"Block","src":"6298:261:70","nodes":[],"statements":[{"assignments":[47447],"declarations":[{"constant":false,"id":47447,"mutability":"mutable","name":"power1","nameLocation":"6316:6:70","nodeType":"VariableDeclaration","scope":47478,"src":"6308:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47446,"name":"uint256","nodeType":"ElementaryTypeName","src":"6308:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47454,"initialValue":{"arguments":[{"id":47451,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47435,"src":"6345:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47452,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47437,"src":"6357:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47448,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47432,"src":"6325:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6330:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"6325:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6336:8:70","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":48280,"src":"6325:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":47453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6325:37:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6308:54:70"},{"assignments":[47456],"declarations":[{"constant":false,"id":47456,"mutability":"mutable","name":"power2","nameLocation":"6380:6:70","nodeType":"VariableDeclaration","scope":47478,"src":"6372:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47455,"name":"uint256","nodeType":"ElementaryTypeName","src":"6372:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47463,"initialValue":{"arguments":[{"id":47460,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47435,"src":"6409:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47461,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47439,"src":"6421:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47457,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47432,"src":"6389:4:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":47458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6394:5:70","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":46888,"src":"6389:10:70","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6400:8:70","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":48280,"src":"6389:19:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":47462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6389:37:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6372:54:70"},{"condition":{"arguments":[{"id":47465,"name":"power1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47447,"src":"6459:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47466,"name":"power2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47456,"src":"6467:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47464,"name":"firstValueSmaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47493,"src":"6441:17:70","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":47467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6441:33:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47473,"nodeType":"IfStatement","src":"6437:85:70","trueBody":{"id":47472,"nodeType":"Block","src":"6476:46:70","statements":[{"expression":{"components":[{"id":47468,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47439,"src":"6498:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47469,"name":"power2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47456,"src":"6504:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":47470,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6497:14:70","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":47445,"id":47471,"nodeType":"Return","src":"6490:21:70"}]}},{"expression":{"components":[{"id":47474,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47437,"src":"6539:4:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47475,"name":"power1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47447,"src":"6545:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":47476,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6538:14:70","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":47445,"id":47477,"nodeType":"Return","src":"6531:21:70"}]},"documentation":{"id":47429,"nodeType":"StructuredDocumentation","src":"6062:50:70","text":"@notice Get the larger index of pos1 and pos2."},"implemented":true,"kind":"function","modifiers":[],"name":"largerPosition","nameLocation":"6126:14:70","parameters":{"id":47440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47432,"mutability":"mutable","name":"self","nameLocation":"6164:4:70","nodeType":"VariableDeclaration","scope":47479,"src":"6150:18:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":47431,"nodeType":"UserDefinedTypeName","pathNode":{"id":47430,"name":"MaxPQ","nameLocations":["6150:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"6150:5:70"},"referencedDeclaration":46889,"src":"6150:5:70","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":47435,"mutability":"mutable","name":"validators","nameLocation":"6199:10:70","nodeType":"VariableDeclaration","scope":47479,"src":"6178:31:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47434,"nodeType":"UserDefinedTypeName","pathNode":{"id":47433,"name":"ValidatorSet","nameLocations":["6178:12:70"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"6178:12:70"},"referencedDeclaration":48673,"src":"6178:12:70","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47437,"mutability":"mutable","name":"pos1","nameLocation":"6226:4:70","nodeType":"VariableDeclaration","scope":47479,"src":"6219:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47436,"name":"uint16","nodeType":"ElementaryTypeName","src":"6219:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":47439,"mutability":"mutable","name":"pos2","nameLocation":"6247:4:70","nodeType":"VariableDeclaration","scope":47479,"src":"6240:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47438,"name":"uint16","nodeType":"ElementaryTypeName","src":"6240:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"6140:117:70"},"returnParameters":{"id":47445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47442,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47479,"src":"6281:6:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47441,"name":"uint16","nodeType":"ElementaryTypeName","src":"6281:6:70","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":47444,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47479,"src":"6289:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47443,"name":"uint256","nodeType":"ElementaryTypeName","src":"6289:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6280:17:70"},"scope":47494,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":47493,"nodeType":"FunctionDefinition","src":"6565:111:70","nodes":[],"body":{"id":47492,"nodeType":"Block","src":"6645:31:70","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47488,"name":"v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47481,"src":"6662:2:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47489,"name":"v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47483,"src":"6667:2:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6662:7:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":47487,"id":47491,"nodeType":"Return","src":"6655:14:70"}]},"implemented":true,"kind":"function","modifiers":[],"name":"firstValueSmaller","nameLocation":"6574:17:70","parameters":{"id":47484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47481,"mutability":"mutable","name":"v1","nameLocation":"6600:2:70","nodeType":"VariableDeclaration","scope":47493,"src":"6592:10:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47480,"name":"uint256","nodeType":"ElementaryTypeName","src":"6592:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47483,"mutability":"mutable","name":"v2","nameLocation":"6612:2:70","nodeType":"VariableDeclaration","scope":47493,"src":"6604:10:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47482,"name":"uint256","nodeType":"ElementaryTypeName","src":"6604:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6591:24:70"},"returnParameters":{"id":47487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47493,"src":"6639:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47485,"name":"bool","nodeType":"ElementaryTypeName","src":"6639:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6638:6:70"},"scope":47494,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibMaxPQ","contractDependencies":[],"contractKind":"library","documentation":{"id":46890,"nodeType":"StructuredDocumentation","src":"249:119:70","text":"The max index priority queue for staking. The same implementation as LibMinPQ, just order compare\n is reversed."},"fullyImplemented":true,"linearizedBaseContracts":[47494],"name":"LibMaxPQ","nameLocation":"376:8:70","scope":47495,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":70} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220a5dded6b847158724a34e02cf20abd48562a9aed63aed00b85ac85b8c046cc9064736f6c63430008130033","sourceMap":"368:6310:77:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220a5dded6b847158724a34e02cf20abd48562a9aed63aed00b85ac85b8c046cc9064736f6c63430008130033","sourceMap":"368:6310:77:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The max index priority queue for staking. The same implementation as LibMinPQ, just order compare is reversed.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/priority/LibMaxPQ.sol\":\"LibMaxPQ\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/priority/LibMaxPQ.sol":"LibMaxPQ"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/priority/LibMaxPQ.sol","id":49017,"exportedSymbols":{"LibMaxPQ":[49016],"LibPQ":[49900],"LibValidatorSet":[45293],"MaxPQ":[48411],"PQ":[49658],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:6632:77","nodes":[{"id":48400,"nodeType":"PragmaDirective","src":"46:23:77","nodes":[],"literals":["solidity","0.8",".19"]},{"id":48402,"nodeType":"ImportDirective","src":"71:50:77","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../LibStaking.sol","nameLocation":"-1:-1:-1","scope":49017,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":48401,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45293,"src":"79:15:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48404,"nodeType":"ImportDirective","src":"122:54:77","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":49017,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":48403,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"130:12:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48407,"nodeType":"ImportDirective","src":"177:38:77","nodes":[],"absolutePath":"src/lib/priority/LibPQ.sol","file":"./LibPQ.sol","nameLocation":"-1:-1:-1","scope":49017,"sourceUnit":49901,"symbolAliases":[{"foreign":{"id":48405,"name":"PQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49658,"src":"185:2:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":48406,"name":"LibPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49900,"src":"189:5:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48411,"nodeType":"StructDefinition","src":"217:30:77","nodes":[],"canonicalName":"MaxPQ","members":[{"constant":false,"id":48410,"mutability":"mutable","name":"inner","nameLocation":"239:5:77","nodeType":"VariableDeclaration","scope":48411,"src":"236:8:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":48409,"nodeType":"UserDefinedTypeName","pathNode":{"id":48408,"name":"PQ","nameLocations":["236:2:77"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"236:2:77"},"referencedDeclaration":49658,"src":"236:2:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"name":"MaxPQ","nameLocation":"224:5:77","scope":49017,"visibility":"public"},{"id":49016,"nodeType":"ContractDefinition","src":"368:6310:77","nodes":[{"id":48416,"nodeType":"UsingForDirective","src":"391:19:77","nodes":[],"global":false,"libraryName":{"id":48413,"name":"LibPQ","nameLocations":["397:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":49900,"src":"397:5:77"},"typeName":{"id":48415,"nodeType":"UserDefinedTypeName","pathNode":{"id":48414,"name":"PQ","nameLocations":["407:2:77"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"407:2:77"},"referencedDeclaration":49658,"src":"407:2:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}}},{"id":48420,"nodeType":"UsingForDirective","src":"415:39:77","nodes":[],"global":false,"libraryName":{"id":48417,"name":"LibValidatorSet","nameLocations":["421:15:77"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"421:15:77"},"typeName":{"id":48419,"nodeType":"UserDefinedTypeName","pathNode":{"id":48418,"name":"ValidatorSet","nameLocations":["441:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"441:12:77"},"referencedDeclaration":50190,"src":"441:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":48433,"nodeType":"FunctionDefinition","src":"460:107:77","nodes":[],"body":{"id":48432,"nodeType":"Block","src":"528:39:77","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":48428,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48423,"src":"545:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"550:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"545:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"556:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"545:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":48427,"id":48431,"nodeType":"Return","src":"538:22:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSize","nameLocation":"469:7:77","parameters":{"id":48424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48423,"mutability":"mutable","name":"self","nameLocation":"491:4:77","nodeType":"VariableDeclaration","scope":48433,"src":"477:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48422,"nodeType":"UserDefinedTypeName","pathNode":{"id":48421,"name":"MaxPQ","nameLocations":["477:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"477:5:77"},"referencedDeclaration":48411,"src":"477:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"}],"src":"476:20:77"},"returnParameters":{"id":48427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48433,"src":"520:6:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48425,"name":"uint16","nodeType":"ElementaryTypeName","src":"520:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"519:8:77"},"scope":49016,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48450,"nodeType":"FunctionDefinition","src":"573:132:77","nodes":[],"body":{"id":48449,"nodeType":"Block","src":"655:50:77","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":48443,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48436,"src":"672:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"677:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"672:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"683:12:77","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"672:23:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48447,"indexExpression":{"id":48446,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48438,"src":"696:1:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"672:26:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":48442,"id":48448,"nodeType":"Return","src":"665:33:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"582:10:77","parameters":{"id":48439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48436,"mutability":"mutable","name":"self","nameLocation":"607:4:77","nodeType":"VariableDeclaration","scope":48450,"src":"593:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48435,"nodeType":"UserDefinedTypeName","pathNode":{"id":48434,"name":"MaxPQ","nameLocations":["593:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"593:5:77"},"referencedDeclaration":48411,"src":"593:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48438,"mutability":"mutable","name":"i","nameLocation":"620:1:77","nodeType":"VariableDeclaration","scope":48450,"src":"613:8:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48437,"name":"uint16","nodeType":"ElementaryTypeName","src":"613:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"592:30:77"},"returnParameters":{"id":48442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48450,"src":"646:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48440,"name":"address","nodeType":"ElementaryTypeName","src":"646:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"645:9:77"},"scope":49016,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48467,"nodeType":"FunctionDefinition","src":"711:140:77","nodes":[],"body":{"id":48466,"nodeType":"Block","src":"797:54:77","nodes":[],"statements":[{"expression":{"arguments":[{"id":48463,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48455,"src":"834:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":48460,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48453,"src":"814:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"819:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"814:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"825:8:77","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49722,"src":"814:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (bool)"}},"id":48464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"814:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48459,"id":48465,"nodeType":"Return","src":"807:37:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"720:8:77","parameters":{"id":48456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48453,"mutability":"mutable","name":"self","nameLocation":"743:4:77","nodeType":"VariableDeclaration","scope":48467,"src":"729:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48452,"nodeType":"UserDefinedTypeName","pathNode":{"id":48451,"name":"MaxPQ","nameLocations":["729:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"729:5:77"},"referencedDeclaration":48411,"src":"729:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48455,"mutability":"mutable","name":"validator","nameLocation":"757:9:77","nodeType":"VariableDeclaration","scope":48467,"src":"749:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48454,"name":"address","nodeType":"ElementaryTypeName","src":"749:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"728:39:77"},"returnParameters":{"id":48459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48467,"src":"791:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48457,"name":"bool","nodeType":"ElementaryTypeName","src":"791:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"790:6:77"},"scope":49016,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48530,"nodeType":"FunctionDefinition","src":"998:417:77","nodes":[],"body":{"id":48529,"nodeType":"Block","src":"1095:320:77","nodes":[],"statements":[{"assignments":[48480],"declarations":[{"constant":false,"id":48480,"mutability":"mutable","name":"size","nameLocation":"1112:4:77","nodeType":"VariableDeclaration","scope":48529,"src":"1105:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48479,"name":"uint16","nodeType":"ElementaryTypeName","src":"1105:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48486,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":48481,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48471,"src":"1119:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1124:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1119:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1130:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1119:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":48484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1137:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1119:19:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1105:33:77"},{"expression":{"id":48495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":48487,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48471,"src":"1149:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1154:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1149:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1160:12:77","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49652,"src":"1149:23:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":48493,"indexExpression":{"id":48490,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"1173:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1149:34:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48494,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48480,"src":"1186:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1149:41:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48496,"nodeType":"ExpressionStatement","src":"1149:41:77"},{"expression":{"id":48505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":48497,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48471,"src":"1200:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1205:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1200:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1211:12:77","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"1200:23:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48503,"indexExpression":{"id":48500,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48480,"src":"1224:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1200:29:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48504,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"1232:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1200:41:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48506,"nodeType":"ExpressionStatement","src":"1200:41:77"},{"expression":{"id":48513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":48507,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48471,"src":"1252:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1257:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1252:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1263:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1252:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48512,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48480,"src":"1270:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1252:22:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48514,"nodeType":"ExpressionStatement","src":"1252:22:77"},{"assignments":[48516],"declarations":[{"constant":false,"id":48516,"mutability":"mutable","name":"power","nameLocation":"1293:5:77","nodeType":"VariableDeclaration","scope":48529,"src":"1285:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48515,"name":"uint256","nodeType":"ElementaryTypeName","src":"1285:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48521,"initialValue":{"arguments":[{"id":48519,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"1321:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48517,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48474,"src":"1301:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":48518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1312:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"1301:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":48520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1301:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1285:46:77"},{"expression":{"arguments":[{"id":48523,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48471,"src":"1353:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48524,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48474,"src":"1371:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48525,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48480,"src":"1388:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48526,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48516,"src":"1401:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48522,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48861,"src":"1341:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1347:4:77","1359:10:77","1383:3:77","1394:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1341:67:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48528,"nodeType":"ExpressionStatement","src":"1341:67:77"}]},"documentation":{"id":48468,"nodeType":"StructuredDocumentation","src":"857:136:77","text":"@notice Insert the validator address into this PQ.\n NOTE that caller should ensure the valdiator is not already in the queue."},"implemented":true,"kind":"function","modifiers":[],"name":"insert","nameLocation":"1007:6:77","parameters":{"id":48477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48471,"mutability":"mutable","name":"self","nameLocation":"1028:4:77","nodeType":"VariableDeclaration","scope":48530,"src":"1014:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48470,"nodeType":"UserDefinedTypeName","pathNode":{"id":48469,"name":"MaxPQ","nameLocations":["1014:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"1014:5:77"},"referencedDeclaration":48411,"src":"1014:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48474,"mutability":"mutable","name":"validators","nameLocation":"1055:10:77","nodeType":"VariableDeclaration","scope":48530,"src":"1034:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48473,"nodeType":"UserDefinedTypeName","pathNode":{"id":48472,"name":"ValidatorSet","nameLocations":["1034:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"1034:12:77"},"referencedDeclaration":50190,"src":"1034:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48476,"mutability":"mutable","name":"validator","nameLocation":"1075:9:77","nodeType":"VariableDeclaration","scope":48530,"src":"1067:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48475,"name":"address","nodeType":"ElementaryTypeName","src":"1067:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1013:72:77"},"returnParameters":{"id":48478,"nodeType":"ParameterList","parameters":[],"src":"1095:0:77"},"scope":49016,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48597,"nodeType":"FunctionDefinition","src":"1545:401:77","nodes":[],"body":{"id":48596,"nodeType":"Block","src":"1620:326:77","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":48540,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"1630:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1635:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1630:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1641:15:77","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":49692,"src":"1630:26:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":48545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1630:28:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48546,"nodeType":"ExpressionStatement","src":"1630:28:77"},{"assignments":[48548],"declarations":[{"constant":false,"id":48548,"mutability":"mutable","name":"size","nameLocation":"1676:4:77","nodeType":"VariableDeclaration","scope":48596,"src":"1669:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48547,"name":"uint16","nodeType":"ElementaryTypeName","src":"1669:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48552,"initialValue":{"expression":{"expression":{"id":48549,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"1683:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1688:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1683:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1694:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1683:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1669:29:77"},{"expression":{"arguments":[{"hexValue":"31","id":48558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1729:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":48559,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48548,"src":"1732:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48553,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"1709:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1714:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1709:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1720:8:77","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"1709:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":48560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1709:28:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48561,"nodeType":"ExpressionStatement","src":"1709:28:77"},{"expression":{"id":48570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":48562,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"1748:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1753:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1748:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1759:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1748:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48567,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48548,"src":"1766:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":48568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1773:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1766:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1748:26:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48571,"nodeType":"ExpressionStatement","src":"1748:26:77"},{"expression":{"arguments":[{"id":48577,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48548,"src":"1799:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48572,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"1784:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1789:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1784:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1795:3:77","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":49776,"src":"1784:14:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":48578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1784:20:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48579,"nodeType":"ExpressionStatement","src":"1784:20:77"},{"assignments":[48581],"declarations":[{"constant":false,"id":48581,"mutability":"mutable","name":"power","nameLocation":"1823:5:77","nodeType":"VariableDeclaration","scope":48596,"src":"1815:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48580,"name":"uint256","nodeType":"ElementaryTypeName","src":"1815:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48588,"initialValue":{"arguments":[{"id":48585,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48537,"src":"1851:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":48586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1863:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"expression":{"id":48582,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"1831:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1836:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"1831:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1842:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"1831:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1831:34:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1815:50:77"},{"expression":{"arguments":[{"id":48590,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48534,"src":"1887:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48591,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48537,"src":"1905:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":48592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":48593,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48581,"src":"1932:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48589,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48950,"src":"1875:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1881:4:77","1893:10:77","1917:3:77","1925:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1875:64:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48595,"nodeType":"ExpressionStatement","src":"1875:64:77"}]},"documentation":{"id":48531,"nodeType":"StructuredDocumentation","src":"1421:119:77","text":"@notice Pop the minimal value in the priority queue.\n NOTE that caller should ensure the queue is not empty!"},"implemented":true,"kind":"function","modifiers":[],"name":"pop","nameLocation":"1554:3:77","parameters":{"id":48538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48534,"mutability":"mutable","name":"self","nameLocation":"1572:4:77","nodeType":"VariableDeclaration","scope":48597,"src":"1558:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48533,"nodeType":"UserDefinedTypeName","pathNode":{"id":48532,"name":"MaxPQ","nameLocations":["1558:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"1558:5:77"},"referencedDeclaration":48411,"src":"1558:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48537,"mutability":"mutable","name":"validators","nameLocation":"1599:10:77","nodeType":"VariableDeclaration","scope":48597,"src":"1578:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48536,"nodeType":"UserDefinedTypeName","pathNode":{"id":48535,"name":"ValidatorSet","nameLocations":["1578:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"1578:12:77"},"referencedDeclaration":50190,"src":"1578:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"1557:53:77"},"returnParameters":{"id":48539,"nodeType":"ParameterList","parameters":[],"src":"1620:0:77"},"scope":49016,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48689,"nodeType":"FunctionDefinition","src":"2081:787:77","nodes":[],"body":{"id":48688,"nodeType":"Block","src":"2187:681:77","nodes":[],"statements":[{"assignments":[48610],"declarations":[{"constant":false,"id":48610,"mutability":"mutable","name":"pos","nameLocation":"2204:3:77","nodeType":"VariableDeclaration","scope":48688,"src":"2197:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48609,"name":"uint16","nodeType":"ElementaryTypeName","src":"2197:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48616,"initialValue":{"arguments":[{"id":48614,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48606,"src":"2236:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":48611,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2210:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2215:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"2210:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2221:14:77","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49748,"src":"2210:25:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":48615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2210:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2197:49:77"},{"assignments":[48618],"declarations":[{"constant":false,"id":48618,"mutability":"mutable","name":"size","nameLocation":"2263:4:77","nodeType":"VariableDeclaration","scope":48688,"src":"2256:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48617,"name":"uint16","nodeType":"ElementaryTypeName","src":"2256:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48622,"initialValue":{"expression":{"expression":{"id":48619,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2270:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2275:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"2270:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2281:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"2270:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2256:29:77"},{"expression":{"arguments":[{"id":48628,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48610,"src":"2316:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48629,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48618,"src":"2321:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48623,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2296:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2301:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"2296:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2307:8:77","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"2296:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":48630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2296:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48631,"nodeType":"ExpressionStatement","src":"2296:30:77"},{"expression":{"id":48640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":48632,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2364:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2369:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"2364:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2375:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"2364:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48637,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48618,"src":"2382:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":48638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2389:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2382:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2364:26:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48641,"nodeType":"ExpressionStatement","src":"2364:26:77"},{"expression":{"arguments":[{"id":48647,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48618,"src":"2415:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48642,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2400:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2405:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"2400:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2411:3:77","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":49776,"src":"2400:14:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":48648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2400:20:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48649,"nodeType":"ExpressionStatement","src":"2400:20:77"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48650,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48618,"src":"2435:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":48651,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48610,"src":"2443:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2435:11:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48655,"nodeType":"IfStatement","src":"2431:48:77","trueBody":{"id":48654,"nodeType":"Block","src":"2448:31:77","statements":[{"functionReturnParameters":48608,"id":48653,"nodeType":"Return","src":"2462:7:77"}]}},{"assignments":[48657],"declarations":[{"constant":false,"id":48657,"mutability":"mutable","name":"power","nameLocation":"2555:5:77","nodeType":"VariableDeclaration","scope":48688,"src":"2547:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48656,"name":"uint256","nodeType":"ElementaryTypeName","src":"2547:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48664,"initialValue":{"arguments":[{"id":48661,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48604,"src":"2583:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48662,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48610,"src":"2595:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48658,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2563:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2568:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"2563:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2574:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"2563:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2563:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2547:52:77"},{"expression":{"arguments":[{"id":48666,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2621:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48667,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48604,"src":"2639:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48668,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48610,"src":"2656:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48669,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48657,"src":"2668:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48665,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48861,"src":"2609:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2615:4:77","2627:10:77","2651:3:77","2661:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2609:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48671,"nodeType":"ExpressionStatement","src":"2609:66:77"},{"expression":{"id":48679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48672,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48657,"src":"2741:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48676,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48604,"src":"2769:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48677,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48610,"src":"2781:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48673,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2749:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2754:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"2749:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2760:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"2749:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2749:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2741:44:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48680,"nodeType":"ExpressionStatement","src":"2741:44:77"},{"expression":{"arguments":[{"id":48682,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48601,"src":"2807:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48683,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48604,"src":"2825:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48684,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48610,"src":"2842:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48685,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48657,"src":"2854:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48681,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48950,"src":"2795:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2801:4:77","2813:10:77","2837:3:77","2847:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2795:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48687,"nodeType":"ExpressionStatement","src":"2795:66:77"}]},"documentation":{"id":48598,"nodeType":"StructuredDocumentation","src":"1952:124:77","text":"@notice Reheapify the heap when the validator is deleted.\n NOTE that caller should ensure the queue is not empty."},"implemented":true,"kind":"function","modifiers":[],"name":"deleteReheapify","nameLocation":"2090:15:77","parameters":{"id":48607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48601,"mutability":"mutable","name":"self","nameLocation":"2120:4:77","nodeType":"VariableDeclaration","scope":48689,"src":"2106:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48600,"nodeType":"UserDefinedTypeName","pathNode":{"id":48599,"name":"MaxPQ","nameLocations":["2106:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"2106:5:77"},"referencedDeclaration":48411,"src":"2106:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48604,"mutability":"mutable","name":"validators","nameLocation":"2147:10:77","nodeType":"VariableDeclaration","scope":48689,"src":"2126:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48603,"nodeType":"UserDefinedTypeName","pathNode":{"id":48602,"name":"ValidatorSet","nameLocations":["2126:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"2126:12:77"},"referencedDeclaration":50190,"src":"2126:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48606,"mutability":"mutable","name":"validator","nameLocation":"2167:9:77","nodeType":"VariableDeclaration","scope":48689,"src":"2159:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48605,"name":"address","nodeType":"ElementaryTypeName","src":"2159:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2105:72:77"},"returnParameters":{"id":48608,"nodeType":"ParameterList","parameters":[],"src":"2187:0:77"},"scope":49016,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48724,"nodeType":"FunctionDefinition","src":"3016:306:77","nodes":[],"body":{"id":48723,"nodeType":"Block","src":"3124:198:77","nodes":[],"statements":[{"assignments":[48702],"declarations":[{"constant":false,"id":48702,"mutability":"mutable","name":"pos","nameLocation":"3141:3:77","nodeType":"VariableDeclaration","scope":48723,"src":"3134:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48701,"name":"uint16","nodeType":"ElementaryTypeName","src":"3134:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48708,"initialValue":{"arguments":[{"id":48706,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48698,"src":"3173:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":48703,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48693,"src":"3147:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3152:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"3147:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3158:14:77","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49748,"src":"3147:25:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":48707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3147:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3134:49:77"},{"assignments":[48710],"declarations":[{"constant":false,"id":48710,"mutability":"mutable","name":"power","nameLocation":"3201:5:77","nodeType":"VariableDeclaration","scope":48723,"src":"3193:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48709,"name":"uint256","nodeType":"ElementaryTypeName","src":"3193:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48715,"initialValue":{"arguments":[{"id":48713,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48698,"src":"3229:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48711,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48696,"src":"3209:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":48712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3220:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"3209:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":48714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3209:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3193:46:77"},{"expression":{"arguments":[{"id":48717,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48693,"src":"3261:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48718,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48696,"src":"3279:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48719,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48702,"src":"3296:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48720,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48710,"src":"3308:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48716,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48861,"src":"3249:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3255:4:77","3267:10:77","3291:3:77","3301:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3249:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48722,"nodeType":"ExpressionStatement","src":"3249:66:77"}]},"documentation":{"id":48690,"nodeType":"StructuredDocumentation","src":"2874:137:77","text":"@notice Reheapify the heap when the collateral of a key has increased.\n NOTE that caller should ensure the queue is not empty."},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReheapify","nameLocation":"3025:17:77","parameters":{"id":48699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48693,"mutability":"mutable","name":"self","nameLocation":"3057:4:77","nodeType":"VariableDeclaration","scope":48724,"src":"3043:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48692,"nodeType":"UserDefinedTypeName","pathNode":{"id":48691,"name":"MaxPQ","nameLocations":["3043:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3043:5:77"},"referencedDeclaration":48411,"src":"3043:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48696,"mutability":"mutable","name":"validators","nameLocation":"3084:10:77","nodeType":"VariableDeclaration","scope":48724,"src":"3063:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48695,"nodeType":"UserDefinedTypeName","pathNode":{"id":48694,"name":"ValidatorSet","nameLocations":["3063:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"3063:12:77"},"referencedDeclaration":50190,"src":"3063:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48698,"mutability":"mutable","name":"validator","nameLocation":"3104:9:77","nodeType":"VariableDeclaration","scope":48724,"src":"3096:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48697,"name":"address","nodeType":"ElementaryTypeName","src":"3096:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3042:72:77"},"returnParameters":{"id":48700,"nodeType":"ParameterList","parameters":[],"src":"3124:0:77"},"scope":49016,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48759,"nodeType":"FunctionDefinition","src":"3470:306:77","nodes":[],"body":{"id":48758,"nodeType":"Block","src":"3578:198:77","nodes":[],"statements":[{"assignments":[48737],"declarations":[{"constant":false,"id":48737,"mutability":"mutable","name":"pos","nameLocation":"3595:3:77","nodeType":"VariableDeclaration","scope":48758,"src":"3588:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48736,"name":"uint16","nodeType":"ElementaryTypeName","src":"3588:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48743,"initialValue":{"arguments":[{"id":48741,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48733,"src":"3627:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":48738,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48728,"src":"3601:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48739,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3606:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"3601:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3612:14:77","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49748,"src":"3601:25:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":48742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3588:49:77"},{"assignments":[48745],"declarations":[{"constant":false,"id":48745,"mutability":"mutable","name":"power","nameLocation":"3655:5:77","nodeType":"VariableDeclaration","scope":48758,"src":"3647:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48744,"name":"uint256","nodeType":"ElementaryTypeName","src":"3647:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48750,"initialValue":{"arguments":[{"id":48748,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48733,"src":"3683:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48746,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48731,"src":"3663:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":48747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3674:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"3663:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":48749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3663:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3647:46:77"},{"expression":{"arguments":[{"id":48752,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48728,"src":"3715:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48753,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48731,"src":"3733:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48754,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48737,"src":"3750:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48755,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48745,"src":"3762:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48751,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48950,"src":"3703:4:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":48756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3709:4:77","3721:10:77","3745:3:77","3755:5:77"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3703:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48757,"nodeType":"ExpressionStatement","src":"3703:66:77"}]},"documentation":{"id":48725,"nodeType":"StructuredDocumentation","src":"3328:137:77","text":"@notice Reheapify the heap when the collateral of a key has decreased.\n NOTE that caller should ensure the queue is not empty."},"implemented":true,"kind":"function","modifiers":[],"name":"decreaseReheapify","nameLocation":"3479:17:77","parameters":{"id":48734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48728,"mutability":"mutable","name":"self","nameLocation":"3511:4:77","nodeType":"VariableDeclaration","scope":48759,"src":"3497:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48727,"nodeType":"UserDefinedTypeName","pathNode":{"id":48726,"name":"MaxPQ","nameLocations":["3497:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3497:5:77"},"referencedDeclaration":48411,"src":"3497:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48731,"mutability":"mutable","name":"validators","nameLocation":"3538:10:77","nodeType":"VariableDeclaration","scope":48759,"src":"3517:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48730,"nodeType":"UserDefinedTypeName","pathNode":{"id":48729,"name":"ValidatorSet","nameLocations":["3517:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"3517:12:77"},"referencedDeclaration":50190,"src":"3517:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48733,"mutability":"mutable","name":"validator","nameLocation":"3558:9:77","nodeType":"VariableDeclaration","scope":48759,"src":"3550:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48732,"name":"address","nodeType":"ElementaryTypeName","src":"3550:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3496:72:77"},"returnParameters":{"id":48735,"nodeType":"ParameterList","parameters":[],"src":"3578:0:77"},"scope":49016,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48800,"nodeType":"FunctionDefinition","src":"3906:285:77","nodes":[],"body":{"id":48799,"nodeType":"Block","src":"4013:178:77","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":48773,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48763,"src":"4023:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4028:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"4023:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4034:15:77","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":49692,"src":"4023:26:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":48778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4023:28:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48779,"nodeType":"ExpressionStatement","src":"4023:28:77"},{"assignments":[48781],"declarations":[{"constant":false,"id":48781,"mutability":"mutable","name":"addr","nameLocation":"4070:4:77","nodeType":"VariableDeclaration","scope":48799,"src":"4062:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48780,"name":"address","nodeType":"ElementaryTypeName","src":"4062:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":48787,"initialValue":{"baseExpression":{"expression":{"expression":{"id":48782,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48763,"src":"4077:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4082:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"4077:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4088:12:77","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"4077:23:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48786,"indexExpression":{"hexValue":"31","id":48785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4101:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4077:26:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4062:41:77"},{"assignments":[48789],"declarations":[{"constant":false,"id":48789,"mutability":"mutable","name":"power","nameLocation":"4121:5:77","nodeType":"VariableDeclaration","scope":48799,"src":"4113:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48788,"name":"uint256","nodeType":"ElementaryTypeName","src":"4113:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48794,"initialValue":{"arguments":[{"id":48792,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48781,"src":"4149:4:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48790,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48766,"src":"4129:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":48791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4140:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"4129:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":48793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4129:25:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4113:41:77"},{"expression":{"components":[{"id":48795,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48781,"src":"4172:4:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48796,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48789,"src":"4178:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":48797,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4171:13:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"functionReturnParameters":48772,"id":48798,"nodeType":"Return","src":"4164:20:77"}]},"documentation":{"id":48760,"nodeType":"StructuredDocumentation","src":"3782:119:77","text":"@notice Get the maximum value in the priority queue.\n NOTE that caller should ensure the queue is not empty!"},"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"3915:3:77","parameters":{"id":48767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48763,"mutability":"mutable","name":"self","nameLocation":"3933:4:77","nodeType":"VariableDeclaration","scope":48800,"src":"3919:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48762,"nodeType":"UserDefinedTypeName","pathNode":{"id":48761,"name":"MaxPQ","nameLocations":["3919:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3919:5:77"},"referencedDeclaration":48411,"src":"3919:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48766,"mutability":"mutable","name":"validators","nameLocation":"3960:10:77","nodeType":"VariableDeclaration","scope":48800,"src":"3939:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48765,"nodeType":"UserDefinedTypeName","pathNode":{"id":48764,"name":"ValidatorSet","nameLocations":["3939:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"3939:12:77"},"referencedDeclaration":50190,"src":"3939:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"3918:53:77"},"returnParameters":{"id":48772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48800,"src":"3995:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48768,"name":"address","nodeType":"ElementaryTypeName","src":"3995:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48771,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48800,"src":"4004:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48770,"name":"uint256","nodeType":"ElementaryTypeName","src":"4004:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3994:18:77"},"scope":49016,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48861,"nodeType":"FunctionDefinition","src":"4443:598:77","nodes":[],"body":{"id":48860,"nodeType":"Block","src":"4546:495:77","nodes":[],"statements":[{"assignments":[48814],"declarations":[{"constant":false,"id":48814,"mutability":"mutable","name":"parentPos","nameLocation":"4563:9:77","nodeType":"VariableDeclaration","scope":48860,"src":"4556:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48813,"name":"uint16","nodeType":"ElementaryTypeName","src":"4556:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48815,"nodeType":"VariableDeclarationStatement","src":"4556:16:77"},{"assignments":[48817],"declarations":[{"constant":false,"id":48817,"mutability":"mutable","name":"parentPower","nameLocation":"4590:11:77","nodeType":"VariableDeclaration","scope":48860,"src":"4582:19:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48816,"name":"uint256","nodeType":"ElementaryTypeName","src":"4582:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48818,"nodeType":"VariableDeclarationStatement","src":"4582:19:77"},{"body":{"id":48858,"nodeType":"Block","src":"4628:407:77","statements":[{"expression":{"id":48826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48822,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48814,"src":"4642:9:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48823,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"4654:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":48824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4661:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4654:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4642:20:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48827,"nodeType":"ExpressionStatement","src":"4642:20:77"},{"expression":{"id":48835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48828,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48817,"src":"4699:11:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48832,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48806,"src":"4733:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48833,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48814,"src":"4745:9:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48829,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48803,"src":"4713:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48830,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4718:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"4713:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4724:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"4713:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4713:42:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4699:56:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48836,"nodeType":"ExpressionStatement","src":"4699:56:77"},{"condition":{"id":48841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4868:38:77","subExpression":{"arguments":[{"id":48838,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48817,"src":"4887:11:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48839,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48810,"src":"4900:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48837,"name":"firstValueSmaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49015,"src":"4869:17:77","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":48840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4869:37:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48844,"nodeType":"IfStatement","src":"4864:82:77","trueBody":{"id":48843,"nodeType":"Block","src":"4908:38:77","statements":[{"id":48842,"nodeType":"Break","src":"4926:5:77"}]}},{"expression":{"arguments":[{"id":48850,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48814,"src":"4980:9:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48851,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"4991:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48845,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48803,"src":"4960:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4965:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"4960:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4971:8:77","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"4960:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":48852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4960:35:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48853,"nodeType":"ExpressionStatement","src":"4960:35:77"},{"expression":{"id":48856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48854,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"5009:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48855,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48814,"src":"5015:9:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5009:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48857,"nodeType":"ExpressionStatement","src":"5009:15:77"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48819,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48808,"src":"4619:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":48820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4625:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4619:7:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48859,"nodeType":"WhileStatement","src":"4612:423:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"swim","nameLocation":"4452:4:77","parameters":{"id":48811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48803,"mutability":"mutable","name":"self","nameLocation":"4471:4:77","nodeType":"VariableDeclaration","scope":48861,"src":"4457:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48802,"nodeType":"UserDefinedTypeName","pathNode":{"id":48801,"name":"MaxPQ","nameLocations":["4457:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"4457:5:77"},"referencedDeclaration":48411,"src":"4457:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48806,"mutability":"mutable","name":"validators","nameLocation":"4498:10:77","nodeType":"VariableDeclaration","scope":48861,"src":"4477:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48805,"nodeType":"UserDefinedTypeName","pathNode":{"id":48804,"name":"ValidatorSet","nameLocations":["4477:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4477:12:77"},"referencedDeclaration":50190,"src":"4477:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48808,"mutability":"mutable","name":"pos","nameLocation":"4517:3:77","nodeType":"VariableDeclaration","scope":48861,"src":"4510:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48807,"name":"uint16","nodeType":"ElementaryTypeName","src":"4510:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48810,"mutability":"mutable","name":"value","nameLocation":"4530:5:77","nodeType":"VariableDeclaration","scope":48861,"src":"4522:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48809,"name":"uint256","nodeType":"ElementaryTypeName","src":"4522:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4456:80:77"},"returnParameters":{"id":48812,"nodeType":"ParameterList","parameters":[],"src":"4546:0:77"},"scope":49016,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48950,"nodeType":"FunctionDefinition","src":"5047:1009:77","nodes":[],"body":{"id":48949,"nodeType":"Block","src":"5150:906:77","nodes":[],"statements":[{"assignments":[48875],"declarations":[{"constant":false,"id":48875,"mutability":"mutable","name":"childPos","nameLocation":"5167:8:77","nodeType":"VariableDeclaration","scope":48949,"src":"5160:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48874,"name":"uint16","nodeType":"ElementaryTypeName","src":"5160:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48879,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48876,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48869,"src":"5178:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"31","id":48877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5185:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5178:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5160:26:77"},{"assignments":[48881],"declarations":[{"constant":false,"id":48881,"mutability":"mutable","name":"childPower","nameLocation":"5226:10:77","nodeType":"VariableDeclaration","scope":48949,"src":"5218:18:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48880,"name":"uint256","nodeType":"ElementaryTypeName","src":"5218:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48882,"nodeType":"VariableDeclarationStatement","src":"5218:18:77"},{"assignments":[48884],"declarations":[{"constant":false,"id":48884,"mutability":"mutable","name":"size","nameLocation":"5254:4:77","nodeType":"VariableDeclaration","scope":48949,"src":"5247:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48883,"name":"uint16","nodeType":"ElementaryTypeName","src":"5247:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":48888,"initialValue":{"expression":{"expression":{"id":48885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48864,"src":"5261:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5266:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"5261:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5272:4:77","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"5261:15:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5247:29:77"},{"body":{"id":48947,"nodeType":"Block","src":"5312:738:77","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48892,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5330:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":48893,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48884,"src":"5341:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5330:15:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":48918,"nodeType":"Block","src":"5651:87:77","statements":[{"expression":{"id":48916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48909,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48881,"src":"5669:10:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48913,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48867,"src":"5702:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48914,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5714:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48910,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48864,"src":"5682:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5687:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"5682:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5693:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"5682:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5682:41:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5669:54:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48917,"nodeType":"ExpressionStatement","src":"5669:54:77"}]},"id":48919,"nodeType":"IfStatement","src":"5326:412:77","trueBody":{"id":48908,"nodeType":"Block","src":"5347:298:77","statements":[{"expression":{"id":48906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":48895,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5420:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48896,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48881,"src":"5430:10:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":48897,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5419:22:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48899,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48864,"src":"5487:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},{"id":48900,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48867,"src":"5525:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48901,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5563:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48902,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5599:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":48903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5610:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5599:12:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":48898,"name":"largerPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49001,"src":"5444:14:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint16_$returns$_t_uint16_$_t_uint256_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint16) view returns (uint16,uint256)"}},"id":48905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5481:4:77","5513:10:77","5557:4:77","5593:4:77"],"names":["self","validators","pos1","pos2"],"nodeType":"FunctionCall","src":"5444:186:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"src":"5419:211:77","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48907,"nodeType":"ExpressionStatement","src":"5419:211:77"}]}},{"condition":{"id":48924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5854:37:77","subExpression":{"arguments":[{"id":48921,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48871,"src":"5873:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48922,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48881,"src":"5880:10:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48920,"name":"firstValueSmaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49015,"src":"5855:17:77","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":48923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5855:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48927,"nodeType":"IfStatement","src":"5850:81:77","trueBody":{"id":48926,"nodeType":"Block","src":"5893:38:77","statements":[{"id":48925,"nodeType":"Break","src":"5911:5:77"}]}},{"expression":{"arguments":[{"id":48933,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5965:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48934,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48869,"src":"5975:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48928,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48864,"src":"5945:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5950:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"5945:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5956:8:77","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"5945:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":48935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5945:34:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48936,"nodeType":"ExpressionStatement","src":"5945:34:77"},{"expression":{"id":48939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48937,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48869,"src":"5993:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48938,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5999:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5993:14:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48940,"nodeType":"ExpressionStatement","src":"5993:14:77"},{"expression":{"id":48945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48941,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"6021:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48942,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48869,"src":"6032:3:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":48943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6038:1:77","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6032:7:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6021:18:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48946,"nodeType":"ExpressionStatement","src":"6021:18:77"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48889,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48875,"src":"5294:8:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":48890,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48884,"src":"5306:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5294:16:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48948,"nodeType":"WhileStatement","src":"5287:763:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sink","nameLocation":"5056:4:77","parameters":{"id":48872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48864,"mutability":"mutable","name":"self","nameLocation":"5075:4:77","nodeType":"VariableDeclaration","scope":48950,"src":"5061:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48863,"nodeType":"UserDefinedTypeName","pathNode":{"id":48862,"name":"MaxPQ","nameLocations":["5061:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"5061:5:77"},"referencedDeclaration":48411,"src":"5061:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48867,"mutability":"mutable","name":"validators","nameLocation":"5102:10:77","nodeType":"VariableDeclaration","scope":48950,"src":"5081:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48866,"nodeType":"UserDefinedTypeName","pathNode":{"id":48865,"name":"ValidatorSet","nameLocations":["5081:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5081:12:77"},"referencedDeclaration":50190,"src":"5081:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48869,"mutability":"mutable","name":"pos","nameLocation":"5121:3:77","nodeType":"VariableDeclaration","scope":48950,"src":"5114:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48868,"name":"uint16","nodeType":"ElementaryTypeName","src":"5114:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48871,"mutability":"mutable","name":"value","nameLocation":"5134:5:77","nodeType":"VariableDeclaration","scope":48950,"src":"5126:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48870,"name":"uint256","nodeType":"ElementaryTypeName","src":"5126:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5060:80:77"},"returnParameters":{"id":48873,"nodeType":"ParameterList","parameters":[],"src":"5150:0:77"},"scope":49016,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49001,"nodeType":"FunctionDefinition","src":"6117:442:77","nodes":[],"body":{"id":49000,"nodeType":"Block","src":"6298:261:77","nodes":[],"statements":[{"assignments":[48969],"declarations":[{"constant":false,"id":48969,"mutability":"mutable","name":"power1","nameLocation":"6316:6:77","nodeType":"VariableDeclaration","scope":49000,"src":"6308:14:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48968,"name":"uint256","nodeType":"ElementaryTypeName","src":"6308:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48976,"initialValue":{"arguments":[{"id":48973,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48957,"src":"6345:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48974,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48959,"src":"6357:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48970,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48954,"src":"6325:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6330:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"6325:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6336:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"6325:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6325:37:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6308:54:77"},{"assignments":[48978],"declarations":[{"constant":false,"id":48978,"mutability":"mutable","name":"power2","nameLocation":"6380:6:77","nodeType":"VariableDeclaration","scope":49000,"src":"6372:14:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48977,"name":"uint256","nodeType":"ElementaryTypeName","src":"6372:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48985,"initialValue":{"arguments":[{"id":48982,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48957,"src":"6409:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48983,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48961,"src":"6421:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48979,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48954,"src":"6389:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ storage pointer"}},"id":48980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6394:5:77","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":48410,"src":"6389:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":48981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6400:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"6389:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6389:37:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6372:54:77"},{"condition":{"arguments":[{"id":48987,"name":"power1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48969,"src":"6459:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48988,"name":"power2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48978,"src":"6467:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48986,"name":"firstValueSmaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49015,"src":"6441:17:77","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":48989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6441:33:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48995,"nodeType":"IfStatement","src":"6437:85:77","trueBody":{"id":48994,"nodeType":"Block","src":"6476:46:77","statements":[{"expression":{"components":[{"id":48990,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48961,"src":"6498:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48991,"name":"power2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48978,"src":"6504:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":48992,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6497:14:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":48967,"id":48993,"nodeType":"Return","src":"6490:21:77"}]}},{"expression":{"components":[{"id":48996,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48959,"src":"6539:4:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48997,"name":"power1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48969,"src":"6545:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":48998,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6538:14:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":48967,"id":48999,"nodeType":"Return","src":"6531:21:77"}]},"documentation":{"id":48951,"nodeType":"StructuredDocumentation","src":"6062:50:77","text":"@notice Get the larger index of pos1 and pos2."},"implemented":true,"kind":"function","modifiers":[],"name":"largerPosition","nameLocation":"6126:14:77","parameters":{"id":48962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48954,"mutability":"mutable","name":"self","nameLocation":"6164:4:77","nodeType":"VariableDeclaration","scope":49001,"src":"6150:18:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48953,"nodeType":"UserDefinedTypeName","pathNode":{"id":48952,"name":"MaxPQ","nameLocations":["6150:5:77"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"6150:5:77"},"referencedDeclaration":48411,"src":"6150:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"},{"constant":false,"id":48957,"mutability":"mutable","name":"validators","nameLocation":"6199:10:77","nodeType":"VariableDeclaration","scope":49001,"src":"6178:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48956,"nodeType":"UserDefinedTypeName","pathNode":{"id":48955,"name":"ValidatorSet","nameLocations":["6178:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6178:12:77"},"referencedDeclaration":50190,"src":"6178:12:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48959,"mutability":"mutable","name":"pos1","nameLocation":"6226:4:77","nodeType":"VariableDeclaration","scope":49001,"src":"6219:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48958,"name":"uint16","nodeType":"ElementaryTypeName","src":"6219:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48961,"mutability":"mutable","name":"pos2","nameLocation":"6247:4:77","nodeType":"VariableDeclaration","scope":49001,"src":"6240:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48960,"name":"uint16","nodeType":"ElementaryTypeName","src":"6240:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"6140:117:77"},"returnParameters":{"id":48967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49001,"src":"6281:6:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48963,"name":"uint16","nodeType":"ElementaryTypeName","src":"6281:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49001,"src":"6289:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48965,"name":"uint256","nodeType":"ElementaryTypeName","src":"6289:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6280:17:77"},"scope":49016,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49015,"nodeType":"FunctionDefinition","src":"6565:111:77","nodes":[],"body":{"id":49014,"nodeType":"Block","src":"6645:31:77","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49010,"name":"v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49003,"src":"6662:2:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":49011,"name":"v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49005,"src":"6667:2:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6662:7:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49009,"id":49013,"nodeType":"Return","src":"6655:14:77"}]},"implemented":true,"kind":"function","modifiers":[],"name":"firstValueSmaller","nameLocation":"6574:17:77","parameters":{"id":49006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49003,"mutability":"mutable","name":"v1","nameLocation":"6600:2:77","nodeType":"VariableDeclaration","scope":49015,"src":"6592:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49002,"name":"uint256","nodeType":"ElementaryTypeName","src":"6592:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49005,"mutability":"mutable","name":"v2","nameLocation":"6612:2:77","nodeType":"VariableDeclaration","scope":49015,"src":"6604:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49004,"name":"uint256","nodeType":"ElementaryTypeName","src":"6604:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6591:24:77"},"returnParameters":{"id":49009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49015,"src":"6639:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49007,"name":"bool","nodeType":"ElementaryTypeName","src":"6639:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6638:6:77"},"scope":49016,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibMaxPQ","contractDependencies":[],"contractKind":"library","documentation":{"id":48412,"nodeType":"StructuredDocumentation","src":"249:119:77","text":"The max index priority queue for staking. The same implementation as LibMinPQ, just order compare\n is reversed."},"fullyImplemented":true,"linearizedBaseContracts":[49016],"name":"LibMaxPQ","nameLocation":"376:8:77","scope":49017,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":77} \ No newline at end of file diff --git a/.out/LibMinPQ.sol/LibMinPQ.json b/.out/LibMinPQ.sol/LibMinPQ.json index 29686ed52..1d051e646 100644 --- a/.out/LibMinPQ.sol/LibMinPQ.json +++ b/.out/LibMinPQ.sol/LibMinPQ.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220d566d7269015eeffa98f61aa7751ccb8fa5f01c8a9124d9ea839de980b3ce64364736f6c63430008130033","sourceMap":"294:6030:71:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220d566d7269015eeffa98f61aa7751ccb8fa5f01c8a9124d9ea839de980b3ce64364736f6c63430008130033","sourceMap":"294:6030:71:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The min index priority queue for staking\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/priority/LibMinPQ.sol\":\"LibMinPQ\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/priority/LibMinPQ.sol":"LibMinPQ"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/priority/LibMinPQ.sol","id":48114,"exportedSymbols":{"LibMinPQ":[48113],"LibPQ":[48378],"LibValidatorSet":[44594],"MinPQ":[47507],"PQ":[48136],"ValidatorSet":[48673]},"nodeType":"SourceUnit","src":"46:6278:71","nodes":[{"id":47496,"nodeType":"PragmaDirective","src":"46:23:71","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47498,"nodeType":"ImportDirective","src":"71:50:71","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../LibStaking.sol","nameLocation":"-1:-1:-1","scope":48114,"sourceUnit":45729,"symbolAliases":[{"foreign":{"id":47497,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44594,"src":"79:15:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47500,"nodeType":"ImportDirective","src":"122:54:71","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":48114,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":47499,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48673,"src":"130:12:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47503,"nodeType":"ImportDirective","src":"177:38:71","nodes":[],"absolutePath":"src/lib/priority/LibPQ.sol","file":"./LibPQ.sol","nameLocation":"-1:-1:-1","scope":48114,"sourceUnit":48379,"symbolAliases":[{"foreign":{"id":47501,"name":"PQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48136,"src":"185:2:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47502,"name":"LibPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48378,"src":"189:5:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47507,"nodeType":"StructDefinition","src":"217:30:71","nodes":[],"canonicalName":"MinPQ","members":[{"constant":false,"id":47506,"mutability":"mutable","name":"inner","nameLocation":"239:5:71","nodeType":"VariableDeclaration","scope":47507,"src":"236:8:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"},"typeName":{"id":47505,"nodeType":"UserDefinedTypeName","pathNode":{"id":47504,"name":"PQ","nameLocations":["236:2:71"],"nodeType":"IdentifierPath","referencedDeclaration":48136,"src":"236:2:71"},"referencedDeclaration":48136,"src":"236:2:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"name":"MinPQ","nameLocation":"224:5:71","scope":48114,"visibility":"public"},{"id":48113,"nodeType":"ContractDefinition","src":"294:6030:71","nodes":[{"id":47512,"nodeType":"UsingForDirective","src":"317:19:71","nodes":[],"global":false,"libraryName":{"id":47509,"name":"LibPQ","nameLocations":["323:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":48378,"src":"323:5:71"},"typeName":{"id":47511,"nodeType":"UserDefinedTypeName","pathNode":{"id":47510,"name":"PQ","nameLocations":["333:2:71"],"nodeType":"IdentifierPath","referencedDeclaration":48136,"src":"333:2:71"},"referencedDeclaration":48136,"src":"333:2:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"}}},{"id":47516,"nodeType":"UsingForDirective","src":"341:39:71","nodes":[],"global":false,"libraryName":{"id":47513,"name":"LibValidatorSet","nameLocations":["347:15:71"],"nodeType":"IdentifierPath","referencedDeclaration":44594,"src":"347:15:71"},"typeName":{"id":47515,"nodeType":"UserDefinedTypeName","pathNode":{"id":47514,"name":"ValidatorSet","nameLocations":["367:12:71"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"367:12:71"},"referencedDeclaration":48673,"src":"367:12:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":47529,"nodeType":"FunctionDefinition","src":"386:107:71","nodes":[],"body":{"id":47528,"nodeType":"Block","src":"454:39:71","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":47524,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47519,"src":"471:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47525,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"476:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"471:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"482:4:71","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"471:15:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":47523,"id":47527,"nodeType":"Return","src":"464:22:71"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSize","nameLocation":"395:7:71","parameters":{"id":47520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47519,"mutability":"mutable","name":"self","nameLocation":"417:4:71","nodeType":"VariableDeclaration","scope":47529,"src":"403:18:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":47518,"nodeType":"UserDefinedTypeName","pathNode":{"id":47517,"name":"MinPQ","nameLocations":["403:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"403:5:71"},"referencedDeclaration":47507,"src":"403:5:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"}],"src":"402:20:71"},"returnParameters":{"id":47523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47522,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47529,"src":"446:6:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47521,"name":"uint16","nodeType":"ElementaryTypeName","src":"446:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"445:8:71"},"scope":48113,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":47546,"nodeType":"FunctionDefinition","src":"499:132:71","nodes":[],"body":{"id":47545,"nodeType":"Block","src":"581:50:71","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":47539,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47532,"src":"598:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"603:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"598:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"609:12:71","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":48135,"src":"598:23:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":47543,"indexExpression":{"id":47542,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47534,"src":"622:1:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"598:26:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47538,"id":47544,"nodeType":"Return","src":"591:33:71"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"508:10:71","parameters":{"id":47535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47532,"mutability":"mutable","name":"self","nameLocation":"533:4:71","nodeType":"VariableDeclaration","scope":47546,"src":"519:18:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":47531,"nodeType":"UserDefinedTypeName","pathNode":{"id":47530,"name":"MinPQ","nameLocations":["519:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"519:5:71"},"referencedDeclaration":47507,"src":"519:5:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":47534,"mutability":"mutable","name":"i","nameLocation":"546:1:71","nodeType":"VariableDeclaration","scope":47546,"src":"539:8:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47533,"name":"uint16","nodeType":"ElementaryTypeName","src":"539:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"518:30:71"},"returnParameters":{"id":47538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47546,"src":"572:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47536,"name":"address","nodeType":"ElementaryTypeName","src":"572:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"571:9:71"},"scope":48113,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":47563,"nodeType":"FunctionDefinition","src":"637:140:71","nodes":[],"body":{"id":47562,"nodeType":"Block","src":"723:54:71","nodes":[],"statements":[{"expression":{"arguments":[{"id":47559,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47551,"src":"760:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":47556,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47549,"src":"740:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"745:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"740:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"751:8:71","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48200,"src":"740:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (bool)"}},"id":47560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"740:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":47555,"id":47561,"nodeType":"Return","src":"733:37:71"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"646:8:71","parameters":{"id":47552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47549,"mutability":"mutable","name":"self","nameLocation":"669:4:71","nodeType":"VariableDeclaration","scope":47563,"src":"655:18:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":47548,"nodeType":"UserDefinedTypeName","pathNode":{"id":47547,"name":"MinPQ","nameLocations":["655:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"655:5:71"},"referencedDeclaration":47507,"src":"655:5:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":47551,"mutability":"mutable","name":"validator","nameLocation":"683:9:71","nodeType":"VariableDeclaration","scope":47563,"src":"675:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47550,"name":"address","nodeType":"ElementaryTypeName","src":"675:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"654:39:71"},"returnParameters":{"id":47555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47554,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47563,"src":"717:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47553,"name":"bool","nodeType":"ElementaryTypeName","src":"717:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"716:6:71"},"scope":48113,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":47626,"nodeType":"FunctionDefinition","src":"924:417:71","nodes":[],"body":{"id":47625,"nodeType":"Block","src":"1021:320:71","nodes":[],"statements":[{"assignments":[47576],"declarations":[{"constant":false,"id":47576,"mutability":"mutable","name":"size","nameLocation":"1038:4:71","nodeType":"VariableDeclaration","scope":47625,"src":"1031:11:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47575,"name":"uint16","nodeType":"ElementaryTypeName","src":"1031:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47582,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47577,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47567,"src":"1045:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1050:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"1045:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1056:4:71","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"1045:15:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":47580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1063:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1045:19:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1031:33:71"},{"expression":{"id":47591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":47583,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47567,"src":"1075:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1080:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"1075:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1086:12:71","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":48130,"src":"1075:23:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":47589,"indexExpression":{"id":47586,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47572,"src":"1099:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1075:34:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47590,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47576,"src":"1112:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1075:41:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":47592,"nodeType":"ExpressionStatement","src":"1075:41:71"},{"expression":{"id":47601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":47593,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47567,"src":"1126:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1131:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"1126:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47598,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1137:12:71","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":48135,"src":"1126:23:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":47599,"indexExpression":{"id":47596,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47576,"src":"1150:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1126:29:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47600,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47572,"src":"1158:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1126:41:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47602,"nodeType":"ExpressionStatement","src":"1126:41:71"},{"expression":{"id":47609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":47603,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47567,"src":"1178:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1183:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"1178:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1189:4:71","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"1178:15:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47608,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47576,"src":"1196:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1178:22:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":47610,"nodeType":"ExpressionStatement","src":"1178:22:71"},{"assignments":[47612],"declarations":[{"constant":false,"id":47612,"mutability":"mutable","name":"power","nameLocation":"1219:5:71","nodeType":"VariableDeclaration","scope":47625,"src":"1211:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47611,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47617,"initialValue":{"arguments":[{"id":47615,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47572,"src":"1247:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47613,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47570,"src":"1227:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":47614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1238:8:71","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":43686,"src":"1227:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":47616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1227:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1211:46:71"},{"expression":{"arguments":[{"id":47619,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47567,"src":"1279:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":47620,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47570,"src":"1297:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47621,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47576,"src":"1314:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47622,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47612,"src":"1327:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47618,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47957,"src":"1267:4:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":47623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1273:4:71","1285:10:71","1309:3:71","1320:5:71"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1267:67:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47624,"nodeType":"ExpressionStatement","src":"1267:67:71"}]},"documentation":{"id":47564,"nodeType":"StructuredDocumentation","src":"783:136:71","text":"@notice Insert the validator address into this PQ.\n NOTE that caller should ensure the validator is not already in the queue."},"implemented":true,"kind":"function","modifiers":[],"name":"insert","nameLocation":"933:6:71","parameters":{"id":47573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47567,"mutability":"mutable","name":"self","nameLocation":"954:4:71","nodeType":"VariableDeclaration","scope":47626,"src":"940:18:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":47566,"nodeType":"UserDefinedTypeName","pathNode":{"id":47565,"name":"MinPQ","nameLocations":["940:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"940:5:71"},"referencedDeclaration":47507,"src":"940:5:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":47570,"mutability":"mutable","name":"validators","nameLocation":"981:10:71","nodeType":"VariableDeclaration","scope":47626,"src":"960:31:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47569,"nodeType":"UserDefinedTypeName","pathNode":{"id":47568,"name":"ValidatorSet","nameLocations":["960:12:71"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"960:12:71"},"referencedDeclaration":48673,"src":"960:12:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47572,"mutability":"mutable","name":"validator","nameLocation":"1001:9:71","nodeType":"VariableDeclaration","scope":47626,"src":"993:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47571,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"939:72:71"},"returnParameters":{"id":47574,"nodeType":"ParameterList","parameters":[],"src":"1021:0:71"},"scope":48113,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47693,"nodeType":"FunctionDefinition","src":"1408:401:71","nodes":[],"body":{"id":47692,"nodeType":"Block","src":"1483:326:71","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":47636,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47630,"src":"1493:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1498:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"1493:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1504:15:71","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":48170,"src":"1493:26:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":47641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1493:28:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47642,"nodeType":"ExpressionStatement","src":"1493:28:71"},{"assignments":[47644],"declarations":[{"constant":false,"id":47644,"mutability":"mutable","name":"size","nameLocation":"1539:4:71","nodeType":"VariableDeclaration","scope":47692,"src":"1532:11:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47643,"name":"uint16","nodeType":"ElementaryTypeName","src":"1532:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47648,"initialValue":{"expression":{"expression":{"id":47645,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47630,"src":"1546:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1551:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"1546:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1557:4:71","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"1546:15:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1532:29:71"},{"expression":{"arguments":[{"hexValue":"31","id":47654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1592:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":47655,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47644,"src":"1595:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47649,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47630,"src":"1572:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1577:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"1572:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1583:8:71","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":48377,"src":"1572:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$48136_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":47656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1572:28:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47657,"nodeType":"ExpressionStatement","src":"1572:28:71"},{"expression":{"id":47666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":47658,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47630,"src":"1611:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1616:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"1611:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1622:4:71","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"1611:15:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47663,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47644,"src":"1629:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1636:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1629:8:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1611:26:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":47667,"nodeType":"ExpressionStatement","src":"1611:26:71"},{"expression":{"arguments":[{"id":47673,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47644,"src":"1662:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47668,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47630,"src":"1647:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1652:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"1647:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1658:3:71","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":48254,"src":"1647:14:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$48136_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":47674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:20:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47675,"nodeType":"ExpressionStatement","src":"1647:20:71"},{"assignments":[47677],"declarations":[{"constant":false,"id":47677,"mutability":"mutable","name":"power","nameLocation":"1686:5:71","nodeType":"VariableDeclaration","scope":47692,"src":"1678:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47676,"name":"uint256","nodeType":"ElementaryTypeName","src":"1678:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47684,"initialValue":{"arguments":[{"id":47681,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47633,"src":"1714:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":47682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1726:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"expression":{"id":47678,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47630,"src":"1694:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1699:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"1694:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1705:8:71","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":48280,"src":"1694:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":47683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1694:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1678:50:71"},{"expression":{"arguments":[{"id":47686,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47630,"src":"1750:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":47687,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47633,"src":"1768:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":47688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1785:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":47689,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47677,"src":"1795:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47685,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48046,"src":"1738:4:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":47690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1744:4:71","1756:10:71","1780:3:71","1788:5:71"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1738:64:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47691,"nodeType":"ExpressionStatement","src":"1738:64:71"}]},"documentation":{"id":47627,"nodeType":"StructuredDocumentation","src":"1347:56:71","text":"@notice Pop the minimal value in the priority queue."},"implemented":true,"kind":"function","modifiers":[],"name":"pop","nameLocation":"1417:3:71","parameters":{"id":47634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47630,"mutability":"mutable","name":"self","nameLocation":"1435:4:71","nodeType":"VariableDeclaration","scope":47693,"src":"1421:18:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":47629,"nodeType":"UserDefinedTypeName","pathNode":{"id":47628,"name":"MinPQ","nameLocations":["1421:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"1421:5:71"},"referencedDeclaration":47507,"src":"1421:5:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":47633,"mutability":"mutable","name":"validators","nameLocation":"1462:10:71","nodeType":"VariableDeclaration","scope":47693,"src":"1441:31:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47632,"nodeType":"UserDefinedTypeName","pathNode":{"id":47631,"name":"ValidatorSet","nameLocations":["1441:12:71"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"1441:12:71"},"referencedDeclaration":48673,"src":"1441:12:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"1420:53:71"},"returnParameters":{"id":47635,"nodeType":"ParameterList","parameters":[],"src":"1483:0:71"},"scope":48113,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47785,"nodeType":"FunctionDefinition","src":"1881:779:71","nodes":[],"body":{"id":47784,"nodeType":"Block","src":"1987:673:71","nodes":[],"statements":[{"assignments":[47706],"declarations":[{"constant":false,"id":47706,"mutability":"mutable","name":"pos","nameLocation":"2004:3:71","nodeType":"VariableDeclaration","scope":47784,"src":"1997:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47705,"name":"uint16","nodeType":"ElementaryTypeName","src":"1997:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47712,"initialValue":{"arguments":[{"id":47710,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47702,"src":"2036:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":47707,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47697,"src":"2010:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2015:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"2010:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2021:14:71","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":48226,"src":"2010:25:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":47711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2010:36:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1997:49:71"},{"assignments":[47714],"declarations":[{"constant":false,"id":47714,"mutability":"mutable","name":"size","nameLocation":"2063:4:71","nodeType":"VariableDeclaration","scope":47784,"src":"2056:11:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47713,"name":"uint16","nodeType":"ElementaryTypeName","src":"2056:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47718,"initialValue":{"expression":{"expression":{"id":47715,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47697,"src":"2070:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2075:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"2070:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2081:4:71","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"2070:15:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2056:29:71"},{"expression":{"arguments":[{"id":47724,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"2116:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47725,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47714,"src":"2121:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47719,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47697,"src":"2096:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2101:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"2096:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2107:8:71","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":48377,"src":"2096:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$48136_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":47726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2096:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47727,"nodeType":"ExpressionStatement","src":"2096:30:71"},{"expression":{"id":47736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":47728,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47697,"src":"2164:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2169:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"2164:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2175:4:71","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"2164:15:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47733,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47714,"src":"2182:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2182:8:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2164:26:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":47737,"nodeType":"ExpressionStatement","src":"2164:26:71"},{"expression":{"arguments":[{"id":47743,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47714,"src":"2215:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47738,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47697,"src":"2200:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2205:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"2200:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2211:3:71","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":48254,"src":"2200:14:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$48136_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":47744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2200:20:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47745,"nodeType":"ExpressionStatement","src":"2200:20:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47746,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47714,"src":"2235:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":47747,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"2243:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2235:11:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47751,"nodeType":"IfStatement","src":"2231:48:71","trueBody":{"id":47750,"nodeType":"Block","src":"2248:31:71","statements":[{"functionReturnParameters":47704,"id":47749,"nodeType":"Return","src":"2262:7:71"}]}},{"assignments":[47753],"declarations":[{"constant":false,"id":47753,"mutability":"mutable","name":"val","nameLocation":"2355:3:71","nodeType":"VariableDeclaration","scope":47784,"src":"2347:11:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47752,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47760,"initialValue":{"arguments":[{"id":47757,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47700,"src":"2381:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47758,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"2393:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47754,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47697,"src":"2361:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2366:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"2361:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2372:8:71","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":48280,"src":"2361:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":47759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2361:36:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2347:50:71"},{"expression":{"arguments":[{"id":47762,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47697,"src":"2419:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":47763,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47700,"src":"2437:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47764,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"2454:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47765,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47753,"src":"2466:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47761,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47957,"src":"2407:4:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":47766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2413:4:71","2425:10:71","2449:3:71","2459:5:71"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2407:64:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47767,"nodeType":"ExpressionStatement","src":"2407:64:71"},{"expression":{"id":47775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47768,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47753,"src":"2537:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47772,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47700,"src":"2563:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47773,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"2575:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47769,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47697,"src":"2543:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2548:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"2543:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2554:8:71","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":48280,"src":"2543:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":47774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2543:36:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2537:42:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47776,"nodeType":"ExpressionStatement","src":"2537:42:71"},{"expression":{"arguments":[{"id":47778,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47697,"src":"2601:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":47779,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47700,"src":"2619:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47780,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"2636:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47781,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47753,"src":"2648:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47777,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48046,"src":"2589:4:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":47782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2595:4:71","2607:10:71","2631:3:71","2641:5:71"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2589:64:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47783,"nodeType":"ExpressionStatement","src":"2589:64:71"}]},"documentation":{"id":47694,"nodeType":"StructuredDocumentation","src":"1815:61:71","text":"@notice Reheapify the heap when the validator is deleted."},"implemented":true,"kind":"function","modifiers":[],"name":"deleteReheapify","nameLocation":"1890:15:71","parameters":{"id":47703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47697,"mutability":"mutable","name":"self","nameLocation":"1920:4:71","nodeType":"VariableDeclaration","scope":47785,"src":"1906:18:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":47696,"nodeType":"UserDefinedTypeName","pathNode":{"id":47695,"name":"MinPQ","nameLocations":["1906:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"1906:5:71"},"referencedDeclaration":47507,"src":"1906:5:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":47700,"mutability":"mutable","name":"validators","nameLocation":"1947:10:71","nodeType":"VariableDeclaration","scope":47785,"src":"1926:31:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47699,"nodeType":"UserDefinedTypeName","pathNode":{"id":47698,"name":"ValidatorSet","nameLocations":["1926:12:71"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"1926:12:71"},"referencedDeclaration":48673,"src":"1926:12:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47702,"mutability":"mutable","name":"validator","nameLocation":"1967:9:71","nodeType":"VariableDeclaration","scope":47785,"src":"1959:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47701,"name":"address","nodeType":"ElementaryTypeName","src":"1959:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1905:72:71"},"returnParameters":{"id":47704,"nodeType":"ParameterList","parameters":[],"src":"1987:0:71"},"scope":48113,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47820,"nodeType":"FunctionDefinition","src":"2745:302:71","nodes":[],"body":{"id":47819,"nodeType":"Block","src":"2853:194:71","nodes":[],"statements":[{"assignments":[47798],"declarations":[{"constant":false,"id":47798,"mutability":"mutable","name":"pos","nameLocation":"2870:3:71","nodeType":"VariableDeclaration","scope":47819,"src":"2863:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47797,"name":"uint16","nodeType":"ElementaryTypeName","src":"2863:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47804,"initialValue":{"arguments":[{"id":47802,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47794,"src":"2902:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":47799,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47789,"src":"2876:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2881:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"2876:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2887:14:71","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":48226,"src":"2876:25:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":47803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2876:36:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2863:49:71"},{"assignments":[47806],"declarations":[{"constant":false,"id":47806,"mutability":"mutable","name":"val","nameLocation":"2930:3:71","nodeType":"VariableDeclaration","scope":47819,"src":"2922:11:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47805,"name":"uint256","nodeType":"ElementaryTypeName","src":"2922:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47811,"initialValue":{"arguments":[{"id":47809,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47794,"src":"2956:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47807,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47792,"src":"2936:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":47808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2947:8:71","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":43686,"src":"2936:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":47810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2936:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2922:44:71"},{"expression":{"arguments":[{"id":47813,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47789,"src":"2988:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":47814,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47792,"src":"3006:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47815,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47798,"src":"3023:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47816,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47806,"src":"3035:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47812,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48046,"src":"2976:4:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":47817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2982:4:71","2994:10:71","3018:3:71","3028:5:71"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2976:64:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47818,"nodeType":"ExpressionStatement","src":"2976:64:71"}]},"documentation":{"id":47786,"nodeType":"StructuredDocumentation","src":"2666:74:71","text":"@notice Reheapify the heap when the collateral of a key has increased."},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReheapify","nameLocation":"2754:17:71","parameters":{"id":47795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47789,"mutability":"mutable","name":"self","nameLocation":"2786:4:71","nodeType":"VariableDeclaration","scope":47820,"src":"2772:18:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":47788,"nodeType":"UserDefinedTypeName","pathNode":{"id":47787,"name":"MinPQ","nameLocations":["2772:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"2772:5:71"},"referencedDeclaration":47507,"src":"2772:5:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":47792,"mutability":"mutable","name":"validators","nameLocation":"2813:10:71","nodeType":"VariableDeclaration","scope":47820,"src":"2792:31:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47791,"nodeType":"UserDefinedTypeName","pathNode":{"id":47790,"name":"ValidatorSet","nameLocations":["2792:12:71"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"2792:12:71"},"referencedDeclaration":48673,"src":"2792:12:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47794,"mutability":"mutable","name":"validator","nameLocation":"2833:9:71","nodeType":"VariableDeclaration","scope":47820,"src":"2825:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47793,"name":"address","nodeType":"ElementaryTypeName","src":"2825:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2771:72:71"},"returnParameters":{"id":47796,"nodeType":"ParameterList","parameters":[],"src":"2853:0:71"},"scope":48113,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47855,"nodeType":"FunctionDefinition","src":"3132:302:71","nodes":[],"body":{"id":47854,"nodeType":"Block","src":"3240:194:71","nodes":[],"statements":[{"assignments":[47833],"declarations":[{"constant":false,"id":47833,"mutability":"mutable","name":"pos","nameLocation":"3257:3:71","nodeType":"VariableDeclaration","scope":47854,"src":"3250:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47832,"name":"uint16","nodeType":"ElementaryTypeName","src":"3250:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47839,"initialValue":{"arguments":[{"id":47837,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47829,"src":"3289:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":47834,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47824,"src":"3263:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3268:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"3263:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47836,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3274:14:71","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":48226,"src":"3263:25:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":47838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3263:36:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3250:49:71"},{"assignments":[47841],"declarations":[{"constant":false,"id":47841,"mutability":"mutable","name":"val","nameLocation":"3317:3:71","nodeType":"VariableDeclaration","scope":47854,"src":"3309:11:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47840,"name":"uint256","nodeType":"ElementaryTypeName","src":"3309:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47846,"initialValue":{"arguments":[{"id":47844,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47829,"src":"3343:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47842,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47827,"src":"3323:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":47843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3334:8:71","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":43686,"src":"3323:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":47845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3323:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3309:44:71"},{"expression":{"arguments":[{"id":47848,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47824,"src":"3375:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":47849,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47827,"src":"3393:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47850,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47833,"src":"3410:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47851,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47841,"src":"3422:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47847,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47957,"src":"3363:4:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":47852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3369:4:71","3381:10:71","3405:3:71","3415:5:71"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3363:64:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47853,"nodeType":"ExpressionStatement","src":"3363:64:71"}]},"documentation":{"id":47821,"nodeType":"StructuredDocumentation","src":"3053:74:71","text":"@notice Reheapify the heap when the collateral of a key has decreased."},"implemented":true,"kind":"function","modifiers":[],"name":"decreaseReheapify","nameLocation":"3141:17:71","parameters":{"id":47830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47824,"mutability":"mutable","name":"self","nameLocation":"3173:4:71","nodeType":"VariableDeclaration","scope":47855,"src":"3159:18:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":47823,"nodeType":"UserDefinedTypeName","pathNode":{"id":47822,"name":"MinPQ","nameLocations":["3159:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"3159:5:71"},"referencedDeclaration":47507,"src":"3159:5:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":47827,"mutability":"mutable","name":"validators","nameLocation":"3200:10:71","nodeType":"VariableDeclaration","scope":47855,"src":"3179:31:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47826,"nodeType":"UserDefinedTypeName","pathNode":{"id":47825,"name":"ValidatorSet","nameLocations":["3179:12:71"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"3179:12:71"},"referencedDeclaration":48673,"src":"3179:12:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47829,"mutability":"mutable","name":"validator","nameLocation":"3220:9:71","nodeType":"VariableDeclaration","scope":47855,"src":"3212:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47828,"name":"address","nodeType":"ElementaryTypeName","src":"3212:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3158:72:71"},"returnParameters":{"id":47831,"nodeType":"ParameterList","parameters":[],"src":"3240:0:71"},"scope":48113,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47896,"nodeType":"FunctionDefinition","src":"3564:285:71","nodes":[],"body":{"id":47895,"nodeType":"Block","src":"3671:178:71","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":47869,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47859,"src":"3681:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3686:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"3681:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3692:15:71","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":48170,"src":"3681:26:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":47874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3681:28:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47875,"nodeType":"ExpressionStatement","src":"3681:28:71"},{"assignments":[47877],"declarations":[{"constant":false,"id":47877,"mutability":"mutable","name":"addr","nameLocation":"3728:4:71","nodeType":"VariableDeclaration","scope":47895,"src":"3720:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47876,"name":"address","nodeType":"ElementaryTypeName","src":"3720:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":47883,"initialValue":{"baseExpression":{"expression":{"expression":{"id":47878,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47859,"src":"3735:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3740:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"3735:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3746:12:71","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":48135,"src":"3735:23:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":47882,"indexExpression":{"hexValue":"31","id":47881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3759:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3735:26:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3720:41:71"},{"assignments":[47885],"declarations":[{"constant":false,"id":47885,"mutability":"mutable","name":"power","nameLocation":"3779:5:71","nodeType":"VariableDeclaration","scope":47895,"src":"3771:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47884,"name":"uint256","nodeType":"ElementaryTypeName","src":"3771:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47890,"initialValue":{"arguments":[{"id":47888,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47877,"src":"3807:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47886,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47862,"src":"3787:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":47887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3798:8:71","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":43686,"src":"3787:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":47889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3787:25:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3771:41:71"},{"expression":{"components":[{"id":47891,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47877,"src":"3830:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47892,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47885,"src":"3836:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":47893,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3829:13:71","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"functionReturnParameters":47868,"id":47894,"nodeType":"Return","src":"3822:20:71"}]},"documentation":{"id":47856,"nodeType":"StructuredDocumentation","src":"3440:119:71","text":"@notice Get the minimal value in the priority queue.\n NOTE that caller should ensure the queue is not empty!"},"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"3573:3:71","parameters":{"id":47863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47859,"mutability":"mutable","name":"self","nameLocation":"3591:4:71","nodeType":"VariableDeclaration","scope":47896,"src":"3577:18:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":47858,"nodeType":"UserDefinedTypeName","pathNode":{"id":47857,"name":"MinPQ","nameLocations":["3577:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"3577:5:71"},"referencedDeclaration":47507,"src":"3577:5:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":47862,"mutability":"mutable","name":"validators","nameLocation":"3618:10:71","nodeType":"VariableDeclaration","scope":47896,"src":"3597:31:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47861,"nodeType":"UserDefinedTypeName","pathNode":{"id":47860,"name":"ValidatorSet","nameLocations":["3597:12:71"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"3597:12:71"},"referencedDeclaration":48673,"src":"3597:12:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"3576:53:71"},"returnParameters":{"id":47868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47896,"src":"3653:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47864,"name":"address","nodeType":"ElementaryTypeName","src":"3653:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47867,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47896,"src":"3662:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47866,"name":"uint256","nodeType":"ElementaryTypeName","src":"3662:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3652:18:71"},"scope":48113,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":47957,"nodeType":"FunctionDefinition","src":"4101:608:71","nodes":[],"body":{"id":47956,"nodeType":"Block","src":"4204:505:71","nodes":[],"statements":[{"assignments":[47910],"declarations":[{"constant":false,"id":47910,"mutability":"mutable","name":"parentPos","nameLocation":"4221:9:71","nodeType":"VariableDeclaration","scope":47956,"src":"4214:16:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47909,"name":"uint16","nodeType":"ElementaryTypeName","src":"4214:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47911,"nodeType":"VariableDeclarationStatement","src":"4214:16:71"},{"assignments":[47913],"declarations":[{"constant":false,"id":47913,"mutability":"mutable","name":"parentPower","nameLocation":"4248:11:71","nodeType":"VariableDeclaration","scope":47956,"src":"4240:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47912,"name":"uint256","nodeType":"ElementaryTypeName","src":"4240:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47914,"nodeType":"VariableDeclarationStatement","src":"4240:19:71"},{"body":{"id":47954,"nodeType":"Block","src":"4286:417:71","statements":[{"expression":{"id":47922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47918,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47910,"src":"4336:9:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47919,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47904,"src":"4348:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":47920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4355:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4348:8:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4336:20:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":47923,"nodeType":"ExpressionStatement","src":"4336:20:71"},{"expression":{"id":47931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47924,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47913,"src":"4370:11:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47928,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47902,"src":"4404:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47929,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47910,"src":"4416:9:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47925,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47899,"src":"4384:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4389:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"4384:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4395:8:71","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":48280,"src":"4384:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":47930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4384:42:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4370:56:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47932,"nodeType":"ExpressionStatement","src":"4370:56:71"},{"condition":{"id":47937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4537:37:71","subExpression":{"arguments":[{"id":47934,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47913,"src":"4555:11:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":47935,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47906,"src":"4568:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47933,"name":"firstValueLarger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48112,"src":"4538:16:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":47936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4538:36:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47940,"nodeType":"IfStatement","src":"4533:81:71","trueBody":{"id":47939,"nodeType":"Block","src":"4576:38:71","statements":[{"id":47938,"nodeType":"Break","src":"4594:5:71"}]}},{"expression":{"arguments":[{"id":47946,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47910,"src":"4648:9:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47947,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47904,"src":"4659:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":47941,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47899,"src":"4628:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4633:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"4628:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4639:8:71","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":48377,"src":"4628:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$48136_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":47948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4628:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47949,"nodeType":"ExpressionStatement","src":"4628:35:71"},{"expression":{"id":47952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47950,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47904,"src":"4677:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47951,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47910,"src":"4683:9:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4677:15:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":47953,"nodeType":"ExpressionStatement","src":"4677:15:71"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47915,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47904,"src":"4277:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":47916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4283:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4277:7:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47955,"nodeType":"WhileStatement","src":"4270:433:71"}]},"implemented":true,"kind":"function","modifiers":[],"name":"swim","nameLocation":"4110:4:71","parameters":{"id":47907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47899,"mutability":"mutable","name":"self","nameLocation":"4129:4:71","nodeType":"VariableDeclaration","scope":47957,"src":"4115:18:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":47898,"nodeType":"UserDefinedTypeName","pathNode":{"id":47897,"name":"MinPQ","nameLocations":["4115:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"4115:5:71"},"referencedDeclaration":47507,"src":"4115:5:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":47902,"mutability":"mutable","name":"validators","nameLocation":"4156:10:71","nodeType":"VariableDeclaration","scope":47957,"src":"4135:31:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47901,"nodeType":"UserDefinedTypeName","pathNode":{"id":47900,"name":"ValidatorSet","nameLocations":["4135:12:71"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"4135:12:71"},"referencedDeclaration":48673,"src":"4135:12:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47904,"mutability":"mutable","name":"pos","nameLocation":"4175:3:71","nodeType":"VariableDeclaration","scope":47957,"src":"4168:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47903,"name":"uint16","nodeType":"ElementaryTypeName","src":"4168:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":47906,"mutability":"mutable","name":"value","nameLocation":"4188:5:71","nodeType":"VariableDeclaration","scope":47957,"src":"4180:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47905,"name":"uint256","nodeType":"ElementaryTypeName","src":"4180:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4114:80:71"},"returnParameters":{"id":47908,"nodeType":"ParameterList","parameters":[],"src":"4204:0:71"},"scope":48113,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48046,"nodeType":"FunctionDefinition","src":"4715:986:71","nodes":[],"body":{"id":48045,"nodeType":"Block","src":"4818:883:71","nodes":[],"statements":[{"assignments":[47971],"declarations":[{"constant":false,"id":47971,"mutability":"mutable","name":"childPos","nameLocation":"4835:8:71","nodeType":"VariableDeclaration","scope":48045,"src":"4828:15:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47970,"name":"uint16","nodeType":"ElementaryTypeName","src":"4828:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47975,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47972,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47965,"src":"4846:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":47973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4852:1:71","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4846:7:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"4828:25:71"},{"assignments":[47977],"declarations":[{"constant":false,"id":47977,"mutability":"mutable","name":"childPower","nameLocation":"4871:10:71","nodeType":"VariableDeclaration","scope":48045,"src":"4863:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47976,"name":"uint256","nodeType":"ElementaryTypeName","src":"4863:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47978,"nodeType":"VariableDeclarationStatement","src":"4863:18:71"},{"assignments":[47980],"declarations":[{"constant":false,"id":47980,"mutability":"mutable","name":"size","nameLocation":"4899:4:71","nodeType":"VariableDeclaration","scope":48045,"src":"4892:11:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47979,"name":"uint16","nodeType":"ElementaryTypeName","src":"4892:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":47984,"initialValue":{"expression":{"expression":{"id":47981,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47960,"src":"4906:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":47982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4911:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"4906:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":47983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4917:4:71","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"4906:15:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"4892:29:71"},{"body":{"id":48043,"nodeType":"Block","src":"4957:738:71","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47988,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47971,"src":"4975:8:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47989,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47980,"src":"4986:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4975:15:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":48014,"nodeType":"Block","src":"5297:87:71","statements":[{"expression":{"id":48012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48005,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47977,"src":"5315:10:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48009,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47963,"src":"5348:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48010,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47971,"src":"5360:8:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48006,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47960,"src":"5328:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":48007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5333:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"5328:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":48008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:8:71","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":48280,"src":"5328:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:41:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5315:54:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48013,"nodeType":"ExpressionStatement","src":"5315:54:71"}]},"id":48015,"nodeType":"IfStatement","src":"4971:413:71","trueBody":{"id":48004,"nodeType":"Block","src":"4992:299:71","statements":[{"expression":{"id":48002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":47991,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47971,"src":"5065:8:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":47992,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47977,"src":"5075:10:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":47993,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5064:22:71","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47995,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47960,"src":"5133:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":47996,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47963,"src":"5171:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":47997,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47971,"src":"5209:8:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47998,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47971,"src":"5245:8:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":47999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5256:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5245:12:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":47994,"name":"smallerPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48098,"src":"5089:15:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$_t_uint16_$returns$_t_uint16_$_t_uint256_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint16) view returns (uint16,uint256)"}},"id":48001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5127:4:71","5159:10:71","5203:4:71","5239:4:71"],"names":["self","validators","pos1","pos2"],"nodeType":"FunctionCall","src":"5089:187:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"src":"5064:212:71","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48003,"nodeType":"ExpressionStatement","src":"5064:212:71"}]}},{"condition":{"id":48020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5500:36:71","subExpression":{"arguments":[{"id":48017,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47967,"src":"5518:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48018,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47977,"src":"5525:10:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48016,"name":"firstValueLarger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48112,"src":"5501:16:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":48019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5501:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48023,"nodeType":"IfStatement","src":"5496:80:71","trueBody":{"id":48022,"nodeType":"Block","src":"5538:38:71","statements":[{"id":48021,"nodeType":"Break","src":"5556:5:71"}]}},{"expression":{"arguments":[{"id":48029,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47971,"src":"5610:8:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48030,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47965,"src":"5620:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48024,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47960,"src":"5590:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":48027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5595:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"5590:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":48028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5601:8:71","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":48377,"src":"5590:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$48136_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":48031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5590:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48032,"nodeType":"ExpressionStatement","src":"5590:34:71"},{"expression":{"id":48035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48033,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47965,"src":"5638:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48034,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47971,"src":"5644:8:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5638:14:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48036,"nodeType":"ExpressionStatement","src":"5638:14:71"},{"expression":{"id":48041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48037,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47971,"src":"5666:8:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48038,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47965,"src":"5677:3:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":48039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5683:1:71","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5677:7:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5666:18:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48042,"nodeType":"ExpressionStatement","src":"5666:18:71"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":47987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47985,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47971,"src":"4939:8:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":47986,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47980,"src":"4951:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4939:16:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48044,"nodeType":"WhileStatement","src":"4932:763:71"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sink","nameLocation":"4724:4:71","parameters":{"id":47968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47960,"mutability":"mutable","name":"self","nameLocation":"4743:4:71","nodeType":"VariableDeclaration","scope":48046,"src":"4729:18:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":47959,"nodeType":"UserDefinedTypeName","pathNode":{"id":47958,"name":"MinPQ","nameLocations":["4729:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"4729:5:71"},"referencedDeclaration":47507,"src":"4729:5:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":47963,"mutability":"mutable","name":"validators","nameLocation":"4770:10:71","nodeType":"VariableDeclaration","scope":48046,"src":"4749:31:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47962,"nodeType":"UserDefinedTypeName","pathNode":{"id":47961,"name":"ValidatorSet","nameLocations":["4749:12:71"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"4749:12:71"},"referencedDeclaration":48673,"src":"4749:12:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47965,"mutability":"mutable","name":"pos","nameLocation":"4789:3:71","nodeType":"VariableDeclaration","scope":48046,"src":"4782:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":47964,"name":"uint16","nodeType":"ElementaryTypeName","src":"4782:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":47967,"mutability":"mutable","name":"value","nameLocation":"4802:5:71","nodeType":"VariableDeclaration","scope":48046,"src":"4794:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47966,"name":"uint256","nodeType":"ElementaryTypeName","src":"4794:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4728:80:71"},"returnParameters":{"id":47969,"nodeType":"ParameterList","parameters":[],"src":"4818:0:71"},"scope":48113,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48098,"nodeType":"FunctionDefinition","src":"5763:443:71","nodes":[],"body":{"id":48097,"nodeType":"Block","src":"5945:261:71","nodes":[],"statements":[{"assignments":[48065],"declarations":[{"constant":false,"id":48065,"mutability":"mutable","name":"value1","nameLocation":"5963:6:71","nodeType":"VariableDeclaration","scope":48097,"src":"5955:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48064,"name":"uint256","nodeType":"ElementaryTypeName","src":"5955:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48072,"initialValue":{"arguments":[{"id":48069,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48053,"src":"5992:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48070,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48055,"src":"6004:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48066,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48050,"src":"5972:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":48067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5977:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"5972:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":48068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5983:8:71","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":48280,"src":"5972:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5972:37:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5955:54:71"},{"assignments":[48074],"declarations":[{"constant":false,"id":48074,"mutability":"mutable","name":"value2","nameLocation":"6027:6:71","nodeType":"VariableDeclaration","scope":48097,"src":"6019:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48073,"name":"uint256","nodeType":"ElementaryTypeName","src":"6019:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48081,"initialValue":{"arguments":[{"id":48078,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48053,"src":"6056:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":48079,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48057,"src":"6068:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":48075,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48050,"src":"6036:4:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":48076,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6041:5:71","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":47506,"src":"6036:10:71","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage","typeString":"struct PQ storage ref"}},"id":48077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6047:8:71","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":48280,"src":"6036:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$48136_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$48136_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":48080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6036:37:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6019:54:71"},{"condition":{"id":48086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6088:33:71","subExpression":{"arguments":[{"id":48083,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48065,"src":"6106:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48084,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48074,"src":"6114:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48082,"name":"firstValueLarger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48112,"src":"6089:16:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":48085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6089:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48092,"nodeType":"IfStatement","src":"6084:85:71","trueBody":{"id":48091,"nodeType":"Block","src":"6123:46:71","statements":[{"expression":{"components":[{"id":48087,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48055,"src":"6145:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48088,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48065,"src":"6151:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":48089,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6144:14:71","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":48063,"id":48090,"nodeType":"Return","src":"6137:21:71"}]}},{"expression":{"components":[{"id":48093,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48057,"src":"6186:4:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":48094,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48074,"src":"6192:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":48095,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6185:14:71","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":48063,"id":48096,"nodeType":"Return","src":"6178:21:71"}]},"documentation":{"id":48047,"nodeType":"StructuredDocumentation","src":"5707:51:71","text":"@notice Get the smaller index of pos1 and pos2."},"implemented":true,"kind":"function","modifiers":[],"name":"smallerPosition","nameLocation":"5772:15:71","parameters":{"id":48058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48050,"mutability":"mutable","name":"self","nameLocation":"5811:4:71","nodeType":"VariableDeclaration","scope":48098,"src":"5797:18:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":48049,"nodeType":"UserDefinedTypeName","pathNode":{"id":48048,"name":"MinPQ","nameLocations":["5797:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"5797:5:71"},"referencedDeclaration":47507,"src":"5797:5:71","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":48053,"mutability":"mutable","name":"validators","nameLocation":"5846:10:71","nodeType":"VariableDeclaration","scope":48098,"src":"5825:31:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48052,"nodeType":"UserDefinedTypeName","pathNode":{"id":48051,"name":"ValidatorSet","nameLocations":["5825:12:71"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5825:12:71"},"referencedDeclaration":48673,"src":"5825:12:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48055,"mutability":"mutable","name":"pos1","nameLocation":"5873:4:71","nodeType":"VariableDeclaration","scope":48098,"src":"5866:11:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48054,"name":"uint16","nodeType":"ElementaryTypeName","src":"5866:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48057,"mutability":"mutable","name":"pos2","nameLocation":"5894:4:71","nodeType":"VariableDeclaration","scope":48098,"src":"5887:11:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48056,"name":"uint16","nodeType":"ElementaryTypeName","src":"5887:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5787:117:71"},"returnParameters":{"id":48063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48060,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48098,"src":"5928:6:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48059,"name":"uint16","nodeType":"ElementaryTypeName","src":"5928:6:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48062,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48098,"src":"5936:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48061,"name":"uint256","nodeType":"ElementaryTypeName","src":"5936:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5927:17:71"},"scope":48113,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48112,"nodeType":"FunctionDefinition","src":"6212:110:71","nodes":[],"body":{"id":48111,"nodeType":"Block","src":"6291:31:71","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48107,"name":"v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48100,"src":"6308:2:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":48108,"name":"v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48102,"src":"6313:2:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6308:7:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48106,"id":48110,"nodeType":"Return","src":"6301:14:71"}]},"implemented":true,"kind":"function","modifiers":[],"name":"firstValueLarger","nameLocation":"6221:16:71","parameters":{"id":48103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48100,"mutability":"mutable","name":"v1","nameLocation":"6246:2:71","nodeType":"VariableDeclaration","scope":48112,"src":"6238:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48099,"name":"uint256","nodeType":"ElementaryTypeName","src":"6238:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48102,"mutability":"mutable","name":"v2","nameLocation":"6258:2:71","nodeType":"VariableDeclaration","scope":48112,"src":"6250:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48101,"name":"uint256","nodeType":"ElementaryTypeName","src":"6250:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6237:24:71"},"returnParameters":{"id":48106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48105,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48112,"src":"6285:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48104,"name":"bool","nodeType":"ElementaryTypeName","src":"6285:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6284:6:71"},"scope":48113,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibMinPQ","contractDependencies":[],"contractKind":"library","documentation":{"id":47508,"nodeType":"StructuredDocumentation","src":"249:45:71","text":"The min index priority queue for staking"},"fullyImplemented":true,"linearizedBaseContracts":[48113],"name":"LibMinPQ","nameLocation":"302:8:71","scope":48114,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":71} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220ec8dd754bd9c619ffe74ea350074efa3ec13c36354933629735d68fb82e293b564736f6c63430008130033","sourceMap":"294:6030:78:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220ec8dd754bd9c619ffe74ea350074efa3ec13c36354933629735d68fb82e293b564736f6c63430008130033","sourceMap":"294:6030:78:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The min index priority queue for staking\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/priority/LibMinPQ.sol\":\"LibMinPQ\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/priority/LibMinPQ.sol":"LibMinPQ"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/priority/LibMinPQ.sol","id":49636,"exportedSymbols":{"LibMinPQ":[49635],"LibPQ":[49900],"LibValidatorSet":[45293],"MinPQ":[49029],"PQ":[49658],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:6278:78","nodes":[{"id":49018,"nodeType":"PragmaDirective","src":"46:23:78","nodes":[],"literals":["solidity","0.8",".19"]},{"id":49020,"nodeType":"ImportDirective","src":"71:50:78","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../LibStaking.sol","nameLocation":"-1:-1:-1","scope":49636,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":49019,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45293,"src":"79:15:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49022,"nodeType":"ImportDirective","src":"122:54:78","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":49636,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":49021,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"130:12:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49025,"nodeType":"ImportDirective","src":"177:38:78","nodes":[],"absolutePath":"src/lib/priority/LibPQ.sol","file":"./LibPQ.sol","nameLocation":"-1:-1:-1","scope":49636,"sourceUnit":49901,"symbolAliases":[{"foreign":{"id":49023,"name":"PQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49658,"src":"185:2:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49024,"name":"LibPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49900,"src":"189:5:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49029,"nodeType":"StructDefinition","src":"217:30:78","nodes":[],"canonicalName":"MinPQ","members":[{"constant":false,"id":49028,"mutability":"mutable","name":"inner","nameLocation":"239:5:78","nodeType":"VariableDeclaration","scope":49029,"src":"236:8:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49027,"nodeType":"UserDefinedTypeName","pathNode":{"id":49026,"name":"PQ","nameLocations":["236:2:78"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"236:2:78"},"referencedDeclaration":49658,"src":"236:2:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"name":"MinPQ","nameLocation":"224:5:78","scope":49636,"visibility":"public"},{"id":49635,"nodeType":"ContractDefinition","src":"294:6030:78","nodes":[{"id":49034,"nodeType":"UsingForDirective","src":"317:19:78","nodes":[],"global":false,"libraryName":{"id":49031,"name":"LibPQ","nameLocations":["323:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49900,"src":"323:5:78"},"typeName":{"id":49033,"nodeType":"UserDefinedTypeName","pathNode":{"id":49032,"name":"PQ","nameLocations":["333:2:78"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"333:2:78"},"referencedDeclaration":49658,"src":"333:2:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}}},{"id":49038,"nodeType":"UsingForDirective","src":"341:39:78","nodes":[],"global":false,"libraryName":{"id":49035,"name":"LibValidatorSet","nameLocations":["347:15:78"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"347:15:78"},"typeName":{"id":49037,"nodeType":"UserDefinedTypeName","pathNode":{"id":49036,"name":"ValidatorSet","nameLocations":["367:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"367:12:78"},"referencedDeclaration":50190,"src":"367:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":49051,"nodeType":"FunctionDefinition","src":"386:107:78","nodes":[],"body":{"id":49050,"nodeType":"Block","src":"454:39:78","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":49046,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49041,"src":"471:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"476:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"471:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"482:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"471:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":49045,"id":49049,"nodeType":"Return","src":"464:22:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSize","nameLocation":"395:7:78","parameters":{"id":49042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49041,"mutability":"mutable","name":"self","nameLocation":"417:4:78","nodeType":"VariableDeclaration","scope":49051,"src":"403:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49040,"nodeType":"UserDefinedTypeName","pathNode":{"id":49039,"name":"MinPQ","nameLocations":["403:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"403:5:78"},"referencedDeclaration":49029,"src":"403:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"}],"src":"402:20:78"},"returnParameters":{"id":49045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49044,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49051,"src":"446:6:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49043,"name":"uint16","nodeType":"ElementaryTypeName","src":"446:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"445:8:78"},"scope":49635,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49068,"nodeType":"FunctionDefinition","src":"499:132:78","nodes":[],"body":{"id":49067,"nodeType":"Block","src":"581:50:78","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":49061,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49054,"src":"598:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"603:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"598:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"609:12:78","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"598:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49065,"indexExpression":{"id":49064,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49056,"src":"622:1:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"598:26:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":49060,"id":49066,"nodeType":"Return","src":"591:33:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"508:10:78","parameters":{"id":49057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49054,"mutability":"mutable","name":"self","nameLocation":"533:4:78","nodeType":"VariableDeclaration","scope":49068,"src":"519:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49053,"nodeType":"UserDefinedTypeName","pathNode":{"id":49052,"name":"MinPQ","nameLocations":["519:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"519:5:78"},"referencedDeclaration":49029,"src":"519:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49056,"mutability":"mutable","name":"i","nameLocation":"546:1:78","nodeType":"VariableDeclaration","scope":49068,"src":"539:8:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49055,"name":"uint16","nodeType":"ElementaryTypeName","src":"539:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"518:30:78"},"returnParameters":{"id":49060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49068,"src":"572:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49058,"name":"address","nodeType":"ElementaryTypeName","src":"572:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"571:9:78"},"scope":49635,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49085,"nodeType":"FunctionDefinition","src":"637:140:78","nodes":[],"body":{"id":49084,"nodeType":"Block","src":"723:54:78","nodes":[],"statements":[{"expression":{"arguments":[{"id":49081,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49073,"src":"760:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":49078,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49071,"src":"740:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"745:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"740:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"751:8:78","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49722,"src":"740:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (bool)"}},"id":49082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"740:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49077,"id":49083,"nodeType":"Return","src":"733:37:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"646:8:78","parameters":{"id":49074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49071,"mutability":"mutable","name":"self","nameLocation":"669:4:78","nodeType":"VariableDeclaration","scope":49085,"src":"655:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49070,"nodeType":"UserDefinedTypeName","pathNode":{"id":49069,"name":"MinPQ","nameLocations":["655:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"655:5:78"},"referencedDeclaration":49029,"src":"655:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49073,"mutability":"mutable","name":"validator","nameLocation":"683:9:78","nodeType":"VariableDeclaration","scope":49085,"src":"675:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49072,"name":"address","nodeType":"ElementaryTypeName","src":"675:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"654:39:78"},"returnParameters":{"id":49077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49076,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49085,"src":"717:4:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49075,"name":"bool","nodeType":"ElementaryTypeName","src":"717:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"716:6:78"},"scope":49635,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49148,"nodeType":"FunctionDefinition","src":"924:417:78","nodes":[],"body":{"id":49147,"nodeType":"Block","src":"1021:320:78","nodes":[],"statements":[{"assignments":[49098],"declarations":[{"constant":false,"id":49098,"mutability":"mutable","name":"size","nameLocation":"1038:4:78","nodeType":"VariableDeclaration","scope":49147,"src":"1031:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49097,"name":"uint16","nodeType":"ElementaryTypeName","src":"1031:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49104,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":49099,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"1045:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1050:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1045:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1056:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1045:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":49102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1063:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1045:19:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1031:33:78"},{"expression":{"id":49113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":49105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"1075:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1080:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1075:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1086:12:78","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49652,"src":"1075:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49111,"indexExpression":{"id":49108,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49094,"src":"1099:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1075:34:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49112,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49098,"src":"1112:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1075:41:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49114,"nodeType":"ExpressionStatement","src":"1075:41:78"},{"expression":{"id":49123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":49115,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"1126:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1131:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1126:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1137:12:78","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"1126:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49121,"indexExpression":{"id":49118,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49098,"src":"1150:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1126:29:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49122,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49094,"src":"1158:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1126:41:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49124,"nodeType":"ExpressionStatement","src":"1126:41:78"},{"expression":{"id":49131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":49125,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"1178:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1183:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1178:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1189:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1178:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49130,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49098,"src":"1196:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1178:22:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49132,"nodeType":"ExpressionStatement","src":"1178:22:78"},{"assignments":[49134],"declarations":[{"constant":false,"id":49134,"mutability":"mutable","name":"power","nameLocation":"1219:5:78","nodeType":"VariableDeclaration","scope":49147,"src":"1211:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49133,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49139,"initialValue":{"arguments":[{"id":49137,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49094,"src":"1247:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49135,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49092,"src":"1227:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1238:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"1227:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1227:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1211:46:78"},{"expression":{"arguments":[{"id":49141,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"1279:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49142,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49092,"src":"1297:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49143,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49098,"src":"1314:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49144,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49134,"src":"1327:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49140,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49479,"src":"1267:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1273:4:78","1285:10:78","1309:3:78","1320:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1267:67:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49146,"nodeType":"ExpressionStatement","src":"1267:67:78"}]},"documentation":{"id":49086,"nodeType":"StructuredDocumentation","src":"783:136:78","text":"@notice Insert the validator address into this PQ.\n NOTE that caller should ensure the validator is not already in the queue."},"implemented":true,"kind":"function","modifiers":[],"name":"insert","nameLocation":"933:6:78","parameters":{"id":49095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49089,"mutability":"mutable","name":"self","nameLocation":"954:4:78","nodeType":"VariableDeclaration","scope":49148,"src":"940:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49088,"nodeType":"UserDefinedTypeName","pathNode":{"id":49087,"name":"MinPQ","nameLocations":["940:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"940:5:78"},"referencedDeclaration":49029,"src":"940:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49092,"mutability":"mutable","name":"validators","nameLocation":"981:10:78","nodeType":"VariableDeclaration","scope":49148,"src":"960:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49091,"nodeType":"UserDefinedTypeName","pathNode":{"id":49090,"name":"ValidatorSet","nameLocations":["960:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"960:12:78"},"referencedDeclaration":50190,"src":"960:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49094,"mutability":"mutable","name":"validator","nameLocation":"1001:9:78","nodeType":"VariableDeclaration","scope":49148,"src":"993:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49093,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"939:72:78"},"returnParameters":{"id":49096,"nodeType":"ParameterList","parameters":[],"src":"1021:0:78"},"scope":49635,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49215,"nodeType":"FunctionDefinition","src":"1408:401:78","nodes":[],"body":{"id":49214,"nodeType":"Block","src":"1483:326:78","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":49158,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49152,"src":"1493:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1498:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1493:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1504:15:78","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":49692,"src":"1493:26:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":49163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1493:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49164,"nodeType":"ExpressionStatement","src":"1493:28:78"},{"assignments":[49166],"declarations":[{"constant":false,"id":49166,"mutability":"mutable","name":"size","nameLocation":"1539:4:78","nodeType":"VariableDeclaration","scope":49214,"src":"1532:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49165,"name":"uint16","nodeType":"ElementaryTypeName","src":"1532:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49170,"initialValue":{"expression":{"expression":{"id":49167,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49152,"src":"1546:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1551:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1546:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1557:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1546:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1532:29:78"},{"expression":{"arguments":[{"hexValue":"31","id":49176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1592:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":49177,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49166,"src":"1595:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49171,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49152,"src":"1572:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1577:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1572:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1583:8:78","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"1572:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":49178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1572:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49179,"nodeType":"ExpressionStatement","src":"1572:28:78"},{"expression":{"id":49188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":49180,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49152,"src":"1611:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1616:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1611:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1622:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1611:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49185,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49166,"src":"1629:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":49186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1636:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1629:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1611:26:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49189,"nodeType":"ExpressionStatement","src":"1611:26:78"},{"expression":{"arguments":[{"id":49195,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49166,"src":"1662:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49190,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49152,"src":"1647:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1652:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1647:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49194,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1658:3:78","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":49776,"src":"1647:14:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":49196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:20:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49197,"nodeType":"ExpressionStatement","src":"1647:20:78"},{"assignments":[49199],"declarations":[{"constant":false,"id":49199,"mutability":"mutable","name":"power","nameLocation":"1686:5:78","nodeType":"VariableDeclaration","scope":49214,"src":"1678:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49198,"name":"uint256","nodeType":"ElementaryTypeName","src":"1678:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49206,"initialValue":{"arguments":[{"id":49203,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49155,"src":"1714:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":49204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1726:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"expression":{"id":49200,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49152,"src":"1694:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1699:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"1694:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1705:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"1694:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1694:34:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1678:50:78"},{"expression":{"arguments":[{"id":49208,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49152,"src":"1750:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49209,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49155,"src":"1768:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"hexValue":"31","id":49210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1785:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":49211,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49199,"src":"1795:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49207,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49568,"src":"1738:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1744:4:78","1756:10:78","1780:3:78","1788:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"1738:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49213,"nodeType":"ExpressionStatement","src":"1738:64:78"}]},"documentation":{"id":49149,"nodeType":"StructuredDocumentation","src":"1347:56:78","text":"@notice Pop the minimal value in the priority queue."},"implemented":true,"kind":"function","modifiers":[],"name":"pop","nameLocation":"1417:3:78","parameters":{"id":49156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49152,"mutability":"mutable","name":"self","nameLocation":"1435:4:78","nodeType":"VariableDeclaration","scope":49215,"src":"1421:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49151,"nodeType":"UserDefinedTypeName","pathNode":{"id":49150,"name":"MinPQ","nameLocations":["1421:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"1421:5:78"},"referencedDeclaration":49029,"src":"1421:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49155,"mutability":"mutable","name":"validators","nameLocation":"1462:10:78","nodeType":"VariableDeclaration","scope":49215,"src":"1441:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49154,"nodeType":"UserDefinedTypeName","pathNode":{"id":49153,"name":"ValidatorSet","nameLocations":["1441:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"1441:12:78"},"referencedDeclaration":50190,"src":"1441:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"1420:53:78"},"returnParameters":{"id":49157,"nodeType":"ParameterList","parameters":[],"src":"1483:0:78"},"scope":49635,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49307,"nodeType":"FunctionDefinition","src":"1881:779:78","nodes":[],"body":{"id":49306,"nodeType":"Block","src":"1987:673:78","nodes":[],"statements":[{"assignments":[49228],"declarations":[{"constant":false,"id":49228,"mutability":"mutable","name":"pos","nameLocation":"2004:3:78","nodeType":"VariableDeclaration","scope":49306,"src":"1997:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49227,"name":"uint16","nodeType":"ElementaryTypeName","src":"1997:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49234,"initialValue":{"arguments":[{"id":49232,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49224,"src":"2036:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":49229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2010:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2015:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2010:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2021:14:78","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49748,"src":"2010:25:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":49233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2010:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1997:49:78"},{"assignments":[49236],"declarations":[{"constant":false,"id":49236,"mutability":"mutable","name":"size","nameLocation":"2063:4:78","nodeType":"VariableDeclaration","scope":49306,"src":"2056:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49235,"name":"uint16","nodeType":"ElementaryTypeName","src":"2056:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49240,"initialValue":{"expression":{"expression":{"id":49237,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2070:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2075:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2070:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2081:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"2070:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2056:29:78"},{"expression":{"arguments":[{"id":49246,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49228,"src":"2116:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49247,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49236,"src":"2121:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49241,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2096:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2101:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2096:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2107:8:78","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"2096:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":49248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2096:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49249,"nodeType":"ExpressionStatement","src":"2096:30:78"},{"expression":{"id":49258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":49250,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2164:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2169:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2164:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2175:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"2164:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49255,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49236,"src":"2182:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":49256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2182:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2164:26:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49259,"nodeType":"ExpressionStatement","src":"2164:26:78"},{"expression":{"arguments":[{"id":49265,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49236,"src":"2215:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2200:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2205:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2200:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2211:3:78","memberName":"del","nodeType":"MemberAccess","referencedDeclaration":49776,"src":"2200:14:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16)"}},"id":49266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2200:20:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49267,"nodeType":"ExpressionStatement","src":"2200:20:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49268,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49236,"src":"2235:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":49269,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49228,"src":"2243:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2235:11:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49273,"nodeType":"IfStatement","src":"2231:48:78","trueBody":{"id":49272,"nodeType":"Block","src":"2248:31:78","statements":[{"functionReturnParameters":49226,"id":49271,"nodeType":"Return","src":"2262:7:78"}]}},{"assignments":[49275],"declarations":[{"constant":false,"id":49275,"mutability":"mutable","name":"val","nameLocation":"2355:3:78","nodeType":"VariableDeclaration","scope":49306,"src":"2347:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49274,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49282,"initialValue":{"arguments":[{"id":49279,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49222,"src":"2381:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49280,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49228,"src":"2393:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49276,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2361:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2366:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2361:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2372:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"2361:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2361:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2347:50:78"},{"expression":{"arguments":[{"id":49284,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2419:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49285,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49222,"src":"2437:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49286,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49228,"src":"2454:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49287,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49275,"src":"2466:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49283,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49479,"src":"2407:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2413:4:78","2425:10:78","2449:3:78","2459:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2407:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49289,"nodeType":"ExpressionStatement","src":"2407:64:78"},{"expression":{"id":49297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49290,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49275,"src":"2537:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49294,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49222,"src":"2563:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49295,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49228,"src":"2575:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49291,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2543:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2548:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2543:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2554:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"2543:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2543:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2537:42:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49298,"nodeType":"ExpressionStatement","src":"2537:42:78"},{"expression":{"arguments":[{"id":49300,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49219,"src":"2601:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49301,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49222,"src":"2619:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49302,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49228,"src":"2636:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49303,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49275,"src":"2648:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49299,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49568,"src":"2589:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2595:4:78","2607:10:78","2631:3:78","2641:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2589:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49305,"nodeType":"ExpressionStatement","src":"2589:64:78"}]},"documentation":{"id":49216,"nodeType":"StructuredDocumentation","src":"1815:61:78","text":"@notice Reheapify the heap when the validator is deleted."},"implemented":true,"kind":"function","modifiers":[],"name":"deleteReheapify","nameLocation":"1890:15:78","parameters":{"id":49225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49219,"mutability":"mutable","name":"self","nameLocation":"1920:4:78","nodeType":"VariableDeclaration","scope":49307,"src":"1906:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49218,"nodeType":"UserDefinedTypeName","pathNode":{"id":49217,"name":"MinPQ","nameLocations":["1906:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"1906:5:78"},"referencedDeclaration":49029,"src":"1906:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49222,"mutability":"mutable","name":"validators","nameLocation":"1947:10:78","nodeType":"VariableDeclaration","scope":49307,"src":"1926:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49221,"nodeType":"UserDefinedTypeName","pathNode":{"id":49220,"name":"ValidatorSet","nameLocations":["1926:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"1926:12:78"},"referencedDeclaration":50190,"src":"1926:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49224,"mutability":"mutable","name":"validator","nameLocation":"1967:9:78","nodeType":"VariableDeclaration","scope":49307,"src":"1959:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49223,"name":"address","nodeType":"ElementaryTypeName","src":"1959:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1905:72:78"},"returnParameters":{"id":49226,"nodeType":"ParameterList","parameters":[],"src":"1987:0:78"},"scope":49635,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49342,"nodeType":"FunctionDefinition","src":"2745:302:78","nodes":[],"body":{"id":49341,"nodeType":"Block","src":"2853:194:78","nodes":[],"statements":[{"assignments":[49320],"declarations":[{"constant":false,"id":49320,"mutability":"mutable","name":"pos","nameLocation":"2870:3:78","nodeType":"VariableDeclaration","scope":49341,"src":"2863:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49319,"name":"uint16","nodeType":"ElementaryTypeName","src":"2863:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49326,"initialValue":{"arguments":[{"id":49324,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49316,"src":"2902:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":49321,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49311,"src":"2876:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2881:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"2876:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2887:14:78","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49748,"src":"2876:25:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":49325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2876:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"2863:49:78"},{"assignments":[49328],"declarations":[{"constant":false,"id":49328,"mutability":"mutable","name":"val","nameLocation":"2930:3:78","nodeType":"VariableDeclaration","scope":49341,"src":"2922:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49327,"name":"uint256","nodeType":"ElementaryTypeName","src":"2922:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49333,"initialValue":{"arguments":[{"id":49331,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49316,"src":"2956:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49329,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49314,"src":"2936:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2947:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"2936:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2936:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2922:44:78"},{"expression":{"arguments":[{"id":49335,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49311,"src":"2988:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49336,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49314,"src":"3006:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49337,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49320,"src":"3023:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49338,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49328,"src":"3035:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49334,"name":"sink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49568,"src":"2976:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2982:4:78","2994:10:78","3018:3:78","3028:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"2976:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49340,"nodeType":"ExpressionStatement","src":"2976:64:78"}]},"documentation":{"id":49308,"nodeType":"StructuredDocumentation","src":"2666:74:78","text":"@notice Reheapify the heap when the collateral of a key has increased."},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReheapify","nameLocation":"2754:17:78","parameters":{"id":49317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49311,"mutability":"mutable","name":"self","nameLocation":"2786:4:78","nodeType":"VariableDeclaration","scope":49342,"src":"2772:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49310,"nodeType":"UserDefinedTypeName","pathNode":{"id":49309,"name":"MinPQ","nameLocations":["2772:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"2772:5:78"},"referencedDeclaration":49029,"src":"2772:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49314,"mutability":"mutable","name":"validators","nameLocation":"2813:10:78","nodeType":"VariableDeclaration","scope":49342,"src":"2792:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49313,"nodeType":"UserDefinedTypeName","pathNode":{"id":49312,"name":"ValidatorSet","nameLocations":["2792:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"2792:12:78"},"referencedDeclaration":50190,"src":"2792:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49316,"mutability":"mutable","name":"validator","nameLocation":"2833:9:78","nodeType":"VariableDeclaration","scope":49342,"src":"2825:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49315,"name":"address","nodeType":"ElementaryTypeName","src":"2825:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2771:72:78"},"returnParameters":{"id":49318,"nodeType":"ParameterList","parameters":[],"src":"2853:0:78"},"scope":49635,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49377,"nodeType":"FunctionDefinition","src":"3132:302:78","nodes":[],"body":{"id":49376,"nodeType":"Block","src":"3240:194:78","nodes":[],"statements":[{"assignments":[49355],"declarations":[{"constant":false,"id":49355,"mutability":"mutable","name":"pos","nameLocation":"3257:3:78","nodeType":"VariableDeclaration","scope":49376,"src":"3250:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49354,"name":"uint16","nodeType":"ElementaryTypeName","src":"3250:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49361,"initialValue":{"arguments":[{"id":49359,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49351,"src":"3289:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":49356,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49346,"src":"3263:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3268:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"3263:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3274:14:78","memberName":"getPosOrRevert","nodeType":"MemberAccess","referencedDeclaration":49748,"src":"3263:25:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_address_$returns$_t_uint16_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,address) view returns (uint16)"}},"id":49360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3263:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"3250:49:78"},{"assignments":[49363],"declarations":[{"constant":false,"id":49363,"mutability":"mutable","name":"val","nameLocation":"3317:3:78","nodeType":"VariableDeclaration","scope":49376,"src":"3309:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49362,"name":"uint256","nodeType":"ElementaryTypeName","src":"3309:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49368,"initialValue":{"arguments":[{"id":49366,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49351,"src":"3343:9:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49364,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49349,"src":"3323:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3334:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"3323:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3323:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3309:44:78"},{"expression":{"arguments":[{"id":49370,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49346,"src":"3375:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49371,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49349,"src":"3393:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49372,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49355,"src":"3410:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49373,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49363,"src":"3422:3:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49369,"name":"swim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49479,"src":"3363:4:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint256_$returns$__$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint256)"}},"id":49374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3369:4:78","3381:10:78","3405:3:78","3415:5:78"],"names":["self","validators","pos","value"],"nodeType":"FunctionCall","src":"3363:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49375,"nodeType":"ExpressionStatement","src":"3363:64:78"}]},"documentation":{"id":49343,"nodeType":"StructuredDocumentation","src":"3053:74:78","text":"@notice Reheapify the heap when the collateral of a key has decreased."},"implemented":true,"kind":"function","modifiers":[],"name":"decreaseReheapify","nameLocation":"3141:17:78","parameters":{"id":49352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49346,"mutability":"mutable","name":"self","nameLocation":"3173:4:78","nodeType":"VariableDeclaration","scope":49377,"src":"3159:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49345,"nodeType":"UserDefinedTypeName","pathNode":{"id":49344,"name":"MinPQ","nameLocations":["3159:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"3159:5:78"},"referencedDeclaration":49029,"src":"3159:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49349,"mutability":"mutable","name":"validators","nameLocation":"3200:10:78","nodeType":"VariableDeclaration","scope":49377,"src":"3179:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49348,"nodeType":"UserDefinedTypeName","pathNode":{"id":49347,"name":"ValidatorSet","nameLocations":["3179:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"3179:12:78"},"referencedDeclaration":50190,"src":"3179:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49351,"mutability":"mutable","name":"validator","nameLocation":"3220:9:78","nodeType":"VariableDeclaration","scope":49377,"src":"3212:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49350,"name":"address","nodeType":"ElementaryTypeName","src":"3212:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3158:72:78"},"returnParameters":{"id":49353,"nodeType":"ParameterList","parameters":[],"src":"3240:0:78"},"scope":49635,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49418,"nodeType":"FunctionDefinition","src":"3564:285:78","nodes":[],"body":{"id":49417,"nodeType":"Block","src":"3671:178:78","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":49391,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49381,"src":"3681:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3686:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"3681:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3692:15:78","memberName":"requireNotEmpty","nodeType":"MemberAccess","referencedDeclaration":49692,"src":"3681:26:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer) view"}},"id":49396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3681:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49397,"nodeType":"ExpressionStatement","src":"3681:28:78"},{"assignments":[49399],"declarations":[{"constant":false,"id":49399,"mutability":"mutable","name":"addr","nameLocation":"3728:4:78","nodeType":"VariableDeclaration","scope":49417,"src":"3720:12:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49398,"name":"address","nodeType":"ElementaryTypeName","src":"3720:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49405,"initialValue":{"baseExpression":{"expression":{"expression":{"id":49400,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49381,"src":"3735:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3740:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"3735:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3746:12:78","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"3735:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49404,"indexExpression":{"hexValue":"31","id":49403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3759:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3735:26:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3720:41:78"},{"assignments":[49407],"declarations":[{"constant":false,"id":49407,"mutability":"mutable","name":"power","nameLocation":"3779:5:78","nodeType":"VariableDeclaration","scope":49417,"src":"3771:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49406,"name":"uint256","nodeType":"ElementaryTypeName","src":"3771:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49412,"initialValue":{"arguments":[{"id":49410,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49399,"src":"3807:4:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49408,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49384,"src":"3787:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3798:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"3787:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3787:25:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3771:41:78"},{"expression":{"components":[{"id":49413,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49399,"src":"3830:4:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49414,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49407,"src":"3836:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49415,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3829:13:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"functionReturnParameters":49390,"id":49416,"nodeType":"Return","src":"3822:20:78"}]},"documentation":{"id":49378,"nodeType":"StructuredDocumentation","src":"3440:119:78","text":"@notice Get the minimal value in the priority queue.\n NOTE that caller should ensure the queue is not empty!"},"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"3573:3:78","parameters":{"id":49385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49381,"mutability":"mutable","name":"self","nameLocation":"3591:4:78","nodeType":"VariableDeclaration","scope":49418,"src":"3577:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49380,"nodeType":"UserDefinedTypeName","pathNode":{"id":49379,"name":"MinPQ","nameLocations":["3577:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"3577:5:78"},"referencedDeclaration":49029,"src":"3577:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49384,"mutability":"mutable","name":"validators","nameLocation":"3618:10:78","nodeType":"VariableDeclaration","scope":49418,"src":"3597:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49383,"nodeType":"UserDefinedTypeName","pathNode":{"id":49382,"name":"ValidatorSet","nameLocations":["3597:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"3597:12:78"},"referencedDeclaration":50190,"src":"3597:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"3576:53:78"},"returnParameters":{"id":49390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49387,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49418,"src":"3653:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49386,"name":"address","nodeType":"ElementaryTypeName","src":"3653:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49418,"src":"3662:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49388,"name":"uint256","nodeType":"ElementaryTypeName","src":"3662:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3652:18:78"},"scope":49635,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49479,"nodeType":"FunctionDefinition","src":"4101:608:78","nodes":[],"body":{"id":49478,"nodeType":"Block","src":"4204:505:78","nodes":[],"statements":[{"assignments":[49432],"declarations":[{"constant":false,"id":49432,"mutability":"mutable","name":"parentPos","nameLocation":"4221:9:78","nodeType":"VariableDeclaration","scope":49478,"src":"4214:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49431,"name":"uint16","nodeType":"ElementaryTypeName","src":"4214:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49433,"nodeType":"VariableDeclarationStatement","src":"4214:16:78"},{"assignments":[49435],"declarations":[{"constant":false,"id":49435,"mutability":"mutable","name":"parentPower","nameLocation":"4248:11:78","nodeType":"VariableDeclaration","scope":49478,"src":"4240:19:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49434,"name":"uint256","nodeType":"ElementaryTypeName","src":"4240:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49436,"nodeType":"VariableDeclarationStatement","src":"4240:19:78"},{"body":{"id":49476,"nodeType":"Block","src":"4286:417:78","statements":[{"expression":{"id":49444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49440,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49432,"src":"4336:9:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49441,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49426,"src":"4348:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":49442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4355:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4348:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4336:20:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49445,"nodeType":"ExpressionStatement","src":"4336:20:78"},{"expression":{"id":49453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49446,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49435,"src":"4370:11:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49450,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49424,"src":"4404:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49451,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49432,"src":"4416:9:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49447,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49421,"src":"4384:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4389:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"4384:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4395:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"4384:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4384:42:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4370:56:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49454,"nodeType":"ExpressionStatement","src":"4370:56:78"},{"condition":{"id":49459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4537:37:78","subExpression":{"arguments":[{"id":49456,"name":"parentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49435,"src":"4555:11:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49457,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49428,"src":"4568:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49455,"name":"firstValueLarger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49634,"src":"4538:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":49458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4538:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49462,"nodeType":"IfStatement","src":"4533:81:78","trueBody":{"id":49461,"nodeType":"Block","src":"4576:38:78","statements":[{"id":49460,"nodeType":"Break","src":"4594:5:78"}]}},{"expression":{"arguments":[{"id":49468,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49432,"src":"4648:9:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49469,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49426,"src":"4659:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49463,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49421,"src":"4628:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4633:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"4628:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4639:8:78","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"4628:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":49470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4628:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49471,"nodeType":"ExpressionStatement","src":"4628:35:78"},{"expression":{"id":49474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49472,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49426,"src":"4677:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49473,"name":"parentPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49432,"src":"4683:9:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4677:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49475,"nodeType":"ExpressionStatement","src":"4677:15:78"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49437,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49426,"src":"4277:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":49438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4283:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4277:7:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49477,"nodeType":"WhileStatement","src":"4270:433:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"swim","nameLocation":"4110:4:78","parameters":{"id":49429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49421,"mutability":"mutable","name":"self","nameLocation":"4129:4:78","nodeType":"VariableDeclaration","scope":49479,"src":"4115:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49420,"nodeType":"UserDefinedTypeName","pathNode":{"id":49419,"name":"MinPQ","nameLocations":["4115:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"4115:5:78"},"referencedDeclaration":49029,"src":"4115:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49424,"mutability":"mutable","name":"validators","nameLocation":"4156:10:78","nodeType":"VariableDeclaration","scope":49479,"src":"4135:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49423,"nodeType":"UserDefinedTypeName","pathNode":{"id":49422,"name":"ValidatorSet","nameLocations":["4135:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4135:12:78"},"referencedDeclaration":50190,"src":"4135:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49426,"mutability":"mutable","name":"pos","nameLocation":"4175:3:78","nodeType":"VariableDeclaration","scope":49479,"src":"4168:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49425,"name":"uint16","nodeType":"ElementaryTypeName","src":"4168:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49428,"mutability":"mutable","name":"value","nameLocation":"4188:5:78","nodeType":"VariableDeclaration","scope":49479,"src":"4180:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49427,"name":"uint256","nodeType":"ElementaryTypeName","src":"4180:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4114:80:78"},"returnParameters":{"id":49430,"nodeType":"ParameterList","parameters":[],"src":"4204:0:78"},"scope":49635,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49568,"nodeType":"FunctionDefinition","src":"4715:986:78","nodes":[],"body":{"id":49567,"nodeType":"Block","src":"4818:883:78","nodes":[],"statements":[{"assignments":[49493],"declarations":[{"constant":false,"id":49493,"mutability":"mutable","name":"childPos","nameLocation":"4835:8:78","nodeType":"VariableDeclaration","scope":49567,"src":"4828:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49492,"name":"uint16","nodeType":"ElementaryTypeName","src":"4828:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49497,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49494,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49487,"src":"4846:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":49495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4852:1:78","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4846:7:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"4828:25:78"},{"assignments":[49499],"declarations":[{"constant":false,"id":49499,"mutability":"mutable","name":"childPower","nameLocation":"4871:10:78","nodeType":"VariableDeclaration","scope":49567,"src":"4863:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49498,"name":"uint256","nodeType":"ElementaryTypeName","src":"4863:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49500,"nodeType":"VariableDeclarationStatement","src":"4863:18:78"},{"assignments":[49502],"declarations":[{"constant":false,"id":49502,"mutability":"mutable","name":"size","nameLocation":"4899:4:78","nodeType":"VariableDeclaration","scope":49567,"src":"4892:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49501,"name":"uint16","nodeType":"ElementaryTypeName","src":"4892:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":49506,"initialValue":{"expression":{"expression":{"id":49503,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49482,"src":"4906:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4911:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"4906:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4917:4:78","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"4906:15:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"4892:29:78"},{"body":{"id":49565,"nodeType":"Block","src":"4957:738:78","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49510,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"4975:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":49511,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49502,"src":"4986:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4975:15:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":49536,"nodeType":"Block","src":"5297:87:78","statements":[{"expression":{"id":49534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49527,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49499,"src":"5315:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49531,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49485,"src":"5348:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49532,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"5360:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49528,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49482,"src":"5328:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5333:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"5328:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"5328:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:41:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5315:54:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49535,"nodeType":"ExpressionStatement","src":"5315:54:78"}]},"id":49537,"nodeType":"IfStatement","src":"4971:413:78","trueBody":{"id":49526,"nodeType":"Block","src":"4992:299:78","statements":[{"expression":{"id":49524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":49513,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"5065:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49514,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49499,"src":"5075:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49515,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5064:22:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49517,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49482,"src":"5133:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},{"id":49518,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49485,"src":"5171:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49519,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"5209:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49520,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"5245:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":49521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5256:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5245:12:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"},{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":49516,"name":"smallerPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49620,"src":"5089:15:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$_t_uint16_$returns$_t_uint16_$_t_uint256_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,uint16,uint16) view returns (uint16,uint256)"}},"id":49523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5127:4:78","5159:10:78","5203:4:78","5239:4:78"],"names":["self","validators","pos1","pos2"],"nodeType":"FunctionCall","src":"5089:187:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"src":"5064:212:78","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49525,"nodeType":"ExpressionStatement","src":"5064:212:78"}]}},{"condition":{"id":49542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5500:36:78","subExpression":{"arguments":[{"id":49539,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49489,"src":"5518:5:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49540,"name":"childPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49499,"src":"5525:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49538,"name":"firstValueLarger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49634,"src":"5501:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":49541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5501:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49545,"nodeType":"IfStatement","src":"5496:80:78","trueBody":{"id":49544,"nodeType":"Block","src":"5538:38:78","statements":[{"id":49543,"nodeType":"Break","src":"5556:5:78"}]}},{"expression":{"arguments":[{"id":49551,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"5610:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49552,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49487,"src":"5620:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49546,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49482,"src":"5590:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5595:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"5590:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5601:8:78","memberName":"exchange","nodeType":"MemberAccess","referencedDeclaration":49899,"src":"5590:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_PQ_$49658_storage_ptr_$_t_uint16_$_t_uint16_$returns$__$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,uint16,uint16)"}},"id":49553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5590:34:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49554,"nodeType":"ExpressionStatement","src":"5590:34:78"},{"expression":{"id":49557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49555,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49487,"src":"5638:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49556,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"5644:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5638:14:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49558,"nodeType":"ExpressionStatement","src":"5638:14:78"},{"expression":{"id":49563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49559,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"5666:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49560,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49487,"src":"5677:3:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":49561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5683:1:78","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5677:7:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5666:18:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49564,"nodeType":"ExpressionStatement","src":"5666:18:78"}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49507,"name":"childPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49493,"src":"4939:8:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":49508,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49502,"src":"4951:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4939:16:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49566,"nodeType":"WhileStatement","src":"4932:763:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sink","nameLocation":"4724:4:78","parameters":{"id":49490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49482,"mutability":"mutable","name":"self","nameLocation":"4743:4:78","nodeType":"VariableDeclaration","scope":49568,"src":"4729:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49481,"nodeType":"UserDefinedTypeName","pathNode":{"id":49480,"name":"MinPQ","nameLocations":["4729:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"4729:5:78"},"referencedDeclaration":49029,"src":"4729:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49485,"mutability":"mutable","name":"validators","nameLocation":"4770:10:78","nodeType":"VariableDeclaration","scope":49568,"src":"4749:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49484,"nodeType":"UserDefinedTypeName","pathNode":{"id":49483,"name":"ValidatorSet","nameLocations":["4749:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4749:12:78"},"referencedDeclaration":50190,"src":"4749:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49487,"mutability":"mutable","name":"pos","nameLocation":"4789:3:78","nodeType":"VariableDeclaration","scope":49568,"src":"4782:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49486,"name":"uint16","nodeType":"ElementaryTypeName","src":"4782:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49489,"mutability":"mutable","name":"value","nameLocation":"4802:5:78","nodeType":"VariableDeclaration","scope":49568,"src":"4794:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49488,"name":"uint256","nodeType":"ElementaryTypeName","src":"4794:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4728:80:78"},"returnParameters":{"id":49491,"nodeType":"ParameterList","parameters":[],"src":"4818:0:78"},"scope":49635,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49620,"nodeType":"FunctionDefinition","src":"5763:443:78","nodes":[],"body":{"id":49619,"nodeType":"Block","src":"5945:261:78","nodes":[],"statements":[{"assignments":[49587],"declarations":[{"constant":false,"id":49587,"mutability":"mutable","name":"value1","nameLocation":"5963:6:78","nodeType":"VariableDeclaration","scope":49619,"src":"5955:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49586,"name":"uint256","nodeType":"ElementaryTypeName","src":"5955:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49594,"initialValue":{"arguments":[{"id":49591,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49575,"src":"5992:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49592,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49577,"src":"6004:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49588,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49572,"src":"5972:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49589,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5977:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"5972:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5983:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"5972:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5972:37:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5955:54:78"},{"assignments":[49596],"declarations":[{"constant":false,"id":49596,"mutability":"mutable","name":"value2","nameLocation":"6027:6:78","nodeType":"VariableDeclaration","scope":49619,"src":"6019:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49595,"name":"uint256","nodeType":"ElementaryTypeName","src":"6019:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49603,"initialValue":{"arguments":[{"id":49600,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49575,"src":"6056:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":49601,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49579,"src":"6068:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":49597,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49572,"src":"6036:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ storage pointer"}},"id":49598,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6041:5:78","memberName":"inner","nodeType":"MemberAccess","referencedDeclaration":49028,"src":"6036:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage","typeString":"struct PQ storage ref"}},"id":49599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6047:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":49802,"src":"6036:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_PQ_$49658_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_uint16_$returns$_t_uint256_$attached_to$_t_struct$_PQ_$49658_storage_ptr_$","typeString":"function (struct PQ storage pointer,struct ValidatorSet storage pointer,uint16) view returns (uint256)"}},"id":49602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6036:37:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6019:54:78"},{"condition":{"id":49608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6088:33:78","subExpression":{"arguments":[{"id":49605,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49587,"src":"6106:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49606,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49596,"src":"6114:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49604,"name":"firstValueLarger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49634,"src":"6089:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":49607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6089:32:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49614,"nodeType":"IfStatement","src":"6084:85:78","trueBody":{"id":49613,"nodeType":"Block","src":"6123:46:78","statements":[{"expression":{"components":[{"id":49609,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49577,"src":"6145:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49610,"name":"value1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49587,"src":"6151:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49611,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6144:14:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":49585,"id":49612,"nodeType":"Return","src":"6137:21:78"}]}},{"expression":{"components":[{"id":49615,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49579,"src":"6186:4:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":49616,"name":"value2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49596,"src":"6192:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":49617,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6185:14:78","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"functionReturnParameters":49585,"id":49618,"nodeType":"Return","src":"6178:21:78"}]},"documentation":{"id":49569,"nodeType":"StructuredDocumentation","src":"5707:51:78","text":"@notice Get the smaller index of pos1 and pos2."},"implemented":true,"kind":"function","modifiers":[],"name":"smallerPosition","nameLocation":"5772:15:78","parameters":{"id":49580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49572,"mutability":"mutable","name":"self","nameLocation":"5811:4:78","nodeType":"VariableDeclaration","scope":49620,"src":"5797:18:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":49571,"nodeType":"UserDefinedTypeName","pathNode":{"id":49570,"name":"MinPQ","nameLocations":["5797:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"5797:5:78"},"referencedDeclaration":49029,"src":"5797:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":49575,"mutability":"mutable","name":"validators","nameLocation":"5846:10:78","nodeType":"VariableDeclaration","scope":49620,"src":"5825:31:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49574,"nodeType":"UserDefinedTypeName","pathNode":{"id":49573,"name":"ValidatorSet","nameLocations":["5825:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5825:12:78"},"referencedDeclaration":50190,"src":"5825:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49577,"mutability":"mutable","name":"pos1","nameLocation":"5873:4:78","nodeType":"VariableDeclaration","scope":49620,"src":"5866:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49576,"name":"uint16","nodeType":"ElementaryTypeName","src":"5866:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49579,"mutability":"mutable","name":"pos2","nameLocation":"5894:4:78","nodeType":"VariableDeclaration","scope":49620,"src":"5887:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49578,"name":"uint16","nodeType":"ElementaryTypeName","src":"5887:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5787:117:78"},"returnParameters":{"id":49585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49620,"src":"5928:6:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49581,"name":"uint16","nodeType":"ElementaryTypeName","src":"5928:6:78","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49620,"src":"5936:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49583,"name":"uint256","nodeType":"ElementaryTypeName","src":"5936:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5927:17:78"},"scope":49635,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49634,"nodeType":"FunctionDefinition","src":"6212:110:78","nodes":[],"body":{"id":49633,"nodeType":"Block","src":"6291:31:78","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49629,"name":"v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49622,"src":"6308:2:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":49630,"name":"v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49624,"src":"6313:2:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6308:7:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49628,"id":49632,"nodeType":"Return","src":"6301:14:78"}]},"implemented":true,"kind":"function","modifiers":[],"name":"firstValueLarger","nameLocation":"6221:16:78","parameters":{"id":49625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49622,"mutability":"mutable","name":"v1","nameLocation":"6246:2:78","nodeType":"VariableDeclaration","scope":49634,"src":"6238:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49621,"name":"uint256","nodeType":"ElementaryTypeName","src":"6238:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49624,"mutability":"mutable","name":"v2","nameLocation":"6258:2:78","nodeType":"VariableDeclaration","scope":49634,"src":"6250:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49623,"name":"uint256","nodeType":"ElementaryTypeName","src":"6250:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6237:24:78"},"returnParameters":{"id":49628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49627,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49634,"src":"6285:4:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49626,"name":"bool","nodeType":"ElementaryTypeName","src":"6285:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6284:6:78"},"scope":49635,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibMinPQ","contractDependencies":[],"contractKind":"library","documentation":{"id":49030,"nodeType":"StructuredDocumentation","src":"249:45:78","text":"The min index priority queue for staking"},"fullyImplemented":true,"linearizedBaseContracts":[49635],"name":"LibMinPQ","nameLocation":"302:8:78","scope":49636,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":78} \ No newline at end of file diff --git a/.out/LibMultisignatureChecker.sol/MultisignatureChecker.json b/.out/LibMultisignatureChecker.sol/MultisignatureChecker.json index 3d0fcda65..798c77d8b 100644 --- a/.out/LibMultisignatureChecker.sol/MultisignatureChecker.json +++ b/.out/LibMultisignatureChecker.sol/MultisignatureChecker.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212207ee0a2ecef0324af9a4799cb314fef85d9f4832348c7179630b22706995d7d8564736f6c63430008130033","sourceMap":"201:2369:60:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212207ee0a2ecef0324af9a4799cb314fef85d9f4832348c7179630b22706995d7d8564736f6c63430008130033","sourceMap":"201:2369:60:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Multi-signature ECDSA verification helper.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibMultisignatureChecker.sol\":\"MultisignatureChecker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibMultisignatureChecker.sol":"MultisignatureChecker"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibMultisignatureChecker.sol","id":42593,"exportedSymbols":{"ECDSA":[33096],"MultisignatureChecker":[42592]},"nodeType":"SourceUnit","src":"46:2525:60","nodes":[{"id":42440,"nodeType":"PragmaDirective","src":"46:23:60","nodes":[],"literals":["solidity","0.8",".19"]},{"id":42442,"nodeType":"ImportDirective","src":"71:74:60","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"openzeppelin-contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":42593,"sourceUnit":33097,"symbolAliases":[{"foreign":{"id":42441,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33096,"src":"79:5:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42592,"nodeType":"ContractDefinition","src":"201:2369:60","nodes":[{"id":42446,"nodeType":"VariableDeclaration","src":"237:44:60","nodes":[],"constant":true,"mutability":"constant","name":"SIGNATURE_LENGTH","nameLocation":"260:16:60","scope":42592,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":42444,"name":"uint8","nodeType":"ElementaryTypeName","src":"237:5:60","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3635","id":42445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"279:2:60","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"visibility":"private"},{"id":42453,"nodeType":"EnumDefinition","src":"288:172:60","nodes":[],"canonicalName":"MultisignatureChecker.Error","members":[{"id":42447,"name":"Nil","nameLocation":"309:3:60","nodeType":"EnumValue","src":"309:3:60"},{"id":42448,"name":"InvalidArrayLength","nameLocation":"322:18:60","nodeType":"EnumValue","src":"322:18:60"},{"id":42449,"name":"EmptySignatures","nameLocation":"350:15:60","nodeType":"EnumValue","src":"350:15:60"},{"id":42450,"name":"InvalidSignatory","nameLocation":"375:16:60","nodeType":"EnumValue","src":"375:16:60"},{"id":42451,"name":"InvalidSignature","nameLocation":"401:16:60","nodeType":"EnumValue","src":"401:16:60"},{"id":42452,"name":"WeightsSumLessThanThreshold","nameLocation":"427:27:60","nodeType":"EnumValue","src":"427:27:60"}],"name":"Error","nameLocation":"293:5:60"},{"id":42591,"nodeType":"FunctionDefinition","src":"1239:1329:60","nodes":[],"body":{"id":42590,"nodeType":"Block","src":"1476:1092:60","nodes":[],"statements":[{"assignments":[42476],"declarations":[{"constant":false,"id":42476,"mutability":"mutable","name":"valid","nameLocation":"1491:5:60","nodeType":"VariableDeclaration","scope":42590,"src":"1486:10:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42475,"name":"bool","nodeType":"ElementaryTypeName","src":"1486:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":42478,"initialValue":{"hexValue":"74727565","id":42477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1499:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"1486:17:60"},{"assignments":[42480],"declarations":[{"constant":false,"id":42480,"mutability":"mutable","name":"weight","nameLocation":"1521:6:60","nodeType":"VariableDeclaration","scope":42590,"src":"1513:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42479,"name":"uint256","nodeType":"ElementaryTypeName","src":"1513:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42481,"nodeType":"VariableDeclarationStatement","src":"1513:14:60"},{"assignments":[42483],"declarations":[{"constant":false,"id":42483,"mutability":"mutable","name":"signaturesNumber","nameLocation":"1546:16:60","nodeType":"VariableDeclaration","scope":42590,"src":"1538:24:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42482,"name":"uint256","nodeType":"ElementaryTypeName","src":"1538:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42486,"initialValue":{"expression":{"id":42484,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42467,"src":"1565:10:60","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":42485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1576:6:60","memberName":"length","nodeType":"MemberAccess","src":"1565:17:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1538:44:60"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42487,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42483,"src":"1596:16:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":42488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1616:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1596:21:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42497,"nodeType":"IfStatement","src":"1592:90:60","trueBody":{"id":42496,"nodeType":"Block","src":"1619:63:60","statements":[{"expression":{"components":[{"id":42491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1641:6:60","subExpression":{"id":42490,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42476,"src":"1642:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":42492,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42453,"src":"1649:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$42453_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":42493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1655:15:60","memberName":"EmptySignatures","nodeType":"MemberAccess","referencedDeclaration":42449,"src":"1649:21:60","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$42453","typeString":"enum MultisignatureChecker.Error"}}],"id":42494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1640:31:60","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$42453_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":42474,"id":42495,"nodeType":"Return","src":"1633:38:60"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":42506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42498,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42483,"src":"1696:16:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":42499,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42457,"src":"1716:11:60","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":42500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1728:6:60","memberName":"length","nodeType":"MemberAccess","src":"1716:18:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1696:38:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42502,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42483,"src":"1738:16:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":42503,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42460,"src":"1758:7:60","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":42504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1766:6:60","memberName":"length","nodeType":"MemberAccess","src":"1758:14:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1738:34:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1696:76:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42514,"nodeType":"IfStatement","src":"1692:148:60","trueBody":{"id":42513,"nodeType":"Block","src":"1774:66:60","statements":[{"expression":{"components":[{"id":42508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1796:6:60","subExpression":{"id":42507,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42476,"src":"1797:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":42509,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42453,"src":"1804:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$42453_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":42510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1810:18:60","memberName":"InvalidArrayLength","nodeType":"MemberAccess","referencedDeclaration":42448,"src":"1804:24:60","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$42453","typeString":"enum MultisignatureChecker.Error"}}],"id":42511,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1795:34:60","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$42453_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":42474,"id":42512,"nodeType":"Return","src":"1788:41:60"}]}},{"body":{"id":42572,"nodeType":"Block","src":"1890:528:60","statements":[{"assignments":[42522,42525,null],"declarations":[{"constant":false,"id":42522,"mutability":"mutable","name":"recovered","nameLocation":"1913:9:60","nodeType":"VariableDeclaration","scope":42572,"src":"1905:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42521,"name":"address","nodeType":"ElementaryTypeName","src":"1905:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42525,"mutability":"mutable","name":"ecdsaErr","nameLocation":"1943:8:60","nodeType":"VariableDeclaration","scope":42572,"src":"1924:27:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":42524,"nodeType":"UserDefinedTypeName","pathNode":{"id":42523,"name":"ECDSA.RecoverError","nameLocations":["1924:5:60","1930:12:60"],"nodeType":"IdentifierPath","referencedDeclaration":32693,"src":"1924:18:60"},"referencedDeclaration":32693,"src":"1924:18:60","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},null],"id":42533,"initialValue":{"arguments":[{"id":42528,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42464,"src":"1998:4:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":42529,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42467,"src":"2031:10:60","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":42531,"indexExpression":{"id":42530,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42516,"src":"2042:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2031:13:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":42526,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33096,"src":"1957:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33096_$","typeString":"type(library ECDSA)"}},"id":42527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1963:10:60","memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":32807,"src":"1957:16:60","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":42532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1992:4:60","2020:9:60"],"names":["hash","signature"],"nodeType":"FunctionCall","src":"1957:102:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"1904:155:60"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},"id":42538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42534,"name":"ecdsaErr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42525,"src":"2077:8:60","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":42535,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33096,"src":"2089:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33096_$","typeString":"type(library ECDSA)"}},"id":42536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2095:12:60","memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":32693,"src":"2089:18:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$32693_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":42537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2108:7:60","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":32689,"src":"2089:26:60","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"src":"2077:38:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42546,"nodeType":"IfStatement","src":"2073:116:60","trueBody":{"id":42545,"nodeType":"Block","src":"2117:72:60","statements":[{"expression":{"components":[{"id":42540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2143:6:60","subExpression":{"id":42539,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42476,"src":"2144:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":42541,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42453,"src":"2151:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$42453_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":42542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2157:16:60","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":42451,"src":"2151:22:60","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$42453","typeString":"enum MultisignatureChecker.Error"}}],"id":42543,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2142:32:60","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$42453_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":42474,"id":42544,"nodeType":"Return","src":"2135:39:60"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":42551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42547,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42522,"src":"2206:9:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":42548,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42457,"src":"2219:11:60","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":42550,"indexExpression":{"id":42549,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42516,"src":"2231:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2219:14:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2206:27:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42559,"nodeType":"IfStatement","src":"2202:105:60","trueBody":{"id":42558,"nodeType":"Block","src":"2235:72:60","statements":[{"expression":{"components":[{"id":42553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2261:6:60","subExpression":{"id":42552,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42476,"src":"2262:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":42554,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42453,"src":"2269:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$42453_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":42555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2275:16:60","memberName":"InvalidSignatory","nodeType":"MemberAccess","referencedDeclaration":42450,"src":"2269:22:60","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$42453","typeString":"enum MultisignatureChecker.Error"}}],"id":42556,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2260:32:60","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$42453_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":42474,"id":42557,"nodeType":"Return","src":"2253:39:60"}]}},{"expression":{"id":42566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42560,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42480,"src":"2320:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42561,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42480,"src":"2329:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"baseExpression":{"id":42562,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42460,"src":"2338:7:60","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":42564,"indexExpression":{"id":42563,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42516,"src":"2346:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2338:10:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2329:19:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2320:28:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42567,"nodeType":"ExpressionStatement","src":"2320:28:60"},{"id":42571,"nodeType":"UncheckedBlock","src":"2362:46:60","statements":[{"expression":{"id":42569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2390:3:60","subExpression":{"id":42568,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42516,"src":"2392:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42570,"nodeType":"ExpressionStatement","src":"2390:3:60"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42518,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42516,"src":"1866:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":42519,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42483,"src":"1870:16:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1866:20:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42573,"initializationExpression":{"assignments":[42516],"declarations":[{"constant":false,"id":42516,"mutability":"mutable","name":"i","nameLocation":"1863:1:60","nodeType":"VariableDeclaration","scope":42573,"src":"1855:9:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42515,"name":"uint256","nodeType":"ElementaryTypeName","src":"1855:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":42517,"nodeType":"VariableDeclarationStatement","src":"1855:9:60"},"nodeType":"ForStatement","src":"1850:568:60"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42574,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42480,"src":"2431:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":42575,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42462,"src":"2441:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2431:19:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42583,"nodeType":"IfStatement","src":"2427:75:60","trueBody":{"id":42582,"nodeType":"Block","src":"2452:50:60","statements":[{"expression":{"components":[{"id":42577,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42476,"src":"2474:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":42578,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42453,"src":"2481:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$42453_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":42579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2487:3:60","memberName":"Nil","nodeType":"MemberAccess","referencedDeclaration":42447,"src":"2481:9:60","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$42453","typeString":"enum MultisignatureChecker.Error"}}],"id":42580,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2473:18:60","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$42453_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":42474,"id":42581,"nodeType":"Return","src":"2466:25:60"}]}},{"expression":{"components":[{"id":42585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2519:6:60","subExpression":{"id":42584,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42476,"src":"2520:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":42586,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42453,"src":"2527:5:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$42453_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":42587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2533:27:60","memberName":"WeightsSumLessThanThreshold","nodeType":"MemberAccess","referencedDeclaration":42452,"src":"2527:33:60","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$42453","typeString":"enum MultisignatureChecker.Error"}}],"id":42588,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2518:43:60","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$42453_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":42474,"id":42589,"nodeType":"Return","src":"2511:50:60"}]},"documentation":{"id":42454,"nodeType":"StructuredDocumentation","src":"466:768:60","text":" @notice Checks if a weighted multi-signature is valid for a given message hash, set of signatories, set of weights, and set of signatures.\n @dev Signatures are validated using `ECDSA.recover`.\n The multi-signature fails if the sum of the signatory weights is less than the threshold.\n Signatories in `signatories` and signatures in `signatures` must have the same order.\n @param signatories The addresses of the signatories.\n @param weights The weights of the signatories.\n @param threshold The number that must be reach to consider `signatures` valid.\n @param hash of the verified data.\n @param signatures Packed signatures. Each signature is in `({bytes32 r}{bytes32 s}{uint8 v})` format."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidWeightedMultiSignature","nameLocation":"1248:29:60","parameters":{"id":42468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42457,"mutability":"mutable","name":"signatories","nameLocation":"1304:11:60","nodeType":"VariableDeclaration","scope":42591,"src":"1287:28:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":42455,"name":"address","nodeType":"ElementaryTypeName","src":"1287:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":42456,"nodeType":"ArrayTypeName","src":"1287:9:60","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":42460,"mutability":"mutable","name":"weights","nameLocation":"1342:7:60","nodeType":"VariableDeclaration","scope":42591,"src":"1325:24:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":42458,"name":"uint256","nodeType":"ElementaryTypeName","src":"1325:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42459,"nodeType":"ArrayTypeName","src":"1325:9:60","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":42462,"mutability":"mutable","name":"threshold","nameLocation":"1367:9:60","nodeType":"VariableDeclaration","scope":42591,"src":"1359:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42461,"name":"uint256","nodeType":"ElementaryTypeName","src":"1359:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42464,"mutability":"mutable","name":"hash","nameLocation":"1394:4:60","nodeType":"VariableDeclaration","scope":42591,"src":"1386:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42463,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1386:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":42467,"mutability":"mutable","name":"signatures","nameLocation":"1423:10:60","nodeType":"VariableDeclaration","scope":42591,"src":"1408:25:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":42465,"name":"bytes","nodeType":"ElementaryTypeName","src":"1408:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":42466,"nodeType":"ArrayTypeName","src":"1408:7:60","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1277:162:60"},"returnParameters":{"id":42474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42470,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42591,"src":"1463:4:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42469,"name":"bool","nodeType":"ElementaryTypeName","src":"1463:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42591,"src":"1469:5:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$42453","typeString":"enum MultisignatureChecker.Error"},"typeName":{"id":42472,"nodeType":"UserDefinedTypeName","pathNode":{"id":42471,"name":"Error","nameLocations":["1469:5:60"],"nodeType":"IdentifierPath","referencedDeclaration":42453,"src":"1469:5:60"},"referencedDeclaration":42453,"src":"1469:5:60","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$42453","typeString":"enum MultisignatureChecker.Error"}},"visibility":"internal"}],"src":"1462:13:60"},"scope":42592,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"MultisignatureChecker","contractDependencies":[],"contractKind":"library","documentation":{"id":42443,"nodeType":"StructuredDocumentation","src":"147:54:60","text":"@title Multi-signature ECDSA verification helper."},"fullyImplemented":true,"linearizedBaseContracts":[42592],"name":"MultisignatureChecker","nameLocation":"209:21:60","scope":42593,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":60} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212207ee0a2ecef0324af9a4799cb314fef85d9f4832348c7179630b22706995d7d8564736f6c63430008130033","sourceMap":"201:2369:65:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212207ee0a2ecef0324af9a4799cb314fef85d9f4832348c7179630b22706995d7d8564736f6c63430008130033","sourceMap":"201:2369:65:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Multi-signature ECDSA verification helper.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibMultisignatureChecker.sol\":\"MultisignatureChecker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibMultisignatureChecker.sol":"MultisignatureChecker"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibMultisignatureChecker.sol","id":43292,"exportedSymbols":{"ECDSA":[33525],"MultisignatureChecker":[43291]},"nodeType":"SourceUnit","src":"46:2525:65","nodes":[{"id":43139,"nodeType":"PragmaDirective","src":"46:23:65","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43141,"nodeType":"ImportDirective","src":"71:74:65","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"openzeppelin-contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":43292,"sourceUnit":33526,"symbolAliases":[{"foreign":{"id":43140,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"79:5:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43291,"nodeType":"ContractDefinition","src":"201:2369:65","nodes":[{"id":43145,"nodeType":"VariableDeclaration","src":"237:44:65","nodes":[],"constant":true,"mutability":"constant","name":"SIGNATURE_LENGTH","nameLocation":"260:16:65","scope":43291,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":43143,"name":"uint8","nodeType":"ElementaryTypeName","src":"237:5:65","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3635","id":43144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"279:2:65","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"visibility":"private"},{"id":43152,"nodeType":"EnumDefinition","src":"288:172:65","nodes":[],"canonicalName":"MultisignatureChecker.Error","members":[{"id":43146,"name":"Nil","nameLocation":"309:3:65","nodeType":"EnumValue","src":"309:3:65"},{"id":43147,"name":"InvalidArrayLength","nameLocation":"322:18:65","nodeType":"EnumValue","src":"322:18:65"},{"id":43148,"name":"EmptySignatures","nameLocation":"350:15:65","nodeType":"EnumValue","src":"350:15:65"},{"id":43149,"name":"InvalidSignatory","nameLocation":"375:16:65","nodeType":"EnumValue","src":"375:16:65"},{"id":43150,"name":"InvalidSignature","nameLocation":"401:16:65","nodeType":"EnumValue","src":"401:16:65"},{"id":43151,"name":"WeightsSumLessThanThreshold","nameLocation":"427:27:65","nodeType":"EnumValue","src":"427:27:65"}],"name":"Error","nameLocation":"293:5:65"},{"id":43290,"nodeType":"FunctionDefinition","src":"1239:1329:65","nodes":[],"body":{"id":43289,"nodeType":"Block","src":"1476:1092:65","nodes":[],"statements":[{"assignments":[43175],"declarations":[{"constant":false,"id":43175,"mutability":"mutable","name":"valid","nameLocation":"1491:5:65","nodeType":"VariableDeclaration","scope":43289,"src":"1486:10:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43174,"name":"bool","nodeType":"ElementaryTypeName","src":"1486:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":43177,"initialValue":{"hexValue":"74727565","id":43176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1499:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"1486:17:65"},{"assignments":[43179],"declarations":[{"constant":false,"id":43179,"mutability":"mutable","name":"weight","nameLocation":"1521:6:65","nodeType":"VariableDeclaration","scope":43289,"src":"1513:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43178,"name":"uint256","nodeType":"ElementaryTypeName","src":"1513:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43180,"nodeType":"VariableDeclarationStatement","src":"1513:14:65"},{"assignments":[43182],"declarations":[{"constant":false,"id":43182,"mutability":"mutable","name":"signaturesNumber","nameLocation":"1546:16:65","nodeType":"VariableDeclaration","scope":43289,"src":"1538:24:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43181,"name":"uint256","nodeType":"ElementaryTypeName","src":"1538:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43185,"initialValue":{"expression":{"id":43183,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43166,"src":"1565:10:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":43184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1576:6:65","memberName":"length","nodeType":"MemberAccess","src":"1565:17:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1538:44:65"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43186,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43182,"src":"1596:16:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1616:1:65","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1596:21:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43196,"nodeType":"IfStatement","src":"1592:90:65","trueBody":{"id":43195,"nodeType":"Block","src":"1619:63:65","statements":[{"expression":{"components":[{"id":43190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1641:6:65","subExpression":{"id":43189,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43175,"src":"1642:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43191,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43152,"src":"1649:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43152_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1655:15:65","memberName":"EmptySignatures","nodeType":"MemberAccess","referencedDeclaration":43148,"src":"1649:21:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}}],"id":43193,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1640:31:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43152_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43173,"id":43194,"nodeType":"Return","src":"1633:38:65"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":43205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43197,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43182,"src":"1696:16:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":43198,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43156,"src":"1716:11:65","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1728:6:65","memberName":"length","nodeType":"MemberAccess","src":"1716:18:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1696:38:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43201,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43182,"src":"1738:16:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":43202,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43159,"src":"1758:7:65","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":43203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1766:6:65","memberName":"length","nodeType":"MemberAccess","src":"1758:14:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1738:34:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1696:76:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43213,"nodeType":"IfStatement","src":"1692:148:65","trueBody":{"id":43212,"nodeType":"Block","src":"1774:66:65","statements":[{"expression":{"components":[{"id":43207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1796:6:65","subExpression":{"id":43206,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43175,"src":"1797:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43208,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43152,"src":"1804:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43152_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1810:18:65","memberName":"InvalidArrayLength","nodeType":"MemberAccess","referencedDeclaration":43147,"src":"1804:24:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}}],"id":43210,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1795:34:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43152_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43173,"id":43211,"nodeType":"Return","src":"1788:41:65"}]}},{"body":{"id":43271,"nodeType":"Block","src":"1890:528:65","statements":[{"assignments":[43221,43224,null],"declarations":[{"constant":false,"id":43221,"mutability":"mutable","name":"recovered","nameLocation":"1913:9:65","nodeType":"VariableDeclaration","scope":43271,"src":"1905:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43220,"name":"address","nodeType":"ElementaryTypeName","src":"1905:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43224,"mutability":"mutable","name":"ecdsaErr","nameLocation":"1943:8:65","nodeType":"VariableDeclaration","scope":43271,"src":"1924:27:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":43223,"nodeType":"UserDefinedTypeName","pathNode":{"id":43222,"name":"ECDSA.RecoverError","nameLocations":["1924:5:65","1930:12:65"],"nodeType":"IdentifierPath","referencedDeclaration":33122,"src":"1924:18:65"},"referencedDeclaration":33122,"src":"1924:18:65","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},null],"id":43232,"initialValue":{"arguments":[{"id":43227,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43163,"src":"1998:4:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":43228,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43166,"src":"2031:10:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":43230,"indexExpression":{"id":43229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43215,"src":"2042:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2031:13:65","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":43225,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"1957:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33525_$","typeString":"type(library ECDSA)"}},"id":43226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1963:10:65","memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":33236,"src":"1957:16:65","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":43231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1992:4:65","2020:9:65"],"names":["hash","signature"],"nodeType":"FunctionCall","src":"1957:102:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"1904:155:65"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"id":43237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43233,"name":"ecdsaErr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43224,"src":"2077:8:65","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":43234,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"2089:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33525_$","typeString":"type(library ECDSA)"}},"id":43235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2095:12:65","memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":33122,"src":"2089:18:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$33122_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":43236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2108:7:65","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":33118,"src":"2089:26:65","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"src":"2077:38:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43245,"nodeType":"IfStatement","src":"2073:116:65","trueBody":{"id":43244,"nodeType":"Block","src":"2117:72:65","statements":[{"expression":{"components":[{"id":43239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2143:6:65","subExpression":{"id":43238,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43175,"src":"2144:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43240,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43152,"src":"2151:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43152_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2157:16:65","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":43150,"src":"2151:22:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}}],"id":43242,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2142:32:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43152_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43173,"id":43243,"nodeType":"Return","src":"2135:39:65"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":43250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43246,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43221,"src":"2206:9:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":43247,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43156,"src":"2219:11:65","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43249,"indexExpression":{"id":43248,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43215,"src":"2231:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2219:14:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2206:27:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43258,"nodeType":"IfStatement","src":"2202:105:65","trueBody":{"id":43257,"nodeType":"Block","src":"2235:72:65","statements":[{"expression":{"components":[{"id":43252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2261:6:65","subExpression":{"id":43251,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43175,"src":"2262:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43253,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43152,"src":"2269:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43152_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2275:16:65","memberName":"InvalidSignatory","nodeType":"MemberAccess","referencedDeclaration":43149,"src":"2269:22:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}}],"id":43255,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2260:32:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43152_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43173,"id":43256,"nodeType":"Return","src":"2253:39:65"}]}},{"expression":{"id":43265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43259,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43179,"src":"2320:6:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43260,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43179,"src":"2329:6:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"baseExpression":{"id":43261,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43159,"src":"2338:7:65","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":43263,"indexExpression":{"id":43262,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43215,"src":"2346:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2338:10:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2329:19:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2320:28:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43266,"nodeType":"ExpressionStatement","src":"2320:28:65"},{"id":43270,"nodeType":"UncheckedBlock","src":"2362:46:65","statements":[{"expression":{"id":43268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2390:3:65","subExpression":{"id":43267,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43215,"src":"2392:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43269,"nodeType":"ExpressionStatement","src":"2390:3:65"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43217,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43215,"src":"1866:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43218,"name":"signaturesNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43182,"src":"1870:16:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1866:20:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43272,"initializationExpression":{"assignments":[43215],"declarations":[{"constant":false,"id":43215,"mutability":"mutable","name":"i","nameLocation":"1863:1:65","nodeType":"VariableDeclaration","scope":43272,"src":"1855:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43214,"name":"uint256","nodeType":"ElementaryTypeName","src":"1855:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43216,"nodeType":"VariableDeclarationStatement","src":"1855:9:65"},"nodeType":"ForStatement","src":"1850:568:65"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43273,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43179,"src":"2431:6:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":43274,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43161,"src":"2441:9:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2431:19:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43282,"nodeType":"IfStatement","src":"2427:75:65","trueBody":{"id":43281,"nodeType":"Block","src":"2452:50:65","statements":[{"expression":{"components":[{"id":43276,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43175,"src":"2474:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43277,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43152,"src":"2481:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43152_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2487:3:65","memberName":"Nil","nodeType":"MemberAccess","referencedDeclaration":43146,"src":"2481:9:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}}],"id":43279,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2473:18:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43152_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43173,"id":43280,"nodeType":"Return","src":"2466:25:65"}]}},{"expression":{"components":[{"id":43284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2519:6:65","subExpression":{"id":43283,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43175,"src":"2520:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":43285,"name":"Error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43152,"src":"2527:5:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Error_$43152_$","typeString":"type(enum MultisignatureChecker.Error)"}},"id":43286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2533:27:65","memberName":"WeightsSumLessThanThreshold","nodeType":"MemberAccess","referencedDeclaration":43151,"src":"2527:33:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}}],"id":43287,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2518:43:65","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43152_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"functionReturnParameters":43173,"id":43288,"nodeType":"Return","src":"2511:50:65"}]},"documentation":{"id":43153,"nodeType":"StructuredDocumentation","src":"466:768:65","text":" @notice Checks if a weighted multi-signature is valid for a given message hash, set of signatories, set of weights, and set of signatures.\n @dev Signatures are validated using `ECDSA.recover`.\n The multi-signature fails if the sum of the signatory weights is less than the threshold.\n Signatories in `signatories` and signatures in `signatures` must have the same order.\n @param signatories The addresses of the signatories.\n @param weights The weights of the signatories.\n @param threshold The number that must be reach to consider `signatures` valid.\n @param hash of the verified data.\n @param signatures Packed signatures. Each signature is in `({bytes32 r}{bytes32 s}{uint8 v})` format."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidWeightedMultiSignature","nameLocation":"1248:29:65","parameters":{"id":43167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43156,"mutability":"mutable","name":"signatories","nameLocation":"1304:11:65","nodeType":"VariableDeclaration","scope":43290,"src":"1287:28:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43154,"name":"address","nodeType":"ElementaryTypeName","src":"1287:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43155,"nodeType":"ArrayTypeName","src":"1287:9:65","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":43159,"mutability":"mutable","name":"weights","nameLocation":"1342:7:65","nodeType":"VariableDeclaration","scope":43290,"src":"1325:24:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":43157,"name":"uint256","nodeType":"ElementaryTypeName","src":"1325:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43158,"nodeType":"ArrayTypeName","src":"1325:9:65","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":43161,"mutability":"mutable","name":"threshold","nameLocation":"1367:9:65","nodeType":"VariableDeclaration","scope":43290,"src":"1359:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43160,"name":"uint256","nodeType":"ElementaryTypeName","src":"1359:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43163,"mutability":"mutable","name":"hash","nameLocation":"1394:4:65","nodeType":"VariableDeclaration","scope":43290,"src":"1386:12:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1386:7:65","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43166,"mutability":"mutable","name":"signatures","nameLocation":"1423:10:65","nodeType":"VariableDeclaration","scope":43290,"src":"1408:25:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":43164,"name":"bytes","nodeType":"ElementaryTypeName","src":"1408:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":43165,"nodeType":"ArrayTypeName","src":"1408:7:65","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1277:162:65"},"returnParameters":{"id":43173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43290,"src":"1463:4:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43168,"name":"bool","nodeType":"ElementaryTypeName","src":"1463:4:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43172,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43290,"src":"1469:5:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"},"typeName":{"id":43171,"nodeType":"UserDefinedTypeName","pathNode":{"id":43170,"name":"Error","nameLocations":["1469:5:65"],"nodeType":"IdentifierPath","referencedDeclaration":43152,"src":"1469:5:65"},"referencedDeclaration":43152,"src":"1469:5:65","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}},"visibility":"internal"}],"src":"1462:13:65"},"scope":43291,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"MultisignatureChecker","contractDependencies":[],"contractKind":"library","documentation":{"id":43142,"nodeType":"StructuredDocumentation","src":"147:54:65","text":"@title Multi-signature ECDSA verification helper."},"fullyImplemented":true,"linearizedBaseContracts":[43291],"name":"MultisignatureChecker","nameLocation":"209:21:65","scope":43292,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":65} \ No newline at end of file diff --git a/.out/LibPQ.sol/LibPQ.json b/.out/LibPQ.sol/LibPQ.json index f80beb899..494be26bb 100644 --- a/.out/LibPQ.sol/LibPQ.json +++ b/.out/LibPQ.sol/LibPQ.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212206f482cb87ef44460e002364e736c6083c7b498cb583b7426164be7323d03d83264736f6c63430008130033","sourceMap":"802:1913:72:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212206f482cb87ef44460e002364e736c6083c7b498cb583b7426164be7323d03d83264736f6c63430008130033","sourceMap":"802:1913:72:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/priority/LibPQ.sol\":\"LibPQ\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/priority/LibPQ.sol":"LibPQ"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/priority/LibPQ.sol","id":48379,"exportedSymbols":{"LibPQ":[48378],"LibValidatorSet":[44594],"PQ":[48136],"PQDoesNotContainAddress":[37062],"PQEmpty":[37064],"ValidatorSet":[48673]},"nodeType":"SourceUnit","src":"46:2669:72","nodes":[{"id":48115,"nodeType":"PragmaDirective","src":"46:23:72","nodes":[],"literals":["solidity","0.8",".19"]},{"id":48117,"nodeType":"ImportDirective","src":"71:50:72","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../LibStaking.sol","nameLocation":"-1:-1:-1","scope":48379,"sourceUnit":45729,"symbolAliases":[{"foreign":{"id":48116,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44594,"src":"79:15:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48119,"nodeType":"ImportDirective","src":"122:54:72","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":48379,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":48118,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48673,"src":"130:12:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48122,"nodeType":"ImportDirective","src":"177:76:72","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":48379,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":48120,"name":"PQEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37064,"src":"185:7:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":48121,"name":"PQDoesNotContainAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37062,"src":"194:23:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48136,"nodeType":"StructDefinition","src":"431:369:72","nodes":[],"canonicalName":"PQ","members":[{"constant":false,"id":48125,"mutability":"mutable","name":"size","nameLocation":"493:4:72","nodeType":"VariableDeclaration","scope":48136,"src":"486:11:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48124,"name":"uint16","nodeType":"ElementaryTypeName","src":"486:6:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48130,"mutability":"mutable","name":"addressToPos","nameLocation":"650:12:72","nodeType":"VariableDeclaration","scope":48136,"src":"623:39:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"},"typeName":{"id":48129,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48127,"name":"address","nodeType":"ElementaryTypeName","src":"631:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"623:26:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48128,"name":"uint16","nodeType":"ElementaryTypeName","src":"642:6:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}},"visibility":"internal"},{"constant":false,"id":48135,"mutability":"mutable","name":"posToAddress","nameLocation":"785:12:72","nodeType":"VariableDeclaration","scope":48136,"src":"758:39:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"},"typeName":{"id":48134,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48132,"name":"uint16","nodeType":"ElementaryTypeName","src":"766:6:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"758:26:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48133,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"}],"name":"PQ","nameLocation":"438:2:72","scope":48379,"visibility":"public"},{"id":48378,"nodeType":"ContractDefinition","src":"802:1913:72","nodes":[{"id":48140,"nodeType":"UsingForDirective","src":"822:39:72","nodes":[],"global":false,"libraryName":{"id":48137,"name":"LibValidatorSet","nameLocations":["828:15:72"],"nodeType":"IdentifierPath","referencedDeclaration":44594,"src":"828:15:72"},"typeName":{"id":48139,"nodeType":"UserDefinedTypeName","pathNode":{"id":48138,"name":"ValidatorSet","nameLocations":["848:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"848:12:72"},"referencedDeclaration":48673,"src":"848:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":48154,"nodeType":"FunctionDefinition","src":"867:101:72","nodes":[],"body":{"id":48153,"nodeType":"Block","src":"930:38:72","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48148,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48143,"src":"947:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48149,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"952:4:72","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"947:9:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"960:1:72","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"947:14:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48147,"id":48152,"nodeType":"Return","src":"940:21:72"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"876:7:72","parameters":{"id":48144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48143,"mutability":"mutable","name":"self","nameLocation":"895:4:72","nodeType":"VariableDeclaration","scope":48154,"src":"884:15:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"},"typeName":{"id":48142,"nodeType":"UserDefinedTypeName","pathNode":{"id":48141,"name":"PQ","nameLocations":["884:2:72"],"nodeType":"IdentifierPath","referencedDeclaration":48136,"src":"884:2:72"},"referencedDeclaration":48136,"src":"884:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"src":"883:17:72"},"returnParameters":{"id":48147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48154,"src":"924:4:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48145,"name":"bool","nodeType":"ElementaryTypeName","src":"924:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"923:6:72"},"scope":48378,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48170,"nodeType":"FunctionDefinition","src":"974:133:72","nodes":[],"body":{"id":48169,"nodeType":"Block","src":"1030:77:72","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48157,"src":"1044:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1049:4:72","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"1044:9:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1057:1:72","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1044:14:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48168,"nodeType":"IfStatement","src":"1040:61:72","trueBody":{"id":48167,"nodeType":"Block","src":"1060:41:72","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":48164,"name":"PQEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37064,"src":"1081:7:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":48165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1081:9:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48166,"nodeType":"RevertStatement","src":"1074:16:72"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"requireNotEmpty","nameLocation":"983:15:72","parameters":{"id":48158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48157,"mutability":"mutable","name":"self","nameLocation":"1010:4:72","nodeType":"VariableDeclaration","scope":48170,"src":"999:15:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"},"typeName":{"id":48156,"nodeType":"UserDefinedTypeName","pathNode":{"id":48155,"name":"PQ","nameLocations":["999:2:72"],"nodeType":"IdentifierPath","referencedDeclaration":48136,"src":"999:2:72"},"referencedDeclaration":48136,"src":"999:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"src":"998:17:72"},"returnParameters":{"id":48159,"nodeType":"ParameterList","parameters":[],"src":"1030:0:72"},"scope":48378,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48182,"nodeType":"FunctionDefinition","src":"1113:98:72","nodes":[],"body":{"id":48181,"nodeType":"Block","src":"1178:33:72","nodes":[],"statements":[{"expression":{"expression":{"id":48178,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48173,"src":"1195:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1200:4:72","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"1195:9:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":48177,"id":48180,"nodeType":"Return","src":"1188:16:72"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSize","nameLocation":"1122:7:72","parameters":{"id":48174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48173,"mutability":"mutable","name":"self","nameLocation":"1141:4:72","nodeType":"VariableDeclaration","scope":48182,"src":"1130:15:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"},"typeName":{"id":48172,"nodeType":"UserDefinedTypeName","pathNode":{"id":48171,"name":"PQ","nameLocations":["1130:2:72"],"nodeType":"IdentifierPath","referencedDeclaration":48136,"src":"1130:2:72"},"referencedDeclaration":48136,"src":"1130:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"src":"1129:17:72"},"returnParameters":{"id":48177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48176,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48182,"src":"1170:6:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48175,"name":"uint16","nodeType":"ElementaryTypeName","src":"1170:6:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1169:8:72"},"scope":48378,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48200,"nodeType":"FunctionDefinition","src":"1217:140:72","nodes":[],"body":{"id":48199,"nodeType":"Block","src":"1300:57:72","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":48192,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48185,"src":"1317:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1322:12:72","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":48130,"src":"1317:17:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":48195,"indexExpression":{"id":48194,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48187,"src":"1335:9:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1317:28:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":48196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1349:1:72","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1317:33:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48191,"id":48198,"nodeType":"Return","src":"1310:40:72"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"1226:8:72","parameters":{"id":48188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48185,"mutability":"mutable","name":"self","nameLocation":"1246:4:72","nodeType":"VariableDeclaration","scope":48200,"src":"1235:15:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"},"typeName":{"id":48184,"nodeType":"UserDefinedTypeName","pathNode":{"id":48183,"name":"PQ","nameLocations":["1235:2:72"],"nodeType":"IdentifierPath","referencedDeclaration":48136,"src":"1235:2:72"},"referencedDeclaration":48136,"src":"1235:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":48187,"mutability":"mutable","name":"validator","nameLocation":"1260:9:72","nodeType":"VariableDeclaration","scope":48200,"src":"1252:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48186,"name":"address","nodeType":"ElementaryTypeName","src":"1252:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1234:36:72"},"returnParameters":{"id":48191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48190,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48200,"src":"1294:4:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48189,"name":"bool","nodeType":"ElementaryTypeName","src":"1294:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1293:6:72"},"scope":48378,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48226,"nodeType":"FunctionDefinition","src":"1363:226:72","nodes":[],"body":{"id":48225,"nodeType":"Block","src":"1458:131:72","nodes":[],"statements":[{"expression":{"id":48215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48210,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48208,"src":"1468:3:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":48211,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48203,"src":"1474:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1479:12:72","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":48130,"src":"1474:17:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":48214,"indexExpression":{"id":48213,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48205,"src":"1492:9:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1474:28:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1468:34:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48216,"nodeType":"ExpressionStatement","src":"1468:34:72"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48217,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48208,"src":"1516:3:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1523:1:72","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1516:8:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48224,"nodeType":"IfStatement","src":"1512:71:72","trueBody":{"id":48223,"nodeType":"Block","src":"1526:57:72","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":48220,"name":"PQDoesNotContainAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37062,"src":"1547:23:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":48221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1547:25:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48222,"nodeType":"RevertStatement","src":"1540:32:72"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPosOrRevert","nameLocation":"1372:14:72","parameters":{"id":48206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48203,"mutability":"mutable","name":"self","nameLocation":"1398:4:72","nodeType":"VariableDeclaration","scope":48226,"src":"1387:15:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"},"typeName":{"id":48202,"nodeType":"UserDefinedTypeName","pathNode":{"id":48201,"name":"PQ","nameLocations":["1387:2:72"],"nodeType":"IdentifierPath","referencedDeclaration":48136,"src":"1387:2:72"},"referencedDeclaration":48136,"src":"1387:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":48205,"mutability":"mutable","name":"validator","nameLocation":"1412:9:72","nodeType":"VariableDeclaration","scope":48226,"src":"1404:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48204,"name":"address","nodeType":"ElementaryTypeName","src":"1404:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1386:36:72"},"returnParameters":{"id":48209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48208,"mutability":"mutable","name":"pos","nameLocation":"1453:3:72","nodeType":"VariableDeclaration","scope":48226,"src":"1446:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48207,"name":"uint16","nodeType":"ElementaryTypeName","src":"1446:6:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1445:12:72"},"scope":48378,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48254,"nodeType":"FunctionDefinition","src":"1595:184:72","nodes":[],"body":{"id":48253,"nodeType":"Block","src":"1646:133:72","nodes":[],"statements":[{"assignments":[48235],"declarations":[{"constant":false,"id":48235,"mutability":"mutable","name":"addr","nameLocation":"1664:4:72","nodeType":"VariableDeclaration","scope":48253,"src":"1656:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48234,"name":"address","nodeType":"ElementaryTypeName","src":"1656:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":48240,"initialValue":{"baseExpression":{"expression":{"id":48236,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48229,"src":"1671:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1676:12:72","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":48135,"src":"1671:17:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48239,"indexExpression":{"id":48238,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48231,"src":"1689:3:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1671:22:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1656:37:72"},{"expression":{"id":48245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1703:29:72","subExpression":{"baseExpression":{"expression":{"id":48241,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48229,"src":"1710:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1715:12:72","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":48135,"src":"1710:17:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48244,"indexExpression":{"id":48243,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48231,"src":"1728:3:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1710:22:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48246,"nodeType":"ExpressionStatement","src":"1703:29:72"},{"expression":{"id":48251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1742:30:72","subExpression":{"baseExpression":{"expression":{"id":48247,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48229,"src":"1749:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1754:12:72","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":48130,"src":"1749:17:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":48250,"indexExpression":{"id":48249,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48235,"src":"1767:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1749:23:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48252,"nodeType":"ExpressionStatement","src":"1742:30:72"}]},"implemented":true,"kind":"function","modifiers":[],"name":"del","nameLocation":"1604:3:72","parameters":{"id":48232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48229,"mutability":"mutable","name":"self","nameLocation":"1619:4:72","nodeType":"VariableDeclaration","scope":48254,"src":"1608:15:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"},"typeName":{"id":48228,"nodeType":"UserDefinedTypeName","pathNode":{"id":48227,"name":"PQ","nameLocations":["1608:2:72"],"nodeType":"IdentifierPath","referencedDeclaration":48136,"src":"1608:2:72"},"referencedDeclaration":48136,"src":"1608:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":48231,"mutability":"mutable","name":"pos","nameLocation":"1632:3:72","nodeType":"VariableDeclaration","scope":48254,"src":"1625:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48230,"name":"uint16","nodeType":"ElementaryTypeName","src":"1625:6:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1607:29:72"},"returnParameters":{"id":48233,"nodeType":"ParameterList","parameters":[],"src":"1646:0:72"},"scope":48378,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48280,"nodeType":"FunctionDefinition","src":"1785:238:72","nodes":[],"body":{"id":48279,"nodeType":"Block","src":"1927:96:72","nodes":[],"statements":[{"assignments":[48268],"declarations":[{"constant":false,"id":48268,"mutability":"mutable","name":"addr","nameLocation":"1945:4:72","nodeType":"VariableDeclaration","scope":48279,"src":"1937:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48267,"name":"address","nodeType":"ElementaryTypeName","src":"1937:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":48273,"initialValue":{"baseExpression":{"expression":{"id":48269,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48257,"src":"1952:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1957:12:72","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":48135,"src":"1952:17:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48272,"indexExpression":{"id":48271,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48262,"src":"1970:3:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1952:22:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1937:37:72"},{"expression":{"arguments":[{"id":48276,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48268,"src":"2011:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48274,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48260,"src":"1991:10:72","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":48275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2002:8:72","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":43686,"src":"1991:19:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":48277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1991:25:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":48266,"id":48278,"nodeType":"Return","src":"1984:32:72"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"1794:8:72","parameters":{"id":48263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48257,"mutability":"mutable","name":"self","nameLocation":"1823:4:72","nodeType":"VariableDeclaration","scope":48280,"src":"1812:15:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"},"typeName":{"id":48256,"nodeType":"UserDefinedTypeName","pathNode":{"id":48255,"name":"PQ","nameLocations":["1812:2:72"],"nodeType":"IdentifierPath","referencedDeclaration":48136,"src":"1812:2:72"},"referencedDeclaration":48136,"src":"1812:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":48260,"mutability":"mutable","name":"validators","nameLocation":"1858:10:72","nodeType":"VariableDeclaration","scope":48280,"src":"1837:31:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48259,"nodeType":"UserDefinedTypeName","pathNode":{"id":48258,"name":"ValidatorSet","nameLocations":["1837:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"1837:12:72"},"referencedDeclaration":48673,"src":"1837:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48262,"mutability":"mutable","name":"pos","nameLocation":"1885:3:72","nodeType":"VariableDeclaration","scope":48280,"src":"1878:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48261,"name":"uint16","nodeType":"ElementaryTypeName","src":"1878:6:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1802:92:72"},"returnParameters":{"id":48266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48265,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48280,"src":"1918:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48264,"name":"uint256","nodeType":"ElementaryTypeName","src":"1918:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1917:9:72"},"scope":48378,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48306,"nodeType":"FunctionDefinition","src":"2029:266:72","nodes":[],"body":{"id":48305,"nodeType":"Block","src":"2185:110:72","nodes":[],"statements":[{"assignments":[48294],"declarations":[{"constant":false,"id":48294,"mutability":"mutable","name":"addr","nameLocation":"2203:4:72","nodeType":"VariableDeclaration","scope":48305,"src":"2195:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48293,"name":"address","nodeType":"ElementaryTypeName","src":"2195:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":48299,"initialValue":{"baseExpression":{"expression":{"id":48295,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48283,"src":"2210:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2215:12:72","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":48135,"src":"2210:17:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48298,"indexExpression":{"id":48297,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48288,"src":"2228:3:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2210:22:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2195:37:72"},{"expression":{"arguments":[{"id":48302,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48294,"src":"2283:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48300,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48286,"src":"2249:10:72","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":48301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2260:22:72","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":43738,"src":"2249:33:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":48303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2249:39:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":48292,"id":48304,"nodeType":"Return","src":"2242:46:72"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"2038:22:72","parameters":{"id":48289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48283,"mutability":"mutable","name":"self","nameLocation":"2081:4:72","nodeType":"VariableDeclaration","scope":48306,"src":"2070:15:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"},"typeName":{"id":48282,"nodeType":"UserDefinedTypeName","pathNode":{"id":48281,"name":"PQ","nameLocations":["2070:2:72"],"nodeType":"IdentifierPath","referencedDeclaration":48136,"src":"2070:2:72"},"referencedDeclaration":48136,"src":"2070:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":48286,"mutability":"mutable","name":"validators","nameLocation":"2116:10:72","nodeType":"VariableDeclaration","scope":48306,"src":"2095:31:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48285,"nodeType":"UserDefinedTypeName","pathNode":{"id":48284,"name":"ValidatorSet","nameLocations":["2095:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"2095:12:72"},"referencedDeclaration":48673,"src":"2095:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48288,"mutability":"mutable","name":"pos","nameLocation":"2143:3:72","nodeType":"VariableDeclaration","scope":48306,"src":"2136:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48287,"name":"uint16","nodeType":"ElementaryTypeName","src":"2136:6:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"2060:92:72"},"returnParameters":{"id":48292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48306,"src":"2176:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48290,"name":"uint256","nodeType":"ElementaryTypeName","src":"2176:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2175:9:72"},"scope":48378,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48377,"nodeType":"FunctionDefinition","src":"2301:412:72","nodes":[],"body":{"id":48376,"nodeType":"Block","src":"2371:342:72","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48317,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48311,"src":"2388:4:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":48318,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48309,"src":"2396:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2401:4:72","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"2396:9:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2388:17:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":48316,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2381:6:72","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":48321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2381:25:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48322,"nodeType":"ExpressionStatement","src":"2381:25:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":48327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48324,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48313,"src":"2423:4:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":48325,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48309,"src":"2431:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2436:4:72","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":48125,"src":"2431:9:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2423:17:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":48323,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2416:6:72","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":48328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2416:25:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48329,"nodeType":"ExpressionStatement","src":"2416:25:72"},{"assignments":[48331],"declarations":[{"constant":false,"id":48331,"mutability":"mutable","name":"addr1","nameLocation":"2460:5:72","nodeType":"VariableDeclaration","scope":48376,"src":"2452:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48330,"name":"address","nodeType":"ElementaryTypeName","src":"2452:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":48336,"initialValue":{"baseExpression":{"expression":{"id":48332,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48309,"src":"2468:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2473:12:72","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":48135,"src":"2468:17:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48335,"indexExpression":{"id":48334,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48311,"src":"2486:4:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2468:23:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2452:39:72"},{"assignments":[48338],"declarations":[{"constant":false,"id":48338,"mutability":"mutable","name":"addr2","nameLocation":"2509:5:72","nodeType":"VariableDeclaration","scope":48376,"src":"2501:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48337,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":48343,"initialValue":{"baseExpression":{"expression":{"id":48339,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48309,"src":"2517:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2522:12:72","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":48135,"src":"2517:17:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48342,"indexExpression":{"id":48341,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48313,"src":"2535:4:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2517:23:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2501:39:72"},{"expression":{"id":48350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":48344,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48309,"src":"2551:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2556:12:72","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":48130,"src":"2551:17:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":48348,"indexExpression":{"id":48346,"name":"addr1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48331,"src":"2569:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2551:24:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48349,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48313,"src":"2578:4:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2551:31:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48351,"nodeType":"ExpressionStatement","src":"2551:31:72"},{"expression":{"id":48358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":48352,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48309,"src":"2592:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2597:12:72","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":48130,"src":"2592:17:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":48356,"indexExpression":{"id":48354,"name":"addr2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48338,"src":"2610:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2592:24:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48357,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48311,"src":"2619:4:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2592:31:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":48359,"nodeType":"ExpressionStatement","src":"2592:31:72"},{"expression":{"id":48366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":48360,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48309,"src":"2634:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2639:12:72","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":48135,"src":"2634:17:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48364,"indexExpression":{"id":48362,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48313,"src":"2652:4:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2634:23:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48365,"name":"addr1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48331,"src":"2660:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2634:31:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48367,"nodeType":"ExpressionStatement","src":"2634:31:72"},{"expression":{"id":48374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":48368,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48309,"src":"2675:4:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ storage pointer"}},"id":48371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2680:12:72","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":48135,"src":"2675:17:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":48372,"indexExpression":{"id":48370,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48311,"src":"2693:4:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2675:23:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48373,"name":"addr2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48338,"src":"2701:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2675:31:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48375,"nodeType":"ExpressionStatement","src":"2675:31:72"}]},"implemented":true,"kind":"function","modifiers":[],"name":"exchange","nameLocation":"2310:8:72","parameters":{"id":48314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48309,"mutability":"mutable","name":"self","nameLocation":"2330:4:72","nodeType":"VariableDeclaration","scope":48377,"src":"2319:15:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"},"typeName":{"id":48308,"nodeType":"UserDefinedTypeName","pathNode":{"id":48307,"name":"PQ","nameLocations":["2319:2:72"],"nodeType":"IdentifierPath","referencedDeclaration":48136,"src":"2319:2:72"},"referencedDeclaration":48136,"src":"2319:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$48136_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":48311,"mutability":"mutable","name":"pos1","nameLocation":"2343:4:72","nodeType":"VariableDeclaration","scope":48377,"src":"2336:11:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48310,"name":"uint16","nodeType":"ElementaryTypeName","src":"2336:6:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48313,"mutability":"mutable","name":"pos2","nameLocation":"2356:4:72","nodeType":"VariableDeclaration","scope":48377,"src":"2349:11:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48312,"name":"uint16","nodeType":"ElementaryTypeName","src":"2349:6:72","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"2318:43:72"},"returnParameters":{"id":48315,"nodeType":"ParameterList","parameters":[],"src":"2371:0:72"},"scope":48378,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibPQ","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[48378],"name":"LibPQ","nameLocation":"810:5:72","scope":48379,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":72} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220b85e80d5b7746711e519a4004c6fe280c0ad58f39a03e27a1c7b16bde1c6099a64736f6c63430008130033","sourceMap":"802:1913:79:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220b85e80d5b7746711e519a4004c6fe280c0ad58f39a03e27a1c7b16bde1c6099a64736f6c63430008130033","sourceMap":"802:1913:79:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/priority/LibPQ.sol\":\"LibPQ\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/priority/LibPQ.sol":"LibPQ"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/priority/LibPQ.sol","id":49901,"exportedSymbols":{"LibPQ":[49900],"LibValidatorSet":[45293],"PQ":[49658],"PQDoesNotContainAddress":[37494],"PQEmpty":[37496],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:2669:79","nodes":[{"id":49637,"nodeType":"PragmaDirective","src":"46:23:79","nodes":[],"literals":["solidity","0.8",".19"]},{"id":49639,"nodeType":"ImportDirective","src":"71:50:79","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../LibStaking.sol","nameLocation":"-1:-1:-1","scope":49901,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":49638,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45293,"src":"79:15:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49641,"nodeType":"ImportDirective","src":"122:54:79","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":49901,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":49640,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"130:12:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49644,"nodeType":"ImportDirective","src":"177:76:79","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":49901,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":49642,"name":"PQEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37496,"src":"185:7:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49643,"name":"PQDoesNotContainAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37494,"src":"194:23:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49658,"nodeType":"StructDefinition","src":"431:369:79","nodes":[],"canonicalName":"PQ","members":[{"constant":false,"id":49647,"mutability":"mutable","name":"size","nameLocation":"493:4:79","nodeType":"VariableDeclaration","scope":49658,"src":"486:11:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49646,"name":"uint16","nodeType":"ElementaryTypeName","src":"486:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49652,"mutability":"mutable","name":"addressToPos","nameLocation":"650:12:79","nodeType":"VariableDeclaration","scope":49658,"src":"623:39:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"},"typeName":{"id":49651,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49649,"name":"address","nodeType":"ElementaryTypeName","src":"631:7:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"623:26:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49650,"name":"uint16","nodeType":"ElementaryTypeName","src":"642:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}},"visibility":"internal"},{"constant":false,"id":49657,"mutability":"mutable","name":"posToAddress","nameLocation":"785:12:79","nodeType":"VariableDeclaration","scope":49658,"src":"758:39:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"},"typeName":{"id":49656,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49654,"name":"uint16","nodeType":"ElementaryTypeName","src":"766:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"758:26:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":49655,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"}],"name":"PQ","nameLocation":"438:2:79","scope":49901,"visibility":"public"},{"id":49900,"nodeType":"ContractDefinition","src":"802:1913:79","nodes":[{"id":49662,"nodeType":"UsingForDirective","src":"822:39:79","nodes":[],"global":false,"libraryName":{"id":49659,"name":"LibValidatorSet","nameLocations":["828:15:79"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"828:15:79"},"typeName":{"id":49661,"nodeType":"UserDefinedTypeName","pathNode":{"id":49660,"name":"ValidatorSet","nameLocations":["848:12:79"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"848:12:79"},"referencedDeclaration":50190,"src":"848:12:79","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":49676,"nodeType":"FunctionDefinition","src":"867:101:79","nodes":[],"body":{"id":49675,"nodeType":"Block","src":"930:38:79","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49670,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49665,"src":"947:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"952:4:79","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"947:9:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"960:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"947:14:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49669,"id":49674,"nodeType":"Return","src":"940:21:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"876:7:79","parameters":{"id":49666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49665,"mutability":"mutable","name":"self","nameLocation":"895:4:79","nodeType":"VariableDeclaration","scope":49676,"src":"884:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49664,"nodeType":"UserDefinedTypeName","pathNode":{"id":49663,"name":"PQ","nameLocations":["884:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"884:2:79"},"referencedDeclaration":49658,"src":"884:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"src":"883:17:79"},"returnParameters":{"id":49669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49676,"src":"924:4:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49667,"name":"bool","nodeType":"ElementaryTypeName","src":"924:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"923:6:79"},"scope":49900,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49692,"nodeType":"FunctionDefinition","src":"974:133:79","nodes":[],"body":{"id":49691,"nodeType":"Block","src":"1030:77:79","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49682,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49679,"src":"1044:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1049:4:79","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1044:9:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1057:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1044:14:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49690,"nodeType":"IfStatement","src":"1040:61:79","trueBody":{"id":49689,"nodeType":"Block","src":"1060:41:79","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49686,"name":"PQEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37496,"src":"1081:7:79","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1081:9:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49688,"nodeType":"RevertStatement","src":"1074:16:79"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"requireNotEmpty","nameLocation":"983:15:79","parameters":{"id":49680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49679,"mutability":"mutable","name":"self","nameLocation":"1010:4:79","nodeType":"VariableDeclaration","scope":49692,"src":"999:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49678,"nodeType":"UserDefinedTypeName","pathNode":{"id":49677,"name":"PQ","nameLocations":["999:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"999:2:79"},"referencedDeclaration":49658,"src":"999:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"src":"998:17:79"},"returnParameters":{"id":49681,"nodeType":"ParameterList","parameters":[],"src":"1030:0:79"},"scope":49900,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49704,"nodeType":"FunctionDefinition","src":"1113:98:79","nodes":[],"body":{"id":49703,"nodeType":"Block","src":"1178:33:79","nodes":[],"statements":[{"expression":{"expression":{"id":49700,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49695,"src":"1195:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1200:4:79","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"1195:9:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":49699,"id":49702,"nodeType":"Return","src":"1188:16:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSize","nameLocation":"1122:7:79","parameters":{"id":49696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49695,"mutability":"mutable","name":"self","nameLocation":"1141:4:79","nodeType":"VariableDeclaration","scope":49704,"src":"1130:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49694,"nodeType":"UserDefinedTypeName","pathNode":{"id":49693,"name":"PQ","nameLocations":["1130:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"1130:2:79"},"referencedDeclaration":49658,"src":"1130:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"}],"src":"1129:17:79"},"returnParameters":{"id":49699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49704,"src":"1170:6:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49697,"name":"uint16","nodeType":"ElementaryTypeName","src":"1170:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1169:8:79"},"scope":49900,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49722,"nodeType":"FunctionDefinition","src":"1217:140:79","nodes":[],"body":{"id":49721,"nodeType":"Block","src":"1300:57:79","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":49714,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49707,"src":"1317:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1322:12:79","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49652,"src":"1317:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49717,"indexExpression":{"id":49716,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49709,"src":"1335:9:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1317:28:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":49718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1349:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1317:33:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49713,"id":49720,"nodeType":"Return","src":"1310:40:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"1226:8:79","parameters":{"id":49710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49707,"mutability":"mutable","name":"self","nameLocation":"1246:4:79","nodeType":"VariableDeclaration","scope":49722,"src":"1235:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49706,"nodeType":"UserDefinedTypeName","pathNode":{"id":49705,"name":"PQ","nameLocations":["1235:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"1235:2:79"},"referencedDeclaration":49658,"src":"1235:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49709,"mutability":"mutable","name":"validator","nameLocation":"1260:9:79","nodeType":"VariableDeclaration","scope":49722,"src":"1252:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49708,"name":"address","nodeType":"ElementaryTypeName","src":"1252:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1234:36:79"},"returnParameters":{"id":49713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49712,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49722,"src":"1294:4:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49711,"name":"bool","nodeType":"ElementaryTypeName","src":"1294:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1293:6:79"},"scope":49900,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49748,"nodeType":"FunctionDefinition","src":"1363:226:79","nodes":[],"body":{"id":49747,"nodeType":"Block","src":"1458:131:79","nodes":[],"statements":[{"expression":{"id":49737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49732,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49730,"src":"1468:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":49733,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49725,"src":"1474:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1479:12:79","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49652,"src":"1474:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49736,"indexExpression":{"id":49735,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49727,"src":"1492:9:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1474:28:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1468:34:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49738,"nodeType":"ExpressionStatement","src":"1468:34:79"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49739,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49730,"src":"1516:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1523:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1516:8:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49746,"nodeType":"IfStatement","src":"1512:71:79","trueBody":{"id":49745,"nodeType":"Block","src":"1526:57:79","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49742,"name":"PQDoesNotContainAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37494,"src":"1547:23:79","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1547:25:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49744,"nodeType":"RevertStatement","src":"1540:32:79"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPosOrRevert","nameLocation":"1372:14:79","parameters":{"id":49728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49725,"mutability":"mutable","name":"self","nameLocation":"1398:4:79","nodeType":"VariableDeclaration","scope":49748,"src":"1387:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49724,"nodeType":"UserDefinedTypeName","pathNode":{"id":49723,"name":"PQ","nameLocations":["1387:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"1387:2:79"},"referencedDeclaration":49658,"src":"1387:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49727,"mutability":"mutable","name":"validator","nameLocation":"1412:9:79","nodeType":"VariableDeclaration","scope":49748,"src":"1404:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49726,"name":"address","nodeType":"ElementaryTypeName","src":"1404:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1386:36:79"},"returnParameters":{"id":49731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49730,"mutability":"mutable","name":"pos","nameLocation":"1453:3:79","nodeType":"VariableDeclaration","scope":49748,"src":"1446:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49729,"name":"uint16","nodeType":"ElementaryTypeName","src":"1446:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1445:12:79"},"scope":49900,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49776,"nodeType":"FunctionDefinition","src":"1595:184:79","nodes":[],"body":{"id":49775,"nodeType":"Block","src":"1646:133:79","nodes":[],"statements":[{"assignments":[49757],"declarations":[{"constant":false,"id":49757,"mutability":"mutable","name":"addr","nameLocation":"1664:4:79","nodeType":"VariableDeclaration","scope":49775,"src":"1656:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49756,"name":"address","nodeType":"ElementaryTypeName","src":"1656:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49762,"initialValue":{"baseExpression":{"expression":{"id":49758,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49751,"src":"1671:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1676:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"1671:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49761,"indexExpression":{"id":49760,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49753,"src":"1689:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1671:22:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1656:37:79"},{"expression":{"id":49767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1703:29:79","subExpression":{"baseExpression":{"expression":{"id":49763,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49751,"src":"1710:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1715:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"1710:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49766,"indexExpression":{"id":49765,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49753,"src":"1728:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1710:22:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49768,"nodeType":"ExpressionStatement","src":"1703:29:79"},{"expression":{"id":49773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1742:30:79","subExpression":{"baseExpression":{"expression":{"id":49769,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49751,"src":"1749:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1754:12:79","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49652,"src":"1749:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49772,"indexExpression":{"id":49771,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49757,"src":"1767:4:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1749:23:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49774,"nodeType":"ExpressionStatement","src":"1742:30:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"del","nameLocation":"1604:3:79","parameters":{"id":49754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49751,"mutability":"mutable","name":"self","nameLocation":"1619:4:79","nodeType":"VariableDeclaration","scope":49776,"src":"1608:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49750,"nodeType":"UserDefinedTypeName","pathNode":{"id":49749,"name":"PQ","nameLocations":["1608:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"1608:2:79"},"referencedDeclaration":49658,"src":"1608:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49753,"mutability":"mutable","name":"pos","nameLocation":"1632:3:79","nodeType":"VariableDeclaration","scope":49776,"src":"1625:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49752,"name":"uint16","nodeType":"ElementaryTypeName","src":"1625:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1607:29:79"},"returnParameters":{"id":49755,"nodeType":"ParameterList","parameters":[],"src":"1646:0:79"},"scope":49900,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":49802,"nodeType":"FunctionDefinition","src":"1785:238:79","nodes":[],"body":{"id":49801,"nodeType":"Block","src":"1927:96:79","nodes":[],"statements":[{"assignments":[49790],"declarations":[{"constant":false,"id":49790,"mutability":"mutable","name":"addr","nameLocation":"1945:4:79","nodeType":"VariableDeclaration","scope":49801,"src":"1937:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49789,"name":"address","nodeType":"ElementaryTypeName","src":"1937:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49795,"initialValue":{"baseExpression":{"expression":{"id":49791,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49779,"src":"1952:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1957:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"1952:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49794,"indexExpression":{"id":49793,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49784,"src":"1970:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1952:22:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1937:37:79"},{"expression":{"arguments":[{"id":49798,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49790,"src":"2011:4:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49796,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49782,"src":"1991:10:79","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2002:8:79","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"1991:19:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1991:25:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":49788,"id":49800,"nodeType":"Return","src":"1984:32:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"1794:8:79","parameters":{"id":49785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49779,"mutability":"mutable","name":"self","nameLocation":"1823:4:79","nodeType":"VariableDeclaration","scope":49802,"src":"1812:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49778,"nodeType":"UserDefinedTypeName","pathNode":{"id":49777,"name":"PQ","nameLocations":["1812:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"1812:2:79"},"referencedDeclaration":49658,"src":"1812:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49782,"mutability":"mutable","name":"validators","nameLocation":"1858:10:79","nodeType":"VariableDeclaration","scope":49802,"src":"1837:31:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49781,"nodeType":"UserDefinedTypeName","pathNode":{"id":49780,"name":"ValidatorSet","nameLocations":["1837:12:79"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"1837:12:79"},"referencedDeclaration":50190,"src":"1837:12:79","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49784,"mutability":"mutable","name":"pos","nameLocation":"1885:3:79","nodeType":"VariableDeclaration","scope":49802,"src":"1878:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49783,"name":"uint16","nodeType":"ElementaryTypeName","src":"1878:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1802:92:79"},"returnParameters":{"id":49788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49802,"src":"1918:7:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49786,"name":"uint256","nodeType":"ElementaryTypeName","src":"1918:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1917:9:79"},"scope":49900,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49828,"nodeType":"FunctionDefinition","src":"2029:266:79","nodes":[],"body":{"id":49827,"nodeType":"Block","src":"2185:110:79","nodes":[],"statements":[{"assignments":[49816],"declarations":[{"constant":false,"id":49816,"mutability":"mutable","name":"addr","nameLocation":"2203:4:79","nodeType":"VariableDeclaration","scope":49827,"src":"2195:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49815,"name":"address","nodeType":"ElementaryTypeName","src":"2195:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49821,"initialValue":{"baseExpression":{"expression":{"id":49817,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49805,"src":"2210:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2215:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"2210:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49820,"indexExpression":{"id":49819,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49810,"src":"2228:3:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2210:22:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2195:37:79"},{"expression":{"arguments":[{"id":49824,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49816,"src":"2283:4:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49822,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49808,"src":"2249:10:79","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":49823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2260:22:79","memberName":"getConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44437,"src":"2249:33:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":49825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2249:39:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":49814,"id":49826,"nodeType":"Return","src":"2242:46:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"2038:22:79","parameters":{"id":49811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49805,"mutability":"mutable","name":"self","nameLocation":"2081:4:79","nodeType":"VariableDeclaration","scope":49828,"src":"2070:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49804,"nodeType":"UserDefinedTypeName","pathNode":{"id":49803,"name":"PQ","nameLocations":["2070:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"2070:2:79"},"referencedDeclaration":49658,"src":"2070:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49808,"mutability":"mutable","name":"validators","nameLocation":"2116:10:79","nodeType":"VariableDeclaration","scope":49828,"src":"2095:31:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":49807,"nodeType":"UserDefinedTypeName","pathNode":{"id":49806,"name":"ValidatorSet","nameLocations":["2095:12:79"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"2095:12:79"},"referencedDeclaration":50190,"src":"2095:12:79","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":49810,"mutability":"mutable","name":"pos","nameLocation":"2143:3:79","nodeType":"VariableDeclaration","scope":49828,"src":"2136:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49809,"name":"uint16","nodeType":"ElementaryTypeName","src":"2136:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"2060:92:79"},"returnParameters":{"id":49814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49813,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49828,"src":"2176:7:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49812,"name":"uint256","nodeType":"ElementaryTypeName","src":"2176:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2175:9:79"},"scope":49900,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49899,"nodeType":"FunctionDefinition","src":"2301:412:79","nodes":[],"body":{"id":49898,"nodeType":"Block","src":"2371:342:79","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49839,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49833,"src":"2388:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":49840,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2396:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2401:4:79","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"2396:9:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2388:17:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":49838,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2381:6:79","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":49843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2381:25:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49844,"nodeType":"ExpressionStatement","src":"2381:25:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":49849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49846,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49835,"src":"2423:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":49847,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2431:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2436:4:79","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":49647,"src":"2431:9:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2423:17:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":49845,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"2416:6:79","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":49850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2416:25:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49851,"nodeType":"ExpressionStatement","src":"2416:25:79"},{"assignments":[49853],"declarations":[{"constant":false,"id":49853,"mutability":"mutable","name":"addr1","nameLocation":"2460:5:79","nodeType":"VariableDeclaration","scope":49898,"src":"2452:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49852,"name":"address","nodeType":"ElementaryTypeName","src":"2452:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49858,"initialValue":{"baseExpression":{"expression":{"id":49854,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2468:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2473:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"2468:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49857,"indexExpression":{"id":49856,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49833,"src":"2486:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2468:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2452:39:79"},{"assignments":[49860],"declarations":[{"constant":false,"id":49860,"mutability":"mutable","name":"addr2","nameLocation":"2509:5:79","nodeType":"VariableDeclaration","scope":49898,"src":"2501:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49859,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":49865,"initialValue":{"baseExpression":{"expression":{"id":49861,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2517:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2522:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"2517:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49864,"indexExpression":{"id":49863,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49835,"src":"2535:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2517:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2501:39:79"},{"expression":{"id":49872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":49866,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2551:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2556:12:79","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49652,"src":"2551:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49870,"indexExpression":{"id":49868,"name":"addr1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49853,"src":"2569:5:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2551:24:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49871,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49835,"src":"2578:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2551:31:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49873,"nodeType":"ExpressionStatement","src":"2551:31:79"},{"expression":{"id":49880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":49874,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2592:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2597:12:79","memberName":"addressToPos","nodeType":"MemberAccess","referencedDeclaration":49652,"src":"2592:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint16_$","typeString":"mapping(address => uint16)"}},"id":49878,"indexExpression":{"id":49876,"name":"addr2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49860,"src":"2610:5:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2592:24:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49879,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49833,"src":"2619:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2592:31:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":49881,"nodeType":"ExpressionStatement","src":"2592:31:79"},{"expression":{"id":49888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":49882,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2634:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2639:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"2634:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49886,"indexExpression":{"id":49884,"name":"pos2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49835,"src":"2652:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2634:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49887,"name":"addr1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49853,"src":"2660:5:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2634:31:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49889,"nodeType":"ExpressionStatement","src":"2634:31:79"},{"expression":{"id":49896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":49890,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49831,"src":"2675:4:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ storage pointer"}},"id":49893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2680:12:79","memberName":"posToAddress","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"2675:17:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_address_$","typeString":"mapping(uint16 => address)"}},"id":49894,"indexExpression":{"id":49892,"name":"pos1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49833,"src":"2693:4:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2675:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49895,"name":"addr2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49860,"src":"2701:5:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2675:31:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49897,"nodeType":"ExpressionStatement","src":"2675:31:79"}]},"implemented":true,"kind":"function","modifiers":[],"name":"exchange","nameLocation":"2310:8:79","parameters":{"id":49836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49831,"mutability":"mutable","name":"self","nameLocation":"2330:4:79","nodeType":"VariableDeclaration","scope":49899,"src":"2319:15:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"},"typeName":{"id":49830,"nodeType":"UserDefinedTypeName","pathNode":{"id":49829,"name":"PQ","nameLocations":["2319:2:79"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"2319:2:79"},"referencedDeclaration":49658,"src":"2319:2:79","typeDescriptions":{"typeIdentifier":"t_struct$_PQ_$49658_storage_ptr","typeString":"struct PQ"}},"visibility":"internal"},{"constant":false,"id":49833,"mutability":"mutable","name":"pos1","nameLocation":"2343:4:79","nodeType":"VariableDeclaration","scope":49899,"src":"2336:11:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49832,"name":"uint16","nodeType":"ElementaryTypeName","src":"2336:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":49835,"mutability":"mutable","name":"pos2","nameLocation":"2356:4:79","nodeType":"VariableDeclaration","scope":49899,"src":"2349:11:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49834,"name":"uint16","nodeType":"ElementaryTypeName","src":"2349:6:79","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"2318:43:79"},"returnParameters":{"id":49837,"nodeType":"ParameterList","parameters":[],"src":"2371:0:79"},"scope":49900,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibPQ","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[49900],"name":"LibPQ","nameLocation":"810:5:79","scope":49901,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":79} \ No newline at end of file diff --git a/.out/LibPausable.sol/Pausable.json b/.out/LibPausable.sol/Pausable.json index 70401de54..570124ee7 100644 --- a/.out/LibPausable.sol/Pausable.json +++ b/.out/LibPausable.sol/Pausable.json @@ -1 +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.19+commit.7dd6d404\"},\"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\":{\"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\":{},\"title\":\"Pausable Library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"paused()\":{\"notice\":\"sets if to pause the contract\"}},\"notice\":\"Abstract contract that enables contract to pause marked operations\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibPausable.sol\":\"Pausable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":{},"version":1},"userdoc":{"kind":"user","methods":{"paused()":{"notice":"sets if to pause the contract"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibPausable.sol":"Pausable"},"libraries":{},"viaIR":true},"sources":{"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibPausable.sol","id":42734,"exportedSymbols":{"Pausable":[42733]},"nodeType":"SourceUnit","src":"46:2497:61","nodes":[{"id":42594,"nodeType":"PragmaDirective","src":"46:23:61","nodes":[],"literals":["solidity","0.8",".19"]},{"id":42733,"nodeType":"ContractDefinition","src":"178:2364:61","nodes":[{"id":42600,"nodeType":"VariableDeclaration","src":"211:78:61","nodes":[],"constant":true,"mutability":"constant","name":"NAMESPACE","nameLocation":"236:9:61","scope":42733,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"211:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"7061757361626c652e6c69622e6469616d6f6e642e73746f72616765","id":42598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"258:30:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_c451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863","typeString":"literal_string \"pausable.lib.diamond.storage\""},"value":"pausable.lib.diamond.storage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863","typeString":"literal_string \"pausable.lib.diamond.storage\""}],"id":42597,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"248:9:61","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":42599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248:41:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":42603,"nodeType":"StructDefinition","src":"296:51:61","nodes":[],"canonicalName":"Pausable.PausableStorage","members":[{"constant":false,"id":42602,"mutability":"mutable","name":"paused","nameLocation":"334:6:61","nodeType":"VariableDeclaration","scope":42603,"src":"329:11:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42601,"name":"bool","nodeType":"ElementaryTypeName","src":"329:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"PausableStorage","nameLocation":"303:15:61","scope":42733,"visibility":"public"},{"id":42608,"nodeType":"EventDefinition","src":"431:30:61","nodes":[],"anonymous":false,"documentation":{"id":42604,"nodeType":"StructuredDocumentation","src":"353:73:61","text":" @dev Emitted when the pause is triggered by `account`."},"eventSelector":"62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258","name":"Paused","nameLocation":"437:6:61","parameters":{"id":42607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42606,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"452:7:61","nodeType":"VariableDeclaration","scope":42608,"src":"444:15:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42605,"name":"address","nodeType":"ElementaryTypeName","src":"444:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"443:17:61"}},{"id":42613,"nodeType":"EventDefinition","src":"542:32:61","nodes":[],"anonymous":false,"documentation":{"id":42609,"nodeType":"StructuredDocumentation","src":"467:70:61","text":" @dev Emitted when the pause is lifted by `account`."},"eventSelector":"5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa","name":"Unpaused","nameLocation":"548:8:61","parameters":{"id":42612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42611,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"565:7:61","nodeType":"VariableDeclaration","scope":42613,"src":"557:15:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42610,"name":"address","nodeType":"ElementaryTypeName","src":"557:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"556:17:61"}},{"id":42616,"nodeType":"ErrorDefinition","src":"661:22:61","nodes":[],"documentation":{"id":42614,"nodeType":"StructuredDocumentation","src":"580:76:61","text":" @dev The operation failed because the contract is paused."},"errorSelector":"d93c0665","name":"EnforcedPause","nameLocation":"667:13:61","parameters":{"id":42615,"nodeType":"ParameterList","parameters":[],"src":"680:2:61"}},{"id":42619,"nodeType":"ErrorDefinition","src":"774:22:61","nodes":[],"documentation":{"id":42617,"nodeType":"StructuredDocumentation","src":"689:80:61","text":" @dev The operation failed because the contract is not paused."},"errorSelector":"8dfc202b","name":"ExpectedPause","nameLocation":"780:13:61","parameters":{"id":42618,"nodeType":"ParameterList","parameters":[],"src":"793:2:61"}},{"id":42627,"nodeType":"ModifierDefinition","src":"982:72:61","nodes":[],"body":{"id":42626,"nodeType":"Block","src":"1007:47:61","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":42622,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42639,"src":"1017:17:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":42623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:19:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42624,"nodeType":"ExpressionStatement","src":"1017:19:61"},{"id":42625,"nodeType":"PlaceholderStatement","src":"1046:1:61"}]},"documentation":{"id":42620,"nodeType":"StructuredDocumentation","src":"802:175:61","text":" @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."},"name":"whenNotPaused","nameLocation":"991:13:61","parameters":{"id":42621,"nodeType":"ParameterList","parameters":[],"src":"1004:2:61"},"virtual":false,"visibility":"internal"},{"id":42639,"nodeType":"FunctionDefinition","src":"1122:128:61","nodes":[],"body":{"id":42638,"nodeType":"Block","src":"1173:77:61","nodes":[],"statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":42631,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42668,"src":"1187:6:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":42632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1187:8:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42637,"nodeType":"IfStatement","src":"1183:61:61","trueBody":{"id":42636,"nodeType":"Block","src":"1197:47:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42633,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42616,"src":"1218:13:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1218:15:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42635,"nodeType":"RevertStatement","src":"1211:22:61"}]}}]},"documentation":{"id":42628,"nodeType":"StructuredDocumentation","src":"1060:57:61","text":" @dev Throws if the contract is paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"1131:17:61","parameters":{"id":42629,"nodeType":"ParameterList","parameters":[],"src":"1148:2:61"},"returnParameters":{"id":42630,"nodeType":"ParameterList","parameters":[],"src":"1173:0:61"},"scope":42733,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":42652,"nodeType":"FunctionDefinition","src":"1322:126:61","nodes":[],"body":{"id":42651,"nodeType":"Block","src":"1370:78:61","nodes":[],"statements":[{"condition":{"id":42645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1384:9:61","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":42643,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42668,"src":"1385:6:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":42644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:8:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42650,"nodeType":"IfStatement","src":"1380:62:61","trueBody":{"id":42649,"nodeType":"Block","src":"1395:47:61","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42646,"name":"ExpectedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42619,"src":"1416:13:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1416:15:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42648,"nodeType":"RevertStatement","src":"1409:22:61"}]}}]},"documentation":{"id":42640,"nodeType":"StructuredDocumentation","src":"1256:61:61","text":" @dev Throws if the contract is not paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"1331:14:61","parameters":{"id":42641,"nodeType":"ParameterList","parameters":[],"src":"1345:2:61"},"returnParameters":{"id":42642,"nodeType":"ParameterList","parameters":[],"src":"1370:0:61"},"scope":42733,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":42668,"nodeType":"FunctionDefinition","src":"1500:131:61","nodes":[],"body":{"id":42667,"nodeType":"Block","src":"1544:87:61","nodes":[],"statements":[{"assignments":[42660],"declarations":[{"constant":false,"id":42660,"mutability":"mutable","name":"s","nameLocation":"1578:1:61","nodeType":"VariableDeclaration","scope":42667,"src":"1554:25:61","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$42603_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":42659,"nodeType":"UserDefinedTypeName","pathNode":{"id":42658,"name":"PausableStorage","nameLocations":["1554:15:61"],"nodeType":"IdentifierPath","referencedDeclaration":42603,"src":"1554:15:61"},"referencedDeclaration":42603,"src":"1554:15:61","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$42603_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"id":42663,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":42661,"name":"pausableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42732,"src":"1582:15:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$42603_storage_ptr_$","typeString":"function () pure returns (struct Pausable.PausableStorage storage pointer)"}},"id":42662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1582:17:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$42603_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1554:45:61"},{"expression":{"expression":{"id":42664,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42660,"src":"1616:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$42603_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"id":42665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1618:6:61","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":42602,"src":"1616:8:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":42657,"id":42666,"nodeType":"Return","src":"1609:15:61"}]},"documentation":{"id":42653,"nodeType":"StructuredDocumentation","src":"1454:41:61","text":"@notice sets if to pause the contract"},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1509:6:61","parameters":{"id":42654,"nodeType":"ParameterList","parameters":[],"src":"1515:2:61"},"returnParameters":{"id":42657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42656,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":42668,"src":"1538:4:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42655,"name":"bool","nodeType":"ElementaryTypeName","src":"1538:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1537:6:61"},"scope":42733,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":42692,"nodeType":"FunctionDefinition","src":"1766:163:61","nodes":[],"body":{"id":42691,"nodeType":"Block","src":"1807:122:61","nodes":[],"statements":[{"assignments":[42676],"declarations":[{"constant":false,"id":42676,"mutability":"mutable","name":"s","nameLocation":"1841:1:61","nodeType":"VariableDeclaration","scope":42691,"src":"1817:25:61","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$42603_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":42675,"nodeType":"UserDefinedTypeName","pathNode":{"id":42674,"name":"PausableStorage","nameLocations":["1817:15:61"],"nodeType":"IdentifierPath","referencedDeclaration":42603,"src":"1817:15:61"},"referencedDeclaration":42603,"src":"1817:15:61","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$42603_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"id":42679,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":42677,"name":"pausableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42732,"src":"1845:15:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$42603_storage_ptr_$","typeString":"function () pure returns (struct Pausable.PausableStorage storage pointer)"}},"id":42678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1845:17:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$42603_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1817:45:61"},{"expression":{"id":42684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42680,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42676,"src":"1872:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$42603_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"id":42682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1874:6:61","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":42602,"src":"1872:8:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":42683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1883:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1872:15:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42685,"nodeType":"ExpressionStatement","src":"1872:15:61"},{"eventCall":{"arguments":[{"expression":{"id":42687,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1911:3:61","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":42688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1915:6:61","memberName":"sender","nodeType":"MemberAccess","src":"1911:10:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42686,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42613,"src":"1902:8:61","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":42689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1902:20:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42690,"nodeType":"EmitStatement","src":"1897:25:61"}]},"documentation":{"id":42669,"nodeType":"StructuredDocumentation","src":"1637:124:61","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"implemented":true,"kind":"function","modifiers":[{"id":42672,"kind":"modifierInvocation","modifierName":{"id":42671,"name":"whenNotPaused","nameLocations":["1793:13:61"],"nodeType":"IdentifierPath","referencedDeclaration":42627,"src":"1793:13:61"},"nodeType":"ModifierInvocation","src":"1793:13:61"}],"name":"_pause","nameLocation":"1775:6:61","parameters":{"id":42670,"nodeType":"ParameterList","parameters":[],"src":"1781:2:61"},"returnParameters":{"id":42673,"nodeType":"ParameterList","parameters":[],"src":"1807:0:61"},"scope":42733,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42717,"nodeType":"FunctionDefinition","src":"2061:178:61","nodes":[],"body":{"id":42716,"nodeType":"Block","src":"2090:149:61","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":42696,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42652,"src":"2100:14:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":42697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2100:16:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42698,"nodeType":"ExpressionStatement","src":"2100:16:61"},{"assignments":[42701],"declarations":[{"constant":false,"id":42701,"mutability":"mutable","name":"s","nameLocation":"2150:1:61","nodeType":"VariableDeclaration","scope":42716,"src":"2126:25:61","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$42603_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":42700,"nodeType":"UserDefinedTypeName","pathNode":{"id":42699,"name":"PausableStorage","nameLocations":["2126:15:61"],"nodeType":"IdentifierPath","referencedDeclaration":42603,"src":"2126:15:61"},"referencedDeclaration":42603,"src":"2126:15:61","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$42603_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"id":42704,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":42702,"name":"pausableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42732,"src":"2154:15:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$42603_storage_ptr_$","typeString":"function () pure returns (struct Pausable.PausableStorage storage pointer)"}},"id":42703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:17:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$42603_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2126:45:61"},{"expression":{"id":42709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42705,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42701,"src":"2181:1:61","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$42603_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"id":42707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2183:6:61","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":42602,"src":"2181:8:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":42708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2192:5:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2181:16:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42710,"nodeType":"ExpressionStatement","src":"2181:16:61"},{"eventCall":{"arguments":[{"expression":{"id":42712,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2221:3:61","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":42713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2225:6:61","memberName":"sender","nodeType":"MemberAccess","src":"2221:10:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42711,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42613,"src":"2212:8:61","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":42714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2212:20:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42715,"nodeType":"EmitStatement","src":"2207:25:61"}]},"documentation":{"id":42693,"nodeType":"StructuredDocumentation","src":"1935:121:61","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_unpause","nameLocation":"2070:8:61","parameters":{"id":42694,"nodeType":"ParameterList","parameters":[],"src":"2078:2:61"},"returnParameters":{"id":42695,"nodeType":"ParameterList","parameters":[],"src":"2090:0:61"},"scope":42733,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":42732,"nodeType":"FunctionDefinition","src":"2282:258:61","nodes":[],"body":{"id":42731,"nodeType":"Block","src":"2359:181:61","nodes":[],"statements":[{"assignments":[42725],"declarations":[{"constant":false,"id":42725,"mutability":"mutable","name":"position","nameLocation":"2377:8:61","nodeType":"VariableDeclaration","scope":42731,"src":"2369:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2369:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42727,"initialValue":{"id":42726,"name":"NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42600,"src":"2388:9:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2369:28:61"},{"AST":{"nodeType":"YulBlock","src":"2472:43:61","statements":[{"nodeType":"YulAssignment","src":"2486:19:61","value":{"name":"position","nodeType":"YulIdentifier","src":"2497:8:61"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"2486:7:61"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":42722,"isOffset":false,"isSlot":true,"src":"2486:7:61","suffix":"slot","valueSize":1},{"declaration":42725,"isOffset":false,"isSlot":false,"src":"2497:8:61","valueSize":1}],"id":42728,"nodeType":"InlineAssembly","src":"2463:52:61"},{"expression":{"id":42729,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42722,"src":"2531:2:61","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$42603_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"functionReturnParameters":42723,"id":42730,"nodeType":"Return","src":"2524:9:61"}]},"documentation":{"id":42718,"nodeType":"StructuredDocumentation","src":"2245:32:61","text":"@notice get the storage slot"},"implemented":true,"kind":"function","modifiers":[],"name":"pausableStorage","nameLocation":"2291:15:61","parameters":{"id":42719,"nodeType":"ParameterList","parameters":[],"src":"2306:2:61"},"returnParameters":{"id":42723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42722,"mutability":"mutable","name":"ds","nameLocation":"2355:2:61","nodeType":"VariableDeclaration","scope":42732,"src":"2331:26:61","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$42603_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":42721,"nodeType":"UserDefinedTypeName","pathNode":{"id":42720,"name":"PausableStorage","nameLocations":["2331:15:61"],"nodeType":"IdentifierPath","referencedDeclaration":42603,"src":"2331:15:61"},"referencedDeclaration":42603,"src":"2331:15:61","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$42603_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"src":"2330:28:61"},"scope":42733,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"Pausable","contractDependencies":[],"contractKind":"contract","documentation":{"id":42595,"nodeType":"StructuredDocumentation","src":"71:107:61","text":"@title Pausable Library\n @notice Abstract contract that enables contract to pause marked operations"},"fullyImplemented":true,"linearizedBaseContracts":[42733],"name":"Pausable","nameLocation":"196:8:61","scope":42734,"usedErrors":[42616,42619]}],"license":"MIT OR Apache-2.0"},"id":61} \ No newline at end of file +{"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.19+commit.7dd6d404\"},\"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\":{\"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\":{},\"title\":\"Pausable Library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"paused()\":{\"notice\":\"sets if to pause the contract\"}},\"notice\":\"Abstract contract that enables contract to pause marked operations\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibPausable.sol\":\"Pausable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":{},"version":1},"userdoc":{"kind":"user","methods":{"paused()":{"notice":"sets if to pause the contract"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibPausable.sol":"Pausable"},"libraries":{},"viaIR":true},"sources":{"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibPausable.sol","id":43433,"exportedSymbols":{"Pausable":[43432]},"nodeType":"SourceUnit","src":"46:2497:66","nodes":[{"id":43293,"nodeType":"PragmaDirective","src":"46:23:66","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43432,"nodeType":"ContractDefinition","src":"178:2364:66","nodes":[{"id":43299,"nodeType":"VariableDeclaration","src":"211:78:66","nodes":[],"constant":true,"mutability":"constant","name":"NAMESPACE","nameLocation":"236:9:66","scope":43432,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43295,"name":"bytes32","nodeType":"ElementaryTypeName","src":"211:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"7061757361626c652e6c69622e6469616d6f6e642e73746f72616765","id":43297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"258:30:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_c451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863","typeString":"literal_string \"pausable.lib.diamond.storage\""},"value":"pausable.lib.diamond.storage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863","typeString":"literal_string \"pausable.lib.diamond.storage\""}],"id":43296,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"248:9:66","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":43298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248:41:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":43302,"nodeType":"StructDefinition","src":"296:51:66","nodes":[],"canonicalName":"Pausable.PausableStorage","members":[{"constant":false,"id":43301,"mutability":"mutable","name":"paused","nameLocation":"334:6:66","nodeType":"VariableDeclaration","scope":43302,"src":"329:11:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43300,"name":"bool","nodeType":"ElementaryTypeName","src":"329:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"PausableStorage","nameLocation":"303:15:66","scope":43432,"visibility":"public"},{"id":43307,"nodeType":"EventDefinition","src":"431:30:66","nodes":[],"anonymous":false,"documentation":{"id":43303,"nodeType":"StructuredDocumentation","src":"353:73:66","text":" @dev Emitted when the pause is triggered by `account`."},"eventSelector":"62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258","name":"Paused","nameLocation":"437:6:66","parameters":{"id":43306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43305,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"452:7:66","nodeType":"VariableDeclaration","scope":43307,"src":"444:15:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43304,"name":"address","nodeType":"ElementaryTypeName","src":"444:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"443:17:66"}},{"id":43312,"nodeType":"EventDefinition","src":"542:32:66","nodes":[],"anonymous":false,"documentation":{"id":43308,"nodeType":"StructuredDocumentation","src":"467:70:66","text":" @dev Emitted when the pause is lifted by `account`."},"eventSelector":"5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa","name":"Unpaused","nameLocation":"548:8:66","parameters":{"id":43311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43310,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"565:7:66","nodeType":"VariableDeclaration","scope":43312,"src":"557:15:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43309,"name":"address","nodeType":"ElementaryTypeName","src":"557:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"556:17:66"}},{"id":43315,"nodeType":"ErrorDefinition","src":"661:22:66","nodes":[],"documentation":{"id":43313,"nodeType":"StructuredDocumentation","src":"580:76:66","text":" @dev The operation failed because the contract is paused."},"errorSelector":"d93c0665","name":"EnforcedPause","nameLocation":"667:13:66","parameters":{"id":43314,"nodeType":"ParameterList","parameters":[],"src":"680:2:66"}},{"id":43318,"nodeType":"ErrorDefinition","src":"774:22:66","nodes":[],"documentation":{"id":43316,"nodeType":"StructuredDocumentation","src":"689:80:66","text":" @dev The operation failed because the contract is not paused."},"errorSelector":"8dfc202b","name":"ExpectedPause","nameLocation":"780:13:66","parameters":{"id":43317,"nodeType":"ParameterList","parameters":[],"src":"793:2:66"}},{"id":43326,"nodeType":"ModifierDefinition","src":"982:72:66","nodes":[],"body":{"id":43325,"nodeType":"Block","src":"1007:47:66","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43321,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43338,"src":"1017:17:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":43322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:19:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43323,"nodeType":"ExpressionStatement","src":"1017:19:66"},{"id":43324,"nodeType":"PlaceholderStatement","src":"1046:1:66"}]},"documentation":{"id":43319,"nodeType":"StructuredDocumentation","src":"802:175:66","text":" @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."},"name":"whenNotPaused","nameLocation":"991:13:66","parameters":{"id":43320,"nodeType":"ParameterList","parameters":[],"src":"1004:2:66"},"virtual":false,"visibility":"internal"},{"id":43338,"nodeType":"FunctionDefinition","src":"1122:128:66","nodes":[],"body":{"id":43337,"nodeType":"Block","src":"1173:77:66","nodes":[],"statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":43330,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43367,"src":"1187:6:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":43331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1187:8:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43336,"nodeType":"IfStatement","src":"1183:61:66","trueBody":{"id":43335,"nodeType":"Block","src":"1197:47:66","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43332,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43315,"src":"1218:13:66","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1218:15:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43334,"nodeType":"RevertStatement","src":"1211:22:66"}]}}]},"documentation":{"id":43327,"nodeType":"StructuredDocumentation","src":"1060:57:66","text":" @dev Throws if the contract is paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"1131:17:66","parameters":{"id":43328,"nodeType":"ParameterList","parameters":[],"src":"1148:2:66"},"returnParameters":{"id":43329,"nodeType":"ParameterList","parameters":[],"src":"1173:0:66"},"scope":43432,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":43351,"nodeType":"FunctionDefinition","src":"1322:126:66","nodes":[],"body":{"id":43350,"nodeType":"Block","src":"1370:78:66","nodes":[],"statements":[{"condition":{"id":43344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1384:9:66","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":43342,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43367,"src":"1385:6:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":43343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:8:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43349,"nodeType":"IfStatement","src":"1380:62:66","trueBody":{"id":43348,"nodeType":"Block","src":"1395:47:66","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43345,"name":"ExpectedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43318,"src":"1416:13:66","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1416:15:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43347,"nodeType":"RevertStatement","src":"1409:22:66"}]}}]},"documentation":{"id":43339,"nodeType":"StructuredDocumentation","src":"1256:61:66","text":" @dev Throws if the contract is not paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"1331:14:66","parameters":{"id":43340,"nodeType":"ParameterList","parameters":[],"src":"1345:2:66"},"returnParameters":{"id":43341,"nodeType":"ParameterList","parameters":[],"src":"1370:0:66"},"scope":43432,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":43367,"nodeType":"FunctionDefinition","src":"1500:131:66","nodes":[],"body":{"id":43366,"nodeType":"Block","src":"1544:87:66","nodes":[],"statements":[{"assignments":[43359],"declarations":[{"constant":false,"id":43359,"mutability":"mutable","name":"s","nameLocation":"1578:1:66","nodeType":"VariableDeclaration","scope":43366,"src":"1554:25:66","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":43358,"nodeType":"UserDefinedTypeName","pathNode":{"id":43357,"name":"PausableStorage","nameLocations":["1554:15:66"],"nodeType":"IdentifierPath","referencedDeclaration":43302,"src":"1554:15:66"},"referencedDeclaration":43302,"src":"1554:15:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"id":43362,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":43360,"name":"pausableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43431,"src":"1582:15:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$43302_storage_ptr_$","typeString":"function () pure returns (struct Pausable.PausableStorage storage pointer)"}},"id":43361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1582:17:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1554:45:66"},{"expression":{"expression":{"id":43363,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43359,"src":"1616:1:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"id":43364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1618:6:66","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43301,"src":"1616:8:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":43356,"id":43365,"nodeType":"Return","src":"1609:15:66"}]},"documentation":{"id":43352,"nodeType":"StructuredDocumentation","src":"1454:41:66","text":"@notice sets if to pause the contract"},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1509:6:66","parameters":{"id":43353,"nodeType":"ParameterList","parameters":[],"src":"1515:2:66"},"returnParameters":{"id":43356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43367,"src":"1538:4:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43354,"name":"bool","nodeType":"ElementaryTypeName","src":"1538:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1537:6:66"},"scope":43432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":43391,"nodeType":"FunctionDefinition","src":"1766:163:66","nodes":[],"body":{"id":43390,"nodeType":"Block","src":"1807:122:66","nodes":[],"statements":[{"assignments":[43375],"declarations":[{"constant":false,"id":43375,"mutability":"mutable","name":"s","nameLocation":"1841:1:66","nodeType":"VariableDeclaration","scope":43390,"src":"1817:25:66","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":43374,"nodeType":"UserDefinedTypeName","pathNode":{"id":43373,"name":"PausableStorage","nameLocations":["1817:15:66"],"nodeType":"IdentifierPath","referencedDeclaration":43302,"src":"1817:15:66"},"referencedDeclaration":43302,"src":"1817:15:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"id":43378,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":43376,"name":"pausableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43431,"src":"1845:15:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$43302_storage_ptr_$","typeString":"function () pure returns (struct Pausable.PausableStorage storage pointer)"}},"id":43377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1845:17:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1817:45:66"},{"expression":{"id":43383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43379,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43375,"src":"1872:1:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"id":43381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1874:6:66","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43301,"src":"1872:8:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":43382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1883:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1872:15:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43384,"nodeType":"ExpressionStatement","src":"1872:15:66"},{"eventCall":{"arguments":[{"expression":{"id":43386,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1911:3:66","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1915:6:66","memberName":"sender","nodeType":"MemberAccess","src":"1911:10:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43385,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43312,"src":"1902:8:66","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":43388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1902:20:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43389,"nodeType":"EmitStatement","src":"1897:25:66"}]},"documentation":{"id":43368,"nodeType":"StructuredDocumentation","src":"1637:124:66","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"implemented":true,"kind":"function","modifiers":[{"id":43371,"kind":"modifierInvocation","modifierName":{"id":43370,"name":"whenNotPaused","nameLocations":["1793:13:66"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"1793:13:66"},"nodeType":"ModifierInvocation","src":"1793:13:66"}],"name":"_pause","nameLocation":"1775:6:66","parameters":{"id":43369,"nodeType":"ParameterList","parameters":[],"src":"1781:2:66"},"returnParameters":{"id":43372,"nodeType":"ParameterList","parameters":[],"src":"1807:0:66"},"scope":43432,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43416,"nodeType":"FunctionDefinition","src":"2061:178:66","nodes":[],"body":{"id":43415,"nodeType":"Block","src":"2090:149:66","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":43395,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43351,"src":"2100:14:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":43396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2100:16:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43397,"nodeType":"ExpressionStatement","src":"2100:16:66"},{"assignments":[43400],"declarations":[{"constant":false,"id":43400,"mutability":"mutable","name":"s","nameLocation":"2150:1:66","nodeType":"VariableDeclaration","scope":43415,"src":"2126:25:66","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":43399,"nodeType":"UserDefinedTypeName","pathNode":{"id":43398,"name":"PausableStorage","nameLocations":["2126:15:66"],"nodeType":"IdentifierPath","referencedDeclaration":43302,"src":"2126:15:66"},"referencedDeclaration":43302,"src":"2126:15:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"id":43403,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":43401,"name":"pausableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43431,"src":"2154:15:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$43302_storage_ptr_$","typeString":"function () pure returns (struct Pausable.PausableStorage storage pointer)"}},"id":43402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:17:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2126:45:66"},{"expression":{"id":43408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43404,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43400,"src":"2181:1:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"id":43406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2183:6:66","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43301,"src":"2181:8:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":43407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2192:5:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2181:16:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43409,"nodeType":"ExpressionStatement","src":"2181:16:66"},{"eventCall":{"arguments":[{"expression":{"id":43411,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2221:3:66","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":43412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2225:6:66","memberName":"sender","nodeType":"MemberAccess","src":"2221:10:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43410,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43312,"src":"2212:8:66","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":43413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2212:20:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43414,"nodeType":"EmitStatement","src":"2207:25:66"}]},"documentation":{"id":43392,"nodeType":"StructuredDocumentation","src":"1935:121:66","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_unpause","nameLocation":"2070:8:66","parameters":{"id":43393,"nodeType":"ParameterList","parameters":[],"src":"2078:2:66"},"returnParameters":{"id":43394,"nodeType":"ParameterList","parameters":[],"src":"2090:0:66"},"scope":43432,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43431,"nodeType":"FunctionDefinition","src":"2282:258:66","nodes":[],"body":{"id":43430,"nodeType":"Block","src":"2359:181:66","nodes":[],"statements":[{"assignments":[43424],"declarations":[{"constant":false,"id":43424,"mutability":"mutable","name":"position","nameLocation":"2377:8:66","nodeType":"VariableDeclaration","scope":43430,"src":"2369:16:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43423,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2369:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43426,"initialValue":{"id":43425,"name":"NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43299,"src":"2388:9:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2369:28:66"},{"AST":{"nodeType":"YulBlock","src":"2472:43:66","statements":[{"nodeType":"YulAssignment","src":"2486:19:66","value":{"name":"position","nodeType":"YulIdentifier","src":"2497:8:66"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"2486:7:66"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":43421,"isOffset":false,"isSlot":true,"src":"2486:7:66","suffix":"slot","valueSize":1},{"declaration":43424,"isOffset":false,"isSlot":false,"src":"2497:8:66","valueSize":1}],"id":43427,"nodeType":"InlineAssembly","src":"2463:52:66"},{"expression":{"id":43428,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2531:2:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage storage pointer"}},"functionReturnParameters":43422,"id":43429,"nodeType":"Return","src":"2524:9:66"}]},"documentation":{"id":43417,"nodeType":"StructuredDocumentation","src":"2245:32:66","text":"@notice get the storage slot"},"implemented":true,"kind":"function","modifiers":[],"name":"pausableStorage","nameLocation":"2291:15:66","parameters":{"id":43418,"nodeType":"ParameterList","parameters":[],"src":"2306:2:66"},"returnParameters":{"id":43422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43421,"mutability":"mutable","name":"ds","nameLocation":"2355:2:66","nodeType":"VariableDeclaration","scope":43431,"src":"2331:26:66","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"},"typeName":{"id":43420,"nodeType":"UserDefinedTypeName","pathNode":{"id":43419,"name":"PausableStorage","nameLocations":["2331:15:66"],"nodeType":"IdentifierPath","referencedDeclaration":43302,"src":"2331:15:66"},"referencedDeclaration":43302,"src":"2331:15:66","typeDescriptions":{"typeIdentifier":"t_struct$_PausableStorage_$43302_storage_ptr","typeString":"struct Pausable.PausableStorage"}},"visibility":"internal"}],"src":"2330:28:66"},"scope":43432,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"Pausable","contractDependencies":[],"contractKind":"contract","documentation":{"id":43294,"nodeType":"StructuredDocumentation","src":"71:107:66","text":"@title Pausable Library\n @notice Abstract contract that enables contract to pause marked operations"},"fullyImplemented":true,"linearizedBaseContracts":[43432],"name":"Pausable","nameLocation":"196:8:66","scope":43433,"usedErrors":[43315,43318]}],"license":"MIT OR Apache-2.0"},"id":66} \ No newline at end of file diff --git a/.out/LibQuorum.sol/LibQuorum.json b/.out/LibQuorum.sol/LibQuorum.json index 66519b9f5..3efbbadb3 100644 --- a/.out/LibQuorum.sol/LibQuorum.json +++ b/.out/LibQuorum.sol/LibQuorum.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"QuorumReached","inputs":[{"name":"objKind","type":"uint8","indexed":false,"internalType":"enum QuorumObjKind"},{"name":"height","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"objHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"quorumWeight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"QuorumWeightUpdated","inputs":[{"name":"objKind","type":"uint8","indexed":false,"internalType":"enum QuorumObjKind"},{"name":"height","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"objHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"newWeight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461001a576104519081610020823930815050f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c6308a6ad251461002857600080fd5b604036600319011261038057608081610042600093610385565b8281528260208201528260408201528260608201520152602435600052600260043501602052604060002060ff60046040519261007e84610385565b8054845260018101546020850152600281015460408501526003810154606085015201541615156080820152602435600052600560043501602052604060002090604051908182602085549283815201809560005260206000209260005b8181106103675750506100f1925003836103b7565b8151906100fd826103d9565b9161010b60405193846103b7565b808352610117816103d9565b60005b601f198201811061035657505060005b81811061023657505060405192608060e08501928051865260208101516020870152604081015160408701526060810151606087015201511515608085015260e060a0850152518091526101008301939060005b8181106102175750505081830360c0830152805180845260208401906020808260051b8701019301916000955b8287106101b85785850386f35b90919293601f19828203018352845180519081835260005b82811061020257505060208083836000838096600198010152601f8019910116010196019301960195909291926101ab565b806020809284010151828287010152016101d0565b82516001600160a01b031686526020958601959092019160010161017e565b6024356000908152600435600601602052604090206001600160a01b0361025d83886103f1565b51166000526020526040600020604051906000908054908160011c91600181161561034c575b602083106001821614610336578285526001811690811561030f57506001146102d5575b5050906102b9816001949303826103b7565b6102c382876103f1565b526102ce81866103f1565b500161012a565b6000908152602081209092505b8183106102f957505081016020016102b9826102a7565b60018160209254838688010152019201916102e2565b60ff191660208087019190915292151560051b850190920192506102b991508390506102a7565b634e487b7160e01b600052602260045260246000fd5b91607f1691610283565b80606060208093880101520161011a565b84548352600194850194879450602090930192016100dc565b600080fd5b60a0810190811067ffffffffffffffff8211176103a157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176103a157604052565b67ffffffffffffffff81116103a15760051b60200190565b80518210156104055760209160051b010190565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220e9a3da461d53dcd3f3e3ba81d02d9a9cce2b47c4e4379b3b0460bfad481bbeb064736f6c63430008130033","sourceMap":"633:7463:62:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c6308a6ad251461002857600080fd5b604036600319011261038057608081610042600093610385565b8281528260208201528260408201528260608201520152602435600052600260043501602052604060002060ff60046040519261007e84610385565b8054845260018101546020850152600281015460408501526003810154606085015201541615156080820152602435600052600560043501602052604060002090604051908182602085549283815201809560005260206000209260005b8181106103675750506100f1925003836103b7565b8151906100fd826103d9565b9161010b60405193846103b7565b808352610117816103d9565b60005b601f198201811061035657505060005b81811061023657505060405192608060e08501928051865260208101516020870152604081015160408701526060810151606087015201511515608085015260e060a0850152518091526101008301939060005b8181106102175750505081830360c0830152805180845260208401906020808260051b8701019301916000955b8287106101b85785850386f35b90919293601f19828203018352845180519081835260005b82811061020257505060208083836000838096600198010152601f8019910116010196019301960195909291926101ab565b806020809284010151828287010152016101d0565b82516001600160a01b031686526020958601959092019160010161017e565b6024356000908152600435600601602052604090206001600160a01b0361025d83886103f1565b51166000526020526040600020604051906000908054908160011c91600181161561034c575b602083106001821614610336578285526001811690811561030f57506001146102d5575b5050906102b9816001949303826103b7565b6102c382876103f1565b526102ce81866103f1565b500161012a565b6000908152602081209092505b8183106102f957505081016020016102b9826102a7565b60018160209254838688010152019201916102e2565b60ff191660208087019190915292151560051b850190920192506102b991508390506102a7565b634e487b7160e01b600052602260045260246000fd5b91607f1691610283565b80606060208093880101520161011a565b84548352600194850194879450602090930192016100dc565b600080fd5b60a0810190811067ffffffffffffffff8211176103a157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176103a157604052565b67ffffffffffffffff81116103a15760051b60200190565b80518210156104055760209160051b010190565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220e9a3da461d53dcd3f3e3ba81d02d9a9cce2b47c4e4379b3b0460bfad481bbeb064736f6c63430008130033","sourceMap":"633:7463:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;633:7463:62;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;7704:15;633:7463;;7704:15;633:7463;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7704:15;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;7746:27;633:7463;;7746:27;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;633:7463:62;;;;;;7879:9;;633:7463;7890:5;;;;;;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7746:27;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;633:7463:62;;;;;;;;;;;;;;;;7879:9;633:7463;;;;;;;;7929:21;;633:7463;;;;;-1:-1:-1;;;;;7954:14:62;;;;:::i;:::-;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;7879:9;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7913:56;;;;:::i;:::-;;;;;;:::i;:::-;;633:7463;7879:9;;633:7463;;;;;;;;;;-1:-1:-1;633:7463:62;;;;;;-1:-1:-1;;633:7463:62;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;633:7463:62;;;;;;;;;;;;7746:27;633:7463;;;;;;;-1:-1:-1;633:7463:62;;-1:-1:-1;633:7463:62;;-1:-1:-1;633:7463:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;633:7463:62;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"getSignatureBundle(QuorumMap storage,uint256)":"08a6ad25"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum QuorumObjKind\",\"name\":\"objKind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"objHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quorumWeight\",\"type\":\"uint256\"}],\"name\":\"QuorumReached\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum QuorumObjKind\",\"name\":\"objKind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"objHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWeight\",\"type\":\"uint256\"}],\"name\":\"QuorumWeightUpdated\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getSignatureBundle(QuorumMap storage,uint256)\":{\"notice\":\"get quorum signature bundle consisting of the info, signatories and the corresponding signatures.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibQuorum.sol\":\"LibQuorum\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"enum QuorumObjKind","name":"objKind","type":"uint8","indexed":false},{"internalType":"uint256","name":"height","type":"uint256","indexed":false},{"internalType":"bytes32","name":"objHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"quorumWeight","type":"uint256","indexed":false}],"type":"event","name":"QuorumReached","anonymous":false},{"inputs":[{"internalType":"enum QuorumObjKind","name":"objKind","type":"uint8","indexed":false},{"internalType":"uint256","name":"height","type":"uint256","indexed":false},{"internalType":"bytes32","name":"objHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"newWeight","type":"uint256","indexed":false}],"type":"event","name":"QuorumWeightUpdated","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getSignatureBundle(QuorumMap storage,uint256)":{"notice":"get quorum signature bundle consisting of the info, signatories and the corresponding signatures."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibQuorum.sol":"LibQuorum"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibQuorum.sol","id":43250,"exportedSymbols":{"ECDSA":[33096],"EnumerableSet":[35386],"FailedAddIncompleteQuorum":[36962],"FailedAddSignatory":[36964],"FailedRemoveIncompleteQuorum":[36966],"InvalidRetentionHeight":[37000],"InvalidSignature":[37002],"LibQuorum":[43249],"MerkleProof":[33631],"NotAuthorized":[37026],"QuorumAlreadyProcessed":[36952],"QuorumInfo":[48506],"QuorumMap":[48537],"QuorumObjKind":[48490],"SignatureReplay":[37070],"ZeroMembershipWeight":[37080]},"nodeType":"SourceUnit","src":"46:8051:62","nodes":[{"id":42735,"nodeType":"PragmaDirective","src":"46:23:62","nodes":[],"literals":["solidity","0.8",".19"]},{"id":42739,"nodeType":"ImportDirective","src":"71:75:62","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":43250,"sourceUnit":48538,"symbolAliases":[{"foreign":{"id":42736,"name":"QuorumMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48537,"src":"79:9:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42737,"name":"QuorumInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48506,"src":"90:10:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42738,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48490,"src":"102:13:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42749,"nodeType":"ImportDirective","src":"147:236:62","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":43250,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":42740,"name":"InvalidRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37000,"src":"155:22:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42741,"name":"QuorumAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36952,"src":"179:22:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42742,"name":"FailedAddSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36964,"src":"203:18:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42743,"name":"InvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37002,"src":"223:16:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42744,"name":"SignatureReplay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37070,"src":"241:15:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42745,"name":"NotAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37026,"src":"258:13:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42746,"name":"FailedRemoveIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36966,"src":"273:28:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42747,"name":"ZeroMembershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37080,"src":"303:20:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":42748,"name":"FailedAddIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36962,"src":"325:25:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42751,"nodeType":"ImportDirective","src":"384:86:62","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol","file":"openzeppelin-contracts/utils/cryptography/MerkleProof.sol","nameLocation":"-1:-1:-1","scope":43250,"sourceUnit":33632,"symbolAliases":[{"foreign":{"id":42750,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33631,"src":"392:11:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42753,"nodeType":"ImportDirective","src":"471:74:62","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"openzeppelin-contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":43250,"sourceUnit":33097,"symbolAliases":[{"foreign":{"id":42752,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33096,"src":"479:5:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42755,"nodeType":"ImportDirective","src":"546:85:62","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":43250,"sourceUnit":35387,"symbolAliases":[{"foreign":{"id":42754,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35386,"src":"554:13:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43249,"nodeType":"ContractDefinition","src":"633:7463:62","nodes":[{"id":42759,"nodeType":"UsingForDirective","src":"657:46:62","nodes":[],"global":false,"libraryName":{"id":42756,"name":"EnumerableSet","nameLocations":["663:13:62"],"nodeType":"IdentifierPath","referencedDeclaration":35386,"src":"663:13:62"},"typeName":{"id":42758,"nodeType":"UserDefinedTypeName","pathNode":{"id":42757,"name":"EnumerableSet.UintSet","nameLocations":["681:13:62","695:7:62"],"nodeType":"IdentifierPath","referencedDeclaration":35256,"src":"681:21:62"},"referencedDeclaration":35256,"src":"681:21:62","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"id":42763,"nodeType":"UsingForDirective","src":"708:49:62","nodes":[],"global":false,"libraryName":{"id":42760,"name":"EnumerableSet","nameLocations":["714:13:62"],"nodeType":"IdentifierPath","referencedDeclaration":35386,"src":"714:13:62"},"typeName":{"id":42762,"nodeType":"UserDefinedTypeName","pathNode":{"id":42761,"name":"EnumerableSet.AddressSet","nameLocations":["732:13:62","746:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"732:24:62"},"referencedDeclaration":35099,"src":"732:24:62","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":42774,"nodeType":"EventDefinition","src":"763:98:62","nodes":[],"anonymous":false,"eventSelector":"c08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494","name":"QuorumReached","nameLocation":"769:13:62","parameters":{"id":42773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42766,"indexed":false,"mutability":"mutable","name":"objKind","nameLocation":"797:7:62","nodeType":"VariableDeclaration","scope":42774,"src":"783:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"},"typeName":{"id":42765,"nodeType":"UserDefinedTypeName","pathNode":{"id":42764,"name":"QuorumObjKind","nameLocations":["783:13:62"],"nodeType":"IdentifierPath","referencedDeclaration":48490,"src":"783:13:62"},"referencedDeclaration":48490,"src":"783:13:62","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"}},"visibility":"internal"},{"constant":false,"id":42768,"indexed":false,"mutability":"mutable","name":"height","nameLocation":"814:6:62","nodeType":"VariableDeclaration","scope":42774,"src":"806:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42767,"name":"uint256","nodeType":"ElementaryTypeName","src":"806:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42770,"indexed":false,"mutability":"mutable","name":"objHash","nameLocation":"830:7:62","nodeType":"VariableDeclaration","scope":42774,"src":"822:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42769,"name":"bytes32","nodeType":"ElementaryTypeName","src":"822:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":42772,"indexed":false,"mutability":"mutable","name":"quorumWeight","nameLocation":"847:12:62","nodeType":"VariableDeclaration","scope":42774,"src":"839:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42771,"name":"uint256","nodeType":"ElementaryTypeName","src":"839:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"782:78:62"}},{"id":42785,"nodeType":"EventDefinition","src":"866:101:62","nodes":[],"anonymous":false,"eventSelector":"103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc","name":"QuorumWeightUpdated","nameLocation":"872:19:62","parameters":{"id":42784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42777,"indexed":false,"mutability":"mutable","name":"objKind","nameLocation":"906:7:62","nodeType":"VariableDeclaration","scope":42785,"src":"892:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"},"typeName":{"id":42776,"nodeType":"UserDefinedTypeName","pathNode":{"id":42775,"name":"QuorumObjKind","nameLocations":["892:13:62"],"nodeType":"IdentifierPath","referencedDeclaration":48490,"src":"892:13:62"},"referencedDeclaration":48490,"src":"892:13:62","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"}},"visibility":"internal"},{"constant":false,"id":42779,"indexed":false,"mutability":"mutable","name":"height","nameLocation":"923:6:62","nodeType":"VariableDeclaration","scope":42785,"src":"915:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42778,"name":"uint256","nodeType":"ElementaryTypeName","src":"915:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42781,"indexed":false,"mutability":"mutable","name":"objHash","nameLocation":"939:7:62","nodeType":"VariableDeclaration","scope":42785,"src":"931:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"931:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":42783,"indexed":false,"mutability":"mutable","name":"newWeight","nameLocation":"956:9:62","nodeType":"VariableDeclaration","scope":42785,"src":"948:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42782,"name":"uint256","nodeType":"ElementaryTypeName","src":"948:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"891:75:62"}},{"id":42965,"nodeType":"FunctionDefinition","src":"1539:2472:62","nodes":[],"body":{"id":42964,"nodeType":"Block","src":"1736:2275:62","nodes":[],"statements":[{"assignments":[42803],"declarations":[{"constant":false,"id":42803,"mutability":"mutable","name":"info","nameLocation":"1803:4:62","nodeType":"VariableDeclaration","scope":42964,"src":"1784:23:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":42802,"nodeType":"UserDefinedTypeName","pathNode":{"id":42801,"name":"QuorumInfo","nameLocations":["1784:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":48506,"src":"1784:10:62"},"referencedDeclaration":48506,"src":"1784:10:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"id":42808,"initialValue":{"baseExpression":{"expression":{"id":42804,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42789,"src":"1810:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":42805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1815:10:62","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":48519,"src":"1810:15:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$48506_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":42807,"indexExpression":{"id":42806,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42791,"src":"1826:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1810:23:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage","typeString":"struct QuorumInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1784:49:62"},{"assignments":[42810,42813,null],"declarations":[{"constant":false,"id":42810,"mutability":"mutable","name":"recoveredSignatory","nameLocation":"1904:18:62","nodeType":"VariableDeclaration","scope":42964,"src":"1896:26:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42809,"name":"address","nodeType":"ElementaryTypeName","src":"1896:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42813,"mutability":"mutable","name":"err","nameLocation":"1943:3:62","nodeType":"VariableDeclaration","scope":42964,"src":"1924:22:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":42812,"nodeType":"UserDefinedTypeName","pathNode":{"id":42811,"name":"ECDSA.RecoverError","nameLocations":["1924:5:62","1930:12:62"],"nodeType":"IdentifierPath","referencedDeclaration":32693,"src":"1924:18:62"},"referencedDeclaration":32693,"src":"1924:18:62","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},null],"id":42820,"initialValue":{"arguments":[{"expression":{"id":42816,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42803,"src":"1969:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":42817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1974:4:62","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":48493,"src":"1969:9:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":42818,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42798,"src":"1980:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":42814,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33096,"src":"1952:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33096_$","typeString":"type(library ECDSA)"}},"id":42815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1958:10:62","memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":32807,"src":"1952:16:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":42819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1952:38:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$32693_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"1895:95:62"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"},"id":42825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42821,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42813,"src":"2004:3:62","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":42822,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33096,"src":"2011:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33096_$","typeString":"type(library ECDSA)"}},"id":42823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2017:12:62","memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":32693,"src":"2011:18:62","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$32693_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":42824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2030:7:62","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":32689,"src":"2011:26:62","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$32693","typeString":"enum ECDSA.RecoverError"}},"src":"2004:33:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42830,"nodeType":"IfStatement","src":"2000:89:62","trueBody":{"id":42829,"nodeType":"Block","src":"2039:50:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42826,"name":"InvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37002,"src":"2060:16:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2060:18:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42828,"nodeType":"RevertStatement","src":"2053:25:62"}]}},{"condition":{"arguments":[{"id":42836,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42810,"src":"2222:18:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"id":42831,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42789,"src":"2177:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":42832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2182:22:62","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":48529,"src":"2177:27:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":42834,"indexExpression":{"id":42833,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42791,"src":"2205:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2177:35:62","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":42835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2213:8:62","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":35180,"src":"2177:44:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35099_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":42837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2177:64:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42842,"nodeType":"IfStatement","src":"2173:119:62","trueBody":{"id":42841,"nodeType":"Block","src":"2243:49:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42838,"name":"SignatureReplay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37070,"src":"2264:15:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2264:17:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42840,"nodeType":"RevertStatement","src":"2257:24:62"}]}},{"assignments":[42844],"declarations":[{"constant":false,"id":42844,"mutability":"mutable","name":"validatorLeaf","nameLocation":"2499:13:62","nodeType":"VariableDeclaration","scope":42964,"src":"2491:21:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2491:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42858,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":42852,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42810,"src":"2559:18:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":42853,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42796,"src":"2579:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":42850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2548:3:62","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":42851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2552:6:62","memberName":"encode","nodeType":"MemberAccess","src":"2548:10:62","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":42854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2548:38:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42849,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2538:9:62","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":42855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2538:49:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":42847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2525:5:62","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":42846,"name":"bytes","nodeType":"ElementaryTypeName","src":"2525:5:62","typeDescriptions":{}}},"id":42848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2531:6:62","memberName":"concat","nodeType":"MemberAccess","src":"2525:12:62","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":42856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2525:63:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":42845,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2515:9:62","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":42857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2515:74:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2491:98:62"},{"assignments":[42860],"declarations":[{"constant":false,"id":42860,"mutability":"mutable","name":"valid","nameLocation":"2604:5:62","nodeType":"VariableDeclaration","scope":42964,"src":"2599:10:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42859,"name":"bool","nodeType":"ElementaryTypeName","src":"2599:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":42868,"initialValue":{"arguments":[{"id":42863,"name":"membershipProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42794,"src":"2639:15:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"expression":{"id":42864,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42803,"src":"2662:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":42865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2667:8:62","memberName":"rootHash","nodeType":"MemberAccess","referencedDeclaration":48496,"src":"2662:13:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":42866,"name":"validatorLeaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42844,"src":"2683:13:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":42861,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33631,"src":"2612:11:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MerkleProof_$33631_$","typeString":"type(library MerkleProof)"}},"id":42862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2624:6:62","memberName":"verify","nodeType":"MemberAccess","referencedDeclaration":33123,"src":"2612:18:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32[] memory,bytes32,bytes32) pure returns (bool)"}},"id":42867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2632:5:62","2656:4:62","2677:4:62"],"names":["proof","root","leaf"],"nodeType":"FunctionCall","src":"2612:86:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2599:99:62"},{"condition":{"id":42870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2712:6:62","subExpression":{"id":42869,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42860,"src":"2713:5:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42876,"nodeType":"IfStatement","src":"2708:77:62","trueBody":{"id":42875,"nodeType":"Block","src":"2720:65:62","statements":[{"errorCall":{"arguments":[{"id":42872,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42810,"src":"2755:18:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":42871,"name":"NotAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37026,"src":"2741:13:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":42873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2741:33:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42874,"nodeType":"RevertStatement","src":"2734:40:62"}]}},{"assignments":[42878],"declarations":[{"constant":false,"id":42878,"mutability":"mutable","name":"ok","nameLocation":"2880:2:62","nodeType":"VariableDeclaration","scope":42964,"src":"2875:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42877,"name":"bool","nodeType":"ElementaryTypeName","src":"2875:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":42886,"initialValue":{"arguments":[{"id":42884,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42810,"src":"2925:18:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"id":42879,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42789,"src":"2885:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":42880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2890:22:62","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":48529,"src":"2885:27:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":42882,"indexExpression":{"id":42881,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42791,"src":"2913:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2885:35:62","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":42883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2921:3:62","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35126,"src":"2885:39:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35099_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":42885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2885:59:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2875:69:62"},{"condition":{"id":42888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2958:3:62","subExpression":{"id":42887,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42878,"src":"2959:2:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42893,"nodeType":"IfStatement","src":"2954:61:62","trueBody":{"id":42892,"nodeType":"Block","src":"2963:52:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42889,"name":"FailedAddSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36964,"src":"2984:18:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2984:20:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42891,"nodeType":"RevertStatement","src":"2977:27:62"}]}},{"expression":{"id":42902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":42894,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42789,"src":"3024:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":42898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3029:16:62","memberName":"quorumSignatures","nodeType":"MemberAccess","referencedDeclaration":48536,"src":"3024:21:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes storage ref))"}},"id":42899,"indexExpression":{"id":42896,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42791,"src":"3046:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3024:29:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes storage ref)"}},"id":42900,"indexExpression":{"id":42897,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42810,"src":"3054:18:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3024:49:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":42901,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42798,"src":"3076:9:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3024:61:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":42903,"nodeType":"ExpressionStatement","src":"3024:61:62"},{"expression":{"id":42908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42904,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42803,"src":"3095:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":42906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3100:13:62","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":48502,"src":"3095:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":42907,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42796,"src":"3117:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3095:28:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":42909,"nodeType":"ExpressionStatement","src":"3095:28:62"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":42910,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42803,"src":"3138:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":42911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3143:13:62","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":48502,"src":"3138:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":42912,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42803,"src":"3160:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":42913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3165:9:62","memberName":"threshold","nodeType":"MemberAccess","referencedDeclaration":48499,"src":"3160:14:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3138:36:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42963,"nodeType":"IfStatement","src":"3134:871:62","trueBody":{"id":42962,"nodeType":"Block","src":"3176:829:62","statements":[{"condition":{"id":42917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3194:13:62","subExpression":{"expression":{"id":42915,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42803,"src":"3195:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":42916,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3200:7:62","memberName":"reached","nodeType":"MemberAccess","referencedDeclaration":48505,"src":"3195:12:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":42960,"nodeType":"Block","src":"3742:253:62","statements":[{"eventCall":{"arguments":[{"expression":{"id":42951,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42789,"src":"3816:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":42952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3821:13:62","memberName":"quorumObjKind","nodeType":"MemberAccess","referencedDeclaration":48510,"src":"3816:18:62","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"}},{"id":42953,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42791,"src":"3864:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":42954,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42803,"src":"3901:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":42955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3906:4:62","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":48493,"src":"3901:9:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":42956,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42803,"src":"3943:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":42957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3948:13:62","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":48502,"src":"3943:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42950,"name":"QuorumWeightUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42785,"src":"3765:19:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_QuorumObjKind_$48490_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (enum QuorumObjKind,uint256,bytes32,uint256)"}},"id":42958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3807:7:62","3856:6:62","3892:7:62","3932:9:62"],"names":["objKind","height","objHash","newWeight"],"nodeType":"FunctionCall","src":"3765:215:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42959,"nodeType":"EmitStatement","src":"3760:220:62"}]},"id":42961,"nodeType":"IfStatement","src":"3190:805:62","trueBody":{"id":42949,"nodeType":"Block","src":"3209:527:62","statements":[{"expression":{"id":42922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":42918,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42803,"src":"3227:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":42920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3232:7:62","memberName":"reached","nodeType":"MemberAccess","referencedDeclaration":48505,"src":"3227:12:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":42921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3242:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3227:19:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42923,"nodeType":"ExpressionStatement","src":"3227:19:62"},{"expression":{"id":42930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":42924,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42878,"src":"3340:2:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":42928,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42791,"src":"3375:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":42925,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42789,"src":"3345:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":42926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3350:17:62","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":48523,"src":"3345:22:62","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":42927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3368:6:62","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":35298,"src":"3345:29:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$35256_storage_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_UintSet_$35256_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":42929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3345:37:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3340:42:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42931,"nodeType":"ExpressionStatement","src":"3340:42:62"},{"condition":{"id":42933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3404:3:62","subExpression":{"id":42932,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42878,"src":"3405:2:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42938,"nodeType":"IfStatement","src":"3400:87:62","trueBody":{"id":42937,"nodeType":"Block","src":"3409:78:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42934,"name":"FailedRemoveIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36966,"src":"3438:28:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3438:30:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42936,"nodeType":"RevertStatement","src":"3431:37:62"}]}},{"eventCall":{"arguments":[{"expression":{"id":42940,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42789,"src":"3554:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":42941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3559:13:62","memberName":"quorumObjKind","nodeType":"MemberAccess","referencedDeclaration":48510,"src":"3554:18:62","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"}},{"id":42942,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42791,"src":"3602:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":42943,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42803,"src":"3639:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":42944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3644:4:62","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":48493,"src":"3639:9:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":42945,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42803,"src":"3684:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":42946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3689:13:62","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":48502,"src":"3684:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":42939,"name":"QuorumReached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42774,"src":"3509:13:62","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_QuorumObjKind_$48490_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (enum QuorumObjKind,uint256,bytes32,uint256)"}},"id":42947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3545:7:62","3594:6:62","3630:7:62","3670:12:62"],"names":["objKind","height","objHash","quorumWeight"],"nodeType":"FunctionCall","src":"3509:212:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42948,"nodeType":"EmitStatement","src":"3504:217:62"}]}}]}}]},"documentation":{"id":42786,"nodeType":"StructuredDocumentation","src":"973:561:62","text":"@notice checks whether the provided quorum signature for the block at height `height` is valid and accumulates that it\n @dev If adding the signature leads to reaching the threshold, then the info is removed from `incompleteQuorums`\n @param height - the height of the block in the checkpoint\n @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight`\n @param weight - the weight of the validator\n @param signature - the signature of the object we are agreen on"},"implemented":true,"kind":"function","modifiers":[],"name":"addQuorumSignature","nameLocation":"1548:18:62","parameters":{"id":42799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42789,"mutability":"mutable","name":"self","nameLocation":"1594:4:62","nodeType":"VariableDeclaration","scope":42965,"src":"1576:22:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":42788,"nodeType":"UserDefinedTypeName","pathNode":{"id":42787,"name":"QuorumMap","nameLocations":["1576:9:62"],"nodeType":"IdentifierPath","referencedDeclaration":48537,"src":"1576:9:62"},"referencedDeclaration":48537,"src":"1576:9:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":42791,"mutability":"mutable","name":"height","nameLocation":"1616:6:62","nodeType":"VariableDeclaration","scope":42965,"src":"1608:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42790,"name":"uint256","nodeType":"ElementaryTypeName","src":"1608:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42794,"mutability":"mutable","name":"membershipProof","nameLocation":"1649:15:62","nodeType":"VariableDeclaration","scope":42965,"src":"1632:32:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":42792,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1632:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":42793,"nodeType":"ArrayTypeName","src":"1632:9:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":42796,"mutability":"mutable","name":"weight","nameLocation":"1682:6:62","nodeType":"VariableDeclaration","scope":42965,"src":"1674:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42795,"name":"uint256","nodeType":"ElementaryTypeName","src":"1674:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42798,"mutability":"mutable","name":"signature","nameLocation":"1711:9:62","nodeType":"VariableDeclaration","scope":42965,"src":"1698:22:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":42797,"name":"bytes","nodeType":"ElementaryTypeName","src":"1698:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1566:160:62"},"returnParameters":{"id":42800,"nodeType":"ParameterList","parameters":[],"src":"1736:0:62"},"scope":43249,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43041,"nodeType":"FunctionDefinition","src":"4454:976:62","nodes":[],"body":{"id":43040,"nodeType":"Block","src":"4685:745:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42982,"name":"objHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42971,"src":"4699:9:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":42983,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42969,"src":"4711:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":42984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4716:15:62","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":48513,"src":"4711:20:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4699:32:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42990,"nodeType":"IfStatement","src":"4695:94:62","trueBody":{"id":42989,"nodeType":"Block","src":"4733:56:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42986,"name":"QuorumAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36952,"src":"4754:22:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4754:24:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42988,"nodeType":"RevertStatement","src":"4747:31:62"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":42993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":42991,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42977,"src":"4803:16:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":42992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4823:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4803:21:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":42998,"nodeType":"IfStatement","src":"4799:81:62","trueBody":{"id":42997,"nodeType":"Block","src":"4826:54:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":42994,"name":"ZeroMembershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37080,"src":"4847:20:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":42995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:22:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42996,"nodeType":"RevertStatement","src":"4840:29:62"}]}},{"assignments":[43000],"declarations":[{"constant":false,"id":43000,"mutability":"mutable","name":"threshold","nameLocation":"4898:9:62","nodeType":"VariableDeclaration","scope":43040,"src":"4890:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42999,"name":"uint256","nodeType":"ElementaryTypeName","src":"4890:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43005,"initialValue":{"arguments":[{"id":43002,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42977,"src":"4923:16:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43003,"name":"majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42979,"src":"4941:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43001,"name":"weightNeeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43170,"src":"4910:12:62","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":43004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4910:50:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4890:70:62"},{"assignments":[43007],"declarations":[{"constant":false,"id":43007,"mutability":"mutable","name":"ok","nameLocation":"5010:2:62","nodeType":"VariableDeclaration","scope":43040,"src":"5005:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43006,"name":"bool","nodeType":"ElementaryTypeName","src":"5005:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":43013,"initialValue":{"arguments":[{"id":43011,"name":"objHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42971,"src":"5042:9:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":43008,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42969,"src":"5015:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5020:17:62","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":48523,"src":"5015:22:62","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":43010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5038:3:62","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35277,"src":"5015:26:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$35256_storage_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_UintSet_$35256_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":43012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5015:37:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"5005:47:62"},{"condition":{"id":43015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5066:3:62","subExpression":{"id":43014,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43007,"src":"5067:2:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43020,"nodeType":"IfStatement","src":"5062:68:62","trueBody":{"id":43019,"nodeType":"Block","src":"5071:59:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43016,"name":"FailedAddIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36962,"src":"5092:25:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5092:27:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43018,"nodeType":"RevertStatement","src":"5085:34:62"}]}},{"assignments":[43023],"declarations":[{"constant":false,"id":43023,"mutability":"mutable","name":"info","nameLocation":"5158:4:62","nodeType":"VariableDeclaration","scope":43040,"src":"5140:22:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":43022,"nodeType":"UserDefinedTypeName","pathNode":{"id":43021,"name":"QuorumInfo","nameLocations":["5140:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":48506,"src":"5140:10:62"},"referencedDeclaration":48506,"src":"5140:10:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"id":43031,"initialValue":{"arguments":[{"id":43025,"name":"objHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42973,"src":"5196:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":43026,"name":"membershipRootHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42975,"src":"5227:18:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":43027,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43000,"src":"5270:9:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":43028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5308:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"66616c7365","id":43029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5332:5:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":43024,"name":"QuorumInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48506,"src":"5165:10:62","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_QuorumInfo_$48506_storage_ptr_$","typeString":"type(struct QuorumInfo storage pointer)"}},"id":43030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5190:4:62","5217:8:62","5259:9:62","5293:13:62","5323:7:62"],"names":["hash","rootHash","threshold","currentWeight","reached"],"nodeType":"FunctionCall","src":"5165:183:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_memory_ptr","typeString":"struct QuorumInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"5140:208:62"},{"expression":{"id":43038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":43032,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42969,"src":"5390:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5395:10:62","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":48519,"src":"5390:15:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$48506_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":43036,"indexExpression":{"id":43034,"name":"objHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42971,"src":"5406:9:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5390:26:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage","typeString":"struct QuorumInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43037,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43023,"src":"5419:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_memory_ptr","typeString":"struct QuorumInfo memory"}},"src":"5390:33:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage","typeString":"struct QuorumInfo storage ref"}},"id":43039,"nodeType":"ExpressionStatement","src":"5390:33:62"}]},"documentation":{"id":42966,"nodeType":"StructuredDocumentation","src":"4017:432:62","text":"@notice creates the quorum info from a quorum object.\n @param objHeight - height of the quorum object\n @param objHash - hash of the object\n @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight\n @param membershipWeight - the total weight of the membership\n @param majorityPercentage - the majorityPercentage required to reach quorum"},"implemented":true,"kind":"function","modifiers":[],"name":"createQuorumInfo","nameLocation":"4463:16:62","parameters":{"id":42980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42969,"mutability":"mutable","name":"self","nameLocation":"4507:4:62","nodeType":"VariableDeclaration","scope":43041,"src":"4489:22:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":42968,"nodeType":"UserDefinedTypeName","pathNode":{"id":42967,"name":"QuorumMap","nameLocations":["4489:9:62"],"nodeType":"IdentifierPath","referencedDeclaration":48537,"src":"4489:9:62"},"referencedDeclaration":48537,"src":"4489:9:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":42971,"mutability":"mutable","name":"objHeight","nameLocation":"4529:9:62","nodeType":"VariableDeclaration","scope":43041,"src":"4521:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42970,"name":"uint256","nodeType":"ElementaryTypeName","src":"4521:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42973,"mutability":"mutable","name":"objHash","nameLocation":"4556:7:62","nodeType":"VariableDeclaration","scope":43041,"src":"4548:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42972,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4548:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":42975,"mutability":"mutable","name":"membershipRootHash","nameLocation":"4581:18:62","nodeType":"VariableDeclaration","scope":43041,"src":"4573:26:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42974,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4573:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":42977,"mutability":"mutable","name":"membershipWeight","nameLocation":"4617:16:62","nodeType":"VariableDeclaration","scope":43041,"src":"4609:24:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42976,"name":"uint256","nodeType":"ElementaryTypeName","src":"4609:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42979,"mutability":"mutable","name":"majorityPercentage","nameLocation":"4651:18:62","nodeType":"VariableDeclaration","scope":43041,"src":"4643:26:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42978,"name":"uint256","nodeType":"ElementaryTypeName","src":"4643:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4479:196:62"},"returnParameters":{"id":42981,"nodeType":"ParameterList","parameters":[],"src":"4685:0:62"},"scope":43249,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43134,"nodeType":"FunctionDefinition","src":"5907:864:62","nodes":[],"body":{"id":43133,"nodeType":"Block","src":"5990:781:62","nodes":[],"statements":[{"assignments":[43051],"declarations":[{"constant":false,"id":43051,"mutability":"mutable","name":"oldRetentionHeight","nameLocation":"6009:18:62","nodeType":"VariableDeclaration","scope":43133,"src":"6001:26:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43050,"name":"uint256","nodeType":"ElementaryTypeName","src":"6001:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43054,"initialValue":{"expression":{"id":43052,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43045,"src":"6030:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6035:15:62","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":48513,"src":"6030:20:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6001:49:62"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43055,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43047,"src":"6065:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43056,"name":"oldRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43051,"src":"6087:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6065:40:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43062,"nodeType":"IfStatement","src":"6061:102:62","trueBody":{"id":43061,"nodeType":"Block","src":"6107:56:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43058,"name":"InvalidRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37000,"src":"6128:22:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6128:24:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43060,"nodeType":"RevertStatement","src":"6121:31:62"}]}},{"body":{"id":43125,"nodeType":"Block","src":"6236:477:62","statements":[{"expression":{"id":43074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6250:25:62","subExpression":{"baseExpression":{"expression":{"id":43070,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43045,"src":"6257:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6262:10:62","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":48519,"src":"6257:15:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$48506_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":43073,"indexExpression":{"id":43072,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43064,"src":"6273:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6257:18:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage","typeString":"struct QuorumInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43075,"nodeType":"ExpressionStatement","src":"6250:25:62"},{"expression":{"id":43080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6289:37:62","subExpression":{"baseExpression":{"expression":{"id":43076,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43045,"src":"6296:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6301:22:62","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":48529,"src":"6296:27:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43079,"indexExpression":{"id":43078,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43064,"src":"6324:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6296:30:62","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43081,"nodeType":"ExpressionStatement","src":"6289:37:62"},{"assignments":[43086],"declarations":[{"constant":false,"id":43086,"mutability":"mutable","name":"validators","nameLocation":"6358:10:62","nodeType":"VariableDeclaration","scope":43125,"src":"6341:27:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43084,"name":"address","nodeType":"ElementaryTypeName","src":"6341:7:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43085,"nodeType":"ArrayTypeName","src":"6341:9:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":43093,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":43087,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43045,"src":"6371:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6376:22:62","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":48529,"src":"6371:27:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43090,"indexExpression":{"id":43089,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43064,"src":"6399:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6371:30:62","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":43091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6402:6:62","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35252,"src":"6371:37:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35099_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":43092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6371:39:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6341:69:62"},{"assignments":[43095],"declarations":[{"constant":false,"id":43095,"mutability":"mutable","name":"n","nameLocation":"6432:1:62","nodeType":"VariableDeclaration","scope":43125,"src":"6424:9:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43094,"name":"uint256","nodeType":"ElementaryTypeName","src":"6424:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43098,"initialValue":{"expression":{"id":43096,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43086,"src":"6436:10:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6447:6:62","memberName":"length","nodeType":"MemberAccess","src":"6436:17:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6424:29:62"},{"body":{"id":43119,"nodeType":"Block","src":"6493:150:62","statements":[{"expression":{"id":43113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6511:46:62","subExpression":{"baseExpression":{"baseExpression":{"expression":{"id":43105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43045,"src":"6518:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6523:16:62","memberName":"quorumSignatures","nodeType":"MemberAccess","referencedDeclaration":48536,"src":"6518:21:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes storage ref))"}},"id":43108,"indexExpression":{"id":43107,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43064,"src":"6540:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6518:24:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes storage ref)"}},"id":43112,"indexExpression":{"baseExpression":{"id":43109,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43086,"src":"6543:10:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43111,"indexExpression":{"id":43110,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43100,"src":"6554:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6543:13:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6518:39:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43114,"nodeType":"ExpressionStatement","src":"6511:46:62"},{"id":43118,"nodeType":"UncheckedBlock","src":"6575:54:62","statements":[{"expression":{"id":43116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6607:3:62","subExpression":{"id":43115,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43100,"src":"6609:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43117,"nodeType":"ExpressionStatement","src":"6607:3:62"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43102,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43100,"src":"6484:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43103,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43095,"src":"6488:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6484:5:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43120,"initializationExpression":{"assignments":[43100],"declarations":[{"constant":false,"id":43100,"mutability":"mutable","name":"i","nameLocation":"6481:1:62","nodeType":"VariableDeclaration","scope":43120,"src":"6473:9:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43099,"name":"uint256","nodeType":"ElementaryTypeName","src":"6473:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43101,"nodeType":"VariableDeclarationStatement","src":"6473:9:62"},"nodeType":"ForStatement","src":"6468:175:62"},{"id":43124,"nodeType":"UncheckedBlock","src":"6657:46:62","statements":[{"expression":{"id":43122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6685:3:62","subExpression":{"id":43121,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43064,"src":"6687:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43123,"nodeType":"ExpressionStatement","src":"6685:3:62"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43067,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43064,"src":"6210:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43068,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43047,"src":"6214:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6210:22:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43126,"initializationExpression":{"assignments":[43064],"declarations":[{"constant":false,"id":43064,"mutability":"mutable","name":"h","nameLocation":"6186:1:62","nodeType":"VariableDeclaration","scope":43126,"src":"6178:9:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43063,"name":"uint256","nodeType":"ElementaryTypeName","src":"6178:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43066,"initialValue":{"id":43065,"name":"oldRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43051,"src":"6190:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6178:30:62"},"nodeType":"ForStatement","src":"6173:540:62"},{"expression":{"id":43131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43127,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43045,"src":"6723:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6728:15:62","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":48513,"src":"6723:20:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43130,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43047,"src":"6746:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6723:41:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43132,"nodeType":"ExpressionStatement","src":"6723:41:62"}]},"documentation":{"id":43042,"nodeType":"StructuredDocumentation","src":"5436:466:62","text":"@notice Set a new retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)\n @dev `retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing.\n All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.\n @param newRetentionHeight - the height of the oldest checkpoint to keep"},"implemented":true,"kind":"function","modifiers":[],"name":"pruneQuorums","nameLocation":"5916:12:62","parameters":{"id":43048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43045,"mutability":"mutable","name":"self","nameLocation":"5947:4:62","nodeType":"VariableDeclaration","scope":43134,"src":"5929:22:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43044,"nodeType":"UserDefinedTypeName","pathNode":{"id":43043,"name":"QuorumMap","nameLocations":["5929:9:62"],"nodeType":"IdentifierPath","referencedDeclaration":48537,"src":"5929:9:62"},"referencedDeclaration":48537,"src":"5929:9:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43047,"mutability":"mutable","name":"newRetentionHeight","nameLocation":"5961:18:62","nodeType":"VariableDeclaration","scope":43134,"src":"5953:26:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43046,"name":"uint256","nodeType":"ElementaryTypeName","src":"5953:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5928:52:62"},"returnParameters":{"id":43049,"nodeType":"ParameterList","parameters":[],"src":"5990:0:62"},"scope":43249,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43152,"nodeType":"FunctionDefinition","src":"6777:217:62","nodes":[],"body":{"id":43151,"nodeType":"Block","src":"6887:107:62","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43142,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43139,"src":"6901:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":43143,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43137,"src":"6910:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6915:15:62","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":48513,"src":"6910:20:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6901:29:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43150,"nodeType":"IfStatement","src":"6897:91:62","trueBody":{"id":43149,"nodeType":"Block","src":"6932:56:62","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43146,"name":"QuorumAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36952,"src":"6953:22:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6953:24:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43148,"nodeType":"RevertStatement","src":"6946:31:62"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"isHeightAlreadyProcessed","nameLocation":"6786:24:62","parameters":{"id":43140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43137,"mutability":"mutable","name":"self","nameLocation":"6838:4:62","nodeType":"VariableDeclaration","scope":43152,"src":"6820:22:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43136,"nodeType":"UserDefinedTypeName","pathNode":{"id":43135,"name":"QuorumMap","nameLocations":["6820:9:62"],"nodeType":"IdentifierPath","referencedDeclaration":48537,"src":"6820:9:62"},"referencedDeclaration":48537,"src":"6820:9:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43139,"mutability":"mutable","name":"height","nameLocation":"6860:6:62","nodeType":"VariableDeclaration","scope":43152,"src":"6852:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43138,"name":"uint256","nodeType":"ElementaryTypeName","src":"6852:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6810:62:62"},"returnParameters":{"id":43141,"nodeType":"ParameterList","parameters":[],"src":"6887:0:62"},"scope":43249,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43170,"nodeType":"FunctionDefinition","src":"7146:157:62","nodes":[],"body":{"id":43169,"nodeType":"Block","src":"7244:59:62","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43162,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43155,"src":"7262:6:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":43163,"name":"majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43157,"src":"7271:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7262:27:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":43165,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7261:29:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":43166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7293:3:62","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"7261:35:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":43161,"id":43168,"nodeType":"Return","src":"7254:42:62"}]},"documentation":{"id":43153,"nodeType":"StructuredDocumentation","src":"7000:141:62","text":"@notice returns the needed weight value corresponding to the majority percentage\n @dev `majorityPercentage` must be a valid number"},"implemented":true,"kind":"function","modifiers":[],"name":"weightNeeded","nameLocation":"7155:12:62","parameters":{"id":43158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43155,"mutability":"mutable","name":"weight","nameLocation":"7176:6:62","nodeType":"VariableDeclaration","scope":43170,"src":"7168:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43154,"name":"uint256","nodeType":"ElementaryTypeName","src":"7168:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43157,"mutability":"mutable","name":"majorityPercentage","nameLocation":"7192:18:62","nodeType":"VariableDeclaration","scope":43170,"src":"7184:26:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43156,"name":"uint256","nodeType":"ElementaryTypeName","src":"7184:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7167:44:62"},"returnParameters":{"id":43161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43160,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43170,"src":"7235:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43159,"name":"uint256","nodeType":"ElementaryTypeName","src":"7235:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7234:9:62"},"scope":43249,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43248,"nodeType":"FunctionDefinition","src":"7424:670:62","nodes":[],"body":{"id":43247,"nodeType":"Block","src":"7687:407:62","nodes":[],"statements":[{"expression":{"id":43193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43188,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43180,"src":"7697:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_memory_ptr","typeString":"struct QuorumInfo memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":43189,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43174,"src":"7704:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7709:10:62","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":48519,"src":"7704:15:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$48506_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":43192,"indexExpression":{"id":43191,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43176,"src":"7720:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7704:18:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage","typeString":"struct QuorumInfo storage ref"}},"src":"7697:25:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_memory_ptr","typeString":"struct QuorumInfo memory"}},"id":43194,"nodeType":"ExpressionStatement","src":"7697:25:62"},{"expression":{"id":43202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43195,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43183,"src":"7732:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":43196,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43174,"src":"7746:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7751:22:62","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":48529,"src":"7746:27:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43199,"indexExpression":{"id":43198,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43176,"src":"7774:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7746:30:62","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":43200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7777:6:62","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35252,"src":"7746:37:62","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35099_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":43201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7746:39:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"7732:53:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43203,"nodeType":"ExpressionStatement","src":"7732:53:62"},{"assignments":[43205],"declarations":[{"constant":false,"id":43205,"mutability":"mutable","name":"n","nameLocation":"7803:1:62","nodeType":"VariableDeclaration","scope":43247,"src":"7795:9:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43204,"name":"uint256","nodeType":"ElementaryTypeName","src":"7795:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43208,"initialValue":{"expression":{"id":43206,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43183,"src":"7807:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7819:6:62","memberName":"length","nodeType":"MemberAccess","src":"7807:18:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7795:30:62"},{"expression":{"id":43215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43209,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43186,"src":"7836:10:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43213,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43205,"src":"7861:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7849:11:62","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":43210,"name":"bytes","nodeType":"ElementaryTypeName","src":"7853:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":43211,"nodeType":"ArrayTypeName","src":"7853:7:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":43214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7849:14:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"7836:27:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":43216,"nodeType":"ExpressionStatement","src":"7836:27:62"},{"body":{"id":43240,"nodeType":"Block","src":"7899:140:62","statements":[{"expression":{"id":43234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":43223,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43186,"src":"7913:10:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":43225,"indexExpression":{"id":43224,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43218,"src":"7924:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7913:13:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":43226,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43174,"src":"7929:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7934:16:62","memberName":"quorumSignatures","nodeType":"MemberAccess","referencedDeclaration":48536,"src":"7929:21:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes storage ref))"}},"id":43229,"indexExpression":{"id":43228,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43176,"src":"7951:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7929:24:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes storage ref)"}},"id":43233,"indexExpression":{"baseExpression":{"id":43230,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43183,"src":"7954:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43232,"indexExpression":{"id":43231,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43218,"src":"7966:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7954:14:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7929:40:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"7913:56:62","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":43235,"nodeType":"ExpressionStatement","src":"7913:56:62"},{"id":43239,"nodeType":"UncheckedBlock","src":"7983:46:62","statements":[{"expression":{"id":43237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8011:3:62","subExpression":{"id":43236,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43218,"src":"8013:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43238,"nodeType":"ExpressionStatement","src":"8011:3:62"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43220,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43218,"src":"7890:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43221,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43205,"src":"7894:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7890:5:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43241,"initializationExpression":{"assignments":[43218],"declarations":[{"constant":false,"id":43218,"mutability":"mutable","name":"i","nameLocation":"7887:1:62","nodeType":"VariableDeclaration","scope":43241,"src":"7879:9:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43217,"name":"uint256","nodeType":"ElementaryTypeName","src":"7879:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43219,"nodeType":"VariableDeclarationStatement","src":"7879:9:62"},"nodeType":"ForStatement","src":"7874:165:62"},{"expression":{"components":[{"id":43242,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43180,"src":"8057:4:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":43243,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43183,"src":"8063:11:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":43244,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43186,"src":"8076:10:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":43245,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8056:31:62","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$48506_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"functionReturnParameters":43187,"id":43246,"nodeType":"Return","src":"8049:38:62"}]},"documentation":{"id":43171,"nodeType":"StructuredDocumentation","src":"7310:109:62","text":"@notice get quorum signature bundle consisting of the info, signatories and the corresponding signatures."},"functionSelector":"08a6ad25","implemented":true,"kind":"function","modifiers":[],"name":"getSignatureBundle","nameLocation":"7433:18:62","parameters":{"id":43177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43174,"mutability":"mutable","name":"self","nameLocation":"7479:4:62","nodeType":"VariableDeclaration","scope":43248,"src":"7461:22:62","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43173,"nodeType":"UserDefinedTypeName","pathNode":{"id":43172,"name":"QuorumMap","nameLocations":["7461:9:62"],"nodeType":"IdentifierPath","referencedDeclaration":48537,"src":"7461:9:62"},"referencedDeclaration":48537,"src":"7461:9:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$48537_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43176,"mutability":"mutable","name":"h","nameLocation":"7501:1:62","nodeType":"VariableDeclaration","scope":43248,"src":"7493:9:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43175,"name":"uint256","nodeType":"ElementaryTypeName","src":"7493:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7451:57:62"},"returnParameters":{"id":43187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43180,"mutability":"mutable","name":"info","nameLocation":"7587:4:62","nodeType":"VariableDeclaration","scope":43248,"src":"7569:22:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":43179,"nodeType":"UserDefinedTypeName","pathNode":{"id":43178,"name":"QuorumInfo","nameLocations":["7569:10:62"],"nodeType":"IdentifierPath","referencedDeclaration":48506,"src":"7569:10:62"},"referencedDeclaration":48506,"src":"7569:10:62","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"},{"constant":false,"id":43183,"mutability":"mutable","name":"signatories","nameLocation":"7622:11:62","nodeType":"VariableDeclaration","scope":43248,"src":"7605:28:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43181,"name":"address","nodeType":"ElementaryTypeName","src":"7605:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43182,"nodeType":"ArrayTypeName","src":"7605:9:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":43186,"mutability":"mutable","name":"signatures","nameLocation":"7662:10:62","nodeType":"VariableDeclaration","scope":43248,"src":"7647:25:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":43184,"name":"bytes","nodeType":"ElementaryTypeName","src":"7647:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":43185,"nodeType":"ArrayTypeName","src":"7647:7:62","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"7555:127:62"},"scope":43249,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"LibQuorum","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[43249],"name":"LibQuorum","nameLocation":"641:9:62","scope":43250,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":62} \ No newline at end of file +{"abi":[{"type":"event","name":"QuorumReached","inputs":[{"name":"objKind","type":"uint8","indexed":false,"internalType":"enum QuorumObjKind"},{"name":"height","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"objHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"quorumWeight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"QuorumWeightUpdated","inputs":[{"name":"objKind","type":"uint8","indexed":false,"internalType":"enum QuorumObjKind"},{"name":"height","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"objHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"newWeight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080806040523461001a576104519081610020823930815050f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c6308a6ad251461002857600080fd5b604036600319011261038057608081610042600093610385565b8281528260208201528260408201528260608201520152602435600052600260043501602052604060002060ff60046040519261007e84610385565b8054845260018101546020850152600281015460408501526003810154606085015201541615156080820152602435600052600560043501602052604060002090604051908182602085549283815201809560005260206000209260005b8181106103675750506100f1925003836103b7565b8151906100fd826103d9565b9161010b60405193846103b7565b808352610117816103d9565b60005b601f198201811061035657505060005b81811061023657505060405192608060e08501928051865260208101516020870152604081015160408701526060810151606087015201511515608085015260e060a0850152518091526101008301939060005b8181106102175750505081830360c0830152805180845260208401906020808260051b8701019301916000955b8287106101b85785850386f35b90919293601f19828203018352845180519081835260005b82811061020257505060208083836000838096600198010152601f8019910116010196019301960195909291926101ab565b806020809284010151828287010152016101d0565b82516001600160a01b031686526020958601959092019160010161017e565b6024356000908152600435600601602052604090206001600160a01b0361025d83886103f1565b51166000526020526040600020604051906000908054908160011c91600181161561034c575b602083106001821614610336578285526001811690811561030f57506001146102d5575b5050906102b9816001949303826103b7565b6102c382876103f1565b526102ce81866103f1565b500161012a565b6000908152602081209092505b8183106102f957505081016020016102b9826102a7565b60018160209254838688010152019201916102e2565b60ff191660208087019190915292151560051b850190920192506102b991508390506102a7565b634e487b7160e01b600052602260045260246000fd5b91607f1691610283565b80606060208093880101520161011a565b84548352600194850194879450602090930192016100dc565b600080fd5b60a0810190811067ffffffffffffffff8211176103a157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176103a157604052565b67ffffffffffffffff81116103a15760051b60200190565b80518210156104055760209160051b010190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212209ed2f9ce15a873f1f365bbc4e26fc3aa06f06555dff574f2541a76689361b5e964736f6c63430008130033","sourceMap":"633:7463:67:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b60003560e01c6308a6ad251461002857600080fd5b604036600319011261038057608081610042600093610385565b8281528260208201528260408201528260608201520152602435600052600260043501602052604060002060ff60046040519261007e84610385565b8054845260018101546020850152600281015460408501526003810154606085015201541615156080820152602435600052600560043501602052604060002090604051908182602085549283815201809560005260206000209260005b8181106103675750506100f1925003836103b7565b8151906100fd826103d9565b9161010b60405193846103b7565b808352610117816103d9565b60005b601f198201811061035657505060005b81811061023657505060405192608060e08501928051865260208101516020870152604081015160408701526060810151606087015201511515608085015260e060a0850152518091526101008301939060005b8181106102175750505081830360c0830152805180845260208401906020808260051b8701019301916000955b8287106101b85785850386f35b90919293601f19828203018352845180519081835260005b82811061020257505060208083836000838096600198010152601f8019910116010196019301960195909291926101ab565b806020809284010151828287010152016101d0565b82516001600160a01b031686526020958601959092019160010161017e565b6024356000908152600435600601602052604090206001600160a01b0361025d83886103f1565b51166000526020526040600020604051906000908054908160011c91600181161561034c575b602083106001821614610336578285526001811690811561030f57506001146102d5575b5050906102b9816001949303826103b7565b6102c382876103f1565b526102ce81866103f1565b500161012a565b6000908152602081209092505b8183106102f957505081016020016102b9826102a7565b60018160209254838688010152019201916102e2565b60ff191660208087019190915292151560051b850190920192506102b991508390506102a7565b634e487b7160e01b600052602260045260246000fd5b91607f1691610283565b80606060208093880101520161011a565b84548352600194850194879450602090930192016100dc565b600080fd5b60a0810190811067ffffffffffffffff8211176103a157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176103a157604052565b67ffffffffffffffff81116103a15760051b60200190565b80518210156104055760209160051b010190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212209ed2f9ce15a873f1f365bbc4e26fc3aa06f06555dff574f2541a76689361b5e964736f6c63430008130033","sourceMap":"633:7463:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;633:7463:67;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;7704:15;633:7463;;7704:15;633:7463;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7704:15;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;7746:27;633:7463;;7746:27;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;633:7463:67;;;;;;7879:9;;633:7463;7890:5;;;;;;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7746:27;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;633:7463:67;;;;;;;;;;;;;;;;7879:9;633:7463;;;;;;;;7929:21;;633:7463;;;;;-1:-1:-1;;;;;7954:14:67;;;;:::i;:::-;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;7879:9;633:7463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7913:56;;;;:::i;:::-;;;;;;:::i;:::-;;633:7463;7879:9;;633:7463;;;;;;;;;;-1:-1:-1;633:7463:67;;;;;;-1:-1:-1;;633:7463:67;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;633:7463:67;;;;;;;;;;;;7746:27;633:7463;;;;;;;-1:-1:-1;633:7463:67;;-1:-1:-1;633:7463:67;;-1:-1:-1;633:7463:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;633:7463:67;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"getSignatureBundle(QuorumMap storage,uint256)":"08a6ad25"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum QuorumObjKind\",\"name\":\"objKind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"objHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quorumWeight\",\"type\":\"uint256\"}],\"name\":\"QuorumReached\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum QuorumObjKind\",\"name\":\"objKind\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"objHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newWeight\",\"type\":\"uint256\"}],\"name\":\"QuorumWeightUpdated\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getSignatureBundle(QuorumMap storage,uint256)\":{\"notice\":\"get quorum signature bundle consisting of the info, signatories and the corresponding signatures.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibQuorum.sol\":\"LibQuorum\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/lib/LibQuorum.sol\":{\"keccak256\":\"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc\",\"dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"enum QuorumObjKind","name":"objKind","type":"uint8","indexed":false},{"internalType":"uint256","name":"height","type":"uint256","indexed":false},{"internalType":"bytes32","name":"objHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"quorumWeight","type":"uint256","indexed":false}],"type":"event","name":"QuorumReached","anonymous":false},{"inputs":[{"internalType":"enum QuorumObjKind","name":"objKind","type":"uint8","indexed":false},{"internalType":"uint256","name":"height","type":"uint256","indexed":false},{"internalType":"bytes32","name":"objHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"newWeight","type":"uint256","indexed":false}],"type":"event","name":"QuorumWeightUpdated","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getSignatureBundle(QuorumMap storage,uint256)":{"notice":"get quorum signature bundle consisting of the info, signatories and the corresponding signatures."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibQuorum.sol":"LibQuorum"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/lib/LibQuorum.sol":{"keccak256":"0x877c15f98a4b3dd1543d3210ec89aeafa455998cf484ca8bfba8c1557b65eba0","urls":["bzz-raw://528bcc4dc2eee0a3e7bf5420880c811c19e2d948d82c0d8bbd208bdedb0cd2dc","dweb:/ipfs/QmYpQu4zmNb9xfi8Q9W2pGRMhyMqTf3FzL8GB5xZR9kThK"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibQuorum.sol","id":43949,"exportedSymbols":{"ECDSA":[33525],"EnumerableSet":[35815],"FailedAddIncompleteQuorum":[37394],"FailedAddSignatory":[37396],"FailedRemoveIncompleteQuorum":[37398],"InvalidRetentionHeight":[37432],"InvalidSignature":[37434],"LibQuorum":[43948],"MerkleProof":[34060],"NotAuthorized":[37458],"QuorumAlreadyProcessed":[37384],"QuorumInfo":[50028],"QuorumMap":[50059],"QuorumObjKind":[50012],"SignatureReplay":[37502],"ZeroMembershipWeight":[37512]},"nodeType":"SourceUnit","src":"46:8051:67","nodes":[{"id":43434,"nodeType":"PragmaDirective","src":"46:23:67","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43438,"nodeType":"ImportDirective","src":"71:75:67","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":43949,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":43435,"name":"QuorumMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50059,"src":"79:9:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43436,"name":"QuorumInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50028,"src":"90:10:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43437,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"102:13:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43448,"nodeType":"ImportDirective","src":"147:236:67","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":43949,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":43439,"name":"InvalidRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37432,"src":"155:22:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43440,"name":"QuorumAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37384,"src":"179:22:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43441,"name":"FailedAddSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37396,"src":"203:18:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43442,"name":"InvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37434,"src":"223:16:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43443,"name":"SignatureReplay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37502,"src":"241:15:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43444,"name":"NotAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37458,"src":"258:13:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43445,"name":"FailedRemoveIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37398,"src":"273:28:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43446,"name":"ZeroMembershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37512,"src":"303:20:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43447,"name":"FailedAddIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37394,"src":"325:25:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43450,"nodeType":"ImportDirective","src":"384:86:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol","file":"openzeppelin-contracts/utils/cryptography/MerkleProof.sol","nameLocation":"-1:-1:-1","scope":43949,"sourceUnit":34061,"symbolAliases":[{"foreign":{"id":43449,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34060,"src":"392:11:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43452,"nodeType":"ImportDirective","src":"471:74:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"openzeppelin-contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":43949,"sourceUnit":33526,"symbolAliases":[{"foreign":{"id":43451,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"479:5:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43454,"nodeType":"ImportDirective","src":"546:85:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":43949,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":43453,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"554:13:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43948,"nodeType":"ContractDefinition","src":"633:7463:67","nodes":[{"id":43458,"nodeType":"UsingForDirective","src":"657:46:67","nodes":[],"global":false,"libraryName":{"id":43455,"name":"EnumerableSet","nameLocations":["663:13:67"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"663:13:67"},"typeName":{"id":43457,"nodeType":"UserDefinedTypeName","pathNode":{"id":43456,"name":"EnumerableSet.UintSet","nameLocations":["681:13:67","695:7:67"],"nodeType":"IdentifierPath","referencedDeclaration":35685,"src":"681:21:67"},"referencedDeclaration":35685,"src":"681:21:67","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"id":43462,"nodeType":"UsingForDirective","src":"708:49:67","nodes":[],"global":false,"libraryName":{"id":43459,"name":"EnumerableSet","nameLocations":["714:13:67"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"714:13:67"},"typeName":{"id":43461,"nodeType":"UserDefinedTypeName","pathNode":{"id":43460,"name":"EnumerableSet.AddressSet","nameLocations":["732:13:67","746:10:67"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"732:24:67"},"referencedDeclaration":35528,"src":"732:24:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":43473,"nodeType":"EventDefinition","src":"763:98:67","nodes":[],"anonymous":false,"eventSelector":"c08568b61a3224ac0d48121f065552f2f645d3777d353bd87291108bc3651494","name":"QuorumReached","nameLocation":"769:13:67","parameters":{"id":43472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43465,"indexed":false,"mutability":"mutable","name":"objKind","nameLocation":"797:7:67","nodeType":"VariableDeclaration","scope":43473,"src":"783:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},"typeName":{"id":43464,"nodeType":"UserDefinedTypeName","pathNode":{"id":43463,"name":"QuorumObjKind","nameLocations":["783:13:67"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"783:13:67"},"referencedDeclaration":50012,"src":"783:13:67","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"visibility":"internal"},{"constant":false,"id":43467,"indexed":false,"mutability":"mutable","name":"height","nameLocation":"814:6:67","nodeType":"VariableDeclaration","scope":43473,"src":"806:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43466,"name":"uint256","nodeType":"ElementaryTypeName","src":"806:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43469,"indexed":false,"mutability":"mutable","name":"objHash","nameLocation":"830:7:67","nodeType":"VariableDeclaration","scope":43473,"src":"822:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43468,"name":"bytes32","nodeType":"ElementaryTypeName","src":"822:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43471,"indexed":false,"mutability":"mutable","name":"quorumWeight","nameLocation":"847:12:67","nodeType":"VariableDeclaration","scope":43473,"src":"839:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43470,"name":"uint256","nodeType":"ElementaryTypeName","src":"839:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"782:78:67"}},{"id":43484,"nodeType":"EventDefinition","src":"866:101:67","nodes":[],"anonymous":false,"eventSelector":"103355808c87614c31e835c1a86487b17b1e54cf36e0ac4469c8d1e892239cbc","name":"QuorumWeightUpdated","nameLocation":"872:19:67","parameters":{"id":43483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43476,"indexed":false,"mutability":"mutable","name":"objKind","nameLocation":"906:7:67","nodeType":"VariableDeclaration","scope":43484,"src":"892:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},"typeName":{"id":43475,"nodeType":"UserDefinedTypeName","pathNode":{"id":43474,"name":"QuorumObjKind","nameLocations":["892:13:67"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"892:13:67"},"referencedDeclaration":50012,"src":"892:13:67","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"visibility":"internal"},{"constant":false,"id":43478,"indexed":false,"mutability":"mutable","name":"height","nameLocation":"923:6:67","nodeType":"VariableDeclaration","scope":43484,"src":"915:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43477,"name":"uint256","nodeType":"ElementaryTypeName","src":"915:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43480,"indexed":false,"mutability":"mutable","name":"objHash","nameLocation":"939:7:67","nodeType":"VariableDeclaration","scope":43484,"src":"931:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43479,"name":"bytes32","nodeType":"ElementaryTypeName","src":"931:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43482,"indexed":false,"mutability":"mutable","name":"newWeight","nameLocation":"956:9:67","nodeType":"VariableDeclaration","scope":43484,"src":"948:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43481,"name":"uint256","nodeType":"ElementaryTypeName","src":"948:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"891:75:67"}},{"id":43664,"nodeType":"FunctionDefinition","src":"1539:2472:67","nodes":[],"body":{"id":43663,"nodeType":"Block","src":"1736:2275:67","nodes":[],"statements":[{"assignments":[43502],"declarations":[{"constant":false,"id":43502,"mutability":"mutable","name":"info","nameLocation":"1803:4:67","nodeType":"VariableDeclaration","scope":43663,"src":"1784:23:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":43501,"nodeType":"UserDefinedTypeName","pathNode":{"id":43500,"name":"QuorumInfo","nameLocations":["1784:10:67"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"1784:10:67"},"referencedDeclaration":50028,"src":"1784:10:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"id":43507,"initialValue":{"baseExpression":{"expression":{"id":43503,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"1810:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1815:10:67","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"1810:15:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":43506,"indexExpression":{"id":43505,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43490,"src":"1826:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1810:23:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1784:49:67"},{"assignments":[43509,43512,null],"declarations":[{"constant":false,"id":43509,"mutability":"mutable","name":"recoveredSignatory","nameLocation":"1904:18:67","nodeType":"VariableDeclaration","scope":43663,"src":"1896:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43508,"name":"address","nodeType":"ElementaryTypeName","src":"1896:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43512,"mutability":"mutable","name":"err","nameLocation":"1943:3:67","nodeType":"VariableDeclaration","scope":43663,"src":"1924:22:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":43511,"nodeType":"UserDefinedTypeName","pathNode":{"id":43510,"name":"ECDSA.RecoverError","nameLocations":["1924:5:67","1930:12:67"],"nodeType":"IdentifierPath","referencedDeclaration":33122,"src":"1924:18:67"},"referencedDeclaration":33122,"src":"1924:18:67","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},null],"id":43519,"initialValue":{"arguments":[{"expression":{"id":43515,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"1969:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1974:4:67","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":50015,"src":"1969:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":43517,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43497,"src":"1980:9:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":43513,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"1952:5:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33525_$","typeString":"type(library ECDSA)"}},"id":43514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1958:10:67","memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":33236,"src":"1952:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":43518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1952:38:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$33122_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"1895:95:67"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"},"id":43524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43520,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43512,"src":"2004:3:67","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":43521,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33525,"src":"2011:5:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$33525_$","typeString":"type(library ECDSA)"}},"id":43522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2017:12:67","memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":33122,"src":"2011:18:67","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$33122_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":43523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2030:7:67","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":33118,"src":"2011:26:67","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$33122","typeString":"enum ECDSA.RecoverError"}},"src":"2004:33:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43529,"nodeType":"IfStatement","src":"2000:89:67","trueBody":{"id":43528,"nodeType":"Block","src":"2039:50:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43525,"name":"InvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37434,"src":"2060:16:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2060:18:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43527,"nodeType":"RevertStatement","src":"2053:25:67"}]}},{"condition":{"arguments":[{"id":43535,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43509,"src":"2222:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"id":43530,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"2177:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2182:22:67","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":50051,"src":"2177:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43533,"indexExpression":{"id":43532,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43490,"src":"2205:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2177:35:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":43534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2213:8:67","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":35609,"src":"2177:44:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":43536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2177:64:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43541,"nodeType":"IfStatement","src":"2173:119:67","trueBody":{"id":43540,"nodeType":"Block","src":"2243:49:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43537,"name":"SignatureReplay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37502,"src":"2264:15:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2264:17:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43539,"nodeType":"RevertStatement","src":"2257:24:67"}]}},{"assignments":[43543],"declarations":[{"constant":false,"id":43543,"mutability":"mutable","name":"validatorLeaf","nameLocation":"2499:13:67","nodeType":"VariableDeclaration","scope":43663,"src":"2491:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2491:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43557,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":43551,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43509,"src":"2559:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43552,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43495,"src":"2579:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":43549,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2548:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":43550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2552:6:67","memberName":"encode","nodeType":"MemberAccess","src":"2548:10:67","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":43553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2548:38:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43548,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2538:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":43554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2538:49:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":43546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2525:5:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":43545,"name":"bytes","nodeType":"ElementaryTypeName","src":"2525:5:67","typeDescriptions":{}}},"id":43547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2531:6:67","memberName":"concat","nodeType":"MemberAccess","src":"2525:12:67","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":43555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2525:63:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":43544,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2515:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":43556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2515:74:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2491:98:67"},{"assignments":[43559],"declarations":[{"constant":false,"id":43559,"mutability":"mutable","name":"valid","nameLocation":"2604:5:67","nodeType":"VariableDeclaration","scope":43663,"src":"2599:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43558,"name":"bool","nodeType":"ElementaryTypeName","src":"2599:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":43567,"initialValue":{"arguments":[{"id":43562,"name":"membershipProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43493,"src":"2639:15:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"expression":{"id":43563,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"2662:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2667:8:67","memberName":"rootHash","nodeType":"MemberAccess","referencedDeclaration":50018,"src":"2662:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":43565,"name":"validatorLeaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43543,"src":"2683:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":43560,"name":"MerkleProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34060,"src":"2612:11:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MerkleProof_$34060_$","typeString":"type(library MerkleProof)"}},"id":43561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2624:6:67","memberName":"verify","nodeType":"MemberAccess","referencedDeclaration":33552,"src":"2612:18:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32[] memory,bytes32,bytes32) pure returns (bool)"}},"id":43566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2632:5:67","2656:4:67","2677:4:67"],"names":["proof","root","leaf"],"nodeType":"FunctionCall","src":"2612:86:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2599:99:67"},{"condition":{"id":43569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2712:6:67","subExpression":{"id":43568,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43559,"src":"2713:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43575,"nodeType":"IfStatement","src":"2708:77:67","trueBody":{"id":43574,"nodeType":"Block","src":"2720:65:67","statements":[{"errorCall":{"arguments":[{"id":43571,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43509,"src":"2755:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43570,"name":"NotAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37458,"src":"2741:13:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":43572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2741:33:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43573,"nodeType":"RevertStatement","src":"2734:40:67"}]}},{"assignments":[43577],"declarations":[{"constant":false,"id":43577,"mutability":"mutable","name":"ok","nameLocation":"2880:2:67","nodeType":"VariableDeclaration","scope":43663,"src":"2875:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43576,"name":"bool","nodeType":"ElementaryTypeName","src":"2875:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":43585,"initialValue":{"arguments":[{"id":43583,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43509,"src":"2925:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"id":43578,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"2885:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2890:22:67","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":50051,"src":"2885:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43581,"indexExpression":{"id":43580,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43490,"src":"2913:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2885:35:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":43582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2921:3:67","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"2885:39:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":43584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2885:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2875:69:67"},{"condition":{"id":43587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2958:3:67","subExpression":{"id":43586,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43577,"src":"2959:2:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43592,"nodeType":"IfStatement","src":"2954:61:67","trueBody":{"id":43591,"nodeType":"Block","src":"2963:52:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43588,"name":"FailedAddSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37396,"src":"2984:18:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2984:20:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43590,"nodeType":"RevertStatement","src":"2977:27:67"}]}},{"expression":{"id":43601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":43593,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"3024:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3029:16:67","memberName":"quorumSignatures","nodeType":"MemberAccess","referencedDeclaration":50058,"src":"3024:21:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes storage ref))"}},"id":43598,"indexExpression":{"id":43595,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43490,"src":"3046:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3024:29:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes storage ref)"}},"id":43599,"indexExpression":{"id":43596,"name":"recoveredSignatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43509,"src":"3054:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3024:49:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43600,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43497,"src":"3076:9:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3024:61:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":43602,"nodeType":"ExpressionStatement","src":"3024:61:67"},{"expression":{"id":43607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43603,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3095:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3100:13:67","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":50024,"src":"3095:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":43606,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43495,"src":"3117:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3095:28:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43608,"nodeType":"ExpressionStatement","src":"3095:28:67"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43609,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3138:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3143:13:67","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":50024,"src":"3138:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":43611,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3160:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3165:9:67","memberName":"threshold","nodeType":"MemberAccess","referencedDeclaration":50021,"src":"3160:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3138:36:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43662,"nodeType":"IfStatement","src":"3134:871:67","trueBody":{"id":43661,"nodeType":"Block","src":"3176:829:67","statements":[{"condition":{"id":43616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3194:13:67","subExpression":{"expression":{"id":43614,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3195:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3200:7:67","memberName":"reached","nodeType":"MemberAccess","referencedDeclaration":50027,"src":"3195:12:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43659,"nodeType":"Block","src":"3742:253:67","statements":[{"eventCall":{"arguments":[{"expression":{"id":43650,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"3816:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3821:13:67","memberName":"quorumObjKind","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"3816:18:67","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},{"id":43652,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43490,"src":"3864:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":43653,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3901:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3906:4:67","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":50015,"src":"3901:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":43655,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3943:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3948:13:67","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":50024,"src":"3943:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43649,"name":"QuorumWeightUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43484,"src":"3765:19:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_QuorumObjKind_$50012_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (enum QuorumObjKind,uint256,bytes32,uint256)"}},"id":43657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3807:7:67","3856:6:67","3892:7:67","3932:9:67"],"names":["objKind","height","objHash","newWeight"],"nodeType":"FunctionCall","src":"3765:215:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43658,"nodeType":"EmitStatement","src":"3760:220:67"}]},"id":43660,"nodeType":"IfStatement","src":"3190:805:67","trueBody":{"id":43648,"nodeType":"Block","src":"3209:527:67","statements":[{"expression":{"id":43621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43617,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3227:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43619,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3232:7:67","memberName":"reached","nodeType":"MemberAccess","referencedDeclaration":50027,"src":"3227:12:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":43620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3242:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3227:19:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43622,"nodeType":"ExpressionStatement","src":"3227:19:67"},{"expression":{"id":43629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43623,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43577,"src":"3340:2:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43627,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43490,"src":"3375:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":43624,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"3345:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3350:17:67","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":50045,"src":"3345:22:67","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":43626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3368:6:67","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":35727,"src":"3345:29:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$35685_storage_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":43628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3345:37:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3340:42:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43630,"nodeType":"ExpressionStatement","src":"3340:42:67"},{"condition":{"id":43632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3404:3:67","subExpression":{"id":43631,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43577,"src":"3405:2:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43637,"nodeType":"IfStatement","src":"3400:87:67","trueBody":{"id":43636,"nodeType":"Block","src":"3409:78:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43633,"name":"FailedRemoveIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37398,"src":"3438:28:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3438:30:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43635,"nodeType":"RevertStatement","src":"3431:37:67"}]}},{"eventCall":{"arguments":[{"expression":{"id":43639,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"3554:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3559:13:67","memberName":"quorumObjKind","nodeType":"MemberAccess","referencedDeclaration":50032,"src":"3554:18:67","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},{"id":43641,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43490,"src":"3602:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":43642,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3639:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3644:4:67","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":50015,"src":"3639:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":43644,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43502,"src":"3684:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo storage pointer"}},"id":43645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3689:13:67","memberName":"currentWeight","nodeType":"MemberAccess","referencedDeclaration":50024,"src":"3684:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43638,"name":"QuorumReached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43473,"src":"3509:13:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_QuorumObjKind_$50012_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (enum QuorumObjKind,uint256,bytes32,uint256)"}},"id":43646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3545:7:67","3594:6:67","3630:7:67","3670:12:67"],"names":["objKind","height","objHash","quorumWeight"],"nodeType":"FunctionCall","src":"3509:212:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43647,"nodeType":"EmitStatement","src":"3504:217:67"}]}}]}}]},"documentation":{"id":43485,"nodeType":"StructuredDocumentation","src":"973:561:67","text":"@notice checks whether the provided quorum signature for the block at height `height` is valid and accumulates that it\n @dev If adding the signature leads to reaching the threshold, then the info is removed from `incompleteQuorums`\n @param height - the height of the block in the checkpoint\n @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight`\n @param weight - the weight of the validator\n @param signature - the signature of the object we are agreen on"},"implemented":true,"kind":"function","modifiers":[],"name":"addQuorumSignature","nameLocation":"1548:18:67","parameters":{"id":43498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43488,"mutability":"mutable","name":"self","nameLocation":"1594:4:67","nodeType":"VariableDeclaration","scope":43664,"src":"1576:22:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43487,"nodeType":"UserDefinedTypeName","pathNode":{"id":43486,"name":"QuorumMap","nameLocations":["1576:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"1576:9:67"},"referencedDeclaration":50059,"src":"1576:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43490,"mutability":"mutable","name":"height","nameLocation":"1616:6:67","nodeType":"VariableDeclaration","scope":43664,"src":"1608:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43489,"name":"uint256","nodeType":"ElementaryTypeName","src":"1608:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43493,"mutability":"mutable","name":"membershipProof","nameLocation":"1649:15:67","nodeType":"VariableDeclaration","scope":43664,"src":"1632:32:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":43491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1632:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":43492,"nodeType":"ArrayTypeName","src":"1632:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":43495,"mutability":"mutable","name":"weight","nameLocation":"1682:6:67","nodeType":"VariableDeclaration","scope":43664,"src":"1674:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43494,"name":"uint256","nodeType":"ElementaryTypeName","src":"1674:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43497,"mutability":"mutable","name":"signature","nameLocation":"1711:9:67","nodeType":"VariableDeclaration","scope":43664,"src":"1698:22:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":43496,"name":"bytes","nodeType":"ElementaryTypeName","src":"1698:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1566:160:67"},"returnParameters":{"id":43499,"nodeType":"ParameterList","parameters":[],"src":"1736:0:67"},"scope":43948,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43740,"nodeType":"FunctionDefinition","src":"4454:976:67","nodes":[],"body":{"id":43739,"nodeType":"Block","src":"4685:745:67","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43681,"name":"objHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43670,"src":"4699:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":43682,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43668,"src":"4711:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4716:15:67","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"4711:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4699:32:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43689,"nodeType":"IfStatement","src":"4695:94:67","trueBody":{"id":43688,"nodeType":"Block","src":"4733:56:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43685,"name":"QuorumAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37384,"src":"4754:22:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4754:24:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43687,"nodeType":"RevertStatement","src":"4747:31:67"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43690,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43676,"src":"4803:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4823:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4803:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43697,"nodeType":"IfStatement","src":"4799:81:67","trueBody":{"id":43696,"nodeType":"Block","src":"4826:54:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43693,"name":"ZeroMembershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37512,"src":"4847:20:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43695,"nodeType":"RevertStatement","src":"4840:29:67"}]}},{"assignments":[43699],"declarations":[{"constant":false,"id":43699,"mutability":"mutable","name":"threshold","nameLocation":"4898:9:67","nodeType":"VariableDeclaration","scope":43739,"src":"4890:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43698,"name":"uint256","nodeType":"ElementaryTypeName","src":"4890:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43704,"initialValue":{"arguments":[{"id":43701,"name":"membershipWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43676,"src":"4923:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43702,"name":"majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43678,"src":"4941:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43700,"name":"weightNeeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43869,"src":"4910:12:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":43703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4910:50:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4890:70:67"},{"assignments":[43706],"declarations":[{"constant":false,"id":43706,"mutability":"mutable","name":"ok","nameLocation":"5010:2:67","nodeType":"VariableDeclaration","scope":43739,"src":"5005:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43705,"name":"bool","nodeType":"ElementaryTypeName","src":"5005:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":43712,"initialValue":{"arguments":[{"id":43710,"name":"objHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43670,"src":"5042:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":43707,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43668,"src":"5015:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5020:17:67","memberName":"incompleteQuorums","nodeType":"MemberAccess","referencedDeclaration":50045,"src":"5015:22:67","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":43709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5038:3:67","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35706,"src":"5015:26:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$35685_storage_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_UintSet_$35685_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":43711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5015:37:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"5005:47:67"},{"condition":{"id":43714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5066:3:67","subExpression":{"id":43713,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43706,"src":"5067:2:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43719,"nodeType":"IfStatement","src":"5062:68:67","trueBody":{"id":43718,"nodeType":"Block","src":"5071:59:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43715,"name":"FailedAddIncompleteQuorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37394,"src":"5092:25:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5092:27:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43717,"nodeType":"RevertStatement","src":"5085:34:67"}]}},{"assignments":[43722],"declarations":[{"constant":false,"id":43722,"mutability":"mutable","name":"info","nameLocation":"5158:4:67","nodeType":"VariableDeclaration","scope":43739,"src":"5140:22:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":43721,"nodeType":"UserDefinedTypeName","pathNode":{"id":43720,"name":"QuorumInfo","nameLocations":["5140:10:67"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"5140:10:67"},"referencedDeclaration":50028,"src":"5140:10:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"}],"id":43730,"initialValue":{"arguments":[{"id":43724,"name":"objHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43672,"src":"5196:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":43725,"name":"membershipRootHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43674,"src":"5227:18:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":43726,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43699,"src":"5270:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":43727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5308:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"66616c7365","id":43728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5332:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":43723,"name":"QuorumInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50028,"src":"5165:10:67","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_QuorumInfo_$50028_storage_ptr_$","typeString":"type(struct QuorumInfo storage pointer)"}},"id":43729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5190:4:67","5217:8:67","5259:9:67","5293:13:67","5323:7:67"],"names":["hash","rootHash","threshold","currentWeight","reached"],"nodeType":"FunctionCall","src":"5165:183:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"5140:208:67"},{"expression":{"id":43737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":43731,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43668,"src":"5390:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5395:10:67","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"5390:15:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":43735,"indexExpression":{"id":43733,"name":"objHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43670,"src":"5406:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5390:26:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43736,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43722,"src":"5419:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},"src":"5390:33:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"id":43738,"nodeType":"ExpressionStatement","src":"5390:33:67"}]},"documentation":{"id":43665,"nodeType":"StructuredDocumentation","src":"4017:432:67","text":"@notice creates the quorum info from a quorum object.\n @param objHeight - height of the quorum object\n @param objHash - hash of the object\n @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight\n @param membershipWeight - the total weight of the membership\n @param majorityPercentage - the majorityPercentage required to reach quorum"},"implemented":true,"kind":"function","modifiers":[],"name":"createQuorumInfo","nameLocation":"4463:16:67","parameters":{"id":43679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43668,"mutability":"mutable","name":"self","nameLocation":"4507:4:67","nodeType":"VariableDeclaration","scope":43740,"src":"4489:22:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43667,"nodeType":"UserDefinedTypeName","pathNode":{"id":43666,"name":"QuorumMap","nameLocations":["4489:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"4489:9:67"},"referencedDeclaration":50059,"src":"4489:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43670,"mutability":"mutable","name":"objHeight","nameLocation":"4529:9:67","nodeType":"VariableDeclaration","scope":43740,"src":"4521:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43669,"name":"uint256","nodeType":"ElementaryTypeName","src":"4521:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43672,"mutability":"mutable","name":"objHash","nameLocation":"4556:7:67","nodeType":"VariableDeclaration","scope":43740,"src":"4548:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43671,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4548:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43674,"mutability":"mutable","name":"membershipRootHash","nameLocation":"4581:18:67","nodeType":"VariableDeclaration","scope":43740,"src":"4573:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43673,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4573:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43676,"mutability":"mutable","name":"membershipWeight","nameLocation":"4617:16:67","nodeType":"VariableDeclaration","scope":43740,"src":"4609:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43675,"name":"uint256","nodeType":"ElementaryTypeName","src":"4609:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43678,"mutability":"mutable","name":"majorityPercentage","nameLocation":"4651:18:67","nodeType":"VariableDeclaration","scope":43740,"src":"4643:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43677,"name":"uint256","nodeType":"ElementaryTypeName","src":"4643:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4479:196:67"},"returnParameters":{"id":43680,"nodeType":"ParameterList","parameters":[],"src":"4685:0:67"},"scope":43948,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43833,"nodeType":"FunctionDefinition","src":"5907:864:67","nodes":[],"body":{"id":43832,"nodeType":"Block","src":"5990:781:67","nodes":[],"statements":[{"assignments":[43750],"declarations":[{"constant":false,"id":43750,"mutability":"mutable","name":"oldRetentionHeight","nameLocation":"6009:18:67","nodeType":"VariableDeclaration","scope":43832,"src":"6001:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43749,"name":"uint256","nodeType":"ElementaryTypeName","src":"6001:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43753,"initialValue":{"expression":{"id":43751,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43744,"src":"6030:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6035:15:67","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"6030:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6001:49:67"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43754,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43746,"src":"6065:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43755,"name":"oldRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43750,"src":"6087:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6065:40:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43761,"nodeType":"IfStatement","src":"6061:102:67","trueBody":{"id":43760,"nodeType":"Block","src":"6107:56:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43757,"name":"InvalidRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37432,"src":"6128:22:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6128:24:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43759,"nodeType":"RevertStatement","src":"6121:31:67"}]}},{"body":{"id":43824,"nodeType":"Block","src":"6236:477:67","statements":[{"expression":{"id":43773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6250:25:67","subExpression":{"baseExpression":{"expression":{"id":43769,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43744,"src":"6257:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6262:10:67","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"6257:15:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":43772,"indexExpression":{"id":43771,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6273:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6257:18:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43774,"nodeType":"ExpressionStatement","src":"6250:25:67"},{"expression":{"id":43779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6289:37:67","subExpression":{"baseExpression":{"expression":{"id":43775,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43744,"src":"6296:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6301:22:67","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":50051,"src":"6296:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43778,"indexExpression":{"id":43777,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6324:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6296:30:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43780,"nodeType":"ExpressionStatement","src":"6289:37:67"},{"assignments":[43785],"declarations":[{"constant":false,"id":43785,"mutability":"mutable","name":"validators","nameLocation":"6358:10:67","nodeType":"VariableDeclaration","scope":43824,"src":"6341:27:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43783,"name":"address","nodeType":"ElementaryTypeName","src":"6341:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43784,"nodeType":"ArrayTypeName","src":"6341:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":43792,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":43786,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43744,"src":"6371:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43787,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6376:22:67","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":50051,"src":"6371:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43789,"indexExpression":{"id":43788,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6399:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6371:30:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":43790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6402:6:67","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"6371:37:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":43791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6371:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6341:69:67"},{"assignments":[43794],"declarations":[{"constant":false,"id":43794,"mutability":"mutable","name":"n","nameLocation":"6432:1:67","nodeType":"VariableDeclaration","scope":43824,"src":"6424:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43793,"name":"uint256","nodeType":"ElementaryTypeName","src":"6424:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43797,"initialValue":{"expression":{"id":43795,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43785,"src":"6436:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6447:6:67","memberName":"length","nodeType":"MemberAccess","src":"6436:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6424:29:67"},{"body":{"id":43818,"nodeType":"Block","src":"6493:150:67","statements":[{"expression":{"id":43812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6511:46:67","subExpression":{"baseExpression":{"baseExpression":{"expression":{"id":43804,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43744,"src":"6518:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6523:16:67","memberName":"quorumSignatures","nodeType":"MemberAccess","referencedDeclaration":50058,"src":"6518:21:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes storage ref))"}},"id":43807,"indexExpression":{"id":43806,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6540:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6518:24:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes storage ref)"}},"id":43811,"indexExpression":{"baseExpression":{"id":43808,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43785,"src":"6543:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43810,"indexExpression":{"id":43809,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43799,"src":"6554:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6543:13:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6518:39:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43813,"nodeType":"ExpressionStatement","src":"6511:46:67"},{"id":43817,"nodeType":"UncheckedBlock","src":"6575:54:67","statements":[{"expression":{"id":43815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6607:3:67","subExpression":{"id":43814,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43799,"src":"6609:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43816,"nodeType":"ExpressionStatement","src":"6607:3:67"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43801,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43799,"src":"6484:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43802,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6488:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6484:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43819,"initializationExpression":{"assignments":[43799],"declarations":[{"constant":false,"id":43799,"mutability":"mutable","name":"i","nameLocation":"6481:1:67","nodeType":"VariableDeclaration","scope":43819,"src":"6473:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43798,"name":"uint256","nodeType":"ElementaryTypeName","src":"6473:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43800,"nodeType":"VariableDeclarationStatement","src":"6473:9:67"},"nodeType":"ForStatement","src":"6468:175:67"},{"id":43823,"nodeType":"UncheckedBlock","src":"6657:46:67","statements":[{"expression":{"id":43821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6685:3:67","subExpression":{"id":43820,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6687:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43822,"nodeType":"ExpressionStatement","src":"6685:3:67"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43766,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6210:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43767,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43746,"src":"6214:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6210:22:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43825,"initializationExpression":{"assignments":[43763],"declarations":[{"constant":false,"id":43763,"mutability":"mutable","name":"h","nameLocation":"6186:1:67","nodeType":"VariableDeclaration","scope":43825,"src":"6178:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43762,"name":"uint256","nodeType":"ElementaryTypeName","src":"6178:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43765,"initialValue":{"id":43764,"name":"oldRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43750,"src":"6190:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6178:30:67"},"nodeType":"ForStatement","src":"6173:540:67"},{"expression":{"id":43830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43826,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43744,"src":"6723:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6728:15:67","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"6723:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43829,"name":"newRetentionHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43746,"src":"6746:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6723:41:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43831,"nodeType":"ExpressionStatement","src":"6723:41:67"}]},"documentation":{"id":43741,"nodeType":"StructuredDocumentation","src":"5436:466:67","text":"@notice Set a new retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`)\n @dev `retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing.\n All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent.\n @param newRetentionHeight - the height of the oldest checkpoint to keep"},"implemented":true,"kind":"function","modifiers":[],"name":"pruneQuorums","nameLocation":"5916:12:67","parameters":{"id":43747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43744,"mutability":"mutable","name":"self","nameLocation":"5947:4:67","nodeType":"VariableDeclaration","scope":43833,"src":"5929:22:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43743,"nodeType":"UserDefinedTypeName","pathNode":{"id":43742,"name":"QuorumMap","nameLocations":["5929:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"5929:9:67"},"referencedDeclaration":50059,"src":"5929:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43746,"mutability":"mutable","name":"newRetentionHeight","nameLocation":"5961:18:67","nodeType":"VariableDeclaration","scope":43833,"src":"5953:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43745,"name":"uint256","nodeType":"ElementaryTypeName","src":"5953:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5928:52:67"},"returnParameters":{"id":43748,"nodeType":"ParameterList","parameters":[],"src":"5990:0:67"},"scope":43948,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43851,"nodeType":"FunctionDefinition","src":"6777:217:67","nodes":[],"body":{"id":43850,"nodeType":"Block","src":"6887:107:67","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43841,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43838,"src":"6901:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":43842,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43836,"src":"6910:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6915:15:67","memberName":"retentionHeight","nodeType":"MemberAccess","referencedDeclaration":50035,"src":"6910:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6901:29:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43849,"nodeType":"IfStatement","src":"6897:91:67","trueBody":{"id":43848,"nodeType":"Block","src":"6932:56:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43845,"name":"QuorumAlreadyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37384,"src":"6953:22:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6953:24:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43847,"nodeType":"RevertStatement","src":"6946:31:67"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"isHeightAlreadyProcessed","nameLocation":"6786:24:67","parameters":{"id":43839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43836,"mutability":"mutable","name":"self","nameLocation":"6838:4:67","nodeType":"VariableDeclaration","scope":43851,"src":"6820:22:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43835,"nodeType":"UserDefinedTypeName","pathNode":{"id":43834,"name":"QuorumMap","nameLocations":["6820:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"6820:9:67"},"referencedDeclaration":50059,"src":"6820:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43838,"mutability":"mutable","name":"height","nameLocation":"6860:6:67","nodeType":"VariableDeclaration","scope":43851,"src":"6852:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43837,"name":"uint256","nodeType":"ElementaryTypeName","src":"6852:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6810:62:67"},"returnParameters":{"id":43840,"nodeType":"ParameterList","parameters":[],"src":"6887:0:67"},"scope":43948,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43869,"nodeType":"FunctionDefinition","src":"7146:157:67","nodes":[],"body":{"id":43868,"nodeType":"Block","src":"7244:59:67","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43861,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43854,"src":"7262:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":43862,"name":"majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43856,"src":"7271:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7262:27:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":43864,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7261:29:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":43865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7293:3:67","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"7261:35:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":43860,"id":43867,"nodeType":"Return","src":"7254:42:67"}]},"documentation":{"id":43852,"nodeType":"StructuredDocumentation","src":"7000:141:67","text":"@notice returns the needed weight value corresponding to the majority percentage\n @dev `majorityPercentage` must be a valid number"},"implemented":true,"kind":"function","modifiers":[],"name":"weightNeeded","nameLocation":"7155:12:67","parameters":{"id":43857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43854,"mutability":"mutable","name":"weight","nameLocation":"7176:6:67","nodeType":"VariableDeclaration","scope":43869,"src":"7168:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43853,"name":"uint256","nodeType":"ElementaryTypeName","src":"7168:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43856,"mutability":"mutable","name":"majorityPercentage","nameLocation":"7192:18:67","nodeType":"VariableDeclaration","scope":43869,"src":"7184:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43855,"name":"uint256","nodeType":"ElementaryTypeName","src":"7184:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7167:44:67"},"returnParameters":{"id":43860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43859,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43869,"src":"7235:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43858,"name":"uint256","nodeType":"ElementaryTypeName","src":"7235:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7234:9:67"},"scope":43948,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43947,"nodeType":"FunctionDefinition","src":"7424:670:67","nodes":[],"body":{"id":43946,"nodeType":"Block","src":"7687:407:67","nodes":[],"statements":[{"expression":{"id":43892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43887,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43879,"src":"7697:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":43888,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43873,"src":"7704:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7709:10:67","memberName":"quorumInfo","nodeType":"MemberAccess","referencedDeclaration":50041,"src":"7704:15:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo storage ref)"}},"id":43891,"indexExpression":{"id":43890,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43875,"src":"7720:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7704:18:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage","typeString":"struct QuorumInfo storage ref"}},"src":"7697:25:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},"id":43893,"nodeType":"ExpressionStatement","src":"7697:25:67"},{"expression":{"id":43901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43894,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43882,"src":"7732:11:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":43895,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43873,"src":"7746:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7751:22:67","memberName":"quorumSignatureSenders","nodeType":"MemberAccess","referencedDeclaration":50051,"src":"7746:27:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":43898,"indexExpression":{"id":43897,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43875,"src":"7774:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7746:30:67","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":43899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7777:6:67","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"7746:37:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":43900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7746:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"7732:53:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43902,"nodeType":"ExpressionStatement","src":"7732:53:67"},{"assignments":[43904],"declarations":[{"constant":false,"id":43904,"mutability":"mutable","name":"n","nameLocation":"7803:1:67","nodeType":"VariableDeclaration","scope":43946,"src":"7795:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43903,"name":"uint256","nodeType":"ElementaryTypeName","src":"7795:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43907,"initialValue":{"expression":{"id":43905,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43882,"src":"7807:11:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7819:6:67","memberName":"length","nodeType":"MemberAccess","src":"7807:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7795:30:67"},{"expression":{"id":43914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43908,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43885,"src":"7836:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43912,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43904,"src":"7861:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7849:11:67","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":43909,"name":"bytes","nodeType":"ElementaryTypeName","src":"7853:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":43910,"nodeType":"ArrayTypeName","src":"7853:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":43913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7849:14:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"7836:27:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":43915,"nodeType":"ExpressionStatement","src":"7836:27:67"},{"body":{"id":43939,"nodeType":"Block","src":"7899:140:67","statements":[{"expression":{"id":43933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":43922,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43885,"src":"7913:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":43924,"indexExpression":{"id":43923,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43917,"src":"7924:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7913:13:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":43925,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43873,"src":"7929:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap storage pointer"}},"id":43926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7934:16:67","memberName":"quorumSignatures","nodeType":"MemberAccess","referencedDeclaration":50058,"src":"7929:21:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes storage ref))"}},"id":43928,"indexExpression":{"id":43927,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43875,"src":"7951:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7929:24:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes storage ref)"}},"id":43932,"indexExpression":{"baseExpression":{"id":43929,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43882,"src":"7954:11:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43931,"indexExpression":{"id":43930,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43917,"src":"7966:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7954:14:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7929:40:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"7913:56:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":43934,"nodeType":"ExpressionStatement","src":"7913:56:67"},{"id":43938,"nodeType":"UncheckedBlock","src":"7983:46:67","statements":[{"expression":{"id":43936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8011:3:67","subExpression":{"id":43935,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43917,"src":"8013:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43937,"nodeType":"ExpressionStatement","src":"8011:3:67"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43919,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43917,"src":"7890:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43920,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43904,"src":"7894:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7890:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43940,"initializationExpression":{"assignments":[43917],"declarations":[{"constant":false,"id":43917,"mutability":"mutable","name":"i","nameLocation":"7887:1:67","nodeType":"VariableDeclaration","scope":43940,"src":"7879:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43916,"name":"uint256","nodeType":"ElementaryTypeName","src":"7879:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43918,"nodeType":"VariableDeclarationStatement","src":"7879:9:67"},"nodeType":"ForStatement","src":"7874:165:67"},{"expression":{"components":[{"id":43941,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43879,"src":"8057:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo memory"}},{"id":43942,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43882,"src":"8063:11:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":43943,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43885,"src":"8076:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":43944,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8056:31:67","typeDescriptions":{"typeIdentifier":"t_tuple$_t_struct$_QuorumInfo_$50028_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct QuorumInfo memory,address[] memory,bytes memory[] memory)"}},"functionReturnParameters":43886,"id":43945,"nodeType":"Return","src":"8049:38:67"}]},"documentation":{"id":43870,"nodeType":"StructuredDocumentation","src":"7310:109:67","text":"@notice get quorum signature bundle consisting of the info, signatories and the corresponding signatures."},"functionSelector":"08a6ad25","implemented":true,"kind":"function","modifiers":[],"name":"getSignatureBundle","nameLocation":"7433:18:67","parameters":{"id":43876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43873,"mutability":"mutable","name":"self","nameLocation":"7479:4:67","nodeType":"VariableDeclaration","scope":43947,"src":"7461:22:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"},"typeName":{"id":43872,"nodeType":"UserDefinedTypeName","pathNode":{"id":43871,"name":"QuorumMap","nameLocations":["7461:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":50059,"src":"7461:9:67"},"referencedDeclaration":50059,"src":"7461:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumMap_$50059_storage_ptr","typeString":"struct QuorumMap"}},"visibility":"internal"},{"constant":false,"id":43875,"mutability":"mutable","name":"h","nameLocation":"7501:1:67","nodeType":"VariableDeclaration","scope":43947,"src":"7493:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43874,"name":"uint256","nodeType":"ElementaryTypeName","src":"7493:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7451:57:67"},"returnParameters":{"id":43886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43879,"mutability":"mutable","name":"info","nameLocation":"7587:4:67","nodeType":"VariableDeclaration","scope":43947,"src":"7569:22:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_memory_ptr","typeString":"struct QuorumInfo"},"typeName":{"id":43878,"nodeType":"UserDefinedTypeName","pathNode":{"id":43877,"name":"QuorumInfo","nameLocations":["7569:10:67"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"7569:10:67"},"referencedDeclaration":50028,"src":"7569:10:67","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}},"visibility":"internal"},{"constant":false,"id":43882,"mutability":"mutable","name":"signatories","nameLocation":"7622:11:67","nodeType":"VariableDeclaration","scope":43947,"src":"7605:28:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43880,"name":"address","nodeType":"ElementaryTypeName","src":"7605:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43881,"nodeType":"ArrayTypeName","src":"7605:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":43885,"mutability":"mutable","name":"signatures","nameLocation":"7662:10:67","nodeType":"VariableDeclaration","scope":43947,"src":"7647:25:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":43883,"name":"bytes","nodeType":"ElementaryTypeName","src":"7647:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":43884,"nodeType":"ArrayTypeName","src":"7647:7:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"7555:127:67"},"scope":43948,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"LibQuorum","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[43948],"name":"LibQuorum","nameLocation":"641:9:67","scope":43949,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":67} \ No newline at end of file diff --git a/.out/LibReentrancyGuard.sol/ReentrancyGuard.json b/.out/LibReentrancyGuard.sol/ReentrancyGuard.json index 797f3d60a..6b20a470c 100644 --- a/.out/LibReentrancyGuard.sol/ReentrancyGuard.json +++ b/.out/LibReentrancyGuard.sol/ReentrancyGuard.json @@ -1 +1 @@ -{"abi":[{"type":"error","name":"ReentrancyError","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Reentrancy Guard\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Abstract contract to provide protection against reentrancy\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyError"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibReentrancyGuard.sol":"ReentrancyGuard"},"libraries":{},"viaIR":true},"sources":{"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibReentrancyGuard.sol","id":43315,"exportedSymbols":{"ReentrancyGuard":[43314]},"nodeType":"SourceUnit","src":"46:966:63","nodes":[{"id":43251,"nodeType":"PragmaDirective","src":"46:23:63","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43314,"nodeType":"ContractDefinition","src":"170:841:63","nodes":[{"id":43257,"nodeType":"VariableDeclaration","src":"210:85:63","nodes":[],"constant":true,"mutability":"constant","name":"NAMESPACE","nameLocation":"235:9:63","scope":43314,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43253,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"7265656e7472616e637967756172642e6c69622e6469616d6f6e642e73746f72616765","id":43255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"257:37:63","typeDescriptions":{"typeIdentifier":"t_stringliteral_691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095","typeString":"literal_string \"reentrancyguard.lib.diamond.storage\""},"value":"reentrancyguard.lib.diamond.storage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095","typeString":"literal_string \"reentrancyguard.lib.diamond.storage\""}],"id":43254,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"247:9:63","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":43256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247:48:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":43260,"nodeType":"StructDefinition","src":"302:56:63","nodes":[],"canonicalName":"ReentrancyGuard.ReentrancyStorage","members":[{"constant":false,"id":43259,"mutability":"mutable","name":"status","nameLocation":"345:6:63","nodeType":"VariableDeclaration","scope":43260,"src":"337:14:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43258,"name":"uint256","nodeType":"ElementaryTypeName","src":"337:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ReentrancyStorage","nameLocation":"309:17:63","scope":43314,"visibility":"public"},{"id":43262,"nodeType":"ErrorDefinition","src":"364:24:63","nodes":[],"errorSelector":"29f745a7","name":"ReentrancyError","nameLocation":"370:15:63","parameters":{"id":43261,"nodeType":"ParameterList","parameters":[],"src":"385:2:63"}},{"id":43265,"nodeType":"VariableDeclaration","src":"394:41:63","nodes":[],"constant":true,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"419:12:63","scope":43314,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43263,"name":"uint256","nodeType":"ElementaryTypeName","src":"394:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":43264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"434:1:63","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":43268,"nodeType":"VariableDeclaration","src":"441:37:63","nodes":[],"constant":true,"mutability":"constant","name":"_ENTERED","nameLocation":"466:8:63","scope":43314,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43266,"name":"uint256","nodeType":"ElementaryTypeName","src":"441:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":43267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"477:1:63","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":43298,"nodeType":"ModifierDefinition","src":"485:223:63","nodes":[],"body":{"id":43297,"nodeType":"Block","src":"509:199:63","nodes":[],"statements":[{"assignments":[43272],"declarations":[{"constant":false,"id":43272,"mutability":"mutable","name":"s","nameLocation":"545:1:63","nodeType":"VariableDeclaration","scope":43297,"src":"519:27:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43260_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"},"typeName":{"id":43271,"nodeType":"UserDefinedTypeName","pathNode":{"id":43270,"name":"ReentrancyStorage","nameLocations":["519:17:63"],"nodeType":"IdentifierPath","referencedDeclaration":43260,"src":"519:17:63"},"referencedDeclaration":43260,"src":"519:17:63","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43260_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"}},"visibility":"internal"}],"id":43275,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":43273,"name":"reentrancyStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43313,"src":"549:17:63","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ReentrancyStorage_$43260_storage_ptr_$","typeString":"function () pure returns (struct ReentrancyGuard.ReentrancyStorage storage pointer)"}},"id":43274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"549:19:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43260_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"519:49:63"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43276,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43272,"src":"582:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43260_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"id":43277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"584:6:63","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":43259,"src":"582:8:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":43278,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43268,"src":"594:8:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"582:20:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43283,"nodeType":"IfStatement","src":"578:50:63","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43280,"name":"ReentrancyError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43262,"src":"611:15:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"611:17:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43282,"nodeType":"RevertStatement","src":"604:24:63"}},{"expression":{"id":43288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43284,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43272,"src":"638:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43260_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"id":43286,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"640:6:63","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":43259,"src":"638:8:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43287,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43268,"src":"649:8:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"638:19:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43289,"nodeType":"ExpressionStatement","src":"638:19:63"},{"id":43290,"nodeType":"PlaceholderStatement","src":"667:1:63"},{"expression":{"id":43295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43291,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43272,"src":"678:1:63","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43260_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"id":43293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"680:6:63","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":43259,"src":"678:8:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43294,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43265,"src":"689:12:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"678:23:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43296,"nodeType":"ExpressionStatement","src":"678:23:63"}]},"name":"nonReentrant","nameLocation":"494:12:63","parameters":{"id":43269,"nodeType":"ParameterList","parameters":[],"src":"506:2:63"},"virtual":false,"visibility":"internal"},{"id":43313,"nodeType":"FunctionDefinition","src":"747:262:63","nodes":[],"body":{"id":43312,"nodeType":"Block","src":"828:181:63","nodes":[],"statements":[{"assignments":[43306],"declarations":[{"constant":false,"id":43306,"mutability":"mutable","name":"position","nameLocation":"846:8:63","nodeType":"VariableDeclaration","scope":43312,"src":"838:16:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43305,"name":"bytes32","nodeType":"ElementaryTypeName","src":"838:7:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43308,"initialValue":{"id":43307,"name":"NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43257,"src":"857:9:63","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"838:28:63"},{"AST":{"nodeType":"YulBlock","src":"941:43:63","statements":[{"nodeType":"YulAssignment","src":"955:19:63","value":{"name":"position","nodeType":"YulIdentifier","src":"966:8:63"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"955:7:63"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":43303,"isOffset":false,"isSlot":true,"src":"955:7:63","suffix":"slot","valueSize":1},{"declaration":43306,"isOffset":false,"isSlot":false,"src":"966:8:63","valueSize":1}],"id":43309,"nodeType":"InlineAssembly","src":"932:52:63"},{"expression":{"id":43310,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43303,"src":"1000:2:63","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43260_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"functionReturnParameters":43304,"id":43311,"nodeType":"Return","src":"993:9:63"}]},"documentation":{"id":43299,"nodeType":"StructuredDocumentation","src":"714:28:63","text":"@dev fetch local storage"},"implemented":true,"kind":"function","modifiers":[],"name":"reentrancyStorage","nameLocation":"756:17:63","parameters":{"id":43300,"nodeType":"ParameterList","parameters":[],"src":"773:2:63"},"returnParameters":{"id":43304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43303,"mutability":"mutable","name":"ds","nameLocation":"824:2:63","nodeType":"VariableDeclaration","scope":43313,"src":"798:28:63","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43260_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"},"typeName":{"id":43302,"nodeType":"UserDefinedTypeName","pathNode":{"id":43301,"name":"ReentrancyStorage","nameLocations":["798:17:63"],"nodeType":"IdentifierPath","referencedDeclaration":43260,"src":"798:17:63"},"referencedDeclaration":43260,"src":"798:17:63","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43260_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"}},"visibility":"internal"}],"src":"797:30:63"},"scope":43314,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":43252,"nodeType":"StructuredDocumentation","src":"71:99:63","text":"@title Reentrancy Guard\n @notice Abstract contract to provide protection against reentrancy"},"fullyImplemented":true,"linearizedBaseContracts":[43314],"name":"ReentrancyGuard","nameLocation":"188:15:63","scope":43315,"usedErrors":[43262]}],"license":"MIT OR Apache-2.0"},"id":63} \ No newline at end of file +{"abi":[{"type":"error","name":"ReentrancyError","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Reentrancy Guard\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Abstract contract to provide protection against reentrancy\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyError"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibReentrancyGuard.sol":"ReentrancyGuard"},"libraries":{},"viaIR":true},"sources":{"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibReentrancyGuard.sol","id":44014,"exportedSymbols":{"ReentrancyGuard":[44013]},"nodeType":"SourceUnit","src":"46:966:68","nodes":[{"id":43950,"nodeType":"PragmaDirective","src":"46:23:68","nodes":[],"literals":["solidity","0.8",".19"]},{"id":44013,"nodeType":"ContractDefinition","src":"170:841:68","nodes":[{"id":43956,"nodeType":"VariableDeclaration","src":"210:85:68","nodes":[],"constant":true,"mutability":"constant","name":"NAMESPACE","nameLocation":"235:9:68","scope":44013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43952,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210:7:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"7265656e7472616e637967756172642e6c69622e6469616d6f6e642e73746f72616765","id":43954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"257:37:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095","typeString":"literal_string \"reentrancyguard.lib.diamond.storage\""},"value":"reentrancyguard.lib.diamond.storage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095","typeString":"literal_string \"reentrancyguard.lib.diamond.storage\""}],"id":43953,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"247:9:68","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":43955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247:48:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":43959,"nodeType":"StructDefinition","src":"302:56:68","nodes":[],"canonicalName":"ReentrancyGuard.ReentrancyStorage","members":[{"constant":false,"id":43958,"mutability":"mutable","name":"status","nameLocation":"345:6:68","nodeType":"VariableDeclaration","scope":43959,"src":"337:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43957,"name":"uint256","nodeType":"ElementaryTypeName","src":"337:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ReentrancyStorage","nameLocation":"309:17:68","scope":44013,"visibility":"public"},{"id":43961,"nodeType":"ErrorDefinition","src":"364:24:68","nodes":[],"errorSelector":"29f745a7","name":"ReentrancyError","nameLocation":"370:15:68","parameters":{"id":43960,"nodeType":"ParameterList","parameters":[],"src":"385:2:68"}},{"id":43964,"nodeType":"VariableDeclaration","src":"394:41:68","nodes":[],"constant":true,"mutability":"constant","name":"_NOT_ENTERED","nameLocation":"419:12:68","scope":44013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43962,"name":"uint256","nodeType":"ElementaryTypeName","src":"394:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":43963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"434:1:68","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":43967,"nodeType":"VariableDeclaration","src":"441:37:68","nodes":[],"constant":true,"mutability":"constant","name":"_ENTERED","nameLocation":"466:8:68","scope":44013,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43965,"name":"uint256","nodeType":"ElementaryTypeName","src":"441:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":43966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"477:1:68","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":43997,"nodeType":"ModifierDefinition","src":"485:223:68","nodes":[],"body":{"id":43996,"nodeType":"Block","src":"509:199:68","nodes":[],"statements":[{"assignments":[43971],"declarations":[{"constant":false,"id":43971,"mutability":"mutable","name":"s","nameLocation":"545:1:68","nodeType":"VariableDeclaration","scope":43996,"src":"519:27:68","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"},"typeName":{"id":43970,"nodeType":"UserDefinedTypeName","pathNode":{"id":43969,"name":"ReentrancyStorage","nameLocations":["519:17:68"],"nodeType":"IdentifierPath","referencedDeclaration":43959,"src":"519:17:68"},"referencedDeclaration":43959,"src":"519:17:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"}},"visibility":"internal"}],"id":43974,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":43972,"name":"reentrancyStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44012,"src":"549:17:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ReentrancyStorage_$43959_storage_ptr_$","typeString":"function () pure returns (struct ReentrancyGuard.ReentrancyStorage storage pointer)"}},"id":43973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"549:19:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"519:49:68"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43975,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43971,"src":"582:1:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"id":43976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"584:6:68","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":43958,"src":"582:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":43977,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43967,"src":"594:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"582:20:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43982,"nodeType":"IfStatement","src":"578:50:68","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43979,"name":"ReentrancyError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43961,"src":"611:15:68","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"611:17:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43981,"nodeType":"RevertStatement","src":"604:24:68"}},{"expression":{"id":43987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43983,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43971,"src":"638:1:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"id":43985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"640:6:68","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":43958,"src":"638:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43986,"name":"_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43967,"src":"649:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"638:19:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43988,"nodeType":"ExpressionStatement","src":"638:19:68"},{"id":43989,"nodeType":"PlaceholderStatement","src":"667:1:68"},{"expression":{"id":43994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43990,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43971,"src":"678:1:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"id":43992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"680:6:68","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":43958,"src":"678:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43993,"name":"_NOT_ENTERED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43964,"src":"689:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"678:23:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43995,"nodeType":"ExpressionStatement","src":"678:23:68"}]},"name":"nonReentrant","nameLocation":"494:12:68","parameters":{"id":43968,"nodeType":"ParameterList","parameters":[],"src":"506:2:68"},"virtual":false,"visibility":"internal"},{"id":44012,"nodeType":"FunctionDefinition","src":"747:262:68","nodes":[],"body":{"id":44011,"nodeType":"Block","src":"828:181:68","nodes":[],"statements":[{"assignments":[44005],"declarations":[{"constant":false,"id":44005,"mutability":"mutable","name":"position","nameLocation":"846:8:68","nodeType":"VariableDeclaration","scope":44011,"src":"838:16:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"838:7:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44007,"initialValue":{"id":44006,"name":"NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43956,"src":"857:9:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"838:28:68"},{"AST":{"nodeType":"YulBlock","src":"941:43:68","statements":[{"nodeType":"YulAssignment","src":"955:19:68","value":{"name":"position","nodeType":"YulIdentifier","src":"966:8:68"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"955:7:68"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":44002,"isOffset":false,"isSlot":true,"src":"955:7:68","suffix":"slot","valueSize":1},{"declaration":44005,"isOffset":false,"isSlot":false,"src":"966:8:68","valueSize":1}],"id":44008,"nodeType":"InlineAssembly","src":"932:52:68"},{"expression":{"id":44009,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44002,"src":"1000:2:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage storage pointer"}},"functionReturnParameters":44003,"id":44010,"nodeType":"Return","src":"993:9:68"}]},"documentation":{"id":43998,"nodeType":"StructuredDocumentation","src":"714:28:68","text":"@dev fetch local storage"},"implemented":true,"kind":"function","modifiers":[],"name":"reentrancyStorage","nameLocation":"756:17:68","parameters":{"id":43999,"nodeType":"ParameterList","parameters":[],"src":"773:2:68"},"returnParameters":{"id":44003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44002,"mutability":"mutable","name":"ds","nameLocation":"824:2:68","nodeType":"VariableDeclaration","scope":44012,"src":"798:28:68","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"},"typeName":{"id":44001,"nodeType":"UserDefinedTypeName","pathNode":{"id":44000,"name":"ReentrancyStorage","nameLocations":["798:17:68"],"nodeType":"IdentifierPath","referencedDeclaration":43959,"src":"798:17:68"},"referencedDeclaration":43959,"src":"798:17:68","typeDescriptions":{"typeIdentifier":"t_struct$_ReentrancyStorage_$43959_storage_ptr","typeString":"struct ReentrancyGuard.ReentrancyStorage"}},"visibility":"internal"}],"src":"797:30:68"},"scope":44013,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":43951,"nodeType":"StructuredDocumentation","src":"71:99:68","text":"@title Reentrancy Guard\n @notice Abstract contract to provide protection against reentrancy"},"fullyImplemented":true,"linearizedBaseContracts":[44013],"name":"ReentrancyGuard","nameLocation":"188:15:68","scope":44014,"usedErrors":[43961]}],"license":"MIT OR Apache-2.0"},"id":68} \ No newline at end of file diff --git a/.out/LibStaking.sol/LibAddressStakingReleases.json b/.out/LibStaking.sol/LibAddressStakingReleases.json index d16c6ea95..f5a25d512 100644 --- a/.out/LibStaking.sol/LibAddressStakingReleases.json +++ b/.out/LibStaking.sol/LibAddressStakingReleases.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220c329aad80ca7ba8eb8b31df3ad7633e17a5d431cc5b02a8ca30a503740a4923264736f6c63430008130033","sourceMap":"902:1635:64:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220c329aad80ca7ba8eb8b31df3ad7633e17a5d431cc5b02a8ca30a503740a4923264736f6c63430008130033","sourceMap":"902:1635:64:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibAddressStakingReleases\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibAddressStakingReleases"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":45729,"exportedSymbols":{"Address":[32409],"AddressShouldBeValidator":[36936],"AddressStakingReleases":[48623],"CannotConfirmFutureChanges":[36940],"IGateway":[39904],"InvalidConfigurationNumber":[36986],"LibAddressStakingReleases":[43484],"LibMaxPQ":[47494],"LibMinPQ":[48113],"LibStaking":[45464],"LibStakingChangeLog":[45966],"LibStakingReleaseQueue":[43603],"LibSubnetActorStorage":[46096],"LibValidatorSet":[44594],"LibValidatorTracking":[45728],"MaxPQ":[46889],"MinPQ":[47507],"NoCollateralToWithdraw":[37016],"NoRewardToWithdraw":[37018],"NotValidator":[37058],"ParentValidatorsTracker":[48680],"PermissionMode":[48648],"StakingChange":[48587],"StakingChangeLog":[48606],"StakingChangeRequest":[48593],"StakingOperation":[48579],"StakingRelease":[48613],"StakingReleaseQueue":[48633],"SubnetActorStorage":[46085],"Validator":[48694],"ValidatorSet":[48673],"WithdrawExceedingCollateral":[37078]},"nodeType":"SourceUnit","src":"46:28434:64","nodes":[{"id":43316,"nodeType":"PragmaDirective","src":"46:23:64","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43318,"nodeType":"ImportDirective","src":"71:52:64","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":39905,"symbolAliases":[{"foreign":{"id":43317,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"79:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43321,"nodeType":"ImportDirective","src":"124:86:64","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":46140,"symbolAliases":[{"foreign":{"id":43319,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"132:21:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43320,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"155:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43324,"nodeType":"ImportDirective","src":"211:56:64","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":47495,"symbolAliases":[{"foreign":{"id":43322,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47494,"src":"219:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43323,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46889,"src":"229:5:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43327,"nodeType":"ImportDirective","src":"268:56:64","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":48114,"symbolAliases":[{"foreign":{"id":43325,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48113,"src":"276:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43326,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47507,"src":"286:5:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43329,"nodeType":"ImportDirective","src":"325:62:64","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":45967,"symbolAliases":[{"foreign":{"id":43328,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45966,"src":"333:19:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43341,"nodeType":"ImportDirective","src":"388:237:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":43330,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"396:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43331,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48633,"src":"412:19:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43332,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48606,"src":"433:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43333,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48587,"src":"451:13:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43334,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48593,"src":"466:20:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43335,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"488:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43336,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48613,"src":"506:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43337,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48673,"src":"522:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43338,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48623,"src":"536:22:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43339,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48680,"src":"560:23:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43340,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"585:9:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43349,"nodeType":"ImportDirective","src":"626:208:64","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":43342,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37018,"src":"634:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43343,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37078,"src":"654:27:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43344,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37058,"src":"683:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43345,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36940,"src":"697:26:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43346,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37016,"src":"725:22:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43347,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36936,"src":"749:24:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43348,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36986,"src":"775:26:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43351,"nodeType":"ImportDirective","src":"835:65:64","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":32410,"symbolAliases":[{"foreign":{"id":43350,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"843:7:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43484,"nodeType":"ContractDefinition","src":"902:1635:64","nodes":[{"id":43390,"nodeType":"FunctionDefinition","src":"1118:261:64","nodes":[],"body":{"id":43389,"nodeType":"Block","src":"1209:170:64","nodes":[],"statements":[{"assignments":[43362],"declarations":[{"constant":false,"id":43362,"mutability":"mutable","name":"length","nameLocation":"1226:6:64","nodeType":"VariableDeclaration","scope":43389,"src":"1219:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43361,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43365,"initialValue":{"expression":{"id":43363,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1235:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1235:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:64"},{"assignments":[43367],"declarations":[{"constant":false,"id":43367,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:64","nodeType":"VariableDeclaration","scope":43389,"src":"1256:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43366,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43372,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43368,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1273:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:64","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"1273:13:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":43370,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43362,"src":"1289:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:64"},{"expression":{"id":43379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":43373,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1306:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48622,"src":"1306:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":43377,"indexExpression":{"id":43375,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43367,"src":"1320:7:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43378,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43358,"src":"1331:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"id":43380,"nodeType":"ExpressionStatement","src":"1306:32:64"},{"expression":{"id":43387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1348:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1348:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43384,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43362,"src":"1362:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":43385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43388,"nodeType":"ExpressionStatement","src":"1348:24:64"}]},"documentation":{"id":43352,"nodeType":"StructuredDocumentation","src":"942:171:64","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:64","parameters":{"id":43359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43355,"mutability":"mutable","name":"self","nameLocation":"1163:4:64","nodeType":"VariableDeclaration","scope":43390,"src":"1132:35:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":43354,"nodeType":"UserDefinedTypeName","pathNode":{"id":43353,"name":"AddressStakingReleases","nameLocations":["1132:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"1132:22:64"},"referencedDeclaration":48623,"src":"1132:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":43358,"mutability":"mutable","name":"release","nameLocation":"1191:7:64","nodeType":"VariableDeclaration","scope":43390,"src":"1169:29:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":43357,"nodeType":"UserDefinedTypeName","pathNode":{"id":43356,"name":"StakingRelease","nameLocations":["1169:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"1169:14:64"},"referencedDeclaration":48613,"src":"1169:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:64"},"returnParameters":{"id":43360,"nodeType":"ParameterList","parameters":[],"src":"1209:0:64"},"scope":43484,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43483,"nodeType":"FunctionDefinition","src":"1637:898:64","nodes":[],"body":{"id":43482,"nodeType":"Block","src":"1726:809:64","nodes":[],"statements":[{"assignments":[43402],"declarations":[{"constant":false,"id":43402,"mutability":"mutable","name":"length","nameLocation":"1743:6:64","nodeType":"VariableDeclaration","scope":43482,"src":"1736:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43401,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43405,"initialValue":{"expression":{"id":43403,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"1752:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1752:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43406,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"1777:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1777:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43414,"nodeType":"IfStatement","src":"1773:78:64","trueBody":{"id":43413,"nodeType":"Block","src":"1795:56:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43410,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37016,"src":"1816:22:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43412,"nodeType":"RevertStatement","src":"1809:31:64"}]}},{"assignments":[43416],"declarations":[{"constant":false,"id":43416,"mutability":"mutable","name":"i","nameLocation":"1868:1:64","nodeType":"VariableDeclaration","scope":43482,"src":"1861:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43415,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43419,"initialValue":{"expression":{"id":43417,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"1872:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:64","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"1872:13:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:64"},{"assignments":[43421],"declarations":[{"constant":false,"id":43421,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:64","nodeType":"VariableDeclaration","scope":43482,"src":"1895:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43420,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43423,"initialValue":{"id":43422,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43402,"src":"1914:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:64"},{"assignments":[43425],"declarations":[{"constant":false,"id":43425,"mutability":"mutable","name":"amount","nameLocation":"1938:6:64","nodeType":"VariableDeclaration","scope":43482,"src":"1930:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43424,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43426,"nodeType":"VariableDeclarationStatement","src":"1930:14:64"},{"body":{"id":43464,"nodeType":"Block","src":"1973:458:64","statements":[{"assignments":[43432],"declarations":[{"constant":false,"id":43432,"mutability":"mutable","name":"release","nameLocation":"2009:7:64","nodeType":"VariableDeclaration","scope":43464,"src":"1987:29:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":43431,"nodeType":"UserDefinedTypeName","pathNode":{"id":43430,"name":"StakingRelease","nameLocations":["1987:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"1987:14:64"},"referencedDeclaration":48613,"src":"1987:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":43437,"initialValue":{"baseExpression":{"expression":{"id":43433,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2019:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48622,"src":"2019:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":43436,"indexExpression":{"id":43435,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2033:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43438,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43432,"src":"2184:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"id":43439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:64","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":48609,"src":"2184:17:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":43440,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:64","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:64","memberName":"number","nodeType":"MemberAccess","src":"2204:12:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43445,"nodeType":"IfStatement","src":"2180:76:64","trueBody":{"id":43444,"nodeType":"Block","src":"2218:38:64","statements":[{"id":43443,"nodeType":"Break","src":"2236:5:64"}]}},{"expression":{"id":43449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43446,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43425,"src":"2270:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":43447,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43432,"src":"2280:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"id":43448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:64","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":48612,"src":"2280:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43450,"nodeType":"ExpressionStatement","src":"2270:24:64"},{"expression":{"id":43455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:64","subExpression":{"baseExpression":{"expression":{"id":43451,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2315:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48622,"src":"2315:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":43454,"indexExpression":{"id":43453,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2329:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43456,"nodeType":"ExpressionStatement","src":"2308:23:64"},{"id":43463,"nodeType":"UncheckedBlock","src":"2346:75:64","statements":[{"expression":{"id":43458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:64","subExpression":{"id":43457,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2376:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43459,"nodeType":"ExpressionStatement","src":"2374:3:64"},{"expression":{"id":43461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:64","subExpression":{"id":43460,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2397:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43462,"nodeType":"ExpressionStatement","src":"2395:11:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43427,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"1961:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43428,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43402,"src":"1965:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43465,"nodeType":"WhileStatement","src":"1954:477:64"},{"expression":{"id":43470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43466,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2441:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:64","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"2441:13:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2457:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43471,"nodeType":"ExpressionStatement","src":"2441:17:64"},{"expression":{"id":43476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2468:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"2468:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43475,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2482:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43477,"nodeType":"ExpressionStatement","src":"2468:23:64"},{"expression":{"components":[{"id":43478,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43425,"src":"2510:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43479,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2518:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":43480,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":43400,"id":43481,"nodeType":"Return","src":"2502:26:64"}]},"documentation":{"id":43391,"nodeType":"StructuredDocumentation","src":"1385:247:64","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:64","parameters":{"id":43395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43394,"mutability":"mutable","name":"self","nameLocation":"1685:4:64","nodeType":"VariableDeclaration","scope":43483,"src":"1654:35:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":43393,"nodeType":"UserDefinedTypeName","pathNode":{"id":43392,"name":"AddressStakingReleases","nameLocations":["1654:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"1654:22:64"},"referencedDeclaration":48623,"src":"1654:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:64"},"returnParameters":{"id":43400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43483,"src":"1709:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43396,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43483,"src":"1718:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43398,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:64"},"scope":43484,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[43484],"name":"LibAddressStakingReleases","nameLocation":"910:25:64","scope":45729,"usedErrors":[]},{"id":43603,"nodeType":"ContractDefinition","src":"2586:1272:64","nodes":[{"id":43488,"nodeType":"UsingForDirective","src":"2623:34:64","nodes":[],"global":false,"libraryName":{"id":43486,"name":"Address","nameLocations":["2629:7:64"],"nodeType":"IdentifierPath","referencedDeclaration":32409,"src":"2629:7:64"},"typeName":{"id":43487,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":43492,"nodeType":"UsingForDirective","src":"2662:59:64","nodes":[],"global":false,"libraryName":{"id":43489,"name":"LibAddressStakingReleases","nameLocations":["2668:25:64"],"nodeType":"IdentifierPath","referencedDeclaration":43484,"src":"2668:25:64"},"typeName":{"id":43491,"nodeType":"UserDefinedTypeName","pathNode":{"id":43490,"name":"AddressStakingReleases","nameLocations":["2698:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"2698:22:64"},"referencedDeclaration":48623,"src":"2698:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":43500,"nodeType":"EventDefinition","src":"2727:84:64","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:64","parameters":{"id":43499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43494,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:64","nodeType":"VariableDeclaration","scope":43500,"src":"2754:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43493,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43496,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:64","nodeType":"VariableDeclaration","scope":43500,"src":"2773:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43495,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43498,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:64","nodeType":"VariableDeclaration","scope":43500,"src":"2789:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43497,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:64"}},{"id":43515,"nodeType":"FunctionDefinition","src":"2817:130:64","nodes":[],"body":{"id":43514,"nodeType":"Block","src":"2901:46:64","nodes":[],"statements":[{"expression":{"id":43512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43508,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43503,"src":"2911:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:64","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":48626,"src":"2911:20:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43511,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43505,"src":"2934:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43513,"nodeType":"ExpressionStatement","src":"2911:29:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:64","parameters":{"id":43506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43503,"mutability":"mutable","name":"self","nameLocation":"2870:4:64","nodeType":"VariableDeclaration","scope":43515,"src":"2842:32:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":43502,"nodeType":"UserDefinedTypeName","pathNode":{"id":43501,"name":"StakingReleaseQueue","nameLocations":["2842:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"2842:19:64"},"referencedDeclaration":48633,"src":"2842:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":43505,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:64","nodeType":"VariableDeclaration","scope":43515,"src":"2876:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43504,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:64"},"returnParameters":{"id":43507,"nodeType":"ParameterList","parameters":[],"src":"2901:0:64"},"scope":43603,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43558,"nodeType":"FunctionDefinition","src":"3016:419:64","nodes":[],"body":{"id":43557,"nodeType":"Block","src":"3117:318:64","nodes":[],"statements":[{"assignments":[43527],"declarations":[{"constant":false,"id":43527,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:64","nodeType":"VariableDeclaration","scope":43557,"src":"3127:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43526,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43533,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43528,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:64","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:64","memberName":"number","nodeType":"MemberAccess","src":"3147:12:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":43530,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43519,"src":"3162:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:64","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":48626,"src":"3162:20:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:64"},{"assignments":[43536],"declarations":[{"constant":false,"id":43536,"mutability":"mutable","name":"release","nameLocation":"3214:7:64","nodeType":"VariableDeclaration","scope":43557,"src":"3192:29:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":43535,"nodeType":"UserDefinedTypeName","pathNode":{"id":43534,"name":"StakingRelease","nameLocations":["3192:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"3192:14:64"},"referencedDeclaration":48613,"src":"3192:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":43541,"initialValue":{"arguments":[{"id":43538,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43527,"src":"3251:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43539,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43523,"src":"3270:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43537,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48613,"src":"3224:14:64","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$48613_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":43540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:64","3262:6:64"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:64"},{"expression":{"arguments":[{"id":43548,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43536,"src":"3319:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":43542,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43519,"src":"3289:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48632,"src":"3289:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":43546,"indexExpression":{"id":43544,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"3303:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":43547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:64","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":43390,"src":"3289:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$_t_struct$_StakingRelease_$48613_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":43549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43550,"nodeType":"ExpressionStatement","src":"3289:38:64"},{"eventCall":{"arguments":[{"id":43552,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"3376:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43553,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43523,"src":"3395:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43554,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43527,"src":"3417:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43551,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43500,"src":"3343:20:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":43555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:64","3387:6:64","3403:12:64"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43556,"nodeType":"EmitStatement","src":"3338:90:64"}]},"documentation":{"id":43516,"nodeType":"StructuredDocumentation","src":"2953:58:64","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:64","parameters":{"id":43524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43519,"mutability":"mutable","name":"self","nameLocation":"3067:4:64","nodeType":"VariableDeclaration","scope":43558,"src":"3039:32:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":43518,"nodeType":"UserDefinedTypeName","pathNode":{"id":43517,"name":"StakingReleaseQueue","nameLocations":["3039:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"3039:19:64"},"referencedDeclaration":48633,"src":"3039:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":43521,"mutability":"mutable","name":"validator","nameLocation":"3081:9:64","nodeType":"VariableDeclaration","scope":43558,"src":"3073:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43520,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43523,"mutability":"mutable","name":"amount","nameLocation":"3100:6:64","nodeType":"VariableDeclaration","scope":43558,"src":"3092:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43522,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:64"},"returnParameters":{"id":43525,"nodeType":"ParameterList","parameters":[],"src":"3117:0:64"},"scope":43603,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43602,"nodeType":"FunctionDefinition","src":"3516:340:64","nodes":[],"body":{"id":43601,"nodeType":"Block","src":"3611:245:64","nodes":[],"statements":[{"assignments":[43570,43572],"declarations":[{"constant":false,"id":43570,"mutability":"mutable","name":"amount","nameLocation":"3630:6:64","nodeType":"VariableDeclaration","scope":43601,"src":"3622:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43569,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43572,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:64","nodeType":"VariableDeclaration","scope":43601,"src":"3638:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43571,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43579,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":43573,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43562,"src":"3658:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48632,"src":"3658:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":43576,"indexExpression":{"id":43575,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43564,"src":"3672:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":43577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:64","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":43483,"src":"3658:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":43578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43580,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43572,"src":"3707:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43590,"nodeType":"IfStatement","src":"3703:76:64","trueBody":{"id":43589,"nodeType":"Block","src":"3723:56:64","statements":[{"expression":{"id":43587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:64","subExpression":{"baseExpression":{"expression":{"id":43583,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43562,"src":"3744:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48632,"src":"3744:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":43586,"indexExpression":{"id":43585,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43564,"src":"3758:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43588,"nodeType":"ExpressionStatement","src":"3737:31:64"}]}},{"expression":{"arguments":[{"id":43596,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43570,"src":"3818:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43593,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43564,"src":"3797:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":43591,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:64","stateMutability":"payable","typeDescriptions":{}}},"id":43594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":43595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:64","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"3789:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":43597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43598,"nodeType":"ExpressionStatement","src":"3789:36:64"},{"expression":{"id":43599,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43570,"src":"3843:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":43568,"id":43600,"nodeType":"Return","src":"3836:13:64"}]},"documentation":{"id":43559,"nodeType":"StructuredDocumentation","src":"3441:70:64","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:64","parameters":{"id":43565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43562,"mutability":"mutable","name":"self","nameLocation":"3559:4:64","nodeType":"VariableDeclaration","scope":43602,"src":"3531:32:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":43561,"nodeType":"UserDefinedTypeName","pathNode":{"id":43560,"name":"StakingReleaseQueue","nameLocations":["3531:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"3531:19:64"},"referencedDeclaration":48633,"src":"3531:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":43564,"mutability":"mutable","name":"validator","nameLocation":"3573:9:64","nodeType":"VariableDeclaration","scope":43602,"src":"3565:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43563,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:64"},"returnParameters":{"id":43568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43567,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43602,"src":"3602:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43566,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:64"},"scope":43603,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":43485,"nodeType":"StructuredDocumentation","src":"2539:47:64","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[43603],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:64","scope":45729,"usedErrors":[]},{"id":44594,"nodeType":"ContractDefinition","src":"3900:11436:64","nodes":[{"id":43608,"nodeType":"UsingForDirective","src":"3930:25:64","nodes":[],"global":false,"libraryName":{"id":43605,"name":"LibMinPQ","nameLocations":["3936:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":48113,"src":"3936:8:64"},"typeName":{"id":43607,"nodeType":"UserDefinedTypeName","pathNode":{"id":43606,"name":"MinPQ","nameLocations":["3949:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"3949:5:64"},"referencedDeclaration":47507,"src":"3949:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}}},{"id":43612,"nodeType":"UsingForDirective","src":"3960:25:64","nodes":[],"global":false,"libraryName":{"id":43609,"name":"LibMaxPQ","nameLocations":["3966:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":47494,"src":"3966:8:64"},"typeName":{"id":43611,"nodeType":"UserDefinedTypeName","pathNode":{"id":43610,"name":"MaxPQ","nameLocations":["3979:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"3979:5:64"},"referencedDeclaration":46889,"src":"3979:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}}},{"id":43618,"nodeType":"EventDefinition","src":"3991:76:64","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:64","parameters":{"id":43617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43614,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:64","nodeType":"VariableDeclaration","scope":43618,"src":"4030:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43613,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43616,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:64","nodeType":"VariableDeclaration","scope":43618,"src":"4049:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43615,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:64"}},{"id":43624,"nodeType":"EventDefinition","src":"4072:77:64","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:64","parameters":{"id":43623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43620,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:64","nodeType":"VariableDeclaration","scope":43624,"src":"4112:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43619,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43622,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:64","nodeType":"VariableDeclaration","scope":43624,"src":"4131:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43621,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:64"}},{"id":43630,"nodeType":"EventDefinition","src":"4154:59:64","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:64","parameters":{"id":43629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43626,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:64","nodeType":"VariableDeclaration","scope":43630,"src":"4179:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43625,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43628,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:64","nodeType":"VariableDeclaration","scope":43630,"src":"4198:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43627,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:64"}},{"id":43636,"nodeType":"EventDefinition","src":"4218:60:64","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:64","parameters":{"id":43635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43632,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:64","nodeType":"VariableDeclaration","scope":43636,"src":"4244:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43631,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43634,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:64","nodeType":"VariableDeclaration","scope":43636,"src":"4263:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43633,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:64"}},{"id":43642,"nodeType":"EventDefinition","src":"4283:74:64","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:64","parameters":{"id":43641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43638,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:64","nodeType":"VariableDeclaration","scope":43642,"src":"4313:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43637,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43640,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:64","nodeType":"VariableDeclaration","scope":43642,"src":"4335:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43639,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:64"}},{"id":43646,"nodeType":"EventDefinition","src":"4362:45:64","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:64","parameters":{"id":43645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43644,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:64","nodeType":"VariableDeclaration","scope":43646,"src":"4388:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43643,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:64"}},{"id":43650,"nodeType":"EventDefinition","src":"4412:46:64","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:64","parameters":{"id":43649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43648,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:64","nodeType":"VariableDeclaration","scope":43650,"src":"4439:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43647,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:64"}},{"id":43686,"nodeType":"FunctionDefinition","src":"4525:375:64","nodes":[],"body":{"id":43685,"nodeType":"Block","src":"4654:246:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"id":43665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43661,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43654,"src":"4668:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:64","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":48652,"src":"4668:25:64","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":43663,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"4697:14:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":43664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:64","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":48646,"src":"4697:24:64","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"src":"4668:53:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43683,"nodeType":"Block","src":"4809:85:64","statements":[{"expression":{"id":43681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43675,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43659,"src":"4823:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":43676,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43654,"src":"4831:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"4831:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43679,"indexExpression":{"id":43678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43656,"src":"4853:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"4831:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43682,"nodeType":"ExpressionStatement","src":"4823:60:64"}]},"id":43684,"nodeType":"IfStatement","src":"4664:230:64","trueBody":{"id":43674,"nodeType":"Block","src":"4723:80:64","statements":[{"expression":{"id":43672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43666,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43659,"src":"4737:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":43667,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43654,"src":"4745:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"4745:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43670,"indexExpression":{"id":43669,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43656,"src":"4767:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:64","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":48636,"src":"4745:47:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43673,"nodeType":"ExpressionStatement","src":"4737:55:64"}]}}]},"documentation":{"id":43651,"nodeType":"StructuredDocumentation","src":"4464:56:64","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:64","parameters":{"id":43657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43654,"mutability":"mutable","name":"validators","nameLocation":"4573:10:64","nodeType":"VariableDeclaration","scope":43686,"src":"4552:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43653,"nodeType":"UserDefinedTypeName","pathNode":{"id":43652,"name":"ValidatorSet","nameLocations":["4552:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"4552:12:64"},"referencedDeclaration":48673,"src":"4552:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43656,"mutability":"mutable","name":"validator","nameLocation":"4601:9:64","nodeType":"VariableDeclaration","scope":43686,"src":"4593:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43655,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:64"},"returnParameters":{"id":43660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43659,"mutability":"mutable","name":"power","nameLocation":"4647:5:64","nodeType":"VariableDeclaration","scope":43686,"src":"4639:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43658,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43701,"nodeType":"FunctionDefinition","src":"4976:178:64","nodes":[],"body":{"id":43700,"nodeType":"Block","src":"5089:65:64","nodes":[],"statements":[{"expression":{"id":43698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43695,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43693,"src":"5099:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":43696,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43690,"src":"5112:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:64","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48658,"src":"5112:35:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43699,"nodeType":"ExpressionStatement","src":"5099:48:64"}]},"documentation":{"id":43687,"nodeType":"StructuredDocumentation","src":"4906:65:64","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:64","parameters":{"id":43691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43690,"mutability":"mutable","name":"validators","nameLocation":"5034:10:64","nodeType":"VariableDeclaration","scope":43701,"src":"5013:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43689,"nodeType":"UserDefinedTypeName","pathNode":{"id":43688,"name":"ValidatorSet","nameLocations":["5013:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5013:12:64"},"referencedDeclaration":48673,"src":"5013:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:64"},"returnParameters":{"id":43694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43693,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:64","nodeType":"VariableDeclaration","scope":43701,"src":"5069:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43692,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43718,"nodeType":"FunctionDefinition","src":"5209:163:64","nodes":[],"body":{"id":43717,"nodeType":"Block","src":"5310:62:64","nodes":[],"statements":[{"expression":{"id":43715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43710,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43708,"src":"5320:5:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43711,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43705,"src":"5328:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"5328:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"5328:35:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":43714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43716,"nodeType":"ExpressionStatement","src":"5320:45:64"}]},"documentation":{"id":43702,"nodeType":"StructuredDocumentation","src":"5160:44:64","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:64","parameters":{"id":43706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43705,"mutability":"mutable","name":"validators","nameLocation":"5261:10:64","nodeType":"VariableDeclaration","scope":43718,"src":"5240:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43704,"nodeType":"UserDefinedTypeName","pathNode":{"id":43703,"name":"ValidatorSet","nameLocations":["5240:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5240:12:64"},"referencedDeclaration":48673,"src":"5240:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:64"},"returnParameters":{"id":43709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43708,"mutability":"mutable","name":"total","nameLocation":"5303:5:64","nodeType":"VariableDeclaration","scope":43718,"src":"5296:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43707,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43738,"nodeType":"FunctionDefinition","src":"5441:231:64","nodes":[],"body":{"id":43737,"nodeType":"Block","src":"5590:82:64","nodes":[],"statements":[{"expression":{"id":43735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43729,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43727,"src":"5600:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":43730,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43722,"src":"5613:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"5613:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43733,"indexExpression":{"id":43732,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43724,"src":"5635:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"5613:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43736,"nodeType":"ExpressionStatement","src":"5600:65:64"}]},"documentation":{"id":43719,"nodeType":"StructuredDocumentation","src":"5378:58:64","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:64","parameters":{"id":43725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43722,"mutability":"mutable","name":"validators","nameLocation":"5503:10:64","nodeType":"VariableDeclaration","scope":43738,"src":"5482:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43721,"nodeType":"UserDefinedTypeName","pathNode":{"id":43720,"name":"ValidatorSet","nameLocations":["5482:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5482:12:64"},"referencedDeclaration":48673,"src":"5482:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43724,"mutability":"mutable","name":"validator","nameLocation":"5531:9:64","nodeType":"VariableDeclaration","scope":43738,"src":"5523:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43723,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:64"},"returnParameters":{"id":43728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43727,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:64","nodeType":"VariableDeclaration","scope":43738,"src":"5570:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43726,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43790,"nodeType":"FunctionDefinition","src":"5678:434:64","nodes":[],"body":{"id":43789,"nodeType":"Block","src":"5792:320:64","nodes":[],"statements":[{"assignments":[43748],"declarations":[{"constant":false,"id":43748,"mutability":"mutable","name":"size","nameLocation":"5809:4:64","nodeType":"VariableDeclaration","scope":43789,"src":"5802:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43747,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43753,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43749,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43741,"src":"5816:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"5816:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"5816:35:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":43752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:64"},{"expression":{"id":43760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43754,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43745,"src":"5863:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43758,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43748,"src":"5889:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":43757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:64","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":43755,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43756,"nodeType":"ArrayTypeName","src":"5879:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":43759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43761,"nodeType":"ExpressionStatement","src":"5863:31:64"},{"body":{"id":43785,"nodeType":"Block","src":"5936:144:64","statements":[{"expression":{"id":43779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":43769,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43745,"src":"5950:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43773,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43770,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"5960:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":43771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43777,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6008:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":43774,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43741,"src":"5969:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"5969:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:64","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":47546,"src":"5969:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":43778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43780,"nodeType":"ExpressionStatement","src":"5950:60:64"},{"id":43784,"nodeType":"UncheckedBlock","src":"6024:46:64","statements":[{"expression":{"id":43782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:64","subExpression":{"id":43781,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6054:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43783,"nodeType":"ExpressionStatement","src":"6052:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43766,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"5923:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43767,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43748,"src":"5928:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43786,"initializationExpression":{"assignments":[43763],"declarations":[{"constant":false,"id":43763,"mutability":"mutable","name":"i","nameLocation":"5916:1:64","nodeType":"VariableDeclaration","scope":43786,"src":"5909:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43762,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43765,"initialValue":{"hexValue":"31","id":43764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:64"},"nodeType":"ForStatement","src":"5904:176:64"},{"expression":{"id":43787,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43745,"src":"6096:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":43746,"id":43788,"nodeType":"Return","src":"6089:16:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:64","parameters":{"id":43742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43741,"mutability":"mutable","name":"validators","nameLocation":"5729:10:64","nodeType":"VariableDeclaration","scope":43790,"src":"5708:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43740,"nodeType":"UserDefinedTypeName","pathNode":{"id":43739,"name":"ValidatorSet","nameLocations":["5708:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5708:12:64"},"referencedDeclaration":48673,"src":"5708:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:64"},"returnParameters":{"id":43746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43745,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:64","nodeType":"VariableDeclaration","scope":43790,"src":"5764:26:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43743,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43744,"nodeType":"ArrayTypeName","src":"5764:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43835,"nodeType":"FunctionDefinition","src":"6183:418:64","nodes":[],"body":{"id":43834,"nodeType":"Block","src":"6288:313:64","nodes":[],"statements":[{"assignments":[43800],"declarations":[{"constant":false,"id":43800,"mutability":"mutable","name":"size","nameLocation":"6305:4:64","nodeType":"VariableDeclaration","scope":43834,"src":"6298:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43799,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43801,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6312:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"6312:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"6312:35:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":43804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:64"},{"body":{"id":43832,"nodeType":"Block","src":"6391:204:64","statements":[{"assignments":[43814],"declarations":[{"constant":false,"id":43814,"mutability":"mutable","name":"validator","nameLocation":"6413:9:64","nodeType":"VariableDeclaration","scope":43832,"src":"6405:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43813,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":43820,"initialValue":{"arguments":[{"id":43818,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"6464:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":43815,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6425:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"6425:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:64","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":47546,"src":"6425:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":43819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:64"},{"expression":{"id":43826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43821,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43797,"src":"6480:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":43823,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6503:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":43824,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43814,"src":"6515:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43822,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43686,"src":"6494:8:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":43825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43827,"nodeType":"ExpressionStatement","src":"6480:45:64"},{"id":43831,"nodeType":"UncheckedBlock","src":"6539:46:64","statements":[{"expression":{"id":43829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:64","subExpression":{"id":43828,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"6569:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43830,"nodeType":"ExpressionStatement","src":"6567:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43810,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"6378:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43811,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43800,"src":"6383:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43833,"initializationExpression":{"assignments":[43807],"declarations":[{"constant":false,"id":43807,"mutability":"mutable","name":"i","nameLocation":"6371:1:64","nodeType":"VariableDeclaration","scope":43833,"src":"6364:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43806,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43809,"initialValue":{"hexValue":"31","id":43808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:64"},"nodeType":"ForStatement","src":"6359:236:64"}]},"documentation":{"id":43791,"nodeType":"StructuredDocumentation","src":"6118:60:64","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:64","parameters":{"id":43795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43794,"mutability":"mutable","name":"validators","nameLocation":"6233:10:64","nodeType":"VariableDeclaration","scope":43835,"src":"6212:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43793,"nodeType":"UserDefinedTypeName","pathNode":{"id":43792,"name":"ValidatorSet","nameLocations":["6212:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"6212:12:64"},"referencedDeclaration":48673,"src":"6212:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:64"},"returnParameters":{"id":43798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43797,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:64","nodeType":"VariableDeclaration","scope":43835,"src":"6268:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43796,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43886,"nodeType":"FunctionDefinition","src":"6690:496:64","nodes":[],"body":{"id":43885,"nodeType":"Block","src":"6794:392:64","nodes":[],"statements":[{"assignments":[43845],"declarations":[{"constant":false,"id":43845,"mutability":"mutable","name":"size","nameLocation":"6811:4:64","nodeType":"VariableDeclaration","scope":43885,"src":"6804:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43844,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43850,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43846,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"6818:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43847,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"6818:28:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":43848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"6818:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":43849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:64"},{"body":{"id":43877,"nodeType":"Block","src":"6898:219:64","statements":[{"assignments":[43859],"declarations":[{"constant":false,"id":43859,"mutability":"mutable","name":"validator","nameLocation":"6920:9:64","nodeType":"VariableDeclaration","scope":43877,"src":"6912:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43858,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":43865,"initialValue":{"arguments":[{"id":43863,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43852,"src":"6972:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":43860,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"6932:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"6932:28:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":43862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:64","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":46928,"src":"6932:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":43864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:64"},{"expression":{"id":43871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43866,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"6988:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":43868,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"7025:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":43869,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43859,"src":"7037:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43867,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43738,"src":"7002:22:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":43870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43872,"nodeType":"ExpressionStatement","src":"6988:59:64"},{"id":43876,"nodeType":"UncheckedBlock","src":"7061:46:64","statements":[{"expression":{"id":43874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:64","subExpression":{"id":43873,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43852,"src":"7091:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43875,"nodeType":"ExpressionStatement","src":"7089:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43855,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43852,"src":"6885:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43856,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43845,"src":"6890:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43878,"initializationExpression":{"assignments":[43852],"declarations":[{"constant":false,"id":43852,"mutability":"mutable","name":"i","nameLocation":"6878:1:64","nodeType":"VariableDeclaration","scope":43878,"src":"6871:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43851,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43854,"initialValue":{"hexValue":"31","id":43853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:64"},"nodeType":"ForStatement","src":"6866:251:64"},{"expression":{"id":43883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43879,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"7126:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":43881,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"7168:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":43880,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43701,"src":"7140:27:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":43882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43884,"nodeType":"ExpressionStatement","src":"7126:53:64"}]},"documentation":{"id":43836,"nodeType":"StructuredDocumentation","src":"6607:78:64","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:64","parameters":{"id":43840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43839,"mutability":"mutable","name":"validators","nameLocation":"6739:10:64","nodeType":"VariableDeclaration","scope":43886,"src":"6718:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43838,"nodeType":"UserDefinedTypeName","pathNode":{"id":43837,"name":"ValidatorSet","nameLocations":["6718:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"6718:12:64"},"referencedDeclaration":48673,"src":"6718:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:64"},"returnParameters":{"id":43843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43842,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:64","nodeType":"VariableDeclaration","scope":43886,"src":"6774:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43841,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43956,"nodeType":"FunctionDefinition","src":"7339:612:64","nodes":[],"body":{"id":43955,"nodeType":"Block","src":"7498:453:64","nodes":[],"statements":[{"assignments":[43900],"declarations":[{"constant":false,"id":43900,"mutability":"mutable","name":"size","nameLocation":"7516:4:64","nodeType":"VariableDeclaration","scope":43955,"src":"7508:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43899,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43903,"initialValue":{"expression":{"id":43901,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7523:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:64","memberName":"length","nodeType":"MemberAccess","src":"7523:16:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:64"},{"assignments":[43908],"declarations":[{"constant":false,"id":43908,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:64","nodeType":"VariableDeclaration","scope":43955,"src":"7549:33:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":43906,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43907,"nodeType":"ArrayTypeName","src":"7549:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":43914,"initialValue":{"arguments":[{"id":43912,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43900,"src":"7599:4:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:64","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":43909,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43910,"nodeType":"ArrayTypeName","src":"7589:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":43913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:64"},{"body":{"id":43951,"nodeType":"Block","src":"7643:269:64","statements":[{"condition":{"id":43927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:64","subExpression":{"arguments":[{"id":43922,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43890,"src":"7680:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":43923,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7692:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43925,"indexExpression":{"id":43924,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7702:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43921,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43973,"src":"7662:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":43926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43935,"nodeType":"IfStatement","src":"7657:116:64","trueBody":{"id":43934,"nodeType":"Block","src":"7707:66:64","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":43929,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7745:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43931,"indexExpression":{"id":43930,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7755:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43928,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37058,"src":"7732:12:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":43932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43933,"nodeType":"RevertStatement","src":"7725:33:64"}]}},{"expression":{"id":43945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":43936,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43908,"src":"7786:16:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":43938,"indexExpression":{"id":43937,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7803:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43940,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43890,"src":"7817:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":43941,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7829:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43943,"indexExpression":{"id":43942,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7839:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43939,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43686,"src":"7808:8:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":43944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43946,"nodeType":"ExpressionStatement","src":"7786:56:64"},{"id":43950,"nodeType":"UncheckedBlock","src":"7856:46:64","statements":[{"expression":{"id":43948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:64","subExpression":{"id":43947,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7886:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43949,"nodeType":"ExpressionStatement","src":"7884:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43918,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7631:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43919,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43900,"src":"7635:4:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43952,"initializationExpression":{"assignments":[43916],"declarations":[{"constant":false,"id":43916,"mutability":"mutable","name":"i","nameLocation":"7628:1:64","nodeType":"VariableDeclaration","scope":43952,"src":"7620:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43915,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43917,"nodeType":"VariableDeclarationStatement","src":"7620:9:64"},"nodeType":"ForStatement","src":"7615:297:64"},{"expression":{"id":43953,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43908,"src":"7928:16:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":43898,"id":43954,"nodeType":"Return","src":"7921:23:64"}]},"documentation":{"id":43887,"nodeType":"StructuredDocumentation","src":"7193:141:64","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:64","parameters":{"id":43894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43890,"mutability":"mutable","name":"validators","nameLocation":"7404:10:64","nodeType":"VariableDeclaration","scope":43956,"src":"7383:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43889,"nodeType":"UserDefinedTypeName","pathNode":{"id":43888,"name":"ValidatorSet","nameLocations":["7383:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"7383:12:64"},"referencedDeclaration":48673,"src":"7383:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43893,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:64","nodeType":"VariableDeclaration","scope":43956,"src":"7424:26:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43891,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43892,"nodeType":"ArrayTypeName","src":"7424:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:64"},"returnParameters":{"id":43898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43956,"src":"7480:16:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":43895,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43896,"nodeType":"ArrayTypeName","src":"7480:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43973,"nodeType":"FunctionDefinition","src":"7957:167:64","nodes":[],"body":{"id":43972,"nodeType":"Block","src":"8059:65:64","nodes":[],"statements":[{"expression":{"arguments":[{"id":43969,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43961,"src":"8107:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":43966,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43959,"src":"8076:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"8076:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"8076:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":43970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":43965,"id":43971,"nodeType":"Return","src":"8069:48:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:64","parameters":{"id":43962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43959,"mutability":"mutable","name":"self","nameLocation":"8005:4:64","nodeType":"VariableDeclaration","scope":43973,"src":"7984:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43958,"nodeType":"UserDefinedTypeName","pathNode":{"id":43957,"name":"ValidatorSet","nameLocations":["7984:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"7984:12:64"},"referencedDeclaration":48673,"src":"7984:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43961,"mutability":"mutable","name":"validator","nameLocation":"8019:9:64","nodeType":"VariableDeclaration","scope":43973,"src":"8011:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43960,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:64"},"returnParameters":{"id":43965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43973,"src":"8053:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43963,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43994,"nodeType":"FunctionDefinition","src":"8165:176:64","nodes":[],"body":{"id":43993,"nodeType":"Block","src":"8272:69:64","nodes":[],"statements":[{"expression":{"id":43991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":43984,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43977,"src":"8282:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"8282:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43988,"indexExpression":{"id":43986,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43979,"src":"8304:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"8282:41:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43990,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43981,"src":"8326:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":43992,"nodeType":"ExpressionStatement","src":"8282:52:64"}]},"documentation":{"id":43974,"nodeType":"StructuredDocumentation","src":"8130:30:64","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:64","parameters":{"id":43982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43977,"mutability":"mutable","name":"validators","nameLocation":"8207:10:64","nodeType":"VariableDeclaration","scope":43994,"src":"8186:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43976,"nodeType":"UserDefinedTypeName","pathNode":{"id":43975,"name":"ValidatorSet","nameLocations":["8186:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"8186:12:64"},"referencedDeclaration":48673,"src":"8186:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43979,"mutability":"mutable","name":"validator","nameLocation":"8227:9:64","nodeType":"VariableDeclaration","scope":43994,"src":"8219:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43978,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43981,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:64","nodeType":"VariableDeclaration","scope":43994,"src":"8238:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":43980,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:64"},"returnParameters":{"id":43983,"nodeType":"ParameterList","parameters":[],"src":"8272:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44015,"nodeType":"FunctionDefinition","src":"8648:175:64","nodes":[],"body":{"id":44014,"nodeType":"Block","src":"8748:75:64","nodes":[],"statements":[{"expression":{"id":44012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44005,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43998,"src":"8758:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"8758:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44009,"indexExpression":{"id":44007,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44000,"src":"8780:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"8758:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44011,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44002,"src":"8810:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44013,"nodeType":"ExpressionStatement","src":"8758:58:64"}]},"documentation":{"id":43995,"nodeType":"StructuredDocumentation","src":"8580:63:64","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:64","parameters":{"id":44003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43998,"mutability":"mutable","name":"validators","nameLocation":"8692:10:64","nodeType":"VariableDeclaration","scope":44015,"src":"8671:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43997,"nodeType":"UserDefinedTypeName","pathNode":{"id":43996,"name":"ValidatorSet","nameLocations":["8671:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"8671:12:64"},"referencedDeclaration":48673,"src":"8671:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44000,"mutability":"mutable","name":"validator","nameLocation":"8712:9:64","nodeType":"VariableDeclaration","scope":44015,"src":"8704:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43999,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44002,"mutability":"mutable","name":"amount","nameLocation":"8731:6:64","nodeType":"VariableDeclaration","scope":44015,"src":"8723:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44001,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:64"},"returnParameters":{"id":44004,"nodeType":"ParameterList","parameters":[],"src":"8748:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44056,"nodeType":"FunctionDefinition","src":"8895:364:64","nodes":[],"body":{"id":44055,"nodeType":"Block","src":"8996:263:64","nodes":[],"statements":[{"assignments":[44027],"declarations":[{"constant":false,"id":44027,"mutability":"mutable","name":"total","nameLocation":"9014:5:64","nodeType":"VariableDeclaration","scope":44055,"src":"9006:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44026,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44033,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44028,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44019,"src":"9022:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9022:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44031,"indexExpression":{"id":44030,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44021,"src":"9044:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"9022:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44034,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"9084:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44035,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44023,"src":"9092:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44041,"nodeType":"IfStatement","src":"9080:81:64","trueBody":{"id":44040,"nodeType":"Block","src":"9100:61:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44037,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37078,"src":"9121:27:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44039,"nodeType":"RevertStatement","src":"9114:36:64"}]}},{"expression":{"id":44044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44042,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"9171:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44043,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44023,"src":"9180:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44045,"nodeType":"ExpressionStatement","src":"9171:15:64"},{"expression":{"id":44053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44046,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44019,"src":"9196:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9196:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44050,"indexExpression":{"id":44048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44021,"src":"9218:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"9196:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44052,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"9247:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44054,"nodeType":"ExpressionStatement","src":"9196:56:64"}]},"documentation":{"id":44016,"nodeType":"StructuredDocumentation","src":"8829:61:64","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:64","parameters":{"id":44024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44019,"mutability":"mutable","name":"validators","nameLocation":"8940:10:64","nodeType":"VariableDeclaration","scope":44056,"src":"8919:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44018,"nodeType":"UserDefinedTypeName","pathNode":{"id":44017,"name":"ValidatorSet","nameLocations":["8919:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"8919:12:64"},"referencedDeclaration":48673,"src":"8919:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44021,"mutability":"mutable","name":"validator","nameLocation":"8960:9:64","nodeType":"VariableDeclaration","scope":44056,"src":"8952:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44020,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44023,"mutability":"mutable","name":"amount","nameLocation":"8979:6:64","nodeType":"VariableDeclaration","scope":44056,"src":"8971:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44022,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:64"},"returnParameters":{"id":44025,"nodeType":"ParameterList","parameters":[],"src":"8996:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44109,"nodeType":"FunctionDefinition","src":"9330:540:64","nodes":[],"body":{"id":44108,"nodeType":"Block","src":"9431:439:64","nodes":[],"statements":[{"assignments":[44068],"declarations":[{"constant":false,"id":44068,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:64","nodeType":"VariableDeclaration","scope":44108,"src":"9441:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44067,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44074,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9465:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9465:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44072,"indexExpression":{"id":44071,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9481:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:64","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":48636,"src":"9465:41:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:64"},{"expression":{"id":44082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44075,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9516:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9516:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44079,"indexExpression":{"id":44077,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9532:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:64","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":48636,"src":"9516:41:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44081,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9560:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44083,"nodeType":"ExpressionStatement","src":"9516:49:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44084,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"9580:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44085,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9597:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44089,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"9645:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44090,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9661:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44105,"nodeType":"Block","src":"9771:93:64","statements":[{"expression":{"arguments":[{"id":44100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9808:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44101,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9825:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44102,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9846:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44099,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44593,"src":"9785:15:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:64","9814:9:64","9836:8:64"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44104,"nodeType":"ExpressionStatement","src":"9785:68:64"}]},"id":44106,"nodeType":"IfStatement","src":"9641:223:64","trueBody":{"id":44098,"nodeType":"Block","src":"9668:97:64","statements":[{"expression":{"arguments":[{"id":44093,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9707:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44094,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9726:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44095,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9747:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44092,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44382,"src":"9682:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:64","9713:11:64","9737:8:64"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44097,"nodeType":"ExpressionStatement","src":"9682:72:64"}]}},"id":44107,"nodeType":"IfStatement","src":"9576:288:64","trueBody":{"id":44088,"nodeType":"Block","src":"9604:31:64","statements":[{"functionReturnParameters":44066,"id":44087,"nodeType":"Return","src":"9618:7:64"}]}}]},"documentation":{"id":44057,"nodeType":"StructuredDocumentation","src":"9265:60:64","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:64","parameters":{"id":44065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44060,"mutability":"mutable","name":"self","nameLocation":"9382:4:64","nodeType":"VariableDeclaration","scope":44109,"src":"9361:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44059,"nodeType":"UserDefinedTypeName","pathNode":{"id":44058,"name":"ValidatorSet","nameLocations":["9361:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"9361:12:64"},"referencedDeclaration":48673,"src":"9361:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44062,"mutability":"mutable","name":"validator","nameLocation":"9396:9:64","nodeType":"VariableDeclaration","scope":44109,"src":"9388:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44061,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44064,"mutability":"mutable","name":"power","nameLocation":"9415:5:64","nodeType":"VariableDeclaration","scope":44109,"src":"9407:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44063,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:64"},"returnParameters":{"id":44066,"nodeType":"ParameterList","parameters":[],"src":"9431:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44151,"nodeType":"FunctionDefinition","src":"9876:404:64","nodes":[],"body":{"id":44150,"nodeType":"Block","src":"9971:309:64","nodes":[],"statements":[{"assignments":[44120],"declarations":[{"constant":false,"id":44120,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:64","nodeType":"VariableDeclaration","scope":44150,"src":"9981:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44119,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44128,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10005:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10005:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44124,"indexExpression":{"id":44123,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44114,"src":"10021:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10005:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44126,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44116,"src":"10054:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:64"},{"expression":{"id":44136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44129,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10070:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10070:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44133,"indexExpression":{"id":44131,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44114,"src":"10086:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10070:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44135,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"10119:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44137,"nodeType":"ExpressionStatement","src":"10070:62:64"},{"expression":{"id":44142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44138,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10143:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:64","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48658,"src":"10143:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44141,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44116,"src":"10176:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44143,"nodeType":"ExpressionStatement","src":"10143:39:64"},{"expression":{"arguments":[{"id":44145,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10218:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44146,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44114,"src":"10237:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44147,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"10258:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44144,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44382,"src":"10193:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:64","10224:11:64","10248:8:64"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44149,"nodeType":"ExpressionStatement","src":"10193:80:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:64","parameters":{"id":44117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44112,"mutability":"mutable","name":"self","nameLocation":"9921:4:64","nodeType":"VariableDeclaration","scope":44151,"src":"9900:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44111,"nodeType":"UserDefinedTypeName","pathNode":{"id":44110,"name":"ValidatorSet","nameLocations":["9900:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"9900:12:64"},"referencedDeclaration":48673,"src":"9900:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44114,"mutability":"mutable","name":"validator","nameLocation":"9935:9:64","nodeType":"VariableDeclaration","scope":44151,"src":"9927:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44113,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44116,"mutability":"mutable","name":"amount","nameLocation":"9954:6:64","nodeType":"VariableDeclaration","scope":44151,"src":"9946:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44115,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:64"},"returnParameters":{"id":44118,"nodeType":"ParameterList","parameters":[],"src":"9971:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44217,"nodeType":"FunctionDefinition","src":"10286:616:64","nodes":[],"body":{"id":44216,"nodeType":"Block","src":"10382:520:64","nodes":[],"statements":[{"assignments":[44162],"declarations":[{"constant":false,"id":44162,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:64","nodeType":"VariableDeclaration","scope":44216,"src":"10392:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44161,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44170,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44163,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10416:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10416:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44166,"indexExpression":{"id":44165,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10432:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10416:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44168,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44158,"src":"10465:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:64"},{"assignments":[44172],"declarations":[{"constant":false,"id":44172,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:64","nodeType":"VariableDeclaration","scope":44216,"src":"10481:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44171,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44178,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10507:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10507:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44176,"indexExpression":{"id":44175,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10523:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"10507:42:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:64"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44179,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44162,"src":"10564:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44182,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44172,"src":"10586:15:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44202,"nodeType":"Block","src":"10672:87:64","statements":[{"expression":{"id":44200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44193,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10686:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10686:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44197,"indexExpression":{"id":44195,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10702:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10686:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44199,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44162,"src":"10735:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44201,"nodeType":"ExpressionStatement","src":"10686:62:64"}]},"id":44203,"nodeType":"IfStatement","src":"10560:199:64","trueBody":{"id":44192,"nodeType":"Block","src":"10608:58:64","statements":[{"expression":{"id":44190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:64","subExpression":{"baseExpression":{"expression":{"id":44186,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10629:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10629:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44189,"indexExpression":{"id":44188,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10645:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44191,"nodeType":"ExpressionStatement","src":"10622:33:64"}]}},{"expression":{"arguments":[{"id":44205,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10792:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44206,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10809:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44207,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44162,"src":"10830:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44204,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44593,"src":"10769:15:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:64","10798:9:64","10820:8:64"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44209,"nodeType":"ExpressionStatement","src":"10769:76:64"},{"expression":{"id":44214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44210,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10856:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:64","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48658,"src":"10856:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44213,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44158,"src":"10889:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44215,"nodeType":"ExpressionStatement","src":"10856:39:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:64","parameters":{"id":44159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44154,"mutability":"mutable","name":"self","nameLocation":"10332:4:64","nodeType":"VariableDeclaration","scope":44217,"src":"10311:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44153,"nodeType":"UserDefinedTypeName","pathNode":{"id":44152,"name":"ValidatorSet","nameLocations":["10311:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"10311:12:64"},"referencedDeclaration":48673,"src":"10311:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44156,"mutability":"mutable","name":"validator","nameLocation":"10346:9:64","nodeType":"VariableDeclaration","scope":44217,"src":"10338:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44155,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44158,"mutability":"mutable","name":"amount","nameLocation":"10365:6:64","nodeType":"VariableDeclaration","scope":44217,"src":"10357:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44157,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:64"},"returnParameters":{"id":44160,"nodeType":"ParameterList","parameters":[],"src":"10382:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44382,"nodeType":"FunctionDefinition","src":"11008:2209:64","nodes":[],"body":{"id":44381,"nodeType":"Block","src":"11110:2107:64","nodes":[],"statements":[{"condition":{"arguments":[{"id":44231,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11155:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11124:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11124:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"11124:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44249,"nodeType":"IfStatement","src":"11120:226:64","trueBody":{"id":44248,"nodeType":"Block","src":"11169:177:64","statements":[{"expression":{"arguments":[{"id":44238,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11223:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44239,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11229:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44233,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11183:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11183:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:64","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47820,"src":"11183:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44241,"nodeType":"ExpressionStatement","src":"11183:58:64"},{"eventCall":{"arguments":[{"id":44243,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11293:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44244,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"11306:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44242,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43618,"src":"11260:32:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44246,"nodeType":"EmitStatement","src":"11255:60:64"},{"functionReturnParameters":44227,"id":44247,"nodeType":"Return","src":"11329:7:64"}]}},{"assignments":[44251],"declarations":[{"constant":false,"id":44251,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:64","nodeType":"VariableDeclaration","scope":44381,"src":"11408:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44250,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44254,"initialValue":{"expression":{"id":44252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11429:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:64","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":48655,"src":"11429:16:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:64"},{"assignments":[44256],"declarations":[{"constant":false,"id":44256,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:64","nodeType":"VariableDeclaration","scope":44381,"src":"11455:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44255,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44261,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11475:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11475:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"11475:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44262,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44251,"src":"11520:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44263,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44256,"src":"11534:10:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44281,"nodeType":"IfStatement","src":"11516:262:64","trueBody":{"id":44280,"nodeType":"Block","src":"11546:232:64","statements":[{"expression":{"arguments":[{"id":44270,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11669:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44271,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11675:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11640:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11640:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"11640:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44273,"nodeType":"ExpressionStatement","src":"11640:47:64"},{"eventCall":{"arguments":[{"id":44275,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11725:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44276,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"11738:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44274,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43630,"src":"11706:18:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44278,"nodeType":"EmitStatement","src":"11701:46:64"},{"functionReturnParameters":44227,"id":44279,"nodeType":"Return","src":"11761:7:64"}]}},{"assignments":[44283,44285],"declarations":[{"constant":false,"id":44283,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:64","nodeType":"VariableDeclaration","scope":44381,"src":"12317:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44282,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44285,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:64","nodeType":"VariableDeclaration","scope":44381,"src":"12337:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44284,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44291,"initialValue":{"arguments":[{"id":44289,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12389:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44286,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12363:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"12363:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:64","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"12363:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44292,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44285,"src":"12408:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44293,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"12425:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44344,"nodeType":"IfStatement","src":"12404:452:64","trueBody":{"id":44343,"nodeType":"Block","src":"12435:421:64","statements":[{"expression":{"arguments":[{"id":44300,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12475:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44295,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12449:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"12449:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47693,"src":"12449:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44302,"nodeType":"ExpressionStatement","src":"12449:31:64"},{"condition":{"arguments":[{"id":44306,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12531:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44303,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12499:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12499:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"12499:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44318,"nodeType":"IfStatement","src":"12495:140:64","trueBody":{"id":44317,"nodeType":"Block","src":"12545:90:64","statements":[{"expression":{"arguments":[{"id":44313,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12602:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44314,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12608:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44308,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12563:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12563:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:64","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":47167,"src":"12563:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44316,"nodeType":"ExpressionStatement","src":"12563:57:64"}]}},{"expression":{"arguments":[{"id":44324,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12678:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44325,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12684:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12649:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"12649:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"12649:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44327,"nodeType":"ExpressionStatement","src":"12649:47:64"},{"expression":{"arguments":[{"id":44333,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12740:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44334,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44283,"src":"12746:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44328,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12710:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12710:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47008,"src":"12710:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44336,"nodeType":"ExpressionStatement","src":"12710:47:64"},{"eventCall":{"arguments":[{"id":44338,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44283,"src":"12801:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44339,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12813:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44337,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43642,"src":"12777:23:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":44340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44341,"nodeType":"EmitStatement","src":"12772:53:64"},{"functionReturnParameters":44227,"id":44342,"nodeType":"Return","src":"12839:7:64"}]}},{"condition":{"arguments":[{"id":44348,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12902:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44345,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12870:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12870:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"12870:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44366,"nodeType":"IfStatement","src":"12866:229:64","trueBody":{"id":44365,"nodeType":"Block","src":"12916:179:64","statements":[{"expression":{"arguments":[{"id":44355,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12971:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44356,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12977:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44350,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12930:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12930:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44354,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:64","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47202,"src":"12930:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44358,"nodeType":"ExpressionStatement","src":"12930:59:64"},{"eventCall":{"arguments":[{"id":44360,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"13042:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44361,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"13055:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44359,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"13008:33:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44363,"nodeType":"EmitStatement","src":"13003:61:64"},{"functionReturnParameters":44227,"id":44364,"nodeType":"Return","src":"13078:7:64"}]}},{"expression":{"arguments":[{"id":44372,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"13135:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44373,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"13141:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"13105:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13105:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47008,"src":"13105:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44375,"nodeType":"ExpressionStatement","src":"13105:48:64"},{"eventCall":{"arguments":[{"id":44377,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"13188:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44378,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"13201:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44376,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43636,"src":"13168:19:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44380,"nodeType":"EmitStatement","src":"13163:47:64"}]},"documentation":{"id":44218,"nodeType":"StructuredDocumentation","src":"10908:95:64","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:64","parameters":{"id":44226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44221,"mutability":"mutable","name":"self","nameLocation":"11056:4:64","nodeType":"VariableDeclaration","scope":44382,"src":"11035:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44220,"nodeType":"UserDefinedTypeName","pathNode":{"id":44219,"name":"ValidatorSet","nameLocations":["11035:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"11035:12:64"},"referencedDeclaration":48673,"src":"11035:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44223,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:64","nodeType":"VariableDeclaration","scope":44382,"src":"11062:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44222,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44225,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:64","nodeType":"VariableDeclaration","scope":44382,"src":"11083:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44224,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:64"},"returnParameters":{"id":44227,"nodeType":"ParameterList","parameters":[],"src":"11110:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44593,"nodeType":"FunctionDefinition","src":"13320:2014:64","nodes":[],"body":{"id":44592,"nodeType":"Block","src":"13418:1916:64","nodes":[],"statements":[{"condition":{"arguments":[{"id":44396,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13464:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44393,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13432:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13432:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"13432:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44433,"nodeType":"IfStatement","src":"13428:421:64","trueBody":{"id":44432,"nodeType":"Block","src":"13476:373:64","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44398,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"13494:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44416,"nodeType":"IfStatement","src":"13490:185:64","trueBody":{"id":44415,"nodeType":"Block","src":"13509:166:64","statements":[{"expression":{"arguments":[{"id":44406,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13566:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44407,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13572:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44401,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13527:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13527:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:64","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":47167,"src":"13527:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44409,"nodeType":"ExpressionStatement","src":"13527:55:64"},{"eventCall":{"arguments":[{"id":44411,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13626:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44410,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43650,"src":"13605:20:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":44412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44413,"nodeType":"EmitStatement","src":"13600:36:64"},{"functionReturnParameters":44392,"id":44414,"nodeType":"Return","src":"13654:7:64"}]}},{"expression":{"arguments":[{"id":44422,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13729:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44423,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13735:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44417,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13688:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13688:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:64","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47237,"src":"13688:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44425,"nodeType":"ExpressionStatement","src":"13688:57:64"},{"eventCall":{"arguments":[{"id":44427,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13798:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44428,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"13809:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44426,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"13764:33:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44430,"nodeType":"EmitStatement","src":"13759:59:64"},{"functionReturnParameters":44392,"id":44431,"nodeType":"Return","src":"13832:7:64"}]}},{"condition":{"id":44439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:64","subExpression":{"arguments":[{"id":44437,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13919:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44434,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13888:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"13888:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"13888:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44444,"nodeType":"IfStatement","src":"13883:106:64","trueBody":{"id":44443,"nodeType":"Block","src":"13931:58:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44440,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36936,"src":"13952:24:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44442,"nodeType":"RevertStatement","src":"13945:33:64"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44445,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"14053:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44503,"nodeType":"IfStatement","src":"14049:508:64","trueBody":{"id":44502,"nodeType":"Block","src":"14068:489:64","statements":[{"expression":{"arguments":[{"id":44453,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14120:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44454,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"14126:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44448,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14082:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14082:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:64","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":47785,"src":"14082:37:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44456,"nodeType":"ExpressionStatement","src":"14082:54:64"},{"eventCall":{"arguments":[{"id":44458,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"14175:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44457,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43646,"src":"14155:19:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44460,"nodeType":"EmitStatement","src":"14150:35:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44461,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14204:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14204:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"14204:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":44465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44500,"nodeType":"IfStatement","src":"14200:326:64","trueBody":{"id":44499,"nodeType":"Block","src":"14243:283:64","statements":[{"assignments":[44468,44470],"declarations":[{"constant":false,"id":44468,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:64","nodeType":"VariableDeclaration","scope":44499,"src":"14262:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44467,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44470,"mutability":"mutable","name":"power","nameLocation":"14292:5:64","nodeType":"VariableDeclaration","scope":44499,"src":"14284:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44469,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44476,"initialValue":{"arguments":[{"id":44474,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14328:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44471,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14301:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14301:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:64","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":47278,"src":"14301:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:64"},{"expression":{"arguments":[{"id":44482,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14378:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44477,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14351:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14351:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47075,"src":"14351:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44484,"nodeType":"ExpressionStatement","src":"14351:32:64"},{"expression":{"arguments":[{"id":44490,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14430:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44491,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44468,"src":"14436:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44485,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14401:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14401:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"14401:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44493,"nodeType":"ExpressionStatement","src":"14401:48:64"},{"eventCall":{"arguments":[{"id":44495,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44468,"src":"14491:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44496,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44470,"src":"14505:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44494,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43630,"src":"14472:18:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44498,"nodeType":"EmitStatement","src":"14467:44:64"}]}},{"functionReturnParameters":44392,"id":44501,"nodeType":"Return","src":"14540:7:64"}]}},{"expression":{"arguments":[{"id":44509,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14607:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"14613:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44504,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14567:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14567:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:64","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47855,"src":"14567:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44512,"nodeType":"ExpressionStatement","src":"14567:56:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44513,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14638:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14638:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"14638:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44521,"nodeType":"IfStatement","src":"14634:74:64","trueBody":{"id":44520,"nodeType":"Block","src":"14677:31:64","statements":[{"functionReturnParameters":44392,"id":44519,"nodeType":"Return","src":"14691:7:64"}]}},{"assignments":[44523,44525],"declarations":[{"constant":false,"id":44523,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:64","nodeType":"VariableDeclaration","scope":44592,"src":"14719:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44522,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44525,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:64","nodeType":"VariableDeclaration","scope":44592,"src":"14741:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44524,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44531,"initialValue":{"arguments":[{"id":44529,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14793:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44526,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14767:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14767:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:64","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"14767:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:64"},{"assignments":[44533,44535],"declarations":[{"constant":false,"id":44533,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:64","nodeType":"VariableDeclaration","scope":44592,"src":"14809:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44532,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44535,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:64","nodeType":"VariableDeclaration","scope":44592,"src":"14832:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44534,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44541,"initialValue":{"arguments":[{"id":44539,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14886:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44536,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14859:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14859:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:64","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":47278,"src":"14859:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44542,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44525,"src":"14905:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44543,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44535,"src":"14922:15:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44586,"nodeType":"IfStatement","src":"14901:358:64","trueBody":{"id":44585,"nodeType":"Block","src":"14939:320:64","statements":[{"expression":{"arguments":[{"id":44550,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14979:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44545,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14953:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14953:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47693,"src":"14953:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44552,"nodeType":"ExpressionStatement","src":"14953:31:64"},{"expression":{"arguments":[{"id":44558,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15025:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44553,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14998:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14998:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47075,"src":"14998:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44560,"nodeType":"ExpressionStatement","src":"14998:32:64"},{"expression":{"arguments":[{"id":44566,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15073:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44567,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44533,"src":"15079:13:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44561,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15044:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"15044:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"15044:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44569,"nodeType":"ExpressionStatement","src":"15044:49:64"},{"expression":{"arguments":[{"id":44575,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15137:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44576,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44523,"src":"15143:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44570,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15107:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"15107:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47008,"src":"15107:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44578,"nodeType":"ExpressionStatement","src":"15107:49:64"},{"eventCall":{"arguments":[{"id":44580,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44523,"src":"15200:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44581,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44533,"src":"15214:13:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44579,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43642,"src":"15176:23:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":44582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44583,"nodeType":"EmitStatement","src":"15171:57:64"},{"functionReturnParameters":44392,"id":44584,"nodeType":"Return","src":"15242:7:64"}]}},{"eventCall":{"arguments":[{"id":44588,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"15307:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44589,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"15318:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44587,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43618,"src":"15274:32:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44591,"nodeType":"EmitStatement","src":"15269:58:64"}]},"documentation":{"id":44383,"nodeType":"StructuredDocumentation","src":"13223:92:64","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:64","parameters":{"id":44391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44386,"mutability":"mutable","name":"self","nameLocation":"13366:4:64","nodeType":"VariableDeclaration","scope":44593,"src":"13345:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44385,"nodeType":"UserDefinedTypeName","pathNode":{"id":44384,"name":"ValidatorSet","nameLocations":["13345:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"13345:12:64"},"referencedDeclaration":48673,"src":"13345:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44388,"mutability":"mutable","name":"validator","nameLocation":"13380:9:64","nodeType":"VariableDeclaration","scope":44593,"src":"13372:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44387,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44390,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:64","nodeType":"VariableDeclaration","scope":44593,"src":"13391:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44389,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:64"},"returnParameters":{"id":44392,"nodeType":"ParameterList","parameters":[],"src":"13418:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":43604,"nodeType":"StructuredDocumentation","src":"3860:40:64","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[44594],"name":"LibValidatorSet","nameLocation":"3908:15:64","scope":45729,"usedErrors":[]},{"id":45464,"nodeType":"ContractDefinition","src":"15338:10289:64","nodes":[{"id":44598,"nodeType":"UsingForDirective","src":"15363:53:64","nodes":[],"global":false,"libraryName":{"id":44595,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":43603,"src":"15369:22:64"},"typeName":{"id":44597,"nodeType":"UserDefinedTypeName","pathNode":{"id":44596,"name":"StakingReleaseQueue","nameLocations":["15396:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"15396:19:64"},"referencedDeclaration":48633,"src":"15396:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":44602,"nodeType":"UsingForDirective","src":"15421:47:64","nodes":[],"global":false,"libraryName":{"id":44599,"name":"LibStakingChangeLog","nameLocations":["15427:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":45966,"src":"15427:19:64"},"typeName":{"id":44601,"nodeType":"UserDefinedTypeName","pathNode":{"id":44600,"name":"StakingChangeLog","nameLocations":["15451:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"15451:16:64"},"referencedDeclaration":48606,"src":"15451:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":44606,"nodeType":"UsingForDirective","src":"15473:39:64","nodes":[],"global":false,"libraryName":{"id":44603,"name":"LibValidatorSet","nameLocations":["15479:15:64"],"nodeType":"IdentifierPath","referencedDeclaration":44594,"src":"15479:15:64"},"typeName":{"id":44605,"nodeType":"UserDefinedTypeName","pathNode":{"id":44604,"name":"ValidatorSet","nameLocations":["15499:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"15499:12:64"},"referencedDeclaration":48673,"src":"15499:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":44610,"nodeType":"UsingForDirective","src":"15517:25:64","nodes":[],"global":false,"libraryName":{"id":44607,"name":"LibMaxPQ","nameLocations":["15523:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":47494,"src":"15523:8:64"},"typeName":{"id":44609,"nodeType":"UserDefinedTypeName","pathNode":{"id":44608,"name":"MaxPQ","nameLocations":["15536:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"15536:5:64"},"referencedDeclaration":46889,"src":"15536:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44614,"nodeType":"UsingForDirective","src":"15547:25:64","nodes":[],"global":false,"libraryName":{"id":44611,"name":"LibMinPQ","nameLocations":["15553:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":48113,"src":"15553:8:64"},"typeName":{"id":44613,"nodeType":"UserDefinedTypeName","pathNode":{"id":44612,"name":"MinPQ","nameLocations":["15566:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"15566:5:64"},"referencedDeclaration":47507,"src":"15566:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}}},{"id":44617,"nodeType":"UsingForDirective","src":"15577:34:64","nodes":[],"global":false,"libraryName":{"id":44615,"name":"Address","nameLocations":["15583:7:64"],"nodeType":"IdentifierPath","referencedDeclaration":32409,"src":"15583:7:64"},"typeName":{"id":44616,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44620,"nodeType":"VariableDeclaration","src":"15617:57:64","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:64","scope":45464,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":44618,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":44619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":44624,"nodeType":"EventDefinition","src":"15681:50:64","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:64","parameters":{"id":44623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44622,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:64","nodeType":"VariableDeclaration","scope":44624,"src":"15716:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":44621,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:64"}},{"id":44630,"nodeType":"EventDefinition","src":"15736:59:64","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:64","parameters":{"id":44629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44626,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:64","nodeType":"VariableDeclaration","scope":44630,"src":"15760:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44625,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44628,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:64","nodeType":"VariableDeclaration","scope":44630,"src":"15779:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44627,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:64"}},{"id":44651,"nodeType":"FunctionDefinition","src":"15846:221:64","nodes":[],"body":{"id":44650,"nodeType":"Block","src":"15934:133:64","nodes":[],"statements":[{"assignments":[44639],"declarations":[{"constant":false,"id":44639,"mutability":"mutable","name":"s","nameLocation":"15971:1:64","nodeType":"VariableDeclaration","scope":44650,"src":"15944:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44638,"nodeType":"UserDefinedTypeName","pathNode":{"id":44637,"name":"SubnetActorStorage","nameLocations":["15944:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"15944:18:64"},"referencedDeclaration":46085,"src":"15944:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44643,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44640,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"15975:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"15975:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:64"},{"expression":{"arguments":[{"id":44647,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44632,"src":"16050:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44644,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44639,"src":"16026:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16026:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:64","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":43686,"src":"16026:23:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44636,"id":44649,"nodeType":"Return","src":"16019:41:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:64","parameters":{"id":44633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44632,"mutability":"mutable","name":"validator","nameLocation":"15881:9:64","nodeType":"VariableDeclaration","scope":44651,"src":"15873:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44631,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:64"},"returnParameters":{"id":44636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44635,"mutability":"mutable","name":"power","nameLocation":"15927:5:64","nodeType":"VariableDeclaration","scope":44651,"src":"15919:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44634,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44674,"nodeType":"FunctionDefinition","src":"16136:225:64","nodes":[],"body":{"id":44673,"nodeType":"Block","src":"16211:150:64","nodes":[],"statements":[{"assignments":[44661],"declarations":[{"constant":false,"id":44661,"mutability":"mutable","name":"s","nameLocation":"16248:1:64","nodeType":"VariableDeclaration","scope":44673,"src":"16221:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44660,"nodeType":"UserDefinedTypeName","pathNode":{"id":44659,"name":"SubnetActorStorage","nameLocations":["16221:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"16221:18:64"},"referencedDeclaration":46085,"src":"16221:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44665,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44662,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"16252:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"16252:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:64"},{"expression":{"arguments":[{"id":44670,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44654,"src":"16344:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":44666,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44661,"src":"16303:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16303:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"16303:31:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"16303:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44658,"id":44672,"nodeType":"Return","src":"16296:58:64"}]},"documentation":{"id":44652,"nodeType":"StructuredDocumentation","src":"16073:58:64","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:64","parameters":{"id":44655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44654,"mutability":"mutable","name":"validator","nameLocation":"16171:9:64","nodeType":"VariableDeclaration","scope":44674,"src":"16163:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44653,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:64"},"returnParameters":{"id":44658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44657,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44674,"src":"16205:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44656,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44697,"nodeType":"FunctionDefinition","src":"16430:227:64","nodes":[],"body":{"id":44696,"nodeType":"Block","src":"16506:151:64","nodes":[],"statements":[{"assignments":[44684],"declarations":[{"constant":false,"id":44684,"mutability":"mutable","name":"s","nameLocation":"16543:1:64","nodeType":"VariableDeclaration","scope":44696,"src":"16516:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44683,"nodeType":"UserDefinedTypeName","pathNode":{"id":44682,"name":"SubnetActorStorage","nameLocations":["16516:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"16516:18:64"},"referencedDeclaration":46085,"src":"16516:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44688,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44685,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"16547:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"16547:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:64"},{"expression":{"arguments":[{"id":44693,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44677,"src":"16640:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":44689,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44684,"src":"16598:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16598:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"16598:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"16598:41:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44681,"id":44695,"nodeType":"Return","src":"16591:59:64"}]},"documentation":{"id":44675,"nodeType":"StructuredDocumentation","src":"16367:58:64","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:64","parameters":{"id":44678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44677,"mutability":"mutable","name":"validator","nameLocation":"16466:9:64","nodeType":"VariableDeclaration","scope":44697,"src":"16458:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44676,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:64"},"returnParameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44697,"src":"16500:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44679,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44722,"nodeType":"FunctionDefinition","src":"16721:280:64","nodes":[],"body":{"id":44721,"nodeType":"Block","src":"16788:213:64","nodes":[],"statements":[{"assignments":[44707],"declarations":[{"constant":false,"id":44707,"mutability":"mutable","name":"s","nameLocation":"16825:1:64","nodeType":"VariableDeclaration","scope":44721,"src":"16798:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44706,"nodeType":"UserDefinedTypeName","pathNode":{"id":44705,"name":"SubnetActorStorage","nameLocations":["16798:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"16798:18:64"},"referencedDeclaration":46085,"src":"16798:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44711,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44708,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"16829:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16851:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"16829:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16829:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16798:65:64"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":44712,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44707,"src":"16937:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16939:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16937:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16952:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"16937:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44716,"indexExpression":{"id":44715,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44700,"src":"16963:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16937:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16974:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"16937:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":44718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16993:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16937:57:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44704,"id":44720,"nodeType":"Return","src":"16930:64:64"}]},"documentation":{"id":44698,"nodeType":"StructuredDocumentation","src":"16663:53:64","text":"@notice Checks if the validator has staked before"},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"16730:9:64","parameters":{"id":44701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44700,"mutability":"mutable","name":"validator","nameLocation":"16748:9:64","nodeType":"VariableDeclaration","scope":44722,"src":"16740:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44699,"name":"address","nodeType":"ElementaryTypeName","src":"16740:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16739:19:64"},"returnParameters":{"id":44704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44703,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44722,"src":"16782:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44702,"name":"bool","nodeType":"ElementaryTypeName","src":"16782:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16781:6:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44740,"nodeType":"FunctionDefinition","src":"17007:201:64","nodes":[],"body":{"id":44739,"nodeType":"Block","src":"17071:137:64","nodes":[],"statements":[{"assignments":[44729],"declarations":[{"constant":false,"id":44729,"mutability":"mutable","name":"s","nameLocation":"17108:1:64","nodeType":"VariableDeclaration","scope":44739,"src":"17081:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44728,"nodeType":"UserDefinedTypeName","pathNode":{"id":44727,"name":"SubnetActorStorage","nameLocations":["17081:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17081:18:64"},"referencedDeclaration":46085,"src":"17081:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44733,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44730,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17112:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17134:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17112:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17112:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17081:65:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44734,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44729,"src":"17163:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17165:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17163:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17178:21:64","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":43718,"src":"17163:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17163:38:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":44726,"id":44738,"nodeType":"Return","src":"17156:45:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17016:21:64","parameters":{"id":44723,"nodeType":"ParameterList","parameters":[],"src":"17037:2:64"},"returnParameters":{"id":44726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44725,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44740,"src":"17063:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44724,"name":"uint16","nodeType":"ElementaryTypeName","src":"17063:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17062:8:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44766,"nodeType":"FunctionDefinition","src":"17296:243:64","nodes":[],"body":{"id":44765,"nodeType":"Block","src":"17354:185:64","nodes":[],"statements":[{"assignments":[44748],"declarations":[{"constant":false,"id":44748,"mutability":"mutable","name":"s","nameLocation":"17391:1:64","nodeType":"VariableDeclaration","scope":44765,"src":"17364:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44747,"nodeType":"UserDefinedTypeName","pathNode":{"id":44746,"name":"SubnetActorStorage","nameLocations":["17364:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17364:18:64"},"referencedDeclaration":46085,"src":"17364:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44752,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44749,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17395:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17417:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17395:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17395:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17364:65:64"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":44753,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44748,"src":"17446:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17446:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17461:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"17446:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17479:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"17446:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17446:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":44758,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44748,"src":"17491:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17493:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17491:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17506:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"17491:31:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17523:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"17491:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17491:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17446:86:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":44745,"id":44764,"nodeType":"Return","src":"17439:93:64"}]},"documentation":{"id":44741,"nodeType":"StructuredDocumentation","src":"17214:77:64","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17305:15:64","parameters":{"id":44742,"nodeType":"ParameterList","parameters":[],"src":"17320:2:64"},"returnParameters":{"id":44745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44766,"src":"17346:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44743,"name":"uint16","nodeType":"ElementaryTypeName","src":"17346:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17345:8:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44784,"nodeType":"FunctionDefinition","src":"17545:214:64","nodes":[],"body":{"id":44783,"nodeType":"Block","src":"17616:143:64","nodes":[],"statements":[{"assignments":[44773],"declarations":[{"constant":false,"id":44773,"mutability":"mutable","name":"s","nameLocation":"17653:1:64","nodeType":"VariableDeclaration","scope":44783,"src":"17626:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44772,"nodeType":"UserDefinedTypeName","pathNode":{"id":44771,"name":"SubnetActorStorage","nameLocations":["17626:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17626:18:64"},"referencedDeclaration":46085,"src":"17626:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44777,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44774,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17657:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17679:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17657:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17657:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17626:65:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44778,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44773,"src":"17708:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17710:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17708:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17723:27:64","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":43701,"src":"17708:42:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17708:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44770,"id":44782,"nodeType":"Return","src":"17701:51:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"17554:27:64","parameters":{"id":44767,"nodeType":"ParameterList","parameters":[],"src":"17581:2:64"},"returnParameters":{"id":44770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44784,"src":"17607:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44768,"name":"uint256","nodeType":"ElementaryTypeName","src":"17607:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17606:9:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44802,"nodeType":"FunctionDefinition","src":"17765:205:64","nodes":[],"body":{"id":44801,"nodeType":"Block","src":"17827:143:64","nodes":[],"statements":[{"assignments":[44791],"declarations":[{"constant":false,"id":44791,"mutability":"mutable","name":"s","nameLocation":"17864:1:64","nodeType":"VariableDeclaration","scope":44801,"src":"17837:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44790,"nodeType":"UserDefinedTypeName","pathNode":{"id":44789,"name":"SubnetActorStorage","nameLocations":["17837:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17837:18:64"},"referencedDeclaration":46085,"src":"17837:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44795,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44792,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17868:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17890:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17868:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17868:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17837:65:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44796,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44791,"src":"17919:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17921:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17919:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17934:27:64","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":43701,"src":"17919:42:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17919:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44788,"id":44800,"nodeType":"Return","src":"17912:51:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"17774:18:64","parameters":{"id":44785,"nodeType":"ParameterList","parameters":[],"src":"17792:2:64"},"returnParameters":{"id":44788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44802,"src":"17818:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44786,"name":"uint256","nodeType":"ElementaryTypeName","src":"17818:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17817:9:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44825,"nodeType":"FunctionDefinition","src":"18045:236:64","nodes":[],"body":{"id":44824,"nodeType":"Block","src":"18130:151:64","nodes":[],"statements":[{"assignments":[44812],"declarations":[{"constant":false,"id":44812,"mutability":"mutable","name":"s","nameLocation":"18167:1:64","nodeType":"VariableDeclaration","scope":44824,"src":"18140:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44811,"nodeType":"UserDefinedTypeName","pathNode":{"id":44810,"name":"SubnetActorStorage","nameLocations":["18140:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"18140:18:64"},"referencedDeclaration":46085,"src":"18140:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44816,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44813,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"18171:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18193:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"18171:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18171:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18140:65:64"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":44817,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44812,"src":"18222:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18224:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"18222:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18237:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"18222:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44821,"indexExpression":{"id":44820,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44805,"src":"18248:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18222:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18259:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"18222:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44809,"id":44823,"nodeType":"Return","src":"18215:59:64"}]},"documentation":{"id":44803,"nodeType":"StructuredDocumentation","src":"17976:64:64","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18054:24:64","parameters":{"id":44806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44805,"mutability":"mutable","name":"validator","nameLocation":"18087:9:64","nodeType":"VariableDeclaration","scope":44825,"src":"18079:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44804,"name":"address","nodeType":"ElementaryTypeName","src":"18079:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18078:19:64"},"returnParameters":{"id":44809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44825,"src":"18121:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44807,"name":"uint256","nodeType":"ElementaryTypeName","src":"18121:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18120:9:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44850,"nodeType":"FunctionDefinition","src":"18441:227:64","nodes":[],"body":{"id":44849,"nodeType":"Block","src":"18522:146:64","nodes":[],"statements":[{"assignments":[44835],"declarations":[{"constant":false,"id":44835,"mutability":"mutable","name":"s","nameLocation":"18559:1:64","nodeType":"VariableDeclaration","scope":44849,"src":"18532:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44834,"nodeType":"UserDefinedTypeName","pathNode":{"id":44833,"name":"SubnetActorStorage","nameLocations":["18532:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"18532:18:64"},"referencedDeclaration":46085,"src":"18532:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44836,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"18563:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18585:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"18563:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18563:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18532:65:64"},{"expression":{"arguments":[{"id":44845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44828,"src":"18644:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44846,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44830,"src":"18655:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44840,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44835,"src":"18607:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18609:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"18607:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18622:21:64","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44109,"src":"18607:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18607:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44848,"nodeType":"ExpressionStatement","src":"18607:54:64"}]},"documentation":{"id":44826,"nodeType":"StructuredDocumentation","src":"18353:83:64","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18450:28:64","parameters":{"id":44831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44828,"mutability":"mutable","name":"validator","nameLocation":"18487:9:64","nodeType":"VariableDeclaration","scope":44850,"src":"18479:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44827,"name":"address","nodeType":"ElementaryTypeName","src":"18479:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44830,"mutability":"mutable","name":"power","nameLocation":"18506:5:64","nodeType":"VariableDeclaration","scope":44850,"src":"18498:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44829,"name":"uint256","nodeType":"ElementaryTypeName","src":"18498:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18478:34:64"},"returnParameters":{"id":44832,"nodeType":"ParameterList","parameters":[],"src":"18522:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44875,"nodeType":"FunctionDefinition","src":"18755:224:64","nodes":[],"body":{"id":44874,"nodeType":"Block","src":"18840:139:64","nodes":[],"statements":[{"assignments":[44860],"declarations":[{"constant":false,"id":44860,"mutability":"mutable","name":"s","nameLocation":"18877:1:64","nodeType":"VariableDeclaration","scope":44874,"src":"18850:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44859,"nodeType":"UserDefinedTypeName","pathNode":{"id":44858,"name":"SubnetActorStorage","nameLocations":["18850:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"18850:18:64"},"referencedDeclaration":46085,"src":"18850:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44864,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44861,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"18881:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18903:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"18881:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18881:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18850:65:64"},{"expression":{"arguments":[{"id":44870,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"18952:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44871,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"18963:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":44865,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44860,"src":"18925:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18927:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"18925:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18940:11:64","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":43994,"src":"18925:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":44872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18925:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44873,"nodeType":"ExpressionStatement","src":"18925:47:64"}]},"documentation":{"id":44851,"nodeType":"StructuredDocumentation","src":"18674:76:64","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"18764:22:64","parameters":{"id":44856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44853,"mutability":"mutable","name":"validator","nameLocation":"18795:9:64","nodeType":"VariableDeclaration","scope":44875,"src":"18787:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44852,"name":"address","nodeType":"ElementaryTypeName","src":"18787:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"metadata","nameLocation":"18821:8:64","nodeType":"VariableDeclaration","scope":44875,"src":"18806:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44854,"name":"bytes","nodeType":"ElementaryTypeName","src":"18806:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18786:44:64"},"returnParameters":{"id":44857,"nodeType":"ParameterList","parameters":[],"src":"18840:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44984,"nodeType":"FunctionDefinition","src":"19077:1335:64","nodes":[],"body":{"id":44983,"nodeType":"Block","src":"19149:1263:64","nodes":[],"statements":[{"assignments":[44885],"declarations":[{"constant":false,"id":44885,"mutability":"mutable","name":"s","nameLocation":"19186:1:64","nodeType":"VariableDeclaration","scope":44983,"src":"19159:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44884,"nodeType":"UserDefinedTypeName","pathNode":{"id":44883,"name":"SubnetActorStorage","nameLocations":["19159:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"19159:18:64"},"referencedDeclaration":46085,"src":"19159:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44889,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44886,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"19190:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19212:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"19190:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19190:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19159:65:64"},{"expression":{"arguments":[{"id":44895,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"19324:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44896,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44880,"src":"19335:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44890,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19295:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19297:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"19295:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19310:13:64","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44015,"src":"19295:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19295:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44898,"nodeType":"ExpressionStatement","src":"19295:47:64"},{"expression":{"arguments":[{"id":44904,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"19447:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44905,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44880,"src":"19458:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44899,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19417:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19419:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"19417:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19432:14:64","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44151,"src":"19417:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19417:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44907,"nodeType":"ExpressionStatement","src":"19417:48:64"},{"condition":{"id":44910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19480:15:64","subExpression":{"expression":{"id":44908,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19481:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19483:12:64","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"19481:14:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44982,"nodeType":"IfStatement","src":"19476:930:64","trueBody":{"id":44981,"nodeType":"Block","src":"19497:909:64","statements":[{"assignments":[44912],"declarations":[{"constant":false,"id":44912,"mutability":"mutable","name":"alreadyValidator","nameLocation":"19622:16:64","nodeType":"VariableDeclaration","scope":44981,"src":"19617:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44911,"name":"bool","nodeType":"ElementaryTypeName","src":"19617:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":44913,"nodeType":"VariableDeclarationStatement","src":"19617:21:64"},{"assignments":[44915],"declarations":[{"constant":false,"id":44915,"mutability":"mutable","name":"length","nameLocation":"19660:6:64","nodeType":"VariableDeclaration","scope":44981,"src":"19652:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44914,"name":"uint256","nodeType":"ElementaryTypeName","src":"19652:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44919,"initialValue":{"expression":{"expression":{"id":44916,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19669:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19671:17:64","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"19669:19:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":44918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19689:6:64","memberName":"length","nodeType":"MemberAccess","src":"19669:26:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19652:43:64"},{"body":{"id":44944,"nodeType":"Block","src":"19739:240:64","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":44932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19761:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19763:17:64","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"19761:19:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":44929,"indexExpression":{"id":44928,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44921,"src":"19781:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19761:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage","typeString":"struct Validator storage ref"}},"id":44930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19784:4:64","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":48691,"src":"19761:27:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44931,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"19792:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19761:40:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44939,"nodeType":"IfStatement","src":"19757:137:64","trueBody":{"id":44938,"nodeType":"Block","src":"19803:91:64","statements":[{"expression":{"id":44935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44933,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44912,"src":"19825:16:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":44934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19844:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19825:23:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44936,"nodeType":"ExpressionStatement","src":"19825:23:64"},{"id":44937,"nodeType":"Break","src":"19870:5:64"}]}},{"id":44943,"nodeType":"UncheckedBlock","src":"19911:54:64","statements":[{"expression":{"id":44941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"19943:3:64","subExpression":{"id":44940,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44921,"src":"19945:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44942,"nodeType":"ExpressionStatement","src":"19943:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44923,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44921,"src":"19725:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44924,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44915,"src":"19729:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19725:10:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44945,"initializationExpression":{"assignments":[44921],"declarations":[{"constant":false,"id":44921,"mutability":"mutable","name":"i","nameLocation":"19722:1:64","nodeType":"VariableDeclaration","scope":44945,"src":"19714:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44920,"name":"uint256","nodeType":"ElementaryTypeName","src":"19714:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44922,"nodeType":"VariableDeclarationStatement","src":"19714:9:64"},"nodeType":"ForStatement","src":"19709:270:64"},{"condition":{"id":44947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19996:17:64","subExpression":{"id":44946,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44912,"src":"19997:16:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44980,"nodeType":"IfStatement","src":"19992:404:64","trueBody":{"id":44979,"nodeType":"Block","src":"20015:381:64","statements":[{"assignments":[44949],"declarations":[{"constant":false,"id":44949,"mutability":"mutable","name":"collateral","nameLocation":"20041:10:64","nodeType":"VariableDeclaration","scope":44979,"src":"20033:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44948,"name":"uint256","nodeType":"ElementaryTypeName","src":"20033:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44956,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":44950,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"20054:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20056:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20054:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20069:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"20054:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44954,"indexExpression":{"id":44953,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"20080:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20054:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20091:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"20054:56:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20033:77:64"},{"assignments":[44959],"declarations":[{"constant":false,"id":44959,"mutability":"mutable","name":"val","nameLocation":"20145:3:64","nodeType":"VariableDeclaration","scope":44979,"src":"20128:20:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator"},"typeName":{"id":44958,"nodeType":"UserDefinedTypeName","pathNode":{"id":44957,"name":"Validator","nameLocations":["20128:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"20128:9:64"},"referencedDeclaration":48694,"src":"20128:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":44970,"initialValue":{"arguments":[{"id":44961,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"20189:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44962,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44949,"src":"20228:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":44963,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"20270:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20272:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20270:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20285:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"20270:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44967,"indexExpression":{"id":44966,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"20296:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20270:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20307:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"20270:45:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":44960,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"20151:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$48694_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":44969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20183:4:64","20220:6:64","20260:8:64"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20151:183:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20128:206:64"},{"expression":{"arguments":[{"id":44976,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44959,"src":"20377:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":44971,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"20352:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20354:17:64","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"20352:19:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":44975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20372:4:64","memberName":"push","nodeType":"MemberAccess","src":"20352:24:64","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$_t_struct$_Validator_$48694_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":44977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20352:29:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44978,"nodeType":"ExpressionStatement","src":"20352:29:64"}]}}]}}]},"documentation":{"id":44876,"nodeType":"StructuredDocumentation","src":"18985:87:64","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19086:18:64","parameters":{"id":44881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44878,"mutability":"mutable","name":"validator","nameLocation":"19113:9:64","nodeType":"VariableDeclaration","scope":44984,"src":"19105:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44877,"name":"address","nodeType":"ElementaryTypeName","src":"19105:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44880,"mutability":"mutable","name":"amount","nameLocation":"19132:6:64","nodeType":"VariableDeclaration","scope":44984,"src":"19124:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44879,"name":"uint256","nodeType":"ElementaryTypeName","src":"19124:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19104:35:64"},"returnParameters":{"id":44882,"nodeType":"ParameterList","parameters":[],"src":"19149:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45026,"nodeType":"FunctionDefinition","src":"20602:504:64","nodes":[],"body":{"id":45025,"nodeType":"Block","src":"20675:431:64","nodes":[],"statements":[{"assignments":[44994],"declarations":[{"constant":false,"id":44994,"mutability":"mutable","name":"s","nameLocation":"20712:1:64","nodeType":"VariableDeclaration","scope":45025,"src":"20685:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44993,"nodeType":"UserDefinedTypeName","pathNode":{"id":44992,"name":"SubnetActorStorage","nameLocations":["20685:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"20685:18:64"},"referencedDeclaration":46085,"src":"20685:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44995,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"20716:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20738:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"20716:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20716:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20685:65:64"},{"expression":{"arguments":[{"id":45004,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44987,"src":"20851:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45005,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"20862:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44999,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44994,"src":"20821:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20823:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20821:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20836:14:64","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44056,"src":"20821:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20821:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45007,"nodeType":"ExpressionStatement","src":"20821:48:64"},{"expression":{"arguments":[{"id":45013,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44987,"src":"20975:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45014,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"20986:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45008,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44994,"src":"20944:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20946:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20944:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20959:15:64","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44217,"src":"20944:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20944:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45016,"nodeType":"ExpressionStatement","src":"20944:49:64"},{"expression":{"arguments":[{"id":45022,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"21092:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45019,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44987,"src":"21071:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21063:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45017,"name":"address","nodeType":"ElementaryTypeName","src":"21063:8:64","stateMutability":"payable","typeDescriptions":{}}},"id":45020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21063:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21082:9:64","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"21063:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21063:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45024,"nodeType":"ExpressionStatement","src":"21063:36:64"}]},"documentation":{"id":44985,"nodeType":"StructuredDocumentation","src":"20418:179:64","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"20611:19:64","parameters":{"id":44990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44987,"mutability":"mutable","name":"validator","nameLocation":"20639:9:64","nodeType":"VariableDeclaration","scope":45026,"src":"20631:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44986,"name":"address","nodeType":"ElementaryTypeName","src":"20631:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44989,"mutability":"mutable","name":"amount","nameLocation":"20658:6:64","nodeType":"VariableDeclaration","scope":45026,"src":"20650:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44988,"name":"uint256","nodeType":"ElementaryTypeName","src":"20650:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20630:35:64"},"returnParameters":{"id":44991,"nodeType":"ParameterList","parameters":[],"src":"20675:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45054,"nodeType":"FunctionDefinition","src":"21236:280:64","nodes":[],"body":{"id":45053,"nodeType":"Block","src":"21332:184:64","nodes":[],"statements":[{"assignments":[45038],"declarations":[{"constant":false,"id":45038,"mutability":"mutable","name":"s","nameLocation":"21369:1:64","nodeType":"VariableDeclaration","scope":45053,"src":"21342:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45037,"nodeType":"UserDefinedTypeName","pathNode":{"id":45036,"name":"SubnetActorStorage","nameLocations":["21342:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"21342:18:64"},"referencedDeclaration":46085,"src":"21342:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45042,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45039,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"21373:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21395:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"21373:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21373:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21342:65:64"},{"expression":{"arguments":[{"id":45048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45029,"src":"21463:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45049,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45031,"src":"21484:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45050,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45033,"src":"21501:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45043,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"21417:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21419:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"21417:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21429:21:64","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":45816,"src":"21417:33:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21452:9:64","21474:8:64","21494:5:64"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21417:92:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45052,"nodeType":"ExpressionStatement","src":"21417:92:64"}]},"documentation":{"id":45027,"nodeType":"StructuredDocumentation","src":"21179:52:64","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21245:17:64","parameters":{"id":45034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45029,"mutability":"mutable","name":"validator","nameLocation":"21271:9:64","nodeType":"VariableDeclaration","scope":45054,"src":"21263:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45028,"name":"address","nodeType":"ElementaryTypeName","src":"21263:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45031,"mutability":"mutable","name":"metadata","nameLocation":"21297:8:64","nodeType":"VariableDeclaration","scope":45054,"src":"21282:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45030,"name":"bytes","nodeType":"ElementaryTypeName","src":"21282:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45033,"mutability":"mutable","name":"amount","nameLocation":"21315:6:64","nodeType":"VariableDeclaration","scope":45054,"src":"21307:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45032,"name":"uint256","nodeType":"ElementaryTypeName","src":"21307:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21262:60:64"},"returnParameters":{"id":45035,"nodeType":"ParameterList","parameters":[],"src":"21332:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45079,"nodeType":"FunctionDefinition","src":"21565:223:64","nodes":[],"body":{"id":45078,"nodeType":"Block","src":"21648:140:64","nodes":[],"statements":[{"assignments":[45064],"declarations":[{"constant":false,"id":45064,"mutability":"mutable","name":"s","nameLocation":"21685:1:64","nodeType":"VariableDeclaration","scope":45078,"src":"21658:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45063,"nodeType":"UserDefinedTypeName","pathNode":{"id":45062,"name":"SubnetActorStorage","nameLocations":["21658:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"21658:18:64"},"referencedDeclaration":46085,"src":"21658:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45068,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45065,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"21689:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21711:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"21689:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21689:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21658:65:64"},{"expression":{"arguments":[{"id":45074,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45057,"src":"21761:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45075,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45059,"src":"21772:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45069,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45064,"src":"21733:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21735:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"21733:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21745:15:64","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":45776,"src":"21733:27:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21733:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45077,"nodeType":"ExpressionStatement","src":"21733:48:64"}]},"documentation":{"id":45055,"nodeType":"StructuredDocumentation","src":"21522:38:64","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"21574:20:64","parameters":{"id":45060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45057,"mutability":"mutable","name":"validator","nameLocation":"21603:9:64","nodeType":"VariableDeclaration","scope":45079,"src":"21595:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45056,"name":"address","nodeType":"ElementaryTypeName","src":"21595:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45059,"mutability":"mutable","name":"metadata","nameLocation":"21629:8:64","nodeType":"VariableDeclaration","scope":45079,"src":"21614:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45058,"name":"bytes","nodeType":"ElementaryTypeName","src":"21614:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21594:44:64"},"returnParameters":{"id":45061,"nodeType":"ParameterList","parameters":[],"src":"21648:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45113,"nodeType":"FunctionDefinition","src":"21833:256:64","nodes":[],"body":{"id":45112,"nodeType":"Block","src":"21894:195:64","nodes":[],"statements":[{"assignments":[45089],"declarations":[{"constant":false,"id":45089,"mutability":"mutable","name":"s","nameLocation":"21931:1:64","nodeType":"VariableDeclaration","scope":45112,"src":"21904:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45088,"nodeType":"UserDefinedTypeName","pathNode":{"id":45087,"name":"SubnetActorStorage","nameLocations":["21904:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"21904:18:64"},"referencedDeclaration":46085,"src":"21904:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45093,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45090,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"21935:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21957:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"21935:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21935:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21904:65:64"},{"expression":{"arguments":[{"id":45099,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45082,"src":"22007:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45100,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45084,"src":"22018:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45094,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"21980:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21982:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"21980:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21992:14:64","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":45890,"src":"21980:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21980:45:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45102,"nodeType":"ExpressionStatement","src":"21980:45:64"},{"expression":{"arguments":[{"id":45108,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45082,"src":"22064:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45109,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45084,"src":"22075:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45103,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"22035:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22037:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"22035:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22050:13:64","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44015,"src":"22035:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22035:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45111,"nodeType":"ExpressionStatement","src":"22035:47:64"}]},"documentation":{"id":45080,"nodeType":"StructuredDocumentation","src":"21794:34:64","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"21842:7:64","parameters":{"id":45085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45082,"mutability":"mutable","name":"validator","nameLocation":"21858:9:64","nodeType":"VariableDeclaration","scope":45113,"src":"21850:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45081,"name":"address","nodeType":"ElementaryTypeName","src":"21850:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45084,"mutability":"mutable","name":"amount","nameLocation":"21877:6:64","nodeType":"VariableDeclaration","scope":45113,"src":"21869:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45083,"name":"uint256","nodeType":"ElementaryTypeName","src":"21869:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21849:35:64"},"returnParameters":{"id":45086,"nodeType":"ParameterList","parameters":[],"src":"21894:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45147,"nodeType":"FunctionDefinition","src":"22135:259:64","nodes":[],"body":{"id":45146,"nodeType":"Block","src":"22197:197:64","nodes":[],"statements":[{"assignments":[45123],"declarations":[{"constant":false,"id":45123,"mutability":"mutable","name":"s","nameLocation":"22234:1:64","nodeType":"VariableDeclaration","scope":45146,"src":"22207:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45122,"nodeType":"UserDefinedTypeName","pathNode":{"id":45121,"name":"SubnetActorStorage","nameLocations":["22207:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"22207:18:64"},"referencedDeclaration":46085,"src":"22207:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45127,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45124,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"22238:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22260:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"22238:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22238:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22207:65:64"},{"expression":{"arguments":[{"id":45133,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45116,"src":"22311:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45134,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45118,"src":"22322:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45128,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45123,"src":"22283:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22285:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"22283:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22295:15:64","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":45853,"src":"22283:27:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22283:46:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45136,"nodeType":"ExpressionStatement","src":"22283:46:64"},{"expression":{"arguments":[{"id":45142,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45116,"src":"22369:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45143,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45118,"src":"22380:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45123,"src":"22339:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22341:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"22339:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22354:14:64","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44056,"src":"22339:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22339:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45145,"nodeType":"ExpressionStatement","src":"22339:48:64"}]},"documentation":{"id":45114,"nodeType":"StructuredDocumentation","src":"22095:35:64","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22144:8:64","parameters":{"id":45119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45116,"mutability":"mutable","name":"validator","nameLocation":"22161:9:64","nodeType":"VariableDeclaration","scope":45147,"src":"22153:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45115,"name":"address","nodeType":"ElementaryTypeName","src":"22153:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45118,"mutability":"mutable","name":"amount","nameLocation":"22180:6:64","nodeType":"VariableDeclaration","scope":45147,"src":"22172:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45117,"name":"uint256","nodeType":"ElementaryTypeName","src":"22172:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22152:35:64"},"returnParameters":{"id":45120,"nodeType":"ParameterList","parameters":[],"src":"22197:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45174,"nodeType":"FunctionDefinition","src":"22503:244:64","nodes":[],"body":{"id":45173,"nodeType":"Block","src":"22556:191:64","nodes":[],"statements":[{"assignments":[45155],"declarations":[{"constant":false,"id":45155,"mutability":"mutable","name":"s","nameLocation":"22593:1:64","nodeType":"VariableDeclaration","scope":45173,"src":"22566:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45154,"nodeType":"UserDefinedTypeName","pathNode":{"id":45153,"name":"SubnetActorStorage","nameLocations":["22566:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"22566:18:64"},"referencedDeclaration":46085,"src":"22566:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45159,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45156,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"22597:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22619:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"22597:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22597:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22566:65:64"},{"assignments":[45161],"declarations":[{"constant":false,"id":45161,"mutability":"mutable","name":"amount","nameLocation":"22649:6:64","nodeType":"VariableDeclaration","scope":45173,"src":"22641:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45160,"name":"uint256","nodeType":"ElementaryTypeName","src":"22641:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45167,"initialValue":{"arguments":[{"id":45165,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45150,"src":"22679:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45162,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45155,"src":"22658:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22660:12:64","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":46068,"src":"22658:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22673:5:64","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":43602,"src":"22658:20:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22658:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22641:48:64"},{"eventCall":{"arguments":[{"id":45169,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45150,"src":"22722:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45170,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45161,"src":"22733:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45168,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44630,"src":"22704:17:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22704:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45172,"nodeType":"EmitStatement","src":"22699:41:64"}]},"documentation":{"id":45148,"nodeType":"StructuredDocumentation","src":"22457:41:64","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"22512:15:64","parameters":{"id":45151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45150,"mutability":"mutable","name":"validator","nameLocation":"22536:9:64","nodeType":"VariableDeclaration","scope":45174,"src":"22528:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45149,"name":"address","nodeType":"ElementaryTypeName","src":"22528:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22527:19:64"},"returnParameters":{"id":45152,"nodeType":"ParameterList","parameters":[],"src":"22556:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45230,"nodeType":"FunctionDefinition","src":"22861:439:64","nodes":[],"body":{"id":45229,"nodeType":"Block","src":"22918:382:64","nodes":[],"statements":[{"assignments":[45182],"declarations":[{"constant":false,"id":45182,"mutability":"mutable","name":"s","nameLocation":"22955:1:64","nodeType":"VariableDeclaration","scope":45229,"src":"22928:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45181,"nodeType":"UserDefinedTypeName","pathNode":{"id":45180,"name":"SubnetActorStorage","nameLocations":["22928:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"22928:18:64"},"referencedDeclaration":46085,"src":"22928:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45186,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45183,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"22959:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22981:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"22959:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22959:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22928:65:64"},{"assignments":[45188],"declarations":[{"constant":false,"id":45188,"mutability":"mutable","name":"amount","nameLocation":"23011:6:64","nodeType":"VariableDeclaration","scope":45229,"src":"23003:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45187,"name":"uint256","nodeType":"ElementaryTypeName","src":"23003:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45194,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45189,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45182,"src":"23020:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23022:14:64","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"23020:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23037:7:64","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"23020:24:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45193,"indexExpression":{"id":45192,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"23045:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23020:33:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23003:50:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45195,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45188,"src":"23068:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23078:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23068:11:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45202,"nodeType":"IfStatement","src":"23064:69:64","trueBody":{"id":45201,"nodeType":"Block","src":"23081:52:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45198,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37018,"src":"23102:18:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23102:20:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45200,"nodeType":"RevertStatement","src":"23095:27:64"}]}},{"expression":{"id":45211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45203,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45182,"src":"23143:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23145:14:64","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"23143:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23160:7:64","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"23143:24:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45209,"indexExpression":{"id":45206,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"23168:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23143:33:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23179:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23143:37:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45212,"nodeType":"ExpressionStatement","src":"23143:37:64"},{"expression":{"arguments":[{"id":45218,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45188,"src":"23241:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45214,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45182,"src":"23199:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23201:14:64","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"23199:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45213,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"23190:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":45216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23190:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":45217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23217:23:64","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":39837,"src":"23190:50:64","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23190:58:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45220,"nodeType":"ExpressionStatement","src":"23190:58:64"},{"expression":{"arguments":[{"id":45226,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45188,"src":"23286:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45223,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"23267:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23259:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45221,"name":"address","nodeType":"ElementaryTypeName","src":"23259:8:64","stateMutability":"payable","typeDescriptions":{}}},"id":45224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23276:9:64","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"23259:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45228,"nodeType":"ExpressionStatement","src":"23259:34:64"}]},"documentation":{"id":45175,"nodeType":"StructuredDocumentation","src":"22753:103:64","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"22870:21:64","parameters":{"id":45178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45177,"mutability":"mutable","name":"relayer","nameLocation":"22900:7:64","nodeType":"VariableDeclaration","scope":45230,"src":"22892:15:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45176,"name":"address","nodeType":"ElementaryTypeName","src":"22892:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22891:17:64"},"returnParameters":{"id":45179,"nodeType":"ParameterList","parameters":[],"src":"22918:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45253,"nodeType":"FunctionDefinition","src":"23306:247:64","nodes":[],"body":{"id":45252,"nodeType":"Block","src":"23379:174:64","nodes":[],"statements":[{"assignments":[45239],"declarations":[{"constant":false,"id":45239,"mutability":"mutable","name":"s","nameLocation":"23416:1:64","nodeType":"VariableDeclaration","scope":45252,"src":"23389:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45238,"nodeType":"UserDefinedTypeName","pathNode":{"id":45237,"name":"SubnetActorStorage","nameLocations":["23389:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"23389:18:64"},"referencedDeclaration":46085,"src":"23389:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45243,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45240,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"23420:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23442:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"23420:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23420:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23389:65:64"},{"expression":{"components":[{"expression":{"expression":{"id":45244,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45239,"src":"23472:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23474:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"23472:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23484:23:64","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"23472:35:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45247,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45239,"src":"23509:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23511:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"23509:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23521:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"23509:36:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45250,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23471:75:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45236,"id":45251,"nodeType":"Return","src":"23464:82:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23315:23:64","parameters":{"id":45231,"nodeType":"ParameterList","parameters":[],"src":"23338:2:64"},"returnParameters":{"id":45236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45253,"src":"23363:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45232,"name":"uint64","nodeType":"ElementaryTypeName","src":"23363:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45235,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45253,"src":"23371:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45234,"name":"uint64","nodeType":"ElementaryTypeName","src":"23371:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23362:16:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45463,"nodeType":"FunctionDefinition","src":"23681:1944:64","nodes":[],"body":{"id":45462,"nodeType":"Block","src":"23741:1884:64","nodes":[],"statements":[{"assignments":[45261],"declarations":[{"constant":false,"id":45261,"mutability":"mutable","name":"s","nameLocation":"23778:1:64","nodeType":"VariableDeclaration","scope":45462,"src":"23751:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45260,"nodeType":"UserDefinedTypeName","pathNode":{"id":45259,"name":"SubnetActorStorage","nameLocations":["23751:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"23751:18:64"},"referencedDeclaration":46085,"src":"23751:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45265,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45262,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"23782:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23804:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"23782:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23782:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23751:65:64"},{"assignments":[45268],"declarations":[{"constant":false,"id":45268,"mutability":"mutable","name":"changeSet","nameLocation":"23851:9:64","nodeType":"VariableDeclaration","scope":45462,"src":"23826:34:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45267,"nodeType":"UserDefinedTypeName","pathNode":{"id":45266,"name":"StakingChangeLog","nameLocations":["23826:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"23826:16:64"},"referencedDeclaration":48606,"src":"23826:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45271,"initialValue":{"expression":{"id":45269,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"23863:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23865:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"23863:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23826:48:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45272,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"23889:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45273,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"23912:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23922:23:64","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"23912:33:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23889:56:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45280,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"24017:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45281,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"24039:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24049:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"24039:34:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24017:56:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45286,"nodeType":"IfStatement","src":"24013:93:64","trueBody":{"id":45285,"nodeType":"Block","src":"24075:31:64","statements":[{"functionReturnParameters":45258,"id":45284,"nodeType":"Return","src":"24089:7:64"}]}},"id":45287,"nodeType":"IfStatement","src":"23885:221:64","trueBody":{"id":45279,"nodeType":"Block","src":"23947:60:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45276,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36940,"src":"23968:26:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23968:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45278,"nodeType":"RevertStatement","src":"23961:35:64"}]}},{"assignments":[45289],"declarations":[{"constant":false,"id":45289,"mutability":"mutable","name":"start","nameLocation":"24123:5:64","nodeType":"VariableDeclaration","scope":45462,"src":"24116:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45288,"name":"uint64","nodeType":"ElementaryTypeName","src":"24116:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45292,"initialValue":{"expression":{"id":45290,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"24131:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24141:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"24131:34:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24116:49:64"},{"body":{"id":45448,"nodeType":"Block","src":"24226:1257:64","statements":[{"assignments":[45302],"declarations":[{"constant":false,"id":45302,"mutability":"mutable","name":"change","nameLocation":"24262:6:64","nodeType":"VariableDeclaration","scope":45448,"src":"24240:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45301,"nodeType":"UserDefinedTypeName","pathNode":{"id":45300,"name":"StakingChange","nameLocations":["24240:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":48587,"src":"24240:13:64"},"referencedDeclaration":48587,"src":"24240:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":45307,"initialValue":{"arguments":[{"id":45305,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"24291:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":45303,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"24271:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24281:9:64","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":45950,"src":"24271:19:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$48587_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":45306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24271:22:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24240:53:64"},{"assignments":[45309],"declarations":[{"constant":false,"id":45309,"mutability":"mutable","name":"validator","nameLocation":"24315:9:64","nodeType":"VariableDeclaration","scope":45448,"src":"24307:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45308,"name":"address","nodeType":"ElementaryTypeName","src":"24307:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45312,"initialValue":{"expression":{"id":45310,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24327:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24334:9:64","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":48586,"src":"24327:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24307:36:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45313,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24362:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24369:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"24362:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45315,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"24375:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24392:11:64","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":48577,"src":"24375:28:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"24362:41:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45331,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24510:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24517:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"24510:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45333,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"24523:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24540:17:64","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":48578,"src":"24523:34:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"24510:47:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45435,"nodeType":"Block","src":"24829:546:64","statements":[{"assignments":[45373],"declarations":[{"constant":false,"id":45373,"mutability":"mutable","name":"amount","nameLocation":"24855:6:64","nodeType":"VariableDeclaration","scope":45435,"src":"24847:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45372,"name":"uint256","nodeType":"ElementaryTypeName","src":"24847:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45382,"initialValue":{"arguments":[{"expression":{"id":45376,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24875:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24882:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"24875:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24892:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45378,"name":"uint256","nodeType":"ElementaryTypeName","src":"24892:7:64","typeDescriptions":{}}}],"id":45380,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24891:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":45374,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24864:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24868:6:64","memberName":"decode","nodeType":"MemberAccess","src":"24864:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24864:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24847:54:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45383,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24924:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24931:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"24924:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45385,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"24937:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24954:8:64","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":48576,"src":"24937:25:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"24924:38:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45433,"nodeType":"Block","src":"25198:163:64","statements":[{"expression":{"arguments":[{"id":45420,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"25250:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45421,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25261:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45415,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25220:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25222:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"25220:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25235:14:64","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44151,"src":"25220:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25220:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45423,"nodeType":"ExpressionStatement","src":"25220:48:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":45425,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25299:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25301:14:64","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"25299:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45424,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"25290:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":45427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25290:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":45428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25317:8:64","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":39825,"src":"25290:35:64","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":45430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":45429,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25333:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25290:50:64","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":45431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25290:52:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45432,"nodeType":"ExpressionStatement","src":"25290:52:64"}]},"id":45434,"nodeType":"IfStatement","src":"24920:441:64","trueBody":{"id":45414,"nodeType":"Block","src":"24964:228:64","statements":[{"expression":{"arguments":[{"id":45393,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"25017:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45394,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25028:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45388,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24986:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24988:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24986:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25001:15:64","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44217,"src":"24986:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24986:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45396,"nodeType":"ExpressionStatement","src":"24986:49:64"},{"expression":{"arguments":[{"id":45402,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"25086:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45403,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25097:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45397,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25057:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25059:12:64","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":46068,"src":"25057:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25072:13:64","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":43558,"src":"25057:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":45404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25057:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45405,"nodeType":"ExpressionStatement","src":"25057:47:64"},{"expression":{"arguments":[{"id":45411,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25166:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45407,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25135:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25137:14:64","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"25135:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45406,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"25126:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":45409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25126:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":45410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25153:12:64","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":39831,"src":"25126:39:64","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25126:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45413,"nodeType":"ExpressionStatement","src":"25126:47:64"}]}}]},"id":45436,"nodeType":"IfStatement","src":"24506:869:64","trueBody":{"id":45371,"nodeType":"Block","src":"24559:264:64","statements":[{"assignments":[45337,45339],"declarations":[{"constant":false,"id":45337,"mutability":"mutable","name":"metadata","nameLocation":"24591:8:64","nodeType":"VariableDeclaration","scope":45371,"src":"24578:21:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45336,"name":"bytes","nodeType":"ElementaryTypeName","src":"24578:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45339,"mutability":"mutable","name":"power","nameLocation":"24609:5:64","nodeType":"VariableDeclaration","scope":45371,"src":"24601:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45338,"name":"uint256","nodeType":"ElementaryTypeName","src":"24601:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45350,"initialValue":{"arguments":[{"expression":{"id":45342,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24629:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24636:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"24629:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24646:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":45344,"name":"bytes","nodeType":"ElementaryTypeName","src":"24646:5:64","typeDescriptions":{}}},{"id":45347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24653:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45346,"name":"uint256","nodeType":"ElementaryTypeName","src":"24653:7:64","typeDescriptions":{}}}],"id":45348,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24645:16:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":45340,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24618:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24622:6:64","memberName":"decode","nodeType":"MemberAccess","src":"24618:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24618:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"24577:85:64"},{"expression":{"id":45360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45351,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24680:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24682:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24680:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24695:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"24680:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45357,"indexExpression":{"id":45354,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"24706:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24680:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24717:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"24680:45:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45359,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45337,"src":"24728:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"24680:56:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45361,"nodeType":"ExpressionStatement","src":"24680:56:64"},{"expression":{"arguments":[{"id":45367,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"24791:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45368,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45339,"src":"24802:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45362,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24754:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24756:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24754:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24769:21:64","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44109,"src":"24754:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24754:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45370,"nodeType":"ExpressionStatement","src":"24754:54:64"}]}},"id":45437,"nodeType":"IfStatement","src":"24358:1017:64","trueBody":{"id":45330,"nodeType":"Block","src":"24405:95:64","statements":[{"expression":{"id":45328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45318,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24423:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24425:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24423:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24438:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"24423:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45324,"indexExpression":{"id":45321,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"24449:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24423:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24460:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"24423:45:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45326,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24471:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24478:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"24471:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24423:62:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45329,"nodeType":"ExpressionStatement","src":"24423:62:64"}]}},{"expression":{"arguments":[{"id":45441,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"25411:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":45438,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"25389:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25399:11:64","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":45965,"src":"25389:21:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":45442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25389:24:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45443,"nodeType":"ExpressionStatement","src":"25389:24:64"},{"id":45447,"nodeType":"UncheckedBlock","src":"25427:46:64","statements":[{"expression":{"id":45445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25455:3:64","subExpression":{"id":45444,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"25457:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45446,"nodeType":"ExpressionStatement","src":"25455:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45297,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"24198:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":45298,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"24203:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24198:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45449,"initializationExpression":{"assignments":[45294],"declarations":[{"constant":false,"id":45294,"mutability":"mutable","name":"i","nameLocation":"24187:1:64","nodeType":"VariableDeclaration","scope":45449,"src":"24180:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45293,"name":"uint64","nodeType":"ElementaryTypeName","src":"24180:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45296,"initialValue":{"id":45295,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45289,"src":"24191:5:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24180:16:64"},"nodeType":"ForStatement","src":"24175:1308:64"},{"expression":{"id":45456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":45450,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"25493:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25503:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"25493:34:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45453,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"25530:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":45454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25552:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25530:23:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25493:60:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45457,"nodeType":"ExpressionStatement","src":"25493:60:64"},{"eventCall":{"arguments":[{"id":45459,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"25598:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":45458,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44624,"src":"25569:28:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":45460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25569:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45461,"nodeType":"EmitStatement","src":"25564:54:64"}]},"documentation":{"id":45254,"nodeType":"StructuredDocumentation","src":"23559:117:64","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"23690:13:64","parameters":{"id":45257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45256,"mutability":"mutable","name":"configurationNumber","nameLocation":"23711:19:64","nodeType":"VariableDeclaration","scope":45463,"src":"23704:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45255,"name":"uint64","nodeType":"ElementaryTypeName","src":"23704:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23703:28:64"},"returnParameters":{"id":45258,"nodeType":"ParameterList","parameters":[],"src":"23741:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[45464],"name":"LibStaking","nameLocation":"15346:10:64","scope":45729,"usedErrors":[32032,32040,37018]},{"id":45728,"nodeType":"ContractDefinition","src":"25784:2695:64","nodes":[{"id":45469,"nodeType":"UsingForDirective","src":"25819:39:64","nodes":[],"global":false,"libraryName":{"id":45466,"name":"LibValidatorSet","nameLocations":["25825:15:64"],"nodeType":"IdentifierPath","referencedDeclaration":44594,"src":"25825:15:64"},"typeName":{"id":45468,"nodeType":"UserDefinedTypeName","pathNode":{"id":45467,"name":"ValidatorSet","nameLocations":["25845:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"25845:12:64"},"referencedDeclaration":48673,"src":"25845:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45473,"nodeType":"UsingForDirective","src":"25863:47:64","nodes":[],"global":false,"libraryName":{"id":45470,"name":"LibStakingChangeLog","nameLocations":["25869:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":45966,"src":"25869:19:64"},"typeName":{"id":45472,"nodeType":"UserDefinedTypeName","pathNode":{"id":45471,"name":"StakingChangeLog","nameLocations":["25893:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"25893:16:64"},"referencedDeclaration":48606,"src":"25893:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45508,"nodeType":"FunctionDefinition","src":"25916:475:64","nodes":[],"body":{"id":45507,"nodeType":"Block","src":"26029:362:64","nodes":[],"statements":[{"assignments":[45483],"declarations":[{"constant":false,"id":45483,"mutability":"mutable","name":"configurationNumber","nameLocation":"26046:19:64","nodeType":"VariableDeclaration","scope":45507,"src":"26039:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45482,"name":"uint64","nodeType":"ElementaryTypeName","src":"26039:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45497,"initialValue":{"arguments":[{"expression":{"expression":{"id":45487,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26119:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26133:6:64","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":48590,"src":"26119:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":45489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26140:9:64","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":48586,"src":"26119:30:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":45490,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26167:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26181:6:64","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":48590,"src":"26167:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":45492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26188:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"26167:23:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":45493,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26213:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26227:6:64","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":48590,"src":"26213:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":45495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26234:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"26213:28:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45484,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45476,"src":"26068:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26073:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"26068:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26081:12:64","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":45932,"src":"26068:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$48579_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":45496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26108:9:64","26163:2:64","26204:7:64"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26068:184:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26039:213:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45498,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45483,"src":"26267:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":45499,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26290:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26304:19:64","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48592,"src":"26290:33:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26267:56:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45506,"nodeType":"IfStatement","src":"26263:122:64","trueBody":{"id":45505,"nodeType":"Block","src":"26325:60:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45502,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36986,"src":"26346:26:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26346:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45504,"nodeType":"RevertStatement","src":"26339:35:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"25925:11:64","parameters":{"id":45480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45476,"mutability":"mutable","name":"self","nameLocation":"25969:4:64","nodeType":"VariableDeclaration","scope":45508,"src":"25937:36:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":45475,"nodeType":"UserDefinedTypeName","pathNode":{"id":45474,"name":"ParentValidatorsTracker","nameLocations":["25937:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"25937:23:64"},"referencedDeclaration":48680,"src":"25937:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":45479,"mutability":"mutable","name":"changeRequest","nameLocation":"26005:13:64","nodeType":"VariableDeclaration","scope":45508,"src":"25975:43:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":45478,"nodeType":"UserDefinedTypeName","pathNode":{"id":45477,"name":"StakingChangeRequest","nameLocations":["25975:20:64"],"nodeType":"IdentifierPath","referencedDeclaration":48593,"src":"25975:20:64"},"referencedDeclaration":48593,"src":"25975:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"25936:83:64"},"returnParameters":{"id":45481,"nodeType":"ParameterList","parameters":[],"src":"26029:0:64"},"scope":45728,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45549,"nodeType":"FunctionDefinition","src":"26397:415:64","nodes":[],"body":{"id":45548,"nodeType":"Block","src":"26540:272:64","nodes":[],"statements":[{"assignments":[45519],"declarations":[{"constant":false,"id":45519,"mutability":"mutable","name":"length","nameLocation":"26558:6:64","nodeType":"VariableDeclaration","scope":45548,"src":"26550:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45518,"name":"uint256","nodeType":"ElementaryTypeName","src":"26550:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45522,"initialValue":{"expression":{"id":45520,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45515,"src":"26567:14:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":45521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26582:6:64","memberName":"length","nodeType":"MemberAccess","src":"26567:21:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26550:38:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45523,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45519,"src":"26602:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26612:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26602:11:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45528,"nodeType":"IfStatement","src":"26598:48:64","trueBody":{"id":45527,"nodeType":"Block","src":"26615:31:64","statements":[{"functionReturnParameters":45517,"id":45526,"nodeType":"Return","src":"26629:7:64"}]}},{"body":{"id":45546,"nodeType":"Block","src":"26686:120:64","statements":[{"expression":{"arguments":[{"id":45536,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45511,"src":"26712:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":45537,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45515,"src":"26718:14:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":45539,"indexExpression":{"id":45538,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45530,"src":"26733:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26718:17:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":45535,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45508,"src":"26700:11:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$48680_storage_ptr_$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":45540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26700:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45541,"nodeType":"ExpressionStatement","src":"26700:36:64"},{"id":45545,"nodeType":"UncheckedBlock","src":"26750:46:64","statements":[{"expression":{"id":45543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"26778:3:64","subExpression":{"id":45542,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45530,"src":"26780:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45544,"nodeType":"ExpressionStatement","src":"26778:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45532,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45530,"src":"26672:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45533,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45519,"src":"26676:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26672:10:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45547,"initializationExpression":{"assignments":[45530],"declarations":[{"constant":false,"id":45530,"mutability":"mutable","name":"i","nameLocation":"26669:1:64","nodeType":"VariableDeclaration","scope":45547,"src":"26661:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45529,"name":"uint256","nodeType":"ElementaryTypeName","src":"26661:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45531,"nodeType":"VariableDeclarationStatement","src":"26661:9:64"},"nodeType":"ForStatement","src":"26656:150:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26406:16:64","parameters":{"id":45516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45511,"mutability":"mutable","name":"self","nameLocation":"26464:4:64","nodeType":"VariableDeclaration","scope":45549,"src":"26432:36:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":45510,"nodeType":"UserDefinedTypeName","pathNode":{"id":45509,"name":"ParentValidatorsTracker","nameLocations":["26432:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"26432:23:64"},"referencedDeclaration":48680,"src":"26432:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":45515,"mutability":"mutable","name":"changeRequests","nameLocation":"26510:14:64","nodeType":"VariableDeclaration","scope":45549,"src":"26478:46:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":45513,"nodeType":"UserDefinedTypeName","pathNode":{"id":45512,"name":"StakingChangeRequest","nameLocations":["26478:20:64"],"nodeType":"IdentifierPath","referencedDeclaration":48593,"src":"26478:20:64"},"referencedDeclaration":48593,"src":"26478:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":45514,"nodeType":"ArrayTypeName","src":"26478:22:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26422:108:64"},"returnParameters":{"id":45517,"nodeType":"ParameterList","parameters":[],"src":"26540:0:64"},"scope":45728,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45727,"nodeType":"FunctionDefinition","src":"26883:1594:64","nodes":[],"body":{"id":45726,"nodeType":"Block","src":"26981:1496:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45558,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"26995:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":45559,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27018:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27023:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27018:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27031:23:64","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"27018:36:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26995:59:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45567,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"27126:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":45568,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27148:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27153:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27148:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27161:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"27148:37:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27126:59:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45574,"nodeType":"IfStatement","src":"27122:96:64","trueBody":{"id":45573,"nodeType":"Block","src":"27187:31:64","statements":[{"functionReturnParameters":45557,"id":45572,"nodeType":"Return","src":"27201:7:64"}]}},"id":45575,"nodeType":"IfStatement","src":"26991:227:64","trueBody":{"id":45566,"nodeType":"Block","src":"27056:60:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45563,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36940,"src":"27077:26:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27077:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45565,"nodeType":"RevertStatement","src":"27070:35:64"}]}},{"assignments":[45577],"declarations":[{"constant":false,"id":45577,"mutability":"mutable","name":"start","nameLocation":"27235:5:64","nodeType":"VariableDeclaration","scope":45726,"src":"27228:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45576,"name":"uint64","nodeType":"ElementaryTypeName","src":"27228:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45581,"initialValue":{"expression":{"expression":{"id":45578,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27243:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27248:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27243:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27256:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"27243:37:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27228:52:64"},{"body":{"id":45714,"nodeType":"Block","src":"27342:1056:64","statements":[{"assignments":[45591],"declarations":[{"constant":false,"id":45591,"mutability":"mutable","name":"change","nameLocation":"27378:6:64","nodeType":"VariableDeclaration","scope":45714,"src":"27356:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45590,"nodeType":"UserDefinedTypeName","pathNode":{"id":45589,"name":"StakingChange","nameLocations":["27356:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":48587,"src":"27356:13:64"},"referencedDeclaration":48587,"src":"27356:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":45597,"initialValue":{"arguments":[{"id":45595,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"27410:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":45592,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27387:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27392:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27387:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27400:9:64","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":45950,"src":"27387:22:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$48587_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":45596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27387:25:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27356:56:64"},{"assignments":[45599],"declarations":[{"constant":false,"id":45599,"mutability":"mutable","name":"validator","nameLocation":"27434:9:64","nodeType":"VariableDeclaration","scope":45714,"src":"27426:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45598,"name":"address","nodeType":"ElementaryTypeName","src":"27426:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45602,"initialValue":{"expression":{"id":45600,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27446:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27453:9:64","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":48586,"src":"27446:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27426:36:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45603,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27481:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45604,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27488:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"27481:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45605,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"27494:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27511:11:64","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":48577,"src":"27494:28:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"27481:41:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45621,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27630:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27637:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"27630:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45623,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"27643:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27660:17:64","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":48578,"src":"27643:34:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"27630:47:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45699,"nodeType":"Block","src":"27951:336:64","statements":[{"assignments":[45663],"declarations":[{"constant":false,"id":45663,"mutability":"mutable","name":"amount","nameLocation":"27977:6:64","nodeType":"VariableDeclaration","scope":45699,"src":"27969:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45662,"name":"uint256","nodeType":"ElementaryTypeName","src":"27969:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45672,"initialValue":{"arguments":[{"expression":{"id":45666,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27997:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28004:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"27997:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28014:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45668,"name":"uint256","nodeType":"ElementaryTypeName","src":"28014:7:64","typeDescriptions":{}}}],"id":45670,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28013:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":45664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27986:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27990:6:64","memberName":"decode","nodeType":"MemberAccess","src":"27986:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27986:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27969:54:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45673,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"28046:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28053:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"28046:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45675,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"28059:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28076:8:64","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":48576,"src":"28059:25:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"28046:38:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45697,"nodeType":"Block","src":"28183:90:64","statements":[{"expression":{"arguments":[{"id":45693,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"28236:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45694,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45663,"src":"28247:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45688,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28205:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28210:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"28205:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28221:14:64","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44151,"src":"28205:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28205:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45696,"nodeType":"ExpressionStatement","src":"28205:49:64"}]},"id":45698,"nodeType":"IfStatement","src":"28042:231:64","trueBody":{"id":45687,"nodeType":"Block","src":"28086:91:64","statements":[{"expression":{"arguments":[{"id":45683,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"28140:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45684,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45663,"src":"28151:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45678,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28108:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28113:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"28108:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28124:15:64","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44217,"src":"28108:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28108:50:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45686,"nodeType":"ExpressionStatement","src":"28108:50:64"}]}}]},"id":45700,"nodeType":"IfStatement","src":"27626:661:64","trueBody":{"id":45661,"nodeType":"Block","src":"27679:266:64","statements":[{"assignments":[45627,45629],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"metadata","nameLocation":"27711:8:64","nodeType":"VariableDeclaration","scope":45661,"src":"27698:21:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45626,"name":"bytes","nodeType":"ElementaryTypeName","src":"27698:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45629,"mutability":"mutable","name":"power","nameLocation":"27729:5:64","nodeType":"VariableDeclaration","scope":45661,"src":"27721:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45628,"name":"uint256","nodeType":"ElementaryTypeName","src":"27721:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45640,"initialValue":{"arguments":[{"expression":{"id":45632,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27749:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27756:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"27749:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27766:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":45634,"name":"bytes","nodeType":"ElementaryTypeName","src":"27766:5:64","typeDescriptions":{}}},{"id":45637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27773:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45636,"name":"uint256","nodeType":"ElementaryTypeName","src":"27773:7:64","typeDescriptions":{}}}],"id":45638,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27765:16:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":45630,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27738:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27742:6:64","memberName":"decode","nodeType":"MemberAccess","src":"27738:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27738:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"27697:85:64"},{"expression":{"id":45650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45641,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27800:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27805:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"27800:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27816:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"27800:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45647,"indexExpression":{"id":45644,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"27827:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27800:37:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"27838:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"27800:46:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45649,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45627,"src":"27849:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"27800:57:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45651,"nodeType":"ExpressionStatement","src":"27800:57:64"},{"expression":{"arguments":[{"id":45657,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"27913:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45658,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45629,"src":"27924:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45652,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27875:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45655,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27880:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"27875:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27891:21:64","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44109,"src":"27875:37:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27875:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45660,"nodeType":"ExpressionStatement","src":"27875:55:64"}]}},"id":45701,"nodeType":"IfStatement","src":"27477:810:64","trueBody":{"id":45620,"nodeType":"Block","src":"27524:96:64","statements":[{"expression":{"id":45618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45608,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27542:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27547:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"27542:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27558:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"27542:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45614,"indexExpression":{"id":45611,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"27569:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27542:37:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"27580:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"27542:46:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45616,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27591:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27598:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"27591:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"27542:63:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45619,"nodeType":"ExpressionStatement","src":"27542:63:64"}]}},{"expression":{"arguments":[{"id":45707,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"28326:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":45702,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28301:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28306:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"28301:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28314:11:64","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":45965,"src":"28301:24:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":45708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28301:27:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45709,"nodeType":"ExpressionStatement","src":"28301:27:64"},{"id":45713,"nodeType":"UncheckedBlock","src":"28342:46:64","statements":[{"expression":{"id":45711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28370:3:64","subExpression":{"id":45710,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"28372:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45712,"nodeType":"ExpressionStatement","src":"28370:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45586,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"27314:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":45587,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"27319:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27314:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45715,"initializationExpression":{"assignments":[45583],"declarations":[{"constant":false,"id":45583,"mutability":"mutable","name":"i","nameLocation":"27303:1:64","nodeType":"VariableDeclaration","scope":45715,"src":"27296:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45582,"name":"uint64","nodeType":"ElementaryTypeName","src":"27296:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45585,"initialValue":{"id":45584,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45577,"src":"27307:5:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27296:16:64"},"nodeType":"ForStatement","src":"27291:1107:64"},{"expression":{"id":45724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":45716,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28407:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28412:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"28407:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28420:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"28407:37:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45721,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"28447:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":45722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28469:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28447:23:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28407:63:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45725,"nodeType":"ExpressionStatement","src":"28407:63:64"}]},"documentation":{"id":45550,"nodeType":"StructuredDocumentation","src":"26818:60:64","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"26892:13:64","parameters":{"id":45556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45553,"mutability":"mutable","name":"self","nameLocation":"26938:4:64","nodeType":"VariableDeclaration","scope":45727,"src":"26906:36:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":45552,"nodeType":"UserDefinedTypeName","pathNode":{"id":45551,"name":"ParentValidatorsTracker","nameLocations":["26906:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"26906:23:64"},"referencedDeclaration":48680,"src":"26906:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":45555,"mutability":"mutable","name":"configurationNumber","nameLocation":"26951:19:64","nodeType":"VariableDeclaration","scope":45727,"src":"26944:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45554,"name":"uint64","nodeType":"ElementaryTypeName","src":"26944:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"26905:66:64"},"returnParameters":{"id":45557,"nodeType":"ParameterList","parameters":[],"src":"26981:0:64"},"scope":45728,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":45465,"nodeType":"StructuredDocumentation","src":"25629:155:64","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[45728],"name":"LibValidatorTracking","nameLocation":"25792:20:64","scope":45729,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":64} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220eea0c5d3633d95e1224489046147a4df6f721c816a69a56563b673dd9fdc05c264736f6c63430008130033","sourceMap":"902:1635:69:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220eea0c5d3633d95e1224489046147a4df6f721c816a69a56563b673dd9fdc05c264736f6c63430008130033","sourceMap":"902:1635:69:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibAddressStakingReleases\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibAddressStakingReleases"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":46441,"exportedSymbols":{"Address":[32838],"AddressShouldBeValidator":[37368],"AddressStakingReleases":[50140],"CannotConfirmFutureChanges":[37372],"IGateway":[40354],"InvalidConfigurationNumber":[37418],"LibAddressStakingReleases":[44183],"LibMaxPQ":[49016],"LibMinPQ":[49635],"LibStaking":[46176],"LibStakingChangeLog":[46678],"LibStakingReleaseQueue":[44302],"LibSubnetActorStorage":[47292],"LibValidatorSet":[45293],"LibValidatorTracking":[46440],"MaxPQ":[48411],"MinPQ":[49029],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NotValidator":[37490],"ParentValidatorsTracker":[50197],"PermissionMode":[50165],"StakingChange":[50104],"StakingChangeLog":[50123],"StakingChangeRequest":[50110],"StakingOperation":[50096],"StakingRelease":[50130],"StakingReleaseQueue":[50150],"SubnetActorStorage":[47281],"Validator":[50211],"ValidatorSet":[50190],"WithdrawExceedingCollateral":[37510]},"nodeType":"SourceUnit","src":"46:28930:69","nodes":[{"id":44015,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":44017,"nodeType":"ImportDirective","src":"71:52:69","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":44016,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44020,"nodeType":"ImportDirective","src":"124:86:69","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":44018,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"132:21:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44019,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"155:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44023,"nodeType":"ImportDirective","src":"211:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49017,"symbolAliases":[{"foreign":{"id":44021,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49016,"src":"219:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44022,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48411,"src":"229:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44026,"nodeType":"ImportDirective","src":"268:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49636,"symbolAliases":[{"foreign":{"id":44024,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49635,"src":"276:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44025,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49029,"src":"286:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44028,"nodeType":"ImportDirective","src":"325:62:69","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":46679,"symbolAliases":[{"foreign":{"id":44027,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46678,"src":"333:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44040,"nodeType":"ImportDirective","src":"388:237:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":44029,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"396:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44030,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"412:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44031,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"433:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44032,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50104,"src":"451:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44033,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50110,"src":"466:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44034,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"488:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44035,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"506:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44036,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"522:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44037,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50140,"src":"536:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44038,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"560:23:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44039,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"585:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44048,"nodeType":"ImportDirective","src":"626:208:69","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":44041,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"634:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44042,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"654:27:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44043,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"683:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44044,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"697:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44045,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"725:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44046,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"749:24:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44047,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"775:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44050,"nodeType":"ImportDirective","src":"835:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":44049,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"843:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44183,"nodeType":"ContractDefinition","src":"902:1635:69","nodes":[{"id":44089,"nodeType":"FunctionDefinition","src":"1118:261:69","nodes":[],"body":{"id":44088,"nodeType":"Block","src":"1209:170:69","nodes":[],"statements":[{"assignments":[44061],"declarations":[{"constant":false,"id":44061,"mutability":"mutable","name":"length","nameLocation":"1226:6:69","nodeType":"VariableDeclaration","scope":44088,"src":"1219:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44060,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44064,"initialValue":{"expression":{"id":44062,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1235:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:69"},{"assignments":[44066],"declarations":[{"constant":false,"id":44066,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:69","nodeType":"VariableDeclaration","scope":44088,"src":"1256:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44065,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44071,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44067,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1273:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1273:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44069,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1289:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:69"},{"expression":{"id":44078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":44072,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"1306:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44076,"indexExpression":{"id":44074,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44066,"src":"1320:7:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44077,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44057,"src":"1331:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"id":44079,"nodeType":"ExpressionStatement","src":"1306:32:69"},{"expression":{"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44080,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1348:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1348:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44083,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1362:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":44084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44087,"nodeType":"ExpressionStatement","src":"1348:24:69"}]},"documentation":{"id":44051,"nodeType":"StructuredDocumentation","src":"942:171:69","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:69","parameters":{"id":44058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44054,"mutability":"mutable","name":"self","nameLocation":"1163:4:69","nodeType":"VariableDeclaration","scope":44089,"src":"1132:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44053,"nodeType":"UserDefinedTypeName","pathNode":{"id":44052,"name":"AddressStakingReleases","nameLocations":["1132:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1132:22:69"},"referencedDeclaration":50140,"src":"1132:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":44057,"mutability":"mutable","name":"release","nameLocation":"1191:7:69","nodeType":"VariableDeclaration","scope":44089,"src":"1169:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44056,"nodeType":"UserDefinedTypeName","pathNode":{"id":44055,"name":"StakingRelease","nameLocations":["1169:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1169:14:69"},"referencedDeclaration":50130,"src":"1169:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:69"},"returnParameters":{"id":44059,"nodeType":"ParameterList","parameters":[],"src":"1209:0:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44182,"nodeType":"FunctionDefinition","src":"1637:898:69","nodes":[],"body":{"id":44181,"nodeType":"Block","src":"1726:809:69","nodes":[],"statements":[{"assignments":[44101],"declarations":[{"constant":false,"id":44101,"mutability":"mutable","name":"length","nameLocation":"1743:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1736:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44100,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44104,"initialValue":{"expression":{"id":44102,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1752:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1752:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1777:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1777:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44113,"nodeType":"IfStatement","src":"1773:78:69","trueBody":{"id":44112,"nodeType":"Block","src":"1795:56:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44109,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"1816:22:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44111,"nodeType":"RevertStatement","src":"1809:31:69"}]}},{"assignments":[44115],"declarations":[{"constant":false,"id":44115,"mutability":"mutable","name":"i","nameLocation":"1868:1:69","nodeType":"VariableDeclaration","scope":44181,"src":"1861:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44114,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44118,"initialValue":{"expression":{"id":44116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1872:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1872:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:69"},{"assignments":[44120],"declarations":[{"constant":false,"id":44120,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:69","nodeType":"VariableDeclaration","scope":44181,"src":"1895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44119,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44122,"initialValue":{"id":44121,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1914:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:69"},{"assignments":[44124],"declarations":[{"constant":false,"id":44124,"mutability":"mutable","name":"amount","nameLocation":"1938:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1930:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44125,"nodeType":"VariableDeclarationStatement","src":"1930:14:69"},{"body":{"id":44163,"nodeType":"Block","src":"1973:458:69","statements":[{"assignments":[44131],"declarations":[{"constant":false,"id":44131,"mutability":"mutable","name":"release","nameLocation":"2009:7:69","nodeType":"VariableDeclaration","scope":44163,"src":"1987:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44130,"nodeType":"UserDefinedTypeName","pathNode":{"id":44129,"name":"StakingRelease","nameLocations":["1987:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1987:14:69"},"referencedDeclaration":50130,"src":"1987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44136,"initialValue":{"baseExpression":{"expression":{"id":44132,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2019:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2019:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44135,"indexExpression":{"id":44134,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2033:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44137,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2184:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:69","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":50126,"src":"2184:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":44139,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:69","memberName":"number","nodeType":"MemberAccess","src":"2204:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44144,"nodeType":"IfStatement","src":"2180:76:69","trueBody":{"id":44143,"nodeType":"Block","src":"2218:38:69","statements":[{"id":44142,"nodeType":"Break","src":"2236:5:69"}]}},{"expression":{"id":44148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44145,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":44146,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2280:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:69","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":50129,"src":"2280:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44149,"nodeType":"ExpressionStatement","src":"2270:24:69"},{"expression":{"id":44154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:69","subExpression":{"baseExpression":{"expression":{"id":44150,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2315:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2315:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44153,"indexExpression":{"id":44152,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2329:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44155,"nodeType":"ExpressionStatement","src":"2308:23:69"},{"id":44162,"nodeType":"UncheckedBlock","src":"2346:75:69","statements":[{"expression":{"id":44157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:69","subExpression":{"id":44156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2376:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44158,"nodeType":"ExpressionStatement","src":"2374:3:69"},{"expression":{"id":44160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:69","subExpression":{"id":44159,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2397:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44161,"nodeType":"ExpressionStatement","src":"2395:11:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44126,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"1961:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44127,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1965:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44164,"nodeType":"WhileStatement","src":"1954:477:69"},{"expression":{"id":44169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44165,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2441:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"2441:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44168,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2457:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44170,"nodeType":"ExpressionStatement","src":"2441:17:69"},{"expression":{"id":44175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44171,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2468:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"2468:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44174,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2482:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44176,"nodeType":"ExpressionStatement","src":"2468:23:69"},{"expression":{"components":[{"id":44177,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2510:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44178,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2518:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":44179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":44099,"id":44180,"nodeType":"Return","src":"2502:26:69"}]},"documentation":{"id":44090,"nodeType":"StructuredDocumentation","src":"1385:247:69","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:69","parameters":{"id":44094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44093,"mutability":"mutable","name":"self","nameLocation":"1685:4:69","nodeType":"VariableDeclaration","scope":44182,"src":"1654:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44092,"nodeType":"UserDefinedTypeName","pathNode":{"id":44091,"name":"AddressStakingReleases","nameLocations":["1654:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1654:22:69"},"referencedDeclaration":50140,"src":"1654:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:69"},"returnParameters":{"id":44099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1709:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44095,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1718:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44097,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[44183],"name":"LibAddressStakingReleases","nameLocation":"910:25:69","scope":46441,"usedErrors":[]},{"id":44302,"nodeType":"ContractDefinition","src":"2586:1272:69","nodes":[{"id":44187,"nodeType":"UsingForDirective","src":"2623:34:69","nodes":[],"global":false,"libraryName":{"id":44185,"name":"Address","nameLocations":["2629:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"2629:7:69"},"typeName":{"id":44186,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44191,"nodeType":"UsingForDirective","src":"2662:59:69","nodes":[],"global":false,"libraryName":{"id":44188,"name":"LibAddressStakingReleases","nameLocations":["2668:25:69"],"nodeType":"IdentifierPath","referencedDeclaration":44183,"src":"2668:25:69"},"typeName":{"id":44190,"nodeType":"UserDefinedTypeName","pathNode":{"id":44189,"name":"AddressStakingReleases","nameLocations":["2698:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"2698:22:69"},"referencedDeclaration":50140,"src":"2698:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":44199,"nodeType":"EventDefinition","src":"2727:84:69","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:69","parameters":{"id":44198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44193,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:69","nodeType":"VariableDeclaration","scope":44199,"src":"2754:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44192,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44195,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:69","nodeType":"VariableDeclaration","scope":44199,"src":"2773:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44194,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44197,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:69","nodeType":"VariableDeclaration","scope":44199,"src":"2789:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:69"}},{"id":44214,"nodeType":"FunctionDefinition","src":"2817:130:69","nodes":[],"body":{"id":44213,"nodeType":"Block","src":"2901:46:69","nodes":[],"statements":[{"expression":{"id":44211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44207,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44202,"src":"2911:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"2911:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44210,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44204,"src":"2934:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44212,"nodeType":"ExpressionStatement","src":"2911:29:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:69","parameters":{"id":44205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44202,"mutability":"mutable","name":"self","nameLocation":"2870:4:69","nodeType":"VariableDeclaration","scope":44214,"src":"2842:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44201,"nodeType":"UserDefinedTypeName","pathNode":{"id":44200,"name":"StakingReleaseQueue","nameLocations":["2842:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2842:19:69"},"referencedDeclaration":50150,"src":"2842:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44204,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:69","nodeType":"VariableDeclaration","scope":44214,"src":"2876:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44203,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:69"},"returnParameters":{"id":44206,"nodeType":"ParameterList","parameters":[],"src":"2901:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44257,"nodeType":"FunctionDefinition","src":"3016:419:69","nodes":[],"body":{"id":44256,"nodeType":"Block","src":"3117:318:69","nodes":[],"statements":[{"assignments":[44226],"declarations":[{"constant":false,"id":44226,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:69","nodeType":"VariableDeclaration","scope":44256,"src":"3127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44225,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44232,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44227,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:69","memberName":"number","nodeType":"MemberAccess","src":"3147:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":44229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3162:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"3162:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:69"},{"assignments":[44235],"declarations":[{"constant":false,"id":44235,"mutability":"mutable","name":"release","nameLocation":"3214:7:69","nodeType":"VariableDeclaration","scope":44256,"src":"3192:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44234,"nodeType":"UserDefinedTypeName","pathNode":{"id":44233,"name":"StakingRelease","nameLocations":["3192:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"3192:14:69"},"referencedDeclaration":50130,"src":"3192:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44240,"initialValue":{"arguments":[{"id":44237,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3251:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44238,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44236,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"3224:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$50130_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":44239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:69","3262:6:69"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:69"},{"expression":{"arguments":[{"id":44247,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44235,"src":"3319:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":44241,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3289:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3289:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44245,"indexExpression":{"id":44243,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3303:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:69","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":44089,"src":"3289:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$_t_struct$_StakingRelease_$50130_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":44248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44249,"nodeType":"ExpressionStatement","src":"3289:38:69"},{"eventCall":{"arguments":[{"id":44251,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3376:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44252,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3395:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44253,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3417:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44250,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44199,"src":"3343:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":44254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:69","3387:6:69","3403:12:69"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44255,"nodeType":"EmitStatement","src":"3338:90:69"}]},"documentation":{"id":44215,"nodeType":"StructuredDocumentation","src":"2953:58:69","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:69","parameters":{"id":44223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44218,"mutability":"mutable","name":"self","nameLocation":"3067:4:69","nodeType":"VariableDeclaration","scope":44257,"src":"3039:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44217,"nodeType":"UserDefinedTypeName","pathNode":{"id":44216,"name":"StakingReleaseQueue","nameLocations":["3039:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3039:19:69"},"referencedDeclaration":50150,"src":"3039:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44220,"mutability":"mutable","name":"validator","nameLocation":"3081:9:69","nodeType":"VariableDeclaration","scope":44257,"src":"3073:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44219,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44222,"mutability":"mutable","name":"amount","nameLocation":"3100:6:69","nodeType":"VariableDeclaration","scope":44257,"src":"3092:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:69"},"returnParameters":{"id":44224,"nodeType":"ParameterList","parameters":[],"src":"3117:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44301,"nodeType":"FunctionDefinition","src":"3516:340:69","nodes":[],"body":{"id":44300,"nodeType":"Block","src":"3611:245:69","nodes":[],"statements":[{"assignments":[44269,44271],"declarations":[{"constant":false,"id":44269,"mutability":"mutable","name":"amount","nameLocation":"3630:6:69","nodeType":"VariableDeclaration","scope":44300,"src":"3622:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44268,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44271,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:69","nodeType":"VariableDeclaration","scope":44300,"src":"3638:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44270,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44278,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":44272,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3658:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3658:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44275,"indexExpression":{"id":44274,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3672:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:69","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":44182,"src":"3658:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":44277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44279,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44271,"src":"3707:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44289,"nodeType":"IfStatement","src":"3703:76:69","trueBody":{"id":44288,"nodeType":"Block","src":"3723:56:69","statements":[{"expression":{"id":44286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:69","subExpression":{"baseExpression":{"expression":{"id":44282,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3744:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3744:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44285,"indexExpression":{"id":44284,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3758:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44287,"nodeType":"ExpressionStatement","src":"3737:31:69"}]}},{"expression":{"arguments":[{"id":44295,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44292,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3797:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":44290,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":44293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"3789:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":44296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44297,"nodeType":"ExpressionStatement","src":"3789:36:69"},{"expression":{"id":44298,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3843:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44267,"id":44299,"nodeType":"Return","src":"3836:13:69"}]},"documentation":{"id":44258,"nodeType":"StructuredDocumentation","src":"3441:70:69","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:69","parameters":{"id":44264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44261,"mutability":"mutable","name":"self","nameLocation":"3559:4:69","nodeType":"VariableDeclaration","scope":44301,"src":"3531:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44260,"nodeType":"UserDefinedTypeName","pathNode":{"id":44259,"name":"StakingReleaseQueue","nameLocations":["3531:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3531:19:69"},"referencedDeclaration":50150,"src":"3531:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44263,"mutability":"mutable","name":"validator","nameLocation":"3573:9:69","nodeType":"VariableDeclaration","scope":44301,"src":"3565:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44262,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:69"},"returnParameters":{"id":44267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44301,"src":"3602:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44265,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":44184,"nodeType":"StructuredDocumentation","src":"2539:47:69","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[44302],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:69","scope":46441,"usedErrors":[]},{"id":45293,"nodeType":"ContractDefinition","src":"3900:11436:69","nodes":[{"id":44307,"nodeType":"UsingForDirective","src":"3930:25:69","nodes":[],"global":false,"libraryName":{"id":44304,"name":"LibMinPQ","nameLocations":["3936:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"3936:8:69"},"typeName":{"id":44306,"nodeType":"UserDefinedTypeName","pathNode":{"id":44305,"name":"MinPQ","nameLocations":["3949:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"3949:5:69"},"referencedDeclaration":49029,"src":"3949:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":44311,"nodeType":"UsingForDirective","src":"3960:25:69","nodes":[],"global":false,"libraryName":{"id":44308,"name":"LibMaxPQ","nameLocations":["3966:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"3966:8:69"},"typeName":{"id":44310,"nodeType":"UserDefinedTypeName","pathNode":{"id":44309,"name":"MaxPQ","nameLocations":["3979:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3979:5:69"},"referencedDeclaration":48411,"src":"3979:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44317,"nodeType":"EventDefinition","src":"3991:76:69","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:69","parameters":{"id":44316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44313,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:69","nodeType":"VariableDeclaration","scope":44317,"src":"4030:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44312,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44315,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:69","nodeType":"VariableDeclaration","scope":44317,"src":"4049:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44314,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:69"}},{"id":44323,"nodeType":"EventDefinition","src":"4072:77:69","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:69","parameters":{"id":44322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44319,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:69","nodeType":"VariableDeclaration","scope":44323,"src":"4112:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44318,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44321,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:69","nodeType":"VariableDeclaration","scope":44323,"src":"4131:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44320,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:69"}},{"id":44329,"nodeType":"EventDefinition","src":"4154:59:69","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:69","parameters":{"id":44328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:69","nodeType":"VariableDeclaration","scope":44329,"src":"4179:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44324,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44327,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:69","nodeType":"VariableDeclaration","scope":44329,"src":"4198:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44326,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:69"}},{"id":44335,"nodeType":"EventDefinition","src":"4218:60:69","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:69","parameters":{"id":44334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44331,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:69","nodeType":"VariableDeclaration","scope":44335,"src":"4244:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44330,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44333,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:69","nodeType":"VariableDeclaration","scope":44335,"src":"4263:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44332,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:69"}},{"id":44341,"nodeType":"EventDefinition","src":"4283:74:69","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:69","parameters":{"id":44340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44337,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4313:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44336,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44339,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4335:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44338,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:69"}},{"id":44345,"nodeType":"EventDefinition","src":"4362:45:69","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:69","parameters":{"id":44344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44343,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:69","nodeType":"VariableDeclaration","scope":44345,"src":"4388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44342,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:69"}},{"id":44349,"nodeType":"EventDefinition","src":"4412:46:69","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:69","parameters":{"id":44348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44347,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:69","nodeType":"VariableDeclaration","scope":44349,"src":"4439:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44346,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:69"}},{"id":44385,"nodeType":"FunctionDefinition","src":"4525:375:69","nodes":[],"body":{"id":44384,"nodeType":"Block","src":"4654:246:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":44364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44360,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4668:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:69","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"4668:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":44362,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"4697:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":44363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:69","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"4697:24:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"4668:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44382,"nodeType":"Block","src":"4809:85:69","statements":[{"expression":{"id":44380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44374,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4823:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44375,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4831:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4831:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44378,"indexExpression":{"id":44377,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4853:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"4831:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44381,"nodeType":"ExpressionStatement","src":"4823:60:69"}]},"id":44383,"nodeType":"IfStatement","src":"4664:230:69","trueBody":{"id":44373,"nodeType":"Block","src":"4723:80:69","statements":[{"expression":{"id":44371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44365,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4737:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44366,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4745:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4745:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44369,"indexExpression":{"id":44368,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4767:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"4745:47:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44372,"nodeType":"ExpressionStatement","src":"4737:55:69"}]}}]},"documentation":{"id":44350,"nodeType":"StructuredDocumentation","src":"4464:56:69","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:69","parameters":{"id":44356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44353,"mutability":"mutable","name":"validators","nameLocation":"4573:10:69","nodeType":"VariableDeclaration","scope":44385,"src":"4552:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44352,"nodeType":"UserDefinedTypeName","pathNode":{"id":44351,"name":"ValidatorSet","nameLocations":["4552:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4552:12:69"},"referencedDeclaration":50190,"src":"4552:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44355,"mutability":"mutable","name":"validator","nameLocation":"4601:9:69","nodeType":"VariableDeclaration","scope":44385,"src":"4593:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44354,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:69"},"returnParameters":{"id":44359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44358,"mutability":"mutable","name":"power","nameLocation":"4647:5:69","nodeType":"VariableDeclaration","scope":44385,"src":"4639:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44357,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44400,"nodeType":"FunctionDefinition","src":"4976:178:69","nodes":[],"body":{"id":44399,"nodeType":"Block","src":"5089:65:69","nodes":[],"statements":[{"expression":{"id":44397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44394,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44392,"src":"5099:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44395,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44389,"src":"5112:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"5112:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44398,"nodeType":"ExpressionStatement","src":"5099:48:69"}]},"documentation":{"id":44386,"nodeType":"StructuredDocumentation","src":"4906:65:69","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:69","parameters":{"id":44390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44389,"mutability":"mutable","name":"validators","nameLocation":"5034:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5013:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44388,"nodeType":"UserDefinedTypeName","pathNode":{"id":44387,"name":"ValidatorSet","nameLocations":["5013:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5013:12:69"},"referencedDeclaration":50190,"src":"5013:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:69"},"returnParameters":{"id":44393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44392,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5069:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44391,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44417,"nodeType":"FunctionDefinition","src":"5209:163:69","nodes":[],"body":{"id":44416,"nodeType":"Block","src":"5310:62:69","nodes":[],"statements":[{"expression":{"id":44414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44409,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44407,"src":"5320:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44410,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44404,"src":"5328:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5328:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5328:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44415,"nodeType":"ExpressionStatement","src":"5320:45:69"}]},"documentation":{"id":44401,"nodeType":"StructuredDocumentation","src":"5160:44:69","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:69","parameters":{"id":44405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44404,"mutability":"mutable","name":"validators","nameLocation":"5261:10:69","nodeType":"VariableDeclaration","scope":44417,"src":"5240:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44403,"nodeType":"UserDefinedTypeName","pathNode":{"id":44402,"name":"ValidatorSet","nameLocations":["5240:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5240:12:69"},"referencedDeclaration":50190,"src":"5240:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:69"},"returnParameters":{"id":44408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44407,"mutability":"mutable","name":"total","nameLocation":"5303:5:69","nodeType":"VariableDeclaration","scope":44417,"src":"5296:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44406,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44437,"nodeType":"FunctionDefinition","src":"5441:231:69","nodes":[],"body":{"id":44436,"nodeType":"Block","src":"5590:82:69","nodes":[],"statements":[{"expression":{"id":44434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44428,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44426,"src":"5600:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44429,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44421,"src":"5613:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"5613:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44432,"indexExpression":{"id":44431,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44423,"src":"5635:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"5613:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44435,"nodeType":"ExpressionStatement","src":"5600:65:69"}]},"documentation":{"id":44418,"nodeType":"StructuredDocumentation","src":"5378:58:69","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:69","parameters":{"id":44424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44421,"mutability":"mutable","name":"validators","nameLocation":"5503:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5482:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44420,"nodeType":"UserDefinedTypeName","pathNode":{"id":44419,"name":"ValidatorSet","nameLocations":["5482:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5482:12:69"},"referencedDeclaration":50190,"src":"5482:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44423,"mutability":"mutable","name":"validator","nameLocation":"5531:9:69","nodeType":"VariableDeclaration","scope":44437,"src":"5523:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44422,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:69"},"returnParameters":{"id":44427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44426,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5570:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44425,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44489,"nodeType":"FunctionDefinition","src":"5678:434:69","nodes":[],"body":{"id":44488,"nodeType":"Block","src":"5792:320:69","nodes":[],"statements":[{"assignments":[44447],"declarations":[{"constant":false,"id":44447,"mutability":"mutable","name":"size","nameLocation":"5809:4:69","nodeType":"VariableDeclaration","scope":44488,"src":"5802:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44446,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44452,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44448,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5816:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5816:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5816:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:69"},{"expression":{"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44453,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5863:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44457,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5889:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":44456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":44454,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44455,"nodeType":"ArrayTypeName","src":"5879:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":44458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44460,"nodeType":"ExpressionStatement","src":"5863:31:69"},{"body":{"id":44484,"nodeType":"Block","src":"5936:144:69","statements":[{"expression":{"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44468,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5950:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44472,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5960:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":44470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6008:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44473,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5969:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5969:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"5969:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44479,"nodeType":"ExpressionStatement","src":"5950:60:69"},{"id":44483,"nodeType":"UncheckedBlock","src":"6024:46:69","statements":[{"expression":{"id":44481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:69","subExpression":{"id":44480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6054:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44482,"nodeType":"ExpressionStatement","src":"6052:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5923:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44466,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5928:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44485,"initializationExpression":{"assignments":[44462],"declarations":[{"constant":false,"id":44462,"mutability":"mutable","name":"i","nameLocation":"5916:1:69","nodeType":"VariableDeclaration","scope":44485,"src":"5909:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44461,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44464,"initialValue":{"hexValue":"31","id":44463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:69"},"nodeType":"ForStatement","src":"5904:176:69"},{"expression":{"id":44486,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"6096:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":44445,"id":44487,"nodeType":"Return","src":"6089:16:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:69","parameters":{"id":44441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44440,"mutability":"mutable","name":"validators","nameLocation":"5729:10:69","nodeType":"VariableDeclaration","scope":44489,"src":"5708:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44439,"nodeType":"UserDefinedTypeName","pathNode":{"id":44438,"name":"ValidatorSet","nameLocations":["5708:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5708:12:69"},"referencedDeclaration":50190,"src":"5708:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:69"},"returnParameters":{"id":44445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44444,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:69","nodeType":"VariableDeclaration","scope":44489,"src":"5764:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44442,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44443,"nodeType":"ArrayTypeName","src":"5764:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44534,"nodeType":"FunctionDefinition","src":"6183:418:69","nodes":[],"body":{"id":44533,"nodeType":"Block","src":"6288:313:69","nodes":[],"statements":[{"assignments":[44499],"declarations":[{"constant":false,"id":44499,"mutability":"mutable","name":"size","nameLocation":"6305:4:69","nodeType":"VariableDeclaration","scope":44533,"src":"6298:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44498,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44500,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6312:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6312:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"6312:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:69"},{"body":{"id":44531,"nodeType":"Block","src":"6391:204:69","statements":[{"assignments":[44513],"declarations":[{"constant":false,"id":44513,"mutability":"mutable","name":"validator","nameLocation":"6413:9:69","nodeType":"VariableDeclaration","scope":44531,"src":"6405:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44512,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44519,"initialValue":{"arguments":[{"id":44517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6464:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44514,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6425:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6425:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"6425:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:69"},{"expression":{"id":44525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44520,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44496,"src":"6480:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44522,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6503:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44523,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44513,"src":"6515:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44521,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"6494:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44526,"nodeType":"ExpressionStatement","src":"6480:45:69"},{"id":44530,"nodeType":"UncheckedBlock","src":"6539:46:69","statements":[{"expression":{"id":44528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:69","subExpression":{"id":44527,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6569:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44529,"nodeType":"ExpressionStatement","src":"6567:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6378:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44510,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44499,"src":"6383:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44532,"initializationExpression":{"assignments":[44506],"declarations":[{"constant":false,"id":44506,"mutability":"mutable","name":"i","nameLocation":"6371:1:69","nodeType":"VariableDeclaration","scope":44532,"src":"6364:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44505,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44508,"initialValue":{"hexValue":"31","id":44507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:69"},"nodeType":"ForStatement","src":"6359:236:69"}]},"documentation":{"id":44490,"nodeType":"StructuredDocumentation","src":"6118:60:69","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:69","parameters":{"id":44494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44493,"mutability":"mutable","name":"validators","nameLocation":"6233:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6212:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44492,"nodeType":"UserDefinedTypeName","pathNode":{"id":44491,"name":"ValidatorSet","nameLocations":["6212:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6212:12:69"},"referencedDeclaration":50190,"src":"6212:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:69"},"returnParameters":{"id":44497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44496,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6268:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44495,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44585,"nodeType":"FunctionDefinition","src":"6690:496:69","nodes":[],"body":{"id":44584,"nodeType":"Block","src":"6794:392:69","nodes":[],"statements":[{"assignments":[44544],"declarations":[{"constant":false,"id":44544,"mutability":"mutable","name":"size","nameLocation":"6811:4:69","nodeType":"VariableDeclaration","scope":44584,"src":"6804:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44543,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44549,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44545,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6818:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6818:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"6818:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:69"},{"body":{"id":44576,"nodeType":"Block","src":"6898:219:69","statements":[{"assignments":[44558],"declarations":[{"constant":false,"id":44558,"mutability":"mutable","name":"validator","nameLocation":"6920:9:69","nodeType":"VariableDeclaration","scope":44576,"src":"6912:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44557,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44564,"initialValue":{"arguments":[{"id":44562,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6972:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44559,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6932:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6932:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":48450,"src":"6932:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":44563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:69"},{"expression":{"id":44570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44565,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"6988:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44567,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7025:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44568,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44558,"src":"7037:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44566,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44437,"src":"7002:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44571,"nodeType":"ExpressionStatement","src":"6988:59:69"},{"id":44575,"nodeType":"UncheckedBlock","src":"7061:46:69","statements":[{"expression":{"id":44573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:69","subExpression":{"id":44572,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"7091:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44574,"nodeType":"ExpressionStatement","src":"7089:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44554,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6885:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44555,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44544,"src":"6890:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44577,"initializationExpression":{"assignments":[44551],"declarations":[{"constant":false,"id":44551,"mutability":"mutable","name":"i","nameLocation":"6878:1:69","nodeType":"VariableDeclaration","scope":44577,"src":"6871:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44550,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44553,"initialValue":{"hexValue":"31","id":44552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:69"},"nodeType":"ForStatement","src":"6866:251:69"},{"expression":{"id":44582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44578,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"7126:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44580,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7168:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":44579,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"7140:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44583,"nodeType":"ExpressionStatement","src":"7126:53:69"}]},"documentation":{"id":44535,"nodeType":"StructuredDocumentation","src":"6607:78:69","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:69","parameters":{"id":44539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44538,"mutability":"mutable","name":"validators","nameLocation":"6739:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6718:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44537,"nodeType":"UserDefinedTypeName","pathNode":{"id":44536,"name":"ValidatorSet","nameLocations":["6718:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6718:12:69"},"referencedDeclaration":50190,"src":"6718:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:69"},"returnParameters":{"id":44542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44541,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6774:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44540,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44655,"nodeType":"FunctionDefinition","src":"7339:612:69","nodes":[],"body":{"id":44654,"nodeType":"Block","src":"7498:453:69","nodes":[],"statements":[{"assignments":[44599],"declarations":[{"constant":false,"id":44599,"mutability":"mutable","name":"size","nameLocation":"7516:4:69","nodeType":"VariableDeclaration","scope":44654,"src":"7508:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44602,"initialValue":{"expression":{"id":44600,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7523:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:69","memberName":"length","nodeType":"MemberAccess","src":"7523:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:69"},{"assignments":[44607],"declarations":[{"constant":false,"id":44607,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:69","nodeType":"VariableDeclaration","scope":44654,"src":"7549:33:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44605,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44606,"nodeType":"ArrayTypeName","src":"7549:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":44613,"initialValue":{"arguments":[{"id":44611,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7599:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":44608,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44609,"nodeType":"ArrayTypeName","src":"7589:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":44612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:69"},{"body":{"id":44650,"nodeType":"Block","src":"7643:269:69","statements":[{"condition":{"id":44626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:69","subExpression":{"arguments":[{"id":44621,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7680:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44622,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7692:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44624,"indexExpression":{"id":44623,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7702:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44620,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44672,"src":"7662:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":44625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44634,"nodeType":"IfStatement","src":"7657:116:69","trueBody":{"id":44633,"nodeType":"Block","src":"7707:66:69","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":44628,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7745:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44630,"indexExpression":{"id":44629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7755:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44627,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7732:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":44631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44632,"nodeType":"RevertStatement","src":"7725:33:69"}]}},{"expression":{"id":44644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44635,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7786:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":44637,"indexExpression":{"id":44636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7803:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44639,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7817:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44640,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7829:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44642,"indexExpression":{"id":44641,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7839:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44638,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"7808:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44645,"nodeType":"ExpressionStatement","src":"7786:56:69"},{"id":44649,"nodeType":"UncheckedBlock","src":"7856:46:69","statements":[{"expression":{"id":44647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:69","subExpression":{"id":44646,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7886:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44648,"nodeType":"ExpressionStatement","src":"7884:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44617,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7631:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44618,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7635:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44651,"initializationExpression":{"assignments":[44615],"declarations":[{"constant":false,"id":44615,"mutability":"mutable","name":"i","nameLocation":"7628:1:69","nodeType":"VariableDeclaration","scope":44651,"src":"7620:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44614,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44616,"nodeType":"VariableDeclarationStatement","src":"7620:9:69"},"nodeType":"ForStatement","src":"7615:297:69"},{"expression":{"id":44652,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7928:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":44597,"id":44653,"nodeType":"Return","src":"7921:23:69"}]},"documentation":{"id":44586,"nodeType":"StructuredDocumentation","src":"7193:141:69","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:69","parameters":{"id":44593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44589,"mutability":"mutable","name":"validators","nameLocation":"7404:10:69","nodeType":"VariableDeclaration","scope":44655,"src":"7383:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44588,"nodeType":"UserDefinedTypeName","pathNode":{"id":44587,"name":"ValidatorSet","nameLocations":["7383:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7383:12:69"},"referencedDeclaration":50190,"src":"7383:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44592,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:69","nodeType":"VariableDeclaration","scope":44655,"src":"7424:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44590,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44591,"nodeType":"ArrayTypeName","src":"7424:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:69"},"returnParameters":{"id":44597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44655,"src":"7480:16:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44594,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44595,"nodeType":"ArrayTypeName","src":"7480:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44672,"nodeType":"FunctionDefinition","src":"7957:167:69","nodes":[],"body":{"id":44671,"nodeType":"Block","src":"8059:65:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":44668,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44660,"src":"8107:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44665,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44658,"src":"8076:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"8076:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"8076:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44664,"id":44670,"nodeType":"Return","src":"8069:48:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:69","parameters":{"id":44661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44658,"mutability":"mutable","name":"self","nameLocation":"8005:4:69","nodeType":"VariableDeclaration","scope":44672,"src":"7984:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44657,"nodeType":"UserDefinedTypeName","pathNode":{"id":44656,"name":"ValidatorSet","nameLocations":["7984:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7984:12:69"},"referencedDeclaration":50190,"src":"7984:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44660,"mutability":"mutable","name":"validator","nameLocation":"8019:9:69","nodeType":"VariableDeclaration","scope":44672,"src":"8011:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44659,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:69"},"returnParameters":{"id":44664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44672,"src":"8053:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44662,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44693,"nodeType":"FunctionDefinition","src":"8165:176:69","nodes":[],"body":{"id":44692,"nodeType":"Block","src":"8272:69:69","nodes":[],"statements":[{"expression":{"id":44690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44683,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44676,"src":"8282:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8282:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44687,"indexExpression":{"id":44685,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44678,"src":"8304:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"8282:41:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44689,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44680,"src":"8326:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":44691,"nodeType":"ExpressionStatement","src":"8282:52:69"}]},"documentation":{"id":44673,"nodeType":"StructuredDocumentation","src":"8130:30:69","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:69","parameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44676,"mutability":"mutable","name":"validators","nameLocation":"8207:10:69","nodeType":"VariableDeclaration","scope":44693,"src":"8186:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44675,"nodeType":"UserDefinedTypeName","pathNode":{"id":44674,"name":"ValidatorSet","nameLocations":["8186:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8186:12:69"},"referencedDeclaration":50190,"src":"8186:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44678,"mutability":"mutable","name":"validator","nameLocation":"8227:9:69","nodeType":"VariableDeclaration","scope":44693,"src":"8219:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44677,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44680,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:69","nodeType":"VariableDeclaration","scope":44693,"src":"8238:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44679,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:69"},"returnParameters":{"id":44682,"nodeType":"ParameterList","parameters":[],"src":"8272:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44714,"nodeType":"FunctionDefinition","src":"8648:175:69","nodes":[],"body":{"id":44713,"nodeType":"Block","src":"8748:75:69","nodes":[],"statements":[{"expression":{"id":44711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44704,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44697,"src":"8758:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8758:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44708,"indexExpression":{"id":44706,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44699,"src":"8780:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"8758:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44710,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44701,"src":"8810:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44712,"nodeType":"ExpressionStatement","src":"8758:58:69"}]},"documentation":{"id":44694,"nodeType":"StructuredDocumentation","src":"8580:63:69","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:69","parameters":{"id":44702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44697,"mutability":"mutable","name":"validators","nameLocation":"8692:10:69","nodeType":"VariableDeclaration","scope":44714,"src":"8671:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44696,"nodeType":"UserDefinedTypeName","pathNode":{"id":44695,"name":"ValidatorSet","nameLocations":["8671:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8671:12:69"},"referencedDeclaration":50190,"src":"8671:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44699,"mutability":"mutable","name":"validator","nameLocation":"8712:9:69","nodeType":"VariableDeclaration","scope":44714,"src":"8704:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44698,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44701,"mutability":"mutable","name":"amount","nameLocation":"8731:6:69","nodeType":"VariableDeclaration","scope":44714,"src":"8723:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44700,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:69"},"returnParameters":{"id":44703,"nodeType":"ParameterList","parameters":[],"src":"8748:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44755,"nodeType":"FunctionDefinition","src":"8895:364:69","nodes":[],"body":{"id":44754,"nodeType":"Block","src":"8996:263:69","nodes":[],"statements":[{"assignments":[44726],"declarations":[{"constant":false,"id":44726,"mutability":"mutable","name":"total","nameLocation":"9014:5:69","nodeType":"VariableDeclaration","scope":44754,"src":"9006:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44725,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44732,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44727,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9022:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9022:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44730,"indexExpression":{"id":44729,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9044:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9022:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44733,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9084:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9092:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44740,"nodeType":"IfStatement","src":"9080:81:69","trueBody":{"id":44739,"nodeType":"Block","src":"9100:61:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44736,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"9121:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44738,"nodeType":"RevertStatement","src":"9114:36:69"}]}},{"expression":{"id":44743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44741,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9171:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44742,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44744,"nodeType":"ExpressionStatement","src":"9171:15:69"},{"expression":{"id":44752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44745,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9196:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9196:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44749,"indexExpression":{"id":44747,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9196:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44751,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9247:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44753,"nodeType":"ExpressionStatement","src":"9196:56:69"}]},"documentation":{"id":44715,"nodeType":"StructuredDocumentation","src":"8829:61:69","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:69","parameters":{"id":44723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44718,"mutability":"mutable","name":"validators","nameLocation":"8940:10:69","nodeType":"VariableDeclaration","scope":44755,"src":"8919:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44717,"nodeType":"UserDefinedTypeName","pathNode":{"id":44716,"name":"ValidatorSet","nameLocations":["8919:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8919:12:69"},"referencedDeclaration":50190,"src":"8919:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44720,"mutability":"mutable","name":"validator","nameLocation":"8960:9:69","nodeType":"VariableDeclaration","scope":44755,"src":"8952:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44719,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44722,"mutability":"mutable","name":"amount","nameLocation":"8979:6:69","nodeType":"VariableDeclaration","scope":44755,"src":"8971:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44721,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:69"},"returnParameters":{"id":44724,"nodeType":"ParameterList","parameters":[],"src":"8996:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44808,"nodeType":"FunctionDefinition","src":"9330:540:69","nodes":[],"body":{"id":44807,"nodeType":"Block","src":"9431:439:69","nodes":[],"statements":[{"assignments":[44767],"declarations":[{"constant":false,"id":44767,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:69","nodeType":"VariableDeclaration","scope":44807,"src":"9441:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44766,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44773,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44768,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9465:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9465:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44771,"indexExpression":{"id":44770,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9481:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9465:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:69"},{"expression":{"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44774,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9516:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9516:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44778,"indexExpression":{"id":44776,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9532:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9516:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44780,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9560:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44782,"nodeType":"ExpressionStatement","src":"9516:49:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44783,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9580:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44784,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9597:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44788,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9645:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44789,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9661:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44804,"nodeType":"Block","src":"9771:93:69","statements":[{"expression":{"arguments":[{"id":44799,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9808:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44800,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9825:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44801,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9846:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44798,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"9785:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:69","9814:9:69","9836:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44803,"nodeType":"ExpressionStatement","src":"9785:68:69"}]},"id":44805,"nodeType":"IfStatement","src":"9641:223:69","trueBody":{"id":44797,"nodeType":"Block","src":"9668:97:69","statements":[{"expression":{"arguments":[{"id":44792,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9707:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44793,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9726:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44794,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9747:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44791,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"9682:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:69","9713:11:69","9737:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44796,"nodeType":"ExpressionStatement","src":"9682:72:69"}]}},"id":44806,"nodeType":"IfStatement","src":"9576:288:69","trueBody":{"id":44787,"nodeType":"Block","src":"9604:31:69","statements":[{"functionReturnParameters":44765,"id":44786,"nodeType":"Return","src":"9618:7:69"}]}}]},"documentation":{"id":44756,"nodeType":"StructuredDocumentation","src":"9265:60:69","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:69","parameters":{"id":44764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44759,"mutability":"mutable","name":"self","nameLocation":"9382:4:69","nodeType":"VariableDeclaration","scope":44808,"src":"9361:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44758,"nodeType":"UserDefinedTypeName","pathNode":{"id":44757,"name":"ValidatorSet","nameLocations":["9361:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9361:12:69"},"referencedDeclaration":50190,"src":"9361:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44761,"mutability":"mutable","name":"validator","nameLocation":"9396:9:69","nodeType":"VariableDeclaration","scope":44808,"src":"9388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44760,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44763,"mutability":"mutable","name":"power","nameLocation":"9415:5:69","nodeType":"VariableDeclaration","scope":44808,"src":"9407:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44762,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:69"},"returnParameters":{"id":44765,"nodeType":"ParameterList","parameters":[],"src":"9431:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44850,"nodeType":"FunctionDefinition","src":"9876:404:69","nodes":[],"body":{"id":44849,"nodeType":"Block","src":"9971:309:69","nodes":[],"statements":[{"assignments":[44819],"declarations":[{"constant":false,"id":44819,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:69","nodeType":"VariableDeclaration","scope":44849,"src":"9981:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44818,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44827,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44820,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10005:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10005:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44823,"indexExpression":{"id":44822,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10021:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10005:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44825,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10054:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:69"},{"expression":{"id":44835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44828,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10070:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10070:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44832,"indexExpression":{"id":44830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10086:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10070:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44834,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10119:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44836,"nodeType":"ExpressionStatement","src":"10070:62:69"},{"expression":{"id":44841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10143:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10143:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44840,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10176:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44842,"nodeType":"ExpressionStatement","src":"10143:39:69"},{"expression":{"arguments":[{"id":44844,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10218:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10237:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44846,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10258:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44843,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"10193:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:69","10224:11:69","10248:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44848,"nodeType":"ExpressionStatement","src":"10193:80:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:69","parameters":{"id":44816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44811,"mutability":"mutable","name":"self","nameLocation":"9921:4:69","nodeType":"VariableDeclaration","scope":44850,"src":"9900:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44810,"nodeType":"UserDefinedTypeName","pathNode":{"id":44809,"name":"ValidatorSet","nameLocations":["9900:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9900:12:69"},"referencedDeclaration":50190,"src":"9900:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44813,"mutability":"mutable","name":"validator","nameLocation":"9935:9:69","nodeType":"VariableDeclaration","scope":44850,"src":"9927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44812,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44815,"mutability":"mutable","name":"amount","nameLocation":"9954:6:69","nodeType":"VariableDeclaration","scope":44850,"src":"9946:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44814,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:69"},"returnParameters":{"id":44817,"nodeType":"ParameterList","parameters":[],"src":"9971:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44916,"nodeType":"FunctionDefinition","src":"10286:616:69","nodes":[],"body":{"id":44915,"nodeType":"Block","src":"10382:520:69","nodes":[],"statements":[{"assignments":[44861],"declarations":[{"constant":false,"id":44861,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:69","nodeType":"VariableDeclaration","scope":44915,"src":"10392:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44860,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44869,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10416:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10416:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44865,"indexExpression":{"id":44864,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10432:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10416:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44867,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:69"},{"assignments":[44871],"declarations":[{"constant":false,"id":44871,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:69","nodeType":"VariableDeclaration","scope":44915,"src":"10481:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44870,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44877,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44872,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10507:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10507:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44875,"indexExpression":{"id":44874,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10523:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"10507:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44878,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10564:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44881,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44871,"src":"10586:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44901,"nodeType":"Block","src":"10672:87:69","statements":[{"expression":{"id":44899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44892,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10686:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10686:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44896,"indexExpression":{"id":44894,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10702:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10686:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44898,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10735:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44900,"nodeType":"ExpressionStatement","src":"10686:62:69"}]},"id":44902,"nodeType":"IfStatement","src":"10560:199:69","trueBody":{"id":44891,"nodeType":"Block","src":"10608:58:69","statements":[{"expression":{"id":44889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:69","subExpression":{"baseExpression":{"expression":{"id":44885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10629:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10629:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44888,"indexExpression":{"id":44887,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10645:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44890,"nodeType":"ExpressionStatement","src":"10622:33:69"}]}},{"expression":{"arguments":[{"id":44904,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10792:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44905,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10809:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44906,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10830:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44903,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"10769:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:69","10798:9:69","10820:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44908,"nodeType":"ExpressionStatement","src":"10769:76:69"},{"expression":{"id":44913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10856:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10856:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44912,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10889:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44914,"nodeType":"ExpressionStatement","src":"10856:39:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:69","parameters":{"id":44858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44853,"mutability":"mutable","name":"self","nameLocation":"10332:4:69","nodeType":"VariableDeclaration","scope":44916,"src":"10311:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44852,"nodeType":"UserDefinedTypeName","pathNode":{"id":44851,"name":"ValidatorSet","nameLocations":["10311:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"10311:12:69"},"referencedDeclaration":50190,"src":"10311:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"validator","nameLocation":"10346:9:69","nodeType":"VariableDeclaration","scope":44916,"src":"10338:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44854,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44857,"mutability":"mutable","name":"amount","nameLocation":"10365:6:69","nodeType":"VariableDeclaration","scope":44916,"src":"10357:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44856,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:69"},"returnParameters":{"id":44859,"nodeType":"ParameterList","parameters":[],"src":"10382:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45081,"nodeType":"FunctionDefinition","src":"11008:2209:69","nodes":[],"body":{"id":45080,"nodeType":"Block","src":"11110:2107:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":44930,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11155:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44927,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11124:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11124:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"11124:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44948,"nodeType":"IfStatement","src":"11120:226:69","trueBody":{"id":44947,"nodeType":"Block","src":"11169:177:69","statements":[{"expression":{"arguments":[{"id":44937,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11223:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44938,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11229:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44932,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11183:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11183:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49342,"src":"11183:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44940,"nodeType":"ExpressionStatement","src":"11183:58:69"},{"eventCall":{"arguments":[{"id":44942,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11293:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44943,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11306:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44941,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"11260:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44945,"nodeType":"EmitStatement","src":"11255:60:69"},{"functionReturnParameters":44926,"id":44946,"nodeType":"Return","src":"11329:7:69"}]}},{"assignments":[44950],"declarations":[{"constant":false,"id":44950,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:69","nodeType":"VariableDeclaration","scope":45080,"src":"11408:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44949,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44953,"initialValue":{"expression":{"id":44951,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11429:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:69","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"11429:16:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:69"},{"assignments":[44955],"declarations":[{"constant":false,"id":44955,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"11455:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44954,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44960,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44956,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11475:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"11475:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44961,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44950,"src":"11520:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44962,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44955,"src":"11534:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44980,"nodeType":"IfStatement","src":"11516:262:69","trueBody":{"id":44979,"nodeType":"Block","src":"11546:232:69","statements":[{"expression":{"arguments":[{"id":44969,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11669:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44970,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11675:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44964,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11640:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11640:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"11640:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44972,"nodeType":"ExpressionStatement","src":"11640:47:69"},{"eventCall":{"arguments":[{"id":44974,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11725:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44975,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11738:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44973,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"11706:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44977,"nodeType":"EmitStatement","src":"11701:46:69"},{"functionReturnParameters":44926,"id":44978,"nodeType":"Return","src":"11761:7:69"}]}},{"assignments":[44982,44984],"declarations":[{"constant":false,"id":44982,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"12317:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44981,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44984,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:69","nodeType":"VariableDeclaration","scope":45080,"src":"12337:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44983,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44990,"initialValue":{"arguments":[{"id":44988,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12389:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12363:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12363:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"12363:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44991,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44984,"src":"12408:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44992,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"12425:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45043,"nodeType":"IfStatement","src":"12404:452:69","trueBody":{"id":45042,"nodeType":"Block","src":"12435:421:69","statements":[{"expression":{"arguments":[{"id":44999,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44994,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12449:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12449:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"12449:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45001,"nodeType":"ExpressionStatement","src":"12449:31:69"},{"condition":{"arguments":[{"id":45005,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12531:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45002,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12499:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12499:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12499:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45017,"nodeType":"IfStatement","src":"12495:140:69","trueBody":{"id":45016,"nodeType":"Block","src":"12545:90:69","statements":[{"expression":{"arguments":[{"id":45012,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12602:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45013,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12608:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45007,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12563:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12563:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"12563:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45015,"nodeType":"ExpressionStatement","src":"12563:57:69"}]}},{"expression":{"arguments":[{"id":45023,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12678:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45024,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12684:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45018,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12649:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12649:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"12649:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45026,"nodeType":"ExpressionStatement","src":"12649:47:69"},{"expression":{"arguments":[{"id":45032,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12740:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45033,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12746:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45027,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12710:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12710:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"12710:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45035,"nodeType":"ExpressionStatement","src":"12710:47:69"},{"eventCall":{"arguments":[{"id":45037,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12801:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45038,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12813:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45036,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"12777:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45040,"nodeType":"EmitStatement","src":"12772:53:69"},{"functionReturnParameters":44926,"id":45041,"nodeType":"Return","src":"12839:7:69"}]}},{"condition":{"arguments":[{"id":45047,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12902:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45044,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12870:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12870:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12870:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45065,"nodeType":"IfStatement","src":"12866:229:69","trueBody":{"id":45064,"nodeType":"Block","src":"12916:179:69","statements":[{"expression":{"arguments":[{"id":45054,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12971:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45055,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12977:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45049,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12930:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12930:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48724,"src":"12930:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45057,"nodeType":"ExpressionStatement","src":"12930:59:69"},{"eventCall":{"arguments":[{"id":45059,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13042:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45060,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13055:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45058,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13008:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45062,"nodeType":"EmitStatement","src":"13003:61:69"},{"functionReturnParameters":44926,"id":45063,"nodeType":"Return","src":"13078:7:69"}]}},{"expression":{"arguments":[{"id":45071,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13135:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45072,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13141:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45066,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13105:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13105:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"13105:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45074,"nodeType":"ExpressionStatement","src":"13105:48:69"},{"eventCall":{"arguments":[{"id":45076,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13188:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45077,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13201:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45075,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44335,"src":"13168:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45079,"nodeType":"EmitStatement","src":"13163:47:69"}]},"documentation":{"id":44917,"nodeType":"StructuredDocumentation","src":"10908:95:69","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:69","parameters":{"id":44925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44920,"mutability":"mutable","name":"self","nameLocation":"11056:4:69","nodeType":"VariableDeclaration","scope":45081,"src":"11035:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44919,"nodeType":"UserDefinedTypeName","pathNode":{"id":44918,"name":"ValidatorSet","nameLocations":["11035:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"11035:12:69"},"referencedDeclaration":50190,"src":"11035:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44922,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:69","nodeType":"VariableDeclaration","scope":45081,"src":"11062:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44921,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44924,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:69","nodeType":"VariableDeclaration","scope":45081,"src":"11083:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44923,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:69"},"returnParameters":{"id":44926,"nodeType":"ParameterList","parameters":[],"src":"11110:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45292,"nodeType":"FunctionDefinition","src":"13320:2014:69","nodes":[],"body":{"id":45291,"nodeType":"Block","src":"13418:1916:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":45095,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13464:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45092,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13432:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13432:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"13432:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45132,"nodeType":"IfStatement","src":"13428:421:69","trueBody":{"id":45131,"nodeType":"Block","src":"13476:373:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45097,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13494:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45115,"nodeType":"IfStatement","src":"13490:185:69","trueBody":{"id":45114,"nodeType":"Block","src":"13509:166:69","statements":[{"expression":{"arguments":[{"id":45105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13566:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45106,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13572:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13527:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13527:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"13527:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45108,"nodeType":"ExpressionStatement","src":"13527:55:69"},{"eventCall":{"arguments":[{"id":45110,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13626:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45109,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44349,"src":"13605:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45112,"nodeType":"EmitStatement","src":"13600:36:69"},{"functionReturnParameters":45091,"id":45113,"nodeType":"Return","src":"13654:7:69"}]}},{"expression":{"arguments":[{"id":45121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13729:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45122,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13735:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13688:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13688:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48759,"src":"13688:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45124,"nodeType":"ExpressionStatement","src":"13688:57:69"},{"eventCall":{"arguments":[{"id":45126,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13798:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45127,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13809:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45125,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13764:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45129,"nodeType":"EmitStatement","src":"13759:59:69"},{"functionReturnParameters":45091,"id":45130,"nodeType":"Return","src":"13832:7:69"}]}},{"condition":{"id":45138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:69","subExpression":{"arguments":[{"id":45136,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13919:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13888:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"13888:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"13888:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45143,"nodeType":"IfStatement","src":"13883:106:69","trueBody":{"id":45142,"nodeType":"Block","src":"13931:58:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45139,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"13952:24:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45141,"nodeType":"RevertStatement","src":"13945:33:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45144,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"14053:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45202,"nodeType":"IfStatement","src":"14049:508:69","trueBody":{"id":45201,"nodeType":"Block","src":"14068:489:69","statements":[{"expression":{"arguments":[{"id":45152,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14120:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45153,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14126:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45147,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14082:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14082:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":49307,"src":"14082:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45155,"nodeType":"ExpressionStatement","src":"14082:54:69"},{"eventCall":{"arguments":[{"id":45157,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45156,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"14155:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45159,"nodeType":"EmitStatement","src":"14150:35:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14204:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14204:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14204:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45199,"nodeType":"IfStatement","src":"14200:326:69","trueBody":{"id":45198,"nodeType":"Block","src":"14243:283:69","statements":[{"assignments":[45167,45169],"declarations":[{"constant":false,"id":45167,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:69","nodeType":"VariableDeclaration","scope":45198,"src":"14262:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45166,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45169,"mutability":"mutable","name":"power","nameLocation":"14292:5:69","nodeType":"VariableDeclaration","scope":45198,"src":"14284:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45168,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45175,"initialValue":{"arguments":[{"id":45173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14328:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45170,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14301:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14301:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14301:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:69"},{"expression":{"arguments":[{"id":45181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14378:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45176,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14351:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14351:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14351:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45183,"nodeType":"ExpressionStatement","src":"14351:32:69"},{"expression":{"arguments":[{"id":45189,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14430:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45190,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14436:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45184,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14401:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14401:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"14401:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45192,"nodeType":"ExpressionStatement","src":"14401:48:69"},{"eventCall":{"arguments":[{"id":45194,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14491:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45195,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45169,"src":"14505:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45193,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"14472:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45197,"nodeType":"EmitStatement","src":"14467:44:69"}]}},{"functionReturnParameters":45091,"id":45200,"nodeType":"Return","src":"14540:7:69"}]}},{"expression":{"arguments":[{"id":45208,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14607:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45209,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14613:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45203,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14567:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14567:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49377,"src":"14567:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45211,"nodeType":"ExpressionStatement","src":"14567:56:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45212,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14638:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14638:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14638:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45220,"nodeType":"IfStatement","src":"14634:74:69","trueBody":{"id":45219,"nodeType":"Block","src":"14677:31:69","statements":[{"functionReturnParameters":45091,"id":45218,"nodeType":"Return","src":"14691:7:69"}]}},{"assignments":[45222,45224],"declarations":[{"constant":false,"id":45222,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:69","nodeType":"VariableDeclaration","scope":45291,"src":"14719:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45221,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45224,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:69","nodeType":"VariableDeclaration","scope":45291,"src":"14741:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45223,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45230,"initialValue":{"arguments":[{"id":45228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14793:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14767:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14767:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"14767:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:69"},{"assignments":[45232,45234],"declarations":[{"constant":false,"id":45232,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:69","nodeType":"VariableDeclaration","scope":45291,"src":"14809:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45231,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45234,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:69","nodeType":"VariableDeclaration","scope":45291,"src":"14832:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45233,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45240,"initialValue":{"arguments":[{"id":45238,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14886:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45235,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14859:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14859:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14859:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45241,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45224,"src":"14905:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45242,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45234,"src":"14922:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45285,"nodeType":"IfStatement","src":"14901:358:69","trueBody":{"id":45284,"nodeType":"Block","src":"14939:320:69","statements":[{"expression":{"arguments":[{"id":45249,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14979:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45244,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14953:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14953:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"14953:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45251,"nodeType":"ExpressionStatement","src":"14953:31:69"},{"expression":{"arguments":[{"id":45257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15025:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14998:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14998:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14998:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45259,"nodeType":"ExpressionStatement","src":"14998:32:69"},{"expression":{"arguments":[{"id":45265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15073:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45266,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15079:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15044:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"15044:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"15044:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45268,"nodeType":"ExpressionStatement","src":"15044:49:69"},{"expression":{"arguments":[{"id":45274,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15137:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45275,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15143:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45269,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15107:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"15107:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"15107:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45277,"nodeType":"ExpressionStatement","src":"15107:49:69"},{"eventCall":{"arguments":[{"id":45279,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15200:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45280,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15214:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45278,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"15176:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45282,"nodeType":"EmitStatement","src":"15171:57:69"},{"functionReturnParameters":45091,"id":45283,"nodeType":"Return","src":"15242:7:69"}]}},{"eventCall":{"arguments":[{"id":45287,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"15307:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45288,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"15318:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45286,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"15274:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45290,"nodeType":"EmitStatement","src":"15269:58:69"}]},"documentation":{"id":45082,"nodeType":"StructuredDocumentation","src":"13223:92:69","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:69","parameters":{"id":45090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45085,"mutability":"mutable","name":"self","nameLocation":"13366:4:69","nodeType":"VariableDeclaration","scope":45292,"src":"13345:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":45084,"nodeType":"UserDefinedTypeName","pathNode":{"id":45083,"name":"ValidatorSet","nameLocations":["13345:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"13345:12:69"},"referencedDeclaration":50190,"src":"13345:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":45087,"mutability":"mutable","name":"validator","nameLocation":"13380:9:69","nodeType":"VariableDeclaration","scope":45292,"src":"13372:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45086,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45089,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:69","nodeType":"VariableDeclaration","scope":45292,"src":"13391:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45088,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:69"},"returnParameters":{"id":45091,"nodeType":"ParameterList","parameters":[],"src":"13418:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":44303,"nodeType":"StructuredDocumentation","src":"3860:40:69","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[45293],"name":"LibValidatorSet","nameLocation":"3908:15:69","scope":46441,"usedErrors":[]},{"id":46176,"nodeType":"ContractDefinition","src":"15338:10785:69","nodes":[{"id":45297,"nodeType":"UsingForDirective","src":"15363:53:69","nodes":[],"global":false,"libraryName":{"id":45294,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":44302,"src":"15369:22:69"},"typeName":{"id":45296,"nodeType":"UserDefinedTypeName","pathNode":{"id":45295,"name":"StakingReleaseQueue","nameLocations":["15396:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"15396:19:69"},"referencedDeclaration":50150,"src":"15396:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":45301,"nodeType":"UsingForDirective","src":"15421:47:69","nodes":[],"global":false,"libraryName":{"id":45298,"name":"LibStakingChangeLog","nameLocations":["15427:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"15427:19:69"},"typeName":{"id":45300,"nodeType":"UserDefinedTypeName","pathNode":{"id":45299,"name":"StakingChangeLog","nameLocations":["15451:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"15451:16:69"},"referencedDeclaration":50123,"src":"15451:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45305,"nodeType":"UsingForDirective","src":"15473:39:69","nodes":[],"global":false,"libraryName":{"id":45302,"name":"LibValidatorSet","nameLocations":["15479:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"15479:15:69"},"typeName":{"id":45304,"nodeType":"UserDefinedTypeName","pathNode":{"id":45303,"name":"ValidatorSet","nameLocations":["15499:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"15499:12:69"},"referencedDeclaration":50190,"src":"15499:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45309,"nodeType":"UsingForDirective","src":"15517:25:69","nodes":[],"global":false,"libraryName":{"id":45306,"name":"LibMaxPQ","nameLocations":["15523:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"15523:8:69"},"typeName":{"id":45308,"nodeType":"UserDefinedTypeName","pathNode":{"id":45307,"name":"MaxPQ","nameLocations":["15536:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"15536:5:69"},"referencedDeclaration":48411,"src":"15536:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":45313,"nodeType":"UsingForDirective","src":"15547:25:69","nodes":[],"global":false,"libraryName":{"id":45310,"name":"LibMinPQ","nameLocations":["15553:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"15553:8:69"},"typeName":{"id":45312,"nodeType":"UserDefinedTypeName","pathNode":{"id":45311,"name":"MinPQ","nameLocations":["15566:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"15566:5:69"},"referencedDeclaration":49029,"src":"15566:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":45316,"nodeType":"UsingForDirective","src":"15577:34:69","nodes":[],"global":false,"libraryName":{"id":45314,"name":"Address","nameLocations":["15583:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"15583:7:69"},"typeName":{"id":45315,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":45319,"nodeType":"VariableDeclaration","src":"15617:57:69","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:69","scope":46176,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45317,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":45318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":45323,"nodeType":"EventDefinition","src":"15681:50:69","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:69","parameters":{"id":45322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45321,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:69","nodeType":"VariableDeclaration","scope":45323,"src":"15716:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45320,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:69"}},{"id":45329,"nodeType":"EventDefinition","src":"15736:59:69","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:69","parameters":{"id":45328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:69","nodeType":"VariableDeclaration","scope":45329,"src":"15760:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45324,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45327,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:69","nodeType":"VariableDeclaration","scope":45329,"src":"15779:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45326,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:69"}},{"id":45350,"nodeType":"FunctionDefinition","src":"15846:221:69","nodes":[],"body":{"id":45349,"nodeType":"Block","src":"15934:133:69","nodes":[],"statements":[{"assignments":[45338],"declarations":[{"constant":false,"id":45338,"mutability":"mutable","name":"s","nameLocation":"15971:1:69","nodeType":"VariableDeclaration","scope":45349,"src":"15944:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45337,"nodeType":"UserDefinedTypeName","pathNode":{"id":45336,"name":"SubnetActorStorage","nameLocations":["15944:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"15944:18:69"},"referencedDeclaration":47281,"src":"15944:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45342,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45339,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"15975:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"15975:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:69"},{"expression":{"arguments":[{"id":45346,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45331,"src":"16050:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45343,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45338,"src":"16026:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16026:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:69","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"16026:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":45347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45335,"id":45348,"nodeType":"Return","src":"16019:41:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:69","parameters":{"id":45332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45331,"mutability":"mutable","name":"validator","nameLocation":"15881:9:69","nodeType":"VariableDeclaration","scope":45350,"src":"15873:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45330,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:69"},"returnParameters":{"id":45335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45334,"mutability":"mutable","name":"power","nameLocation":"15927:5:69","nodeType":"VariableDeclaration","scope":45350,"src":"15919:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45333,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45373,"nodeType":"FunctionDefinition","src":"16136:225:69","nodes":[],"body":{"id":45372,"nodeType":"Block","src":"16211:150:69","nodes":[],"statements":[{"assignments":[45360],"declarations":[{"constant":false,"id":45360,"mutability":"mutable","name":"s","nameLocation":"16248:1:69","nodeType":"VariableDeclaration","scope":45372,"src":"16221:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45359,"nodeType":"UserDefinedTypeName","pathNode":{"id":45358,"name":"SubnetActorStorage","nameLocations":["16221:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16221:18:69"},"referencedDeclaration":47281,"src":"16221:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45364,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45361,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16252:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16252:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:69"},{"expression":{"arguments":[{"id":45369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45353,"src":"16344:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45365,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45360,"src":"16303:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16303:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"16303:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"16303:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45357,"id":45371,"nodeType":"Return","src":"16296:58:69"}]},"documentation":{"id":45351,"nodeType":"StructuredDocumentation","src":"16073:58:69","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:69","parameters":{"id":45354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45353,"mutability":"mutable","name":"validator","nameLocation":"16171:9:69","nodeType":"VariableDeclaration","scope":45373,"src":"16163:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45352,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:69"},"returnParameters":{"id":45357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45373,"src":"16205:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45355,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45396,"nodeType":"FunctionDefinition","src":"16430:227:69","nodes":[],"body":{"id":45395,"nodeType":"Block","src":"16506:151:69","nodes":[],"statements":[{"assignments":[45383],"declarations":[{"constant":false,"id":45383,"mutability":"mutable","name":"s","nameLocation":"16543:1:69","nodeType":"VariableDeclaration","scope":45395,"src":"16516:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45382,"nodeType":"UserDefinedTypeName","pathNode":{"id":45381,"name":"SubnetActorStorage","nameLocations":["16516:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16516:18:69"},"referencedDeclaration":47281,"src":"16516:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45387,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45384,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16547:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16547:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:69"},{"expression":{"arguments":[{"id":45392,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45376,"src":"16640:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45388,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45383,"src":"16598:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16598:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"16598:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"16598:41:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45380,"id":45394,"nodeType":"Return","src":"16591:59:69"}]},"documentation":{"id":45374,"nodeType":"StructuredDocumentation","src":"16367:58:69","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:69","parameters":{"id":45377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45376,"mutability":"mutable","name":"validator","nameLocation":"16466:9:69","nodeType":"VariableDeclaration","scope":45396,"src":"16458:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45375,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:69"},"returnParameters":{"id":45380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45396,"src":"16500:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45378,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45409,"nodeType":"FunctionDefinition","src":"16912:103:69","nodes":[],"body":{"id":45408,"nodeType":"Block","src":"16976:39:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":45405,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45399,"src":"17003:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45404,"name":"hasStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45434,"src":"16993:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16993:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45403,"id":45407,"nodeType":"Return","src":"16986:22:69"}]},"documentation":{"id":45397,"nodeType":"StructuredDocumentation","src":"16663:244:69","text":"@notice Checks if the provided address is a validator (active or waiting) based on its total collateral.\n @param addr The address to check for validator status.\n @return A boolean indicating whether the address is a validator."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"16921:11:69","parameters":{"id":45400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45399,"mutability":"mutable","name":"addr","nameLocation":"16941:4:69","nodeType":"VariableDeclaration","scope":45409,"src":"16933:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45398,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16932:14:69"},"returnParameters":{"id":45403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45409,"src":"16970:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45401,"name":"bool","nodeType":"ElementaryTypeName","src":"16970:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16969:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45434,"nodeType":"FunctionDefinition","src":"17217:280:69","nodes":[],"body":{"id":45433,"nodeType":"Block","src":"17284:213:69","nodes":[],"statements":[{"assignments":[45419],"declarations":[{"constant":false,"id":45419,"mutability":"mutable","name":"s","nameLocation":"17321:1:69","nodeType":"VariableDeclaration","scope":45433,"src":"17294:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45418,"nodeType":"UserDefinedTypeName","pathNode":{"id":45417,"name":"SubnetActorStorage","nameLocations":["17294:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17294:18:69"},"referencedDeclaration":47281,"src":"17294:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45423,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45420,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17325:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17347:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17325:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17325:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17294:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45424,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45419,"src":"17433:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17435:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17433:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"17433:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45428,"indexExpression":{"id":45427,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45412,"src":"17459:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17433:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17470:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"17433:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17433:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45416,"id":45432,"nodeType":"Return","src":"17426:64:69"}]},"documentation":{"id":45410,"nodeType":"StructuredDocumentation","src":"17021:191:69","text":"@notice Checks if the validator has staked before.\n @param validator The address to check for staking status.\n @return A boolean indicating whether the validator has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"17226:9:69","parameters":{"id":45413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45412,"mutability":"mutable","name":"validator","nameLocation":"17244:9:69","nodeType":"VariableDeclaration","scope":45434,"src":"17236:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45411,"name":"address","nodeType":"ElementaryTypeName","src":"17236:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17235:19:69"},"returnParameters":{"id":45416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45434,"src":"17278:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45414,"name":"bool","nodeType":"ElementaryTypeName","src":"17278:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17277:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45452,"nodeType":"FunctionDefinition","src":"17503:201:69","nodes":[],"body":{"id":45451,"nodeType":"Block","src":"17567:137:69","nodes":[],"statements":[{"assignments":[45441],"declarations":[{"constant":false,"id":45441,"mutability":"mutable","name":"s","nameLocation":"17604:1:69","nodeType":"VariableDeclaration","scope":45451,"src":"17577:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45440,"nodeType":"UserDefinedTypeName","pathNode":{"id":45439,"name":"SubnetActorStorage","nameLocations":["17577:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17577:18:69"},"referencedDeclaration":47281,"src":"17577:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45445,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45442,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17608:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17630:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17608:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17577:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45446,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45441,"src":"17659:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17659:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17674:21:69","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44417,"src":"17659:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":45449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17659:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45438,"id":45450,"nodeType":"Return","src":"17652:45:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17512:21:69","parameters":{"id":45435,"nodeType":"ParameterList","parameters":[],"src":"17533:2:69"},"returnParameters":{"id":45438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45452,"src":"17559:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45436,"name":"uint16","nodeType":"ElementaryTypeName","src":"17559:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17558:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45478,"nodeType":"FunctionDefinition","src":"17792:243:69","nodes":[],"body":{"id":45477,"nodeType":"Block","src":"17850:185:69","nodes":[],"statements":[{"assignments":[45460],"declarations":[{"constant":false,"id":45460,"mutability":"mutable","name":"s","nameLocation":"17887:1:69","nodeType":"VariableDeclaration","scope":45477,"src":"17860:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45459,"nodeType":"UserDefinedTypeName","pathNode":{"id":45458,"name":"SubnetActorStorage","nameLocations":["17860:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17860:18:69"},"referencedDeclaration":47281,"src":"17860:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45464,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45461,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17891:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17891:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17860:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45465,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17942:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17944:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17942:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17957:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"17942:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"17942:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17942:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45470,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17987:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17989:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18002:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"17987:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18019:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"17987:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":45474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17987:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17942:86:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45457,"id":45476,"nodeType":"Return","src":"17935:93:69"}]},"documentation":{"id":45453,"nodeType":"StructuredDocumentation","src":"17710:77:69","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17801:15:69","parameters":{"id":45454,"nodeType":"ParameterList","parameters":[],"src":"17816:2:69"},"returnParameters":{"id":45457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45478,"src":"17842:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45455,"name":"uint16","nodeType":"ElementaryTypeName","src":"17842:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17841:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45496,"nodeType":"FunctionDefinition","src":"18041:214:69","nodes":[],"body":{"id":45495,"nodeType":"Block","src":"18112:143:69","nodes":[],"statements":[{"assignments":[45485],"declarations":[{"constant":false,"id":45485,"mutability":"mutable","name":"s","nameLocation":"18149:1:69","nodeType":"VariableDeclaration","scope":45495,"src":"18122:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45484,"nodeType":"UserDefinedTypeName","pathNode":{"id":45483,"name":"SubnetActorStorage","nameLocations":["18122:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18122:18:69"},"referencedDeclaration":47281,"src":"18122:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45489,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45486,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18153:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18153:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18153:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18122:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45490,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45485,"src":"18204:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18204:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18204:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18204:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45482,"id":45494,"nodeType":"Return","src":"18197:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"18050:27:69","parameters":{"id":45479,"nodeType":"ParameterList","parameters":[],"src":"18077:2:69"},"returnParameters":{"id":45482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45496,"src":"18103:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45480,"name":"uint256","nodeType":"ElementaryTypeName","src":"18103:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18102:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45514,"nodeType":"FunctionDefinition","src":"18261:205:69","nodes":[],"body":{"id":45513,"nodeType":"Block","src":"18323:143:69","nodes":[],"statements":[{"assignments":[45503],"declarations":[{"constant":false,"id":45503,"mutability":"mutable","name":"s","nameLocation":"18360:1:69","nodeType":"VariableDeclaration","scope":45513,"src":"18333:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45502,"nodeType":"UserDefinedTypeName","pathNode":{"id":45501,"name":"SubnetActorStorage","nameLocations":["18333:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18333:18:69"},"referencedDeclaration":47281,"src":"18333:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45507,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45504,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18364:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18386:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18364:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18364:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18333:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45508,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45503,"src":"18415:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18417:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18415:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18430:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18415:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45500,"id":45512,"nodeType":"Return","src":"18408:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"18270:18:69","parameters":{"id":45497,"nodeType":"ParameterList","parameters":[],"src":"18288:2:69"},"returnParameters":{"id":45500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45514,"src":"18314:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45498,"name":"uint256","nodeType":"ElementaryTypeName","src":"18314:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18313:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45537,"nodeType":"FunctionDefinition","src":"18541:236:69","nodes":[],"body":{"id":45536,"nodeType":"Block","src":"18626:151:69","nodes":[],"statements":[{"assignments":[45524],"declarations":[{"constant":false,"id":45524,"mutability":"mutable","name":"s","nameLocation":"18663:1:69","nodeType":"VariableDeclaration","scope":45536,"src":"18636:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45523,"nodeType":"UserDefinedTypeName","pathNode":{"id":45522,"name":"SubnetActorStorage","nameLocations":["18636:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18636:18:69"},"referencedDeclaration":47281,"src":"18636:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45528,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45525,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18667:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18667:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18667:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18636:65:69"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45529,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45524,"src":"18718:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18720:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18718:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18733:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"18718:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45533,"indexExpression":{"id":45532,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45517,"src":"18744:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18718:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18755:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"18718:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45521,"id":45535,"nodeType":"Return","src":"18711:59:69"}]},"documentation":{"id":45515,"nodeType":"StructuredDocumentation","src":"18472:64:69","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18550:24:69","parameters":{"id":45518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45517,"mutability":"mutable","name":"validator","nameLocation":"18583:9:69","nodeType":"VariableDeclaration","scope":45537,"src":"18575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45516,"name":"address","nodeType":"ElementaryTypeName","src":"18575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18574:19:69"},"returnParameters":{"id":45521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45537,"src":"18617:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45519,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18616:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45562,"nodeType":"FunctionDefinition","src":"18937:227:69","nodes":[],"body":{"id":45561,"nodeType":"Block","src":"19018:146:69","nodes":[],"statements":[{"assignments":[45547],"declarations":[{"constant":false,"id":45547,"mutability":"mutable","name":"s","nameLocation":"19055:1:69","nodeType":"VariableDeclaration","scope":45561,"src":"19028:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45546,"nodeType":"UserDefinedTypeName","pathNode":{"id":45545,"name":"SubnetActorStorage","nameLocations":["19028:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19028:18:69"},"referencedDeclaration":47281,"src":"19028:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45551,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45548,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19059:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19081:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19059:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19059:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19028:65:69"},{"expression":{"arguments":[{"id":45557,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45540,"src":"19140:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45558,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45542,"src":"19151:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45552,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45547,"src":"19103:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19105:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19103:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19118:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"19103:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45560,"nodeType":"ExpressionStatement","src":"19103:54:69"}]},"documentation":{"id":45538,"nodeType":"StructuredDocumentation","src":"18849:83:69","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18946:28:69","parameters":{"id":45543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45540,"mutability":"mutable","name":"validator","nameLocation":"18983:9:69","nodeType":"VariableDeclaration","scope":45562,"src":"18975:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45539,"name":"address","nodeType":"ElementaryTypeName","src":"18975:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45542,"mutability":"mutable","name":"power","nameLocation":"19002:5:69","nodeType":"VariableDeclaration","scope":45562,"src":"18994:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45541,"name":"uint256","nodeType":"ElementaryTypeName","src":"18994:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18974:34:69"},"returnParameters":{"id":45544,"nodeType":"ParameterList","parameters":[],"src":"19018:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45587,"nodeType":"FunctionDefinition","src":"19251:224:69","nodes":[],"body":{"id":45586,"nodeType":"Block","src":"19336:139:69","nodes":[],"statements":[{"assignments":[45572],"declarations":[{"constant":false,"id":45572,"mutability":"mutable","name":"s","nameLocation":"19373:1:69","nodeType":"VariableDeclaration","scope":45586,"src":"19346:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45571,"nodeType":"UserDefinedTypeName","pathNode":{"id":45570,"name":"SubnetActorStorage","nameLocations":["19346:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19346:18:69"},"referencedDeclaration":47281,"src":"19346:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45576,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45573,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19377:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19399:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19377:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19377:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19346:65:69"},{"expression":{"arguments":[{"id":45582,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45565,"src":"19448:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45583,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"19459:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45577,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45572,"src":"19421:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19423:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19421:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19436:11:69","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":44693,"src":"19421:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":45584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19421:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45585,"nodeType":"ExpressionStatement","src":"19421:47:69"}]},"documentation":{"id":45563,"nodeType":"StructuredDocumentation","src":"19170:76:69","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"19260:22:69","parameters":{"id":45568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45565,"mutability":"mutable","name":"validator","nameLocation":"19291:9:69","nodeType":"VariableDeclaration","scope":45587,"src":"19283:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45564,"name":"address","nodeType":"ElementaryTypeName","src":"19283:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45567,"mutability":"mutable","name":"metadata","nameLocation":"19317:8:69","nodeType":"VariableDeclaration","scope":45587,"src":"19302:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45566,"name":"bytes","nodeType":"ElementaryTypeName","src":"19302:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19282:44:69"},"returnParameters":{"id":45569,"nodeType":"ParameterList","parameters":[],"src":"19336:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45696,"nodeType":"FunctionDefinition","src":"19573:1335:69","nodes":[],"body":{"id":45695,"nodeType":"Block","src":"19645:1263:69","nodes":[],"statements":[{"assignments":[45597],"declarations":[{"constant":false,"id":45597,"mutability":"mutable","name":"s","nameLocation":"19682:1:69","nodeType":"VariableDeclaration","scope":45695,"src":"19655:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45596,"nodeType":"UserDefinedTypeName","pathNode":{"id":45595,"name":"SubnetActorStorage","nameLocations":["19655:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19655:18:69"},"referencedDeclaration":47281,"src":"19655:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45601,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45598,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19686:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19708:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19686:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19686:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19655:65:69"},{"expression":{"arguments":[{"id":45607,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19820:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45608,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45602,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19791:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19791:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"19791:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45610,"nodeType":"ExpressionStatement","src":"19791:47:69"},{"expression":{"arguments":[{"id":45616,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19943:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45617,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19954:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45611,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19915:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19913:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19928:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"19913:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19913:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45619,"nodeType":"ExpressionStatement","src":"19913:48:69"},{"condition":{"id":45622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19976:15:69","subExpression":{"expression":{"id":45620,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19977:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:12:69","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"19977:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45694,"nodeType":"IfStatement","src":"19972:930:69","trueBody":{"id":45693,"nodeType":"Block","src":"19993:909:69","statements":[{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"alreadyValidator","nameLocation":"20118:16:69","nodeType":"VariableDeclaration","scope":45693,"src":"20113:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45623,"name":"bool","nodeType":"ElementaryTypeName","src":"20113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45625,"nodeType":"VariableDeclarationStatement","src":"20113:21:69"},{"assignments":[45627],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"length","nameLocation":"20156:6:69","nodeType":"VariableDeclaration","scope":45693,"src":"20148:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45626,"name":"uint256","nodeType":"ElementaryTypeName","src":"20148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45631,"initialValue":{"expression":{"expression":{"id":45628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20165:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20167:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20165:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20185:6:69","memberName":"length","nodeType":"MemberAccess","src":"20165:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20148:43:69"},{"body":{"id":45656,"nodeType":"Block","src":"20235:240:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":45638,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20257:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20259:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20257:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45641,"indexExpression":{"id":45640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20277:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20257:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage","typeString":"struct Validator storage ref"}},"id":45642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:4:69","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":50208,"src":"20257:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":45643,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20288:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20257:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45651,"nodeType":"IfStatement","src":"20253:137:69","trueBody":{"id":45650,"nodeType":"Block","src":"20299:91:69","statements":[{"expression":{"id":45647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45645,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20321:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20340:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20321:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45648,"nodeType":"ExpressionStatement","src":"20321:23:69"},{"id":45649,"nodeType":"Break","src":"20366:5:69"}]}},{"id":45655,"nodeType":"UncheckedBlock","src":"20407:54:69","statements":[{"expression":{"id":45653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20439:3:69","subExpression":{"id":45652,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20441:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45654,"nodeType":"ExpressionStatement","src":"20439:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45635,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20221:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45636,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45627,"src":"20225:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20221:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45657,"initializationExpression":{"assignments":[45633],"declarations":[{"constant":false,"id":45633,"mutability":"mutable","name":"i","nameLocation":"20218:1:69","nodeType":"VariableDeclaration","scope":45657,"src":"20210:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45632,"name":"uint256","nodeType":"ElementaryTypeName","src":"20210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45634,"nodeType":"VariableDeclarationStatement","src":"20210:9:69"},"nodeType":"ForStatement","src":"20205:270:69"},{"condition":{"id":45659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20492:17:69","subExpression":{"id":45658,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20493:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45692,"nodeType":"IfStatement","src":"20488:404:69","trueBody":{"id":45691,"nodeType":"Block","src":"20511:381:69","statements":[{"assignments":[45661],"declarations":[{"constant":false,"id":45661,"mutability":"mutable","name":"collateral","nameLocation":"20537:10:69","nodeType":"VariableDeclaration","scope":45691,"src":"20529:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45660,"name":"uint256","nodeType":"ElementaryTypeName","src":"20529:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45668,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":45662,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20550:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20550:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20565:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20550:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45666,"indexExpression":{"id":45665,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20576:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20550:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20587:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"20550:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20529:77:69"},{"assignments":[45671],"declarations":[{"constant":false,"id":45671,"mutability":"mutable","name":"val","nameLocation":"20641:3:69","nodeType":"VariableDeclaration","scope":45691,"src":"20624:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator"},"typeName":{"id":45670,"nodeType":"UserDefinedTypeName","pathNode":{"id":45669,"name":"Validator","nameLocations":["20624:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"20624:9:69"},"referencedDeclaration":50211,"src":"20624:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":45682,"initialValue":{"arguments":[{"id":45673,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20685:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45674,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45661,"src":"20724:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":45675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20766:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20768:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20766:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20766:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45679,"indexExpression":{"id":45678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20792:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20766:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20803:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"20766:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":45672,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"20647:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50211_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":45681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20679:4:69","20716:6:69","20756:8:69"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20647:183:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20624:206:69"},{"expression":{"arguments":[{"id":45688,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45671,"src":"20873:3:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":45683,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20848:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20848:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20868:4:69","memberName":"push","nodeType":"MemberAccess","src":"20848:24:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50211_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":45689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20848:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45690,"nodeType":"ExpressionStatement","src":"20848:29:69"}]}}]}}]},"documentation":{"id":45588,"nodeType":"StructuredDocumentation","src":"19481:87:69","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19582:18:69","parameters":{"id":45593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45590,"mutability":"mutable","name":"validator","nameLocation":"19609:9:69","nodeType":"VariableDeclaration","scope":45696,"src":"19601:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45589,"name":"address","nodeType":"ElementaryTypeName","src":"19601:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45592,"mutability":"mutable","name":"amount","nameLocation":"19628:6:69","nodeType":"VariableDeclaration","scope":45696,"src":"19620:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45591,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19600:35:69"},"returnParameters":{"id":45594,"nodeType":"ParameterList","parameters":[],"src":"19645:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45738,"nodeType":"FunctionDefinition","src":"21098:504:69","nodes":[],"body":{"id":45737,"nodeType":"Block","src":"21171:431:69","nodes":[],"statements":[{"assignments":[45706],"declarations":[{"constant":false,"id":45706,"mutability":"mutable","name":"s","nameLocation":"21208:1:69","nodeType":"VariableDeclaration","scope":45737,"src":"21181:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45705,"nodeType":"UserDefinedTypeName","pathNode":{"id":45704,"name":"SubnetActorStorage","nameLocations":["21181:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21181:18:69"},"referencedDeclaration":47281,"src":"21181:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45710,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45707,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21212:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21234:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21212:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21212:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21181:65:69"},{"expression":{"arguments":[{"id":45716,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21347:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45717,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21358:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45711,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21317:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21319:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21317:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"21317:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21317:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45719,"nodeType":"ExpressionStatement","src":"21317:48:69"},{"expression":{"arguments":[{"id":45725,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21471:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21482:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45720,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21440:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21442:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21440:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21455:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"21440:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21440:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45728,"nodeType":"ExpressionStatement","src":"21440:49:69"},{"expression":{"arguments":[{"id":45734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21588:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45731,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21567:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21559:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45729,"name":"address","nodeType":"ElementaryTypeName","src":"21559:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21578:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"21559:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45736,"nodeType":"ExpressionStatement","src":"21559:36:69"}]},"documentation":{"id":45697,"nodeType":"StructuredDocumentation","src":"20914:179:69","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"21107:19:69","parameters":{"id":45702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45699,"mutability":"mutable","name":"validator","nameLocation":"21135:9:69","nodeType":"VariableDeclaration","scope":45738,"src":"21127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45698,"name":"address","nodeType":"ElementaryTypeName","src":"21127:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45701,"mutability":"mutable","name":"amount","nameLocation":"21154:6:69","nodeType":"VariableDeclaration","scope":45738,"src":"21146:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45700,"name":"uint256","nodeType":"ElementaryTypeName","src":"21146:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21126:35:69"},"returnParameters":{"id":45703,"nodeType":"ParameterList","parameters":[],"src":"21171:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45766,"nodeType":"FunctionDefinition","src":"21732:280:69","nodes":[],"body":{"id":45765,"nodeType":"Block","src":"21828:184:69","nodes":[],"statements":[{"assignments":[45750],"declarations":[{"constant":false,"id":45750,"mutability":"mutable","name":"s","nameLocation":"21865:1:69","nodeType":"VariableDeclaration","scope":45765,"src":"21838:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45749,"nodeType":"UserDefinedTypeName","pathNode":{"id":45748,"name":"SubnetActorStorage","nameLocations":["21838:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21838:18:69"},"referencedDeclaration":47281,"src":"21838:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45754,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45751,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21869:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21891:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21869:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21838:65:69"},{"expression":{"arguments":[{"id":45760,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45741,"src":"21959:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45761,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45743,"src":"21980:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45762,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45745,"src":"21997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45755,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45750,"src":"21913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21915:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"21913:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21925:21:69","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":46528,"src":"21913:33:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21948:9:69","21970:8:69","21990:5:69"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21913:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45764,"nodeType":"ExpressionStatement","src":"21913:92:69"}]},"documentation":{"id":45739,"nodeType":"StructuredDocumentation","src":"21675:52:69","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21741:17:69","parameters":{"id":45746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45741,"mutability":"mutable","name":"validator","nameLocation":"21767:9:69","nodeType":"VariableDeclaration","scope":45766,"src":"21759:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45740,"name":"address","nodeType":"ElementaryTypeName","src":"21759:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45743,"mutability":"mutable","name":"metadata","nameLocation":"21793:8:69","nodeType":"VariableDeclaration","scope":45766,"src":"21778:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45742,"name":"bytes","nodeType":"ElementaryTypeName","src":"21778:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45745,"mutability":"mutable","name":"amount","nameLocation":"21811:6:69","nodeType":"VariableDeclaration","scope":45766,"src":"21803:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45744,"name":"uint256","nodeType":"ElementaryTypeName","src":"21803:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21758:60:69"},"returnParameters":{"id":45747,"nodeType":"ParameterList","parameters":[],"src":"21828:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45791,"nodeType":"FunctionDefinition","src":"22061:223:69","nodes":[],"body":{"id":45790,"nodeType":"Block","src":"22144:140:69","nodes":[],"statements":[{"assignments":[45776],"declarations":[{"constant":false,"id":45776,"mutability":"mutable","name":"s","nameLocation":"22181:1:69","nodeType":"VariableDeclaration","scope":45790,"src":"22154:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45775,"nodeType":"UserDefinedTypeName","pathNode":{"id":45774,"name":"SubnetActorStorage","nameLocations":["22154:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22154:18:69"},"referencedDeclaration":47281,"src":"22154:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45780,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45777,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22185:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22185:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22185:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22154:65:69"},{"expression":{"arguments":[{"id":45786,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45769,"src":"22257:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45787,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45771,"src":"22268:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45781,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"22229:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22229:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22241:15:69","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":46488,"src":"22229:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45789,"nodeType":"ExpressionStatement","src":"22229:48:69"}]},"documentation":{"id":45767,"nodeType":"StructuredDocumentation","src":"22018:38:69","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"22070:20:69","parameters":{"id":45772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45769,"mutability":"mutable","name":"validator","nameLocation":"22099:9:69","nodeType":"VariableDeclaration","scope":45791,"src":"22091:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45768,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45771,"mutability":"mutable","name":"metadata","nameLocation":"22125:8:69","nodeType":"VariableDeclaration","scope":45791,"src":"22110:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45770,"name":"bytes","nodeType":"ElementaryTypeName","src":"22110:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22090:44:69"},"returnParameters":{"id":45773,"nodeType":"ParameterList","parameters":[],"src":"22144:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45825,"nodeType":"FunctionDefinition","src":"22329:256:69","nodes":[],"body":{"id":45824,"nodeType":"Block","src":"22390:195:69","nodes":[],"statements":[{"assignments":[45801],"declarations":[{"constant":false,"id":45801,"mutability":"mutable","name":"s","nameLocation":"22427:1:69","nodeType":"VariableDeclaration","scope":45824,"src":"22400:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45800,"nodeType":"UserDefinedTypeName","pathNode":{"id":45799,"name":"SubnetActorStorage","nameLocations":["22400:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22400:18:69"},"referencedDeclaration":47281,"src":"22400:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45802,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22431:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22453:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22431:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22431:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22400:65:69"},{"expression":{"arguments":[{"id":45811,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22503:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45812,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22514:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45806,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22476:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22478:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22476:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22488:14:69","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":46602,"src":"22476:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22476:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45814,"nodeType":"ExpressionStatement","src":"22476:45:69"},{"expression":{"arguments":[{"id":45820,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22560:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45821,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22571:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45815,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22531:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22533:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22531:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22546:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"22531:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22531:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45823,"nodeType":"ExpressionStatement","src":"22531:47:69"}]},"documentation":{"id":45792,"nodeType":"StructuredDocumentation","src":"22290:34:69","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"22338:7:69","parameters":{"id":45797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45794,"mutability":"mutable","name":"validator","nameLocation":"22354:9:69","nodeType":"VariableDeclaration","scope":45825,"src":"22346:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45793,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45796,"mutability":"mutable","name":"amount","nameLocation":"22373:6:69","nodeType":"VariableDeclaration","scope":45825,"src":"22365:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45795,"name":"uint256","nodeType":"ElementaryTypeName","src":"22365:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22345:35:69"},"returnParameters":{"id":45798,"nodeType":"ParameterList","parameters":[],"src":"22390:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45859,"nodeType":"FunctionDefinition","src":"22631:259:69","nodes":[],"body":{"id":45858,"nodeType":"Block","src":"22693:197:69","nodes":[],"statements":[{"assignments":[45835],"declarations":[{"constant":false,"id":45835,"mutability":"mutable","name":"s","nameLocation":"22730:1:69","nodeType":"VariableDeclaration","scope":45858,"src":"22703:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45834,"nodeType":"UserDefinedTypeName","pathNode":{"id":45833,"name":"SubnetActorStorage","nameLocations":["22703:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22703:18:69"},"referencedDeclaration":47281,"src":"22703:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45836,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22734:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22756:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22734:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22703:65:69"},{"expression":{"arguments":[{"id":45845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22807:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45846,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45840,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22779:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22781:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22779:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22791:15:69","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":46565,"src":"22779:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22779:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45848,"nodeType":"ExpressionStatement","src":"22779:46:69"},{"expression":{"arguments":[{"id":45854,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22865:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45855,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22876:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45849,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22835:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22837:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22835:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22850:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"22835:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45857,"nodeType":"ExpressionStatement","src":"22835:48:69"}]},"documentation":{"id":45826,"nodeType":"StructuredDocumentation","src":"22591:35:69","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22640:8:69","parameters":{"id":45831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45828,"mutability":"mutable","name":"validator","nameLocation":"22657:9:69","nodeType":"VariableDeclaration","scope":45859,"src":"22649:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45827,"name":"address","nodeType":"ElementaryTypeName","src":"22649:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45830,"mutability":"mutable","name":"amount","nameLocation":"22676:6:69","nodeType":"VariableDeclaration","scope":45859,"src":"22668:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45829,"name":"uint256","nodeType":"ElementaryTypeName","src":"22668:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22648:35:69"},"returnParameters":{"id":45832,"nodeType":"ParameterList","parameters":[],"src":"22693:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45886,"nodeType":"FunctionDefinition","src":"22999:244:69","nodes":[],"body":{"id":45885,"nodeType":"Block","src":"23052:191:69","nodes":[],"statements":[{"assignments":[45867],"declarations":[{"constant":false,"id":45867,"mutability":"mutable","name":"s","nameLocation":"23089:1:69","nodeType":"VariableDeclaration","scope":45885,"src":"23062:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45866,"nodeType":"UserDefinedTypeName","pathNode":{"id":45865,"name":"SubnetActorStorage","nameLocations":["23062:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23062:18:69"},"referencedDeclaration":47281,"src":"23062:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45871,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45868,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23093:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23093:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23093:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23062:65:69"},{"assignments":[45873],"declarations":[{"constant":false,"id":45873,"mutability":"mutable","name":"amount","nameLocation":"23145:6:69","nodeType":"VariableDeclaration","scope":45885,"src":"23137:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45872,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45879,"initialValue":{"arguments":[{"id":45877,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45874,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45867,"src":"23154:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23156:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"23154:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23169:5:69","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":44301,"src":"23154:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23154:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23137:48:69"},{"eventCall":{"arguments":[{"id":45881,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45882,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45873,"src":"23229:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45880,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45329,"src":"23200:17:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45884,"nodeType":"EmitStatement","src":"23195:41:69"}]},"documentation":{"id":45860,"nodeType":"StructuredDocumentation","src":"22953:41:69","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"23008:15:69","parameters":{"id":45863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45862,"mutability":"mutable","name":"validator","nameLocation":"23032:9:69","nodeType":"VariableDeclaration","scope":45886,"src":"23024:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45861,"name":"address","nodeType":"ElementaryTypeName","src":"23024:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23023:19:69"},"returnParameters":{"id":45864,"nodeType":"ParameterList","parameters":[],"src":"23052:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45942,"nodeType":"FunctionDefinition","src":"23357:439:69","nodes":[],"body":{"id":45941,"nodeType":"Block","src":"23414:382:69","nodes":[],"statements":[{"assignments":[45894],"declarations":[{"constant":false,"id":45894,"mutability":"mutable","name":"s","nameLocation":"23451:1:69","nodeType":"VariableDeclaration","scope":45941,"src":"23424:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45893,"nodeType":"UserDefinedTypeName","pathNode":{"id":45892,"name":"SubnetActorStorage","nameLocations":["23424:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23424:18:69"},"referencedDeclaration":47281,"src":"23424:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45898,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45895,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23455:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23477:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23455:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23455:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23424:65:69"},{"assignments":[45900],"declarations":[{"constant":false,"id":45900,"mutability":"mutable","name":"amount","nameLocation":"23507:6:69","nodeType":"VariableDeclaration","scope":45941,"src":"23499:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45899,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45906,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45901,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23516:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23518:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23516:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23533:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23516:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45905,"indexExpression":{"id":45904,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23541:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23499:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45907,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23574:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23564:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45914,"nodeType":"IfStatement","src":"23560:69:69","trueBody":{"id":45913,"nodeType":"Block","src":"23577:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45910,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"23598:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23598:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45912,"nodeType":"RevertStatement","src":"23591:27:69"}]}},{"expression":{"id":45923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45915,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23639:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23641:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23639:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23656:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23639:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45921,"indexExpression":{"id":45918,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23664:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23639:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23675:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23639:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45924,"nodeType":"ExpressionStatement","src":"23639:37:69"},{"expression":{"arguments":[{"id":45930,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23737:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23695:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"23695:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45925,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"23686:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23713:23:69","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":40275,"src":"23686:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45932,"nodeType":"ExpressionStatement","src":"23686:58:69"},{"expression":{"arguments":[{"id":45938,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23782:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45935,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23763:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23755:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45933,"name":"address","nodeType":"ElementaryTypeName","src":"23755:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23772:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"23755:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45940,"nodeType":"ExpressionStatement","src":"23755:34:69"}]},"documentation":{"id":45887,"nodeType":"StructuredDocumentation","src":"23249:103:69","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"23366:21:69","parameters":{"id":45890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45889,"mutability":"mutable","name":"relayer","nameLocation":"23396:7:69","nodeType":"VariableDeclaration","scope":45942,"src":"23388:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45888,"name":"address","nodeType":"ElementaryTypeName","src":"23388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23387:17:69"},"returnParameters":{"id":45891,"nodeType":"ParameterList","parameters":[],"src":"23414:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45965,"nodeType":"FunctionDefinition","src":"23802:247:69","nodes":[],"body":{"id":45964,"nodeType":"Block","src":"23875:174:69","nodes":[],"statements":[{"assignments":[45951],"declarations":[{"constant":false,"id":45951,"mutability":"mutable","name":"s","nameLocation":"23912:1:69","nodeType":"VariableDeclaration","scope":45964,"src":"23885:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45950,"nodeType":"UserDefinedTypeName","pathNode":{"id":45949,"name":"SubnetActorStorage","nameLocations":["23885:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23885:18:69"},"referencedDeclaration":47281,"src":"23885:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45955,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45952,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23916:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23938:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23916:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23885:65:69"},{"expression":{"components":[{"expression":{"expression":{"id":45956,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"23968:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23970:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"23968:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23980:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"23968:35:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45959,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"24005:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24007:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24005:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24005:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45962,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23967:75:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45948,"id":45963,"nodeType":"Return","src":"23960:82:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23811:23:69","parameters":{"id":45943,"nodeType":"ParameterList","parameters":[],"src":"23834:2:69"},"returnParameters":{"id":45948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23859:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45944,"name":"uint64","nodeType":"ElementaryTypeName","src":"23859:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23867:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45946,"name":"uint64","nodeType":"ElementaryTypeName","src":"23867:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23858:16:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46175,"nodeType":"FunctionDefinition","src":"24177:1944:69","nodes":[],"body":{"id":46174,"nodeType":"Block","src":"24237:1884:69","nodes":[],"statements":[{"assignments":[45973],"declarations":[{"constant":false,"id":45973,"mutability":"mutable","name":"s","nameLocation":"24274:1:69","nodeType":"VariableDeclaration","scope":46174,"src":"24247:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45972,"nodeType":"UserDefinedTypeName","pathNode":{"id":45971,"name":"SubnetActorStorage","nameLocations":["24247:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"24247:18:69"},"referencedDeclaration":47281,"src":"24247:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45977,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45974,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"24278:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"24278:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24278:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24247:65:69"},{"assignments":[45980],"declarations":[{"constant":false,"id":45980,"mutability":"mutable","name":"changeSet","nameLocation":"24347:9:69","nodeType":"VariableDeclaration","scope":46174,"src":"24322:34:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45979,"nodeType":"UserDefinedTypeName","pathNode":{"id":45978,"name":"StakingChangeLog","nameLocations":["24322:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"24322:16:69"},"referencedDeclaration":50123,"src":"24322:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45983,"initialValue":{"expression":{"id":45981,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24359:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24361:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24359:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24322:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45984,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24385:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45985,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24408:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"24408:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24385:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45992,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24513:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45993,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24535:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24545:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24535:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24513:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45998,"nodeType":"IfStatement","src":"24509:93:69","trueBody":{"id":45997,"nodeType":"Block","src":"24571:31:69","statements":[{"functionReturnParameters":45970,"id":45996,"nodeType":"Return","src":"24585:7:69"}]}},"id":45999,"nodeType":"IfStatement","src":"24381:221:69","trueBody":{"id":45991,"nodeType":"Block","src":"24443:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45988,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"24464:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24464:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45990,"nodeType":"RevertStatement","src":"24457:35:69"}]}},{"assignments":[46001],"declarations":[{"constant":false,"id":46001,"mutability":"mutable","name":"start","nameLocation":"24619:5:69","nodeType":"VariableDeclaration","scope":46174,"src":"24612:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46000,"name":"uint64","nodeType":"ElementaryTypeName","src":"24612:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46004,"initialValue":{"expression":{"id":46002,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24627:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24637:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24627:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24612:49:69"},{"body":{"id":46160,"nodeType":"Block","src":"24722:1257:69","statements":[{"assignments":[46014],"declarations":[{"constant":false,"id":46014,"mutability":"mutable","name":"change","nameLocation":"24758:6:69","nodeType":"VariableDeclaration","scope":46160,"src":"24736:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46013,"nodeType":"UserDefinedTypeName","pathNode":{"id":46012,"name":"StakingChange","nameLocations":["24736:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"24736:13:69"},"referencedDeclaration":50104,"src":"24736:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46019,"initialValue":{"arguments":[{"id":46017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24787:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46015,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24767:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24777:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"24767:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24767:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24736:53:69"},{"assignments":[46021],"declarations":[{"constant":false,"id":46021,"mutability":"mutable","name":"validator","nameLocation":"24811:9:69","nodeType":"VariableDeclaration","scope":46160,"src":"24803:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46020,"name":"address","nodeType":"ElementaryTypeName","src":"24803:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46024,"initialValue":{"expression":{"id":46022,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24823:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24830:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"24823:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24803:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46025,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24858:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24865:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"24858:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46027,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"24871:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24888:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"24871:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"24858:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46043,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25006:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25013:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25006:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46045,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25019:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25036:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"25019:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25006:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46147,"nodeType":"Block","src":"25325:546:69","statements":[{"assignments":[46085],"declarations":[{"constant":false,"id":46085,"mutability":"mutable","name":"amount","nameLocation":"25351:6:69","nodeType":"VariableDeclaration","scope":46147,"src":"25343:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46084,"name":"uint256","nodeType":"ElementaryTypeName","src":"25343:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46094,"initialValue":{"arguments":[{"expression":{"id":46088,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25371:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25378:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25371:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25388:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46090,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:69","typeDescriptions":{}}}],"id":46092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25387:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46086,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25360:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25364:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25360:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25360:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25343:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46095,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25420:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25427:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25420:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46097,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25433:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25450:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"25433:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25420:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46145,"nodeType":"Block","src":"25694:163:69","statements":[{"expression":{"arguments":[{"id":46132,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25746:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46133,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25757:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46127,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25716:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25718:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25716:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25731:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"25716:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25716:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46135,"nodeType":"ExpressionStatement","src":"25716:48:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":46137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25795:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25797:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25795:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46136,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25786:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25813:8:69","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":40263,"src":"25786:35:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":46142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":46141,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25829:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25786:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":46143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46144,"nodeType":"ExpressionStatement","src":"25786:52:69"}]},"id":46146,"nodeType":"IfStatement","src":"25416:441:69","trueBody":{"id":46126,"nodeType":"Block","src":"25460:228:69","statements":[{"expression":{"arguments":[{"id":46105,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25513:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46106,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25524:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46100,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25482:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25484:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25482:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25497:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"25482:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25482:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"25482:49:69"},{"expression":{"arguments":[{"id":46114,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25582:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46115,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25593:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25553:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25555:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"25553:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":46113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25568:13:69","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":44257,"src":"25553:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":46116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46117,"nodeType":"ExpressionStatement","src":"25553:47:69"},{"expression":{"arguments":[{"id":46123,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25662:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46119,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25631:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25633:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25631:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46118,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25622:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25649:12:69","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":40269,"src":"25622:39:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46125,"nodeType":"ExpressionStatement","src":"25622:47:69"}]}}]},"id":46148,"nodeType":"IfStatement","src":"25002:869:69","trueBody":{"id":46083,"nodeType":"Block","src":"25055:264:69","statements":[{"assignments":[46049,46051],"declarations":[{"constant":false,"id":46049,"mutability":"mutable","name":"metadata","nameLocation":"25087:8:69","nodeType":"VariableDeclaration","scope":46083,"src":"25074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46048,"name":"bytes","nodeType":"ElementaryTypeName","src":"25074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46051,"mutability":"mutable","name":"power","nameLocation":"25105:5:69","nodeType":"VariableDeclaration","scope":46083,"src":"25097:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46050,"name":"uint256","nodeType":"ElementaryTypeName","src":"25097:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46062,"initialValue":{"arguments":[{"expression":{"id":46054,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25125:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25132:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25125:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25142:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46056,"name":"bytes","nodeType":"ElementaryTypeName","src":"25142:5:69","typeDescriptions":{}}},{"id":46059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25149:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46058,"name":"uint256","nodeType":"ElementaryTypeName","src":"25149:7:69","typeDescriptions":{}}}],"id":46060,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25141:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46052,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25114:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25118:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25114:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25114:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25073:85:69"},{"expression":{"id":46072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46063,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25176:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25178:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25176:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25191:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"25176:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46069,"indexExpression":{"id":46066,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25202:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25176:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25213:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"25176:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46071,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46049,"src":"25224:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"25176:56:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46073,"nodeType":"ExpressionStatement","src":"25176:56:69"},{"expression":{"arguments":[{"id":46079,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25287:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46080,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46051,"src":"25298:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46074,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25250:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25250:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25265:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"25250:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25250:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46082,"nodeType":"ExpressionStatement","src":"25250:54:69"}]}},"id":46149,"nodeType":"IfStatement","src":"24854:1017:69","trueBody":{"id":46042,"nodeType":"Block","src":"24901:95:69","statements":[{"expression":{"id":46040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46030,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24919:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24921:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"24919:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24934:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"24919:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46036,"indexExpression":{"id":46033,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"24945:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24919:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24956:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"24919:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46038,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24967:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24974:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"24967:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24919:62:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46041,"nodeType":"ExpressionStatement","src":"24919:62:69"}]}},{"expression":{"arguments":[{"id":46153,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25907:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46150,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25885:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25895:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"25885:21:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25885:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46155,"nodeType":"ExpressionStatement","src":"25885:24:69"},{"id":46159,"nodeType":"UncheckedBlock","src":"25923:46:69","statements":[{"expression":{"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25951:3:69","subExpression":{"id":46156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25953:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46158,"nodeType":"ExpressionStatement","src":"25951:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24694:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46010,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24699:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24694:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46161,"initializationExpression":{"assignments":[46006],"declarations":[{"constant":false,"id":46006,"mutability":"mutable","name":"i","nameLocation":"24683:1:69","nodeType":"VariableDeclaration","scope":46161,"src":"24676:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46005,"name":"uint64","nodeType":"ElementaryTypeName","src":"24676:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46008,"initialValue":{"id":46007,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46001,"src":"24687:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24676:16:69"},"nodeType":"ForStatement","src":"24671:1308:69"},{"expression":{"id":46168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46162,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25989:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25999:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"25989:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46165,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26026:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26048:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26026:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25989:60:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46169,"nodeType":"ExpressionStatement","src":"25989:60:69"},{"eventCall":{"arguments":[{"id":46171,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26094:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46170,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45323,"src":"26065:28:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":46172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26065:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46173,"nodeType":"EmitStatement","src":"26060:54:69"}]},"documentation":{"id":45966,"nodeType":"StructuredDocumentation","src":"24055:117:69","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24186:13:69","parameters":{"id":45969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45968,"mutability":"mutable","name":"configurationNumber","nameLocation":"24207:19:69","nodeType":"VariableDeclaration","scope":46175,"src":"24200:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45967,"name":"uint64","nodeType":"ElementaryTypeName","src":"24200:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"24199:28:69"},"returnParameters":{"id":45970,"nodeType":"ParameterList","parameters":[],"src":"24237:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46176],"name":"LibStaking","nameLocation":"15346:10:69","scope":46441,"usedErrors":[32461,32469,37450]},{"id":46440,"nodeType":"ContractDefinition","src":"26280:2695:69","nodes":[{"id":46181,"nodeType":"UsingForDirective","src":"26315:39:69","nodes":[],"global":false,"libraryName":{"id":46178,"name":"LibValidatorSet","nameLocations":["26321:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"26321:15:69"},"typeName":{"id":46180,"nodeType":"UserDefinedTypeName","pathNode":{"id":46179,"name":"ValidatorSet","nameLocations":["26341:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"26341:12:69"},"referencedDeclaration":50190,"src":"26341:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46185,"nodeType":"UsingForDirective","src":"26359:47:69","nodes":[],"global":false,"libraryName":{"id":46182,"name":"LibStakingChangeLog","nameLocations":["26365:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"26365:19:69"},"typeName":{"id":46184,"nodeType":"UserDefinedTypeName","pathNode":{"id":46183,"name":"StakingChangeLog","nameLocations":["26389:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"26389:16:69"},"referencedDeclaration":50123,"src":"26389:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":46220,"nodeType":"FunctionDefinition","src":"26412:475:69","nodes":[],"body":{"id":46219,"nodeType":"Block","src":"26525:362:69","nodes":[],"statements":[{"assignments":[46195],"declarations":[{"constant":false,"id":46195,"mutability":"mutable","name":"configurationNumber","nameLocation":"26542:19:69","nodeType":"VariableDeclaration","scope":46219,"src":"26535:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46194,"name":"uint64","nodeType":"ElementaryTypeName","src":"26535:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46209,"initialValue":{"arguments":[{"expression":{"expression":{"id":46199,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26615:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26629:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26615:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26636:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"26615:30:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":46202,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26663:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26677:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26663:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26684:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"26663:23:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":46205,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26709:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26723:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26709:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26730:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"26709:28:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":46196,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46188,"src":"26564:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26569:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"26564:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26577:12:69","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":46644,"src":"26564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26604:9:69","26659:2:69","26700:7:69"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26564:184:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26535:213:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46210,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"26763:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46211,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26786:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26800:19:69","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50109,"src":"26786:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26763:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46218,"nodeType":"IfStatement","src":"26759:122:69","trueBody":{"id":46217,"nodeType":"Block","src":"26821:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46214,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"26842:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46216,"nodeType":"RevertStatement","src":"26835:35:69"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"26421:11:69","parameters":{"id":46192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46188,"mutability":"mutable","name":"self","nameLocation":"26465:4:69","nodeType":"VariableDeclaration","scope":46220,"src":"26433:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46187,"nodeType":"UserDefinedTypeName","pathNode":{"id":46186,"name":"ParentValidatorsTracker","nameLocations":["26433:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26433:23:69"},"referencedDeclaration":50197,"src":"26433:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46191,"mutability":"mutable","name":"changeRequest","nameLocation":"26501:13:69","nodeType":"VariableDeclaration","scope":46220,"src":"26471:43:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":46190,"nodeType":"UserDefinedTypeName","pathNode":{"id":46189,"name":"StakingChangeRequest","nameLocations":["26471:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26471:20:69"},"referencedDeclaration":50110,"src":"26471:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"26432:83:69"},"returnParameters":{"id":46193,"nodeType":"ParameterList","parameters":[],"src":"26525:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46261,"nodeType":"FunctionDefinition","src":"26893:415:69","nodes":[],"body":{"id":46260,"nodeType":"Block","src":"27036:272:69","nodes":[],"statements":[{"assignments":[46231],"declarations":[{"constant":false,"id":46231,"mutability":"mutable","name":"length","nameLocation":"27054:6:69","nodeType":"VariableDeclaration","scope":46260,"src":"27046:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46230,"name":"uint256","nodeType":"ElementaryTypeName","src":"27046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46234,"initialValue":{"expression":{"id":46232,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27063:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27078:6:69","memberName":"length","nodeType":"MemberAccess","src":"27063:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27046:38:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46235,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27098:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27108:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27098:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46240,"nodeType":"IfStatement","src":"27094:48:69","trueBody":{"id":46239,"nodeType":"Block","src":"27111:31:69","statements":[{"functionReturnParameters":46229,"id":46238,"nodeType":"Return","src":"27125:7:69"}]}},{"body":{"id":46258,"nodeType":"Block","src":"27182:120:69","statements":[{"expression":{"arguments":[{"id":46248,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46223,"src":"27208:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":46249,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27214:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46251,"indexExpression":{"id":46250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27229:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27214:17:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":46247,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27196:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":46252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27196:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46253,"nodeType":"ExpressionStatement","src":"27196:36:69"},{"id":46257,"nodeType":"UncheckedBlock","src":"27246:46:69","statements":[{"expression":{"id":46255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27274:3:69","subExpression":{"id":46254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27276:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46256,"nodeType":"ExpressionStatement","src":"27274:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27168:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46245,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27172:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27168:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46259,"initializationExpression":{"assignments":[46242],"declarations":[{"constant":false,"id":46242,"mutability":"mutable","name":"i","nameLocation":"27165:1:69","nodeType":"VariableDeclaration","scope":46259,"src":"27157:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46241,"name":"uint256","nodeType":"ElementaryTypeName","src":"27157:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46243,"nodeType":"VariableDeclarationStatement","src":"27157:9:69"},"nodeType":"ForStatement","src":"27152:150:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26902:16:69","parameters":{"id":46228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46223,"mutability":"mutable","name":"self","nameLocation":"26960:4:69","nodeType":"VariableDeclaration","scope":46261,"src":"26928:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46222,"nodeType":"UserDefinedTypeName","pathNode":{"id":46221,"name":"ParentValidatorsTracker","nameLocations":["26928:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26928:23:69"},"referencedDeclaration":50197,"src":"26928:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46227,"mutability":"mutable","name":"changeRequests","nameLocation":"27006:14:69","nodeType":"VariableDeclaration","scope":46261,"src":"26974:46:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":46225,"nodeType":"UserDefinedTypeName","pathNode":{"id":46224,"name":"StakingChangeRequest","nameLocations":["26974:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26974:20:69"},"referencedDeclaration":50110,"src":"26974:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":46226,"nodeType":"ArrayTypeName","src":"26974:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26918:108:69"},"returnParameters":{"id":46229,"nodeType":"ParameterList","parameters":[],"src":"27036:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46439,"nodeType":"FunctionDefinition","src":"27379:1594:69","nodes":[],"body":{"id":46438,"nodeType":"Block","src":"27477:1496:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46270,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27491:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":46271,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27514:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27514:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27527:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"27514:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27491:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46279,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27622:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":46280,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27644:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27649:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27644:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27657:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27644:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27622:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46286,"nodeType":"IfStatement","src":"27618:96:69","trueBody":{"id":46285,"nodeType":"Block","src":"27683:31:69","statements":[{"functionReturnParameters":46269,"id":46284,"nodeType":"Return","src":"27697:7:69"}]}},"id":46287,"nodeType":"IfStatement","src":"27487:227:69","trueBody":{"id":46278,"nodeType":"Block","src":"27552:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46275,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"27573:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27573:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46277,"nodeType":"RevertStatement","src":"27566:35:69"}]}},{"assignments":[46289],"declarations":[{"constant":false,"id":46289,"mutability":"mutable","name":"start","nameLocation":"27731:5:69","nodeType":"VariableDeclaration","scope":46438,"src":"27724:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46288,"name":"uint64","nodeType":"ElementaryTypeName","src":"27724:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46293,"initialValue":{"expression":{"expression":{"id":46290,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27739:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27744:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27739:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27752:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27739:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27724:52:69"},{"body":{"id":46426,"nodeType":"Block","src":"27838:1056:69","statements":[{"assignments":[46303],"declarations":[{"constant":false,"id":46303,"mutability":"mutable","name":"change","nameLocation":"27874:6:69","nodeType":"VariableDeclaration","scope":46426,"src":"27852:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46302,"nodeType":"UserDefinedTypeName","pathNode":{"id":46301,"name":"StakingChange","nameLocations":["27852:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"27852:13:69"},"referencedDeclaration":50104,"src":"27852:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46309,"initialValue":{"arguments":[{"id":46307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27906:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46304,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27883:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27888:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27883:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27896:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"27883:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27883:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27852:56:69"},{"assignments":[46311],"declarations":[{"constant":false,"id":46311,"mutability":"mutable","name":"validator","nameLocation":"27930:9:69","nodeType":"VariableDeclaration","scope":46426,"src":"27922:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46310,"name":"address","nodeType":"ElementaryTypeName","src":"27922:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46314,"initialValue":{"expression":{"id":46312,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27942:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27949:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"27942:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27922:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46315,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27977:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27984:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"27977:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46317,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"27990:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28007:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"27990:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"27977:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46333,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28126:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28133:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28126:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46335,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28139:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28156:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"28139:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28126:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46411,"nodeType":"Block","src":"28447:336:69","statements":[{"assignments":[46375],"declarations":[{"constant":false,"id":46375,"mutability":"mutable","name":"amount","nameLocation":"28473:6:69","nodeType":"VariableDeclaration","scope":46411,"src":"28465:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46374,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46384,"initialValue":{"arguments":[{"expression":{"id":46378,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28493:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28500:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28493:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28510:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46380,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:69","typeDescriptions":{}}}],"id":46382,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28509:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28482:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28486:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28482:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28482:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46385,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28542:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28542:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46387,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28555:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28572:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"28555:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28542:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46409,"nodeType":"Block","src":"28679:90:69","statements":[{"expression":{"arguments":[{"id":46405,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28732:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46406,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28743:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46400,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28701:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28706:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28701:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28717:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"28701:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28701:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46408,"nodeType":"ExpressionStatement","src":"28701:49:69"}]},"id":46410,"nodeType":"IfStatement","src":"28538:231:69","trueBody":{"id":46399,"nodeType":"Block","src":"28582:91:69","statements":[{"expression":{"arguments":[{"id":46395,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28636:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46396,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28647:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46390,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28604:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28609:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28604:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28620:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"28604:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:50:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46398,"nodeType":"ExpressionStatement","src":"28604:50:69"}]}}]},"id":46412,"nodeType":"IfStatement","src":"28122:661:69","trueBody":{"id":46373,"nodeType":"Block","src":"28175:266:69","statements":[{"assignments":[46339,46341],"declarations":[{"constant":false,"id":46339,"mutability":"mutable","name":"metadata","nameLocation":"28207:8:69","nodeType":"VariableDeclaration","scope":46373,"src":"28194:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46338,"name":"bytes","nodeType":"ElementaryTypeName","src":"28194:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46341,"mutability":"mutable","name":"power","nameLocation":"28225:5:69","nodeType":"VariableDeclaration","scope":46373,"src":"28217:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46340,"name":"uint256","nodeType":"ElementaryTypeName","src":"28217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46352,"initialValue":{"arguments":[{"expression":{"id":46344,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28245:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28252:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28245:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28262:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46346,"name":"bytes","nodeType":"ElementaryTypeName","src":"28262:5:69","typeDescriptions":{}}},{"id":46349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28269:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46348,"name":"uint256","nodeType":"ElementaryTypeName","src":"28269:7:69","typeDescriptions":{}}}],"id":46350,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28261:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28234:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28238:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28234:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28234:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28193:85:69"},{"expression":{"id":46362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28296:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28301:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28296:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28296:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46359,"indexExpression":{"id":46356,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28323:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28296:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28334:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28296:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46361,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46339,"src":"28345:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28296:57:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46363,"nodeType":"ExpressionStatement","src":"28296:57:69"},{"expression":{"arguments":[{"id":46369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28409:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46370,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46341,"src":"28420:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46364,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28371:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28376:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28371:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28387:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"28371:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28371:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46372,"nodeType":"ExpressionStatement","src":"28371:55:69"}]}},"id":46413,"nodeType":"IfStatement","src":"27973:810:69","trueBody":{"id":46332,"nodeType":"Block","src":"28020:96:69","statements":[{"expression":{"id":46330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46320,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28038:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28043:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28038:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28054:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28038:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46326,"indexExpression":{"id":46323,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28065:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28038:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28076:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28038:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46328,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28087:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28094:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28087:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"28038:63:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46331,"nodeType":"ExpressionStatement","src":"28038:63:69"}]}},{"expression":{"arguments":[{"id":46419,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28822:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46414,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28797:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28802:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28797:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28810:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"28797:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28797:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46421,"nodeType":"ExpressionStatement","src":"28797:27:69"},{"id":46425,"nodeType":"UncheckedBlock","src":"28838:46:69","statements":[{"expression":{"id":46423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28866:3:69","subExpression":{"id":46422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28868:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46424,"nodeType":"ExpressionStatement","src":"28866:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27810:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46299,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27815:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27810:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46427,"initializationExpression":{"assignments":[46295],"declarations":[{"constant":false,"id":46295,"mutability":"mutable","name":"i","nameLocation":"27799:1:69","nodeType":"VariableDeclaration","scope":46427,"src":"27792:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46294,"name":"uint64","nodeType":"ElementaryTypeName","src":"27792:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46297,"initialValue":{"id":46296,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46289,"src":"27803:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27792:16:69"},"nodeType":"ForStatement","src":"27787:1107:69"},{"expression":{"id":46436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46428,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28903:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28903:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28916:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"28903:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46433,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"28943:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28965:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28943:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28903:63:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46437,"nodeType":"ExpressionStatement","src":"28903:63:69"}]},"documentation":{"id":46262,"nodeType":"StructuredDocumentation","src":"27314:60:69","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27388:13:69","parameters":{"id":46268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46265,"mutability":"mutable","name":"self","nameLocation":"27434:4:69","nodeType":"VariableDeclaration","scope":46439,"src":"27402:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46264,"nodeType":"UserDefinedTypeName","pathNode":{"id":46263,"name":"ParentValidatorsTracker","nameLocations":["27402:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"27402:23:69"},"referencedDeclaration":50197,"src":"27402:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46267,"mutability":"mutable","name":"configurationNumber","nameLocation":"27447:19:69","nodeType":"VariableDeclaration","scope":46439,"src":"27440:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46266,"name":"uint64","nodeType":"ElementaryTypeName","src":"27440:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"27401:66:69"},"returnParameters":{"id":46269,"nodeType":"ParameterList","parameters":[],"src":"27477:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":46177,"nodeType":"StructuredDocumentation","src":"26125:155:69","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[46440],"name":"LibValidatorTracking","nameLocation":"26288:20:69","scope":46441,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file diff --git a/.out/LibStaking.sol/LibStaking.json b/.out/LibStaking.sol/LibStaking.json index b638b16d2..bc4e46efe 100644 --- a/.out/LibStaking.sol/LibStaking.json +++ b/.out/LibStaking.sol/LibStaking.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"CollateralClaimed","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ConfigurationNumberConfirmed","inputs":[{"name":"number","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"NoRewardToWithdraw","inputs":[]}],"bytecode":{"object":"0x6080806040523461001c57610214908161002282393081602e0152f35b600080fdfe60406080815260048036101561001457600080fd5b600091823560e01c6382985e0b1461002b57600080fd5b307f0000000000000000000000000000000000000000000000000000000000000000146101da5760203660031901126101da5781356001600160a01b03808216908183036101d6576001600160a01b0383166000908152602160205260409020549283156101c6576001600160a01b03166000908152602160205260409020869055600e54869116803b156101c25781906024865180948193636c712ab960e11b8352888b8401525af180156101b85761018a575b50814710610174578480809381935af13d1561016f5767ffffffffffffffff3d81811161015c57835191601f8201601f19908116603f011683019081118382101761014757845281528460203d92013e5b1561013a578280f35b51630a12f52160e11b8152fd5b604186634e487b7160e01b6000525260246000fd5b634e487b7160e01b865260418552602486fd5b610131565b825163cd78605960e01b81523081860152602490fd5b67ffffffffffffffff81969296116101a557835293386100e0565b634e487b7160e01b825260418552602482fd5b84513d88823e3d90fd5b5080fd5b84516367300f9160e11b81528690fd5b8580fd5b8280fdfea26469706673582212207429aa7317db8e5a833413ca60f0420e38f2dced7dd9ff92e0a3068dbcf27ad164736f6c63430008130033","sourceMap":"15338:10289:64:-:0;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260048036101561001457600080fd5b600091823560e01c6382985e0b1461002b57600080fd5b307f0000000000000000000000000000000000000000000000000000000000000000146101da5760203660031901126101da5781356001600160a01b03808216908183036101d6576001600160a01b0383166000908152602160205260409020549283156101c6576001600160a01b03166000908152602160205260409020869055600e54869116803b156101c25781906024865180948193636c712ab960e11b8352888b8401525af180156101b85761018a575b50814710610174578480809381935af13d1561016f5767ffffffffffffffff3d81811161015c57835191601f8201601f19908116603f011683019081118382101761014757845281528460203d92013e5b1561013a578280f35b51630a12f52160e11b8152fd5b604186634e487b7160e01b6000525260246000fd5b634e487b7160e01b865260418552602486fd5b610131565b825163cd78605960e01b81523081860152602490fd5b67ffffffffffffffff81969296116101a557835293386100e0565b634e487b7160e01b825260418552602482fd5b84513d88823e3d90fd5b5080fd5b84516367300f9160e11b81528690fd5b8580fd5b8280fdfea26469706673582212207429aa7317db8e5a833413ca60f0420e38f2dced7dd9ff92e0a3068dbcf27ad164736f6c63430008130033","sourceMap":"15338:10289:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15338:10289:64;;;;;;-1:-1:-1;;;;;15338:10289:64;;;;;;;;;-1:-1:-1;;;;;15338:10289:64;;;;;;23020:16;15338:10289;;;;;;23068:11;;;23064:69;;-1:-1:-1;;;;;15338:10289:64;;;;;23020:16;15338:10289;;;;;;;;23199:16;15338:10289;23143:33;;15338:10289;23190:58;;;;;15338:10289;;;;;;;;;;;;23190:58;;;;;;15338:10289;23190:58;;;;;;;;15338:10289;1615:21:26;;;:30;1611:109;;1749:33;;;;;;;;15338:10289:64;;;;;;;;;;;;;;;;;-1:-1:-1;;15338:10289:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;1796:8:26;1792:63;;15338:10289:64;;;1792:63:26;15338:10289:64;-1:-1:-1;;;1827:17:26;;;15338:10289:64;;;;;;;;;;;;;-1:-1:-1;;;15338:10289:64;;;;;;;;;;;1611:109:26;15338:10289:64;;-1:-1:-1;;;1668:41:26;;15338:10289:64;1668:41:26;;;15338:10289:64;;;1668:41:26;23190:58:64;15338:10289;;;;;;;;;;23190:58;;;;15338:10289;-1:-1:-1;;;15338:10289:64;;;;;;;;23190:58;15338:10289;;;;;;;;;23190:58;15338:10289;;;23064:69;15338:10289;;-1:-1:-1;;;23102:20:64;;15338:10289;;23102:20;15338:10289;;;;;;;","linkReferences":{},"immutableReferences":{"library_deploy_address":[{"start":46,"length":32}]}},"methodIdentifiers":{"claimRewardForRelayer(address)":"82985e0b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoRewardToWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CollateralClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"number\",\"type\":\"uint64\"}],\"name\":\"ConfigurationNumberConfirmed\",\"type\":\"event\"}],\"devdoc\":{\"errors\":{\"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\":{\"claimRewardForRelayer(address)\":{\"notice\":\"method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibStaking\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"NoRewardToWithdraw"},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"CollateralClaimed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"number","type":"uint64","indexed":false}],"type":"event","name":"ConfigurationNumberConfirmed","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"claimRewardForRelayer(address)":{"notice":"method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibStaking"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":45729,"exportedSymbols":{"Address":[32409],"AddressShouldBeValidator":[36936],"AddressStakingReleases":[48623],"CannotConfirmFutureChanges":[36940],"IGateway":[39904],"InvalidConfigurationNumber":[36986],"LibAddressStakingReleases":[43484],"LibMaxPQ":[47494],"LibMinPQ":[48113],"LibStaking":[45464],"LibStakingChangeLog":[45966],"LibStakingReleaseQueue":[43603],"LibSubnetActorStorage":[46096],"LibValidatorSet":[44594],"LibValidatorTracking":[45728],"MaxPQ":[46889],"MinPQ":[47507],"NoCollateralToWithdraw":[37016],"NoRewardToWithdraw":[37018],"NotValidator":[37058],"ParentValidatorsTracker":[48680],"PermissionMode":[48648],"StakingChange":[48587],"StakingChangeLog":[48606],"StakingChangeRequest":[48593],"StakingOperation":[48579],"StakingRelease":[48613],"StakingReleaseQueue":[48633],"SubnetActorStorage":[46085],"Validator":[48694],"ValidatorSet":[48673],"WithdrawExceedingCollateral":[37078]},"nodeType":"SourceUnit","src":"46:28434:64","nodes":[{"id":43316,"nodeType":"PragmaDirective","src":"46:23:64","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43318,"nodeType":"ImportDirective","src":"71:52:64","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":39905,"symbolAliases":[{"foreign":{"id":43317,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"79:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43321,"nodeType":"ImportDirective","src":"124:86:64","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":46140,"symbolAliases":[{"foreign":{"id":43319,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"132:21:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43320,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"155:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43324,"nodeType":"ImportDirective","src":"211:56:64","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":47495,"symbolAliases":[{"foreign":{"id":43322,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47494,"src":"219:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43323,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46889,"src":"229:5:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43327,"nodeType":"ImportDirective","src":"268:56:64","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":48114,"symbolAliases":[{"foreign":{"id":43325,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48113,"src":"276:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43326,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47507,"src":"286:5:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43329,"nodeType":"ImportDirective","src":"325:62:64","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":45967,"symbolAliases":[{"foreign":{"id":43328,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45966,"src":"333:19:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43341,"nodeType":"ImportDirective","src":"388:237:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":43330,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"396:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43331,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48633,"src":"412:19:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43332,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48606,"src":"433:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43333,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48587,"src":"451:13:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43334,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48593,"src":"466:20:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43335,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"488:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43336,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48613,"src":"506:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43337,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48673,"src":"522:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43338,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48623,"src":"536:22:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43339,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48680,"src":"560:23:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43340,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"585:9:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43349,"nodeType":"ImportDirective","src":"626:208:64","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":43342,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37018,"src":"634:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43343,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37078,"src":"654:27:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43344,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37058,"src":"683:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43345,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36940,"src":"697:26:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43346,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37016,"src":"725:22:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43347,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36936,"src":"749:24:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43348,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36986,"src":"775:26:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43351,"nodeType":"ImportDirective","src":"835:65:64","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":32410,"symbolAliases":[{"foreign":{"id":43350,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"843:7:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43484,"nodeType":"ContractDefinition","src":"902:1635:64","nodes":[{"id":43390,"nodeType":"FunctionDefinition","src":"1118:261:64","nodes":[],"body":{"id":43389,"nodeType":"Block","src":"1209:170:64","nodes":[],"statements":[{"assignments":[43362],"declarations":[{"constant":false,"id":43362,"mutability":"mutable","name":"length","nameLocation":"1226:6:64","nodeType":"VariableDeclaration","scope":43389,"src":"1219:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43361,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43365,"initialValue":{"expression":{"id":43363,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1235:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1235:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:64"},{"assignments":[43367],"declarations":[{"constant":false,"id":43367,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:64","nodeType":"VariableDeclaration","scope":43389,"src":"1256:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43366,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43372,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43368,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1273:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:64","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"1273:13:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":43370,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43362,"src":"1289:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:64"},{"expression":{"id":43379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":43373,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1306:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48622,"src":"1306:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":43377,"indexExpression":{"id":43375,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43367,"src":"1320:7:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43378,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43358,"src":"1331:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"id":43380,"nodeType":"ExpressionStatement","src":"1306:32:64"},{"expression":{"id":43387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1348:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1348:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43384,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43362,"src":"1362:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":43385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43388,"nodeType":"ExpressionStatement","src":"1348:24:64"}]},"documentation":{"id":43352,"nodeType":"StructuredDocumentation","src":"942:171:64","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:64","parameters":{"id":43359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43355,"mutability":"mutable","name":"self","nameLocation":"1163:4:64","nodeType":"VariableDeclaration","scope":43390,"src":"1132:35:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":43354,"nodeType":"UserDefinedTypeName","pathNode":{"id":43353,"name":"AddressStakingReleases","nameLocations":["1132:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"1132:22:64"},"referencedDeclaration":48623,"src":"1132:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":43358,"mutability":"mutable","name":"release","nameLocation":"1191:7:64","nodeType":"VariableDeclaration","scope":43390,"src":"1169:29:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":43357,"nodeType":"UserDefinedTypeName","pathNode":{"id":43356,"name":"StakingRelease","nameLocations":["1169:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"1169:14:64"},"referencedDeclaration":48613,"src":"1169:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:64"},"returnParameters":{"id":43360,"nodeType":"ParameterList","parameters":[],"src":"1209:0:64"},"scope":43484,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43483,"nodeType":"FunctionDefinition","src":"1637:898:64","nodes":[],"body":{"id":43482,"nodeType":"Block","src":"1726:809:64","nodes":[],"statements":[{"assignments":[43402],"declarations":[{"constant":false,"id":43402,"mutability":"mutable","name":"length","nameLocation":"1743:6:64","nodeType":"VariableDeclaration","scope":43482,"src":"1736:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43401,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43405,"initialValue":{"expression":{"id":43403,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"1752:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1752:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43406,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"1777:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1777:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43414,"nodeType":"IfStatement","src":"1773:78:64","trueBody":{"id":43413,"nodeType":"Block","src":"1795:56:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43410,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37016,"src":"1816:22:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43412,"nodeType":"RevertStatement","src":"1809:31:64"}]}},{"assignments":[43416],"declarations":[{"constant":false,"id":43416,"mutability":"mutable","name":"i","nameLocation":"1868:1:64","nodeType":"VariableDeclaration","scope":43482,"src":"1861:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43415,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43419,"initialValue":{"expression":{"id":43417,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"1872:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:64","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"1872:13:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:64"},{"assignments":[43421],"declarations":[{"constant":false,"id":43421,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:64","nodeType":"VariableDeclaration","scope":43482,"src":"1895:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43420,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43423,"initialValue":{"id":43422,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43402,"src":"1914:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:64"},{"assignments":[43425],"declarations":[{"constant":false,"id":43425,"mutability":"mutable","name":"amount","nameLocation":"1938:6:64","nodeType":"VariableDeclaration","scope":43482,"src":"1930:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43424,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43426,"nodeType":"VariableDeclarationStatement","src":"1930:14:64"},{"body":{"id":43464,"nodeType":"Block","src":"1973:458:64","statements":[{"assignments":[43432],"declarations":[{"constant":false,"id":43432,"mutability":"mutable","name":"release","nameLocation":"2009:7:64","nodeType":"VariableDeclaration","scope":43464,"src":"1987:29:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":43431,"nodeType":"UserDefinedTypeName","pathNode":{"id":43430,"name":"StakingRelease","nameLocations":["1987:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"1987:14:64"},"referencedDeclaration":48613,"src":"1987:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":43437,"initialValue":{"baseExpression":{"expression":{"id":43433,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2019:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48622,"src":"2019:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":43436,"indexExpression":{"id":43435,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2033:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43438,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43432,"src":"2184:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"id":43439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:64","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":48609,"src":"2184:17:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":43440,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:64","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:64","memberName":"number","nodeType":"MemberAccess","src":"2204:12:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43445,"nodeType":"IfStatement","src":"2180:76:64","trueBody":{"id":43444,"nodeType":"Block","src":"2218:38:64","statements":[{"id":43443,"nodeType":"Break","src":"2236:5:64"}]}},{"expression":{"id":43449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43446,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43425,"src":"2270:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":43447,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43432,"src":"2280:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"id":43448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:64","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":48612,"src":"2280:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43450,"nodeType":"ExpressionStatement","src":"2270:24:64"},{"expression":{"id":43455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:64","subExpression":{"baseExpression":{"expression":{"id":43451,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2315:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48622,"src":"2315:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":43454,"indexExpression":{"id":43453,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2329:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43456,"nodeType":"ExpressionStatement","src":"2308:23:64"},{"id":43463,"nodeType":"UncheckedBlock","src":"2346:75:64","statements":[{"expression":{"id":43458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:64","subExpression":{"id":43457,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2376:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43459,"nodeType":"ExpressionStatement","src":"2374:3:64"},{"expression":{"id":43461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:64","subExpression":{"id":43460,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2397:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43462,"nodeType":"ExpressionStatement","src":"2395:11:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43427,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"1961:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43428,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43402,"src":"1965:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43465,"nodeType":"WhileStatement","src":"1954:477:64"},{"expression":{"id":43470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43466,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2441:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:64","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"2441:13:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2457:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43471,"nodeType":"ExpressionStatement","src":"2441:17:64"},{"expression":{"id":43476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2468:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"2468:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43475,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2482:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43477,"nodeType":"ExpressionStatement","src":"2468:23:64"},{"expression":{"components":[{"id":43478,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43425,"src":"2510:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43479,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2518:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":43480,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":43400,"id":43481,"nodeType":"Return","src":"2502:26:64"}]},"documentation":{"id":43391,"nodeType":"StructuredDocumentation","src":"1385:247:64","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:64","parameters":{"id":43395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43394,"mutability":"mutable","name":"self","nameLocation":"1685:4:64","nodeType":"VariableDeclaration","scope":43483,"src":"1654:35:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":43393,"nodeType":"UserDefinedTypeName","pathNode":{"id":43392,"name":"AddressStakingReleases","nameLocations":["1654:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"1654:22:64"},"referencedDeclaration":48623,"src":"1654:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:64"},"returnParameters":{"id":43400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43483,"src":"1709:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43396,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43483,"src":"1718:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43398,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:64"},"scope":43484,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[43484],"name":"LibAddressStakingReleases","nameLocation":"910:25:64","scope":45729,"usedErrors":[]},{"id":43603,"nodeType":"ContractDefinition","src":"2586:1272:64","nodes":[{"id":43488,"nodeType":"UsingForDirective","src":"2623:34:64","nodes":[],"global":false,"libraryName":{"id":43486,"name":"Address","nameLocations":["2629:7:64"],"nodeType":"IdentifierPath","referencedDeclaration":32409,"src":"2629:7:64"},"typeName":{"id":43487,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":43492,"nodeType":"UsingForDirective","src":"2662:59:64","nodes":[],"global":false,"libraryName":{"id":43489,"name":"LibAddressStakingReleases","nameLocations":["2668:25:64"],"nodeType":"IdentifierPath","referencedDeclaration":43484,"src":"2668:25:64"},"typeName":{"id":43491,"nodeType":"UserDefinedTypeName","pathNode":{"id":43490,"name":"AddressStakingReleases","nameLocations":["2698:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"2698:22:64"},"referencedDeclaration":48623,"src":"2698:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":43500,"nodeType":"EventDefinition","src":"2727:84:64","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:64","parameters":{"id":43499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43494,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:64","nodeType":"VariableDeclaration","scope":43500,"src":"2754:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43493,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43496,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:64","nodeType":"VariableDeclaration","scope":43500,"src":"2773:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43495,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43498,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:64","nodeType":"VariableDeclaration","scope":43500,"src":"2789:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43497,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:64"}},{"id":43515,"nodeType":"FunctionDefinition","src":"2817:130:64","nodes":[],"body":{"id":43514,"nodeType":"Block","src":"2901:46:64","nodes":[],"statements":[{"expression":{"id":43512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43508,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43503,"src":"2911:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:64","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":48626,"src":"2911:20:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43511,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43505,"src":"2934:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43513,"nodeType":"ExpressionStatement","src":"2911:29:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:64","parameters":{"id":43506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43503,"mutability":"mutable","name":"self","nameLocation":"2870:4:64","nodeType":"VariableDeclaration","scope":43515,"src":"2842:32:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":43502,"nodeType":"UserDefinedTypeName","pathNode":{"id":43501,"name":"StakingReleaseQueue","nameLocations":["2842:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"2842:19:64"},"referencedDeclaration":48633,"src":"2842:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":43505,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:64","nodeType":"VariableDeclaration","scope":43515,"src":"2876:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43504,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:64"},"returnParameters":{"id":43507,"nodeType":"ParameterList","parameters":[],"src":"2901:0:64"},"scope":43603,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43558,"nodeType":"FunctionDefinition","src":"3016:419:64","nodes":[],"body":{"id":43557,"nodeType":"Block","src":"3117:318:64","nodes":[],"statements":[{"assignments":[43527],"declarations":[{"constant":false,"id":43527,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:64","nodeType":"VariableDeclaration","scope":43557,"src":"3127:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43526,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43533,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43528,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:64","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:64","memberName":"number","nodeType":"MemberAccess","src":"3147:12:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":43530,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43519,"src":"3162:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:64","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":48626,"src":"3162:20:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:64"},{"assignments":[43536],"declarations":[{"constant":false,"id":43536,"mutability":"mutable","name":"release","nameLocation":"3214:7:64","nodeType":"VariableDeclaration","scope":43557,"src":"3192:29:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":43535,"nodeType":"UserDefinedTypeName","pathNode":{"id":43534,"name":"StakingRelease","nameLocations":["3192:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"3192:14:64"},"referencedDeclaration":48613,"src":"3192:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":43541,"initialValue":{"arguments":[{"id":43538,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43527,"src":"3251:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43539,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43523,"src":"3270:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43537,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48613,"src":"3224:14:64","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$48613_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":43540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:64","3262:6:64"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:64"},{"expression":{"arguments":[{"id":43548,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43536,"src":"3319:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":43542,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43519,"src":"3289:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48632,"src":"3289:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":43546,"indexExpression":{"id":43544,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"3303:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":43547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:64","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":43390,"src":"3289:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$_t_struct$_StakingRelease_$48613_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":43549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43550,"nodeType":"ExpressionStatement","src":"3289:38:64"},{"eventCall":{"arguments":[{"id":43552,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"3376:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43553,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43523,"src":"3395:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43554,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43527,"src":"3417:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43551,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43500,"src":"3343:20:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":43555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:64","3387:6:64","3403:12:64"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43556,"nodeType":"EmitStatement","src":"3338:90:64"}]},"documentation":{"id":43516,"nodeType":"StructuredDocumentation","src":"2953:58:64","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:64","parameters":{"id":43524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43519,"mutability":"mutable","name":"self","nameLocation":"3067:4:64","nodeType":"VariableDeclaration","scope":43558,"src":"3039:32:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":43518,"nodeType":"UserDefinedTypeName","pathNode":{"id":43517,"name":"StakingReleaseQueue","nameLocations":["3039:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"3039:19:64"},"referencedDeclaration":48633,"src":"3039:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":43521,"mutability":"mutable","name":"validator","nameLocation":"3081:9:64","nodeType":"VariableDeclaration","scope":43558,"src":"3073:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43520,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43523,"mutability":"mutable","name":"amount","nameLocation":"3100:6:64","nodeType":"VariableDeclaration","scope":43558,"src":"3092:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43522,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:64"},"returnParameters":{"id":43525,"nodeType":"ParameterList","parameters":[],"src":"3117:0:64"},"scope":43603,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43602,"nodeType":"FunctionDefinition","src":"3516:340:64","nodes":[],"body":{"id":43601,"nodeType":"Block","src":"3611:245:64","nodes":[],"statements":[{"assignments":[43570,43572],"declarations":[{"constant":false,"id":43570,"mutability":"mutable","name":"amount","nameLocation":"3630:6:64","nodeType":"VariableDeclaration","scope":43601,"src":"3622:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43569,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43572,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:64","nodeType":"VariableDeclaration","scope":43601,"src":"3638:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43571,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43579,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":43573,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43562,"src":"3658:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48632,"src":"3658:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":43576,"indexExpression":{"id":43575,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43564,"src":"3672:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":43577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:64","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":43483,"src":"3658:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":43578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43580,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43572,"src":"3707:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43590,"nodeType":"IfStatement","src":"3703:76:64","trueBody":{"id":43589,"nodeType":"Block","src":"3723:56:64","statements":[{"expression":{"id":43587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:64","subExpression":{"baseExpression":{"expression":{"id":43583,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43562,"src":"3744:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48632,"src":"3744:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":43586,"indexExpression":{"id":43585,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43564,"src":"3758:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43588,"nodeType":"ExpressionStatement","src":"3737:31:64"}]}},{"expression":{"arguments":[{"id":43596,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43570,"src":"3818:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43593,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43564,"src":"3797:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":43591,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:64","stateMutability":"payable","typeDescriptions":{}}},"id":43594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":43595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:64","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"3789:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":43597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43598,"nodeType":"ExpressionStatement","src":"3789:36:64"},{"expression":{"id":43599,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43570,"src":"3843:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":43568,"id":43600,"nodeType":"Return","src":"3836:13:64"}]},"documentation":{"id":43559,"nodeType":"StructuredDocumentation","src":"3441:70:64","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:64","parameters":{"id":43565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43562,"mutability":"mutable","name":"self","nameLocation":"3559:4:64","nodeType":"VariableDeclaration","scope":43602,"src":"3531:32:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":43561,"nodeType":"UserDefinedTypeName","pathNode":{"id":43560,"name":"StakingReleaseQueue","nameLocations":["3531:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"3531:19:64"},"referencedDeclaration":48633,"src":"3531:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":43564,"mutability":"mutable","name":"validator","nameLocation":"3573:9:64","nodeType":"VariableDeclaration","scope":43602,"src":"3565:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43563,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:64"},"returnParameters":{"id":43568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43567,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43602,"src":"3602:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43566,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:64"},"scope":43603,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":43485,"nodeType":"StructuredDocumentation","src":"2539:47:64","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[43603],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:64","scope":45729,"usedErrors":[]},{"id":44594,"nodeType":"ContractDefinition","src":"3900:11436:64","nodes":[{"id":43608,"nodeType":"UsingForDirective","src":"3930:25:64","nodes":[],"global":false,"libraryName":{"id":43605,"name":"LibMinPQ","nameLocations":["3936:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":48113,"src":"3936:8:64"},"typeName":{"id":43607,"nodeType":"UserDefinedTypeName","pathNode":{"id":43606,"name":"MinPQ","nameLocations":["3949:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"3949:5:64"},"referencedDeclaration":47507,"src":"3949:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}}},{"id":43612,"nodeType":"UsingForDirective","src":"3960:25:64","nodes":[],"global":false,"libraryName":{"id":43609,"name":"LibMaxPQ","nameLocations":["3966:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":47494,"src":"3966:8:64"},"typeName":{"id":43611,"nodeType":"UserDefinedTypeName","pathNode":{"id":43610,"name":"MaxPQ","nameLocations":["3979:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"3979:5:64"},"referencedDeclaration":46889,"src":"3979:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}}},{"id":43618,"nodeType":"EventDefinition","src":"3991:76:64","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:64","parameters":{"id":43617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43614,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:64","nodeType":"VariableDeclaration","scope":43618,"src":"4030:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43613,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43616,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:64","nodeType":"VariableDeclaration","scope":43618,"src":"4049:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43615,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:64"}},{"id":43624,"nodeType":"EventDefinition","src":"4072:77:64","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:64","parameters":{"id":43623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43620,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:64","nodeType":"VariableDeclaration","scope":43624,"src":"4112:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43619,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43622,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:64","nodeType":"VariableDeclaration","scope":43624,"src":"4131:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43621,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:64"}},{"id":43630,"nodeType":"EventDefinition","src":"4154:59:64","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:64","parameters":{"id":43629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43626,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:64","nodeType":"VariableDeclaration","scope":43630,"src":"4179:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43625,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43628,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:64","nodeType":"VariableDeclaration","scope":43630,"src":"4198:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43627,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:64"}},{"id":43636,"nodeType":"EventDefinition","src":"4218:60:64","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:64","parameters":{"id":43635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43632,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:64","nodeType":"VariableDeclaration","scope":43636,"src":"4244:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43631,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43634,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:64","nodeType":"VariableDeclaration","scope":43636,"src":"4263:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43633,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:64"}},{"id":43642,"nodeType":"EventDefinition","src":"4283:74:64","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:64","parameters":{"id":43641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43638,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:64","nodeType":"VariableDeclaration","scope":43642,"src":"4313:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43637,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43640,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:64","nodeType":"VariableDeclaration","scope":43642,"src":"4335:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43639,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:64"}},{"id":43646,"nodeType":"EventDefinition","src":"4362:45:64","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:64","parameters":{"id":43645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43644,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:64","nodeType":"VariableDeclaration","scope":43646,"src":"4388:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43643,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:64"}},{"id":43650,"nodeType":"EventDefinition","src":"4412:46:64","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:64","parameters":{"id":43649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43648,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:64","nodeType":"VariableDeclaration","scope":43650,"src":"4439:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43647,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:64"}},{"id":43686,"nodeType":"FunctionDefinition","src":"4525:375:64","nodes":[],"body":{"id":43685,"nodeType":"Block","src":"4654:246:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"id":43665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43661,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43654,"src":"4668:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:64","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":48652,"src":"4668:25:64","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":43663,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"4697:14:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":43664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:64","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":48646,"src":"4697:24:64","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"src":"4668:53:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43683,"nodeType":"Block","src":"4809:85:64","statements":[{"expression":{"id":43681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43675,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43659,"src":"4823:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":43676,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43654,"src":"4831:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"4831:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43679,"indexExpression":{"id":43678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43656,"src":"4853:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"4831:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43682,"nodeType":"ExpressionStatement","src":"4823:60:64"}]},"id":43684,"nodeType":"IfStatement","src":"4664:230:64","trueBody":{"id":43674,"nodeType":"Block","src":"4723:80:64","statements":[{"expression":{"id":43672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43666,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43659,"src":"4737:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":43667,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43654,"src":"4745:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"4745:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43670,"indexExpression":{"id":43669,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43656,"src":"4767:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:64","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":48636,"src":"4745:47:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43673,"nodeType":"ExpressionStatement","src":"4737:55:64"}]}}]},"documentation":{"id":43651,"nodeType":"StructuredDocumentation","src":"4464:56:64","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:64","parameters":{"id":43657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43654,"mutability":"mutable","name":"validators","nameLocation":"4573:10:64","nodeType":"VariableDeclaration","scope":43686,"src":"4552:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43653,"nodeType":"UserDefinedTypeName","pathNode":{"id":43652,"name":"ValidatorSet","nameLocations":["4552:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"4552:12:64"},"referencedDeclaration":48673,"src":"4552:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43656,"mutability":"mutable","name":"validator","nameLocation":"4601:9:64","nodeType":"VariableDeclaration","scope":43686,"src":"4593:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43655,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:64"},"returnParameters":{"id":43660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43659,"mutability":"mutable","name":"power","nameLocation":"4647:5:64","nodeType":"VariableDeclaration","scope":43686,"src":"4639:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43658,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43701,"nodeType":"FunctionDefinition","src":"4976:178:64","nodes":[],"body":{"id":43700,"nodeType":"Block","src":"5089:65:64","nodes":[],"statements":[{"expression":{"id":43698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43695,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43693,"src":"5099:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":43696,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43690,"src":"5112:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:64","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48658,"src":"5112:35:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43699,"nodeType":"ExpressionStatement","src":"5099:48:64"}]},"documentation":{"id":43687,"nodeType":"StructuredDocumentation","src":"4906:65:64","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:64","parameters":{"id":43691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43690,"mutability":"mutable","name":"validators","nameLocation":"5034:10:64","nodeType":"VariableDeclaration","scope":43701,"src":"5013:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43689,"nodeType":"UserDefinedTypeName","pathNode":{"id":43688,"name":"ValidatorSet","nameLocations":["5013:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5013:12:64"},"referencedDeclaration":48673,"src":"5013:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:64"},"returnParameters":{"id":43694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43693,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:64","nodeType":"VariableDeclaration","scope":43701,"src":"5069:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43692,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43718,"nodeType":"FunctionDefinition","src":"5209:163:64","nodes":[],"body":{"id":43717,"nodeType":"Block","src":"5310:62:64","nodes":[],"statements":[{"expression":{"id":43715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43710,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43708,"src":"5320:5:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43711,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43705,"src":"5328:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"5328:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"5328:35:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":43714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43716,"nodeType":"ExpressionStatement","src":"5320:45:64"}]},"documentation":{"id":43702,"nodeType":"StructuredDocumentation","src":"5160:44:64","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:64","parameters":{"id":43706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43705,"mutability":"mutable","name":"validators","nameLocation":"5261:10:64","nodeType":"VariableDeclaration","scope":43718,"src":"5240:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43704,"nodeType":"UserDefinedTypeName","pathNode":{"id":43703,"name":"ValidatorSet","nameLocations":["5240:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5240:12:64"},"referencedDeclaration":48673,"src":"5240:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:64"},"returnParameters":{"id":43709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43708,"mutability":"mutable","name":"total","nameLocation":"5303:5:64","nodeType":"VariableDeclaration","scope":43718,"src":"5296:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43707,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43738,"nodeType":"FunctionDefinition","src":"5441:231:64","nodes":[],"body":{"id":43737,"nodeType":"Block","src":"5590:82:64","nodes":[],"statements":[{"expression":{"id":43735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43729,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43727,"src":"5600:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":43730,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43722,"src":"5613:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"5613:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43733,"indexExpression":{"id":43732,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43724,"src":"5635:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"5613:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43736,"nodeType":"ExpressionStatement","src":"5600:65:64"}]},"documentation":{"id":43719,"nodeType":"StructuredDocumentation","src":"5378:58:64","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:64","parameters":{"id":43725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43722,"mutability":"mutable","name":"validators","nameLocation":"5503:10:64","nodeType":"VariableDeclaration","scope":43738,"src":"5482:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43721,"nodeType":"UserDefinedTypeName","pathNode":{"id":43720,"name":"ValidatorSet","nameLocations":["5482:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5482:12:64"},"referencedDeclaration":48673,"src":"5482:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43724,"mutability":"mutable","name":"validator","nameLocation":"5531:9:64","nodeType":"VariableDeclaration","scope":43738,"src":"5523:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43723,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:64"},"returnParameters":{"id":43728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43727,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:64","nodeType":"VariableDeclaration","scope":43738,"src":"5570:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43726,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43790,"nodeType":"FunctionDefinition","src":"5678:434:64","nodes":[],"body":{"id":43789,"nodeType":"Block","src":"5792:320:64","nodes":[],"statements":[{"assignments":[43748],"declarations":[{"constant":false,"id":43748,"mutability":"mutable","name":"size","nameLocation":"5809:4:64","nodeType":"VariableDeclaration","scope":43789,"src":"5802:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43747,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43753,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43749,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43741,"src":"5816:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"5816:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"5816:35:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":43752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:64"},{"expression":{"id":43760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43754,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43745,"src":"5863:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43758,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43748,"src":"5889:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":43757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:64","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":43755,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43756,"nodeType":"ArrayTypeName","src":"5879:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":43759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43761,"nodeType":"ExpressionStatement","src":"5863:31:64"},{"body":{"id":43785,"nodeType":"Block","src":"5936:144:64","statements":[{"expression":{"id":43779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":43769,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43745,"src":"5950:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43773,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43770,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"5960:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":43771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43777,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6008:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":43774,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43741,"src":"5969:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"5969:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:64","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":47546,"src":"5969:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":43778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43780,"nodeType":"ExpressionStatement","src":"5950:60:64"},{"id":43784,"nodeType":"UncheckedBlock","src":"6024:46:64","statements":[{"expression":{"id":43782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:64","subExpression":{"id":43781,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6054:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43783,"nodeType":"ExpressionStatement","src":"6052:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43766,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"5923:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43767,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43748,"src":"5928:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43786,"initializationExpression":{"assignments":[43763],"declarations":[{"constant":false,"id":43763,"mutability":"mutable","name":"i","nameLocation":"5916:1:64","nodeType":"VariableDeclaration","scope":43786,"src":"5909:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43762,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43765,"initialValue":{"hexValue":"31","id":43764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:64"},"nodeType":"ForStatement","src":"5904:176:64"},{"expression":{"id":43787,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43745,"src":"6096:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":43746,"id":43788,"nodeType":"Return","src":"6089:16:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:64","parameters":{"id":43742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43741,"mutability":"mutable","name":"validators","nameLocation":"5729:10:64","nodeType":"VariableDeclaration","scope":43790,"src":"5708:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43740,"nodeType":"UserDefinedTypeName","pathNode":{"id":43739,"name":"ValidatorSet","nameLocations":["5708:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5708:12:64"},"referencedDeclaration":48673,"src":"5708:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:64"},"returnParameters":{"id":43746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43745,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:64","nodeType":"VariableDeclaration","scope":43790,"src":"5764:26:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43743,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43744,"nodeType":"ArrayTypeName","src":"5764:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43835,"nodeType":"FunctionDefinition","src":"6183:418:64","nodes":[],"body":{"id":43834,"nodeType":"Block","src":"6288:313:64","nodes":[],"statements":[{"assignments":[43800],"declarations":[{"constant":false,"id":43800,"mutability":"mutable","name":"size","nameLocation":"6305:4:64","nodeType":"VariableDeclaration","scope":43834,"src":"6298:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43799,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43801,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6312:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"6312:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"6312:35:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":43804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:64"},{"body":{"id":43832,"nodeType":"Block","src":"6391:204:64","statements":[{"assignments":[43814],"declarations":[{"constant":false,"id":43814,"mutability":"mutable","name":"validator","nameLocation":"6413:9:64","nodeType":"VariableDeclaration","scope":43832,"src":"6405:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43813,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":43820,"initialValue":{"arguments":[{"id":43818,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"6464:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":43815,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6425:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"6425:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:64","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":47546,"src":"6425:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":43819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:64"},{"expression":{"id":43826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43821,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43797,"src":"6480:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":43823,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6503:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":43824,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43814,"src":"6515:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43822,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43686,"src":"6494:8:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":43825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43827,"nodeType":"ExpressionStatement","src":"6480:45:64"},{"id":43831,"nodeType":"UncheckedBlock","src":"6539:46:64","statements":[{"expression":{"id":43829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:64","subExpression":{"id":43828,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"6569:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43830,"nodeType":"ExpressionStatement","src":"6567:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43810,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"6378:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43811,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43800,"src":"6383:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43833,"initializationExpression":{"assignments":[43807],"declarations":[{"constant":false,"id":43807,"mutability":"mutable","name":"i","nameLocation":"6371:1:64","nodeType":"VariableDeclaration","scope":43833,"src":"6364:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43806,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43809,"initialValue":{"hexValue":"31","id":43808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:64"},"nodeType":"ForStatement","src":"6359:236:64"}]},"documentation":{"id":43791,"nodeType":"StructuredDocumentation","src":"6118:60:64","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:64","parameters":{"id":43795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43794,"mutability":"mutable","name":"validators","nameLocation":"6233:10:64","nodeType":"VariableDeclaration","scope":43835,"src":"6212:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43793,"nodeType":"UserDefinedTypeName","pathNode":{"id":43792,"name":"ValidatorSet","nameLocations":["6212:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"6212:12:64"},"referencedDeclaration":48673,"src":"6212:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:64"},"returnParameters":{"id":43798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43797,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:64","nodeType":"VariableDeclaration","scope":43835,"src":"6268:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43796,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43886,"nodeType":"FunctionDefinition","src":"6690:496:64","nodes":[],"body":{"id":43885,"nodeType":"Block","src":"6794:392:64","nodes":[],"statements":[{"assignments":[43845],"declarations":[{"constant":false,"id":43845,"mutability":"mutable","name":"size","nameLocation":"6811:4:64","nodeType":"VariableDeclaration","scope":43885,"src":"6804:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43844,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43850,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43846,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"6818:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43847,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"6818:28:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":43848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"6818:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":43849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:64"},{"body":{"id":43877,"nodeType":"Block","src":"6898:219:64","statements":[{"assignments":[43859],"declarations":[{"constant":false,"id":43859,"mutability":"mutable","name":"validator","nameLocation":"6920:9:64","nodeType":"VariableDeclaration","scope":43877,"src":"6912:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43858,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":43865,"initialValue":{"arguments":[{"id":43863,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43852,"src":"6972:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":43860,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"6932:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"6932:28:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":43862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:64","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":46928,"src":"6932:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":43864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:64"},{"expression":{"id":43871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43866,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"6988:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":43868,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"7025:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":43869,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43859,"src":"7037:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43867,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43738,"src":"7002:22:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":43870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43872,"nodeType":"ExpressionStatement","src":"6988:59:64"},{"id":43876,"nodeType":"UncheckedBlock","src":"7061:46:64","statements":[{"expression":{"id":43874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:64","subExpression":{"id":43873,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43852,"src":"7091:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43875,"nodeType":"ExpressionStatement","src":"7089:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43855,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43852,"src":"6885:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43856,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43845,"src":"6890:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43878,"initializationExpression":{"assignments":[43852],"declarations":[{"constant":false,"id":43852,"mutability":"mutable","name":"i","nameLocation":"6878:1:64","nodeType":"VariableDeclaration","scope":43878,"src":"6871:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43851,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43854,"initialValue":{"hexValue":"31","id":43853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:64"},"nodeType":"ForStatement","src":"6866:251:64"},{"expression":{"id":43883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43879,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"7126:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":43881,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"7168:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":43880,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43701,"src":"7140:27:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":43882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43884,"nodeType":"ExpressionStatement","src":"7126:53:64"}]},"documentation":{"id":43836,"nodeType":"StructuredDocumentation","src":"6607:78:64","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:64","parameters":{"id":43840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43839,"mutability":"mutable","name":"validators","nameLocation":"6739:10:64","nodeType":"VariableDeclaration","scope":43886,"src":"6718:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43838,"nodeType":"UserDefinedTypeName","pathNode":{"id":43837,"name":"ValidatorSet","nameLocations":["6718:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"6718:12:64"},"referencedDeclaration":48673,"src":"6718:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:64"},"returnParameters":{"id":43843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43842,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:64","nodeType":"VariableDeclaration","scope":43886,"src":"6774:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43841,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43956,"nodeType":"FunctionDefinition","src":"7339:612:64","nodes":[],"body":{"id":43955,"nodeType":"Block","src":"7498:453:64","nodes":[],"statements":[{"assignments":[43900],"declarations":[{"constant":false,"id":43900,"mutability":"mutable","name":"size","nameLocation":"7516:4:64","nodeType":"VariableDeclaration","scope":43955,"src":"7508:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43899,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43903,"initialValue":{"expression":{"id":43901,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7523:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:64","memberName":"length","nodeType":"MemberAccess","src":"7523:16:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:64"},{"assignments":[43908],"declarations":[{"constant":false,"id":43908,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:64","nodeType":"VariableDeclaration","scope":43955,"src":"7549:33:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":43906,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43907,"nodeType":"ArrayTypeName","src":"7549:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":43914,"initialValue":{"arguments":[{"id":43912,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43900,"src":"7599:4:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:64","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":43909,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43910,"nodeType":"ArrayTypeName","src":"7589:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":43913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:64"},{"body":{"id":43951,"nodeType":"Block","src":"7643:269:64","statements":[{"condition":{"id":43927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:64","subExpression":{"arguments":[{"id":43922,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43890,"src":"7680:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":43923,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7692:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43925,"indexExpression":{"id":43924,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7702:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43921,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43973,"src":"7662:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":43926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43935,"nodeType":"IfStatement","src":"7657:116:64","trueBody":{"id":43934,"nodeType":"Block","src":"7707:66:64","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":43929,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7745:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43931,"indexExpression":{"id":43930,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7755:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43928,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37058,"src":"7732:12:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":43932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43933,"nodeType":"RevertStatement","src":"7725:33:64"}]}},{"expression":{"id":43945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":43936,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43908,"src":"7786:16:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":43938,"indexExpression":{"id":43937,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7803:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43940,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43890,"src":"7817:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":43941,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7829:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43943,"indexExpression":{"id":43942,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7839:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43939,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43686,"src":"7808:8:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":43944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43946,"nodeType":"ExpressionStatement","src":"7786:56:64"},{"id":43950,"nodeType":"UncheckedBlock","src":"7856:46:64","statements":[{"expression":{"id":43948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:64","subExpression":{"id":43947,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7886:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43949,"nodeType":"ExpressionStatement","src":"7884:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43918,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7631:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43919,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43900,"src":"7635:4:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43952,"initializationExpression":{"assignments":[43916],"declarations":[{"constant":false,"id":43916,"mutability":"mutable","name":"i","nameLocation":"7628:1:64","nodeType":"VariableDeclaration","scope":43952,"src":"7620:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43915,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43917,"nodeType":"VariableDeclarationStatement","src":"7620:9:64"},"nodeType":"ForStatement","src":"7615:297:64"},{"expression":{"id":43953,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43908,"src":"7928:16:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":43898,"id":43954,"nodeType":"Return","src":"7921:23:64"}]},"documentation":{"id":43887,"nodeType":"StructuredDocumentation","src":"7193:141:64","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:64","parameters":{"id":43894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43890,"mutability":"mutable","name":"validators","nameLocation":"7404:10:64","nodeType":"VariableDeclaration","scope":43956,"src":"7383:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43889,"nodeType":"UserDefinedTypeName","pathNode":{"id":43888,"name":"ValidatorSet","nameLocations":["7383:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"7383:12:64"},"referencedDeclaration":48673,"src":"7383:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43893,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:64","nodeType":"VariableDeclaration","scope":43956,"src":"7424:26:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43891,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43892,"nodeType":"ArrayTypeName","src":"7424:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:64"},"returnParameters":{"id":43898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43956,"src":"7480:16:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":43895,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43896,"nodeType":"ArrayTypeName","src":"7480:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43973,"nodeType":"FunctionDefinition","src":"7957:167:64","nodes":[],"body":{"id":43972,"nodeType":"Block","src":"8059:65:64","nodes":[],"statements":[{"expression":{"arguments":[{"id":43969,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43961,"src":"8107:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":43966,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43959,"src":"8076:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"8076:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"8076:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":43970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":43965,"id":43971,"nodeType":"Return","src":"8069:48:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:64","parameters":{"id":43962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43959,"mutability":"mutable","name":"self","nameLocation":"8005:4:64","nodeType":"VariableDeclaration","scope":43973,"src":"7984:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43958,"nodeType":"UserDefinedTypeName","pathNode":{"id":43957,"name":"ValidatorSet","nameLocations":["7984:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"7984:12:64"},"referencedDeclaration":48673,"src":"7984:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43961,"mutability":"mutable","name":"validator","nameLocation":"8019:9:64","nodeType":"VariableDeclaration","scope":43973,"src":"8011:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43960,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:64"},"returnParameters":{"id":43965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43973,"src":"8053:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43963,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43994,"nodeType":"FunctionDefinition","src":"8165:176:64","nodes":[],"body":{"id":43993,"nodeType":"Block","src":"8272:69:64","nodes":[],"statements":[{"expression":{"id":43991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":43984,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43977,"src":"8282:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"8282:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43988,"indexExpression":{"id":43986,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43979,"src":"8304:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"8282:41:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43990,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43981,"src":"8326:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":43992,"nodeType":"ExpressionStatement","src":"8282:52:64"}]},"documentation":{"id":43974,"nodeType":"StructuredDocumentation","src":"8130:30:64","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:64","parameters":{"id":43982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43977,"mutability":"mutable","name":"validators","nameLocation":"8207:10:64","nodeType":"VariableDeclaration","scope":43994,"src":"8186:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43976,"nodeType":"UserDefinedTypeName","pathNode":{"id":43975,"name":"ValidatorSet","nameLocations":["8186:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"8186:12:64"},"referencedDeclaration":48673,"src":"8186:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43979,"mutability":"mutable","name":"validator","nameLocation":"8227:9:64","nodeType":"VariableDeclaration","scope":43994,"src":"8219:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43978,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43981,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:64","nodeType":"VariableDeclaration","scope":43994,"src":"8238:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":43980,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:64"},"returnParameters":{"id":43983,"nodeType":"ParameterList","parameters":[],"src":"8272:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44015,"nodeType":"FunctionDefinition","src":"8648:175:64","nodes":[],"body":{"id":44014,"nodeType":"Block","src":"8748:75:64","nodes":[],"statements":[{"expression":{"id":44012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44005,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43998,"src":"8758:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"8758:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44009,"indexExpression":{"id":44007,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44000,"src":"8780:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"8758:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44011,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44002,"src":"8810:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44013,"nodeType":"ExpressionStatement","src":"8758:58:64"}]},"documentation":{"id":43995,"nodeType":"StructuredDocumentation","src":"8580:63:64","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:64","parameters":{"id":44003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43998,"mutability":"mutable","name":"validators","nameLocation":"8692:10:64","nodeType":"VariableDeclaration","scope":44015,"src":"8671:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43997,"nodeType":"UserDefinedTypeName","pathNode":{"id":43996,"name":"ValidatorSet","nameLocations":["8671:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"8671:12:64"},"referencedDeclaration":48673,"src":"8671:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44000,"mutability":"mutable","name":"validator","nameLocation":"8712:9:64","nodeType":"VariableDeclaration","scope":44015,"src":"8704:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43999,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44002,"mutability":"mutable","name":"amount","nameLocation":"8731:6:64","nodeType":"VariableDeclaration","scope":44015,"src":"8723:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44001,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:64"},"returnParameters":{"id":44004,"nodeType":"ParameterList","parameters":[],"src":"8748:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44056,"nodeType":"FunctionDefinition","src":"8895:364:64","nodes":[],"body":{"id":44055,"nodeType":"Block","src":"8996:263:64","nodes":[],"statements":[{"assignments":[44027],"declarations":[{"constant":false,"id":44027,"mutability":"mutable","name":"total","nameLocation":"9014:5:64","nodeType":"VariableDeclaration","scope":44055,"src":"9006:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44026,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44033,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44028,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44019,"src":"9022:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9022:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44031,"indexExpression":{"id":44030,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44021,"src":"9044:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"9022:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44034,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"9084:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44035,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44023,"src":"9092:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44041,"nodeType":"IfStatement","src":"9080:81:64","trueBody":{"id":44040,"nodeType":"Block","src":"9100:61:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44037,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37078,"src":"9121:27:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44039,"nodeType":"RevertStatement","src":"9114:36:64"}]}},{"expression":{"id":44044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44042,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"9171:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44043,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44023,"src":"9180:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44045,"nodeType":"ExpressionStatement","src":"9171:15:64"},{"expression":{"id":44053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44046,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44019,"src":"9196:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9196:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44050,"indexExpression":{"id":44048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44021,"src":"9218:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"9196:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44052,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"9247:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44054,"nodeType":"ExpressionStatement","src":"9196:56:64"}]},"documentation":{"id":44016,"nodeType":"StructuredDocumentation","src":"8829:61:64","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:64","parameters":{"id":44024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44019,"mutability":"mutable","name":"validators","nameLocation":"8940:10:64","nodeType":"VariableDeclaration","scope":44056,"src":"8919:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44018,"nodeType":"UserDefinedTypeName","pathNode":{"id":44017,"name":"ValidatorSet","nameLocations":["8919:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"8919:12:64"},"referencedDeclaration":48673,"src":"8919:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44021,"mutability":"mutable","name":"validator","nameLocation":"8960:9:64","nodeType":"VariableDeclaration","scope":44056,"src":"8952:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44020,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44023,"mutability":"mutable","name":"amount","nameLocation":"8979:6:64","nodeType":"VariableDeclaration","scope":44056,"src":"8971:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44022,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:64"},"returnParameters":{"id":44025,"nodeType":"ParameterList","parameters":[],"src":"8996:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44109,"nodeType":"FunctionDefinition","src":"9330:540:64","nodes":[],"body":{"id":44108,"nodeType":"Block","src":"9431:439:64","nodes":[],"statements":[{"assignments":[44068],"declarations":[{"constant":false,"id":44068,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:64","nodeType":"VariableDeclaration","scope":44108,"src":"9441:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44067,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44074,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9465:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9465:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44072,"indexExpression":{"id":44071,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9481:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:64","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":48636,"src":"9465:41:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:64"},{"expression":{"id":44082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44075,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9516:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9516:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44079,"indexExpression":{"id":44077,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9532:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:64","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":48636,"src":"9516:41:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44081,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9560:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44083,"nodeType":"ExpressionStatement","src":"9516:49:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44084,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"9580:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44085,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9597:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44089,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"9645:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44090,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9661:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44105,"nodeType":"Block","src":"9771:93:64","statements":[{"expression":{"arguments":[{"id":44100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9808:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44101,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9825:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44102,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9846:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44099,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44593,"src":"9785:15:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:64","9814:9:64","9836:8:64"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44104,"nodeType":"ExpressionStatement","src":"9785:68:64"}]},"id":44106,"nodeType":"IfStatement","src":"9641:223:64","trueBody":{"id":44098,"nodeType":"Block","src":"9668:97:64","statements":[{"expression":{"arguments":[{"id":44093,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9707:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44094,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9726:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44095,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9747:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44092,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44382,"src":"9682:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:64","9713:11:64","9737:8:64"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44097,"nodeType":"ExpressionStatement","src":"9682:72:64"}]}},"id":44107,"nodeType":"IfStatement","src":"9576:288:64","trueBody":{"id":44088,"nodeType":"Block","src":"9604:31:64","statements":[{"functionReturnParameters":44066,"id":44087,"nodeType":"Return","src":"9618:7:64"}]}}]},"documentation":{"id":44057,"nodeType":"StructuredDocumentation","src":"9265:60:64","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:64","parameters":{"id":44065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44060,"mutability":"mutable","name":"self","nameLocation":"9382:4:64","nodeType":"VariableDeclaration","scope":44109,"src":"9361:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44059,"nodeType":"UserDefinedTypeName","pathNode":{"id":44058,"name":"ValidatorSet","nameLocations":["9361:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"9361:12:64"},"referencedDeclaration":48673,"src":"9361:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44062,"mutability":"mutable","name":"validator","nameLocation":"9396:9:64","nodeType":"VariableDeclaration","scope":44109,"src":"9388:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44061,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44064,"mutability":"mutable","name":"power","nameLocation":"9415:5:64","nodeType":"VariableDeclaration","scope":44109,"src":"9407:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44063,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:64"},"returnParameters":{"id":44066,"nodeType":"ParameterList","parameters":[],"src":"9431:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44151,"nodeType":"FunctionDefinition","src":"9876:404:64","nodes":[],"body":{"id":44150,"nodeType":"Block","src":"9971:309:64","nodes":[],"statements":[{"assignments":[44120],"declarations":[{"constant":false,"id":44120,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:64","nodeType":"VariableDeclaration","scope":44150,"src":"9981:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44119,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44128,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10005:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10005:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44124,"indexExpression":{"id":44123,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44114,"src":"10021:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10005:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44126,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44116,"src":"10054:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:64"},{"expression":{"id":44136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44129,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10070:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10070:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44133,"indexExpression":{"id":44131,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44114,"src":"10086:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10070:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44135,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"10119:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44137,"nodeType":"ExpressionStatement","src":"10070:62:64"},{"expression":{"id":44142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44138,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10143:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:64","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48658,"src":"10143:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44141,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44116,"src":"10176:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44143,"nodeType":"ExpressionStatement","src":"10143:39:64"},{"expression":{"arguments":[{"id":44145,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10218:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44146,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44114,"src":"10237:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44147,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"10258:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44144,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44382,"src":"10193:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:64","10224:11:64","10248:8:64"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44149,"nodeType":"ExpressionStatement","src":"10193:80:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:64","parameters":{"id":44117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44112,"mutability":"mutable","name":"self","nameLocation":"9921:4:64","nodeType":"VariableDeclaration","scope":44151,"src":"9900:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44111,"nodeType":"UserDefinedTypeName","pathNode":{"id":44110,"name":"ValidatorSet","nameLocations":["9900:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"9900:12:64"},"referencedDeclaration":48673,"src":"9900:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44114,"mutability":"mutable","name":"validator","nameLocation":"9935:9:64","nodeType":"VariableDeclaration","scope":44151,"src":"9927:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44113,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44116,"mutability":"mutable","name":"amount","nameLocation":"9954:6:64","nodeType":"VariableDeclaration","scope":44151,"src":"9946:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44115,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:64"},"returnParameters":{"id":44118,"nodeType":"ParameterList","parameters":[],"src":"9971:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44217,"nodeType":"FunctionDefinition","src":"10286:616:64","nodes":[],"body":{"id":44216,"nodeType":"Block","src":"10382:520:64","nodes":[],"statements":[{"assignments":[44162],"declarations":[{"constant":false,"id":44162,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:64","nodeType":"VariableDeclaration","scope":44216,"src":"10392:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44161,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44170,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44163,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10416:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10416:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44166,"indexExpression":{"id":44165,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10432:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10416:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44168,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44158,"src":"10465:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:64"},{"assignments":[44172],"declarations":[{"constant":false,"id":44172,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:64","nodeType":"VariableDeclaration","scope":44216,"src":"10481:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44171,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44178,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10507:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10507:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44176,"indexExpression":{"id":44175,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10523:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"10507:42:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:64"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44179,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44162,"src":"10564:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44182,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44172,"src":"10586:15:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44202,"nodeType":"Block","src":"10672:87:64","statements":[{"expression":{"id":44200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44193,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10686:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10686:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44197,"indexExpression":{"id":44195,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10702:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10686:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44199,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44162,"src":"10735:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44201,"nodeType":"ExpressionStatement","src":"10686:62:64"}]},"id":44203,"nodeType":"IfStatement","src":"10560:199:64","trueBody":{"id":44192,"nodeType":"Block","src":"10608:58:64","statements":[{"expression":{"id":44190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:64","subExpression":{"baseExpression":{"expression":{"id":44186,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10629:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10629:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44189,"indexExpression":{"id":44188,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10645:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44191,"nodeType":"ExpressionStatement","src":"10622:33:64"}]}},{"expression":{"arguments":[{"id":44205,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10792:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44206,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10809:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44207,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44162,"src":"10830:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44204,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44593,"src":"10769:15:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:64","10798:9:64","10820:8:64"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44209,"nodeType":"ExpressionStatement","src":"10769:76:64"},{"expression":{"id":44214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44210,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10856:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:64","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48658,"src":"10856:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44213,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44158,"src":"10889:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44215,"nodeType":"ExpressionStatement","src":"10856:39:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:64","parameters":{"id":44159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44154,"mutability":"mutable","name":"self","nameLocation":"10332:4:64","nodeType":"VariableDeclaration","scope":44217,"src":"10311:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44153,"nodeType":"UserDefinedTypeName","pathNode":{"id":44152,"name":"ValidatorSet","nameLocations":["10311:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"10311:12:64"},"referencedDeclaration":48673,"src":"10311:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44156,"mutability":"mutable","name":"validator","nameLocation":"10346:9:64","nodeType":"VariableDeclaration","scope":44217,"src":"10338:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44155,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44158,"mutability":"mutable","name":"amount","nameLocation":"10365:6:64","nodeType":"VariableDeclaration","scope":44217,"src":"10357:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44157,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:64"},"returnParameters":{"id":44160,"nodeType":"ParameterList","parameters":[],"src":"10382:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44382,"nodeType":"FunctionDefinition","src":"11008:2209:64","nodes":[],"body":{"id":44381,"nodeType":"Block","src":"11110:2107:64","nodes":[],"statements":[{"condition":{"arguments":[{"id":44231,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11155:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11124:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11124:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"11124:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44249,"nodeType":"IfStatement","src":"11120:226:64","trueBody":{"id":44248,"nodeType":"Block","src":"11169:177:64","statements":[{"expression":{"arguments":[{"id":44238,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11223:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44239,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11229:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44233,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11183:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11183:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:64","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47820,"src":"11183:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44241,"nodeType":"ExpressionStatement","src":"11183:58:64"},{"eventCall":{"arguments":[{"id":44243,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11293:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44244,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"11306:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44242,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43618,"src":"11260:32:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44246,"nodeType":"EmitStatement","src":"11255:60:64"},{"functionReturnParameters":44227,"id":44247,"nodeType":"Return","src":"11329:7:64"}]}},{"assignments":[44251],"declarations":[{"constant":false,"id":44251,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:64","nodeType":"VariableDeclaration","scope":44381,"src":"11408:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44250,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44254,"initialValue":{"expression":{"id":44252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11429:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:64","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":48655,"src":"11429:16:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:64"},{"assignments":[44256],"declarations":[{"constant":false,"id":44256,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:64","nodeType":"VariableDeclaration","scope":44381,"src":"11455:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44255,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44261,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11475:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11475:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"11475:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44262,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44251,"src":"11520:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44263,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44256,"src":"11534:10:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44281,"nodeType":"IfStatement","src":"11516:262:64","trueBody":{"id":44280,"nodeType":"Block","src":"11546:232:64","statements":[{"expression":{"arguments":[{"id":44270,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11669:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44271,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11675:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11640:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11640:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"11640:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44273,"nodeType":"ExpressionStatement","src":"11640:47:64"},{"eventCall":{"arguments":[{"id":44275,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11725:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44276,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"11738:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44274,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43630,"src":"11706:18:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44278,"nodeType":"EmitStatement","src":"11701:46:64"},{"functionReturnParameters":44227,"id":44279,"nodeType":"Return","src":"11761:7:64"}]}},{"assignments":[44283,44285],"declarations":[{"constant":false,"id":44283,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:64","nodeType":"VariableDeclaration","scope":44381,"src":"12317:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44282,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44285,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:64","nodeType":"VariableDeclaration","scope":44381,"src":"12337:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44284,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44291,"initialValue":{"arguments":[{"id":44289,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12389:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44286,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12363:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"12363:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:64","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"12363:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44292,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44285,"src":"12408:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44293,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"12425:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44344,"nodeType":"IfStatement","src":"12404:452:64","trueBody":{"id":44343,"nodeType":"Block","src":"12435:421:64","statements":[{"expression":{"arguments":[{"id":44300,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12475:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44295,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12449:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"12449:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47693,"src":"12449:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44302,"nodeType":"ExpressionStatement","src":"12449:31:64"},{"condition":{"arguments":[{"id":44306,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12531:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44303,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12499:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12499:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"12499:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44318,"nodeType":"IfStatement","src":"12495:140:64","trueBody":{"id":44317,"nodeType":"Block","src":"12545:90:64","statements":[{"expression":{"arguments":[{"id":44313,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12602:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44314,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12608:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44308,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12563:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12563:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:64","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":47167,"src":"12563:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44316,"nodeType":"ExpressionStatement","src":"12563:57:64"}]}},{"expression":{"arguments":[{"id":44324,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12678:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44325,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12684:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12649:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"12649:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"12649:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44327,"nodeType":"ExpressionStatement","src":"12649:47:64"},{"expression":{"arguments":[{"id":44333,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12740:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44334,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44283,"src":"12746:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44328,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12710:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12710:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47008,"src":"12710:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44336,"nodeType":"ExpressionStatement","src":"12710:47:64"},{"eventCall":{"arguments":[{"id":44338,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44283,"src":"12801:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44339,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12813:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44337,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43642,"src":"12777:23:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":44340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44341,"nodeType":"EmitStatement","src":"12772:53:64"},{"functionReturnParameters":44227,"id":44342,"nodeType":"Return","src":"12839:7:64"}]}},{"condition":{"arguments":[{"id":44348,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12902:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44345,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12870:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12870:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"12870:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44366,"nodeType":"IfStatement","src":"12866:229:64","trueBody":{"id":44365,"nodeType":"Block","src":"12916:179:64","statements":[{"expression":{"arguments":[{"id":44355,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12971:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44356,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12977:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44350,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12930:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12930:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44354,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:64","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47202,"src":"12930:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44358,"nodeType":"ExpressionStatement","src":"12930:59:64"},{"eventCall":{"arguments":[{"id":44360,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"13042:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44361,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"13055:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44359,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"13008:33:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44363,"nodeType":"EmitStatement","src":"13003:61:64"},{"functionReturnParameters":44227,"id":44364,"nodeType":"Return","src":"13078:7:64"}]}},{"expression":{"arguments":[{"id":44372,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"13135:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44373,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"13141:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"13105:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13105:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47008,"src":"13105:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44375,"nodeType":"ExpressionStatement","src":"13105:48:64"},{"eventCall":{"arguments":[{"id":44377,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"13188:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44378,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"13201:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44376,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43636,"src":"13168:19:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44380,"nodeType":"EmitStatement","src":"13163:47:64"}]},"documentation":{"id":44218,"nodeType":"StructuredDocumentation","src":"10908:95:64","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:64","parameters":{"id":44226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44221,"mutability":"mutable","name":"self","nameLocation":"11056:4:64","nodeType":"VariableDeclaration","scope":44382,"src":"11035:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44220,"nodeType":"UserDefinedTypeName","pathNode":{"id":44219,"name":"ValidatorSet","nameLocations":["11035:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"11035:12:64"},"referencedDeclaration":48673,"src":"11035:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44223,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:64","nodeType":"VariableDeclaration","scope":44382,"src":"11062:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44222,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44225,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:64","nodeType":"VariableDeclaration","scope":44382,"src":"11083:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44224,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:64"},"returnParameters":{"id":44227,"nodeType":"ParameterList","parameters":[],"src":"11110:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44593,"nodeType":"FunctionDefinition","src":"13320:2014:64","nodes":[],"body":{"id":44592,"nodeType":"Block","src":"13418:1916:64","nodes":[],"statements":[{"condition":{"arguments":[{"id":44396,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13464:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44393,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13432:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13432:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"13432:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44433,"nodeType":"IfStatement","src":"13428:421:64","trueBody":{"id":44432,"nodeType":"Block","src":"13476:373:64","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44398,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"13494:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44416,"nodeType":"IfStatement","src":"13490:185:64","trueBody":{"id":44415,"nodeType":"Block","src":"13509:166:64","statements":[{"expression":{"arguments":[{"id":44406,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13566:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44407,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13572:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44401,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13527:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13527:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:64","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":47167,"src":"13527:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44409,"nodeType":"ExpressionStatement","src":"13527:55:64"},{"eventCall":{"arguments":[{"id":44411,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13626:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44410,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43650,"src":"13605:20:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":44412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44413,"nodeType":"EmitStatement","src":"13600:36:64"},{"functionReturnParameters":44392,"id":44414,"nodeType":"Return","src":"13654:7:64"}]}},{"expression":{"arguments":[{"id":44422,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13729:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44423,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13735:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44417,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13688:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13688:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:64","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47237,"src":"13688:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44425,"nodeType":"ExpressionStatement","src":"13688:57:64"},{"eventCall":{"arguments":[{"id":44427,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13798:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44428,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"13809:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44426,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"13764:33:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44430,"nodeType":"EmitStatement","src":"13759:59:64"},{"functionReturnParameters":44392,"id":44431,"nodeType":"Return","src":"13832:7:64"}]}},{"condition":{"id":44439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:64","subExpression":{"arguments":[{"id":44437,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13919:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44434,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13888:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"13888:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"13888:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44444,"nodeType":"IfStatement","src":"13883:106:64","trueBody":{"id":44443,"nodeType":"Block","src":"13931:58:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44440,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36936,"src":"13952:24:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44442,"nodeType":"RevertStatement","src":"13945:33:64"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44445,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"14053:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44503,"nodeType":"IfStatement","src":"14049:508:64","trueBody":{"id":44502,"nodeType":"Block","src":"14068:489:64","statements":[{"expression":{"arguments":[{"id":44453,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14120:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44454,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"14126:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44448,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14082:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14082:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:64","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":47785,"src":"14082:37:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44456,"nodeType":"ExpressionStatement","src":"14082:54:64"},{"eventCall":{"arguments":[{"id":44458,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"14175:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44457,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43646,"src":"14155:19:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44460,"nodeType":"EmitStatement","src":"14150:35:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44461,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14204:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14204:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"14204:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":44465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44500,"nodeType":"IfStatement","src":"14200:326:64","trueBody":{"id":44499,"nodeType":"Block","src":"14243:283:64","statements":[{"assignments":[44468,44470],"declarations":[{"constant":false,"id":44468,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:64","nodeType":"VariableDeclaration","scope":44499,"src":"14262:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44467,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44470,"mutability":"mutable","name":"power","nameLocation":"14292:5:64","nodeType":"VariableDeclaration","scope":44499,"src":"14284:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44469,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44476,"initialValue":{"arguments":[{"id":44474,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14328:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44471,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14301:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14301:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:64","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":47278,"src":"14301:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:64"},{"expression":{"arguments":[{"id":44482,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14378:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44477,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14351:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14351:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47075,"src":"14351:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44484,"nodeType":"ExpressionStatement","src":"14351:32:64"},{"expression":{"arguments":[{"id":44490,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14430:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44491,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44468,"src":"14436:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44485,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14401:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14401:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"14401:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44493,"nodeType":"ExpressionStatement","src":"14401:48:64"},{"eventCall":{"arguments":[{"id":44495,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44468,"src":"14491:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44496,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44470,"src":"14505:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44494,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43630,"src":"14472:18:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44498,"nodeType":"EmitStatement","src":"14467:44:64"}]}},{"functionReturnParameters":44392,"id":44501,"nodeType":"Return","src":"14540:7:64"}]}},{"expression":{"arguments":[{"id":44509,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14607:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"14613:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44504,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14567:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14567:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:64","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47855,"src":"14567:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44512,"nodeType":"ExpressionStatement","src":"14567:56:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44513,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14638:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14638:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"14638:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44521,"nodeType":"IfStatement","src":"14634:74:64","trueBody":{"id":44520,"nodeType":"Block","src":"14677:31:64","statements":[{"functionReturnParameters":44392,"id":44519,"nodeType":"Return","src":"14691:7:64"}]}},{"assignments":[44523,44525],"declarations":[{"constant":false,"id":44523,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:64","nodeType":"VariableDeclaration","scope":44592,"src":"14719:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44522,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44525,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:64","nodeType":"VariableDeclaration","scope":44592,"src":"14741:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44524,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44531,"initialValue":{"arguments":[{"id":44529,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14793:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44526,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14767:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14767:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:64","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"14767:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:64"},{"assignments":[44533,44535],"declarations":[{"constant":false,"id":44533,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:64","nodeType":"VariableDeclaration","scope":44592,"src":"14809:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44532,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44535,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:64","nodeType":"VariableDeclaration","scope":44592,"src":"14832:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44534,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44541,"initialValue":{"arguments":[{"id":44539,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14886:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44536,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14859:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14859:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:64","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":47278,"src":"14859:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44542,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44525,"src":"14905:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44543,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44535,"src":"14922:15:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44586,"nodeType":"IfStatement","src":"14901:358:64","trueBody":{"id":44585,"nodeType":"Block","src":"14939:320:64","statements":[{"expression":{"arguments":[{"id":44550,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14979:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44545,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14953:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14953:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47693,"src":"14953:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44552,"nodeType":"ExpressionStatement","src":"14953:31:64"},{"expression":{"arguments":[{"id":44558,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15025:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44553,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14998:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14998:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47075,"src":"14998:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44560,"nodeType":"ExpressionStatement","src":"14998:32:64"},{"expression":{"arguments":[{"id":44566,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15073:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44567,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44533,"src":"15079:13:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44561,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15044:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"15044:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"15044:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44569,"nodeType":"ExpressionStatement","src":"15044:49:64"},{"expression":{"arguments":[{"id":44575,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15137:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44576,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44523,"src":"15143:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44570,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15107:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"15107:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47008,"src":"15107:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44578,"nodeType":"ExpressionStatement","src":"15107:49:64"},{"eventCall":{"arguments":[{"id":44580,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44523,"src":"15200:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44581,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44533,"src":"15214:13:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44579,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43642,"src":"15176:23:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":44582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44583,"nodeType":"EmitStatement","src":"15171:57:64"},{"functionReturnParameters":44392,"id":44584,"nodeType":"Return","src":"15242:7:64"}]}},{"eventCall":{"arguments":[{"id":44588,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"15307:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44589,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"15318:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44587,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43618,"src":"15274:32:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44591,"nodeType":"EmitStatement","src":"15269:58:64"}]},"documentation":{"id":44383,"nodeType":"StructuredDocumentation","src":"13223:92:64","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:64","parameters":{"id":44391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44386,"mutability":"mutable","name":"self","nameLocation":"13366:4:64","nodeType":"VariableDeclaration","scope":44593,"src":"13345:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44385,"nodeType":"UserDefinedTypeName","pathNode":{"id":44384,"name":"ValidatorSet","nameLocations":["13345:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"13345:12:64"},"referencedDeclaration":48673,"src":"13345:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44388,"mutability":"mutable","name":"validator","nameLocation":"13380:9:64","nodeType":"VariableDeclaration","scope":44593,"src":"13372:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44387,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44390,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:64","nodeType":"VariableDeclaration","scope":44593,"src":"13391:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44389,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:64"},"returnParameters":{"id":44392,"nodeType":"ParameterList","parameters":[],"src":"13418:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":43604,"nodeType":"StructuredDocumentation","src":"3860:40:64","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[44594],"name":"LibValidatorSet","nameLocation":"3908:15:64","scope":45729,"usedErrors":[]},{"id":45464,"nodeType":"ContractDefinition","src":"15338:10289:64","nodes":[{"id":44598,"nodeType":"UsingForDirective","src":"15363:53:64","nodes":[],"global":false,"libraryName":{"id":44595,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":43603,"src":"15369:22:64"},"typeName":{"id":44597,"nodeType":"UserDefinedTypeName","pathNode":{"id":44596,"name":"StakingReleaseQueue","nameLocations":["15396:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"15396:19:64"},"referencedDeclaration":48633,"src":"15396:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":44602,"nodeType":"UsingForDirective","src":"15421:47:64","nodes":[],"global":false,"libraryName":{"id":44599,"name":"LibStakingChangeLog","nameLocations":["15427:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":45966,"src":"15427:19:64"},"typeName":{"id":44601,"nodeType":"UserDefinedTypeName","pathNode":{"id":44600,"name":"StakingChangeLog","nameLocations":["15451:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"15451:16:64"},"referencedDeclaration":48606,"src":"15451:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":44606,"nodeType":"UsingForDirective","src":"15473:39:64","nodes":[],"global":false,"libraryName":{"id":44603,"name":"LibValidatorSet","nameLocations":["15479:15:64"],"nodeType":"IdentifierPath","referencedDeclaration":44594,"src":"15479:15:64"},"typeName":{"id":44605,"nodeType":"UserDefinedTypeName","pathNode":{"id":44604,"name":"ValidatorSet","nameLocations":["15499:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"15499:12:64"},"referencedDeclaration":48673,"src":"15499:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":44610,"nodeType":"UsingForDirective","src":"15517:25:64","nodes":[],"global":false,"libraryName":{"id":44607,"name":"LibMaxPQ","nameLocations":["15523:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":47494,"src":"15523:8:64"},"typeName":{"id":44609,"nodeType":"UserDefinedTypeName","pathNode":{"id":44608,"name":"MaxPQ","nameLocations":["15536:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"15536:5:64"},"referencedDeclaration":46889,"src":"15536:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44614,"nodeType":"UsingForDirective","src":"15547:25:64","nodes":[],"global":false,"libraryName":{"id":44611,"name":"LibMinPQ","nameLocations":["15553:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":48113,"src":"15553:8:64"},"typeName":{"id":44613,"nodeType":"UserDefinedTypeName","pathNode":{"id":44612,"name":"MinPQ","nameLocations":["15566:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"15566:5:64"},"referencedDeclaration":47507,"src":"15566:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}}},{"id":44617,"nodeType":"UsingForDirective","src":"15577:34:64","nodes":[],"global":false,"libraryName":{"id":44615,"name":"Address","nameLocations":["15583:7:64"],"nodeType":"IdentifierPath","referencedDeclaration":32409,"src":"15583:7:64"},"typeName":{"id":44616,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44620,"nodeType":"VariableDeclaration","src":"15617:57:64","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:64","scope":45464,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":44618,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":44619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":44624,"nodeType":"EventDefinition","src":"15681:50:64","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:64","parameters":{"id":44623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44622,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:64","nodeType":"VariableDeclaration","scope":44624,"src":"15716:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":44621,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:64"}},{"id":44630,"nodeType":"EventDefinition","src":"15736:59:64","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:64","parameters":{"id":44629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44626,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:64","nodeType":"VariableDeclaration","scope":44630,"src":"15760:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44625,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44628,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:64","nodeType":"VariableDeclaration","scope":44630,"src":"15779:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44627,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:64"}},{"id":44651,"nodeType":"FunctionDefinition","src":"15846:221:64","nodes":[],"body":{"id":44650,"nodeType":"Block","src":"15934:133:64","nodes":[],"statements":[{"assignments":[44639],"declarations":[{"constant":false,"id":44639,"mutability":"mutable","name":"s","nameLocation":"15971:1:64","nodeType":"VariableDeclaration","scope":44650,"src":"15944:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44638,"nodeType":"UserDefinedTypeName","pathNode":{"id":44637,"name":"SubnetActorStorage","nameLocations":["15944:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"15944:18:64"},"referencedDeclaration":46085,"src":"15944:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44643,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44640,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"15975:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"15975:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:64"},{"expression":{"arguments":[{"id":44647,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44632,"src":"16050:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44644,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44639,"src":"16026:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16026:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:64","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":43686,"src":"16026:23:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44636,"id":44649,"nodeType":"Return","src":"16019:41:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:64","parameters":{"id":44633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44632,"mutability":"mutable","name":"validator","nameLocation":"15881:9:64","nodeType":"VariableDeclaration","scope":44651,"src":"15873:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44631,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:64"},"returnParameters":{"id":44636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44635,"mutability":"mutable","name":"power","nameLocation":"15927:5:64","nodeType":"VariableDeclaration","scope":44651,"src":"15919:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44634,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44674,"nodeType":"FunctionDefinition","src":"16136:225:64","nodes":[],"body":{"id":44673,"nodeType":"Block","src":"16211:150:64","nodes":[],"statements":[{"assignments":[44661],"declarations":[{"constant":false,"id":44661,"mutability":"mutable","name":"s","nameLocation":"16248:1:64","nodeType":"VariableDeclaration","scope":44673,"src":"16221:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44660,"nodeType":"UserDefinedTypeName","pathNode":{"id":44659,"name":"SubnetActorStorage","nameLocations":["16221:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"16221:18:64"},"referencedDeclaration":46085,"src":"16221:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44665,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44662,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"16252:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"16252:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:64"},{"expression":{"arguments":[{"id":44670,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44654,"src":"16344:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":44666,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44661,"src":"16303:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16303:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"16303:31:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"16303:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44658,"id":44672,"nodeType":"Return","src":"16296:58:64"}]},"documentation":{"id":44652,"nodeType":"StructuredDocumentation","src":"16073:58:64","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:64","parameters":{"id":44655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44654,"mutability":"mutable","name":"validator","nameLocation":"16171:9:64","nodeType":"VariableDeclaration","scope":44674,"src":"16163:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44653,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:64"},"returnParameters":{"id":44658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44657,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44674,"src":"16205:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44656,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44697,"nodeType":"FunctionDefinition","src":"16430:227:64","nodes":[],"body":{"id":44696,"nodeType":"Block","src":"16506:151:64","nodes":[],"statements":[{"assignments":[44684],"declarations":[{"constant":false,"id":44684,"mutability":"mutable","name":"s","nameLocation":"16543:1:64","nodeType":"VariableDeclaration","scope":44696,"src":"16516:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44683,"nodeType":"UserDefinedTypeName","pathNode":{"id":44682,"name":"SubnetActorStorage","nameLocations":["16516:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"16516:18:64"},"referencedDeclaration":46085,"src":"16516:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44688,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44685,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"16547:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"16547:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:64"},{"expression":{"arguments":[{"id":44693,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44677,"src":"16640:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":44689,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44684,"src":"16598:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16598:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"16598:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"16598:41:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44681,"id":44695,"nodeType":"Return","src":"16591:59:64"}]},"documentation":{"id":44675,"nodeType":"StructuredDocumentation","src":"16367:58:64","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:64","parameters":{"id":44678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44677,"mutability":"mutable","name":"validator","nameLocation":"16466:9:64","nodeType":"VariableDeclaration","scope":44697,"src":"16458:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44676,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:64"},"returnParameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44697,"src":"16500:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44679,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44722,"nodeType":"FunctionDefinition","src":"16721:280:64","nodes":[],"body":{"id":44721,"nodeType":"Block","src":"16788:213:64","nodes":[],"statements":[{"assignments":[44707],"declarations":[{"constant":false,"id":44707,"mutability":"mutable","name":"s","nameLocation":"16825:1:64","nodeType":"VariableDeclaration","scope":44721,"src":"16798:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44706,"nodeType":"UserDefinedTypeName","pathNode":{"id":44705,"name":"SubnetActorStorage","nameLocations":["16798:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"16798:18:64"},"referencedDeclaration":46085,"src":"16798:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44711,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44708,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"16829:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16851:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"16829:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16829:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16798:65:64"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":44712,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44707,"src":"16937:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16939:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16937:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16952:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"16937:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44716,"indexExpression":{"id":44715,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44700,"src":"16963:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16937:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16974:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"16937:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":44718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16993:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16937:57:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44704,"id":44720,"nodeType":"Return","src":"16930:64:64"}]},"documentation":{"id":44698,"nodeType":"StructuredDocumentation","src":"16663:53:64","text":"@notice Checks if the validator has staked before"},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"16730:9:64","parameters":{"id":44701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44700,"mutability":"mutable","name":"validator","nameLocation":"16748:9:64","nodeType":"VariableDeclaration","scope":44722,"src":"16740:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44699,"name":"address","nodeType":"ElementaryTypeName","src":"16740:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16739:19:64"},"returnParameters":{"id":44704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44703,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44722,"src":"16782:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44702,"name":"bool","nodeType":"ElementaryTypeName","src":"16782:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16781:6:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44740,"nodeType":"FunctionDefinition","src":"17007:201:64","nodes":[],"body":{"id":44739,"nodeType":"Block","src":"17071:137:64","nodes":[],"statements":[{"assignments":[44729],"declarations":[{"constant":false,"id":44729,"mutability":"mutable","name":"s","nameLocation":"17108:1:64","nodeType":"VariableDeclaration","scope":44739,"src":"17081:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44728,"nodeType":"UserDefinedTypeName","pathNode":{"id":44727,"name":"SubnetActorStorage","nameLocations":["17081:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17081:18:64"},"referencedDeclaration":46085,"src":"17081:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44733,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44730,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17112:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17134:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17112:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17112:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17081:65:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44734,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44729,"src":"17163:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17165:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17163:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17178:21:64","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":43718,"src":"17163:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17163:38:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":44726,"id":44738,"nodeType":"Return","src":"17156:45:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17016:21:64","parameters":{"id":44723,"nodeType":"ParameterList","parameters":[],"src":"17037:2:64"},"returnParameters":{"id":44726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44725,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44740,"src":"17063:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44724,"name":"uint16","nodeType":"ElementaryTypeName","src":"17063:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17062:8:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44766,"nodeType":"FunctionDefinition","src":"17296:243:64","nodes":[],"body":{"id":44765,"nodeType":"Block","src":"17354:185:64","nodes":[],"statements":[{"assignments":[44748],"declarations":[{"constant":false,"id":44748,"mutability":"mutable","name":"s","nameLocation":"17391:1:64","nodeType":"VariableDeclaration","scope":44765,"src":"17364:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44747,"nodeType":"UserDefinedTypeName","pathNode":{"id":44746,"name":"SubnetActorStorage","nameLocations":["17364:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17364:18:64"},"referencedDeclaration":46085,"src":"17364:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44752,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44749,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17395:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17417:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17395:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17395:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17364:65:64"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":44753,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44748,"src":"17446:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17446:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17461:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"17446:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17479:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"17446:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17446:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":44758,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44748,"src":"17491:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17493:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17491:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17506:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"17491:31:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17523:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"17491:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17491:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17446:86:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":44745,"id":44764,"nodeType":"Return","src":"17439:93:64"}]},"documentation":{"id":44741,"nodeType":"StructuredDocumentation","src":"17214:77:64","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17305:15:64","parameters":{"id":44742,"nodeType":"ParameterList","parameters":[],"src":"17320:2:64"},"returnParameters":{"id":44745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44766,"src":"17346:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44743,"name":"uint16","nodeType":"ElementaryTypeName","src":"17346:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17345:8:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44784,"nodeType":"FunctionDefinition","src":"17545:214:64","nodes":[],"body":{"id":44783,"nodeType":"Block","src":"17616:143:64","nodes":[],"statements":[{"assignments":[44773],"declarations":[{"constant":false,"id":44773,"mutability":"mutable","name":"s","nameLocation":"17653:1:64","nodeType":"VariableDeclaration","scope":44783,"src":"17626:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44772,"nodeType":"UserDefinedTypeName","pathNode":{"id":44771,"name":"SubnetActorStorage","nameLocations":["17626:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17626:18:64"},"referencedDeclaration":46085,"src":"17626:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44777,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44774,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17657:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17679:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17657:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17657:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17626:65:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44778,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44773,"src":"17708:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17710:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17708:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17723:27:64","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":43701,"src":"17708:42:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17708:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44770,"id":44782,"nodeType":"Return","src":"17701:51:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"17554:27:64","parameters":{"id":44767,"nodeType":"ParameterList","parameters":[],"src":"17581:2:64"},"returnParameters":{"id":44770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44784,"src":"17607:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44768,"name":"uint256","nodeType":"ElementaryTypeName","src":"17607:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17606:9:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44802,"nodeType":"FunctionDefinition","src":"17765:205:64","nodes":[],"body":{"id":44801,"nodeType":"Block","src":"17827:143:64","nodes":[],"statements":[{"assignments":[44791],"declarations":[{"constant":false,"id":44791,"mutability":"mutable","name":"s","nameLocation":"17864:1:64","nodeType":"VariableDeclaration","scope":44801,"src":"17837:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44790,"nodeType":"UserDefinedTypeName","pathNode":{"id":44789,"name":"SubnetActorStorage","nameLocations":["17837:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17837:18:64"},"referencedDeclaration":46085,"src":"17837:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44795,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44792,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17868:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17890:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17868:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17868:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17837:65:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44796,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44791,"src":"17919:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17921:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17919:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17934:27:64","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":43701,"src":"17919:42:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17919:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44788,"id":44800,"nodeType":"Return","src":"17912:51:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"17774:18:64","parameters":{"id":44785,"nodeType":"ParameterList","parameters":[],"src":"17792:2:64"},"returnParameters":{"id":44788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44802,"src":"17818:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44786,"name":"uint256","nodeType":"ElementaryTypeName","src":"17818:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17817:9:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44825,"nodeType":"FunctionDefinition","src":"18045:236:64","nodes":[],"body":{"id":44824,"nodeType":"Block","src":"18130:151:64","nodes":[],"statements":[{"assignments":[44812],"declarations":[{"constant":false,"id":44812,"mutability":"mutable","name":"s","nameLocation":"18167:1:64","nodeType":"VariableDeclaration","scope":44824,"src":"18140:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44811,"nodeType":"UserDefinedTypeName","pathNode":{"id":44810,"name":"SubnetActorStorage","nameLocations":["18140:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"18140:18:64"},"referencedDeclaration":46085,"src":"18140:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44816,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44813,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"18171:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18193:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"18171:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18171:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18140:65:64"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":44817,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44812,"src":"18222:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18224:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"18222:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18237:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"18222:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44821,"indexExpression":{"id":44820,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44805,"src":"18248:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18222:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18259:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"18222:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44809,"id":44823,"nodeType":"Return","src":"18215:59:64"}]},"documentation":{"id":44803,"nodeType":"StructuredDocumentation","src":"17976:64:64","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18054:24:64","parameters":{"id":44806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44805,"mutability":"mutable","name":"validator","nameLocation":"18087:9:64","nodeType":"VariableDeclaration","scope":44825,"src":"18079:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44804,"name":"address","nodeType":"ElementaryTypeName","src":"18079:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18078:19:64"},"returnParameters":{"id":44809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44825,"src":"18121:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44807,"name":"uint256","nodeType":"ElementaryTypeName","src":"18121:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18120:9:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44850,"nodeType":"FunctionDefinition","src":"18441:227:64","nodes":[],"body":{"id":44849,"nodeType":"Block","src":"18522:146:64","nodes":[],"statements":[{"assignments":[44835],"declarations":[{"constant":false,"id":44835,"mutability":"mutable","name":"s","nameLocation":"18559:1:64","nodeType":"VariableDeclaration","scope":44849,"src":"18532:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44834,"nodeType":"UserDefinedTypeName","pathNode":{"id":44833,"name":"SubnetActorStorage","nameLocations":["18532:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"18532:18:64"},"referencedDeclaration":46085,"src":"18532:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44836,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"18563:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18585:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"18563:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18563:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18532:65:64"},{"expression":{"arguments":[{"id":44845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44828,"src":"18644:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44846,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44830,"src":"18655:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44840,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44835,"src":"18607:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18609:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"18607:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18622:21:64","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44109,"src":"18607:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18607:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44848,"nodeType":"ExpressionStatement","src":"18607:54:64"}]},"documentation":{"id":44826,"nodeType":"StructuredDocumentation","src":"18353:83:64","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18450:28:64","parameters":{"id":44831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44828,"mutability":"mutable","name":"validator","nameLocation":"18487:9:64","nodeType":"VariableDeclaration","scope":44850,"src":"18479:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44827,"name":"address","nodeType":"ElementaryTypeName","src":"18479:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44830,"mutability":"mutable","name":"power","nameLocation":"18506:5:64","nodeType":"VariableDeclaration","scope":44850,"src":"18498:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44829,"name":"uint256","nodeType":"ElementaryTypeName","src":"18498:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18478:34:64"},"returnParameters":{"id":44832,"nodeType":"ParameterList","parameters":[],"src":"18522:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44875,"nodeType":"FunctionDefinition","src":"18755:224:64","nodes":[],"body":{"id":44874,"nodeType":"Block","src":"18840:139:64","nodes":[],"statements":[{"assignments":[44860],"declarations":[{"constant":false,"id":44860,"mutability":"mutable","name":"s","nameLocation":"18877:1:64","nodeType":"VariableDeclaration","scope":44874,"src":"18850:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44859,"nodeType":"UserDefinedTypeName","pathNode":{"id":44858,"name":"SubnetActorStorage","nameLocations":["18850:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"18850:18:64"},"referencedDeclaration":46085,"src":"18850:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44864,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44861,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"18881:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18903:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"18881:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18881:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18850:65:64"},{"expression":{"arguments":[{"id":44870,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"18952:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44871,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"18963:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":44865,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44860,"src":"18925:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18927:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"18925:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18940:11:64","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":43994,"src":"18925:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":44872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18925:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44873,"nodeType":"ExpressionStatement","src":"18925:47:64"}]},"documentation":{"id":44851,"nodeType":"StructuredDocumentation","src":"18674:76:64","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"18764:22:64","parameters":{"id":44856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44853,"mutability":"mutable","name":"validator","nameLocation":"18795:9:64","nodeType":"VariableDeclaration","scope":44875,"src":"18787:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44852,"name":"address","nodeType":"ElementaryTypeName","src":"18787:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"metadata","nameLocation":"18821:8:64","nodeType":"VariableDeclaration","scope":44875,"src":"18806:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44854,"name":"bytes","nodeType":"ElementaryTypeName","src":"18806:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18786:44:64"},"returnParameters":{"id":44857,"nodeType":"ParameterList","parameters":[],"src":"18840:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44984,"nodeType":"FunctionDefinition","src":"19077:1335:64","nodes":[],"body":{"id":44983,"nodeType":"Block","src":"19149:1263:64","nodes":[],"statements":[{"assignments":[44885],"declarations":[{"constant":false,"id":44885,"mutability":"mutable","name":"s","nameLocation":"19186:1:64","nodeType":"VariableDeclaration","scope":44983,"src":"19159:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44884,"nodeType":"UserDefinedTypeName","pathNode":{"id":44883,"name":"SubnetActorStorage","nameLocations":["19159:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"19159:18:64"},"referencedDeclaration":46085,"src":"19159:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44889,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44886,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"19190:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19212:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"19190:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19190:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19159:65:64"},{"expression":{"arguments":[{"id":44895,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"19324:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44896,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44880,"src":"19335:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44890,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19295:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19297:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"19295:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19310:13:64","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44015,"src":"19295:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19295:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44898,"nodeType":"ExpressionStatement","src":"19295:47:64"},{"expression":{"arguments":[{"id":44904,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"19447:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44905,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44880,"src":"19458:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44899,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19417:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19419:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"19417:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19432:14:64","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44151,"src":"19417:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19417:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44907,"nodeType":"ExpressionStatement","src":"19417:48:64"},{"condition":{"id":44910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19480:15:64","subExpression":{"expression":{"id":44908,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19481:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19483:12:64","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"19481:14:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44982,"nodeType":"IfStatement","src":"19476:930:64","trueBody":{"id":44981,"nodeType":"Block","src":"19497:909:64","statements":[{"assignments":[44912],"declarations":[{"constant":false,"id":44912,"mutability":"mutable","name":"alreadyValidator","nameLocation":"19622:16:64","nodeType":"VariableDeclaration","scope":44981,"src":"19617:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44911,"name":"bool","nodeType":"ElementaryTypeName","src":"19617:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":44913,"nodeType":"VariableDeclarationStatement","src":"19617:21:64"},{"assignments":[44915],"declarations":[{"constant":false,"id":44915,"mutability":"mutable","name":"length","nameLocation":"19660:6:64","nodeType":"VariableDeclaration","scope":44981,"src":"19652:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44914,"name":"uint256","nodeType":"ElementaryTypeName","src":"19652:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44919,"initialValue":{"expression":{"expression":{"id":44916,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19669:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19671:17:64","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"19669:19:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":44918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19689:6:64","memberName":"length","nodeType":"MemberAccess","src":"19669:26:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19652:43:64"},{"body":{"id":44944,"nodeType":"Block","src":"19739:240:64","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":44932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19761:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19763:17:64","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"19761:19:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":44929,"indexExpression":{"id":44928,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44921,"src":"19781:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19761:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage","typeString":"struct Validator storage ref"}},"id":44930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19784:4:64","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":48691,"src":"19761:27:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44931,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"19792:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19761:40:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44939,"nodeType":"IfStatement","src":"19757:137:64","trueBody":{"id":44938,"nodeType":"Block","src":"19803:91:64","statements":[{"expression":{"id":44935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44933,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44912,"src":"19825:16:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":44934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19844:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19825:23:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44936,"nodeType":"ExpressionStatement","src":"19825:23:64"},{"id":44937,"nodeType":"Break","src":"19870:5:64"}]}},{"id":44943,"nodeType":"UncheckedBlock","src":"19911:54:64","statements":[{"expression":{"id":44941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"19943:3:64","subExpression":{"id":44940,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44921,"src":"19945:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44942,"nodeType":"ExpressionStatement","src":"19943:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44923,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44921,"src":"19725:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44924,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44915,"src":"19729:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19725:10:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44945,"initializationExpression":{"assignments":[44921],"declarations":[{"constant":false,"id":44921,"mutability":"mutable","name":"i","nameLocation":"19722:1:64","nodeType":"VariableDeclaration","scope":44945,"src":"19714:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44920,"name":"uint256","nodeType":"ElementaryTypeName","src":"19714:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44922,"nodeType":"VariableDeclarationStatement","src":"19714:9:64"},"nodeType":"ForStatement","src":"19709:270:64"},{"condition":{"id":44947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19996:17:64","subExpression":{"id":44946,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44912,"src":"19997:16:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44980,"nodeType":"IfStatement","src":"19992:404:64","trueBody":{"id":44979,"nodeType":"Block","src":"20015:381:64","statements":[{"assignments":[44949],"declarations":[{"constant":false,"id":44949,"mutability":"mutable","name":"collateral","nameLocation":"20041:10:64","nodeType":"VariableDeclaration","scope":44979,"src":"20033:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44948,"name":"uint256","nodeType":"ElementaryTypeName","src":"20033:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44956,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":44950,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"20054:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20056:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20054:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20069:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"20054:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44954,"indexExpression":{"id":44953,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"20080:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20054:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20091:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"20054:56:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20033:77:64"},{"assignments":[44959],"declarations":[{"constant":false,"id":44959,"mutability":"mutable","name":"val","nameLocation":"20145:3:64","nodeType":"VariableDeclaration","scope":44979,"src":"20128:20:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator"},"typeName":{"id":44958,"nodeType":"UserDefinedTypeName","pathNode":{"id":44957,"name":"Validator","nameLocations":["20128:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"20128:9:64"},"referencedDeclaration":48694,"src":"20128:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":44970,"initialValue":{"arguments":[{"id":44961,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"20189:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44962,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44949,"src":"20228:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":44963,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"20270:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20272:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20270:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20285:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"20270:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44967,"indexExpression":{"id":44966,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"20296:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20270:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20307:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"20270:45:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":44960,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"20151:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$48694_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":44969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20183:4:64","20220:6:64","20260:8:64"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20151:183:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20128:206:64"},{"expression":{"arguments":[{"id":44976,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44959,"src":"20377:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":44971,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"20352:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20354:17:64","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"20352:19:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":44975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20372:4:64","memberName":"push","nodeType":"MemberAccess","src":"20352:24:64","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$_t_struct$_Validator_$48694_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":44977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20352:29:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44978,"nodeType":"ExpressionStatement","src":"20352:29:64"}]}}]}}]},"documentation":{"id":44876,"nodeType":"StructuredDocumentation","src":"18985:87:64","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19086:18:64","parameters":{"id":44881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44878,"mutability":"mutable","name":"validator","nameLocation":"19113:9:64","nodeType":"VariableDeclaration","scope":44984,"src":"19105:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44877,"name":"address","nodeType":"ElementaryTypeName","src":"19105:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44880,"mutability":"mutable","name":"amount","nameLocation":"19132:6:64","nodeType":"VariableDeclaration","scope":44984,"src":"19124:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44879,"name":"uint256","nodeType":"ElementaryTypeName","src":"19124:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19104:35:64"},"returnParameters":{"id":44882,"nodeType":"ParameterList","parameters":[],"src":"19149:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45026,"nodeType":"FunctionDefinition","src":"20602:504:64","nodes":[],"body":{"id":45025,"nodeType":"Block","src":"20675:431:64","nodes":[],"statements":[{"assignments":[44994],"declarations":[{"constant":false,"id":44994,"mutability":"mutable","name":"s","nameLocation":"20712:1:64","nodeType":"VariableDeclaration","scope":45025,"src":"20685:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44993,"nodeType":"UserDefinedTypeName","pathNode":{"id":44992,"name":"SubnetActorStorage","nameLocations":["20685:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"20685:18:64"},"referencedDeclaration":46085,"src":"20685:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44995,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"20716:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20738:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"20716:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20716:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20685:65:64"},{"expression":{"arguments":[{"id":45004,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44987,"src":"20851:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45005,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"20862:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44999,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44994,"src":"20821:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20823:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20821:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20836:14:64","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44056,"src":"20821:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20821:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45007,"nodeType":"ExpressionStatement","src":"20821:48:64"},{"expression":{"arguments":[{"id":45013,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44987,"src":"20975:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45014,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"20986:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45008,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44994,"src":"20944:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20946:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20944:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20959:15:64","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44217,"src":"20944:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20944:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45016,"nodeType":"ExpressionStatement","src":"20944:49:64"},{"expression":{"arguments":[{"id":45022,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"21092:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45019,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44987,"src":"21071:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21063:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45017,"name":"address","nodeType":"ElementaryTypeName","src":"21063:8:64","stateMutability":"payable","typeDescriptions":{}}},"id":45020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21063:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21082:9:64","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"21063:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21063:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45024,"nodeType":"ExpressionStatement","src":"21063:36:64"}]},"documentation":{"id":44985,"nodeType":"StructuredDocumentation","src":"20418:179:64","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"20611:19:64","parameters":{"id":44990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44987,"mutability":"mutable","name":"validator","nameLocation":"20639:9:64","nodeType":"VariableDeclaration","scope":45026,"src":"20631:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44986,"name":"address","nodeType":"ElementaryTypeName","src":"20631:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44989,"mutability":"mutable","name":"amount","nameLocation":"20658:6:64","nodeType":"VariableDeclaration","scope":45026,"src":"20650:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44988,"name":"uint256","nodeType":"ElementaryTypeName","src":"20650:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20630:35:64"},"returnParameters":{"id":44991,"nodeType":"ParameterList","parameters":[],"src":"20675:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45054,"nodeType":"FunctionDefinition","src":"21236:280:64","nodes":[],"body":{"id":45053,"nodeType":"Block","src":"21332:184:64","nodes":[],"statements":[{"assignments":[45038],"declarations":[{"constant":false,"id":45038,"mutability":"mutable","name":"s","nameLocation":"21369:1:64","nodeType":"VariableDeclaration","scope":45053,"src":"21342:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45037,"nodeType":"UserDefinedTypeName","pathNode":{"id":45036,"name":"SubnetActorStorage","nameLocations":["21342:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"21342:18:64"},"referencedDeclaration":46085,"src":"21342:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45042,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45039,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"21373:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21395:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"21373:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21373:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21342:65:64"},{"expression":{"arguments":[{"id":45048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45029,"src":"21463:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45049,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45031,"src":"21484:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45050,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45033,"src":"21501:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45043,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"21417:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21419:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"21417:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21429:21:64","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":45816,"src":"21417:33:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21452:9:64","21474:8:64","21494:5:64"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21417:92:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45052,"nodeType":"ExpressionStatement","src":"21417:92:64"}]},"documentation":{"id":45027,"nodeType":"StructuredDocumentation","src":"21179:52:64","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21245:17:64","parameters":{"id":45034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45029,"mutability":"mutable","name":"validator","nameLocation":"21271:9:64","nodeType":"VariableDeclaration","scope":45054,"src":"21263:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45028,"name":"address","nodeType":"ElementaryTypeName","src":"21263:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45031,"mutability":"mutable","name":"metadata","nameLocation":"21297:8:64","nodeType":"VariableDeclaration","scope":45054,"src":"21282:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45030,"name":"bytes","nodeType":"ElementaryTypeName","src":"21282:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45033,"mutability":"mutable","name":"amount","nameLocation":"21315:6:64","nodeType":"VariableDeclaration","scope":45054,"src":"21307:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45032,"name":"uint256","nodeType":"ElementaryTypeName","src":"21307:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21262:60:64"},"returnParameters":{"id":45035,"nodeType":"ParameterList","parameters":[],"src":"21332:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45079,"nodeType":"FunctionDefinition","src":"21565:223:64","nodes":[],"body":{"id":45078,"nodeType":"Block","src":"21648:140:64","nodes":[],"statements":[{"assignments":[45064],"declarations":[{"constant":false,"id":45064,"mutability":"mutable","name":"s","nameLocation":"21685:1:64","nodeType":"VariableDeclaration","scope":45078,"src":"21658:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45063,"nodeType":"UserDefinedTypeName","pathNode":{"id":45062,"name":"SubnetActorStorage","nameLocations":["21658:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"21658:18:64"},"referencedDeclaration":46085,"src":"21658:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45068,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45065,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"21689:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21711:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"21689:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21689:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21658:65:64"},{"expression":{"arguments":[{"id":45074,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45057,"src":"21761:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45075,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45059,"src":"21772:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45069,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45064,"src":"21733:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21735:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"21733:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21745:15:64","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":45776,"src":"21733:27:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21733:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45077,"nodeType":"ExpressionStatement","src":"21733:48:64"}]},"documentation":{"id":45055,"nodeType":"StructuredDocumentation","src":"21522:38:64","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"21574:20:64","parameters":{"id":45060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45057,"mutability":"mutable","name":"validator","nameLocation":"21603:9:64","nodeType":"VariableDeclaration","scope":45079,"src":"21595:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45056,"name":"address","nodeType":"ElementaryTypeName","src":"21595:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45059,"mutability":"mutable","name":"metadata","nameLocation":"21629:8:64","nodeType":"VariableDeclaration","scope":45079,"src":"21614:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45058,"name":"bytes","nodeType":"ElementaryTypeName","src":"21614:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21594:44:64"},"returnParameters":{"id":45061,"nodeType":"ParameterList","parameters":[],"src":"21648:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45113,"nodeType":"FunctionDefinition","src":"21833:256:64","nodes":[],"body":{"id":45112,"nodeType":"Block","src":"21894:195:64","nodes":[],"statements":[{"assignments":[45089],"declarations":[{"constant":false,"id":45089,"mutability":"mutable","name":"s","nameLocation":"21931:1:64","nodeType":"VariableDeclaration","scope":45112,"src":"21904:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45088,"nodeType":"UserDefinedTypeName","pathNode":{"id":45087,"name":"SubnetActorStorage","nameLocations":["21904:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"21904:18:64"},"referencedDeclaration":46085,"src":"21904:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45093,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45090,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"21935:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21957:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"21935:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21935:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21904:65:64"},{"expression":{"arguments":[{"id":45099,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45082,"src":"22007:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45100,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45084,"src":"22018:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45094,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"21980:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21982:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"21980:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21992:14:64","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":45890,"src":"21980:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21980:45:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45102,"nodeType":"ExpressionStatement","src":"21980:45:64"},{"expression":{"arguments":[{"id":45108,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45082,"src":"22064:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45109,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45084,"src":"22075:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45103,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"22035:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22037:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"22035:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22050:13:64","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44015,"src":"22035:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22035:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45111,"nodeType":"ExpressionStatement","src":"22035:47:64"}]},"documentation":{"id":45080,"nodeType":"StructuredDocumentation","src":"21794:34:64","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"21842:7:64","parameters":{"id":45085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45082,"mutability":"mutable","name":"validator","nameLocation":"21858:9:64","nodeType":"VariableDeclaration","scope":45113,"src":"21850:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45081,"name":"address","nodeType":"ElementaryTypeName","src":"21850:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45084,"mutability":"mutable","name":"amount","nameLocation":"21877:6:64","nodeType":"VariableDeclaration","scope":45113,"src":"21869:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45083,"name":"uint256","nodeType":"ElementaryTypeName","src":"21869:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21849:35:64"},"returnParameters":{"id":45086,"nodeType":"ParameterList","parameters":[],"src":"21894:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45147,"nodeType":"FunctionDefinition","src":"22135:259:64","nodes":[],"body":{"id":45146,"nodeType":"Block","src":"22197:197:64","nodes":[],"statements":[{"assignments":[45123],"declarations":[{"constant":false,"id":45123,"mutability":"mutable","name":"s","nameLocation":"22234:1:64","nodeType":"VariableDeclaration","scope":45146,"src":"22207:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45122,"nodeType":"UserDefinedTypeName","pathNode":{"id":45121,"name":"SubnetActorStorage","nameLocations":["22207:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"22207:18:64"},"referencedDeclaration":46085,"src":"22207:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45127,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45124,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"22238:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22260:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"22238:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22238:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22207:65:64"},{"expression":{"arguments":[{"id":45133,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45116,"src":"22311:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45134,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45118,"src":"22322:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45128,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45123,"src":"22283:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22285:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"22283:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22295:15:64","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":45853,"src":"22283:27:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22283:46:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45136,"nodeType":"ExpressionStatement","src":"22283:46:64"},{"expression":{"arguments":[{"id":45142,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45116,"src":"22369:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45143,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45118,"src":"22380:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45123,"src":"22339:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22341:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"22339:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22354:14:64","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44056,"src":"22339:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22339:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45145,"nodeType":"ExpressionStatement","src":"22339:48:64"}]},"documentation":{"id":45114,"nodeType":"StructuredDocumentation","src":"22095:35:64","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22144:8:64","parameters":{"id":45119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45116,"mutability":"mutable","name":"validator","nameLocation":"22161:9:64","nodeType":"VariableDeclaration","scope":45147,"src":"22153:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45115,"name":"address","nodeType":"ElementaryTypeName","src":"22153:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45118,"mutability":"mutable","name":"amount","nameLocation":"22180:6:64","nodeType":"VariableDeclaration","scope":45147,"src":"22172:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45117,"name":"uint256","nodeType":"ElementaryTypeName","src":"22172:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22152:35:64"},"returnParameters":{"id":45120,"nodeType":"ParameterList","parameters":[],"src":"22197:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45174,"nodeType":"FunctionDefinition","src":"22503:244:64","nodes":[],"body":{"id":45173,"nodeType":"Block","src":"22556:191:64","nodes":[],"statements":[{"assignments":[45155],"declarations":[{"constant":false,"id":45155,"mutability":"mutable","name":"s","nameLocation":"22593:1:64","nodeType":"VariableDeclaration","scope":45173,"src":"22566:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45154,"nodeType":"UserDefinedTypeName","pathNode":{"id":45153,"name":"SubnetActorStorage","nameLocations":["22566:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"22566:18:64"},"referencedDeclaration":46085,"src":"22566:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45159,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45156,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"22597:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22619:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"22597:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22597:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22566:65:64"},{"assignments":[45161],"declarations":[{"constant":false,"id":45161,"mutability":"mutable","name":"amount","nameLocation":"22649:6:64","nodeType":"VariableDeclaration","scope":45173,"src":"22641:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45160,"name":"uint256","nodeType":"ElementaryTypeName","src":"22641:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45167,"initialValue":{"arguments":[{"id":45165,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45150,"src":"22679:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45162,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45155,"src":"22658:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22660:12:64","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":46068,"src":"22658:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22673:5:64","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":43602,"src":"22658:20:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22658:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22641:48:64"},{"eventCall":{"arguments":[{"id":45169,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45150,"src":"22722:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45170,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45161,"src":"22733:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45168,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44630,"src":"22704:17:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22704:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45172,"nodeType":"EmitStatement","src":"22699:41:64"}]},"documentation":{"id":45148,"nodeType":"StructuredDocumentation","src":"22457:41:64","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"22512:15:64","parameters":{"id":45151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45150,"mutability":"mutable","name":"validator","nameLocation":"22536:9:64","nodeType":"VariableDeclaration","scope":45174,"src":"22528:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45149,"name":"address","nodeType":"ElementaryTypeName","src":"22528:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22527:19:64"},"returnParameters":{"id":45152,"nodeType":"ParameterList","parameters":[],"src":"22556:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45230,"nodeType":"FunctionDefinition","src":"22861:439:64","nodes":[],"body":{"id":45229,"nodeType":"Block","src":"22918:382:64","nodes":[],"statements":[{"assignments":[45182],"declarations":[{"constant":false,"id":45182,"mutability":"mutable","name":"s","nameLocation":"22955:1:64","nodeType":"VariableDeclaration","scope":45229,"src":"22928:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45181,"nodeType":"UserDefinedTypeName","pathNode":{"id":45180,"name":"SubnetActorStorage","nameLocations":["22928:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"22928:18:64"},"referencedDeclaration":46085,"src":"22928:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45186,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45183,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"22959:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22981:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"22959:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22959:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22928:65:64"},{"assignments":[45188],"declarations":[{"constant":false,"id":45188,"mutability":"mutable","name":"amount","nameLocation":"23011:6:64","nodeType":"VariableDeclaration","scope":45229,"src":"23003:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45187,"name":"uint256","nodeType":"ElementaryTypeName","src":"23003:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45194,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45189,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45182,"src":"23020:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23022:14:64","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"23020:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23037:7:64","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"23020:24:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45193,"indexExpression":{"id":45192,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"23045:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23020:33:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23003:50:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45195,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45188,"src":"23068:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23078:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23068:11:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45202,"nodeType":"IfStatement","src":"23064:69:64","trueBody":{"id":45201,"nodeType":"Block","src":"23081:52:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45198,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37018,"src":"23102:18:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23102:20:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45200,"nodeType":"RevertStatement","src":"23095:27:64"}]}},{"expression":{"id":45211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45203,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45182,"src":"23143:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23145:14:64","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"23143:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23160:7:64","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"23143:24:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45209,"indexExpression":{"id":45206,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"23168:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23143:33:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23179:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23143:37:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45212,"nodeType":"ExpressionStatement","src":"23143:37:64"},{"expression":{"arguments":[{"id":45218,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45188,"src":"23241:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45214,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45182,"src":"23199:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23201:14:64","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"23199:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45213,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"23190:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":45216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23190:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":45217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23217:23:64","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":39837,"src":"23190:50:64","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23190:58:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45220,"nodeType":"ExpressionStatement","src":"23190:58:64"},{"expression":{"arguments":[{"id":45226,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45188,"src":"23286:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45223,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"23267:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23259:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45221,"name":"address","nodeType":"ElementaryTypeName","src":"23259:8:64","stateMutability":"payable","typeDescriptions":{}}},"id":45224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23276:9:64","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"23259:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45228,"nodeType":"ExpressionStatement","src":"23259:34:64"}]},"documentation":{"id":45175,"nodeType":"StructuredDocumentation","src":"22753:103:64","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"22870:21:64","parameters":{"id":45178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45177,"mutability":"mutable","name":"relayer","nameLocation":"22900:7:64","nodeType":"VariableDeclaration","scope":45230,"src":"22892:15:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45176,"name":"address","nodeType":"ElementaryTypeName","src":"22892:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22891:17:64"},"returnParameters":{"id":45179,"nodeType":"ParameterList","parameters":[],"src":"22918:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45253,"nodeType":"FunctionDefinition","src":"23306:247:64","nodes":[],"body":{"id":45252,"nodeType":"Block","src":"23379:174:64","nodes":[],"statements":[{"assignments":[45239],"declarations":[{"constant":false,"id":45239,"mutability":"mutable","name":"s","nameLocation":"23416:1:64","nodeType":"VariableDeclaration","scope":45252,"src":"23389:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45238,"nodeType":"UserDefinedTypeName","pathNode":{"id":45237,"name":"SubnetActorStorage","nameLocations":["23389:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"23389:18:64"},"referencedDeclaration":46085,"src":"23389:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45243,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45240,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"23420:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23442:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"23420:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23420:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23389:65:64"},{"expression":{"components":[{"expression":{"expression":{"id":45244,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45239,"src":"23472:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23474:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"23472:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23484:23:64","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"23472:35:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45247,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45239,"src":"23509:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23511:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"23509:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23521:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"23509:36:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45250,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23471:75:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45236,"id":45251,"nodeType":"Return","src":"23464:82:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23315:23:64","parameters":{"id":45231,"nodeType":"ParameterList","parameters":[],"src":"23338:2:64"},"returnParameters":{"id":45236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45253,"src":"23363:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45232,"name":"uint64","nodeType":"ElementaryTypeName","src":"23363:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45235,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45253,"src":"23371:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45234,"name":"uint64","nodeType":"ElementaryTypeName","src":"23371:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23362:16:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45463,"nodeType":"FunctionDefinition","src":"23681:1944:64","nodes":[],"body":{"id":45462,"nodeType":"Block","src":"23741:1884:64","nodes":[],"statements":[{"assignments":[45261],"declarations":[{"constant":false,"id":45261,"mutability":"mutable","name":"s","nameLocation":"23778:1:64","nodeType":"VariableDeclaration","scope":45462,"src":"23751:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45260,"nodeType":"UserDefinedTypeName","pathNode":{"id":45259,"name":"SubnetActorStorage","nameLocations":["23751:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"23751:18:64"},"referencedDeclaration":46085,"src":"23751:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45265,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45262,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"23782:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23804:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"23782:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23782:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23751:65:64"},{"assignments":[45268],"declarations":[{"constant":false,"id":45268,"mutability":"mutable","name":"changeSet","nameLocation":"23851:9:64","nodeType":"VariableDeclaration","scope":45462,"src":"23826:34:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45267,"nodeType":"UserDefinedTypeName","pathNode":{"id":45266,"name":"StakingChangeLog","nameLocations":["23826:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"23826:16:64"},"referencedDeclaration":48606,"src":"23826:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45271,"initialValue":{"expression":{"id":45269,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"23863:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23865:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"23863:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23826:48:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45272,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"23889:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45273,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"23912:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23922:23:64","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"23912:33:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23889:56:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45280,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"24017:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45281,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"24039:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24049:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"24039:34:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24017:56:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45286,"nodeType":"IfStatement","src":"24013:93:64","trueBody":{"id":45285,"nodeType":"Block","src":"24075:31:64","statements":[{"functionReturnParameters":45258,"id":45284,"nodeType":"Return","src":"24089:7:64"}]}},"id":45287,"nodeType":"IfStatement","src":"23885:221:64","trueBody":{"id":45279,"nodeType":"Block","src":"23947:60:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45276,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36940,"src":"23968:26:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23968:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45278,"nodeType":"RevertStatement","src":"23961:35:64"}]}},{"assignments":[45289],"declarations":[{"constant":false,"id":45289,"mutability":"mutable","name":"start","nameLocation":"24123:5:64","nodeType":"VariableDeclaration","scope":45462,"src":"24116:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45288,"name":"uint64","nodeType":"ElementaryTypeName","src":"24116:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45292,"initialValue":{"expression":{"id":45290,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"24131:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24141:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"24131:34:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24116:49:64"},{"body":{"id":45448,"nodeType":"Block","src":"24226:1257:64","statements":[{"assignments":[45302],"declarations":[{"constant":false,"id":45302,"mutability":"mutable","name":"change","nameLocation":"24262:6:64","nodeType":"VariableDeclaration","scope":45448,"src":"24240:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45301,"nodeType":"UserDefinedTypeName","pathNode":{"id":45300,"name":"StakingChange","nameLocations":["24240:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":48587,"src":"24240:13:64"},"referencedDeclaration":48587,"src":"24240:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":45307,"initialValue":{"arguments":[{"id":45305,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"24291:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":45303,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"24271:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24281:9:64","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":45950,"src":"24271:19:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$48587_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":45306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24271:22:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24240:53:64"},{"assignments":[45309],"declarations":[{"constant":false,"id":45309,"mutability":"mutable","name":"validator","nameLocation":"24315:9:64","nodeType":"VariableDeclaration","scope":45448,"src":"24307:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45308,"name":"address","nodeType":"ElementaryTypeName","src":"24307:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45312,"initialValue":{"expression":{"id":45310,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24327:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24334:9:64","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":48586,"src":"24327:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24307:36:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45313,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24362:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24369:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"24362:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45315,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"24375:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24392:11:64","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":48577,"src":"24375:28:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"24362:41:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45331,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24510:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24517:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"24510:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45333,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"24523:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24540:17:64","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":48578,"src":"24523:34:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"24510:47:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45435,"nodeType":"Block","src":"24829:546:64","statements":[{"assignments":[45373],"declarations":[{"constant":false,"id":45373,"mutability":"mutable","name":"amount","nameLocation":"24855:6:64","nodeType":"VariableDeclaration","scope":45435,"src":"24847:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45372,"name":"uint256","nodeType":"ElementaryTypeName","src":"24847:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45382,"initialValue":{"arguments":[{"expression":{"id":45376,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24875:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24882:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"24875:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24892:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45378,"name":"uint256","nodeType":"ElementaryTypeName","src":"24892:7:64","typeDescriptions":{}}}],"id":45380,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24891:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":45374,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24864:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24868:6:64","memberName":"decode","nodeType":"MemberAccess","src":"24864:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24864:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24847:54:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45383,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24924:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24931:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"24924:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45385,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"24937:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24954:8:64","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":48576,"src":"24937:25:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"24924:38:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45433,"nodeType":"Block","src":"25198:163:64","statements":[{"expression":{"arguments":[{"id":45420,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"25250:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45421,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25261:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45415,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25220:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25222:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"25220:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25235:14:64","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44151,"src":"25220:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25220:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45423,"nodeType":"ExpressionStatement","src":"25220:48:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":45425,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25299:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25301:14:64","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"25299:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45424,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"25290:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":45427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25290:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":45428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25317:8:64","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":39825,"src":"25290:35:64","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":45430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":45429,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25333:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25290:50:64","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":45431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25290:52:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45432,"nodeType":"ExpressionStatement","src":"25290:52:64"}]},"id":45434,"nodeType":"IfStatement","src":"24920:441:64","trueBody":{"id":45414,"nodeType":"Block","src":"24964:228:64","statements":[{"expression":{"arguments":[{"id":45393,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"25017:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45394,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25028:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45388,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24986:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24988:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24986:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25001:15:64","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44217,"src":"24986:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24986:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45396,"nodeType":"ExpressionStatement","src":"24986:49:64"},{"expression":{"arguments":[{"id":45402,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"25086:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45403,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25097:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45397,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25057:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25059:12:64","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":46068,"src":"25057:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25072:13:64","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":43558,"src":"25057:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":45404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25057:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45405,"nodeType":"ExpressionStatement","src":"25057:47:64"},{"expression":{"arguments":[{"id":45411,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25166:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45407,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25135:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25137:14:64","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"25135:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45406,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"25126:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":45409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25126:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":45410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25153:12:64","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":39831,"src":"25126:39:64","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25126:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45413,"nodeType":"ExpressionStatement","src":"25126:47:64"}]}}]},"id":45436,"nodeType":"IfStatement","src":"24506:869:64","trueBody":{"id":45371,"nodeType":"Block","src":"24559:264:64","statements":[{"assignments":[45337,45339],"declarations":[{"constant":false,"id":45337,"mutability":"mutable","name":"metadata","nameLocation":"24591:8:64","nodeType":"VariableDeclaration","scope":45371,"src":"24578:21:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45336,"name":"bytes","nodeType":"ElementaryTypeName","src":"24578:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45339,"mutability":"mutable","name":"power","nameLocation":"24609:5:64","nodeType":"VariableDeclaration","scope":45371,"src":"24601:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45338,"name":"uint256","nodeType":"ElementaryTypeName","src":"24601:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45350,"initialValue":{"arguments":[{"expression":{"id":45342,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24629:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24636:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"24629:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24646:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":45344,"name":"bytes","nodeType":"ElementaryTypeName","src":"24646:5:64","typeDescriptions":{}}},{"id":45347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24653:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45346,"name":"uint256","nodeType":"ElementaryTypeName","src":"24653:7:64","typeDescriptions":{}}}],"id":45348,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24645:16:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":45340,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24618:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24622:6:64","memberName":"decode","nodeType":"MemberAccess","src":"24618:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24618:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"24577:85:64"},{"expression":{"id":45360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45351,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24680:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24682:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24680:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24695:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"24680:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45357,"indexExpression":{"id":45354,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"24706:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24680:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24717:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"24680:45:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45359,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45337,"src":"24728:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"24680:56:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45361,"nodeType":"ExpressionStatement","src":"24680:56:64"},{"expression":{"arguments":[{"id":45367,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"24791:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45368,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45339,"src":"24802:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45362,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24754:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24756:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24754:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24769:21:64","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44109,"src":"24754:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24754:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45370,"nodeType":"ExpressionStatement","src":"24754:54:64"}]}},"id":45437,"nodeType":"IfStatement","src":"24358:1017:64","trueBody":{"id":45330,"nodeType":"Block","src":"24405:95:64","statements":[{"expression":{"id":45328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45318,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24423:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24425:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24423:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24438:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"24423:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45324,"indexExpression":{"id":45321,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"24449:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24423:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24460:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"24423:45:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45326,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24471:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24478:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"24471:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24423:62:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45329,"nodeType":"ExpressionStatement","src":"24423:62:64"}]}},{"expression":{"arguments":[{"id":45441,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"25411:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":45438,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"25389:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25399:11:64","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":45965,"src":"25389:21:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":45442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25389:24:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45443,"nodeType":"ExpressionStatement","src":"25389:24:64"},{"id":45447,"nodeType":"UncheckedBlock","src":"25427:46:64","statements":[{"expression":{"id":45445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25455:3:64","subExpression":{"id":45444,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"25457:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45446,"nodeType":"ExpressionStatement","src":"25455:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45297,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"24198:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":45298,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"24203:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24198:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45449,"initializationExpression":{"assignments":[45294],"declarations":[{"constant":false,"id":45294,"mutability":"mutable","name":"i","nameLocation":"24187:1:64","nodeType":"VariableDeclaration","scope":45449,"src":"24180:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45293,"name":"uint64","nodeType":"ElementaryTypeName","src":"24180:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45296,"initialValue":{"id":45295,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45289,"src":"24191:5:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24180:16:64"},"nodeType":"ForStatement","src":"24175:1308:64"},{"expression":{"id":45456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":45450,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"25493:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25503:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"25493:34:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45453,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"25530:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":45454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25552:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25530:23:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25493:60:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45457,"nodeType":"ExpressionStatement","src":"25493:60:64"},{"eventCall":{"arguments":[{"id":45459,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"25598:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":45458,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44624,"src":"25569:28:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":45460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25569:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45461,"nodeType":"EmitStatement","src":"25564:54:64"}]},"documentation":{"id":45254,"nodeType":"StructuredDocumentation","src":"23559:117:64","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"23690:13:64","parameters":{"id":45257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45256,"mutability":"mutable","name":"configurationNumber","nameLocation":"23711:19:64","nodeType":"VariableDeclaration","scope":45463,"src":"23704:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45255,"name":"uint64","nodeType":"ElementaryTypeName","src":"23704:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23703:28:64"},"returnParameters":{"id":45258,"nodeType":"ParameterList","parameters":[],"src":"23741:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[45464],"name":"LibStaking","nameLocation":"15346:10:64","scope":45729,"usedErrors":[32032,32040,37018]},{"id":45728,"nodeType":"ContractDefinition","src":"25784:2695:64","nodes":[{"id":45469,"nodeType":"UsingForDirective","src":"25819:39:64","nodes":[],"global":false,"libraryName":{"id":45466,"name":"LibValidatorSet","nameLocations":["25825:15:64"],"nodeType":"IdentifierPath","referencedDeclaration":44594,"src":"25825:15:64"},"typeName":{"id":45468,"nodeType":"UserDefinedTypeName","pathNode":{"id":45467,"name":"ValidatorSet","nameLocations":["25845:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"25845:12:64"},"referencedDeclaration":48673,"src":"25845:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45473,"nodeType":"UsingForDirective","src":"25863:47:64","nodes":[],"global":false,"libraryName":{"id":45470,"name":"LibStakingChangeLog","nameLocations":["25869:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":45966,"src":"25869:19:64"},"typeName":{"id":45472,"nodeType":"UserDefinedTypeName","pathNode":{"id":45471,"name":"StakingChangeLog","nameLocations":["25893:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"25893:16:64"},"referencedDeclaration":48606,"src":"25893:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45508,"nodeType":"FunctionDefinition","src":"25916:475:64","nodes":[],"body":{"id":45507,"nodeType":"Block","src":"26029:362:64","nodes":[],"statements":[{"assignments":[45483],"declarations":[{"constant":false,"id":45483,"mutability":"mutable","name":"configurationNumber","nameLocation":"26046:19:64","nodeType":"VariableDeclaration","scope":45507,"src":"26039:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45482,"name":"uint64","nodeType":"ElementaryTypeName","src":"26039:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45497,"initialValue":{"arguments":[{"expression":{"expression":{"id":45487,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26119:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26133:6:64","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":48590,"src":"26119:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":45489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26140:9:64","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":48586,"src":"26119:30:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":45490,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26167:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26181:6:64","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":48590,"src":"26167:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":45492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26188:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"26167:23:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":45493,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26213:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26227:6:64","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":48590,"src":"26213:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":45495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26234:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"26213:28:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45484,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45476,"src":"26068:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26073:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"26068:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26081:12:64","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":45932,"src":"26068:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$48579_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":45496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26108:9:64","26163:2:64","26204:7:64"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26068:184:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26039:213:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45498,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45483,"src":"26267:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":45499,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26290:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26304:19:64","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48592,"src":"26290:33:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26267:56:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45506,"nodeType":"IfStatement","src":"26263:122:64","trueBody":{"id":45505,"nodeType":"Block","src":"26325:60:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45502,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36986,"src":"26346:26:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26346:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45504,"nodeType":"RevertStatement","src":"26339:35:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"25925:11:64","parameters":{"id":45480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45476,"mutability":"mutable","name":"self","nameLocation":"25969:4:64","nodeType":"VariableDeclaration","scope":45508,"src":"25937:36:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":45475,"nodeType":"UserDefinedTypeName","pathNode":{"id":45474,"name":"ParentValidatorsTracker","nameLocations":["25937:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"25937:23:64"},"referencedDeclaration":48680,"src":"25937:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":45479,"mutability":"mutable","name":"changeRequest","nameLocation":"26005:13:64","nodeType":"VariableDeclaration","scope":45508,"src":"25975:43:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":45478,"nodeType":"UserDefinedTypeName","pathNode":{"id":45477,"name":"StakingChangeRequest","nameLocations":["25975:20:64"],"nodeType":"IdentifierPath","referencedDeclaration":48593,"src":"25975:20:64"},"referencedDeclaration":48593,"src":"25975:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"25936:83:64"},"returnParameters":{"id":45481,"nodeType":"ParameterList","parameters":[],"src":"26029:0:64"},"scope":45728,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45549,"nodeType":"FunctionDefinition","src":"26397:415:64","nodes":[],"body":{"id":45548,"nodeType":"Block","src":"26540:272:64","nodes":[],"statements":[{"assignments":[45519],"declarations":[{"constant":false,"id":45519,"mutability":"mutable","name":"length","nameLocation":"26558:6:64","nodeType":"VariableDeclaration","scope":45548,"src":"26550:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45518,"name":"uint256","nodeType":"ElementaryTypeName","src":"26550:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45522,"initialValue":{"expression":{"id":45520,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45515,"src":"26567:14:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":45521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26582:6:64","memberName":"length","nodeType":"MemberAccess","src":"26567:21:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26550:38:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45523,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45519,"src":"26602:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26612:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26602:11:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45528,"nodeType":"IfStatement","src":"26598:48:64","trueBody":{"id":45527,"nodeType":"Block","src":"26615:31:64","statements":[{"functionReturnParameters":45517,"id":45526,"nodeType":"Return","src":"26629:7:64"}]}},{"body":{"id":45546,"nodeType":"Block","src":"26686:120:64","statements":[{"expression":{"arguments":[{"id":45536,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45511,"src":"26712:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":45537,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45515,"src":"26718:14:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":45539,"indexExpression":{"id":45538,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45530,"src":"26733:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26718:17:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":45535,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45508,"src":"26700:11:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$48680_storage_ptr_$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":45540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26700:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45541,"nodeType":"ExpressionStatement","src":"26700:36:64"},{"id":45545,"nodeType":"UncheckedBlock","src":"26750:46:64","statements":[{"expression":{"id":45543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"26778:3:64","subExpression":{"id":45542,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45530,"src":"26780:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45544,"nodeType":"ExpressionStatement","src":"26778:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45532,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45530,"src":"26672:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45533,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45519,"src":"26676:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26672:10:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45547,"initializationExpression":{"assignments":[45530],"declarations":[{"constant":false,"id":45530,"mutability":"mutable","name":"i","nameLocation":"26669:1:64","nodeType":"VariableDeclaration","scope":45547,"src":"26661:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45529,"name":"uint256","nodeType":"ElementaryTypeName","src":"26661:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45531,"nodeType":"VariableDeclarationStatement","src":"26661:9:64"},"nodeType":"ForStatement","src":"26656:150:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26406:16:64","parameters":{"id":45516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45511,"mutability":"mutable","name":"self","nameLocation":"26464:4:64","nodeType":"VariableDeclaration","scope":45549,"src":"26432:36:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":45510,"nodeType":"UserDefinedTypeName","pathNode":{"id":45509,"name":"ParentValidatorsTracker","nameLocations":["26432:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"26432:23:64"},"referencedDeclaration":48680,"src":"26432:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":45515,"mutability":"mutable","name":"changeRequests","nameLocation":"26510:14:64","nodeType":"VariableDeclaration","scope":45549,"src":"26478:46:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":45513,"nodeType":"UserDefinedTypeName","pathNode":{"id":45512,"name":"StakingChangeRequest","nameLocations":["26478:20:64"],"nodeType":"IdentifierPath","referencedDeclaration":48593,"src":"26478:20:64"},"referencedDeclaration":48593,"src":"26478:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":45514,"nodeType":"ArrayTypeName","src":"26478:22:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26422:108:64"},"returnParameters":{"id":45517,"nodeType":"ParameterList","parameters":[],"src":"26540:0:64"},"scope":45728,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45727,"nodeType":"FunctionDefinition","src":"26883:1594:64","nodes":[],"body":{"id":45726,"nodeType":"Block","src":"26981:1496:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45558,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"26995:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":45559,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27018:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27023:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27018:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27031:23:64","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"27018:36:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26995:59:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45567,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"27126:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":45568,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27148:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27153:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27148:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27161:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"27148:37:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27126:59:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45574,"nodeType":"IfStatement","src":"27122:96:64","trueBody":{"id":45573,"nodeType":"Block","src":"27187:31:64","statements":[{"functionReturnParameters":45557,"id":45572,"nodeType":"Return","src":"27201:7:64"}]}},"id":45575,"nodeType":"IfStatement","src":"26991:227:64","trueBody":{"id":45566,"nodeType":"Block","src":"27056:60:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45563,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36940,"src":"27077:26:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27077:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45565,"nodeType":"RevertStatement","src":"27070:35:64"}]}},{"assignments":[45577],"declarations":[{"constant":false,"id":45577,"mutability":"mutable","name":"start","nameLocation":"27235:5:64","nodeType":"VariableDeclaration","scope":45726,"src":"27228:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45576,"name":"uint64","nodeType":"ElementaryTypeName","src":"27228:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45581,"initialValue":{"expression":{"expression":{"id":45578,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27243:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27248:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27243:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27256:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"27243:37:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27228:52:64"},{"body":{"id":45714,"nodeType":"Block","src":"27342:1056:64","statements":[{"assignments":[45591],"declarations":[{"constant":false,"id":45591,"mutability":"mutable","name":"change","nameLocation":"27378:6:64","nodeType":"VariableDeclaration","scope":45714,"src":"27356:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45590,"nodeType":"UserDefinedTypeName","pathNode":{"id":45589,"name":"StakingChange","nameLocations":["27356:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":48587,"src":"27356:13:64"},"referencedDeclaration":48587,"src":"27356:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":45597,"initialValue":{"arguments":[{"id":45595,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"27410:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":45592,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27387:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27392:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27387:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27400:9:64","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":45950,"src":"27387:22:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$48587_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":45596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27387:25:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27356:56:64"},{"assignments":[45599],"declarations":[{"constant":false,"id":45599,"mutability":"mutable","name":"validator","nameLocation":"27434:9:64","nodeType":"VariableDeclaration","scope":45714,"src":"27426:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45598,"name":"address","nodeType":"ElementaryTypeName","src":"27426:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45602,"initialValue":{"expression":{"id":45600,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27446:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27453:9:64","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":48586,"src":"27446:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27426:36:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45603,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27481:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45604,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27488:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"27481:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45605,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"27494:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27511:11:64","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":48577,"src":"27494:28:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"27481:41:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45621,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27630:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27637:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"27630:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45623,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"27643:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27660:17:64","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":48578,"src":"27643:34:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"27630:47:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45699,"nodeType":"Block","src":"27951:336:64","statements":[{"assignments":[45663],"declarations":[{"constant":false,"id":45663,"mutability":"mutable","name":"amount","nameLocation":"27977:6:64","nodeType":"VariableDeclaration","scope":45699,"src":"27969:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45662,"name":"uint256","nodeType":"ElementaryTypeName","src":"27969:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45672,"initialValue":{"arguments":[{"expression":{"id":45666,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27997:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28004:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"27997:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28014:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45668,"name":"uint256","nodeType":"ElementaryTypeName","src":"28014:7:64","typeDescriptions":{}}}],"id":45670,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28013:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":45664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27986:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27990:6:64","memberName":"decode","nodeType":"MemberAccess","src":"27986:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27986:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27969:54:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45673,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"28046:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28053:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"28046:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45675,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"28059:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28076:8:64","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":48576,"src":"28059:25:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"28046:38:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45697,"nodeType":"Block","src":"28183:90:64","statements":[{"expression":{"arguments":[{"id":45693,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"28236:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45694,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45663,"src":"28247:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45688,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28205:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28210:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"28205:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28221:14:64","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44151,"src":"28205:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28205:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45696,"nodeType":"ExpressionStatement","src":"28205:49:64"}]},"id":45698,"nodeType":"IfStatement","src":"28042:231:64","trueBody":{"id":45687,"nodeType":"Block","src":"28086:91:64","statements":[{"expression":{"arguments":[{"id":45683,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"28140:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45684,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45663,"src":"28151:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45678,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28108:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28113:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"28108:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28124:15:64","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44217,"src":"28108:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28108:50:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45686,"nodeType":"ExpressionStatement","src":"28108:50:64"}]}}]},"id":45700,"nodeType":"IfStatement","src":"27626:661:64","trueBody":{"id":45661,"nodeType":"Block","src":"27679:266:64","statements":[{"assignments":[45627,45629],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"metadata","nameLocation":"27711:8:64","nodeType":"VariableDeclaration","scope":45661,"src":"27698:21:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45626,"name":"bytes","nodeType":"ElementaryTypeName","src":"27698:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45629,"mutability":"mutable","name":"power","nameLocation":"27729:5:64","nodeType":"VariableDeclaration","scope":45661,"src":"27721:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45628,"name":"uint256","nodeType":"ElementaryTypeName","src":"27721:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45640,"initialValue":{"arguments":[{"expression":{"id":45632,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27749:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27756:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"27749:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27766:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":45634,"name":"bytes","nodeType":"ElementaryTypeName","src":"27766:5:64","typeDescriptions":{}}},{"id":45637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27773:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45636,"name":"uint256","nodeType":"ElementaryTypeName","src":"27773:7:64","typeDescriptions":{}}}],"id":45638,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27765:16:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":45630,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27738:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27742:6:64","memberName":"decode","nodeType":"MemberAccess","src":"27738:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27738:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"27697:85:64"},{"expression":{"id":45650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45641,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27800:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27805:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"27800:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27816:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"27800:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45647,"indexExpression":{"id":45644,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"27827:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27800:37:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"27838:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"27800:46:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45649,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45627,"src":"27849:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"27800:57:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45651,"nodeType":"ExpressionStatement","src":"27800:57:64"},{"expression":{"arguments":[{"id":45657,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"27913:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45658,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45629,"src":"27924:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45652,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27875:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45655,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27880:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"27875:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27891:21:64","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44109,"src":"27875:37:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27875:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45660,"nodeType":"ExpressionStatement","src":"27875:55:64"}]}},"id":45701,"nodeType":"IfStatement","src":"27477:810:64","trueBody":{"id":45620,"nodeType":"Block","src":"27524:96:64","statements":[{"expression":{"id":45618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45608,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27542:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27547:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"27542:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27558:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"27542:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45614,"indexExpression":{"id":45611,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"27569:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27542:37:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"27580:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"27542:46:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45616,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27591:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27598:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"27591:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"27542:63:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45619,"nodeType":"ExpressionStatement","src":"27542:63:64"}]}},{"expression":{"arguments":[{"id":45707,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"28326:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":45702,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28301:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28306:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"28301:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28314:11:64","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":45965,"src":"28301:24:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":45708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28301:27:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45709,"nodeType":"ExpressionStatement","src":"28301:27:64"},{"id":45713,"nodeType":"UncheckedBlock","src":"28342:46:64","statements":[{"expression":{"id":45711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28370:3:64","subExpression":{"id":45710,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"28372:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45712,"nodeType":"ExpressionStatement","src":"28370:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45586,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"27314:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":45587,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"27319:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27314:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45715,"initializationExpression":{"assignments":[45583],"declarations":[{"constant":false,"id":45583,"mutability":"mutable","name":"i","nameLocation":"27303:1:64","nodeType":"VariableDeclaration","scope":45715,"src":"27296:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45582,"name":"uint64","nodeType":"ElementaryTypeName","src":"27296:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45585,"initialValue":{"id":45584,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45577,"src":"27307:5:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27296:16:64"},"nodeType":"ForStatement","src":"27291:1107:64"},{"expression":{"id":45724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":45716,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28407:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28412:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"28407:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28420:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"28407:37:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45721,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"28447:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":45722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28469:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28447:23:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28407:63:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45725,"nodeType":"ExpressionStatement","src":"28407:63:64"}]},"documentation":{"id":45550,"nodeType":"StructuredDocumentation","src":"26818:60:64","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"26892:13:64","parameters":{"id":45556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45553,"mutability":"mutable","name":"self","nameLocation":"26938:4:64","nodeType":"VariableDeclaration","scope":45727,"src":"26906:36:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":45552,"nodeType":"UserDefinedTypeName","pathNode":{"id":45551,"name":"ParentValidatorsTracker","nameLocations":["26906:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"26906:23:64"},"referencedDeclaration":48680,"src":"26906:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":45555,"mutability":"mutable","name":"configurationNumber","nameLocation":"26951:19:64","nodeType":"VariableDeclaration","scope":45727,"src":"26944:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45554,"name":"uint64","nodeType":"ElementaryTypeName","src":"26944:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"26905:66:64"},"returnParameters":{"id":45557,"nodeType":"ParameterList","parameters":[],"src":"26981:0:64"},"scope":45728,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":45465,"nodeType":"StructuredDocumentation","src":"25629:155:64","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[45728],"name":"LibValidatorTracking","nameLocation":"25792:20:64","scope":45729,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":64} \ No newline at end of file +{"abi":[{"type":"event","name":"CollateralClaimed","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ConfigurationNumberConfirmed","inputs":[{"name":"number","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"NoRewardToWithdraw","inputs":[]}],"bytecode":{"object":"0x6080806040523461001c57610214908161002282393081602e0152f35b600080fdfe60406080815260048036101561001457600080fd5b600091823560e01c6382985e0b1461002b57600080fd5b307f0000000000000000000000000000000000000000000000000000000000000000146101da5760203660031901126101da5781356001600160a01b03808216908183036101d6576001600160a01b0383166000908152602160205260409020549283156101c6576001600160a01b03166000908152602160205260409020869055600e54869116803b156101c25781906024865180948193636c712ab960e11b8352888b8401525af180156101b85761018a575b50814710610174578480809381935af13d1561016f5767ffffffffffffffff3d81811161015c57835191601f8201601f19908116603f011683019081118382101761014757845281528460203d92013e5b1561013a578280f35b51630a12f52160e11b8152fd5b604186634e487b7160e01b6000525260246000fd5b634e487b7160e01b865260418552602486fd5b610131565b825163cd78605960e01b81523081860152602490fd5b67ffffffffffffffff81969296116101a557835293386100e0565b634e487b7160e01b825260418552602482fd5b84513d88823e3d90fd5b5080fd5b84516367300f9160e11b81528690fd5b8580fd5b8280fdfea2646970667358221220645b2cdeded347c45cb8ab1b33c2e5e03ace5874c3ee277d307b8ae83242105664736f6c63430008130033","sourceMap":"15338:10785:69:-:0;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60406080815260048036101561001457600080fd5b600091823560e01c6382985e0b1461002b57600080fd5b307f0000000000000000000000000000000000000000000000000000000000000000146101da5760203660031901126101da5781356001600160a01b03808216908183036101d6576001600160a01b0383166000908152602160205260409020549283156101c6576001600160a01b03166000908152602160205260409020869055600e54869116803b156101c25781906024865180948193636c712ab960e11b8352888b8401525af180156101b85761018a575b50814710610174578480809381935af13d1561016f5767ffffffffffffffff3d81811161015c57835191601f8201601f19908116603f011683019081118382101761014757845281528460203d92013e5b1561013a578280f35b51630a12f52160e11b8152fd5b604186634e487b7160e01b6000525260246000fd5b634e487b7160e01b865260418552602486fd5b610131565b825163cd78605960e01b81523081860152602490fd5b67ffffffffffffffff81969296116101a557835293386100e0565b634e487b7160e01b825260418552602482fd5b84513d88823e3d90fd5b5080fd5b84516367300f9160e11b81528690fd5b8580fd5b8280fdfea2646970667358221220645b2cdeded347c45cb8ab1b33c2e5e03ace5874c3ee277d307b8ae83242105664736f6c63430008130033","sourceMap":"15338:10785:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15338:10785:69;;;;;;-1:-1:-1;;;;;15338:10785:69;;;;;;;;;-1:-1:-1;;;;;15338:10785:69;;;;;;23516:16;15338:10785;;;;;;23564:11;;;23560:69;;-1:-1:-1;;;;;15338:10785:69;;;;;23516:16;15338:10785;;;;;;;;23695:16;15338:10785;23639:33;;15338:10785;23686:58;;;;;15338:10785;;;;;;;;;;;;23686:58;;;;;;15338:10785;23686:58;;;;;;;;15338:10785;1615:21:29;;;:30;1611:109;;1749:33;;;;;;;;15338:10785:69;;;;;;;;;;;;;;;;;-1:-1:-1;;15338:10785:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;1796:8:29;1792:63;;15338:10785:69;;;1792:63:29;15338:10785:69;-1:-1:-1;;;1827:17:29;;;15338:10785:69;;;;;;;;;;;;;-1:-1:-1;;;15338:10785:69;;;;;;;;;;;1611:109:29;15338:10785:69;;-1:-1:-1;;;1668:41:29;;15338:10785:69;1668:41:29;;;15338:10785:69;;;1668:41:29;23686:58:69;15338:10785;;;;;;;;;;23686:58;;;;15338:10785;-1:-1:-1;;;15338:10785:69;;;;;;;;23686:58;15338:10785;;;;;;;;;23686:58;15338:10785;;;23560:69;15338:10785;;-1:-1:-1;;;23598:20:69;;15338:10785;;23598:20;15338:10785;;;;;;;","linkReferences":{},"immutableReferences":{"library_deploy_address":[{"start":46,"length":32}]}},"methodIdentifiers":{"claimRewardForRelayer(address)":"82985e0b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoRewardToWithdraw\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CollateralClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"number\",\"type\":\"uint64\"}],\"name\":\"ConfigurationNumberConfirmed\",\"type\":\"event\"}],\"devdoc\":{\"errors\":{\"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\":{\"claimRewardForRelayer(address)\":{\"notice\":\"method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibStaking\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"NoRewardToWithdraw"},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"CollateralClaimed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"number","type":"uint64","indexed":false}],"type":"event","name":"ConfigurationNumberConfirmed","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"claimRewardForRelayer(address)":{"notice":"method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibStaking"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":46441,"exportedSymbols":{"Address":[32838],"AddressShouldBeValidator":[37368],"AddressStakingReleases":[50140],"CannotConfirmFutureChanges":[37372],"IGateway":[40354],"InvalidConfigurationNumber":[37418],"LibAddressStakingReleases":[44183],"LibMaxPQ":[49016],"LibMinPQ":[49635],"LibStaking":[46176],"LibStakingChangeLog":[46678],"LibStakingReleaseQueue":[44302],"LibSubnetActorStorage":[47292],"LibValidatorSet":[45293],"LibValidatorTracking":[46440],"MaxPQ":[48411],"MinPQ":[49029],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NotValidator":[37490],"ParentValidatorsTracker":[50197],"PermissionMode":[50165],"StakingChange":[50104],"StakingChangeLog":[50123],"StakingChangeRequest":[50110],"StakingOperation":[50096],"StakingRelease":[50130],"StakingReleaseQueue":[50150],"SubnetActorStorage":[47281],"Validator":[50211],"ValidatorSet":[50190],"WithdrawExceedingCollateral":[37510]},"nodeType":"SourceUnit","src":"46:28930:69","nodes":[{"id":44015,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":44017,"nodeType":"ImportDirective","src":"71:52:69","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":44016,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44020,"nodeType":"ImportDirective","src":"124:86:69","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":44018,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"132:21:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44019,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"155:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44023,"nodeType":"ImportDirective","src":"211:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49017,"symbolAliases":[{"foreign":{"id":44021,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49016,"src":"219:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44022,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48411,"src":"229:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44026,"nodeType":"ImportDirective","src":"268:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49636,"symbolAliases":[{"foreign":{"id":44024,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49635,"src":"276:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44025,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49029,"src":"286:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44028,"nodeType":"ImportDirective","src":"325:62:69","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":46679,"symbolAliases":[{"foreign":{"id":44027,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46678,"src":"333:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44040,"nodeType":"ImportDirective","src":"388:237:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":44029,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"396:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44030,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"412:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44031,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"433:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44032,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50104,"src":"451:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44033,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50110,"src":"466:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44034,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"488:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44035,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"506:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44036,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"522:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44037,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50140,"src":"536:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44038,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"560:23:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44039,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"585:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44048,"nodeType":"ImportDirective","src":"626:208:69","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":44041,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"634:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44042,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"654:27:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44043,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"683:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44044,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"697:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44045,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"725:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44046,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"749:24:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44047,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"775:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44050,"nodeType":"ImportDirective","src":"835:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":44049,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"843:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44183,"nodeType":"ContractDefinition","src":"902:1635:69","nodes":[{"id":44089,"nodeType":"FunctionDefinition","src":"1118:261:69","nodes":[],"body":{"id":44088,"nodeType":"Block","src":"1209:170:69","nodes":[],"statements":[{"assignments":[44061],"declarations":[{"constant":false,"id":44061,"mutability":"mutable","name":"length","nameLocation":"1226:6:69","nodeType":"VariableDeclaration","scope":44088,"src":"1219:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44060,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44064,"initialValue":{"expression":{"id":44062,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1235:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:69"},{"assignments":[44066],"declarations":[{"constant":false,"id":44066,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:69","nodeType":"VariableDeclaration","scope":44088,"src":"1256:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44065,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44071,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44067,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1273:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1273:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44069,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1289:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:69"},{"expression":{"id":44078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":44072,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"1306:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44076,"indexExpression":{"id":44074,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44066,"src":"1320:7:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44077,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44057,"src":"1331:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"id":44079,"nodeType":"ExpressionStatement","src":"1306:32:69"},{"expression":{"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44080,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1348:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1348:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44083,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1362:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":44084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44087,"nodeType":"ExpressionStatement","src":"1348:24:69"}]},"documentation":{"id":44051,"nodeType":"StructuredDocumentation","src":"942:171:69","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:69","parameters":{"id":44058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44054,"mutability":"mutable","name":"self","nameLocation":"1163:4:69","nodeType":"VariableDeclaration","scope":44089,"src":"1132:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44053,"nodeType":"UserDefinedTypeName","pathNode":{"id":44052,"name":"AddressStakingReleases","nameLocations":["1132:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1132:22:69"},"referencedDeclaration":50140,"src":"1132:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":44057,"mutability":"mutable","name":"release","nameLocation":"1191:7:69","nodeType":"VariableDeclaration","scope":44089,"src":"1169:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44056,"nodeType":"UserDefinedTypeName","pathNode":{"id":44055,"name":"StakingRelease","nameLocations":["1169:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1169:14:69"},"referencedDeclaration":50130,"src":"1169:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:69"},"returnParameters":{"id":44059,"nodeType":"ParameterList","parameters":[],"src":"1209:0:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44182,"nodeType":"FunctionDefinition","src":"1637:898:69","nodes":[],"body":{"id":44181,"nodeType":"Block","src":"1726:809:69","nodes":[],"statements":[{"assignments":[44101],"declarations":[{"constant":false,"id":44101,"mutability":"mutable","name":"length","nameLocation":"1743:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1736:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44100,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44104,"initialValue":{"expression":{"id":44102,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1752:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1752:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1777:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1777:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44113,"nodeType":"IfStatement","src":"1773:78:69","trueBody":{"id":44112,"nodeType":"Block","src":"1795:56:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44109,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"1816:22:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44111,"nodeType":"RevertStatement","src":"1809:31:69"}]}},{"assignments":[44115],"declarations":[{"constant":false,"id":44115,"mutability":"mutable","name":"i","nameLocation":"1868:1:69","nodeType":"VariableDeclaration","scope":44181,"src":"1861:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44114,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44118,"initialValue":{"expression":{"id":44116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1872:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1872:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:69"},{"assignments":[44120],"declarations":[{"constant":false,"id":44120,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:69","nodeType":"VariableDeclaration","scope":44181,"src":"1895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44119,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44122,"initialValue":{"id":44121,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1914:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:69"},{"assignments":[44124],"declarations":[{"constant":false,"id":44124,"mutability":"mutable","name":"amount","nameLocation":"1938:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1930:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44125,"nodeType":"VariableDeclarationStatement","src":"1930:14:69"},{"body":{"id":44163,"nodeType":"Block","src":"1973:458:69","statements":[{"assignments":[44131],"declarations":[{"constant":false,"id":44131,"mutability":"mutable","name":"release","nameLocation":"2009:7:69","nodeType":"VariableDeclaration","scope":44163,"src":"1987:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44130,"nodeType":"UserDefinedTypeName","pathNode":{"id":44129,"name":"StakingRelease","nameLocations":["1987:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1987:14:69"},"referencedDeclaration":50130,"src":"1987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44136,"initialValue":{"baseExpression":{"expression":{"id":44132,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2019:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2019:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44135,"indexExpression":{"id":44134,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2033:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44137,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2184:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:69","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":50126,"src":"2184:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":44139,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:69","memberName":"number","nodeType":"MemberAccess","src":"2204:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44144,"nodeType":"IfStatement","src":"2180:76:69","trueBody":{"id":44143,"nodeType":"Block","src":"2218:38:69","statements":[{"id":44142,"nodeType":"Break","src":"2236:5:69"}]}},{"expression":{"id":44148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44145,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":44146,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2280:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:69","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":50129,"src":"2280:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44149,"nodeType":"ExpressionStatement","src":"2270:24:69"},{"expression":{"id":44154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:69","subExpression":{"baseExpression":{"expression":{"id":44150,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2315:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2315:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44153,"indexExpression":{"id":44152,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2329:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44155,"nodeType":"ExpressionStatement","src":"2308:23:69"},{"id":44162,"nodeType":"UncheckedBlock","src":"2346:75:69","statements":[{"expression":{"id":44157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:69","subExpression":{"id":44156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2376:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44158,"nodeType":"ExpressionStatement","src":"2374:3:69"},{"expression":{"id":44160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:69","subExpression":{"id":44159,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2397:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44161,"nodeType":"ExpressionStatement","src":"2395:11:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44126,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"1961:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44127,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1965:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44164,"nodeType":"WhileStatement","src":"1954:477:69"},{"expression":{"id":44169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44165,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2441:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"2441:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44168,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2457:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44170,"nodeType":"ExpressionStatement","src":"2441:17:69"},{"expression":{"id":44175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44171,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2468:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"2468:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44174,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2482:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44176,"nodeType":"ExpressionStatement","src":"2468:23:69"},{"expression":{"components":[{"id":44177,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2510:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44178,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2518:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":44179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":44099,"id":44180,"nodeType":"Return","src":"2502:26:69"}]},"documentation":{"id":44090,"nodeType":"StructuredDocumentation","src":"1385:247:69","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:69","parameters":{"id":44094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44093,"mutability":"mutable","name":"self","nameLocation":"1685:4:69","nodeType":"VariableDeclaration","scope":44182,"src":"1654:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44092,"nodeType":"UserDefinedTypeName","pathNode":{"id":44091,"name":"AddressStakingReleases","nameLocations":["1654:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1654:22:69"},"referencedDeclaration":50140,"src":"1654:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:69"},"returnParameters":{"id":44099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1709:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44095,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1718:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44097,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[44183],"name":"LibAddressStakingReleases","nameLocation":"910:25:69","scope":46441,"usedErrors":[]},{"id":44302,"nodeType":"ContractDefinition","src":"2586:1272:69","nodes":[{"id":44187,"nodeType":"UsingForDirective","src":"2623:34:69","nodes":[],"global":false,"libraryName":{"id":44185,"name":"Address","nameLocations":["2629:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"2629:7:69"},"typeName":{"id":44186,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44191,"nodeType":"UsingForDirective","src":"2662:59:69","nodes":[],"global":false,"libraryName":{"id":44188,"name":"LibAddressStakingReleases","nameLocations":["2668:25:69"],"nodeType":"IdentifierPath","referencedDeclaration":44183,"src":"2668:25:69"},"typeName":{"id":44190,"nodeType":"UserDefinedTypeName","pathNode":{"id":44189,"name":"AddressStakingReleases","nameLocations":["2698:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"2698:22:69"},"referencedDeclaration":50140,"src":"2698:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":44199,"nodeType":"EventDefinition","src":"2727:84:69","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:69","parameters":{"id":44198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44193,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:69","nodeType":"VariableDeclaration","scope":44199,"src":"2754:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44192,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44195,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:69","nodeType":"VariableDeclaration","scope":44199,"src":"2773:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44194,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44197,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:69","nodeType":"VariableDeclaration","scope":44199,"src":"2789:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:69"}},{"id":44214,"nodeType":"FunctionDefinition","src":"2817:130:69","nodes":[],"body":{"id":44213,"nodeType":"Block","src":"2901:46:69","nodes":[],"statements":[{"expression":{"id":44211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44207,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44202,"src":"2911:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"2911:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44210,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44204,"src":"2934:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44212,"nodeType":"ExpressionStatement","src":"2911:29:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:69","parameters":{"id":44205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44202,"mutability":"mutable","name":"self","nameLocation":"2870:4:69","nodeType":"VariableDeclaration","scope":44214,"src":"2842:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44201,"nodeType":"UserDefinedTypeName","pathNode":{"id":44200,"name":"StakingReleaseQueue","nameLocations":["2842:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2842:19:69"},"referencedDeclaration":50150,"src":"2842:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44204,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:69","nodeType":"VariableDeclaration","scope":44214,"src":"2876:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44203,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:69"},"returnParameters":{"id":44206,"nodeType":"ParameterList","parameters":[],"src":"2901:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44257,"nodeType":"FunctionDefinition","src":"3016:419:69","nodes":[],"body":{"id":44256,"nodeType":"Block","src":"3117:318:69","nodes":[],"statements":[{"assignments":[44226],"declarations":[{"constant":false,"id":44226,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:69","nodeType":"VariableDeclaration","scope":44256,"src":"3127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44225,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44232,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44227,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:69","memberName":"number","nodeType":"MemberAccess","src":"3147:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":44229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3162:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"3162:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:69"},{"assignments":[44235],"declarations":[{"constant":false,"id":44235,"mutability":"mutable","name":"release","nameLocation":"3214:7:69","nodeType":"VariableDeclaration","scope":44256,"src":"3192:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44234,"nodeType":"UserDefinedTypeName","pathNode":{"id":44233,"name":"StakingRelease","nameLocations":["3192:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"3192:14:69"},"referencedDeclaration":50130,"src":"3192:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44240,"initialValue":{"arguments":[{"id":44237,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3251:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44238,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44236,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"3224:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$50130_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":44239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:69","3262:6:69"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:69"},{"expression":{"arguments":[{"id":44247,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44235,"src":"3319:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":44241,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3289:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3289:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44245,"indexExpression":{"id":44243,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3303:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:69","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":44089,"src":"3289:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$_t_struct$_StakingRelease_$50130_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":44248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44249,"nodeType":"ExpressionStatement","src":"3289:38:69"},{"eventCall":{"arguments":[{"id":44251,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3376:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44252,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3395:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44253,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3417:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44250,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44199,"src":"3343:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":44254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:69","3387:6:69","3403:12:69"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44255,"nodeType":"EmitStatement","src":"3338:90:69"}]},"documentation":{"id":44215,"nodeType":"StructuredDocumentation","src":"2953:58:69","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:69","parameters":{"id":44223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44218,"mutability":"mutable","name":"self","nameLocation":"3067:4:69","nodeType":"VariableDeclaration","scope":44257,"src":"3039:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44217,"nodeType":"UserDefinedTypeName","pathNode":{"id":44216,"name":"StakingReleaseQueue","nameLocations":["3039:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3039:19:69"},"referencedDeclaration":50150,"src":"3039:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44220,"mutability":"mutable","name":"validator","nameLocation":"3081:9:69","nodeType":"VariableDeclaration","scope":44257,"src":"3073:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44219,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44222,"mutability":"mutable","name":"amount","nameLocation":"3100:6:69","nodeType":"VariableDeclaration","scope":44257,"src":"3092:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:69"},"returnParameters":{"id":44224,"nodeType":"ParameterList","parameters":[],"src":"3117:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44301,"nodeType":"FunctionDefinition","src":"3516:340:69","nodes":[],"body":{"id":44300,"nodeType":"Block","src":"3611:245:69","nodes":[],"statements":[{"assignments":[44269,44271],"declarations":[{"constant":false,"id":44269,"mutability":"mutable","name":"amount","nameLocation":"3630:6:69","nodeType":"VariableDeclaration","scope":44300,"src":"3622:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44268,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44271,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:69","nodeType":"VariableDeclaration","scope":44300,"src":"3638:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44270,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44278,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":44272,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3658:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3658:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44275,"indexExpression":{"id":44274,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3672:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:69","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":44182,"src":"3658:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":44277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44279,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44271,"src":"3707:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44289,"nodeType":"IfStatement","src":"3703:76:69","trueBody":{"id":44288,"nodeType":"Block","src":"3723:56:69","statements":[{"expression":{"id":44286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:69","subExpression":{"baseExpression":{"expression":{"id":44282,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3744:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3744:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44285,"indexExpression":{"id":44284,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3758:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44287,"nodeType":"ExpressionStatement","src":"3737:31:69"}]}},{"expression":{"arguments":[{"id":44295,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44292,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3797:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":44290,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":44293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"3789:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":44296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44297,"nodeType":"ExpressionStatement","src":"3789:36:69"},{"expression":{"id":44298,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3843:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44267,"id":44299,"nodeType":"Return","src":"3836:13:69"}]},"documentation":{"id":44258,"nodeType":"StructuredDocumentation","src":"3441:70:69","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:69","parameters":{"id":44264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44261,"mutability":"mutable","name":"self","nameLocation":"3559:4:69","nodeType":"VariableDeclaration","scope":44301,"src":"3531:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44260,"nodeType":"UserDefinedTypeName","pathNode":{"id":44259,"name":"StakingReleaseQueue","nameLocations":["3531:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3531:19:69"},"referencedDeclaration":50150,"src":"3531:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44263,"mutability":"mutable","name":"validator","nameLocation":"3573:9:69","nodeType":"VariableDeclaration","scope":44301,"src":"3565:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44262,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:69"},"returnParameters":{"id":44267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44301,"src":"3602:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44265,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":44184,"nodeType":"StructuredDocumentation","src":"2539:47:69","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[44302],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:69","scope":46441,"usedErrors":[]},{"id":45293,"nodeType":"ContractDefinition","src":"3900:11436:69","nodes":[{"id":44307,"nodeType":"UsingForDirective","src":"3930:25:69","nodes":[],"global":false,"libraryName":{"id":44304,"name":"LibMinPQ","nameLocations":["3936:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"3936:8:69"},"typeName":{"id":44306,"nodeType":"UserDefinedTypeName","pathNode":{"id":44305,"name":"MinPQ","nameLocations":["3949:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"3949:5:69"},"referencedDeclaration":49029,"src":"3949:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":44311,"nodeType":"UsingForDirective","src":"3960:25:69","nodes":[],"global":false,"libraryName":{"id":44308,"name":"LibMaxPQ","nameLocations":["3966:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"3966:8:69"},"typeName":{"id":44310,"nodeType":"UserDefinedTypeName","pathNode":{"id":44309,"name":"MaxPQ","nameLocations":["3979:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3979:5:69"},"referencedDeclaration":48411,"src":"3979:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44317,"nodeType":"EventDefinition","src":"3991:76:69","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:69","parameters":{"id":44316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44313,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:69","nodeType":"VariableDeclaration","scope":44317,"src":"4030:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44312,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44315,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:69","nodeType":"VariableDeclaration","scope":44317,"src":"4049:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44314,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:69"}},{"id":44323,"nodeType":"EventDefinition","src":"4072:77:69","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:69","parameters":{"id":44322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44319,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:69","nodeType":"VariableDeclaration","scope":44323,"src":"4112:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44318,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44321,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:69","nodeType":"VariableDeclaration","scope":44323,"src":"4131:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44320,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:69"}},{"id":44329,"nodeType":"EventDefinition","src":"4154:59:69","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:69","parameters":{"id":44328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:69","nodeType":"VariableDeclaration","scope":44329,"src":"4179:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44324,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44327,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:69","nodeType":"VariableDeclaration","scope":44329,"src":"4198:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44326,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:69"}},{"id":44335,"nodeType":"EventDefinition","src":"4218:60:69","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:69","parameters":{"id":44334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44331,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:69","nodeType":"VariableDeclaration","scope":44335,"src":"4244:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44330,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44333,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:69","nodeType":"VariableDeclaration","scope":44335,"src":"4263:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44332,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:69"}},{"id":44341,"nodeType":"EventDefinition","src":"4283:74:69","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:69","parameters":{"id":44340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44337,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4313:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44336,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44339,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4335:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44338,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:69"}},{"id":44345,"nodeType":"EventDefinition","src":"4362:45:69","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:69","parameters":{"id":44344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44343,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:69","nodeType":"VariableDeclaration","scope":44345,"src":"4388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44342,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:69"}},{"id":44349,"nodeType":"EventDefinition","src":"4412:46:69","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:69","parameters":{"id":44348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44347,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:69","nodeType":"VariableDeclaration","scope":44349,"src":"4439:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44346,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:69"}},{"id":44385,"nodeType":"FunctionDefinition","src":"4525:375:69","nodes":[],"body":{"id":44384,"nodeType":"Block","src":"4654:246:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":44364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44360,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4668:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:69","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"4668:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":44362,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"4697:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":44363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:69","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"4697:24:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"4668:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44382,"nodeType":"Block","src":"4809:85:69","statements":[{"expression":{"id":44380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44374,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4823:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44375,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4831:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4831:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44378,"indexExpression":{"id":44377,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4853:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"4831:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44381,"nodeType":"ExpressionStatement","src":"4823:60:69"}]},"id":44383,"nodeType":"IfStatement","src":"4664:230:69","trueBody":{"id":44373,"nodeType":"Block","src":"4723:80:69","statements":[{"expression":{"id":44371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44365,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4737:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44366,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4745:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4745:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44369,"indexExpression":{"id":44368,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4767:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"4745:47:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44372,"nodeType":"ExpressionStatement","src":"4737:55:69"}]}}]},"documentation":{"id":44350,"nodeType":"StructuredDocumentation","src":"4464:56:69","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:69","parameters":{"id":44356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44353,"mutability":"mutable","name":"validators","nameLocation":"4573:10:69","nodeType":"VariableDeclaration","scope":44385,"src":"4552:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44352,"nodeType":"UserDefinedTypeName","pathNode":{"id":44351,"name":"ValidatorSet","nameLocations":["4552:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4552:12:69"},"referencedDeclaration":50190,"src":"4552:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44355,"mutability":"mutable","name":"validator","nameLocation":"4601:9:69","nodeType":"VariableDeclaration","scope":44385,"src":"4593:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44354,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:69"},"returnParameters":{"id":44359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44358,"mutability":"mutable","name":"power","nameLocation":"4647:5:69","nodeType":"VariableDeclaration","scope":44385,"src":"4639:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44357,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44400,"nodeType":"FunctionDefinition","src":"4976:178:69","nodes":[],"body":{"id":44399,"nodeType":"Block","src":"5089:65:69","nodes":[],"statements":[{"expression":{"id":44397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44394,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44392,"src":"5099:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44395,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44389,"src":"5112:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"5112:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44398,"nodeType":"ExpressionStatement","src":"5099:48:69"}]},"documentation":{"id":44386,"nodeType":"StructuredDocumentation","src":"4906:65:69","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:69","parameters":{"id":44390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44389,"mutability":"mutable","name":"validators","nameLocation":"5034:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5013:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44388,"nodeType":"UserDefinedTypeName","pathNode":{"id":44387,"name":"ValidatorSet","nameLocations":["5013:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5013:12:69"},"referencedDeclaration":50190,"src":"5013:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:69"},"returnParameters":{"id":44393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44392,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5069:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44391,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44417,"nodeType":"FunctionDefinition","src":"5209:163:69","nodes":[],"body":{"id":44416,"nodeType":"Block","src":"5310:62:69","nodes":[],"statements":[{"expression":{"id":44414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44409,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44407,"src":"5320:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44410,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44404,"src":"5328:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5328:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5328:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44415,"nodeType":"ExpressionStatement","src":"5320:45:69"}]},"documentation":{"id":44401,"nodeType":"StructuredDocumentation","src":"5160:44:69","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:69","parameters":{"id":44405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44404,"mutability":"mutable","name":"validators","nameLocation":"5261:10:69","nodeType":"VariableDeclaration","scope":44417,"src":"5240:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44403,"nodeType":"UserDefinedTypeName","pathNode":{"id":44402,"name":"ValidatorSet","nameLocations":["5240:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5240:12:69"},"referencedDeclaration":50190,"src":"5240:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:69"},"returnParameters":{"id":44408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44407,"mutability":"mutable","name":"total","nameLocation":"5303:5:69","nodeType":"VariableDeclaration","scope":44417,"src":"5296:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44406,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44437,"nodeType":"FunctionDefinition","src":"5441:231:69","nodes":[],"body":{"id":44436,"nodeType":"Block","src":"5590:82:69","nodes":[],"statements":[{"expression":{"id":44434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44428,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44426,"src":"5600:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44429,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44421,"src":"5613:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"5613:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44432,"indexExpression":{"id":44431,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44423,"src":"5635:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"5613:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44435,"nodeType":"ExpressionStatement","src":"5600:65:69"}]},"documentation":{"id":44418,"nodeType":"StructuredDocumentation","src":"5378:58:69","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:69","parameters":{"id":44424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44421,"mutability":"mutable","name":"validators","nameLocation":"5503:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5482:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44420,"nodeType":"UserDefinedTypeName","pathNode":{"id":44419,"name":"ValidatorSet","nameLocations":["5482:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5482:12:69"},"referencedDeclaration":50190,"src":"5482:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44423,"mutability":"mutable","name":"validator","nameLocation":"5531:9:69","nodeType":"VariableDeclaration","scope":44437,"src":"5523:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44422,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:69"},"returnParameters":{"id":44427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44426,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5570:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44425,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44489,"nodeType":"FunctionDefinition","src":"5678:434:69","nodes":[],"body":{"id":44488,"nodeType":"Block","src":"5792:320:69","nodes":[],"statements":[{"assignments":[44447],"declarations":[{"constant":false,"id":44447,"mutability":"mutable","name":"size","nameLocation":"5809:4:69","nodeType":"VariableDeclaration","scope":44488,"src":"5802:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44446,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44452,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44448,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5816:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5816:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5816:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:69"},{"expression":{"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44453,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5863:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44457,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5889:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":44456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":44454,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44455,"nodeType":"ArrayTypeName","src":"5879:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":44458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44460,"nodeType":"ExpressionStatement","src":"5863:31:69"},{"body":{"id":44484,"nodeType":"Block","src":"5936:144:69","statements":[{"expression":{"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44468,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5950:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44472,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5960:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":44470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6008:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44473,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5969:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5969:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"5969:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44479,"nodeType":"ExpressionStatement","src":"5950:60:69"},{"id":44483,"nodeType":"UncheckedBlock","src":"6024:46:69","statements":[{"expression":{"id":44481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:69","subExpression":{"id":44480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6054:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44482,"nodeType":"ExpressionStatement","src":"6052:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5923:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44466,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5928:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44485,"initializationExpression":{"assignments":[44462],"declarations":[{"constant":false,"id":44462,"mutability":"mutable","name":"i","nameLocation":"5916:1:69","nodeType":"VariableDeclaration","scope":44485,"src":"5909:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44461,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44464,"initialValue":{"hexValue":"31","id":44463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:69"},"nodeType":"ForStatement","src":"5904:176:69"},{"expression":{"id":44486,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"6096:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":44445,"id":44487,"nodeType":"Return","src":"6089:16:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:69","parameters":{"id":44441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44440,"mutability":"mutable","name":"validators","nameLocation":"5729:10:69","nodeType":"VariableDeclaration","scope":44489,"src":"5708:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44439,"nodeType":"UserDefinedTypeName","pathNode":{"id":44438,"name":"ValidatorSet","nameLocations":["5708:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5708:12:69"},"referencedDeclaration":50190,"src":"5708:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:69"},"returnParameters":{"id":44445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44444,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:69","nodeType":"VariableDeclaration","scope":44489,"src":"5764:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44442,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44443,"nodeType":"ArrayTypeName","src":"5764:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44534,"nodeType":"FunctionDefinition","src":"6183:418:69","nodes":[],"body":{"id":44533,"nodeType":"Block","src":"6288:313:69","nodes":[],"statements":[{"assignments":[44499],"declarations":[{"constant":false,"id":44499,"mutability":"mutable","name":"size","nameLocation":"6305:4:69","nodeType":"VariableDeclaration","scope":44533,"src":"6298:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44498,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44500,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6312:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6312:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"6312:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:69"},{"body":{"id":44531,"nodeType":"Block","src":"6391:204:69","statements":[{"assignments":[44513],"declarations":[{"constant":false,"id":44513,"mutability":"mutable","name":"validator","nameLocation":"6413:9:69","nodeType":"VariableDeclaration","scope":44531,"src":"6405:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44512,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44519,"initialValue":{"arguments":[{"id":44517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6464:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44514,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6425:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6425:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"6425:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:69"},{"expression":{"id":44525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44520,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44496,"src":"6480:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44522,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6503:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44523,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44513,"src":"6515:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44521,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"6494:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44526,"nodeType":"ExpressionStatement","src":"6480:45:69"},{"id":44530,"nodeType":"UncheckedBlock","src":"6539:46:69","statements":[{"expression":{"id":44528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:69","subExpression":{"id":44527,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6569:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44529,"nodeType":"ExpressionStatement","src":"6567:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6378:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44510,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44499,"src":"6383:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44532,"initializationExpression":{"assignments":[44506],"declarations":[{"constant":false,"id":44506,"mutability":"mutable","name":"i","nameLocation":"6371:1:69","nodeType":"VariableDeclaration","scope":44532,"src":"6364:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44505,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44508,"initialValue":{"hexValue":"31","id":44507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:69"},"nodeType":"ForStatement","src":"6359:236:69"}]},"documentation":{"id":44490,"nodeType":"StructuredDocumentation","src":"6118:60:69","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:69","parameters":{"id":44494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44493,"mutability":"mutable","name":"validators","nameLocation":"6233:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6212:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44492,"nodeType":"UserDefinedTypeName","pathNode":{"id":44491,"name":"ValidatorSet","nameLocations":["6212:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6212:12:69"},"referencedDeclaration":50190,"src":"6212:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:69"},"returnParameters":{"id":44497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44496,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6268:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44495,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44585,"nodeType":"FunctionDefinition","src":"6690:496:69","nodes":[],"body":{"id":44584,"nodeType":"Block","src":"6794:392:69","nodes":[],"statements":[{"assignments":[44544],"declarations":[{"constant":false,"id":44544,"mutability":"mutable","name":"size","nameLocation":"6811:4:69","nodeType":"VariableDeclaration","scope":44584,"src":"6804:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44543,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44549,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44545,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6818:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6818:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"6818:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:69"},{"body":{"id":44576,"nodeType":"Block","src":"6898:219:69","statements":[{"assignments":[44558],"declarations":[{"constant":false,"id":44558,"mutability":"mutable","name":"validator","nameLocation":"6920:9:69","nodeType":"VariableDeclaration","scope":44576,"src":"6912:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44557,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44564,"initialValue":{"arguments":[{"id":44562,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6972:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44559,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6932:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6932:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":48450,"src":"6932:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":44563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:69"},{"expression":{"id":44570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44565,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"6988:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44567,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7025:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44568,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44558,"src":"7037:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44566,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44437,"src":"7002:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44571,"nodeType":"ExpressionStatement","src":"6988:59:69"},{"id":44575,"nodeType":"UncheckedBlock","src":"7061:46:69","statements":[{"expression":{"id":44573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:69","subExpression":{"id":44572,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"7091:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44574,"nodeType":"ExpressionStatement","src":"7089:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44554,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6885:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44555,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44544,"src":"6890:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44577,"initializationExpression":{"assignments":[44551],"declarations":[{"constant":false,"id":44551,"mutability":"mutable","name":"i","nameLocation":"6878:1:69","nodeType":"VariableDeclaration","scope":44577,"src":"6871:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44550,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44553,"initialValue":{"hexValue":"31","id":44552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:69"},"nodeType":"ForStatement","src":"6866:251:69"},{"expression":{"id":44582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44578,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"7126:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44580,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7168:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":44579,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"7140:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44583,"nodeType":"ExpressionStatement","src":"7126:53:69"}]},"documentation":{"id":44535,"nodeType":"StructuredDocumentation","src":"6607:78:69","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:69","parameters":{"id":44539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44538,"mutability":"mutable","name":"validators","nameLocation":"6739:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6718:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44537,"nodeType":"UserDefinedTypeName","pathNode":{"id":44536,"name":"ValidatorSet","nameLocations":["6718:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6718:12:69"},"referencedDeclaration":50190,"src":"6718:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:69"},"returnParameters":{"id":44542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44541,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6774:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44540,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44655,"nodeType":"FunctionDefinition","src":"7339:612:69","nodes":[],"body":{"id":44654,"nodeType":"Block","src":"7498:453:69","nodes":[],"statements":[{"assignments":[44599],"declarations":[{"constant":false,"id":44599,"mutability":"mutable","name":"size","nameLocation":"7516:4:69","nodeType":"VariableDeclaration","scope":44654,"src":"7508:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44602,"initialValue":{"expression":{"id":44600,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7523:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:69","memberName":"length","nodeType":"MemberAccess","src":"7523:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:69"},{"assignments":[44607],"declarations":[{"constant":false,"id":44607,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:69","nodeType":"VariableDeclaration","scope":44654,"src":"7549:33:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44605,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44606,"nodeType":"ArrayTypeName","src":"7549:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":44613,"initialValue":{"arguments":[{"id":44611,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7599:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":44608,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44609,"nodeType":"ArrayTypeName","src":"7589:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":44612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:69"},{"body":{"id":44650,"nodeType":"Block","src":"7643:269:69","statements":[{"condition":{"id":44626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:69","subExpression":{"arguments":[{"id":44621,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7680:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44622,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7692:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44624,"indexExpression":{"id":44623,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7702:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44620,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44672,"src":"7662:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":44625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44634,"nodeType":"IfStatement","src":"7657:116:69","trueBody":{"id":44633,"nodeType":"Block","src":"7707:66:69","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":44628,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7745:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44630,"indexExpression":{"id":44629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7755:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44627,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7732:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":44631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44632,"nodeType":"RevertStatement","src":"7725:33:69"}]}},{"expression":{"id":44644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44635,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7786:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":44637,"indexExpression":{"id":44636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7803:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44639,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7817:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44640,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7829:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44642,"indexExpression":{"id":44641,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7839:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44638,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"7808:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44645,"nodeType":"ExpressionStatement","src":"7786:56:69"},{"id":44649,"nodeType":"UncheckedBlock","src":"7856:46:69","statements":[{"expression":{"id":44647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:69","subExpression":{"id":44646,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7886:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44648,"nodeType":"ExpressionStatement","src":"7884:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44617,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7631:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44618,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7635:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44651,"initializationExpression":{"assignments":[44615],"declarations":[{"constant":false,"id":44615,"mutability":"mutable","name":"i","nameLocation":"7628:1:69","nodeType":"VariableDeclaration","scope":44651,"src":"7620:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44614,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44616,"nodeType":"VariableDeclarationStatement","src":"7620:9:69"},"nodeType":"ForStatement","src":"7615:297:69"},{"expression":{"id":44652,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7928:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":44597,"id":44653,"nodeType":"Return","src":"7921:23:69"}]},"documentation":{"id":44586,"nodeType":"StructuredDocumentation","src":"7193:141:69","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:69","parameters":{"id":44593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44589,"mutability":"mutable","name":"validators","nameLocation":"7404:10:69","nodeType":"VariableDeclaration","scope":44655,"src":"7383:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44588,"nodeType":"UserDefinedTypeName","pathNode":{"id":44587,"name":"ValidatorSet","nameLocations":["7383:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7383:12:69"},"referencedDeclaration":50190,"src":"7383:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44592,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:69","nodeType":"VariableDeclaration","scope":44655,"src":"7424:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44590,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44591,"nodeType":"ArrayTypeName","src":"7424:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:69"},"returnParameters":{"id":44597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44655,"src":"7480:16:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44594,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44595,"nodeType":"ArrayTypeName","src":"7480:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44672,"nodeType":"FunctionDefinition","src":"7957:167:69","nodes":[],"body":{"id":44671,"nodeType":"Block","src":"8059:65:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":44668,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44660,"src":"8107:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44665,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44658,"src":"8076:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"8076:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"8076:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44664,"id":44670,"nodeType":"Return","src":"8069:48:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:69","parameters":{"id":44661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44658,"mutability":"mutable","name":"self","nameLocation":"8005:4:69","nodeType":"VariableDeclaration","scope":44672,"src":"7984:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44657,"nodeType":"UserDefinedTypeName","pathNode":{"id":44656,"name":"ValidatorSet","nameLocations":["7984:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7984:12:69"},"referencedDeclaration":50190,"src":"7984:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44660,"mutability":"mutable","name":"validator","nameLocation":"8019:9:69","nodeType":"VariableDeclaration","scope":44672,"src":"8011:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44659,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:69"},"returnParameters":{"id":44664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44672,"src":"8053:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44662,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44693,"nodeType":"FunctionDefinition","src":"8165:176:69","nodes":[],"body":{"id":44692,"nodeType":"Block","src":"8272:69:69","nodes":[],"statements":[{"expression":{"id":44690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44683,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44676,"src":"8282:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8282:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44687,"indexExpression":{"id":44685,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44678,"src":"8304:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"8282:41:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44689,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44680,"src":"8326:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":44691,"nodeType":"ExpressionStatement","src":"8282:52:69"}]},"documentation":{"id":44673,"nodeType":"StructuredDocumentation","src":"8130:30:69","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:69","parameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44676,"mutability":"mutable","name":"validators","nameLocation":"8207:10:69","nodeType":"VariableDeclaration","scope":44693,"src":"8186:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44675,"nodeType":"UserDefinedTypeName","pathNode":{"id":44674,"name":"ValidatorSet","nameLocations":["8186:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8186:12:69"},"referencedDeclaration":50190,"src":"8186:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44678,"mutability":"mutable","name":"validator","nameLocation":"8227:9:69","nodeType":"VariableDeclaration","scope":44693,"src":"8219:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44677,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44680,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:69","nodeType":"VariableDeclaration","scope":44693,"src":"8238:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44679,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:69"},"returnParameters":{"id":44682,"nodeType":"ParameterList","parameters":[],"src":"8272:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44714,"nodeType":"FunctionDefinition","src":"8648:175:69","nodes":[],"body":{"id":44713,"nodeType":"Block","src":"8748:75:69","nodes":[],"statements":[{"expression":{"id":44711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44704,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44697,"src":"8758:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8758:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44708,"indexExpression":{"id":44706,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44699,"src":"8780:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"8758:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44710,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44701,"src":"8810:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44712,"nodeType":"ExpressionStatement","src":"8758:58:69"}]},"documentation":{"id":44694,"nodeType":"StructuredDocumentation","src":"8580:63:69","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:69","parameters":{"id":44702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44697,"mutability":"mutable","name":"validators","nameLocation":"8692:10:69","nodeType":"VariableDeclaration","scope":44714,"src":"8671:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44696,"nodeType":"UserDefinedTypeName","pathNode":{"id":44695,"name":"ValidatorSet","nameLocations":["8671:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8671:12:69"},"referencedDeclaration":50190,"src":"8671:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44699,"mutability":"mutable","name":"validator","nameLocation":"8712:9:69","nodeType":"VariableDeclaration","scope":44714,"src":"8704:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44698,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44701,"mutability":"mutable","name":"amount","nameLocation":"8731:6:69","nodeType":"VariableDeclaration","scope":44714,"src":"8723:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44700,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:69"},"returnParameters":{"id":44703,"nodeType":"ParameterList","parameters":[],"src":"8748:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44755,"nodeType":"FunctionDefinition","src":"8895:364:69","nodes":[],"body":{"id":44754,"nodeType":"Block","src":"8996:263:69","nodes":[],"statements":[{"assignments":[44726],"declarations":[{"constant":false,"id":44726,"mutability":"mutable","name":"total","nameLocation":"9014:5:69","nodeType":"VariableDeclaration","scope":44754,"src":"9006:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44725,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44732,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44727,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9022:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9022:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44730,"indexExpression":{"id":44729,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9044:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9022:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44733,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9084:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9092:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44740,"nodeType":"IfStatement","src":"9080:81:69","trueBody":{"id":44739,"nodeType":"Block","src":"9100:61:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44736,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"9121:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44738,"nodeType":"RevertStatement","src":"9114:36:69"}]}},{"expression":{"id":44743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44741,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9171:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44742,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44744,"nodeType":"ExpressionStatement","src":"9171:15:69"},{"expression":{"id":44752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44745,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9196:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9196:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44749,"indexExpression":{"id":44747,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9196:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44751,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9247:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44753,"nodeType":"ExpressionStatement","src":"9196:56:69"}]},"documentation":{"id":44715,"nodeType":"StructuredDocumentation","src":"8829:61:69","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:69","parameters":{"id":44723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44718,"mutability":"mutable","name":"validators","nameLocation":"8940:10:69","nodeType":"VariableDeclaration","scope":44755,"src":"8919:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44717,"nodeType":"UserDefinedTypeName","pathNode":{"id":44716,"name":"ValidatorSet","nameLocations":["8919:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8919:12:69"},"referencedDeclaration":50190,"src":"8919:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44720,"mutability":"mutable","name":"validator","nameLocation":"8960:9:69","nodeType":"VariableDeclaration","scope":44755,"src":"8952:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44719,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44722,"mutability":"mutable","name":"amount","nameLocation":"8979:6:69","nodeType":"VariableDeclaration","scope":44755,"src":"8971:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44721,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:69"},"returnParameters":{"id":44724,"nodeType":"ParameterList","parameters":[],"src":"8996:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44808,"nodeType":"FunctionDefinition","src":"9330:540:69","nodes":[],"body":{"id":44807,"nodeType":"Block","src":"9431:439:69","nodes":[],"statements":[{"assignments":[44767],"declarations":[{"constant":false,"id":44767,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:69","nodeType":"VariableDeclaration","scope":44807,"src":"9441:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44766,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44773,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44768,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9465:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9465:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44771,"indexExpression":{"id":44770,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9481:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9465:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:69"},{"expression":{"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44774,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9516:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9516:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44778,"indexExpression":{"id":44776,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9532:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9516:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44780,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9560:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44782,"nodeType":"ExpressionStatement","src":"9516:49:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44783,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9580:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44784,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9597:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44788,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9645:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44789,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9661:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44804,"nodeType":"Block","src":"9771:93:69","statements":[{"expression":{"arguments":[{"id":44799,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9808:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44800,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9825:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44801,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9846:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44798,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"9785:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:69","9814:9:69","9836:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44803,"nodeType":"ExpressionStatement","src":"9785:68:69"}]},"id":44805,"nodeType":"IfStatement","src":"9641:223:69","trueBody":{"id":44797,"nodeType":"Block","src":"9668:97:69","statements":[{"expression":{"arguments":[{"id":44792,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9707:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44793,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9726:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44794,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9747:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44791,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"9682:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:69","9713:11:69","9737:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44796,"nodeType":"ExpressionStatement","src":"9682:72:69"}]}},"id":44806,"nodeType":"IfStatement","src":"9576:288:69","trueBody":{"id":44787,"nodeType":"Block","src":"9604:31:69","statements":[{"functionReturnParameters":44765,"id":44786,"nodeType":"Return","src":"9618:7:69"}]}}]},"documentation":{"id":44756,"nodeType":"StructuredDocumentation","src":"9265:60:69","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:69","parameters":{"id":44764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44759,"mutability":"mutable","name":"self","nameLocation":"9382:4:69","nodeType":"VariableDeclaration","scope":44808,"src":"9361:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44758,"nodeType":"UserDefinedTypeName","pathNode":{"id":44757,"name":"ValidatorSet","nameLocations":["9361:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9361:12:69"},"referencedDeclaration":50190,"src":"9361:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44761,"mutability":"mutable","name":"validator","nameLocation":"9396:9:69","nodeType":"VariableDeclaration","scope":44808,"src":"9388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44760,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44763,"mutability":"mutable","name":"power","nameLocation":"9415:5:69","nodeType":"VariableDeclaration","scope":44808,"src":"9407:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44762,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:69"},"returnParameters":{"id":44765,"nodeType":"ParameterList","parameters":[],"src":"9431:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44850,"nodeType":"FunctionDefinition","src":"9876:404:69","nodes":[],"body":{"id":44849,"nodeType":"Block","src":"9971:309:69","nodes":[],"statements":[{"assignments":[44819],"declarations":[{"constant":false,"id":44819,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:69","nodeType":"VariableDeclaration","scope":44849,"src":"9981:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44818,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44827,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44820,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10005:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10005:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44823,"indexExpression":{"id":44822,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10021:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10005:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44825,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10054:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:69"},{"expression":{"id":44835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44828,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10070:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10070:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44832,"indexExpression":{"id":44830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10086:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10070:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44834,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10119:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44836,"nodeType":"ExpressionStatement","src":"10070:62:69"},{"expression":{"id":44841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10143:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10143:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44840,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10176:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44842,"nodeType":"ExpressionStatement","src":"10143:39:69"},{"expression":{"arguments":[{"id":44844,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10218:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10237:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44846,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10258:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44843,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"10193:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:69","10224:11:69","10248:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44848,"nodeType":"ExpressionStatement","src":"10193:80:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:69","parameters":{"id":44816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44811,"mutability":"mutable","name":"self","nameLocation":"9921:4:69","nodeType":"VariableDeclaration","scope":44850,"src":"9900:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44810,"nodeType":"UserDefinedTypeName","pathNode":{"id":44809,"name":"ValidatorSet","nameLocations":["9900:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9900:12:69"},"referencedDeclaration":50190,"src":"9900:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44813,"mutability":"mutable","name":"validator","nameLocation":"9935:9:69","nodeType":"VariableDeclaration","scope":44850,"src":"9927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44812,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44815,"mutability":"mutable","name":"amount","nameLocation":"9954:6:69","nodeType":"VariableDeclaration","scope":44850,"src":"9946:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44814,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:69"},"returnParameters":{"id":44817,"nodeType":"ParameterList","parameters":[],"src":"9971:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44916,"nodeType":"FunctionDefinition","src":"10286:616:69","nodes":[],"body":{"id":44915,"nodeType":"Block","src":"10382:520:69","nodes":[],"statements":[{"assignments":[44861],"declarations":[{"constant":false,"id":44861,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:69","nodeType":"VariableDeclaration","scope":44915,"src":"10392:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44860,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44869,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10416:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10416:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44865,"indexExpression":{"id":44864,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10432:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10416:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44867,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:69"},{"assignments":[44871],"declarations":[{"constant":false,"id":44871,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:69","nodeType":"VariableDeclaration","scope":44915,"src":"10481:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44870,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44877,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44872,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10507:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10507:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44875,"indexExpression":{"id":44874,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10523:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"10507:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44878,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10564:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44881,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44871,"src":"10586:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44901,"nodeType":"Block","src":"10672:87:69","statements":[{"expression":{"id":44899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44892,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10686:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10686:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44896,"indexExpression":{"id":44894,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10702:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10686:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44898,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10735:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44900,"nodeType":"ExpressionStatement","src":"10686:62:69"}]},"id":44902,"nodeType":"IfStatement","src":"10560:199:69","trueBody":{"id":44891,"nodeType":"Block","src":"10608:58:69","statements":[{"expression":{"id":44889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:69","subExpression":{"baseExpression":{"expression":{"id":44885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10629:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10629:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44888,"indexExpression":{"id":44887,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10645:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44890,"nodeType":"ExpressionStatement","src":"10622:33:69"}]}},{"expression":{"arguments":[{"id":44904,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10792:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44905,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10809:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44906,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10830:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44903,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"10769:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:69","10798:9:69","10820:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44908,"nodeType":"ExpressionStatement","src":"10769:76:69"},{"expression":{"id":44913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10856:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10856:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44912,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10889:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44914,"nodeType":"ExpressionStatement","src":"10856:39:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:69","parameters":{"id":44858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44853,"mutability":"mutable","name":"self","nameLocation":"10332:4:69","nodeType":"VariableDeclaration","scope":44916,"src":"10311:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44852,"nodeType":"UserDefinedTypeName","pathNode":{"id":44851,"name":"ValidatorSet","nameLocations":["10311:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"10311:12:69"},"referencedDeclaration":50190,"src":"10311:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"validator","nameLocation":"10346:9:69","nodeType":"VariableDeclaration","scope":44916,"src":"10338:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44854,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44857,"mutability":"mutable","name":"amount","nameLocation":"10365:6:69","nodeType":"VariableDeclaration","scope":44916,"src":"10357:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44856,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:69"},"returnParameters":{"id":44859,"nodeType":"ParameterList","parameters":[],"src":"10382:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45081,"nodeType":"FunctionDefinition","src":"11008:2209:69","nodes":[],"body":{"id":45080,"nodeType":"Block","src":"11110:2107:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":44930,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11155:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44927,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11124:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11124:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"11124:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44948,"nodeType":"IfStatement","src":"11120:226:69","trueBody":{"id":44947,"nodeType":"Block","src":"11169:177:69","statements":[{"expression":{"arguments":[{"id":44937,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11223:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44938,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11229:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44932,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11183:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11183:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49342,"src":"11183:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44940,"nodeType":"ExpressionStatement","src":"11183:58:69"},{"eventCall":{"arguments":[{"id":44942,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11293:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44943,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11306:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44941,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"11260:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44945,"nodeType":"EmitStatement","src":"11255:60:69"},{"functionReturnParameters":44926,"id":44946,"nodeType":"Return","src":"11329:7:69"}]}},{"assignments":[44950],"declarations":[{"constant":false,"id":44950,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:69","nodeType":"VariableDeclaration","scope":45080,"src":"11408:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44949,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44953,"initialValue":{"expression":{"id":44951,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11429:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:69","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"11429:16:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:69"},{"assignments":[44955],"declarations":[{"constant":false,"id":44955,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"11455:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44954,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44960,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44956,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11475:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"11475:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44961,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44950,"src":"11520:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44962,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44955,"src":"11534:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44980,"nodeType":"IfStatement","src":"11516:262:69","trueBody":{"id":44979,"nodeType":"Block","src":"11546:232:69","statements":[{"expression":{"arguments":[{"id":44969,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11669:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44970,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11675:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44964,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11640:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11640:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"11640:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44972,"nodeType":"ExpressionStatement","src":"11640:47:69"},{"eventCall":{"arguments":[{"id":44974,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11725:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44975,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11738:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44973,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"11706:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44977,"nodeType":"EmitStatement","src":"11701:46:69"},{"functionReturnParameters":44926,"id":44978,"nodeType":"Return","src":"11761:7:69"}]}},{"assignments":[44982,44984],"declarations":[{"constant":false,"id":44982,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"12317:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44981,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44984,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:69","nodeType":"VariableDeclaration","scope":45080,"src":"12337:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44983,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44990,"initialValue":{"arguments":[{"id":44988,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12389:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12363:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12363:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"12363:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44991,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44984,"src":"12408:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44992,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"12425:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45043,"nodeType":"IfStatement","src":"12404:452:69","trueBody":{"id":45042,"nodeType":"Block","src":"12435:421:69","statements":[{"expression":{"arguments":[{"id":44999,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44994,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12449:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12449:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"12449:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45001,"nodeType":"ExpressionStatement","src":"12449:31:69"},{"condition":{"arguments":[{"id":45005,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12531:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45002,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12499:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12499:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12499:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45017,"nodeType":"IfStatement","src":"12495:140:69","trueBody":{"id":45016,"nodeType":"Block","src":"12545:90:69","statements":[{"expression":{"arguments":[{"id":45012,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12602:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45013,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12608:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45007,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12563:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12563:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"12563:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45015,"nodeType":"ExpressionStatement","src":"12563:57:69"}]}},{"expression":{"arguments":[{"id":45023,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12678:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45024,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12684:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45018,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12649:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12649:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"12649:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45026,"nodeType":"ExpressionStatement","src":"12649:47:69"},{"expression":{"arguments":[{"id":45032,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12740:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45033,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12746:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45027,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12710:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12710:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"12710:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45035,"nodeType":"ExpressionStatement","src":"12710:47:69"},{"eventCall":{"arguments":[{"id":45037,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12801:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45038,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12813:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45036,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"12777:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45040,"nodeType":"EmitStatement","src":"12772:53:69"},{"functionReturnParameters":44926,"id":45041,"nodeType":"Return","src":"12839:7:69"}]}},{"condition":{"arguments":[{"id":45047,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12902:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45044,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12870:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12870:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12870:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45065,"nodeType":"IfStatement","src":"12866:229:69","trueBody":{"id":45064,"nodeType":"Block","src":"12916:179:69","statements":[{"expression":{"arguments":[{"id":45054,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12971:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45055,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12977:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45049,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12930:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12930:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48724,"src":"12930:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45057,"nodeType":"ExpressionStatement","src":"12930:59:69"},{"eventCall":{"arguments":[{"id":45059,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13042:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45060,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13055:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45058,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13008:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45062,"nodeType":"EmitStatement","src":"13003:61:69"},{"functionReturnParameters":44926,"id":45063,"nodeType":"Return","src":"13078:7:69"}]}},{"expression":{"arguments":[{"id":45071,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13135:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45072,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13141:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45066,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13105:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13105:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"13105:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45074,"nodeType":"ExpressionStatement","src":"13105:48:69"},{"eventCall":{"arguments":[{"id":45076,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13188:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45077,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13201:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45075,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44335,"src":"13168:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45079,"nodeType":"EmitStatement","src":"13163:47:69"}]},"documentation":{"id":44917,"nodeType":"StructuredDocumentation","src":"10908:95:69","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:69","parameters":{"id":44925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44920,"mutability":"mutable","name":"self","nameLocation":"11056:4:69","nodeType":"VariableDeclaration","scope":45081,"src":"11035:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44919,"nodeType":"UserDefinedTypeName","pathNode":{"id":44918,"name":"ValidatorSet","nameLocations":["11035:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"11035:12:69"},"referencedDeclaration":50190,"src":"11035:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44922,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:69","nodeType":"VariableDeclaration","scope":45081,"src":"11062:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44921,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44924,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:69","nodeType":"VariableDeclaration","scope":45081,"src":"11083:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44923,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:69"},"returnParameters":{"id":44926,"nodeType":"ParameterList","parameters":[],"src":"11110:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45292,"nodeType":"FunctionDefinition","src":"13320:2014:69","nodes":[],"body":{"id":45291,"nodeType":"Block","src":"13418:1916:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":45095,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13464:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45092,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13432:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13432:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"13432:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45132,"nodeType":"IfStatement","src":"13428:421:69","trueBody":{"id":45131,"nodeType":"Block","src":"13476:373:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45097,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13494:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45115,"nodeType":"IfStatement","src":"13490:185:69","trueBody":{"id":45114,"nodeType":"Block","src":"13509:166:69","statements":[{"expression":{"arguments":[{"id":45105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13566:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45106,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13572:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13527:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13527:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"13527:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45108,"nodeType":"ExpressionStatement","src":"13527:55:69"},{"eventCall":{"arguments":[{"id":45110,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13626:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45109,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44349,"src":"13605:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45112,"nodeType":"EmitStatement","src":"13600:36:69"},{"functionReturnParameters":45091,"id":45113,"nodeType":"Return","src":"13654:7:69"}]}},{"expression":{"arguments":[{"id":45121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13729:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45122,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13735:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13688:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13688:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48759,"src":"13688:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45124,"nodeType":"ExpressionStatement","src":"13688:57:69"},{"eventCall":{"arguments":[{"id":45126,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13798:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45127,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13809:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45125,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13764:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45129,"nodeType":"EmitStatement","src":"13759:59:69"},{"functionReturnParameters":45091,"id":45130,"nodeType":"Return","src":"13832:7:69"}]}},{"condition":{"id":45138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:69","subExpression":{"arguments":[{"id":45136,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13919:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13888:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"13888:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"13888:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45143,"nodeType":"IfStatement","src":"13883:106:69","trueBody":{"id":45142,"nodeType":"Block","src":"13931:58:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45139,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"13952:24:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45141,"nodeType":"RevertStatement","src":"13945:33:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45144,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"14053:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45202,"nodeType":"IfStatement","src":"14049:508:69","trueBody":{"id":45201,"nodeType":"Block","src":"14068:489:69","statements":[{"expression":{"arguments":[{"id":45152,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14120:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45153,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14126:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45147,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14082:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14082:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":49307,"src":"14082:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45155,"nodeType":"ExpressionStatement","src":"14082:54:69"},{"eventCall":{"arguments":[{"id":45157,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45156,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"14155:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45159,"nodeType":"EmitStatement","src":"14150:35:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14204:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14204:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14204:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45199,"nodeType":"IfStatement","src":"14200:326:69","trueBody":{"id":45198,"nodeType":"Block","src":"14243:283:69","statements":[{"assignments":[45167,45169],"declarations":[{"constant":false,"id":45167,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:69","nodeType":"VariableDeclaration","scope":45198,"src":"14262:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45166,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45169,"mutability":"mutable","name":"power","nameLocation":"14292:5:69","nodeType":"VariableDeclaration","scope":45198,"src":"14284:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45168,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45175,"initialValue":{"arguments":[{"id":45173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14328:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45170,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14301:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14301:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14301:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:69"},{"expression":{"arguments":[{"id":45181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14378:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45176,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14351:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14351:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14351:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45183,"nodeType":"ExpressionStatement","src":"14351:32:69"},{"expression":{"arguments":[{"id":45189,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14430:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45190,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14436:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45184,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14401:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14401:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"14401:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45192,"nodeType":"ExpressionStatement","src":"14401:48:69"},{"eventCall":{"arguments":[{"id":45194,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14491:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45195,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45169,"src":"14505:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45193,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"14472:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45197,"nodeType":"EmitStatement","src":"14467:44:69"}]}},{"functionReturnParameters":45091,"id":45200,"nodeType":"Return","src":"14540:7:69"}]}},{"expression":{"arguments":[{"id":45208,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14607:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45209,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14613:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45203,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14567:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14567:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49377,"src":"14567:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45211,"nodeType":"ExpressionStatement","src":"14567:56:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45212,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14638:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14638:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14638:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45220,"nodeType":"IfStatement","src":"14634:74:69","trueBody":{"id":45219,"nodeType":"Block","src":"14677:31:69","statements":[{"functionReturnParameters":45091,"id":45218,"nodeType":"Return","src":"14691:7:69"}]}},{"assignments":[45222,45224],"declarations":[{"constant":false,"id":45222,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:69","nodeType":"VariableDeclaration","scope":45291,"src":"14719:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45221,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45224,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:69","nodeType":"VariableDeclaration","scope":45291,"src":"14741:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45223,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45230,"initialValue":{"arguments":[{"id":45228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14793:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14767:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14767:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"14767:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:69"},{"assignments":[45232,45234],"declarations":[{"constant":false,"id":45232,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:69","nodeType":"VariableDeclaration","scope":45291,"src":"14809:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45231,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45234,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:69","nodeType":"VariableDeclaration","scope":45291,"src":"14832:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45233,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45240,"initialValue":{"arguments":[{"id":45238,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14886:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45235,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14859:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14859:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14859:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45241,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45224,"src":"14905:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45242,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45234,"src":"14922:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45285,"nodeType":"IfStatement","src":"14901:358:69","trueBody":{"id":45284,"nodeType":"Block","src":"14939:320:69","statements":[{"expression":{"arguments":[{"id":45249,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14979:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45244,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14953:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14953:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"14953:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45251,"nodeType":"ExpressionStatement","src":"14953:31:69"},{"expression":{"arguments":[{"id":45257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15025:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14998:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14998:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14998:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45259,"nodeType":"ExpressionStatement","src":"14998:32:69"},{"expression":{"arguments":[{"id":45265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15073:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45266,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15079:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15044:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"15044:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"15044:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45268,"nodeType":"ExpressionStatement","src":"15044:49:69"},{"expression":{"arguments":[{"id":45274,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15137:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45275,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15143:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45269,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15107:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"15107:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"15107:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45277,"nodeType":"ExpressionStatement","src":"15107:49:69"},{"eventCall":{"arguments":[{"id":45279,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15200:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45280,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15214:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45278,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"15176:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45282,"nodeType":"EmitStatement","src":"15171:57:69"},{"functionReturnParameters":45091,"id":45283,"nodeType":"Return","src":"15242:7:69"}]}},{"eventCall":{"arguments":[{"id":45287,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"15307:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45288,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"15318:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45286,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"15274:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45290,"nodeType":"EmitStatement","src":"15269:58:69"}]},"documentation":{"id":45082,"nodeType":"StructuredDocumentation","src":"13223:92:69","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:69","parameters":{"id":45090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45085,"mutability":"mutable","name":"self","nameLocation":"13366:4:69","nodeType":"VariableDeclaration","scope":45292,"src":"13345:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":45084,"nodeType":"UserDefinedTypeName","pathNode":{"id":45083,"name":"ValidatorSet","nameLocations":["13345:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"13345:12:69"},"referencedDeclaration":50190,"src":"13345:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":45087,"mutability":"mutable","name":"validator","nameLocation":"13380:9:69","nodeType":"VariableDeclaration","scope":45292,"src":"13372:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45086,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45089,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:69","nodeType":"VariableDeclaration","scope":45292,"src":"13391:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45088,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:69"},"returnParameters":{"id":45091,"nodeType":"ParameterList","parameters":[],"src":"13418:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":44303,"nodeType":"StructuredDocumentation","src":"3860:40:69","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[45293],"name":"LibValidatorSet","nameLocation":"3908:15:69","scope":46441,"usedErrors":[]},{"id":46176,"nodeType":"ContractDefinition","src":"15338:10785:69","nodes":[{"id":45297,"nodeType":"UsingForDirective","src":"15363:53:69","nodes":[],"global":false,"libraryName":{"id":45294,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":44302,"src":"15369:22:69"},"typeName":{"id":45296,"nodeType":"UserDefinedTypeName","pathNode":{"id":45295,"name":"StakingReleaseQueue","nameLocations":["15396:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"15396:19:69"},"referencedDeclaration":50150,"src":"15396:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":45301,"nodeType":"UsingForDirective","src":"15421:47:69","nodes":[],"global":false,"libraryName":{"id":45298,"name":"LibStakingChangeLog","nameLocations":["15427:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"15427:19:69"},"typeName":{"id":45300,"nodeType":"UserDefinedTypeName","pathNode":{"id":45299,"name":"StakingChangeLog","nameLocations":["15451:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"15451:16:69"},"referencedDeclaration":50123,"src":"15451:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45305,"nodeType":"UsingForDirective","src":"15473:39:69","nodes":[],"global":false,"libraryName":{"id":45302,"name":"LibValidatorSet","nameLocations":["15479:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"15479:15:69"},"typeName":{"id":45304,"nodeType":"UserDefinedTypeName","pathNode":{"id":45303,"name":"ValidatorSet","nameLocations":["15499:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"15499:12:69"},"referencedDeclaration":50190,"src":"15499:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45309,"nodeType":"UsingForDirective","src":"15517:25:69","nodes":[],"global":false,"libraryName":{"id":45306,"name":"LibMaxPQ","nameLocations":["15523:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"15523:8:69"},"typeName":{"id":45308,"nodeType":"UserDefinedTypeName","pathNode":{"id":45307,"name":"MaxPQ","nameLocations":["15536:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"15536:5:69"},"referencedDeclaration":48411,"src":"15536:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":45313,"nodeType":"UsingForDirective","src":"15547:25:69","nodes":[],"global":false,"libraryName":{"id":45310,"name":"LibMinPQ","nameLocations":["15553:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"15553:8:69"},"typeName":{"id":45312,"nodeType":"UserDefinedTypeName","pathNode":{"id":45311,"name":"MinPQ","nameLocations":["15566:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"15566:5:69"},"referencedDeclaration":49029,"src":"15566:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":45316,"nodeType":"UsingForDirective","src":"15577:34:69","nodes":[],"global":false,"libraryName":{"id":45314,"name":"Address","nameLocations":["15583:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"15583:7:69"},"typeName":{"id":45315,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":45319,"nodeType":"VariableDeclaration","src":"15617:57:69","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:69","scope":46176,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45317,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":45318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":45323,"nodeType":"EventDefinition","src":"15681:50:69","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:69","parameters":{"id":45322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45321,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:69","nodeType":"VariableDeclaration","scope":45323,"src":"15716:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45320,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:69"}},{"id":45329,"nodeType":"EventDefinition","src":"15736:59:69","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:69","parameters":{"id":45328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:69","nodeType":"VariableDeclaration","scope":45329,"src":"15760:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45324,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45327,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:69","nodeType":"VariableDeclaration","scope":45329,"src":"15779:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45326,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:69"}},{"id":45350,"nodeType":"FunctionDefinition","src":"15846:221:69","nodes":[],"body":{"id":45349,"nodeType":"Block","src":"15934:133:69","nodes":[],"statements":[{"assignments":[45338],"declarations":[{"constant":false,"id":45338,"mutability":"mutable","name":"s","nameLocation":"15971:1:69","nodeType":"VariableDeclaration","scope":45349,"src":"15944:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45337,"nodeType":"UserDefinedTypeName","pathNode":{"id":45336,"name":"SubnetActorStorage","nameLocations":["15944:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"15944:18:69"},"referencedDeclaration":47281,"src":"15944:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45342,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45339,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"15975:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"15975:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:69"},{"expression":{"arguments":[{"id":45346,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45331,"src":"16050:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45343,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45338,"src":"16026:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16026:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:69","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"16026:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":45347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45335,"id":45348,"nodeType":"Return","src":"16019:41:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:69","parameters":{"id":45332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45331,"mutability":"mutable","name":"validator","nameLocation":"15881:9:69","nodeType":"VariableDeclaration","scope":45350,"src":"15873:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45330,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:69"},"returnParameters":{"id":45335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45334,"mutability":"mutable","name":"power","nameLocation":"15927:5:69","nodeType":"VariableDeclaration","scope":45350,"src":"15919:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45333,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45373,"nodeType":"FunctionDefinition","src":"16136:225:69","nodes":[],"body":{"id":45372,"nodeType":"Block","src":"16211:150:69","nodes":[],"statements":[{"assignments":[45360],"declarations":[{"constant":false,"id":45360,"mutability":"mutable","name":"s","nameLocation":"16248:1:69","nodeType":"VariableDeclaration","scope":45372,"src":"16221:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45359,"nodeType":"UserDefinedTypeName","pathNode":{"id":45358,"name":"SubnetActorStorage","nameLocations":["16221:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16221:18:69"},"referencedDeclaration":47281,"src":"16221:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45364,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45361,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16252:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16252:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:69"},{"expression":{"arguments":[{"id":45369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45353,"src":"16344:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45365,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45360,"src":"16303:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16303:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"16303:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"16303:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45357,"id":45371,"nodeType":"Return","src":"16296:58:69"}]},"documentation":{"id":45351,"nodeType":"StructuredDocumentation","src":"16073:58:69","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:69","parameters":{"id":45354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45353,"mutability":"mutable","name":"validator","nameLocation":"16171:9:69","nodeType":"VariableDeclaration","scope":45373,"src":"16163:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45352,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:69"},"returnParameters":{"id":45357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45373,"src":"16205:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45355,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45396,"nodeType":"FunctionDefinition","src":"16430:227:69","nodes":[],"body":{"id":45395,"nodeType":"Block","src":"16506:151:69","nodes":[],"statements":[{"assignments":[45383],"declarations":[{"constant":false,"id":45383,"mutability":"mutable","name":"s","nameLocation":"16543:1:69","nodeType":"VariableDeclaration","scope":45395,"src":"16516:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45382,"nodeType":"UserDefinedTypeName","pathNode":{"id":45381,"name":"SubnetActorStorage","nameLocations":["16516:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16516:18:69"},"referencedDeclaration":47281,"src":"16516:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45387,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45384,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16547:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16547:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:69"},{"expression":{"arguments":[{"id":45392,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45376,"src":"16640:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45388,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45383,"src":"16598:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16598:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"16598:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"16598:41:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45380,"id":45394,"nodeType":"Return","src":"16591:59:69"}]},"documentation":{"id":45374,"nodeType":"StructuredDocumentation","src":"16367:58:69","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:69","parameters":{"id":45377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45376,"mutability":"mutable","name":"validator","nameLocation":"16466:9:69","nodeType":"VariableDeclaration","scope":45396,"src":"16458:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45375,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:69"},"returnParameters":{"id":45380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45396,"src":"16500:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45378,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45409,"nodeType":"FunctionDefinition","src":"16912:103:69","nodes":[],"body":{"id":45408,"nodeType":"Block","src":"16976:39:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":45405,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45399,"src":"17003:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45404,"name":"hasStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45434,"src":"16993:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16993:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45403,"id":45407,"nodeType":"Return","src":"16986:22:69"}]},"documentation":{"id":45397,"nodeType":"StructuredDocumentation","src":"16663:244:69","text":"@notice Checks if the provided address is a validator (active or waiting) based on its total collateral.\n @param addr The address to check for validator status.\n @return A boolean indicating whether the address is a validator."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"16921:11:69","parameters":{"id":45400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45399,"mutability":"mutable","name":"addr","nameLocation":"16941:4:69","nodeType":"VariableDeclaration","scope":45409,"src":"16933:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45398,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16932:14:69"},"returnParameters":{"id":45403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45409,"src":"16970:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45401,"name":"bool","nodeType":"ElementaryTypeName","src":"16970:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16969:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45434,"nodeType":"FunctionDefinition","src":"17217:280:69","nodes":[],"body":{"id":45433,"nodeType":"Block","src":"17284:213:69","nodes":[],"statements":[{"assignments":[45419],"declarations":[{"constant":false,"id":45419,"mutability":"mutable","name":"s","nameLocation":"17321:1:69","nodeType":"VariableDeclaration","scope":45433,"src":"17294:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45418,"nodeType":"UserDefinedTypeName","pathNode":{"id":45417,"name":"SubnetActorStorage","nameLocations":["17294:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17294:18:69"},"referencedDeclaration":47281,"src":"17294:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45423,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45420,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17325:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17347:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17325:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17325:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17294:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45424,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45419,"src":"17433:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17435:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17433:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"17433:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45428,"indexExpression":{"id":45427,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45412,"src":"17459:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17433:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17470:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"17433:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17433:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45416,"id":45432,"nodeType":"Return","src":"17426:64:69"}]},"documentation":{"id":45410,"nodeType":"StructuredDocumentation","src":"17021:191:69","text":"@notice Checks if the validator has staked before.\n @param validator The address to check for staking status.\n @return A boolean indicating whether the validator has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"17226:9:69","parameters":{"id":45413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45412,"mutability":"mutable","name":"validator","nameLocation":"17244:9:69","nodeType":"VariableDeclaration","scope":45434,"src":"17236:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45411,"name":"address","nodeType":"ElementaryTypeName","src":"17236:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17235:19:69"},"returnParameters":{"id":45416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45434,"src":"17278:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45414,"name":"bool","nodeType":"ElementaryTypeName","src":"17278:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17277:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45452,"nodeType":"FunctionDefinition","src":"17503:201:69","nodes":[],"body":{"id":45451,"nodeType":"Block","src":"17567:137:69","nodes":[],"statements":[{"assignments":[45441],"declarations":[{"constant":false,"id":45441,"mutability":"mutable","name":"s","nameLocation":"17604:1:69","nodeType":"VariableDeclaration","scope":45451,"src":"17577:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45440,"nodeType":"UserDefinedTypeName","pathNode":{"id":45439,"name":"SubnetActorStorage","nameLocations":["17577:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17577:18:69"},"referencedDeclaration":47281,"src":"17577:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45445,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45442,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17608:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17630:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17608:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17577:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45446,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45441,"src":"17659:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17659:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17674:21:69","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44417,"src":"17659:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":45449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17659:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45438,"id":45450,"nodeType":"Return","src":"17652:45:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17512:21:69","parameters":{"id":45435,"nodeType":"ParameterList","parameters":[],"src":"17533:2:69"},"returnParameters":{"id":45438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45452,"src":"17559:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45436,"name":"uint16","nodeType":"ElementaryTypeName","src":"17559:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17558:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45478,"nodeType":"FunctionDefinition","src":"17792:243:69","nodes":[],"body":{"id":45477,"nodeType":"Block","src":"17850:185:69","nodes":[],"statements":[{"assignments":[45460],"declarations":[{"constant":false,"id":45460,"mutability":"mutable","name":"s","nameLocation":"17887:1:69","nodeType":"VariableDeclaration","scope":45477,"src":"17860:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45459,"nodeType":"UserDefinedTypeName","pathNode":{"id":45458,"name":"SubnetActorStorage","nameLocations":["17860:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17860:18:69"},"referencedDeclaration":47281,"src":"17860:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45464,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45461,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17891:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17891:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17860:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45465,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17942:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17944:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17942:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17957:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"17942:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"17942:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17942:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45470,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17987:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17989:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18002:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"17987:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18019:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"17987:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":45474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17987:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17942:86:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45457,"id":45476,"nodeType":"Return","src":"17935:93:69"}]},"documentation":{"id":45453,"nodeType":"StructuredDocumentation","src":"17710:77:69","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17801:15:69","parameters":{"id":45454,"nodeType":"ParameterList","parameters":[],"src":"17816:2:69"},"returnParameters":{"id":45457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45478,"src":"17842:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45455,"name":"uint16","nodeType":"ElementaryTypeName","src":"17842:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17841:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45496,"nodeType":"FunctionDefinition","src":"18041:214:69","nodes":[],"body":{"id":45495,"nodeType":"Block","src":"18112:143:69","nodes":[],"statements":[{"assignments":[45485],"declarations":[{"constant":false,"id":45485,"mutability":"mutable","name":"s","nameLocation":"18149:1:69","nodeType":"VariableDeclaration","scope":45495,"src":"18122:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45484,"nodeType":"UserDefinedTypeName","pathNode":{"id":45483,"name":"SubnetActorStorage","nameLocations":["18122:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18122:18:69"},"referencedDeclaration":47281,"src":"18122:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45489,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45486,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18153:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18153:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18153:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18122:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45490,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45485,"src":"18204:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18204:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18204:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18204:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45482,"id":45494,"nodeType":"Return","src":"18197:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"18050:27:69","parameters":{"id":45479,"nodeType":"ParameterList","parameters":[],"src":"18077:2:69"},"returnParameters":{"id":45482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45496,"src":"18103:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45480,"name":"uint256","nodeType":"ElementaryTypeName","src":"18103:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18102:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45514,"nodeType":"FunctionDefinition","src":"18261:205:69","nodes":[],"body":{"id":45513,"nodeType":"Block","src":"18323:143:69","nodes":[],"statements":[{"assignments":[45503],"declarations":[{"constant":false,"id":45503,"mutability":"mutable","name":"s","nameLocation":"18360:1:69","nodeType":"VariableDeclaration","scope":45513,"src":"18333:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45502,"nodeType":"UserDefinedTypeName","pathNode":{"id":45501,"name":"SubnetActorStorage","nameLocations":["18333:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18333:18:69"},"referencedDeclaration":47281,"src":"18333:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45507,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45504,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18364:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18386:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18364:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18364:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18333:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45508,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45503,"src":"18415:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18417:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18415:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18430:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18415:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45500,"id":45512,"nodeType":"Return","src":"18408:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"18270:18:69","parameters":{"id":45497,"nodeType":"ParameterList","parameters":[],"src":"18288:2:69"},"returnParameters":{"id":45500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45514,"src":"18314:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45498,"name":"uint256","nodeType":"ElementaryTypeName","src":"18314:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18313:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45537,"nodeType":"FunctionDefinition","src":"18541:236:69","nodes":[],"body":{"id":45536,"nodeType":"Block","src":"18626:151:69","nodes":[],"statements":[{"assignments":[45524],"declarations":[{"constant":false,"id":45524,"mutability":"mutable","name":"s","nameLocation":"18663:1:69","nodeType":"VariableDeclaration","scope":45536,"src":"18636:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45523,"nodeType":"UserDefinedTypeName","pathNode":{"id":45522,"name":"SubnetActorStorage","nameLocations":["18636:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18636:18:69"},"referencedDeclaration":47281,"src":"18636:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45528,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45525,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18667:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18667:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18667:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18636:65:69"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45529,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45524,"src":"18718:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18720:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18718:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18733:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"18718:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45533,"indexExpression":{"id":45532,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45517,"src":"18744:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18718:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18755:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"18718:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45521,"id":45535,"nodeType":"Return","src":"18711:59:69"}]},"documentation":{"id":45515,"nodeType":"StructuredDocumentation","src":"18472:64:69","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18550:24:69","parameters":{"id":45518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45517,"mutability":"mutable","name":"validator","nameLocation":"18583:9:69","nodeType":"VariableDeclaration","scope":45537,"src":"18575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45516,"name":"address","nodeType":"ElementaryTypeName","src":"18575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18574:19:69"},"returnParameters":{"id":45521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45537,"src":"18617:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45519,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18616:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45562,"nodeType":"FunctionDefinition","src":"18937:227:69","nodes":[],"body":{"id":45561,"nodeType":"Block","src":"19018:146:69","nodes":[],"statements":[{"assignments":[45547],"declarations":[{"constant":false,"id":45547,"mutability":"mutable","name":"s","nameLocation":"19055:1:69","nodeType":"VariableDeclaration","scope":45561,"src":"19028:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45546,"nodeType":"UserDefinedTypeName","pathNode":{"id":45545,"name":"SubnetActorStorage","nameLocations":["19028:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19028:18:69"},"referencedDeclaration":47281,"src":"19028:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45551,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45548,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19059:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19081:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19059:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19059:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19028:65:69"},{"expression":{"arguments":[{"id":45557,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45540,"src":"19140:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45558,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45542,"src":"19151:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45552,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45547,"src":"19103:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19105:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19103:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19118:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"19103:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45560,"nodeType":"ExpressionStatement","src":"19103:54:69"}]},"documentation":{"id":45538,"nodeType":"StructuredDocumentation","src":"18849:83:69","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18946:28:69","parameters":{"id":45543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45540,"mutability":"mutable","name":"validator","nameLocation":"18983:9:69","nodeType":"VariableDeclaration","scope":45562,"src":"18975:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45539,"name":"address","nodeType":"ElementaryTypeName","src":"18975:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45542,"mutability":"mutable","name":"power","nameLocation":"19002:5:69","nodeType":"VariableDeclaration","scope":45562,"src":"18994:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45541,"name":"uint256","nodeType":"ElementaryTypeName","src":"18994:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18974:34:69"},"returnParameters":{"id":45544,"nodeType":"ParameterList","parameters":[],"src":"19018:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45587,"nodeType":"FunctionDefinition","src":"19251:224:69","nodes":[],"body":{"id":45586,"nodeType":"Block","src":"19336:139:69","nodes":[],"statements":[{"assignments":[45572],"declarations":[{"constant":false,"id":45572,"mutability":"mutable","name":"s","nameLocation":"19373:1:69","nodeType":"VariableDeclaration","scope":45586,"src":"19346:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45571,"nodeType":"UserDefinedTypeName","pathNode":{"id":45570,"name":"SubnetActorStorage","nameLocations":["19346:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19346:18:69"},"referencedDeclaration":47281,"src":"19346:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45576,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45573,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19377:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19399:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19377:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19377:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19346:65:69"},{"expression":{"arguments":[{"id":45582,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45565,"src":"19448:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45583,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"19459:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45577,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45572,"src":"19421:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19423:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19421:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19436:11:69","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":44693,"src":"19421:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":45584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19421:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45585,"nodeType":"ExpressionStatement","src":"19421:47:69"}]},"documentation":{"id":45563,"nodeType":"StructuredDocumentation","src":"19170:76:69","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"19260:22:69","parameters":{"id":45568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45565,"mutability":"mutable","name":"validator","nameLocation":"19291:9:69","nodeType":"VariableDeclaration","scope":45587,"src":"19283:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45564,"name":"address","nodeType":"ElementaryTypeName","src":"19283:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45567,"mutability":"mutable","name":"metadata","nameLocation":"19317:8:69","nodeType":"VariableDeclaration","scope":45587,"src":"19302:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45566,"name":"bytes","nodeType":"ElementaryTypeName","src":"19302:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19282:44:69"},"returnParameters":{"id":45569,"nodeType":"ParameterList","parameters":[],"src":"19336:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45696,"nodeType":"FunctionDefinition","src":"19573:1335:69","nodes":[],"body":{"id":45695,"nodeType":"Block","src":"19645:1263:69","nodes":[],"statements":[{"assignments":[45597],"declarations":[{"constant":false,"id":45597,"mutability":"mutable","name":"s","nameLocation":"19682:1:69","nodeType":"VariableDeclaration","scope":45695,"src":"19655:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45596,"nodeType":"UserDefinedTypeName","pathNode":{"id":45595,"name":"SubnetActorStorage","nameLocations":["19655:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19655:18:69"},"referencedDeclaration":47281,"src":"19655:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45601,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45598,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19686:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19708:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19686:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19686:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19655:65:69"},{"expression":{"arguments":[{"id":45607,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19820:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45608,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45602,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19791:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19791:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"19791:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45610,"nodeType":"ExpressionStatement","src":"19791:47:69"},{"expression":{"arguments":[{"id":45616,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19943:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45617,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19954:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45611,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19915:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19913:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19928:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"19913:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19913:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45619,"nodeType":"ExpressionStatement","src":"19913:48:69"},{"condition":{"id":45622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19976:15:69","subExpression":{"expression":{"id":45620,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19977:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:12:69","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"19977:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45694,"nodeType":"IfStatement","src":"19972:930:69","trueBody":{"id":45693,"nodeType":"Block","src":"19993:909:69","statements":[{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"alreadyValidator","nameLocation":"20118:16:69","nodeType":"VariableDeclaration","scope":45693,"src":"20113:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45623,"name":"bool","nodeType":"ElementaryTypeName","src":"20113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45625,"nodeType":"VariableDeclarationStatement","src":"20113:21:69"},{"assignments":[45627],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"length","nameLocation":"20156:6:69","nodeType":"VariableDeclaration","scope":45693,"src":"20148:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45626,"name":"uint256","nodeType":"ElementaryTypeName","src":"20148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45631,"initialValue":{"expression":{"expression":{"id":45628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20165:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20167:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20165:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20185:6:69","memberName":"length","nodeType":"MemberAccess","src":"20165:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20148:43:69"},{"body":{"id":45656,"nodeType":"Block","src":"20235:240:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":45638,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20257:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20259:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20257:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45641,"indexExpression":{"id":45640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20277:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20257:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage","typeString":"struct Validator storage ref"}},"id":45642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:4:69","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":50208,"src":"20257:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":45643,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20288:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20257:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45651,"nodeType":"IfStatement","src":"20253:137:69","trueBody":{"id":45650,"nodeType":"Block","src":"20299:91:69","statements":[{"expression":{"id":45647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45645,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20321:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20340:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20321:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45648,"nodeType":"ExpressionStatement","src":"20321:23:69"},{"id":45649,"nodeType":"Break","src":"20366:5:69"}]}},{"id":45655,"nodeType":"UncheckedBlock","src":"20407:54:69","statements":[{"expression":{"id":45653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20439:3:69","subExpression":{"id":45652,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20441:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45654,"nodeType":"ExpressionStatement","src":"20439:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45635,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20221:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45636,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45627,"src":"20225:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20221:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45657,"initializationExpression":{"assignments":[45633],"declarations":[{"constant":false,"id":45633,"mutability":"mutable","name":"i","nameLocation":"20218:1:69","nodeType":"VariableDeclaration","scope":45657,"src":"20210:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45632,"name":"uint256","nodeType":"ElementaryTypeName","src":"20210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45634,"nodeType":"VariableDeclarationStatement","src":"20210:9:69"},"nodeType":"ForStatement","src":"20205:270:69"},{"condition":{"id":45659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20492:17:69","subExpression":{"id":45658,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20493:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45692,"nodeType":"IfStatement","src":"20488:404:69","trueBody":{"id":45691,"nodeType":"Block","src":"20511:381:69","statements":[{"assignments":[45661],"declarations":[{"constant":false,"id":45661,"mutability":"mutable","name":"collateral","nameLocation":"20537:10:69","nodeType":"VariableDeclaration","scope":45691,"src":"20529:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45660,"name":"uint256","nodeType":"ElementaryTypeName","src":"20529:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45668,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":45662,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20550:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20550:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20565:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20550:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45666,"indexExpression":{"id":45665,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20576:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20550:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20587:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"20550:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20529:77:69"},{"assignments":[45671],"declarations":[{"constant":false,"id":45671,"mutability":"mutable","name":"val","nameLocation":"20641:3:69","nodeType":"VariableDeclaration","scope":45691,"src":"20624:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator"},"typeName":{"id":45670,"nodeType":"UserDefinedTypeName","pathNode":{"id":45669,"name":"Validator","nameLocations":["20624:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"20624:9:69"},"referencedDeclaration":50211,"src":"20624:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":45682,"initialValue":{"arguments":[{"id":45673,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20685:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45674,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45661,"src":"20724:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":45675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20766:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20768:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20766:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20766:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45679,"indexExpression":{"id":45678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20792:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20766:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20803:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"20766:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":45672,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"20647:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50211_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":45681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20679:4:69","20716:6:69","20756:8:69"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20647:183:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20624:206:69"},{"expression":{"arguments":[{"id":45688,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45671,"src":"20873:3:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":45683,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20848:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20848:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20868:4:69","memberName":"push","nodeType":"MemberAccess","src":"20848:24:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50211_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":45689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20848:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45690,"nodeType":"ExpressionStatement","src":"20848:29:69"}]}}]}}]},"documentation":{"id":45588,"nodeType":"StructuredDocumentation","src":"19481:87:69","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19582:18:69","parameters":{"id":45593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45590,"mutability":"mutable","name":"validator","nameLocation":"19609:9:69","nodeType":"VariableDeclaration","scope":45696,"src":"19601:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45589,"name":"address","nodeType":"ElementaryTypeName","src":"19601:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45592,"mutability":"mutable","name":"amount","nameLocation":"19628:6:69","nodeType":"VariableDeclaration","scope":45696,"src":"19620:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45591,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19600:35:69"},"returnParameters":{"id":45594,"nodeType":"ParameterList","parameters":[],"src":"19645:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45738,"nodeType":"FunctionDefinition","src":"21098:504:69","nodes":[],"body":{"id":45737,"nodeType":"Block","src":"21171:431:69","nodes":[],"statements":[{"assignments":[45706],"declarations":[{"constant":false,"id":45706,"mutability":"mutable","name":"s","nameLocation":"21208:1:69","nodeType":"VariableDeclaration","scope":45737,"src":"21181:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45705,"nodeType":"UserDefinedTypeName","pathNode":{"id":45704,"name":"SubnetActorStorage","nameLocations":["21181:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21181:18:69"},"referencedDeclaration":47281,"src":"21181:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45710,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45707,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21212:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21234:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21212:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21212:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21181:65:69"},{"expression":{"arguments":[{"id":45716,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21347:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45717,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21358:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45711,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21317:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21319:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21317:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"21317:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21317:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45719,"nodeType":"ExpressionStatement","src":"21317:48:69"},{"expression":{"arguments":[{"id":45725,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21471:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21482:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45720,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21440:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21442:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21440:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21455:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"21440:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21440:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45728,"nodeType":"ExpressionStatement","src":"21440:49:69"},{"expression":{"arguments":[{"id":45734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21588:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45731,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21567:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21559:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45729,"name":"address","nodeType":"ElementaryTypeName","src":"21559:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21578:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"21559:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45736,"nodeType":"ExpressionStatement","src":"21559:36:69"}]},"documentation":{"id":45697,"nodeType":"StructuredDocumentation","src":"20914:179:69","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"21107:19:69","parameters":{"id":45702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45699,"mutability":"mutable","name":"validator","nameLocation":"21135:9:69","nodeType":"VariableDeclaration","scope":45738,"src":"21127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45698,"name":"address","nodeType":"ElementaryTypeName","src":"21127:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45701,"mutability":"mutable","name":"amount","nameLocation":"21154:6:69","nodeType":"VariableDeclaration","scope":45738,"src":"21146:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45700,"name":"uint256","nodeType":"ElementaryTypeName","src":"21146:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21126:35:69"},"returnParameters":{"id":45703,"nodeType":"ParameterList","parameters":[],"src":"21171:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45766,"nodeType":"FunctionDefinition","src":"21732:280:69","nodes":[],"body":{"id":45765,"nodeType":"Block","src":"21828:184:69","nodes":[],"statements":[{"assignments":[45750],"declarations":[{"constant":false,"id":45750,"mutability":"mutable","name":"s","nameLocation":"21865:1:69","nodeType":"VariableDeclaration","scope":45765,"src":"21838:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45749,"nodeType":"UserDefinedTypeName","pathNode":{"id":45748,"name":"SubnetActorStorage","nameLocations":["21838:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21838:18:69"},"referencedDeclaration":47281,"src":"21838:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45754,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45751,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21869:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21891:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21869:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21838:65:69"},{"expression":{"arguments":[{"id":45760,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45741,"src":"21959:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45761,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45743,"src":"21980:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45762,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45745,"src":"21997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45755,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45750,"src":"21913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21915:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"21913:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21925:21:69","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":46528,"src":"21913:33:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21948:9:69","21970:8:69","21990:5:69"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21913:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45764,"nodeType":"ExpressionStatement","src":"21913:92:69"}]},"documentation":{"id":45739,"nodeType":"StructuredDocumentation","src":"21675:52:69","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21741:17:69","parameters":{"id":45746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45741,"mutability":"mutable","name":"validator","nameLocation":"21767:9:69","nodeType":"VariableDeclaration","scope":45766,"src":"21759:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45740,"name":"address","nodeType":"ElementaryTypeName","src":"21759:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45743,"mutability":"mutable","name":"metadata","nameLocation":"21793:8:69","nodeType":"VariableDeclaration","scope":45766,"src":"21778:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45742,"name":"bytes","nodeType":"ElementaryTypeName","src":"21778:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45745,"mutability":"mutable","name":"amount","nameLocation":"21811:6:69","nodeType":"VariableDeclaration","scope":45766,"src":"21803:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45744,"name":"uint256","nodeType":"ElementaryTypeName","src":"21803:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21758:60:69"},"returnParameters":{"id":45747,"nodeType":"ParameterList","parameters":[],"src":"21828:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45791,"nodeType":"FunctionDefinition","src":"22061:223:69","nodes":[],"body":{"id":45790,"nodeType":"Block","src":"22144:140:69","nodes":[],"statements":[{"assignments":[45776],"declarations":[{"constant":false,"id":45776,"mutability":"mutable","name":"s","nameLocation":"22181:1:69","nodeType":"VariableDeclaration","scope":45790,"src":"22154:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45775,"nodeType":"UserDefinedTypeName","pathNode":{"id":45774,"name":"SubnetActorStorage","nameLocations":["22154:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22154:18:69"},"referencedDeclaration":47281,"src":"22154:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45780,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45777,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22185:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22185:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22185:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22154:65:69"},{"expression":{"arguments":[{"id":45786,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45769,"src":"22257:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45787,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45771,"src":"22268:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45781,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"22229:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22229:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22241:15:69","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":46488,"src":"22229:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45789,"nodeType":"ExpressionStatement","src":"22229:48:69"}]},"documentation":{"id":45767,"nodeType":"StructuredDocumentation","src":"22018:38:69","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"22070:20:69","parameters":{"id":45772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45769,"mutability":"mutable","name":"validator","nameLocation":"22099:9:69","nodeType":"VariableDeclaration","scope":45791,"src":"22091:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45768,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45771,"mutability":"mutable","name":"metadata","nameLocation":"22125:8:69","nodeType":"VariableDeclaration","scope":45791,"src":"22110:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45770,"name":"bytes","nodeType":"ElementaryTypeName","src":"22110:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22090:44:69"},"returnParameters":{"id":45773,"nodeType":"ParameterList","parameters":[],"src":"22144:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45825,"nodeType":"FunctionDefinition","src":"22329:256:69","nodes":[],"body":{"id":45824,"nodeType":"Block","src":"22390:195:69","nodes":[],"statements":[{"assignments":[45801],"declarations":[{"constant":false,"id":45801,"mutability":"mutable","name":"s","nameLocation":"22427:1:69","nodeType":"VariableDeclaration","scope":45824,"src":"22400:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45800,"nodeType":"UserDefinedTypeName","pathNode":{"id":45799,"name":"SubnetActorStorage","nameLocations":["22400:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22400:18:69"},"referencedDeclaration":47281,"src":"22400:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45802,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22431:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22453:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22431:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22431:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22400:65:69"},{"expression":{"arguments":[{"id":45811,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22503:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45812,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22514:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45806,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22476:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22478:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22476:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22488:14:69","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":46602,"src":"22476:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22476:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45814,"nodeType":"ExpressionStatement","src":"22476:45:69"},{"expression":{"arguments":[{"id":45820,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22560:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45821,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22571:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45815,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22531:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22533:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22531:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22546:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"22531:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22531:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45823,"nodeType":"ExpressionStatement","src":"22531:47:69"}]},"documentation":{"id":45792,"nodeType":"StructuredDocumentation","src":"22290:34:69","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"22338:7:69","parameters":{"id":45797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45794,"mutability":"mutable","name":"validator","nameLocation":"22354:9:69","nodeType":"VariableDeclaration","scope":45825,"src":"22346:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45793,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45796,"mutability":"mutable","name":"amount","nameLocation":"22373:6:69","nodeType":"VariableDeclaration","scope":45825,"src":"22365:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45795,"name":"uint256","nodeType":"ElementaryTypeName","src":"22365:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22345:35:69"},"returnParameters":{"id":45798,"nodeType":"ParameterList","parameters":[],"src":"22390:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45859,"nodeType":"FunctionDefinition","src":"22631:259:69","nodes":[],"body":{"id":45858,"nodeType":"Block","src":"22693:197:69","nodes":[],"statements":[{"assignments":[45835],"declarations":[{"constant":false,"id":45835,"mutability":"mutable","name":"s","nameLocation":"22730:1:69","nodeType":"VariableDeclaration","scope":45858,"src":"22703:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45834,"nodeType":"UserDefinedTypeName","pathNode":{"id":45833,"name":"SubnetActorStorage","nameLocations":["22703:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22703:18:69"},"referencedDeclaration":47281,"src":"22703:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45836,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22734:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22756:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22734:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22703:65:69"},{"expression":{"arguments":[{"id":45845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22807:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45846,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45840,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22779:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22781:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22779:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22791:15:69","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":46565,"src":"22779:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22779:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45848,"nodeType":"ExpressionStatement","src":"22779:46:69"},{"expression":{"arguments":[{"id":45854,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22865:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45855,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22876:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45849,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22835:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22837:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22835:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22850:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"22835:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45857,"nodeType":"ExpressionStatement","src":"22835:48:69"}]},"documentation":{"id":45826,"nodeType":"StructuredDocumentation","src":"22591:35:69","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22640:8:69","parameters":{"id":45831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45828,"mutability":"mutable","name":"validator","nameLocation":"22657:9:69","nodeType":"VariableDeclaration","scope":45859,"src":"22649:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45827,"name":"address","nodeType":"ElementaryTypeName","src":"22649:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45830,"mutability":"mutable","name":"amount","nameLocation":"22676:6:69","nodeType":"VariableDeclaration","scope":45859,"src":"22668:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45829,"name":"uint256","nodeType":"ElementaryTypeName","src":"22668:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22648:35:69"},"returnParameters":{"id":45832,"nodeType":"ParameterList","parameters":[],"src":"22693:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45886,"nodeType":"FunctionDefinition","src":"22999:244:69","nodes":[],"body":{"id":45885,"nodeType":"Block","src":"23052:191:69","nodes":[],"statements":[{"assignments":[45867],"declarations":[{"constant":false,"id":45867,"mutability":"mutable","name":"s","nameLocation":"23089:1:69","nodeType":"VariableDeclaration","scope":45885,"src":"23062:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45866,"nodeType":"UserDefinedTypeName","pathNode":{"id":45865,"name":"SubnetActorStorage","nameLocations":["23062:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23062:18:69"},"referencedDeclaration":47281,"src":"23062:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45871,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45868,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23093:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23093:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23093:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23062:65:69"},{"assignments":[45873],"declarations":[{"constant":false,"id":45873,"mutability":"mutable","name":"amount","nameLocation":"23145:6:69","nodeType":"VariableDeclaration","scope":45885,"src":"23137:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45872,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45879,"initialValue":{"arguments":[{"id":45877,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45874,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45867,"src":"23154:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23156:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"23154:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23169:5:69","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":44301,"src":"23154:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23154:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23137:48:69"},{"eventCall":{"arguments":[{"id":45881,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45882,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45873,"src":"23229:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45880,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45329,"src":"23200:17:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45884,"nodeType":"EmitStatement","src":"23195:41:69"}]},"documentation":{"id":45860,"nodeType":"StructuredDocumentation","src":"22953:41:69","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"23008:15:69","parameters":{"id":45863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45862,"mutability":"mutable","name":"validator","nameLocation":"23032:9:69","nodeType":"VariableDeclaration","scope":45886,"src":"23024:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45861,"name":"address","nodeType":"ElementaryTypeName","src":"23024:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23023:19:69"},"returnParameters":{"id":45864,"nodeType":"ParameterList","parameters":[],"src":"23052:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45942,"nodeType":"FunctionDefinition","src":"23357:439:69","nodes":[],"body":{"id":45941,"nodeType":"Block","src":"23414:382:69","nodes":[],"statements":[{"assignments":[45894],"declarations":[{"constant":false,"id":45894,"mutability":"mutable","name":"s","nameLocation":"23451:1:69","nodeType":"VariableDeclaration","scope":45941,"src":"23424:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45893,"nodeType":"UserDefinedTypeName","pathNode":{"id":45892,"name":"SubnetActorStorage","nameLocations":["23424:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23424:18:69"},"referencedDeclaration":47281,"src":"23424:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45898,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45895,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23455:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23477:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23455:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23455:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23424:65:69"},{"assignments":[45900],"declarations":[{"constant":false,"id":45900,"mutability":"mutable","name":"amount","nameLocation":"23507:6:69","nodeType":"VariableDeclaration","scope":45941,"src":"23499:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45899,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45906,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45901,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23516:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23518:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23516:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23533:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23516:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45905,"indexExpression":{"id":45904,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23541:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23499:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45907,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23574:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23564:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45914,"nodeType":"IfStatement","src":"23560:69:69","trueBody":{"id":45913,"nodeType":"Block","src":"23577:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45910,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"23598:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23598:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45912,"nodeType":"RevertStatement","src":"23591:27:69"}]}},{"expression":{"id":45923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45915,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23639:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23641:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23639:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23656:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23639:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45921,"indexExpression":{"id":45918,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23664:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23639:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23675:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23639:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45924,"nodeType":"ExpressionStatement","src":"23639:37:69"},{"expression":{"arguments":[{"id":45930,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23737:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23695:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"23695:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45925,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"23686:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23713:23:69","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":40275,"src":"23686:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45932,"nodeType":"ExpressionStatement","src":"23686:58:69"},{"expression":{"arguments":[{"id":45938,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23782:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45935,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23763:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23755:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45933,"name":"address","nodeType":"ElementaryTypeName","src":"23755:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23772:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"23755:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45940,"nodeType":"ExpressionStatement","src":"23755:34:69"}]},"documentation":{"id":45887,"nodeType":"StructuredDocumentation","src":"23249:103:69","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"23366:21:69","parameters":{"id":45890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45889,"mutability":"mutable","name":"relayer","nameLocation":"23396:7:69","nodeType":"VariableDeclaration","scope":45942,"src":"23388:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45888,"name":"address","nodeType":"ElementaryTypeName","src":"23388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23387:17:69"},"returnParameters":{"id":45891,"nodeType":"ParameterList","parameters":[],"src":"23414:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45965,"nodeType":"FunctionDefinition","src":"23802:247:69","nodes":[],"body":{"id":45964,"nodeType":"Block","src":"23875:174:69","nodes":[],"statements":[{"assignments":[45951],"declarations":[{"constant":false,"id":45951,"mutability":"mutable","name":"s","nameLocation":"23912:1:69","nodeType":"VariableDeclaration","scope":45964,"src":"23885:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45950,"nodeType":"UserDefinedTypeName","pathNode":{"id":45949,"name":"SubnetActorStorage","nameLocations":["23885:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23885:18:69"},"referencedDeclaration":47281,"src":"23885:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45955,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45952,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23916:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23938:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23916:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23885:65:69"},{"expression":{"components":[{"expression":{"expression":{"id":45956,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"23968:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23970:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"23968:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23980:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"23968:35:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45959,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"24005:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24007:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24005:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24005:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45962,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23967:75:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45948,"id":45963,"nodeType":"Return","src":"23960:82:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23811:23:69","parameters":{"id":45943,"nodeType":"ParameterList","parameters":[],"src":"23834:2:69"},"returnParameters":{"id":45948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23859:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45944,"name":"uint64","nodeType":"ElementaryTypeName","src":"23859:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23867:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45946,"name":"uint64","nodeType":"ElementaryTypeName","src":"23867:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23858:16:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46175,"nodeType":"FunctionDefinition","src":"24177:1944:69","nodes":[],"body":{"id":46174,"nodeType":"Block","src":"24237:1884:69","nodes":[],"statements":[{"assignments":[45973],"declarations":[{"constant":false,"id":45973,"mutability":"mutable","name":"s","nameLocation":"24274:1:69","nodeType":"VariableDeclaration","scope":46174,"src":"24247:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45972,"nodeType":"UserDefinedTypeName","pathNode":{"id":45971,"name":"SubnetActorStorage","nameLocations":["24247:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"24247:18:69"},"referencedDeclaration":47281,"src":"24247:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45977,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45974,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"24278:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"24278:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24278:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24247:65:69"},{"assignments":[45980],"declarations":[{"constant":false,"id":45980,"mutability":"mutable","name":"changeSet","nameLocation":"24347:9:69","nodeType":"VariableDeclaration","scope":46174,"src":"24322:34:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45979,"nodeType":"UserDefinedTypeName","pathNode":{"id":45978,"name":"StakingChangeLog","nameLocations":["24322:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"24322:16:69"},"referencedDeclaration":50123,"src":"24322:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45983,"initialValue":{"expression":{"id":45981,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24359:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24361:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24359:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24322:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45984,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24385:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45985,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24408:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"24408:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24385:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45992,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24513:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45993,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24535:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24545:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24535:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24513:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45998,"nodeType":"IfStatement","src":"24509:93:69","trueBody":{"id":45997,"nodeType":"Block","src":"24571:31:69","statements":[{"functionReturnParameters":45970,"id":45996,"nodeType":"Return","src":"24585:7:69"}]}},"id":45999,"nodeType":"IfStatement","src":"24381:221:69","trueBody":{"id":45991,"nodeType":"Block","src":"24443:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45988,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"24464:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24464:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45990,"nodeType":"RevertStatement","src":"24457:35:69"}]}},{"assignments":[46001],"declarations":[{"constant":false,"id":46001,"mutability":"mutable","name":"start","nameLocation":"24619:5:69","nodeType":"VariableDeclaration","scope":46174,"src":"24612:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46000,"name":"uint64","nodeType":"ElementaryTypeName","src":"24612:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46004,"initialValue":{"expression":{"id":46002,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24627:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24637:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24627:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24612:49:69"},{"body":{"id":46160,"nodeType":"Block","src":"24722:1257:69","statements":[{"assignments":[46014],"declarations":[{"constant":false,"id":46014,"mutability":"mutable","name":"change","nameLocation":"24758:6:69","nodeType":"VariableDeclaration","scope":46160,"src":"24736:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46013,"nodeType":"UserDefinedTypeName","pathNode":{"id":46012,"name":"StakingChange","nameLocations":["24736:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"24736:13:69"},"referencedDeclaration":50104,"src":"24736:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46019,"initialValue":{"arguments":[{"id":46017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24787:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46015,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24767:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24777:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"24767:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24767:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24736:53:69"},{"assignments":[46021],"declarations":[{"constant":false,"id":46021,"mutability":"mutable","name":"validator","nameLocation":"24811:9:69","nodeType":"VariableDeclaration","scope":46160,"src":"24803:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46020,"name":"address","nodeType":"ElementaryTypeName","src":"24803:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46024,"initialValue":{"expression":{"id":46022,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24823:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24830:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"24823:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24803:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46025,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24858:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24865:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"24858:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46027,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"24871:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24888:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"24871:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"24858:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46043,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25006:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25013:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25006:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46045,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25019:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25036:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"25019:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25006:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46147,"nodeType":"Block","src":"25325:546:69","statements":[{"assignments":[46085],"declarations":[{"constant":false,"id":46085,"mutability":"mutable","name":"amount","nameLocation":"25351:6:69","nodeType":"VariableDeclaration","scope":46147,"src":"25343:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46084,"name":"uint256","nodeType":"ElementaryTypeName","src":"25343:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46094,"initialValue":{"arguments":[{"expression":{"id":46088,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25371:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25378:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25371:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25388:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46090,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:69","typeDescriptions":{}}}],"id":46092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25387:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46086,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25360:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25364:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25360:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25360:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25343:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46095,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25420:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25427:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25420:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46097,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25433:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25450:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"25433:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25420:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46145,"nodeType":"Block","src":"25694:163:69","statements":[{"expression":{"arguments":[{"id":46132,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25746:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46133,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25757:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46127,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25716:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25718:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25716:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25731:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"25716:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25716:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46135,"nodeType":"ExpressionStatement","src":"25716:48:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":46137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25795:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25797:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25795:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46136,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25786:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25813:8:69","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":40263,"src":"25786:35:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":46142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":46141,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25829:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25786:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":46143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46144,"nodeType":"ExpressionStatement","src":"25786:52:69"}]},"id":46146,"nodeType":"IfStatement","src":"25416:441:69","trueBody":{"id":46126,"nodeType":"Block","src":"25460:228:69","statements":[{"expression":{"arguments":[{"id":46105,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25513:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46106,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25524:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46100,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25482:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25484:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25482:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25497:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"25482:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25482:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"25482:49:69"},{"expression":{"arguments":[{"id":46114,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25582:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46115,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25593:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25553:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25555:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"25553:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":46113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25568:13:69","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":44257,"src":"25553:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":46116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46117,"nodeType":"ExpressionStatement","src":"25553:47:69"},{"expression":{"arguments":[{"id":46123,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25662:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46119,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25631:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25633:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25631:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46118,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25622:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25649:12:69","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":40269,"src":"25622:39:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46125,"nodeType":"ExpressionStatement","src":"25622:47:69"}]}}]},"id":46148,"nodeType":"IfStatement","src":"25002:869:69","trueBody":{"id":46083,"nodeType":"Block","src":"25055:264:69","statements":[{"assignments":[46049,46051],"declarations":[{"constant":false,"id":46049,"mutability":"mutable","name":"metadata","nameLocation":"25087:8:69","nodeType":"VariableDeclaration","scope":46083,"src":"25074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46048,"name":"bytes","nodeType":"ElementaryTypeName","src":"25074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46051,"mutability":"mutable","name":"power","nameLocation":"25105:5:69","nodeType":"VariableDeclaration","scope":46083,"src":"25097:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46050,"name":"uint256","nodeType":"ElementaryTypeName","src":"25097:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46062,"initialValue":{"arguments":[{"expression":{"id":46054,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25125:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25132:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25125:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25142:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46056,"name":"bytes","nodeType":"ElementaryTypeName","src":"25142:5:69","typeDescriptions":{}}},{"id":46059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25149:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46058,"name":"uint256","nodeType":"ElementaryTypeName","src":"25149:7:69","typeDescriptions":{}}}],"id":46060,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25141:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46052,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25114:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25118:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25114:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25114:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25073:85:69"},{"expression":{"id":46072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46063,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25176:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25178:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25176:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25191:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"25176:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46069,"indexExpression":{"id":46066,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25202:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25176:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25213:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"25176:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46071,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46049,"src":"25224:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"25176:56:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46073,"nodeType":"ExpressionStatement","src":"25176:56:69"},{"expression":{"arguments":[{"id":46079,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25287:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46080,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46051,"src":"25298:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46074,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25250:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25250:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25265:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"25250:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25250:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46082,"nodeType":"ExpressionStatement","src":"25250:54:69"}]}},"id":46149,"nodeType":"IfStatement","src":"24854:1017:69","trueBody":{"id":46042,"nodeType":"Block","src":"24901:95:69","statements":[{"expression":{"id":46040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46030,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24919:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24921:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"24919:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24934:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"24919:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46036,"indexExpression":{"id":46033,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"24945:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24919:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24956:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"24919:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46038,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24967:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24974:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"24967:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24919:62:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46041,"nodeType":"ExpressionStatement","src":"24919:62:69"}]}},{"expression":{"arguments":[{"id":46153,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25907:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46150,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25885:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25895:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"25885:21:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25885:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46155,"nodeType":"ExpressionStatement","src":"25885:24:69"},{"id":46159,"nodeType":"UncheckedBlock","src":"25923:46:69","statements":[{"expression":{"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25951:3:69","subExpression":{"id":46156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25953:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46158,"nodeType":"ExpressionStatement","src":"25951:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24694:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46010,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24699:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24694:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46161,"initializationExpression":{"assignments":[46006],"declarations":[{"constant":false,"id":46006,"mutability":"mutable","name":"i","nameLocation":"24683:1:69","nodeType":"VariableDeclaration","scope":46161,"src":"24676:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46005,"name":"uint64","nodeType":"ElementaryTypeName","src":"24676:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46008,"initialValue":{"id":46007,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46001,"src":"24687:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24676:16:69"},"nodeType":"ForStatement","src":"24671:1308:69"},{"expression":{"id":46168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46162,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25989:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25999:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"25989:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46165,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26026:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26048:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26026:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25989:60:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46169,"nodeType":"ExpressionStatement","src":"25989:60:69"},{"eventCall":{"arguments":[{"id":46171,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26094:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46170,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45323,"src":"26065:28:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":46172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26065:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46173,"nodeType":"EmitStatement","src":"26060:54:69"}]},"documentation":{"id":45966,"nodeType":"StructuredDocumentation","src":"24055:117:69","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24186:13:69","parameters":{"id":45969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45968,"mutability":"mutable","name":"configurationNumber","nameLocation":"24207:19:69","nodeType":"VariableDeclaration","scope":46175,"src":"24200:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45967,"name":"uint64","nodeType":"ElementaryTypeName","src":"24200:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"24199:28:69"},"returnParameters":{"id":45970,"nodeType":"ParameterList","parameters":[],"src":"24237:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46176],"name":"LibStaking","nameLocation":"15346:10:69","scope":46441,"usedErrors":[32461,32469,37450]},{"id":46440,"nodeType":"ContractDefinition","src":"26280:2695:69","nodes":[{"id":46181,"nodeType":"UsingForDirective","src":"26315:39:69","nodes":[],"global":false,"libraryName":{"id":46178,"name":"LibValidatorSet","nameLocations":["26321:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"26321:15:69"},"typeName":{"id":46180,"nodeType":"UserDefinedTypeName","pathNode":{"id":46179,"name":"ValidatorSet","nameLocations":["26341:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"26341:12:69"},"referencedDeclaration":50190,"src":"26341:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46185,"nodeType":"UsingForDirective","src":"26359:47:69","nodes":[],"global":false,"libraryName":{"id":46182,"name":"LibStakingChangeLog","nameLocations":["26365:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"26365:19:69"},"typeName":{"id":46184,"nodeType":"UserDefinedTypeName","pathNode":{"id":46183,"name":"StakingChangeLog","nameLocations":["26389:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"26389:16:69"},"referencedDeclaration":50123,"src":"26389:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":46220,"nodeType":"FunctionDefinition","src":"26412:475:69","nodes":[],"body":{"id":46219,"nodeType":"Block","src":"26525:362:69","nodes":[],"statements":[{"assignments":[46195],"declarations":[{"constant":false,"id":46195,"mutability":"mutable","name":"configurationNumber","nameLocation":"26542:19:69","nodeType":"VariableDeclaration","scope":46219,"src":"26535:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46194,"name":"uint64","nodeType":"ElementaryTypeName","src":"26535:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46209,"initialValue":{"arguments":[{"expression":{"expression":{"id":46199,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26615:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26629:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26615:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26636:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"26615:30:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":46202,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26663:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26677:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26663:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26684:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"26663:23:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":46205,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26709:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26723:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26709:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26730:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"26709:28:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":46196,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46188,"src":"26564:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26569:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"26564:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26577:12:69","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":46644,"src":"26564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26604:9:69","26659:2:69","26700:7:69"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26564:184:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26535:213:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46210,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"26763:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46211,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26786:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26800:19:69","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50109,"src":"26786:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26763:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46218,"nodeType":"IfStatement","src":"26759:122:69","trueBody":{"id":46217,"nodeType":"Block","src":"26821:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46214,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"26842:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46216,"nodeType":"RevertStatement","src":"26835:35:69"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"26421:11:69","parameters":{"id":46192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46188,"mutability":"mutable","name":"self","nameLocation":"26465:4:69","nodeType":"VariableDeclaration","scope":46220,"src":"26433:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46187,"nodeType":"UserDefinedTypeName","pathNode":{"id":46186,"name":"ParentValidatorsTracker","nameLocations":["26433:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26433:23:69"},"referencedDeclaration":50197,"src":"26433:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46191,"mutability":"mutable","name":"changeRequest","nameLocation":"26501:13:69","nodeType":"VariableDeclaration","scope":46220,"src":"26471:43:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":46190,"nodeType":"UserDefinedTypeName","pathNode":{"id":46189,"name":"StakingChangeRequest","nameLocations":["26471:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26471:20:69"},"referencedDeclaration":50110,"src":"26471:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"26432:83:69"},"returnParameters":{"id":46193,"nodeType":"ParameterList","parameters":[],"src":"26525:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46261,"nodeType":"FunctionDefinition","src":"26893:415:69","nodes":[],"body":{"id":46260,"nodeType":"Block","src":"27036:272:69","nodes":[],"statements":[{"assignments":[46231],"declarations":[{"constant":false,"id":46231,"mutability":"mutable","name":"length","nameLocation":"27054:6:69","nodeType":"VariableDeclaration","scope":46260,"src":"27046:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46230,"name":"uint256","nodeType":"ElementaryTypeName","src":"27046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46234,"initialValue":{"expression":{"id":46232,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27063:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27078:6:69","memberName":"length","nodeType":"MemberAccess","src":"27063:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27046:38:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46235,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27098:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27108:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27098:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46240,"nodeType":"IfStatement","src":"27094:48:69","trueBody":{"id":46239,"nodeType":"Block","src":"27111:31:69","statements":[{"functionReturnParameters":46229,"id":46238,"nodeType":"Return","src":"27125:7:69"}]}},{"body":{"id":46258,"nodeType":"Block","src":"27182:120:69","statements":[{"expression":{"arguments":[{"id":46248,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46223,"src":"27208:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":46249,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27214:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46251,"indexExpression":{"id":46250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27229:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27214:17:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":46247,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27196:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":46252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27196:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46253,"nodeType":"ExpressionStatement","src":"27196:36:69"},{"id":46257,"nodeType":"UncheckedBlock","src":"27246:46:69","statements":[{"expression":{"id":46255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27274:3:69","subExpression":{"id":46254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27276:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46256,"nodeType":"ExpressionStatement","src":"27274:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27168:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46245,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27172:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27168:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46259,"initializationExpression":{"assignments":[46242],"declarations":[{"constant":false,"id":46242,"mutability":"mutable","name":"i","nameLocation":"27165:1:69","nodeType":"VariableDeclaration","scope":46259,"src":"27157:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46241,"name":"uint256","nodeType":"ElementaryTypeName","src":"27157:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46243,"nodeType":"VariableDeclarationStatement","src":"27157:9:69"},"nodeType":"ForStatement","src":"27152:150:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26902:16:69","parameters":{"id":46228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46223,"mutability":"mutable","name":"self","nameLocation":"26960:4:69","nodeType":"VariableDeclaration","scope":46261,"src":"26928:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46222,"nodeType":"UserDefinedTypeName","pathNode":{"id":46221,"name":"ParentValidatorsTracker","nameLocations":["26928:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26928:23:69"},"referencedDeclaration":50197,"src":"26928:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46227,"mutability":"mutable","name":"changeRequests","nameLocation":"27006:14:69","nodeType":"VariableDeclaration","scope":46261,"src":"26974:46:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":46225,"nodeType":"UserDefinedTypeName","pathNode":{"id":46224,"name":"StakingChangeRequest","nameLocations":["26974:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26974:20:69"},"referencedDeclaration":50110,"src":"26974:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":46226,"nodeType":"ArrayTypeName","src":"26974:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26918:108:69"},"returnParameters":{"id":46229,"nodeType":"ParameterList","parameters":[],"src":"27036:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46439,"nodeType":"FunctionDefinition","src":"27379:1594:69","nodes":[],"body":{"id":46438,"nodeType":"Block","src":"27477:1496:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46270,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27491:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":46271,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27514:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27514:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27527:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"27514:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27491:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46279,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27622:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":46280,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27644:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27649:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27644:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27657:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27644:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27622:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46286,"nodeType":"IfStatement","src":"27618:96:69","trueBody":{"id":46285,"nodeType":"Block","src":"27683:31:69","statements":[{"functionReturnParameters":46269,"id":46284,"nodeType":"Return","src":"27697:7:69"}]}},"id":46287,"nodeType":"IfStatement","src":"27487:227:69","trueBody":{"id":46278,"nodeType":"Block","src":"27552:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46275,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"27573:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27573:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46277,"nodeType":"RevertStatement","src":"27566:35:69"}]}},{"assignments":[46289],"declarations":[{"constant":false,"id":46289,"mutability":"mutable","name":"start","nameLocation":"27731:5:69","nodeType":"VariableDeclaration","scope":46438,"src":"27724:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46288,"name":"uint64","nodeType":"ElementaryTypeName","src":"27724:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46293,"initialValue":{"expression":{"expression":{"id":46290,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27739:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27744:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27739:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27752:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27739:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27724:52:69"},{"body":{"id":46426,"nodeType":"Block","src":"27838:1056:69","statements":[{"assignments":[46303],"declarations":[{"constant":false,"id":46303,"mutability":"mutable","name":"change","nameLocation":"27874:6:69","nodeType":"VariableDeclaration","scope":46426,"src":"27852:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46302,"nodeType":"UserDefinedTypeName","pathNode":{"id":46301,"name":"StakingChange","nameLocations":["27852:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"27852:13:69"},"referencedDeclaration":50104,"src":"27852:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46309,"initialValue":{"arguments":[{"id":46307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27906:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46304,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27883:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27888:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27883:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27896:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"27883:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27883:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27852:56:69"},{"assignments":[46311],"declarations":[{"constant":false,"id":46311,"mutability":"mutable","name":"validator","nameLocation":"27930:9:69","nodeType":"VariableDeclaration","scope":46426,"src":"27922:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46310,"name":"address","nodeType":"ElementaryTypeName","src":"27922:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46314,"initialValue":{"expression":{"id":46312,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27942:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27949:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"27942:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27922:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46315,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27977:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27984:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"27977:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46317,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"27990:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28007:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"27990:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"27977:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46333,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28126:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28133:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28126:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46335,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28139:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28156:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"28139:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28126:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46411,"nodeType":"Block","src":"28447:336:69","statements":[{"assignments":[46375],"declarations":[{"constant":false,"id":46375,"mutability":"mutable","name":"amount","nameLocation":"28473:6:69","nodeType":"VariableDeclaration","scope":46411,"src":"28465:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46374,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46384,"initialValue":{"arguments":[{"expression":{"id":46378,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28493:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28500:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28493:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28510:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46380,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:69","typeDescriptions":{}}}],"id":46382,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28509:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28482:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28486:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28482:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28482:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46385,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28542:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28542:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46387,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28555:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28572:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"28555:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28542:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46409,"nodeType":"Block","src":"28679:90:69","statements":[{"expression":{"arguments":[{"id":46405,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28732:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46406,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28743:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46400,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28701:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28706:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28701:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28717:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"28701:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28701:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46408,"nodeType":"ExpressionStatement","src":"28701:49:69"}]},"id":46410,"nodeType":"IfStatement","src":"28538:231:69","trueBody":{"id":46399,"nodeType":"Block","src":"28582:91:69","statements":[{"expression":{"arguments":[{"id":46395,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28636:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46396,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28647:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46390,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28604:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28609:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28604:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28620:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"28604:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:50:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46398,"nodeType":"ExpressionStatement","src":"28604:50:69"}]}}]},"id":46412,"nodeType":"IfStatement","src":"28122:661:69","trueBody":{"id":46373,"nodeType":"Block","src":"28175:266:69","statements":[{"assignments":[46339,46341],"declarations":[{"constant":false,"id":46339,"mutability":"mutable","name":"metadata","nameLocation":"28207:8:69","nodeType":"VariableDeclaration","scope":46373,"src":"28194:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46338,"name":"bytes","nodeType":"ElementaryTypeName","src":"28194:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46341,"mutability":"mutable","name":"power","nameLocation":"28225:5:69","nodeType":"VariableDeclaration","scope":46373,"src":"28217:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46340,"name":"uint256","nodeType":"ElementaryTypeName","src":"28217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46352,"initialValue":{"arguments":[{"expression":{"id":46344,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28245:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28252:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28245:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28262:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46346,"name":"bytes","nodeType":"ElementaryTypeName","src":"28262:5:69","typeDescriptions":{}}},{"id":46349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28269:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46348,"name":"uint256","nodeType":"ElementaryTypeName","src":"28269:7:69","typeDescriptions":{}}}],"id":46350,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28261:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28234:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28238:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28234:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28234:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28193:85:69"},{"expression":{"id":46362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28296:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28301:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28296:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28296:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46359,"indexExpression":{"id":46356,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28323:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28296:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28334:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28296:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46361,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46339,"src":"28345:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28296:57:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46363,"nodeType":"ExpressionStatement","src":"28296:57:69"},{"expression":{"arguments":[{"id":46369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28409:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46370,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46341,"src":"28420:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46364,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28371:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28376:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28371:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28387:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"28371:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28371:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46372,"nodeType":"ExpressionStatement","src":"28371:55:69"}]}},"id":46413,"nodeType":"IfStatement","src":"27973:810:69","trueBody":{"id":46332,"nodeType":"Block","src":"28020:96:69","statements":[{"expression":{"id":46330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46320,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28038:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28043:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28038:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28054:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28038:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46326,"indexExpression":{"id":46323,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28065:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28038:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28076:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28038:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46328,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28087:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28094:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28087:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"28038:63:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46331,"nodeType":"ExpressionStatement","src":"28038:63:69"}]}},{"expression":{"arguments":[{"id":46419,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28822:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46414,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28797:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28802:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28797:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28810:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"28797:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28797:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46421,"nodeType":"ExpressionStatement","src":"28797:27:69"},{"id":46425,"nodeType":"UncheckedBlock","src":"28838:46:69","statements":[{"expression":{"id":46423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28866:3:69","subExpression":{"id":46422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28868:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46424,"nodeType":"ExpressionStatement","src":"28866:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27810:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46299,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27815:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27810:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46427,"initializationExpression":{"assignments":[46295],"declarations":[{"constant":false,"id":46295,"mutability":"mutable","name":"i","nameLocation":"27799:1:69","nodeType":"VariableDeclaration","scope":46427,"src":"27792:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46294,"name":"uint64","nodeType":"ElementaryTypeName","src":"27792:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46297,"initialValue":{"id":46296,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46289,"src":"27803:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27792:16:69"},"nodeType":"ForStatement","src":"27787:1107:69"},{"expression":{"id":46436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46428,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28903:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28903:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28916:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"28903:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46433,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"28943:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28965:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28943:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28903:63:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46437,"nodeType":"ExpressionStatement","src":"28903:63:69"}]},"documentation":{"id":46262,"nodeType":"StructuredDocumentation","src":"27314:60:69","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27388:13:69","parameters":{"id":46268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46265,"mutability":"mutable","name":"self","nameLocation":"27434:4:69","nodeType":"VariableDeclaration","scope":46439,"src":"27402:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46264,"nodeType":"UserDefinedTypeName","pathNode":{"id":46263,"name":"ParentValidatorsTracker","nameLocations":["27402:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"27402:23:69"},"referencedDeclaration":50197,"src":"27402:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46267,"mutability":"mutable","name":"configurationNumber","nameLocation":"27447:19:69","nodeType":"VariableDeclaration","scope":46439,"src":"27440:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46266,"name":"uint64","nodeType":"ElementaryTypeName","src":"27440:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"27401:66:69"},"returnParameters":{"id":46269,"nodeType":"ParameterList","parameters":[],"src":"27477:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":46177,"nodeType":"StructuredDocumentation","src":"26125:155:69","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[46440],"name":"LibValidatorTracking","nameLocation":"26288:20:69","scope":46441,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file diff --git a/.out/LibStaking.sol/LibStakingReleaseQueue.json b/.out/LibStaking.sol/LibStakingReleaseQueue.json index 85cbcc142..2d9b019ab 100644 --- a/.out/LibStaking.sol/LibStakingReleaseQueue.json +++ b/.out/LibStaking.sol/LibStakingReleaseQueue.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"NewCollateralRelease","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"releaseBlock","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212200017948905e5c80cd420141e613fb4b3c66abfc295e8304815b83cf20a863d6364736f6c63430008130033","sourceMap":"2586:1272:64:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212200017948905e5c80cd420141e613fb4b3c66abfc295e8304815b83cf20a863d6364736f6c63430008130033","sourceMap":"2586:1272:64:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"releaseBlock\",\"type\":\"uint256\"}],\"name\":\"NewCollateralRelease\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The util library for `StakingReleaseQueue`\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibStakingReleaseQueue\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"releaseBlock","type":"uint256","indexed":false}],"type":"event","name":"NewCollateralRelease","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibStakingReleaseQueue"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":45729,"exportedSymbols":{"Address":[32409],"AddressShouldBeValidator":[36936],"AddressStakingReleases":[48623],"CannotConfirmFutureChanges":[36940],"IGateway":[39904],"InvalidConfigurationNumber":[36986],"LibAddressStakingReleases":[43484],"LibMaxPQ":[47494],"LibMinPQ":[48113],"LibStaking":[45464],"LibStakingChangeLog":[45966],"LibStakingReleaseQueue":[43603],"LibSubnetActorStorage":[46096],"LibValidatorSet":[44594],"LibValidatorTracking":[45728],"MaxPQ":[46889],"MinPQ":[47507],"NoCollateralToWithdraw":[37016],"NoRewardToWithdraw":[37018],"NotValidator":[37058],"ParentValidatorsTracker":[48680],"PermissionMode":[48648],"StakingChange":[48587],"StakingChangeLog":[48606],"StakingChangeRequest":[48593],"StakingOperation":[48579],"StakingRelease":[48613],"StakingReleaseQueue":[48633],"SubnetActorStorage":[46085],"Validator":[48694],"ValidatorSet":[48673],"WithdrawExceedingCollateral":[37078]},"nodeType":"SourceUnit","src":"46:28434:64","nodes":[{"id":43316,"nodeType":"PragmaDirective","src":"46:23:64","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43318,"nodeType":"ImportDirective","src":"71:52:64","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":39905,"symbolAliases":[{"foreign":{"id":43317,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"79:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43321,"nodeType":"ImportDirective","src":"124:86:64","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":46140,"symbolAliases":[{"foreign":{"id":43319,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"132:21:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43320,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"155:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43324,"nodeType":"ImportDirective","src":"211:56:64","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":47495,"symbolAliases":[{"foreign":{"id":43322,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47494,"src":"219:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43323,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46889,"src":"229:5:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43327,"nodeType":"ImportDirective","src":"268:56:64","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":48114,"symbolAliases":[{"foreign":{"id":43325,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48113,"src":"276:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43326,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47507,"src":"286:5:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43329,"nodeType":"ImportDirective","src":"325:62:64","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":45967,"symbolAliases":[{"foreign":{"id":43328,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45966,"src":"333:19:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43341,"nodeType":"ImportDirective","src":"388:237:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":43330,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"396:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43331,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48633,"src":"412:19:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43332,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48606,"src":"433:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43333,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48587,"src":"451:13:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43334,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48593,"src":"466:20:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43335,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"488:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43336,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48613,"src":"506:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43337,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48673,"src":"522:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43338,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48623,"src":"536:22:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43339,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48680,"src":"560:23:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43340,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"585:9:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43349,"nodeType":"ImportDirective","src":"626:208:64","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":43342,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37018,"src":"634:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43343,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37078,"src":"654:27:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43344,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37058,"src":"683:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43345,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36940,"src":"697:26:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43346,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37016,"src":"725:22:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43347,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36936,"src":"749:24:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43348,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36986,"src":"775:26:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43351,"nodeType":"ImportDirective","src":"835:65:64","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":32410,"symbolAliases":[{"foreign":{"id":43350,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"843:7:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43484,"nodeType":"ContractDefinition","src":"902:1635:64","nodes":[{"id":43390,"nodeType":"FunctionDefinition","src":"1118:261:64","nodes":[],"body":{"id":43389,"nodeType":"Block","src":"1209:170:64","nodes":[],"statements":[{"assignments":[43362],"declarations":[{"constant":false,"id":43362,"mutability":"mutable","name":"length","nameLocation":"1226:6:64","nodeType":"VariableDeclaration","scope":43389,"src":"1219:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43361,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43365,"initialValue":{"expression":{"id":43363,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1235:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1235:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:64"},{"assignments":[43367],"declarations":[{"constant":false,"id":43367,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:64","nodeType":"VariableDeclaration","scope":43389,"src":"1256:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43366,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43372,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43368,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1273:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:64","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"1273:13:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":43370,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43362,"src":"1289:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:64"},{"expression":{"id":43379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":43373,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1306:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48622,"src":"1306:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":43377,"indexExpression":{"id":43375,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43367,"src":"1320:7:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43378,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43358,"src":"1331:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"id":43380,"nodeType":"ExpressionStatement","src":"1306:32:64"},{"expression":{"id":43387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1348:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1348:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43384,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43362,"src":"1362:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":43385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43388,"nodeType":"ExpressionStatement","src":"1348:24:64"}]},"documentation":{"id":43352,"nodeType":"StructuredDocumentation","src":"942:171:64","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:64","parameters":{"id":43359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43355,"mutability":"mutable","name":"self","nameLocation":"1163:4:64","nodeType":"VariableDeclaration","scope":43390,"src":"1132:35:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":43354,"nodeType":"UserDefinedTypeName","pathNode":{"id":43353,"name":"AddressStakingReleases","nameLocations":["1132:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"1132:22:64"},"referencedDeclaration":48623,"src":"1132:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":43358,"mutability":"mutable","name":"release","nameLocation":"1191:7:64","nodeType":"VariableDeclaration","scope":43390,"src":"1169:29:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":43357,"nodeType":"UserDefinedTypeName","pathNode":{"id":43356,"name":"StakingRelease","nameLocations":["1169:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"1169:14:64"},"referencedDeclaration":48613,"src":"1169:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:64"},"returnParameters":{"id":43360,"nodeType":"ParameterList","parameters":[],"src":"1209:0:64"},"scope":43484,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43483,"nodeType":"FunctionDefinition","src":"1637:898:64","nodes":[],"body":{"id":43482,"nodeType":"Block","src":"1726:809:64","nodes":[],"statements":[{"assignments":[43402],"declarations":[{"constant":false,"id":43402,"mutability":"mutable","name":"length","nameLocation":"1743:6:64","nodeType":"VariableDeclaration","scope":43482,"src":"1736:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43401,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43405,"initialValue":{"expression":{"id":43403,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"1752:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1752:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43406,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"1777:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1777:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43414,"nodeType":"IfStatement","src":"1773:78:64","trueBody":{"id":43413,"nodeType":"Block","src":"1795:56:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43410,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37016,"src":"1816:22:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43412,"nodeType":"RevertStatement","src":"1809:31:64"}]}},{"assignments":[43416],"declarations":[{"constant":false,"id":43416,"mutability":"mutable","name":"i","nameLocation":"1868:1:64","nodeType":"VariableDeclaration","scope":43482,"src":"1861:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43415,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43419,"initialValue":{"expression":{"id":43417,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"1872:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:64","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"1872:13:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:64"},{"assignments":[43421],"declarations":[{"constant":false,"id":43421,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:64","nodeType":"VariableDeclaration","scope":43482,"src":"1895:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43420,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43423,"initialValue":{"id":43422,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43402,"src":"1914:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:64"},{"assignments":[43425],"declarations":[{"constant":false,"id":43425,"mutability":"mutable","name":"amount","nameLocation":"1938:6:64","nodeType":"VariableDeclaration","scope":43482,"src":"1930:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43424,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43426,"nodeType":"VariableDeclarationStatement","src":"1930:14:64"},{"body":{"id":43464,"nodeType":"Block","src":"1973:458:64","statements":[{"assignments":[43432],"declarations":[{"constant":false,"id":43432,"mutability":"mutable","name":"release","nameLocation":"2009:7:64","nodeType":"VariableDeclaration","scope":43464,"src":"1987:29:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":43431,"nodeType":"UserDefinedTypeName","pathNode":{"id":43430,"name":"StakingRelease","nameLocations":["1987:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"1987:14:64"},"referencedDeclaration":48613,"src":"1987:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":43437,"initialValue":{"baseExpression":{"expression":{"id":43433,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2019:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48622,"src":"2019:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":43436,"indexExpression":{"id":43435,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2033:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43438,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43432,"src":"2184:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"id":43439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:64","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":48609,"src":"2184:17:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":43440,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:64","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:64","memberName":"number","nodeType":"MemberAccess","src":"2204:12:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43445,"nodeType":"IfStatement","src":"2180:76:64","trueBody":{"id":43444,"nodeType":"Block","src":"2218:38:64","statements":[{"id":43443,"nodeType":"Break","src":"2236:5:64"}]}},{"expression":{"id":43449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43446,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43425,"src":"2270:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":43447,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43432,"src":"2280:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"id":43448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:64","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":48612,"src":"2280:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43450,"nodeType":"ExpressionStatement","src":"2270:24:64"},{"expression":{"id":43455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:64","subExpression":{"baseExpression":{"expression":{"id":43451,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2315:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48622,"src":"2315:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":43454,"indexExpression":{"id":43453,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2329:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43456,"nodeType":"ExpressionStatement","src":"2308:23:64"},{"id":43463,"nodeType":"UncheckedBlock","src":"2346:75:64","statements":[{"expression":{"id":43458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:64","subExpression":{"id":43457,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2376:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43459,"nodeType":"ExpressionStatement","src":"2374:3:64"},{"expression":{"id":43461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:64","subExpression":{"id":43460,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2397:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43462,"nodeType":"ExpressionStatement","src":"2395:11:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43427,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"1961:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43428,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43402,"src":"1965:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43465,"nodeType":"WhileStatement","src":"1954:477:64"},{"expression":{"id":43470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43466,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2441:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:64","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"2441:13:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2457:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43471,"nodeType":"ExpressionStatement","src":"2441:17:64"},{"expression":{"id":43476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2468:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"2468:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43475,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2482:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43477,"nodeType":"ExpressionStatement","src":"2468:23:64"},{"expression":{"components":[{"id":43478,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43425,"src":"2510:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43479,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2518:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":43480,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":43400,"id":43481,"nodeType":"Return","src":"2502:26:64"}]},"documentation":{"id":43391,"nodeType":"StructuredDocumentation","src":"1385:247:64","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:64","parameters":{"id":43395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43394,"mutability":"mutable","name":"self","nameLocation":"1685:4:64","nodeType":"VariableDeclaration","scope":43483,"src":"1654:35:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":43393,"nodeType":"UserDefinedTypeName","pathNode":{"id":43392,"name":"AddressStakingReleases","nameLocations":["1654:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"1654:22:64"},"referencedDeclaration":48623,"src":"1654:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:64"},"returnParameters":{"id":43400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43483,"src":"1709:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43396,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43483,"src":"1718:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43398,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:64"},"scope":43484,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[43484],"name":"LibAddressStakingReleases","nameLocation":"910:25:64","scope":45729,"usedErrors":[]},{"id":43603,"nodeType":"ContractDefinition","src":"2586:1272:64","nodes":[{"id":43488,"nodeType":"UsingForDirective","src":"2623:34:64","nodes":[],"global":false,"libraryName":{"id":43486,"name":"Address","nameLocations":["2629:7:64"],"nodeType":"IdentifierPath","referencedDeclaration":32409,"src":"2629:7:64"},"typeName":{"id":43487,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":43492,"nodeType":"UsingForDirective","src":"2662:59:64","nodes":[],"global":false,"libraryName":{"id":43489,"name":"LibAddressStakingReleases","nameLocations":["2668:25:64"],"nodeType":"IdentifierPath","referencedDeclaration":43484,"src":"2668:25:64"},"typeName":{"id":43491,"nodeType":"UserDefinedTypeName","pathNode":{"id":43490,"name":"AddressStakingReleases","nameLocations":["2698:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"2698:22:64"},"referencedDeclaration":48623,"src":"2698:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":43500,"nodeType":"EventDefinition","src":"2727:84:64","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:64","parameters":{"id":43499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43494,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:64","nodeType":"VariableDeclaration","scope":43500,"src":"2754:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43493,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43496,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:64","nodeType":"VariableDeclaration","scope":43500,"src":"2773:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43495,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43498,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:64","nodeType":"VariableDeclaration","scope":43500,"src":"2789:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43497,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:64"}},{"id":43515,"nodeType":"FunctionDefinition","src":"2817:130:64","nodes":[],"body":{"id":43514,"nodeType":"Block","src":"2901:46:64","nodes":[],"statements":[{"expression":{"id":43512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43508,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43503,"src":"2911:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:64","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":48626,"src":"2911:20:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43511,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43505,"src":"2934:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43513,"nodeType":"ExpressionStatement","src":"2911:29:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:64","parameters":{"id":43506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43503,"mutability":"mutable","name":"self","nameLocation":"2870:4:64","nodeType":"VariableDeclaration","scope":43515,"src":"2842:32:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":43502,"nodeType":"UserDefinedTypeName","pathNode":{"id":43501,"name":"StakingReleaseQueue","nameLocations":["2842:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"2842:19:64"},"referencedDeclaration":48633,"src":"2842:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":43505,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:64","nodeType":"VariableDeclaration","scope":43515,"src":"2876:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43504,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:64"},"returnParameters":{"id":43507,"nodeType":"ParameterList","parameters":[],"src":"2901:0:64"},"scope":43603,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43558,"nodeType":"FunctionDefinition","src":"3016:419:64","nodes":[],"body":{"id":43557,"nodeType":"Block","src":"3117:318:64","nodes":[],"statements":[{"assignments":[43527],"declarations":[{"constant":false,"id":43527,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:64","nodeType":"VariableDeclaration","scope":43557,"src":"3127:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43526,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43533,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43528,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:64","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:64","memberName":"number","nodeType":"MemberAccess","src":"3147:12:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":43530,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43519,"src":"3162:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:64","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":48626,"src":"3162:20:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:64"},{"assignments":[43536],"declarations":[{"constant":false,"id":43536,"mutability":"mutable","name":"release","nameLocation":"3214:7:64","nodeType":"VariableDeclaration","scope":43557,"src":"3192:29:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":43535,"nodeType":"UserDefinedTypeName","pathNode":{"id":43534,"name":"StakingRelease","nameLocations":["3192:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"3192:14:64"},"referencedDeclaration":48613,"src":"3192:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":43541,"initialValue":{"arguments":[{"id":43538,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43527,"src":"3251:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43539,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43523,"src":"3270:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43537,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48613,"src":"3224:14:64","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$48613_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":43540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:64","3262:6:64"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:64"},{"expression":{"arguments":[{"id":43548,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43536,"src":"3319:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":43542,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43519,"src":"3289:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48632,"src":"3289:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":43546,"indexExpression":{"id":43544,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"3303:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":43547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:64","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":43390,"src":"3289:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$_t_struct$_StakingRelease_$48613_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":43549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43550,"nodeType":"ExpressionStatement","src":"3289:38:64"},{"eventCall":{"arguments":[{"id":43552,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"3376:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43553,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43523,"src":"3395:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43554,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43527,"src":"3417:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43551,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43500,"src":"3343:20:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":43555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:64","3387:6:64","3403:12:64"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43556,"nodeType":"EmitStatement","src":"3338:90:64"}]},"documentation":{"id":43516,"nodeType":"StructuredDocumentation","src":"2953:58:64","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:64","parameters":{"id":43524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43519,"mutability":"mutable","name":"self","nameLocation":"3067:4:64","nodeType":"VariableDeclaration","scope":43558,"src":"3039:32:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":43518,"nodeType":"UserDefinedTypeName","pathNode":{"id":43517,"name":"StakingReleaseQueue","nameLocations":["3039:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"3039:19:64"},"referencedDeclaration":48633,"src":"3039:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":43521,"mutability":"mutable","name":"validator","nameLocation":"3081:9:64","nodeType":"VariableDeclaration","scope":43558,"src":"3073:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43520,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43523,"mutability":"mutable","name":"amount","nameLocation":"3100:6:64","nodeType":"VariableDeclaration","scope":43558,"src":"3092:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43522,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:64"},"returnParameters":{"id":43525,"nodeType":"ParameterList","parameters":[],"src":"3117:0:64"},"scope":43603,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43602,"nodeType":"FunctionDefinition","src":"3516:340:64","nodes":[],"body":{"id":43601,"nodeType":"Block","src":"3611:245:64","nodes":[],"statements":[{"assignments":[43570,43572],"declarations":[{"constant":false,"id":43570,"mutability":"mutable","name":"amount","nameLocation":"3630:6:64","nodeType":"VariableDeclaration","scope":43601,"src":"3622:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43569,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43572,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:64","nodeType":"VariableDeclaration","scope":43601,"src":"3638:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43571,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43579,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":43573,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43562,"src":"3658:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48632,"src":"3658:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":43576,"indexExpression":{"id":43575,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43564,"src":"3672:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":43577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:64","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":43483,"src":"3658:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":43578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43580,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43572,"src":"3707:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43590,"nodeType":"IfStatement","src":"3703:76:64","trueBody":{"id":43589,"nodeType":"Block","src":"3723:56:64","statements":[{"expression":{"id":43587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:64","subExpression":{"baseExpression":{"expression":{"id":43583,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43562,"src":"3744:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48632,"src":"3744:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":43586,"indexExpression":{"id":43585,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43564,"src":"3758:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43588,"nodeType":"ExpressionStatement","src":"3737:31:64"}]}},{"expression":{"arguments":[{"id":43596,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43570,"src":"3818:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43593,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43564,"src":"3797:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":43591,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:64","stateMutability":"payable","typeDescriptions":{}}},"id":43594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":43595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:64","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"3789:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":43597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43598,"nodeType":"ExpressionStatement","src":"3789:36:64"},{"expression":{"id":43599,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43570,"src":"3843:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":43568,"id":43600,"nodeType":"Return","src":"3836:13:64"}]},"documentation":{"id":43559,"nodeType":"StructuredDocumentation","src":"3441:70:64","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:64","parameters":{"id":43565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43562,"mutability":"mutable","name":"self","nameLocation":"3559:4:64","nodeType":"VariableDeclaration","scope":43602,"src":"3531:32:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":43561,"nodeType":"UserDefinedTypeName","pathNode":{"id":43560,"name":"StakingReleaseQueue","nameLocations":["3531:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"3531:19:64"},"referencedDeclaration":48633,"src":"3531:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":43564,"mutability":"mutable","name":"validator","nameLocation":"3573:9:64","nodeType":"VariableDeclaration","scope":43602,"src":"3565:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43563,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:64"},"returnParameters":{"id":43568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43567,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43602,"src":"3602:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43566,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:64"},"scope":43603,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":43485,"nodeType":"StructuredDocumentation","src":"2539:47:64","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[43603],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:64","scope":45729,"usedErrors":[]},{"id":44594,"nodeType":"ContractDefinition","src":"3900:11436:64","nodes":[{"id":43608,"nodeType":"UsingForDirective","src":"3930:25:64","nodes":[],"global":false,"libraryName":{"id":43605,"name":"LibMinPQ","nameLocations":["3936:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":48113,"src":"3936:8:64"},"typeName":{"id":43607,"nodeType":"UserDefinedTypeName","pathNode":{"id":43606,"name":"MinPQ","nameLocations":["3949:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"3949:5:64"},"referencedDeclaration":47507,"src":"3949:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}}},{"id":43612,"nodeType":"UsingForDirective","src":"3960:25:64","nodes":[],"global":false,"libraryName":{"id":43609,"name":"LibMaxPQ","nameLocations":["3966:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":47494,"src":"3966:8:64"},"typeName":{"id":43611,"nodeType":"UserDefinedTypeName","pathNode":{"id":43610,"name":"MaxPQ","nameLocations":["3979:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"3979:5:64"},"referencedDeclaration":46889,"src":"3979:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}}},{"id":43618,"nodeType":"EventDefinition","src":"3991:76:64","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:64","parameters":{"id":43617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43614,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:64","nodeType":"VariableDeclaration","scope":43618,"src":"4030:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43613,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43616,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:64","nodeType":"VariableDeclaration","scope":43618,"src":"4049:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43615,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:64"}},{"id":43624,"nodeType":"EventDefinition","src":"4072:77:64","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:64","parameters":{"id":43623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43620,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:64","nodeType":"VariableDeclaration","scope":43624,"src":"4112:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43619,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43622,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:64","nodeType":"VariableDeclaration","scope":43624,"src":"4131:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43621,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:64"}},{"id":43630,"nodeType":"EventDefinition","src":"4154:59:64","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:64","parameters":{"id":43629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43626,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:64","nodeType":"VariableDeclaration","scope":43630,"src":"4179:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43625,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43628,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:64","nodeType":"VariableDeclaration","scope":43630,"src":"4198:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43627,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:64"}},{"id":43636,"nodeType":"EventDefinition","src":"4218:60:64","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:64","parameters":{"id":43635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43632,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:64","nodeType":"VariableDeclaration","scope":43636,"src":"4244:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43631,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43634,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:64","nodeType":"VariableDeclaration","scope":43636,"src":"4263:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43633,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:64"}},{"id":43642,"nodeType":"EventDefinition","src":"4283:74:64","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:64","parameters":{"id":43641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43638,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:64","nodeType":"VariableDeclaration","scope":43642,"src":"4313:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43637,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43640,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:64","nodeType":"VariableDeclaration","scope":43642,"src":"4335:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43639,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:64"}},{"id":43646,"nodeType":"EventDefinition","src":"4362:45:64","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:64","parameters":{"id":43645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43644,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:64","nodeType":"VariableDeclaration","scope":43646,"src":"4388:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43643,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:64"}},{"id":43650,"nodeType":"EventDefinition","src":"4412:46:64","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:64","parameters":{"id":43649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43648,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:64","nodeType":"VariableDeclaration","scope":43650,"src":"4439:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43647,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:64"}},{"id":43686,"nodeType":"FunctionDefinition","src":"4525:375:64","nodes":[],"body":{"id":43685,"nodeType":"Block","src":"4654:246:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"id":43665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43661,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43654,"src":"4668:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:64","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":48652,"src":"4668:25:64","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":43663,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"4697:14:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":43664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:64","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":48646,"src":"4697:24:64","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"src":"4668:53:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43683,"nodeType":"Block","src":"4809:85:64","statements":[{"expression":{"id":43681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43675,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43659,"src":"4823:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":43676,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43654,"src":"4831:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"4831:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43679,"indexExpression":{"id":43678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43656,"src":"4853:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"4831:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43682,"nodeType":"ExpressionStatement","src":"4823:60:64"}]},"id":43684,"nodeType":"IfStatement","src":"4664:230:64","trueBody":{"id":43674,"nodeType":"Block","src":"4723:80:64","statements":[{"expression":{"id":43672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43666,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43659,"src":"4737:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":43667,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43654,"src":"4745:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"4745:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43670,"indexExpression":{"id":43669,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43656,"src":"4767:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:64","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":48636,"src":"4745:47:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43673,"nodeType":"ExpressionStatement","src":"4737:55:64"}]}}]},"documentation":{"id":43651,"nodeType":"StructuredDocumentation","src":"4464:56:64","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:64","parameters":{"id":43657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43654,"mutability":"mutable","name":"validators","nameLocation":"4573:10:64","nodeType":"VariableDeclaration","scope":43686,"src":"4552:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43653,"nodeType":"UserDefinedTypeName","pathNode":{"id":43652,"name":"ValidatorSet","nameLocations":["4552:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"4552:12:64"},"referencedDeclaration":48673,"src":"4552:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43656,"mutability":"mutable","name":"validator","nameLocation":"4601:9:64","nodeType":"VariableDeclaration","scope":43686,"src":"4593:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43655,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:64"},"returnParameters":{"id":43660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43659,"mutability":"mutable","name":"power","nameLocation":"4647:5:64","nodeType":"VariableDeclaration","scope":43686,"src":"4639:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43658,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43701,"nodeType":"FunctionDefinition","src":"4976:178:64","nodes":[],"body":{"id":43700,"nodeType":"Block","src":"5089:65:64","nodes":[],"statements":[{"expression":{"id":43698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43695,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43693,"src":"5099:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":43696,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43690,"src":"5112:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:64","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48658,"src":"5112:35:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43699,"nodeType":"ExpressionStatement","src":"5099:48:64"}]},"documentation":{"id":43687,"nodeType":"StructuredDocumentation","src":"4906:65:64","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:64","parameters":{"id":43691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43690,"mutability":"mutable","name":"validators","nameLocation":"5034:10:64","nodeType":"VariableDeclaration","scope":43701,"src":"5013:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43689,"nodeType":"UserDefinedTypeName","pathNode":{"id":43688,"name":"ValidatorSet","nameLocations":["5013:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5013:12:64"},"referencedDeclaration":48673,"src":"5013:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:64"},"returnParameters":{"id":43694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43693,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:64","nodeType":"VariableDeclaration","scope":43701,"src":"5069:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43692,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43718,"nodeType":"FunctionDefinition","src":"5209:163:64","nodes":[],"body":{"id":43717,"nodeType":"Block","src":"5310:62:64","nodes":[],"statements":[{"expression":{"id":43715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43710,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43708,"src":"5320:5:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43711,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43705,"src":"5328:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"5328:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"5328:35:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":43714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43716,"nodeType":"ExpressionStatement","src":"5320:45:64"}]},"documentation":{"id":43702,"nodeType":"StructuredDocumentation","src":"5160:44:64","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:64","parameters":{"id":43706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43705,"mutability":"mutable","name":"validators","nameLocation":"5261:10:64","nodeType":"VariableDeclaration","scope":43718,"src":"5240:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43704,"nodeType":"UserDefinedTypeName","pathNode":{"id":43703,"name":"ValidatorSet","nameLocations":["5240:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5240:12:64"},"referencedDeclaration":48673,"src":"5240:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:64"},"returnParameters":{"id":43709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43708,"mutability":"mutable","name":"total","nameLocation":"5303:5:64","nodeType":"VariableDeclaration","scope":43718,"src":"5296:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43707,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43738,"nodeType":"FunctionDefinition","src":"5441:231:64","nodes":[],"body":{"id":43737,"nodeType":"Block","src":"5590:82:64","nodes":[],"statements":[{"expression":{"id":43735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43729,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43727,"src":"5600:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":43730,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43722,"src":"5613:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"5613:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43733,"indexExpression":{"id":43732,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43724,"src":"5635:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"5613:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43736,"nodeType":"ExpressionStatement","src":"5600:65:64"}]},"documentation":{"id":43719,"nodeType":"StructuredDocumentation","src":"5378:58:64","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:64","parameters":{"id":43725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43722,"mutability":"mutable","name":"validators","nameLocation":"5503:10:64","nodeType":"VariableDeclaration","scope":43738,"src":"5482:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43721,"nodeType":"UserDefinedTypeName","pathNode":{"id":43720,"name":"ValidatorSet","nameLocations":["5482:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5482:12:64"},"referencedDeclaration":48673,"src":"5482:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43724,"mutability":"mutable","name":"validator","nameLocation":"5531:9:64","nodeType":"VariableDeclaration","scope":43738,"src":"5523:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43723,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:64"},"returnParameters":{"id":43728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43727,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:64","nodeType":"VariableDeclaration","scope":43738,"src":"5570:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43726,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43790,"nodeType":"FunctionDefinition","src":"5678:434:64","nodes":[],"body":{"id":43789,"nodeType":"Block","src":"5792:320:64","nodes":[],"statements":[{"assignments":[43748],"declarations":[{"constant":false,"id":43748,"mutability":"mutable","name":"size","nameLocation":"5809:4:64","nodeType":"VariableDeclaration","scope":43789,"src":"5802:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43747,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43753,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43749,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43741,"src":"5816:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"5816:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"5816:35:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":43752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:64"},{"expression":{"id":43760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43754,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43745,"src":"5863:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43758,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43748,"src":"5889:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":43757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:64","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":43755,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43756,"nodeType":"ArrayTypeName","src":"5879:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":43759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43761,"nodeType":"ExpressionStatement","src":"5863:31:64"},{"body":{"id":43785,"nodeType":"Block","src":"5936:144:64","statements":[{"expression":{"id":43779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":43769,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43745,"src":"5950:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43773,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43770,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"5960:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":43771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43777,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6008:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":43774,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43741,"src":"5969:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"5969:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:64","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":47546,"src":"5969:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":43778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43780,"nodeType":"ExpressionStatement","src":"5950:60:64"},{"id":43784,"nodeType":"UncheckedBlock","src":"6024:46:64","statements":[{"expression":{"id":43782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:64","subExpression":{"id":43781,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6054:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43783,"nodeType":"ExpressionStatement","src":"6052:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43766,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"5923:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43767,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43748,"src":"5928:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43786,"initializationExpression":{"assignments":[43763],"declarations":[{"constant":false,"id":43763,"mutability":"mutable","name":"i","nameLocation":"5916:1:64","nodeType":"VariableDeclaration","scope":43786,"src":"5909:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43762,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43765,"initialValue":{"hexValue":"31","id":43764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:64"},"nodeType":"ForStatement","src":"5904:176:64"},{"expression":{"id":43787,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43745,"src":"6096:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":43746,"id":43788,"nodeType":"Return","src":"6089:16:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:64","parameters":{"id":43742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43741,"mutability":"mutable","name":"validators","nameLocation":"5729:10:64","nodeType":"VariableDeclaration","scope":43790,"src":"5708:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43740,"nodeType":"UserDefinedTypeName","pathNode":{"id":43739,"name":"ValidatorSet","nameLocations":["5708:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5708:12:64"},"referencedDeclaration":48673,"src":"5708:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:64"},"returnParameters":{"id":43746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43745,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:64","nodeType":"VariableDeclaration","scope":43790,"src":"5764:26:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43743,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43744,"nodeType":"ArrayTypeName","src":"5764:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43835,"nodeType":"FunctionDefinition","src":"6183:418:64","nodes":[],"body":{"id":43834,"nodeType":"Block","src":"6288:313:64","nodes":[],"statements":[{"assignments":[43800],"declarations":[{"constant":false,"id":43800,"mutability":"mutable","name":"size","nameLocation":"6305:4:64","nodeType":"VariableDeclaration","scope":43834,"src":"6298:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43799,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43801,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6312:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"6312:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"6312:35:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":43804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:64"},{"body":{"id":43832,"nodeType":"Block","src":"6391:204:64","statements":[{"assignments":[43814],"declarations":[{"constant":false,"id":43814,"mutability":"mutable","name":"validator","nameLocation":"6413:9:64","nodeType":"VariableDeclaration","scope":43832,"src":"6405:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43813,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":43820,"initialValue":{"arguments":[{"id":43818,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"6464:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":43815,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6425:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"6425:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:64","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":47546,"src":"6425:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":43819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:64"},{"expression":{"id":43826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43821,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43797,"src":"6480:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":43823,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6503:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":43824,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43814,"src":"6515:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43822,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43686,"src":"6494:8:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":43825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43827,"nodeType":"ExpressionStatement","src":"6480:45:64"},{"id":43831,"nodeType":"UncheckedBlock","src":"6539:46:64","statements":[{"expression":{"id":43829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:64","subExpression":{"id":43828,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"6569:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43830,"nodeType":"ExpressionStatement","src":"6567:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43810,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"6378:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43811,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43800,"src":"6383:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43833,"initializationExpression":{"assignments":[43807],"declarations":[{"constant":false,"id":43807,"mutability":"mutable","name":"i","nameLocation":"6371:1:64","nodeType":"VariableDeclaration","scope":43833,"src":"6364:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43806,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43809,"initialValue":{"hexValue":"31","id":43808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:64"},"nodeType":"ForStatement","src":"6359:236:64"}]},"documentation":{"id":43791,"nodeType":"StructuredDocumentation","src":"6118:60:64","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:64","parameters":{"id":43795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43794,"mutability":"mutable","name":"validators","nameLocation":"6233:10:64","nodeType":"VariableDeclaration","scope":43835,"src":"6212:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43793,"nodeType":"UserDefinedTypeName","pathNode":{"id":43792,"name":"ValidatorSet","nameLocations":["6212:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"6212:12:64"},"referencedDeclaration":48673,"src":"6212:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:64"},"returnParameters":{"id":43798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43797,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:64","nodeType":"VariableDeclaration","scope":43835,"src":"6268:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43796,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43886,"nodeType":"FunctionDefinition","src":"6690:496:64","nodes":[],"body":{"id":43885,"nodeType":"Block","src":"6794:392:64","nodes":[],"statements":[{"assignments":[43845],"declarations":[{"constant":false,"id":43845,"mutability":"mutable","name":"size","nameLocation":"6811:4:64","nodeType":"VariableDeclaration","scope":43885,"src":"6804:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43844,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43850,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43846,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"6818:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43847,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"6818:28:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":43848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"6818:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":43849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:64"},{"body":{"id":43877,"nodeType":"Block","src":"6898:219:64","statements":[{"assignments":[43859],"declarations":[{"constant":false,"id":43859,"mutability":"mutable","name":"validator","nameLocation":"6920:9:64","nodeType":"VariableDeclaration","scope":43877,"src":"6912:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43858,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":43865,"initialValue":{"arguments":[{"id":43863,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43852,"src":"6972:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":43860,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"6932:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"6932:28:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":43862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:64","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":46928,"src":"6932:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":43864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:64"},{"expression":{"id":43871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43866,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"6988:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":43868,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"7025:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":43869,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43859,"src":"7037:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43867,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43738,"src":"7002:22:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":43870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43872,"nodeType":"ExpressionStatement","src":"6988:59:64"},{"id":43876,"nodeType":"UncheckedBlock","src":"7061:46:64","statements":[{"expression":{"id":43874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:64","subExpression":{"id":43873,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43852,"src":"7091:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43875,"nodeType":"ExpressionStatement","src":"7089:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43855,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43852,"src":"6885:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43856,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43845,"src":"6890:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43878,"initializationExpression":{"assignments":[43852],"declarations":[{"constant":false,"id":43852,"mutability":"mutable","name":"i","nameLocation":"6878:1:64","nodeType":"VariableDeclaration","scope":43878,"src":"6871:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43851,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43854,"initialValue":{"hexValue":"31","id":43853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:64"},"nodeType":"ForStatement","src":"6866:251:64"},{"expression":{"id":43883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43879,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"7126:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":43881,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"7168:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":43880,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43701,"src":"7140:27:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":43882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43884,"nodeType":"ExpressionStatement","src":"7126:53:64"}]},"documentation":{"id":43836,"nodeType":"StructuredDocumentation","src":"6607:78:64","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:64","parameters":{"id":43840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43839,"mutability":"mutable","name":"validators","nameLocation":"6739:10:64","nodeType":"VariableDeclaration","scope":43886,"src":"6718:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43838,"nodeType":"UserDefinedTypeName","pathNode":{"id":43837,"name":"ValidatorSet","nameLocations":["6718:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"6718:12:64"},"referencedDeclaration":48673,"src":"6718:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:64"},"returnParameters":{"id":43843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43842,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:64","nodeType":"VariableDeclaration","scope":43886,"src":"6774:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43841,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43956,"nodeType":"FunctionDefinition","src":"7339:612:64","nodes":[],"body":{"id":43955,"nodeType":"Block","src":"7498:453:64","nodes":[],"statements":[{"assignments":[43900],"declarations":[{"constant":false,"id":43900,"mutability":"mutable","name":"size","nameLocation":"7516:4:64","nodeType":"VariableDeclaration","scope":43955,"src":"7508:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43899,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43903,"initialValue":{"expression":{"id":43901,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7523:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:64","memberName":"length","nodeType":"MemberAccess","src":"7523:16:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:64"},{"assignments":[43908],"declarations":[{"constant":false,"id":43908,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:64","nodeType":"VariableDeclaration","scope":43955,"src":"7549:33:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":43906,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43907,"nodeType":"ArrayTypeName","src":"7549:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":43914,"initialValue":{"arguments":[{"id":43912,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43900,"src":"7599:4:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:64","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":43909,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43910,"nodeType":"ArrayTypeName","src":"7589:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":43913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:64"},{"body":{"id":43951,"nodeType":"Block","src":"7643:269:64","statements":[{"condition":{"id":43927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:64","subExpression":{"arguments":[{"id":43922,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43890,"src":"7680:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":43923,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7692:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43925,"indexExpression":{"id":43924,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7702:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43921,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43973,"src":"7662:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":43926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43935,"nodeType":"IfStatement","src":"7657:116:64","trueBody":{"id":43934,"nodeType":"Block","src":"7707:66:64","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":43929,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7745:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43931,"indexExpression":{"id":43930,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7755:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43928,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37058,"src":"7732:12:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":43932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43933,"nodeType":"RevertStatement","src":"7725:33:64"}]}},{"expression":{"id":43945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":43936,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43908,"src":"7786:16:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":43938,"indexExpression":{"id":43937,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7803:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43940,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43890,"src":"7817:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":43941,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7829:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43943,"indexExpression":{"id":43942,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7839:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43939,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43686,"src":"7808:8:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":43944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43946,"nodeType":"ExpressionStatement","src":"7786:56:64"},{"id":43950,"nodeType":"UncheckedBlock","src":"7856:46:64","statements":[{"expression":{"id":43948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:64","subExpression":{"id":43947,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7886:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43949,"nodeType":"ExpressionStatement","src":"7884:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43918,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7631:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43919,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43900,"src":"7635:4:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43952,"initializationExpression":{"assignments":[43916],"declarations":[{"constant":false,"id":43916,"mutability":"mutable","name":"i","nameLocation":"7628:1:64","nodeType":"VariableDeclaration","scope":43952,"src":"7620:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43915,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43917,"nodeType":"VariableDeclarationStatement","src":"7620:9:64"},"nodeType":"ForStatement","src":"7615:297:64"},{"expression":{"id":43953,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43908,"src":"7928:16:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":43898,"id":43954,"nodeType":"Return","src":"7921:23:64"}]},"documentation":{"id":43887,"nodeType":"StructuredDocumentation","src":"7193:141:64","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:64","parameters":{"id":43894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43890,"mutability":"mutable","name":"validators","nameLocation":"7404:10:64","nodeType":"VariableDeclaration","scope":43956,"src":"7383:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43889,"nodeType":"UserDefinedTypeName","pathNode":{"id":43888,"name":"ValidatorSet","nameLocations":["7383:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"7383:12:64"},"referencedDeclaration":48673,"src":"7383:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43893,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:64","nodeType":"VariableDeclaration","scope":43956,"src":"7424:26:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43891,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43892,"nodeType":"ArrayTypeName","src":"7424:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:64"},"returnParameters":{"id":43898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43956,"src":"7480:16:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":43895,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43896,"nodeType":"ArrayTypeName","src":"7480:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43973,"nodeType":"FunctionDefinition","src":"7957:167:64","nodes":[],"body":{"id":43972,"nodeType":"Block","src":"8059:65:64","nodes":[],"statements":[{"expression":{"arguments":[{"id":43969,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43961,"src":"8107:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":43966,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43959,"src":"8076:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"8076:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"8076:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":43970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":43965,"id":43971,"nodeType":"Return","src":"8069:48:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:64","parameters":{"id":43962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43959,"mutability":"mutable","name":"self","nameLocation":"8005:4:64","nodeType":"VariableDeclaration","scope":43973,"src":"7984:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43958,"nodeType":"UserDefinedTypeName","pathNode":{"id":43957,"name":"ValidatorSet","nameLocations":["7984:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"7984:12:64"},"referencedDeclaration":48673,"src":"7984:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43961,"mutability":"mutable","name":"validator","nameLocation":"8019:9:64","nodeType":"VariableDeclaration","scope":43973,"src":"8011:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43960,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:64"},"returnParameters":{"id":43965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43973,"src":"8053:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43963,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43994,"nodeType":"FunctionDefinition","src":"8165:176:64","nodes":[],"body":{"id":43993,"nodeType":"Block","src":"8272:69:64","nodes":[],"statements":[{"expression":{"id":43991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":43984,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43977,"src":"8282:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"8282:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43988,"indexExpression":{"id":43986,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43979,"src":"8304:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"8282:41:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43990,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43981,"src":"8326:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":43992,"nodeType":"ExpressionStatement","src":"8282:52:64"}]},"documentation":{"id":43974,"nodeType":"StructuredDocumentation","src":"8130:30:64","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:64","parameters":{"id":43982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43977,"mutability":"mutable","name":"validators","nameLocation":"8207:10:64","nodeType":"VariableDeclaration","scope":43994,"src":"8186:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43976,"nodeType":"UserDefinedTypeName","pathNode":{"id":43975,"name":"ValidatorSet","nameLocations":["8186:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"8186:12:64"},"referencedDeclaration":48673,"src":"8186:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43979,"mutability":"mutable","name":"validator","nameLocation":"8227:9:64","nodeType":"VariableDeclaration","scope":43994,"src":"8219:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43978,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43981,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:64","nodeType":"VariableDeclaration","scope":43994,"src":"8238:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":43980,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:64"},"returnParameters":{"id":43983,"nodeType":"ParameterList","parameters":[],"src":"8272:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44015,"nodeType":"FunctionDefinition","src":"8648:175:64","nodes":[],"body":{"id":44014,"nodeType":"Block","src":"8748:75:64","nodes":[],"statements":[{"expression":{"id":44012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44005,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43998,"src":"8758:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"8758:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44009,"indexExpression":{"id":44007,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44000,"src":"8780:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"8758:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44011,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44002,"src":"8810:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44013,"nodeType":"ExpressionStatement","src":"8758:58:64"}]},"documentation":{"id":43995,"nodeType":"StructuredDocumentation","src":"8580:63:64","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:64","parameters":{"id":44003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43998,"mutability":"mutable","name":"validators","nameLocation":"8692:10:64","nodeType":"VariableDeclaration","scope":44015,"src":"8671:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43997,"nodeType":"UserDefinedTypeName","pathNode":{"id":43996,"name":"ValidatorSet","nameLocations":["8671:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"8671:12:64"},"referencedDeclaration":48673,"src":"8671:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44000,"mutability":"mutable","name":"validator","nameLocation":"8712:9:64","nodeType":"VariableDeclaration","scope":44015,"src":"8704:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43999,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44002,"mutability":"mutable","name":"amount","nameLocation":"8731:6:64","nodeType":"VariableDeclaration","scope":44015,"src":"8723:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44001,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:64"},"returnParameters":{"id":44004,"nodeType":"ParameterList","parameters":[],"src":"8748:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44056,"nodeType":"FunctionDefinition","src":"8895:364:64","nodes":[],"body":{"id":44055,"nodeType":"Block","src":"8996:263:64","nodes":[],"statements":[{"assignments":[44027],"declarations":[{"constant":false,"id":44027,"mutability":"mutable","name":"total","nameLocation":"9014:5:64","nodeType":"VariableDeclaration","scope":44055,"src":"9006:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44026,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44033,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44028,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44019,"src":"9022:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9022:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44031,"indexExpression":{"id":44030,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44021,"src":"9044:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"9022:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44034,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"9084:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44035,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44023,"src":"9092:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44041,"nodeType":"IfStatement","src":"9080:81:64","trueBody":{"id":44040,"nodeType":"Block","src":"9100:61:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44037,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37078,"src":"9121:27:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44039,"nodeType":"RevertStatement","src":"9114:36:64"}]}},{"expression":{"id":44044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44042,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"9171:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44043,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44023,"src":"9180:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44045,"nodeType":"ExpressionStatement","src":"9171:15:64"},{"expression":{"id":44053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44046,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44019,"src":"9196:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9196:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44050,"indexExpression":{"id":44048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44021,"src":"9218:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"9196:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44052,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"9247:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44054,"nodeType":"ExpressionStatement","src":"9196:56:64"}]},"documentation":{"id":44016,"nodeType":"StructuredDocumentation","src":"8829:61:64","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:64","parameters":{"id":44024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44019,"mutability":"mutable","name":"validators","nameLocation":"8940:10:64","nodeType":"VariableDeclaration","scope":44056,"src":"8919:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44018,"nodeType":"UserDefinedTypeName","pathNode":{"id":44017,"name":"ValidatorSet","nameLocations":["8919:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"8919:12:64"},"referencedDeclaration":48673,"src":"8919:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44021,"mutability":"mutable","name":"validator","nameLocation":"8960:9:64","nodeType":"VariableDeclaration","scope":44056,"src":"8952:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44020,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44023,"mutability":"mutable","name":"amount","nameLocation":"8979:6:64","nodeType":"VariableDeclaration","scope":44056,"src":"8971:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44022,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:64"},"returnParameters":{"id":44025,"nodeType":"ParameterList","parameters":[],"src":"8996:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44109,"nodeType":"FunctionDefinition","src":"9330:540:64","nodes":[],"body":{"id":44108,"nodeType":"Block","src":"9431:439:64","nodes":[],"statements":[{"assignments":[44068],"declarations":[{"constant":false,"id":44068,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:64","nodeType":"VariableDeclaration","scope":44108,"src":"9441:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44067,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44074,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9465:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9465:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44072,"indexExpression":{"id":44071,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9481:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:64","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":48636,"src":"9465:41:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:64"},{"expression":{"id":44082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44075,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9516:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9516:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44079,"indexExpression":{"id":44077,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9532:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:64","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":48636,"src":"9516:41:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44081,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9560:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44083,"nodeType":"ExpressionStatement","src":"9516:49:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44084,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"9580:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44085,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9597:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44089,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"9645:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44090,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9661:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44105,"nodeType":"Block","src":"9771:93:64","statements":[{"expression":{"arguments":[{"id":44100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9808:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44101,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9825:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44102,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9846:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44099,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44593,"src":"9785:15:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:64","9814:9:64","9836:8:64"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44104,"nodeType":"ExpressionStatement","src":"9785:68:64"}]},"id":44106,"nodeType":"IfStatement","src":"9641:223:64","trueBody":{"id":44098,"nodeType":"Block","src":"9668:97:64","statements":[{"expression":{"arguments":[{"id":44093,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9707:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44094,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9726:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44095,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9747:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44092,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44382,"src":"9682:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:64","9713:11:64","9737:8:64"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44097,"nodeType":"ExpressionStatement","src":"9682:72:64"}]}},"id":44107,"nodeType":"IfStatement","src":"9576:288:64","trueBody":{"id":44088,"nodeType":"Block","src":"9604:31:64","statements":[{"functionReturnParameters":44066,"id":44087,"nodeType":"Return","src":"9618:7:64"}]}}]},"documentation":{"id":44057,"nodeType":"StructuredDocumentation","src":"9265:60:64","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:64","parameters":{"id":44065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44060,"mutability":"mutable","name":"self","nameLocation":"9382:4:64","nodeType":"VariableDeclaration","scope":44109,"src":"9361:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44059,"nodeType":"UserDefinedTypeName","pathNode":{"id":44058,"name":"ValidatorSet","nameLocations":["9361:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"9361:12:64"},"referencedDeclaration":48673,"src":"9361:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44062,"mutability":"mutable","name":"validator","nameLocation":"9396:9:64","nodeType":"VariableDeclaration","scope":44109,"src":"9388:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44061,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44064,"mutability":"mutable","name":"power","nameLocation":"9415:5:64","nodeType":"VariableDeclaration","scope":44109,"src":"9407:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44063,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:64"},"returnParameters":{"id":44066,"nodeType":"ParameterList","parameters":[],"src":"9431:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44151,"nodeType":"FunctionDefinition","src":"9876:404:64","nodes":[],"body":{"id":44150,"nodeType":"Block","src":"9971:309:64","nodes":[],"statements":[{"assignments":[44120],"declarations":[{"constant":false,"id":44120,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:64","nodeType":"VariableDeclaration","scope":44150,"src":"9981:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44119,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44128,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10005:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10005:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44124,"indexExpression":{"id":44123,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44114,"src":"10021:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10005:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44126,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44116,"src":"10054:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:64"},{"expression":{"id":44136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44129,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10070:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10070:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44133,"indexExpression":{"id":44131,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44114,"src":"10086:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10070:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44135,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"10119:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44137,"nodeType":"ExpressionStatement","src":"10070:62:64"},{"expression":{"id":44142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44138,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10143:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:64","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48658,"src":"10143:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44141,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44116,"src":"10176:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44143,"nodeType":"ExpressionStatement","src":"10143:39:64"},{"expression":{"arguments":[{"id":44145,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10218:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44146,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44114,"src":"10237:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44147,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"10258:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44144,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44382,"src":"10193:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:64","10224:11:64","10248:8:64"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44149,"nodeType":"ExpressionStatement","src":"10193:80:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:64","parameters":{"id":44117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44112,"mutability":"mutable","name":"self","nameLocation":"9921:4:64","nodeType":"VariableDeclaration","scope":44151,"src":"9900:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44111,"nodeType":"UserDefinedTypeName","pathNode":{"id":44110,"name":"ValidatorSet","nameLocations":["9900:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"9900:12:64"},"referencedDeclaration":48673,"src":"9900:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44114,"mutability":"mutable","name":"validator","nameLocation":"9935:9:64","nodeType":"VariableDeclaration","scope":44151,"src":"9927:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44113,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44116,"mutability":"mutable","name":"amount","nameLocation":"9954:6:64","nodeType":"VariableDeclaration","scope":44151,"src":"9946:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44115,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:64"},"returnParameters":{"id":44118,"nodeType":"ParameterList","parameters":[],"src":"9971:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44217,"nodeType":"FunctionDefinition","src":"10286:616:64","nodes":[],"body":{"id":44216,"nodeType":"Block","src":"10382:520:64","nodes":[],"statements":[{"assignments":[44162],"declarations":[{"constant":false,"id":44162,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:64","nodeType":"VariableDeclaration","scope":44216,"src":"10392:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44161,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44170,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44163,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10416:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10416:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44166,"indexExpression":{"id":44165,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10432:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10416:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44168,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44158,"src":"10465:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:64"},{"assignments":[44172],"declarations":[{"constant":false,"id":44172,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:64","nodeType":"VariableDeclaration","scope":44216,"src":"10481:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44171,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44178,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10507:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10507:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44176,"indexExpression":{"id":44175,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10523:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"10507:42:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:64"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44179,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44162,"src":"10564:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44182,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44172,"src":"10586:15:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44202,"nodeType":"Block","src":"10672:87:64","statements":[{"expression":{"id":44200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44193,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10686:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10686:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44197,"indexExpression":{"id":44195,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10702:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10686:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44199,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44162,"src":"10735:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44201,"nodeType":"ExpressionStatement","src":"10686:62:64"}]},"id":44203,"nodeType":"IfStatement","src":"10560:199:64","trueBody":{"id":44192,"nodeType":"Block","src":"10608:58:64","statements":[{"expression":{"id":44190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:64","subExpression":{"baseExpression":{"expression":{"id":44186,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10629:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10629:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44189,"indexExpression":{"id":44188,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10645:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44191,"nodeType":"ExpressionStatement","src":"10622:33:64"}]}},{"expression":{"arguments":[{"id":44205,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10792:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44206,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10809:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44207,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44162,"src":"10830:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44204,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44593,"src":"10769:15:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:64","10798:9:64","10820:8:64"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44209,"nodeType":"ExpressionStatement","src":"10769:76:64"},{"expression":{"id":44214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44210,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10856:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:64","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48658,"src":"10856:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44213,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44158,"src":"10889:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44215,"nodeType":"ExpressionStatement","src":"10856:39:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:64","parameters":{"id":44159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44154,"mutability":"mutable","name":"self","nameLocation":"10332:4:64","nodeType":"VariableDeclaration","scope":44217,"src":"10311:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44153,"nodeType":"UserDefinedTypeName","pathNode":{"id":44152,"name":"ValidatorSet","nameLocations":["10311:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"10311:12:64"},"referencedDeclaration":48673,"src":"10311:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44156,"mutability":"mutable","name":"validator","nameLocation":"10346:9:64","nodeType":"VariableDeclaration","scope":44217,"src":"10338:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44155,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44158,"mutability":"mutable","name":"amount","nameLocation":"10365:6:64","nodeType":"VariableDeclaration","scope":44217,"src":"10357:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44157,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:64"},"returnParameters":{"id":44160,"nodeType":"ParameterList","parameters":[],"src":"10382:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44382,"nodeType":"FunctionDefinition","src":"11008:2209:64","nodes":[],"body":{"id":44381,"nodeType":"Block","src":"11110:2107:64","nodes":[],"statements":[{"condition":{"arguments":[{"id":44231,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11155:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11124:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11124:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"11124:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44249,"nodeType":"IfStatement","src":"11120:226:64","trueBody":{"id":44248,"nodeType":"Block","src":"11169:177:64","statements":[{"expression":{"arguments":[{"id":44238,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11223:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44239,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11229:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44233,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11183:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11183:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:64","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47820,"src":"11183:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44241,"nodeType":"ExpressionStatement","src":"11183:58:64"},{"eventCall":{"arguments":[{"id":44243,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11293:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44244,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"11306:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44242,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43618,"src":"11260:32:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44246,"nodeType":"EmitStatement","src":"11255:60:64"},{"functionReturnParameters":44227,"id":44247,"nodeType":"Return","src":"11329:7:64"}]}},{"assignments":[44251],"declarations":[{"constant":false,"id":44251,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:64","nodeType":"VariableDeclaration","scope":44381,"src":"11408:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44250,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44254,"initialValue":{"expression":{"id":44252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11429:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:64","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":48655,"src":"11429:16:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:64"},{"assignments":[44256],"declarations":[{"constant":false,"id":44256,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:64","nodeType":"VariableDeclaration","scope":44381,"src":"11455:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44255,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44261,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11475:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11475:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"11475:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44262,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44251,"src":"11520:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44263,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44256,"src":"11534:10:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44281,"nodeType":"IfStatement","src":"11516:262:64","trueBody":{"id":44280,"nodeType":"Block","src":"11546:232:64","statements":[{"expression":{"arguments":[{"id":44270,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11669:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44271,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11675:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11640:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11640:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"11640:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44273,"nodeType":"ExpressionStatement","src":"11640:47:64"},{"eventCall":{"arguments":[{"id":44275,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11725:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44276,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"11738:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44274,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43630,"src":"11706:18:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44278,"nodeType":"EmitStatement","src":"11701:46:64"},{"functionReturnParameters":44227,"id":44279,"nodeType":"Return","src":"11761:7:64"}]}},{"assignments":[44283,44285],"declarations":[{"constant":false,"id":44283,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:64","nodeType":"VariableDeclaration","scope":44381,"src":"12317:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44282,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44285,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:64","nodeType":"VariableDeclaration","scope":44381,"src":"12337:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44284,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44291,"initialValue":{"arguments":[{"id":44289,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12389:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44286,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12363:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"12363:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:64","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"12363:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44292,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44285,"src":"12408:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44293,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"12425:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44344,"nodeType":"IfStatement","src":"12404:452:64","trueBody":{"id":44343,"nodeType":"Block","src":"12435:421:64","statements":[{"expression":{"arguments":[{"id":44300,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12475:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44295,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12449:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"12449:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47693,"src":"12449:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44302,"nodeType":"ExpressionStatement","src":"12449:31:64"},{"condition":{"arguments":[{"id":44306,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12531:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44303,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12499:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12499:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"12499:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44318,"nodeType":"IfStatement","src":"12495:140:64","trueBody":{"id":44317,"nodeType":"Block","src":"12545:90:64","statements":[{"expression":{"arguments":[{"id":44313,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12602:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44314,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12608:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44308,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12563:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12563:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:64","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":47167,"src":"12563:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44316,"nodeType":"ExpressionStatement","src":"12563:57:64"}]}},{"expression":{"arguments":[{"id":44324,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12678:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44325,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12684:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12649:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"12649:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"12649:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44327,"nodeType":"ExpressionStatement","src":"12649:47:64"},{"expression":{"arguments":[{"id":44333,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12740:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44334,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44283,"src":"12746:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44328,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12710:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12710:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47008,"src":"12710:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44336,"nodeType":"ExpressionStatement","src":"12710:47:64"},{"eventCall":{"arguments":[{"id":44338,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44283,"src":"12801:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44339,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12813:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44337,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43642,"src":"12777:23:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":44340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44341,"nodeType":"EmitStatement","src":"12772:53:64"},{"functionReturnParameters":44227,"id":44342,"nodeType":"Return","src":"12839:7:64"}]}},{"condition":{"arguments":[{"id":44348,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12902:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44345,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12870:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12870:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"12870:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44366,"nodeType":"IfStatement","src":"12866:229:64","trueBody":{"id":44365,"nodeType":"Block","src":"12916:179:64","statements":[{"expression":{"arguments":[{"id":44355,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12971:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44356,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12977:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44350,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12930:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12930:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44354,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:64","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47202,"src":"12930:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44358,"nodeType":"ExpressionStatement","src":"12930:59:64"},{"eventCall":{"arguments":[{"id":44360,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"13042:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44361,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"13055:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44359,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"13008:33:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44363,"nodeType":"EmitStatement","src":"13003:61:64"},{"functionReturnParameters":44227,"id":44364,"nodeType":"Return","src":"13078:7:64"}]}},{"expression":{"arguments":[{"id":44372,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"13135:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44373,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"13141:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"13105:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13105:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47008,"src":"13105:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44375,"nodeType":"ExpressionStatement","src":"13105:48:64"},{"eventCall":{"arguments":[{"id":44377,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"13188:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44378,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"13201:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44376,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43636,"src":"13168:19:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44380,"nodeType":"EmitStatement","src":"13163:47:64"}]},"documentation":{"id":44218,"nodeType":"StructuredDocumentation","src":"10908:95:64","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:64","parameters":{"id":44226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44221,"mutability":"mutable","name":"self","nameLocation":"11056:4:64","nodeType":"VariableDeclaration","scope":44382,"src":"11035:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44220,"nodeType":"UserDefinedTypeName","pathNode":{"id":44219,"name":"ValidatorSet","nameLocations":["11035:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"11035:12:64"},"referencedDeclaration":48673,"src":"11035:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44223,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:64","nodeType":"VariableDeclaration","scope":44382,"src":"11062:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44222,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44225,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:64","nodeType":"VariableDeclaration","scope":44382,"src":"11083:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44224,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:64"},"returnParameters":{"id":44227,"nodeType":"ParameterList","parameters":[],"src":"11110:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44593,"nodeType":"FunctionDefinition","src":"13320:2014:64","nodes":[],"body":{"id":44592,"nodeType":"Block","src":"13418:1916:64","nodes":[],"statements":[{"condition":{"arguments":[{"id":44396,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13464:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44393,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13432:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13432:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"13432:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44433,"nodeType":"IfStatement","src":"13428:421:64","trueBody":{"id":44432,"nodeType":"Block","src":"13476:373:64","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44398,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"13494:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44416,"nodeType":"IfStatement","src":"13490:185:64","trueBody":{"id":44415,"nodeType":"Block","src":"13509:166:64","statements":[{"expression":{"arguments":[{"id":44406,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13566:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44407,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13572:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44401,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13527:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13527:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:64","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":47167,"src":"13527:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44409,"nodeType":"ExpressionStatement","src":"13527:55:64"},{"eventCall":{"arguments":[{"id":44411,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13626:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44410,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43650,"src":"13605:20:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":44412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44413,"nodeType":"EmitStatement","src":"13600:36:64"},{"functionReturnParameters":44392,"id":44414,"nodeType":"Return","src":"13654:7:64"}]}},{"expression":{"arguments":[{"id":44422,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13729:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44423,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13735:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44417,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13688:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13688:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:64","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47237,"src":"13688:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44425,"nodeType":"ExpressionStatement","src":"13688:57:64"},{"eventCall":{"arguments":[{"id":44427,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13798:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44428,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"13809:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44426,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"13764:33:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44430,"nodeType":"EmitStatement","src":"13759:59:64"},{"functionReturnParameters":44392,"id":44431,"nodeType":"Return","src":"13832:7:64"}]}},{"condition":{"id":44439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:64","subExpression":{"arguments":[{"id":44437,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13919:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44434,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13888:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"13888:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"13888:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44444,"nodeType":"IfStatement","src":"13883:106:64","trueBody":{"id":44443,"nodeType":"Block","src":"13931:58:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44440,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36936,"src":"13952:24:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44442,"nodeType":"RevertStatement","src":"13945:33:64"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44445,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"14053:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44503,"nodeType":"IfStatement","src":"14049:508:64","trueBody":{"id":44502,"nodeType":"Block","src":"14068:489:64","statements":[{"expression":{"arguments":[{"id":44453,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14120:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44454,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"14126:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44448,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14082:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14082:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:64","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":47785,"src":"14082:37:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44456,"nodeType":"ExpressionStatement","src":"14082:54:64"},{"eventCall":{"arguments":[{"id":44458,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"14175:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44457,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43646,"src":"14155:19:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44460,"nodeType":"EmitStatement","src":"14150:35:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44461,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14204:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14204:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"14204:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":44465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44500,"nodeType":"IfStatement","src":"14200:326:64","trueBody":{"id":44499,"nodeType":"Block","src":"14243:283:64","statements":[{"assignments":[44468,44470],"declarations":[{"constant":false,"id":44468,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:64","nodeType":"VariableDeclaration","scope":44499,"src":"14262:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44467,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44470,"mutability":"mutable","name":"power","nameLocation":"14292:5:64","nodeType":"VariableDeclaration","scope":44499,"src":"14284:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44469,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44476,"initialValue":{"arguments":[{"id":44474,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14328:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44471,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14301:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14301:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:64","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":47278,"src":"14301:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:64"},{"expression":{"arguments":[{"id":44482,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14378:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44477,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14351:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14351:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47075,"src":"14351:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44484,"nodeType":"ExpressionStatement","src":"14351:32:64"},{"expression":{"arguments":[{"id":44490,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14430:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44491,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44468,"src":"14436:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44485,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14401:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14401:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"14401:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44493,"nodeType":"ExpressionStatement","src":"14401:48:64"},{"eventCall":{"arguments":[{"id":44495,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44468,"src":"14491:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44496,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44470,"src":"14505:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44494,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43630,"src":"14472:18:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44498,"nodeType":"EmitStatement","src":"14467:44:64"}]}},{"functionReturnParameters":44392,"id":44501,"nodeType":"Return","src":"14540:7:64"}]}},{"expression":{"arguments":[{"id":44509,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14607:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"14613:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44504,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14567:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14567:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:64","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47855,"src":"14567:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44512,"nodeType":"ExpressionStatement","src":"14567:56:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44513,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14638:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14638:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"14638:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44521,"nodeType":"IfStatement","src":"14634:74:64","trueBody":{"id":44520,"nodeType":"Block","src":"14677:31:64","statements":[{"functionReturnParameters":44392,"id":44519,"nodeType":"Return","src":"14691:7:64"}]}},{"assignments":[44523,44525],"declarations":[{"constant":false,"id":44523,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:64","nodeType":"VariableDeclaration","scope":44592,"src":"14719:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44522,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44525,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:64","nodeType":"VariableDeclaration","scope":44592,"src":"14741:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44524,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44531,"initialValue":{"arguments":[{"id":44529,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14793:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44526,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14767:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14767:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:64","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"14767:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:64"},{"assignments":[44533,44535],"declarations":[{"constant":false,"id":44533,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:64","nodeType":"VariableDeclaration","scope":44592,"src":"14809:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44532,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44535,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:64","nodeType":"VariableDeclaration","scope":44592,"src":"14832:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44534,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44541,"initialValue":{"arguments":[{"id":44539,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14886:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44536,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14859:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14859:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:64","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":47278,"src":"14859:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44542,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44525,"src":"14905:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44543,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44535,"src":"14922:15:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44586,"nodeType":"IfStatement","src":"14901:358:64","trueBody":{"id":44585,"nodeType":"Block","src":"14939:320:64","statements":[{"expression":{"arguments":[{"id":44550,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14979:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44545,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14953:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14953:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47693,"src":"14953:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44552,"nodeType":"ExpressionStatement","src":"14953:31:64"},{"expression":{"arguments":[{"id":44558,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15025:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44553,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14998:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14998:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47075,"src":"14998:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44560,"nodeType":"ExpressionStatement","src":"14998:32:64"},{"expression":{"arguments":[{"id":44566,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15073:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44567,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44533,"src":"15079:13:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44561,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15044:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"15044:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"15044:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44569,"nodeType":"ExpressionStatement","src":"15044:49:64"},{"expression":{"arguments":[{"id":44575,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15137:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44576,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44523,"src":"15143:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44570,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15107:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"15107:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47008,"src":"15107:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44578,"nodeType":"ExpressionStatement","src":"15107:49:64"},{"eventCall":{"arguments":[{"id":44580,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44523,"src":"15200:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44581,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44533,"src":"15214:13:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44579,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43642,"src":"15176:23:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":44582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44583,"nodeType":"EmitStatement","src":"15171:57:64"},{"functionReturnParameters":44392,"id":44584,"nodeType":"Return","src":"15242:7:64"}]}},{"eventCall":{"arguments":[{"id":44588,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"15307:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44589,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"15318:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44587,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43618,"src":"15274:32:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44591,"nodeType":"EmitStatement","src":"15269:58:64"}]},"documentation":{"id":44383,"nodeType":"StructuredDocumentation","src":"13223:92:64","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:64","parameters":{"id":44391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44386,"mutability":"mutable","name":"self","nameLocation":"13366:4:64","nodeType":"VariableDeclaration","scope":44593,"src":"13345:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44385,"nodeType":"UserDefinedTypeName","pathNode":{"id":44384,"name":"ValidatorSet","nameLocations":["13345:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"13345:12:64"},"referencedDeclaration":48673,"src":"13345:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44388,"mutability":"mutable","name":"validator","nameLocation":"13380:9:64","nodeType":"VariableDeclaration","scope":44593,"src":"13372:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44387,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44390,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:64","nodeType":"VariableDeclaration","scope":44593,"src":"13391:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44389,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:64"},"returnParameters":{"id":44392,"nodeType":"ParameterList","parameters":[],"src":"13418:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":43604,"nodeType":"StructuredDocumentation","src":"3860:40:64","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[44594],"name":"LibValidatorSet","nameLocation":"3908:15:64","scope":45729,"usedErrors":[]},{"id":45464,"nodeType":"ContractDefinition","src":"15338:10289:64","nodes":[{"id":44598,"nodeType":"UsingForDirective","src":"15363:53:64","nodes":[],"global":false,"libraryName":{"id":44595,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":43603,"src":"15369:22:64"},"typeName":{"id":44597,"nodeType":"UserDefinedTypeName","pathNode":{"id":44596,"name":"StakingReleaseQueue","nameLocations":["15396:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"15396:19:64"},"referencedDeclaration":48633,"src":"15396:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":44602,"nodeType":"UsingForDirective","src":"15421:47:64","nodes":[],"global":false,"libraryName":{"id":44599,"name":"LibStakingChangeLog","nameLocations":["15427:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":45966,"src":"15427:19:64"},"typeName":{"id":44601,"nodeType":"UserDefinedTypeName","pathNode":{"id":44600,"name":"StakingChangeLog","nameLocations":["15451:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"15451:16:64"},"referencedDeclaration":48606,"src":"15451:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":44606,"nodeType":"UsingForDirective","src":"15473:39:64","nodes":[],"global":false,"libraryName":{"id":44603,"name":"LibValidatorSet","nameLocations":["15479:15:64"],"nodeType":"IdentifierPath","referencedDeclaration":44594,"src":"15479:15:64"},"typeName":{"id":44605,"nodeType":"UserDefinedTypeName","pathNode":{"id":44604,"name":"ValidatorSet","nameLocations":["15499:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"15499:12:64"},"referencedDeclaration":48673,"src":"15499:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":44610,"nodeType":"UsingForDirective","src":"15517:25:64","nodes":[],"global":false,"libraryName":{"id":44607,"name":"LibMaxPQ","nameLocations":["15523:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":47494,"src":"15523:8:64"},"typeName":{"id":44609,"nodeType":"UserDefinedTypeName","pathNode":{"id":44608,"name":"MaxPQ","nameLocations":["15536:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"15536:5:64"},"referencedDeclaration":46889,"src":"15536:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44614,"nodeType":"UsingForDirective","src":"15547:25:64","nodes":[],"global":false,"libraryName":{"id":44611,"name":"LibMinPQ","nameLocations":["15553:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":48113,"src":"15553:8:64"},"typeName":{"id":44613,"nodeType":"UserDefinedTypeName","pathNode":{"id":44612,"name":"MinPQ","nameLocations":["15566:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"15566:5:64"},"referencedDeclaration":47507,"src":"15566:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}}},{"id":44617,"nodeType":"UsingForDirective","src":"15577:34:64","nodes":[],"global":false,"libraryName":{"id":44615,"name":"Address","nameLocations":["15583:7:64"],"nodeType":"IdentifierPath","referencedDeclaration":32409,"src":"15583:7:64"},"typeName":{"id":44616,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44620,"nodeType":"VariableDeclaration","src":"15617:57:64","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:64","scope":45464,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":44618,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":44619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":44624,"nodeType":"EventDefinition","src":"15681:50:64","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:64","parameters":{"id":44623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44622,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:64","nodeType":"VariableDeclaration","scope":44624,"src":"15716:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":44621,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:64"}},{"id":44630,"nodeType":"EventDefinition","src":"15736:59:64","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:64","parameters":{"id":44629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44626,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:64","nodeType":"VariableDeclaration","scope":44630,"src":"15760:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44625,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44628,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:64","nodeType":"VariableDeclaration","scope":44630,"src":"15779:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44627,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:64"}},{"id":44651,"nodeType":"FunctionDefinition","src":"15846:221:64","nodes":[],"body":{"id":44650,"nodeType":"Block","src":"15934:133:64","nodes":[],"statements":[{"assignments":[44639],"declarations":[{"constant":false,"id":44639,"mutability":"mutable","name":"s","nameLocation":"15971:1:64","nodeType":"VariableDeclaration","scope":44650,"src":"15944:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44638,"nodeType":"UserDefinedTypeName","pathNode":{"id":44637,"name":"SubnetActorStorage","nameLocations":["15944:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"15944:18:64"},"referencedDeclaration":46085,"src":"15944:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44643,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44640,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"15975:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"15975:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:64"},{"expression":{"arguments":[{"id":44647,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44632,"src":"16050:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44644,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44639,"src":"16026:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16026:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:64","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":43686,"src":"16026:23:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44636,"id":44649,"nodeType":"Return","src":"16019:41:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:64","parameters":{"id":44633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44632,"mutability":"mutable","name":"validator","nameLocation":"15881:9:64","nodeType":"VariableDeclaration","scope":44651,"src":"15873:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44631,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:64"},"returnParameters":{"id":44636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44635,"mutability":"mutable","name":"power","nameLocation":"15927:5:64","nodeType":"VariableDeclaration","scope":44651,"src":"15919:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44634,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44674,"nodeType":"FunctionDefinition","src":"16136:225:64","nodes":[],"body":{"id":44673,"nodeType":"Block","src":"16211:150:64","nodes":[],"statements":[{"assignments":[44661],"declarations":[{"constant":false,"id":44661,"mutability":"mutable","name":"s","nameLocation":"16248:1:64","nodeType":"VariableDeclaration","scope":44673,"src":"16221:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44660,"nodeType":"UserDefinedTypeName","pathNode":{"id":44659,"name":"SubnetActorStorage","nameLocations":["16221:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"16221:18:64"},"referencedDeclaration":46085,"src":"16221:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44665,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44662,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"16252:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"16252:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:64"},{"expression":{"arguments":[{"id":44670,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44654,"src":"16344:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":44666,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44661,"src":"16303:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16303:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"16303:31:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"16303:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44658,"id":44672,"nodeType":"Return","src":"16296:58:64"}]},"documentation":{"id":44652,"nodeType":"StructuredDocumentation","src":"16073:58:64","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:64","parameters":{"id":44655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44654,"mutability":"mutable","name":"validator","nameLocation":"16171:9:64","nodeType":"VariableDeclaration","scope":44674,"src":"16163:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44653,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:64"},"returnParameters":{"id":44658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44657,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44674,"src":"16205:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44656,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44697,"nodeType":"FunctionDefinition","src":"16430:227:64","nodes":[],"body":{"id":44696,"nodeType":"Block","src":"16506:151:64","nodes":[],"statements":[{"assignments":[44684],"declarations":[{"constant":false,"id":44684,"mutability":"mutable","name":"s","nameLocation":"16543:1:64","nodeType":"VariableDeclaration","scope":44696,"src":"16516:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44683,"nodeType":"UserDefinedTypeName","pathNode":{"id":44682,"name":"SubnetActorStorage","nameLocations":["16516:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"16516:18:64"},"referencedDeclaration":46085,"src":"16516:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44688,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44685,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"16547:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"16547:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:64"},{"expression":{"arguments":[{"id":44693,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44677,"src":"16640:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":44689,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44684,"src":"16598:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16598:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"16598:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"16598:41:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44681,"id":44695,"nodeType":"Return","src":"16591:59:64"}]},"documentation":{"id":44675,"nodeType":"StructuredDocumentation","src":"16367:58:64","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:64","parameters":{"id":44678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44677,"mutability":"mutable","name":"validator","nameLocation":"16466:9:64","nodeType":"VariableDeclaration","scope":44697,"src":"16458:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44676,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:64"},"returnParameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44697,"src":"16500:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44679,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44722,"nodeType":"FunctionDefinition","src":"16721:280:64","nodes":[],"body":{"id":44721,"nodeType":"Block","src":"16788:213:64","nodes":[],"statements":[{"assignments":[44707],"declarations":[{"constant":false,"id":44707,"mutability":"mutable","name":"s","nameLocation":"16825:1:64","nodeType":"VariableDeclaration","scope":44721,"src":"16798:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44706,"nodeType":"UserDefinedTypeName","pathNode":{"id":44705,"name":"SubnetActorStorage","nameLocations":["16798:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"16798:18:64"},"referencedDeclaration":46085,"src":"16798:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44711,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44708,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"16829:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16851:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"16829:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16829:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16798:65:64"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":44712,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44707,"src":"16937:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16939:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16937:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16952:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"16937:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44716,"indexExpression":{"id":44715,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44700,"src":"16963:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16937:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16974:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"16937:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":44718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16993:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16937:57:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44704,"id":44720,"nodeType":"Return","src":"16930:64:64"}]},"documentation":{"id":44698,"nodeType":"StructuredDocumentation","src":"16663:53:64","text":"@notice Checks if the validator has staked before"},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"16730:9:64","parameters":{"id":44701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44700,"mutability":"mutable","name":"validator","nameLocation":"16748:9:64","nodeType":"VariableDeclaration","scope":44722,"src":"16740:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44699,"name":"address","nodeType":"ElementaryTypeName","src":"16740:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16739:19:64"},"returnParameters":{"id":44704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44703,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44722,"src":"16782:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44702,"name":"bool","nodeType":"ElementaryTypeName","src":"16782:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16781:6:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44740,"nodeType":"FunctionDefinition","src":"17007:201:64","nodes":[],"body":{"id":44739,"nodeType":"Block","src":"17071:137:64","nodes":[],"statements":[{"assignments":[44729],"declarations":[{"constant":false,"id":44729,"mutability":"mutable","name":"s","nameLocation":"17108:1:64","nodeType":"VariableDeclaration","scope":44739,"src":"17081:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44728,"nodeType":"UserDefinedTypeName","pathNode":{"id":44727,"name":"SubnetActorStorage","nameLocations":["17081:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17081:18:64"},"referencedDeclaration":46085,"src":"17081:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44733,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44730,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17112:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17134:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17112:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17112:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17081:65:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44734,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44729,"src":"17163:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17165:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17163:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17178:21:64","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":43718,"src":"17163:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17163:38:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":44726,"id":44738,"nodeType":"Return","src":"17156:45:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17016:21:64","parameters":{"id":44723,"nodeType":"ParameterList","parameters":[],"src":"17037:2:64"},"returnParameters":{"id":44726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44725,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44740,"src":"17063:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44724,"name":"uint16","nodeType":"ElementaryTypeName","src":"17063:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17062:8:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44766,"nodeType":"FunctionDefinition","src":"17296:243:64","nodes":[],"body":{"id":44765,"nodeType":"Block","src":"17354:185:64","nodes":[],"statements":[{"assignments":[44748],"declarations":[{"constant":false,"id":44748,"mutability":"mutable","name":"s","nameLocation":"17391:1:64","nodeType":"VariableDeclaration","scope":44765,"src":"17364:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44747,"nodeType":"UserDefinedTypeName","pathNode":{"id":44746,"name":"SubnetActorStorage","nameLocations":["17364:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17364:18:64"},"referencedDeclaration":46085,"src":"17364:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44752,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44749,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17395:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17417:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17395:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17395:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17364:65:64"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":44753,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44748,"src":"17446:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17446:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17461:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"17446:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17479:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"17446:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17446:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":44758,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44748,"src":"17491:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17493:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17491:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17506:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"17491:31:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17523:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"17491:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17491:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17446:86:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":44745,"id":44764,"nodeType":"Return","src":"17439:93:64"}]},"documentation":{"id":44741,"nodeType":"StructuredDocumentation","src":"17214:77:64","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17305:15:64","parameters":{"id":44742,"nodeType":"ParameterList","parameters":[],"src":"17320:2:64"},"returnParameters":{"id":44745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44766,"src":"17346:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44743,"name":"uint16","nodeType":"ElementaryTypeName","src":"17346:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17345:8:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44784,"nodeType":"FunctionDefinition","src":"17545:214:64","nodes":[],"body":{"id":44783,"nodeType":"Block","src":"17616:143:64","nodes":[],"statements":[{"assignments":[44773],"declarations":[{"constant":false,"id":44773,"mutability":"mutable","name":"s","nameLocation":"17653:1:64","nodeType":"VariableDeclaration","scope":44783,"src":"17626:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44772,"nodeType":"UserDefinedTypeName","pathNode":{"id":44771,"name":"SubnetActorStorage","nameLocations":["17626:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17626:18:64"},"referencedDeclaration":46085,"src":"17626:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44777,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44774,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17657:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17679:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17657:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17657:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17626:65:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44778,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44773,"src":"17708:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17710:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17708:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17723:27:64","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":43701,"src":"17708:42:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17708:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44770,"id":44782,"nodeType":"Return","src":"17701:51:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"17554:27:64","parameters":{"id":44767,"nodeType":"ParameterList","parameters":[],"src":"17581:2:64"},"returnParameters":{"id":44770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44784,"src":"17607:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44768,"name":"uint256","nodeType":"ElementaryTypeName","src":"17607:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17606:9:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44802,"nodeType":"FunctionDefinition","src":"17765:205:64","nodes":[],"body":{"id":44801,"nodeType":"Block","src":"17827:143:64","nodes":[],"statements":[{"assignments":[44791],"declarations":[{"constant":false,"id":44791,"mutability":"mutable","name":"s","nameLocation":"17864:1:64","nodeType":"VariableDeclaration","scope":44801,"src":"17837:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44790,"nodeType":"UserDefinedTypeName","pathNode":{"id":44789,"name":"SubnetActorStorage","nameLocations":["17837:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17837:18:64"},"referencedDeclaration":46085,"src":"17837:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44795,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44792,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17868:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17890:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17868:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17868:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17837:65:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44796,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44791,"src":"17919:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17921:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17919:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17934:27:64","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":43701,"src":"17919:42:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17919:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44788,"id":44800,"nodeType":"Return","src":"17912:51:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"17774:18:64","parameters":{"id":44785,"nodeType":"ParameterList","parameters":[],"src":"17792:2:64"},"returnParameters":{"id":44788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44802,"src":"17818:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44786,"name":"uint256","nodeType":"ElementaryTypeName","src":"17818:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17817:9:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44825,"nodeType":"FunctionDefinition","src":"18045:236:64","nodes":[],"body":{"id":44824,"nodeType":"Block","src":"18130:151:64","nodes":[],"statements":[{"assignments":[44812],"declarations":[{"constant":false,"id":44812,"mutability":"mutable","name":"s","nameLocation":"18167:1:64","nodeType":"VariableDeclaration","scope":44824,"src":"18140:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44811,"nodeType":"UserDefinedTypeName","pathNode":{"id":44810,"name":"SubnetActorStorage","nameLocations":["18140:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"18140:18:64"},"referencedDeclaration":46085,"src":"18140:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44816,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44813,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"18171:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18193:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"18171:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18171:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18140:65:64"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":44817,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44812,"src":"18222:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18224:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"18222:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18237:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"18222:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44821,"indexExpression":{"id":44820,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44805,"src":"18248:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18222:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18259:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"18222:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44809,"id":44823,"nodeType":"Return","src":"18215:59:64"}]},"documentation":{"id":44803,"nodeType":"StructuredDocumentation","src":"17976:64:64","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18054:24:64","parameters":{"id":44806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44805,"mutability":"mutable","name":"validator","nameLocation":"18087:9:64","nodeType":"VariableDeclaration","scope":44825,"src":"18079:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44804,"name":"address","nodeType":"ElementaryTypeName","src":"18079:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18078:19:64"},"returnParameters":{"id":44809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44825,"src":"18121:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44807,"name":"uint256","nodeType":"ElementaryTypeName","src":"18121:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18120:9:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44850,"nodeType":"FunctionDefinition","src":"18441:227:64","nodes":[],"body":{"id":44849,"nodeType":"Block","src":"18522:146:64","nodes":[],"statements":[{"assignments":[44835],"declarations":[{"constant":false,"id":44835,"mutability":"mutable","name":"s","nameLocation":"18559:1:64","nodeType":"VariableDeclaration","scope":44849,"src":"18532:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44834,"nodeType":"UserDefinedTypeName","pathNode":{"id":44833,"name":"SubnetActorStorage","nameLocations":["18532:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"18532:18:64"},"referencedDeclaration":46085,"src":"18532:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44836,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"18563:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18585:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"18563:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18563:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18532:65:64"},{"expression":{"arguments":[{"id":44845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44828,"src":"18644:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44846,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44830,"src":"18655:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44840,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44835,"src":"18607:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18609:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"18607:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18622:21:64","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44109,"src":"18607:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18607:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44848,"nodeType":"ExpressionStatement","src":"18607:54:64"}]},"documentation":{"id":44826,"nodeType":"StructuredDocumentation","src":"18353:83:64","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18450:28:64","parameters":{"id":44831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44828,"mutability":"mutable","name":"validator","nameLocation":"18487:9:64","nodeType":"VariableDeclaration","scope":44850,"src":"18479:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44827,"name":"address","nodeType":"ElementaryTypeName","src":"18479:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44830,"mutability":"mutable","name":"power","nameLocation":"18506:5:64","nodeType":"VariableDeclaration","scope":44850,"src":"18498:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44829,"name":"uint256","nodeType":"ElementaryTypeName","src":"18498:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18478:34:64"},"returnParameters":{"id":44832,"nodeType":"ParameterList","parameters":[],"src":"18522:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44875,"nodeType":"FunctionDefinition","src":"18755:224:64","nodes":[],"body":{"id":44874,"nodeType":"Block","src":"18840:139:64","nodes":[],"statements":[{"assignments":[44860],"declarations":[{"constant":false,"id":44860,"mutability":"mutable","name":"s","nameLocation":"18877:1:64","nodeType":"VariableDeclaration","scope":44874,"src":"18850:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44859,"nodeType":"UserDefinedTypeName","pathNode":{"id":44858,"name":"SubnetActorStorage","nameLocations":["18850:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"18850:18:64"},"referencedDeclaration":46085,"src":"18850:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44864,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44861,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"18881:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18903:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"18881:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18881:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18850:65:64"},{"expression":{"arguments":[{"id":44870,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"18952:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44871,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"18963:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":44865,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44860,"src":"18925:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18927:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"18925:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18940:11:64","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":43994,"src":"18925:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":44872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18925:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44873,"nodeType":"ExpressionStatement","src":"18925:47:64"}]},"documentation":{"id":44851,"nodeType":"StructuredDocumentation","src":"18674:76:64","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"18764:22:64","parameters":{"id":44856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44853,"mutability":"mutable","name":"validator","nameLocation":"18795:9:64","nodeType":"VariableDeclaration","scope":44875,"src":"18787:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44852,"name":"address","nodeType":"ElementaryTypeName","src":"18787:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"metadata","nameLocation":"18821:8:64","nodeType":"VariableDeclaration","scope":44875,"src":"18806:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44854,"name":"bytes","nodeType":"ElementaryTypeName","src":"18806:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18786:44:64"},"returnParameters":{"id":44857,"nodeType":"ParameterList","parameters":[],"src":"18840:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44984,"nodeType":"FunctionDefinition","src":"19077:1335:64","nodes":[],"body":{"id":44983,"nodeType":"Block","src":"19149:1263:64","nodes":[],"statements":[{"assignments":[44885],"declarations":[{"constant":false,"id":44885,"mutability":"mutable","name":"s","nameLocation":"19186:1:64","nodeType":"VariableDeclaration","scope":44983,"src":"19159:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44884,"nodeType":"UserDefinedTypeName","pathNode":{"id":44883,"name":"SubnetActorStorage","nameLocations":["19159:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"19159:18:64"},"referencedDeclaration":46085,"src":"19159:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44889,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44886,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"19190:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19212:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"19190:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19190:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19159:65:64"},{"expression":{"arguments":[{"id":44895,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"19324:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44896,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44880,"src":"19335:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44890,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19295:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19297:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"19295:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19310:13:64","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44015,"src":"19295:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19295:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44898,"nodeType":"ExpressionStatement","src":"19295:47:64"},{"expression":{"arguments":[{"id":44904,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"19447:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44905,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44880,"src":"19458:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44899,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19417:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19419:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"19417:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19432:14:64","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44151,"src":"19417:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19417:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44907,"nodeType":"ExpressionStatement","src":"19417:48:64"},{"condition":{"id":44910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19480:15:64","subExpression":{"expression":{"id":44908,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19481:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19483:12:64","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"19481:14:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44982,"nodeType":"IfStatement","src":"19476:930:64","trueBody":{"id":44981,"nodeType":"Block","src":"19497:909:64","statements":[{"assignments":[44912],"declarations":[{"constant":false,"id":44912,"mutability":"mutable","name":"alreadyValidator","nameLocation":"19622:16:64","nodeType":"VariableDeclaration","scope":44981,"src":"19617:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44911,"name":"bool","nodeType":"ElementaryTypeName","src":"19617:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":44913,"nodeType":"VariableDeclarationStatement","src":"19617:21:64"},{"assignments":[44915],"declarations":[{"constant":false,"id":44915,"mutability":"mutable","name":"length","nameLocation":"19660:6:64","nodeType":"VariableDeclaration","scope":44981,"src":"19652:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44914,"name":"uint256","nodeType":"ElementaryTypeName","src":"19652:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44919,"initialValue":{"expression":{"expression":{"id":44916,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19669:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19671:17:64","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"19669:19:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":44918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19689:6:64","memberName":"length","nodeType":"MemberAccess","src":"19669:26:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19652:43:64"},{"body":{"id":44944,"nodeType":"Block","src":"19739:240:64","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":44932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19761:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19763:17:64","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"19761:19:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":44929,"indexExpression":{"id":44928,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44921,"src":"19781:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19761:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage","typeString":"struct Validator storage ref"}},"id":44930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19784:4:64","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":48691,"src":"19761:27:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44931,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"19792:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19761:40:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44939,"nodeType":"IfStatement","src":"19757:137:64","trueBody":{"id":44938,"nodeType":"Block","src":"19803:91:64","statements":[{"expression":{"id":44935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44933,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44912,"src":"19825:16:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":44934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19844:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19825:23:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44936,"nodeType":"ExpressionStatement","src":"19825:23:64"},{"id":44937,"nodeType":"Break","src":"19870:5:64"}]}},{"id":44943,"nodeType":"UncheckedBlock","src":"19911:54:64","statements":[{"expression":{"id":44941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"19943:3:64","subExpression":{"id":44940,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44921,"src":"19945:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44942,"nodeType":"ExpressionStatement","src":"19943:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44923,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44921,"src":"19725:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44924,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44915,"src":"19729:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19725:10:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44945,"initializationExpression":{"assignments":[44921],"declarations":[{"constant":false,"id":44921,"mutability":"mutable","name":"i","nameLocation":"19722:1:64","nodeType":"VariableDeclaration","scope":44945,"src":"19714:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44920,"name":"uint256","nodeType":"ElementaryTypeName","src":"19714:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44922,"nodeType":"VariableDeclarationStatement","src":"19714:9:64"},"nodeType":"ForStatement","src":"19709:270:64"},{"condition":{"id":44947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19996:17:64","subExpression":{"id":44946,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44912,"src":"19997:16:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44980,"nodeType":"IfStatement","src":"19992:404:64","trueBody":{"id":44979,"nodeType":"Block","src":"20015:381:64","statements":[{"assignments":[44949],"declarations":[{"constant":false,"id":44949,"mutability":"mutable","name":"collateral","nameLocation":"20041:10:64","nodeType":"VariableDeclaration","scope":44979,"src":"20033:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44948,"name":"uint256","nodeType":"ElementaryTypeName","src":"20033:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44956,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":44950,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"20054:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20056:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20054:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20069:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"20054:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44954,"indexExpression":{"id":44953,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"20080:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20054:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20091:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"20054:56:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20033:77:64"},{"assignments":[44959],"declarations":[{"constant":false,"id":44959,"mutability":"mutable","name":"val","nameLocation":"20145:3:64","nodeType":"VariableDeclaration","scope":44979,"src":"20128:20:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator"},"typeName":{"id":44958,"nodeType":"UserDefinedTypeName","pathNode":{"id":44957,"name":"Validator","nameLocations":["20128:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"20128:9:64"},"referencedDeclaration":48694,"src":"20128:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":44970,"initialValue":{"arguments":[{"id":44961,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"20189:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44962,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44949,"src":"20228:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":44963,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"20270:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20272:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20270:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20285:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"20270:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44967,"indexExpression":{"id":44966,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"20296:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20270:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20307:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"20270:45:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":44960,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"20151:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$48694_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":44969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20183:4:64","20220:6:64","20260:8:64"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20151:183:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20128:206:64"},{"expression":{"arguments":[{"id":44976,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44959,"src":"20377:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":44971,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"20352:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20354:17:64","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"20352:19:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":44975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20372:4:64","memberName":"push","nodeType":"MemberAccess","src":"20352:24:64","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$_t_struct$_Validator_$48694_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":44977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20352:29:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44978,"nodeType":"ExpressionStatement","src":"20352:29:64"}]}}]}}]},"documentation":{"id":44876,"nodeType":"StructuredDocumentation","src":"18985:87:64","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19086:18:64","parameters":{"id":44881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44878,"mutability":"mutable","name":"validator","nameLocation":"19113:9:64","nodeType":"VariableDeclaration","scope":44984,"src":"19105:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44877,"name":"address","nodeType":"ElementaryTypeName","src":"19105:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44880,"mutability":"mutable","name":"amount","nameLocation":"19132:6:64","nodeType":"VariableDeclaration","scope":44984,"src":"19124:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44879,"name":"uint256","nodeType":"ElementaryTypeName","src":"19124:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19104:35:64"},"returnParameters":{"id":44882,"nodeType":"ParameterList","parameters":[],"src":"19149:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45026,"nodeType":"FunctionDefinition","src":"20602:504:64","nodes":[],"body":{"id":45025,"nodeType":"Block","src":"20675:431:64","nodes":[],"statements":[{"assignments":[44994],"declarations":[{"constant":false,"id":44994,"mutability":"mutable","name":"s","nameLocation":"20712:1:64","nodeType":"VariableDeclaration","scope":45025,"src":"20685:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44993,"nodeType":"UserDefinedTypeName","pathNode":{"id":44992,"name":"SubnetActorStorage","nameLocations":["20685:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"20685:18:64"},"referencedDeclaration":46085,"src":"20685:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44995,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"20716:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20738:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"20716:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20716:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20685:65:64"},{"expression":{"arguments":[{"id":45004,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44987,"src":"20851:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45005,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"20862:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44999,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44994,"src":"20821:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20823:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20821:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20836:14:64","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44056,"src":"20821:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20821:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45007,"nodeType":"ExpressionStatement","src":"20821:48:64"},{"expression":{"arguments":[{"id":45013,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44987,"src":"20975:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45014,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"20986:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45008,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44994,"src":"20944:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20946:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20944:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20959:15:64","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44217,"src":"20944:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20944:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45016,"nodeType":"ExpressionStatement","src":"20944:49:64"},{"expression":{"arguments":[{"id":45022,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"21092:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45019,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44987,"src":"21071:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21063:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45017,"name":"address","nodeType":"ElementaryTypeName","src":"21063:8:64","stateMutability":"payable","typeDescriptions":{}}},"id":45020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21063:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21082:9:64","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"21063:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21063:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45024,"nodeType":"ExpressionStatement","src":"21063:36:64"}]},"documentation":{"id":44985,"nodeType":"StructuredDocumentation","src":"20418:179:64","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"20611:19:64","parameters":{"id":44990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44987,"mutability":"mutable","name":"validator","nameLocation":"20639:9:64","nodeType":"VariableDeclaration","scope":45026,"src":"20631:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44986,"name":"address","nodeType":"ElementaryTypeName","src":"20631:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44989,"mutability":"mutable","name":"amount","nameLocation":"20658:6:64","nodeType":"VariableDeclaration","scope":45026,"src":"20650:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44988,"name":"uint256","nodeType":"ElementaryTypeName","src":"20650:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20630:35:64"},"returnParameters":{"id":44991,"nodeType":"ParameterList","parameters":[],"src":"20675:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45054,"nodeType":"FunctionDefinition","src":"21236:280:64","nodes":[],"body":{"id":45053,"nodeType":"Block","src":"21332:184:64","nodes":[],"statements":[{"assignments":[45038],"declarations":[{"constant":false,"id":45038,"mutability":"mutable","name":"s","nameLocation":"21369:1:64","nodeType":"VariableDeclaration","scope":45053,"src":"21342:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45037,"nodeType":"UserDefinedTypeName","pathNode":{"id":45036,"name":"SubnetActorStorage","nameLocations":["21342:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"21342:18:64"},"referencedDeclaration":46085,"src":"21342:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45042,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45039,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"21373:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21395:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"21373:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21373:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21342:65:64"},{"expression":{"arguments":[{"id":45048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45029,"src":"21463:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45049,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45031,"src":"21484:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45050,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45033,"src":"21501:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45043,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"21417:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21419:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"21417:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21429:21:64","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":45816,"src":"21417:33:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21452:9:64","21474:8:64","21494:5:64"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21417:92:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45052,"nodeType":"ExpressionStatement","src":"21417:92:64"}]},"documentation":{"id":45027,"nodeType":"StructuredDocumentation","src":"21179:52:64","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21245:17:64","parameters":{"id":45034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45029,"mutability":"mutable","name":"validator","nameLocation":"21271:9:64","nodeType":"VariableDeclaration","scope":45054,"src":"21263:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45028,"name":"address","nodeType":"ElementaryTypeName","src":"21263:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45031,"mutability":"mutable","name":"metadata","nameLocation":"21297:8:64","nodeType":"VariableDeclaration","scope":45054,"src":"21282:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45030,"name":"bytes","nodeType":"ElementaryTypeName","src":"21282:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45033,"mutability":"mutable","name":"amount","nameLocation":"21315:6:64","nodeType":"VariableDeclaration","scope":45054,"src":"21307:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45032,"name":"uint256","nodeType":"ElementaryTypeName","src":"21307:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21262:60:64"},"returnParameters":{"id":45035,"nodeType":"ParameterList","parameters":[],"src":"21332:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45079,"nodeType":"FunctionDefinition","src":"21565:223:64","nodes":[],"body":{"id":45078,"nodeType":"Block","src":"21648:140:64","nodes":[],"statements":[{"assignments":[45064],"declarations":[{"constant":false,"id":45064,"mutability":"mutable","name":"s","nameLocation":"21685:1:64","nodeType":"VariableDeclaration","scope":45078,"src":"21658:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45063,"nodeType":"UserDefinedTypeName","pathNode":{"id":45062,"name":"SubnetActorStorage","nameLocations":["21658:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"21658:18:64"},"referencedDeclaration":46085,"src":"21658:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45068,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45065,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"21689:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21711:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"21689:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21689:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21658:65:64"},{"expression":{"arguments":[{"id":45074,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45057,"src":"21761:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45075,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45059,"src":"21772:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45069,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45064,"src":"21733:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21735:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"21733:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21745:15:64","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":45776,"src":"21733:27:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21733:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45077,"nodeType":"ExpressionStatement","src":"21733:48:64"}]},"documentation":{"id":45055,"nodeType":"StructuredDocumentation","src":"21522:38:64","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"21574:20:64","parameters":{"id":45060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45057,"mutability":"mutable","name":"validator","nameLocation":"21603:9:64","nodeType":"VariableDeclaration","scope":45079,"src":"21595:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45056,"name":"address","nodeType":"ElementaryTypeName","src":"21595:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45059,"mutability":"mutable","name":"metadata","nameLocation":"21629:8:64","nodeType":"VariableDeclaration","scope":45079,"src":"21614:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45058,"name":"bytes","nodeType":"ElementaryTypeName","src":"21614:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21594:44:64"},"returnParameters":{"id":45061,"nodeType":"ParameterList","parameters":[],"src":"21648:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45113,"nodeType":"FunctionDefinition","src":"21833:256:64","nodes":[],"body":{"id":45112,"nodeType":"Block","src":"21894:195:64","nodes":[],"statements":[{"assignments":[45089],"declarations":[{"constant":false,"id":45089,"mutability":"mutable","name":"s","nameLocation":"21931:1:64","nodeType":"VariableDeclaration","scope":45112,"src":"21904:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45088,"nodeType":"UserDefinedTypeName","pathNode":{"id":45087,"name":"SubnetActorStorage","nameLocations":["21904:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"21904:18:64"},"referencedDeclaration":46085,"src":"21904:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45093,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45090,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"21935:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21957:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"21935:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21935:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21904:65:64"},{"expression":{"arguments":[{"id":45099,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45082,"src":"22007:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45100,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45084,"src":"22018:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45094,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"21980:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21982:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"21980:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21992:14:64","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":45890,"src":"21980:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21980:45:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45102,"nodeType":"ExpressionStatement","src":"21980:45:64"},{"expression":{"arguments":[{"id":45108,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45082,"src":"22064:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45109,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45084,"src":"22075:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45103,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"22035:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22037:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"22035:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22050:13:64","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44015,"src":"22035:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22035:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45111,"nodeType":"ExpressionStatement","src":"22035:47:64"}]},"documentation":{"id":45080,"nodeType":"StructuredDocumentation","src":"21794:34:64","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"21842:7:64","parameters":{"id":45085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45082,"mutability":"mutable","name":"validator","nameLocation":"21858:9:64","nodeType":"VariableDeclaration","scope":45113,"src":"21850:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45081,"name":"address","nodeType":"ElementaryTypeName","src":"21850:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45084,"mutability":"mutable","name":"amount","nameLocation":"21877:6:64","nodeType":"VariableDeclaration","scope":45113,"src":"21869:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45083,"name":"uint256","nodeType":"ElementaryTypeName","src":"21869:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21849:35:64"},"returnParameters":{"id":45086,"nodeType":"ParameterList","parameters":[],"src":"21894:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45147,"nodeType":"FunctionDefinition","src":"22135:259:64","nodes":[],"body":{"id":45146,"nodeType":"Block","src":"22197:197:64","nodes":[],"statements":[{"assignments":[45123],"declarations":[{"constant":false,"id":45123,"mutability":"mutable","name":"s","nameLocation":"22234:1:64","nodeType":"VariableDeclaration","scope":45146,"src":"22207:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45122,"nodeType":"UserDefinedTypeName","pathNode":{"id":45121,"name":"SubnetActorStorage","nameLocations":["22207:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"22207:18:64"},"referencedDeclaration":46085,"src":"22207:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45127,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45124,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"22238:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22260:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"22238:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22238:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22207:65:64"},{"expression":{"arguments":[{"id":45133,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45116,"src":"22311:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45134,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45118,"src":"22322:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45128,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45123,"src":"22283:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22285:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"22283:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22295:15:64","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":45853,"src":"22283:27:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22283:46:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45136,"nodeType":"ExpressionStatement","src":"22283:46:64"},{"expression":{"arguments":[{"id":45142,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45116,"src":"22369:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45143,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45118,"src":"22380:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45123,"src":"22339:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22341:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"22339:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22354:14:64","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44056,"src":"22339:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22339:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45145,"nodeType":"ExpressionStatement","src":"22339:48:64"}]},"documentation":{"id":45114,"nodeType":"StructuredDocumentation","src":"22095:35:64","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22144:8:64","parameters":{"id":45119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45116,"mutability":"mutable","name":"validator","nameLocation":"22161:9:64","nodeType":"VariableDeclaration","scope":45147,"src":"22153:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45115,"name":"address","nodeType":"ElementaryTypeName","src":"22153:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45118,"mutability":"mutable","name":"amount","nameLocation":"22180:6:64","nodeType":"VariableDeclaration","scope":45147,"src":"22172:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45117,"name":"uint256","nodeType":"ElementaryTypeName","src":"22172:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22152:35:64"},"returnParameters":{"id":45120,"nodeType":"ParameterList","parameters":[],"src":"22197:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45174,"nodeType":"FunctionDefinition","src":"22503:244:64","nodes":[],"body":{"id":45173,"nodeType":"Block","src":"22556:191:64","nodes":[],"statements":[{"assignments":[45155],"declarations":[{"constant":false,"id":45155,"mutability":"mutable","name":"s","nameLocation":"22593:1:64","nodeType":"VariableDeclaration","scope":45173,"src":"22566:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45154,"nodeType":"UserDefinedTypeName","pathNode":{"id":45153,"name":"SubnetActorStorage","nameLocations":["22566:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"22566:18:64"},"referencedDeclaration":46085,"src":"22566:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45159,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45156,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"22597:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22619:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"22597:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22597:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22566:65:64"},{"assignments":[45161],"declarations":[{"constant":false,"id":45161,"mutability":"mutable","name":"amount","nameLocation":"22649:6:64","nodeType":"VariableDeclaration","scope":45173,"src":"22641:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45160,"name":"uint256","nodeType":"ElementaryTypeName","src":"22641:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45167,"initialValue":{"arguments":[{"id":45165,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45150,"src":"22679:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45162,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45155,"src":"22658:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22660:12:64","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":46068,"src":"22658:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22673:5:64","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":43602,"src":"22658:20:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22658:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22641:48:64"},{"eventCall":{"arguments":[{"id":45169,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45150,"src":"22722:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45170,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45161,"src":"22733:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45168,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44630,"src":"22704:17:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22704:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45172,"nodeType":"EmitStatement","src":"22699:41:64"}]},"documentation":{"id":45148,"nodeType":"StructuredDocumentation","src":"22457:41:64","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"22512:15:64","parameters":{"id":45151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45150,"mutability":"mutable","name":"validator","nameLocation":"22536:9:64","nodeType":"VariableDeclaration","scope":45174,"src":"22528:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45149,"name":"address","nodeType":"ElementaryTypeName","src":"22528:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22527:19:64"},"returnParameters":{"id":45152,"nodeType":"ParameterList","parameters":[],"src":"22556:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45230,"nodeType":"FunctionDefinition","src":"22861:439:64","nodes":[],"body":{"id":45229,"nodeType":"Block","src":"22918:382:64","nodes":[],"statements":[{"assignments":[45182],"declarations":[{"constant":false,"id":45182,"mutability":"mutable","name":"s","nameLocation":"22955:1:64","nodeType":"VariableDeclaration","scope":45229,"src":"22928:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45181,"nodeType":"UserDefinedTypeName","pathNode":{"id":45180,"name":"SubnetActorStorage","nameLocations":["22928:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"22928:18:64"},"referencedDeclaration":46085,"src":"22928:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45186,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45183,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"22959:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22981:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"22959:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22959:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22928:65:64"},{"assignments":[45188],"declarations":[{"constant":false,"id":45188,"mutability":"mutable","name":"amount","nameLocation":"23011:6:64","nodeType":"VariableDeclaration","scope":45229,"src":"23003:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45187,"name":"uint256","nodeType":"ElementaryTypeName","src":"23003:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45194,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45189,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45182,"src":"23020:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23022:14:64","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"23020:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23037:7:64","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"23020:24:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45193,"indexExpression":{"id":45192,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"23045:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23020:33:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23003:50:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45195,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45188,"src":"23068:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23078:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23068:11:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45202,"nodeType":"IfStatement","src":"23064:69:64","trueBody":{"id":45201,"nodeType":"Block","src":"23081:52:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45198,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37018,"src":"23102:18:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23102:20:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45200,"nodeType":"RevertStatement","src":"23095:27:64"}]}},{"expression":{"id":45211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45203,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45182,"src":"23143:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23145:14:64","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"23143:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23160:7:64","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"23143:24:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45209,"indexExpression":{"id":45206,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"23168:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23143:33:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23179:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23143:37:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45212,"nodeType":"ExpressionStatement","src":"23143:37:64"},{"expression":{"arguments":[{"id":45218,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45188,"src":"23241:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45214,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45182,"src":"23199:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23201:14:64","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"23199:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45213,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"23190:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":45216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23190:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":45217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23217:23:64","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":39837,"src":"23190:50:64","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23190:58:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45220,"nodeType":"ExpressionStatement","src":"23190:58:64"},{"expression":{"arguments":[{"id":45226,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45188,"src":"23286:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45223,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"23267:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23259:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45221,"name":"address","nodeType":"ElementaryTypeName","src":"23259:8:64","stateMutability":"payable","typeDescriptions":{}}},"id":45224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23276:9:64","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"23259:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45228,"nodeType":"ExpressionStatement","src":"23259:34:64"}]},"documentation":{"id":45175,"nodeType":"StructuredDocumentation","src":"22753:103:64","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"22870:21:64","parameters":{"id":45178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45177,"mutability":"mutable","name":"relayer","nameLocation":"22900:7:64","nodeType":"VariableDeclaration","scope":45230,"src":"22892:15:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45176,"name":"address","nodeType":"ElementaryTypeName","src":"22892:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22891:17:64"},"returnParameters":{"id":45179,"nodeType":"ParameterList","parameters":[],"src":"22918:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45253,"nodeType":"FunctionDefinition","src":"23306:247:64","nodes":[],"body":{"id":45252,"nodeType":"Block","src":"23379:174:64","nodes":[],"statements":[{"assignments":[45239],"declarations":[{"constant":false,"id":45239,"mutability":"mutable","name":"s","nameLocation":"23416:1:64","nodeType":"VariableDeclaration","scope":45252,"src":"23389:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45238,"nodeType":"UserDefinedTypeName","pathNode":{"id":45237,"name":"SubnetActorStorage","nameLocations":["23389:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"23389:18:64"},"referencedDeclaration":46085,"src":"23389:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45243,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45240,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"23420:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23442:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"23420:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23420:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23389:65:64"},{"expression":{"components":[{"expression":{"expression":{"id":45244,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45239,"src":"23472:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23474:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"23472:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23484:23:64","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"23472:35:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45247,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45239,"src":"23509:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23511:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"23509:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23521:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"23509:36:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45250,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23471:75:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45236,"id":45251,"nodeType":"Return","src":"23464:82:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23315:23:64","parameters":{"id":45231,"nodeType":"ParameterList","parameters":[],"src":"23338:2:64"},"returnParameters":{"id":45236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45253,"src":"23363:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45232,"name":"uint64","nodeType":"ElementaryTypeName","src":"23363:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45235,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45253,"src":"23371:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45234,"name":"uint64","nodeType":"ElementaryTypeName","src":"23371:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23362:16:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45463,"nodeType":"FunctionDefinition","src":"23681:1944:64","nodes":[],"body":{"id":45462,"nodeType":"Block","src":"23741:1884:64","nodes":[],"statements":[{"assignments":[45261],"declarations":[{"constant":false,"id":45261,"mutability":"mutable","name":"s","nameLocation":"23778:1:64","nodeType":"VariableDeclaration","scope":45462,"src":"23751:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45260,"nodeType":"UserDefinedTypeName","pathNode":{"id":45259,"name":"SubnetActorStorage","nameLocations":["23751:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"23751:18:64"},"referencedDeclaration":46085,"src":"23751:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45265,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45262,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"23782:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23804:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"23782:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23782:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23751:65:64"},{"assignments":[45268],"declarations":[{"constant":false,"id":45268,"mutability":"mutable","name":"changeSet","nameLocation":"23851:9:64","nodeType":"VariableDeclaration","scope":45462,"src":"23826:34:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45267,"nodeType":"UserDefinedTypeName","pathNode":{"id":45266,"name":"StakingChangeLog","nameLocations":["23826:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"23826:16:64"},"referencedDeclaration":48606,"src":"23826:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45271,"initialValue":{"expression":{"id":45269,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"23863:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23865:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"23863:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23826:48:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45272,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"23889:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45273,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"23912:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23922:23:64","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"23912:33:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23889:56:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45280,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"24017:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45281,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"24039:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24049:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"24039:34:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24017:56:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45286,"nodeType":"IfStatement","src":"24013:93:64","trueBody":{"id":45285,"nodeType":"Block","src":"24075:31:64","statements":[{"functionReturnParameters":45258,"id":45284,"nodeType":"Return","src":"24089:7:64"}]}},"id":45287,"nodeType":"IfStatement","src":"23885:221:64","trueBody":{"id":45279,"nodeType":"Block","src":"23947:60:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45276,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36940,"src":"23968:26:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23968:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45278,"nodeType":"RevertStatement","src":"23961:35:64"}]}},{"assignments":[45289],"declarations":[{"constant":false,"id":45289,"mutability":"mutable","name":"start","nameLocation":"24123:5:64","nodeType":"VariableDeclaration","scope":45462,"src":"24116:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45288,"name":"uint64","nodeType":"ElementaryTypeName","src":"24116:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45292,"initialValue":{"expression":{"id":45290,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"24131:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24141:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"24131:34:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24116:49:64"},{"body":{"id":45448,"nodeType":"Block","src":"24226:1257:64","statements":[{"assignments":[45302],"declarations":[{"constant":false,"id":45302,"mutability":"mutable","name":"change","nameLocation":"24262:6:64","nodeType":"VariableDeclaration","scope":45448,"src":"24240:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45301,"nodeType":"UserDefinedTypeName","pathNode":{"id":45300,"name":"StakingChange","nameLocations":["24240:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":48587,"src":"24240:13:64"},"referencedDeclaration":48587,"src":"24240:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":45307,"initialValue":{"arguments":[{"id":45305,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"24291:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":45303,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"24271:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24281:9:64","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":45950,"src":"24271:19:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$48587_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":45306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24271:22:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24240:53:64"},{"assignments":[45309],"declarations":[{"constant":false,"id":45309,"mutability":"mutable","name":"validator","nameLocation":"24315:9:64","nodeType":"VariableDeclaration","scope":45448,"src":"24307:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45308,"name":"address","nodeType":"ElementaryTypeName","src":"24307:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45312,"initialValue":{"expression":{"id":45310,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24327:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24334:9:64","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":48586,"src":"24327:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24307:36:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45313,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24362:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24369:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"24362:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45315,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"24375:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24392:11:64","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":48577,"src":"24375:28:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"24362:41:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45331,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24510:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24517:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"24510:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45333,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"24523:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24540:17:64","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":48578,"src":"24523:34:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"24510:47:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45435,"nodeType":"Block","src":"24829:546:64","statements":[{"assignments":[45373],"declarations":[{"constant":false,"id":45373,"mutability":"mutable","name":"amount","nameLocation":"24855:6:64","nodeType":"VariableDeclaration","scope":45435,"src":"24847:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45372,"name":"uint256","nodeType":"ElementaryTypeName","src":"24847:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45382,"initialValue":{"arguments":[{"expression":{"id":45376,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24875:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24882:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"24875:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24892:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45378,"name":"uint256","nodeType":"ElementaryTypeName","src":"24892:7:64","typeDescriptions":{}}}],"id":45380,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24891:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":45374,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24864:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24868:6:64","memberName":"decode","nodeType":"MemberAccess","src":"24864:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24864:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24847:54:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45383,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24924:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24931:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"24924:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45385,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"24937:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24954:8:64","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":48576,"src":"24937:25:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"24924:38:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45433,"nodeType":"Block","src":"25198:163:64","statements":[{"expression":{"arguments":[{"id":45420,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"25250:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45421,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25261:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45415,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25220:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25222:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"25220:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25235:14:64","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44151,"src":"25220:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25220:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45423,"nodeType":"ExpressionStatement","src":"25220:48:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":45425,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25299:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25301:14:64","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"25299:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45424,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"25290:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":45427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25290:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":45428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25317:8:64","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":39825,"src":"25290:35:64","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":45430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":45429,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25333:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25290:50:64","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":45431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25290:52:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45432,"nodeType":"ExpressionStatement","src":"25290:52:64"}]},"id":45434,"nodeType":"IfStatement","src":"24920:441:64","trueBody":{"id":45414,"nodeType":"Block","src":"24964:228:64","statements":[{"expression":{"arguments":[{"id":45393,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"25017:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45394,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25028:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45388,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24986:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24988:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24986:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25001:15:64","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44217,"src":"24986:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24986:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45396,"nodeType":"ExpressionStatement","src":"24986:49:64"},{"expression":{"arguments":[{"id":45402,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"25086:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45403,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25097:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45397,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25057:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25059:12:64","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":46068,"src":"25057:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25072:13:64","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":43558,"src":"25057:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":45404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25057:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45405,"nodeType":"ExpressionStatement","src":"25057:47:64"},{"expression":{"arguments":[{"id":45411,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25166:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45407,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25135:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25137:14:64","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"25135:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45406,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"25126:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":45409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25126:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":45410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25153:12:64","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":39831,"src":"25126:39:64","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25126:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45413,"nodeType":"ExpressionStatement","src":"25126:47:64"}]}}]},"id":45436,"nodeType":"IfStatement","src":"24506:869:64","trueBody":{"id":45371,"nodeType":"Block","src":"24559:264:64","statements":[{"assignments":[45337,45339],"declarations":[{"constant":false,"id":45337,"mutability":"mutable","name":"metadata","nameLocation":"24591:8:64","nodeType":"VariableDeclaration","scope":45371,"src":"24578:21:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45336,"name":"bytes","nodeType":"ElementaryTypeName","src":"24578:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45339,"mutability":"mutable","name":"power","nameLocation":"24609:5:64","nodeType":"VariableDeclaration","scope":45371,"src":"24601:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45338,"name":"uint256","nodeType":"ElementaryTypeName","src":"24601:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45350,"initialValue":{"arguments":[{"expression":{"id":45342,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24629:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24636:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"24629:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24646:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":45344,"name":"bytes","nodeType":"ElementaryTypeName","src":"24646:5:64","typeDescriptions":{}}},{"id":45347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24653:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45346,"name":"uint256","nodeType":"ElementaryTypeName","src":"24653:7:64","typeDescriptions":{}}}],"id":45348,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24645:16:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":45340,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24618:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24622:6:64","memberName":"decode","nodeType":"MemberAccess","src":"24618:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24618:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"24577:85:64"},{"expression":{"id":45360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45351,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24680:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24682:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24680:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24695:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"24680:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45357,"indexExpression":{"id":45354,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"24706:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24680:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24717:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"24680:45:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45359,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45337,"src":"24728:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"24680:56:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45361,"nodeType":"ExpressionStatement","src":"24680:56:64"},{"expression":{"arguments":[{"id":45367,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"24791:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45368,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45339,"src":"24802:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45362,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24754:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24756:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24754:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24769:21:64","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44109,"src":"24754:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24754:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45370,"nodeType":"ExpressionStatement","src":"24754:54:64"}]}},"id":45437,"nodeType":"IfStatement","src":"24358:1017:64","trueBody":{"id":45330,"nodeType":"Block","src":"24405:95:64","statements":[{"expression":{"id":45328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45318,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24423:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24425:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24423:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24438:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"24423:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45324,"indexExpression":{"id":45321,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"24449:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24423:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24460:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"24423:45:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45326,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24471:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24478:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"24471:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24423:62:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45329,"nodeType":"ExpressionStatement","src":"24423:62:64"}]}},{"expression":{"arguments":[{"id":45441,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"25411:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":45438,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"25389:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25399:11:64","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":45965,"src":"25389:21:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":45442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25389:24:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45443,"nodeType":"ExpressionStatement","src":"25389:24:64"},{"id":45447,"nodeType":"UncheckedBlock","src":"25427:46:64","statements":[{"expression":{"id":45445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25455:3:64","subExpression":{"id":45444,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"25457:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45446,"nodeType":"ExpressionStatement","src":"25455:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45297,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"24198:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":45298,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"24203:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24198:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45449,"initializationExpression":{"assignments":[45294],"declarations":[{"constant":false,"id":45294,"mutability":"mutable","name":"i","nameLocation":"24187:1:64","nodeType":"VariableDeclaration","scope":45449,"src":"24180:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45293,"name":"uint64","nodeType":"ElementaryTypeName","src":"24180:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45296,"initialValue":{"id":45295,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45289,"src":"24191:5:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24180:16:64"},"nodeType":"ForStatement","src":"24175:1308:64"},{"expression":{"id":45456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":45450,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"25493:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25503:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"25493:34:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45453,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"25530:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":45454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25552:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25530:23:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25493:60:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45457,"nodeType":"ExpressionStatement","src":"25493:60:64"},{"eventCall":{"arguments":[{"id":45459,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"25598:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":45458,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44624,"src":"25569:28:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":45460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25569:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45461,"nodeType":"EmitStatement","src":"25564:54:64"}]},"documentation":{"id":45254,"nodeType":"StructuredDocumentation","src":"23559:117:64","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"23690:13:64","parameters":{"id":45257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45256,"mutability":"mutable","name":"configurationNumber","nameLocation":"23711:19:64","nodeType":"VariableDeclaration","scope":45463,"src":"23704:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45255,"name":"uint64","nodeType":"ElementaryTypeName","src":"23704:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23703:28:64"},"returnParameters":{"id":45258,"nodeType":"ParameterList","parameters":[],"src":"23741:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[45464],"name":"LibStaking","nameLocation":"15346:10:64","scope":45729,"usedErrors":[32032,32040,37018]},{"id":45728,"nodeType":"ContractDefinition","src":"25784:2695:64","nodes":[{"id":45469,"nodeType":"UsingForDirective","src":"25819:39:64","nodes":[],"global":false,"libraryName":{"id":45466,"name":"LibValidatorSet","nameLocations":["25825:15:64"],"nodeType":"IdentifierPath","referencedDeclaration":44594,"src":"25825:15:64"},"typeName":{"id":45468,"nodeType":"UserDefinedTypeName","pathNode":{"id":45467,"name":"ValidatorSet","nameLocations":["25845:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"25845:12:64"},"referencedDeclaration":48673,"src":"25845:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45473,"nodeType":"UsingForDirective","src":"25863:47:64","nodes":[],"global":false,"libraryName":{"id":45470,"name":"LibStakingChangeLog","nameLocations":["25869:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":45966,"src":"25869:19:64"},"typeName":{"id":45472,"nodeType":"UserDefinedTypeName","pathNode":{"id":45471,"name":"StakingChangeLog","nameLocations":["25893:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"25893:16:64"},"referencedDeclaration":48606,"src":"25893:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45508,"nodeType":"FunctionDefinition","src":"25916:475:64","nodes":[],"body":{"id":45507,"nodeType":"Block","src":"26029:362:64","nodes":[],"statements":[{"assignments":[45483],"declarations":[{"constant":false,"id":45483,"mutability":"mutable","name":"configurationNumber","nameLocation":"26046:19:64","nodeType":"VariableDeclaration","scope":45507,"src":"26039:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45482,"name":"uint64","nodeType":"ElementaryTypeName","src":"26039:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45497,"initialValue":{"arguments":[{"expression":{"expression":{"id":45487,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26119:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26133:6:64","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":48590,"src":"26119:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":45489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26140:9:64","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":48586,"src":"26119:30:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":45490,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26167:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26181:6:64","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":48590,"src":"26167:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":45492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26188:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"26167:23:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":45493,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26213:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26227:6:64","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":48590,"src":"26213:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":45495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26234:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"26213:28:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45484,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45476,"src":"26068:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26073:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"26068:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26081:12:64","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":45932,"src":"26068:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$48579_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":45496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26108:9:64","26163:2:64","26204:7:64"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26068:184:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26039:213:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45498,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45483,"src":"26267:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":45499,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26290:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26304:19:64","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48592,"src":"26290:33:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26267:56:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45506,"nodeType":"IfStatement","src":"26263:122:64","trueBody":{"id":45505,"nodeType":"Block","src":"26325:60:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45502,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36986,"src":"26346:26:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26346:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45504,"nodeType":"RevertStatement","src":"26339:35:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"25925:11:64","parameters":{"id":45480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45476,"mutability":"mutable","name":"self","nameLocation":"25969:4:64","nodeType":"VariableDeclaration","scope":45508,"src":"25937:36:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":45475,"nodeType":"UserDefinedTypeName","pathNode":{"id":45474,"name":"ParentValidatorsTracker","nameLocations":["25937:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"25937:23:64"},"referencedDeclaration":48680,"src":"25937:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":45479,"mutability":"mutable","name":"changeRequest","nameLocation":"26005:13:64","nodeType":"VariableDeclaration","scope":45508,"src":"25975:43:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":45478,"nodeType":"UserDefinedTypeName","pathNode":{"id":45477,"name":"StakingChangeRequest","nameLocations":["25975:20:64"],"nodeType":"IdentifierPath","referencedDeclaration":48593,"src":"25975:20:64"},"referencedDeclaration":48593,"src":"25975:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"25936:83:64"},"returnParameters":{"id":45481,"nodeType":"ParameterList","parameters":[],"src":"26029:0:64"},"scope":45728,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45549,"nodeType":"FunctionDefinition","src":"26397:415:64","nodes":[],"body":{"id":45548,"nodeType":"Block","src":"26540:272:64","nodes":[],"statements":[{"assignments":[45519],"declarations":[{"constant":false,"id":45519,"mutability":"mutable","name":"length","nameLocation":"26558:6:64","nodeType":"VariableDeclaration","scope":45548,"src":"26550:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45518,"name":"uint256","nodeType":"ElementaryTypeName","src":"26550:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45522,"initialValue":{"expression":{"id":45520,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45515,"src":"26567:14:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":45521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26582:6:64","memberName":"length","nodeType":"MemberAccess","src":"26567:21:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26550:38:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45523,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45519,"src":"26602:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26612:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26602:11:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45528,"nodeType":"IfStatement","src":"26598:48:64","trueBody":{"id":45527,"nodeType":"Block","src":"26615:31:64","statements":[{"functionReturnParameters":45517,"id":45526,"nodeType":"Return","src":"26629:7:64"}]}},{"body":{"id":45546,"nodeType":"Block","src":"26686:120:64","statements":[{"expression":{"arguments":[{"id":45536,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45511,"src":"26712:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":45537,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45515,"src":"26718:14:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":45539,"indexExpression":{"id":45538,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45530,"src":"26733:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26718:17:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":45535,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45508,"src":"26700:11:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$48680_storage_ptr_$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":45540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26700:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45541,"nodeType":"ExpressionStatement","src":"26700:36:64"},{"id":45545,"nodeType":"UncheckedBlock","src":"26750:46:64","statements":[{"expression":{"id":45543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"26778:3:64","subExpression":{"id":45542,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45530,"src":"26780:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45544,"nodeType":"ExpressionStatement","src":"26778:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45532,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45530,"src":"26672:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45533,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45519,"src":"26676:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26672:10:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45547,"initializationExpression":{"assignments":[45530],"declarations":[{"constant":false,"id":45530,"mutability":"mutable","name":"i","nameLocation":"26669:1:64","nodeType":"VariableDeclaration","scope":45547,"src":"26661:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45529,"name":"uint256","nodeType":"ElementaryTypeName","src":"26661:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45531,"nodeType":"VariableDeclarationStatement","src":"26661:9:64"},"nodeType":"ForStatement","src":"26656:150:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26406:16:64","parameters":{"id":45516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45511,"mutability":"mutable","name":"self","nameLocation":"26464:4:64","nodeType":"VariableDeclaration","scope":45549,"src":"26432:36:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":45510,"nodeType":"UserDefinedTypeName","pathNode":{"id":45509,"name":"ParentValidatorsTracker","nameLocations":["26432:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"26432:23:64"},"referencedDeclaration":48680,"src":"26432:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":45515,"mutability":"mutable","name":"changeRequests","nameLocation":"26510:14:64","nodeType":"VariableDeclaration","scope":45549,"src":"26478:46:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":45513,"nodeType":"UserDefinedTypeName","pathNode":{"id":45512,"name":"StakingChangeRequest","nameLocations":["26478:20:64"],"nodeType":"IdentifierPath","referencedDeclaration":48593,"src":"26478:20:64"},"referencedDeclaration":48593,"src":"26478:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":45514,"nodeType":"ArrayTypeName","src":"26478:22:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26422:108:64"},"returnParameters":{"id":45517,"nodeType":"ParameterList","parameters":[],"src":"26540:0:64"},"scope":45728,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45727,"nodeType":"FunctionDefinition","src":"26883:1594:64","nodes":[],"body":{"id":45726,"nodeType":"Block","src":"26981:1496:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45558,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"26995:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":45559,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27018:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27023:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27018:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27031:23:64","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"27018:36:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26995:59:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45567,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"27126:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":45568,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27148:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27153:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27148:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27161:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"27148:37:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27126:59:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45574,"nodeType":"IfStatement","src":"27122:96:64","trueBody":{"id":45573,"nodeType":"Block","src":"27187:31:64","statements":[{"functionReturnParameters":45557,"id":45572,"nodeType":"Return","src":"27201:7:64"}]}},"id":45575,"nodeType":"IfStatement","src":"26991:227:64","trueBody":{"id":45566,"nodeType":"Block","src":"27056:60:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45563,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36940,"src":"27077:26:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27077:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45565,"nodeType":"RevertStatement","src":"27070:35:64"}]}},{"assignments":[45577],"declarations":[{"constant":false,"id":45577,"mutability":"mutable","name":"start","nameLocation":"27235:5:64","nodeType":"VariableDeclaration","scope":45726,"src":"27228:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45576,"name":"uint64","nodeType":"ElementaryTypeName","src":"27228:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45581,"initialValue":{"expression":{"expression":{"id":45578,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27243:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27248:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27243:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27256:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"27243:37:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27228:52:64"},{"body":{"id":45714,"nodeType":"Block","src":"27342:1056:64","statements":[{"assignments":[45591],"declarations":[{"constant":false,"id":45591,"mutability":"mutable","name":"change","nameLocation":"27378:6:64","nodeType":"VariableDeclaration","scope":45714,"src":"27356:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45590,"nodeType":"UserDefinedTypeName","pathNode":{"id":45589,"name":"StakingChange","nameLocations":["27356:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":48587,"src":"27356:13:64"},"referencedDeclaration":48587,"src":"27356:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":45597,"initialValue":{"arguments":[{"id":45595,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"27410:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":45592,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27387:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27392:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27387:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27400:9:64","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":45950,"src":"27387:22:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$48587_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":45596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27387:25:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27356:56:64"},{"assignments":[45599],"declarations":[{"constant":false,"id":45599,"mutability":"mutable","name":"validator","nameLocation":"27434:9:64","nodeType":"VariableDeclaration","scope":45714,"src":"27426:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45598,"name":"address","nodeType":"ElementaryTypeName","src":"27426:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45602,"initialValue":{"expression":{"id":45600,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27446:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27453:9:64","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":48586,"src":"27446:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27426:36:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45603,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27481:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45604,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27488:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"27481:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45605,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"27494:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27511:11:64","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":48577,"src":"27494:28:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"27481:41:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45621,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27630:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27637:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"27630:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45623,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"27643:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27660:17:64","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":48578,"src":"27643:34:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"27630:47:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45699,"nodeType":"Block","src":"27951:336:64","statements":[{"assignments":[45663],"declarations":[{"constant":false,"id":45663,"mutability":"mutable","name":"amount","nameLocation":"27977:6:64","nodeType":"VariableDeclaration","scope":45699,"src":"27969:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45662,"name":"uint256","nodeType":"ElementaryTypeName","src":"27969:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45672,"initialValue":{"arguments":[{"expression":{"id":45666,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27997:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28004:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"27997:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28014:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45668,"name":"uint256","nodeType":"ElementaryTypeName","src":"28014:7:64","typeDescriptions":{}}}],"id":45670,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28013:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":45664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27986:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27990:6:64","memberName":"decode","nodeType":"MemberAccess","src":"27986:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27986:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27969:54:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45673,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"28046:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28053:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"28046:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45675,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"28059:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28076:8:64","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":48576,"src":"28059:25:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"28046:38:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45697,"nodeType":"Block","src":"28183:90:64","statements":[{"expression":{"arguments":[{"id":45693,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"28236:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45694,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45663,"src":"28247:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45688,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28205:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28210:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"28205:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28221:14:64","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44151,"src":"28205:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28205:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45696,"nodeType":"ExpressionStatement","src":"28205:49:64"}]},"id":45698,"nodeType":"IfStatement","src":"28042:231:64","trueBody":{"id":45687,"nodeType":"Block","src":"28086:91:64","statements":[{"expression":{"arguments":[{"id":45683,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"28140:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45684,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45663,"src":"28151:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45678,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28108:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28113:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"28108:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28124:15:64","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44217,"src":"28108:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28108:50:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45686,"nodeType":"ExpressionStatement","src":"28108:50:64"}]}}]},"id":45700,"nodeType":"IfStatement","src":"27626:661:64","trueBody":{"id":45661,"nodeType":"Block","src":"27679:266:64","statements":[{"assignments":[45627,45629],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"metadata","nameLocation":"27711:8:64","nodeType":"VariableDeclaration","scope":45661,"src":"27698:21:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45626,"name":"bytes","nodeType":"ElementaryTypeName","src":"27698:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45629,"mutability":"mutable","name":"power","nameLocation":"27729:5:64","nodeType":"VariableDeclaration","scope":45661,"src":"27721:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45628,"name":"uint256","nodeType":"ElementaryTypeName","src":"27721:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45640,"initialValue":{"arguments":[{"expression":{"id":45632,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27749:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27756:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"27749:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27766:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":45634,"name":"bytes","nodeType":"ElementaryTypeName","src":"27766:5:64","typeDescriptions":{}}},{"id":45637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27773:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45636,"name":"uint256","nodeType":"ElementaryTypeName","src":"27773:7:64","typeDescriptions":{}}}],"id":45638,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27765:16:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":45630,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27738:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27742:6:64","memberName":"decode","nodeType":"MemberAccess","src":"27738:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27738:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"27697:85:64"},{"expression":{"id":45650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45641,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27800:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27805:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"27800:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27816:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"27800:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45647,"indexExpression":{"id":45644,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"27827:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27800:37:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"27838:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"27800:46:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45649,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45627,"src":"27849:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"27800:57:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45651,"nodeType":"ExpressionStatement","src":"27800:57:64"},{"expression":{"arguments":[{"id":45657,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"27913:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45658,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45629,"src":"27924:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45652,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27875:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45655,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27880:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"27875:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27891:21:64","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44109,"src":"27875:37:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27875:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45660,"nodeType":"ExpressionStatement","src":"27875:55:64"}]}},"id":45701,"nodeType":"IfStatement","src":"27477:810:64","trueBody":{"id":45620,"nodeType":"Block","src":"27524:96:64","statements":[{"expression":{"id":45618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45608,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27542:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27547:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"27542:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27558:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"27542:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45614,"indexExpression":{"id":45611,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"27569:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27542:37:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"27580:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"27542:46:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45616,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27591:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27598:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"27591:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"27542:63:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45619,"nodeType":"ExpressionStatement","src":"27542:63:64"}]}},{"expression":{"arguments":[{"id":45707,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"28326:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":45702,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28301:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28306:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"28301:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28314:11:64","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":45965,"src":"28301:24:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":45708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28301:27:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45709,"nodeType":"ExpressionStatement","src":"28301:27:64"},{"id":45713,"nodeType":"UncheckedBlock","src":"28342:46:64","statements":[{"expression":{"id":45711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28370:3:64","subExpression":{"id":45710,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"28372:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45712,"nodeType":"ExpressionStatement","src":"28370:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45586,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"27314:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":45587,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"27319:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27314:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45715,"initializationExpression":{"assignments":[45583],"declarations":[{"constant":false,"id":45583,"mutability":"mutable","name":"i","nameLocation":"27303:1:64","nodeType":"VariableDeclaration","scope":45715,"src":"27296:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45582,"name":"uint64","nodeType":"ElementaryTypeName","src":"27296:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45585,"initialValue":{"id":45584,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45577,"src":"27307:5:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27296:16:64"},"nodeType":"ForStatement","src":"27291:1107:64"},{"expression":{"id":45724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":45716,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28407:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28412:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"28407:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28420:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"28407:37:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45721,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"28447:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":45722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28469:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28447:23:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28407:63:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45725,"nodeType":"ExpressionStatement","src":"28407:63:64"}]},"documentation":{"id":45550,"nodeType":"StructuredDocumentation","src":"26818:60:64","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"26892:13:64","parameters":{"id":45556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45553,"mutability":"mutable","name":"self","nameLocation":"26938:4:64","nodeType":"VariableDeclaration","scope":45727,"src":"26906:36:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":45552,"nodeType":"UserDefinedTypeName","pathNode":{"id":45551,"name":"ParentValidatorsTracker","nameLocations":["26906:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"26906:23:64"},"referencedDeclaration":48680,"src":"26906:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":45555,"mutability":"mutable","name":"configurationNumber","nameLocation":"26951:19:64","nodeType":"VariableDeclaration","scope":45727,"src":"26944:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45554,"name":"uint64","nodeType":"ElementaryTypeName","src":"26944:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"26905:66:64"},"returnParameters":{"id":45557,"nodeType":"ParameterList","parameters":[],"src":"26981:0:64"},"scope":45728,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":45465,"nodeType":"StructuredDocumentation","src":"25629:155:64","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[45728],"name":"LibValidatorTracking","nameLocation":"25792:20:64","scope":45729,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":64} \ No newline at end of file +{"abi":[{"type":"event","name":"NewCollateralRelease","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"releaseBlock","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212204bb61d1d755e5cb50400e6f2b209bd9a026a768b3553a1518d793d6215dd210b64736f6c63430008130033","sourceMap":"2586:1272:69:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212204bb61d1d755e5cb50400e6f2b209bd9a026a768b3553a1518d793d6215dd210b64736f6c63430008130033","sourceMap":"2586:1272:69:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"releaseBlock\",\"type\":\"uint256\"}],\"name\":\"NewCollateralRelease\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The util library for `StakingReleaseQueue`\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibStakingReleaseQueue\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"releaseBlock","type":"uint256","indexed":false}],"type":"event","name":"NewCollateralRelease","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibStakingReleaseQueue"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":46441,"exportedSymbols":{"Address":[32838],"AddressShouldBeValidator":[37368],"AddressStakingReleases":[50140],"CannotConfirmFutureChanges":[37372],"IGateway":[40354],"InvalidConfigurationNumber":[37418],"LibAddressStakingReleases":[44183],"LibMaxPQ":[49016],"LibMinPQ":[49635],"LibStaking":[46176],"LibStakingChangeLog":[46678],"LibStakingReleaseQueue":[44302],"LibSubnetActorStorage":[47292],"LibValidatorSet":[45293],"LibValidatorTracking":[46440],"MaxPQ":[48411],"MinPQ":[49029],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NotValidator":[37490],"ParentValidatorsTracker":[50197],"PermissionMode":[50165],"StakingChange":[50104],"StakingChangeLog":[50123],"StakingChangeRequest":[50110],"StakingOperation":[50096],"StakingRelease":[50130],"StakingReleaseQueue":[50150],"SubnetActorStorage":[47281],"Validator":[50211],"ValidatorSet":[50190],"WithdrawExceedingCollateral":[37510]},"nodeType":"SourceUnit","src":"46:28930:69","nodes":[{"id":44015,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":44017,"nodeType":"ImportDirective","src":"71:52:69","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":44016,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44020,"nodeType":"ImportDirective","src":"124:86:69","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":44018,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"132:21:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44019,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"155:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44023,"nodeType":"ImportDirective","src":"211:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49017,"symbolAliases":[{"foreign":{"id":44021,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49016,"src":"219:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44022,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48411,"src":"229:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44026,"nodeType":"ImportDirective","src":"268:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49636,"symbolAliases":[{"foreign":{"id":44024,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49635,"src":"276:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44025,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49029,"src":"286:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44028,"nodeType":"ImportDirective","src":"325:62:69","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":46679,"symbolAliases":[{"foreign":{"id":44027,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46678,"src":"333:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44040,"nodeType":"ImportDirective","src":"388:237:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":44029,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"396:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44030,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"412:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44031,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"433:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44032,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50104,"src":"451:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44033,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50110,"src":"466:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44034,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"488:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44035,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"506:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44036,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"522:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44037,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50140,"src":"536:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44038,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"560:23:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44039,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"585:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44048,"nodeType":"ImportDirective","src":"626:208:69","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":44041,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"634:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44042,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"654:27:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44043,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"683:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44044,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"697:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44045,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"725:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44046,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"749:24:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44047,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"775:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44050,"nodeType":"ImportDirective","src":"835:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":44049,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"843:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44183,"nodeType":"ContractDefinition","src":"902:1635:69","nodes":[{"id":44089,"nodeType":"FunctionDefinition","src":"1118:261:69","nodes":[],"body":{"id":44088,"nodeType":"Block","src":"1209:170:69","nodes":[],"statements":[{"assignments":[44061],"declarations":[{"constant":false,"id":44061,"mutability":"mutable","name":"length","nameLocation":"1226:6:69","nodeType":"VariableDeclaration","scope":44088,"src":"1219:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44060,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44064,"initialValue":{"expression":{"id":44062,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1235:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:69"},{"assignments":[44066],"declarations":[{"constant":false,"id":44066,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:69","nodeType":"VariableDeclaration","scope":44088,"src":"1256:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44065,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44071,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44067,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1273:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1273:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44069,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1289:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:69"},{"expression":{"id":44078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":44072,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"1306:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44076,"indexExpression":{"id":44074,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44066,"src":"1320:7:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44077,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44057,"src":"1331:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"id":44079,"nodeType":"ExpressionStatement","src":"1306:32:69"},{"expression":{"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44080,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1348:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1348:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44083,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1362:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":44084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44087,"nodeType":"ExpressionStatement","src":"1348:24:69"}]},"documentation":{"id":44051,"nodeType":"StructuredDocumentation","src":"942:171:69","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:69","parameters":{"id":44058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44054,"mutability":"mutable","name":"self","nameLocation":"1163:4:69","nodeType":"VariableDeclaration","scope":44089,"src":"1132:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44053,"nodeType":"UserDefinedTypeName","pathNode":{"id":44052,"name":"AddressStakingReleases","nameLocations":["1132:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1132:22:69"},"referencedDeclaration":50140,"src":"1132:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":44057,"mutability":"mutable","name":"release","nameLocation":"1191:7:69","nodeType":"VariableDeclaration","scope":44089,"src":"1169:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44056,"nodeType":"UserDefinedTypeName","pathNode":{"id":44055,"name":"StakingRelease","nameLocations":["1169:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1169:14:69"},"referencedDeclaration":50130,"src":"1169:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:69"},"returnParameters":{"id":44059,"nodeType":"ParameterList","parameters":[],"src":"1209:0:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44182,"nodeType":"FunctionDefinition","src":"1637:898:69","nodes":[],"body":{"id":44181,"nodeType":"Block","src":"1726:809:69","nodes":[],"statements":[{"assignments":[44101],"declarations":[{"constant":false,"id":44101,"mutability":"mutable","name":"length","nameLocation":"1743:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1736:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44100,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44104,"initialValue":{"expression":{"id":44102,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1752:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1752:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1777:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1777:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44113,"nodeType":"IfStatement","src":"1773:78:69","trueBody":{"id":44112,"nodeType":"Block","src":"1795:56:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44109,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"1816:22:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44111,"nodeType":"RevertStatement","src":"1809:31:69"}]}},{"assignments":[44115],"declarations":[{"constant":false,"id":44115,"mutability":"mutable","name":"i","nameLocation":"1868:1:69","nodeType":"VariableDeclaration","scope":44181,"src":"1861:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44114,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44118,"initialValue":{"expression":{"id":44116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1872:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1872:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:69"},{"assignments":[44120],"declarations":[{"constant":false,"id":44120,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:69","nodeType":"VariableDeclaration","scope":44181,"src":"1895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44119,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44122,"initialValue":{"id":44121,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1914:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:69"},{"assignments":[44124],"declarations":[{"constant":false,"id":44124,"mutability":"mutable","name":"amount","nameLocation":"1938:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1930:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44125,"nodeType":"VariableDeclarationStatement","src":"1930:14:69"},{"body":{"id":44163,"nodeType":"Block","src":"1973:458:69","statements":[{"assignments":[44131],"declarations":[{"constant":false,"id":44131,"mutability":"mutable","name":"release","nameLocation":"2009:7:69","nodeType":"VariableDeclaration","scope":44163,"src":"1987:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44130,"nodeType":"UserDefinedTypeName","pathNode":{"id":44129,"name":"StakingRelease","nameLocations":["1987:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1987:14:69"},"referencedDeclaration":50130,"src":"1987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44136,"initialValue":{"baseExpression":{"expression":{"id":44132,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2019:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2019:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44135,"indexExpression":{"id":44134,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2033:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44137,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2184:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:69","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":50126,"src":"2184:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":44139,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:69","memberName":"number","nodeType":"MemberAccess","src":"2204:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44144,"nodeType":"IfStatement","src":"2180:76:69","trueBody":{"id":44143,"nodeType":"Block","src":"2218:38:69","statements":[{"id":44142,"nodeType":"Break","src":"2236:5:69"}]}},{"expression":{"id":44148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44145,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":44146,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2280:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:69","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":50129,"src":"2280:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44149,"nodeType":"ExpressionStatement","src":"2270:24:69"},{"expression":{"id":44154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:69","subExpression":{"baseExpression":{"expression":{"id":44150,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2315:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2315:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44153,"indexExpression":{"id":44152,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2329:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44155,"nodeType":"ExpressionStatement","src":"2308:23:69"},{"id":44162,"nodeType":"UncheckedBlock","src":"2346:75:69","statements":[{"expression":{"id":44157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:69","subExpression":{"id":44156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2376:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44158,"nodeType":"ExpressionStatement","src":"2374:3:69"},{"expression":{"id":44160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:69","subExpression":{"id":44159,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2397:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44161,"nodeType":"ExpressionStatement","src":"2395:11:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44126,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"1961:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44127,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1965:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44164,"nodeType":"WhileStatement","src":"1954:477:69"},{"expression":{"id":44169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44165,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2441:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"2441:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44168,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2457:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44170,"nodeType":"ExpressionStatement","src":"2441:17:69"},{"expression":{"id":44175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44171,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2468:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"2468:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44174,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2482:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44176,"nodeType":"ExpressionStatement","src":"2468:23:69"},{"expression":{"components":[{"id":44177,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2510:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44178,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2518:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":44179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":44099,"id":44180,"nodeType":"Return","src":"2502:26:69"}]},"documentation":{"id":44090,"nodeType":"StructuredDocumentation","src":"1385:247:69","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:69","parameters":{"id":44094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44093,"mutability":"mutable","name":"self","nameLocation":"1685:4:69","nodeType":"VariableDeclaration","scope":44182,"src":"1654:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44092,"nodeType":"UserDefinedTypeName","pathNode":{"id":44091,"name":"AddressStakingReleases","nameLocations":["1654:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1654:22:69"},"referencedDeclaration":50140,"src":"1654:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:69"},"returnParameters":{"id":44099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1709:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44095,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1718:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44097,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[44183],"name":"LibAddressStakingReleases","nameLocation":"910:25:69","scope":46441,"usedErrors":[]},{"id":44302,"nodeType":"ContractDefinition","src":"2586:1272:69","nodes":[{"id":44187,"nodeType":"UsingForDirective","src":"2623:34:69","nodes":[],"global":false,"libraryName":{"id":44185,"name":"Address","nameLocations":["2629:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"2629:7:69"},"typeName":{"id":44186,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44191,"nodeType":"UsingForDirective","src":"2662:59:69","nodes":[],"global":false,"libraryName":{"id":44188,"name":"LibAddressStakingReleases","nameLocations":["2668:25:69"],"nodeType":"IdentifierPath","referencedDeclaration":44183,"src":"2668:25:69"},"typeName":{"id":44190,"nodeType":"UserDefinedTypeName","pathNode":{"id":44189,"name":"AddressStakingReleases","nameLocations":["2698:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"2698:22:69"},"referencedDeclaration":50140,"src":"2698:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":44199,"nodeType":"EventDefinition","src":"2727:84:69","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:69","parameters":{"id":44198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44193,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:69","nodeType":"VariableDeclaration","scope":44199,"src":"2754:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44192,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44195,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:69","nodeType":"VariableDeclaration","scope":44199,"src":"2773:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44194,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44197,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:69","nodeType":"VariableDeclaration","scope":44199,"src":"2789:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:69"}},{"id":44214,"nodeType":"FunctionDefinition","src":"2817:130:69","nodes":[],"body":{"id":44213,"nodeType":"Block","src":"2901:46:69","nodes":[],"statements":[{"expression":{"id":44211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44207,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44202,"src":"2911:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"2911:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44210,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44204,"src":"2934:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44212,"nodeType":"ExpressionStatement","src":"2911:29:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:69","parameters":{"id":44205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44202,"mutability":"mutable","name":"self","nameLocation":"2870:4:69","nodeType":"VariableDeclaration","scope":44214,"src":"2842:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44201,"nodeType":"UserDefinedTypeName","pathNode":{"id":44200,"name":"StakingReleaseQueue","nameLocations":["2842:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2842:19:69"},"referencedDeclaration":50150,"src":"2842:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44204,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:69","nodeType":"VariableDeclaration","scope":44214,"src":"2876:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44203,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:69"},"returnParameters":{"id":44206,"nodeType":"ParameterList","parameters":[],"src":"2901:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44257,"nodeType":"FunctionDefinition","src":"3016:419:69","nodes":[],"body":{"id":44256,"nodeType":"Block","src":"3117:318:69","nodes":[],"statements":[{"assignments":[44226],"declarations":[{"constant":false,"id":44226,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:69","nodeType":"VariableDeclaration","scope":44256,"src":"3127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44225,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44232,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44227,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:69","memberName":"number","nodeType":"MemberAccess","src":"3147:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":44229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3162:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"3162:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:69"},{"assignments":[44235],"declarations":[{"constant":false,"id":44235,"mutability":"mutable","name":"release","nameLocation":"3214:7:69","nodeType":"VariableDeclaration","scope":44256,"src":"3192:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44234,"nodeType":"UserDefinedTypeName","pathNode":{"id":44233,"name":"StakingRelease","nameLocations":["3192:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"3192:14:69"},"referencedDeclaration":50130,"src":"3192:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44240,"initialValue":{"arguments":[{"id":44237,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3251:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44238,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44236,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"3224:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$50130_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":44239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:69","3262:6:69"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:69"},{"expression":{"arguments":[{"id":44247,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44235,"src":"3319:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":44241,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3289:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3289:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44245,"indexExpression":{"id":44243,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3303:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:69","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":44089,"src":"3289:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$_t_struct$_StakingRelease_$50130_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":44248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44249,"nodeType":"ExpressionStatement","src":"3289:38:69"},{"eventCall":{"arguments":[{"id":44251,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3376:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44252,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3395:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44253,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3417:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44250,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44199,"src":"3343:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":44254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:69","3387:6:69","3403:12:69"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44255,"nodeType":"EmitStatement","src":"3338:90:69"}]},"documentation":{"id":44215,"nodeType":"StructuredDocumentation","src":"2953:58:69","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:69","parameters":{"id":44223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44218,"mutability":"mutable","name":"self","nameLocation":"3067:4:69","nodeType":"VariableDeclaration","scope":44257,"src":"3039:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44217,"nodeType":"UserDefinedTypeName","pathNode":{"id":44216,"name":"StakingReleaseQueue","nameLocations":["3039:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3039:19:69"},"referencedDeclaration":50150,"src":"3039:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44220,"mutability":"mutable","name":"validator","nameLocation":"3081:9:69","nodeType":"VariableDeclaration","scope":44257,"src":"3073:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44219,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44222,"mutability":"mutable","name":"amount","nameLocation":"3100:6:69","nodeType":"VariableDeclaration","scope":44257,"src":"3092:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:69"},"returnParameters":{"id":44224,"nodeType":"ParameterList","parameters":[],"src":"3117:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44301,"nodeType":"FunctionDefinition","src":"3516:340:69","nodes":[],"body":{"id":44300,"nodeType":"Block","src":"3611:245:69","nodes":[],"statements":[{"assignments":[44269,44271],"declarations":[{"constant":false,"id":44269,"mutability":"mutable","name":"amount","nameLocation":"3630:6:69","nodeType":"VariableDeclaration","scope":44300,"src":"3622:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44268,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44271,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:69","nodeType":"VariableDeclaration","scope":44300,"src":"3638:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44270,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44278,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":44272,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3658:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3658:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44275,"indexExpression":{"id":44274,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3672:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:69","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":44182,"src":"3658:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":44277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44279,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44271,"src":"3707:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44289,"nodeType":"IfStatement","src":"3703:76:69","trueBody":{"id":44288,"nodeType":"Block","src":"3723:56:69","statements":[{"expression":{"id":44286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:69","subExpression":{"baseExpression":{"expression":{"id":44282,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3744:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3744:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44285,"indexExpression":{"id":44284,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3758:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44287,"nodeType":"ExpressionStatement","src":"3737:31:69"}]}},{"expression":{"arguments":[{"id":44295,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44292,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3797:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":44290,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":44293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"3789:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":44296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44297,"nodeType":"ExpressionStatement","src":"3789:36:69"},{"expression":{"id":44298,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3843:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44267,"id":44299,"nodeType":"Return","src":"3836:13:69"}]},"documentation":{"id":44258,"nodeType":"StructuredDocumentation","src":"3441:70:69","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:69","parameters":{"id":44264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44261,"mutability":"mutable","name":"self","nameLocation":"3559:4:69","nodeType":"VariableDeclaration","scope":44301,"src":"3531:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44260,"nodeType":"UserDefinedTypeName","pathNode":{"id":44259,"name":"StakingReleaseQueue","nameLocations":["3531:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3531:19:69"},"referencedDeclaration":50150,"src":"3531:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44263,"mutability":"mutable","name":"validator","nameLocation":"3573:9:69","nodeType":"VariableDeclaration","scope":44301,"src":"3565:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44262,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:69"},"returnParameters":{"id":44267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44301,"src":"3602:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44265,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":44184,"nodeType":"StructuredDocumentation","src":"2539:47:69","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[44302],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:69","scope":46441,"usedErrors":[]},{"id":45293,"nodeType":"ContractDefinition","src":"3900:11436:69","nodes":[{"id":44307,"nodeType":"UsingForDirective","src":"3930:25:69","nodes":[],"global":false,"libraryName":{"id":44304,"name":"LibMinPQ","nameLocations":["3936:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"3936:8:69"},"typeName":{"id":44306,"nodeType":"UserDefinedTypeName","pathNode":{"id":44305,"name":"MinPQ","nameLocations":["3949:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"3949:5:69"},"referencedDeclaration":49029,"src":"3949:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":44311,"nodeType":"UsingForDirective","src":"3960:25:69","nodes":[],"global":false,"libraryName":{"id":44308,"name":"LibMaxPQ","nameLocations":["3966:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"3966:8:69"},"typeName":{"id":44310,"nodeType":"UserDefinedTypeName","pathNode":{"id":44309,"name":"MaxPQ","nameLocations":["3979:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3979:5:69"},"referencedDeclaration":48411,"src":"3979:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44317,"nodeType":"EventDefinition","src":"3991:76:69","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:69","parameters":{"id":44316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44313,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:69","nodeType":"VariableDeclaration","scope":44317,"src":"4030:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44312,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44315,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:69","nodeType":"VariableDeclaration","scope":44317,"src":"4049:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44314,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:69"}},{"id":44323,"nodeType":"EventDefinition","src":"4072:77:69","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:69","parameters":{"id":44322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44319,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:69","nodeType":"VariableDeclaration","scope":44323,"src":"4112:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44318,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44321,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:69","nodeType":"VariableDeclaration","scope":44323,"src":"4131:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44320,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:69"}},{"id":44329,"nodeType":"EventDefinition","src":"4154:59:69","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:69","parameters":{"id":44328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:69","nodeType":"VariableDeclaration","scope":44329,"src":"4179:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44324,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44327,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:69","nodeType":"VariableDeclaration","scope":44329,"src":"4198:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44326,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:69"}},{"id":44335,"nodeType":"EventDefinition","src":"4218:60:69","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:69","parameters":{"id":44334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44331,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:69","nodeType":"VariableDeclaration","scope":44335,"src":"4244:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44330,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44333,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:69","nodeType":"VariableDeclaration","scope":44335,"src":"4263:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44332,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:69"}},{"id":44341,"nodeType":"EventDefinition","src":"4283:74:69","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:69","parameters":{"id":44340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44337,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4313:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44336,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44339,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4335:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44338,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:69"}},{"id":44345,"nodeType":"EventDefinition","src":"4362:45:69","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:69","parameters":{"id":44344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44343,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:69","nodeType":"VariableDeclaration","scope":44345,"src":"4388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44342,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:69"}},{"id":44349,"nodeType":"EventDefinition","src":"4412:46:69","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:69","parameters":{"id":44348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44347,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:69","nodeType":"VariableDeclaration","scope":44349,"src":"4439:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44346,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:69"}},{"id":44385,"nodeType":"FunctionDefinition","src":"4525:375:69","nodes":[],"body":{"id":44384,"nodeType":"Block","src":"4654:246:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":44364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44360,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4668:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:69","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"4668:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":44362,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"4697:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":44363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:69","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"4697:24:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"4668:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44382,"nodeType":"Block","src":"4809:85:69","statements":[{"expression":{"id":44380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44374,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4823:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44375,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4831:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4831:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44378,"indexExpression":{"id":44377,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4853:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"4831:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44381,"nodeType":"ExpressionStatement","src":"4823:60:69"}]},"id":44383,"nodeType":"IfStatement","src":"4664:230:69","trueBody":{"id":44373,"nodeType":"Block","src":"4723:80:69","statements":[{"expression":{"id":44371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44365,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4737:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44366,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4745:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4745:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44369,"indexExpression":{"id":44368,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4767:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"4745:47:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44372,"nodeType":"ExpressionStatement","src":"4737:55:69"}]}}]},"documentation":{"id":44350,"nodeType":"StructuredDocumentation","src":"4464:56:69","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:69","parameters":{"id":44356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44353,"mutability":"mutable","name":"validators","nameLocation":"4573:10:69","nodeType":"VariableDeclaration","scope":44385,"src":"4552:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44352,"nodeType":"UserDefinedTypeName","pathNode":{"id":44351,"name":"ValidatorSet","nameLocations":["4552:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4552:12:69"},"referencedDeclaration":50190,"src":"4552:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44355,"mutability":"mutable","name":"validator","nameLocation":"4601:9:69","nodeType":"VariableDeclaration","scope":44385,"src":"4593:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44354,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:69"},"returnParameters":{"id":44359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44358,"mutability":"mutable","name":"power","nameLocation":"4647:5:69","nodeType":"VariableDeclaration","scope":44385,"src":"4639:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44357,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44400,"nodeType":"FunctionDefinition","src":"4976:178:69","nodes":[],"body":{"id":44399,"nodeType":"Block","src":"5089:65:69","nodes":[],"statements":[{"expression":{"id":44397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44394,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44392,"src":"5099:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44395,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44389,"src":"5112:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"5112:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44398,"nodeType":"ExpressionStatement","src":"5099:48:69"}]},"documentation":{"id":44386,"nodeType":"StructuredDocumentation","src":"4906:65:69","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:69","parameters":{"id":44390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44389,"mutability":"mutable","name":"validators","nameLocation":"5034:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5013:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44388,"nodeType":"UserDefinedTypeName","pathNode":{"id":44387,"name":"ValidatorSet","nameLocations":["5013:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5013:12:69"},"referencedDeclaration":50190,"src":"5013:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:69"},"returnParameters":{"id":44393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44392,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5069:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44391,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44417,"nodeType":"FunctionDefinition","src":"5209:163:69","nodes":[],"body":{"id":44416,"nodeType":"Block","src":"5310:62:69","nodes":[],"statements":[{"expression":{"id":44414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44409,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44407,"src":"5320:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44410,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44404,"src":"5328:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5328:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5328:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44415,"nodeType":"ExpressionStatement","src":"5320:45:69"}]},"documentation":{"id":44401,"nodeType":"StructuredDocumentation","src":"5160:44:69","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:69","parameters":{"id":44405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44404,"mutability":"mutable","name":"validators","nameLocation":"5261:10:69","nodeType":"VariableDeclaration","scope":44417,"src":"5240:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44403,"nodeType":"UserDefinedTypeName","pathNode":{"id":44402,"name":"ValidatorSet","nameLocations":["5240:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5240:12:69"},"referencedDeclaration":50190,"src":"5240:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:69"},"returnParameters":{"id":44408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44407,"mutability":"mutable","name":"total","nameLocation":"5303:5:69","nodeType":"VariableDeclaration","scope":44417,"src":"5296:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44406,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44437,"nodeType":"FunctionDefinition","src":"5441:231:69","nodes":[],"body":{"id":44436,"nodeType":"Block","src":"5590:82:69","nodes":[],"statements":[{"expression":{"id":44434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44428,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44426,"src":"5600:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44429,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44421,"src":"5613:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"5613:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44432,"indexExpression":{"id":44431,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44423,"src":"5635:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"5613:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44435,"nodeType":"ExpressionStatement","src":"5600:65:69"}]},"documentation":{"id":44418,"nodeType":"StructuredDocumentation","src":"5378:58:69","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:69","parameters":{"id":44424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44421,"mutability":"mutable","name":"validators","nameLocation":"5503:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5482:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44420,"nodeType":"UserDefinedTypeName","pathNode":{"id":44419,"name":"ValidatorSet","nameLocations":["5482:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5482:12:69"},"referencedDeclaration":50190,"src":"5482:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44423,"mutability":"mutable","name":"validator","nameLocation":"5531:9:69","nodeType":"VariableDeclaration","scope":44437,"src":"5523:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44422,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:69"},"returnParameters":{"id":44427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44426,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5570:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44425,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44489,"nodeType":"FunctionDefinition","src":"5678:434:69","nodes":[],"body":{"id":44488,"nodeType":"Block","src":"5792:320:69","nodes":[],"statements":[{"assignments":[44447],"declarations":[{"constant":false,"id":44447,"mutability":"mutable","name":"size","nameLocation":"5809:4:69","nodeType":"VariableDeclaration","scope":44488,"src":"5802:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44446,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44452,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44448,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5816:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5816:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5816:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:69"},{"expression":{"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44453,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5863:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44457,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5889:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":44456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":44454,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44455,"nodeType":"ArrayTypeName","src":"5879:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":44458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44460,"nodeType":"ExpressionStatement","src":"5863:31:69"},{"body":{"id":44484,"nodeType":"Block","src":"5936:144:69","statements":[{"expression":{"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44468,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5950:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44472,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5960:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":44470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6008:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44473,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5969:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5969:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"5969:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44479,"nodeType":"ExpressionStatement","src":"5950:60:69"},{"id":44483,"nodeType":"UncheckedBlock","src":"6024:46:69","statements":[{"expression":{"id":44481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:69","subExpression":{"id":44480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6054:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44482,"nodeType":"ExpressionStatement","src":"6052:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5923:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44466,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5928:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44485,"initializationExpression":{"assignments":[44462],"declarations":[{"constant":false,"id":44462,"mutability":"mutable","name":"i","nameLocation":"5916:1:69","nodeType":"VariableDeclaration","scope":44485,"src":"5909:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44461,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44464,"initialValue":{"hexValue":"31","id":44463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:69"},"nodeType":"ForStatement","src":"5904:176:69"},{"expression":{"id":44486,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"6096:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":44445,"id":44487,"nodeType":"Return","src":"6089:16:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:69","parameters":{"id":44441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44440,"mutability":"mutable","name":"validators","nameLocation":"5729:10:69","nodeType":"VariableDeclaration","scope":44489,"src":"5708:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44439,"nodeType":"UserDefinedTypeName","pathNode":{"id":44438,"name":"ValidatorSet","nameLocations":["5708:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5708:12:69"},"referencedDeclaration":50190,"src":"5708:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:69"},"returnParameters":{"id":44445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44444,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:69","nodeType":"VariableDeclaration","scope":44489,"src":"5764:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44442,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44443,"nodeType":"ArrayTypeName","src":"5764:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44534,"nodeType":"FunctionDefinition","src":"6183:418:69","nodes":[],"body":{"id":44533,"nodeType":"Block","src":"6288:313:69","nodes":[],"statements":[{"assignments":[44499],"declarations":[{"constant":false,"id":44499,"mutability":"mutable","name":"size","nameLocation":"6305:4:69","nodeType":"VariableDeclaration","scope":44533,"src":"6298:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44498,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44500,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6312:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6312:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"6312:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:69"},{"body":{"id":44531,"nodeType":"Block","src":"6391:204:69","statements":[{"assignments":[44513],"declarations":[{"constant":false,"id":44513,"mutability":"mutable","name":"validator","nameLocation":"6413:9:69","nodeType":"VariableDeclaration","scope":44531,"src":"6405:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44512,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44519,"initialValue":{"arguments":[{"id":44517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6464:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44514,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6425:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6425:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"6425:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:69"},{"expression":{"id":44525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44520,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44496,"src":"6480:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44522,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6503:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44523,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44513,"src":"6515:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44521,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"6494:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44526,"nodeType":"ExpressionStatement","src":"6480:45:69"},{"id":44530,"nodeType":"UncheckedBlock","src":"6539:46:69","statements":[{"expression":{"id":44528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:69","subExpression":{"id":44527,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6569:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44529,"nodeType":"ExpressionStatement","src":"6567:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6378:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44510,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44499,"src":"6383:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44532,"initializationExpression":{"assignments":[44506],"declarations":[{"constant":false,"id":44506,"mutability":"mutable","name":"i","nameLocation":"6371:1:69","nodeType":"VariableDeclaration","scope":44532,"src":"6364:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44505,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44508,"initialValue":{"hexValue":"31","id":44507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:69"},"nodeType":"ForStatement","src":"6359:236:69"}]},"documentation":{"id":44490,"nodeType":"StructuredDocumentation","src":"6118:60:69","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:69","parameters":{"id":44494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44493,"mutability":"mutable","name":"validators","nameLocation":"6233:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6212:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44492,"nodeType":"UserDefinedTypeName","pathNode":{"id":44491,"name":"ValidatorSet","nameLocations":["6212:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6212:12:69"},"referencedDeclaration":50190,"src":"6212:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:69"},"returnParameters":{"id":44497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44496,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6268:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44495,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44585,"nodeType":"FunctionDefinition","src":"6690:496:69","nodes":[],"body":{"id":44584,"nodeType":"Block","src":"6794:392:69","nodes":[],"statements":[{"assignments":[44544],"declarations":[{"constant":false,"id":44544,"mutability":"mutable","name":"size","nameLocation":"6811:4:69","nodeType":"VariableDeclaration","scope":44584,"src":"6804:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44543,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44549,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44545,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6818:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6818:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"6818:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:69"},{"body":{"id":44576,"nodeType":"Block","src":"6898:219:69","statements":[{"assignments":[44558],"declarations":[{"constant":false,"id":44558,"mutability":"mutable","name":"validator","nameLocation":"6920:9:69","nodeType":"VariableDeclaration","scope":44576,"src":"6912:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44557,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44564,"initialValue":{"arguments":[{"id":44562,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6972:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44559,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6932:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6932:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":48450,"src":"6932:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":44563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:69"},{"expression":{"id":44570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44565,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"6988:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44567,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7025:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44568,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44558,"src":"7037:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44566,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44437,"src":"7002:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44571,"nodeType":"ExpressionStatement","src":"6988:59:69"},{"id":44575,"nodeType":"UncheckedBlock","src":"7061:46:69","statements":[{"expression":{"id":44573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:69","subExpression":{"id":44572,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"7091:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44574,"nodeType":"ExpressionStatement","src":"7089:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44554,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6885:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44555,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44544,"src":"6890:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44577,"initializationExpression":{"assignments":[44551],"declarations":[{"constant":false,"id":44551,"mutability":"mutable","name":"i","nameLocation":"6878:1:69","nodeType":"VariableDeclaration","scope":44577,"src":"6871:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44550,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44553,"initialValue":{"hexValue":"31","id":44552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:69"},"nodeType":"ForStatement","src":"6866:251:69"},{"expression":{"id":44582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44578,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"7126:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44580,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7168:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":44579,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"7140:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44583,"nodeType":"ExpressionStatement","src":"7126:53:69"}]},"documentation":{"id":44535,"nodeType":"StructuredDocumentation","src":"6607:78:69","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:69","parameters":{"id":44539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44538,"mutability":"mutable","name":"validators","nameLocation":"6739:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6718:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44537,"nodeType":"UserDefinedTypeName","pathNode":{"id":44536,"name":"ValidatorSet","nameLocations":["6718:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6718:12:69"},"referencedDeclaration":50190,"src":"6718:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:69"},"returnParameters":{"id":44542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44541,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6774:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44540,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44655,"nodeType":"FunctionDefinition","src":"7339:612:69","nodes":[],"body":{"id":44654,"nodeType":"Block","src":"7498:453:69","nodes":[],"statements":[{"assignments":[44599],"declarations":[{"constant":false,"id":44599,"mutability":"mutable","name":"size","nameLocation":"7516:4:69","nodeType":"VariableDeclaration","scope":44654,"src":"7508:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44602,"initialValue":{"expression":{"id":44600,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7523:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:69","memberName":"length","nodeType":"MemberAccess","src":"7523:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:69"},{"assignments":[44607],"declarations":[{"constant":false,"id":44607,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:69","nodeType":"VariableDeclaration","scope":44654,"src":"7549:33:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44605,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44606,"nodeType":"ArrayTypeName","src":"7549:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":44613,"initialValue":{"arguments":[{"id":44611,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7599:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":44608,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44609,"nodeType":"ArrayTypeName","src":"7589:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":44612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:69"},{"body":{"id":44650,"nodeType":"Block","src":"7643:269:69","statements":[{"condition":{"id":44626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:69","subExpression":{"arguments":[{"id":44621,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7680:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44622,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7692:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44624,"indexExpression":{"id":44623,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7702:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44620,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44672,"src":"7662:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":44625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44634,"nodeType":"IfStatement","src":"7657:116:69","trueBody":{"id":44633,"nodeType":"Block","src":"7707:66:69","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":44628,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7745:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44630,"indexExpression":{"id":44629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7755:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44627,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7732:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":44631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44632,"nodeType":"RevertStatement","src":"7725:33:69"}]}},{"expression":{"id":44644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44635,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7786:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":44637,"indexExpression":{"id":44636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7803:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44639,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7817:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44640,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7829:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44642,"indexExpression":{"id":44641,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7839:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44638,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"7808:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44645,"nodeType":"ExpressionStatement","src":"7786:56:69"},{"id":44649,"nodeType":"UncheckedBlock","src":"7856:46:69","statements":[{"expression":{"id":44647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:69","subExpression":{"id":44646,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7886:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44648,"nodeType":"ExpressionStatement","src":"7884:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44617,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7631:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44618,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7635:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44651,"initializationExpression":{"assignments":[44615],"declarations":[{"constant":false,"id":44615,"mutability":"mutable","name":"i","nameLocation":"7628:1:69","nodeType":"VariableDeclaration","scope":44651,"src":"7620:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44614,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44616,"nodeType":"VariableDeclarationStatement","src":"7620:9:69"},"nodeType":"ForStatement","src":"7615:297:69"},{"expression":{"id":44652,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7928:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":44597,"id":44653,"nodeType":"Return","src":"7921:23:69"}]},"documentation":{"id":44586,"nodeType":"StructuredDocumentation","src":"7193:141:69","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:69","parameters":{"id":44593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44589,"mutability":"mutable","name":"validators","nameLocation":"7404:10:69","nodeType":"VariableDeclaration","scope":44655,"src":"7383:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44588,"nodeType":"UserDefinedTypeName","pathNode":{"id":44587,"name":"ValidatorSet","nameLocations":["7383:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7383:12:69"},"referencedDeclaration":50190,"src":"7383:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44592,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:69","nodeType":"VariableDeclaration","scope":44655,"src":"7424:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44590,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44591,"nodeType":"ArrayTypeName","src":"7424:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:69"},"returnParameters":{"id":44597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44655,"src":"7480:16:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44594,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44595,"nodeType":"ArrayTypeName","src":"7480:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44672,"nodeType":"FunctionDefinition","src":"7957:167:69","nodes":[],"body":{"id":44671,"nodeType":"Block","src":"8059:65:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":44668,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44660,"src":"8107:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44665,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44658,"src":"8076:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"8076:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"8076:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44664,"id":44670,"nodeType":"Return","src":"8069:48:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:69","parameters":{"id":44661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44658,"mutability":"mutable","name":"self","nameLocation":"8005:4:69","nodeType":"VariableDeclaration","scope":44672,"src":"7984:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44657,"nodeType":"UserDefinedTypeName","pathNode":{"id":44656,"name":"ValidatorSet","nameLocations":["7984:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7984:12:69"},"referencedDeclaration":50190,"src":"7984:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44660,"mutability":"mutable","name":"validator","nameLocation":"8019:9:69","nodeType":"VariableDeclaration","scope":44672,"src":"8011:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44659,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:69"},"returnParameters":{"id":44664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44672,"src":"8053:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44662,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44693,"nodeType":"FunctionDefinition","src":"8165:176:69","nodes":[],"body":{"id":44692,"nodeType":"Block","src":"8272:69:69","nodes":[],"statements":[{"expression":{"id":44690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44683,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44676,"src":"8282:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8282:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44687,"indexExpression":{"id":44685,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44678,"src":"8304:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"8282:41:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44689,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44680,"src":"8326:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":44691,"nodeType":"ExpressionStatement","src":"8282:52:69"}]},"documentation":{"id":44673,"nodeType":"StructuredDocumentation","src":"8130:30:69","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:69","parameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44676,"mutability":"mutable","name":"validators","nameLocation":"8207:10:69","nodeType":"VariableDeclaration","scope":44693,"src":"8186:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44675,"nodeType":"UserDefinedTypeName","pathNode":{"id":44674,"name":"ValidatorSet","nameLocations":["8186:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8186:12:69"},"referencedDeclaration":50190,"src":"8186:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44678,"mutability":"mutable","name":"validator","nameLocation":"8227:9:69","nodeType":"VariableDeclaration","scope":44693,"src":"8219:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44677,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44680,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:69","nodeType":"VariableDeclaration","scope":44693,"src":"8238:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44679,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:69"},"returnParameters":{"id":44682,"nodeType":"ParameterList","parameters":[],"src":"8272:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44714,"nodeType":"FunctionDefinition","src":"8648:175:69","nodes":[],"body":{"id":44713,"nodeType":"Block","src":"8748:75:69","nodes":[],"statements":[{"expression":{"id":44711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44704,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44697,"src":"8758:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8758:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44708,"indexExpression":{"id":44706,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44699,"src":"8780:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"8758:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44710,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44701,"src":"8810:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44712,"nodeType":"ExpressionStatement","src":"8758:58:69"}]},"documentation":{"id":44694,"nodeType":"StructuredDocumentation","src":"8580:63:69","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:69","parameters":{"id":44702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44697,"mutability":"mutable","name":"validators","nameLocation":"8692:10:69","nodeType":"VariableDeclaration","scope":44714,"src":"8671:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44696,"nodeType":"UserDefinedTypeName","pathNode":{"id":44695,"name":"ValidatorSet","nameLocations":["8671:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8671:12:69"},"referencedDeclaration":50190,"src":"8671:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44699,"mutability":"mutable","name":"validator","nameLocation":"8712:9:69","nodeType":"VariableDeclaration","scope":44714,"src":"8704:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44698,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44701,"mutability":"mutable","name":"amount","nameLocation":"8731:6:69","nodeType":"VariableDeclaration","scope":44714,"src":"8723:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44700,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:69"},"returnParameters":{"id":44703,"nodeType":"ParameterList","parameters":[],"src":"8748:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44755,"nodeType":"FunctionDefinition","src":"8895:364:69","nodes":[],"body":{"id":44754,"nodeType":"Block","src":"8996:263:69","nodes":[],"statements":[{"assignments":[44726],"declarations":[{"constant":false,"id":44726,"mutability":"mutable","name":"total","nameLocation":"9014:5:69","nodeType":"VariableDeclaration","scope":44754,"src":"9006:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44725,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44732,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44727,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9022:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9022:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44730,"indexExpression":{"id":44729,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9044:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9022:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44733,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9084:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9092:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44740,"nodeType":"IfStatement","src":"9080:81:69","trueBody":{"id":44739,"nodeType":"Block","src":"9100:61:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44736,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"9121:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44738,"nodeType":"RevertStatement","src":"9114:36:69"}]}},{"expression":{"id":44743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44741,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9171:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44742,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44744,"nodeType":"ExpressionStatement","src":"9171:15:69"},{"expression":{"id":44752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44745,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9196:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9196:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44749,"indexExpression":{"id":44747,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9196:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44751,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9247:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44753,"nodeType":"ExpressionStatement","src":"9196:56:69"}]},"documentation":{"id":44715,"nodeType":"StructuredDocumentation","src":"8829:61:69","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:69","parameters":{"id":44723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44718,"mutability":"mutable","name":"validators","nameLocation":"8940:10:69","nodeType":"VariableDeclaration","scope":44755,"src":"8919:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44717,"nodeType":"UserDefinedTypeName","pathNode":{"id":44716,"name":"ValidatorSet","nameLocations":["8919:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8919:12:69"},"referencedDeclaration":50190,"src":"8919:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44720,"mutability":"mutable","name":"validator","nameLocation":"8960:9:69","nodeType":"VariableDeclaration","scope":44755,"src":"8952:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44719,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44722,"mutability":"mutable","name":"amount","nameLocation":"8979:6:69","nodeType":"VariableDeclaration","scope":44755,"src":"8971:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44721,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:69"},"returnParameters":{"id":44724,"nodeType":"ParameterList","parameters":[],"src":"8996:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44808,"nodeType":"FunctionDefinition","src":"9330:540:69","nodes":[],"body":{"id":44807,"nodeType":"Block","src":"9431:439:69","nodes":[],"statements":[{"assignments":[44767],"declarations":[{"constant":false,"id":44767,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:69","nodeType":"VariableDeclaration","scope":44807,"src":"9441:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44766,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44773,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44768,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9465:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9465:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44771,"indexExpression":{"id":44770,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9481:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9465:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:69"},{"expression":{"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44774,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9516:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9516:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44778,"indexExpression":{"id":44776,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9532:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9516:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44780,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9560:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44782,"nodeType":"ExpressionStatement","src":"9516:49:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44783,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9580:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44784,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9597:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44788,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9645:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44789,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9661:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44804,"nodeType":"Block","src":"9771:93:69","statements":[{"expression":{"arguments":[{"id":44799,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9808:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44800,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9825:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44801,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9846:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44798,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"9785:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:69","9814:9:69","9836:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44803,"nodeType":"ExpressionStatement","src":"9785:68:69"}]},"id":44805,"nodeType":"IfStatement","src":"9641:223:69","trueBody":{"id":44797,"nodeType":"Block","src":"9668:97:69","statements":[{"expression":{"arguments":[{"id":44792,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9707:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44793,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9726:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44794,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9747:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44791,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"9682:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:69","9713:11:69","9737:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44796,"nodeType":"ExpressionStatement","src":"9682:72:69"}]}},"id":44806,"nodeType":"IfStatement","src":"9576:288:69","trueBody":{"id":44787,"nodeType":"Block","src":"9604:31:69","statements":[{"functionReturnParameters":44765,"id":44786,"nodeType":"Return","src":"9618:7:69"}]}}]},"documentation":{"id":44756,"nodeType":"StructuredDocumentation","src":"9265:60:69","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:69","parameters":{"id":44764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44759,"mutability":"mutable","name":"self","nameLocation":"9382:4:69","nodeType":"VariableDeclaration","scope":44808,"src":"9361:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44758,"nodeType":"UserDefinedTypeName","pathNode":{"id":44757,"name":"ValidatorSet","nameLocations":["9361:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9361:12:69"},"referencedDeclaration":50190,"src":"9361:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44761,"mutability":"mutable","name":"validator","nameLocation":"9396:9:69","nodeType":"VariableDeclaration","scope":44808,"src":"9388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44760,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44763,"mutability":"mutable","name":"power","nameLocation":"9415:5:69","nodeType":"VariableDeclaration","scope":44808,"src":"9407:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44762,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:69"},"returnParameters":{"id":44765,"nodeType":"ParameterList","parameters":[],"src":"9431:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44850,"nodeType":"FunctionDefinition","src":"9876:404:69","nodes":[],"body":{"id":44849,"nodeType":"Block","src":"9971:309:69","nodes":[],"statements":[{"assignments":[44819],"declarations":[{"constant":false,"id":44819,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:69","nodeType":"VariableDeclaration","scope":44849,"src":"9981:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44818,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44827,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44820,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10005:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10005:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44823,"indexExpression":{"id":44822,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10021:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10005:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44825,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10054:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:69"},{"expression":{"id":44835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44828,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10070:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10070:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44832,"indexExpression":{"id":44830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10086:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10070:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44834,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10119:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44836,"nodeType":"ExpressionStatement","src":"10070:62:69"},{"expression":{"id":44841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10143:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10143:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44840,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10176:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44842,"nodeType":"ExpressionStatement","src":"10143:39:69"},{"expression":{"arguments":[{"id":44844,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10218:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10237:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44846,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10258:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44843,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"10193:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:69","10224:11:69","10248:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44848,"nodeType":"ExpressionStatement","src":"10193:80:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:69","parameters":{"id":44816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44811,"mutability":"mutable","name":"self","nameLocation":"9921:4:69","nodeType":"VariableDeclaration","scope":44850,"src":"9900:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44810,"nodeType":"UserDefinedTypeName","pathNode":{"id":44809,"name":"ValidatorSet","nameLocations":["9900:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9900:12:69"},"referencedDeclaration":50190,"src":"9900:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44813,"mutability":"mutable","name":"validator","nameLocation":"9935:9:69","nodeType":"VariableDeclaration","scope":44850,"src":"9927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44812,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44815,"mutability":"mutable","name":"amount","nameLocation":"9954:6:69","nodeType":"VariableDeclaration","scope":44850,"src":"9946:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44814,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:69"},"returnParameters":{"id":44817,"nodeType":"ParameterList","parameters":[],"src":"9971:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44916,"nodeType":"FunctionDefinition","src":"10286:616:69","nodes":[],"body":{"id":44915,"nodeType":"Block","src":"10382:520:69","nodes":[],"statements":[{"assignments":[44861],"declarations":[{"constant":false,"id":44861,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:69","nodeType":"VariableDeclaration","scope":44915,"src":"10392:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44860,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44869,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10416:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10416:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44865,"indexExpression":{"id":44864,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10432:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10416:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44867,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:69"},{"assignments":[44871],"declarations":[{"constant":false,"id":44871,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:69","nodeType":"VariableDeclaration","scope":44915,"src":"10481:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44870,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44877,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44872,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10507:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10507:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44875,"indexExpression":{"id":44874,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10523:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"10507:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44878,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10564:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44881,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44871,"src":"10586:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44901,"nodeType":"Block","src":"10672:87:69","statements":[{"expression":{"id":44899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44892,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10686:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10686:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44896,"indexExpression":{"id":44894,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10702:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10686:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44898,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10735:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44900,"nodeType":"ExpressionStatement","src":"10686:62:69"}]},"id":44902,"nodeType":"IfStatement","src":"10560:199:69","trueBody":{"id":44891,"nodeType":"Block","src":"10608:58:69","statements":[{"expression":{"id":44889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:69","subExpression":{"baseExpression":{"expression":{"id":44885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10629:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10629:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44888,"indexExpression":{"id":44887,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10645:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44890,"nodeType":"ExpressionStatement","src":"10622:33:69"}]}},{"expression":{"arguments":[{"id":44904,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10792:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44905,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10809:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44906,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10830:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44903,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"10769:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:69","10798:9:69","10820:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44908,"nodeType":"ExpressionStatement","src":"10769:76:69"},{"expression":{"id":44913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10856:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10856:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44912,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10889:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44914,"nodeType":"ExpressionStatement","src":"10856:39:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:69","parameters":{"id":44858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44853,"mutability":"mutable","name":"self","nameLocation":"10332:4:69","nodeType":"VariableDeclaration","scope":44916,"src":"10311:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44852,"nodeType":"UserDefinedTypeName","pathNode":{"id":44851,"name":"ValidatorSet","nameLocations":["10311:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"10311:12:69"},"referencedDeclaration":50190,"src":"10311:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"validator","nameLocation":"10346:9:69","nodeType":"VariableDeclaration","scope":44916,"src":"10338:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44854,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44857,"mutability":"mutable","name":"amount","nameLocation":"10365:6:69","nodeType":"VariableDeclaration","scope":44916,"src":"10357:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44856,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:69"},"returnParameters":{"id":44859,"nodeType":"ParameterList","parameters":[],"src":"10382:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45081,"nodeType":"FunctionDefinition","src":"11008:2209:69","nodes":[],"body":{"id":45080,"nodeType":"Block","src":"11110:2107:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":44930,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11155:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44927,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11124:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11124:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"11124:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44948,"nodeType":"IfStatement","src":"11120:226:69","trueBody":{"id":44947,"nodeType":"Block","src":"11169:177:69","statements":[{"expression":{"arguments":[{"id":44937,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11223:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44938,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11229:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44932,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11183:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11183:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49342,"src":"11183:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44940,"nodeType":"ExpressionStatement","src":"11183:58:69"},{"eventCall":{"arguments":[{"id":44942,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11293:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44943,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11306:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44941,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"11260:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44945,"nodeType":"EmitStatement","src":"11255:60:69"},{"functionReturnParameters":44926,"id":44946,"nodeType":"Return","src":"11329:7:69"}]}},{"assignments":[44950],"declarations":[{"constant":false,"id":44950,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:69","nodeType":"VariableDeclaration","scope":45080,"src":"11408:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44949,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44953,"initialValue":{"expression":{"id":44951,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11429:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:69","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"11429:16:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:69"},{"assignments":[44955],"declarations":[{"constant":false,"id":44955,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"11455:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44954,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44960,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44956,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11475:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"11475:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44961,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44950,"src":"11520:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44962,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44955,"src":"11534:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44980,"nodeType":"IfStatement","src":"11516:262:69","trueBody":{"id":44979,"nodeType":"Block","src":"11546:232:69","statements":[{"expression":{"arguments":[{"id":44969,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11669:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44970,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11675:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44964,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11640:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11640:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"11640:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44972,"nodeType":"ExpressionStatement","src":"11640:47:69"},{"eventCall":{"arguments":[{"id":44974,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11725:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44975,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11738:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44973,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"11706:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44977,"nodeType":"EmitStatement","src":"11701:46:69"},{"functionReturnParameters":44926,"id":44978,"nodeType":"Return","src":"11761:7:69"}]}},{"assignments":[44982,44984],"declarations":[{"constant":false,"id":44982,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"12317:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44981,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44984,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:69","nodeType":"VariableDeclaration","scope":45080,"src":"12337:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44983,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44990,"initialValue":{"arguments":[{"id":44988,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12389:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12363:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12363:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"12363:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44991,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44984,"src":"12408:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44992,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"12425:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45043,"nodeType":"IfStatement","src":"12404:452:69","trueBody":{"id":45042,"nodeType":"Block","src":"12435:421:69","statements":[{"expression":{"arguments":[{"id":44999,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44994,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12449:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12449:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"12449:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45001,"nodeType":"ExpressionStatement","src":"12449:31:69"},{"condition":{"arguments":[{"id":45005,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12531:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45002,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12499:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12499:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12499:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45017,"nodeType":"IfStatement","src":"12495:140:69","trueBody":{"id":45016,"nodeType":"Block","src":"12545:90:69","statements":[{"expression":{"arguments":[{"id":45012,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12602:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45013,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12608:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45007,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12563:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12563:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"12563:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45015,"nodeType":"ExpressionStatement","src":"12563:57:69"}]}},{"expression":{"arguments":[{"id":45023,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12678:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45024,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12684:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45018,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12649:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12649:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"12649:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45026,"nodeType":"ExpressionStatement","src":"12649:47:69"},{"expression":{"arguments":[{"id":45032,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12740:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45033,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12746:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45027,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12710:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12710:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"12710:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45035,"nodeType":"ExpressionStatement","src":"12710:47:69"},{"eventCall":{"arguments":[{"id":45037,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12801:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45038,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12813:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45036,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"12777:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45040,"nodeType":"EmitStatement","src":"12772:53:69"},{"functionReturnParameters":44926,"id":45041,"nodeType":"Return","src":"12839:7:69"}]}},{"condition":{"arguments":[{"id":45047,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12902:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45044,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12870:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12870:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12870:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45065,"nodeType":"IfStatement","src":"12866:229:69","trueBody":{"id":45064,"nodeType":"Block","src":"12916:179:69","statements":[{"expression":{"arguments":[{"id":45054,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12971:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45055,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12977:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45049,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12930:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12930:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48724,"src":"12930:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45057,"nodeType":"ExpressionStatement","src":"12930:59:69"},{"eventCall":{"arguments":[{"id":45059,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13042:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45060,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13055:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45058,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13008:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45062,"nodeType":"EmitStatement","src":"13003:61:69"},{"functionReturnParameters":44926,"id":45063,"nodeType":"Return","src":"13078:7:69"}]}},{"expression":{"arguments":[{"id":45071,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13135:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45072,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13141:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45066,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13105:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13105:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"13105:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45074,"nodeType":"ExpressionStatement","src":"13105:48:69"},{"eventCall":{"arguments":[{"id":45076,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13188:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45077,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13201:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45075,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44335,"src":"13168:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45079,"nodeType":"EmitStatement","src":"13163:47:69"}]},"documentation":{"id":44917,"nodeType":"StructuredDocumentation","src":"10908:95:69","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:69","parameters":{"id":44925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44920,"mutability":"mutable","name":"self","nameLocation":"11056:4:69","nodeType":"VariableDeclaration","scope":45081,"src":"11035:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44919,"nodeType":"UserDefinedTypeName","pathNode":{"id":44918,"name":"ValidatorSet","nameLocations":["11035:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"11035:12:69"},"referencedDeclaration":50190,"src":"11035:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44922,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:69","nodeType":"VariableDeclaration","scope":45081,"src":"11062:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44921,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44924,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:69","nodeType":"VariableDeclaration","scope":45081,"src":"11083:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44923,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:69"},"returnParameters":{"id":44926,"nodeType":"ParameterList","parameters":[],"src":"11110:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45292,"nodeType":"FunctionDefinition","src":"13320:2014:69","nodes":[],"body":{"id":45291,"nodeType":"Block","src":"13418:1916:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":45095,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13464:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45092,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13432:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13432:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"13432:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45132,"nodeType":"IfStatement","src":"13428:421:69","trueBody":{"id":45131,"nodeType":"Block","src":"13476:373:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45097,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13494:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45115,"nodeType":"IfStatement","src":"13490:185:69","trueBody":{"id":45114,"nodeType":"Block","src":"13509:166:69","statements":[{"expression":{"arguments":[{"id":45105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13566:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45106,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13572:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13527:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13527:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"13527:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45108,"nodeType":"ExpressionStatement","src":"13527:55:69"},{"eventCall":{"arguments":[{"id":45110,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13626:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45109,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44349,"src":"13605:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45112,"nodeType":"EmitStatement","src":"13600:36:69"},{"functionReturnParameters":45091,"id":45113,"nodeType":"Return","src":"13654:7:69"}]}},{"expression":{"arguments":[{"id":45121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13729:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45122,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13735:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13688:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13688:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48759,"src":"13688:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45124,"nodeType":"ExpressionStatement","src":"13688:57:69"},{"eventCall":{"arguments":[{"id":45126,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13798:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45127,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13809:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45125,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13764:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45129,"nodeType":"EmitStatement","src":"13759:59:69"},{"functionReturnParameters":45091,"id":45130,"nodeType":"Return","src":"13832:7:69"}]}},{"condition":{"id":45138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:69","subExpression":{"arguments":[{"id":45136,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13919:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13888:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"13888:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"13888:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45143,"nodeType":"IfStatement","src":"13883:106:69","trueBody":{"id":45142,"nodeType":"Block","src":"13931:58:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45139,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"13952:24:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45141,"nodeType":"RevertStatement","src":"13945:33:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45144,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"14053:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45202,"nodeType":"IfStatement","src":"14049:508:69","trueBody":{"id":45201,"nodeType":"Block","src":"14068:489:69","statements":[{"expression":{"arguments":[{"id":45152,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14120:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45153,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14126:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45147,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14082:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14082:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":49307,"src":"14082:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45155,"nodeType":"ExpressionStatement","src":"14082:54:69"},{"eventCall":{"arguments":[{"id":45157,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45156,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"14155:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45159,"nodeType":"EmitStatement","src":"14150:35:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14204:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14204:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14204:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45199,"nodeType":"IfStatement","src":"14200:326:69","trueBody":{"id":45198,"nodeType":"Block","src":"14243:283:69","statements":[{"assignments":[45167,45169],"declarations":[{"constant":false,"id":45167,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:69","nodeType":"VariableDeclaration","scope":45198,"src":"14262:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45166,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45169,"mutability":"mutable","name":"power","nameLocation":"14292:5:69","nodeType":"VariableDeclaration","scope":45198,"src":"14284:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45168,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45175,"initialValue":{"arguments":[{"id":45173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14328:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45170,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14301:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14301:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14301:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:69"},{"expression":{"arguments":[{"id":45181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14378:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45176,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14351:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14351:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14351:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45183,"nodeType":"ExpressionStatement","src":"14351:32:69"},{"expression":{"arguments":[{"id":45189,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14430:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45190,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14436:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45184,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14401:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14401:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"14401:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45192,"nodeType":"ExpressionStatement","src":"14401:48:69"},{"eventCall":{"arguments":[{"id":45194,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14491:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45195,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45169,"src":"14505:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45193,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"14472:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45197,"nodeType":"EmitStatement","src":"14467:44:69"}]}},{"functionReturnParameters":45091,"id":45200,"nodeType":"Return","src":"14540:7:69"}]}},{"expression":{"arguments":[{"id":45208,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14607:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45209,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14613:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45203,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14567:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14567:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49377,"src":"14567:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45211,"nodeType":"ExpressionStatement","src":"14567:56:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45212,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14638:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14638:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14638:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45220,"nodeType":"IfStatement","src":"14634:74:69","trueBody":{"id":45219,"nodeType":"Block","src":"14677:31:69","statements":[{"functionReturnParameters":45091,"id":45218,"nodeType":"Return","src":"14691:7:69"}]}},{"assignments":[45222,45224],"declarations":[{"constant":false,"id":45222,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:69","nodeType":"VariableDeclaration","scope":45291,"src":"14719:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45221,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45224,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:69","nodeType":"VariableDeclaration","scope":45291,"src":"14741:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45223,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45230,"initialValue":{"arguments":[{"id":45228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14793:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14767:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14767:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"14767:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:69"},{"assignments":[45232,45234],"declarations":[{"constant":false,"id":45232,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:69","nodeType":"VariableDeclaration","scope":45291,"src":"14809:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45231,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45234,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:69","nodeType":"VariableDeclaration","scope":45291,"src":"14832:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45233,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45240,"initialValue":{"arguments":[{"id":45238,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14886:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45235,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14859:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14859:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14859:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45241,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45224,"src":"14905:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45242,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45234,"src":"14922:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45285,"nodeType":"IfStatement","src":"14901:358:69","trueBody":{"id":45284,"nodeType":"Block","src":"14939:320:69","statements":[{"expression":{"arguments":[{"id":45249,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14979:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45244,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14953:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14953:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"14953:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45251,"nodeType":"ExpressionStatement","src":"14953:31:69"},{"expression":{"arguments":[{"id":45257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15025:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14998:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14998:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14998:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45259,"nodeType":"ExpressionStatement","src":"14998:32:69"},{"expression":{"arguments":[{"id":45265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15073:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45266,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15079:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15044:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"15044:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"15044:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45268,"nodeType":"ExpressionStatement","src":"15044:49:69"},{"expression":{"arguments":[{"id":45274,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15137:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45275,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15143:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45269,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15107:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"15107:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"15107:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45277,"nodeType":"ExpressionStatement","src":"15107:49:69"},{"eventCall":{"arguments":[{"id":45279,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15200:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45280,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15214:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45278,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"15176:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45282,"nodeType":"EmitStatement","src":"15171:57:69"},{"functionReturnParameters":45091,"id":45283,"nodeType":"Return","src":"15242:7:69"}]}},{"eventCall":{"arguments":[{"id":45287,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"15307:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45288,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"15318:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45286,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"15274:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45290,"nodeType":"EmitStatement","src":"15269:58:69"}]},"documentation":{"id":45082,"nodeType":"StructuredDocumentation","src":"13223:92:69","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:69","parameters":{"id":45090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45085,"mutability":"mutable","name":"self","nameLocation":"13366:4:69","nodeType":"VariableDeclaration","scope":45292,"src":"13345:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":45084,"nodeType":"UserDefinedTypeName","pathNode":{"id":45083,"name":"ValidatorSet","nameLocations":["13345:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"13345:12:69"},"referencedDeclaration":50190,"src":"13345:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":45087,"mutability":"mutable","name":"validator","nameLocation":"13380:9:69","nodeType":"VariableDeclaration","scope":45292,"src":"13372:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45086,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45089,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:69","nodeType":"VariableDeclaration","scope":45292,"src":"13391:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45088,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:69"},"returnParameters":{"id":45091,"nodeType":"ParameterList","parameters":[],"src":"13418:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":44303,"nodeType":"StructuredDocumentation","src":"3860:40:69","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[45293],"name":"LibValidatorSet","nameLocation":"3908:15:69","scope":46441,"usedErrors":[]},{"id":46176,"nodeType":"ContractDefinition","src":"15338:10785:69","nodes":[{"id":45297,"nodeType":"UsingForDirective","src":"15363:53:69","nodes":[],"global":false,"libraryName":{"id":45294,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":44302,"src":"15369:22:69"},"typeName":{"id":45296,"nodeType":"UserDefinedTypeName","pathNode":{"id":45295,"name":"StakingReleaseQueue","nameLocations":["15396:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"15396:19:69"},"referencedDeclaration":50150,"src":"15396:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":45301,"nodeType":"UsingForDirective","src":"15421:47:69","nodes":[],"global":false,"libraryName":{"id":45298,"name":"LibStakingChangeLog","nameLocations":["15427:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"15427:19:69"},"typeName":{"id":45300,"nodeType":"UserDefinedTypeName","pathNode":{"id":45299,"name":"StakingChangeLog","nameLocations":["15451:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"15451:16:69"},"referencedDeclaration":50123,"src":"15451:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45305,"nodeType":"UsingForDirective","src":"15473:39:69","nodes":[],"global":false,"libraryName":{"id":45302,"name":"LibValidatorSet","nameLocations":["15479:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"15479:15:69"},"typeName":{"id":45304,"nodeType":"UserDefinedTypeName","pathNode":{"id":45303,"name":"ValidatorSet","nameLocations":["15499:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"15499:12:69"},"referencedDeclaration":50190,"src":"15499:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45309,"nodeType":"UsingForDirective","src":"15517:25:69","nodes":[],"global":false,"libraryName":{"id":45306,"name":"LibMaxPQ","nameLocations":["15523:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"15523:8:69"},"typeName":{"id":45308,"nodeType":"UserDefinedTypeName","pathNode":{"id":45307,"name":"MaxPQ","nameLocations":["15536:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"15536:5:69"},"referencedDeclaration":48411,"src":"15536:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":45313,"nodeType":"UsingForDirective","src":"15547:25:69","nodes":[],"global":false,"libraryName":{"id":45310,"name":"LibMinPQ","nameLocations":["15553:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"15553:8:69"},"typeName":{"id":45312,"nodeType":"UserDefinedTypeName","pathNode":{"id":45311,"name":"MinPQ","nameLocations":["15566:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"15566:5:69"},"referencedDeclaration":49029,"src":"15566:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":45316,"nodeType":"UsingForDirective","src":"15577:34:69","nodes":[],"global":false,"libraryName":{"id":45314,"name":"Address","nameLocations":["15583:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"15583:7:69"},"typeName":{"id":45315,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":45319,"nodeType":"VariableDeclaration","src":"15617:57:69","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:69","scope":46176,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45317,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":45318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":45323,"nodeType":"EventDefinition","src":"15681:50:69","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:69","parameters":{"id":45322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45321,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:69","nodeType":"VariableDeclaration","scope":45323,"src":"15716:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45320,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:69"}},{"id":45329,"nodeType":"EventDefinition","src":"15736:59:69","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:69","parameters":{"id":45328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:69","nodeType":"VariableDeclaration","scope":45329,"src":"15760:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45324,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45327,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:69","nodeType":"VariableDeclaration","scope":45329,"src":"15779:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45326,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:69"}},{"id":45350,"nodeType":"FunctionDefinition","src":"15846:221:69","nodes":[],"body":{"id":45349,"nodeType":"Block","src":"15934:133:69","nodes":[],"statements":[{"assignments":[45338],"declarations":[{"constant":false,"id":45338,"mutability":"mutable","name":"s","nameLocation":"15971:1:69","nodeType":"VariableDeclaration","scope":45349,"src":"15944:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45337,"nodeType":"UserDefinedTypeName","pathNode":{"id":45336,"name":"SubnetActorStorage","nameLocations":["15944:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"15944:18:69"},"referencedDeclaration":47281,"src":"15944:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45342,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45339,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"15975:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"15975:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:69"},{"expression":{"arguments":[{"id":45346,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45331,"src":"16050:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45343,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45338,"src":"16026:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16026:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:69","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"16026:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":45347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45335,"id":45348,"nodeType":"Return","src":"16019:41:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:69","parameters":{"id":45332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45331,"mutability":"mutable","name":"validator","nameLocation":"15881:9:69","nodeType":"VariableDeclaration","scope":45350,"src":"15873:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45330,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:69"},"returnParameters":{"id":45335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45334,"mutability":"mutable","name":"power","nameLocation":"15927:5:69","nodeType":"VariableDeclaration","scope":45350,"src":"15919:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45333,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45373,"nodeType":"FunctionDefinition","src":"16136:225:69","nodes":[],"body":{"id":45372,"nodeType":"Block","src":"16211:150:69","nodes":[],"statements":[{"assignments":[45360],"declarations":[{"constant":false,"id":45360,"mutability":"mutable","name":"s","nameLocation":"16248:1:69","nodeType":"VariableDeclaration","scope":45372,"src":"16221:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45359,"nodeType":"UserDefinedTypeName","pathNode":{"id":45358,"name":"SubnetActorStorage","nameLocations":["16221:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16221:18:69"},"referencedDeclaration":47281,"src":"16221:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45364,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45361,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16252:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16252:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:69"},{"expression":{"arguments":[{"id":45369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45353,"src":"16344:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45365,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45360,"src":"16303:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16303:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"16303:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"16303:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45357,"id":45371,"nodeType":"Return","src":"16296:58:69"}]},"documentation":{"id":45351,"nodeType":"StructuredDocumentation","src":"16073:58:69","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:69","parameters":{"id":45354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45353,"mutability":"mutable","name":"validator","nameLocation":"16171:9:69","nodeType":"VariableDeclaration","scope":45373,"src":"16163:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45352,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:69"},"returnParameters":{"id":45357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45373,"src":"16205:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45355,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45396,"nodeType":"FunctionDefinition","src":"16430:227:69","nodes":[],"body":{"id":45395,"nodeType":"Block","src":"16506:151:69","nodes":[],"statements":[{"assignments":[45383],"declarations":[{"constant":false,"id":45383,"mutability":"mutable","name":"s","nameLocation":"16543:1:69","nodeType":"VariableDeclaration","scope":45395,"src":"16516:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45382,"nodeType":"UserDefinedTypeName","pathNode":{"id":45381,"name":"SubnetActorStorage","nameLocations":["16516:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16516:18:69"},"referencedDeclaration":47281,"src":"16516:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45387,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45384,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16547:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16547:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:69"},{"expression":{"arguments":[{"id":45392,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45376,"src":"16640:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45388,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45383,"src":"16598:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16598:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"16598:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"16598:41:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45380,"id":45394,"nodeType":"Return","src":"16591:59:69"}]},"documentation":{"id":45374,"nodeType":"StructuredDocumentation","src":"16367:58:69","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:69","parameters":{"id":45377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45376,"mutability":"mutable","name":"validator","nameLocation":"16466:9:69","nodeType":"VariableDeclaration","scope":45396,"src":"16458:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45375,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:69"},"returnParameters":{"id":45380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45396,"src":"16500:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45378,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45409,"nodeType":"FunctionDefinition","src":"16912:103:69","nodes":[],"body":{"id":45408,"nodeType":"Block","src":"16976:39:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":45405,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45399,"src":"17003:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45404,"name":"hasStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45434,"src":"16993:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16993:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45403,"id":45407,"nodeType":"Return","src":"16986:22:69"}]},"documentation":{"id":45397,"nodeType":"StructuredDocumentation","src":"16663:244:69","text":"@notice Checks if the provided address is a validator (active or waiting) based on its total collateral.\n @param addr The address to check for validator status.\n @return A boolean indicating whether the address is a validator."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"16921:11:69","parameters":{"id":45400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45399,"mutability":"mutable","name":"addr","nameLocation":"16941:4:69","nodeType":"VariableDeclaration","scope":45409,"src":"16933:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45398,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16932:14:69"},"returnParameters":{"id":45403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45409,"src":"16970:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45401,"name":"bool","nodeType":"ElementaryTypeName","src":"16970:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16969:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45434,"nodeType":"FunctionDefinition","src":"17217:280:69","nodes":[],"body":{"id":45433,"nodeType":"Block","src":"17284:213:69","nodes":[],"statements":[{"assignments":[45419],"declarations":[{"constant":false,"id":45419,"mutability":"mutable","name":"s","nameLocation":"17321:1:69","nodeType":"VariableDeclaration","scope":45433,"src":"17294:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45418,"nodeType":"UserDefinedTypeName","pathNode":{"id":45417,"name":"SubnetActorStorage","nameLocations":["17294:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17294:18:69"},"referencedDeclaration":47281,"src":"17294:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45423,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45420,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17325:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17347:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17325:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17325:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17294:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45424,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45419,"src":"17433:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17435:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17433:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"17433:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45428,"indexExpression":{"id":45427,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45412,"src":"17459:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17433:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17470:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"17433:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17433:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45416,"id":45432,"nodeType":"Return","src":"17426:64:69"}]},"documentation":{"id":45410,"nodeType":"StructuredDocumentation","src":"17021:191:69","text":"@notice Checks if the validator has staked before.\n @param validator The address to check for staking status.\n @return A boolean indicating whether the validator has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"17226:9:69","parameters":{"id":45413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45412,"mutability":"mutable","name":"validator","nameLocation":"17244:9:69","nodeType":"VariableDeclaration","scope":45434,"src":"17236:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45411,"name":"address","nodeType":"ElementaryTypeName","src":"17236:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17235:19:69"},"returnParameters":{"id":45416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45434,"src":"17278:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45414,"name":"bool","nodeType":"ElementaryTypeName","src":"17278:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17277:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45452,"nodeType":"FunctionDefinition","src":"17503:201:69","nodes":[],"body":{"id":45451,"nodeType":"Block","src":"17567:137:69","nodes":[],"statements":[{"assignments":[45441],"declarations":[{"constant":false,"id":45441,"mutability":"mutable","name":"s","nameLocation":"17604:1:69","nodeType":"VariableDeclaration","scope":45451,"src":"17577:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45440,"nodeType":"UserDefinedTypeName","pathNode":{"id":45439,"name":"SubnetActorStorage","nameLocations":["17577:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17577:18:69"},"referencedDeclaration":47281,"src":"17577:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45445,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45442,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17608:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17630:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17608:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17577:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45446,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45441,"src":"17659:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17659:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17674:21:69","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44417,"src":"17659:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":45449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17659:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45438,"id":45450,"nodeType":"Return","src":"17652:45:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17512:21:69","parameters":{"id":45435,"nodeType":"ParameterList","parameters":[],"src":"17533:2:69"},"returnParameters":{"id":45438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45452,"src":"17559:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45436,"name":"uint16","nodeType":"ElementaryTypeName","src":"17559:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17558:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45478,"nodeType":"FunctionDefinition","src":"17792:243:69","nodes":[],"body":{"id":45477,"nodeType":"Block","src":"17850:185:69","nodes":[],"statements":[{"assignments":[45460],"declarations":[{"constant":false,"id":45460,"mutability":"mutable","name":"s","nameLocation":"17887:1:69","nodeType":"VariableDeclaration","scope":45477,"src":"17860:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45459,"nodeType":"UserDefinedTypeName","pathNode":{"id":45458,"name":"SubnetActorStorage","nameLocations":["17860:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17860:18:69"},"referencedDeclaration":47281,"src":"17860:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45464,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45461,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17891:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17891:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17860:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45465,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17942:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17944:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17942:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17957:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"17942:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"17942:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17942:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45470,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17987:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17989:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18002:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"17987:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18019:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"17987:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":45474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17987:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17942:86:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45457,"id":45476,"nodeType":"Return","src":"17935:93:69"}]},"documentation":{"id":45453,"nodeType":"StructuredDocumentation","src":"17710:77:69","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17801:15:69","parameters":{"id":45454,"nodeType":"ParameterList","parameters":[],"src":"17816:2:69"},"returnParameters":{"id":45457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45478,"src":"17842:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45455,"name":"uint16","nodeType":"ElementaryTypeName","src":"17842:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17841:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45496,"nodeType":"FunctionDefinition","src":"18041:214:69","nodes":[],"body":{"id":45495,"nodeType":"Block","src":"18112:143:69","nodes":[],"statements":[{"assignments":[45485],"declarations":[{"constant":false,"id":45485,"mutability":"mutable","name":"s","nameLocation":"18149:1:69","nodeType":"VariableDeclaration","scope":45495,"src":"18122:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45484,"nodeType":"UserDefinedTypeName","pathNode":{"id":45483,"name":"SubnetActorStorage","nameLocations":["18122:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18122:18:69"},"referencedDeclaration":47281,"src":"18122:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45489,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45486,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18153:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18153:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18153:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18122:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45490,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45485,"src":"18204:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18204:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18204:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18204:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45482,"id":45494,"nodeType":"Return","src":"18197:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"18050:27:69","parameters":{"id":45479,"nodeType":"ParameterList","parameters":[],"src":"18077:2:69"},"returnParameters":{"id":45482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45496,"src":"18103:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45480,"name":"uint256","nodeType":"ElementaryTypeName","src":"18103:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18102:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45514,"nodeType":"FunctionDefinition","src":"18261:205:69","nodes":[],"body":{"id":45513,"nodeType":"Block","src":"18323:143:69","nodes":[],"statements":[{"assignments":[45503],"declarations":[{"constant":false,"id":45503,"mutability":"mutable","name":"s","nameLocation":"18360:1:69","nodeType":"VariableDeclaration","scope":45513,"src":"18333:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45502,"nodeType":"UserDefinedTypeName","pathNode":{"id":45501,"name":"SubnetActorStorage","nameLocations":["18333:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18333:18:69"},"referencedDeclaration":47281,"src":"18333:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45507,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45504,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18364:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18386:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18364:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18364:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18333:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45508,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45503,"src":"18415:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18417:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18415:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18430:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18415:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45500,"id":45512,"nodeType":"Return","src":"18408:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"18270:18:69","parameters":{"id":45497,"nodeType":"ParameterList","parameters":[],"src":"18288:2:69"},"returnParameters":{"id":45500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45514,"src":"18314:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45498,"name":"uint256","nodeType":"ElementaryTypeName","src":"18314:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18313:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45537,"nodeType":"FunctionDefinition","src":"18541:236:69","nodes":[],"body":{"id":45536,"nodeType":"Block","src":"18626:151:69","nodes":[],"statements":[{"assignments":[45524],"declarations":[{"constant":false,"id":45524,"mutability":"mutable","name":"s","nameLocation":"18663:1:69","nodeType":"VariableDeclaration","scope":45536,"src":"18636:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45523,"nodeType":"UserDefinedTypeName","pathNode":{"id":45522,"name":"SubnetActorStorage","nameLocations":["18636:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18636:18:69"},"referencedDeclaration":47281,"src":"18636:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45528,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45525,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18667:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18667:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18667:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18636:65:69"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45529,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45524,"src":"18718:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18720:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18718:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18733:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"18718:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45533,"indexExpression":{"id":45532,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45517,"src":"18744:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18718:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18755:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"18718:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45521,"id":45535,"nodeType":"Return","src":"18711:59:69"}]},"documentation":{"id":45515,"nodeType":"StructuredDocumentation","src":"18472:64:69","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18550:24:69","parameters":{"id":45518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45517,"mutability":"mutable","name":"validator","nameLocation":"18583:9:69","nodeType":"VariableDeclaration","scope":45537,"src":"18575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45516,"name":"address","nodeType":"ElementaryTypeName","src":"18575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18574:19:69"},"returnParameters":{"id":45521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45537,"src":"18617:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45519,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18616:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45562,"nodeType":"FunctionDefinition","src":"18937:227:69","nodes":[],"body":{"id":45561,"nodeType":"Block","src":"19018:146:69","nodes":[],"statements":[{"assignments":[45547],"declarations":[{"constant":false,"id":45547,"mutability":"mutable","name":"s","nameLocation":"19055:1:69","nodeType":"VariableDeclaration","scope":45561,"src":"19028:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45546,"nodeType":"UserDefinedTypeName","pathNode":{"id":45545,"name":"SubnetActorStorage","nameLocations":["19028:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19028:18:69"},"referencedDeclaration":47281,"src":"19028:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45551,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45548,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19059:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19081:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19059:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19059:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19028:65:69"},{"expression":{"arguments":[{"id":45557,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45540,"src":"19140:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45558,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45542,"src":"19151:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45552,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45547,"src":"19103:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19105:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19103:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19118:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"19103:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45560,"nodeType":"ExpressionStatement","src":"19103:54:69"}]},"documentation":{"id":45538,"nodeType":"StructuredDocumentation","src":"18849:83:69","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18946:28:69","parameters":{"id":45543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45540,"mutability":"mutable","name":"validator","nameLocation":"18983:9:69","nodeType":"VariableDeclaration","scope":45562,"src":"18975:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45539,"name":"address","nodeType":"ElementaryTypeName","src":"18975:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45542,"mutability":"mutable","name":"power","nameLocation":"19002:5:69","nodeType":"VariableDeclaration","scope":45562,"src":"18994:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45541,"name":"uint256","nodeType":"ElementaryTypeName","src":"18994:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18974:34:69"},"returnParameters":{"id":45544,"nodeType":"ParameterList","parameters":[],"src":"19018:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45587,"nodeType":"FunctionDefinition","src":"19251:224:69","nodes":[],"body":{"id":45586,"nodeType":"Block","src":"19336:139:69","nodes":[],"statements":[{"assignments":[45572],"declarations":[{"constant":false,"id":45572,"mutability":"mutable","name":"s","nameLocation":"19373:1:69","nodeType":"VariableDeclaration","scope":45586,"src":"19346:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45571,"nodeType":"UserDefinedTypeName","pathNode":{"id":45570,"name":"SubnetActorStorage","nameLocations":["19346:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19346:18:69"},"referencedDeclaration":47281,"src":"19346:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45576,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45573,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19377:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19399:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19377:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19377:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19346:65:69"},{"expression":{"arguments":[{"id":45582,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45565,"src":"19448:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45583,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"19459:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45577,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45572,"src":"19421:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19423:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19421:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19436:11:69","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":44693,"src":"19421:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":45584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19421:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45585,"nodeType":"ExpressionStatement","src":"19421:47:69"}]},"documentation":{"id":45563,"nodeType":"StructuredDocumentation","src":"19170:76:69","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"19260:22:69","parameters":{"id":45568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45565,"mutability":"mutable","name":"validator","nameLocation":"19291:9:69","nodeType":"VariableDeclaration","scope":45587,"src":"19283:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45564,"name":"address","nodeType":"ElementaryTypeName","src":"19283:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45567,"mutability":"mutable","name":"metadata","nameLocation":"19317:8:69","nodeType":"VariableDeclaration","scope":45587,"src":"19302:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45566,"name":"bytes","nodeType":"ElementaryTypeName","src":"19302:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19282:44:69"},"returnParameters":{"id":45569,"nodeType":"ParameterList","parameters":[],"src":"19336:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45696,"nodeType":"FunctionDefinition","src":"19573:1335:69","nodes":[],"body":{"id":45695,"nodeType":"Block","src":"19645:1263:69","nodes":[],"statements":[{"assignments":[45597],"declarations":[{"constant":false,"id":45597,"mutability":"mutable","name":"s","nameLocation":"19682:1:69","nodeType":"VariableDeclaration","scope":45695,"src":"19655:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45596,"nodeType":"UserDefinedTypeName","pathNode":{"id":45595,"name":"SubnetActorStorage","nameLocations":["19655:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19655:18:69"},"referencedDeclaration":47281,"src":"19655:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45601,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45598,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19686:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19708:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19686:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19686:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19655:65:69"},{"expression":{"arguments":[{"id":45607,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19820:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45608,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45602,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19791:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19791:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"19791:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45610,"nodeType":"ExpressionStatement","src":"19791:47:69"},{"expression":{"arguments":[{"id":45616,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19943:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45617,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19954:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45611,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19915:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19913:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19928:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"19913:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19913:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45619,"nodeType":"ExpressionStatement","src":"19913:48:69"},{"condition":{"id":45622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19976:15:69","subExpression":{"expression":{"id":45620,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19977:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:12:69","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"19977:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45694,"nodeType":"IfStatement","src":"19972:930:69","trueBody":{"id":45693,"nodeType":"Block","src":"19993:909:69","statements":[{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"alreadyValidator","nameLocation":"20118:16:69","nodeType":"VariableDeclaration","scope":45693,"src":"20113:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45623,"name":"bool","nodeType":"ElementaryTypeName","src":"20113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45625,"nodeType":"VariableDeclarationStatement","src":"20113:21:69"},{"assignments":[45627],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"length","nameLocation":"20156:6:69","nodeType":"VariableDeclaration","scope":45693,"src":"20148:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45626,"name":"uint256","nodeType":"ElementaryTypeName","src":"20148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45631,"initialValue":{"expression":{"expression":{"id":45628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20165:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20167:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20165:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20185:6:69","memberName":"length","nodeType":"MemberAccess","src":"20165:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20148:43:69"},{"body":{"id":45656,"nodeType":"Block","src":"20235:240:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":45638,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20257:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20259:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20257:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45641,"indexExpression":{"id":45640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20277:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20257:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage","typeString":"struct Validator storage ref"}},"id":45642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:4:69","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":50208,"src":"20257:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":45643,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20288:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20257:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45651,"nodeType":"IfStatement","src":"20253:137:69","trueBody":{"id":45650,"nodeType":"Block","src":"20299:91:69","statements":[{"expression":{"id":45647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45645,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20321:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20340:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20321:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45648,"nodeType":"ExpressionStatement","src":"20321:23:69"},{"id":45649,"nodeType":"Break","src":"20366:5:69"}]}},{"id":45655,"nodeType":"UncheckedBlock","src":"20407:54:69","statements":[{"expression":{"id":45653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20439:3:69","subExpression":{"id":45652,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20441:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45654,"nodeType":"ExpressionStatement","src":"20439:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45635,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20221:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45636,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45627,"src":"20225:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20221:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45657,"initializationExpression":{"assignments":[45633],"declarations":[{"constant":false,"id":45633,"mutability":"mutable","name":"i","nameLocation":"20218:1:69","nodeType":"VariableDeclaration","scope":45657,"src":"20210:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45632,"name":"uint256","nodeType":"ElementaryTypeName","src":"20210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45634,"nodeType":"VariableDeclarationStatement","src":"20210:9:69"},"nodeType":"ForStatement","src":"20205:270:69"},{"condition":{"id":45659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20492:17:69","subExpression":{"id":45658,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20493:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45692,"nodeType":"IfStatement","src":"20488:404:69","trueBody":{"id":45691,"nodeType":"Block","src":"20511:381:69","statements":[{"assignments":[45661],"declarations":[{"constant":false,"id":45661,"mutability":"mutable","name":"collateral","nameLocation":"20537:10:69","nodeType":"VariableDeclaration","scope":45691,"src":"20529:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45660,"name":"uint256","nodeType":"ElementaryTypeName","src":"20529:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45668,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":45662,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20550:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20550:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20565:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20550:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45666,"indexExpression":{"id":45665,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20576:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20550:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20587:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"20550:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20529:77:69"},{"assignments":[45671],"declarations":[{"constant":false,"id":45671,"mutability":"mutable","name":"val","nameLocation":"20641:3:69","nodeType":"VariableDeclaration","scope":45691,"src":"20624:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator"},"typeName":{"id":45670,"nodeType":"UserDefinedTypeName","pathNode":{"id":45669,"name":"Validator","nameLocations":["20624:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"20624:9:69"},"referencedDeclaration":50211,"src":"20624:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":45682,"initialValue":{"arguments":[{"id":45673,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20685:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45674,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45661,"src":"20724:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":45675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20766:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20768:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20766:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20766:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45679,"indexExpression":{"id":45678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20792:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20766:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20803:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"20766:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":45672,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"20647:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50211_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":45681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20679:4:69","20716:6:69","20756:8:69"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20647:183:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20624:206:69"},{"expression":{"arguments":[{"id":45688,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45671,"src":"20873:3:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":45683,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20848:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20848:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20868:4:69","memberName":"push","nodeType":"MemberAccess","src":"20848:24:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50211_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":45689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20848:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45690,"nodeType":"ExpressionStatement","src":"20848:29:69"}]}}]}}]},"documentation":{"id":45588,"nodeType":"StructuredDocumentation","src":"19481:87:69","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19582:18:69","parameters":{"id":45593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45590,"mutability":"mutable","name":"validator","nameLocation":"19609:9:69","nodeType":"VariableDeclaration","scope":45696,"src":"19601:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45589,"name":"address","nodeType":"ElementaryTypeName","src":"19601:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45592,"mutability":"mutable","name":"amount","nameLocation":"19628:6:69","nodeType":"VariableDeclaration","scope":45696,"src":"19620:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45591,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19600:35:69"},"returnParameters":{"id":45594,"nodeType":"ParameterList","parameters":[],"src":"19645:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45738,"nodeType":"FunctionDefinition","src":"21098:504:69","nodes":[],"body":{"id":45737,"nodeType":"Block","src":"21171:431:69","nodes":[],"statements":[{"assignments":[45706],"declarations":[{"constant":false,"id":45706,"mutability":"mutable","name":"s","nameLocation":"21208:1:69","nodeType":"VariableDeclaration","scope":45737,"src":"21181:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45705,"nodeType":"UserDefinedTypeName","pathNode":{"id":45704,"name":"SubnetActorStorage","nameLocations":["21181:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21181:18:69"},"referencedDeclaration":47281,"src":"21181:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45710,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45707,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21212:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21234:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21212:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21212:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21181:65:69"},{"expression":{"arguments":[{"id":45716,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21347:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45717,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21358:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45711,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21317:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21319:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21317:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"21317:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21317:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45719,"nodeType":"ExpressionStatement","src":"21317:48:69"},{"expression":{"arguments":[{"id":45725,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21471:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21482:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45720,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21440:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21442:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21440:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21455:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"21440:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21440:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45728,"nodeType":"ExpressionStatement","src":"21440:49:69"},{"expression":{"arguments":[{"id":45734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21588:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45731,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21567:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21559:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45729,"name":"address","nodeType":"ElementaryTypeName","src":"21559:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21578:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"21559:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45736,"nodeType":"ExpressionStatement","src":"21559:36:69"}]},"documentation":{"id":45697,"nodeType":"StructuredDocumentation","src":"20914:179:69","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"21107:19:69","parameters":{"id":45702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45699,"mutability":"mutable","name":"validator","nameLocation":"21135:9:69","nodeType":"VariableDeclaration","scope":45738,"src":"21127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45698,"name":"address","nodeType":"ElementaryTypeName","src":"21127:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45701,"mutability":"mutable","name":"amount","nameLocation":"21154:6:69","nodeType":"VariableDeclaration","scope":45738,"src":"21146:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45700,"name":"uint256","nodeType":"ElementaryTypeName","src":"21146:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21126:35:69"},"returnParameters":{"id":45703,"nodeType":"ParameterList","parameters":[],"src":"21171:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45766,"nodeType":"FunctionDefinition","src":"21732:280:69","nodes":[],"body":{"id":45765,"nodeType":"Block","src":"21828:184:69","nodes":[],"statements":[{"assignments":[45750],"declarations":[{"constant":false,"id":45750,"mutability":"mutable","name":"s","nameLocation":"21865:1:69","nodeType":"VariableDeclaration","scope":45765,"src":"21838:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45749,"nodeType":"UserDefinedTypeName","pathNode":{"id":45748,"name":"SubnetActorStorage","nameLocations":["21838:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21838:18:69"},"referencedDeclaration":47281,"src":"21838:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45754,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45751,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21869:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21891:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21869:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21838:65:69"},{"expression":{"arguments":[{"id":45760,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45741,"src":"21959:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45761,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45743,"src":"21980:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45762,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45745,"src":"21997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45755,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45750,"src":"21913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21915:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"21913:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21925:21:69","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":46528,"src":"21913:33:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21948:9:69","21970:8:69","21990:5:69"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21913:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45764,"nodeType":"ExpressionStatement","src":"21913:92:69"}]},"documentation":{"id":45739,"nodeType":"StructuredDocumentation","src":"21675:52:69","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21741:17:69","parameters":{"id":45746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45741,"mutability":"mutable","name":"validator","nameLocation":"21767:9:69","nodeType":"VariableDeclaration","scope":45766,"src":"21759:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45740,"name":"address","nodeType":"ElementaryTypeName","src":"21759:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45743,"mutability":"mutable","name":"metadata","nameLocation":"21793:8:69","nodeType":"VariableDeclaration","scope":45766,"src":"21778:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45742,"name":"bytes","nodeType":"ElementaryTypeName","src":"21778:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45745,"mutability":"mutable","name":"amount","nameLocation":"21811:6:69","nodeType":"VariableDeclaration","scope":45766,"src":"21803:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45744,"name":"uint256","nodeType":"ElementaryTypeName","src":"21803:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21758:60:69"},"returnParameters":{"id":45747,"nodeType":"ParameterList","parameters":[],"src":"21828:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45791,"nodeType":"FunctionDefinition","src":"22061:223:69","nodes":[],"body":{"id":45790,"nodeType":"Block","src":"22144:140:69","nodes":[],"statements":[{"assignments":[45776],"declarations":[{"constant":false,"id":45776,"mutability":"mutable","name":"s","nameLocation":"22181:1:69","nodeType":"VariableDeclaration","scope":45790,"src":"22154:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45775,"nodeType":"UserDefinedTypeName","pathNode":{"id":45774,"name":"SubnetActorStorage","nameLocations":["22154:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22154:18:69"},"referencedDeclaration":47281,"src":"22154:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45780,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45777,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22185:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22185:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22185:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22154:65:69"},{"expression":{"arguments":[{"id":45786,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45769,"src":"22257:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45787,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45771,"src":"22268:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45781,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"22229:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22229:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22241:15:69","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":46488,"src":"22229:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45789,"nodeType":"ExpressionStatement","src":"22229:48:69"}]},"documentation":{"id":45767,"nodeType":"StructuredDocumentation","src":"22018:38:69","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"22070:20:69","parameters":{"id":45772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45769,"mutability":"mutable","name":"validator","nameLocation":"22099:9:69","nodeType":"VariableDeclaration","scope":45791,"src":"22091:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45768,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45771,"mutability":"mutable","name":"metadata","nameLocation":"22125:8:69","nodeType":"VariableDeclaration","scope":45791,"src":"22110:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45770,"name":"bytes","nodeType":"ElementaryTypeName","src":"22110:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22090:44:69"},"returnParameters":{"id":45773,"nodeType":"ParameterList","parameters":[],"src":"22144:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45825,"nodeType":"FunctionDefinition","src":"22329:256:69","nodes":[],"body":{"id":45824,"nodeType":"Block","src":"22390:195:69","nodes":[],"statements":[{"assignments":[45801],"declarations":[{"constant":false,"id":45801,"mutability":"mutable","name":"s","nameLocation":"22427:1:69","nodeType":"VariableDeclaration","scope":45824,"src":"22400:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45800,"nodeType":"UserDefinedTypeName","pathNode":{"id":45799,"name":"SubnetActorStorage","nameLocations":["22400:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22400:18:69"},"referencedDeclaration":47281,"src":"22400:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45802,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22431:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22453:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22431:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22431:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22400:65:69"},{"expression":{"arguments":[{"id":45811,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22503:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45812,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22514:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45806,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22476:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22478:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22476:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22488:14:69","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":46602,"src":"22476:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22476:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45814,"nodeType":"ExpressionStatement","src":"22476:45:69"},{"expression":{"arguments":[{"id":45820,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22560:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45821,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22571:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45815,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22531:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22533:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22531:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22546:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"22531:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22531:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45823,"nodeType":"ExpressionStatement","src":"22531:47:69"}]},"documentation":{"id":45792,"nodeType":"StructuredDocumentation","src":"22290:34:69","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"22338:7:69","parameters":{"id":45797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45794,"mutability":"mutable","name":"validator","nameLocation":"22354:9:69","nodeType":"VariableDeclaration","scope":45825,"src":"22346:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45793,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45796,"mutability":"mutable","name":"amount","nameLocation":"22373:6:69","nodeType":"VariableDeclaration","scope":45825,"src":"22365:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45795,"name":"uint256","nodeType":"ElementaryTypeName","src":"22365:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22345:35:69"},"returnParameters":{"id":45798,"nodeType":"ParameterList","parameters":[],"src":"22390:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45859,"nodeType":"FunctionDefinition","src":"22631:259:69","nodes":[],"body":{"id":45858,"nodeType":"Block","src":"22693:197:69","nodes":[],"statements":[{"assignments":[45835],"declarations":[{"constant":false,"id":45835,"mutability":"mutable","name":"s","nameLocation":"22730:1:69","nodeType":"VariableDeclaration","scope":45858,"src":"22703:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45834,"nodeType":"UserDefinedTypeName","pathNode":{"id":45833,"name":"SubnetActorStorage","nameLocations":["22703:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22703:18:69"},"referencedDeclaration":47281,"src":"22703:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45836,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22734:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22756:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22734:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22703:65:69"},{"expression":{"arguments":[{"id":45845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22807:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45846,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45840,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22779:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22781:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22779:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22791:15:69","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":46565,"src":"22779:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22779:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45848,"nodeType":"ExpressionStatement","src":"22779:46:69"},{"expression":{"arguments":[{"id":45854,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22865:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45855,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22876:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45849,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22835:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22837:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22835:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22850:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"22835:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45857,"nodeType":"ExpressionStatement","src":"22835:48:69"}]},"documentation":{"id":45826,"nodeType":"StructuredDocumentation","src":"22591:35:69","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22640:8:69","parameters":{"id":45831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45828,"mutability":"mutable","name":"validator","nameLocation":"22657:9:69","nodeType":"VariableDeclaration","scope":45859,"src":"22649:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45827,"name":"address","nodeType":"ElementaryTypeName","src":"22649:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45830,"mutability":"mutable","name":"amount","nameLocation":"22676:6:69","nodeType":"VariableDeclaration","scope":45859,"src":"22668:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45829,"name":"uint256","nodeType":"ElementaryTypeName","src":"22668:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22648:35:69"},"returnParameters":{"id":45832,"nodeType":"ParameterList","parameters":[],"src":"22693:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45886,"nodeType":"FunctionDefinition","src":"22999:244:69","nodes":[],"body":{"id":45885,"nodeType":"Block","src":"23052:191:69","nodes":[],"statements":[{"assignments":[45867],"declarations":[{"constant":false,"id":45867,"mutability":"mutable","name":"s","nameLocation":"23089:1:69","nodeType":"VariableDeclaration","scope":45885,"src":"23062:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45866,"nodeType":"UserDefinedTypeName","pathNode":{"id":45865,"name":"SubnetActorStorage","nameLocations":["23062:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23062:18:69"},"referencedDeclaration":47281,"src":"23062:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45871,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45868,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23093:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23093:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23093:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23062:65:69"},{"assignments":[45873],"declarations":[{"constant":false,"id":45873,"mutability":"mutable","name":"amount","nameLocation":"23145:6:69","nodeType":"VariableDeclaration","scope":45885,"src":"23137:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45872,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45879,"initialValue":{"arguments":[{"id":45877,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45874,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45867,"src":"23154:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23156:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"23154:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23169:5:69","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":44301,"src":"23154:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23154:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23137:48:69"},{"eventCall":{"arguments":[{"id":45881,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45882,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45873,"src":"23229:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45880,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45329,"src":"23200:17:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45884,"nodeType":"EmitStatement","src":"23195:41:69"}]},"documentation":{"id":45860,"nodeType":"StructuredDocumentation","src":"22953:41:69","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"23008:15:69","parameters":{"id":45863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45862,"mutability":"mutable","name":"validator","nameLocation":"23032:9:69","nodeType":"VariableDeclaration","scope":45886,"src":"23024:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45861,"name":"address","nodeType":"ElementaryTypeName","src":"23024:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23023:19:69"},"returnParameters":{"id":45864,"nodeType":"ParameterList","parameters":[],"src":"23052:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45942,"nodeType":"FunctionDefinition","src":"23357:439:69","nodes":[],"body":{"id":45941,"nodeType":"Block","src":"23414:382:69","nodes":[],"statements":[{"assignments":[45894],"declarations":[{"constant":false,"id":45894,"mutability":"mutable","name":"s","nameLocation":"23451:1:69","nodeType":"VariableDeclaration","scope":45941,"src":"23424:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45893,"nodeType":"UserDefinedTypeName","pathNode":{"id":45892,"name":"SubnetActorStorage","nameLocations":["23424:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23424:18:69"},"referencedDeclaration":47281,"src":"23424:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45898,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45895,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23455:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23477:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23455:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23455:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23424:65:69"},{"assignments":[45900],"declarations":[{"constant":false,"id":45900,"mutability":"mutable","name":"amount","nameLocation":"23507:6:69","nodeType":"VariableDeclaration","scope":45941,"src":"23499:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45899,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45906,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45901,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23516:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23518:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23516:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23533:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23516:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45905,"indexExpression":{"id":45904,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23541:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23499:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45907,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23574:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23564:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45914,"nodeType":"IfStatement","src":"23560:69:69","trueBody":{"id":45913,"nodeType":"Block","src":"23577:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45910,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"23598:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23598:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45912,"nodeType":"RevertStatement","src":"23591:27:69"}]}},{"expression":{"id":45923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45915,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23639:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23641:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23639:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23656:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23639:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45921,"indexExpression":{"id":45918,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23664:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23639:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23675:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23639:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45924,"nodeType":"ExpressionStatement","src":"23639:37:69"},{"expression":{"arguments":[{"id":45930,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23737:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23695:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"23695:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45925,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"23686:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23713:23:69","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":40275,"src":"23686:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45932,"nodeType":"ExpressionStatement","src":"23686:58:69"},{"expression":{"arguments":[{"id":45938,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23782:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45935,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23763:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23755:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45933,"name":"address","nodeType":"ElementaryTypeName","src":"23755:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23772:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"23755:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45940,"nodeType":"ExpressionStatement","src":"23755:34:69"}]},"documentation":{"id":45887,"nodeType":"StructuredDocumentation","src":"23249:103:69","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"23366:21:69","parameters":{"id":45890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45889,"mutability":"mutable","name":"relayer","nameLocation":"23396:7:69","nodeType":"VariableDeclaration","scope":45942,"src":"23388:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45888,"name":"address","nodeType":"ElementaryTypeName","src":"23388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23387:17:69"},"returnParameters":{"id":45891,"nodeType":"ParameterList","parameters":[],"src":"23414:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45965,"nodeType":"FunctionDefinition","src":"23802:247:69","nodes":[],"body":{"id":45964,"nodeType":"Block","src":"23875:174:69","nodes":[],"statements":[{"assignments":[45951],"declarations":[{"constant":false,"id":45951,"mutability":"mutable","name":"s","nameLocation":"23912:1:69","nodeType":"VariableDeclaration","scope":45964,"src":"23885:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45950,"nodeType":"UserDefinedTypeName","pathNode":{"id":45949,"name":"SubnetActorStorage","nameLocations":["23885:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23885:18:69"},"referencedDeclaration":47281,"src":"23885:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45955,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45952,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23916:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23938:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23916:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23885:65:69"},{"expression":{"components":[{"expression":{"expression":{"id":45956,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"23968:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23970:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"23968:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23980:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"23968:35:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45959,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"24005:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24007:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24005:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24005:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45962,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23967:75:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45948,"id":45963,"nodeType":"Return","src":"23960:82:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23811:23:69","parameters":{"id":45943,"nodeType":"ParameterList","parameters":[],"src":"23834:2:69"},"returnParameters":{"id":45948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23859:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45944,"name":"uint64","nodeType":"ElementaryTypeName","src":"23859:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23867:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45946,"name":"uint64","nodeType":"ElementaryTypeName","src":"23867:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23858:16:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46175,"nodeType":"FunctionDefinition","src":"24177:1944:69","nodes":[],"body":{"id":46174,"nodeType":"Block","src":"24237:1884:69","nodes":[],"statements":[{"assignments":[45973],"declarations":[{"constant":false,"id":45973,"mutability":"mutable","name":"s","nameLocation":"24274:1:69","nodeType":"VariableDeclaration","scope":46174,"src":"24247:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45972,"nodeType":"UserDefinedTypeName","pathNode":{"id":45971,"name":"SubnetActorStorage","nameLocations":["24247:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"24247:18:69"},"referencedDeclaration":47281,"src":"24247:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45977,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45974,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"24278:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"24278:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24278:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24247:65:69"},{"assignments":[45980],"declarations":[{"constant":false,"id":45980,"mutability":"mutable","name":"changeSet","nameLocation":"24347:9:69","nodeType":"VariableDeclaration","scope":46174,"src":"24322:34:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45979,"nodeType":"UserDefinedTypeName","pathNode":{"id":45978,"name":"StakingChangeLog","nameLocations":["24322:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"24322:16:69"},"referencedDeclaration":50123,"src":"24322:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45983,"initialValue":{"expression":{"id":45981,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24359:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24361:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24359:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24322:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45984,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24385:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45985,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24408:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"24408:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24385:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45992,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24513:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45993,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24535:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24545:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24535:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24513:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45998,"nodeType":"IfStatement","src":"24509:93:69","trueBody":{"id":45997,"nodeType":"Block","src":"24571:31:69","statements":[{"functionReturnParameters":45970,"id":45996,"nodeType":"Return","src":"24585:7:69"}]}},"id":45999,"nodeType":"IfStatement","src":"24381:221:69","trueBody":{"id":45991,"nodeType":"Block","src":"24443:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45988,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"24464:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24464:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45990,"nodeType":"RevertStatement","src":"24457:35:69"}]}},{"assignments":[46001],"declarations":[{"constant":false,"id":46001,"mutability":"mutable","name":"start","nameLocation":"24619:5:69","nodeType":"VariableDeclaration","scope":46174,"src":"24612:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46000,"name":"uint64","nodeType":"ElementaryTypeName","src":"24612:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46004,"initialValue":{"expression":{"id":46002,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24627:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24637:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24627:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24612:49:69"},{"body":{"id":46160,"nodeType":"Block","src":"24722:1257:69","statements":[{"assignments":[46014],"declarations":[{"constant":false,"id":46014,"mutability":"mutable","name":"change","nameLocation":"24758:6:69","nodeType":"VariableDeclaration","scope":46160,"src":"24736:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46013,"nodeType":"UserDefinedTypeName","pathNode":{"id":46012,"name":"StakingChange","nameLocations":["24736:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"24736:13:69"},"referencedDeclaration":50104,"src":"24736:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46019,"initialValue":{"arguments":[{"id":46017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24787:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46015,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24767:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24777:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"24767:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24767:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24736:53:69"},{"assignments":[46021],"declarations":[{"constant":false,"id":46021,"mutability":"mutable","name":"validator","nameLocation":"24811:9:69","nodeType":"VariableDeclaration","scope":46160,"src":"24803:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46020,"name":"address","nodeType":"ElementaryTypeName","src":"24803:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46024,"initialValue":{"expression":{"id":46022,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24823:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24830:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"24823:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24803:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46025,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24858:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24865:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"24858:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46027,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"24871:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24888:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"24871:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"24858:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46043,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25006:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25013:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25006:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46045,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25019:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25036:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"25019:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25006:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46147,"nodeType":"Block","src":"25325:546:69","statements":[{"assignments":[46085],"declarations":[{"constant":false,"id":46085,"mutability":"mutable","name":"amount","nameLocation":"25351:6:69","nodeType":"VariableDeclaration","scope":46147,"src":"25343:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46084,"name":"uint256","nodeType":"ElementaryTypeName","src":"25343:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46094,"initialValue":{"arguments":[{"expression":{"id":46088,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25371:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25378:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25371:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25388:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46090,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:69","typeDescriptions":{}}}],"id":46092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25387:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46086,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25360:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25364:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25360:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25360:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25343:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46095,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25420:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25427:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25420:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46097,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25433:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25450:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"25433:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25420:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46145,"nodeType":"Block","src":"25694:163:69","statements":[{"expression":{"arguments":[{"id":46132,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25746:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46133,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25757:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46127,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25716:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25718:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25716:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25731:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"25716:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25716:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46135,"nodeType":"ExpressionStatement","src":"25716:48:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":46137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25795:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25797:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25795:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46136,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25786:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25813:8:69","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":40263,"src":"25786:35:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":46142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":46141,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25829:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25786:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":46143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46144,"nodeType":"ExpressionStatement","src":"25786:52:69"}]},"id":46146,"nodeType":"IfStatement","src":"25416:441:69","trueBody":{"id":46126,"nodeType":"Block","src":"25460:228:69","statements":[{"expression":{"arguments":[{"id":46105,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25513:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46106,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25524:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46100,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25482:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25484:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25482:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25497:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"25482:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25482:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"25482:49:69"},{"expression":{"arguments":[{"id":46114,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25582:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46115,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25593:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25553:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25555:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"25553:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":46113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25568:13:69","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":44257,"src":"25553:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":46116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46117,"nodeType":"ExpressionStatement","src":"25553:47:69"},{"expression":{"arguments":[{"id":46123,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25662:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46119,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25631:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25633:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25631:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46118,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25622:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25649:12:69","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":40269,"src":"25622:39:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46125,"nodeType":"ExpressionStatement","src":"25622:47:69"}]}}]},"id":46148,"nodeType":"IfStatement","src":"25002:869:69","trueBody":{"id":46083,"nodeType":"Block","src":"25055:264:69","statements":[{"assignments":[46049,46051],"declarations":[{"constant":false,"id":46049,"mutability":"mutable","name":"metadata","nameLocation":"25087:8:69","nodeType":"VariableDeclaration","scope":46083,"src":"25074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46048,"name":"bytes","nodeType":"ElementaryTypeName","src":"25074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46051,"mutability":"mutable","name":"power","nameLocation":"25105:5:69","nodeType":"VariableDeclaration","scope":46083,"src":"25097:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46050,"name":"uint256","nodeType":"ElementaryTypeName","src":"25097:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46062,"initialValue":{"arguments":[{"expression":{"id":46054,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25125:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25132:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25125:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25142:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46056,"name":"bytes","nodeType":"ElementaryTypeName","src":"25142:5:69","typeDescriptions":{}}},{"id":46059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25149:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46058,"name":"uint256","nodeType":"ElementaryTypeName","src":"25149:7:69","typeDescriptions":{}}}],"id":46060,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25141:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46052,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25114:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25118:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25114:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25114:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25073:85:69"},{"expression":{"id":46072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46063,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25176:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25178:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25176:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25191:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"25176:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46069,"indexExpression":{"id":46066,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25202:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25176:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25213:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"25176:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46071,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46049,"src":"25224:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"25176:56:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46073,"nodeType":"ExpressionStatement","src":"25176:56:69"},{"expression":{"arguments":[{"id":46079,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25287:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46080,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46051,"src":"25298:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46074,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25250:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25250:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25265:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"25250:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25250:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46082,"nodeType":"ExpressionStatement","src":"25250:54:69"}]}},"id":46149,"nodeType":"IfStatement","src":"24854:1017:69","trueBody":{"id":46042,"nodeType":"Block","src":"24901:95:69","statements":[{"expression":{"id":46040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46030,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24919:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24921:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"24919:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24934:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"24919:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46036,"indexExpression":{"id":46033,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"24945:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24919:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24956:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"24919:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46038,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24967:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24974:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"24967:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24919:62:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46041,"nodeType":"ExpressionStatement","src":"24919:62:69"}]}},{"expression":{"arguments":[{"id":46153,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25907:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46150,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25885:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25895:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"25885:21:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25885:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46155,"nodeType":"ExpressionStatement","src":"25885:24:69"},{"id":46159,"nodeType":"UncheckedBlock","src":"25923:46:69","statements":[{"expression":{"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25951:3:69","subExpression":{"id":46156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25953:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46158,"nodeType":"ExpressionStatement","src":"25951:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24694:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46010,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24699:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24694:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46161,"initializationExpression":{"assignments":[46006],"declarations":[{"constant":false,"id":46006,"mutability":"mutable","name":"i","nameLocation":"24683:1:69","nodeType":"VariableDeclaration","scope":46161,"src":"24676:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46005,"name":"uint64","nodeType":"ElementaryTypeName","src":"24676:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46008,"initialValue":{"id":46007,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46001,"src":"24687:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24676:16:69"},"nodeType":"ForStatement","src":"24671:1308:69"},{"expression":{"id":46168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46162,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25989:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25999:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"25989:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46165,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26026:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26048:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26026:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25989:60:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46169,"nodeType":"ExpressionStatement","src":"25989:60:69"},{"eventCall":{"arguments":[{"id":46171,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26094:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46170,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45323,"src":"26065:28:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":46172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26065:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46173,"nodeType":"EmitStatement","src":"26060:54:69"}]},"documentation":{"id":45966,"nodeType":"StructuredDocumentation","src":"24055:117:69","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24186:13:69","parameters":{"id":45969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45968,"mutability":"mutable","name":"configurationNumber","nameLocation":"24207:19:69","nodeType":"VariableDeclaration","scope":46175,"src":"24200:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45967,"name":"uint64","nodeType":"ElementaryTypeName","src":"24200:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"24199:28:69"},"returnParameters":{"id":45970,"nodeType":"ParameterList","parameters":[],"src":"24237:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46176],"name":"LibStaking","nameLocation":"15346:10:69","scope":46441,"usedErrors":[32461,32469,37450]},{"id":46440,"nodeType":"ContractDefinition","src":"26280:2695:69","nodes":[{"id":46181,"nodeType":"UsingForDirective","src":"26315:39:69","nodes":[],"global":false,"libraryName":{"id":46178,"name":"LibValidatorSet","nameLocations":["26321:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"26321:15:69"},"typeName":{"id":46180,"nodeType":"UserDefinedTypeName","pathNode":{"id":46179,"name":"ValidatorSet","nameLocations":["26341:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"26341:12:69"},"referencedDeclaration":50190,"src":"26341:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46185,"nodeType":"UsingForDirective","src":"26359:47:69","nodes":[],"global":false,"libraryName":{"id":46182,"name":"LibStakingChangeLog","nameLocations":["26365:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"26365:19:69"},"typeName":{"id":46184,"nodeType":"UserDefinedTypeName","pathNode":{"id":46183,"name":"StakingChangeLog","nameLocations":["26389:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"26389:16:69"},"referencedDeclaration":50123,"src":"26389:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":46220,"nodeType":"FunctionDefinition","src":"26412:475:69","nodes":[],"body":{"id":46219,"nodeType":"Block","src":"26525:362:69","nodes":[],"statements":[{"assignments":[46195],"declarations":[{"constant":false,"id":46195,"mutability":"mutable","name":"configurationNumber","nameLocation":"26542:19:69","nodeType":"VariableDeclaration","scope":46219,"src":"26535:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46194,"name":"uint64","nodeType":"ElementaryTypeName","src":"26535:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46209,"initialValue":{"arguments":[{"expression":{"expression":{"id":46199,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26615:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26629:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26615:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26636:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"26615:30:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":46202,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26663:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26677:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26663:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26684:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"26663:23:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":46205,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26709:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26723:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26709:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26730:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"26709:28:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":46196,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46188,"src":"26564:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26569:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"26564:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26577:12:69","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":46644,"src":"26564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26604:9:69","26659:2:69","26700:7:69"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26564:184:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26535:213:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46210,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"26763:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46211,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26786:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26800:19:69","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50109,"src":"26786:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26763:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46218,"nodeType":"IfStatement","src":"26759:122:69","trueBody":{"id":46217,"nodeType":"Block","src":"26821:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46214,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"26842:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46216,"nodeType":"RevertStatement","src":"26835:35:69"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"26421:11:69","parameters":{"id":46192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46188,"mutability":"mutable","name":"self","nameLocation":"26465:4:69","nodeType":"VariableDeclaration","scope":46220,"src":"26433:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46187,"nodeType":"UserDefinedTypeName","pathNode":{"id":46186,"name":"ParentValidatorsTracker","nameLocations":["26433:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26433:23:69"},"referencedDeclaration":50197,"src":"26433:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46191,"mutability":"mutable","name":"changeRequest","nameLocation":"26501:13:69","nodeType":"VariableDeclaration","scope":46220,"src":"26471:43:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":46190,"nodeType":"UserDefinedTypeName","pathNode":{"id":46189,"name":"StakingChangeRequest","nameLocations":["26471:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26471:20:69"},"referencedDeclaration":50110,"src":"26471:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"26432:83:69"},"returnParameters":{"id":46193,"nodeType":"ParameterList","parameters":[],"src":"26525:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46261,"nodeType":"FunctionDefinition","src":"26893:415:69","nodes":[],"body":{"id":46260,"nodeType":"Block","src":"27036:272:69","nodes":[],"statements":[{"assignments":[46231],"declarations":[{"constant":false,"id":46231,"mutability":"mutable","name":"length","nameLocation":"27054:6:69","nodeType":"VariableDeclaration","scope":46260,"src":"27046:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46230,"name":"uint256","nodeType":"ElementaryTypeName","src":"27046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46234,"initialValue":{"expression":{"id":46232,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27063:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27078:6:69","memberName":"length","nodeType":"MemberAccess","src":"27063:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27046:38:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46235,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27098:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27108:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27098:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46240,"nodeType":"IfStatement","src":"27094:48:69","trueBody":{"id":46239,"nodeType":"Block","src":"27111:31:69","statements":[{"functionReturnParameters":46229,"id":46238,"nodeType":"Return","src":"27125:7:69"}]}},{"body":{"id":46258,"nodeType":"Block","src":"27182:120:69","statements":[{"expression":{"arguments":[{"id":46248,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46223,"src":"27208:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":46249,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27214:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46251,"indexExpression":{"id":46250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27229:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27214:17:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":46247,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27196:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":46252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27196:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46253,"nodeType":"ExpressionStatement","src":"27196:36:69"},{"id":46257,"nodeType":"UncheckedBlock","src":"27246:46:69","statements":[{"expression":{"id":46255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27274:3:69","subExpression":{"id":46254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27276:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46256,"nodeType":"ExpressionStatement","src":"27274:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27168:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46245,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27172:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27168:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46259,"initializationExpression":{"assignments":[46242],"declarations":[{"constant":false,"id":46242,"mutability":"mutable","name":"i","nameLocation":"27165:1:69","nodeType":"VariableDeclaration","scope":46259,"src":"27157:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46241,"name":"uint256","nodeType":"ElementaryTypeName","src":"27157:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46243,"nodeType":"VariableDeclarationStatement","src":"27157:9:69"},"nodeType":"ForStatement","src":"27152:150:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26902:16:69","parameters":{"id":46228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46223,"mutability":"mutable","name":"self","nameLocation":"26960:4:69","nodeType":"VariableDeclaration","scope":46261,"src":"26928:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46222,"nodeType":"UserDefinedTypeName","pathNode":{"id":46221,"name":"ParentValidatorsTracker","nameLocations":["26928:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26928:23:69"},"referencedDeclaration":50197,"src":"26928:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46227,"mutability":"mutable","name":"changeRequests","nameLocation":"27006:14:69","nodeType":"VariableDeclaration","scope":46261,"src":"26974:46:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":46225,"nodeType":"UserDefinedTypeName","pathNode":{"id":46224,"name":"StakingChangeRequest","nameLocations":["26974:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26974:20:69"},"referencedDeclaration":50110,"src":"26974:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":46226,"nodeType":"ArrayTypeName","src":"26974:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26918:108:69"},"returnParameters":{"id":46229,"nodeType":"ParameterList","parameters":[],"src":"27036:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46439,"nodeType":"FunctionDefinition","src":"27379:1594:69","nodes":[],"body":{"id":46438,"nodeType":"Block","src":"27477:1496:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46270,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27491:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":46271,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27514:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27514:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27527:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"27514:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27491:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46279,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27622:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":46280,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27644:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27649:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27644:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27657:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27644:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27622:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46286,"nodeType":"IfStatement","src":"27618:96:69","trueBody":{"id":46285,"nodeType":"Block","src":"27683:31:69","statements":[{"functionReturnParameters":46269,"id":46284,"nodeType":"Return","src":"27697:7:69"}]}},"id":46287,"nodeType":"IfStatement","src":"27487:227:69","trueBody":{"id":46278,"nodeType":"Block","src":"27552:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46275,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"27573:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27573:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46277,"nodeType":"RevertStatement","src":"27566:35:69"}]}},{"assignments":[46289],"declarations":[{"constant":false,"id":46289,"mutability":"mutable","name":"start","nameLocation":"27731:5:69","nodeType":"VariableDeclaration","scope":46438,"src":"27724:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46288,"name":"uint64","nodeType":"ElementaryTypeName","src":"27724:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46293,"initialValue":{"expression":{"expression":{"id":46290,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27739:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27744:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27739:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27752:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27739:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27724:52:69"},{"body":{"id":46426,"nodeType":"Block","src":"27838:1056:69","statements":[{"assignments":[46303],"declarations":[{"constant":false,"id":46303,"mutability":"mutable","name":"change","nameLocation":"27874:6:69","nodeType":"VariableDeclaration","scope":46426,"src":"27852:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46302,"nodeType":"UserDefinedTypeName","pathNode":{"id":46301,"name":"StakingChange","nameLocations":["27852:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"27852:13:69"},"referencedDeclaration":50104,"src":"27852:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46309,"initialValue":{"arguments":[{"id":46307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27906:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46304,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27883:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27888:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27883:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27896:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"27883:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27883:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27852:56:69"},{"assignments":[46311],"declarations":[{"constant":false,"id":46311,"mutability":"mutable","name":"validator","nameLocation":"27930:9:69","nodeType":"VariableDeclaration","scope":46426,"src":"27922:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46310,"name":"address","nodeType":"ElementaryTypeName","src":"27922:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46314,"initialValue":{"expression":{"id":46312,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27942:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27949:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"27942:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27922:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46315,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27977:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27984:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"27977:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46317,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"27990:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28007:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"27990:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"27977:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46333,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28126:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28133:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28126:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46335,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28139:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28156:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"28139:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28126:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46411,"nodeType":"Block","src":"28447:336:69","statements":[{"assignments":[46375],"declarations":[{"constant":false,"id":46375,"mutability":"mutable","name":"amount","nameLocation":"28473:6:69","nodeType":"VariableDeclaration","scope":46411,"src":"28465:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46374,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46384,"initialValue":{"arguments":[{"expression":{"id":46378,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28493:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28500:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28493:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28510:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46380,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:69","typeDescriptions":{}}}],"id":46382,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28509:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28482:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28486:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28482:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28482:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46385,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28542:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28542:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46387,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28555:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28572:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"28555:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28542:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46409,"nodeType":"Block","src":"28679:90:69","statements":[{"expression":{"arguments":[{"id":46405,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28732:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46406,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28743:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46400,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28701:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28706:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28701:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28717:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"28701:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28701:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46408,"nodeType":"ExpressionStatement","src":"28701:49:69"}]},"id":46410,"nodeType":"IfStatement","src":"28538:231:69","trueBody":{"id":46399,"nodeType":"Block","src":"28582:91:69","statements":[{"expression":{"arguments":[{"id":46395,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28636:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46396,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28647:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46390,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28604:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28609:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28604:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28620:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"28604:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:50:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46398,"nodeType":"ExpressionStatement","src":"28604:50:69"}]}}]},"id":46412,"nodeType":"IfStatement","src":"28122:661:69","trueBody":{"id":46373,"nodeType":"Block","src":"28175:266:69","statements":[{"assignments":[46339,46341],"declarations":[{"constant":false,"id":46339,"mutability":"mutable","name":"metadata","nameLocation":"28207:8:69","nodeType":"VariableDeclaration","scope":46373,"src":"28194:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46338,"name":"bytes","nodeType":"ElementaryTypeName","src":"28194:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46341,"mutability":"mutable","name":"power","nameLocation":"28225:5:69","nodeType":"VariableDeclaration","scope":46373,"src":"28217:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46340,"name":"uint256","nodeType":"ElementaryTypeName","src":"28217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46352,"initialValue":{"arguments":[{"expression":{"id":46344,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28245:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28252:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28245:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28262:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46346,"name":"bytes","nodeType":"ElementaryTypeName","src":"28262:5:69","typeDescriptions":{}}},{"id":46349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28269:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46348,"name":"uint256","nodeType":"ElementaryTypeName","src":"28269:7:69","typeDescriptions":{}}}],"id":46350,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28261:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28234:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28238:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28234:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28234:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28193:85:69"},{"expression":{"id":46362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28296:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28301:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28296:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28296:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46359,"indexExpression":{"id":46356,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28323:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28296:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28334:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28296:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46361,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46339,"src":"28345:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28296:57:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46363,"nodeType":"ExpressionStatement","src":"28296:57:69"},{"expression":{"arguments":[{"id":46369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28409:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46370,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46341,"src":"28420:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46364,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28371:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28376:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28371:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28387:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"28371:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28371:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46372,"nodeType":"ExpressionStatement","src":"28371:55:69"}]}},"id":46413,"nodeType":"IfStatement","src":"27973:810:69","trueBody":{"id":46332,"nodeType":"Block","src":"28020:96:69","statements":[{"expression":{"id":46330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46320,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28038:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28043:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28038:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28054:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28038:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46326,"indexExpression":{"id":46323,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28065:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28038:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28076:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28038:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46328,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28087:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28094:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28087:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"28038:63:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46331,"nodeType":"ExpressionStatement","src":"28038:63:69"}]}},{"expression":{"arguments":[{"id":46419,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28822:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46414,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28797:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28802:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28797:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28810:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"28797:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28797:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46421,"nodeType":"ExpressionStatement","src":"28797:27:69"},{"id":46425,"nodeType":"UncheckedBlock","src":"28838:46:69","statements":[{"expression":{"id":46423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28866:3:69","subExpression":{"id":46422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28868:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46424,"nodeType":"ExpressionStatement","src":"28866:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27810:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46299,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27815:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27810:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46427,"initializationExpression":{"assignments":[46295],"declarations":[{"constant":false,"id":46295,"mutability":"mutable","name":"i","nameLocation":"27799:1:69","nodeType":"VariableDeclaration","scope":46427,"src":"27792:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46294,"name":"uint64","nodeType":"ElementaryTypeName","src":"27792:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46297,"initialValue":{"id":46296,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46289,"src":"27803:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27792:16:69"},"nodeType":"ForStatement","src":"27787:1107:69"},{"expression":{"id":46436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46428,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28903:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28903:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28916:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"28903:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46433,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"28943:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28965:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28943:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28903:63:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46437,"nodeType":"ExpressionStatement","src":"28903:63:69"}]},"documentation":{"id":46262,"nodeType":"StructuredDocumentation","src":"27314:60:69","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27388:13:69","parameters":{"id":46268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46265,"mutability":"mutable","name":"self","nameLocation":"27434:4:69","nodeType":"VariableDeclaration","scope":46439,"src":"27402:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46264,"nodeType":"UserDefinedTypeName","pathNode":{"id":46263,"name":"ParentValidatorsTracker","nameLocations":["27402:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"27402:23:69"},"referencedDeclaration":50197,"src":"27402:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46267,"mutability":"mutable","name":"configurationNumber","nameLocation":"27447:19:69","nodeType":"VariableDeclaration","scope":46439,"src":"27440:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46266,"name":"uint64","nodeType":"ElementaryTypeName","src":"27440:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"27401:66:69"},"returnParameters":{"id":46269,"nodeType":"ParameterList","parameters":[],"src":"27477:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":46177,"nodeType":"StructuredDocumentation","src":"26125:155:69","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[46440],"name":"LibValidatorTracking","nameLocation":"26288:20:69","scope":46441,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file diff --git a/.out/LibStaking.sol/LibValidatorSet.json b/.out/LibStaking.sol/LibValidatorSet.json index 143603293..856ec51c7 100644 --- a/.out/LibStaking.sol/LibValidatorSet.json +++ b/.out/LibStaking.sol/LibValidatorSet.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"ActiveValidatorCollateralUpdated","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"newPower","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActiveValidatorLeft","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ActiveValidatorReplaced","inputs":[{"name":"oldValidator","type":"address","indexed":false,"internalType":"address"},{"name":"newValidator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NewActiveValidator","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"power","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NewWaitingValidator","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"power","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WaitingValidatorCollateralUpdated","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"newPower","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WaitingValidatorLeft","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220df33efcc578cb56ab80145adfc3b8e759f14724a1f5e9a3e7927af6fc07a2a9c64736f6c63430008130033","sourceMap":"3900:11436:64:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220df33efcc578cb56ab80145adfc3b8e759f14724a1f5e9a3e7927af6fc07a2a9c64736f6c63430008130033","sourceMap":"3900:11436:64:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPower\",\"type\":\"uint256\"}],\"name\":\"ActiveValidatorCollateralUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"ActiveValidatorLeft\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldValidator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newValidator\",\"type\":\"address\"}],\"name\":\"ActiveValidatorReplaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"}],\"name\":\"NewActiveValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"}],\"name\":\"NewWaitingValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPower\",\"type\":\"uint256\"}],\"name\":\"WaitingValidatorCollateralUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"WaitingValidatorLeft\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The util library for `ValidatorSet`\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibValidatorSet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"newPower","type":"uint256","indexed":false}],"type":"event","name":"ActiveValidatorCollateralUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false}],"type":"event","name":"ActiveValidatorLeft","anonymous":false},{"inputs":[{"internalType":"address","name":"oldValidator","type":"address","indexed":false},{"internalType":"address","name":"newValidator","type":"address","indexed":false}],"type":"event","name":"ActiveValidatorReplaced","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"power","type":"uint256","indexed":false}],"type":"event","name":"NewActiveValidator","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"power","type":"uint256","indexed":false}],"type":"event","name":"NewWaitingValidator","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"newPower","type":"uint256","indexed":false}],"type":"event","name":"WaitingValidatorCollateralUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false}],"type":"event","name":"WaitingValidatorLeft","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibValidatorSet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":45729,"exportedSymbols":{"Address":[32409],"AddressShouldBeValidator":[36936],"AddressStakingReleases":[48623],"CannotConfirmFutureChanges":[36940],"IGateway":[39904],"InvalidConfigurationNumber":[36986],"LibAddressStakingReleases":[43484],"LibMaxPQ":[47494],"LibMinPQ":[48113],"LibStaking":[45464],"LibStakingChangeLog":[45966],"LibStakingReleaseQueue":[43603],"LibSubnetActorStorage":[46096],"LibValidatorSet":[44594],"LibValidatorTracking":[45728],"MaxPQ":[46889],"MinPQ":[47507],"NoCollateralToWithdraw":[37016],"NoRewardToWithdraw":[37018],"NotValidator":[37058],"ParentValidatorsTracker":[48680],"PermissionMode":[48648],"StakingChange":[48587],"StakingChangeLog":[48606],"StakingChangeRequest":[48593],"StakingOperation":[48579],"StakingRelease":[48613],"StakingReleaseQueue":[48633],"SubnetActorStorage":[46085],"Validator":[48694],"ValidatorSet":[48673],"WithdrawExceedingCollateral":[37078]},"nodeType":"SourceUnit","src":"46:28434:64","nodes":[{"id":43316,"nodeType":"PragmaDirective","src":"46:23:64","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43318,"nodeType":"ImportDirective","src":"71:52:64","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":39905,"symbolAliases":[{"foreign":{"id":43317,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"79:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43321,"nodeType":"ImportDirective","src":"124:86:64","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":46140,"symbolAliases":[{"foreign":{"id":43319,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"132:21:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43320,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"155:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43324,"nodeType":"ImportDirective","src":"211:56:64","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":47495,"symbolAliases":[{"foreign":{"id":43322,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47494,"src":"219:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43323,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46889,"src":"229:5:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43327,"nodeType":"ImportDirective","src":"268:56:64","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":48114,"symbolAliases":[{"foreign":{"id":43325,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48113,"src":"276:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43326,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47507,"src":"286:5:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43329,"nodeType":"ImportDirective","src":"325:62:64","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":45967,"symbolAliases":[{"foreign":{"id":43328,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45966,"src":"333:19:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43341,"nodeType":"ImportDirective","src":"388:237:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":43330,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"396:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43331,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48633,"src":"412:19:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43332,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48606,"src":"433:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43333,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48587,"src":"451:13:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43334,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48593,"src":"466:20:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43335,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"488:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43336,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48613,"src":"506:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43337,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48673,"src":"522:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43338,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48623,"src":"536:22:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43339,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48680,"src":"560:23:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43340,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"585:9:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43349,"nodeType":"ImportDirective","src":"626:208:64","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":43342,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37018,"src":"634:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43343,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37078,"src":"654:27:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43344,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37058,"src":"683:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43345,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36940,"src":"697:26:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43346,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37016,"src":"725:22:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43347,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36936,"src":"749:24:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43348,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36986,"src":"775:26:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43351,"nodeType":"ImportDirective","src":"835:65:64","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":32410,"symbolAliases":[{"foreign":{"id":43350,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"843:7:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43484,"nodeType":"ContractDefinition","src":"902:1635:64","nodes":[{"id":43390,"nodeType":"FunctionDefinition","src":"1118:261:64","nodes":[],"body":{"id":43389,"nodeType":"Block","src":"1209:170:64","nodes":[],"statements":[{"assignments":[43362],"declarations":[{"constant":false,"id":43362,"mutability":"mutable","name":"length","nameLocation":"1226:6:64","nodeType":"VariableDeclaration","scope":43389,"src":"1219:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43361,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43365,"initialValue":{"expression":{"id":43363,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1235:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1235:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:64"},{"assignments":[43367],"declarations":[{"constant":false,"id":43367,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:64","nodeType":"VariableDeclaration","scope":43389,"src":"1256:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43366,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43372,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43368,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1273:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:64","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"1273:13:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":43370,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43362,"src":"1289:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:64"},{"expression":{"id":43379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":43373,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1306:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48622,"src":"1306:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":43377,"indexExpression":{"id":43375,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43367,"src":"1320:7:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43378,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43358,"src":"1331:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"id":43380,"nodeType":"ExpressionStatement","src":"1306:32:64"},{"expression":{"id":43387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1348:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1348:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43384,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43362,"src":"1362:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":43385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43388,"nodeType":"ExpressionStatement","src":"1348:24:64"}]},"documentation":{"id":43352,"nodeType":"StructuredDocumentation","src":"942:171:64","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:64","parameters":{"id":43359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43355,"mutability":"mutable","name":"self","nameLocation":"1163:4:64","nodeType":"VariableDeclaration","scope":43390,"src":"1132:35:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":43354,"nodeType":"UserDefinedTypeName","pathNode":{"id":43353,"name":"AddressStakingReleases","nameLocations":["1132:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"1132:22:64"},"referencedDeclaration":48623,"src":"1132:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":43358,"mutability":"mutable","name":"release","nameLocation":"1191:7:64","nodeType":"VariableDeclaration","scope":43390,"src":"1169:29:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":43357,"nodeType":"UserDefinedTypeName","pathNode":{"id":43356,"name":"StakingRelease","nameLocations":["1169:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"1169:14:64"},"referencedDeclaration":48613,"src":"1169:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:64"},"returnParameters":{"id":43360,"nodeType":"ParameterList","parameters":[],"src":"1209:0:64"},"scope":43484,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43483,"nodeType":"FunctionDefinition","src":"1637:898:64","nodes":[],"body":{"id":43482,"nodeType":"Block","src":"1726:809:64","nodes":[],"statements":[{"assignments":[43402],"declarations":[{"constant":false,"id":43402,"mutability":"mutable","name":"length","nameLocation":"1743:6:64","nodeType":"VariableDeclaration","scope":43482,"src":"1736:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43401,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43405,"initialValue":{"expression":{"id":43403,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"1752:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1752:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43406,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"1777:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1777:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43414,"nodeType":"IfStatement","src":"1773:78:64","trueBody":{"id":43413,"nodeType":"Block","src":"1795:56:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43410,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37016,"src":"1816:22:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43412,"nodeType":"RevertStatement","src":"1809:31:64"}]}},{"assignments":[43416],"declarations":[{"constant":false,"id":43416,"mutability":"mutable","name":"i","nameLocation":"1868:1:64","nodeType":"VariableDeclaration","scope":43482,"src":"1861:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43415,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43419,"initialValue":{"expression":{"id":43417,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"1872:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:64","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"1872:13:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:64"},{"assignments":[43421],"declarations":[{"constant":false,"id":43421,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:64","nodeType":"VariableDeclaration","scope":43482,"src":"1895:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43420,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43423,"initialValue":{"id":43422,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43402,"src":"1914:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:64"},{"assignments":[43425],"declarations":[{"constant":false,"id":43425,"mutability":"mutable","name":"amount","nameLocation":"1938:6:64","nodeType":"VariableDeclaration","scope":43482,"src":"1930:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43424,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43426,"nodeType":"VariableDeclarationStatement","src":"1930:14:64"},{"body":{"id":43464,"nodeType":"Block","src":"1973:458:64","statements":[{"assignments":[43432],"declarations":[{"constant":false,"id":43432,"mutability":"mutable","name":"release","nameLocation":"2009:7:64","nodeType":"VariableDeclaration","scope":43464,"src":"1987:29:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":43431,"nodeType":"UserDefinedTypeName","pathNode":{"id":43430,"name":"StakingRelease","nameLocations":["1987:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"1987:14:64"},"referencedDeclaration":48613,"src":"1987:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":43437,"initialValue":{"baseExpression":{"expression":{"id":43433,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2019:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48622,"src":"2019:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":43436,"indexExpression":{"id":43435,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2033:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43438,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43432,"src":"2184:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"id":43439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:64","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":48609,"src":"2184:17:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":43440,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:64","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:64","memberName":"number","nodeType":"MemberAccess","src":"2204:12:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43445,"nodeType":"IfStatement","src":"2180:76:64","trueBody":{"id":43444,"nodeType":"Block","src":"2218:38:64","statements":[{"id":43443,"nodeType":"Break","src":"2236:5:64"}]}},{"expression":{"id":43449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43446,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43425,"src":"2270:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":43447,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43432,"src":"2280:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"id":43448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:64","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":48612,"src":"2280:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43450,"nodeType":"ExpressionStatement","src":"2270:24:64"},{"expression":{"id":43455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:64","subExpression":{"baseExpression":{"expression":{"id":43451,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2315:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48622,"src":"2315:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":43454,"indexExpression":{"id":43453,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2329:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43456,"nodeType":"ExpressionStatement","src":"2308:23:64"},{"id":43463,"nodeType":"UncheckedBlock","src":"2346:75:64","statements":[{"expression":{"id":43458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:64","subExpression":{"id":43457,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2376:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43459,"nodeType":"ExpressionStatement","src":"2374:3:64"},{"expression":{"id":43461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:64","subExpression":{"id":43460,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2397:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43462,"nodeType":"ExpressionStatement","src":"2395:11:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43427,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"1961:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43428,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43402,"src":"1965:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43465,"nodeType":"WhileStatement","src":"1954:477:64"},{"expression":{"id":43470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43466,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2441:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:64","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"2441:13:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2457:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43471,"nodeType":"ExpressionStatement","src":"2441:17:64"},{"expression":{"id":43476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2468:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"2468:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43475,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2482:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43477,"nodeType":"ExpressionStatement","src":"2468:23:64"},{"expression":{"components":[{"id":43478,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43425,"src":"2510:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43479,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2518:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":43480,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":43400,"id":43481,"nodeType":"Return","src":"2502:26:64"}]},"documentation":{"id":43391,"nodeType":"StructuredDocumentation","src":"1385:247:64","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:64","parameters":{"id":43395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43394,"mutability":"mutable","name":"self","nameLocation":"1685:4:64","nodeType":"VariableDeclaration","scope":43483,"src":"1654:35:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":43393,"nodeType":"UserDefinedTypeName","pathNode":{"id":43392,"name":"AddressStakingReleases","nameLocations":["1654:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"1654:22:64"},"referencedDeclaration":48623,"src":"1654:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:64"},"returnParameters":{"id":43400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43483,"src":"1709:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43396,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43483,"src":"1718:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43398,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:64"},"scope":43484,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[43484],"name":"LibAddressStakingReleases","nameLocation":"910:25:64","scope":45729,"usedErrors":[]},{"id":43603,"nodeType":"ContractDefinition","src":"2586:1272:64","nodes":[{"id":43488,"nodeType":"UsingForDirective","src":"2623:34:64","nodes":[],"global":false,"libraryName":{"id":43486,"name":"Address","nameLocations":["2629:7:64"],"nodeType":"IdentifierPath","referencedDeclaration":32409,"src":"2629:7:64"},"typeName":{"id":43487,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":43492,"nodeType":"UsingForDirective","src":"2662:59:64","nodes":[],"global":false,"libraryName":{"id":43489,"name":"LibAddressStakingReleases","nameLocations":["2668:25:64"],"nodeType":"IdentifierPath","referencedDeclaration":43484,"src":"2668:25:64"},"typeName":{"id":43491,"nodeType":"UserDefinedTypeName","pathNode":{"id":43490,"name":"AddressStakingReleases","nameLocations":["2698:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"2698:22:64"},"referencedDeclaration":48623,"src":"2698:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":43500,"nodeType":"EventDefinition","src":"2727:84:64","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:64","parameters":{"id":43499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43494,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:64","nodeType":"VariableDeclaration","scope":43500,"src":"2754:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43493,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43496,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:64","nodeType":"VariableDeclaration","scope":43500,"src":"2773:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43495,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43498,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:64","nodeType":"VariableDeclaration","scope":43500,"src":"2789:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43497,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:64"}},{"id":43515,"nodeType":"FunctionDefinition","src":"2817:130:64","nodes":[],"body":{"id":43514,"nodeType":"Block","src":"2901:46:64","nodes":[],"statements":[{"expression":{"id":43512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43508,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43503,"src":"2911:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:64","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":48626,"src":"2911:20:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43511,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43505,"src":"2934:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43513,"nodeType":"ExpressionStatement","src":"2911:29:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:64","parameters":{"id":43506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43503,"mutability":"mutable","name":"self","nameLocation":"2870:4:64","nodeType":"VariableDeclaration","scope":43515,"src":"2842:32:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":43502,"nodeType":"UserDefinedTypeName","pathNode":{"id":43501,"name":"StakingReleaseQueue","nameLocations":["2842:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"2842:19:64"},"referencedDeclaration":48633,"src":"2842:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":43505,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:64","nodeType":"VariableDeclaration","scope":43515,"src":"2876:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43504,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:64"},"returnParameters":{"id":43507,"nodeType":"ParameterList","parameters":[],"src":"2901:0:64"},"scope":43603,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43558,"nodeType":"FunctionDefinition","src":"3016:419:64","nodes":[],"body":{"id":43557,"nodeType":"Block","src":"3117:318:64","nodes":[],"statements":[{"assignments":[43527],"declarations":[{"constant":false,"id":43527,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:64","nodeType":"VariableDeclaration","scope":43557,"src":"3127:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43526,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43533,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43528,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:64","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:64","memberName":"number","nodeType":"MemberAccess","src":"3147:12:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":43530,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43519,"src":"3162:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:64","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":48626,"src":"3162:20:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:64"},{"assignments":[43536],"declarations":[{"constant":false,"id":43536,"mutability":"mutable","name":"release","nameLocation":"3214:7:64","nodeType":"VariableDeclaration","scope":43557,"src":"3192:29:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":43535,"nodeType":"UserDefinedTypeName","pathNode":{"id":43534,"name":"StakingRelease","nameLocations":["3192:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"3192:14:64"},"referencedDeclaration":48613,"src":"3192:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":43541,"initialValue":{"arguments":[{"id":43538,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43527,"src":"3251:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43539,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43523,"src":"3270:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43537,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48613,"src":"3224:14:64","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$48613_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":43540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:64","3262:6:64"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:64"},{"expression":{"arguments":[{"id":43548,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43536,"src":"3319:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":43542,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43519,"src":"3289:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48632,"src":"3289:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":43546,"indexExpression":{"id":43544,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"3303:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":43547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:64","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":43390,"src":"3289:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$_t_struct$_StakingRelease_$48613_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":43549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43550,"nodeType":"ExpressionStatement","src":"3289:38:64"},{"eventCall":{"arguments":[{"id":43552,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"3376:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43553,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43523,"src":"3395:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43554,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43527,"src":"3417:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43551,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43500,"src":"3343:20:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":43555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:64","3387:6:64","3403:12:64"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43556,"nodeType":"EmitStatement","src":"3338:90:64"}]},"documentation":{"id":43516,"nodeType":"StructuredDocumentation","src":"2953:58:64","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:64","parameters":{"id":43524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43519,"mutability":"mutable","name":"self","nameLocation":"3067:4:64","nodeType":"VariableDeclaration","scope":43558,"src":"3039:32:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":43518,"nodeType":"UserDefinedTypeName","pathNode":{"id":43517,"name":"StakingReleaseQueue","nameLocations":["3039:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"3039:19:64"},"referencedDeclaration":48633,"src":"3039:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":43521,"mutability":"mutable","name":"validator","nameLocation":"3081:9:64","nodeType":"VariableDeclaration","scope":43558,"src":"3073:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43520,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43523,"mutability":"mutable","name":"amount","nameLocation":"3100:6:64","nodeType":"VariableDeclaration","scope":43558,"src":"3092:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43522,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:64"},"returnParameters":{"id":43525,"nodeType":"ParameterList","parameters":[],"src":"3117:0:64"},"scope":43603,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43602,"nodeType":"FunctionDefinition","src":"3516:340:64","nodes":[],"body":{"id":43601,"nodeType":"Block","src":"3611:245:64","nodes":[],"statements":[{"assignments":[43570,43572],"declarations":[{"constant":false,"id":43570,"mutability":"mutable","name":"amount","nameLocation":"3630:6:64","nodeType":"VariableDeclaration","scope":43601,"src":"3622:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43569,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43572,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:64","nodeType":"VariableDeclaration","scope":43601,"src":"3638:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43571,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43579,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":43573,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43562,"src":"3658:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48632,"src":"3658:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":43576,"indexExpression":{"id":43575,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43564,"src":"3672:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":43577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:64","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":43483,"src":"3658:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":43578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43580,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43572,"src":"3707:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43590,"nodeType":"IfStatement","src":"3703:76:64","trueBody":{"id":43589,"nodeType":"Block","src":"3723:56:64","statements":[{"expression":{"id":43587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:64","subExpression":{"baseExpression":{"expression":{"id":43583,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43562,"src":"3744:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48632,"src":"3744:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":43586,"indexExpression":{"id":43585,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43564,"src":"3758:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43588,"nodeType":"ExpressionStatement","src":"3737:31:64"}]}},{"expression":{"arguments":[{"id":43596,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43570,"src":"3818:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43593,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43564,"src":"3797:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":43591,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:64","stateMutability":"payable","typeDescriptions":{}}},"id":43594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":43595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:64","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"3789:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":43597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43598,"nodeType":"ExpressionStatement","src":"3789:36:64"},{"expression":{"id":43599,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43570,"src":"3843:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":43568,"id":43600,"nodeType":"Return","src":"3836:13:64"}]},"documentation":{"id":43559,"nodeType":"StructuredDocumentation","src":"3441:70:64","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:64","parameters":{"id":43565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43562,"mutability":"mutable","name":"self","nameLocation":"3559:4:64","nodeType":"VariableDeclaration","scope":43602,"src":"3531:32:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":43561,"nodeType":"UserDefinedTypeName","pathNode":{"id":43560,"name":"StakingReleaseQueue","nameLocations":["3531:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"3531:19:64"},"referencedDeclaration":48633,"src":"3531:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":43564,"mutability":"mutable","name":"validator","nameLocation":"3573:9:64","nodeType":"VariableDeclaration","scope":43602,"src":"3565:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43563,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:64"},"returnParameters":{"id":43568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43567,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43602,"src":"3602:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43566,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:64"},"scope":43603,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":43485,"nodeType":"StructuredDocumentation","src":"2539:47:64","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[43603],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:64","scope":45729,"usedErrors":[]},{"id":44594,"nodeType":"ContractDefinition","src":"3900:11436:64","nodes":[{"id":43608,"nodeType":"UsingForDirective","src":"3930:25:64","nodes":[],"global":false,"libraryName":{"id":43605,"name":"LibMinPQ","nameLocations":["3936:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":48113,"src":"3936:8:64"},"typeName":{"id":43607,"nodeType":"UserDefinedTypeName","pathNode":{"id":43606,"name":"MinPQ","nameLocations":["3949:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"3949:5:64"},"referencedDeclaration":47507,"src":"3949:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}}},{"id":43612,"nodeType":"UsingForDirective","src":"3960:25:64","nodes":[],"global":false,"libraryName":{"id":43609,"name":"LibMaxPQ","nameLocations":["3966:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":47494,"src":"3966:8:64"},"typeName":{"id":43611,"nodeType":"UserDefinedTypeName","pathNode":{"id":43610,"name":"MaxPQ","nameLocations":["3979:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"3979:5:64"},"referencedDeclaration":46889,"src":"3979:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}}},{"id":43618,"nodeType":"EventDefinition","src":"3991:76:64","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:64","parameters":{"id":43617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43614,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:64","nodeType":"VariableDeclaration","scope":43618,"src":"4030:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43613,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43616,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:64","nodeType":"VariableDeclaration","scope":43618,"src":"4049:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43615,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:64"}},{"id":43624,"nodeType":"EventDefinition","src":"4072:77:64","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:64","parameters":{"id":43623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43620,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:64","nodeType":"VariableDeclaration","scope":43624,"src":"4112:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43619,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43622,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:64","nodeType":"VariableDeclaration","scope":43624,"src":"4131:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43621,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:64"}},{"id":43630,"nodeType":"EventDefinition","src":"4154:59:64","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:64","parameters":{"id":43629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43626,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:64","nodeType":"VariableDeclaration","scope":43630,"src":"4179:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43625,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43628,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:64","nodeType":"VariableDeclaration","scope":43630,"src":"4198:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43627,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:64"}},{"id":43636,"nodeType":"EventDefinition","src":"4218:60:64","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:64","parameters":{"id":43635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43632,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:64","nodeType":"VariableDeclaration","scope":43636,"src":"4244:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43631,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43634,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:64","nodeType":"VariableDeclaration","scope":43636,"src":"4263:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43633,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:64"}},{"id":43642,"nodeType":"EventDefinition","src":"4283:74:64","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:64","parameters":{"id":43641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43638,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:64","nodeType":"VariableDeclaration","scope":43642,"src":"4313:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43637,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43640,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:64","nodeType":"VariableDeclaration","scope":43642,"src":"4335:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43639,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:64"}},{"id":43646,"nodeType":"EventDefinition","src":"4362:45:64","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:64","parameters":{"id":43645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43644,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:64","nodeType":"VariableDeclaration","scope":43646,"src":"4388:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43643,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:64"}},{"id":43650,"nodeType":"EventDefinition","src":"4412:46:64","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:64","parameters":{"id":43649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43648,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:64","nodeType":"VariableDeclaration","scope":43650,"src":"4439:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43647,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:64"}},{"id":43686,"nodeType":"FunctionDefinition","src":"4525:375:64","nodes":[],"body":{"id":43685,"nodeType":"Block","src":"4654:246:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"id":43665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43661,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43654,"src":"4668:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:64","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":48652,"src":"4668:25:64","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":43663,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"4697:14:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":43664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:64","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":48646,"src":"4697:24:64","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"src":"4668:53:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43683,"nodeType":"Block","src":"4809:85:64","statements":[{"expression":{"id":43681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43675,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43659,"src":"4823:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":43676,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43654,"src":"4831:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"4831:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43679,"indexExpression":{"id":43678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43656,"src":"4853:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"4831:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43682,"nodeType":"ExpressionStatement","src":"4823:60:64"}]},"id":43684,"nodeType":"IfStatement","src":"4664:230:64","trueBody":{"id":43674,"nodeType":"Block","src":"4723:80:64","statements":[{"expression":{"id":43672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43666,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43659,"src":"4737:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":43667,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43654,"src":"4745:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"4745:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43670,"indexExpression":{"id":43669,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43656,"src":"4767:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:64","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":48636,"src":"4745:47:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43673,"nodeType":"ExpressionStatement","src":"4737:55:64"}]}}]},"documentation":{"id":43651,"nodeType":"StructuredDocumentation","src":"4464:56:64","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:64","parameters":{"id":43657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43654,"mutability":"mutable","name":"validators","nameLocation":"4573:10:64","nodeType":"VariableDeclaration","scope":43686,"src":"4552:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43653,"nodeType":"UserDefinedTypeName","pathNode":{"id":43652,"name":"ValidatorSet","nameLocations":["4552:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"4552:12:64"},"referencedDeclaration":48673,"src":"4552:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43656,"mutability":"mutable","name":"validator","nameLocation":"4601:9:64","nodeType":"VariableDeclaration","scope":43686,"src":"4593:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43655,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:64"},"returnParameters":{"id":43660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43659,"mutability":"mutable","name":"power","nameLocation":"4647:5:64","nodeType":"VariableDeclaration","scope":43686,"src":"4639:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43658,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43701,"nodeType":"FunctionDefinition","src":"4976:178:64","nodes":[],"body":{"id":43700,"nodeType":"Block","src":"5089:65:64","nodes":[],"statements":[{"expression":{"id":43698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43695,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43693,"src":"5099:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":43696,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43690,"src":"5112:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:64","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48658,"src":"5112:35:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43699,"nodeType":"ExpressionStatement","src":"5099:48:64"}]},"documentation":{"id":43687,"nodeType":"StructuredDocumentation","src":"4906:65:64","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:64","parameters":{"id":43691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43690,"mutability":"mutable","name":"validators","nameLocation":"5034:10:64","nodeType":"VariableDeclaration","scope":43701,"src":"5013:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43689,"nodeType":"UserDefinedTypeName","pathNode":{"id":43688,"name":"ValidatorSet","nameLocations":["5013:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5013:12:64"},"referencedDeclaration":48673,"src":"5013:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:64"},"returnParameters":{"id":43694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43693,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:64","nodeType":"VariableDeclaration","scope":43701,"src":"5069:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43692,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43718,"nodeType":"FunctionDefinition","src":"5209:163:64","nodes":[],"body":{"id":43717,"nodeType":"Block","src":"5310:62:64","nodes":[],"statements":[{"expression":{"id":43715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43710,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43708,"src":"5320:5:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43711,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43705,"src":"5328:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"5328:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"5328:35:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":43714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43716,"nodeType":"ExpressionStatement","src":"5320:45:64"}]},"documentation":{"id":43702,"nodeType":"StructuredDocumentation","src":"5160:44:64","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:64","parameters":{"id":43706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43705,"mutability":"mutable","name":"validators","nameLocation":"5261:10:64","nodeType":"VariableDeclaration","scope":43718,"src":"5240:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43704,"nodeType":"UserDefinedTypeName","pathNode":{"id":43703,"name":"ValidatorSet","nameLocations":["5240:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5240:12:64"},"referencedDeclaration":48673,"src":"5240:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:64"},"returnParameters":{"id":43709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43708,"mutability":"mutable","name":"total","nameLocation":"5303:5:64","nodeType":"VariableDeclaration","scope":43718,"src":"5296:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43707,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43738,"nodeType":"FunctionDefinition","src":"5441:231:64","nodes":[],"body":{"id":43737,"nodeType":"Block","src":"5590:82:64","nodes":[],"statements":[{"expression":{"id":43735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43729,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43727,"src":"5600:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":43730,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43722,"src":"5613:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"5613:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43733,"indexExpression":{"id":43732,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43724,"src":"5635:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"5613:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43736,"nodeType":"ExpressionStatement","src":"5600:65:64"}]},"documentation":{"id":43719,"nodeType":"StructuredDocumentation","src":"5378:58:64","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:64","parameters":{"id":43725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43722,"mutability":"mutable","name":"validators","nameLocation":"5503:10:64","nodeType":"VariableDeclaration","scope":43738,"src":"5482:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43721,"nodeType":"UserDefinedTypeName","pathNode":{"id":43720,"name":"ValidatorSet","nameLocations":["5482:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5482:12:64"},"referencedDeclaration":48673,"src":"5482:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43724,"mutability":"mutable","name":"validator","nameLocation":"5531:9:64","nodeType":"VariableDeclaration","scope":43738,"src":"5523:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43723,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:64"},"returnParameters":{"id":43728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43727,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:64","nodeType":"VariableDeclaration","scope":43738,"src":"5570:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43726,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43790,"nodeType":"FunctionDefinition","src":"5678:434:64","nodes":[],"body":{"id":43789,"nodeType":"Block","src":"5792:320:64","nodes":[],"statements":[{"assignments":[43748],"declarations":[{"constant":false,"id":43748,"mutability":"mutable","name":"size","nameLocation":"5809:4:64","nodeType":"VariableDeclaration","scope":43789,"src":"5802:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43747,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43753,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43749,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43741,"src":"5816:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"5816:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"5816:35:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":43752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:64"},{"expression":{"id":43760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43754,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43745,"src":"5863:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43758,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43748,"src":"5889:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":43757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:64","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":43755,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43756,"nodeType":"ArrayTypeName","src":"5879:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":43759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43761,"nodeType":"ExpressionStatement","src":"5863:31:64"},{"body":{"id":43785,"nodeType":"Block","src":"5936:144:64","statements":[{"expression":{"id":43779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":43769,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43745,"src":"5950:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43773,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43770,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"5960:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":43771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43777,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6008:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":43774,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43741,"src":"5969:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"5969:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:64","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":47546,"src":"5969:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":43778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43780,"nodeType":"ExpressionStatement","src":"5950:60:64"},{"id":43784,"nodeType":"UncheckedBlock","src":"6024:46:64","statements":[{"expression":{"id":43782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:64","subExpression":{"id":43781,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6054:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43783,"nodeType":"ExpressionStatement","src":"6052:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43766,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"5923:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43767,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43748,"src":"5928:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43786,"initializationExpression":{"assignments":[43763],"declarations":[{"constant":false,"id":43763,"mutability":"mutable","name":"i","nameLocation":"5916:1:64","nodeType":"VariableDeclaration","scope":43786,"src":"5909:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43762,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43765,"initialValue":{"hexValue":"31","id":43764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:64"},"nodeType":"ForStatement","src":"5904:176:64"},{"expression":{"id":43787,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43745,"src":"6096:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":43746,"id":43788,"nodeType":"Return","src":"6089:16:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:64","parameters":{"id":43742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43741,"mutability":"mutable","name":"validators","nameLocation":"5729:10:64","nodeType":"VariableDeclaration","scope":43790,"src":"5708:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43740,"nodeType":"UserDefinedTypeName","pathNode":{"id":43739,"name":"ValidatorSet","nameLocations":["5708:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5708:12:64"},"referencedDeclaration":48673,"src":"5708:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:64"},"returnParameters":{"id":43746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43745,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:64","nodeType":"VariableDeclaration","scope":43790,"src":"5764:26:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43743,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43744,"nodeType":"ArrayTypeName","src":"5764:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43835,"nodeType":"FunctionDefinition","src":"6183:418:64","nodes":[],"body":{"id":43834,"nodeType":"Block","src":"6288:313:64","nodes":[],"statements":[{"assignments":[43800],"declarations":[{"constant":false,"id":43800,"mutability":"mutable","name":"size","nameLocation":"6305:4:64","nodeType":"VariableDeclaration","scope":43834,"src":"6298:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43799,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43801,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6312:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"6312:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"6312:35:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":43804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:64"},{"body":{"id":43832,"nodeType":"Block","src":"6391:204:64","statements":[{"assignments":[43814],"declarations":[{"constant":false,"id":43814,"mutability":"mutable","name":"validator","nameLocation":"6413:9:64","nodeType":"VariableDeclaration","scope":43832,"src":"6405:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43813,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":43820,"initialValue":{"arguments":[{"id":43818,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"6464:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":43815,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6425:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"6425:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:64","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":47546,"src":"6425:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":43819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:64"},{"expression":{"id":43826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43821,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43797,"src":"6480:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":43823,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6503:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":43824,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43814,"src":"6515:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43822,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43686,"src":"6494:8:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":43825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43827,"nodeType":"ExpressionStatement","src":"6480:45:64"},{"id":43831,"nodeType":"UncheckedBlock","src":"6539:46:64","statements":[{"expression":{"id":43829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:64","subExpression":{"id":43828,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"6569:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43830,"nodeType":"ExpressionStatement","src":"6567:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43810,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"6378:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43811,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43800,"src":"6383:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43833,"initializationExpression":{"assignments":[43807],"declarations":[{"constant":false,"id":43807,"mutability":"mutable","name":"i","nameLocation":"6371:1:64","nodeType":"VariableDeclaration","scope":43833,"src":"6364:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43806,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43809,"initialValue":{"hexValue":"31","id":43808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:64"},"nodeType":"ForStatement","src":"6359:236:64"}]},"documentation":{"id":43791,"nodeType":"StructuredDocumentation","src":"6118:60:64","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:64","parameters":{"id":43795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43794,"mutability":"mutable","name":"validators","nameLocation":"6233:10:64","nodeType":"VariableDeclaration","scope":43835,"src":"6212:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43793,"nodeType":"UserDefinedTypeName","pathNode":{"id":43792,"name":"ValidatorSet","nameLocations":["6212:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"6212:12:64"},"referencedDeclaration":48673,"src":"6212:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:64"},"returnParameters":{"id":43798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43797,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:64","nodeType":"VariableDeclaration","scope":43835,"src":"6268:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43796,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43886,"nodeType":"FunctionDefinition","src":"6690:496:64","nodes":[],"body":{"id":43885,"nodeType":"Block","src":"6794:392:64","nodes":[],"statements":[{"assignments":[43845],"declarations":[{"constant":false,"id":43845,"mutability":"mutable","name":"size","nameLocation":"6811:4:64","nodeType":"VariableDeclaration","scope":43885,"src":"6804:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43844,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43850,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43846,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"6818:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43847,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"6818:28:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":43848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"6818:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":43849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:64"},{"body":{"id":43877,"nodeType":"Block","src":"6898:219:64","statements":[{"assignments":[43859],"declarations":[{"constant":false,"id":43859,"mutability":"mutable","name":"validator","nameLocation":"6920:9:64","nodeType":"VariableDeclaration","scope":43877,"src":"6912:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43858,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":43865,"initialValue":{"arguments":[{"id":43863,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43852,"src":"6972:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":43860,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"6932:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"6932:28:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":43862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:64","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":46928,"src":"6932:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":43864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:64"},{"expression":{"id":43871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43866,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"6988:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":43868,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"7025:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":43869,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43859,"src":"7037:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43867,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43738,"src":"7002:22:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":43870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43872,"nodeType":"ExpressionStatement","src":"6988:59:64"},{"id":43876,"nodeType":"UncheckedBlock","src":"7061:46:64","statements":[{"expression":{"id":43874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:64","subExpression":{"id":43873,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43852,"src":"7091:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43875,"nodeType":"ExpressionStatement","src":"7089:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43855,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43852,"src":"6885:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43856,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43845,"src":"6890:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43878,"initializationExpression":{"assignments":[43852],"declarations":[{"constant":false,"id":43852,"mutability":"mutable","name":"i","nameLocation":"6878:1:64","nodeType":"VariableDeclaration","scope":43878,"src":"6871:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43851,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43854,"initialValue":{"hexValue":"31","id":43853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:64"},"nodeType":"ForStatement","src":"6866:251:64"},{"expression":{"id":43883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43879,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"7126:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":43881,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"7168:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":43880,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43701,"src":"7140:27:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":43882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43884,"nodeType":"ExpressionStatement","src":"7126:53:64"}]},"documentation":{"id":43836,"nodeType":"StructuredDocumentation","src":"6607:78:64","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:64","parameters":{"id":43840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43839,"mutability":"mutable","name":"validators","nameLocation":"6739:10:64","nodeType":"VariableDeclaration","scope":43886,"src":"6718:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43838,"nodeType":"UserDefinedTypeName","pathNode":{"id":43837,"name":"ValidatorSet","nameLocations":["6718:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"6718:12:64"},"referencedDeclaration":48673,"src":"6718:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:64"},"returnParameters":{"id":43843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43842,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:64","nodeType":"VariableDeclaration","scope":43886,"src":"6774:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43841,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43956,"nodeType":"FunctionDefinition","src":"7339:612:64","nodes":[],"body":{"id":43955,"nodeType":"Block","src":"7498:453:64","nodes":[],"statements":[{"assignments":[43900],"declarations":[{"constant":false,"id":43900,"mutability":"mutable","name":"size","nameLocation":"7516:4:64","nodeType":"VariableDeclaration","scope":43955,"src":"7508:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43899,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43903,"initialValue":{"expression":{"id":43901,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7523:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:64","memberName":"length","nodeType":"MemberAccess","src":"7523:16:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:64"},{"assignments":[43908],"declarations":[{"constant":false,"id":43908,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:64","nodeType":"VariableDeclaration","scope":43955,"src":"7549:33:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":43906,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43907,"nodeType":"ArrayTypeName","src":"7549:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":43914,"initialValue":{"arguments":[{"id":43912,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43900,"src":"7599:4:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:64","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":43909,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43910,"nodeType":"ArrayTypeName","src":"7589:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":43913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:64"},{"body":{"id":43951,"nodeType":"Block","src":"7643:269:64","statements":[{"condition":{"id":43927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:64","subExpression":{"arguments":[{"id":43922,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43890,"src":"7680:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":43923,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7692:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43925,"indexExpression":{"id":43924,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7702:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43921,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43973,"src":"7662:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":43926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43935,"nodeType":"IfStatement","src":"7657:116:64","trueBody":{"id":43934,"nodeType":"Block","src":"7707:66:64","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":43929,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7745:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43931,"indexExpression":{"id":43930,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7755:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43928,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37058,"src":"7732:12:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":43932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43933,"nodeType":"RevertStatement","src":"7725:33:64"}]}},{"expression":{"id":43945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":43936,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43908,"src":"7786:16:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":43938,"indexExpression":{"id":43937,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7803:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43940,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43890,"src":"7817:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":43941,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7829:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43943,"indexExpression":{"id":43942,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7839:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43939,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43686,"src":"7808:8:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":43944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43946,"nodeType":"ExpressionStatement","src":"7786:56:64"},{"id":43950,"nodeType":"UncheckedBlock","src":"7856:46:64","statements":[{"expression":{"id":43948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:64","subExpression":{"id":43947,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7886:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43949,"nodeType":"ExpressionStatement","src":"7884:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43918,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7631:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43919,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43900,"src":"7635:4:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43952,"initializationExpression":{"assignments":[43916],"declarations":[{"constant":false,"id":43916,"mutability":"mutable","name":"i","nameLocation":"7628:1:64","nodeType":"VariableDeclaration","scope":43952,"src":"7620:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43915,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43917,"nodeType":"VariableDeclarationStatement","src":"7620:9:64"},"nodeType":"ForStatement","src":"7615:297:64"},{"expression":{"id":43953,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43908,"src":"7928:16:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":43898,"id":43954,"nodeType":"Return","src":"7921:23:64"}]},"documentation":{"id":43887,"nodeType":"StructuredDocumentation","src":"7193:141:64","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:64","parameters":{"id":43894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43890,"mutability":"mutable","name":"validators","nameLocation":"7404:10:64","nodeType":"VariableDeclaration","scope":43956,"src":"7383:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43889,"nodeType":"UserDefinedTypeName","pathNode":{"id":43888,"name":"ValidatorSet","nameLocations":["7383:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"7383:12:64"},"referencedDeclaration":48673,"src":"7383:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43893,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:64","nodeType":"VariableDeclaration","scope":43956,"src":"7424:26:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43891,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43892,"nodeType":"ArrayTypeName","src":"7424:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:64"},"returnParameters":{"id":43898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43956,"src":"7480:16:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":43895,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43896,"nodeType":"ArrayTypeName","src":"7480:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43973,"nodeType":"FunctionDefinition","src":"7957:167:64","nodes":[],"body":{"id":43972,"nodeType":"Block","src":"8059:65:64","nodes":[],"statements":[{"expression":{"arguments":[{"id":43969,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43961,"src":"8107:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":43966,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43959,"src":"8076:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"8076:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"8076:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":43970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":43965,"id":43971,"nodeType":"Return","src":"8069:48:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:64","parameters":{"id":43962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43959,"mutability":"mutable","name":"self","nameLocation":"8005:4:64","nodeType":"VariableDeclaration","scope":43973,"src":"7984:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43958,"nodeType":"UserDefinedTypeName","pathNode":{"id":43957,"name":"ValidatorSet","nameLocations":["7984:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"7984:12:64"},"referencedDeclaration":48673,"src":"7984:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43961,"mutability":"mutable","name":"validator","nameLocation":"8019:9:64","nodeType":"VariableDeclaration","scope":43973,"src":"8011:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43960,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:64"},"returnParameters":{"id":43965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43973,"src":"8053:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43963,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43994,"nodeType":"FunctionDefinition","src":"8165:176:64","nodes":[],"body":{"id":43993,"nodeType":"Block","src":"8272:69:64","nodes":[],"statements":[{"expression":{"id":43991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":43984,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43977,"src":"8282:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"8282:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43988,"indexExpression":{"id":43986,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43979,"src":"8304:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"8282:41:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43990,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43981,"src":"8326:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":43992,"nodeType":"ExpressionStatement","src":"8282:52:64"}]},"documentation":{"id":43974,"nodeType":"StructuredDocumentation","src":"8130:30:64","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:64","parameters":{"id":43982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43977,"mutability":"mutable","name":"validators","nameLocation":"8207:10:64","nodeType":"VariableDeclaration","scope":43994,"src":"8186:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43976,"nodeType":"UserDefinedTypeName","pathNode":{"id":43975,"name":"ValidatorSet","nameLocations":["8186:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"8186:12:64"},"referencedDeclaration":48673,"src":"8186:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43979,"mutability":"mutable","name":"validator","nameLocation":"8227:9:64","nodeType":"VariableDeclaration","scope":43994,"src":"8219:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43978,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43981,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:64","nodeType":"VariableDeclaration","scope":43994,"src":"8238:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":43980,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:64"},"returnParameters":{"id":43983,"nodeType":"ParameterList","parameters":[],"src":"8272:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44015,"nodeType":"FunctionDefinition","src":"8648:175:64","nodes":[],"body":{"id":44014,"nodeType":"Block","src":"8748:75:64","nodes":[],"statements":[{"expression":{"id":44012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44005,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43998,"src":"8758:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"8758:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44009,"indexExpression":{"id":44007,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44000,"src":"8780:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"8758:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44011,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44002,"src":"8810:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44013,"nodeType":"ExpressionStatement","src":"8758:58:64"}]},"documentation":{"id":43995,"nodeType":"StructuredDocumentation","src":"8580:63:64","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:64","parameters":{"id":44003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43998,"mutability":"mutable","name":"validators","nameLocation":"8692:10:64","nodeType":"VariableDeclaration","scope":44015,"src":"8671:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43997,"nodeType":"UserDefinedTypeName","pathNode":{"id":43996,"name":"ValidatorSet","nameLocations":["8671:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"8671:12:64"},"referencedDeclaration":48673,"src":"8671:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44000,"mutability":"mutable","name":"validator","nameLocation":"8712:9:64","nodeType":"VariableDeclaration","scope":44015,"src":"8704:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43999,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44002,"mutability":"mutable","name":"amount","nameLocation":"8731:6:64","nodeType":"VariableDeclaration","scope":44015,"src":"8723:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44001,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:64"},"returnParameters":{"id":44004,"nodeType":"ParameterList","parameters":[],"src":"8748:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44056,"nodeType":"FunctionDefinition","src":"8895:364:64","nodes":[],"body":{"id":44055,"nodeType":"Block","src":"8996:263:64","nodes":[],"statements":[{"assignments":[44027],"declarations":[{"constant":false,"id":44027,"mutability":"mutable","name":"total","nameLocation":"9014:5:64","nodeType":"VariableDeclaration","scope":44055,"src":"9006:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44026,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44033,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44028,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44019,"src":"9022:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9022:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44031,"indexExpression":{"id":44030,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44021,"src":"9044:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"9022:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44034,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"9084:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44035,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44023,"src":"9092:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44041,"nodeType":"IfStatement","src":"9080:81:64","trueBody":{"id":44040,"nodeType":"Block","src":"9100:61:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44037,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37078,"src":"9121:27:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44039,"nodeType":"RevertStatement","src":"9114:36:64"}]}},{"expression":{"id":44044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44042,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"9171:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44043,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44023,"src":"9180:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44045,"nodeType":"ExpressionStatement","src":"9171:15:64"},{"expression":{"id":44053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44046,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44019,"src":"9196:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9196:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44050,"indexExpression":{"id":44048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44021,"src":"9218:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"9196:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44052,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"9247:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44054,"nodeType":"ExpressionStatement","src":"9196:56:64"}]},"documentation":{"id":44016,"nodeType":"StructuredDocumentation","src":"8829:61:64","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:64","parameters":{"id":44024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44019,"mutability":"mutable","name":"validators","nameLocation":"8940:10:64","nodeType":"VariableDeclaration","scope":44056,"src":"8919:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44018,"nodeType":"UserDefinedTypeName","pathNode":{"id":44017,"name":"ValidatorSet","nameLocations":["8919:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"8919:12:64"},"referencedDeclaration":48673,"src":"8919:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44021,"mutability":"mutable","name":"validator","nameLocation":"8960:9:64","nodeType":"VariableDeclaration","scope":44056,"src":"8952:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44020,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44023,"mutability":"mutable","name":"amount","nameLocation":"8979:6:64","nodeType":"VariableDeclaration","scope":44056,"src":"8971:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44022,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:64"},"returnParameters":{"id":44025,"nodeType":"ParameterList","parameters":[],"src":"8996:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44109,"nodeType":"FunctionDefinition","src":"9330:540:64","nodes":[],"body":{"id":44108,"nodeType":"Block","src":"9431:439:64","nodes":[],"statements":[{"assignments":[44068],"declarations":[{"constant":false,"id":44068,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:64","nodeType":"VariableDeclaration","scope":44108,"src":"9441:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44067,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44074,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9465:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9465:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44072,"indexExpression":{"id":44071,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9481:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:64","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":48636,"src":"9465:41:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:64"},{"expression":{"id":44082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44075,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9516:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9516:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44079,"indexExpression":{"id":44077,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9532:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:64","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":48636,"src":"9516:41:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44081,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9560:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44083,"nodeType":"ExpressionStatement","src":"9516:49:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44084,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"9580:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44085,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9597:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44089,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"9645:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44090,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9661:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44105,"nodeType":"Block","src":"9771:93:64","statements":[{"expression":{"arguments":[{"id":44100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9808:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44101,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9825:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44102,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9846:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44099,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44593,"src":"9785:15:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:64","9814:9:64","9836:8:64"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44104,"nodeType":"ExpressionStatement","src":"9785:68:64"}]},"id":44106,"nodeType":"IfStatement","src":"9641:223:64","trueBody":{"id":44098,"nodeType":"Block","src":"9668:97:64","statements":[{"expression":{"arguments":[{"id":44093,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9707:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44094,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9726:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44095,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9747:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44092,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44382,"src":"9682:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:64","9713:11:64","9737:8:64"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44097,"nodeType":"ExpressionStatement","src":"9682:72:64"}]}},"id":44107,"nodeType":"IfStatement","src":"9576:288:64","trueBody":{"id":44088,"nodeType":"Block","src":"9604:31:64","statements":[{"functionReturnParameters":44066,"id":44087,"nodeType":"Return","src":"9618:7:64"}]}}]},"documentation":{"id":44057,"nodeType":"StructuredDocumentation","src":"9265:60:64","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:64","parameters":{"id":44065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44060,"mutability":"mutable","name":"self","nameLocation":"9382:4:64","nodeType":"VariableDeclaration","scope":44109,"src":"9361:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44059,"nodeType":"UserDefinedTypeName","pathNode":{"id":44058,"name":"ValidatorSet","nameLocations":["9361:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"9361:12:64"},"referencedDeclaration":48673,"src":"9361:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44062,"mutability":"mutable","name":"validator","nameLocation":"9396:9:64","nodeType":"VariableDeclaration","scope":44109,"src":"9388:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44061,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44064,"mutability":"mutable","name":"power","nameLocation":"9415:5:64","nodeType":"VariableDeclaration","scope":44109,"src":"9407:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44063,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:64"},"returnParameters":{"id":44066,"nodeType":"ParameterList","parameters":[],"src":"9431:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44151,"nodeType":"FunctionDefinition","src":"9876:404:64","nodes":[],"body":{"id":44150,"nodeType":"Block","src":"9971:309:64","nodes":[],"statements":[{"assignments":[44120],"declarations":[{"constant":false,"id":44120,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:64","nodeType":"VariableDeclaration","scope":44150,"src":"9981:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44119,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44128,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10005:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10005:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44124,"indexExpression":{"id":44123,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44114,"src":"10021:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10005:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44126,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44116,"src":"10054:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:64"},{"expression":{"id":44136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44129,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10070:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10070:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44133,"indexExpression":{"id":44131,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44114,"src":"10086:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10070:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44135,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"10119:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44137,"nodeType":"ExpressionStatement","src":"10070:62:64"},{"expression":{"id":44142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44138,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10143:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:64","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48658,"src":"10143:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44141,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44116,"src":"10176:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44143,"nodeType":"ExpressionStatement","src":"10143:39:64"},{"expression":{"arguments":[{"id":44145,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10218:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44146,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44114,"src":"10237:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44147,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"10258:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44144,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44382,"src":"10193:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:64","10224:11:64","10248:8:64"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44149,"nodeType":"ExpressionStatement","src":"10193:80:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:64","parameters":{"id":44117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44112,"mutability":"mutable","name":"self","nameLocation":"9921:4:64","nodeType":"VariableDeclaration","scope":44151,"src":"9900:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44111,"nodeType":"UserDefinedTypeName","pathNode":{"id":44110,"name":"ValidatorSet","nameLocations":["9900:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"9900:12:64"},"referencedDeclaration":48673,"src":"9900:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44114,"mutability":"mutable","name":"validator","nameLocation":"9935:9:64","nodeType":"VariableDeclaration","scope":44151,"src":"9927:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44113,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44116,"mutability":"mutable","name":"amount","nameLocation":"9954:6:64","nodeType":"VariableDeclaration","scope":44151,"src":"9946:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44115,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:64"},"returnParameters":{"id":44118,"nodeType":"ParameterList","parameters":[],"src":"9971:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44217,"nodeType":"FunctionDefinition","src":"10286:616:64","nodes":[],"body":{"id":44216,"nodeType":"Block","src":"10382:520:64","nodes":[],"statements":[{"assignments":[44162],"declarations":[{"constant":false,"id":44162,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:64","nodeType":"VariableDeclaration","scope":44216,"src":"10392:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44161,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44170,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44163,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10416:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10416:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44166,"indexExpression":{"id":44165,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10432:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10416:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44168,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44158,"src":"10465:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:64"},{"assignments":[44172],"declarations":[{"constant":false,"id":44172,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:64","nodeType":"VariableDeclaration","scope":44216,"src":"10481:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44171,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44178,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10507:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10507:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44176,"indexExpression":{"id":44175,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10523:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"10507:42:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:64"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44179,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44162,"src":"10564:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44182,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44172,"src":"10586:15:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44202,"nodeType":"Block","src":"10672:87:64","statements":[{"expression":{"id":44200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44193,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10686:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10686:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44197,"indexExpression":{"id":44195,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10702:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10686:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44199,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44162,"src":"10735:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44201,"nodeType":"ExpressionStatement","src":"10686:62:64"}]},"id":44203,"nodeType":"IfStatement","src":"10560:199:64","trueBody":{"id":44192,"nodeType":"Block","src":"10608:58:64","statements":[{"expression":{"id":44190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:64","subExpression":{"baseExpression":{"expression":{"id":44186,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10629:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10629:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44189,"indexExpression":{"id":44188,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10645:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44191,"nodeType":"ExpressionStatement","src":"10622:33:64"}]}},{"expression":{"arguments":[{"id":44205,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10792:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44206,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10809:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44207,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44162,"src":"10830:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44204,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44593,"src":"10769:15:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:64","10798:9:64","10820:8:64"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44209,"nodeType":"ExpressionStatement","src":"10769:76:64"},{"expression":{"id":44214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44210,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10856:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:64","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48658,"src":"10856:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44213,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44158,"src":"10889:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44215,"nodeType":"ExpressionStatement","src":"10856:39:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:64","parameters":{"id":44159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44154,"mutability":"mutable","name":"self","nameLocation":"10332:4:64","nodeType":"VariableDeclaration","scope":44217,"src":"10311:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44153,"nodeType":"UserDefinedTypeName","pathNode":{"id":44152,"name":"ValidatorSet","nameLocations":["10311:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"10311:12:64"},"referencedDeclaration":48673,"src":"10311:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44156,"mutability":"mutable","name":"validator","nameLocation":"10346:9:64","nodeType":"VariableDeclaration","scope":44217,"src":"10338:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44155,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44158,"mutability":"mutable","name":"amount","nameLocation":"10365:6:64","nodeType":"VariableDeclaration","scope":44217,"src":"10357:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44157,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:64"},"returnParameters":{"id":44160,"nodeType":"ParameterList","parameters":[],"src":"10382:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44382,"nodeType":"FunctionDefinition","src":"11008:2209:64","nodes":[],"body":{"id":44381,"nodeType":"Block","src":"11110:2107:64","nodes":[],"statements":[{"condition":{"arguments":[{"id":44231,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11155:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11124:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11124:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"11124:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44249,"nodeType":"IfStatement","src":"11120:226:64","trueBody":{"id":44248,"nodeType":"Block","src":"11169:177:64","statements":[{"expression":{"arguments":[{"id":44238,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11223:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44239,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11229:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44233,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11183:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11183:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:64","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47820,"src":"11183:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44241,"nodeType":"ExpressionStatement","src":"11183:58:64"},{"eventCall":{"arguments":[{"id":44243,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11293:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44244,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"11306:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44242,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43618,"src":"11260:32:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44246,"nodeType":"EmitStatement","src":"11255:60:64"},{"functionReturnParameters":44227,"id":44247,"nodeType":"Return","src":"11329:7:64"}]}},{"assignments":[44251],"declarations":[{"constant":false,"id":44251,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:64","nodeType":"VariableDeclaration","scope":44381,"src":"11408:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44250,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44254,"initialValue":{"expression":{"id":44252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11429:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:64","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":48655,"src":"11429:16:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:64"},{"assignments":[44256],"declarations":[{"constant":false,"id":44256,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:64","nodeType":"VariableDeclaration","scope":44381,"src":"11455:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44255,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44261,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11475:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11475:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"11475:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44262,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44251,"src":"11520:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44263,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44256,"src":"11534:10:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44281,"nodeType":"IfStatement","src":"11516:262:64","trueBody":{"id":44280,"nodeType":"Block","src":"11546:232:64","statements":[{"expression":{"arguments":[{"id":44270,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11669:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44271,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11675:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11640:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11640:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"11640:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44273,"nodeType":"ExpressionStatement","src":"11640:47:64"},{"eventCall":{"arguments":[{"id":44275,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11725:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44276,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"11738:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44274,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43630,"src":"11706:18:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44278,"nodeType":"EmitStatement","src":"11701:46:64"},{"functionReturnParameters":44227,"id":44279,"nodeType":"Return","src":"11761:7:64"}]}},{"assignments":[44283,44285],"declarations":[{"constant":false,"id":44283,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:64","nodeType":"VariableDeclaration","scope":44381,"src":"12317:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44282,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44285,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:64","nodeType":"VariableDeclaration","scope":44381,"src":"12337:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44284,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44291,"initialValue":{"arguments":[{"id":44289,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12389:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44286,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12363:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"12363:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:64","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"12363:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44292,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44285,"src":"12408:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44293,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"12425:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44344,"nodeType":"IfStatement","src":"12404:452:64","trueBody":{"id":44343,"nodeType":"Block","src":"12435:421:64","statements":[{"expression":{"arguments":[{"id":44300,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12475:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44295,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12449:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"12449:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47693,"src":"12449:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44302,"nodeType":"ExpressionStatement","src":"12449:31:64"},{"condition":{"arguments":[{"id":44306,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12531:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44303,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12499:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12499:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"12499:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44318,"nodeType":"IfStatement","src":"12495:140:64","trueBody":{"id":44317,"nodeType":"Block","src":"12545:90:64","statements":[{"expression":{"arguments":[{"id":44313,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12602:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44314,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12608:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44308,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12563:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12563:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:64","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":47167,"src":"12563:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44316,"nodeType":"ExpressionStatement","src":"12563:57:64"}]}},{"expression":{"arguments":[{"id":44324,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12678:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44325,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12684:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12649:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"12649:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"12649:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44327,"nodeType":"ExpressionStatement","src":"12649:47:64"},{"expression":{"arguments":[{"id":44333,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12740:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44334,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44283,"src":"12746:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44328,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12710:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12710:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47008,"src":"12710:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44336,"nodeType":"ExpressionStatement","src":"12710:47:64"},{"eventCall":{"arguments":[{"id":44338,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44283,"src":"12801:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44339,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12813:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44337,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43642,"src":"12777:23:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":44340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44341,"nodeType":"EmitStatement","src":"12772:53:64"},{"functionReturnParameters":44227,"id":44342,"nodeType":"Return","src":"12839:7:64"}]}},{"condition":{"arguments":[{"id":44348,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12902:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44345,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12870:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12870:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"12870:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44366,"nodeType":"IfStatement","src":"12866:229:64","trueBody":{"id":44365,"nodeType":"Block","src":"12916:179:64","statements":[{"expression":{"arguments":[{"id":44355,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12971:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44356,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12977:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44350,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12930:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12930:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44354,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:64","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47202,"src":"12930:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44358,"nodeType":"ExpressionStatement","src":"12930:59:64"},{"eventCall":{"arguments":[{"id":44360,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"13042:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44361,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"13055:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44359,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"13008:33:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44363,"nodeType":"EmitStatement","src":"13003:61:64"},{"functionReturnParameters":44227,"id":44364,"nodeType":"Return","src":"13078:7:64"}]}},{"expression":{"arguments":[{"id":44372,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"13135:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44373,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"13141:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"13105:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13105:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47008,"src":"13105:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44375,"nodeType":"ExpressionStatement","src":"13105:48:64"},{"eventCall":{"arguments":[{"id":44377,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"13188:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44378,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"13201:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44376,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43636,"src":"13168:19:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44380,"nodeType":"EmitStatement","src":"13163:47:64"}]},"documentation":{"id":44218,"nodeType":"StructuredDocumentation","src":"10908:95:64","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:64","parameters":{"id":44226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44221,"mutability":"mutable","name":"self","nameLocation":"11056:4:64","nodeType":"VariableDeclaration","scope":44382,"src":"11035:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44220,"nodeType":"UserDefinedTypeName","pathNode":{"id":44219,"name":"ValidatorSet","nameLocations":["11035:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"11035:12:64"},"referencedDeclaration":48673,"src":"11035:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44223,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:64","nodeType":"VariableDeclaration","scope":44382,"src":"11062:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44222,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44225,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:64","nodeType":"VariableDeclaration","scope":44382,"src":"11083:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44224,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:64"},"returnParameters":{"id":44227,"nodeType":"ParameterList","parameters":[],"src":"11110:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44593,"nodeType":"FunctionDefinition","src":"13320:2014:64","nodes":[],"body":{"id":44592,"nodeType":"Block","src":"13418:1916:64","nodes":[],"statements":[{"condition":{"arguments":[{"id":44396,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13464:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44393,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13432:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13432:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"13432:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44433,"nodeType":"IfStatement","src":"13428:421:64","trueBody":{"id":44432,"nodeType":"Block","src":"13476:373:64","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44398,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"13494:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44416,"nodeType":"IfStatement","src":"13490:185:64","trueBody":{"id":44415,"nodeType":"Block","src":"13509:166:64","statements":[{"expression":{"arguments":[{"id":44406,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13566:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44407,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13572:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44401,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13527:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13527:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:64","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":47167,"src":"13527:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44409,"nodeType":"ExpressionStatement","src":"13527:55:64"},{"eventCall":{"arguments":[{"id":44411,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13626:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44410,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43650,"src":"13605:20:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":44412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44413,"nodeType":"EmitStatement","src":"13600:36:64"},{"functionReturnParameters":44392,"id":44414,"nodeType":"Return","src":"13654:7:64"}]}},{"expression":{"arguments":[{"id":44422,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13729:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44423,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13735:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44417,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13688:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13688:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:64","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47237,"src":"13688:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44425,"nodeType":"ExpressionStatement","src":"13688:57:64"},{"eventCall":{"arguments":[{"id":44427,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13798:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44428,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"13809:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44426,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"13764:33:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44430,"nodeType":"EmitStatement","src":"13759:59:64"},{"functionReturnParameters":44392,"id":44431,"nodeType":"Return","src":"13832:7:64"}]}},{"condition":{"id":44439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:64","subExpression":{"arguments":[{"id":44437,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13919:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44434,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13888:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"13888:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"13888:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44444,"nodeType":"IfStatement","src":"13883:106:64","trueBody":{"id":44443,"nodeType":"Block","src":"13931:58:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44440,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36936,"src":"13952:24:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44442,"nodeType":"RevertStatement","src":"13945:33:64"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44445,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"14053:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44503,"nodeType":"IfStatement","src":"14049:508:64","trueBody":{"id":44502,"nodeType":"Block","src":"14068:489:64","statements":[{"expression":{"arguments":[{"id":44453,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14120:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44454,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"14126:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44448,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14082:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14082:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:64","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":47785,"src":"14082:37:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44456,"nodeType":"ExpressionStatement","src":"14082:54:64"},{"eventCall":{"arguments":[{"id":44458,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"14175:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44457,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43646,"src":"14155:19:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44460,"nodeType":"EmitStatement","src":"14150:35:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44461,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14204:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14204:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"14204:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":44465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44500,"nodeType":"IfStatement","src":"14200:326:64","trueBody":{"id":44499,"nodeType":"Block","src":"14243:283:64","statements":[{"assignments":[44468,44470],"declarations":[{"constant":false,"id":44468,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:64","nodeType":"VariableDeclaration","scope":44499,"src":"14262:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44467,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44470,"mutability":"mutable","name":"power","nameLocation":"14292:5:64","nodeType":"VariableDeclaration","scope":44499,"src":"14284:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44469,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44476,"initialValue":{"arguments":[{"id":44474,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14328:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44471,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14301:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14301:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:64","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":47278,"src":"14301:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:64"},{"expression":{"arguments":[{"id":44482,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14378:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44477,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14351:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14351:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47075,"src":"14351:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44484,"nodeType":"ExpressionStatement","src":"14351:32:64"},{"expression":{"arguments":[{"id":44490,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14430:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44491,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44468,"src":"14436:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44485,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14401:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14401:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"14401:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44493,"nodeType":"ExpressionStatement","src":"14401:48:64"},{"eventCall":{"arguments":[{"id":44495,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44468,"src":"14491:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44496,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44470,"src":"14505:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44494,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43630,"src":"14472:18:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44498,"nodeType":"EmitStatement","src":"14467:44:64"}]}},{"functionReturnParameters":44392,"id":44501,"nodeType":"Return","src":"14540:7:64"}]}},{"expression":{"arguments":[{"id":44509,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14607:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"14613:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44504,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14567:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14567:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:64","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47855,"src":"14567:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44512,"nodeType":"ExpressionStatement","src":"14567:56:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44513,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14638:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14638:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"14638:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44521,"nodeType":"IfStatement","src":"14634:74:64","trueBody":{"id":44520,"nodeType":"Block","src":"14677:31:64","statements":[{"functionReturnParameters":44392,"id":44519,"nodeType":"Return","src":"14691:7:64"}]}},{"assignments":[44523,44525],"declarations":[{"constant":false,"id":44523,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:64","nodeType":"VariableDeclaration","scope":44592,"src":"14719:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44522,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44525,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:64","nodeType":"VariableDeclaration","scope":44592,"src":"14741:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44524,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44531,"initialValue":{"arguments":[{"id":44529,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14793:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44526,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14767:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14767:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:64","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"14767:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:64"},{"assignments":[44533,44535],"declarations":[{"constant":false,"id":44533,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:64","nodeType":"VariableDeclaration","scope":44592,"src":"14809:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44532,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44535,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:64","nodeType":"VariableDeclaration","scope":44592,"src":"14832:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44534,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44541,"initialValue":{"arguments":[{"id":44539,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14886:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44536,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14859:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14859:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:64","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":47278,"src":"14859:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44542,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44525,"src":"14905:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44543,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44535,"src":"14922:15:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44586,"nodeType":"IfStatement","src":"14901:358:64","trueBody":{"id":44585,"nodeType":"Block","src":"14939:320:64","statements":[{"expression":{"arguments":[{"id":44550,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14979:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44545,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14953:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14953:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47693,"src":"14953:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44552,"nodeType":"ExpressionStatement","src":"14953:31:64"},{"expression":{"arguments":[{"id":44558,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15025:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44553,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14998:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14998:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47075,"src":"14998:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44560,"nodeType":"ExpressionStatement","src":"14998:32:64"},{"expression":{"arguments":[{"id":44566,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15073:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44567,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44533,"src":"15079:13:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44561,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15044:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"15044:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"15044:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44569,"nodeType":"ExpressionStatement","src":"15044:49:64"},{"expression":{"arguments":[{"id":44575,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15137:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44576,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44523,"src":"15143:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44570,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15107:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"15107:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47008,"src":"15107:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44578,"nodeType":"ExpressionStatement","src":"15107:49:64"},{"eventCall":{"arguments":[{"id":44580,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44523,"src":"15200:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44581,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44533,"src":"15214:13:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44579,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43642,"src":"15176:23:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":44582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44583,"nodeType":"EmitStatement","src":"15171:57:64"},{"functionReturnParameters":44392,"id":44584,"nodeType":"Return","src":"15242:7:64"}]}},{"eventCall":{"arguments":[{"id":44588,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"15307:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44589,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"15318:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44587,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43618,"src":"15274:32:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44591,"nodeType":"EmitStatement","src":"15269:58:64"}]},"documentation":{"id":44383,"nodeType":"StructuredDocumentation","src":"13223:92:64","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:64","parameters":{"id":44391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44386,"mutability":"mutable","name":"self","nameLocation":"13366:4:64","nodeType":"VariableDeclaration","scope":44593,"src":"13345:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44385,"nodeType":"UserDefinedTypeName","pathNode":{"id":44384,"name":"ValidatorSet","nameLocations":["13345:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"13345:12:64"},"referencedDeclaration":48673,"src":"13345:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44388,"mutability":"mutable","name":"validator","nameLocation":"13380:9:64","nodeType":"VariableDeclaration","scope":44593,"src":"13372:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44387,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44390,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:64","nodeType":"VariableDeclaration","scope":44593,"src":"13391:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44389,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:64"},"returnParameters":{"id":44392,"nodeType":"ParameterList","parameters":[],"src":"13418:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":43604,"nodeType":"StructuredDocumentation","src":"3860:40:64","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[44594],"name":"LibValidatorSet","nameLocation":"3908:15:64","scope":45729,"usedErrors":[]},{"id":45464,"nodeType":"ContractDefinition","src":"15338:10289:64","nodes":[{"id":44598,"nodeType":"UsingForDirective","src":"15363:53:64","nodes":[],"global":false,"libraryName":{"id":44595,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":43603,"src":"15369:22:64"},"typeName":{"id":44597,"nodeType":"UserDefinedTypeName","pathNode":{"id":44596,"name":"StakingReleaseQueue","nameLocations":["15396:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"15396:19:64"},"referencedDeclaration":48633,"src":"15396:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":44602,"nodeType":"UsingForDirective","src":"15421:47:64","nodes":[],"global":false,"libraryName":{"id":44599,"name":"LibStakingChangeLog","nameLocations":["15427:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":45966,"src":"15427:19:64"},"typeName":{"id":44601,"nodeType":"UserDefinedTypeName","pathNode":{"id":44600,"name":"StakingChangeLog","nameLocations":["15451:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"15451:16:64"},"referencedDeclaration":48606,"src":"15451:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":44606,"nodeType":"UsingForDirective","src":"15473:39:64","nodes":[],"global":false,"libraryName":{"id":44603,"name":"LibValidatorSet","nameLocations":["15479:15:64"],"nodeType":"IdentifierPath","referencedDeclaration":44594,"src":"15479:15:64"},"typeName":{"id":44605,"nodeType":"UserDefinedTypeName","pathNode":{"id":44604,"name":"ValidatorSet","nameLocations":["15499:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"15499:12:64"},"referencedDeclaration":48673,"src":"15499:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":44610,"nodeType":"UsingForDirective","src":"15517:25:64","nodes":[],"global":false,"libraryName":{"id":44607,"name":"LibMaxPQ","nameLocations":["15523:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":47494,"src":"15523:8:64"},"typeName":{"id":44609,"nodeType":"UserDefinedTypeName","pathNode":{"id":44608,"name":"MaxPQ","nameLocations":["15536:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"15536:5:64"},"referencedDeclaration":46889,"src":"15536:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44614,"nodeType":"UsingForDirective","src":"15547:25:64","nodes":[],"global":false,"libraryName":{"id":44611,"name":"LibMinPQ","nameLocations":["15553:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":48113,"src":"15553:8:64"},"typeName":{"id":44613,"nodeType":"UserDefinedTypeName","pathNode":{"id":44612,"name":"MinPQ","nameLocations":["15566:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"15566:5:64"},"referencedDeclaration":47507,"src":"15566:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}}},{"id":44617,"nodeType":"UsingForDirective","src":"15577:34:64","nodes":[],"global":false,"libraryName":{"id":44615,"name":"Address","nameLocations":["15583:7:64"],"nodeType":"IdentifierPath","referencedDeclaration":32409,"src":"15583:7:64"},"typeName":{"id":44616,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44620,"nodeType":"VariableDeclaration","src":"15617:57:64","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:64","scope":45464,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":44618,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":44619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":44624,"nodeType":"EventDefinition","src":"15681:50:64","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:64","parameters":{"id":44623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44622,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:64","nodeType":"VariableDeclaration","scope":44624,"src":"15716:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":44621,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:64"}},{"id":44630,"nodeType":"EventDefinition","src":"15736:59:64","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:64","parameters":{"id":44629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44626,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:64","nodeType":"VariableDeclaration","scope":44630,"src":"15760:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44625,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44628,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:64","nodeType":"VariableDeclaration","scope":44630,"src":"15779:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44627,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:64"}},{"id":44651,"nodeType":"FunctionDefinition","src":"15846:221:64","nodes":[],"body":{"id":44650,"nodeType":"Block","src":"15934:133:64","nodes":[],"statements":[{"assignments":[44639],"declarations":[{"constant":false,"id":44639,"mutability":"mutable","name":"s","nameLocation":"15971:1:64","nodeType":"VariableDeclaration","scope":44650,"src":"15944:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44638,"nodeType":"UserDefinedTypeName","pathNode":{"id":44637,"name":"SubnetActorStorage","nameLocations":["15944:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"15944:18:64"},"referencedDeclaration":46085,"src":"15944:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44643,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44640,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"15975:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"15975:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:64"},{"expression":{"arguments":[{"id":44647,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44632,"src":"16050:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44644,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44639,"src":"16026:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16026:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:64","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":43686,"src":"16026:23:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44636,"id":44649,"nodeType":"Return","src":"16019:41:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:64","parameters":{"id":44633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44632,"mutability":"mutable","name":"validator","nameLocation":"15881:9:64","nodeType":"VariableDeclaration","scope":44651,"src":"15873:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44631,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:64"},"returnParameters":{"id":44636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44635,"mutability":"mutable","name":"power","nameLocation":"15927:5:64","nodeType":"VariableDeclaration","scope":44651,"src":"15919:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44634,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44674,"nodeType":"FunctionDefinition","src":"16136:225:64","nodes":[],"body":{"id":44673,"nodeType":"Block","src":"16211:150:64","nodes":[],"statements":[{"assignments":[44661],"declarations":[{"constant":false,"id":44661,"mutability":"mutable","name":"s","nameLocation":"16248:1:64","nodeType":"VariableDeclaration","scope":44673,"src":"16221:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44660,"nodeType":"UserDefinedTypeName","pathNode":{"id":44659,"name":"SubnetActorStorage","nameLocations":["16221:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"16221:18:64"},"referencedDeclaration":46085,"src":"16221:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44665,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44662,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"16252:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"16252:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:64"},{"expression":{"arguments":[{"id":44670,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44654,"src":"16344:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":44666,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44661,"src":"16303:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16303:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"16303:31:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"16303:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44658,"id":44672,"nodeType":"Return","src":"16296:58:64"}]},"documentation":{"id":44652,"nodeType":"StructuredDocumentation","src":"16073:58:64","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:64","parameters":{"id":44655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44654,"mutability":"mutable","name":"validator","nameLocation":"16171:9:64","nodeType":"VariableDeclaration","scope":44674,"src":"16163:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44653,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:64"},"returnParameters":{"id":44658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44657,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44674,"src":"16205:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44656,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44697,"nodeType":"FunctionDefinition","src":"16430:227:64","nodes":[],"body":{"id":44696,"nodeType":"Block","src":"16506:151:64","nodes":[],"statements":[{"assignments":[44684],"declarations":[{"constant":false,"id":44684,"mutability":"mutable","name":"s","nameLocation":"16543:1:64","nodeType":"VariableDeclaration","scope":44696,"src":"16516:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44683,"nodeType":"UserDefinedTypeName","pathNode":{"id":44682,"name":"SubnetActorStorage","nameLocations":["16516:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"16516:18:64"},"referencedDeclaration":46085,"src":"16516:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44688,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44685,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"16547:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"16547:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:64"},{"expression":{"arguments":[{"id":44693,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44677,"src":"16640:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":44689,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44684,"src":"16598:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16598:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"16598:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"16598:41:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44681,"id":44695,"nodeType":"Return","src":"16591:59:64"}]},"documentation":{"id":44675,"nodeType":"StructuredDocumentation","src":"16367:58:64","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:64","parameters":{"id":44678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44677,"mutability":"mutable","name":"validator","nameLocation":"16466:9:64","nodeType":"VariableDeclaration","scope":44697,"src":"16458:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44676,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:64"},"returnParameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44697,"src":"16500:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44679,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44722,"nodeType":"FunctionDefinition","src":"16721:280:64","nodes":[],"body":{"id":44721,"nodeType":"Block","src":"16788:213:64","nodes":[],"statements":[{"assignments":[44707],"declarations":[{"constant":false,"id":44707,"mutability":"mutable","name":"s","nameLocation":"16825:1:64","nodeType":"VariableDeclaration","scope":44721,"src":"16798:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44706,"nodeType":"UserDefinedTypeName","pathNode":{"id":44705,"name":"SubnetActorStorage","nameLocations":["16798:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"16798:18:64"},"referencedDeclaration":46085,"src":"16798:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44711,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44708,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"16829:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16851:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"16829:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16829:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16798:65:64"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":44712,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44707,"src":"16937:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16939:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16937:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16952:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"16937:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44716,"indexExpression":{"id":44715,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44700,"src":"16963:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16937:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16974:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"16937:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":44718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16993:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16937:57:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44704,"id":44720,"nodeType":"Return","src":"16930:64:64"}]},"documentation":{"id":44698,"nodeType":"StructuredDocumentation","src":"16663:53:64","text":"@notice Checks if the validator has staked before"},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"16730:9:64","parameters":{"id":44701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44700,"mutability":"mutable","name":"validator","nameLocation":"16748:9:64","nodeType":"VariableDeclaration","scope":44722,"src":"16740:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44699,"name":"address","nodeType":"ElementaryTypeName","src":"16740:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16739:19:64"},"returnParameters":{"id":44704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44703,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44722,"src":"16782:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44702,"name":"bool","nodeType":"ElementaryTypeName","src":"16782:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16781:6:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44740,"nodeType":"FunctionDefinition","src":"17007:201:64","nodes":[],"body":{"id":44739,"nodeType":"Block","src":"17071:137:64","nodes":[],"statements":[{"assignments":[44729],"declarations":[{"constant":false,"id":44729,"mutability":"mutable","name":"s","nameLocation":"17108:1:64","nodeType":"VariableDeclaration","scope":44739,"src":"17081:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44728,"nodeType":"UserDefinedTypeName","pathNode":{"id":44727,"name":"SubnetActorStorage","nameLocations":["17081:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17081:18:64"},"referencedDeclaration":46085,"src":"17081:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44733,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44730,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17112:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17134:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17112:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17112:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17081:65:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44734,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44729,"src":"17163:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17165:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17163:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17178:21:64","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":43718,"src":"17163:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17163:38:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":44726,"id":44738,"nodeType":"Return","src":"17156:45:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17016:21:64","parameters":{"id":44723,"nodeType":"ParameterList","parameters":[],"src":"17037:2:64"},"returnParameters":{"id":44726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44725,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44740,"src":"17063:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44724,"name":"uint16","nodeType":"ElementaryTypeName","src":"17063:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17062:8:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44766,"nodeType":"FunctionDefinition","src":"17296:243:64","nodes":[],"body":{"id":44765,"nodeType":"Block","src":"17354:185:64","nodes":[],"statements":[{"assignments":[44748],"declarations":[{"constant":false,"id":44748,"mutability":"mutable","name":"s","nameLocation":"17391:1:64","nodeType":"VariableDeclaration","scope":44765,"src":"17364:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44747,"nodeType":"UserDefinedTypeName","pathNode":{"id":44746,"name":"SubnetActorStorage","nameLocations":["17364:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17364:18:64"},"referencedDeclaration":46085,"src":"17364:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44752,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44749,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17395:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17417:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17395:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17395:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17364:65:64"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":44753,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44748,"src":"17446:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17446:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17461:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"17446:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17479:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"17446:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17446:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":44758,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44748,"src":"17491:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17493:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17491:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17506:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"17491:31:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17523:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"17491:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17491:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17446:86:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":44745,"id":44764,"nodeType":"Return","src":"17439:93:64"}]},"documentation":{"id":44741,"nodeType":"StructuredDocumentation","src":"17214:77:64","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17305:15:64","parameters":{"id":44742,"nodeType":"ParameterList","parameters":[],"src":"17320:2:64"},"returnParameters":{"id":44745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44766,"src":"17346:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44743,"name":"uint16","nodeType":"ElementaryTypeName","src":"17346:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17345:8:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44784,"nodeType":"FunctionDefinition","src":"17545:214:64","nodes":[],"body":{"id":44783,"nodeType":"Block","src":"17616:143:64","nodes":[],"statements":[{"assignments":[44773],"declarations":[{"constant":false,"id":44773,"mutability":"mutable","name":"s","nameLocation":"17653:1:64","nodeType":"VariableDeclaration","scope":44783,"src":"17626:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44772,"nodeType":"UserDefinedTypeName","pathNode":{"id":44771,"name":"SubnetActorStorage","nameLocations":["17626:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17626:18:64"},"referencedDeclaration":46085,"src":"17626:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44777,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44774,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17657:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17679:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17657:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17657:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17626:65:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44778,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44773,"src":"17708:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17710:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17708:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17723:27:64","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":43701,"src":"17708:42:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17708:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44770,"id":44782,"nodeType":"Return","src":"17701:51:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"17554:27:64","parameters":{"id":44767,"nodeType":"ParameterList","parameters":[],"src":"17581:2:64"},"returnParameters":{"id":44770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44784,"src":"17607:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44768,"name":"uint256","nodeType":"ElementaryTypeName","src":"17607:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17606:9:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44802,"nodeType":"FunctionDefinition","src":"17765:205:64","nodes":[],"body":{"id":44801,"nodeType":"Block","src":"17827:143:64","nodes":[],"statements":[{"assignments":[44791],"declarations":[{"constant":false,"id":44791,"mutability":"mutable","name":"s","nameLocation":"17864:1:64","nodeType":"VariableDeclaration","scope":44801,"src":"17837:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44790,"nodeType":"UserDefinedTypeName","pathNode":{"id":44789,"name":"SubnetActorStorage","nameLocations":["17837:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17837:18:64"},"referencedDeclaration":46085,"src":"17837:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44795,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44792,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17868:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17890:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17868:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17868:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17837:65:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44796,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44791,"src":"17919:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17921:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17919:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17934:27:64","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":43701,"src":"17919:42:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17919:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44788,"id":44800,"nodeType":"Return","src":"17912:51:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"17774:18:64","parameters":{"id":44785,"nodeType":"ParameterList","parameters":[],"src":"17792:2:64"},"returnParameters":{"id":44788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44802,"src":"17818:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44786,"name":"uint256","nodeType":"ElementaryTypeName","src":"17818:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17817:9:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44825,"nodeType":"FunctionDefinition","src":"18045:236:64","nodes":[],"body":{"id":44824,"nodeType":"Block","src":"18130:151:64","nodes":[],"statements":[{"assignments":[44812],"declarations":[{"constant":false,"id":44812,"mutability":"mutable","name":"s","nameLocation":"18167:1:64","nodeType":"VariableDeclaration","scope":44824,"src":"18140:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44811,"nodeType":"UserDefinedTypeName","pathNode":{"id":44810,"name":"SubnetActorStorage","nameLocations":["18140:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"18140:18:64"},"referencedDeclaration":46085,"src":"18140:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44816,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44813,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"18171:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18193:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"18171:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18171:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18140:65:64"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":44817,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44812,"src":"18222:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18224:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"18222:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18237:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"18222:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44821,"indexExpression":{"id":44820,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44805,"src":"18248:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18222:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18259:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"18222:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44809,"id":44823,"nodeType":"Return","src":"18215:59:64"}]},"documentation":{"id":44803,"nodeType":"StructuredDocumentation","src":"17976:64:64","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18054:24:64","parameters":{"id":44806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44805,"mutability":"mutable","name":"validator","nameLocation":"18087:9:64","nodeType":"VariableDeclaration","scope":44825,"src":"18079:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44804,"name":"address","nodeType":"ElementaryTypeName","src":"18079:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18078:19:64"},"returnParameters":{"id":44809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44825,"src":"18121:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44807,"name":"uint256","nodeType":"ElementaryTypeName","src":"18121:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18120:9:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44850,"nodeType":"FunctionDefinition","src":"18441:227:64","nodes":[],"body":{"id":44849,"nodeType":"Block","src":"18522:146:64","nodes":[],"statements":[{"assignments":[44835],"declarations":[{"constant":false,"id":44835,"mutability":"mutable","name":"s","nameLocation":"18559:1:64","nodeType":"VariableDeclaration","scope":44849,"src":"18532:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44834,"nodeType":"UserDefinedTypeName","pathNode":{"id":44833,"name":"SubnetActorStorage","nameLocations":["18532:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"18532:18:64"},"referencedDeclaration":46085,"src":"18532:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44836,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"18563:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18585:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"18563:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18563:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18532:65:64"},{"expression":{"arguments":[{"id":44845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44828,"src":"18644:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44846,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44830,"src":"18655:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44840,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44835,"src":"18607:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18609:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"18607:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18622:21:64","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44109,"src":"18607:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18607:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44848,"nodeType":"ExpressionStatement","src":"18607:54:64"}]},"documentation":{"id":44826,"nodeType":"StructuredDocumentation","src":"18353:83:64","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18450:28:64","parameters":{"id":44831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44828,"mutability":"mutable","name":"validator","nameLocation":"18487:9:64","nodeType":"VariableDeclaration","scope":44850,"src":"18479:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44827,"name":"address","nodeType":"ElementaryTypeName","src":"18479:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44830,"mutability":"mutable","name":"power","nameLocation":"18506:5:64","nodeType":"VariableDeclaration","scope":44850,"src":"18498:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44829,"name":"uint256","nodeType":"ElementaryTypeName","src":"18498:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18478:34:64"},"returnParameters":{"id":44832,"nodeType":"ParameterList","parameters":[],"src":"18522:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44875,"nodeType":"FunctionDefinition","src":"18755:224:64","nodes":[],"body":{"id":44874,"nodeType":"Block","src":"18840:139:64","nodes":[],"statements":[{"assignments":[44860],"declarations":[{"constant":false,"id":44860,"mutability":"mutable","name":"s","nameLocation":"18877:1:64","nodeType":"VariableDeclaration","scope":44874,"src":"18850:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44859,"nodeType":"UserDefinedTypeName","pathNode":{"id":44858,"name":"SubnetActorStorage","nameLocations":["18850:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"18850:18:64"},"referencedDeclaration":46085,"src":"18850:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44864,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44861,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"18881:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18903:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"18881:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18881:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18850:65:64"},{"expression":{"arguments":[{"id":44870,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"18952:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44871,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"18963:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":44865,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44860,"src":"18925:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18927:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"18925:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18940:11:64","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":43994,"src":"18925:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":44872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18925:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44873,"nodeType":"ExpressionStatement","src":"18925:47:64"}]},"documentation":{"id":44851,"nodeType":"StructuredDocumentation","src":"18674:76:64","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"18764:22:64","parameters":{"id":44856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44853,"mutability":"mutable","name":"validator","nameLocation":"18795:9:64","nodeType":"VariableDeclaration","scope":44875,"src":"18787:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44852,"name":"address","nodeType":"ElementaryTypeName","src":"18787:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"metadata","nameLocation":"18821:8:64","nodeType":"VariableDeclaration","scope":44875,"src":"18806:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44854,"name":"bytes","nodeType":"ElementaryTypeName","src":"18806:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18786:44:64"},"returnParameters":{"id":44857,"nodeType":"ParameterList","parameters":[],"src":"18840:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44984,"nodeType":"FunctionDefinition","src":"19077:1335:64","nodes":[],"body":{"id":44983,"nodeType":"Block","src":"19149:1263:64","nodes":[],"statements":[{"assignments":[44885],"declarations":[{"constant":false,"id":44885,"mutability":"mutable","name":"s","nameLocation":"19186:1:64","nodeType":"VariableDeclaration","scope":44983,"src":"19159:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44884,"nodeType":"UserDefinedTypeName","pathNode":{"id":44883,"name":"SubnetActorStorage","nameLocations":["19159:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"19159:18:64"},"referencedDeclaration":46085,"src":"19159:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44889,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44886,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"19190:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19212:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"19190:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19190:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19159:65:64"},{"expression":{"arguments":[{"id":44895,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"19324:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44896,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44880,"src":"19335:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44890,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19295:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19297:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"19295:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19310:13:64","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44015,"src":"19295:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19295:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44898,"nodeType":"ExpressionStatement","src":"19295:47:64"},{"expression":{"arguments":[{"id":44904,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"19447:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44905,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44880,"src":"19458:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44899,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19417:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19419:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"19417:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19432:14:64","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44151,"src":"19417:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19417:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44907,"nodeType":"ExpressionStatement","src":"19417:48:64"},{"condition":{"id":44910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19480:15:64","subExpression":{"expression":{"id":44908,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19481:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19483:12:64","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"19481:14:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44982,"nodeType":"IfStatement","src":"19476:930:64","trueBody":{"id":44981,"nodeType":"Block","src":"19497:909:64","statements":[{"assignments":[44912],"declarations":[{"constant":false,"id":44912,"mutability":"mutable","name":"alreadyValidator","nameLocation":"19622:16:64","nodeType":"VariableDeclaration","scope":44981,"src":"19617:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44911,"name":"bool","nodeType":"ElementaryTypeName","src":"19617:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":44913,"nodeType":"VariableDeclarationStatement","src":"19617:21:64"},{"assignments":[44915],"declarations":[{"constant":false,"id":44915,"mutability":"mutable","name":"length","nameLocation":"19660:6:64","nodeType":"VariableDeclaration","scope":44981,"src":"19652:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44914,"name":"uint256","nodeType":"ElementaryTypeName","src":"19652:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44919,"initialValue":{"expression":{"expression":{"id":44916,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19669:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19671:17:64","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"19669:19:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":44918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19689:6:64","memberName":"length","nodeType":"MemberAccess","src":"19669:26:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19652:43:64"},{"body":{"id":44944,"nodeType":"Block","src":"19739:240:64","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":44932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19761:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19763:17:64","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"19761:19:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":44929,"indexExpression":{"id":44928,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44921,"src":"19781:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19761:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage","typeString":"struct Validator storage ref"}},"id":44930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19784:4:64","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":48691,"src":"19761:27:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44931,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"19792:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19761:40:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44939,"nodeType":"IfStatement","src":"19757:137:64","trueBody":{"id":44938,"nodeType":"Block","src":"19803:91:64","statements":[{"expression":{"id":44935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44933,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44912,"src":"19825:16:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":44934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19844:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19825:23:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44936,"nodeType":"ExpressionStatement","src":"19825:23:64"},{"id":44937,"nodeType":"Break","src":"19870:5:64"}]}},{"id":44943,"nodeType":"UncheckedBlock","src":"19911:54:64","statements":[{"expression":{"id":44941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"19943:3:64","subExpression":{"id":44940,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44921,"src":"19945:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44942,"nodeType":"ExpressionStatement","src":"19943:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44923,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44921,"src":"19725:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44924,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44915,"src":"19729:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19725:10:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44945,"initializationExpression":{"assignments":[44921],"declarations":[{"constant":false,"id":44921,"mutability":"mutable","name":"i","nameLocation":"19722:1:64","nodeType":"VariableDeclaration","scope":44945,"src":"19714:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44920,"name":"uint256","nodeType":"ElementaryTypeName","src":"19714:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44922,"nodeType":"VariableDeclarationStatement","src":"19714:9:64"},"nodeType":"ForStatement","src":"19709:270:64"},{"condition":{"id":44947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19996:17:64","subExpression":{"id":44946,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44912,"src":"19997:16:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44980,"nodeType":"IfStatement","src":"19992:404:64","trueBody":{"id":44979,"nodeType":"Block","src":"20015:381:64","statements":[{"assignments":[44949],"declarations":[{"constant":false,"id":44949,"mutability":"mutable","name":"collateral","nameLocation":"20041:10:64","nodeType":"VariableDeclaration","scope":44979,"src":"20033:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44948,"name":"uint256","nodeType":"ElementaryTypeName","src":"20033:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44956,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":44950,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"20054:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20056:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20054:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20069:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"20054:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44954,"indexExpression":{"id":44953,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"20080:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20054:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20091:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"20054:56:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20033:77:64"},{"assignments":[44959],"declarations":[{"constant":false,"id":44959,"mutability":"mutable","name":"val","nameLocation":"20145:3:64","nodeType":"VariableDeclaration","scope":44979,"src":"20128:20:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator"},"typeName":{"id":44958,"nodeType":"UserDefinedTypeName","pathNode":{"id":44957,"name":"Validator","nameLocations":["20128:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"20128:9:64"},"referencedDeclaration":48694,"src":"20128:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":44970,"initialValue":{"arguments":[{"id":44961,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"20189:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44962,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44949,"src":"20228:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":44963,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"20270:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20272:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20270:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20285:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"20270:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44967,"indexExpression":{"id":44966,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"20296:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20270:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20307:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"20270:45:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":44960,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"20151:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$48694_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":44969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20183:4:64","20220:6:64","20260:8:64"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20151:183:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20128:206:64"},{"expression":{"arguments":[{"id":44976,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44959,"src":"20377:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":44971,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"20352:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20354:17:64","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"20352:19:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":44975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20372:4:64","memberName":"push","nodeType":"MemberAccess","src":"20352:24:64","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$_t_struct$_Validator_$48694_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":44977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20352:29:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44978,"nodeType":"ExpressionStatement","src":"20352:29:64"}]}}]}}]},"documentation":{"id":44876,"nodeType":"StructuredDocumentation","src":"18985:87:64","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19086:18:64","parameters":{"id":44881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44878,"mutability":"mutable","name":"validator","nameLocation":"19113:9:64","nodeType":"VariableDeclaration","scope":44984,"src":"19105:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44877,"name":"address","nodeType":"ElementaryTypeName","src":"19105:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44880,"mutability":"mutable","name":"amount","nameLocation":"19132:6:64","nodeType":"VariableDeclaration","scope":44984,"src":"19124:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44879,"name":"uint256","nodeType":"ElementaryTypeName","src":"19124:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19104:35:64"},"returnParameters":{"id":44882,"nodeType":"ParameterList","parameters":[],"src":"19149:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45026,"nodeType":"FunctionDefinition","src":"20602:504:64","nodes":[],"body":{"id":45025,"nodeType":"Block","src":"20675:431:64","nodes":[],"statements":[{"assignments":[44994],"declarations":[{"constant":false,"id":44994,"mutability":"mutable","name":"s","nameLocation":"20712:1:64","nodeType":"VariableDeclaration","scope":45025,"src":"20685:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44993,"nodeType":"UserDefinedTypeName","pathNode":{"id":44992,"name":"SubnetActorStorage","nameLocations":["20685:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"20685:18:64"},"referencedDeclaration":46085,"src":"20685:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44995,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"20716:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20738:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"20716:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20716:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20685:65:64"},{"expression":{"arguments":[{"id":45004,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44987,"src":"20851:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45005,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"20862:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44999,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44994,"src":"20821:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20823:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20821:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20836:14:64","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44056,"src":"20821:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20821:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45007,"nodeType":"ExpressionStatement","src":"20821:48:64"},{"expression":{"arguments":[{"id":45013,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44987,"src":"20975:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45014,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"20986:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45008,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44994,"src":"20944:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20946:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20944:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20959:15:64","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44217,"src":"20944:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20944:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45016,"nodeType":"ExpressionStatement","src":"20944:49:64"},{"expression":{"arguments":[{"id":45022,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"21092:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45019,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44987,"src":"21071:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21063:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45017,"name":"address","nodeType":"ElementaryTypeName","src":"21063:8:64","stateMutability":"payable","typeDescriptions":{}}},"id":45020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21063:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21082:9:64","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"21063:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21063:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45024,"nodeType":"ExpressionStatement","src":"21063:36:64"}]},"documentation":{"id":44985,"nodeType":"StructuredDocumentation","src":"20418:179:64","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"20611:19:64","parameters":{"id":44990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44987,"mutability":"mutable","name":"validator","nameLocation":"20639:9:64","nodeType":"VariableDeclaration","scope":45026,"src":"20631:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44986,"name":"address","nodeType":"ElementaryTypeName","src":"20631:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44989,"mutability":"mutable","name":"amount","nameLocation":"20658:6:64","nodeType":"VariableDeclaration","scope":45026,"src":"20650:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44988,"name":"uint256","nodeType":"ElementaryTypeName","src":"20650:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20630:35:64"},"returnParameters":{"id":44991,"nodeType":"ParameterList","parameters":[],"src":"20675:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45054,"nodeType":"FunctionDefinition","src":"21236:280:64","nodes":[],"body":{"id":45053,"nodeType":"Block","src":"21332:184:64","nodes":[],"statements":[{"assignments":[45038],"declarations":[{"constant":false,"id":45038,"mutability":"mutable","name":"s","nameLocation":"21369:1:64","nodeType":"VariableDeclaration","scope":45053,"src":"21342:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45037,"nodeType":"UserDefinedTypeName","pathNode":{"id":45036,"name":"SubnetActorStorage","nameLocations":["21342:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"21342:18:64"},"referencedDeclaration":46085,"src":"21342:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45042,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45039,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"21373:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21395:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"21373:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21373:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21342:65:64"},{"expression":{"arguments":[{"id":45048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45029,"src":"21463:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45049,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45031,"src":"21484:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45050,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45033,"src":"21501:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45043,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"21417:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21419:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"21417:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21429:21:64","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":45816,"src":"21417:33:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21452:9:64","21474:8:64","21494:5:64"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21417:92:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45052,"nodeType":"ExpressionStatement","src":"21417:92:64"}]},"documentation":{"id":45027,"nodeType":"StructuredDocumentation","src":"21179:52:64","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21245:17:64","parameters":{"id":45034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45029,"mutability":"mutable","name":"validator","nameLocation":"21271:9:64","nodeType":"VariableDeclaration","scope":45054,"src":"21263:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45028,"name":"address","nodeType":"ElementaryTypeName","src":"21263:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45031,"mutability":"mutable","name":"metadata","nameLocation":"21297:8:64","nodeType":"VariableDeclaration","scope":45054,"src":"21282:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45030,"name":"bytes","nodeType":"ElementaryTypeName","src":"21282:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45033,"mutability":"mutable","name":"amount","nameLocation":"21315:6:64","nodeType":"VariableDeclaration","scope":45054,"src":"21307:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45032,"name":"uint256","nodeType":"ElementaryTypeName","src":"21307:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21262:60:64"},"returnParameters":{"id":45035,"nodeType":"ParameterList","parameters":[],"src":"21332:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45079,"nodeType":"FunctionDefinition","src":"21565:223:64","nodes":[],"body":{"id":45078,"nodeType":"Block","src":"21648:140:64","nodes":[],"statements":[{"assignments":[45064],"declarations":[{"constant":false,"id":45064,"mutability":"mutable","name":"s","nameLocation":"21685:1:64","nodeType":"VariableDeclaration","scope":45078,"src":"21658:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45063,"nodeType":"UserDefinedTypeName","pathNode":{"id":45062,"name":"SubnetActorStorage","nameLocations":["21658:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"21658:18:64"},"referencedDeclaration":46085,"src":"21658:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45068,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45065,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"21689:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21711:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"21689:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21689:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21658:65:64"},{"expression":{"arguments":[{"id":45074,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45057,"src":"21761:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45075,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45059,"src":"21772:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45069,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45064,"src":"21733:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21735:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"21733:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21745:15:64","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":45776,"src":"21733:27:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21733:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45077,"nodeType":"ExpressionStatement","src":"21733:48:64"}]},"documentation":{"id":45055,"nodeType":"StructuredDocumentation","src":"21522:38:64","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"21574:20:64","parameters":{"id":45060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45057,"mutability":"mutable","name":"validator","nameLocation":"21603:9:64","nodeType":"VariableDeclaration","scope":45079,"src":"21595:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45056,"name":"address","nodeType":"ElementaryTypeName","src":"21595:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45059,"mutability":"mutable","name":"metadata","nameLocation":"21629:8:64","nodeType":"VariableDeclaration","scope":45079,"src":"21614:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45058,"name":"bytes","nodeType":"ElementaryTypeName","src":"21614:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21594:44:64"},"returnParameters":{"id":45061,"nodeType":"ParameterList","parameters":[],"src":"21648:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45113,"nodeType":"FunctionDefinition","src":"21833:256:64","nodes":[],"body":{"id":45112,"nodeType":"Block","src":"21894:195:64","nodes":[],"statements":[{"assignments":[45089],"declarations":[{"constant":false,"id":45089,"mutability":"mutable","name":"s","nameLocation":"21931:1:64","nodeType":"VariableDeclaration","scope":45112,"src":"21904:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45088,"nodeType":"UserDefinedTypeName","pathNode":{"id":45087,"name":"SubnetActorStorage","nameLocations":["21904:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"21904:18:64"},"referencedDeclaration":46085,"src":"21904:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45093,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45090,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"21935:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21957:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"21935:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21935:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21904:65:64"},{"expression":{"arguments":[{"id":45099,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45082,"src":"22007:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45100,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45084,"src":"22018:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45094,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"21980:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21982:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"21980:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21992:14:64","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":45890,"src":"21980:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21980:45:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45102,"nodeType":"ExpressionStatement","src":"21980:45:64"},{"expression":{"arguments":[{"id":45108,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45082,"src":"22064:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45109,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45084,"src":"22075:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45103,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"22035:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22037:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"22035:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22050:13:64","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44015,"src":"22035:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22035:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45111,"nodeType":"ExpressionStatement","src":"22035:47:64"}]},"documentation":{"id":45080,"nodeType":"StructuredDocumentation","src":"21794:34:64","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"21842:7:64","parameters":{"id":45085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45082,"mutability":"mutable","name":"validator","nameLocation":"21858:9:64","nodeType":"VariableDeclaration","scope":45113,"src":"21850:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45081,"name":"address","nodeType":"ElementaryTypeName","src":"21850:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45084,"mutability":"mutable","name":"amount","nameLocation":"21877:6:64","nodeType":"VariableDeclaration","scope":45113,"src":"21869:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45083,"name":"uint256","nodeType":"ElementaryTypeName","src":"21869:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21849:35:64"},"returnParameters":{"id":45086,"nodeType":"ParameterList","parameters":[],"src":"21894:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45147,"nodeType":"FunctionDefinition","src":"22135:259:64","nodes":[],"body":{"id":45146,"nodeType":"Block","src":"22197:197:64","nodes":[],"statements":[{"assignments":[45123],"declarations":[{"constant":false,"id":45123,"mutability":"mutable","name":"s","nameLocation":"22234:1:64","nodeType":"VariableDeclaration","scope":45146,"src":"22207:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45122,"nodeType":"UserDefinedTypeName","pathNode":{"id":45121,"name":"SubnetActorStorage","nameLocations":["22207:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"22207:18:64"},"referencedDeclaration":46085,"src":"22207:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45127,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45124,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"22238:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22260:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"22238:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22238:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22207:65:64"},{"expression":{"arguments":[{"id":45133,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45116,"src":"22311:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45134,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45118,"src":"22322:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45128,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45123,"src":"22283:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22285:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"22283:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22295:15:64","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":45853,"src":"22283:27:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22283:46:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45136,"nodeType":"ExpressionStatement","src":"22283:46:64"},{"expression":{"arguments":[{"id":45142,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45116,"src":"22369:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45143,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45118,"src":"22380:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45123,"src":"22339:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22341:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"22339:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22354:14:64","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44056,"src":"22339:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22339:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45145,"nodeType":"ExpressionStatement","src":"22339:48:64"}]},"documentation":{"id":45114,"nodeType":"StructuredDocumentation","src":"22095:35:64","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22144:8:64","parameters":{"id":45119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45116,"mutability":"mutable","name":"validator","nameLocation":"22161:9:64","nodeType":"VariableDeclaration","scope":45147,"src":"22153:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45115,"name":"address","nodeType":"ElementaryTypeName","src":"22153:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45118,"mutability":"mutable","name":"amount","nameLocation":"22180:6:64","nodeType":"VariableDeclaration","scope":45147,"src":"22172:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45117,"name":"uint256","nodeType":"ElementaryTypeName","src":"22172:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22152:35:64"},"returnParameters":{"id":45120,"nodeType":"ParameterList","parameters":[],"src":"22197:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45174,"nodeType":"FunctionDefinition","src":"22503:244:64","nodes":[],"body":{"id":45173,"nodeType":"Block","src":"22556:191:64","nodes":[],"statements":[{"assignments":[45155],"declarations":[{"constant":false,"id":45155,"mutability":"mutable","name":"s","nameLocation":"22593:1:64","nodeType":"VariableDeclaration","scope":45173,"src":"22566:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45154,"nodeType":"UserDefinedTypeName","pathNode":{"id":45153,"name":"SubnetActorStorage","nameLocations":["22566:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"22566:18:64"},"referencedDeclaration":46085,"src":"22566:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45159,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45156,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"22597:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22619:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"22597:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22597:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22566:65:64"},{"assignments":[45161],"declarations":[{"constant":false,"id":45161,"mutability":"mutable","name":"amount","nameLocation":"22649:6:64","nodeType":"VariableDeclaration","scope":45173,"src":"22641:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45160,"name":"uint256","nodeType":"ElementaryTypeName","src":"22641:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45167,"initialValue":{"arguments":[{"id":45165,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45150,"src":"22679:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45162,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45155,"src":"22658:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22660:12:64","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":46068,"src":"22658:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22673:5:64","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":43602,"src":"22658:20:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22658:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22641:48:64"},{"eventCall":{"arguments":[{"id":45169,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45150,"src":"22722:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45170,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45161,"src":"22733:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45168,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44630,"src":"22704:17:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22704:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45172,"nodeType":"EmitStatement","src":"22699:41:64"}]},"documentation":{"id":45148,"nodeType":"StructuredDocumentation","src":"22457:41:64","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"22512:15:64","parameters":{"id":45151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45150,"mutability":"mutable","name":"validator","nameLocation":"22536:9:64","nodeType":"VariableDeclaration","scope":45174,"src":"22528:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45149,"name":"address","nodeType":"ElementaryTypeName","src":"22528:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22527:19:64"},"returnParameters":{"id":45152,"nodeType":"ParameterList","parameters":[],"src":"22556:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45230,"nodeType":"FunctionDefinition","src":"22861:439:64","nodes":[],"body":{"id":45229,"nodeType":"Block","src":"22918:382:64","nodes":[],"statements":[{"assignments":[45182],"declarations":[{"constant":false,"id":45182,"mutability":"mutable","name":"s","nameLocation":"22955:1:64","nodeType":"VariableDeclaration","scope":45229,"src":"22928:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45181,"nodeType":"UserDefinedTypeName","pathNode":{"id":45180,"name":"SubnetActorStorage","nameLocations":["22928:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"22928:18:64"},"referencedDeclaration":46085,"src":"22928:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45186,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45183,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"22959:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22981:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"22959:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22959:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22928:65:64"},{"assignments":[45188],"declarations":[{"constant":false,"id":45188,"mutability":"mutable","name":"amount","nameLocation":"23011:6:64","nodeType":"VariableDeclaration","scope":45229,"src":"23003:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45187,"name":"uint256","nodeType":"ElementaryTypeName","src":"23003:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45194,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45189,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45182,"src":"23020:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23022:14:64","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"23020:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23037:7:64","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"23020:24:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45193,"indexExpression":{"id":45192,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"23045:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23020:33:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23003:50:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45195,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45188,"src":"23068:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23078:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23068:11:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45202,"nodeType":"IfStatement","src":"23064:69:64","trueBody":{"id":45201,"nodeType":"Block","src":"23081:52:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45198,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37018,"src":"23102:18:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23102:20:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45200,"nodeType":"RevertStatement","src":"23095:27:64"}]}},{"expression":{"id":45211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45203,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45182,"src":"23143:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23145:14:64","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"23143:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23160:7:64","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"23143:24:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45209,"indexExpression":{"id":45206,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"23168:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23143:33:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23179:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23143:37:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45212,"nodeType":"ExpressionStatement","src":"23143:37:64"},{"expression":{"arguments":[{"id":45218,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45188,"src":"23241:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45214,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45182,"src":"23199:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23201:14:64","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"23199:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45213,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"23190:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":45216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23190:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":45217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23217:23:64","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":39837,"src":"23190:50:64","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23190:58:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45220,"nodeType":"ExpressionStatement","src":"23190:58:64"},{"expression":{"arguments":[{"id":45226,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45188,"src":"23286:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45223,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"23267:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23259:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45221,"name":"address","nodeType":"ElementaryTypeName","src":"23259:8:64","stateMutability":"payable","typeDescriptions":{}}},"id":45224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23276:9:64","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"23259:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45228,"nodeType":"ExpressionStatement","src":"23259:34:64"}]},"documentation":{"id":45175,"nodeType":"StructuredDocumentation","src":"22753:103:64","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"22870:21:64","parameters":{"id":45178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45177,"mutability":"mutable","name":"relayer","nameLocation":"22900:7:64","nodeType":"VariableDeclaration","scope":45230,"src":"22892:15:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45176,"name":"address","nodeType":"ElementaryTypeName","src":"22892:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22891:17:64"},"returnParameters":{"id":45179,"nodeType":"ParameterList","parameters":[],"src":"22918:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45253,"nodeType":"FunctionDefinition","src":"23306:247:64","nodes":[],"body":{"id":45252,"nodeType":"Block","src":"23379:174:64","nodes":[],"statements":[{"assignments":[45239],"declarations":[{"constant":false,"id":45239,"mutability":"mutable","name":"s","nameLocation":"23416:1:64","nodeType":"VariableDeclaration","scope":45252,"src":"23389:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45238,"nodeType":"UserDefinedTypeName","pathNode":{"id":45237,"name":"SubnetActorStorage","nameLocations":["23389:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"23389:18:64"},"referencedDeclaration":46085,"src":"23389:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45243,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45240,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"23420:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23442:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"23420:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23420:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23389:65:64"},{"expression":{"components":[{"expression":{"expression":{"id":45244,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45239,"src":"23472:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23474:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"23472:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23484:23:64","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"23472:35:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45247,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45239,"src":"23509:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23511:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"23509:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23521:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"23509:36:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45250,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23471:75:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45236,"id":45251,"nodeType":"Return","src":"23464:82:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23315:23:64","parameters":{"id":45231,"nodeType":"ParameterList","parameters":[],"src":"23338:2:64"},"returnParameters":{"id":45236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45253,"src":"23363:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45232,"name":"uint64","nodeType":"ElementaryTypeName","src":"23363:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45235,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45253,"src":"23371:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45234,"name":"uint64","nodeType":"ElementaryTypeName","src":"23371:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23362:16:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45463,"nodeType":"FunctionDefinition","src":"23681:1944:64","nodes":[],"body":{"id":45462,"nodeType":"Block","src":"23741:1884:64","nodes":[],"statements":[{"assignments":[45261],"declarations":[{"constant":false,"id":45261,"mutability":"mutable","name":"s","nameLocation":"23778:1:64","nodeType":"VariableDeclaration","scope":45462,"src":"23751:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45260,"nodeType":"UserDefinedTypeName","pathNode":{"id":45259,"name":"SubnetActorStorage","nameLocations":["23751:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"23751:18:64"},"referencedDeclaration":46085,"src":"23751:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45265,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45262,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"23782:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23804:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"23782:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23782:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23751:65:64"},{"assignments":[45268],"declarations":[{"constant":false,"id":45268,"mutability":"mutable","name":"changeSet","nameLocation":"23851:9:64","nodeType":"VariableDeclaration","scope":45462,"src":"23826:34:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45267,"nodeType":"UserDefinedTypeName","pathNode":{"id":45266,"name":"StakingChangeLog","nameLocations":["23826:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"23826:16:64"},"referencedDeclaration":48606,"src":"23826:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45271,"initialValue":{"expression":{"id":45269,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"23863:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23865:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"23863:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23826:48:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45272,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"23889:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45273,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"23912:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23922:23:64","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"23912:33:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23889:56:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45280,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"24017:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45281,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"24039:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24049:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"24039:34:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24017:56:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45286,"nodeType":"IfStatement","src":"24013:93:64","trueBody":{"id":45285,"nodeType":"Block","src":"24075:31:64","statements":[{"functionReturnParameters":45258,"id":45284,"nodeType":"Return","src":"24089:7:64"}]}},"id":45287,"nodeType":"IfStatement","src":"23885:221:64","trueBody":{"id":45279,"nodeType":"Block","src":"23947:60:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45276,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36940,"src":"23968:26:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23968:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45278,"nodeType":"RevertStatement","src":"23961:35:64"}]}},{"assignments":[45289],"declarations":[{"constant":false,"id":45289,"mutability":"mutable","name":"start","nameLocation":"24123:5:64","nodeType":"VariableDeclaration","scope":45462,"src":"24116:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45288,"name":"uint64","nodeType":"ElementaryTypeName","src":"24116:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45292,"initialValue":{"expression":{"id":45290,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"24131:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24141:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"24131:34:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24116:49:64"},{"body":{"id":45448,"nodeType":"Block","src":"24226:1257:64","statements":[{"assignments":[45302],"declarations":[{"constant":false,"id":45302,"mutability":"mutable","name":"change","nameLocation":"24262:6:64","nodeType":"VariableDeclaration","scope":45448,"src":"24240:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45301,"nodeType":"UserDefinedTypeName","pathNode":{"id":45300,"name":"StakingChange","nameLocations":["24240:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":48587,"src":"24240:13:64"},"referencedDeclaration":48587,"src":"24240:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":45307,"initialValue":{"arguments":[{"id":45305,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"24291:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":45303,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"24271:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24281:9:64","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":45950,"src":"24271:19:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$48587_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":45306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24271:22:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24240:53:64"},{"assignments":[45309],"declarations":[{"constant":false,"id":45309,"mutability":"mutable","name":"validator","nameLocation":"24315:9:64","nodeType":"VariableDeclaration","scope":45448,"src":"24307:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45308,"name":"address","nodeType":"ElementaryTypeName","src":"24307:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45312,"initialValue":{"expression":{"id":45310,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24327:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24334:9:64","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":48586,"src":"24327:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24307:36:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45313,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24362:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24369:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"24362:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45315,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"24375:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24392:11:64","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":48577,"src":"24375:28:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"24362:41:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45331,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24510:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24517:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"24510:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45333,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"24523:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24540:17:64","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":48578,"src":"24523:34:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"24510:47:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45435,"nodeType":"Block","src":"24829:546:64","statements":[{"assignments":[45373],"declarations":[{"constant":false,"id":45373,"mutability":"mutable","name":"amount","nameLocation":"24855:6:64","nodeType":"VariableDeclaration","scope":45435,"src":"24847:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45372,"name":"uint256","nodeType":"ElementaryTypeName","src":"24847:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45382,"initialValue":{"arguments":[{"expression":{"id":45376,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24875:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24882:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"24875:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24892:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45378,"name":"uint256","nodeType":"ElementaryTypeName","src":"24892:7:64","typeDescriptions":{}}}],"id":45380,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24891:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":45374,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24864:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24868:6:64","memberName":"decode","nodeType":"MemberAccess","src":"24864:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24864:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24847:54:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45383,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24924:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24931:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"24924:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45385,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"24937:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24954:8:64","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":48576,"src":"24937:25:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"24924:38:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45433,"nodeType":"Block","src":"25198:163:64","statements":[{"expression":{"arguments":[{"id":45420,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"25250:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45421,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25261:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45415,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25220:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25222:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"25220:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25235:14:64","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44151,"src":"25220:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25220:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45423,"nodeType":"ExpressionStatement","src":"25220:48:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":45425,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25299:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25301:14:64","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"25299:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45424,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"25290:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":45427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25290:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":45428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25317:8:64","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":39825,"src":"25290:35:64","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":45430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":45429,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25333:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25290:50:64","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":45431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25290:52:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45432,"nodeType":"ExpressionStatement","src":"25290:52:64"}]},"id":45434,"nodeType":"IfStatement","src":"24920:441:64","trueBody":{"id":45414,"nodeType":"Block","src":"24964:228:64","statements":[{"expression":{"arguments":[{"id":45393,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"25017:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45394,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25028:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45388,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24986:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24988:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24986:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25001:15:64","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44217,"src":"24986:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24986:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45396,"nodeType":"ExpressionStatement","src":"24986:49:64"},{"expression":{"arguments":[{"id":45402,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"25086:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45403,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25097:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45397,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25057:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25059:12:64","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":46068,"src":"25057:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25072:13:64","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":43558,"src":"25057:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":45404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25057:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45405,"nodeType":"ExpressionStatement","src":"25057:47:64"},{"expression":{"arguments":[{"id":45411,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25166:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45407,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25135:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25137:14:64","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"25135:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45406,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"25126:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":45409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25126:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":45410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25153:12:64","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":39831,"src":"25126:39:64","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25126:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45413,"nodeType":"ExpressionStatement","src":"25126:47:64"}]}}]},"id":45436,"nodeType":"IfStatement","src":"24506:869:64","trueBody":{"id":45371,"nodeType":"Block","src":"24559:264:64","statements":[{"assignments":[45337,45339],"declarations":[{"constant":false,"id":45337,"mutability":"mutable","name":"metadata","nameLocation":"24591:8:64","nodeType":"VariableDeclaration","scope":45371,"src":"24578:21:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45336,"name":"bytes","nodeType":"ElementaryTypeName","src":"24578:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45339,"mutability":"mutable","name":"power","nameLocation":"24609:5:64","nodeType":"VariableDeclaration","scope":45371,"src":"24601:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45338,"name":"uint256","nodeType":"ElementaryTypeName","src":"24601:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45350,"initialValue":{"arguments":[{"expression":{"id":45342,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24629:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24636:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"24629:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24646:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":45344,"name":"bytes","nodeType":"ElementaryTypeName","src":"24646:5:64","typeDescriptions":{}}},{"id":45347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24653:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45346,"name":"uint256","nodeType":"ElementaryTypeName","src":"24653:7:64","typeDescriptions":{}}}],"id":45348,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24645:16:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":45340,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24618:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24622:6:64","memberName":"decode","nodeType":"MemberAccess","src":"24618:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24618:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"24577:85:64"},{"expression":{"id":45360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45351,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24680:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24682:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24680:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24695:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"24680:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45357,"indexExpression":{"id":45354,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"24706:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24680:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24717:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"24680:45:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45359,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45337,"src":"24728:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"24680:56:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45361,"nodeType":"ExpressionStatement","src":"24680:56:64"},{"expression":{"arguments":[{"id":45367,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"24791:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45368,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45339,"src":"24802:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45362,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24754:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24756:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24754:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24769:21:64","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44109,"src":"24754:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24754:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45370,"nodeType":"ExpressionStatement","src":"24754:54:64"}]}},"id":45437,"nodeType":"IfStatement","src":"24358:1017:64","trueBody":{"id":45330,"nodeType":"Block","src":"24405:95:64","statements":[{"expression":{"id":45328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45318,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24423:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24425:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24423:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24438:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"24423:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45324,"indexExpression":{"id":45321,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"24449:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24423:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24460:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"24423:45:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45326,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24471:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24478:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"24471:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24423:62:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45329,"nodeType":"ExpressionStatement","src":"24423:62:64"}]}},{"expression":{"arguments":[{"id":45441,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"25411:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":45438,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"25389:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25399:11:64","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":45965,"src":"25389:21:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":45442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25389:24:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45443,"nodeType":"ExpressionStatement","src":"25389:24:64"},{"id":45447,"nodeType":"UncheckedBlock","src":"25427:46:64","statements":[{"expression":{"id":45445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25455:3:64","subExpression":{"id":45444,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"25457:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45446,"nodeType":"ExpressionStatement","src":"25455:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45297,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"24198:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":45298,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"24203:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24198:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45449,"initializationExpression":{"assignments":[45294],"declarations":[{"constant":false,"id":45294,"mutability":"mutable","name":"i","nameLocation":"24187:1:64","nodeType":"VariableDeclaration","scope":45449,"src":"24180:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45293,"name":"uint64","nodeType":"ElementaryTypeName","src":"24180:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45296,"initialValue":{"id":45295,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45289,"src":"24191:5:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24180:16:64"},"nodeType":"ForStatement","src":"24175:1308:64"},{"expression":{"id":45456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":45450,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"25493:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25503:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"25493:34:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45453,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"25530:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":45454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25552:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25530:23:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25493:60:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45457,"nodeType":"ExpressionStatement","src":"25493:60:64"},{"eventCall":{"arguments":[{"id":45459,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"25598:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":45458,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44624,"src":"25569:28:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":45460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25569:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45461,"nodeType":"EmitStatement","src":"25564:54:64"}]},"documentation":{"id":45254,"nodeType":"StructuredDocumentation","src":"23559:117:64","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"23690:13:64","parameters":{"id":45257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45256,"mutability":"mutable","name":"configurationNumber","nameLocation":"23711:19:64","nodeType":"VariableDeclaration","scope":45463,"src":"23704:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45255,"name":"uint64","nodeType":"ElementaryTypeName","src":"23704:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23703:28:64"},"returnParameters":{"id":45258,"nodeType":"ParameterList","parameters":[],"src":"23741:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[45464],"name":"LibStaking","nameLocation":"15346:10:64","scope":45729,"usedErrors":[32032,32040,37018]},{"id":45728,"nodeType":"ContractDefinition","src":"25784:2695:64","nodes":[{"id":45469,"nodeType":"UsingForDirective","src":"25819:39:64","nodes":[],"global":false,"libraryName":{"id":45466,"name":"LibValidatorSet","nameLocations":["25825:15:64"],"nodeType":"IdentifierPath","referencedDeclaration":44594,"src":"25825:15:64"},"typeName":{"id":45468,"nodeType":"UserDefinedTypeName","pathNode":{"id":45467,"name":"ValidatorSet","nameLocations":["25845:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"25845:12:64"},"referencedDeclaration":48673,"src":"25845:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45473,"nodeType":"UsingForDirective","src":"25863:47:64","nodes":[],"global":false,"libraryName":{"id":45470,"name":"LibStakingChangeLog","nameLocations":["25869:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":45966,"src":"25869:19:64"},"typeName":{"id":45472,"nodeType":"UserDefinedTypeName","pathNode":{"id":45471,"name":"StakingChangeLog","nameLocations":["25893:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"25893:16:64"},"referencedDeclaration":48606,"src":"25893:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45508,"nodeType":"FunctionDefinition","src":"25916:475:64","nodes":[],"body":{"id":45507,"nodeType":"Block","src":"26029:362:64","nodes":[],"statements":[{"assignments":[45483],"declarations":[{"constant":false,"id":45483,"mutability":"mutable","name":"configurationNumber","nameLocation":"26046:19:64","nodeType":"VariableDeclaration","scope":45507,"src":"26039:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45482,"name":"uint64","nodeType":"ElementaryTypeName","src":"26039:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45497,"initialValue":{"arguments":[{"expression":{"expression":{"id":45487,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26119:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26133:6:64","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":48590,"src":"26119:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":45489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26140:9:64","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":48586,"src":"26119:30:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":45490,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26167:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26181:6:64","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":48590,"src":"26167:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":45492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26188:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"26167:23:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":45493,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26213:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26227:6:64","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":48590,"src":"26213:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":45495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26234:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"26213:28:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45484,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45476,"src":"26068:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26073:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"26068:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26081:12:64","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":45932,"src":"26068:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$48579_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":45496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26108:9:64","26163:2:64","26204:7:64"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26068:184:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26039:213:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45498,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45483,"src":"26267:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":45499,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26290:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26304:19:64","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48592,"src":"26290:33:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26267:56:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45506,"nodeType":"IfStatement","src":"26263:122:64","trueBody":{"id":45505,"nodeType":"Block","src":"26325:60:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45502,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36986,"src":"26346:26:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26346:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45504,"nodeType":"RevertStatement","src":"26339:35:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"25925:11:64","parameters":{"id":45480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45476,"mutability":"mutable","name":"self","nameLocation":"25969:4:64","nodeType":"VariableDeclaration","scope":45508,"src":"25937:36:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":45475,"nodeType":"UserDefinedTypeName","pathNode":{"id":45474,"name":"ParentValidatorsTracker","nameLocations":["25937:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"25937:23:64"},"referencedDeclaration":48680,"src":"25937:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":45479,"mutability":"mutable","name":"changeRequest","nameLocation":"26005:13:64","nodeType":"VariableDeclaration","scope":45508,"src":"25975:43:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":45478,"nodeType":"UserDefinedTypeName","pathNode":{"id":45477,"name":"StakingChangeRequest","nameLocations":["25975:20:64"],"nodeType":"IdentifierPath","referencedDeclaration":48593,"src":"25975:20:64"},"referencedDeclaration":48593,"src":"25975:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"25936:83:64"},"returnParameters":{"id":45481,"nodeType":"ParameterList","parameters":[],"src":"26029:0:64"},"scope":45728,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45549,"nodeType":"FunctionDefinition","src":"26397:415:64","nodes":[],"body":{"id":45548,"nodeType":"Block","src":"26540:272:64","nodes":[],"statements":[{"assignments":[45519],"declarations":[{"constant":false,"id":45519,"mutability":"mutable","name":"length","nameLocation":"26558:6:64","nodeType":"VariableDeclaration","scope":45548,"src":"26550:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45518,"name":"uint256","nodeType":"ElementaryTypeName","src":"26550:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45522,"initialValue":{"expression":{"id":45520,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45515,"src":"26567:14:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":45521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26582:6:64","memberName":"length","nodeType":"MemberAccess","src":"26567:21:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26550:38:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45523,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45519,"src":"26602:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26612:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26602:11:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45528,"nodeType":"IfStatement","src":"26598:48:64","trueBody":{"id":45527,"nodeType":"Block","src":"26615:31:64","statements":[{"functionReturnParameters":45517,"id":45526,"nodeType":"Return","src":"26629:7:64"}]}},{"body":{"id":45546,"nodeType":"Block","src":"26686:120:64","statements":[{"expression":{"arguments":[{"id":45536,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45511,"src":"26712:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":45537,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45515,"src":"26718:14:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":45539,"indexExpression":{"id":45538,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45530,"src":"26733:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26718:17:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":45535,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45508,"src":"26700:11:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$48680_storage_ptr_$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":45540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26700:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45541,"nodeType":"ExpressionStatement","src":"26700:36:64"},{"id":45545,"nodeType":"UncheckedBlock","src":"26750:46:64","statements":[{"expression":{"id":45543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"26778:3:64","subExpression":{"id":45542,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45530,"src":"26780:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45544,"nodeType":"ExpressionStatement","src":"26778:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45532,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45530,"src":"26672:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45533,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45519,"src":"26676:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26672:10:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45547,"initializationExpression":{"assignments":[45530],"declarations":[{"constant":false,"id":45530,"mutability":"mutable","name":"i","nameLocation":"26669:1:64","nodeType":"VariableDeclaration","scope":45547,"src":"26661:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45529,"name":"uint256","nodeType":"ElementaryTypeName","src":"26661:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45531,"nodeType":"VariableDeclarationStatement","src":"26661:9:64"},"nodeType":"ForStatement","src":"26656:150:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26406:16:64","parameters":{"id":45516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45511,"mutability":"mutable","name":"self","nameLocation":"26464:4:64","nodeType":"VariableDeclaration","scope":45549,"src":"26432:36:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":45510,"nodeType":"UserDefinedTypeName","pathNode":{"id":45509,"name":"ParentValidatorsTracker","nameLocations":["26432:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"26432:23:64"},"referencedDeclaration":48680,"src":"26432:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":45515,"mutability":"mutable","name":"changeRequests","nameLocation":"26510:14:64","nodeType":"VariableDeclaration","scope":45549,"src":"26478:46:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":45513,"nodeType":"UserDefinedTypeName","pathNode":{"id":45512,"name":"StakingChangeRequest","nameLocations":["26478:20:64"],"nodeType":"IdentifierPath","referencedDeclaration":48593,"src":"26478:20:64"},"referencedDeclaration":48593,"src":"26478:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":45514,"nodeType":"ArrayTypeName","src":"26478:22:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26422:108:64"},"returnParameters":{"id":45517,"nodeType":"ParameterList","parameters":[],"src":"26540:0:64"},"scope":45728,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45727,"nodeType":"FunctionDefinition","src":"26883:1594:64","nodes":[],"body":{"id":45726,"nodeType":"Block","src":"26981:1496:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45558,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"26995:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":45559,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27018:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27023:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27018:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27031:23:64","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"27018:36:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26995:59:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45567,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"27126:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":45568,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27148:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27153:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27148:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27161:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"27148:37:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27126:59:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45574,"nodeType":"IfStatement","src":"27122:96:64","trueBody":{"id":45573,"nodeType":"Block","src":"27187:31:64","statements":[{"functionReturnParameters":45557,"id":45572,"nodeType":"Return","src":"27201:7:64"}]}},"id":45575,"nodeType":"IfStatement","src":"26991:227:64","trueBody":{"id":45566,"nodeType":"Block","src":"27056:60:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45563,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36940,"src":"27077:26:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27077:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45565,"nodeType":"RevertStatement","src":"27070:35:64"}]}},{"assignments":[45577],"declarations":[{"constant":false,"id":45577,"mutability":"mutable","name":"start","nameLocation":"27235:5:64","nodeType":"VariableDeclaration","scope":45726,"src":"27228:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45576,"name":"uint64","nodeType":"ElementaryTypeName","src":"27228:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45581,"initialValue":{"expression":{"expression":{"id":45578,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27243:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27248:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27243:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27256:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"27243:37:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27228:52:64"},{"body":{"id":45714,"nodeType":"Block","src":"27342:1056:64","statements":[{"assignments":[45591],"declarations":[{"constant":false,"id":45591,"mutability":"mutable","name":"change","nameLocation":"27378:6:64","nodeType":"VariableDeclaration","scope":45714,"src":"27356:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45590,"nodeType":"UserDefinedTypeName","pathNode":{"id":45589,"name":"StakingChange","nameLocations":["27356:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":48587,"src":"27356:13:64"},"referencedDeclaration":48587,"src":"27356:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":45597,"initialValue":{"arguments":[{"id":45595,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"27410:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":45592,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27387:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27392:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27387:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27400:9:64","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":45950,"src":"27387:22:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$48587_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":45596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27387:25:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27356:56:64"},{"assignments":[45599],"declarations":[{"constant":false,"id":45599,"mutability":"mutable","name":"validator","nameLocation":"27434:9:64","nodeType":"VariableDeclaration","scope":45714,"src":"27426:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45598,"name":"address","nodeType":"ElementaryTypeName","src":"27426:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45602,"initialValue":{"expression":{"id":45600,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27446:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27453:9:64","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":48586,"src":"27446:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27426:36:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45603,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27481:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45604,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27488:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"27481:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45605,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"27494:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27511:11:64","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":48577,"src":"27494:28:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"27481:41:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45621,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27630:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27637:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"27630:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45623,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"27643:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27660:17:64","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":48578,"src":"27643:34:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"27630:47:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45699,"nodeType":"Block","src":"27951:336:64","statements":[{"assignments":[45663],"declarations":[{"constant":false,"id":45663,"mutability":"mutable","name":"amount","nameLocation":"27977:6:64","nodeType":"VariableDeclaration","scope":45699,"src":"27969:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45662,"name":"uint256","nodeType":"ElementaryTypeName","src":"27969:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45672,"initialValue":{"arguments":[{"expression":{"id":45666,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27997:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28004:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"27997:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28014:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45668,"name":"uint256","nodeType":"ElementaryTypeName","src":"28014:7:64","typeDescriptions":{}}}],"id":45670,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28013:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":45664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27986:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27990:6:64","memberName":"decode","nodeType":"MemberAccess","src":"27986:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27986:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27969:54:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45673,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"28046:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28053:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"28046:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45675,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"28059:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28076:8:64","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":48576,"src":"28059:25:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"28046:38:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45697,"nodeType":"Block","src":"28183:90:64","statements":[{"expression":{"arguments":[{"id":45693,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"28236:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45694,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45663,"src":"28247:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45688,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28205:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28210:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"28205:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28221:14:64","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44151,"src":"28205:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28205:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45696,"nodeType":"ExpressionStatement","src":"28205:49:64"}]},"id":45698,"nodeType":"IfStatement","src":"28042:231:64","trueBody":{"id":45687,"nodeType":"Block","src":"28086:91:64","statements":[{"expression":{"arguments":[{"id":45683,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"28140:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45684,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45663,"src":"28151:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45678,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28108:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28113:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"28108:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28124:15:64","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44217,"src":"28108:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28108:50:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45686,"nodeType":"ExpressionStatement","src":"28108:50:64"}]}}]},"id":45700,"nodeType":"IfStatement","src":"27626:661:64","trueBody":{"id":45661,"nodeType":"Block","src":"27679:266:64","statements":[{"assignments":[45627,45629],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"metadata","nameLocation":"27711:8:64","nodeType":"VariableDeclaration","scope":45661,"src":"27698:21:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45626,"name":"bytes","nodeType":"ElementaryTypeName","src":"27698:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45629,"mutability":"mutable","name":"power","nameLocation":"27729:5:64","nodeType":"VariableDeclaration","scope":45661,"src":"27721:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45628,"name":"uint256","nodeType":"ElementaryTypeName","src":"27721:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45640,"initialValue":{"arguments":[{"expression":{"id":45632,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27749:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27756:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"27749:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27766:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":45634,"name":"bytes","nodeType":"ElementaryTypeName","src":"27766:5:64","typeDescriptions":{}}},{"id":45637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27773:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45636,"name":"uint256","nodeType":"ElementaryTypeName","src":"27773:7:64","typeDescriptions":{}}}],"id":45638,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27765:16:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":45630,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27738:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27742:6:64","memberName":"decode","nodeType":"MemberAccess","src":"27738:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27738:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"27697:85:64"},{"expression":{"id":45650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45641,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27800:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27805:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"27800:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27816:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"27800:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45647,"indexExpression":{"id":45644,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"27827:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27800:37:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"27838:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"27800:46:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45649,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45627,"src":"27849:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"27800:57:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45651,"nodeType":"ExpressionStatement","src":"27800:57:64"},{"expression":{"arguments":[{"id":45657,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"27913:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45658,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45629,"src":"27924:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45652,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27875:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45655,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27880:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"27875:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27891:21:64","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44109,"src":"27875:37:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27875:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45660,"nodeType":"ExpressionStatement","src":"27875:55:64"}]}},"id":45701,"nodeType":"IfStatement","src":"27477:810:64","trueBody":{"id":45620,"nodeType":"Block","src":"27524:96:64","statements":[{"expression":{"id":45618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45608,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27542:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27547:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"27542:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27558:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"27542:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45614,"indexExpression":{"id":45611,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"27569:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27542:37:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"27580:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"27542:46:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45616,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27591:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27598:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"27591:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"27542:63:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45619,"nodeType":"ExpressionStatement","src":"27542:63:64"}]}},{"expression":{"arguments":[{"id":45707,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"28326:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":45702,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28301:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28306:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"28301:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28314:11:64","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":45965,"src":"28301:24:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":45708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28301:27:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45709,"nodeType":"ExpressionStatement","src":"28301:27:64"},{"id":45713,"nodeType":"UncheckedBlock","src":"28342:46:64","statements":[{"expression":{"id":45711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28370:3:64","subExpression":{"id":45710,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"28372:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45712,"nodeType":"ExpressionStatement","src":"28370:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45586,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"27314:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":45587,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"27319:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27314:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45715,"initializationExpression":{"assignments":[45583],"declarations":[{"constant":false,"id":45583,"mutability":"mutable","name":"i","nameLocation":"27303:1:64","nodeType":"VariableDeclaration","scope":45715,"src":"27296:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45582,"name":"uint64","nodeType":"ElementaryTypeName","src":"27296:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45585,"initialValue":{"id":45584,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45577,"src":"27307:5:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27296:16:64"},"nodeType":"ForStatement","src":"27291:1107:64"},{"expression":{"id":45724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":45716,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28407:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28412:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"28407:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28420:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"28407:37:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45721,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"28447:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":45722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28469:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28447:23:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28407:63:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45725,"nodeType":"ExpressionStatement","src":"28407:63:64"}]},"documentation":{"id":45550,"nodeType":"StructuredDocumentation","src":"26818:60:64","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"26892:13:64","parameters":{"id":45556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45553,"mutability":"mutable","name":"self","nameLocation":"26938:4:64","nodeType":"VariableDeclaration","scope":45727,"src":"26906:36:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":45552,"nodeType":"UserDefinedTypeName","pathNode":{"id":45551,"name":"ParentValidatorsTracker","nameLocations":["26906:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"26906:23:64"},"referencedDeclaration":48680,"src":"26906:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":45555,"mutability":"mutable","name":"configurationNumber","nameLocation":"26951:19:64","nodeType":"VariableDeclaration","scope":45727,"src":"26944:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45554,"name":"uint64","nodeType":"ElementaryTypeName","src":"26944:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"26905:66:64"},"returnParameters":{"id":45557,"nodeType":"ParameterList","parameters":[],"src":"26981:0:64"},"scope":45728,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":45465,"nodeType":"StructuredDocumentation","src":"25629:155:64","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[45728],"name":"LibValidatorTracking","nameLocation":"25792:20:64","scope":45729,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":64} \ No newline at end of file +{"abi":[{"type":"event","name":"ActiveValidatorCollateralUpdated","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"newPower","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ActiveValidatorLeft","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ActiveValidatorReplaced","inputs":[{"name":"oldValidator","type":"address","indexed":false,"internalType":"address"},{"name":"newValidator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NewActiveValidator","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"power","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NewWaitingValidator","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"power","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WaitingValidatorCollateralUpdated","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"newPower","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WaitingValidatorLeft","inputs":[{"name":"validator","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122045f1bff0b9d22c2c30c7fcb6bbe5102e820c36c4824b43fc0dcf2bc2b3100ab264736f6c63430008130033","sourceMap":"3900:11436:69:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122045f1bff0b9d22c2c30c7fcb6bbe5102e820c36c4824b43fc0dcf2bc2b3100ab264736f6c63430008130033","sourceMap":"3900:11436:69:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPower\",\"type\":\"uint256\"}],\"name\":\"ActiveValidatorCollateralUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"ActiveValidatorLeft\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldValidator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newValidator\",\"type\":\"address\"}],\"name\":\"ActiveValidatorReplaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"}],\"name\":\"NewActiveValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"}],\"name\":\"NewWaitingValidator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPower\",\"type\":\"uint256\"}],\"name\":\"WaitingValidatorCollateralUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"WaitingValidatorLeft\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The util library for `ValidatorSet`\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibValidatorSet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"newPower","type":"uint256","indexed":false}],"type":"event","name":"ActiveValidatorCollateralUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false}],"type":"event","name":"ActiveValidatorLeft","anonymous":false},{"inputs":[{"internalType":"address","name":"oldValidator","type":"address","indexed":false},{"internalType":"address","name":"newValidator","type":"address","indexed":false}],"type":"event","name":"ActiveValidatorReplaced","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"power","type":"uint256","indexed":false}],"type":"event","name":"NewActiveValidator","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"power","type":"uint256","indexed":false}],"type":"event","name":"NewWaitingValidator","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"uint256","name":"newPower","type":"uint256","indexed":false}],"type":"event","name":"WaitingValidatorCollateralUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"validator","type":"address","indexed":false}],"type":"event","name":"WaitingValidatorLeft","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibValidatorSet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":46441,"exportedSymbols":{"Address":[32838],"AddressShouldBeValidator":[37368],"AddressStakingReleases":[50140],"CannotConfirmFutureChanges":[37372],"IGateway":[40354],"InvalidConfigurationNumber":[37418],"LibAddressStakingReleases":[44183],"LibMaxPQ":[49016],"LibMinPQ":[49635],"LibStaking":[46176],"LibStakingChangeLog":[46678],"LibStakingReleaseQueue":[44302],"LibSubnetActorStorage":[47292],"LibValidatorSet":[45293],"LibValidatorTracking":[46440],"MaxPQ":[48411],"MinPQ":[49029],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NotValidator":[37490],"ParentValidatorsTracker":[50197],"PermissionMode":[50165],"StakingChange":[50104],"StakingChangeLog":[50123],"StakingChangeRequest":[50110],"StakingOperation":[50096],"StakingRelease":[50130],"StakingReleaseQueue":[50150],"SubnetActorStorage":[47281],"Validator":[50211],"ValidatorSet":[50190],"WithdrawExceedingCollateral":[37510]},"nodeType":"SourceUnit","src":"46:28930:69","nodes":[{"id":44015,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":44017,"nodeType":"ImportDirective","src":"71:52:69","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":44016,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44020,"nodeType":"ImportDirective","src":"124:86:69","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":44018,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"132:21:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44019,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"155:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44023,"nodeType":"ImportDirective","src":"211:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49017,"symbolAliases":[{"foreign":{"id":44021,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49016,"src":"219:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44022,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48411,"src":"229:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44026,"nodeType":"ImportDirective","src":"268:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49636,"symbolAliases":[{"foreign":{"id":44024,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49635,"src":"276:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44025,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49029,"src":"286:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44028,"nodeType":"ImportDirective","src":"325:62:69","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":46679,"symbolAliases":[{"foreign":{"id":44027,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46678,"src":"333:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44040,"nodeType":"ImportDirective","src":"388:237:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":44029,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"396:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44030,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"412:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44031,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"433:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44032,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50104,"src":"451:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44033,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50110,"src":"466:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44034,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"488:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44035,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"506:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44036,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"522:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44037,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50140,"src":"536:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44038,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"560:23:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44039,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"585:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44048,"nodeType":"ImportDirective","src":"626:208:69","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":44041,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"634:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44042,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"654:27:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44043,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"683:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44044,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"697:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44045,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"725:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44046,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"749:24:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44047,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"775:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44050,"nodeType":"ImportDirective","src":"835:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":44049,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"843:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44183,"nodeType":"ContractDefinition","src":"902:1635:69","nodes":[{"id":44089,"nodeType":"FunctionDefinition","src":"1118:261:69","nodes":[],"body":{"id":44088,"nodeType":"Block","src":"1209:170:69","nodes":[],"statements":[{"assignments":[44061],"declarations":[{"constant":false,"id":44061,"mutability":"mutable","name":"length","nameLocation":"1226:6:69","nodeType":"VariableDeclaration","scope":44088,"src":"1219:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44060,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44064,"initialValue":{"expression":{"id":44062,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1235:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:69"},{"assignments":[44066],"declarations":[{"constant":false,"id":44066,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:69","nodeType":"VariableDeclaration","scope":44088,"src":"1256:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44065,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44071,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44067,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1273:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1273:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44069,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1289:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:69"},{"expression":{"id":44078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":44072,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"1306:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44076,"indexExpression":{"id":44074,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44066,"src":"1320:7:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44077,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44057,"src":"1331:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"id":44079,"nodeType":"ExpressionStatement","src":"1306:32:69"},{"expression":{"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44080,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1348:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1348:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44083,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1362:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":44084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44087,"nodeType":"ExpressionStatement","src":"1348:24:69"}]},"documentation":{"id":44051,"nodeType":"StructuredDocumentation","src":"942:171:69","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:69","parameters":{"id":44058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44054,"mutability":"mutable","name":"self","nameLocation":"1163:4:69","nodeType":"VariableDeclaration","scope":44089,"src":"1132:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44053,"nodeType":"UserDefinedTypeName","pathNode":{"id":44052,"name":"AddressStakingReleases","nameLocations":["1132:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1132:22:69"},"referencedDeclaration":50140,"src":"1132:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":44057,"mutability":"mutable","name":"release","nameLocation":"1191:7:69","nodeType":"VariableDeclaration","scope":44089,"src":"1169:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44056,"nodeType":"UserDefinedTypeName","pathNode":{"id":44055,"name":"StakingRelease","nameLocations":["1169:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1169:14:69"},"referencedDeclaration":50130,"src":"1169:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:69"},"returnParameters":{"id":44059,"nodeType":"ParameterList","parameters":[],"src":"1209:0:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44182,"nodeType":"FunctionDefinition","src":"1637:898:69","nodes":[],"body":{"id":44181,"nodeType":"Block","src":"1726:809:69","nodes":[],"statements":[{"assignments":[44101],"declarations":[{"constant":false,"id":44101,"mutability":"mutable","name":"length","nameLocation":"1743:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1736:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44100,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44104,"initialValue":{"expression":{"id":44102,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1752:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1752:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1777:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1777:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44113,"nodeType":"IfStatement","src":"1773:78:69","trueBody":{"id":44112,"nodeType":"Block","src":"1795:56:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44109,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"1816:22:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44111,"nodeType":"RevertStatement","src":"1809:31:69"}]}},{"assignments":[44115],"declarations":[{"constant":false,"id":44115,"mutability":"mutable","name":"i","nameLocation":"1868:1:69","nodeType":"VariableDeclaration","scope":44181,"src":"1861:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44114,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44118,"initialValue":{"expression":{"id":44116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1872:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1872:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:69"},{"assignments":[44120],"declarations":[{"constant":false,"id":44120,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:69","nodeType":"VariableDeclaration","scope":44181,"src":"1895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44119,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44122,"initialValue":{"id":44121,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1914:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:69"},{"assignments":[44124],"declarations":[{"constant":false,"id":44124,"mutability":"mutable","name":"amount","nameLocation":"1938:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1930:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44125,"nodeType":"VariableDeclarationStatement","src":"1930:14:69"},{"body":{"id":44163,"nodeType":"Block","src":"1973:458:69","statements":[{"assignments":[44131],"declarations":[{"constant":false,"id":44131,"mutability":"mutable","name":"release","nameLocation":"2009:7:69","nodeType":"VariableDeclaration","scope":44163,"src":"1987:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44130,"nodeType":"UserDefinedTypeName","pathNode":{"id":44129,"name":"StakingRelease","nameLocations":["1987:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1987:14:69"},"referencedDeclaration":50130,"src":"1987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44136,"initialValue":{"baseExpression":{"expression":{"id":44132,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2019:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2019:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44135,"indexExpression":{"id":44134,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2033:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44137,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2184:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:69","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":50126,"src":"2184:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":44139,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:69","memberName":"number","nodeType":"MemberAccess","src":"2204:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44144,"nodeType":"IfStatement","src":"2180:76:69","trueBody":{"id":44143,"nodeType":"Block","src":"2218:38:69","statements":[{"id":44142,"nodeType":"Break","src":"2236:5:69"}]}},{"expression":{"id":44148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44145,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":44146,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2280:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:69","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":50129,"src":"2280:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44149,"nodeType":"ExpressionStatement","src":"2270:24:69"},{"expression":{"id":44154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:69","subExpression":{"baseExpression":{"expression":{"id":44150,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2315:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2315:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44153,"indexExpression":{"id":44152,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2329:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44155,"nodeType":"ExpressionStatement","src":"2308:23:69"},{"id":44162,"nodeType":"UncheckedBlock","src":"2346:75:69","statements":[{"expression":{"id":44157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:69","subExpression":{"id":44156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2376:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44158,"nodeType":"ExpressionStatement","src":"2374:3:69"},{"expression":{"id":44160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:69","subExpression":{"id":44159,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2397:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44161,"nodeType":"ExpressionStatement","src":"2395:11:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44126,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"1961:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44127,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1965:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44164,"nodeType":"WhileStatement","src":"1954:477:69"},{"expression":{"id":44169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44165,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2441:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"2441:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44168,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2457:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44170,"nodeType":"ExpressionStatement","src":"2441:17:69"},{"expression":{"id":44175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44171,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2468:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"2468:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44174,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2482:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44176,"nodeType":"ExpressionStatement","src":"2468:23:69"},{"expression":{"components":[{"id":44177,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2510:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44178,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2518:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":44179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":44099,"id":44180,"nodeType":"Return","src":"2502:26:69"}]},"documentation":{"id":44090,"nodeType":"StructuredDocumentation","src":"1385:247:69","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:69","parameters":{"id":44094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44093,"mutability":"mutable","name":"self","nameLocation":"1685:4:69","nodeType":"VariableDeclaration","scope":44182,"src":"1654:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44092,"nodeType":"UserDefinedTypeName","pathNode":{"id":44091,"name":"AddressStakingReleases","nameLocations":["1654:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1654:22:69"},"referencedDeclaration":50140,"src":"1654:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:69"},"returnParameters":{"id":44099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1709:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44095,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1718:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44097,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[44183],"name":"LibAddressStakingReleases","nameLocation":"910:25:69","scope":46441,"usedErrors":[]},{"id":44302,"nodeType":"ContractDefinition","src":"2586:1272:69","nodes":[{"id":44187,"nodeType":"UsingForDirective","src":"2623:34:69","nodes":[],"global":false,"libraryName":{"id":44185,"name":"Address","nameLocations":["2629:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"2629:7:69"},"typeName":{"id":44186,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44191,"nodeType":"UsingForDirective","src":"2662:59:69","nodes":[],"global":false,"libraryName":{"id":44188,"name":"LibAddressStakingReleases","nameLocations":["2668:25:69"],"nodeType":"IdentifierPath","referencedDeclaration":44183,"src":"2668:25:69"},"typeName":{"id":44190,"nodeType":"UserDefinedTypeName","pathNode":{"id":44189,"name":"AddressStakingReleases","nameLocations":["2698:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"2698:22:69"},"referencedDeclaration":50140,"src":"2698:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":44199,"nodeType":"EventDefinition","src":"2727:84:69","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:69","parameters":{"id":44198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44193,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:69","nodeType":"VariableDeclaration","scope":44199,"src":"2754:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44192,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44195,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:69","nodeType":"VariableDeclaration","scope":44199,"src":"2773:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44194,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44197,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:69","nodeType":"VariableDeclaration","scope":44199,"src":"2789:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:69"}},{"id":44214,"nodeType":"FunctionDefinition","src":"2817:130:69","nodes":[],"body":{"id":44213,"nodeType":"Block","src":"2901:46:69","nodes":[],"statements":[{"expression":{"id":44211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44207,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44202,"src":"2911:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"2911:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44210,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44204,"src":"2934:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44212,"nodeType":"ExpressionStatement","src":"2911:29:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:69","parameters":{"id":44205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44202,"mutability":"mutable","name":"self","nameLocation":"2870:4:69","nodeType":"VariableDeclaration","scope":44214,"src":"2842:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44201,"nodeType":"UserDefinedTypeName","pathNode":{"id":44200,"name":"StakingReleaseQueue","nameLocations":["2842:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2842:19:69"},"referencedDeclaration":50150,"src":"2842:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44204,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:69","nodeType":"VariableDeclaration","scope":44214,"src":"2876:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44203,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:69"},"returnParameters":{"id":44206,"nodeType":"ParameterList","parameters":[],"src":"2901:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44257,"nodeType":"FunctionDefinition","src":"3016:419:69","nodes":[],"body":{"id":44256,"nodeType":"Block","src":"3117:318:69","nodes":[],"statements":[{"assignments":[44226],"declarations":[{"constant":false,"id":44226,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:69","nodeType":"VariableDeclaration","scope":44256,"src":"3127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44225,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44232,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44227,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:69","memberName":"number","nodeType":"MemberAccess","src":"3147:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":44229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3162:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"3162:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:69"},{"assignments":[44235],"declarations":[{"constant":false,"id":44235,"mutability":"mutable","name":"release","nameLocation":"3214:7:69","nodeType":"VariableDeclaration","scope":44256,"src":"3192:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44234,"nodeType":"UserDefinedTypeName","pathNode":{"id":44233,"name":"StakingRelease","nameLocations":["3192:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"3192:14:69"},"referencedDeclaration":50130,"src":"3192:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44240,"initialValue":{"arguments":[{"id":44237,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3251:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44238,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44236,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"3224:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$50130_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":44239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:69","3262:6:69"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:69"},{"expression":{"arguments":[{"id":44247,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44235,"src":"3319:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":44241,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3289:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3289:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44245,"indexExpression":{"id":44243,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3303:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:69","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":44089,"src":"3289:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$_t_struct$_StakingRelease_$50130_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":44248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44249,"nodeType":"ExpressionStatement","src":"3289:38:69"},{"eventCall":{"arguments":[{"id":44251,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3376:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44252,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3395:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44253,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3417:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44250,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44199,"src":"3343:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":44254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:69","3387:6:69","3403:12:69"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44255,"nodeType":"EmitStatement","src":"3338:90:69"}]},"documentation":{"id":44215,"nodeType":"StructuredDocumentation","src":"2953:58:69","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:69","parameters":{"id":44223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44218,"mutability":"mutable","name":"self","nameLocation":"3067:4:69","nodeType":"VariableDeclaration","scope":44257,"src":"3039:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44217,"nodeType":"UserDefinedTypeName","pathNode":{"id":44216,"name":"StakingReleaseQueue","nameLocations":["3039:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3039:19:69"},"referencedDeclaration":50150,"src":"3039:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44220,"mutability":"mutable","name":"validator","nameLocation":"3081:9:69","nodeType":"VariableDeclaration","scope":44257,"src":"3073:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44219,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44222,"mutability":"mutable","name":"amount","nameLocation":"3100:6:69","nodeType":"VariableDeclaration","scope":44257,"src":"3092:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:69"},"returnParameters":{"id":44224,"nodeType":"ParameterList","parameters":[],"src":"3117:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44301,"nodeType":"FunctionDefinition","src":"3516:340:69","nodes":[],"body":{"id":44300,"nodeType":"Block","src":"3611:245:69","nodes":[],"statements":[{"assignments":[44269,44271],"declarations":[{"constant":false,"id":44269,"mutability":"mutable","name":"amount","nameLocation":"3630:6:69","nodeType":"VariableDeclaration","scope":44300,"src":"3622:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44268,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44271,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:69","nodeType":"VariableDeclaration","scope":44300,"src":"3638:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44270,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44278,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":44272,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3658:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3658:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44275,"indexExpression":{"id":44274,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3672:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:69","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":44182,"src":"3658:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":44277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44279,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44271,"src":"3707:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44289,"nodeType":"IfStatement","src":"3703:76:69","trueBody":{"id":44288,"nodeType":"Block","src":"3723:56:69","statements":[{"expression":{"id":44286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:69","subExpression":{"baseExpression":{"expression":{"id":44282,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3744:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3744:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44285,"indexExpression":{"id":44284,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3758:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44287,"nodeType":"ExpressionStatement","src":"3737:31:69"}]}},{"expression":{"arguments":[{"id":44295,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44292,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3797:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":44290,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":44293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"3789:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":44296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44297,"nodeType":"ExpressionStatement","src":"3789:36:69"},{"expression":{"id":44298,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3843:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44267,"id":44299,"nodeType":"Return","src":"3836:13:69"}]},"documentation":{"id":44258,"nodeType":"StructuredDocumentation","src":"3441:70:69","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:69","parameters":{"id":44264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44261,"mutability":"mutable","name":"self","nameLocation":"3559:4:69","nodeType":"VariableDeclaration","scope":44301,"src":"3531:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44260,"nodeType":"UserDefinedTypeName","pathNode":{"id":44259,"name":"StakingReleaseQueue","nameLocations":["3531:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3531:19:69"},"referencedDeclaration":50150,"src":"3531:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44263,"mutability":"mutable","name":"validator","nameLocation":"3573:9:69","nodeType":"VariableDeclaration","scope":44301,"src":"3565:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44262,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:69"},"returnParameters":{"id":44267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44301,"src":"3602:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44265,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":44184,"nodeType":"StructuredDocumentation","src":"2539:47:69","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[44302],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:69","scope":46441,"usedErrors":[]},{"id":45293,"nodeType":"ContractDefinition","src":"3900:11436:69","nodes":[{"id":44307,"nodeType":"UsingForDirective","src":"3930:25:69","nodes":[],"global":false,"libraryName":{"id":44304,"name":"LibMinPQ","nameLocations":["3936:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"3936:8:69"},"typeName":{"id":44306,"nodeType":"UserDefinedTypeName","pathNode":{"id":44305,"name":"MinPQ","nameLocations":["3949:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"3949:5:69"},"referencedDeclaration":49029,"src":"3949:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":44311,"nodeType":"UsingForDirective","src":"3960:25:69","nodes":[],"global":false,"libraryName":{"id":44308,"name":"LibMaxPQ","nameLocations":["3966:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"3966:8:69"},"typeName":{"id":44310,"nodeType":"UserDefinedTypeName","pathNode":{"id":44309,"name":"MaxPQ","nameLocations":["3979:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3979:5:69"},"referencedDeclaration":48411,"src":"3979:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44317,"nodeType":"EventDefinition","src":"3991:76:69","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:69","parameters":{"id":44316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44313,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:69","nodeType":"VariableDeclaration","scope":44317,"src":"4030:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44312,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44315,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:69","nodeType":"VariableDeclaration","scope":44317,"src":"4049:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44314,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:69"}},{"id":44323,"nodeType":"EventDefinition","src":"4072:77:69","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:69","parameters":{"id":44322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44319,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:69","nodeType":"VariableDeclaration","scope":44323,"src":"4112:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44318,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44321,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:69","nodeType":"VariableDeclaration","scope":44323,"src":"4131:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44320,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:69"}},{"id":44329,"nodeType":"EventDefinition","src":"4154:59:69","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:69","parameters":{"id":44328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:69","nodeType":"VariableDeclaration","scope":44329,"src":"4179:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44324,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44327,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:69","nodeType":"VariableDeclaration","scope":44329,"src":"4198:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44326,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:69"}},{"id":44335,"nodeType":"EventDefinition","src":"4218:60:69","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:69","parameters":{"id":44334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44331,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:69","nodeType":"VariableDeclaration","scope":44335,"src":"4244:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44330,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44333,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:69","nodeType":"VariableDeclaration","scope":44335,"src":"4263:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44332,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:69"}},{"id":44341,"nodeType":"EventDefinition","src":"4283:74:69","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:69","parameters":{"id":44340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44337,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4313:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44336,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44339,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4335:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44338,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:69"}},{"id":44345,"nodeType":"EventDefinition","src":"4362:45:69","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:69","parameters":{"id":44344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44343,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:69","nodeType":"VariableDeclaration","scope":44345,"src":"4388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44342,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:69"}},{"id":44349,"nodeType":"EventDefinition","src":"4412:46:69","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:69","parameters":{"id":44348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44347,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:69","nodeType":"VariableDeclaration","scope":44349,"src":"4439:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44346,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:69"}},{"id":44385,"nodeType":"FunctionDefinition","src":"4525:375:69","nodes":[],"body":{"id":44384,"nodeType":"Block","src":"4654:246:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":44364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44360,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4668:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:69","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"4668:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":44362,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"4697:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":44363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:69","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"4697:24:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"4668:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44382,"nodeType":"Block","src":"4809:85:69","statements":[{"expression":{"id":44380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44374,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4823:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44375,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4831:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4831:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44378,"indexExpression":{"id":44377,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4853:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"4831:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44381,"nodeType":"ExpressionStatement","src":"4823:60:69"}]},"id":44383,"nodeType":"IfStatement","src":"4664:230:69","trueBody":{"id":44373,"nodeType":"Block","src":"4723:80:69","statements":[{"expression":{"id":44371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44365,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4737:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44366,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4745:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4745:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44369,"indexExpression":{"id":44368,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4767:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"4745:47:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44372,"nodeType":"ExpressionStatement","src":"4737:55:69"}]}}]},"documentation":{"id":44350,"nodeType":"StructuredDocumentation","src":"4464:56:69","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:69","parameters":{"id":44356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44353,"mutability":"mutable","name":"validators","nameLocation":"4573:10:69","nodeType":"VariableDeclaration","scope":44385,"src":"4552:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44352,"nodeType":"UserDefinedTypeName","pathNode":{"id":44351,"name":"ValidatorSet","nameLocations":["4552:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4552:12:69"},"referencedDeclaration":50190,"src":"4552:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44355,"mutability":"mutable","name":"validator","nameLocation":"4601:9:69","nodeType":"VariableDeclaration","scope":44385,"src":"4593:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44354,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:69"},"returnParameters":{"id":44359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44358,"mutability":"mutable","name":"power","nameLocation":"4647:5:69","nodeType":"VariableDeclaration","scope":44385,"src":"4639:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44357,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44400,"nodeType":"FunctionDefinition","src":"4976:178:69","nodes":[],"body":{"id":44399,"nodeType":"Block","src":"5089:65:69","nodes":[],"statements":[{"expression":{"id":44397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44394,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44392,"src":"5099:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44395,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44389,"src":"5112:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"5112:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44398,"nodeType":"ExpressionStatement","src":"5099:48:69"}]},"documentation":{"id":44386,"nodeType":"StructuredDocumentation","src":"4906:65:69","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:69","parameters":{"id":44390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44389,"mutability":"mutable","name":"validators","nameLocation":"5034:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5013:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44388,"nodeType":"UserDefinedTypeName","pathNode":{"id":44387,"name":"ValidatorSet","nameLocations":["5013:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5013:12:69"},"referencedDeclaration":50190,"src":"5013:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:69"},"returnParameters":{"id":44393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44392,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5069:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44391,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44417,"nodeType":"FunctionDefinition","src":"5209:163:69","nodes":[],"body":{"id":44416,"nodeType":"Block","src":"5310:62:69","nodes":[],"statements":[{"expression":{"id":44414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44409,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44407,"src":"5320:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44410,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44404,"src":"5328:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5328:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5328:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44415,"nodeType":"ExpressionStatement","src":"5320:45:69"}]},"documentation":{"id":44401,"nodeType":"StructuredDocumentation","src":"5160:44:69","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:69","parameters":{"id":44405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44404,"mutability":"mutable","name":"validators","nameLocation":"5261:10:69","nodeType":"VariableDeclaration","scope":44417,"src":"5240:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44403,"nodeType":"UserDefinedTypeName","pathNode":{"id":44402,"name":"ValidatorSet","nameLocations":["5240:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5240:12:69"},"referencedDeclaration":50190,"src":"5240:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:69"},"returnParameters":{"id":44408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44407,"mutability":"mutable","name":"total","nameLocation":"5303:5:69","nodeType":"VariableDeclaration","scope":44417,"src":"5296:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44406,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44437,"nodeType":"FunctionDefinition","src":"5441:231:69","nodes":[],"body":{"id":44436,"nodeType":"Block","src":"5590:82:69","nodes":[],"statements":[{"expression":{"id":44434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44428,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44426,"src":"5600:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44429,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44421,"src":"5613:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"5613:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44432,"indexExpression":{"id":44431,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44423,"src":"5635:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"5613:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44435,"nodeType":"ExpressionStatement","src":"5600:65:69"}]},"documentation":{"id":44418,"nodeType":"StructuredDocumentation","src":"5378:58:69","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:69","parameters":{"id":44424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44421,"mutability":"mutable","name":"validators","nameLocation":"5503:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5482:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44420,"nodeType":"UserDefinedTypeName","pathNode":{"id":44419,"name":"ValidatorSet","nameLocations":["5482:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5482:12:69"},"referencedDeclaration":50190,"src":"5482:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44423,"mutability":"mutable","name":"validator","nameLocation":"5531:9:69","nodeType":"VariableDeclaration","scope":44437,"src":"5523:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44422,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:69"},"returnParameters":{"id":44427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44426,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5570:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44425,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44489,"nodeType":"FunctionDefinition","src":"5678:434:69","nodes":[],"body":{"id":44488,"nodeType":"Block","src":"5792:320:69","nodes":[],"statements":[{"assignments":[44447],"declarations":[{"constant":false,"id":44447,"mutability":"mutable","name":"size","nameLocation":"5809:4:69","nodeType":"VariableDeclaration","scope":44488,"src":"5802:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44446,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44452,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44448,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5816:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5816:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5816:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:69"},{"expression":{"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44453,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5863:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44457,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5889:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":44456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":44454,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44455,"nodeType":"ArrayTypeName","src":"5879:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":44458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44460,"nodeType":"ExpressionStatement","src":"5863:31:69"},{"body":{"id":44484,"nodeType":"Block","src":"5936:144:69","statements":[{"expression":{"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44468,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5950:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44472,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5960:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":44470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6008:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44473,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5969:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5969:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"5969:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44479,"nodeType":"ExpressionStatement","src":"5950:60:69"},{"id":44483,"nodeType":"UncheckedBlock","src":"6024:46:69","statements":[{"expression":{"id":44481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:69","subExpression":{"id":44480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6054:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44482,"nodeType":"ExpressionStatement","src":"6052:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5923:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44466,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5928:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44485,"initializationExpression":{"assignments":[44462],"declarations":[{"constant":false,"id":44462,"mutability":"mutable","name":"i","nameLocation":"5916:1:69","nodeType":"VariableDeclaration","scope":44485,"src":"5909:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44461,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44464,"initialValue":{"hexValue":"31","id":44463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:69"},"nodeType":"ForStatement","src":"5904:176:69"},{"expression":{"id":44486,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"6096:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":44445,"id":44487,"nodeType":"Return","src":"6089:16:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:69","parameters":{"id":44441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44440,"mutability":"mutable","name":"validators","nameLocation":"5729:10:69","nodeType":"VariableDeclaration","scope":44489,"src":"5708:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44439,"nodeType":"UserDefinedTypeName","pathNode":{"id":44438,"name":"ValidatorSet","nameLocations":["5708:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5708:12:69"},"referencedDeclaration":50190,"src":"5708:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:69"},"returnParameters":{"id":44445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44444,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:69","nodeType":"VariableDeclaration","scope":44489,"src":"5764:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44442,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44443,"nodeType":"ArrayTypeName","src":"5764:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44534,"nodeType":"FunctionDefinition","src":"6183:418:69","nodes":[],"body":{"id":44533,"nodeType":"Block","src":"6288:313:69","nodes":[],"statements":[{"assignments":[44499],"declarations":[{"constant":false,"id":44499,"mutability":"mutable","name":"size","nameLocation":"6305:4:69","nodeType":"VariableDeclaration","scope":44533,"src":"6298:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44498,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44500,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6312:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6312:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"6312:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:69"},{"body":{"id":44531,"nodeType":"Block","src":"6391:204:69","statements":[{"assignments":[44513],"declarations":[{"constant":false,"id":44513,"mutability":"mutable","name":"validator","nameLocation":"6413:9:69","nodeType":"VariableDeclaration","scope":44531,"src":"6405:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44512,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44519,"initialValue":{"arguments":[{"id":44517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6464:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44514,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6425:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6425:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"6425:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:69"},{"expression":{"id":44525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44520,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44496,"src":"6480:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44522,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6503:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44523,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44513,"src":"6515:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44521,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"6494:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44526,"nodeType":"ExpressionStatement","src":"6480:45:69"},{"id":44530,"nodeType":"UncheckedBlock","src":"6539:46:69","statements":[{"expression":{"id":44528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:69","subExpression":{"id":44527,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6569:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44529,"nodeType":"ExpressionStatement","src":"6567:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6378:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44510,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44499,"src":"6383:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44532,"initializationExpression":{"assignments":[44506],"declarations":[{"constant":false,"id":44506,"mutability":"mutable","name":"i","nameLocation":"6371:1:69","nodeType":"VariableDeclaration","scope":44532,"src":"6364:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44505,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44508,"initialValue":{"hexValue":"31","id":44507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:69"},"nodeType":"ForStatement","src":"6359:236:69"}]},"documentation":{"id":44490,"nodeType":"StructuredDocumentation","src":"6118:60:69","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:69","parameters":{"id":44494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44493,"mutability":"mutable","name":"validators","nameLocation":"6233:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6212:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44492,"nodeType":"UserDefinedTypeName","pathNode":{"id":44491,"name":"ValidatorSet","nameLocations":["6212:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6212:12:69"},"referencedDeclaration":50190,"src":"6212:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:69"},"returnParameters":{"id":44497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44496,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6268:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44495,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44585,"nodeType":"FunctionDefinition","src":"6690:496:69","nodes":[],"body":{"id":44584,"nodeType":"Block","src":"6794:392:69","nodes":[],"statements":[{"assignments":[44544],"declarations":[{"constant":false,"id":44544,"mutability":"mutable","name":"size","nameLocation":"6811:4:69","nodeType":"VariableDeclaration","scope":44584,"src":"6804:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44543,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44549,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44545,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6818:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6818:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"6818:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:69"},{"body":{"id":44576,"nodeType":"Block","src":"6898:219:69","statements":[{"assignments":[44558],"declarations":[{"constant":false,"id":44558,"mutability":"mutable","name":"validator","nameLocation":"6920:9:69","nodeType":"VariableDeclaration","scope":44576,"src":"6912:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44557,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44564,"initialValue":{"arguments":[{"id":44562,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6972:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44559,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6932:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6932:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":48450,"src":"6932:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":44563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:69"},{"expression":{"id":44570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44565,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"6988:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44567,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7025:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44568,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44558,"src":"7037:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44566,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44437,"src":"7002:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44571,"nodeType":"ExpressionStatement","src":"6988:59:69"},{"id":44575,"nodeType":"UncheckedBlock","src":"7061:46:69","statements":[{"expression":{"id":44573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:69","subExpression":{"id":44572,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"7091:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44574,"nodeType":"ExpressionStatement","src":"7089:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44554,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6885:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44555,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44544,"src":"6890:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44577,"initializationExpression":{"assignments":[44551],"declarations":[{"constant":false,"id":44551,"mutability":"mutable","name":"i","nameLocation":"6878:1:69","nodeType":"VariableDeclaration","scope":44577,"src":"6871:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44550,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44553,"initialValue":{"hexValue":"31","id":44552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:69"},"nodeType":"ForStatement","src":"6866:251:69"},{"expression":{"id":44582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44578,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"7126:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44580,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7168:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":44579,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"7140:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44583,"nodeType":"ExpressionStatement","src":"7126:53:69"}]},"documentation":{"id":44535,"nodeType":"StructuredDocumentation","src":"6607:78:69","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:69","parameters":{"id":44539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44538,"mutability":"mutable","name":"validators","nameLocation":"6739:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6718:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44537,"nodeType":"UserDefinedTypeName","pathNode":{"id":44536,"name":"ValidatorSet","nameLocations":["6718:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6718:12:69"},"referencedDeclaration":50190,"src":"6718:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:69"},"returnParameters":{"id":44542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44541,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6774:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44540,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44655,"nodeType":"FunctionDefinition","src":"7339:612:69","nodes":[],"body":{"id":44654,"nodeType":"Block","src":"7498:453:69","nodes":[],"statements":[{"assignments":[44599],"declarations":[{"constant":false,"id":44599,"mutability":"mutable","name":"size","nameLocation":"7516:4:69","nodeType":"VariableDeclaration","scope":44654,"src":"7508:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44602,"initialValue":{"expression":{"id":44600,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7523:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:69","memberName":"length","nodeType":"MemberAccess","src":"7523:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:69"},{"assignments":[44607],"declarations":[{"constant":false,"id":44607,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:69","nodeType":"VariableDeclaration","scope":44654,"src":"7549:33:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44605,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44606,"nodeType":"ArrayTypeName","src":"7549:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":44613,"initialValue":{"arguments":[{"id":44611,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7599:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":44608,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44609,"nodeType":"ArrayTypeName","src":"7589:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":44612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:69"},{"body":{"id":44650,"nodeType":"Block","src":"7643:269:69","statements":[{"condition":{"id":44626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:69","subExpression":{"arguments":[{"id":44621,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7680:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44622,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7692:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44624,"indexExpression":{"id":44623,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7702:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44620,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44672,"src":"7662:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":44625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44634,"nodeType":"IfStatement","src":"7657:116:69","trueBody":{"id":44633,"nodeType":"Block","src":"7707:66:69","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":44628,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7745:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44630,"indexExpression":{"id":44629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7755:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44627,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7732:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":44631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44632,"nodeType":"RevertStatement","src":"7725:33:69"}]}},{"expression":{"id":44644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44635,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7786:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":44637,"indexExpression":{"id":44636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7803:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44639,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7817:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44640,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7829:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44642,"indexExpression":{"id":44641,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7839:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44638,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"7808:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44645,"nodeType":"ExpressionStatement","src":"7786:56:69"},{"id":44649,"nodeType":"UncheckedBlock","src":"7856:46:69","statements":[{"expression":{"id":44647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:69","subExpression":{"id":44646,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7886:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44648,"nodeType":"ExpressionStatement","src":"7884:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44617,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7631:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44618,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7635:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44651,"initializationExpression":{"assignments":[44615],"declarations":[{"constant":false,"id":44615,"mutability":"mutable","name":"i","nameLocation":"7628:1:69","nodeType":"VariableDeclaration","scope":44651,"src":"7620:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44614,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44616,"nodeType":"VariableDeclarationStatement","src":"7620:9:69"},"nodeType":"ForStatement","src":"7615:297:69"},{"expression":{"id":44652,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7928:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":44597,"id":44653,"nodeType":"Return","src":"7921:23:69"}]},"documentation":{"id":44586,"nodeType":"StructuredDocumentation","src":"7193:141:69","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:69","parameters":{"id":44593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44589,"mutability":"mutable","name":"validators","nameLocation":"7404:10:69","nodeType":"VariableDeclaration","scope":44655,"src":"7383:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44588,"nodeType":"UserDefinedTypeName","pathNode":{"id":44587,"name":"ValidatorSet","nameLocations":["7383:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7383:12:69"},"referencedDeclaration":50190,"src":"7383:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44592,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:69","nodeType":"VariableDeclaration","scope":44655,"src":"7424:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44590,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44591,"nodeType":"ArrayTypeName","src":"7424:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:69"},"returnParameters":{"id":44597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44655,"src":"7480:16:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44594,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44595,"nodeType":"ArrayTypeName","src":"7480:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44672,"nodeType":"FunctionDefinition","src":"7957:167:69","nodes":[],"body":{"id":44671,"nodeType":"Block","src":"8059:65:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":44668,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44660,"src":"8107:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44665,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44658,"src":"8076:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"8076:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"8076:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44664,"id":44670,"nodeType":"Return","src":"8069:48:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:69","parameters":{"id":44661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44658,"mutability":"mutable","name":"self","nameLocation":"8005:4:69","nodeType":"VariableDeclaration","scope":44672,"src":"7984:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44657,"nodeType":"UserDefinedTypeName","pathNode":{"id":44656,"name":"ValidatorSet","nameLocations":["7984:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7984:12:69"},"referencedDeclaration":50190,"src":"7984:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44660,"mutability":"mutable","name":"validator","nameLocation":"8019:9:69","nodeType":"VariableDeclaration","scope":44672,"src":"8011:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44659,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:69"},"returnParameters":{"id":44664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44672,"src":"8053:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44662,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44693,"nodeType":"FunctionDefinition","src":"8165:176:69","nodes":[],"body":{"id":44692,"nodeType":"Block","src":"8272:69:69","nodes":[],"statements":[{"expression":{"id":44690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44683,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44676,"src":"8282:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8282:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44687,"indexExpression":{"id":44685,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44678,"src":"8304:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"8282:41:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44689,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44680,"src":"8326:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":44691,"nodeType":"ExpressionStatement","src":"8282:52:69"}]},"documentation":{"id":44673,"nodeType":"StructuredDocumentation","src":"8130:30:69","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:69","parameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44676,"mutability":"mutable","name":"validators","nameLocation":"8207:10:69","nodeType":"VariableDeclaration","scope":44693,"src":"8186:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44675,"nodeType":"UserDefinedTypeName","pathNode":{"id":44674,"name":"ValidatorSet","nameLocations":["8186:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8186:12:69"},"referencedDeclaration":50190,"src":"8186:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44678,"mutability":"mutable","name":"validator","nameLocation":"8227:9:69","nodeType":"VariableDeclaration","scope":44693,"src":"8219:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44677,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44680,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:69","nodeType":"VariableDeclaration","scope":44693,"src":"8238:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44679,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:69"},"returnParameters":{"id":44682,"nodeType":"ParameterList","parameters":[],"src":"8272:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44714,"nodeType":"FunctionDefinition","src":"8648:175:69","nodes":[],"body":{"id":44713,"nodeType":"Block","src":"8748:75:69","nodes":[],"statements":[{"expression":{"id":44711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44704,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44697,"src":"8758:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8758:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44708,"indexExpression":{"id":44706,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44699,"src":"8780:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"8758:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44710,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44701,"src":"8810:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44712,"nodeType":"ExpressionStatement","src":"8758:58:69"}]},"documentation":{"id":44694,"nodeType":"StructuredDocumentation","src":"8580:63:69","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:69","parameters":{"id":44702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44697,"mutability":"mutable","name":"validators","nameLocation":"8692:10:69","nodeType":"VariableDeclaration","scope":44714,"src":"8671:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44696,"nodeType":"UserDefinedTypeName","pathNode":{"id":44695,"name":"ValidatorSet","nameLocations":["8671:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8671:12:69"},"referencedDeclaration":50190,"src":"8671:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44699,"mutability":"mutable","name":"validator","nameLocation":"8712:9:69","nodeType":"VariableDeclaration","scope":44714,"src":"8704:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44698,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44701,"mutability":"mutable","name":"amount","nameLocation":"8731:6:69","nodeType":"VariableDeclaration","scope":44714,"src":"8723:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44700,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:69"},"returnParameters":{"id":44703,"nodeType":"ParameterList","parameters":[],"src":"8748:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44755,"nodeType":"FunctionDefinition","src":"8895:364:69","nodes":[],"body":{"id":44754,"nodeType":"Block","src":"8996:263:69","nodes":[],"statements":[{"assignments":[44726],"declarations":[{"constant":false,"id":44726,"mutability":"mutable","name":"total","nameLocation":"9014:5:69","nodeType":"VariableDeclaration","scope":44754,"src":"9006:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44725,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44732,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44727,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9022:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9022:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44730,"indexExpression":{"id":44729,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9044:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9022:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44733,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9084:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9092:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44740,"nodeType":"IfStatement","src":"9080:81:69","trueBody":{"id":44739,"nodeType":"Block","src":"9100:61:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44736,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"9121:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44738,"nodeType":"RevertStatement","src":"9114:36:69"}]}},{"expression":{"id":44743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44741,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9171:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44742,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44744,"nodeType":"ExpressionStatement","src":"9171:15:69"},{"expression":{"id":44752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44745,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9196:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9196:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44749,"indexExpression":{"id":44747,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9196:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44751,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9247:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44753,"nodeType":"ExpressionStatement","src":"9196:56:69"}]},"documentation":{"id":44715,"nodeType":"StructuredDocumentation","src":"8829:61:69","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:69","parameters":{"id":44723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44718,"mutability":"mutable","name":"validators","nameLocation":"8940:10:69","nodeType":"VariableDeclaration","scope":44755,"src":"8919:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44717,"nodeType":"UserDefinedTypeName","pathNode":{"id":44716,"name":"ValidatorSet","nameLocations":["8919:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8919:12:69"},"referencedDeclaration":50190,"src":"8919:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44720,"mutability":"mutable","name":"validator","nameLocation":"8960:9:69","nodeType":"VariableDeclaration","scope":44755,"src":"8952:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44719,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44722,"mutability":"mutable","name":"amount","nameLocation":"8979:6:69","nodeType":"VariableDeclaration","scope":44755,"src":"8971:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44721,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:69"},"returnParameters":{"id":44724,"nodeType":"ParameterList","parameters":[],"src":"8996:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44808,"nodeType":"FunctionDefinition","src":"9330:540:69","nodes":[],"body":{"id":44807,"nodeType":"Block","src":"9431:439:69","nodes":[],"statements":[{"assignments":[44767],"declarations":[{"constant":false,"id":44767,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:69","nodeType":"VariableDeclaration","scope":44807,"src":"9441:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44766,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44773,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44768,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9465:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9465:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44771,"indexExpression":{"id":44770,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9481:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9465:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:69"},{"expression":{"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44774,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9516:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9516:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44778,"indexExpression":{"id":44776,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9532:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9516:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44780,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9560:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44782,"nodeType":"ExpressionStatement","src":"9516:49:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44783,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9580:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44784,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9597:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44788,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9645:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44789,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9661:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44804,"nodeType":"Block","src":"9771:93:69","statements":[{"expression":{"arguments":[{"id":44799,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9808:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44800,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9825:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44801,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9846:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44798,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"9785:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:69","9814:9:69","9836:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44803,"nodeType":"ExpressionStatement","src":"9785:68:69"}]},"id":44805,"nodeType":"IfStatement","src":"9641:223:69","trueBody":{"id":44797,"nodeType":"Block","src":"9668:97:69","statements":[{"expression":{"arguments":[{"id":44792,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9707:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44793,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9726:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44794,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9747:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44791,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"9682:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:69","9713:11:69","9737:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44796,"nodeType":"ExpressionStatement","src":"9682:72:69"}]}},"id":44806,"nodeType":"IfStatement","src":"9576:288:69","trueBody":{"id":44787,"nodeType":"Block","src":"9604:31:69","statements":[{"functionReturnParameters":44765,"id":44786,"nodeType":"Return","src":"9618:7:69"}]}}]},"documentation":{"id":44756,"nodeType":"StructuredDocumentation","src":"9265:60:69","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:69","parameters":{"id":44764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44759,"mutability":"mutable","name":"self","nameLocation":"9382:4:69","nodeType":"VariableDeclaration","scope":44808,"src":"9361:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44758,"nodeType":"UserDefinedTypeName","pathNode":{"id":44757,"name":"ValidatorSet","nameLocations":["9361:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9361:12:69"},"referencedDeclaration":50190,"src":"9361:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44761,"mutability":"mutable","name":"validator","nameLocation":"9396:9:69","nodeType":"VariableDeclaration","scope":44808,"src":"9388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44760,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44763,"mutability":"mutable","name":"power","nameLocation":"9415:5:69","nodeType":"VariableDeclaration","scope":44808,"src":"9407:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44762,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:69"},"returnParameters":{"id":44765,"nodeType":"ParameterList","parameters":[],"src":"9431:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44850,"nodeType":"FunctionDefinition","src":"9876:404:69","nodes":[],"body":{"id":44849,"nodeType":"Block","src":"9971:309:69","nodes":[],"statements":[{"assignments":[44819],"declarations":[{"constant":false,"id":44819,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:69","nodeType":"VariableDeclaration","scope":44849,"src":"9981:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44818,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44827,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44820,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10005:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10005:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44823,"indexExpression":{"id":44822,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10021:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10005:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44825,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10054:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:69"},{"expression":{"id":44835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44828,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10070:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10070:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44832,"indexExpression":{"id":44830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10086:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10070:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44834,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10119:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44836,"nodeType":"ExpressionStatement","src":"10070:62:69"},{"expression":{"id":44841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10143:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10143:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44840,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10176:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44842,"nodeType":"ExpressionStatement","src":"10143:39:69"},{"expression":{"arguments":[{"id":44844,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10218:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10237:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44846,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10258:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44843,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"10193:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:69","10224:11:69","10248:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44848,"nodeType":"ExpressionStatement","src":"10193:80:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:69","parameters":{"id":44816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44811,"mutability":"mutable","name":"self","nameLocation":"9921:4:69","nodeType":"VariableDeclaration","scope":44850,"src":"9900:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44810,"nodeType":"UserDefinedTypeName","pathNode":{"id":44809,"name":"ValidatorSet","nameLocations":["9900:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9900:12:69"},"referencedDeclaration":50190,"src":"9900:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44813,"mutability":"mutable","name":"validator","nameLocation":"9935:9:69","nodeType":"VariableDeclaration","scope":44850,"src":"9927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44812,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44815,"mutability":"mutable","name":"amount","nameLocation":"9954:6:69","nodeType":"VariableDeclaration","scope":44850,"src":"9946:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44814,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:69"},"returnParameters":{"id":44817,"nodeType":"ParameterList","parameters":[],"src":"9971:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44916,"nodeType":"FunctionDefinition","src":"10286:616:69","nodes":[],"body":{"id":44915,"nodeType":"Block","src":"10382:520:69","nodes":[],"statements":[{"assignments":[44861],"declarations":[{"constant":false,"id":44861,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:69","nodeType":"VariableDeclaration","scope":44915,"src":"10392:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44860,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44869,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10416:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10416:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44865,"indexExpression":{"id":44864,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10432:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10416:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44867,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:69"},{"assignments":[44871],"declarations":[{"constant":false,"id":44871,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:69","nodeType":"VariableDeclaration","scope":44915,"src":"10481:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44870,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44877,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44872,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10507:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10507:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44875,"indexExpression":{"id":44874,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10523:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"10507:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44878,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10564:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44881,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44871,"src":"10586:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44901,"nodeType":"Block","src":"10672:87:69","statements":[{"expression":{"id":44899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44892,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10686:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10686:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44896,"indexExpression":{"id":44894,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10702:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10686:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44898,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10735:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44900,"nodeType":"ExpressionStatement","src":"10686:62:69"}]},"id":44902,"nodeType":"IfStatement","src":"10560:199:69","trueBody":{"id":44891,"nodeType":"Block","src":"10608:58:69","statements":[{"expression":{"id":44889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:69","subExpression":{"baseExpression":{"expression":{"id":44885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10629:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10629:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44888,"indexExpression":{"id":44887,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10645:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44890,"nodeType":"ExpressionStatement","src":"10622:33:69"}]}},{"expression":{"arguments":[{"id":44904,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10792:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44905,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10809:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44906,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10830:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44903,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"10769:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:69","10798:9:69","10820:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44908,"nodeType":"ExpressionStatement","src":"10769:76:69"},{"expression":{"id":44913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10856:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10856:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44912,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10889:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44914,"nodeType":"ExpressionStatement","src":"10856:39:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:69","parameters":{"id":44858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44853,"mutability":"mutable","name":"self","nameLocation":"10332:4:69","nodeType":"VariableDeclaration","scope":44916,"src":"10311:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44852,"nodeType":"UserDefinedTypeName","pathNode":{"id":44851,"name":"ValidatorSet","nameLocations":["10311:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"10311:12:69"},"referencedDeclaration":50190,"src":"10311:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"validator","nameLocation":"10346:9:69","nodeType":"VariableDeclaration","scope":44916,"src":"10338:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44854,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44857,"mutability":"mutable","name":"amount","nameLocation":"10365:6:69","nodeType":"VariableDeclaration","scope":44916,"src":"10357:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44856,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:69"},"returnParameters":{"id":44859,"nodeType":"ParameterList","parameters":[],"src":"10382:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45081,"nodeType":"FunctionDefinition","src":"11008:2209:69","nodes":[],"body":{"id":45080,"nodeType":"Block","src":"11110:2107:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":44930,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11155:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44927,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11124:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11124:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"11124:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44948,"nodeType":"IfStatement","src":"11120:226:69","trueBody":{"id":44947,"nodeType":"Block","src":"11169:177:69","statements":[{"expression":{"arguments":[{"id":44937,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11223:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44938,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11229:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44932,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11183:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11183:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49342,"src":"11183:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44940,"nodeType":"ExpressionStatement","src":"11183:58:69"},{"eventCall":{"arguments":[{"id":44942,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11293:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44943,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11306:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44941,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"11260:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44945,"nodeType":"EmitStatement","src":"11255:60:69"},{"functionReturnParameters":44926,"id":44946,"nodeType":"Return","src":"11329:7:69"}]}},{"assignments":[44950],"declarations":[{"constant":false,"id":44950,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:69","nodeType":"VariableDeclaration","scope":45080,"src":"11408:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44949,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44953,"initialValue":{"expression":{"id":44951,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11429:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:69","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"11429:16:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:69"},{"assignments":[44955],"declarations":[{"constant":false,"id":44955,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"11455:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44954,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44960,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44956,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11475:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"11475:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44961,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44950,"src":"11520:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44962,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44955,"src":"11534:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44980,"nodeType":"IfStatement","src":"11516:262:69","trueBody":{"id":44979,"nodeType":"Block","src":"11546:232:69","statements":[{"expression":{"arguments":[{"id":44969,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11669:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44970,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11675:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44964,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11640:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11640:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"11640:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44972,"nodeType":"ExpressionStatement","src":"11640:47:69"},{"eventCall":{"arguments":[{"id":44974,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11725:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44975,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11738:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44973,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"11706:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44977,"nodeType":"EmitStatement","src":"11701:46:69"},{"functionReturnParameters":44926,"id":44978,"nodeType":"Return","src":"11761:7:69"}]}},{"assignments":[44982,44984],"declarations":[{"constant":false,"id":44982,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"12317:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44981,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44984,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:69","nodeType":"VariableDeclaration","scope":45080,"src":"12337:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44983,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44990,"initialValue":{"arguments":[{"id":44988,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12389:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12363:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12363:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"12363:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44991,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44984,"src":"12408:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44992,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"12425:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45043,"nodeType":"IfStatement","src":"12404:452:69","trueBody":{"id":45042,"nodeType":"Block","src":"12435:421:69","statements":[{"expression":{"arguments":[{"id":44999,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44994,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12449:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12449:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"12449:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45001,"nodeType":"ExpressionStatement","src":"12449:31:69"},{"condition":{"arguments":[{"id":45005,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12531:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45002,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12499:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12499:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12499:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45017,"nodeType":"IfStatement","src":"12495:140:69","trueBody":{"id":45016,"nodeType":"Block","src":"12545:90:69","statements":[{"expression":{"arguments":[{"id":45012,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12602:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45013,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12608:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45007,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12563:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12563:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"12563:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45015,"nodeType":"ExpressionStatement","src":"12563:57:69"}]}},{"expression":{"arguments":[{"id":45023,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12678:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45024,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12684:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45018,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12649:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12649:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"12649:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45026,"nodeType":"ExpressionStatement","src":"12649:47:69"},{"expression":{"arguments":[{"id":45032,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12740:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45033,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12746:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45027,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12710:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12710:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"12710:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45035,"nodeType":"ExpressionStatement","src":"12710:47:69"},{"eventCall":{"arguments":[{"id":45037,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12801:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45038,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12813:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45036,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"12777:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45040,"nodeType":"EmitStatement","src":"12772:53:69"},{"functionReturnParameters":44926,"id":45041,"nodeType":"Return","src":"12839:7:69"}]}},{"condition":{"arguments":[{"id":45047,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12902:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45044,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12870:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12870:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12870:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45065,"nodeType":"IfStatement","src":"12866:229:69","trueBody":{"id":45064,"nodeType":"Block","src":"12916:179:69","statements":[{"expression":{"arguments":[{"id":45054,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12971:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45055,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12977:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45049,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12930:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12930:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48724,"src":"12930:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45057,"nodeType":"ExpressionStatement","src":"12930:59:69"},{"eventCall":{"arguments":[{"id":45059,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13042:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45060,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13055:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45058,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13008:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45062,"nodeType":"EmitStatement","src":"13003:61:69"},{"functionReturnParameters":44926,"id":45063,"nodeType":"Return","src":"13078:7:69"}]}},{"expression":{"arguments":[{"id":45071,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13135:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45072,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13141:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45066,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13105:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13105:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"13105:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45074,"nodeType":"ExpressionStatement","src":"13105:48:69"},{"eventCall":{"arguments":[{"id":45076,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13188:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45077,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13201:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45075,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44335,"src":"13168:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45079,"nodeType":"EmitStatement","src":"13163:47:69"}]},"documentation":{"id":44917,"nodeType":"StructuredDocumentation","src":"10908:95:69","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:69","parameters":{"id":44925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44920,"mutability":"mutable","name":"self","nameLocation":"11056:4:69","nodeType":"VariableDeclaration","scope":45081,"src":"11035:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44919,"nodeType":"UserDefinedTypeName","pathNode":{"id":44918,"name":"ValidatorSet","nameLocations":["11035:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"11035:12:69"},"referencedDeclaration":50190,"src":"11035:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44922,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:69","nodeType":"VariableDeclaration","scope":45081,"src":"11062:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44921,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44924,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:69","nodeType":"VariableDeclaration","scope":45081,"src":"11083:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44923,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:69"},"returnParameters":{"id":44926,"nodeType":"ParameterList","parameters":[],"src":"11110:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45292,"nodeType":"FunctionDefinition","src":"13320:2014:69","nodes":[],"body":{"id":45291,"nodeType":"Block","src":"13418:1916:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":45095,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13464:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45092,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13432:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13432:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"13432:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45132,"nodeType":"IfStatement","src":"13428:421:69","trueBody":{"id":45131,"nodeType":"Block","src":"13476:373:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45097,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13494:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45115,"nodeType":"IfStatement","src":"13490:185:69","trueBody":{"id":45114,"nodeType":"Block","src":"13509:166:69","statements":[{"expression":{"arguments":[{"id":45105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13566:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45106,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13572:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13527:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13527:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"13527:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45108,"nodeType":"ExpressionStatement","src":"13527:55:69"},{"eventCall":{"arguments":[{"id":45110,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13626:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45109,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44349,"src":"13605:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45112,"nodeType":"EmitStatement","src":"13600:36:69"},{"functionReturnParameters":45091,"id":45113,"nodeType":"Return","src":"13654:7:69"}]}},{"expression":{"arguments":[{"id":45121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13729:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45122,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13735:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13688:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13688:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48759,"src":"13688:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45124,"nodeType":"ExpressionStatement","src":"13688:57:69"},{"eventCall":{"arguments":[{"id":45126,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13798:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45127,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13809:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45125,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13764:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45129,"nodeType":"EmitStatement","src":"13759:59:69"},{"functionReturnParameters":45091,"id":45130,"nodeType":"Return","src":"13832:7:69"}]}},{"condition":{"id":45138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:69","subExpression":{"arguments":[{"id":45136,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13919:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13888:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"13888:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"13888:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45143,"nodeType":"IfStatement","src":"13883:106:69","trueBody":{"id":45142,"nodeType":"Block","src":"13931:58:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45139,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"13952:24:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45141,"nodeType":"RevertStatement","src":"13945:33:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45144,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"14053:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45202,"nodeType":"IfStatement","src":"14049:508:69","trueBody":{"id":45201,"nodeType":"Block","src":"14068:489:69","statements":[{"expression":{"arguments":[{"id":45152,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14120:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45153,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14126:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45147,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14082:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14082:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":49307,"src":"14082:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45155,"nodeType":"ExpressionStatement","src":"14082:54:69"},{"eventCall":{"arguments":[{"id":45157,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45156,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"14155:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45159,"nodeType":"EmitStatement","src":"14150:35:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14204:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14204:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14204:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45199,"nodeType":"IfStatement","src":"14200:326:69","trueBody":{"id":45198,"nodeType":"Block","src":"14243:283:69","statements":[{"assignments":[45167,45169],"declarations":[{"constant":false,"id":45167,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:69","nodeType":"VariableDeclaration","scope":45198,"src":"14262:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45166,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45169,"mutability":"mutable","name":"power","nameLocation":"14292:5:69","nodeType":"VariableDeclaration","scope":45198,"src":"14284:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45168,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45175,"initialValue":{"arguments":[{"id":45173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14328:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45170,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14301:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14301:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14301:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:69"},{"expression":{"arguments":[{"id":45181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14378:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45176,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14351:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14351:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14351:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45183,"nodeType":"ExpressionStatement","src":"14351:32:69"},{"expression":{"arguments":[{"id":45189,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14430:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45190,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14436:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45184,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14401:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14401:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"14401:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45192,"nodeType":"ExpressionStatement","src":"14401:48:69"},{"eventCall":{"arguments":[{"id":45194,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14491:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45195,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45169,"src":"14505:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45193,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"14472:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45197,"nodeType":"EmitStatement","src":"14467:44:69"}]}},{"functionReturnParameters":45091,"id":45200,"nodeType":"Return","src":"14540:7:69"}]}},{"expression":{"arguments":[{"id":45208,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14607:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45209,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14613:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45203,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14567:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14567:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49377,"src":"14567:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45211,"nodeType":"ExpressionStatement","src":"14567:56:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45212,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14638:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14638:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14638:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45220,"nodeType":"IfStatement","src":"14634:74:69","trueBody":{"id":45219,"nodeType":"Block","src":"14677:31:69","statements":[{"functionReturnParameters":45091,"id":45218,"nodeType":"Return","src":"14691:7:69"}]}},{"assignments":[45222,45224],"declarations":[{"constant":false,"id":45222,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:69","nodeType":"VariableDeclaration","scope":45291,"src":"14719:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45221,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45224,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:69","nodeType":"VariableDeclaration","scope":45291,"src":"14741:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45223,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45230,"initialValue":{"arguments":[{"id":45228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14793:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14767:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14767:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"14767:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:69"},{"assignments":[45232,45234],"declarations":[{"constant":false,"id":45232,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:69","nodeType":"VariableDeclaration","scope":45291,"src":"14809:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45231,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45234,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:69","nodeType":"VariableDeclaration","scope":45291,"src":"14832:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45233,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45240,"initialValue":{"arguments":[{"id":45238,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14886:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45235,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14859:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14859:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14859:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45241,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45224,"src":"14905:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45242,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45234,"src":"14922:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45285,"nodeType":"IfStatement","src":"14901:358:69","trueBody":{"id":45284,"nodeType":"Block","src":"14939:320:69","statements":[{"expression":{"arguments":[{"id":45249,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14979:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45244,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14953:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14953:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"14953:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45251,"nodeType":"ExpressionStatement","src":"14953:31:69"},{"expression":{"arguments":[{"id":45257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15025:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14998:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14998:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14998:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45259,"nodeType":"ExpressionStatement","src":"14998:32:69"},{"expression":{"arguments":[{"id":45265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15073:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45266,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15079:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15044:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"15044:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"15044:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45268,"nodeType":"ExpressionStatement","src":"15044:49:69"},{"expression":{"arguments":[{"id":45274,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15137:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45275,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15143:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45269,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15107:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"15107:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"15107:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45277,"nodeType":"ExpressionStatement","src":"15107:49:69"},{"eventCall":{"arguments":[{"id":45279,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15200:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45280,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15214:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45278,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"15176:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45282,"nodeType":"EmitStatement","src":"15171:57:69"},{"functionReturnParameters":45091,"id":45283,"nodeType":"Return","src":"15242:7:69"}]}},{"eventCall":{"arguments":[{"id":45287,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"15307:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45288,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"15318:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45286,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"15274:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45290,"nodeType":"EmitStatement","src":"15269:58:69"}]},"documentation":{"id":45082,"nodeType":"StructuredDocumentation","src":"13223:92:69","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:69","parameters":{"id":45090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45085,"mutability":"mutable","name":"self","nameLocation":"13366:4:69","nodeType":"VariableDeclaration","scope":45292,"src":"13345:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":45084,"nodeType":"UserDefinedTypeName","pathNode":{"id":45083,"name":"ValidatorSet","nameLocations":["13345:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"13345:12:69"},"referencedDeclaration":50190,"src":"13345:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":45087,"mutability":"mutable","name":"validator","nameLocation":"13380:9:69","nodeType":"VariableDeclaration","scope":45292,"src":"13372:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45086,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45089,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:69","nodeType":"VariableDeclaration","scope":45292,"src":"13391:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45088,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:69"},"returnParameters":{"id":45091,"nodeType":"ParameterList","parameters":[],"src":"13418:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":44303,"nodeType":"StructuredDocumentation","src":"3860:40:69","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[45293],"name":"LibValidatorSet","nameLocation":"3908:15:69","scope":46441,"usedErrors":[]},{"id":46176,"nodeType":"ContractDefinition","src":"15338:10785:69","nodes":[{"id":45297,"nodeType":"UsingForDirective","src":"15363:53:69","nodes":[],"global":false,"libraryName":{"id":45294,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":44302,"src":"15369:22:69"},"typeName":{"id":45296,"nodeType":"UserDefinedTypeName","pathNode":{"id":45295,"name":"StakingReleaseQueue","nameLocations":["15396:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"15396:19:69"},"referencedDeclaration":50150,"src":"15396:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":45301,"nodeType":"UsingForDirective","src":"15421:47:69","nodes":[],"global":false,"libraryName":{"id":45298,"name":"LibStakingChangeLog","nameLocations":["15427:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"15427:19:69"},"typeName":{"id":45300,"nodeType":"UserDefinedTypeName","pathNode":{"id":45299,"name":"StakingChangeLog","nameLocations":["15451:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"15451:16:69"},"referencedDeclaration":50123,"src":"15451:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45305,"nodeType":"UsingForDirective","src":"15473:39:69","nodes":[],"global":false,"libraryName":{"id":45302,"name":"LibValidatorSet","nameLocations":["15479:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"15479:15:69"},"typeName":{"id":45304,"nodeType":"UserDefinedTypeName","pathNode":{"id":45303,"name":"ValidatorSet","nameLocations":["15499:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"15499:12:69"},"referencedDeclaration":50190,"src":"15499:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45309,"nodeType":"UsingForDirective","src":"15517:25:69","nodes":[],"global":false,"libraryName":{"id":45306,"name":"LibMaxPQ","nameLocations":["15523:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"15523:8:69"},"typeName":{"id":45308,"nodeType":"UserDefinedTypeName","pathNode":{"id":45307,"name":"MaxPQ","nameLocations":["15536:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"15536:5:69"},"referencedDeclaration":48411,"src":"15536:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":45313,"nodeType":"UsingForDirective","src":"15547:25:69","nodes":[],"global":false,"libraryName":{"id":45310,"name":"LibMinPQ","nameLocations":["15553:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"15553:8:69"},"typeName":{"id":45312,"nodeType":"UserDefinedTypeName","pathNode":{"id":45311,"name":"MinPQ","nameLocations":["15566:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"15566:5:69"},"referencedDeclaration":49029,"src":"15566:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":45316,"nodeType":"UsingForDirective","src":"15577:34:69","nodes":[],"global":false,"libraryName":{"id":45314,"name":"Address","nameLocations":["15583:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"15583:7:69"},"typeName":{"id":45315,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":45319,"nodeType":"VariableDeclaration","src":"15617:57:69","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:69","scope":46176,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45317,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":45318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":45323,"nodeType":"EventDefinition","src":"15681:50:69","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:69","parameters":{"id":45322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45321,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:69","nodeType":"VariableDeclaration","scope":45323,"src":"15716:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45320,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:69"}},{"id":45329,"nodeType":"EventDefinition","src":"15736:59:69","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:69","parameters":{"id":45328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:69","nodeType":"VariableDeclaration","scope":45329,"src":"15760:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45324,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45327,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:69","nodeType":"VariableDeclaration","scope":45329,"src":"15779:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45326,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:69"}},{"id":45350,"nodeType":"FunctionDefinition","src":"15846:221:69","nodes":[],"body":{"id":45349,"nodeType":"Block","src":"15934:133:69","nodes":[],"statements":[{"assignments":[45338],"declarations":[{"constant":false,"id":45338,"mutability":"mutable","name":"s","nameLocation":"15971:1:69","nodeType":"VariableDeclaration","scope":45349,"src":"15944:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45337,"nodeType":"UserDefinedTypeName","pathNode":{"id":45336,"name":"SubnetActorStorage","nameLocations":["15944:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"15944:18:69"},"referencedDeclaration":47281,"src":"15944:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45342,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45339,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"15975:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"15975:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:69"},{"expression":{"arguments":[{"id":45346,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45331,"src":"16050:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45343,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45338,"src":"16026:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16026:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:69","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"16026:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":45347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45335,"id":45348,"nodeType":"Return","src":"16019:41:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:69","parameters":{"id":45332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45331,"mutability":"mutable","name":"validator","nameLocation":"15881:9:69","nodeType":"VariableDeclaration","scope":45350,"src":"15873:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45330,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:69"},"returnParameters":{"id":45335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45334,"mutability":"mutable","name":"power","nameLocation":"15927:5:69","nodeType":"VariableDeclaration","scope":45350,"src":"15919:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45333,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45373,"nodeType":"FunctionDefinition","src":"16136:225:69","nodes":[],"body":{"id":45372,"nodeType":"Block","src":"16211:150:69","nodes":[],"statements":[{"assignments":[45360],"declarations":[{"constant":false,"id":45360,"mutability":"mutable","name":"s","nameLocation":"16248:1:69","nodeType":"VariableDeclaration","scope":45372,"src":"16221:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45359,"nodeType":"UserDefinedTypeName","pathNode":{"id":45358,"name":"SubnetActorStorage","nameLocations":["16221:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16221:18:69"},"referencedDeclaration":47281,"src":"16221:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45364,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45361,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16252:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16252:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:69"},{"expression":{"arguments":[{"id":45369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45353,"src":"16344:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45365,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45360,"src":"16303:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16303:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"16303:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"16303:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45357,"id":45371,"nodeType":"Return","src":"16296:58:69"}]},"documentation":{"id":45351,"nodeType":"StructuredDocumentation","src":"16073:58:69","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:69","parameters":{"id":45354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45353,"mutability":"mutable","name":"validator","nameLocation":"16171:9:69","nodeType":"VariableDeclaration","scope":45373,"src":"16163:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45352,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:69"},"returnParameters":{"id":45357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45373,"src":"16205:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45355,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45396,"nodeType":"FunctionDefinition","src":"16430:227:69","nodes":[],"body":{"id":45395,"nodeType":"Block","src":"16506:151:69","nodes":[],"statements":[{"assignments":[45383],"declarations":[{"constant":false,"id":45383,"mutability":"mutable","name":"s","nameLocation":"16543:1:69","nodeType":"VariableDeclaration","scope":45395,"src":"16516:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45382,"nodeType":"UserDefinedTypeName","pathNode":{"id":45381,"name":"SubnetActorStorage","nameLocations":["16516:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16516:18:69"},"referencedDeclaration":47281,"src":"16516:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45387,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45384,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16547:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16547:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:69"},{"expression":{"arguments":[{"id":45392,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45376,"src":"16640:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45388,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45383,"src":"16598:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16598:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"16598:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"16598:41:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45380,"id":45394,"nodeType":"Return","src":"16591:59:69"}]},"documentation":{"id":45374,"nodeType":"StructuredDocumentation","src":"16367:58:69","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:69","parameters":{"id":45377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45376,"mutability":"mutable","name":"validator","nameLocation":"16466:9:69","nodeType":"VariableDeclaration","scope":45396,"src":"16458:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45375,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:69"},"returnParameters":{"id":45380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45396,"src":"16500:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45378,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45409,"nodeType":"FunctionDefinition","src":"16912:103:69","nodes":[],"body":{"id":45408,"nodeType":"Block","src":"16976:39:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":45405,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45399,"src":"17003:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45404,"name":"hasStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45434,"src":"16993:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16993:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45403,"id":45407,"nodeType":"Return","src":"16986:22:69"}]},"documentation":{"id":45397,"nodeType":"StructuredDocumentation","src":"16663:244:69","text":"@notice Checks if the provided address is a validator (active or waiting) based on its total collateral.\n @param addr The address to check for validator status.\n @return A boolean indicating whether the address is a validator."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"16921:11:69","parameters":{"id":45400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45399,"mutability":"mutable","name":"addr","nameLocation":"16941:4:69","nodeType":"VariableDeclaration","scope":45409,"src":"16933:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45398,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16932:14:69"},"returnParameters":{"id":45403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45409,"src":"16970:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45401,"name":"bool","nodeType":"ElementaryTypeName","src":"16970:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16969:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45434,"nodeType":"FunctionDefinition","src":"17217:280:69","nodes":[],"body":{"id":45433,"nodeType":"Block","src":"17284:213:69","nodes":[],"statements":[{"assignments":[45419],"declarations":[{"constant":false,"id":45419,"mutability":"mutable","name":"s","nameLocation":"17321:1:69","nodeType":"VariableDeclaration","scope":45433,"src":"17294:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45418,"nodeType":"UserDefinedTypeName","pathNode":{"id":45417,"name":"SubnetActorStorage","nameLocations":["17294:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17294:18:69"},"referencedDeclaration":47281,"src":"17294:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45423,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45420,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17325:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17347:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17325:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17325:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17294:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45424,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45419,"src":"17433:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17435:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17433:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"17433:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45428,"indexExpression":{"id":45427,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45412,"src":"17459:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17433:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17470:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"17433:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17433:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45416,"id":45432,"nodeType":"Return","src":"17426:64:69"}]},"documentation":{"id":45410,"nodeType":"StructuredDocumentation","src":"17021:191:69","text":"@notice Checks if the validator has staked before.\n @param validator The address to check for staking status.\n @return A boolean indicating whether the validator has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"17226:9:69","parameters":{"id":45413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45412,"mutability":"mutable","name":"validator","nameLocation":"17244:9:69","nodeType":"VariableDeclaration","scope":45434,"src":"17236:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45411,"name":"address","nodeType":"ElementaryTypeName","src":"17236:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17235:19:69"},"returnParameters":{"id":45416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45434,"src":"17278:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45414,"name":"bool","nodeType":"ElementaryTypeName","src":"17278:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17277:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45452,"nodeType":"FunctionDefinition","src":"17503:201:69","nodes":[],"body":{"id":45451,"nodeType":"Block","src":"17567:137:69","nodes":[],"statements":[{"assignments":[45441],"declarations":[{"constant":false,"id":45441,"mutability":"mutable","name":"s","nameLocation":"17604:1:69","nodeType":"VariableDeclaration","scope":45451,"src":"17577:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45440,"nodeType":"UserDefinedTypeName","pathNode":{"id":45439,"name":"SubnetActorStorage","nameLocations":["17577:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17577:18:69"},"referencedDeclaration":47281,"src":"17577:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45445,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45442,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17608:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17630:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17608:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17577:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45446,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45441,"src":"17659:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17659:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17674:21:69","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44417,"src":"17659:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":45449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17659:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45438,"id":45450,"nodeType":"Return","src":"17652:45:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17512:21:69","parameters":{"id":45435,"nodeType":"ParameterList","parameters":[],"src":"17533:2:69"},"returnParameters":{"id":45438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45452,"src":"17559:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45436,"name":"uint16","nodeType":"ElementaryTypeName","src":"17559:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17558:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45478,"nodeType":"FunctionDefinition","src":"17792:243:69","nodes":[],"body":{"id":45477,"nodeType":"Block","src":"17850:185:69","nodes":[],"statements":[{"assignments":[45460],"declarations":[{"constant":false,"id":45460,"mutability":"mutable","name":"s","nameLocation":"17887:1:69","nodeType":"VariableDeclaration","scope":45477,"src":"17860:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45459,"nodeType":"UserDefinedTypeName","pathNode":{"id":45458,"name":"SubnetActorStorage","nameLocations":["17860:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17860:18:69"},"referencedDeclaration":47281,"src":"17860:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45464,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45461,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17891:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17891:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17860:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45465,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17942:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17944:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17942:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17957:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"17942:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"17942:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17942:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45470,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17987:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17989:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18002:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"17987:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18019:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"17987:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":45474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17987:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17942:86:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45457,"id":45476,"nodeType":"Return","src":"17935:93:69"}]},"documentation":{"id":45453,"nodeType":"StructuredDocumentation","src":"17710:77:69","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17801:15:69","parameters":{"id":45454,"nodeType":"ParameterList","parameters":[],"src":"17816:2:69"},"returnParameters":{"id":45457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45478,"src":"17842:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45455,"name":"uint16","nodeType":"ElementaryTypeName","src":"17842:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17841:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45496,"nodeType":"FunctionDefinition","src":"18041:214:69","nodes":[],"body":{"id":45495,"nodeType":"Block","src":"18112:143:69","nodes":[],"statements":[{"assignments":[45485],"declarations":[{"constant":false,"id":45485,"mutability":"mutable","name":"s","nameLocation":"18149:1:69","nodeType":"VariableDeclaration","scope":45495,"src":"18122:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45484,"nodeType":"UserDefinedTypeName","pathNode":{"id":45483,"name":"SubnetActorStorage","nameLocations":["18122:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18122:18:69"},"referencedDeclaration":47281,"src":"18122:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45489,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45486,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18153:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18153:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18153:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18122:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45490,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45485,"src":"18204:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18204:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18204:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18204:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45482,"id":45494,"nodeType":"Return","src":"18197:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"18050:27:69","parameters":{"id":45479,"nodeType":"ParameterList","parameters":[],"src":"18077:2:69"},"returnParameters":{"id":45482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45496,"src":"18103:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45480,"name":"uint256","nodeType":"ElementaryTypeName","src":"18103:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18102:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45514,"nodeType":"FunctionDefinition","src":"18261:205:69","nodes":[],"body":{"id":45513,"nodeType":"Block","src":"18323:143:69","nodes":[],"statements":[{"assignments":[45503],"declarations":[{"constant":false,"id":45503,"mutability":"mutable","name":"s","nameLocation":"18360:1:69","nodeType":"VariableDeclaration","scope":45513,"src":"18333:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45502,"nodeType":"UserDefinedTypeName","pathNode":{"id":45501,"name":"SubnetActorStorage","nameLocations":["18333:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18333:18:69"},"referencedDeclaration":47281,"src":"18333:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45507,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45504,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18364:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18386:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18364:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18364:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18333:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45508,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45503,"src":"18415:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18417:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18415:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18430:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18415:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45500,"id":45512,"nodeType":"Return","src":"18408:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"18270:18:69","parameters":{"id":45497,"nodeType":"ParameterList","parameters":[],"src":"18288:2:69"},"returnParameters":{"id":45500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45514,"src":"18314:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45498,"name":"uint256","nodeType":"ElementaryTypeName","src":"18314:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18313:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45537,"nodeType":"FunctionDefinition","src":"18541:236:69","nodes":[],"body":{"id":45536,"nodeType":"Block","src":"18626:151:69","nodes":[],"statements":[{"assignments":[45524],"declarations":[{"constant":false,"id":45524,"mutability":"mutable","name":"s","nameLocation":"18663:1:69","nodeType":"VariableDeclaration","scope":45536,"src":"18636:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45523,"nodeType":"UserDefinedTypeName","pathNode":{"id":45522,"name":"SubnetActorStorage","nameLocations":["18636:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18636:18:69"},"referencedDeclaration":47281,"src":"18636:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45528,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45525,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18667:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18667:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18667:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18636:65:69"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45529,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45524,"src":"18718:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18720:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18718:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18733:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"18718:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45533,"indexExpression":{"id":45532,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45517,"src":"18744:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18718:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18755:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"18718:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45521,"id":45535,"nodeType":"Return","src":"18711:59:69"}]},"documentation":{"id":45515,"nodeType":"StructuredDocumentation","src":"18472:64:69","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18550:24:69","parameters":{"id":45518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45517,"mutability":"mutable","name":"validator","nameLocation":"18583:9:69","nodeType":"VariableDeclaration","scope":45537,"src":"18575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45516,"name":"address","nodeType":"ElementaryTypeName","src":"18575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18574:19:69"},"returnParameters":{"id":45521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45537,"src":"18617:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45519,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18616:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45562,"nodeType":"FunctionDefinition","src":"18937:227:69","nodes":[],"body":{"id":45561,"nodeType":"Block","src":"19018:146:69","nodes":[],"statements":[{"assignments":[45547],"declarations":[{"constant":false,"id":45547,"mutability":"mutable","name":"s","nameLocation":"19055:1:69","nodeType":"VariableDeclaration","scope":45561,"src":"19028:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45546,"nodeType":"UserDefinedTypeName","pathNode":{"id":45545,"name":"SubnetActorStorage","nameLocations":["19028:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19028:18:69"},"referencedDeclaration":47281,"src":"19028:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45551,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45548,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19059:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19081:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19059:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19059:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19028:65:69"},{"expression":{"arguments":[{"id":45557,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45540,"src":"19140:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45558,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45542,"src":"19151:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45552,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45547,"src":"19103:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19105:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19103:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19118:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"19103:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45560,"nodeType":"ExpressionStatement","src":"19103:54:69"}]},"documentation":{"id":45538,"nodeType":"StructuredDocumentation","src":"18849:83:69","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18946:28:69","parameters":{"id":45543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45540,"mutability":"mutable","name":"validator","nameLocation":"18983:9:69","nodeType":"VariableDeclaration","scope":45562,"src":"18975:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45539,"name":"address","nodeType":"ElementaryTypeName","src":"18975:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45542,"mutability":"mutable","name":"power","nameLocation":"19002:5:69","nodeType":"VariableDeclaration","scope":45562,"src":"18994:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45541,"name":"uint256","nodeType":"ElementaryTypeName","src":"18994:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18974:34:69"},"returnParameters":{"id":45544,"nodeType":"ParameterList","parameters":[],"src":"19018:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45587,"nodeType":"FunctionDefinition","src":"19251:224:69","nodes":[],"body":{"id":45586,"nodeType":"Block","src":"19336:139:69","nodes":[],"statements":[{"assignments":[45572],"declarations":[{"constant":false,"id":45572,"mutability":"mutable","name":"s","nameLocation":"19373:1:69","nodeType":"VariableDeclaration","scope":45586,"src":"19346:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45571,"nodeType":"UserDefinedTypeName","pathNode":{"id":45570,"name":"SubnetActorStorage","nameLocations":["19346:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19346:18:69"},"referencedDeclaration":47281,"src":"19346:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45576,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45573,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19377:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19399:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19377:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19377:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19346:65:69"},{"expression":{"arguments":[{"id":45582,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45565,"src":"19448:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45583,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"19459:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45577,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45572,"src":"19421:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19423:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19421:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19436:11:69","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":44693,"src":"19421:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":45584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19421:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45585,"nodeType":"ExpressionStatement","src":"19421:47:69"}]},"documentation":{"id":45563,"nodeType":"StructuredDocumentation","src":"19170:76:69","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"19260:22:69","parameters":{"id":45568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45565,"mutability":"mutable","name":"validator","nameLocation":"19291:9:69","nodeType":"VariableDeclaration","scope":45587,"src":"19283:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45564,"name":"address","nodeType":"ElementaryTypeName","src":"19283:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45567,"mutability":"mutable","name":"metadata","nameLocation":"19317:8:69","nodeType":"VariableDeclaration","scope":45587,"src":"19302:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45566,"name":"bytes","nodeType":"ElementaryTypeName","src":"19302:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19282:44:69"},"returnParameters":{"id":45569,"nodeType":"ParameterList","parameters":[],"src":"19336:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45696,"nodeType":"FunctionDefinition","src":"19573:1335:69","nodes":[],"body":{"id":45695,"nodeType":"Block","src":"19645:1263:69","nodes":[],"statements":[{"assignments":[45597],"declarations":[{"constant":false,"id":45597,"mutability":"mutable","name":"s","nameLocation":"19682:1:69","nodeType":"VariableDeclaration","scope":45695,"src":"19655:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45596,"nodeType":"UserDefinedTypeName","pathNode":{"id":45595,"name":"SubnetActorStorage","nameLocations":["19655:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19655:18:69"},"referencedDeclaration":47281,"src":"19655:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45601,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45598,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19686:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19708:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19686:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19686:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19655:65:69"},{"expression":{"arguments":[{"id":45607,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19820:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45608,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45602,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19791:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19791:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"19791:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45610,"nodeType":"ExpressionStatement","src":"19791:47:69"},{"expression":{"arguments":[{"id":45616,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19943:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45617,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19954:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45611,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19915:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19913:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19928:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"19913:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19913:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45619,"nodeType":"ExpressionStatement","src":"19913:48:69"},{"condition":{"id":45622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19976:15:69","subExpression":{"expression":{"id":45620,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19977:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:12:69","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"19977:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45694,"nodeType":"IfStatement","src":"19972:930:69","trueBody":{"id":45693,"nodeType":"Block","src":"19993:909:69","statements":[{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"alreadyValidator","nameLocation":"20118:16:69","nodeType":"VariableDeclaration","scope":45693,"src":"20113:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45623,"name":"bool","nodeType":"ElementaryTypeName","src":"20113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45625,"nodeType":"VariableDeclarationStatement","src":"20113:21:69"},{"assignments":[45627],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"length","nameLocation":"20156:6:69","nodeType":"VariableDeclaration","scope":45693,"src":"20148:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45626,"name":"uint256","nodeType":"ElementaryTypeName","src":"20148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45631,"initialValue":{"expression":{"expression":{"id":45628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20165:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20167:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20165:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20185:6:69","memberName":"length","nodeType":"MemberAccess","src":"20165:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20148:43:69"},{"body":{"id":45656,"nodeType":"Block","src":"20235:240:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":45638,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20257:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20259:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20257:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45641,"indexExpression":{"id":45640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20277:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20257:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage","typeString":"struct Validator storage ref"}},"id":45642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:4:69","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":50208,"src":"20257:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":45643,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20288:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20257:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45651,"nodeType":"IfStatement","src":"20253:137:69","trueBody":{"id":45650,"nodeType":"Block","src":"20299:91:69","statements":[{"expression":{"id":45647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45645,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20321:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20340:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20321:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45648,"nodeType":"ExpressionStatement","src":"20321:23:69"},{"id":45649,"nodeType":"Break","src":"20366:5:69"}]}},{"id":45655,"nodeType":"UncheckedBlock","src":"20407:54:69","statements":[{"expression":{"id":45653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20439:3:69","subExpression":{"id":45652,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20441:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45654,"nodeType":"ExpressionStatement","src":"20439:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45635,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20221:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45636,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45627,"src":"20225:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20221:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45657,"initializationExpression":{"assignments":[45633],"declarations":[{"constant":false,"id":45633,"mutability":"mutable","name":"i","nameLocation":"20218:1:69","nodeType":"VariableDeclaration","scope":45657,"src":"20210:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45632,"name":"uint256","nodeType":"ElementaryTypeName","src":"20210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45634,"nodeType":"VariableDeclarationStatement","src":"20210:9:69"},"nodeType":"ForStatement","src":"20205:270:69"},{"condition":{"id":45659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20492:17:69","subExpression":{"id":45658,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20493:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45692,"nodeType":"IfStatement","src":"20488:404:69","trueBody":{"id":45691,"nodeType":"Block","src":"20511:381:69","statements":[{"assignments":[45661],"declarations":[{"constant":false,"id":45661,"mutability":"mutable","name":"collateral","nameLocation":"20537:10:69","nodeType":"VariableDeclaration","scope":45691,"src":"20529:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45660,"name":"uint256","nodeType":"ElementaryTypeName","src":"20529:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45668,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":45662,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20550:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20550:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20565:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20550:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45666,"indexExpression":{"id":45665,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20576:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20550:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20587:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"20550:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20529:77:69"},{"assignments":[45671],"declarations":[{"constant":false,"id":45671,"mutability":"mutable","name":"val","nameLocation":"20641:3:69","nodeType":"VariableDeclaration","scope":45691,"src":"20624:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator"},"typeName":{"id":45670,"nodeType":"UserDefinedTypeName","pathNode":{"id":45669,"name":"Validator","nameLocations":["20624:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"20624:9:69"},"referencedDeclaration":50211,"src":"20624:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":45682,"initialValue":{"arguments":[{"id":45673,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20685:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45674,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45661,"src":"20724:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":45675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20766:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20768:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20766:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20766:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45679,"indexExpression":{"id":45678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20792:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20766:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20803:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"20766:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":45672,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"20647:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50211_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":45681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20679:4:69","20716:6:69","20756:8:69"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20647:183:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20624:206:69"},{"expression":{"arguments":[{"id":45688,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45671,"src":"20873:3:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":45683,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20848:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20848:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20868:4:69","memberName":"push","nodeType":"MemberAccess","src":"20848:24:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50211_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":45689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20848:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45690,"nodeType":"ExpressionStatement","src":"20848:29:69"}]}}]}}]},"documentation":{"id":45588,"nodeType":"StructuredDocumentation","src":"19481:87:69","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19582:18:69","parameters":{"id":45593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45590,"mutability":"mutable","name":"validator","nameLocation":"19609:9:69","nodeType":"VariableDeclaration","scope":45696,"src":"19601:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45589,"name":"address","nodeType":"ElementaryTypeName","src":"19601:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45592,"mutability":"mutable","name":"amount","nameLocation":"19628:6:69","nodeType":"VariableDeclaration","scope":45696,"src":"19620:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45591,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19600:35:69"},"returnParameters":{"id":45594,"nodeType":"ParameterList","parameters":[],"src":"19645:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45738,"nodeType":"FunctionDefinition","src":"21098:504:69","nodes":[],"body":{"id":45737,"nodeType":"Block","src":"21171:431:69","nodes":[],"statements":[{"assignments":[45706],"declarations":[{"constant":false,"id":45706,"mutability":"mutable","name":"s","nameLocation":"21208:1:69","nodeType":"VariableDeclaration","scope":45737,"src":"21181:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45705,"nodeType":"UserDefinedTypeName","pathNode":{"id":45704,"name":"SubnetActorStorage","nameLocations":["21181:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21181:18:69"},"referencedDeclaration":47281,"src":"21181:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45710,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45707,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21212:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21234:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21212:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21212:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21181:65:69"},{"expression":{"arguments":[{"id":45716,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21347:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45717,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21358:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45711,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21317:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21319:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21317:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"21317:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21317:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45719,"nodeType":"ExpressionStatement","src":"21317:48:69"},{"expression":{"arguments":[{"id":45725,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21471:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21482:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45720,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21440:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21442:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21440:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21455:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"21440:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21440:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45728,"nodeType":"ExpressionStatement","src":"21440:49:69"},{"expression":{"arguments":[{"id":45734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21588:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45731,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21567:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21559:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45729,"name":"address","nodeType":"ElementaryTypeName","src":"21559:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21578:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"21559:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45736,"nodeType":"ExpressionStatement","src":"21559:36:69"}]},"documentation":{"id":45697,"nodeType":"StructuredDocumentation","src":"20914:179:69","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"21107:19:69","parameters":{"id":45702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45699,"mutability":"mutable","name":"validator","nameLocation":"21135:9:69","nodeType":"VariableDeclaration","scope":45738,"src":"21127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45698,"name":"address","nodeType":"ElementaryTypeName","src":"21127:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45701,"mutability":"mutable","name":"amount","nameLocation":"21154:6:69","nodeType":"VariableDeclaration","scope":45738,"src":"21146:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45700,"name":"uint256","nodeType":"ElementaryTypeName","src":"21146:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21126:35:69"},"returnParameters":{"id":45703,"nodeType":"ParameterList","parameters":[],"src":"21171:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45766,"nodeType":"FunctionDefinition","src":"21732:280:69","nodes":[],"body":{"id":45765,"nodeType":"Block","src":"21828:184:69","nodes":[],"statements":[{"assignments":[45750],"declarations":[{"constant":false,"id":45750,"mutability":"mutable","name":"s","nameLocation":"21865:1:69","nodeType":"VariableDeclaration","scope":45765,"src":"21838:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45749,"nodeType":"UserDefinedTypeName","pathNode":{"id":45748,"name":"SubnetActorStorage","nameLocations":["21838:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21838:18:69"},"referencedDeclaration":47281,"src":"21838:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45754,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45751,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21869:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21891:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21869:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21838:65:69"},{"expression":{"arguments":[{"id":45760,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45741,"src":"21959:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45761,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45743,"src":"21980:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45762,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45745,"src":"21997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45755,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45750,"src":"21913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21915:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"21913:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21925:21:69","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":46528,"src":"21913:33:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21948:9:69","21970:8:69","21990:5:69"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21913:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45764,"nodeType":"ExpressionStatement","src":"21913:92:69"}]},"documentation":{"id":45739,"nodeType":"StructuredDocumentation","src":"21675:52:69","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21741:17:69","parameters":{"id":45746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45741,"mutability":"mutable","name":"validator","nameLocation":"21767:9:69","nodeType":"VariableDeclaration","scope":45766,"src":"21759:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45740,"name":"address","nodeType":"ElementaryTypeName","src":"21759:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45743,"mutability":"mutable","name":"metadata","nameLocation":"21793:8:69","nodeType":"VariableDeclaration","scope":45766,"src":"21778:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45742,"name":"bytes","nodeType":"ElementaryTypeName","src":"21778:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45745,"mutability":"mutable","name":"amount","nameLocation":"21811:6:69","nodeType":"VariableDeclaration","scope":45766,"src":"21803:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45744,"name":"uint256","nodeType":"ElementaryTypeName","src":"21803:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21758:60:69"},"returnParameters":{"id":45747,"nodeType":"ParameterList","parameters":[],"src":"21828:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45791,"nodeType":"FunctionDefinition","src":"22061:223:69","nodes":[],"body":{"id":45790,"nodeType":"Block","src":"22144:140:69","nodes":[],"statements":[{"assignments":[45776],"declarations":[{"constant":false,"id":45776,"mutability":"mutable","name":"s","nameLocation":"22181:1:69","nodeType":"VariableDeclaration","scope":45790,"src":"22154:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45775,"nodeType":"UserDefinedTypeName","pathNode":{"id":45774,"name":"SubnetActorStorage","nameLocations":["22154:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22154:18:69"},"referencedDeclaration":47281,"src":"22154:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45780,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45777,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22185:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22185:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22185:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22154:65:69"},{"expression":{"arguments":[{"id":45786,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45769,"src":"22257:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45787,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45771,"src":"22268:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45781,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"22229:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22229:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22241:15:69","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":46488,"src":"22229:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45789,"nodeType":"ExpressionStatement","src":"22229:48:69"}]},"documentation":{"id":45767,"nodeType":"StructuredDocumentation","src":"22018:38:69","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"22070:20:69","parameters":{"id":45772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45769,"mutability":"mutable","name":"validator","nameLocation":"22099:9:69","nodeType":"VariableDeclaration","scope":45791,"src":"22091:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45768,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45771,"mutability":"mutable","name":"metadata","nameLocation":"22125:8:69","nodeType":"VariableDeclaration","scope":45791,"src":"22110:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45770,"name":"bytes","nodeType":"ElementaryTypeName","src":"22110:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22090:44:69"},"returnParameters":{"id":45773,"nodeType":"ParameterList","parameters":[],"src":"22144:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45825,"nodeType":"FunctionDefinition","src":"22329:256:69","nodes":[],"body":{"id":45824,"nodeType":"Block","src":"22390:195:69","nodes":[],"statements":[{"assignments":[45801],"declarations":[{"constant":false,"id":45801,"mutability":"mutable","name":"s","nameLocation":"22427:1:69","nodeType":"VariableDeclaration","scope":45824,"src":"22400:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45800,"nodeType":"UserDefinedTypeName","pathNode":{"id":45799,"name":"SubnetActorStorage","nameLocations":["22400:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22400:18:69"},"referencedDeclaration":47281,"src":"22400:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45802,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22431:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22453:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22431:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22431:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22400:65:69"},{"expression":{"arguments":[{"id":45811,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22503:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45812,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22514:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45806,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22476:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22478:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22476:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22488:14:69","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":46602,"src":"22476:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22476:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45814,"nodeType":"ExpressionStatement","src":"22476:45:69"},{"expression":{"arguments":[{"id":45820,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22560:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45821,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22571:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45815,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22531:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22533:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22531:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22546:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"22531:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22531:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45823,"nodeType":"ExpressionStatement","src":"22531:47:69"}]},"documentation":{"id":45792,"nodeType":"StructuredDocumentation","src":"22290:34:69","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"22338:7:69","parameters":{"id":45797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45794,"mutability":"mutable","name":"validator","nameLocation":"22354:9:69","nodeType":"VariableDeclaration","scope":45825,"src":"22346:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45793,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45796,"mutability":"mutable","name":"amount","nameLocation":"22373:6:69","nodeType":"VariableDeclaration","scope":45825,"src":"22365:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45795,"name":"uint256","nodeType":"ElementaryTypeName","src":"22365:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22345:35:69"},"returnParameters":{"id":45798,"nodeType":"ParameterList","parameters":[],"src":"22390:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45859,"nodeType":"FunctionDefinition","src":"22631:259:69","nodes":[],"body":{"id":45858,"nodeType":"Block","src":"22693:197:69","nodes":[],"statements":[{"assignments":[45835],"declarations":[{"constant":false,"id":45835,"mutability":"mutable","name":"s","nameLocation":"22730:1:69","nodeType":"VariableDeclaration","scope":45858,"src":"22703:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45834,"nodeType":"UserDefinedTypeName","pathNode":{"id":45833,"name":"SubnetActorStorage","nameLocations":["22703:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22703:18:69"},"referencedDeclaration":47281,"src":"22703:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45836,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22734:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22756:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22734:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22703:65:69"},{"expression":{"arguments":[{"id":45845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22807:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45846,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45840,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22779:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22781:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22779:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22791:15:69","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":46565,"src":"22779:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22779:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45848,"nodeType":"ExpressionStatement","src":"22779:46:69"},{"expression":{"arguments":[{"id":45854,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22865:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45855,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22876:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45849,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22835:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22837:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22835:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22850:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"22835:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45857,"nodeType":"ExpressionStatement","src":"22835:48:69"}]},"documentation":{"id":45826,"nodeType":"StructuredDocumentation","src":"22591:35:69","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22640:8:69","parameters":{"id":45831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45828,"mutability":"mutable","name":"validator","nameLocation":"22657:9:69","nodeType":"VariableDeclaration","scope":45859,"src":"22649:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45827,"name":"address","nodeType":"ElementaryTypeName","src":"22649:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45830,"mutability":"mutable","name":"amount","nameLocation":"22676:6:69","nodeType":"VariableDeclaration","scope":45859,"src":"22668:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45829,"name":"uint256","nodeType":"ElementaryTypeName","src":"22668:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22648:35:69"},"returnParameters":{"id":45832,"nodeType":"ParameterList","parameters":[],"src":"22693:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45886,"nodeType":"FunctionDefinition","src":"22999:244:69","nodes":[],"body":{"id":45885,"nodeType":"Block","src":"23052:191:69","nodes":[],"statements":[{"assignments":[45867],"declarations":[{"constant":false,"id":45867,"mutability":"mutable","name":"s","nameLocation":"23089:1:69","nodeType":"VariableDeclaration","scope":45885,"src":"23062:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45866,"nodeType":"UserDefinedTypeName","pathNode":{"id":45865,"name":"SubnetActorStorage","nameLocations":["23062:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23062:18:69"},"referencedDeclaration":47281,"src":"23062:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45871,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45868,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23093:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23093:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23093:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23062:65:69"},{"assignments":[45873],"declarations":[{"constant":false,"id":45873,"mutability":"mutable","name":"amount","nameLocation":"23145:6:69","nodeType":"VariableDeclaration","scope":45885,"src":"23137:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45872,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45879,"initialValue":{"arguments":[{"id":45877,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45874,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45867,"src":"23154:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23156:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"23154:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23169:5:69","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":44301,"src":"23154:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23154:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23137:48:69"},{"eventCall":{"arguments":[{"id":45881,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45882,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45873,"src":"23229:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45880,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45329,"src":"23200:17:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45884,"nodeType":"EmitStatement","src":"23195:41:69"}]},"documentation":{"id":45860,"nodeType":"StructuredDocumentation","src":"22953:41:69","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"23008:15:69","parameters":{"id":45863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45862,"mutability":"mutable","name":"validator","nameLocation":"23032:9:69","nodeType":"VariableDeclaration","scope":45886,"src":"23024:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45861,"name":"address","nodeType":"ElementaryTypeName","src":"23024:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23023:19:69"},"returnParameters":{"id":45864,"nodeType":"ParameterList","parameters":[],"src":"23052:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45942,"nodeType":"FunctionDefinition","src":"23357:439:69","nodes":[],"body":{"id":45941,"nodeType":"Block","src":"23414:382:69","nodes":[],"statements":[{"assignments":[45894],"declarations":[{"constant":false,"id":45894,"mutability":"mutable","name":"s","nameLocation":"23451:1:69","nodeType":"VariableDeclaration","scope":45941,"src":"23424:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45893,"nodeType":"UserDefinedTypeName","pathNode":{"id":45892,"name":"SubnetActorStorage","nameLocations":["23424:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23424:18:69"},"referencedDeclaration":47281,"src":"23424:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45898,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45895,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23455:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23477:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23455:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23455:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23424:65:69"},{"assignments":[45900],"declarations":[{"constant":false,"id":45900,"mutability":"mutable","name":"amount","nameLocation":"23507:6:69","nodeType":"VariableDeclaration","scope":45941,"src":"23499:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45899,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45906,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45901,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23516:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23518:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23516:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23533:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23516:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45905,"indexExpression":{"id":45904,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23541:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23499:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45907,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23574:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23564:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45914,"nodeType":"IfStatement","src":"23560:69:69","trueBody":{"id":45913,"nodeType":"Block","src":"23577:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45910,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"23598:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23598:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45912,"nodeType":"RevertStatement","src":"23591:27:69"}]}},{"expression":{"id":45923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45915,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23639:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23641:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23639:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23656:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23639:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45921,"indexExpression":{"id":45918,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23664:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23639:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23675:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23639:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45924,"nodeType":"ExpressionStatement","src":"23639:37:69"},{"expression":{"arguments":[{"id":45930,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23737:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23695:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"23695:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45925,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"23686:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23713:23:69","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":40275,"src":"23686:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45932,"nodeType":"ExpressionStatement","src":"23686:58:69"},{"expression":{"arguments":[{"id":45938,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23782:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45935,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23763:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23755:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45933,"name":"address","nodeType":"ElementaryTypeName","src":"23755:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23772:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"23755:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45940,"nodeType":"ExpressionStatement","src":"23755:34:69"}]},"documentation":{"id":45887,"nodeType":"StructuredDocumentation","src":"23249:103:69","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"23366:21:69","parameters":{"id":45890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45889,"mutability":"mutable","name":"relayer","nameLocation":"23396:7:69","nodeType":"VariableDeclaration","scope":45942,"src":"23388:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45888,"name":"address","nodeType":"ElementaryTypeName","src":"23388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23387:17:69"},"returnParameters":{"id":45891,"nodeType":"ParameterList","parameters":[],"src":"23414:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45965,"nodeType":"FunctionDefinition","src":"23802:247:69","nodes":[],"body":{"id":45964,"nodeType":"Block","src":"23875:174:69","nodes":[],"statements":[{"assignments":[45951],"declarations":[{"constant":false,"id":45951,"mutability":"mutable","name":"s","nameLocation":"23912:1:69","nodeType":"VariableDeclaration","scope":45964,"src":"23885:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45950,"nodeType":"UserDefinedTypeName","pathNode":{"id":45949,"name":"SubnetActorStorage","nameLocations":["23885:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23885:18:69"},"referencedDeclaration":47281,"src":"23885:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45955,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45952,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23916:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23938:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23916:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23885:65:69"},{"expression":{"components":[{"expression":{"expression":{"id":45956,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"23968:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23970:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"23968:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23980:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"23968:35:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45959,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"24005:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24007:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24005:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24005:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45962,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23967:75:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45948,"id":45963,"nodeType":"Return","src":"23960:82:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23811:23:69","parameters":{"id":45943,"nodeType":"ParameterList","parameters":[],"src":"23834:2:69"},"returnParameters":{"id":45948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23859:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45944,"name":"uint64","nodeType":"ElementaryTypeName","src":"23859:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23867:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45946,"name":"uint64","nodeType":"ElementaryTypeName","src":"23867:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23858:16:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46175,"nodeType":"FunctionDefinition","src":"24177:1944:69","nodes":[],"body":{"id":46174,"nodeType":"Block","src":"24237:1884:69","nodes":[],"statements":[{"assignments":[45973],"declarations":[{"constant":false,"id":45973,"mutability":"mutable","name":"s","nameLocation":"24274:1:69","nodeType":"VariableDeclaration","scope":46174,"src":"24247:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45972,"nodeType":"UserDefinedTypeName","pathNode":{"id":45971,"name":"SubnetActorStorage","nameLocations":["24247:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"24247:18:69"},"referencedDeclaration":47281,"src":"24247:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45977,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45974,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"24278:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"24278:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24278:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24247:65:69"},{"assignments":[45980],"declarations":[{"constant":false,"id":45980,"mutability":"mutable","name":"changeSet","nameLocation":"24347:9:69","nodeType":"VariableDeclaration","scope":46174,"src":"24322:34:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45979,"nodeType":"UserDefinedTypeName","pathNode":{"id":45978,"name":"StakingChangeLog","nameLocations":["24322:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"24322:16:69"},"referencedDeclaration":50123,"src":"24322:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45983,"initialValue":{"expression":{"id":45981,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24359:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24361:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24359:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24322:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45984,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24385:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45985,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24408:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"24408:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24385:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45992,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24513:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45993,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24535:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24545:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24535:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24513:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45998,"nodeType":"IfStatement","src":"24509:93:69","trueBody":{"id":45997,"nodeType":"Block","src":"24571:31:69","statements":[{"functionReturnParameters":45970,"id":45996,"nodeType":"Return","src":"24585:7:69"}]}},"id":45999,"nodeType":"IfStatement","src":"24381:221:69","trueBody":{"id":45991,"nodeType":"Block","src":"24443:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45988,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"24464:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24464:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45990,"nodeType":"RevertStatement","src":"24457:35:69"}]}},{"assignments":[46001],"declarations":[{"constant":false,"id":46001,"mutability":"mutable","name":"start","nameLocation":"24619:5:69","nodeType":"VariableDeclaration","scope":46174,"src":"24612:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46000,"name":"uint64","nodeType":"ElementaryTypeName","src":"24612:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46004,"initialValue":{"expression":{"id":46002,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24627:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24637:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24627:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24612:49:69"},{"body":{"id":46160,"nodeType":"Block","src":"24722:1257:69","statements":[{"assignments":[46014],"declarations":[{"constant":false,"id":46014,"mutability":"mutable","name":"change","nameLocation":"24758:6:69","nodeType":"VariableDeclaration","scope":46160,"src":"24736:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46013,"nodeType":"UserDefinedTypeName","pathNode":{"id":46012,"name":"StakingChange","nameLocations":["24736:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"24736:13:69"},"referencedDeclaration":50104,"src":"24736:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46019,"initialValue":{"arguments":[{"id":46017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24787:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46015,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24767:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24777:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"24767:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24767:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24736:53:69"},{"assignments":[46021],"declarations":[{"constant":false,"id":46021,"mutability":"mutable","name":"validator","nameLocation":"24811:9:69","nodeType":"VariableDeclaration","scope":46160,"src":"24803:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46020,"name":"address","nodeType":"ElementaryTypeName","src":"24803:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46024,"initialValue":{"expression":{"id":46022,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24823:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24830:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"24823:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24803:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46025,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24858:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24865:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"24858:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46027,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"24871:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24888:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"24871:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"24858:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46043,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25006:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25013:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25006:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46045,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25019:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25036:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"25019:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25006:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46147,"nodeType":"Block","src":"25325:546:69","statements":[{"assignments":[46085],"declarations":[{"constant":false,"id":46085,"mutability":"mutable","name":"amount","nameLocation":"25351:6:69","nodeType":"VariableDeclaration","scope":46147,"src":"25343:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46084,"name":"uint256","nodeType":"ElementaryTypeName","src":"25343:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46094,"initialValue":{"arguments":[{"expression":{"id":46088,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25371:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25378:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25371:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25388:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46090,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:69","typeDescriptions":{}}}],"id":46092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25387:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46086,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25360:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25364:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25360:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25360:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25343:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46095,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25420:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25427:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25420:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46097,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25433:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25450:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"25433:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25420:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46145,"nodeType":"Block","src":"25694:163:69","statements":[{"expression":{"arguments":[{"id":46132,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25746:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46133,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25757:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46127,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25716:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25718:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25716:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25731:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"25716:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25716:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46135,"nodeType":"ExpressionStatement","src":"25716:48:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":46137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25795:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25797:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25795:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46136,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25786:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25813:8:69","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":40263,"src":"25786:35:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":46142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":46141,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25829:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25786:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":46143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46144,"nodeType":"ExpressionStatement","src":"25786:52:69"}]},"id":46146,"nodeType":"IfStatement","src":"25416:441:69","trueBody":{"id":46126,"nodeType":"Block","src":"25460:228:69","statements":[{"expression":{"arguments":[{"id":46105,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25513:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46106,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25524:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46100,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25482:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25484:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25482:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25497:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"25482:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25482:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"25482:49:69"},{"expression":{"arguments":[{"id":46114,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25582:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46115,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25593:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25553:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25555:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"25553:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":46113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25568:13:69","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":44257,"src":"25553:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":46116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46117,"nodeType":"ExpressionStatement","src":"25553:47:69"},{"expression":{"arguments":[{"id":46123,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25662:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46119,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25631:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25633:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25631:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46118,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25622:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25649:12:69","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":40269,"src":"25622:39:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46125,"nodeType":"ExpressionStatement","src":"25622:47:69"}]}}]},"id":46148,"nodeType":"IfStatement","src":"25002:869:69","trueBody":{"id":46083,"nodeType":"Block","src":"25055:264:69","statements":[{"assignments":[46049,46051],"declarations":[{"constant":false,"id":46049,"mutability":"mutable","name":"metadata","nameLocation":"25087:8:69","nodeType":"VariableDeclaration","scope":46083,"src":"25074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46048,"name":"bytes","nodeType":"ElementaryTypeName","src":"25074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46051,"mutability":"mutable","name":"power","nameLocation":"25105:5:69","nodeType":"VariableDeclaration","scope":46083,"src":"25097:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46050,"name":"uint256","nodeType":"ElementaryTypeName","src":"25097:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46062,"initialValue":{"arguments":[{"expression":{"id":46054,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25125:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25132:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25125:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25142:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46056,"name":"bytes","nodeType":"ElementaryTypeName","src":"25142:5:69","typeDescriptions":{}}},{"id":46059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25149:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46058,"name":"uint256","nodeType":"ElementaryTypeName","src":"25149:7:69","typeDescriptions":{}}}],"id":46060,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25141:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46052,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25114:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25118:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25114:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25114:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25073:85:69"},{"expression":{"id":46072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46063,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25176:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25178:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25176:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25191:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"25176:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46069,"indexExpression":{"id":46066,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25202:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25176:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25213:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"25176:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46071,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46049,"src":"25224:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"25176:56:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46073,"nodeType":"ExpressionStatement","src":"25176:56:69"},{"expression":{"arguments":[{"id":46079,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25287:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46080,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46051,"src":"25298:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46074,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25250:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25250:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25265:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"25250:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25250:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46082,"nodeType":"ExpressionStatement","src":"25250:54:69"}]}},"id":46149,"nodeType":"IfStatement","src":"24854:1017:69","trueBody":{"id":46042,"nodeType":"Block","src":"24901:95:69","statements":[{"expression":{"id":46040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46030,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24919:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24921:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"24919:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24934:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"24919:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46036,"indexExpression":{"id":46033,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"24945:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24919:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24956:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"24919:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46038,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24967:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24974:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"24967:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24919:62:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46041,"nodeType":"ExpressionStatement","src":"24919:62:69"}]}},{"expression":{"arguments":[{"id":46153,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25907:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46150,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25885:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25895:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"25885:21:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25885:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46155,"nodeType":"ExpressionStatement","src":"25885:24:69"},{"id":46159,"nodeType":"UncheckedBlock","src":"25923:46:69","statements":[{"expression":{"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25951:3:69","subExpression":{"id":46156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25953:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46158,"nodeType":"ExpressionStatement","src":"25951:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24694:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46010,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24699:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24694:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46161,"initializationExpression":{"assignments":[46006],"declarations":[{"constant":false,"id":46006,"mutability":"mutable","name":"i","nameLocation":"24683:1:69","nodeType":"VariableDeclaration","scope":46161,"src":"24676:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46005,"name":"uint64","nodeType":"ElementaryTypeName","src":"24676:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46008,"initialValue":{"id":46007,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46001,"src":"24687:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24676:16:69"},"nodeType":"ForStatement","src":"24671:1308:69"},{"expression":{"id":46168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46162,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25989:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25999:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"25989:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46165,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26026:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26048:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26026:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25989:60:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46169,"nodeType":"ExpressionStatement","src":"25989:60:69"},{"eventCall":{"arguments":[{"id":46171,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26094:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46170,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45323,"src":"26065:28:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":46172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26065:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46173,"nodeType":"EmitStatement","src":"26060:54:69"}]},"documentation":{"id":45966,"nodeType":"StructuredDocumentation","src":"24055:117:69","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24186:13:69","parameters":{"id":45969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45968,"mutability":"mutable","name":"configurationNumber","nameLocation":"24207:19:69","nodeType":"VariableDeclaration","scope":46175,"src":"24200:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45967,"name":"uint64","nodeType":"ElementaryTypeName","src":"24200:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"24199:28:69"},"returnParameters":{"id":45970,"nodeType":"ParameterList","parameters":[],"src":"24237:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46176],"name":"LibStaking","nameLocation":"15346:10:69","scope":46441,"usedErrors":[32461,32469,37450]},{"id":46440,"nodeType":"ContractDefinition","src":"26280:2695:69","nodes":[{"id":46181,"nodeType":"UsingForDirective","src":"26315:39:69","nodes":[],"global":false,"libraryName":{"id":46178,"name":"LibValidatorSet","nameLocations":["26321:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"26321:15:69"},"typeName":{"id":46180,"nodeType":"UserDefinedTypeName","pathNode":{"id":46179,"name":"ValidatorSet","nameLocations":["26341:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"26341:12:69"},"referencedDeclaration":50190,"src":"26341:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46185,"nodeType":"UsingForDirective","src":"26359:47:69","nodes":[],"global":false,"libraryName":{"id":46182,"name":"LibStakingChangeLog","nameLocations":["26365:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"26365:19:69"},"typeName":{"id":46184,"nodeType":"UserDefinedTypeName","pathNode":{"id":46183,"name":"StakingChangeLog","nameLocations":["26389:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"26389:16:69"},"referencedDeclaration":50123,"src":"26389:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":46220,"nodeType":"FunctionDefinition","src":"26412:475:69","nodes":[],"body":{"id":46219,"nodeType":"Block","src":"26525:362:69","nodes":[],"statements":[{"assignments":[46195],"declarations":[{"constant":false,"id":46195,"mutability":"mutable","name":"configurationNumber","nameLocation":"26542:19:69","nodeType":"VariableDeclaration","scope":46219,"src":"26535:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46194,"name":"uint64","nodeType":"ElementaryTypeName","src":"26535:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46209,"initialValue":{"arguments":[{"expression":{"expression":{"id":46199,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26615:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26629:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26615:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26636:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"26615:30:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":46202,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26663:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26677:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26663:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26684:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"26663:23:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":46205,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26709:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26723:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26709:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26730:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"26709:28:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":46196,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46188,"src":"26564:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26569:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"26564:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26577:12:69","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":46644,"src":"26564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26604:9:69","26659:2:69","26700:7:69"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26564:184:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26535:213:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46210,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"26763:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46211,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26786:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26800:19:69","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50109,"src":"26786:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26763:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46218,"nodeType":"IfStatement","src":"26759:122:69","trueBody":{"id":46217,"nodeType":"Block","src":"26821:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46214,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"26842:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46216,"nodeType":"RevertStatement","src":"26835:35:69"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"26421:11:69","parameters":{"id":46192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46188,"mutability":"mutable","name":"self","nameLocation":"26465:4:69","nodeType":"VariableDeclaration","scope":46220,"src":"26433:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46187,"nodeType":"UserDefinedTypeName","pathNode":{"id":46186,"name":"ParentValidatorsTracker","nameLocations":["26433:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26433:23:69"},"referencedDeclaration":50197,"src":"26433:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46191,"mutability":"mutable","name":"changeRequest","nameLocation":"26501:13:69","nodeType":"VariableDeclaration","scope":46220,"src":"26471:43:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":46190,"nodeType":"UserDefinedTypeName","pathNode":{"id":46189,"name":"StakingChangeRequest","nameLocations":["26471:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26471:20:69"},"referencedDeclaration":50110,"src":"26471:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"26432:83:69"},"returnParameters":{"id":46193,"nodeType":"ParameterList","parameters":[],"src":"26525:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46261,"nodeType":"FunctionDefinition","src":"26893:415:69","nodes":[],"body":{"id":46260,"nodeType":"Block","src":"27036:272:69","nodes":[],"statements":[{"assignments":[46231],"declarations":[{"constant":false,"id":46231,"mutability":"mutable","name":"length","nameLocation":"27054:6:69","nodeType":"VariableDeclaration","scope":46260,"src":"27046:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46230,"name":"uint256","nodeType":"ElementaryTypeName","src":"27046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46234,"initialValue":{"expression":{"id":46232,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27063:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27078:6:69","memberName":"length","nodeType":"MemberAccess","src":"27063:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27046:38:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46235,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27098:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27108:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27098:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46240,"nodeType":"IfStatement","src":"27094:48:69","trueBody":{"id":46239,"nodeType":"Block","src":"27111:31:69","statements":[{"functionReturnParameters":46229,"id":46238,"nodeType":"Return","src":"27125:7:69"}]}},{"body":{"id":46258,"nodeType":"Block","src":"27182:120:69","statements":[{"expression":{"arguments":[{"id":46248,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46223,"src":"27208:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":46249,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27214:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46251,"indexExpression":{"id":46250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27229:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27214:17:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":46247,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27196:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":46252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27196:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46253,"nodeType":"ExpressionStatement","src":"27196:36:69"},{"id":46257,"nodeType":"UncheckedBlock","src":"27246:46:69","statements":[{"expression":{"id":46255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27274:3:69","subExpression":{"id":46254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27276:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46256,"nodeType":"ExpressionStatement","src":"27274:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27168:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46245,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27172:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27168:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46259,"initializationExpression":{"assignments":[46242],"declarations":[{"constant":false,"id":46242,"mutability":"mutable","name":"i","nameLocation":"27165:1:69","nodeType":"VariableDeclaration","scope":46259,"src":"27157:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46241,"name":"uint256","nodeType":"ElementaryTypeName","src":"27157:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46243,"nodeType":"VariableDeclarationStatement","src":"27157:9:69"},"nodeType":"ForStatement","src":"27152:150:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26902:16:69","parameters":{"id":46228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46223,"mutability":"mutable","name":"self","nameLocation":"26960:4:69","nodeType":"VariableDeclaration","scope":46261,"src":"26928:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46222,"nodeType":"UserDefinedTypeName","pathNode":{"id":46221,"name":"ParentValidatorsTracker","nameLocations":["26928:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26928:23:69"},"referencedDeclaration":50197,"src":"26928:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46227,"mutability":"mutable","name":"changeRequests","nameLocation":"27006:14:69","nodeType":"VariableDeclaration","scope":46261,"src":"26974:46:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":46225,"nodeType":"UserDefinedTypeName","pathNode":{"id":46224,"name":"StakingChangeRequest","nameLocations":["26974:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26974:20:69"},"referencedDeclaration":50110,"src":"26974:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":46226,"nodeType":"ArrayTypeName","src":"26974:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26918:108:69"},"returnParameters":{"id":46229,"nodeType":"ParameterList","parameters":[],"src":"27036:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46439,"nodeType":"FunctionDefinition","src":"27379:1594:69","nodes":[],"body":{"id":46438,"nodeType":"Block","src":"27477:1496:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46270,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27491:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":46271,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27514:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27514:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27527:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"27514:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27491:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46279,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27622:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":46280,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27644:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27649:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27644:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27657:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27644:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27622:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46286,"nodeType":"IfStatement","src":"27618:96:69","trueBody":{"id":46285,"nodeType":"Block","src":"27683:31:69","statements":[{"functionReturnParameters":46269,"id":46284,"nodeType":"Return","src":"27697:7:69"}]}},"id":46287,"nodeType":"IfStatement","src":"27487:227:69","trueBody":{"id":46278,"nodeType":"Block","src":"27552:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46275,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"27573:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27573:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46277,"nodeType":"RevertStatement","src":"27566:35:69"}]}},{"assignments":[46289],"declarations":[{"constant":false,"id":46289,"mutability":"mutable","name":"start","nameLocation":"27731:5:69","nodeType":"VariableDeclaration","scope":46438,"src":"27724:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46288,"name":"uint64","nodeType":"ElementaryTypeName","src":"27724:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46293,"initialValue":{"expression":{"expression":{"id":46290,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27739:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27744:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27739:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27752:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27739:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27724:52:69"},{"body":{"id":46426,"nodeType":"Block","src":"27838:1056:69","statements":[{"assignments":[46303],"declarations":[{"constant":false,"id":46303,"mutability":"mutable","name":"change","nameLocation":"27874:6:69","nodeType":"VariableDeclaration","scope":46426,"src":"27852:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46302,"nodeType":"UserDefinedTypeName","pathNode":{"id":46301,"name":"StakingChange","nameLocations":["27852:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"27852:13:69"},"referencedDeclaration":50104,"src":"27852:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46309,"initialValue":{"arguments":[{"id":46307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27906:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46304,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27883:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27888:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27883:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27896:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"27883:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27883:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27852:56:69"},{"assignments":[46311],"declarations":[{"constant":false,"id":46311,"mutability":"mutable","name":"validator","nameLocation":"27930:9:69","nodeType":"VariableDeclaration","scope":46426,"src":"27922:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46310,"name":"address","nodeType":"ElementaryTypeName","src":"27922:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46314,"initialValue":{"expression":{"id":46312,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27942:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27949:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"27942:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27922:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46315,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27977:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27984:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"27977:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46317,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"27990:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28007:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"27990:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"27977:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46333,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28126:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28133:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28126:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46335,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28139:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28156:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"28139:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28126:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46411,"nodeType":"Block","src":"28447:336:69","statements":[{"assignments":[46375],"declarations":[{"constant":false,"id":46375,"mutability":"mutable","name":"amount","nameLocation":"28473:6:69","nodeType":"VariableDeclaration","scope":46411,"src":"28465:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46374,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46384,"initialValue":{"arguments":[{"expression":{"id":46378,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28493:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28500:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28493:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28510:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46380,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:69","typeDescriptions":{}}}],"id":46382,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28509:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28482:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28486:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28482:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28482:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46385,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28542:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28542:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46387,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28555:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28572:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"28555:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28542:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46409,"nodeType":"Block","src":"28679:90:69","statements":[{"expression":{"arguments":[{"id":46405,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28732:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46406,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28743:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46400,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28701:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28706:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28701:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28717:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"28701:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28701:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46408,"nodeType":"ExpressionStatement","src":"28701:49:69"}]},"id":46410,"nodeType":"IfStatement","src":"28538:231:69","trueBody":{"id":46399,"nodeType":"Block","src":"28582:91:69","statements":[{"expression":{"arguments":[{"id":46395,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28636:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46396,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28647:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46390,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28604:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28609:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28604:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28620:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"28604:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:50:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46398,"nodeType":"ExpressionStatement","src":"28604:50:69"}]}}]},"id":46412,"nodeType":"IfStatement","src":"28122:661:69","trueBody":{"id":46373,"nodeType":"Block","src":"28175:266:69","statements":[{"assignments":[46339,46341],"declarations":[{"constant":false,"id":46339,"mutability":"mutable","name":"metadata","nameLocation":"28207:8:69","nodeType":"VariableDeclaration","scope":46373,"src":"28194:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46338,"name":"bytes","nodeType":"ElementaryTypeName","src":"28194:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46341,"mutability":"mutable","name":"power","nameLocation":"28225:5:69","nodeType":"VariableDeclaration","scope":46373,"src":"28217:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46340,"name":"uint256","nodeType":"ElementaryTypeName","src":"28217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46352,"initialValue":{"arguments":[{"expression":{"id":46344,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28245:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28252:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28245:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28262:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46346,"name":"bytes","nodeType":"ElementaryTypeName","src":"28262:5:69","typeDescriptions":{}}},{"id":46349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28269:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46348,"name":"uint256","nodeType":"ElementaryTypeName","src":"28269:7:69","typeDescriptions":{}}}],"id":46350,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28261:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28234:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28238:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28234:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28234:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28193:85:69"},{"expression":{"id":46362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28296:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28301:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28296:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28296:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46359,"indexExpression":{"id":46356,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28323:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28296:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28334:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28296:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46361,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46339,"src":"28345:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28296:57:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46363,"nodeType":"ExpressionStatement","src":"28296:57:69"},{"expression":{"arguments":[{"id":46369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28409:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46370,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46341,"src":"28420:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46364,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28371:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28376:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28371:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28387:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"28371:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28371:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46372,"nodeType":"ExpressionStatement","src":"28371:55:69"}]}},"id":46413,"nodeType":"IfStatement","src":"27973:810:69","trueBody":{"id":46332,"nodeType":"Block","src":"28020:96:69","statements":[{"expression":{"id":46330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46320,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28038:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28043:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28038:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28054:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28038:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46326,"indexExpression":{"id":46323,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28065:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28038:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28076:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28038:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46328,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28087:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28094:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28087:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"28038:63:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46331,"nodeType":"ExpressionStatement","src":"28038:63:69"}]}},{"expression":{"arguments":[{"id":46419,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28822:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46414,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28797:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28802:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28797:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28810:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"28797:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28797:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46421,"nodeType":"ExpressionStatement","src":"28797:27:69"},{"id":46425,"nodeType":"UncheckedBlock","src":"28838:46:69","statements":[{"expression":{"id":46423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28866:3:69","subExpression":{"id":46422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28868:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46424,"nodeType":"ExpressionStatement","src":"28866:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27810:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46299,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27815:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27810:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46427,"initializationExpression":{"assignments":[46295],"declarations":[{"constant":false,"id":46295,"mutability":"mutable","name":"i","nameLocation":"27799:1:69","nodeType":"VariableDeclaration","scope":46427,"src":"27792:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46294,"name":"uint64","nodeType":"ElementaryTypeName","src":"27792:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46297,"initialValue":{"id":46296,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46289,"src":"27803:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27792:16:69"},"nodeType":"ForStatement","src":"27787:1107:69"},{"expression":{"id":46436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46428,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28903:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28903:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28916:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"28903:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46433,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"28943:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28965:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28943:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28903:63:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46437,"nodeType":"ExpressionStatement","src":"28903:63:69"}]},"documentation":{"id":46262,"nodeType":"StructuredDocumentation","src":"27314:60:69","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27388:13:69","parameters":{"id":46268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46265,"mutability":"mutable","name":"self","nameLocation":"27434:4:69","nodeType":"VariableDeclaration","scope":46439,"src":"27402:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46264,"nodeType":"UserDefinedTypeName","pathNode":{"id":46263,"name":"ParentValidatorsTracker","nameLocations":["27402:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"27402:23:69"},"referencedDeclaration":50197,"src":"27402:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46267,"mutability":"mutable","name":"configurationNumber","nameLocation":"27447:19:69","nodeType":"VariableDeclaration","scope":46439,"src":"27440:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46266,"name":"uint64","nodeType":"ElementaryTypeName","src":"27440:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"27401:66:69"},"returnParameters":{"id":46269,"nodeType":"ParameterList","parameters":[],"src":"27477:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":46177,"nodeType":"StructuredDocumentation","src":"26125:155:69","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[46440],"name":"LibValidatorTracking","nameLocation":"26288:20:69","scope":46441,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file diff --git a/.out/LibStaking.sol/LibValidatorTracking.json b/.out/LibStaking.sol/LibValidatorTracking.json index cae1a38e4..c84c0d6ac 100644 --- a/.out/LibStaking.sol/LibValidatorTracking.json +++ b/.out/LibStaking.sol/LibValidatorTracking.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220d8d57cc168175a2ab32f9e1357b0ae5e2fd7b48af379b535673b2306337d04b664736f6c63430008130033","sourceMap":"25784:2695:64:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220d8d57cc168175a2ab32f9e1357b0ae5e2fd7b48af379b535673b2306337d04b664736f6c63430008130033","sourceMap":"25784:2695:64:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The library for tracking validator changes coming from the parent. Should be used in the child gateway to store changes until they can be applied.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibValidatorTracking\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibValidatorTracking"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":45729,"exportedSymbols":{"Address":[32409],"AddressShouldBeValidator":[36936],"AddressStakingReleases":[48623],"CannotConfirmFutureChanges":[36940],"IGateway":[39904],"InvalidConfigurationNumber":[36986],"LibAddressStakingReleases":[43484],"LibMaxPQ":[47494],"LibMinPQ":[48113],"LibStaking":[45464],"LibStakingChangeLog":[45966],"LibStakingReleaseQueue":[43603],"LibSubnetActorStorage":[46096],"LibValidatorSet":[44594],"LibValidatorTracking":[45728],"MaxPQ":[46889],"MinPQ":[47507],"NoCollateralToWithdraw":[37016],"NoRewardToWithdraw":[37018],"NotValidator":[37058],"ParentValidatorsTracker":[48680],"PermissionMode":[48648],"StakingChange":[48587],"StakingChangeLog":[48606],"StakingChangeRequest":[48593],"StakingOperation":[48579],"StakingRelease":[48613],"StakingReleaseQueue":[48633],"SubnetActorStorage":[46085],"Validator":[48694],"ValidatorSet":[48673],"WithdrawExceedingCollateral":[37078]},"nodeType":"SourceUnit","src":"46:28434:64","nodes":[{"id":43316,"nodeType":"PragmaDirective","src":"46:23:64","nodes":[],"literals":["solidity","0.8",".19"]},{"id":43318,"nodeType":"ImportDirective","src":"71:52:64","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":39905,"symbolAliases":[{"foreign":{"id":43317,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"79:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43321,"nodeType":"ImportDirective","src":"124:86:64","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":46140,"symbolAliases":[{"foreign":{"id":43319,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"132:21:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43320,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"155:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43324,"nodeType":"ImportDirective","src":"211:56:64","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":47495,"symbolAliases":[{"foreign":{"id":43322,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47494,"src":"219:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43323,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46889,"src":"229:5:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43327,"nodeType":"ImportDirective","src":"268:56:64","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":48114,"symbolAliases":[{"foreign":{"id":43325,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48113,"src":"276:8:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43326,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47507,"src":"286:5:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43329,"nodeType":"ImportDirective","src":"325:62:64","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":45967,"symbolAliases":[{"foreign":{"id":43328,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45966,"src":"333:19:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43341,"nodeType":"ImportDirective","src":"388:237:64","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":43330,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"396:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43331,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48633,"src":"412:19:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43332,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48606,"src":"433:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43333,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48587,"src":"451:13:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43334,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48593,"src":"466:20:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43335,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"488:16:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43336,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48613,"src":"506:14:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43337,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48673,"src":"522:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43338,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48623,"src":"536:22:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43339,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48680,"src":"560:23:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43340,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"585:9:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43349,"nodeType":"ImportDirective","src":"626:208:64","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":43342,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37018,"src":"634:18:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43343,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37078,"src":"654:27:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43344,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37058,"src":"683:12:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43345,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36940,"src":"697:26:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43346,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37016,"src":"725:22:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43347,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36936,"src":"749:24:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":43348,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36986,"src":"775:26:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43351,"nodeType":"ImportDirective","src":"835:65:64","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":45729,"sourceUnit":32410,"symbolAliases":[{"foreign":{"id":43350,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"843:7:64","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":43484,"nodeType":"ContractDefinition","src":"902:1635:64","nodes":[{"id":43390,"nodeType":"FunctionDefinition","src":"1118:261:64","nodes":[],"body":{"id":43389,"nodeType":"Block","src":"1209:170:64","nodes":[],"statements":[{"assignments":[43362],"declarations":[{"constant":false,"id":43362,"mutability":"mutable","name":"length","nameLocation":"1226:6:64","nodeType":"VariableDeclaration","scope":43389,"src":"1219:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43361,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43365,"initialValue":{"expression":{"id":43363,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1235:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1235:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:64"},{"assignments":[43367],"declarations":[{"constant":false,"id":43367,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:64","nodeType":"VariableDeclaration","scope":43389,"src":"1256:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43366,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43372,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43368,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1273:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:64","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"1273:13:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":43370,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43362,"src":"1289:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:64"},{"expression":{"id":43379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":43373,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1306:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48622,"src":"1306:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":43377,"indexExpression":{"id":43375,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43367,"src":"1320:7:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43378,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43358,"src":"1331:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"id":43380,"nodeType":"ExpressionStatement","src":"1306:32:64"},{"expression":{"id":43387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43355,"src":"1348:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1348:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43384,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43362,"src":"1362:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":43385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43388,"nodeType":"ExpressionStatement","src":"1348:24:64"}]},"documentation":{"id":43352,"nodeType":"StructuredDocumentation","src":"942:171:64","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:64","parameters":{"id":43359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43355,"mutability":"mutable","name":"self","nameLocation":"1163:4:64","nodeType":"VariableDeclaration","scope":43390,"src":"1132:35:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":43354,"nodeType":"UserDefinedTypeName","pathNode":{"id":43353,"name":"AddressStakingReleases","nameLocations":["1132:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"1132:22:64"},"referencedDeclaration":48623,"src":"1132:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":43358,"mutability":"mutable","name":"release","nameLocation":"1191:7:64","nodeType":"VariableDeclaration","scope":43390,"src":"1169:29:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":43357,"nodeType":"UserDefinedTypeName","pathNode":{"id":43356,"name":"StakingRelease","nameLocations":["1169:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"1169:14:64"},"referencedDeclaration":48613,"src":"1169:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:64"},"returnParameters":{"id":43360,"nodeType":"ParameterList","parameters":[],"src":"1209:0:64"},"scope":43484,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43483,"nodeType":"FunctionDefinition","src":"1637:898:64","nodes":[],"body":{"id":43482,"nodeType":"Block","src":"1726:809:64","nodes":[],"statements":[{"assignments":[43402],"declarations":[{"constant":false,"id":43402,"mutability":"mutable","name":"length","nameLocation":"1743:6:64","nodeType":"VariableDeclaration","scope":43482,"src":"1736:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43401,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43405,"initialValue":{"expression":{"id":43403,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"1752:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1752:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43406,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"1777:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"1777:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43414,"nodeType":"IfStatement","src":"1773:78:64","trueBody":{"id":43413,"nodeType":"Block","src":"1795:56:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":43410,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37016,"src":"1816:22:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":43411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43412,"nodeType":"RevertStatement","src":"1809:31:64"}]}},{"assignments":[43416],"declarations":[{"constant":false,"id":43416,"mutability":"mutable","name":"i","nameLocation":"1868:1:64","nodeType":"VariableDeclaration","scope":43482,"src":"1861:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43415,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43419,"initialValue":{"expression":{"id":43417,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"1872:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:64","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"1872:13:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:64"},{"assignments":[43421],"declarations":[{"constant":false,"id":43421,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:64","nodeType":"VariableDeclaration","scope":43482,"src":"1895:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43420,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43423,"initialValue":{"id":43422,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43402,"src":"1914:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:64"},{"assignments":[43425],"declarations":[{"constant":false,"id":43425,"mutability":"mutable","name":"amount","nameLocation":"1938:6:64","nodeType":"VariableDeclaration","scope":43482,"src":"1930:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43424,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43426,"nodeType":"VariableDeclarationStatement","src":"1930:14:64"},{"body":{"id":43464,"nodeType":"Block","src":"1973:458:64","statements":[{"assignments":[43432],"declarations":[{"constant":false,"id":43432,"mutability":"mutable","name":"release","nameLocation":"2009:7:64","nodeType":"VariableDeclaration","scope":43464,"src":"1987:29:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":43431,"nodeType":"UserDefinedTypeName","pathNode":{"id":43430,"name":"StakingRelease","nameLocations":["1987:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"1987:14:64"},"referencedDeclaration":48613,"src":"1987:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":43437,"initialValue":{"baseExpression":{"expression":{"id":43433,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2019:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48622,"src":"2019:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":43436,"indexExpression":{"id":43435,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2033:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43438,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43432,"src":"2184:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"id":43439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:64","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":48609,"src":"2184:17:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":43440,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:64","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:64","memberName":"number","nodeType":"MemberAccess","src":"2204:12:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43445,"nodeType":"IfStatement","src":"2180:76:64","trueBody":{"id":43444,"nodeType":"Block","src":"2218:38:64","statements":[{"id":43443,"nodeType":"Break","src":"2236:5:64"}]}},{"expression":{"id":43449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43446,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43425,"src":"2270:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":43447,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43432,"src":"2280:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"id":43448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:64","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":48612,"src":"2280:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43450,"nodeType":"ExpressionStatement","src":"2270:24:64"},{"expression":{"id":43455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:64","subExpression":{"baseExpression":{"expression":{"id":43451,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2315:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48622,"src":"2315:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":43454,"indexExpression":{"id":43453,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2329:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43456,"nodeType":"ExpressionStatement","src":"2308:23:64"},{"id":43463,"nodeType":"UncheckedBlock","src":"2346:75:64","statements":[{"expression":{"id":43458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:64","subExpression":{"id":43457,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2376:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43459,"nodeType":"ExpressionStatement","src":"2374:3:64"},{"expression":{"id":43461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:64","subExpression":{"id":43460,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2397:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43462,"nodeType":"ExpressionStatement","src":"2395:11:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43427,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"1961:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43428,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43402,"src":"1965:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43465,"nodeType":"WhileStatement","src":"1954:477:64"},{"expression":{"id":43470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43466,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2441:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:64","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":48617,"src":"2441:13:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2457:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43471,"nodeType":"ExpressionStatement","src":"2441:17:64"},{"expression":{"id":43476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43394,"src":"2468:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":43474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:64","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":48615,"src":"2468:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43475,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2482:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43477,"nodeType":"ExpressionStatement","src":"2468:23:64"},{"expression":{"components":[{"id":43478,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43425,"src":"2510:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43479,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43421,"src":"2518:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":43480,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":43400,"id":43481,"nodeType":"Return","src":"2502:26:64"}]},"documentation":{"id":43391,"nodeType":"StructuredDocumentation","src":"1385:247:64","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:64","parameters":{"id":43395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43394,"mutability":"mutable","name":"self","nameLocation":"1685:4:64","nodeType":"VariableDeclaration","scope":43483,"src":"1654:35:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":43393,"nodeType":"UserDefinedTypeName","pathNode":{"id":43392,"name":"AddressStakingReleases","nameLocations":["1654:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"1654:22:64"},"referencedDeclaration":48623,"src":"1654:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:64"},"returnParameters":{"id":43400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43483,"src":"1709:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43396,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43483,"src":"1718:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43398,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:64"},"scope":43484,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[43484],"name":"LibAddressStakingReleases","nameLocation":"910:25:64","scope":45729,"usedErrors":[]},{"id":43603,"nodeType":"ContractDefinition","src":"2586:1272:64","nodes":[{"id":43488,"nodeType":"UsingForDirective","src":"2623:34:64","nodes":[],"global":false,"libraryName":{"id":43486,"name":"Address","nameLocations":["2629:7:64"],"nodeType":"IdentifierPath","referencedDeclaration":32409,"src":"2629:7:64"},"typeName":{"id":43487,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":43492,"nodeType":"UsingForDirective","src":"2662:59:64","nodes":[],"global":false,"libraryName":{"id":43489,"name":"LibAddressStakingReleases","nameLocations":["2668:25:64"],"nodeType":"IdentifierPath","referencedDeclaration":43484,"src":"2668:25:64"},"typeName":{"id":43491,"nodeType":"UserDefinedTypeName","pathNode":{"id":43490,"name":"AddressStakingReleases","nameLocations":["2698:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"2698:22:64"},"referencedDeclaration":48623,"src":"2698:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":43500,"nodeType":"EventDefinition","src":"2727:84:64","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:64","parameters":{"id":43499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43494,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:64","nodeType":"VariableDeclaration","scope":43500,"src":"2754:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43493,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43496,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:64","nodeType":"VariableDeclaration","scope":43500,"src":"2773:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43495,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43498,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:64","nodeType":"VariableDeclaration","scope":43500,"src":"2789:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43497,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:64"}},{"id":43515,"nodeType":"FunctionDefinition","src":"2817:130:64","nodes":[],"body":{"id":43514,"nodeType":"Block","src":"2901:46:64","nodes":[],"statements":[{"expression":{"id":43512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":43508,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43503,"src":"2911:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:64","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":48626,"src":"2911:20:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43511,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43505,"src":"2934:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43513,"nodeType":"ExpressionStatement","src":"2911:29:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:64","parameters":{"id":43506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43503,"mutability":"mutable","name":"self","nameLocation":"2870:4:64","nodeType":"VariableDeclaration","scope":43515,"src":"2842:32:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":43502,"nodeType":"UserDefinedTypeName","pathNode":{"id":43501,"name":"StakingReleaseQueue","nameLocations":["2842:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"2842:19:64"},"referencedDeclaration":48633,"src":"2842:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":43505,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:64","nodeType":"VariableDeclaration","scope":43515,"src":"2876:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43504,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:64"},"returnParameters":{"id":43507,"nodeType":"ParameterList","parameters":[],"src":"2901:0:64"},"scope":43603,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43558,"nodeType":"FunctionDefinition","src":"3016:419:64","nodes":[],"body":{"id":43557,"nodeType":"Block","src":"3117:318:64","nodes":[],"statements":[{"assignments":[43527],"declarations":[{"constant":false,"id":43527,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:64","nodeType":"VariableDeclaration","scope":43557,"src":"3127:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43526,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43533,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43528,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:64","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":43529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:64","memberName":"number","nodeType":"MemberAccess","src":"3147:12:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":43530,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43519,"src":"3162:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:64","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":48626,"src":"3162:20:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:64"},{"assignments":[43536],"declarations":[{"constant":false,"id":43536,"mutability":"mutable","name":"release","nameLocation":"3214:7:64","nodeType":"VariableDeclaration","scope":43557,"src":"3192:29:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":43535,"nodeType":"UserDefinedTypeName","pathNode":{"id":43534,"name":"StakingRelease","nameLocations":["3192:14:64"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"3192:14:64"},"referencedDeclaration":48613,"src":"3192:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":43541,"initialValue":{"arguments":[{"id":43538,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43527,"src":"3251:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43539,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43523,"src":"3270:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43537,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48613,"src":"3224:14:64","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$48613_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":43540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:64","3262:6:64"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:64"},{"expression":{"arguments":[{"id":43548,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43536,"src":"3319:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$48613_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":43542,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43519,"src":"3289:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48632,"src":"3289:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":43546,"indexExpression":{"id":43544,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"3303:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":43547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:64","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":43390,"src":"3289:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$_t_struct$_StakingRelease_$48613_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":43549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43550,"nodeType":"ExpressionStatement","src":"3289:38:64"},{"eventCall":{"arguments":[{"id":43552,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"3376:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":43553,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43523,"src":"3395:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":43554,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43527,"src":"3417:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43551,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43500,"src":"3343:20:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":43555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:64","3387:6:64","3403:12:64"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43556,"nodeType":"EmitStatement","src":"3338:90:64"}]},"documentation":{"id":43516,"nodeType":"StructuredDocumentation","src":"2953:58:64","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:64","parameters":{"id":43524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43519,"mutability":"mutable","name":"self","nameLocation":"3067:4:64","nodeType":"VariableDeclaration","scope":43558,"src":"3039:32:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":43518,"nodeType":"UserDefinedTypeName","pathNode":{"id":43517,"name":"StakingReleaseQueue","nameLocations":["3039:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"3039:19:64"},"referencedDeclaration":48633,"src":"3039:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":43521,"mutability":"mutable","name":"validator","nameLocation":"3081:9:64","nodeType":"VariableDeclaration","scope":43558,"src":"3073:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43520,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43523,"mutability":"mutable","name":"amount","nameLocation":"3100:6:64","nodeType":"VariableDeclaration","scope":43558,"src":"3092:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43522,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:64"},"returnParameters":{"id":43525,"nodeType":"ParameterList","parameters":[],"src":"3117:0:64"},"scope":43603,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":43602,"nodeType":"FunctionDefinition","src":"3516:340:64","nodes":[],"body":{"id":43601,"nodeType":"Block","src":"3611:245:64","nodes":[],"statements":[{"assignments":[43570,43572],"declarations":[{"constant":false,"id":43570,"mutability":"mutable","name":"amount","nameLocation":"3630:6:64","nodeType":"VariableDeclaration","scope":43601,"src":"3622:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43569,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43572,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:64","nodeType":"VariableDeclaration","scope":43601,"src":"3638:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43571,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43579,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":43573,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43562,"src":"3658:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48632,"src":"3658:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":43576,"indexExpression":{"id":43575,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43564,"src":"3672:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":43577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:64","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":43483,"src":"3658:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$48623_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":43578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43580,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43572,"src":"3707:9:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":43581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43590,"nodeType":"IfStatement","src":"3703:76:64","trueBody":{"id":43589,"nodeType":"Block","src":"3723:56:64","statements":[{"expression":{"id":43587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:64","subExpression":{"baseExpression":{"expression":{"id":43583,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43562,"src":"3744:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":43584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:64","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":48632,"src":"3744:13:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":43586,"indexExpression":{"id":43585,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43564,"src":"3758:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43588,"nodeType":"ExpressionStatement","src":"3737:31:64"}]}},{"expression":{"arguments":[{"id":43596,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43570,"src":"3818:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":43593,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43564,"src":"3797:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":43591,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:64","stateMutability":"payable","typeDescriptions":{}}},"id":43594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":43595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:64","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"3789:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":43597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43598,"nodeType":"ExpressionStatement","src":"3789:36:64"},{"expression":{"id":43599,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43570,"src":"3843:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":43568,"id":43600,"nodeType":"Return","src":"3836:13:64"}]},"documentation":{"id":43559,"nodeType":"StructuredDocumentation","src":"3441:70:64","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:64","parameters":{"id":43565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43562,"mutability":"mutable","name":"self","nameLocation":"3559:4:64","nodeType":"VariableDeclaration","scope":43602,"src":"3531:32:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":43561,"nodeType":"UserDefinedTypeName","pathNode":{"id":43560,"name":"StakingReleaseQueue","nameLocations":["3531:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"3531:19:64"},"referencedDeclaration":48633,"src":"3531:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":43564,"mutability":"mutable","name":"validator","nameLocation":"3573:9:64","nodeType":"VariableDeclaration","scope":43602,"src":"3565:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43563,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:64"},"returnParameters":{"id":43568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43567,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43602,"src":"3602:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43566,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:64"},"scope":43603,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":43485,"nodeType":"StructuredDocumentation","src":"2539:47:64","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[43603],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:64","scope":45729,"usedErrors":[]},{"id":44594,"nodeType":"ContractDefinition","src":"3900:11436:64","nodes":[{"id":43608,"nodeType":"UsingForDirective","src":"3930:25:64","nodes":[],"global":false,"libraryName":{"id":43605,"name":"LibMinPQ","nameLocations":["3936:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":48113,"src":"3936:8:64"},"typeName":{"id":43607,"nodeType":"UserDefinedTypeName","pathNode":{"id":43606,"name":"MinPQ","nameLocations":["3949:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"3949:5:64"},"referencedDeclaration":47507,"src":"3949:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}}},{"id":43612,"nodeType":"UsingForDirective","src":"3960:25:64","nodes":[],"global":false,"libraryName":{"id":43609,"name":"LibMaxPQ","nameLocations":["3966:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":47494,"src":"3966:8:64"},"typeName":{"id":43611,"nodeType":"UserDefinedTypeName","pathNode":{"id":43610,"name":"MaxPQ","nameLocations":["3979:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"3979:5:64"},"referencedDeclaration":46889,"src":"3979:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}}},{"id":43618,"nodeType":"EventDefinition","src":"3991:76:64","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:64","parameters":{"id":43617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43614,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:64","nodeType":"VariableDeclaration","scope":43618,"src":"4030:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43613,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43616,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:64","nodeType":"VariableDeclaration","scope":43618,"src":"4049:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43615,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:64"}},{"id":43624,"nodeType":"EventDefinition","src":"4072:77:64","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:64","parameters":{"id":43623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43620,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:64","nodeType":"VariableDeclaration","scope":43624,"src":"4112:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43619,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43622,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:64","nodeType":"VariableDeclaration","scope":43624,"src":"4131:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43621,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:64"}},{"id":43630,"nodeType":"EventDefinition","src":"4154:59:64","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:64","parameters":{"id":43629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43626,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:64","nodeType":"VariableDeclaration","scope":43630,"src":"4179:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43625,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43628,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:64","nodeType":"VariableDeclaration","scope":43630,"src":"4198:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43627,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:64"}},{"id":43636,"nodeType":"EventDefinition","src":"4218:60:64","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:64","parameters":{"id":43635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43632,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:64","nodeType":"VariableDeclaration","scope":43636,"src":"4244:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43631,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43634,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:64","nodeType":"VariableDeclaration","scope":43636,"src":"4263:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43633,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:64"}},{"id":43642,"nodeType":"EventDefinition","src":"4283:74:64","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:64","parameters":{"id":43641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43638,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:64","nodeType":"VariableDeclaration","scope":43642,"src":"4313:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43637,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43640,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:64","nodeType":"VariableDeclaration","scope":43642,"src":"4335:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43639,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:64"}},{"id":43646,"nodeType":"EventDefinition","src":"4362:45:64","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:64","parameters":{"id":43645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43644,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:64","nodeType":"VariableDeclaration","scope":43646,"src":"4388:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43643,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:64"}},{"id":43650,"nodeType":"EventDefinition","src":"4412:46:64","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:64","parameters":{"id":43649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43648,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:64","nodeType":"VariableDeclaration","scope":43650,"src":"4439:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43647,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:64"}},{"id":43686,"nodeType":"FunctionDefinition","src":"4525:375:64","nodes":[],"body":{"id":43685,"nodeType":"Block","src":"4654:246:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"id":43665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":43661,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43654,"src":"4668:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:64","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":48652,"src":"4668:25:64","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":43663,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"4697:14:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":43664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:64","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":48646,"src":"4697:24:64","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"src":"4668:53:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":43683,"nodeType":"Block","src":"4809:85:64","statements":[{"expression":{"id":43681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43675,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43659,"src":"4823:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":43676,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43654,"src":"4831:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"4831:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43679,"indexExpression":{"id":43678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43656,"src":"4853:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"4831:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43682,"nodeType":"ExpressionStatement","src":"4823:60:64"}]},"id":43684,"nodeType":"IfStatement","src":"4664:230:64","trueBody":{"id":43674,"nodeType":"Block","src":"4723:80:64","statements":[{"expression":{"id":43672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43666,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43659,"src":"4737:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":43667,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43654,"src":"4745:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"4745:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43670,"indexExpression":{"id":43669,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43656,"src":"4767:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:64","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":48636,"src":"4745:47:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43673,"nodeType":"ExpressionStatement","src":"4737:55:64"}]}}]},"documentation":{"id":43651,"nodeType":"StructuredDocumentation","src":"4464:56:64","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:64","parameters":{"id":43657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43654,"mutability":"mutable","name":"validators","nameLocation":"4573:10:64","nodeType":"VariableDeclaration","scope":43686,"src":"4552:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43653,"nodeType":"UserDefinedTypeName","pathNode":{"id":43652,"name":"ValidatorSet","nameLocations":["4552:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"4552:12:64"},"referencedDeclaration":48673,"src":"4552:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43656,"mutability":"mutable","name":"validator","nameLocation":"4601:9:64","nodeType":"VariableDeclaration","scope":43686,"src":"4593:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43655,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:64"},"returnParameters":{"id":43660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43659,"mutability":"mutable","name":"power","nameLocation":"4647:5:64","nodeType":"VariableDeclaration","scope":43686,"src":"4639:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43658,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43701,"nodeType":"FunctionDefinition","src":"4976:178:64","nodes":[],"body":{"id":43700,"nodeType":"Block","src":"5089:65:64","nodes":[],"statements":[{"expression":{"id":43698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43695,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43693,"src":"5099:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":43696,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43690,"src":"5112:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:64","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48658,"src":"5112:35:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43699,"nodeType":"ExpressionStatement","src":"5099:48:64"}]},"documentation":{"id":43687,"nodeType":"StructuredDocumentation","src":"4906:65:64","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:64","parameters":{"id":43691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43690,"mutability":"mutable","name":"validators","nameLocation":"5034:10:64","nodeType":"VariableDeclaration","scope":43701,"src":"5013:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43689,"nodeType":"UserDefinedTypeName","pathNode":{"id":43688,"name":"ValidatorSet","nameLocations":["5013:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5013:12:64"},"referencedDeclaration":48673,"src":"5013:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:64"},"returnParameters":{"id":43694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43693,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:64","nodeType":"VariableDeclaration","scope":43701,"src":"5069:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43692,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43718,"nodeType":"FunctionDefinition","src":"5209:163:64","nodes":[],"body":{"id":43717,"nodeType":"Block","src":"5310:62:64","nodes":[],"statements":[{"expression":{"id":43715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43710,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43708,"src":"5320:5:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43711,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43705,"src":"5328:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"5328:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"5328:35:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":43714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43716,"nodeType":"ExpressionStatement","src":"5320:45:64"}]},"documentation":{"id":43702,"nodeType":"StructuredDocumentation","src":"5160:44:64","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:64","parameters":{"id":43706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43705,"mutability":"mutable","name":"validators","nameLocation":"5261:10:64","nodeType":"VariableDeclaration","scope":43718,"src":"5240:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43704,"nodeType":"UserDefinedTypeName","pathNode":{"id":43703,"name":"ValidatorSet","nameLocations":["5240:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5240:12:64"},"referencedDeclaration":48673,"src":"5240:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:64"},"returnParameters":{"id":43709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43708,"mutability":"mutable","name":"total","nameLocation":"5303:5:64","nodeType":"VariableDeclaration","scope":43718,"src":"5296:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43707,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43738,"nodeType":"FunctionDefinition","src":"5441:231:64","nodes":[],"body":{"id":43737,"nodeType":"Block","src":"5590:82:64","nodes":[],"statements":[{"expression":{"id":43735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43729,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43727,"src":"5600:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":43730,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43722,"src":"5613:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"5613:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43733,"indexExpression":{"id":43732,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43724,"src":"5635:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"5613:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43736,"nodeType":"ExpressionStatement","src":"5600:65:64"}]},"documentation":{"id":43719,"nodeType":"StructuredDocumentation","src":"5378:58:64","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:64","parameters":{"id":43725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43722,"mutability":"mutable","name":"validators","nameLocation":"5503:10:64","nodeType":"VariableDeclaration","scope":43738,"src":"5482:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43721,"nodeType":"UserDefinedTypeName","pathNode":{"id":43720,"name":"ValidatorSet","nameLocations":["5482:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5482:12:64"},"referencedDeclaration":48673,"src":"5482:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43724,"mutability":"mutable","name":"validator","nameLocation":"5531:9:64","nodeType":"VariableDeclaration","scope":43738,"src":"5523:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43723,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:64"},"returnParameters":{"id":43728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43727,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:64","nodeType":"VariableDeclaration","scope":43738,"src":"5570:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43726,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43790,"nodeType":"FunctionDefinition","src":"5678:434:64","nodes":[],"body":{"id":43789,"nodeType":"Block","src":"5792:320:64","nodes":[],"statements":[{"assignments":[43748],"declarations":[{"constant":false,"id":43748,"mutability":"mutable","name":"size","nameLocation":"5809:4:64","nodeType":"VariableDeclaration","scope":43789,"src":"5802:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43747,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43753,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43749,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43741,"src":"5816:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"5816:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"5816:35:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":43752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:64"},{"expression":{"id":43760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43754,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43745,"src":"5863:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43758,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43748,"src":"5889:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":43757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:64","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":43755,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43756,"nodeType":"ArrayTypeName","src":"5879:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":43759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43761,"nodeType":"ExpressionStatement","src":"5863:31:64"},{"body":{"id":43785,"nodeType":"Block","src":"5936:144:64","statements":[{"expression":{"id":43779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":43769,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43745,"src":"5950:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43773,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43770,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"5960:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":43771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43777,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6008:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":43774,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43741,"src":"5969:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"5969:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:64","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":47546,"src":"5969:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":43778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43780,"nodeType":"ExpressionStatement","src":"5950:60:64"},{"id":43784,"nodeType":"UncheckedBlock","src":"6024:46:64","statements":[{"expression":{"id":43782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:64","subExpression":{"id":43781,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"6054:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43783,"nodeType":"ExpressionStatement","src":"6052:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43766,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43763,"src":"5923:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43767,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43748,"src":"5928:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43786,"initializationExpression":{"assignments":[43763],"declarations":[{"constant":false,"id":43763,"mutability":"mutable","name":"i","nameLocation":"5916:1:64","nodeType":"VariableDeclaration","scope":43786,"src":"5909:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43762,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43765,"initialValue":{"hexValue":"31","id":43764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:64"},"nodeType":"ForStatement","src":"5904:176:64"},{"expression":{"id":43787,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43745,"src":"6096:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":43746,"id":43788,"nodeType":"Return","src":"6089:16:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:64","parameters":{"id":43742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43741,"mutability":"mutable","name":"validators","nameLocation":"5729:10:64","nodeType":"VariableDeclaration","scope":43790,"src":"5708:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43740,"nodeType":"UserDefinedTypeName","pathNode":{"id":43739,"name":"ValidatorSet","nameLocations":["5708:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"5708:12:64"},"referencedDeclaration":48673,"src":"5708:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:64"},"returnParameters":{"id":43746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43745,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:64","nodeType":"VariableDeclaration","scope":43790,"src":"5764:26:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43743,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43744,"nodeType":"ArrayTypeName","src":"5764:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43835,"nodeType":"FunctionDefinition","src":"6183:418:64","nodes":[],"body":{"id":43834,"nodeType":"Block","src":"6288:313:64","nodes":[],"statements":[{"assignments":[43800],"declarations":[{"constant":false,"id":43800,"mutability":"mutable","name":"size","nameLocation":"6305:4:64","nodeType":"VariableDeclaration","scope":43834,"src":"6298:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43799,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43801,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6312:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"6312:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"6312:35:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":43804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:64"},{"body":{"id":43832,"nodeType":"Block","src":"6391:204:64","statements":[{"assignments":[43814],"declarations":[{"constant":false,"id":43814,"mutability":"mutable","name":"validator","nameLocation":"6413:9:64","nodeType":"VariableDeclaration","scope":43832,"src":"6405:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43813,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":43820,"initialValue":{"arguments":[{"id":43818,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"6464:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":43815,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6425:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"6425:27:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:64","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":47546,"src":"6425:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":43819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:64"},{"expression":{"id":43826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43821,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43797,"src":"6480:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":43823,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43794,"src":"6503:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":43824,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43814,"src":"6515:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43822,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43686,"src":"6494:8:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":43825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43827,"nodeType":"ExpressionStatement","src":"6480:45:64"},{"id":43831,"nodeType":"UncheckedBlock","src":"6539:46:64","statements":[{"expression":{"id":43829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:64","subExpression":{"id":43828,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"6569:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43830,"nodeType":"ExpressionStatement","src":"6567:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43810,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43807,"src":"6378:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43811,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43800,"src":"6383:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43833,"initializationExpression":{"assignments":[43807],"declarations":[{"constant":false,"id":43807,"mutability":"mutable","name":"i","nameLocation":"6371:1:64","nodeType":"VariableDeclaration","scope":43833,"src":"6364:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43806,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43809,"initialValue":{"hexValue":"31","id":43808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:64"},"nodeType":"ForStatement","src":"6359:236:64"}]},"documentation":{"id":43791,"nodeType":"StructuredDocumentation","src":"6118:60:64","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:64","parameters":{"id":43795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43794,"mutability":"mutable","name":"validators","nameLocation":"6233:10:64","nodeType":"VariableDeclaration","scope":43835,"src":"6212:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43793,"nodeType":"UserDefinedTypeName","pathNode":{"id":43792,"name":"ValidatorSet","nameLocations":["6212:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"6212:12:64"},"referencedDeclaration":48673,"src":"6212:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:64"},"returnParameters":{"id":43798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43797,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:64","nodeType":"VariableDeclaration","scope":43835,"src":"6268:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43796,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43886,"nodeType":"FunctionDefinition","src":"6690:496:64","nodes":[],"body":{"id":43885,"nodeType":"Block","src":"6794:392:64","nodes":[],"statements":[{"assignments":[43845],"declarations":[{"constant":false,"id":43845,"mutability":"mutable","name":"size","nameLocation":"6811:4:64","nodeType":"VariableDeclaration","scope":43885,"src":"6804:11:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43844,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43850,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":43846,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"6818:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43847,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"6818:28:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":43848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"6818:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":43849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:64"},{"body":{"id":43877,"nodeType":"Block","src":"6898:219:64","statements":[{"assignments":[43859],"declarations":[{"constant":false,"id":43859,"mutability":"mutable","name":"validator","nameLocation":"6920:9:64","nodeType":"VariableDeclaration","scope":43877,"src":"6912:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43858,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":43865,"initialValue":{"arguments":[{"id":43863,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43852,"src":"6972:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":43860,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"6932:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"6932:28:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":43862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:64","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":46928,"src":"6932:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":43864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:64"},{"expression":{"id":43871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43866,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"6988:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":43868,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"7025:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":43869,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43859,"src":"7037:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43867,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43738,"src":"7002:22:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":43870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43872,"nodeType":"ExpressionStatement","src":"6988:59:64"},{"id":43876,"nodeType":"UncheckedBlock","src":"7061:46:64","statements":[{"expression":{"id":43874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:64","subExpression":{"id":43873,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43852,"src":"7091:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":43875,"nodeType":"ExpressionStatement","src":"7089:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":43857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43855,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43852,"src":"6885:1:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":43856,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43845,"src":"6890:4:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43878,"initializationExpression":{"assignments":[43852],"declarations":[{"constant":false,"id":43852,"mutability":"mutable","name":"i","nameLocation":"6878:1:64","nodeType":"VariableDeclaration","scope":43878,"src":"6871:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":43851,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":43854,"initialValue":{"hexValue":"31","id":43853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:64"},"nodeType":"ForStatement","src":"6866:251:64"},{"expression":{"id":43883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":43879,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43842,"src":"7126:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":43881,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43839,"src":"7168:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":43880,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43701,"src":"7140:27:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":43882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43884,"nodeType":"ExpressionStatement","src":"7126:53:64"}]},"documentation":{"id":43836,"nodeType":"StructuredDocumentation","src":"6607:78:64","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:64","parameters":{"id":43840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43839,"mutability":"mutable","name":"validators","nameLocation":"6739:10:64","nodeType":"VariableDeclaration","scope":43886,"src":"6718:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43838,"nodeType":"UserDefinedTypeName","pathNode":{"id":43837,"name":"ValidatorSet","nameLocations":["6718:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"6718:12:64"},"referencedDeclaration":48673,"src":"6718:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:64"},"returnParameters":{"id":43843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43842,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:64","nodeType":"VariableDeclaration","scope":43886,"src":"6774:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43841,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43956,"nodeType":"FunctionDefinition","src":"7339:612:64","nodes":[],"body":{"id":43955,"nodeType":"Block","src":"7498:453:64","nodes":[],"statements":[{"assignments":[43900],"declarations":[{"constant":false,"id":43900,"mutability":"mutable","name":"size","nameLocation":"7516:4:64","nodeType":"VariableDeclaration","scope":43955,"src":"7508:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43899,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43903,"initialValue":{"expression":{"id":43901,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7523:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:64","memberName":"length","nodeType":"MemberAccess","src":"7523:16:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:64"},{"assignments":[43908],"declarations":[{"constant":false,"id":43908,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:64","nodeType":"VariableDeclaration","scope":43955,"src":"7549:33:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":43906,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43907,"nodeType":"ArrayTypeName","src":"7549:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":43914,"initialValue":{"arguments":[{"id":43912,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43900,"src":"7599:4:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":43911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:64","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":43909,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43910,"nodeType":"ArrayTypeName","src":"7589:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":43913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:64"},{"body":{"id":43951,"nodeType":"Block","src":"7643:269:64","statements":[{"condition":{"id":43927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:64","subExpression":{"arguments":[{"id":43922,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43890,"src":"7680:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":43923,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7692:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43925,"indexExpression":{"id":43924,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7702:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43921,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43973,"src":"7662:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":43926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43935,"nodeType":"IfStatement","src":"7657:116:64","trueBody":{"id":43934,"nodeType":"Block","src":"7707:66:64","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":43929,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7745:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43931,"indexExpression":{"id":43930,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7755:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":43928,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37058,"src":"7732:12:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":43932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43933,"nodeType":"RevertStatement","src":"7725:33:64"}]}},{"expression":{"id":43945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":43936,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43908,"src":"7786:16:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":43938,"indexExpression":{"id":43937,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7803:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":43940,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43890,"src":"7817:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":43941,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43893,"src":"7829:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":43943,"indexExpression":{"id":43942,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7839:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":43939,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43686,"src":"7808:8:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":43944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43946,"nodeType":"ExpressionStatement","src":"7786:56:64"},{"id":43950,"nodeType":"UncheckedBlock","src":"7856:46:64","statements":[{"expression":{"id":43948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:64","subExpression":{"id":43947,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7886:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43949,"nodeType":"ExpressionStatement","src":"7884:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":43920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":43918,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43916,"src":"7631:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":43919,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43900,"src":"7635:4:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":43952,"initializationExpression":{"assignments":[43916],"declarations":[{"constant":false,"id":43916,"mutability":"mutable","name":"i","nameLocation":"7628:1:64","nodeType":"VariableDeclaration","scope":43952,"src":"7620:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43915,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":43917,"nodeType":"VariableDeclarationStatement","src":"7620:9:64"},"nodeType":"ForStatement","src":"7615:297:64"},{"expression":{"id":43953,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43908,"src":"7928:16:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":43898,"id":43954,"nodeType":"Return","src":"7921:23:64"}]},"documentation":{"id":43887,"nodeType":"StructuredDocumentation","src":"7193:141:64","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:64","parameters":{"id":43894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43890,"mutability":"mutable","name":"validators","nameLocation":"7404:10:64","nodeType":"VariableDeclaration","scope":43956,"src":"7383:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43889,"nodeType":"UserDefinedTypeName","pathNode":{"id":43888,"name":"ValidatorSet","nameLocations":["7383:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"7383:12:64"},"referencedDeclaration":48673,"src":"7383:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43893,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:64","nodeType":"VariableDeclaration","scope":43956,"src":"7424:26:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":43891,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":43892,"nodeType":"ArrayTypeName","src":"7424:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:64"},"returnParameters":{"id":43898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43956,"src":"7480:16:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":43895,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":43896,"nodeType":"ArrayTypeName","src":"7480:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43973,"nodeType":"FunctionDefinition","src":"7957:167:64","nodes":[],"body":{"id":43972,"nodeType":"Block","src":"8059:65:64","nodes":[],"statements":[{"expression":{"arguments":[{"id":43969,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43961,"src":"8107:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":43966,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43959,"src":"8076:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"8076:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":43968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"8076:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":43970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":43965,"id":43971,"nodeType":"Return","src":"8069:48:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:64","parameters":{"id":43962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43959,"mutability":"mutable","name":"self","nameLocation":"8005:4:64","nodeType":"VariableDeclaration","scope":43973,"src":"7984:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43958,"nodeType":"UserDefinedTypeName","pathNode":{"id":43957,"name":"ValidatorSet","nameLocations":["7984:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"7984:12:64"},"referencedDeclaration":48673,"src":"7984:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43961,"mutability":"mutable","name":"validator","nameLocation":"8019:9:64","nodeType":"VariableDeclaration","scope":43973,"src":"8011:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43960,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:64"},"returnParameters":{"id":43965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43973,"src":"8053:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43963,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:64"},"scope":44594,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":43994,"nodeType":"FunctionDefinition","src":"8165:176:64","nodes":[],"body":{"id":43993,"nodeType":"Block","src":"8272:69:64","nodes":[],"statements":[{"expression":{"id":43991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":43984,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43977,"src":"8282:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":43987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"8282:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":43988,"indexExpression":{"id":43986,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43979,"src":"8304:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":43989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"8282:41:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":43990,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43981,"src":"8326:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":43992,"nodeType":"ExpressionStatement","src":"8282:52:64"}]},"documentation":{"id":43974,"nodeType":"StructuredDocumentation","src":"8130:30:64","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:64","parameters":{"id":43982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43977,"mutability":"mutable","name":"validators","nameLocation":"8207:10:64","nodeType":"VariableDeclaration","scope":43994,"src":"8186:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43976,"nodeType":"UserDefinedTypeName","pathNode":{"id":43975,"name":"ValidatorSet","nameLocations":["8186:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"8186:12:64"},"referencedDeclaration":48673,"src":"8186:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":43979,"mutability":"mutable","name":"validator","nameLocation":"8227:9:64","nodeType":"VariableDeclaration","scope":43994,"src":"8219:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43978,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43981,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:64","nodeType":"VariableDeclaration","scope":43994,"src":"8238:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":43980,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:64"},"returnParameters":{"id":43983,"nodeType":"ParameterList","parameters":[],"src":"8272:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44015,"nodeType":"FunctionDefinition","src":"8648:175:64","nodes":[],"body":{"id":44014,"nodeType":"Block","src":"8748:75:64","nodes":[],"statements":[{"expression":{"id":44012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44005,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43998,"src":"8758:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"8758:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44009,"indexExpression":{"id":44007,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44000,"src":"8780:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"8758:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44011,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44002,"src":"8810:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44013,"nodeType":"ExpressionStatement","src":"8758:58:64"}]},"documentation":{"id":43995,"nodeType":"StructuredDocumentation","src":"8580:63:64","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:64","parameters":{"id":44003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43998,"mutability":"mutable","name":"validators","nameLocation":"8692:10:64","nodeType":"VariableDeclaration","scope":44015,"src":"8671:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":43997,"nodeType":"UserDefinedTypeName","pathNode":{"id":43996,"name":"ValidatorSet","nameLocations":["8671:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"8671:12:64"},"referencedDeclaration":48673,"src":"8671:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44000,"mutability":"mutable","name":"validator","nameLocation":"8712:9:64","nodeType":"VariableDeclaration","scope":44015,"src":"8704:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43999,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44002,"mutability":"mutable","name":"amount","nameLocation":"8731:6:64","nodeType":"VariableDeclaration","scope":44015,"src":"8723:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44001,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:64"},"returnParameters":{"id":44004,"nodeType":"ParameterList","parameters":[],"src":"8748:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44056,"nodeType":"FunctionDefinition","src":"8895:364:64","nodes":[],"body":{"id":44055,"nodeType":"Block","src":"8996:263:64","nodes":[],"statements":[{"assignments":[44027],"declarations":[{"constant":false,"id":44027,"mutability":"mutable","name":"total","nameLocation":"9014:5:64","nodeType":"VariableDeclaration","scope":44055,"src":"9006:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44026,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44033,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44028,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44019,"src":"9022:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9022:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44031,"indexExpression":{"id":44030,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44021,"src":"9044:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"9022:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44034,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"9084:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44035,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44023,"src":"9092:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44041,"nodeType":"IfStatement","src":"9080:81:64","trueBody":{"id":44040,"nodeType":"Block","src":"9100:61:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44037,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37078,"src":"9121:27:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44039,"nodeType":"RevertStatement","src":"9114:36:64"}]}},{"expression":{"id":44044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44042,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"9171:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44043,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44023,"src":"9180:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44045,"nodeType":"ExpressionStatement","src":"9171:15:64"},{"expression":{"id":44053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44046,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44019,"src":"9196:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9196:21:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44050,"indexExpression":{"id":44048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44021,"src":"9218:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"9196:48:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44052,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44027,"src":"9247:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44054,"nodeType":"ExpressionStatement","src":"9196:56:64"}]},"documentation":{"id":44016,"nodeType":"StructuredDocumentation","src":"8829:61:64","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:64","parameters":{"id":44024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44019,"mutability":"mutable","name":"validators","nameLocation":"8940:10:64","nodeType":"VariableDeclaration","scope":44056,"src":"8919:31:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44018,"nodeType":"UserDefinedTypeName","pathNode":{"id":44017,"name":"ValidatorSet","nameLocations":["8919:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"8919:12:64"},"referencedDeclaration":48673,"src":"8919:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44021,"mutability":"mutable","name":"validator","nameLocation":"8960:9:64","nodeType":"VariableDeclaration","scope":44056,"src":"8952:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44020,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44023,"mutability":"mutable","name":"amount","nameLocation":"8979:6:64","nodeType":"VariableDeclaration","scope":44056,"src":"8971:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44022,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:64"},"returnParameters":{"id":44025,"nodeType":"ParameterList","parameters":[],"src":"8996:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44109,"nodeType":"FunctionDefinition","src":"9330:540:64","nodes":[],"body":{"id":44108,"nodeType":"Block","src":"9431:439:64","nodes":[],"statements":[{"assignments":[44068],"declarations":[{"constant":false,"id":44068,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:64","nodeType":"VariableDeclaration","scope":44108,"src":"9441:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44067,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44074,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9465:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9465:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44072,"indexExpression":{"id":44071,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9481:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:64","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":48636,"src":"9465:41:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:64"},{"expression":{"id":44082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44075,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9516:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"9516:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44079,"indexExpression":{"id":44077,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9532:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:64","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":48636,"src":"9516:41:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44081,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9560:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44083,"nodeType":"ExpressionStatement","src":"9516:49:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44084,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"9580:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44085,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9597:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44089,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44068,"src":"9645:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44090,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9661:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44105,"nodeType":"Block","src":"9771:93:64","statements":[{"expression":{"arguments":[{"id":44100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9808:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44101,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9825:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44102,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9846:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44099,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44593,"src":"9785:15:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:64","9814:9:64","9836:8:64"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44104,"nodeType":"ExpressionStatement","src":"9785:68:64"}]},"id":44106,"nodeType":"IfStatement","src":"9641:223:64","trueBody":{"id":44098,"nodeType":"Block","src":"9668:97:64","statements":[{"expression":{"arguments":[{"id":44093,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44060,"src":"9707:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44094,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44062,"src":"9726:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44095,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44064,"src":"9747:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44092,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44382,"src":"9682:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:64","9713:11:64","9737:8:64"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44097,"nodeType":"ExpressionStatement","src":"9682:72:64"}]}},"id":44107,"nodeType":"IfStatement","src":"9576:288:64","trueBody":{"id":44088,"nodeType":"Block","src":"9604:31:64","statements":[{"functionReturnParameters":44066,"id":44087,"nodeType":"Return","src":"9618:7:64"}]}}]},"documentation":{"id":44057,"nodeType":"StructuredDocumentation","src":"9265:60:64","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:64","parameters":{"id":44065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44060,"mutability":"mutable","name":"self","nameLocation":"9382:4:64","nodeType":"VariableDeclaration","scope":44109,"src":"9361:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44059,"nodeType":"UserDefinedTypeName","pathNode":{"id":44058,"name":"ValidatorSet","nameLocations":["9361:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"9361:12:64"},"referencedDeclaration":48673,"src":"9361:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44062,"mutability":"mutable","name":"validator","nameLocation":"9396:9:64","nodeType":"VariableDeclaration","scope":44109,"src":"9388:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44061,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44064,"mutability":"mutable","name":"power","nameLocation":"9415:5:64","nodeType":"VariableDeclaration","scope":44109,"src":"9407:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44063,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:64"},"returnParameters":{"id":44066,"nodeType":"ParameterList","parameters":[],"src":"9431:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44151,"nodeType":"FunctionDefinition","src":"9876:404:64","nodes":[],"body":{"id":44150,"nodeType":"Block","src":"9971:309:64","nodes":[],"statements":[{"assignments":[44120],"declarations":[{"constant":false,"id":44120,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:64","nodeType":"VariableDeclaration","scope":44150,"src":"9981:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44119,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44128,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10005:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10005:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44124,"indexExpression":{"id":44123,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44114,"src":"10021:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10005:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44126,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44116,"src":"10054:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:64"},{"expression":{"id":44136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44129,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10070:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10070:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44133,"indexExpression":{"id":44131,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44114,"src":"10086:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10070:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44135,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"10119:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44137,"nodeType":"ExpressionStatement","src":"10070:62:64"},{"expression":{"id":44142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44138,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10143:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:64","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48658,"src":"10143:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44141,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44116,"src":"10176:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44143,"nodeType":"ExpressionStatement","src":"10143:39:64"},{"expression":{"arguments":[{"id":44145,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44112,"src":"10218:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44146,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44114,"src":"10237:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44147,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"10258:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44144,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44382,"src":"10193:17:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:64","10224:11:64","10248:8:64"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44149,"nodeType":"ExpressionStatement","src":"10193:80:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:64","parameters":{"id":44117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44112,"mutability":"mutable","name":"self","nameLocation":"9921:4:64","nodeType":"VariableDeclaration","scope":44151,"src":"9900:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44111,"nodeType":"UserDefinedTypeName","pathNode":{"id":44110,"name":"ValidatorSet","nameLocations":["9900:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"9900:12:64"},"referencedDeclaration":48673,"src":"9900:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44114,"mutability":"mutable","name":"validator","nameLocation":"9935:9:64","nodeType":"VariableDeclaration","scope":44151,"src":"9927:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44113,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44116,"mutability":"mutable","name":"amount","nameLocation":"9954:6:64","nodeType":"VariableDeclaration","scope":44151,"src":"9946:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44115,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:64"},"returnParameters":{"id":44118,"nodeType":"ParameterList","parameters":[],"src":"9971:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44217,"nodeType":"FunctionDefinition","src":"10286:616:64","nodes":[],"body":{"id":44216,"nodeType":"Block","src":"10382:520:64","nodes":[],"statements":[{"assignments":[44162],"declarations":[{"constant":false,"id":44162,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:64","nodeType":"VariableDeclaration","scope":44216,"src":"10392:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44161,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44170,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44163,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10416:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10416:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44166,"indexExpression":{"id":44165,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10432:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10416:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44168,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44158,"src":"10465:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:64"},{"assignments":[44172],"declarations":[{"constant":false,"id":44172,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:64","nodeType":"VariableDeclaration","scope":44216,"src":"10481:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44171,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44178,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10507:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10507:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44176,"indexExpression":{"id":44175,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10523:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"10507:42:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:64"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44179,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44162,"src":"10564:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44182,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44172,"src":"10586:15:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44202,"nodeType":"Block","src":"10672:87:64","statements":[{"expression":{"id":44200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44193,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10686:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10686:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44197,"indexExpression":{"id":44195,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10702:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"10686:46:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44199,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44162,"src":"10735:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44201,"nodeType":"ExpressionStatement","src":"10686:62:64"}]},"id":44203,"nodeType":"IfStatement","src":"10560:199:64","trueBody":{"id":44192,"nodeType":"Block","src":"10608:58:64","statements":[{"expression":{"id":44190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:64","subExpression":{"baseExpression":{"expression":{"id":44186,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10629:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"10629:15:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44189,"indexExpression":{"id":44188,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10645:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44191,"nodeType":"ExpressionStatement","src":"10622:33:64"}]}},{"expression":{"arguments":[{"id":44205,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10792:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44206,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44156,"src":"10809:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44207,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44162,"src":"10830:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44204,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44593,"src":"10769:15:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:64","10798:9:64","10820:8:64"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44209,"nodeType":"ExpressionStatement","src":"10769:76:64"},{"expression":{"id":44214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44210,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44154,"src":"10856:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:64","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48658,"src":"10856:29:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44213,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44158,"src":"10889:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44215,"nodeType":"ExpressionStatement","src":"10856:39:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:64","parameters":{"id":44159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44154,"mutability":"mutable","name":"self","nameLocation":"10332:4:64","nodeType":"VariableDeclaration","scope":44217,"src":"10311:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44153,"nodeType":"UserDefinedTypeName","pathNode":{"id":44152,"name":"ValidatorSet","nameLocations":["10311:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"10311:12:64"},"referencedDeclaration":48673,"src":"10311:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44156,"mutability":"mutable","name":"validator","nameLocation":"10346:9:64","nodeType":"VariableDeclaration","scope":44217,"src":"10338:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44155,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44158,"mutability":"mutable","name":"amount","nameLocation":"10365:6:64","nodeType":"VariableDeclaration","scope":44217,"src":"10357:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44157,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:64"},"returnParameters":{"id":44160,"nodeType":"ParameterList","parameters":[],"src":"10382:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44382,"nodeType":"FunctionDefinition","src":"11008:2209:64","nodes":[],"body":{"id":44381,"nodeType":"Block","src":"11110:2107:64","nodes":[],"statements":[{"condition":{"arguments":[{"id":44231,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11155:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11124:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11124:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"11124:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44249,"nodeType":"IfStatement","src":"11120:226:64","trueBody":{"id":44248,"nodeType":"Block","src":"11169:177:64","statements":[{"expression":{"arguments":[{"id":44238,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11223:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44239,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11229:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44233,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11183:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11183:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:64","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47820,"src":"11183:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44241,"nodeType":"ExpressionStatement","src":"11183:58:64"},{"eventCall":{"arguments":[{"id":44243,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11293:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44244,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"11306:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44242,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43618,"src":"11260:32:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44246,"nodeType":"EmitStatement","src":"11255:60:64"},{"functionReturnParameters":44227,"id":44247,"nodeType":"Return","src":"11329:7:64"}]}},{"assignments":[44251],"declarations":[{"constant":false,"id":44251,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:64","nodeType":"VariableDeclaration","scope":44381,"src":"11408:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44250,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44254,"initialValue":{"expression":{"id":44252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11429:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:64","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":48655,"src":"11429:16:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:64"},{"assignments":[44256],"declarations":[{"constant":false,"id":44256,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:64","nodeType":"VariableDeclaration","scope":44381,"src":"11455:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44255,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44261,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11475:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11475:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"11475:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44262,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44251,"src":"11520:11:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44263,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44256,"src":"11534:10:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44281,"nodeType":"IfStatement","src":"11516:262:64","trueBody":{"id":44280,"nodeType":"Block","src":"11546:232:64","statements":[{"expression":{"arguments":[{"id":44270,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11669:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44271,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11675:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"11640:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"11640:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"11640:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44273,"nodeType":"ExpressionStatement","src":"11640:47:64"},{"eventCall":{"arguments":[{"id":44275,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"11725:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44276,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"11738:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44274,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43630,"src":"11706:18:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44278,"nodeType":"EmitStatement","src":"11701:46:64"},{"functionReturnParameters":44227,"id":44279,"nodeType":"Return","src":"11761:7:64"}]}},{"assignments":[44283,44285],"declarations":[{"constant":false,"id":44283,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:64","nodeType":"VariableDeclaration","scope":44381,"src":"12317:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44282,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44285,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:64","nodeType":"VariableDeclaration","scope":44381,"src":"12337:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44284,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44291,"initialValue":{"arguments":[{"id":44289,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12389:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44286,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12363:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"12363:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:64","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"12363:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44292,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44285,"src":"12408:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44293,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"12425:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44344,"nodeType":"IfStatement","src":"12404:452:64","trueBody":{"id":44343,"nodeType":"Block","src":"12435:421:64","statements":[{"expression":{"arguments":[{"id":44300,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12475:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44295,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12449:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"12449:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47693,"src":"12449:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44302,"nodeType":"ExpressionStatement","src":"12449:31:64"},{"condition":{"arguments":[{"id":44306,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12531:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44303,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12499:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12499:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"12499:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44318,"nodeType":"IfStatement","src":"12495:140:64","trueBody":{"id":44317,"nodeType":"Block","src":"12545:90:64","statements":[{"expression":{"arguments":[{"id":44313,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12602:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44314,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12608:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44308,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12563:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12563:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:64","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":47167,"src":"12563:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44316,"nodeType":"ExpressionStatement","src":"12563:57:64"}]}},{"expression":{"arguments":[{"id":44324,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12678:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44325,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12684:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12649:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"12649:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"12649:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44327,"nodeType":"ExpressionStatement","src":"12649:47:64"},{"expression":{"arguments":[{"id":44333,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12740:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44334,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44283,"src":"12746:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44328,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12710:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12710:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47008,"src":"12710:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44336,"nodeType":"ExpressionStatement","src":"12710:47:64"},{"eventCall":{"arguments":[{"id":44338,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44283,"src":"12801:10:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44339,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12813:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44337,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43642,"src":"12777:23:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":44340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44341,"nodeType":"EmitStatement","src":"12772:53:64"},{"functionReturnParameters":44227,"id":44342,"nodeType":"Return","src":"12839:7:64"}]}},{"condition":{"arguments":[{"id":44348,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12902:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44345,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12870:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12870:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"12870:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44366,"nodeType":"IfStatement","src":"12866:229:64","trueBody":{"id":44365,"nodeType":"Block","src":"12916:179:64","statements":[{"expression":{"arguments":[{"id":44355,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12971:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44356,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"12977:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44350,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"12930:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"12930:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44354,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:64","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47202,"src":"12930:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44358,"nodeType":"ExpressionStatement","src":"12930:59:64"},{"eventCall":{"arguments":[{"id":44360,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"13042:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44361,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"13055:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44359,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"13008:33:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44363,"nodeType":"EmitStatement","src":"13003:61:64"},{"functionReturnParameters":44227,"id":44364,"nodeType":"Return","src":"13078:7:64"}]}},{"expression":{"arguments":[{"id":44372,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"13135:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44373,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"13141:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44221,"src":"13105:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13105:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47008,"src":"13105:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44375,"nodeType":"ExpressionStatement","src":"13105:48:64"},{"eventCall":{"arguments":[{"id":44377,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44223,"src":"13188:11:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44378,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44225,"src":"13201:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44376,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43636,"src":"13168:19:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44380,"nodeType":"EmitStatement","src":"13163:47:64"}]},"documentation":{"id":44218,"nodeType":"StructuredDocumentation","src":"10908:95:64","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:64","parameters":{"id":44226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44221,"mutability":"mutable","name":"self","nameLocation":"11056:4:64","nodeType":"VariableDeclaration","scope":44382,"src":"11035:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44220,"nodeType":"UserDefinedTypeName","pathNode":{"id":44219,"name":"ValidatorSet","nameLocations":["11035:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"11035:12:64"},"referencedDeclaration":48673,"src":"11035:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44223,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:64","nodeType":"VariableDeclaration","scope":44382,"src":"11062:19:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44222,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44225,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:64","nodeType":"VariableDeclaration","scope":44382,"src":"11083:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44224,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:64"},"returnParameters":{"id":44227,"nodeType":"ParameterList","parameters":[],"src":"11110:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44593,"nodeType":"FunctionDefinition","src":"13320:2014:64","nodes":[],"body":{"id":44592,"nodeType":"Block","src":"13418:1916:64","nodes":[],"statements":[{"condition":{"arguments":[{"id":44396,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13464:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44393,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13432:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13432:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"13432:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44433,"nodeType":"IfStatement","src":"13428:421:64","trueBody":{"id":44432,"nodeType":"Block","src":"13476:373:64","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44398,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"13494:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44416,"nodeType":"IfStatement","src":"13490:185:64","trueBody":{"id":44415,"nodeType":"Block","src":"13509:166:64","statements":[{"expression":{"arguments":[{"id":44406,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13566:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44407,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13572:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44401,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13527:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13527:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:64","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":47167,"src":"13527:38:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44409,"nodeType":"ExpressionStatement","src":"13527:55:64"},{"eventCall":{"arguments":[{"id":44411,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13626:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44410,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43650,"src":"13605:20:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":44412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44413,"nodeType":"EmitStatement","src":"13600:36:64"},{"functionReturnParameters":44392,"id":44414,"nodeType":"Return","src":"13654:7:64"}]}},{"expression":{"arguments":[{"id":44422,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13729:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44423,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13735:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44417,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13688:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"13688:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:64","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47237,"src":"13688:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44425,"nodeType":"ExpressionStatement","src":"13688:57:64"},{"eventCall":{"arguments":[{"id":44427,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13798:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44428,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"13809:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44426,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"13764:33:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44430,"nodeType":"EmitStatement","src":"13759:59:64"},{"functionReturnParameters":44392,"id":44431,"nodeType":"Return","src":"13832:7:64"}]}},{"condition":{"id":44439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:64","subExpression":{"arguments":[{"id":44437,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"13919:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44434,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"13888:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"13888:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"13888:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44444,"nodeType":"IfStatement","src":"13883:106:64","trueBody":{"id":44443,"nodeType":"Block","src":"13931:58:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44440,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36936,"src":"13952:24:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44442,"nodeType":"RevertStatement","src":"13945:33:64"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44445,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"14053:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44503,"nodeType":"IfStatement","src":"14049:508:64","trueBody":{"id":44502,"nodeType":"Block","src":"14068:489:64","statements":[{"expression":{"arguments":[{"id":44453,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14120:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44454,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"14126:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44448,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14082:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14082:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:64","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":47785,"src":"14082:37:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44456,"nodeType":"ExpressionStatement","src":"14082:54:64"},{"eventCall":{"arguments":[{"id":44458,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"14175:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44457,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43646,"src":"14155:19:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44460,"nodeType":"EmitStatement","src":"14150:35:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44461,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14204:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14204:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"14204:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":44465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44500,"nodeType":"IfStatement","src":"14200:326:64","trueBody":{"id":44499,"nodeType":"Block","src":"14243:283:64","statements":[{"assignments":[44468,44470],"declarations":[{"constant":false,"id":44468,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:64","nodeType":"VariableDeclaration","scope":44499,"src":"14262:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44467,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44470,"mutability":"mutable","name":"power","nameLocation":"14292:5:64","nodeType":"VariableDeclaration","scope":44499,"src":"14284:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44469,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44476,"initialValue":{"arguments":[{"id":44474,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14328:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44471,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14301:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14301:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:64","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":47278,"src":"14301:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:64"},{"expression":{"arguments":[{"id":44482,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14378:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44477,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14351:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14351:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47075,"src":"14351:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44484,"nodeType":"ExpressionStatement","src":"14351:32:64"},{"expression":{"arguments":[{"id":44490,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14430:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44491,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44468,"src":"14436:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44485,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14401:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14401:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"14401:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44493,"nodeType":"ExpressionStatement","src":"14401:48:64"},{"eventCall":{"arguments":[{"id":44495,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44468,"src":"14491:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44496,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44470,"src":"14505:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44494,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43630,"src":"14472:18:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44498,"nodeType":"EmitStatement","src":"14467:44:64"}]}},{"functionReturnParameters":44392,"id":44501,"nodeType":"Return","src":"14540:7:64"}]}},{"expression":{"arguments":[{"id":44509,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14607:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44510,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"14613:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44504,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14567:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14567:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:64","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":47855,"src":"14567:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44512,"nodeType":"ExpressionStatement","src":"14567:56:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44513,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14638:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14638:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"14638:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44521,"nodeType":"IfStatement","src":"14634:74:64","trueBody":{"id":44520,"nodeType":"Block","src":"14677:31:64","statements":[{"functionReturnParameters":44392,"id":44519,"nodeType":"Return","src":"14691:7:64"}]}},{"assignments":[44523,44525],"declarations":[{"constant":false,"id":44523,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:64","nodeType":"VariableDeclaration","scope":44592,"src":"14719:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44522,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44525,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:64","nodeType":"VariableDeclaration","scope":44592,"src":"14741:22:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44524,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44531,"initialValue":{"arguments":[{"id":44529,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14793:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44526,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14767:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14767:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:64","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"14767:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:64"},{"assignments":[44533,44535],"declarations":[{"constant":false,"id":44533,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:64","nodeType":"VariableDeclaration","scope":44592,"src":"14809:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44532,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44535,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:64","nodeType":"VariableDeclaration","scope":44592,"src":"14832:23:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44534,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44541,"initialValue":{"arguments":[{"id":44539,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14886:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44536,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14859:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14859:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:64","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":47278,"src":"14859:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44542,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44525,"src":"14905:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44543,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44535,"src":"14922:15:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44586,"nodeType":"IfStatement","src":"14901:358:64","trueBody":{"id":44585,"nodeType":"Block","src":"14939:320:64","statements":[{"expression":{"arguments":[{"id":44550,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14979:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44545,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14953:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"14953:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47693,"src":"14953:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44552,"nodeType":"ExpressionStatement","src":"14953:31:64"},{"expression":{"arguments":[{"id":44558,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15025:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44553,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"14998:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"14998:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:64","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":47075,"src":"14998:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":44559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44560,"nodeType":"ExpressionStatement","src":"14998:32:64"},{"expression":{"arguments":[{"id":44566,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15073:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44567,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44533,"src":"15079:13:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44561,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15044:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"15044:21:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47626,"src":"15044:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$47507_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44569,"nodeType":"ExpressionStatement","src":"15044:49:64"},{"expression":{"arguments":[{"id":44575,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15137:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44576,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44523,"src":"15143:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44570,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44386,"src":"15107:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"15107:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:64","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":47008,"src":"15107:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44578,"nodeType":"ExpressionStatement","src":"15107:49:64"},{"eventCall":{"arguments":[{"id":44580,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44523,"src":"15200:12:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44581,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44533,"src":"15214:13:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44579,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43642,"src":"15176:23:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":44582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44583,"nodeType":"EmitStatement","src":"15171:57:64"},{"functionReturnParameters":44392,"id":44584,"nodeType":"Return","src":"15242:7:64"}]}},{"eventCall":{"arguments":[{"id":44588,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44388,"src":"15307:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44589,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44390,"src":"15318:8:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44587,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43618,"src":"15274:32:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44591,"nodeType":"EmitStatement","src":"15269:58:64"}]},"documentation":{"id":44383,"nodeType":"StructuredDocumentation","src":"13223:92:64","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:64","parameters":{"id":44391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44386,"mutability":"mutable","name":"self","nameLocation":"13366:4:64","nodeType":"VariableDeclaration","scope":44593,"src":"13345:25:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44385,"nodeType":"UserDefinedTypeName","pathNode":{"id":44384,"name":"ValidatorSet","nameLocations":["13345:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"13345:12:64"},"referencedDeclaration":48673,"src":"13345:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44388,"mutability":"mutable","name":"validator","nameLocation":"13380:9:64","nodeType":"VariableDeclaration","scope":44593,"src":"13372:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44387,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44390,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:64","nodeType":"VariableDeclaration","scope":44593,"src":"13391:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44389,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:64"},"returnParameters":{"id":44392,"nodeType":"ParameterList","parameters":[],"src":"13418:0:64"},"scope":44594,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":43604,"nodeType":"StructuredDocumentation","src":"3860:40:64","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[44594],"name":"LibValidatorSet","nameLocation":"3908:15:64","scope":45729,"usedErrors":[]},{"id":45464,"nodeType":"ContractDefinition","src":"15338:10289:64","nodes":[{"id":44598,"nodeType":"UsingForDirective","src":"15363:53:64","nodes":[],"global":false,"libraryName":{"id":44595,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:64"],"nodeType":"IdentifierPath","referencedDeclaration":43603,"src":"15369:22:64"},"typeName":{"id":44597,"nodeType":"UserDefinedTypeName","pathNode":{"id":44596,"name":"StakingReleaseQueue","nameLocations":["15396:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"15396:19:64"},"referencedDeclaration":48633,"src":"15396:19:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":44602,"nodeType":"UsingForDirective","src":"15421:47:64","nodes":[],"global":false,"libraryName":{"id":44599,"name":"LibStakingChangeLog","nameLocations":["15427:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":45966,"src":"15427:19:64"},"typeName":{"id":44601,"nodeType":"UserDefinedTypeName","pathNode":{"id":44600,"name":"StakingChangeLog","nameLocations":["15451:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"15451:16:64"},"referencedDeclaration":48606,"src":"15451:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":44606,"nodeType":"UsingForDirective","src":"15473:39:64","nodes":[],"global":false,"libraryName":{"id":44603,"name":"LibValidatorSet","nameLocations":["15479:15:64"],"nodeType":"IdentifierPath","referencedDeclaration":44594,"src":"15479:15:64"},"typeName":{"id":44605,"nodeType":"UserDefinedTypeName","pathNode":{"id":44604,"name":"ValidatorSet","nameLocations":["15499:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"15499:12:64"},"referencedDeclaration":48673,"src":"15499:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":44610,"nodeType":"UsingForDirective","src":"15517:25:64","nodes":[],"global":false,"libraryName":{"id":44607,"name":"LibMaxPQ","nameLocations":["15523:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":47494,"src":"15523:8:64"},"typeName":{"id":44609,"nodeType":"UserDefinedTypeName","pathNode":{"id":44608,"name":"MaxPQ","nameLocations":["15536:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"15536:5:64"},"referencedDeclaration":46889,"src":"15536:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44614,"nodeType":"UsingForDirective","src":"15547:25:64","nodes":[],"global":false,"libraryName":{"id":44611,"name":"LibMinPQ","nameLocations":["15553:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":48113,"src":"15553:8:64"},"typeName":{"id":44613,"nodeType":"UserDefinedTypeName","pathNode":{"id":44612,"name":"MinPQ","nameLocations":["15566:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"15566:5:64"},"referencedDeclaration":47507,"src":"15566:5:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}}},{"id":44617,"nodeType":"UsingForDirective","src":"15577:34:64","nodes":[],"global":false,"libraryName":{"id":44615,"name":"Address","nameLocations":["15583:7:64"],"nodeType":"IdentifierPath","referencedDeclaration":32409,"src":"15583:7:64"},"typeName":{"id":44616,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44620,"nodeType":"VariableDeclaration","src":"15617:57:64","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:64","scope":45464,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":44618,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":44619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":44624,"nodeType":"EventDefinition","src":"15681:50:64","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:64","parameters":{"id":44623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44622,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:64","nodeType":"VariableDeclaration","scope":44624,"src":"15716:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":44621,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:64"}},{"id":44630,"nodeType":"EventDefinition","src":"15736:59:64","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:64","parameters":{"id":44629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44626,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:64","nodeType":"VariableDeclaration","scope":44630,"src":"15760:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44625,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44628,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:64","nodeType":"VariableDeclaration","scope":44630,"src":"15779:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44627,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:64"}},{"id":44651,"nodeType":"FunctionDefinition","src":"15846:221:64","nodes":[],"body":{"id":44650,"nodeType":"Block","src":"15934:133:64","nodes":[],"statements":[{"assignments":[44639],"declarations":[{"constant":false,"id":44639,"mutability":"mutable","name":"s","nameLocation":"15971:1:64","nodeType":"VariableDeclaration","scope":44650,"src":"15944:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44638,"nodeType":"UserDefinedTypeName","pathNode":{"id":44637,"name":"SubnetActorStorage","nameLocations":["15944:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"15944:18:64"},"referencedDeclaration":46085,"src":"15944:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44643,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44640,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"15975:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"15975:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:64"},{"expression":{"arguments":[{"id":44647,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44632,"src":"16050:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44644,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44639,"src":"16026:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16026:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:64","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":43686,"src":"16026:23:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44636,"id":44649,"nodeType":"Return","src":"16019:41:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:64","parameters":{"id":44633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44632,"mutability":"mutable","name":"validator","nameLocation":"15881:9:64","nodeType":"VariableDeclaration","scope":44651,"src":"15873:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44631,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:64"},"returnParameters":{"id":44636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44635,"mutability":"mutable","name":"power","nameLocation":"15927:5:64","nodeType":"VariableDeclaration","scope":44651,"src":"15919:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44634,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44674,"nodeType":"FunctionDefinition","src":"16136:225:64","nodes":[],"body":{"id":44673,"nodeType":"Block","src":"16211:150:64","nodes":[],"statements":[{"assignments":[44661],"declarations":[{"constant":false,"id":44661,"mutability":"mutable","name":"s","nameLocation":"16248:1:64","nodeType":"VariableDeclaration","scope":44673,"src":"16221:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44660,"nodeType":"UserDefinedTypeName","pathNode":{"id":44659,"name":"SubnetActorStorage","nameLocations":["16221:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"16221:18:64"},"referencedDeclaration":46085,"src":"16221:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44665,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44662,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"16252:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"16252:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:64"},{"expression":{"arguments":[{"id":44670,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44654,"src":"16344:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":44666,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44661,"src":"16303:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16303:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"16303:31:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":47563,"src":"16303:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44658,"id":44672,"nodeType":"Return","src":"16296:58:64"}]},"documentation":{"id":44652,"nodeType":"StructuredDocumentation","src":"16073:58:64","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:64","parameters":{"id":44655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44654,"mutability":"mutable","name":"validator","nameLocation":"16171:9:64","nodeType":"VariableDeclaration","scope":44674,"src":"16163:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44653,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:64"},"returnParameters":{"id":44658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44657,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44674,"src":"16205:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44656,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44697,"nodeType":"FunctionDefinition","src":"16430:227:64","nodes":[],"body":{"id":44696,"nodeType":"Block","src":"16506:151:64","nodes":[],"statements":[{"assignments":[44684],"declarations":[{"constant":false,"id":44684,"mutability":"mutable","name":"s","nameLocation":"16543:1:64","nodeType":"VariableDeclaration","scope":44696,"src":"16516:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44683,"nodeType":"UserDefinedTypeName","pathNode":{"id":44682,"name":"SubnetActorStorage","nameLocations":["16516:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"16516:18:64"},"referencedDeclaration":46085,"src":"16516:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44688,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44685,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"16547:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"16547:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:64"},{"expression":{"arguments":[{"id":44693,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44677,"src":"16640:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":44689,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44684,"src":"16598:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16598:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"16598:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:64","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":46945,"src":"16598:41:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":44694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44681,"id":44695,"nodeType":"Return","src":"16591:59:64"}]},"documentation":{"id":44675,"nodeType":"StructuredDocumentation","src":"16367:58:64","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:64","parameters":{"id":44678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44677,"mutability":"mutable","name":"validator","nameLocation":"16466:9:64","nodeType":"VariableDeclaration","scope":44697,"src":"16458:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44676,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:64"},"returnParameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44697,"src":"16500:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44679,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44722,"nodeType":"FunctionDefinition","src":"16721:280:64","nodes":[],"body":{"id":44721,"nodeType":"Block","src":"16788:213:64","nodes":[],"statements":[{"assignments":[44707],"declarations":[{"constant":false,"id":44707,"mutability":"mutable","name":"s","nameLocation":"16825:1:64","nodeType":"VariableDeclaration","scope":44721,"src":"16798:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44706,"nodeType":"UserDefinedTypeName","pathNode":{"id":44705,"name":"SubnetActorStorage","nameLocations":["16798:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"16798:18:64"},"referencedDeclaration":46085,"src":"16798:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44711,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44708,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"16829:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16851:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"16829:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16829:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16798:65:64"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":44712,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44707,"src":"16937:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16939:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"16937:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16952:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"16937:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44716,"indexExpression":{"id":44715,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44700,"src":"16963:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16937:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16974:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"16937:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":44718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16993:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16937:57:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44704,"id":44720,"nodeType":"Return","src":"16930:64:64"}]},"documentation":{"id":44698,"nodeType":"StructuredDocumentation","src":"16663:53:64","text":"@notice Checks if the validator has staked before"},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"16730:9:64","parameters":{"id":44701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44700,"mutability":"mutable","name":"validator","nameLocation":"16748:9:64","nodeType":"VariableDeclaration","scope":44722,"src":"16740:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44699,"name":"address","nodeType":"ElementaryTypeName","src":"16740:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16739:19:64"},"returnParameters":{"id":44704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44703,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44722,"src":"16782:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44702,"name":"bool","nodeType":"ElementaryTypeName","src":"16782:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16781:6:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44740,"nodeType":"FunctionDefinition","src":"17007:201:64","nodes":[],"body":{"id":44739,"nodeType":"Block","src":"17071:137:64","nodes":[],"statements":[{"assignments":[44729],"declarations":[{"constant":false,"id":44729,"mutability":"mutable","name":"s","nameLocation":"17108:1:64","nodeType":"VariableDeclaration","scope":44739,"src":"17081:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44728,"nodeType":"UserDefinedTypeName","pathNode":{"id":44727,"name":"SubnetActorStorage","nameLocations":["17081:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17081:18:64"},"referencedDeclaration":46085,"src":"17081:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44733,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44730,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17112:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17134:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17112:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17112:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17081:65:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44734,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44729,"src":"17163:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17165:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17163:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17178:21:64","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":43718,"src":"17163:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17163:38:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":44726,"id":44738,"nodeType":"Return","src":"17156:45:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17016:21:64","parameters":{"id":44723,"nodeType":"ParameterList","parameters":[],"src":"17037:2:64"},"returnParameters":{"id":44726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44725,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44740,"src":"17063:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44724,"name":"uint16","nodeType":"ElementaryTypeName","src":"17063:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17062:8:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44766,"nodeType":"FunctionDefinition","src":"17296:243:64","nodes":[],"body":{"id":44765,"nodeType":"Block","src":"17354:185:64","nodes":[],"statements":[{"assignments":[44748],"declarations":[{"constant":false,"id":44748,"mutability":"mutable","name":"s","nameLocation":"17391:1:64","nodeType":"VariableDeclaration","scope":44765,"src":"17364:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44747,"nodeType":"UserDefinedTypeName","pathNode":{"id":44746,"name":"SubnetActorStorage","nameLocations":["17364:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17364:18:64"},"referencedDeclaration":46085,"src":"17364:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44752,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44749,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17395:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17417:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17395:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17395:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17364:65:64"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":44753,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44748,"src":"17446:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17446:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17461:17:64","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":48672,"src":"17446:32:64","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage","typeString":"struct MaxPQ storage ref"}},"id":44756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17479:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":46911,"src":"17446:40:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$46889_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$46889_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17446:42:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":44758,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44748,"src":"17491:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17493:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17491:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17506:16:64","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":48668,"src":"17491:31:64","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage","typeString":"struct MinPQ storage ref"}},"id":44761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17523:7:64","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":47529,"src":"17491:39:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$47507_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$47507_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17491:41:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17446:86:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":44745,"id":44764,"nodeType":"Return","src":"17439:93:64"}]},"documentation":{"id":44741,"nodeType":"StructuredDocumentation","src":"17214:77:64","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17305:15:64","parameters":{"id":44742,"nodeType":"ParameterList","parameters":[],"src":"17320:2:64"},"returnParameters":{"id":44745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44766,"src":"17346:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44743,"name":"uint16","nodeType":"ElementaryTypeName","src":"17346:6:64","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17345:8:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44784,"nodeType":"FunctionDefinition","src":"17545:214:64","nodes":[],"body":{"id":44783,"nodeType":"Block","src":"17616:143:64","nodes":[],"statements":[{"assignments":[44773],"declarations":[{"constant":false,"id":44773,"mutability":"mutable","name":"s","nameLocation":"17653:1:64","nodeType":"VariableDeclaration","scope":44783,"src":"17626:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44772,"nodeType":"UserDefinedTypeName","pathNode":{"id":44771,"name":"SubnetActorStorage","nameLocations":["17626:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17626:18:64"},"referencedDeclaration":46085,"src":"17626:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44777,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44774,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17657:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17679:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17657:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17657:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17626:65:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44778,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44773,"src":"17708:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17710:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17708:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17723:27:64","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":43701,"src":"17708:42:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17708:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44770,"id":44782,"nodeType":"Return","src":"17701:51:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"17554:27:64","parameters":{"id":44767,"nodeType":"ParameterList","parameters":[],"src":"17581:2:64"},"returnParameters":{"id":44770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44784,"src":"17607:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44768,"name":"uint256","nodeType":"ElementaryTypeName","src":"17607:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17606:9:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44802,"nodeType":"FunctionDefinition","src":"17765:205:64","nodes":[],"body":{"id":44801,"nodeType":"Block","src":"17827:143:64","nodes":[],"statements":[{"assignments":[44791],"declarations":[{"constant":false,"id":44791,"mutability":"mutable","name":"s","nameLocation":"17864:1:64","nodeType":"VariableDeclaration","scope":44801,"src":"17837:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44790,"nodeType":"UserDefinedTypeName","pathNode":{"id":44789,"name":"SubnetActorStorage","nameLocations":["17837:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"17837:18:64"},"referencedDeclaration":46085,"src":"17837:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44795,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44792,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"17868:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17890:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"17868:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17868:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17837:65:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44796,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44791,"src":"17919:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17921:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17919:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17934:27:64","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":43701,"src":"17919:42:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17919:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44788,"id":44800,"nodeType":"Return","src":"17912:51:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"17774:18:64","parameters":{"id":44785,"nodeType":"ParameterList","parameters":[],"src":"17792:2:64"},"returnParameters":{"id":44788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44802,"src":"17818:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44786,"name":"uint256","nodeType":"ElementaryTypeName","src":"17818:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17817:9:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44825,"nodeType":"FunctionDefinition","src":"18045:236:64","nodes":[],"body":{"id":44824,"nodeType":"Block","src":"18130:151:64","nodes":[],"statements":[{"assignments":[44812],"declarations":[{"constant":false,"id":44812,"mutability":"mutable","name":"s","nameLocation":"18167:1:64","nodeType":"VariableDeclaration","scope":44824,"src":"18140:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44811,"nodeType":"UserDefinedTypeName","pathNode":{"id":44810,"name":"SubnetActorStorage","nameLocations":["18140:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"18140:18:64"},"referencedDeclaration":46085,"src":"18140:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44816,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44813,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"18171:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18193:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"18171:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18171:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18140:65:64"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":44817,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44812,"src":"18222:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18224:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"18222:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18237:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"18222:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44821,"indexExpression":{"id":44820,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44805,"src":"18248:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18222:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18259:15:64","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":48640,"src":"18222:52:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44809,"id":44823,"nodeType":"Return","src":"18215:59:64"}]},"documentation":{"id":44803,"nodeType":"StructuredDocumentation","src":"17976:64:64","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18054:24:64","parameters":{"id":44806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44805,"mutability":"mutable","name":"validator","nameLocation":"18087:9:64","nodeType":"VariableDeclaration","scope":44825,"src":"18079:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44804,"name":"address","nodeType":"ElementaryTypeName","src":"18079:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18078:19:64"},"returnParameters":{"id":44809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44825,"src":"18121:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44807,"name":"uint256","nodeType":"ElementaryTypeName","src":"18121:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18120:9:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44850,"nodeType":"FunctionDefinition","src":"18441:227:64","nodes":[],"body":{"id":44849,"nodeType":"Block","src":"18522:146:64","nodes":[],"statements":[{"assignments":[44835],"declarations":[{"constant":false,"id":44835,"mutability":"mutable","name":"s","nameLocation":"18559:1:64","nodeType":"VariableDeclaration","scope":44849,"src":"18532:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44834,"nodeType":"UserDefinedTypeName","pathNode":{"id":44833,"name":"SubnetActorStorage","nameLocations":["18532:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"18532:18:64"},"referencedDeclaration":46085,"src":"18532:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44836,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"18563:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18585:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"18563:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18563:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18532:65:64"},{"expression":{"arguments":[{"id":44845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44828,"src":"18644:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44846,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44830,"src":"18655:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44840,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44835,"src":"18607:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18609:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"18607:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18622:21:64","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44109,"src":"18607:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18607:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44848,"nodeType":"ExpressionStatement","src":"18607:54:64"}]},"documentation":{"id":44826,"nodeType":"StructuredDocumentation","src":"18353:83:64","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18450:28:64","parameters":{"id":44831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44828,"mutability":"mutable","name":"validator","nameLocation":"18487:9:64","nodeType":"VariableDeclaration","scope":44850,"src":"18479:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44827,"name":"address","nodeType":"ElementaryTypeName","src":"18479:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44830,"mutability":"mutable","name":"power","nameLocation":"18506:5:64","nodeType":"VariableDeclaration","scope":44850,"src":"18498:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44829,"name":"uint256","nodeType":"ElementaryTypeName","src":"18498:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18478:34:64"},"returnParameters":{"id":44832,"nodeType":"ParameterList","parameters":[],"src":"18522:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44875,"nodeType":"FunctionDefinition","src":"18755:224:64","nodes":[],"body":{"id":44874,"nodeType":"Block","src":"18840:139:64","nodes":[],"statements":[{"assignments":[44860],"declarations":[{"constant":false,"id":44860,"mutability":"mutable","name":"s","nameLocation":"18877:1:64","nodeType":"VariableDeclaration","scope":44874,"src":"18850:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44859,"nodeType":"UserDefinedTypeName","pathNode":{"id":44858,"name":"SubnetActorStorage","nameLocations":["18850:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"18850:18:64"},"referencedDeclaration":46085,"src":"18850:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44864,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44861,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"18881:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18903:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"18881:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18881:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18850:65:64"},{"expression":{"arguments":[{"id":44870,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"18952:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44871,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"18963:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":44865,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44860,"src":"18925:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18927:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"18925:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18940:11:64","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":43994,"src":"18925:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":44872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18925:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44873,"nodeType":"ExpressionStatement","src":"18925:47:64"}]},"documentation":{"id":44851,"nodeType":"StructuredDocumentation","src":"18674:76:64","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"18764:22:64","parameters":{"id":44856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44853,"mutability":"mutable","name":"validator","nameLocation":"18795:9:64","nodeType":"VariableDeclaration","scope":44875,"src":"18787:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44852,"name":"address","nodeType":"ElementaryTypeName","src":"18787:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"metadata","nameLocation":"18821:8:64","nodeType":"VariableDeclaration","scope":44875,"src":"18806:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44854,"name":"bytes","nodeType":"ElementaryTypeName","src":"18806:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18786:44:64"},"returnParameters":{"id":44857,"nodeType":"ParameterList","parameters":[],"src":"18840:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44984,"nodeType":"FunctionDefinition","src":"19077:1335:64","nodes":[],"body":{"id":44983,"nodeType":"Block","src":"19149:1263:64","nodes":[],"statements":[{"assignments":[44885],"declarations":[{"constant":false,"id":44885,"mutability":"mutable","name":"s","nameLocation":"19186:1:64","nodeType":"VariableDeclaration","scope":44983,"src":"19159:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44884,"nodeType":"UserDefinedTypeName","pathNode":{"id":44883,"name":"SubnetActorStorage","nameLocations":["19159:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"19159:18:64"},"referencedDeclaration":46085,"src":"19159:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44889,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44886,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"19190:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19212:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"19190:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19190:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19159:65:64"},{"expression":{"arguments":[{"id":44895,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"19324:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44896,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44880,"src":"19335:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44890,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19295:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19297:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"19295:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19310:13:64","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44015,"src":"19295:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19295:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44898,"nodeType":"ExpressionStatement","src":"19295:47:64"},{"expression":{"arguments":[{"id":44904,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"19447:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44905,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44880,"src":"19458:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44899,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19417:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19419:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"19417:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19432:14:64","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44151,"src":"19417:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19417:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44907,"nodeType":"ExpressionStatement","src":"19417:48:64"},{"condition":{"id":44910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19480:15:64","subExpression":{"expression":{"id":44908,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19481:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19483:12:64","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"19481:14:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44982,"nodeType":"IfStatement","src":"19476:930:64","trueBody":{"id":44981,"nodeType":"Block","src":"19497:909:64","statements":[{"assignments":[44912],"declarations":[{"constant":false,"id":44912,"mutability":"mutable","name":"alreadyValidator","nameLocation":"19622:16:64","nodeType":"VariableDeclaration","scope":44981,"src":"19617:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44911,"name":"bool","nodeType":"ElementaryTypeName","src":"19617:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":44913,"nodeType":"VariableDeclarationStatement","src":"19617:21:64"},{"assignments":[44915],"declarations":[{"constant":false,"id":44915,"mutability":"mutable","name":"length","nameLocation":"19660:6:64","nodeType":"VariableDeclaration","scope":44981,"src":"19652:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44914,"name":"uint256","nodeType":"ElementaryTypeName","src":"19652:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44919,"initialValue":{"expression":{"expression":{"id":44916,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19669:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19671:17:64","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"19669:19:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":44918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19689:6:64","memberName":"length","nodeType":"MemberAccess","src":"19669:26:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19652:43:64"},{"body":{"id":44944,"nodeType":"Block","src":"19739:240:64","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":44932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"19761:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19763:17:64","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"19761:19:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":44929,"indexExpression":{"id":44928,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44921,"src":"19781:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19761:22:64","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage","typeString":"struct Validator storage ref"}},"id":44930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19784:4:64","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":48691,"src":"19761:27:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44931,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"19792:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19761:40:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44939,"nodeType":"IfStatement","src":"19757:137:64","trueBody":{"id":44938,"nodeType":"Block","src":"19803:91:64","statements":[{"expression":{"id":44935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44933,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44912,"src":"19825:16:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":44934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19844:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19825:23:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44936,"nodeType":"ExpressionStatement","src":"19825:23:64"},{"id":44937,"nodeType":"Break","src":"19870:5:64"}]}},{"id":44943,"nodeType":"UncheckedBlock","src":"19911:54:64","statements":[{"expression":{"id":44941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"19943:3:64","subExpression":{"id":44940,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44921,"src":"19945:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44942,"nodeType":"ExpressionStatement","src":"19943:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44923,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44921,"src":"19725:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44924,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44915,"src":"19729:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19725:10:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44945,"initializationExpression":{"assignments":[44921],"declarations":[{"constant":false,"id":44921,"mutability":"mutable","name":"i","nameLocation":"19722:1:64","nodeType":"VariableDeclaration","scope":44945,"src":"19714:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44920,"name":"uint256","nodeType":"ElementaryTypeName","src":"19714:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44922,"nodeType":"VariableDeclarationStatement","src":"19714:9:64"},"nodeType":"ForStatement","src":"19709:270:64"},{"condition":{"id":44947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19996:17:64","subExpression":{"id":44946,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44912,"src":"19997:16:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44980,"nodeType":"IfStatement","src":"19992:404:64","trueBody":{"id":44979,"nodeType":"Block","src":"20015:381:64","statements":[{"assignments":[44949],"declarations":[{"constant":false,"id":44949,"mutability":"mutable","name":"collateral","nameLocation":"20041:10:64","nodeType":"VariableDeclaration","scope":44979,"src":"20033:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44948,"name":"uint256","nodeType":"ElementaryTypeName","src":"20033:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44956,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":44950,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"20054:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20056:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20054:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20069:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"20054:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44954,"indexExpression":{"id":44953,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"20080:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20054:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20091:19:64","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":48638,"src":"20054:56:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20033:77:64"},{"assignments":[44959],"declarations":[{"constant":false,"id":44959,"mutability":"mutable","name":"val","nameLocation":"20145:3:64","nodeType":"VariableDeclaration","scope":44979,"src":"20128:20:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator"},"typeName":{"id":44958,"nodeType":"UserDefinedTypeName","pathNode":{"id":44957,"name":"Validator","nameLocations":["20128:9:64"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"20128:9:64"},"referencedDeclaration":48694,"src":"20128:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":44970,"initialValue":{"arguments":[{"id":44961,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"20189:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44962,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44949,"src":"20228:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":44963,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"20270:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20272:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20270:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":44965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20285:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"20270:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44967,"indexExpression":{"id":44966,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44878,"src":"20296:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20270:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20307:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"20270:45:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":44960,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"20151:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$48694_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":44969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20183:4:64","20220:6:64","20260:8:64"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20151:183:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20128:206:64"},{"expression":{"arguments":[{"id":44976,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44959,"src":"20377:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":44971,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44885,"src":"20352:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":44974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20354:17:64","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"20352:19:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":44975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20372:4:64","memberName":"push","nodeType":"MemberAccess","src":"20352:24:64","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$_t_struct$_Validator_$48694_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":44977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20352:29:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44978,"nodeType":"ExpressionStatement","src":"20352:29:64"}]}}]}}]},"documentation":{"id":44876,"nodeType":"StructuredDocumentation","src":"18985:87:64","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19086:18:64","parameters":{"id":44881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44878,"mutability":"mutable","name":"validator","nameLocation":"19113:9:64","nodeType":"VariableDeclaration","scope":44984,"src":"19105:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44877,"name":"address","nodeType":"ElementaryTypeName","src":"19105:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44880,"mutability":"mutable","name":"amount","nameLocation":"19132:6:64","nodeType":"VariableDeclaration","scope":44984,"src":"19124:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44879,"name":"uint256","nodeType":"ElementaryTypeName","src":"19124:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19104:35:64"},"returnParameters":{"id":44882,"nodeType":"ParameterList","parameters":[],"src":"19149:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45026,"nodeType":"FunctionDefinition","src":"20602:504:64","nodes":[],"body":{"id":45025,"nodeType":"Block","src":"20675:431:64","nodes":[],"statements":[{"assignments":[44994],"declarations":[{"constant":false,"id":44994,"mutability":"mutable","name":"s","nameLocation":"20712:1:64","nodeType":"VariableDeclaration","scope":45025,"src":"20685:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":44993,"nodeType":"UserDefinedTypeName","pathNode":{"id":44992,"name":"SubnetActorStorage","nameLocations":["20685:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"20685:18:64"},"referencedDeclaration":46085,"src":"20685:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":44998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44995,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"20716:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":44996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20738:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"20716:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":44997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20716:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20685:65:64"},{"expression":{"arguments":[{"id":45004,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44987,"src":"20851:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45005,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"20862:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":44999,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44994,"src":"20821:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20823:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20821:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20836:14:64","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44056,"src":"20821:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20821:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45007,"nodeType":"ExpressionStatement","src":"20821:48:64"},{"expression":{"arguments":[{"id":45013,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44987,"src":"20975:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45014,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"20986:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45008,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44994,"src":"20944:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20946:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"20944:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20959:15:64","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44217,"src":"20944:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20944:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45016,"nodeType":"ExpressionStatement","src":"20944:49:64"},{"expression":{"arguments":[{"id":45022,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44989,"src":"21092:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45019,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44987,"src":"21071:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21063:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45017,"name":"address","nodeType":"ElementaryTypeName","src":"21063:8:64","stateMutability":"payable","typeDescriptions":{}}},"id":45020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21063:18:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21082:9:64","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"21063:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21063:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45024,"nodeType":"ExpressionStatement","src":"21063:36:64"}]},"documentation":{"id":44985,"nodeType":"StructuredDocumentation","src":"20418:179:64","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"20611:19:64","parameters":{"id":44990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44987,"mutability":"mutable","name":"validator","nameLocation":"20639:9:64","nodeType":"VariableDeclaration","scope":45026,"src":"20631:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44986,"name":"address","nodeType":"ElementaryTypeName","src":"20631:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44989,"mutability":"mutable","name":"amount","nameLocation":"20658:6:64","nodeType":"VariableDeclaration","scope":45026,"src":"20650:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44988,"name":"uint256","nodeType":"ElementaryTypeName","src":"20650:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20630:35:64"},"returnParameters":{"id":44991,"nodeType":"ParameterList","parameters":[],"src":"20675:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45054,"nodeType":"FunctionDefinition","src":"21236:280:64","nodes":[],"body":{"id":45053,"nodeType":"Block","src":"21332:184:64","nodes":[],"statements":[{"assignments":[45038],"declarations":[{"constant":false,"id":45038,"mutability":"mutable","name":"s","nameLocation":"21369:1:64","nodeType":"VariableDeclaration","scope":45053,"src":"21342:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45037,"nodeType":"UserDefinedTypeName","pathNode":{"id":45036,"name":"SubnetActorStorage","nameLocations":["21342:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"21342:18:64"},"referencedDeclaration":46085,"src":"21342:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45042,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45039,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"21373:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21395:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"21373:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21373:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21342:65:64"},{"expression":{"arguments":[{"id":45048,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45029,"src":"21463:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45049,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45031,"src":"21484:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45050,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45033,"src":"21501:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45043,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45038,"src":"21417:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21419:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"21417:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21429:21:64","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":45816,"src":"21417:33:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21452:9:64","21474:8:64","21494:5:64"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21417:92:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45052,"nodeType":"ExpressionStatement","src":"21417:92:64"}]},"documentation":{"id":45027,"nodeType":"StructuredDocumentation","src":"21179:52:64","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21245:17:64","parameters":{"id":45034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45029,"mutability":"mutable","name":"validator","nameLocation":"21271:9:64","nodeType":"VariableDeclaration","scope":45054,"src":"21263:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45028,"name":"address","nodeType":"ElementaryTypeName","src":"21263:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45031,"mutability":"mutable","name":"metadata","nameLocation":"21297:8:64","nodeType":"VariableDeclaration","scope":45054,"src":"21282:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45030,"name":"bytes","nodeType":"ElementaryTypeName","src":"21282:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45033,"mutability":"mutable","name":"amount","nameLocation":"21315:6:64","nodeType":"VariableDeclaration","scope":45054,"src":"21307:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45032,"name":"uint256","nodeType":"ElementaryTypeName","src":"21307:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21262:60:64"},"returnParameters":{"id":45035,"nodeType":"ParameterList","parameters":[],"src":"21332:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45079,"nodeType":"FunctionDefinition","src":"21565:223:64","nodes":[],"body":{"id":45078,"nodeType":"Block","src":"21648:140:64","nodes":[],"statements":[{"assignments":[45064],"declarations":[{"constant":false,"id":45064,"mutability":"mutable","name":"s","nameLocation":"21685:1:64","nodeType":"VariableDeclaration","scope":45078,"src":"21658:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45063,"nodeType":"UserDefinedTypeName","pathNode":{"id":45062,"name":"SubnetActorStorage","nameLocations":["21658:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"21658:18:64"},"referencedDeclaration":46085,"src":"21658:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45068,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45065,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"21689:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21711:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"21689:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21689:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21658:65:64"},{"expression":{"arguments":[{"id":45074,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45057,"src":"21761:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45075,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45059,"src":"21772:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45069,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45064,"src":"21733:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21735:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"21733:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21745:15:64","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":45776,"src":"21733:27:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21733:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45077,"nodeType":"ExpressionStatement","src":"21733:48:64"}]},"documentation":{"id":45055,"nodeType":"StructuredDocumentation","src":"21522:38:64","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"21574:20:64","parameters":{"id":45060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45057,"mutability":"mutable","name":"validator","nameLocation":"21603:9:64","nodeType":"VariableDeclaration","scope":45079,"src":"21595:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45056,"name":"address","nodeType":"ElementaryTypeName","src":"21595:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45059,"mutability":"mutable","name":"metadata","nameLocation":"21629:8:64","nodeType":"VariableDeclaration","scope":45079,"src":"21614:23:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45058,"name":"bytes","nodeType":"ElementaryTypeName","src":"21614:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21594:44:64"},"returnParameters":{"id":45061,"nodeType":"ParameterList","parameters":[],"src":"21648:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45113,"nodeType":"FunctionDefinition","src":"21833:256:64","nodes":[],"body":{"id":45112,"nodeType":"Block","src":"21894:195:64","nodes":[],"statements":[{"assignments":[45089],"declarations":[{"constant":false,"id":45089,"mutability":"mutable","name":"s","nameLocation":"21931:1:64","nodeType":"VariableDeclaration","scope":45112,"src":"21904:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45088,"nodeType":"UserDefinedTypeName","pathNode":{"id":45087,"name":"SubnetActorStorage","nameLocations":["21904:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"21904:18:64"},"referencedDeclaration":46085,"src":"21904:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45093,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45090,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"21935:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21957:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"21935:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21935:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21904:65:64"},{"expression":{"arguments":[{"id":45099,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45082,"src":"22007:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45100,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45084,"src":"22018:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45094,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"21980:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21982:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"21980:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21992:14:64","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":45890,"src":"21980:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21980:45:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45102,"nodeType":"ExpressionStatement","src":"21980:45:64"},{"expression":{"arguments":[{"id":45108,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45082,"src":"22064:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45109,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45084,"src":"22075:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45103,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"22035:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22037:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"22035:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22050:13:64","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44015,"src":"22035:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22035:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45111,"nodeType":"ExpressionStatement","src":"22035:47:64"}]},"documentation":{"id":45080,"nodeType":"StructuredDocumentation","src":"21794:34:64","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"21842:7:64","parameters":{"id":45085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45082,"mutability":"mutable","name":"validator","nameLocation":"21858:9:64","nodeType":"VariableDeclaration","scope":45113,"src":"21850:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45081,"name":"address","nodeType":"ElementaryTypeName","src":"21850:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45084,"mutability":"mutable","name":"amount","nameLocation":"21877:6:64","nodeType":"VariableDeclaration","scope":45113,"src":"21869:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45083,"name":"uint256","nodeType":"ElementaryTypeName","src":"21869:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21849:35:64"},"returnParameters":{"id":45086,"nodeType":"ParameterList","parameters":[],"src":"21894:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45147,"nodeType":"FunctionDefinition","src":"22135:259:64","nodes":[],"body":{"id":45146,"nodeType":"Block","src":"22197:197:64","nodes":[],"statements":[{"assignments":[45123],"declarations":[{"constant":false,"id":45123,"mutability":"mutable","name":"s","nameLocation":"22234:1:64","nodeType":"VariableDeclaration","scope":45146,"src":"22207:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45122,"nodeType":"UserDefinedTypeName","pathNode":{"id":45121,"name":"SubnetActorStorage","nameLocations":["22207:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"22207:18:64"},"referencedDeclaration":46085,"src":"22207:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45127,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45124,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"22238:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22260:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"22238:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22238:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22207:65:64"},{"expression":{"arguments":[{"id":45133,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45116,"src":"22311:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45134,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45118,"src":"22322:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45128,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45123,"src":"22283:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22285:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"22283:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22295:15:64","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":45853,"src":"22283:27:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22283:46:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45136,"nodeType":"ExpressionStatement","src":"22283:46:64"},{"expression":{"arguments":[{"id":45142,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45116,"src":"22369:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45143,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45118,"src":"22380:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45123,"src":"22339:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22341:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"22339:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22354:14:64","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44056,"src":"22339:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22339:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45145,"nodeType":"ExpressionStatement","src":"22339:48:64"}]},"documentation":{"id":45114,"nodeType":"StructuredDocumentation","src":"22095:35:64","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22144:8:64","parameters":{"id":45119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45116,"mutability":"mutable","name":"validator","nameLocation":"22161:9:64","nodeType":"VariableDeclaration","scope":45147,"src":"22153:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45115,"name":"address","nodeType":"ElementaryTypeName","src":"22153:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45118,"mutability":"mutable","name":"amount","nameLocation":"22180:6:64","nodeType":"VariableDeclaration","scope":45147,"src":"22172:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45117,"name":"uint256","nodeType":"ElementaryTypeName","src":"22172:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22152:35:64"},"returnParameters":{"id":45120,"nodeType":"ParameterList","parameters":[],"src":"22197:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45174,"nodeType":"FunctionDefinition","src":"22503:244:64","nodes":[],"body":{"id":45173,"nodeType":"Block","src":"22556:191:64","nodes":[],"statements":[{"assignments":[45155],"declarations":[{"constant":false,"id":45155,"mutability":"mutable","name":"s","nameLocation":"22593:1:64","nodeType":"VariableDeclaration","scope":45173,"src":"22566:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45154,"nodeType":"UserDefinedTypeName","pathNode":{"id":45153,"name":"SubnetActorStorage","nameLocations":["22566:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"22566:18:64"},"referencedDeclaration":46085,"src":"22566:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45159,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45156,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"22597:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22619:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"22597:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22597:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22566:65:64"},{"assignments":[45161],"declarations":[{"constant":false,"id":45161,"mutability":"mutable","name":"amount","nameLocation":"22649:6:64","nodeType":"VariableDeclaration","scope":45173,"src":"22641:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45160,"name":"uint256","nodeType":"ElementaryTypeName","src":"22641:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45167,"initialValue":{"arguments":[{"id":45165,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45150,"src":"22679:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45162,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45155,"src":"22658:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22660:12:64","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":46068,"src":"22658:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22673:5:64","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":43602,"src":"22658:20:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22658:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22641:48:64"},{"eventCall":{"arguments":[{"id":45169,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45150,"src":"22722:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45170,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45161,"src":"22733:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45168,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44630,"src":"22704:17:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22704:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45172,"nodeType":"EmitStatement","src":"22699:41:64"}]},"documentation":{"id":45148,"nodeType":"StructuredDocumentation","src":"22457:41:64","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"22512:15:64","parameters":{"id":45151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45150,"mutability":"mutable","name":"validator","nameLocation":"22536:9:64","nodeType":"VariableDeclaration","scope":45174,"src":"22528:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45149,"name":"address","nodeType":"ElementaryTypeName","src":"22528:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22527:19:64"},"returnParameters":{"id":45152,"nodeType":"ParameterList","parameters":[],"src":"22556:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45230,"nodeType":"FunctionDefinition","src":"22861:439:64","nodes":[],"body":{"id":45229,"nodeType":"Block","src":"22918:382:64","nodes":[],"statements":[{"assignments":[45182],"declarations":[{"constant":false,"id":45182,"mutability":"mutable","name":"s","nameLocation":"22955:1:64","nodeType":"VariableDeclaration","scope":45229,"src":"22928:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45181,"nodeType":"UserDefinedTypeName","pathNode":{"id":45180,"name":"SubnetActorStorage","nameLocations":["22928:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"22928:18:64"},"referencedDeclaration":46085,"src":"22928:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45186,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45183,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"22959:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22981:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"22959:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22959:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22928:65:64"},{"assignments":[45188],"declarations":[{"constant":false,"id":45188,"mutability":"mutable","name":"amount","nameLocation":"23011:6:64","nodeType":"VariableDeclaration","scope":45229,"src":"23003:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45187,"name":"uint256","nodeType":"ElementaryTypeName","src":"23003:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45194,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45189,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45182,"src":"23020:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23022:14:64","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"23020:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23037:7:64","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"23020:24:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45193,"indexExpression":{"id":45192,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"23045:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23020:33:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23003:50:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45195,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45188,"src":"23068:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23078:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23068:11:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45202,"nodeType":"IfStatement","src":"23064:69:64","trueBody":{"id":45201,"nodeType":"Block","src":"23081:52:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45198,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37018,"src":"23102:18:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23102:20:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45200,"nodeType":"RevertStatement","src":"23095:27:64"}]}},{"expression":{"id":45211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45203,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45182,"src":"23143:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23145:14:64","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"23143:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23160:7:64","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"23143:24:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45209,"indexExpression":{"id":45206,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"23168:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23143:33:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23179:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23143:37:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45212,"nodeType":"ExpressionStatement","src":"23143:37:64"},{"expression":{"arguments":[{"id":45218,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45188,"src":"23241:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45214,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45182,"src":"23199:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23201:14:64","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"23199:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45213,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"23190:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":45216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23190:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":45217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23217:23:64","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":39837,"src":"23190:50:64","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23190:58:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45220,"nodeType":"ExpressionStatement","src":"23190:58:64"},{"expression":{"arguments":[{"id":45226,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45188,"src":"23286:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45223,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45177,"src":"23267:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23259:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45221,"name":"address","nodeType":"ElementaryTypeName","src":"23259:8:64","stateMutability":"payable","typeDescriptions":{}}},"id":45224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:16:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23276:9:64","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"23259:26:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45228,"nodeType":"ExpressionStatement","src":"23259:34:64"}]},"documentation":{"id":45175,"nodeType":"StructuredDocumentation","src":"22753:103:64","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"22870:21:64","parameters":{"id":45178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45177,"mutability":"mutable","name":"relayer","nameLocation":"22900:7:64","nodeType":"VariableDeclaration","scope":45230,"src":"22892:15:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45176,"name":"address","nodeType":"ElementaryTypeName","src":"22892:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22891:17:64"},"returnParameters":{"id":45179,"nodeType":"ParameterList","parameters":[],"src":"22918:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45253,"nodeType":"FunctionDefinition","src":"23306:247:64","nodes":[],"body":{"id":45252,"nodeType":"Block","src":"23379:174:64","nodes":[],"statements":[{"assignments":[45239],"declarations":[{"constant":false,"id":45239,"mutability":"mutable","name":"s","nameLocation":"23416:1:64","nodeType":"VariableDeclaration","scope":45252,"src":"23389:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45238,"nodeType":"UserDefinedTypeName","pathNode":{"id":45237,"name":"SubnetActorStorage","nameLocations":["23389:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"23389:18:64"},"referencedDeclaration":46085,"src":"23389:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45243,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45240,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"23420:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23442:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"23420:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23420:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23389:65:64"},{"expression":{"components":[{"expression":{"expression":{"id":45244,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45239,"src":"23472:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23474:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"23472:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23484:23:64","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"23472:35:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45247,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45239,"src":"23509:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23511:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"23509:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23521:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"23509:36:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45250,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23471:75:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45236,"id":45251,"nodeType":"Return","src":"23464:82:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23315:23:64","parameters":{"id":45231,"nodeType":"ParameterList","parameters":[],"src":"23338:2:64"},"returnParameters":{"id":45236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45253,"src":"23363:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45232,"name":"uint64","nodeType":"ElementaryTypeName","src":"23363:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45235,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45253,"src":"23371:6:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45234,"name":"uint64","nodeType":"ElementaryTypeName","src":"23371:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23362:16:64"},"scope":45464,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45463,"nodeType":"FunctionDefinition","src":"23681:1944:64","nodes":[],"body":{"id":45462,"nodeType":"Block","src":"23741:1884:64","nodes":[],"statements":[{"assignments":[45261],"declarations":[{"constant":false,"id":45261,"mutability":"mutable","name":"s","nameLocation":"23778:1:64","nodeType":"VariableDeclaration","scope":45462,"src":"23751:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45260,"nodeType":"UserDefinedTypeName","pathNode":{"id":45259,"name":"SubnetActorStorage","nameLocations":["23751:18:64"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"23751:18:64"},"referencedDeclaration":46085,"src":"23751:18:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45265,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45262,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46096,"src":"23782:21:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$46096_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23804:10:64","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":46095,"src":"23782:32:64","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$46085_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23782:34:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23751:65:64"},{"assignments":[45268],"declarations":[{"constant":false,"id":45268,"mutability":"mutable","name":"changeSet","nameLocation":"23851:9:64","nodeType":"VariableDeclaration","scope":45462,"src":"23826:34:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45267,"nodeType":"UserDefinedTypeName","pathNode":{"id":45266,"name":"StakingChangeLog","nameLocations":["23826:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"23826:16:64"},"referencedDeclaration":48606,"src":"23826:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45271,"initialValue":{"expression":{"id":45269,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"23863:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23865:9:64","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"23863:11:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23826:48:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45272,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"23889:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45273,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"23912:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23922:23:64","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"23912:33:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"23889:56:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45280,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"24017:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45281,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"24039:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24049:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"24039:34:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24017:56:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45286,"nodeType":"IfStatement","src":"24013:93:64","trueBody":{"id":45285,"nodeType":"Block","src":"24075:31:64","statements":[{"functionReturnParameters":45258,"id":45284,"nodeType":"Return","src":"24089:7:64"}]}},"id":45287,"nodeType":"IfStatement","src":"23885:221:64","trueBody":{"id":45279,"nodeType":"Block","src":"23947:60:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45276,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36940,"src":"23968:26:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23968:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45278,"nodeType":"RevertStatement","src":"23961:35:64"}]}},{"assignments":[45289],"declarations":[{"constant":false,"id":45289,"mutability":"mutable","name":"start","nameLocation":"24123:5:64","nodeType":"VariableDeclaration","scope":45462,"src":"24116:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45288,"name":"uint64","nodeType":"ElementaryTypeName","src":"24116:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45292,"initialValue":{"expression":{"id":45290,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"24131:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24141:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"24131:34:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24116:49:64"},{"body":{"id":45448,"nodeType":"Block","src":"24226:1257:64","statements":[{"assignments":[45302],"declarations":[{"constant":false,"id":45302,"mutability":"mutable","name":"change","nameLocation":"24262:6:64","nodeType":"VariableDeclaration","scope":45448,"src":"24240:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45301,"nodeType":"UserDefinedTypeName","pathNode":{"id":45300,"name":"StakingChange","nameLocations":["24240:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":48587,"src":"24240:13:64"},"referencedDeclaration":48587,"src":"24240:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":45307,"initialValue":{"arguments":[{"id":45305,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"24291:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":45303,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"24271:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24281:9:64","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":45950,"src":"24271:19:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$48587_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":45306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24271:22:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24240:53:64"},{"assignments":[45309],"declarations":[{"constant":false,"id":45309,"mutability":"mutable","name":"validator","nameLocation":"24315:9:64","nodeType":"VariableDeclaration","scope":45448,"src":"24307:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45308,"name":"address","nodeType":"ElementaryTypeName","src":"24307:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45312,"initialValue":{"expression":{"id":45310,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24327:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24334:9:64","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":48586,"src":"24327:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24307:36:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45313,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24362:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24369:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"24362:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45315,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"24375:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24392:11:64","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":48577,"src":"24375:28:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"24362:41:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45331,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24510:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24517:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"24510:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45333,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"24523:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24540:17:64","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":48578,"src":"24523:34:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"24510:47:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45435,"nodeType":"Block","src":"24829:546:64","statements":[{"assignments":[45373],"declarations":[{"constant":false,"id":45373,"mutability":"mutable","name":"amount","nameLocation":"24855:6:64","nodeType":"VariableDeclaration","scope":45435,"src":"24847:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45372,"name":"uint256","nodeType":"ElementaryTypeName","src":"24847:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45382,"initialValue":{"arguments":[{"expression":{"id":45376,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24875:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24882:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"24875:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24892:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45378,"name":"uint256","nodeType":"ElementaryTypeName","src":"24892:7:64","typeDescriptions":{}}}],"id":45380,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24891:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":45374,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24864:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24868:6:64","memberName":"decode","nodeType":"MemberAccess","src":"24864:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24864:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24847:54:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45383,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24924:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24931:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"24924:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45385,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"24937:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24954:8:64","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":48576,"src":"24937:25:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"24924:38:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45433,"nodeType":"Block","src":"25198:163:64","statements":[{"expression":{"arguments":[{"id":45420,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"25250:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45421,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25261:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45415,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25220:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25222:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"25220:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25235:14:64","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44151,"src":"25220:29:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25220:48:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45423,"nodeType":"ExpressionStatement","src":"25220:48:64"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":45425,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25299:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25301:14:64","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"25299:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45424,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"25290:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":45427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25290:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":45428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25317:8:64","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":39825,"src":"25290:35:64","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":45430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":45429,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25333:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25290:50:64","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":45431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25290:52:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45432,"nodeType":"ExpressionStatement","src":"25290:52:64"}]},"id":45434,"nodeType":"IfStatement","src":"24920:441:64","trueBody":{"id":45414,"nodeType":"Block","src":"24964:228:64","statements":[{"expression":{"arguments":[{"id":45393,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"25017:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45394,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25028:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45388,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24986:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24988:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24986:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25001:15:64","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44217,"src":"24986:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24986:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45396,"nodeType":"ExpressionStatement","src":"24986:49:64"},{"expression":{"arguments":[{"id":45402,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"25086:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45403,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25097:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45397,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25057:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25059:12:64","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":46068,"src":"25057:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25072:13:64","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":43558,"src":"25057:28:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$48633_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":45404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25057:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45405,"nodeType":"ExpressionStatement","src":"25057:47:64"},{"expression":{"arguments":[{"id":45411,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45373,"src":"25166:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45407,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"25135:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25137:14:64","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"25135:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45406,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"25126:8:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":45409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25126:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":45410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25153:12:64","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":39831,"src":"25126:39:64","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25126:47:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45413,"nodeType":"ExpressionStatement","src":"25126:47:64"}]}}]},"id":45436,"nodeType":"IfStatement","src":"24506:869:64","trueBody":{"id":45371,"nodeType":"Block","src":"24559:264:64","statements":[{"assignments":[45337,45339],"declarations":[{"constant":false,"id":45337,"mutability":"mutable","name":"metadata","nameLocation":"24591:8:64","nodeType":"VariableDeclaration","scope":45371,"src":"24578:21:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45336,"name":"bytes","nodeType":"ElementaryTypeName","src":"24578:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45339,"mutability":"mutable","name":"power","nameLocation":"24609:5:64","nodeType":"VariableDeclaration","scope":45371,"src":"24601:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45338,"name":"uint256","nodeType":"ElementaryTypeName","src":"24601:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45350,"initialValue":{"arguments":[{"expression":{"id":45342,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24629:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24636:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"24629:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24646:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":45344,"name":"bytes","nodeType":"ElementaryTypeName","src":"24646:5:64","typeDescriptions":{}}},{"id":45347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24653:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45346,"name":"uint256","nodeType":"ElementaryTypeName","src":"24653:7:64","typeDescriptions":{}}}],"id":45348,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24645:16:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":45340,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24618:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24622:6:64","memberName":"decode","nodeType":"MemberAccess","src":"24618:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24618:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"24577:85:64"},{"expression":{"id":45360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45351,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24680:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24682:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24680:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24695:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"24680:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45357,"indexExpression":{"id":45354,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"24706:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24680:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24717:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"24680:45:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45359,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45337,"src":"24728:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"24680:56:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45361,"nodeType":"ExpressionStatement","src":"24680:56:64"},{"expression":{"arguments":[{"id":45367,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"24791:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45368,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45339,"src":"24802:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45362,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24754:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24756:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24754:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24769:21:64","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44109,"src":"24754:36:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24754:54:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45370,"nodeType":"ExpressionStatement","src":"24754:54:64"}]}},"id":45437,"nodeType":"IfStatement","src":"24358:1017:64","trueBody":{"id":45330,"nodeType":"Block","src":"24405:95:64","statements":[{"expression":{"id":45328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45318,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45261,"src":"24423:1:64","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24425:12:64","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"24423:14:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24438:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"24423:25:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45324,"indexExpression":{"id":45321,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45309,"src":"24449:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24423:36:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24460:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"24423:45:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45326,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45302,"src":"24471:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24478:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"24471:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24423:62:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45329,"nodeType":"ExpressionStatement","src":"24423:62:64"}]}},{"expression":{"arguments":[{"id":45441,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"25411:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":45438,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"25389:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25399:11:64","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":45965,"src":"25389:21:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":45442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25389:24:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45443,"nodeType":"ExpressionStatement","src":"25389:24:64"},{"id":45447,"nodeType":"UncheckedBlock","src":"25427:46:64","statements":[{"expression":{"id":45445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25455:3:64","subExpression":{"id":45444,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"25457:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45446,"nodeType":"ExpressionStatement","src":"25455:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45297,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45294,"src":"24198:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":45298,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"24203:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24198:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45449,"initializationExpression":{"assignments":[45294],"declarations":[{"constant":false,"id":45294,"mutability":"mutable","name":"i","nameLocation":"24187:1:64","nodeType":"VariableDeclaration","scope":45449,"src":"24180:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45293,"name":"uint64","nodeType":"ElementaryTypeName","src":"24180:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45296,"initialValue":{"id":45295,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45289,"src":"24191:5:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24180:16:64"},"nodeType":"ForStatement","src":"24175:1308:64"},{"expression":{"id":45456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":45450,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45268,"src":"25493:9:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25503:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"25493:34:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45453,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"25530:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":45454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25552:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25530:23:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25493:60:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45457,"nodeType":"ExpressionStatement","src":"25493:60:64"},{"eventCall":{"arguments":[{"id":45459,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45256,"src":"25598:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":45458,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44624,"src":"25569:28:64","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":45460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25569:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45461,"nodeType":"EmitStatement","src":"25564:54:64"}]},"documentation":{"id":45254,"nodeType":"StructuredDocumentation","src":"23559:117:64","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"23690:13:64","parameters":{"id":45257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45256,"mutability":"mutable","name":"configurationNumber","nameLocation":"23711:19:64","nodeType":"VariableDeclaration","scope":45463,"src":"23704:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45255,"name":"uint64","nodeType":"ElementaryTypeName","src":"23704:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23703:28:64"},"returnParameters":{"id":45258,"nodeType":"ParameterList","parameters":[],"src":"23741:0:64"},"scope":45464,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[45464],"name":"LibStaking","nameLocation":"15346:10:64","scope":45729,"usedErrors":[32032,32040,37018]},{"id":45728,"nodeType":"ContractDefinition","src":"25784:2695:64","nodes":[{"id":45469,"nodeType":"UsingForDirective","src":"25819:39:64","nodes":[],"global":false,"libraryName":{"id":45466,"name":"LibValidatorSet","nameLocations":["25825:15:64"],"nodeType":"IdentifierPath","referencedDeclaration":44594,"src":"25825:15:64"},"typeName":{"id":45468,"nodeType":"UserDefinedTypeName","pathNode":{"id":45467,"name":"ValidatorSet","nameLocations":["25845:12:64"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"25845:12:64"},"referencedDeclaration":48673,"src":"25845:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45473,"nodeType":"UsingForDirective","src":"25863:47:64","nodes":[],"global":false,"libraryName":{"id":45470,"name":"LibStakingChangeLog","nameLocations":["25869:19:64"],"nodeType":"IdentifierPath","referencedDeclaration":45966,"src":"25869:19:64"},"typeName":{"id":45472,"nodeType":"UserDefinedTypeName","pathNode":{"id":45471,"name":"StakingChangeLog","nameLocations":["25893:16:64"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"25893:16:64"},"referencedDeclaration":48606,"src":"25893:16:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45508,"nodeType":"FunctionDefinition","src":"25916:475:64","nodes":[],"body":{"id":45507,"nodeType":"Block","src":"26029:362:64","nodes":[],"statements":[{"assignments":[45483],"declarations":[{"constant":false,"id":45483,"mutability":"mutable","name":"configurationNumber","nameLocation":"26046:19:64","nodeType":"VariableDeclaration","scope":45507,"src":"26039:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45482,"name":"uint64","nodeType":"ElementaryTypeName","src":"26039:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45497,"initialValue":{"arguments":[{"expression":{"expression":{"id":45487,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26119:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26133:6:64","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":48590,"src":"26119:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":45489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26140:9:64","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":48586,"src":"26119:30:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":45490,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26167:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26181:6:64","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":48590,"src":"26167:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":45492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26188:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"26167:23:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":45493,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26213:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26227:6:64","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":48590,"src":"26213:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":45495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26234:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"26213:28:64","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45484,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45476,"src":"26068:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26073:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"26068:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26081:12:64","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":45932,"src":"26068:25:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$48579_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":45496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26108:9:64","26163:2:64","26204:7:64"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26068:184:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26039:213:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45498,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45483,"src":"26267:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":45499,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45479,"src":"26290:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":45500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26304:19:64","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":48592,"src":"26290:33:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26267:56:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45506,"nodeType":"IfStatement","src":"26263:122:64","trueBody":{"id":45505,"nodeType":"Block","src":"26325:60:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45502,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36986,"src":"26346:26:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26346:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45504,"nodeType":"RevertStatement","src":"26339:35:64"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"25925:11:64","parameters":{"id":45480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45476,"mutability":"mutable","name":"self","nameLocation":"25969:4:64","nodeType":"VariableDeclaration","scope":45508,"src":"25937:36:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":45475,"nodeType":"UserDefinedTypeName","pathNode":{"id":45474,"name":"ParentValidatorsTracker","nameLocations":["25937:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"25937:23:64"},"referencedDeclaration":48680,"src":"25937:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":45479,"mutability":"mutable","name":"changeRequest","nameLocation":"26005:13:64","nodeType":"VariableDeclaration","scope":45508,"src":"25975:43:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":45478,"nodeType":"UserDefinedTypeName","pathNode":{"id":45477,"name":"StakingChangeRequest","nameLocations":["25975:20:64"],"nodeType":"IdentifierPath","referencedDeclaration":48593,"src":"25975:20:64"},"referencedDeclaration":48593,"src":"25975:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"25936:83:64"},"returnParameters":{"id":45481,"nodeType":"ParameterList","parameters":[],"src":"26029:0:64"},"scope":45728,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45549,"nodeType":"FunctionDefinition","src":"26397:415:64","nodes":[],"body":{"id":45548,"nodeType":"Block","src":"26540:272:64","nodes":[],"statements":[{"assignments":[45519],"declarations":[{"constant":false,"id":45519,"mutability":"mutable","name":"length","nameLocation":"26558:6:64","nodeType":"VariableDeclaration","scope":45548,"src":"26550:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45518,"name":"uint256","nodeType":"ElementaryTypeName","src":"26550:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45522,"initialValue":{"expression":{"id":45520,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45515,"src":"26567:14:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":45521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26582:6:64","memberName":"length","nodeType":"MemberAccess","src":"26567:21:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26550:38:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45523,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45519,"src":"26602:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26612:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26602:11:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45528,"nodeType":"IfStatement","src":"26598:48:64","trueBody":{"id":45527,"nodeType":"Block","src":"26615:31:64","statements":[{"functionReturnParameters":45517,"id":45526,"nodeType":"Return","src":"26629:7:64"}]}},{"body":{"id":45546,"nodeType":"Block","src":"26686:120:64","statements":[{"expression":{"arguments":[{"id":45536,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45511,"src":"26712:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":45537,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45515,"src":"26718:14:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":45539,"indexExpression":{"id":45538,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45530,"src":"26733:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26718:17:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":45535,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45508,"src":"26700:11:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$48680_storage_ptr_$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":45540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26700:36:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45541,"nodeType":"ExpressionStatement","src":"26700:36:64"},{"id":45545,"nodeType":"UncheckedBlock","src":"26750:46:64","statements":[{"expression":{"id":45543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"26778:3:64","subExpression":{"id":45542,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45530,"src":"26780:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45544,"nodeType":"ExpressionStatement","src":"26778:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45532,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45530,"src":"26672:1:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45533,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45519,"src":"26676:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26672:10:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45547,"initializationExpression":{"assignments":[45530],"declarations":[{"constant":false,"id":45530,"mutability":"mutable","name":"i","nameLocation":"26669:1:64","nodeType":"VariableDeclaration","scope":45547,"src":"26661:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45529,"name":"uint256","nodeType":"ElementaryTypeName","src":"26661:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45531,"nodeType":"VariableDeclarationStatement","src":"26661:9:64"},"nodeType":"ForStatement","src":"26656:150:64"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26406:16:64","parameters":{"id":45516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45511,"mutability":"mutable","name":"self","nameLocation":"26464:4:64","nodeType":"VariableDeclaration","scope":45549,"src":"26432:36:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":45510,"nodeType":"UserDefinedTypeName","pathNode":{"id":45509,"name":"ParentValidatorsTracker","nameLocations":["26432:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"26432:23:64"},"referencedDeclaration":48680,"src":"26432:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":45515,"mutability":"mutable","name":"changeRequests","nameLocation":"26510:14:64","nodeType":"VariableDeclaration","scope":45549,"src":"26478:46:64","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":45513,"nodeType":"UserDefinedTypeName","pathNode":{"id":45512,"name":"StakingChangeRequest","nameLocations":["26478:20:64"],"nodeType":"IdentifierPath","referencedDeclaration":48593,"src":"26478:20:64"},"referencedDeclaration":48593,"src":"26478:20:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$48593_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":45514,"nodeType":"ArrayTypeName","src":"26478:22:64","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$48593_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26422:108:64"},"returnParameters":{"id":45517,"nodeType":"ParameterList","parameters":[],"src":"26540:0:64"},"scope":45728,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45727,"nodeType":"FunctionDefinition","src":"26883:1594:64","nodes":[],"body":{"id":45726,"nodeType":"Block","src":"26981:1496:64","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45558,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"26995:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":45559,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27018:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27023:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27018:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27031:23:64","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"27018:36:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26995:59:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45567,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"27126:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":45568,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27148:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45569,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27153:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27148:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27161:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"27148:37:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27126:59:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45574,"nodeType":"IfStatement","src":"27122:96:64","trueBody":{"id":45573,"nodeType":"Block","src":"27187:31:64","statements":[{"functionReturnParameters":45557,"id":45572,"nodeType":"Return","src":"27201:7:64"}]}},"id":45575,"nodeType":"IfStatement","src":"26991:227:64","trueBody":{"id":45566,"nodeType":"Block","src":"27056:60:64","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45563,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36940,"src":"27077:26:64","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27077:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45565,"nodeType":"RevertStatement","src":"27070:35:64"}]}},{"assignments":[45577],"declarations":[{"constant":false,"id":45577,"mutability":"mutable","name":"start","nameLocation":"27235:5:64","nodeType":"VariableDeclaration","scope":45726,"src":"27228:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45576,"name":"uint64","nodeType":"ElementaryTypeName","src":"27228:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45581,"initialValue":{"expression":{"expression":{"id":45578,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27243:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27248:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27243:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27256:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"27243:37:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27228:52:64"},{"body":{"id":45714,"nodeType":"Block","src":"27342:1056:64","statements":[{"assignments":[45591],"declarations":[{"constant":false,"id":45591,"mutability":"mutable","name":"change","nameLocation":"27378:6:64","nodeType":"VariableDeclaration","scope":45714,"src":"27356:28:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45590,"nodeType":"UserDefinedTypeName","pathNode":{"id":45589,"name":"StakingChange","nameLocations":["27356:13:64"],"nodeType":"IdentifierPath","referencedDeclaration":48587,"src":"27356:13:64"},"referencedDeclaration":48587,"src":"27356:13:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":45597,"initialValue":{"arguments":[{"id":45595,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"27410:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":45592,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27387:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27392:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"27387:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27400:9:64","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":45950,"src":"27387:22:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$48587_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":45596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27387:25:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27356:56:64"},{"assignments":[45599],"declarations":[{"constant":false,"id":45599,"mutability":"mutable","name":"validator","nameLocation":"27434:9:64","nodeType":"VariableDeclaration","scope":45714,"src":"27426:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45598,"name":"address","nodeType":"ElementaryTypeName","src":"27426:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":45602,"initialValue":{"expression":{"id":45600,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27446:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27453:9:64","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":48586,"src":"27446:16:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27426:36:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45603,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27481:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45604,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27488:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"27481:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45605,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"27494:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27511:11:64","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":48577,"src":"27494:28:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"27481:41:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45621,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27630:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27637:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"27630:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45623,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"27643:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27660:17:64","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":48578,"src":"27643:34:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"27630:47:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45699,"nodeType":"Block","src":"27951:336:64","statements":[{"assignments":[45663],"declarations":[{"constant":false,"id":45663,"mutability":"mutable","name":"amount","nameLocation":"27977:6:64","nodeType":"VariableDeclaration","scope":45699,"src":"27969:14:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45662,"name":"uint256","nodeType":"ElementaryTypeName","src":"27969:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45672,"initialValue":{"arguments":[{"expression":{"id":45666,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27997:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28004:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"27997:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28014:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45668,"name":"uint256","nodeType":"ElementaryTypeName","src":"28014:7:64","typeDescriptions":{}}}],"id":45670,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28013:9:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":45664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27986:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27990:6:64","memberName":"decode","nodeType":"MemberAccess","src":"27986:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27986:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27969:54:64"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"id":45677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":45673,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"28046:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28053:2:64","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":48582,"src":"28046:9:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":45675,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"28059:16:64","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28076:8:64","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":48576,"src":"28059:25:64","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"src":"28046:38:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":45697,"nodeType":"Block","src":"28183:90:64","statements":[{"expression":{"arguments":[{"id":45693,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"28236:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45694,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45663,"src":"28247:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45688,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28205:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28210:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"28205:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28221:14:64","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44151,"src":"28205:30:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28205:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45696,"nodeType":"ExpressionStatement","src":"28205:49:64"}]},"id":45698,"nodeType":"IfStatement","src":"28042:231:64","trueBody":{"id":45687,"nodeType":"Block","src":"28086:91:64","statements":[{"expression":{"arguments":[{"id":45683,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"28140:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45684,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45663,"src":"28151:6:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45678,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28108:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28113:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"28108:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28124:15:64","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44217,"src":"28108:31:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28108:50:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45686,"nodeType":"ExpressionStatement","src":"28108:50:64"}]}}]},"id":45700,"nodeType":"IfStatement","src":"27626:661:64","trueBody":{"id":45661,"nodeType":"Block","src":"27679:266:64","statements":[{"assignments":[45627,45629],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"metadata","nameLocation":"27711:8:64","nodeType":"VariableDeclaration","scope":45661,"src":"27698:21:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45626,"name":"bytes","nodeType":"ElementaryTypeName","src":"27698:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45629,"mutability":"mutable","name":"power","nameLocation":"27729:5:64","nodeType":"VariableDeclaration","scope":45661,"src":"27721:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45628,"name":"uint256","nodeType":"ElementaryTypeName","src":"27721:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45640,"initialValue":{"arguments":[{"expression":{"id":45632,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27749:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27756:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"27749:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":45635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27766:5:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":45634,"name":"bytes","nodeType":"ElementaryTypeName","src":"27766:5:64","typeDescriptions":{}}},{"id":45637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27773:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":45636,"name":"uint256","nodeType":"ElementaryTypeName","src":"27773:7:64","typeDescriptions":{}}}],"id":45638,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27765:16:64","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":45630,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27738:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27742:6:64","memberName":"decode","nodeType":"MemberAccess","src":"27738:10:64","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":45639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27738:44:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"27697:85:64"},{"expression":{"id":45650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45641,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27800:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27805:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"27800:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27816:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"27800:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45647,"indexExpression":{"id":45644,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"27827:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27800:37:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"27838:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"27800:46:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":45649,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45627,"src":"27849:8:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"27800:57:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45651,"nodeType":"ExpressionStatement","src":"27800:57:64"},{"expression":{"arguments":[{"id":45657,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"27913:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45658,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45629,"src":"27924:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45652,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27875:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45655,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27880:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"27875:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27891:21:64","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44109,"src":"27875:37:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27875:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45660,"nodeType":"ExpressionStatement","src":"27875:55:64"}]}},"id":45701,"nodeType":"IfStatement","src":"27477:810:64","trueBody":{"id":45620,"nodeType":"Block","src":"27524:96:64","statements":[{"expression":{"id":45618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":45608,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"27542:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27547:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48676,"src":"27542:15:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":45613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27558:10:64","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"27542:26:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45614,"indexExpression":{"id":45611,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45599,"src":"27569:9:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27542:37:64","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"27580:8:64","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":48643,"src":"27542:46:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45616,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45591,"src":"27591:6:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":45617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27598:7:64","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":48584,"src":"27591:14:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"27542:63:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":45619,"nodeType":"ExpressionStatement","src":"27542:63:64"}]}},{"expression":{"arguments":[{"id":45707,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"28326:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":45702,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28301:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28306:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"28301:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28314:11:64","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":45965,"src":"28301:24:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$48606_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":45708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28301:27:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45709,"nodeType":"ExpressionStatement","src":"28301:27:64"},{"id":45713,"nodeType":"UncheckedBlock","src":"28342:46:64","statements":[{"expression":{"id":45711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28370:3:64","subExpression":{"id":45710,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"28372:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45712,"nodeType":"ExpressionStatement","src":"28370:3:64"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45586,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45583,"src":"27314:1:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":45587,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"27319:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27314:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45715,"initializationExpression":{"assignments":[45583],"declarations":[{"constant":false,"id":45583,"mutability":"mutable","name":"i","nameLocation":"27303:1:64","nodeType":"VariableDeclaration","scope":45715,"src":"27296:8:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45582,"name":"uint64","nodeType":"ElementaryTypeName","src":"27296:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45585,"initialValue":{"id":45584,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45577,"src":"27307:5:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27296:16:64"},"nodeType":"ForStatement","src":"27291:1107:64"},{"expression":{"id":45724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":45716,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45553,"src":"28407:4:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":45719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28412:7:64","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48679,"src":"28407:12:64","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28420:24:64","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"28407:37:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45721,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45555,"src":"28447:19:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":45722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28469:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28447:23:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28407:63:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45725,"nodeType":"ExpressionStatement","src":"28407:63:64"}]},"documentation":{"id":45550,"nodeType":"StructuredDocumentation","src":"26818:60:64","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"26892:13:64","parameters":{"id":45556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45553,"mutability":"mutable","name":"self","nameLocation":"26938:4:64","nodeType":"VariableDeclaration","scope":45727,"src":"26906:36:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":45552,"nodeType":"UserDefinedTypeName","pathNode":{"id":45551,"name":"ParentValidatorsTracker","nameLocations":["26906:23:64"],"nodeType":"IdentifierPath","referencedDeclaration":48680,"src":"26906:23:64"},"referencedDeclaration":48680,"src":"26906:23:64","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$48680_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":45555,"mutability":"mutable","name":"configurationNumber","nameLocation":"26951:19:64","nodeType":"VariableDeclaration","scope":45727,"src":"26944:26:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45554,"name":"uint64","nodeType":"ElementaryTypeName","src":"26944:6:64","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"26905:66:64"},"returnParameters":{"id":45557,"nodeType":"ParameterList","parameters":[],"src":"26981:0:64"},"scope":45728,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":45465,"nodeType":"StructuredDocumentation","src":"25629:155:64","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[45728],"name":"LibValidatorTracking","nameLocation":"25792:20:64","scope":45729,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":64} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220bf1e240d4888afe6d7867a6cdfbd2db53acd6684842a79b34c7f1d0451b24a4564736f6c63430008130033","sourceMap":"26280:2695:69:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220bf1e240d4888afe6d7867a6cdfbd2db53acd6684842a79b34c7f1d0451b24a4564736f6c63430008130033","sourceMap":"26280:2695:69:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The library for tracking validator changes coming from the parent. Should be used in the child gateway to store changes until they can be applied.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStaking.sol\":\"LibValidatorTracking\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStaking.sol":"LibValidatorTracking"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStaking.sol","id":46441,"exportedSymbols":{"Address":[32838],"AddressShouldBeValidator":[37368],"AddressStakingReleases":[50140],"CannotConfirmFutureChanges":[37372],"IGateway":[40354],"InvalidConfigurationNumber":[37418],"LibAddressStakingReleases":[44183],"LibMaxPQ":[49016],"LibMinPQ":[49635],"LibStaking":[46176],"LibStakingChangeLog":[46678],"LibStakingReleaseQueue":[44302],"LibSubnetActorStorage":[47292],"LibValidatorSet":[45293],"LibValidatorTracking":[46440],"MaxPQ":[48411],"MinPQ":[49029],"NoCollateralToWithdraw":[37448],"NoRewardToWithdraw":[37450],"NotValidator":[37490],"ParentValidatorsTracker":[50197],"PermissionMode":[50165],"StakingChange":[50104],"StakingChangeLog":[50123],"StakingChangeRequest":[50110],"StakingOperation":[50096],"StakingRelease":[50130],"StakingReleaseQueue":[50150],"SubnetActorStorage":[47281],"Validator":[50211],"ValidatorSet":[50190],"WithdrawExceedingCollateral":[37510]},"nodeType":"SourceUnit","src":"46:28930:69","nodes":[{"id":44015,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":44017,"nodeType":"ImportDirective","src":"71:52:69","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":44016,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44020,"nodeType":"ImportDirective","src":"124:86:69","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":44018,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"132:21:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44019,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"155:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44023,"nodeType":"ImportDirective","src":"211:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"./priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49017,"symbolAliases":[{"foreign":{"id":44021,"name":"LibMaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49016,"src":"219:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44022,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48411,"src":"229:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44026,"nodeType":"ImportDirective","src":"268:56:69","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"./priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":49636,"symbolAliases":[{"foreign":{"id":44024,"name":"LibMinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49635,"src":"276:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44025,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49029,"src":"286:5:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44028,"nodeType":"ImportDirective","src":"325:62:69","nodes":[],"absolutePath":"src/lib/LibStakingChangeLog.sol","file":"./LibStakingChangeLog.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":46679,"symbolAliases":[{"foreign":{"id":44027,"name":"LibStakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46678,"src":"333:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44040,"nodeType":"ImportDirective","src":"388:237:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":44029,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"396:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44030,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"412:19:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44031,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"433:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44032,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50104,"src":"451:13:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44033,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50110,"src":"466:20:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44034,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"488:16:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44035,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"506:14:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44036,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"522:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44037,"name":"AddressStakingReleases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50140,"src":"536:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44038,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"560:23:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44039,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"585:9:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44048,"nodeType":"ImportDirective","src":"626:208:69","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":44041,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"634:18:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44042,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"654:27:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44043,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"683:12:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44044,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"697:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44045,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"725:22:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44046,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"749:24:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":44047,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"775:26:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44050,"nodeType":"ImportDirective","src":"835:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":46441,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":44049,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"843:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44183,"nodeType":"ContractDefinition","src":"902:1635:69","nodes":[{"id":44089,"nodeType":"FunctionDefinition","src":"1118:261:69","nodes":[],"body":{"id":44088,"nodeType":"Block","src":"1209:170:69","nodes":[],"statements":[{"assignments":[44061],"declarations":[{"constant":false,"id":44061,"mutability":"mutable","name":"length","nameLocation":"1226:6:69","nodeType":"VariableDeclaration","scope":44088,"src":"1219:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44060,"name":"uint16","nodeType":"ElementaryTypeName","src":"1219:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44064,"initialValue":{"expression":{"id":44062,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1235:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1219:27:69"},{"assignments":[44066],"declarations":[{"constant":false,"id":44066,"mutability":"mutable","name":"nextIdx","nameLocation":"1263:7:69","nodeType":"VariableDeclaration","scope":44088,"src":"1256:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44065,"name":"uint16","nodeType":"ElementaryTypeName","src":"1256:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44071,"initialValue":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44067,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1273:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1278:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1273:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44069,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1289:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1273:22:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1256:39:69"},{"expression":{"id":44078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":44072,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1306:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1311:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"1306:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44076,"indexExpression":{"id":44074,"name":"nextIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44066,"src":"1320:7:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1306:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44077,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44057,"src":"1331:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"src":"1306:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"id":44079,"nodeType":"ExpressionStatement","src":"1306:32:69"},{"expression":{"id":44086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44080,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44054,"src":"1348:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1353:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1348:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44083,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44061,"src":"1362:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":44084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1362:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1348:24:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44087,"nodeType":"ExpressionStatement","src":"1348:24:69"}]},"documentation":{"id":44051,"nodeType":"StructuredDocumentation","src":"942:171:69","text":"@notice Add new release to the storage. Caller makes sure the release.releasedAt is ordered\n @notice in ascending order. This method does not do checks on this."},"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"1127:4:69","parameters":{"id":44058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44054,"mutability":"mutable","name":"self","nameLocation":"1163:4:69","nodeType":"VariableDeclaration","scope":44089,"src":"1132:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44053,"nodeType":"UserDefinedTypeName","pathNode":{"id":44052,"name":"AddressStakingReleases","nameLocations":["1132:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1132:22:69"},"referencedDeclaration":50140,"src":"1132:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"},{"constant":false,"id":44057,"mutability":"mutable","name":"release","nameLocation":"1191:7:69","nodeType":"VariableDeclaration","scope":44089,"src":"1169:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44056,"nodeType":"UserDefinedTypeName","pathNode":{"id":44055,"name":"StakingRelease","nameLocations":["1169:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1169:14:69"},"referencedDeclaration":50130,"src":"1169:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"src":"1131:68:69"},"returnParameters":{"id":44059,"nodeType":"ParameterList","parameters":[],"src":"1209:0:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44182,"nodeType":"FunctionDefinition","src":"1637:898:69","nodes":[],"body":{"id":44181,"nodeType":"Block","src":"1726:809:69","nodes":[],"statements":[{"assignments":[44101],"declarations":[{"constant":false,"id":44101,"mutability":"mutable","name":"length","nameLocation":"1743:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1736:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44100,"name":"uint16","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44104,"initialValue":{"expression":{"id":44102,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1752:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1752:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1736:27:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1777:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"1777:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44113,"nodeType":"IfStatement","src":"1773:78:69","trueBody":{"id":44112,"nodeType":"Block","src":"1795:56:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44109,"name":"NoCollateralToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37448,"src":"1816:22:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44111,"nodeType":"RevertStatement","src":"1809:31:69"}]}},{"assignments":[44115],"declarations":[{"constant":false,"id":44115,"mutability":"mutable","name":"i","nameLocation":"1868:1:69","nodeType":"VariableDeclaration","scope":44181,"src":"1861:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44114,"name":"uint16","nodeType":"ElementaryTypeName","src":"1861:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44118,"initialValue":{"expression":{"id":44116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"1872:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1877:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"1872:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1861:24:69"},{"assignments":[44120],"declarations":[{"constant":false,"id":44120,"mutability":"mutable","name":"newLength","nameLocation":"1902:9:69","nodeType":"VariableDeclaration","scope":44181,"src":"1895:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44119,"name":"uint16","nodeType":"ElementaryTypeName","src":"1895:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44122,"initialValue":{"id":44121,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1914:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"1895:25:69"},{"assignments":[44124],"declarations":[{"constant":false,"id":44124,"mutability":"mutable","name":"amount","nameLocation":"1938:6:69","nodeType":"VariableDeclaration","scope":44181,"src":"1930:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44125,"nodeType":"VariableDeclarationStatement","src":"1930:14:69"},{"body":{"id":44163,"nodeType":"Block","src":"1973:458:69","statements":[{"assignments":[44131],"declarations":[{"constant":false,"id":44131,"mutability":"mutable","name":"release","nameLocation":"2009:7:69","nodeType":"VariableDeclaration","scope":44163,"src":"1987:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44130,"nodeType":"UserDefinedTypeName","pathNode":{"id":44129,"name":"StakingRelease","nameLocations":["1987:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1987:14:69"},"referencedDeclaration":50130,"src":"1987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44136,"initialValue":{"baseExpression":{"expression":{"id":44132,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2019:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2024:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2019:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44135,"indexExpression":{"id":44134,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2033:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1987:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44137,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2184:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2192:9:69","memberName":"releaseAt","nodeType":"MemberAccess","referencedDeclaration":50126,"src":"2184:17:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":44139,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2204:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:69","memberName":"number","nodeType":"MemberAccess","src":"2204:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2184:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44144,"nodeType":"IfStatement","src":"2180:76:69","trueBody":{"id":44143,"nodeType":"Block","src":"2218:38:69","statements":[{"id":44142,"nodeType":"Break","src":"2236:5:69"}]}},{"expression":{"id":44148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44145,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":44146,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44131,"src":"2280:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"id":44147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2288:6:69","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":50129,"src":"2280:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2270:24:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44149,"nodeType":"ExpressionStatement","src":"2270:24:69"},{"expression":{"id":44154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2308:23:69","subExpression":{"baseExpression":{"expression":{"id":44150,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2315:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2320:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50139,"src":"2315:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease storage ref)"}},"id":44153,"indexExpression":{"id":44152,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2329:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2315:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage","typeString":"struct StakingRelease storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44155,"nodeType":"ExpressionStatement","src":"2308:23:69"},{"id":44162,"nodeType":"UncheckedBlock","src":"2346:75:69","statements":[{"expression":{"id":44157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2374:3:69","subExpression":{"id":44156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2376:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44158,"nodeType":"ExpressionStatement","src":"2374:3:69"},{"expression":{"id":44160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2395:11:69","subExpression":{"id":44159,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2397:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44161,"nodeType":"ExpressionStatement","src":"2395:11:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44126,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"1961:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44127,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44101,"src":"1965:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"1961:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44164,"nodeType":"WhileStatement","src":"1954:477:69"},{"expression":{"id":44169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44165,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2441:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2446:8:69","memberName":"startIdx","nodeType":"MemberAccess","referencedDeclaration":50134,"src":"2441:13:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44168,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44115,"src":"2457:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2441:17:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44170,"nodeType":"ExpressionStatement","src":"2441:17:69"},{"expression":{"id":44175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44171,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44093,"src":"2468:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases storage pointer"}},"id":44173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2473:6:69","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":50132,"src":"2468:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44174,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2482:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2468:23:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44176,"nodeType":"ExpressionStatement","src":"2468:23:69"},{"expression":{"components":[{"id":44177,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44124,"src":"2510:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44178,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44120,"src":"2518:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"id":44179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2509:19:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"functionReturnParameters":44099,"id":44180,"nodeType":"Return","src":"2502:26:69"}]},"documentation":{"id":44090,"nodeType":"StructuredDocumentation","src":"1385:247:69","text":"@notice Perform compaction on releases, i.e. aggregates the amount that can be released\n @notice and removes them from storage. Returns the total amount to release and the new\n @notice number of pending releases after compaction."},"implemented":true,"kind":"function","modifiers":[],"name":"compact","nameLocation":"1646:7:69","parameters":{"id":44094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44093,"mutability":"mutable","name":"self","nameLocation":"1685:4:69","nodeType":"VariableDeclaration","scope":44182,"src":"1654:35:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"},"typeName":{"id":44092,"nodeType":"UserDefinedTypeName","pathNode":{"id":44091,"name":"AddressStakingReleases","nameLocations":["1654:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"1654:22:69"},"referencedDeclaration":50140,"src":"1654:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}},"visibility":"internal"}],"src":"1653:37:69"},"returnParameters":{"id":44099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1709:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44095,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44182,"src":"1718:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44097,"name":"uint16","nodeType":"ElementaryTypeName","src":"1718:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1708:17:69"},"scope":44183,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibAddressStakingReleases","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[44183],"name":"LibAddressStakingReleases","nameLocation":"910:25:69","scope":46441,"usedErrors":[]},{"id":44302,"nodeType":"ContractDefinition","src":"2586:1272:69","nodes":[{"id":44187,"nodeType":"UsingForDirective","src":"2623:34:69","nodes":[],"global":false,"libraryName":{"id":44185,"name":"Address","nameLocations":["2629:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"2629:7:69"},"typeName":{"id":44186,"name":"address","nodeType":"ElementaryTypeName","src":"2641:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":44191,"nodeType":"UsingForDirective","src":"2662:59:69","nodes":[],"global":false,"libraryName":{"id":44188,"name":"LibAddressStakingReleases","nameLocations":["2668:25:69"],"nodeType":"IdentifierPath","referencedDeclaration":44183,"src":"2668:25:69"},"typeName":{"id":44190,"nodeType":"UserDefinedTypeName","pathNode":{"id":44189,"name":"AddressStakingReleases","nameLocations":["2698:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"2698:22:69"},"referencedDeclaration":50140,"src":"2698:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}}},{"id":44199,"nodeType":"EventDefinition","src":"2727:84:69","nodes":[],"anonymous":false,"eventSelector":"083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a63","name":"NewCollateralRelease","nameLocation":"2733:20:69","parameters":{"id":44198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44193,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"2762:9:69","nodeType":"VariableDeclaration","scope":44199,"src":"2754:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44192,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44195,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2781:6:69","nodeType":"VariableDeclaration","scope":44199,"src":"2773:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44194,"name":"uint256","nodeType":"ElementaryTypeName","src":"2773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44197,"indexed":false,"mutability":"mutable","name":"releaseBlock","nameLocation":"2797:12:69","nodeType":"VariableDeclaration","scope":44199,"src":"2789:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2753:57:69"}},{"id":44214,"nodeType":"FunctionDefinition","src":"2817:130:69","nodes":[],"body":{"id":44213,"nodeType":"Block","src":"2901:46:69","nodes":[],"statements":[{"expression":{"id":44211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44207,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44202,"src":"2911:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2916:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"2911:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44210,"name":"blocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44204,"src":"2934:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44212,"nodeType":"ExpressionStatement","src":"2911:29:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLockDuration","nameLocation":"2826:15:69","parameters":{"id":44205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44202,"mutability":"mutable","name":"self","nameLocation":"2870:4:69","nodeType":"VariableDeclaration","scope":44214,"src":"2842:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44201,"nodeType":"UserDefinedTypeName","pathNode":{"id":44200,"name":"StakingReleaseQueue","nameLocations":["2842:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2842:19:69"},"referencedDeclaration":50150,"src":"2842:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44204,"mutability":"mutable","name":"blocks","nameLocation":"2884:6:69","nodeType":"VariableDeclaration","scope":44214,"src":"2876:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44203,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:50:69"},"returnParameters":{"id":44206,"nodeType":"ParameterList","parameters":[],"src":"2901:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44257,"nodeType":"FunctionDefinition","src":"3016:419:69","nodes":[],"body":{"id":44256,"nodeType":"Block","src":"3117:318:69","nodes":[],"statements":[{"assignments":[44226],"declarations":[{"constant":false,"id":44226,"mutability":"mutable","name":"releaseAt","nameLocation":"3135:9:69","nodeType":"VariableDeclaration","scope":44256,"src":"3127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44225,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44232,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44227,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3147:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":44228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3153:6:69","memberName":"number","nodeType":"MemberAccess","src":"3147:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":44229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3162:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3167:15:69","memberName":"lockingDuration","nodeType":"MemberAccess","referencedDeclaration":50143,"src":"3162:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3147:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3127:55:69"},{"assignments":[44235],"declarations":[{"constant":false,"id":44235,"mutability":"mutable","name":"release","nameLocation":"3214:7:69","nodeType":"VariableDeclaration","scope":44256,"src":"3192:29:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease"},"typeName":{"id":44234,"nodeType":"UserDefinedTypeName","pathNode":{"id":44233,"name":"StakingRelease","nameLocations":["3192:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"3192:14:69"},"referencedDeclaration":50130,"src":"3192:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}},"visibility":"internal"}],"id":44240,"initialValue":{"arguments":[{"id":44237,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3251:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44238,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3270:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44236,"name":"StakingRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50130,"src":"3224:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingRelease_$50130_storage_ptr_$","typeString":"type(struct StakingRelease storage pointer)"}},"id":44239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3240:9:69","3262:6:69"],"names":["releaseAt","amount"],"nodeType":"FunctionCall","src":"3224:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}},"nodeType":"VariableDeclarationStatement","src":"3192:86:69"},{"expression":{"arguments":[{"id":44247,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44235,"src":"3319:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingRelease_$50130_memory_ptr","typeString":"struct StakingRelease memory"}],"expression":{"baseExpression":{"expression":{"id":44241,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"3289:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3294:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3289:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44245,"indexExpression":{"id":44243,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3303:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3314:4:69","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":44089,"src":"3289:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$_t_struct$_StakingRelease_$50130_memory_ptr_$returns$__$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer,struct StakingRelease memory)"}},"id":44248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44249,"nodeType":"ExpressionStatement","src":"3289:38:69"},{"eventCall":{"arguments":[{"id":44251,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44220,"src":"3376:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44252,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44222,"src":"3395:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":44253,"name":"releaseAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44226,"src":"3417:9:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44250,"name":"NewCollateralRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44199,"src":"3343:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":44254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3365:9:69","3387:6:69","3403:12:69"],"names":["validator","amount","releaseBlock"],"nodeType":"FunctionCall","src":"3343:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44255,"nodeType":"EmitStatement","src":"3338:90:69"}]},"documentation":{"id":44215,"nodeType":"StructuredDocumentation","src":"2953:58:69","text":"@notice Set the amount and time for release collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"addNewRelease","nameLocation":"3025:13:69","parameters":{"id":44223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44218,"mutability":"mutable","name":"self","nameLocation":"3067:4:69","nodeType":"VariableDeclaration","scope":44257,"src":"3039:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44217,"nodeType":"UserDefinedTypeName","pathNode":{"id":44216,"name":"StakingReleaseQueue","nameLocations":["3039:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3039:19:69"},"referencedDeclaration":50150,"src":"3039:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44220,"mutability":"mutable","name":"validator","nameLocation":"3081:9:69","nodeType":"VariableDeclaration","scope":44257,"src":"3073:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44219,"name":"address","nodeType":"ElementaryTypeName","src":"3073:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44222,"mutability":"mutable","name":"amount","nameLocation":"3100:6:69","nodeType":"VariableDeclaration","scope":44257,"src":"3092:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44221,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3038:69:69"},"returnParameters":{"id":44224,"nodeType":"ParameterList","parameters":[],"src":"3117:0:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44301,"nodeType":"FunctionDefinition","src":"3516:340:69","nodes":[],"body":{"id":44300,"nodeType":"Block","src":"3611:245:69","nodes":[],"statements":[{"assignments":[44269,44271],"declarations":[{"constant":false,"id":44269,"mutability":"mutable","name":"amount","nameLocation":"3630:6:69","nodeType":"VariableDeclaration","scope":44300,"src":"3622:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44268,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44271,"mutability":"mutable","name":"newLength","nameLocation":"3645:9:69","nodeType":"VariableDeclaration","scope":44300,"src":"3638:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44270,"name":"uint16","nodeType":"ElementaryTypeName","src":"3638:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44278,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":44272,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3658:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3663:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3658:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44275,"indexExpression":{"id":44274,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3672:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3658:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"id":44276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:7:69","memberName":"compact","nodeType":"MemberAccess","referencedDeclaration":44182,"src":"3658:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$returns$_t_uint256_$_t_uint16_$attached_to$_t_struct$_AddressStakingReleases_$50140_storage_ptr_$","typeString":"function (struct AddressStakingReleases storage pointer) returns (uint256,uint16)"}},"id":44277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3658:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint16_$","typeString":"tuple(uint256,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"3621:71:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44279,"name":"newLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44271,"src":"3707:9:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3707:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44289,"nodeType":"IfStatement","src":"3703:76:69","trueBody":{"id":44288,"nodeType":"Block","src":"3723:56:69","statements":[{"expression":{"id":44286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3737:31:69","subExpression":{"baseExpression":{"expression":{"id":44282,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44261,"src":"3744:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue storage pointer"}},"id":44283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3749:8:69","memberName":"releases","nodeType":"MemberAccess","referencedDeclaration":50149,"src":"3744:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases storage ref)"}},"id":44285,"indexExpression":{"id":44284,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3758:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3744:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage","typeString":"struct AddressStakingReleases storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44287,"nodeType":"ExpressionStatement","src":"3737:31:69"}]}},{"expression":{"arguments":[{"id":44295,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":44292,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44263,"src":"3797:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3789:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":44290,"name":"address","nodeType":"ElementaryTypeName","src":"3789:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":44293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":44294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"3789:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":44296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44297,"nodeType":"ExpressionStatement","src":"3789:36:69"},{"expression":{"id":44298,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44269,"src":"3843:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":44267,"id":44299,"nodeType":"Return","src":"3836:13:69"}]},"documentation":{"id":44258,"nodeType":"StructuredDocumentation","src":"3441:70:69","text":"@notice Validator claim the available collateral that are released"},"implemented":true,"kind":"function","modifiers":[],"name":"claim","nameLocation":"3525:5:69","parameters":{"id":44264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44261,"mutability":"mutable","name":"self","nameLocation":"3559:4:69","nodeType":"VariableDeclaration","scope":44301,"src":"3531:32:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":44260,"nodeType":"UserDefinedTypeName","pathNode":{"id":44259,"name":"StakingReleaseQueue","nameLocations":["3531:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"3531:19:69"},"referencedDeclaration":50150,"src":"3531:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":44263,"mutability":"mutable","name":"validator","nameLocation":"3573:9:69","nodeType":"VariableDeclaration","scope":44301,"src":"3565:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44262,"name":"address","nodeType":"ElementaryTypeName","src":"3565:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3530:53:69"},"returnParameters":{"id":44267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44301,"src":"3602:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44265,"name":"uint256","nodeType":"ElementaryTypeName","src":"3602:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3601:9:69"},"scope":44302,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingReleaseQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":44184,"nodeType":"StructuredDocumentation","src":"2539:47:69","text":"The util library for `StakingReleaseQueue`"},"fullyImplemented":true,"linearizedBaseContracts":[44302],"name":"LibStakingReleaseQueue","nameLocation":"2594:22:69","scope":46441,"usedErrors":[]},{"id":45293,"nodeType":"ContractDefinition","src":"3900:11436:69","nodes":[{"id":44307,"nodeType":"UsingForDirective","src":"3930:25:69","nodes":[],"global":false,"libraryName":{"id":44304,"name":"LibMinPQ","nameLocations":["3936:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"3936:8:69"},"typeName":{"id":44306,"nodeType":"UserDefinedTypeName","pathNode":{"id":44305,"name":"MinPQ","nameLocations":["3949:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"3949:5:69"},"referencedDeclaration":49029,"src":"3949:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":44311,"nodeType":"UsingForDirective","src":"3960:25:69","nodes":[],"global":false,"libraryName":{"id":44308,"name":"LibMaxPQ","nameLocations":["3966:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"3966:8:69"},"typeName":{"id":44310,"nodeType":"UserDefinedTypeName","pathNode":{"id":44309,"name":"MaxPQ","nameLocations":["3979:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"3979:5:69"},"referencedDeclaration":48411,"src":"3979:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":44317,"nodeType":"EventDefinition","src":"3991:76:69","nodes":[],"anonymous":false,"eventSelector":"143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197","name":"ActiveValidatorCollateralUpdated","nameLocation":"3997:32:69","parameters":{"id":44316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44313,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4038:9:69","nodeType":"VariableDeclaration","scope":44317,"src":"4030:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44312,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44315,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4057:8:69","nodeType":"VariableDeclaration","scope":44317,"src":"4049:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44314,"name":"uint256","nodeType":"ElementaryTypeName","src":"4049:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:37:69"}},{"id":44323,"nodeType":"EventDefinition","src":"4072:77:69","nodes":[],"anonymous":false,"eventSelector":"da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd","name":"WaitingValidatorCollateralUpdated","nameLocation":"4078:33:69","parameters":{"id":44322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44319,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4120:9:69","nodeType":"VariableDeclaration","scope":44323,"src":"4112:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44318,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44321,"indexed":false,"mutability":"mutable","name":"newPower","nameLocation":"4139:8:69","nodeType":"VariableDeclaration","scope":44323,"src":"4131:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44320,"name":"uint256","nodeType":"ElementaryTypeName","src":"4131:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:37:69"}},{"id":44329,"nodeType":"EventDefinition","src":"4154:59:69","nodes":[],"anonymous":false,"eventSelector":"2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd","name":"NewActiveValidator","nameLocation":"4160:18:69","parameters":{"id":44328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4187:9:69","nodeType":"VariableDeclaration","scope":44329,"src":"4179:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44324,"name":"address","nodeType":"ElementaryTypeName","src":"4179:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44327,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4206:5:69","nodeType":"VariableDeclaration","scope":44329,"src":"4198:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44326,"name":"uint256","nodeType":"ElementaryTypeName","src":"4198:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4178:34:69"}},{"id":44335,"nodeType":"EventDefinition","src":"4218:60:69","nodes":[],"anonymous":false,"eventSelector":"19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264","name":"NewWaitingValidator","nameLocation":"4224:19:69","parameters":{"id":44334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44331,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4252:9:69","nodeType":"VariableDeclaration","scope":44335,"src":"4244:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44330,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44333,"indexed":false,"mutability":"mutable","name":"power","nameLocation":"4271:5:69","nodeType":"VariableDeclaration","scope":44335,"src":"4263:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44332,"name":"uint256","nodeType":"ElementaryTypeName","src":"4263:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4243:34:69"}},{"id":44341,"nodeType":"EventDefinition","src":"4283:74:69","nodes":[],"anonymous":false,"eventSelector":"faeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75","name":"ActiveValidatorReplaced","nameLocation":"4289:23:69","parameters":{"id":44340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44337,"indexed":false,"mutability":"mutable","name":"oldValidator","nameLocation":"4321:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4313:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44336,"name":"address","nodeType":"ElementaryTypeName","src":"4313:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44339,"indexed":false,"mutability":"mutable","name":"newValidator","nameLocation":"4343:12:69","nodeType":"VariableDeclaration","scope":44341,"src":"4335:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44338,"name":"address","nodeType":"ElementaryTypeName","src":"4335:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4312:44:69"}},{"id":44345,"nodeType":"EventDefinition","src":"4362:45:69","nodes":[],"anonymous":false,"eventSelector":"4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b","name":"ActiveValidatorLeft","nameLocation":"4368:19:69","parameters":{"id":44344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44343,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4396:9:69","nodeType":"VariableDeclaration","scope":44345,"src":"4388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44342,"name":"address","nodeType":"ElementaryTypeName","src":"4388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4387:19:69"}},{"id":44349,"nodeType":"EventDefinition","src":"4412:46:69","nodes":[],"anonymous":false,"eventSelector":"3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b","name":"WaitingValidatorLeft","nameLocation":"4418:20:69","parameters":{"id":44348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44347,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"4447:9:69","nodeType":"VariableDeclaration","scope":44349,"src":"4439:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44346,"name":"address","nodeType":"ElementaryTypeName","src":"4439:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4438:19:69"}},{"id":44385,"nodeType":"FunctionDefinition","src":"4525:375:69","nodes":[],"body":{"id":44384,"nodeType":"Block","src":"4654:246:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":44364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":44360,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4668:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4679:14:69","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"4668:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":44362,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"4697:14:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":44363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4712:9:69","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"4697:24:69","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"4668:53:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44382,"nodeType":"Block","src":"4809:85:69","statements":[{"expression":{"id":44380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44374,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4823:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44375,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4831:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4842:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4831:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44378,"indexExpression":{"id":44377,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4853:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4831:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4864:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"4831:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4823:60:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44381,"nodeType":"ExpressionStatement","src":"4823:60:69"}]},"id":44383,"nodeType":"IfStatement","src":"4664:230:69","trueBody":{"id":44373,"nodeType":"Block","src":"4723:80:69","statements":[{"expression":{"id":44371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44365,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44358,"src":"4737:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44366,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44353,"src":"4745:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4756:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"4745:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44369,"indexExpression":{"id":44368,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44355,"src":"4767:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4745:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4778:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"4745:47:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44372,"nodeType":"ExpressionStatement","src":"4737:55:69"}]}}]},"documentation":{"id":44350,"nodeType":"StructuredDocumentation","src":"4464:56:69","text":"@notice Get the total voting power for the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4534:8:69","parameters":{"id":44356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44353,"mutability":"mutable","name":"validators","nameLocation":"4573:10:69","nodeType":"VariableDeclaration","scope":44385,"src":"4552:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44352,"nodeType":"UserDefinedTypeName","pathNode":{"id":44351,"name":"ValidatorSet","nameLocations":["4552:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4552:12:69"},"referencedDeclaration":50190,"src":"4552:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44355,"mutability":"mutable","name":"validator","nameLocation":"4601:9:69","nodeType":"VariableDeclaration","scope":44385,"src":"4593:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44354,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4542:74:69"},"returnParameters":{"id":44359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44358,"mutability":"mutable","name":"power","nameLocation":"4647:5:69","nodeType":"VariableDeclaration","scope":44385,"src":"4639:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44357,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:15:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44400,"nodeType":"FunctionDefinition","src":"4976:178:69","nodes":[],"body":{"id":44399,"nodeType":"Block","src":"5089:65:69","nodes":[],"statements":[{"expression":{"id":44397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44394,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44392,"src":"5099:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":44395,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44389,"src":"5112:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5123:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"5112:35:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44398,"nodeType":"ExpressionStatement","src":"5099:48:69"}]},"documentation":{"id":44386,"nodeType":"StructuredDocumentation","src":"4906:65:69","text":"@notice Get the total confirmed collateral of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4985:27:69","parameters":{"id":44390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44389,"mutability":"mutable","name":"validators","nameLocation":"5034:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5013:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44388,"nodeType":"UserDefinedTypeName","pathNode":{"id":44387,"name":"ValidatorSet","nameLocations":["5013:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5013:12:69"},"referencedDeclaration":50190,"src":"5013:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5012:33:69"},"returnParameters":{"id":44393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44392,"mutability":"mutable","name":"collateral","nameLocation":"5077:10:69","nodeType":"VariableDeclaration","scope":44400,"src":"5069:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44391,"name":"uint256","nodeType":"ElementaryTypeName","src":"5069:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5068:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44417,"nodeType":"FunctionDefinition","src":"5209:163:69","nodes":[],"body":{"id":44416,"nodeType":"Block","src":"5310:62:69","nodes":[],"statements":[{"expression":{"id":44414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44409,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44407,"src":"5320:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44410,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44404,"src":"5328:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5339:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5328:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5356:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5328:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5320:45:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44415,"nodeType":"ExpressionStatement","src":"5320:45:69"}]},"documentation":{"id":44401,"nodeType":"StructuredDocumentation","src":"5160:44:69","text":"@notice Get the total active validators."},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"5218:21:69","parameters":{"id":44405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44404,"mutability":"mutable","name":"validators","nameLocation":"5261:10:69","nodeType":"VariableDeclaration","scope":44417,"src":"5240:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44403,"nodeType":"UserDefinedTypeName","pathNode":{"id":44402,"name":"ValidatorSet","nameLocations":["5240:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5240:12:69"},"referencedDeclaration":50190,"src":"5240:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5239:33:69"},"returnParameters":{"id":44408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44407,"mutability":"mutable","name":"total","nameLocation":"5303:5:69","nodeType":"VariableDeclaration","scope":44417,"src":"5296:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44406,"name":"uint16","nodeType":"ElementaryTypeName","src":"5296:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5295:14:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44437,"nodeType":"FunctionDefinition","src":"5441:231:69","nodes":[],"body":{"id":44436,"nodeType":"Block","src":"5590:82:69","nodes":[],"statements":[{"expression":{"id":44434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44428,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44426,"src":"5600:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"expression":{"id":44429,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44421,"src":"5613:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5624:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"5613:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44432,"indexExpression":{"id":44431,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44423,"src":"5635:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5613:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5646:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"5613:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5600:65:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44435,"nodeType":"ExpressionStatement","src":"5600:65:69"}]},"documentation":{"id":44418,"nodeType":"StructuredDocumentation","src":"5378:58:69","text":"@notice Get the confirmed collateral of the validator."},"implemented":true,"kind":"function","modifiers":[],"name":"getConfirmedCollateral","nameLocation":"5450:22:69","parameters":{"id":44424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44421,"mutability":"mutable","name":"validators","nameLocation":"5503:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5482:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44420,"nodeType":"UserDefinedTypeName","pathNode":{"id":44419,"name":"ValidatorSet","nameLocations":["5482:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5482:12:69"},"referencedDeclaration":50190,"src":"5482:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44423,"mutability":"mutable","name":"validator","nameLocation":"5531:9:69","nodeType":"VariableDeclaration","scope":44437,"src":"5523:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44422,"name":"address","nodeType":"ElementaryTypeName","src":"5523:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5472:74:69"},"returnParameters":{"id":44427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44426,"mutability":"mutable","name":"collateral","nameLocation":"5578:10:69","nodeType":"VariableDeclaration","scope":44437,"src":"5570:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44425,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5569:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44489,"nodeType":"FunctionDefinition","src":"5678:434:69","nodes":[],"body":{"id":44488,"nodeType":"Block","src":"5792:320:69","nodes":[],"statements":[{"assignments":[44447],"declarations":[{"constant":false,"id":44447,"mutability":"mutable","name":"size","nameLocation":"5809:4:69","nodeType":"VariableDeclaration","scope":44488,"src":"5802:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44446,"name":"uint16","nodeType":"ElementaryTypeName","src":"5802:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44452,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44448,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5816:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5827:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5816:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5844:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"5816:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5802:51:69"},{"expression":{"id":44459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44453,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5863:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44457,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5889:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":44456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5875:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":44454,"name":"address","nodeType":"ElementaryTypeName","src":"5879:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44455,"nodeType":"ArrayTypeName","src":"5879:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":44458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"5863:31:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44460,"nodeType":"ExpressionStatement","src":"5863:31:69"},{"body":{"id":44484,"nodeType":"Block","src":"5936:144:69","statements":[{"expression":{"id":44478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44468,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"5950:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44472,"indexExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5960:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":44470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5964:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5960:5:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5950:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6008:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44473,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44440,"src":"5969:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5980:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"5969:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"5969:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5969:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5950:60:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44479,"nodeType":"ExpressionStatement","src":"5950:60:69"},{"id":44483,"nodeType":"UncheckedBlock","src":"6024:46:69","statements":[{"expression":{"id":44481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6052:3:69","subExpression":{"id":44480,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"6054:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44482,"nodeType":"ExpressionStatement","src":"6052:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44462,"src":"5923:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44466,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44447,"src":"5928:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5923:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44485,"initializationExpression":{"assignments":[44462],"declarations":[{"constant":false,"id":44462,"mutability":"mutable","name":"i","nameLocation":"5916:1:69","nodeType":"VariableDeclaration","scope":44485,"src":"5909:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44461,"name":"uint16","nodeType":"ElementaryTypeName","src":"5909:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44464,"initialValue":{"hexValue":"31","id":44463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5920:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5909:12:69"},"nodeType":"ForStatement","src":"5904:176:69"},{"expression":{"id":44486,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44444,"src":"6096:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":44445,"id":44487,"nodeType":"Return","src":"6089:16:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"listActiveValidators","nameLocation":"5687:20:69","parameters":{"id":44441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44440,"mutability":"mutable","name":"validators","nameLocation":"5729:10:69","nodeType":"VariableDeclaration","scope":44489,"src":"5708:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44439,"nodeType":"UserDefinedTypeName","pathNode":{"id":44438,"name":"ValidatorSet","nameLocations":["5708:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"5708:12:69"},"referencedDeclaration":50190,"src":"5708:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"5707:33:69"},"returnParameters":{"id":44445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44444,"mutability":"mutable","name":"addresses","nameLocation":"5781:9:69","nodeType":"VariableDeclaration","scope":44489,"src":"5764:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44442,"name":"address","nodeType":"ElementaryTypeName","src":"5764:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44443,"nodeType":"ArrayTypeName","src":"5764:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5763:28:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44534,"nodeType":"FunctionDefinition","src":"6183:418:69","nodes":[],"body":{"id":44533,"nodeType":"Block","src":"6288:313:69","nodes":[],"statements":[{"assignments":[44499],"declarations":[{"constant":false,"id":44499,"mutability":"mutable","name":"size","nameLocation":"6305:4:69","nodeType":"VariableDeclaration","scope":44533,"src":"6298:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44498,"name":"uint16","nodeType":"ElementaryTypeName","src":"6298:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44500,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6312:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6323:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6312:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6340:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"6312:35:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6312:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6298:51:69"},{"body":{"id":44531,"nodeType":"Block","src":"6391:204:69","statements":[{"assignments":[44513],"declarations":[{"constant":false,"id":44513,"mutability":"mutable","name":"validator","nameLocation":"6413:9:69","nodeType":"VariableDeclaration","scope":44531,"src":"6405:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44512,"name":"address","nodeType":"ElementaryTypeName","src":"6405:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44519,"initialValue":{"arguments":[{"id":44517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6464:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44514,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6425:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6436:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"6425:27:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6453:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":49068,"src":"6425:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,uint16) view returns (address)"}},"id":44518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6425:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6405:61:69"},{"expression":{"id":44525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44520,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44496,"src":"6480:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44522,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44493,"src":"6503:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44523,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44513,"src":"6515:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44521,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"6494:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6494:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6480:45:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44526,"nodeType":"ExpressionStatement","src":"6480:45:69"},{"id":44530,"nodeType":"UncheckedBlock","src":"6539:46:69","statements":[{"expression":{"id":44528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6567:3:69","subExpression":{"id":44527,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6569:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44529,"nodeType":"ExpressionStatement","src":"6567:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44509,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44506,"src":"6378:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44510,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44499,"src":"6383:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6378:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44532,"initializationExpression":{"assignments":[44506],"declarations":[{"constant":false,"id":44506,"mutability":"mutable","name":"i","nameLocation":"6371:1:69","nodeType":"VariableDeclaration","scope":44532,"src":"6364:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44505,"name":"uint16","nodeType":"ElementaryTypeName","src":"6364:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44508,"initialValue":{"hexValue":"31","id":44507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6375:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6364:12:69"},"nodeType":"ForStatement","src":"6359:236:69"}]},"documentation":{"id":44490,"nodeType":"StructuredDocumentation","src":"6118:60:69","text":"@notice Get the total collateral of *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalActivePower","nameLocation":"6192:19:69","parameters":{"id":44494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44493,"mutability":"mutable","name":"validators","nameLocation":"6233:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6212:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44492,"nodeType":"UserDefinedTypeName","pathNode":{"id":44491,"name":"ValidatorSet","nameLocations":["6212:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6212:12:69"},"referencedDeclaration":50190,"src":"6212:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6211:33:69"},"returnParameters":{"id":44497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44496,"mutability":"mutable","name":"collateral","nameLocation":"6276:10:69","nodeType":"VariableDeclaration","scope":44534,"src":"6268:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44495,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6267:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44585,"nodeType":"FunctionDefinition","src":"6690:496:69","nodes":[],"body":{"id":44584,"nodeType":"Block","src":"6794:392:69","nodes":[],"statements":[{"assignments":[44544],"declarations":[{"constant":false,"id":44544,"mutability":"mutable","name":"size","nameLocation":"6811:4:69","nodeType":"VariableDeclaration","scope":44584,"src":"6804:11:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44543,"name":"uint16","nodeType":"ElementaryTypeName","src":"6804:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44549,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44545,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6818:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6829:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6818:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6847:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"6818:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":44548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"6804:52:69"},{"body":{"id":44576,"nodeType":"Block","src":"6898:219:69","statements":[{"assignments":[44558],"declarations":[{"constant":false,"id":44558,"mutability":"mutable","name":"validator","nameLocation":"6920:9:69","nodeType":"VariableDeclaration","scope":44576,"src":"6912:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44557,"name":"address","nodeType":"ElementaryTypeName","src":"6912:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":44564,"initialValue":{"arguments":[{"id":44562,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6972:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"expression":{"id":44559,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"6932:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6943:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"6932:28:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":44561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6961:10:69","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":48450,"src":"6932:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_uint16_$returns$_t_address_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,uint16) view returns (address)"}},"id":44563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6932:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6912:62:69"},{"expression":{"id":44570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44565,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"6988:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44567,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7025:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44568,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44558,"src":"7037:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44566,"name":"getConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44437,"src":"7002:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6988:59:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44571,"nodeType":"ExpressionStatement","src":"6988:59:69"},{"id":44575,"nodeType":"UncheckedBlock","src":"7061:46:69","statements":[{"expression":{"id":44573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7089:3:69","subExpression":{"id":44572,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"7091:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":44574,"nodeType":"ExpressionStatement","src":"7089:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44554,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44551,"src":"6885:1:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":44555,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44544,"src":"6890:4:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6885:9:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44577,"initializationExpression":{"assignments":[44551],"declarations":[{"constant":false,"id":44551,"mutability":"mutable","name":"i","nameLocation":"6878:1:69","nodeType":"VariableDeclaration","scope":44577,"src":"6871:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44550,"name":"uint16","nodeType":"ElementaryTypeName","src":"6871:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44553,"initialValue":{"hexValue":"31","id":44552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"6871:12:69"},"nodeType":"ForStatement","src":"6866:251:69"},{"expression":{"id":44582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44578,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44541,"src":"7126:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":44580,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44538,"src":"7168:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"id":44579,"name":"getTotalConfirmedCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44400,"src":"7140:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":44581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7126:53:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44583,"nodeType":"ExpressionStatement","src":"7126:53:69"}]},"documentation":{"id":44535,"nodeType":"StructuredDocumentation","src":"6607:78:69","text":"@notice Get the total collateral of the *waiting* and *active* validators."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"6699:18:69","parameters":{"id":44539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44538,"mutability":"mutable","name":"validators","nameLocation":"6739:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6718:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44537,"nodeType":"UserDefinedTypeName","pathNode":{"id":44536,"name":"ValidatorSet","nameLocations":["6718:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"6718:12:69"},"referencedDeclaration":50190,"src":"6718:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"}],"src":"6717:33:69"},"returnParameters":{"id":44542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44541,"mutability":"mutable","name":"collateral","nameLocation":"6782:10:69","nodeType":"VariableDeclaration","scope":44585,"src":"6774:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44540,"name":"uint256","nodeType":"ElementaryTypeName","src":"6774:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6773:20:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44655,"nodeType":"FunctionDefinition","src":"7339:612:69","nodes":[],"body":{"id":44654,"nodeType":"Block","src":"7498:453:69","nodes":[],"statements":[{"assignments":[44599],"declarations":[{"constant":false,"id":44599,"mutability":"mutable","name":"size","nameLocation":"7516:4:69","nodeType":"VariableDeclaration","scope":44654,"src":"7508:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7508:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44602,"initialValue":{"expression":{"id":44600,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7523:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7533:6:69","memberName":"length","nodeType":"MemberAccess","src":"7523:16:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7508:31:69"},{"assignments":[44607],"declarations":[{"constant":false,"id":44607,"mutability":"mutable","name":"activePowerTable","nameLocation":"7566:16:69","nodeType":"VariableDeclaration","scope":44654,"src":"7549:33:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44605,"name":"uint256","nodeType":"ElementaryTypeName","src":"7549:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44606,"nodeType":"ArrayTypeName","src":"7549:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":44613,"initialValue":{"arguments":[{"id":44611,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7599:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7585:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":44608,"name":"uint256","nodeType":"ElementaryTypeName","src":"7589:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44609,"nodeType":"ArrayTypeName","src":"7589:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":44612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7585:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7549:55:69"},{"body":{"id":44650,"nodeType":"Block","src":"7643:269:69","statements":[{"condition":{"id":44626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7661:44:69","subExpression":{"arguments":[{"id":44621,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7680:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44622,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7692:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44624,"indexExpression":{"id":44623,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7702:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7692:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44620,"name":"isActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44672,"src":"7662:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_bool_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":44625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7662:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44634,"nodeType":"IfStatement","src":"7657:116:69","trueBody":{"id":44633,"nodeType":"Block","src":"7707:66:69","statements":[{"errorCall":{"arguments":[{"baseExpression":{"id":44628,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7745:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44630,"indexExpression":{"id":44629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7755:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7745:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":44627,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"7732:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":44631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44632,"nodeType":"RevertStatement","src":"7725:33:69"}]}},{"expression":{"id":44644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":44635,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7786:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":44637,"indexExpression":{"id":44636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7803:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7786:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":44639,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44589,"src":"7817:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"baseExpression":{"id":44640,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44592,"src":"7829:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":44642,"indexExpression":{"id":44641,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7839:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7829:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":44638,"name":"getPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44385,"src":"7808:8:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":44643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7808:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44645,"nodeType":"ExpressionStatement","src":"7786:56:69"},{"id":44649,"nodeType":"UncheckedBlock","src":"7856:46:69","statements":[{"expression":{"id":44647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7884:3:69","subExpression":{"id":44646,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7886:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44648,"nodeType":"ExpressionStatement","src":"7884:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44617,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44615,"src":"7631:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44618,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44599,"src":"7635:4:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7631:8:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44651,"initializationExpression":{"assignments":[44615],"declarations":[{"constant":false,"id":44615,"mutability":"mutable","name":"i","nameLocation":"7628:1:69","nodeType":"VariableDeclaration","scope":44651,"src":"7620:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44614,"name":"uint256","nodeType":"ElementaryTypeName","src":"7620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44616,"nodeType":"VariableDeclarationStatement","src":"7620:9:69"},"nodeType":"ForStatement","src":"7615:297:69"},{"expression":{"id":44652,"name":"activePowerTable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44607,"src":"7928:16:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":44597,"id":44653,"nodeType":"Return","src":"7921:23:69"}]},"documentation":{"id":44586,"nodeType":"StructuredDocumentation","src":"7193:141:69","text":"@notice Get the total power of the validators.\n The function reverts if at least one validator is not in the active validator set."},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalPowerOfValidators","nameLocation":"7348:25:69","parameters":{"id":44593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44589,"mutability":"mutable","name":"validators","nameLocation":"7404:10:69","nodeType":"VariableDeclaration","scope":44655,"src":"7383:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44588,"nodeType":"UserDefinedTypeName","pathNode":{"id":44587,"name":"ValidatorSet","nameLocations":["7383:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7383:12:69"},"referencedDeclaration":50190,"src":"7383:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44592,"mutability":"mutable","name":"addresses","nameLocation":"7441:9:69","nodeType":"VariableDeclaration","scope":44655,"src":"7424:26:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":44590,"name":"address","nodeType":"ElementaryTypeName","src":"7424:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":44591,"nodeType":"ArrayTypeName","src":"7424:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7373:83:69"},"returnParameters":{"id":44597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44655,"src":"7480:16:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":44594,"name":"uint256","nodeType":"ElementaryTypeName","src":"7480:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44595,"nodeType":"ArrayTypeName","src":"7480:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7479:18:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44672,"nodeType":"FunctionDefinition","src":"7957:167:69","nodes":[],"body":{"id":44671,"nodeType":"Block","src":"8059:65:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":44668,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44660,"src":"8107:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44665,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44658,"src":"8076:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8081:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"8076:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"8076:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8076:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":44664,"id":44670,"nodeType":"Return","src":"8069:48:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"7966:17:69","parameters":{"id":44661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44658,"mutability":"mutable","name":"self","nameLocation":"8005:4:69","nodeType":"VariableDeclaration","scope":44672,"src":"7984:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44657,"nodeType":"UserDefinedTypeName","pathNode":{"id":44656,"name":"ValidatorSet","nameLocations":["7984:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"7984:12:69"},"referencedDeclaration":50190,"src":"7984:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44660,"mutability":"mutable","name":"validator","nameLocation":"8019:9:69","nodeType":"VariableDeclaration","scope":44672,"src":"8011:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44659,"name":"address","nodeType":"ElementaryTypeName","src":"8011:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7983:46:69"},"returnParameters":{"id":44664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44672,"src":"8053:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44662,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8052:6:69"},"scope":45293,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":44693,"nodeType":"FunctionDefinition","src":"8165:176:69","nodes":[],"body":{"id":44692,"nodeType":"Block","src":"8272:69:69","nodes":[],"statements":[{"expression":{"id":44690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44683,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44676,"src":"8282:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8293:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8282:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44687,"indexExpression":{"id":44685,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44678,"src":"8304:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8315:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"8282:41:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44689,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44680,"src":"8326:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"8282:52:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":44691,"nodeType":"ExpressionStatement","src":"8282:52:69"}]},"documentation":{"id":44673,"nodeType":"StructuredDocumentation","src":"8130:30:69","text":"@notice Set validator data"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadata","nameLocation":"8174:11:69","parameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44676,"mutability":"mutable","name":"validators","nameLocation":"8207:10:69","nodeType":"VariableDeclaration","scope":44693,"src":"8186:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44675,"nodeType":"UserDefinedTypeName","pathNode":{"id":44674,"name":"ValidatorSet","nameLocations":["8186:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8186:12:69"},"referencedDeclaration":50190,"src":"8186:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44678,"mutability":"mutable","name":"validator","nameLocation":"8227:9:69","nodeType":"VariableDeclaration","scope":44693,"src":"8219:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44677,"name":"address","nodeType":"ElementaryTypeName","src":"8219:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44680,"mutability":"mutable","name":"metadata","nameLocation":"8253:8:69","nodeType":"VariableDeclaration","scope":44693,"src":"8238:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":44679,"name":"bytes","nodeType":"ElementaryTypeName","src":"8238:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:77:69"},"returnParameters":{"id":44682,"nodeType":"ParameterList","parameters":[],"src":"8272:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44714,"nodeType":"FunctionDefinition","src":"8648:175:69","nodes":[],"body":{"id":44713,"nodeType":"Block","src":"8748:75:69","nodes":[],"statements":[{"expression":{"id":44711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44704,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44697,"src":"8758:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"8758:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44708,"indexExpression":{"id":44706,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44699,"src":"8780:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8758:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8791:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"8758:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44710,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44701,"src":"8810:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:58:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44712,"nodeType":"ExpressionStatement","src":"8758:58:69"}]},"documentation":{"id":44694,"nodeType":"StructuredDocumentation","src":"8580:63:69","text":"@notice Validator increases its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordDeposit","nameLocation":"8657:13:69","parameters":{"id":44702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44697,"mutability":"mutable","name":"validators","nameLocation":"8692:10:69","nodeType":"VariableDeclaration","scope":44714,"src":"8671:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44696,"nodeType":"UserDefinedTypeName","pathNode":{"id":44695,"name":"ValidatorSet","nameLocations":["8671:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8671:12:69"},"referencedDeclaration":50190,"src":"8671:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44699,"mutability":"mutable","name":"validator","nameLocation":"8712:9:69","nodeType":"VariableDeclaration","scope":44714,"src":"8704:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44698,"name":"address","nodeType":"ElementaryTypeName","src":"8704:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44701,"mutability":"mutable","name":"amount","nameLocation":"8731:6:69","nodeType":"VariableDeclaration","scope":44714,"src":"8723:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44700,"name":"uint256","nodeType":"ElementaryTypeName","src":"8723:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8670:68:69"},"returnParameters":{"id":44703,"nodeType":"ParameterList","parameters":[],"src":"8748:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44755,"nodeType":"FunctionDefinition","src":"8895:364:69","nodes":[],"body":{"id":44754,"nodeType":"Block","src":"8996:263:69","nodes":[],"statements":[{"assignments":[44726],"declarations":[{"constant":false,"id":44726,"mutability":"mutable","name":"total","nameLocation":"9014:5:69","nodeType":"VariableDeclaration","scope":44754,"src":"9006:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44725,"name":"uint256","nodeType":"ElementaryTypeName","src":"9006:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44732,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44727,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9022:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9022:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44730,"indexExpression":{"id":44729,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9044:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9022:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9055:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9022:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9006:64:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44733,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9084:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9092:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9084:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44740,"nodeType":"IfStatement","src":"9080:81:69","trueBody":{"id":44739,"nodeType":"Block","src":"9100:61:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":44736,"name":"WithdrawExceedingCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37510,"src":"9121:27:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":44737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44738,"nodeType":"RevertStatement","src":"9114:36:69"}]}},{"expression":{"id":44743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":44741,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9171:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44742,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44722,"src":"9180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9171:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44744,"nodeType":"ExpressionStatement","src":"9171:15:69"},{"expression":{"id":44752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44745,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44718,"src":"9196:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9207:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9196:21:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44749,"indexExpression":{"id":44747,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44720,"src":"9218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9196:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9229:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"9196:48:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44751,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44726,"src":"9247:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9196:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44753,"nodeType":"ExpressionStatement","src":"9196:56:69"}]},"documentation":{"id":44715,"nodeType":"StructuredDocumentation","src":"8829:61:69","text":"@notice Validator reduces its total collateral by amount."},"implemented":true,"kind":"function","modifiers":[],"name":"recordWithdraw","nameLocation":"8904:14:69","parameters":{"id":44723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44718,"mutability":"mutable","name":"validators","nameLocation":"8940:10:69","nodeType":"VariableDeclaration","scope":44755,"src":"8919:31:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44717,"nodeType":"UserDefinedTypeName","pathNode":{"id":44716,"name":"ValidatorSet","nameLocations":["8919:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"8919:12:69"},"referencedDeclaration":50190,"src":"8919:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44720,"mutability":"mutable","name":"validator","nameLocation":"8960:9:69","nodeType":"VariableDeclaration","scope":44755,"src":"8952:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44719,"name":"address","nodeType":"ElementaryTypeName","src":"8952:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44722,"mutability":"mutable","name":"amount","nameLocation":"8979:6:69","nodeType":"VariableDeclaration","scope":44755,"src":"8971:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44721,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8918:68:69"},"returnParameters":{"id":44724,"nodeType":"ParameterList","parameters":[],"src":"8996:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44808,"nodeType":"FunctionDefinition","src":"9330:540:69","nodes":[],"body":{"id":44807,"nodeType":"Block","src":"9431:439:69","nodes":[],"statements":[{"assignments":[44767],"declarations":[{"constant":false,"id":44767,"mutability":"mutable","name":"existingPower","nameLocation":"9449:13:69","nodeType":"VariableDeclaration","scope":44807,"src":"9441:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44766,"name":"uint256","nodeType":"ElementaryTypeName","src":"9441:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44773,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44768,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9465:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9465:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44771,"indexExpression":{"id":44770,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9481:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9465:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9492:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9465:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9441:65:69"},{"expression":{"id":44781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44774,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9516:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9521:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"9516:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44778,"indexExpression":{"id":44776,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9532:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9516:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9543:14:69","memberName":"federatedPower","nodeType":"MemberAccess","referencedDeclaration":50153,"src":"9516:41:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44780,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9560:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9516:49:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44782,"nodeType":"ExpressionStatement","src":"9516:49:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44783,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9580:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":44784,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9597:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9580:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44788,"name":"existingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44767,"src":"9645:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44789,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9661:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9645:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44804,"nodeType":"Block","src":"9771:93:69","statements":[{"expression":{"arguments":[{"id":44799,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9808:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44800,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9825:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44801,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9846:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44798,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"9785:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9802:4:69","9814:9:69","9836:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"9785:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44803,"nodeType":"ExpressionStatement","src":"9785:68:69"}]},"id":44805,"nodeType":"IfStatement","src":"9641:223:69","trueBody":{"id":44797,"nodeType":"Block","src":"9668:97:69","statements":[{"expression":{"arguments":[{"id":44792,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44759,"src":"9707:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44793,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44761,"src":"9726:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44794,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44763,"src":"9747:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44791,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"9682:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["9701:4:69","9713:11:69","9737:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"9682:72:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44796,"nodeType":"ExpressionStatement","src":"9682:72:69"}]}},"id":44806,"nodeType":"IfStatement","src":"9576:288:69","trueBody":{"id":44787,"nodeType":"Block","src":"9604:31:69","statements":[{"functionReturnParameters":44765,"id":44786,"nodeType":"Return","src":"9618:7:69"}]}}]},"documentation":{"id":44756,"nodeType":"StructuredDocumentation","src":"9265:60:69","text":"@notice Validator's federated power was updated by admin"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmFederatedPower","nameLocation":"9339:21:69","parameters":{"id":44764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44759,"mutability":"mutable","name":"self","nameLocation":"9382:4:69","nodeType":"VariableDeclaration","scope":44808,"src":"9361:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44758,"nodeType":"UserDefinedTypeName","pathNode":{"id":44757,"name":"ValidatorSet","nameLocations":["9361:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9361:12:69"},"referencedDeclaration":50190,"src":"9361:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44761,"mutability":"mutable","name":"validator","nameLocation":"9396:9:69","nodeType":"VariableDeclaration","scope":44808,"src":"9388:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44760,"name":"address","nodeType":"ElementaryTypeName","src":"9388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44763,"mutability":"mutable","name":"power","nameLocation":"9415:5:69","nodeType":"VariableDeclaration","scope":44808,"src":"9407:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44762,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9360:61:69"},"returnParameters":{"id":44765,"nodeType":"ParameterList","parameters":[],"src":"9431:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44850,"nodeType":"FunctionDefinition","src":"9876:404:69","nodes":[],"body":{"id":44849,"nodeType":"Block","src":"9971:309:69","nodes":[],"statements":[{"assignments":[44819],"declarations":[{"constant":false,"id":44819,"mutability":"mutable","name":"newCollateral","nameLocation":"9989:13:69","nodeType":"VariableDeclaration","scope":44849,"src":"9981:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44818,"name":"uint256","nodeType":"ElementaryTypeName","src":"9981:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44827,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44820,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10005:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10010:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10005:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44823,"indexExpression":{"id":44822,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10021:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10005:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10032:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10005:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":44825,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10054:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9981:79:69"},{"expression":{"id":44835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44828,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10070:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10075:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10070:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44832,"indexExpression":{"id":44830,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10086:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10070:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10097:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10070:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44834,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10119:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10070:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44836,"nodeType":"ExpressionStatement","src":"10070:62:69"},{"expression":{"id":44841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10143:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10148:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10143:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":44840,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44815,"src":"10176:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44842,"nodeType":"ExpressionStatement","src":"10143:39:69"},{"expression":{"arguments":[{"id":44844,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44811,"src":"10218:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44813,"src":"10237:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44846,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44819,"src":"10258:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44843,"name":"increaseReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45081,"src":"10193:17:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10212:4:69","10224:11:69","10248:8:69"],"names":["self","maybeActive","newPower"],"nodeType":"FunctionCall","src":"10193:80:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44848,"nodeType":"ExpressionStatement","src":"10193:80:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmDeposit","nameLocation":"9885:14:69","parameters":{"id":44816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44811,"mutability":"mutable","name":"self","nameLocation":"9921:4:69","nodeType":"VariableDeclaration","scope":44850,"src":"9900:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44810,"nodeType":"UserDefinedTypeName","pathNode":{"id":44809,"name":"ValidatorSet","nameLocations":["9900:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"9900:12:69"},"referencedDeclaration":50190,"src":"9900:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44813,"mutability":"mutable","name":"validator","nameLocation":"9935:9:69","nodeType":"VariableDeclaration","scope":44850,"src":"9927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44812,"name":"address","nodeType":"ElementaryTypeName","src":"9927:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44815,"mutability":"mutable","name":"amount","nameLocation":"9954:6:69","nodeType":"VariableDeclaration","scope":44850,"src":"9946:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44814,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9899:62:69"},"returnParameters":{"id":44817,"nodeType":"ParameterList","parameters":[],"src":"9971:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44916,"nodeType":"FunctionDefinition","src":"10286:616:69","nodes":[],"body":{"id":44915,"nodeType":"Block","src":"10382:520:69","nodes":[],"statements":[{"assignments":[44861],"declarations":[{"constant":false,"id":44861,"mutability":"mutable","name":"newCollateral","nameLocation":"10400:13:69","nodeType":"VariableDeclaration","scope":44915,"src":"10392:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44860,"name":"uint256","nodeType":"ElementaryTypeName","src":"10392:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44869,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":44862,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10416:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10421:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10416:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44865,"indexExpression":{"id":44864,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10432:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10416:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10416:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":44867,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10465:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10416:55:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10392:79:69"},{"assignments":[44871],"declarations":[{"constant":false,"id":44871,"mutability":"mutable","name":"totalCollateral","nameLocation":"10489:15:69","nodeType":"VariableDeclaration","scope":44915,"src":"10481:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44870,"name":"uint256","nodeType":"ElementaryTypeName","src":"10481:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44877,"initialValue":{"expression":{"baseExpression":{"expression":{"id":44872,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10507:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10512:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10507:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44875,"indexExpression":{"id":44874,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10523:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10507:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10534:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"10507:42:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10481:68:69"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":44884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44878,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10564:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10564:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44881,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44871,"src":"10586:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":44882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10605:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:20:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10564:42:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":44901,"nodeType":"Block","src":"10672:87:69","statements":[{"expression":{"id":44899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":44892,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10686:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10691:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10686:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44896,"indexExpression":{"id":44894,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10702:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10686:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":44897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10713:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"10686:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":44898,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10735:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:62:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44900,"nodeType":"ExpressionStatement","src":"10686:62:69"}]},"id":44902,"nodeType":"IfStatement","src":"10560:199:69","trueBody":{"id":44891,"nodeType":"Block","src":"10608:58:69","statements":[{"expression":{"id":44889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10622:33:69","subExpression":{"baseExpression":{"expression":{"id":44885,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10629:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10634:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"10629:15:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":44888,"indexExpression":{"id":44887,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10645:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10629:26:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44890,"nodeType":"ExpressionStatement","src":"10622:33:69"}]}},{"expression":{"arguments":[{"id":44904,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10792:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44905,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44855,"src":"10809:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44906,"name":"newCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44861,"src":"10830:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44903,"name":"reduceReshuffle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45292,"src":"10769:15:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":44907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["10786:4:69","10798:9:69","10820:8:69"],"names":["self","validator","newPower"],"nodeType":"FunctionCall","src":"10769:76:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44908,"nodeType":"ExpressionStatement","src":"10769:76:69"},{"expression":{"id":44913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":44909,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44853,"src":"10856:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10861:24:69","memberName":"totalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50175,"src":"10856:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":44912,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44857,"src":"10889:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:39:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":44914,"nodeType":"ExpressionStatement","src":"10856:39:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"confirmWithdraw","nameLocation":"10295:15:69","parameters":{"id":44858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44853,"mutability":"mutable","name":"self","nameLocation":"10332:4:69","nodeType":"VariableDeclaration","scope":44916,"src":"10311:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44852,"nodeType":"UserDefinedTypeName","pathNode":{"id":44851,"name":"ValidatorSet","nameLocations":["10311:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"10311:12:69"},"referencedDeclaration":50190,"src":"10311:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44855,"mutability":"mutable","name":"validator","nameLocation":"10346:9:69","nodeType":"VariableDeclaration","scope":44916,"src":"10338:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44854,"name":"address","nodeType":"ElementaryTypeName","src":"10338:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44857,"mutability":"mutable","name":"amount","nameLocation":"10365:6:69","nodeType":"VariableDeclaration","scope":44916,"src":"10357:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44856,"name":"uint256","nodeType":"ElementaryTypeName","src":"10357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10310:62:69"},"returnParameters":{"id":44859,"nodeType":"ParameterList","parameters":[],"src":"10382:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45081,"nodeType":"FunctionDefinition","src":"11008:2209:69","nodes":[],"body":{"id":45080,"nodeType":"Block","src":"11110:2107:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":44930,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11155:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44927,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11124:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11129:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11124:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"11124:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":44931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44948,"nodeType":"IfStatement","src":"11120:226:69","trueBody":{"id":44947,"nodeType":"Block","src":"11169:177:69","statements":[{"expression":{"arguments":[{"id":44937,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11223:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44938,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11229:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44932,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11183:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11188:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11183:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11205:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49342,"src":"11183:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44940,"nodeType":"ExpressionStatement","src":"11183:58:69"},{"eventCall":{"arguments":[{"id":44942,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11293:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44943,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11306:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44941,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"11260:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11260:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44945,"nodeType":"EmitStatement","src":"11255:60:69"},{"functionReturnParameters":44926,"id":44946,"nodeType":"Return","src":"11329:7:69"}]}},{"assignments":[44950],"declarations":[{"constant":false,"id":44950,"mutability":"mutable","name":"activeLimit","nameLocation":"11415:11:69","nodeType":"VariableDeclaration","scope":45080,"src":"11408:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44949,"name":"uint16","nodeType":"ElementaryTypeName","src":"11408:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44953,"initialValue":{"expression":{"id":44951,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11429:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11434:11:69","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"11429:16:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11408:37:69"},{"assignments":[44955],"declarations":[{"constant":false,"id":44955,"mutability":"mutable","name":"activeSize","nameLocation":"11462:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"11455:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":44954,"name":"uint16","nodeType":"ElementaryTypeName","src":"11455:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":44960,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":44956,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11480:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11475:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11497:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"11475:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":44959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"11455:51:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":44963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44961,"name":"activeLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44950,"src":"11520:11:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":44962,"name":"activeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44955,"src":"11534:10:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11520:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44980,"nodeType":"IfStatement","src":"11516:262:69","trueBody":{"id":44979,"nodeType":"Block","src":"11546:232:69","statements":[{"expression":{"arguments":[{"id":44969,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11669:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":44970,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11675:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":44964,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"11640:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11645:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"11640:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11662:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"11640:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":44971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11640:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44972,"nodeType":"ExpressionStatement","src":"11640:47:69"},{"eventCall":{"arguments":[{"id":44974,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"11725:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44975,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"11738:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":44973,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"11706:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":44976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11706:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44977,"nodeType":"EmitStatement","src":"11701:46:69"},{"functionReturnParameters":44926,"id":44978,"nodeType":"Return","src":"11761:7:69"}]}},{"assignments":[44982,44984],"declarations":[{"constant":false,"id":44982,"mutability":"mutable","name":"minAddress","nameLocation":"12325:10:69","nodeType":"VariableDeclaration","scope":45080,"src":"12317:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44981,"name":"address","nodeType":"ElementaryTypeName","src":"12317:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44984,"mutability":"mutable","name":"minActivePower","nameLocation":"12345:14:69","nodeType":"VariableDeclaration","scope":45080,"src":"12337:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44983,"name":"uint256","nodeType":"ElementaryTypeName","src":"12337:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":44990,"initialValue":{"arguments":[{"id":44988,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12389:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44985,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12363:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12368:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12363:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12385:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"12363:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":44989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12316:78:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":44993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":44991,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44984,"src":"12408:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":44992,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"12425:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12408:25:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45043,"nodeType":"IfStatement","src":"12404:452:69","trueBody":{"id":45042,"nodeType":"Block","src":"12435:421:69","statements":[{"expression":{"arguments":[{"id":44999,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12475:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":44994,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12449:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":44997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12454:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12449:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":44998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12471:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"12449:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12449:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45001,"nodeType":"ExpressionStatement","src":"12449:31:69"},{"condition":{"arguments":[{"id":45005,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12531:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45002,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12499:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12504:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12499:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12522:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12499:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12499:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45017,"nodeType":"IfStatement","src":"12495:140:69","trueBody":{"id":45016,"nodeType":"Block","src":"12545:90:69","statements":[{"expression":{"arguments":[{"id":45012,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12602:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45013,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12608:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45007,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12563:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12568:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12563:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12586:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"12563:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12563:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45015,"nodeType":"ExpressionStatement","src":"12563:57:69"}]}},{"expression":{"arguments":[{"id":45023,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12678:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45024,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12684:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45018,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12649:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12654:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"12649:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12671:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"12649:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12649:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45026,"nodeType":"ExpressionStatement","src":"12649:47:69"},{"expression":{"arguments":[{"id":45032,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12740:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45033,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12746:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45027,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12710:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12715:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12710:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12733:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"12710:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12710:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45035,"nodeType":"ExpressionStatement","src":"12710:47:69"},{"eventCall":{"arguments":[{"id":45037,"name":"minAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44982,"src":"12801:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45038,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12813:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45036,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"12777:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45040,"nodeType":"EmitStatement","src":"12772:53:69"},{"functionReturnParameters":44926,"id":45041,"nodeType":"Return","src":"12839:7:69"}]}},{"condition":{"arguments":[{"id":45047,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12902:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45044,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12870:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12870:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12893:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"12870:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45065,"nodeType":"IfStatement","src":"12866:229:69","trueBody":{"id":45064,"nodeType":"Block","src":"12916:179:69","statements":[{"expression":{"arguments":[{"id":45054,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12971:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45055,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"12977:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45049,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"12930:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12935:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"12930:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12953:17:69","memberName":"increaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48724,"src":"12930:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12930:59:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45057,"nodeType":"ExpressionStatement","src":"12930:59:69"},{"eventCall":{"arguments":[{"id":45059,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13042:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45060,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13055:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45058,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13008:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13008:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45062,"nodeType":"EmitStatement","src":"13003:61:69"},{"functionReturnParameters":44926,"id":45063,"nodeType":"Return","src":"13078:7:69"}]}},{"expression":{"arguments":[{"id":45071,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13135:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45072,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13141:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45066,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44920,"src":"13105:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13110:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13105:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13128:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"13105:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13105:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45074,"nodeType":"ExpressionStatement","src":"13105:48:69"},{"eventCall":{"arguments":[{"id":45076,"name":"maybeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44922,"src":"13188:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45077,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44924,"src":"13201:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45075,"name":"NewWaitingValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44335,"src":"13168:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13168:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45079,"nodeType":"EmitStatement","src":"13163:47:69"}]},"documentation":{"id":44917,"nodeType":"StructuredDocumentation","src":"10908:95:69","text":"@notice Reshuffles the active and waiting validators when an increase in power is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"increaseReshuffle","nameLocation":"11017:17:69","parameters":{"id":44925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44920,"mutability":"mutable","name":"self","nameLocation":"11056:4:69","nodeType":"VariableDeclaration","scope":45081,"src":"11035:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":44919,"nodeType":"UserDefinedTypeName","pathNode":{"id":44918,"name":"ValidatorSet","nameLocations":["11035:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"11035:12:69"},"referencedDeclaration":50190,"src":"11035:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":44922,"mutability":"mutable","name":"maybeActive","nameLocation":"11070:11:69","nodeType":"VariableDeclaration","scope":45081,"src":"11062:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44921,"name":"address","nodeType":"ElementaryTypeName","src":"11062:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44924,"mutability":"mutable","name":"newPower","nameLocation":"11091:8:69","nodeType":"VariableDeclaration","scope":45081,"src":"11083:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44923,"name":"uint256","nodeType":"ElementaryTypeName","src":"11083:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11034:66:69"},"returnParameters":{"id":44926,"nodeType":"ParameterList","parameters":[],"src":"11110:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45292,"nodeType":"FunctionDefinition","src":"13320:2014:69","nodes":[],"body":{"id":45291,"nodeType":"Block","src":"13418:1916:69","nodes":[],"statements":[{"condition":{"arguments":[{"id":45095,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13464:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45092,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13432:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13437:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13432:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13455:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"13432:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13432:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45132,"nodeType":"IfStatement","src":"13428:421:69","trueBody":{"id":45131,"nodeType":"Block","src":"13476:373:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45097,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13494:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13506:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13494:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45115,"nodeType":"IfStatement","src":"13490:185:69","trueBody":{"id":45114,"nodeType":"Block","src":"13509:166:69","statements":[{"expression":{"arguments":[{"id":45105,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13566:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45106,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13572:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45100,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13527:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13532:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13527:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13550:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":48689,"src":"13527:38:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45108,"nodeType":"ExpressionStatement","src":"13527:55:69"},{"eventCall":{"arguments":[{"id":45110,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13626:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45109,"name":"WaitingValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44349,"src":"13605:20:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13605:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45112,"nodeType":"EmitStatement","src":"13600:36:69"},{"functionReturnParameters":45091,"id":45113,"nodeType":"Return","src":"13654:7:69"}]}},{"expression":{"arguments":[{"id":45121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13729:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45122,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13735:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13688:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13693:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"13688:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13711:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":48759,"src":"13688:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13688:57:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45124,"nodeType":"ExpressionStatement","src":"13688:57:69"},{"eventCall":{"arguments":[{"id":45126,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13798:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45127,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"13809:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45125,"name":"WaitingValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44323,"src":"13764:33:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13764:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45129,"nodeType":"EmitStatement","src":"13759:59:69"},{"functionReturnParameters":45091,"id":45130,"nodeType":"Return","src":"13832:7:69"}]}},{"condition":{"id":45138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13887:42:69","subExpression":{"arguments":[{"id":45136,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"13919:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45133,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"13888:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13893:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"13888:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13910:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"13888:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13888:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45143,"nodeType":"IfStatement","src":"13883:106:69","trueBody":{"id":45142,"nodeType":"Block","src":"13931:58:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45139,"name":"AddressShouldBeValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37368,"src":"13952:24:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13952:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45141,"nodeType":"RevertStatement","src":"13945:33:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45144,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"14053:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14065:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14053:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45202,"nodeType":"IfStatement","src":"14049:508:69","trueBody":{"id":45201,"nodeType":"Block","src":"14068:489:69","statements":[{"expression":{"arguments":[{"id":45152,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14120:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45153,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14126:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45147,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14082:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14087:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14082:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14104:15:69","memberName":"deleteReheapify","nodeType":"MemberAccess","referencedDeclaration":49307,"src":"14082:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14082:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45155,"nodeType":"ExpressionStatement","src":"14082:54:69"},{"eventCall":{"arguments":[{"id":45157,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45156,"name":"ActiveValidatorLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44345,"src":"14155:19:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":45158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14155:30:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45159,"nodeType":"EmitStatement","src":"14150:35:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45160,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14204:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14209:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14204:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14227:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14204:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14204:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14204:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45199,"nodeType":"IfStatement","src":"14200:326:69","trueBody":{"id":45198,"nodeType":"Block","src":"14243:283:69","statements":[{"assignments":[45167,45169],"declarations":[{"constant":false,"id":45167,"mutability":"mutable","name":"toBePromoted","nameLocation":"14270:12:69","nodeType":"VariableDeclaration","scope":45198,"src":"14262:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45166,"name":"address","nodeType":"ElementaryTypeName","src":"14262:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45169,"mutability":"mutable","name":"power","nameLocation":"14292:5:69","nodeType":"VariableDeclaration","scope":45198,"src":"14284:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45168,"name":"uint256","nodeType":"ElementaryTypeName","src":"14284:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45175,"initialValue":{"arguments":[{"id":45173,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14328:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45170,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14301:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14306:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14301:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14324:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14301:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14261:72:69"},{"expression":{"arguments":[{"id":45181,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14378:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45176,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14351:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14356:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14351:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14374:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14351:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14351:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45183,"nodeType":"ExpressionStatement","src":"14351:32:69"},{"expression":{"arguments":[{"id":45189,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14430:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45190,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14436:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45184,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14401:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14401:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14423:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"14401:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14401:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45192,"nodeType":"ExpressionStatement","src":"14401:48:69"},{"eventCall":{"arguments":[{"id":45194,"name":"toBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45167,"src":"14491:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45195,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45169,"src":"14505:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45193,"name":"NewActiveValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44329,"src":"14472:18:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14472:39:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45197,"nodeType":"EmitStatement","src":"14467:44:69"}]}},{"functionReturnParameters":45091,"id":45200,"nodeType":"Return","src":"14540:7:69"}]}},{"expression":{"arguments":[{"id":45208,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14607:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45209,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"14613:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45203,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14567:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14572:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14567:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14589:17:69","memberName":"decreaseReheapify","nodeType":"MemberAccess","referencedDeclaration":49377,"src":"14567:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14567:56:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45211,"nodeType":"ExpressionStatement","src":"14567:56:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45212,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14638:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14643:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14638:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14661:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"14638:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14674:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14638:37:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45220,"nodeType":"IfStatement","src":"14634:74:69","trueBody":{"id":45219,"nodeType":"Block","src":"14677:31:69","statements":[{"functionReturnParameters":45091,"id":45218,"nodeType":"Return","src":"14691:7:69"}]}},{"assignments":[45222,45224],"declarations":[{"constant":false,"id":45222,"mutability":"mutable","name":"mayBeDemoted","nameLocation":"14727:12:69","nodeType":"VariableDeclaration","scope":45291,"src":"14719:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45221,"name":"address","nodeType":"ElementaryTypeName","src":"14719:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45224,"mutability":"mutable","name":"minActivePower","nameLocation":"14749:14:69","nodeType":"VariableDeclaration","scope":45291,"src":"14741:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45223,"name":"uint256","nodeType":"ElementaryTypeName","src":"14741:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45230,"initialValue":{"arguments":[{"id":45228,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14793:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14767:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14772:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14767:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14789:3:69","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":49418,"src":"14767:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14767:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14718:80:69"},{"assignments":[45232,45234],"declarations":[{"constant":false,"id":45232,"mutability":"mutable","name":"mayBePromoted","nameLocation":"14817:13:69","nodeType":"VariableDeclaration","scope":45291,"src":"14809:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45231,"name":"address","nodeType":"ElementaryTypeName","src":"14809:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45234,"mutability":"mutable","name":"maxWaitingPower","nameLocation":"14840:15:69","nodeType":"VariableDeclaration","scope":45291,"src":"14832:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45233,"name":"uint256","nodeType":"ElementaryTypeName","src":"14832:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45240,"initialValue":{"arguments":[{"id":45238,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14886:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45235,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14859:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14864:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14859:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14882:3:69","memberName":"max","nodeType":"MemberAccess","referencedDeclaration":48800,"src":"14859:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer) view returns (address,uint256)"}},"id":45239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14859:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"14808:83:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45241,"name":"minActivePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45224,"src":"14905:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45242,"name":"maxWaitingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45234,"src":"14922:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14905:32:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45285,"nodeType":"IfStatement","src":"14901:358:69","trueBody":{"id":45284,"nodeType":"Block","src":"14939:320:69","statements":[{"expression":{"arguments":[{"id":45249,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14979:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45244,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14953:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14958:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"14953:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14975:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":49215,"src":"14953:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14953:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45251,"nodeType":"ExpressionStatement","src":"14953:31:69"},{"expression":{"arguments":[{"id":45257,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15025:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}],"expression":{"expression":{"id":45252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"14998:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15003:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"14998:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15021:3:69","memberName":"pop","nodeType":"MemberAccess","referencedDeclaration":48597,"src":"14998:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer)"}},"id":45258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45259,"nodeType":"ExpressionStatement","src":"14998:32:69"},{"expression":{"arguments":[{"id":45265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15073:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45266,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15079:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45260,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15044:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15049:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"15044:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":49148,"src":"15044:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MinPQ_$49029_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45268,"nodeType":"ExpressionStatement","src":"15044:49:69"},{"expression":{"arguments":[{"id":45274,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15137:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},{"id":45275,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15143:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45269,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45085,"src":"15107:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet storage pointer"}},"id":45272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15112:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"15107:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15130:6:69","memberName":"insert","nodeType":"MemberAccess","referencedDeclaration":48530,"src":"15107:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,struct ValidatorSet storage pointer,address)"}},"id":45276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15107:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45277,"nodeType":"ExpressionStatement","src":"15107:49:69"},{"eventCall":{"arguments":[{"id":45279,"name":"mayBeDemoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45222,"src":"15200:12:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45280,"name":"mayBePromoted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45232,"src":"15214:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":45278,"name":"ActiveValidatorReplaced","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44341,"src":"15176:23:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":45281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45282,"nodeType":"EmitStatement","src":"15171:57:69"},{"functionReturnParameters":45091,"id":45283,"nodeType":"Return","src":"15242:7:69"}]}},{"eventCall":{"arguments":[{"id":45287,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45087,"src":"15307:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45288,"name":"newPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45089,"src":"15318:8:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45286,"name":"ActiveValidatorCollateralUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44317,"src":"15274:32:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15274:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45290,"nodeType":"EmitStatement","src":"15269:58:69"}]},"documentation":{"id":45082,"nodeType":"StructuredDocumentation","src":"13223:92:69","text":"@notice Reshuffles the active and waiting validators when a power reduction is confirmed"},"implemented":true,"kind":"function","modifiers":[],"name":"reduceReshuffle","nameLocation":"13329:15:69","parameters":{"id":45090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45085,"mutability":"mutable","name":"self","nameLocation":"13366:4:69","nodeType":"VariableDeclaration","scope":45292,"src":"13345:25:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":45084,"nodeType":"UserDefinedTypeName","pathNode":{"id":45083,"name":"ValidatorSet","nameLocations":["13345:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"13345:12:69"},"referencedDeclaration":50190,"src":"13345:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":45087,"mutability":"mutable","name":"validator","nameLocation":"13380:9:69","nodeType":"VariableDeclaration","scope":45292,"src":"13372:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45086,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45089,"mutability":"mutable","name":"newPower","nameLocation":"13399:8:69","nodeType":"VariableDeclaration","scope":45292,"src":"13391:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45088,"name":"uint256","nodeType":"ElementaryTypeName","src":"13391:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13344:64:69"},"returnParameters":{"id":45091,"nodeType":"ParameterList","parameters":[],"src":"13418:0:69"},"scope":45293,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorSet","contractDependencies":[],"contractKind":"library","documentation":{"id":44303,"nodeType":"StructuredDocumentation","src":"3860:40:69","text":"The util library for `ValidatorSet`"},"fullyImplemented":true,"linearizedBaseContracts":[45293],"name":"LibValidatorSet","nameLocation":"3908:15:69","scope":46441,"usedErrors":[]},{"id":46176,"nodeType":"ContractDefinition","src":"15338:10785:69","nodes":[{"id":45297,"nodeType":"UsingForDirective","src":"15363:53:69","nodes":[],"global":false,"libraryName":{"id":45294,"name":"LibStakingReleaseQueue","nameLocations":["15369:22:69"],"nodeType":"IdentifierPath","referencedDeclaration":44302,"src":"15369:22:69"},"typeName":{"id":45296,"nodeType":"UserDefinedTypeName","pathNode":{"id":45295,"name":"StakingReleaseQueue","nameLocations":["15396:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"15396:19:69"},"referencedDeclaration":50150,"src":"15396:19:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}}},{"id":45301,"nodeType":"UsingForDirective","src":"15421:47:69","nodes":[],"global":false,"libraryName":{"id":45298,"name":"LibStakingChangeLog","nameLocations":["15427:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"15427:19:69"},"typeName":{"id":45300,"nodeType":"UserDefinedTypeName","pathNode":{"id":45299,"name":"StakingChangeLog","nameLocations":["15451:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"15451:16:69"},"referencedDeclaration":50123,"src":"15451:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":45305,"nodeType":"UsingForDirective","src":"15473:39:69","nodes":[],"global":false,"libraryName":{"id":45302,"name":"LibValidatorSet","nameLocations":["15479:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"15479:15:69"},"typeName":{"id":45304,"nodeType":"UserDefinedTypeName","pathNode":{"id":45303,"name":"ValidatorSet","nameLocations":["15499:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"15499:12:69"},"referencedDeclaration":50190,"src":"15499:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":45309,"nodeType":"UsingForDirective","src":"15517:25:69","nodes":[],"global":false,"libraryName":{"id":45306,"name":"LibMaxPQ","nameLocations":["15523:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49016,"src":"15523:8:69"},"typeName":{"id":45308,"nodeType":"UserDefinedTypeName","pathNode":{"id":45307,"name":"MaxPQ","nameLocations":["15536:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"15536:5:69"},"referencedDeclaration":48411,"src":"15536:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}}},{"id":45313,"nodeType":"UsingForDirective","src":"15547:25:69","nodes":[],"global":false,"libraryName":{"id":45310,"name":"LibMinPQ","nameLocations":["15553:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":49635,"src":"15553:8:69"},"typeName":{"id":45312,"nodeType":"UserDefinedTypeName","pathNode":{"id":45311,"name":"MinPQ","nameLocations":["15566:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"15566:5:69"},"referencedDeclaration":49029,"src":"15566:5:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}}},{"id":45316,"nodeType":"UsingForDirective","src":"15577:34:69","nodes":[],"global":false,"libraryName":{"id":45314,"name":"Address","nameLocations":["15583:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"15583:7:69"},"typeName":{"id":45315,"name":"address","nodeType":"ElementaryTypeName","src":"15595:15:69","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":45319,"nodeType":"VariableDeclaration","src":"15617:57:69","nodes":[],"constant":true,"mutability":"constant","name":"INITIAL_CONFIGURATION_NUMBER","nameLocation":"15642:28:69","scope":46176,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45317,"name":"uint64","nodeType":"ElementaryTypeName","src":"15617:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":45318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15673:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":45323,"nodeType":"EventDefinition","src":"15681:50:69","nodes":[],"anonymous":false,"eventSelector":"246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63","name":"ConfigurationNumberConfirmed","nameLocation":"15687:28:69","parameters":{"id":45322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45321,"indexed":false,"mutability":"mutable","name":"number","nameLocation":"15723:6:69","nodeType":"VariableDeclaration","scope":45323,"src":"15716:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45320,"name":"uint64","nodeType":"ElementaryTypeName","src":"15716:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"15715:15:69"}},{"id":45329,"nodeType":"EventDefinition","src":"15736:59:69","nodes":[],"anonymous":false,"eventSelector":"197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514","name":"CollateralClaimed","nameLocation":"15742:17:69","parameters":{"id":45328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45325,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"15768:9:69","nodeType":"VariableDeclaration","scope":45329,"src":"15760:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45324,"name":"address","nodeType":"ElementaryTypeName","src":"15760:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45327,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"15787:6:69","nodeType":"VariableDeclaration","scope":45329,"src":"15779:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45326,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15759:35:69"}},{"id":45350,"nodeType":"FunctionDefinition","src":"15846:221:69","nodes":[],"body":{"id":45349,"nodeType":"Block","src":"15934:133:69","nodes":[],"statements":[{"assignments":[45338],"declarations":[{"constant":false,"id":45338,"mutability":"mutable","name":"s","nameLocation":"15971:1:69","nodeType":"VariableDeclaration","scope":45349,"src":"15944:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45337,"nodeType":"UserDefinedTypeName","pathNode":{"id":45336,"name":"SubnetActorStorage","nameLocations":["15944:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"15944:18:69"},"referencedDeclaration":47281,"src":"15944:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45342,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45339,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"15975:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15997:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"15975:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15975:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15944:65:69"},{"expression":{"arguments":[{"id":45346,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45331,"src":"16050:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45343,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45338,"src":"16026:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16028:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16026:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16041:8:69","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44385,"src":"16026:23:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (uint256)"}},"id":45347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16026:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45335,"id":45348,"nodeType":"Return","src":"16019:41:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"15855:8:69","parameters":{"id":45332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45331,"mutability":"mutable","name":"validator","nameLocation":"15881:9:69","nodeType":"VariableDeclaration","scope":45350,"src":"15873:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45330,"name":"address","nodeType":"ElementaryTypeName","src":"15873:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15863:33:69"},"returnParameters":{"id":45335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45334,"mutability":"mutable","name":"power","nameLocation":"15927:5:69","nodeType":"VariableDeclaration","scope":45350,"src":"15919:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45333,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15918:15:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45373,"nodeType":"FunctionDefinition","src":"16136:225:69","nodes":[],"body":{"id":45372,"nodeType":"Block","src":"16211:150:69","nodes":[],"statements":[{"assignments":[45360],"declarations":[{"constant":false,"id":45360,"mutability":"mutable","name":"s","nameLocation":"16248:1:69","nodeType":"VariableDeclaration","scope":45372,"src":"16221:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45359,"nodeType":"UserDefinedTypeName","pathNode":{"id":45358,"name":"SubnetActorStorage","nameLocations":["16221:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16221:18:69"},"referencedDeclaration":47281,"src":"16221:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45364,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45361,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16252:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16274:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16252:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16252:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16221:65:69"},{"expression":{"arguments":[{"id":45369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45353,"src":"16344:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45365,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45360,"src":"16303:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16303:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16318:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"16303:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16335:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":49085,"src":"16303:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer,address) view returns (bool)"}},"id":45370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16303:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45357,"id":45371,"nodeType":"Return","src":"16296:58:69"}]},"documentation":{"id":45351,"nodeType":"StructuredDocumentation","src":"16073:58:69","text":"@notice Checks if the validator is an active validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"16145:17:69","parameters":{"id":45354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45353,"mutability":"mutable","name":"validator","nameLocation":"16171:9:69","nodeType":"VariableDeclaration","scope":45373,"src":"16163:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45352,"name":"address","nodeType":"ElementaryTypeName","src":"16163:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16162:19:69"},"returnParameters":{"id":45357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45373,"src":"16205:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45355,"name":"bool","nodeType":"ElementaryTypeName","src":"16205:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16204:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45396,"nodeType":"FunctionDefinition","src":"16430:227:69","nodes":[],"body":{"id":45395,"nodeType":"Block","src":"16506:151:69","nodes":[],"statements":[{"assignments":[45383],"declarations":[{"constant":false,"id":45383,"mutability":"mutable","name":"s","nameLocation":"16543:1:69","nodeType":"VariableDeclaration","scope":45395,"src":"16516:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45382,"nodeType":"UserDefinedTypeName","pathNode":{"id":45381,"name":"SubnetActorStorage","nameLocations":["16516:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"16516:18:69"},"referencedDeclaration":47281,"src":"16516:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45387,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45384,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"16547:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16569:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"16547:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16547:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16516:65:69"},{"expression":{"arguments":[{"id":45392,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45376,"src":"16640:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"expression":{"id":45388,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45383,"src":"16598:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"16598:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16613:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"16598:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16631:8:69","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":48467,"src":"16598:41:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer,address) view returns (bool)"}},"id":45393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16598:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45380,"id":45394,"nodeType":"Return","src":"16591:59:69"}]},"documentation":{"id":45374,"nodeType":"StructuredDocumentation","src":"16367:58:69","text":"@notice Checks if the validator is a waiting validator"},"implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"16439:18:69","parameters":{"id":45377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45376,"mutability":"mutable","name":"validator","nameLocation":"16466:9:69","nodeType":"VariableDeclaration","scope":45396,"src":"16458:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45375,"name":"address","nodeType":"ElementaryTypeName","src":"16458:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16457:19:69"},"returnParameters":{"id":45380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45396,"src":"16500:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45378,"name":"bool","nodeType":"ElementaryTypeName","src":"16500:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16499:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45409,"nodeType":"FunctionDefinition","src":"16912:103:69","nodes":[],"body":{"id":45408,"nodeType":"Block","src":"16976:39:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":45405,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45399,"src":"17003:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45404,"name":"hasStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45434,"src":"16993:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":45406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16993:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45403,"id":45407,"nodeType":"Return","src":"16986:22:69"}]},"documentation":{"id":45397,"nodeType":"StructuredDocumentation","src":"16663:244:69","text":"@notice Checks if the provided address is a validator (active or waiting) based on its total collateral.\n @param addr The address to check for validator status.\n @return A boolean indicating whether the address is a validator."},"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"16921:11:69","parameters":{"id":45400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45399,"mutability":"mutable","name":"addr","nameLocation":"16941:4:69","nodeType":"VariableDeclaration","scope":45409,"src":"16933:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45398,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16932:14:69"},"returnParameters":{"id":45403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45409,"src":"16970:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45401,"name":"bool","nodeType":"ElementaryTypeName","src":"16970:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16969:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45434,"nodeType":"FunctionDefinition","src":"17217:280:69","nodes":[],"body":{"id":45433,"nodeType":"Block","src":"17284:213:69","nodes":[],"statements":[{"assignments":[45419],"declarations":[{"constant":false,"id":45419,"mutability":"mutable","name":"s","nameLocation":"17321:1:69","nodeType":"VariableDeclaration","scope":45433,"src":"17294:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45418,"nodeType":"UserDefinedTypeName","pathNode":{"id":45417,"name":"SubnetActorStorage","nameLocations":["17294:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17294:18:69"},"referencedDeclaration":47281,"src":"17294:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45423,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45420,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17325:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17347:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17325:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17325:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17294:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45424,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45419,"src":"17433:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17435:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17433:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17448:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"17433:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45428,"indexExpression":{"id":45427,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45412,"src":"17459:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17433:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17470:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"17433:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":45430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17433:57:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":45416,"id":45432,"nodeType":"Return","src":"17426:64:69"}]},"documentation":{"id":45410,"nodeType":"StructuredDocumentation","src":"17021:191:69","text":"@notice Checks if the validator has staked before.\n @param validator The address to check for staking status.\n @return A boolean indicating whether the validator has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"hasStaked","nameLocation":"17226:9:69","parameters":{"id":45413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45412,"mutability":"mutable","name":"validator","nameLocation":"17244:9:69","nodeType":"VariableDeclaration","scope":45434,"src":"17236:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45411,"name":"address","nodeType":"ElementaryTypeName","src":"17236:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17235:19:69"},"returnParameters":{"id":45416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45434,"src":"17278:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45414,"name":"bool","nodeType":"ElementaryTypeName","src":"17278:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17277:6:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45452,"nodeType":"FunctionDefinition","src":"17503:201:69","nodes":[],"body":{"id":45451,"nodeType":"Block","src":"17567:137:69","nodes":[],"statements":[{"assignments":[45441],"declarations":[{"constant":false,"id":45441,"mutability":"mutable","name":"s","nameLocation":"17604:1:69","nodeType":"VariableDeclaration","scope":45451,"src":"17577:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45440,"nodeType":"UserDefinedTypeName","pathNode":{"id":45439,"name":"SubnetActorStorage","nameLocations":["17577:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17577:18:69"},"referencedDeclaration":47281,"src":"17577:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45445,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45442,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17608:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17630:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17608:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17577:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45446,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45441,"src":"17659:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17661:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17659:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17674:21:69","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44417,"src":"17659:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint16)"}},"id":45449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17659:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45438,"id":45450,"nodeType":"Return","src":"17652:45:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"totalActiveValidators","nameLocation":"17512:21:69","parameters":{"id":45435,"nodeType":"ParameterList","parameters":[],"src":"17533:2:69"},"returnParameters":{"id":45438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45452,"src":"17559:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45436,"name":"uint16","nodeType":"ElementaryTypeName","src":"17559:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17558:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45478,"nodeType":"FunctionDefinition","src":"17792:243:69","nodes":[],"body":{"id":45477,"nodeType":"Block","src":"17850:185:69","nodes":[],"statements":[{"assignments":[45460],"declarations":[{"constant":false,"id":45460,"mutability":"mutable","name":"s","nameLocation":"17887:1:69","nodeType":"VariableDeclaration","scope":45477,"src":"17860:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45459,"nodeType":"UserDefinedTypeName","pathNode":{"id":45458,"name":"SubnetActorStorage","nameLocations":["17860:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"17860:18:69"},"referencedDeclaration":47281,"src":"17860:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45464,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45461,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"17891:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17913:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"17891:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17860:65:69"},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":45475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45465,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17942:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17944:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17942:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17957:17:69","memberName":"waitingValidators","nodeType":"MemberAccess","referencedDeclaration":50189,"src":"17942:32:69","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage","typeString":"struct MaxPQ storage ref"}},"id":45468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"17942:40:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MaxPQ_$48411_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MaxPQ_$48411_storage_ptr_$","typeString":"function (struct MaxPQ storage pointer) view returns (uint16)"}},"id":45469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17942:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":45470,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45460,"src":"17987:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17989:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17987:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18002:16:69","memberName":"activeValidators","nodeType":"MemberAccess","referencedDeclaration":50185,"src":"17987:31:69","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage","typeString":"struct MinPQ storage ref"}},"id":45473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18019:7:69","memberName":"getSize","nodeType":"MemberAccess","referencedDeclaration":49051,"src":"17987:39:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_MinPQ_$49029_storage_ptr_$returns$_t_uint16_$attached_to$_t_struct$_MinPQ_$49029_storage_ptr_$","typeString":"function (struct MinPQ storage pointer) view returns (uint16)"}},"id":45474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17987:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"17942:86:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":45457,"id":45476,"nodeType":"Return","src":"17935:93:69"}]},"documentation":{"id":45453,"nodeType":"StructuredDocumentation","src":"17710:77:69","text":"@notice Gets the total number of validators, including active and waiting"},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidators","nameLocation":"17801:15:69","parameters":{"id":45454,"nodeType":"ParameterList","parameters":[],"src":"17816:2:69"},"returnParameters":{"id":45457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45478,"src":"17842:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":45455,"name":"uint16","nodeType":"ElementaryTypeName","src":"17842:6:69","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"17841:8:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45496,"nodeType":"FunctionDefinition","src":"18041:214:69","nodes":[],"body":{"id":45495,"nodeType":"Block","src":"18112:143:69","nodes":[],"statements":[{"assignments":[45485],"declarations":[{"constant":false,"id":45485,"mutability":"mutable","name":"s","nameLocation":"18149:1:69","nodeType":"VariableDeclaration","scope":45495,"src":"18122:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45484,"nodeType":"UserDefinedTypeName","pathNode":{"id":45483,"name":"SubnetActorStorage","nameLocations":["18122:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18122:18:69"},"referencedDeclaration":47281,"src":"18122:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45489,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45486,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18153:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18175:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18153:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18153:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18122:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45490,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45485,"src":"18204:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18204:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18204:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18204:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45482,"id":45494,"nodeType":"Return","src":"18197:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"18050:27:69","parameters":{"id":45479,"nodeType":"ParameterList","parameters":[],"src":"18077:2:69"},"returnParameters":{"id":45482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45496,"src":"18103:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45480,"name":"uint256","nodeType":"ElementaryTypeName","src":"18103:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18102:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45514,"nodeType":"FunctionDefinition","src":"18261:205:69","nodes":[],"body":{"id":45513,"nodeType":"Block","src":"18323:143:69","nodes":[],"statements":[{"assignments":[45503],"declarations":[{"constant":false,"id":45503,"mutability":"mutable","name":"s","nameLocation":"18360:1:69","nodeType":"VariableDeclaration","scope":45513,"src":"18333:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45502,"nodeType":"UserDefinedTypeName","pathNode":{"id":45501,"name":"SubnetActorStorage","nameLocations":["18333:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18333:18:69"},"referencedDeclaration":47281,"src":"18333:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45507,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45504,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18364:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18386:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18364:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18364:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18333:65:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":45508,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45503,"src":"18415:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18417:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18415:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18430:27:69","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44400,"src":"18415:42:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":45511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45500,"id":45512,"nodeType":"Return","src":"18408:51:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"18270:18:69","parameters":{"id":45497,"nodeType":"ParameterList","parameters":[],"src":"18288:2:69"},"returnParameters":{"id":45500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45514,"src":"18314:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45498,"name":"uint256","nodeType":"ElementaryTypeName","src":"18314:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18313:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45537,"nodeType":"FunctionDefinition","src":"18541:236:69","nodes":[],"body":{"id":45536,"nodeType":"Block","src":"18626:151:69","nodes":[],"statements":[{"assignments":[45524],"declarations":[{"constant":false,"id":45524,"mutability":"mutable","name":"s","nameLocation":"18663:1:69","nodeType":"VariableDeclaration","scope":45536,"src":"18636:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45523,"nodeType":"UserDefinedTypeName","pathNode":{"id":45522,"name":"SubnetActorStorage","nameLocations":["18636:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"18636:18:69"},"referencedDeclaration":47281,"src":"18636:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45528,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45525,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"18667:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"18667:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18667:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18636:65:69"},{"expression":{"expression":{"baseExpression":{"expression":{"expression":{"id":45529,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45524,"src":"18718:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18720:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"18718:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18733:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"18718:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45533,"indexExpression":{"id":45532,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45517,"src":"18744:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18718:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18755:15:69","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":50157,"src":"18718:52:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":45521,"id":45535,"nodeType":"Return","src":"18711:59:69"}]},"documentation":{"id":45515,"nodeType":"StructuredDocumentation","src":"18472:64:69","text":"@notice Gets the total collateral the validators has staked."},"implemented":true,"kind":"function","modifiers":[],"name":"totalValidatorCollateral","nameLocation":"18550:24:69","parameters":{"id":45518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45517,"mutability":"mutable","name":"validator","nameLocation":"18583:9:69","nodeType":"VariableDeclaration","scope":45537,"src":"18575:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45516,"name":"address","nodeType":"ElementaryTypeName","src":"18575:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18574:19:69"},"returnParameters":{"id":45521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45520,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45537,"src":"18617:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45519,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18616:9:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45562,"nodeType":"FunctionDefinition","src":"18937:227:69","nodes":[],"body":{"id":45561,"nodeType":"Block","src":"19018:146:69","nodes":[],"statements":[{"assignments":[45547],"declarations":[{"constant":false,"id":45547,"mutability":"mutable","name":"s","nameLocation":"19055:1:69","nodeType":"VariableDeclaration","scope":45561,"src":"19028:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45546,"nodeType":"UserDefinedTypeName","pathNode":{"id":45545,"name":"SubnetActorStorage","nameLocations":["19028:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19028:18:69"},"referencedDeclaration":47281,"src":"19028:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45551,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45548,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19059:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19081:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19059:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19059:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19028:65:69"},{"expression":{"arguments":[{"id":45557,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45540,"src":"19140:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45558,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45542,"src":"19151:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45552,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45547,"src":"19103:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19105:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19103:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19118:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"19103:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19103:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45560,"nodeType":"ExpressionStatement","src":"19103:54:69"}]},"documentation":{"id":45538,"nodeType":"StructuredDocumentation","src":"18849:83:69","text":"@notice Set the validator federated power directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPowerWithConfirm","nameLocation":"18946:28:69","parameters":{"id":45543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45540,"mutability":"mutable","name":"validator","nameLocation":"18983:9:69","nodeType":"VariableDeclaration","scope":45562,"src":"18975:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45539,"name":"address","nodeType":"ElementaryTypeName","src":"18975:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45542,"mutability":"mutable","name":"power","nameLocation":"19002:5:69","nodeType":"VariableDeclaration","scope":45562,"src":"18994:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45541,"name":"uint256","nodeType":"ElementaryTypeName","src":"18994:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18974:34:69"},"returnParameters":{"id":45544,"nodeType":"ParameterList","parameters":[],"src":"19018:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45587,"nodeType":"FunctionDefinition","src":"19251:224:69","nodes":[],"body":{"id":45586,"nodeType":"Block","src":"19336:139:69","nodes":[],"statements":[{"assignments":[45572],"declarations":[{"constant":false,"id":45572,"mutability":"mutable","name":"s","nameLocation":"19373:1:69","nodeType":"VariableDeclaration","scope":45586,"src":"19346:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45571,"nodeType":"UserDefinedTypeName","pathNode":{"id":45570,"name":"SubnetActorStorage","nameLocations":["19346:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19346:18:69"},"referencedDeclaration":47281,"src":"19346:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45576,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45573,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19377:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19399:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19377:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19377:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19346:65:69"},{"expression":{"arguments":[{"id":45582,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45565,"src":"19448:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45583,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"19459:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45577,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45572,"src":"19421:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19423:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19421:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19436:11:69","memberName":"setMetadata","nodeType":"MemberAccess","referencedDeclaration":44693,"src":"19421:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,bytes calldata)"}},"id":45584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19421:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45585,"nodeType":"ExpressionStatement","src":"19421:47:69"}]},"documentation":{"id":45563,"nodeType":"StructuredDocumentation","src":"19170:76:69","text":"@notice Set the validator metadata directly without queueing the request"},"implemented":true,"kind":"function","modifiers":[],"name":"setMetadataWithConfirm","nameLocation":"19260:22:69","parameters":{"id":45568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45565,"mutability":"mutable","name":"validator","nameLocation":"19291:9:69","nodeType":"VariableDeclaration","scope":45587,"src":"19283:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45564,"name":"address","nodeType":"ElementaryTypeName","src":"19283:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45567,"mutability":"mutable","name":"metadata","nameLocation":"19317:8:69","nodeType":"VariableDeclaration","scope":45587,"src":"19302:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45566,"name":"bytes","nodeType":"ElementaryTypeName","src":"19302:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19282:44:69"},"returnParameters":{"id":45569,"nodeType":"ParameterList","parameters":[],"src":"19336:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45696,"nodeType":"FunctionDefinition","src":"19573:1335:69","nodes":[],"body":{"id":45695,"nodeType":"Block","src":"19645:1263:69","nodes":[],"statements":[{"assignments":[45597],"declarations":[{"constant":false,"id":45597,"mutability":"mutable","name":"s","nameLocation":"19682:1:69","nodeType":"VariableDeclaration","scope":45695,"src":"19655:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45596,"nodeType":"UserDefinedTypeName","pathNode":{"id":45595,"name":"SubnetActorStorage","nameLocations":["19655:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"19655:18:69"},"referencedDeclaration":47281,"src":"19655:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45601,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45598,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"19686:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19708:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"19686:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19686:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19655:65:69"},{"expression":{"arguments":[{"id":45607,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19820:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45608,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19831:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45602,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19791:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19791:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"19791:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45610,"nodeType":"ExpressionStatement","src":"19791:47:69"},{"expression":{"arguments":[{"id":45616,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"19943:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45617,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45592,"src":"19954:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45611,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19915:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"19913:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19928:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"19913:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19913:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45619,"nodeType":"ExpressionStatement","src":"19913:48:69"},{"condition":{"id":45622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19976:15:69","subExpression":{"expression":{"id":45620,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"19977:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19979:12:69","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"19977:14:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45694,"nodeType":"IfStatement","src":"19972:930:69","trueBody":{"id":45693,"nodeType":"Block","src":"19993:909:69","statements":[{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"alreadyValidator","nameLocation":"20118:16:69","nodeType":"VariableDeclaration","scope":45693,"src":"20113:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45623,"name":"bool","nodeType":"ElementaryTypeName","src":"20113:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":45625,"nodeType":"VariableDeclarationStatement","src":"20113:21:69"},{"assignments":[45627],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"length","nameLocation":"20156:6:69","nodeType":"VariableDeclaration","scope":45693,"src":"20148:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45626,"name":"uint256","nodeType":"ElementaryTypeName","src":"20148:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45631,"initialValue":{"expression":{"expression":{"id":45628,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20165:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20167:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20165:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20185:6:69","memberName":"length","nodeType":"MemberAccess","src":"20165:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20148:43:69"},{"body":{"id":45656,"nodeType":"Block","src":"20235:240:69","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":45644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"expression":{"id":45638,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20257:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20259:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20257:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45641,"indexExpression":{"id":45640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20277:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20257:22:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage","typeString":"struct Validator storage ref"}},"id":45642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20280:4:69","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":50208,"src":"20257:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":45643,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20288:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20257:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45651,"nodeType":"IfStatement","src":"20253:137:69","trueBody":{"id":45650,"nodeType":"Block","src":"20299:91:69","statements":[{"expression":{"id":45647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45645,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20321:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":45646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20340:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20321:23:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45648,"nodeType":"ExpressionStatement","src":"20321:23:69"},{"id":45649,"nodeType":"Break","src":"20366:5:69"}]}},{"id":45655,"nodeType":"UncheckedBlock","src":"20407:54:69","statements":[{"expression":{"id":45653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"20439:3:69","subExpression":{"id":45652,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20441:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45654,"nodeType":"ExpressionStatement","src":"20439:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45635,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45633,"src":"20221:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":45636,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45627,"src":"20225:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20221:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45657,"initializationExpression":{"assignments":[45633],"declarations":[{"constant":false,"id":45633,"mutability":"mutable","name":"i","nameLocation":"20218:1:69","nodeType":"VariableDeclaration","scope":45657,"src":"20210:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45632,"name":"uint256","nodeType":"ElementaryTypeName","src":"20210:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45634,"nodeType":"VariableDeclarationStatement","src":"20210:9:69"},"nodeType":"ForStatement","src":"20205:270:69"},{"condition":{"id":45659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20492:17:69","subExpression":{"id":45658,"name":"alreadyValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45624,"src":"20493:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45692,"nodeType":"IfStatement","src":"20488:404:69","trueBody":{"id":45691,"nodeType":"Block","src":"20511:381:69","statements":[{"assignments":[45661],"declarations":[{"constant":false,"id":45661,"mutability":"mutable","name":"collateral","nameLocation":"20537:10:69","nodeType":"VariableDeclaration","scope":45691,"src":"20529:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45660,"name":"uint256","nodeType":"ElementaryTypeName","src":"20529:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45668,"initialValue":{"expression":{"baseExpression":{"expression":{"expression":{"id":45662,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20550:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20550:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20565:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20550:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45666,"indexExpression":{"id":45665,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20576:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20550:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20587:19:69","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"20550:56:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20529:77:69"},{"assignments":[45671],"declarations":[{"constant":false,"id":45671,"mutability":"mutable","name":"val","nameLocation":"20641:3:69","nodeType":"VariableDeclaration","scope":45691,"src":"20624:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator"},"typeName":{"id":45670,"nodeType":"UserDefinedTypeName","pathNode":{"id":45669,"name":"Validator","nameLocations":["20624:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"20624:9:69"},"referencedDeclaration":50211,"src":"20624:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"visibility":"internal"}],"id":45682,"initialValue":{"arguments":[{"id":45673,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20685:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45674,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45661,"src":"20724:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"expression":{"expression":{"id":45675,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20766:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20768:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20766:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"20766:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":45679,"indexExpression":{"id":45678,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45590,"src":"20792:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20766:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":45680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20803:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"20766:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":45672,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"20647:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50211_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":45681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["20679:4:69","20716:6:69","20756:8:69"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"20647:183:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"VariableDeclarationStatement","src":"20624:206:69"},{"expression":{"arguments":[{"id":45688,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45671,"src":"20873:3:69","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":45683,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45597,"src":"20848:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:17:69","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"20848:19:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":45687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20868:4:69","memberName":"push","nodeType":"MemberAccess","src":"20848:24:69","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50211_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":45689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20848:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45690,"nodeType":"ExpressionStatement","src":"20848:29:69"}]}}]}}]},"documentation":{"id":45588,"nodeType":"StructuredDocumentation","src":"19481:87:69","text":"@notice Confirm the deposit directly without going through the confirmation process"},"implemented":true,"kind":"function","modifiers":[],"name":"depositWithConfirm","nameLocation":"19582:18:69","parameters":{"id":45593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45590,"mutability":"mutable","name":"validator","nameLocation":"19609:9:69","nodeType":"VariableDeclaration","scope":45696,"src":"19601:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45589,"name":"address","nodeType":"ElementaryTypeName","src":"19601:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45592,"mutability":"mutable","name":"amount","nameLocation":"19628:6:69","nodeType":"VariableDeclaration","scope":45696,"src":"19620:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45591,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19600:35:69"},"returnParameters":{"id":45594,"nodeType":"ParameterList","parameters":[],"src":"19645:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45738,"nodeType":"FunctionDefinition","src":"21098:504:69","nodes":[],"body":{"id":45737,"nodeType":"Block","src":"21171:431:69","nodes":[],"statements":[{"assignments":[45706],"declarations":[{"constant":false,"id":45706,"mutability":"mutable","name":"s","nameLocation":"21208:1:69","nodeType":"VariableDeclaration","scope":45737,"src":"21181:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45705,"nodeType":"UserDefinedTypeName","pathNode":{"id":45704,"name":"SubnetActorStorage","nameLocations":["21181:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21181:18:69"},"referencedDeclaration":47281,"src":"21181:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45710,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45707,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21212:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21234:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21212:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21212:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21181:65:69"},{"expression":{"arguments":[{"id":45716,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21347:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45717,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21358:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45711,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21317:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21319:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21317:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"21317:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21317:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45719,"nodeType":"ExpressionStatement","src":"21317:48:69"},{"expression":{"arguments":[{"id":45725,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21471:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21482:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45720,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45706,"src":"21440:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21442:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"21440:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21455:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"21440:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21440:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45728,"nodeType":"ExpressionStatement","src":"21440:49:69"},{"expression":{"arguments":[{"id":45734,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"21588:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45731,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45699,"src":"21567:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21559:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45729,"name":"address","nodeType":"ElementaryTypeName","src":"21559:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21578:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"21559:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21559:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45736,"nodeType":"ExpressionStatement","src":"21559:36:69"}]},"documentation":{"id":45697,"nodeType":"StructuredDocumentation","src":"20914:179:69","text":"@notice Confirm the withdraw directly without going through the confirmation process\n and releasing from the gateway.\n @dev only use for non-bootstrapped subnets"},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawWithConfirm","nameLocation":"21107:19:69","parameters":{"id":45702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45699,"mutability":"mutable","name":"validator","nameLocation":"21135:9:69","nodeType":"VariableDeclaration","scope":45738,"src":"21127:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45698,"name":"address","nodeType":"ElementaryTypeName","src":"21127:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45701,"mutability":"mutable","name":"amount","nameLocation":"21154:6:69","nodeType":"VariableDeclaration","scope":45738,"src":"21146:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45700,"name":"uint256","nodeType":"ElementaryTypeName","src":"21146:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21126:35:69"},"returnParameters":{"id":45703,"nodeType":"ParameterList","parameters":[],"src":"21171:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45766,"nodeType":"FunctionDefinition","src":"21732:280:69","nodes":[],"body":{"id":45765,"nodeType":"Block","src":"21828:184:69","nodes":[],"statements":[{"assignments":[45750],"declarations":[{"constant":false,"id":45750,"mutability":"mutable","name":"s","nameLocation":"21865:1:69","nodeType":"VariableDeclaration","scope":45765,"src":"21838:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45749,"nodeType":"UserDefinedTypeName","pathNode":{"id":45748,"name":"SubnetActorStorage","nameLocations":["21838:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"21838:18:69"},"referencedDeclaration":47281,"src":"21838:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45754,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45751,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"21869:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21891:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"21869:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21869:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21838:65:69"},{"expression":{"arguments":[{"id":45760,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45741,"src":"21959:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45761,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45743,"src":"21980:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45762,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45745,"src":"21997:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45755,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45750,"src":"21913:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21915:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"21913:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21925:21:69","memberName":"federatedPowerRequest","nodeType":"MemberAccess","referencedDeclaration":46528,"src":"21913:33:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata,uint256)"}},"id":45763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21948:9:69","21970:8:69","21990:5:69"],"names":["validator","metadata","power"],"nodeType":"FunctionCall","src":"21913:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45764,"nodeType":"ExpressionStatement","src":"21913:92:69"}]},"documentation":{"id":45739,"nodeType":"StructuredDocumentation","src":"21675:52:69","text":"@notice Set the federated power of the validator"},"implemented":true,"kind":"function","modifiers":[],"name":"setFederatedPower","nameLocation":"21741:17:69","parameters":{"id":45746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45741,"mutability":"mutable","name":"validator","nameLocation":"21767:9:69","nodeType":"VariableDeclaration","scope":45766,"src":"21759:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45740,"name":"address","nodeType":"ElementaryTypeName","src":"21759:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45743,"mutability":"mutable","name":"metadata","nameLocation":"21793:8:69","nodeType":"VariableDeclaration","scope":45766,"src":"21778:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45742,"name":"bytes","nodeType":"ElementaryTypeName","src":"21778:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45745,"mutability":"mutable","name":"amount","nameLocation":"21811:6:69","nodeType":"VariableDeclaration","scope":45766,"src":"21803:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45744,"name":"uint256","nodeType":"ElementaryTypeName","src":"21803:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21758:60:69"},"returnParameters":{"id":45747,"nodeType":"ParameterList","parameters":[],"src":"21828:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45791,"nodeType":"FunctionDefinition","src":"22061:223:69","nodes":[],"body":{"id":45790,"nodeType":"Block","src":"22144:140:69","nodes":[],"statements":[{"assignments":[45776],"declarations":[{"constant":false,"id":45776,"mutability":"mutable","name":"s","nameLocation":"22181:1:69","nodeType":"VariableDeclaration","scope":45790,"src":"22154:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45775,"nodeType":"UserDefinedTypeName","pathNode":{"id":45774,"name":"SubnetActorStorage","nameLocations":["22154:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22154:18:69"},"referencedDeclaration":47281,"src":"22154:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45780,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45777,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22185:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22207:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22185:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22185:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22154:65:69"},{"expression":{"arguments":[{"id":45786,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45769,"src":"22257:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45787,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45771,"src":"22268:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":45781,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45776,"src":"22229:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22229:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22241:15:69","memberName":"metadataRequest","nodeType":"MemberAccess","referencedDeclaration":46488,"src":"22229:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_bytes_calldata_ptr_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,bytes calldata)"}},"id":45788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45789,"nodeType":"ExpressionStatement","src":"22229:48:69"}]},"documentation":{"id":45767,"nodeType":"StructuredDocumentation","src":"22018:38:69","text":"@notice Set the validator metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"setValidatorMetadata","nameLocation":"22070:20:69","parameters":{"id":45772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45769,"mutability":"mutable","name":"validator","nameLocation":"22099:9:69","nodeType":"VariableDeclaration","scope":45791,"src":"22091:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45768,"name":"address","nodeType":"ElementaryTypeName","src":"22091:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45771,"mutability":"mutable","name":"metadata","nameLocation":"22125:8:69","nodeType":"VariableDeclaration","scope":45791,"src":"22110:23:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45770,"name":"bytes","nodeType":"ElementaryTypeName","src":"22110:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22090:44:69"},"returnParameters":{"id":45773,"nodeType":"ParameterList","parameters":[],"src":"22144:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45825,"nodeType":"FunctionDefinition","src":"22329:256:69","nodes":[],"body":{"id":45824,"nodeType":"Block","src":"22390:195:69","nodes":[],"statements":[{"assignments":[45801],"declarations":[{"constant":false,"id":45801,"mutability":"mutable","name":"s","nameLocation":"22427:1:69","nodeType":"VariableDeclaration","scope":45824,"src":"22400:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45800,"nodeType":"UserDefinedTypeName","pathNode":{"id":45799,"name":"SubnetActorStorage","nameLocations":["22400:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22400:18:69"},"referencedDeclaration":47281,"src":"22400:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45805,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45802,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22431:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22453:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22431:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22431:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22400:65:69"},{"expression":{"arguments":[{"id":45811,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22503:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45812,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22514:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45806,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22476:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22478:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22476:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22488:14:69","memberName":"depositRequest","nodeType":"MemberAccess","referencedDeclaration":46602,"src":"22476:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22476:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45814,"nodeType":"ExpressionStatement","src":"22476:45:69"},{"expression":{"arguments":[{"id":45820,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45794,"src":"22560:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45821,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45796,"src":"22571:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45815,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45801,"src":"22531:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22533:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22531:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22546:13:69","memberName":"recordDeposit","nodeType":"MemberAccess","referencedDeclaration":44714,"src":"22531:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22531:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45823,"nodeType":"ExpressionStatement","src":"22531:47:69"}]},"documentation":{"id":45792,"nodeType":"StructuredDocumentation","src":"22290:34:69","text":"@notice Deposit the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"22338:7:69","parameters":{"id":45797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45794,"mutability":"mutable","name":"validator","nameLocation":"22354:9:69","nodeType":"VariableDeclaration","scope":45825,"src":"22346:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45793,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45796,"mutability":"mutable","name":"amount","nameLocation":"22373:6:69","nodeType":"VariableDeclaration","scope":45825,"src":"22365:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45795,"name":"uint256","nodeType":"ElementaryTypeName","src":"22365:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22345:35:69"},"returnParameters":{"id":45798,"nodeType":"ParameterList","parameters":[],"src":"22390:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45859,"nodeType":"FunctionDefinition","src":"22631:259:69","nodes":[],"body":{"id":45858,"nodeType":"Block","src":"22693:197:69","nodes":[],"statements":[{"assignments":[45835],"declarations":[{"constant":false,"id":45835,"mutability":"mutable","name":"s","nameLocation":"22730:1:69","nodeType":"VariableDeclaration","scope":45858,"src":"22703:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45834,"nodeType":"UserDefinedTypeName","pathNode":{"id":45833,"name":"SubnetActorStorage","nameLocations":["22703:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"22703:18:69"},"referencedDeclaration":47281,"src":"22703:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45839,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45836,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"22734:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22756:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"22734:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22734:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22703:65:69"},{"expression":{"arguments":[{"id":45845,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22807:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45846,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22818:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45840,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22779:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22781:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"22779:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22791:15:69","memberName":"withdrawRequest","nodeType":"MemberAccess","referencedDeclaration":46565,"src":"22779:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,uint256)"}},"id":45847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22779:46:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45848,"nodeType":"ExpressionStatement","src":"22779:46:69"},{"expression":{"arguments":[{"id":45854,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"22865:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45855,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45830,"src":"22876:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":45849,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"22835:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22837:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"22835:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":45853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22850:14:69","memberName":"recordWithdraw","nodeType":"MemberAccess","referencedDeclaration":44755,"src":"22835:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":45856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22835:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45857,"nodeType":"ExpressionStatement","src":"22835:48:69"}]},"documentation":{"id":45826,"nodeType":"StructuredDocumentation","src":"22591:35:69","text":"@notice Withdraw the collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22640:8:69","parameters":{"id":45831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45828,"mutability":"mutable","name":"validator","nameLocation":"22657:9:69","nodeType":"VariableDeclaration","scope":45859,"src":"22649:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45827,"name":"address","nodeType":"ElementaryTypeName","src":"22649:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45830,"mutability":"mutable","name":"amount","nameLocation":"22676:6:69","nodeType":"VariableDeclaration","scope":45859,"src":"22668:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45829,"name":"uint256","nodeType":"ElementaryTypeName","src":"22668:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22648:35:69"},"returnParameters":{"id":45832,"nodeType":"ParameterList","parameters":[],"src":"22693:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45886,"nodeType":"FunctionDefinition","src":"22999:244:69","nodes":[],"body":{"id":45885,"nodeType":"Block","src":"23052:191:69","nodes":[],"statements":[{"assignments":[45867],"declarations":[{"constant":false,"id":45867,"mutability":"mutable","name":"s","nameLocation":"23089:1:69","nodeType":"VariableDeclaration","scope":45885,"src":"23062:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45866,"nodeType":"UserDefinedTypeName","pathNode":{"id":45865,"name":"SubnetActorStorage","nameLocations":["23062:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23062:18:69"},"referencedDeclaration":47281,"src":"23062:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45871,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45868,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23093:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23115:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23093:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23093:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23062:65:69"},{"assignments":[45873],"declarations":[{"constant":false,"id":45873,"mutability":"mutable","name":"amount","nameLocation":"23145:6:69","nodeType":"VariableDeclaration","scope":45885,"src":"23137:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45872,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45879,"initialValue":{"arguments":[{"id":45877,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23175:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":45874,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45867,"src":"23154:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23156:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"23154:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":45876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23169:5:69","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":44301,"src":"23154:20:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$returns$_t_uint256_$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address) returns (uint256)"}},"id":45878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23154:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23137:48:69"},{"eventCall":{"arguments":[{"id":45881,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45862,"src":"23218:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45882,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45873,"src":"23229:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":45880,"name":"CollateralClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45329,"src":"23200:17:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":45883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23200:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45884,"nodeType":"EmitStatement","src":"23195:41:69"}]},"documentation":{"id":45860,"nodeType":"StructuredDocumentation","src":"22953:41:69","text":"@notice Claim the released collateral"},"implemented":true,"kind":"function","modifiers":[],"name":"claimCollateral","nameLocation":"23008:15:69","parameters":{"id":45863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45862,"mutability":"mutable","name":"validator","nameLocation":"23032:9:69","nodeType":"VariableDeclaration","scope":45886,"src":"23024:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45861,"name":"address","nodeType":"ElementaryTypeName","src":"23024:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23023:19:69"},"returnParameters":{"id":45864,"nodeType":"ParameterList","parameters":[],"src":"23052:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45942,"nodeType":"FunctionDefinition","src":"23357:439:69","nodes":[],"body":{"id":45941,"nodeType":"Block","src":"23414:382:69","nodes":[],"statements":[{"assignments":[45894],"declarations":[{"constant":false,"id":45894,"mutability":"mutable","name":"s","nameLocation":"23451:1:69","nodeType":"VariableDeclaration","scope":45941,"src":"23424:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45893,"nodeType":"UserDefinedTypeName","pathNode":{"id":45892,"name":"SubnetActorStorage","nameLocations":["23424:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23424:18:69"},"referencedDeclaration":47281,"src":"23424:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45898,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45895,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23455:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23477:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23455:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23455:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23424:65:69"},{"assignments":[45900],"declarations":[{"constant":false,"id":45900,"mutability":"mutable","name":"amount","nameLocation":"23507:6:69","nodeType":"VariableDeclaration","scope":45941,"src":"23499:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45899,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":45906,"initialValue":{"baseExpression":{"expression":{"expression":{"id":45901,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23516:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23518:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23516:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23533:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23516:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45905,"indexExpression":{"id":45904,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23541:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23516:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23499:50:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":45909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45907,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23564:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":45908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23574:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23564:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45914,"nodeType":"IfStatement","src":"23560:69:69","trueBody":{"id":45913,"nodeType":"Block","src":"23577:52:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45910,"name":"NoRewardToWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37450,"src":"23598:18:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23598:20:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45912,"nodeType":"RevertStatement","src":"23591:27:69"}]}},{"expression":{"id":45923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":45915,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23639:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23641:14:69","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"23639:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":45920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23656:7:69","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"23639:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":45921,"indexExpression":{"id":45918,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23664:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23639:33:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":45922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23675:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23639:37:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":45924,"nodeType":"ExpressionStatement","src":"23639:37:69"},{"expression":{"arguments":[{"id":45930,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23737:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":45926,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"23695:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"23695:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45925,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"23686:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23713:23:69","memberName":"releaseRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":40275,"src":"23686:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":45931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23686:58:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45932,"nodeType":"ExpressionStatement","src":"23686:58:69"},{"expression":{"arguments":[{"id":45938,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45900,"src":"23782:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":45935,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45889,"src":"23763:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23755:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":45933,"name":"address","nodeType":"ElementaryTypeName","src":"23755:8:69","stateMutability":"payable","typeDescriptions":{}}},"id":45936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":45937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23772:9:69","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"23755:26:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":45939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23755:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45940,"nodeType":"ExpressionStatement","src":"23755:34:69"}]},"documentation":{"id":45887,"nodeType":"StructuredDocumentation","src":"23249:103:69","text":"@notice method that allows a relayer to withdraw it's accumulated rewards using pull-based transfer"},"functionSelector":"82985e0b","implemented":true,"kind":"function","modifiers":[],"name":"claimRewardForRelayer","nameLocation":"23366:21:69","parameters":{"id":45890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45889,"mutability":"mutable","name":"relayer","nameLocation":"23396:7:69","nodeType":"VariableDeclaration","scope":45942,"src":"23388:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45888,"name":"address","nodeType":"ElementaryTypeName","src":"23388:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23387:17:69"},"returnParameters":{"id":45891,"nodeType":"ParameterList","parameters":[],"src":"23414:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":45965,"nodeType":"FunctionDefinition","src":"23802:247:69","nodes":[],"body":{"id":45964,"nodeType":"Block","src":"23875:174:69","nodes":[],"statements":[{"assignments":[45951],"declarations":[{"constant":false,"id":45951,"mutability":"mutable","name":"s","nameLocation":"23912:1:69","nodeType":"VariableDeclaration","scope":45964,"src":"23885:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45950,"nodeType":"UserDefinedTypeName","pathNode":{"id":45949,"name":"SubnetActorStorage","nameLocations":["23885:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"23885:18:69"},"referencedDeclaration":47281,"src":"23885:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45955,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45952,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"23916:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23938:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"23916:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23916:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23885:65:69"},{"expression":{"components":[{"expression":{"expression":{"id":45956,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"23968:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23970:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"23968:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23980:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"23968:35:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":45959,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45951,"src":"24005:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24007:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24005:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":45961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24017:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24005:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":45962,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23967:75:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":45948,"id":45963,"nodeType":"Return","src":"23960:82:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"23811:23:69","parameters":{"id":45943,"nodeType":"ParameterList","parameters":[],"src":"23834:2:69"},"returnParameters":{"id":45948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23859:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45944,"name":"uint64","nodeType":"ElementaryTypeName","src":"23859:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":45947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45965,"src":"23867:6:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45946,"name":"uint64","nodeType":"ElementaryTypeName","src":"23867:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23858:16:69"},"scope":46176,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46175,"nodeType":"FunctionDefinition","src":"24177:1944:69","nodes":[],"body":{"id":46174,"nodeType":"Block","src":"24237:1884:69","nodes":[],"statements":[{"assignments":[45973],"declarations":[{"constant":false,"id":45973,"mutability":"mutable","name":"s","nameLocation":"24274:1:69","nodeType":"VariableDeclaration","scope":46174,"src":"24247:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":45972,"nodeType":"UserDefinedTypeName","pathNode":{"id":45971,"name":"SubnetActorStorage","nameLocations":["24247:18:69"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"24247:18:69"},"referencedDeclaration":47281,"src":"24247:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":45977,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":45974,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"24278:21:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":45975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:10:69","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"24278:32:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":45976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24278:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24247:65:69"},{"assignments":[45980],"declarations":[{"constant":false,"id":45980,"mutability":"mutable","name":"changeSet","nameLocation":"24347:9:69","nodeType":"VariableDeclaration","scope":46174,"src":"24322:34:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45979,"nodeType":"UserDefinedTypeName","pathNode":{"id":45978,"name":"StakingChangeLog","nameLocations":["24322:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"24322:16:69"},"referencedDeclaration":50123,"src":"24322:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"id":45983,"initialValue":{"expression":{"id":45981,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24359:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":45982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24361:9:69","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"24359:11:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24322:48:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45984,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24385:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":45985,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24408:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24418:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"24408:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24385:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45992,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24513:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":45993,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24535:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24545:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24535:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24513:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":45998,"nodeType":"IfStatement","src":"24509:93:69","trueBody":{"id":45997,"nodeType":"Block","src":"24571:31:69","statements":[{"functionReturnParameters":45970,"id":45996,"nodeType":"Return","src":"24585:7:69"}]}},"id":45999,"nodeType":"IfStatement","src":"24381:221:69","trueBody":{"id":45991,"nodeType":"Block","src":"24443:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":45988,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"24464:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":45989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24464:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45990,"nodeType":"RevertStatement","src":"24457:35:69"}]}},{"assignments":[46001],"declarations":[{"constant":false,"id":46001,"mutability":"mutable","name":"start","nameLocation":"24619:5:69","nodeType":"VariableDeclaration","scope":46174,"src":"24612:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46000,"name":"uint64","nodeType":"ElementaryTypeName","src":"24612:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46004,"initialValue":{"expression":{"id":46002,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24627:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24637:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"24627:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24612:49:69"},{"body":{"id":46160,"nodeType":"Block","src":"24722:1257:69","statements":[{"assignments":[46014],"declarations":[{"constant":false,"id":46014,"mutability":"mutable","name":"change","nameLocation":"24758:6:69","nodeType":"VariableDeclaration","scope":46160,"src":"24736:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46013,"nodeType":"UserDefinedTypeName","pathNode":{"id":46012,"name":"StakingChange","nameLocations":["24736:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"24736:13:69"},"referencedDeclaration":50104,"src":"24736:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46019,"initialValue":{"arguments":[{"id":46017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24787:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46015,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"24767:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24777:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"24767:19:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24767:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24736:53:69"},{"assignments":[46021],"declarations":[{"constant":false,"id":46021,"mutability":"mutable","name":"validator","nameLocation":"24811:9:69","nodeType":"VariableDeclaration","scope":46160,"src":"24803:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46020,"name":"address","nodeType":"ElementaryTypeName","src":"24803:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46024,"initialValue":{"expression":{"id":46022,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24823:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24830:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"24823:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24803:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46025,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24858:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24865:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"24858:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46027,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"24871:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24888:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"24871:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"24858:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46043,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25006:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25013:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25006:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46045,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25019:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25036:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"25019:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25006:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46147,"nodeType":"Block","src":"25325:546:69","statements":[{"assignments":[46085],"declarations":[{"constant":false,"id":46085,"mutability":"mutable","name":"amount","nameLocation":"25351:6:69","nodeType":"VariableDeclaration","scope":46147,"src":"25343:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46084,"name":"uint256","nodeType":"ElementaryTypeName","src":"25343:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46094,"initialValue":{"arguments":[{"expression":{"id":46088,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25371:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25378:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25371:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25388:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46090,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:69","typeDescriptions":{}}}],"id":46092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25387:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46086,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25360:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25364:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25360:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25360:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25343:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46095,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25420:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25427:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"25420:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46097,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"25433:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25450:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"25433:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"25420:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46145,"nodeType":"Block","src":"25694:163:69","statements":[{"expression":{"arguments":[{"id":46132,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25746:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46133,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25757:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46127,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25716:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25718:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25716:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25731:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"25716:29:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25716:48:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46135,"nodeType":"ExpressionStatement","src":"25716:48:69"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":46137,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25795:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25797:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25795:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46136,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25786:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25813:8:69","memberName":"addStake","nodeType":"MemberAccess","referencedDeclaration":40263,"src":"25786:35:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":46142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":46141,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25829:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"25786:50:69","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":46143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25786:52:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46144,"nodeType":"ExpressionStatement","src":"25786:52:69"}]},"id":46146,"nodeType":"IfStatement","src":"25416:441:69","trueBody":{"id":46126,"nodeType":"Block","src":"25460:228:69","statements":[{"expression":{"arguments":[{"id":46105,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25513:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46106,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25524:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46100,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25482:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25484:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25482:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25497:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"25482:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25482:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46108,"nodeType":"ExpressionStatement","src":"25482:49:69"},{"expression":{"arguments":[{"id":46114,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25582:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46115,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25593:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25553:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25555:12:69","memberName":"releaseQueue","nodeType":"MemberAccess","referencedDeclaration":47260,"src":"25553:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage","typeString":"struct StakingReleaseQueue storage ref"}},"id":46113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25568:13:69","memberName":"addNewRelease","nodeType":"MemberAccess","referencedDeclaration":44257,"src":"25553:28:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_StakingReleaseQueue_$50150_storage_ptr_$","typeString":"function (struct StakingReleaseQueue storage pointer,address,uint256)"}},"id":46116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25553:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46117,"nodeType":"ExpressionStatement","src":"25553:47:69"},{"expression":{"arguments":[{"id":46123,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"25662:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46119,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25631:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25633:14:69","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"25631:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46118,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"25622:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25649:12:69","memberName":"releaseStake","nodeType":"MemberAccess","referencedDeclaration":40269,"src":"25622:39:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":46124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25622:47:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46125,"nodeType":"ExpressionStatement","src":"25622:47:69"}]}}]},"id":46148,"nodeType":"IfStatement","src":"25002:869:69","trueBody":{"id":46083,"nodeType":"Block","src":"25055:264:69","statements":[{"assignments":[46049,46051],"declarations":[{"constant":false,"id":46049,"mutability":"mutable","name":"metadata","nameLocation":"25087:8:69","nodeType":"VariableDeclaration","scope":46083,"src":"25074:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46048,"name":"bytes","nodeType":"ElementaryTypeName","src":"25074:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46051,"mutability":"mutable","name":"power","nameLocation":"25105:5:69","nodeType":"VariableDeclaration","scope":46083,"src":"25097:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46050,"name":"uint256","nodeType":"ElementaryTypeName","src":"25097:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46062,"initialValue":{"arguments":[{"expression":{"id":46054,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"25125:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25132:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"25125:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25142:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46056,"name":"bytes","nodeType":"ElementaryTypeName","src":"25142:5:69","typeDescriptions":{}}},{"id":46059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25149:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46058,"name":"uint256","nodeType":"ElementaryTypeName","src":"25149:7:69","typeDescriptions":{}}}],"id":46060,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"25141:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46052,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25114:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25118:6:69","memberName":"decode","nodeType":"MemberAccess","src":"25114:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25114:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"25073:85:69"},{"expression":{"id":46072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46063,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25176:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25178:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25176:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25191:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"25176:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46069,"indexExpression":{"id":46066,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25202:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25176:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25213:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"25176:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46071,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46049,"src":"25224:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"25176:56:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46073,"nodeType":"ExpressionStatement","src":"25176:56:69"},{"expression":{"arguments":[{"id":46079,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"25287:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46080,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46051,"src":"25298:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46074,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"25250:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25252:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"25250:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25265:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"25250:36:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25250:54:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46082,"nodeType":"ExpressionStatement","src":"25250:54:69"}]}},"id":46149,"nodeType":"IfStatement","src":"24854:1017:69","trueBody":{"id":46042,"nodeType":"Block","src":"24901:95:69","statements":[{"expression":{"id":46040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46030,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45973,"src":"24919:1:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24921:12:69","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"24919:14:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24934:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"24919:25:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46036,"indexExpression":{"id":46033,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46021,"src":"24945:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24919:36:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24956:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"24919:45:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46038,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46014,"src":"24967:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24974:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"24967:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"24919:62:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46041,"nodeType":"ExpressionStatement","src":"24919:62:69"}]}},{"expression":{"arguments":[{"id":46153,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25907:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46150,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25885:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25895:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"25885:21:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25885:24:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46155,"nodeType":"ExpressionStatement","src":"25885:24:69"},{"id":46159,"nodeType":"UncheckedBlock","src":"25923:46:69","statements":[{"expression":{"id":46157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25951:3:69","subExpression":{"id":46156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"25953:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46158,"nodeType":"ExpressionStatement","src":"25951:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46006,"src":"24694:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46010,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"24699:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24694:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46161,"initializationExpression":{"assignments":[46006],"declarations":[{"constant":false,"id":46006,"mutability":"mutable","name":"i","nameLocation":"24683:1:69","nodeType":"VariableDeclaration","scope":46161,"src":"24676:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46005,"name":"uint64","nodeType":"ElementaryTypeName","src":"24676:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46008,"initialValue":{"id":46007,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46001,"src":"24687:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"24676:16:69"},"nodeType":"ForStatement","src":"24671:1308:69"},{"expression":{"id":46168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46162,"name":"changeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45980,"src":"25989:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"25999:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"25989:34:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46165,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26026:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26048:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26026:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"25989:60:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46169,"nodeType":"ExpressionStatement","src":"25989:60:69"},{"eventCall":{"arguments":[{"id":46171,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45968,"src":"26094:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46170,"name":"ConfigurationNumberConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45323,"src":"26065:28:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":46172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26065:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46173,"nodeType":"EmitStatement","src":"26060:54:69"}]},"documentation":{"id":45966,"nodeType":"StructuredDocumentation","src":"24055:117:69","text":"@notice Confirm the changes in bottom up checkpoint submission, only call this in bottom up checkpoint execution."},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"24186:13:69","parameters":{"id":45969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45968,"mutability":"mutable","name":"configurationNumber","nameLocation":"24207:19:69","nodeType":"VariableDeclaration","scope":46175,"src":"24200:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45967,"name":"uint64","nodeType":"ElementaryTypeName","src":"24200:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"24199:28:69"},"returnParameters":{"id":45970,"nodeType":"ParameterList","parameters":[],"src":"24237:0:69"},"scope":46176,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStaking","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46176],"name":"LibStaking","nameLocation":"15346:10:69","scope":46441,"usedErrors":[32461,32469,37450]},{"id":46440,"nodeType":"ContractDefinition","src":"26280:2695:69","nodes":[{"id":46181,"nodeType":"UsingForDirective","src":"26315:39:69","nodes":[],"global":false,"libraryName":{"id":46178,"name":"LibValidatorSet","nameLocations":["26321:15:69"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"26321:15:69"},"typeName":{"id":46180,"nodeType":"UserDefinedTypeName","pathNode":{"id":46179,"name":"ValidatorSet","nameLocations":["26341:12:69"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"26341:12:69"},"referencedDeclaration":50190,"src":"26341:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":46185,"nodeType":"UsingForDirective","src":"26359:47:69","nodes":[],"global":false,"libraryName":{"id":46182,"name":"LibStakingChangeLog","nameLocations":["26365:19:69"],"nodeType":"IdentifierPath","referencedDeclaration":46678,"src":"26365:19:69"},"typeName":{"id":46184,"nodeType":"UserDefinedTypeName","pathNode":{"id":46183,"name":"StakingChangeLog","nameLocations":["26389:16:69"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"26389:16:69"},"referencedDeclaration":50123,"src":"26389:16:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}}},{"id":46220,"nodeType":"FunctionDefinition","src":"26412:475:69","nodes":[],"body":{"id":46219,"nodeType":"Block","src":"26525:362:69","nodes":[],"statements":[{"assignments":[46195],"declarations":[{"constant":false,"id":46195,"mutability":"mutable","name":"configurationNumber","nameLocation":"26542:19:69","nodeType":"VariableDeclaration","scope":46219,"src":"26535:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46194,"name":"uint64","nodeType":"ElementaryTypeName","src":"26535:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46209,"initialValue":{"arguments":[{"expression":{"expression":{"id":46199,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26615:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26629:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26615:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26636:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"26615:30:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":46202,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26663:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26677:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26663:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26684:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"26663:23:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"expression":{"expression":{"id":46205,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26709:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26723:6:69","memberName":"change","nodeType":"MemberAccess","referencedDeclaration":50107,"src":"26709:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_calldata_ptr","typeString":"struct StakingChange calldata"}},"id":46207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26730:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"26709:28:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":46196,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46188,"src":"26564:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26569:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"26564:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26577:12:69","memberName":"recordChange","nodeType":"MemberAccess","referencedDeclaration":46644,"src":"26564:25:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["26604:9:69","26659:2:69","26700:7:69"],"names":["validator","op","payload"],"nodeType":"FunctionCall","src":"26564:184:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"26535:213:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46210,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46195,"src":"26763:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46211,"name":"changeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46191,"src":"26786:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}},"id":46212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26800:19:69","memberName":"configurationNumber","nodeType":"MemberAccess","referencedDeclaration":50109,"src":"26786:33:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"26763:56:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46218,"nodeType":"IfStatement","src":"26759:122:69","trueBody":{"id":46217,"nodeType":"Block","src":"26821:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46214,"name":"InvalidConfigurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37418,"src":"26842:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26842:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46216,"nodeType":"RevertStatement","src":"26835:35:69"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"storeChange","nameLocation":"26421:11:69","parameters":{"id":46192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46188,"mutability":"mutable","name":"self","nameLocation":"26465:4:69","nodeType":"VariableDeclaration","scope":46220,"src":"26433:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46187,"nodeType":"UserDefinedTypeName","pathNode":{"id":46186,"name":"ParentValidatorsTracker","nameLocations":["26433:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26433:23:69"},"referencedDeclaration":50197,"src":"26433:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46191,"mutability":"mutable","name":"changeRequest","nameLocation":"26501:13:69","nodeType":"VariableDeclaration","scope":46220,"src":"26471:43:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest"},"typeName":{"id":46190,"nodeType":"UserDefinedTypeName","pathNode":{"id":46189,"name":"StakingChangeRequest","nameLocations":["26471:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26471:20:69"},"referencedDeclaration":50110,"src":"26471:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"visibility":"internal"}],"src":"26432:83:69"},"returnParameters":{"id":46193,"nodeType":"ParameterList","parameters":[],"src":"26525:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46261,"nodeType":"FunctionDefinition","src":"26893:415:69","nodes":[],"body":{"id":46260,"nodeType":"Block","src":"27036:272:69","nodes":[],"statements":[{"assignments":[46231],"declarations":[{"constant":false,"id":46231,"mutability":"mutable","name":"length","nameLocation":"27054:6:69","nodeType":"VariableDeclaration","scope":46260,"src":"27046:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46230,"name":"uint256","nodeType":"ElementaryTypeName","src":"27046:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46234,"initialValue":{"expression":{"id":46232,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27063:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27078:6:69","memberName":"length","nodeType":"MemberAccess","src":"27063:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27046:38:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46235,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27098:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27108:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27098:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46240,"nodeType":"IfStatement","src":"27094:48:69","trueBody":{"id":46239,"nodeType":"Block","src":"27111:31:69","statements":[{"functionReturnParameters":46229,"id":46238,"nodeType":"Return","src":"27125:7:69"}]}},{"body":{"id":46258,"nodeType":"Block","src":"27182:120:69","statements":[{"expression":{"arguments":[{"id":46248,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46223,"src":"27208:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},{"baseExpression":{"id":46249,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46227,"src":"27214:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}},"id":46251,"indexExpression":{"id":46250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27229:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27214:17:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"},{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_calldata_ptr","typeString":"struct StakingChangeRequest calldata"}],"id":46247,"name":"storeChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"27196:11:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$returns$__$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata)"}},"id":46252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27196:36:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46253,"nodeType":"ExpressionStatement","src":"27196:36:69"},{"id":46257,"nodeType":"UncheckedBlock","src":"27246:46:69","statements":[{"expression":{"id":46255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"27274:3:69","subExpression":{"id":46254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27276:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46256,"nodeType":"ExpressionStatement","src":"27274:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46242,"src":"27168:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46245,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46231,"src":"27172:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27168:10:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46259,"initializationExpression":{"assignments":[46242],"declarations":[{"constant":false,"id":46242,"mutability":"mutable","name":"i","nameLocation":"27165:1:69","nodeType":"VariableDeclaration","scope":46259,"src":"27157:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46241,"name":"uint256","nodeType":"ElementaryTypeName","src":"27157:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46243,"nodeType":"VariableDeclarationStatement","src":"27157:9:69"},"nodeType":"ForStatement","src":"27152:150:69"}]},"implemented":true,"kind":"function","modifiers":[],"name":"batchStoreChange","nameLocation":"26902:16:69","parameters":{"id":46228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46223,"mutability":"mutable","name":"self","nameLocation":"26960:4:69","nodeType":"VariableDeclaration","scope":46261,"src":"26928:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46222,"nodeType":"UserDefinedTypeName","pathNode":{"id":46221,"name":"ParentValidatorsTracker","nameLocations":["26928:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"26928:23:69"},"referencedDeclaration":50197,"src":"26928:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46227,"mutability":"mutable","name":"changeRequests","nameLocation":"27006:14:69","nodeType":"VariableDeclaration","scope":46261,"src":"26974:46:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":46225,"nodeType":"UserDefinedTypeName","pathNode":{"id":46224,"name":"StakingChangeRequest","nameLocations":["26974:20:69"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"26974:20:69"},"referencedDeclaration":50110,"src":"26974:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":46226,"nodeType":"ArrayTypeName","src":"26974:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"26918:108:69"},"returnParameters":{"id":46229,"nodeType":"ParameterList","parameters":[],"src":"27036:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46439,"nodeType":"FunctionDefinition","src":"27379:1594:69","nodes":[],"body":{"id":46438,"nodeType":"Block","src":"27477:1496:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46270,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27491:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":46271,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27514:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27514:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27527:23:69","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"27514:36:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27491:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46279,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27622:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":46280,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27644:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27649:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27644:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27657:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27644:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27622:59:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46286,"nodeType":"IfStatement","src":"27618:96:69","trueBody":{"id":46285,"nodeType":"Block","src":"27683:31:69","statements":[{"functionReturnParameters":46269,"id":46284,"nodeType":"Return","src":"27697:7:69"}]}},"id":46287,"nodeType":"IfStatement","src":"27487:227:69","trueBody":{"id":46278,"nodeType":"Block","src":"27552:60:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46275,"name":"CannotConfirmFutureChanges","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37372,"src":"27573:26:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27573:28:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46277,"nodeType":"RevertStatement","src":"27566:35:69"}]}},{"assignments":[46289],"declarations":[{"constant":false,"id":46289,"mutability":"mutable","name":"start","nameLocation":"27731:5:69","nodeType":"VariableDeclaration","scope":46438,"src":"27724:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46288,"name":"uint64","nodeType":"ElementaryTypeName","src":"27724:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46293,"initialValue":{"expression":{"expression":{"id":46290,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27739:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27744:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27739:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27752:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"27739:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27724:52:69"},{"body":{"id":46426,"nodeType":"Block","src":"27838:1056:69","statements":[{"assignments":[46303],"declarations":[{"constant":false,"id":46303,"mutability":"mutable","name":"change","nameLocation":"27874:6:69","nodeType":"VariableDeclaration","scope":46426,"src":"27852:28:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46302,"nodeType":"UserDefinedTypeName","pathNode":{"id":46301,"name":"StakingChange","nameLocations":["27852:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"27852:13:69"},"referencedDeclaration":50104,"src":"27852:13:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"id":46309,"initialValue":{"arguments":[{"id":46307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27906:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46304,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"27883:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27888:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"27883:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27896:9:69","memberName":"getChange","nodeType":"MemberAccess","referencedDeclaration":46662,"src":"27883:22:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$_t_struct$_StakingChange_$50104_storage_ptr_$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64) view returns (struct StakingChange storage pointer)"}},"id":46308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27883:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"27852:56:69"},{"assignments":[46311],"declarations":[{"constant":false,"id":46311,"mutability":"mutable","name":"validator","nameLocation":"27930:9:69","nodeType":"VariableDeclaration","scope":46426,"src":"27922:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46310,"name":"address","nodeType":"ElementaryTypeName","src":"27922:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46314,"initialValue":{"expression":{"id":46312,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27942:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27949:9:69","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"27942:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27922:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46315,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"27977:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27984:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"27977:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46317,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"27990:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28007:11:69","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"27990:28:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"27977:41:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46333,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28126:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28133:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28126:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46335,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28139:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28156:17:69","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"28139:34:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28126:47:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46411,"nodeType":"Block","src":"28447:336:69","statements":[{"assignments":[46375],"declarations":[{"constant":false,"id":46375,"mutability":"mutable","name":"amount","nameLocation":"28473:6:69","nodeType":"VariableDeclaration","scope":46411,"src":"28465:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46374,"name":"uint256","nodeType":"ElementaryTypeName","src":"28465:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46384,"initialValue":{"arguments":[{"expression":{"id":46378,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28493:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28500:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28493:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28510:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46380,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:69","typeDescriptions":{}}}],"id":46382,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28509:9:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":46376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28482:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28486:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28482:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28482:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28465:54:69"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"id":46389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46385,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28542:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:2:69","memberName":"op","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"28542:9:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":46387,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"28555:16:69","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28572:8:69","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"28555:25:69","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"src":"28542:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46409,"nodeType":"Block","src":"28679:90:69","statements":[{"expression":{"arguments":[{"id":46405,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28732:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46406,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28743:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46400,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28701:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28706:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28701:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28717:14:69","memberName":"confirmDeposit","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"28701:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28701:49:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46408,"nodeType":"ExpressionStatement","src":"28701:49:69"}]},"id":46410,"nodeType":"IfStatement","src":"28538:231:69","trueBody":{"id":46399,"nodeType":"Block","src":"28582:91:69","statements":[{"expression":{"arguments":[{"id":46395,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28636:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46396,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46375,"src":"28647:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46390,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28604:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28609:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28604:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28620:15:69","memberName":"confirmWithdraw","nodeType":"MemberAccess","referencedDeclaration":44916,"src":"28604:31:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28604:50:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46398,"nodeType":"ExpressionStatement","src":"28604:50:69"}]}}]},"id":46412,"nodeType":"IfStatement","src":"28122:661:69","trueBody":{"id":46373,"nodeType":"Block","src":"28175:266:69","statements":[{"assignments":[46339,46341],"declarations":[{"constant":false,"id":46339,"mutability":"mutable","name":"metadata","nameLocation":"28207:8:69","nodeType":"VariableDeclaration","scope":46373,"src":"28194:21:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46338,"name":"bytes","nodeType":"ElementaryTypeName","src":"28194:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46341,"mutability":"mutable","name":"power","nameLocation":"28225:5:69","nodeType":"VariableDeclaration","scope":46373,"src":"28217:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46340,"name":"uint256","nodeType":"ElementaryTypeName","src":"28217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46352,"initialValue":{"arguments":[{"expression":{"id":46344,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28245:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28252:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28245:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"components":[{"id":46347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28262:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":46346,"name":"bytes","nodeType":"ElementaryTypeName","src":"28262:5:69","typeDescriptions":{}}},{"id":46349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28269:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46348,"name":"uint256","nodeType":"ElementaryTypeName","src":"28269:7:69","typeDescriptions":{}}}],"id":46350,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28261:16:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes storage pointer),type(uint256))"}],"expression":{"id":46342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28234:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28238:6:69","memberName":"decode","nodeType":"MemberAccess","src":"28234:10:69","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":46351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28234:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_memory_ptr_$_t_uint256_$","typeString":"tuple(bytes memory,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"28193:85:69"},{"expression":{"id":46362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46353,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28296:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28301:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28296:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28312:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28296:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46359,"indexExpression":{"id":46356,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28323:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28296:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28334:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28296:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46361,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46339,"src":"28345:8:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"28296:57:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46363,"nodeType":"ExpressionStatement","src":"28296:57:69"},{"expression":{"arguments":[{"id":46369,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28409:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46370,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46341,"src":"28420:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":46364,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28371:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28376:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28371:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28387:21:69","memberName":"confirmFederatedPower","nodeType":"MemberAccess","referencedDeclaration":44808,"src":"28371:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$_t_uint256_$returns$__$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address,uint256)"}},"id":46371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28371:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46372,"nodeType":"ExpressionStatement","src":"28371:55:69"}]}},"id":46413,"nodeType":"IfStatement","src":"27973:810:69","trueBody":{"id":46332,"nodeType":"Block","src":"28020:96:69","statements":[{"expression":{"id":46330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"expression":{"id":46320,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28038:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28043:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"28038:15:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28054:10:69","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"28038:26:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":46326,"indexExpression":{"id":46323,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46311,"src":"28065:9:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28038:37:69","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"id":46327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28076:8:69","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"28038:46:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46328,"name":"change","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46303,"src":"28087:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange storage pointer"}},"id":46329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28094:7:69","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":50101,"src":"28087:14:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"src":"28038:63:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":46331,"nodeType":"ExpressionStatement","src":"28038:63:69"}]}},{"expression":{"arguments":[{"id":46419,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28822:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":46414,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28797:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28802:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28797:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28810:11:69","memberName":"purgeChange","nodeType":"MemberAccess","referencedDeclaration":46677,"src":"28797:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_StakingChangeLog_$50123_storage_ptr_$","typeString":"function (struct StakingChangeLog storage pointer,uint64)"}},"id":46420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28797:27:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46421,"nodeType":"ExpressionStatement","src":"28797:27:69"},{"id":46425,"nodeType":"UncheckedBlock","src":"28838:46:69","statements":[{"expression":{"id":46423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28866:3:69","subExpression":{"id":46422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"28868:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46424,"nodeType":"ExpressionStatement","src":"28866:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46295,"src":"27810:1:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":46299,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"27815:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"27810:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46427,"initializationExpression":{"assignments":[46295],"declarations":[{"constant":false,"id":46295,"mutability":"mutable","name":"i","nameLocation":"27799:1:69","nodeType":"VariableDeclaration","scope":46427,"src":"27792:8:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46294,"name":"uint64","nodeType":"ElementaryTypeName","src":"27792:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46297,"initialValue":{"id":46296,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46289,"src":"27803:5:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"27792:16:69"},"nodeType":"ForStatement","src":"27787:1107:69"},{"expression":{"id":46436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":46428,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46265,"src":"28903:4:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker storage pointer"}},"id":46431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:7:69","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"28903:12:69","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":46432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"28916:24:69","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"28903:37:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46433,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46267,"src":"28943:19:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28965:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28943:23:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"28903:63:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46437,"nodeType":"ExpressionStatement","src":"28903:63:69"}]},"documentation":{"id":46262,"nodeType":"StructuredDocumentation","src":"27314:60:69","text":"@notice Confirm the changes in for a finality commitment"},"implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"27388:13:69","parameters":{"id":46268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46265,"mutability":"mutable","name":"self","nameLocation":"27434:4:69","nodeType":"VariableDeclaration","scope":46439,"src":"27402:36:69","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"},"typeName":{"id":46264,"nodeType":"UserDefinedTypeName","pathNode":{"id":46263,"name":"ParentValidatorsTracker","nameLocations":["27402:23:69"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"27402:23:69"},"referencedDeclaration":50197,"src":"27402:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}},"visibility":"internal"},{"constant":false,"id":46267,"mutability":"mutable","name":"configurationNumber","nameLocation":"27447:19:69","nodeType":"VariableDeclaration","scope":46439,"src":"27440:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46266,"name":"uint64","nodeType":"ElementaryTypeName","src":"27440:6:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"27401:66:69"},"returnParameters":{"id":46269,"nodeType":"ParameterList","parameters":[],"src":"27477:0:69"},"scope":46440,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibValidatorTracking","contractDependencies":[],"contractKind":"library","documentation":{"id":46177,"nodeType":"StructuredDocumentation","src":"26125:155:69","text":"The library for tracking validator changes coming from the parent.\n Should be used in the child gateway to store changes until they can be applied."},"fullyImplemented":true,"linearizedBaseContracts":[46440],"name":"LibValidatorTracking","nameLocation":"26288:20:69","scope":46441,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file diff --git a/.out/LibStakingChangeLog.sol/LibStakingChangeLog.json b/.out/LibStakingChangeLog.sol/LibStakingChangeLog.json index 20f6029a0..db7d01abc 100644 --- a/.out/LibStakingChangeLog.sol/LibStakingChangeLog.json +++ b/.out/LibStakingChangeLog.sol/LibStakingChangeLog.json @@ -1 +1 @@ -{"abi":[{"type":"event","name":"NewStakingChangeRequest","inputs":[{"name":"op","type":"uint8","indexed":false,"internalType":"enum StakingOperation"},{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"configurationNumber","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220662e770d5e0b3e5552aadf7e099b47da162928460e0174ffd68cf0e281aebe9c64736f6c63430008130033","sourceMap":"205:3891:65:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220662e770d5e0b3e5552aadf7e099b47da162928460e0174ffd68cf0e281aebe9c64736f6c63430008130033","sourceMap":"205:3891:65:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum StakingOperation\",\"name\":\"op\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"name\":\"NewStakingChangeRequest\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The util library for `StakingChangeLog`\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStakingChangeLog.sol\":\"LibStakingChangeLog\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"enum StakingOperation","name":"op","type":"uint8","indexed":false},{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint64","name":"configurationNumber","type":"uint64","indexed":false}],"type":"event","name":"NewStakingChangeRequest","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStakingChangeLog.sol":"LibStakingChangeLog"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStakingChangeLog.sol","id":45967,"exportedSymbols":{"LibStakingChangeLog":[45966],"StakingChange":[48587],"StakingChangeLog":[48606],"StakingOperation":[48579]},"nodeType":"SourceUnit","src":"46:4051:65","nodes":[{"id":45730,"nodeType":"PragmaDirective","src":"46:23:65","nodes":[],"literals":["solidity","0.8",".19"]},{"id":45734,"nodeType":"ImportDirective","src":"71:88:65","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":45967,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":45731,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48606,"src":"79:16:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45732,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48587,"src":"97:13:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45733,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"112:16:65","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":45966,"nodeType":"ContractDefinition","src":"205:3891:65","nodes":[{"id":45746,"nodeType":"EventDefinition","src":"239:113:65","nodes":[],"anonymous":false,"eventSelector":"1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243f","name":"NewStakingChangeRequest","nameLocation":"245:23:65","parameters":{"id":45745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45738,"indexed":false,"mutability":"mutable","name":"op","nameLocation":"286:2:65","nodeType":"VariableDeclaration","scope":45746,"src":"269:19:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"typeName":{"id":45737,"nodeType":"UserDefinedTypeName","pathNode":{"id":45736,"name":"StakingOperation","nameLocations":["269:16:65"],"nodeType":"IdentifierPath","referencedDeclaration":48579,"src":"269:16:65"},"referencedDeclaration":48579,"src":"269:16:65","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"visibility":"internal"},{"constant":false,"id":45740,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"298:9:65","nodeType":"VariableDeclaration","scope":45746,"src":"290:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45739,"name":"address","nodeType":"ElementaryTypeName","src":"290:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45742,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"315:7:65","nodeType":"VariableDeclaration","scope":45746,"src":"309:13:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45741,"name":"bytes","nodeType":"ElementaryTypeName","src":"309:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45744,"indexed":false,"mutability":"mutable","name":"configurationNumber","nameLocation":"331:19:65","nodeType":"VariableDeclaration","scope":45746,"src":"324:26:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45743,"name":"uint64","nodeType":"ElementaryTypeName","src":"324:6:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"268:83:65"}},{"id":45776,"nodeType":"FunctionDefinition","src":"415:539:65","nodes":[],"body":{"id":45775,"nodeType":"Block","src":"527:427:65","nodes":[],"statements":[{"assignments":[45758],"declarations":[{"constant":false,"id":45758,"mutability":"mutable","name":"configurationNumber","nameLocation":"544:19:65","nodeType":"VariableDeclaration","scope":45775,"src":"537:26:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45757,"name":"uint64","nodeType":"ElementaryTypeName","src":"537:6:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45766,"initialValue":{"arguments":[{"id":45760,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45750,"src":"602:7:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":45761,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45752,"src":"634:9:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":45762,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"661:16:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"678:11:65","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":48577,"src":"661:28:65","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},{"id":45764,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45754,"src":"712:8:65","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":45759,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45932,"src":"566:12:65","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$48579_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":45765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["593:7:65","623:9:65","657:2:65","703:7:65"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"566:165:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"537:194:65"},{"eventCall":{"arguments":[{"expression":{"id":45768,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"789:16:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"806:11:65","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":48577,"src":"789:28:65","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},{"id":45770,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45752,"src":"842:9:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45771,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45754,"src":"874:8:65","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45772,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45758,"src":"917:19:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":45767,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45746,"src":"747:23:65","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$48579_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":45773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["785:2:65","831:9:65","865:7:65","896:19:65"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"747:200:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45774,"nodeType":"EmitStatement","src":"742:205:65"}]},"documentation":{"id":45747,"nodeType":"StructuredDocumentation","src":"358:52:65","text":"@notice Validator request to update its metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"metadataRequest","nameLocation":"424:15:65","parameters":{"id":45755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45750,"mutability":"mutable","name":"changes","nameLocation":"465:7:65","nodeType":"VariableDeclaration","scope":45776,"src":"440:32:65","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45749,"nodeType":"UserDefinedTypeName","pathNode":{"id":45748,"name":"StakingChangeLog","nameLocations":["440:16:65"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"440:16:65"},"referencedDeclaration":48606,"src":"440:16:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":45752,"mutability":"mutable","name":"validator","nameLocation":"482:9:65","nodeType":"VariableDeclaration","scope":45776,"src":"474:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45751,"name":"address","nodeType":"ElementaryTypeName","src":"474:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45754,"mutability":"mutable","name":"metadata","nameLocation":"508:8:65","nodeType":"VariableDeclaration","scope":45776,"src":"493:23:65","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45753,"name":"bytes","nodeType":"ElementaryTypeName","src":"493:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"439:78:65"},"returnParameters":{"id":45756,"nodeType":"ParameterList","parameters":[],"src":"527:0:65"},"scope":45966,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45816,"nodeType":"FunctionDefinition","src":"1039:669:65","nodes":[],"body":{"id":45815,"nodeType":"Block","src":"1210:498:65","nodes":[],"statements":[{"assignments":[45790],"declarations":[{"constant":false,"id":45790,"mutability":"mutable","name":"payload","nameLocation":"1233:7:65","nodeType":"VariableDeclaration","scope":45815,"src":"1220:20:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45789,"name":"bytes","nodeType":"ElementaryTypeName","src":"1220:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":45796,"initialValue":{"arguments":[{"id":45793,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45784,"src":"1254:8:65","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":45794,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45786,"src":"1264:5:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45791,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1243:3:65","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1247:6:65","memberName":"encode","nodeType":"MemberAccess","src":"1243:10:65","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":45795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1243:27:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1220:50:65"},{"assignments":[45798],"declarations":[{"constant":false,"id":45798,"mutability":"mutable","name":"configurationNumber","nameLocation":"1288:19:65","nodeType":"VariableDeclaration","scope":45815,"src":"1281:26:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45797,"name":"uint64","nodeType":"ElementaryTypeName","src":"1281:6:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45806,"initialValue":{"arguments":[{"id":45800,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45780,"src":"1346:7:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":45801,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45782,"src":"1378:9:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":45802,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"1405:16:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1422:17:65","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":48578,"src":"1405:34:65","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},{"id":45804,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45790,"src":"1462:7:65","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45799,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45932,"src":"1310:12:65","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$48579_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":45805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1337:7:65","1367:9:65","1401:2:65","1453:7:65"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"1310:170:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"1281:199:65"},{"eventCall":{"arguments":[{"expression":{"id":45808,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"1538:16:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1555:17:65","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":48578,"src":"1538:34:65","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},{"id":45810,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45782,"src":"1597:9:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45811,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45790,"src":"1629:7:65","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":45812,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45798,"src":"1671:19:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":45807,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45746,"src":"1496:23:65","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$48579_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":45813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1534:2:65","1586:9:65","1620:7:65","1650:19:65"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"1496:205:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45814,"nodeType":"EmitStatement","src":"1491:210:65"}]},"documentation":{"id":45777,"nodeType":"StructuredDocumentation","src":"960:74:65","text":"@notice Records a request to update the federated power of a validator"},"implemented":true,"kind":"function","modifiers":[],"name":"federatedPowerRequest","nameLocation":"1048:21:65","parameters":{"id":45787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45780,"mutability":"mutable","name":"changes","nameLocation":"1104:7:65","nodeType":"VariableDeclaration","scope":45816,"src":"1079:32:65","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45779,"nodeType":"UserDefinedTypeName","pathNode":{"id":45778,"name":"StakingChangeLog","nameLocations":["1079:16:65"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"1079:16:65"},"referencedDeclaration":48606,"src":"1079:16:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":45782,"mutability":"mutable","name":"validator","nameLocation":"1129:9:65","nodeType":"VariableDeclaration","scope":45816,"src":"1121:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45781,"name":"address","nodeType":"ElementaryTypeName","src":"1121:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45784,"mutability":"mutable","name":"metadata","nameLocation":"1163:8:65","nodeType":"VariableDeclaration","scope":45816,"src":"1148:23:65","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":45783,"name":"bytes","nodeType":"ElementaryTypeName","src":"1148:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":45786,"mutability":"mutable","name":"power","nameLocation":"1189:5:65","nodeType":"VariableDeclaration","scope":45816,"src":"1181:13:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45785,"name":"uint256","nodeType":"ElementaryTypeName","src":"1181:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1069:131:65"},"returnParameters":{"id":45788,"nodeType":"ParameterList","parameters":[],"src":"1210:0:65"},"scope":45966,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45853,"nodeType":"FunctionDefinition","src":"1928:574:65","nodes":[],"body":{"id":45852,"nodeType":"Block","src":"2031:471:65","nodes":[],"statements":[{"assignments":[45828],"declarations":[{"constant":false,"id":45828,"mutability":"mutable","name":"payload","nameLocation":"2054:7:65","nodeType":"VariableDeclaration","scope":45852,"src":"2041:20:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45827,"name":"bytes","nodeType":"ElementaryTypeName","src":"2041:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":45833,"initialValue":{"arguments":[{"id":45831,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45824,"src":"2075:6:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45829,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2064:3:65","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2068:6:65","memberName":"encode","nodeType":"MemberAccess","src":"2064:10:65","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":45832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2064:18:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2041:41:65"},{"assignments":[45835],"declarations":[{"constant":false,"id":45835,"mutability":"mutable","name":"configurationNumber","nameLocation":"2100:19:65","nodeType":"VariableDeclaration","scope":45852,"src":"2093:26:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45834,"name":"uint64","nodeType":"ElementaryTypeName","src":"2093:6:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45843,"initialValue":{"arguments":[{"id":45837,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45820,"src":"2158:7:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":45838,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45822,"src":"2190:9:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":45839,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"2217:16:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2234:8:65","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":48576,"src":"2217:25:65","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},{"id":45841,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"2265:7:65","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45836,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45932,"src":"2122:12:65","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$48579_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":45842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2149:7:65","2179:9:65","2213:2:65","2256:7:65"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"2122:161:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"2093:190:65"},{"eventCall":{"arguments":[{"expression":{"id":45845,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"2341:16:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2358:8:65","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":48576,"src":"2341:25:65","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},{"id":45847,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45822,"src":"2391:9:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45848,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45828,"src":"2423:7:65","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":45849,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45835,"src":"2465:19:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":45844,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45746,"src":"2299:23:65","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$48579_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":45850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2337:2:65","2380:9:65","2414:7:65","2444:19:65"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"2299:196:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45851,"nodeType":"EmitStatement","src":"2294:201:65"}]},"documentation":{"id":45817,"nodeType":"StructuredDocumentation","src":"1714:209:65","text":"@notice Perform upsert operation to the withdraw changes, return total value to withdraw\n @notice of the validator.\n Each insert will increment the configuration number by 1, update will not."},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawRequest","nameLocation":"1937:15:65","parameters":{"id":45825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45820,"mutability":"mutable","name":"changes","nameLocation":"1978:7:65","nodeType":"VariableDeclaration","scope":45853,"src":"1953:32:65","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45819,"nodeType":"UserDefinedTypeName","pathNode":{"id":45818,"name":"StakingChangeLog","nameLocations":["1953:16:65"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"1953:16:65"},"referencedDeclaration":48606,"src":"1953:16:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":45822,"mutability":"mutable","name":"validator","nameLocation":"1995:9:65","nodeType":"VariableDeclaration","scope":45853,"src":"1987:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45821,"name":"address","nodeType":"ElementaryTypeName","src":"1987:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45824,"mutability":"mutable","name":"amount","nameLocation":"2014:6:65","nodeType":"VariableDeclaration","scope":45853,"src":"2006:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45823,"name":"uint256","nodeType":"ElementaryTypeName","src":"2006:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1952:69:65"},"returnParameters":{"id":45826,"nodeType":"ParameterList","parameters":[],"src":"2031:0:65"},"scope":45966,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45890,"nodeType":"FunctionDefinition","src":"2572:571:65","nodes":[],"body":{"id":45889,"nodeType":"Block","src":"2674:469:65","nodes":[],"statements":[{"assignments":[45865],"declarations":[{"constant":false,"id":45865,"mutability":"mutable","name":"payload","nameLocation":"2697:7:65","nodeType":"VariableDeclaration","scope":45889,"src":"2684:20:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45864,"name":"bytes","nodeType":"ElementaryTypeName","src":"2684:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":45870,"initialValue":{"arguments":[{"id":45868,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45861,"src":"2718:6:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":45866,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2707:3:65","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":45867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2711:6:65","memberName":"encode","nodeType":"MemberAccess","src":"2707:10:65","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":45869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2707:18:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2684:41:65"},{"assignments":[45872],"declarations":[{"constant":false,"id":45872,"mutability":"mutable","name":"configurationNumber","nameLocation":"2743:19:65","nodeType":"VariableDeclaration","scope":45889,"src":"2736:26:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45871,"name":"uint64","nodeType":"ElementaryTypeName","src":"2736:6:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":45880,"initialValue":{"arguments":[{"id":45874,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45857,"src":"2801:7:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":45875,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45859,"src":"2833:9:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":45876,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"2860:16:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2877:7:65","memberName":"Deposit","nodeType":"MemberAccess","referencedDeclaration":48575,"src":"2860:24:65","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},{"id":45878,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45865,"src":"2907:7:65","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45873,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45932,"src":"2765:12:65","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$48606_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$48579_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":45879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2792:7:65","2822:9:65","2856:2:65","2898:7:65"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"2765:160:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"2736:189:65"},{"eventCall":{"arguments":[{"expression":{"id":45882,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48579,"src":"2983:16:65","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$48579_$","typeString":"type(enum StakingOperation)"}},"id":45883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3000:7:65","memberName":"Deposit","nodeType":"MemberAccess","referencedDeclaration":48575,"src":"2983:24:65","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},{"id":45884,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45859,"src":"3032:9:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45885,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45865,"src":"3064:7:65","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":45886,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45872,"src":"3106:19:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":45881,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45746,"src":"2941:23:65","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$48579_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":45887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2979:2:65","3021:9:65","3055:7:65","3085:19:65"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"2941:195:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45888,"nodeType":"EmitStatement","src":"2936:200:65"}]},"documentation":{"id":45854,"nodeType":"StructuredDocumentation","src":"2508:59:65","text":"@notice Perform upsert operation to the deposit changes"},"implemented":true,"kind":"function","modifiers":[],"name":"depositRequest","nameLocation":"2581:14:65","parameters":{"id":45862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45857,"mutability":"mutable","name":"changes","nameLocation":"2621:7:65","nodeType":"VariableDeclaration","scope":45890,"src":"2596:32:65","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45856,"nodeType":"UserDefinedTypeName","pathNode":{"id":45855,"name":"StakingChangeLog","nameLocations":["2596:16:65"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"2596:16:65"},"referencedDeclaration":48606,"src":"2596:16:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":45859,"mutability":"mutable","name":"validator","nameLocation":"2638:9:65","nodeType":"VariableDeclaration","scope":45890,"src":"2630:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45858,"name":"address","nodeType":"ElementaryTypeName","src":"2630:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45861,"mutability":"mutable","name":"amount","nameLocation":"2657:6:65","nodeType":"VariableDeclaration","scope":45890,"src":"2649:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45860,"name":"uint256","nodeType":"ElementaryTypeName","src":"2649:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2595:69:65"},"returnParameters":{"id":45863,"nodeType":"ParameterList","parameters":[],"src":"2674:0:65"},"scope":45966,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45932,"nodeType":"FunctionDefinition","src":"3213:453:65","nodes":[],"body":{"id":45931,"nodeType":"Block","src":"3415:251:65","nodes":[],"statements":[{"expression":{"id":45909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":45906,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45904,"src":"3425:19:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":45907,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"3447:7:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3455:23:65","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"3447:31:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3425:53:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45910,"nodeType":"ExpressionStatement","src":"3425:53:65"},{"expression":{"id":45921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":45911,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"3489:7:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3497:7:65","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48605,"src":"3489:15:65","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$48587_storage_$","typeString":"mapping(uint64 => struct StakingChange storage ref)"}},"id":45915,"indexExpression":{"id":45913,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45904,"src":"3505:19:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3489:36:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage","typeString":"struct StakingChange storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":45917,"name":"op","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45899,"src":"3547:2:65","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},{"id":45918,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45896,"src":"3562:9:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":45919,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45901,"src":"3582:7:65","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":45916,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48587,"src":"3528:13:65","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingChange_$48587_storage_ptr_$","typeString":"type(struct StakingChange storage pointer)"}},"id":45920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3543:2:65","3551:9:65","3573:7:65"],"names":["op","validator","payload"],"nodeType":"FunctionCall","src":"3528:63:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_memory_ptr","typeString":"struct StakingChange memory"}},"src":"3489:102:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage","typeString":"struct StakingChange storage ref"}},"id":45922,"nodeType":"ExpressionStatement","src":"3489:102:65"},{"expression":{"id":45929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":45923,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45894,"src":"3602:7:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3610:23:65","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"3602:31:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":45928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":45926,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45904,"src":"3636:19:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":45927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3658:1:65","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3636:23:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3602:57:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":45930,"nodeType":"ExpressionStatement","src":"3602:57:65"}]},"documentation":{"id":45891,"nodeType":"StructuredDocumentation","src":"3149:59:65","text":"@notice Perform upsert operation to the deposit changes"},"implemented":true,"kind":"function","modifiers":[],"name":"recordChange","nameLocation":"3222:12:65","parameters":{"id":45902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45894,"mutability":"mutable","name":"changes","nameLocation":"3269:7:65","nodeType":"VariableDeclaration","scope":45932,"src":"3244:32:65","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45893,"nodeType":"UserDefinedTypeName","pathNode":{"id":45892,"name":"StakingChangeLog","nameLocations":["3244:16:65"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"3244:16:65"},"referencedDeclaration":48606,"src":"3244:16:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":45896,"mutability":"mutable","name":"validator","nameLocation":"3294:9:65","nodeType":"VariableDeclaration","scope":45932,"src":"3286:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45895,"name":"address","nodeType":"ElementaryTypeName","src":"3286:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45899,"mutability":"mutable","name":"op","nameLocation":"3330:2:65","nodeType":"VariableDeclaration","scope":45932,"src":"3313:19:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"typeName":{"id":45898,"nodeType":"UserDefinedTypeName","pathNode":{"id":45897,"name":"StakingOperation","nameLocations":["3313:16:65"],"nodeType":"IdentifierPath","referencedDeclaration":48579,"src":"3313:16:65"},"referencedDeclaration":48579,"src":"3313:16:65","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"visibility":"internal"},{"constant":false,"id":45901,"mutability":"mutable","name":"payload","nameLocation":"3355:7:65","nodeType":"VariableDeclaration","scope":45932,"src":"3342:20:65","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":45900,"name":"bytes","nodeType":"ElementaryTypeName","src":"3342:5:65","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3234:134:65"},"returnParameters":{"id":45905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45904,"mutability":"mutable","name":"configurationNumber","nameLocation":"3394:19:65","nodeType":"VariableDeclaration","scope":45932,"src":"3387:26:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45903,"name":"uint64","nodeType":"ElementaryTypeName","src":"3387:6:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3386:28:65"},"scope":45966,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":45950,"nodeType":"FunctionDefinition","src":"3727:209:65","nodes":[],"body":{"id":45949,"nodeType":"Block","src":"3876:60:65","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":45944,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45936,"src":"3893:7:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3901:7:65","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48605,"src":"3893:15:65","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$48587_storage_$","typeString":"mapping(uint64 => struct StakingChange storage ref)"}},"id":45947,"indexExpression":{"id":45946,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45938,"src":"3909:19:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3893:36:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage","typeString":"struct StakingChange storage ref"}},"functionReturnParameters":45943,"id":45948,"nodeType":"Return","src":"3886:43:65"}]},"documentation":{"id":45933,"nodeType":"StructuredDocumentation","src":"3672:50:65","text":"@notice Get the change at configuration number"},"implemented":true,"kind":"function","modifiers":[],"name":"getChange","nameLocation":"3736:9:65","parameters":{"id":45939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45936,"mutability":"mutable","name":"changes","nameLocation":"3780:7:65","nodeType":"VariableDeclaration","scope":45950,"src":"3755:32:65","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45935,"nodeType":"UserDefinedTypeName","pathNode":{"id":45934,"name":"StakingChangeLog","nameLocations":["3755:16:65"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"3755:16:65"},"referencedDeclaration":48606,"src":"3755:16:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":45938,"mutability":"mutable","name":"configurationNumber","nameLocation":"3804:19:65","nodeType":"VariableDeclaration","scope":45950,"src":"3797:26:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45937,"name":"uint64","nodeType":"ElementaryTypeName","src":"3797:6:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3745:84:65"},"returnParameters":{"id":45943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45950,"src":"3853:21:65","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":45941,"nodeType":"UserDefinedTypeName","pathNode":{"id":45940,"name":"StakingChange","nameLocations":["3853:13:65"],"nodeType":"IdentifierPath","referencedDeclaration":48587,"src":"3853:13:65"},"referencedDeclaration":48587,"src":"3853:13:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"src":"3852:23:65"},"scope":45966,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":45965,"nodeType":"FunctionDefinition","src":"3942:152:65","nodes":[],"body":{"id":45964,"nodeType":"Block","src":"4034:60:65","nodes":[],"statements":[{"expression":{"id":45962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4044:43:65","subExpression":{"baseExpression":{"expression":{"id":45958,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45953,"src":"4051:7:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":45959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4059:7:65","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":48605,"src":"4051:15:65","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$48587_storage_$","typeString":"mapping(uint64 => struct StakingChange storage ref)"}},"id":45961,"indexExpression":{"id":45960,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45955,"src":"4067:19:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4051:36:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage","typeString":"struct StakingChange storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45963,"nodeType":"ExpressionStatement","src":"4044:43:65"}]},"implemented":true,"kind":"function","modifiers":[],"name":"purgeChange","nameLocation":"3951:11:65","parameters":{"id":45956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45953,"mutability":"mutable","name":"changes","nameLocation":"3988:7:65","nodeType":"VariableDeclaration","scope":45965,"src":"3963:32:65","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":45952,"nodeType":"UserDefinedTypeName","pathNode":{"id":45951,"name":"StakingChangeLog","nameLocations":["3963:16:65"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"3963:16:65"},"referencedDeclaration":48606,"src":"3963:16:65","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":45955,"mutability":"mutable","name":"configurationNumber","nameLocation":"4004:19:65","nodeType":"VariableDeclaration","scope":45965,"src":"3997:26:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":45954,"name":"uint64","nodeType":"ElementaryTypeName","src":"3997:6:65","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3962:62:65"},"returnParameters":{"id":45957,"nodeType":"ParameterList","parameters":[],"src":"4034:0:65"},"scope":45966,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingChangeLog","contractDependencies":[],"contractKind":"library","documentation":{"id":45735,"nodeType":"StructuredDocumentation","src":"161:44:65","text":"The util library for `StakingChangeLog`"},"fullyImplemented":true,"linearizedBaseContracts":[45966],"name":"LibStakingChangeLog","nameLocation":"213:19:65","scope":45967,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":65} \ No newline at end of file +{"abi":[{"type":"event","name":"NewStakingChangeRequest","inputs":[{"name":"op","type":"uint8","indexed":false,"internalType":"enum StakingOperation"},{"name":"validator","type":"address","indexed":false,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"configurationNumber","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212202b7ab683c1482119d792cebab2a7f6ac5211f18aefcee2d997b59ab8f4249f3a64736f6c63430008130033","sourceMap":"205:3891:70:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212202b7ab683c1482119d792cebab2a7f6ac5211f18aefcee2d997b59ab8f4249f3a64736f6c63430008130033","sourceMap":"205:3891:70:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum StakingOperation\",\"name\":\"op\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"name\":\"NewStakingChangeRequest\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The util library for `StakingChangeLog`\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibStakingChangeLog.sol\":\"LibStakingChangeLog\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"enum StakingOperation","name":"op","type":"uint8","indexed":false},{"internalType":"address","name":"validator","type":"address","indexed":false},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint64","name":"configurationNumber","type":"uint64","indexed":false}],"type":"event","name":"NewStakingChangeRequest","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibStakingChangeLog.sol":"LibStakingChangeLog"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibStakingChangeLog.sol","id":46679,"exportedSymbols":{"LibStakingChangeLog":[46678],"StakingChange":[50104],"StakingChangeLog":[50123],"StakingOperation":[50096]},"nodeType":"SourceUnit","src":"46:4051:70","nodes":[{"id":46442,"nodeType":"PragmaDirective","src":"46:23:70","nodes":[],"literals":["solidity","0.8",".19"]},{"id":46446,"nodeType":"ImportDirective","src":"71:88:70","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46679,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":46443,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"79:16:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46444,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50104,"src":"97:13:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46445,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"112:16:70","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46678,"nodeType":"ContractDefinition","src":"205:3891:70","nodes":[{"id":46458,"nodeType":"EventDefinition","src":"239:113:70","nodes":[],"anonymous":false,"eventSelector":"1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243f","name":"NewStakingChangeRequest","nameLocation":"245:23:70","parameters":{"id":46457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46450,"indexed":false,"mutability":"mutable","name":"op","nameLocation":"286:2:70","nodeType":"VariableDeclaration","scope":46458,"src":"269:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"typeName":{"id":46449,"nodeType":"UserDefinedTypeName","pathNode":{"id":46448,"name":"StakingOperation","nameLocations":["269:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50096,"src":"269:16:70"},"referencedDeclaration":50096,"src":"269:16:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"visibility":"internal"},{"constant":false,"id":46452,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"298:9:70","nodeType":"VariableDeclaration","scope":46458,"src":"290:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46451,"name":"address","nodeType":"ElementaryTypeName","src":"290:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46454,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"315:7:70","nodeType":"VariableDeclaration","scope":46458,"src":"309:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46453,"name":"bytes","nodeType":"ElementaryTypeName","src":"309:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46456,"indexed":false,"mutability":"mutable","name":"configurationNumber","nameLocation":"331:19:70","nodeType":"VariableDeclaration","scope":46458,"src":"324:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46455,"name":"uint64","nodeType":"ElementaryTypeName","src":"324:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"268:83:70"}},{"id":46488,"nodeType":"FunctionDefinition","src":"415:539:70","nodes":[],"body":{"id":46487,"nodeType":"Block","src":"527:427:70","nodes":[],"statements":[{"assignments":[46470],"declarations":[{"constant":false,"id":46470,"mutability":"mutable","name":"configurationNumber","nameLocation":"544:19:70","nodeType":"VariableDeclaration","scope":46487,"src":"537:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46469,"name":"uint64","nodeType":"ElementaryTypeName","src":"537:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46478,"initialValue":{"arguments":[{"id":46472,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46462,"src":"602:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":46473,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46464,"src":"634:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":46474,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"661:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"678:11:70","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"661:28:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46476,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46466,"src":"712:8:70","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":46471,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46644,"src":"566:12:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["593:7:70","623:9:70","657:2:70","703:7:70"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"566:165:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"537:194:70"},{"eventCall":{"arguments":[{"expression":{"id":46480,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"789:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"806:11:70","memberName":"SetMetadata","nodeType":"MemberAccess","referencedDeclaration":50094,"src":"789:28:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46482,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46464,"src":"842:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46483,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46466,"src":"874:8:70","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":46484,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46470,"src":"917:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46479,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46458,"src":"747:23:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$50096_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":46485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["785:2:70","831:9:70","865:7:70","896:19:70"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"747:200:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46486,"nodeType":"EmitStatement","src":"742:205:70"}]},"documentation":{"id":46459,"nodeType":"StructuredDocumentation","src":"358:52:70","text":"@notice Validator request to update its metadata"},"implemented":true,"kind":"function","modifiers":[],"name":"metadataRequest","nameLocation":"424:15:70","parameters":{"id":46467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46462,"mutability":"mutable","name":"changes","nameLocation":"465:7:70","nodeType":"VariableDeclaration","scope":46488,"src":"440:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46461,"nodeType":"UserDefinedTypeName","pathNode":{"id":46460,"name":"StakingChangeLog","nameLocations":["440:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"440:16:70"},"referencedDeclaration":50123,"src":"440:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46464,"mutability":"mutable","name":"validator","nameLocation":"482:9:70","nodeType":"VariableDeclaration","scope":46488,"src":"474:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46463,"name":"address","nodeType":"ElementaryTypeName","src":"474:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46466,"mutability":"mutable","name":"metadata","nameLocation":"508:8:70","nodeType":"VariableDeclaration","scope":46488,"src":"493:23:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46465,"name":"bytes","nodeType":"ElementaryTypeName","src":"493:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"439:78:70"},"returnParameters":{"id":46468,"nodeType":"ParameterList","parameters":[],"src":"527:0:70"},"scope":46678,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46528,"nodeType":"FunctionDefinition","src":"1039:669:70","nodes":[],"body":{"id":46527,"nodeType":"Block","src":"1210:498:70","nodes":[],"statements":[{"assignments":[46502],"declarations":[{"constant":false,"id":46502,"mutability":"mutable","name":"payload","nameLocation":"1233:7:70","nodeType":"VariableDeclaration","scope":46527,"src":"1220:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46501,"name":"bytes","nodeType":"ElementaryTypeName","src":"1220:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46508,"initialValue":{"arguments":[{"id":46505,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46496,"src":"1254:8:70","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":46506,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46498,"src":"1264:5:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46503,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1243:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1247:6:70","memberName":"encode","nodeType":"MemberAccess","src":"1243:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1243:27:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1220:50:70"},{"assignments":[46510],"declarations":[{"constant":false,"id":46510,"mutability":"mutable","name":"configurationNumber","nameLocation":"1288:19:70","nodeType":"VariableDeclaration","scope":46527,"src":"1281:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46509,"name":"uint64","nodeType":"ElementaryTypeName","src":"1281:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46518,"initialValue":{"arguments":[{"id":46512,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46492,"src":"1346:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":46513,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46494,"src":"1378:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":46514,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"1405:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1422:17:70","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"1405:34:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46516,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46502,"src":"1462:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46511,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46644,"src":"1310:12:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1337:7:70","1367:9:70","1401:2:70","1453:7:70"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"1310:170:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"1281:199:70"},{"eventCall":{"arguments":[{"expression":{"id":46520,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"1538:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1555:17:70","memberName":"SetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":50095,"src":"1538:34:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46522,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46494,"src":"1597:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46523,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46502,"src":"1629:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":46524,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46510,"src":"1671:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46519,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46458,"src":"1496:23:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$50096_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":46525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1534:2:70","1586:9:70","1620:7:70","1650:19:70"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"1496:205:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46526,"nodeType":"EmitStatement","src":"1491:210:70"}]},"documentation":{"id":46489,"nodeType":"StructuredDocumentation","src":"960:74:70","text":"@notice Records a request to update the federated power of a validator"},"implemented":true,"kind":"function","modifiers":[],"name":"federatedPowerRequest","nameLocation":"1048:21:70","parameters":{"id":46499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46492,"mutability":"mutable","name":"changes","nameLocation":"1104:7:70","nodeType":"VariableDeclaration","scope":46528,"src":"1079:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46491,"nodeType":"UserDefinedTypeName","pathNode":{"id":46490,"name":"StakingChangeLog","nameLocations":["1079:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"1079:16:70"},"referencedDeclaration":50123,"src":"1079:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46494,"mutability":"mutable","name":"validator","nameLocation":"1129:9:70","nodeType":"VariableDeclaration","scope":46528,"src":"1121:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46493,"name":"address","nodeType":"ElementaryTypeName","src":"1121:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46496,"mutability":"mutable","name":"metadata","nameLocation":"1163:8:70","nodeType":"VariableDeclaration","scope":46528,"src":"1148:23:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46495,"name":"bytes","nodeType":"ElementaryTypeName","src":"1148:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46498,"mutability":"mutable","name":"power","nameLocation":"1189:5:70","nodeType":"VariableDeclaration","scope":46528,"src":"1181:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46497,"name":"uint256","nodeType":"ElementaryTypeName","src":"1181:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1069:131:70"},"returnParameters":{"id":46500,"nodeType":"ParameterList","parameters":[],"src":"1210:0:70"},"scope":46678,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46565,"nodeType":"FunctionDefinition","src":"1928:574:70","nodes":[],"body":{"id":46564,"nodeType":"Block","src":"2031:471:70","nodes":[],"statements":[{"assignments":[46540],"declarations":[{"constant":false,"id":46540,"mutability":"mutable","name":"payload","nameLocation":"2054:7:70","nodeType":"VariableDeclaration","scope":46564,"src":"2041:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46539,"name":"bytes","nodeType":"ElementaryTypeName","src":"2041:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46545,"initialValue":{"arguments":[{"id":46543,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46536,"src":"2075:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46541,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2064:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2068:6:70","memberName":"encode","nodeType":"MemberAccess","src":"2064:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2064:18:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2041:41:70"},{"assignments":[46547],"declarations":[{"constant":false,"id":46547,"mutability":"mutable","name":"configurationNumber","nameLocation":"2100:19:70","nodeType":"VariableDeclaration","scope":46564,"src":"2093:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46546,"name":"uint64","nodeType":"ElementaryTypeName","src":"2093:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46555,"initialValue":{"arguments":[{"id":46549,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46532,"src":"2158:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":46550,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46534,"src":"2190:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":46551,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"2217:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2234:8:70","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"2217:25:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46553,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46540,"src":"2265:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46548,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46644,"src":"2122:12:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2149:7:70","2179:9:70","2213:2:70","2256:7:70"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"2122:161:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"2093:190:70"},{"eventCall":{"arguments":[{"expression":{"id":46557,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"2341:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2358:8:70","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":50093,"src":"2341:25:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46559,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46534,"src":"2391:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46560,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46540,"src":"2423:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":46561,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46547,"src":"2465:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46556,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46458,"src":"2299:23:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$50096_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":46562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2337:2:70","2380:9:70","2414:7:70","2444:19:70"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"2299:196:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46563,"nodeType":"EmitStatement","src":"2294:201:70"}]},"documentation":{"id":46529,"nodeType":"StructuredDocumentation","src":"1714:209:70","text":"@notice Perform upsert operation to the withdraw changes, return total value to withdraw\n @notice of the validator.\n Each insert will increment the configuration number by 1, update will not."},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawRequest","nameLocation":"1937:15:70","parameters":{"id":46537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46532,"mutability":"mutable","name":"changes","nameLocation":"1978:7:70","nodeType":"VariableDeclaration","scope":46565,"src":"1953:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46531,"nodeType":"UserDefinedTypeName","pathNode":{"id":46530,"name":"StakingChangeLog","nameLocations":["1953:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"1953:16:70"},"referencedDeclaration":50123,"src":"1953:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46534,"mutability":"mutable","name":"validator","nameLocation":"1995:9:70","nodeType":"VariableDeclaration","scope":46565,"src":"1987:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46533,"name":"address","nodeType":"ElementaryTypeName","src":"1987:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46536,"mutability":"mutable","name":"amount","nameLocation":"2014:6:70","nodeType":"VariableDeclaration","scope":46565,"src":"2006:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46535,"name":"uint256","nodeType":"ElementaryTypeName","src":"2006:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1952:69:70"},"returnParameters":{"id":46538,"nodeType":"ParameterList","parameters":[],"src":"2031:0:70"},"scope":46678,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46602,"nodeType":"FunctionDefinition","src":"2572:571:70","nodes":[],"body":{"id":46601,"nodeType":"Block","src":"2674:469:70","nodes":[],"statements":[{"assignments":[46577],"declarations":[{"constant":false,"id":46577,"mutability":"mutable","name":"payload","nameLocation":"2697:7:70","nodeType":"VariableDeclaration","scope":46601,"src":"2684:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46576,"name":"bytes","nodeType":"ElementaryTypeName","src":"2684:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":46582,"initialValue":{"arguments":[{"id":46580,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46573,"src":"2718:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46578,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2707:3:70","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2711:6:70","memberName":"encode","nodeType":"MemberAccess","src":"2707:10:70","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2707:18:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2684:41:70"},{"assignments":[46584],"declarations":[{"constant":false,"id":46584,"mutability":"mutable","name":"configurationNumber","nameLocation":"2743:19:70","nodeType":"VariableDeclaration","scope":46601,"src":"2736:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46583,"name":"uint64","nodeType":"ElementaryTypeName","src":"2736:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":46592,"initialValue":{"arguments":[{"id":46586,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46569,"src":"2801:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},{"id":46587,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46571,"src":"2833:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":46588,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"2860:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2877:7:70","memberName":"Deposit","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"2860:24:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46590,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46577,"src":"2907:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46585,"name":"recordChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46644,"src":"2765:12:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StakingChangeLog_$50123_storage_ptr_$_t_address_$_t_enum$_StakingOperation_$50096_$_t_bytes_memory_ptr_$returns$_t_uint64_$","typeString":"function (struct StakingChangeLog storage pointer,address,enum StakingOperation,bytes memory) returns (uint64)"}},"id":46591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2792:7:70","2822:9:70","2856:2:70","2898:7:70"],"names":["changes","validator","op","payload"],"nodeType":"FunctionCall","src":"2765:160:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"2736:189:70"},{"eventCall":{"arguments":[{"expression":{"id":46594,"name":"StakingOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50096,"src":"2983:16:70","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_StakingOperation_$50096_$","typeString":"type(enum StakingOperation)"}},"id":46595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3000:7:70","memberName":"Deposit","nodeType":"MemberAccess","referencedDeclaration":50092,"src":"2983:24:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46596,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46571,"src":"3032:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46597,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46577,"src":"3064:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":46598,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46584,"src":"3106:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":46593,"name":"NewStakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46458,"src":"2941:23:70","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_StakingOperation_$50096_$_t_address_$_t_bytes_memory_ptr_$_t_uint64_$returns$__$","typeString":"function (enum StakingOperation,address,bytes memory,uint64)"}},"id":46599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2979:2:70","3021:9:70","3055:7:70","3085:19:70"],"names":["op","validator","payload","configurationNumber"],"nodeType":"FunctionCall","src":"2941:195:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46600,"nodeType":"EmitStatement","src":"2936:200:70"}]},"documentation":{"id":46566,"nodeType":"StructuredDocumentation","src":"2508:59:70","text":"@notice Perform upsert operation to the deposit changes"},"implemented":true,"kind":"function","modifiers":[],"name":"depositRequest","nameLocation":"2581:14:70","parameters":{"id":46574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46569,"mutability":"mutable","name":"changes","nameLocation":"2621:7:70","nodeType":"VariableDeclaration","scope":46602,"src":"2596:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46568,"nodeType":"UserDefinedTypeName","pathNode":{"id":46567,"name":"StakingChangeLog","nameLocations":["2596:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"2596:16:70"},"referencedDeclaration":50123,"src":"2596:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46571,"mutability":"mutable","name":"validator","nameLocation":"2638:9:70","nodeType":"VariableDeclaration","scope":46602,"src":"2630:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46570,"name":"address","nodeType":"ElementaryTypeName","src":"2630:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46573,"mutability":"mutable","name":"amount","nameLocation":"2657:6:70","nodeType":"VariableDeclaration","scope":46602,"src":"2649:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46572,"name":"uint256","nodeType":"ElementaryTypeName","src":"2649:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2595:69:70"},"returnParameters":{"id":46575,"nodeType":"ParameterList","parameters":[],"src":"2674:0:70"},"scope":46678,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46644,"nodeType":"FunctionDefinition","src":"3213:453:70","nodes":[],"body":{"id":46643,"nodeType":"Block","src":"3415:251:70","nodes":[],"statements":[{"expression":{"id":46621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":46618,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46616,"src":"3425:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46619,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46606,"src":"3447:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3455:23:70","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"3447:31:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3425:53:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46622,"nodeType":"ExpressionStatement","src":"3425:53:70"},{"expression":{"id":46633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":46623,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46606,"src":"3489:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3497:7:70","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50122,"src":"3489:15:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$50104_storage_$","typeString":"mapping(uint64 => struct StakingChange storage ref)"}},"id":46627,"indexExpression":{"id":46625,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46616,"src":"3505:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3489:36:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage","typeString":"struct StakingChange storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":46629,"name":"op","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46611,"src":"3547:2:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},{"id":46630,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46608,"src":"3562:9:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46631,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46613,"src":"3582:7:70","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46628,"name":"StakingChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50104,"src":"3528:13:70","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StakingChange_$50104_storage_ptr_$","typeString":"type(struct StakingChange storage pointer)"}},"id":46632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3543:2:70","3551:9:70","3573:7:70"],"names":["op","validator","payload"],"nodeType":"FunctionCall","src":"3528:63:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_memory_ptr","typeString":"struct StakingChange memory"}},"src":"3489:102:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage","typeString":"struct StakingChange storage ref"}},"id":46634,"nodeType":"ExpressionStatement","src":"3489:102:70"},{"expression":{"id":46641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46635,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46606,"src":"3602:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3610:23:70","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"3602:31:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46638,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46616,"src":"3636:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3658:1:70","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3636:23:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3602:57:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46642,"nodeType":"ExpressionStatement","src":"3602:57:70"}]},"documentation":{"id":46603,"nodeType":"StructuredDocumentation","src":"3149:59:70","text":"@notice Perform upsert operation to the deposit changes"},"implemented":true,"kind":"function","modifiers":[],"name":"recordChange","nameLocation":"3222:12:70","parameters":{"id":46614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46606,"mutability":"mutable","name":"changes","nameLocation":"3269:7:70","nodeType":"VariableDeclaration","scope":46644,"src":"3244:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46605,"nodeType":"UserDefinedTypeName","pathNode":{"id":46604,"name":"StakingChangeLog","nameLocations":["3244:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"3244:16:70"},"referencedDeclaration":50123,"src":"3244:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46608,"mutability":"mutable","name":"validator","nameLocation":"3294:9:70","nodeType":"VariableDeclaration","scope":46644,"src":"3286:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46607,"name":"address","nodeType":"ElementaryTypeName","src":"3286:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46611,"mutability":"mutable","name":"op","nameLocation":"3330:2:70","nodeType":"VariableDeclaration","scope":46644,"src":"3313:19:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"typeName":{"id":46610,"nodeType":"UserDefinedTypeName","pathNode":{"id":46609,"name":"StakingOperation","nameLocations":["3313:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50096,"src":"3313:16:70"},"referencedDeclaration":50096,"src":"3313:16:70","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"visibility":"internal"},{"constant":false,"id":46613,"mutability":"mutable","name":"payload","nameLocation":"3355:7:70","nodeType":"VariableDeclaration","scope":46644,"src":"3342:20:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46612,"name":"bytes","nodeType":"ElementaryTypeName","src":"3342:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3234:134:70"},"returnParameters":{"id":46617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46616,"mutability":"mutable","name":"configurationNumber","nameLocation":"3394:19:70","nodeType":"VariableDeclaration","scope":46644,"src":"3387:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46615,"name":"uint64","nodeType":"ElementaryTypeName","src":"3387:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3386:28:70"},"scope":46678,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46662,"nodeType":"FunctionDefinition","src":"3727:209:70","nodes":[],"body":{"id":46661,"nodeType":"Block","src":"3876:60:70","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"id":46656,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46648,"src":"3893:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3901:7:70","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50122,"src":"3893:15:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$50104_storage_$","typeString":"mapping(uint64 => struct StakingChange storage ref)"}},"id":46659,"indexExpression":{"id":46658,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46650,"src":"3909:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3893:36:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage","typeString":"struct StakingChange storage ref"}},"functionReturnParameters":46655,"id":46660,"nodeType":"Return","src":"3886:43:70"}]},"documentation":{"id":46645,"nodeType":"StructuredDocumentation","src":"3672:50:70","text":"@notice Get the change at configuration number"},"implemented":true,"kind":"function","modifiers":[],"name":"getChange","nameLocation":"3736:9:70","parameters":{"id":46651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46648,"mutability":"mutable","name":"changes","nameLocation":"3780:7:70","nodeType":"VariableDeclaration","scope":46662,"src":"3755:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46647,"nodeType":"UserDefinedTypeName","pathNode":{"id":46646,"name":"StakingChangeLog","nameLocations":["3755:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"3755:16:70"},"referencedDeclaration":50123,"src":"3755:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46650,"mutability":"mutable","name":"configurationNumber","nameLocation":"3804:19:70","nodeType":"VariableDeclaration","scope":46662,"src":"3797:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46649,"name":"uint64","nodeType":"ElementaryTypeName","src":"3797:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3745:84:70"},"returnParameters":{"id":46655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46662,"src":"3853:21:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":46653,"nodeType":"UserDefinedTypeName","pathNode":{"id":46652,"name":"StakingChange","nameLocations":["3853:13:70"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"3853:13:70"},"referencedDeclaration":50104,"src":"3853:13:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"}],"src":"3852:23:70"},"scope":46678,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46677,"nodeType":"FunctionDefinition","src":"3942:152:70","nodes":[],"body":{"id":46676,"nodeType":"Block","src":"4034:60:70","nodes":[],"statements":[{"expression":{"id":46674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4044:43:70","subExpression":{"baseExpression":{"expression":{"id":46670,"name":"changes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46665,"src":"4051:7:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog storage pointer"}},"id":46671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4059:7:70","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50122,"src":"4051:15:70","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$50104_storage_$","typeString":"mapping(uint64 => struct StakingChange storage ref)"}},"id":46673,"indexExpression":{"id":46672,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46667,"src":"4067:19:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4051:36:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage","typeString":"struct StakingChange storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46675,"nodeType":"ExpressionStatement","src":"4044:43:70"}]},"implemented":true,"kind":"function","modifiers":[],"name":"purgeChange","nameLocation":"3951:11:70","parameters":{"id":46668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46665,"mutability":"mutable","name":"changes","nameLocation":"3988:7:70","nodeType":"VariableDeclaration","scope":46677,"src":"3963:32:70","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46664,"nodeType":"UserDefinedTypeName","pathNode":{"id":46663,"name":"StakingChangeLog","nameLocations":["3963:16:70"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"3963:16:70"},"referencedDeclaration":50123,"src":"3963:16:70","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46667,"mutability":"mutable","name":"configurationNumber","nameLocation":"4004:19:70","nodeType":"VariableDeclaration","scope":46677,"src":"3997:26:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46666,"name":"uint64","nodeType":"ElementaryTypeName","src":"3997:6:70","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3962:62:70"},"returnParameters":{"id":46669,"nodeType":"ParameterList","parameters":[],"src":"4034:0:70"},"scope":46678,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibStakingChangeLog","contractDependencies":[],"contractKind":"library","documentation":{"id":46447,"nodeType":"StructuredDocumentation","src":"161:44:70","text":"The util library for `StakingChangeLog`"},"fullyImplemented":true,"linearizedBaseContracts":[46678],"name":"LibStakingChangeLog","nameLocation":"213:19:70","scope":46679,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":70} \ No newline at end of file diff --git a/.out/LibSubnetActor.sol/LibSubnetActor.json b/.out/LibSubnetActor.sol/LibSubnetActor.json new file mode 100644 index 000000000..35120e3a4 --- /dev/null +++ b/.out/LibSubnetActor.sol/LibSubnetActor.json @@ -0,0 +1 @@ +{"abi":[{"type":"event","name":"SubnetBootstrapped","inputs":[{"name":"","type":"tuple[]","indexed":false,"internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"anonymous":false}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220af571fcbd99b873c776dbe8c8dc9b4f91bd60bad846adc3698fade770be048a764736f6c63430008130033","sourceMap":"807:6721:71:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220af571fcbd99b873c776dbe8c8dc9b4f91bd60bad846adc3698fade770be048a764736f6c63430008130033","sourceMap":"807:6721:71:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct Validator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"SubnetBootstrapped\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibSubnetActor.sol\":\"LibSubnetActor\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct Validator[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"indexed":false}],"type":"event","name":"SubnetBootstrapped","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibSubnetActor.sol":"LibSubnetActor"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibSubnetActor.sol","id":47158,"exportedSymbols":{"DuplicatedGenesisValidator":[37530],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"EnumerableSet":[35815],"IGateway":[40354],"LibStaking":[46176],"LibSubnetActor":[47157],"LibSubnetActorStorage":[47292],"LibValidatorSet":[45293],"MethodNotAllowed":[37526],"NotEnoughGenesisValidators":[37532],"NotOwnerOfPublicKey":[37480],"PermissionMode":[50165],"SubnetActorModifiers":[47335],"SubnetActorStorage":[47281],"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH":[36882],"Validator":[50211],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:7482:71","nodes":[{"id":46680,"nodeType":"PragmaDirective","src":"46:23:71","nodes":[],"literals":["solidity","0.8",".19"]},{"id":46682,"nodeType":"ImportDirective","src":"71:81:71","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":46681,"name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36882,"src":"79:37:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46684,"nodeType":"ImportDirective","src":"153:74:71","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":46683,"name":"ERR_PERMISSIONED_AND_BOOTSTRAPPED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37535,"src":"161:33:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46689,"nodeType":"ImportDirective","src":"228:134:71","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":46685,"name":"NotEnoughGenesisValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37532,"src":"236:26:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46686,"name":"DuplicatedGenesisValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37530,"src":"264:26:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46687,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37480,"src":"292:19:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46688,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"313:16:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46691,"nodeType":"ImportDirective","src":"363:52:71","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":46690,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"371:8:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46695,"nodeType":"ImportDirective","src":"416:78:71","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":46692,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"424:9:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46693,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"435:12:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46694,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"449:14:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46697,"nodeType":"ImportDirective","src":"495:70:71","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"../lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":46696,"name":"SubnetActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47335,"src":"503:20:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46700,"nodeType":"ImportDirective","src":"566:66:71","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":46698,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45293,"src":"574:15:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46699,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"591:10:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46702,"nodeType":"ImportDirective","src":"633:85:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":46701,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"641:13:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46705,"nodeType":"ImportDirective","src":"719:86:71","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":47158,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":46703,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"727:21:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":46704,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"750:18:71","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47157,"nodeType":"ContractDefinition","src":"807:6721:71","nodes":[{"id":46709,"nodeType":"UsingForDirective","src":"836:49:71","nodes":[],"global":false,"libraryName":{"id":46706,"name":"EnumerableSet","nameLocations":["842:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"842:13:71"},"typeName":{"id":46708,"nodeType":"UserDefinedTypeName","pathNode":{"id":46707,"name":"EnumerableSet.AddressSet","nameLocations":["860:13:71","874:10:71"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"860:24:71"},"referencedDeclaration":35528,"src":"860:24:71","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":46715,"nodeType":"EventDefinition","src":"891:38:71","nodes":[],"anonymous":false,"eventSelector":"4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593","name":"SubnetBootstrapped","nameLocation":"897:18:71","parameters":{"id":46714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46713,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46715,"src":"916:11:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":46711,"nodeType":"UserDefinedTypeName","pathNode":{"id":46710,"name":"Validator","nameLocations":["916:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"916:9:71"},"referencedDeclaration":50211,"src":"916:9:71","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":46712,"nodeType":"ArrayTypeName","src":"916:11:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"}],"src":"915:13:71"}},{"id":46740,"nodeType":"FunctionDefinition","src":"1090:308:71","nodes":[],"body":{"id":46739,"nodeType":"Block","src":"1143:255:71","nodes":[],"statements":[{"assignments":[46721],"declarations":[{"constant":false,"id":46721,"mutability":"mutable","name":"s","nameLocation":"1180:1:71","nodeType":"VariableDeclaration","scope":46739,"src":"1153:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46720,"nodeType":"UserDefinedTypeName","pathNode":{"id":46719,"name":"SubnetActorStorage","nameLocations":["1153:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"1153:18:71"},"referencedDeclaration":47281,"src":"1153:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":46725,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46722,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"1184:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":46723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1206:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"1184:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":46724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1184:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1153:65:71"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":46731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46726,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46721,"src":"1233:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1235:12:71","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"1233:14:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1248:14:71","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"1233:29:71","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46729,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"1266:14:71","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":46730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1281:10:71","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"1266:25:71","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"1233:58:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46737,"nodeType":"IfStatement","src":"1229:147:71","trueBody":{"id":46736,"nodeType":"Block","src":"1293:83:71","statements":[{"errorCall":{"arguments":[{"id":46733,"name":"ERR_PERMISSIONED_AND_BOOTSTRAPPED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37535,"src":"1331:33:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":46732,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"1314:16:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":46734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1314:51:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46735,"nodeType":"RevertStatement","src":"1307:58:71"}]}},{"functionReturnParameters":46718,"id":46738,"nodeType":"Return","src":"1385:7:71"}]},"documentation":{"id":46716,"nodeType":"StructuredDocumentation","src":"935:150:71","text":"@notice Ensures that the subnet is operating under Collateral-based permission mode.\n @dev Reverts if the subnet is not in Collateral mode."},"implemented":true,"kind":"function","modifiers":[],"name":"enforceCollateralValidation","nameLocation":"1099:27:71","parameters":{"id":46717,"nodeType":"ParameterList","parameters":[],"src":"1126:2:71"},"returnParameters":{"id":46718,"nodeType":"ParameterList","parameters":[],"src":"1143:0:71"},"scope":47157,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46765,"nodeType":"FunctionDefinition","src":"1551:306:71","nodes":[],"body":{"id":46764,"nodeType":"Block","src":"1603:254:71","nodes":[],"statements":[{"assignments":[46746],"declarations":[{"constant":false,"id":46746,"mutability":"mutable","name":"s","nameLocation":"1640:1:71","nodeType":"VariableDeclaration","scope":46764,"src":"1613:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46745,"nodeType":"UserDefinedTypeName","pathNode":{"id":46744,"name":"SubnetActorStorage","nameLocations":["1613:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"1613:18:71"},"referencedDeclaration":47281,"src":"1613:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":46750,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46747,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"1644:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":46748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1666:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"1644:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":46749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1613:65:71"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":46756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46751,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46746,"src":"1693:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1695:12:71","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"1693:14:71","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":46753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1708:14:71","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"1693:29:71","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46754,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"1726:14:71","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":46755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1741:9:71","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"1726:24:71","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"1693:57:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46762,"nodeType":"IfStatement","src":"1689:146:71","trueBody":{"id":46761,"nodeType":"Block","src":"1752:83:71","statements":[{"errorCall":{"arguments":[{"id":46758,"name":"ERR_PERMISSIONED_AND_BOOTSTRAPPED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37535,"src":"1790:33:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":46757,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"1773:16:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":46759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1773:51:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46760,"nodeType":"RevertStatement","src":"1766:58:71"}]}},{"functionReturnParameters":46743,"id":46763,"nodeType":"Return","src":"1844:7:71"}]},"documentation":{"id":46741,"nodeType":"StructuredDocumentation","src":"1404:142:71","text":"@notice Ensures that the subnet is operating under Federated permission mode.\n @dev Reverts if the subnet is not in Federated mode."},"implemented":true,"kind":"function","modifiers":[],"name":"enforceFederatedValidation","nameLocation":"1560:26:71","parameters":{"id":46742,"nodeType":"ParameterList","parameters":[],"src":"1586:2:71"},"returnParameters":{"id":46743,"nodeType":"ParameterList","parameters":[],"src":"1603:0:71"},"scope":47157,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46822,"nodeType":"FunctionDefinition","src":"2006:664:71","nodes":[],"body":{"id":46821,"nodeType":"Block","src":"2050:620:71","nodes":[],"statements":[{"assignments":[46771],"declarations":[{"constant":false,"id":46771,"mutability":"mutable","name":"s","nameLocation":"2087:1:71","nodeType":"VariableDeclaration","scope":46821,"src":"2060:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46770,"nodeType":"UserDefinedTypeName","pathNode":{"id":46769,"name":"SubnetActorStorage","nameLocations":["2060:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"2060:18:71"},"referencedDeclaration":47281,"src":"2060:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":46775,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46772,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"2091:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":46773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2113:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"2091:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":46774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2091:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2060:65:71"},{"assignments":[46777],"declarations":[{"constant":false,"id":46777,"mutability":"mutable","name":"totalCollateral","nameLocation":"2144:15:71","nodeType":"VariableDeclaration","scope":46821,"src":"2136:23:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46776,"name":"uint256","nodeType":"ElementaryTypeName","src":"2136:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46781,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46778,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"2162:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":46779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2173:27:71","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":45496,"src":"2162:38:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":46780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2162:40:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2136:66:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46782,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46777,"src":"2217:15:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":46783,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46771,"src":"2236:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2238:23:71","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":47217,"src":"2236:25:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2217:44:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46820,"nodeType":"IfStatement","src":"2213:451:71","trueBody":{"id":46819,"nodeType":"Block","src":"2263:401:71","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46786,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"2281:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":46787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2292:21:71","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":45452,"src":"2281:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":46788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2281:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":46789,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46771,"src":"2319:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2321:13:71","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":47223,"src":"2319:15:71","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2281:53:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46818,"nodeType":"IfStatement","src":"2277:377:71","trueBody":{"id":46817,"nodeType":"Block","src":"2336:318:71","statements":[{"expression":{"id":46796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46792,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46771,"src":"2354:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2356:12:71","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"2354:14:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":46795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2371:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2354:21:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46797,"nodeType":"ExpressionStatement","src":"2354:21:71"},{"eventCall":{"arguments":[{"expression":{"id":46799,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46771,"src":"2417:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2419:17:71","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"2417:19:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}],"id":46798,"name":"SubnetBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46715,"src":"2398:18:71","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct Validator memory[] memory)"}},"id":46801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2398:39:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46802,"nodeType":"EmitStatement","src":"2393:44:71"},{"expression":{"arguments":[{"expression":{"id":46813,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46771,"src":"2619:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2621:17:71","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"2619:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":46804,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46771,"src":"2546:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2548:14:71","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"2546:16:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46803,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"2537:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":46806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2537:26:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":46807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2564:8:71","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":40259,"src":"2537:35:71","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":46812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46808,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46777,"src":"2580:15:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":46809,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46771,"src":"2598:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2600:17:71","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"2598:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2580:37:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2537:81:71","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":46815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2537:102:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46816,"nodeType":"ExpressionStatement","src":"2537:102:71"}]}}]}}]},"documentation":{"id":46766,"nodeType":"StructuredDocumentation","src":"1863:138:71","text":"@dev This function is used to bootstrap the subnet,\n if its total collateral is greater than minimum activation collateral."},"implemented":true,"kind":"function","modifiers":[],"name":"bootstrapSubnetIfNeeded","nameLocation":"2015:23:71","parameters":{"id":46767,"nodeType":"ParameterList","parameters":[],"src":"2038:2:71"},"returnParameters":{"id":46768,"nodeType":"ParameterList","parameters":[],"src":"2050:0:71"},"scope":47157,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46856,"nodeType":"FunctionDefinition","src":"2989:328:71","nodes":[],"body":{"id":46855,"nodeType":"Block","src":"3088:229:71","nodes":[],"statements":[{"assignments":[46833],"declarations":[{"constant":false,"id":46833,"mutability":"mutable","name":"s","nameLocation":"3125:1:71","nodeType":"VariableDeclaration","scope":46855,"src":"3098:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46832,"nodeType":"UserDefinedTypeName","pathNode":{"id":46831,"name":"SubnetActorStorage","nameLocations":["3098:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"3098:18:71"},"referencedDeclaration":47281,"src":"3098:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":46837,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46834,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"3129:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":46835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3151:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"3129:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":46836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3129:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3098:65:71"},{"assignments":[46839],"declarations":[{"constant":false,"id":46839,"mutability":"mutable","name":"previousHeight","nameLocation":"3182:14:71","nodeType":"VariableDeclaration","scope":46855,"src":"3174:22:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46838,"name":"uint256","nodeType":"ElementaryTypeName","src":"3174:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46844,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46840,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46825,"src":"3199:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":46841,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46833,"src":"3208:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3210:19:71","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"3208:21:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3199:30:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3174:55:71"},{"expression":{"id":46853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":46845,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46829,"src":"3239:8:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"expression":{"id":46846,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46833,"src":"3250:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46847,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3252:14:71","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"3250:16:71","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":46848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3267:18:71","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":49961,"src":"3250:35:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":46850,"indexExpression":{"id":46849,"name":"previousHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46839,"src":"3286:14:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3250:51:71","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":46851,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3302:6:71","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"3250:58:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":46852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3250:60:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"3239:71:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46854,"nodeType":"ExpressionStatement","src":"3239:71:71"}]},"documentation":{"id":46823,"nodeType":"StructuredDocumentation","src":"2676:308:71","text":"@notice Retrieves the addresses of relayers who were rewarded for a specific checkpoint at a given height.\n @param height The height of the checkpoint for which to find rewarded relayers.\n @return relayers An array of addresses of the relayers who were rewarded at the specified checkpoint."},"implemented":true,"kind":"function","modifiers":[],"name":"checkpointRewardedAddrs","nameLocation":"2998:23:71","parameters":{"id":46826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46825,"mutability":"mutable","name":"height","nameLocation":"3030:6:71","nodeType":"VariableDeclaration","scope":46856,"src":"3022:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46824,"name":"uint256","nodeType":"ElementaryTypeName","src":"3022:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3021:16:71"},"returnParameters":{"id":46830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46829,"mutability":"mutable","name":"relayers","nameLocation":"3078:8:71","nodeType":"VariableDeclaration","scope":46856,"src":"3061:25:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":46827,"name":"address","nodeType":"ElementaryTypeName","src":"3061:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46828,"nodeType":"ArrayTypeName","src":"3061:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3060:27:71"},"scope":47157,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46891,"nodeType":"FunctionDefinition","src":"3527:269:71","nodes":[],"body":{"id":46890,"nodeType":"Block","src":"3613:183:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46865,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46859,"src":"3630:9:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":46866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3640:6:71","memberName":"length","nodeType":"MemberAccess","src":"3630:16:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":46867,"name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36882,"src":"3650:37:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3630:57:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":46864,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"3623:6:71","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":46869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3623:65:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46870,"nodeType":"ExpressionStatement","src":"3623:65:71"},{"assignments":[46872],"declarations":[{"constant":false,"id":46872,"mutability":"mutable","name":"hashed","nameLocation":"3706:6:71","nodeType":"VariableDeclaration","scope":46890,"src":"3698:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3698:7:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46878,"initialValue":{"arguments":[{"baseExpression":{"id":46874,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46859,"src":"3725:9:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":46876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"3725:13:71","startExpression":{"hexValue":"31","id":46875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3735:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":46873,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3715:9:71","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":46877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3715:24:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3698:41:71"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":46885,"name":"hashed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46872,"src":"3780:6:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":46884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3772:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":46883,"name":"uint256","nodeType":"ElementaryTypeName","src":"3772:7:71","typeDescriptions":{}}},"id":46886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3772:15:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3764:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":46881,"name":"uint160","nodeType":"ElementaryTypeName","src":"3764:7:71","typeDescriptions":{}}},"id":46887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3764:24:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":46880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3756:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46879,"name":"address","nodeType":"ElementaryTypeName","src":"3756:7:71","typeDescriptions":{}}},"id":46888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3756:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":46863,"id":46889,"nodeType":"Return","src":"3749:40:71"}]},"documentation":{"id":46857,"nodeType":"StructuredDocumentation","src":"3323:199:71","text":"@notice Converts a 65-byte public key to its corresponding address.\n @param publicKey The 65-byte public key to be converted.\n @return The address derived from the given public key."},"implemented":true,"kind":"function","modifiers":[],"name":"publicKeyToAddress","nameLocation":"3536:18:71","parameters":{"id":46860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46859,"mutability":"mutable","name":"publicKey","nameLocation":"3570:9:71","nodeType":"VariableDeclaration","scope":46891,"src":"3555:24:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46858,"name":"bytes","nodeType":"ElementaryTypeName","src":"3555:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3554:26:71"},"returnParameters":{"id":46863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46891,"src":"3604:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46861,"name":"address","nodeType":"ElementaryTypeName","src":"3604:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3603:9:71"},"scope":47157,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":47032,"nodeType":"FunctionDefinition","src":"4147:1531:71","nodes":[],"body":{"id":47031,"nodeType":"Block","src":"4312:1366:71","nodes":[],"statements":[{"assignments":[46906],"declarations":[{"constant":false,"id":46906,"mutability":"mutable","name":"s","nameLocation":"4349:1:71","nodeType":"VariableDeclaration","scope":47031,"src":"4322:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46905,"nodeType":"UserDefinedTypeName","pathNode":{"id":46904,"name":"SubnetActorStorage","nameLocations":["4322:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"4322:18:71"},"referencedDeclaration":47281,"src":"4322:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":46910,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46907,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"4353:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":46908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4375:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"4353:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":46909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4353:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4322:65:71"},{"assignments":[46912],"declarations":[{"constant":false,"id":46912,"mutability":"mutable","name":"length","nameLocation":"4406:6:71","nodeType":"VariableDeclaration","scope":47031,"src":"4398:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46911,"name":"uint256","nodeType":"ElementaryTypeName","src":"4398:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46915,"initialValue":{"expression":{"id":46913,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46895,"src":"4415:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4426:6:71","memberName":"length","nodeType":"MemberAccess","src":"4415:17:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4398:34:71"},{"body":{"id":46997,"nodeType":"Block","src":"4472:792:71","statements":[{"assignments":[46923],"declarations":[{"constant":false,"id":46923,"mutability":"mutable","name":"convertedAddress","nameLocation":"4525:16:71","nodeType":"VariableDeclaration","scope":46997,"src":"4517:24:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46922,"name":"address","nodeType":"ElementaryTypeName","src":"4517:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46929,"initialValue":{"arguments":[{"baseExpression":{"id":46925,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46898,"src":"4563:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":46927,"indexExpression":{"id":46926,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"4574:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4563:13:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":46924,"name":"publicKeyToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46891,"src":"4544:18:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":46928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4544:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4517:60:71"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":46934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46930,"name":"convertedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46923,"src":"4595:16:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":46931,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46895,"src":"4615:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46933,"indexExpression":{"id":46932,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"4626:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4615:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4595:33:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46939,"nodeType":"IfStatement","src":"4591:100:71","trueBody":{"id":46938,"nodeType":"Block","src":"4630:61:71","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46935,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37480,"src":"4655:19:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4655:21:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46937,"nodeType":"RevertStatement","src":"4648:28:71"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":46942,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46895,"src":"4832:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46944,"indexExpression":{"id":46943,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"4843:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4832:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46940,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"4812:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":46941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4823:8:71","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":45350,"src":"4812:19:71","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":46945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4812:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":46946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4849:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4812:38:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46952,"nodeType":"IfStatement","src":"4808:112:71","trueBody":{"id":46951,"nodeType":"Block","src":"4852:68:71","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46948,"name":"DuplicatedGenesisValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37530,"src":"4877:26:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4877:28:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46950,"nodeType":"RevertStatement","src":"4870:35:71"}]}},{"expression":{"arguments":[{"baseExpression":{"id":46956,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46895,"src":"4968:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46958,"indexExpression":{"id":46957,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"4979:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4968:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":46959,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46898,"src":"4983:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":46961,"indexExpression":{"id":46960,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"4994:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4983:13:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":46953,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"4934:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":46955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4945:22:71","memberName":"setMetadataWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45587,"src":"4934:33:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,bytes calldata)"}},"id":46962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4934:63:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46963,"nodeType":"ExpressionStatement","src":"4934:63:71"},{"expression":{"arguments":[{"baseExpression":{"id":46967,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46895,"src":"5051:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46969,"indexExpression":{"id":46968,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"5062:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5051:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":46970,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46901,"src":"5066:6:71","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":46972,"indexExpression":{"id":46971,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"5073:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5066:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":46964,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"5011:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":46966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5022:28:71","memberName":"setFederatedPowerWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45562,"src":"5011:39:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":46973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5011:65:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46974,"nodeType":"ExpressionStatement","src":"5011:65:71"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":46981,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46895,"src":"5133:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46983,"indexExpression":{"id":46982,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"5144:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5133:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":46984,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46901,"src":"5156:6:71","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":46986,"indexExpression":{"id":46985,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"5163:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5156:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":46987,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46898,"src":"5177:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":46989,"indexExpression":{"id":46988,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"5188:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5177:13:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":46980,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"5116:9:71","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50211_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":46990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5127:4:71","5148:6:71","5167:8:71"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"5116:76:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":46975,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46906,"src":"5091:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":46978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5093:17:71","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"5091:19:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":46979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5111:4:71","memberName":"push","nodeType":"MemberAccess","src":"5091:24:71","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$_t_struct$_Validator_$50211_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":46991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5091:102:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46992,"nodeType":"ExpressionStatement","src":"5091:102:71"},{"id":46996,"nodeType":"UncheckedBlock","src":"5208:46:71","statements":[{"expression":{"id":46994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5236:3:71","subExpression":{"id":46993,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"5238:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46995,"nodeType":"ExpressionStatement","src":"5236:3:71"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46919,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46917,"src":"4458:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46920,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46912,"src":"4462:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4458:10:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46998,"initializationExpression":{"assignments":[46917],"declarations":[{"constant":false,"id":46917,"mutability":"mutable","name":"i","nameLocation":"4455:1:71","nodeType":"VariableDeclaration","scope":46998,"src":"4447:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46916,"name":"uint256","nodeType":"ElementaryTypeName","src":"4447:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46918,"nodeType":"VariableDeclarationStatement","src":"4447:9:71"},"nodeType":"ForStatement","src":"4442:822:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46999,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46912,"src":"5331:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":47000,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46906,"src":"5341:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5343:13:71","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":47223,"src":"5341:15:71","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5331:25:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47007,"nodeType":"IfStatement","src":"5327:91:71","trueBody":{"id":47006,"nodeType":"Block","src":"5358:60:71","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47003,"name":"NotEnoughGenesisValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37532,"src":"5379:26:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5379:28:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47005,"nodeType":"RevertStatement","src":"5372:35:71"}]}},{"expression":{"id":47012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":47008,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46906,"src":"5428:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5430:12:71","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"5428:14:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":47011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5445:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5428:21:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47013,"nodeType":"ExpressionStatement","src":"5428:21:71"},{"eventCall":{"arguments":[{"expression":{"id":47015,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46906,"src":"5483:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5485:17:71","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"5483:19:71","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}],"id":47014,"name":"SubnetBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46715,"src":"5464:18:71","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct Validator memory[] memory)"}},"id":47017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5464:39:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47018,"nodeType":"EmitStatement","src":"5459:44:71"},{"expression":{"arguments":[{"expression":{"id":47027,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46906,"src":"5651:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5653:17:71","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"5651:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":47020,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46906,"src":"5596:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5598:14:71","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"5596:16:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47019,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"5587:8:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":47022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5587:26:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":47023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5614:8:71","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":40259,"src":"5587:35:71","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":47026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":47024,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46906,"src":"5630:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5632:17:71","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"5630:19:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5587:63:71","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":47029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5587:84:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47030,"nodeType":"ExpressionStatement","src":"5587:84:71"}]},"documentation":{"id":46892,"nodeType":"StructuredDocumentation","src":"3802:340:71","text":"@notice method that allows the contract owner to set the validators' federated power before.\n @notice subnet has already been bootstrapped.\n @param validators The list of validators' addresses.\n @param publicKeys The list of validators' public keys.\n @param powers The list of power values of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"preBootstrapSetFederatedPower","nameLocation":"4156:29:71","parameters":{"id":46902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46895,"mutability":"mutable","name":"validators","nameLocation":"4214:10:71","nodeType":"VariableDeclaration","scope":47032,"src":"4195:29:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":46893,"name":"address","nodeType":"ElementaryTypeName","src":"4195:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46894,"nodeType":"ArrayTypeName","src":"4195:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":46898,"mutability":"mutable","name":"publicKeys","nameLocation":"4251:10:71","nodeType":"VariableDeclaration","scope":47032,"src":"4234:27:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":46896,"name":"bytes","nodeType":"ElementaryTypeName","src":"4234:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":46897,"nodeType":"ArrayTypeName","src":"4234:7:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":46901,"mutability":"mutable","name":"powers","nameLocation":"4290:6:71","nodeType":"VariableDeclaration","scope":47032,"src":"4271:25:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":46899,"name":"uint256","nodeType":"ElementaryTypeName","src":"4271:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46900,"nodeType":"ArrayTypeName","src":"4271:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4185:117:71"},"returnParameters":{"id":46903,"nodeType":"ParameterList","parameters":[],"src":"4312:0:71"},"scope":47157,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47095,"nodeType":"FunctionDefinition","src":"6024:796:71","nodes":[],"body":{"id":47094,"nodeType":"Block","src":"6190:630:71","nodes":[],"statements":[{"assignments":[47046],"declarations":[{"constant":false,"id":47046,"mutability":"mutable","name":"length","nameLocation":"6208:6:71","nodeType":"VariableDeclaration","scope":47094,"src":"6200:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47045,"name":"uint256","nodeType":"ElementaryTypeName","src":"6200:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47049,"initialValue":{"expression":{"id":47047,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47036,"src":"6217:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6228:6:71","memberName":"length","nodeType":"MemberAccess","src":"6217:17:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6200:34:71"},{"body":{"id":47092,"nodeType":"Block","src":"6274:540:71","statements":[{"assignments":[47057],"declarations":[{"constant":false,"id":47057,"mutability":"mutable","name":"convertedAddress","nameLocation":"6327:16:71","nodeType":"VariableDeclaration","scope":47092,"src":"6319:24:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47056,"name":"address","nodeType":"ElementaryTypeName","src":"6319:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":47063,"initialValue":{"arguments":[{"baseExpression":{"id":47059,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47039,"src":"6365:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":47061,"indexExpression":{"id":47060,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"6376:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6365:13:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":47058,"name":"publicKeyToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46891,"src":"6346:18:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":47062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6346:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6319:60:71"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47064,"name":"convertedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47057,"src":"6397:16:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":47065,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47036,"src":"6417:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47067,"indexExpression":{"id":47066,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"6428:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6417:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6397:33:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47073,"nodeType":"IfStatement","src":"6393:100:71","trueBody":{"id":47072,"nodeType":"Block","src":"6432:61:71","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47069,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37480,"src":"6457:19:71","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6457:21:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47071,"nodeType":"RevertStatement","src":"6450:28:71"}]}},{"expression":{"arguments":[{"baseExpression":{"id":47077,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47036,"src":"6684:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47079,"indexExpression":{"id":47078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"6695:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6684:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":47080,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47039,"src":"6709:10:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":47082,"indexExpression":{"id":47081,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"6720:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6709:13:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"baseExpression":{"id":47083,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47042,"src":"6732:6:71","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":47085,"indexExpression":{"id":47084,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"6739:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6732:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":47074,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"6643:10:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":47076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6654:17:71","memberName":"setFederatedPower","nodeType":"MemberAccess","referencedDeclaration":45766,"src":"6643:28:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$","typeString":"function (address,bytes calldata,uint256)"}},"id":47086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["6673:9:71","6699:8:71","6724:6:71"],"names":["validator","metadata","amount"],"nodeType":"FunctionCall","src":"6643:100:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47087,"nodeType":"ExpressionStatement","src":"6643:100:71"},{"id":47091,"nodeType":"UncheckedBlock","src":"6758:46:71","statements":[{"expression":{"id":47089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6786:3:71","subExpression":{"id":47088,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"6788:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47090,"nodeType":"ExpressionStatement","src":"6786:3:71"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47053,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"6260:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47054,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47046,"src":"6264:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6260:10:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47093,"initializationExpression":{"assignments":[47051],"declarations":[{"constant":false,"id":47051,"mutability":"mutable","name":"i","nameLocation":"6257:1:71","nodeType":"VariableDeclaration","scope":47093,"src":"6249:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47050,"name":"uint256","nodeType":"ElementaryTypeName","src":"6249:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47052,"nodeType":"VariableDeclarationStatement","src":"6249:9:71"},"nodeType":"ForStatement","src":"6244:570:71"}]},"documentation":{"id":47033,"nodeType":"StructuredDocumentation","src":"5684:335:71","text":"@notice method that allows the contract owner to set the validators' federated power after\n @dev subnet has already been bootstrapped.\n @param validators The list of validators' addresses.\n @param publicKeys The list of validators' public keys.\n @param powers The list of power values of the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"postBootstrapSetFederatedPower","nameLocation":"6033:30:71","parameters":{"id":47043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47036,"mutability":"mutable","name":"validators","nameLocation":"6092:10:71","nodeType":"VariableDeclaration","scope":47095,"src":"6073:29:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":47034,"name":"address","nodeType":"ElementaryTypeName","src":"6073:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47035,"nodeType":"ArrayTypeName","src":"6073:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":47039,"mutability":"mutable","name":"publicKeys","nameLocation":"6129:10:71","nodeType":"VariableDeclaration","scope":47095,"src":"6112:27:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":47037,"name":"bytes","nodeType":"ElementaryTypeName","src":"6112:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":47038,"nodeType":"ArrayTypeName","src":"6112:7:71","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":47042,"mutability":"mutable","name":"powers","nameLocation":"6168:6:71","nodeType":"VariableDeclaration","scope":47095,"src":"6149:25:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":47040,"name":"uint256","nodeType":"ElementaryTypeName","src":"6149:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47041,"nodeType":"ArrayTypeName","src":"6149:9:71","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6063:117:71"},"returnParameters":{"id":47044,"nodeType":"ParameterList","parameters":[],"src":"6190:0:71"},"scope":47157,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":47156,"nodeType":"FunctionDefinition","src":"6969:557:71","nodes":[],"body":{"id":47155,"nodeType":"Block","src":"7025:501:71","nodes":[],"statements":[{"assignments":[47103],"declarations":[{"constant":false,"id":47103,"mutability":"mutable","name":"s","nameLocation":"7062:1:71","nodeType":"VariableDeclaration","scope":47155,"src":"7035:28:71","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":47102,"nodeType":"UserDefinedTypeName","pathNode":{"id":47101,"name":"SubnetActorStorage","nameLocations":["7035:18:71"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"7035:18:71"},"referencedDeclaration":47281,"src":"7035:18:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"id":47107,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":47104,"name":"LibSubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47292,"src":"7066:21:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActorStorage_$47292_$","typeString":"type(library LibSubnetActorStorage)"}},"id":47105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7088:10:71","memberName":"appStorage","nodeType":"MemberAccess","referencedDeclaration":47291,"src":"7066:32:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SubnetActorStorage_$47281_storage_ptr_$","typeString":"function () pure returns (struct SubnetActorStorage storage pointer)"}},"id":47106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7066:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7035:65:71"},{"assignments":[47109],"declarations":[{"constant":false,"id":47109,"mutability":"mutable","name":"length","nameLocation":"7119:6:71","nodeType":"VariableDeclaration","scope":47155,"src":"7111:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47108,"name":"uint256","nodeType":"ElementaryTypeName","src":"7111:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47113,"initialValue":{"expression":{"expression":{"id":47110,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47103,"src":"7128:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7130:18:71","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"7128:20:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":47112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7149:6:71","memberName":"length","nodeType":"MemberAccess","src":"7128:27:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7111:44:71"},{"body":{"id":47153,"nodeType":"Block","src":"7195:325:71","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":47120,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47103,"src":"7213:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7215:18:71","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"7213:20:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":47123,"indexExpression":{"id":47122,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47115,"src":"7234:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7213:23:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":47124,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47098,"src":"7240:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7213:31:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47148,"nodeType":"IfStatement","src":"7209:242:71","trueBody":{"id":47147,"nodeType":"Block","src":"7246:205:71","statements":[{"expression":{"id":47137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":47126,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47103,"src":"7264:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7266:18:71","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"7264:20:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":47130,"indexExpression":{"id":47128,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47115,"src":"7285:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7264:23:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":47131,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47103,"src":"7290:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7292:18:71","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"7290:20:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":47136,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47133,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47109,"src":"7311:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7320:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7311:10:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7290:32:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7264:58:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47138,"nodeType":"ExpressionStatement","src":"7264:58:71"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":47139,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47103,"src":"7340:1:71","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"id":47142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7342:18:71","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"7340:20:71","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":47143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7361:3:71","memberName":"pop","nodeType":"MemberAccess","src":"7340:24:71","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer)"}},"id":47144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7340:26:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47145,"nodeType":"ExpressionStatement","src":"7340:26:71"},{"id":47146,"nodeType":"Break","src":"7431:5:71"}]}},{"id":47152,"nodeType":"UncheckedBlock","src":"7464:46:71","statements":[{"expression":{"id":47150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7492:3:71","subExpression":{"id":47149,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47115,"src":"7494:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47151,"nodeType":"ExpressionStatement","src":"7492:3:71"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47117,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47115,"src":"7181:1:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47118,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47109,"src":"7185:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7181:10:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47154,"initializationExpression":{"assignments":[47115],"declarations":[{"constant":false,"id":47115,"mutability":"mutable","name":"i","nameLocation":"7178:1:71","nodeType":"VariableDeclaration","scope":47154,"src":"7170:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47114,"name":"uint256","nodeType":"ElementaryTypeName","src":"7170:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47116,"nodeType":"VariableDeclarationStatement","src":"7170:9:71"},"nodeType":"ForStatement","src":"7165:355:71"}]},"documentation":{"id":47096,"nodeType":"StructuredDocumentation","src":"6826:138:71","text":"@notice Removes an address from the initial balance keys.\n @param addr The address to be removed from the genesis balance keys."},"implemented":true,"kind":"function","modifiers":[],"name":"rmAddressFromBalanceKey","nameLocation":"6978:23:71","parameters":{"id":47099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47098,"mutability":"mutable","name":"addr","nameLocation":"7010:4:71","nodeType":"VariableDeclaration","scope":47156,"src":"7002:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47097,"name":"address","nodeType":"ElementaryTypeName","src":"7002:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7001:14:71"},"returnParameters":{"id":47100,"nodeType":"ParameterList","parameters":[],"src":"7025:0:71"},"scope":47157,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibSubnetActor","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[47157],"name":"LibSubnetActor","nameLocation":"815:14:71","scope":47158,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":71} \ No newline at end of file diff --git a/.out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json b/.out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json index e3b2dc906..b9c8ac133 100644 --- a/.out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json +++ b/.out/LibSubnetActorStorage.sol/LibSubnetActorStorage.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212205be70265c48c73b62f0d592c8d529206f9825ef0f41dd76fba52fbe8250cc1da64736f6c63430008130033","sourceMap":"3586:194:66:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea26469706673582212205be70265c48c73b62f0d592c8d529206f9825ef0f41dd76fba52fbe8250cc1da64736f6c63430008130033","sourceMap":"3586:194:66:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibSubnetActorStorage.sol\":\"LibSubnetActorStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibSubnetActorStorage.sol":"LibSubnetActorStorage"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibSubnetActorStorage.sol","id":46140,"exportedSymbols":{"BottomUpCheckpoint":[48410],"BottomUpMsgBatchInfo":[48428],"ConsensusType":[36918],"EnumerableSet":[35386],"LibSubnetActorStorage":[46096],"NotGateway":[37046],"PermissionMode":[48648],"RelayerRewardsInfo":[48446],"StakingChangeLog":[48606],"StakingReleaseQueue":[48633],"SubnetActorModifiers":[46139],"SubnetActorStorage":[46085],"SubnetAlreadyKilled":[37072],"SubnetID":[48557],"Validator":[48694],"ValidatorSet":[48673]},"nodeType":"SourceUnit","src":"46:4206:66","nodes":[{"id":45968,"nodeType":"PragmaDirective","src":"46:23:66","nodes":[],"literals":["solidity","0.8",".19"]},{"id":45970,"nodeType":"ImportDirective","src":"71:57:66","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":46140,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":45969,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"79:13:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":45973,"nodeType":"ImportDirective","src":"129:72:66","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46140,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":45971,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37046,"src":"137:10:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45972,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37072,"src":"149:19:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":45977,"nodeType":"ImportDirective","src":"202:101:66","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":46140,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":45974,"name":"RelayerRewardsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48446,"src":"210:18:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45975,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"230:18:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45976,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48428,"src":"250:20:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":45984,"nodeType":"ImportDirective","src":"304:127:66","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46140,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":45978,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"312:8:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45979,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48673,"src":"322:12:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45980,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48606,"src":"336:16:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45981,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48633,"src":"354:19:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45982,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"375:9:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45983,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"386:14:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":45986,"nodeType":"ImportDirective","src":"432:85:66","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":46140,"sourceUnit":35387,"symbolAliases":[{"foreign":{"id":45985,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35386,"src":"440:13:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46085,"nodeType":"StructDefinition","src":"519:3065:66","nodes":[],"canonicalName":"SubnetActorStorage","members":[{"constant":false,"id":45992,"mutability":"mutable","name":"committedCheckpoints","nameLocation":"668:20:66","nodeType":"VariableDeclaration","scope":46085,"src":"629:59:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":45991,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":45988,"name":"uint256","nodeType":"ElementaryTypeName","src":"637:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"629:38:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":45990,"nodeType":"UserDefinedTypeName","pathNode":{"id":45989,"name":"BottomUpCheckpoint","nameLocations":["648:18:66"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"648:18:66"},"referencedDeclaration":48410,"src":"648:18:66","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":45997,"mutability":"mutable","name":"genesisValidators","nameLocation":"767:17:66","nodeType":"VariableDeclaration","scope":46085,"src":"755:29:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":45995,"nodeType":"UserDefinedTypeName","pathNode":{"id":45994,"name":"Validator","nameLocations":["755:9:66"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"755:9:66"},"referencedDeclaration":48694,"src":"755:9:66","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"id":45996,"nodeType":"ArrayTypeName","src":"755:11:66","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":46000,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"919:17:66","nodeType":"VariableDeclaration","scope":46085,"src":"911:25:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45999,"name":"uint256","nodeType":"ElementaryTypeName","src":"911:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46005,"mutability":"mutable","name":"genesisBalance","nameLocation":"1044:14:66","nodeType":"VariableDeclaration","scope":46085,"src":"1016:42:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":46004,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":46002,"name":"address","nodeType":"ElementaryTypeName","src":"1024:7:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1016:27:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":46003,"name":"uint256","nodeType":"ElementaryTypeName","src":"1035:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":46009,"mutability":"mutable","name":"genesisBalanceKeys","nameLocation":"1116:18:66","nodeType":"VariableDeclaration","scope":46085,"src":"1106:28:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":46007,"name":"address","nodeType":"ElementaryTypeName","src":"1106:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46008,"nodeType":"ArrayTypeName","src":"1106:9:66","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":46012,"mutability":"mutable","name":"lastBottomUpCheckpointHeight","nameLocation":"1219:28:66","nodeType":"VariableDeclaration","scope":46085,"src":"1211:36:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46011,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46016,"mutability":"mutable","name":"lastBottomUpBatch","nameLocation":"1333:17:66","nodeType":"VariableDeclaration","scope":46085,"src":"1312:38:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$48428_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"},"typeName":{"id":46015,"nodeType":"UserDefinedTypeName","pathNode":{"id":46014,"name":"BottomUpMsgBatchInfo","nameLocations":["1312:20:66"],"nodeType":"IdentifierPath","referencedDeclaration":48428,"src":"1312:20:66"},"referencedDeclaration":48428,"src":"1312:20:66","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$48428_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"}},"visibility":"internal"},{"constant":false,"id":46019,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"1446:22:66","nodeType":"VariableDeclaration","scope":46085,"src":"1438:30:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46018,"name":"uint256","nodeType":"ElementaryTypeName","src":"1438:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46022,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"1534:23:66","nodeType":"VariableDeclaration","scope":46085,"src":"1527:30:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46021,"name":"uint64","nodeType":"ElementaryTypeName","src":"1527:6:66","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":46025,"mutability":"mutable","name":"minActivationCollateral","nameLocation":"1617:23:66","nodeType":"VariableDeclaration","scope":46085,"src":"1609:31:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46024,"name":"uint256","nodeType":"ElementaryTypeName","src":"1609:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46028,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1708:19:66","nodeType":"VariableDeclaration","scope":46085,"src":"1700:27:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46027,"name":"uint256","nodeType":"ElementaryTypeName","src":"1700:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46031,"mutability":"mutable","name":"minValidators","nameLocation":"1844:13:66","nodeType":"VariableDeclaration","scope":46085,"src":"1837:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46030,"name":"uint64","nodeType":"ElementaryTypeName","src":"1837:6:66","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":46033,"mutability":"mutable","name":"currentSubnetHash","nameLocation":"1916:17:66","nodeType":"VariableDeclaration","scope":46085,"src":"1908:25:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46032,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1908:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46036,"mutability":"mutable","name":"ipcGatewayAddr","nameLocation":"2005:14:66","nodeType":"VariableDeclaration","scope":46085,"src":"1997:22:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46035,"name":"address","nodeType":"ElementaryTypeName","src":"1997:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46039,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2111:18:66","nodeType":"VariableDeclaration","scope":46085,"src":"2105:24:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":46038,"name":"uint8","nodeType":"ElementaryTypeName","src":"2105:5:66","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":46042,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2218:14:66","nodeType":"VariableDeclaration","scope":46085,"src":"2210:22:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46041,"name":"uint256","nodeType":"ElementaryTypeName","src":"2210:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46046,"mutability":"mutable","name":"parentId","nameLocation":"2287:8:66","nodeType":"VariableDeclaration","scope":46085,"src":"2278:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":46045,"nodeType":"UserDefinedTypeName","pathNode":{"id":46044,"name":"SubnetID","nameLocations":["2278:8:66"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"2278:8:66"},"referencedDeclaration":48557,"src":"2278:8:66","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":46050,"mutability":"mutable","name":"consensus","nameLocation":"2340:9:66","nodeType":"VariableDeclaration","scope":46085,"src":"2326:23:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},"typeName":{"id":46049,"nodeType":"UserDefinedTypeName","pathNode":{"id":46048,"name":"ConsensusType","nameLocations":["2326:13:66"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"2326:13:66"},"referencedDeclaration":36918,"src":"2326:13:66","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":46053,"mutability":"mutable","name":"bootstrapped","nameLocation":"2452:12:66","nodeType":"VariableDeclaration","scope":46085,"src":"2447:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46052,"name":"bool","nodeType":"ElementaryTypeName","src":"2447:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46056,"mutability":"mutable","name":"killed","nameLocation":"2545:6:66","nodeType":"VariableDeclaration","scope":46085,"src":"2540:11:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46055,"name":"bool","nodeType":"ElementaryTypeName","src":"2540:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46060,"mutability":"mutable","name":"validatorSet","nameLocation":"2656:12:66","nodeType":"VariableDeclaration","scope":46085,"src":"2643:25:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":46059,"nodeType":"UserDefinedTypeName","pathNode":{"id":46058,"name":"ValidatorSet","nameLocations":["2643:12:66"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"2643:12:66"},"referencedDeclaration":48673,"src":"2643:12:66","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":46064,"mutability":"mutable","name":"changeSet","nameLocation":"2805:9:66","nodeType":"VariableDeclaration","scope":46085,"src":"2788:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46063,"nodeType":"UserDefinedTypeName","pathNode":{"id":46062,"name":"StakingChangeLog","nameLocations":["2788:16:66"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"2788:16:66"},"referencedDeclaration":48606,"src":"2788:16:66","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46068,"mutability":"mutable","name":"releaseQueue","nameLocation":"2951:12:66","nodeType":"VariableDeclaration","scope":46085,"src":"2931:32:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":46067,"nodeType":"UserDefinedTypeName","pathNode":{"id":46066,"name":"StakingReleaseQueue","nameLocations":["2931:19:66"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"2931:19:66"},"referencedDeclaration":48633,"src":"2931:19:66","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":46071,"mutability":"mutable","name":"powerScale","nameLocation":"3249:10:66","nodeType":"VariableDeclaration","scope":46085,"src":"3244:15:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":46070,"name":"int8","nodeType":"ElementaryTypeName","src":"3244:4:66","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":46075,"mutability":"mutable","name":"relayerRewards","nameLocation":"3317:14:66","nodeType":"VariableDeclaration","scope":46085,"src":"3298:33:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage_ptr","typeString":"struct RelayerRewardsInfo"},"typeName":{"id":46074,"nodeType":"UserDefinedTypeName","pathNode":{"id":46073,"name":"RelayerRewardsInfo","nameLocations":["3298:18:66"],"nodeType":"IdentifierPath","referencedDeclaration":48446,"src":"3298:18:66"},"referencedDeclaration":48446,"src":"3298:18:66","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage_ptr","typeString":"struct RelayerRewardsInfo"}},"visibility":"internal"},{"constant":false,"id":46080,"mutability":"mutable","name":"bootstrapNodes","nameLocation":"3451:14:66","nodeType":"VariableDeclaration","scope":46085,"src":"3424:41:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"typeName":{"id":46079,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":46077,"name":"address","nodeType":"ElementaryTypeName","src":"3432:7:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3424:26:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":46078,"name":"string","nodeType":"ElementaryTypeName","src":"3443:6:66","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"internal"},{"constant":false,"id":46084,"mutability":"mutable","name":"bootstrapOwners","nameLocation":"3566:15:66","nodeType":"VariableDeclaration","scope":46085,"src":"3541:40:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":46083,"nodeType":"UserDefinedTypeName","pathNode":{"id":46082,"name":"EnumerableSet.AddressSet","nameLocations":["3541:13:66","3555:10:66"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"3541:24:66"},"referencedDeclaration":35099,"src":"3541:24:66","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"name":"SubnetActorStorage","nameLocation":"526:18:66","scope":46140,"visibility":"public"},{"id":46096,"nodeType":"ContractDefinition","src":"3586:194:66","nodes":[{"id":46095,"nodeType":"FunctionDefinition","src":"3622:156:66","nodes":[],"body":{"id":46094,"nodeType":"Block","src":"3698:80:66","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3717:36:66","statements":[{"nodeType":"YulAssignment","src":"3731:12:66","value":{"kind":"number","nodeType":"YulLiteral","src":"3742:1:66","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3731:7:66"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":46089,"isOffset":false,"isSlot":true,"src":"3731:7:66","suffix":"slot","valueSize":1}],"id":46091,"nodeType":"InlineAssembly","src":"3708:45:66"},{"expression":{"id":46092,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46089,"src":"3769:2:66","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"functionReturnParameters":46090,"id":46093,"nodeType":"Return","src":"3762:9:66"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3631:10:66","parameters":{"id":46086,"nodeType":"ParameterList","parameters":[],"src":"3641:2:66"},"returnParameters":{"id":46090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46089,"mutability":"mutable","name":"ds","nameLocation":"3694:2:66","nodeType":"VariableDeclaration","scope":46095,"src":"3667:29:66","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46088,"nodeType":"UserDefinedTypeName","pathNode":{"id":46087,"name":"SubnetActorStorage","nameLocations":["3667:18:66"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"3667:18:66"},"referencedDeclaration":46085,"src":"3667:18:66","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"src":"3666:31:66"},"scope":46096,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibSubnetActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46096],"name":"LibSubnetActorStorage","nameLocation":"3594:21:66","scope":46140,"usedErrors":[]},{"id":46139,"nodeType":"ContractDefinition","src":"3782:469:66","nodes":[{"id":46099,"nodeType":"VariableDeclaration","src":"3818:29:66","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"3846:1:66","scope":46139,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":46098,"nodeType":"UserDefinedTypeName","pathNode":{"id":46097,"name":"SubnetActorStorage","nameLocations":["3818:18:66"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"3818:18:66"},"referencedDeclaration":46085,"src":"3818:18:66","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":46113,"nodeType":"FunctionDefinition","src":"3854:133:66","nodes":[],"body":{"id":46112,"nodeType":"Block","src":"3891:96:66","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":46106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46102,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3905:3:66","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":46103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3909:6:66","memberName":"sender","nodeType":"MemberAccess","src":"3905:10:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46104,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"3919:1:66","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":46105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3921:14:66","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"3919:16:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3905:30:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46111,"nodeType":"IfStatement","src":"3901:80:66","trueBody":{"id":46110,"nodeType":"Block","src":"3937:44:66","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46107,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37046,"src":"3958:10:66","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3958:12:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46109,"nodeType":"RevertStatement","src":"3951:19:66"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyGateway","nameLocation":"3863:12:66","parameters":{"id":46100,"nodeType":"ParameterList","parameters":[],"src":"3875:2:66"},"returnParameters":{"id":46101,"nodeType":"ParameterList","parameters":[],"src":"3891:0:66"},"scope":46139,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":46124,"nodeType":"FunctionDefinition","src":"3993:118:66","nodes":[],"body":{"id":46123,"nodeType":"Block","src":"4028:83:66","nodes":[],"statements":[{"condition":{"expression":{"id":46116,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"4042:1:66","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":46117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4044:6:66","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":46056,"src":"4042:8:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46122,"nodeType":"IfStatement","src":"4038:67:66","trueBody":{"id":46121,"nodeType":"Block","src":"4052:53:66","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46118,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37072,"src":"4073:19:66","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4073:21:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46120,"nodeType":"RevertStatement","src":"4066:28:66"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_notKilled","nameLocation":"4002:10:66","parameters":{"id":46114,"nodeType":"ParameterList","parameters":[],"src":"4012:2:66"},"returnParameters":{"id":46115,"nodeType":"ParameterList","parameters":[],"src":"4028:0:66"},"scope":46139,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":46131,"nodeType":"ModifierDefinition","src":"4117:65:66","nodes":[],"body":{"id":46130,"nodeType":"Block","src":"4140:42:66","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":46126,"name":"_onlyGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46113,"src":"4150:12:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":46127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4150:14:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46128,"nodeType":"ExpressionStatement","src":"4150:14:66"},{"id":46129,"nodeType":"PlaceholderStatement","src":"4174:1:66"}]},"name":"onlyGateway","nameLocation":"4126:11:66","parameters":{"id":46125,"nodeType":"ParameterList","parameters":[],"src":"4137:2:66"},"virtual":false,"visibility":"internal"},{"id":46138,"nodeType":"ModifierDefinition","src":"4188:61:66","nodes":[],"body":{"id":46137,"nodeType":"Block","src":"4209:40:66","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":46133,"name":"_notKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46124,"src":"4219:10:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":46134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4219:12:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46135,"nodeType":"ExpressionStatement","src":"4219:12:66"},{"id":46136,"nodeType":"PlaceholderStatement","src":"4241:1:66"}]},"name":"notKilled","nameLocation":"4197:9:66","parameters":{"id":46132,"nodeType":"ParameterList","parameters":[],"src":"4206:2:66"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[46139],"name":"SubnetActorModifiers","nameLocation":"3791:20:66","scope":46140,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":66} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220d99116a15e28a89d65bc517576e1b0db7360704c483a182b6336efd385659f4764736f6c63430008130033","sourceMap":"3671:194:72:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220d99116a15e28a89d65bc517576e1b0db7360704c483a182b6336efd385659f4764736f6c63430008130033","sourceMap":"3671:194:72:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibSubnetActorStorage.sol\":\"LibSubnetActorStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibSubnetActorStorage.sol":"LibSubnetActorStorage"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibSubnetActorStorage.sol","id":47336,"exportedSymbols":{"BottomUpCheckpoint":[49932],"BottomUpMsgBatchInfo":[49950],"ConsensusType":[37359],"EnumerableSet":[35815],"LibSubnetActorStorage":[47292],"NotGateway":[37478],"PermissionMode":[50165],"RelayerRewardsInfo":[49968],"StakingChangeLog":[50123],"StakingReleaseQueue":[50150],"SubnetActorModifiers":[47335],"SubnetActorStorage":[47281],"SubnetAlreadyKilled":[37504],"SubnetID":[50077],"SupplySource":[50226],"Validator":[50211],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:4291:72","nodes":[{"id":47159,"nodeType":"PragmaDirective","src":"46:23:72","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47161,"nodeType":"ImportDirective","src":"71:57:72","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":47160,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"79:13:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47164,"nodeType":"ImportDirective","src":"129:72:72","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":47162,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"137:10:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47163,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37504,"src":"149:19:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47168,"nodeType":"ImportDirective","src":"202:101:72","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":47165,"name":"RelayerRewardsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49968,"src":"210:18:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47166,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"230:18:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47167,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49950,"src":"250:20:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47176,"nodeType":"ImportDirective","src":"304:141:72","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":47169,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"312:8:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47170,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"322:12:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47171,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"336:16:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47172,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"354:19:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47173,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"375:12:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47174,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"389:9:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47175,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"400:14:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47178,"nodeType":"ImportDirective","src":"446:85:72","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":47177,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"454:13:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47281,"nodeType":"StructDefinition","src":"533:3136:72","nodes":[],"canonicalName":"SubnetActorStorage","members":[{"constant":false,"id":47184,"mutability":"mutable","name":"committedCheckpoints","nameLocation":"682:20:72","nodeType":"VariableDeclaration","scope":47281,"src":"643:59:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":47183,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47180,"name":"uint256","nodeType":"ElementaryTypeName","src":"651:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"643:38:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47182,"nodeType":"UserDefinedTypeName","pathNode":{"id":47181,"name":"BottomUpCheckpoint","nameLocations":["662:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"662:18:72"},"referencedDeclaration":49932,"src":"662:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":47189,"mutability":"mutable","name":"genesisValidators","nameLocation":"781:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"769:29:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":47187,"nodeType":"UserDefinedTypeName","pathNode":{"id":47186,"name":"Validator","nameLocations":["769:9:72"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"769:9:72"},"referencedDeclaration":50211,"src":"769:9:72","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":47188,"nodeType":"ArrayTypeName","src":"769:11:72","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":47192,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"933:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"925:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47191,"name":"uint256","nodeType":"ElementaryTypeName","src":"925:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47197,"mutability":"mutable","name":"genesisBalance","nameLocation":"1058:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"1030:42:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":47196,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47194,"name":"address","nodeType":"ElementaryTypeName","src":"1038:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1030:27:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47195,"name":"uint256","nodeType":"ElementaryTypeName","src":"1049:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":47201,"mutability":"mutable","name":"genesisBalanceKeys","nameLocation":"1130:18:72","nodeType":"VariableDeclaration","scope":47281,"src":"1120:28:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":47199,"name":"address","nodeType":"ElementaryTypeName","src":"1120:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47200,"nodeType":"ArrayTypeName","src":"1120:9:72","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":47204,"mutability":"mutable","name":"lastBottomUpCheckpointHeight","nameLocation":"1233:28:72","nodeType":"VariableDeclaration","scope":47281,"src":"1225:36:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47203,"name":"uint256","nodeType":"ElementaryTypeName","src":"1225:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47208,"mutability":"mutable","name":"lastBottomUpBatch","nameLocation":"1347:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"1326:38:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"},"typeName":{"id":47207,"nodeType":"UserDefinedTypeName","pathNode":{"id":47206,"name":"BottomUpMsgBatchInfo","nameLocations":["1326:20:72"],"nodeType":"IdentifierPath","referencedDeclaration":49950,"src":"1326:20:72"},"referencedDeclaration":49950,"src":"1326:20:72","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"}},"visibility":"internal"},{"constant":false,"id":47211,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"1460:22:72","nodeType":"VariableDeclaration","scope":47281,"src":"1452:30:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47210,"name":"uint256","nodeType":"ElementaryTypeName","src":"1452:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47214,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"1548:23:72","nodeType":"VariableDeclaration","scope":47281,"src":"1541:30:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47213,"name":"uint64","nodeType":"ElementaryTypeName","src":"1541:6:72","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47217,"mutability":"mutable","name":"minActivationCollateral","nameLocation":"1631:23:72","nodeType":"VariableDeclaration","scope":47281,"src":"1623:31:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47216,"name":"uint256","nodeType":"ElementaryTypeName","src":"1623:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47220,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1722:19:72","nodeType":"VariableDeclaration","scope":47281,"src":"1714:27:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47219,"name":"uint256","nodeType":"ElementaryTypeName","src":"1714:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47223,"mutability":"mutable","name":"minValidators","nameLocation":"1858:13:72","nodeType":"VariableDeclaration","scope":47281,"src":"1851:20:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47222,"name":"uint64","nodeType":"ElementaryTypeName","src":"1851:6:72","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47225,"mutability":"mutable","name":"currentSubnetHash","nameLocation":"1930:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"1922:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1922:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47228,"mutability":"mutable","name":"ipcGatewayAddr","nameLocation":"2019:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"2011:22:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47227,"name":"address","nodeType":"ElementaryTypeName","src":"2011:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47231,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2125:18:72","nodeType":"VariableDeclaration","scope":47281,"src":"2119:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":47230,"name":"uint8","nodeType":"ElementaryTypeName","src":"2119:5:72","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":47234,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2232:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"2224:22:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47233,"name":"uint256","nodeType":"ElementaryTypeName","src":"2224:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47238,"mutability":"mutable","name":"parentId","nameLocation":"2301:8:72","nodeType":"VariableDeclaration","scope":47281,"src":"2292:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":47237,"nodeType":"UserDefinedTypeName","pathNode":{"id":47236,"name":"SubnetID","nameLocations":["2292:8:72"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2292:8:72"},"referencedDeclaration":50077,"src":"2292:8:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47242,"mutability":"mutable","name":"consensus","nameLocation":"2354:9:72","nodeType":"VariableDeclaration","scope":47281,"src":"2340:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":47241,"nodeType":"UserDefinedTypeName","pathNode":{"id":47240,"name":"ConsensusType","nameLocations":["2340:13:72"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"2340:13:72"},"referencedDeclaration":37359,"src":"2340:13:72","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":47245,"mutability":"mutable","name":"bootstrapped","nameLocation":"2466:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"2461:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47244,"name":"bool","nodeType":"ElementaryTypeName","src":"2461:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47248,"mutability":"mutable","name":"killed","nameLocation":"2559:6:72","nodeType":"VariableDeclaration","scope":47281,"src":"2554:11:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47247,"name":"bool","nodeType":"ElementaryTypeName","src":"2554:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47252,"mutability":"mutable","name":"validatorSet","nameLocation":"2670:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"2657:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47251,"nodeType":"UserDefinedTypeName","pathNode":{"id":47250,"name":"ValidatorSet","nameLocations":["2657:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"2657:12:72"},"referencedDeclaration":50190,"src":"2657:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47256,"mutability":"mutable","name":"changeSet","nameLocation":"2819:9:72","nodeType":"VariableDeclaration","scope":47281,"src":"2802:26:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":47255,"nodeType":"UserDefinedTypeName","pathNode":{"id":47254,"name":"StakingChangeLog","nameLocations":["2802:16:72"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"2802:16:72"},"referencedDeclaration":50123,"src":"2802:16:72","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":47260,"mutability":"mutable","name":"releaseQueue","nameLocation":"2965:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"2945:32:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":47259,"nodeType":"UserDefinedTypeName","pathNode":{"id":47258,"name":"StakingReleaseQueue","nameLocations":["2945:19:72"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2945:19:72"},"referencedDeclaration":50150,"src":"2945:19:72","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":47263,"mutability":"mutable","name":"powerScale","nameLocation":"3263:10:72","nodeType":"VariableDeclaration","scope":47281,"src":"3258:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":47262,"name":"int8","nodeType":"ElementaryTypeName","src":"3258:4:72","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":47267,"mutability":"mutable","name":"relayerRewards","nameLocation":"3331:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"3312:33:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage_ptr","typeString":"struct RelayerRewardsInfo"},"typeName":{"id":47266,"nodeType":"UserDefinedTypeName","pathNode":{"id":47265,"name":"RelayerRewardsInfo","nameLocations":["3312:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":49968,"src":"3312:18:72"},"referencedDeclaration":49968,"src":"3312:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage_ptr","typeString":"struct RelayerRewardsInfo"}},"visibility":"internal"},{"constant":false,"id":47272,"mutability":"mutable","name":"bootstrapNodes","nameLocation":"3465:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"3438:41:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"typeName":{"id":47271,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47269,"name":"address","nodeType":"ElementaryTypeName","src":"3446:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3438:26:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47270,"name":"string","nodeType":"ElementaryTypeName","src":"3457:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"internal"},{"constant":false,"id":47276,"mutability":"mutable","name":"bootstrapOwners","nameLocation":"3580:15:72","nodeType":"VariableDeclaration","scope":47281,"src":"3555:40:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":47275,"nodeType":"UserDefinedTypeName","pathNode":{"id":47274,"name":"EnumerableSet.AddressSet","nameLocations":["3555:13:72","3569:10:72"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"3555:24:72"},"referencedDeclaration":35528,"src":"3555:24:72","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":47280,"mutability":"mutable","name":"supplySource","nameLocation":"3654:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"3641:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"},"typeName":{"id":47279,"nodeType":"UserDefinedTypeName","pathNode":{"id":47278,"name":"SupplySource","nameLocations":["3641:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"3641:12:72"},"referencedDeclaration":50226,"src":"3641:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"name":"SubnetActorStorage","nameLocation":"540:18:72","scope":47336,"visibility":"public"},{"id":47292,"nodeType":"ContractDefinition","src":"3671:194:72","nodes":[{"id":47291,"nodeType":"FunctionDefinition","src":"3707:156:72","nodes":[],"body":{"id":47290,"nodeType":"Block","src":"3783:80:72","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3802:36:72","statements":[{"nodeType":"YulAssignment","src":"3816:12:72","value":{"kind":"number","nodeType":"YulLiteral","src":"3827:1:72","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3816:7:72"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":47285,"isOffset":false,"isSlot":true,"src":"3816:7:72","suffix":"slot","valueSize":1}],"id":47287,"nodeType":"InlineAssembly","src":"3793:45:72"},{"expression":{"id":47288,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47285,"src":"3854:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"functionReturnParameters":47286,"id":47289,"nodeType":"Return","src":"3847:9:72"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3716:10:72","parameters":{"id":47282,"nodeType":"ParameterList","parameters":[],"src":"3726:2:72"},"returnParameters":{"id":47286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47285,"mutability":"mutable","name":"ds","nameLocation":"3779:2:72","nodeType":"VariableDeclaration","scope":47291,"src":"3752:29:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":47284,"nodeType":"UserDefinedTypeName","pathNode":{"id":47283,"name":"SubnetActorStorage","nameLocations":["3752:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"3752:18:72"},"referencedDeclaration":47281,"src":"3752:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"src":"3751:31:72"},"scope":47292,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibSubnetActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[47292],"name":"LibSubnetActorStorage","nameLocation":"3679:21:72","scope":47336,"usedErrors":[]},{"id":47335,"nodeType":"ContractDefinition","src":"3867:469:72","nodes":[{"id":47295,"nodeType":"VariableDeclaration","src":"3903:29:72","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"3931:1:72","scope":47335,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":47294,"nodeType":"UserDefinedTypeName","pathNode":{"id":47293,"name":"SubnetActorStorage","nameLocations":["3903:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"3903:18:72"},"referencedDeclaration":47281,"src":"3903:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":47309,"nodeType":"FunctionDefinition","src":"3939:133:72","nodes":[],"body":{"id":47308,"nodeType":"Block","src":"3976:96:72","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47298,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3990:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":47299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3994:6:72","memberName":"sender","nodeType":"MemberAccess","src":"3990:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":47300,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4004:1:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":47301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4006:14:72","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"4004:16:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3990:30:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47307,"nodeType":"IfStatement","src":"3986:80:72","trueBody":{"id":47306,"nodeType":"Block","src":"4022:44:72","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47303,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"4043:10:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4043:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47305,"nodeType":"RevertStatement","src":"4036:19:72"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyGateway","nameLocation":"3948:12:72","parameters":{"id":47296,"nodeType":"ParameterList","parameters":[],"src":"3960:2:72"},"returnParameters":{"id":47297,"nodeType":"ParameterList","parameters":[],"src":"3976:0:72"},"scope":47335,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":47320,"nodeType":"FunctionDefinition","src":"4078:118:72","nodes":[],"body":{"id":47319,"nodeType":"Block","src":"4113:83:72","nodes":[],"statements":[{"condition":{"expression":{"id":47312,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4127:1:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":47313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4129:6:72","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":47248,"src":"4127:8:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47318,"nodeType":"IfStatement","src":"4123:67:72","trueBody":{"id":47317,"nodeType":"Block","src":"4137:53:72","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47314,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37504,"src":"4158:19:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4158:21:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47316,"nodeType":"RevertStatement","src":"4151:28:72"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_notKilled","nameLocation":"4087:10:72","parameters":{"id":47310,"nodeType":"ParameterList","parameters":[],"src":"4097:2:72"},"returnParameters":{"id":47311,"nodeType":"ParameterList","parameters":[],"src":"4113:0:72"},"scope":47335,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":47327,"nodeType":"ModifierDefinition","src":"4202:65:72","nodes":[],"body":{"id":47326,"nodeType":"Block","src":"4225:42:72","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47322,"name":"_onlyGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47309,"src":"4235:12:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":47323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4235:14:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47324,"nodeType":"ExpressionStatement","src":"4235:14:72"},{"id":47325,"nodeType":"PlaceholderStatement","src":"4259:1:72"}]},"name":"onlyGateway","nameLocation":"4211:11:72","parameters":{"id":47321,"nodeType":"ParameterList","parameters":[],"src":"4222:2:72"},"virtual":false,"visibility":"internal"},{"id":47334,"nodeType":"ModifierDefinition","src":"4273:61:72","nodes":[],"body":{"id":47333,"nodeType":"Block","src":"4294:40:72","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47329,"name":"_notKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47320,"src":"4304:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":47330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4304:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47331,"nodeType":"ExpressionStatement","src":"4304:12:72"},{"id":47332,"nodeType":"PlaceholderStatement","src":"4326:1:72"}]},"name":"notKilled","nameLocation":"4282:9:72","parameters":{"id":47328,"nodeType":"ParameterList","parameters":[],"src":"4291:2:72"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[47335],"name":"SubnetActorModifiers","nameLocation":"3876:20:72","scope":47336,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":72} \ No newline at end of file diff --git a/.out/LibSubnetActorStorage.sol/SubnetActorModifiers.json b/.out/LibSubnetActorStorage.sol/SubnetActorModifiers.json index 5cd307346..8ceafcc10 100644 --- a/.out/LibSubnetActorStorage.sol/SubnetActorModifiers.json +++ b/.out/LibSubnetActorStorage.sol/SubnetActorModifiers.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea2646970667358221220a7ea6423d79bb1252e98b7f816ce329fd3901e3fc02518d0a8cb1cee3b4bd0c064736f6c63430008130033","sourceMap":"3782:469:66:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220a7ea6423d79bb1252e98b7f816ce329fd3901e3fc02518d0a8cb1cee3b4bd0c064736f6c63430008130033","sourceMap":"3782:469:66:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibSubnetActorStorage.sol\":\"SubnetActorModifiers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibSubnetActorStorage.sol":"SubnetActorModifiers"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibSubnetActorStorage.sol","id":46140,"exportedSymbols":{"BottomUpCheckpoint":[48410],"BottomUpMsgBatchInfo":[48428],"ConsensusType":[36918],"EnumerableSet":[35386],"LibSubnetActorStorage":[46096],"NotGateway":[37046],"PermissionMode":[48648],"RelayerRewardsInfo":[48446],"StakingChangeLog":[48606],"StakingReleaseQueue":[48633],"SubnetActorModifiers":[46139],"SubnetActorStorage":[46085],"SubnetAlreadyKilled":[37072],"SubnetID":[48557],"Validator":[48694],"ValidatorSet":[48673]},"nodeType":"SourceUnit","src":"46:4206:66","nodes":[{"id":45968,"nodeType":"PragmaDirective","src":"46:23:66","nodes":[],"literals":["solidity","0.8",".19"]},{"id":45970,"nodeType":"ImportDirective","src":"71:57:66","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":46140,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":45969,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"79:13:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":45973,"nodeType":"ImportDirective","src":"129:72:66","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":46140,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":45971,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37046,"src":"137:10:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45972,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37072,"src":"149:19:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":45977,"nodeType":"ImportDirective","src":"202:101:66","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":46140,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":45974,"name":"RelayerRewardsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48446,"src":"210:18:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45975,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"230:18:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45976,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48428,"src":"250:20:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":45984,"nodeType":"ImportDirective","src":"304:127:66","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46140,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":45978,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"312:8:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45979,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48673,"src":"322:12:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45980,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48606,"src":"336:16:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45981,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48633,"src":"354:19:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45982,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"375:9:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":45983,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"386:14:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":45986,"nodeType":"ImportDirective","src":"432:85:66","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":46140,"sourceUnit":35387,"symbolAliases":[{"foreign":{"id":45985,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35386,"src":"440:13:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46085,"nodeType":"StructDefinition","src":"519:3065:66","nodes":[],"canonicalName":"SubnetActorStorage","members":[{"constant":false,"id":45992,"mutability":"mutable","name":"committedCheckpoints","nameLocation":"668:20:66","nodeType":"VariableDeclaration","scope":46085,"src":"629:59:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":45991,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":45988,"name":"uint256","nodeType":"ElementaryTypeName","src":"637:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"629:38:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":45990,"nodeType":"UserDefinedTypeName","pathNode":{"id":45989,"name":"BottomUpCheckpoint","nameLocations":["648:18:66"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"648:18:66"},"referencedDeclaration":48410,"src":"648:18:66","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":45997,"mutability":"mutable","name":"genesisValidators","nameLocation":"767:17:66","nodeType":"VariableDeclaration","scope":46085,"src":"755:29:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":45995,"nodeType":"UserDefinedTypeName","pathNode":{"id":45994,"name":"Validator","nameLocations":["755:9:66"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"755:9:66"},"referencedDeclaration":48694,"src":"755:9:66","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"id":45996,"nodeType":"ArrayTypeName","src":"755:11:66","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":46000,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"919:17:66","nodeType":"VariableDeclaration","scope":46085,"src":"911:25:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45999,"name":"uint256","nodeType":"ElementaryTypeName","src":"911:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46005,"mutability":"mutable","name":"genesisBalance","nameLocation":"1044:14:66","nodeType":"VariableDeclaration","scope":46085,"src":"1016:42:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":46004,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":46002,"name":"address","nodeType":"ElementaryTypeName","src":"1024:7:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1016:27:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":46003,"name":"uint256","nodeType":"ElementaryTypeName","src":"1035:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":46009,"mutability":"mutable","name":"genesisBalanceKeys","nameLocation":"1116:18:66","nodeType":"VariableDeclaration","scope":46085,"src":"1106:28:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":46007,"name":"address","nodeType":"ElementaryTypeName","src":"1106:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46008,"nodeType":"ArrayTypeName","src":"1106:9:66","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":46012,"mutability":"mutable","name":"lastBottomUpCheckpointHeight","nameLocation":"1219:28:66","nodeType":"VariableDeclaration","scope":46085,"src":"1211:36:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46011,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46016,"mutability":"mutable","name":"lastBottomUpBatch","nameLocation":"1333:17:66","nodeType":"VariableDeclaration","scope":46085,"src":"1312:38:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$48428_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"},"typeName":{"id":46015,"nodeType":"UserDefinedTypeName","pathNode":{"id":46014,"name":"BottomUpMsgBatchInfo","nameLocations":["1312:20:66"],"nodeType":"IdentifierPath","referencedDeclaration":48428,"src":"1312:20:66"},"referencedDeclaration":48428,"src":"1312:20:66","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$48428_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"}},"visibility":"internal"},{"constant":false,"id":46019,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"1446:22:66","nodeType":"VariableDeclaration","scope":46085,"src":"1438:30:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46018,"name":"uint256","nodeType":"ElementaryTypeName","src":"1438:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46022,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"1534:23:66","nodeType":"VariableDeclaration","scope":46085,"src":"1527:30:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46021,"name":"uint64","nodeType":"ElementaryTypeName","src":"1527:6:66","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":46025,"mutability":"mutable","name":"minActivationCollateral","nameLocation":"1617:23:66","nodeType":"VariableDeclaration","scope":46085,"src":"1609:31:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46024,"name":"uint256","nodeType":"ElementaryTypeName","src":"1609:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46028,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1708:19:66","nodeType":"VariableDeclaration","scope":46085,"src":"1700:27:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46027,"name":"uint256","nodeType":"ElementaryTypeName","src":"1700:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46031,"mutability":"mutable","name":"minValidators","nameLocation":"1844:13:66","nodeType":"VariableDeclaration","scope":46085,"src":"1837:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":46030,"name":"uint64","nodeType":"ElementaryTypeName","src":"1837:6:66","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":46033,"mutability":"mutable","name":"currentSubnetHash","nameLocation":"1916:17:66","nodeType":"VariableDeclaration","scope":46085,"src":"1908:25:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46032,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1908:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46036,"mutability":"mutable","name":"ipcGatewayAddr","nameLocation":"2005:14:66","nodeType":"VariableDeclaration","scope":46085,"src":"1997:22:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46035,"name":"address","nodeType":"ElementaryTypeName","src":"1997:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46039,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2111:18:66","nodeType":"VariableDeclaration","scope":46085,"src":"2105:24:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":46038,"name":"uint8","nodeType":"ElementaryTypeName","src":"2105:5:66","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":46042,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2218:14:66","nodeType":"VariableDeclaration","scope":46085,"src":"2210:22:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46041,"name":"uint256","nodeType":"ElementaryTypeName","src":"2210:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46046,"mutability":"mutable","name":"parentId","nameLocation":"2287:8:66","nodeType":"VariableDeclaration","scope":46085,"src":"2278:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":46045,"nodeType":"UserDefinedTypeName","pathNode":{"id":46044,"name":"SubnetID","nameLocations":["2278:8:66"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"2278:8:66"},"referencedDeclaration":48557,"src":"2278:8:66","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":46050,"mutability":"mutable","name":"consensus","nameLocation":"2340:9:66","nodeType":"VariableDeclaration","scope":46085,"src":"2326:23:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},"typeName":{"id":46049,"nodeType":"UserDefinedTypeName","pathNode":{"id":46048,"name":"ConsensusType","nameLocations":["2326:13:66"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"2326:13:66"},"referencedDeclaration":36918,"src":"2326:13:66","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":46053,"mutability":"mutable","name":"bootstrapped","nameLocation":"2452:12:66","nodeType":"VariableDeclaration","scope":46085,"src":"2447:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46052,"name":"bool","nodeType":"ElementaryTypeName","src":"2447:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46056,"mutability":"mutable","name":"killed","nameLocation":"2545:6:66","nodeType":"VariableDeclaration","scope":46085,"src":"2540:11:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46055,"name":"bool","nodeType":"ElementaryTypeName","src":"2540:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46060,"mutability":"mutable","name":"validatorSet","nameLocation":"2656:12:66","nodeType":"VariableDeclaration","scope":46085,"src":"2643:25:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":46059,"nodeType":"UserDefinedTypeName","pathNode":{"id":46058,"name":"ValidatorSet","nameLocations":["2643:12:66"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"2643:12:66"},"referencedDeclaration":48673,"src":"2643:12:66","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":46064,"mutability":"mutable","name":"changeSet","nameLocation":"2805:9:66","nodeType":"VariableDeclaration","scope":46085,"src":"2788:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":46063,"nodeType":"UserDefinedTypeName","pathNode":{"id":46062,"name":"StakingChangeLog","nameLocations":["2788:16:66"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"2788:16:66"},"referencedDeclaration":48606,"src":"2788:16:66","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":46068,"mutability":"mutable","name":"releaseQueue","nameLocation":"2951:12:66","nodeType":"VariableDeclaration","scope":46085,"src":"2931:32:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":46067,"nodeType":"UserDefinedTypeName","pathNode":{"id":46066,"name":"StakingReleaseQueue","nameLocations":["2931:19:66"],"nodeType":"IdentifierPath","referencedDeclaration":48633,"src":"2931:19:66"},"referencedDeclaration":48633,"src":"2931:19:66","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$48633_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":46071,"mutability":"mutable","name":"powerScale","nameLocation":"3249:10:66","nodeType":"VariableDeclaration","scope":46085,"src":"3244:15:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":46070,"name":"int8","nodeType":"ElementaryTypeName","src":"3244:4:66","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":46075,"mutability":"mutable","name":"relayerRewards","nameLocation":"3317:14:66","nodeType":"VariableDeclaration","scope":46085,"src":"3298:33:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage_ptr","typeString":"struct RelayerRewardsInfo"},"typeName":{"id":46074,"nodeType":"UserDefinedTypeName","pathNode":{"id":46073,"name":"RelayerRewardsInfo","nameLocations":["3298:18:66"],"nodeType":"IdentifierPath","referencedDeclaration":48446,"src":"3298:18:66"},"referencedDeclaration":48446,"src":"3298:18:66","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage_ptr","typeString":"struct RelayerRewardsInfo"}},"visibility":"internal"},{"constant":false,"id":46080,"mutability":"mutable","name":"bootstrapNodes","nameLocation":"3451:14:66","nodeType":"VariableDeclaration","scope":46085,"src":"3424:41:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"typeName":{"id":46079,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":46077,"name":"address","nodeType":"ElementaryTypeName","src":"3432:7:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3424:26:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":46078,"name":"string","nodeType":"ElementaryTypeName","src":"3443:6:66","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"internal"},{"constant":false,"id":46084,"mutability":"mutable","name":"bootstrapOwners","nameLocation":"3566:15:66","nodeType":"VariableDeclaration","scope":46085,"src":"3541:40:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":46083,"nodeType":"UserDefinedTypeName","pathNode":{"id":46082,"name":"EnumerableSet.AddressSet","nameLocations":["3541:13:66","3555:10:66"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"3541:24:66"},"referencedDeclaration":35099,"src":"3541:24:66","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"name":"SubnetActorStorage","nameLocation":"526:18:66","scope":46140,"visibility":"public"},{"id":46096,"nodeType":"ContractDefinition","src":"3586:194:66","nodes":[{"id":46095,"nodeType":"FunctionDefinition","src":"3622:156:66","nodes":[],"body":{"id":46094,"nodeType":"Block","src":"3698:80:66","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3717:36:66","statements":[{"nodeType":"YulAssignment","src":"3731:12:66","value":{"kind":"number","nodeType":"YulLiteral","src":"3742:1:66","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3731:7:66"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":46089,"isOffset":false,"isSlot":true,"src":"3731:7:66","suffix":"slot","valueSize":1}],"id":46091,"nodeType":"InlineAssembly","src":"3708:45:66"},{"expression":{"id":46092,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46089,"src":"3769:2:66","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"functionReturnParameters":46090,"id":46093,"nodeType":"Return","src":"3762:9:66"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3631:10:66","parameters":{"id":46086,"nodeType":"ParameterList","parameters":[],"src":"3641:2:66"},"returnParameters":{"id":46090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46089,"mutability":"mutable","name":"ds","nameLocation":"3694:2:66","nodeType":"VariableDeclaration","scope":46095,"src":"3667:29:66","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":46088,"nodeType":"UserDefinedTypeName","pathNode":{"id":46087,"name":"SubnetActorStorage","nameLocations":["3667:18:66"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"3667:18:66"},"referencedDeclaration":46085,"src":"3667:18:66","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"src":"3666:31:66"},"scope":46096,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibSubnetActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[46096],"name":"LibSubnetActorStorage","nameLocation":"3594:21:66","scope":46140,"usedErrors":[]},{"id":46139,"nodeType":"ContractDefinition","src":"3782:469:66","nodes":[{"id":46099,"nodeType":"VariableDeclaration","src":"3818:29:66","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"3846:1:66","scope":46139,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":46098,"nodeType":"UserDefinedTypeName","pathNode":{"id":46097,"name":"SubnetActorStorage","nameLocations":["3818:18:66"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"3818:18:66"},"referencedDeclaration":46085,"src":"3818:18:66","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":46113,"nodeType":"FunctionDefinition","src":"3854:133:66","nodes":[],"body":{"id":46112,"nodeType":"Block","src":"3891:96:66","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":46106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46102,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3905:3:66","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":46103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3909:6:66","memberName":"sender","nodeType":"MemberAccess","src":"3905:10:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46104,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"3919:1:66","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":46105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3921:14:66","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"3919:16:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3905:30:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46111,"nodeType":"IfStatement","src":"3901:80:66","trueBody":{"id":46110,"nodeType":"Block","src":"3937:44:66","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46107,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37046,"src":"3958:10:66","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3958:12:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46109,"nodeType":"RevertStatement","src":"3951:19:66"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyGateway","nameLocation":"3863:12:66","parameters":{"id":46100,"nodeType":"ParameterList","parameters":[],"src":"3875:2:66"},"returnParameters":{"id":46101,"nodeType":"ParameterList","parameters":[],"src":"3891:0:66"},"scope":46139,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":46124,"nodeType":"FunctionDefinition","src":"3993:118:66","nodes":[],"body":{"id":46123,"nodeType":"Block","src":"4028:83:66","nodes":[],"statements":[{"condition":{"expression":{"id":46116,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"4042:1:66","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":46117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4044:6:66","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":46056,"src":"4042:8:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46122,"nodeType":"IfStatement","src":"4038:67:66","trueBody":{"id":46121,"nodeType":"Block","src":"4052:53:66","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46118,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37072,"src":"4073:19:66","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4073:21:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46120,"nodeType":"RevertStatement","src":"4066:28:66"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_notKilled","nameLocation":"4002:10:66","parameters":{"id":46114,"nodeType":"ParameterList","parameters":[],"src":"4012:2:66"},"returnParameters":{"id":46115,"nodeType":"ParameterList","parameters":[],"src":"4028:0:66"},"scope":46139,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":46131,"nodeType":"ModifierDefinition","src":"4117:65:66","nodes":[],"body":{"id":46130,"nodeType":"Block","src":"4140:42:66","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":46126,"name":"_onlyGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46113,"src":"4150:12:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":46127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4150:14:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46128,"nodeType":"ExpressionStatement","src":"4150:14:66"},{"id":46129,"nodeType":"PlaceholderStatement","src":"4174:1:66"}]},"name":"onlyGateway","nameLocation":"4126:11:66","parameters":{"id":46125,"nodeType":"ParameterList","parameters":[],"src":"4137:2:66"},"virtual":false,"visibility":"internal"},{"id":46138,"nodeType":"ModifierDefinition","src":"4188:61:66","nodes":[],"body":{"id":46137,"nodeType":"Block","src":"4209:40:66","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":46133,"name":"_notKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46124,"src":"4219:10:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":46134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4219:12:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46135,"nodeType":"ExpressionStatement","src":"4219:12:66"},{"id":46136,"nodeType":"PlaceholderStatement","src":"4241:1:66"}]},"name":"notKilled","nameLocation":"4197:9:66","parameters":{"id":46132,"nodeType":"ParameterList","parameters":[],"src":"4206:2:66"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[46139],"name":"SubnetActorModifiers","nameLocation":"3791:20:66","scope":46140,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":66} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601357603a908160198239f35b600080fdfe600080fdfea2646970667358221220e5c3cbdbfe4f02af570aa61db0bb00911a19b7abfac0fb81b1915129e929fce064736f6c63430008130033","sourceMap":"3867:469:72:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220e5c3cbdbfe4f02af570aa61db0bb00911a19b7abfac0fb81b1915129e929fce064736f6c63430008130033","sourceMap":"3867:469:72:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/LibSubnetActorStorage.sol\":\"SubnetActorModifiers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/LibSubnetActorStorage.sol":"SubnetActorModifiers"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/LibSubnetActorStorage.sol","id":47336,"exportedSymbols":{"BottomUpCheckpoint":[49932],"BottomUpMsgBatchInfo":[49950],"ConsensusType":[37359],"EnumerableSet":[35815],"LibSubnetActorStorage":[47292],"NotGateway":[37478],"PermissionMode":[50165],"RelayerRewardsInfo":[49968],"StakingChangeLog":[50123],"StakingReleaseQueue":[50150],"SubnetActorModifiers":[47335],"SubnetActorStorage":[47281],"SubnetAlreadyKilled":[37504],"SubnetID":[50077],"SupplySource":[50226],"Validator":[50211],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:4291:72","nodes":[{"id":47159,"nodeType":"PragmaDirective","src":"46:23:72","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47161,"nodeType":"ImportDirective","src":"71:57:72","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":47160,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"79:13:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47164,"nodeType":"ImportDirective","src":"129:72:72","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":47162,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"137:10:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47163,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37504,"src":"149:19:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47168,"nodeType":"ImportDirective","src":"202:101:72","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":47165,"name":"RelayerRewardsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49968,"src":"210:18:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47166,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"230:18:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47167,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49950,"src":"250:20:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47176,"nodeType":"ImportDirective","src":"304:141:72","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":47169,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"312:8:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47170,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"322:12:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47171,"name":"StakingChangeLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50123,"src":"336:16:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47172,"name":"StakingReleaseQueue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"354:19:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47173,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"375:12:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47174,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"389:9:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":47175,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"400:14:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47178,"nodeType":"ImportDirective","src":"446:85:72","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":47336,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":47177,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"454:13:72","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47281,"nodeType":"StructDefinition","src":"533:3136:72","nodes":[],"canonicalName":"SubnetActorStorage","members":[{"constant":false,"id":47184,"mutability":"mutable","name":"committedCheckpoints","nameLocation":"682:20:72","nodeType":"VariableDeclaration","scope":47281,"src":"643:59:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"typeName":{"id":47183,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47180,"name":"uint256","nodeType":"ElementaryTypeName","src":"651:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"643:38:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47182,"nodeType":"UserDefinedTypeName","pathNode":{"id":47181,"name":"BottomUpCheckpoint","nameLocations":["662:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"662:18:72"},"referencedDeclaration":49932,"src":"662:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}}},"visibility":"internal"},{"constant":false,"id":47189,"mutability":"mutable","name":"genesisValidators","nameLocation":"781:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"769:29:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":47187,"nodeType":"UserDefinedTypeName","pathNode":{"id":47186,"name":"Validator","nameLocations":["769:9:72"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"769:9:72"},"referencedDeclaration":50211,"src":"769:9:72","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":47188,"nodeType":"ArrayTypeName","src":"769:11:72","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":47192,"mutability":"mutable","name":"genesisCircSupply","nameLocation":"933:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"925:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47191,"name":"uint256","nodeType":"ElementaryTypeName","src":"925:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47197,"mutability":"mutable","name":"genesisBalance","nameLocation":"1058:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"1030:42:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":47196,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47194,"name":"address","nodeType":"ElementaryTypeName","src":"1038:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1030:27:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47195,"name":"uint256","nodeType":"ElementaryTypeName","src":"1049:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":47201,"mutability":"mutable","name":"genesisBalanceKeys","nameLocation":"1130:18:72","nodeType":"VariableDeclaration","scope":47281,"src":"1120:28:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":47199,"name":"address","nodeType":"ElementaryTypeName","src":"1120:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47200,"nodeType":"ArrayTypeName","src":"1120:9:72","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":47204,"mutability":"mutable","name":"lastBottomUpCheckpointHeight","nameLocation":"1233:28:72","nodeType":"VariableDeclaration","scope":47281,"src":"1225:36:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47203,"name":"uint256","nodeType":"ElementaryTypeName","src":"1225:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47208,"mutability":"mutable","name":"lastBottomUpBatch","nameLocation":"1347:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"1326:38:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"},"typeName":{"id":47207,"nodeType":"UserDefinedTypeName","pathNode":{"id":47206,"name":"BottomUpMsgBatchInfo","nameLocations":["1326:20:72"],"nodeType":"IdentifierPath","referencedDeclaration":49950,"src":"1326:20:72"},"referencedDeclaration":49950,"src":"1326:20:72","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage_ptr","typeString":"struct BottomUpMsgBatchInfo"}},"visibility":"internal"},{"constant":false,"id":47211,"mutability":"mutable","name":"bottomUpMsgBatchPeriod","nameLocation":"1460:22:72","nodeType":"VariableDeclaration","scope":47281,"src":"1452:30:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47210,"name":"uint256","nodeType":"ElementaryTypeName","src":"1452:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47214,"mutability":"mutable","name":"maxMsgsPerBottomUpBatch","nameLocation":"1548:23:72","nodeType":"VariableDeclaration","scope":47281,"src":"1541:30:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47213,"name":"uint64","nodeType":"ElementaryTypeName","src":"1541:6:72","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47217,"mutability":"mutable","name":"minActivationCollateral","nameLocation":"1631:23:72","nodeType":"VariableDeclaration","scope":47281,"src":"1623:31:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47216,"name":"uint256","nodeType":"ElementaryTypeName","src":"1623:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47220,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1722:19:72","nodeType":"VariableDeclaration","scope":47281,"src":"1714:27:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47219,"name":"uint256","nodeType":"ElementaryTypeName","src":"1714:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47223,"mutability":"mutable","name":"minValidators","nameLocation":"1858:13:72","nodeType":"VariableDeclaration","scope":47281,"src":"1851:20:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":47222,"name":"uint64","nodeType":"ElementaryTypeName","src":"1851:6:72","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":47225,"mutability":"mutable","name":"currentSubnetHash","nameLocation":"1930:17:72","nodeType":"VariableDeclaration","scope":47281,"src":"1922:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1922:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":47228,"mutability":"mutable","name":"ipcGatewayAddr","nameLocation":"2019:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"2011:22:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47227,"name":"address","nodeType":"ElementaryTypeName","src":"2011:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47231,"mutability":"mutable","name":"majorityPercentage","nameLocation":"2125:18:72","nodeType":"VariableDeclaration","scope":47281,"src":"2119:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":47230,"name":"uint8","nodeType":"ElementaryTypeName","src":"2119:5:72","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":47234,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"2232:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"2224:22:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47233,"name":"uint256","nodeType":"ElementaryTypeName","src":"2224:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47238,"mutability":"mutable","name":"parentId","nameLocation":"2301:8:72","nodeType":"VariableDeclaration","scope":47281,"src":"2292:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":47237,"nodeType":"UserDefinedTypeName","pathNode":{"id":47236,"name":"SubnetID","nameLocations":["2292:8:72"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2292:8:72"},"referencedDeclaration":50077,"src":"2292:8:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47242,"mutability":"mutable","name":"consensus","nameLocation":"2354:9:72","nodeType":"VariableDeclaration","scope":47281,"src":"2340:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":47241,"nodeType":"UserDefinedTypeName","pathNode":{"id":47240,"name":"ConsensusType","nameLocations":["2340:13:72"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"2340:13:72"},"referencedDeclaration":37359,"src":"2340:13:72","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":47245,"mutability":"mutable","name":"bootstrapped","nameLocation":"2466:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"2461:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47244,"name":"bool","nodeType":"ElementaryTypeName","src":"2461:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47248,"mutability":"mutable","name":"killed","nameLocation":"2559:6:72","nodeType":"VariableDeclaration","scope":47281,"src":"2554:11:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47247,"name":"bool","nodeType":"ElementaryTypeName","src":"2554:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":47252,"mutability":"mutable","name":"validatorSet","nameLocation":"2670:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"2657:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":47251,"nodeType":"UserDefinedTypeName","pathNode":{"id":47250,"name":"ValidatorSet","nameLocations":["2657:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"2657:12:72"},"referencedDeclaration":50190,"src":"2657:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":47256,"mutability":"mutable","name":"changeSet","nameLocation":"2819:9:72","nodeType":"VariableDeclaration","scope":47281,"src":"2802:26:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":47255,"nodeType":"UserDefinedTypeName","pathNode":{"id":47254,"name":"StakingChangeLog","nameLocations":["2802:16:72"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"2802:16:72"},"referencedDeclaration":50123,"src":"2802:16:72","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"},{"constant":false,"id":47260,"mutability":"mutable","name":"releaseQueue","nameLocation":"2965:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"2945:32:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"},"typeName":{"id":47259,"nodeType":"UserDefinedTypeName","pathNode":{"id":47258,"name":"StakingReleaseQueue","nameLocations":["2945:19:72"],"nodeType":"IdentifierPath","referencedDeclaration":50150,"src":"2945:19:72"},"referencedDeclaration":50150,"src":"2945:19:72","typeDescriptions":{"typeIdentifier":"t_struct$_StakingReleaseQueue_$50150_storage_ptr","typeString":"struct StakingReleaseQueue"}},"visibility":"internal"},{"constant":false,"id":47263,"mutability":"mutable","name":"powerScale","nameLocation":"3263:10:72","nodeType":"VariableDeclaration","scope":47281,"src":"3258:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":47262,"name":"int8","nodeType":"ElementaryTypeName","src":"3258:4:72","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":47267,"mutability":"mutable","name":"relayerRewards","nameLocation":"3331:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"3312:33:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage_ptr","typeString":"struct RelayerRewardsInfo"},"typeName":{"id":47266,"nodeType":"UserDefinedTypeName","pathNode":{"id":47265,"name":"RelayerRewardsInfo","nameLocations":["3312:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":49968,"src":"3312:18:72"},"referencedDeclaration":49968,"src":"3312:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage_ptr","typeString":"struct RelayerRewardsInfo"}},"visibility":"internal"},{"constant":false,"id":47272,"mutability":"mutable","name":"bootstrapNodes","nameLocation":"3465:14:72","nodeType":"VariableDeclaration","scope":47281,"src":"3438:41:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"typeName":{"id":47271,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47269,"name":"address","nodeType":"ElementaryTypeName","src":"3446:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3438:26:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47270,"name":"string","nodeType":"ElementaryTypeName","src":"3457:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"internal"},{"constant":false,"id":47276,"mutability":"mutable","name":"bootstrapOwners","nameLocation":"3580:15:72","nodeType":"VariableDeclaration","scope":47281,"src":"3555:40:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":47275,"nodeType":"UserDefinedTypeName","pathNode":{"id":47274,"name":"EnumerableSet.AddressSet","nameLocations":["3555:13:72","3569:10:72"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"3555:24:72"},"referencedDeclaration":35528,"src":"3555:24:72","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":47280,"mutability":"mutable","name":"supplySource","nameLocation":"3654:12:72","nodeType":"VariableDeclaration","scope":47281,"src":"3641:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"},"typeName":{"id":47279,"nodeType":"UserDefinedTypeName","pathNode":{"id":47278,"name":"SupplySource","nameLocations":["3641:12:72"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"3641:12:72"},"referencedDeclaration":50226,"src":"3641:12:72","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"name":"SubnetActorStorage","nameLocation":"540:18:72","scope":47336,"visibility":"public"},{"id":47292,"nodeType":"ContractDefinition","src":"3671:194:72","nodes":[{"id":47291,"nodeType":"FunctionDefinition","src":"3707:156:72","nodes":[],"body":{"id":47290,"nodeType":"Block","src":"3783:80:72","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3802:36:72","statements":[{"nodeType":"YulAssignment","src":"3816:12:72","value":{"kind":"number","nodeType":"YulLiteral","src":"3827:1:72","type":"","value":"0"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"3816:7:72"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":47285,"isOffset":false,"isSlot":true,"src":"3816:7:72","suffix":"slot","valueSize":1}],"id":47287,"nodeType":"InlineAssembly","src":"3793:45:72"},{"expression":{"id":47288,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47285,"src":"3854:2:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage storage pointer"}},"functionReturnParameters":47286,"id":47289,"nodeType":"Return","src":"3847:9:72"}]},"implemented":true,"kind":"function","modifiers":[],"name":"appStorage","nameLocation":"3716:10:72","parameters":{"id":47282,"nodeType":"ParameterList","parameters":[],"src":"3726:2:72"},"returnParameters":{"id":47286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47285,"mutability":"mutable","name":"ds","nameLocation":"3779:2:72","nodeType":"VariableDeclaration","scope":47291,"src":"3752:29:72","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"},"typeName":{"id":47284,"nodeType":"UserDefinedTypeName","pathNode":{"id":47283,"name":"SubnetActorStorage","nameLocations":["3752:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"3752:18:72"},"referencedDeclaration":47281,"src":"3752:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"}],"src":"3751:31:72"},"scope":47292,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibSubnetActorStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[47292],"name":"LibSubnetActorStorage","nameLocation":"3679:21:72","scope":47336,"usedErrors":[]},{"id":47335,"nodeType":"ContractDefinition","src":"3867:469:72","nodes":[{"id":47295,"nodeType":"VariableDeclaration","src":"3903:29:72","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"3931:1:72","scope":47335,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":47294,"nodeType":"UserDefinedTypeName","pathNode":{"id":47293,"name":"SubnetActorStorage","nameLocations":["3903:18:72"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"3903:18:72"},"referencedDeclaration":47281,"src":"3903:18:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":47309,"nodeType":"FunctionDefinition","src":"3939:133:72","nodes":[],"body":{"id":47308,"nodeType":"Block","src":"3976:96:72","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47298,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3990:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":47299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3994:6:72","memberName":"sender","nodeType":"MemberAccess","src":"3990:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":47300,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4004:1:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":47301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4006:14:72","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"4004:16:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3990:30:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47307,"nodeType":"IfStatement","src":"3986:80:72","trueBody":{"id":47306,"nodeType":"Block","src":"4022:44:72","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47303,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"4043:10:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4043:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47305,"nodeType":"RevertStatement","src":"4036:19:72"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyGateway","nameLocation":"3948:12:72","parameters":{"id":47296,"nodeType":"ParameterList","parameters":[],"src":"3960:2:72"},"returnParameters":{"id":47297,"nodeType":"ParameterList","parameters":[],"src":"3976:0:72"},"scope":47335,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":47320,"nodeType":"FunctionDefinition","src":"4078:118:72","nodes":[],"body":{"id":47319,"nodeType":"Block","src":"4113:83:72","nodes":[],"statements":[{"condition":{"expression":{"id":47312,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4127:1:72","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":47313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4129:6:72","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":47248,"src":"4127:8:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47318,"nodeType":"IfStatement","src":"4123:67:72","trueBody":{"id":47317,"nodeType":"Block","src":"4137:53:72","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47314,"name":"SubnetAlreadyKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37504,"src":"4158:19:72","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4158:21:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47316,"nodeType":"RevertStatement","src":"4151:28:72"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_notKilled","nameLocation":"4087:10:72","parameters":{"id":47310,"nodeType":"ParameterList","parameters":[],"src":"4097:2:72"},"returnParameters":{"id":47311,"nodeType":"ParameterList","parameters":[],"src":"4113:0:72"},"scope":47335,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":47327,"nodeType":"ModifierDefinition","src":"4202:65:72","nodes":[],"body":{"id":47326,"nodeType":"Block","src":"4225:42:72","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47322,"name":"_onlyGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47309,"src":"4235:12:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":47323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4235:14:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47324,"nodeType":"ExpressionStatement","src":"4235:14:72"},{"id":47325,"nodeType":"PlaceholderStatement","src":"4259:1:72"}]},"name":"onlyGateway","nameLocation":"4211:11:72","parameters":{"id":47321,"nodeType":"ParameterList","parameters":[],"src":"4222:2:72"},"virtual":false,"visibility":"internal"},{"id":47334,"nodeType":"ModifierDefinition","src":"4273:61:72","nodes":[],"body":{"id":47333,"nodeType":"Block","src":"4294:40:72","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47329,"name":"_notKilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47320,"src":"4304:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":47330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4304:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47331,"nodeType":"ExpressionStatement","src":"4304:12:72"},{"id":47332,"nodeType":"PlaceholderStatement","src":"4326:1:72"}]},"name":"notKilled","nameLocation":"4282:9:72","parameters":{"id":47328,"nodeType":"ParameterList","parameters":[],"src":"4291:2:72"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorModifiers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[47335],"name":"SubnetActorModifiers","nameLocation":"3876:20:72","scope":47336,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":72} \ No newline at end of file diff --git a/.out/LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json b/.out/LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json index 3de779ffb..450d89296 100644 --- a/.out/LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json +++ b/.out/LibSubnetRegistryStorage.sol/LibSubnetRegistryStorage.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","id":46170,"exportedSymbols":{"SubnetRegistryActorStorage":[46169]},"nodeType":"SourceUnit","src":"46:939:67","nodes":[{"id":46141,"nodeType":"PragmaDirective","src":"46:23:67","nodes":[],"literals":["solidity","0.8",".19"]},{"id":46169,"nodeType":"StructDefinition","src":"71:913:67","nodes":[],"canonicalName":"SubnetRegistryActorStorage","members":[{"constant":false,"id":46143,"mutability":"mutable","name":"GATEWAY","nameLocation":"171:7:67","nodeType":"VariableDeclaration","scope":46169,"src":"163:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46142,"name":"address","nodeType":"ElementaryTypeName","src":"163:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46146,"mutability":"mutable","name":"SUBNET_GETTER_FACET","nameLocation":"299:19:67","nodeType":"VariableDeclaration","scope":46169,"src":"291:27:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46145,"name":"address","nodeType":"ElementaryTypeName","src":"291:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46148,"mutability":"mutable","name":"SUBNET_MANAGER_FACET","nameLocation":"384:20:67","nodeType":"VariableDeclaration","scope":46169,"src":"376:28:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46147,"name":"address","nodeType":"ElementaryTypeName","src":"376:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46152,"mutability":"mutable","name":"subnetGetterSelectors","nameLocation":"471:21:67","nodeType":"VariableDeclaration","scope":46169,"src":"462:30:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":46150,"name":"bytes4","nodeType":"ElementaryTypeName","src":"462:6:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":46151,"nodeType":"ArrayTypeName","src":"462:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":46156,"mutability":"mutable","name":"subnetManagerSelectors","nameLocation":"560:22:67","nodeType":"VariableDeclaration","scope":46169,"src":"551:31:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":46154,"name":"bytes4","nodeType":"ElementaryTypeName","src":"551:6:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":46155,"nodeType":"ArrayTypeName","src":"551:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":46163,"mutability":"mutable","name":"subnets","nameLocation":"809:7:67","nodeType":"VariableDeclaration","scope":46169,"src":"762:54:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"},"typeName":{"id":46162,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":46158,"name":"address","nodeType":"ElementaryTypeName","src":"770:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"762:46:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":46161,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":46159,"name":"uint64","nodeType":"ElementaryTypeName","src":"789:6:67","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"781:26:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":46160,"name":"address","nodeType":"ElementaryTypeName","src":"799:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}}},"visibility":"internal"},{"constant":false,"id":46168,"mutability":"mutable","name":"userNonces","nameLocation":"971:10:67","nodeType":"VariableDeclaration","scope":46169,"src":"944:37:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"},"typeName":{"id":46167,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":46165,"name":"address","nodeType":"ElementaryTypeName","src":"952:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"944:26:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":46166,"name":"uint64","nodeType":"ElementaryTypeName","src":"963:6:67","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},"visibility":"internal"}],"name":"SubnetRegistryActorStorage","nameLocation":"78:26:67","scope":46170,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":67} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","id":47366,"exportedSymbols":{"SubnetRegistryActorStorage":[47365]},"nodeType":"SourceUnit","src":"46:939:73","nodes":[{"id":47337,"nodeType":"PragmaDirective","src":"46:23:73","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47365,"nodeType":"StructDefinition","src":"71:913:73","nodes":[],"canonicalName":"SubnetRegistryActorStorage","members":[{"constant":false,"id":47339,"mutability":"mutable","name":"GATEWAY","nameLocation":"171:7:73","nodeType":"VariableDeclaration","scope":47365,"src":"163:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47338,"name":"address","nodeType":"ElementaryTypeName","src":"163:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47342,"mutability":"mutable","name":"SUBNET_GETTER_FACET","nameLocation":"299:19:73","nodeType":"VariableDeclaration","scope":47365,"src":"291:27:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47341,"name":"address","nodeType":"ElementaryTypeName","src":"291:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47344,"mutability":"mutable","name":"SUBNET_MANAGER_FACET","nameLocation":"384:20:73","nodeType":"VariableDeclaration","scope":47365,"src":"376:28:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47343,"name":"address","nodeType":"ElementaryTypeName","src":"376:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47348,"mutability":"mutable","name":"subnetGetterSelectors","nameLocation":"471:21:73","nodeType":"VariableDeclaration","scope":47365,"src":"462:30:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":47346,"name":"bytes4","nodeType":"ElementaryTypeName","src":"462:6:73","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":47347,"nodeType":"ArrayTypeName","src":"462:8:73","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":47352,"mutability":"mutable","name":"subnetManagerSelectors","nameLocation":"560:22:73","nodeType":"VariableDeclaration","scope":47365,"src":"551:31:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":47350,"name":"bytes4","nodeType":"ElementaryTypeName","src":"551:6:73","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":47351,"nodeType":"ArrayTypeName","src":"551:8:73","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":47359,"mutability":"mutable","name":"subnets","nameLocation":"809:7:73","nodeType":"VariableDeclaration","scope":47365,"src":"762:54:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"},"typeName":{"id":47358,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47354,"name":"address","nodeType":"ElementaryTypeName","src":"770:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"762:46:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47357,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47355,"name":"uint64","nodeType":"ElementaryTypeName","src":"789:6:73","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"781:26:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47356,"name":"address","nodeType":"ElementaryTypeName","src":"799:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}}},"visibility":"internal"},{"constant":false,"id":47364,"mutability":"mutable","name":"userNonces","nameLocation":"971:10:73","nodeType":"VariableDeclaration","scope":47365,"src":"944:37:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"},"typeName":{"id":47363,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47361,"name":"address","nodeType":"ElementaryTypeName","src":"952:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"944:26:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47362,"name":"uint64","nodeType":"ElementaryTypeName","src":"963:6:73","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}},"visibility":"internal"}],"name":"SubnetRegistryActorStorage","nameLocation":"78:26:73","scope":47366,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":73} \ No newline at end of file diff --git a/.out/Math.sol/Math.json b/.out/Math.sol/Math.json index 4edaf952c..f18469fdf 100644 --- a/.out/Math.sol/Math.json +++ b/.out/Math.sol/Math.json @@ -1 +1 @@ -{"abi":[{"type":"error","name":"MathOverflowedMulDiv","inputs":[]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122063bf14a7f108a574314b0f341821fdd5c352c594fb76d5b75e49982608fe47ca64736f6c63430008130033","sourceMap":"203:14864:31:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122063bf14a7f108a574314b0f341821fdd5c352c594fb76d5b75e49982608fe47ca64736f6c63430008130033","sourceMap":"203:14864:31:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":{\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":"Math"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","id":34669,"exportedSymbols":{"Math":[34668]},"nodeType":"SourceUnit","src":"103:14965:31","nodes":[{"id":33633,"nodeType":"PragmaDirective","src":"103:24:31","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":34668,"nodeType":"ContractDefinition","src":"203:14864:31","nodes":[{"id":33637,"nodeType":"ErrorDefinition","src":"277:29:31","nodes":[],"documentation":{"id":33635,"nodeType":"StructuredDocumentation","src":"222:50:31","text":" @dev Muldiv operation overflow."},"errorSelector":"227bc153","name":"MathOverflowedMulDiv","nameLocation":"283:20:31","parameters":{"id":33636,"nodeType":"ParameterList","parameters":[],"src":"303:2:31"}},{"id":33641,"nodeType":"EnumDefinition","src":"312:122:31","nodes":[],"canonicalName":"Math.Rounding","members":[{"id":33638,"name":"Down","nameLocation":"336:4:31","nodeType":"EnumValue","src":"336:4:31"},{"id":33639,"name":"Up","nameLocation":"378:2:31","nodeType":"EnumValue","src":"378:2:31"},{"id":33640,"name":"Zero","nameLocation":"409:4:31","nodeType":"EnumValue","src":"409:4:31"}],"name":"Rounding","nameLocation":"317:8:31"},{"id":33673,"nodeType":"FunctionDefinition","src":"576:216:31","nodes":[],"body":{"id":33672,"nodeType":"Block","src":"652:140:31","nodes":[],"statements":[{"id":33671,"nodeType":"UncheckedBlock","src":"662:124:31","statements":[{"assignments":[33654],"declarations":[{"constant":false,"id":33654,"mutability":"mutable","name":"c","nameLocation":"694:1:31","nodeType":"VariableDeclaration","scope":33671,"src":"686:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33653,"name":"uint256","nodeType":"ElementaryTypeName","src":"686:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33658,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33655,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33644,"src":"698:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":33656,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33646,"src":"702:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"698:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"686:17:31"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33659,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33654,"src":"721:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33660,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33644,"src":"725:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"721:5:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33666,"nodeType":"IfStatement","src":"717:28:31","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":33662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"736:5:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":33663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"743:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":33664,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"735:10:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":33652,"id":33665,"nodeType":"Return","src":"728:17:31"}},{"expression":{"components":[{"hexValue":"74727565","id":33667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"767:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":33668,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33654,"src":"773:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33669,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"766:9:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":33652,"id":33670,"nodeType":"Return","src":"759:16:31"}]}]},"documentation":{"id":33642,"nodeType":"StructuredDocumentation","src":"440:131:31","text":" @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"585:6:31","parameters":{"id":33647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33644,"mutability":"mutable","name":"a","nameLocation":"600:1:31","nodeType":"VariableDeclaration","scope":33673,"src":"592:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33643,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33646,"mutability":"mutable","name":"b","nameLocation":"611:1:31","nodeType":"VariableDeclaration","scope":33673,"src":"603:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33645,"name":"uint256","nodeType":"ElementaryTypeName","src":"603:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"591:22:31"},"returnParameters":{"id":33652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33649,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33673,"src":"637:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33648,"name":"bool","nodeType":"ElementaryTypeName","src":"637:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":33651,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33673,"src":"643:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33650,"name":"uint256","nodeType":"ElementaryTypeName","src":"643:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"636:15:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33701,"nodeType":"FunctionDefinition","src":"937:189:31","nodes":[],"body":{"id":33700,"nodeType":"Block","src":"1013:113:31","nodes":[],"statements":[{"id":33699,"nodeType":"UncheckedBlock","src":"1023:97:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33685,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33678,"src":"1051:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":33686,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33676,"src":"1055:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1051:5:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33692,"nodeType":"IfStatement","src":"1047:28:31","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":33688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1066:5:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":33689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1073:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":33690,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1065:10:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":33684,"id":33691,"nodeType":"Return","src":"1058:17:31"}},{"expression":{"components":[{"hexValue":"74727565","id":33693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1097:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33694,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33676,"src":"1103:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":33695,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33678,"src":"1107:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1103:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33697,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1096:13:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":33684,"id":33698,"nodeType":"Return","src":"1089:20:31"}]}]},"documentation":{"id":33674,"nodeType":"StructuredDocumentation","src":"798:134:31","text":" @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"946:6:31","parameters":{"id":33679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33676,"mutability":"mutable","name":"a","nameLocation":"961:1:31","nodeType":"VariableDeclaration","scope":33701,"src":"953:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33675,"name":"uint256","nodeType":"ElementaryTypeName","src":"953:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33678,"mutability":"mutable","name":"b","nameLocation":"972:1:31","nodeType":"VariableDeclaration","scope":33701,"src":"964:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33677,"name":"uint256","nodeType":"ElementaryTypeName","src":"964:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:22:31"},"returnParameters":{"id":33684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33681,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33701,"src":"998:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33680,"name":"bool","nodeType":"ElementaryTypeName","src":"998:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":33683,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33701,"src":"1004:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33682,"name":"uint256","nodeType":"ElementaryTypeName","src":"1004:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"997:15:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33743,"nodeType":"FunctionDefinition","src":"1274:493:31","nodes":[],"body":{"id":33742,"nodeType":"Block","src":"1350:417:31","nodes":[],"statements":[{"id":33741,"nodeType":"UncheckedBlock","src":"1360:401:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33713,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33704,"src":"1618:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":33714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1623:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1618:6:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33720,"nodeType":"IfStatement","src":"1614:28:31","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":33716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1634:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":33717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1640:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":33718,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1633:9:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":33712,"id":33719,"nodeType":"Return","src":"1626:16:31"}},{"assignments":[33722],"declarations":[{"constant":false,"id":33722,"mutability":"mutable","name":"c","nameLocation":"1664:1:31","nodeType":"VariableDeclaration","scope":33741,"src":"1656:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33721,"name":"uint256","nodeType":"ElementaryTypeName","src":"1656:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33726,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33723,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33704,"src":"1668:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":33724,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33706,"src":"1672:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1668:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1656:17:31"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33727,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33722,"src":"1691:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":33728,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33704,"src":"1695:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1691:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":33730,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33706,"src":"1700:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1691:10:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33736,"nodeType":"IfStatement","src":"1687:33:31","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":33732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1711:5:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":33733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1718:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":33734,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1710:10:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":33712,"id":33735,"nodeType":"Return","src":"1703:17:31"}},{"expression":{"components":[{"hexValue":"74727565","id":33737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1742:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":33738,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33722,"src":"1748:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33739,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1741:9:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":33712,"id":33740,"nodeType":"Return","src":"1734:16:31"}]}]},"documentation":{"id":33702,"nodeType":"StructuredDocumentation","src":"1132:137:31","text":" @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1283:6:31","parameters":{"id":33707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33704,"mutability":"mutable","name":"a","nameLocation":"1298:1:31","nodeType":"VariableDeclaration","scope":33743,"src":"1290:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33703,"name":"uint256","nodeType":"ElementaryTypeName","src":"1290:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33706,"mutability":"mutable","name":"b","nameLocation":"1309:1:31","nodeType":"VariableDeclaration","scope":33743,"src":"1301:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33705,"name":"uint256","nodeType":"ElementaryTypeName","src":"1301:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1289:22:31"},"returnParameters":{"id":33712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33709,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33743,"src":"1335:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33708,"name":"bool","nodeType":"ElementaryTypeName","src":"1335:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":33711,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33743,"src":"1341:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33710,"name":"uint256","nodeType":"ElementaryTypeName","src":"1341:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1334:15:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33771,"nodeType":"FunctionDefinition","src":"1916:190:31","nodes":[],"body":{"id":33770,"nodeType":"Block","src":"1992:114:31","nodes":[],"statements":[{"id":33769,"nodeType":"UncheckedBlock","src":"2002:98:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33755,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33748,"src":"2030:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":33756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2035:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2030:6:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33762,"nodeType":"IfStatement","src":"2026:29:31","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":33758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2046:5:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":33759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2053:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":33760,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2045:10:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":33754,"id":33761,"nodeType":"Return","src":"2038:17:31"}},{"expression":{"components":[{"hexValue":"74727565","id":33763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2077:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33764,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33746,"src":"2083:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":33765,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33748,"src":"2087:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2083:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33767,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2076:13:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":33754,"id":33768,"nodeType":"Return","src":"2069:20:31"}]}]},"documentation":{"id":33744,"nodeType":"StructuredDocumentation","src":"1773:138:31","text":" @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1925:6:31","parameters":{"id":33749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33746,"mutability":"mutable","name":"a","nameLocation":"1940:1:31","nodeType":"VariableDeclaration","scope":33771,"src":"1932:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33745,"name":"uint256","nodeType":"ElementaryTypeName","src":"1932:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33748,"mutability":"mutable","name":"b","nameLocation":"1951:1:31","nodeType":"VariableDeclaration","scope":33771,"src":"1943:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33747,"name":"uint256","nodeType":"ElementaryTypeName","src":"1943:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1931:22:31"},"returnParameters":{"id":33754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33751,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33771,"src":"1977:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33750,"name":"bool","nodeType":"ElementaryTypeName","src":"1977:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":33753,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33771,"src":"1983:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33752,"name":"uint256","nodeType":"ElementaryTypeName","src":"1983:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1976:15:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33799,"nodeType":"FunctionDefinition","src":"2265:190:31","nodes":[],"body":{"id":33798,"nodeType":"Block","src":"2341:114:31","nodes":[],"statements":[{"id":33797,"nodeType":"UncheckedBlock","src":"2351:98:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33783,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33776,"src":"2379:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":33784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2384:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2379:6:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33790,"nodeType":"IfStatement","src":"2375:29:31","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":33786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2395:5:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":33787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2402:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":33788,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2394:10:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":33782,"id":33789,"nodeType":"Return","src":"2387:17:31"}},{"expression":{"components":[{"hexValue":"74727565","id":33791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2426:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33792,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33774,"src":"2432:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":33793,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33776,"src":"2436:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2432:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33795,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2425:13:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":33782,"id":33796,"nodeType":"Return","src":"2418:20:31"}]}]},"documentation":{"id":33772,"nodeType":"StructuredDocumentation","src":"2112:148:31","text":" @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2274:6:31","parameters":{"id":33777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33774,"mutability":"mutable","name":"a","nameLocation":"2289:1:31","nodeType":"VariableDeclaration","scope":33799,"src":"2281:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33773,"name":"uint256","nodeType":"ElementaryTypeName","src":"2281:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33776,"mutability":"mutable","name":"b","nameLocation":"2300:1:31","nodeType":"VariableDeclaration","scope":33799,"src":"2292:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33775,"name":"uint256","nodeType":"ElementaryTypeName","src":"2292:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2280:22:31"},"returnParameters":{"id":33782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33779,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33799,"src":"2326:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33778,"name":"bool","nodeType":"ElementaryTypeName","src":"2326:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":33781,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33799,"src":"2332:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33780,"name":"uint256","nodeType":"ElementaryTypeName","src":"2332:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2325:15:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33817,"nodeType":"FunctionDefinition","src":"2525:104:31","nodes":[],"body":{"id":33816,"nodeType":"Block","src":"2592:37:31","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33809,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33802,"src":"2609:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":33810,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33804,"src":"2613:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2609:5:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":33813,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33804,"src":"2621:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2609:13:31","trueExpression":{"id":33812,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33802,"src":"2617:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33808,"id":33815,"nodeType":"Return","src":"2602:20:31"}]},"documentation":{"id":33800,"nodeType":"StructuredDocumentation","src":"2461:59:31","text":" @dev Returns the largest of two numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"2534:3:31","parameters":{"id":33805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33802,"mutability":"mutable","name":"a","nameLocation":"2546:1:31","nodeType":"VariableDeclaration","scope":33817,"src":"2538:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33801,"name":"uint256","nodeType":"ElementaryTypeName","src":"2538:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33804,"mutability":"mutable","name":"b","nameLocation":"2557:1:31","nodeType":"VariableDeclaration","scope":33817,"src":"2549:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33803,"name":"uint256","nodeType":"ElementaryTypeName","src":"2549:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2537:22:31"},"returnParameters":{"id":33808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33807,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33817,"src":"2583:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33806,"name":"uint256","nodeType":"ElementaryTypeName","src":"2583:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2582:9:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33835,"nodeType":"FunctionDefinition","src":"2700:104:31","nodes":[],"body":{"id":33834,"nodeType":"Block","src":"2767:37:31","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33827,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33820,"src":"2784:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33828,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33822,"src":"2788:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2784:5:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":33831,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33822,"src":"2796:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2784:13:31","trueExpression":{"id":33830,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33820,"src":"2792:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33826,"id":33833,"nodeType":"Return","src":"2777:20:31"}]},"documentation":{"id":33818,"nodeType":"StructuredDocumentation","src":"2635:60:31","text":" @dev Returns the smallest of two numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"2709:3:31","parameters":{"id":33823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33820,"mutability":"mutable","name":"a","nameLocation":"2721:1:31","nodeType":"VariableDeclaration","scope":33835,"src":"2713:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33819,"name":"uint256","nodeType":"ElementaryTypeName","src":"2713:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33822,"mutability":"mutable","name":"b","nameLocation":"2732:1:31","nodeType":"VariableDeclaration","scope":33835,"src":"2724:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33821,"name":"uint256","nodeType":"ElementaryTypeName","src":"2724:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2712:22:31"},"returnParameters":{"id":33826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33825,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33835,"src":"2758:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33824,"name":"uint256","nodeType":"ElementaryTypeName","src":"2758:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2757:9:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33858,"nodeType":"FunctionDefinition","src":"2917:153:31","nodes":[],"body":{"id":33857,"nodeType":"Block","src":"2988:82:31","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33845,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33838,"src":"3043:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":33846,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33840,"src":"3047:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3043:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33848,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3042:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33849,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33838,"src":"3053:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":33850,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33840,"src":"3057:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3053:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33852,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3052:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":33853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3062:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3052:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3042:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33844,"id":33856,"nodeType":"Return","src":"3035:28:31"}]},"documentation":{"id":33836,"nodeType":"StructuredDocumentation","src":"2810:102:31","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"2926:7:31","parameters":{"id":33841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33838,"mutability":"mutable","name":"a","nameLocation":"2942:1:31","nodeType":"VariableDeclaration","scope":33858,"src":"2934:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33837,"name":"uint256","nodeType":"ElementaryTypeName","src":"2934:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33840,"mutability":"mutable","name":"b","nameLocation":"2953:1:31","nodeType":"VariableDeclaration","scope":33858,"src":"2945:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33839,"name":"uint256","nodeType":"ElementaryTypeName","src":"2945:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2933:22:31"},"returnParameters":{"id":33844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33843,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33858,"src":"2979:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33842,"name":"uint256","nodeType":"ElementaryTypeName","src":"2979:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2978:9:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33892,"nodeType":"FunctionDefinition","src":"3269:331:31","nodes":[],"body":{"id":33891,"nodeType":"Block","src":"3340:260:31","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33868,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33863,"src":"3354:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":33869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3359:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3354:6:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33876,"nodeType":"IfStatement","src":"3350:127:31","trueBody":{"id":33875,"nodeType":"Block","src":"3362:115:31","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33871,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33861,"src":"3461:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":33872,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33863,"src":"3465:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3461:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33867,"id":33874,"nodeType":"Return","src":"3454:12:31"}]}},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33877,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33861,"src":"3565:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":33878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3570:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3565:6:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33881,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33861,"src":"3579:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":33882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3583:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3579:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33884,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3578:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":33885,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33863,"src":"3588:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3578:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":33887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3592:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3578:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3565:28:31","trueExpression":{"hexValue":"30","id":33880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3574:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33867,"id":33890,"nodeType":"Return","src":"3558:35:31"}]},"documentation":{"id":33859,"nodeType":"StructuredDocumentation","src":"3076:188:31","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down."},"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"3278:7:31","parameters":{"id":33864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33861,"mutability":"mutable","name":"a","nameLocation":"3294:1:31","nodeType":"VariableDeclaration","scope":33892,"src":"3286:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33860,"name":"uint256","nodeType":"ElementaryTypeName","src":"3286:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33863,"mutability":"mutable","name":"b","nameLocation":"3305:1:31","nodeType":"VariableDeclaration","scope":33892,"src":"3297:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33862,"name":"uint256","nodeType":"ElementaryTypeName","src":"3297:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3285:22:31"},"returnParameters":{"id":33867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33866,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33892,"src":"3331:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33865,"name":"uint256","nodeType":"ElementaryTypeName","src":"3331:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3330:9:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34016,"nodeType":"FunctionDefinition","src":"3916:4247:31","nodes":[],"body":{"id":34015,"nodeType":"Block","src":"4014:4149:31","nodes":[],"statements":[{"id":34014,"nodeType":"UncheckedBlock","src":"4024:4133:31","statements":[{"assignments":[33905],"declarations":[{"constant":false,"id":33905,"mutability":"mutable","name":"prod0","nameLocation":"4353:5:31","nodeType":"VariableDeclaration","scope":34014,"src":"4345:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33904,"name":"uint256","nodeType":"ElementaryTypeName","src":"4345:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33906,"nodeType":"VariableDeclarationStatement","src":"4345:13:31"},{"assignments":[33908],"declarations":[{"constant":false,"id":33908,"mutability":"mutable","name":"prod1","nameLocation":"4425:5:31","nodeType":"VariableDeclaration","scope":34014,"src":"4417:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33907,"name":"uint256","nodeType":"ElementaryTypeName","src":"4417:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33909,"nodeType":"VariableDeclarationStatement","src":"4417:13:31"},{"AST":{"nodeType":"YulBlock","src":"4497:157:31","statements":[{"nodeType":"YulVariableDeclaration","src":"4515:30:31","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4532:1:31"},{"name":"y","nodeType":"YulIdentifier","src":"4535:1:31"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4542:1:31","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4538:3:31"},"nodeType":"YulFunctionCall","src":"4538:6:31"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"4525:6:31"},"nodeType":"YulFunctionCall","src":"4525:20:31"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"4519:2:31","type":""}]},{"nodeType":"YulAssignment","src":"4562:18:31","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4575:1:31"},{"name":"y","nodeType":"YulIdentifier","src":"4578:1:31"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4571:3:31"},"nodeType":"YulFunctionCall","src":"4571:9:31"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"4562:5:31"}]},{"nodeType":"YulAssignment","src":"4597:43:31","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"4614:2:31"},{"name":"prod0","nodeType":"YulIdentifier","src":"4618:5:31"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4610:3:31"},"nodeType":"YulFunctionCall","src":"4610:14:31"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"4629:2:31"},{"name":"prod0","nodeType":"YulIdentifier","src":"4633:5:31"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4626:2:31"},"nodeType":"YulFunctionCall","src":"4626:13:31"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4606:3:31"},"nodeType":"YulFunctionCall","src":"4606:34:31"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"4597:5:31"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":33905,"isOffset":false,"isSlot":false,"src":"4562:5:31","valueSize":1},{"declaration":33905,"isOffset":false,"isSlot":false,"src":"4618:5:31","valueSize":1},{"declaration":33905,"isOffset":false,"isSlot":false,"src":"4633:5:31","valueSize":1},{"declaration":33908,"isOffset":false,"isSlot":false,"src":"4597:5:31","valueSize":1},{"declaration":33895,"isOffset":false,"isSlot":false,"src":"4532:1:31","valueSize":1},{"declaration":33895,"isOffset":false,"isSlot":false,"src":"4575:1:31","valueSize":1},{"declaration":33897,"isOffset":false,"isSlot":false,"src":"4535:1:31","valueSize":1},{"declaration":33897,"isOffset":false,"isSlot":false,"src":"4578:1:31","valueSize":1}],"id":33910,"nodeType":"InlineAssembly","src":"4488:166:31"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33911,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33908,"src":"4735:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":33912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4744:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4735:10:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33919,"nodeType":"IfStatement","src":"4731:368:31","trueBody":{"id":33918,"nodeType":"Block","src":"4747:352:31","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33914,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33905,"src":"5065:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":33915,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33899,"src":"5073:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:19:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33903,"id":33917,"nodeType":"Return","src":"5058:26:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33920,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33899,"src":"5205:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":33921,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33908,"src":"5220:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5205:20:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33927,"nodeType":"IfStatement","src":"5201:88:31","trueBody":{"id":33926,"nodeType":"Block","src":"5227:62:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":33923,"name":"MathOverflowedMulDiv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33637,"src":"5252:20:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":33924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5252:22:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33925,"nodeType":"RevertStatement","src":"5245:29:31"}]}},{"assignments":[33929],"declarations":[{"constant":false,"id":33929,"mutability":"mutable","name":"remainder","nameLocation":"5552:9:31","nodeType":"VariableDeclaration","scope":34014,"src":"5544:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33928,"name":"uint256","nodeType":"ElementaryTypeName","src":"5544:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33930,"nodeType":"VariableDeclarationStatement","src":"5544:17:31"},{"AST":{"nodeType":"YulBlock","src":"5584:291:31","statements":[{"nodeType":"YulAssignment","src":"5653:38:31","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5673:1:31"},{"name":"y","nodeType":"YulIdentifier","src":"5676:1:31"},{"name":"denominator","nodeType":"YulIdentifier","src":"5679:11:31"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"5666:6:31"},"nodeType":"YulFunctionCall","src":"5666:25:31"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"5653:9:31"}]},{"nodeType":"YulAssignment","src":"5773:41:31","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"5786:5:31"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"5796:9:31"},{"name":"prod0","nodeType":"YulIdentifier","src":"5807:5:31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5793:2:31"},"nodeType":"YulFunctionCall","src":"5793:20:31"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5782:3:31"},"nodeType":"YulFunctionCall","src":"5782:32:31"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"5773:5:31"}]},{"nodeType":"YulAssignment","src":"5831:30:31","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"5844:5:31"},{"name":"remainder","nodeType":"YulIdentifier","src":"5851:9:31"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5840:3:31"},"nodeType":"YulFunctionCall","src":"5840:21:31"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"5831:5:31"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":33899,"isOffset":false,"isSlot":false,"src":"5679:11:31","valueSize":1},{"declaration":33905,"isOffset":false,"isSlot":false,"src":"5807:5:31","valueSize":1},{"declaration":33905,"isOffset":false,"isSlot":false,"src":"5831:5:31","valueSize":1},{"declaration":33905,"isOffset":false,"isSlot":false,"src":"5844:5:31","valueSize":1},{"declaration":33908,"isOffset":false,"isSlot":false,"src":"5773:5:31","valueSize":1},{"declaration":33908,"isOffset":false,"isSlot":false,"src":"5786:5:31","valueSize":1},{"declaration":33929,"isOffset":false,"isSlot":false,"src":"5653:9:31","valueSize":1},{"declaration":33929,"isOffset":false,"isSlot":false,"src":"5796:9:31","valueSize":1},{"declaration":33929,"isOffset":false,"isSlot":false,"src":"5851:9:31","valueSize":1},{"declaration":33895,"isOffset":false,"isSlot":false,"src":"5673:1:31","valueSize":1},{"declaration":33897,"isOffset":false,"isSlot":false,"src":"5676:1:31","valueSize":1}],"id":33931,"nodeType":"InlineAssembly","src":"5575:300:31"},{"assignments":[33933],"declarations":[{"constant":false,"id":33933,"mutability":"mutable","name":"twos","nameLocation":"6190:4:31","nodeType":"VariableDeclaration","scope":34014,"src":"6182:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33932,"name":"uint256","nodeType":"ElementaryTypeName","src":"6182:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33941,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33934,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33899,"src":"6197:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"6212:12:31","subExpression":{"id":33935,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33899,"src":"6213:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":33937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6227:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6212:16:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33939,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6211:18:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6197:32:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6182:47:31"},{"AST":{"nodeType":"YulBlock","src":"6252:362:31","statements":[{"nodeType":"YulAssignment","src":"6317:37:31","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"6336:11:31"},{"name":"twos","nodeType":"YulIdentifier","src":"6349:4:31"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6332:3:31"},"nodeType":"YulFunctionCall","src":"6332:22:31"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"6317:11:31"}]},{"nodeType":"YulAssignment","src":"6421:25:31","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"6434:5:31"},{"name":"twos","nodeType":"YulIdentifier","src":"6441:4:31"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6430:3:31"},"nodeType":"YulFunctionCall","src":"6430:16:31"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"6421:5:31"}]},{"nodeType":"YulAssignment","src":"6561:39:31","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6581:1:31","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"6584:4:31"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6577:3:31"},"nodeType":"YulFunctionCall","src":"6577:12:31"},{"name":"twos","nodeType":"YulIdentifier","src":"6591:4:31"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6573:3:31"},"nodeType":"YulFunctionCall","src":"6573:23:31"},{"kind":"number","nodeType":"YulLiteral","src":"6598:1:31","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6569:3:31"},"nodeType":"YulFunctionCall","src":"6569:31:31"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"6561:4:31"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":33899,"isOffset":false,"isSlot":false,"src":"6317:11:31","valueSize":1},{"declaration":33899,"isOffset":false,"isSlot":false,"src":"6336:11:31","valueSize":1},{"declaration":33905,"isOffset":false,"isSlot":false,"src":"6421:5:31","valueSize":1},{"declaration":33905,"isOffset":false,"isSlot":false,"src":"6434:5:31","valueSize":1},{"declaration":33933,"isOffset":false,"isSlot":false,"src":"6349:4:31","valueSize":1},{"declaration":33933,"isOffset":false,"isSlot":false,"src":"6441:4:31","valueSize":1},{"declaration":33933,"isOffset":false,"isSlot":false,"src":"6561:4:31","valueSize":1},{"declaration":33933,"isOffset":false,"isSlot":false,"src":"6584:4:31","valueSize":1},{"declaration":33933,"isOffset":false,"isSlot":false,"src":"6591:4:31","valueSize":1}],"id":33942,"nodeType":"InlineAssembly","src":"6243:371:31"},{"expression":{"id":33947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33943,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33905,"src":"6680:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33944,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33908,"src":"6689:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":33945,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33933,"src":"6697:4:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6689:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6680:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33948,"nodeType":"ExpressionStatement","src":"6680:21:31"},{"assignments":[33950],"declarations":[{"constant":false,"id":33950,"mutability":"mutable","name":"inverse","nameLocation":"7027:7:31","nodeType":"VariableDeclaration","scope":34014,"src":"7019:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33949,"name":"uint256","nodeType":"ElementaryTypeName","src":"7019:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33957,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":33951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7038:1:31","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":33952,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33899,"src":"7042:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7038:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":33954,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7037:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":33955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7057:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"7037:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7019:39:31"},{"expression":{"id":33964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33958,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33950,"src":"7275:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":33959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7286:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33960,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33899,"src":"7290:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":33961,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33950,"src":"7304:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7290:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7286:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7275:36:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33965,"nodeType":"ExpressionStatement","src":"7275:36:31"},{"expression":{"id":33972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33966,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33950,"src":"7344:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":33967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7355:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33968,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33899,"src":"7359:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":33969,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33950,"src":"7373:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7359:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7355:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7344:36:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33973,"nodeType":"ExpressionStatement","src":"7344:36:31"},{"expression":{"id":33980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33974,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33950,"src":"7414:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":33975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7425:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33976,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33899,"src":"7429:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":33977,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33950,"src":"7443:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7429:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7425:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7414:36:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33981,"nodeType":"ExpressionStatement","src":"7414:36:31"},{"expression":{"id":33988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33982,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33950,"src":"7484:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":33983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7495:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33984,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33899,"src":"7499:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":33985,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33950,"src":"7513:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7499:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7495:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7484:36:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33989,"nodeType":"ExpressionStatement","src":"7484:36:31"},{"expression":{"id":33996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33990,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33950,"src":"7554:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":33991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7565:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33992,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33899,"src":"7569:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":33993,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33950,"src":"7583:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7569:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7565:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7554:36:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33997,"nodeType":"ExpressionStatement","src":"7554:36:31"},{"expression":{"id":34004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33998,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33950,"src":"7625:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":33999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7636:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34000,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33899,"src":"7640:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":34001,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33950,"src":"7654:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7640:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7636:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7625:36:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34005,"nodeType":"ExpressionStatement","src":"7625:36:31"},{"expression":{"id":34010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34006,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33902,"src":"8095:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34007,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33905,"src":"8104:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":34008,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33950,"src":"8112:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8104:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8095:24:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34011,"nodeType":"ExpressionStatement","src":"8095:24:31"},{"expression":{"id":34012,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33902,"src":"8140:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33903,"id":34013,"nodeType":"Return","src":"8133:13:31"}]}]},"documentation":{"id":33893,"nodeType":"StructuredDocumentation","src":"3606:305:31","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license."},"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"3925:6:31","parameters":{"id":33900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33895,"mutability":"mutable","name":"x","nameLocation":"3940:1:31","nodeType":"VariableDeclaration","scope":34016,"src":"3932:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33894,"name":"uint256","nodeType":"ElementaryTypeName","src":"3932:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33897,"mutability":"mutable","name":"y","nameLocation":"3951:1:31","nodeType":"VariableDeclaration","scope":34016,"src":"3943:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33896,"name":"uint256","nodeType":"ElementaryTypeName","src":"3943:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33899,"mutability":"mutable","name":"denominator","nameLocation":"3962:11:31","nodeType":"VariableDeclaration","scope":34016,"src":"3954:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33898,"name":"uint256","nodeType":"ElementaryTypeName","src":"3954:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3931:43:31"},"returnParameters":{"id":33903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33902,"mutability":"mutable","name":"result","nameLocation":"4006:6:31","nodeType":"VariableDeclaration","scope":34016,"src":"3998:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33901,"name":"uint256","nodeType":"ElementaryTypeName","src":"3998:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3997:16:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34060,"nodeType":"FunctionDefinition","src":"8295:299:31","nodes":[],"body":{"id":34059,"nodeType":"Block","src":"8405:189:31","nodes":[],"statements":[{"assignments":[34032],"declarations":[{"constant":false,"id":34032,"mutability":"mutable","name":"result","nameLocation":"8423:6:31","nodeType":"VariableDeclaration","scope":34059,"src":"8415:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34031,"name":"uint256","nodeType":"ElementaryTypeName","src":"8415:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34038,"initialValue":{"arguments":[{"id":34034,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34019,"src":"8439:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34035,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34021,"src":"8442:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34036,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34023,"src":"8445:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34033,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[34016,34060],"referencedDeclaration":34016,"src":"8432:6:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":34037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8432:25:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8415:42:31"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":34050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"},"id":34042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34039,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34026,"src":"8471:8:31","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":34040,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33641,"src":"8483:8:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$33641_$","typeString":"type(enum Math.Rounding)"}},"id":34041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8492:2:31","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":33639,"src":"8483:11:31","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"}},"src":"8471:23:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":34044,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34019,"src":"8505:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34045,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34021,"src":"8508:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34046,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34023,"src":"8511:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34043,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"8498:6:31","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":34047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8498:25:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8526:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8498:29:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8471:56:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34056,"nodeType":"IfStatement","src":"8467:98:31","trueBody":{"id":34055,"nodeType":"Block","src":"8529:36:31","statements":[{"expression":{"id":34053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34051,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34032,"src":"8543:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":34052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8553:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8543:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34054,"nodeType":"ExpressionStatement","src":"8543:11:31"}]}},{"expression":{"id":34057,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34032,"src":"8581:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34030,"id":34058,"nodeType":"Return","src":"8574:13:31"}]},"documentation":{"id":34017,"nodeType":"StructuredDocumentation","src":"8169:121:31","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"8304:6:31","parameters":{"id":34027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34019,"mutability":"mutable","name":"x","nameLocation":"8319:1:31","nodeType":"VariableDeclaration","scope":34060,"src":"8311:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34018,"name":"uint256","nodeType":"ElementaryTypeName","src":"8311:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34021,"mutability":"mutable","name":"y","nameLocation":"8330:1:31","nodeType":"VariableDeclaration","scope":34060,"src":"8322:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34020,"name":"uint256","nodeType":"ElementaryTypeName","src":"8322:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34023,"mutability":"mutable","name":"denominator","nameLocation":"8341:11:31","nodeType":"VariableDeclaration","scope":34060,"src":"8333:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34022,"name":"uint256","nodeType":"ElementaryTypeName","src":"8333:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34026,"mutability":"mutable","name":"rounding","nameLocation":"8363:8:31","nodeType":"VariableDeclaration","scope":34060,"src":"8354:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"},"typeName":{"id":34025,"nodeType":"UserDefinedTypeName","pathNode":{"id":34024,"name":"Rounding","nameLocations":["8354:8:31"],"nodeType":"IdentifierPath","referencedDeclaration":33641,"src":"8354:8:31"},"referencedDeclaration":33641,"src":"8354:8:31","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8310:62:31"},"returnParameters":{"id":34030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34029,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34060,"src":"8396:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34028,"name":"uint256","nodeType":"ElementaryTypeName","src":"8396:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8395:9:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34172,"nodeType":"FunctionDefinition","src":"8813:1642:31","nodes":[],"body":{"id":34171,"nodeType":"Block","src":"8870:1585:31","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34068,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34063,"src":"8884:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":34069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8889:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8884:6:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34074,"nodeType":"IfStatement","src":"8880:45:31","trueBody":{"id":34073,"nodeType":"Block","src":"8892:33:31","statements":[{"expression":{"hexValue":"30","id":34071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8913:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":34067,"id":34072,"nodeType":"Return","src":"8906:8:31"}]}},{"assignments":[34076],"declarations":[{"constant":false,"id":34076,"mutability":"mutable","name":"result","nameLocation":"9612:6:31","nodeType":"VariableDeclaration","scope":34171,"src":"9604:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34075,"name":"uint256","nodeType":"ElementaryTypeName","src":"9604:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34085,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":34077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9621:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":34079,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34063,"src":"9632:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34078,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[34340,34376],"referencedDeclaration":34340,"src":"9627:4:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":34080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9627:7:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9638:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9627:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34083,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9626:14:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9621:19:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9604:36:31"},{"id":34170,"nodeType":"UncheckedBlock","src":"10041:408:31","statements":[{"expression":{"id":34095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34086,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10065:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34087,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10075:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34088,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34063,"src":"10084:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34089,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10088:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10084:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10075:19:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34092,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10074:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10099:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10074:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10065:35:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34096,"nodeType":"ExpressionStatement","src":"10065:35:31"},{"expression":{"id":34106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34097,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10114:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34098,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10124:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34099,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34063,"src":"10133:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34100,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10137:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10133:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10124:19:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34103,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10123:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10148:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10123:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10114:35:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34107,"nodeType":"ExpressionStatement","src":"10114:35:31"},{"expression":{"id":34117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34108,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10163:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34109,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10173:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34110,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34063,"src":"10182:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34111,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10186:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10182:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10173:19:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34114,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10172:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10197:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10172:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10163:35:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34118,"nodeType":"ExpressionStatement","src":"10163:35:31"},{"expression":{"id":34128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34119,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10212:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34120,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10222:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34121,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34063,"src":"10231:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34122,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10235:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10231:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10222:19:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34125,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10221:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10246:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10221:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10212:35:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34129,"nodeType":"ExpressionStatement","src":"10212:35:31"},{"expression":{"id":34139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34130,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10261:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34131,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10271:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34132,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34063,"src":"10280:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34133,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10284:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10280:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10271:19:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34136,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10270:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10295:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10270:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10261:35:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34140,"nodeType":"ExpressionStatement","src":"10261:35:31"},{"expression":{"id":34150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34141,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10310:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34142,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10320:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34143,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34063,"src":"10329:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34144,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10333:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10329:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10320:19:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34147,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10319:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10344:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10319:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10310:35:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34151,"nodeType":"ExpressionStatement","src":"10310:35:31"},{"expression":{"id":34161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34152,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10359:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34153,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10369:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34154,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34063,"src":"10378:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34155,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10382:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10378:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10369:19:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34158,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10368:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10393:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10368:26:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10359:35:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34162,"nodeType":"ExpressionStatement","src":"10359:35:31"},{"expression":{"arguments":[{"id":34164,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10419:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34165,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34063,"src":"10427:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34166,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34076,"src":"10431:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10427:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34163,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33835,"src":"10415:3:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":34168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10415:23:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34067,"id":34169,"nodeType":"Return","src":"10408:30:31"}]}]},"documentation":{"id":34061,"nodeType":"StructuredDocumentation","src":"8600:208:31","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8822:4:31","parameters":{"id":34064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34063,"mutability":"mutable","name":"a","nameLocation":"8835:1:31","nodeType":"VariableDeclaration","scope":34172,"src":"8827:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34062,"name":"uint256","nodeType":"ElementaryTypeName","src":"8827:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8826:11:31"},"returnParameters":{"id":34067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34066,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34172,"src":"8861:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34065,"name":"uint256","nodeType":"ElementaryTypeName","src":"8861:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8860:9:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34208,"nodeType":"FunctionDefinition","src":"10555:237:31","nodes":[],"body":{"id":34207,"nodeType":"Block","src":"10631:161:31","nodes":[],"statements":[{"id":34206,"nodeType":"UncheckedBlock","src":"10641:145:31","statements":[{"assignments":[34184],"declarations":[{"constant":false,"id":34184,"mutability":"mutable","name":"result","nameLocation":"10673:6:31","nodeType":"VariableDeclaration","scope":34206,"src":"10665:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34183,"name":"uint256","nodeType":"ElementaryTypeName","src":"10665:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34188,"initialValue":{"arguments":[{"id":34186,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34175,"src":"10687:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34185,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[34172,34208],"referencedDeclaration":34172,"src":"10682:4:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":34187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10682:7:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10665:24:31"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34189,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34184,"src":"10710:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":34199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"},"id":34193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34190,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34178,"src":"10720:8:31","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":34191,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33641,"src":"10732:8:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$33641_$","typeString":"type(enum Math.Rounding)"}},"id":34192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10741:2:31","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":33639,"src":"10732:11:31","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"}},"src":"10720:23:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34194,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34184,"src":"10747:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":34195,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34184,"src":"10756:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10747:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":34197,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34175,"src":"10765:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10747:19:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10720:46:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":34201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10773:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":34202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10720:54:31","trueExpression":{"hexValue":"31","id":34200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10769:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":34203,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10719:56:31","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10710:65:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34182,"id":34205,"nodeType":"Return","src":"10703:72:31"}]}]},"documentation":{"id":34173,"nodeType":"StructuredDocumentation","src":"10461:89:31","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"10564:4:31","parameters":{"id":34179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34175,"mutability":"mutable","name":"a","nameLocation":"10577:1:31","nodeType":"VariableDeclaration","scope":34208,"src":"10569:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34174,"name":"uint256","nodeType":"ElementaryTypeName","src":"10569:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34178,"mutability":"mutable","name":"rounding","nameLocation":"10589:8:31","nodeType":"VariableDeclaration","scope":34208,"src":"10580:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"},"typeName":{"id":34177,"nodeType":"UserDefinedTypeName","pathNode":{"id":34176,"name":"Rounding","nameLocations":["10580:8:31"],"nodeType":"IdentifierPath","referencedDeclaration":33641,"src":"10580:8:31"},"referencedDeclaration":33641,"src":"10580:8:31","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"10568:30:31"},"returnParameters":{"id":34182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34181,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34208,"src":"10622:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34180,"name":"uint256","nodeType":"ElementaryTypeName","src":"10622:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10621:9:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34340,"nodeType":"FunctionDefinition","src":"10916:983:31","nodes":[],"body":{"id":34339,"nodeType":"Block","src":"10977:922:31","nodes":[],"statements":[{"assignments":[34217],"declarations":[{"constant":false,"id":34217,"mutability":"mutable","name":"result","nameLocation":"10995:6:31","nodeType":"VariableDeclaration","scope":34339,"src":"10987:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34216,"name":"uint256","nodeType":"ElementaryTypeName","src":"10987:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34219,"initialValue":{"hexValue":"30","id":34218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11004:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10987:18:31"},{"id":34336,"nodeType":"UncheckedBlock","src":"11015:855:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34220,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34211,"src":"11043:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":34221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11052:3:31","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11043:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11058:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11043:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34234,"nodeType":"IfStatement","src":"11039:99:31","trueBody":{"id":34233,"nodeType":"Block","src":"11061:77:31","statements":[{"expression":{"id":34227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34225,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34211,"src":"11079:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":34226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11089:3:31","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11079:13:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34228,"nodeType":"ExpressionStatement","src":"11079:13:31"},{"expression":{"id":34231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34229,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34217,"src":"11110:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":34230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11120:3:31","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11110:13:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34232,"nodeType":"ExpressionStatement","src":"11110:13:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34235,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34211,"src":"11155:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":34236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11164:2:31","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11155:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11169:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11155:15:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34249,"nodeType":"IfStatement","src":"11151:96:31","trueBody":{"id":34248,"nodeType":"Block","src":"11172:75:31","statements":[{"expression":{"id":34242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34240,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34211,"src":"11190:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":34241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11200:2:31","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11190:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34243,"nodeType":"ExpressionStatement","src":"11190:12:31"},{"expression":{"id":34246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34244,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34217,"src":"11220:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":34245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11230:2:31","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11220:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34247,"nodeType":"ExpressionStatement","src":"11220:12:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34250,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34211,"src":"11264:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":34251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11273:2:31","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11264:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11278:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11264:15:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34264,"nodeType":"IfStatement","src":"11260:96:31","trueBody":{"id":34263,"nodeType":"Block","src":"11281:75:31","statements":[{"expression":{"id":34257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34255,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34211,"src":"11299:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":34256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11309:2:31","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11299:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34258,"nodeType":"ExpressionStatement","src":"11299:12:31"},{"expression":{"id":34261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34259,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34217,"src":"11329:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":34260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11339:2:31","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11329:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34262,"nodeType":"ExpressionStatement","src":"11329:12:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34265,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34211,"src":"11373:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":34266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11382:2:31","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11373:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11387:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11373:15:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34279,"nodeType":"IfStatement","src":"11369:96:31","trueBody":{"id":34278,"nodeType":"Block","src":"11390:75:31","statements":[{"expression":{"id":34272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34270,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34211,"src":"11408:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":34271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11418:2:31","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11408:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34273,"nodeType":"ExpressionStatement","src":"11408:12:31"},{"expression":{"id":34276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34274,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34217,"src":"11438:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":34275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11448:2:31","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11438:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34277,"nodeType":"ExpressionStatement","src":"11438:12:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34280,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34211,"src":"11482:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":34281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11491:1:31","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11482:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11495:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11482:14:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34294,"nodeType":"IfStatement","src":"11478:93:31","trueBody":{"id":34293,"nodeType":"Block","src":"11498:73:31","statements":[{"expression":{"id":34287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34285,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34211,"src":"11516:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":34286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11526:1:31","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11516:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34288,"nodeType":"ExpressionStatement","src":"11516:11:31"},{"expression":{"id":34291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34289,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34217,"src":"11545:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":34290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11555:1:31","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11545:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34292,"nodeType":"ExpressionStatement","src":"11545:11:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34295,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34211,"src":"11588:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":34296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11597:1:31","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11588:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11601:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11588:14:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34309,"nodeType":"IfStatement","src":"11584:93:31","trueBody":{"id":34308,"nodeType":"Block","src":"11604:73:31","statements":[{"expression":{"id":34302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34300,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34211,"src":"11622:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":34301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11632:1:31","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11622:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34303,"nodeType":"ExpressionStatement","src":"11622:11:31"},{"expression":{"id":34306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34304,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34217,"src":"11651:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":34305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11661:1:31","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11651:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34307,"nodeType":"ExpressionStatement","src":"11651:11:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34310,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34211,"src":"11694:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":34311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11703:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11694:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11707:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11694:14:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34324,"nodeType":"IfStatement","src":"11690:93:31","trueBody":{"id":34323,"nodeType":"Block","src":"11710:73:31","statements":[{"expression":{"id":34317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34315,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34211,"src":"11728:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":34316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11738:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11728:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34318,"nodeType":"ExpressionStatement","src":"11728:11:31"},{"expression":{"id":34321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34319,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34217,"src":"11757:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":34320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11767:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11757:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34322,"nodeType":"ExpressionStatement","src":"11757:11:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34325,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34211,"src":"11800:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11809:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11800:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11813:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11800:14:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34335,"nodeType":"IfStatement","src":"11796:64:31","trueBody":{"id":34334,"nodeType":"Block","src":"11816:44:31","statements":[{"expression":{"id":34332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34330,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34217,"src":"11834:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":34331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11844:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11834:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34333,"nodeType":"ExpressionStatement","src":"11834:11:31"}]}}]},{"expression":{"id":34337,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34217,"src":"11886:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34215,"id":34338,"nodeType":"Return","src":"11879:13:31"}]},"documentation":{"id":34209,"nodeType":"StructuredDocumentation","src":"10798:113:31","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"10925:4:31","parameters":{"id":34212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34211,"mutability":"mutable","name":"value","nameLocation":"10938:5:31","nodeType":"VariableDeclaration","scope":34340,"src":"10930:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34210,"name":"uint256","nodeType":"ElementaryTypeName","src":"10930:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10929:15:31"},"returnParameters":{"id":34215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34340,"src":"10968:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34213,"name":"uint256","nodeType":"ElementaryTypeName","src":"10968:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10967:9:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34376,"nodeType":"FunctionDefinition","src":"12052:245:31","nodes":[],"body":{"id":34375,"nodeType":"Block","src":"12132:165:31","nodes":[],"statements":[{"id":34374,"nodeType":"UncheckedBlock","src":"12142:149:31","statements":[{"assignments":[34352],"declarations":[{"constant":false,"id":34352,"mutability":"mutable","name":"result","nameLocation":"12174:6:31","nodeType":"VariableDeclaration","scope":34374,"src":"12166:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34351,"name":"uint256","nodeType":"ElementaryTypeName","src":"12166:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34356,"initialValue":{"arguments":[{"id":34354,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34343,"src":"12188:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34353,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[34340,34376],"referencedDeclaration":34340,"src":"12183:4:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":34355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12183:11:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12166:28:31"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34357,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34352,"src":"12215:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":34367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"},"id":34361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34358,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34346,"src":"12225:8:31","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":34359,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33641,"src":"12237:8:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$33641_$","typeString":"type(enum Math.Rounding)"}},"id":34360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12246:2:31","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":33639,"src":"12237:11:31","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"}},"src":"12225:23:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":34362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12252:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":34363,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34352,"src":"12257:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12252:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":34365,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34343,"src":"12266:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12252:19:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12225:46:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":34369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12278:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":34370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12225:54:31","trueExpression":{"hexValue":"31","id":34368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12274:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":34371,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12224:56:31","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12215:65:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34350,"id":34373,"nodeType":"Return","src":"12208:72:31"}]}]},"documentation":{"id":34341,"nodeType":"StructuredDocumentation","src":"11905:142:31","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"12061:4:31","parameters":{"id":34347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34343,"mutability":"mutable","name":"value","nameLocation":"12074:5:31","nodeType":"VariableDeclaration","scope":34376,"src":"12066:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34342,"name":"uint256","nodeType":"ElementaryTypeName","src":"12066:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34346,"mutability":"mutable","name":"rounding","nameLocation":"12090:8:31","nodeType":"VariableDeclaration","scope":34376,"src":"12081:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"},"typeName":{"id":34345,"nodeType":"UserDefinedTypeName","pathNode":{"id":34344,"name":"Rounding","nameLocations":["12081:8:31"],"nodeType":"IdentifierPath","referencedDeclaration":33641,"src":"12081:8:31"},"referencedDeclaration":33641,"src":"12081:8:31","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"12065:34:31"},"returnParameters":{"id":34350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34349,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34376,"src":"12123:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34348,"name":"uint256","nodeType":"ElementaryTypeName","src":"12123:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12122:9:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34505,"nodeType":"FunctionDefinition","src":"12422:916:31","nodes":[],"body":{"id":34504,"nodeType":"Block","src":"12484:854:31","nodes":[],"statements":[{"assignments":[34385],"declarations":[{"constant":false,"id":34385,"mutability":"mutable","name":"result","nameLocation":"12502:6:31","nodeType":"VariableDeclaration","scope":34504,"src":"12494:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34384,"name":"uint256","nodeType":"ElementaryTypeName","src":"12494:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34387,"initialValue":{"hexValue":"30","id":34386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12511:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12494:18:31"},{"id":34501,"nodeType":"UncheckedBlock","src":"12522:787:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34388,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"12550:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":34391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12559:2:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":34390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12565:2:31","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12559:8:31","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12550:17:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34404,"nodeType":"IfStatement","src":"12546:103:31","trueBody":{"id":34403,"nodeType":"Block","src":"12569:80:31","statements":[{"expression":{"id":34397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34393,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"12587:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":34396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12596:2:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":34395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12602:2:31","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12596:8:31","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12587:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34398,"nodeType":"ExpressionStatement","src":"12587:17:31"},{"expression":{"id":34401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34399,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34385,"src":"12622:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":34400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12632:2:31","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12622:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34402,"nodeType":"ExpressionStatement","src":"12622:12:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34405,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"12666:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":34408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12675:2:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":34407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12681:2:31","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12675:8:31","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12666:17:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34421,"nodeType":"IfStatement","src":"12662:103:31","trueBody":{"id":34420,"nodeType":"Block","src":"12685:80:31","statements":[{"expression":{"id":34414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34410,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"12703:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":34413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12712:2:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":34412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12718:2:31","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12712:8:31","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12703:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34415,"nodeType":"ExpressionStatement","src":"12703:17:31"},{"expression":{"id":34418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34416,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34385,"src":"12738:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":34417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12748:2:31","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12738:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34419,"nodeType":"ExpressionStatement","src":"12738:12:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34422,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"12782:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":34425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12791:2:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":34424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12797:2:31","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12791:8:31","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12782:17:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34438,"nodeType":"IfStatement","src":"12778:103:31","trueBody":{"id":34437,"nodeType":"Block","src":"12801:80:31","statements":[{"expression":{"id":34431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34427,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"12819:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":34430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12828:2:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":34429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12834:2:31","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12828:8:31","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12819:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34432,"nodeType":"ExpressionStatement","src":"12819:17:31"},{"expression":{"id":34435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34433,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34385,"src":"12854:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":34434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12864:2:31","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12854:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34436,"nodeType":"ExpressionStatement","src":"12854:12:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34439,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"12898:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":34442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12907:2:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":34441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12913:1:31","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12907:7:31","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12898:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34455,"nodeType":"IfStatement","src":"12894:100:31","trueBody":{"id":34454,"nodeType":"Block","src":"12916:78:31","statements":[{"expression":{"id":34448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34444,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"12934:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":34447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12943:2:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":34446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12949:1:31","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12943:7:31","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12934:16:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34449,"nodeType":"ExpressionStatement","src":"12934:16:31"},{"expression":{"id":34452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34450,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34385,"src":"12968:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":34451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12978:1:31","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12968:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34453,"nodeType":"ExpressionStatement","src":"12968:11:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34456,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"13011:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":34459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13020:2:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":34458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13026:1:31","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"13020:7:31","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"13011:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34472,"nodeType":"IfStatement","src":"13007:100:31","trueBody":{"id":34471,"nodeType":"Block","src":"13029:78:31","statements":[{"expression":{"id":34465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34461,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"13047:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":34464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13056:2:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":34463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13062:1:31","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"13056:7:31","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"13047:16:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34466,"nodeType":"ExpressionStatement","src":"13047:16:31"},{"expression":{"id":34469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34467,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34385,"src":"13081:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":34468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13091:1:31","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"13081:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34470,"nodeType":"ExpressionStatement","src":"13081:11:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34473,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"13124:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":34476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13133:2:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":34475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13139:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"13133:7:31","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"13124:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34489,"nodeType":"IfStatement","src":"13120:100:31","trueBody":{"id":34488,"nodeType":"Block","src":"13142:78:31","statements":[{"expression":{"id":34482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34478,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"13160:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":34481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13169:2:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":34480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13175:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"13169:7:31","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"13160:16:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34483,"nodeType":"ExpressionStatement","src":"13160:16:31"},{"expression":{"id":34486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34484,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34385,"src":"13194:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":34485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13204:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"13194:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34487,"nodeType":"ExpressionStatement","src":"13194:11:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34490,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"13237:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":34493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13246:2:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":34492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13252:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13246:7:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"13237:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34500,"nodeType":"IfStatement","src":"13233:66:31","trueBody":{"id":34499,"nodeType":"Block","src":"13255:44:31","statements":[{"expression":{"id":34497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34495,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34385,"src":"13273:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":34496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13283:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13273:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34498,"nodeType":"ExpressionStatement","src":"13273:11:31"}]}}]},{"expression":{"id":34502,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34385,"src":"13325:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34383,"id":34503,"nodeType":"Return","src":"13318:13:31"}]},"documentation":{"id":34377,"nodeType":"StructuredDocumentation","src":"12303:114:31","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"12431:5:31","parameters":{"id":34380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34379,"mutability":"mutable","name":"value","nameLocation":"12445:5:31","nodeType":"VariableDeclaration","scope":34505,"src":"12437:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34378,"name":"uint256","nodeType":"ElementaryTypeName","src":"12437:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12436:15:31"},"returnParameters":{"id":34383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34505,"src":"12475:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34381,"name":"uint256","nodeType":"ElementaryTypeName","src":"12475:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12474:9:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34541,"nodeType":"FunctionDefinition","src":"13492:248:31","nodes":[],"body":{"id":34540,"nodeType":"Block","src":"13573:167:31","nodes":[],"statements":[{"id":34539,"nodeType":"UncheckedBlock","src":"13583:151:31","statements":[{"assignments":[34517],"declarations":[{"constant":false,"id":34517,"mutability":"mutable","name":"result","nameLocation":"13615:6:31","nodeType":"VariableDeclaration","scope":34539,"src":"13607:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34516,"name":"uint256","nodeType":"ElementaryTypeName","src":"13607:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34521,"initialValue":{"arguments":[{"id":34519,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34508,"src":"13630:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34518,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[34505,34541],"referencedDeclaration":34505,"src":"13624:5:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":34520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13624:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13607:29:31"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34522,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34517,"src":"13657:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":34532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"},"id":34526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34523,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34511,"src":"13667:8:31","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":34524,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33641,"src":"13679:8:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$33641_$","typeString":"type(enum Math.Rounding)"}},"id":34525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13688:2:31","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":33639,"src":"13679:11:31","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"}},"src":"13667:23:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13694:2:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":34528,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34517,"src":"13700:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13694:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":34530,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34508,"src":"13709:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13694:20:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13667:47:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":34534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13721:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":34535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13667:55:31","trueExpression":{"hexValue":"31","id":34533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13717:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":34536,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13666:57:31","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13657:66:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34515,"id":34538,"nodeType":"Return","src":"13650:73:31"}]}]},"documentation":{"id":34506,"nodeType":"StructuredDocumentation","src":"13344:143:31","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"13501:5:31","parameters":{"id":34512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34508,"mutability":"mutable","name":"value","nameLocation":"13515:5:31","nodeType":"VariableDeclaration","scope":34541,"src":"13507:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34507,"name":"uint256","nodeType":"ElementaryTypeName","src":"13507:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34511,"mutability":"mutable","name":"rounding","nameLocation":"13531:8:31","nodeType":"VariableDeclaration","scope":34541,"src":"13522:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"},"typeName":{"id":34510,"nodeType":"UserDefinedTypeName","pathNode":{"id":34509,"name":"Rounding","nameLocations":["13522:8:31"],"nodeType":"IdentifierPath","referencedDeclaration":33641,"src":"13522:8:31"},"referencedDeclaration":33641,"src":"13522:8:31","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"13506:34:31"},"returnParameters":{"id":34515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34514,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34541,"src":"13564:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34513,"name":"uint256","nodeType":"ElementaryTypeName","src":"13564:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13563:9:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34628,"nodeType":"FunctionDefinition","src":"13991:663:31","nodes":[],"body":{"id":34627,"nodeType":"Block","src":"14054:600:31","nodes":[],"statements":[{"assignments":[34550],"declarations":[{"constant":false,"id":34550,"mutability":"mutable","name":"result","nameLocation":"14072:6:31","nodeType":"VariableDeclaration","scope":34627,"src":"14064:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34549,"name":"uint256","nodeType":"ElementaryTypeName","src":"14064:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34552,"initialValue":{"hexValue":"30","id":34551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14081:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14064:18:31"},{"id":34624,"nodeType":"UncheckedBlock","src":"14092:533:31","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34553,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34544,"src":"14120:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":34554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14129:3:31","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"14120:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14135:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14120:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34567,"nodeType":"IfStatement","src":"14116:98:31","trueBody":{"id":34566,"nodeType":"Block","src":"14138:76:31","statements":[{"expression":{"id":34560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34558,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34544,"src":"14156:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":34559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14166:3:31","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"14156:13:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34561,"nodeType":"ExpressionStatement","src":"14156:13:31"},{"expression":{"id":34564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34562,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34550,"src":"14187:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":34563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14197:2:31","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14187:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34565,"nodeType":"ExpressionStatement","src":"14187:12:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34568,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34544,"src":"14231:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":34569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:2:31","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14231:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14245:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14231:15:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34582,"nodeType":"IfStatement","src":"14227:95:31","trueBody":{"id":34581,"nodeType":"Block","src":"14248:74:31","statements":[{"expression":{"id":34575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34573,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34544,"src":"14266:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":34574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14276:2:31","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14266:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34576,"nodeType":"ExpressionStatement","src":"14266:12:31"},{"expression":{"id":34579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34577,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34550,"src":"14296:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":34578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14306:1:31","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14296:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34580,"nodeType":"ExpressionStatement","src":"14296:11:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34583,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34544,"src":"14339:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":34584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14348:2:31","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14339:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14353:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14339:15:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34597,"nodeType":"IfStatement","src":"14335:95:31","trueBody":{"id":34596,"nodeType":"Block","src":"14356:74:31","statements":[{"expression":{"id":34590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34588,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34544,"src":"14374:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":34589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14384:2:31","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14374:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34591,"nodeType":"ExpressionStatement","src":"14374:12:31"},{"expression":{"id":34594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34592,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34550,"src":"14404:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":34593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14414:1:31","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"14404:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34595,"nodeType":"ExpressionStatement","src":"14404:11:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34598,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34544,"src":"14447:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":34599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14456:2:31","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14447:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14461:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14447:15:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34612,"nodeType":"IfStatement","src":"14443:95:31","trueBody":{"id":34611,"nodeType":"Block","src":"14464:74:31","statements":[{"expression":{"id":34605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34603,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34544,"src":"14482:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":34604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14492:2:31","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14482:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34606,"nodeType":"ExpressionStatement","src":"14482:12:31"},{"expression":{"id":34609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34607,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34550,"src":"14512:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":34608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14522:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"14512:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34610,"nodeType":"ExpressionStatement","src":"14512:11:31"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34613,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34544,"src":"14555:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":34614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14564:1:31","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14555:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14568:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14555:14:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34623,"nodeType":"IfStatement","src":"14551:64:31","trueBody":{"id":34622,"nodeType":"Block","src":"14571:44:31","statements":[{"expression":{"id":34620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34618,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34550,"src":"14589:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":34619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14599:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14589:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34621,"nodeType":"ExpressionStatement","src":"14589:11:31"}]}}]},{"expression":{"id":34625,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34550,"src":"14641:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34548,"id":34626,"nodeType":"Return","src":"14634:13:31"}]},"documentation":{"id":34542,"nodeType":"StructuredDocumentation","src":"13746:240:31","text":" @dev Return the log in base 256, rounded down, of a positive value.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"14000:6:31","parameters":{"id":34545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34544,"mutability":"mutable","name":"value","nameLocation":"14015:5:31","nodeType":"VariableDeclaration","scope":34628,"src":"14007:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34543,"name":"uint256","nodeType":"ElementaryTypeName","src":"14007:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14006:15:31"},"returnParameters":{"id":34548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34628,"src":"14045:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34546,"name":"uint256","nodeType":"ElementaryTypeName","src":"14045:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14044:9:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34667,"nodeType":"FunctionDefinition","src":"14809:256:31","nodes":[],"body":{"id":34666,"nodeType":"Block","src":"14891:174:31","nodes":[],"statements":[{"id":34665,"nodeType":"UncheckedBlock","src":"14901:158:31","statements":[{"assignments":[34640],"declarations":[{"constant":false,"id":34640,"mutability":"mutable","name":"result","nameLocation":"14933:6:31","nodeType":"VariableDeclaration","scope":34665,"src":"14925:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34639,"name":"uint256","nodeType":"ElementaryTypeName","src":"14925:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34644,"initialValue":{"arguments":[{"id":34642,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34631,"src":"14949:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34641,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[34628,34667],"referencedDeclaration":34628,"src":"14942:6:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":34643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14942:13:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14925:30:31"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34645,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"14976:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":34658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"},"id":34649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34646,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34634,"src":"14986:8:31","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":34647,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33641,"src":"14998:8:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$33641_$","typeString":"type(enum Math.Rounding)"}},"id":34648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15007:2:31","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":33639,"src":"14998:11:31","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"}},"src":"14986:23:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":34650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15013:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34651,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"15019:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":34652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15029:1:31","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"15019:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34654,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15018:13:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15013:18:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":34656,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34631,"src":"15034:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15013:26:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14986:53:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":34660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15046:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":34661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14986:61:31","trueExpression":{"hexValue":"31","id":34659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15042:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":34662,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14985:63:31","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14976:72:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34638,"id":34664,"nodeType":"Return","src":"14969:79:31"}]}]},"documentation":{"id":34629,"nodeType":"StructuredDocumentation","src":"14660:144:31","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"14818:6:31","parameters":{"id":34635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34631,"mutability":"mutable","name":"value","nameLocation":"14833:5:31","nodeType":"VariableDeclaration","scope":34667,"src":"14825:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34630,"name":"uint256","nodeType":"ElementaryTypeName","src":"14825:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34634,"mutability":"mutable","name":"rounding","nameLocation":"14849:8:31","nodeType":"VariableDeclaration","scope":34667,"src":"14840:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"},"typeName":{"id":34633,"nodeType":"UserDefinedTypeName","pathNode":{"id":34632,"name":"Rounding","nameLocations":["14840:8:31"],"nodeType":"IdentifierPath","referencedDeclaration":33641,"src":"14840:8:31"},"referencedDeclaration":33641,"src":"14840:8:31","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$33641","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"14824:34:31"},"returnParameters":{"id":34638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34667,"src":"14882:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34636,"name":"uint256","nodeType":"ElementaryTypeName","src":"14882:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14881:9:31"},"scope":34668,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":33634,"nodeType":"StructuredDocumentation","src":"129:73:31","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"linearizedBaseContracts":[34668],"name":"Math","nameLocation":"211:4:31","scope":34669,"usedErrors":[33637]}],"license":"MIT"},"id":31} \ No newline at end of file +{"abi":[{"type":"error","name":"MathOverflowedMulDiv","inputs":[]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122063bf14a7f108a574314b0f341821fdd5c352c594fb76d5b75e49982608fe47ca64736f6c63430008130033","sourceMap":"203:14864:34:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122063bf14a7f108a574314b0f341821fdd5c352c594fb76d5b75e49982608fe47ca64736f6c63430008130033","sourceMap":"203:14864:34:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":{\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"MathOverflowedMulDiv"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":"Math"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","id":35098,"exportedSymbols":{"Math":[35097]},"nodeType":"SourceUnit","src":"103:14965:34","nodes":[{"id":34062,"nodeType":"PragmaDirective","src":"103:24:34","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":35097,"nodeType":"ContractDefinition","src":"203:14864:34","nodes":[{"id":34066,"nodeType":"ErrorDefinition","src":"277:29:34","nodes":[],"documentation":{"id":34064,"nodeType":"StructuredDocumentation","src":"222:50:34","text":" @dev Muldiv operation overflow."},"errorSelector":"227bc153","name":"MathOverflowedMulDiv","nameLocation":"283:20:34","parameters":{"id":34065,"nodeType":"ParameterList","parameters":[],"src":"303:2:34"}},{"id":34070,"nodeType":"EnumDefinition","src":"312:122:34","nodes":[],"canonicalName":"Math.Rounding","members":[{"id":34067,"name":"Down","nameLocation":"336:4:34","nodeType":"EnumValue","src":"336:4:34"},{"id":34068,"name":"Up","nameLocation":"378:2:34","nodeType":"EnumValue","src":"378:2:34"},{"id":34069,"name":"Zero","nameLocation":"409:4:34","nodeType":"EnumValue","src":"409:4:34"}],"name":"Rounding","nameLocation":"317:8:34"},{"id":34102,"nodeType":"FunctionDefinition","src":"576:216:34","nodes":[],"body":{"id":34101,"nodeType":"Block","src":"652:140:34","nodes":[],"statements":[{"id":34100,"nodeType":"UncheckedBlock","src":"662:124:34","statements":[{"assignments":[34083],"declarations":[{"constant":false,"id":34083,"mutability":"mutable","name":"c","nameLocation":"694:1:34","nodeType":"VariableDeclaration","scope":34100,"src":"686:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34082,"name":"uint256","nodeType":"ElementaryTypeName","src":"686:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34087,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34084,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34073,"src":"698:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":34085,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34075,"src":"702:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"698:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"686:17:34"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34088,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34083,"src":"721:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":34089,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34073,"src":"725:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"721:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34095,"nodeType":"IfStatement","src":"717:28:34","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":34091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"736:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":34092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"743:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":34093,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"735:10:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":34081,"id":34094,"nodeType":"Return","src":"728:17:34"}},{"expression":{"components":[{"hexValue":"74727565","id":34096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"767:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":34097,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34083,"src":"773:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34098,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"766:9:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":34081,"id":34099,"nodeType":"Return","src":"759:16:34"}]}]},"documentation":{"id":34071,"nodeType":"StructuredDocumentation","src":"440:131:34","text":" @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"585:6:34","parameters":{"id":34076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34073,"mutability":"mutable","name":"a","nameLocation":"600:1:34","nodeType":"VariableDeclaration","scope":34102,"src":"592:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34072,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34075,"mutability":"mutable","name":"b","nameLocation":"611:1:34","nodeType":"VariableDeclaration","scope":34102,"src":"603:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34074,"name":"uint256","nodeType":"ElementaryTypeName","src":"603:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"591:22:34"},"returnParameters":{"id":34081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34078,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34102,"src":"637:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34077,"name":"bool","nodeType":"ElementaryTypeName","src":"637:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34080,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34102,"src":"643:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34079,"name":"uint256","nodeType":"ElementaryTypeName","src":"643:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"636:15:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34130,"nodeType":"FunctionDefinition","src":"937:189:34","nodes":[],"body":{"id":34129,"nodeType":"Block","src":"1013:113:34","nodes":[],"statements":[{"id":34128,"nodeType":"UncheckedBlock","src":"1023:97:34","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34114,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34107,"src":"1051:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":34115,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34105,"src":"1055:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1051:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34121,"nodeType":"IfStatement","src":"1047:28:34","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":34117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1066:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":34118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1073:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":34119,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1065:10:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":34113,"id":34120,"nodeType":"Return","src":"1058:17:34"}},{"expression":{"components":[{"hexValue":"74727565","id":34122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1097:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34123,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34105,"src":"1103:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":34124,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34107,"src":"1107:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1103:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34126,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1096:13:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":34113,"id":34127,"nodeType":"Return","src":"1089:20:34"}]}]},"documentation":{"id":34103,"nodeType":"StructuredDocumentation","src":"798:134:34","text":" @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"946:6:34","parameters":{"id":34108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34105,"mutability":"mutable","name":"a","nameLocation":"961:1:34","nodeType":"VariableDeclaration","scope":34130,"src":"953:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34104,"name":"uint256","nodeType":"ElementaryTypeName","src":"953:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34107,"mutability":"mutable","name":"b","nameLocation":"972:1:34","nodeType":"VariableDeclaration","scope":34130,"src":"964:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34106,"name":"uint256","nodeType":"ElementaryTypeName","src":"964:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:22:34"},"returnParameters":{"id":34113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34110,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34130,"src":"998:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34109,"name":"bool","nodeType":"ElementaryTypeName","src":"998:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34130,"src":"1004:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34111,"name":"uint256","nodeType":"ElementaryTypeName","src":"1004:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"997:15:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34172,"nodeType":"FunctionDefinition","src":"1274:493:34","nodes":[],"body":{"id":34171,"nodeType":"Block","src":"1350:417:34","nodes":[],"statements":[{"id":34170,"nodeType":"UncheckedBlock","src":"1360:401:34","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34142,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34133,"src":"1618:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":34143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1623:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1618:6:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34149,"nodeType":"IfStatement","src":"1614:28:34","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":34145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1634:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":34146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1640:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":34147,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1633:9:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":34141,"id":34148,"nodeType":"Return","src":"1626:16:34"}},{"assignments":[34151],"declarations":[{"constant":false,"id":34151,"mutability":"mutable","name":"c","nameLocation":"1664:1:34","nodeType":"VariableDeclaration","scope":34170,"src":"1656:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34150,"name":"uint256","nodeType":"ElementaryTypeName","src":"1656:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34155,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34152,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34133,"src":"1668:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":34153,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34135,"src":"1672:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1668:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1656:17:34"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34156,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34151,"src":"1691:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34157,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34133,"src":"1695:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1691:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":34159,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34135,"src":"1700:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1691:10:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34165,"nodeType":"IfStatement","src":"1687:33:34","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":34161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1711:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":34162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1718:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":34163,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1710:10:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":34141,"id":34164,"nodeType":"Return","src":"1703:17:34"}},{"expression":{"components":[{"hexValue":"74727565","id":34166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1742:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":34167,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34151,"src":"1748:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34168,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1741:9:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":34141,"id":34169,"nodeType":"Return","src":"1734:16:34"}]}]},"documentation":{"id":34131,"nodeType":"StructuredDocumentation","src":"1132:137:34","text":" @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1283:6:34","parameters":{"id":34136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34133,"mutability":"mutable","name":"a","nameLocation":"1298:1:34","nodeType":"VariableDeclaration","scope":34172,"src":"1290:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34132,"name":"uint256","nodeType":"ElementaryTypeName","src":"1290:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34135,"mutability":"mutable","name":"b","nameLocation":"1309:1:34","nodeType":"VariableDeclaration","scope":34172,"src":"1301:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34134,"name":"uint256","nodeType":"ElementaryTypeName","src":"1301:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1289:22:34"},"returnParameters":{"id":34141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34138,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34172,"src":"1335:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34137,"name":"bool","nodeType":"ElementaryTypeName","src":"1335:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34172,"src":"1341:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34139,"name":"uint256","nodeType":"ElementaryTypeName","src":"1341:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1334:15:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34200,"nodeType":"FunctionDefinition","src":"1916:190:34","nodes":[],"body":{"id":34199,"nodeType":"Block","src":"1992:114:34","nodes":[],"statements":[{"id":34198,"nodeType":"UncheckedBlock","src":"2002:98:34","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34184,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34177,"src":"2030:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":34185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2035:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2030:6:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34191,"nodeType":"IfStatement","src":"2026:29:34","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":34187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2046:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":34188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2053:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":34189,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2045:10:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":34183,"id":34190,"nodeType":"Return","src":"2038:17:34"}},{"expression":{"components":[{"hexValue":"74727565","id":34192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2077:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34193,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34175,"src":"2083:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34194,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34177,"src":"2087:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2083:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34196,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2076:13:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":34183,"id":34197,"nodeType":"Return","src":"2069:20:34"}]}]},"documentation":{"id":34173,"nodeType":"StructuredDocumentation","src":"1773:138:34","text":" @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1925:6:34","parameters":{"id":34178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34175,"mutability":"mutable","name":"a","nameLocation":"1940:1:34","nodeType":"VariableDeclaration","scope":34200,"src":"1932:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34174,"name":"uint256","nodeType":"ElementaryTypeName","src":"1932:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34177,"mutability":"mutable","name":"b","nameLocation":"1951:1:34","nodeType":"VariableDeclaration","scope":34200,"src":"1943:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34176,"name":"uint256","nodeType":"ElementaryTypeName","src":"1943:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1931:22:34"},"returnParameters":{"id":34183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34180,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34200,"src":"1977:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34179,"name":"bool","nodeType":"ElementaryTypeName","src":"1977:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34182,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34200,"src":"1983:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34181,"name":"uint256","nodeType":"ElementaryTypeName","src":"1983:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1976:15:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34228,"nodeType":"FunctionDefinition","src":"2265:190:34","nodes":[],"body":{"id":34227,"nodeType":"Block","src":"2341:114:34","nodes":[],"statements":[{"id":34226,"nodeType":"UncheckedBlock","src":"2351:98:34","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34212,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34205,"src":"2379:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":34213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2384:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2379:6:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34219,"nodeType":"IfStatement","src":"2375:29:34","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":34215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2395:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":34216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2402:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":34217,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2394:10:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":34211,"id":34218,"nodeType":"Return","src":"2387:17:34"}},{"expression":{"components":[{"hexValue":"74727565","id":34220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2426:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34221,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34203,"src":"2432:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":34222,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34205,"src":"2436:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2432:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34224,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2425:13:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":34211,"id":34225,"nodeType":"Return","src":"2418:20:34"}]}]},"documentation":{"id":34201,"nodeType":"StructuredDocumentation","src":"2112:148:34","text":" @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v5.0._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2274:6:34","parameters":{"id":34206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34203,"mutability":"mutable","name":"a","nameLocation":"2289:1:34","nodeType":"VariableDeclaration","scope":34228,"src":"2281:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34202,"name":"uint256","nodeType":"ElementaryTypeName","src":"2281:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34205,"mutability":"mutable","name":"b","nameLocation":"2300:1:34","nodeType":"VariableDeclaration","scope":34228,"src":"2292:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34204,"name":"uint256","nodeType":"ElementaryTypeName","src":"2292:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2280:22:34"},"returnParameters":{"id":34211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34208,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34228,"src":"2326:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34207,"name":"bool","nodeType":"ElementaryTypeName","src":"2326:4:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34228,"src":"2332:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34209,"name":"uint256","nodeType":"ElementaryTypeName","src":"2332:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2325:15:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34246,"nodeType":"FunctionDefinition","src":"2525:104:34","nodes":[],"body":{"id":34245,"nodeType":"Block","src":"2592:37:34","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34238,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34231,"src":"2609:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":34239,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34233,"src":"2613:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2609:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":34242,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34233,"src":"2621:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2609:13:34","trueExpression":{"id":34241,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34231,"src":"2617:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34237,"id":34244,"nodeType":"Return","src":"2602:20:34"}]},"documentation":{"id":34229,"nodeType":"StructuredDocumentation","src":"2461:59:34","text":" @dev Returns the largest of two numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"2534:3:34","parameters":{"id":34234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34231,"mutability":"mutable","name":"a","nameLocation":"2546:1:34","nodeType":"VariableDeclaration","scope":34246,"src":"2538:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34230,"name":"uint256","nodeType":"ElementaryTypeName","src":"2538:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34233,"mutability":"mutable","name":"b","nameLocation":"2557:1:34","nodeType":"VariableDeclaration","scope":34246,"src":"2549:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34232,"name":"uint256","nodeType":"ElementaryTypeName","src":"2549:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2537:22:34"},"returnParameters":{"id":34237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34236,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34246,"src":"2583:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34235,"name":"uint256","nodeType":"ElementaryTypeName","src":"2583:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2582:9:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34264,"nodeType":"FunctionDefinition","src":"2700:104:34","nodes":[],"body":{"id":34263,"nodeType":"Block","src":"2767:37:34","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34256,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34249,"src":"2784:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":34257,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34251,"src":"2788:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2784:5:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":34260,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34251,"src":"2796:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2784:13:34","trueExpression":{"id":34259,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34249,"src":"2792:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34255,"id":34262,"nodeType":"Return","src":"2777:20:34"}]},"documentation":{"id":34247,"nodeType":"StructuredDocumentation","src":"2635:60:34","text":" @dev Returns the smallest of two numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"2709:3:34","parameters":{"id":34252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34249,"mutability":"mutable","name":"a","nameLocation":"2721:1:34","nodeType":"VariableDeclaration","scope":34264,"src":"2713:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34248,"name":"uint256","nodeType":"ElementaryTypeName","src":"2713:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34251,"mutability":"mutable","name":"b","nameLocation":"2732:1:34","nodeType":"VariableDeclaration","scope":34264,"src":"2724:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34250,"name":"uint256","nodeType":"ElementaryTypeName","src":"2724:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2712:22:34"},"returnParameters":{"id":34255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34254,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34264,"src":"2758:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34253,"name":"uint256","nodeType":"ElementaryTypeName","src":"2758:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2757:9:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34287,"nodeType":"FunctionDefinition","src":"2917:153:34","nodes":[],"body":{"id":34286,"nodeType":"Block","src":"2988:82:34","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34274,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34267,"src":"3043:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":34275,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34269,"src":"3047:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3043:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34277,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3042:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34278,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34267,"src":"3053:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":34279,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34269,"src":"3057:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3053:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34281,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3052:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":34282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3062:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3052:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3042:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34273,"id":34285,"nodeType":"Return","src":"3035:28:34"}]},"documentation":{"id":34265,"nodeType":"StructuredDocumentation","src":"2810:102:34","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"2926:7:34","parameters":{"id":34270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34267,"mutability":"mutable","name":"a","nameLocation":"2942:1:34","nodeType":"VariableDeclaration","scope":34287,"src":"2934:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34266,"name":"uint256","nodeType":"ElementaryTypeName","src":"2934:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34269,"mutability":"mutable","name":"b","nameLocation":"2953:1:34","nodeType":"VariableDeclaration","scope":34287,"src":"2945:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34268,"name":"uint256","nodeType":"ElementaryTypeName","src":"2945:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2933:22:34"},"returnParameters":{"id":34273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34272,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34287,"src":"2979:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34271,"name":"uint256","nodeType":"ElementaryTypeName","src":"2979:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2978:9:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34321,"nodeType":"FunctionDefinition","src":"3269:331:34","nodes":[],"body":{"id":34320,"nodeType":"Block","src":"3340:260:34","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34297,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34292,"src":"3354:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":34298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3359:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3354:6:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34305,"nodeType":"IfStatement","src":"3350:127:34","trueBody":{"id":34304,"nodeType":"Block","src":"3362:115:34","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34300,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34290,"src":"3461:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34301,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34292,"src":"3465:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3461:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34296,"id":34303,"nodeType":"Return","src":"3454:12:34"}]}},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34306,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34290,"src":"3565:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":34307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3570:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3565:6:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34310,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34290,"src":"3579:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":34311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3583:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3579:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34313,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3578:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34314,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34292,"src":"3588:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3578:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":34316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3592:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3578:15:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3565:28:34","trueExpression":{"hexValue":"30","id":34309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3574:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34296,"id":34319,"nodeType":"Return","src":"3558:35:34"}]},"documentation":{"id":34288,"nodeType":"StructuredDocumentation","src":"3076:188:34","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down."},"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"3278:7:34","parameters":{"id":34293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34290,"mutability":"mutable","name":"a","nameLocation":"3294:1:34","nodeType":"VariableDeclaration","scope":34321,"src":"3286:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34289,"name":"uint256","nodeType":"ElementaryTypeName","src":"3286:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34292,"mutability":"mutable","name":"b","nameLocation":"3305:1:34","nodeType":"VariableDeclaration","scope":34321,"src":"3297:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34291,"name":"uint256","nodeType":"ElementaryTypeName","src":"3297:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3285:22:34"},"returnParameters":{"id":34296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34321,"src":"3331:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34294,"name":"uint256","nodeType":"ElementaryTypeName","src":"3331:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3330:9:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34445,"nodeType":"FunctionDefinition","src":"3916:4247:34","nodes":[],"body":{"id":34444,"nodeType":"Block","src":"4014:4149:34","nodes":[],"statements":[{"id":34443,"nodeType":"UncheckedBlock","src":"4024:4133:34","statements":[{"assignments":[34334],"declarations":[{"constant":false,"id":34334,"mutability":"mutable","name":"prod0","nameLocation":"4353:5:34","nodeType":"VariableDeclaration","scope":34443,"src":"4345:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34333,"name":"uint256","nodeType":"ElementaryTypeName","src":"4345:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34335,"nodeType":"VariableDeclarationStatement","src":"4345:13:34"},{"assignments":[34337],"declarations":[{"constant":false,"id":34337,"mutability":"mutable","name":"prod1","nameLocation":"4425:5:34","nodeType":"VariableDeclaration","scope":34443,"src":"4417:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34336,"name":"uint256","nodeType":"ElementaryTypeName","src":"4417:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34338,"nodeType":"VariableDeclarationStatement","src":"4417:13:34"},{"AST":{"nodeType":"YulBlock","src":"4497:157:34","statements":[{"nodeType":"YulVariableDeclaration","src":"4515:30:34","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4532:1:34"},{"name":"y","nodeType":"YulIdentifier","src":"4535:1:34"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4542:1:34","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4538:3:34"},"nodeType":"YulFunctionCall","src":"4538:6:34"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"4525:6:34"},"nodeType":"YulFunctionCall","src":"4525:20:34"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"4519:2:34","type":""}]},{"nodeType":"YulAssignment","src":"4562:18:34","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4575:1:34"},{"name":"y","nodeType":"YulIdentifier","src":"4578:1:34"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4571:3:34"},"nodeType":"YulFunctionCall","src":"4571:9:34"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"4562:5:34"}]},{"nodeType":"YulAssignment","src":"4597:43:34","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"4614:2:34"},{"name":"prod0","nodeType":"YulIdentifier","src":"4618:5:34"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4610:3:34"},"nodeType":"YulFunctionCall","src":"4610:14:34"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"4629:2:34"},{"name":"prod0","nodeType":"YulIdentifier","src":"4633:5:34"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4626:2:34"},"nodeType":"YulFunctionCall","src":"4626:13:34"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4606:3:34"},"nodeType":"YulFunctionCall","src":"4606:34:34"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"4597:5:34"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":34334,"isOffset":false,"isSlot":false,"src":"4562:5:34","valueSize":1},{"declaration":34334,"isOffset":false,"isSlot":false,"src":"4618:5:34","valueSize":1},{"declaration":34334,"isOffset":false,"isSlot":false,"src":"4633:5:34","valueSize":1},{"declaration":34337,"isOffset":false,"isSlot":false,"src":"4597:5:34","valueSize":1},{"declaration":34324,"isOffset":false,"isSlot":false,"src":"4532:1:34","valueSize":1},{"declaration":34324,"isOffset":false,"isSlot":false,"src":"4575:1:34","valueSize":1},{"declaration":34326,"isOffset":false,"isSlot":false,"src":"4535:1:34","valueSize":1},{"declaration":34326,"isOffset":false,"isSlot":false,"src":"4578:1:34","valueSize":1}],"id":34339,"nodeType":"InlineAssembly","src":"4488:166:34"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34340,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34337,"src":"4735:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":34341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4744:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4735:10:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34348,"nodeType":"IfStatement","src":"4731:368:34","trueBody":{"id":34347,"nodeType":"Block","src":"4747:352:34","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34343,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34334,"src":"5065:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34344,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34328,"src":"5073:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34332,"id":34346,"nodeType":"Return","src":"5058:26:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34349,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34328,"src":"5205:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":34350,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34337,"src":"5220:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5205:20:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34356,"nodeType":"IfStatement","src":"5201:88:34","trueBody":{"id":34355,"nodeType":"Block","src":"5227:62:34","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":34352,"name":"MathOverflowedMulDiv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34066,"src":"5252:20:34","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":34353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5252:22:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34354,"nodeType":"RevertStatement","src":"5245:29:34"}]}},{"assignments":[34358],"declarations":[{"constant":false,"id":34358,"mutability":"mutable","name":"remainder","nameLocation":"5552:9:34","nodeType":"VariableDeclaration","scope":34443,"src":"5544:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34357,"name":"uint256","nodeType":"ElementaryTypeName","src":"5544:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34359,"nodeType":"VariableDeclarationStatement","src":"5544:17:34"},{"AST":{"nodeType":"YulBlock","src":"5584:291:34","statements":[{"nodeType":"YulAssignment","src":"5653:38:34","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5673:1:34"},{"name":"y","nodeType":"YulIdentifier","src":"5676:1:34"},{"name":"denominator","nodeType":"YulIdentifier","src":"5679:11:34"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"5666:6:34"},"nodeType":"YulFunctionCall","src":"5666:25:34"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"5653:9:34"}]},{"nodeType":"YulAssignment","src":"5773:41:34","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"5786:5:34"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"5796:9:34"},{"name":"prod0","nodeType":"YulIdentifier","src":"5807:5:34"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5793:2:34"},"nodeType":"YulFunctionCall","src":"5793:20:34"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5782:3:34"},"nodeType":"YulFunctionCall","src":"5782:32:34"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"5773:5:34"}]},{"nodeType":"YulAssignment","src":"5831:30:34","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"5844:5:34"},{"name":"remainder","nodeType":"YulIdentifier","src":"5851:9:34"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5840:3:34"},"nodeType":"YulFunctionCall","src":"5840:21:34"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"5831:5:34"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":34328,"isOffset":false,"isSlot":false,"src":"5679:11:34","valueSize":1},{"declaration":34334,"isOffset":false,"isSlot":false,"src":"5807:5:34","valueSize":1},{"declaration":34334,"isOffset":false,"isSlot":false,"src":"5831:5:34","valueSize":1},{"declaration":34334,"isOffset":false,"isSlot":false,"src":"5844:5:34","valueSize":1},{"declaration":34337,"isOffset":false,"isSlot":false,"src":"5773:5:34","valueSize":1},{"declaration":34337,"isOffset":false,"isSlot":false,"src":"5786:5:34","valueSize":1},{"declaration":34358,"isOffset":false,"isSlot":false,"src":"5653:9:34","valueSize":1},{"declaration":34358,"isOffset":false,"isSlot":false,"src":"5796:9:34","valueSize":1},{"declaration":34358,"isOffset":false,"isSlot":false,"src":"5851:9:34","valueSize":1},{"declaration":34324,"isOffset":false,"isSlot":false,"src":"5673:1:34","valueSize":1},{"declaration":34326,"isOffset":false,"isSlot":false,"src":"5676:1:34","valueSize":1}],"id":34360,"nodeType":"InlineAssembly","src":"5575:300:34"},{"assignments":[34362],"declarations":[{"constant":false,"id":34362,"mutability":"mutable","name":"twos","nameLocation":"6190:4:34","nodeType":"VariableDeclaration","scope":34443,"src":"6182:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34361,"name":"uint256","nodeType":"ElementaryTypeName","src":"6182:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34370,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34363,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34328,"src":"6197:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"6212:12:34","subExpression":{"id":34364,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34328,"src":"6213:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":34366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6227:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6212:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34368,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6211:18:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6197:32:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6182:47:34"},{"AST":{"nodeType":"YulBlock","src":"6252:362:34","statements":[{"nodeType":"YulAssignment","src":"6317:37:34","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"6336:11:34"},{"name":"twos","nodeType":"YulIdentifier","src":"6349:4:34"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6332:3:34"},"nodeType":"YulFunctionCall","src":"6332:22:34"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"6317:11:34"}]},{"nodeType":"YulAssignment","src":"6421:25:34","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"6434:5:34"},{"name":"twos","nodeType":"YulIdentifier","src":"6441:4:34"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6430:3:34"},"nodeType":"YulFunctionCall","src":"6430:16:34"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"6421:5:34"}]},{"nodeType":"YulAssignment","src":"6561:39:34","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6581:1:34","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"6584:4:34"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6577:3:34"},"nodeType":"YulFunctionCall","src":"6577:12:34"},{"name":"twos","nodeType":"YulIdentifier","src":"6591:4:34"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6573:3:34"},"nodeType":"YulFunctionCall","src":"6573:23:34"},{"kind":"number","nodeType":"YulLiteral","src":"6598:1:34","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6569:3:34"},"nodeType":"YulFunctionCall","src":"6569:31:34"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"6561:4:34"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":34328,"isOffset":false,"isSlot":false,"src":"6317:11:34","valueSize":1},{"declaration":34328,"isOffset":false,"isSlot":false,"src":"6336:11:34","valueSize":1},{"declaration":34334,"isOffset":false,"isSlot":false,"src":"6421:5:34","valueSize":1},{"declaration":34334,"isOffset":false,"isSlot":false,"src":"6434:5:34","valueSize":1},{"declaration":34362,"isOffset":false,"isSlot":false,"src":"6349:4:34","valueSize":1},{"declaration":34362,"isOffset":false,"isSlot":false,"src":"6441:4:34","valueSize":1},{"declaration":34362,"isOffset":false,"isSlot":false,"src":"6561:4:34","valueSize":1},{"declaration":34362,"isOffset":false,"isSlot":false,"src":"6584:4:34","valueSize":1},{"declaration":34362,"isOffset":false,"isSlot":false,"src":"6591:4:34","valueSize":1}],"id":34371,"nodeType":"InlineAssembly","src":"6243:371:34"},{"expression":{"id":34376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34372,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34334,"src":"6680:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34373,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34337,"src":"6689:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":34374,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34362,"src":"6697:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6689:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6680:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34377,"nodeType":"ExpressionStatement","src":"6680:21:34"},{"assignments":[34379],"declarations":[{"constant":false,"id":34379,"mutability":"mutable","name":"inverse","nameLocation":"7027:7:34","nodeType":"VariableDeclaration","scope":34443,"src":"7019:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34378,"name":"uint256","nodeType":"ElementaryTypeName","src":"7019:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34386,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":34380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7038:1:34","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":34381,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34328,"src":"7042:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7038:15:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34383,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7037:17:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":34384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7057:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"7037:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7019:39:34"},{"expression":{"id":34393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34387,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"7275:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":34388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7286:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34389,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34328,"src":"7290:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":34390,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"7304:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7290:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7286:25:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7275:36:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34394,"nodeType":"ExpressionStatement","src":"7275:36:34"},{"expression":{"id":34401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34395,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"7344:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":34396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7355:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34397,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34328,"src":"7359:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":34398,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"7373:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7359:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7355:25:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7344:36:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34402,"nodeType":"ExpressionStatement","src":"7344:36:34"},{"expression":{"id":34409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34403,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"7414:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":34404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7425:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34405,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34328,"src":"7429:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":34406,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"7443:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7429:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7425:25:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7414:36:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34410,"nodeType":"ExpressionStatement","src":"7414:36:34"},{"expression":{"id":34417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34411,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"7484:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":34412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7495:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34413,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34328,"src":"7499:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":34414,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"7513:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7499:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7495:25:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7484:36:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34418,"nodeType":"ExpressionStatement","src":"7484:36:34"},{"expression":{"id":34425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34419,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"7554:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":34420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7565:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34421,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34328,"src":"7569:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":34422,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"7583:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7569:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7565:25:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7554:36:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34426,"nodeType":"ExpressionStatement","src":"7554:36:34"},{"expression":{"id":34433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34427,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"7625:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":34428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7636:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34429,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34328,"src":"7640:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":34430,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"7654:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7640:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7636:25:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7625:36:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34434,"nodeType":"ExpressionStatement","src":"7625:36:34"},{"expression":{"id":34439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34435,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34331,"src":"8095:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34436,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34334,"src":"8104:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":34437,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34379,"src":"8112:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8104:15:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8095:24:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34440,"nodeType":"ExpressionStatement","src":"8095:24:34"},{"expression":{"id":34441,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34331,"src":"8140:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34332,"id":34442,"nodeType":"Return","src":"8133:13:34"}]}]},"documentation":{"id":34322,"nodeType":"StructuredDocumentation","src":"3606:305:34","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license."},"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"3925:6:34","parameters":{"id":34329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34324,"mutability":"mutable","name":"x","nameLocation":"3940:1:34","nodeType":"VariableDeclaration","scope":34445,"src":"3932:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34323,"name":"uint256","nodeType":"ElementaryTypeName","src":"3932:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34326,"mutability":"mutable","name":"y","nameLocation":"3951:1:34","nodeType":"VariableDeclaration","scope":34445,"src":"3943:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34325,"name":"uint256","nodeType":"ElementaryTypeName","src":"3943:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34328,"mutability":"mutable","name":"denominator","nameLocation":"3962:11:34","nodeType":"VariableDeclaration","scope":34445,"src":"3954:19:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34327,"name":"uint256","nodeType":"ElementaryTypeName","src":"3954:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3931:43:34"},"returnParameters":{"id":34332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34331,"mutability":"mutable","name":"result","nameLocation":"4006:6:34","nodeType":"VariableDeclaration","scope":34445,"src":"3998:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34330,"name":"uint256","nodeType":"ElementaryTypeName","src":"3998:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3997:16:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34489,"nodeType":"FunctionDefinition","src":"8295:299:34","nodes":[],"body":{"id":34488,"nodeType":"Block","src":"8405:189:34","nodes":[],"statements":[{"assignments":[34461],"declarations":[{"constant":false,"id":34461,"mutability":"mutable","name":"result","nameLocation":"8423:6:34","nodeType":"VariableDeclaration","scope":34488,"src":"8415:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34460,"name":"uint256","nodeType":"ElementaryTypeName","src":"8415:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34467,"initialValue":{"arguments":[{"id":34463,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34448,"src":"8439:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34464,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34450,"src":"8442:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34465,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34452,"src":"8445:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34462,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[34445,34489],"referencedDeclaration":34445,"src":"8432:6:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":34466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8432:25:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8415:42:34"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":34479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"},"id":34471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34468,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34455,"src":"8471:8:34","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":34469,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34070,"src":"8483:8:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$34070_$","typeString":"type(enum Math.Rounding)"}},"id":34470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8492:2:34","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":34068,"src":"8483:11:34","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"}},"src":"8471:23:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":34473,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34448,"src":"8505:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34474,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34450,"src":"8508:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":34475,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34452,"src":"8511:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34472,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"8498:6:34","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":34476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8498:25:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8526:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8498:29:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8471:56:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34485,"nodeType":"IfStatement","src":"8467:98:34","trueBody":{"id":34484,"nodeType":"Block","src":"8529:36:34","statements":[{"expression":{"id":34482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34480,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34461,"src":"8543:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":34481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8553:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8543:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34483,"nodeType":"ExpressionStatement","src":"8543:11:34"}]}},{"expression":{"id":34486,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34461,"src":"8581:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34459,"id":34487,"nodeType":"Return","src":"8574:13:34"}]},"documentation":{"id":34446,"nodeType":"StructuredDocumentation","src":"8169:121:34","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"8304:6:34","parameters":{"id":34456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34448,"mutability":"mutable","name":"x","nameLocation":"8319:1:34","nodeType":"VariableDeclaration","scope":34489,"src":"8311:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34447,"name":"uint256","nodeType":"ElementaryTypeName","src":"8311:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34450,"mutability":"mutable","name":"y","nameLocation":"8330:1:34","nodeType":"VariableDeclaration","scope":34489,"src":"8322:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34449,"name":"uint256","nodeType":"ElementaryTypeName","src":"8322:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34452,"mutability":"mutable","name":"denominator","nameLocation":"8341:11:34","nodeType":"VariableDeclaration","scope":34489,"src":"8333:19:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34451,"name":"uint256","nodeType":"ElementaryTypeName","src":"8333:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34455,"mutability":"mutable","name":"rounding","nameLocation":"8363:8:34","nodeType":"VariableDeclaration","scope":34489,"src":"8354:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"},"typeName":{"id":34454,"nodeType":"UserDefinedTypeName","pathNode":{"id":34453,"name":"Rounding","nameLocations":["8354:8:34"],"nodeType":"IdentifierPath","referencedDeclaration":34070,"src":"8354:8:34"},"referencedDeclaration":34070,"src":"8354:8:34","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8310:62:34"},"returnParameters":{"id":34459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34489,"src":"8396:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34457,"name":"uint256","nodeType":"ElementaryTypeName","src":"8396:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8395:9:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34601,"nodeType":"FunctionDefinition","src":"8813:1642:34","nodes":[],"body":{"id":34600,"nodeType":"Block","src":"8870:1585:34","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34497,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34492,"src":"8884:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":34498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8889:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8884:6:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34503,"nodeType":"IfStatement","src":"8880:45:34","trueBody":{"id":34502,"nodeType":"Block","src":"8892:33:34","statements":[{"expression":{"hexValue":"30","id":34500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8913:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":34496,"id":34501,"nodeType":"Return","src":"8906:8:34"}]}},{"assignments":[34505],"declarations":[{"constant":false,"id":34505,"mutability":"mutable","name":"result","nameLocation":"9612:6:34","nodeType":"VariableDeclaration","scope":34600,"src":"9604:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34504,"name":"uint256","nodeType":"ElementaryTypeName","src":"9604:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34514,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":34506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9621:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":34508,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34492,"src":"9632:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34507,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[34769,34805],"referencedDeclaration":34769,"src":"9627:4:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":34509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9627:7:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9638:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9627:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34512,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9626:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9621:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9604:36:34"},{"id":34599,"nodeType":"UncheckedBlock","src":"10041:408:34","statements":[{"expression":{"id":34524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34515,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10065:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34516,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10075:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34517,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34492,"src":"10084:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34518,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10088:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10084:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10075:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34521,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10074:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10099:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10074:26:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10065:35:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34525,"nodeType":"ExpressionStatement","src":"10065:35:34"},{"expression":{"id":34535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34526,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10114:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34527,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10124:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34528,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34492,"src":"10133:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34529,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10137:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10133:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10124:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34532,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10123:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10148:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10123:26:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10114:35:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34536,"nodeType":"ExpressionStatement","src":"10114:35:34"},{"expression":{"id":34546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34537,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10163:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34538,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10173:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34539,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34492,"src":"10182:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34540,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10186:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10182:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10173:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34543,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10172:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10197:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10172:26:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10163:35:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34547,"nodeType":"ExpressionStatement","src":"10163:35:34"},{"expression":{"id":34557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34548,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10212:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34549,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10222:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34550,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34492,"src":"10231:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34551,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10235:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10231:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10222:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34554,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10221:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10246:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10221:26:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10212:35:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34558,"nodeType":"ExpressionStatement","src":"10212:35:34"},{"expression":{"id":34568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34559,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10261:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34560,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10271:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34561,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34492,"src":"10280:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34562,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10284:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10280:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10271:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34565,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10270:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10295:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10270:26:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10261:35:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34569,"nodeType":"ExpressionStatement","src":"10261:35:34"},{"expression":{"id":34579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34570,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10310:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34571,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10320:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34572,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34492,"src":"10329:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34573,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10333:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10329:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10320:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34576,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10319:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10344:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10319:26:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10310:35:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34580,"nodeType":"ExpressionStatement","src":"10310:35:34"},{"expression":{"id":34590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34581,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10359:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34582,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10369:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34583,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34492,"src":"10378:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34584,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10382:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10378:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10369:19:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":34587,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10368:21:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10393:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10368:26:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10359:35:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34591,"nodeType":"ExpressionStatement","src":"10359:35:34"},{"expression":{"arguments":[{"id":34593,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10419:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34594,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34492,"src":"10427:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":34595,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34505,"src":"10431:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10427:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34592,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34264,"src":"10415:3:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":34597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10415:23:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34496,"id":34598,"nodeType":"Return","src":"10408:30:34"}]}]},"documentation":{"id":34490,"nodeType":"StructuredDocumentation","src":"8600:208:34","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8822:4:34","parameters":{"id":34493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34492,"mutability":"mutable","name":"a","nameLocation":"8835:1:34","nodeType":"VariableDeclaration","scope":34601,"src":"8827:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34491,"name":"uint256","nodeType":"ElementaryTypeName","src":"8827:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8826:11:34"},"returnParameters":{"id":34496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34495,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34601,"src":"8861:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34494,"name":"uint256","nodeType":"ElementaryTypeName","src":"8861:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8860:9:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34637,"nodeType":"FunctionDefinition","src":"10555:237:34","nodes":[],"body":{"id":34636,"nodeType":"Block","src":"10631:161:34","nodes":[],"statements":[{"id":34635,"nodeType":"UncheckedBlock","src":"10641:145:34","statements":[{"assignments":[34613],"declarations":[{"constant":false,"id":34613,"mutability":"mutable","name":"result","nameLocation":"10673:6:34","nodeType":"VariableDeclaration","scope":34635,"src":"10665:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34612,"name":"uint256","nodeType":"ElementaryTypeName","src":"10665:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34617,"initialValue":{"arguments":[{"id":34615,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34604,"src":"10687:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34614,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[34601,34637],"referencedDeclaration":34601,"src":"10682:4:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":34616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10682:7:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10665:24:34"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34618,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34613,"src":"10710:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":34628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"},"id":34622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34619,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34607,"src":"10720:8:34","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":34620,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34070,"src":"10732:8:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$34070_$","typeString":"type(enum Math.Rounding)"}},"id":34621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10741:2:34","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":34068,"src":"10732:11:34","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"}},"src":"10720:23:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34623,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34613,"src":"10747:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":34624,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34613,"src":"10756:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10747:15:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":34626,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34604,"src":"10765:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10747:19:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10720:46:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":34630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10773:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":34631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10720:54:34","trueExpression":{"hexValue":"31","id":34629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10769:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":34632,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10719:56:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10710:65:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34611,"id":34634,"nodeType":"Return","src":"10703:72:34"}]}]},"documentation":{"id":34602,"nodeType":"StructuredDocumentation","src":"10461:89:34","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"10564:4:34","parameters":{"id":34608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34604,"mutability":"mutable","name":"a","nameLocation":"10577:1:34","nodeType":"VariableDeclaration","scope":34637,"src":"10569:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34603,"name":"uint256","nodeType":"ElementaryTypeName","src":"10569:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34607,"mutability":"mutable","name":"rounding","nameLocation":"10589:8:34","nodeType":"VariableDeclaration","scope":34637,"src":"10580:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"},"typeName":{"id":34606,"nodeType":"UserDefinedTypeName","pathNode":{"id":34605,"name":"Rounding","nameLocations":["10580:8:34"],"nodeType":"IdentifierPath","referencedDeclaration":34070,"src":"10580:8:34"},"referencedDeclaration":34070,"src":"10580:8:34","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"10568:30:34"},"returnParameters":{"id":34611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34610,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34637,"src":"10622:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34609,"name":"uint256","nodeType":"ElementaryTypeName","src":"10622:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10621:9:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34769,"nodeType":"FunctionDefinition","src":"10916:983:34","nodes":[],"body":{"id":34768,"nodeType":"Block","src":"10977:922:34","nodes":[],"statements":[{"assignments":[34646],"declarations":[{"constant":false,"id":34646,"mutability":"mutable","name":"result","nameLocation":"10995:6:34","nodeType":"VariableDeclaration","scope":34768,"src":"10987:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34645,"name":"uint256","nodeType":"ElementaryTypeName","src":"10987:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34648,"initialValue":{"hexValue":"30","id":34647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11004:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10987:18:34"},{"id":34765,"nodeType":"UncheckedBlock","src":"11015:855:34","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34649,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"11043:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":34650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11052:3:34","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11043:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11058:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11043:16:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34663,"nodeType":"IfStatement","src":"11039:99:34","trueBody":{"id":34662,"nodeType":"Block","src":"11061:77:34","statements":[{"expression":{"id":34656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34654,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"11079:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":34655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11089:3:34","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11079:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34657,"nodeType":"ExpressionStatement","src":"11079:13:34"},{"expression":{"id":34660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34658,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34646,"src":"11110:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":34659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11120:3:34","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11110:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34661,"nodeType":"ExpressionStatement","src":"11110:13:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34664,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"11155:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":34665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11164:2:34","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11155:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11169:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11155:15:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34678,"nodeType":"IfStatement","src":"11151:96:34","trueBody":{"id":34677,"nodeType":"Block","src":"11172:75:34","statements":[{"expression":{"id":34671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34669,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"11190:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":34670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11200:2:34","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11190:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34672,"nodeType":"ExpressionStatement","src":"11190:12:34"},{"expression":{"id":34675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34673,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34646,"src":"11220:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":34674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11230:2:34","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11220:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34676,"nodeType":"ExpressionStatement","src":"11220:12:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34679,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"11264:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":34680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11273:2:34","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11264:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11278:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11264:15:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34693,"nodeType":"IfStatement","src":"11260:96:34","trueBody":{"id":34692,"nodeType":"Block","src":"11281:75:34","statements":[{"expression":{"id":34686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34684,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"11299:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":34685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11309:2:34","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11299:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34687,"nodeType":"ExpressionStatement","src":"11299:12:34"},{"expression":{"id":34690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34688,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34646,"src":"11329:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":34689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11339:2:34","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11329:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34691,"nodeType":"ExpressionStatement","src":"11329:12:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34694,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"11373:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":34695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11382:2:34","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11373:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11387:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11373:15:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34708,"nodeType":"IfStatement","src":"11369:96:34","trueBody":{"id":34707,"nodeType":"Block","src":"11390:75:34","statements":[{"expression":{"id":34701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34699,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"11408:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":34700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11418:2:34","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11408:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34702,"nodeType":"ExpressionStatement","src":"11408:12:34"},{"expression":{"id":34705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34703,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34646,"src":"11438:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":34704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11448:2:34","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11438:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34706,"nodeType":"ExpressionStatement","src":"11438:12:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34709,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"11482:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":34710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11491:1:34","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11482:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11495:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11482:14:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34723,"nodeType":"IfStatement","src":"11478:93:34","trueBody":{"id":34722,"nodeType":"Block","src":"11498:73:34","statements":[{"expression":{"id":34716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34714,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"11516:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":34715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11526:1:34","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11516:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34717,"nodeType":"ExpressionStatement","src":"11516:11:34"},{"expression":{"id":34720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34718,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34646,"src":"11545:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":34719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11555:1:34","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11545:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34721,"nodeType":"ExpressionStatement","src":"11545:11:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34724,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"11588:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":34725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11597:1:34","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11588:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11601:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11588:14:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34738,"nodeType":"IfStatement","src":"11584:93:34","trueBody":{"id":34737,"nodeType":"Block","src":"11604:73:34","statements":[{"expression":{"id":34731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34729,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"11622:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":34730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11632:1:34","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11622:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34732,"nodeType":"ExpressionStatement","src":"11622:11:34"},{"expression":{"id":34735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34733,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34646,"src":"11651:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":34734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11661:1:34","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11651:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34736,"nodeType":"ExpressionStatement","src":"11651:11:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34739,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"11694:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":34740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11703:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11694:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11707:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11694:14:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34753,"nodeType":"IfStatement","src":"11690:93:34","trueBody":{"id":34752,"nodeType":"Block","src":"11710:73:34","statements":[{"expression":{"id":34746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34744,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"11728:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":34745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11738:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11728:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34747,"nodeType":"ExpressionStatement","src":"11728:11:34"},{"expression":{"id":34750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34748,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34646,"src":"11757:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":34749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11767:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11757:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34751,"nodeType":"ExpressionStatement","src":"11757:11:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34754,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34640,"src":"11800:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11809:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11800:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11813:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11800:14:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34764,"nodeType":"IfStatement","src":"11796:64:34","trueBody":{"id":34763,"nodeType":"Block","src":"11816:44:34","statements":[{"expression":{"id":34761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34759,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34646,"src":"11834:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":34760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11844:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11834:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34762,"nodeType":"ExpressionStatement","src":"11834:11:34"}]}}]},{"expression":{"id":34766,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34646,"src":"11886:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34644,"id":34767,"nodeType":"Return","src":"11879:13:34"}]},"documentation":{"id":34638,"nodeType":"StructuredDocumentation","src":"10798:113:34","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"10925:4:34","parameters":{"id":34641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34640,"mutability":"mutable","name":"value","nameLocation":"10938:5:34","nodeType":"VariableDeclaration","scope":34769,"src":"10930:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34639,"name":"uint256","nodeType":"ElementaryTypeName","src":"10930:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10929:15:34"},"returnParameters":{"id":34644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34643,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34769,"src":"10968:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34642,"name":"uint256","nodeType":"ElementaryTypeName","src":"10968:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10967:9:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34805,"nodeType":"FunctionDefinition","src":"12052:245:34","nodes":[],"body":{"id":34804,"nodeType":"Block","src":"12132:165:34","nodes":[],"statements":[{"id":34803,"nodeType":"UncheckedBlock","src":"12142:149:34","statements":[{"assignments":[34781],"declarations":[{"constant":false,"id":34781,"mutability":"mutable","name":"result","nameLocation":"12174:6:34","nodeType":"VariableDeclaration","scope":34803,"src":"12166:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34780,"name":"uint256","nodeType":"ElementaryTypeName","src":"12166:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34785,"initialValue":{"arguments":[{"id":34783,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34772,"src":"12188:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34782,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[34769,34805],"referencedDeclaration":34769,"src":"12183:4:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":34784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12183:11:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12166:28:34"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34786,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34781,"src":"12215:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":34796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"},"id":34790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34787,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34775,"src":"12225:8:34","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":34788,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34070,"src":"12237:8:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$34070_$","typeString":"type(enum Math.Rounding)"}},"id":34789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12246:2:34","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":34068,"src":"12237:11:34","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"}},"src":"12225:23:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":34791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12252:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":34792,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34781,"src":"12257:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12252:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":34794,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34772,"src":"12266:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12252:19:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12225:46:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":34798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12278:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":34799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12225:54:34","trueExpression":{"hexValue":"31","id":34797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12274:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":34800,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12224:56:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12215:65:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34779,"id":34802,"nodeType":"Return","src":"12208:72:34"}]}]},"documentation":{"id":34770,"nodeType":"StructuredDocumentation","src":"11905:142:34","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"12061:4:34","parameters":{"id":34776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34772,"mutability":"mutable","name":"value","nameLocation":"12074:5:34","nodeType":"VariableDeclaration","scope":34805,"src":"12066:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34771,"name":"uint256","nodeType":"ElementaryTypeName","src":"12066:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34775,"mutability":"mutable","name":"rounding","nameLocation":"12090:8:34","nodeType":"VariableDeclaration","scope":34805,"src":"12081:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"},"typeName":{"id":34774,"nodeType":"UserDefinedTypeName","pathNode":{"id":34773,"name":"Rounding","nameLocations":["12081:8:34"],"nodeType":"IdentifierPath","referencedDeclaration":34070,"src":"12081:8:34"},"referencedDeclaration":34070,"src":"12081:8:34","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"12065:34:34"},"returnParameters":{"id":34779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34805,"src":"12123:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34777,"name":"uint256","nodeType":"ElementaryTypeName","src":"12123:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12122:9:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34934,"nodeType":"FunctionDefinition","src":"12422:916:34","nodes":[],"body":{"id":34933,"nodeType":"Block","src":"12484:854:34","nodes":[],"statements":[{"assignments":[34814],"declarations":[{"constant":false,"id":34814,"mutability":"mutable","name":"result","nameLocation":"12502:6:34","nodeType":"VariableDeclaration","scope":34933,"src":"12494:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34813,"name":"uint256","nodeType":"ElementaryTypeName","src":"12494:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34816,"initialValue":{"hexValue":"30","id":34815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12511:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12494:18:34"},{"id":34930,"nodeType":"UncheckedBlock","src":"12522:787:34","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34817,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34808,"src":"12550:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":34820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12559:2:34","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":34819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12565:2:34","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12559:8:34","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12550:17:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34833,"nodeType":"IfStatement","src":"12546:103:34","trueBody":{"id":34832,"nodeType":"Block","src":"12569:80:34","statements":[{"expression":{"id":34826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34822,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34808,"src":"12587:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":34825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12596:2:34","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":34824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12602:2:34","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12596:8:34","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12587:17:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34827,"nodeType":"ExpressionStatement","src":"12587:17:34"},{"expression":{"id":34830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34828,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34814,"src":"12622:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":34829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12632:2:34","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12622:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34831,"nodeType":"ExpressionStatement","src":"12622:12:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34834,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34808,"src":"12666:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":34837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12675:2:34","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":34836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12681:2:34","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12675:8:34","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12666:17:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34850,"nodeType":"IfStatement","src":"12662:103:34","trueBody":{"id":34849,"nodeType":"Block","src":"12685:80:34","statements":[{"expression":{"id":34843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34839,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34808,"src":"12703:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":34842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12712:2:34","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":34841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12718:2:34","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12712:8:34","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12703:17:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34844,"nodeType":"ExpressionStatement","src":"12703:17:34"},{"expression":{"id":34847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34845,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34814,"src":"12738:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":34846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12748:2:34","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12738:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34848,"nodeType":"ExpressionStatement","src":"12738:12:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34851,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34808,"src":"12782:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":34854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12791:2:34","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":34853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12797:2:34","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12791:8:34","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12782:17:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34867,"nodeType":"IfStatement","src":"12778:103:34","trueBody":{"id":34866,"nodeType":"Block","src":"12801:80:34","statements":[{"expression":{"id":34860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34856,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34808,"src":"12819:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":34859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12828:2:34","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":34858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12834:2:34","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12828:8:34","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12819:17:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34861,"nodeType":"ExpressionStatement","src":"12819:17:34"},{"expression":{"id":34864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34862,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34814,"src":"12854:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":34863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12864:2:34","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12854:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34865,"nodeType":"ExpressionStatement","src":"12854:12:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34868,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34808,"src":"12898:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":34871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12907:2:34","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":34870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12913:1:34","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12907:7:34","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12898:16:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34884,"nodeType":"IfStatement","src":"12894:100:34","trueBody":{"id":34883,"nodeType":"Block","src":"12916:78:34","statements":[{"expression":{"id":34877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34873,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34808,"src":"12934:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":34876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12943:2:34","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":34875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12949:1:34","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12943:7:34","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12934:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34878,"nodeType":"ExpressionStatement","src":"12934:16:34"},{"expression":{"id":34881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34879,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34814,"src":"12968:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":34880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12978:1:34","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12968:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34882,"nodeType":"ExpressionStatement","src":"12968:11:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34885,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34808,"src":"13011:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":34888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13020:2:34","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":34887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13026:1:34","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"13020:7:34","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"13011:16:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34901,"nodeType":"IfStatement","src":"13007:100:34","trueBody":{"id":34900,"nodeType":"Block","src":"13029:78:34","statements":[{"expression":{"id":34894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34890,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34808,"src":"13047:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":34893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13056:2:34","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":34892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13062:1:34","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"13056:7:34","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"13047:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34895,"nodeType":"ExpressionStatement","src":"13047:16:34"},{"expression":{"id":34898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34896,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34814,"src":"13081:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":34897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13091:1:34","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"13081:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34899,"nodeType":"ExpressionStatement","src":"13081:11:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34902,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34808,"src":"13124:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":34905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13133:2:34","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":34904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13139:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"13133:7:34","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"13124:16:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34918,"nodeType":"IfStatement","src":"13120:100:34","trueBody":{"id":34917,"nodeType":"Block","src":"13142:78:34","statements":[{"expression":{"id":34911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34907,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34808,"src":"13160:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":34910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13169:2:34","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":34909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13175:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"13169:7:34","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"13160:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34912,"nodeType":"ExpressionStatement","src":"13160:16:34"},{"expression":{"id":34915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34913,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34814,"src":"13194:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":34914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13204:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"13194:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34916,"nodeType":"ExpressionStatement","src":"13194:11:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34919,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34808,"src":"13237:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":34922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13246:2:34","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":34921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13252:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13246:7:34","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"13237:16:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34929,"nodeType":"IfStatement","src":"13233:66:34","trueBody":{"id":34928,"nodeType":"Block","src":"13255:44:34","statements":[{"expression":{"id":34926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34924,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34814,"src":"13273:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":34925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13283:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13273:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34927,"nodeType":"ExpressionStatement","src":"13273:11:34"}]}}]},{"expression":{"id":34931,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34814,"src":"13325:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34812,"id":34932,"nodeType":"Return","src":"13318:13:34"}]},"documentation":{"id":34806,"nodeType":"StructuredDocumentation","src":"12303:114:34","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"12431:5:34","parameters":{"id":34809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34808,"mutability":"mutable","name":"value","nameLocation":"12445:5:34","nodeType":"VariableDeclaration","scope":34934,"src":"12437:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34807,"name":"uint256","nodeType":"ElementaryTypeName","src":"12437:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12436:15:34"},"returnParameters":{"id":34812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34811,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34934,"src":"12475:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34810,"name":"uint256","nodeType":"ElementaryTypeName","src":"12475:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12474:9:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34970,"nodeType":"FunctionDefinition","src":"13492:248:34","nodes":[],"body":{"id":34969,"nodeType":"Block","src":"13573:167:34","nodes":[],"statements":[{"id":34968,"nodeType":"UncheckedBlock","src":"13583:151:34","statements":[{"assignments":[34946],"declarations":[{"constant":false,"id":34946,"mutability":"mutable","name":"result","nameLocation":"13615:6:34","nodeType":"VariableDeclaration","scope":34968,"src":"13607:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34945,"name":"uint256","nodeType":"ElementaryTypeName","src":"13607:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34950,"initialValue":{"arguments":[{"id":34948,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34937,"src":"13630:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34947,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[34934,34970],"referencedDeclaration":34934,"src":"13624:5:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":34949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13624:12:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13607:29:34"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34951,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34946,"src":"13657:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":34961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"},"id":34955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34952,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34940,"src":"13667:8:34","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":34953,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34070,"src":"13679:8:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$34070_$","typeString":"type(enum Math.Rounding)"}},"id":34954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13688:2:34","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":34068,"src":"13679:11:34","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"}},"src":"13667:23:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":34956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13694:2:34","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":34957,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34946,"src":"13700:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13694:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":34959,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34937,"src":"13709:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13694:20:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13667:47:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":34963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13721:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":34964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13667:55:34","trueExpression":{"hexValue":"31","id":34962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13717:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":34965,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13666:57:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13657:66:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34944,"id":34967,"nodeType":"Return","src":"13650:73:34"}]}]},"documentation":{"id":34935,"nodeType":"StructuredDocumentation","src":"13344:143:34","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"13501:5:34","parameters":{"id":34941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34937,"mutability":"mutable","name":"value","nameLocation":"13515:5:34","nodeType":"VariableDeclaration","scope":34970,"src":"13507:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34936,"name":"uint256","nodeType":"ElementaryTypeName","src":"13507:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34940,"mutability":"mutable","name":"rounding","nameLocation":"13531:8:34","nodeType":"VariableDeclaration","scope":34970,"src":"13522:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"},"typeName":{"id":34939,"nodeType":"UserDefinedTypeName","pathNode":{"id":34938,"name":"Rounding","nameLocations":["13522:8:34"],"nodeType":"IdentifierPath","referencedDeclaration":34070,"src":"13522:8:34"},"referencedDeclaration":34070,"src":"13522:8:34","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"13506:34:34"},"returnParameters":{"id":34944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34943,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34970,"src":"13564:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34942,"name":"uint256","nodeType":"ElementaryTypeName","src":"13564:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13563:9:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35057,"nodeType":"FunctionDefinition","src":"13991:663:34","nodes":[],"body":{"id":35056,"nodeType":"Block","src":"14054:600:34","nodes":[],"statements":[{"assignments":[34979],"declarations":[{"constant":false,"id":34979,"mutability":"mutable","name":"result","nameLocation":"14072:6:34","nodeType":"VariableDeclaration","scope":35056,"src":"14064:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34978,"name":"uint256","nodeType":"ElementaryTypeName","src":"14064:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":34981,"initialValue":{"hexValue":"30","id":34980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14081:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14064:18:34"},{"id":35053,"nodeType":"UncheckedBlock","src":"14092:533:34","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34982,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34973,"src":"14120:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":34983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14129:3:34","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"14120:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14135:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14120:16:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34996,"nodeType":"IfStatement","src":"14116:98:34","trueBody":{"id":34995,"nodeType":"Block","src":"14138:76:34","statements":[{"expression":{"id":34989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34987,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34973,"src":"14156:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":34988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14166:3:34","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"14156:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34990,"nodeType":"ExpressionStatement","src":"14156:13:34"},{"expression":{"id":34993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":34991,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34979,"src":"14187:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":34992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14197:2:34","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14187:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34994,"nodeType":"ExpressionStatement","src":"14187:12:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34997,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34973,"src":"14231:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":34998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14240:2:34","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14231:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":35000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14245:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14231:15:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35011,"nodeType":"IfStatement","src":"14227:95:34","trueBody":{"id":35010,"nodeType":"Block","src":"14248:74:34","statements":[{"expression":{"id":35004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35002,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34973,"src":"14266:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":35003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14276:2:34","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14266:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35005,"nodeType":"ExpressionStatement","src":"14266:12:34"},{"expression":{"id":35008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35006,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34979,"src":"14296:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":35007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14306:1:34","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14296:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35009,"nodeType":"ExpressionStatement","src":"14296:11:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35012,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34973,"src":"14339:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":35013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14348:2:34","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14339:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":35015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14353:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14339:15:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35026,"nodeType":"IfStatement","src":"14335:95:34","trueBody":{"id":35025,"nodeType":"Block","src":"14356:74:34","statements":[{"expression":{"id":35019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35017,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34973,"src":"14374:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":35018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14384:2:34","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14374:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35020,"nodeType":"ExpressionStatement","src":"14374:12:34"},{"expression":{"id":35023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35021,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34979,"src":"14404:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":35022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14414:1:34","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"14404:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35024,"nodeType":"ExpressionStatement","src":"14404:11:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35027,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34973,"src":"14447:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":35028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14456:2:34","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14447:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":35030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14461:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14447:15:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35041,"nodeType":"IfStatement","src":"14443:95:34","trueBody":{"id":35040,"nodeType":"Block","src":"14464:74:34","statements":[{"expression":{"id":35034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35032,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34973,"src":"14482:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":35033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14492:2:34","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14482:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35035,"nodeType":"ExpressionStatement","src":"14482:12:34"},{"expression":{"id":35038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35036,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34979,"src":"14512:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":35037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14522:1:34","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"14512:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35039,"nodeType":"ExpressionStatement","src":"14512:11:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35042,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34973,"src":"14555:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":35043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14564:1:34","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14555:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":35045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14568:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14555:14:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35052,"nodeType":"IfStatement","src":"14551:64:34","trueBody":{"id":35051,"nodeType":"Block","src":"14571:44:34","statements":[{"expression":{"id":35049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35047,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34979,"src":"14589:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":35048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14599:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14589:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35050,"nodeType":"ExpressionStatement","src":"14589:11:34"}]}}]},{"expression":{"id":35054,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34979,"src":"14641:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34977,"id":35055,"nodeType":"Return","src":"14634:13:34"}]},"documentation":{"id":34971,"nodeType":"StructuredDocumentation","src":"13746:240:34","text":" @dev Return the log in base 256, rounded down, of a positive value.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"14000:6:34","parameters":{"id":34974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34973,"mutability":"mutable","name":"value","nameLocation":"14015:5:34","nodeType":"VariableDeclaration","scope":35057,"src":"14007:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34972,"name":"uint256","nodeType":"ElementaryTypeName","src":"14007:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14006:15:34"},"returnParameters":{"id":34977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35057,"src":"14045:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34975,"name":"uint256","nodeType":"ElementaryTypeName","src":"14045:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14044:9:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35096,"nodeType":"FunctionDefinition","src":"14809:256:34","nodes":[],"body":{"id":35095,"nodeType":"Block","src":"14891:174:34","nodes":[],"statements":[{"id":35094,"nodeType":"UncheckedBlock","src":"14901:158:34","statements":[{"assignments":[35069],"declarations":[{"constant":false,"id":35069,"mutability":"mutable","name":"result","nameLocation":"14933:6:34","nodeType":"VariableDeclaration","scope":35094,"src":"14925:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35068,"name":"uint256","nodeType":"ElementaryTypeName","src":"14925:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":35073,"initialValue":{"arguments":[{"id":35071,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35060,"src":"14949:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35070,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[35057,35096],"referencedDeclaration":35057,"src":"14942:6:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":35072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14942:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14925:30:34"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35074,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35069,"src":"14976:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":35087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"},"id":35078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35075,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35063,"src":"14986:8:34","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":35076,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34070,"src":"14998:8:34","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$34070_$","typeString":"type(enum Math.Rounding)"}},"id":35077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15007:2:34","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":34068,"src":"14998:11:34","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"}},"src":"14986:23:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":35079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15013:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35080,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35069,"src":"15019:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":35081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15029:1:34","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"15019:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":35083,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15018:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15013:18:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":35085,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35060,"src":"15034:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15013:26:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14986:53:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":35089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15046:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":35090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14986:61:34","trueExpression":{"hexValue":"31","id":35088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15042:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":35091,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14985:63:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14976:72:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":35067,"id":35093,"nodeType":"Return","src":"14969:79:34"}]}]},"documentation":{"id":35058,"nodeType":"StructuredDocumentation","src":"14660:144:34","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"14818:6:34","parameters":{"id":35064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35060,"mutability":"mutable","name":"value","nameLocation":"14833:5:34","nodeType":"VariableDeclaration","scope":35096,"src":"14825:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35059,"name":"uint256","nodeType":"ElementaryTypeName","src":"14825:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35063,"mutability":"mutable","name":"rounding","nameLocation":"14849:8:34","nodeType":"VariableDeclaration","scope":35096,"src":"14840:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"},"typeName":{"id":35062,"nodeType":"UserDefinedTypeName","pathNode":{"id":35061,"name":"Rounding","nameLocations":["14840:8:34"],"nodeType":"IdentifierPath","referencedDeclaration":34070,"src":"14840:8:34"},"referencedDeclaration":34070,"src":"14840:8:34","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$34070","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"14824:34:34"},"returnParameters":{"id":35067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35066,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35096,"src":"14882:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35065,"name":"uint256","nodeType":"ElementaryTypeName","src":"14882:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14881:9:34"},"scope":35097,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":34063,"nodeType":"StructuredDocumentation","src":"129:73:34","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"linearizedBaseContracts":[35097],"name":"Math","nameLocation":"211:4:34","scope":35098,"usedErrors":[34066]}],"license":"MIT"},"id":34} \ No newline at end of file diff --git a/.out/MerkleProof.sol/MerkleProof.json b/.out/MerkleProof.sol/MerkleProof.json index 47a3c00bb..685930769 100644 --- a/.out/MerkleProof.sol/MerkleProof.json +++ b/.out/MerkleProof.sol/MerkleProof.json @@ -1 +1 @@ -{"abi":[{"type":"error","name":"MerkleProofInvalidMultiproof","inputs":[]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220421fc69cd7e1b2ad3cc8b11b9756277ce96124c31432f779a0035bd311d557a664736f6c63430008130033","sourceMap":"803:9035:30:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220421fc69cd7e1b2ad3cc8b11b9756277ce96124c31432f779a0035bd311d557a664736f6c63430008130033","sourceMap":"803:9035:30:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MerkleProofInvalidMultiproof\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"These functions deal with verification of Merkle Tree proofs. The tree and the proofs can be generated using our https://github.com/OpenZeppelin/merkle-tree[JavaScript library]. You will find a quickstart guide in the readme. WARNING: You should avoid using leaf values that are 64 bytes long prior to hashing, or use a hash function other than keccak256 for hashing leaves. This is because the concatenation of a sorted pair of internal nodes in the merkle tree could be reinterpreted as a leaf value. OpenZeppelin's JavaScript library generates merkle trees that are safe against this attack out of the box.\",\"errors\":{\"MerkleProofInvalidMultiproof()\":[{\"details\":\"The multiproof provided is not valid.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":\"MerkleProof\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"MerkleProofInvalidMultiproof"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":"MerkleProof"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol","id":33632,"exportedSymbols":{"MerkleProof":[33631]},"nodeType":"SourceUnit","src":"118:9721:30","nodes":[{"id":33098,"nodeType":"PragmaDirective","src":"118:24:30","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":33631,"nodeType":"ContractDefinition","src":"803:9035:30","nodes":[{"id":33102,"nodeType":"ErrorDefinition","src":"894:37:30","nodes":[],"documentation":{"id":33100,"nodeType":"StructuredDocumentation","src":"829:60:30","text":"@dev The multiproof provided is not valid."},"errorSelector":"35140492","name":"MerkleProofInvalidMultiproof","nameLocation":"900:28:30","parameters":{"id":33101,"nodeType":"ParameterList","parameters":[],"src":"928:2:30"}},{"id":33123,"nodeType":"FunctionDefinition","src":"1265:154:30","nodes":[],"body":{"id":33122,"nodeType":"Block","src":"1362:57:30","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":33120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":33116,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33106,"src":"1392:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":33117,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33110,"src":"1399:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33115,"name":"processProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33184,"src":"1379:12:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory,bytes32) pure returns (bytes32)"}},"id":33118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1379:25:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":33119,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33108,"src":"1408:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1379:33:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33114,"id":33121,"nodeType":"Return","src":"1372:40:30"}]},"documentation":{"id":33103,"nodeType":"StructuredDocumentation","src":"937:323:30","text":" @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n defined by `root`. For this, a `proof` must be provided, containing\n sibling hashes on the branch from the leaf to the root of the tree. Each\n pair of leaves and each pair of pre-images are assumed to be sorted."},"implemented":true,"kind":"function","modifiers":[],"name":"verify","nameLocation":"1274:6:30","parameters":{"id":33111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33106,"mutability":"mutable","name":"proof","nameLocation":"1298:5:30","nodeType":"VariableDeclaration","scope":33123,"src":"1281:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33104,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1281:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33105,"nodeType":"ArrayTypeName","src":"1281:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33108,"mutability":"mutable","name":"root","nameLocation":"1313:4:30","nodeType":"VariableDeclaration","scope":33123,"src":"1305:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1305:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33110,"mutability":"mutable","name":"leaf","nameLocation":"1327:4:30","nodeType":"VariableDeclaration","scope":33123,"src":"1319:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33109,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1319:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1280:52:30"},"returnParameters":{"id":33114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33113,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33123,"src":"1356:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33112,"name":"bool","nodeType":"ElementaryTypeName","src":"1356:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1355:6:30"},"scope":33631,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33144,"nodeType":"FunctionDefinition","src":"1520:172:30","nodes":[],"body":{"id":33143,"nodeType":"Block","src":"1627:65:30","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":33141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":33137,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33127,"src":"1665:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":33138,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33131,"src":"1672:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33136,"name":"processProofCalldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33224,"src":"1644:20:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32[] calldata,bytes32) pure returns (bytes32)"}},"id":33139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:33:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":33140,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33129,"src":"1681:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1644:41:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33135,"id":33142,"nodeType":"Return","src":"1637:48:30"}]},"documentation":{"id":33124,"nodeType":"StructuredDocumentation","src":"1425:90:30","text":" @dev Calldata version of {verify}\n _Available since v4.7._"},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCalldata","nameLocation":"1529:14:30","parameters":{"id":33132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33127,"mutability":"mutable","name":"proof","nameLocation":"1563:5:30","nodeType":"VariableDeclaration","scope":33144,"src":"1544:24:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33125,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1544:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33126,"nodeType":"ArrayTypeName","src":"1544:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33129,"mutability":"mutable","name":"root","nameLocation":"1578:4:30","nodeType":"VariableDeclaration","scope":33144,"src":"1570:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1570:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33131,"mutability":"mutable","name":"leaf","nameLocation":"1592:4:30","nodeType":"VariableDeclaration","scope":33144,"src":"1584:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33130,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1584:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1543:54:30"},"returnParameters":{"id":33135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33134,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33144,"src":"1621:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33133,"name":"bool","nodeType":"ElementaryTypeName","src":"1621:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1620:6:30"},"scope":33631,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33184,"nodeType":"FunctionDefinition","src":"2043:290:30","nodes":[],"body":{"id":33183,"nodeType":"Block","src":"2135:198:30","nodes":[],"statements":[{"assignments":[33156],"declarations":[{"constant":false,"id":33156,"mutability":"mutable","name":"computedHash","nameLocation":"2153:12:30","nodeType":"VariableDeclaration","scope":33183,"src":"2145:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2145:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33158,"initialValue":{"id":33157,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33150,"src":"2168:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2145:27:30"},{"body":{"id":33179,"nodeType":"Block","src":"2225:73:30","statements":[{"expression":{"id":33177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33170,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33156,"src":"2239:12:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33172,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33156,"src":"2264:12:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":33173,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33148,"src":"2278:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33175,"indexExpression":{"id":33174,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33160,"src":"2284:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2278:8:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33171,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33619,"src":"2254:9:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":33176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2254:33:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2239:48:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33178,"nodeType":"ExpressionStatement","src":"2239:48:30"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33163,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33160,"src":"2202:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":33164,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33148,"src":"2206:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2212:6:30","memberName":"length","nodeType":"MemberAccess","src":"2206:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2202:16:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33180,"initializationExpression":{"assignments":[33160],"declarations":[{"constant":false,"id":33160,"mutability":"mutable","name":"i","nameLocation":"2195:1:30","nodeType":"VariableDeclaration","scope":33180,"src":"2187:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33159,"name":"uint256","nodeType":"ElementaryTypeName","src":"2187:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33162,"initialValue":{"hexValue":"30","id":33161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2199:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2187:13:30"},"loopExpression":{"expression":{"id":33168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2220:3:30","subExpression":{"id":33167,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33160,"src":"2220:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33169,"nodeType":"ExpressionStatement","src":"2220:3:30"},"nodeType":"ForStatement","src":"2182:116:30"},{"expression":{"id":33181,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33156,"src":"2314:12:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33154,"id":33182,"nodeType":"Return","src":"2307:19:30"}]},"documentation":{"id":33145,"nodeType":"StructuredDocumentation","src":"1698:340:30","text":" @dev Returns the rebuilt hash obtained by traversing a Merkle tree up\n from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt\n hash matches the root of the tree. When processing the proof, the pairs\n of leafs & pre-images are assumed to be sorted.\n _Available since v4.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"processProof","nameLocation":"2052:12:30","parameters":{"id":33151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33148,"mutability":"mutable","name":"proof","nameLocation":"2082:5:30","nodeType":"VariableDeclaration","scope":33184,"src":"2065:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33146,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2065:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33147,"nodeType":"ArrayTypeName","src":"2065:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33150,"mutability":"mutable","name":"leaf","nameLocation":"2097:4:30","nodeType":"VariableDeclaration","scope":33184,"src":"2089:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2089:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2064:38:30"},"returnParameters":{"id":33154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33184,"src":"2126:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33152,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2126:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2125:9:30"},"scope":33631,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33224,"nodeType":"FunctionDefinition","src":"2440:300:30","nodes":[],"body":{"id":33223,"nodeType":"Block","src":"2542:198:30","nodes":[],"statements":[{"assignments":[33196],"declarations":[{"constant":false,"id":33196,"mutability":"mutable","name":"computedHash","nameLocation":"2560:12:30","nodeType":"VariableDeclaration","scope":33223,"src":"2552:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33195,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2552:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33198,"initialValue":{"id":33197,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33190,"src":"2575:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2552:27:30"},{"body":{"id":33219,"nodeType":"Block","src":"2632:73:30","statements":[{"expression":{"id":33217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33210,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33196,"src":"2646:12:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33212,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33196,"src":"2671:12:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":33213,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33188,"src":"2685:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":33215,"indexExpression":{"id":33214,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33200,"src":"2691:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2685:8:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33211,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33619,"src":"2661:9:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":33216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2661:33:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2646:48:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33218,"nodeType":"ExpressionStatement","src":"2646:48:30"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33203,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33200,"src":"2609:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":33204,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33188,"src":"2613:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":33205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2619:6:30","memberName":"length","nodeType":"MemberAccess","src":"2613:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2609:16:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33220,"initializationExpression":{"assignments":[33200],"declarations":[{"constant":false,"id":33200,"mutability":"mutable","name":"i","nameLocation":"2602:1:30","nodeType":"VariableDeclaration","scope":33220,"src":"2594:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33199,"name":"uint256","nodeType":"ElementaryTypeName","src":"2594:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33202,"initialValue":{"hexValue":"30","id":33201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2606:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2594:13:30"},"loopExpression":{"expression":{"id":33208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2627:3:30","subExpression":{"id":33207,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33200,"src":"2627:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33209,"nodeType":"ExpressionStatement","src":"2627:3:30"},"nodeType":"ForStatement","src":"2589:116:30"},{"expression":{"id":33221,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33196,"src":"2721:12:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33194,"id":33222,"nodeType":"Return","src":"2714:19:30"}]},"documentation":{"id":33185,"nodeType":"StructuredDocumentation","src":"2339:96:30","text":" @dev Calldata version of {processProof}\n _Available since v4.7._"},"implemented":true,"kind":"function","modifiers":[],"name":"processProofCalldata","nameLocation":"2449:20:30","parameters":{"id":33191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33188,"mutability":"mutable","name":"proof","nameLocation":"2489:5:30","nodeType":"VariableDeclaration","scope":33224,"src":"2470:24:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33186,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2470:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33187,"nodeType":"ArrayTypeName","src":"2470:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33190,"mutability":"mutable","name":"leaf","nameLocation":"2504:4:30","nodeType":"VariableDeclaration","scope":33224,"src":"2496:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33189,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2496:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2469:40:30"},"returnParameters":{"id":33194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33224,"src":"2533:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33192,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2533:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2532:9:30"},"scope":33631,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33250,"nodeType":"FunctionDefinition","src":"3101:258:30","nodes":[],"body":{"id":33249,"nodeType":"Block","src":"3283:76:30","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":33247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":33242,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33228,"src":"3318:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":33243,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33231,"src":"3325:10:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},{"id":33244,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33236,"src":"3337:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":33241,"name":"processMultiProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33436,"src":"3300:17:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory,bool[] memory,bytes32[] memory) pure returns (bytes32)"}},"id":33245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3300:44:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":33246,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33233,"src":"3348:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3300:52:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33240,"id":33248,"nodeType":"Return","src":"3293:59:30"}]},"documentation":{"id":33225,"nodeType":"StructuredDocumentation","src":"2746:350:30","text":" @dev Returns true if the `leaves` can be simultaneously proven to be a part of a merkle tree defined by\n `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.\n CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details.\n _Available since v4.7._"},"implemented":true,"kind":"function","modifiers":[],"name":"multiProofVerify","nameLocation":"3110:16:30","parameters":{"id":33237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33228,"mutability":"mutable","name":"proof","nameLocation":"3153:5:30","nodeType":"VariableDeclaration","scope":33250,"src":"3136:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33226,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3136:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33227,"nodeType":"ArrayTypeName","src":"3136:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33231,"mutability":"mutable","name":"proofFlags","nameLocation":"3182:10:30","nodeType":"VariableDeclaration","scope":33250,"src":"3168:24:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":33229,"name":"bool","nodeType":"ElementaryTypeName","src":"3168:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33230,"nodeType":"ArrayTypeName","src":"3168:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":33233,"mutability":"mutable","name":"root","nameLocation":"3210:4:30","nodeType":"VariableDeclaration","scope":33250,"src":"3202:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3202:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33236,"mutability":"mutable","name":"leaves","nameLocation":"3241:6:30","nodeType":"VariableDeclaration","scope":33250,"src":"3224:23:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33234,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3224:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33235,"nodeType":"ArrayTypeName","src":"3224:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"3126:127:30"},"returnParameters":{"id":33240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33250,"src":"3277:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33238,"name":"bool","nodeType":"ElementaryTypeName","src":"3277:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3276:6:30"},"scope":33631,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33276,"nodeType":"FunctionDefinition","src":"3570:278:30","nodes":[],"body":{"id":33275,"nodeType":"Block","src":"3764:84:30","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":33273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":33268,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33254,"src":"3807:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":33269,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33257,"src":"3814:10:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},{"id":33270,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33262,"src":"3826:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":33267,"name":"processMultiProofCalldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33596,"src":"3781:25:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_array$_t_bool_$dyn_calldata_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes32[] calldata,bool[] calldata,bytes32[] memory) pure returns (bytes32)"}},"id":33271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3781:52:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":33272,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33259,"src":"3837:4:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3781:60:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33266,"id":33274,"nodeType":"Return","src":"3774:67:30"}]},"documentation":{"id":33251,"nodeType":"StructuredDocumentation","src":"3365:200:30","text":" @dev Calldata version of {multiProofVerify}\n CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details.\n _Available since v4.7._"},"implemented":true,"kind":"function","modifiers":[],"name":"multiProofVerifyCalldata","nameLocation":"3579:24:30","parameters":{"id":33263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33254,"mutability":"mutable","name":"proof","nameLocation":"3632:5:30","nodeType":"VariableDeclaration","scope":33276,"src":"3613:24:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33252,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3613:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33253,"nodeType":"ArrayTypeName","src":"3613:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33257,"mutability":"mutable","name":"proofFlags","nameLocation":"3663:10:30","nodeType":"VariableDeclaration","scope":33276,"src":"3647:26:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":33255,"name":"bool","nodeType":"ElementaryTypeName","src":"3647:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33256,"nodeType":"ArrayTypeName","src":"3647:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":33259,"mutability":"mutable","name":"root","nameLocation":"3691:4:30","nodeType":"VariableDeclaration","scope":33276,"src":"3683:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33258,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3683:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33262,"mutability":"mutable","name":"leaves","nameLocation":"3722:6:30","nodeType":"VariableDeclaration","scope":33276,"src":"3705:23:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33260,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3705:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33261,"nodeType":"ArrayTypeName","src":"3705:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"3603:131:30"},"returnParameters":{"id":33266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33265,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33276,"src":"3758:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33264,"name":"bool","nodeType":"ElementaryTypeName","src":"3758:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3757:6:30"},"scope":33631,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33436,"nodeType":"FunctionDefinition","src":"4627:2282:30","nodes":[],"body":{"id":33435,"nodeType":"Block","src":"4802:2107:30","nodes":[],"statements":[{"assignments":[33292],"declarations":[{"constant":false,"id":33292,"mutability":"mutable","name":"leavesLen","nameLocation":"5194:9:30","nodeType":"VariableDeclaration","scope":33435,"src":"5186:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33291,"name":"uint256","nodeType":"ElementaryTypeName","src":"5186:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33295,"initialValue":{"expression":{"id":33293,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33286,"src":"5206:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5213:6:30","memberName":"length","nodeType":"MemberAccess","src":"5206:13:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5186:33:30"},{"assignments":[33297],"declarations":[{"constant":false,"id":33297,"mutability":"mutable","name":"proofLen","nameLocation":"5237:8:30","nodeType":"VariableDeclaration","scope":33435,"src":"5229:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33296,"name":"uint256","nodeType":"ElementaryTypeName","src":"5229:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33300,"initialValue":{"expression":{"id":33298,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33280,"src":"5248:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5254:6:30","memberName":"length","nodeType":"MemberAccess","src":"5248:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5229:31:30"},{"assignments":[33302],"declarations":[{"constant":false,"id":33302,"mutability":"mutable","name":"totalHashes","nameLocation":"5278:11:30","nodeType":"VariableDeclaration","scope":33435,"src":"5270:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33301,"name":"uint256","nodeType":"ElementaryTypeName","src":"5270:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33305,"initialValue":{"expression":{"id":33303,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33283,"src":"5292:10:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":33304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5303:6:30","memberName":"length","nodeType":"MemberAccess","src":"5292:17:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5270:39:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33306,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33292,"src":"5357:9:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":33307,"name":"proofLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33297,"src":"5369:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5357:20:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":33309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5380:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5357:24:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":33311,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"5385:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5357:39:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33317,"nodeType":"IfStatement","src":"5353:107:30","trueBody":{"id":33316,"nodeType":"Block","src":"5398:62:30","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":33313,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33102,"src":"5419:28:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":33314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5419:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33315,"nodeType":"RevertStatement","src":"5412:37:30"}]}},{"assignments":[33322],"declarations":[{"constant":false,"id":33322,"mutability":"mutable","name":"hashes","nameLocation":"5721:6:30","nodeType":"VariableDeclaration","scope":33435,"src":"5704:23:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5704:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33321,"nodeType":"ArrayTypeName","src":"5704:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":33328,"initialValue":{"arguments":[{"id":33326,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"5744:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5730:13:30","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":33323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5734:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33324,"nodeType":"ArrayTypeName","src":"5734:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":33327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5730:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5704:52:30"},{"assignments":[33330],"declarations":[{"constant":false,"id":33330,"mutability":"mutable","name":"leafPos","nameLocation":"5774:7:30","nodeType":"VariableDeclaration","scope":33435,"src":"5766:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33329,"name":"uint256","nodeType":"ElementaryTypeName","src":"5766:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33332,"initialValue":{"hexValue":"30","id":33331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5784:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5766:19:30"},{"assignments":[33334],"declarations":[{"constant":false,"id":33334,"mutability":"mutable","name":"hashPos","nameLocation":"5803:7:30","nodeType":"VariableDeclaration","scope":33435,"src":"5795:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33333,"name":"uint256","nodeType":"ElementaryTypeName","src":"5795:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33336,"initialValue":{"hexValue":"30","id":33335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5813:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5795:19:30"},{"assignments":[33338],"declarations":[{"constant":false,"id":33338,"mutability":"mutable","name":"proofPos","nameLocation":"5832:8:30","nodeType":"VariableDeclaration","scope":33435,"src":"5824:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33337,"name":"uint256","nodeType":"ElementaryTypeName","src":"5824:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33340,"initialValue":{"hexValue":"30","id":33339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5843:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5824:20:30"},{"body":{"id":33399,"nodeType":"Block","src":"6262:292:30","statements":[{"assignments":[33352],"declarations":[{"constant":false,"id":33352,"mutability":"mutable","name":"a","nameLocation":"6284:1:30","nodeType":"VariableDeclaration","scope":33399,"src":"6276:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6276:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33365,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33353,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33330,"src":"6288:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33354,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33292,"src":"6298:9:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6288:19:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":33360,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"6330:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33363,"indexExpression":{"id":33362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6337:9:30","subExpression":{"id":33361,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33334,"src":"6337:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6330:17:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6288:59:30","trueExpression":{"baseExpression":{"id":33356,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33286,"src":"6310:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33359,"indexExpression":{"id":33358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6317:9:30","subExpression":{"id":33357,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33330,"src":"6317:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6310:17:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6276:71:30"},{"assignments":[33367],"declarations":[{"constant":false,"id":33367,"mutability":"mutable","name":"b","nameLocation":"6369:1:30","nodeType":"VariableDeclaration","scope":33399,"src":"6361:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33366,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6361:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33389,"initialValue":{"condition":{"baseExpression":{"id":33368,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33283,"src":"6373:10:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":33370,"indexExpression":{"id":33369,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33342,"src":"6384:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6373:13:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":33384,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33280,"src":"6485:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33387,"indexExpression":{"id":33386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6491:10:30","subExpression":{"id":33385,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33338,"src":"6491:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6485:17:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6373:129:30","trueExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33371,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33330,"src":"6406:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33372,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33292,"src":"6416:9:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6406:19:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":33378,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"6448:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33381,"indexExpression":{"id":33380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6455:9:30","subExpression":{"id":33379,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33334,"src":"6455:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6448:17:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6406:59:30","trueExpression":{"baseExpression":{"id":33374,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33286,"src":"6428:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33377,"indexExpression":{"id":33376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6435:9:30","subExpression":{"id":33375,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33330,"src":"6435:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6428:17:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":33383,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6405:61:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6361:141:30"},{"expression":{"id":33397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33390,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"6516:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33392,"indexExpression":{"id":33391,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33342,"src":"6523:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6516:9:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33394,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33352,"src":"6538:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33395,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33367,"src":"6541:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33393,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33619,"src":"6528:9:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":33396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6528:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6516:27:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33398,"nodeType":"ExpressionStatement","src":"6516:27:30"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33345,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33342,"src":"6240:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33346,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"6244:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6240:15:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33400,"initializationExpression":{"assignments":[33342],"declarations":[{"constant":false,"id":33342,"mutability":"mutable","name":"i","nameLocation":"6233:1:30","nodeType":"VariableDeclaration","scope":33400,"src":"6225:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33341,"name":"uint256","nodeType":"ElementaryTypeName","src":"6225:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33344,"initialValue":{"hexValue":"30","id":33343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6237:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6225:13:30"},"loopExpression":{"expression":{"id":33349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6257:3:30","subExpression":{"id":33348,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33342,"src":"6257:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33350,"nodeType":"ExpressionStatement","src":"6257:3:30"},"nodeType":"ForStatement","src":"6220:334:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33401,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"6568:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":33402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6582:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6568:15:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33420,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33292,"src":"6801:9:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":33421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6813:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6801:13:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":33432,"nodeType":"Block","src":"6863:40:30","statements":[{"expression":{"baseExpression":{"id":33428,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33280,"src":"6884:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33430,"indexExpression":{"hexValue":"30","id":33429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6890:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6884:8:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33290,"id":33431,"nodeType":"Return","src":"6877:15:30"}]},"id":33433,"nodeType":"IfStatement","src":"6797:106:30","trueBody":{"id":33427,"nodeType":"Block","src":"6816:41:30","statements":[{"expression":{"baseExpression":{"id":33423,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33286,"src":"6837:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33425,"indexExpression":{"hexValue":"30","id":33424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6844:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6837:9:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33290,"id":33426,"nodeType":"Return","src":"6830:16:30"}]}},"id":33434,"nodeType":"IfStatement","src":"6564:339:30","trueBody":{"id":33419,"nodeType":"Block","src":"6585:206:30","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33404,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33338,"src":"6603:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":33405,"name":"proofLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33297,"src":"6615:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6603:20:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33411,"nodeType":"IfStatement","src":"6599:96:30","trueBody":{"id":33410,"nodeType":"Block","src":"6625:70:30","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":33407,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33102,"src":"6650:28:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":33408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6650:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33409,"nodeType":"RevertStatement","src":"6643:37:30"}]}},{"id":33418,"nodeType":"UncheckedBlock","src":"6708:73:30","statements":[{"expression":{"baseExpression":{"id":33412,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33322,"src":"6743:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33416,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33413,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33302,"src":"6750:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":33414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6764:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6750:15:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6743:23:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33290,"id":33417,"nodeType":"Return","src":"6736:30:30"}]}]}}]},"documentation":{"id":33277,"nodeType":"StructuredDocumentation","src":"3854:768:30","text":" @dev Returns the root of a tree reconstructed from `leaves` and sibling nodes in `proof`. The reconstruction\n proceeds by incrementally reconstructing all inner nodes by combining a leaf/inner node with either another\n leaf/inner node or a proof sibling node, depending on whether each `proofFlags` item is true or false\n respectively.\n CAUTION: Not all merkle trees admit multiproofs. To use multiproofs, it is sufficient to ensure that: 1) the tree\n is complete (but not necessarily perfect), 2) the leaves to be proven are in the opposite order they are in the\n tree (i.e., as seen from right to left starting at the deepest layer and continuing at the next layer).\n _Available since v4.7._"},"implemented":true,"kind":"function","modifiers":[],"name":"processMultiProof","nameLocation":"4636:17:30","parameters":{"id":33287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33280,"mutability":"mutable","name":"proof","nameLocation":"4680:5:30","nodeType":"VariableDeclaration","scope":33436,"src":"4663:22:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33278,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4663:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33279,"nodeType":"ArrayTypeName","src":"4663:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33283,"mutability":"mutable","name":"proofFlags","nameLocation":"4709:10:30","nodeType":"VariableDeclaration","scope":33436,"src":"4695:24:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":33281,"name":"bool","nodeType":"ElementaryTypeName","src":"4695:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33282,"nodeType":"ArrayTypeName","src":"4695:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":33286,"mutability":"mutable","name":"leaves","nameLocation":"4746:6:30","nodeType":"VariableDeclaration","scope":33436,"src":"4729:23:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33284,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4729:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33285,"nodeType":"ArrayTypeName","src":"4729:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4653:105:30"},"returnParameters":{"id":33290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33289,"mutability":"mutable","name":"merkleRoot","nameLocation":"4790:10:30","nodeType":"VariableDeclaration","scope":33436,"src":"4782:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33288,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4782:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4781:20:30"},"scope":33631,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33596,"nodeType":"FunctionDefinition","src":"7122:2294:30","nodes":[],"body":{"id":33595,"nodeType":"Block","src":"7309:2107:30","nodes":[],"statements":[{"assignments":[33452],"declarations":[{"constant":false,"id":33452,"mutability":"mutable","name":"leavesLen","nameLocation":"7701:9:30","nodeType":"VariableDeclaration","scope":33595,"src":"7693:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33451,"name":"uint256","nodeType":"ElementaryTypeName","src":"7693:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33455,"initialValue":{"expression":{"id":33453,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33446,"src":"7713:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7720:6:30","memberName":"length","nodeType":"MemberAccess","src":"7713:13:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7693:33:30"},{"assignments":[33457],"declarations":[{"constant":false,"id":33457,"mutability":"mutable","name":"proofLen","nameLocation":"7744:8:30","nodeType":"VariableDeclaration","scope":33595,"src":"7736:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33456,"name":"uint256","nodeType":"ElementaryTypeName","src":"7736:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33460,"initialValue":{"expression":{"id":33458,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33440,"src":"7755:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":33459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7761:6:30","memberName":"length","nodeType":"MemberAccess","src":"7755:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7736:31:30"},{"assignments":[33462],"declarations":[{"constant":false,"id":33462,"mutability":"mutable","name":"totalHashes","nameLocation":"7785:11:30","nodeType":"VariableDeclaration","scope":33595,"src":"7777:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33461,"name":"uint256","nodeType":"ElementaryTypeName","src":"7777:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33465,"initialValue":{"expression":{"id":33463,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33443,"src":"7799:10:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":33464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7810:6:30","memberName":"length","nodeType":"MemberAccess","src":"7799:17:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7777:39:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33466,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33452,"src":"7864:9:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":33467,"name":"proofLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33457,"src":"7876:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7864:20:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":33469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7887:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7864:24:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":33471,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33462,"src":"7892:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7864:39:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33477,"nodeType":"IfStatement","src":"7860:107:30","trueBody":{"id":33476,"nodeType":"Block","src":"7905:62:30","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":33473,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33102,"src":"7926:28:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":33474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7926:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33475,"nodeType":"RevertStatement","src":"7919:37:30"}]}},{"assignments":[33482],"declarations":[{"constant":false,"id":33482,"mutability":"mutable","name":"hashes","nameLocation":"8228:6:30","nodeType":"VariableDeclaration","scope":33595,"src":"8211:23:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33480,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8211:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33481,"nodeType":"ArrayTypeName","src":"8211:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":33488,"initialValue":{"arguments":[{"id":33486,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33462,"src":"8251:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8237:13:30","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":33483,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8241:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33484,"nodeType":"ArrayTypeName","src":"8241:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":33487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8237:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8211:52:30"},{"assignments":[33490],"declarations":[{"constant":false,"id":33490,"mutability":"mutable","name":"leafPos","nameLocation":"8281:7:30","nodeType":"VariableDeclaration","scope":33595,"src":"8273:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33489,"name":"uint256","nodeType":"ElementaryTypeName","src":"8273:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33492,"initialValue":{"hexValue":"30","id":33491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8291:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8273:19:30"},{"assignments":[33494],"declarations":[{"constant":false,"id":33494,"mutability":"mutable","name":"hashPos","nameLocation":"8310:7:30","nodeType":"VariableDeclaration","scope":33595,"src":"8302:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33493,"name":"uint256","nodeType":"ElementaryTypeName","src":"8302:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33496,"initialValue":{"hexValue":"30","id":33495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8320:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8302:19:30"},{"assignments":[33498],"declarations":[{"constant":false,"id":33498,"mutability":"mutable","name":"proofPos","nameLocation":"8339:8:30","nodeType":"VariableDeclaration","scope":33595,"src":"8331:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33497,"name":"uint256","nodeType":"ElementaryTypeName","src":"8331:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33500,"initialValue":{"hexValue":"30","id":33499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8350:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8331:20:30"},{"body":{"id":33559,"nodeType":"Block","src":"8769:292:30","statements":[{"assignments":[33512],"declarations":[{"constant":false,"id":33512,"mutability":"mutable","name":"a","nameLocation":"8791:1:30","nodeType":"VariableDeclaration","scope":33559,"src":"8783:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33511,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8783:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33525,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33513,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33490,"src":"8795:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33514,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33452,"src":"8805:9:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8795:19:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":33520,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33482,"src":"8837:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33523,"indexExpression":{"id":33522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8844:9:30","subExpression":{"id":33521,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33494,"src":"8844:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8837:17:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8795:59:30","trueExpression":{"baseExpression":{"id":33516,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33446,"src":"8817:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33519,"indexExpression":{"id":33518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8824:9:30","subExpression":{"id":33517,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33490,"src":"8824:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8817:17:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8783:71:30"},{"assignments":[33527],"declarations":[{"constant":false,"id":33527,"mutability":"mutable","name":"b","nameLocation":"8876:1:30","nodeType":"VariableDeclaration","scope":33559,"src":"8868:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33526,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8868:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33549,"initialValue":{"condition":{"baseExpression":{"id":33528,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33443,"src":"8880:10:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":33530,"indexExpression":{"id":33529,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33502,"src":"8891:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8880:13:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":33544,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33440,"src":"8992:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":33547,"indexExpression":{"id":33546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8998:10:30","subExpression":{"id":33545,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33498,"src":"8998:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8992:17:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8880:129:30","trueExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33531,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33490,"src":"8913:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33532,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33452,"src":"8923:9:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8913:19:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":33538,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33482,"src":"8955:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33541,"indexExpression":{"id":33540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8962:9:30","subExpression":{"id":33539,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33494,"src":"8962:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8955:17:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8913:59:30","trueExpression":{"baseExpression":{"id":33534,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33446,"src":"8935:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33537,"indexExpression":{"id":33536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8942:9:30","subExpression":{"id":33535,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33490,"src":"8942:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8935:17:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":33543,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8912:61:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8868:141:30"},{"expression":{"id":33557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33550,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33482,"src":"9023:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33552,"indexExpression":{"id":33551,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33502,"src":"9030:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9023:9:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33554,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"9045:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33555,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33527,"src":"9048:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33553,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33619,"src":"9035:9:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":33556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9035:15:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9023:27:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33558,"nodeType":"ExpressionStatement","src":"9023:27:30"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33505,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33502,"src":"8747:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33506,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33462,"src":"8751:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8747:15:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33560,"initializationExpression":{"assignments":[33502],"declarations":[{"constant":false,"id":33502,"mutability":"mutable","name":"i","nameLocation":"8740:1:30","nodeType":"VariableDeclaration","scope":33560,"src":"8732:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33501,"name":"uint256","nodeType":"ElementaryTypeName","src":"8732:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33504,"initialValue":{"hexValue":"30","id":33503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8744:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8732:13:30"},"loopExpression":{"expression":{"id":33509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8764:3:30","subExpression":{"id":33508,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33502,"src":"8764:1:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33510,"nodeType":"ExpressionStatement","src":"8764:3:30"},"nodeType":"ForStatement","src":"8727:334:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33561,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33462,"src":"9075:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":33562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9089:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9075:15:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33580,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33452,"src":"9308:9:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":33581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9320:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9308:13:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":33592,"nodeType":"Block","src":"9370:40:30","statements":[{"expression":{"baseExpression":{"id":33588,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33440,"src":"9391:5:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":33590,"indexExpression":{"hexValue":"30","id":33589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9397:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9391:8:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33450,"id":33591,"nodeType":"Return","src":"9384:15:30"}]},"id":33593,"nodeType":"IfStatement","src":"9304:106:30","trueBody":{"id":33587,"nodeType":"Block","src":"9323:41:30","statements":[{"expression":{"baseExpression":{"id":33583,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33446,"src":"9344:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33585,"indexExpression":{"hexValue":"30","id":33584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9351:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9344:9:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33450,"id":33586,"nodeType":"Return","src":"9337:16:30"}]}},"id":33594,"nodeType":"IfStatement","src":"9071:339:30","trueBody":{"id":33579,"nodeType":"Block","src":"9092:206:30","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33564,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33498,"src":"9110:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":33565,"name":"proofLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33457,"src":"9122:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9110:20:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33571,"nodeType":"IfStatement","src":"9106:96:30","trueBody":{"id":33570,"nodeType":"Block","src":"9132:70:30","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":33567,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33102,"src":"9157:28:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":33568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9157:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33569,"nodeType":"RevertStatement","src":"9150:37:30"}]}},{"id":33578,"nodeType":"UncheckedBlock","src":"9215:73:30","statements":[{"expression":{"baseExpression":{"id":33572,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33482,"src":"9250:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33576,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33573,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33462,"src":"9257:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":33574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9271:1:30","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9257:15:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9250:23:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33450,"id":33577,"nodeType":"Return","src":"9243:30:30"}]}]}}]},"documentation":{"id":33437,"nodeType":"StructuredDocumentation","src":"6915:202:30","text":" @dev Calldata version of {processMultiProof}.\n CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details.\n _Available since v4.7._"},"implemented":true,"kind":"function","modifiers":[],"name":"processMultiProofCalldata","nameLocation":"7131:25:30","parameters":{"id":33447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33440,"mutability":"mutable","name":"proof","nameLocation":"7185:5:30","nodeType":"VariableDeclaration","scope":33596,"src":"7166:24:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7166:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33439,"nodeType":"ArrayTypeName","src":"7166:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33443,"mutability":"mutable","name":"proofFlags","nameLocation":"7216:10:30","nodeType":"VariableDeclaration","scope":33596,"src":"7200:26:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":33441,"name":"bool","nodeType":"ElementaryTypeName","src":"7200:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33442,"nodeType":"ArrayTypeName","src":"7200:6:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":33446,"mutability":"mutable","name":"leaves","nameLocation":"7253:6:30","nodeType":"VariableDeclaration","scope":33596,"src":"7236:23:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33444,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7236:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33445,"nodeType":"ArrayTypeName","src":"7236:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7156:109:30"},"returnParameters":{"id":33450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33449,"mutability":"mutable","name":"merkleRoot","nameLocation":"7297:10:30","nodeType":"VariableDeclaration","scope":33596,"src":"7289:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33448,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7289:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7288:20:30"},"scope":33631,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33619,"nodeType":"FunctionDefinition","src":"9422:147:30","nodes":[],"body":{"id":33618,"nodeType":"Block","src":"9494:75:30","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":33607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33605,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33598,"src":"9511:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33606,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33600,"src":"9515:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9511:5:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":33613,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33600,"src":"9557:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33614,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33598,"src":"9560:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33612,"name":"_efficientHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33630,"src":"9542:14:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":33615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9542:20:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9511:51:30","trueExpression":{"arguments":[{"id":33609,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33598,"src":"9534:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33610,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33600,"src":"9537:1:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33608,"name":"_efficientHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33630,"src":"9519:14:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":33611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9519:20:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33604,"id":33617,"nodeType":"Return","src":"9504:58:30"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_hashPair","nameLocation":"9431:9:30","parameters":{"id":33601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33598,"mutability":"mutable","name":"a","nameLocation":"9449:1:30","nodeType":"VariableDeclaration","scope":33619,"src":"9441:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9441:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33600,"mutability":"mutable","name":"b","nameLocation":"9460:1:30","nodeType":"VariableDeclaration","scope":33619,"src":"9452:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33599,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9452:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9440:22:30"},"returnParameters":{"id":33604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33619,"src":"9485:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33602,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9485:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9484:9:30"},"scope":33631,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":33630,"nodeType":"FunctionDefinition","src":"9575:261:30","nodes":[],"body":{"id":33629,"nodeType":"Block","src":"9658:178:30","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"9720:110:30","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9741:4:30","type":"","value":"0x00"},{"name":"a","nodeType":"YulIdentifier","src":"9747:1:30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9734:6:30"},"nodeType":"YulFunctionCall","src":"9734:15:30"},"nodeType":"YulExpressionStatement","src":"9734:15:30"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9769:4:30","type":"","value":"0x20"},{"name":"b","nodeType":"YulIdentifier","src":"9775:1:30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9762:6:30"},"nodeType":"YulFunctionCall","src":"9762:15:30"},"nodeType":"YulExpressionStatement","src":"9762:15:30"},{"nodeType":"YulAssignment","src":"9790:30:30","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9809:4:30","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"9815:4:30","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"9799:9:30"},"nodeType":"YulFunctionCall","src":"9799:21:30"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"9790:5:30"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":33621,"isOffset":false,"isSlot":false,"src":"9747:1:30","valueSize":1},{"declaration":33623,"isOffset":false,"isSlot":false,"src":"9775:1:30","valueSize":1},{"declaration":33626,"isOffset":false,"isSlot":false,"src":"9790:5:30","valueSize":1}],"id":33628,"nodeType":"InlineAssembly","src":"9711:119:30"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_efficientHash","nameLocation":"9584:14:30","parameters":{"id":33624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33621,"mutability":"mutable","name":"a","nameLocation":"9607:1:30","nodeType":"VariableDeclaration","scope":33630,"src":"9599:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33620,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9599:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33623,"mutability":"mutable","name":"b","nameLocation":"9618:1:30","nodeType":"VariableDeclaration","scope":33630,"src":"9610:9:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33622,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9610:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9598:22:30"},"returnParameters":{"id":33627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33626,"mutability":"mutable","name":"value","nameLocation":"9651:5:30","nodeType":"VariableDeclaration","scope":33630,"src":"9643:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33625,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9643:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9642:15:30"},"scope":33631,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"MerkleProof","contractDependencies":[],"contractKind":"library","documentation":{"id":33099,"nodeType":"StructuredDocumentation","src":"144:658:30","text":" @dev These functions deal with verification of Merkle Tree proofs.\n The tree and the proofs can be generated using our\n https://github.com/OpenZeppelin/merkle-tree[JavaScript library].\n You will find a quickstart guide in the readme.\n WARNING: You should avoid using leaf values that are 64 bytes long prior to\n hashing, or use a hash function other than keccak256 for hashing leaves.\n This is because the concatenation of a sorted pair of internal nodes in\n the merkle tree could be reinterpreted as a leaf value.\n OpenZeppelin's JavaScript library generates merkle trees that are safe\n against this attack out of the box."},"fullyImplemented":true,"linearizedBaseContracts":[33631],"name":"MerkleProof","nameLocation":"811:11:30","scope":33632,"usedErrors":[33102]}],"license":"MIT"},"id":30} \ No newline at end of file +{"abi":[{"type":"error","name":"MerkleProofInvalidMultiproof","inputs":[]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220421fc69cd7e1b2ad3cc8b11b9756277ce96124c31432f779a0035bd311d557a664736f6c63430008130033","sourceMap":"803:9035:33:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220421fc69cd7e1b2ad3cc8b11b9756277ce96124c31432f779a0035bd311d557a664736f6c63430008130033","sourceMap":"803:9035:33:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MerkleProofInvalidMultiproof\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"These functions deal with verification of Merkle Tree proofs. The tree and the proofs can be generated using our https://github.com/OpenZeppelin/merkle-tree[JavaScript library]. You will find a quickstart guide in the readme. WARNING: You should avoid using leaf values that are 64 bytes long prior to hashing, or use a hash function other than keccak256 for hashing leaves. This is because the concatenation of a sorted pair of internal nodes in the merkle tree could be reinterpreted as a leaf value. OpenZeppelin's JavaScript library generates merkle trees that are safe against this attack out of the box.\",\"errors\":{\"MerkleProofInvalidMultiproof()\":[{\"details\":\"The multiproof provided is not valid.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":\"MerkleProof\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de\",\"dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"MerkleProofInvalidMultiproof"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":"MerkleProof"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0xeef0055c9d8aba5fd076b940267fdaad89cf5a1c341f81973553a802390985df","urls":["bzz-raw://7ef9483358a9db47fda4e196be3247d985729246412c1752c50531400a4863de","dweb:/ipfs/QmYxMMfqh9BbJgDimU6t7YBmPFLcmXerWaSVAg3DoiGZuQ"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol","id":34061,"exportedSymbols":{"MerkleProof":[34060]},"nodeType":"SourceUnit","src":"118:9721:33","nodes":[{"id":33527,"nodeType":"PragmaDirective","src":"118:24:33","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":34060,"nodeType":"ContractDefinition","src":"803:9035:33","nodes":[{"id":33531,"nodeType":"ErrorDefinition","src":"894:37:33","nodes":[],"documentation":{"id":33529,"nodeType":"StructuredDocumentation","src":"829:60:33","text":"@dev The multiproof provided is not valid."},"errorSelector":"35140492","name":"MerkleProofInvalidMultiproof","nameLocation":"900:28:33","parameters":{"id":33530,"nodeType":"ParameterList","parameters":[],"src":"928:2:33"}},{"id":33552,"nodeType":"FunctionDefinition","src":"1265:154:33","nodes":[],"body":{"id":33551,"nodeType":"Block","src":"1362:57:33","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":33549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":33545,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33535,"src":"1392:5:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":33546,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33539,"src":"1399:4:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33544,"name":"processProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33613,"src":"1379:12:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory,bytes32) pure returns (bytes32)"}},"id":33547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1379:25:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":33548,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33537,"src":"1408:4:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1379:33:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33543,"id":33550,"nodeType":"Return","src":"1372:40:33"}]},"documentation":{"id":33532,"nodeType":"StructuredDocumentation","src":"937:323:33","text":" @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree\n defined by `root`. For this, a `proof` must be provided, containing\n sibling hashes on the branch from the leaf to the root of the tree. Each\n pair of leaves and each pair of pre-images are assumed to be sorted."},"implemented":true,"kind":"function","modifiers":[],"name":"verify","nameLocation":"1274:6:33","parameters":{"id":33540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33535,"mutability":"mutable","name":"proof","nameLocation":"1298:5:33","nodeType":"VariableDeclaration","scope":33552,"src":"1281:22:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33533,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1281:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33534,"nodeType":"ArrayTypeName","src":"1281:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33537,"mutability":"mutable","name":"root","nameLocation":"1313:4:33","nodeType":"VariableDeclaration","scope":33552,"src":"1305:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1305:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33539,"mutability":"mutable","name":"leaf","nameLocation":"1327:4:33","nodeType":"VariableDeclaration","scope":33552,"src":"1319:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33538,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1319:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1280:52:33"},"returnParameters":{"id":33543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33552,"src":"1356:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33541,"name":"bool","nodeType":"ElementaryTypeName","src":"1356:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1355:6:33"},"scope":34060,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33573,"nodeType":"FunctionDefinition","src":"1520:172:33","nodes":[],"body":{"id":33572,"nodeType":"Block","src":"1627:65:33","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":33570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":33566,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33556,"src":"1665:5:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":33567,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33560,"src":"1672:4:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33565,"name":"processProofCalldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33653,"src":"1644:20:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32[] calldata,bytes32) pure returns (bytes32)"}},"id":33568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:33:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":33569,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33558,"src":"1681:4:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1644:41:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33564,"id":33571,"nodeType":"Return","src":"1637:48:33"}]},"documentation":{"id":33553,"nodeType":"StructuredDocumentation","src":"1425:90:33","text":" @dev Calldata version of {verify}\n _Available since v4.7._"},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCalldata","nameLocation":"1529:14:33","parameters":{"id":33561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33556,"mutability":"mutable","name":"proof","nameLocation":"1563:5:33","nodeType":"VariableDeclaration","scope":33573,"src":"1544:24:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33554,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1544:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33555,"nodeType":"ArrayTypeName","src":"1544:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33558,"mutability":"mutable","name":"root","nameLocation":"1578:4:33","nodeType":"VariableDeclaration","scope":33573,"src":"1570:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1570:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33560,"mutability":"mutable","name":"leaf","nameLocation":"1592:4:33","nodeType":"VariableDeclaration","scope":33573,"src":"1584:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33559,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1584:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1543:54:33"},"returnParameters":{"id":33564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33563,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33573,"src":"1621:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33562,"name":"bool","nodeType":"ElementaryTypeName","src":"1621:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1620:6:33"},"scope":34060,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33613,"nodeType":"FunctionDefinition","src":"2043:290:33","nodes":[],"body":{"id":33612,"nodeType":"Block","src":"2135:198:33","nodes":[],"statements":[{"assignments":[33585],"declarations":[{"constant":false,"id":33585,"mutability":"mutable","name":"computedHash","nameLocation":"2153:12:33","nodeType":"VariableDeclaration","scope":33612,"src":"2145:20:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33584,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2145:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33587,"initialValue":{"id":33586,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33579,"src":"2168:4:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2145:27:33"},{"body":{"id":33608,"nodeType":"Block","src":"2225:73:33","statements":[{"expression":{"id":33606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33599,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33585,"src":"2239:12:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33601,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33585,"src":"2264:12:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":33602,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33577,"src":"2278:5:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33604,"indexExpression":{"id":33603,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33589,"src":"2284:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2278:8:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33600,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34048,"src":"2254:9:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":33605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2254:33:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2239:48:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33607,"nodeType":"ExpressionStatement","src":"2239:48:33"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33592,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33589,"src":"2202:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":33593,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33577,"src":"2206:5:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2212:6:33","memberName":"length","nodeType":"MemberAccess","src":"2206:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2202:16:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33609,"initializationExpression":{"assignments":[33589],"declarations":[{"constant":false,"id":33589,"mutability":"mutable","name":"i","nameLocation":"2195:1:33","nodeType":"VariableDeclaration","scope":33609,"src":"2187:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33588,"name":"uint256","nodeType":"ElementaryTypeName","src":"2187:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33591,"initialValue":{"hexValue":"30","id":33590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2199:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2187:13:33"},"loopExpression":{"expression":{"id":33597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2220:3:33","subExpression":{"id":33596,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33589,"src":"2220:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33598,"nodeType":"ExpressionStatement","src":"2220:3:33"},"nodeType":"ForStatement","src":"2182:116:33"},{"expression":{"id":33610,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33585,"src":"2314:12:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33583,"id":33611,"nodeType":"Return","src":"2307:19:33"}]},"documentation":{"id":33574,"nodeType":"StructuredDocumentation","src":"1698:340:33","text":" @dev Returns the rebuilt hash obtained by traversing a Merkle tree up\n from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt\n hash matches the root of the tree. When processing the proof, the pairs\n of leafs & pre-images are assumed to be sorted.\n _Available since v4.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"processProof","nameLocation":"2052:12:33","parameters":{"id":33580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33577,"mutability":"mutable","name":"proof","nameLocation":"2082:5:33","nodeType":"VariableDeclaration","scope":33613,"src":"2065:22:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33575,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2065:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33576,"nodeType":"ArrayTypeName","src":"2065:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33579,"mutability":"mutable","name":"leaf","nameLocation":"2097:4:33","nodeType":"VariableDeclaration","scope":33613,"src":"2089:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2089:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2064:38:33"},"returnParameters":{"id":33583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33613,"src":"2126:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33581,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2126:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2125:9:33"},"scope":34060,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33653,"nodeType":"FunctionDefinition","src":"2440:300:33","nodes":[],"body":{"id":33652,"nodeType":"Block","src":"2542:198:33","nodes":[],"statements":[{"assignments":[33625],"declarations":[{"constant":false,"id":33625,"mutability":"mutable","name":"computedHash","nameLocation":"2560:12:33","nodeType":"VariableDeclaration","scope":33652,"src":"2552:20:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33624,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2552:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33627,"initialValue":{"id":33626,"name":"leaf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33619,"src":"2575:4:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2552:27:33"},{"body":{"id":33648,"nodeType":"Block","src":"2632:73:33","statements":[{"expression":{"id":33646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33639,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33625,"src":"2646:12:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33641,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33625,"src":"2671:12:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":33642,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33617,"src":"2685:5:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":33644,"indexExpression":{"id":33643,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33629,"src":"2691:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2685:8:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33640,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34048,"src":"2661:9:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":33645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2661:33:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2646:48:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33647,"nodeType":"ExpressionStatement","src":"2646:48:33"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33632,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33629,"src":"2609:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":33633,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33617,"src":"2613:5:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":33634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2619:6:33","memberName":"length","nodeType":"MemberAccess","src":"2613:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2609:16:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33649,"initializationExpression":{"assignments":[33629],"declarations":[{"constant":false,"id":33629,"mutability":"mutable","name":"i","nameLocation":"2602:1:33","nodeType":"VariableDeclaration","scope":33649,"src":"2594:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33628,"name":"uint256","nodeType":"ElementaryTypeName","src":"2594:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33631,"initialValue":{"hexValue":"30","id":33630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2606:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2594:13:33"},"loopExpression":{"expression":{"id":33637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2627:3:33","subExpression":{"id":33636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33629,"src":"2627:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33638,"nodeType":"ExpressionStatement","src":"2627:3:33"},"nodeType":"ForStatement","src":"2589:116:33"},{"expression":{"id":33650,"name":"computedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33625,"src":"2721:12:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33623,"id":33651,"nodeType":"Return","src":"2714:19:33"}]},"documentation":{"id":33614,"nodeType":"StructuredDocumentation","src":"2339:96:33","text":" @dev Calldata version of {processProof}\n _Available since v4.7._"},"implemented":true,"kind":"function","modifiers":[],"name":"processProofCalldata","nameLocation":"2449:20:33","parameters":{"id":33620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33617,"mutability":"mutable","name":"proof","nameLocation":"2489:5:33","nodeType":"VariableDeclaration","scope":33653,"src":"2470:24:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2470:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33616,"nodeType":"ArrayTypeName","src":"2470:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33619,"mutability":"mutable","name":"leaf","nameLocation":"2504:4:33","nodeType":"VariableDeclaration","scope":33653,"src":"2496:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33618,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2496:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2469:40:33"},"returnParameters":{"id":33623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33622,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33653,"src":"2533:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2533:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2532:9:33"},"scope":34060,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33679,"nodeType":"FunctionDefinition","src":"3101:258:33","nodes":[],"body":{"id":33678,"nodeType":"Block","src":"3283:76:33","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":33676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":33671,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33657,"src":"3318:5:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":33672,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33660,"src":"3325:10:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},{"id":33673,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33665,"src":"3337:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":33670,"name":"processMultiProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33865,"src":"3300:17:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory,bool[] memory,bytes32[] memory) pure returns (bytes32)"}},"id":33674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3300:44:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":33675,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33662,"src":"3348:4:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3300:52:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33669,"id":33677,"nodeType":"Return","src":"3293:59:33"}]},"documentation":{"id":33654,"nodeType":"StructuredDocumentation","src":"2746:350:33","text":" @dev Returns true if the `leaves` can be simultaneously proven to be a part of a merkle tree defined by\n `root`, according to `proof` and `proofFlags` as described in {processMultiProof}.\n CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details.\n _Available since v4.7._"},"implemented":true,"kind":"function","modifiers":[],"name":"multiProofVerify","nameLocation":"3110:16:33","parameters":{"id":33666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33657,"mutability":"mutable","name":"proof","nameLocation":"3153:5:33","nodeType":"VariableDeclaration","scope":33679,"src":"3136:22:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3136:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33656,"nodeType":"ArrayTypeName","src":"3136:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33660,"mutability":"mutable","name":"proofFlags","nameLocation":"3182:10:33","nodeType":"VariableDeclaration","scope":33679,"src":"3168:24:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":33658,"name":"bool","nodeType":"ElementaryTypeName","src":"3168:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33659,"nodeType":"ArrayTypeName","src":"3168:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":33662,"mutability":"mutable","name":"root","nameLocation":"3210:4:33","nodeType":"VariableDeclaration","scope":33679,"src":"3202:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33661,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3202:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33665,"mutability":"mutable","name":"leaves","nameLocation":"3241:6:33","nodeType":"VariableDeclaration","scope":33679,"src":"3224:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3224:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33664,"nodeType":"ArrayTypeName","src":"3224:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"3126:127:33"},"returnParameters":{"id":33669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33679,"src":"3277:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33667,"name":"bool","nodeType":"ElementaryTypeName","src":"3277:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3276:6:33"},"scope":34060,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33705,"nodeType":"FunctionDefinition","src":"3570:278:33","nodes":[],"body":{"id":33704,"nodeType":"Block","src":"3764:84:33","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":33702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":33697,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33683,"src":"3807:5:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},{"id":33698,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33686,"src":"3814:10:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},{"id":33699,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33691,"src":"3826:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"},{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":33696,"name":"processMultiProofCalldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34025,"src":"3781:25:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_array$_t_bool_$dyn_calldata_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes32[] calldata,bool[] calldata,bytes32[] memory) pure returns (bytes32)"}},"id":33700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3781:52:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":33701,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33688,"src":"3837:4:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3781:60:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33695,"id":33703,"nodeType":"Return","src":"3774:67:33"}]},"documentation":{"id":33680,"nodeType":"StructuredDocumentation","src":"3365:200:33","text":" @dev Calldata version of {multiProofVerify}\n CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details.\n _Available since v4.7._"},"implemented":true,"kind":"function","modifiers":[],"name":"multiProofVerifyCalldata","nameLocation":"3579:24:33","parameters":{"id":33692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33683,"mutability":"mutable","name":"proof","nameLocation":"3632:5:33","nodeType":"VariableDeclaration","scope":33705,"src":"3613:24:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33681,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3613:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33682,"nodeType":"ArrayTypeName","src":"3613:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33686,"mutability":"mutable","name":"proofFlags","nameLocation":"3663:10:33","nodeType":"VariableDeclaration","scope":33705,"src":"3647:26:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":33684,"name":"bool","nodeType":"ElementaryTypeName","src":"3647:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33685,"nodeType":"ArrayTypeName","src":"3647:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":33688,"mutability":"mutable","name":"root","nameLocation":"3691:4:33","nodeType":"VariableDeclaration","scope":33705,"src":"3683:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33687,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3683:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33691,"mutability":"mutable","name":"leaves","nameLocation":"3722:6:33","nodeType":"VariableDeclaration","scope":33705,"src":"3705:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3705:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33690,"nodeType":"ArrayTypeName","src":"3705:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"3603:131:33"},"returnParameters":{"id":33695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33705,"src":"3758:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33693,"name":"bool","nodeType":"ElementaryTypeName","src":"3758:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3757:6:33"},"scope":34060,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33865,"nodeType":"FunctionDefinition","src":"4627:2282:33","nodes":[],"body":{"id":33864,"nodeType":"Block","src":"4802:2107:33","nodes":[],"statements":[{"assignments":[33721],"declarations":[{"constant":false,"id":33721,"mutability":"mutable","name":"leavesLen","nameLocation":"5194:9:33","nodeType":"VariableDeclaration","scope":33864,"src":"5186:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33720,"name":"uint256","nodeType":"ElementaryTypeName","src":"5186:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33724,"initialValue":{"expression":{"id":33722,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33715,"src":"5206:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5213:6:33","memberName":"length","nodeType":"MemberAccess","src":"5206:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5186:33:33"},{"assignments":[33726],"declarations":[{"constant":false,"id":33726,"mutability":"mutable","name":"proofLen","nameLocation":"5237:8:33","nodeType":"VariableDeclaration","scope":33864,"src":"5229:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33725,"name":"uint256","nodeType":"ElementaryTypeName","src":"5229:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33729,"initialValue":{"expression":{"id":33727,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33709,"src":"5248:5:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5254:6:33","memberName":"length","nodeType":"MemberAccess","src":"5248:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5229:31:33"},{"assignments":[33731],"declarations":[{"constant":false,"id":33731,"mutability":"mutable","name":"totalHashes","nameLocation":"5278:11:33","nodeType":"VariableDeclaration","scope":33864,"src":"5270:19:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33730,"name":"uint256","nodeType":"ElementaryTypeName","src":"5270:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33734,"initialValue":{"expression":{"id":33732,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33712,"src":"5292:10:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":33733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5303:6:33","memberName":"length","nodeType":"MemberAccess","src":"5292:17:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5270:39:33"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33735,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33721,"src":"5357:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":33736,"name":"proofLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33726,"src":"5369:8:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5357:20:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":33738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5380:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5357:24:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":33740,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33731,"src":"5385:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5357:39:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33746,"nodeType":"IfStatement","src":"5353:107:33","trueBody":{"id":33745,"nodeType":"Block","src":"5398:62:33","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":33742,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33531,"src":"5419:28:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":33743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5419:30:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33744,"nodeType":"RevertStatement","src":"5412:37:33"}]}},{"assignments":[33751],"declarations":[{"constant":false,"id":33751,"mutability":"mutable","name":"hashes","nameLocation":"5721:6:33","nodeType":"VariableDeclaration","scope":33864,"src":"5704:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5704:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33750,"nodeType":"ArrayTypeName","src":"5704:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":33757,"initialValue":{"arguments":[{"id":33755,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33731,"src":"5744:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5730:13:33","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":33752,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5734:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33753,"nodeType":"ArrayTypeName","src":"5734:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":33756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5730:26:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5704:52:33"},{"assignments":[33759],"declarations":[{"constant":false,"id":33759,"mutability":"mutable","name":"leafPos","nameLocation":"5774:7:33","nodeType":"VariableDeclaration","scope":33864,"src":"5766:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33758,"name":"uint256","nodeType":"ElementaryTypeName","src":"5766:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33761,"initialValue":{"hexValue":"30","id":33760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5784:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5766:19:33"},{"assignments":[33763],"declarations":[{"constant":false,"id":33763,"mutability":"mutable","name":"hashPos","nameLocation":"5803:7:33","nodeType":"VariableDeclaration","scope":33864,"src":"5795:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33762,"name":"uint256","nodeType":"ElementaryTypeName","src":"5795:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33765,"initialValue":{"hexValue":"30","id":33764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5813:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5795:19:33"},{"assignments":[33767],"declarations":[{"constant":false,"id":33767,"mutability":"mutable","name":"proofPos","nameLocation":"5832:8:33","nodeType":"VariableDeclaration","scope":33864,"src":"5824:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33766,"name":"uint256","nodeType":"ElementaryTypeName","src":"5824:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33769,"initialValue":{"hexValue":"30","id":33768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5843:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5824:20:33"},{"body":{"id":33828,"nodeType":"Block","src":"6262:292:33","statements":[{"assignments":[33781],"declarations":[{"constant":false,"id":33781,"mutability":"mutable","name":"a","nameLocation":"6284:1:33","nodeType":"VariableDeclaration","scope":33828,"src":"6276:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6276:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33794,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33782,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33759,"src":"6288:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33783,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33721,"src":"6298:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6288:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":33789,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33751,"src":"6330:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33792,"indexExpression":{"id":33791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6337:9:33","subExpression":{"id":33790,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33763,"src":"6337:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6330:17:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6288:59:33","trueExpression":{"baseExpression":{"id":33785,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33715,"src":"6310:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33788,"indexExpression":{"id":33787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6317:9:33","subExpression":{"id":33786,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33759,"src":"6317:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6310:17:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6276:71:33"},{"assignments":[33796],"declarations":[{"constant":false,"id":33796,"mutability":"mutable","name":"b","nameLocation":"6369:1:33","nodeType":"VariableDeclaration","scope":33828,"src":"6361:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33795,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6361:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33818,"initialValue":{"condition":{"baseExpression":{"id":33797,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33712,"src":"6373:10:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":33799,"indexExpression":{"id":33798,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33771,"src":"6384:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6373:13:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":33813,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33709,"src":"6485:5:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33816,"indexExpression":{"id":33815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6491:10:33","subExpression":{"id":33814,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33767,"src":"6491:8:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6485:17:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6373:129:33","trueExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33800,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33759,"src":"6406:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33801,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33721,"src":"6416:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6406:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":33807,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33751,"src":"6448:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33810,"indexExpression":{"id":33809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6455:9:33","subExpression":{"id":33808,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33763,"src":"6455:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6448:17:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6406:59:33","trueExpression":{"baseExpression":{"id":33803,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33715,"src":"6428:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33806,"indexExpression":{"id":33805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6435:9:33","subExpression":{"id":33804,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33759,"src":"6435:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6428:17:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":33812,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6405:61:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6361:141:33"},{"expression":{"id":33826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33819,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33751,"src":"6516:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33821,"indexExpression":{"id":33820,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33771,"src":"6523:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6516:9:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33823,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33781,"src":"6538:1:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33824,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33796,"src":"6541:1:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33822,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34048,"src":"6528:9:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":33825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6528:15:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6516:27:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33827,"nodeType":"ExpressionStatement","src":"6516:27:33"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33774,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33771,"src":"6240:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33775,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33731,"src":"6244:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6240:15:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33829,"initializationExpression":{"assignments":[33771],"declarations":[{"constant":false,"id":33771,"mutability":"mutable","name":"i","nameLocation":"6233:1:33","nodeType":"VariableDeclaration","scope":33829,"src":"6225:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33770,"name":"uint256","nodeType":"ElementaryTypeName","src":"6225:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33773,"initialValue":{"hexValue":"30","id":33772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6237:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6225:13:33"},"loopExpression":{"expression":{"id":33778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6257:3:33","subExpression":{"id":33777,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33771,"src":"6257:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33779,"nodeType":"ExpressionStatement","src":"6257:3:33"},"nodeType":"ForStatement","src":"6220:334:33"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33830,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33731,"src":"6568:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":33831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6582:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6568:15:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33849,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33721,"src":"6801:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":33850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6813:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6801:13:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":33861,"nodeType":"Block","src":"6863:40:33","statements":[{"expression":{"baseExpression":{"id":33857,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33709,"src":"6884:5:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33859,"indexExpression":{"hexValue":"30","id":33858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6890:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6884:8:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33719,"id":33860,"nodeType":"Return","src":"6877:15:33"}]},"id":33862,"nodeType":"IfStatement","src":"6797:106:33","trueBody":{"id":33856,"nodeType":"Block","src":"6816:41:33","statements":[{"expression":{"baseExpression":{"id":33852,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33715,"src":"6837:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33854,"indexExpression":{"hexValue":"30","id":33853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6844:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6837:9:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33719,"id":33855,"nodeType":"Return","src":"6830:16:33"}]}},"id":33863,"nodeType":"IfStatement","src":"6564:339:33","trueBody":{"id":33848,"nodeType":"Block","src":"6585:206:33","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33833,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33767,"src":"6603:8:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":33834,"name":"proofLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33726,"src":"6615:8:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6603:20:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33840,"nodeType":"IfStatement","src":"6599:96:33","trueBody":{"id":33839,"nodeType":"Block","src":"6625:70:33","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":33836,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33531,"src":"6650:28:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":33837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6650:30:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33838,"nodeType":"RevertStatement","src":"6643:37:33"}]}},{"id":33847,"nodeType":"UncheckedBlock","src":"6708:73:33","statements":[{"expression":{"baseExpression":{"id":33841,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33751,"src":"6743:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33845,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33842,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33731,"src":"6750:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":33843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6764:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6750:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6743:23:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33719,"id":33846,"nodeType":"Return","src":"6736:30:33"}]}]}}]},"documentation":{"id":33706,"nodeType":"StructuredDocumentation","src":"3854:768:33","text":" @dev Returns the root of a tree reconstructed from `leaves` and sibling nodes in `proof`. The reconstruction\n proceeds by incrementally reconstructing all inner nodes by combining a leaf/inner node with either another\n leaf/inner node or a proof sibling node, depending on whether each `proofFlags` item is true or false\n respectively.\n CAUTION: Not all merkle trees admit multiproofs. To use multiproofs, it is sufficient to ensure that: 1) the tree\n is complete (but not necessarily perfect), 2) the leaves to be proven are in the opposite order they are in the\n tree (i.e., as seen from right to left starting at the deepest layer and continuing at the next layer).\n _Available since v4.7._"},"implemented":true,"kind":"function","modifiers":[],"name":"processMultiProof","nameLocation":"4636:17:33","parameters":{"id":33716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33709,"mutability":"mutable","name":"proof","nameLocation":"4680:5:33","nodeType":"VariableDeclaration","scope":33865,"src":"4663:22:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33707,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4663:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33708,"nodeType":"ArrayTypeName","src":"4663:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33712,"mutability":"mutable","name":"proofFlags","nameLocation":"4709:10:33","nodeType":"VariableDeclaration","scope":33865,"src":"4695:24:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":33710,"name":"bool","nodeType":"ElementaryTypeName","src":"4695:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33711,"nodeType":"ArrayTypeName","src":"4695:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":33715,"mutability":"mutable","name":"leaves","nameLocation":"4746:6:33","nodeType":"VariableDeclaration","scope":33865,"src":"4729:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4729:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33714,"nodeType":"ArrayTypeName","src":"4729:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4653:105:33"},"returnParameters":{"id":33719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33718,"mutability":"mutable","name":"merkleRoot","nameLocation":"4790:10:33","nodeType":"VariableDeclaration","scope":33865,"src":"4782:18:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4782:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4781:20:33"},"scope":34060,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34025,"nodeType":"FunctionDefinition","src":"7122:2294:33","nodes":[],"body":{"id":34024,"nodeType":"Block","src":"7309:2107:33","nodes":[],"statements":[{"assignments":[33881],"declarations":[{"constant":false,"id":33881,"mutability":"mutable","name":"leavesLen","nameLocation":"7701:9:33","nodeType":"VariableDeclaration","scope":34024,"src":"7693:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33880,"name":"uint256","nodeType":"ElementaryTypeName","src":"7693:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33884,"initialValue":{"expression":{"id":33882,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33875,"src":"7713:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7720:6:33","memberName":"length","nodeType":"MemberAccess","src":"7713:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7693:33:33"},{"assignments":[33886],"declarations":[{"constant":false,"id":33886,"mutability":"mutable","name":"proofLen","nameLocation":"7744:8:33","nodeType":"VariableDeclaration","scope":34024,"src":"7736:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33885,"name":"uint256","nodeType":"ElementaryTypeName","src":"7736:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33889,"initialValue":{"expression":{"id":33887,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33869,"src":"7755:5:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":33888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7761:6:33","memberName":"length","nodeType":"MemberAccess","src":"7755:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7736:31:33"},{"assignments":[33891],"declarations":[{"constant":false,"id":33891,"mutability":"mutable","name":"totalHashes","nameLocation":"7785:11:33","nodeType":"VariableDeclaration","scope":34024,"src":"7777:19:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33890,"name":"uint256","nodeType":"ElementaryTypeName","src":"7777:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33894,"initialValue":{"expression":{"id":33892,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33872,"src":"7799:10:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":33893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7810:6:33","memberName":"length","nodeType":"MemberAccess","src":"7799:17:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7777:39:33"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33895,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33881,"src":"7864:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":33896,"name":"proofLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33886,"src":"7876:8:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7864:20:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":33898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7887:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7864:24:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":33900,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33891,"src":"7892:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7864:39:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33906,"nodeType":"IfStatement","src":"7860:107:33","trueBody":{"id":33905,"nodeType":"Block","src":"7905:62:33","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":33902,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33531,"src":"7926:28:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":33903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7926:30:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33904,"nodeType":"RevertStatement","src":"7919:37:33"}]}},{"assignments":[33911],"declarations":[{"constant":false,"id":33911,"mutability":"mutable","name":"hashes","nameLocation":"8228:6:33","nodeType":"VariableDeclaration","scope":34024,"src":"8211:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8211:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33910,"nodeType":"ArrayTypeName","src":"8211:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":33917,"initialValue":{"arguments":[{"id":33915,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33891,"src":"8251:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8237:13:33","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":33912,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8241:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33913,"nodeType":"ArrayTypeName","src":"8241:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":33916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8237:26:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8211:52:33"},{"assignments":[33919],"declarations":[{"constant":false,"id":33919,"mutability":"mutable","name":"leafPos","nameLocation":"8281:7:33","nodeType":"VariableDeclaration","scope":34024,"src":"8273:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33918,"name":"uint256","nodeType":"ElementaryTypeName","src":"8273:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33921,"initialValue":{"hexValue":"30","id":33920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8291:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8273:19:33"},{"assignments":[33923],"declarations":[{"constant":false,"id":33923,"mutability":"mutable","name":"hashPos","nameLocation":"8310:7:33","nodeType":"VariableDeclaration","scope":34024,"src":"8302:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33922,"name":"uint256","nodeType":"ElementaryTypeName","src":"8302:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33925,"initialValue":{"hexValue":"30","id":33924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8320:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8302:19:33"},{"assignments":[33927],"declarations":[{"constant":false,"id":33927,"mutability":"mutable","name":"proofPos","nameLocation":"8339:8:33","nodeType":"VariableDeclaration","scope":34024,"src":"8331:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33926,"name":"uint256","nodeType":"ElementaryTypeName","src":"8331:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33929,"initialValue":{"hexValue":"30","id":33928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8350:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8331:20:33"},{"body":{"id":33988,"nodeType":"Block","src":"8769:292:33","statements":[{"assignments":[33941],"declarations":[{"constant":false,"id":33941,"mutability":"mutable","name":"a","nameLocation":"8791:1:33","nodeType":"VariableDeclaration","scope":33988,"src":"8783:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33940,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8783:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33954,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33942,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33919,"src":"8795:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33943,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33881,"src":"8805:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8795:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":33949,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33911,"src":"8837:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33952,"indexExpression":{"id":33951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8844:9:33","subExpression":{"id":33950,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33923,"src":"8844:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8837:17:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8795:59:33","trueExpression":{"baseExpression":{"id":33945,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33875,"src":"8817:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33948,"indexExpression":{"id":33947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8824:9:33","subExpression":{"id":33946,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33919,"src":"8824:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8817:17:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8783:71:33"},{"assignments":[33956],"declarations":[{"constant":false,"id":33956,"mutability":"mutable","name":"b","nameLocation":"8876:1:33","nodeType":"VariableDeclaration","scope":33988,"src":"8868:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33955,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8868:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33978,"initialValue":{"condition":{"baseExpression":{"id":33957,"name":"proofFlags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33872,"src":"8880:10:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":33959,"indexExpression":{"id":33958,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33931,"src":"8891:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8880:13:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":33973,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33869,"src":"8992:5:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":33976,"indexExpression":{"id":33975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8998:10:33","subExpression":{"id":33974,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33927,"src":"8998:8:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8992:17:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8880:129:33","trueExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33960,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33919,"src":"8913:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33961,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33881,"src":"8923:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8913:19:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":33967,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33911,"src":"8955:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33970,"indexExpression":{"id":33969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8962:9:33","subExpression":{"id":33968,"name":"hashPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33923,"src":"8962:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8955:17:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8913:59:33","trueExpression":{"baseExpression":{"id":33963,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33875,"src":"8935:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33966,"indexExpression":{"id":33965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8942:9:33","subExpression":{"id":33964,"name":"leafPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33919,"src":"8942:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8935:17:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":33972,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8912:61:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8868:141:33"},{"expression":{"id":33986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33979,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33911,"src":"9023:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":33981,"indexExpression":{"id":33980,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33931,"src":"9030:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9023:9:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":33983,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33941,"src":"9045:1:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":33984,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33956,"src":"9048:1:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33982,"name":"_hashPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34048,"src":"9035:9:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":33985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9035:15:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9023:27:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33987,"nodeType":"ExpressionStatement","src":"9023:27:33"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33934,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33931,"src":"8747:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":33935,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33891,"src":"8751:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8747:15:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33989,"initializationExpression":{"assignments":[33931],"declarations":[{"constant":false,"id":33931,"mutability":"mutable","name":"i","nameLocation":"8740:1:33","nodeType":"VariableDeclaration","scope":33989,"src":"8732:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33930,"name":"uint256","nodeType":"ElementaryTypeName","src":"8732:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33933,"initialValue":{"hexValue":"30","id":33932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8744:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8732:13:33"},"loopExpression":{"expression":{"id":33938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8764:3:33","subExpression":{"id":33937,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33931,"src":"8764:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33939,"nodeType":"ExpressionStatement","src":"8764:3:33"},"nodeType":"ForStatement","src":"8727:334:33"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33990,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33891,"src":"9075:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":33991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9089:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9075:15:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34009,"name":"leavesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33881,"src":"9308:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":34010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9320:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9308:13:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":34021,"nodeType":"Block","src":"9370:40:33","statements":[{"expression":{"baseExpression":{"id":34017,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33869,"src":"9391:5:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":34019,"indexExpression":{"hexValue":"30","id":34018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9397:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9391:8:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33879,"id":34020,"nodeType":"Return","src":"9384:15:33"}]},"id":34022,"nodeType":"IfStatement","src":"9304:106:33","trueBody":{"id":34016,"nodeType":"Block","src":"9323:41:33","statements":[{"expression":{"baseExpression":{"id":34012,"name":"leaves","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33875,"src":"9344:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":34014,"indexExpression":{"hexValue":"30","id":34013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9351:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9344:9:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33879,"id":34015,"nodeType":"Return","src":"9337:16:33"}]}},"id":34023,"nodeType":"IfStatement","src":"9071:339:33","trueBody":{"id":34008,"nodeType":"Block","src":"9092:206:33","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33993,"name":"proofPos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33927,"src":"9110:8:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":33994,"name":"proofLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33886,"src":"9122:8:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9110:20:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":34000,"nodeType":"IfStatement","src":"9106:96:33","trueBody":{"id":33999,"nodeType":"Block","src":"9132:70:33","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":33996,"name":"MerkleProofInvalidMultiproof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33531,"src":"9157:28:33","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":33997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9157:30:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33998,"nodeType":"RevertStatement","src":"9150:37:33"}]}},{"id":34007,"nodeType":"UncheckedBlock","src":"9215:73:33","statements":[{"expression":{"baseExpression":{"id":34001,"name":"hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33911,"src":"9250:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":34005,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34002,"name":"totalHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33891,"src":"9257:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":34003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9271:1:33","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9257:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9250:23:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":33879,"id":34006,"nodeType":"Return","src":"9243:30:33"}]}]}}]},"documentation":{"id":33866,"nodeType":"StructuredDocumentation","src":"6915:202:33","text":" @dev Calldata version of {processMultiProof}.\n CAUTION: Not all merkle trees admit multiproofs. See {processMultiProof} for details.\n _Available since v4.7._"},"implemented":true,"kind":"function","modifiers":[],"name":"processMultiProofCalldata","nameLocation":"7131:25:33","parameters":{"id":33876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33869,"mutability":"mutable","name":"proof","nameLocation":"7185:5:33","nodeType":"VariableDeclaration","scope":34025,"src":"7166:24:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33867,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7166:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33868,"nodeType":"ArrayTypeName","src":"7166:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":33872,"mutability":"mutable","name":"proofFlags","nameLocation":"7216:10:33","nodeType":"VariableDeclaration","scope":34025,"src":"7200:26:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":33870,"name":"bool","nodeType":"ElementaryTypeName","src":"7200:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33871,"nodeType":"ArrayTypeName","src":"7200:6:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":33875,"mutability":"mutable","name":"leaves","nameLocation":"7253:6:33","nodeType":"VariableDeclaration","scope":34025,"src":"7236:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":33873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7236:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":33874,"nodeType":"ArrayTypeName","src":"7236:9:33","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7156:109:33"},"returnParameters":{"id":33879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33878,"mutability":"mutable","name":"merkleRoot","nameLocation":"7297:10:33","nodeType":"VariableDeclaration","scope":34025,"src":"7289:18:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33877,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7289:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7288:20:33"},"scope":34060,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34048,"nodeType":"FunctionDefinition","src":"9422:147:33","nodes":[],"body":{"id":34047,"nodeType":"Block","src":"9494:75:33","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":34036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34034,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34027,"src":"9511:1:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":34035,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34029,"src":"9515:1:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9511:5:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":34042,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34029,"src":"9557:1:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":34043,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34027,"src":"9560:1:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":34041,"name":"_efficientHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34059,"src":"9542:14:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":34044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9542:20:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":34045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9511:51:33","trueExpression":{"arguments":[{"id":34038,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34027,"src":"9534:1:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":34039,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34029,"src":"9537:1:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":34037,"name":"_efficientHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34059,"src":"9519:14:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":34040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9519:20:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":34033,"id":34046,"nodeType":"Return","src":"9504:58:33"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_hashPair","nameLocation":"9431:9:33","parameters":{"id":34030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34027,"mutability":"mutable","name":"a","nameLocation":"9449:1:33","nodeType":"VariableDeclaration","scope":34048,"src":"9441:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34026,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9441:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":34029,"mutability":"mutable","name":"b","nameLocation":"9460:1:33","nodeType":"VariableDeclaration","scope":34048,"src":"9452:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34028,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9452:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9440:22:33"},"returnParameters":{"id":34033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34032,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34048,"src":"9485:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34031,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9485:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9484:9:33"},"scope":34060,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":34059,"nodeType":"FunctionDefinition","src":"9575:261:33","nodes":[],"body":{"id":34058,"nodeType":"Block","src":"9658:178:33","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"9720:110:33","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9741:4:33","type":"","value":"0x00"},{"name":"a","nodeType":"YulIdentifier","src":"9747:1:33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9734:6:33"},"nodeType":"YulFunctionCall","src":"9734:15:33"},"nodeType":"YulExpressionStatement","src":"9734:15:33"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9769:4:33","type":"","value":"0x20"},{"name":"b","nodeType":"YulIdentifier","src":"9775:1:33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9762:6:33"},"nodeType":"YulFunctionCall","src":"9762:15:33"},"nodeType":"YulExpressionStatement","src":"9762:15:33"},{"nodeType":"YulAssignment","src":"9790:30:33","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9809:4:33","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"9815:4:33","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"9799:9:33"},"nodeType":"YulFunctionCall","src":"9799:21:33"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"9790:5:33"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":34050,"isOffset":false,"isSlot":false,"src":"9747:1:33","valueSize":1},{"declaration":34052,"isOffset":false,"isSlot":false,"src":"9775:1:33","valueSize":1},{"declaration":34055,"isOffset":false,"isSlot":false,"src":"9790:5:33","valueSize":1}],"id":34057,"nodeType":"InlineAssembly","src":"9711:119:33"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_efficientHash","nameLocation":"9584:14:33","parameters":{"id":34053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34050,"mutability":"mutable","name":"a","nameLocation":"9607:1:33","nodeType":"VariableDeclaration","scope":34059,"src":"9599:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9599:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":34052,"mutability":"mutable","name":"b","nameLocation":"9618:1:33","nodeType":"VariableDeclaration","scope":34059,"src":"9610:9:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34051,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9610:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9598:22:33"},"returnParameters":{"id":34056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34055,"mutability":"mutable","name":"value","nameLocation":"9651:5:33","nodeType":"VariableDeclaration","scope":34059,"src":"9643:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34054,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9643:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9642:15:33"},"scope":34060,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"MerkleProof","contractDependencies":[],"contractKind":"library","documentation":{"id":33528,"nodeType":"StructuredDocumentation","src":"144:658:33","text":" @dev These functions deal with verification of Merkle Tree proofs.\n The tree and the proofs can be generated using our\n https://github.com/OpenZeppelin/merkle-tree[JavaScript library].\n You will find a quickstart guide in the readme.\n WARNING: You should avoid using leaf values that are 64 bytes long prior to\n hashing, or use a hash function other than keccak256 for hashing leaves.\n This is because the concatenation of a sorted pair of internal nodes in\n the merkle tree could be reinterpreted as a leaf value.\n OpenZeppelin's JavaScript library generates merkle trees that are safe\n against this attack out of the box."},"fullyImplemented":true,"linearizedBaseContracts":[34060],"name":"MerkleProof","nameLocation":"811:11:33","scope":34061,"usedErrors":[33531]}],"license":"MIT"},"id":33} \ No newline at end of file diff --git a/.out/MerkleTreeHelper.sol/MerkleTreeHelper.json b/.out/MerkleTreeHelper.sol/MerkleTreeHelper.json index 9c54fd198..d872e984b 100644 --- a/.out/MerkleTreeHelper.sol/MerkleTreeHelper.json +++ b/.out/MerkleTreeHelper.sol/MerkleTreeHelper.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220352bf8f47ecdc21ffdb1bf78866b57bd7e89e86ccaa4fc66fff78350dcd95c7a64736f6c63430008130033","sourceMap":"113:905:84:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220352bf8f47ecdc21ffdb1bf78866b57bd7e89e86ccaa4fc66fff78350dcd95c7a64736f6c63430008130033","sourceMap":"113:905:84:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/MerkleTreeHelper.sol\":\"MerkleTreeHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/murky/src/Merkle.sol\":{\"keccak256\":\"0x70e50a6d61ea806b5ba0c8ff76fadfa3e90e6dfecb6900b1c0492eac0309660f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6cc1b02a6d11e029fe24d5d638ad891a3a2552aaef9d3a0918274b1496fcd74\",\"dweb:/ipfs/QmWsU7yXsyKATkfYb8g1jbPTbgGsCg9rk7bJ3ypCYxQixB\"]},\"lib/murky/src/common/MurkyBase.sol\":{\"keccak256\":\"0x5287741b2b215c9a11cc8482b419abde0625dfc3949d539c72ee498108842894\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://259e803b0811e404bba09237bce4ef42f2ff27dacaca770d1eb7c1afddbf762b\",\"dweb:/ipfs/QmWfbsHa1siBxDEqFmbnzUuZqyitFZHmDXo2vc4cVn4uJe\"]},\"test/helpers/MerkleTreeHelper.sol\":{\"keccak256\":\"0x6a69ba6eef506f0ef6b8ce5e97b517299f4212fe670cf7faf43040b4182e4017\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ab8c8c0357358c5daa50f80ea76b70c4d8faf238fb5c00f97cb74b4b853c4973\",\"dweb:/ipfs/QmdMxdGRMAZ9Haw3SSXeXMsAQ5KSpt76KvRd1HnfczQXAL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/MerkleTreeHelper.sol":"MerkleTreeHelper"},"libraries":{},"viaIR":true},"sources":{"lib/murky/src/Merkle.sol":{"keccak256":"0x70e50a6d61ea806b5ba0c8ff76fadfa3e90e6dfecb6900b1c0492eac0309660f","urls":["bzz-raw://b6cc1b02a6d11e029fe24d5d638ad891a3a2552aaef9d3a0918274b1496fcd74","dweb:/ipfs/QmWsU7yXsyKATkfYb8g1jbPTbgGsCg9rk7bJ3ypCYxQixB"],"license":"MIT"},"lib/murky/src/common/MurkyBase.sol":{"keccak256":"0x5287741b2b215c9a11cc8482b419abde0625dfc3949d539c72ee498108842894","urls":["bzz-raw://259e803b0811e404bba09237bce4ef42f2ff27dacaca770d1eb7c1afddbf762b","dweb:/ipfs/QmWfbsHa1siBxDEqFmbnzUuZqyitFZHmDXo2vc4cVn4uJe"],"license":"MIT"},"test/helpers/MerkleTreeHelper.sol":{"keccak256":"0x6a69ba6eef506f0ef6b8ce5e97b517299f4212fe670cf7faf43040b4182e4017","urls":["bzz-raw://ab8c8c0357358c5daa50f80ea76b70c4d8faf238fb5c00f97cb74b4b853c4973","dweb:/ipfs/QmdMxdGRMAZ9Haw3SSXeXMsAQ5KSpt76KvRd1HnfczQXAL"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/MerkleTreeHelper.sol","id":54302,"exportedSymbols":{"Merkle":[30565],"MerkleTreeHelper":[54301]},"nodeType":"SourceUnit","src":"46:973:84","nodes":[{"id":54157,"nodeType":"PragmaDirective","src":"46:23:84","nodes":[],"literals":["solidity","0.8",".19"]},{"id":54159,"nodeType":"ImportDirective","src":"71:40:84","nodes":[],"absolutePath":"lib/murky/src/Merkle.sol","file":"murky/Merkle.sol","nameLocation":"-1:-1:-1","scope":54302,"sourceUnit":30566,"symbolAliases":[{"foreign":{"id":54158,"name":"Merkle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30565,"src":"79:6:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":54301,"nodeType":"ContractDefinition","src":"113:905:84","nodes":[{"id":54300,"nodeType":"FunctionDefinition","src":"144:872:84","nodes":[],"body":{"id":54299,"nodeType":"Block","src":"303:713:84","nodes":[],"statements":[{"assignments":[54176],"declarations":[{"constant":false,"id":54176,"mutability":"mutable","name":"merkleTree","nameLocation":"320:10:84","nodeType":"VariableDeclaration","scope":54299,"src":"313:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"},"typeName":{"id":54175,"nodeType":"UserDefinedTypeName","pathNode":{"id":54174,"name":"Merkle","nameLocations":["313:6:84"],"nodeType":"IdentifierPath","referencedDeclaration":30565,"src":"313:6:84"},"referencedDeclaration":30565,"src":"313:6:84","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"visibility":"internal"}],"id":54181,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"333:10:84","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Merkle_$30565_$","typeString":"function () returns (contract Merkle)"},"typeName":{"id":54178,"nodeType":"UserDefinedTypeName","pathNode":{"id":54177,"name":"Merkle","nameLocations":["337:6:84"],"nodeType":"IdentifierPath","referencedDeclaration":30565,"src":"337:6:84"},"referencedDeclaration":30565,"src":"337:6:84","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}}},"id":54180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"333:12:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"nodeType":"VariableDeclarationStatement","src":"313:32:84"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54182,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54162,"src":"360:5:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"366:6:84","memberName":"length","nodeType":"MemberAccess","src":"360:12:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":54184,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54165,"src":"376:6:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"383:6:84","memberName":"length","nodeType":"MemberAccess","src":"376:13:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"360:29:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54192,"nodeType":"IfStatement","src":"356:93:84","trueBody":{"id":54191,"nodeType":"Block","src":"391:58:84","statements":[{"expression":{"arguments":[{"hexValue":"646966666572656e74206172726179206c656e67746873","id":54188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"412:25:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b282674a034e06933770e694db3cb4900413d26d110754c0a1dacbd8e888660","typeString":"literal_string \"different array lengths\""},"value":"different array lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7b282674a034e06933770e694db3cb4900413d26d110754c0a1dacbd8e888660","typeString":"literal_string \"different array lengths\""}],"id":54187,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"405:6:84","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":54189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"405:33:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54190,"nodeType":"ExpressionStatement","src":"405:33:84"}]}},{"assignments":[54194],"declarations":[{"constant":false,"id":54194,"mutability":"mutable","name":"len","nameLocation":"466:3:84","nodeType":"VariableDeclaration","scope":54299,"src":"458:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54193,"name":"uint256","nodeType":"ElementaryTypeName","src":"458:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54197,"initialValue":{"expression":{"id":54195,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54162,"src":"472:5:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"478:6:84","memberName":"length","nodeType":"MemberAccess","src":"472:12:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"458:26:84"},{"assignments":[54199],"declarations":[{"constant":false,"id":54199,"mutability":"mutable","name":"root","nameLocation":"503:4:84","nodeType":"VariableDeclaration","scope":54299,"src":"495:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"495:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":54200,"nodeType":"VariableDeclarationStatement","src":"495:12:84"},{"assignments":[54206],"declarations":[{"constant":false,"id":54206,"mutability":"mutable","name":"proofs","nameLocation":"536:6:84","nodeType":"VariableDeclaration","scope":54299,"src":"517:25:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":54203,"name":"bytes32","nodeType":"ElementaryTypeName","src":"517:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54204,"nodeType":"ArrayTypeName","src":"517:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":54205,"nodeType":"ArrayTypeName","src":"517:11:84","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"id":54213,"initialValue":{"arguments":[{"id":54211,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54194,"src":"561:3:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"545:15:84","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory[] memory)"},"typeName":{"baseType":{"baseType":{"id":54207,"name":"bytes32","nodeType":"ElementaryTypeName","src":"549:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54208,"nodeType":"ArrayTypeName","src":"549:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":54209,"nodeType":"ArrayTypeName","src":"549:11:84","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}}},"id":54212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"545:20:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"517:48:84"},{"assignments":[54218],"declarations":[{"constant":false,"id":54218,"mutability":"mutable","name":"data","nameLocation":"592:4:84","nodeType":"VariableDeclaration","scope":54299,"src":"575:21:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":54216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"575:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54217,"nodeType":"ArrayTypeName","src":"575:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":54224,"initialValue":{"arguments":[{"id":54222,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54194,"src":"613:3:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"599:13:84","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":54219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"603:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54220,"nodeType":"ArrayTypeName","src":"603:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":54223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"599:18:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"575:42:84"},{"body":{"id":54257,"nodeType":"Block","src":"661:102:84","statements":[{"expression":{"id":54255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54235,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54218,"src":"675:4:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":54237,"indexExpression":{"id":54236,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54226,"src":"680:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"675:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"baseExpression":{"id":54245,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54162,"src":"729:5:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54247,"indexExpression":{"id":54246,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54226,"src":"735:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"729:8:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":54248,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54165,"src":"739:6:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54250,"indexExpression":{"id":54249,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54226,"src":"746:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"739:9:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54243,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"718:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"722:6:84","memberName":"encode","nodeType":"MemberAccess","src":"718:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"718:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54242,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"708:9:84","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"708:42:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":54240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"695:5:84","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":54239,"name":"bytes","nodeType":"ElementaryTypeName","src":"695:5:84","typeDescriptions":{}}},"id":54241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"701:6:84","memberName":"concat","nodeType":"MemberAccess","src":"695:12:84","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"695:56:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54238,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"685:9:84","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"685:67:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"675:77:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54256,"nodeType":"ExpressionStatement","src":"675:77:84"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54226,"src":"647:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":54230,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54194,"src":"651:3:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"647:7:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54258,"initializationExpression":{"assignments":[54226],"declarations":[{"constant":false,"id":54226,"mutability":"mutable","name":"i","nameLocation":"640:1:84","nodeType":"VariableDeclaration","scope":54258,"src":"632:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54225,"name":"uint256","nodeType":"ElementaryTypeName","src":"632:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54228,"initialValue":{"hexValue":"30","id":54227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"644:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"632:13:84"},"loopExpression":{"expression":{"id":54233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"656:3:84","subExpression":{"id":54232,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54226,"src":"656:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54234,"nodeType":"ExpressionStatement","src":"656:3:84"},"nodeType":"ForStatement","src":"627:136:84"},{"expression":{"id":54264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54259,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54199,"src":"773:4:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54262,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54218,"src":"799:4:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"id":54260,"name":"merkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54176,"src":"780:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"id":54261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"791:7:84","memberName":"getRoot","nodeType":"MemberAccess","referencedDeclaration":30661,"src":"780:18:84","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory) pure external returns (bytes32)"}},"id":54263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"780:24:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"773:31:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54265,"nodeType":"ExpressionStatement","src":"773:31:84"},{"body":{"id":54293,"nodeType":"Block","src":"869:109:84","statements":[{"assignments":[54280],"declarations":[{"constant":false,"id":54280,"mutability":"mutable","name":"proof","nameLocation":"900:5:84","nodeType":"VariableDeclaration","scope":54293,"src":"883:22:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":54278,"name":"bytes32","nodeType":"ElementaryTypeName","src":"883:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54279,"nodeType":"ArrayTypeName","src":"883:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":54286,"initialValue":{"arguments":[{"id":54283,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54218,"src":"928:4:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":54284,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54267,"src":"934:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54281,"name":"merkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54176,"src":"908:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"id":54282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"919:8:84","memberName":"getProof","nodeType":"MemberAccess","referencedDeclaration":30766,"src":"908:19:84","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,uint256) pure external returns (bytes32[] memory)"}},"id":54285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"908:28:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"883:53:84"},{"expression":{"id":54291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54287,"name":"proofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54206,"src":"950:6:84","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}},"id":54289,"indexExpression":{"id":54288,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54267,"src":"957:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"950:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54290,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54280,"src":"962:5:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"950:17:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":54292,"nodeType":"ExpressionStatement","src":"950:17:84"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54270,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54267,"src":"855:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":54271,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54194,"src":"859:3:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"855:7:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54294,"initializationExpression":{"assignments":[54267],"declarations":[{"constant":false,"id":54267,"mutability":"mutable","name":"i","nameLocation":"848:1:84","nodeType":"VariableDeclaration","scope":54294,"src":"840:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54266,"name":"uint256","nodeType":"ElementaryTypeName","src":"840:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54269,"initialValue":{"hexValue":"30","id":54268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"852:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"840:13:84"},"loopExpression":{"expression":{"id":54274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"864:3:84","subExpression":{"id":54273,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54267,"src":"864:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54275,"nodeType":"ExpressionStatement","src":"864:3:84"},"nodeType":"ForStatement","src":"835:143:84"},{"expression":{"components":[{"id":54295,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54199,"src":"996:4:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":54296,"name":"proofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54206,"src":"1002:6:84","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}}],"id":54297,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"995:14:84","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(bytes32,bytes32[] memory[] memory)"}},"functionReturnParameters":54173,"id":54298,"nodeType":"Return","src":"988:21:84"}]},"implemented":true,"kind":"function","modifiers":[],"name":"createMerkleProofsForValidators","nameLocation":"153:31:84","parameters":{"id":54166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54162,"mutability":"mutable","name":"addrs","nameLocation":"211:5:84","nodeType":"VariableDeclaration","scope":54300,"src":"194:22:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54160,"name":"address","nodeType":"ElementaryTypeName","src":"194:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54161,"nodeType":"ArrayTypeName","src":"194:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":54165,"mutability":"mutable","name":"weight","nameLocation":"243:6:84","nodeType":"VariableDeclaration","scope":54300,"src":"226:23:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54163,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54164,"nodeType":"ArrayTypeName","src":"226:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"184:71:84"},"returnParameters":{"id":54173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54168,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54300,"src":"274:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":54167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"274:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":54172,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54300,"src":"283:18:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":54169,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54170,"nodeType":"ArrayTypeName","src":"283:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":54171,"nodeType":"ArrayTypeName","src":"283:11:84","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"src":"273:29:84"},"scope":54301,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"MerkleTreeHelper","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[54301],"name":"MerkleTreeHelper","nameLocation":"121:16:84","scope":54302,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":84} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220352bf8f47ecdc21ffdb1bf78866b57bd7e89e86ccaa4fc66fff78350dcd95c7a64736f6c63430008130033","sourceMap":"113:905:92:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220352bf8f47ecdc21ffdb1bf78866b57bd7e89e86ccaa4fc66fff78350dcd95c7a64736f6c63430008130033","sourceMap":"113:905:92:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/MerkleTreeHelper.sol\":\"MerkleTreeHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/murky/src/Merkle.sol\":{\"keccak256\":\"0x70e50a6d61ea806b5ba0c8ff76fadfa3e90e6dfecb6900b1c0492eac0309660f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6cc1b02a6d11e029fe24d5d638ad891a3a2552aaef9d3a0918274b1496fcd74\",\"dweb:/ipfs/QmWsU7yXsyKATkfYb8g1jbPTbgGsCg9rk7bJ3ypCYxQixB\"]},\"lib/murky/src/common/MurkyBase.sol\":{\"keccak256\":\"0x5287741b2b215c9a11cc8482b419abde0625dfc3949d539c72ee498108842894\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://259e803b0811e404bba09237bce4ef42f2ff27dacaca770d1eb7c1afddbf762b\",\"dweb:/ipfs/QmWfbsHa1siBxDEqFmbnzUuZqyitFZHmDXo2vc4cVn4uJe\"]},\"test/helpers/MerkleTreeHelper.sol\":{\"keccak256\":\"0x6a69ba6eef506f0ef6b8ce5e97b517299f4212fe670cf7faf43040b4182e4017\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ab8c8c0357358c5daa50f80ea76b70c4d8faf238fb5c00f97cb74b4b853c4973\",\"dweb:/ipfs/QmdMxdGRMAZ9Haw3SSXeXMsAQ5KSpt76KvRd1HnfczQXAL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/MerkleTreeHelper.sol":"MerkleTreeHelper"},"libraries":{},"viaIR":true},"sources":{"lib/murky/src/Merkle.sol":{"keccak256":"0x70e50a6d61ea806b5ba0c8ff76fadfa3e90e6dfecb6900b1c0492eac0309660f","urls":["bzz-raw://b6cc1b02a6d11e029fe24d5d638ad891a3a2552aaef9d3a0918274b1496fcd74","dweb:/ipfs/QmWsU7yXsyKATkfYb8g1jbPTbgGsCg9rk7bJ3ypCYxQixB"],"license":"MIT"},"lib/murky/src/common/MurkyBase.sol":{"keccak256":"0x5287741b2b215c9a11cc8482b419abde0625dfc3949d539c72ee498108842894","urls":["bzz-raw://259e803b0811e404bba09237bce4ef42f2ff27dacaca770d1eb7c1afddbf762b","dweb:/ipfs/QmWfbsHa1siBxDEqFmbnzUuZqyitFZHmDXo2vc4cVn4uJe"],"license":"MIT"},"test/helpers/MerkleTreeHelper.sol":{"keccak256":"0x6a69ba6eef506f0ef6b8ce5e97b517299f4212fe670cf7faf43040b4182e4017","urls":["bzz-raw://ab8c8c0357358c5daa50f80ea76b70c4d8faf238fb5c00f97cb74b4b853c4973","dweb:/ipfs/QmdMxdGRMAZ9Haw3SSXeXMsAQ5KSpt76KvRd1HnfczQXAL"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/MerkleTreeHelper.sol","id":55698,"exportedSymbols":{"Merkle":[30565],"MerkleTreeHelper":[55697]},"nodeType":"SourceUnit","src":"46:973:92","nodes":[{"id":55553,"nodeType":"PragmaDirective","src":"46:23:92","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55555,"nodeType":"ImportDirective","src":"71:40:92","nodes":[],"absolutePath":"lib/murky/src/Merkle.sol","file":"murky/Merkle.sol","nameLocation":"-1:-1:-1","scope":55698,"sourceUnit":30566,"symbolAliases":[{"foreign":{"id":55554,"name":"Merkle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30565,"src":"79:6:92","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55697,"nodeType":"ContractDefinition","src":"113:905:92","nodes":[{"id":55696,"nodeType":"FunctionDefinition","src":"144:872:92","nodes":[],"body":{"id":55695,"nodeType":"Block","src":"303:713:92","nodes":[],"statements":[{"assignments":[55572],"declarations":[{"constant":false,"id":55572,"mutability":"mutable","name":"merkleTree","nameLocation":"320:10:92","nodeType":"VariableDeclaration","scope":55695,"src":"313:17:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"},"typeName":{"id":55571,"nodeType":"UserDefinedTypeName","pathNode":{"id":55570,"name":"Merkle","nameLocations":["313:6:92"],"nodeType":"IdentifierPath","referencedDeclaration":30565,"src":"313:6:92"},"referencedDeclaration":30565,"src":"313:6:92","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"visibility":"internal"}],"id":55577,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"333:10:92","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Merkle_$30565_$","typeString":"function () returns (contract Merkle)"},"typeName":{"id":55574,"nodeType":"UserDefinedTypeName","pathNode":{"id":55573,"name":"Merkle","nameLocations":["337:6:92"],"nodeType":"IdentifierPath","referencedDeclaration":30565,"src":"337:6:92"},"referencedDeclaration":30565,"src":"337:6:92","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}}},"id":55576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"333:12:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"nodeType":"VariableDeclarationStatement","src":"313:32:92"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55578,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55558,"src":"360:5:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"366:6:92","memberName":"length","nodeType":"MemberAccess","src":"360:12:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":55580,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55561,"src":"376:6:92","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"383:6:92","memberName":"length","nodeType":"MemberAccess","src":"376:13:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"360:29:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55588,"nodeType":"IfStatement","src":"356:93:92","trueBody":{"id":55587,"nodeType":"Block","src":"391:58:92","statements":[{"expression":{"arguments":[{"hexValue":"646966666572656e74206172726179206c656e67746873","id":55584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"412:25:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b282674a034e06933770e694db3cb4900413d26d110754c0a1dacbd8e888660","typeString":"literal_string \"different array lengths\""},"value":"different array lengths"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7b282674a034e06933770e694db3cb4900413d26d110754c0a1dacbd8e888660","typeString":"literal_string \"different array lengths\""}],"id":55583,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"405:6:92","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":55585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"405:33:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55586,"nodeType":"ExpressionStatement","src":"405:33:92"}]}},{"assignments":[55590],"declarations":[{"constant":false,"id":55590,"mutability":"mutable","name":"len","nameLocation":"466:3:92","nodeType":"VariableDeclaration","scope":55695,"src":"458:11:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55589,"name":"uint256","nodeType":"ElementaryTypeName","src":"458:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55593,"initialValue":{"expression":{"id":55591,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55558,"src":"472:5:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"478:6:92","memberName":"length","nodeType":"MemberAccess","src":"472:12:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"458:26:92"},{"assignments":[55595],"declarations":[{"constant":false,"id":55595,"mutability":"mutable","name":"root","nameLocation":"503:4:92","nodeType":"VariableDeclaration","scope":55695,"src":"495:12:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55594,"name":"bytes32","nodeType":"ElementaryTypeName","src":"495:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55596,"nodeType":"VariableDeclarationStatement","src":"495:12:92"},{"assignments":[55602],"declarations":[{"constant":false,"id":55602,"mutability":"mutable","name":"proofs","nameLocation":"536:6:92","nodeType":"VariableDeclaration","scope":55695,"src":"517:25:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":55599,"name":"bytes32","nodeType":"ElementaryTypeName","src":"517:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55600,"nodeType":"ArrayTypeName","src":"517:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":55601,"nodeType":"ArrayTypeName","src":"517:11:92","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"id":55609,"initialValue":{"arguments":[{"id":55607,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55590,"src":"561:3:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"545:15:92","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory[] memory)"},"typeName":{"baseType":{"baseType":{"id":55603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"549:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55604,"nodeType":"ArrayTypeName","src":"549:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":55605,"nodeType":"ArrayTypeName","src":"549:11:92","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}}},"id":55608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"545:20:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"517:48:92"},{"assignments":[55614],"declarations":[{"constant":false,"id":55614,"mutability":"mutable","name":"data","nameLocation":"592:4:92","nodeType":"VariableDeclaration","scope":55695,"src":"575:21:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":55612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"575:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55613,"nodeType":"ArrayTypeName","src":"575:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":55620,"initialValue":{"arguments":[{"id":55618,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55590,"src":"613:3:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"599:13:92","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":55615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"603:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55616,"nodeType":"ArrayTypeName","src":"603:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":55619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"599:18:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"575:42:92"},{"body":{"id":55653,"nodeType":"Block","src":"661:102:92","statements":[{"expression":{"id":55651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55631,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55614,"src":"675:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":55633,"indexExpression":{"id":55632,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55622,"src":"680:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"675:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"baseExpression":{"id":55641,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55558,"src":"729:5:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55643,"indexExpression":{"id":55642,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55622,"src":"735:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"729:8:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":55644,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55561,"src":"739:6:92","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55646,"indexExpression":{"id":55645,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55622,"src":"746:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"739:9:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55639,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"718:3:92","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"722:6:92","memberName":"encode","nodeType":"MemberAccess","src":"718:10:92","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"718:31:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55638,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"708:9:92","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"708:42:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":55636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"695:5:92","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":55635,"name":"bytes","nodeType":"ElementaryTypeName","src":"695:5:92","typeDescriptions":{}}},"id":55637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"701:6:92","memberName":"concat","nodeType":"MemberAccess","src":"695:12:92","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"695:56:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55634,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"685:9:92","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"685:67:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"675:77:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55652,"nodeType":"ExpressionStatement","src":"675:77:92"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55625,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55622,"src":"647:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55626,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55590,"src":"651:3:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"647:7:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55654,"initializationExpression":{"assignments":[55622],"declarations":[{"constant":false,"id":55622,"mutability":"mutable","name":"i","nameLocation":"640:1:92","nodeType":"VariableDeclaration","scope":55654,"src":"632:9:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55621,"name":"uint256","nodeType":"ElementaryTypeName","src":"632:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55624,"initialValue":{"hexValue":"30","id":55623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"644:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"632:13:92"},"loopExpression":{"expression":{"id":55629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"656:3:92","subExpression":{"id":55628,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55622,"src":"656:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55630,"nodeType":"ExpressionStatement","src":"656:3:92"},"nodeType":"ForStatement","src":"627:136:92"},{"expression":{"id":55660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55655,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55595,"src":"773:4:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55658,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55614,"src":"799:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"id":55656,"name":"merkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55572,"src":"780:10:92","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"id":55657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"791:7:92","memberName":"getRoot","nodeType":"MemberAccess","referencedDeclaration":30661,"src":"780:18:92","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes32[] memory) pure external returns (bytes32)"}},"id":55659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"780:24:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"773:31:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55661,"nodeType":"ExpressionStatement","src":"773:31:92"},{"body":{"id":55689,"nodeType":"Block","src":"869:109:92","statements":[{"assignments":[55676],"declarations":[{"constant":false,"id":55676,"mutability":"mutable","name":"proof","nameLocation":"900:5:92","nodeType":"VariableDeclaration","scope":55689,"src":"883:22:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":55674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"883:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55675,"nodeType":"ArrayTypeName","src":"883:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":55682,"initialValue":{"arguments":[{"id":55679,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55614,"src":"928:4:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":55680,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55663,"src":"934:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55677,"name":"merkleTree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55572,"src":"908:10:92","typeDescriptions":{"typeIdentifier":"t_contract$_Merkle_$30565","typeString":"contract Merkle"}},"id":55678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"919:8:92","memberName":"getProof","nodeType":"MemberAccess","referencedDeclaration":30766,"src":"908:19:92","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,uint256) pure external returns (bytes32[] memory)"}},"id":55681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"908:28:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"883:53:92"},{"expression":{"id":55687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55683,"name":"proofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55602,"src":"950:6:92","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}},"id":55685,"indexExpression":{"id":55684,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55663,"src":"957:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"950:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55686,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55676,"src":"962:5:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"950:17:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":55688,"nodeType":"ExpressionStatement","src":"950:17:92"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55666,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55663,"src":"855:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55667,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55590,"src":"859:3:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"855:7:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55690,"initializationExpression":{"assignments":[55663],"declarations":[{"constant":false,"id":55663,"mutability":"mutable","name":"i","nameLocation":"848:1:92","nodeType":"VariableDeclaration","scope":55690,"src":"840:9:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55662,"name":"uint256","nodeType":"ElementaryTypeName","src":"840:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55665,"initialValue":{"hexValue":"30","id":55664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"852:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"840:13:92"},"loopExpression":{"expression":{"id":55670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"864:3:92","subExpression":{"id":55669,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55663,"src":"864:1:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55671,"nodeType":"ExpressionStatement","src":"864:3:92"},"nodeType":"ForStatement","src":"835:143:92"},{"expression":{"components":[{"id":55691,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55595,"src":"996:4:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":55692,"name":"proofs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55602,"src":"1002:6:92","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[] memory[] memory"}}],"id":55693,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"995:14:92","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(bytes32,bytes32[] memory[] memory)"}},"functionReturnParameters":55569,"id":55694,"nodeType":"Return","src":"988:21:92"}]},"implemented":true,"kind":"function","modifiers":[],"name":"createMerkleProofsForValidators","nameLocation":"153:31:92","parameters":{"id":55562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55558,"mutability":"mutable","name":"addrs","nameLocation":"211:5:92","nodeType":"VariableDeclaration","scope":55696,"src":"194:22:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55556,"name":"address","nodeType":"ElementaryTypeName","src":"194:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55557,"nodeType":"ArrayTypeName","src":"194:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":55561,"mutability":"mutable","name":"weight","nameLocation":"243:6:92","nodeType":"VariableDeclaration","scope":55696,"src":"226:23:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55559,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55560,"nodeType":"ArrayTypeName","src":"226:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"184:71:92"},"returnParameters":{"id":55569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55696,"src":"274:7:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55563,"name":"bytes32","nodeType":"ElementaryTypeName","src":"274:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":55568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55696,"src":"283:18:92","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_memory_ptr_$dyn_memory_ptr","typeString":"bytes32[][]"},"typeName":{"baseType":{"baseType":{"id":55565,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283:7:92","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55566,"nodeType":"ArrayTypeName","src":"283:9:92","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"id":55567,"nodeType":"ArrayTypeName","src":"283:11:92","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_bytes32_$dyn_storage_$dyn_storage_ptr","typeString":"bytes32[][]"}},"visibility":"internal"}],"src":"273:29:92"},"scope":55697,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"MerkleTreeHelper","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[55697],"name":"MerkleTreeHelper","nameLocation":"121:16:92","scope":55698,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":92} \ No newline at end of file diff --git a/.out/NumberContract.sol/NumberContractFacetEight.json b/.out/NumberContract.sol/NumberContractFacetEight.json deleted file mode 100644 index 3d5dfb0da..000000000 --- a/.out/NumberContract.sol/NumberContractFacetEight.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getNum","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608080604052346014576079908161001a8239f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600860209252f35b5080fdfea2646970667358221220ee2924db182038b56cb69cb45570bd2531da8aa8e530fbd11778253924b25b4d64736f6c63430008130033","sourceMap":"188:115:85:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600860209252f35b5080fdfea2646970667358221220ee2924db182038b56cb69cb45570bd2531da8aa8e530fbd11778253924b25b4d64736f6c63430008130033","sourceMap":"188:115:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;293:1;188:115;;;;;;;","linkReferences":{}},"methodIdentifiers":{"getNum()":"67e0badb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getNum\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/NumberContract.sol\":\"NumberContractFacetEight\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"test/helpers/NumberContract.sol\":{\"keccak256\":\"0x7843a93e945fc1a86f1b7c0ee964b9220e148459cabdefe89774e7028e390b7e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0dd3665ba5496ee7fa57386fa2fe87b669bd652bf73a28883ef716b56e42f4a5\",\"dweb:/ipfs/QmTdg91FczJijJnguNCKPCSFKXLRk5G94UXc9RcATGbsDY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getNum","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/NumberContract.sol":"NumberContractFacetEight"},"libraries":{},"viaIR":true},"sources":{"test/helpers/NumberContract.sol":{"keccak256":"0x7843a93e945fc1a86f1b7c0ee964b9220e148459cabdefe89774e7028e390b7e","urls":["bzz-raw://0dd3665ba5496ee7fa57386fa2fe87b669bd652bf73a28883ef716b56e42f4a5","dweb:/ipfs/QmTdg91FczJijJnguNCKPCSFKXLRk5G94UXc9RcATGbsDY"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/NumberContract.sol","id":54322,"exportedSymbols":{"NumberContractFacetEight":[54321],"NumberContractFacetSeven":[54312]},"nodeType":"SourceUnit","src":"46:258:85","nodes":[{"id":54303,"nodeType":"PragmaDirective","src":"46:23:85","nodes":[],"literals":["solidity","0.8",".19"]},{"id":54312,"nodeType":"ContractDefinition","src":"71:115:85","nodes":[{"id":54311,"nodeType":"FunctionDefinition","src":"111:73:85","nodes":[],"body":{"id":54310,"nodeType":"Block","src":"159:25:85","nodes":[],"statements":[{"expression":{"hexValue":"37","id":54308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"176:1:85","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"functionReturnParameters":54307,"id":54309,"nodeType":"Return","src":"169:8:85"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"120:6:85","parameters":{"id":54304,"nodeType":"ParameterList","parameters":[],"src":"126:2:85"},"returnParameters":{"id":54307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54311,"src":"152:5:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":54305,"name":"uint8","nodeType":"ElementaryTypeName","src":"152:5:85","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"151:7:85"},"scope":54312,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetSeven","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54312],"name":"NumberContractFacetSeven","nameLocation":"80:24:85","scope":54322,"usedErrors":[]},{"id":54321,"nodeType":"ContractDefinition","src":"188:115:85","nodes":[{"id":54320,"nodeType":"FunctionDefinition","src":"228:73:85","nodes":[],"body":{"id":54319,"nodeType":"Block","src":"276:25:85","nodes":[],"statements":[{"expression":{"hexValue":"38","id":54317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"293:1:85","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"functionReturnParameters":54316,"id":54318,"nodeType":"Return","src":"286:8:85"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"237:6:85","parameters":{"id":54313,"nodeType":"ParameterList","parameters":[],"src":"243:2:85"},"returnParameters":{"id":54316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54320,"src":"269:5:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":54314,"name":"uint8","nodeType":"ElementaryTypeName","src":"269:5:85","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"268:7:85"},"scope":54321,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetEight","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54321],"name":"NumberContractFacetEight","nameLocation":"197:24:85","scope":54322,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":85} \ No newline at end of file diff --git a/.out/NumberContract.sol/NumberContractFacetSeven.json b/.out/NumberContract.sol/NumberContractFacetSeven.json deleted file mode 100644 index 0be32c480..000000000 --- a/.out/NumberContract.sol/NumberContractFacetSeven.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"getNum","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608080604052346014576079908161001a8239f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600760209252f35b5080fdfea26469706673582212202b85d5006bdbb702724757406e7510d74b6d1111ab0abf357bb27f7a3e1b286864736f6c63430008130033","sourceMap":"71:115:85:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600760209252f35b5080fdfea26469706673582212202b85d5006bdbb702724757406e7510d74b6d1111ab0abf357bb27f7a3e1b286864736f6c63430008130033","sourceMap":"71:115:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;176:1;71:115;;;;;;;","linkReferences":{}},"methodIdentifiers":{"getNum()":"67e0badb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getNum\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/NumberContract.sol\":\"NumberContractFacetSeven\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"test/helpers/NumberContract.sol\":{\"keccak256\":\"0x7843a93e945fc1a86f1b7c0ee964b9220e148459cabdefe89774e7028e390b7e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0dd3665ba5496ee7fa57386fa2fe87b669bd652bf73a28883ef716b56e42f4a5\",\"dweb:/ipfs/QmTdg91FczJijJnguNCKPCSFKXLRk5G94UXc9RcATGbsDY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getNum","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/NumberContract.sol":"NumberContractFacetSeven"},"libraries":{},"viaIR":true},"sources":{"test/helpers/NumberContract.sol":{"keccak256":"0x7843a93e945fc1a86f1b7c0ee964b9220e148459cabdefe89774e7028e390b7e","urls":["bzz-raw://0dd3665ba5496ee7fa57386fa2fe87b669bd652bf73a28883ef716b56e42f4a5","dweb:/ipfs/QmTdg91FczJijJnguNCKPCSFKXLRk5G94UXc9RcATGbsDY"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/NumberContract.sol","id":54322,"exportedSymbols":{"NumberContractFacetEight":[54321],"NumberContractFacetSeven":[54312]},"nodeType":"SourceUnit","src":"46:258:85","nodes":[{"id":54303,"nodeType":"PragmaDirective","src":"46:23:85","nodes":[],"literals":["solidity","0.8",".19"]},{"id":54312,"nodeType":"ContractDefinition","src":"71:115:85","nodes":[{"id":54311,"nodeType":"FunctionDefinition","src":"111:73:85","nodes":[],"body":{"id":54310,"nodeType":"Block","src":"159:25:85","nodes":[],"statements":[{"expression":{"hexValue":"37","id":54308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"176:1:85","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"functionReturnParameters":54307,"id":54309,"nodeType":"Return","src":"169:8:85"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"120:6:85","parameters":{"id":54304,"nodeType":"ParameterList","parameters":[],"src":"126:2:85"},"returnParameters":{"id":54307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54311,"src":"152:5:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":54305,"name":"uint8","nodeType":"ElementaryTypeName","src":"152:5:85","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"151:7:85"},"scope":54312,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetSeven","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54312],"name":"NumberContractFacetSeven","nameLocation":"80:24:85","scope":54322,"usedErrors":[]},{"id":54321,"nodeType":"ContractDefinition","src":"188:115:85","nodes":[{"id":54320,"nodeType":"FunctionDefinition","src":"228:73:85","nodes":[],"body":{"id":54319,"nodeType":"Block","src":"276:25:85","nodes":[],"statements":[{"expression":{"hexValue":"38","id":54317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"293:1:85","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"functionReturnParameters":54316,"id":54318,"nodeType":"Return","src":"286:8:85"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"237:6:85","parameters":{"id":54313,"nodeType":"ParameterList","parameters":[],"src":"243:2:85"},"returnParameters":{"id":54316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54320,"src":"269:5:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":54314,"name":"uint8","nodeType":"ElementaryTypeName","src":"269:5:85","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"268:7:85"},"scope":54321,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetEight","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54321],"name":"NumberContractFacetEight","nameLocation":"197:24:85","scope":54322,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":85} \ No newline at end of file diff --git a/.out/NumberContractFacetEight.sol/NumberContractFacetEight.json b/.out/NumberContractFacetEight.sol/NumberContractFacetEight.json new file mode 100644 index 000000000..3b3c47bb5 --- /dev/null +++ b/.out/NumberContractFacetEight.sol/NumberContractFacetEight.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"getNum","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608080604052346014576079908161001a8239f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600860209252f35b5080fdfea26469706673582212201e2b77add86e683bc6fcf879b925b5eda589ab4ba9404553e5565fe03ccf8e1164736f6c63430008130033","sourceMap":"71:115:93:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600860209252f35b5080fdfea26469706673582212201e2b77add86e683bc6fcf879b925b5eda589ab4ba9404553e5565fe03ccf8e1164736f6c63430008130033","sourceMap":"71:115:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;176:1;71:115;;;;;;;","linkReferences":{}},"methodIdentifiers":{"getNum()":"67e0badb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getNum\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/NumberContractFacetEight.sol\":\"NumberContractFacetEight\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"test/helpers/NumberContractFacetEight.sol\":{\"keccak256\":\"0x7fa01b87926c803719676edde6049bc7779ab9810cc7861293bedabd67c25119\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://60d30c58bc722e669470924d234e38fdca0738f1af558016998d57b076078f13\",\"dweb:/ipfs/QmZw27paVCwTJcxcwSFJPKhbMSpUDfca3dJtnZimYfsfGc\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getNum","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/NumberContractFacetEight.sol":"NumberContractFacetEight"},"libraries":{},"viaIR":true},"sources":{"test/helpers/NumberContractFacetEight.sol":{"keccak256":"0x7fa01b87926c803719676edde6049bc7779ab9810cc7861293bedabd67c25119","urls":["bzz-raw://60d30c58bc722e669470924d234e38fdca0738f1af558016998d57b076078f13","dweb:/ipfs/QmZw27paVCwTJcxcwSFJPKhbMSpUDfca3dJtnZimYfsfGc"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/NumberContractFacetEight.sol","id":55709,"exportedSymbols":{"NumberContractFacetEight":[55708]},"nodeType":"SourceUnit","src":"46:141:93","nodes":[{"id":55699,"nodeType":"PragmaDirective","src":"46:23:93","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55708,"nodeType":"ContractDefinition","src":"71:115:93","nodes":[{"id":55707,"nodeType":"FunctionDefinition","src":"111:73:93","nodes":[],"body":{"id":55706,"nodeType":"Block","src":"159:25:93","nodes":[],"statements":[{"expression":{"hexValue":"38","id":55704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"176:1:93","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"functionReturnParameters":55703,"id":55705,"nodeType":"Return","src":"169:8:93"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"120:6:93","parameters":{"id":55700,"nodeType":"ParameterList","parameters":[],"src":"126:2:93"},"returnParameters":{"id":55703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55707,"src":"152:5:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55701,"name":"uint8","nodeType":"ElementaryTypeName","src":"152:5:93","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"151:7:93"},"scope":55708,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetEight","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55708],"name":"NumberContractFacetEight","nameLocation":"80:24:93","scope":55709,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":93} \ No newline at end of file diff --git a/.out/NumberContractFacetSeven.sol/NumberContractFacetSeven.json b/.out/NumberContractFacetSeven.sol/NumberContractFacetSeven.json new file mode 100644 index 000000000..e487aec09 --- /dev/null +++ b/.out/NumberContractFacetSeven.sol/NumberContractFacetSeven.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"getNum","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608080604052346014576079908161001a8239f35b600080fdfe6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600760209252f35b5080fdfea264697066735822122012b758307668768a143b4055ad8ea5dd9049a2e6a32e7553eccfa4668284d78f64736f6c63430008130033","sourceMap":"71:115:94:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015601257600080fd5b600090813560e01c6367e0badb14602857600080fd5b34603f5781600319360112603f5780600760209252f35b5080fdfea264697066735822122012b758307668768a143b4055ad8ea5dd9049a2e6a32e7553eccfa4668284d78f64736f6c63430008130033","sourceMap":"71:115:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;176:1;71:115;;;;;;;","linkReferences":{}},"methodIdentifiers":{"getNum()":"67e0badb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getNum\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/NumberContractFacetSeven.sol\":\"NumberContractFacetSeven\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"test/helpers/NumberContractFacetSeven.sol\":{\"keccak256\":\"0x808fd96d4df08993b6bc788e3eaad7212949010b4377e5042a5bdb7f16d98075\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://93f533247f4b01b48bc503b6e97497f2e2c0e8a99deccf203a47d841aee4b571\",\"dweb:/ipfs/Qmc6vYXaNoGN1yJUZHmrTisq2aQ6qJ94Bs9R29covgFU4o\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"getNum","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/NumberContractFacetSeven.sol":"NumberContractFacetSeven"},"libraries":{},"viaIR":true},"sources":{"test/helpers/NumberContractFacetSeven.sol":{"keccak256":"0x808fd96d4df08993b6bc788e3eaad7212949010b4377e5042a5bdb7f16d98075","urls":["bzz-raw://93f533247f4b01b48bc503b6e97497f2e2c0e8a99deccf203a47d841aee4b571","dweb:/ipfs/Qmc6vYXaNoGN1yJUZHmrTisq2aQ6qJ94Bs9R29covgFU4o"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/NumberContractFacetSeven.sol","id":55720,"exportedSymbols":{"NumberContractFacetSeven":[55719]},"nodeType":"SourceUnit","src":"46:141:94","nodes":[{"id":55710,"nodeType":"PragmaDirective","src":"46:23:94","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55719,"nodeType":"ContractDefinition","src":"71:115:94","nodes":[{"id":55718,"nodeType":"FunctionDefinition","src":"111:73:94","nodes":[],"body":{"id":55717,"nodeType":"Block","src":"159:25:94","nodes":[],"statements":[{"expression":{"hexValue":"37","id":55715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"176:1:94","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"functionReturnParameters":55714,"id":55716,"nodeType":"Return","src":"169:8:94"}]},"functionSelector":"67e0badb","implemented":true,"kind":"function","modifiers":[],"name":"getNum","nameLocation":"120:6:94","parameters":{"id":55711,"nodeType":"ParameterList","parameters":[],"src":"126:2:94"},"returnParameters":{"id":55714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55713,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55718,"src":"152:5:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55712,"name":"uint8","nodeType":"ElementaryTypeName","src":"152:5:94","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"151:7:94"},"scope":55719,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"NumberContractFacetSeven","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55719],"name":"NumberContractFacetSeven","nameLocation":"80:24:94","scope":55720,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":94} \ No newline at end of file diff --git a/.out/Ownable.sol/Ownable.json b/.out/Ownable.sol/Ownable.json index d7f9821a5..fd8b18f30 100644 --- a/.out/Ownable.sol/Ownable.json +++ b/.out/Ownable.sol/Ownable.json @@ -1 +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.19+commit.7dd6d404\"},\"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. 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.\",\"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 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\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191\",\"dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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 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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":"Ownable"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183","urls":["bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191","dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","id":31215,"exportedSymbols":{"Context":[32431],"Ownable":[31214]},"nodeType":"SourceUnit","src":"102:2864:21","nodes":[{"id":31084,"nodeType":"PragmaDirective","src":"102:24:21","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":31085,"nodeType":"ImportDirective","src":"128:30:21","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","file":"../utils/Context.sol","nameLocation":"-1:-1:-1","scope":31215,"sourceUnit":32432,"symbolAliases":[],"unitAlias":""},{"id":31214,"nodeType":"ContractDefinition","src":"655:2310:21","nodes":[{"id":31090,"nodeType":"VariableDeclaration","src":"698:22:21","nodes":[],"constant":false,"mutability":"mutable","name":"_owner","nameLocation":"714:6:21","scope":31214,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31089,"name":"address","nodeType":"ElementaryTypeName","src":"698:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":31095,"nodeType":"ErrorDefinition","src":"817:50:21","nodes":[],"documentation":{"id":31091,"nodeType":"StructuredDocumentation","src":"727:85:21","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","name":"OwnableUnauthorizedAccount","nameLocation":"823:26:21","parameters":{"id":31094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31093,"mutability":"mutable","name":"account","nameLocation":"858:7:21","nodeType":"VariableDeclaration","scope":31095,"src":"850:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31092,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"849:17:21"}},{"id":31100,"nodeType":"ErrorDefinition","src":"960:41:21","nodes":[],"documentation":{"id":31096,"nodeType":"StructuredDocumentation","src":"873:82:21","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","name":"OwnableInvalidOwner","nameLocation":"966:19:21","parameters":{"id":31099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31098,"mutability":"mutable","name":"owner","nameLocation":"994:5:21","nodeType":"VariableDeclaration","scope":31100,"src":"986:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31097,"name":"address","nodeType":"ElementaryTypeName","src":"986:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"985:15:21"}},{"id":31106,"nodeType":"EventDefinition","src":"1007:84:21","nodes":[],"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","name":"OwnershipTransferred","nameLocation":"1013:20:21","parameters":{"id":31105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31102,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1050:13:21","nodeType":"VariableDeclaration","scope":31106,"src":"1034:29:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31101,"name":"address","nodeType":"ElementaryTypeName","src":"1034:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31104,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1081:8:21","nodeType":"VariableDeclaration","scope":31106,"src":"1065:24:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31103,"name":"address","nodeType":"ElementaryTypeName","src":"1065:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1033:57:21"}},{"id":31117,"nodeType":"FunctionDefinition","src":"1193:83:21","nodes":[],"body":{"id":31116,"nodeType":"Block","src":"1227:49:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":31113,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31109,"src":"1256:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31112,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31213,"src":"1237:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":31114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1237:32:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31115,"nodeType":"ExpressionStatement","src":"1237:32:21"}]},"documentation":{"id":31107,"nodeType":"StructuredDocumentation","src":"1097:91:21","text":" @dev Initializes the contract setting the deployer as the initial owner."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":31110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31109,"mutability":"mutable","name":"initialOwner","nameLocation":"1213:12:21","nodeType":"VariableDeclaration","scope":31117,"src":"1205:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31108,"name":"address","nodeType":"ElementaryTypeName","src":"1205:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1204:22:21"},"returnParameters":{"id":31111,"nodeType":"ParameterList","parameters":[],"src":"1227:0:21"},"scope":31214,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":31125,"nodeType":"ModifierDefinition","src":"1364:62:21","nodes":[],"body":{"id":31124,"nodeType":"Block","src":"1385:41:21","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":31120,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31151,"src":"1395:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":31121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1395:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31122,"nodeType":"ExpressionStatement","src":"1395:13:21"},{"id":31123,"nodeType":"PlaceholderStatement","src":"1418:1:21"}]},"documentation":{"id":31118,"nodeType":"StructuredDocumentation","src":"1282:77:21","text":" @dev Throws if called by any account other than the owner."},"name":"onlyOwner","nameLocation":"1373:9:21","parameters":{"id":31119,"nodeType":"ParameterList","parameters":[],"src":"1382:2:21"},"virtual":false,"visibility":"internal"},{"id":31134,"nodeType":"FunctionDefinition","src":"1502:85:21","nodes":[],"body":{"id":31133,"nodeType":"Block","src":"1557:30:21","nodes":[],"statements":[{"expression":{"id":31131,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31090,"src":"1574:6:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":31130,"id":31132,"nodeType":"Return","src":"1567:13:21"}]},"documentation":{"id":31126,"nodeType":"StructuredDocumentation","src":"1432:65:21","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1511:5:21","parameters":{"id":31127,"nodeType":"ParameterList","parameters":[],"src":"1516:2:21"},"returnParameters":{"id":31130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31134,"src":"1548:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31128,"name":"address","nodeType":"ElementaryTypeName","src":"1548:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1547:9:21"},"scope":31214,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":31151,"nodeType":"FunctionDefinition","src":"1660:162:21","nodes":[],"body":{"id":31150,"nodeType":"Block","src":"1705:117:21","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":31138,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31134,"src":"1719:5:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1719:7:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":31140,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32421,"src":"1730:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1730:12:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1719:23:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31149,"nodeType":"IfStatement","src":"1715:101:21","trueBody":{"id":31148,"nodeType":"Block","src":"1744:72:21","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":31144,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32421,"src":"1792:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1792:12:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31143,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31095,"src":"1765:26:21","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1765:40:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31147,"nodeType":"RevertStatement","src":"1758:47:21"}]}}]},"documentation":{"id":31135,"nodeType":"StructuredDocumentation","src":"1593:62:21","text":" @dev Throws if the sender is not the owner."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1669:11:21","parameters":{"id":31136,"nodeType":"ParameterList","parameters":[],"src":"1680:2:21"},"returnParameters":{"id":31137,"nodeType":"ParameterList","parameters":[],"src":"1705:0:21"},"scope":31214,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":31165,"nodeType":"FunctionDefinition","src":"2157:101:21","nodes":[],"body":{"id":31164,"nodeType":"Block","src":"2211:47:21","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":31160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2248:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2240:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31158,"name":"address","nodeType":"ElementaryTypeName","src":"2240:7:21","typeDescriptions":{}}},"id":31161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2240:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31157,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31213,"src":"2221:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":31162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2221:30:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31163,"nodeType":"ExpressionStatement","src":"2221:30:21"}]},"documentation":{"id":31152,"nodeType":"StructuredDocumentation","src":"1828:324:21","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","implemented":true,"kind":"function","modifiers":[{"id":31155,"kind":"modifierInvocation","modifierName":{"id":31154,"name":"onlyOwner","nameLocations":["2201:9:21"],"nodeType":"IdentifierPath","referencedDeclaration":31125,"src":"2201:9:21"},"nodeType":"ModifierInvocation","src":"2201:9:21"}],"name":"renounceOwnership","nameLocation":"2166:17:21","parameters":{"id":31153,"nodeType":"ParameterList","parameters":[],"src":"2183:2:21"},"returnParameters":{"id":31156,"nodeType":"ParameterList","parameters":[],"src":"2211:0:21"},"scope":31214,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":31193,"nodeType":"FunctionDefinition","src":"2407:215:21","nodes":[],"body":{"id":31192,"nodeType":"Block","src":"2477:145:21","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31173,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31168,"src":"2491:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2511:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2503:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31174,"name":"address","nodeType":"ElementaryTypeName","src":"2503:7:21","typeDescriptions":{}}},"id":31177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2491:22:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31187,"nodeType":"IfStatement","src":"2487:91:21","trueBody":{"id":31186,"nodeType":"Block","src":"2515:63:21","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":31182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2564:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2556:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31180,"name":"address","nodeType":"ElementaryTypeName","src":"2556:7:21","typeDescriptions":{}}},"id":31183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2556:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31179,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31100,"src":"2536:19:21","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2536:31:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31185,"nodeType":"RevertStatement","src":"2529:38:21"}]}},{"expression":{"arguments":[{"id":31189,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31168,"src":"2606:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31188,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31213,"src":"2587:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":31190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2587:28:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31191,"nodeType":"ExpressionStatement","src":"2587:28:21"}]},"documentation":{"id":31166,"nodeType":"StructuredDocumentation","src":"2264:138:21","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","implemented":true,"kind":"function","modifiers":[{"id":31171,"kind":"modifierInvocation","modifierName":{"id":31170,"name":"onlyOwner","nameLocations":["2467:9:21"],"nodeType":"IdentifierPath","referencedDeclaration":31125,"src":"2467:9:21"},"nodeType":"ModifierInvocation","src":"2467:9:21"}],"name":"transferOwnership","nameLocation":"2416:17:21","parameters":{"id":31169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31168,"mutability":"mutable","name":"newOwner","nameLocation":"2442:8:21","nodeType":"VariableDeclaration","scope":31193,"src":"2434:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31167,"name":"address","nodeType":"ElementaryTypeName","src":"2434:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2433:18:21"},"returnParameters":{"id":31172,"nodeType":"ParameterList","parameters":[],"src":"2477:0:21"},"scope":31214,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":31213,"nodeType":"FunctionDefinition","src":"2776:187:21","nodes":[],"body":{"id":31212,"nodeType":"Block","src":"2839:124:21","nodes":[],"statements":[{"assignments":[31200],"declarations":[{"constant":false,"id":31200,"mutability":"mutable","name":"oldOwner","nameLocation":"2857:8:21","nodeType":"VariableDeclaration","scope":31212,"src":"2849:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31199,"name":"address","nodeType":"ElementaryTypeName","src":"2849:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":31202,"initialValue":{"id":31201,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31090,"src":"2868:6:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2849:25:21"},{"expression":{"id":31205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31203,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31090,"src":"2884:6:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":31204,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31196,"src":"2893:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2884:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":31206,"nodeType":"ExpressionStatement","src":"2884:17:21"},{"eventCall":{"arguments":[{"id":31208,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31200,"src":"2937:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31209,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31196,"src":"2947:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":31207,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31106,"src":"2916:20:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":31210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2916:40:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31211,"nodeType":"EmitStatement","src":"2911:45:21"}]},"documentation":{"id":31194,"nodeType":"StructuredDocumentation","src":"2628:143:21","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2785:18:21","parameters":{"id":31197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31196,"mutability":"mutable","name":"newOwner","nameLocation":"2812:8:21","nodeType":"VariableDeclaration","scope":31213,"src":"2804:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31195,"name":"address","nodeType":"ElementaryTypeName","src":"2804:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2803:18:21"},"returnParameters":{"id":31198,"nodeType":"ParameterList","parameters":[],"src":"2839:0:21"},"scope":31214,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":31087,"name":"Context","nameLocations":["684:7:21"],"nodeType":"IdentifierPath","referencedDeclaration":32431,"src":"684:7:21"},"id":31088,"nodeType":"InheritanceSpecifier","src":"684:7:21"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":31086,"nodeType":"StructuredDocumentation","src":"160:494:21","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"linearizedBaseContracts":[31214,32431],"name":"Ownable","nameLocation":"673:7:21","scope":31215,"usedErrors":[31095,31100]}],"license":"MIT"},"id":21} \ No newline at end of file +{"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.19+commit.7dd6d404\"},\"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. 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.\",\"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 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\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191\",\"dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af\",\"dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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 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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":"Ownable"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xdd1cbda5311c5236b52b1f10b69668bc56d11ddccfd3e05296b80b891095a183","urls":["bzz-raw://7c35a827bb8e2c30d93e829bb6e56fb609320e06d805089bee9f193c5f665191","dweb:/ipfs/QmPas5Gwqt3dxRhKoACkhcciyC4oGfBp2XnjvdVx2eS26z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x639f180f9bedd48998c68f1bf4f8d01b37a4573bc496acb04a55308c6de0045c","urls":["bzz-raw://4ff2313c66e4e14d167aae923b38509ec68dcaa281d2314f45b527139d33d4af","dweb:/ipfs/QmU7aik96EmKeG8feBbQZ8BufngtYB6guGTkZoX5umP73i"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","id":31215,"exportedSymbols":{"Context":[32860],"Ownable":[31214]},"nodeType":"SourceUnit","src":"102:2864:21","nodes":[{"id":31084,"nodeType":"PragmaDirective","src":"102:24:21","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":31085,"nodeType":"ImportDirective","src":"128:30:21","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","file":"../utils/Context.sol","nameLocation":"-1:-1:-1","scope":31215,"sourceUnit":32861,"symbolAliases":[],"unitAlias":""},{"id":31214,"nodeType":"ContractDefinition","src":"655:2310:21","nodes":[{"id":31090,"nodeType":"VariableDeclaration","src":"698:22:21","nodes":[],"constant":false,"mutability":"mutable","name":"_owner","nameLocation":"714:6:21","scope":31214,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31089,"name":"address","nodeType":"ElementaryTypeName","src":"698:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":31095,"nodeType":"ErrorDefinition","src":"817:50:21","nodes":[],"documentation":{"id":31091,"nodeType":"StructuredDocumentation","src":"727:85:21","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","name":"OwnableUnauthorizedAccount","nameLocation":"823:26:21","parameters":{"id":31094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31093,"mutability":"mutable","name":"account","nameLocation":"858:7:21","nodeType":"VariableDeclaration","scope":31095,"src":"850:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31092,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"849:17:21"}},{"id":31100,"nodeType":"ErrorDefinition","src":"960:41:21","nodes":[],"documentation":{"id":31096,"nodeType":"StructuredDocumentation","src":"873:82:21","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","name":"OwnableInvalidOwner","nameLocation":"966:19:21","parameters":{"id":31099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31098,"mutability":"mutable","name":"owner","nameLocation":"994:5:21","nodeType":"VariableDeclaration","scope":31100,"src":"986:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31097,"name":"address","nodeType":"ElementaryTypeName","src":"986:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"985:15:21"}},{"id":31106,"nodeType":"EventDefinition","src":"1007:84:21","nodes":[],"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","name":"OwnershipTransferred","nameLocation":"1013:20:21","parameters":{"id":31105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31102,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1050:13:21","nodeType":"VariableDeclaration","scope":31106,"src":"1034:29:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31101,"name":"address","nodeType":"ElementaryTypeName","src":"1034:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31104,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1081:8:21","nodeType":"VariableDeclaration","scope":31106,"src":"1065:24:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31103,"name":"address","nodeType":"ElementaryTypeName","src":"1065:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1033:57:21"}},{"id":31117,"nodeType":"FunctionDefinition","src":"1193:83:21","nodes":[],"body":{"id":31116,"nodeType":"Block","src":"1227:49:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":31113,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31109,"src":"1256:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31112,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31213,"src":"1237:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":31114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1237:32:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31115,"nodeType":"ExpressionStatement","src":"1237:32:21"}]},"documentation":{"id":31107,"nodeType":"StructuredDocumentation","src":"1097:91:21","text":" @dev Initializes the contract setting the deployer as the initial owner."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":31110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31109,"mutability":"mutable","name":"initialOwner","nameLocation":"1213:12:21","nodeType":"VariableDeclaration","scope":31117,"src":"1205:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31108,"name":"address","nodeType":"ElementaryTypeName","src":"1205:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1204:22:21"},"returnParameters":{"id":31111,"nodeType":"ParameterList","parameters":[],"src":"1227:0:21"},"scope":31214,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":31125,"nodeType":"ModifierDefinition","src":"1364:62:21","nodes":[],"body":{"id":31124,"nodeType":"Block","src":"1385:41:21","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":31120,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31151,"src":"1395:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":31121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1395:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31122,"nodeType":"ExpressionStatement","src":"1395:13:21"},{"id":31123,"nodeType":"PlaceholderStatement","src":"1418:1:21"}]},"documentation":{"id":31118,"nodeType":"StructuredDocumentation","src":"1282:77:21","text":" @dev Throws if called by any account other than the owner."},"name":"onlyOwner","nameLocation":"1373:9:21","parameters":{"id":31119,"nodeType":"ParameterList","parameters":[],"src":"1382:2:21"},"virtual":false,"visibility":"internal"},{"id":31134,"nodeType":"FunctionDefinition","src":"1502:85:21","nodes":[],"body":{"id":31133,"nodeType":"Block","src":"1557:30:21","nodes":[],"statements":[{"expression":{"id":31131,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31090,"src":"1574:6:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":31130,"id":31132,"nodeType":"Return","src":"1567:13:21"}]},"documentation":{"id":31126,"nodeType":"StructuredDocumentation","src":"1432:65:21","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1511:5:21","parameters":{"id":31127,"nodeType":"ParameterList","parameters":[],"src":"1516:2:21"},"returnParameters":{"id":31130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31134,"src":"1548:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31128,"name":"address","nodeType":"ElementaryTypeName","src":"1548:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1547:9:21"},"scope":31214,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":31151,"nodeType":"FunctionDefinition","src":"1660:162:21","nodes":[],"body":{"id":31150,"nodeType":"Block","src":"1705:117:21","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":31138,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31134,"src":"1719:5:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1719:7:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":31140,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32850,"src":"1730:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1730:12:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1719:23:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31149,"nodeType":"IfStatement","src":"1715:101:21","trueBody":{"id":31148,"nodeType":"Block","src":"1744:72:21","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":31144,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32850,"src":"1792:10:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":31145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1792:12:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31143,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31095,"src":"1765:26:21","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1765:40:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31147,"nodeType":"RevertStatement","src":"1758:47:21"}]}}]},"documentation":{"id":31135,"nodeType":"StructuredDocumentation","src":"1593:62:21","text":" @dev Throws if the sender is not the owner."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1669:11:21","parameters":{"id":31136,"nodeType":"ParameterList","parameters":[],"src":"1680:2:21"},"returnParameters":{"id":31137,"nodeType":"ParameterList","parameters":[],"src":"1705:0:21"},"scope":31214,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":31165,"nodeType":"FunctionDefinition","src":"2157:101:21","nodes":[],"body":{"id":31164,"nodeType":"Block","src":"2211:47:21","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":31160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2248:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2240:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31158,"name":"address","nodeType":"ElementaryTypeName","src":"2240:7:21","typeDescriptions":{}}},"id":31161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2240:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31157,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31213,"src":"2221:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":31162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2221:30:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31163,"nodeType":"ExpressionStatement","src":"2221:30:21"}]},"documentation":{"id":31152,"nodeType":"StructuredDocumentation","src":"1828:324:21","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","implemented":true,"kind":"function","modifiers":[{"id":31155,"kind":"modifierInvocation","modifierName":{"id":31154,"name":"onlyOwner","nameLocations":["2201:9:21"],"nodeType":"IdentifierPath","referencedDeclaration":31125,"src":"2201:9:21"},"nodeType":"ModifierInvocation","src":"2201:9:21"}],"name":"renounceOwnership","nameLocation":"2166:17:21","parameters":{"id":31153,"nodeType":"ParameterList","parameters":[],"src":"2183:2:21"},"returnParameters":{"id":31156,"nodeType":"ParameterList","parameters":[],"src":"2211:0:21"},"scope":31214,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":31193,"nodeType":"FunctionDefinition","src":"2407:215:21","nodes":[],"body":{"id":31192,"nodeType":"Block","src":"2477:145:21","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":31178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":31173,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31168,"src":"2491:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":31176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2511:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2503:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31174,"name":"address","nodeType":"ElementaryTypeName","src":"2503:7:21","typeDescriptions":{}}},"id":31177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2491:22:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":31187,"nodeType":"IfStatement","src":"2487:91:21","trueBody":{"id":31186,"nodeType":"Block","src":"2515:63:21","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":31182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2564:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":31181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2556:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31180,"name":"address","nodeType":"ElementaryTypeName","src":"2556:7:21","typeDescriptions":{}}},"id":31183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2556:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31179,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31100,"src":"2536:19:21","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":31184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2536:31:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31185,"nodeType":"RevertStatement","src":"2529:38:21"}]}},{"expression":{"arguments":[{"id":31189,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31168,"src":"2606:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31188,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31213,"src":"2587:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":31190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2587:28:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31191,"nodeType":"ExpressionStatement","src":"2587:28:21"}]},"documentation":{"id":31166,"nodeType":"StructuredDocumentation","src":"2264:138:21","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","implemented":true,"kind":"function","modifiers":[{"id":31171,"kind":"modifierInvocation","modifierName":{"id":31170,"name":"onlyOwner","nameLocations":["2467:9:21"],"nodeType":"IdentifierPath","referencedDeclaration":31125,"src":"2467:9:21"},"nodeType":"ModifierInvocation","src":"2467:9:21"}],"name":"transferOwnership","nameLocation":"2416:17:21","parameters":{"id":31169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31168,"mutability":"mutable","name":"newOwner","nameLocation":"2442:8:21","nodeType":"VariableDeclaration","scope":31193,"src":"2434:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31167,"name":"address","nodeType":"ElementaryTypeName","src":"2434:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2433:18:21"},"returnParameters":{"id":31172,"nodeType":"ParameterList","parameters":[],"src":"2477:0:21"},"scope":31214,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":31213,"nodeType":"FunctionDefinition","src":"2776:187:21","nodes":[],"body":{"id":31212,"nodeType":"Block","src":"2839:124:21","nodes":[],"statements":[{"assignments":[31200],"declarations":[{"constant":false,"id":31200,"mutability":"mutable","name":"oldOwner","nameLocation":"2857:8:21","nodeType":"VariableDeclaration","scope":31212,"src":"2849:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31199,"name":"address","nodeType":"ElementaryTypeName","src":"2849:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":31202,"initialValue":{"id":31201,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31090,"src":"2868:6:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2849:25:21"},{"expression":{"id":31205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":31203,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31090,"src":"2884:6:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":31204,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31196,"src":"2893:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2884:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":31206,"nodeType":"ExpressionStatement","src":"2884:17:21"},{"eventCall":{"arguments":[{"id":31208,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31200,"src":"2937:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31209,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31196,"src":"2947:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":31207,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31106,"src":"2916:20:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":31210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2916:40:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31211,"nodeType":"EmitStatement","src":"2911:45:21"}]},"documentation":{"id":31194,"nodeType":"StructuredDocumentation","src":"2628:143:21","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2785:18:21","parameters":{"id":31197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31196,"mutability":"mutable","name":"newOwner","nameLocation":"2812:8:21","nodeType":"VariableDeclaration","scope":31213,"src":"2804:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31195,"name":"address","nodeType":"ElementaryTypeName","src":"2804:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2803:18:21"},"returnParameters":{"id":31198,"nodeType":"ParameterList","parameters":[],"src":"2839:0:21"},"scope":31214,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":31087,"name":"Context","nameLocations":["684:7:21"],"nodeType":"IdentifierPath","referencedDeclaration":32860,"src":"684:7:21"},"id":31088,"nodeType":"InheritanceSpecifier","src":"684:7:21"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":31086,"nodeType":"StructuredDocumentation","src":"160:494:21","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"linearizedBaseContracts":[31214,32860],"name":"Ownable","nameLocation":"673:7:21","scope":31215,"usedErrors":[31095,31100]}],"license":"MIT"},"id":21} \ No newline at end of file diff --git a/.out/Quorum.sol/Quorum.json b/.out/Quorum.sol/Quorum.json index 2dbb830a1..cdbb99dee 100644 --- a/.out/Quorum.sol/Quorum.json +++ b/.out/Quorum.sol/Quorum.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/Quorum.sol","id":48538,"exportedSymbols":{"EnumerableSet":[35386],"QuorumInfo":[48506],"QuorumMap":[48537],"QuorumObjKind":[48490]},"nodeType":"SourceUnit","src":"46:1651:75","nodes":[{"id":48485,"nodeType":"PragmaDirective","src":"46:23:75","nodes":[],"literals":["solidity","0.8",".19"]},{"id":48487,"nodeType":"ImportDirective","src":"71:85:75","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":48538,"sourceUnit":35387,"symbolAliases":[{"foreign":{"id":48486,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35386,"src":"79:13:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48490,"nodeType":"EnumDefinition","src":"158:59:75","nodes":[],"canonicalName":"QuorumObjKind","members":[{"id":48488,"name":"Checkpoint","nameLocation":"183:10:75","nodeType":"EnumValue","src":"183:10:75"},{"id":48489,"name":"BottomUpMsgBatch","nameLocation":"199:16:75","nodeType":"EnumValue","src":"199:16:75"}],"name":"QuorumObjKind","nameLocation":"163:13:75"},{"id":48506,"nodeType":"StructDefinition","src":"219:482:75","nodes":[],"canonicalName":"QuorumInfo","members":[{"constant":false,"id":48493,"mutability":"mutable","name":"hash","nameLocation":"316:4:75","nodeType":"VariableDeclaration","scope":48506,"src":"308:12:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48492,"name":"bytes32","nodeType":"ElementaryTypeName","src":"308:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":48496,"mutability":"mutable","name":"rootHash","nameLocation":"435:8:75","nodeType":"VariableDeclaration","scope":48506,"src":"427:16:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48495,"name":"bytes32","nodeType":"ElementaryTypeName","src":"427:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":48499,"mutability":"mutable","name":"threshold","nameLocation":"535:9:75","nodeType":"VariableDeclaration","scope":48506,"src":"527:17:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48498,"name":"uint256","nodeType":"ElementaryTypeName","src":"527:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48502,"mutability":"mutable","name":"currentWeight","nameLocation":"609:13:75","nodeType":"VariableDeclaration","scope":48506,"src":"601:21:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48501,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48505,"mutability":"mutable","name":"reached","nameLocation":"691:7:75","nodeType":"VariableDeclaration","scope":48506,"src":"686:12:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48504,"name":"bool","nodeType":"ElementaryTypeName","src":"686:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"QuorumInfo","nameLocation":"226:10:75","scope":48538,"visibility":"public"},{"id":48537,"nodeType":"StructDefinition","src":"703:993:75","nodes":[],"canonicalName":"QuorumMap","members":[{"constant":false,"id":48510,"mutability":"mutable","name":"quorumObjKind","nameLocation":"811:13:75","nodeType":"VariableDeclaration","scope":48537,"src":"797:27:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"},"typeName":{"id":48509,"nodeType":"UserDefinedTypeName","pathNode":{"id":48508,"name":"QuorumObjKind","nameLocations":["797:13:75"],"nodeType":"IdentifierPath","referencedDeclaration":48490,"src":"797:13:75"},"referencedDeclaration":48490,"src":"797:13:75","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"}},"visibility":"internal"},{"constant":false,"id":48513,"mutability":"mutable","name":"retentionHeight","nameLocation":"1121:15:75","nodeType":"VariableDeclaration","scope":48537,"src":"1113:23:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48512,"name":"uint256","nodeType":"ElementaryTypeName","src":"1113:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48519,"mutability":"mutable","name":"quorumInfo","nameLocation":"1231:10:75","nodeType":"VariableDeclaration","scope":48537,"src":"1200:41:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$48506_storage_$","typeString":"mapping(uint256 => struct QuorumInfo)"},"typeName":{"id":48518,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48515,"name":"uint256","nodeType":"ElementaryTypeName","src":"1208:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1200:30:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$48506_storage_$","typeString":"mapping(uint256 => struct QuorumInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48517,"nodeType":"UserDefinedTypeName","pathNode":{"id":48516,"name":"QuorumInfo","nameLocations":["1219:10:75"],"nodeType":"IdentifierPath","referencedDeclaration":48506,"src":"1219:10:75"},"referencedDeclaration":48506,"src":"1219:10:75","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$48506_storage_ptr","typeString":"struct QuorumInfo"}}},"visibility":"internal"},{"constant":false,"id":48523,"mutability":"mutable","name":"incompleteQuorums","nameLocation":"1372:17:75","nodeType":"VariableDeclaration","scope":48537,"src":"1350:39:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":48522,"nodeType":"UserDefinedTypeName","pathNode":{"id":48521,"name":"EnumerableSet.UintSet","nameLocations":["1350:13:75","1364:7:75"],"nodeType":"IdentifierPath","referencedDeclaration":35256,"src":"1350:21:75"},"referencedDeclaration":35256,"src":"1350:21:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35256_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":48529,"mutability":"mutable","name":"quorumSignatureSenders","nameLocation":"1536:22:75","nodeType":"VariableDeclaration","scope":48537,"src":"1491:67:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"typeName":{"id":48528,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48525,"name":"uint256","nodeType":"ElementaryTypeName","src":"1499:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1491:44:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48527,"nodeType":"UserDefinedTypeName","pathNode":{"id":48526,"name":"EnumerableSet.AddressSet","nameLocations":["1510:13:75","1524:10:75"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"1510:24:75"},"referencedDeclaration":35099,"src":"1510:24:75","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"},{"constant":false,"id":48536,"mutability":"mutable","name":"quorumSignatures","nameLocation":"1677:16:75","nodeType":"VariableDeclaration","scope":48537,"src":"1631:62:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes))"},"typeName":{"id":48535,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48531,"name":"uint256","nodeType":"ElementaryTypeName","src":"1639:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1631:45:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48534,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48532,"name":"address","nodeType":"ElementaryTypeName","src":"1658:7:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1650:25:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48533,"name":"bytes","nodeType":"ElementaryTypeName","src":"1669:5:75","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}}},"visibility":"internal"}],"name":"QuorumMap","nameLocation":"710:9:75","scope":48538,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":75} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/Quorum.sol","id":50060,"exportedSymbols":{"EnumerableSet":[35815],"QuorumInfo":[50028],"QuorumMap":[50059],"QuorumObjKind":[50012]},"nodeType":"SourceUnit","src":"46:1783:82","nodes":[{"id":50007,"nodeType":"PragmaDirective","src":"46:23:82","nodes":[],"literals":["solidity","0.8",".19"]},{"id":50009,"nodeType":"ImportDirective","src":"71:85:82","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":50060,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":50008,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"79:13:82","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50012,"nodeType":"EnumDefinition","src":"188:59:82","nodes":[],"canonicalName":"QuorumObjKind","members":[{"id":50010,"name":"Checkpoint","nameLocation":"213:10:82","nodeType":"EnumValue","src":"213:10:82"},{"id":50011,"name":"BottomUpMsgBatch","nameLocation":"229:16:82","nodeType":"EnumValue","src":"229:16:82"}],"name":"QuorumObjKind","nameLocation":"193:13:82"},{"id":50028,"nodeType":"StructDefinition","src":"292:482:82","nodes":[],"canonicalName":"QuorumInfo","members":[{"constant":false,"id":50015,"mutability":"mutable","name":"hash","nameLocation":"389:4:82","nodeType":"VariableDeclaration","scope":50028,"src":"381:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50014,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":50018,"mutability":"mutable","name":"rootHash","nameLocation":"508:8:82","nodeType":"VariableDeclaration","scope":50028,"src":"500:16:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50017,"name":"bytes32","nodeType":"ElementaryTypeName","src":"500:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":50021,"mutability":"mutable","name":"threshold","nameLocation":"608:9:82","nodeType":"VariableDeclaration","scope":50028,"src":"600:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50020,"name":"uint256","nodeType":"ElementaryTypeName","src":"600:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50024,"mutability":"mutable","name":"currentWeight","nameLocation":"682:13:82","nodeType":"VariableDeclaration","scope":50028,"src":"674:21:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50023,"name":"uint256","nodeType":"ElementaryTypeName","src":"674:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50027,"mutability":"mutable","name":"reached","nameLocation":"764:7:82","nodeType":"VariableDeclaration","scope":50028,"src":"759:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50026,"name":"bool","nodeType":"ElementaryTypeName","src":"759:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"QuorumInfo","nameLocation":"299:10:82","scope":50060,"visibility":"public"},{"id":50059,"nodeType":"StructDefinition","src":"835:993:82","nodes":[],"canonicalName":"QuorumMap","members":[{"constant":false,"id":50032,"mutability":"mutable","name":"quorumObjKind","nameLocation":"943:13:82","nodeType":"VariableDeclaration","scope":50059,"src":"929:27:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},"typeName":{"id":50031,"nodeType":"UserDefinedTypeName","pathNode":{"id":50030,"name":"QuorumObjKind","nameLocations":["929:13:82"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"929:13:82"},"referencedDeclaration":50012,"src":"929:13:82","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"visibility":"internal"},{"constant":false,"id":50035,"mutability":"mutable","name":"retentionHeight","nameLocation":"1253:15:82","nodeType":"VariableDeclaration","scope":50059,"src":"1245:23:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50034,"name":"uint256","nodeType":"ElementaryTypeName","src":"1245:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50041,"mutability":"mutable","name":"quorumInfo","nameLocation":"1363:10:82","nodeType":"VariableDeclaration","scope":50059,"src":"1332:41:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo)"},"typeName":{"id":50040,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50037,"name":"uint256","nodeType":"ElementaryTypeName","src":"1340:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1332:30:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_QuorumInfo_$50028_storage_$","typeString":"mapping(uint256 => struct QuorumInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50039,"nodeType":"UserDefinedTypeName","pathNode":{"id":50038,"name":"QuorumInfo","nameLocations":["1351:10:82"],"nodeType":"IdentifierPath","referencedDeclaration":50028,"src":"1351:10:82"},"referencedDeclaration":50028,"src":"1351:10:82","typeDescriptions":{"typeIdentifier":"t_struct$_QuorumInfo_$50028_storage_ptr","typeString":"struct QuorumInfo"}}},"visibility":"internal"},{"constant":false,"id":50045,"mutability":"mutable","name":"incompleteQuorums","nameLocation":"1504:17:82","nodeType":"VariableDeclaration","scope":50059,"src":"1482:39:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":50044,"nodeType":"UserDefinedTypeName","pathNode":{"id":50043,"name":"EnumerableSet.UintSet","nameLocations":["1482:13:82","1496:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":35685,"src":"1482:21:82"},"referencedDeclaration":35685,"src":"1482:21:82","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$35685_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":50051,"mutability":"mutable","name":"quorumSignatureSenders","nameLocation":"1668:22:82","nodeType":"VariableDeclaration","scope":50059,"src":"1623:67:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"typeName":{"id":50050,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50047,"name":"uint256","nodeType":"ElementaryTypeName","src":"1631:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1623:44:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50049,"nodeType":"UserDefinedTypeName","pathNode":{"id":50048,"name":"EnumerableSet.AddressSet","nameLocations":["1642:13:82","1656:10:82"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"1642:24:82"},"referencedDeclaration":35528,"src":"1642:24:82","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"internal"},{"constant":false,"id":50058,"mutability":"mutable","name":"quorumSignatures","nameLocation":"1809:16:82","nodeType":"VariableDeclaration","scope":50059,"src":"1763:62:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes))"},"typeName":{"id":50057,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50053,"name":"uint256","nodeType":"ElementaryTypeName","src":"1771:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1763:45:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bytes_storage_$_$","typeString":"mapping(uint256 => mapping(address => bytes))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50056,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50054,"name":"address","nodeType":"ElementaryTypeName","src":"1790:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1782:25:82","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes_storage_$","typeString":"mapping(address => bytes)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50055,"name":"bytes","nodeType":"ElementaryTypeName","src":"1801:5:82","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}}},"visibility":"internal"}],"name":"QuorumMap","nameLocation":"842:9:82","scope":50060,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":82} \ No newline at end of file diff --git a/.out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json b/.out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json index 6da19793e..b017f3cda 100644 --- a/.out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json +++ b/.out/RegisterSubnetFacet.sol/RegisterSubnetFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"newSubnetActor","inputs":[{"name":"_params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"}]}],"outputs":[{"name":"subnetAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"event","name":"SubnetDeployed","inputs":[{"name":"subnetAddr","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"WrongGateway","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657611d44908161001c8239f35b600080fdfe60808060405260043610156200001457600080fd5b60003560e01c63aa3d1588146200002a57600080fd5b34620005c657600319602036820112620005c6576001600160401b0360043511620005c6576101609060043536030112620005c65760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620008c55760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b03811690819003620005c6576000546001600160a01b031603620008b357604051620000e781620008d4565b6002815260005b60408110620008845750600154604051906001600160a01b03166200011382620008d4565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200080f57620001b79454918181106200077a575b8181106200075a575b8181106200073a575b8181106200071a575b818110620006fa575b818110620006da575b818110620006bc575b10620006a6575b500382620008f0565b6040820152620001c78262000933565b52620001d38162000933565b50600254604051906001600160a01b0316620001ef82620008d4565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b8060078301106200079a576200028b9454918181106200077a578181106200075a578181106200073a578181106200071a57818110620006fa57818110620006da57818110620006bc5710620006a657500382620008f0565b60408201526200029b8262000957565b52620002a78162000957565b50604051908161137c8101106001600160401b0361137c84011117620006905761137c620009938339604061137c830181815282519181018290526060600583901b82018101936020019291600091015b828210620005f857858561137c82018103602061137c8401015260043560040135604219600435360301811215620005c6576004350161016082526001600160401b03620003496004830162000968565b16610160830152602481013560221982360301811215620005c657016001600160401b03600482013511620005c6576024810190600481013560051b36038213620005c657604061018084015260048101356101a08401526101c08301919060005b60048201358110620005cb57506001600160a01b039150620003d490506004356024016200097d565b166020830152604460043501356001811015620005c65760408301526064600435013560608301526001600160401b036200041460846004350162000968565b1660808301526001600160401b036200043260a46004350162000968565b1660a083015260c4600435013560ff8116809103620005c65760c083015260e4600435013561ffff8116809103620005c65760e0830152610104600435013561010083015261012460043501358060000b809103620005c65761012083015261014460043501356003811015620005c6576101408493620004b38362000912565b015203906000f08015620005ba5733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005a4576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b03620005e7896200097d565b1681520195019392019050620003ab565b90919293605f1961137c870182030182528451602060806040606085019360018060a01b03815116865283810151620006318162000912565b84870152015193606060408201528451809452019201906000905b8082106200066c57505050602080600192960192019201909291620002f8565b82516001600160e01b0319168452602093840193909201916001909101906200064c565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b6020906040516200089581620008d4565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b038211176200069057604052565b90601f801991011681019081106001600160401b038211176200069057604052565b600311156200091d57565b634e487b7160e01b600052602160045260246000fd5b805115620009415760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620009415760400190565b35906001600160401b0382168203620005c657565b35906001600160a01b0382168203620005c65756fe6080604052346106715761137c803803809161001c826080610faf565b60803960408112610671576080516001600160401b0381116106715760808201609f8201121561067157806080015161005481610fd2565b906100626040519283610faf565b8082526020820180938560800160208460051b836080010101116106715760a08101915b60a0600585901b8301018310610e5457505060a051939150506001600160401b03831161067157610160938381038513610671576040519485016001600160401b0381118682101761075d5760405260808401516001600160401b038111610671576100fa91608001908560800101611011565b845261010860a08401610fe9565b6020850181905260c0840151600181101561067157604086015260e084015160608601526101396101008501610ffd565b608086015261014b6101208501610ffd565b60a086015261014084015160ff811681036106715760c086015261016084015161ffff811681036106715760e0860152610100938481608001015185870152610120816080010151908160000b8203610671576101409161012088015260800101516003811015610671576101408601526001600160a01b031615610e425760a08401516001600160401b031615610e305760016101408501516101ee816110b4565b6101f7816110b4565b141580610e24575b610e125760ff60c08501511660338110908115610e07575b50610df557601261012085015160000b13610de3577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111761075d576020810160405260008152825160005b8181106107d55750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061077f5788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67389806102fa8b8b600060208501528382036040850152611181565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054909116821790556101408301516103be816110b4565b6103c7816110b4565b14610773575b81518051601080546001600160401b0319166001600160401b0392831617905560209190910151805191821161075d5768010000000000000000821161075d5760115482601155808310610728575b506020016011600052602060002060005b83811061070b57858560018060a01b03602083015116600e5490604084015160018110156106f5576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040516104e881610f79565b6010546001600160401b0316815260405160118054808352600091825260008051602061131c83398151915291839160208301915b8181106106d357505061053292500382610faf565b6020820152610574600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518093819263aa5106cb60e01b83526040600484015260448301906110be565b3060248301520381855af490811561067e5760009161068a575b506020906105b89260405180809581946390ba52cf60e01b835286600484015260248301906110be565b03915af490811561067e57600091610647575b50600d55610140810151906105df826110b4565b6105e8826110b4565b60ff62ffff0060e0601354936064600855600a60018060401b03196009541617600955015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c5560405160eb90816112318239f35b90506020813d602011610676575b8161066260209383610faf565b810103126106715751826105cb565b600080fd5b3d9150610655565b6040513d6000823e3d90fd5b90503d806000833e61069c8183610faf565b810191602082840312610671578151916001600160401b038311610671576105b8936020936106cb9201611011565b91509161058e565b84546001600160a01b031683526001948501948694506020909301920161051d565b634e487b7160e01b600052602160045260246000fd5b82516001600160a01b03168183015560209092019160010161042d565b601160005260008051602061131c833981519152908382015b818301811061075157505061041c565b60008155600101610741565b634e487b7160e01b600052604160045260246000fd5b600060608301526103cd565b909192946020806107c7600193607f198b8203018652606060408b51878060a01b038151168452858101516107b3816110b4565b868501520151918160408201520190611143565b9701920192019092916102b5565b60406107e18287611119565b5101516001600160a01b036107f68388611119565b51511690805115610dca57602061080d8489611119565b510151610819816110b4565b610822816110b4565b80610a24575081156109fb5761ffff60008051602061133c83398151915254169161088c60405161085281610f94565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b6040820152826111f1565b8151916000935b8385106108a95750505050506001905b01610287565b6001600160e01b03196108bc8684611119565b5116600081815260008051602061135c83398151915260205260409020546001600160a01b03166109e3576109526040516108f681610f79565b85815261ffff84166020808301918252600085815260008051602061135c833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b60008051602061133c83398151915254906801000000000000000082101561075d576109948260016109b1940160008051602061133c833981519152556111c1565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff808216146109cd57600161ffff81921601940193610893565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610a20906024830190611143565b0390fd5b610a2d816110b4565b60018103610b9457508115610b6f57610a8c604051610a4b81610f94565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b6040820152836111f1565b80519060005b828110610aa557505050506001906108a3565b6001600160e01b0319610ab88284611119565b5116600081815260008051602061135c83398151915260205260409020546001600160a01b0316308114610b5657858114610b3d5715610b2557600090815260008051602061135c8339815191526020526040902080546001600160a01b03191685179055600101610a92565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610a20906024830190611143565b610b9d816110b4565b60028103610daa575060008051602061133c833981519152549180610d92575080519060005b828110610bd657505050506001906108a3565b6001600160e01b0319610be98284611119565b5116908160005260008051602061135c83398151915260205260406000209460405195610c1587610f79565b546001600160a01b03811680885260a09190911c61ffff16602088015215610d795785516001600160a01b03163014610d605780156109cd576000190180958161ffff60208301511603610ce5575b505060008051602061133c83398151915254918215610ccf5760019260001901610c8d816111c1565b63ffffffff82549160031b1b1916905560008051602061133c8339815191525560005260008051602061135c8339815191526020526000604081205501610bc3565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610cf6610d59946111c1565b90549060031b1c60e01b92610d13846109948585850151166111c1565b01516001600160e01b0319909216600090815260008051602061135c83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610c64565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610dc3816110b4565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610217565b6040516368f7a67560e11b8152600490fd5b506060840151156101ff565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161067157606090830160808101908903601f1901821361067157604051918083016001600160401b03811184821017610f6457604052610ea260208301610fe9565b8352604082015160038110156106715760208401528101516001600160401b0381116106715789608001603f8284010112156106715760208183010151610ee881610fd2565b92610ef66040519485610faf565b81845260208401908c60800160408460051b86840101011161067157604084820101915b60408460051b86840101018310610f435750505050506040820152815260209283019201610086565b82516001600160e01b03198116810361067157815260209283019201610f1a565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b0382111761075d57604052565b606081019081106001600160401b0382111761075d57604052565b601f909101601f19168101906001600160401b0382119082101761075d57604052565b6001600160401b03811161075d5760051b60200190565b51906001600160a01b038216820361067157565b51906001600160401b038216820361067157565b9190604083820312610671576040519261102a84610f79565b8361103482610ffd565b815260208281015190926001600160401b03821161067157019280601f8501121561067157835161106481610fd2565b946110726040519687610faf565b818652848087019260051b8201019283116106715784809101915b83831061109c57505050500152565b81906110a784610fe9565b815201910190849061108d565b600311156106f557565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b8281106110fc575050505090565b83516001600160a01b0316855293810193928101926001016110ee565b805182101561112d5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b828110611163575050505090565b83516001600160e01b03191685529381019392810192600101611155565b919082519283825260005b8481106111ad575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161118c565b9060008051602061133c833981519152805483101561112d57600052601c60206000208360031c019260021b1690565b803b156111fc575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610a2090604483019061118156fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122034477731f6063883c0c4e645241b575decdff772ed0eed5c444e648eaad09a2e64736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a264697066735822122056352174ae2f3cc8b74ee0638a0eb0959aefb2c77c028d1f2c960d17a9f408b064736f6c63430008130033","sourceMap":"385:1527:79:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3821,"length":20}]}}},"deployedBytecode":{"object":"0x60808060405260043610156200001457600080fd5b60003560e01c63aa3d1588146200002a57600080fd5b34620005c657600319602036820112620005c6576001600160401b0360043511620005c6576101609060043536030112620005c65760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620008c55760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b03811690819003620005c6576000546001600160a01b031603620008b357604051620000e781620008d4565b6002815260005b60408110620008845750600154604051906001600160a01b03166200011382620008d4565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200080f57620001b79454918181106200077a575b8181106200075a575b8181106200073a575b8181106200071a575b818110620006fa575b818110620006da575b818110620006bc575b10620006a6575b500382620008f0565b6040820152620001c78262000933565b52620001d38162000933565b50600254604051906001600160a01b0316620001ef82620008d4565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b8060078301106200079a576200028b9454918181106200077a578181106200075a578181106200073a578181106200071a57818110620006fa57818110620006da57818110620006bc5710620006a657500382620008f0565b60408201526200029b8262000957565b52620002a78162000957565b50604051908161137c8101106001600160401b0361137c84011117620006905761137c620009938339604061137c830181815282519181018290526060600583901b82018101936020019291600091015b828210620005f857858561137c82018103602061137c8401015260043560040135604219600435360301811215620005c6576004350161016082526001600160401b03620003496004830162000968565b16610160830152602481013560221982360301811215620005c657016001600160401b03600482013511620005c6576024810190600481013560051b36038213620005c657604061018084015260048101356101a08401526101c08301919060005b60048201358110620005cb57506001600160a01b039150620003d490506004356024016200097d565b166020830152604460043501356001811015620005c65760408301526064600435013560608301526001600160401b036200041460846004350162000968565b1660808301526001600160401b036200043260a46004350162000968565b1660a083015260c4600435013560ff8116809103620005c65760c083015260e4600435013561ffff8116809103620005c65760e0830152610104600435013561010083015261012460043501358060000b809103620005c65761012083015261014460043501356003811015620005c6576101408493620004b38362000912565b015203906000f08015620005ba5733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005a4576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b03620005e7896200097d565b1681520195019392019050620003ab565b90919293605f1961137c870182030182528451602060806040606085019360018060a01b03815116865283810151620006318162000912565b84870152015193606060408201528451809452019201906000905b8082106200066c57505050602080600192960192019201909291620002f8565b82516001600160e01b0319168452602093840193909201916001909101906200064c565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b6020906040516200089581620008d4565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b038211176200069057604052565b90601f801991011681019081106001600160401b038211176200069057604052565b600311156200091d57565b634e487b7160e01b600052602160045260246000fd5b805115620009415760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620009415760400190565b35906001600160401b0382168203620005c657565b35906001600160a01b0382168203620005c65756fe6080604052346106715761137c803803809161001c826080610faf565b60803960408112610671576080516001600160401b0381116106715760808201609f8201121561067157806080015161005481610fd2565b906100626040519283610faf565b8082526020820180938560800160208460051b836080010101116106715760a08101915b60a0600585901b8301018310610e5457505060a051939150506001600160401b03831161067157610160938381038513610671576040519485016001600160401b0381118682101761075d5760405260808401516001600160401b038111610671576100fa91608001908560800101611011565b845261010860a08401610fe9565b6020850181905260c0840151600181101561067157604086015260e084015160608601526101396101008501610ffd565b608086015261014b6101208501610ffd565b60a086015261014084015160ff811681036106715760c086015261016084015161ffff811681036106715760e0860152610100938481608001015185870152610120816080010151908160000b8203610671576101409161012088015260800101516003811015610671576101408601526001600160a01b031615610e425760a08401516001600160401b031615610e305760016101408501516101ee816110b4565b6101f7816110b4565b141580610e24575b610e125760ff60c08501511660338110908115610e07575b50610df557601261012085015160000b13610de3577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111761075d576020810160405260008152825160005b8181106107d55750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061077f5788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67389806102fa8b8b600060208501528382036040850152611181565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054909116821790556101408301516103be816110b4565b6103c7816110b4565b14610773575b81518051601080546001600160401b0319166001600160401b0392831617905560209190910151805191821161075d5768010000000000000000821161075d5760115482601155808310610728575b506020016011600052602060002060005b83811061070b57858560018060a01b03602083015116600e5490604084015160018110156106f5576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040516104e881610f79565b6010546001600160401b0316815260405160118054808352600091825260008051602061131c83398151915291839160208301915b8181106106d357505061053292500382610faf565b6020820152610574600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518093819263aa5106cb60e01b83526040600484015260448301906110be565b3060248301520381855af490811561067e5760009161068a575b506020906105b89260405180809581946390ba52cf60e01b835286600484015260248301906110be565b03915af490811561067e57600091610647575b50600d55610140810151906105df826110b4565b6105e8826110b4565b60ff62ffff0060e0601354936064600855600a60018060401b03196009541617600955015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c5560405160eb90816112318239f35b90506020813d602011610676575b8161066260209383610faf565b810103126106715751826105cb565b600080fd5b3d9150610655565b6040513d6000823e3d90fd5b90503d806000833e61069c8183610faf565b810191602082840312610671578151916001600160401b038311610671576105b8936020936106cb9201611011565b91509161058e565b84546001600160a01b031683526001948501948694506020909301920161051d565b634e487b7160e01b600052602160045260246000fd5b82516001600160a01b03168183015560209092019160010161042d565b601160005260008051602061131c833981519152908382015b818301811061075157505061041c565b60008155600101610741565b634e487b7160e01b600052604160045260246000fd5b600060608301526103cd565b909192946020806107c7600193607f198b8203018652606060408b51878060a01b038151168452858101516107b3816110b4565b868501520151918160408201520190611143565b9701920192019092916102b5565b60406107e18287611119565b5101516001600160a01b036107f68388611119565b51511690805115610dca57602061080d8489611119565b510151610819816110b4565b610822816110b4565b80610a24575081156109fb5761ffff60008051602061133c83398151915254169161088c60405161085281610f94565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b6040820152826111f1565b8151916000935b8385106108a95750505050506001905b01610287565b6001600160e01b03196108bc8684611119565b5116600081815260008051602061135c83398151915260205260409020546001600160a01b03166109e3576109526040516108f681610f79565b85815261ffff84166020808301918252600085815260008051602061135c833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b60008051602061133c83398151915254906801000000000000000082101561075d576109948260016109b1940160008051602061133c833981519152556111c1565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff808216146109cd57600161ffff81921601940193610893565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610a20906024830190611143565b0390fd5b610a2d816110b4565b60018103610b9457508115610b6f57610a8c604051610a4b81610f94565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b6040820152836111f1565b80519060005b828110610aa557505050506001906108a3565b6001600160e01b0319610ab88284611119565b5116600081815260008051602061135c83398151915260205260409020546001600160a01b0316308114610b5657858114610b3d5715610b2557600090815260008051602061135c8339815191526020526040902080546001600160a01b03191685179055600101610a92565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610a20906024830190611143565b610b9d816110b4565b60028103610daa575060008051602061133c833981519152549180610d92575080519060005b828110610bd657505050506001906108a3565b6001600160e01b0319610be98284611119565b5116908160005260008051602061135c83398151915260205260406000209460405195610c1587610f79565b546001600160a01b03811680885260a09190911c61ffff16602088015215610d795785516001600160a01b03163014610d605780156109cd576000190180958161ffff60208301511603610ce5575b505060008051602061133c83398151915254918215610ccf5760019260001901610c8d816111c1565b63ffffffff82549160031b1b1916905560008051602061133c8339815191525560005260008051602061135c8339815191526020526000604081205501610bc3565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610cf6610d59946111c1565b90549060031b1c60e01b92610d13846109948585850151166111c1565b01516001600160e01b0319909216600090815260008051602061135c83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610c64565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610dc3816110b4565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610217565b6040516368f7a67560e11b8152600490fd5b506060840151156101ff565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161067157606090830160808101908903601f1901821361067157604051918083016001600160401b03811184821017610f6457604052610ea260208301610fe9565b8352604082015160038110156106715760208401528101516001600160401b0381116106715789608001603f8284010112156106715760208183010151610ee881610fd2565b92610ef66040519485610faf565b81845260208401908c60800160408460051b86840101011161067157604084820101915b60408460051b86840101018310610f435750505050506040820152815260209283019201610086565b82516001600160e01b03198116810361067157815260209283019201610f1a565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b0382111761075d57604052565b606081019081106001600160401b0382111761075d57604052565b601f909101601f19168101906001600160401b0382119082101761075d57604052565b6001600160401b03811161075d5760051b60200190565b51906001600160a01b038216820361067157565b51906001600160401b038216820361067157565b9190604083820312610671576040519261102a84610f79565b8361103482610ffd565b815260208281015190926001600160401b03821161067157019280601f8501121561067157835161106481610fd2565b946110726040519687610faf565b818652848087019260051b8201019283116106715784809101915b83831061109c57505050500152565b81906110a784610fe9565b815201910190849061108d565b600311156106f557565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b8281106110fc575050505090565b83516001600160a01b0316855293810193928101926001016110ee565b805182101561112d5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b828110611163575050505090565b83516001600160e01b03191685529381019392810192600101611155565b919082519283825260005b8481106111ad575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161118c565b9060008051602061133c833981519152805483101561112d57600052601c60206000208360031c019260021b1690565b803b156111fc575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610a2090604483019061118156fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122034477731f6063883c0c4e645241b575decdff772ed0eed5c444e648eaad09a2e64736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a264697066735822122056352174ae2f3cc8b74ee0638a0eb0959aefb2c77c028d1f2c960d17a9f408b064736f6c63430008130033","sourceMap":"385:1527:79:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;385:1527:79;;;;;;;-1:-1:-1;;;;;385:1527:79;;;;;;;;;;;;;;;477:1:63;247:48;385:1527:79;582:20:63;578:50;;477:1;247:48;477:1;865:22:79;385:1527;;865:22;385:1527;-1:-1:-1;;;;;385:1527:79;;;;;;;;;;-1:-1:-1;;;;;385:1527:79;865:35;861:87;;385:1527;;;;;:::i;:::-;1022:1;385:1527;;;;;;;;;-1:-1:-1;385:1527:79;;;;;-1:-1:-1;;;;;385:1527:79;;;;:::i;:::-;;;;;1100:183;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1100:183;;385:1527;1084:199;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;1022:1:79;385:1527;;;;-1:-1:-1;;;;;385:1527:79;;;;:::i;:::-;;;;;1360:185;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1360:185;;385:1527;1344:201;;;:::i;:::-;;;;;:::i;:::-;;385:1527;;1632:43;;;;;;-1:-1:-1;;;;;1632:43:79;;;;;;;;;;;385:1527;1632:43;;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;385:1527:79;;;;;;;1632:43;;;;;385:1527;;;1632:43;;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:79;;;;;:::i;:::-;;;;;;865:22;385:1527;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:79;;;;;;;865:22;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;385:1527:79;;;;;;;;;-1:-1:-1;;;;;;385:1527:79;-1:-1:-1;385:1527:79;;-1:-1:-1;385:1527:79;;865:22;;385:1527;:::i;:::-;;;;;;;;;;;477:1:63;385:1527:79;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:79;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;385:1527:79;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1632:43;;385:1527;1632:43;;;;;1752:10;385:1527;;;;1739:12;385:1527;;;;;;;-1:-1:-1;;;;;385:1527:79;;;;-1:-1:-1;;;;;385:1527:79;;;;;;;;-1:-1:-1;;;;;477:1:63;385:1527:79;;;;;-1:-1:-1;;;;;385:1527:79;;;;;1752:10;385:1527;;;;;;;;1739:12;385:1527;;-1:-1:-1;;;;;385:1527:79;;;;;;;;;;;;;;;;;;;;;;1849:26;385:1527;;;;;;1849:26;385:1527;247:48:63;477:1;385:1527:79;;;;;;;;;;;;;;;865:22;385:1527;;1632:43;385:1527;;;;;;;;;;;;;;;;;477:1:63;385:1527:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;385:1527:79;;;;;;;;;1632:43;;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:63;385:1527:79;;;;;;;;;;;;;;;-1:-1:-1;;;;;;385:1527:79;;;;;;;;;;;;477:1:63;385:1527:79;;;;;;1632:43;385:1527;;;;;;;;865:22;385:1527;;;-1:-1:-1;;;;;;385:1527:79;;;;;;;;;;;;;-1:-1:-1;;;;;;385:1527:79;;;;;;;477:1:63;385:1527:79;;;;;;;;-1:-1:-1;;;;;;385:1527:79;;;;;;;;477:1:63;385:1527:79;;;;;;;;-1:-1:-1;;;;;;385:1527:79;;;;;;;;477:1:63;385:1527:79;;;;;;;;-1:-1:-1;;;;;;385:1527:79;;;;;;;;477:1:63;385:1527:79;;;;;;;;-1:-1:-1;;;;;;385:1527:79;;;;;;;;477:1:63;385:1527:79;;;;;;;;-1:-1:-1;;;;;;385:1527:79;;;;;;;;477:1:63;385:1527:79;;;;;;;;-1:-1:-1;;;;;;385:1527:79;;;;;;;;477:1:63;385:1527:79;;;;;;;;;;477:1:63;385:1527:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:63;385:1527:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;861:87;385:1527;;-1:-1:-1;;;923:14:79;;385:1527;;923:14;578:50:63;-1:-1:-1;;;611:17:63;;385:1527:79;;611:17:63;385:1527:79;;;;;;;-1:-1:-1;;;;;385:1527:79;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:79;;;;;;;:::o;:::-;;-1:-1:-1;385:1527:79;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;477:1:63;385:1527:79;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;385:1527:79;;;;;;:::o;:::-;;;-1:-1:-1;;;;;385:1527:79;;;;;;:::o","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3793,"length":20}]}}},"methodIdentifiers":{"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8))":"aa3d1588"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongGateway\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subnetAddr\",\"type\":\"address\"}],\"name\":\"SubnetDeployed\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"newSubnetActor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnetAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8))\":{\"params\":{\"_params\":\"The constructor params for Subnet Actor Diamond.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"SubnetDeployed(address)\":{\"notice\":\"Event emitted when a new subnet is deployed.\"}},\"kind\":\"user\",\"methods\":{\"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8))\":{\"notice\":\"Deploys a new subnet actor.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnetregistry/RegisterSubnetFacet.sol\":\"RegisterSubnetFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b\",\"dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"type":"error","name":"WrongGateway"},{"inputs":[{"internalType":"address","name":"subnetAddr","type":"address","indexed":false}],"type":"event","name":"SubnetDeployed","anonymous":false},{"inputs":[{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"_params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"}]}],"stateMutability":"nonpayable","type":"function","name":"newSubnetActor","outputs":[{"internalType":"address","name":"subnetAddr","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8))":{"params":{"_params":"The constructor params for Subnet Actor Diamond."}}},"version":1},"userdoc":{"kind":"user","methods":{"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8))":{"notice":"Deploys a new subnet actor."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnetregistry/RegisterSubnetFacet.sol":"RegisterSubnetFacet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87","urls":["bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b","dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","id":51076,"exportedSymbols":{"IDiamond":[39732],"ReentrancyGuard":[43314],"RegisterSubnetFacet":[51075],"SubnetActorDiamond":[36177],"SubnetRegistryActorStorage":[46169],"WrongGateway":[37086]},"nodeType":"SourceUnit","src":"46:1867:79","nodes":[{"id":50949,"nodeType":"PragmaDirective","src":"46:23:79","nodes":[],"literals":["solidity","0.8",".19"]},{"id":50951,"nodeType":"ImportDirective","src":"71:52:79","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":51076,"sourceUnit":39733,"symbolAliases":[{"foreign":{"id":50950,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"79:8:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50953,"nodeType":"ImportDirective","src":"124:61:79","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":51076,"sourceUnit":36178,"symbolAliases":[{"foreign":{"id":50952,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"132:18:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50955,"nodeType":"ImportDirective","src":"186:79:79","nodes":[],"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","file":"../lib/LibSubnetRegistryStorage.sol","nameLocation":"-1:-1:-1","scope":51076,"sourceUnit":46170,"symbolAliases":[{"foreign":{"id":50954,"name":"SubnetRegistryActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46169,"src":"194:26:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50957,"nodeType":"ImportDirective","src":"267:62:79","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":51076,"sourceUnit":43315,"symbolAliases":[{"foreign":{"id":50956,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43314,"src":"275:15:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50959,"nodeType":"ImportDirective","src":"330:53:79","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":51076,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":50958,"name":"WrongGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37086,"src":"338:12:79","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51075,"nodeType":"ContractDefinition","src":"385:1527:79","nodes":[{"id":50964,"nodeType":"VariableDeclaration","src":"439:37:79","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"475:1:79","scope":51075,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage"},"typeName":{"id":50963,"nodeType":"UserDefinedTypeName","pathNode":{"id":50962,"name":"SubnetRegistryActorStorage","nameLocations":["439:26:79"],"nodeType":"IdentifierPath","referencedDeclaration":46169,"src":"439:26:79"},"referencedDeclaration":46169,"src":"439:26:79","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage_ptr","typeString":"struct SubnetRegistryActorStorage"}},"visibility":"internal"},{"id":50969,"nodeType":"EventDefinition","src":"544:41:79","nodes":[],"anonymous":false,"documentation":{"id":50965,"nodeType":"StructuredDocumentation","src":"483:56:79","text":"@notice Event emitted when a new subnet is deployed."},"eventSelector":"0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c965","name":"SubnetDeployed","nameLocation":"550:14:79","parameters":{"id":50968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50967,"indexed":false,"mutability":"mutable","name":"subnetAddr","nameLocation":"573:10:79","nodeType":"VariableDeclaration","scope":50969,"src":"565:18:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50966,"name":"address","nodeType":"ElementaryTypeName","src":"565:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"564:20:79"}},{"id":51074,"nodeType":"FunctionDefinition","src":"707:1203:79","nodes":[],"body":{"id":51073,"nodeType":"Block","src":"851:1059:79","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":50980,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50973,"src":"865:7:79","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams calldata"}},"id":50981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"873:14:79","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":35808,"src":"865:22:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":50982,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50964,"src":"891:1:79","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":50983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"893:7:79","memberName":"GATEWAY","nodeType":"MemberAccess","referencedDeclaration":46143,"src":"891:9:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"865:35:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50989,"nodeType":"IfStatement","src":"861:87:79","trueBody":{"id":50988,"nodeType":"Block","src":"902:46:79","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50985,"name":"WrongGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37086,"src":"923:12:79","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:14:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50987,"nodeType":"RevertStatement","src":"916:21:79"}]}},{"assignments":[50995],"declarations":[{"constant":false,"id":50995,"mutability":"mutable","name":"diamondCut","nameLocation":"985:10:79","nodeType":"VariableDeclaration","scope":51073,"src":"958:37:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":50993,"nodeType":"UserDefinedTypeName","pathNode":{"id":50992,"name":"IDiamond.FacetCut","nameLocations":["958:8:79","967:8:79"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"958:17:79"},"referencedDeclaration":39721,"src":"958:17:79","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":50994,"nodeType":"ArrayTypeName","src":"958:19:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":51002,"initialValue":{"arguments":[{"hexValue":"32","id":51000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1022:1:79","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":50999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"998:23:79","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":50997,"nodeType":"UserDefinedTypeName","pathNode":{"id":50996,"name":"IDiamond.FacetCut","nameLocations":["1002:8:79","1011:8:79"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"1002:17:79"},"referencedDeclaration":39721,"src":"1002:17:79","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":50998,"nodeType":"ArrayTypeName","src":"1002:19:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":51001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"998:26:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"958:66:79"},{"expression":{"id":51016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51003,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50995,"src":"1084:10:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":51005,"indexExpression":{"hexValue":"30","id":51004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1095:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1084:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":51008,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50964,"src":"1146:1:79","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1148:19:79","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":46146,"src":"1146:21:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":51010,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"1189:8:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":51011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1198:14:79","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"1189:23:79","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":51012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1213:3:79","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"1189:27:79","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"expression":{"id":51013,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50964,"src":"1249:1:79","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1251:21:79","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":46152,"src":"1249:23:79","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":51006,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"1100:8:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":51007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1109:8:79","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"1100:17:79","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":51015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1132:12:79","1181:6:79","1230:17:79"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"1100:183:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"1084:199:79","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":51017,"nodeType":"ExpressionStatement","src":"1084:199:79"},{"expression":{"id":51031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51018,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50995,"src":"1344:10:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":51020,"indexExpression":{"hexValue":"31","id":51019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1355:1:79","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1344:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":51023,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50964,"src":"1406:1:79","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1408:20:79","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":46148,"src":"1406:22:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":51025,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"1450:8:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":51026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1459:14:79","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":39712,"src":"1450:23:79","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$39712_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":51027,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1474:3:79","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":39709,"src":"1450:27:79","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"}},{"expression":{"id":51028,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50964,"src":"1510:1:79","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1512:22:79","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":46156,"src":"1510:24:79","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$39712","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":51021,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"1360:8:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$39732_$","typeString":"type(contract IDiamond)"}},"id":51022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1369:8:79","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":39721,"src":"1360:17:79","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$39721_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":51030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1392:12:79","1442:6:79","1491:17:79"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"1360:185:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"1344:201:79","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":51032,"nodeType":"ExpressionStatement","src":"1344:201:79"},{"expression":{"id":51043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51033,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50978,"src":"1611:10:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":51039,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50995,"src":"1655:10:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":51040,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50973,"src":"1667:7:79","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$35829_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams calldata"}],"id":51038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1632:22:79","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":51037,"nodeType":"UserDefinedTypeName","pathNode":{"id":51036,"name":"SubnetActorDiamond","nameLocations":["1636:18:79"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"1636:18:79"},"referencedDeclaration":36177,"src":"1636:18:79","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}},"id":51041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1632:43:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":51035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1624:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51034,"name":"address","nodeType":"ElementaryTypeName","src":"1624:7:79","typeDescriptions":{}}},"id":51042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1624:52:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1611:65:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51044,"nodeType":"ExpressionStatement","src":"1611:65:79"},{"expression":{"id":51050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1737:26:79","subExpression":{"baseExpression":{"expression":{"id":51045,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50964,"src":"1739:1:79","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1741:10:79","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":46168,"src":"1739:12:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":51049,"indexExpression":{"expression":{"id":51047,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1752:3:79","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1756:6:79","memberName":"sender","nodeType":"MemberAccess","src":"1752:10:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1739:24:79","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":51051,"nodeType":"ExpressionStatement","src":"1737:26:79"},{"expression":{"id":51065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":51052,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50964,"src":"1773:1:79","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1775:7:79","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":46163,"src":"1773:9:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"}},"id":51062,"indexExpression":{"expression":{"id":51054,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1783:3:79","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1787:6:79","memberName":"sender","nodeType":"MemberAccess","src":"1783:10:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1773:21:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"}},"id":51063,"indexExpression":{"baseExpression":{"expression":{"id":51056,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50964,"src":"1795:1:79","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1797:10:79","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":46168,"src":"1795:12:79","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":51060,"indexExpression":{"expression":{"id":51058,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1808:3:79","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1812:6:79","memberName":"sender","nodeType":"MemberAccess","src":"1808:10:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1795:24:79","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1773:47:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51064,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50978,"src":"1823:10:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1773:60:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51066,"nodeType":"ExpressionStatement","src":"1773:60:79"},{"eventCall":{"arguments":[{"id":51068,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50978,"src":"1864:10:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51067,"name":"SubnetDeployed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50969,"src":"1849:14:79","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":51069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1849:26:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51070,"nodeType":"EmitStatement","src":"1844:31:79"},{"expression":{"id":51071,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50978,"src":"1893:10:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":50979,"id":51072,"nodeType":"Return","src":"1886:17:79"}]},"documentation":{"id":50970,"nodeType":"StructuredDocumentation","src":"591:111:79","text":"@notice Deploys a new subnet actor.\n @param _params The constructor params for Subnet Actor Diamond."},"functionSelector":"aa3d1588","implemented":true,"kind":"function","modifiers":[{"id":50976,"kind":"modifierInvocation","modifierName":{"id":50975,"name":"nonReentrant","nameLocations":["809:12:79"],"nodeType":"IdentifierPath","referencedDeclaration":43298,"src":"809:12:79"},"nodeType":"ModifierInvocation","src":"809:12:79"}],"name":"newSubnetActor","nameLocation":"716:14:79","parameters":{"id":50974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50973,"mutability":"mutable","name":"_params","nameLocation":"786:7:79","nodeType":"VariableDeclaration","scope":51074,"src":"740:53:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":50972,"nodeType":"UserDefinedTypeName","pathNode":{"id":50971,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["740:18:79","759:17:79"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"740:36:79"},"referencedDeclaration":35829,"src":"740:36:79","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"730:69:79"},"returnParameters":{"id":50979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50978,"mutability":"mutable","name":"subnetAddr","nameLocation":"839:10:79","nodeType":"VariableDeclaration","scope":51074,"src":"831:18:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50977,"name":"address","nodeType":"ElementaryTypeName","src":"831:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"830:20:79"},"scope":51075,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":50960,"name":"ReentrancyGuard","nameLocations":["417:15:79"],"nodeType":"IdentifierPath","referencedDeclaration":43314,"src":"417:15:79"},"id":50961,"nodeType":"InheritanceSpecifier","src":"417:15:79"}],"canonicalName":"RegisterSubnetFacet","contractDependencies":[36177],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51075,43314],"name":"RegisterSubnetFacet","nameLocation":"394:19:79","scope":51076,"usedErrors":[37086,43262]}],"license":"MIT OR Apache-2.0"},"id":79} \ No newline at end of file +{"abi":[{"type":"function","name":"newSubnetActor","inputs":[{"name":"_params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"supplySource","type":"tuple","internalType":"struct SupplySource","components":[{"name":"kind","type":"uint8","internalType":"enum SupplyKind"},{"name":"tokenAddress","type":"address","internalType":"address"}]}]}],"outputs":[{"name":"subnetAddr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"event","name":"SubnetDeployed","inputs":[{"name":"subnetAddr","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"WrongGateway","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657611ea9908161001c8239f35b600080fdfe60808060405260043610156200001457600080fd5b60003560e01c637be005d5146200002a57600080fd5b34620006035760031960203682011262000603576001600160401b036004351162000603576101a09060043536030112620006035760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620009025760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b0381169081900362000603576000546001600160a01b031603620008f057604051620000e78162000911565b6002815260005b60408110620008c15750600154604051906001600160a01b0316620001138262000911565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200084c57620001b7945491818110620007b7575b81811062000797575b81811062000777575b81811062000757575b81811062000737575b81811062000717575b818110620006f9575b10620006e3575b5003826200092d565b6040820152620001c78262000970565b52620001d38162000970565b50600254604051906001600160a01b0316620001ef8262000911565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b806007830110620007d7576200028b945491818110620007b75781811062000797578181106200077757818110620007575781811062000737578181106200071757818110620006f95710620006e3575003826200092d565b60408201526200029b8262000994565b52620002a78162000994565b5060405190816114a48101106001600160401b036114a484011117620006cd576114a4620009d0833960406114a4830181815282519181018290526060600583901b82018101936020019291600091015b828210620006355785856114a48201810360206114a484010152600435600401356042196004353603018112156200060357600435016101a082526001600160401b036200034960048301620009a5565b166101a08301526024810135602219823603018112156200060357016001600160401b0360048201351162000603576024810190600481013560051b36038213620006035760406101c084015260048101356101e08401526102008301919060005b600482013581106200060857506001600160a01b039150620003d49050600435602401620009ba565b166020830152604460043501356001811015620006035760408301526064600435013560608301526001600160401b0362000414608460043501620009a5565b1660808301526001600160401b036200043260a460043501620009a5565b1660a083015260c4600435013560ff8116809103620006035760c083015260e4600435013561ffff8116809103620006035760e0830152610104600435013561010083015261012460043501358060000b8091036200060357610120830152610144600435013560038110156200060357620004ae816200094f565b6101408301526101646004350135916002831015620006035761016081019290925282916101806001600160a01b03620004ee60043561018401620009ba565b1691015203906000f08015620005f75733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005e1576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b036200062489620009ba565b1681520195019392019050620003ab565b90919293605f196114a4870182030182528451602060806040606085019360018060a01b038151168652838101516200066e816200094f565b84870152015193606060408201528451809452019201906000905b808210620006a957505050602080600192960192019201909291620002f8565b82516001600160e01b03191684526020938401939092019160019091019062000689565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b602090604051620008d28162000911565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b03821117620006cd57604052565b90601f801991011681019081106001600160401b03821117620006cd57604052565b600311156200095a57565b634e487b7160e01b600052602160045260246000fd5b8051156200097e5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156200097e5760400190565b35906001600160401b03821682036200060357565b35906001600160a01b0382168203620006035756fe608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212204a1029b43006a00fb724cee38a6c5f8bef964c7c85590654dbea4b2c1c0a3b3464736f6c63430008130033","sourceMap":"385:1527:86:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3984,"length":20}]}}},"deployedBytecode":{"object":"0x60808060405260043610156200001457600080fd5b60003560e01c637be005d5146200002a57600080fd5b34620006035760031960203682011262000603576001600160401b036004351162000603576101a09060043536030112620006035760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb62058600955414620009025760017f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555602460043501356001600160a01b0381169081900362000603576000546001600160a01b031603620008f057604051620000e78162000911565b6002815260005b60408110620008c15750600154604051906001600160a01b0316620001138262000911565b81526000602082015260405180816020600354928381520160036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b8060078301106200084c57620001b7945491818110620007b7575b81811062000797575b81811062000777575b81811062000757575b81811062000737575b81811062000717575b818110620006f9575b10620006e3575b5003826200092d565b6040820152620001c78262000970565b52620001d38162000970565b50600254604051906001600160a01b0316620001ef8262000911565b81526000602082015260405180816020600454928381520160046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b806007830110620007d7576200028b945491818110620007b75781811062000797578181106200077757818110620007575781811062000737578181106200071757818110620006f95710620006e3575003826200092d565b60408201526200029b8262000994565b52620002a78162000994565b5060405190816114a48101106001600160401b036114a484011117620006cd576114a4620009d0833960406114a4830181815282519181018290526060600583901b82018101936020019291600091015b828210620006355785856114a48201810360206114a484010152600435600401356042196004353603018112156200060357600435016101a082526001600160401b036200034960048301620009a5565b166101a08301526024810135602219823603018112156200060357016001600160401b0360048201351162000603576024810190600481013560051b36038213620006035760406101c084015260048101356101e08401526102008301919060005b600482013581106200060857506001600160a01b039150620003d49050600435602401620009ba565b166020830152604460043501356001811015620006035760408301526064600435013560608301526001600160401b0362000414608460043501620009a5565b1660808301526001600160401b036200043260a460043501620009a5565b1660a083015260c4600435013560ff8116809103620006035760c083015260e4600435013561ffff8116809103620006035760e0830152610104600435013561010083015261012460043501358060000b8091036200060357610120830152610144600435013560038110156200060357620004ae816200094f565b6101408301526101646004350135916002831015620006035761016081019290925282916101806001600160a01b03620004ee60043561018401620009ba565b1691015203906000f08015620005f75733600090815260066020526040902080546001600160401b03808216936001600160a01b03169291908414620005e1576001600160401b0360016020950116906001600160401b03191617905533600052600582526040600020600683526001600160401b036040600020541660005282526040600020816bffffffffffffffffffffffff60a01b8254161790557f0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c96582604051838152a160007f691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb620586009555604051908152f35b634e487b7160e01b600052601160045260246000fd5b6040513d6000823e3d90fd5b600080fd5b9091926001602080600493838060a01b036200062489620009ba565b1681520195019392019050620003ab565b90919293605f196114a4870182030182528451602060806040606085019360018060a01b038151168652838101516200066e816200094f565b84870152015193606060408201528451809452019201906000905b808210620006a957505050602080600192960192019201909291620002f8565b82516001600160e01b03191684526020938401939092019160019091019062000689565b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031916815260200186620001ae565b602083811b6001600160e01b031916855290930192600101620001a7565b604083901b6001600160e01b03191684526020909301926001016200019e565b606083901b6001600160e01b031916845260209093019260010162000195565b608083901b6001600160e01b03191684526020909301926001016200018c565b60a083901b6001600160e01b031916845260209093019260010162000183565b60c083901b6001600160e01b03191684526020909301926001016200017a565b60e083901b6001600160e01b031916845260209093019260010162000171565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000232565b916008919350610100600191865463ffffffff60e01b90818160e01b16835260c08282821b16602085015260a08383821b1660408601526080848460608282851b16818a01521b1690860152838360401b1690850152828260201b16908401521660e082015201940192018492939162000156565b602090604051620008d28162000911565b600081526000838201526060604082015282828501015201620000ee565b604051633bed049960e01b8152600490fd5b6329f745a760e01b8152600490fd5b606081019081106001600160401b03821117620006cd57604052565b90601f801991011681019081106001600160401b03821117620006cd57604052565b600311156200095a57565b634e487b7160e01b600052602160045260246000fd5b8051156200097e5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156200097e5760400190565b35906001600160401b03821682036200060357565b35906001600160a01b0382168203620006035756fe608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2a26469706673582212204a1029b43006a00fb724cee38a6c5f8bef964c7c85590654dbea4b2c1c0a3b3464736f6c63430008130033","sourceMap":"385:1527:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;385:1527:86;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;;;;;;;;;;;477:1:68;247:48;385:1527:86;582:20:68;578:50;;477:1;247:48;477:1;865:22:86;385:1527;;865:22;385:1527;-1:-1:-1;;;;;385:1527:86;;;;;;;;;;-1:-1:-1;;;;;385:1527:86;865:35;861:87;;385:1527;;;;;:::i;:::-;1022:1;385:1527;;;;;;;;;-1:-1:-1;385:1527:86;;;;;-1:-1:-1;;;;;385:1527:86;;;;:::i;:::-;;;;;1100:183;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1100:183;;385:1527;1084:199;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;1022:1:86;385:1527;;;;-1:-1:-1;;;;;385:1527:86;;;;:::i;:::-;;;;;1360:185;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1360:185;;385:1527;1344:201;;;:::i;:::-;;;;;:::i;:::-;;385:1527;;1632:43;;;;;;-1:-1:-1;;;;;1632:43:86;;;;;;;;;;;385:1527;1632:43;;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;385:1527:86;;;;;;;1632:43;;;;;385:1527;;;1632:43;;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;:::i;:::-;;;;;;865:22;385:1527;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;;;865:22;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;385:1527:86;;;;;;;;;-1:-1:-1;;;;;;385:1527:86;-1:-1:-1;385:1527:86;;-1:-1:-1;385:1527:86;;865:22;;385:1527;:::i;:::-;;;;;;;;;;;477:1:68;385:1527:86;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1022:1;385:1527;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;;:::i;:::-;;;;;1632:43;;385:1527;1632:43;;;;;1752:10;385:1527;;;;1739:12;385:1527;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;-1:-1:-1;;;;;385:1527:86;;;;;;;;-1:-1:-1;;;;;477:1:68;385:1527:86;;;;;-1:-1:-1;;;;;385:1527:86;;;;;1752:10;385:1527;;;;;;;;1739:12;385:1527;;-1:-1:-1;;;;;385:1527:86;;;;;;;;;;;;;;;;;;;;;;1849:26;385:1527;;;;;;1849:26;385:1527;247:48:68;477:1;385:1527:86;;;;;;;;;;;;;;;865:22;385:1527;;1632:43;385:1527;;;;;;;;;;;;;;;;;477:1:68;385:1527:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;385:1527:86;;;;;;;;;1632:43;;;385:1527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:68;385:1527:86;;;;;;;;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;;;;;477:1:68;385:1527:86;;;;;;1632:43;385:1527;;;;;;;;865:22;385:1527;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;477:1:68;385:1527:86;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;477:1:68;385:1527:86;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;477:1:68;385:1527:86;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;477:1:68;385:1527:86;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;477:1:68;385:1527:86;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;477:1:68;385:1527:86;;;;;;;;-1:-1:-1;;;;;;385:1527:86;;;;;;;;477:1:68;385:1527:86;;;;;;;;;;477:1:68;385:1527:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:68;385:1527:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;861:87;385:1527;;-1:-1:-1;;;923:14:86;;385:1527;;923:14;578:50:68;-1:-1:-1;;;611:17:68;;385:1527:86;;611:17:68;385:1527:86;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;385:1527:86;;;;;;;:::o;:::-;;-1:-1:-1;385:1527:86;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;477:1:68;385:1527:86;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;385:1527:86;;;;;;:::o;:::-;;;-1:-1:-1;;;;;385:1527:86;;;;;;:::o","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":3956,"length":20}]}}},"methodIdentifiers":{"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))":"7be005d5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongGateway\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subnetAddr\",\"type\":\"address\"}],\"name\":\"SubnetDeployed\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum SupplyKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct SupplySource\",\"name\":\"supplySource\",\"type\":\"tuple\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"newSubnetActor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnetAddr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))\":{\"params\":{\"_params\":\"The constructor params for Subnet Actor Diamond.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"SubnetDeployed(address)\":{\"notice\":\"Event emitted when a new subnet is deployed.\"}},\"kind\":\"user\",\"methods\":{\"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))\":{\"notice\":\"Deploys a new subnet actor.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnetregistry/RegisterSubnetFacet.sol\":\"RegisterSubnetFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"type":"error","name":"WrongGateway"},{"inputs":[{"internalType":"address","name":"subnetAddr","type":"address","indexed":false}],"type":"event","name":"SubnetDeployed","anonymous":false},{"inputs":[{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"_params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"},{"internalType":"struct SupplySource","name":"supplySource","type":"tuple","components":[{"internalType":"enum SupplyKind","name":"kind","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"newSubnetActor","outputs":[{"internalType":"address","name":"subnetAddr","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))":{"params":{"_params":"The constructor params for Subnet Actor Diamond."}}},"version":1},"userdoc":{"kind":"user","methods":{"newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))":{"notice":"Deploys a new subnet actor."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnetregistry/RegisterSubnetFacet.sol":"RegisterSubnetFacet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","id":52280,"exportedSymbols":{"IDiamond":[40170],"ReentrancyGuard":[44013],"RegisterSubnetFacet":[52279],"SubnetActorDiamond":[36615],"SubnetRegistryActorStorage":[47365],"WrongGateway":[37518]},"nodeType":"SourceUnit","src":"46:1867:86","nodes":[{"id":52153,"nodeType":"PragmaDirective","src":"46:23:86","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52155,"nodeType":"ImportDirective","src":"71:52:86","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"../interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":52280,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":52154,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"79:8:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52157,"nodeType":"ImportDirective","src":"124:61:86","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":52280,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":52156,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"132:18:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52159,"nodeType":"ImportDirective","src":"186:79:86","nodes":[],"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","file":"../lib/LibSubnetRegistryStorage.sol","nameLocation":"-1:-1:-1","scope":52280,"sourceUnit":47366,"symbolAliases":[{"foreign":{"id":52158,"name":"SubnetRegistryActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47365,"src":"194:26:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52161,"nodeType":"ImportDirective","src":"267:62:86","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":52280,"sourceUnit":44014,"symbolAliases":[{"foreign":{"id":52160,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44013,"src":"275:15:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52163,"nodeType":"ImportDirective","src":"330:53:86","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":52280,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":52162,"name":"WrongGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37518,"src":"338:12:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52279,"nodeType":"ContractDefinition","src":"385:1527:86","nodes":[{"id":52168,"nodeType":"VariableDeclaration","src":"439:37:86","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"475:1:86","scope":52279,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage"},"typeName":{"id":52167,"nodeType":"UserDefinedTypeName","pathNode":{"id":52166,"name":"SubnetRegistryActorStorage","nameLocations":["439:26:86"],"nodeType":"IdentifierPath","referencedDeclaration":47365,"src":"439:26:86"},"referencedDeclaration":47365,"src":"439:26:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage_ptr","typeString":"struct SubnetRegistryActorStorage"}},"visibility":"internal"},{"id":52173,"nodeType":"EventDefinition","src":"544:41:86","nodes":[],"anonymous":false,"documentation":{"id":52169,"nodeType":"StructuredDocumentation","src":"483:56:86","text":"@notice Event emitted when a new subnet is deployed."},"eventSelector":"0431ea4d93af299b92f2c606ddcaf4b31cb0013c5ed1fdea837b8a912347c965","name":"SubnetDeployed","nameLocation":"550:14:86","parameters":{"id":52172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52171,"indexed":false,"mutability":"mutable","name":"subnetAddr","nameLocation":"573:10:86","nodeType":"VariableDeclaration","scope":52173,"src":"565:18:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52170,"name":"address","nodeType":"ElementaryTypeName","src":"565:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"564:20:86"}},{"id":52278,"nodeType":"FunctionDefinition","src":"707:1203:86","nodes":[],"body":{"id":52277,"nodeType":"Block","src":"851:1059:86","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52184,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52177,"src":"865:7:86","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams calldata"}},"id":52185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"873:14:86","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":36229,"src":"865:22:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":52186,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"891:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"893:7:86","memberName":"GATEWAY","nodeType":"MemberAccess","referencedDeclaration":47339,"src":"891:9:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"865:35:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52193,"nodeType":"IfStatement","src":"861:87:86","trueBody":{"id":52192,"nodeType":"Block","src":"902:46:86","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52189,"name":"WrongGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37518,"src":"923:12:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:14:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52191,"nodeType":"RevertStatement","src":"916:21:86"}]}},{"assignments":[52199],"declarations":[{"constant":false,"id":52199,"mutability":"mutable","name":"diamondCut","nameLocation":"985:10:86","nodeType":"VariableDeclaration","scope":52277,"src":"958:37:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":52197,"nodeType":"UserDefinedTypeName","pathNode":{"id":52196,"name":"IDiamond.FacetCut","nameLocations":["958:8:86","967:8:86"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"958:17:86"},"referencedDeclaration":40159,"src":"958:17:86","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52198,"nodeType":"ArrayTypeName","src":"958:19:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"}],"id":52206,"initialValue":{"arguments":[{"hexValue":"32","id":52204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1022:1:86","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":52203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"998:23:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IDiamond.FacetCut memory[] memory)"},"typeName":{"baseType":{"id":52201,"nodeType":"UserDefinedTypeName","pathNode":{"id":52200,"name":"IDiamond.FacetCut","nameLocations":["1002:8:86","1011:8:86"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"1002:17:86"},"referencedDeclaration":40159,"src":"1002:17:86","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":52202,"nodeType":"ArrayTypeName","src":"1002:19:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}}},"id":52205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"998:26:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"958:66:86"},{"expression":{"id":52220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52207,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52199,"src":"1084:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52209,"indexExpression":{"hexValue":"30","id":52208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1095:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1084:13:86","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":52212,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"1146:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1148:19:86","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":47342,"src":"1146:21:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52214,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"1189:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":52215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1198:14:86","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"1189:23:86","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1213:3:86","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"1189:27:86","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"expression":{"id":52217,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"1249:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1251:21:86","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":47348,"src":"1249:23:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52210,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"1100:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":52211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1109:8:86","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"1100:17:86","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1132:12:86","1181:6:86","1230:17:86"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"1100:183:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"1084:199:86","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52221,"nodeType":"ExpressionStatement","src":"1084:199:86"},{"expression":{"id":52235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52222,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52199,"src":"1344:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},"id":52224,"indexExpression":{"hexValue":"31","id":52223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1355:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1344:13:86","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":52227,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"1406:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1408:20:86","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":47344,"src":"1406:22:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":52229,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"1450:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":52230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1459:14:86","memberName":"FacetCutAction","nodeType":"MemberAccess","referencedDeclaration":40150,"src":"1450:23:86","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_FacetCutAction_$40150_$","typeString":"type(enum IDiamond.FacetCutAction)"}},"id":52231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1474:3:86","memberName":"Add","nodeType":"MemberAccess","referencedDeclaration":40147,"src":"1450:27:86","typeDescriptions":{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"}},{"expression":{"id":52232,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"1510:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1512:22:86","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":47352,"src":"1510:24:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_FacetCutAction_$40150","typeString":"enum IDiamond.FacetCutAction"},{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}],"expression":{"id":52225,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"1360:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamond_$40170_$","typeString":"type(contract IDiamond)"}},"id":52226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1369:8:86","memberName":"FacetCut","nodeType":"MemberAccess","referencedDeclaration":40159,"src":"1360:17:86","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FacetCut_$40159_storage_ptr_$","typeString":"type(struct IDiamond.FacetCut storage pointer)"}},"id":52234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1392:12:86","1442:6:86","1491:17:86"],"names":["facetAddress","action","functionSelectors"],"nodeType":"FunctionCall","src":"1360:185:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"src":"1344:201:86","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_memory_ptr","typeString":"struct IDiamond.FacetCut memory"}},"id":52236,"nodeType":"ExpressionStatement","src":"1344:201:86"},{"expression":{"id":52247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52237,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52182,"src":"1611:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":52243,"name":"diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52199,"src":"1655:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"id":52244,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52177,"src":"1667:7:86","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_struct$_ConstructorParams_$36253_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams calldata"}],"id":52242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1632:22:86","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"function (struct IDiamond.FacetCut memory[] memory,struct SubnetActorDiamond.ConstructorParams memory) returns (contract SubnetActorDiamond)"},"typeName":{"id":52241,"nodeType":"UserDefinedTypeName","pathNode":{"id":52240,"name":"SubnetActorDiamond","nameLocations":["1636:18:86"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"1636:18:86"},"referencedDeclaration":36615,"src":"1636:18:86","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}},"id":52245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1632:43:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":52239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1624:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52238,"name":"address","nodeType":"ElementaryTypeName","src":"1624:7:86","typeDescriptions":{}}},"id":52246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1624:52:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1611:65:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52248,"nodeType":"ExpressionStatement","src":"1611:65:86"},{"expression":{"id":52254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1737:26:86","subExpression":{"baseExpression":{"expression":{"id":52249,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"1739:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1741:10:86","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":47364,"src":"1739:12:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":52253,"indexExpression":{"expression":{"id":52251,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1752:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1756:6:86","memberName":"sender","nodeType":"MemberAccess","src":"1752:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1739:24:86","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":52255,"nodeType":"ExpressionStatement","src":"1737:26:86"},{"expression":{"id":52269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":52256,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"1773:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1775:7:86","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":47359,"src":"1773:9:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"}},"id":52266,"indexExpression":{"expression":{"id":52258,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1783:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1787:6:86","memberName":"sender","nodeType":"MemberAccess","src":"1783:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1773:21:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"}},"id":52267,"indexExpression":{"baseExpression":{"expression":{"id":52260,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52168,"src":"1795:1:86","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1797:10:86","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":47364,"src":"1795:12:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":52264,"indexExpression":{"expression":{"id":52262,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1808:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1812:6:86","memberName":"sender","nodeType":"MemberAccess","src":"1808:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1795:24:86","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1773:47:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52268,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52182,"src":"1823:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1773:60:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52270,"nodeType":"ExpressionStatement","src":"1773:60:86"},{"eventCall":{"arguments":[{"id":52272,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52182,"src":"1864:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52271,"name":"SubnetDeployed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52173,"src":"1849:14:86","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":52273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1849:26:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52274,"nodeType":"EmitStatement","src":"1844:31:86"},{"expression":{"id":52275,"name":"subnetAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52182,"src":"1893:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52183,"id":52276,"nodeType":"Return","src":"1886:17:86"}]},"documentation":{"id":52174,"nodeType":"StructuredDocumentation","src":"591:111:86","text":"@notice Deploys a new subnet actor.\n @param _params The constructor params for Subnet Actor Diamond."},"functionSelector":"7be005d5","implemented":true,"kind":"function","modifiers":[{"id":52180,"kind":"modifierInvocation","modifierName":{"id":52179,"name":"nonReentrant","nameLocations":["809:12:86"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"809:12:86"},"nodeType":"ModifierInvocation","src":"809:12:86"}],"name":"newSubnetActor","nameLocation":"716:14:86","parameters":{"id":52178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52177,"mutability":"mutable","name":"_params","nameLocation":"786:7:86","nodeType":"VariableDeclaration","scope":52278,"src":"740:53:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_calldata_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":52176,"nodeType":"UserDefinedTypeName","pathNode":{"id":52175,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["740:18:86","759:17:86"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"740:36:86"},"referencedDeclaration":36253,"src":"740:36:86","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"730:69:86"},"returnParameters":{"id":52183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52182,"mutability":"mutable","name":"subnetAddr","nameLocation":"839:10:86","nodeType":"VariableDeclaration","scope":52278,"src":"831:18:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52181,"name":"address","nodeType":"ElementaryTypeName","src":"831:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"830:20:86"},"scope":52279,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":52164,"name":"ReentrancyGuard","nameLocations":["417:15:86"],"nodeType":"IdentifierPath","referencedDeclaration":44013,"src":"417:15:86"},"id":52165,"nodeType":"InheritanceSpecifier","src":"417:15:86"}],"canonicalName":"RegisterSubnetFacet","contractDependencies":[36615],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52279,44013],"name":"RegisterSubnetFacet","nameLocation":"394:19:86","scope":52280,"usedErrors":[37518,43961]}],"license":"MIT OR Apache-2.0"},"id":86} \ No newline at end of file diff --git a/.out/SafeERC20.sol/SafeERC20.json b/.out/SafeERC20.sol/SafeERC20.json new file mode 100644 index 000000000..ce0e642b5 --- /dev/null +++ b/.out/SafeERC20.sol/SafeERC20.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"SafeERC20FailedDecreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"currentAllowance","type":"uint256","internalType":"uint256"},{"name":"requestedDecrease","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122012fed3b20783f4a52b9618ca70f5cd84e84f32e9e391ab0fea27c71553381e3a64736f6c63430008130033","sourceMap":"702:5650:28:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122012fed3b20783f4a52b9618ca70f5cd84e84f32e9e391ab0fea27c71553381e3a64736f6c63430008130033","sourceMap":"702:5650:28:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentAllowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedDecrease\",\"type\":\"uint256\"}],\"name\":\"SafeERC20FailedDecreaseAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"errors\":{\"SafeERC20FailedDecreaseAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failed `decreaseAllowance` request.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"type":"error","name":"SafeERC20FailedDecreaseAllowance"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":"SafeERC20"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","id":32454,"exportedSymbols":{"Address":[32838],"IERC20":[31999],"IERC20Permit":[32104],"SafeERC20":[32453]},"nodeType":"SourceUnit","src":"115:6238:28","nodes":[{"id":32106,"nodeType":"PragmaDirective","src":"115:24:28","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":32107,"nodeType":"ImportDirective","src":"141:23:28","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","nameLocation":"-1:-1:-1","scope":32454,"sourceUnit":32000,"symbolAliases":[],"unitAlias":""},{"id":32108,"nodeType":"ImportDirective","src":"165:40:28","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol","file":"../extensions/IERC20Permit.sol","nameLocation":"-1:-1:-1","scope":32454,"sourceUnit":32105,"symbolAliases":[],"unitAlias":""},{"id":32109,"nodeType":"ImportDirective","src":"206:36:28","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"../../../utils/Address.sol","nameLocation":"-1:-1:-1","scope":32454,"sourceUnit":32839,"symbolAliases":[],"unitAlias":""},{"id":32453,"nodeType":"ContractDefinition","src":"702:5650:28","nodes":[{"id":32113,"nodeType":"UsingForDirective","src":"726:26:28","nodes":[],"global":false,"libraryName":{"id":32111,"name":"Address","nameLocations":["732:7:28"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"732:7:28"},"typeName":{"id":32112,"name":"address","nodeType":"ElementaryTypeName","src":"744:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":32118,"nodeType":"ErrorDefinition","src":"827:46:28","nodes":[],"documentation":{"id":32114,"nodeType":"StructuredDocumentation","src":"758:64:28","text":" @dev An operation with an ERC20 token failed."},"errorSelector":"5274afe7","name":"SafeERC20FailedOperation","nameLocation":"833:24:28","parameters":{"id":32117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32116,"mutability":"mutable","name":"token","nameLocation":"866:5:28","nodeType":"VariableDeclaration","scope":32118,"src":"858:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32115,"name":"address","nodeType":"ElementaryTypeName","src":"858:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"857:15:28"}},{"id":32127,"nodeType":"ErrorDefinition","src":"955:109:28","nodes":[],"documentation":{"id":32119,"nodeType":"StructuredDocumentation","src":"879:71:28","text":" @dev Indicates a failed `decreaseAllowance` request."},"errorSelector":"e570110f","name":"SafeERC20FailedDecreaseAllowance","nameLocation":"961:32:28","parameters":{"id":32126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32121,"mutability":"mutable","name":"spender","nameLocation":"1002:7:28","nodeType":"VariableDeclaration","scope":32127,"src":"994:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32120,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32123,"mutability":"mutable","name":"currentAllowance","nameLocation":"1019:16:28","nodeType":"VariableDeclaration","scope":32127,"src":"1011:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32122,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32125,"mutability":"mutable","name":"requestedDecrease","nameLocation":"1045:17:28","nodeType":"VariableDeclaration","scope":32127,"src":"1037:25:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32124,"name":"uint256","nodeType":"ElementaryTypeName","src":"1037:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"993:70:28"}},{"id":32151,"nodeType":"FunctionDefinition","src":"1254:160:28","nodes":[],"body":{"id":32150,"nodeType":"Block","src":"1326:88:28","nodes":[],"statements":[{"expression":{"arguments":[{"id":32139,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32131,"src":"1356:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},{"arguments":[{"expression":{"id":32142,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32131,"src":"1378:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":32143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1384:8:28","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":31966,"src":"1378:14:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},{"components":[{"id":32144,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32133,"src":"1395:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32145,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32135,"src":"1399:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":32146,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1394:11:28","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}],"expression":{"id":32140,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1363:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1367:10:28","memberName":"encodeCall","nodeType":"MemberAccess","src":"1363:14:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":32147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1363:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":32138,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32403,"src":"1336:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":32148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1336:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32149,"nodeType":"ExpressionStatement","src":"1336:71:28"}]},"documentation":{"id":32128,"nodeType":"StructuredDocumentation","src":"1070:179:28","text":" @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"1263:12:28","parameters":{"id":32136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32131,"mutability":"mutable","name":"token","nameLocation":"1283:5:28","nodeType":"VariableDeclaration","scope":32151,"src":"1276:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},"typeName":{"id":32130,"nodeType":"UserDefinedTypeName","pathNode":{"id":32129,"name":"IERC20","nameLocations":["1276:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"1276:6:28"},"referencedDeclaration":31999,"src":"1276:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":32133,"mutability":"mutable","name":"to","nameLocation":"1298:2:28","nodeType":"VariableDeclaration","scope":32151,"src":"1290:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32132,"name":"address","nodeType":"ElementaryTypeName","src":"1290:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32135,"mutability":"mutable","name":"value","nameLocation":"1310:5:28","nodeType":"VariableDeclaration","scope":32151,"src":"1302:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32134,"name":"uint256","nodeType":"ElementaryTypeName","src":"1302:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1275:41:28"},"returnParameters":{"id":32137,"nodeType":"ParameterList","parameters":[],"src":"1326:0:28"},"scope":32453,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32178,"nodeType":"FunctionDefinition","src":"1653:188:28","nodes":[],"body":{"id":32177,"nodeType":"Block","src":"1743:98:28","nodes":[],"statements":[{"expression":{"arguments":[{"id":32165,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32155,"src":"1773:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},{"arguments":[{"expression":{"id":32168,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32155,"src":"1795:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":32169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1801:12:28","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":31998,"src":"1795:18:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},{"components":[{"id":32170,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32157,"src":"1816:4:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32171,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32159,"src":"1822:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32172,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32161,"src":"1826:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":32173,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1815:17:28","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_uint256_$","typeString":"tuple(address,address,uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_uint256_$","typeString":"tuple(address,address,uint256)"}],"expression":{"id":32166,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1780:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1784:10:28","memberName":"encodeCall","nodeType":"MemberAccess","src":"1780:14:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":32174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1780:53:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":32164,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32403,"src":"1753:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":32175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1753:81:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32176,"nodeType":"ExpressionStatement","src":"1753:81:28"}]},"documentation":{"id":32152,"nodeType":"StructuredDocumentation","src":"1420:228:28","text":" @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n calling contract. If `token` returns no value, non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1662:16:28","parameters":{"id":32162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32155,"mutability":"mutable","name":"token","nameLocation":"1686:5:28","nodeType":"VariableDeclaration","scope":32178,"src":"1679:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},"typeName":{"id":32154,"nodeType":"UserDefinedTypeName","pathNode":{"id":32153,"name":"IERC20","nameLocations":["1679:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"1679:6:28"},"referencedDeclaration":31999,"src":"1679:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":32157,"mutability":"mutable","name":"from","nameLocation":"1701:4:28","nodeType":"VariableDeclaration","scope":32178,"src":"1693:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32156,"name":"address","nodeType":"ElementaryTypeName","src":"1693:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32159,"mutability":"mutable","name":"to","nameLocation":"1715:2:28","nodeType":"VariableDeclaration","scope":32178,"src":"1707:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32158,"name":"address","nodeType":"ElementaryTypeName","src":"1707:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32161,"mutability":"mutable","name":"value","nameLocation":"1727:5:28","nodeType":"VariableDeclaration","scope":32178,"src":"1719:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32160,"name":"uint256","nodeType":"ElementaryTypeName","src":"1719:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1678:55:28"},"returnParameters":{"id":32163,"nodeType":"ParameterList","parameters":[],"src":"1743:0:28"},"scope":32453,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32209,"nodeType":"FunctionDefinition","src":"2032:225:28","nodes":[],"body":{"id":32208,"nodeType":"Block","src":"2118:139:28","nodes":[],"statements":[{"assignments":[32190],"declarations":[{"constant":false,"id":32190,"mutability":"mutable","name":"oldAllowance","nameLocation":"2136:12:28","nodeType":"VariableDeclaration","scope":32208,"src":"2128:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32189,"name":"uint256","nodeType":"ElementaryTypeName","src":"2128:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32199,"initialValue":{"arguments":[{"arguments":[{"id":32195,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2175:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$32453","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$32453","typeString":"library SafeERC20"}],"id":32194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2167:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32193,"name":"address","nodeType":"ElementaryTypeName","src":"2167:7:28","typeDescriptions":{}}},"id":32196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2167:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32197,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32184,"src":"2182:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":32191,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32182,"src":"2151:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":32192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2157:9:28","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":31976,"src":"2151:15:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":32198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2151:39:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2128:62:28"},{"expression":{"arguments":[{"id":32201,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32182,"src":"2213:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},{"id":32202,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32184,"src":"2220:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32203,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32190,"src":"2229:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32204,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32186,"src":"2244:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2229:20:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32200,"name":"forceApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32299,"src":"2200:12:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,uint256)"}},"id":32206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2200:50:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32207,"nodeType":"ExpressionStatement","src":"2200:50:28"}]},"documentation":{"id":32179,"nodeType":"StructuredDocumentation","src":"1847:180:28","text":" @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2041:21:28","parameters":{"id":32187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32182,"mutability":"mutable","name":"token","nameLocation":"2070:5:28","nodeType":"VariableDeclaration","scope":32209,"src":"2063:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},"typeName":{"id":32181,"nodeType":"UserDefinedTypeName","pathNode":{"id":32180,"name":"IERC20","nameLocations":["2063:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"2063:6:28"},"referencedDeclaration":31999,"src":"2063:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":32184,"mutability":"mutable","name":"spender","nameLocation":"2085:7:28","nodeType":"VariableDeclaration","scope":32209,"src":"2077:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32183,"name":"address","nodeType":"ElementaryTypeName","src":"2077:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32186,"mutability":"mutable","name":"value","nameLocation":"2102:5:28","nodeType":"VariableDeclaration","scope":32209,"src":"2094:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32185,"name":"uint256","nodeType":"ElementaryTypeName","src":"2094:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2062:46:28"},"returnParameters":{"id":32188,"nodeType":"ParameterList","parameters":[],"src":"2118:0:28"},"scope":32453,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32252,"nodeType":"FunctionDefinition","src":"2460:468:28","nodes":[],"body":{"id":32251,"nodeType":"Block","src":"2558:370:28","nodes":[],"statements":[{"id":32250,"nodeType":"UncheckedBlock","src":"2568:354:28","statements":[{"assignments":[32221],"declarations":[{"constant":false,"id":32221,"mutability":"mutable","name":"currentAllowance","nameLocation":"2600:16:28","nodeType":"VariableDeclaration","scope":32250,"src":"2592:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32220,"name":"uint256","nodeType":"ElementaryTypeName","src":"2592:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32230,"initialValue":{"arguments":[{"arguments":[{"id":32226,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2643:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$32453","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$32453","typeString":"library SafeERC20"}],"id":32225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2635:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32224,"name":"address","nodeType":"ElementaryTypeName","src":"2635:7:28","typeDescriptions":{}}},"id":32227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2635:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32228,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32215,"src":"2650:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":32222,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32213,"src":"2619:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":32223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2625:9:28","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":31976,"src":"2619:15:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":32229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2619:39:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2592:66:28"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32231,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32221,"src":"2676:16:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":32232,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32217,"src":"2695:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2676:36:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32241,"nodeType":"IfStatement","src":"2672:160:28","trueBody":{"id":32240,"nodeType":"Block","src":"2714:118:28","statements":[{"errorCall":{"arguments":[{"id":32235,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32215,"src":"2772:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32236,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32221,"src":"2781:16:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32237,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32217,"src":"2799:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32234,"name":"SafeERC20FailedDecreaseAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32127,"src":"2739:32:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":32238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2739:78:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32239,"nodeType":"RevertStatement","src":"2732:85:28"}]}},{"expression":{"arguments":[{"id":32243,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32213,"src":"2858:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},{"id":32244,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32215,"src":"2865:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32245,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32221,"src":"2874:16:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":32246,"name":"requestedDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32217,"src":"2893:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2874:36:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32242,"name":"forceApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32299,"src":"2845:12:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract IERC20,address,uint256)"}},"id":32248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2845:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32249,"nodeType":"ExpressionStatement","src":"2845:66:28"}]}]},"documentation":{"id":32210,"nodeType":"StructuredDocumentation","src":"2263:192:28","text":" @dev Decrease the calling contract's allowance toward `spender` by `requestedDecrease`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"2469:21:28","parameters":{"id":32218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32213,"mutability":"mutable","name":"token","nameLocation":"2498:5:28","nodeType":"VariableDeclaration","scope":32252,"src":"2491:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},"typeName":{"id":32212,"nodeType":"UserDefinedTypeName","pathNode":{"id":32211,"name":"IERC20","nameLocations":["2491:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"2491:6:28"},"referencedDeclaration":31999,"src":"2491:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":32215,"mutability":"mutable","name":"spender","nameLocation":"2513:7:28","nodeType":"VariableDeclaration","scope":32252,"src":"2505:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32214,"name":"address","nodeType":"ElementaryTypeName","src":"2505:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32217,"mutability":"mutable","name":"requestedDecrease","nameLocation":"2530:17:28","nodeType":"VariableDeclaration","scope":32252,"src":"2522:25:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32216,"name":"uint256","nodeType":"ElementaryTypeName","src":"2522:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2490:58:28"},"returnParameters":{"id":32219,"nodeType":"ParameterList","parameters":[],"src":"2558:0:28"},"scope":32453,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32299,"nodeType":"FunctionDefinition","src":"3224:380:28","nodes":[],"body":{"id":32298,"nodeType":"Block","src":"3301:303:28","nodes":[],"statements":[{"assignments":[32264],"declarations":[{"constant":false,"id":32264,"mutability":"mutable","name":"approvalCall","nameLocation":"3324:12:28","nodeType":"VariableDeclaration","scope":32298,"src":"3311:25:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32263,"name":"bytes","nodeType":"ElementaryTypeName","src":"3311:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":32273,"initialValue":{"arguments":[{"expression":{"id":32267,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32256,"src":"3354:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":32268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3360:7:28","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":31986,"src":"3354:13:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},{"components":[{"id":32269,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32258,"src":"3370:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32270,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32260,"src":"3379:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":32271,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3369:16:28","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}],"expression":{"id":32265,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3339:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3343:10:28","memberName":"encodeCall","nodeType":"MemberAccess","src":"3339:14:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":32272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3339:47:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3311:75:28"},{"condition":{"id":32278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3401:45:28","subExpression":{"arguments":[{"id":32275,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32256,"src":"3426:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},{"id":32276,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32264,"src":"3433:12:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":32274,"name":"_callOptionalReturnBool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32452,"src":"3402:23:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (contract IERC20,bytes memory) returns (bool)"}},"id":32277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3402:44:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32297,"nodeType":"IfStatement","src":"3397:201:28","trueBody":{"id":32296,"nodeType":"Block","src":"3448:150:28","statements":[{"expression":{"arguments":[{"id":32280,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32256,"src":"3482:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},{"arguments":[{"expression":{"id":32283,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32256,"src":"3504:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":32284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3510:7:28","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":31986,"src":"3504:13:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},{"components":[{"id":32285,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32258,"src":"3520:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":32286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3529:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":32287,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3519:12:28","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_rational_0_by_1_$","typeString":"tuple(address,int_const 0)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"},{"typeIdentifier":"t_tuple$_t_address_$_t_rational_0_by_1_$","typeString":"tuple(address,int_const 0)"}],"expression":{"id":32281,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3489:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3493:10:28","memberName":"encodeCall","nodeType":"MemberAccess","src":"3489:14:28","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":32288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3489:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":32279,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32403,"src":"3462:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":32289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3462:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32290,"nodeType":"ExpressionStatement","src":"3462:71:28"},{"expression":{"arguments":[{"id":32292,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32256,"src":"3567:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},{"id":32293,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32264,"src":"3574:12:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":32291,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32403,"src":"3547:19:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":32294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3547:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32295,"nodeType":"ExpressionStatement","src":"3547:40:28"}]}}]},"documentation":{"id":32253,"nodeType":"StructuredDocumentation","src":"2934:285:28","text":" @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful. Compatible with tokens that require the approval to be set to\n 0 before setting it to a non-zero value."},"implemented":true,"kind":"function","modifiers":[],"name":"forceApprove","nameLocation":"3233:12:28","parameters":{"id":32261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32256,"mutability":"mutable","name":"token","nameLocation":"3253:5:28","nodeType":"VariableDeclaration","scope":32299,"src":"3246:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},"typeName":{"id":32255,"nodeType":"UserDefinedTypeName","pathNode":{"id":32254,"name":"IERC20","nameLocations":["3246:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"3246:6:28"},"referencedDeclaration":31999,"src":"3246:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":32258,"mutability":"mutable","name":"spender","nameLocation":"3268:7:28","nodeType":"VariableDeclaration","scope":32299,"src":"3260:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32257,"name":"address","nodeType":"ElementaryTypeName","src":"3260:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32260,"mutability":"mutable","name":"value","nameLocation":"3285:5:28","nodeType":"VariableDeclaration","scope":32299,"src":"3277:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32259,"name":"uint256","nodeType":"ElementaryTypeName","src":"3277:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3245:46:28"},"returnParameters":{"id":32262,"nodeType":"ParameterList","parameters":[],"src":"3301:0:28"},"scope":32453,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32361,"nodeType":"FunctionDefinition","src":"3756:503:28","nodes":[],"body":{"id":32360,"nodeType":"Block","src":"3971:288:28","nodes":[],"statements":[{"assignments":[32321],"declarations":[{"constant":false,"id":32321,"mutability":"mutable","name":"nonceBefore","nameLocation":"3989:11:28","nodeType":"VariableDeclaration","scope":32360,"src":"3981:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32320,"name":"uint256","nodeType":"ElementaryTypeName","src":"3981:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32326,"initialValue":{"arguments":[{"id":32324,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32305,"src":"4016:5:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":32322,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32303,"src":"4003:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$32104","typeString":"contract IERC20Permit"}},"id":32323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4009:6:28","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":32097,"src":"4003:12:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":32325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4003:19:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3981:41:28"},{"expression":{"arguments":[{"id":32330,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32305,"src":"4045:5:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32331,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32307,"src":"4052:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32332,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32309,"src":"4061:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32333,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32311,"src":"4068:8:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32334,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32313,"src":"4078:1:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":32335,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32315,"src":"4081:1:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":32336,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32317,"src":"4084:1:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":32327,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32303,"src":"4032:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$32104","typeString":"contract IERC20Permit"}},"id":32329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4038:6:28","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":32089,"src":"4032:12:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":32337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4032:54:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32338,"nodeType":"ExpressionStatement","src":"4032:54:28"},{"assignments":[32340],"declarations":[{"constant":false,"id":32340,"mutability":"mutable","name":"nonceAfter","nameLocation":"4104:10:28","nodeType":"VariableDeclaration","scope":32360,"src":"4096:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32339,"name":"uint256","nodeType":"ElementaryTypeName","src":"4096:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32345,"initialValue":{"arguments":[{"id":32343,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32305,"src":"4130:5:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":32341,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32303,"src":"4117:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$32104","typeString":"contract IERC20Permit"}},"id":32342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4123:6:28","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":32097,"src":"4117:12:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":32344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4117:19:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4096:40:28"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32346,"name":"nonceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32340,"src":"4150:10:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32347,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32321,"src":"4164:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":32348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4178:1:28","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4164:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4150:29:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32359,"nodeType":"IfStatement","src":"4146:107:28","trueBody":{"id":32358,"nodeType":"Block","src":"4181:72:28","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":32354,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32303,"src":"4235:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$32104","typeString":"contract IERC20Permit"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20Permit_$32104","typeString":"contract IERC20Permit"}],"id":32353,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4227:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32352,"name":"address","nodeType":"ElementaryTypeName","src":"4227:7:28","typeDescriptions":{}}},"id":32355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4227:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":32351,"name":"SafeERC20FailedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32118,"src":"4202:24:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":32356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4202:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32357,"nodeType":"RevertStatement","src":"4195:47:28"}]}}]},"documentation":{"id":32300,"nodeType":"StructuredDocumentation","src":"3610:141:28","text":" @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\n Revert on invalid signature."},"implemented":true,"kind":"function","modifiers":[],"name":"safePermit","nameLocation":"3765:10:28","parameters":{"id":32318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32303,"mutability":"mutable","name":"token","nameLocation":"3798:5:28","nodeType":"VariableDeclaration","scope":32361,"src":"3785:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$32104","typeString":"contract IERC20Permit"},"typeName":{"id":32302,"nodeType":"UserDefinedTypeName","pathNode":{"id":32301,"name":"IERC20Permit","nameLocations":["3785:12:28"],"nodeType":"IdentifierPath","referencedDeclaration":32104,"src":"3785:12:28"},"referencedDeclaration":32104,"src":"3785:12:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$32104","typeString":"contract IERC20Permit"}},"visibility":"internal"},{"constant":false,"id":32305,"mutability":"mutable","name":"owner","nameLocation":"3821:5:28","nodeType":"VariableDeclaration","scope":32361,"src":"3813:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32304,"name":"address","nodeType":"ElementaryTypeName","src":"3813:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32307,"mutability":"mutable","name":"spender","nameLocation":"3844:7:28","nodeType":"VariableDeclaration","scope":32361,"src":"3836:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32306,"name":"address","nodeType":"ElementaryTypeName","src":"3836:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32309,"mutability":"mutable","name":"value","nameLocation":"3869:5:28","nodeType":"VariableDeclaration","scope":32361,"src":"3861:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32308,"name":"uint256","nodeType":"ElementaryTypeName","src":"3861:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32311,"mutability":"mutable","name":"deadline","nameLocation":"3892:8:28","nodeType":"VariableDeclaration","scope":32361,"src":"3884:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32310,"name":"uint256","nodeType":"ElementaryTypeName","src":"3884:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32313,"mutability":"mutable","name":"v","nameLocation":"3916:1:28","nodeType":"VariableDeclaration","scope":32361,"src":"3910:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":32312,"name":"uint8","nodeType":"ElementaryTypeName","src":"3910:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":32315,"mutability":"mutable","name":"r","nameLocation":"3935:1:28","nodeType":"VariableDeclaration","scope":32361,"src":"3927:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3927:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32317,"mutability":"mutable","name":"s","nameLocation":"3954:1:28","nodeType":"VariableDeclaration","scope":32361,"src":"3946:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3946:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3775:186:28"},"returnParameters":{"id":32319,"nodeType":"ParameterList","parameters":[],"src":"3971:0:28"},"scope":32453,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":32403,"nodeType":"FunctionDefinition","src":"4642:629:28","nodes":[],"body":{"id":32402,"nodeType":"Block","src":"4712:559:28","nodes":[],"statements":[{"assignments":[32371],"declarations":[{"constant":false,"id":32371,"mutability":"mutable","name":"returndata","nameLocation":"5074:10:28","nodeType":"VariableDeclaration","scope":32402,"src":"5061:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32370,"name":"bytes","nodeType":"ElementaryTypeName","src":"5061:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":32379,"initialValue":{"arguments":[{"id":32377,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32367,"src":"5115:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":32374,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32365,"src":"5095:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}],"id":32373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5087:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32372,"name":"address","nodeType":"ElementaryTypeName","src":"5087:7:28","typeDescriptions":{}}},"id":32375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5087:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5102:12:28","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":32528,"src":"5087:27:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":32378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5087:33:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5061:59:28"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":32392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":32380,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32371,"src":"5134:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5145:6:28","memberName":"length","nodeType":"MemberAccess","src":"5134:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":32382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5155:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5134:22:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":32391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5160:31:28","subExpression":{"arguments":[{"id":32386,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32371,"src":"5172:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":32388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5185:4:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":32387,"name":"bool","nodeType":"ElementaryTypeName","src":"5185:4:28","typeDescriptions":{}}}],"id":32389,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5184:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":32384,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5161:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5165:6:28","memberName":"decode","nodeType":"MemberAccess","src":"5161:10:28","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":32390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5161:30:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5134:57:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32401,"nodeType":"IfStatement","src":"5130:135:28","trueBody":{"id":32400,"nodeType":"Block","src":"5193:72:28","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":32396,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32365,"src":"5247:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}],"id":32395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5239:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32394,"name":"address","nodeType":"ElementaryTypeName","src":"5239:7:28","typeDescriptions":{}}},"id":32397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5239:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":32393,"name":"SafeERC20FailedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32118,"src":"5214:24:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":32398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5214:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32399,"nodeType":"RevertStatement","src":"5207:47:28"}]}}]},"documentation":{"id":32362,"nodeType":"StructuredDocumentation","src":"4265:372:28","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"4651:19:28","parameters":{"id":32368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32365,"mutability":"mutable","name":"token","nameLocation":"4678:5:28","nodeType":"VariableDeclaration","scope":32403,"src":"4671:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},"typeName":{"id":32364,"nodeType":"UserDefinedTypeName","pathNode":{"id":32363,"name":"IERC20","nameLocations":["4671:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"4671:6:28"},"referencedDeclaration":31999,"src":"4671:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":32367,"mutability":"mutable","name":"data","nameLocation":"4698:4:28","nodeType":"VariableDeclaration","scope":32403,"src":"4685:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32366,"name":"bytes","nodeType":"ElementaryTypeName","src":"4685:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4670:33:28"},"returnParameters":{"id":32369,"nodeType":"ParameterList","parameters":[],"src":"4712:0:28"},"scope":32453,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":32452,"nodeType":"FunctionDefinition","src":"5772:578:28","nodes":[],"body":{"id":32451,"nodeType":"Block","src":"5861:489:28","nodes":[],"statements":[{"assignments":[32415,32417],"declarations":[{"constant":false,"id":32415,"mutability":"mutable","name":"success","nameLocation":"6162:7:28","nodeType":"VariableDeclaration","scope":32451,"src":"6157:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32414,"name":"bool","nodeType":"ElementaryTypeName","src":"6157:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32417,"mutability":"mutable","name":"returndata","nameLocation":"6184:10:28","nodeType":"VariableDeclaration","scope":32451,"src":"6171:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32416,"name":"bytes","nodeType":"ElementaryTypeName","src":"6171:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":32425,"initialValue":{"arguments":[{"id":32423,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"6218:4:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":32420,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32407,"src":"6206:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}],"id":32419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6198:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32418,"name":"address","nodeType":"ElementaryTypeName","src":"6198:7:28","typeDescriptions":{}}},"id":32421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6198:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6213:4:28","memberName":"call","nodeType":"MemberAccess","src":"6198:19:28","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":32424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6198:25:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6156:67:28"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":32449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":32440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32426,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32415,"src":"6240:7:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":32438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":32427,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32417,"src":"6252:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6263:6:28","memberName":"length","nodeType":"MemberAccess","src":"6252:17:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":32429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6273:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6252:22:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":32433,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32417,"src":"6289:10:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":32435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6302:4:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":32434,"name":"bool","nodeType":"ElementaryTypeName","src":"6302:4:28","typeDescriptions":{}}}],"id":32436,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6301:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":32431,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6278:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32432,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6282:6:28","memberName":"decode","nodeType":"MemberAccess","src":"6278:10:28","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":32437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6278:30:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6252:56:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":32439,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6251:58:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6240:69:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[{"id":32443,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32407,"src":"6321:5:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}],"id":32442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6313:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32441,"name":"address","nodeType":"ElementaryTypeName","src":"6313:7:28","typeDescriptions":{}}},"id":32444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6313:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6328:4:28","memberName":"code","nodeType":"MemberAccess","src":"6313:19:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6333:6:28","memberName":"length","nodeType":"MemberAccess","src":"6313:26:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":32447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6342:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6313:30:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6240:103:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":32413,"id":32450,"nodeType":"Return","src":"6233:110:28"}]},"documentation":{"id":32404,"nodeType":"StructuredDocumentation","src":"5277:490:28","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants).\n This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead."},"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturnBool","nameLocation":"5781:23:28","parameters":{"id":32410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32407,"mutability":"mutable","name":"token","nameLocation":"5812:5:28","nodeType":"VariableDeclaration","scope":32452,"src":"5805:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},"typeName":{"id":32406,"nodeType":"UserDefinedTypeName","pathNode":{"id":32405,"name":"IERC20","nameLocations":["5805:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"5805:6:28"},"referencedDeclaration":31999,"src":"5805:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":32409,"mutability":"mutable","name":"data","nameLocation":"5832:4:28","nodeType":"VariableDeclaration","scope":32452,"src":"5819:17:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32408,"name":"bytes","nodeType":"ElementaryTypeName","src":"5819:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5804:33:28"},"returnParameters":{"id":32413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32452,"src":"5855:4:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32411,"name":"bool","nodeType":"ElementaryTypeName","src":"5855:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5854:6:28"},"scope":32453,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":32110,"nodeType":"StructuredDocumentation","src":"244:457:28","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"linearizedBaseContracts":[32453],"name":"SafeERC20","nameLocation":"710:9:28","scope":32454,"usedErrors":[32118,32127]}],"license":"MIT"},"id":28} \ No newline at end of file diff --git a/.out/SelectorLibrary.sol/SelectorLibrary.json b/.out/SelectorLibrary.sol/SelectorLibrary.json new file mode 100644 index 000000000..2bc99123f --- /dev/null +++ b/.out/SelectorLibrary.sol/SelectorLibrary.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"resolveSelectors","inputs":[{"name":"facetName","type":"string","internalType":"string"}],"outputs":[{"name":"facetSelectors","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080806040523461001a576116ff9081610020823930815050f35b600080fdfe608080604052600436101561001357600080fd5b6000803560e01c6366e2898c1461002957600080fd5b602091826003193601126100ff576001600160401b036004358181116100e757366023820112156100e75780600401359182116100eb57610073601f8301601f1916860184610186565b81835236602483830101116100e7579183858361009c94602483970183860137830101526102c0565b60405192828493840190808552835180925280604086019401925b8281106100c657505050500390f35b83516001600160e01b031916855286955093810193928101926001016100b7565b8380fd5b634e487b7160e01b84526041600452602484fd5b5080fd5b608081019081106001600160401b0382111761011e57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761011e57604052565b61016081019081106001600160401b0382111761011e57604052565b60e081019081106001600160401b0382111761011e57604052565b90601f801991011681019081106001600160401b0382111761011e57604052565b9081519160005b8381106101bf575050016000815290565b80602080928401015181850152016101ae565b60405190606082018281106001600160401b0382111761011e576040526040825260006040836020808201520152565b90602090818382031261028e5782516001600160401b039384821161028e570181601f8201121561028e57805193841161011e578360051b906040519461024b85840187610186565b8552838086019282010192831161028e578301905b82821061026e575050505090565b81516001600160e01b03198116810361028e578152908301908301610260565b600080fd5b604051906102a082610103565b6060808352602080840152600160408401526367e0badb60e01b90830152565b6040805190602092838301836102d682846101a7565b03936102ea601f1995868101835282610186565b5190208251858101906d11d85d195dd85e511a585b5bdb9960921b8252600e815261031481610134565b519020146116ba5781518481019061033c8161033084866101a7565b03868101835282610186565b519020928251938585017114dd589b995d1058dd1bdc911a585b5bdb9960721b815260129586815261036d81610134565b519020146116aa578251858101906103958161038984876101a7565b03848101835282610186565b5190208351868101907414dd589b995d149959da5cdd1c9e511a585b5bdb99605a1b8252601581526103c681610134565b519020146116aa578251858101906103e28161038984876101a7565b5190208351868101906e111a585b5bdb9910dd5d119858d95d608a1b8252600f815261040d81610134565b51902014611670578251858101906104298161038984876101a7565b51902083518681019070111a585b5bdb99131bdd5c19519858d95d607a1b82526011815261045681610134565b519020146115ee578251858101906104728161038984876101a7565b5190208351868101907111d85d195dd85e51d95d1d195c919858d95d60721b825286815261049f81610134565b5190201461139e578251858101906104bb8161038984876101a7565b5190208351868101907211d85d195dd85e53585b9859d95c919858d95d606a1b8252601381526104ea81610134565b51902014611302578251858101906105068161038984876101a7565b5190208351868101907411d85d195dd85e53595cdcd95b99d95c919858d95d605a1b82526015815261053781610134565b519020146112ae578251858101906105538161038984876101a7565b5190208351868101907110da1958dadc1bda5b9d1a5b99d19858d95d60721b825286815261058081610134565b519020146112515782518581019061059c8161038984876101a7565b51902083518681019072109bdd1d1bdb555c149bdd5d195c919858d95d606a1b8252601381526105cb81610134565b519020146111f3578251858101906105e78161038984876101a7565b51902083518681019073151bdc111bdddb919a5b985b1a5d1e519858d95d60621b82526014815261061781610134565b51902014611192578251858101906106338161038984876101a7565b51902083518681019071161b995d13595cdcd859da5b99d19858d95d60721b825286815261066081610134565b519020146111585782518581019061067c8161038984876101a7565b5190208351868101907514dd589b995d1058dd1bdc91d95d1d195c919858d95d60521b8252601681526106ae81610134565b51902014610f16578251858101906106ca8161038984876101a7565b5190208351868101907f5375626e65744163746f724d616e61676572466163657400000000000000000082526017815261070381610134565b51902014610de35782518581019061071f8161038984876101a7565b51902083518681019072149959da5cdd195c94dd589b995d119858d95d606a1b82526013815261074e81610134565b51902014610da95782518581019061076a8161038984876101a7565b5190208351868101907014dd589b995d11d95d1d195c919858d95d607a1b82526011815261079781610134565b51902014610cef578251858101906107b38161038984876101a7565b5190208351868101907545524332305072657365744669786564537570706c7960501b8252601681526107e581610134565b51902014610bfd578251858101906108018161038984876101a7565b5190208351868101907f4e756d626572436f6e747261637446616365744569676874000000000000000082526018815261083a81610134565b51902014610be0578251858101906108568161038984876101a7565b5190208351868101907f4e756d626572436f6e74726163744661636574536576656e000000000000000082526018815261088f81610134565b51902014610be0578251858101906108ab8161038984876101a7565b5190208351868101906e53656c6563746f724c69627261727960881b8252600f81526108d681610134565b51902014610ba6578251858101906108f28161038984876101a7565b51902083518681019068546573745574696c7360b81b82526009815261091781610134565b51902014610b0a5761093f8351918261093388820180966101a7565b03908101835282610186565b5190208151848101907f5375626e65744163746f724d616e6167657246616365744d6f636b00000000008252601b815261097881610134565b519020146109b65760649350519162461bcd60e51b8352600483015260248201527114d95b1958dd1bdc881b9bdd08199bdd5b9960721b6044820152fd5b8092915051906102e08201918083106001600160401b0384111761011e578284526102c08082528282019283526014948201949094526310fd426160e01b6060820152634e71d92d60e01b608082015263ed7c4da160e01b60a082015263350a14bf60e01b60c082015263c7ebdaef60e01b60e0820152632643057b60e11b6101008201526330b858b160e11b6101208201526341c0e1b560e01b61014082015263d66d9e1960e01b610160820152638456cb5960e01b610180820152635c975abb60e01b6101a0820152625bfdf360e51b6101c08201526366783c9b60e01b6101e0820152636d2e84f760e11b610200820152633a4b66f160e01b6102208201526313408c9b60e11b61024082015263b9ee2bb960e01b610260820152631fa5d41d60e11b6102808201526305c2fbcf60e31b6102a082015263cc2dc2b960e01b930192909252610b0791610202565b90565b50508051610b0793925061016091610b218261014f565b61014080835284830194855260089183019190915263265f6a3560e21b60608301526315c9f71760e21b60808301526301d283df60e11b60a0830152631e8c229360e21b60c0830152637775600f60e11b60e083015263bc9e2bcf60e01b610100830152633db2bc2b60e21b610120830152632b9840d160e11b908201520190610202565b5050610b079291508060016080925191610bbf83610103565b606083528483019485528201526319b8a26360e21b60608201520190610202565b50505050610b0790610bf0610293565b8051810182019101610202565b50508092915051906102008201918083106001600160401b0384111761011e578284526101e0808252828201928352600d94820194909452636eb1769f60e11b606082015263095ea7b360e01b60808201526370a0823160e01b60a0820152630852cd8d60e31b60c082015263079cc67960e41b60e082015263313ce56760e01b61010082015263a457c2d760e01b610120820152633950935160e01b6101408201526306fdde0360e01b6101608201526395d89b4160e01b6101808201526318160ddd60e01b6101a082015263a9059cbb60e01b6101c08201526323b872dd60e01b930192909252610b0791610202565b50508092915051906101808201918083106001600160401b0384111761011e578284526101608082528282019283526009948201949094526342bf3cc160e01b6060820152630be0611160e01b6080820152631b0766c360e01b60a0820152630a372bf360e41b60c0820152630f5849d160e01b60e0820152639836b75f60e01b61010082015263030f605160e01b610120820152631163dca560e01b61014082015263a46d044d60e01b930192909252610b0791610202565b5050610b079291508060016080925191610dc283610103565b60608352848301948552820152637be005d560e01b60608201520190610202565b5050909181516102a08101928184106001600160401b0385111761011e57838152610280808352838301938452908201949094526310fd426160e01b6060820152634e71d92d60e01b608082015263ed7c4da160e01b60a0820152632643057b60e11b60c08201526330b858b160e11b60e08201526341c0e1b560e01b61010082015263d66d9e1960e01b610120820152638456cb5960e01b610140820152635c975abb60e01b610160820152625bfdf360e51b6101808201526366783c9b60e01b6101a0820152636d2e84f760e11b6101c0820152633a4b66f160e01b6101e08201526313408c9b60e11b61020082015263b9ee2bb960e01b610220820152631fa5d41d60e11b6102408201526305c2fbcf60e31b61026082015263cc2dc2b960e01b930192909252610b0791610202565b50508092915051906105008201918083106001600160401b0384111761011e578284526104e0808252828201928352602594820194909452633354c3e160e01b6060820152630d450b2360e21b60808201526306c4685360e01b60a0820152632593d53960e11b60c08201526325834a7160e11b60e08201526369e737fd60e01b610100820152638ef3f76160e01b610120820152633da3324160e01b610140820152630903e69360e41b61016082015263948628a960e01b610180820152636c97478960e11b6101a08201526363e6d3b160e11b6101c0820152634baa594f60e11b6101e08201526338a210b360e01b6102008201526380f7602160e01b610220820152631776451f60e21b61024082015263595e94af60e11b610260820152630d6eb59160e41b61028082015263332a5ac960e01b6102a0820152630acbdfbf60e11b6102c08201526352d182d160e01b6102e0820152630c825d9760e11b610300820152632bc31eb360e01b610320820152633dd5267760e21b6103408201526333f28a0960e21b610360820152631015428760e21b61038082015263d081be0360e01b6103a0820152631f3a0e4160e01b6103c0820152630396850760e51b6103e08201526328d5551d60e01b61040082015263599c7bd160e01b610420820152634f19de8160e11b6104408201526319c10a1f60e21b61046082015263c5ab224160e01b610480820152637867b64b60e11b6104a08201526356c0f26b60e11b6104c08201526380875df760e01b930192909252610b0791610202565b5050610b07929150806001608092519161117183610103565b6060835284830194855282015263c62eb4d560e01b60608201520190610202565b505080929150519060c08201918083106001600160401b0384111761011e5760038484610b07965260a08352838301938452820152630df1446160e01b60608201526304465a5d60e21b608082015260a063e49a547d60e01b910152610202565b5050610b0792915080600460e092519161120c8361016b565b60c0835284830194855282015263036c3ddf60e21b60608201526332e7661f821b6080820152630bed7615821b60a082015263bacc656d821b60c08201520190610202565b5050610b0792915080600460e092519161126a8361016b565b60c083528483019485528201526353b4e7bf821b60608201526347dc9b4f821b60808201526374303771821b60a082015263ac818379821b60c08201520190610202565b505080929150519060a08201918083106001600160401b0384111761011e5760028484610b079652608083528383019384528201526312df86db60e11b60608201526080631085ca2760e11b910152610202565b50508051610b07939250610160916113198261014f565b6101408083528483019485526008918301919091526316989f6f60e21b606083015263018f44b760e41b608083015263028bf0d560e11b60a08301526341c0e1b560e01b60c0830152637903ab2760e11b60e0830152636b2c1eef60e01b610100830152636c712ab960e11b6101208301526345f5448560e01b908201520190610202565b50508092915051906105208201918083106001600160401b0384111761011e57828452610500808252828201928352602694820194909452638789f83b60e01b60608201526306c4685360e01b60808201526316d2bca560e11b60a082015263dd81b5cf60e01b60c08201526369e737fd60e01b60e0820152630836d45d60e31b610100820152632472942560e01b610120820152639e530b5760e01b610140820152631951f35960e21b610160820152635cf72c2160e11b61018082015263a9294bdd60e01b6101a0820152630886016560e21b6101c0820152632ceacfdd60e21b6101e082015263ac12d76360e01b610200820152634aa8f8a560e01b610220820152636520eae760e11b61024082015263d6c5c39760e01b61026082015263544dddff60e01b6102808201526306ad21bb60e41b6102a082015263a517218f60e01b6102c0820152634b8213b360e11b6102e0820152631d9fb97d60e21b6103008201526319af5b1560e11b610320820152630b1ba49b60e41b61034082015263f322913160e01b610360820152630338150f60e01b6103808201526394074b0360e01b6103a0820152633f6f564960e11b6103c082015263032b960d60e11b6103e082015263c66c66a160e01b610400820152639d3070b560e01b610420820152635d02968560e01b61044082015263599c7bd160e01b6104608201526305aff0b360e01b610480820152631bad9e0560e11b6104a0820152638cfd78e760e01b6104c082015263017187cd60e11b6104e0820152631456ce2b60e31b930192909252610b0791610202565b50508092915051906101008201918083106001600160401b0384111761011e5782845260e08082528282019283526005948201949094526366ffd66360e11b60608201526314bbdacb60e21b60808201526356fe50af60e11b60a0820152637a0ed62760e01b60c08201526301ffc9a760e01b930192909252610b0791610202565b5050610b07929150806001608092519161168983610103565b606083528483019485528201526307e4c70760e21b60608201520190610202565b50505050610b0790610bf06101d2565b505050610b0790610bf06101d256fea26469706673582212205714a0c24abd829febe18a24a4d62047a53b6169e0550aacdadd07d455b3d08264736f6c63430008130033","sourceMap":"72:19523:95:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b6000803560e01c6366e2898c1461002957600080fd5b602091826003193601126100ff576001600160401b036004358181116100e757366023820112156100e75780600401359182116100eb57610073601f8301601f1916860184610186565b81835236602483830101116100e7579183858361009c94602483970183860137830101526102c0565b60405192828493840190808552835180925280604086019401925b8281106100c657505050500390f35b83516001600160e01b031916855286955093810193928101926001016100b7565b8380fd5b634e487b7160e01b84526041600452602484fd5b5080fd5b608081019081106001600160401b0382111761011e57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761011e57604052565b61016081019081106001600160401b0382111761011e57604052565b60e081019081106001600160401b0382111761011e57604052565b90601f801991011681019081106001600160401b0382111761011e57604052565b9081519160005b8381106101bf575050016000815290565b80602080928401015181850152016101ae565b60405190606082018281106001600160401b0382111761011e576040526040825260006040836020808201520152565b90602090818382031261028e5782516001600160401b039384821161028e570181601f8201121561028e57805193841161011e578360051b906040519461024b85840187610186565b8552838086019282010192831161028e578301905b82821061026e575050505090565b81516001600160e01b03198116810361028e578152908301908301610260565b600080fd5b604051906102a082610103565b6060808352602080840152600160408401526367e0badb60e01b90830152565b6040805190602092838301836102d682846101a7565b03936102ea601f1995868101835282610186565b5190208251858101906d11d85d195dd85e511a585b5bdb9960921b8252600e815261031481610134565b519020146116ba5781518481019061033c8161033084866101a7565b03868101835282610186565b519020928251938585017114dd589b995d1058dd1bdc911a585b5bdb9960721b815260129586815261036d81610134565b519020146116aa578251858101906103958161038984876101a7565b03848101835282610186565b5190208351868101907414dd589b995d149959da5cdd1c9e511a585b5bdb99605a1b8252601581526103c681610134565b519020146116aa578251858101906103e28161038984876101a7565b5190208351868101906e111a585b5bdb9910dd5d119858d95d608a1b8252600f815261040d81610134565b51902014611670578251858101906104298161038984876101a7565b51902083518681019070111a585b5bdb99131bdd5c19519858d95d607a1b82526011815261045681610134565b519020146115ee578251858101906104728161038984876101a7565b5190208351868101907111d85d195dd85e51d95d1d195c919858d95d60721b825286815261049f81610134565b5190201461139e578251858101906104bb8161038984876101a7565b5190208351868101907211d85d195dd85e53585b9859d95c919858d95d606a1b8252601381526104ea81610134565b51902014611302578251858101906105068161038984876101a7565b5190208351868101907411d85d195dd85e53595cdcd95b99d95c919858d95d605a1b82526015815261053781610134565b519020146112ae578251858101906105538161038984876101a7565b5190208351868101907110da1958dadc1bda5b9d1a5b99d19858d95d60721b825286815261058081610134565b519020146112515782518581019061059c8161038984876101a7565b51902083518681019072109bdd1d1bdb555c149bdd5d195c919858d95d606a1b8252601381526105cb81610134565b519020146111f3578251858101906105e78161038984876101a7565b51902083518681019073151bdc111bdddb919a5b985b1a5d1e519858d95d60621b82526014815261061781610134565b51902014611192578251858101906106338161038984876101a7565b51902083518681019071161b995d13595cdcd859da5b99d19858d95d60721b825286815261066081610134565b519020146111585782518581019061067c8161038984876101a7565b5190208351868101907514dd589b995d1058dd1bdc91d95d1d195c919858d95d60521b8252601681526106ae81610134565b51902014610f16578251858101906106ca8161038984876101a7565b5190208351868101907f5375626e65744163746f724d616e61676572466163657400000000000000000082526017815261070381610134565b51902014610de35782518581019061071f8161038984876101a7565b51902083518681019072149959da5cdd195c94dd589b995d119858d95d606a1b82526013815261074e81610134565b51902014610da95782518581019061076a8161038984876101a7565b5190208351868101907014dd589b995d11d95d1d195c919858d95d607a1b82526011815261079781610134565b51902014610cef578251858101906107b38161038984876101a7565b5190208351868101907545524332305072657365744669786564537570706c7960501b8252601681526107e581610134565b51902014610bfd578251858101906108018161038984876101a7565b5190208351868101907f4e756d626572436f6e747261637446616365744569676874000000000000000082526018815261083a81610134565b51902014610be0578251858101906108568161038984876101a7565b5190208351868101907f4e756d626572436f6e74726163744661636574536576656e000000000000000082526018815261088f81610134565b51902014610be0578251858101906108ab8161038984876101a7565b5190208351868101906e53656c6563746f724c69627261727960881b8252600f81526108d681610134565b51902014610ba6578251858101906108f28161038984876101a7565b51902083518681019068546573745574696c7360b81b82526009815261091781610134565b51902014610b0a5761093f8351918261093388820180966101a7565b03908101835282610186565b5190208151848101907f5375626e65744163746f724d616e6167657246616365744d6f636b00000000008252601b815261097881610134565b519020146109b65760649350519162461bcd60e51b8352600483015260248201527114d95b1958dd1bdc881b9bdd08199bdd5b9960721b6044820152fd5b8092915051906102e08201918083106001600160401b0384111761011e578284526102c08082528282019283526014948201949094526310fd426160e01b6060820152634e71d92d60e01b608082015263ed7c4da160e01b60a082015263350a14bf60e01b60c082015263c7ebdaef60e01b60e0820152632643057b60e11b6101008201526330b858b160e11b6101208201526341c0e1b560e01b61014082015263d66d9e1960e01b610160820152638456cb5960e01b610180820152635c975abb60e01b6101a0820152625bfdf360e51b6101c08201526366783c9b60e01b6101e0820152636d2e84f760e11b610200820152633a4b66f160e01b6102208201526313408c9b60e11b61024082015263b9ee2bb960e01b610260820152631fa5d41d60e11b6102808201526305c2fbcf60e31b6102a082015263cc2dc2b960e01b930192909252610b0791610202565b90565b50508051610b0793925061016091610b218261014f565b61014080835284830194855260089183019190915263265f6a3560e21b60608301526315c9f71760e21b60808301526301d283df60e11b60a0830152631e8c229360e21b60c0830152637775600f60e11b60e083015263bc9e2bcf60e01b610100830152633db2bc2b60e21b610120830152632b9840d160e11b908201520190610202565b5050610b079291508060016080925191610bbf83610103565b606083528483019485528201526319b8a26360e21b60608201520190610202565b50505050610b0790610bf0610293565b8051810182019101610202565b50508092915051906102008201918083106001600160401b0384111761011e578284526101e0808252828201928352600d94820194909452636eb1769f60e11b606082015263095ea7b360e01b60808201526370a0823160e01b60a0820152630852cd8d60e31b60c082015263079cc67960e41b60e082015263313ce56760e01b61010082015263a457c2d760e01b610120820152633950935160e01b6101408201526306fdde0360e01b6101608201526395d89b4160e01b6101808201526318160ddd60e01b6101a082015263a9059cbb60e01b6101c08201526323b872dd60e01b930192909252610b0791610202565b50508092915051906101808201918083106001600160401b0384111761011e578284526101608082528282019283526009948201949094526342bf3cc160e01b6060820152630be0611160e01b6080820152631b0766c360e01b60a0820152630a372bf360e41b60c0820152630f5849d160e01b60e0820152639836b75f60e01b61010082015263030f605160e01b610120820152631163dca560e01b61014082015263a46d044d60e01b930192909252610b0791610202565b5050610b079291508060016080925191610dc283610103565b60608352848301948552820152637be005d560e01b60608201520190610202565b5050909181516102a08101928184106001600160401b0385111761011e57838152610280808352838301938452908201949094526310fd426160e01b6060820152634e71d92d60e01b608082015263ed7c4da160e01b60a0820152632643057b60e11b60c08201526330b858b160e11b60e08201526341c0e1b560e01b61010082015263d66d9e1960e01b610120820152638456cb5960e01b610140820152635c975abb60e01b610160820152625bfdf360e51b6101808201526366783c9b60e01b6101a0820152636d2e84f760e11b6101c0820152633a4b66f160e01b6101e08201526313408c9b60e11b61020082015263b9ee2bb960e01b610220820152631fa5d41d60e11b6102408201526305c2fbcf60e31b61026082015263cc2dc2b960e01b930192909252610b0791610202565b50508092915051906105008201918083106001600160401b0384111761011e578284526104e0808252828201928352602594820194909452633354c3e160e01b6060820152630d450b2360e21b60808201526306c4685360e01b60a0820152632593d53960e11b60c08201526325834a7160e11b60e08201526369e737fd60e01b610100820152638ef3f76160e01b610120820152633da3324160e01b610140820152630903e69360e41b61016082015263948628a960e01b610180820152636c97478960e11b6101a08201526363e6d3b160e11b6101c0820152634baa594f60e11b6101e08201526338a210b360e01b6102008201526380f7602160e01b610220820152631776451f60e21b61024082015263595e94af60e11b610260820152630d6eb59160e41b61028082015263332a5ac960e01b6102a0820152630acbdfbf60e11b6102c08201526352d182d160e01b6102e0820152630c825d9760e11b610300820152632bc31eb360e01b610320820152633dd5267760e21b6103408201526333f28a0960e21b610360820152631015428760e21b61038082015263d081be0360e01b6103a0820152631f3a0e4160e01b6103c0820152630396850760e51b6103e08201526328d5551d60e01b61040082015263599c7bd160e01b610420820152634f19de8160e11b6104408201526319c10a1f60e21b61046082015263c5ab224160e01b610480820152637867b64b60e11b6104a08201526356c0f26b60e11b6104c08201526380875df760e01b930192909252610b0791610202565b5050610b07929150806001608092519161117183610103565b6060835284830194855282015263c62eb4d560e01b60608201520190610202565b505080929150519060c08201918083106001600160401b0384111761011e5760038484610b07965260a08352838301938452820152630df1446160e01b60608201526304465a5d60e21b608082015260a063e49a547d60e01b910152610202565b5050610b0792915080600460e092519161120c8361016b565b60c0835284830194855282015263036c3ddf60e21b60608201526332e7661f821b6080820152630bed7615821b60a082015263bacc656d821b60c08201520190610202565b5050610b0792915080600460e092519161126a8361016b565b60c083528483019485528201526353b4e7bf821b60608201526347dc9b4f821b60808201526374303771821b60a082015263ac818379821b60c08201520190610202565b505080929150519060a08201918083106001600160401b0384111761011e5760028484610b079652608083528383019384528201526312df86db60e11b60608201526080631085ca2760e11b910152610202565b50508051610b07939250610160916113198261014f565b6101408083528483019485526008918301919091526316989f6f60e21b606083015263018f44b760e41b608083015263028bf0d560e11b60a08301526341c0e1b560e01b60c0830152637903ab2760e11b60e0830152636b2c1eef60e01b610100830152636c712ab960e11b6101208301526345f5448560e01b908201520190610202565b50508092915051906105208201918083106001600160401b0384111761011e57828452610500808252828201928352602694820194909452638789f83b60e01b60608201526306c4685360e01b60808201526316d2bca560e11b60a082015263dd81b5cf60e01b60c08201526369e737fd60e01b60e0820152630836d45d60e31b610100820152632472942560e01b610120820152639e530b5760e01b610140820152631951f35960e21b610160820152635cf72c2160e11b61018082015263a9294bdd60e01b6101a0820152630886016560e21b6101c0820152632ceacfdd60e21b6101e082015263ac12d76360e01b610200820152634aa8f8a560e01b610220820152636520eae760e11b61024082015263d6c5c39760e01b61026082015263544dddff60e01b6102808201526306ad21bb60e41b6102a082015263a517218f60e01b6102c0820152634b8213b360e11b6102e0820152631d9fb97d60e21b6103008201526319af5b1560e11b610320820152630b1ba49b60e41b61034082015263f322913160e01b610360820152630338150f60e01b6103808201526394074b0360e01b6103a0820152633f6f564960e11b6103c082015263032b960d60e11b6103e082015263c66c66a160e01b610400820152639d3070b560e01b610420820152635d02968560e01b61044082015263599c7bd160e01b6104608201526305aff0b360e01b610480820152631bad9e0560e11b6104a0820152638cfd78e760e01b6104c082015263017187cd60e11b6104e0820152631456ce2b60e31b930192909252610b0791610202565b50508092915051906101008201918083106001600160401b0384111761011e5782845260e08082528282019283526005948201949094526366ffd66360e11b60608201526314bbdacb60e21b60808201526356fe50af60e11b60a0820152637a0ed62760e01b60c08201526301ffc9a760e01b930192909252610b0791610202565b5050610b07929150806001608092519161168983610103565b606083528483019485528201526307e4c70760e21b60608201520190610202565b50505050610b0790610bf06101d2565b505050610b0790610bf06101d256fea26469706673582212205714a0c24abd829febe18a24a4d62047a53b6169e0550aacdadd07d455b3d08264736f6c63430008130033","sourceMap":"72:19523:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;72:19523:95;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;72:19523:95;;;;;-1:-1:-1;72:19523:95;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;-1:-1:-1;72:19523:95;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;72:19523:95;;;;;;;;;;;;;;;;;-1:-1:-1;72:19523:95;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;:::o;102:19491::-;72:19523;;;230:27;;;;;;72:19523;;;;;:::i;:::-;230:27;72:19523;230:27;72:19523;;230:27;;;;;;;;:::i;:::-;72:19523;220:38;;72:19523;;272:34;;;72:19523;-1:-1:-1;;;72:19523:95;;272:34;;;;;;:::i;:::-;72:19523;262:45;;220:87;216:356;;72:19523;;595:27;;;72:19523;595:27;72:19523;;;;;:::i;:::-;595:27;;;;;;;;:::i;:::-;72:19523;585:38;;72:19523;;;637:38;;;;-1:-1:-1;;;72:19523:95;;;637:38;;;;;;;:::i;:::-;72:19523;627:49;;585:91;581:360;;72:19523;;964:27;;;72:19523;964:27;72:19523;;;;;:::i;:::-;964:27;;;;;;;;:::i;:::-;72:19523;954:38;;72:19523;;1006:41;;;72:19523;-1:-1:-1;;;72:19523:95;;1006:41;;;;;;:::i;:::-;72:19523;996:52;;954:94;950:363;;72:19523;;1336:27;;;72:19523;1336:27;72:19523;;;;;:::i;1336:27::-;72:19523;1326:38;;72:19523;;1378:35;;;72:19523;-1:-1:-1;;;72:19523:95;;1378:35;;;;;;:::i;:::-;72:19523;1368:46;;1326:88;1322:421;;72:19523;;1766:27;;;72:19523;1766:27;72:19523;;;;;:::i;1766:27::-;72:19523;1756:38;;72:19523;;1808:37;;;72:19523;-1:-1:-1;;;72:19523:95;;1808:37;;;;;;:::i;:::-;72:19523;1798:48;;1756:90;1752:679;;72:19523;;2454:27;;;72:19523;2454:27;72:19523;;;;;:::i;2454:27::-;72:19523;2444:38;;72:19523;;2496:38;;;72:19523;-1:-1:-1;;;72:19523:95;;2496:38;;;;;;:::i;:::-;72:19523;2486:49;;2444:91;2440:2792;;72:19523;;5255:27;;;72:19523;5255:27;72:19523;;;;;:::i;5255:27::-;72:19523;5245:38;;72:19523;;5297:39;;;72:19523;-1:-1:-1;;;72:19523:95;;5297:39;;;;;;:::i;:::-;72:19523;5287:50;;5245:92;5241:873;;72:19523;;6137:27;;;72:19523;6137:27;72:19523;;;;;:::i;6137:27::-;72:19523;6127:38;;72:19523;;6179:41;;;72:19523;-1:-1:-1;;;72:19523:95;;1006:41;6179;;;;;:::i;:::-;72:19523;6169:52;;6127:94;6123:491;;72:19523;;6637:27;;;72:19523;6637:27;72:19523;;;;;:::i;6637:27::-;72:19523;6627:38;;72:19523;;6679:38;;;72:19523;-1:-1:-1;;;72:19523:95;;6679:38;;;;;;:::i;:::-;72:19523;6669:49;;6627:91;6623:616;;72:19523;;7262:27;;;72:19523;7262:27;72:19523;;;;;:::i;7262:27::-;72:19523;7252:38;;72:19523;;7304:39;;;72:19523;-1:-1:-1;;;72:19523:95;;5297:39;7304;;;;;:::i;:::-;72:19523;7294:50;;7252:92;7248:617;;72:19523;;7888:27;;;72:19523;7888:27;72:19523;;;;;:::i;7888:27::-;72:19523;7878:38;;72:19523;;7930:40;;;72:19523;-1:-1:-1;;;72:19523:95;;;7930:40;;;;;:::i;:::-;72:19523;7920:51;;7878:93;7874:554;;72:19523;;8451:27;;;72:19523;8451:27;72:19523;;;;;:::i;8451:27::-;72:19523;8441:38;;72:19523;;8493:38;;;72:19523;-1:-1:-1;;;72:19523:95;;8493:38;;;;;;:::i;:::-;72:19523;8483:49;;8441:91;8437:424;;72:19523;;8884:27;;;72:19523;8884:27;72:19523;;;;;:::i;8884:27::-;72:19523;8874:38;;72:19523;;8926:42;;;72:19523;-1:-1:-1;;;72:19523:95;;8926:42;;;;;;:::i;:::-;72:19523;8916:53;;8874:95;8870:2732;;72:19523;;11625:27;;;72:19523;11625:27;72:19523;;;;;:::i;11625:27::-;72:19523;11615:38;;72:19523;;11667:43;;;72:19523;;;;11667:43;;;;;;:::i;:::-;72:19523;11657:54;;11615:96;11611:1517;;72:19523;;13151:27;;;72:19523;13151:27;72:19523;;;;;:::i;13151:27::-;72:19523;13141:38;;72:19523;;13193:39;;;72:19523;-1:-1:-1;;;72:19523:95;;5297:39;13193;;;;;:::i;:::-;72:19523;13183:50;;13141:92;13137:425;;72:19523;;13585:27;;;72:19523;13585:27;72:19523;;;;;:::i;13585:27::-;72:19523;13575:38;;72:19523;;13627:37;;;72:19523;-1:-1:-1;;;72:19523:95;;1808:37;13627;;;;;:::i;:::-;72:19523;13617:48;;13575:90;13571:935;;72:19523;;14529:27;;;72:19523;14529:27;72:19523;;;;;:::i;14529:27::-;72:19523;14519:38;;72:19523;;14571:42;;;72:19523;-1:-1:-1;;;72:19523:95;;8926:42;14571;;;;;:::i;:::-;72:19523;14561:53;;14519:95;14515:1196;;72:19523;;15734:27;;;72:19523;15734:27;72:19523;;;;;:::i;15734:27::-;72:19523;15724:38;;72:19523;;15776:44;;;72:19523;;;;15776:44;;;;;;:::i;:::-;72:19523;15766:55;;15724:97;15720:430;;72:19523;;16173:27;;;72:19523;16173:27;72:19523;;;;;:::i;16173:27::-;72:19523;16163:38;;72:19523;;16215:44;;;72:19523;;;;15776:44;16215;;;;;:::i;:::-;72:19523;16205:55;;16163:97;16159:430;;72:19523;;16612:27;;;72:19523;16612:27;72:19523;;;;;:::i;16612:27::-;72:19523;16602:38;;72:19523;;16654:35;;;72:19523;-1:-1:-1;;;72:19523:95;;1378:35;16654;;;;;:::i;:::-;72:19523;16644:46;;16602:88;16598:421;;72:19523;;17042:27;;;72:19523;17042:27;72:19523;;;;;:::i;17042:27::-;72:19523;17032:38;;72:19523;;17084:29;;;72:19523;-1:-1:-1;;;72:19523:95;;17084:29;;;;;;:::i;:::-;72:19523;17074:40;;17032:82;17028:863;;17914:27;72:19523;;17914:27;;72:19523;17914:27;;;72:19523;;;:::i;:::-;17914:27;;;;;;;;:::i;:::-;72:19523;17904:38;;72:19523;;17956:47;;;72:19523;;;;17956:47;;;;;;:::i;:::-;72:19523;17946:58;;17904:100;17900:1649;;72:19523;;;;19558:28;;;;;;;;;72:19523;;;;;-1:-1:-1;;;72:19523:95;;;;19558:28;17900:1649;72:19523;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;;;18043:1495;;;:::i;:::-;18020:1518;:::o;17028:863::-;-1:-1:-1;;72:19523:95;;17153:727;;72:19523;-1:-1:-1;72:19523:95;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;17153:727;;;:::i;16598:421::-;72:19523;;16729:279;72:19523;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;16729:279;;;:::i;16159:430::-;72:19523;;;;16299:279;72:19523;;;:::i;:::-;;;16299:279;;;;;;;:::i;14515:1196::-;72:19523;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;;;14653:1047;;;:::i;13571:935::-;72:19523;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;;;13704:791;;;:::i;13137:425::-;72:19523;;13272:279;72:19523;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;13272:279;;;:::i;11611:1517::-;72:19523;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;;;11750:1367;;;:::i;8870:2732::-;72:19523;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;;;9008:2583;;;:::i;8437:424::-;72:19523;;8571:279;72:19523;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;8571:279;;;:::i;7874:554::-;72:19523;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;8010:407;72:19523;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8010:407;:::i;7248:617::-;72:19523;;7383:471;72:19523;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7383:471;;;:::i;6623:616::-;72:19523;;6757:471;72:19523;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6757:471;;;:::i;6123:491::-;72:19523;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;6260:343;72:19523;;;;;;;;;;;;;;;;;;;;;;;;;;;;6260:343;:::i;5241:873::-;-1:-1:-1;;72:19523:95;;5376:727;;72:19523;-1:-1:-1;72:19523:95;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;5376:727;;;:::i;2440:2792::-;72:19523;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;;;2574:2647;;;:::i;1752:679::-;72:19523;;;;;;;;;;;;;;;-1:-1:-1;;;;;72:19523:95;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;-1:-1:-1;;;72:19523:95;;;;;;1885:535;;;:::i;1322:421::-;72:19523;;1453:279;72:19523;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1453:279;;;:::i;950:363::-;72:19523;;;;1087:215;72:19523;;;:::i;216:356::-;72:19523;;;346:215;72:19523;;;:::i","linkReferences":{}},"methodIdentifiers":{"resolveSelectors(string)":"66e2898c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"facetName\",\"type\":\"string\"}],\"name\":\"resolveSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"facetSelectors\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/SelectorLibrary.sol\":\"SelectorLibrary\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"test/helpers/SelectorLibrary.sol\":{\"keccak256\":\"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be\",\"dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"facetName","type":"string"}],"stateMutability":"pure","type":"function","name":"resolveSelectors","outputs":[{"internalType":"bytes4[]","name":"facetSelectors","type":"bytes4[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/SelectorLibrary.sol":"SelectorLibrary"},"libraries":{},"viaIR":true},"sources":{"test/helpers/SelectorLibrary.sol":{"keccak256":"0xdaaf4374ba05ea339a6b47f7c315f07f9ab3f5e2880b0c79f32e00168a32d2dd","urls":["bzz-raw://afd4d5ca8039bd812dadae86d6c2c54ceb4364b1f82b6960112c8153f3ad74be","dweb:/ipfs/QmS653HmEY8pYTGXXtzUcy4NvuQC3YWUg74iR7iyT7i5u7"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/SelectorLibrary.sol","id":56264,"exportedSymbols":{"SelectorLibrary":[56263]},"nodeType":"SourceUnit","src":"46:19550:95","nodes":[{"id":55721,"nodeType":"PragmaDirective","src":"46:24:95","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":56263,"nodeType":"ContractDefinition","src":"72:19523:95","nodes":[{"id":56262,"nodeType":"FunctionDefinition","src":"102:19491:95","nodes":[],"body":{"id":56261,"nodeType":"Block","src":"206:19387:95","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55732,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"247:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55730,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"230:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55731,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"234:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"230:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"230:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55729,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"220:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"220:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794469616d6f6e64","id":55738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"289:16:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_7859489234d21e1d346d8a44a9ac2f335ad1251b2306b955e57f7ee4b2bedc04","typeString":"literal_string \"GatewayDiamond\""},"value":"GatewayDiamond"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7859489234d21e1d346d8a44a9ac2f335ad1251b2306b955e57f7ee4b2bedc04","typeString":"literal_string \"GatewayDiamond\""}],"expression":{"id":55736,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"272:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"276:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"272:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"272:34:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55735,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"262:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"262:45:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"220:87:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55752,"nodeType":"IfStatement","src":"216:356:95","trueBody":{"id":55751,"nodeType":"Block","src":"309:263:95","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","id":55744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"378:133:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},"value":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"},{"components":[{"baseExpression":{"id":55746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"534:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55745,"name":"bytes4","nodeType":"ElementaryTypeName","src":"534:6:95","typeDescriptions":{}}},"id":55747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"534:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55748,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"533:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55742,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"346:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"350:6:95","memberName":"decode","nodeType":"MemberAccess","src":"346:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"346:215:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55750,"nodeType":"Return","src":"323:238:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55756,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"612:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55754,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"595:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"599:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"595:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"595:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55753,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"585:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"585:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724469616d6f6e64","id":55762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"654:20:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6afeb69f493bfbdc099f34950eb435ebd57382eacf3b55c3641fb15f1d10973","typeString":"literal_string \"SubnetActorDiamond\""},"value":"SubnetActorDiamond"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6afeb69f493bfbdc099f34950eb435ebd57382eacf3b55c3641fb15f1d10973","typeString":"literal_string \"SubnetActorDiamond\""}],"expression":{"id":55760,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"637:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"641:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"637:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"637:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55759,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"627:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"627:49:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"585:91:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55776,"nodeType":"IfStatement","src":"581:360:95","trueBody":{"id":55775,"nodeType":"Block","src":"678:263:95","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","id":55768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"747:133:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},"value":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"},{"components":[{"baseExpression":{"id":55770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"903:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55769,"name":"bytes4","nodeType":"ElementaryTypeName","src":"903:6:95","typeDescriptions":{}}},"id":55771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"903:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55772,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"902:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55766,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"715:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"719:6:95","memberName":"decode","nodeType":"MemberAccess","src":"715:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"715:215:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55774,"nodeType":"Return","src":"692:238:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55780,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"981:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55778,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"964:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"968:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"964:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"964:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55777,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"954:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"954:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e657452656769737472794469616d6f6e64","id":55786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1023:23:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_8bb80e1286f5d1dca2f658742bc8fd9fe8d2ac49e55bd645fddf23d9c1323832","typeString":"literal_string \"SubnetRegistryDiamond\""},"value":"SubnetRegistryDiamond"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8bb80e1286f5d1dca2f658742bc8fd9fe8d2ac49e55bd645fddf23d9c1323832","typeString":"literal_string \"SubnetRegistryDiamond\""}],"expression":{"id":55784,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1006:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1010:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"1006:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1006:41:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55783,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"996:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"996:52:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"954:94:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55800,"nodeType":"IfStatement","src":"950:363:95","trueBody":{"id":55799,"nodeType":"Block","src":"1050:263:95","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","id":55792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1119:133:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},"value":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"},{"components":[{"baseExpression":{"id":55794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1275:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55793,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1275:6:95","typeDescriptions":{}}},"id":55795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1275:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55796,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1274:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_569e75fc77c1a856f6daaf9e69d8a9566ca34aa47f9133711ce065a571af0cfd","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55790,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1087:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1091:6:95","memberName":"decode","nodeType":"MemberAccess","src":"1087:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1087:215:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55798,"nodeType":"Return","src":"1064:238:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55804,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"1353:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55802,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1336:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1340:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"1336:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1336:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55801,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1326:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1326:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4469616d6f6e644375744661636574","id":55810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1395:17:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""},"value":"DiamondCutFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad42985fd120c8d8864ab54d5cae09db456125caa7660d0b37be416f92e4f1fb","typeString":"literal_string \"DiamondCutFacet\""}],"expression":{"id":55808,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1378:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1382:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"1378:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1378:35:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55807,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1368:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1368:46:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1326:88:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55824,"nodeType":"IfStatement","src":"1322:421:95","trueBody":{"id":55823,"nodeType":"Block","src":"1416:327:95","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000011f931c1c00000000000000000000000000000000000000000000000000000000","id":55816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1485:197:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_68e124fb554b26060e0b5c97aaed235c9d0e3bcb5bf06ee3f5fcf333055a62b0","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000011f931c1c00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1705:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55817,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1705:6:95","typeDescriptions":{}}},"id":55819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1705:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55820,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1704:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68e124fb554b26060e0b5c97aaed235c9d0e3bcb5bf06ee3f5fcf333055a62b0","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000011f931c1c00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55814,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1453:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1457:6:95","memberName":"decode","nodeType":"MemberAccess","src":"1453:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1453:279:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55822,"nodeType":"Return","src":"1430:302:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55828,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"1783:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55826,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1766:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1770:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"1766:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1766:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55825,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1756:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4469616d6f6e644c6f7570654661636574","id":55834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1825:19:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""},"value":"DiamondLoupeFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2229211e4ea8f43facbc59c41df0b18e465737f2b276b674f540b6eeafda40d6","typeString":"literal_string \"DiamondLoupeFacet\""}],"expression":{"id":55832,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1808:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1812:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"1808:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1808:37:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55831,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1798:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1798:48:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1756:90:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55848,"nodeType":"IfStatement","src":"1752:679:95","trueBody":{"id":55847,"nodeType":"Block","src":"1848:583:95","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000","id":55840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1917:453:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_1bffece50de23897a92f0b80cce280ca8b718ed2c949faaecc66d807ebed9f36","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2393:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55841,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2393:6:95","typeDescriptions":{}}},"id":55843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"2393:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55844,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2392:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1bffece50de23897a92f0b80cce280ca8b718ed2c949faaecc66d807ebed9f36","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55838,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1885:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1889:6:95","memberName":"decode","nodeType":"MemberAccess","src":"1885:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1885:535:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55846,"nodeType":"Return","src":"1862:558:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55852,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"2471:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2454:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2458:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"2454:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2454:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55849,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2444:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2444:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794765747465724661636574","id":55858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2513:20:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""},"value":"GatewayGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ed91b2c1cc49f9a2bd4ce4b8ad765df5716ea7660c5d847191342a25ec92a5e","typeString":"literal_string \"GatewayGetterFacet\""}],"expression":{"id":55856,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2496:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2500:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"2496:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2496:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55855,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2486:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2486:49:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2444:91:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55872,"nodeType":"IfStatement","src":"2440:2792:95","trueBody":{"id":55871,"nodeType":"Block","src":"2537:2695:95","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000268789f83b0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000002da5794a00000000000000000000000000000000000000000000000000000000dd81b5cf0000000000000000000000000000000000000000000000000000000069e737fd0000000000000000000000000000000000000000000000000000000041b6a2e80000000000000000000000000000000000000000000000000000000024729425000000000000000000000000000000000000000000000000000000009e530b57000000000000000000000000000000000000000000000000000000006547cd6400000000000000000000000000000000000000000000000000000000b9ee584200000000000000000000000000000000000000000000000000000000a9294bdd000000000000000000000000000000000000000000000000000000002218059400000000000000000000000000000000000000000000000000000000b3ab3f7400000000000000000000000000000000000000000000000000000000ac12d763000000000000000000000000000000000000000000000000000000004aa8f8a500000000000000000000000000000000000000000000000000000000ca41d5ce00000000000000000000000000000000000000000000000000000000d6c5c39700000000000000000000000000000000000000000000000000000000544dddff000000000000000000000000000000000000000000000000000000006ad21bb000000000000000000000000000000000000000000000000000000000a517218f000000000000000000000000000000000000000000000000000000009704276600000000000000000000000000000000000000000000000000000000767ee5f400000000000000000000000000000000000000000000000000000000335eb62a00000000000000000000000000000000000000000000000000000000b1ba49b000000000000000000000000000000000000000000000000000000000f3229131000000000000000000000000000000000000000000000000000000000338150f0000000000000000000000000000000000000000000000000000000094074b03000000000000000000000000000000000000000000000000000000007edeac920000000000000000000000000000000000000000000000000000000006572c1a00000000000000000000000000000000000000000000000000000000c66c66a1000000000000000000000000000000000000000000000000000000009d3070b5000000000000000000000000000000000000000000000000000000005d02968500000000000000000000000000000000000000000000000000000000599c7bd10000000000000000000000000000000000000000000000000000000005aff0b300000000000000000000000000000000000000000000000000000000375b3c0a000000000000000000000000000000000000000000000000000000008cfd78e70000000000000000000000000000000000000000000000000000000002e30f9a00000000000000000000000000000000000000000000000000000000a2b6715800000000000000000000000000000000000000000000000000000000","id":55864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"2606:2565:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_372dfafcec05a711be1950f44e85d6d8e8e9949f9314df452c369a12bbb535b2","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000268789f83b0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000002da5794a00000000000000000000000000000000000000000000000000000000dd81b5cf0000000000000000000000000000000000000000000000000000000069e737fd0000000000000000000000000000000000000000000000000000000041b6a2e80000000000000000000000000000000000000000000000000000000024729425000000000000000000000000000000000000000000000000000000009e530b57000000000000000000000000000000000000000000000000000000006547cd6400000000000000000000000000000000000000000000000000000000b9ee584200000000000000000000000000000000000000000000000000000000a9294bdd000000000000000000000000000000000000000000000000000000002218059400000000000000000000000000000000000000000000000000000000b3ab3f7400000000000000000000000000000000000000000000000000000000ac12d763000000000000000000000000000000000000000000000000000000004aa8f8a500000000000000000000000000000000000000000000000000000000ca41d5ce00000000000000000000000000000000000000000000000000000000d6c5c39700000000000000000000000000000000000000000000000000000000544dddff000000000000000000000000000000000000000000000000000000006ad21bb000000000000000000000000000000000000000000000000000000000a517218f000000000000000000000000000000000000000000000000000000009704276600000000000000000000000000000000000000000000000000000000767ee5f400000000000000000000000000000000000000000000000000000000335eb62a00000000000000000000000000000000000000000000000000000000b1ba49b000000000000000000000000000000000000000000000000000000000f3229131000000000000000000000000000000000000000000000000000000000338150f0000000000000000000000000000000000000000000000000000000094074b03000000000000000000000000000000000000000000000000000000007edeac920000000000000000000000000000000000000000000000000000000006572c1a00000000000000000000000000000000000000000000000000000000c66c66a1000000000000000000000000000000000000000000000000000000009d3070b5000000000000000000000000000000000000000000000000000000005d02968500000000000000000000000000000000000000000000000000000000599c7bd10000000000000000000000000000000000000000000000000000000005aff0b300000000000000000000000000000000000000000000000000000000375b3c0a000000000000000000000000000000000000000000000000000000008cfd78e70000000000000000000000000000000000000000000000000000000002e30f9a00000000000000000000000000000000000000000000000000000000a2b6715800000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5194:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55865,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5194:6:95","typeDescriptions":{}}},"id":55867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"5194:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55868,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5193:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_372dfafcec05a711be1950f44e85d6d8e8e9949f9314df452c369a12bbb535b2","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000268789f83b0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000002da5794a00000000000000000000000000000000000000000000000000000000dd81b5cf0000000000000000000000000000000000000000000000000000000069e737fd0000000000000000000000000000000000000000000000000000000041b6a2e80000000000000000000000000000000000000000000000000000000024729425000000000000000000000000000000000000000000000000000000009e530b57000000000000000000000000000000000000000000000000000000006547cd6400000000000000000000000000000000000000000000000000000000b9ee584200000000000000000000000000000000000000000000000000000000a9294bdd000000000000000000000000000000000000000000000000000000002218059400000000000000000000000000000000000000000000000000000000b3ab3f7400000000000000000000000000000000000000000000000000000000ac12d763000000000000000000000000000000000000000000000000000000004aa8f8a500000000000000000000000000000000000000000000000000000000ca41d5ce00000000000000000000000000000000000000000000000000000000d6c5c39700000000000000000000000000000000000000000000000000000000544dddff000000000000000000000000000000000000000000000000000000006ad21bb000000000000000000000000000000000000000000000000000000000a517218f000000000000000000000000000000000000000000000000000000009704276600000000000000000000000000000000000000000000000000000000767ee5f400000000000000000000000000000000000000000000000000000000335eb62a00000000000000000000000000000000000000000000000000000000b1ba49b000000000000000000000000000000000000000000000000000000000f3229131000000000000000000000000000000000000000000000000000000000338150f0000000000000000000000000000000000000000000000000000000094074b03000000000000000000000000000000000000000000000000000000007edeac920000000000000000000000000000000000000000000000000000000006572c1a00000000000000000000000000000000000000000000000000000000c66c66a1000000000000000000000000000000000000000000000000000000009d3070b5000000000000000000000000000000000000000000000000000000005d02968500000000000000000000000000000000000000000000000000000000599c7bd10000000000000000000000000000000000000000000000000000000005aff0b300000000000000000000000000000000000000000000000000000000375b3c0a000000000000000000000000000000000000000000000000000000008cfd78e70000000000000000000000000000000000000000000000000000000002e30f9a00000000000000000000000000000000000000000000000000000000a2b6715800000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55862,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2574:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2578:6:95","memberName":"decode","nodeType":"MemberAccess","src":"2574:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2574:2647:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55870,"nodeType":"Return","src":"2551:2670:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55876,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"5272:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55874,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5255:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5259:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"5255:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5255:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55873,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5245:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5245:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794d616e616765724661636574","id":55882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5314:21:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""},"value":"GatewayManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94d71d89524fdb3669d99e65b3dadc27c795d0866440560c0dbc203be5b51924","typeString":"literal_string \"GatewayManagerFacet\""}],"expression":{"id":55880,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5297:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5301:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"5297:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5297:39:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55879,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5287:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5287:50:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5245:92:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55896,"nodeType":"IfStatement","src":"5241:873:95","trueBody":{"id":55895,"nodeType":"Block","src":"5339:775:95","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000085a627dbc0000000000000000000000000000000000000000000000000000000018f44b70000000000000000000000000000000000000000000000000000000000517e1aa0000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000f207564e000000000000000000000000000000000000000000000000000000006b2c1eef00000000000000000000000000000000000000000000000000000000d8e255720000000000000000000000000000000000000000000000000000000045f5448500000000000000000000000000000000000000000000000000000000","id":55888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"5408:645:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_d26298b725b5ff26c281a078022beedb54b9aef802c864cc8f6612bbd8606bca","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000085a627dbc0000000000000000000000000000000000000000000000000000000018f44b70000000000000000000000000000000000000000000000000000000000517e1aa0000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000f207564e000000000000000000000000000000000000000000000000000000006b2c1eef00000000000000000000000000000000000000000000000000000000d8e255720000000000000000000000000000000000000000000000000000000045f5448500000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6076:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55889,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6076:6:95","typeDescriptions":{}}},"id":55891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"6076:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55892,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6075:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d26298b725b5ff26c281a078022beedb54b9aef802c864cc8f6612bbd8606bca","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000085a627dbc0000000000000000000000000000000000000000000000000000000018f44b70000000000000000000000000000000000000000000000000000000000517e1aa0000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000f207564e000000000000000000000000000000000000000000000000000000006b2c1eef00000000000000000000000000000000000000000000000000000000d8e255720000000000000000000000000000000000000000000000000000000045f5448500000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55886,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5376:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5380:6:95","memberName":"decode","nodeType":"MemberAccess","src":"5376:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5376:727:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55894,"nodeType":"Return","src":"5353:750:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55900,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"6154:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55898,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6137:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6141:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"6137:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6137:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55897,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6127:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6127:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"476174657761794d657373656e6765724661636574","id":55906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6196:23:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""},"value":"GatewayMessengerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1884e7126de8f37e1ddc270db007b0b66ae6e4e30942733e78d7e26449340fe1","typeString":"literal_string \"GatewayMessengerFacet\""}],"expression":{"id":55904,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6179:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6183:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"6179:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6179:41:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55903,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6169:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6169:52:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6127:94:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55920,"nodeType":"IfStatement","src":"6123:491:95","trueBody":{"id":55919,"nodeType":"Block","src":"6223:391:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000225bf0db600000000000000000000000000000000000000000000000000000000210b944e00000000000000000000000000000000000000000000000000000000","id":55912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"6292:261:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_78c951f2845cd8cc448aafa473d5e71d36f5251f8c62973c5396ac8eb6a0a039","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000225bf0db600000000000000000000000000000000000000000000000000000000210b944e00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6576:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55913,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6576:6:95","typeDescriptions":{}}},"id":55915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"6576:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55916,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6575:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_78c951f2845cd8cc448aafa473d5e71d36f5251f8c62973c5396ac8eb6a0a039","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000225bf0db600000000000000000000000000000000000000000000000000000000210b944e00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55910,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6260:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6264:6:95","memberName":"decode","nodeType":"MemberAccess","src":"6260:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6260:343:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55918,"nodeType":"Return","src":"6237:366:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55924,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"6654:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55922,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6637:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6641:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"6637:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6637:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55921,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6627:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6627:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"436865636b706f696e74696e674661636574","id":55930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6696:20:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""},"value":"CheckpointingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a21fbba4dab80275416011e613dd890f0ce92259db593492c4ce63bf6bc8da6","typeString":"literal_string \"CheckpointingFacet\""}],"expression":{"id":55928,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6679:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6683:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"6679:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6679:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55927,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6669:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6669:49:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6627:91:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55944,"nodeType":"IfStatement","src":"6623:616:95","trueBody":{"id":55943,"nodeType":"Block","src":"6720:519:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000453b4e7bf0000000000000000000000000000000000000000000000000000000047dc9b4f000000000000000000000000000000000000000000000000000000007430377100000000000000000000000000000000000000000000000000000000ac81837900000000000000000000000000000000000000000000000000000000","id":55936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"6789:389:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_7db837762ff6d1b6313334bf4fd234b9c1b1efd607bda8d6e60acd05a6099dd0","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000453b4e7bf0000000000000000000000000000000000000000000000000000000047dc9b4f000000000000000000000000000000000000000000000000000000007430377100000000000000000000000000000000000000000000000000000000ac81837900000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7201:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55937,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7201:6:95","typeDescriptions":{}}},"id":55939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"7201:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55940,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7200:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7db837762ff6d1b6313334bf4fd234b9c1b1efd607bda8d6e60acd05a6099dd0","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000453b4e7bf0000000000000000000000000000000000000000000000000000000047dc9b4f000000000000000000000000000000000000000000000000000000007430377100000000000000000000000000000000000000000000000000000000ac81837900000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55934,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6757:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6761:6:95","memberName":"decode","nodeType":"MemberAccess","src":"6757:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6757:471:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55942,"nodeType":"Return","src":"6734:494:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55948,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"7279:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55946,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7262:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7266:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"7262:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7262:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55945,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7252:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7252:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"426f74746f6d5570526f757465724661636574","id":55954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7321:21:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""},"value":"BottomUpRouterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af92acb068b086f47201a2b2f1f1c900c163fdf0a4fbc2ae3a7eb9616f98ffb3","typeString":"literal_string \"BottomUpRouterFacet\""}],"expression":{"id":55952,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7304:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7308:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"7304:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7304:39:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55951,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7294:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7294:50:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7252:92:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55968,"nodeType":"IfStatement","src":"7248:617:95","trueBody":{"id":55967,"nodeType":"Block","src":"7346:519:95","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040db0f77c0000000000000000000000000000000000000000000000000000000032e7661f000000000000000000000000000000000000000000000000000000000bed761500000000000000000000000000000000000000000000000000000000bacc656d00000000000000000000000000000000000000000000000000000000","id":55960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"7415:389:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_52839a7423993e257d7bf53b8f6f7d747d6436b8d8fd66bf1856065bd09c04f8","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040db0f77c0000000000000000000000000000000000000000000000000000000032e7661f000000000000000000000000000000000000000000000000000000000bed761500000000000000000000000000000000000000000000000000000000bacc656d00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7827:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55961,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7827:6:95","typeDescriptions":{}}},"id":55963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"7827:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55964,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7826:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_52839a7423993e257d7bf53b8f6f7d747d6436b8d8fd66bf1856065bd09c04f8","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040db0f77c0000000000000000000000000000000000000000000000000000000032e7661f000000000000000000000000000000000000000000000000000000000bed761500000000000000000000000000000000000000000000000000000000bacc656d00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55958,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7383:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7387:6:95","memberName":"decode","nodeType":"MemberAccess","src":"7383:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7383:471:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55966,"nodeType":"Return","src":"7360:494:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55972,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"7905:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55970,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7888:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7892:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"7888:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7888:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55969,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7878:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7878:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"546f70446f776e46696e616c6974794661636574","id":55978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7947:22:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""},"value":"TopDownFinalityFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0206aac64d44a01107aadcf97dd73adac01890444ef70acfc372ee83bbeb9c6a","typeString":"literal_string \"TopDownFinalityFacet\""}],"expression":{"id":55976,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7930:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7934:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"7930:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7930:40:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55975,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7920:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7920:51:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7878:93:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55992,"nodeType":"IfStatement","src":"7874:554:95","trueBody":{"id":55991,"nodeType":"Block","src":"7973:455:95","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030df14461000000000000000000000000000000000000000000000000000000001119697400000000000000000000000000000000000000000000000000000000e49a547d00000000000000000000000000000000000000000000000000000000","id":55984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"8042:325:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_65e4058ab98f6576766eef79ae62af4a966b77d6f9d8a5590abfc60156bea1f1","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030df14461000000000000000000000000000000000000000000000000000000001119697400000000000000000000000000000000000000000000000000000000e49a547d00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":55986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8390:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55985,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8390:6:95","typeDescriptions":{}}},"id":55987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"8390:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":55988,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8389:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_65e4058ab98f6576766eef79ae62af4a966b77d6f9d8a5590abfc60156bea1f1","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030df14461000000000000000000000000000000000000000000000000000000001119697400000000000000000000000000000000000000000000000000000000e49a547d00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":55982,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8010:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55983,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8014:6:95","memberName":"decode","nodeType":"MemberAccess","src":"8010:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":55989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8010:407:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":55990,"nodeType":"Return","src":"7987:430:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":55996,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"8468:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":55994,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8451:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":55995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8455:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"8451:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":55997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8451:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55993,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8441:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8441:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"586e65744d6573736167696e674661636574","id":56002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8510:20:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""},"value":"XnetMessagingFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8aca0d1d4b2e86497abb8d6c74c07a2aa42e682da1ef9d7d5746cf037143d01c","typeString":"literal_string \"XnetMessagingFacet\""}],"expression":{"id":56000,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8493:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8497:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"8493:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8493:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55999,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8483:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8483:49:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8441:91:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56016,"nodeType":"IfStatement","src":"8437:424:95","trueBody":{"id":56015,"nodeType":"Block","src":"8534:327:95","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001c62eb4d500000000000000000000000000000000000000000000000000000000","id":56008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"8603:197:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_ece88ab3becf7a41e5409a8099bd473ebe5c6de663bc947fdf46553d1612e6bc","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001c62eb4d500000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8823:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56009,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8823:6:95","typeDescriptions":{}}},"id":56011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"8823:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56012,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8822:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ece88ab3becf7a41e5409a8099bd473ebe5c6de663bc947fdf46553d1612e6bc","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001c62eb4d500000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56006,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8571:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8575:6:95","memberName":"decode","nodeType":"MemberAccess","src":"8571:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8571:279:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56014,"nodeType":"Return","src":"8548:302:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56020,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"8901:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56018,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8884:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8888:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"8884:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8884:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56017,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8874:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8874:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724765747465724661636574","id":56026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8943:24:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""},"value":"SubnetActorGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_df44b2934dbad36061a312624addf55fb0cf3e115d54ec309d5723822c023c73","typeString":"literal_string \"SubnetActorGetterFacet\""}],"expression":{"id":56024,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8926:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8930:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"8926:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8926:42:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56023,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8916:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8916:53:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8874:95:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56040,"nodeType":"IfStatement","src":"8870:2732:95","trueBody":{"id":56039,"nodeType":"Block","src":"8971:2631:95","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000253354c3e10000000000000000000000000000000000000000000000000000000035142c8c0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000004b27aa72000000000000000000000000000000000000000000000000000000004b0694e20000000000000000000000000000000000000000000000000000000069e737fd000000000000000000000000000000000000000000000000000000008ef3f761000000000000000000000000000000000000000000000000000000003da3324100000000000000000000000000000000000000000000000000000000903e693000000000000000000000000000000000000000000000000000000000948628a900000000000000000000000000000000000000000000000000000000d92e8f1200000000000000000000000000000000000000000000000000000000c7cda762000000000000000000000000000000000000000000000000000000009754b29e0000000000000000000000000000000000000000000000000000000038a210b30000000000000000000000000000000000000000000000000000000080f76021000000000000000000000000000000000000000000000000000000005dd9147c00000000000000000000000000000000000000000000000000000000b2bd295e00000000000000000000000000000000000000000000000000000000d6eb591000000000000000000000000000000000000000000000000000000000332a5ac9000000000000000000000000000000000000000000000000000000001597bf7e0000000000000000000000000000000000000000000000000000000052d182d1000000000000000000000000000000000000000000000000000000001904bb2e000000000000000000000000000000000000000000000000000000002bc31eb300000000000000000000000000000000000000000000000000000000f75499dc00000000000000000000000000000000000000000000000000000000cfca28240000000000000000000000000000000000000000000000000000000040550a1c00000000000000000000000000000000000000000000000000000000d081be03000000000000000000000000000000000000000000000000000000001f3a0e410000000000000000000000000000000000000000000000000000000072d0a0e00000000000000000000000000000000000000000000000000000000028d5551d00000000000000000000000000000000000000000000000000000000599c7bd1000000000000000000000000000000000000000000000000000000009e33bd02000000000000000000000000000000000000000000000000000000006704287c00000000000000000000000000000000000000000000000000000000c5ab224100000000000000000000000000000000000000000000000000000000f0cf6c9600000000000000000000000000000000000000000000000000000000ad81e4d60000000000000000000000000000000000000000000000000000000080875df700000000000000000000000000000000000000000000000000000000","id":56032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"9040:2501:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f31142a4ec58d3ebb386734281aa88541cc1b5acce7e9a58cbc011a2aca5c9e","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000253354c3e10000000000000000000000000000000000000000000000000000000035142c8c0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000004b27aa72000000000000000000000000000000000000000000000000000000004b0694e20000000000000000000000000000000000000000000000000000000069e737fd000000000000000000000000000000000000000000000000000000008ef3f761000000000000000000000000000000000000000000000000000000003da3324100000000000000000000000000000000000000000000000000000000903e693000000000000000000000000000000000000000000000000000000000948628a900000000000000000000000000000000000000000000000000000000d92e8f1200000000000000000000000000000000000000000000000000000000c7cda762000000000000000000000000000000000000000000000000000000009754b29e0000000000000000000000000000000000000000000000000000000038a210b30000000000000000000000000000000000000000000000000000000080f76021000000000000000000000000000000000000000000000000000000005dd9147c00000000000000000000000000000000000000000000000000000000b2bd295e00000000000000000000000000000000000000000000000000000000d6eb591000000000000000000000000000000000000000000000000000000000332a5ac9000000000000000000000000000000000000000000000000000000001597bf7e0000000000000000000000000000000000000000000000000000000052d182d1000000000000000000000000000000000000000000000000000000001904bb2e000000000000000000000000000000000000000000000000000000002bc31eb300000000000000000000000000000000000000000000000000000000f75499dc00000000000000000000000000000000000000000000000000000000cfca28240000000000000000000000000000000000000000000000000000000040550a1c00000000000000000000000000000000000000000000000000000000d081be03000000000000000000000000000000000000000000000000000000001f3a0e410000000000000000000000000000000000000000000000000000000072d0a0e00000000000000000000000000000000000000000000000000000000028d5551d00000000000000000000000000000000000000000000000000000000599c7bd1000000000000000000000000000000000000000000000000000000009e33bd02000000000000000000000000000000000000000000000000000000006704287c00000000000000000000000000000000000000000000000000000000c5ab224100000000000000000000000000000000000000000000000000000000f0cf6c9600000000000000000000000000000000000000000000000000000000ad81e4d60000000000000000000000000000000000000000000000000000000080875df700000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11564:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56033,"name":"bytes4","nodeType":"ElementaryTypeName","src":"11564:6:95","typeDescriptions":{}}},"id":56035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"11564:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56036,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"11563:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2f31142a4ec58d3ebb386734281aa88541cc1b5acce7e9a58cbc011a2aca5c9e","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000253354c3e10000000000000000000000000000000000000000000000000000000035142c8c0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000004b27aa72000000000000000000000000000000000000000000000000000000004b0694e20000000000000000000000000000000000000000000000000000000069e737fd000000000000000000000000000000000000000000000000000000008ef3f761000000000000000000000000000000000000000000000000000000003da3324100000000000000000000000000000000000000000000000000000000903e693000000000000000000000000000000000000000000000000000000000948628a900000000000000000000000000000000000000000000000000000000d92e8f1200000000000000000000000000000000000000000000000000000000c7cda762000000000000000000000000000000000000000000000000000000009754b29e0000000000000000000000000000000000000000000000000000000038a210b30000000000000000000000000000000000000000000000000000000080f76021000000000000000000000000000000000000000000000000000000005dd9147c00000000000000000000000000000000000000000000000000000000b2bd295e00000000000000000000000000000000000000000000000000000000d6eb591000000000000000000000000000000000000000000000000000000000332a5ac9000000000000000000000000000000000000000000000000000000001597bf7e0000000000000000000000000000000000000000000000000000000052d182d1000000000000000000000000000000000000000000000000000000001904bb2e000000000000000000000000000000000000000000000000000000002bc31eb300000000000000000000000000000000000000000000000000000000f75499dc00000000000000000000000000000000000000000000000000000000cfca28240000000000000000000000000000000000000000000000000000000040550a1c00000000000000000000000000000000000000000000000000000000d081be03000000000000000000000000000000000000000000000000000000001f3a0e410000000000000000000000000000000000000000000000000000000072d0a0e00000000000000000000000000000000000000000000000000000000028d5551d00000000000000000000000000000000000000000000000000000000599c7bd1000000000000000000000000000000000000000000000000000000009e33bd02000000000000000000000000000000000000000000000000000000006704287c00000000000000000000000000000000000000000000000000000000c5ab224100000000000000000000000000000000000000000000000000000000f0cf6c9600000000000000000000000000000000000000000000000000000000ad81e4d60000000000000000000000000000000000000000000000000000000080875df700000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56030,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9008:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9012:6:95","memberName":"decode","nodeType":"MemberAccess","src":"9008:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9008:2583:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56038,"nodeType":"Return","src":"8985:2606:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56044,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"11642:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56042,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11625:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11629:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"11625:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11625:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56041,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11615:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11615:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724d616e616765724661636574","id":56050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11684:25:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""},"value":"SubnetActorManagerFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6417869b4768ece0f6efdc5fa6db7653d2c007303e0b535d2877e9cf73726e","typeString":"literal_string \"SubnetActorManagerFacet\""}],"expression":{"id":56048,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11667:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11671:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"11667:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11667:43:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56047,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11657:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11657:54:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11615:96:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56064,"nodeType":"IfStatement","src":"11611:1517:95","trueBody":{"id":56063,"nodeType":"Block","src":"11713:1415:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001210fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da1000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000","id":56056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"11782:1285:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_c7da6ff76dc6819a55dfa42ee60278f2c2d90838b1cc2cc188fdc85583abdd24","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001210fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da1000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13090:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56057,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13090:6:95","typeDescriptions":{}}},"id":56059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13090:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56060,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13089:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c7da6ff76dc6819a55dfa42ee60278f2c2d90838b1cc2cc188fdc85583abdd24","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001210fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da1000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11750:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11754:6:95","memberName":"decode","nodeType":"MemberAccess","src":"11750:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11750:1367:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56062,"nodeType":"Return","src":"11727:1390:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56068,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"13168:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56066,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13151:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13155:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"13151:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13151:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56065,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13141:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13141:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"52656769737465725375626e65744661636574","id":56074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13210:21:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""},"value":"RegisterSubnetFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c65662458fb5c37a8d143eb9cf2251d8254493b032a240829d2ee42d07f373e","typeString":"literal_string \"RegisterSubnetFacet\""}],"expression":{"id":56072,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13193:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13197:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"13193:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13193:39:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56071,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13183:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13183:50:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13141:92:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56088,"nodeType":"IfStatement","src":"13137:425:95","trueBody":{"id":56087,"nodeType":"Block","src":"13235:327:95","statements":[{"expression":{"arguments":[{"hexValue":"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000017be005d500000000000000000000000000000000000000000000000000000000","id":56080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"13304:197:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_76094c87cd65b9652f6dfbe745b331e20d10ccbd9e245a8bafc9a120f162be4a","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000017be005d500000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13524:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56081,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13524:6:95","typeDescriptions":{}}},"id":56083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"13524:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56084,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13523:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_76094c87cd65b9652f6dfbe745b331e20d10ccbd9e245a8bafc9a120f162be4a","typeString":"literal_string hex\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000017be005d500000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56078,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13272:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13276:6:95","memberName":"decode","nodeType":"MemberAccess","src":"13272:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13272:279:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56086,"nodeType":"Return","src":"13249:302:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56092,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"13602:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56090,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13585:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13589:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"13585:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13585:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56089,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13575:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13575:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744765747465724661636574","id":56098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13644:19:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""},"value":"SubnetGetterFacet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c18aa003c3043dfb0e34b35f917f429a246f025b2affe4c20be6569f0c04211","typeString":"literal_string \"SubnetGetterFacet\""}],"expression":{"id":56096,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13627:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13631:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"13627:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13627:37:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56095,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13617:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13617:48:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13575:90:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56112,"nodeType":"IfStatement","src":"13571:935:95","trueBody":{"id":56111,"nodeType":"Block","src":"13667:839:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000942bf3cc1000000000000000000000000000000000000000000000000000000000be06111000000000000000000000000000000000000000000000000000000001b0766c300000000000000000000000000000000000000000000000000000000a372bf30000000000000000000000000000000000000000000000000000000000f5849d1000000000000000000000000000000000000000000000000000000009836b75f00000000000000000000000000000000000000000000000000000000030f6051000000000000000000000000000000000000000000000000000000001163dca500000000000000000000000000000000000000000000000000000000a46d044d00000000000000000000000000000000000000000000000000000000","id":56104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"13736:709:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c779a62c7aee1ea0b75d0986410108437fb0114fd8a20d165b819203a57d8d3","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000942bf3cc1000000000000000000000000000000000000000000000000000000000be06111000000000000000000000000000000000000000000000000000000001b0766c300000000000000000000000000000000000000000000000000000000a372bf30000000000000000000000000000000000000000000000000000000000f5849d1000000000000000000000000000000000000000000000000000000009836b75f00000000000000000000000000000000000000000000000000000000030f6051000000000000000000000000000000000000000000000000000000001163dca500000000000000000000000000000000000000000000000000000000a46d044d00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14468:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56105,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14468:6:95","typeDescriptions":{}}},"id":56107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14468:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56108,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"14467:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c779a62c7aee1ea0b75d0986410108437fb0114fd8a20d165b819203a57d8d3","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000942bf3cc1000000000000000000000000000000000000000000000000000000000be06111000000000000000000000000000000000000000000000000000000001b0766c300000000000000000000000000000000000000000000000000000000a372bf30000000000000000000000000000000000000000000000000000000000f5849d1000000000000000000000000000000000000000000000000000000009836b75f00000000000000000000000000000000000000000000000000000000030f6051000000000000000000000000000000000000000000000000000000001163dca500000000000000000000000000000000000000000000000000000000a46d044d00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56102,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13704:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13708:6:95","memberName":"decode","nodeType":"MemberAccess","src":"13704:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13704:791:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56110,"nodeType":"Return","src":"13681:814:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56116,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"14546:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56114,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14529:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14533:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"14529:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14529:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56113,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14519:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14519:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"45524332305072657365744669786564537570706c79","id":56122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14588:24:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_072b78b73ab9f6aeb3ec63d6c645ef40c259b345424cc2c1b5fe769e0aa4c1b9","typeString":"literal_string \"ERC20PresetFixedSupply\""},"value":"ERC20PresetFixedSupply"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_072b78b73ab9f6aeb3ec63d6c645ef40c259b345424cc2c1b5fe769e0aa4c1b9","typeString":"literal_string \"ERC20PresetFixedSupply\""}],"expression":{"id":56120,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14571:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14575:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"14571:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14571:42:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56119,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14561:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14561:53:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14519:95:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56136,"nodeType":"IfStatement","src":"14515:1196:95","trueBody":{"id":56135,"nodeType":"Block","src":"14616:1095:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000ddd62ed3e00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000042966c680000000000000000000000000000000000000000000000000000000079cc679000000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddd00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000","id":56128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"14685:965:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_c890601a92e2edda04a78d86730c28d107e747f9ad8d4fc6c63563129cdded05","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000ddd62ed3e00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000042966c680000000000000000000000000000000000000000000000000000000079cc679000000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddd00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15673:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56129,"name":"bytes4","nodeType":"ElementaryTypeName","src":"15673:6:95","typeDescriptions":{}}},"id":56131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"15673:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56132,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"15672:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c890601a92e2edda04a78d86730c28d107e747f9ad8d4fc6c63563129cdded05","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000ddd62ed3e00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000042966c680000000000000000000000000000000000000000000000000000000079cc679000000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddd00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56126,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14653:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14657:6:95","memberName":"decode","nodeType":"MemberAccess","src":"14653:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14653:1047:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56134,"nodeType":"Return","src":"14630:1070:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56140,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"15751:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56138,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15734:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15738:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"15734:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15734:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56137,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15724:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15724:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4e756d626572436f6e747261637446616365744569676874","id":56146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15793:26:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1fd7eac73477d1cb2585ae782fbc4469d63b20c6530e7482af8a95504e9d832","typeString":"literal_string \"NumberContractFacetEight\""},"value":"NumberContractFacetEight"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1fd7eac73477d1cb2585ae782fbc4469d63b20c6530e7482af8a95504e9d832","typeString":"literal_string \"NumberContractFacetEight\""}],"expression":{"id":56144,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15776:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15780:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"15776:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15776:44:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56143,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15766:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15766:55:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15724:97:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56160,"nodeType":"IfStatement","src":"15720:430:95","trueBody":{"id":56159,"nodeType":"Block","src":"15823:327:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000","id":56152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"15892:197:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c7f94efa22f1b9380ba1662646e7fbef2c3b23047a507d126bc0e7cf0a56302","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16112:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56153,"name":"bytes4","nodeType":"ElementaryTypeName","src":"16112:6:95","typeDescriptions":{}}},"id":56155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"16112:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56156,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"16111:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c7f94efa22f1b9380ba1662646e7fbef2c3b23047a507d126bc0e7cf0a56302","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56150,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15860:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15864:6:95","memberName":"decode","nodeType":"MemberAccess","src":"15860:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15860:279:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56158,"nodeType":"Return","src":"15837:302:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56164,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"16190:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56162,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16173:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16177:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"16173:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16173:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56161,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16163:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16163:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"4e756d626572436f6e74726163744661636574536576656e","id":56170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16232:26:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_31381b8ca8e152972ea44177887c66943b2a157985cb95373bcf58cfc6f7f36d","typeString":"literal_string \"NumberContractFacetSeven\""},"value":"NumberContractFacetSeven"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_31381b8ca8e152972ea44177887c66943b2a157985cb95373bcf58cfc6f7f36d","typeString":"literal_string \"NumberContractFacetSeven\""}],"expression":{"id":56168,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16215:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16219:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"16215:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16215:44:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56167,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16205:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16205:55:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16163:97:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56184,"nodeType":"IfStatement","src":"16159:430:95","trueBody":{"id":56183,"nodeType":"Block","src":"16262:327:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000","id":56176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"16331:197:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c7f94efa22f1b9380ba1662646e7fbef2c3b23047a507d126bc0e7cf0a56302","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16551:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56177,"name":"bytes4","nodeType":"ElementaryTypeName","src":"16551:6:95","typeDescriptions":{}}},"id":56179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"16551:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56180,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"16550:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c7f94efa22f1b9380ba1662646e7fbef2c3b23047a507d126bc0e7cf0a56302","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56174,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16299:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16303:6:95","memberName":"decode","nodeType":"MemberAccess","src":"16299:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16299:279:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56182,"nodeType":"Return","src":"16276:302:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56188,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"16629:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56186,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16612:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16616:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"16612:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16612:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56185,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16602:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16602:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"53656c6563746f724c696272617279","id":56194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16671:17:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_334d2051eb2faeb8e687c182b9a9e9ebdfabad7649fc9ad04dec8658e593861f","typeString":"literal_string \"SelectorLibrary\""},"value":"SelectorLibrary"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_334d2051eb2faeb8e687c182b9a9e9ebdfabad7649fc9ad04dec8658e593861f","typeString":"literal_string \"SelectorLibrary\""}],"expression":{"id":56192,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16654:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16658:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"16654:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16654:35:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56191,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16644:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16644:46:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16602:88:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56208,"nodeType":"IfStatement","src":"16598:421:95","trueBody":{"id":56207,"nodeType":"Block","src":"16692:327:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000166e2898c00000000000000000000000000000000000000000000000000000000","id":56200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"16761:197:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e56f707f0923d6e1c341860b3233568a23e18487906159b5453a3176cb14f7b","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000166e2898c00000000000000000000000000000000000000000000000000000000\""},"value":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000 \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001f≌\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"},{"components":[{"baseExpression":{"id":56202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16981:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56201,"name":"bytes4","nodeType":"ElementaryTypeName","src":"16981:6:95","typeDescriptions":{}}},"id":56203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"16981:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56204,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"16980:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9e56f707f0923d6e1c341860b3233568a23e18487906159b5453a3176cb14f7b","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000166e2898c00000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56198,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16729:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16733:6:95","memberName":"decode","nodeType":"MemberAccess","src":"16729:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16729:279:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56206,"nodeType":"Return","src":"16706:302:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56212,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"17059:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56210,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17042:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17046:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"17042:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17042:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56209,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17032:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17032:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"546573745574696c73","id":56218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17101:11:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1d9c5e0e7a8cd646c7822211b4085e607b3cadf2dd23eeea8511ac8cb0f4b5a","typeString":"literal_string \"TestUtils\""},"value":"TestUtils"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1d9c5e0e7a8cd646c7822211b4085e607b3cadf2dd23eeea8511ac8cb0f4b5a","typeString":"literal_string \"TestUtils\""}],"expression":{"id":56216,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17084:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17088:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"17084:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17084:29:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56215,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17074:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17074:40:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17032:82:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56232,"nodeType":"IfStatement","src":"17028:863:95","trueBody":{"id":56231,"nodeType":"Block","src":"17116:775:95","statements":[{"expression":{"arguments":[{"hexValue":"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000008997da8d4000000000000000000000000000000000000000000000000000000005727dc5c0000000000000000000000000000000000000000000000000000000003a507be000000000000000000000000000000000000000000000000000000007a308a4c00000000000000000000000000000000000000000000000000000000eeeac01e00000000000000000000000000000000000000000000000000000000bc9e2bcf00000000000000000000000000000000000000000000000000000000f6caf0ac00000000000000000000000000000000000000000000000000000000573081a200000000000000000000000000000000000000000000000000000000","id":56224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"17185:645:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ba46721a33884dbb392fc4114619e8f2dfd6de8dd76cac3f8f39162af00c190","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000008997da8d4000000000000000000000000000000000000000000000000000000005727dc5c0000000000000000000000000000000000000000000000000000000003a507be000000000000000000000000000000000000000000000000000000007a308a4c00000000000000000000000000000000000000000000000000000000eeeac01e00000000000000000000000000000000000000000000000000000000bc9e2bcf00000000000000000000000000000000000000000000000000000000f6caf0ac00000000000000000000000000000000000000000000000000000000573081a200000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17853:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56225,"name":"bytes4","nodeType":"ElementaryTypeName","src":"17853:6:95","typeDescriptions":{}}},"id":56227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"17853:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56228,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17852:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ba46721a33884dbb392fc4114619e8f2dfd6de8dd76cac3f8f39162af00c190","typeString":"literal_string hex\"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000008997da8d4000000000000000000000000000000000000000000000000000000005727dc5c0000000000000000000000000000000000000000000000000000000003a507be000000000000000000000000000000000000000000000000000000007a308a4c00000000000000000000000000000000000000000000000000000000eeeac01e00000000000000000000000000000000000000000000000000000000bc9e2bcf00000000000000000000000000000000000000000000000000000000f6caf0ac00000000000000000000000000000000000000000000000000000000573081a200000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56222,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17153:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17157:6:95","memberName":"decode","nodeType":"MemberAccess","src":"17153:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17153:727:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56230,"nodeType":"Return","src":"17130:750:95"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":56245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":56236,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55723,"src":"17931:9:95","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":56234,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17914:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17918:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"17914:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17914:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56233,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17904:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17904:38:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"5375626e65744163746f724d616e6167657246616365744d6f636b","id":56242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17973:29:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""},"value":"SubnetActorManagerFacetMock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2ab189a2212863cbc3a352733fcf27bd61a9ec53837e62ef00bfbf9454c24e3","typeString":"literal_string \"SubnetActorManagerFacetMock\""}],"expression":{"id":56240,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17956:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17960:12:95","memberName":"encodePacked","nodeType":"MemberAccess","src":"17956:16:95","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17956:47:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56239,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17946:9:95","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17946:58:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17904:100:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56256,"nodeType":"IfStatement","src":"17900:1649:95","trueBody":{"id":56255,"nodeType":"Block","src":"18006:1543:95","statements":[{"expression":{"arguments":[{"hexValue":"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001410fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da100000000000000000000000000000000000000000000000000000000350a14bf00000000000000000000000000000000000000000000000000000000c7ebdaef000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000","id":56248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"18075:1413:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_91886c8c9d175a6becb1c99f3b8b2decf78dd328f7206840cee81c009a45258e","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001410fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da100000000000000000000000000000000000000000000000000000000350a14bf00000000000000000000000000000000000000000000000000000000c7ebdaef000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000\""}},{"components":[{"baseExpression":{"id":56250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19511:6:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":56249,"name":"bytes4","nodeType":"ElementaryTypeName","src":"19511:6:95","typeDescriptions":{}}},"id":56251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"19511:8:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":56252,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19510:10:95","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91886c8c9d175a6becb1c99f3b8b2decf78dd328f7206840cee81c009a45258e","typeString":"literal_string hex\"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001410fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da100000000000000000000000000000000000000000000000000000000350a14bf00000000000000000000000000000000000000000000000000000000c7ebdaef000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000\""},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":56246,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18043:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18047:6:95","memberName":"decode","nodeType":"MemberAccess","src":"18043:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":56253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18043:1495:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"functionReturnParameters":55728,"id":56254,"nodeType":"Return","src":"18020:1518:95"}]}},{"expression":{"arguments":[{"hexValue":"53656c6563746f72206e6f7420666f756e64","id":56258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19565:20:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_f47cec11e62fa8df5d53019f3248f5ba37833b5d42587189a0ac9a31e362ce89","typeString":"literal_string \"Selector not found\""},"value":"Selector not found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f47cec11e62fa8df5d53019f3248f5ba37833b5d42587189a0ac9a31e362ce89","typeString":"literal_string \"Selector not found\""}],"id":56257,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"19558:6:95","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":56259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19558:28:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56260,"nodeType":"ExpressionStatement","src":"19558:28:95"}]},"functionSelector":"66e2898c","implemented":true,"kind":"function","modifiers":[],"name":"resolveSelectors","nameLocation":"111:16:95","parameters":{"id":55724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55723,"mutability":"mutable","name":"facetName","nameLocation":"142:9:95","nodeType":"VariableDeclaration","scope":56262,"src":"128:23:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55722,"name":"string","nodeType":"ElementaryTypeName","src":"128:6:95","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"127:25:95"},"returnParameters":{"id":55728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55727,"mutability":"mutable","name":"facetSelectors","nameLocation":"190:14:95","nodeType":"VariableDeclaration","scope":56262,"src":"174:30:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":55725,"name":"bytes4","nodeType":"ElementaryTypeName","src":"174:6:95","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":55726,"nodeType":"ArrayTypeName","src":"174:8:95","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"173:32:95"},"scope":56263,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"SelectorLibrary","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[56263],"name":"SelectorLibrary","nameLocation":"80:15:95","scope":56264,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":95} \ No newline at end of file diff --git a/.out/SignedMath.sol/SignedMath.json b/.out/SignedMath.sol/SignedMath.json index fe3557b96..1874d1207 100644 --- a/.out/SignedMath.sol/SignedMath.json +++ b/.out/SignedMath.sol/SignedMath.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220df670a1c1c84613ba4ec725ea94f26c57ba680bf9cee9e07c39666274c8ccc4664736f6c63430008130033","sourceMap":"216:1047:32:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220df670a1c1c84613ba4ec725ea94f26c57ba680bf9cee9e07c39666274c8ccc4664736f6c63430008130033","sourceMap":"216:1047:32:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":{\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":"SignedMath"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","id":34774,"exportedSymbols":{"SignedMath":[34773]},"nodeType":"SourceUnit","src":"109:1155:32","nodes":[{"id":34670,"nodeType":"PragmaDirective","src":"109:24:32","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":34773,"nodeType":"ContractDefinition","src":"216:1047:32","nodes":[{"id":34689,"nodeType":"FunctionDefinition","src":"312:101:32","nodes":[],"body":{"id":34688,"nodeType":"Block","src":"376:37:32","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34681,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34674,"src":"393:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":34682,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34676,"src":"397:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"393:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":34685,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34676,"src":"405:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"393:13:32","trueExpression":{"id":34684,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34674,"src":"401:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":34680,"id":34687,"nodeType":"Return","src":"386:20:32"}]},"documentation":{"id":34672,"nodeType":"StructuredDocumentation","src":"241:66:32","text":" @dev Returns the largest of two signed numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"321:3:32","parameters":{"id":34677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34674,"mutability":"mutable","name":"a","nameLocation":"332:1:32","nodeType":"VariableDeclaration","scope":34689,"src":"325:8:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34673,"name":"int256","nodeType":"ElementaryTypeName","src":"325:6:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":34676,"mutability":"mutable","name":"b","nameLocation":"342:1:32","nodeType":"VariableDeclaration","scope":34689,"src":"335:8:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34675,"name":"int256","nodeType":"ElementaryTypeName","src":"335:6:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"324:20:32"},"returnParameters":{"id":34680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34679,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34689,"src":"368:6:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34678,"name":"int256","nodeType":"ElementaryTypeName","src":"368:6:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"367:8:32"},"scope":34773,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34707,"nodeType":"FunctionDefinition","src":"491:101:32","nodes":[],"body":{"id":34706,"nodeType":"Block","src":"555:37:32","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34699,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34692,"src":"572:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":34700,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34694,"src":"576:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"572:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":34703,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34694,"src":"584:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"572:13:32","trueExpression":{"id":34702,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34692,"src":"580:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":34698,"id":34705,"nodeType":"Return","src":"565:20:32"}]},"documentation":{"id":34690,"nodeType":"StructuredDocumentation","src":"419:67:32","text":" @dev Returns the smallest of two signed numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"500:3:32","parameters":{"id":34695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34692,"mutability":"mutable","name":"a","nameLocation":"511:1:32","nodeType":"VariableDeclaration","scope":34707,"src":"504:8:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34691,"name":"int256","nodeType":"ElementaryTypeName","src":"504:6:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":34694,"mutability":"mutable","name":"b","nameLocation":"521:1:32","nodeType":"VariableDeclaration","scope":34707,"src":"514:8:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34693,"name":"int256","nodeType":"ElementaryTypeName","src":"514:6:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"503:20:32"},"returnParameters":{"id":34698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34697,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34707,"src":"547:6:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34696,"name":"int256","nodeType":"ElementaryTypeName","src":"547:6:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"546:8:32"},"scope":34773,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34751,"nodeType":"FunctionDefinition","src":"729:230:32","nodes":[],"body":{"id":34750,"nodeType":"Block","src":"797:162:32","nodes":[],"statements":[{"assignments":[34718],"declarations":[{"constant":false,"id":34718,"mutability":"mutable","name":"x","nameLocation":"866:1:32","nodeType":"VariableDeclaration","scope":34750,"src":"859:8:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34717,"name":"int256","nodeType":"ElementaryTypeName","src":"859:6:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":34731,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34719,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34710,"src":"871:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":34720,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34712,"src":"875:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"871:5:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":34722,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"870:7:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34723,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34710,"src":"882:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":34724,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34712,"src":"886:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"882:5:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":34726,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"881:7:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":34727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"892:1:32","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"881:12:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":34729,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:14:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:24:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"859:35:32"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34732,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34718,"src":"911:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":34740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":34737,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34718,"src":"931:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":34736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"923:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34735,"name":"uint256","nodeType":"ElementaryTypeName","src":"923:7:32","typeDescriptions":{}}},"id":34738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":34739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"937:3:32","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"923:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":34734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"916:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":34733,"name":"int256","nodeType":"ElementaryTypeName","src":"916:6:32","typeDescriptions":{}}},"id":34741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"916:25:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34742,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34710,"src":"945:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":34743,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34712,"src":"949:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"945:5:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":34745,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"944:7:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"916:35:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":34747,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"915:37:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"911:41:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":34716,"id":34749,"nodeType":"Return","src":"904:48:32"}]},"documentation":{"id":34708,"nodeType":"StructuredDocumentation","src":"598:126:32","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"738:7:32","parameters":{"id":34713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34710,"mutability":"mutable","name":"a","nameLocation":"753:1:32","nodeType":"VariableDeclaration","scope":34751,"src":"746:8:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34709,"name":"int256","nodeType":"ElementaryTypeName","src":"746:6:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":34712,"mutability":"mutable","name":"b","nameLocation":"763:1:32","nodeType":"VariableDeclaration","scope":34751,"src":"756:8:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34711,"name":"int256","nodeType":"ElementaryTypeName","src":"756:6:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"745:20:32"},"returnParameters":{"id":34716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34751,"src":"789:6:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34714,"name":"int256","nodeType":"ElementaryTypeName","src":"789:6:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"788:8:32"},"scope":34773,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34772,"nodeType":"FunctionDefinition","src":"1048:213:32","nodes":[],"body":{"id":34771,"nodeType":"Block","src":"1103:158:32","nodes":[],"statements":[{"id":34770,"nodeType":"UncheckedBlock","src":"1113:142:32","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":34763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":34761,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34754,"src":"1228:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":34762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1228:6:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":34766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1241:2:32","subExpression":{"id":34765,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34754,"src":"1242:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":34767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1228:15:32","trueExpression":{"id":34764,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34754,"src":"1237:1:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":34760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1220:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":34759,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:32","typeDescriptions":{}}},"id":34768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:24:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":34758,"id":34769,"nodeType":"Return","src":"1213:31:32"}]}]},"documentation":{"id":34752,"nodeType":"StructuredDocumentation","src":"965:78:32","text":" @dev Returns the absolute unsigned value of a signed value."},"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1057:3:32","parameters":{"id":34755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34754,"mutability":"mutable","name":"n","nameLocation":"1068:1:32","nodeType":"VariableDeclaration","scope":34772,"src":"1061:8:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":34753,"name":"int256","nodeType":"ElementaryTypeName","src":"1061:6:32","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1060:10:32"},"returnParameters":{"id":34758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34757,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":34772,"src":"1094:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34756,"name":"uint256","nodeType":"ElementaryTypeName","src":"1094:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1093:9:32"},"scope":34773,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":34671,"nodeType":"StructuredDocumentation","src":"135:80:32","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"linearizedBaseContracts":[34773],"name":"SignedMath","nameLocation":"224:10:32","scope":34774,"usedErrors":[]}],"license":"MIT"},"id":32} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220df670a1c1c84613ba4ec725ea94f26c57ba680bf9cee9e07c39666274c8ccc4664736f6c63430008130033","sourceMap":"216:1047:35:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220df670a1c1c84613ba4ec725ea94f26c57ba680bf9cee9e07c39666274c8ccc4664736f6c63430008130033","sourceMap":"216:1047:35:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":{\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":"SignedMath"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","id":35203,"exportedSymbols":{"SignedMath":[35202]},"nodeType":"SourceUnit","src":"109:1155:35","nodes":[{"id":35099,"nodeType":"PragmaDirective","src":"109:24:35","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":35202,"nodeType":"ContractDefinition","src":"216:1047:35","nodes":[{"id":35118,"nodeType":"FunctionDefinition","src":"312:101:35","nodes":[],"body":{"id":35117,"nodeType":"Block","src":"376:37:35","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35110,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35103,"src":"393:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":35111,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35105,"src":"397:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"393:5:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":35114,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35105,"src":"405:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"393:13:35","trueExpression":{"id":35113,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35103,"src":"401:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":35109,"id":35116,"nodeType":"Return","src":"386:20:35"}]},"documentation":{"id":35101,"nodeType":"StructuredDocumentation","src":"241:66:35","text":" @dev Returns the largest of two signed numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"321:3:35","parameters":{"id":35106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35103,"mutability":"mutable","name":"a","nameLocation":"332:1:35","nodeType":"VariableDeclaration","scope":35118,"src":"325:8:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35102,"name":"int256","nodeType":"ElementaryTypeName","src":"325:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":35105,"mutability":"mutable","name":"b","nameLocation":"342:1:35","nodeType":"VariableDeclaration","scope":35118,"src":"335:8:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35104,"name":"int256","nodeType":"ElementaryTypeName","src":"335:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"324:20:35"},"returnParameters":{"id":35109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35108,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35118,"src":"368:6:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35107,"name":"int256","nodeType":"ElementaryTypeName","src":"368:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"367:8:35"},"scope":35202,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35136,"nodeType":"FunctionDefinition","src":"491:101:35","nodes":[],"body":{"id":35135,"nodeType":"Block","src":"555:37:35","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35128,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35121,"src":"572:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":35129,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35123,"src":"576:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"572:5:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":35132,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35123,"src":"584:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"572:13:35","trueExpression":{"id":35131,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35121,"src":"580:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":35127,"id":35134,"nodeType":"Return","src":"565:20:35"}]},"documentation":{"id":35119,"nodeType":"StructuredDocumentation","src":"419:67:35","text":" @dev Returns the smallest of two signed numbers."},"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"500:3:35","parameters":{"id":35124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35121,"mutability":"mutable","name":"a","nameLocation":"511:1:35","nodeType":"VariableDeclaration","scope":35136,"src":"504:8:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35120,"name":"int256","nodeType":"ElementaryTypeName","src":"504:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":35123,"mutability":"mutable","name":"b","nameLocation":"521:1:35","nodeType":"VariableDeclaration","scope":35136,"src":"514:8:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35122,"name":"int256","nodeType":"ElementaryTypeName","src":"514:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"503:20:35"},"returnParameters":{"id":35127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35136,"src":"547:6:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35125,"name":"int256","nodeType":"ElementaryTypeName","src":"547:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"546:8:35"},"scope":35202,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35180,"nodeType":"FunctionDefinition","src":"729:230:35","nodes":[],"body":{"id":35179,"nodeType":"Block","src":"797:162:35","nodes":[],"statements":[{"assignments":[35147],"declarations":[{"constant":false,"id":35147,"mutability":"mutable","name":"x","nameLocation":"866:1:35","nodeType":"VariableDeclaration","scope":35179,"src":"859:8:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35146,"name":"int256","nodeType":"ElementaryTypeName","src":"859:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":35160,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35148,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35139,"src":"871:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":35149,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35141,"src":"875:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"871:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":35151,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"870:7:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35152,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35139,"src":"882:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":35153,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35141,"src":"886:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"882:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":35155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"881:7:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":35156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"892:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"881:12:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":35158,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:14:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:24:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"859:35:35"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35161,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35147,"src":"911:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":35166,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35147,"src":"931:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":35165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"923:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":35164,"name":"uint256","nodeType":"ElementaryTypeName","src":"923:7:35","typeDescriptions":{}}},"id":35167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":35168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"937:3:35","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"923:17:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":35163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"916:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":35162,"name":"int256","nodeType":"ElementaryTypeName","src":"916:6:35","typeDescriptions":{}}},"id":35170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"916:25:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35171,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35139,"src":"945:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":35172,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35141,"src":"949:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"945:5:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":35174,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"944:7:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"916:35:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":35176,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"915:37:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"911:41:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":35145,"id":35178,"nodeType":"Return","src":"904:48:35"}]},"documentation":{"id":35137,"nodeType":"StructuredDocumentation","src":"598:126:35","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"738:7:35","parameters":{"id":35142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35139,"mutability":"mutable","name":"a","nameLocation":"753:1:35","nodeType":"VariableDeclaration","scope":35180,"src":"746:8:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35138,"name":"int256","nodeType":"ElementaryTypeName","src":"746:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":35141,"mutability":"mutable","name":"b","nameLocation":"763:1:35","nodeType":"VariableDeclaration","scope":35180,"src":"756:8:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35140,"name":"int256","nodeType":"ElementaryTypeName","src":"756:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"745:20:35"},"returnParameters":{"id":35145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35144,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35180,"src":"789:6:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35143,"name":"int256","nodeType":"ElementaryTypeName","src":"789:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"788:8:35"},"scope":35202,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35201,"nodeType":"FunctionDefinition","src":"1048:213:35","nodes":[],"body":{"id":35200,"nodeType":"Block","src":"1103:158:35","nodes":[],"statements":[{"id":35199,"nodeType":"UncheckedBlock","src":"1113:142:35","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":35192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":35190,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35183,"src":"1228:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":35191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1228:6:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":35195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1241:2:35","subExpression":{"id":35194,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35183,"src":"1242:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":35196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1228:15:35","trueExpression":{"id":35193,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35183,"src":"1237:1:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":35189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1220:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":35188,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:35","typeDescriptions":{}}},"id":35197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:24:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":35187,"id":35198,"nodeType":"Return","src":"1213:31:35"}]}]},"documentation":{"id":35181,"nodeType":"StructuredDocumentation","src":"965:78:35","text":" @dev Returns the absolute unsigned value of a signed value."},"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1057:3:35","parameters":{"id":35184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35183,"mutability":"mutable","name":"n","nameLocation":"1068:1:35","nodeType":"VariableDeclaration","scope":35201,"src":"1061:8:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":35182,"name":"int256","nodeType":"ElementaryTypeName","src":"1061:6:35","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1060:10:35"},"returnParameters":{"id":35187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35186,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":35201,"src":"1094:7:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35185,"name":"uint256","nodeType":"ElementaryTypeName","src":"1094:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1093:9:35"},"scope":35202,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":35100,"nodeType":"StructuredDocumentation","src":"135:80:35","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"linearizedBaseContracts":[35202],"name":"SignedMath","nameLocation":"224:10:35","scope":35203,"usedErrors":[]}],"license":"MIT"},"id":35} \ No newline at end of file diff --git a/.out/Status.sol/Status.json b/.out/Status.sol/Status.json deleted file mode 100644 index 5c2838f26..000000000 --- a/.out/Status.sol/Status.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/enums/Status.sol","id":36933,"exportedSymbols":{"Status":[36932]},"nodeType":"SourceUnit","src":"46:181:42","nodes":[{"id":36925,"nodeType":"PragmaDirective","src":"46:23:42","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36932,"nodeType":"EnumDefinition","src":"128:98:42","nodes":[],"canonicalName":"Status","members":[{"id":36926,"name":"Unset","nameLocation":"146:5:42","nodeType":"EnumValue","src":"146:5:42"},{"id":36927,"name":"Active","nameLocation":"157:6:42","nodeType":"EnumValue","src":"157:6:42"},{"id":36928,"name":"Inactive","nameLocation":"169:8:42","nodeType":"EnumValue","src":"169:8:42"},{"id":36929,"name":"Killed","nameLocation":"183:6:42","nodeType":"EnumValue","src":"183:6:42"},{"id":36930,"name":"Terminating","nameLocation":"195:11:42","nodeType":"EnumValue","src":"195:11:42"},{"id":36931,"name":"Instantiated","nameLocation":"212:12:42","nodeType":"EnumValue","src":"212:12:42"}],"name":"Status","nameLocation":"133:6:42"}],"license":"MIT OR Apache-2.0"},"id":42} \ No newline at end of file diff --git a/.out/StorableMsgHelper.sol/StorableMsgHelper.json b/.out/StorableMsgHelper.sol/StorableMsgHelper.json index a28c3ac81..4110a12a1 100644 --- a/.out/StorableMsgHelper.sol/StorableMsgHelper.json +++ b/.out/StorableMsgHelper.sol/StorableMsgHelper.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"applyType","inputs":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"currentSubnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"IPCMsgType","internalType":"enum IPCMsgType"}],"stateMutability":"pure"},{"type":"function","name":"toHash","inputs":[{"name":"storableMsg","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080806040523461001a576107a79081610020823930815050f35b600080fdfe60806040908082526004918236101561001757600080fd5b600091823560e01c9081632f645753146100be575063f47ad7eb1461003b57600080fd5b60031981813601126100ba5783359067ffffffffffffffff908183116100b65760e08184360301126100b6576024359182116100b657839082360301126100b2579061008b918501908501610460565b905191600282101561009f57602083838152f35b634e487b7160e01b815260218452602490fd5b8380fd5b8480fd5b8280fd5b6003199150846020368401126100b65780359467ffffffffffffffff918287116101c7578660e091019487360301126101c4576020830193602085526101186101078280610622565b60e088870152610120860190610689565b9161013d61012960248a0184610622565b93603f199485888303016060890152610689565b936044890135608087015261015460648a01610239565b1660a086015260848801359063ffffffff60e01b82168092036101c457506101a36101ba94869461019460209b9560c49560c089015260a4870190610636565b918784030160e0880152610668565b91013561010083015203601f198101835282610217565b5190209051908152f35b80fd5b5080fd5b903590603e19813603018212156101e0570190565b600080fd5b6040810190811067ffffffffffffffff82111761020157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761020157604052565b359067ffffffffffffffff821682036101e057565b67ffffffffffffffff81116102015760051b60200190565b35906001600160a01b03821682036101e057565b91906040838203126101e05760405192610293846101e5565b8361029d82610239565b8152602091828101359067ffffffffffffffff82116101e057019280601f850112156101e05783356102ce8161024e565b946102dc6040519687610217565b818652848087019260051b8201019283116101e05784809101915b83831061030657505050500152565b819061031184610266565b81520191019084906102f7565b90602080838303126101e057825167ffffffffffffffff938482116101e05701926040848403126101e05760405193610356856101e5565b805182811681036101e0578552828101519182116101e057019180601f840112156101e05782516103868161024e565b936103946040519586610217565b818552838086019260051b8201019283116101e0578301905b8282106103bd5750505082015290565b81516001600160a01b03811681036101e05781529083019083016103ad565b606090604083019067ffffffffffffffff815116845260209283809201519460408382015285518094520193019160005b82811061041b575050505090565b83516001600160a01b03168552938101939281019260010161040d565b909161044f61045d936040845260408401906103dc565b9160208184039101526103dc565b90565b91909160206104ac6104a461049461048d610486610480868801886101cb565b806101cb565b369061027a565b94806101cb565b61049f3691806101cb565b61027a565b94369061027a565b9373__$a0fe38a9a81205afccc10810b09a4d3f45$__604090815185631ccc893360e11b9889835282806104e760009a8b9460048401610438565b0381865af49182156106185790879899889261051799946105fc575b508551988992839283528860048401610438565b0381855af49586156105f25787966105c6575b508561054d928692855180958194829363c836244d60e01b845260048401610438565b03915af49182156105bd57508591610587575b5061056c575b50505090565b81015151910151511061058157388080610566565b50600190565b90508281813d83116105b6575b61059e8183610217565b810103126100b6575180151581036100b65738610560565b503d610594565b513d87823e3d90fd5b61054d929650906105e986923d808b833e6105e18183610217565b81019061031e565b9692509061052a565b83513d89823e3d90fd5b6106119194503d8085833e6105e18183610217565b9238610503565b84513d89823e3d90fd5b9035603e19823603018112156101e0570190565b9035601e19823603018112156101e057016020813591019167ffffffffffffffff82116101e05781360383136101e057565b908060209392818452848401376000828201840152601f01601f1916010190565b906106948280610622565b9060408152608081019267ffffffffffffffff93846106b285610239565b16604084015260209384810135601e19823603018112156101e057019084823592019582116101e0578160051b360386136101e0578190604060608601525260a08301949060005b81811061074c575050508083610711920190610622565b908281850391015280359060ff82168092036101e0578361073f60409392849361045d975285810190610636565b9390948201520191610668565b9091958580600192838060a01b036107638b610266565b1681520197019291016106fa56fea2646970667358221220450d6b7b4466859db1ffcf5cd26b4eff9ff668aee46e2871f69e4c7b300c47a664736f6c63430008130033","sourceMap":"372:867:68:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1231,"length":20}]}}},"deployedBytecode":{"object":"0x60806040908082526004918236101561001757600080fd5b600091823560e01c9081632f645753146100be575063f47ad7eb1461003b57600080fd5b60031981813601126100ba5783359067ffffffffffffffff908183116100b65760e08184360301126100b6576024359182116100b657839082360301126100b2579061008b918501908501610460565b905191600282101561009f57602083838152f35b634e487b7160e01b815260218452602490fd5b8380fd5b8480fd5b8280fd5b6003199150846020368401126100b65780359467ffffffffffffffff918287116101c7578660e091019487360301126101c4576020830193602085526101186101078280610622565b60e088870152610120860190610689565b9161013d61012960248a0184610622565b93603f199485888303016060890152610689565b936044890135608087015261015460648a01610239565b1660a086015260848801359063ffffffff60e01b82168092036101c457506101a36101ba94869461019460209b9560c49560c089015260a4870190610636565b918784030160e0880152610668565b91013561010083015203601f198101835282610217565b5190209051908152f35b80fd5b5080fd5b903590603e19813603018212156101e0570190565b600080fd5b6040810190811067ffffffffffffffff82111761020157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761020157604052565b359067ffffffffffffffff821682036101e057565b67ffffffffffffffff81116102015760051b60200190565b35906001600160a01b03821682036101e057565b91906040838203126101e05760405192610293846101e5565b8361029d82610239565b8152602091828101359067ffffffffffffffff82116101e057019280601f850112156101e05783356102ce8161024e565b946102dc6040519687610217565b818652848087019260051b8201019283116101e05784809101915b83831061030657505050500152565b819061031184610266565b81520191019084906102f7565b90602080838303126101e057825167ffffffffffffffff938482116101e05701926040848403126101e05760405193610356856101e5565b805182811681036101e0578552828101519182116101e057019180601f840112156101e05782516103868161024e565b936103946040519586610217565b818552838086019260051b8201019283116101e0578301905b8282106103bd5750505082015290565b81516001600160a01b03811681036101e05781529083019083016103ad565b606090604083019067ffffffffffffffff815116845260209283809201519460408382015285518094520193019160005b82811061041b575050505090565b83516001600160a01b03168552938101939281019260010161040d565b909161044f61045d936040845260408401906103dc565b9160208184039101526103dc565b90565b91909160206104ac6104a461049461048d610486610480868801886101cb565b806101cb565b369061027a565b94806101cb565b61049f3691806101cb565b61027a565b94369061027a565b9373__$a0fe38a9a81205afccc10810b09a4d3f45$__604090815185631ccc893360e11b9889835282806104e760009a8b9460048401610438565b0381865af49182156106185790879899889261051799946105fc575b508551988992839283528860048401610438565b0381855af49586156105f25787966105c6575b508561054d928692855180958194829363c836244d60e01b845260048401610438565b03915af49182156105bd57508591610587575b5061056c575b50505090565b81015151910151511061058157388080610566565b50600190565b90508281813d83116105b6575b61059e8183610217565b810103126100b6575180151581036100b65738610560565b503d610594565b513d87823e3d90fd5b61054d929650906105e986923d808b833e6105e18183610217565b81019061031e565b9692509061052a565b83513d89823e3d90fd5b6106119194503d8085833e6105e18183610217565b9238610503565b84513d89823e3d90fd5b9035603e19823603018112156101e0570190565b9035601e19823603018112156101e057016020813591019167ffffffffffffffff82116101e05781360383136101e057565b908060209392818452848401376000828201840152601f01601f1916010190565b906106948280610622565b9060408152608081019267ffffffffffffffff93846106b285610239565b16604084015260209384810135601e19823603018112156101e057019084823592019582116101e0578160051b360386136101e0578190604060608601525260a08301949060005b81811061074c575050508083610711920190610622565b908281850391015280359060ff82168092036101e0578361073f60409392849361045d975285810190610636565b9390948201520191610668565b9091958580600192838060a01b036107638b610266565b1681520197019291016106fa56fea2646970667358221220450d6b7b4466859db1ffcf5cd26b4eff9ff668aee46e2871f69e4c7b300c47a664736f6c63430008130033","sourceMap":"372:867:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;372:867:68;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;372:867:68;-1:-1:-1;372:867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1206:23;;372:867;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1206:23;372:867;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;1206:23;;;;;;;;;:::i;:::-;372:867;1196:34;;372:867;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;1206:23;;;372:867;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;372:867:68;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;372:867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;372:867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;444:649::-;;;;596:10;372:867;;654:12;372:867;596:19;:10;;;;;;:::i;:::-;:19;;:::i;:::-;372:867;;;:::i;:::-;654:12;;;:::i;:::-;:21;372:867;654:21;;;:::i;:::-;372:867;:::i;:::-;;;;;:::i;:::-;723:26;;372:867;;;;;;;;723:36;;;;-1:-1:-1;;723:36:68;-1:-1:-1;723:36:68;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;807:33;723:36;;;;444:649;372:867;;;807:33;;;;;;;;723:36;807:33;;;:::i;:::-;;;;;;;;;;;;;;;444:649;372:867;;855:47;372:867;;;;;;;;;;;;;;855:47;;723:36;855:47;;;:::i;:::-;;;;;;;;;;;;;;;444:649;851:200;;;444:649;1061:25;;;444:649;:::o;851:200::-;922:16;;;372:867;948:25;;;372:867;-1:-1:-1;918:123:68;;851:200;;;;;918:123;1000:26;1007:19;1000:26;:::o;855:47::-;;;;;;;;;;;;;;;;:::i;:::-;;;372:867;;;;;;;;;;;;855:47;;;;;;;;;372:867;;;;;;;;807:33;855:47;807:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;372:867;;;;;;;;;723:36;;;;;;;;;;;;;;:::i;:::-;;;;;;372:867;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;372:867:68;;;;;;1206:23;372:867;-1:-1:-1;;372:867:68;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1199,"length":20}]}}},"methodIdentifiers":{"applyType(StorableMsg,SubnetID)":"f47ad7eb","toHash(StorableMsg)":"2f645753"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"currentSubnet\",\"type\":\"tuple\"}],\"name\":\"applyType\",\"outputs\":[{\"internalType\":\"enum IPCMsgType\",\"name\":\"\",\"type\":\"IPCMsgType\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"storableMsg\",\"type\":\"tuple\"}],\"name\":\"toHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for manipulating StorableMsg struct\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/StorableMsgHelper.sol\":\"StorableMsgHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"struct SubnetID","name":"currentSubnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"applyType","outputs":[{"internalType":"enum IPCMsgType","name":"","type":"IPCMsgType"}]},{"inputs":[{"internalType":"struct StorableMsg","name":"storableMsg","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"toHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/StorableMsgHelper.sol":"StorableMsgHelper"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/StorableMsgHelper.sol","id":46266,"exportedSymbols":{"IPCMsgType":[36923],"StorableMsg":[48469],"StorableMsgHelper":[46265],"SubnetID":[48557],"SubnetIDHelper":[46876]},"nodeType":"SourceUnit","src":"46:1194:68","nodes":[{"id":46171,"nodeType":"PragmaDirective","src":"46:23:68","nodes":[],"literals":["solidity","0.8",".19"]},{"id":46173,"nodeType":"ImportDirective","src":"71:47:68","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46266,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":46172,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"79:8:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46175,"nodeType":"ImportDirective","src":"119:52:68","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":46266,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":46174,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48469,"src":"127:11:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46177,"nodeType":"ImportDirective","src":"172:57:68","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":46266,"sourceUnit":46877,"symbolAliases":[{"foreign":{"id":46176,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46876,"src":"180:14:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46179,"nodeType":"ImportDirective","src":"230:51:68","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":46266,"sourceUnit":36924,"symbolAliases":[{"foreign":{"id":46178,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36923,"src":"238:10:68","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46265,"nodeType":"ContractDefinition","src":"372:867:68","nodes":[{"id":46184,"nodeType":"UsingForDirective","src":"404:34:68","nodes":[],"global":false,"libraryName":{"id":46181,"name":"SubnetIDHelper","nameLocations":["410:14:68"],"nodeType":"IdentifierPath","referencedDeclaration":46876,"src":"410:14:68"},"typeName":{"id":46183,"nodeType":"UserDefinedTypeName","pathNode":{"id":46182,"name":"SubnetID","nameLocations":["429:8:68"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"429:8:68"},"referencedDeclaration":48557,"src":"429:8:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}}},{"id":46248,"nodeType":"FunctionDefinition","src":"444:649:68","nodes":[],"body":{"id":46247,"nodeType":"Block","src":"559:534:68","nodes":[],"statements":[{"assignments":[46198],"declarations":[{"constant":false,"id":46198,"mutability":"mutable","name":"toSubnet","nameLocation":"585:8:68","nodeType":"VariableDeclaration","scope":46247,"src":"569:24:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":46197,"nodeType":"UserDefinedTypeName","pathNode":{"id":46196,"name":"SubnetID","nameLocations":["569:8:68"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"569:8:68"},"referencedDeclaration":48557,"src":"569:8:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":46202,"initialValue":{"expression":{"expression":{"id":46199,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46187,"src":"596:7:68","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":46200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"604:2:68","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":48458,"src":"596:10:68","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":46201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"607:8:68","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":48683,"src":"596:19:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"nodeType":"VariableDeclarationStatement","src":"569:46:68"},{"assignments":[46205],"declarations":[{"constant":false,"id":46205,"mutability":"mutable","name":"fromSubnet","nameLocation":"641:10:68","nodeType":"VariableDeclaration","scope":46247,"src":"625:26:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":46204,"nodeType":"UserDefinedTypeName","pathNode":{"id":46203,"name":"SubnetID","nameLocations":["625:8:68"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"625:8:68"},"referencedDeclaration":48557,"src":"625:8:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":46209,"initialValue":{"expression":{"expression":{"id":46206,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46187,"src":"654:7:68","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":46207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"662:4:68","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":48455,"src":"654:12:68","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$48687_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":46208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"667:8:68","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":48683,"src":"654:21:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"nodeType":"VariableDeclarationStatement","src":"625:50:68"},{"assignments":[46212],"declarations":[{"constant":false,"id":46212,"mutability":"mutable","name":"currentParentSubnet","nameLocation":"701:19:68","nodeType":"VariableDeclaration","scope":46247,"src":"685:35:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":46211,"nodeType":"UserDefinedTypeName","pathNode":{"id":46210,"name":"SubnetID","nameLocations":["685:8:68"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"685:8:68"},"referencedDeclaration":48557,"src":"685:8:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":46217,"initialValue":{"arguments":[{"id":46215,"name":"toSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46198,"src":"750:8:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":46213,"name":"currentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46190,"src":"723:13:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"737:12:68","memberName":"commonParent","nodeType":"MemberAccess","referencedDeclaration":46750,"src":"723:26:68","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":46216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"723:36:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"685:74:68"},{"assignments":[46220],"declarations":[{"constant":false,"id":46220,"mutability":"mutable","name":"messageParentSubnet","nameLocation":"785:19:68","nodeType":"VariableDeclaration","scope":46247,"src":"769:35:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":46219,"nodeType":"UserDefinedTypeName","pathNode":{"id":46218,"name":"SubnetID","nameLocations":["769:8:68"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"769:8:68"},"referencedDeclaration":48557,"src":"769:8:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":46225,"initialValue":{"arguments":[{"id":46223,"name":"toSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46198,"src":"831:8:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":46221,"name":"fromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46205,"src":"807:10:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":46222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"818:12:68","memberName":"commonParent","nodeType":"MemberAccess","referencedDeclaration":46750,"src":"807:23:68","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":46224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"807:33:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"769:71:68"},{"condition":{"arguments":[{"id":46228,"name":"messageParentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"882:19:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":46226,"name":"currentParentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46212,"src":"855:19:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":46227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"875:6:68","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":46629,"src":"855:26:68","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":46229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"855:47:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46243,"nodeType":"IfStatement","src":"851:200:68","trueBody":{"id":46242,"nodeType":"Block","src":"904:147:68","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46230,"name":"fromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46205,"src":"922:10:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":46231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"933:5:68","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"922:16:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"939:6:68","memberName":"length","nodeType":"MemberAccess","src":"922:23:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"expression":{"id":46233,"name":"messageParentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46220,"src":"948:19:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":46234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"968:5:68","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"948:25:68","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"974:6:68","memberName":"length","nodeType":"MemberAccess","src":"948:32:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"922:58:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46241,"nodeType":"IfStatement","src":"918:123:68","trueBody":{"id":46240,"nodeType":"Block","src":"982:59:68","statements":[{"expression":{"expression":{"id":46237,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36923,"src":"1007:10:68","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$36923_$","typeString":"type(enum IPCMsgType)"}},"id":46238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1018:8:68","memberName":"BottomUp","nodeType":"MemberAccess","referencedDeclaration":36922,"src":"1007:19:68","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"}},"functionReturnParameters":46195,"id":46239,"nodeType":"Return","src":"1000:26:68"}]}}]}},{"expression":{"expression":{"id":46244,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36923,"src":"1068:10:68","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$36923_$","typeString":"type(enum IPCMsgType)"}},"id":46245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1079:7:68","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":36921,"src":"1068:18:68","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"}},"functionReturnParameters":46195,"id":46246,"nodeType":"Return","src":"1061:25:68"}]},"functionSelector":"f47ad7eb","implemented":true,"kind":"function","modifiers":[],"name":"applyType","nameLocation":"453:9:68","parameters":{"id":46191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46187,"mutability":"mutable","name":"message","nameLocation":"484:7:68","nodeType":"VariableDeclaration","scope":46248,"src":"463:28:68","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg"},"typeName":{"id":46186,"nodeType":"UserDefinedTypeName","pathNode":{"id":46185,"name":"StorableMsg","nameLocations":["463:11:68"],"nodeType":"IdentifierPath","referencedDeclaration":48469,"src":"463:11:68"},"referencedDeclaration":48469,"src":"463:11:68","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"},{"constant":false,"id":46190,"mutability":"mutable","name":"currentSubnet","nameLocation":"511:13:68","nodeType":"VariableDeclaration","scope":46248,"src":"493:31:68","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":46189,"nodeType":"UserDefinedTypeName","pathNode":{"id":46188,"name":"SubnetID","nameLocations":["493:8:68"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"493:8:68"},"referencedDeclaration":48557,"src":"493:8:68","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"462:63:68"},"returnParameters":{"id":46195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46194,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46248,"src":"547:10:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"},"typeName":{"id":46193,"nodeType":"UserDefinedTypeName","pathNode":{"id":46192,"name":"IPCMsgType","nameLocations":["547:10:68"],"nodeType":"IdentifierPath","referencedDeclaration":36923,"src":"547:10:68"},"referencedDeclaration":36923,"src":"547:10:68","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$36923","typeString":"enum IPCMsgType"}},"visibility":"internal"}],"src":"546:12:68"},"scope":46265,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":46264,"nodeType":"FunctionDefinition","src":"1099:138:68","nodes":[],"body":{"id":46263,"nodeType":"Block","src":"1179:58:68","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":46259,"name":"storableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46251,"src":"1217:11:68","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg calldata"}],"expression":{"id":46257,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1206:3:68","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1210:6:68","memberName":"encode","nodeType":"MemberAccess","src":"1206:10:68","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1206:23:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46256,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1196:9:68","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":46261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1196:34:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":46255,"id":46262,"nodeType":"Return","src":"1189:41:68"}]},"functionSelector":"2f645753","implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"1108:6:68","parameters":{"id":46252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46251,"mutability":"mutable","name":"storableMsg","nameLocation":"1136:11:68","nodeType":"VariableDeclaration","scope":46264,"src":"1115:32:68","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_calldata_ptr","typeString":"struct StorableMsg"},"typeName":{"id":46250,"nodeType":"UserDefinedTypeName","pathNode":{"id":46249,"name":"StorableMsg","nameLocations":["1115:11:68"],"nodeType":"IdentifierPath","referencedDeclaration":48469,"src":"1115:11:68"},"referencedDeclaration":48469,"src":"1115:11:68","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$48469_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"}],"src":"1114:34:68"},"returnParameters":{"id":46255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46254,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46264,"src":"1170:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46253,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1170:7:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1169:9:68"},"scope":46265,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"StorableMsgHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":46180,"nodeType":"StructuredDocumentation","src":"283:89:68","text":"@title Helper library for manipulating StorableMsg struct\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[46265],"name":"StorableMsgHelper","nameLocation":"380:17:68","scope":46266,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":68} \ No newline at end of file +{"abi":[{"type":"function","name":"applyType","inputs":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"currentSubnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"IPCMsgType","internalType":"enum IPCMsgType"}],"stateMutability":"pure"},{"type":"function","name":"toHash","inputs":[{"name":"storableMsg","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080806040523461001a576107a79081610020823930815050f35b600080fdfe60806040908082526004918236101561001757600080fd5b600091823560e01c9081632f645753146100be575063f47ad7eb1461003b57600080fd5b60031981813601126100ba5783359067ffffffffffffffff908183116100b65760e08184360301126100b6576024359182116100b657839082360301126100b2579061008b918501908501610460565b905191600282101561009f57602083838152f35b634e487b7160e01b815260218452602490fd5b8380fd5b8480fd5b8280fd5b6003199150846020368401126100b65780359467ffffffffffffffff918287116101c7578660e091019487360301126101c4576020830193602085526101186101078280610622565b60e088870152610120860190610689565b9161013d61012960248a0184610622565b93603f199485888303016060890152610689565b936044890135608087015261015460648a01610239565b1660a086015260848801359063ffffffff60e01b82168092036101c457506101a36101ba94869461019460209b9560c49560c089015260a4870190610636565b918784030160e0880152610668565b91013561010083015203601f198101835282610217565b5190209051908152f35b80fd5b5080fd5b903590603e19813603018212156101e0570190565b600080fd5b6040810190811067ffffffffffffffff82111761020157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761020157604052565b359067ffffffffffffffff821682036101e057565b67ffffffffffffffff81116102015760051b60200190565b35906001600160a01b03821682036101e057565b91906040838203126101e05760405192610293846101e5565b8361029d82610239565b8152602091828101359067ffffffffffffffff82116101e057019280601f850112156101e05783356102ce8161024e565b946102dc6040519687610217565b818652848087019260051b8201019283116101e05784809101915b83831061030657505050500152565b819061031184610266565b81520191019084906102f7565b90602080838303126101e057825167ffffffffffffffff938482116101e05701926040848403126101e05760405193610356856101e5565b805182811681036101e0578552828101519182116101e057019180601f840112156101e05782516103868161024e565b936103946040519586610217565b818552838086019260051b8201019283116101e0578301905b8282106103bd5750505082015290565b81516001600160a01b03811681036101e05781529083019083016103ad565b606090604083019067ffffffffffffffff815116845260209283809201519460408382015285518094520193019160005b82811061041b575050505090565b83516001600160a01b03168552938101939281019260010161040d565b909161044f61045d936040845260408401906103dc565b9160208184039101526103dc565b90565b91909160206104ac6104a461049461048d610486610480868801886101cb565b806101cb565b369061027a565b94806101cb565b61049f3691806101cb565b61027a565b94369061027a565b9373__$a0fe38a9a81205afccc10810b09a4d3f45$__604090815185631ccc893360e11b9889835282806104e760009a8b9460048401610438565b0381865af49182156106185790879899889261051799946105fc575b508551988992839283528860048401610438565b0381855af49586156105f25787966105c6575b508561054d928692855180958194829363c836244d60e01b845260048401610438565b03915af49182156105bd57508591610587575b5061056c575b50505090565b81015151910151511061058157388080610566565b50600190565b90508281813d83116105b6575b61059e8183610217565b810103126100b6575180151581036100b65738610560565b503d610594565b513d87823e3d90fd5b61054d929650906105e986923d808b833e6105e18183610217565b81019061031e565b9692509061052a565b83513d89823e3d90fd5b6106119194503d8085833e6105e18183610217565b9238610503565b84513d89823e3d90fd5b9035603e19823603018112156101e0570190565b9035601e19823603018112156101e057016020813591019167ffffffffffffffff82116101e05781360383136101e057565b908060209392818452848401376000828201840152601f01601f1916010190565b906106948280610622565b9060408152608081019267ffffffffffffffff93846106b285610239565b16604084015260209384810135601e19823603018112156101e057019084823592019582116101e0578160051b360386136101e0578190604060608601525260a08301949060005b81811061074c575050508083610711920190610622565b908281850391015280359060ff82168092036101e0578361073f60409392849361045d975285810190610636565b9390948201520191610668565b9091958580600192838060a01b036107638b610266565b1681520197019291016106fa56fea2646970667358221220a65faec36bfe37cd05bcaf0e3ff1ef3c649765c59832b3ca50e02f0ce0364c9864736f6c63430008130033","sourceMap":"372:867:74:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1231,"length":20}]}}},"deployedBytecode":{"object":"0x60806040908082526004918236101561001757600080fd5b600091823560e01c9081632f645753146100be575063f47ad7eb1461003b57600080fd5b60031981813601126100ba5783359067ffffffffffffffff908183116100b65760e08184360301126100b6576024359182116100b657839082360301126100b2579061008b918501908501610460565b905191600282101561009f57602083838152f35b634e487b7160e01b815260218452602490fd5b8380fd5b8480fd5b8280fd5b6003199150846020368401126100b65780359467ffffffffffffffff918287116101c7578660e091019487360301126101c4576020830193602085526101186101078280610622565b60e088870152610120860190610689565b9161013d61012960248a0184610622565b93603f199485888303016060890152610689565b936044890135608087015261015460648a01610239565b1660a086015260848801359063ffffffff60e01b82168092036101c457506101a36101ba94869461019460209b9560c49560c089015260a4870190610636565b918784030160e0880152610668565b91013561010083015203601f198101835282610217565b5190209051908152f35b80fd5b5080fd5b903590603e19813603018212156101e0570190565b600080fd5b6040810190811067ffffffffffffffff82111761020157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761020157604052565b359067ffffffffffffffff821682036101e057565b67ffffffffffffffff81116102015760051b60200190565b35906001600160a01b03821682036101e057565b91906040838203126101e05760405192610293846101e5565b8361029d82610239565b8152602091828101359067ffffffffffffffff82116101e057019280601f850112156101e05783356102ce8161024e565b946102dc6040519687610217565b818652848087019260051b8201019283116101e05784809101915b83831061030657505050500152565b819061031184610266565b81520191019084906102f7565b90602080838303126101e057825167ffffffffffffffff938482116101e05701926040848403126101e05760405193610356856101e5565b805182811681036101e0578552828101519182116101e057019180601f840112156101e05782516103868161024e565b936103946040519586610217565b818552838086019260051b8201019283116101e0578301905b8282106103bd5750505082015290565b81516001600160a01b03811681036101e05781529083019083016103ad565b606090604083019067ffffffffffffffff815116845260209283809201519460408382015285518094520193019160005b82811061041b575050505090565b83516001600160a01b03168552938101939281019260010161040d565b909161044f61045d936040845260408401906103dc565b9160208184039101526103dc565b90565b91909160206104ac6104a461049461048d610486610480868801886101cb565b806101cb565b369061027a565b94806101cb565b61049f3691806101cb565b61027a565b94369061027a565b9373__$a0fe38a9a81205afccc10810b09a4d3f45$__604090815185631ccc893360e11b9889835282806104e760009a8b9460048401610438565b0381865af49182156106185790879899889261051799946105fc575b508551988992839283528860048401610438565b0381855af49586156105f25787966105c6575b508561054d928692855180958194829363c836244d60e01b845260048401610438565b03915af49182156105bd57508591610587575b5061056c575b50505090565b81015151910151511061058157388080610566565b50600190565b90508281813d83116105b6575b61059e8183610217565b810103126100b6575180151581036100b65738610560565b503d610594565b513d87823e3d90fd5b61054d929650906105e986923d808b833e6105e18183610217565b81019061031e565b9692509061052a565b83513d89823e3d90fd5b6106119194503d8085833e6105e18183610217565b9238610503565b84513d89823e3d90fd5b9035603e19823603018112156101e0570190565b9035601e19823603018112156101e057016020813591019167ffffffffffffffff82116101e05781360383136101e057565b908060209392818452848401376000828201840152601f01601f1916010190565b906106948280610622565b9060408152608081019267ffffffffffffffff93846106b285610239565b16604084015260209384810135601e19823603018112156101e057019084823592019582116101e0578160051b360386136101e0578190604060608601525260a08301949060005b81811061074c575050508083610711920190610622565b908281850391015280359060ff82168092036101e0578361073f60409392849361045d975285810190610636565b9390948201520191610668565b9091958580600192838060a01b036107638b610266565b1681520197019291016106fa56fea2646970667358221220a65faec36bfe37cd05bcaf0e3ff1ef3c649765c59832b3ca50e02f0ce0364c9864736f6c63430008130033","sourceMap":"372:867:74:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;372:867:74;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;372:867:74;-1:-1:-1;372:867:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1206:23;;372:867;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1206:23;372:867;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;1206:23;;;;;;;;;:::i;:::-;372:867;1196:34;;372:867;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;1206:23;;;372:867;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;372:867:74;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;372:867:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;372:867:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;444:649::-;;;;596:10;372:867;;654:12;372:867;596:19;:10;;;;;;:::i;:::-;:19;;:::i;:::-;372:867;;;:::i;:::-;654:12;;;:::i;:::-;:21;372:867;654:21;;;:::i;:::-;372:867;:::i;:::-;;;;;:::i;:::-;723:26;;372:867;;;;;;;;723:36;;;;-1:-1:-1;;723:36:74;-1:-1:-1;723:36:74;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;807:33;723:36;;;;444:649;372:867;;;807:33;;;;;;;;723:36;807:33;;;:::i;:::-;;;;;;;;;;;;;;;444:649;372:867;;855:47;372:867;;;;;;;;;;;;;;855:47;;723:36;855:47;;;:::i;:::-;;;;;;;;;;;;;;;444:649;851:200;;;444:649;1061:25;;;444:649;:::o;851:200::-;922:16;;;372:867;948:25;;;372:867;-1:-1:-1;918:123:74;;851:200;;;;;918:123;1000:26;1007:19;1000:26;:::o;855:47::-;;;;;;;;;;;;;;;;:::i;:::-;;;372:867;;;;;;;;;;;;855:47;;;;;;;;;372:867;;;;;;;;807:33;855:47;807:33;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;372:867;;;;;;;;;723:36;;;;;;;;;;;;;;:::i;:::-;;;;;;372:867;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;372:867:74;;;;;;1206:23;372:867;-1:-1:-1;;372:867:74;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1199,"length":20}]}}},"methodIdentifiers":{"applyType(StorableMsg,SubnetID)":"f47ad7eb","toHash(StorableMsg)":"2f645753"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"currentSubnet\",\"type\":\"tuple\"}],\"name\":\"applyType\",\"outputs\":[{\"internalType\":\"enum IPCMsgType\",\"name\":\"\",\"type\":\"IPCMsgType\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"storableMsg\",\"type\":\"tuple\"}],\"name\":\"toHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Helper library for manipulating StorableMsg struct\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/StorableMsgHelper.sol\":\"StorableMsgHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"struct SubnetID","name":"currentSubnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"applyType","outputs":[{"internalType":"enum IPCMsgType","name":"","type":"IPCMsgType"}]},{"inputs":[{"internalType":"struct StorableMsg","name":"storableMsg","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"toHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/StorableMsgHelper.sol":"StorableMsgHelper"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/StorableMsgHelper.sol","id":47462,"exportedSymbols":{"IPCMsgType":[37364],"StorableMsg":[49991],"StorableMsgHelper":[47461],"SubnetID":[50077],"SubnetIDHelper":[48072]},"nodeType":"SourceUnit","src":"46:1194:74","nodes":[{"id":47367,"nodeType":"PragmaDirective","src":"46:23:74","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47369,"nodeType":"ImportDirective","src":"71:47:74","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":47462,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":47368,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"79:8:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47371,"nodeType":"ImportDirective","src":"119:52:74","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":47462,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":47370,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"127:11:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47373,"nodeType":"ImportDirective","src":"172:57:74","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":47462,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":47372,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"180:14:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47375,"nodeType":"ImportDirective","src":"230:51:74","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":47462,"sourceUnit":37365,"symbolAliases":[{"foreign":{"id":47374,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"238:10:74","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47461,"nodeType":"ContractDefinition","src":"372:867:74","nodes":[{"id":47380,"nodeType":"UsingForDirective","src":"404:34:74","nodes":[],"global":false,"libraryName":{"id":47377,"name":"SubnetIDHelper","nameLocations":["410:14:74"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"410:14:74"},"typeName":{"id":47379,"nodeType":"UserDefinedTypeName","pathNode":{"id":47378,"name":"SubnetID","nameLocations":["429:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"429:8:74"},"referencedDeclaration":50077,"src":"429:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":47444,"nodeType":"FunctionDefinition","src":"444:649:74","nodes":[],"body":{"id":47443,"nodeType":"Block","src":"559:534:74","nodes":[],"statements":[{"assignments":[47394],"declarations":[{"constant":false,"id":47394,"mutability":"mutable","name":"toSubnet","nameLocation":"585:8:74","nodeType":"VariableDeclaration","scope":47443,"src":"569:24:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47393,"nodeType":"UserDefinedTypeName","pathNode":{"id":47392,"name":"SubnetID","nameLocations":["569:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"569:8:74"},"referencedDeclaration":50077,"src":"569:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":47398,"initialValue":{"expression":{"expression":{"id":47395,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47383,"src":"596:7:74","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":47396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"604:2:74","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":49980,"src":"596:10:74","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":47397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"607:8:74","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"596:19:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"nodeType":"VariableDeclarationStatement","src":"569:46:74"},{"assignments":[47401],"declarations":[{"constant":false,"id":47401,"mutability":"mutable","name":"fromSubnet","nameLocation":"641:10:74","nodeType":"VariableDeclaration","scope":47443,"src":"625:26:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47400,"nodeType":"UserDefinedTypeName","pathNode":{"id":47399,"name":"SubnetID","nameLocations":["625:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"625:8:74"},"referencedDeclaration":50077,"src":"625:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":47405,"initialValue":{"expression":{"expression":{"id":47402,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47383,"src":"654:7:74","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}},"id":47403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"662:4:74","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":49977,"src":"654:12:74","typeDescriptions":{"typeIdentifier":"t_struct$_IPCAddress_$50204_calldata_ptr","typeString":"struct IPCAddress calldata"}},"id":47404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"667:8:74","memberName":"subnetId","nodeType":"MemberAccess","referencedDeclaration":50200,"src":"654:21:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"nodeType":"VariableDeclarationStatement","src":"625:50:74"},{"assignments":[47408],"declarations":[{"constant":false,"id":47408,"mutability":"mutable","name":"currentParentSubnet","nameLocation":"701:19:74","nodeType":"VariableDeclaration","scope":47443,"src":"685:35:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47407,"nodeType":"UserDefinedTypeName","pathNode":{"id":47406,"name":"SubnetID","nameLocations":["685:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"685:8:74"},"referencedDeclaration":50077,"src":"685:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":47413,"initialValue":{"arguments":[{"id":47411,"name":"toSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47394,"src":"750:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":47409,"name":"currentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47386,"src":"723:13:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"737:12:74","memberName":"commonParent","nodeType":"MemberAccess","referencedDeclaration":47946,"src":"723:26:74","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":47412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"723:36:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"685:74:74"},{"assignments":[47416],"declarations":[{"constant":false,"id":47416,"mutability":"mutable","name":"messageParentSubnet","nameLocation":"785:19:74","nodeType":"VariableDeclaration","scope":47443,"src":"769:35:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47415,"nodeType":"UserDefinedTypeName","pathNode":{"id":47414,"name":"SubnetID","nameLocations":["769:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"769:8:74"},"referencedDeclaration":50077,"src":"769:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"id":47421,"initialValue":{"arguments":[{"id":47419,"name":"toSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47394,"src":"831:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":47417,"name":"fromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47401,"src":"807:10:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"818:12:74","memberName":"commonParent","nodeType":"MemberAccess","referencedDeclaration":47946,"src":"807:23:74","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":47420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"807:33:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"nodeType":"VariableDeclarationStatement","src":"769:71:74"},{"condition":{"arguments":[{"id":47424,"name":"messageParentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47416,"src":"882:19:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}],"expression":{"id":47422,"name":"currentParentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47408,"src":"855:19:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"875:6:74","memberName":"equals","nodeType":"MemberAccess","referencedDeclaration":47825,"src":"855:26:74","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,struct SubnetID memory) pure returns (bool)"}},"id":47425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"855:47:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47439,"nodeType":"IfStatement","src":"851:200:74","trueBody":{"id":47438,"nodeType":"Block","src":"904:147:74","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47426,"name":"fromSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47401,"src":"922:10:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"933:5:74","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"922:16:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"939:6:74","memberName":"length","nodeType":"MemberAccess","src":"922:23:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"expression":{"id":47429,"name":"messageParentSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47416,"src":"948:19:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"968:5:74","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"948:25:74","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"974:6:74","memberName":"length","nodeType":"MemberAccess","src":"948:32:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"922:58:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47437,"nodeType":"IfStatement","src":"918:123:74","trueBody":{"id":47436,"nodeType":"Block","src":"982:59:74","statements":[{"expression":{"expression":{"id":47433,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"1007:10:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":47434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1018:8:74","memberName":"BottomUp","nodeType":"MemberAccess","referencedDeclaration":37363,"src":"1007:19:74","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"functionReturnParameters":47391,"id":47435,"nodeType":"Return","src":"1000:26:74"}]}}]}},{"expression":{"expression":{"id":47440,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"1068:10:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_IPCMsgType_$37364_$","typeString":"type(enum IPCMsgType)"}},"id":47441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1079:7:74","memberName":"TopDown","nodeType":"MemberAccess","referencedDeclaration":37362,"src":"1068:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"functionReturnParameters":47391,"id":47442,"nodeType":"Return","src":"1061:25:74"}]},"functionSelector":"f47ad7eb","implemented":true,"kind":"function","modifiers":[],"name":"applyType","nameLocation":"453:9:74","parameters":{"id":47387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47383,"mutability":"mutable","name":"message","nameLocation":"484:7:74","nodeType":"VariableDeclaration","scope":47444,"src":"463:28:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg"},"typeName":{"id":47382,"nodeType":"UserDefinedTypeName","pathNode":{"id":47381,"name":"StorableMsg","nameLocations":["463:11:74"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"463:11:74"},"referencedDeclaration":49991,"src":"463:11:74","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"},{"constant":false,"id":47386,"mutability":"mutable","name":"currentSubnet","nameLocation":"511:13:74","nodeType":"VariableDeclaration","scope":47444,"src":"493:31:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47385,"nodeType":"UserDefinedTypeName","pathNode":{"id":47384,"name":"SubnetID","nameLocations":["493:8:74"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"493:8:74"},"referencedDeclaration":50077,"src":"493:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"462:63:74"},"returnParameters":{"id":47391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47444,"src":"547:10:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"},"typeName":{"id":47389,"nodeType":"UserDefinedTypeName","pathNode":{"id":47388,"name":"IPCMsgType","nameLocations":["547:10:74"],"nodeType":"IdentifierPath","referencedDeclaration":37364,"src":"547:10:74"},"referencedDeclaration":37364,"src":"547:10:74","typeDescriptions":{"typeIdentifier":"t_enum$_IPCMsgType_$37364","typeString":"enum IPCMsgType"}},"visibility":"internal"}],"src":"546:12:74"},"scope":47461,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47460,"nodeType":"FunctionDefinition","src":"1099:138:74","nodes":[],"body":{"id":47459,"nodeType":"Block","src":"1179:58:74","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":47455,"name":"storableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47447,"src":"1217:11:74","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg calldata"}],"expression":{"id":47453,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1206:3:74","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1210:6:74","memberName":"encode","nodeType":"MemberAccess","src":"1206:10:74","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1206:23:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47452,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1196:9:74","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1196:34:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47451,"id":47458,"nodeType":"Return","src":"1189:41:74"}]},"functionSelector":"2f645753","implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"1108:6:74","parameters":{"id":47448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47447,"mutability":"mutable","name":"storableMsg","nameLocation":"1136:11:74","nodeType":"VariableDeclaration","scope":47460,"src":"1115:32:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_calldata_ptr","typeString":"struct StorableMsg"},"typeName":{"id":47446,"nodeType":"UserDefinedTypeName","pathNode":{"id":47445,"name":"StorableMsg","nameLocations":["1115:11:74"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"1115:11:74"},"referencedDeclaration":49991,"src":"1115:11:74","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}},"visibility":"internal"}],"src":"1114:34:74"},"returnParameters":{"id":47451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47460,"src":"1170:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47449,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1170:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1169:9:74"},"scope":47461,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"StorableMsgHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":47376,"nodeType":"StructuredDocumentation","src":"283:89:74","text":"@title Helper library for manipulating StorableMsg struct\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[47461],"name":"StorableMsgHelper","nameLocation":"380:17:74","scope":47462,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":74} \ No newline at end of file diff --git a/.out/Strings.sol/Strings.json b/.out/Strings.sol/Strings.json index d4e92517b..0a284e20a 100644 --- a/.out/Strings.sol/Strings.json +++ b/.out/Strings.sol/Strings.json @@ -1 +1 @@ -{"abi":[{"type":"error","name":"StringsInsufficientHexLength","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122002e805cbbf827efffeb58896a02d0c1e76370ade9a96f8fdf8bdf7518823407664736f6c63430008130033","sourceMap":"221:2836:28:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122002e805cbbf827efffeb58896a02d0c1e76370ade9a96f8fdf8bdf7518823407664736f6c63430008130033","sourceMap":"221:2836:28:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":"Strings"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","id":32685,"exportedSymbols":{"Math":[34668],"SignedMath":[34773],"Strings":[32684]},"nodeType":"SourceUnit","src":"101:2957:28","nodes":[{"id":32433,"nodeType":"PragmaDirective","src":"101:24:28","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":32434,"nodeType":"ImportDirective","src":"127:25:28","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","file":"./math/Math.sol","nameLocation":"-1:-1:-1","scope":32685,"sourceUnit":34669,"symbolAliases":[],"unitAlias":""},{"id":32435,"nodeType":"ImportDirective","src":"153:31:28","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","nameLocation":"-1:-1:-1","scope":32685,"sourceUnit":34774,"symbolAliases":[],"unitAlias":""},{"id":32684,"nodeType":"ContractDefinition","src":"221:2836:28","nodes":[{"id":32439,"nodeType":"VariableDeclaration","src":"243:54:28","nodes":[],"constant":true,"mutability":"constant","name":"_SYMBOLS","nameLocation":"268:8:28","scope":32684,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":32437,"name":"bytes16","nodeType":"ElementaryTypeName","src":"243:7:28","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":32438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"279:18:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"id":32442,"nodeType":"VariableDeclaration","src":"303:43:28","nodes":[],"constant":true,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"326:15:28","scope":32684,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":32440,"name":"uint8","nodeType":"ElementaryTypeName","src":"303:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":32441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"344:2:28","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"id":32449,"nodeType":"ErrorDefinition","src":"439:66:28","nodes":[],"documentation":{"id":32443,"nodeType":"StructuredDocumentation","src":"353:81:28","text":" @dev The `value` string doesn't fit in the specified `length`."},"errorSelector":"e22e27eb","name":"StringsInsufficientHexLength","nameLocation":"445:28:28","parameters":{"id":32448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32445,"mutability":"mutable","name":"value","nameLocation":"482:5:28","nodeType":"VariableDeclaration","scope":32449,"src":"474:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32444,"name":"uint256","nodeType":"ElementaryTypeName","src":"474:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32447,"mutability":"mutable","name":"length","nameLocation":"497:6:28","nodeType":"VariableDeclaration","scope":32449,"src":"489:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32446,"name":"uint256","nodeType":"ElementaryTypeName","src":"489:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"473:31:28"}},{"id":32497,"nodeType":"FunctionDefinition","src":"606:696:28","nodes":[],"body":{"id":32496,"nodeType":"Block","src":"677:625:28","nodes":[],"statements":[{"id":32495,"nodeType":"UncheckedBlock","src":"687:609:28","statements":[{"assignments":[32458],"declarations":[{"constant":false,"id":32458,"mutability":"mutable","name":"length","nameLocation":"719:6:28","nodeType":"VariableDeclaration","scope":32495,"src":"711:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32457,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32465,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":32461,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32452,"src":"739:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32459,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34668,"src":"728:4:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$34668_$","typeString":"type(library Math)"}},"id":32460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"733:5:28","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":34505,"src":"728:10:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":32462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"728:17:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":32463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"748:1:28","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"728:21:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"711:38:28"},{"assignments":[32467],"declarations":[{"constant":false,"id":32467,"mutability":"mutable","name":"buffer","nameLocation":"777:6:28","nodeType":"VariableDeclaration","scope":32495,"src":"763:20:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32466,"name":"string","nodeType":"ElementaryTypeName","src":"763:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":32472,"initialValue":{"arguments":[{"id":32470,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32458,"src":"797:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"786:10:28","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":32468,"name":"string","nodeType":"ElementaryTypeName","src":"790:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":32471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"786:18:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"763:41:28"},{"assignments":[32474],"declarations":[{"constant":false,"id":32474,"mutability":"mutable","name":"ptr","nameLocation":"826:3:28","nodeType":"VariableDeclaration","scope":32495,"src":"818:11:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32473,"name":"uint256","nodeType":"ElementaryTypeName","src":"818:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32475,"nodeType":"VariableDeclarationStatement","src":"818:11:28"},{"AST":{"nodeType":"YulBlock","src":"899:67:28","statements":[{"nodeType":"YulAssignment","src":"917:35:28","value":{"arguments":[{"name":"buffer","nodeType":"YulIdentifier","src":"928:6:28"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"940:2:28","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"944:6:28"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"936:3:28"},"nodeType":"YulFunctionCall","src":"936:15:28"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"924:3:28"},"nodeType":"YulFunctionCall","src":"924:28:28"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"917:3:28"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":32467,"isOffset":false,"isSlot":false,"src":"928:6:28","valueSize":1},{"declaration":32458,"isOffset":false,"isSlot":false,"src":"944:6:28","valueSize":1},{"declaration":32474,"isOffset":false,"isSlot":false,"src":"917:3:28","valueSize":1}],"id":32476,"nodeType":"InlineAssembly","src":"890:76:28"},{"body":{"id":32491,"nodeType":"Block","src":"992:267:28","statements":[{"expression":{"id":32479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"1010:5:28","subExpression":{"id":32478,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32474,"src":"1010:3:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32480,"nodeType":"ExpressionStatement","src":"1010:5:28"},{"AST":{"nodeType":"YulBlock","src":"1093:84:28","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1123:3:28"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1137:5:28"},{"kind":"number","nodeType":"YulLiteral","src":"1144:2:28","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"1133:3:28"},"nodeType":"YulFunctionCall","src":"1133:14:28"},{"name":"_SYMBOLS","nodeType":"YulIdentifier","src":"1149:8:28"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"1128:4:28"},"nodeType":"YulFunctionCall","src":"1128:30:28"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"1115:7:28"},"nodeType":"YulFunctionCall","src":"1115:44:28"},"nodeType":"YulExpressionStatement","src":"1115:44:28"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":32439,"isOffset":false,"isSlot":false,"src":"1149:8:28","valueSize":1},{"declaration":32474,"isOffset":false,"isSlot":false,"src":"1123:3:28","valueSize":1},{"declaration":32452,"isOffset":false,"isSlot":false,"src":"1137:5:28","valueSize":1}],"id":32481,"nodeType":"InlineAssembly","src":"1084:93:28"},{"expression":{"id":32484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32482,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32452,"src":"1194:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":32483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1203:2:28","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1194:11:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32485,"nodeType":"ExpressionStatement","src":"1194:11:28"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32486,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32452,"src":"1227:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":32487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1236:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1227:10:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32490,"nodeType":"IfStatement","src":"1223:21:28","trueBody":{"id":32489,"nodeType":"Break","src":"1239:5:28"}}]},"condition":{"hexValue":"74727565","id":32477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"986:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":32492,"nodeType":"WhileStatement","src":"979:280:28"},{"expression":{"id":32493,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32467,"src":"1279:6:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":32456,"id":32494,"nodeType":"Return","src":"1272:13:28"}]}]},"documentation":{"id":32450,"nodeType":"StructuredDocumentation","src":"511:90:28","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"615:8:28","parameters":{"id":32453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32452,"mutability":"mutable","name":"value","nameLocation":"632:5:28","nodeType":"VariableDeclaration","scope":32497,"src":"624:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32451,"name":"uint256","nodeType":"ElementaryTypeName","src":"624:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"623:15:28"},"returnParameters":{"id":32456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32497,"src":"662:13:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32454,"name":"string","nodeType":"ElementaryTypeName","src":"662:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"661:15:28"},"scope":32684,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32523,"nodeType":"FunctionDefinition","src":"1402:168:28","nodes":[],"body":{"id":32522,"nodeType":"Block","src":"1478:92:28","nodes":[],"statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32508,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32500,"src":"1509:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":32509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1517:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1509:9:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":32512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1527:2:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":32513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1509:20:28","trueExpression":{"hexValue":"2d","id":32511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1521:3:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":32517,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32500,"src":"1555:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32515,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34773,"src":"1540:10:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$34773_$","typeString":"type(library SignedMath)"}},"id":32516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1551:3:28","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":34772,"src":"1540:14:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":32518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1540:21:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32514,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32497,"src":"1531:8:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":32519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:31:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":32506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1495:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":32505,"name":"string","nodeType":"ElementaryTypeName","src":"1495:6:28","typeDescriptions":{}}},"id":32507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1502:6:28","memberName":"concat","nodeType":"MemberAccess","src":"1495:13:28","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":32520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1495:68:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":32504,"id":32521,"nodeType":"Return","src":"1488:75:28"}]},"documentation":{"id":32498,"nodeType":"StructuredDocumentation","src":"1308:89:28","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toStringSigned","nameLocation":"1411:14:28","parameters":{"id":32501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32500,"mutability":"mutable","name":"value","nameLocation":"1433:5:28","nodeType":"VariableDeclaration","scope":32523,"src":"1426:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32499,"name":"int256","nodeType":"ElementaryTypeName","src":"1426:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1425:14:28"},"returnParameters":{"id":32504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32503,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32523,"src":"1463:13:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32502,"name":"string","nodeType":"ElementaryTypeName","src":"1463:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1462:15:28"},"scope":32684,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32543,"nodeType":"FunctionDefinition","src":"1675:174:28","nodes":[],"body":{"id":32542,"nodeType":"Block","src":"1749:100:28","nodes":[],"statements":[{"id":32541,"nodeType":"UncheckedBlock","src":"1759:84:28","statements":[{"expression":{"arguments":[{"id":32532,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32526,"src":"1802:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":32535,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32526,"src":"1821:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32533,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34668,"src":"1809:4:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$34668_$","typeString":"type(library Math)"}},"id":32534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1814:6:28","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":34628,"src":"1809:11:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":32536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1809:18:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":32537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1830:1:28","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1809:22:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32531,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[32543,32626,32646],"referencedDeclaration":32626,"src":"1790:11:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":32539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1790:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":32530,"id":32540,"nodeType":"Return","src":"1783:49:28"}]}]},"documentation":{"id":32524,"nodeType":"StructuredDocumentation","src":"1576:94:28","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1684:11:28","parameters":{"id":32527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32526,"mutability":"mutable","name":"value","nameLocation":"1704:5:28","nodeType":"VariableDeclaration","scope":32543,"src":"1696:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32525,"name":"uint256","nodeType":"ElementaryTypeName","src":"1696:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1695:15:28"},"returnParameters":{"id":32530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32543,"src":"1734:13:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32528,"name":"string","nodeType":"ElementaryTypeName","src":"1734:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1733:15:28"},"scope":32684,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32626,"nodeType":"FunctionDefinition","src":"1972:523:28","nodes":[],"body":{"id":32625,"nodeType":"Block","src":"2062:433:28","nodes":[],"statements":[{"assignments":[32554],"declarations":[{"constant":false,"id":32554,"mutability":"mutable","name":"localValue","nameLocation":"2080:10:28","nodeType":"VariableDeclaration","scope":32625,"src":"2072:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32553,"name":"uint256","nodeType":"ElementaryTypeName","src":"2072:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32556,"initialValue":{"id":32555,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32546,"src":"2093:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2072:26:28"},{"assignments":[32558],"declarations":[{"constant":false,"id":32558,"mutability":"mutable","name":"buffer","nameLocation":"2121:6:28","nodeType":"VariableDeclaration","scope":32625,"src":"2108:19:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32557,"name":"bytes","nodeType":"ElementaryTypeName","src":"2108:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":32567,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":32561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2140:1:28","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":32562,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32548,"src":"2144:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2140:10:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":32564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2153:1:28","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2140:14:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2130:9:28","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":32559,"name":"bytes","nodeType":"ElementaryTypeName","src":"2134:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":32566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2130:25:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2108:47:28"},{"expression":{"id":32572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32568,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32558,"src":"2165:6:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32570,"indexExpression":{"hexValue":"30","id":32569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2172:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2165:9:28","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":32571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2177:3:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"2165:15:28","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":32573,"nodeType":"ExpressionStatement","src":"2165:15:28"},{"expression":{"id":32578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32574,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32558,"src":"2190:6:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32576,"indexExpression":{"hexValue":"31","id":32575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2197:1:28","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2190:9:28","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":32577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2202:3:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2190:15:28","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":32579,"nodeType":"ExpressionStatement","src":"2190:15:28"},{"body":{"id":32608,"nodeType":"Block","src":"2260:93:28","statements":[{"expression":{"id":32602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32594,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32558,"src":"2274:6:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32596,"indexExpression":{"id":32595,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32581,"src":"2281:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2274:9:28","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":32597,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32439,"src":"2286:8:28","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":32601,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32598,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32554,"src":"2295:10:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":32599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2308:3:28","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2295:16:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2286:26:28","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2274:38:28","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":32603,"nodeType":"ExpressionStatement","src":"2274:38:28"},{"expression":{"id":32606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32604,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32554,"src":"2326:10:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":32605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2341:1:28","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2326:16:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32607,"nodeType":"ExpressionStatement","src":"2326:16:28"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32588,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32581,"src":"2248:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":32589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2252:1:28","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2248:5:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32609,"initializationExpression":{"assignments":[32581],"declarations":[{"constant":false,"id":32581,"mutability":"mutable","name":"i","nameLocation":"2228:1:28","nodeType":"VariableDeclaration","scope":32609,"src":"2220:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32580,"name":"uint256","nodeType":"ElementaryTypeName","src":"2220:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32587,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":32582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2232:1:28","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":32583,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32548,"src":"2236:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2232:10:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":32585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2245:1:28","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2232:14:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2220:26:28"},"loopExpression":{"expression":{"id":32592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2255:3:28","subExpression":{"id":32591,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32581,"src":"2257:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32593,"nodeType":"ExpressionStatement","src":"2255:3:28"},"nodeType":"ForStatement","src":"2215:138:28"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32610,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32554,"src":"2366:10:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":32611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2380:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2366:15:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32619,"nodeType":"IfStatement","src":"2362:96:28","trueBody":{"id":32618,"nodeType":"Block","src":"2383:75:28","statements":[{"errorCall":{"arguments":[{"id":32614,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32546,"src":"2433:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32615,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32548,"src":"2440:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32613,"name":"StringsInsufficientHexLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32449,"src":"2404:28:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":32616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2404:43:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32617,"nodeType":"RevertStatement","src":"2397:50:28"}]}},{"expression":{"arguments":[{"id":32622,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32558,"src":"2481:6:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":32621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2474:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":32620,"name":"string","nodeType":"ElementaryTypeName","src":"2474:6:28","typeDescriptions":{}}},"id":32623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2474:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":32552,"id":32624,"nodeType":"Return","src":"2467:21:28"}]},"documentation":{"id":32544,"nodeType":"StructuredDocumentation","src":"1855:112:28","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1981:11:28","parameters":{"id":32549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32546,"mutability":"mutable","name":"value","nameLocation":"2001:5:28","nodeType":"VariableDeclaration","scope":32626,"src":"1993:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32545,"name":"uint256","nodeType":"ElementaryTypeName","src":"1993:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32548,"mutability":"mutable","name":"length","nameLocation":"2016:6:28","nodeType":"VariableDeclaration","scope":32626,"src":"2008:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32547,"name":"uint256","nodeType":"ElementaryTypeName","src":"2008:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1992:31:28"},"returnParameters":{"id":32552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32551,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32626,"src":"2047:13:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32550,"name":"string","nodeType":"ElementaryTypeName","src":"2047:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2046:15:28"},"scope":32684,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32646,"nodeType":"FunctionDefinition","src":"2647:149:28","nodes":[],"body":{"id":32645,"nodeType":"Block","src":"2720:76:28","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":32639,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32629,"src":"2765:4:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":32638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2757:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":32637,"name":"uint160","nodeType":"ElementaryTypeName","src":"2757:7:28","typeDescriptions":{}}},"id":32640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2757:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":32636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2749:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32635,"name":"uint256","nodeType":"ElementaryTypeName","src":"2749:7:28","typeDescriptions":{}}},"id":32641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2749:22:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32642,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32442,"src":"2773:15:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":32634,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[32543,32626,32646],"referencedDeclaration":32626,"src":"2737:11:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":32643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2737:52:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":32633,"id":32644,"nodeType":"Return","src":"2730:59:28"}]},"documentation":{"id":32627,"nodeType":"StructuredDocumentation","src":"2501:141:28","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2656:11:28","parameters":{"id":32630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32629,"mutability":"mutable","name":"addr","nameLocation":"2676:4:28","nodeType":"VariableDeclaration","scope":32646,"src":"2668:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32628,"name":"address","nodeType":"ElementaryTypeName","src":"2668:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2667:14:28"},"returnParameters":{"id":32633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32632,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32646,"src":"2705:13:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32631,"name":"string","nodeType":"ElementaryTypeName","src":"2705:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2704:15:28"},"scope":32684,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32683,"nodeType":"FunctionDefinition","src":"2873:182:28","nodes":[],"body":{"id":32682,"nodeType":"Block","src":"2951:104:28","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":32680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":32658,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32649,"src":"2974:1:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":32657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2968:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":32656,"name":"bytes","nodeType":"ElementaryTypeName","src":"2968:5:28","typeDescriptions":{}}},"id":32659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2968:8:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2977:6:28","memberName":"length","nodeType":"MemberAccess","src":"2968:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":32663,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32651,"src":"2993:1:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":32662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2987:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":32661,"name":"bytes","nodeType":"ElementaryTypeName","src":"2987:5:28","typeDescriptions":{}}},"id":32664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2987:8:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2996:6:28","memberName":"length","nodeType":"MemberAccess","src":"2987:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2968:34:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":32679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":32670,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32649,"src":"3022:1:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":32669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3016:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":32668,"name":"bytes","nodeType":"ElementaryTypeName","src":"3016:5:28","typeDescriptions":{}}},"id":32671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3016:8:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":32667,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3006:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":32672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3006:19:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":32676,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32651,"src":"3045:1:28","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":32675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3039:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":32674,"name":"bytes","nodeType":"ElementaryTypeName","src":"3039:5:28","typeDescriptions":{}}},"id":32677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3039:8:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":32673,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3029:9:28","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":32678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3029:19:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3006:42:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2968:80:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":32655,"id":32681,"nodeType":"Return","src":"2961:87:28"}]},"documentation":{"id":32647,"nodeType":"StructuredDocumentation","src":"2802:66:28","text":" @dev Returns true if the two strings are equal."},"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2882:5:28","parameters":{"id":32652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32649,"mutability":"mutable","name":"a","nameLocation":"2902:1:28","nodeType":"VariableDeclaration","scope":32683,"src":"2888:15:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32648,"name":"string","nodeType":"ElementaryTypeName","src":"2888:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":32651,"mutability":"mutable","name":"b","nameLocation":"2919:1:28","nodeType":"VariableDeclaration","scope":32683,"src":"2905:15:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32650,"name":"string","nodeType":"ElementaryTypeName","src":"2905:6:28","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2887:34:28"},"returnParameters":{"id":32655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32683,"src":"2945:4:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32653,"name":"bool","nodeType":"ElementaryTypeName","src":"2945:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2944:6:28"},"scope":32684,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":32436,"nodeType":"StructuredDocumentation","src":"186:34:28","text":" @dev String operations."},"fullyImplemented":true,"linearizedBaseContracts":[32684],"name":"Strings","nameLocation":"229:7:28","scope":32685,"usedErrors":[32449]}],"license":"MIT"},"id":28} \ No newline at end of file +{"abi":[{"type":"error","name":"StringsInsufficientHexLength","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122002e805cbbf827efffeb58896a02d0c1e76370ade9a96f8fdf8bdf7518823407664736f6c63430008130033","sourceMap":"221:2836:31:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea264697066735822122002e805cbbf827efffeb58896a02d0c1e76370ade9a96f8fdf8bdf7518823407664736f6c63430008130033","sourceMap":"221:2836:31:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"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":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":"Strings"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","id":33114,"exportedSymbols":{"Math":[35097],"SignedMath":[35202],"Strings":[33113]},"nodeType":"SourceUnit","src":"101:2957:31","nodes":[{"id":32862,"nodeType":"PragmaDirective","src":"101:24:31","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":32863,"nodeType":"ImportDirective","src":"127:25:31","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","file":"./math/Math.sol","nameLocation":"-1:-1:-1","scope":33114,"sourceUnit":35098,"symbolAliases":[],"unitAlias":""},{"id":32864,"nodeType":"ImportDirective","src":"153:31:31","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","nameLocation":"-1:-1:-1","scope":33114,"sourceUnit":35203,"symbolAliases":[],"unitAlias":""},{"id":33113,"nodeType":"ContractDefinition","src":"221:2836:31","nodes":[{"id":32868,"nodeType":"VariableDeclaration","src":"243:54:31","nodes":[],"constant":true,"mutability":"constant","name":"_SYMBOLS","nameLocation":"268:8:31","scope":33113,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":32866,"name":"bytes16","nodeType":"ElementaryTypeName","src":"243:7:31","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":32867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"279:18:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"id":32871,"nodeType":"VariableDeclaration","src":"303:43:31","nodes":[],"constant":true,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"326:15:31","scope":33113,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":32869,"name":"uint8","nodeType":"ElementaryTypeName","src":"303:5:31","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":32870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"344:2:31","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"id":32878,"nodeType":"ErrorDefinition","src":"439:66:31","nodes":[],"documentation":{"id":32872,"nodeType":"StructuredDocumentation","src":"353:81:31","text":" @dev The `value` string doesn't fit in the specified `length`."},"errorSelector":"e22e27eb","name":"StringsInsufficientHexLength","nameLocation":"445:28:31","parameters":{"id":32877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32874,"mutability":"mutable","name":"value","nameLocation":"482:5:31","nodeType":"VariableDeclaration","scope":32878,"src":"474:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32873,"name":"uint256","nodeType":"ElementaryTypeName","src":"474:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32876,"mutability":"mutable","name":"length","nameLocation":"497:6:31","nodeType":"VariableDeclaration","scope":32878,"src":"489:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32875,"name":"uint256","nodeType":"ElementaryTypeName","src":"489:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"473:31:31"}},{"id":32926,"nodeType":"FunctionDefinition","src":"606:696:31","nodes":[],"body":{"id":32925,"nodeType":"Block","src":"677:625:31","nodes":[],"statements":[{"id":32924,"nodeType":"UncheckedBlock","src":"687:609:31","statements":[{"assignments":[32887],"declarations":[{"constant":false,"id":32887,"mutability":"mutable","name":"length","nameLocation":"719:6:31","nodeType":"VariableDeclaration","scope":32924,"src":"711:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32886,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32894,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":32890,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32881,"src":"739:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32888,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35097,"src":"728:4:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$35097_$","typeString":"type(library Math)"}},"id":32889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"733:5:31","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":34934,"src":"728:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":32891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"728:17:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":32892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"748:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"728:21:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"711:38:31"},{"assignments":[32896],"declarations":[{"constant":false,"id":32896,"mutability":"mutable","name":"buffer","nameLocation":"777:6:31","nodeType":"VariableDeclaration","scope":32924,"src":"763:20:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32895,"name":"string","nodeType":"ElementaryTypeName","src":"763:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":32901,"initialValue":{"arguments":[{"id":32899,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32887,"src":"797:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"786:10:31","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":32897,"name":"string","nodeType":"ElementaryTypeName","src":"790:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":32900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"786:18:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"763:41:31"},{"assignments":[32903],"declarations":[{"constant":false,"id":32903,"mutability":"mutable","name":"ptr","nameLocation":"826:3:31","nodeType":"VariableDeclaration","scope":32924,"src":"818:11:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32902,"name":"uint256","nodeType":"ElementaryTypeName","src":"818:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32904,"nodeType":"VariableDeclarationStatement","src":"818:11:31"},{"AST":{"nodeType":"YulBlock","src":"899:67:31","statements":[{"nodeType":"YulAssignment","src":"917:35:31","value":{"arguments":[{"name":"buffer","nodeType":"YulIdentifier","src":"928:6:31"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"940:2:31","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"944:6:31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"936:3:31"},"nodeType":"YulFunctionCall","src":"936:15:31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"924:3:31"},"nodeType":"YulFunctionCall","src":"924:28:31"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"917:3:31"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":32896,"isOffset":false,"isSlot":false,"src":"928:6:31","valueSize":1},{"declaration":32887,"isOffset":false,"isSlot":false,"src":"944:6:31","valueSize":1},{"declaration":32903,"isOffset":false,"isSlot":false,"src":"917:3:31","valueSize":1}],"id":32905,"nodeType":"InlineAssembly","src":"890:76:31"},{"body":{"id":32920,"nodeType":"Block","src":"992:267:31","statements":[{"expression":{"id":32908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"1010:5:31","subExpression":{"id":32907,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32903,"src":"1010:3:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32909,"nodeType":"ExpressionStatement","src":"1010:5:31"},{"AST":{"nodeType":"YulBlock","src":"1093:84:31","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1123:3:31"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1137:5:31"},{"kind":"number","nodeType":"YulLiteral","src":"1144:2:31","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"1133:3:31"},"nodeType":"YulFunctionCall","src":"1133:14:31"},{"name":"_SYMBOLS","nodeType":"YulIdentifier","src":"1149:8:31"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"1128:4:31"},"nodeType":"YulFunctionCall","src":"1128:30:31"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"1115:7:31"},"nodeType":"YulFunctionCall","src":"1115:44:31"},"nodeType":"YulExpressionStatement","src":"1115:44:31"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":32868,"isOffset":false,"isSlot":false,"src":"1149:8:31","valueSize":1},{"declaration":32903,"isOffset":false,"isSlot":false,"src":"1123:3:31","valueSize":1},{"declaration":32881,"isOffset":false,"isSlot":false,"src":"1137:5:31","valueSize":1}],"id":32910,"nodeType":"InlineAssembly","src":"1084:93:31"},{"expression":{"id":32913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32911,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32881,"src":"1194:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":32912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1203:2:31","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1194:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32914,"nodeType":"ExpressionStatement","src":"1194:11:31"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32915,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32881,"src":"1227:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":32916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1236:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1227:10:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32919,"nodeType":"IfStatement","src":"1223:21:31","trueBody":{"id":32918,"nodeType":"Break","src":"1239:5:31"}}]},"condition":{"hexValue":"74727565","id":32906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"986:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":32921,"nodeType":"WhileStatement","src":"979:280:31"},{"expression":{"id":32922,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32896,"src":"1279:6:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":32885,"id":32923,"nodeType":"Return","src":"1272:13:31"}]}]},"documentation":{"id":32879,"nodeType":"StructuredDocumentation","src":"511:90:31","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"615:8:31","parameters":{"id":32882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32881,"mutability":"mutable","name":"value","nameLocation":"632:5:31","nodeType":"VariableDeclaration","scope":32926,"src":"624:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32880,"name":"uint256","nodeType":"ElementaryTypeName","src":"624:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"623:15:31"},"returnParameters":{"id":32885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32884,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32926,"src":"662:13:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32883,"name":"string","nodeType":"ElementaryTypeName","src":"662:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"661:15:31"},"scope":33113,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32952,"nodeType":"FunctionDefinition","src":"1402:168:31","nodes":[],"body":{"id":32951,"nodeType":"Block","src":"1478:92:31","nodes":[],"statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":32939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32937,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32929,"src":"1509:5:31","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":32938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1517:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1509:9:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":32941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1527:2:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":32942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1509:20:31","trueExpression":{"hexValue":"2d","id":32940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1521:3:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":32946,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32929,"src":"1555:5:31","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":32944,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35202,"src":"1540:10:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$35202_$","typeString":"type(library SignedMath)"}},"id":32945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1551:3:31","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":35201,"src":"1540:14:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":32947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1540:21:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32943,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32926,"src":"1531:8:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":32948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:31:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":32935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1495:6:31","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":32934,"name":"string","nodeType":"ElementaryTypeName","src":"1495:6:31","typeDescriptions":{}}},"id":32936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1502:6:31","memberName":"concat","nodeType":"MemberAccess","src":"1495:13:31","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":32949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1495:68:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":32933,"id":32950,"nodeType":"Return","src":"1488:75:31"}]},"documentation":{"id":32927,"nodeType":"StructuredDocumentation","src":"1308:89:31","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toStringSigned","nameLocation":"1411:14:31","parameters":{"id":32930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32929,"mutability":"mutable","name":"value","nameLocation":"1433:5:31","nodeType":"VariableDeclaration","scope":32952,"src":"1426:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":32928,"name":"int256","nodeType":"ElementaryTypeName","src":"1426:6:31","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1425:14:31"},"returnParameters":{"id":32933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32932,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32952,"src":"1463:13:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32931,"name":"string","nodeType":"ElementaryTypeName","src":"1463:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1462:15:31"},"scope":33113,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32972,"nodeType":"FunctionDefinition","src":"1675:174:31","nodes":[],"body":{"id":32971,"nodeType":"Block","src":"1749:100:31","nodes":[],"statements":[{"id":32970,"nodeType":"UncheckedBlock","src":"1759:84:31","statements":[{"expression":{"arguments":[{"id":32961,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32955,"src":"1802:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":32964,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32955,"src":"1821:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32962,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35097,"src":"1809:4:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$35097_$","typeString":"type(library Math)"}},"id":32963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1814:6:31","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":35057,"src":"1809:11:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":32965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1809:18:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":32966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1830:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1809:22:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32960,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[32972,33055,33075],"referencedDeclaration":33055,"src":"1790:11:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":32968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1790:42:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":32959,"id":32969,"nodeType":"Return","src":"1783:49:31"}]}]},"documentation":{"id":32953,"nodeType":"StructuredDocumentation","src":"1576:94:31","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1684:11:31","parameters":{"id":32956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32955,"mutability":"mutable","name":"value","nameLocation":"1704:5:31","nodeType":"VariableDeclaration","scope":32972,"src":"1696:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32954,"name":"uint256","nodeType":"ElementaryTypeName","src":"1696:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1695:15:31"},"returnParameters":{"id":32959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32972,"src":"1734:13:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32957,"name":"string","nodeType":"ElementaryTypeName","src":"1734:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1733:15:31"},"scope":33113,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33055,"nodeType":"FunctionDefinition","src":"1972:523:31","nodes":[],"body":{"id":33054,"nodeType":"Block","src":"2062:433:31","nodes":[],"statements":[{"assignments":[32983],"declarations":[{"constant":false,"id":32983,"mutability":"mutable","name":"localValue","nameLocation":"2080:10:31","nodeType":"VariableDeclaration","scope":33054,"src":"2072:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32982,"name":"uint256","nodeType":"ElementaryTypeName","src":"2072:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32985,"initialValue":{"id":32984,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32975,"src":"2093:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2072:26:31"},{"assignments":[32987],"declarations":[{"constant":false,"id":32987,"mutability":"mutable","name":"buffer","nameLocation":"2121:6:31","nodeType":"VariableDeclaration","scope":33054,"src":"2108:19:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":32986,"name":"bytes","nodeType":"ElementaryTypeName","src":"2108:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":32996,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":32990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2140:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":32991,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32977,"src":"2144:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2140:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":32993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2153:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2140:14:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2130:9:31","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":32988,"name":"bytes","nodeType":"ElementaryTypeName","src":"2134:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":32995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2130:25:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2108:47:31"},{"expression":{"id":33001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32997,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32987,"src":"2165:6:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":32999,"indexExpression":{"hexValue":"30","id":32998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2172:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2165:9:31","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":33000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2177:3:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"2165:15:31","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":33002,"nodeType":"ExpressionStatement","src":"2165:15:31"},{"expression":{"id":33007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33003,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32987,"src":"2190:6:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":33005,"indexExpression":{"hexValue":"31","id":33004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2197:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2190:9:31","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":33006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2202:3:31","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2190:15:31","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":33008,"nodeType":"ExpressionStatement","src":"2190:15:31"},{"body":{"id":33037,"nodeType":"Block","src":"2260:93:31","statements":[{"expression":{"id":33031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33023,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32987,"src":"2274:6:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":33025,"indexExpression":{"id":33024,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33010,"src":"2281:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2274:9:31","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":33026,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32868,"src":"2286:8:31","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":33030,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33027,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32983,"src":"2295:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":33028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2308:3:31","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2295:16:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2286:26:31","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2274:38:31","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":33032,"nodeType":"ExpressionStatement","src":"2274:38:31"},{"expression":{"id":33035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33033,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32983,"src":"2326:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":33034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2341:1:31","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2326:16:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33036,"nodeType":"ExpressionStatement","src":"2326:16:31"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33010,"src":"2248:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":33018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2252:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2248:5:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33038,"initializationExpression":{"assignments":[33010],"declarations":[{"constant":false,"id":33010,"mutability":"mutable","name":"i","nameLocation":"2228:1:31","nodeType":"VariableDeclaration","scope":33038,"src":"2220:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33009,"name":"uint256","nodeType":"ElementaryTypeName","src":"2220:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33016,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":33011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2232:1:31","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":33012,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32977,"src":"2236:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2232:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":33014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2245:1:31","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2232:14:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2220:26:31"},"loopExpression":{"expression":{"id":33021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2255:3:31","subExpression":{"id":33020,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33010,"src":"2257:1:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33022,"nodeType":"ExpressionStatement","src":"2255:3:31"},"nodeType":"ForStatement","src":"2215:138:31"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33039,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32983,"src":"2366:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":33040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2380:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2366:15:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33048,"nodeType":"IfStatement","src":"2362:96:31","trueBody":{"id":33047,"nodeType":"Block","src":"2383:75:31","statements":[{"errorCall":{"arguments":[{"id":33043,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32975,"src":"2433:5:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33044,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32977,"src":"2440:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33042,"name":"StringsInsufficientHexLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32878,"src":"2404:28:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2404:43:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33046,"nodeType":"RevertStatement","src":"2397:50:31"}]}},{"expression":{"arguments":[{"id":33051,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32987,"src":"2481:6:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":33050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2474:6:31","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":33049,"name":"string","nodeType":"ElementaryTypeName","src":"2474:6:31","typeDescriptions":{}}},"id":33052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2474:14:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":32981,"id":33053,"nodeType":"Return","src":"2467:21:31"}]},"documentation":{"id":32973,"nodeType":"StructuredDocumentation","src":"1855:112:31","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1981:11:31","parameters":{"id":32978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32975,"mutability":"mutable","name":"value","nameLocation":"2001:5:31","nodeType":"VariableDeclaration","scope":33055,"src":"1993:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32974,"name":"uint256","nodeType":"ElementaryTypeName","src":"1993:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32977,"mutability":"mutable","name":"length","nameLocation":"2016:6:31","nodeType":"VariableDeclaration","scope":33055,"src":"2008:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32976,"name":"uint256","nodeType":"ElementaryTypeName","src":"2008:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1992:31:31"},"returnParameters":{"id":32981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33055,"src":"2047:13:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32979,"name":"string","nodeType":"ElementaryTypeName","src":"2047:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2046:15:31"},"scope":33113,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33075,"nodeType":"FunctionDefinition","src":"2647:149:31","nodes":[],"body":{"id":33074,"nodeType":"Block","src":"2720:76:31","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":33068,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33058,"src":"2765:4:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2757:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":33066,"name":"uint160","nodeType":"ElementaryTypeName","src":"2757:7:31","typeDescriptions":{}}},"id":33069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2757:13:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":33065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2749:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":33064,"name":"uint256","nodeType":"ElementaryTypeName","src":"2749:7:31","typeDescriptions":{}}},"id":33070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2749:22:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33071,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32871,"src":"2773:15:31","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":33063,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[32972,33055,33075],"referencedDeclaration":33055,"src":"2737:11:31","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":33072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2737:52:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":33062,"id":33073,"nodeType":"Return","src":"2730:59:31"}]},"documentation":{"id":33056,"nodeType":"StructuredDocumentation","src":"2501:141:31","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2656:11:31","parameters":{"id":33059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33058,"mutability":"mutable","name":"addr","nameLocation":"2676:4:31","nodeType":"VariableDeclaration","scope":33075,"src":"2668:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33057,"name":"address","nodeType":"ElementaryTypeName","src":"2668:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2667:14:31"},"returnParameters":{"id":33062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33061,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33075,"src":"2705:13:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33060,"name":"string","nodeType":"ElementaryTypeName","src":"2705:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2704:15:31"},"scope":33113,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33112,"nodeType":"FunctionDefinition","src":"2873:182:31","nodes":[],"body":{"id":33111,"nodeType":"Block","src":"2951:104:31","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":33087,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33078,"src":"2974:1:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":33086,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2968:5:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":33085,"name":"bytes","nodeType":"ElementaryTypeName","src":"2968:5:31","typeDescriptions":{}}},"id":33088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2968:8:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":33089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2977:6:31","memberName":"length","nodeType":"MemberAccess","src":"2968:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":33092,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33080,"src":"2993:1:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":33091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2987:5:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":33090,"name":"bytes","nodeType":"ElementaryTypeName","src":"2987:5:31","typeDescriptions":{}}},"id":33093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2987:8:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":33094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2996:6:31","memberName":"length","nodeType":"MemberAccess","src":"2987:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2968:34:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":33108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":33099,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33078,"src":"3022:1:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":33098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3016:5:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":33097,"name":"bytes","nodeType":"ElementaryTypeName","src":"3016:5:31","typeDescriptions":{}}},"id":33100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3016:8:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":33096,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3006:9:31","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":33101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3006:19:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":33105,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33080,"src":"3045:1:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":33104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3039:5:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":33103,"name":"bytes","nodeType":"ElementaryTypeName","src":"3039:5:31","typeDescriptions":{}}},"id":33106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3039:8:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":33102,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3029:9:31","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":33107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3029:19:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3006:42:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2968:80:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33084,"id":33110,"nodeType":"Return","src":"2961:87:31"}]},"documentation":{"id":33076,"nodeType":"StructuredDocumentation","src":"2802:66:31","text":" @dev Returns true if the two strings are equal."},"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2882:5:31","parameters":{"id":33081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33078,"mutability":"mutable","name":"a","nameLocation":"2902:1:31","nodeType":"VariableDeclaration","scope":33112,"src":"2888:15:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33077,"name":"string","nodeType":"ElementaryTypeName","src":"2888:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":33080,"mutability":"mutable","name":"b","nameLocation":"2919:1:31","nodeType":"VariableDeclaration","scope":33112,"src":"2905:15:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33079,"name":"string","nodeType":"ElementaryTypeName","src":"2905:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2887:34:31"},"returnParameters":{"id":33084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33083,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33112,"src":"2945:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33082,"name":"bool","nodeType":"ElementaryTypeName","src":"2945:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2944:6:31"},"scope":33113,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":32865,"nodeType":"StructuredDocumentation","src":"186:34:31","text":" @dev String operations."},"fullyImplemented":true,"linearizedBaseContracts":[33113],"name":"Strings","nameLocation":"229:7:31","scope":33114,"usedErrors":[32878]}],"license":"MIT"},"id":31} \ No newline at end of file diff --git a/.out/Subnet.sol/Subnet.json b/.out/Subnet.sol/Subnet.json index d8dd08d09..4f44c955d 100644 --- a/.out/Subnet.sol/Subnet.json +++ b/.out/Subnet.sol/Subnet.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/Subnet.sol","id":48702,"exportedSymbols":{"AddressStakingReleases":[48623],"FvmAddress":[48476],"IPCAddress":[48687],"MaxPQ":[46889],"Membership":[48701],"MinPQ":[47507],"ParentValidatorsTracker":[48680],"PermissionMode":[48648],"StakingChange":[48587],"StakingChangeLog":[48606],"StakingChangeRequest":[48593],"StakingOperation":[48579],"StakingRelease":[48613],"StakingReleaseQueue":[48633],"Status":[36932],"Subnet":[48574],"SubnetID":[48557],"Validator":[48694],"ValidatorInfo":[48644],"ValidatorSet":[48673]},"nodeType":"SourceUnit","src":"46:4824:76","nodes":[{"id":48539,"nodeType":"PragmaDirective","src":"46:23:76","nodes":[],"literals":["solidity","0.8",".19"]},{"id":48541,"nodeType":"ImportDirective","src":"71:38:76","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./Subnet.sol","nameLocation":"-1:-1:-1","scope":48702,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":48540,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"79:8:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48543,"nodeType":"ImportDirective","src":"110:44:76","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"./FvmAddress.sol","nameLocation":"-1:-1:-1","scope":48702,"sourceUnit":48484,"symbolAliases":[{"foreign":{"id":48542,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"118:10:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48545,"nodeType":"ImportDirective","src":"155:43:76","nodes":[],"absolutePath":"src/enums/Status.sol","file":"../enums/Status.sol","nameLocation":"-1:-1:-1","scope":48702,"sourceUnit":36933,"symbolAliases":[{"foreign":{"id":48544,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36932,"src":"163:6:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48547,"nodeType":"ImportDirective","src":"199:51:76","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"../lib/priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":48702,"sourceUnit":47495,"symbolAliases":[{"foreign":{"id":48546,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46889,"src":"207:5:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48549,"nodeType":"ImportDirective","src":"251:51:76","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"../lib/priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":48702,"sourceUnit":48114,"symbolAliases":[{"foreign":{"id":48548,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47507,"src":"259:5:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48557,"nodeType":"StructDefinition","src":"304:142:76","nodes":[],"canonicalName":"SubnetID","members":[{"constant":false,"id":48552,"mutability":"mutable","name":"root","nameLocation":"376:4:76","nodeType":"VariableDeclaration","scope":48557,"src":"369:11:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":48551,"name":"uint64","nodeType":"ElementaryTypeName","src":"369:6:76","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":48556,"mutability":"mutable","name":"route","nameLocation":"438:5:76","nodeType":"VariableDeclaration","scope":48557,"src":"428:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":48554,"name":"address","nodeType":"ElementaryTypeName","src":"428:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48555,"nodeType":"ArrayTypeName","src":"428:9:76","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"SubnetID","nameLocation":"311:8:76","scope":48702,"visibility":"public"},{"id":48574,"nodeType":"StructDefinition","src":"448:180:76","nodes":[],"canonicalName":"Subnet","members":[{"constant":false,"id":48559,"mutability":"mutable","name":"stake","nameLocation":"476:5:76","nodeType":"VariableDeclaration","scope":48574,"src":"468:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48558,"name":"uint256","nodeType":"ElementaryTypeName","src":"468:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48561,"mutability":"mutable","name":"genesisEpoch","nameLocation":"495:12:76","nodeType":"VariableDeclaration","scope":48574,"src":"487:20:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48560,"name":"uint256","nodeType":"ElementaryTypeName","src":"487:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48563,"mutability":"mutable","name":"circSupply","nameLocation":"521:10:76","nodeType":"VariableDeclaration","scope":48574,"src":"513:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48562,"name":"uint256","nodeType":"ElementaryTypeName","src":"513:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48565,"mutability":"mutable","name":"topDownNonce","nameLocation":"544:12:76","nodeType":"VariableDeclaration","scope":48574,"src":"537:19:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":48564,"name":"uint64","nodeType":"ElementaryTypeName","src":"537:6:76","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":48567,"mutability":"mutable","name":"appliedBottomUpNonce","nameLocation":"569:20:76","nodeType":"VariableDeclaration","scope":48574,"src":"562:27:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":48566,"name":"uint64","nodeType":"ElementaryTypeName","src":"562:6:76","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":48570,"mutability":"mutable","name":"status","nameLocation":"602:6:76","nodeType":"VariableDeclaration","scope":48574,"src":"595:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"},"typeName":{"id":48569,"nodeType":"UserDefinedTypeName","pathNode":{"id":48568,"name":"Status","nameLocations":["595:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":36932,"src":"595:6:76"},"referencedDeclaration":36932,"src":"595:6:76","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$36932","typeString":"enum Status"}},"visibility":"internal"},{"constant":false,"id":48573,"mutability":"mutable","name":"id","nameLocation":"623:2:76","nodeType":"VariableDeclaration","scope":48574,"src":"614:11:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":48572,"nodeType":"UserDefinedTypeName","pathNode":{"id":48571,"name":"SubnetID","nameLocations":["614:8:76"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"614:8:76"},"referencedDeclaration":48557,"src":"614:8:76","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"name":"Subnet","nameLocation":"455:6:76","scope":48702,"visibility":"public"},{"id":48579,"nodeType":"EnumDefinition","src":"665:91:76","nodes":[],"canonicalName":"StakingOperation","members":[{"id":48575,"name":"Deposit","nameLocation":"693:7:76","nodeType":"EnumValue","src":"693:7:76"},{"id":48576,"name":"Withdraw","nameLocation":"706:8:76","nodeType":"EnumValue","src":"706:8:76"},{"id":48577,"name":"SetMetadata","nameLocation":"720:11:76","nodeType":"EnumValue","src":"720:11:76"},{"id":48578,"name":"SetFederatedPower","nameLocation":"737:17:76","nodeType":"EnumValue","src":"737:17:76"}],"name":"StakingOperation","nameLocation":"670:16:76"},{"id":48587,"nodeType":"StructDefinition","src":"802:91:76","nodes":[],"canonicalName":"StakingChange","members":[{"constant":false,"id":48582,"mutability":"mutable","name":"op","nameLocation":"846:2:76","nodeType":"VariableDeclaration","scope":48587,"src":"829:19:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"},"typeName":{"id":48581,"nodeType":"UserDefinedTypeName","pathNode":{"id":48580,"name":"StakingOperation","nameLocations":["829:16:76"],"nodeType":"IdentifierPath","referencedDeclaration":48579,"src":"829:16:76"},"referencedDeclaration":48579,"src":"829:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$48579","typeString":"enum StakingOperation"}},"visibility":"internal"},{"constant":false,"id":48584,"mutability":"mutable","name":"payload","nameLocation":"860:7:76","nodeType":"VariableDeclaration","scope":48587,"src":"854:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":48583,"name":"bytes","nodeType":"ElementaryTypeName","src":"854:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48586,"mutability":"mutable","name":"validator","nameLocation":"881:9:76","nodeType":"VariableDeclaration","scope":48587,"src":"873:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48585,"name":"address","nodeType":"ElementaryTypeName","src":"873:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StakingChange","nameLocation":"809:13:76","scope":48702,"visibility":"public"},{"id":48593,"nodeType":"StructDefinition","src":"965:89:76","nodes":[],"canonicalName":"StakingChangeRequest","members":[{"constant":false,"id":48590,"mutability":"mutable","name":"change","nameLocation":"1013:6:76","nodeType":"VariableDeclaration","scope":48593,"src":"999:20:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":48589,"nodeType":"UserDefinedTypeName","pathNode":{"id":48588,"name":"StakingChange","nameLocations":["999:13:76"],"nodeType":"IdentifierPath","referencedDeclaration":48587,"src":"999:13:76"},"referencedDeclaration":48587,"src":"999:13:76","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"},{"constant":false,"id":48592,"mutability":"mutable","name":"configurationNumber","nameLocation":"1032:19:76","nodeType":"VariableDeclaration","scope":48593,"src":"1025:26:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":48591,"name":"uint64","nodeType":"ElementaryTypeName","src":"1025:6:76","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"StakingChangeRequest","nameLocation":"972:20:76","scope":48702,"visibility":"public"},{"id":48606,"nodeType":"StructDefinition","src":"1094:356:76","nodes":[],"canonicalName":"StakingChangeLog","members":[{"constant":false,"id":48596,"mutability":"mutable","name":"nextConfigurationNumber","nameLocation":"1203:23:76","nodeType":"VariableDeclaration","scope":48606,"src":"1196:30:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":48595,"name":"uint64","nodeType":"ElementaryTypeName","src":"1196:6:76","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":48599,"mutability":"mutable","name":"startConfigurationNumber","nameLocation":"1297:24:76","nodeType":"VariableDeclaration","scope":48606,"src":"1290:31:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":48598,"name":"uint64","nodeType":"ElementaryTypeName","src":"1290:6:76","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":48605,"mutability":"mutable","name":"changes","nameLocation":"1440:7:76","nodeType":"VariableDeclaration","scope":48606,"src":"1407:40:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$48587_storage_$","typeString":"mapping(uint64 => struct StakingChange)"},"typeName":{"id":48604,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48601,"name":"uint64","nodeType":"ElementaryTypeName","src":"1415:6:76","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"1407:32:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$48587_storage_$","typeString":"mapping(uint64 => struct StakingChange)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48603,"nodeType":"UserDefinedTypeName","pathNode":{"id":48602,"name":"StakingChange","nameLocations":["1425:13:76"],"nodeType":"IdentifierPath","referencedDeclaration":48587,"src":"1425:13:76"},"referencedDeclaration":48587,"src":"1425:13:76","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$48587_storage_ptr","typeString":"struct StakingChange"}}},"visibility":"internal"}],"name":"StakingChangeLog","nameLocation":"1101:16:76","scope":48702,"visibility":"public"},{"id":48613,"nodeType":"StructDefinition","src":"1493:189:76","nodes":[],"canonicalName":"StakingRelease","members":[{"constant":false,"id":48609,"mutability":"mutable","name":"releaseAt","nameLocation":"1593:9:76","nodeType":"VariableDeclaration","scope":48613,"src":"1585:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48608,"name":"uint256","nodeType":"ElementaryTypeName","src":"1585:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48612,"mutability":"mutable","name":"amount","nameLocation":"1673:6:76","nodeType":"VariableDeclaration","scope":48613,"src":"1665:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48611,"name":"uint256","nodeType":"ElementaryTypeName","src":"1665:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StakingRelease","nameLocation":"1500:14:76","scope":48702,"visibility":"public"},{"id":48623,"nodeType":"StructDefinition","src":"1827:121:76","nodes":[],"canonicalName":"AddressStakingReleases","members":[{"constant":false,"id":48615,"mutability":"mutable","name":"length","nameLocation":"1870:6:76","nodeType":"VariableDeclaration","scope":48623,"src":"1863:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48614,"name":"uint16","nodeType":"ElementaryTypeName","src":"1863:6:76","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48617,"mutability":"mutable","name":"startIdx","nameLocation":"1889:8:76","nodeType":"VariableDeclaration","scope":48623,"src":"1882:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48616,"name":"uint16","nodeType":"ElementaryTypeName","src":"1882:6:76","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48622,"mutability":"mutable","name":"releases","nameLocation":"1937:8:76","nodeType":"VariableDeclaration","scope":48623,"src":"1903:42:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease)"},"typeName":{"id":48621,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48618,"name":"uint16","nodeType":"ElementaryTypeName","src":"1911:6:76","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1903:33:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$48613_storage_$","typeString":"mapping(uint16 => struct StakingRelease)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48620,"nodeType":"UserDefinedTypeName","pathNode":{"id":48619,"name":"StakingRelease","nameLocations":["1921:14:76"],"nodeType":"IdentifierPath","referencedDeclaration":48613,"src":"1921:14:76"},"referencedDeclaration":48613,"src":"1921:14:76","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$48613_storage_ptr","typeString":"struct StakingRelease"}}},"visibility":"internal"}],"name":"AddressStakingReleases","nameLocation":"1834:22:76","scope":48702,"visibility":"public"},{"id":48633,"nodeType":"StructDefinition","src":"1988:246:76","nodes":[],"canonicalName":"StakingReleaseQueue","members":[{"constant":false,"id":48626,"mutability":"mutable","name":"lockingDuration","nameLocation":"2093:15:76","nodeType":"VariableDeclaration","scope":48633,"src":"2085:23:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48625,"name":"uint256","nodeType":"ElementaryTypeName","src":"2085:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48632,"mutability":"mutable","name":"releases","nameLocation":"2223:8:76","nodeType":"VariableDeclaration","scope":48633,"src":"2180:51:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases)"},"typeName":{"id":48631,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48628,"name":"address","nodeType":"ElementaryTypeName","src":"2188:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2180:42:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$48623_storage_$","typeString":"mapping(address => struct AddressStakingReleases)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48630,"nodeType":"UserDefinedTypeName","pathNode":{"id":48629,"name":"AddressStakingReleases","nameLocations":["2199:22:76"],"nodeType":"IdentifierPath","referencedDeclaration":48623,"src":"2199:22:76"},"referencedDeclaration":48623,"src":"2199:22:76","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$48623_storage_ptr","typeString":"struct AddressStakingReleases"}}},"visibility":"internal"}],"name":"StakingReleaseQueue","nameLocation":"1995:19:76","scope":48702,"visibility":"public"},{"id":48644,"nodeType":"StructDefinition","src":"2520:381:76","nodes":[],"canonicalName":"ValidatorInfo","members":[{"constant":false,"id":48636,"mutability":"mutable","name":"federatedPower","nameLocation":"2595:14:76","nodeType":"VariableDeclaration","scope":48644,"src":"2587:22:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48635,"name":"uint256","nodeType":"ElementaryTypeName","src":"2587:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48638,"mutability":"mutable","name":"confirmedCollateral","nameLocation":"2623:19:76","nodeType":"VariableDeclaration","scope":48644,"src":"2615:27:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48637,"name":"uint256","nodeType":"ElementaryTypeName","src":"2615:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48640,"mutability":"mutable","name":"totalCollateral","nameLocation":"2656:15:76","nodeType":"VariableDeclaration","scope":48644,"src":"2648:23:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48639,"name":"uint256","nodeType":"ElementaryTypeName","src":"2648:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48643,"mutability":"mutable","name":"metadata","nameLocation":"2890:8:76","nodeType":"VariableDeclaration","scope":48644,"src":"2884:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":48642,"name":"bytes","nodeType":"ElementaryTypeName","src":"2884:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ValidatorInfo","nameLocation":"2527:13:76","scope":48702,"visibility":"public"},{"id":48648,"nodeType":"EnumDefinition","src":"2954:290:76","nodes":[],"canonicalName":"PermissionMode","members":[{"id":48645,"name":"Collateral","nameLocation":"3043:10:76","nodeType":"EnumValue","src":"3043:10:76"},{"id":48646,"name":"Federated","nameLocation":"3122:9:76","nodeType":"EnumValue","src":"3122:9:76"},{"id":48647,"name":"Static","nameLocation":"3236:6:76","nodeType":"EnumValue","src":"3236:6:76"}],"name":"PermissionMode","nameLocation":"2959:14:76"},{"id":48673,"nodeType":"StructDefinition","src":"3803:576:76","nodes":[],"canonicalName":"ValidatorSet","members":[{"constant":false,"id":48652,"mutability":"mutable","name":"permissionMode","nameLocation":"3887:14:76","nodeType":"VariableDeclaration","scope":48673,"src":"3872:29:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"typeName":{"id":48651,"nodeType":"UserDefinedTypeName","pathNode":{"id":48650,"name":"PermissionMode","nameLocations":["3872:14:76"],"nodeType":"IdentifierPath","referencedDeclaration":48648,"src":"3872:14:76"},"referencedDeclaration":48648,"src":"3872:14:76","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":48655,"mutability":"mutable","name":"activeLimit","nameLocation":"3969:11:76","nodeType":"VariableDeclaration","scope":48673,"src":"3962:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48654,"name":"uint16","nodeType":"ElementaryTypeName","src":"3962:6:76","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":48658,"mutability":"mutable","name":"totalConfirmedCollateral","nameLocation":"4034:24:76","nodeType":"VariableDeclaration","scope":48673,"src":"4026:32:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48657,"name":"uint256","nodeType":"ElementaryTypeName","src":"4026:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48664,"mutability":"mutable","name":"validators","nameLocation":"4164:10:76","nodeType":"VariableDeclaration","scope":48673,"src":"4130:44:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo)"},"typeName":{"id":48663,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48660,"name":"address","nodeType":"ElementaryTypeName","src":"4138:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4130:33:76","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48662,"nodeType":"UserDefinedTypeName","pathNode":{"id":48661,"name":"ValidatorInfo","nameLocations":["4149:13:76"],"nodeType":"IdentifierPath","referencedDeclaration":48644,"src":"4149:13:76"},"referencedDeclaration":48644,"src":"4149:13:76","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage_ptr","typeString":"struct ValidatorInfo"}}},"visibility":"internal"},{"constant":false,"id":48668,"mutability":"mutable","name":"activeValidators","nameLocation":"4258:16:76","nodeType":"VariableDeclaration","scope":48673,"src":"4252:22:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":48667,"nodeType":"UserDefinedTypeName","pathNode":{"id":48666,"name":"MinPQ","nameLocations":["4252:5:76"],"nodeType":"IdentifierPath","referencedDeclaration":47507,"src":"4252:5:76"},"referencedDeclaration":47507,"src":"4252:5:76","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$47507_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":48672,"mutability":"mutable","name":"waitingValidators","nameLocation":"4359:17:76","nodeType":"VariableDeclaration","scope":48673,"src":"4353:23:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":48671,"nodeType":"UserDefinedTypeName","pathNode":{"id":48670,"name":"MaxPQ","nameLocations":["4353:5:76"],"nodeType":"IdentifierPath","referencedDeclaration":46889,"src":"4353:5:76"},"referencedDeclaration":46889,"src":"4353:5:76","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$46889_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"}],"name":"ValidatorSet","nameLocation":"3810:12:76","scope":48702,"visibility":"public"},{"id":48680,"nodeType":"StructDefinition","src":"4449:93:76","nodes":[],"canonicalName":"ParentValidatorsTracker","members":[{"constant":false,"id":48676,"mutability":"mutable","name":"validators","nameLocation":"4499:10:76","nodeType":"VariableDeclaration","scope":48680,"src":"4486:23:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":48675,"nodeType":"UserDefinedTypeName","pathNode":{"id":48674,"name":"ValidatorSet","nameLocations":["4486:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"4486:12:76"},"referencedDeclaration":48673,"src":"4486:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":48679,"mutability":"mutable","name":"changes","nameLocation":"4532:7:76","nodeType":"VariableDeclaration","scope":48680,"src":"4515:24:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":48678,"nodeType":"UserDefinedTypeName","pathNode":{"id":48677,"name":"StakingChangeLog","nameLocations":["4515:16:76"],"nodeType":"IdentifierPath","referencedDeclaration":48606,"src":"4515:16:76"},"referencedDeclaration":48606,"src":"4515:16:76","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"name":"ParentValidatorsTracker","nameLocation":"4456:23:76","scope":48702,"visibility":"public"},{"id":48687,"nodeType":"StructDefinition","src":"4544:71:76","nodes":[],"canonicalName":"IPCAddress","members":[{"constant":false,"id":48683,"mutability":"mutable","name":"subnetId","nameLocation":"4577:8:76","nodeType":"VariableDeclaration","scope":48687,"src":"4568:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":48682,"nodeType":"UserDefinedTypeName","pathNode":{"id":48681,"name":"SubnetID","nameLocations":["4568:8:76"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"4568:8:76"},"referencedDeclaration":48557,"src":"4568:8:76","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":48686,"mutability":"mutable","name":"rawAddress","nameLocation":"4602:10:76","nodeType":"VariableDeclaration","scope":48687,"src":"4591:21:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"},"typeName":{"id":48685,"nodeType":"UserDefinedTypeName","pathNode":{"id":48684,"name":"FvmAddress","nameLocations":["4591:10:76"],"nodeType":"IdentifierPath","referencedDeclaration":48476,"src":"4591:10:76"},"referencedDeclaration":48476,"src":"4591:10:76","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$48476_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"name":"IPCAddress","nameLocation":"4551:10:76","scope":48702,"visibility":"public"},{"id":48694,"nodeType":"StructDefinition","src":"4660:78:76","nodes":[],"canonicalName":"Validator","members":[{"constant":false,"id":48689,"mutability":"mutable","name":"weight","nameLocation":"4691:6:76","nodeType":"VariableDeclaration","scope":48694,"src":"4683:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48688,"name":"uint256","nodeType":"ElementaryTypeName","src":"4683:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48691,"mutability":"mutable","name":"addr","nameLocation":"4711:4:76","nodeType":"VariableDeclaration","scope":48694,"src":"4703:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48690,"name":"address","nodeType":"ElementaryTypeName","src":"4703:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48693,"mutability":"mutable","name":"metadata","nameLocation":"4727:8:76","nodeType":"VariableDeclaration","scope":48694,"src":"4721:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":48692,"name":"bytes","nodeType":"ElementaryTypeName","src":"4721:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Validator","nameLocation":"4667:9:76","scope":48702,"visibility":"public"},{"id":48701,"nodeType":"StructDefinition","src":"4788:81:76","nodes":[],"canonicalName":"Membership","members":[{"constant":false,"id":48698,"mutability":"mutable","name":"validators","nameLocation":"4824:10:76","nodeType":"VariableDeclaration","scope":48701,"src":"4812:22:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":48696,"nodeType":"UserDefinedTypeName","pathNode":{"id":48695,"name":"Validator","nameLocations":["4812:9:76"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"4812:9:76"},"referencedDeclaration":48694,"src":"4812:9:76","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"id":48697,"nodeType":"ArrayTypeName","src":"4812:11:76","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":48700,"mutability":"mutable","name":"configurationNumber","nameLocation":"4847:19:76","nodeType":"VariableDeclaration","scope":48701,"src":"4840:26:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":48699,"name":"uint64","nodeType":"ElementaryTypeName","src":"4840:6:76","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"Membership","nameLocation":"4795:10:76","scope":48702,"visibility":"public"}],"license":"MIT OR Apache-2.0"},"id":76} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","linkReferences":{}},"deployedBytecode":{"object":"0x","linkReferences":{}},"ast":{"absolutePath":"src/structs/Subnet.sol","id":50230,"exportedSymbols":{"AddressStakingReleases":[50140],"FvmAddress":[49998],"IPCAddress":[50204],"MaxPQ":[48411],"Membership":[50218],"MinPQ":[49029],"ParentValidatorsTracker":[50197],"PermissionMode":[50165],"StakingChange":[50104],"StakingChangeLog":[50123],"StakingChangeRequest":[50110],"StakingOperation":[50096],"StakingRelease":[50130],"StakingReleaseQueue":[50150],"Subnet":[50091],"SubnetID":[50077],"SupplyKind":[50229],"SupplySource":[50226],"Validator":[50211],"ValidatorInfo":[50161],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:5370:83","nodes":[{"id":50061,"nodeType":"PragmaDirective","src":"46:23:83","nodes":[],"literals":["solidity","0.8",".19"]},{"id":50063,"nodeType":"ImportDirective","src":"71:38:83","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./Subnet.sol","nameLocation":"-1:-1:-1","scope":50230,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":50062,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"79:8:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50065,"nodeType":"ImportDirective","src":"110:44:83","nodes":[],"absolutePath":"src/structs/FvmAddress.sol","file":"./FvmAddress.sol","nameLocation":"-1:-1:-1","scope":50230,"sourceUnit":50006,"symbolAliases":[{"foreign":{"id":50064,"name":"FvmAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49998,"src":"118:10:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50067,"nodeType":"ImportDirective","src":"155:51:83","nodes":[],"absolutePath":"src/lib/priority/LibMaxPQ.sol","file":"../lib/priority/LibMaxPQ.sol","nameLocation":"-1:-1:-1","scope":50230,"sourceUnit":49017,"symbolAliases":[{"foreign":{"id":50066,"name":"MaxPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48411,"src":"163:5:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50069,"nodeType":"ImportDirective","src":"207:51:83","nodes":[],"absolutePath":"src/lib/priority/LibMinPQ.sol","file":"../lib/priority/LibMinPQ.sol","nameLocation":"-1:-1:-1","scope":50230,"sourceUnit":49636,"symbolAliases":[{"foreign":{"id":50068,"name":"MinPQ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49029,"src":"215:5:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50077,"nodeType":"StructDefinition","src":"296:142:83","nodes":[],"canonicalName":"SubnetID","members":[{"constant":false,"id":50072,"mutability":"mutable","name":"root","nameLocation":"368:4:83","nodeType":"VariableDeclaration","scope":50077,"src":"361:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50071,"name":"uint64","nodeType":"ElementaryTypeName","src":"361:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50076,"mutability":"mutable","name":"route","nameLocation":"430:5:83","nodeType":"VariableDeclaration","scope":50077,"src":"420:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50074,"name":"address","nodeType":"ElementaryTypeName","src":"420:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50075,"nodeType":"ArrayTypeName","src":"420:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"SubnetID","nameLocation":"303:8:83","scope":50230,"visibility":"public"},{"id":50091,"nodeType":"StructDefinition","src":"467:161:83","nodes":[],"canonicalName":"Subnet","members":[{"constant":false,"id":50079,"mutability":"mutable","name":"stake","nameLocation":"495:5:83","nodeType":"VariableDeclaration","scope":50091,"src":"487:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50078,"name":"uint256","nodeType":"ElementaryTypeName","src":"487:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50081,"mutability":"mutable","name":"genesisEpoch","nameLocation":"514:12:83","nodeType":"VariableDeclaration","scope":50091,"src":"506:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50080,"name":"uint256","nodeType":"ElementaryTypeName","src":"506:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50083,"mutability":"mutable","name":"circSupply","nameLocation":"540:10:83","nodeType":"VariableDeclaration","scope":50091,"src":"532:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50082,"name":"uint256","nodeType":"ElementaryTypeName","src":"532:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50085,"mutability":"mutable","name":"topDownNonce","nameLocation":"563:12:83","nodeType":"VariableDeclaration","scope":50091,"src":"556:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50084,"name":"uint64","nodeType":"ElementaryTypeName","src":"556:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50087,"mutability":"mutable","name":"appliedBottomUpNonce","nameLocation":"588:20:83","nodeType":"VariableDeclaration","scope":50091,"src":"581:27:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50086,"name":"uint64","nodeType":"ElementaryTypeName","src":"581:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50090,"mutability":"mutable","name":"id","nameLocation":"623:2:83","nodeType":"VariableDeclaration","scope":50091,"src":"614:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":50089,"nodeType":"UserDefinedTypeName","pathNode":{"id":50088,"name":"SubnetID","nameLocations":["614:8:83"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"614:8:83"},"referencedDeclaration":50077,"src":"614:8:83","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"name":"Subnet","nameLocation":"474:6:83","scope":50230,"visibility":"public"},{"id":50096,"nodeType":"EnumDefinition","src":"669:91:83","nodes":[],"canonicalName":"StakingOperation","members":[{"id":50092,"name":"Deposit","nameLocation":"697:7:83","nodeType":"EnumValue","src":"697:7:83"},{"id":50093,"name":"Withdraw","nameLocation":"710:8:83","nodeType":"EnumValue","src":"710:8:83"},{"id":50094,"name":"SetMetadata","nameLocation":"724:11:83","nodeType":"EnumValue","src":"724:11:83"},{"id":50095,"name":"SetFederatedPower","nameLocation":"741:17:83","nodeType":"EnumValue","src":"741:17:83"}],"name":"StakingOperation","nameLocation":"674:16:83"},{"id":50104,"nodeType":"StructDefinition","src":"815:91:83","nodes":[],"canonicalName":"StakingChange","members":[{"constant":false,"id":50099,"mutability":"mutable","name":"op","nameLocation":"859:2:83","nodeType":"VariableDeclaration","scope":50104,"src":"842:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"},"typeName":{"id":50098,"nodeType":"UserDefinedTypeName","pathNode":{"id":50097,"name":"StakingOperation","nameLocations":["842:16:83"],"nodeType":"IdentifierPath","referencedDeclaration":50096,"src":"842:16:83"},"referencedDeclaration":50096,"src":"842:16:83","typeDescriptions":{"typeIdentifier":"t_enum$_StakingOperation_$50096","typeString":"enum StakingOperation"}},"visibility":"internal"},{"constant":false,"id":50101,"mutability":"mutable","name":"payload","nameLocation":"873:7:83","nodeType":"VariableDeclaration","scope":50104,"src":"867:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":50100,"name":"bytes","nodeType":"ElementaryTypeName","src":"867:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":50103,"mutability":"mutable","name":"validator","nameLocation":"894:9:83","nodeType":"VariableDeclaration","scope":50104,"src":"886:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50102,"name":"address","nodeType":"ElementaryTypeName","src":"886:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StakingChange","nameLocation":"822:13:83","scope":50230,"visibility":"public"},{"id":50110,"nodeType":"StructDefinition","src":"987:89:83","nodes":[],"canonicalName":"StakingChangeRequest","members":[{"constant":false,"id":50107,"mutability":"mutable","name":"change","nameLocation":"1035:6:83","nodeType":"VariableDeclaration","scope":50110,"src":"1021:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"},"typeName":{"id":50106,"nodeType":"UserDefinedTypeName","pathNode":{"id":50105,"name":"StakingChange","nameLocations":["1021:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"1021:13:83"},"referencedDeclaration":50104,"src":"1021:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}},"visibility":"internal"},{"constant":false,"id":50109,"mutability":"mutable","name":"configurationNumber","nameLocation":"1054:19:83","nodeType":"VariableDeclaration","scope":50110,"src":"1047:26:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50108,"name":"uint64","nodeType":"ElementaryTypeName","src":"1047:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"StakingChangeRequest","nameLocation":"994:20:83","scope":50230,"visibility":"public"},{"id":50123,"nodeType":"StructDefinition","src":"1125:356:83","nodes":[],"canonicalName":"StakingChangeLog","members":[{"constant":false,"id":50113,"mutability":"mutable","name":"nextConfigurationNumber","nameLocation":"1234:23:83","nodeType":"VariableDeclaration","scope":50123,"src":"1227:30:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50112,"name":"uint64","nodeType":"ElementaryTypeName","src":"1227:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50116,"mutability":"mutable","name":"startConfigurationNumber","nameLocation":"1328:24:83","nodeType":"VariableDeclaration","scope":50123,"src":"1321:31:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50115,"name":"uint64","nodeType":"ElementaryTypeName","src":"1321:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50122,"mutability":"mutable","name":"changes","nameLocation":"1471:7:83","nodeType":"VariableDeclaration","scope":50123,"src":"1438:40:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$50104_storage_$","typeString":"mapping(uint64 => struct StakingChange)"},"typeName":{"id":50121,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50118,"name":"uint64","nodeType":"ElementaryTypeName","src":"1446:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Mapping","src":"1438:32:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_struct$_StakingChange_$50104_storage_$","typeString":"mapping(uint64 => struct StakingChange)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50120,"nodeType":"UserDefinedTypeName","pathNode":{"id":50119,"name":"StakingChange","nameLocations":["1456:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":50104,"src":"1456:13:83"},"referencedDeclaration":50104,"src":"1456:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChange_$50104_storage_ptr","typeString":"struct StakingChange"}}},"visibility":"internal"}],"name":"StakingChangeLog","nameLocation":"1132:16:83","scope":50230,"visibility":"public"},{"id":50130,"nodeType":"StructDefinition","src":"1533:189:83","nodes":[],"canonicalName":"StakingRelease","members":[{"constant":false,"id":50126,"mutability":"mutable","name":"releaseAt","nameLocation":"1633:9:83","nodeType":"VariableDeclaration","scope":50130,"src":"1625:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50125,"name":"uint256","nodeType":"ElementaryTypeName","src":"1625:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50129,"mutability":"mutable","name":"amount","nameLocation":"1713:6:83","nodeType":"VariableDeclaration","scope":50130,"src":"1705:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50128,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StakingRelease","nameLocation":"1540:14:83","scope":50230,"visibility":"public"},{"id":50140,"nodeType":"StructDefinition","src":"1895:121:83","nodes":[],"canonicalName":"AddressStakingReleases","members":[{"constant":false,"id":50132,"mutability":"mutable","name":"length","nameLocation":"1938:6:83","nodeType":"VariableDeclaration","scope":50140,"src":"1931:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50131,"name":"uint16","nodeType":"ElementaryTypeName","src":"1931:6:83","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":50134,"mutability":"mutable","name":"startIdx","nameLocation":"1957:8:83","nodeType":"VariableDeclaration","scope":50140,"src":"1950:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50133,"name":"uint16","nodeType":"ElementaryTypeName","src":"1950:6:83","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":50139,"mutability":"mutable","name":"releases","nameLocation":"2005:8:83","nodeType":"VariableDeclaration","scope":50140,"src":"1971:42:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease)"},"typeName":{"id":50138,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50135,"name":"uint16","nodeType":"ElementaryTypeName","src":"1979:6:83","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Mapping","src":"1971:33:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint16_$_t_struct$_StakingRelease_$50130_storage_$","typeString":"mapping(uint16 => struct StakingRelease)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50137,"nodeType":"UserDefinedTypeName","pathNode":{"id":50136,"name":"StakingRelease","nameLocations":["1989:14:83"],"nodeType":"IdentifierPath","referencedDeclaration":50130,"src":"1989:14:83"},"referencedDeclaration":50130,"src":"1989:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_StakingRelease_$50130_storage_ptr","typeString":"struct StakingRelease"}}},"visibility":"internal"}],"name":"AddressStakingReleases","nameLocation":"1902:22:83","scope":50230,"visibility":"public"},{"id":50150,"nodeType":"StructDefinition","src":"2065:246:83","nodes":[],"canonicalName":"StakingReleaseQueue","members":[{"constant":false,"id":50143,"mutability":"mutable","name":"lockingDuration","nameLocation":"2170:15:83","nodeType":"VariableDeclaration","scope":50150,"src":"2162:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50142,"name":"uint256","nodeType":"ElementaryTypeName","src":"2162:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50149,"mutability":"mutable","name":"releases","nameLocation":"2300:8:83","nodeType":"VariableDeclaration","scope":50150,"src":"2257:51:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases)"},"typeName":{"id":50148,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50145,"name":"address","nodeType":"ElementaryTypeName","src":"2265:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2257:42:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressStakingReleases_$50140_storage_$","typeString":"mapping(address => struct AddressStakingReleases)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50147,"nodeType":"UserDefinedTypeName","pathNode":{"id":50146,"name":"AddressStakingReleases","nameLocations":["2276:22:83"],"nodeType":"IdentifierPath","referencedDeclaration":50140,"src":"2276:22:83"},"referencedDeclaration":50140,"src":"2276:22:83","typeDescriptions":{"typeIdentifier":"t_struct$_AddressStakingReleases_$50140_storage_ptr","typeString":"struct AddressStakingReleases"}}},"visibility":"internal"}],"name":"StakingReleaseQueue","nameLocation":"2072:19:83","scope":50230,"visibility":"public"},{"id":50161,"nodeType":"StructDefinition","src":"2615:381:83","nodes":[],"canonicalName":"ValidatorInfo","members":[{"constant":false,"id":50153,"mutability":"mutable","name":"federatedPower","nameLocation":"2690:14:83","nodeType":"VariableDeclaration","scope":50161,"src":"2682:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50152,"name":"uint256","nodeType":"ElementaryTypeName","src":"2682:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50155,"mutability":"mutable","name":"confirmedCollateral","nameLocation":"2718:19:83","nodeType":"VariableDeclaration","scope":50161,"src":"2710:27:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50154,"name":"uint256","nodeType":"ElementaryTypeName","src":"2710:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50157,"mutability":"mutable","name":"totalCollateral","nameLocation":"2751:15:83","nodeType":"VariableDeclaration","scope":50161,"src":"2743:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50156,"name":"uint256","nodeType":"ElementaryTypeName","src":"2743:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50160,"mutability":"mutable","name":"metadata","nameLocation":"2985:8:83","nodeType":"VariableDeclaration","scope":50161,"src":"2979:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":50159,"name":"bytes","nodeType":"ElementaryTypeName","src":"2979:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ValidatorInfo","nameLocation":"2622:13:83","scope":50230,"visibility":"public"},{"id":50165,"nodeType":"EnumDefinition","src":"3057:290:83","nodes":[],"canonicalName":"PermissionMode","members":[{"id":50162,"name":"Collateral","nameLocation":"3146:10:83","nodeType":"EnumValue","src":"3146:10:83"},{"id":50163,"name":"Federated","nameLocation":"3225:9:83","nodeType":"EnumValue","src":"3225:9:83"},{"id":50164,"name":"Static","nameLocation":"3339:6:83","nodeType":"EnumValue","src":"3339:6:83"}],"name":"PermissionMode","nameLocation":"3062:14:83"},{"id":50190,"nodeType":"StructDefinition","src":"3923:576:83","nodes":[],"canonicalName":"ValidatorSet","members":[{"constant":false,"id":50169,"mutability":"mutable","name":"permissionMode","nameLocation":"4007:14:83","nodeType":"VariableDeclaration","scope":50190,"src":"3992:29:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":50168,"nodeType":"UserDefinedTypeName","pathNode":{"id":50167,"name":"PermissionMode","nameLocations":["3992:14:83"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"3992:14:83"},"referencedDeclaration":50165,"src":"3992:14:83","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":50172,"mutability":"mutable","name":"activeLimit","nameLocation":"4089:11:83","nodeType":"VariableDeclaration","scope":50190,"src":"4082:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50171,"name":"uint16","nodeType":"ElementaryTypeName","src":"4082:6:83","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":50175,"mutability":"mutable","name":"totalConfirmedCollateral","nameLocation":"4154:24:83","nodeType":"VariableDeclaration","scope":50190,"src":"4146:32:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50174,"name":"uint256","nodeType":"ElementaryTypeName","src":"4146:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50181,"mutability":"mutable","name":"validators","nameLocation":"4284:10:83","nodeType":"VariableDeclaration","scope":50190,"src":"4250:44:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo)"},"typeName":{"id":50180,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50177,"name":"address","nodeType":"ElementaryTypeName","src":"4258:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4250:33:83","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50179,"nodeType":"UserDefinedTypeName","pathNode":{"id":50178,"name":"ValidatorInfo","nameLocations":["4269:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":50161,"src":"4269:13:83"},"referencedDeclaration":50161,"src":"4269:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage_ptr","typeString":"struct ValidatorInfo"}}},"visibility":"internal"},{"constant":false,"id":50185,"mutability":"mutable","name":"activeValidators","nameLocation":"4378:16:83","nodeType":"VariableDeclaration","scope":50190,"src":"4372:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"},"typeName":{"id":50184,"nodeType":"UserDefinedTypeName","pathNode":{"id":50183,"name":"MinPQ","nameLocations":["4372:5:83"],"nodeType":"IdentifierPath","referencedDeclaration":49029,"src":"4372:5:83"},"referencedDeclaration":49029,"src":"4372:5:83","typeDescriptions":{"typeIdentifier":"t_struct$_MinPQ_$49029_storage_ptr","typeString":"struct MinPQ"}},"visibility":"internal"},{"constant":false,"id":50189,"mutability":"mutable","name":"waitingValidators","nameLocation":"4479:17:83","nodeType":"VariableDeclaration","scope":50190,"src":"4473:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"},"typeName":{"id":50188,"nodeType":"UserDefinedTypeName","pathNode":{"id":50187,"name":"MaxPQ","nameLocations":["4473:5:83"],"nodeType":"IdentifierPath","referencedDeclaration":48411,"src":"4473:5:83"},"referencedDeclaration":48411,"src":"4473:5:83","typeDescriptions":{"typeIdentifier":"t_struct$_MaxPQ_$48411_storage_ptr","typeString":"struct MaxPQ"}},"visibility":"internal"}],"name":"ValidatorSet","nameLocation":"3930:12:83","scope":50230,"visibility":"public"},{"id":50197,"nodeType":"StructDefinition","src":"4578:93:83","nodes":[],"canonicalName":"ParentValidatorsTracker","members":[{"constant":false,"id":50193,"mutability":"mutable","name":"validators","nameLocation":"4628:10:83","nodeType":"VariableDeclaration","scope":50197,"src":"4615:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"},"typeName":{"id":50192,"nodeType":"UserDefinedTypeName","pathNode":{"id":50191,"name":"ValidatorSet","nameLocations":["4615:12:83"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"4615:12:83"},"referencedDeclaration":50190,"src":"4615:12:83","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}},"visibility":"internal"},{"constant":false,"id":50196,"mutability":"mutable","name":"changes","nameLocation":"4661:7:83","nodeType":"VariableDeclaration","scope":50197,"src":"4644:24:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"},"typeName":{"id":50195,"nodeType":"UserDefinedTypeName","pathNode":{"id":50194,"name":"StakingChangeLog","nameLocations":["4644:16:83"],"nodeType":"IdentifierPath","referencedDeclaration":50123,"src":"4644:16:83"},"referencedDeclaration":50123,"src":"4644:16:83","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage_ptr","typeString":"struct StakingChangeLog"}},"visibility":"internal"}],"name":"ParentValidatorsTracker","nameLocation":"4585:23:83","scope":50230,"visibility":"public"},{"id":50204,"nodeType":"StructDefinition","src":"4706:71:83","nodes":[],"canonicalName":"IPCAddress","members":[{"constant":false,"id":50200,"mutability":"mutable","name":"subnetId","nameLocation":"4739:8:83","nodeType":"VariableDeclaration","scope":50204,"src":"4730:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":50199,"nodeType":"UserDefinedTypeName","pathNode":{"id":50198,"name":"SubnetID","nameLocations":["4730:8:83"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"4730:8:83"},"referencedDeclaration":50077,"src":"4730:8:83","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":50203,"mutability":"mutable","name":"rawAddress","nameLocation":"4764:10:83","nodeType":"VariableDeclaration","scope":50204,"src":"4753:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"},"typeName":{"id":50202,"nodeType":"UserDefinedTypeName","pathNode":{"id":50201,"name":"FvmAddress","nameLocations":["4753:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":49998,"src":"4753:10:83"},"referencedDeclaration":49998,"src":"4753:10:83","typeDescriptions":{"typeIdentifier":"t_struct$_FvmAddress_$49998_storage_ptr","typeString":"struct FvmAddress"}},"visibility":"internal"}],"name":"IPCAddress","nameLocation":"4713:10:83","scope":50230,"visibility":"public"},{"id":50211,"nodeType":"StructDefinition","src":"4831:78:83","nodes":[],"canonicalName":"Validator","members":[{"constant":false,"id":50206,"mutability":"mutable","name":"weight","nameLocation":"4862:6:83","nodeType":"VariableDeclaration","scope":50211,"src":"4854:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50205,"name":"uint256","nodeType":"ElementaryTypeName","src":"4854:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50208,"mutability":"mutable","name":"addr","nameLocation":"4882:4:83","nodeType":"VariableDeclaration","scope":50211,"src":"4874:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50207,"name":"address","nodeType":"ElementaryTypeName","src":"4874:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50210,"mutability":"mutable","name":"metadata","nameLocation":"4898:8:83","nodeType":"VariableDeclaration","scope":50211,"src":"4892:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":50209,"name":"bytes","nodeType":"ElementaryTypeName","src":"4892:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Validator","nameLocation":"4838:9:83","scope":50230,"visibility":"public"},{"id":50218,"nodeType":"StructDefinition","src":"4969:81:83","nodes":[],"canonicalName":"Membership","members":[{"constant":false,"id":50215,"mutability":"mutable","name":"validators","nameLocation":"5005:10:83","nodeType":"VariableDeclaration","scope":50218,"src":"4993:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":50213,"nodeType":"UserDefinedTypeName","pathNode":{"id":50212,"name":"Validator","nameLocations":["4993:9:83"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"4993:9:83"},"referencedDeclaration":50211,"src":"4993:9:83","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":50214,"nodeType":"ArrayTypeName","src":"4993:11:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"},{"constant":false,"id":50217,"mutability":"mutable","name":"configurationNumber","nameLocation":"5028:19:83","nodeType":"VariableDeclaration","scope":50218,"src":"5021:26:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50216,"name":"uint64","nodeType":"ElementaryTypeName","src":"5021:6:83","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"Membership","nameLocation":"4976:10:83","scope":50230,"visibility":"public"},{"id":50226,"nodeType":"StructDefinition","src":"5124:186:83","nodes":[],"canonicalName":"SupplySource","members":[{"constant":false,"id":50222,"mutability":"mutable","name":"kind","nameLocation":"5197:4:83","nodeType":"VariableDeclaration","scope":50226,"src":"5186:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":50221,"nodeType":"UserDefinedTypeName","pathNode":{"id":50220,"name":"SupplyKind","nameLocations":["5186:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"5186:10:83"},"referencedDeclaration":50229,"src":"5186:10:83","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"},{"constant":false,"id":50225,"mutability":"mutable","name":"tokenAddress","nameLocation":"5295:12:83","nodeType":"VariableDeclaration","scope":50226,"src":"5287:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50224,"name":"address","nodeType":"ElementaryTypeName","src":"5287:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"SupplySource","nameLocation":"5131:12:83","scope":50230,"visibility":"public"},{"id":50229,"nodeType":"EnumDefinition","src":"5374:41:83","nodes":[],"canonicalName":"SupplyKind","members":[{"id":50227,"name":"Native","nameLocation":"5396:6:83","nodeType":"EnumValue","src":"5396:6:83"},{"id":50228,"name":"ERC20","nameLocation":"5408:5:83","nodeType":"EnumValue","src":"5408:5:83"}],"name":"SupplyKind","nameLocation":"5379:10:83"}],"license":"MIT OR Apache-2.0"},"id":83} \ No newline at end of file diff --git a/.out/SubnetActor.sol/SubnetActorManagerFacetMock.json b/.out/SubnetActor.sol/SubnetActorManagerFacetMock.json deleted file mode 100644 index 355b037f9..000000000 --- a/.out/SubnetActor.sol/SubnetActorManagerFacetMock.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"function","name":"addBootstrapNode","inputs":[{"name":"netAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardForRelayer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"confirmChange","inputs":[{"name":"_configurationNumber","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"confirmNextChange","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeRewardToRelayers","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"reward","type":"uint256","internalType":"uint256"},{"name":"kind","type":"uint8","internalType":"enum QuorumObjKind"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"join","inputs":[{"name":"publicKey","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leave","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"preFund","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"preRelease","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFederatedPower","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"publicKeys","type":"bytes[]","internalType":"bytes[]"},{"name":"powers","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateActiveQuorumSignatures","inputs":[{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"view"},{"type":"event","name":"BottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BottomUpCheckpointSubmitted","inputs":[{"name":"checkpoint","type":"tuple","indexed":false,"internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NextBottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubnetBootstrapped","inputs":[{"name":"","type":"tuple[]","indexed":false,"internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"BatchWithNoMessages","inputs":[]},{"type":"error","name":"CannotConfirmFutureChanges","inputs":[]},{"type":"error","name":"CannotReleaseZero","inputs":[]},{"type":"error","name":"CollateralIsZero","inputs":[]},{"type":"error","name":"DuplicatedGenesisValidator","inputs":[]},{"type":"error","name":"EmptyAddress","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidBatchEpoch","inputs":[]},{"type":"error","name":"InvalidCheckpointEpoch","inputs":[]},{"type":"error","name":"InvalidFederationPayload","inputs":[]},{"type":"error","name":"InvalidPublicKeyLength","inputs":[]},{"type":"error","name":"InvalidSignatureErr","inputs":[{"name":"","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"MaxMsgsPerBatchExceeded","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NoCollateralToWithdraw","inputs":[]},{"type":"error","name":"NotAllValidatorsHaveLeft","inputs":[]},{"type":"error","name":"NotEnoughBalance","inputs":[]},{"type":"error","name":"NotEnoughCollateral","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotEnoughGenesisValidators","inputs":[]},{"type":"error","name":"NotGateway","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"NotOwnerOfPublicKey","inputs":[]},{"type":"error","name":"NotStakedBefore","inputs":[]},{"type":"error","name":"NotValidator","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"SubnetAlreadyBootstrapped","inputs":[]},{"type":"error","name":"SubnetAlreadyKilled","inputs":[]},{"type":"error","name":"WithdrawExceedingCollateral","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657614eee908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146119f25750806310fd426114611881578063268119361461166e5780632e17de7814611641578063350a14bf1461160e5780633a4b66f1146115ea5780633f4ba83a1461157257806341c0e1b5146114e15780634c860af61461148d5780634e71d92d146112f95780635c975abb146112c95780636170b16214610edf57806366783c9b14610dfe5780638456cb5914610d96578063b9ee2bb914610997578063c7ebdaef14610951578063cc2dc2b9146108d1578063d66d9e1914610886578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b857600080516020614e9983398151915260018154146101a657806001839255610133611cfe565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611ad4565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611b75565b906024356001600160401b03811161087e5761020c903690600401611b75565b916044356001600160401b03811161087a5761022c903690600401611b75565b9094610236613c28565b61023e611cb9565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b610297610291828888614e07565b90614ce4565b6001600160a01b036102b26102ad848689614e48565b611eb5565b166001600160a01b03909116036105135761031c6102d46102ad838588614e48565b6102df838989614e07565b6102ed85888d969496614e48565b356103086040519586936040602086015260608501916139a2565b90604083015203601f198101845283611b02565b6001600160401b03601c541660405161033481611ae7565b600381526020810184815260018060a01b038416604083015282600052601d60205260406000209082516103678161203b565b6103708161203b565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f600186015461205b565b6001860161214e565b602090601f8311600114610476579282600080516020614e5983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361042182612273565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190613cc6565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614e598339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061058881613ceb565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611ad4565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a610291828786614e07565b6001600160a01b03919082806106246102ad858d8d614e48565b169116036105135761064261063d6102ad838b8b614e48565b61300e565b610812576106d99161066c61065b6102ad848c8c614e48565b610666848a89614e07565b91613d98565b61068f61067d6102ad848c8c614e48565b61068884878a614e48565b3590612764565b61069d6102ad838b8b614e48565b906106a9838689614e48565b35906106b6848a89614e07565b9590604051936106c585611ae7565b845260209683888601961686523691611b3e565b9260408301938452600154600160401b8110156104fd578060016107009201600155613e75565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e82610748855461205b565b8561214e565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b610862610841613c49565b60405163015538b160e01b8152602060048201529182916024830190613cc6565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614e9983398151915260018154146101a6578060018392556108bd611cfe565b6108c5613c28565b6108cd61460e565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611be4565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611c3a565b90602435906149a9565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a9061228b565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611b75565b91906044356001600160401b038111610d9257610a0e903690600401611b75565b91610a17611cfe565b60055494600b5495610a298782611d29565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e04565b0393610a66601f1995868101835282611b02565b5190209882611d29565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611be4565b933691611c3a565b916149a9565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e55565b16936001600160401b03199485845416178355610b056001926024848601930190611e69565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e55565b16908254161790556024600435013582526022602052610b9e604083203390611fb6565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e04565b03925af180156105df57610c03575b5050610bfe61094a91611e55565b61228b565b610c0c90611ad4565b610882578138610bf0565b84959697506020610c2b8495969394611eb5565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611e9e565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b02565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fb6565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf611cb9565b610db7611cfe565b600080516020614e79833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614e9983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e718282546127f8565b9055610e7f816002546127f8565b6002553384526003602052604084205415610e9b575b33613bae565b610ea433614d20565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614e9983398151915254146101a6576001600080516020614e9983398151915255610f5b611cfe565b610f63613c28565b60ff60125460081c16806112bc575b34156112aa57604182600401350361129857610f95826004013560248401614ce4565b336001600160a01b0390911603610513576110a757806024610fbd9260040135910133613d98565b610fc73433613eb0565b80601454600a54811015610fed575b50505b80600080516020614e998339815191525580f35b61ffff601654166001600160401b03600c541611610fd65761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061104281613ceb565b0390a160018060a01b03600e54169061105e6002548092611d29565b91803b156110a257602484926040519485938492637903ab2760e11b845260048401525af180156105df5715610fd65761109790611ad4565b6101b8578038610fd6565b505050fd5b6110b936826004013560248401611b3e565b6001600160401b03601c541690604051906110d382611ae7565b600282526020820190815233604083015282600052601d60205260406000209082516110fe8161203b565b6111078161203b565b60ff80198454169116178255518051906001600160401b0382116104fd576111368261039f600186015461205b565b602090601f8311600114611210579282600080516020614e598339815191529795936002936111ed9896600092611205575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036111b182612273565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139a2565b9060608301520390a161120034336140ca565b610fd9565b015190503880611168565b906001840160005260206000209160005b601f19851681106112805750836002936111ed989693600193600080516020614e598339815191529b9997601f19811610611267575b505050811b016001820155611180565b015160001960f88460031b161c19169055388080611257565b91926020600181928685015181550194019201611221565b6040516318dca5e960e21b8152600490fd5b604051635a78c58160e11b8152600490fd5b6112c46142cf565b610f72565b50346101b857806003193601126101b857602060ff600080516020614e7983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614e99833981519152828154146101a65782815561132f611cfe565b336000908152601f602052604090209283549061ffff9081831692831561147b57829060101c16918391808795818a01915b6113f5575b505050866113d7937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113de575b6113bf8133613bae565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f602052604090208590556113b5565b909193948381169682881015611472578760005260208091858252604060002060405161142181611ab9565b89825492838352015493849101524310611467578594938896889461144886958a95611d29565b9c60005252600082604082208281550155011696600019011694611361565b985050509493611366565b96509493611366565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b8576044356002811015610882576114ae611cfe565b600e546001600160a01b031633036114cf5761094a90602435600435614806565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114fa613c28565b61ffff611510816019541682601654169061274e565b16611560576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b85761158b611cb9565b600080516020614e79833981519152805460ff8116156115d85760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115fe611cfe565b611606613c28565b61094a6142e4565b50346101b85760203660031901126101b8576004356001600160401b038116810361163c5761094a9061228b565b600080fd5b50346101b85760203660031901126101b85761165b611cfe565b611663613c28565b61094a60043561433e565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d92576116bc903690600401611b75565b919060443585811161187d576116d6903690600401611b75565b916024860135966006549687891061183257604401906116f68287611e69565b9190506009541680911161186b5761170e8287611e69565b9050141580611844575b611832576117269085611e69565b9050156118205787946040516020810190611753816117458985613a2c565b03601f198101835282611b02565b519020968803611784575050505050506007541461176f575080f35b81526023602052610d4b604082203390611fb6565b61179e9392610a9388969893610a9b939a989a3691611be4565b8060206040516117ad81611ab9565b848152015281600655600755825260236020526117ce604083203390611fb6565b50600e546001600160a01b031690813b156101a257829161180591604051948580948193630bed761560e01b835260048301613a2c565b03925af180156105df57611817575080f35b61094a90611ad4565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118575788061515611718565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d576118c7903690602481600401359101611b3e565b926118d0611cfe565b3383526017825261ffff604084205416156119da578351156119c85733835260248252604083209184519182116119b45761190f82610748855461205b565b80601f83116001146119505750839482939492611945575b50508160011b916000199060031b1c19161790555b610d4b33611f4d565b015190503880611927565b90601f198316958486528286209286905b88821061199c57505083600195969710611983575b505050811b01905561193c565b015160001960f88460031b161c19169055388080611976565b80600185968294968601518155019501930190611961565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611aaa575060ff60125460081c16610ebb573381526003602052604081205415611a51575b338152600360205260408120611a3d348254611d29565b9055611a4b34600254611d29565b60025580f35b600454600160401b811015611a9657611a73816001611a919301600455611ec9565b81546001600160a01b0360039290921b91821b19163390911b179055565b611a26565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611b4a82611b23565b91611b586040519384611b02565b82948184528183011161163c578281602093846000960137010152565b9181601f8401121561163c578235916001600160401b03831161163c576020808501948460051b01011161163c57565b35906001600160401b038216820361163c57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b038216820361163c57565b9291611bef82611bb9565b91611bfd6040519384611b02565b829481845260208094019160051b810192831161163c57905b828210611c235750505050565b838091611c2f84611bd0565b815201910190611c16565b92919092611c4784611bb9565b91611c556040519384611b02565b829480845260208094019060051b83019282841161163c5780915b848310611c7f57505050505050565b82356001600160401b03811161163c57820184601f8201121561163c578691611cae8683858095359101611b3e565b815201920191611c70565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611cec57565b6040516330cd747160e01b8152600490fd5b60ff600080516020614e798339815191525416611d1757565b60405163d93c066560e01b8152600490fd5b91908201809211611d3657565b634e487b7160e01b600052601160045260246000fd5b9035603e198236030181121561163c570190565b9035601e198236030181121561163c5701602081359101916001600160401b03821161163c578160051b3603831361163c57565b60408201916001600160401b03611daa83611ba5565b1681526060611dbe60209384810190611d60565b839195604086839601525201929160005b828110611ddd575050505090565b909192938280600192838060a01b03611df589611bd0565b16815201950193929101611dcf565b6020815260806001600160401b03611e4e6060611e34611e248780611d4c565b85602088015260a0870190611d94565b956020810135604087015260408101358287015201611ba5565b1691015290565b356001600160401b038116810361163c5790565b903590601e198136030182121561163c57018035906001600160401b03821161163c57602001918160051b3603831361163c57565b818110611ea9575050565b60008155600101611e9e565b356001600160a01b038116810361163c5790565b600454811015611f005760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f005760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fb157602554600160401b811015611a96579082611f9d611f8684600160409601602555611f16565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461203557845494600160401b861015612021576001860180825586101561200d57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561204557565b634e487b7160e01b600052602160045260246000fd5b90600182811c9216801561208b575b602083101461207557565b634e487b7160e01b600052602260045260246000fd5b91607f169161206a565b90600092918054916120a68361205b565b91828252600193848116908160001461210857506001146120c8575b50505050565b90919394506000526020928360002092846000945b8386106120f45750505050010190388080806120c2565b8054858701830152940193859082016120dd565b9294505050602093945060ff191683830152151560051b010190388080806120c2565b60005b83811061213e5750506000910152565b818101518382015260200161212e565b9190601f811161215d57505050565b612189926000526020600020906020601f840160051c8301931061218b575b601f0160051c0190611e9e565b565b909150819061217c565b9080821461226f576121a7815461205b565b906001600160401b0382116104fd5781906121cc826121c6865461205b565b8661214e565b600090601f8311600114612203576000926121f8575b50508160011b916000199060031b1c1916179055565b0154905038806121e2565b81526020808220858352818320935090601f1985169083905b82821061225657505090846001959493921061223d575b505050811b019055565b015460001960f88460031b161c19169055388080612233565b849581929585015481556001809101960194019061221c565b5050565b9060016001600160401b0380931601918211611d3657565b601c546001600160401b03828116929080831684106122b65760405163040aaa0560e11b8152600490fd5b808360401c1684106120c25780604093841c165b848282161115612331575050916020916123047f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612273565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b8161234f826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123748161203b565b8085036123e657505060036123a560016123ab94959697019260018060a01b03166000526015602052604060002090565b01612195565b6123c8816001600160401b0316600052601d602052604060002090565b916000908184556001936123dd858201612805565b015501166122ca565b909194506123f38161203b565b60039181830361259157505087519361241b85612414816001809a01612095565b0386611b02565b84518501916020928a8785830192031261163c578387015189811161163c5787019681603f8901121561163c5787858d9901519261246461245b85611b23565b9a519a8b611b02565b838a528d848301011161163c578c926124829184888c01910161212b565b015192816124a28460018060a01b03166000526015602052604060002090565b01918751918a831161257c578a986124c4846124be875461205b565b8761214e565b81601f851160011461250957506124f99798999a84939284926000956124fe575b50501b92600019911b1c1916179055612764565b6123ab565b0151935038806124e5565b91601f9b9493919b1984169b866000528c84600020946000915b8210612561575050846124f99a9b9c9d10612547575b50505050811b019055612764565b01519060f884600019921b161c1916905538808080612539565b8383015186558f9d509487019492830192908101908e612523565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125ad85612414816001809501612095565b6020808680518101031261163c5781818c970151956125cb8161203b565b036126f05784906125dc828561284e565b601e546125e99043611d29565b928751906125f682611ab9565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c16906126399161274e565b169c60009d8e5282870188528d2092518355519101556126589061273b565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af19081156126e5575090849392916126d6575b506123ab565b6126df90611ad4565b386126d0565b8751903d90823e3d90fd5b50508293509161270091926127a8565b600e541690813b1561163c578651916316989f6f60e21b83528260048160009485945af19081156126e5575090849392916126d657506123ab565b90600161ffff80931601918211611d3657565b91909161ffff80809416911601918211611d3657565b9060018060a01b03821660005260156020526040600020818154915581811460001461278f57505050565b81111561279f57612189916128dd565b61218991612c23565b90612189916127f060018060a01b038216928360005260156020526127d581600160406000200154611d29565b93600052601560205283600160406000200155601454611d29565b6014556128dd565b91908203918211611d3657565b61280f815461205b565b9081612819575050565b81601f6000931160011461282b575055565b90808391825261284a601f60208420940160051c840160018501611e9e565b5555565b906128bb6128c39260018060a01b038116906000828152601560205261287b8560016040842001546127f8565b92815260156020526040812060028101848154811590816128d4575b50156128c8575090826003926128b69483558160018401555501612805565b612c23565b6014546127f8565b601455565b92505060010155612c23565b90501538612897565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b0e578360135460081c16846016541610612ada57612922613730565b60019283825260188652828a832054168861293c8261300e565b10612a5457508152601a85528389822054166129ab5750505050506129a67f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461298683612f99565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129b486613783565b926129be8761300e565b935b8186821611612a16575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129a6565b8085612a3586617fff8f95871c1694858852601b8c528720541661300e565b1015612a4e5790612a478392826138e2565b90506129c0565b506129ca565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129a695601a91612a8f613428565b835252205416612acc575b612aa3846133b3565b612aac83612f99565b516001600160a01b03928316815292909116602083015281906040820190565b612ad5846131d8565b612a9a565b50505050506129a67f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394612986836133b3565b97929150612b1f859497969561374c565b97612b298561300e565b97612b338a613344565b8460165416905b858116828111612bec5782811015612bd0575080612b5a612b609261273b565b906136e0565b9b909b5b8b1115612b8357612b75908c613849565b612b7e8b613344565b612b3a565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129a6565b849c919c5260188352612be785888620541661300e565b612b64565b505050505050506129a691929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612986565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e5d578082526017835287868320541615612e4c578415612da45750612c708361374c565b97612c7a8461300e565b985b6001808a83161115612d955781617fff911c1690818452601885528a612ca6848a8720541661300e565b1115612cbb57612cb69082613849565b612c7c565b505091939597509193955b6019541615612d8d57612cd7613730565b60018252601883528581818420541692601b612cf28561300e565b95612cfb61373e565b600183525220541691612d0d8361300e565b11612d5457505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129a6565b915091506129a67ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612d85613428565b612a9a613071565b505050505050565b50509193959750919395612cc6565b829450612dd87f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799613571565b8651908152a160195416612dec5750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e1a61373e565b6001835252205416612e40612e2e8261300e565b92612e37613071565b612986836133b3565b0390a1388080806120c2565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f5e575061fffe9193612e7a86613783565b93612e848761300e565b9480966001958692831b168160195416925b612eea575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129a6565b818116838111612f58578d9084811015612f3c57505080612f0d612f139261273b565b9061335b565b9890985b881015612f3757612f2890896138e2565b612f3188613344565b86612e96565b612e9b565b8652601b8552852054909890612f5390871661300e565b612f17565b50612e9b565b94915050612f929194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506131d8565b51908152a1565b6121899061300861ffff91612fb1836019541661273b565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b825416179055601954161760195561300e565b906132ef565b60ff6013541660038110156120455760010361303f576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d3657565b61ffff80601954169081156131c657906001906130908183111561382c565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161312a91908a61311b8361305d565b169060195416176019556137a8565b84825280865261313e84848420541661300e565b95859860028160195416995b61315c575b5050505050505050505050565b8181168a81116131c0578a8110156131a5575080612f0d61317c9261273b565b9a909a5b8910156131a057613191908b6138e2565b61319a8a613344565b8761314a565b61314f565b859b919b528383526131bb87878720541661300e565b613180565b5061314f565b6040516340d9b01160e01b8152600490fd5b6131e190613783565b61ffff908160195416916131f583836138e2565b806131ff8461305d565b1661ffff196019541617601955613215836137a8565b8082168093146132ea579161fffe91600091808352601b9060209382855260018060a01b039260409261325561324f86868620541661300e565b876132ef565b825280865261326884848420541661300e565b9585986001988997881b168160195416995b61328b575050505050505050505050565b8181168a81116131c0578a8110156132cf575080612f0d6132ab9261273b565b9a909a5b8910156131a0576132c0908b6138e2565b6132c98a613344565b8761327a565b859b919b528383526132e587878720541661300e565b6132af565b505050565b9190915b60018061ffff8316111561333e5781617fff911c1690836133296000848152601b602052604060018060a01b039120541661300e565b101561333e5761333990826138e2565b6132f3565b50509050565b60011b906201fffe61fffe831692168203611d3657565b91909161ffff92838216600052601b60205261339e60018060a01b03613387816040600020541661300e565b958316600052601b6020526040600020541661300e565b908185106133ac5750509190565b9350919050565b6121899061342261ffff916133cb836016541661273b565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b825416179055601654161760165561300e565b90613691565b61ffff80601654169081156131c657906001906134478183111561382c565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a8952845416909117909255929587959394929392916134e191908a6134d28361305d565b169060165416176016556137ea565b8482528086526134f584848420541661300e565b95859860028160165416995b613512575050505050505050505050565b8181168a81116131c0578a811015613556575080612b5a6135329261273b565b9a909a5b8911156131a057613547908b613849565b6135508a613344565b87613501565b859b919b5283835261356c87878720541661300e565b613536565b61357a9061374c565b9061ffff9081601654169061358f8285613849565b826135998361305d565b1661ffff1960165416176016556135af826137ea565b82841680921461368b5760009291929183835260189260209484865260018060a01b03916040916135ed6135e785858520541661300e565b8a613691565b815285875261360083838320541661300e565b9561360a89613344565b978560165416985b8681168a811161367d578a811015613662575080612b5a6136329261273b565b9a909a5b89111561365557613647908b613849565b6136508a613344565b613612565b5050505050505092505050565b849b919b5282825261367886868620541661300e565b613636565b505050505050505092505050565b92505050565b9190915b60018061ffff8316111561333e5781617fff911c1690836136cb60008481526018602052604060018060a01b039120541661300e565b111561333e576136db9082613849565b613695565b919061ffff808416600052601860205261372160018060a01b0361370a816040600020541661300e565b92841660005260186020526040600020541661300e565b93848211156133ac5750509190565b61ffff60165416156131c657565b61ffff60195416156131c657565b6001600160a01b031660009081526017602052604090205461ffff1690811561377157565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff1690811561377157565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561383357565b634e487b7160e01b600052600160045260246000fd5b61386e61ffff8080601654169316936138648486111561382c565b169182111561382c565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b6138fd61ffff8080601954169316936138648486111561382c565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e198236030181121561163c5701602081359101916001600160401b03821161163c57813603831361163c57565b908060209392818452848401376000828201840152601f01601f1916010190565b6139ec6139e16139d38380611d4c565b604085526040850190611d94565b916020810190611d4c565b91602081830391015281359160ff831680930361163c57613a19604091613a299484526020810190613971565b91909281602082015201916139a2565b90565b6020808252613a3b8380611d4c565b6060918281850152613a5260809283860190611d94565b613a69604096838101358888015287810190611d60565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613aa457505050505050505050505090565b909192939495969798999a82828203018752613ac08c85611d4c565b90813560de198336030181121561163c578782528201918a90888e6001600160401b03613b37613b27613b14613b0b613af98b80611d4c565b60e080988c01526101208b01906139c3565b978a018a611d4c565b96603f1997888a830301868b01526139c3565b928d8901358d8901528801611ba5565b169060a091828701528a8701359263ffffffff60e01b841680940361163c578f95613b6e613b7e9460c096878b01528a018a613971565b92909189850301908901526139a2565b94013561010084015201359081151580920361163c578a01529a8801999897966001019587019493929190613a8f565b814710613c10576000918291829182916001600160a01b03165af13d15613c0b573d613bd981611b23565b90613be76040519283611b02565b8152600060203d92013e5b15613bf957565b604051630a12f52160e11b8152600490fd5b613bf2565b60405163cd78605960e01b8152306004820152602490fd5b60ff60125460101c16613c3757565b60405163248c8efb60e11b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613cdf8151809281855285808601910161212b565b601f01601f1916010190565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613d4757505050505050505090565b909192939495856003613d86839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01612095565b9a019401940192969594939190613d35565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd57613dd981613dd3845461205b565b8461214e565b6000601f8211600114613e125781929394600092613e075750508160011b916000199060031b1c1916179055565b0135905038806121e2565b601f198216948382526020918281209281905b888210613e5d57505083600195969710613e4357505050811b019055565b0135600019600384901b60f8161c19169055388080612233565b80600184968294958701358155019501920190613e25565b600154811015611f00576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b90613ec590613ebf81846140a3565b826127a8565b60ff60125460081c1615613ed65750565b60018054600082815b838110614053575b505015613ef357505050565b6001600160a01b038316600090815260156020526040902082810154613f4994909160030160405192613f2584611ae7565b8352602093613f508585019260018060a01b03809516845260405198898092612095565b0388611b02565b60408401968752600160401b8110156104fd578086613f7192018755613e75565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd57613fb8836124be875461205b565b81601f8411600114613ff15750928293918392600094613fe6575b50501b916000199060031b1c1916179055565b015192503880613fd3565b919083601f1981168760005284600020946000905b88838310614039575050501061402057505050811b019055565b015160001960f88460031b161c19169055388080612233565b858701518855909601959485019487935090810190614006565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b0387811691161461409957018390613edf565b5090508238613ee7565b60018060a01b031660005260156020526140c66002604060002001918254611d29565b9055565b919060405192816020850152602084526140e384611ab9565b6001600160401b03601c541693604051946140fd86611ae7565b60008652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516141318161203b565b61413a8161203b565b60ff80198a54169116178855519687516001600160401b0381116104fd5761417281614169600185015461205b565b6001850161214e565b6020601f82116001146142445761422b949282600080516020614e598339815191529795936002936121899c9d600092614239575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036141f082612273565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613cc6565b9060608301520390a16140a3565b0151905038806141a7565b6001830160005260206000209960005b601f19841681106142b75750926001836121899b9c60029461422b9997600080516020614e598339815191529b9997601f1981161061429e575b505050811b0160018201556141bf565b015160001960f88460031b161c1916905538808061428e565b828201518c556001909b019a60209283019201614254565b60ff6013541660038110156120455761083657565b6142ec6142cf565b34156112aa57336000908152601560205260409020600201541561432c5760ff60125460081c16156143225761218934336140ca565b6121893433613eb0565b60405163528fc16560e01b8152600490fd5b6143466142cf565b80156143ad573360009081526015602052604090206002015480156119da5781101561439c5760ff60125460081c1615614384576121899033614412565b8061439261218992336143bf565b610e95813361284e565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b03166000818152601560205260409020600201549091808210614400576143ec916127f8565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261442b84611ab9565b6001600160401b03601c5416936040519461444586611ae7565b60018652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516144798161203b565b6144828161203b565b60ff80198a54169116178855519687516001600160401b0381116104fd576144b181614169600185015461205b565b6020601f82116001146145835761456a949282600080516020614e598339815191529795936002936121899c9d600092614578575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361452f82612273565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613cc6565b9060608301520390a16143bf565b0151905038806144e6565b6001830160005260206000209960005b601f19841681106145f65750926001836121899b9c60029461456a9997600080516020614e598339815191529b9997601f198116106145dd575b505050811b0160018201556144fe565b015160001960f88460031b161c191690553880806145cd565b828201518c556001909b019a60209283019201614593565b60ff60125460081c166146fb575b3360009081526015602052604090206002015480156119da5761463e33614708565b5060009033825260246020528160408120614659815461205b565b806146be575b50505060ff60125460081c161561467b57612189915033614412565b604061218992338152600360205220548061469c575b5061439281336143bf565b806146ac6146b8926002546127f8565b600255610e9533614d20565b38614691565b82601f82116001146146d6575050555b81388061465f565b90918082526146f4601f60208420940160051c840160018501611e9e565b55556146ce565b6147036142cf565b61461c565b60008181526026602052604081205490919080156147ed57600019908082018181116147d957602554908382019182116147c557808203614791575b505050602554801561477d5781019061475c82611f16565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6147af6147a0611f8693611f16565b90549060031b1c928392611f16565b9055845260266020526040842055388080614744565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611f005760209160051b010190565b91909182156132ea576040908151906020938483018381106001600160401b038211176104fd578452600092839052600281101561499557806148f65750600b54614850916127f8565b8152602283528181208251808286829454938481520190855286852092855b888282106148e05750505061488692500382611b02565b928351948515612d8d57858110612d8d5785900493825b8681106148ad5750505050505050565b6001906001600160a01b036148c282856147f2565b51168552602184528585206148d8888254611d29565b90550161489d565b855484526001958601958795509301920161486f565b84600185921460001461494657606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b918251916149b683611bb9565b936040946149c686519182611b02565b848152601f196149d586611bb9565b0194602095368784013760005b818110614aac57505060009461ffff8060165416600192839182945b614a5b575b505050505060ff600e5460a01c1694858102958187041490151715611d36576064614a2f950491614b23565b9015614a39575050565b60068110156120455760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614aa45760009081526018855220548493929186918591614a9a91614a94906001600160a01b031661300e565b90611d29565b9b011694936149fe565b505098614a03565b6001600160a01b0380614abf83876147f2565b51166000526017885261ffff89600020541615614aff5790614aee600192614ae783886147f2565b511661300e565b614af882866147f2565b52016149e2565b8890614b0d602493876147f2565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614c0b5782518514801590614c00575b614bf3579392919085945b848610614b6b575050505050501015614b6357600090600590565b600190600090565b909192939495614b85614b7e88846147f2565b5184614c18565b50614b8f8161203b565b614be2576001600160a01b0380614ba68a886147f2565b5116911603614bd257614bc6600191614bbf89886147f2565b5190611d29565b96019493929190614b48565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614b3d565b5050505050905090600290565b8151919060418303614c4957614c4292506020820151906060604084015193015160001a90614c54565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614cd857926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614ccc5780516001600160a01b03811615614cc357918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b90614cf16041821461382c565b8060011161163c57614d0c9136916000190190600101611b3e565b80516020909101206001600160a01b031690565b60049081549160005b838110614d365750505050565b614d3f81611ec9565b90546003916001600160a01b039190831b1c811685821614614d65575050600101614d29565b929350939060001991828101908111614df25790614d9684614d89614db594611ec9565b905490891b1c1691611ec9565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015614ddd570192614dc884611ec9565b81939154921b1b1916905555388080806120c2565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b9190811015611f005760051b81013590601e198136030182121561163c5701908135916001600160401b03831161163c57602001823603811361163c579190565b9190811015611f005760051b019056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a2646970667358221220e314a0dcaf7e64a05613b4a7d0d301b3da5d183e2f2dc5a8c4f639b5168fc4e164736f6c63430008130033","sourceMap":"215:373:89:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":337,"length":20}]}}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146119f25750806310fd426114611881578063268119361461166e5780632e17de7814611641578063350a14bf1461160e5780633a4b66f1146115ea5780633f4ba83a1461157257806341c0e1b5146114e15780634c860af61461148d5780634e71d92d146112f95780635c975abb146112c95780636170b16214610edf57806366783c9b14610dfe5780638456cb5914610d96578063b9ee2bb914610997578063c7ebdaef14610951578063cc2dc2b9146108d1578063d66d9e1914610886578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b857600080516020614e9983398151915260018154146101a657806001839255610133611cfe565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611ad4565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610882576101ec903690600401611b75565b906024356001600160401b03811161087e5761020c903690600401611b75565b916044356001600160401b03811161087a5761022c903690600401611b75565b9094610236613c28565b61023e611cb9565b60ff6013541660038110156108665760010361083657818103610824578481036108245760125460081c60ff161561052557865b818110610283575050505050505080f35b610297610291828888614e07565b90614ce4565b6001600160a01b036102b26102ad848689614e48565b611eb5565b166001600160a01b03909116036105135761031c6102d46102ad838588614e48565b6102df838989614e07565b6102ed85888d969496614e48565b356103086040519586936040602086015260608501916139a2565b90604083015203601f198101845283611b02565b6001600160401b03601c541660405161033481611ae7565b600381526020810184815260018060a01b038416604083015282600052601d60205260406000209082516103678161203b565b6103708161203b565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f600186015461205b565b6001860161214e565b602090601f8311600114610476579282600080516020614e5983398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361042182612273565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190613cc6565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614e598339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105fc575050505050506001600160401b03600c541610156105ea5761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061058881613ceb565b0390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af180156105df576105cf57505080f35b6105d890611ad4565b6101b85780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b61060a610291828786614e07565b6001600160a01b03919082806106246102ad858d8d614e48565b169116036105135761064261063d6102ad838b8b614e48565b61300e565b610812576106d99161066c61065b6102ad848c8c614e48565b610666848a89614e07565b91613d98565b61068f61067d6102ad848c8c614e48565b61068884878a614e48565b3590612764565b61069d6102ad838b8b614e48565b906106a9838689614e48565b35906106b6848a89614e07565b9590604051936106c585611ae7565b845260209683888601961686523691611b3e565b9260408301938452600154600160401b8110156104fd578060016107009201600155613e75565b9290926107fc57600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104fd5761074e82610748855461205b565b8561214e565b80601f831160011461078d57508190600195600092610782575b5050600019600383901b1c191690841b1790555b0161052c565b015190503880610768565b91929394601f1984168560005283600020936000905b8282106107e4575050916001969594929183889593106107cb575b505050811b01905561077c565b015160001960f88460031b161c191690553880806107be565b806001869782949787015181550196019401906107a3565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b610862610841613c49565b60405163015538b160e01b8152602060048201529182916024830190613cc6565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b857600080516020614e9983398151915260018154146101a6578060018392556108bd611cfe565b6108c5613c28565b6108cd61460e565b5580f35b50346101b85760603660031901126101b8576001600160401b0360043581811161094d573660238201121561094d57610914903690602481600401359101611be4565b60443591821161094d573660238301121561094d5761094061094a923690602481600401359101611c3a565b90602435906149a9565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c5416019081116109835761094a9061228b565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610882576001600160401b03600435116108825760806004356004019160043536030112610882576024356001600160401b03811161094d576109ed903690600401611b75565b91906044356001600160401b038111610d9257610a0e903690600401611b75565b91610a17611cfe565b60055494600b5495610a298782611d29565b60246004350135141580610d82575b610d705760405190610a706020830183610a528a83611e04565b0393610a66601f1995868101835282611b02565b5190209882611d29565b6004356024013503610c6d57505091610a93610a9b92610aa19697943691611be4565b933691611c3a565b916149a9565b602460043501358252816020526040822090803560421960043536030181121561087e576004350191600483016001600160401b03610adf82611e55565b16936001600160401b03199485845416178355610b056001926024848601930190611e69565b91906001600160401b038311610c5957600160401b8311610c59578154838355808410610c3e575b509087959493929190865260208620865b838110610c17575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b7a86611e55565b16908254161790556024600435013582526022602052610b9e604083203390611fb6565b5060043560240135600555600e546001600160a01b0316803b1561094d576040516347dc9b4f60e01b81529183918391829084908290610be19060048301611e04565b03925af180156105df57610c03575b5050610bfe61094a91611e55565b61228b565b610c0c90611ad4565b610882578138610bf0565b84959697506020610c2b8495969394611eb5565b848301558a989796959401929101610b3e565b82895260208920610c53918101908501611e9e565b38610b2d565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c8557505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610d4f575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610d24915082611b02565b51902014610d2f5780f35b6024600435013581526022602052610d4b604082203390611fb6565b5080f35b82546001600160a01b03168552889550602090940193918101918101610ce3565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610a38565b8480fd5b50346101b857806003193601126101b857610daf611cb9565b610db7611cfe565b600080516020614e79833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101b85760203660031901126101b857600435600080516020614e9983398151915260018154146101a657600181558115610ecd5760ff60125460081c16610ebb57338352600360205281604084205410610ea9576108cd8392338452600360205260408420610e718282546127f8565b9055610e7f816002546127f8565b6002553384526003602052604084205415610e9b575b33613bae565b610ea433614d20565b610e95565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116108825736602382011215610882576001600160401b0381600401351161088257366024826004013583010111610882576001600080516020614e9983398151915254146101a6576001600080516020614e9983398151915255610f5b611cfe565b610f63613c28565b60ff60125460081c16806112bc575b34156112aa57604182600401350361129857610f95826004013560248401614ce4565b336001600160a01b0390911603610513576110a757806024610fbd9260040135910133613d98565b610fc73433613eb0565b80601454600a54811015610fed575b50505b80600080516020614e998339815191525580f35b61ffff601654166001600160401b03600c541611610fd65761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061104281613ceb565b0390a160018060a01b03600e54169061105e6002548092611d29565b91803b156110a257602484926040519485938492637903ab2760e11b845260048401525af180156105df5715610fd65761109790611ad4565b6101b8578038610fd6565b505050fd5b6110b936826004013560248401611b3e565b6001600160401b03601c541690604051906110d382611ae7565b600282526020820190815233604083015282600052601d60205260406000209082516110fe8161203b565b6111078161203b565b60ff80198454169116178255518051906001600160401b0382116104fd576111368261039f600186015461205b565b602090601f8311600114611210579282600080516020614e598339815191529795936002936111ed9896600092611205575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036111b182612273565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016139a2565b9060608301520390a161120034336140ca565b610fd9565b015190503880611168565b906001840160005260206000209160005b601f19851681106112805750836002936111ed989693600193600080516020614e598339815191529b9997601f19811610611267575b505050811b016001820155611180565b015160001960f88460031b161c19169055388080611257565b91926020600181928685015181550194019201611221565b6040516318dca5e960e21b8152600490fd5b604051635a78c58160e11b8152600490fd5b6112c46142cf565b610f72565b50346101b857806003193601126101b857602060ff600080516020614e7983398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020614e99833981519152828154146101a65782815561132f611cfe565b336000908152601f602052604090209283549061ffff9081831692831561147b57829060101c16918391808795818a01915b6113f5575b505050866113d7937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff191617179055156113de575b6113bf8133613bae565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f602052604090208590556113b5565b909193948381169682881015611472578760005260208091858252604060002060405161142181611ab9565b89825492838352015493849101524310611467578594938896889461144886958a95611d29565b9c60005252600082604082208281550155011696600019011694611361565b985050509493611366565b96509493611366565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b8576044356002811015610882576114ae611cfe565b600e546001600160a01b031633036114cf5761094a90602435600435614806565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b8576114fa613c28565b61ffff611510816019541682601654169061274e565b16611560576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af180156105df576105cf5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b85761158b611cb9565b600080516020614e79833981519152805460ff8116156115d85760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b8576115fe611cfe565b611606613c28565b61094a6142e4565b50346101b85760203660031901126101b8576004356001600160401b038116810361163c5761094a9061228b565b600080fd5b50346101b85760203660031901126101b85761165b611cfe565b611663613c28565b61094a60043561433e565b50346101b857600319606036820112610882576004356001600160401b039182821161087e5760608260040191833603011261087e57602435838111610d92576116bc903690600401611b75565b919060443585811161187d576116d6903690600401611b75565b916024860135966006549687891061183257604401906116f68287611e69565b9190506009541680911161186b5761170e8287611e69565b9050141580611844575b611832576117269085611e69565b9050156118205787946040516020810190611753816117458985613a2c565b03601f198101835282611b02565b519020968803611784575050505050506007541461176f575080f35b81526023602052610d4b604082203390611fb6565b61179e9392610a9388969893610a9b939a989a3691611be4565b8060206040516117ad81611ab9565b848152015281600655600755825260236020526117ce604083203390611fb6565b50600e546001600160a01b031690813b156101a257829161180591604051948580948193630bed761560e01b835260048301613a2c565b03925af180156105df57611817575080f35b61094a90611ad4565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118575788061515611718565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b039160043583811161094d573660238201121561094d576118c7903690602481600401359101611b3e565b926118d0611cfe565b3383526017825261ffff604084205416156119da578351156119c85733835260248252604083209184519182116119b45761190f82610748855461205b565b80601f83116001146119505750839482939492611945575b50508160011b916000199060031b1c19161790555b610d4b33611f4d565b015190503880611927565b90601f198316958486528286209286905b88821061199c57505083600195969710611983575b505050811b01905561193c565b015160001960f88460031b161c19169055388080611976565b80600185968294968601518155019501930190611961565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610882573415611aaa575060ff60125460081c16610ebb573381526003602052604081205415611a51575b338152600360205260408120611a3d348254611d29565b9055611a4b34600254611d29565b60025580f35b600454600160401b811015611a9657611a73816001611a919301600455611ec9565b81546001600160a01b0360039290921b91821b19163390911b179055565b611a26565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611b4a82611b23565b91611b586040519384611b02565b82948184528183011161163c578281602093846000960137010152565b9181601f8401121561163c578235916001600160401b03831161163c576020808501948460051b01011161163c57565b35906001600160401b038216820361163c57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b038216820361163c57565b9291611bef82611bb9565b91611bfd6040519384611b02565b829481845260208094019160051b810192831161163c57905b828210611c235750505050565b838091611c2f84611bd0565b815201910190611c16565b92919092611c4784611bb9565b91611c556040519384611b02565b829480845260208094019060051b83019282841161163c5780915b848310611c7f57505050505050565b82356001600160401b03811161163c57820184601f8201121561163c578691611cae8683858095359101611b3e565b815201920191611c70565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611cec57565b6040516330cd747160e01b8152600490fd5b60ff600080516020614e798339815191525416611d1757565b60405163d93c066560e01b8152600490fd5b91908201809211611d3657565b634e487b7160e01b600052601160045260246000fd5b9035603e198236030181121561163c570190565b9035601e198236030181121561163c5701602081359101916001600160401b03821161163c578160051b3603831361163c57565b60408201916001600160401b03611daa83611ba5565b1681526060611dbe60209384810190611d60565b839195604086839601525201929160005b828110611ddd575050505090565b909192938280600192838060a01b03611df589611bd0565b16815201950193929101611dcf565b6020815260806001600160401b03611e4e6060611e34611e248780611d4c565b85602088015260a0870190611d94565b956020810135604087015260408101358287015201611ba5565b1691015290565b356001600160401b038116810361163c5790565b903590601e198136030182121561163c57018035906001600160401b03821161163c57602001918160051b3603831361163c57565b818110611ea9575050565b60008155600101611e9e565b356001600160a01b038116810361163c5790565b600454811015611f005760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611f005760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fb157602554600160401b811015611a96579082611f9d611f8684600160409601602555611f16565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461203557845494600160401b861015612021576001860180825586101561200d57836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561204557565b634e487b7160e01b600052602160045260246000fd5b90600182811c9216801561208b575b602083101461207557565b634e487b7160e01b600052602260045260246000fd5b91607f169161206a565b90600092918054916120a68361205b565b91828252600193848116908160001461210857506001146120c8575b50505050565b90919394506000526020928360002092846000945b8386106120f45750505050010190388080806120c2565b8054858701830152940193859082016120dd565b9294505050602093945060ff191683830152151560051b010190388080806120c2565b60005b83811061213e5750506000910152565b818101518382015260200161212e565b9190601f811161215d57505050565b612189926000526020600020906020601f840160051c8301931061218b575b601f0160051c0190611e9e565b565b909150819061217c565b9080821461226f576121a7815461205b565b906001600160401b0382116104fd5781906121cc826121c6865461205b565b8661214e565b600090601f8311600114612203576000926121f8575b50508160011b916000199060031b1c1916179055565b0154905038806121e2565b81526020808220858352818320935090601f1985169083905b82821061225657505090846001959493921061223d575b505050811b019055565b015460001960f88460031b161c19169055388080612233565b849581929585015481556001809101960194019061221c565b5050565b9060016001600160401b0380931601918211611d3657565b601c546001600160401b03828116929080831684106122b65760405163040aaa0560e11b8152600490fd5b808360401c1684106120c25780604093841c165b848282161115612331575050916020916123047f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612273565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b8161234f826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123748161203b565b8085036123e657505060036123a560016123ab94959697019260018060a01b03166000526015602052604060002090565b01612195565b6123c8816001600160401b0316600052601d602052604060002090565b916000908184556001936123dd858201612805565b015501166122ca565b909194506123f38161203b565b60039181830361259157505087519361241b85612414816001809a01612095565b0386611b02565b84518501916020928a8785830192031261163c578387015189811161163c5787019681603f8901121561163c5787858d9901519261246461245b85611b23565b9a519a8b611b02565b838a528d848301011161163c578c926124829184888c01910161212b565b015192816124a28460018060a01b03166000526015602052604060002090565b01918751918a831161257c578a986124c4846124be875461205b565b8761214e565b81601f851160011461250957506124f99798999a84939284926000956124fe575b50501b92600019911b1c1916179055612764565b6123ab565b0151935038806124e5565b91601f9b9493919b1984169b866000528c84600020946000915b8210612561575050846124f99a9b9c9d10612547575b50505050811b019055612764565b01519060f884600019921b161c1916905538808080612539565b8383015186558f9d509487019492830192908101908e612523565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125ad85612414816001809501612095565b6020808680518101031261163c5781818c970151956125cb8161203b565b036126f05784906125dc828561284e565b601e546125e99043611d29565b928751906125f682611ab9565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c16906126399161274e565b169c60009d8e5282870188528d2092518355519101556126589061273b565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561094d578291602483928a5195869384926345f5448560e01b845260048401525af19081156126e5575090849392916126d6575b506123ab565b6126df90611ad4565b386126d0565b8751903d90823e3d90fd5b50508293509161270091926127a8565b600e541690813b1561163c578651916316989f6f60e21b83528260048160009485945af19081156126e5575090849392916126d657506123ab565b90600161ffff80931601918211611d3657565b91909161ffff80809416911601918211611d3657565b9060018060a01b03821660005260156020526040600020818154915581811460001461278f57505050565b81111561279f57612189916128dd565b61218991612c23565b90612189916127f060018060a01b038216928360005260156020526127d581600160406000200154611d29565b93600052601560205283600160406000200155601454611d29565b6014556128dd565b91908203918211611d3657565b61280f815461205b565b9081612819575050565b81601f6000931160011461282b575055565b90808391825261284a601f60208420940160051c840160018501611e9e565b5555565b906128bb6128c39260018060a01b038116906000828152601560205261287b8560016040842001546127f8565b92815260156020526040812060028101848154811590816128d4575b50156128c8575090826003926128b69483558160018401555501612805565b612c23565b6014546127f8565b601455565b92505060010155612c23565b90501538612897565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b0e578360135460081c16846016541610612ada57612922613730565b60019283825260188652828a832054168861293c8261300e565b10612a5457508152601a85528389822054166129ab5750505050506129a67f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461298683612f99565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129b486613783565b926129be8761300e565b935b8186821611612a16575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016129a6565b8085612a3586617fff8f95871c1694858852601b8c528720541661300e565b1015612a4e5790612a478392826138e2565b90506129c0565b506129ca565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506129a695601a91612a8f613428565b835252205416612acc575b612aa3846133b3565b612aac83612f99565b516001600160a01b03928316815292909116602083015281906040820190565b612ad5846131d8565b612a9a565b50505050506129a67f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394612986836133b3565b97929150612b1f859497969561374c565b97612b298561300e565b97612b338a613344565b8460165416905b858116828111612bec5782811015612bd0575080612b5a612b609261273b565b906136e0565b9b909b5b8b1115612b8357612b75908c613849565b612b7e8b613344565b612b3a565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016129a6565b849c919c5260188352612be785888620541661300e565b612b64565b505050505050506129a691929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612986565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612e5d578082526017835287868320541615612e4c578415612da45750612c708361374c565b97612c7a8461300e565b985b6001808a83161115612d955781617fff911c1690818452601885528a612ca6848a8720541661300e565b1115612cbb57612cb69082613849565b612c7c565b505091939597509193955b6019541615612d8d57612cd7613730565b60018252601883528581818420541692601b612cf28561300e565b95612cfb61373e565b600183525220541691612d0d8361300e565b11612d5457505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016129a6565b915091506129a67ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612d85613428565b612a9a613071565b505050505050565b50509193959750919395612cc6565b829450612dd87f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799613571565b8651908152a160195416612dec5750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612e1a61373e565b6001835252205416612e40612e2e8261300e565b92612e37613071565b612986836133b3565b0390a1388080806120c2565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612f5e575061fffe9193612e7a86613783565b93612e848761300e565b9480966001958692831b168160195416925b612eea575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016129a6565b818116838111612f58578d9084811015612f3c57505080612f0d612f139261273b565b9061335b565b9890985b881015612f3757612f2890896138e2565b612f3188613344565b86612e96565b612e9b565b8652601b8552852054909890612f5390871661300e565b612f17565b50612e9b565b94915050612f929194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506131d8565b51908152a1565b6121899061300861ffff91612fb1836019541661273b565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b825416179055601954161760195561300e565b906132ef565b60ff6013541660038110156120455760010361303f576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d3657565b61ffff80601954169081156131c657906001906130908183111561382c565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161312a91908a61311b8361305d565b169060195416176019556137a8565b84825280865261313e84848420541661300e565b95859860028160195416995b61315c575b5050505050505050505050565b8181168a81116131c0578a8110156131a5575080612f0d61317c9261273b565b9a909a5b8910156131a057613191908b6138e2565b61319a8a613344565b8761314a565b61314f565b859b919b528383526131bb87878720541661300e565b613180565b5061314f565b6040516340d9b01160e01b8152600490fd5b6131e190613783565b61ffff908160195416916131f583836138e2565b806131ff8461305d565b1661ffff196019541617601955613215836137a8565b8082168093146132ea579161fffe91600091808352601b9060209382855260018060a01b039260409261325561324f86868620541661300e565b876132ef565b825280865261326884848420541661300e565b9585986001988997881b168160195416995b61328b575050505050505050505050565b8181168a81116131c0578a8110156132cf575080612f0d6132ab9261273b565b9a909a5b8910156131a0576132c0908b6138e2565b6132c98a613344565b8761327a565b859b919b528383526132e587878720541661300e565b6132af565b505050565b9190915b60018061ffff8316111561333e5781617fff911c1690836133296000848152601b602052604060018060a01b039120541661300e565b101561333e5761333990826138e2565b6132f3565b50509050565b60011b906201fffe61fffe831692168203611d3657565b91909161ffff92838216600052601b60205261339e60018060a01b03613387816040600020541661300e565b958316600052601b6020526040600020541661300e565b908185106133ac5750509190565b9350919050565b6121899061342261ffff916133cb836016541661273b565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b825416179055601654161760165561300e565b90613691565b61ffff80601654169081156131c657906001906134478183111561382c565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a8952845416909117909255929587959394929392916134e191908a6134d28361305d565b169060165416176016556137ea565b8482528086526134f584848420541661300e565b95859860028160165416995b613512575050505050505050505050565b8181168a81116131c0578a811015613556575080612b5a6135329261273b565b9a909a5b8911156131a057613547908b613849565b6135508a613344565b87613501565b859b919b5283835261356c87878720541661300e565b613536565b61357a9061374c565b9061ffff9081601654169061358f8285613849565b826135998361305d565b1661ffff1960165416176016556135af826137ea565b82841680921461368b5760009291929183835260189260209484865260018060a01b03916040916135ed6135e785858520541661300e565b8a613691565b815285875261360083838320541661300e565b9561360a89613344565b978560165416985b8681168a811161367d578a811015613662575080612b5a6136329261273b565b9a909a5b89111561365557613647908b613849565b6136508a613344565b613612565b5050505050505092505050565b849b919b5282825261367886868620541661300e565b613636565b505050505050505092505050565b92505050565b9190915b60018061ffff8316111561333e5781617fff911c1690836136cb60008481526018602052604060018060a01b039120541661300e565b111561333e576136db9082613849565b613695565b919061ffff808416600052601860205261372160018060a01b0361370a816040600020541661300e565b92841660005260186020526040600020541661300e565b93848211156133ac5750509190565b61ffff60165416156131c657565b61ffff60195416156131c657565b6001600160a01b031660009081526017602052604090205461ffff1690811561377157565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff1690811561377157565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561383357565b634e487b7160e01b600052600160045260246000fd5b61386e61ffff8080601654169316936138648486111561382c565b169182111561382c565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b6138fd61ffff8080601954169316936138648486111561382c565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e198236030181121561163c5701602081359101916001600160401b03821161163c57813603831361163c57565b908060209392818452848401376000828201840152601f01601f1916010190565b6139ec6139e16139d38380611d4c565b604085526040850190611d94565b916020810190611d4c565b91602081830391015281359160ff831680930361163c57613a19604091613a299484526020810190613971565b91909281602082015201916139a2565b90565b6020808252613a3b8380611d4c565b6060918281850152613a5260809283860190611d94565b613a69604096838101358888015287810190611d60565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613aa457505050505050505050505090565b909192939495969798999a82828203018752613ac08c85611d4c565b90813560de198336030181121561163c578782528201918a90888e6001600160401b03613b37613b27613b14613b0b613af98b80611d4c565b60e080988c01526101208b01906139c3565b978a018a611d4c565b96603f1997888a830301868b01526139c3565b928d8901358d8901528801611ba5565b169060a091828701528a8701359263ffffffff60e01b841680940361163c578f95613b6e613b7e9460c096878b01528a018a613971565b92909189850301908901526139a2565b94013561010084015201359081151580920361163c578a01529a8801999897966001019587019493929190613a8f565b814710613c10576000918291829182916001600160a01b03165af13d15613c0b573d613bd981611b23565b90613be76040519283611b02565b8152600060203d92013e5b15613bf957565b604051630a12f52160e11b8152600490fd5b613bf2565b60405163cd78605960e01b8152306004820152602490fd5b60ff60125460101c16613c3757565b60405163248c8efb60e11b8152600490fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613cdf8151809281855285808601910161212b565b601f01601f1916010190565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613d4757505050505050505090565b909192939495856003613d86839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01612095565b9a019401940192969594939190613d35565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd57613dd981613dd3845461205b565b8461214e565b6000601f8211600114613e125781929394600092613e075750508160011b916000199060031b1c1916179055565b0135905038806121e2565b601f198216948382526020918281209281905b888210613e5d57505083600195969710613e4357505050811b019055565b0135600019600384901b60f8161c19169055388080612233565b80600184968294958701358155019501920190613e25565b600154811015611f00576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b90613ec590613ebf81846140a3565b826127a8565b60ff60125460081c1615613ed65750565b60018054600082815b838110614053575b505015613ef357505050565b6001600160a01b038316600090815260156020526040902082810154613f4994909160030160405192613f2584611ae7565b8352602093613f508585019260018060a01b03809516845260405198898092612095565b0388611b02565b60408401968752600160401b8110156104fd578086613f7192018755613e75565b9290926107fc576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd57613fb8836124be875461205b565b81601f8411600114613ff15750928293918392600094613fe6575b50501b916000199060031b1c1916179055565b015192503880613fd3565b919083601f1981168760005284600020946000905b88838310614039575050501061402057505050811b019055565b015160001960f88460031b161c19169055388080612233565b858701518855909601959485019487935090810190614006565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b0387811691161461409957018390613edf565b5090508238613ee7565b60018060a01b031660005260156020526140c66002604060002001918254611d29565b9055565b919060405192816020850152602084526140e384611ab9565b6001600160401b03601c541693604051946140fd86611ae7565b60008652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516141318161203b565b61413a8161203b565b60ff80198a54169116178855519687516001600160401b0381116104fd5761417281614169600185015461205b565b6001850161214e565b6020601f82116001146142445761422b949282600080516020614e598339815191529795936002936121899c9d600092614239575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036141f082612273565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613cc6565b9060608301520390a16140a3565b0151905038806141a7565b6001830160005260206000209960005b601f19841681106142b75750926001836121899b9c60029461422b9997600080516020614e598339815191529b9997601f1981161061429e575b505050811b0160018201556141bf565b015160001960f88460031b161c1916905538808061428e565b828201518c556001909b019a60209283019201614254565b60ff6013541660038110156120455761083657565b6142ec6142cf565b34156112aa57336000908152601560205260409020600201541561432c5760ff60125460081c16156143225761218934336140ca565b6121893433613eb0565b60405163528fc16560e01b8152600490fd5b6143466142cf565b80156143ad573360009081526015602052604090206002015480156119da5781101561439c5760ff60125460081c1615614384576121899033614412565b8061439261218992336143bf565b610e95813361284e565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b03166000818152601560205260409020600201549091808210614400576143ec916127f8565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261442b84611ab9565b6001600160401b03601c5416936040519461444586611ae7565b60018652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516144798161203b565b6144828161203b565b60ff80198a54169116178855519687516001600160401b0381116104fd576144b181614169600185015461205b565b6020601f82116001146145835761456a949282600080516020614e598339815191529795936002936121899c9d600092614578575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361452f82612273565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613cc6565b9060608301520390a16143bf565b0151905038806144e6565b6001830160005260206000209960005b601f19841681106145f65750926001836121899b9c60029461456a9997600080516020614e598339815191529b9997601f198116106145dd575b505050811b0160018201556144fe565b015160001960f88460031b161c191690553880806145cd565b828201518c556001909b019a60209283019201614593565b60ff60125460081c166146fb575b3360009081526015602052604090206002015480156119da5761463e33614708565b5060009033825260246020528160408120614659815461205b565b806146be575b50505060ff60125460081c161561467b57612189915033614412565b604061218992338152600360205220548061469c575b5061439281336143bf565b806146ac6146b8926002546127f8565b600255610e9533614d20565b38614691565b82601f82116001146146d6575050555b81388061465f565b90918082526146f4601f60208420940160051c840160018501611e9e565b55556146ce565b6147036142cf565b61461c565b60008181526026602052604081205490919080156147ed57600019908082018181116147d957602554908382019182116147c557808203614791575b505050602554801561477d5781019061475c82611f16565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b6147af6147a0611f8693611f16565b90549060031b1c928392611f16565b9055845260266020526040842055388080614744565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611f005760209160051b010190565b91909182156132ea576040908151906020938483018381106001600160401b038211176104fd578452600092839052600281101561499557806148f65750600b54614850916127f8565b8152602283528181208251808286829454938481520190855286852092855b888282106148e05750505061488692500382611b02565b928351948515612d8d57858110612d8d5785900493825b8681106148ad5750505050505050565b6001906001600160a01b036148c282856147f2565b51168552602184528585206148d8888254611d29565b90550161489d565b855484526001958601958795509301920161486f565b84600185921460001461494657606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b918251916149b683611bb9565b936040946149c686519182611b02565b848152601f196149d586611bb9565b0194602095368784013760005b818110614aac57505060009461ffff8060165416600192839182945b614a5b575b505050505060ff600e5460a01c1694858102958187041490151715611d36576064614a2f950491614b23565b9015614a39575050565b60068110156120455760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614aa45760009081526018855220548493929186918591614a9a91614a94906001600160a01b031661300e565b90611d29565b9b011694936149fe565b505098614a03565b6001600160a01b0380614abf83876147f2565b51166000526017885261ffff89600020541615614aff5790614aee600192614ae783886147f2565b511661300e565b614af882866147f2565b52016149e2565b8890614b0d602493876147f2565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614c0b5782518514801590614c00575b614bf3579392919085945b848610614b6b575050505050501015614b6357600090600590565b600190600090565b909192939495614b85614b7e88846147f2565b5184614c18565b50614b8f8161203b565b614be2576001600160a01b0380614ba68a886147f2565b5116911603614bd257614bc6600191614bbf89886147f2565b5190611d29565b96019493929190614b48565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614b3d565b5050505050905090600290565b8151919060418303614c4957614c4292506020820151906060604084015193015160001a90614c54565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614cd857926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614ccc5780516001600160a01b03811615614cc357918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b90614cf16041821461382c565b8060011161163c57614d0c9136916000190190600101611b3e565b80516020909101206001600160a01b031690565b60049081549160005b838110614d365750505050565b614d3f81611ec9565b90546003916001600160a01b039190831b1c811685821614614d65575050600101614d29565b929350939060001991828101908111614df25790614d9684614d89614db594611ec9565b905490891b1c1691611ec9565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015614ddd570192614dc884611ec9565b81939154921b1b1916905555388080806120c2565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b9190811015611f005760051b81013590601e198136030182121561163c5701908135916001600160401b03831161163c57602001823603811361163c579190565b9190811015611f005760051b019056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a2646970667358221220e314a0dcaf7e64a05613b4a7d0d301b3da5d183e2f2dc5a8c4f639b5168fc4e164736f6c63430008130033","sourceMap":"215:373:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:63;215:373:89;;582:20:63;578:50;;215:373:89;477:1:63;215:373:89;;;982:72:61;;:::i;:::-;17626:10:78;:44;;;;;215:373:89;;;;;;;;;;;;17626:44:78;;17659:10;215:373:89;17626:44:78;;215:373:89;17626:44:78;;;;;;;;;;;215:373:89;;;;;;17626:44:78;;;;:::i;:::-;215:373:89;;17626:44:78;;;;215:373:89;;;17626:44:78;215:373:89;;;;;;;;;17626:44:78;215:373:89;;;578:50:63;215:373:89;;-1:-1:-1;;;611:17:63;;215:373:89;;611:17:63;215:373:89;;;;;;;;;;-1:-1:-1;;215:373:89;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;:::i;:::-;4188:61:66;;;;:::i;:::-;11043:10:78;;:::i;:::-;215:373:89;2423:14:78;215:373:89;;;;;;;;2456:24:78;2423:57;2419:146;;11132:34;;;11128:98;;11240:38;;;11236:102;;11352:14;215:373:89;;;;;;;;25078:9:78;25089:10;;;;;;11348:199;;;;;;;215:373:89;;25078:9:78;25175:33;25194:13;;;;;:::i;:::-;25175:33;;:::i;:::-;-1:-1:-1;;;;;25246:13:78;;;;;;:::i;:::-;;:::i;:::-;215:373:89;-1:-1:-1;;;;;215:373:89;;;25226:33:78;25222:100;;1243:27:65;25513:13:78;;;;;;:::i;:::-;25538;;;;;:::i;:::-;25561:9;;;;;;;;:::i;:::-;215:373:89;;;;1243:27:65;;;215:373:89;;1243:27:65;;215:373:89;;;;;;:::i;:::-;;;;;;1243:27:65;215:373:89;;1243:27:65;;;;;;:::i;:::-;-1:-1:-1;;;;;21417:11:64;215:373:89;;;;;;;:::i;:::-;;;;;3528:63:65;;215:373:89;;;;;;;;;;;3528:63:65;;215:373:89;;;;3489:15:65;215:373:89;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;2456:24:78;215:373:89;;;;:::i;:::-;2456:24:78;215:373:89;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:89;;;;;2456:24:78;215:373:89;;;;;;;;;-1:-1:-1;;;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;3528:63:65;;215:373:89;;-1:-1:-1;;;;;215:373:89;;;;;;;;-1:-1:-1;;;;;3636:23:65;;;:::i;:::-;215:373:89;-1:-1:-1;;;;;215:373:89;21417:11:64;215:373:89;;;21417:11:64;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;1496:205:65;;;215:373:89;25078:9:78;;215:373:89;;;;-1:-1:-1;215:373:89;;;;;;2456:24:78;215:373:89;;;;;;;;;;-1:-1:-1;;215:373:89;;;;;;;;;;2456:24:78;215:373:89;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:24:78;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;25222:100:78;215:373:89;;-1:-1:-1;;;25286:21:78;;215:373:89;;25286:21:78;11348:199;23463:9;;;;;;23474:10;;;;;;215:373:89;;;;;;-1:-1:-1;;;;;24357:15:78;215:373:89;;-1:-1:-1;24347:25:78;24343:91;;1682:2;;;11352:14;1682:2;;;11352:14;1682:2;24480:39;215:373:89;;24480:39:78;;;;:::i;:::-;;;;24612:16;215:373:89;;;;;-1:-1:-1;;;;;215:373:89;24603:84:78;;;;;215:373:89;;;;;;;;;;;;24603:84:78;;;215:373:89;24603:84:78;;215:373:89;24603:84:78;;;;;;;;11348:199;;215:373:89;;24603:84:78;;;;:::i;:::-;215:373:89;;;;24603:84:78;215:373:89;;;;;;;;;24343:91:78;215:373:89;;-1:-1:-1;;;24395:28:78;;215:373:89;;24395:28:78;23463:9;23560:33;23579:13;;;;;:::i;23560:33::-;-1:-1:-1;;;;;215:373:89;;;;23631:13:78;;215:373:89;23631:13:78;;;:::i;:::-;215:373:89;;;23611:33:78;23607:100;;16026:34:64;23848:13:78;;;;;;:::i;:::-;16026:34:64;:::i;:::-;23824:112:78;;215:373:89;23984:13:78;23999;23984;;;;;;:::i;:::-;23999;;;;;:::i;:::-;;;:::i;:::-;18655:5:64;24067:13:78;;;;;;:::i;:::-;24082:9;;;;;:::i;:::-;215:373:89;18655:5:64;;:::i;:::-;24149:13:78;;;;;;:::i;:::-;24172:9;;;;;;:::i;:::-;215:373:89;24193:13:78;;;;;;:::i;:::-;215:373:89;;;;;;;;:::i;:::-;;;;24132:76:78;;;;;215:373:89;;;;;;;:::i;:::-;24132:76:78;215:373:89;24132:76:78;;215:373:89;;;2456:24:78;215:373:89;-1:-1:-1;;;215:373:89;;;;;;2456:24:78;215:373:89;;;2456:24:78;215:373:89;;:::i;:::-;;;;;;;;;;;2456:24:78;215:373:89;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;2456:24:78;215:373:89;;;;;;-1:-1:-1;;;;215:373:89;;;;;;;;;;;;;;;23463:9:78;;215:373:89;;;;-1:-1:-1;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:24:78;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:24:78;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23824:112:78;215:373:89;;-1:-1:-1;;;23893:28:78;;215:373:89;;23893:28:78;11236:102;215:373:89;;-1:-1:-1;;;11301:26:78;;215:373:89;;11301:26:78;2419:146;1482:71;215:373:89;;:::i;:::-;;;-1:-1:-1;;;2503:51:78;;215:373:89;;2503:51:78;;1482:71;215:373:89;;;;1482:71:78;;;;:::i;:::-;2503:51;;;215:373:89;-1:-1:-1;;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:63;215:373:89;;582:20:63;578:50;;215:373:89;477:1:63;215:373:89;;;982:72:61;;:::i;:::-;4188:61:66;;:::i;:::-;4241:1;;:::i;:::-;215:373:89;;;;;;;;;;-1:-1:-1;;215:373:89;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;23472:11:64;215:373:89;;;;;;;;561:17;;;:::i;215:373::-;-1:-1:-1;;;215:373:89;;;;;;;;;;;;;-1:-1:-1;;215:373:89;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;:::i;:::-;982:72:61;;;:::i;:::-;4167:30:78;215:373:89;;4200:21:78;215:373:89;4167:54:78;;;;;:::i;:::-;215:373:89;;;4141:22:78;215:373:89;4141:80:78;;:152;;;215:373:89;4124:236:78;;215:373:89;;4404:22:78;4468:54;215:373:89;4404:22:78;;;;;;;:::i;:::-;;215:373:89;4404:22:78;215:373:89;;4404:22:78;;;;;;;;:::i;:::-;215:373:89;4394:33:78;;4468:54;;;:::i;:::-;215:373:89;;;4141:22:78;215:373:89;4442:80:78;215:373:89;;;;;;;;4622:104:78;215:373:89;;;;;;:::i;:::-;;;;;:::i;:::-;4622:104:78;;:::i;:::-;215:373:89;;;4141:22:78;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;:::i;:::-;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;215:373:89;;;;-1:-1:-1;;;215:373:89;;;;;;;;;;;;;;4438:2184:78;215:373:89;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;4141:22:78;;215:373:89;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;:::i;:::-;;;;;;;;;;;;4141:22:78;215:373:89;;;5110:35:78;215:373:89;;8399:50:33;215:373:89;;;5174:10:78;8399:50:33;;:::i;:::-;-1:-1:-1;215:373:89;;;4141:22:78;215:373:89;4167:30:78;215:373:89;5334:16:78;215:373:89;-1:-1:-1;;;;;215:373:89;5325:55:78;;;;;215:373:89;;-1:-1:-1;;;5325:55:78;;215:373:89;;;;;;;;;;;5325:55:78;;215:373:89;5325:55:78;;;:::i;:::-;;;;;;;;;;;215:373:89;5485:34:78;;;;;;:::i;:::-;;:::i;5325:55::-;;;;:::i;:::-;215:373:89;;5325:55:78;;;;215:373:89;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;215:373:89;;;;;;;;4438:2184:78;215:373:89;;;;;;;;;;4141:22:78;215:373:89;5541:56:78;5537:1085;;4438:2184;;215:373:89;;5537:1085:78;215:373:89;;;4141:22:78;215:373:89;;;;;;;;;;;6330:58:78;215:373:89;6330:58:78;;215:373:89;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;215:373:89;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;6330:58:78;;;;;;;;-1:-1:-1;6330:58:78;;:::i;:::-;215:373:89;6320:69:78;;6407:36;6403:209;;215:373:89;;6403:209:78;215:373:89;;;4141:22:78;215:373:89;;;6522:35:78;215:373:89;;8399:50:33;215:373:89;;;6586:10:78;8399:50:33;;:::i;:::-;;215:373:89;;;;;-1:-1:-1;;;;;215:373:89;;;;;-1:-1:-1;215:373:89;;;;;;;;;;;;;4124:236:78;215:373:89;;-1:-1:-1;;;4325:24:78;;215:373:89;;4325:24:78;4141:152;215:373:89;;;;;4141:22:78;215:373:89;4237:56:78;;4141:152;;215:373:89;;;;;;;;;;;;;;;;;3103:10:78;;:::i;:::-;982:72:61;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1883:4:61;215:373:89;;;;;;;;1902:20:61;215:373:89;;;1911:10:61;215:373:89;;1902:20:61;215:373:89;;;;;;;;;-1:-1:-1;;215:373:89;;;;;;-1:-1:-1;;;;;;;;;;;215:373:89;;;582:20:63;578:50;;215:373:89;;;10028:11:78;;10024:65;;215:373:89;10103:14:78;215:373:89;;;;10099:79:78;;10209:10;215:373:89;;;;;;;;;;10192:37:78;10188:93;;10518:6;10209:10;;;215:373:89;;;;;;;;10291:38:78;215:373:89;;;10291:38:78;:::i;:::-;215:373:89;;10339:29:78;215:373:89;10339:19:78;215:373:89;10339:29:78;:::i;:::-;:19;215:373:89;10209:10:78;215:373:89;;;;;;;;;10383:33:78;10379:99;;215:373:89;10209:10:78;10518:6;:::i;10379:99::-;10456:10;10209;10456;:::i;:::-;10379:99;;10188:93;215:373:89;;-1:-1:-1;;;10252:18:78;;215:373:89;;10252:18:78;10099:79;215:373:89;;-1:-1:-1;;;10140:27:78;;215:373:89;;10140:27:78;10024:65;215:373:89;;-1:-1:-1;;;10062:16:78;;215:373:89;;10062:16:78;215:373:89;-1:-1:-1;215:373:89;;-1:-1:-1;;215:373:89;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;;;;;;;477:1:63;-1:-1:-1;;;;;;;;;;;215:373:89;582:20:63;578:50;;477:1;-1:-1:-1;;;;;;;;;;;215:373:89;982:72:61;;:::i;:::-;4188:61:66;;:::i;:::-;215:373:89;12051:14:78;215:373:89;;;;12047:74:78;;;215:373:89;12134:9:78;:14;12130:70;;1682:2;215:373:89;;;;12214:57:78;12210:232;;12479:29;215:373:89;;;;;;;12479:29:78;:::i;:::-;12542:10;-1:-1:-1;;;;;215:373:89;;;12522:30:78;12518:89;;215:373:89;;;;12919:9:78;215:373:89;;;;;;12542:10:78;12919:9;:::i;:::-;12985;12134;12542:10;12985:9;:::i;:::-;215:373:89;5112:35:64;215:373:89;13114:25:78;215:373:89;13095:44:78;;;13091:525;;12617:1149;;;;215:373:89;-1:-1:-1;;;;;;;;;;;215:373:89;;;13091:525:78;215:373:89;5328:27:64;215:373:89;;-1:-1:-1;;;;;13201:15:78;215:373:89;;-1:-1:-1;13091:525:78;13159:443;1682:2;;;12051:14;1682:2;;;12051:14;1682:2;13288:39;215:373:89;;13288:39:78;;;;:::i;:::-;;;;215:373:89;;;;;13444:16:78;215:373:89;;;13478:37:78;13496:19;215:373:89;13478:37:78;;;:::i;:::-;13435:148;;;;;;215:373:89;;;;;;;;;;;;;13435:148:78;;215:373:89;13435:148:78;;215:373:89;13435:148:78;;;;;;;13091:525;13435:148;;;;:::i;:::-;215:373:89;;13435:148:78;;13091:525;;13435:148;215:373:89;;;;12617:1149:78;215:373:89;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21733:11:64;215:373:89;;;;;;;;;:::i;:::-;661:28:65;215:373:89;;;3528:63:65;;215:373:89;;;12542:10:78;215:373:89;3528:63:65;;215:373:89;;;;3489:15:65;215:373:89;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;477:1:63;215:373:89;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:89;;;661:28:65;215:373:89;;;;;;;;;;;;477:1:63;215:373:89;;;;;;;;;;;477:1:63;215:373:89;;;;;;;;;;;;3528:63:65;;215:373:89;;-1:-1:-1;;;;;215:373:89;;;;;;;;-1:-1:-1;;;;;3636:23:65;;;:::i;:::-;215:373:89;-1:-1:-1;;;;;215:373:89;21733:11:64;215:373:89;;;21733:11:64;215:373:89;;;;;;661:28:65;215:373:89;;12542:10:78;215:373:89;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;747:200:65;;;13745:9:78;12134;12542:10;13745:9;:::i;:::-;12617:1149;;215:373:89;;;;-1:-1:-1;215:373:89;;;;;;477:1:63;215:373:89;;;;;;;;;;-1:-1:-1;;215:373:89;;;;;;;;661:28:65;215:373:89;;;;;477:1:63;215:373:89;-1:-1:-1;;;;;;;;;;;215:373:89;;;;;;;;;;;;;;;;;477:1:63;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:63;215:373:89;;;;;;;;;;;;;;;12210:232:78;215:373:89;;-1:-1:-1;;;12407:24:78;;215:373:89;;12407:24:78;12130:70;215:373:89;;-1:-1:-1;;;12171:18:78;;215:373:89;;12171:18:78;12047:74;;;:::i;:::-;;;215:373:89;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;477:1:63;247:48;-1:-1:-1;;;;;;;;;;;215:373:89;;;582:20:63;578:50;;215:373:89;;;982:72:61;;:::i;:::-;17480:10:78;215:373:89;;;;3658:13:64;215:373:89;;;;;;;;;;;;;;1777:16:64;;;1773:78;;215:373:89;;;;;1895:25:64;;1930:14;;;2019:13;;;;1954:477;477:1:63;;;1954:477:64;215:373:89;;;;22704:36:64;215:373:89;22704:36:64;215:373:89;;;;;;;;;;;;;;;;;;;;;;;3707:14:64;3703:76;;1954:477;3818:6;17480:10:78;;3818:6:64;:::i;:::-;215:373:89;;;17480:10:78;215:373:89;;;;;;;;;;;;;;;;;22704:36:64;;;;215:373:89;;;3703:76:64;17480:10:78;215:373:89;;;;3658:13:64;215:373:89;;;;;17480:10:78;;215:373:89;3703:76:64;;1954:477;215:373:89;;;;;;;1961:10:64;;;;;;;215:373:89;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2204:12:64;-1:-1:-1;2180:76:64;;2270:24;;;;;;;;;;;;;:::i;:::-;215:373:89;;;;;;;;;;;;;;;;;;;;;1954:477:64;;;2180:76;2236:5;;;;;;;;1961:10;;;;;;;1773:78;215:373:89;;-1:-1:-1;;;1816:24:64;;215:373:89;;1816:24:64;215:373:89;-1:-1:-1;215:373:89;;-1:-1:-1;;215:373:89;;;;;;;;;;;;982:72:61;;:::i;:::-;3919:16:66;215:373:89;-1:-1:-1;;;;;215:373:89;3905:10:66;:30;3901:80;;4174:1;215:373:89;;;;;4174:1:66;:::i;3901:80::-;215:373:89;;-1:-1:-1;;;3958:12:66;;215:373:89;;3958:12:66;215:373:89;;;;;;;;;;;;;4188:61:66;;:::i;:::-;215:373:89;17446:86:64;215:373:89;17446:32:64;215:373:89;;;17491:31:64;215:373:89;;17446:86:64;;:::i;:::-;215:373:89;17152:97:78;;17259:8;215:373:89;;-1:-1:-1;;215:373:89;;;;;17293:16:78;215:373:89;;;-1:-1:-1;;;;;215:373:89;17284:33:78;;;;;215:373:89;;;;;;;;;;;;;17284:33:78;;;;;;;;;;215:373:89;;17152:97:78;215:373:89;;-1:-1:-1;;;17212:26:78;;215:373:89;;17212:26:78;215:373:89;;;;;;;;;;;;;3290:10:78;;:::i;:::-;-1:-1:-1;;;;;;;;;;;215:373:89;;;;;1384:9:61;1380:62;;215:373:89;;;;;2212:20:61;215:373:89;;;2221:10:61;215:373:89;;2212:20:61;215:373:89;;1380:62:61;215:373:89;;-1:-1:-1;;;1416:15:61;;215:373:89;;1416:15:61;215:373:89;;;;;;;;;;982:72:61;;:::i;:::-;4188:61:66;;:::i;:::-;4241:1;;:::i;215:373:89:-;;;;;;;-1:-1:-1;;215:373:89;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;381:20;;;:::i;215:373::-;;;;;;;;;;;-1:-1:-1;;215:373:89;;;;982:72:61;;:::i;:::-;4188:61:66;;:::i;:::-;4241:1;215:373:89;;4241:1:66;:::i;215:373:89:-;;;;;-1:-1:-1;;215:373:89;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;7206:17:78;215:373:89;7206:17:78;;215:373:89;;7226:19:78;215:373:89;7206:51:78;;;;7202:108;;215:373:89;7323:10:78;;;;;;:::i;:::-;215:373:89;;;7343:25:78;215:373:89;;7323:45:78;;;7319:108;;7533:10;;;;:::i;:::-;:46;;;;:99;;;215:373:89;7529:156:78;;7698:10;;;;:::i;:::-;:22;;;7694:81;;215:373:89;;;;;7815:17:78;;;;;;;;;:::i;:::-;;215:373:89;;7815:17:78;;;;;;:::i;:::-;215:373:89;7805:28:78;;;7848:52;;;;215:373:89;;;;;;8179:24:78;215:373:89;8166:37:78;8162:200;;7844:1250;215:373:89;;8162:200:78;215:373:89;;8282:30:78;215:373:89;;8399:50:33;215:373:89;;;8336:10:78;8399:50:33;;:::i;7844:1250:78:-;8476:99;215:373:89;;;;;;;;;;;;;;;:::i;8476:99:78:-;215:373:89;;;;;;;:::i;:::-;;;;8775:71:78;215:373:89;;7226:19:78;215:373:89;;;;;8916:30:78;215:373:89;;8399:50:33;215:373:89;;;8970:10:78;8399:50:33;;:::i;:::-;-1:-1:-1;9038:16:78;215:373:89;-1:-1:-1;;;;;215:373:89;;9029:54:78;;;;;215:373:89;;9029:54:78;215:373:89;;;;;;;;;;;;9029:54:78;;215:373:89;9029:54:78;;;:::i;:::-;;;;;;;;;;;7844:1250;215:373:89;;9029:54:78;;;;:::i;7694:81::-;215:373:89;;-1:-1:-1;;;7743:21:78;;215:373:89;;7743:21:78;7529:156;215:373:89;;-1:-1:-1;;;7655:19:78;;215:373:89;;7655:19:78;7533:99;215:373:89;7603:24:78;215:373:89;;;;;;;7583:49:78;;7533:99;;215:373:89;-1:-1:-1;;;215:373:89;;;;;;;;7319:108:78;215:373:89;;-1:-1:-1;;;7391:25:78;;215:373:89;;7391:25:78;215:373:89;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;982:72:61;;;:::i;:::-;17917:10:78;215:373:89;;1317:17:72;215:373:89;;;;;;;;1317:33:72;17879:107:78;;215:373:89;;17999:29:78;17995:81;;17917:10;215:373:89;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8399:50:33;17917:10:78;8399:50:33;:::i;215:373:89:-;;;;-1:-1:-1;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;215:373:89;;;;;;;;17995:81:78;215:373:89;;-1:-1:-1;;;18051:14:78;;215:373:89;;18051:14:78;17879:107;215:373:89;;-1:-1:-1;;;17951:24:78;;17917:10;215:373:89;17951:24:78;;215:373:89;;;17951:24:78;215:373:89;;;;;;;;;;;9376:9:78;:14;9372:68;;215:373:89;;9454:14:78;215:373:89;;;;9450:79:78;;9560:10;215:373:89;;;;;;;;;9543:33:78;9539:101;;215:373:89;9560:10:78;215:373:89;;;;;;;;9650:41:78;9376:9;215:373:89;;9650:41:78;:::i;:::-;215:373:89;;9701:32:78;9376:9;9701:19;215:373:89;9701:32:78;:::i;:::-;:19;215:373:89;;;9539:101:78;215:373:89;;-1:-1:-1;;;215:373:89;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;9560:10:78;215:373:89;;;;;;;;9539:101:78;;215:373:89;-1:-1:-1;;;215:373:89;;;;;;;;9372:68:78;-1:-1:-1;;;9413:16:78;;215:373:89;;9413:16:78;215:373:89;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;:::o;:::-;-1:-1:-1;;;;;215:373:89;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;:::o;:::-;-1:-1:-1;;;;;215:373:89;;;;;;-1:-1:-1;;215:373:89;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:89;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:373:89;;;;;;:::o;:::-;-1:-1:-1;;;;;215:373:89;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:373:89;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;2587:156:57;2663:30;215:373:89;-1:-1:-1;;;;;215:373:89;2649:10:57;:44;2645:92;;2587:156::o;2645:92::-;215:373:89;;-1:-1:-1;;;2716:10:57;;;;;1122:128:61;215:373:89;-1:-1:-1;;;;;;;;;;;215:373:89;;1183:61:61;;1122:128::o;1183:61::-;215:373:89;;-1:-1:-1;;;1218:15:61;;;;;215:373:89;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;215:373:89;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;-1:-1:-1;;;;;215:373:89;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;215:373:89;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;215:373:89;;;;-1:-1:-1;215:373:89;:::o;:::-;;;;;;;;;;;;;18187:17:78;215:373:89;;;;;;18187:17:78;-1:-1:-1;215:373:89;;;;-1:-1:-1;215:373:89;:::o;2215:404:33:-;-1:-1:-1;215:373:89;;;4352:12:33;215:373:89;;;;;;;;18187:17:78;215:373:89;-1:-1:-1;;;215:373:89;;;;;;;;;;4352:12:33;215:373:89;;;18187:17:78;215:373:89;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;18187:17:78;215:373:89;;;;4352:12:33;215:373:89;;;;4352:12:33;2548:11;:::o;2294:319::-;2590:12;;;:::o;2215:404::-;;;4352:12;;;-1:-1:-1;215:373:89;;;;;;;;;;;4352:24:33;2294:319;215:373:89;;;;;;-1:-1:-1;;;215:373:89;;;;;4352:12:33;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4352:12:33;2548:11;:::o;215:373:89:-;-1:-1:-1;;;215:373:89;;;;;;;;;-1:-1:-1;;;215:373:89;;;;;;;;2294:319:33;-1:-1:-1;2590:12:33;-1:-1:-1;;2590:12:33:o;215:373:89:-;;-1:-1:-1;215:373:89;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;215:373:89;;;;-1:-1:-1;215:373:89;;;-1:-1:-1;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;215:373:89;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;215:373:89;;-1:-1:-1;215:373:89;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;215:373:89;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;215:373:89;;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:89;-1:-1:-1;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;:::o;23681:1944:64:-;23863:11;215:373:89;-1:-1:-1;;;;;215:373:89;;;;;;;;23889:56:64;;215:373:89;;;;-1:-1:-1;;;23968:28:64;;;;;23885:221;215:373:89;;;;;24017:56:64;;24013:93;;215:373:89;;;;;;24198:24:64;215:373:89;;;;24198:24:64;;;;25530:23;;;215:373:89;25530:23:64;;25569:49;25530:23;;:::i;:::-;-1:-1:-1;;;23863:11:64;215:373:89;;;;;;-1:-1:-1;;;215:373:89;;;23863:11:64;215:373:89;;;;;25569:49:64;23681:1944::o;24180:16::-;3893:36:65;;;-1:-1:-1;;;;;215:373:89;;;3893:15:65;215:373:89;;;;;;;3893:36:65;24327:16:64;;;;215:373:89;;;;;24327:16:64;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;:::i;:::-;24362:41:64;;;24327:16;;24471:14;;24423:45;:36;215:373:89;;24471:14:64;;;;;24423:36;215:373:89;;;;;;;;24680:25:64;215:373:89;;;;;;;24423:36:64;:45;215:373:89;:::i;:::-;4051:36:65;;-1:-1:-1;;;;;215:373:89;;;3893:15:65;215:373:89;;;;;;;4051:36:65;3708:45:66;;215:373:89;;;;;;;;;;;:::i;:::-;;;;;24180:16:64;;24358:1017;215:373:89;;;;;;;:::i;:::-;24523:34:64;;24510:47;;;24523:34;;215:373:89;;;;;;;;;;24629:14:64;;;215:373:89;:::i;:::-;;;;:::i;:::-;;;24618:44:64;;;;;;;;;;215:373:89;;;;;24618:44:64;;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;24680:36:64;;;;215:373:89;;;;;;;;24680:25:64;215:373:89;;;;;;;24680:36:64;:45;215:373:89;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;24802:5:64;215:373:89;;;;;;;;;3708:45:66;215:373:89;;;;;;;;;;;;;;;;;;24802:5:64;:::i;:::-;24358:1017;;215:373:89;;;;-1:-1:-1;215:373:89;;;;;;;;;;;;;;;;;3708:45:66;215:373:89;;;3708:45:66;215:373:89;;3708:45:66;215:373:89;;;;;;;;;24802:5:64;215:373:89;;;;;;;;;;;;;;;;;24802:5:64;:::i;215:373:89:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:89;;;;;;;;;;;;;;;;;3708:45:66;215:373:89;;;;;;;;;24506:869:64;215:373:89;;;;;;;;;;;;;;;24875:14:64;;;215:373:89;:::i;:::-;24864:37:64;215:373:89;;;;24864:37:64;;215:373:89;;;;24864:37:64;;;;;215:373:89;;;;;:::i;:::-;24924:38:64;3893:15:65;;25028:6:64;;;;;;:::i;:::-;25057:14;215:373:89;3147:35:64;;:12;:35;:::i;:::-;215:373:89;;;;;;;:::i;:::-;;;;3224:54:64;;;215:373:89;;;-1:-1:-1;;;;;215:373:89;;;;;;3658:13:64;215:373:89;;;;;3224:54:64;;215:373:89;;;;;;;;;;;;;;;;;;;1273:22:64;;;;:::i;:::-;215:373:89;3708:45:66;;215:373:89;;;1306:13:64;;;215:373:89;;;;;;;;;;;;1362:10:64;;;:::i;:::-;215:373:89;;;;;;;;;;;;;;;;;;;;;;3343:85:64;;;25135:16;215:373:89;;25126:47:64;;;;;;215:373:89;;;;;;;;;;;;;;;25126:47:64;;;;;215:373:89;25126:47:64;;;;;;;;;;;;;;;24920:441;;24358:1017;;25126:47;;;;:::i;:::-;;;;;215:373:89;;;;;;;;;;24920:441:64;25261:6;;;;;;;;;;:::i;:::-;25299:16;215:373:89;;25290:52:64;;;;;;215:373:89;;;;;;25290:52:64;;3708:45:66;25290:52:64;3708:45:66;;25290:52:64;;;;;;;;;;;;;;;;;;24920:441;24358:1017;;215:373:89;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;9330:540:64:-;;215:373:89;;;;;;;-1:-1:-1;215:373:89;9465:15:64;215:373:89;;;-1:-1:-1;215:373:89;;;;;;9580:22:64;;;9576:288;9580:22;;;9618:7;;;:::o;9576:288::-;-1:-1:-1;;9645:21:64;;;9747:5;;;:::i;9641:223::-;9846:5;;;:::i;9876:404::-;;10258:13;9876:404;10143:39;215:373:89;;;;;;;;;-1:-1:-1;215:373:89;10005:15:64;215:373:89;;10005:55:64;215:373:89;;;-1:-1:-1;215:373:89;10005:46:64;215:373:89;10005:55:64;:::i;:::-;215:373:89;-1:-1:-1;215:373:89;10005:15:64;215:373:89;;;;;-1:-1:-1;215:373:89;10070:46:64;215:373:89;10143:29:64;215:373:89;10143:39:64;:::i;:::-;:29;215:373:89;10258:13:64;:::i;215:373:89:-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;10286:616:64:-;;10830:13;10856:39;10286:616;215:373:89;;;;;;;-1:-1:-1;;215:373:89;;;10416:15:64;215:373:89;;10416:55:64;215:373:89;;;;;10416:46:64;215:373:89;10416:55:64;:::i;:::-;215:373:89;;;10416:15:64;215:373:89;;;;;10416:15:64;10507:42;;215:373:89;;;10564:18:64;;:42;;;;10286:616;-1:-1:-1;10560:199:64;;;215:373:89;;;;;;;;;;;;;;;;;:::i;:::-;10830:13:64;:::i;:::-;10856:29;215:373:89;10856:39:64;:::i;:::-;:29;215:373:89;10286:616:64:o;10560:199::-;10686:46;;;215:373:89;10686:46:64;215:373:89;10830:13:64;:::i;10564:42::-;10586:20;;;10564:42;;;11008:2209;;;215:373:89;;;;;;;;;-1:-1:-1;215:373:89;;;;;;1317:17:72;215:373:89;;;;;;;;;;;;11120:226:64;;215:373:89;16026:14:64;215:373:89;;;;;11124:21:64;215:373:89;;-1:-1:-1;11516:262:64;;4023:26:70;;:::i;:::-;215:373:89;;;;;4077:23:70;215:373:89;;;;;;;;4129:25:70;;;;:::i;:::-;12408::64;12404:452;;215:373:89;;;1317:17:72;215:373:89;;;;;;;;12866:229:64;;13141:11;;;;;13168:42;;13141:11;;;;;:::i;:::-;215:373:89;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;;;;;;;;13168:42:64;;;;11008:2209::o;12866:229::-;3147:36:70;;;:::i;:::-;3209:30;;;;:::i;:::-;3308:5;4619:7;215:373:89;;;;4619:7:70;;;4612:423;-1:-1:-1;;215:373:89;;-1:-1:-1;;;;;215:373:89;;;;;-1:-1:-1;;;;215:373:89;;;;;;;;;-1:-1:-1;13008:56:64;;215:373:89;;;;13008:56:64;215:373:89;4612:423:70;215:373:89;;1991:25:72;215:373:89;;;;;;;;;;;1952:17:72;215:373:89;;;;;;1991:25:72;:::i;:::-;6662:7:70;4868:38;4864:82;;4991:3;;;;;;:::i;:::-;4612:423;;;;4864:82;4926:5;;;12404:452:64;12475:4;;;;;;;12777:48;12475:4;;;;12777:48;12475:4;1317:17:72;12475:4:64;;;:::i;:::-;215:373:89;;;;;;12495:140:64;;12404:452;12684:11;;;:::i;:::-;12746:10;;;:::i;:::-;215:373:89;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;;;;;;;;12495:140:64;12608:11;;;:::i;:::-;12495:140;;11516:262;11675:11;;;;;11706:41;;11675:11;;;;;:::i;11120:226::-;2876:36:71;;;;;;;;;;;:::i;:::-;2936:30;;;;:::i;:::-;3035:3;4846:7;3035:3;4846:7;:::i;:::-;215:373:89;11124:21:64;215:373:89;;4932:763:71;;215:373:89;;;4939:16:71;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;:::-;5089:187;;:::i;:::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;-1:-1:-1;;215:373:89;;-1:-1:-1;;;;;215:373:89;;;;;-1:-1:-1;;;;215:373:89;;;;;;;5556:5:71;;-1:-1:-1;11260:55:64;;-1:-1:-1;215:373:89;;;;11260:55:64;215:373:89;4971:413:71;215:373:89;;;;;1952:17:72;215:373:89;;1991:25:72;215:373:89;;;;;;1991:25:72;:::i;:::-;4971:413:71;;4939:16;;;;;;;;11260:55:64;4939:16:71;;;;;11260:55:64;4939:16:71;;;;13320:2014:64;;;215:373:89;;;;;;;;;-1:-1:-1;;215:373:89;;;;;1317:17:72;215:373:89;;;;;;;;;;;;13428:421:64;;215:373:89;;;1317:17:72;215:373:89;;;;;;;;1317:33:72;13883:106:64;;14053:13;;14049:508;;3263:36:71;;;;:::i;:::-;3323:30;;;;:::i;:::-;3422:3;4270:433;215:373:89;;;;;4277:7:71;;;;215:373:89;;;;;;;;;1952:17:72;215:373:89;;;1991:25:72;215:373:89;;;;;;1991:25:72;:::i;:::-;6308:7:71;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4533:81;4594:5;;;;;;;;;;4270:433;13432:22:64;215:373:89;;14638:37:64;14634:74;;4023:26:70;;:::i;:::-;215:373:89;;;1952:17:72;215:373:89;;;;;;;;;4129:25:70;4077:23;4129:25;;;:::i;:::-;4023:26;;;:::i;:::-;215:373:89;;;;;;;4129:25:70;;;;:::i;:::-;-1:-1:-1;14901:358:64;;-1:-1:-1;;215:373:89;;-1:-1:-1;;;;;215:373:89;;;;;;;;;15274:53:64;;215:373:89;;;;15274:53:64;215:373:89;14901:358:64;14979:4;;;;15176:52;;14979:4;;;:::i;:::-;15025;;:::i;14634:74::-;14691:7;;;;;;:::o;4277::71:-;;;;;;;;;;;;;14049:508:64;14126:9;;;;14155:30;14126:9;;;;;;;;;:::i;:::-;215:373:89;;;;;14155:30:64;13432:22;215:373:89;;14200:326:64;;14540:7;;;;:::o;14200:326::-;14472:39;4023:26:70;4077:23;4023:26;;;;:::i;:::-;215:373:89;;;;;;;14472:39:64;4129:25:70;;;:::i;:::-;14378:4:64;;;:::i;:::-;14436:12;;;:::i;14472:39::-;;;;14200:326;;;;;;13883:106;215:373:89;;-1:-1:-1;;;13952:26:64;;1317:17:72;;13952:26:64;13428:421;13494:13;;;;;;;;;;13490:185;;3601:36:70;215:373:89;3601:36:70;;;;;:::i;:::-;3663:30;;;;:::i;:::-;3762:5;;215:373:89;;;;;;;;;13432:22:64;215:373:89;;5287:763:70;215:373:89;;;5287:763:70;-1:-1:-1;;215:373:89;;-1:-1:-1;;;;;215:373:89;;;;;-1:-1:-1;;;;215:373:89;;;;;;;-1:-1:-1;215:373:89;;-1:-1:-1;13764:54:64;;215:373:89;-1:-1:-1;215:373:89;;;;13764:54:64;215:373:89;5287:763:70;215:373:89;;;5294:16:70;;;;;5330:15;;;;;;;;5599:12;;;;5444:186;5599:12;;:::i;:::-;5444:186;;:::i;:::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;215:373:89;;1952:17:72;215:373:89;;;;;;;;1991:25:72;;215:373:89;;1991:25:72;:::i;:::-;5326:412:70;;5294:16;;;;13490:185:64;13572:9;;;;;;;;13605:31;13572:9;;;;;:::i;:::-;215:373:89;;;;13605:31:64;13654:7::o;998:417:70:-;1401:5;998:417;1301:30;215:373:89;;1119:19:70;215:373:89;12499:22:64;215:373:89;;1119:19:70;:::i;:::-;215:373:89;;;;;;;;;;-1:-1:-1;215:373:89;1149:23:70;215:373:89;;;-1:-1:-1;215:373:89;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:89;1200:23:70;215:373:89;;;-1:-1:-1;215:373:89;;-1:-1:-1;;;;;215:373:89;;;;;;;;12499:22:64;215:373:89;;;12499:22:64;215:373:89;1301:30:70;:::i;:::-;1401:5;;:::i;4525:375:64:-;215:373:89;16026:14:64;215:373:89;;;;;;;;4697:24:64;4668:53;4697:24;;-1:-1:-1;;;;;215:373:89;-1:-1:-1;215:373:89;;;4745:21:64;215:373:89;;;;;;;4525:375:64:o;4664:230::-;-1:-1:-1;;;;;215:373:89;-1:-1:-1;215:373:89;;;4831:21:64;215:373:89;;;;;;4831:52:64;215:373:89;;4525:375:64:o;215:373:89:-;;;;;-1:-1:-1;;215:373:89;;;;;;;:::o;1545:401:70:-;215:373:89;;13432:22:64;215:373:89;;1044:14:72;;;1040:61;;215:373:89;;2388:17:72;2381:25;2388:17;;;;2381:25;:::i;:::-;215:373:89;;;;2468:17:72;215:373:89;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;2551:17:72;215:373:89;;;;;;;-1:-1:-1;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:72;1799:4:70;;215:373:89;1766:8:70;;215:373:89;1766:8:70;:::i;:::-;215:373:89;;13432:22:64;215:373:89;;;13432:22:64;215:373:89;1799:4:70;:::i;:::-;215:373:89;;;;;;1991:25:72;215:373:89;;;;;;1991:25:72;:::i;:::-;5047:1009:70;;5160:26;1952:17:72;215:373:89;13432:22:64;215:373:89;;5287:763:70;215:373:89;;;5287:763:70;1545:401;;;;;;;;;;;:::o;5287:763::-;215:373:89;;;5294:16:70;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;215:373:89;;;;;;;;1991:25:72;215:373:89;;;;;;1991:25:72;:::i;:::-;5326:412:70;;5294:16;;;;1040:61:72;215:373:89;;-1:-1:-1;;;1081:9:72;;;;;2081:787:70;2210:36;2081:787;2210:36;:::i;:::-;215:373:89;;;12499:22:64;215:373:89;;2321:4:70;;;;;:::i;:::-;2382:8;;;;:::i;:::-;215:373:89;;;12499:22:64;215:373:89;;;12499:22:64;215:373:89;2415:4:70;;;:::i;:::-;215:373:89;;;2435:11:70;;;2431:48;;-1:-1:-1;215:373:89;-1:-1:-1;;215:373:89;;;;1952:17:72;215:373:89;;;;;;;;;;;;;;2668:5:70;1991:25:72;215:373:89;;;;;;1991:25:72;:::i;:::-;2668:5:70;;:::i;:::-;215:373:89;;;;;1991:25:72;215:373:89;;;;;;1991:25:72;:::i;:::-;2854:5:70;;215:373:89;;;;;;;;;12499:22:64;215:373:89;;5287:763:70;215:373:89;;;2081:787:70;;;;;;;;;;;:::o;5287:763::-;215:373:89;;;5294:16:70;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5326:412;215:373:89;;;;;;;;1991:25:72;215:373:89;;;;;;1991:25:72;:::i;:::-;5326:412:70;;2431:48;2462:7;;;:::o;4443:598::-;;;;4612:423;4625:1;215:373:89;;;;4619:7:70;;;;215:373:89;;;;;-1:-1:-1;;1991:25:72;-1:-1:-1;215:373:89;;;1952:17:72;215:373:89;;;;;;;;;;;;1991:25:72;:::i;:::-;6662:7:70;4868:38;4864:82;;4991:3;;;;:::i;:::-;4612:423;;4864:82;4926:5;;;;4443:598::o;215:373:89:-;;;;;;;;;;;;;;:::o;6117:442:70:-;;;;215:373:89;;;;;-1:-1:-1;215:373:89;1952:17:72;215:373:89;;1991:25:72;215:373:89;;;;;1991:25:72;215:373:89;;-1:-1:-1;215:373:89;;;1991:25:72;:::i;:::-;215:373:89;;;-1:-1:-1;215:373:89;1952:17:72;215:373:89;;;-1:-1:-1;215:373:89;;;1991:25:72;:::i;:::-;6662:7:70;;;;6437:85;;6531:21;;;6117:442;:::o;6437:85::-;6490:21;-1:-1:-1;6490:21:70;;-1:-1:-1;6490:21:70:o;924:417:71:-;1327:5;924:417;1227:30;215:373:89;;1045:19:71;215:373:89;11124:21:64;215:373:89;;1045:19:71;:::i;:::-;215:373:89;;;;;;;;;;-1:-1:-1;215:373:89;1075:23:71;215:373:89;;;-1:-1:-1;215:373:89;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:89;1126:23:71;215:373:89;;;-1:-1:-1;215:373:89;;-1:-1:-1;;;;;215:373:89;;;;;;;;11124:21:64;215:373:89;;;11124:21:64;215:373:89;1227:30:71;:::i;:::-;1327:5;;:::i;1408:401::-;215:373:89;;11124:21:64;215:373:89;;1044:14:72;;;1040:61;;215:373:89;;2388:17:72;2381:25;2388:17;;;;2381:25;:::i;:::-;215:373:89;;;;2468:17:72;215:373:89;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;2551:17:72;215:373:89;;;;;;;-1:-1:-1;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:72;1662:4:71;;215:373:89;1629:8:71;;215:373:89;1629:8:71;:::i;:::-;215:373:89;;11124:21:64;215:373:89;;;11124:21:64;215:373:89;1662:4:71;:::i;:::-;215:373:89;;;;;;1991:25:72;215:373:89;;;;;;1991:25:72;:::i;:::-;4715:986:71;;4828:25;1952:17:72;215:373:89;11124:21:64;215:373:89;;4932:763:71;215:373:89;;;1408:401:71;;;;;;;;;;;:::o;4932:763::-;215:373:89;;;4939:16:71;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;;4971:413;215:373:89;;;;;;;;1991:25:72;215:373:89;;;;;;1991:25:72;:::i;:::-;4971:413:71;;1881:779;2010:36;1881:779;2010:36;:::i;:::-;215:373:89;;;;13888:21:64;215:373:89;;2121:4:71;;;;;:::i;:::-;2182:8;;;;:::i;:::-;215:373:89;;;13888:21:64;215:373:89;;;13888:21:64;215:373:89;2215:4:71;;;:::i;:::-;215:373:89;;;2235:11:71;;;2231:48;;-1:-1:-1;;;;215:373:89;;;;1952:17:72;215:373:89;;;;;;;;;;;;;;2466:3:71;1991:25:72;215:373:89;;;;;;1991:25:72;:::i;:::-;2466:3:71;;:::i;:::-;215:373:89;;;;;1991:25:72;215:373:89;;;;;;1991:25:72;:::i;:::-;2648:3:71;4846:7;2648:3;4846:7;:::i;:::-;4863:18;215:373:89;13888:21:64;215:373:89;;4932:763:71;;215:373:89;;;4939:16:71;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;;;;;1881:779::o;4971:413::-;215:373:89;;;;;;;;1991:25:72;215:373:89;;;;;;1991:25:72;:::i;:::-;4971:413:71;;4939:16;;;;;;;;;;;;;1881:779::o;2231:48::-;2262:7;;;;:::o;4101:608::-;;;;4270:433;4283:1;215:373:89;;;;4277:7:71;;;;215:373:89;;;;;-1:-1:-1;;1991:25:72;-1:-1:-1;215:373:89;;;1952:17:72;215:373:89;;;;;;;;;;;;1991:25:72;:::i;:::-;6308:7:71;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;5763:443;;;215:373:89;;;;-1:-1:-1;215:373:89;1952:17:72;215:373:89;;1991:25:72;215:373:89;;;;;1991:25:72;215:373:89;;-1:-1:-1;215:373:89;;;1991:25:72;:::i;:::-;215:373:89;;;-1:-1:-1;215:373:89;1952:17:72;215:373:89;;;-1:-1:-1;215:373:89;;;1991:25:72;:::i;:::-;6308:7:71;;;;6088:33;6084:85;;6178:21;;;5763:443;:::o;974:133:72:-;215:373:89;11124:21:64;215:373:89;;1044:14:72;1040:61;;974:133::o;:::-;215:373:89;13432:22:64;215:373:89;;1044:14:72;1040:61;;974:133::o;1363:226::-;-1:-1:-1;;;;;215:373:89;-1:-1:-1;215:373:89;;;1474:17:72;215:373:89;;;;;;;;;1516:8:72;;1512:71;;1363:226::o;1512:71::-;215:373:89;;-1:-1:-1;;;1547:25:72;;;;;1363:226;-1:-1:-1;;;;;215:373:89;-1:-1:-1;215:373:89;;;1474:17:72;215:373:89;;;;;;;;;1516:8:72;;1512:71;;1363:226::o;1595:184::-;215:373:89;;-1:-1:-1;215:373:89;;;1671:17:72;215:373:89;;;;;;;;;;-1:-1:-1;;;;;;215:373:89;;;;;-1:-1:-1;;;;;215:373:89;;;1749:17:72;215:373:89;;;;;;;-1:-1:-1;;215:373:89;;;1595:184:72:o;:::-;215:373:89;;-1:-1:-1;215:373:89;;;1671:17:72;215:373:89;;;;;;;;;;-1:-1:-1;;;;;;215:373:89;;;;;-1:-1:-1;;;;;215:373:89;;;1749:17:72;215:373:89;;;;;;;-1:-1:-1;;215:373:89;;;1595:184:72:o;215:373:89:-;;;;:::o;:::-;;;;;;;;;;;;2301:412:72;2416:25;215:373:89;;;11124:21:64;215:373:89;;;;2388:17:72;2381:25;2388:17;;;;2381:25;:::i;:::-;215:373:89;2423:17:72;;;;2416:25;:::i;:::-;-1:-1:-1;215:373:89;;;2468:17:72;215:373:89;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;2551:17:72;215:373:89;;;;;;;-1:-1:-1;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:373:89;;;;;;;;;;;;;;;;;;;2301:412:72:o;:::-;2416:25;215:373:89;;;12870:22:64;215:373:89;;;;2388:17:72;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;215:373:89;;;2468:17:72;215:373:89;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;2551:17:72;215:373:89;;;;;;;-1:-1:-1;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:373:89;;;;;;;;;;;;;;;;;;;2301:412:72:o;215:373:89:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;215:373:89;;;;;;;;-1:-1:-1;;215:373:89;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1530:331:26;1615:21;;:30;1611:109;;1749:33;;;;;;;;-1:-1:-1;;;;;215:373:89;1749:33:26;;215:373:89;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;1749:33:26;215:373:89;;;;;;1796:8:26;1792:63;;1530:331::o;1792:63::-;215:373:89;;-1:-1:-1;;;1827:17:26;;;;;215:373:89;;;1611:109:26;215:373:89;;-1:-1:-1;;;1668:41:26;;1623:4;1668:41;;;215:373:89;;;1668:41:26;3993:118:66;215:373:89;4042:8:66;215:373:89;;;;4038:67:66;;3993:118::o;4038:67::-;215:373:89;;-1:-1:-1;;;4073:21:66;;;;;215:373:89;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;-1:-1:-1;;;215:373:89;;;;;;;;;;;;;;:::o;1482:71:78:-;;215:373:89;1482:71:78;;215:373:89;;;;;;;;;;;1482:71:78;;;:::i;:::-;215:373:89;;-1:-1:-1;;215:373:89;1482:71:78;;;:::o;1682:2::-;;;;;;;;477:1:63;215:373:89;;;;;;;;;;;1682:2:78;;;;;;;;215:373:89;;1682:2:78;215:373:89;;1682:2:78;;;;;;;;;;;;;;;;;;:::o;:::-;215:373:89;;;;;;;1682:2:78;;215:373:89;;;;;1682:2:78;;;;;;;;215:373:89;;;;;;;;;1682:2:78;;;215:373:89;1682:2:78;;;215:373:89;1682:2:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;18755:224:64;-1:-1:-1;;;;;215:373:89;;;;;24680:25:64;215:373:89;;;;;18755:224:64;;;;8282:41;;215:373:89;-1:-1:-1;;;;;215:373:89;;;;;;;;;;:::i;:::-;;;:::i;:::-;3708:45:66;215:373:89;;;;;;;;;;;3708:45:66;215:373:89;;;;;;;;;;;;8282:41:64;215:373:89;;;;;;;18755:224:64:o;215:373:89:-;;;;-1:-1:-1;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18755:224:64:o;215:373:89:-;;;-1:-1:-1;;8282:41:64;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:24:78;215:373:89;;;;;;;;2456:24:78;-1:-1:-1;215:373:89;;;;;-1:-1:-1;215:373:89;:::o;19077:1335:64:-;;19458:6;19077:1335;19335:6;;;;:::i;:::-;19458;;:::i;:::-;215:373:89;19481:14:64;215:373:89;;;;19480:15:64;19476:930;;19077:1335;:::o;19476:930::-;19669:19;215:373:89;;3708:45:66;19669:19:64;3708:45:66;19725:10:64;;;;;;19709:270;19996:17;;;19992:404;;19476:930;;19077:1335;:::o;19992:404::-;-1:-1:-1;;;;;215:373:89;;;;;;24680:25:64;215:373:89;;;;;20054:56:64;;;215:373:89;;;;;;20270:45:64;215:373:89;;;;;;:::i;:::-;;;20151:183:64;;215:373:89;20151:183:64;;;215:373:89;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;20151:183:64;;215:373:89;;;-1:-1:-1;;;215:373:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3708:45:66;215:373:89;;;;;;;;;;;;;;;;;;;2462:7:70:o;215:373:89:-;;;;-1:-1:-1;215:373:89;;;;;;;;;;;;;3708:45:66;215:373:89;;3708:45:66;215:373:89;;3708:45:66;215:373:89;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:89;;;;;;19714:9:64;3708:45:66;215:373:89;;;;;;19761:27:64;;215:373:89;-1:-1:-1;;;;;215:373:89;;;;;19761:40:64;19757:137;;215:373:89;19714:9:64;;;;19757:137;19825:23;;;19870:5;;;;8648:175;215:373:89;;;;;;-1:-1:-1;215:373:89;8758:21:64;215:373:89;;8758:58:64;:21;215:373:89;-1:-1:-1;215:373:89;8758:48:64;215:373:89;;;8758:58:64;:::i;:::-;215:373:89;;8648:175:64:o;21833:256::-;;;215:373:89;;2707:18:65;;;;;215:373:89;2707:18:65;;;;;;:::i;:::-;-1:-1:-1;;;;;21980:11:64;215:373:89;;;;;;;;;:::i;:::-;-1:-1:-1;215:373:89;;2707:18:65;3528:63;;215:373:89;;;;;;;;;;;;3528:63:65;;215:373:89;;-1:-1:-1;215:373:89;3489:15:65;2707:18;215:373:89;;-1:-1:-1;215:373:89;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;2707:18:65;215:373:89;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:89;;;;;22075:6:64;215:373:89;;-1:-1:-1;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:63:65;;215:373:89;;-1:-1:-1;;;;;215:373:89;;;;;;;;-1:-1:-1;;;;;3636:23:65;;;:::i;:::-;215:373:89;-1:-1:-1;;;;;215:373:89;21980:11:64;215:373:89;;;21980:11:64;215:373:89;;;;;;-1:-1:-1;215:373:89;;;;;;;;;2707:18:65;215:373:89;;;;;;;;;;;;;:::i;:::-;;;;;;2941:195:65;;;22075:6:64;:::i;215:373:89:-;;;;-1:-1:-1;215:373:89;;;;;;;;-1:-1:-1;215:373:89;2707:18:65;-1:-1:-1;215:373:89;;-1:-1:-1;215:373:89;-1:-1:-1;;215:373:89;;;;;;;;;;22075:6:64;215:373:89;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2707:18:65;215:373:89;;;;;;;2748:232:78;215:373:89;2815:14:78;215:373:89;;;;;;;;2811:147:78;;2748:232::o;13848:598::-;;;:::i;:::-;14096:9;:14;14092:70;;14198:10;215:373:89;;;;24680:25:64;215:373:89;;;;;16937:25:64;:52;215:373:89;16937:57:64;14172:88:78;;215:373:89;14275:14:78;215:373:89;;;;14274:15:78;14270:118;;14429:9;14096;14198:10;14429:9;:::i;14270:118::-;14347:9;14096;14198:10;14347:9;:::i;14172:88::-;215:373:89;;-1:-1:-1;;;14232:17:78;;;;;14613:767;;;:::i;:::-;14881:11;;14877:68;;15012:10;215:373:89;;;;24680:25:64;215:373:89;;;;;18222:25:64;:52;215:373:89;15038:15:78;;15034:77;;15124:20;-1:-1:-1;15124:20:78;15120:79;;215:373:89;15213:14:78;215:373:89;;;;15212:15:78;15208:116;;15366:6;15012:10;;15366:6;:::i;15208:116::-;15012:10;20862:6:64;21092;15012:10:78;;20862:6:64;:::i;:::-;20986;15012:10:78;;20986:6:64;:::i;15120:79:78:-;215:373:89;;-1:-1:-1;;;15167:21:78;;;;;14877:68;215:373:89;;-1:-1:-1;;;14915:19:78;;;;;8895:364:64;-1:-1:-1;;;;;215:373:89;-1:-1:-1;215:373:89;;;9022:21:64;215:373:89;;;;;9022:21:64;:48;215:373:89;;;9084:14:64;;;9080:81;;9171:15;;;:::i;:::-;215:373:89;-1:-1:-1;215:373:89;9022:21:64;215:373:89;;9022:21:64;215:373:89;-1:-1:-1;215:373:89;9196:48:64;215:373:89;8895:364:64:o;9080:81::-;215:373:89;;-1:-1:-1;;;9121:29:64;;;;;22135:259;;;215:373:89;;2064:18:65;;;;;215:373:89;2064:18:65;;;;;;:::i;:::-;-1:-1:-1;;;;;22283:11:64;215:373:89;;;;;;;;;:::i;:::-;2217:25:65;215:373:89;;2064:18:65;3528:63;;215:373:89;;;;;;;;;;;;3528:63:65;;215:373:89;;-1:-1:-1;215:373:89;3489:15:65;2064:18;215:373:89;;-1:-1:-1;215:373:89;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;2217:25:65;215:373:89;;;;:::i;:::-;2064:18:65;215:373:89;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:89;;;;;22380:6:64;215:373:89;;-1:-1:-1;215:373:89;;;;;;;2217:25:65;215:373:89;;;;;;;;;;;2217:25:65;215:373:89;;;;;;;;;;;;3528:63:65;;215:373:89;;-1:-1:-1;;;;;215:373:89;;;;;;;;-1:-1:-1;;;;;3636:23:65;;;:::i;:::-;215:373:89;-1:-1:-1;;;;;215:373:89;22283:11:64;215:373:89;;;22283:11:64;215:373:89;;;;;;2217:25:65;215:373:89;;;;;;;;;2064:18:65;215:373:89;;;;;;;;;;;;;:::i;:::-;;;;;;2299:196:65;;;22380:6:64;:::i;215:373:89:-;;;;-1:-1:-1;215:373:89;;;;;2217:25:65;215:373:89;;-1:-1:-1;215:373:89;2064:18:65;-1:-1:-1;215:373:89;;-1:-1:-1;215:373:89;-1:-1:-1;;215:373:89;;;;;;;;2217:25:65;215:373:89;22380:6:64;215:373:89;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:89;;;;;;;;;;;;;;;;;2217:25:65;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2217:25:65;215:373:89;;;;2064:18:65;215:373:89;;;;;;;15454:1520:78;215:373:89;15855:14:78;215:373:89;;;;15851:74:78;;15454:1520;16046:10;215:373:89;;;;24680:25:64;215:373:89;;;;;18222:25:64;:52;215:373:89;16071:11:78;;16067:73;;8720:53:33;16046:10:78;8720:53:33;:::i;:::-;;-1:-1:-1;16046:10:78;;215:373:89;;16254:16:78;215:373:89;;;;;;;;;;:::i;:::-;;;;15454:1520:78;215:373:89;;;;15855:14:78;215:373:89;;;;16297:15:78;16293:626;;16960:6;16046:10;;;16960:6;:::i;16293:626::-;215:373:89;21092:6:64;16046:10:78;;215:373:89;;16450:16:78;215:373:89;;;;16496:19:78;16492:262;;16293:626;16046:10;20862:6:64;16046:10:78;;20862:6:64;:::i;16492:262:78:-;215:373:89;16586:37:78;16724:14;215:373:89;18222:25:64;215:373:89;16586:37:78;:::i;:::-;18222:25:64;215:373:89;16665:10:78;16046;16665;:::i;16724:14::-;16492:262;;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;15851:74:78;;;:::i;:::-;;;2787:1388:33;-1:-1:-1;215:373:89;;;2990:12:33;215:373:89;;;;;;-1:-1:-1;;215:373:89;3024:15:33;;;;-1:-1:-1;;215:373:89;;;;;;;;;16201:17:78;215:373:89;;;;;;;;;;3506:26:33;;;3502:398;;3020:1149;215:373:89;;;16201:17:78;215:373:89;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;16201:17:78;215:373:89;;;2990:12:33;215:373:89;;;;;;2990:12:33;4104:11;:::o;215:373:89:-;-1:-1:-1;;;215:373:89;;;;;;;;3502:398:33;215:373:89;3572:22:33;3694:26;3572:22;;:::i;:::-;215:373:89;;;;;;3694:26:33;;;;:::i;215:373:89:-;;;;;2990:12:33;215:373:89;;;;;;3502:398:33;;;;;215:373:89;-1:-1:-1;;;215:373:89;;;;;;;;;-1:-1:-1;;;215:373:89;;;;;;;;3020:1149:33;4146:12;;;:::o;215:373:89:-;;;;;;;;;;;;;;;:::o;18548:1477:78:-;;;;18723:11;;18719:48;;215:373:89;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;18733:1:78;215:373:89;;;;;;;;;;18869:32:78;;;-1:-1:-1;20487:21:78;215:373:89;20478:30:78;;;:::i;:::-;215:373:89;;20529:35:78;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18865:553:78;215:373:89;;19626:19:78;;;19622:56;;19691:23;;;19687:60;;215:373:89;;;19848:9:78;;19859:18;;;;;;18548:1477;;;;;;;:::o;19848:9::-;215:373:89;;-1:-1:-1;;;;;19920:11:78;215:373:89;19920:11:78;;:::i;:::-;215:373:89;;;;19895:16:78;215:373:89;;;;;19895:54:78;215:373:89;;;19895:54:78;:::i;:::-;215:373:89;;;19848:9:78;;215:373:89;;;;;;;;;;;;-1:-1:-1;215:373:89;;;;;;18865:553:78;18980:38;215:373:89;18980:38:78;;;18976:442;215:373:89;;;;;;2503:51:78;;;;19263;;;;;215:373:89;;;;;;;;;;;19263:51:78;18976:442;215:373:89;;;2503:51:78;;;;19352:55;;;;;215:373:89;;;;;;;;;;;-1:-1:-1;;;215:373:89;;;;19352:55:78;215:373:89;-1:-1:-1;;;215:373:89;;;;;;;;21157:890:78;;215:373:89;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;215:373:89;;;:::i;:::-;;;;;;;;;;-1:-1:-1;7631:8:64;;;;;;21553:36:78;;-1:-1:-1;215:373:89;;;6312:27:64;215:373:89;;;6364:12:64;;;;6359:236;215:373:89;;;6359:236:64;215:373:89;;;;;;21640:20:78;215:373:89;;;;;;;;;;;;;;;;;;;21664:3:78;21726:229;215:373:89;;21726:229:78;;:::i;:::-;21970:6;;21966:75;;21157:890;;:::o;21966:75::-;215:373:89;;;;;;;;;;21999:31:78;;;;;;215:373:89;21999:31:78;;;215:373:89;21999:31:78;6364:12:64;215:373:89;;;;;;;;;6378:9:64;;;;;-1:-1:-1;215:373:89;;;598:23:71;215:373:89;;;;;;;;;;;;6480:45:64;;6494:31;;-1:-1:-1;;;;;215:373:89;6494:31:64;:::i;:::-;6480:45;;:::i;:::-;215:373:89;;;6364:12:64;;;;6378:9;;;;;;7620;-1:-1:-1;;;;;215:373:89;7692:12:64;;;;:::i;:::-;215:373:89;;-1:-1:-1;215:373:89;1317:17:72;215:373:89;;;;-1:-1:-1;215:373:89;;;1317:33:72;7657:116:64;;7829:12;7808:34;215:373:89;7829:12:64;;;;;:::i;:::-;215:373:89;;7808:34:64;:::i;:::-;7786:56;;;;:::i;:::-;215:373:89;;7620:9:64;;7657:116;7745:12;;;215:373:89;7745:12:64;;;:::i;:::-;215:373:89;;;-1:-1:-1;;;7732:26:64;;215:373:89;;7732:26:64;;;215:373:89;7732:26:64;1239:1329:60;215:373:89;;1239:1329:60;;215:373:89;;;1596:21:60;;1592:90;;215:373:89;;1696:38:60;;;;:76;;;1239:1329;1692:148;;1855:9;;;;;1850:568;1866:20;;;;;;2431:19;;;;;;;;2427:75;;215:373:89;2511:50:60;2527:33;1239:1329;:::o;2427:75::-;215:373:89;2466:25:60;215:373:89;2466:25:60;:::o;1855:9::-;2031:13;;;;;;1957:102;2031:13;;;;:::i;:::-;;1957:102;;:::i;:::-;215:373:89;;;;:::i;:::-;2073:116:60;;-1:-1:-1;;;;;215:373:89;2219:14:60;;;;:::i;:::-;215:373:89;;;;2206:27:60;2202:105;;2329:19;215:373:89;2338:10:60;;;;;:::i;:::-;215:373:89;2329:19:60;;:::i;:::-;215:373:89;;1855:9:60;;;;;;;2202:105;2253:39;;;;;;;;215:373:89;2253:39:60;2269:22;2253:39;:::o;2073:116::-;2135:39;;;;;;;;;215:373:89;2135:39:60;2151:22;2135:39;:::o;1692:148::-;1788:41;;;;;;;;215:373:89;1788:41:60;:::o;1696:76::-;215:373:89;;;1738:34:60;;;1696:76;;1592:90;1633:38;;;;;;;;1649:21;1633:38;:::o;2483:766:29:-;215:373:89;;;2483:766:29;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:29;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:29;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;6946:20:29;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;215:373:89;;;;;;;;;;6633:164:29;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o;22257:269:78:-;;22353:65;1682:2;22360:57;;22353:65;:::i;:::-;215:373:89;22465:1:78;215:373:89;;;;;;;-1:-1:-1;;215:373:89;;22465:1:78;215:373:89;;:::i;:::-;;;;;;;22445:24:78;-1:-1:-1;;;;;215:373:89;;22257:269:78:o;22598:481::-;22681:20;215:373:89;;;22723:9:78;22681:1;22734:10;;;;;;22598:481;;;;:::o;22723:9::-;22766:23;;;:::i;:::-;215:373:89;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;22766:31:78;22762:242;;215:373:89;;;;22723:9:78;;22762:242;215:373:89;;;;;;;;;;;;;;;;22843:32:78;22817:23;22843:32;;22817:58;22843:32;;:::i;:::-;215:373:89;;;;;;;22817:23:78;;:::i;:::-;:58;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;22817:58:78;215:373:89;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22984:5:78;;;;;;215:373:89;;;;;;22681:1:78;215:373:89;;;22681:1:78;215:373:89;;;;;;;22681:1:78;215:373:89;;;22681:1:78;215:373:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:89;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":309,"length":20}]}}},"methodIdentifiers":{"addBootstrapNode(string)":"10fd4261","claim()":"4e71d92d","claimRewardForRelayer()":"ed7c4da1","confirmChange(uint64)":"350a14bf","confirmNextChange()":"c7ebdaef","distributeRewardToRelayers(uint256,uint256,uint8)":"4c860af6","join(bytes)":"6170b162","kill()":"41c0e1b5","leave()":"d66d9e19","pause()":"8456cb59","paused()":"5c975abb","preFund()":"0b7fbe60","preRelease(uint256)":"66783c9b","setFederatedPower(address[],bytes[],uint256[])":"da5d09ee","stake()":"3a4b66f1","submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":"26811936","submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":"b9ee2bb9","unpause()":"3f4ba83a","unstake(uint256)":"2e17de78","validateActiveQuorumSignatures(address[],bytes32,bytes[])":"cc2dc2b9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchWithNoMessages\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotConfirmFutureChanges\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CollateralIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicatedGenesisValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFederationPayload\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPublicKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"InvalidSignatureErr\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxMsgsPerBatchExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoCollateralToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAllValidatorsHaveLeft\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughGenesisValidators\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOfPublicKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotStakedBefore\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyBootstrapped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyKilled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawExceedingCollateral\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"NextBottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct Validator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"SubnetBootstrapped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"netAddress\",\"type\":\"string\"}],\"name\":\"addBootstrapNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_configurationNumber\",\"type\":\"uint64\"}],\"name\":\"confirmChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"confirmNextChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"internalType\":\"enum QuorumObjKind\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"distributeRewardToRelayers\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"preFund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"preRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"publicKeys\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"powers\",\"type\":\"uint256[]\"}],\"name\":\"setFederatedPower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"validateActiveQuorumSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"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\":{\"addBootstrapNode(string)\":{\"params\":{\"netAddress\":\"The network address of the new bootstrap node.\"}},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"params\":{\"height\":\"The height of the checkpoint for which rewards are being distributed.\",\"kind\":\"The type of object for which rewards are being distributed.\",\"reward\":\"The total amount of reward to be distributed.\"}},\"join(bytes)\":{\"params\":{\"publicKey\":\"The off-chain 65 byte public key that should be associated with the validator.\"}},\"kill()\":{\"details\":\"It is not a privileged operation.\"},\"preFund()\":{\"details\":\"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply.\"},\"preRelease(uint256)\":{\"details\":\"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.\"},\"setFederatedPower(address[],bytes[],uint256[])\":{\"details\":\"method that allows the contract owner to set the validators' federated power.\",\"params\":{\"powers\":\"The federated powers to be assigned to validators.\",\"publicKeys\":\"The public keys of validators.\",\"validators\":\"The addresses of validators.\"}},\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"details\":\"It triggers the execution of a cross-net message batch.\",\"params\":{\"batch\":\"The batch of bottom-up messages.\",\"signatories\":\"The addresses of validators signing the batch.\",\"signatures\":\"The signatures of validators on the batch.\"}},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"details\":\"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.\",\"params\":{\"checkpoint\":\"The executed bottom-up checkpoint.\",\"signatories\":\"The addresses of validators signing the checkpoint.\",\"signatures\":\"The signatures of validators on the checkpoint.\"}},\"unstake(uint256)\":{\"details\":\"`leave` must be used to unstake the entire stake.\"},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"details\":\"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.\",\"params\":{\"hash\":\"The hash of the checkpoint.\",\"signatories\":\"The addresses of the signatories.\",\"signatures\":\"The packed signatures of the checkpoint.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addBootstrapNode(string)\":{\"notice\":\"Add a bootstrap node.\"},\"claim()\":{\"notice\":\"Validator claims their released collateral.\"},\"claimRewardForRelayer()\":{\"notice\":\"Relayer claims its reward.\"},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"notice\":\"Distributes rewards to relayers for a specific checkpoint.\"},\"join(bytes)\":{\"notice\":\"method that allows a validator to join the subnet\"},\"kill()\":{\"notice\":\"method that allows to kill the subnet when all validators left.\"},\"leave()\":{\"notice\":\"method that allows a validator to leave the subnet.\"},\"pause()\":{\"notice\":\"Pauses all contract functions with the `whenNotPaused` modifier.\"},\"paused()\":{\"notice\":\"sets if to pause the contract\"},\"preFund()\":{\"notice\":\"method to add some initial balance into a subnet that hasn't yet bootstrapped.\"},\"preRelease(uint256)\":{\"notice\":\"method to remove funds from the initial balance of a subnet.\"},\"setFederatedPower(address[],bytes[],uint256[])\":{\"notice\":\"Sets the federated power of validators.\"},\"stake()\":{\"notice\":\"method that allows a validator to increase its stake.\"},\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"notice\":\"Submits a batch of bottom-up messages for execution.\"},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"notice\":\"Submits a checkpoint commitment for execution.\"},\"unpause()\":{\"notice\":\"Unpauses all contract functions with the `whenNotPaused` modifier.\"},\"unstake(uint256)\":{\"notice\":\"method that allows a validator to unstake a part of its collateral from a subnet.\"},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"notice\":\"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/SubnetActor.sol\":\"SubnetActorManagerFacetMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c\",\"dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp\"]},\"test/mocks/SubnetActor.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"BatchWithNoMessages"},{"inputs":[],"type":"error","name":"CannotConfirmFutureChanges"},{"inputs":[],"type":"error","name":"CannotReleaseZero"},{"inputs":[],"type":"error","name":"CollateralIsZero"},{"inputs":[],"type":"error","name":"DuplicatedGenesisValidator"},{"inputs":[],"type":"error","name":"EmptyAddress"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidBatchEpoch"},{"inputs":[],"type":"error","name":"InvalidCheckpointEpoch"},{"inputs":[],"type":"error","name":"InvalidFederationPayload"},{"inputs":[],"type":"error","name":"InvalidPublicKeyLength"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"type":"error","name":"InvalidSignatureErr"},{"inputs":[],"type":"error","name":"MaxMsgsPerBatchExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NoCollateralToWithdraw"},{"inputs":[],"type":"error","name":"NotAllValidatorsHaveLeft"},{"inputs":[],"type":"error","name":"NotEnoughBalance"},{"inputs":[],"type":"error","name":"NotEnoughCollateral"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotEnoughGenesisValidators"},{"inputs":[],"type":"error","name":"NotGateway"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"NotOwnerOfPublicKey"},{"inputs":[],"type":"error","name":"NotStakedBefore"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotValidator"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"type":"error","name":"SubnetAlreadyBootstrapped"},{"inputs":[],"type":"error","name":"SubnetAlreadyKilled"},{"inputs":[],"type":"error","name":"WithdrawExceedingCollateral"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointExecuted","anonymous":false},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}],"indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointSubmitted","anonymous":false},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"NextBottomUpCheckpointExecuted","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"struct Validator[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"indexed":false}],"type":"event","name":"SubnetBootstrapped","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"string","name":"netAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addBootstrapNode"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardForRelayer"},{"inputs":[{"internalType":"uint64","name":"_configurationNumber","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"confirmChange"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"confirmNextChange"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"enum QuorumObjKind","name":"kind","type":"uint8"}],"stateMutability":"payable","type":"function","name":"distributeRewardToRelayers"},{"inputs":[{"internalType":"bytes","name":"publicKey","type":"bytes"}],"stateMutability":"payable","type":"function","name":"join"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"leave"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"preFund"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preRelease"},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"bytes[]","name":"publicKeys","type":"bytes[]"},{"internalType":"uint256[]","name":"powers","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"setFederatedPower"},{"inputs":[],"stateMutability":"payable","type":"function","name":"stake"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitBottomUpMsgBatch"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitCheckpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"},{"inputs":[{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"validateActiveQuorumSignatures"}],"devdoc":{"kind":"dev","methods":{"addBootstrapNode(string)":{"params":{"netAddress":"The network address of the new bootstrap node."}},"distributeRewardToRelayers(uint256,uint256,uint8)":{"params":{"height":"The height of the checkpoint for which rewards are being distributed.","kind":"The type of object for which rewards are being distributed.","reward":"The total amount of reward to be distributed."}},"join(bytes)":{"params":{"publicKey":"The off-chain 65 byte public key that should be associated with the validator."}},"kill()":{"details":"It is not a privileged operation."},"preFund()":{"details":"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply."},"preRelease(uint256)":{"details":"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps."},"setFederatedPower(address[],bytes[],uint256[])":{"details":"method that allows the contract owner to set the validators' federated power.","params":{"powers":"The federated powers to be assigned to validators.","publicKeys":"The public keys of validators.","validators":"The addresses of validators."}},"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"details":"It triggers the execution of a cross-net message batch.","params":{"batch":"The batch of bottom-up messages.","signatories":"The addresses of validators signing the batch.","signatures":"The signatures of validators on the batch."}},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"details":"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.","params":{"checkpoint":"The executed bottom-up checkpoint.","signatories":"The addresses of validators signing the checkpoint.","signatures":"The signatures of validators on the checkpoint."}},"unstake(uint256)":{"details":"`leave` must be used to unstake the entire stake."},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"details":"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.","params":{"hash":"The hash of the checkpoint.","signatories":"The addresses of the signatories.","signatures":"The packed signatures of the checkpoint."}}},"version":1},"userdoc":{"kind":"user","methods":{"addBootstrapNode(string)":{"notice":"Add a bootstrap node."},"claim()":{"notice":"Validator claims their released collateral."},"claimRewardForRelayer()":{"notice":"Relayer claims its reward."},"distributeRewardToRelayers(uint256,uint256,uint8)":{"notice":"Distributes rewards to relayers for a specific checkpoint."},"join(bytes)":{"notice":"method that allows a validator to join the subnet"},"kill()":{"notice":"method that allows to kill the subnet when all validators left."},"leave()":{"notice":"method that allows a validator to leave the subnet."},"pause()":{"notice":"Pauses all contract functions with the `whenNotPaused` modifier."},"paused()":{"notice":"sets if to pause the contract"},"preFund()":{"notice":"method to add some initial balance into a subnet that hasn't yet bootstrapped."},"preRelease(uint256)":{"notice":"method to remove funds from the initial balance of a subnet."},"setFederatedPower(address[],bytes[],uint256[])":{"notice":"Sets the federated power of validators."},"stake()":{"notice":"method that allows a validator to increase its stake."},"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"notice":"Submits a batch of bottom-up messages for execution."},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"notice":"Submits a checkpoint commitment for execution."},"unpause()":{"notice":"Unpauses all contract functions with the `whenNotPaused` modifier."},"unstake(uint256)":{"notice":"method that allows a validator to unstake a part of its collateral from a subnet."},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"notice":"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/mocks/SubnetActor.sol":"SubnetActorManagerFacetMock"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad","urls":["bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c","dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActor.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/mocks/SubnetActor.sol","id":56070,"exportedSymbols":{"LibStaking":[45464],"SubnetActorManagerFacet":[50947],"SubnetActorManagerFacetMock":[56069]},"nodeType":"SourceUnit","src":"46:543:89","nodes":[{"id":56032,"nodeType":"PragmaDirective","src":"46:23:89","nodes":[],"literals":["solidity","0.8",".19"]},{"id":56034,"nodeType":"ImportDirective","src":"71:85:89","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":56070,"sourceUnit":50948,"symbolAliases":[{"foreign":{"id":56033,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50947,"src":"79:23:89","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56036,"nodeType":"ImportDirective","src":"157:56:89","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../../src/lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":56070,"sourceUnit":45729,"symbolAliases":[{"foreign":{"id":56035,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"165:10:89","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56069,"nodeType":"ContractDefinition","src":"215:373:89","nodes":[{"id":56050,"nodeType":"FunctionDefinition","src":"285:124:89","nodes":[],"body":{"id":56049,"nodeType":"Block","src":"346:63:89","nodes":[],"statements":[{"expression":{"arguments":[{"id":56046,"name":"_configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56040,"src":"381:20:89","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":56043,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"356:10:89","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":56045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"367:13:89","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":45463,"src":"356:24:89","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":56047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"356:46:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56048,"nodeType":"ExpressionStatement","src":"356:46:89"}]},"functionSelector":"350a14bf","implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"294:13:89","parameters":{"id":56041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56040,"mutability":"mutable","name":"_configurationNumber","nameLocation":"315:20:89","nodeType":"VariableDeclaration","scope":56050,"src":"308:27:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":56039,"name":"uint64","nodeType":"ElementaryTypeName","src":"308:6:89","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"307:29:89"},"returnParameters":{"id":56042,"nodeType":"ParameterList","parameters":[],"src":"346:0:89"},"scope":56069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56068,"nodeType":"FunctionDefinition","src":"415:171:89","nodes":[],"body":{"id":56067,"nodeType":"Block","src":"453:133:89","nodes":[],"statements":[{"assignments":[56054,null],"declarations":[{"constant":false,"id":56054,"mutability":"mutable","name":"nextConfigNum","nameLocation":"471:13:89","nodeType":"VariableDeclaration","scope":56067,"src":"464:20:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":56053,"name":"uint64","nodeType":"ElementaryTypeName","src":"464:6:89","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":56058,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":56055,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"490:10:89","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":56056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"501:23:89","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":45253,"src":"490:34:89","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view returns (uint64,uint64)"}},"id":56057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"490:36:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"463:63:89"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":56064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56062,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56054,"src":"561:13:89","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":56063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"577:1:89","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"561:17:89","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":56059,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"536:10:89","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":56061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"547:13:89","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":45463,"src":"536:24:89","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":56065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"536:43:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56066,"nodeType":"ExpressionStatement","src":"536:43:89"}]},"functionSelector":"c7ebdaef","implemented":true,"kind":"function","modifiers":[],"name":"confirmNextChange","nameLocation":"424:17:89","parameters":{"id":56051,"nodeType":"ParameterList","parameters":[],"src":"441:2:89"},"returnParameters":{"id":56052,"nodeType":"ParameterList","parameters":[],"src":"453:0:89"},"scope":56069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":56037,"name":"SubnetActorManagerFacet","nameLocations":["255:23:89"],"nodeType":"IdentifierPath","referencedDeclaration":50947,"src":"255:23:89"},"id":56038,"nodeType":"InheritanceSpecifier","src":"255:23:89"}],"canonicalName":"SubnetActorManagerFacetMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56069,50947,43314,42733,46139,39978],"name":"SubnetActorManagerFacetMock","nameLocation":"224:27:89","scope":56070,"usedErrors":[32032,32040,36936,36940,36942,36950,36958,36960,36972,36974,36976,37006,37010,37016,37022,37030,37034,37038,37046,37048,37052,37058,37062,37064,37072,37078,37082,37094,37096,37098,37100,40522,42616,42619,43262]}],"license":"MIT OR Apache-2.0"},"id":89} \ No newline at end of file diff --git a/.out/SubnetActorDiamond.sol/SubnetActorDiamond.json b/.out/SubnetActorDiamond.sol/SubnetActorDiamond.json index fd5b01724..1f4d583f7 100644 --- a/.out/SubnetActorDiamond.sol/SubnetActorDiamond.json +++ b/.out/SubnetActorDiamond.sol/SubnetActorDiamond.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"}]}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"FunctionNotFound","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"GatewayCannotBeZero","inputs":[]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidMajorityPercentage","inputs":[]},{"type":"error","name":"InvalidPowerScale","inputs":[]},{"type":"error","name":"InvalidSubmissionPeriod","inputs":[]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotGateway","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080604052346106715761137c803803809161001c826080610faf565b60803960408112610671576080516001600160401b0381116106715760808201609f8201121561067157806080015161005481610fd2565b906100626040519283610faf565b8082526020820180938560800160208460051b836080010101116106715760a08101915b60a0600585901b8301018310610e5457505060a051939150506001600160401b03831161067157610160938381038513610671576040519485016001600160401b0381118682101761075d5760405260808401516001600160401b038111610671576100fa91608001908560800101611011565b845261010860a08401610fe9565b6020850181905260c0840151600181101561067157604086015260e084015160608601526101396101008501610ffd565b608086015261014b6101208501610ffd565b60a086015261014084015160ff811681036106715760c086015261016084015161ffff811681036106715760e0860152610100938481608001015185870152610120816080010151908160000b8203610671576101409161012088015260800101516003811015610671576101408601526001600160a01b031615610e425760a08401516001600160401b031615610e305760016101408501516101ee816110b4565b6101f7816110b4565b141580610e24575b610e125760ff60c08501511660338110908115610e07575b50610df557601261012085015160000b13610de3577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b03602082019081119082111761075d576020810160405260008152825160005b8181106107d55750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061077f5788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67389806102fa8b8b600060208501528382036040850152611181565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c98054909116821790556101408301516103be816110b4565b6103c7816110b4565b14610773575b81518051601080546001600160401b0319166001600160401b0392831617905560209190910151805191821161075d5768010000000000000000821161075d5760115482601155808310610728575b506020016011600052602060002060005b83811061070b57858560018060a01b03602083015116600e5490604084015160018110156106f5576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040516104e881610f79565b6010546001600160401b0316815260405160118054808352600091825260008051602061131c83398151915291839160208301915b8181106106d357505061053292500382610faf565b6020820152610574600073__$a0fe38a9a81205afccc10810b09a4d3f45$__926040518093819263aa5106cb60e01b83526040600484015260448301906110be565b3060248301520381855af490811561067e5760009161068a575b506020906105b89260405180809581946390ba52cf60e01b835286600484015260248301906110be565b03915af490811561067e57600091610647575b50600d55610140810151906105df826110b4565b6105e8826110b4565b60ff62ffff0060e0601354936064600855600a60018060401b03196009541617600955015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c5560405160eb90816112318239f35b90506020813d602011610676575b8161066260209383610faf565b810103126106715751826105cb565b600080fd5b3d9150610655565b6040513d6000823e3d90fd5b90503d806000833e61069c8183610faf565b810191602082840312610671578151916001600160401b038311610671576105b8936020936106cb9201611011565b91509161058e565b84546001600160a01b031683526001948501948694506020909301920161051d565b634e487b7160e01b600052602160045260246000fd5b82516001600160a01b03168183015560209092019160010161042d565b601160005260008051602061131c833981519152908382015b818301811061075157505061041c565b60008155600101610741565b634e487b7160e01b600052604160045260246000fd5b600060608301526103cd565b909192946020806107c7600193607f198b8203018652606060408b51878060a01b038151168452858101516107b3816110b4565b868501520151918160408201520190611143565b9701920192019092916102b5565b60406107e18287611119565b5101516001600160a01b036107f68388611119565b51511690805115610dca57602061080d8489611119565b510151610819816110b4565b610822816110b4565b80610a24575081156109fb5761ffff60008051602061133c83398151915254169161088c60405161085281610f94565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b6040820152826111f1565b8151916000935b8385106108a95750505050506001905b01610287565b6001600160e01b03196108bc8684611119565b5116600081815260008051602061135c83398151915260205260409020546001600160a01b03166109e3576109526040516108f681610f79565b85815261ffff84166020808301918252600085815260008051602061135c833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b60008051602061133c83398151915254906801000000000000000082101561075d576109948260016109b1940160008051602061133c833981519152556111c1565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff808216146109cd57600161ffff81921601940193610893565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610a20906024830190611143565b0390fd5b610a2d816110b4565b60018103610b9457508115610b6f57610a8c604051610a4b81610f94565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b6040820152836111f1565b80519060005b828110610aa557505050506001906108a3565b6001600160e01b0319610ab88284611119565b5116600081815260008051602061135c83398151915260205260409020546001600160a01b0316308114610b5657858114610b3d5715610b2557600090815260008051602061135c8339815191526020526040902080546001600160a01b03191685179055600101610a92565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610a20906024830190611143565b610b9d816110b4565b60028103610daa575060008051602061133c833981519152549180610d92575080519060005b828110610bd657505050506001906108a3565b6001600160e01b0319610be98284611119565b5116908160005260008051602061135c83398151915260205260406000209460405195610c1587610f79565b546001600160a01b03811680885260a09190911c61ffff16602088015215610d795785516001600160a01b03163014610d605780156109cd576000190180958161ffff60208301511603610ce5575b505060008051602061133c83398151915254918215610ccf5760019260001901610c8d816111c1565b63ffffffff82549160031b1b1916905560008051602061133c8339815191525560005260008051602061135c8339815191526020526000604081205501610bc3565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610cf6610d59946111c1565b90549060031b1c60e01b92610d13846109948585850151166111c1565b01516001600160e01b0319909216600090815260008051602061135c83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610c64565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610dc3816110b4565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610217565b6040516368f7a67560e11b8152600490fd5b506060840151156101ff565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161067157606090830160808101908903601f1901821361067157604051918083016001600160401b03811184821017610f6457604052610ea260208301610fe9565b8352604082015160038110156106715760208401528101516001600160401b0381116106715789608001603f8284010112156106715760208183010151610ee881610fd2565b92610ef66040519485610faf565b81845260208401908c60800160408460051b86840101011161067157604084820101915b60408460051b86840101018310610f435750505050506040820152815260209283019201610086565b82516001600160e01b03198116810361067157815260209283019201610f1a565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b0382111761075d57604052565b606081019081106001600160401b0382111761075d57604052565b601f909101601f19168101906001600160401b0382119082101761075d57604052565b6001600160401b03811161075d5760051b60200190565b51906001600160a01b038216820361067157565b51906001600160401b038216820361067157565b9190604083820312610671576040519261102a84610f79565b8361103482610ffd565b815260208281015190926001600160401b03821161067157019280601f8501121561067157835161106481610fd2565b946110726040519687610faf565b818652848087019260051b8201019283116106715784809101915b83831061109c57505050500152565b81906110a784610fe9565b815201910190849061108d565b600311156106f557565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b8281106110fc575050505090565b83516001600160a01b0316855293810193928101926001016110ee565b805182101561112d5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b828110611163575050505090565b83516001600160e01b03191685529381019392810192600101611155565b919082519283825260005b8481106111ad575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161118c565b9060008051602061133c833981519152805483101561112d57600052601c60206000208360031c019260021b1690565b803b156111fc575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610a2090604483019061118156fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122034477731f6063883c0c4e645241b575decdff772ed0eed5c444e648eaad09a2e64736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","sourceMap":"923:5164:35:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;923:5164:35;;;;-1:-1:-1;;;;;;;923:5164:35;;;;;;;;;;-1:-1:-1;923:5164:35;;;;;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;923:5164:35;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;923:5164:35;1537:35;1533:94;;923:5164;;;;-1:-1:-1;;;;;923:5164:35;1703:31;1699:94;;923:5164;;;;;;;;:::i;:::-;;;;:::i;:::-;1806:49;;:88;;;923:5164;1802:145;;923:5164;;;;;;1988:2;1960:30;;:65;;;;;923:5164;1956:130;;;2119:2;923:5164;;;;-1:-1:-1;923:5164:35;2099:22;2095:79;;2258:16:57;923:5164:35;;-1:-1:-1;;;;;;923:5164:35;2212:10;923:5164;;;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;-1:-1:-1;923:5164:35;;;;;;;;-1:-1:-1;923:5164:35;;;;-1:-1:-1;2937:19:57;;;;;;923:5164:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;923:5164:35;;;;;;;;;3911:74:57;923:5164:35;;;;;-1:-1:-1;923:5164:35;;;;;;;;;;;;:::i;:::-;3911:74:57;;;2443:22:35;923:5164;;;;;;-1:-1:-1;;923:5164:35;;;;;;;;;;;;;;;;;-1:-1:-1;;;;923:5164:35;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;2656:49;2652:170;;923:5164;2845:15;;923:5164;;2832:10;923:5164;;-1:-1:-1;;;;;;923:5164:35;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;923:5164:35;;-1:-1:-1;923:5164:35;-1:-1:-1;923:5164:35;;;;;;;;;;;;;;;;;;2870:16;923:5164;;;;;;;;;;;;2119:2;923:5164;;;;;;-1:-1:-1;;923:5164:35;;;;;;;;;;;2960:25;923:5164;;;;;3028:15;923:5164;;-1:-1:-1;;;;;;923:5164:35;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;;;;3076:21;923:5164;;;;;-1:-1:-1;;;;;;923:5164:35;;;;;;;;;;;-1:-1:-1;;;923:5164:35;;;;;2870:16;923:5164;;;;;;;;;;;;;;;;;;;;3236:16;923:5164;;;;;;:::i;:::-;2832:10;923:5164;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;-1:-1:-1;923:5164:35;;;-1:-1:-1;;;;;;;;;;;923:5164:35;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;3308:25:35;923:5164;;;;;;;;;;3308:40;;923:5164;3308:40;;;923:5164;;;;;;:::i;:::-;3342:4;923:5164;;;;3308:40;;;;;;;;;;-1:-1:-1;3308:40:35;;;923:5164;;;;;;;;;;;;;;;;3308:49;;;:40;:49;;923:5164;;;;;;:::i;:::-;3308:49;;;;;;;;;-1:-1:-1;3308:49:35;;;923:5164;;3286:19;923:5164;;;;;;;;;:::i;:::-;;;;:::i;:::-;;246:2:73;923:5164:35;3367:14;923:5164;;282:3:73;3613:24:35;923:5164;2960:25;923:5164;;;;;;3662:25;923:5164;;;3662:25;923:5164;;246:2:73;3613:24:35;246:2:73;;923:5164:35;;246:2:73;;;;;;3367:14:35;246:2:73;15673:1:64;923:5164:35;15673:1:64;;;;;3896:11:35;923:5164;15673:1:64;;3896:11:35;15673:1:64;923:5164:35;;;;;;;;;3308:49;;;923:5164;3308:49;;923:5164;3308:49;;;;;;923:5164;3308:49;;;:::i;:::-;;;923:5164;;;;;3308:49;;;923:5164;-1:-1:-1;923:5164:35;;3308:49;;;-1:-1:-1;3308:49:35;;;923:5164;;;-1:-1:-1;923:5164:35;;;;;3308:40;;;;;-1:-1:-1;3308:40:35;;;;;;:::i;:::-;;;923:5164;;;;;;;;;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;;:::i;:::-;3308:40;;;;;923:5164;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;-1:-1:-1;923:5164:35;;;;;;;;;;;;-1:-1:-1;923:5164:35;;;;;-1:-1:-1;923:5164:35;;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;;;;;;-1:-1:-1;923:5164:35;-1:-1:-1;;;;;;;;;;;923:5164:35;;;;;;;;;;;;;;;;;-1:-1:-1;923:5164:35;;;;;;;;;;-1:-1:-1;923:5164:35;;;;;-1:-1:-1;923:5164:35;2652:170;-1:-1:-1;923:5164:35;;;;2652:170;;923:5164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2917:18:57;923:5164:35;3010:23:57;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:57;;;;:::i;:::-;;923:5164:35;;;;;3142:29:57;3138:122;;923:5164:35;3309:23:57;;;;:::i;:::-;;:30;923:5164:35;;;;:::i;:::-;;;;:::i;:::-;3357:37:57;;;4150:27;;;4146:116;;923:5164:35;-1:-1:-1;;;;;;;;;;;923:5164:35;;;4385:74:57;923:5164:35;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;923:5164:35;;;;4385:74:57;;:::i;:::-;923:5164:35;;4526:21:57;-1:-1:-1;4521:677:57;4549:22;;;;;;3353:466;;;;;923:5164:35;3353:466:57;;923:5164:35;2917:18:57;;4526:21;-1:-1:-1;;;;;;4607:33:57;;;;:::i;:::-;923:5164:35;;-1:-1:-1;923:5164:35;;;-1:-1:-1;;;;;;;;;;;923:5164:35;;;;;;-1:-1:-1;;;;;923:5164:35;4751:128:57;;923:5164:35;;;;;;:::i;:::-;;;;;;;;4939:107:57;;;923:5164:35;;;-1:-1:-1;923:5164:35;;;-1:-1:-1;;;;;;;;;;;923:5164:35;;;;;;;;;;246:2:73;;-1:-1:-1;;;;;;923:5164:35;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;-1:-1:-1;;;923:5164:35;;;;;;-1:-1:-1;;;;;;;;;;;923:5164:35;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;923:5164:35;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:57;;;923:5164:35;;;;-1:-1:-1;923:5164:35;;;;;-1:-1:-1;923:5164:35;4751:128:57;923:5164:35;;;;4811:53:57;;;;;;;;;923:5164:35;4811:53:57;4146:116;923:5164:35;;-1:-1:-1;;;4200:51:57;;923:5164:35;4200:51:57;;;923:5164:35;;;;;;;;;;;:::i;:::-;4200:51:57;;;3353:466;923:5164:35;;;:::i;:::-;;3484:41:57;;923:5164:35;;5372:27:57;;;5368:131;;5508:81;923:5164:35;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;923:5164:35;;;;5508:81:57;;:::i;:::-;923:5164:35;;5652:21:57;-1:-1:-1;5675:18:57;;;;;;3480:339;;;;923:5164:35;3480:339:57;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:57;;;;:::i;:::-;923:5164:35;;-1:-1:-1;923:5164:35;;;-1:-1:-1;;;;;;;;;;;923:5164:35;;;;;;-1:-1:-1;;;;;923:5164:35;6011:4:57;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;-1:-1:-1;923:5164:35;;;-1:-1:-1;;;;;;;;;;;923:5164:35;;;;;;;-1:-1:-1;;;;;;923:5164:35;;;;;;;5652:21:57;;6268:123;923:5164:35;;;;6328:48:57;;;;;;;;;923:5164:35;6328:48:57;6111:144;923:5164:35;;-1:-1:-1;;;6174:66:57;;;;;923:5164:35;;;;;6174:66:57;5980:118;923:5164:35;;-1:-1:-1;;;6043:40:57;;;;;923:5164:35;;;;;6043:40:57;5368:131;923:5164:35;;-1:-1:-1;;;5422:66:57;;923:5164:35;5422:66:57;;;923:5164:35;;;;;;;;;;;:::i;3480:339:57:-;923:5164:35;;;:::i;:::-;3629:30:57;3619:40;;3629:30;;923:5164:35;-1:-1:-1;;;;;;;;;;;923:5164:35;6826:27:57;;6822:115;;923:5164:35;;;6999:21:57;-1:-1:-1;7022:18:57;;;;;;3615:204;;;;923:5164:35;3615:204:57;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:57;;;;:::i;:::-;923:5164:35;;;;-1:-1:-1;923:5164:35;-1:-1:-1;;;;;;;;;;;923:5164:35;;;-1:-1:-1;923:5164:35;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;;;;;;7278:61:57;7274:153;;923:5164:35;;-1:-1:-1;;;;;923:5164:35;7597:4:57;7538:64;7534:149;;923:5164:35;;;;;;;7747:15:57;923:5164:35;;;;;;246:2:73;923:5164:35;7780:68:57;7776:412;;6999:21;923:5164:35;;-1:-1:-1;;;;;;;;;;;923:5164:35;;;;;;;;-1:-1:-1;;923:5164:35;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;923:5164:35;-1:-1:-1;923:5164:35;-1:-1:-1;;;;;;;;;;;923:5164:35;;-1:-1:-1;923:5164:35;;;;;6999:21:57;;923:5164:35;;;;-1:-1:-1;923:5164:35;;;;;-1:-1:-1;923:5164:35;7776:412:57;923:5164:35;;7890:27:57;8033:140;7890:27;;:::i;:::-;923:5164:35;;;;;;;;;7935:80:57;923:5164:35;7935:65:57;923:5164:35;;;;246:2:73;923:5164:35;7935:65:57;:::i;:80::-;923:5164:35;246:2:73;-1:-1:-1;;;;;;923:5164:35;;;-1:-1:-1;923:5164:35;;;-1:-1:-1;;;;;;;;;;;923:5164:35;;;;;;;-1:-1:-1;;;;923:5164:35;;;;;;;-1:-1:-1;;;923:5164:35;;;;;8033:140:57;7776:412;;;;7534:149;923:5164:35;;-1:-1:-1;;;7629:39:57;;;;;923:5164:35;;;;;7629:39:57;7274:153;923:5164:35;;-1:-1:-1;;;7366:46:57;;;;;923:5164:35;;;;;7366:46:57;6822:115;923:5164:35;;;;6876:50:57;;;;;;;;;923:5164:35;6876:50:57;3615:204;923:5164:35;;-1:-1:-1;;;3773:31:57;;923:5164:35;;;;;:::i;:::-;3773:31:57;;;923:5164:35;3773:31:57;3138:122;923:5164:35;;-1:-1:-1;;;3198:47:57;;;;;923:5164:35;;;;;3198:47:57;2095:79:35;923:5164;;-1:-1:-1;;;2144:19:35;;;;;1956:130;923:5164;;-1:-1:-1;;;2048:27:35;;;;;1960:65;2022:3;1994:31;;;1960:65;;;1802:145;923:5164;;-1:-1:-1;;;1917:19:35;;;;;1806:88;923:5164;;;;;1859:35;1806:88;;1699:94;923:5164;;-1:-1:-1;;;1757:25:35;;;;;1533:94;923:5164;;-1:-1:-1;;;1595:21:35;;;;;923:5164;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;;;;-1:-1:-1;;923:5164:35;;-1:-1:-1;923:5164:35;;;;;;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;923:5164:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;923:5164:35;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;923:5164:35;;;;;;;:::o;:::-;;;;;-1:-1:-1;;923:5164:35;;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;923:5164:35;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;923:5164:35;;;;;;:::o;:::-;;;-1:-1:-1;;;;;923:5164:35;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;923:5164:35;;;:::o;:::-;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;923:5164:35;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;923:5164:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;923:5164:35;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;923:5164:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;923:5164:35;;;;;;;-1:-1:-1;923:5164:35;;;-1:-1:-1;923:5164:35;;;;;;;;;;:::o;9308:320:57:-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;923:5164:35;;;-1:-1:-1;;;9566:45:57;;-1:-1:-1;;;;;923:5164:35;;;9566:45:57;;;923:5164:35;;;;;;;;;;;;;;;:::i","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1342,"length":20}]}}},"deployedBytecode":{"object":"0x60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122034477731f6063883c0c4e645241b575decdff772ed0eed5c444e648eaad09a2e64736f6c63430008130033","sourceMap":"923:5164:35:-:0;;;;;;;-1:-1:-1;4605:7:35;;-1:-1:-1;;;;;;4605:7:35;260:43:57;;;;;;923:5164:35;260:43:57;;;-1:-1:-1;;;;;260:43:57;;4640:19:35;;4636:82;;923:5164;;;;;4862:593;;;923:5164;;4862:593;;;;;;;;;;;;;;;;;4636:82;-1:-1:-1;;;923:5164:35;4682:25;-1:-1:-1;;;;;;260:43:57;4682:25:35;260:43:57;-1:-1:-1;;260:43:57;4682:25:35;923:5164;4682:25;923:5164;5946:16;260:43:57;-1:-1:-1;;;;;260:43:57;5932:10:35;:30;5928:80;;923:5164;5928:80;5985:12;;;923:5164;5985:12;;923:5164;5985:12","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"FunctionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GatewayCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMajorityPercentage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPowerScale\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubmissionPeriod\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SubnetActorDiamond.sol\":\"SubnetActorDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b\",\"dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"type":"error","name":"FunctionNotFound"},{"inputs":[],"type":"error","name":"GatewayCannotBeZero"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidMajorityPercentage"},{"inputs":[],"type":"error","name":"InvalidPowerScale"},{"inputs":[],"type":"error","name":"InvalidSubmissionPeriod"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[],"type":"error","name":"NotGateway"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SubnetActorDiamond.sol":"SubnetActorDiamond"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87","urls":["bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b","dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/SubnetActorDiamond.sol","id":36178,"exportedSymbols":{"BATCH_PERIOD":[48391],"ConsensusType":[36918],"FunctionNotFound":[35796],"GatewayCannotBeZero":[36968],"IDiamond":[39732],"IDiamondCut":[39751],"IDiamondLoupe":[39792],"IERC165":[39803],"InvalidCollateral":[36984],"InvalidMajorityPercentage":[36996],"InvalidPowerScale":[36998],"InvalidSubmissionPeriod":[37012],"LibDiamond":[41229],"LibStaking":[45464],"MAX_MSGS_PER_BATCH":[48388],"NotGateway":[37046],"PermissionMode":[48648],"SubnetActorDiamond":[36177],"SubnetActorStorage":[46085],"SubnetID":[48557],"SubnetIDHelper":[46876]},"nodeType":"SourceUnit","src":"46:6042:35","nodes":[{"id":35761,"nodeType":"PragmaDirective","src":"46:23:35","nodes":[],"literals":["solidity","0.8",".19"]},{"id":35763,"nodeType":"ImportDirective","src":"71:67:35","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":36178,"sourceUnit":46140,"symbolAliases":[{"foreign":{"id":35762,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"79:18:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35765,"nodeType":"ImportDirective","src":"139:56:35","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"./enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":36178,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":35764,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"147:13:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35767,"nodeType":"ImportDirective","src":"196:51:35","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":36178,"sourceUnit":39733,"symbolAliases":[{"foreign":{"id":35766,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"204:8:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35769,"nodeType":"ImportDirective","src":"248:57:35","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"./interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":36178,"sourceUnit":39752,"symbolAliases":[{"foreign":{"id":35768,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39751,"src":"256:11:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35771,"nodeType":"ImportDirective","src":"306:61:35","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"./interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":36178,"sourceUnit":39793,"symbolAliases":[{"foreign":{"id":35770,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39792,"src":"314:13:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35773,"nodeType":"ImportDirective","src":"368:49:35","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"./interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":36178,"sourceUnit":39804,"symbolAliases":[{"foreign":{"id":35772,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39803,"src":"376:7:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35780,"nodeType":"ImportDirective","src":"418:161:35","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"./errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":36178,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":35774,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36968,"src":"426:19:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35775,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37046,"src":"447:10:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35776,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37012,"src":"459:23:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35777,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36984,"src":"484:17:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35778,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36996,"src":"503:25:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35779,"name":"InvalidPowerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36998,"src":"530:17:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35783,"nodeType":"ImportDirective","src":"580:72:35","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"./structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":36178,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":35781,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48391,"src":"588:12:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35782,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48388,"src":"602:18:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35785,"nodeType":"ImportDirective","src":"653:48:35","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"./lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36178,"sourceUnit":41230,"symbolAliases":[{"foreign":{"id":35784,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"661:10:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35788,"nodeType":"ImportDirective","src":"702:62:35","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":36178,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":35786,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"710:8:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":35787,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"720:14:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35790,"nodeType":"ImportDirective","src":"765:56:35","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"./lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":36178,"sourceUnit":46877,"symbolAliases":[{"foreign":{"id":35789,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46876,"src":"773:14:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35792,"nodeType":"ImportDirective","src":"822:48:35","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"./lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":36178,"sourceUnit":45729,"symbolAliases":[{"foreign":{"id":35791,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"830:10:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":35796,"nodeType":"ErrorDefinition","src":"872:49:35","nodes":[],"errorSelector":"5416eb98","name":"FunctionNotFound","nameLocation":"878:16:35","parameters":{"id":35795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35794,"mutability":"mutable","name":"_functionSelector","nameLocation":"902:17:35","nodeType":"VariableDeclaration","scope":35796,"src":"895:24:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":35793,"name":"bytes4","nodeType":"ElementaryTypeName","src":"895:6:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"894:26:35"}},{"id":36177,"nodeType":"ContractDefinition","src":"923:5164:35","nodes":[{"id":35799,"nodeType":"VariableDeclaration","src":"957:29:35","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"985:1:35","scope":36177,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":35798,"nodeType":"UserDefinedTypeName","pathNode":{"id":35797,"name":"SubnetActorStorage","nameLocations":["957:18:35"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"957:18:35"},"referencedDeclaration":46085,"src":"957:18:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":35803,"nodeType":"UsingForDirective","src":"993:34:35","nodes":[],"global":false,"libraryName":{"id":35800,"name":"SubnetIDHelper","nameLocations":["999:14:35"],"nodeType":"IdentifierPath","referencedDeclaration":46876,"src":"999:14:35"},"typeName":{"id":35802,"nodeType":"UserDefinedTypeName","pathNode":{"id":35801,"name":"SubnetID","nameLocations":["1018:8:35"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1018:8:35"},"referencedDeclaration":48557,"src":"1018:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}}},{"id":35829,"nodeType":"StructDefinition","src":"1033:399:35","nodes":[],"canonicalName":"SubnetActorDiamond.ConstructorParams","members":[{"constant":false,"id":35806,"mutability":"mutable","name":"parentId","nameLocation":"1077:8:35","nodeType":"VariableDeclaration","scope":35829,"src":"1068:17:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":35805,"nodeType":"UserDefinedTypeName","pathNode":{"id":35804,"name":"SubnetID","nameLocations":["1068:8:35"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1068:8:35"},"referencedDeclaration":48557,"src":"1068:8:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":35808,"mutability":"mutable","name":"ipcGatewayAddr","nameLocation":"1103:14:35","nodeType":"VariableDeclaration","scope":35829,"src":"1095:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35807,"name":"address","nodeType":"ElementaryTypeName","src":"1095:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35811,"mutability":"mutable","name":"consensus","nameLocation":"1141:9:35","nodeType":"VariableDeclaration","scope":35829,"src":"1127:23:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},"typeName":{"id":35810,"nodeType":"UserDefinedTypeName","pathNode":{"id":35809,"name":"ConsensusType","nameLocations":["1127:13:35"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"1127:13:35"},"referencedDeclaration":36918,"src":"1127:13:35","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":35813,"mutability":"mutable","name":"minActivationCollateral","nameLocation":"1168:23:35","nodeType":"VariableDeclaration","scope":35829,"src":"1160:31:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35812,"name":"uint256","nodeType":"ElementaryTypeName","src":"1160:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35815,"mutability":"mutable","name":"minValidators","nameLocation":"1208:13:35","nodeType":"VariableDeclaration","scope":35829,"src":"1201:20:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":35814,"name":"uint64","nodeType":"ElementaryTypeName","src":"1201:6:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":35817,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1238:19:35","nodeType":"VariableDeclaration","scope":35829,"src":"1231:26:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":35816,"name":"uint64","nodeType":"ElementaryTypeName","src":"1231:6:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":35819,"mutability":"mutable","name":"majorityPercentage","nameLocation":"1273:18:35","nodeType":"VariableDeclaration","scope":35829,"src":"1267:24:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":35818,"name":"uint8","nodeType":"ElementaryTypeName","src":"1267:5:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":35821,"mutability":"mutable","name":"activeValidatorsLimit","nameLocation":"1308:21:35","nodeType":"VariableDeclaration","scope":35829,"src":"1301:28:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":35820,"name":"uint16","nodeType":"ElementaryTypeName","src":"1301:6:35","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":35823,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"1347:14:35","nodeType":"VariableDeclaration","scope":35829,"src":"1339:22:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35822,"name":"uint256","nodeType":"ElementaryTypeName","src":"1339:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35825,"mutability":"mutable","name":"powerScale","nameLocation":"1376:10:35","nodeType":"VariableDeclaration","scope":35829,"src":"1371:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":35824,"name":"int8","nodeType":"ElementaryTypeName","src":"1371:4:35","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":35828,"mutability":"mutable","name":"permissionMode","nameLocation":"1411:14:35","nodeType":"VariableDeclaration","scope":35829,"src":"1396:29:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"typeName":{"id":35827,"nodeType":"UserDefinedTypeName","pathNode":{"id":35826,"name":"PermissionMode","nameLocations":["1396:14:35"],"nodeType":"IdentifierPath","referencedDeclaration":48648,"src":"1396:14:35"},"referencedDeclaration":48648,"src":"1396:14:35","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"1040:17:35","scope":36177,"visibility":"public"},{"id":36101,"nodeType":"FunctionDefinition","src":"1438:2778:35","nodes":[],"body":{"id":36100,"nodeType":"Block","src":"1523:2693:35","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":35845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35839,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"1537:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":35840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1544:14:35","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":35808,"src":"1537:21:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":35843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1570:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":35842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1562:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":35841,"name":"address","nodeType":"ElementaryTypeName","src":"1562:7:35","typeDescriptions":{}}},"id":35844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1562:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1537:35:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35850,"nodeType":"IfStatement","src":"1533:94:35","trueBody":{"id":35849,"nodeType":"Block","src":"1574:53:35","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":35846,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36968,"src":"1595:19:35","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":35847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1595:21:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35848,"nodeType":"RevertStatement","src":"1588:28:35"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":35854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35851,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"1703:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":35852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1710:19:35","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":35817,"src":"1703:26:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":35853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1733:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1703:31:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35859,"nodeType":"IfStatement","src":"1699:94:35","trueBody":{"id":35858,"nodeType":"Block","src":"1736:57:35","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":35855,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37012,"src":"1757:23:35","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":35856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1757:25:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35857,"nodeType":"RevertStatement","src":"1750:32:35"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":35869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"id":35864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35860,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"1806:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":35861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1813:14:35","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":35828,"src":"1806:21:35","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":35862,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"1831:14:35","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":35863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1846:9:35","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":48646,"src":"1831:24:35","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"src":"1806:49:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":35868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35865,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"1859:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":35866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1866:23:35","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":35813,"src":"1859:30:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":35867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1893:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1859:35:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1806:88:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35874,"nodeType":"IfStatement","src":"1802:145:35","trueBody":{"id":35873,"nodeType":"Block","src":"1896:51:35","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":35870,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36984,"src":"1917:17:35","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":35871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1917:19:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35872,"nodeType":"RevertStatement","src":"1910:26:35"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":35883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":35878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35875,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"1960:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":35876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1967:18:35","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":35819,"src":"1960:25:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3531","id":35877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1988:2:35","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"1960:30:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":35882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35879,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"1994:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":35880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2001:18:35","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":35819,"src":"1994:25:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":35881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2022:3:35","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1994:31:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1960:65:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35888,"nodeType":"IfStatement","src":"1956:130:35","trueBody":{"id":35887,"nodeType":"Block","src":"2027:59:35","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":35884,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36996,"src":"2048:25:35","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":35885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2048:27:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35886,"nodeType":"RevertStatement","src":"2041:34:35"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":35892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35889,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"2099:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":35890,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2106:10:35","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":35825,"src":"2099:17:35","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3138","id":35891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2119:2:35","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"2099:22:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35897,"nodeType":"IfStatement","src":"2095:79:35","trueBody":{"id":35896,"nodeType":"Block","src":"2123:51:35","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":35893,"name":"InvalidPowerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36998,"src":"2144:17:35","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":35894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2144:19:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35895,"nodeType":"RevertStatement","src":"2137:26:35"}]}},{"expression":{"arguments":[{"expression":{"id":35901,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2212:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":35902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2216:6:35","memberName":"sender","nodeType":"MemberAccess","src":"2212:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":35898,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"2184:10:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":35900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2195:16:35","memberName":"setContractOwner","nodeType":"MemberAccess","referencedDeclaration":40649,"src":"2184:27:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":35903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2184:39:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35904,"nodeType":"ExpressionStatement","src":"2184:39:35"},{"expression":{"arguments":[{"id":35908,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35833,"src":"2269:11:35","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"hexValue":"30","id":35911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2297:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":35910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2289:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":35909,"name":"address","nodeType":"ElementaryTypeName","src":"2289:7:35","typeDescriptions":{}}},"id":35912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2289:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":35915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2322:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":35914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2312:9:35","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":35913,"name":"bytes","nodeType":"ElementaryTypeName","src":"2316:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":35916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2312:12:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":35905,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"2233:10:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":35907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2244:10:35","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":40809,"src":"2233:21:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":35917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2256:11:35","2282:5:35","2301:9:35"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"2233:93:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35918,"nodeType":"ExpressionStatement","src":"2233:93:35"},{"assignments":[35923],"declarations":[{"constant":false,"id":35923,"mutability":"mutable","name":"ds","nameLocation":"2371:2:35","nodeType":"VariableDeclaration","scope":36100,"src":"2337:36:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":35922,"nodeType":"UserDefinedTypeName","pathNode":{"id":35921,"name":"LibDiamond.DiamondStorage","nameLocations":["2337:10:35","2348:14:35"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"2337:25:35"},"referencedDeclaration":40619,"src":"2337:25:35","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":35927,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":35924,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"2376:10:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":35925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2387:14:35","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":40631,"src":"2376:25:35","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$40619_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":35926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:27:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2337:66:35"},{"expression":{"id":35937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35928,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35923,"src":"2443:2:35","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2446:19:35","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":40616,"src":"2443:22:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":35935,"indexExpression":{"expression":{"arguments":[{"id":35931,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39803,"src":"2471:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$39803_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$39803_$","typeString":"type(contract IERC165)"}],"id":35930,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2466:4:35","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":35932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2466:13:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$39803","typeString":"type(contract IERC165)"}},"id":35933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2480:11:35","memberName":"interfaceId","nodeType":"MemberAccess","src":"2466:25:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2443:49:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":35936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2495:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2443:56:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35938,"nodeType":"ExpressionStatement","src":"2443:56:35"},{"expression":{"id":35948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35939,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35923,"src":"2509:2:35","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2512:19:35","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":40616,"src":"2509:22:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":35946,"indexExpression":{"expression":{"arguments":[{"id":35942,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39751,"src":"2537:11:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$39751_$","typeString":"type(contract IDiamondCut)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$39751_$","typeString":"type(contract IDiamondCut)"}],"id":35941,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2532:4:35","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":35943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2532:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondCut_$39751","typeString":"type(contract IDiamondCut)"}},"id":35944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2550:11:35","memberName":"interfaceId","nodeType":"MemberAccess","src":"2532:29:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2509:53:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":35947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2565:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2509:60:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35949,"nodeType":"ExpressionStatement","src":"2509:60:35"},{"expression":{"id":35959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":35950,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35923,"src":"2579:2:35","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":35956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2582:19:35","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":40616,"src":"2579:22:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":35957,"indexExpression":{"expression":{"arguments":[{"id":35953,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39792,"src":"2607:13:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$39792_$","typeString":"type(contract IDiamondLoupe)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$39792_$","typeString":"type(contract IDiamondLoupe)"}],"id":35952,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2602:4:35","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":35954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2602:19:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondLoupe_$39792","typeString":"type(contract IDiamondLoupe)"}},"id":35955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2622:11:35","memberName":"interfaceId","nodeType":"MemberAccess","src":"2602:31:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2579:55:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":35958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2637:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2579:62:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35960,"nodeType":"ExpressionStatement","src":"2579:62:35"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"id":35965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":35961,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"2656:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":35962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2663:14:35","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":35828,"src":"2656:21:35","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":35963,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"2681:14:35","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":35964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2696:9:35","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":48646,"src":"2681:24:35","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"src":"2656:49:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":35973,"nodeType":"IfStatement","src":"2652:170:35","trueBody":{"id":35972,"nodeType":"Block","src":"2707:115:35","statements":[{"expression":{"id":35970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35966,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"2777:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":35968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2784:23:35","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":35813,"src":"2777:30:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":35969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2810:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2777:34:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":35971,"nodeType":"ExpressionStatement","src":"2777:34:35"}]}},{"expression":{"id":35979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35974,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"2832:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":35976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2834:8:35","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":46046,"src":"2832:10:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":35977,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"2845:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":35978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2852:8:35","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":35806,"src":"2845:15:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"src":"2832:28:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"id":35980,"nodeType":"ExpressionStatement","src":"2832:28:35"},{"expression":{"id":35986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35981,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"2870:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":35983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2872:14:35","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"2870:16:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":35984,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"2889:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":35985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2896:14:35","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":35808,"src":"2889:21:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2870:40:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":35987,"nodeType":"ExpressionStatement","src":"2870:40:35"},{"expression":{"id":35993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35988,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"2920:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":35990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2922:9:35","memberName":"consensus","nodeType":"MemberAccess","referencedDeclaration":46050,"src":"2920:11:35","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":35991,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"2934:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":35992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2941:9:35","memberName":"consensus","nodeType":"MemberAccess","referencedDeclaration":35811,"src":"2934:16:35","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"src":"2920:30:35","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"id":35994,"nodeType":"ExpressionStatement","src":"2920:30:35"},{"expression":{"id":36000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":35995,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"2960:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":35997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2962:23:35","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":46025,"src":"2960:25:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":35998,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"2988:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":35999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2995:23:35","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":35813,"src":"2988:30:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2960:58:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36001,"nodeType":"ExpressionStatement","src":"2960:58:35"},{"expression":{"id":36007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36002,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"3028:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3030:13:35","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":46031,"src":"3028:15:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36005,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"3046:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3053:13:35","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":35815,"src":"3046:20:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3028:38:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36008,"nodeType":"ExpressionStatement","src":"3028:38:35"},{"expression":{"id":36014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36009,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"3076:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3078:19:35","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":46028,"src":"3076:21:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36012,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"3100:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3107:19:35","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":35817,"src":"3100:26:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3076:50:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36015,"nodeType":"ExpressionStatement","src":"3076:50:35"},{"expression":{"id":36021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36016,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"3136:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3138:18:35","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":46039,"src":"3136:20:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36019,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"3159:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3166:18:35","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":35819,"src":"3159:25:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3136:48:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":36022,"nodeType":"ExpressionStatement","src":"3136:48:35"},{"expression":{"id":36028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36023,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"3194:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3196:10:35","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":46071,"src":"3194:12:35","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36026,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"3209:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3216:10:35","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":35825,"src":"3209:17:35","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"3194:32:35","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":36029,"nodeType":"ExpressionStatement","src":"3194:32:35"},{"expression":{"id":36035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36030,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"3236:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3238:14:35","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":46042,"src":"3236:16:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36033,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"3255:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3262:14:35","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":35823,"src":"3255:21:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3236:40:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36036,"nodeType":"ExpressionStatement","src":"3236:40:35"},{"expression":{"id":36050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36037,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"3286:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3288:17:35","memberName":"currentSubnetHash","nodeType":"MemberAccess","referencedDeclaration":46033,"src":"3286:19:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":36045,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3342:4:35","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":36044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3334:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36043,"name":"address","nodeType":"ElementaryTypeName","src":"3334:7:35","typeDescriptions":{}}},"id":36046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3334:13:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":36040,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"3308:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3310:8:35","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":46046,"src":"3308:10:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"id":36042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3319:14:35","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":46539,"src":"3308:25:35","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$48557_memory_ptr_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":36047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3308:40:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":36048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3349:6:35","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":46465,"src":"3308:47:35","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":36049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3308:49:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3286:71:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":36051,"nodeType":"ExpressionStatement","src":"3286:71:35"},{"expression":{"id":36059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36052,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"3367:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3369:12:35","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"3367:14:35","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":36056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3382:14:35","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":48652,"src":"3367:29:35","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36057,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"3399:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3406:14:35","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":35828,"src":"3399:21:35","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"src":"3367:53:35","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"id":36060,"nodeType":"ExpressionStatement","src":"3367:53:35"},{"expression":{"id":36065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36061,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"3613:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3615:22:35","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":46019,"src":"3613:24:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36064,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48391,"src":"3640:12:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3613:39:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36066,"nodeType":"ExpressionStatement","src":"3613:39:35"},{"expression":{"id":36071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36067,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"3662:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3664:23:35","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":46022,"src":"3662:25:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36070,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48388,"src":"3690:18:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3662:46:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36072,"nodeType":"ExpressionStatement","src":"3662:46:35"},{"expression":{"id":36080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36073,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"3719:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36076,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3721:12:35","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"3719:14:35","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":36077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3734:11:35","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":48655,"src":"3719:26:35","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36078,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35836,"src":"3748:6:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3755:21:35","memberName":"activeValidatorsLimit","nodeType":"MemberAccess","referencedDeclaration":35821,"src":"3748:28:35","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3719:57:35","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36081,"nodeType":"ExpressionStatement","src":"3719:57:35"},{"expression":{"id":36089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36082,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"3896:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3898:9:35","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"3896:11:35","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":36086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3908:23:35","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"3896:35:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36087,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"3934:10:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":36088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3945:28:35","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":44620,"src":"3934:39:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3896:77:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36090,"nodeType":"ExpressionStatement","src":"3896:77:35"},{"expression":{"id":36098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36091,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"4131:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4133:9:35","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"4131:11:35","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":36095,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4143:24:35","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"4131:36:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36096,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"4170:10:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":36097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4181:28:35","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":44620,"src":"4170:39:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4131:78:35","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36099,"nodeType":"ExpressionStatement","src":"4131:78:35"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":35837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35833,"mutability":"mutable","name":"_diamondCut","nameLocation":"1477:11:35","nodeType":"VariableDeclaration","scope":36101,"src":"1450:38:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":35831,"nodeType":"UserDefinedTypeName","pathNode":{"id":35830,"name":"IDiamond.FacetCut","nameLocations":["1450:8:35","1459:8:35"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"1450:17:35"},"referencedDeclaration":39721,"src":"1450:17:35","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":35832,"nodeType":"ArrayTypeName","src":"1450:19:35","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":35836,"mutability":"mutable","name":"params","nameLocation":"1515:6:35","nodeType":"VariableDeclaration","scope":36101,"src":"1490:31:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":35835,"nodeType":"UserDefinedTypeName","pathNode":{"id":35834,"name":"ConstructorParams","nameLocations":["1490:17:35"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"1490:17:35"},"referencedDeclaration":35829,"src":"1490:17:35","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"1449:73:35"},"returnParameters":{"id":35838,"nodeType":"ParameterList","parameters":[],"src":"1523:0:35"},"scope":36177,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":36140,"nodeType":"FunctionDefinition","src":"4222:1239:35","nodes":[],"body":{"id":36139,"nodeType":"Block","src":"4252:1209:35","nodes":[],"statements":[{"assignments":[36108],"declarations":[{"constant":false,"id":36108,"mutability":"mutable","name":"ds","nameLocation":"4296:2:35","nodeType":"VariableDeclaration","scope":36139,"src":"4262:36:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36107,"nodeType":"UserDefinedTypeName","pathNode":{"id":36106,"name":"LibDiamond.DiamondStorage","nameLocations":["4262:10:35","4273:14:35"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"4262:25:35"},"referencedDeclaration":40619,"src":"4262:25:35","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36109,"nodeType":"VariableDeclarationStatement","src":"4262:36:35"},{"assignments":[36111],"declarations":[{"constant":false,"id":36111,"mutability":"mutable","name":"position","nameLocation":"4316:8:35","nodeType":"VariableDeclaration","scope":36139,"src":"4308:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36110,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4308:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36114,"initialValue":{"expression":{"id":36112,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"4327:10:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":36113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4338:24:35","memberName":"DIAMOND_STORAGE_POSITION","nodeType":"MemberAccess","referencedDeclaration":40520,"src":"4327:35:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4308:54:35"},{"AST":{"nodeType":"YulBlock","src":"4458:43:35","statements":[{"nodeType":"YulAssignment","src":"4472:19:35","value":{"name":"position","nodeType":"YulIdentifier","src":"4483:8:35"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"4472:7:35"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":36108,"isOffset":false,"isSlot":true,"src":"4472:7:35","suffix":"slot","valueSize":1},{"declaration":36111,"isOffset":false,"isSlot":false,"src":"4483:8:35","valueSize":1}],"id":36115,"nodeType":"InlineAssembly","src":"4449:52:35"},{"assignments":[36117],"declarations":[{"constant":false,"id":36117,"mutability":"mutable","name":"facet","nameLocation":"4562:5:35","nodeType":"VariableDeclaration","scope":36139,"src":"4554:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36116,"name":"address","nodeType":"ElementaryTypeName","src":"4554:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":36124,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36118,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36108,"src":"4570:2:35","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4573:31:35","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":40609,"src":"4570:34:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36122,"indexExpression":{"expression":{"id":36120,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4605:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4609:3:35","memberName":"sig","nodeType":"MemberAccess","src":"4605:7:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4570:43:35","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4614:12:35","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40601,"src":"4570:56:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4554:72:35"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36125,"name":"facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36117,"src":"4640:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4657:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4649:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36126,"name":"address","nodeType":"ElementaryTypeName","src":"4649:7:35","typeDescriptions":{}}},"id":36129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4649:10:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4640:19:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36137,"nodeType":"IfStatement","src":"4636:82:35","trueBody":{"id":36136,"nodeType":"Block","src":"4661:57:35","statements":[{"errorCall":{"arguments":[{"expression":{"id":36132,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4699:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4703:3:35","memberName":"sig","nodeType":"MemberAccess","src":"4699:7:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":36131,"name":"FunctionNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35796,"src":"4682:16:35","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":36134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4682:25:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36135,"nodeType":"RevertStatement","src":"4675:32:35"}]}},{"AST":{"nodeType":"YulBlock","src":"4871:584:35","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4954:1:35","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4957:1:35","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"4960:12:35"},"nodeType":"YulFunctionCall","src":"4960:14:35"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4941:12:35"},"nodeType":"YulFunctionCall","src":"4941:34:35"},"nodeType":"YulExpressionStatement","src":"4941:34:35"},{"nodeType":"YulVariableDeclaration","src":"5041:65:35","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"5068:3:35"},"nodeType":"YulFunctionCall","src":"5068:5:35"},{"name":"facet","nodeType":"YulIdentifier","src":"5075:5:35"},{"kind":"number","nodeType":"YulLiteral","src":"5082:1:35","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"5085:12:35"},"nodeType":"YulFunctionCall","src":"5085:14:35"},{"kind":"number","nodeType":"YulLiteral","src":"5101:1:35","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5104:1:35","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"5055:12:35"},"nodeType":"YulFunctionCall","src":"5055:51:35"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"5045:6:35","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5170:1:35","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5173:1:35","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5176:14:35"},"nodeType":"YulFunctionCall","src":"5176:16:35"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"5155:14:35"},"nodeType":"YulFunctionCall","src":"5155:38:35"},"nodeType":"YulExpressionStatement","src":"5155:38:35"},{"cases":[{"body":{"nodeType":"YulBlock","src":"5306:59:35","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5331:1:35","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5334:14:35"},"nodeType":"YulFunctionCall","src":"5334:16:35"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5324:6:35"},"nodeType":"YulFunctionCall","src":"5324:27:35"},"nodeType":"YulExpressionStatement","src":"5324:27:35"}]},"nodeType":"YulCase","src":"5299:66:35","value":{"kind":"number","nodeType":"YulLiteral","src":"5304:1:35","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"5386:59:35","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5411:1:35","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5414:14:35"},"nodeType":"YulFunctionCall","src":"5414:16:35"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"5404:6:35"},"nodeType":"YulFunctionCall","src":"5404:27:35"},"nodeType":"YulExpressionStatement","src":"5404:27:35"}]},"nodeType":"YulCase","src":"5378:67:35","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"5280:6:35"},"nodeType":"YulSwitch","src":"5273:172:35"}]},"evmVersion":"paris","externalReferences":[{"declaration":36117,"isOffset":false,"isSlot":false,"src":"5075:5:35","valueSize":1}],"id":36138,"nodeType":"InlineAssembly","src":"4862:593:35"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"4231:9:35","parameters":{"id":36102,"nodeType":"ParameterList","parameters":[],"src":"4240:2:35"},"returnParameters":{"id":36103,"nodeType":"ParameterList","parameters":[],"src":"4252:0:35"},"scope":36177,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":36148,"nodeType":"FunctionDefinition","src":"5528:56:35","nodes":[],"body":{"id":36147,"nodeType":"Block","src":"5556:28:35","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36144,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36140,"src":"5566:9:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5566:11:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36146,"nodeType":"ExpressionStatement","src":"5566:11:35"}]},"documentation":{"id":36141,"nodeType":"StructuredDocumentation","src":"5467:56:35","text":"@notice Will run when no functions matches call data"},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36142,"nodeType":"ParameterList","parameters":[],"src":"5536:2:35"},"returnParameters":{"id":36143,"nodeType":"ParameterList","parameters":[],"src":"5556:0:35"},"scope":36177,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":36155,"nodeType":"FunctionDefinition","src":"5699:134:35","nodes":[],"body":{"id":36154,"nodeType":"Block","src":"5738:95:35","nodes":[],"statements":[]},"documentation":{"id":36149,"nodeType":"StructuredDocumentation","src":"5590:62:35","text":"@notice Same as fallback but called when calldata is empty"},"implemented":true,"kind":"receive","modifiers":[{"id":36152,"kind":"modifierInvocation","modifierName":{"id":36151,"name":"onlyGateway","nameLocations":["5726:11:35"],"nodeType":"IdentifierPath","referencedDeclaration":36176,"src":"5726:11:35"},"nodeType":"ModifierInvocation","src":"5726:11:35"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36150,"nodeType":"ParameterList","parameters":[],"src":"5706:2:35"},"returnParameters":{"id":36153,"nodeType":"ParameterList","parameters":[],"src":"5738:0:35"},"scope":36177,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":36169,"nodeType":"FunctionDefinition","src":"5881:133:35","nodes":[],"body":{"id":36168,"nodeType":"Block","src":"5918:96:35","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36158,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5932:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5936:6:35","memberName":"sender","nodeType":"MemberAccess","src":"5932:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":36160,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35799,"src":"5946:1:35","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5948:14:35","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"5946:16:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5932:30:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36167,"nodeType":"IfStatement","src":"5928:80:35","trueBody":{"id":36166,"nodeType":"Block","src":"5964:44:35","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36163,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37046,"src":"5985:10:35","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5985:12:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36165,"nodeType":"RevertStatement","src":"5978:19:35"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyGateway","nameLocation":"5890:12:35","parameters":{"id":36156,"nodeType":"ParameterList","parameters":[],"src":"5902:2:35"},"returnParameters":{"id":36157,"nodeType":"ParameterList","parameters":[],"src":"5918:0:35"},"scope":36177,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":36176,"nodeType":"ModifierDefinition","src":"6020:65:35","nodes":[],"body":{"id":36175,"nodeType":"Block","src":"6043:42:35","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36171,"name":"_onlyGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36169,"src":"6053:12:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":36172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6053:14:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36173,"nodeType":"ExpressionStatement","src":"6053:14:35"},{"id":36174,"nodeType":"PlaceholderStatement","src":"6077:1:35"}]},"name":"onlyGateway","nameLocation":"6029:11:35","parameters":{"id":36170,"nodeType":"ParameterList","parameters":[],"src":"6040:2:35"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorDiamond","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36177],"name":"SubnetActorDiamond","nameLocation":"932:18:35","scope":36178,"usedErrors":[35796,36968,36984,36996,36998,37012,37046,40528,40533,40537,40541,40546,40552,40565,40569,40573,40577,40581,40585,40589]}],"license":"MIT OR Apache-2.0"},"id":35} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"params","type":"tuple","internalType":"struct SubnetActorDiamond.ConstructorParams","components":[{"name":"parentId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"ipcGatewayAddr","type":"address","internalType":"address"},{"name":"consensus","type":"uint8","internalType":"enum ConsensusType"},{"name":"minActivationCollateral","type":"uint256","internalType":"uint256"},{"name":"minValidators","type":"uint64","internalType":"uint64"},{"name":"bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"powerScale","type":"int8","internalType":"int8"},{"name":"permissionMode","type":"uint8","internalType":"enum PermissionMode"},{"name":"supplySource","type":"tuple","internalType":"struct SupplySource","components":[{"name":"kind","type":"uint8","internalType":"enum SupplyKind"},{"name":"tokenAddress","type":"address","internalType":"address"}]}]}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"FunctionNotFound","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"GatewayCannotBeZero","inputs":[]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"InvalidCollateral","inputs":[]},{"type":"error","name":"InvalidERC20Address","inputs":[]},{"type":"error","name":"InvalidMajorityPercentage","inputs":[]},{"type":"error","name":"InvalidPowerScale","inputs":[]},{"type":"error","name":"InvalidSubmissionPeriod","inputs":[]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"NotGateway","inputs":[]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234610728576114a4803803809161001c8260806110d7565b6080396040811261072857608051906001600160401b0382116107285760808101609f83011215610728578160800151610055816110fa565b9061006360405192836110d7565b8082526020820180948460800160208460051b836080010101116107285760a08101915b60a0600585901b8301018310610f7c57505060a051949150506001600160401b038411610728576101a084840312610728576040519361018085016001600160401b038111868210176107fe5760405260808101516001600160401b038111610728576100fd9085608001908360800101611139565b855261010b60a08201611111565b602086015260c0810151600181101561072857604086015260e0810151606086015261013a6101008201611125565b608086015261014c6101208201611125565b60a086015261014081015160ff811681036107285760c086015261016081015161ffff811681036107285760e08601526101009384826080010151858701526101208260800101518060000b8103610728576101208701526101c08201519060038210156107285761014087019190915260409082900361015f19011261072857604051906101da826110a1565b6101e081015160028110156107285782526101f89061020001611111565b602082015261016085015260018060a01b0360208501511615610f6a5760a08401516001600160401b031615610f58576001610140850151610239816111dc565b610242816111dc565b141580610f4c575b610f3a5760ff60c08501511660338110908115610f2f575b50610f1d57601261012085015160000b13610f0b57610160840151805160028110156106e657600114610e82575b507f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b031916331790556040516001600160401b0360208201908111908211176107fe576020810160405260008152825160005b8181106108765750506040519260608401906060855251809152608084019060808160051b86010193916000905b8282106108205788887f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673898061035f8b8b6000602085015283820360408501526112a9565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd46020527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b6000527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c9805490911682179055610140830151610423816111dc565b61042c816111dc565b14610814575b81518051601080546001600160401b0319166001600160401b039283161790556020919091015180519182116107fe576801000000000000000082116107fe57601154826011558083106107c9575b506020016011600052602060002060005b8381106107ac57858560018060a01b03602083015116600e5490604084015160018110156106e6576012805460ff92831660ff19918216179091556060860151600a556080860151600c80546001600160401b0319166001600160401b0392831617905560a080880151909116600b5560c08701516001600160a81b0319909516939093179390921b60ff60a01b1692909217600e5561012084015160208054919093169116179055810151600f556040519061054e826110a1565b6010546001600160401b0316825260405160118054808352600091825260008051602061144483398151915291839160208301915b81811061078a575050610598925003826110d7565b60208301526105da600073__$a0fe38a9a81205afccc10810b09a4d3f45$__936040518093819263aa5106cb60e01b83526040600484015260448301906111e6565b3060248301520381865af490811561073557600091610741575b5060209061061e9360405180809681946390ba52cf60e01b835286600484015260248301906111e6565b03915af48015610735576000906106fc575b6101609250600d55610140810151610647816111dc565b610650816111dc565b6013546064600855600a60018060401b0319600954161760095560ff62ffff0060e085015160081b1692169062ffffff191617176013556801000000000000000160018060801b0319601c541617601c55015180519060028210156106e65760ff602754916020610100600160a81b0391015160081b1692169060018060a81b031916171760275560405160eb90816113598239f35b634e487b7160e01b600052602160045260246000fd5b506020823d60201161072d575b81610716602093836110d7565b81010312610728576101609151610630565b600080fd5b3d9150610709565b6040513d6000823e3d90fd5b90503d806000833e61075381836110d7565b810192602082850312610728578151916001600160401b0383116107285761061e946020936107829201611139565b9150926105f4565b84546001600160a01b0316835260019485019486945060209093019201610583565b82516001600160a01b031681830155602090920191600101610492565b6011600052600080516020611444833981519152908382015b81830181106107f2575050610481565b600081556001016107e2565b634e487b7160e01b600052604160045260246000fd5b60006060830152610432565b90919294602080610868600193607f198b8203018652606060408b51878060a01b03815116845285810151610854816111dc565b86850152015191816040820152019061126b565b97019201920190929161031a565b60406108828287611241565b5101516001600160a01b036108978388611241565b51511690805115610e695760206108ae8489611241565b5101516108ba816111dc565b6108c3816111dc565b80610ac557508115610a9c5761ffff60008051602061146483398151915254169161092d6040516108f3816110bc565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015282611319565b8151916000935b83851061094a5750505050506001905b016102ec565b6001600160e01b031961095d8684611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316610a84576109f3604051610997816110a1565b85815261ffff841660208083019182526000858152600080516020611484833981519152909152604090209151825491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b16179055565b6000805160206114648339815191525490680100000000000000008210156107fe57610a35826001610a529401600080516020611464833981519152556112e9565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff80821614610a6e57600161ffff81921601940193610934565b634e487b7160e01b600052601160045260246000fd5b6024906040519063ebbf5d0760e01b82526004820152fd5b6040516302b8da0760e21b815260206004820152908190610ac190602483019061126b565b0390fd5b610ace816111dc565b60018103610c3557508115610c1057610b2d604051610aec816110bc565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283611319565b80519060005b828110610b465750505050600190610944565b6001600160e01b0319610b598284611241565b5116600081815260008051602061148483398151915260205260409020546001600160a01b0316308114610bf757858114610bde5715610bc65760009081526000805160206114848339815191526020526040902080546001600160a01b03191685179055600101610b33565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b815260206004820152908190610ac190602483019061126b565b610c3e816111dc565b60028103610e495750600080516020611464833981519152549180610e31575080519060005b828110610c775750505050600190610944565b6001600160e01b0319610c8a8284611241565b5116908160005260008051602061148483398151915260205260406000209460405195610cb6876110a1565b546001600160a01b03811680885260a09190911c61ffff16602088015215610e185785516001600160a01b03163014610dff578015610a6e5760001901948561ffff60208301511603610d84575b5060008051602061146483398151915254918215610d6e5760019260001901610d2c816112e9565b63ffffffff82549160031b1b19169055600080516020611464833981519152556000526000805160206114848339815191526020526000604081205501610c64565b634e487b7160e01b600052603160045260246000fd5b610df99061ffff6020610d96896112e9565b90549060031b1c60e01b92610db384610a358585850151166112e9565b01516001600160e01b0319909216600090815260008051602061148483398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b38610d04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610e62816111dc565b6004820152fd5b60405163e767f91f60e01b815260048101839052602490fd5b60208101516001600160a01b031615610ef9576020908101516040516370a0823160e01b8152600060048201529190829060249082906001600160a01b03165afa8015610735571561029057602090813d8311610ef2575b610ee481836110d7565b810103126107285738610290565b503d610eda565b6040516376fe282b60e11b8152600490fd5b6040516378b177e560e11b8152600490fd5b6040516375c3b42760e01b8152600490fd5b606491501138610262565b6040516368f7a67560e11b8152600490fd5b5060608401511561024a565b60405163312f8e0560e01b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b82516001600160401b03811161072857606090830160808101908803601f1901821361072857604051918083016001600160401b0381118482101761108c57604052610fca60208301611111565b8352604082015160038110156107285760208401528101516001600160401b0381116107285788608001603f8284010112156107285760208183010151611010816110fa565b9261101e60405194856110d7565b81845260208401908b60800160408460051b86840101011161072857604084820101915b60408460051b8684010101831061106b5750505050506040820152815260209283019201610087565b82516001600160e01b03198116810361072857815260209283019201611042565b60246000634e487b7160e01b81526041600452fd5b604081019081106001600160401b038211176107fe57604052565b606081019081106001600160401b038211176107fe57604052565b601f909101601f19168101906001600160401b038211908210176107fe57604052565b6001600160401b0381116107fe5760051b60200190565b51906001600160a01b038216820361072857565b51906001600160401b038216820361072857565b91906040838203126107285760405192611152846110a1565b8361115c82611125565b815260208281015190926001600160401b03821161072857019280601f8501121561072857835161118c816110fa565b9461119a60405196876110d7565b818652848087019260051b8201019283116107285784809101915b8383106111c457505050500152565b81906111cf84611111565b81520191019084906111b5565b600311156106e657565b80516001600160401b03168252602090810151604082840181905281519084018190526060909301929082019160005b828110611224575050505090565b83516001600160a01b031685529381019392810192600101611216565b80518210156112555760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b82811061128b575050505090565b83516001600160e01b0319168552938101939281019260010161127d565b919082519283825260005b8481106112d5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016112b4565b90600080516020611464833981519152805483101561125557600052601c60206000208360031c019260021b1690565b803b15611324575050565b6040805163919834b960e01b81526001600160a01b0390921660048301526024820152908190610ac19060448301906112a956fe60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c6343000813003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","sourceMap":"1084:5369:38:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1084:5369:38;;;;-1:-1:-1;;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1084:5369:38;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1780:35;1776:94;;1084:5369;;;;-1:-1:-1;;;;;1084:5369:38;1946:31;1942:94;;1084:5369;;;;;;;;:::i;:::-;;;;:::i;:::-;2049:49;;:88;;;1084:5369;2045:145;;1084:5369;;;;;;2231:2;2203:30;;:65;;;;;1084:5369;2199:130;;;2362:2;1084:5369;;;;-1:-1:-1;1084:5369:38;2342:22;2338:79;;1084:5369;;;2427:19;15673:1:69;;1084:5369:38;15673:1:69;;;;;1084:5369:38;1318:37:76;1314:622;;1084:5369:38;-1:-1:-1;2258:16:62;1084:5369:38;;-1:-1:-1;;;;;;1084:5369:38;2496:10;1084:5369;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;-1:-1:-1;1084:5369:38;;;;-1:-1:-1;2937:19:62;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;3911:74:62;1084:5369:38;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;;;:::i;:::-;3911:74:62;;;2727:22:38;1084:5369;;;;;;-1:-1:-1;;1084:5369:38;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1084:5369:38;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;2940:49;2936:170;;1084:5369;3129:15;;1084:5369;;3116:10;1084:5369;;-1:-1:-1;;;;;;1084:5369:38;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;-1:-1:-1;1084:5369:38;-1:-1:-1;1084:5369:38;;;;;;;;;;;;;;;;;;3154:16;1084:5369;;;;;;;;;;;;2362:2;1084:5369;;;;;;-1:-1:-1;;1084:5369:38;;;;;;;;;;;3244:25;1084:5369;;;;;3312:15;1084:5369;;-1:-1:-1;;;;;;1084:5369:38;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;3360:21;1084:5369;;;;;-1:-1:-1;;;;;;1084:5369:38;;;;;;;;;;;-1:-1:-1;;;1084:5369:38;;;;;3154:16;1084:5369;;;;;;;;;;;;;;;;;;;;3520:16;1084:5369;;;;;;;:::i;:::-;3116:10;1084:5369;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;3592:25:38;1084:5369;;;;;;;;;;3592:40;;1084:5369;3592:40;;;1084:5369;;;;;;:::i;:::-;3626:4;1084:5369;;;;3592:40;;;;;;;;;;-1:-1:-1;3592:40:38;;;1084:5369;;;;;;;;;;;;;;;;3592:49;;;:40;:49;;1084:5369;;;;;;:::i;:::-;3592:49;;;;;;;;-1:-1:-1;3592:49:38;;;1084:5369;;;;3570:19;1084:5369;;;;;;;;:::i;:::-;;;;:::i;:::-;3651:14;1084:5369;282:3:80;3897:24:38;1084:5369;3244:25;1084:5369;;;;;;3946:25;1084:5369;;;3946:25;1084:5369;;246:2:80;1084:5369:38;;;246:2:80;3897:24:38;246:2:80;;1084:5369:38;;246:2:80;;;;;;3651:14:38;246:2:80;15673:1:69;1084:5369:38;15673:1:69;;;;;4180:11:38;1084:5369;15673:1:69;;4180:11:38;15673:1:69;1084:5369:38;4556:19;15673:1:69;;;1084:5369:38;15673:1:69;;;;;1084:5369:38;4539:14;15673:1:69;246:2:80;1084:5369:38;246:2:80;1084:5369:38;246:2:80;;;15673:1:69;;1084:5369:38;3897:24;246:2:80;;1084:5369:38;;;;;;;;;15673:1:69;;;4539:14:38;15673:1:69;1084:5369:38;;;;;;;;;15673:1:69;1084:5369:38;;;-1:-1:-1;1084:5369:38;;3592:40;1084:5369;;-1:-1:-1;1084:5369:38;3592:49;;1084:5369;3592:49;;1084:5369;3592:49;;;;;;1084:5369;3592:49;;;:::i;:::-;;;1084:5369;;;;;;;3592:49;;1084:5369;-1:-1:-1;1084:5369:38;;3592:49;;;-1:-1:-1;3592:49:38;;;1084:5369;;;-1:-1:-1;1084:5369:38;;;;;3592:40;;;;;-1:-1:-1;3592:40:38;;;;;;:::i;:::-;;;1084:5369;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;:::i;:::-;3592:40;;;;;1084:5369;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;-1:-1:-1;1084:5369:38;2936:170;-1:-1:-1;1084:5369:38;;;;2936:170;;1084:5369;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2917:18:62;1084:5369:38;3010:23:62;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:62;;;;:::i;:::-;;1084:5369:38;;;;;3142:29:62;3138:122;;1084:5369:38;3309:23:62;;;;:::i;:::-;;:30;1084:5369:38;;;;:::i;:::-;;;;:::i;:::-;3357:37:62;;;4150:27;;;4146:116;;1084:5369:38;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;4385:74:62;1084:5369:38;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1084:5369:38;;;;4385:74:62;;:::i;:::-;1084:5369:38;;4526:21:62;-1:-1:-1;4521:677:62;4549:22;;;;;;3353:466;;;;;1084:5369:38;3353:466:62;;1084:5369:38;2917:18:62;;4526:21;-1:-1:-1;;;;;;4607:33:62;;;;:::i;:::-;1084:5369:38;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;-1:-1:-1;;;;;1084:5369:38;4751:128:62;;1084:5369:38;;;;;;:::i;:::-;;;;;;;;4939:107:62;;;1084:5369:38;;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;;;;246:2:80;;-1:-1:-1;;;;;;1084:5369:38;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;-1:-1:-1;;;1084:5369:38;;;;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:62;;;1084:5369:38;;;;-1:-1:-1;1084:5369:38;;;;;-1:-1:-1;1084:5369:38;4751:128:62;1084:5369:38;;;;4811:53:62;;;;;;;;;1084:5369:38;4811:53:62;4146:116;1084:5369:38;;-1:-1:-1;;;4200:51:62;;1084:5369:38;4200:51:62;;;1084:5369:38;;;;;;;;;;;:::i;:::-;4200:51:62;;;3353:466;1084:5369:38;;;:::i;:::-;;3484:41:62;;1084:5369:38;;5372:27:62;;;5368:131;;5508:81;1084:5369:38;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1084:5369:38;;;;5508:81:62;;:::i;:::-;1084:5369:38;;5652:21:62;-1:-1:-1;5675:18:62;;;;;;3480:339;;;;1084:5369:38;3480:339:62;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:62;;;;:::i;:::-;1084:5369:38;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;-1:-1:-1;;;;;1084:5369:38;6011:4:62;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;-1:-1:-1;;;;;;1084:5369:38;;;;;;;5652:21:62;;6268:123;1084:5369:38;;;;6328:48:62;;;;;;;;;1084:5369:38;6328:48:62;6111:144;1084:5369:38;;-1:-1:-1;;;6174:66:62;;;;;1084:5369:38;;;;;6174:66:62;5980:118;1084:5369:38;;-1:-1:-1;;;6043:40:62;;;;;1084:5369:38;;;;;6043:40:62;5368:131;1084:5369:38;;-1:-1:-1;;;5422:66:62;;1084:5369:38;5422:66:62;;;1084:5369:38;;;;;;;;;;;:::i;3480:339:62:-;1084:5369:38;;;:::i;:::-;;3619:40:62;;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;6826:27:62;;6822:115;;1084:5369:38;;;6999:21:62;-1:-1:-1;7022:18:62;;;;;;3615:204;;;;1084:5369:38;3615:204:62;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:62;;;;:::i;:::-;1084:5369:38;;;;-1:-1:-1;1084:5369:38;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;-1:-1:-1;1084:5369:38;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;7278:61:62;7274:153;;1084:5369:38;;-1:-1:-1;;;;;1084:5369:38;7597:4:62;7538:64;7534:149;;1084:5369:38;;;;;;;;;;;;;246:2:80;1084:5369:38;7780:68:62;7776:412;;6999:21;1084:5369:38;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;;-1:-1:-1;;1084:5369:38;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;-1:-1:-1;1084:5369:38;-1:-1:-1;;;;;;;;;;;1084:5369:38;;-1:-1:-1;1084:5369:38;;;;;6999:21:62;;1084:5369:38;;;;-1:-1:-1;1084:5369:38;;;;;-1:-1:-1;1084:5369:38;7776:412:62;8033:140;7890:27;1084:5369:38;;7890:27:62;;;:::i;:::-;1084:5369:38;;;;;;;;;7935:80:62;1084:5369:38;7935:65:62;1084:5369:38;;;;246:2:80;1084:5369:38;7935:65:62;:::i;:80::-;1084:5369:38;246:2:80;-1:-1:-1;;;;;;1084:5369:38;;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;-1:-1:-1;;;;1084:5369:38;;;;;;;-1:-1:-1;;;1084:5369:38;;;;;8033:140:62;7776:412;;;7534:149;1084:5369:38;;-1:-1:-1;;;7629:39:62;;;;;1084:5369:38;;;;;7629:39:62;7274:153;1084:5369:38;;-1:-1:-1;;;7366:46:62;;;;;1084:5369:38;;;;;7366:46:62;6822:115;1084:5369:38;;;;6876:50:62;;;;;;;;;1084:5369:38;6876:50:62;3615:204;1084:5369:38;;-1:-1:-1;;;3773:31:62;;1084:5369:38;;;;;:::i;:::-;3773:31:62;;;1084:5369:38;3773:31:62;3138:122;1084:5369:38;;-1:-1:-1;;;3198:47:62;;;;;1084:5369:38;;;;;3198:47:62;1314:622:76;1084:5369:38;1375:25:76;;1084:5369:38;-1:-1:-1;;;;;1084:5369:38;1375:39:76;1371:106;;1084:5369:38;1375:25:76;;;1084:5369:38;;;-1:-1:-1;;;1898:27:76;;-1:-1:-1;1898:27:76;;;1084:5369:38;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;1898:27:76;;;;;;;1314:622;1898:27;1084:5369:38;1898:27:76;;;;;;;;;;;;:::i;:::-;;;1084:5369:38;;;;1898:27:76;1314:622;;1898:27;;;;;1371:106;1084:5369:38;;-1:-1:-1;;;1441:21:76;;;;;2338:79:38;1084:5369;;-1:-1:-1;;;2387:19:38;;;;;2199:130;1084:5369;;-1:-1:-1;;;2291:27:38;;;;;2203:65;2265:3;2237:31;;;2203:65;;;2045:145;1084:5369;;-1:-1:-1;;;2160:19:38;;;;;2049:88;1084:5369;;;;;2102:35;2049:88;;1942:94;1084:5369;;-1:-1:-1;;;2000:25:38;;;;;1776:94;1084:5369;;-1:-1:-1;;;1838:21:38;;;;;1084:5369;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;-1:-1:-1;;1084:5369:38;;-1:-1:-1;1084:5369:38;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;:::o;:::-;;;;;-1:-1:-1;;1084:5369:38;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1084:5369:38;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1084:5369:38;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;:::o;:::-;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1084:5369:38;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;1084:5369:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1084:5369:38;;;;;;;-1:-1:-1;1084:5369:38;;;-1:-1:-1;1084:5369:38;;;;;;;;;;:::o;9308:320:62:-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;1084:5369:38;;;-1:-1:-1;;;9566:45:62;;-1:-1:-1;;;;;1084:5369:38;;;9566:45:62;;;1084:5369:38;;;;;;;;;;;;;;;:::i","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":1444,"length":20}]}}},"deployedBytecode":{"object":"0x60806040523615609157600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b630a82dd7360e31b6080526001600160e01b031916608452607f1960a4016080fd5b600e546001600160a01b0316330360a457005b63e7e601db60e01b60805260046080fdfea264697066735822122038ff6566219e6af162eddd14ab03c524f8e645fb67e3fcd99cf2ae621f9b520464736f6c63430008130033","sourceMap":"1084:5369:38:-:0;;;;;;;-1:-1:-1;4971:7:38;;-1:-1:-1;;;;;;4971:7:38;260:43:62;;;;;;1084:5369:38;260:43:62;;;-1:-1:-1;;;;;260:43:62;;5006:19:38;;5002:82;;1084:5369;;;;;5228:593;;;1084:5369;;5228:593;;;;;;;;;;;;;;;;;5002:82;-1:-1:-1;;;1084:5369:38;5048:25;-1:-1:-1;;;;;;260:43:62;5048:25:38;260:43:62;-1:-1:-1;;260:43:62;5048:25:38;1084:5369;5048:25;1084:5369;6312:16;260:43:62;-1:-1:-1;;;;;260:43:62;6298:10:38;:30;6294:80;;1084:5369;6294:80;6351:12;;;1084:5369;6351:12;;1084:5369;6351:12","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"parentId\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"ipcGatewayAddr\",\"type\":\"address\"},{\"internalType\":\"enum ConsensusType\",\"name\":\"consensus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"minActivationCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"int8\",\"name\":\"powerScale\",\"type\":\"int8\"},{\"internalType\":\"enum PermissionMode\",\"name\":\"permissionMode\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum SupplyKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct SupplySource\",\"name\":\"supplySource\",\"type\":\"tuple\"}],\"internalType\":\"struct SubnetActorDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"FunctionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GatewayCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidERC20Address\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMajorityPercentage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPowerScale\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubmissionPeriod\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SubnetActorDiamond.sol\":\"SubnetActorDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"struct SubnetActorDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"struct SubnetID","name":"parentId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"ipcGatewayAddr","type":"address"},{"internalType":"enum ConsensusType","name":"consensus","type":"uint8"},{"internalType":"uint256","name":"minActivationCollateral","type":"uint256"},{"internalType":"uint64","name":"minValidators","type":"uint64"},{"internalType":"uint64","name":"bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint8","name":"majorityPercentage","type":"uint8"},{"internalType":"uint16","name":"activeValidatorsLimit","type":"uint16"},{"internalType":"uint256","name":"minCrossMsgFee","type":"uint256"},{"internalType":"int8","name":"powerScale","type":"int8"},{"internalType":"enum PermissionMode","name":"permissionMode","type":"uint8"},{"internalType":"struct SupplySource","name":"supplySource","type":"tuple","components":[{"internalType":"enum SupplyKind","name":"kind","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"}]}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"type":"error","name":"FunctionNotFound"},{"inputs":[],"type":"error","name":"GatewayCannotBeZero"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[],"type":"error","name":"InvalidCollateral"},{"inputs":[],"type":"error","name":"InvalidERC20Address"},{"inputs":[],"type":"error","name":"InvalidMajorityPercentage"},{"inputs":[],"type":"error","name":"InvalidPowerScale"},{"inputs":[],"type":"error","name":"InvalidSubmissionPeriod"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[],"type":"error","name":"NotGateway"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SubnetActorDiamond.sol":"SubnetActorDiamond"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/SubnetActorDiamond.sol","id":36616,"exportedSymbols":{"BATCH_PERIOD":[49913],"ConsensusType":[37359],"FunctionNotFound":[36213],"GatewayCannotBeZero":[37400],"IDiamond":[40170],"IDiamondCut":[40189],"IDiamondLoupe":[40230],"IERC165":[40241],"IERC20":[31999],"InvalidCollateral":[37416],"InvalidMajorityPercentage":[37428],"InvalidPowerScale":[37430],"InvalidSubmissionPeriod":[37444],"LibDiamond":[41682],"LibStaking":[46176],"MAX_MSGS_PER_BATCH":[49910],"NotGateway":[37478],"PermissionMode":[50165],"SubnetActorDiamond":[36615],"SubnetActorStorage":[47281],"SubnetID":[50077],"SubnetIDHelper":[48072],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398]},"nodeType":"SourceUnit","src":"46:6408:38","nodes":[{"id":36172,"nodeType":"PragmaDirective","src":"46:23:38","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36174,"nodeType":"ImportDirective","src":"71:67:38","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"./lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":36173,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"79:18:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36176,"nodeType":"ImportDirective","src":"139:56:38","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"./enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":36175,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"147:13:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36178,"nodeType":"ImportDirective","src":"196:51:38","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":36177,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"204:8:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36180,"nodeType":"ImportDirective","src":"248:57:38","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"./interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":40190,"symbolAliases":[{"foreign":{"id":36179,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"256:11:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36182,"nodeType":"ImportDirective","src":"306:61:38","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"./interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":40231,"symbolAliases":[{"foreign":{"id":36181,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"314:13:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36184,"nodeType":"ImportDirective","src":"368:49:38","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"./interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":40242,"symbolAliases":[{"foreign":{"id":36183,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"376:7:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36191,"nodeType":"ImportDirective","src":"418:161:38","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"./errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":36185,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37400,"src":"426:19:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36186,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"447:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36187,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37444,"src":"459:23:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36188,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37416,"src":"484:17:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36189,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37428,"src":"503:25:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36190,"name":"InvalidPowerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37430,"src":"530:17:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36194,"nodeType":"ImportDirective","src":"580:72:38","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"./structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":36192,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49913,"src":"588:12:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36193,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49910,"src":"602:18:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36196,"nodeType":"ImportDirective","src":"653:48:38","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"./lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":41683,"symbolAliases":[{"foreign":{"id":36195,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"661:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36201,"nodeType":"ImportDirective","src":"702:88:38","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"./structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":36197,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"710:14:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36198,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"726:8:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36199,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"736:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36200,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"748:12:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36203,"nodeType":"ImportDirective","src":"791:56:38","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"./lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":36202,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"799:14:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36205,"nodeType":"ImportDirective","src":"848:48:38","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"./lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":36204,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"856:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36207,"nodeType":"ImportDirective","src":"897:69:38","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":32000,"symbolAliases":[{"foreign":{"id":36206,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"905:6:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36209,"nodeType":"ImportDirective","src":"967:64:38","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"./lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":36616,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":36208,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"975:18:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36213,"nodeType":"ErrorDefinition","src":"1033:49:38","nodes":[],"errorSelector":"5416eb98","name":"FunctionNotFound","nameLocation":"1039:16:38","parameters":{"id":36212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36211,"mutability":"mutable","name":"_functionSelector","nameLocation":"1063:17:38","nodeType":"VariableDeclaration","scope":36213,"src":"1056:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36210,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1056:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1055:26:38"}},{"id":36615,"nodeType":"ContractDefinition","src":"1084:5369:38","nodes":[{"id":36216,"nodeType":"VariableDeclaration","src":"1118:29:38","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"1146:1:38","scope":36615,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":36215,"nodeType":"UserDefinedTypeName","pathNode":{"id":36214,"name":"SubnetActorStorage","nameLocations":["1118:18:38"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"1118:18:38"},"referencedDeclaration":47281,"src":"1118:18:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":36220,"nodeType":"UsingForDirective","src":"1154:34:38","nodes":[],"global":false,"libraryName":{"id":36217,"name":"SubnetIDHelper","nameLocations":["1160:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"1160:14:38"},"typeName":{"id":36219,"nodeType":"UserDefinedTypeName","pathNode":{"id":36218,"name":"SubnetID","nameLocations":["1179:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1179:8:38"},"referencedDeclaration":50077,"src":"1179:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":36224,"nodeType":"UsingForDirective","src":"1193:42:38","nodes":[],"global":false,"libraryName":{"id":36221,"name":"SupplySourceHelper","nameLocations":["1199:18:38"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"1199:18:38"},"typeName":{"id":36223,"nodeType":"UserDefinedTypeName","pathNode":{"id":36222,"name":"SupplySource","nameLocations":["1222:12:38"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"1222:12:38"},"referencedDeclaration":50226,"src":"1222:12:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":36253,"nodeType":"StructDefinition","src":"1241:434:38","nodes":[],"canonicalName":"SubnetActorDiamond.ConstructorParams","members":[{"constant":false,"id":36227,"mutability":"mutable","name":"parentId","nameLocation":"1285:8:38","nodeType":"VariableDeclaration","scope":36253,"src":"1276:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"},"typeName":{"id":36226,"nodeType":"UserDefinedTypeName","pathNode":{"id":36225,"name":"SubnetID","nameLocations":["1276:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1276:8:38"},"referencedDeclaration":50077,"src":"1276:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":36229,"mutability":"mutable","name":"ipcGatewayAddr","nameLocation":"1311:14:38","nodeType":"VariableDeclaration","scope":36253,"src":"1303:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36228,"name":"address","nodeType":"ElementaryTypeName","src":"1303:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36232,"mutability":"mutable","name":"consensus","nameLocation":"1349:9:38","nodeType":"VariableDeclaration","scope":36253,"src":"1335:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":36231,"nodeType":"UserDefinedTypeName","pathNode":{"id":36230,"name":"ConsensusType","nameLocations":["1335:13:38"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"1335:13:38"},"referencedDeclaration":37359,"src":"1335:13:38","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"},{"constant":false,"id":36234,"mutability":"mutable","name":"minActivationCollateral","nameLocation":"1376:23:38","nodeType":"VariableDeclaration","scope":36253,"src":"1368:31:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36233,"name":"uint256","nodeType":"ElementaryTypeName","src":"1368:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36236,"mutability":"mutable","name":"minValidators","nameLocation":"1416:13:38","nodeType":"VariableDeclaration","scope":36253,"src":"1409:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":36235,"name":"uint64","nodeType":"ElementaryTypeName","src":"1409:6:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":36238,"mutability":"mutable","name":"bottomUpCheckPeriod","nameLocation":"1446:19:38","nodeType":"VariableDeclaration","scope":36253,"src":"1439:26:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":36237,"name":"uint64","nodeType":"ElementaryTypeName","src":"1439:6:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":36240,"mutability":"mutable","name":"majorityPercentage","nameLocation":"1481:18:38","nodeType":"VariableDeclaration","scope":36253,"src":"1475:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":36239,"name":"uint8","nodeType":"ElementaryTypeName","src":"1475:5:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":36242,"mutability":"mutable","name":"activeValidatorsLimit","nameLocation":"1516:21:38","nodeType":"VariableDeclaration","scope":36253,"src":"1509:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":36241,"name":"uint16","nodeType":"ElementaryTypeName","src":"1509:6:38","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":36244,"mutability":"mutable","name":"minCrossMsgFee","nameLocation":"1555:14:38","nodeType":"VariableDeclaration","scope":36253,"src":"1547:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36243,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36246,"mutability":"mutable","name":"powerScale","nameLocation":"1584:10:38","nodeType":"VariableDeclaration","scope":36253,"src":"1579:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":36245,"name":"int8","nodeType":"ElementaryTypeName","src":"1579:4:38","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":36249,"mutability":"mutable","name":"permissionMode","nameLocation":"1619:14:38","nodeType":"VariableDeclaration","scope":36253,"src":"1604:29:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":36248,"nodeType":"UserDefinedTypeName","pathNode":{"id":36247,"name":"PermissionMode","nameLocations":["1604:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"1604:14:38"},"referencedDeclaration":50165,"src":"1604:14:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"},{"constant":false,"id":36252,"mutability":"mutable","name":"supplySource","nameLocation":"1656:12:38","nodeType":"VariableDeclaration","scope":36253,"src":"1643:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"},"typeName":{"id":36251,"nodeType":"UserDefinedTypeName","pathNode":{"id":36250,"name":"SupplySource","nameLocations":["1643:12:38"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"1643:12:38"},"referencedDeclaration":50226,"src":"1643:12:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"1248:17:38","scope":36615,"visibility":"public"},{"id":36539,"nodeType":"FunctionDefinition","src":"1681:2901:38","nodes":[],"body":{"id":36538,"nodeType":"Block","src":"1766:2816:38","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36263,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"1780:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1787:14:38","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":36229,"src":"1780:21:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1813:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1805:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36265,"name":"address","nodeType":"ElementaryTypeName","src":"1805:7:38","typeDescriptions":{}}},"id":36268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1805:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1780:35:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36274,"nodeType":"IfStatement","src":"1776:94:38","trueBody":{"id":36273,"nodeType":"Block","src":"1817:53:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36270,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37400,"src":"1838:19:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1838:21:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36272,"nodeType":"RevertStatement","src":"1831:28:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":36278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36275,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"1946:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1953:19:38","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":36238,"src":"1946:26:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":36277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1976:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1946:31:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36283,"nodeType":"IfStatement","src":"1942:94:38","trueBody":{"id":36282,"nodeType":"Block","src":"1979:57:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36279,"name":"InvalidSubmissionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37444,"src":"2000:23:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2000:25:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36281,"nodeType":"RevertStatement","src":"1993:32:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":36293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":36288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36284,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2049:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2056:14:38","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":36249,"src":"2049:21:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":36286,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"2074:14:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":36287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2089:9:38","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"2074:24:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"2049:49:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":36292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36289,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2102:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2109:23:38","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":36234,"src":"2102:30:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":36291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2136:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2102:35:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2049:88:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36298,"nodeType":"IfStatement","src":"2045:145:38","trueBody":{"id":36297,"nodeType":"Block","src":"2139:51:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36294,"name":"InvalidCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37416,"src":"2160:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2160:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36296,"nodeType":"RevertStatement","src":"2153:26:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":36307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":36302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36299,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2203:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2210:18:38","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":36240,"src":"2203:25:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3531","id":36301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2231:2:38","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"2203:30:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":36306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36303,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2237:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2244:18:38","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":36240,"src":"2237:25:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":36305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2265:3:38","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2237:31:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2203:65:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36312,"nodeType":"IfStatement","src":"2199:130:38","trueBody":{"id":36311,"nodeType":"Block","src":"2270:59:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36308,"name":"InvalidMajorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37428,"src":"2291:25:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2291:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36310,"nodeType":"RevertStatement","src":"2284:34:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":36316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36313,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2342:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2349:10:38","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":36246,"src":"2342:17:38","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3138","id":36315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2362:2:38","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"2342:22:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36321,"nodeType":"IfStatement","src":"2338:79:38","trueBody":{"id":36320,"nodeType":"Block","src":"2366:51:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36317,"name":"InvalidPowerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37430,"src":"2387:17:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2387:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36319,"nodeType":"RevertStatement","src":"2380:26:38"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":36322,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2427:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2434:12:38","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":36252,"src":"2427:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":36326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2447:8:38","memberName":"validate","nodeType":"MemberAccess","referencedDeclaration":48161,"src":"2427:28:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_SupplySource_$50226_memory_ptr_$returns$__$attached_to$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function (struct SupplySource memory) view"}},"id":36327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2427:30:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36328,"nodeType":"ExpressionStatement","src":"2427:30:38"},{"expression":{"arguments":[{"expression":{"id":36332,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2496:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2500:6:38","memberName":"sender","nodeType":"MemberAccess","src":"2496:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":36329,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"2468:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2479:16:38","memberName":"setContractOwner","nodeType":"MemberAccess","referencedDeclaration":41102,"src":"2468:27:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":36334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2468:39:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36335,"nodeType":"ExpressionStatement","src":"2468:39:38"},{"expression":{"arguments":[{"id":36339,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36257,"src":"2553:11:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"hexValue":"30","id":36342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2581:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2573:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36340,"name":"address","nodeType":"ElementaryTypeName","src":"2573:7:38","typeDescriptions":{}}},"id":36343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2573:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":36346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2606:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2596:9:38","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":36344,"name":"bytes","nodeType":"ElementaryTypeName","src":"2600:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":36347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2596:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":36336,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"2517:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2528:10:38","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":41262,"src":"2517:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":36348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2540:11:38","2566:5:38","2585:9:38"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"2517:93:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36349,"nodeType":"ExpressionStatement","src":"2517:93:38"},{"assignments":[36354],"declarations":[{"constant":false,"id":36354,"mutability":"mutable","name":"ds","nameLocation":"2655:2:38","nodeType":"VariableDeclaration","scope":36538,"src":"2621:36:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36353,"nodeType":"UserDefinedTypeName","pathNode":{"id":36352,"name":"LibDiamond.DiamondStorage","nameLocations":["2621:10:38","2632:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"2621:25:38"},"referencedDeclaration":41072,"src":"2621:25:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36358,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36355,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"2660:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2671:14:38","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"2660:25:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":36357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2660:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2621:66:38"},{"expression":{"id":36368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36359,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36354,"src":"2727:2:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2730:19:38","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"2727:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36366,"indexExpression":{"expression":{"arguments":[{"id":36362,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"2755:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}],"id":36361,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2750:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2750:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$40241","typeString":"type(contract IERC165)"}},"id":36364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2764:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"2750:25:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2727:49:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2779:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2727:56:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36369,"nodeType":"ExpressionStatement","src":"2727:56:38"},{"expression":{"id":36379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36370,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36354,"src":"2793:2:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2796:19:38","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"2793:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36377,"indexExpression":{"expression":{"arguments":[{"id":36373,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"2821:11:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}],"id":36372,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2816:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2816:17:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondCut_$40189","typeString":"type(contract IDiamondCut)"}},"id":36375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2834:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"2816:29:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2793:53:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2849:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2793:60:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36380,"nodeType":"ExpressionStatement","src":"2793:60:38"},{"expression":{"id":36390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36381,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36354,"src":"2863:2:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2866:19:38","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"2863:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36388,"indexExpression":{"expression":{"arguments":[{"id":36384,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"2891:13:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}],"id":36383,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2886:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2886:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondLoupe_$40230","typeString":"type(contract IDiamondLoupe)"}},"id":36386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2906:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"2886:31:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2863:55:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2921:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2863:62:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36391,"nodeType":"ExpressionStatement","src":"2863:62:38"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"id":36396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36392,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"2940:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2947:14:38","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":36249,"src":"2940:21:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":36394,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"2965:14:38","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":36395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2980:9:38","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":50163,"src":"2965:24:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"2940:49:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36404,"nodeType":"IfStatement","src":"2936:170:38","trueBody":{"id":36403,"nodeType":"Block","src":"2991:115:38","statements":[{"expression":{"id":36401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36397,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3061:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3068:23:38","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":36234,"src":"3061:30:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":36400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3094:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3061:34:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36402,"nodeType":"ExpressionStatement","src":"3061:34:38"}]}},{"expression":{"id":36410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36405,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3116:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3118:8:38","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":47238,"src":"3116:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36408,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3129:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3136:8:38","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":36227,"src":"3129:15:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"src":"3116:28:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":36411,"nodeType":"ExpressionStatement","src":"3116:28:38"},{"expression":{"id":36417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36412,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3154:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3156:14:38","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"3154:16:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36415,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3173:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3180:14:38","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":36229,"src":"3173:21:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3154:40:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36418,"nodeType":"ExpressionStatement","src":"3154:40:38"},{"expression":{"id":36424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36419,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3204:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3206:9:38","memberName":"consensus","nodeType":"MemberAccess","referencedDeclaration":47242,"src":"3204:11:38","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36422,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3218:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3225:9:38","memberName":"consensus","nodeType":"MemberAccess","referencedDeclaration":36232,"src":"3218:16:38","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"src":"3204:30:38","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"id":36425,"nodeType":"ExpressionStatement","src":"3204:30:38"},{"expression":{"id":36431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36426,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3244:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3246:23:38","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":47217,"src":"3244:25:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36429,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3272:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3279:23:38","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":36234,"src":"3272:30:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3244:58:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36432,"nodeType":"ExpressionStatement","src":"3244:58:38"},{"expression":{"id":36438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36433,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3312:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3314:13:38","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":47223,"src":"3312:15:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36436,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3330:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3337:13:38","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":36236,"src":"3330:20:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3312:38:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36439,"nodeType":"ExpressionStatement","src":"3312:38:38"},{"expression":{"id":36445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36440,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3360:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3362:19:38","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"3360:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36443,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3384:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3391:19:38","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":36238,"src":"3384:26:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3360:50:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36446,"nodeType":"ExpressionStatement","src":"3360:50:38"},{"expression":{"id":36452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36447,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3420:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3422:18:38","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":47231,"src":"3420:20:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36450,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3443:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3450:18:38","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":36240,"src":"3443:25:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3420:48:38","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":36453,"nodeType":"ExpressionStatement","src":"3420:48:38"},{"expression":{"id":36459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36454,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3478:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3480:10:38","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":47263,"src":"3478:12:38","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36457,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3493:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3500:10:38","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":36246,"src":"3493:17:38","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"3478:32:38","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":36460,"nodeType":"ExpressionStatement","src":"3478:32:38"},{"expression":{"id":36466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36461,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3520:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3522:14:38","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":47234,"src":"3520:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36464,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3539:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3546:14:38","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":36244,"src":"3539:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3520:40:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36467,"nodeType":"ExpressionStatement","src":"3520:40:38"},{"expression":{"id":36481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36468,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3570:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3572:17:38","memberName":"currentSubnetHash","nodeType":"MemberAccess","referencedDeclaration":47225,"src":"3570:19:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":36476,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3626:4:38","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":36475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3618:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36474,"name":"address","nodeType":"ElementaryTypeName","src":"3618:7:38","typeDescriptions":{}}},"id":36477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3618:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":36471,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3592:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3594:8:38","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":47238,"src":"3592:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":36473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3603:14:38","memberName":"createSubnetId","nodeType":"MemberAccess","referencedDeclaration":47735,"src":"3592:25:38","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$_t_address_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory,address) pure returns (struct SubnetID memory)"}},"id":36478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3592:40:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":36479,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3633:6:38","memberName":"toHash","nodeType":"MemberAccess","referencedDeclaration":47661,"src":"3592:47:38","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bytes32)"}},"id":36480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3592:49:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3570:71:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":36482,"nodeType":"ExpressionStatement","src":"3570:71:38"},{"expression":{"id":36490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36483,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3651:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3653:12:38","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"3651:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":36487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3666:14:38","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"3651:29:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36488,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"3683:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3690:14:38","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":36249,"src":"3683:21:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"src":"3651:53:38","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"id":36491,"nodeType":"ExpressionStatement","src":"3651:53:38"},{"expression":{"id":36496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36492,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3897:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3899:22:38","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":47211,"src":"3897:24:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36495,"name":"BATCH_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49913,"src":"3924:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3897:39:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":36497,"nodeType":"ExpressionStatement","src":"3897:39:38"},{"expression":{"id":36502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36498,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"3946:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3948:23:38","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47214,"src":"3946:25:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36501,"name":"MAX_MSGS_PER_BATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49910,"src":"3974:18:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3946:46:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36503,"nodeType":"ExpressionStatement","src":"3946:46:38"},{"expression":{"id":36511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36504,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"4003:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4005:12:38","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"4003:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":36508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4018:11:38","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"4003:26:38","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36509,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"4032:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4039:21:38","memberName":"activeValidatorsLimit","nodeType":"MemberAccess","referencedDeclaration":36242,"src":"4032:28:38","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4003:57:38","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":36512,"nodeType":"ExpressionStatement","src":"4003:57:38"},{"expression":{"id":36520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36513,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"4180:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4182:9:38","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"4180:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":36517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4192:23:38","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"4180:35:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36518,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"4218:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":36519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4229:28:38","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":45319,"src":"4218:39:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4180:77:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36521,"nodeType":"ExpressionStatement","src":"4180:77:38"},{"expression":{"id":36529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":36522,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"4415:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36525,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4417:9:38","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"4415:11:38","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":36526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4427:24:38","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"4415:36:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36527,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"4454:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":36528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4465:28:38","memberName":"INITIAL_CONFIGURATION_NUMBER","nodeType":"MemberAccess","referencedDeclaration":45319,"src":"4454:39:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4415:78:38","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":36530,"nodeType":"ExpressionStatement","src":"4415:78:38"},{"expression":{"id":36536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36531,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"4539:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4541:12:38","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":47280,"src":"4539:14:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage","typeString":"struct SupplySource storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36534,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36260,"src":"4556:6:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"id":36535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4563:12:38","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":36252,"src":"4556:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"src":"4539:36:38","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage","typeString":"struct SupplySource storage ref"}},"id":36537,"nodeType":"ExpressionStatement","src":"4539:36:38"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36257,"mutability":"mutable","name":"_diamondCut","nameLocation":"1720:11:38","nodeType":"VariableDeclaration","scope":36539,"src":"1693:38:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":36255,"nodeType":"UserDefinedTypeName","pathNode":{"id":36254,"name":"IDiamond.FacetCut","nameLocations":["1693:8:38","1702:8:38"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"1693:17:38"},"referencedDeclaration":40159,"src":"1693:17:38","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":36256,"nodeType":"ArrayTypeName","src":"1693:19:38","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":36260,"mutability":"mutable","name":"params","nameLocation":"1758:6:38","nodeType":"VariableDeclaration","scope":36539,"src":"1733:31:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":36259,"nodeType":"UserDefinedTypeName","pathNode":{"id":36258,"name":"ConstructorParams","nameLocations":["1733:17:38"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"1733:17:38"},"referencedDeclaration":36253,"src":"1733:17:38","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"1692:73:38"},"returnParameters":{"id":36262,"nodeType":"ParameterList","parameters":[],"src":"1766:0:38"},"scope":36615,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":36578,"nodeType":"FunctionDefinition","src":"4588:1239:38","nodes":[],"body":{"id":36577,"nodeType":"Block","src":"4618:1209:38","nodes":[],"statements":[{"assignments":[36546],"declarations":[{"constant":false,"id":36546,"mutability":"mutable","name":"ds","nameLocation":"4662:2:38","nodeType":"VariableDeclaration","scope":36577,"src":"4628:36:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36545,"nodeType":"UserDefinedTypeName","pathNode":{"id":36544,"name":"LibDiamond.DiamondStorage","nameLocations":["4628:10:38","4639:14:38"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"4628:25:38"},"referencedDeclaration":41072,"src":"4628:25:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36547,"nodeType":"VariableDeclarationStatement","src":"4628:36:38"},{"assignments":[36549],"declarations":[{"constant":false,"id":36549,"mutability":"mutable","name":"position","nameLocation":"4682:8:38","nodeType":"VariableDeclaration","scope":36577,"src":"4674:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4674:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36552,"initialValue":{"expression":{"id":36550,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"4693:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4704:24:38","memberName":"DIAMOND_STORAGE_POSITION","nodeType":"MemberAccess","referencedDeclaration":40973,"src":"4693:35:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4674:54:38"},{"AST":{"nodeType":"YulBlock","src":"4824:43:38","statements":[{"nodeType":"YulAssignment","src":"4838:19:38","value":{"name":"position","nodeType":"YulIdentifier","src":"4849:8:38"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"4838:7:38"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":36546,"isOffset":false,"isSlot":true,"src":"4838:7:38","suffix":"slot","valueSize":1},{"declaration":36549,"isOffset":false,"isSlot":false,"src":"4849:8:38","valueSize":1}],"id":36553,"nodeType":"InlineAssembly","src":"4815:52:38"},{"assignments":[36555],"declarations":[{"constant":false,"id":36555,"mutability":"mutable","name":"facet","nameLocation":"4928:5:38","nodeType":"VariableDeclaration","scope":36577,"src":"4920:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36554,"name":"address","nodeType":"ElementaryTypeName","src":"4920:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":36562,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36556,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36546,"src":"4936:2:38","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4939:31:38","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"4936:34:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36560,"indexExpression":{"expression":{"id":36558,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4971:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4975:3:38","memberName":"sig","nodeType":"MemberAccess","src":"4971:7:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4936:43:38","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4980:12:38","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"4936:56:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4920:72:38"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36563,"name":"facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36555,"src":"5006:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5023:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5015:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36564,"name":"address","nodeType":"ElementaryTypeName","src":"5015:7:38","typeDescriptions":{}}},"id":36567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5015:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5006:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36575,"nodeType":"IfStatement","src":"5002:82:38","trueBody":{"id":36574,"nodeType":"Block","src":"5027:57:38","statements":[{"errorCall":{"arguments":[{"expression":{"id":36570,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5065:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5069:3:38","memberName":"sig","nodeType":"MemberAccess","src":"5065:7:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":36569,"name":"FunctionNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36213,"src":"5048:16:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":36572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5048:25:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36573,"nodeType":"RevertStatement","src":"5041:32:38"}]}},{"AST":{"nodeType":"YulBlock","src":"5237:584:38","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5320:1:38","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5323:1:38","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"5326:12:38"},"nodeType":"YulFunctionCall","src":"5326:14:38"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"5307:12:38"},"nodeType":"YulFunctionCall","src":"5307:34:38"},"nodeType":"YulExpressionStatement","src":"5307:34:38"},{"nodeType":"YulVariableDeclaration","src":"5407:65:38","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"5434:3:38"},"nodeType":"YulFunctionCall","src":"5434:5:38"},{"name":"facet","nodeType":"YulIdentifier","src":"5441:5:38"},{"kind":"number","nodeType":"YulLiteral","src":"5448:1:38","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"5451:12:38"},"nodeType":"YulFunctionCall","src":"5451:14:38"},{"kind":"number","nodeType":"YulLiteral","src":"5467:1:38","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5470:1:38","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"5421:12:38"},"nodeType":"YulFunctionCall","src":"5421:51:38"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"5411:6:38","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5536:1:38","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5539:1:38","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5542:14:38"},"nodeType":"YulFunctionCall","src":"5542:16:38"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"5521:14:38"},"nodeType":"YulFunctionCall","src":"5521:38:38"},"nodeType":"YulExpressionStatement","src":"5521:38:38"},{"cases":[{"body":{"nodeType":"YulBlock","src":"5672:59:38","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5697:1:38","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5700:14:38"},"nodeType":"YulFunctionCall","src":"5700:16:38"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5690:6:38"},"nodeType":"YulFunctionCall","src":"5690:27:38"},"nodeType":"YulExpressionStatement","src":"5690:27:38"}]},"nodeType":"YulCase","src":"5665:66:38","value":{"kind":"number","nodeType":"YulLiteral","src":"5670:1:38","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"5752:59:38","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5777:1:38","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"5780:14:38"},"nodeType":"YulFunctionCall","src":"5780:16:38"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"5770:6:38"},"nodeType":"YulFunctionCall","src":"5770:27:38"},"nodeType":"YulExpressionStatement","src":"5770:27:38"}]},"nodeType":"YulCase","src":"5744:67:38","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"5646:6:38"},"nodeType":"YulSwitch","src":"5639:172:38"}]},"evmVersion":"paris","externalReferences":[{"declaration":36555,"isOffset":false,"isSlot":false,"src":"5441:5:38","valueSize":1}],"id":36576,"nodeType":"InlineAssembly","src":"5228:593:38"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"4597:9:38","parameters":{"id":36540,"nodeType":"ParameterList","parameters":[],"src":"4606:2:38"},"returnParameters":{"id":36541,"nodeType":"ParameterList","parameters":[],"src":"4618:0:38"},"scope":36615,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":36586,"nodeType":"FunctionDefinition","src":"5894:56:38","nodes":[],"body":{"id":36585,"nodeType":"Block","src":"5922:28:38","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36582,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36578,"src":"5932:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5932:11:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36584,"nodeType":"ExpressionStatement","src":"5932:11:38"}]},"documentation":{"id":36579,"nodeType":"StructuredDocumentation","src":"5833:56:38","text":"@notice Will run when no functions matches call data"},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36580,"nodeType":"ParameterList","parameters":[],"src":"5902:2:38"},"returnParameters":{"id":36581,"nodeType":"ParameterList","parameters":[],"src":"5922:0:38"},"scope":36615,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":36593,"nodeType":"FunctionDefinition","src":"6065:134:38","nodes":[],"body":{"id":36592,"nodeType":"Block","src":"6104:95:38","nodes":[],"statements":[]},"documentation":{"id":36587,"nodeType":"StructuredDocumentation","src":"5956:62:38","text":"@notice Same as fallback but called when calldata is empty"},"implemented":true,"kind":"receive","modifiers":[{"id":36590,"kind":"modifierInvocation","modifierName":{"id":36589,"name":"onlyGateway","nameLocations":["6092:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":36614,"src":"6092:11:38"},"nodeType":"ModifierInvocation","src":"6092:11:38"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36588,"nodeType":"ParameterList","parameters":[],"src":"6072:2:38"},"returnParameters":{"id":36591,"nodeType":"ParameterList","parameters":[],"src":"6104:0:38"},"scope":36615,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":36607,"nodeType":"FunctionDefinition","src":"6247:133:38","nodes":[],"body":{"id":36606,"nodeType":"Block","src":"6284:96:38","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36596,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6298:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6302:6:38","memberName":"sender","nodeType":"MemberAccess","src":"6298:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":36598,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36216,"src":"6312:1:38","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":36599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6314:14:38","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"6312:16:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6298:30:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36605,"nodeType":"IfStatement","src":"6294:80:38","trueBody":{"id":36604,"nodeType":"Block","src":"6330:44:38","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36601,"name":"NotGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37478,"src":"6351:10:38","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6351:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36603,"nodeType":"RevertStatement","src":"6344:19:38"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyGateway","nameLocation":"6256:12:38","parameters":{"id":36594,"nodeType":"ParameterList","parameters":[],"src":"6268:2:38"},"returnParameters":{"id":36595,"nodeType":"ParameterList","parameters":[],"src":"6284:0:38"},"scope":36615,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":36614,"nodeType":"ModifierDefinition","src":"6386:65:38","nodes":[],"body":{"id":36613,"nodeType":"Block","src":"6409:42:38","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36609,"name":"_onlyGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36607,"src":"6419:12:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":36610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6419:14:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36611,"nodeType":"ExpressionStatement","src":"6419:14:38"},{"id":36612,"nodeType":"PlaceholderStatement","src":"6443:1:38"}]},"name":"onlyGateway","nameLocation":"6395:11:38","parameters":{"id":36608,"nodeType":"ParameterList","parameters":[],"src":"6406:2:38"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorDiamond","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36615],"name":"SubnetActorDiamond","nameLocation":"1093:18:38","scope":36616,"usedErrors":[36213,37400,37416,37428,37430,37444,37478,40981,40986,40990,40994,40999,41005,41018,41022,41026,41030,41034,41038,41042,48092]}],"license":"MIT OR Apache-2.0"},"id":38} \ No newline at end of file diff --git a/.out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json b/.out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json index 916a19ab9..dec6249a2 100644 --- a/.out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json +++ b/.out/SubnetActorGetterFacet.sol/SubnetActorGetterFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"activeValidatorsLimit","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"bootstrapped","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckpointAtEpoch","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckpointHashAtEpoch","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"bottomUpMsgBatchPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"consensus","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum ConsensusType"}],"stateMutability":"view"},{"type":"function","name":"crossMsgsHash","inputs":[{"name":"messages","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"genesisBalances","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"genesisCircSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"genesisValidators","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getActiveValidatorsNumber","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"getBootstrapNodes","inputs":[],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"getConfigurationNumbers","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getParent","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getPower","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRelayerReward","inputs":[{"name":"relayer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalCollateral","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalConfirmedCollateral","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalValidatorCollateral","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalValidatorsNumber","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"getValidator","inputs":[{"name":"validatorAddress","type":"address","internalType":"address"}],"outputs":[{"name":"validator","type":"tuple","internalType":"struct ValidatorInfo","components":[{"name":"federatedPower","type":"uint256","internalType":"uint256"},{"name":"confirmedCollateral","type":"uint256","internalType":"uint256"},{"name":"totalCollateral","type":"uint256","internalType":"uint256"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"hasSubmittedInLastBottomUpCheckpointHeight","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hasSubmittedInLastBottomUpMsgBatchHeight","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ipcGatewayAddr","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isActiveValidator","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWaitingValidator","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"killed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lastBottomUpCheckpointHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"lastBottomUpMsgBatchHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"majorityPercentage","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"minActivationCollateral","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minCrossMsgFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minValidators","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"permissionMode","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum PermissionMode"}],"stateMutability":"view"},{"type":"function","name":"powerScale","inputs":[],"outputs":[{"name":"","type":"int8","internalType":"int8"}],"stateMutability":"view"}],"bytecode":{"object":"0x60808060405234610016576114ac908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610d90575081631597bf7e14610d4a5781631904bb2e14610c7b5781631f3a0e4114610c5457816328d5551d14610c355781632bc31eb314610bec578163332a5ac9146103b25781633354c3e114610bc657816335142c8c14610b9f57816338a210b314610b6e5781633da33241146109b757816340550a1c146109785781634b0694e21461091f5781634b27aa72146108e357816352d182d11461089b578163599c7bd1146108765781635dd9147c146107ea5781636704287c146107cb57816369e737fd146107ac57816372d0a0e01461078d57816380f76021146106d35781638ef3f761146106a7578163903e693014610578578163948628a9146105595781639754b29e146104e15781639e33bd02146104c2578163ad81e4d6146104a2578163b2bd295e1461046a578163c5ab224114610442578163c7cda7621461041f578163cfca2824146103f6578163d081be03146103b7578163d6eb5910146103b2578163d92e8f1214610244578163f0cf6c9614610205575063f75499dc146101b157600080fd5b34610201576020366003190112610201576101f8602092826101d1610dac565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020157816003193601126102015760ff60135416905191600382101561023157602083838152f35b634e487b7160e01b815260218452602490fd5b83915034610201578160031936011261020157919060019081549361026885610f4f565b9061027585519283610f14565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b83831061032e5750505050508451948186019282875251809352808601818460051b8801019794915b8483106102dd5787890388f35b909192939495848061031c839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610dc7565b9a9801969594919091019201906102d0565b89959697999a989a51606081018181106001600160401b0382111761039f57875282548152828c01546001600160a01b03168882015286518c926003928a926103858161037e8160028b01610f66565b0382610f14565b8a82015281520192019201919099979998969594986102a7565b634e487b7160e01b8c526041875260248cfd5b610e07565b5050346102015760203660031901126102015760209161ffff9082906001600160a01b036103e3610dac565b168152601a855220541615159051908152f35b505034610201578160031936011261020157600e5490516001600160a01b039091168152602090f35b50503461020157816003193601126102015760209061ffff601654169051908152f35b5050346102015781600319360112610201576020906001600160401b03600c54169051908152f35b5050346102015760203660031901126102015760209181906001600160a01b03610492610dac565b1681526021845220549051908152f35b5050346102015781600319360112610201576020918254900b9051908152f35b505034610201578160031936011261020157602090600a549051908152f35b8284346105565780600319360112610556576104fb6111fc565b825191602080840190808552835180925280868601968360051b870101940192955b82871061052a5785850386f35b909192938280610546600193603f198a82030186528851610dc7565b960192019601959291909261051d565b80fd5b5050346102015781600319360112610201576020906002549051908152f35b83915034610201578160031936011261020157919082549061059982610f4f565b936105a684519586610f14565b828552601f1992836105b782610f4f565b019060209136838901376105ca81610f4f565b926105d787519485610f14565b8184526105e382610f4f565b8484019601368737845b828110610642575050508061060b8651978789988952880190610e25565b928684038288015251928381520193925b82811061062b57505050500390f35b83518552869550938101939281019260010161061c565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b015416806106848388611023565b5286526003875289862054610699828a611023565b5201979695939492976105ed565b83833461020157816003193601126102015760ff60125416905191600182101561023157602083838152f35b8284346105565780600319360112610556576106ed610f35565b508151916106fa83610ef9565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077057889061076c8888610759818a0382610f14565b8385015251928284938452830190610e62565b0390f35b83546001600160a01b03168552909301926001928301920161073e565b5050346102015781600319360112610201576020906005549051908152f35b5050346102015781600319360112610201576020906008549051908152f35b505034610201578160031936011261020157602090600f549051908152f35b82843461055657602036600319011261055657610805610dac565b9060ff60135416906003821015610863576020848460018503610842576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b03166000908152601560205260409020600101549061083c565b634e487b7160e01b815260218552602490fd5b50503461020157816003193601126102015760209060ff600e5460a01c169051908152f35b83833461020157816003193601126102015761ffff908160195416826016541601928284116108d05750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610556576020366003190112610556575061090561076c913561104d565b839291925193849315158452806020850152830190610e8b565b90508234610556576020366003190112610556575061093e903561104d565b82516109678161095960208201946020865287830190610e8b565b03601f198101835282610f14565b519020825191151582526020820152f35b5050346102015760203660031901126102015760209161ffff9082906001600160a01b036109a4610dac565b1681526017855220541615159051908152f35b8284346105565760209283600319360112610201578035906001600160401b0390818311610b6a5736602384011215610b6a57820135818111610b6a5760248301908060051b936024853692010111610b66579093855193849288840196818986018b8a525260608086019386010193819681925b848410610a5657505050505050610a4c925003601f198101835282610f14565b5190209051908152f35b9193959092949650605f19898203018752610a718883611312565b803560de1982360301811215610b5e5790610acb8e610aba8f959484610ab191019680875260e0610aa28980611312565b9188015261012087019061138c565b91860186611312565b848203603f1901606086015261138c565b8d6080908501358185015286610ae360608701611326565b1660a08501528401359063ffffffff60e01b8216809203610b6257908f9291610b2c9060c09283870152610b1a60a088018861133a565b878303603f190160e08901529061136b565b940135610100840152013590811515809203610b5e576001928e92838093015299019701940191889697959391610a2c565b8580fd5b8780fd5b8480fd5b8380fd5b82843461055657806003193601126105565750601c548151906001600160401b03908181168352831c166020820152f35b50503461020157816003193601126102015760209060ff60125460081c1690519015158152f35b50503461020157816003193601126102015760209061ffff60135460081c169051908152f35b505034610201576020366003190112610201576101f860209282610c0e610dac565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b5050346102015781600319360112610201576020906006549051908152f35b50503461020157816003193601126102015760209060ff60125460101c1690519015158152f35b82843461055657602036600319011261055657610cd190606080610c9d610dac565b92855190610caa82610ec8565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b61076c6003835192610ce284610ec8565b8054845260018101549460208501958652610d18600283015492828701938452610d1183518096819301610f66565b0384610f14565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610dc7565b505034610201576020366003190112610201576020906002610d87610d6d610dac565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b849034610201578160031936011261020157602090600b548152f35b600435906001600160a01b0382168203610dc257565b600080fd5b919082519283825260005b848110610df3575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610dd2565b34610dc2576000366003190112610dc2576020601454604051908152f35b90815180825260208080930193019160005b828110610e45575050505090565b83516001600160a01b031685529381019392810192600101610e37565b9060406020610e88936001600160401b0381511684520151918160208201520190610e25565b90565b9060606001600160401b0381610eaa8551608086526080860190610e62565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610ee357604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610ee357604052565b90601f801991011681019081106001600160401b03821117610ee357604052565b60405190610f4282610ef9565b6060602083600081520152565b6001600160401b038111610ee35760051b60200190565b80546000939260018083169383821c938515611019575b602095868610811461100357858552908115610fe45750600114610fa3575b5050505050565b90939495506000929192528360002092846000945b838610610fd057505050500101903880808080610f9c565b805485870183015294019385908201610fb8565b60ff19168685015250505090151560051b010191503880808080610f9c565b634e487b7160e01b600052602260045260246000fd5b93607f1693610f7d565b80518210156110375760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90604080519261105c84610ec8565b611064610f35565b845260009081606060209682888201528286820152015281528084528181209382519461109086610ec8565b83519161109c83610ef9565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b8181106111e057505050600484916110e18888999a038a610f14565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b8181106111bf57505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156111b65750829361117b575b505050159190565b9080929350813d83116111af575b6111938183610f14565b8101031261020157519081151582036105565750388080611173565b503d611189565b513d84823e3d90fd5b83516001600160a01b0316855287968996509485019490930192820161113e565b82546001600160a01b03168a52988701989185019185016110c5565b60255461120881610f4f565b90604061121781519384610f14565b818352601f1961122683610f4f565b0160005b81811061130157505081156112fc5780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b858882106112e657505061128592500382610f14565b60005b84811061129757505050505090565b6001906001600160a01b036112ac8285611023565b51166000526024845261037e6112ca86600020875192838092610f66565b6112d48289611023565b526112df8188611023565b5001611288565b845483526001948501948694509201910161126f565b505090565b80606060208093880101520161122a565b9035603e1982360301811215610dc2570190565b35906001600160401b0382168203610dc257565b9035601e1982360301811215610dc25701602081359101916001600160401b038211610dc2578136038313610dc257565b908060209392818452848401376000828201840152601f01601f1916010190565b906113978280611312565b906040815260808101926001600160401b0393846113b485611326565b16604084015260209384810135601e1982360301811215610dc25701908482359201958211610dc2578160051b36038613610dc2578190604060608601525260a08301949060005b81811061144e575050508083611413920190611312565b908281850391015280359060ff8216809203610dc25783611441604093928493610e8897528581019061133a565b939094820152019161136b565b90919586359060018060a01b038216809203610dc257908152850195850191906001016113fc56fea2646970667358221220a7b61af91d974861edf454d704d58a0fa3a8981396761652d84b0c75521bed2964736f6c63430008130033","sourceMap":"667:7292:77:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":4459,"length":20}]}}},"deployedBytecode":{"object":"0x608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610d90575081631597bf7e14610d4a5781631904bb2e14610c7b5781631f3a0e4114610c5457816328d5551d14610c355781632bc31eb314610bec578163332a5ac9146103b25781633354c3e114610bc657816335142c8c14610b9f57816338a210b314610b6e5781633da33241146109b757816340550a1c146109785781634b0694e21461091f5781634b27aa72146108e357816352d182d11461089b578163599c7bd1146108765781635dd9147c146107ea5781636704287c146107cb57816369e737fd146107ac57816372d0a0e01461078d57816380f76021146106d35781638ef3f761146106a7578163903e693014610578578163948628a9146105595781639754b29e146104e15781639e33bd02146104c2578163ad81e4d6146104a2578163b2bd295e1461046a578163c5ab224114610442578163c7cda7621461041f578163cfca2824146103f6578163d081be03146103b7578163d6eb5910146103b2578163d92e8f1214610244578163f0cf6c9614610205575063f75499dc146101b157600080fd5b34610201576020366003190112610201576101f8602092826101d1610dac565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020157816003193601126102015760ff60135416905191600382101561023157602083838152f35b634e487b7160e01b815260218452602490fd5b83915034610201578160031936011261020157919060019081549361026885610f4f565b9061027585519283610f14565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b83831061032e5750505050508451948186019282875251809352808601818460051b8801019794915b8483106102dd5787890388f35b909192939495848061031c839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610dc7565b9a9801969594919091019201906102d0565b89959697999a989a51606081018181106001600160401b0382111761039f57875282548152828c01546001600160a01b03168882015286518c926003928a926103858161037e8160028b01610f66565b0382610f14565b8a82015281520192019201919099979998969594986102a7565b634e487b7160e01b8c526041875260248cfd5b610e07565b5050346102015760203660031901126102015760209161ffff9082906001600160a01b036103e3610dac565b168152601a855220541615159051908152f35b505034610201578160031936011261020157600e5490516001600160a01b039091168152602090f35b50503461020157816003193601126102015760209061ffff601654169051908152f35b5050346102015781600319360112610201576020906001600160401b03600c54169051908152f35b5050346102015760203660031901126102015760209181906001600160a01b03610492610dac565b1681526021845220549051908152f35b5050346102015781600319360112610201576020918254900b9051908152f35b505034610201578160031936011261020157602090600a549051908152f35b8284346105565780600319360112610556576104fb6111fc565b825191602080840190808552835180925280868601968360051b870101940192955b82871061052a5785850386f35b909192938280610546600193603f198a82030186528851610dc7565b960192019601959291909261051d565b80fd5b5050346102015781600319360112610201576020906002549051908152f35b83915034610201578160031936011261020157919082549061059982610f4f565b936105a684519586610f14565b828552601f1992836105b782610f4f565b019060209136838901376105ca81610f4f565b926105d787519485610f14565b8184526105e382610f4f565b8484019601368737845b828110610642575050508061060b8651978789988952880190610e25565b928684038288015251928381520193925b82811061062b57505050500390f35b83518552869550938101939281019260010161061c565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b015416806106848388611023565b5286526003875289862054610699828a611023565b5201979695939492976105ed565b83833461020157816003193601126102015760ff60125416905191600182101561023157602083838152f35b8284346105565780600319360112610556576106ed610f35565b508151916106fa83610ef9565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077057889061076c8888610759818a0382610f14565b8385015251928284938452830190610e62565b0390f35b83546001600160a01b03168552909301926001928301920161073e565b5050346102015781600319360112610201576020906005549051908152f35b5050346102015781600319360112610201576020906008549051908152f35b505034610201578160031936011261020157602090600f549051908152f35b82843461055657602036600319011261055657610805610dac565b9060ff60135416906003821015610863576020848460018503610842576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b03166000908152601560205260409020600101549061083c565b634e487b7160e01b815260218552602490fd5b50503461020157816003193601126102015760209060ff600e5460a01c169051908152f35b83833461020157816003193601126102015761ffff908160195416826016541601928284116108d05750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610556576020366003190112610556575061090561076c913561104d565b839291925193849315158452806020850152830190610e8b565b90508234610556576020366003190112610556575061093e903561104d565b82516109678161095960208201946020865287830190610e8b565b03601f198101835282610f14565b519020825191151582526020820152f35b5050346102015760203660031901126102015760209161ffff9082906001600160a01b036109a4610dac565b1681526017855220541615159051908152f35b8284346105565760209283600319360112610201578035906001600160401b0390818311610b6a5736602384011215610b6a57820135818111610b6a5760248301908060051b936024853692010111610b66579093855193849288840196818986018b8a525260608086019386010193819681925b848410610a5657505050505050610a4c925003601f198101835282610f14565b5190209051908152f35b9193959092949650605f19898203018752610a718883611312565b803560de1982360301811215610b5e5790610acb8e610aba8f959484610ab191019680875260e0610aa28980611312565b9188015261012087019061138c565b91860186611312565b848203603f1901606086015261138c565b8d6080908501358185015286610ae360608701611326565b1660a08501528401359063ffffffff60e01b8216809203610b6257908f9291610b2c9060c09283870152610b1a60a088018861133a565b878303603f190160e08901529061136b565b940135610100840152013590811515809203610b5e576001928e92838093015299019701940191889697959391610a2c565b8580fd5b8780fd5b8480fd5b8380fd5b82843461055657806003193601126105565750601c548151906001600160401b03908181168352831c166020820152f35b50503461020157816003193601126102015760209060ff60125460081c1690519015158152f35b50503461020157816003193601126102015760209061ffff60135460081c169051908152f35b505034610201576020366003190112610201576101f860209282610c0e610dac565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b5050346102015781600319360112610201576020906006549051908152f35b50503461020157816003193601126102015760209060ff60125460101c1690519015158152f35b82843461055657602036600319011261055657610cd190606080610c9d610dac565b92855190610caa82610ec8565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b61076c6003835192610ce284610ec8565b8054845260018101549460208501958652610d18600283015492828701938452610d1183518096819301610f66565b0384610f14565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610dc7565b505034610201576020366003190112610201576020906002610d87610d6d610dac565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b849034610201578160031936011261020157602090600b548152f35b600435906001600160a01b0382168203610dc257565b600080fd5b919082519283825260005b848110610df3575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610dd2565b34610dc2576000366003190112610dc2576020601454604051908152f35b90815180825260208080930193019160005b828110610e45575050505090565b83516001600160a01b031685529381019392810192600101610e37565b9060406020610e88936001600160401b0381511684520151918160208201520190610e25565b90565b9060606001600160401b0381610eaa8551608086526080860190610e62565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610ee357604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610ee357604052565b90601f801991011681019081106001600160401b03821117610ee357604052565b60405190610f4282610ef9565b6060602083600081520152565b6001600160401b038111610ee35760051b60200190565b80546000939260018083169383821c938515611019575b602095868610811461100357858552908115610fe45750600114610fa3575b5050505050565b90939495506000929192528360002092846000945b838610610fd057505050500101903880808080610f9c565b805485870183015294019385908201610fb8565b60ff19168685015250505090151560051b010191503880808080610f9c565b634e487b7160e01b600052602260045260246000fd5b93607f1693610f7d565b80518210156110375760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90604080519261105c84610ec8565b611064610f35565b845260009081606060209682888201528286820152015281528084528181209382519461109086610ec8565b83519161109c83610ef9565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b8181106111e057505050600484916110e18888999a038a610f14565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b8181106111bf57505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49384156111b65750829361117b575b505050159190565b9080929350813d83116111af575b6111938183610f14565b8101031261020157519081151582036105565750388080611173565b503d611189565b513d84823e3d90fd5b83516001600160a01b0316855287968996509485019490930192820161113e565b82546001600160a01b03168a52988701989185019185016110c5565b60255461120881610f4f565b90604061121781519384610f14565b818352601f1961122683610f4f565b0160005b81811061130157505081156112fc5780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b858882106112e657505061128592500382610f14565b60005b84811061129757505050505090565b6001906001600160a01b036112ac8285611023565b51166000526024845261037e6112ca86600020875192838092610f66565b6112d48289611023565b526112df8188611023565b5001611288565b845483526001948501948694509201910161126f565b505090565b80606060208093880101520161122a565b9035603e1982360301811215610dc2570190565b35906001600160401b0382168203610dc257565b9035601e1982360301811215610dc25701602081359101916001600160401b038211610dc2578136038313610dc257565b908060209392818452848401376000828201840152601f01601f1916010190565b906113978280611312565b906040815260808101926001600160401b0393846113b485611326565b16604084015260209384810135601e1982360301811215610dc25701908482359201958211610dc2578160051b36038613610dc2578190604060608601525260a08301949060005b81811061144e575050508083611413920190611312565b908281850391015280359060ff8216809203610dc25783611441604093928493610e8897528581019061133a565b939094820152019161136b565b90919586359060018060a01b038216809203610dc257908152850195850191906001016113fc56fea2646970667358221220a7b61af91d974861edf454d704d58a0fa3a8981396761652d84b0c75521bed2964736f6c63430008130033","sourceMap":"667:7292:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6924:12;667:7292;6924:12;;;667:7292;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;667:7292:77;;;;5463:58;667:7292;;;;;:::i;:::-;;5415:19;667:7292;;;5463:30;667:7292;;;;8861:165:33;667:7292:77;;;;;;-1:-1:-1;667:7292:77;4352:12:33;667:7292:77;;;-1:-1:-1;667:7292:77;;4352:24:33;;8861:165;;5463:58:77;667:7292;;;;;;;;;;;;;;;;;;;;;;;;;;;1151:14;667:7292;;;;;;;;;;;;;;;;;;-1:-1:-1;;;667:7292:77;;;;;;;;;;;;;;;;;;;;;;;1896:19;;;667:7292;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;667:7292:77;;;;;;;;;;;;;;;-1:-1:-1;;;;;667:7292:77;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;667:7292:77;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;667:7292:77;;;;;;;;;;-1:-1:-1;;;;;667:7292:77;;:::i;:::-;;;;1317:17:72;667:7292:77;;;;;1317:33:72;;667:7292:77;;;;;;;;;;;;;;;;;;;;1268:16;667:7292;;;-1:-1:-1;;;;;667:7292:77;;;;;;;;;;;;;;;;;;;;;;;;;5328:27:64;667:7292:77;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1370:15:77;667:7292;;;;;;;;;;;;;;;;-1:-1:-1;;667:7292:77;;;;;;;;-1:-1:-1;;;;;667:7292:77;;:::i;:::-;;;;7917:16;667:7292;;;;;;;;;;;;;;;;;;;;;;;;6924:12;667:7292;;;;;;;;;;;;;;;;;;;;;;;;;;;3481:25;667:7292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2006:19;667:7292;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;7691:20:77;;667:7292;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;2331:9;2342:16;;;;;;667:7292;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;667:7292:77;;;;;;;;;;;;2331:9;667:7292;;;;;;;;;;;;;;;;;;;;;2428:19;;;;;:::i;:::-;667:7292;;;;;;;;;;2461:36;;;;:::i;:::-;667:7292;;2331:9;;;;;;;;;667:7292;;;;;;;;;;;;;;;3191:11;667:7292;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;1046:10;667:7292;-1:-1:-1;;;;;667:7292:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;667:7292:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2941:30;667:7292;;;;;;;;;;;;;;;;;;;;;;;2815:24;667:7292;;;;;;;;;;;;;;;;;;;;;;;3594:16;667:7292;;;;;;;;;;;;;;;-1:-1:-1;;667:7292:77;;;;;;:::i;:::-;16026:34:64;667:7292:77;16026:14:64;667:7292:77;;;;;;;;;;4668:53:64;;4697:24;4668:53;;4697:24;;-1:-1:-1;;;;;667:7292:77;;;;;18222:25:64;667:7292:77;;;;;;4664:230:64;;667:7292:77;;;;;4664:230:64;-1:-1:-1;;;;;667:7292:77;;;;;18222:25:64;667:7292:77;;;;;4697:24:64;4831:52;667:7292:77;4664:230:64;;;667:7292:77;-1:-1:-1;;;667:7292:77;;;;;;;;;;;;;;;;;;;;;;;;;1475:20;667:7292;;;;;;;;;;;;;;;;;;;;;;;;;;;17446:32:64;667:7292:77;;;17491:31:64;667:7292:77;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;667:7292:77;;;;;;;;;;;;;;;;;-1:-1:-1;;667:7292:77;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;667:7292:77;;;;;6674:32;667:7292;;6674:32;:::i;:::-;667:7292;;6742:22;;667:7292;;6742:22;;667:7292;;;;;;;;;:::i;:::-;6742:22;7691:20;;6742:22;;;;;;:::i;:::-;667:7292;6732:33;;667:7292;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;667:7292:77;;;;;;;;;;-1:-1:-1;;;;;667:7292:77;;:::i;:::-;;;;1317:17:72;667:7292:77;;;;;1317:33:72;;667:7292:77;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;667:7292:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7691:20;;;;;;667:7292;;;;;;;;;;;;;;;;;;;;;;;;;;;;7691:20;;;;;;;;;;;;;;;;;;:::i;:::-;667:7292;7681:31;;667:7292;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;-1:-1:-1;;667:7292:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;667:7292:77;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1720:11;667:7292;;;;-1:-1:-1;;;;;667:7292:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3285:14;667:7292;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1589:14;667:7292;;;;;;;;;;;;;;;;;;-1:-1:-1;;667:7292:77;;;;5708:63;667:7292;;;;;:::i;:::-;;5661:30;667:7292;;;5708:35;667:7292;;;;8861:165:33;667:7292:77;;;;;;-1:-1:-1;667:7292:77;4352:12:33;667:7292:77;;;-1:-1:-1;667:7292:77;;4352:24:33;;8861:165;;667:7292:77;;;;;;;;;;;;;;;;3071:19;667:7292;;;;;;;;;;;;;;;;;;;;;;;;3376:8;667:7292;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;667:7292:77;;;;3799:43;667:7292;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18222:25:64;667:7292:77;;;;;;;3799:43;667:7292;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3799:25;667:7292;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;667:7292:77;;;;;;18222:25:64;:36;667:7292:77;;:::i;:::-;-1:-1:-1;;;;;667:7292:77;;;;;18222:25:64;667:7292:77;;;;;;;18222:36:64;:52;667:7292:77;;;;;;;;;;;;;;;;;;;;;;;2698:21;667:7292;;;;;;;;-1:-1:-1;;;;;667:7292:77;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7691:20;;;667:7292;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;667:7292:77;;;;;5112:35:64;667:7292:77;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;667:7292:77;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;667:7292:77;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;667:7292:77;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;-1:-1:-1;;;;;667:7292:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;667:7292:77;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;667:7292:77;;;;;;;:::o;:::-;;7691:20;;;667:7292;;;;;;;;-1:-1:-1;;;;;667:7292:77;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;667:7292:77;;;;:::o;:::-;-1:-1:-1;;;;;667:7292:77;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;667:7292:77;;;;;-1:-1:-1;667:7292:77;;;-1:-1:-1;667:7292:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;667:7292:77;;;;;-1:-1:-1;;;667:7292:77;;;;;;;;-1:-1:-1;667:7292:77;;;;;;;;;;;-1:-1:-1;667:7292:77;;;;;-1:-1:-1;667:7292:77;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;6009:281;;667:7292;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;667:7292:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;667:7292:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6217:29;;;667:7292;6217:29;;667:7292;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6217:29;;;;;;;:27;;:29;;;;;;;;;;;;667:7292;6216:30;;;;6256:27;6009:281;:::o;6217:29::-;;;;;;;;;;;;;;;;;:::i;:::-;;;667:7292;;;;;;;;;;;;;6217:29;;;;;;;;;;;;667:7292;;;;;;;;;;;-1:-1:-1;;;;;667:7292:77;;;;;;;-1:-1:-1;667:7292:77;;;;;;;;;;;;;;;-1:-1:-1;;;;;667:7292:77;;;;;;;;;;;;;;;7003:471;7094:17;667:7292;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;667:7292:77;;;:::i;:::-;;-1:-1:-1;667:7292:77;;;;;;7183:6;;;;7179:49;;667:7292;;;;;;;;;;7094:17;-1:-1:-1;667:7292:77;;;;-1:-1:-1;667:7292:77;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7315:5:77;;;;;;7455:12;;;;;7003:471;:::o;7304:9::-;667:7292;;-1:-1:-1;;;;;7366:9:77;667:7292;7366:9;;:::i;:::-;667:7292;;-1:-1:-1;667:7292:77;7349:16;667:7292;;;;;-1:-1:-1;667:7292:77;;;;;;;;:::i;:::-;7338:38;;;;:::i;:::-;;;;;;:::i;:::-;;667:7292;7304:9;;667:7292;;;;;;;;;;;;-1:-1:-1;667:7292:77;;;;;;7179:49;7205:12;;;:::o;667:7292::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;667:7292:77;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;667:7292:77;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;667:7292:77;;;;;;7691:20;667:7292;-1:-1:-1;;667:7292:77;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;667:7292:77;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":4431,"length":20}]}}},"methodIdentifiers":{"activeValidatorsLimit()":"3354c3e1","bootstrapped()":"35142c8c","bottomUpCheckPeriod()":"06c46853","bottomUpCheckpointAtEpoch(uint256)":"4b27aa72","bottomUpCheckpointHashAtEpoch(uint256)":"4b0694e2","bottomUpMsgBatchPeriod()":"69e737fd","consensus()":"8ef3f761","crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":"3da33241","genesisBalances()":"903e6930","genesisCircSupply()":"948628a9","genesisValidators()":"d92e8f12","getActiveValidatorsNumber()":"c7cda762","getBootstrapNodes()":"9754b29e","getConfigurationNumbers()":"38a210b3","getParent()":"80f76021","getPower(address)":"5dd9147c","getRelayerReward(address)":"b2bd295e","getTotalCollateral()":"d6eb5910","getTotalConfirmedCollateral()":"332a5ac9","getTotalValidatorCollateral(address)":"1597bf7e","getTotalValidatorsNumber()":"52d182d1","getValidator(address)":"1904bb2e","hasSubmittedInLastBottomUpCheckpointHeight(address)":"2bc31eb3","hasSubmittedInLastBottomUpMsgBatchHeight(address)":"f75499dc","ipcGatewayAddr()":"cfca2824","isActiveValidator(address)":"40550a1c","isWaitingValidator(address)":"d081be03","killed()":"1f3a0e41","lastBottomUpCheckpointHeight()":"72d0a0e0","lastBottomUpMsgBatchHeight()":"28d5551d","majorityPercentage()":"599c7bd1","minActivationCollateral()":"9e33bd02","minCrossMsgFee()":"6704287c","minValidators()":"c5ab2241","permissionMode()":"f0cf6c96","powerScale()":"ad81e4d6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"activeValidatorsLimit\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bootstrapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"bottomUpCheckpointAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"bottomUpCheckpointHashAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpMsgBatchPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consensus\",\"outputs\":[{\"internalType\":\"enum ConsensusType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"name\":\"crossMsgsHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBalances\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisCircSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisValidators\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveValidatorsNumber\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBootstrapNodes\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConfigurationNumbers\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getParent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"getPower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"getRelayerReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalConfirmedCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"getTotalValidatorCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalValidatorsNumber\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorAddress\",\"type\":\"address\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"federatedPower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmedCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalCollateral\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct ValidatorInfo\",\"name\":\"validator\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"hasSubmittedInLastBottomUpCheckpointHeight\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"hasSubmittedInLastBottomUpMsgBatchHeight\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ipcGatewayAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isActiveValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isWaitingValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"killed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBottomUpCheckpointHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBottomUpMsgBatchHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minActivationCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minCrossMsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minValidators\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"permissionMode\",\"outputs\":[{\"internalType\":\"enum PermissionMode\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"powerScale\",\"outputs\":[{\"internalType\":\"int8\",\"name\":\"\",\"type\":\"int8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint256)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"checkpoint\":\"- the checkpoint struct\",\"exists\":\"- whether the checkpoint exists\"}},\"bottomUpCheckpointHashAtEpoch(uint256)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"_0\":\"exists - whether the checkpoint exists\",\"_1\":\"hash - the hash of the checkpoint\"}},\"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"params\":{\"messages\":\"- cross-messages to hash\"}},\"getRelayerReward(address)\":{\"params\":{\"relayer\":\"- relayer address\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint256)\":{\"notice\":\"returns the committed bottom-up checkpoint at specific epoch\"},\"bottomUpCheckpointHashAtEpoch(uint256)\":{\"notice\":\"returns the historical committed bottom-up checkpoint hash\"},\"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"notice\":\"This exists for testing purposes.\"},\"getActiveValidatorsNumber()\":{\"notice\":\"Get the number of active validators.\"},\"getBootstrapNodes()\":{\"notice\":\"returns the bootstrap nodes addresses\"},\"getParent()\":{\"notice\":\"get the parent subnet id\"},\"getPower(address)\":{\"notice\":\"Checks if the validator address is an active validator\"},\"getRelayerReward(address)\":{\"notice\":\"Returns the current reward for the relayer\"},\"getTotalValidatorsNumber()\":{\"notice\":\"Get the total number of validators (active and waiting).\"},\"getValidator(address)\":{\"notice\":\"Get the information of a validator\"},\"isActiveValidator(address)\":{\"notice\":\"Checks if the validator address is an active validator\"},\"isWaitingValidator(address)\":{\"notice\":\"Checks if the validator is a waiting validator\"},\"powerScale()\":{\"notice\":\"returns the power scale in number of decimals from whole FIL\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorGetterFacet.sol\":\"SubnetActorGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x96a4183d613f1cfefc19a6032361910d8d06ba68e14f2c26c7ed058ab9116bc4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://330a52b5ecb618b4846ecb04da3ee1109149228ccf05a2e098a87750ae4dd82e\",\"dweb:/ipfs/QmNY8kSJpHA238pR9dSbXFLw5D5WzfFj9pHqe8DQ2GmSuq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"activeValidatorsLimit","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bootstrapped","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpCheckPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpCheckpointAtEpoch","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpCheckpointHashAtEpoch","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpMsgBatchPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"consensus","outputs":[{"internalType":"enum ConsensusType","name":"","type":"uint8"}]},{"inputs":[{"internalType":"struct CrossMsg[]","name":"messages","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"pure","type":"function","name":"crossMsgsHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBalances","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisCircSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisValidators","outputs":[{"internalType":"struct Validator[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getActiveValidatorsNumber","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBootstrapNodes","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getConfigurationNumbers","outputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getParent","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"getPower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"relayer","type":"address"}],"stateMutability":"view","type":"function","name":"getRelayerReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalConfirmedCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalValidatorCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalValidatorsNumber","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"validatorAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getValidator","outputs":[{"internalType":"struct ValidatorInfo","name":"validator","type":"tuple","components":[{"internalType":"uint256","name":"federatedPower","type":"uint256"},{"internalType":"uint256","name":"confirmedCollateral","type":"uint256"},{"internalType":"uint256","name":"totalCollateral","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"hasSubmittedInLastBottomUpCheckpointHeight","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"hasSubmittedInLastBottomUpMsgBatchHeight","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ipcGatewayAddr","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"isActiveValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"isWaitingValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"killed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBottomUpCheckpointHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBottomUpMsgBatchHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"majorityPercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minActivationCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minCrossMsgFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minValidators","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"permissionMode","outputs":[{"internalType":"enum PermissionMode","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"powerScale","outputs":[{"internalType":"int8","name":"","type":"int8"}]}],"devdoc":{"kind":"dev","methods":{"bottomUpCheckpointAtEpoch(uint256)":{"params":{"epoch":"- the epoch to check"},"returns":{"checkpoint":"- the checkpoint struct","exists":"- whether the checkpoint exists"}},"bottomUpCheckpointHashAtEpoch(uint256)":{"params":{"epoch":"- the epoch to check"},"returns":{"_0":"exists - whether the checkpoint exists","_1":"hash - the hash of the checkpoint"}},"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"params":{"messages":"- cross-messages to hash"}},"getRelayerReward(address)":{"params":{"relayer":"- relayer address"}}},"version":1},"userdoc":{"kind":"user","methods":{"bottomUpCheckpointAtEpoch(uint256)":{"notice":"returns the committed bottom-up checkpoint at specific epoch"},"bottomUpCheckpointHashAtEpoch(uint256)":{"notice":"returns the historical committed bottom-up checkpoint hash"},"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"notice":"This exists for testing purposes."},"getActiveValidatorsNumber()":{"notice":"Get the number of active validators."},"getBootstrapNodes()":{"notice":"returns the bootstrap nodes addresses"},"getParent()":{"notice":"get the parent subnet id"},"getPower(address)":{"notice":"Checks if the validator address is an active validator"},"getRelayerReward(address)":{"notice":"Returns the current reward for the relayer"},"getTotalValidatorsNumber()":{"notice":"Get the total number of validators (active and waiting)."},"getValidator(address)":{"notice":"Get the information of a validator"},"isActiveValidator(address)":{"notice":"Checks if the validator address is an active validator"},"isWaitingValidator(address)":{"notice":"Checks if the validator is a waiting validator"},"powerScale()":{"notice":"returns the power scale in number of decimals from whole FIL"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnet/SubnetActorGetterFacet.sol":"SubnetActorGetterFacet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x96a4183d613f1cfefc19a6032361910d8d06ba68e14f2c26c7ed058ab9116bc4","urls":["bzz-raw://330a52b5ecb618b4846ecb04da3ee1109149228ccf05a2e098a87750ae4dd82e","dweb:/ipfs/QmNY8kSJpHA238pR9dSbXFLw5D5WzfFj9pHqe8DQ2GmSuq"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","id":49326,"exportedSymbols":{"Address":[32409],"BottomUpCheckpoint":[48410],"ConsensusType":[36918],"CrossMsg":[48452],"EnumerableSet":[35386],"LibStaking":[45464],"PermissionMode":[48648],"SubnetActorGetterFacet":[49325],"SubnetActorStorage":[46085],"SubnetID":[48557],"SubnetIDHelper":[46876],"Validator":[48694],"ValidatorInfo":[48644]},"nodeType":"SourceUnit","src":"46:7914:77","nodes":[{"id":48703,"nodeType":"PragmaDirective","src":"46:23:77","nodes":[],"literals":["solidity","0.8",".19"]},{"id":48705,"nodeType":"ImportDirective","src":"71:57:77","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":49326,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":48704,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"79:13:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48708,"nodeType":"ImportDirective","src":"129:69:77","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":49326,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":48706,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"137:18:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":48707,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48452,"src":"157:8:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48710,"nodeType":"ImportDirective","src":"199:47:77","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":49326,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":48709,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"207:8:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48715,"nodeType":"ImportDirective","src":"247:89:77","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":49326,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":48711,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"255:8:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":48712,"name":"ValidatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48644,"src":"265:13:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":48713,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"280:9:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":48714,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"291:14:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48717,"nodeType":"ImportDirective","src":"337:68:77","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"../lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":49326,"sourceUnit":46140,"symbolAliases":[{"foreign":{"id":48716,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46085,"src":"345:18:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48719,"nodeType":"ImportDirective","src":"406:57:77","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":49326,"sourceUnit":46877,"symbolAliases":[{"foreign":{"id":48718,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46876,"src":"414:14:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48721,"nodeType":"ImportDirective","src":"464:65:77","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":49326,"sourceUnit":32410,"symbolAliases":[{"foreign":{"id":48720,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"472:7:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48723,"nodeType":"ImportDirective","src":"530:85:77","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":49326,"sourceUnit":35387,"symbolAliases":[{"foreign":{"id":48722,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35386,"src":"538:13:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48725,"nodeType":"ImportDirective","src":"616:49:77","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":49326,"sourceUnit":45729,"symbolAliases":[{"foreign":{"id":48724,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"624:10:77","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49325,"nodeType":"ContractDefinition","src":"667:7292:77","nodes":[{"id":48729,"nodeType":"UsingForDirective","src":"705:49:77","nodes":[],"global":false,"libraryName":{"id":48726,"name":"EnumerableSet","nameLocations":["711:13:77"],"nodeType":"IdentifierPath","referencedDeclaration":35386,"src":"711:13:77"},"typeName":{"id":48728,"nodeType":"UserDefinedTypeName","pathNode":{"id":48727,"name":"EnumerableSet.AddressSet","nameLocations":["729:13:77","743:10:77"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"729:24:77"},"referencedDeclaration":35099,"src":"729:24:77","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":48733,"nodeType":"UsingForDirective","src":"759:34:77","nodes":[],"global":false,"libraryName":{"id":48730,"name":"SubnetIDHelper","nameLocations":["765:14:77"],"nodeType":"IdentifierPath","referencedDeclaration":46876,"src":"765:14:77"},"typeName":{"id":48732,"nodeType":"UserDefinedTypeName","pathNode":{"id":48731,"name":"SubnetID","nameLocations":["784:8:77"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"784:8:77"},"referencedDeclaration":48557,"src":"784:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}}},{"id":48736,"nodeType":"UsingForDirective","src":"798:34:77","nodes":[],"global":false,"libraryName":{"id":48734,"name":"Address","nameLocations":["804:7:77"],"nodeType":"IdentifierPath","referencedDeclaration":32409,"src":"804:7:77"},"typeName":{"id":48735,"name":"address","nodeType":"ElementaryTypeName","src":"816:15:77","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":48739,"nodeType":"VariableDeclaration","src":"891:29:77","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"919:1:77","scope":49325,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":48738,"nodeType":"UserDefinedTypeName","pathNode":{"id":48737,"name":"SubnetActorStorage","nameLocations":["891:18:77"],"nodeType":"IdentifierPath","referencedDeclaration":46085,"src":"891:18:77"},"referencedDeclaration":46085,"src":"891:18:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":48750,"nodeType":"FunctionDefinition","src":"968:95:77","nodes":[],"body":{"id":48749,"nodeType":"Block","src":"1029:34:77","nodes":[],"statements":[{"expression":{"expression":{"id":48746,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"1046:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1048:8:77","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":46046,"src":"1046:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage","typeString":"struct SubnetID storage ref"}},"functionReturnParameters":48745,"id":48748,"nodeType":"Return","src":"1039:17:77"}]},"documentation":{"id":48740,"nodeType":"StructuredDocumentation","src":"927:36:77","text":"@notice get the parent subnet id"},"functionSelector":"80f76021","implemented":true,"kind":"function","modifiers":[],"name":"getParent","nameLocation":"977:9:77","parameters":{"id":48741,"nodeType":"ParameterList","parameters":[],"src":"986:2:77"},"returnParameters":{"id":48745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48750,"src":"1012:15:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":48743,"nodeType":"UserDefinedTypeName","pathNode":{"id":48742,"name":"SubnetID","nameLocations":["1012:8:77"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1012:8:77"},"referencedDeclaration":48557,"src":"1012:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1011:17:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48761,"nodeType":"FunctionDefinition","src":"1069:118:77","nodes":[],"body":{"id":48760,"nodeType":"Block","src":"1134:53:77","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":48756,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"1151:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1153:12:77","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"1151:14:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":48758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1166:14:77","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":48652,"src":"1151:29:77","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"functionReturnParameters":48755,"id":48759,"nodeType":"Return","src":"1144:36:77"}]},"functionSelector":"f0cf6c96","implemented":true,"kind":"function","modifiers":[],"name":"permissionMode","nameLocation":"1078:14:77","parameters":{"id":48751,"nodeType":"ParameterList","parameters":[],"src":"1092:2:77"},"returnParameters":{"id":48755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48754,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48761,"src":"1118:14:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"typeName":{"id":48753,"nodeType":"UserDefinedTypeName","pathNode":{"id":48752,"name":"PermissionMode","nameLocations":["1118:14:77"],"nodeType":"IdentifierPath","referencedDeclaration":48648,"src":"1118:14:77"},"referencedDeclaration":48648,"src":"1118:14:77","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"visibility":"internal"}],"src":"1117:16:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48770,"nodeType":"FunctionDefinition","src":"1193:98:77","nodes":[],"body":{"id":48769,"nodeType":"Block","src":"1251:40:77","nodes":[],"statements":[{"expression":{"expression":{"id":48766,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"1268:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1270:14:77","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"1268:16:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":48765,"id":48768,"nodeType":"Return","src":"1261:23:77"}]},"functionSelector":"cfca2824","implemented":true,"kind":"function","modifiers":[],"name":"ipcGatewayAddr","nameLocation":"1202:14:77","parameters":{"id":48762,"nodeType":"ParameterList","parameters":[],"src":"1216:2:77"},"returnParameters":{"id":48765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48770,"src":"1242:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48763,"name":"address","nodeType":"ElementaryTypeName","src":"1242:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1241:9:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48779,"nodeType":"FunctionDefinition","src":"1297:95:77","nodes":[],"body":{"id":48778,"nodeType":"Block","src":"1353:39:77","nodes":[],"statements":[{"expression":{"expression":{"id":48775,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"1370:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1372:13:77","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":46031,"src":"1370:15:77","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":48774,"id":48777,"nodeType":"Return","src":"1363:22:77"}]},"functionSelector":"c5ab2241","implemented":true,"kind":"function","modifiers":[],"name":"minValidators","nameLocation":"1306:13:77","parameters":{"id":48771,"nodeType":"ParameterList","parameters":[],"src":"1319:2:77"},"returnParameters":{"id":48774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48773,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48779,"src":"1345:6:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":48772,"name":"uint64","nodeType":"ElementaryTypeName","src":"1345:6:77","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1344:8:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48788,"nodeType":"FunctionDefinition","src":"1398:104:77","nodes":[],"body":{"id":48787,"nodeType":"Block","src":"1458:44:77","nodes":[],"statements":[{"expression":{"expression":{"id":48784,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"1475:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1477:18:77","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":46039,"src":"1475:20:77","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":48783,"id":48786,"nodeType":"Return","src":"1468:27:77"}]},"functionSelector":"599c7bd1","implemented":true,"kind":"function","modifiers":[],"name":"majorityPercentage","nameLocation":"1407:18:77","parameters":{"id":48780,"nodeType":"ParameterList","parameters":[],"src":"1425:2:77"},"returnParameters":{"id":48783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48782,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48788,"src":"1451:5:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":48781,"name":"uint8","nodeType":"ElementaryTypeName","src":"1451:5:77","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1450:7:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48798,"nodeType":"FunctionDefinition","src":"1508:114:77","nodes":[],"body":{"id":48797,"nodeType":"Block","src":"1572:50:77","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":48793,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"1589:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1591:12:77","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"1589:14:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":48795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1604:11:77","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":48655,"src":"1589:26:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":48792,"id":48796,"nodeType":"Return","src":"1582:33:77"}]},"functionSelector":"3354c3e1","implemented":true,"kind":"function","modifiers":[],"name":"activeValidatorsLimit","nameLocation":"1517:21:77","parameters":{"id":48789,"nodeType":"ParameterList","parameters":[],"src":"1538:2:77"},"returnParameters":{"id":48792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48798,"src":"1564:6:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":48790,"name":"uint16","nodeType":"ElementaryTypeName","src":"1564:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1563:8:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48814,"nodeType":"FunctionDefinition","src":"1628:173:77","nodes":[],"body":{"id":48813,"nodeType":"Block","src":"1702:99:77","nodes":[],"statements":[{"expression":{"components":[{"expression":{"expression":{"id":48805,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"1720:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1722:9:77","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"1720:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":48807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1732:23:77","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48596,"src":"1720:35:77","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":48808,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"1757:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1759:9:77","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":46064,"src":"1757:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$48606_storage","typeString":"struct StakingChangeLog storage ref"}},"id":48810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1769:24:77","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48599,"src":"1757:36:77","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":48811,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1719:75:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":48804,"id":48812,"nodeType":"Return","src":"1712:82:77"}]},"functionSelector":"38a210b3","implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"1637:23:77","parameters":{"id":48799,"nodeType":"ParameterList","parameters":[],"src":"1660:2:77"},"returnParameters":{"id":48804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48801,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48814,"src":"1686:6:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":48800,"name":"uint64","nodeType":"ElementaryTypeName","src":"1686:6:77","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":48803,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48814,"src":"1694:6:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":48802,"name":"uint64","nodeType":"ElementaryTypeName","src":"1694:6:77","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1685:16:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48825,"nodeType":"FunctionDefinition","src":"1807:115:77","nodes":[],"body":{"id":48824,"nodeType":"Block","src":"1879:43:77","nodes":[],"statements":[{"expression":{"expression":{"id":48821,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"1896:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1898:17:77","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"1896:19:77","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"functionReturnParameters":48820,"id":48823,"nodeType":"Return","src":"1889:26:77"}]},"functionSelector":"d92e8f12","implemented":true,"kind":"function","modifiers":[],"name":"genesisValidators","nameLocation":"1816:17:77","parameters":{"id":48815,"nodeType":"ParameterList","parameters":[],"src":"1833:2:77"},"returnParameters":{"id":48820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48819,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48825,"src":"1859:18:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":48817,"nodeType":"UserDefinedTypeName","pathNode":{"id":48816,"name":"Validator","nameLocations":["1859:9:77"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"1859:9:77"},"referencedDeclaration":48694,"src":"1859:9:77","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"id":48818,"nodeType":"ArrayTypeName","src":"1859:11:77","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"}],"src":"1858:20:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48834,"nodeType":"FunctionDefinition","src":"1928:104:77","nodes":[],"body":{"id":48833,"nodeType":"Block","src":"1989:43:77","nodes":[],"statements":[{"expression":{"expression":{"id":48830,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"2006:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2008:17:77","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":46000,"src":"2006:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":48829,"id":48832,"nodeType":"Return","src":"1999:26:77"}]},"functionSelector":"948628a9","implemented":true,"kind":"function","modifiers":[],"name":"genesisCircSupply","nameLocation":"1937:17:77","parameters":{"id":48826,"nodeType":"ParameterList","parameters":[],"src":"1954:2:77"},"returnParameters":{"id":48829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48828,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48834,"src":"1980:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48827,"name":"uint256","nodeType":"ElementaryTypeName","src":"1980:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1979:9:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48910,"nodeType":"FunctionDefinition","src":"2038:574:77","nodes":[],"body":{"id":48909,"nodeType":"Block","src":"2124:488:77","nodes":[],"statements":[{"assignments":[48844],"declarations":[{"constant":false,"id":48844,"mutability":"mutable","name":"numAddresses","nameLocation":"2142:12:77","nodeType":"VariableDeclaration","scope":48909,"src":"2134:20:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48843,"name":"uint256","nodeType":"ElementaryTypeName","src":"2134:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48848,"initialValue":{"expression":{"expression":{"id":48845,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"2157:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2159:18:77","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":46009,"src":"2157:20:77","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":48847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2178:6:77","memberName":"length","nodeType":"MemberAccess","src":"2157:27:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2134:50:77"},{"assignments":[48853],"declarations":[{"constant":false,"id":48853,"mutability":"mutable","name":"addresses","nameLocation":"2211:9:77","nodeType":"VariableDeclaration","scope":48909,"src":"2194:26:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":48851,"name":"address","nodeType":"ElementaryTypeName","src":"2194:7:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48852,"nodeType":"ArrayTypeName","src":"2194:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":48859,"initialValue":{"arguments":[{"id":48857,"name":"numAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48844,"src":"2237:12:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2223:13:77","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":48854,"name":"address","nodeType":"ElementaryTypeName","src":"2227:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48855,"nodeType":"ArrayTypeName","src":"2227:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":48858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2223:27:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2194:56:77"},{"assignments":[48864],"declarations":[{"constant":false,"id":48864,"mutability":"mutable","name":"balances","nameLocation":"2277:8:77","nodeType":"VariableDeclaration","scope":48909,"src":"2260:25:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":48862,"name":"uint256","nodeType":"ElementaryTypeName","src":"2260:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48863,"nodeType":"ArrayTypeName","src":"2260:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":48870,"initialValue":{"arguments":[{"id":48868,"name":"numAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48844,"src":"2302:12:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2288:13:77","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":48865,"name":"uint256","nodeType":"ElementaryTypeName","src":"2292:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48866,"nodeType":"ArrayTypeName","src":"2292:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":48869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2288:27:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2260:55:77"},{"body":{"id":48903,"nodeType":"Block","src":"2362:206:77","statements":[{"assignments":[48878],"declarations":[{"constant":false,"id":48878,"mutability":"mutable","name":"addr","nameLocation":"2384:4:77","nodeType":"VariableDeclaration","scope":48903,"src":"2376:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48877,"name":"address","nodeType":"ElementaryTypeName","src":"2376:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":48883,"initialValue":{"baseExpression":{"expression":{"id":48879,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"2391:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2393:18:77","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":46009,"src":"2391:20:77","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":48882,"indexExpression":{"id":48881,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48872,"src":"2412:1:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2391:23:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2376:38:77"},{"expression":{"id":48888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48884,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48853,"src":"2428:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":48886,"indexExpression":{"id":48885,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48872,"src":"2438:1:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2428:12:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48887,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48878,"src":"2443:4:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2428:19:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48889,"nodeType":"ExpressionStatement","src":"2428:19:77"},{"expression":{"id":48897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48890,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48864,"src":"2461:8:77","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":48892,"indexExpression":{"id":48891,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48872,"src":"2470:1:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2461:11:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":48893,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"2475:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2477:14:77","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":46005,"src":"2475:16:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":48896,"indexExpression":{"id":48895,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48878,"src":"2492:4:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2475:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2461:36:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48898,"nodeType":"ExpressionStatement","src":"2461:36:77"},{"id":48902,"nodeType":"UncheckedBlock","src":"2512:46:77","statements":[{"expression":{"id":48900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2540:3:77","subExpression":{"id":48899,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48872,"src":"2542:1:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48901,"nodeType":"ExpressionStatement","src":"2540:3:77"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48874,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48872,"src":"2342:1:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":48875,"name":"numAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48844,"src":"2346:12:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2342:16:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48904,"initializationExpression":{"assignments":[48872],"declarations":[{"constant":false,"id":48872,"mutability":"mutable","name":"i","nameLocation":"2339:1:77","nodeType":"VariableDeclaration","scope":48904,"src":"2331:9:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48871,"name":"uint256","nodeType":"ElementaryTypeName","src":"2331:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48873,"nodeType":"VariableDeclarationStatement","src":"2331:9:77"},"nodeType":"ForStatement","src":"2326:242:77"},{"expression":{"components":[{"id":48905,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48853,"src":"2585:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":48906,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48864,"src":"2596:8:77","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"id":48907,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2584:21:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory)"}},"functionReturnParameters":48842,"id":48908,"nodeType":"Return","src":"2577:28:77"}]},"functionSelector":"903e6930","implemented":true,"kind":"function","modifiers":[],"name":"genesisBalances","nameLocation":"2047:15:77","parameters":{"id":48835,"nodeType":"ParameterList","parameters":[],"src":"2062:2:77"},"returnParameters":{"id":48842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48910,"src":"2088:16:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":48836,"name":"address","nodeType":"ElementaryTypeName","src":"2088:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48837,"nodeType":"ArrayTypeName","src":"2088:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":48841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48910,"src":"2106:16:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":48839,"name":"uint256","nodeType":"ElementaryTypeName","src":"2106:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48840,"nodeType":"ArrayTypeName","src":"2106:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2087:36:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48919,"nodeType":"FunctionDefinition","src":"2618:108:77","nodes":[],"body":{"id":48918,"nodeType":"Block","src":"2681:45:77","nodes":[],"statements":[{"expression":{"expression":{"id":48915,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"2698:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48916,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2700:19:77","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":46028,"src":"2698:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":48914,"id":48917,"nodeType":"Return","src":"2691:28:77"}]},"functionSelector":"06c46853","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckPeriod","nameLocation":"2627:19:77","parameters":{"id":48911,"nodeType":"ParameterList","parameters":[],"src":"2646:2:77"},"returnParameters":{"id":48914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48919,"src":"2672:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48912,"name":"uint256","nodeType":"ElementaryTypeName","src":"2672:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2671:9:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48928,"nodeType":"FunctionDefinition","src":"2732:114:77","nodes":[],"body":{"id":48927,"nodeType":"Block","src":"2798:48:77","nodes":[],"statements":[{"expression":{"expression":{"id":48924,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"2815:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2817:22:77","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":46019,"src":"2815:24:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":48923,"id":48926,"nodeType":"Return","src":"2808:31:77"}]},"functionSelector":"69e737fd","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpMsgBatchPeriod","nameLocation":"2741:22:77","parameters":{"id":48920,"nodeType":"ParameterList","parameters":[],"src":"2763:2:77"},"returnParameters":{"id":48923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48922,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48928,"src":"2789:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48921,"name":"uint256","nodeType":"ElementaryTypeName","src":"2789:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2788:9:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48937,"nodeType":"FunctionDefinition","src":"2852:126:77","nodes":[],"body":{"id":48936,"nodeType":"Block","src":"2924:54:77","nodes":[],"statements":[{"expression":{"expression":{"id":48933,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"2941:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2943:28:77","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":46012,"src":"2941:30:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":48932,"id":48935,"nodeType":"Return","src":"2934:37:77"}]},"functionSelector":"72d0a0e0","implemented":true,"kind":"function","modifiers":[],"name":"lastBottomUpCheckpointHeight","nameLocation":"2861:28:77","parameters":{"id":48929,"nodeType":"ParameterList","parameters":[],"src":"2889:2:77"},"returnParameters":{"id":48932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48931,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48937,"src":"2915:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48930,"name":"uint256","nodeType":"ElementaryTypeName","src":"2915:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2914:9:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48947,"nodeType":"FunctionDefinition","src":"2984:125:77","nodes":[],"body":{"id":48946,"nodeType":"Block","src":"3054:55:77","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":48942,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"3071:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3073:17:77","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":46016,"src":"3071:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$48428_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":48944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3091:11:77","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48425,"src":"3071:31:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":48941,"id":48945,"nodeType":"Return","src":"3064:38:77"}]},"functionSelector":"28d5551d","implemented":true,"kind":"function","modifiers":[],"name":"lastBottomUpMsgBatchHeight","nameLocation":"2993:26:77","parameters":{"id":48938,"nodeType":"ParameterList","parameters":[],"src":"3019:2:77"},"returnParameters":{"id":48941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48947,"src":"3045:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48939,"name":"uint256","nodeType":"ElementaryTypeName","src":"3045:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3044:9:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48957,"nodeType":"FunctionDefinition","src":"3115:94:77","nodes":[],"body":{"id":48956,"nodeType":"Block","src":"3174:35:77","nodes":[],"statements":[{"expression":{"expression":{"id":48953,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"3191:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3193:9:77","memberName":"consensus","nodeType":"MemberAccess","referencedDeclaration":46050,"src":"3191:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"functionReturnParameters":48952,"id":48955,"nodeType":"Return","src":"3184:18:77"}]},"functionSelector":"8ef3f761","implemented":true,"kind":"function","modifiers":[],"name":"consensus","nameLocation":"3124:9:77","parameters":{"id":48948,"nodeType":"ParameterList","parameters":[],"src":"3133:2:77"},"returnParameters":{"id":48952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48951,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48957,"src":"3159:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},"typeName":{"id":48950,"nodeType":"UserDefinedTypeName","pathNode":{"id":48949,"name":"ConsensusType","nameLocations":["3159:13:77"],"nodeType":"IdentifierPath","referencedDeclaration":36918,"src":"3159:13:77"},"referencedDeclaration":36918,"src":"3159:13:77","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},"visibility":"internal"}],"src":"3158:15:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48966,"nodeType":"FunctionDefinition","src":"3215:91:77","nodes":[],"body":{"id":48965,"nodeType":"Block","src":"3268:38:77","nodes":[],"statements":[{"expression":{"expression":{"id":48962,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"3285:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3287:12:77","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"3285:14:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48961,"id":48964,"nodeType":"Return","src":"3278:21:77"}]},"functionSelector":"35142c8c","implemented":true,"kind":"function","modifiers":[],"name":"bootstrapped","nameLocation":"3224:12:77","parameters":{"id":48958,"nodeType":"ParameterList","parameters":[],"src":"3236:2:77"},"returnParameters":{"id":48961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48960,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48966,"src":"3262:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48959,"name":"bool","nodeType":"ElementaryTypeName","src":"3262:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3261:6:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48975,"nodeType":"FunctionDefinition","src":"3312:79:77","nodes":[],"body":{"id":48974,"nodeType":"Block","src":"3359:32:77","nodes":[],"statements":[{"expression":{"expression":{"id":48971,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"3376:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3378:6:77","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":46056,"src":"3376:8:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48970,"id":48973,"nodeType":"Return","src":"3369:15:77"}]},"functionSelector":"1f3a0e41","implemented":true,"kind":"function","modifiers":[],"name":"killed","nameLocation":"3321:6:77","parameters":{"id":48967,"nodeType":"ParameterList","parameters":[],"src":"3327:2:77"},"returnParameters":{"id":48970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48975,"src":"3353:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48968,"name":"bool","nodeType":"ElementaryTypeName","src":"3353:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3352:6:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48984,"nodeType":"FunctionDefinition","src":"3397:116:77","nodes":[],"body":{"id":48983,"nodeType":"Block","src":"3464:49:77","nodes":[],"statements":[{"expression":{"expression":{"id":48980,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"3481:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3483:23:77","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":46025,"src":"3481:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":48979,"id":48982,"nodeType":"Return","src":"3474:32:77"}]},"functionSelector":"9e33bd02","implemented":true,"kind":"function","modifiers":[],"name":"minActivationCollateral","nameLocation":"3406:23:77","parameters":{"id":48976,"nodeType":"ParameterList","parameters":[],"src":"3429:2:77"},"returnParameters":{"id":48979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48984,"src":"3455:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48977,"name":"uint256","nodeType":"ElementaryTypeName","src":"3455:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3454:9:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":48993,"nodeType":"FunctionDefinition","src":"3519:98:77","nodes":[],"body":{"id":48992,"nodeType":"Block","src":"3577:40:77","nodes":[],"statements":[{"expression":{"expression":{"id":48989,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"3594:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":48990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3596:14:77","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":46042,"src":"3594:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":48988,"id":48991,"nodeType":"Return","src":"3587:23:77"}]},"functionSelector":"6704287c","implemented":true,"kind":"function","modifiers":[],"name":"minCrossMsgFee","nameLocation":"3528:14:77","parameters":{"id":48985,"nodeType":"ParameterList","parameters":[],"src":"3542:2:77"},"returnParameters":{"id":48988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48987,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48993,"src":"3568:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48986,"name":"uint256","nodeType":"ElementaryTypeName","src":"3568:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3567:9:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49011,"nodeType":"FunctionDefinition","src":"3674:175:77","nodes":[],"body":{"id":49010,"nodeType":"Block","src":"3777:72:77","nodes":[],"statements":[{"expression":{"id":49008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49002,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49000,"src":"3787:9:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_memory_ptr","typeString":"struct ValidatorInfo memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":49003,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"3799:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3801:12:77","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"3799:14:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":49005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3814:10:77","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":48664,"src":"3799:25:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$48644_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":49007,"indexExpression":{"id":49006,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48996,"src":"3825:16:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3799:43:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage","typeString":"struct ValidatorInfo storage ref"}},"src":"3787:55:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_memory_ptr","typeString":"struct ValidatorInfo memory"}},"id":49009,"nodeType":"ExpressionStatement","src":"3787:55:77"}]},"documentation":{"id":48994,"nodeType":"StructuredDocumentation","src":"3623:46:77","text":"@notice Get the information of a validator"},"functionSelector":"1904bb2e","implemented":true,"kind":"function","modifiers":[],"name":"getValidator","nameLocation":"3683:12:77","parameters":{"id":48997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48996,"mutability":"mutable","name":"validatorAddress","nameLocation":"3704:16:77","nodeType":"VariableDeclaration","scope":49011,"src":"3696:24:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48995,"name":"address","nodeType":"ElementaryTypeName","src":"3696:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3695:26:77"},"returnParameters":{"id":49001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49000,"mutability":"mutable","name":"validator","nameLocation":"3766:9:77","nodeType":"VariableDeclaration","scope":49011,"src":"3745:30:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_memory_ptr","typeString":"struct ValidatorInfo"},"typeName":{"id":48999,"nodeType":"UserDefinedTypeName","pathNode":{"id":48998,"name":"ValidatorInfo","nameLocations":["3745:13:77"],"nodeType":"IdentifierPath","referencedDeclaration":48644,"src":"3745:13:77"},"referencedDeclaration":48644,"src":"3745:13:77","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$48644_storage_ptr","typeString":"struct ValidatorInfo"}},"visibility":"internal"}],"src":"3744:32:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49022,"nodeType":"FunctionDefinition","src":"3928:119:77","nodes":[],"body":{"id":49021,"nodeType":"Block","src":"3995:52:77","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":49017,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"4012:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":49018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4023:15:77","memberName":"totalValidators","nodeType":"MemberAccess","referencedDeclaration":44766,"src":"4012:26:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":49019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4012:28:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":49016,"id":49020,"nodeType":"Return","src":"4005:35:77"}]},"documentation":{"id":49012,"nodeType":"StructuredDocumentation","src":"3855:68:77","text":"@notice Get the total number of validators (active and waiting)."},"functionSelector":"52d182d1","implemented":true,"kind":"function","modifiers":[],"name":"getTotalValidatorsNumber","nameLocation":"3937:24:77","parameters":{"id":49013,"nodeType":"ParameterList","parameters":[],"src":"3961:2:77"},"returnParameters":{"id":49016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49015,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49022,"src":"3987:6:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49014,"name":"uint16","nodeType":"ElementaryTypeName","src":"3987:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3986:8:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49033,"nodeType":"FunctionDefinition","src":"4106:126:77","nodes":[],"body":{"id":49032,"nodeType":"Block","src":"4174:58:77","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":49028,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"4191:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":49029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4202:21:77","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44740,"src":"4191:32:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":49030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:34:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":49027,"id":49031,"nodeType":"Return","src":"4184:41:77"}]},"documentation":{"id":49023,"nodeType":"StructuredDocumentation","src":"4053:48:77","text":"@notice Get the number of active validators."},"functionSelector":"c7cda762","implemented":true,"kind":"function","modifiers":[],"name":"getActiveValidatorsNumber","nameLocation":"4115:25:77","parameters":{"id":49024,"nodeType":"ParameterList","parameters":[],"src":"4140:2:77"},"returnParameters":{"id":49027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49026,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49033,"src":"4166:6:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":49025,"name":"uint16","nodeType":"ElementaryTypeName","src":"4166:6:77","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4165:8:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49043,"nodeType":"FunctionDefinition","src":"4238:135:77","nodes":[],"body":{"id":49042,"nodeType":"Block","src":"4309:64:77","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":49038,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"4326:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":49039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4337:27:77","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44784,"src":"4326:38:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":49040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4326:40:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":49037,"id":49041,"nodeType":"Return","src":"4319:47:77"}]},"functionSelector":"332a5ac9","implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"4247:27:77","parameters":{"id":49034,"nodeType":"ParameterList","parameters":[],"src":"4274:2:77"},"returnParameters":{"id":49037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49036,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49043,"src":"4300:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49035,"name":"uint256","nodeType":"ElementaryTypeName","src":"4300:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4299:9:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49053,"nodeType":"FunctionDefinition","src":"4379:117:77","nodes":[],"body":{"id":49052,"nodeType":"Block","src":"4441:55:77","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":49048,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"4458:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":49049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4469:18:77","memberName":"getTotalCollateral","nodeType":"MemberAccess","referencedDeclaration":44802,"src":"4458:29:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":49050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4458:31:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":49047,"id":49051,"nodeType":"Return","src":"4451:38:77"}]},"functionSelector":"d6eb5910","implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"4388:18:77","parameters":{"id":49044,"nodeType":"ParameterList","parameters":[],"src":"4406:2:77"},"returnParameters":{"id":49047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49053,"src":"4432:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49045,"name":"uint256","nodeType":"ElementaryTypeName","src":"4432:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4431:9:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49066,"nodeType":"FunctionDefinition","src":"4502:158:77","nodes":[],"body":{"id":49065,"nodeType":"Block","src":"4590:70:77","nodes":[],"statements":[{"expression":{"arguments":[{"id":49062,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49055,"src":"4643:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49060,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"4607:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":49061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4618:24:77","memberName":"totalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":44825,"src":"4607:35:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":49063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4607:46:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":49059,"id":49064,"nodeType":"Return","src":"4600:53:77"}]},"functionSelector":"1597bf7e","implemented":true,"kind":"function","modifiers":[],"name":"getTotalValidatorCollateral","nameLocation":"4511:27:77","parameters":{"id":49056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49055,"mutability":"mutable","name":"validator","nameLocation":"4547:9:77","nodeType":"VariableDeclaration","scope":49066,"src":"4539:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49054,"name":"address","nodeType":"ElementaryTypeName","src":"4539:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4538:19:77"},"returnParameters":{"id":49059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49058,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49066,"src":"4581:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49057,"name":"uint256","nodeType":"ElementaryTypeName","src":"4581:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4580:9:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49080,"nodeType":"FunctionDefinition","src":"4737:123:77","nodes":[],"body":{"id":49079,"nodeType":"Block","src":"4806:54:77","nodes":[],"statements":[{"expression":{"arguments":[{"id":49076,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49069,"src":"4843:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49074,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"4823:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":49075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4834:8:77","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44651,"src":"4823:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":49077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4823:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":49073,"id":49078,"nodeType":"Return","src":"4816:37:77"}]},"documentation":{"id":49067,"nodeType":"StructuredDocumentation","src":"4666:66:77","text":"@notice Checks if the validator address is an active validator"},"functionSelector":"5dd9147c","implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"4746:8:77","parameters":{"id":49070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49069,"mutability":"mutable","name":"validator","nameLocation":"4763:9:77","nodeType":"VariableDeclaration","scope":49080,"src":"4755:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49068,"name":"address","nodeType":"ElementaryTypeName","src":"4755:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4754:19:77"},"returnParameters":{"id":49073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49080,"src":"4797:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49071,"name":"uint256","nodeType":"ElementaryTypeName","src":"4797:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4796:9:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49094,"nodeType":"FunctionDefinition","src":"4937:138:77","nodes":[],"body":{"id":49093,"nodeType":"Block","src":"5012:63:77","nodes":[],"statements":[{"expression":{"arguments":[{"id":49090,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49083,"src":"5058:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49088,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"5029:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":49089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5040:17:77","memberName":"isActiveValidator","nodeType":"MemberAccess","referencedDeclaration":44674,"src":"5029:28:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":49091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5029:39:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49087,"id":49092,"nodeType":"Return","src":"5022:46:77"}]},"documentation":{"id":49081,"nodeType":"StructuredDocumentation","src":"4866:66:77","text":"@notice Checks if the validator address is an active validator"},"functionSelector":"40550a1c","implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"4946:17:77","parameters":{"id":49084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49083,"mutability":"mutable","name":"validator","nameLocation":"4972:9:77","nodeType":"VariableDeclaration","scope":49094,"src":"4964:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49082,"name":"address","nodeType":"ElementaryTypeName","src":"4964:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4963:19:77"},"returnParameters":{"id":49087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49086,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49094,"src":"5006:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49085,"name":"bool","nodeType":"ElementaryTypeName","src":"5006:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5005:6:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49108,"nodeType":"FunctionDefinition","src":"5144:140:77","nodes":[],"body":{"id":49107,"nodeType":"Block","src":"5220:64:77","nodes":[],"statements":[{"expression":{"arguments":[{"id":49104,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49097,"src":"5267:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49102,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"5237:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":49103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5248:18:77","memberName":"isWaitingValidator","nodeType":"MemberAccess","referencedDeclaration":44697,"src":"5237:29:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":49105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5237:40:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49101,"id":49106,"nodeType":"Return","src":"5230:47:77"}]},"documentation":{"id":49095,"nodeType":"StructuredDocumentation","src":"5081:58:77","text":"@notice Checks if the validator is a waiting validator"},"functionSelector":"d081be03","implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"5153:18:77","parameters":{"id":49098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49097,"mutability":"mutable","name":"validator","nameLocation":"5180:9:77","nodeType":"VariableDeclaration","scope":49108,"src":"5172:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49096,"name":"address","nodeType":"ElementaryTypeName","src":"5172:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5171:19:77"},"returnParameters":{"id":49101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49108,"src":"5214:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49099,"name":"bool","nodeType":"ElementaryTypeName","src":"5214:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5213:6:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49131,"nodeType":"FunctionDefinition","src":"5290:238:77","nodes":[],"body":{"id":49130,"nodeType":"Block","src":"5388:140:77","nodes":[],"statements":[{"assignments":[49116],"declarations":[{"constant":false,"id":49116,"mutability":"mutable","name":"height","nameLocation":"5406:6:77","nodeType":"VariableDeclaration","scope":49130,"src":"5398:14:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49115,"name":"uint256","nodeType":"ElementaryTypeName","src":"5398:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49120,"initialValue":{"expression":{"expression":{"id":49117,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"5415:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5417:17:77","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":46016,"src":"5415:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$48428_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":49119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5435:11:77","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48425,"src":"5415:31:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5398:48:77"},{"expression":{"arguments":[{"id":49127,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49110,"src":"5511:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":49121,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"5463:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5465:14:77","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"5463:16:77","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":49123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5480:13:77","memberName":"batchRewarded","nodeType":"MemberAccess","referencedDeclaration":48445,"src":"5463:30:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":49125,"indexExpression":{"id":49124,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49116,"src":"5494:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5463:38:77","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":49126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5502:8:77","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":35180,"src":"5463:47:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35099_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":49128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5463:58:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49114,"id":49129,"nodeType":"Return","src":"5456:65:77"}]},"functionSelector":"f75499dc","implemented":true,"kind":"function","modifiers":[],"name":"hasSubmittedInLastBottomUpMsgBatchHeight","nameLocation":"5299:40:77","parameters":{"id":49111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49110,"mutability":"mutable","name":"validator","nameLocation":"5348:9:77","nodeType":"VariableDeclaration","scope":49131,"src":"5340:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49109,"name":"address","nodeType":"ElementaryTypeName","src":"5340:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5339:19:77"},"returnParameters":{"id":49114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49113,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49131,"src":"5382:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49112,"name":"bool","nodeType":"ElementaryTypeName","src":"5382:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5381:6:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49153,"nodeType":"FunctionDefinition","src":"5534:244:77","nodes":[],"body":{"id":49152,"nodeType":"Block","src":"5634:144:77","nodes":[],"statements":[{"assignments":[49139],"declarations":[{"constant":false,"id":49139,"mutability":"mutable","name":"height","nameLocation":"5652:6:77","nodeType":"VariableDeclaration","scope":49152,"src":"5644:14:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49138,"name":"uint256","nodeType":"ElementaryTypeName","src":"5644:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49142,"initialValue":{"expression":{"id":49140,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"5661:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5663:28:77","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":46012,"src":"5661:30:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5644:47:77"},{"expression":{"arguments":[{"id":49149,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49133,"src":"5761:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":49143,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"5708:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5710:14:77","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"5708:16:77","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":49145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5725:18:77","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":48439,"src":"5708:35:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":49147,"indexExpression":{"id":49146,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49139,"src":"5744:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5708:43:77","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":49148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5752:8:77","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":35180,"src":"5708:52:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35099_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":49150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5708:63:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49137,"id":49151,"nodeType":"Return","src":"5701:70:77"}]},"functionSelector":"2bc31eb3","implemented":true,"kind":"function","modifiers":[],"name":"hasSubmittedInLastBottomUpCheckpointHeight","nameLocation":"5543:42:77","parameters":{"id":49134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49133,"mutability":"mutable","name":"validator","nameLocation":"5594:9:77","nodeType":"VariableDeclaration","scope":49153,"src":"5586:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49132,"name":"address","nodeType":"ElementaryTypeName","src":"5586:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5585:19:77"},"returnParameters":{"id":49137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49153,"src":"5628:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49135,"name":"bool","nodeType":"ElementaryTypeName","src":"5628:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5627:6:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49184,"nodeType":"FunctionDefinition","src":"6009:281:77","nodes":[],"body":{"id":49183,"nodeType":"Block","src":"6145:145:77","nodes":[],"statements":[{"expression":{"id":49169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49164,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49162,"src":"6155:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":49165,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"6168:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6170:20:77","memberName":"committedCheckpoints","nodeType":"MemberAccess","referencedDeclaration":45992,"src":"6168:22:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":49168,"indexExpression":{"id":49167,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49156,"src":"6191:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6168:29:77","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"6155:42:77","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":49170,"nodeType":"ExpressionStatement","src":"6155:42:77"},{"expression":{"id":49177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49171,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49159,"src":"6207:6:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6216:30:77","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":49172,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49162,"src":"6217:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":49173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6228:8:77","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":48400,"src":"6217:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":49174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6237:7:77","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":46875,"src":"6217:27:77","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$48557_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$48557_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":49175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6217:29:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6207:39:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49178,"nodeType":"ExpressionStatement","src":"6207:39:77"},{"expression":{"components":[{"id":49179,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49159,"src":"6264:6:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":49180,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49162,"src":"6272:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"id":49181,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6263:20:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$","typeString":"tuple(bool,struct BottomUpCheckpoint memory)"}},"functionReturnParameters":49163,"id":49182,"nodeType":"Return","src":"6256:27:77"}]},"documentation":{"id":49154,"nodeType":"StructuredDocumentation","src":"5784:220:77","text":"@notice returns the committed bottom-up checkpoint at specific epoch\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return checkpoint - the checkpoint struct"},"functionSelector":"4b27aa72","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpointAtEpoch","nameLocation":"6018:25:77","parameters":{"id":49157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49156,"mutability":"mutable","name":"epoch","nameLocation":"6061:5:77","nodeType":"VariableDeclaration","scope":49184,"src":"6053:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49155,"name":"uint256","nodeType":"ElementaryTypeName","src":"6053:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6043:29:77"},"returnParameters":{"id":49163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49159,"mutability":"mutable","name":"exists","nameLocation":"6099:6:77","nodeType":"VariableDeclaration","scope":49184,"src":"6094:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49158,"name":"bool","nodeType":"ElementaryTypeName","src":"6094:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":49162,"mutability":"mutable","name":"checkpoint","nameLocation":"6133:10:77","nodeType":"VariableDeclaration","scope":49184,"src":"6107:36:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":49161,"nodeType":"UserDefinedTypeName","pathNode":{"id":49160,"name":"BottomUpCheckpoint","nameLocations":["6107:18:77"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"6107:18:77"},"referencedDeclaration":48410,"src":"6107:18:77","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"6093:51:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":49213,"nodeType":"FunctionDefinition","src":"6518:255:77","nodes":[],"body":{"id":49212,"nodeType":"Block","src":"6610:163:77","nodes":[],"statements":[{"assignments":[49195,49198],"declarations":[{"constant":false,"id":49195,"mutability":"mutable","name":"exists","nameLocation":"6626:6:77","nodeType":"VariableDeclaration","scope":49212,"src":"6621:11:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49194,"name":"bool","nodeType":"ElementaryTypeName","src":"6621:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":49198,"mutability":"mutable","name":"checkpoint","nameLocation":"6660:10:77","nodeType":"VariableDeclaration","scope":49212,"src":"6634:36:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":49197,"nodeType":"UserDefinedTypeName","pathNode":{"id":49196,"name":"BottomUpCheckpoint","nameLocations":["6634:18:77"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"6634:18:77"},"referencedDeclaration":48410,"src":"6634:18:77","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":49202,"initialValue":{"arguments":[{"id":49200,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49187,"src":"6700:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49199,"name":"bottomUpCheckpointAtEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49184,"src":"6674:25:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpCheckpoint memory)"}},"id":49201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6674:32:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$","typeString":"tuple(bool,struct BottomUpCheckpoint memory)"}},"nodeType":"VariableDeclarationStatement","src":"6620:86:77"},{"expression":{"components":[{"id":49203,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49195,"src":"6724:6:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"id":49207,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49198,"src":"6753:10:77","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":49205,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6742:3:77","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":49206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6746:6:77","memberName":"encode","nodeType":"MemberAccess","src":"6742:10:77","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":49208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6742:22:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49204,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6732:9:77","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6732:33:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":49210,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6723:43:77","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"functionReturnParameters":49193,"id":49211,"nodeType":"Return","src":"6716:50:77"}]},"documentation":{"id":49185,"nodeType":"StructuredDocumentation","src":"6296:217:77","text":"@notice returns the historical committed bottom-up checkpoint hash\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return hash - the hash of the checkpoint"},"functionSelector":"4b0694e2","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpointHashAtEpoch","nameLocation":"6527:29:77","parameters":{"id":49188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49187,"mutability":"mutable","name":"epoch","nameLocation":"6565:5:77","nodeType":"VariableDeclaration","scope":49213,"src":"6557:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49186,"name":"uint256","nodeType":"ElementaryTypeName","src":"6557:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6556:15:77"},"returnParameters":{"id":49193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49190,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49213,"src":"6595:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49189,"name":"bool","nodeType":"ElementaryTypeName","src":"6595:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":49192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49213,"src":"6601:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6601:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6594:15:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49223,"nodeType":"FunctionDefinition","src":"6856:87:77","nodes":[],"body":{"id":49222,"nodeType":"Block","src":"6907:36:77","nodes":[],"statements":[{"expression":{"expression":{"id":49219,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"6924:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6926:10:77","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":46071,"src":"6924:12:77","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"functionReturnParameters":49218,"id":49221,"nodeType":"Return","src":"6917:19:77"}]},"documentation":{"id":49214,"nodeType":"StructuredDocumentation","src":"6779:72:77","text":"@notice returns the power scale in number of decimals from whole FIL"},"functionSelector":"ad81e4d6","implemented":true,"kind":"function","modifiers":[],"name":"powerScale","nameLocation":"6865:10:77","parameters":{"id":49215,"nodeType":"ParameterList","parameters":[],"src":"6875:2:77"},"returnParameters":{"id":49218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49223,"src":"6901:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":49216,"name":"int8","nodeType":"ElementaryTypeName","src":"6901:4:77","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"6900:6:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49291,"nodeType":"FunctionDefinition","src":"7003:471:77","nodes":[],"body":{"id":49290,"nodeType":"Block","src":"7072:402:77","nodes":[],"statements":[{"assignments":[49231],"declarations":[{"constant":false,"id":49231,"mutability":"mutable","name":"n","nameLocation":"7090:1:77","nodeType":"VariableDeclaration","scope":49290,"src":"7082:9:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49230,"name":"uint256","nodeType":"ElementaryTypeName","src":"7082:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49236,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":49232,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"7094:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7096:15:77","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":46084,"src":"7094:17:77","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":49234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7112:6:77","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":35195,"src":"7094:24:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35099_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":49235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7094:26:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7082:38:77"},{"assignments":[49241],"declarations":[{"constant":false,"id":49241,"mutability":"mutable","name":"nodes","nameLocation":"7146:5:77","nodeType":"VariableDeclaration","scope":49290,"src":"7130:21:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":49239,"name":"string","nodeType":"ElementaryTypeName","src":"7130:6:77","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":49240,"nodeType":"ArrayTypeName","src":"7130:8:77","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":49247,"initialValue":{"arguments":[{"id":49245,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49231,"src":"7167:1:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7154:12:77","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":49242,"name":"string","nodeType":"ElementaryTypeName","src":"7158:6:77","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":49243,"nodeType":"ArrayTypeName","src":"7158:8:77","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":49246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7154:15:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7130:39:77"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49248,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49231,"src":"7183:1:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7188:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7183:6:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49254,"nodeType":"IfStatement","src":"7179:49:77","trueBody":{"id":49253,"nodeType":"Block","src":"7191:37:77","statements":[{"expression":{"id":49251,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49241,"src":"7212:5:77","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":49229,"id":49252,"nodeType":"Return","src":"7205:12:77"}]}},{"assignments":[49259],"declarations":[{"constant":false,"id":49259,"mutability":"mutable","name":"owners","nameLocation":"7254:6:77","nodeType":"VariableDeclaration","scope":49290,"src":"7237:23:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":49257,"name":"address","nodeType":"ElementaryTypeName","src":"7237:7:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49258,"nodeType":"ArrayTypeName","src":"7237:9:77","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":49264,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":49260,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"7263:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7265:15:77","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":46084,"src":"7263:17:77","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":49262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7281:6:77","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35252,"src":"7263:24:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35099_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":49263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7263:26:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7237:52:77"},{"body":{"id":49286,"nodeType":"Block","src":"7324:122:77","statements":[{"expression":{"id":49280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":49271,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49241,"src":"7338:5:77","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":49273,"indexExpression":{"id":49272,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49266,"src":"7344:1:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7338:8:77","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":49274,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"7349:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7351:14:77","memberName":"bootstrapNodes","nodeType":"MemberAccess","referencedDeclaration":46080,"src":"7349:16:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":49279,"indexExpression":{"baseExpression":{"id":49276,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49259,"src":"7366:6:77","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":49278,"indexExpression":{"id":49277,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49266,"src":"7373:1:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7366:9:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7349:27:77","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"src":"7338:38:77","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":49281,"nodeType":"ExpressionStatement","src":"7338:38:77"},{"id":49285,"nodeType":"UncheckedBlock","src":"7390:46:77","statements":[{"expression":{"id":49283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7418:3:77","subExpression":{"id":49282,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49266,"src":"7420:1:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49284,"nodeType":"ExpressionStatement","src":"7418:3:77"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49268,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49266,"src":"7315:1:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":49269,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49231,"src":"7319:1:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7315:5:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49287,"initializationExpression":{"assignments":[49266],"declarations":[{"constant":false,"id":49266,"mutability":"mutable","name":"i","nameLocation":"7312:1:77","nodeType":"VariableDeclaration","scope":49287,"src":"7304:9:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49265,"name":"uint256","nodeType":"ElementaryTypeName","src":"7304:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49267,"nodeType":"VariableDeclarationStatement","src":"7304:9:77"},"nodeType":"ForStatement","src":"7299:147:77"},{"expression":{"id":49288,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49241,"src":"7462:5:77","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":49229,"id":49289,"nodeType":"Return","src":"7455:12:77"}]},"documentation":{"id":49224,"nodeType":"StructuredDocumentation","src":"6949:49:77","text":"@notice returns the bootstrap nodes addresses"},"functionSelector":"9754b29e","implemented":true,"kind":"function","modifiers":[],"name":"getBootstrapNodes","nameLocation":"7012:17:77","parameters":{"id":49225,"nodeType":"ParameterList","parameters":[],"src":"7029:2:77"},"returnParameters":{"id":49229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49228,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49291,"src":"7055:15:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":49226,"name":"string","nodeType":"ElementaryTypeName","src":"7055:6:77","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":49227,"nodeType":"ArrayTypeName","src":"7055:8:77","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"7054:17:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49309,"nodeType":"FunctionDefinition","src":"7579:140:77","nodes":[],"body":{"id":49308,"nodeType":"Block","src":"7664:55:77","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":49304,"name":"messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49296,"src":"7702:8:77","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"expression":{"id":49302,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7691:3:77","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":49303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7695:6:77","memberName":"encode","nodeType":"MemberAccess","src":"7691:10:77","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":49305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7691:20:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49301,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7681:9:77","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7681:31:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":49300,"id":49307,"nodeType":"Return","src":"7674:38:77"}]},"documentation":{"id":49292,"nodeType":"StructuredDocumentation","src":"7480:94:77","text":"@notice This exists for testing purposes.\n @param messages - cross-messages to hash"},"functionSelector":"3da33241","implemented":true,"kind":"function","modifiers":[],"name":"crossMsgsHash","nameLocation":"7588:13:77","parameters":{"id":49297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49296,"mutability":"mutable","name":"messages","nameLocation":"7622:8:77","nodeType":"VariableDeclaration","scope":49309,"src":"7602:28:77","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":49294,"nodeType":"UserDefinedTypeName","pathNode":{"id":49293,"name":"CrossMsg","nameLocations":["7602:8:77"],"nodeType":"IdentifierPath","referencedDeclaration":48452,"src":"7602:8:77"},"referencedDeclaration":48452,"src":"7602:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$48452_storage_ptr","typeString":"struct CrossMsg"}},"id":49295,"nodeType":"ArrayTypeName","src":"7602:10:77","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"7601:30:77"},"returnParameters":{"id":49300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49309,"src":"7655:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7655:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7654:9:77"},"scope":49325,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":49324,"nodeType":"FunctionDefinition","src":"7825:132:77","nodes":[],"body":{"id":49323,"nodeType":"Block","src":"7900:57:77","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":49317,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48739,"src":"7917:1:77","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7919:14:77","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"7917:16:77","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":49319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7934:7:77","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"7917:24:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":49321,"indexExpression":{"id":49320,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49312,"src":"7942:7:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7917:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":49316,"id":49322,"nodeType":"Return","src":"7910:40:77"}]},"documentation":{"id":49310,"nodeType":"StructuredDocumentation","src":"7725:95:77","text":"@notice Returns the current reward for the relayer\n @param relayer - relayer address"},"functionSelector":"b2bd295e","implemented":true,"kind":"function","modifiers":[],"name":"getRelayerReward","nameLocation":"7834:16:77","parameters":{"id":49313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49312,"mutability":"mutable","name":"relayer","nameLocation":"7859:7:77","nodeType":"VariableDeclaration","scope":49324,"src":"7851:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49311,"name":"address","nodeType":"ElementaryTypeName","src":"7851:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7850:17:77"},"returnParameters":{"id":49316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49324,"src":"7891:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49314,"name":"uint256","nodeType":"ElementaryTypeName","src":"7891:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7890:9:77"},"scope":49325,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorGetterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49325],"name":"SubnetActorGetterFacet","nameLocation":"676:22:77","scope":49326,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":77} \ No newline at end of file +{"abi":[{"type":"function","name":"activeValidatorsLimit","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"bootstrapped","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckpointAtEpoch","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"exists","type":"bool","internalType":"bool"},{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"bottomUpCheckpointHashAtEpoch","inputs":[{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"bottomUpMsgBatchPeriod","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"consensus","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum ConsensusType"}],"stateMutability":"view"},{"type":"function","name":"crossMsgsHash","inputs":[{"name":"messages","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"genesisBalances","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"genesisCircSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"genesisValidators","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getActiveValidatorsNumber","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"getBootstrapNodes","inputs":[],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"getConfigurationNumbers","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"},{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getParent","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getPower","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRelayerReward","inputs":[{"name":"relayer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalCollateral","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalConfirmedCollateral","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalValidatorCollateral","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalValidatorsNumber","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"getValidator","inputs":[{"name":"validatorAddress","type":"address","internalType":"address"}],"outputs":[{"name":"validator","type":"tuple","internalType":"struct ValidatorInfo","components":[{"name":"federatedPower","type":"uint256","internalType":"uint256"},{"name":"confirmedCollateral","type":"uint256","internalType":"uint256"},{"name":"totalCollateral","type":"uint256","internalType":"uint256"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"hasSubmittedInLastBottomUpCheckpointHeight","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"hasSubmittedInLastBottomUpMsgBatchHeight","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ipcGatewayAddr","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isActiveValidator","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isWaitingValidator","inputs":[{"name":"validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"killed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lastBottomUpCheckpointHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"lastBottomUpMsgBatchHeight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"majorityPercentage","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"minActivationCollateral","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minCrossMsgFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minValidators","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"permissionMode","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum PermissionMode"}],"stateMutability":"view"},{"type":"function","name":"powerScale","inputs":[],"outputs":[{"name":"","type":"int8","internalType":"int8"}],"stateMutability":"view"},{"type":"function","name":"supplySource","inputs":[],"outputs":[{"name":"supply","type":"tuple","internalType":"struct SupplySource","components":[{"name":"kind","type":"uint8","internalType":"enum SupplyKind"},{"name":"tokenAddress","type":"address","internalType":"address"}]}],"stateMutability":"view"}],"bytecode":{"object":"0x6080806040523461001657611533908161001c8239f35b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610e17575081631597bf7e14610dd15781631904bb2e14610d025781631f3a0e4114610cdb57816328d5551d14610cbc5781632bc31eb314610c73578163332a5ac9146103bd5781633354c3e114610c4d57816335142c8c14610c2657816338a210b314610bf55781633da3324114610a3e57816340550a1c146109ff5781634b0694e2146109a65781634b27aa721461096a57816352d182d114610922578163599c7bd1146108fd5781635dd9147c146108715781636704287c1461085257816369e737fd1461083357816372d0a0e01461081457816380875df71461079857816380f76021146106de5781638ef3f761146106b2578163903e693014610583578163948628a9146105645781639754b29e146104ec5781639e33bd02146104cd578163ad81e4d6146104ad578163b2bd295e14610475578163c5ab22411461044d578163c7cda7621461042a578163cfca282414610401578163d081be03146103c2578163d6eb5910146103bd578163d92e8f121461024f578163f0cf6c9614610210575063f75499dc146101bc57600080fd5b3461020c57602036600319011261020c57610203602092826101dc610e33565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020c578160031936011261020c5760ff60135416905191600382101561023c57602083838152f35b634e487b7160e01b815260218452602490fd5b8391503461020c578160031936011261020c57919060019081549361027385610fd6565b9061028085519283610f9b565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b8383106103395750505050508451948186019282875251809352808601818460051b8801019794915b8483106102e85787890388f35b9091929394958480610327839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610e4e565b9a9801969594919091019201906102db565b89959697999a989a51606081018181106001600160401b038211176103aa57875282548152828c01546001600160a01b03168882015286518c926003928a92610390816103898160028b01610fed565b0382610f9b565b8a82015281520192019201919099979998969594986102b2565b634e487b7160e01b8c526041875260248cfd5b610e8e565b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b036103ee610e33565b168152601a855220541615159051908152f35b50503461020c578160031936011261020c57600e5490516001600160a01b039091168152602090f35b50503461020c578160031936011261020c5760209061ffff601654169051908152f35b50503461020c578160031936011261020c576020906001600160401b03600c54169051908152f35b50503461020c57602036600319011261020c5760209181906001600160a01b0361049d610e33565b1681526021845220549051908152f35b50503461020c578160031936011261020c576020918254900b9051908152f35b50503461020c578160031936011261020c57602090600a549051908152f35b828434610561578060031936011261056157610506611283565b825191602080840190808552835180925280868601968360051b870101940192955b8287106105355785850386f35b909192938280610551600193603f198a82030186528851610e4e565b9601920196019592919092610528565b80fd5b50503461020c578160031936011261020c576020906002549051908152f35b8391503461020c578160031936011261020c5791908254906105a482610fd6565b936105b184519586610f9b565b828552601f1992836105c282610fd6565b019060209136838901376105d581610fd6565b926105e287519485610f9b565b8184526105ee82610fd6565b8484019601368737845b82811061064d57505050806106168651978789988952880190610eac565b928684038288015251928381520193925b82811061063657505050500390f35b835185528695509381019392810192600101610627565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154168061068f83886110aa565b52865260038752898620546106a4828a6110aa565b5201979695939492976105f8565b83833461020c578160031936011261020c5760ff60125416905191600182101561023c57602083838152f35b8284346105615780600319360112610561576106f8610fbc565b5081519161070583610f80565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077b5788906107778888610764818a0382610f9b565b8385015251928284938452830190610ee9565b0390f35b83546001600160a01b031685529093019260019283019201610749565b9050823461056157806003193601126105615780602084516107b981610f80565b828152015282516107c981610f80565b6027549160ff83169360028510156108015750508083602092520160018060a01b03809260081c168152835192835251166020820152f35b634e487b7160e01b825260219052602490fd5b50503461020c578160031936011261020c576020906005549051908152f35b50503461020c578160031936011261020c576020906008549051908152f35b50503461020c578160031936011261020c57602090600f549051908152f35b8284346105615760203660031901126105615761088c610e33565b9060ff601354169060038210156108ea5760208484600185036108c9576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b0316600090815260156020526040902060010154906108c3565b634e487b7160e01b815260218552602490fd5b50503461020c578160031936011261020c5760209060ff600e5460a01c169051908152f35b83833461020c578160031936011261020c5761ffff908160195416826016541601928284116109575750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610561576020366003190112610561575061098c61077791356110d4565b839291925193849315158452806020850152830190610f12565b9050823461056157602036600319011261056157506109c590356110d4565b82516109ee816109e060208201946020865287830190610f12565b03601f198101835282610f9b565b519020825191151582526020820152f35b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b03610a2b610e33565b1681526017855220541615159051908152f35b828434610561576020928360031936011261020c578035906001600160401b0390818311610bf15736602384011215610bf157820135818111610bf15760248301908060051b936024853692010111610bed579093855193849288840196818986018b8a525260608086019386010193819681925b848410610add57505050505050610ad3925003601f198101835282610f9b565b5190209051908152f35b9193959092949650605f19898203018752610af88883611399565b803560de1982360301811215610be55790610b528e610b418f959484610b3891019680875260e0610b298980611399565b91880152610120870190611413565b91860186611399565b848203603f19016060860152611413565b8d6080908501358185015286610b6a606087016113ad565b1660a08501528401359063ffffffff60e01b8216809203610be957908f9291610bb39060c09283870152610ba160a08801886113c1565b878303603f190160e0890152906113f2565b940135610100840152013590811515809203610be5576001928e92838093015299019701940191889697959391610ab3565b8580fd5b8780fd5b8480fd5b8380fd5b82843461056157806003193601126105615750601c548151906001600160401b03908181168352831c166020820152f35b50503461020c578160031936011261020c5760209060ff60125460081c1690519015158152f35b50503461020c578160031936011261020c5760209061ffff60135460081c169051908152f35b50503461020c57602036600319011261020c5761020360209282610c95610e33565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b50503461020c578160031936011261020c576020906006549051908152f35b50503461020c578160031936011261020c5760209060ff60125460101c1690519015158152f35b82843461056157602036600319011261056157610d5890606080610d24610e33565b92855190610d3182610f4f565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b6107776003835192610d6984610f4f565b8054845260018101549460208501958652610d9f600283015492828701938452610d9883518096819301610fed565b0384610f9b565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610e4e565b50503461020c57602036600319011261020c576020906002610e0e610df4610e33565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b84903461020c578160031936011261020c57602090600b548152f35b600435906001600160a01b0382168203610e4957565b600080fd5b919082519283825260005b848110610e7a575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610e59565b34610e49576000366003190112610e49576020601454604051908152f35b90815180825260208080930193019160005b828110610ecc575050505090565b83516001600160a01b031685529381019392810192600101610ebe565b9060406020610f0f936001600160401b0381511684520151918160208201520190610eac565b90565b9060606001600160401b0381610f318551608086526080860190610ee9565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610f6a57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610f6a57604052565b90601f801991011681019081106001600160401b03821117610f6a57604052565b60405190610fc982610f80565b6060602083600081520152565b6001600160401b038111610f6a5760051b60200190565b80546000939260018083169383821c9385156110a0575b602095868610811461108a5785855290811561106b575060011461102a575b5050505050565b90939495506000929192528360002092846000945b83861061105757505050500101903880808080611023565b80548587018301529401938590820161103f565b60ff19168685015250505090151560051b010191503880808080611023565b634e487b7160e01b600052602260045260246000fd5b93607f1693611004565b80518210156110be5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9060408051926110e384610f4f565b6110eb610fbc565b845260009081606060209682888201528286820152015281528084528181209382519461111786610f4f565b83519161112383610f80565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b81811061126757505050600484916111688888999a038a610f9b565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b81811061124657505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af493841561123d57508293611202575b505050159190565b9080929350813d8311611236575b61121a8183610f9b565b8101031261020c575190811515820361056157503880806111fa565b503d611210565b513d84823e3d90fd5b83516001600160a01b031685528796899650948501949093019282016111c5565b82546001600160a01b03168a529887019891850191850161114c565b60255461128f81610fd6565b90604061129e81519384610f9b565b818352601f196112ad83610fd6565b0160005b81811061138857505081156113835780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b8588821061136d57505061130c92500382610f9b565b60005b84811061131e57505050505090565b6001906001600160a01b0361133382856110aa565b51166000526024845261038961135186600020875192838092610fed565b61135b82896110aa565b5261136681886110aa565b500161130f565b84548352600194850194869450920191016112f6565b505090565b8060606020809388010152016112b1565b9035603e1982360301811215610e49570190565b35906001600160401b0382168203610e4957565b9035601e1982360301811215610e495701602081359101916001600160401b038211610e49578136038313610e4957565b908060209392818452848401376000828201840152601f01601f1916010190565b9061141e8280611399565b906040815260808101926001600160401b03938461143b856113ad565b16604084015260209384810135601e1982360301811215610e495701908482359201958211610e49578160051b36038613610e49578190604060608601525260a08301949060005b8181106114d557505050808361149a920190611399565b908281850391015280359060ff8216809203610e4957836114c8604093928493610f0f9752858101906113c1565b93909482015201916113f2565b90919586359060018060a01b038216809203610e49579081528501958501919060010161148356fea2646970667358221220bf850d4074a1e793a659119e8b06c4c9588d3187183ea6e92cb7f9d7466de16664736f6c63430008130033","sourceMap":"681:10025:84:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":4594,"length":20}]}}},"deployedBytecode":{"object":"0x608060408181526004918236101561001657600080fd5b600092833560e01c91826306c4685314610e17575081631597bf7e14610dd15781631904bb2e14610d025781631f3a0e4114610cdb57816328d5551d14610cbc5781632bc31eb314610c73578163332a5ac9146103bd5781633354c3e114610c4d57816335142c8c14610c2657816338a210b314610bf55781633da3324114610a3e57816340550a1c146109ff5781634b0694e2146109a65781634b27aa721461096a57816352d182d114610922578163599c7bd1146108fd5781635dd9147c146108715781636704287c1461085257816369e737fd1461083357816372d0a0e01461081457816380875df71461079857816380f76021146106de5781638ef3f761146106b2578163903e693014610583578163948628a9146105645781639754b29e146104ec5781639e33bd02146104cd578163ad81e4d6146104ad578163b2bd295e14610475578163c5ab22411461044d578163c7cda7621461042a578163cfca282414610401578163d081be03146103c2578163d6eb5910146103bd578163d92e8f121461024f578163f0cf6c9614610210575063f75499dc146101bc57600080fd5b3461020c57602036600319011261020c57610203602092826101dc610e33565b9160065481526023865220600191828060a01b031660005201602052604060002054151590565b90519015158152f35b5080fd5b83833461020c578160031936011261020c5760ff60135416905191600382101561023c57602083838152f35b634e487b7160e01b815260218452602490fd5b8391503461020c578160031936011261020c57919060019081549361027385610fd6565b9061028085519283610f9b565b85825260209081830196878686527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf686915b8383106103395750505050508451948186019282875251809352808601818460051b8801019794915b8483106102e85787890388f35b9091929394958480610327839b603f198c8203018752858b518051835260018060a01b0385820151168584015201519060609081888201520190610e4e565b9a9801969594919091019201906102db565b89959697999a989a51606081018181106001600160401b038211176103aa57875282548152828c01546001600160a01b03168882015286518c926003928a92610390816103898160028b01610fed565b0382610f9b565b8a82015281520192019201919099979998969594986102b2565b634e487b7160e01b8c526041875260248cfd5b610e8e565b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b036103ee610e33565b168152601a855220541615159051908152f35b50503461020c578160031936011261020c57600e5490516001600160a01b039091168152602090f35b50503461020c578160031936011261020c5760209061ffff601654169051908152f35b50503461020c578160031936011261020c576020906001600160401b03600c54169051908152f35b50503461020c57602036600319011261020c5760209181906001600160a01b0361049d610e33565b1681526021845220549051908152f35b50503461020c578160031936011261020c576020918254900b9051908152f35b50503461020c578160031936011261020c57602090600a549051908152f35b828434610561578060031936011261056157610506611283565b825191602080840190808552835180925280868601968360051b870101940192955b8287106105355785850386f35b909192938280610551600193603f198a82030186528851610e4e565b9601920196019592919092610528565b80fd5b50503461020c578160031936011261020c576020906002549051908152f35b8391503461020c578160031936011261020c5791908254906105a482610fd6565b936105b184519586610f9b565b828552601f1992836105c282610fd6565b019060209136838901376105d581610fd6565b926105e287519485610f9b565b8184526105ee82610fd6565b8484019601368737845b82811061064d57505050806106168651978789988952880190610eac565b928684038288015251928381520193925b82811061063657505050500390f35b835185528695509381019392810192600101610627565b60019082879698999a959752818060a01b03817f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0154168061068f83886110aa565b52865260038752898620546106a4828a6110aa565b5201979695939492976105f8565b83833461020c578160031936011261020c5760ff60125416905191600182101561023c57602083838152f35b8284346105615780600319360112610561576106f8610fbc565b5081519161070583610f80565b6010546001600160401b03168352805160118054808352908452602093848301917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68915b8682821061077b5788906107778888610764818a0382610f9b565b8385015251928284938452830190610ee9565b0390f35b83546001600160a01b031685529093019260019283019201610749565b9050823461056157806003193601126105615780602084516107b981610f80565b828152015282516107c981610f80565b6027549160ff83169360028510156108015750508083602092520160018060a01b03809260081c168152835192835251166020820152f35b634e487b7160e01b825260219052602490fd5b50503461020c578160031936011261020c576020906005549051908152f35b50503461020c578160031936011261020c576020906008549051908152f35b50503461020c578160031936011261020c57602090600f549051908152f35b8284346105615760203660031901126105615761088c610e33565b9060ff601354169060038210156108ea5760208484600185036108c9576001600160a01b0316600090815260156020526040902054905b51908152f35b6001600160a01b0316600090815260156020526040902060010154906108c3565b634e487b7160e01b815260218552602490fd5b50503461020c578160031936011261020c5760209060ff600e5460a01c169051908152f35b83833461020c578160031936011261020c5761ffff908160195416826016541601928284116109575750602093505191168152f35b634e487b7160e01b815260118552602490fd5b90508234610561576020366003190112610561575061098c61077791356110d4565b839291925193849315158452806020850152830190610f12565b9050823461056157602036600319011261056157506109c590356110d4565b82516109ee816109e060208201946020865287830190610f12565b03601f198101835282610f9b565b519020825191151582526020820152f35b50503461020c57602036600319011261020c5760209161ffff9082906001600160a01b03610a2b610e33565b1681526017855220541615159051908152f35b828434610561576020928360031936011261020c578035906001600160401b0390818311610bf15736602384011215610bf157820135818111610bf15760248301908060051b936024853692010111610bed579093855193849288840196818986018b8a525260608086019386010193819681925b848410610add57505050505050610ad3925003601f198101835282610f9b565b5190209051908152f35b9193959092949650605f19898203018752610af88883611399565b803560de1982360301811215610be55790610b528e610b418f959484610b3891019680875260e0610b298980611399565b91880152610120870190611413565b91860186611399565b848203603f19016060860152611413565b8d6080908501358185015286610b6a606087016113ad565b1660a08501528401359063ffffffff60e01b8216809203610be957908f9291610bb39060c09283870152610ba160a08801886113c1565b878303603f190160e0890152906113f2565b940135610100840152013590811515809203610be5576001928e92838093015299019701940191889697959391610ab3565b8580fd5b8780fd5b8480fd5b8380fd5b82843461056157806003193601126105615750601c548151906001600160401b03908181168352831c166020820152f35b50503461020c578160031936011261020c5760209060ff60125460081c1690519015158152f35b50503461020c578160031936011261020c5760209061ffff60135460081c169051908152f35b50503461020c57602036600319011261020c5761020360209282610c95610e33565b9160055481526022865220600191828060a01b031660005201602052604060002054151590565b50503461020c578160031936011261020c576020906006549051908152f35b50503461020c578160031936011261020c5760209060ff60125460101c1690519015158152f35b82843461056157602036600319011261056157610d5890606080610d24610e33565b92855190610d3182610f4f565b80825280602083015286820152015260018060a01b03166000526015602052604060002090565b6107776003835192610d6984610f4f565b8054845260018101549460208501958652610d9f600283015492828701938452610d9883518096819301610fed565b0384610f9b565b6060850192835280519586956020875251602087015251908501525160608401525160808084015260a0830190610e4e565b50503461020c57602036600319011261020c576020906002610e0e610df4610e33565b6001600160a01b0316600090815260156020526040902090565b01549051908152f35b84903461020c578160031936011261020c57602090600b548152f35b600435906001600160a01b0382168203610e4957565b600080fd5b919082519283825260005b848110610e7a575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610e59565b34610e49576000366003190112610e49576020601454604051908152f35b90815180825260208080930193019160005b828110610ecc575050505090565b83516001600160a01b031685529381019392810192600101610ebe565b9060406020610f0f936001600160401b0381511684520151918160208201520190610eac565b90565b9060606001600160401b0381610f318551608086526080860190610ee9565b94602081015160208601526040810151604086015201511691015290565b608081019081106001600160401b03821117610f6a57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610f6a57604052565b90601f801991011681019081106001600160401b03821117610f6a57604052565b60405190610fc982610f80565b6060602083600081520152565b6001600160401b038111610f6a5760051b60200190565b80546000939260018083169383821c9385156110a0575b602095868610811461108a5785855290811561106b575060011461102a575b5050505050565b90939495506000929192528360002092846000945b83861061105757505050500101903880808080611023565b80548587018301529401938590820161103f565b60ff19168685015250505090151560051b010191503880808080611023565b634e487b7160e01b600052602260045260246000fd5b93607f1693611004565b80518210156110be5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9060408051926110e384610f4f565b6110eb610fbc565b845260009081606060209682888201528286820152015281528084528181209382519461111786610f4f565b83519161112383610f80565b6001600160401b0380835416845260018084019487519485858854918281520197895285892090895b81811061126757505050600484916111688888999a038a610f9b565b868401988952838d528c8760028301549101528c8b600383015491015201541660608b01528751958693630c133d1360e31b8552856004860152606485019251166024850152519188604485015282518092528460848501930191885b81811061124657505050508190038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af493841561123d57508293611202575b505050159190565b9080929350813d8311611236575b61121a8183610f9b565b8101031261020c575190811515820361056157503880806111fa565b503d611210565b513d84823e3d90fd5b83516001600160a01b031685528796899650948501949093019282016111c5565b82546001600160a01b03168a529887019891850191850161114c565b60255461128f81610fd6565b90604061129e81519384610f9b565b818352601f196112ad83610fd6565b0160005b81811061138857505081156113835780518083825260208092016025600052817f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9160005b8588821061136d57505061130c92500382610f9b565b60005b84811061131e57505050505090565b6001906001600160a01b0361133382856110aa565b51166000526024845261038961135186600020875192838092610fed565b61135b82896110aa565b5261136681886110aa565b500161130f565b84548352600194850194869450920191016112f6565b505090565b8060606020809388010152016112b1565b9035603e1982360301811215610e49570190565b35906001600160401b0382168203610e4957565b9035601e1982360301811215610e495701602081359101916001600160401b038211610e49578136038313610e4957565b908060209392818452848401376000828201840152601f01601f1916010190565b9061141e8280611399565b906040815260808101926001600160401b03938461143b856113ad565b16604084015260209384810135601e1982360301811215610e495701908482359201958211610e49578160051b36038613610e49578190604060608601525260a08301949060005b8181106114d557505050808361149a920190611399565b908281850391015280359060ff8216809203610e4957836114c8604093928493610f0f9752858101906113c1565b93909482015201916113f2565b90919586359060018060a01b038216809203610e49579081528501958501919060010161148356fea2646970667358221220bf850d4074a1e793a659119e8b06c4c9588d3187183ea6e92cb7f9d7466de16664736f6c63430008130033","sourceMap":"681:10025:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9186:12;681:10025;9186:12;;;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;7510:58;681:10025;;;;;:::i;:::-;;7462:19;681:10025;;;7510:30;681:10025;;;;8861:165:36;681:10025:84;;;;;;-1:-1:-1;681:10025:84;4352:12:36;681:10025:84;;;-1:-1:-1;681:10025:84;;4352:24:36;;8861:165;;7510:58:84;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;1215:14;681:10025;;;;;;;;;;;;;;;;;;-1:-1:-1;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;2397:19;;;681:10025;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;681:10025:84;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;681:10025:84;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;:::i;:::-;;;;1317:17:79;681:10025:84;;;;;1317:33:79;;681:10025:84;;;;;;;;;;;;;;;;;;;;1377:16;681:10025;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;5328:27:69;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1564:15:84;681:10025;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;;;;;-1:-1:-1;;;;;681:10025:84;;:::i;:::-;;;;10485:16;681:10025;;;;;;;;;;;;;;;;;;;;;;;;9186:12;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;4719:25;681:10025;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2576:19;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;10114:20:84;;681:10025;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;2994:9;3005:16;;;;;;681:10025;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;681:10025:84;;;;;;;;;;;;2994:9;681:10025;;;;;;;;;;;;;;;;;;;;;3091:19;;;;;:::i;:::-;681:10025;;;;;;;;;;3124:36;;;;:::i;:::-;681:10025;;2994:9;;;;;;;;;681:10025;;;;;;;;;;;;;;;4220:11;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;1065:10;681:10025;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;10683:14;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;3820:30;681:10025;;;;;;;;;;;;;;;;;;;;;;;3619:24;681:10025;;;;;;;;;;;;;;;;;;;;;;;4893:16;681:10025;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;;;:::i;:::-;16026:34:69;681:10025:84;16026:14:69;681:10025:84;;;;;;;;;;4668:53:69;;4697:24;4668:53;;4697:24;;-1:-1:-1;;;;;681:10025:84;;;;;18718:25:69;681:10025:84;;;;;;4664:230:69;;681:10025:84;;;;;4664:230:69;-1:-1:-1;;;;;681:10025:84;;;;;18718:25:69;681:10025:84;;;;;4697:24:69;4831:52;681:10025:84;4664:230:69;;;681:10025:84;-1:-1:-1;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;1741:20;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;17942:32:69;681:10025:84;;;17987:31:69;681:10025:84;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;681:10025:84;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;681:10025:84;;;;;8935:32;681:10025;;8935:32;:::i;:::-;681:10025;;9003:22;;681:10025;;9003:22;;681:10025;;;;;;;;;:::i;:::-;9003:22;10114:20;;9003:22;;;;;;:::i;:::-;681:10025;8993:33;;681:10025;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;:::i;:::-;;;;1317:17:79;681:10025:84;;;;;1317:33:79;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10114:20;;;;;;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;10114:20;;;;;;;;;;;;;;;;;;:::i;:::-;681:10025;10104:31;;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;-1:-1:-1;;681:10025:84;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;681:10025:84;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2145:11;681:10025;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4374:14;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1925:14;681:10025;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;7964:63;681:10025;;;;;:::i;:::-;;7917:30;681:10025;;;7964:35;681:10025;;;;8861:165:36;681:10025:84;;;;;;-1:-1:-1;681:10025:84;4352:12:36;681:10025:84;;;-1:-1:-1;681:10025:84;;4352:24:36;;8861:165;;681:10025:84;;;;;;;;;;;;;;;;4028:19;681:10025;;;;;;;;;;;;;;;;;;;;;;;;4535:8;681:10025;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;5207:43;681:10025;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18718:25:69;681:10025:84;;;;;;;5207:43;681:10025;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;5207:25;681:10025;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;681:10025:84;;;;;;18718:25:69;:36;681:10025:84;;:::i;:::-;-1:-1:-1;;;;;681:10025:84;;;;;18718:25:69;681:10025:84;;;;;;;18718:36:69;:52;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;3436:21;681:10025;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10114:20;;;681:10025;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;;5112:35:69;681:10025:84;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;681:10025:84;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;:::o;:::-;;10114:20;;;681:10025;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;681:10025:84;;;;:::o;:::-;-1:-1:-1;;;;;681:10025:84;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;681:10025:84;;;;;-1:-1:-1;681:10025:84;;;-1:-1:-1;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;681:10025:84;;;;;-1:-1:-1;;;681:10025:84;;;;;;;;-1:-1:-1;681:10025:84;;;;;;;;;;;-1:-1:-1;681:10025:84;;;;;-1:-1:-1;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;8269:281;;681:10025;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8477:29;;;681:10025;8477:29;;681:10025;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8477:29;;;;;;;:27;;:29;;;;;;;;;;;;681:10025;8476:30;;;;8516:27;8269:281;:::o;8477:29::-;;;;;;;;;;;;;;;;;:::i;:::-;;;681:10025;;;;;;;;;;;;;8477:29;;;;;;;;;;;;681:10025;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;-1:-1:-1;681:10025:84;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;;;;;9266:471;9357:17;681:10025;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;681:10025:84;;;:::i;:::-;;-1:-1:-1;681:10025:84;;;;;;9446:6;;;;9442:49;;681:10025;;;;;;;;;;9357:17;-1:-1:-1;681:10025:84;;;;-1:-1:-1;681:10025:84;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9578:5:84;;;;;;9718:12;;;;;9266:471;:::o;9567:9::-;681:10025;;-1:-1:-1;;;;;9629:9:84;681:10025;9629:9;;:::i;:::-;681:10025;;-1:-1:-1;681:10025:84;9612:16;681:10025;;;;;-1:-1:-1;681:10025:84;;;;;;;;:::i;:::-;9601:38;;;;:::i;:::-;;;;;;:::i;:::-;;681:10025;9567:9;;681:10025;;;;;;;;;;;;-1:-1:-1;681:10025:84;;;;;;9442:49;9468:12;;;:::o;681:10025::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;681:10025:84;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;681:10025:84;;;;;;10114:20;681:10025;-1:-1:-1;;681:10025:84;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;681:10025:84;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":4566,"length":20}]}}},"methodIdentifiers":{"activeValidatorsLimit()":"3354c3e1","bootstrapped()":"35142c8c","bottomUpCheckPeriod()":"06c46853","bottomUpCheckpointAtEpoch(uint256)":"4b27aa72","bottomUpCheckpointHashAtEpoch(uint256)":"4b0694e2","bottomUpMsgBatchPeriod()":"69e737fd","consensus()":"8ef3f761","crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":"3da33241","genesisBalances()":"903e6930","genesisCircSupply()":"948628a9","genesisValidators()":"d92e8f12","getActiveValidatorsNumber()":"c7cda762","getBootstrapNodes()":"9754b29e","getConfigurationNumbers()":"38a210b3","getParent()":"80f76021","getPower(address)":"5dd9147c","getRelayerReward(address)":"b2bd295e","getTotalCollateral()":"d6eb5910","getTotalConfirmedCollateral()":"332a5ac9","getTotalValidatorCollateral(address)":"1597bf7e","getTotalValidatorsNumber()":"52d182d1","getValidator(address)":"1904bb2e","hasSubmittedInLastBottomUpCheckpointHeight(address)":"2bc31eb3","hasSubmittedInLastBottomUpMsgBatchHeight(address)":"f75499dc","ipcGatewayAddr()":"cfca2824","isActiveValidator(address)":"40550a1c","isWaitingValidator(address)":"d081be03","killed()":"1f3a0e41","lastBottomUpCheckpointHeight()":"72d0a0e0","lastBottomUpMsgBatchHeight()":"28d5551d","majorityPercentage()":"599c7bd1","minActivationCollateral()":"9e33bd02","minCrossMsgFee()":"6704287c","minValidators()":"c5ab2241","permissionMode()":"f0cf6c96","powerScale()":"ad81e4d6","supplySource()":"80875df7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"activeValidatorsLimit\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bootstrapped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpCheckPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"bottomUpCheckpointAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"bottomUpCheckpointHashAtEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bottomUpMsgBatchPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consensus\",\"outputs\":[{\"internalType\":\"enum ConsensusType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"name\":\"crossMsgsHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBalances\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisCircSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisValidators\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct Validator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveValidatorsNumber\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBootstrapNodes\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConfigurationNumbers\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getParent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"getPower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"getRelayerReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalConfirmedCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"getTotalValidatorCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalValidatorsNumber\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorAddress\",\"type\":\"address\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"federatedPower\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmedCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalCollateral\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct ValidatorInfo\",\"name\":\"validator\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"hasSubmittedInLastBottomUpCheckpointHeight\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"hasSubmittedInLastBottomUpMsgBatchHeight\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ipcGatewayAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isActiveValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"isWaitingValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"killed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBottomUpCheckpointHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastBottomUpMsgBatchHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"majorityPercentage\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minActivationCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minCrossMsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minValidators\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"permissionMode\",\"outputs\":[{\"internalType\":\"enum PermissionMode\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"powerScale\",\"outputs\":[{\"internalType\":\"int8\",\"name\":\"\",\"type\":\"int8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplySource\",\"outputs\":[{\"components\":[{\"internalType\":\"enum SupplyKind\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"internalType\":\"struct SupplySource\",\"name\":\"supply\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"bottomUpCheckpointAtEpoch(uint256)\":{\"params\":{\"epoch\":\"- the epoch to check.\"},\"returns\":{\"checkpoint\":\"- the checkpoint struct.\",\"exists\":\"- whether the checkpoint exists.\"}},\"bottomUpCheckpointHashAtEpoch(uint256)\":{\"params\":{\"epoch\":\"- the epoch to check\"},\"returns\":{\"_0\":\"exists - whether the checkpoint exists\",\"_1\":\"hash - the hash of the checkpoint\"}},\"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"details\":\"This exists for testing purposes.\",\"params\":{\"messages\":\"An array of cross-chain messages to be hashed.\"},\"returns\":{\"_0\":\"The keccak256 hash of the encoded cross-chain messages.\"}},\"getPower(address)\":{\"params\":{\"validator\":\"The address of the checked validator\"}},\"getRelayerReward(address)\":{\"params\":{\"relayer\":\"The address of the relayer whose reward amount is to be queried.\"},\"returns\":{\"_0\":\"The total reward amount accrued by the specified relayer.\"}},\"getTotalValidatorCollateral(address)\":{\"params\":{\"validator\":\"The address of the validator for which collateral is queried.\"}},\"getValidator(address)\":{\"params\":{\"validatorAddress\":\"The address of the validator to query information for.\"}},\"hasSubmittedInLastBottomUpCheckpointHeight(address)\":{\"params\":{\"validator\":\"The address of the validator being checked for inclusion in the last checkpoint.\"}},\"hasSubmittedInLastBottomUpMsgBatchHeight(address)\":{\"params\":{\"validator\":\"The address of the validator being checked for participation.\"}},\"isWaitingValidator(address)\":{\"params\":{\"validator\":\"The address of the checked validator.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"activeValidatorsLimit()\":{\"notice\":\"Fetches the limit on the number of active validators.\"},\"bootstrapped()\":{\"notice\":\"Checks if the subnet has been bootstrapped.\"},\"bottomUpCheckPeriod()\":{\"notice\":\"Returns the period for bottom-up checkpointing operations.\"},\"bottomUpCheckpointAtEpoch(uint256)\":{\"notice\":\"returns the committed bottom-up checkpoint at specific epoch.\"},\"bottomUpCheckpointHashAtEpoch(uint256)\":{\"notice\":\"returns the historical committed bottom-up checkpoint hash.\"},\"bottomUpMsgBatchPeriod()\":{\"notice\":\"Returns the batch period for bottom-up messaging.\"},\"consensus()\":{\"notice\":\"Returns the consensus protocol type used in the subnet.\"},\"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"notice\":\"Computes a hash of an array of cross-chain messages.\"},\"genesisBalances()\":{\"notice\":\"Retrieves initial balances and corresponding addresses of the genesis block.\"},\"genesisValidators()\":{\"notice\":\"Returns the initial set of validators of the genesis block.\"},\"getActiveValidatorsNumber()\":{\"notice\":\"Returns the number of active validators.\"},\"getBootstrapNodes()\":{\"notice\":\"Returns the bootstrap nodes addresses.\"},\"getConfigurationNumbers()\":{\"notice\":\"Returns the next and start configuration numbers related to the changes.\"},\"getParent()\":{\"notice\":\"Returns the parent subnet id.\"},\"getPower(address)\":{\"notice\":\"Checks if the validator address is in an active state.\"},\"getRelayerReward(address)\":{\"notice\":\"Retrieves the total reward amount allocated to a specific relayer.\"},\"getTotalCollateral()\":{\"notice\":\"Returns the total collateral held by all validators.\"},\"getTotalConfirmedCollateral()\":{\"notice\":\"Returns the total amount of confirmed collateral across all validators.\"},\"getTotalValidatorCollateral(address)\":{\"notice\":\"Returns the total collateral amount for a specific validator.\"},\"getTotalValidatorsNumber()\":{\"notice\":\"Returns the total number of validators (active and waiting).\"},\"getValidator(address)\":{\"notice\":\"Returns detailed information about a specific validator.\"},\"hasSubmittedInLastBottomUpCheckpointHeight(address)\":{\"notice\":\"Checks whether a validator has submitted the most recent bottom-up checkpoint message.\"},\"hasSubmittedInLastBottomUpMsgBatchHeight(address)\":{\"notice\":\"Determines if a validator has submitted the most recent bottom-up message batch.\"},\"ipcGatewayAddr()\":{\"notice\":\"Returns the gateway address.\"},\"isActiveValidator(address)\":{\"notice\":\"Checks if the validator address is an active validator\"},\"isWaitingValidator(address)\":{\"notice\":\"Checks if the validator is in a waiting state.\"},\"killed()\":{\"notice\":\"Checks if the subnet has been terminated or \\\"killed\\\".\"},\"lastBottomUpCheckpointHeight()\":{\"notice\":\"Returns the block height of the last bottom-up checkpoint.\"},\"lastBottomUpMsgBatchHeight()\":{\"notice\":\"Returns the block height of the last bottom-up message batch.\"},\"majorityPercentage()\":{\"notice\":\"Returns the majority percentage required for consensus.\"},\"minActivationCollateral()\":{\"notice\":\"Returns the minimum collateral required for subnet activation.\"},\"minCrossMsgFee()\":{\"notice\":\"Returns the minimum fee for cross-messaging.\"},\"minValidators()\":{\"notice\":\"Returns the minimum validators number needed to activate the subnet.\"},\"permissionMode()\":{\"notice\":\"Returns the permission mode.\"},\"powerScale()\":{\"notice\":\"Returns the power scale in number of decimals from whole FIL.\"},\"supplySource()\":{\"notice\":\"Returns the supply strategy for the subnet.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorGetterFacet.sol\":\"SubnetActorGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"activeValidatorsLimit","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bootstrapped","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpCheckPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpCheckpointAtEpoch","outputs":[{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]}]},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"bottomUpCheckpointHashAtEpoch","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bottomUpMsgBatchPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"consensus","outputs":[{"internalType":"enum ConsensusType","name":"","type":"uint8"}]},{"inputs":[{"internalType":"struct CrossMsg[]","name":"messages","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"pure","type":"function","name":"crossMsgsHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBalances","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisCircSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisValidators","outputs":[{"internalType":"struct Validator[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getActiveValidatorsNumber","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBootstrapNodes","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getConfigurationNumbers","outputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getParent","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"getPower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"relayer","type":"address"}],"stateMutability":"view","type":"function","name":"getRelayerReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalConfirmedCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalValidatorCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalValidatorsNumber","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[{"internalType":"address","name":"validatorAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getValidator","outputs":[{"internalType":"struct ValidatorInfo","name":"validator","type":"tuple","components":[{"internalType":"uint256","name":"federatedPower","type":"uint256"},{"internalType":"uint256","name":"confirmedCollateral","type":"uint256"},{"internalType":"uint256","name":"totalCollateral","type":"uint256"},{"internalType":"bytes","name":"metadata","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"hasSubmittedInLastBottomUpCheckpointHeight","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"hasSubmittedInLastBottomUpMsgBatchHeight","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ipcGatewayAddr","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"isActiveValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function","name":"isWaitingValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"killed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBottomUpCheckpointHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"lastBottomUpMsgBatchHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"majorityPercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minActivationCollateral","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minCrossMsgFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minValidators","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"permissionMode","outputs":[{"internalType":"enum PermissionMode","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"powerScale","outputs":[{"internalType":"int8","name":"","type":"int8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"supplySource","outputs":[{"internalType":"struct SupplySource","name":"supply","type":"tuple","components":[{"internalType":"enum SupplyKind","name":"kind","type":"uint8"},{"internalType":"address","name":"tokenAddress","type":"address"}]}]}],"devdoc":{"kind":"dev","methods":{"bottomUpCheckpointAtEpoch(uint256)":{"params":{"epoch":"- the epoch to check."},"returns":{"checkpoint":"- the checkpoint struct.","exists":"- whether the checkpoint exists."}},"bottomUpCheckpointHashAtEpoch(uint256)":{"params":{"epoch":"- the epoch to check"},"returns":{"_0":"exists - whether the checkpoint exists","_1":"hash - the hash of the checkpoint"}},"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"details":"This exists for testing purposes.","params":{"messages":"An array of cross-chain messages to be hashed."},"returns":{"_0":"The keccak256 hash of the encoded cross-chain messages."}},"getPower(address)":{"params":{"validator":"The address of the checked validator"}},"getRelayerReward(address)":{"params":{"relayer":"The address of the relayer whose reward amount is to be queried."},"returns":{"_0":"The total reward amount accrued by the specified relayer."}},"getTotalValidatorCollateral(address)":{"params":{"validator":"The address of the validator for which collateral is queried."}},"getValidator(address)":{"params":{"validatorAddress":"The address of the validator to query information for."}},"hasSubmittedInLastBottomUpCheckpointHeight(address)":{"params":{"validator":"The address of the validator being checked for inclusion in the last checkpoint."}},"hasSubmittedInLastBottomUpMsgBatchHeight(address)":{"params":{"validator":"The address of the validator being checked for participation."}},"isWaitingValidator(address)":{"params":{"validator":"The address of the checked validator."}}},"version":1},"userdoc":{"kind":"user","methods":{"activeValidatorsLimit()":{"notice":"Fetches the limit on the number of active validators."},"bootstrapped()":{"notice":"Checks if the subnet has been bootstrapped."},"bottomUpCheckPeriod()":{"notice":"Returns the period for bottom-up checkpointing operations."},"bottomUpCheckpointAtEpoch(uint256)":{"notice":"returns the committed bottom-up checkpoint at specific epoch."},"bottomUpCheckpointHashAtEpoch(uint256)":{"notice":"returns the historical committed bottom-up checkpoint hash."},"bottomUpMsgBatchPeriod()":{"notice":"Returns the batch period for bottom-up messaging."},"consensus()":{"notice":"Returns the consensus protocol type used in the subnet."},"crossMsgsHash(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"notice":"Computes a hash of an array of cross-chain messages."},"genesisBalances()":{"notice":"Retrieves initial balances and corresponding addresses of the genesis block."},"genesisValidators()":{"notice":"Returns the initial set of validators of the genesis block."},"getActiveValidatorsNumber()":{"notice":"Returns the number of active validators."},"getBootstrapNodes()":{"notice":"Returns the bootstrap nodes addresses."},"getConfigurationNumbers()":{"notice":"Returns the next and start configuration numbers related to the changes."},"getParent()":{"notice":"Returns the parent subnet id."},"getPower(address)":{"notice":"Checks if the validator address is in an active state."},"getRelayerReward(address)":{"notice":"Retrieves the total reward amount allocated to a specific relayer."},"getTotalCollateral()":{"notice":"Returns the total collateral held by all validators."},"getTotalConfirmedCollateral()":{"notice":"Returns the total amount of confirmed collateral across all validators."},"getTotalValidatorCollateral(address)":{"notice":"Returns the total collateral amount for a specific validator."},"getTotalValidatorsNumber()":{"notice":"Returns the total number of validators (active and waiting)."},"getValidator(address)":{"notice":"Returns detailed information about a specific validator."},"hasSubmittedInLastBottomUpCheckpointHeight(address)":{"notice":"Checks whether a validator has submitted the most recent bottom-up checkpoint message."},"hasSubmittedInLastBottomUpMsgBatchHeight(address)":{"notice":"Determines if a validator has submitted the most recent bottom-up message batch."},"ipcGatewayAddr()":{"notice":"Returns the gateway address."},"isActiveValidator(address)":{"notice":"Checks if the validator address is an active validator"},"isWaitingValidator(address)":{"notice":"Checks if the validator is in a waiting state."},"killed()":{"notice":"Checks if the subnet has been terminated or \"killed\"."},"lastBottomUpCheckpointHeight()":{"notice":"Returns the block height of the last bottom-up checkpoint."},"lastBottomUpMsgBatchHeight()":{"notice":"Returns the block height of the last bottom-up message batch."},"majorityPercentage()":{"notice":"Returns the majority percentage required for consensus."},"minActivationCollateral()":{"notice":"Returns the minimum collateral required for subnet activation."},"minCrossMsgFee()":{"notice":"Returns the minimum fee for cross-messaging."},"minValidators()":{"notice":"Returns the minimum validators number needed to activate the subnet."},"permissionMode()":{"notice":"Returns the permission mode."},"powerScale()":{"notice":"Returns the power scale in number of decimals from whole FIL."},"supplySource()":{"notice":"Returns the supply strategy for the subnet."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnet/SubnetActorGetterFacet.sol":"SubnetActorGetterFacet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","id":50888,"exportedSymbols":{"Address":[32838],"BottomUpCheckpoint":[49932],"ConsensusType":[37359],"CrossMsg":[49974],"EnumerableSet":[35815],"LibStaking":[46176],"PermissionMode":[50165],"SubnetActorGetterFacet":[50887],"SubnetActorStorage":[47281],"SubnetID":[50077],"SubnetIDHelper":[48072],"SupplySource":[50226],"Validator":[50211],"ValidatorInfo":[50161]},"nodeType":"SourceUnit","src":"46:10661:84","nodes":[{"id":50231,"nodeType":"PragmaDirective","src":"46:23:84","nodes":[],"literals":["solidity","0.8",".19"]},{"id":50233,"nodeType":"ImportDirective","src":"71:57:84","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":50232,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"79:13:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50236,"nodeType":"ImportDirective","src":"129:69:84","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":50234,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"137:18:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50235,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"157:8:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50239,"nodeType":"ImportDirective","src":"199:61:84","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":50237,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"207:8:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50238,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"217:12:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50244,"nodeType":"ImportDirective","src":"261:89:84","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":50240,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"269:8:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50241,"name":"ValidatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50161,"src":"279:13:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50242,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"294:9:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50243,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"305:14:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50246,"nodeType":"ImportDirective","src":"351:68:84","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"../lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":50245,"name":"SubnetActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47281,"src":"359:18:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50248,"nodeType":"ImportDirective","src":"420:57:84","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":50247,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"428:14:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50250,"nodeType":"ImportDirective","src":"478:65:84","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":50249,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"486:7:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50252,"nodeType":"ImportDirective","src":"544:85:84","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":50251,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"552:13:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50254,"nodeType":"ImportDirective","src":"630:49:84","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":50888,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":50253,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"638:10:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50887,"nodeType":"ContractDefinition","src":"681:10025:84","nodes":[{"id":50258,"nodeType":"UsingForDirective","src":"719:49:84","nodes":[],"global":false,"libraryName":{"id":50255,"name":"EnumerableSet","nameLocations":["725:13:84"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"725:13:84"},"typeName":{"id":50257,"nodeType":"UserDefinedTypeName","pathNode":{"id":50256,"name":"EnumerableSet.AddressSet","nameLocations":["743:13:84","757:10:84"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"743:24:84"},"referencedDeclaration":35528,"src":"743:24:84","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":50262,"nodeType":"UsingForDirective","src":"773:34:84","nodes":[],"global":false,"libraryName":{"id":50259,"name":"SubnetIDHelper","nameLocations":["779:14:84"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"779:14:84"},"typeName":{"id":50261,"nodeType":"UserDefinedTypeName","pathNode":{"id":50260,"name":"SubnetID","nameLocations":["798:8:84"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"798:8:84"},"referencedDeclaration":50077,"src":"798:8:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":50265,"nodeType":"UsingForDirective","src":"812:34:84","nodes":[],"global":false,"libraryName":{"id":50263,"name":"Address","nameLocations":["818:7:84"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"818:7:84"},"typeName":{"id":50264,"name":"address","nodeType":"ElementaryTypeName","src":"830:15:84","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":50268,"nodeType":"VariableDeclaration","src":"905:29:84","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"933:1:84","scope":50887,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage"},"typeName":{"id":50267,"nodeType":"UserDefinedTypeName","pathNode":{"id":50266,"name":"SubnetActorStorage","nameLocations":["905:18:84"],"nodeType":"IdentifierPath","referencedDeclaration":47281,"src":"905:18:84"},"referencedDeclaration":47281,"src":"905:18:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage_ptr","typeString":"struct SubnetActorStorage"}},"visibility":"internal"},{"id":50279,"nodeType":"FunctionDefinition","src":"987:95:84","nodes":[],"body":{"id":50278,"nodeType":"Block","src":"1048:34:84","nodes":[],"statements":[{"expression":{"expression":{"id":50275,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"1065:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1067:8:84","memberName":"parentId","nodeType":"MemberAccess","referencedDeclaration":47238,"src":"1065:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"functionReturnParameters":50274,"id":50277,"nodeType":"Return","src":"1058:17:84"}]},"documentation":{"id":50269,"nodeType":"StructuredDocumentation","src":"941:41:84","text":"@notice Returns the parent subnet id."},"functionSelector":"80f76021","implemented":true,"kind":"function","modifiers":[],"name":"getParent","nameLocation":"996:9:84","parameters":{"id":50270,"nodeType":"ParameterList","parameters":[],"src":"1005:2:84"},"returnParameters":{"id":50274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50279,"src":"1031:15:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":50272,"nodeType":"UserDefinedTypeName","pathNode":{"id":50271,"name":"SubnetID","nameLocations":["1031:8:84"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1031:8:84"},"referencedDeclaration":50077,"src":"1031:8:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1030:17:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50291,"nodeType":"FunctionDefinition","src":"1133:118:84","nodes":[],"body":{"id":50290,"nodeType":"Block","src":"1198:53:84","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":50286,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"1215:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1217:12:84","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"1215:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":50288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1230:14:84","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":50169,"src":"1215:29:84","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"functionReturnParameters":50285,"id":50289,"nodeType":"Return","src":"1208:36:84"}]},"documentation":{"id":50280,"nodeType":"StructuredDocumentation","src":"1088:40:84","text":"@notice Returns the permission mode."},"functionSelector":"f0cf6c96","implemented":true,"kind":"function","modifiers":[],"name":"permissionMode","nameLocation":"1142:14:84","parameters":{"id":50281,"nodeType":"ParameterList","parameters":[],"src":"1156:2:84"},"returnParameters":{"id":50285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50291,"src":"1182:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},"typeName":{"id":50283,"nodeType":"UserDefinedTypeName","pathNode":{"id":50282,"name":"PermissionMode","nameLocations":["1182:14:84"],"nodeType":"IdentifierPath","referencedDeclaration":50165,"src":"1182:14:84"},"referencedDeclaration":50165,"src":"1182:14:84","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},"visibility":"internal"}],"src":"1181:16:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50301,"nodeType":"FunctionDefinition","src":"1302:98:84","nodes":[],"body":{"id":50300,"nodeType":"Block","src":"1360:40:84","nodes":[],"statements":[{"expression":{"expression":{"id":50297,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"1377:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1379:14:84","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"1377:16:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":50296,"id":50299,"nodeType":"Return","src":"1370:23:84"}]},"documentation":{"id":50292,"nodeType":"StructuredDocumentation","src":"1257:40:84","text":"@notice Returns the gateway address."},"functionSelector":"cfca2824","implemented":true,"kind":"function","modifiers":[],"name":"ipcGatewayAddr","nameLocation":"1311:14:84","parameters":{"id":50293,"nodeType":"ParameterList","parameters":[],"src":"1325:2:84"},"returnParameters":{"id":50296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50301,"src":"1351:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50294,"name":"address","nodeType":"ElementaryTypeName","src":"1351:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1350:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50311,"nodeType":"FunctionDefinition","src":"1491:95:84","nodes":[],"body":{"id":50310,"nodeType":"Block","src":"1547:39:84","nodes":[],"statements":[{"expression":{"expression":{"id":50307,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"1564:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1566:13:84","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":47223,"src":"1564:15:84","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":50306,"id":50309,"nodeType":"Return","src":"1557:22:84"}]},"documentation":{"id":50302,"nodeType":"StructuredDocumentation","src":"1406:80:84","text":"@notice Returns the minimum validators number needed to activate the subnet."},"functionSelector":"c5ab2241","implemented":true,"kind":"function","modifiers":[],"name":"minValidators","nameLocation":"1500:13:84","parameters":{"id":50303,"nodeType":"ParameterList","parameters":[],"src":"1513:2:84"},"returnParameters":{"id":50306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50311,"src":"1539:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50304,"name":"uint64","nodeType":"ElementaryTypeName","src":"1539:6:84","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1538:8:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50321,"nodeType":"FunctionDefinition","src":"1664:104:84","nodes":[],"body":{"id":50320,"nodeType":"Block","src":"1724:44:84","nodes":[],"statements":[{"expression":{"expression":{"id":50317,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"1741:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1743:18:84","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":47231,"src":"1741:20:84","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":50316,"id":50319,"nodeType":"Return","src":"1734:27:84"}]},"documentation":{"id":50312,"nodeType":"StructuredDocumentation","src":"1592:67:84","text":"@notice Returns the majority percentage required for consensus."},"functionSelector":"599c7bd1","implemented":true,"kind":"function","modifiers":[],"name":"majorityPercentage","nameLocation":"1673:18:84","parameters":{"id":50313,"nodeType":"ParameterList","parameters":[],"src":"1691:2:84"},"returnParameters":{"id":50316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50321,"src":"1717:5:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":50314,"name":"uint8","nodeType":"ElementaryTypeName","src":"1717:5:84","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1716:7:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50332,"nodeType":"FunctionDefinition","src":"1844:114:84","nodes":[],"body":{"id":50331,"nodeType":"Block","src":"1908:50:84","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":50327,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"1925:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50328,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1927:12:84","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"1925:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":50329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1940:11:84","memberName":"activeLimit","nodeType":"MemberAccess","referencedDeclaration":50172,"src":"1925:26:84","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":50326,"id":50330,"nodeType":"Return","src":"1918:33:84"}]},"documentation":{"id":50322,"nodeType":"StructuredDocumentation","src":"1774:65:84","text":"@notice Fetches the limit on the number of active validators."},"functionSelector":"3354c3e1","implemented":true,"kind":"function","modifiers":[],"name":"activeValidatorsLimit","nameLocation":"1853:21:84","parameters":{"id":50323,"nodeType":"ParameterList","parameters":[],"src":"1874:2:84"},"returnParameters":{"id":50326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50332,"src":"1900:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50324,"name":"uint16","nodeType":"ElementaryTypeName","src":"1900:6:84","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1899:8:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50349,"nodeType":"FunctionDefinition","src":"2053:173:84","nodes":[],"body":{"id":50348,"nodeType":"Block","src":"2127:99:84","nodes":[],"statements":[{"expression":{"components":[{"expression":{"expression":{"id":50340,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"2145:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2147:9:84","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"2145:11:84","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":50342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2157:23:84","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"2145:35:84","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"expression":{"id":50343,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"2182:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2184:9:84","memberName":"changeSet","nodeType":"MemberAccess","referencedDeclaration":47256,"src":"2182:11:84","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":50345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2194:24:84","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"2182:36:84","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":50346,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2144:75:84","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"functionReturnParameters":50339,"id":50347,"nodeType":"Return","src":"2137:82:84"}]},"documentation":{"id":50333,"nodeType":"StructuredDocumentation","src":"1964:84:84","text":"@notice Returns the next and start configuration numbers related to the changes."},"functionSelector":"38a210b3","implemented":true,"kind":"function","modifiers":[],"name":"getConfigurationNumbers","nameLocation":"2062:23:84","parameters":{"id":50334,"nodeType":"ParameterList","parameters":[],"src":"2085:2:84"},"returnParameters":{"id":50339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50349,"src":"2111:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50335,"name":"uint64","nodeType":"ElementaryTypeName","src":"2111:6:84","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":50338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50349,"src":"2119:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":50337,"name":"uint64","nodeType":"ElementaryTypeName","src":"2119:6:84","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2110:16:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50361,"nodeType":"FunctionDefinition","src":"2308:115:84","nodes":[],"body":{"id":50360,"nodeType":"Block","src":"2380:43:84","nodes":[],"statements":[{"expression":{"expression":{"id":50357,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"2397:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2399:17:84","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":47189,"src":"2397:19:84","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"functionReturnParameters":50356,"id":50359,"nodeType":"Return","src":"2390:26:84"}]},"documentation":{"id":50350,"nodeType":"StructuredDocumentation","src":"2232:71:84","text":"@notice Returns the initial set of validators of the genesis block."},"functionSelector":"d92e8f12","implemented":true,"kind":"function","modifiers":[],"name":"genesisValidators","nameLocation":"2317:17:84","parameters":{"id":50351,"nodeType":"ParameterList","parameters":[],"src":"2334:2:84"},"returnParameters":{"id":50356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50361,"src":"2360:18:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":50353,"nodeType":"UserDefinedTypeName","pathNode":{"id":50352,"name":"Validator","nameLocations":["2360:9:84"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"2360:9:84"},"referencedDeclaration":50211,"src":"2360:9:84","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":50354,"nodeType":"ArrayTypeName","src":"2360:11:84","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"}],"src":"2359:20:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50370,"nodeType":"FunctionDefinition","src":"2498:104:84","nodes":[],"body":{"id":50369,"nodeType":"Block","src":"2559:43:84","nodes":[],"statements":[{"expression":{"expression":{"id":50366,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"2576:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2578:17:84","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"2576:19:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50365,"id":50368,"nodeType":"Return","src":"2569:26:84"}]},"functionSelector":"948628a9","implemented":true,"kind":"function","modifiers":[],"name":"genesisCircSupply","nameLocation":"2507:17:84","parameters":{"id":50362,"nodeType":"ParameterList","parameters":[],"src":"2524:2:84"},"returnParameters":{"id":50365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50370,"src":"2550:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50363,"name":"uint256","nodeType":"ElementaryTypeName","src":"2550:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2549:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50447,"nodeType":"FunctionDefinition","src":"2701:574:84","nodes":[],"body":{"id":50446,"nodeType":"Block","src":"2787:488:84","nodes":[],"statements":[{"assignments":[50381],"declarations":[{"constant":false,"id":50381,"mutability":"mutable","name":"numAddresses","nameLocation":"2805:12:84","nodeType":"VariableDeclaration","scope":50446,"src":"2797:20:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50380,"name":"uint256","nodeType":"ElementaryTypeName","src":"2797:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50385,"initialValue":{"expression":{"expression":{"id":50382,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"2820:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2822:18:84","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"2820:20:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":50384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2841:6:84","memberName":"length","nodeType":"MemberAccess","src":"2820:27:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2797:50:84"},{"assignments":[50390],"declarations":[{"constant":false,"id":50390,"mutability":"mutable","name":"addresses","nameLocation":"2874:9:84","nodeType":"VariableDeclaration","scope":50446,"src":"2857:26:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50388,"name":"address","nodeType":"ElementaryTypeName","src":"2857:7:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50389,"nodeType":"ArrayTypeName","src":"2857:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":50396,"initialValue":{"arguments":[{"id":50394,"name":"numAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50381,"src":"2900:12:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2886:13:84","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":50391,"name":"address","nodeType":"ElementaryTypeName","src":"2890:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50392,"nodeType":"ArrayTypeName","src":"2890:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":50395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2886:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2857:56:84"},{"assignments":[50401],"declarations":[{"constant":false,"id":50401,"mutability":"mutable","name":"balances","nameLocation":"2940:8:84","nodeType":"VariableDeclaration","scope":50446,"src":"2923:25:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":50399,"name":"uint256","nodeType":"ElementaryTypeName","src":"2923:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50400,"nodeType":"ArrayTypeName","src":"2923:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":50407,"initialValue":{"arguments":[{"id":50405,"name":"numAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50381,"src":"2965:12:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2951:13:84","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":50402,"name":"uint256","nodeType":"ElementaryTypeName","src":"2955:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50403,"nodeType":"ArrayTypeName","src":"2955:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":50406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2951:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2923:55:84"},{"body":{"id":50440,"nodeType":"Block","src":"3025:206:84","statements":[{"assignments":[50415],"declarations":[{"constant":false,"id":50415,"mutability":"mutable","name":"addr","nameLocation":"3047:4:84","nodeType":"VariableDeclaration","scope":50440,"src":"3039:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50414,"name":"address","nodeType":"ElementaryTypeName","src":"3039:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":50420,"initialValue":{"baseExpression":{"expression":{"id":50416,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"3054:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3056:18:84","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"3054:20:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":50419,"indexExpression":{"id":50418,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50409,"src":"3075:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3054:23:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3039:38:84"},{"expression":{"id":50425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":50421,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50390,"src":"3091:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":50423,"indexExpression":{"id":50422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50409,"src":"3101:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3091:12:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50424,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50415,"src":"3106:4:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3091:19:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50426,"nodeType":"ExpressionStatement","src":"3091:19:84"},{"expression":{"id":50434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":50427,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50401,"src":"3124:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":50429,"indexExpression":{"id":50428,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50409,"src":"3133:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3124:11:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":50430,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"3138:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3140:14:84","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"3138:16:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":50433,"indexExpression":{"id":50432,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50415,"src":"3155:4:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3138:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3124:36:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50435,"nodeType":"ExpressionStatement","src":"3124:36:84"},{"id":50439,"nodeType":"UncheckedBlock","src":"3175:46:84","statements":[{"expression":{"id":50437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3203:3:84","subExpression":{"id":50436,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50409,"src":"3205:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50438,"nodeType":"ExpressionStatement","src":"3203:3:84"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50411,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50409,"src":"3005:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":50412,"name":"numAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50381,"src":"3009:12:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3005:16:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50441,"initializationExpression":{"assignments":[50409],"declarations":[{"constant":false,"id":50409,"mutability":"mutable","name":"i","nameLocation":"3002:1:84","nodeType":"VariableDeclaration","scope":50441,"src":"2994:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50408,"name":"uint256","nodeType":"ElementaryTypeName","src":"2994:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50410,"nodeType":"VariableDeclarationStatement","src":"2994:9:84"},"nodeType":"ForStatement","src":"2989:242:84"},{"expression":{"components":[{"id":50442,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50390,"src":"3248:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":50443,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50401,"src":"3259:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"id":50444,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3247:21:84","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory)"}},"functionReturnParameters":50379,"id":50445,"nodeType":"Return","src":"3240:28:84"}]},"documentation":{"id":50371,"nodeType":"StructuredDocumentation","src":"2608:88:84","text":"@notice Retrieves initial balances and corresponding addresses of the genesis block."},"functionSelector":"903e6930","implemented":true,"kind":"function","modifiers":[],"name":"genesisBalances","nameLocation":"2710:15:84","parameters":{"id":50372,"nodeType":"ParameterList","parameters":[],"src":"2725:2:84"},"returnParameters":{"id":50379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50447,"src":"2751:16:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50373,"name":"address","nodeType":"ElementaryTypeName","src":"2751:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50374,"nodeType":"ArrayTypeName","src":"2751:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":50378,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50447,"src":"2769:16:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":50376,"name":"uint256","nodeType":"ElementaryTypeName","src":"2769:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50377,"nodeType":"ArrayTypeName","src":"2769:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2750:36:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50457,"nodeType":"FunctionDefinition","src":"3356:108:84","nodes":[],"body":{"id":50456,"nodeType":"Block","src":"3419:45:84","nodes":[],"statements":[{"expression":{"expression":{"id":50453,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"3436:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3438:19:84","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"3436:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50452,"id":50455,"nodeType":"Return","src":"3429:28:84"}]},"documentation":{"id":50448,"nodeType":"StructuredDocumentation","src":"3281:70:84","text":"@notice Returns the period for bottom-up checkpointing operations."},"functionSelector":"06c46853","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckPeriod","nameLocation":"3365:19:84","parameters":{"id":50449,"nodeType":"ParameterList","parameters":[],"src":"3384:2:84"},"returnParameters":{"id":50452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50451,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50457,"src":"3410:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50450,"name":"uint256","nodeType":"ElementaryTypeName","src":"3410:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3409:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50467,"nodeType":"FunctionDefinition","src":"3536:114:84","nodes":[],"body":{"id":50466,"nodeType":"Block","src":"3602:48:84","nodes":[],"statements":[{"expression":{"expression":{"id":50463,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"3619:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3621:22:84","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":47211,"src":"3619:24:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50462,"id":50465,"nodeType":"Return","src":"3612:31:84"}]},"documentation":{"id":50458,"nodeType":"StructuredDocumentation","src":"3470:61:84","text":"@notice Returns the batch period for bottom-up messaging."},"functionSelector":"69e737fd","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpMsgBatchPeriod","nameLocation":"3545:22:84","parameters":{"id":50459,"nodeType":"ParameterList","parameters":[],"src":"3567:2:84"},"returnParameters":{"id":50462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50467,"src":"3593:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50460,"name":"uint256","nodeType":"ElementaryTypeName","src":"3593:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3592:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50477,"nodeType":"FunctionDefinition","src":"3731:126:84","nodes":[],"body":{"id":50476,"nodeType":"Block","src":"3803:54:84","nodes":[],"statements":[{"expression":{"expression":{"id":50473,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"3820:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3822:28:84","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47204,"src":"3820:30:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50472,"id":50475,"nodeType":"Return","src":"3813:37:84"}]},"documentation":{"id":50468,"nodeType":"StructuredDocumentation","src":"3656:70:84","text":"@notice Returns the block height of the last bottom-up checkpoint."},"functionSelector":"72d0a0e0","implemented":true,"kind":"function","modifiers":[],"name":"lastBottomUpCheckpointHeight","nameLocation":"3740:28:84","parameters":{"id":50469,"nodeType":"ParameterList","parameters":[],"src":"3768:2:84"},"returnParameters":{"id":50472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50477,"src":"3794:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50470,"name":"uint256","nodeType":"ElementaryTypeName","src":"3794:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3793:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50488,"nodeType":"FunctionDefinition","src":"3941:125:84","nodes":[],"body":{"id":50487,"nodeType":"Block","src":"4011:55:84","nodes":[],"statements":[{"expression":{"expression":{"expression":{"id":50483,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"4028:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4030:17:84","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47208,"src":"4028:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":50485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4048:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49947,"src":"4028:31:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50482,"id":50486,"nodeType":"Return","src":"4021:38:84"}]},"documentation":{"id":50478,"nodeType":"StructuredDocumentation","src":"3863:73:84","text":"@notice Returns the block height of the last bottom-up message batch."},"functionSelector":"28d5551d","implemented":true,"kind":"function","modifiers":[],"name":"lastBottomUpMsgBatchHeight","nameLocation":"3950:26:84","parameters":{"id":50479,"nodeType":"ParameterList","parameters":[],"src":"3976:2:84"},"returnParameters":{"id":50482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50488,"src":"4002:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50480,"name":"uint256","nodeType":"ElementaryTypeName","src":"4002:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4001:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50499,"nodeType":"FunctionDefinition","src":"4144:94:84","nodes":[],"body":{"id":50498,"nodeType":"Block","src":"4203:35:84","nodes":[],"statements":[{"expression":{"expression":{"id":50495,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"4220:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4222:9:84","memberName":"consensus","nodeType":"MemberAccess","referencedDeclaration":47242,"src":"4220:11:84","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"functionReturnParameters":50494,"id":50497,"nodeType":"Return","src":"4213:18:84"}]},"documentation":{"id":50489,"nodeType":"StructuredDocumentation","src":"4072:67:84","text":"@notice Returns the consensus protocol type used in the subnet."},"functionSelector":"8ef3f761","implemented":true,"kind":"function","modifiers":[],"name":"consensus","nameLocation":"4153:9:84","parameters":{"id":50490,"nodeType":"ParameterList","parameters":[],"src":"4162:2:84"},"returnParameters":{"id":50494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50499,"src":"4188:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},"typeName":{"id":50492,"nodeType":"UserDefinedTypeName","pathNode":{"id":50491,"name":"ConsensusType","nameLocations":["4188:13:84"],"nodeType":"IdentifierPath","referencedDeclaration":37359,"src":"4188:13:84"},"referencedDeclaration":37359,"src":"4188:13:84","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},"visibility":"internal"}],"src":"4187:15:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50509,"nodeType":"FunctionDefinition","src":"4304:91:84","nodes":[],"body":{"id":50508,"nodeType":"Block","src":"4357:38:84","nodes":[],"statements":[{"expression":{"expression":{"id":50505,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"4374:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4376:12:84","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"4374:14:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50504,"id":50507,"nodeType":"Return","src":"4367:21:84"}]},"documentation":{"id":50500,"nodeType":"StructuredDocumentation","src":"4244:55:84","text":"@notice Checks if the subnet has been bootstrapped."},"functionSelector":"35142c8c","implemented":true,"kind":"function","modifiers":[],"name":"bootstrapped","nameLocation":"4313:12:84","parameters":{"id":50501,"nodeType":"ParameterList","parameters":[],"src":"4325:2:84"},"returnParameters":{"id":50504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50503,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50509,"src":"4351:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50502,"name":"bool","nodeType":"ElementaryTypeName","src":"4351:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4350:6:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50519,"nodeType":"FunctionDefinition","src":"4471:79:84","nodes":[],"body":{"id":50518,"nodeType":"Block","src":"4518:32:84","nodes":[],"statements":[{"expression":{"expression":{"id":50515,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"4535:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4537:6:84","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":47248,"src":"4535:8:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50514,"id":50517,"nodeType":"Return","src":"4528:15:84"}]},"documentation":{"id":50510,"nodeType":"StructuredDocumentation","src":"4401:65:84","text":"@notice Checks if the subnet has been terminated or \"killed\"."},"functionSelector":"1f3a0e41","implemented":true,"kind":"function","modifiers":[],"name":"killed","nameLocation":"4480:6:84","parameters":{"id":50511,"nodeType":"ParameterList","parameters":[],"src":"4486:2:84"},"returnParameters":{"id":50514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50513,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50519,"src":"4512:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50512,"name":"bool","nodeType":"ElementaryTypeName","src":"4512:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4511:6:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50529,"nodeType":"FunctionDefinition","src":"4635:116:84","nodes":[],"body":{"id":50528,"nodeType":"Block","src":"4702:49:84","nodes":[],"statements":[{"expression":{"expression":{"id":50525,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"4719:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4721:23:84","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":47217,"src":"4719:25:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50524,"id":50527,"nodeType":"Return","src":"4712:32:84"}]},"documentation":{"id":50520,"nodeType":"StructuredDocumentation","src":"4556:74:84","text":"@notice Returns the minimum collateral required for subnet activation."},"functionSelector":"9e33bd02","implemented":true,"kind":"function","modifiers":[],"name":"minActivationCollateral","nameLocation":"4644:23:84","parameters":{"id":50521,"nodeType":"ParameterList","parameters":[],"src":"4667:2:84"},"returnParameters":{"id":50524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50529,"src":"4693:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50522,"name":"uint256","nodeType":"ElementaryTypeName","src":"4693:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4692:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50539,"nodeType":"FunctionDefinition","src":"4818:98:84","nodes":[],"body":{"id":50538,"nodeType":"Block","src":"4876:40:84","nodes":[],"statements":[{"expression":{"expression":{"id":50535,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"4893:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4895:14:84","memberName":"minCrossMsgFee","nodeType":"MemberAccess","referencedDeclaration":47234,"src":"4893:16:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50534,"id":50537,"nodeType":"Return","src":"4886:23:84"}]},"documentation":{"id":50530,"nodeType":"StructuredDocumentation","src":"4757:56:84","text":"@notice Returns the minimum fee for cross-messaging."},"functionSelector":"6704287c","implemented":true,"kind":"function","modifiers":[],"name":"minCrossMsgFee","nameLocation":"4827:14:84","parameters":{"id":50531,"nodeType":"ParameterList","parameters":[],"src":"4841:2:84"},"returnParameters":{"id":50534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50539,"src":"4867:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50532,"name":"uint256","nodeType":"ElementaryTypeName","src":"4867:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4866:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50557,"nodeType":"FunctionDefinition","src":"5082:175:84","nodes":[],"body":{"id":50556,"nodeType":"Block","src":"5185:72:84","nodes":[],"statements":[{"expression":{"id":50554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50548,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50546,"src":"5195:9:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_memory_ptr","typeString":"struct ValidatorInfo memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":50549,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"5207:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5209:12:84","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"5207:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":50551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5222:10:84","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"5207:25:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":50553,"indexExpression":{"id":50552,"name":"validatorAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50542,"src":"5233:16:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5207:43:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"src":"5195:55:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_memory_ptr","typeString":"struct ValidatorInfo memory"}},"id":50555,"nodeType":"ExpressionStatement","src":"5195:55:84"}]},"documentation":{"id":50540,"nodeType":"StructuredDocumentation","src":"4922:155:84","text":"@notice Returns detailed information about a specific validator.\n @param validatorAddress The address of the validator to query information for."},"functionSelector":"1904bb2e","implemented":true,"kind":"function","modifiers":[],"name":"getValidator","nameLocation":"5091:12:84","parameters":{"id":50543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50542,"mutability":"mutable","name":"validatorAddress","nameLocation":"5112:16:84","nodeType":"VariableDeclaration","scope":50557,"src":"5104:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50541,"name":"address","nodeType":"ElementaryTypeName","src":"5104:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5103:26:84"},"returnParameters":{"id":50547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50546,"mutability":"mutable","name":"validator","nameLocation":"5174:9:84","nodeType":"VariableDeclaration","scope":50557,"src":"5153:30:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_memory_ptr","typeString":"struct ValidatorInfo"},"typeName":{"id":50545,"nodeType":"UserDefinedTypeName","pathNode":{"id":50544,"name":"ValidatorInfo","nameLocations":["5153:13:84"],"nodeType":"IdentifierPath","referencedDeclaration":50161,"src":"5153:13:84"},"referencedDeclaration":50161,"src":"5153:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage_ptr","typeString":"struct ValidatorInfo"}},"visibility":"internal"}],"src":"5152:32:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50568,"nodeType":"FunctionDefinition","src":"5340:119:84","nodes":[],"body":{"id":50567,"nodeType":"Block","src":"5407:52:84","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50563,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"5424:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5435:15:84","memberName":"totalValidators","nodeType":"MemberAccess","referencedDeclaration":45478,"src":"5424:26:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":50565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5424:28:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":50562,"id":50566,"nodeType":"Return","src":"5417:35:84"}]},"documentation":{"id":50558,"nodeType":"StructuredDocumentation","src":"5263:72:84","text":"@notice Returns the total number of validators (active and waiting)."},"functionSelector":"52d182d1","implemented":true,"kind":"function","modifiers":[],"name":"getTotalValidatorsNumber","nameLocation":"5349:24:84","parameters":{"id":50559,"nodeType":"ParameterList","parameters":[],"src":"5373:2:84"},"returnParameters":{"id":50562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50561,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50568,"src":"5399:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50560,"name":"uint16","nodeType":"ElementaryTypeName","src":"5399:6:84","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5398:8:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50579,"nodeType":"FunctionDefinition","src":"5522:126:84","nodes":[],"body":{"id":50578,"nodeType":"Block","src":"5590:58:84","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50574,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"5607:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5618:21:84","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":45452,"src":"5607:32:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":50576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5607:34:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":50573,"id":50577,"nodeType":"Return","src":"5600:41:84"}]},"documentation":{"id":50569,"nodeType":"StructuredDocumentation","src":"5465:52:84","text":"@notice Returns the number of active validators."},"functionSelector":"c7cda762","implemented":true,"kind":"function","modifiers":[],"name":"getActiveValidatorsNumber","nameLocation":"5531:25:84","parameters":{"id":50570,"nodeType":"ParameterList","parameters":[],"src":"5556:2:84"},"returnParameters":{"id":50573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50572,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50579,"src":"5582:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":50571,"name":"uint16","nodeType":"ElementaryTypeName","src":"5582:6:84","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"5581:8:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50590,"nodeType":"FunctionDefinition","src":"5742:135:84","nodes":[],"body":{"id":50589,"nodeType":"Block","src":"5813:64:84","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50585,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"5830:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5841:27:84","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":45496,"src":"5830:38:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":50587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5830:40:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50584,"id":50588,"nodeType":"Return","src":"5823:47:84"}]},"documentation":{"id":50580,"nodeType":"StructuredDocumentation","src":"5654:83:84","text":"@notice Returns the total amount of confirmed collateral across all validators."},"functionSelector":"332a5ac9","implemented":true,"kind":"function","modifiers":[],"name":"getTotalConfirmedCollateral","nameLocation":"5751:27:84","parameters":{"id":50581,"nodeType":"ParameterList","parameters":[],"src":"5778:2:84"},"returnParameters":{"id":50584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50583,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50590,"src":"5804:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50582,"name":"uint256","nodeType":"ElementaryTypeName","src":"5804:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5803:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50601,"nodeType":"FunctionDefinition","src":"5952:117:84","nodes":[],"body":{"id":50600,"nodeType":"Block","src":"6014:55:84","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50596,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"6031:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6042:18:84","memberName":"getTotalCollateral","nodeType":"MemberAccess","referencedDeclaration":45514,"src":"6031:29:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":50598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6031:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50595,"id":50599,"nodeType":"Return","src":"6024:38:84"}]},"documentation":{"id":50591,"nodeType":"StructuredDocumentation","src":"5883:64:84","text":"@notice Returns the total collateral held by all validators."},"functionSelector":"d6eb5910","implemented":true,"kind":"function","modifiers":[],"name":"getTotalCollateral","nameLocation":"5961:18:84","parameters":{"id":50592,"nodeType":"ParameterList","parameters":[],"src":"5979:2:84"},"returnParameters":{"id":50595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50601,"src":"6005:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50593,"name":"uint256","nodeType":"ElementaryTypeName","src":"6005:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6004:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50615,"nodeType":"FunctionDefinition","src":"6240:158:84","nodes":[],"body":{"id":50614,"nodeType":"Block","src":"6328:70:84","nodes":[],"statements":[{"expression":{"arguments":[{"id":50611,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50604,"src":"6381:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50609,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"6345:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6356:24:84","memberName":"totalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":45537,"src":"6345:35:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":50612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6345:46:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50608,"id":50613,"nodeType":"Return","src":"6338:53:84"}]},"documentation":{"id":50602,"nodeType":"StructuredDocumentation","src":"6075:160:84","text":"@notice Returns the total collateral amount for a specific validator.\n @param validator The address of the validator for which collateral is queried."},"functionSelector":"1597bf7e","implemented":true,"kind":"function","modifiers":[],"name":"getTotalValidatorCollateral","nameLocation":"6249:27:84","parameters":{"id":50605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50604,"mutability":"mutable","name":"validator","nameLocation":"6285:9:84","nodeType":"VariableDeclaration","scope":50615,"src":"6277:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50603,"name":"address","nodeType":"ElementaryTypeName","src":"6277:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6276:19:84"},"returnParameters":{"id":50608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50607,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50615,"src":"6319:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50606,"name":"uint256","nodeType":"ElementaryTypeName","src":"6319:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6318:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50629,"nodeType":"FunctionDefinition","src":"6537:123:84","nodes":[],"body":{"id":50628,"nodeType":"Block","src":"6606:54:84","nodes":[],"statements":[{"expression":{"arguments":[{"id":50625,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50618,"src":"6643:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50623,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"6623:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6634:8:84","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":45350,"src":"6623:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":50626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6623:30:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50622,"id":50627,"nodeType":"Return","src":"6616:37:84"}]},"documentation":{"id":50616,"nodeType":"StructuredDocumentation","src":"6404:128:84","text":"@notice Checks if the validator address is in an active state.\n @param validator The address of the checked validator"},"functionSelector":"5dd9147c","implemented":true,"kind":"function","modifiers":[],"name":"getPower","nameLocation":"6546:8:84","parameters":{"id":50619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50618,"mutability":"mutable","name":"validator","nameLocation":"6563:9:84","nodeType":"VariableDeclaration","scope":50629,"src":"6555:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50617,"name":"address","nodeType":"ElementaryTypeName","src":"6555:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6554:19:84"},"returnParameters":{"id":50622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50629,"src":"6597:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50620,"name":"uint256","nodeType":"ElementaryTypeName","src":"6597:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6596:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50643,"nodeType":"FunctionDefinition","src":"6737:138:84","nodes":[],"body":{"id":50642,"nodeType":"Block","src":"6812:63:84","nodes":[],"statements":[{"expression":{"arguments":[{"id":50639,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50632,"src":"6858:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50637,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"6829:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6840:17:84","memberName":"isActiveValidator","nodeType":"MemberAccess","referencedDeclaration":45373,"src":"6829:28:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":50640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6829:39:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50636,"id":50641,"nodeType":"Return","src":"6822:46:84"}]},"documentation":{"id":50630,"nodeType":"StructuredDocumentation","src":"6666:66:84","text":"@notice Checks if the validator address is an active validator"},"functionSelector":"40550a1c","implemented":true,"kind":"function","modifiers":[],"name":"isActiveValidator","nameLocation":"6746:17:84","parameters":{"id":50633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50632,"mutability":"mutable","name":"validator","nameLocation":"6772:9:84","nodeType":"VariableDeclaration","scope":50643,"src":"6764:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50631,"name":"address","nodeType":"ElementaryTypeName","src":"6764:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6763:19:84"},"returnParameters":{"id":50636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50635,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50643,"src":"6806:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50634,"name":"bool","nodeType":"ElementaryTypeName","src":"6806:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6805:6:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50657,"nodeType":"FunctionDefinition","src":"7007:140:84","nodes":[],"body":{"id":50656,"nodeType":"Block","src":"7083:64:84","nodes":[],"statements":[{"expression":{"arguments":[{"id":50653,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50646,"src":"7130:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50651,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"7100:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":50652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7111:18:84","memberName":"isWaitingValidator","nodeType":"MemberAccess","referencedDeclaration":45396,"src":"7100:29:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":50654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7100:40:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50650,"id":50655,"nodeType":"Return","src":"7093:47:84"}]},"documentation":{"id":50644,"nodeType":"StructuredDocumentation","src":"6881:121:84","text":"@notice Checks if the validator is in a waiting state.\n @param validator The address of the checked validator."},"functionSelector":"d081be03","implemented":true,"kind":"function","modifiers":[],"name":"isWaitingValidator","nameLocation":"7016:18:84","parameters":{"id":50647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50646,"mutability":"mutable","name":"validator","nameLocation":"7043:9:84","nodeType":"VariableDeclaration","scope":50657,"src":"7035:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50645,"name":"address","nodeType":"ElementaryTypeName","src":"7035:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7034:19:84"},"returnParameters":{"id":50650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50649,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50657,"src":"7077:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50648,"name":"bool","nodeType":"ElementaryTypeName","src":"7077:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7076:6:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50681,"nodeType":"FunctionDefinition","src":"7337:238:84","nodes":[],"body":{"id":50680,"nodeType":"Block","src":"7435:140:84","nodes":[],"statements":[{"assignments":[50666],"declarations":[{"constant":false,"id":50666,"mutability":"mutable","name":"height","nameLocation":"7453:6:84","nodeType":"VariableDeclaration","scope":50680,"src":"7445:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50665,"name":"uint256","nodeType":"ElementaryTypeName","src":"7445:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50670,"initialValue":{"expression":{"expression":{"id":50667,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"7462:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7464:17:84","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47208,"src":"7462:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":50669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7482:11:84","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49947,"src":"7462:31:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7445:48:84"},{"expression":{"arguments":[{"id":50677,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50660,"src":"7558:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":50671,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"7510:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7512:14:84","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"7510:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":50673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7527:13:84","memberName":"batchRewarded","nodeType":"MemberAccess","referencedDeclaration":49967,"src":"7510:30:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":50675,"indexExpression":{"id":50674,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50666,"src":"7541:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7510:38:84","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":50676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7549:8:84","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":35609,"src":"7510:47:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":50678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7510:58:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50664,"id":50679,"nodeType":"Return","src":"7503:65:84"}]},"documentation":{"id":50658,"nodeType":"StructuredDocumentation","src":"7153:179:84","text":"@notice Determines if a validator has submitted the most recent bottom-up message batch.\n @param validator The address of the validator being checked for participation."},"functionSelector":"f75499dc","implemented":true,"kind":"function","modifiers":[],"name":"hasSubmittedInLastBottomUpMsgBatchHeight","nameLocation":"7346:40:84","parameters":{"id":50661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50660,"mutability":"mutable","name":"validator","nameLocation":"7395:9:84","nodeType":"VariableDeclaration","scope":50681,"src":"7387:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50659,"name":"address","nodeType":"ElementaryTypeName","src":"7387:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7386:19:84"},"returnParameters":{"id":50664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50681,"src":"7429:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50662,"name":"bool","nodeType":"ElementaryTypeName","src":"7429:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7428:6:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50704,"nodeType":"FunctionDefinition","src":"7790:244:84","nodes":[],"body":{"id":50703,"nodeType":"Block","src":"7890:144:84","nodes":[],"statements":[{"assignments":[50690],"declarations":[{"constant":false,"id":50690,"mutability":"mutable","name":"height","nameLocation":"7908:6:84","nodeType":"VariableDeclaration","scope":50703,"src":"7900:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50689,"name":"uint256","nodeType":"ElementaryTypeName","src":"7900:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50693,"initialValue":{"expression":{"id":50691,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"7917:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7919:28:84","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47204,"src":"7917:30:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7900:47:84"},{"expression":{"arguments":[{"id":50700,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50684,"src":"8017:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":50694,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"7964:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50695,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7966:14:84","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"7964:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":50696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7981:18:84","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":49961,"src":"7964:35:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":50698,"indexExpression":{"id":50697,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50690,"src":"8000:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7964:43:84","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":50699,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8008:8:84","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":35609,"src":"7964:52:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":50701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7964:63:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50688,"id":50702,"nodeType":"Return","src":"7957:70:84"}]},"documentation":{"id":50682,"nodeType":"StructuredDocumentation","src":"7581:204:84","text":"@notice Checks whether a validator has submitted the most recent bottom-up checkpoint message.\n @param validator The address of the validator being checked for inclusion in the last checkpoint."},"functionSelector":"2bc31eb3","implemented":true,"kind":"function","modifiers":[],"name":"hasSubmittedInLastBottomUpCheckpointHeight","nameLocation":"7799:42:84","parameters":{"id":50685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50684,"mutability":"mutable","name":"validator","nameLocation":"7850:9:84","nodeType":"VariableDeclaration","scope":50704,"src":"7842:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50683,"name":"address","nodeType":"ElementaryTypeName","src":"7842:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7841:19:84"},"returnParameters":{"id":50688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50704,"src":"7884:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50686,"name":"bool","nodeType":"ElementaryTypeName","src":"7884:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7883:6:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50735,"nodeType":"FunctionDefinition","src":"8269:281:84","nodes":[],"body":{"id":50734,"nodeType":"Block","src":"8405:145:84","nodes":[],"statements":[{"expression":{"id":50720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50715,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50713,"src":"8415:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":50716,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"8428:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8430:20:84","memberName":"committedCheckpoints","nodeType":"MemberAccess","referencedDeclaration":47184,"src":"8428:22:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":50719,"indexExpression":{"id":50718,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50707,"src":"8451:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8428:29:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"src":"8415:42:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":50721,"nodeType":"ExpressionStatement","src":"8415:42:84"},{"expression":{"id":50728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50722,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50710,"src":"8467:6:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8476:30:84","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":50723,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50713,"src":"8477:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}},"id":50724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8488:8:84","memberName":"subnetID","nodeType":"MemberAccess","referencedDeclaration":49922,"src":"8477:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":50725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8497:7:84","memberName":"isEmpty","nodeType":"MemberAccess","referencedDeclaration":48071,"src":"8477:27:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (bool)"}},"id":50726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8477:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8467:39:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50729,"nodeType":"ExpressionStatement","src":"8467:39:84"},{"expression":{"components":[{"id":50730,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50710,"src":"8524:6:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":50731,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50713,"src":"8532:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"id":50732,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8523:20:84","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$","typeString":"tuple(bool,struct BottomUpCheckpoint memory)"}},"functionReturnParameters":50714,"id":50733,"nodeType":"Return","src":"8516:27:84"}]},"documentation":{"id":50705,"nodeType":"StructuredDocumentation","src":"8040:224:84","text":"@notice returns the committed bottom-up checkpoint at specific epoch.\n @param epoch - the epoch to check.\n @return exists - whether the checkpoint exists.\n @return checkpoint - the checkpoint struct."},"functionSelector":"4b27aa72","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpointAtEpoch","nameLocation":"8278:25:84","parameters":{"id":50708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50707,"mutability":"mutable","name":"epoch","nameLocation":"8321:5:84","nodeType":"VariableDeclaration","scope":50735,"src":"8313:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50706,"name":"uint256","nodeType":"ElementaryTypeName","src":"8313:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8303:29:84"},"returnParameters":{"id":50714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50710,"mutability":"mutable","name":"exists","nameLocation":"8359:6:84","nodeType":"VariableDeclaration","scope":50735,"src":"8354:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50709,"name":"bool","nodeType":"ElementaryTypeName","src":"8354:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":50713,"mutability":"mutable","name":"checkpoint","nameLocation":"8393:10:84","nodeType":"VariableDeclaration","scope":50735,"src":"8367:36:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":50712,"nodeType":"UserDefinedTypeName","pathNode":{"id":50711,"name":"BottomUpCheckpoint","nameLocations":["8367:18:84"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"8367:18:84"},"referencedDeclaration":49932,"src":"8367:18:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"src":"8353:51:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":50764,"nodeType":"FunctionDefinition","src":"8779:255:84","nodes":[],"body":{"id":50763,"nodeType":"Block","src":"8871:163:84","nodes":[],"statements":[{"assignments":[50746,50749],"declarations":[{"constant":false,"id":50746,"mutability":"mutable","name":"exists","nameLocation":"8887:6:84","nodeType":"VariableDeclaration","scope":50763,"src":"8882:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50745,"name":"bool","nodeType":"ElementaryTypeName","src":"8882:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":50749,"mutability":"mutable","name":"checkpoint","nameLocation":"8921:10:84","nodeType":"VariableDeclaration","scope":50763,"src":"8895:36:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":50748,"nodeType":"UserDefinedTypeName","pathNode":{"id":50747,"name":"BottomUpCheckpoint","nameLocations":["8895:18:84"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"8895:18:84"},"referencedDeclaration":49932,"src":"8895:18:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"}],"id":50753,"initialValue":{"arguments":[{"id":50751,"name":"epoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50738,"src":"8961:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50750,"name":"bottomUpCheckpointAtEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50735,"src":"8935:25:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$","typeString":"function (uint256) view returns (bool,struct BottomUpCheckpoint memory)"}},"id":50752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8935:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$","typeString":"tuple(bool,struct BottomUpCheckpoint memory)"}},"nodeType":"VariableDeclarationStatement","src":"8881:86:84"},{"expression":{"components":[{"id":50754,"name":"exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50746,"src":"8985:6:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"id":50758,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50749,"src":"9014:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint memory"}],"expression":{"id":50756,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9003:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":50757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9007:6:84","memberName":"encode","nodeType":"MemberAccess","src":"9003:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":50759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9003:22:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50755,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8993:9:84","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8993:33:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":50761,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8984:43:84","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"functionReturnParameters":50744,"id":50762,"nodeType":"Return","src":"8977:50:84"}]},"documentation":{"id":50736,"nodeType":"StructuredDocumentation","src":"8556:218:84","text":"@notice returns the historical committed bottom-up checkpoint hash.\n @param epoch - the epoch to check\n @return exists - whether the checkpoint exists\n @return hash - the hash of the checkpoint"},"functionSelector":"4b0694e2","implemented":true,"kind":"function","modifiers":[],"name":"bottomUpCheckpointHashAtEpoch","nameLocation":"8788:29:84","parameters":{"id":50739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50738,"mutability":"mutable","name":"epoch","nameLocation":"8826:5:84","nodeType":"VariableDeclaration","scope":50764,"src":"8818:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50737,"name":"uint256","nodeType":"ElementaryTypeName","src":"8818:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8817:15:84"},"returnParameters":{"id":50744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50741,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50764,"src":"8856:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50740,"name":"bool","nodeType":"ElementaryTypeName","src":"8856:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":50743,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50764,"src":"8862:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8862:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8855:15:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50774,"nodeType":"FunctionDefinition","src":"9118:87:84","nodes":[],"body":{"id":50773,"nodeType":"Block","src":"9169:36:84","nodes":[],"statements":[{"expression":{"expression":{"id":50770,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"9186:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9188:10:84","memberName":"powerScale","nodeType":"MemberAccess","referencedDeclaration":47263,"src":"9186:12:84","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"functionReturnParameters":50769,"id":50772,"nodeType":"Return","src":"9179:19:84"}]},"documentation":{"id":50765,"nodeType":"StructuredDocumentation","src":"9040:73:84","text":"@notice Returns the power scale in number of decimals from whole FIL."},"functionSelector":"ad81e4d6","implemented":true,"kind":"function","modifiers":[],"name":"powerScale","nameLocation":"9127:10:84","parameters":{"id":50766,"nodeType":"ParameterList","parameters":[],"src":"9137:2:84"},"returnParameters":{"id":50769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50768,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50774,"src":"9163:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":50767,"name":"int8","nodeType":"ElementaryTypeName","src":"9163:4:84","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"9162:6:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50842,"nodeType":"FunctionDefinition","src":"9266:471:84","nodes":[],"body":{"id":50841,"nodeType":"Block","src":"9335:402:84","nodes":[],"statements":[{"assignments":[50782],"declarations":[{"constant":false,"id":50782,"mutability":"mutable","name":"n","nameLocation":"9353:1:84","nodeType":"VariableDeclaration","scope":50841,"src":"9345:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50781,"name":"uint256","nodeType":"ElementaryTypeName","src":"9345:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50787,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":50783,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"9357:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9359:15:84","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":47276,"src":"9357:17:84","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":50785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9375:6:84","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":35624,"src":"9357:24:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":50786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9357:26:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9345:38:84"},{"assignments":[50792],"declarations":[{"constant":false,"id":50792,"mutability":"mutable","name":"nodes","nameLocation":"9409:5:84","nodeType":"VariableDeclaration","scope":50841,"src":"9393:21:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":50790,"name":"string","nodeType":"ElementaryTypeName","src":"9393:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":50791,"nodeType":"ArrayTypeName","src":"9393:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":50798,"initialValue":{"arguments":[{"id":50796,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50782,"src":"9430:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9417:12:84","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":50793,"name":"string","nodeType":"ElementaryTypeName","src":"9421:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":50794,"nodeType":"ArrayTypeName","src":"9421:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":50797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9417:15:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9393:39:84"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50799,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50782,"src":"9446:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":50800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9451:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9446:6:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50805,"nodeType":"IfStatement","src":"9442:49:84","trueBody":{"id":50804,"nodeType":"Block","src":"9454:37:84","statements":[{"expression":{"id":50802,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50792,"src":"9475:5:84","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":50780,"id":50803,"nodeType":"Return","src":"9468:12:84"}]}},{"assignments":[50810],"declarations":[{"constant":false,"id":50810,"mutability":"mutable","name":"owners","nameLocation":"9517:6:84","nodeType":"VariableDeclaration","scope":50841,"src":"9500:23:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50808,"name":"address","nodeType":"ElementaryTypeName","src":"9500:7:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50809,"nodeType":"ArrayTypeName","src":"9500:9:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":50815,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":50811,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"9526:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9528:15:84","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":47276,"src":"9526:17:84","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":50813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9544:6:84","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"9526:24:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":50814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9526:26:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9500:52:84"},{"body":{"id":50837,"nodeType":"Block","src":"9587:122:84","statements":[{"expression":{"id":50831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":50822,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50792,"src":"9601:5:84","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":50824,"indexExpression":{"id":50823,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50817,"src":"9607:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9601:8:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":50825,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"9612:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9614:14:84","memberName":"bootstrapNodes","nodeType":"MemberAccess","referencedDeclaration":47272,"src":"9612:16:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":50830,"indexExpression":{"baseExpression":{"id":50827,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50810,"src":"9629:6:84","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":50829,"indexExpression":{"id":50828,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50817,"src":"9636:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9629:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9612:27:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"src":"9601:38:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":50832,"nodeType":"ExpressionStatement","src":"9601:38:84"},{"id":50836,"nodeType":"UncheckedBlock","src":"9653:46:84","statements":[{"expression":{"id":50834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"9681:3:84","subExpression":{"id":50833,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50817,"src":"9683:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50835,"nodeType":"ExpressionStatement","src":"9681:3:84"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50819,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50817,"src":"9578:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":50820,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50782,"src":"9582:1:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9578:5:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50838,"initializationExpression":{"assignments":[50817],"declarations":[{"constant":false,"id":50817,"mutability":"mutable","name":"i","nameLocation":"9575:1:84","nodeType":"VariableDeclaration","scope":50838,"src":"9567:9:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50816,"name":"uint256","nodeType":"ElementaryTypeName","src":"9567:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50818,"nodeType":"VariableDeclarationStatement","src":"9567:9:84"},"nodeType":"ForStatement","src":"9562:147:84"},{"expression":{"id":50839,"name":"nodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50792,"src":"9725:5:84","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":50780,"id":50840,"nodeType":"Return","src":"9718:12:84"}]},"documentation":{"id":50775,"nodeType":"StructuredDocumentation","src":"9211:50:84","text":"@notice Returns the bootstrap nodes addresses."},"functionSelector":"9754b29e","implemented":true,"kind":"function","modifiers":[],"name":"getBootstrapNodes","nameLocation":"9275:17:84","parameters":{"id":50776,"nodeType":"ParameterList","parameters":[],"src":"9292:2:84"},"returnParameters":{"id":50780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50779,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50842,"src":"9318:15:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":50777,"name":"string","nodeType":"ElementaryTypeName","src":"9318:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":50778,"nodeType":"ArrayTypeName","src":"9318:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"9317:17:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50860,"nodeType":"FunctionDefinition","src":"10002:140:84","nodes":[],"body":{"id":50859,"nodeType":"Block","src":"10087:55:84","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":50855,"name":"messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50847,"src":"10125:8:84","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"expression":{"id":50853,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10114:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":50854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10118:6:84","memberName":"encode","nodeType":"MemberAccess","src":"10114:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":50856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10114:20:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":50852,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10104:9:84","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10104:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":50851,"id":50858,"nodeType":"Return","src":"10097:38:84"}]},"documentation":{"id":50843,"nodeType":"StructuredDocumentation","src":"9743:254:84","text":"@notice Computes a hash of an array of cross-chain messages.\n @dev This exists for testing purposes.\n @param messages An array of cross-chain messages to be hashed.\n @return The keccak256 hash of the encoded cross-chain messages."},"functionSelector":"3da33241","implemented":true,"kind":"function","modifiers":[],"name":"crossMsgsHash","nameLocation":"10011:13:84","parameters":{"id":50848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50847,"mutability":"mutable","name":"messages","nameLocation":"10045:8:84","nodeType":"VariableDeclaration","scope":50860,"src":"10025:28:84","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":50845,"nodeType":"UserDefinedTypeName","pathNode":{"id":50844,"name":"CrossMsg","nameLocations":["10025:8:84"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"10025:8:84"},"referencedDeclaration":49974,"src":"10025:8:84","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":50846,"nodeType":"ArrayTypeName","src":"10025:10:84","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"10024:30:84"},"returnParameters":{"id":50851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50850,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50860,"src":"10078:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50849,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10078:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10077:9:84"},"scope":50887,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":50875,"nodeType":"FunctionDefinition","src":"10393:132:84","nodes":[],"body":{"id":50874,"nodeType":"Block","src":"10468:57:84","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"id":50868,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"10485:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10487:14:84","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"10485:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":50870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10502:7:84","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"10485:24:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":50872,"indexExpression":{"id":50871,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50863,"src":"10510:7:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10485:33:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50867,"id":50873,"nodeType":"Return","src":"10478:40:84"}]},"documentation":{"id":50861,"nodeType":"StructuredDocumentation","src":"10148:240:84","text":"@notice Retrieves the total reward amount allocated to a specific relayer.\n @param relayer The address of the relayer whose reward amount is to be queried.\n @return The total reward amount accrued by the specified relayer."},"functionSelector":"b2bd295e","implemented":true,"kind":"function","modifiers":[],"name":"getRelayerReward","nameLocation":"10402:16:84","parameters":{"id":50864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50863,"mutability":"mutable","name":"relayer","nameLocation":"10427:7:84","nodeType":"VariableDeclaration","scope":50875,"src":"10419:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50862,"name":"address","nodeType":"ElementaryTypeName","src":"10419:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10418:17:84"},"returnParameters":{"id":50867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50866,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50875,"src":"10459:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50865,"name":"uint256","nodeType":"ElementaryTypeName","src":"10459:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10458:9:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":50886,"nodeType":"FunctionDefinition","src":"10591:113:84","nodes":[],"body":{"id":50885,"nodeType":"Block","src":"10666:38:84","nodes":[],"statements":[{"expression":{"expression":{"id":50882,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50268,"src":"10683:1:84","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10685:12:84","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":47280,"src":"10683:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage","typeString":"struct SupplySource storage ref"}},"functionReturnParameters":50881,"id":50884,"nodeType":"Return","src":"10676:21:84"}]},"documentation":{"id":50876,"nodeType":"StructuredDocumentation","src":"10531:55:84","text":"@notice Returns the supply strategy for the subnet."},"functionSelector":"80875df7","implemented":true,"kind":"function","modifiers":[],"name":"supplySource","nameLocation":"10600:12:84","parameters":{"id":50877,"nodeType":"ParameterList","parameters":[],"src":"10612:2:84"},"returnParameters":{"id":50881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50880,"mutability":"mutable","name":"supply","nameLocation":"10658:6:84","nodeType":"VariableDeclaration","scope":50886,"src":"10638:26:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":50879,"nodeType":"UserDefinedTypeName","pathNode":{"id":50878,"name":"SupplySource","nameLocations":["10638:12:84"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"10638:12:84"},"referencedDeclaration":50226,"src":"10638:12:84","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"src":"10637:28:84"},"scope":50887,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetActorGetterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50887],"name":"SubnetActorGetterFacet","nameLocation":"690:22:84","scope":50888,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":84} \ No newline at end of file diff --git a/.out/SubnetActorHandler.sol/SubnetActorHandler.json b/.out/SubnetActorHandler.sol/SubnetActorHandler.json index e94f5a133..239e6f9d8 100644 --- a/.out/SubnetActorHandler.sol/SubnetActorHandler.json +++ b/.out/SubnetActorHandler.sol/SubnetActorHandler.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_subnetActor","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getRandomValidator","inputs":[{"name":"id","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getRandomValidatorFromSetOrZero","inputs":[{"name":"seed","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ghost_stakedSum","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ghost_unstakedSum","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ghost_validators_staked","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ghost_validators_unstaked","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"join","inputs":[{"name":"id","type":"uint8","internalType":"uint8"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"joinedValidators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"joinedValidatorsNumber","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"leave","inputs":[{"name":"id","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"id","type":"uint8","internalType":"uint8"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"id","type":"uint8","internalType":"uint8"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608034610106576001600160401b0390601f6110eb38819003918201601f1916830191848311848410176100e45780849260209460405283398101031261010657516001600160a01b038116908190036101065760018060a01b03198181600f541617600f556010541617601055737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15610106576000809260446040518095819363c88a5e6d60e01b83523060048401526a6b31bffa03c1c535c0000060248401525af180156100fa576100d4575b604051610fdf908161010c8239f35b81116100e45760405238806100c5565b634e487b7160e01b600052604160045260246000fd5b6040513d6000823e3d90fd5b600080fdfe6080604081815260049182361015610022575b505050361561002057600080fd5b005b600092833560e01c9182630a52ee9614610547575081632cb5402514610521578163a0758127146104be578163a64efe5d14610498578163a7818a481461045e578163b00053cf1461043f578163b4545b9e146102e8578163bc5683e1146102c3578163bd0fa1b114610298578163c2da05121461025e578163dd752e55146100ef575063f2a2870b146100b65780610012565b346100eb5760203660031901126100eb576020906100da6100d5610563565b610771565b90516001600160a01b039091168152f35b5080fd5b905034610228578160031936011261022857610109610563565b918361011f610119602435610a68565b94610578565b9261012a8585610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d93843b1561022857835163ca669fa760e01b815283816024818360018060a01b038097169a8b898401525af180156102405790849161024a575b505080600f5416803b1561021a5783879184875180948193633a4b66f160e01b83525af180156102405790849161022c575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e57610206575b5050610201916101ed846015546108b7565b6015558452601360205283209182546108b7565b905580f35b61020f906105b3565b61021a5783386101db565b8380fd5b83513d84823e3d90fd5b8280fd5b610235906105b3565b6102285782386101ab565b85513d86823e3d90fd5b610253906105b3565b610228578238610179565b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526014845220549051908152f35b5050346100eb573660031901126102c0576102bd6102b4610563565b602435906108da565b80f35b80fd5b5050346100eb57816003193601126100eb576020906102e0610808565b519051908152f35b905034610228578160031936011261022857610302610563565b91610317610311602435610a68565b93610578565b91737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57825163ca669fa760e01b815286816024818360018060a01b03809716998a898401525af180156104315761041c575b5090818692600f5416803b1561021a5783809160248751809481936305c2fbcf60e31b83528c898401525af1801561024057908491610408575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e576103f4575b5050610201916103e0846016546108b7565b6016558452601460205283209182546108b7565b6103fd906105b3565b61021a5783386103ce565b610411906105b3565b61022857823861039e565b61042990969192966105b3565b949038610364565b84513d89823e3d90fd5b8580fd5b5050346100eb57816003193601126100eb576020906015549051908152f35b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526013845220549051908152f35b5050346100eb5760203660031901126100eb576020906100da6104b9610563565b610578565b5050346100eb57816003193601126100eb576104d8610808565b815192839260208080860192818752855180945286019401925b82811061050157505050500390f35b83516001600160a01b0316855286955093810193928101926001016104f2565b5050346100eb5760203660031901126100eb576020906100da610542610563565b610cd4565b8490346100eb57816003193601126100eb576020906016548152f35b6004359060ff8216820361057357565b600080fd5b60c860ff821610156105a45761058d90610771565b6001600160a01b0381161561059f5790565b503390565b6105ad90610642565b5061058d565b67ffffffffffffffff81116105c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176105c757604052565b67ffffffffffffffff81116105c757601f01601f191660200190565b90815181101561062c570160200190565b634e487b7160e01b600052603260045260246000fd5b604051906080820182811067ffffffffffffffff8211176105c75760405260418252606036602084013781805160019081101561062c576001600160f81b03199260009060f81b8416811a60218401538251600019808201959091861161075d576106c56106af876105ff565b966106bd60405198896105dd565b8088526105ff565b602087019590601f190136873784805b6106f2575b505094519093206001600160a01b0316959350505050565b81518110156107585782610706828461061b565b5116848201908282116107445761072090871a918a61061b565b53838114610730578501856106d5565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b87526011600452602487fd5b6106da565b634e487b7160e01b83526011600452602483fd5b60115480156108015760405190819281835283602080940160116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6860005b868682106107ea5750505060ff92916107cc9103866105dd565b160691805183101561062c5760018060a01b039260051b0101511690565b8254845288945090920191600191820191016107b2565b5050600090565b60405190601154808352826020918282019060116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68936000905b82821061085d5750505061085b925003836105dd565b565b855484526001958601958895509381019390910190610845565b919082519283825260005b8481106108a3575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610882565b919082018092116108c457565b634e487b7160e01b600052601160045260246000fd5b6000929160ff821615610a62576108f36108f991610a68565b91610642565b61090583839493610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57604091825163ca669fa760e01b815287816024818360018060a01b038098169a8b60048401525af18015610a5857610a43575b5090869181600f5416803b1561021a5761098f8491879387519485809481936330b858b160e11b8352602060048401526024830190610877565b03925af18015610a3957908391610a25575b5050600f5416803b156100eb578190600484518094819363c7ebdaef60e01b83525af18015610a1b57610a03575b506109f990610a0094956109e5846015546108b7565b6015558481526013602052209182546108b7565b9055610c52565b50565b610a0d86916105b3565b610a1757386109cf565b8480fd5b82513d88823e3d90fd5b610a2e906105b3565b6100eb5781386109a1565b84513d85823e3d90fd5b610a5090979192976105b3565b959038610955565b84513d8a823e3d90fd5b50509050565b610a7190610b04565b906040516040810181811067ffffffffffffffff8211176105c7576000918291604052600c81526b109bdd5b990814995cdd5b1d60a21b6020820152604051610aeb81610ad76020820194632d839cb360e21b8652604060248401526064830190610877565b88604483015203601f1981018352826105dd565b51906a636f6e736f6c652e6c6f675afa50610a00610beb565b6801a055690d9db8000090600090818382118015610bd157600383111580610bd9575b610bd15760031983101580610bbe575b610bae5715610ba757506801a055690d9db7ffff198101908111610b93576801a055690d9db800019006918215610b8d57506000198201918211610b79575090565b634e487b7160e01b81526011600452602490fd5b91505090565b634e487b7160e01b82526011600452602482fd5b9392505050565b5050198203918211610b79575090565b5082196801a055690d9db8000111610b37565b505091505090565b50826801a055690d9db8000111610b27565b3d15610c16573d90610bfc826105ff565b91610c0a60405193846105dd565b82523d6000602084013e565b606090565b60115481101561062c5760116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680190600090565b600081815260126020526040812054610ccf5760115468010000000000000000811015610cbb579082610ca7610c9084600160409601601155610c1b565b819391549060031b91821b91600019901b19161790565b905560115492815260126020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b610cdd90610771565b600091906001600160a01b038082168015610e7f57906024918160105416916020604093845195868092630acbdfbf60e11b82528660048301525afa938415610e0d578794610e48575b5086737109709ecfa91a80626ff3989d68f67f5b1dd12d803b156100eb578190602486518094819363ca669fa760e01b83528860048401525af18015610a5857610e35575b50808791600f5416803b1561022857828091600487518094819363d66d9e1960e01b83525af18015610e2b57908391610e17575b5050600f5416803b156100eb578190600485518094819363c7ebdaef60e01b83525af18015610e0d57610df9575b5090610df393949582610de18594610e86565b508152601460205220556016546108b7565b60165590565b610e0387916105b3565b61043b5738610dce565b83513d89823e3d90fd5b610e20906105b3565b6100eb578138610da0565b85513d85823e3d90fd5b610e41909791976105b3565b9538610d6c565b9093506020813d8211610e77575b81610e63602093836105dd565b81010312610e7357519238610d27565b8680fd5b3d9150610e56565b5090925050565b6000818152601260205260408120549091908015610f5757600019908082018181116107305760115490838201918211610f4357808203610f0f575b5050506011548015610efb57810190610eda82610c1b565b909182549160031b1b19169055601155815260126020526040812055600190565b634e487b7160e01b84526031600452602484fd5b610f2d610f1e610c9093610c1b565b90549060031b1c928392610c1b565b9055845260126020526040842055388080610ec2565b634e487b7160e01b86526011600452602486fd5b505090565b600080809381935af1610f6d610beb565b5015610f7557565b60405162461bcd60e51b815260206004820152600c60248201526b1c185e4a0a4819985a5b195960a21b6044820152606490fdfea26469706673582212202df27b8500faf99239e182011d8856ce09461373a1f3c658de78b05cb1b1397564736f6c63430008130033","sourceMap":"609:4139:87:-:0;;;;-1:-1:-1;;;;;609:4139:87;;;;;;;;;;-1:-1:-1;;609:4139:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;609:4139:87;;;;;;;;;;;;;;;;1356:65;609:4139;;;1356:65;609:4139;1431:59;609:4139;;;1431:59;609:4139;;20219:17:6;;;;;;-1:-1:-1;609:4139:87;;17996:59:6;609:4139:87;;17996:59:6;;;;;;;20219:17;;1514:4:87;20219:17:6;;;17996:59;589:17:87;17996:59:6;;;;20219:17;;;;;;;;-1:-1:-1;609:4139:87;;;;;;;;;20219:17:6;609:4139:87;;;;;;20219:17:6;;;;609:4139:87;;;;-1:-1:-1;609:4139:87;;20219:17:6;609:4139:87;17996:59:6;-1:-1:-1;609:4139:87;20219:17:6;609:4139:87;;17996:59:6;-1:-1:-1;17996:59:6;;;;;20219:17;-1:-1:-1;609:4139:87;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260049182361015610022575b505050361561002057600080fd5b005b600092833560e01c9182630a52ee9614610547575081632cb5402514610521578163a0758127146104be578163a64efe5d14610498578163a7818a481461045e578163b00053cf1461043f578163b4545b9e146102e8578163bc5683e1146102c3578163bd0fa1b114610298578163c2da05121461025e578163dd752e55146100ef575063f2a2870b146100b65780610012565b346100eb5760203660031901126100eb576020906100da6100d5610563565b610771565b90516001600160a01b039091168152f35b5080fd5b905034610228578160031936011261022857610109610563565b918361011f610119602435610a68565b94610578565b9261012a8585610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d93843b1561022857835163ca669fa760e01b815283816024818360018060a01b038097169a8b898401525af180156102405790849161024a575b505080600f5416803b1561021a5783879184875180948193633a4b66f160e01b83525af180156102405790849161022c575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e57610206575b5050610201916101ed846015546108b7565b6015558452601360205283209182546108b7565b905580f35b61020f906105b3565b61021a5783386101db565b8380fd5b83513d84823e3d90fd5b8280fd5b610235906105b3565b6102285782386101ab565b85513d86823e3d90fd5b610253906105b3565b610228578238610179565b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526014845220549051908152f35b5050346100eb573660031901126102c0576102bd6102b4610563565b602435906108da565b80f35b80fd5b5050346100eb57816003193601126100eb576020906102e0610808565b519051908152f35b905034610228578160031936011261022857610302610563565b91610317610311602435610a68565b93610578565b91737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57825163ca669fa760e01b815286816024818360018060a01b03809716998a898401525af180156104315761041c575b5090818692600f5416803b1561021a5783809160248751809481936305c2fbcf60e31b83528c898401525af1801561024057908491610408575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e576103f4575b5050610201916103e0846016546108b7565b6016558452601460205283209182546108b7565b6103fd906105b3565b61021a5783386103ce565b610411906105b3565b61022857823861039e565b61042990969192966105b3565b949038610364565b84513d89823e3d90fd5b8580fd5b5050346100eb57816003193601126100eb576020906015549051908152f35b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526013845220549051908152f35b5050346100eb5760203660031901126100eb576020906100da6104b9610563565b610578565b5050346100eb57816003193601126100eb576104d8610808565b815192839260208080860192818752855180945286019401925b82811061050157505050500390f35b83516001600160a01b0316855286955093810193928101926001016104f2565b5050346100eb5760203660031901126100eb576020906100da610542610563565b610cd4565b8490346100eb57816003193601126100eb576020906016548152f35b6004359060ff8216820361057357565b600080fd5b60c860ff821610156105a45761058d90610771565b6001600160a01b0381161561059f5790565b503390565b6105ad90610642565b5061058d565b67ffffffffffffffff81116105c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176105c757604052565b67ffffffffffffffff81116105c757601f01601f191660200190565b90815181101561062c570160200190565b634e487b7160e01b600052603260045260246000fd5b604051906080820182811067ffffffffffffffff8211176105c75760405260418252606036602084013781805160019081101561062c576001600160f81b03199260009060f81b8416811a60218401538251600019808201959091861161075d576106c56106af876105ff565b966106bd60405198896105dd565b8088526105ff565b602087019590601f190136873784805b6106f2575b505094519093206001600160a01b0316959350505050565b81518110156107585782610706828461061b565b5116848201908282116107445761072090871a918a61061b565b53838114610730578501856106d5565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b87526011600452602487fd5b6106da565b634e487b7160e01b83526011600452602483fd5b60115480156108015760405190819281835283602080940160116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6860005b868682106107ea5750505060ff92916107cc9103866105dd565b160691805183101561062c5760018060a01b039260051b0101511690565b8254845288945090920191600191820191016107b2565b5050600090565b60405190601154808352826020918282019060116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68936000905b82821061085d5750505061085b925003836105dd565b565b855484526001958601958895509381019390910190610845565b919082519283825260005b8481106108a3575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610882565b919082018092116108c457565b634e487b7160e01b600052601160045260246000fd5b6000929160ff821615610a62576108f36108f991610a68565b91610642565b61090583839493610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57604091825163ca669fa760e01b815287816024818360018060a01b038098169a8b60048401525af18015610a5857610a43575b5090869181600f5416803b1561021a5761098f8491879387519485809481936330b858b160e11b8352602060048401526024830190610877565b03925af18015610a3957908391610a25575b5050600f5416803b156100eb578190600484518094819363c7ebdaef60e01b83525af18015610a1b57610a03575b506109f990610a0094956109e5846015546108b7565b6015558481526013602052209182546108b7565b9055610c52565b50565b610a0d86916105b3565b610a1757386109cf565b8480fd5b82513d88823e3d90fd5b610a2e906105b3565b6100eb5781386109a1565b84513d85823e3d90fd5b610a5090979192976105b3565b959038610955565b84513d8a823e3d90fd5b50509050565b610a7190610b04565b906040516040810181811067ffffffffffffffff8211176105c7576000918291604052600c81526b109bdd5b990814995cdd5b1d60a21b6020820152604051610aeb81610ad76020820194632d839cb360e21b8652604060248401526064830190610877565b88604483015203601f1981018352826105dd565b51906a636f6e736f6c652e6c6f675afa50610a00610beb565b6801a055690d9db8000090600090818382118015610bd157600383111580610bd9575b610bd15760031983101580610bbe575b610bae5715610ba757506801a055690d9db7ffff198101908111610b93576801a055690d9db800019006918215610b8d57506000198201918211610b79575090565b634e487b7160e01b81526011600452602490fd5b91505090565b634e487b7160e01b82526011600452602482fd5b9392505050565b5050198203918211610b79575090565b5082196801a055690d9db8000111610b37565b505091505090565b50826801a055690d9db8000111610b27565b3d15610c16573d90610bfc826105ff565b91610c0a60405193846105dd565b82523d6000602084013e565b606090565b60115481101561062c5760116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680190600090565b600081815260126020526040812054610ccf5760115468010000000000000000811015610cbb579082610ca7610c9084600160409601601155610c1b565b819391549060031b91821b91600019901b19161790565b905560115492815260126020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b610cdd90610771565b600091906001600160a01b038082168015610e7f57906024918160105416916020604093845195868092630acbdfbf60e11b82528660048301525afa938415610e0d578794610e48575b5086737109709ecfa91a80626ff3989d68f67f5b1dd12d803b156100eb578190602486518094819363ca669fa760e01b83528860048401525af18015610a5857610e35575b50808791600f5416803b1561022857828091600487518094819363d66d9e1960e01b83525af18015610e2b57908391610e17575b5050600f5416803b156100eb578190600485518094819363c7ebdaef60e01b83525af18015610e0d57610df9575b5090610df393949582610de18594610e86565b508152601460205220556016546108b7565b60165590565b610e0387916105b3565b61043b5738610dce565b83513d89823e3d90fd5b610e20906105b3565b6100eb578138610da0565b85513d85823e3d90fd5b610e41909791976105b3565b9538610d6c565b9093506020813d8211610e77575b81610e63602093836105dd565b81010312610e7357519238610d27565b8680fd5b3d9150610e56565b5090925050565b6000818152601260205260408120549091908015610f5757600019908082018181116107305760115490838201918211610f4357808203610f0f575b5050506011548015610efb57810190610eda82610c1b565b909182549160031b1b19169055601155815260126020526040812055600190565b634e487b7160e01b84526031600452602484fd5b610f2d610f1e610c9093610c1b565b90549060031b1c928392610c1b565b9055845260126020526040842055388080610ec2565b634e487b7160e01b86526011600452602486fd5b505090565b600080809381935af1610f6d610beb565b5015610f7557565b60405162461bcd60e51b815260206004820152600c60248201526b1c185e4a0a4819985a5b195960a21b6044820152606490fdfea26469706673582212202df27b8500faf99239e182011d8856ce09461373a1f3c658de78b05cb1b1397564736f6c63430008130033","sourceMap":"609:4139:87:-:0;;;;;;;;;;;;;-1:-1:-1;609:4139:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;609:4139:87;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;609:4139:87;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;3355:22;3276:49;609:4139;;3276:49;:::i;:::-;3355:22;;:::i;:::-;3403:6;;;;;:::i;:::-;609:4139;3421:19;;;;;;609:4139;;1220:14:3;;;3421:19:87;;609:4139;;;;;;;;;;;;;3421:19;;;;;609:4139;3421:19;;;;;;;;;;;609:4139;1220:14:3;;;3450:12:87;1220:14:3;609:4139:87;3450:35;;;;;609:4139;;;;;;1220:14:3;;;;;;;3450:35:87;;;;;;;;;;;;;609:4139;1220:14:3;;3450:12:87;1220:14:3;609:4139:87;3495:32;;;;;;609:4139;;-1:-1:-1;;;3495:32:87;;609:4139;;;;;;;;;3495:32;;;;;;;;609:4139;1220:14:3;;3573:44:87;1220:14:3;3538:25:87;1220:14:3;3538:25:87;1220:14:3;3538:25:87;:::i;:::-;;1220:14:3;609:4139:87;;3573:23;609:4139;;;;1220:14:3;;;3573:44:87;:::i;:::-;1220:14:3;;609:4139:87;;3495:32;;;;:::i;:::-;609:4139;;3495:32;;;;609:4139;;;;3495:32;609:4139;;1220:14:3;609:4139:87;;1220:14:3;;;;3495:32:87;609:4139;;;3450:35;;;;:::i;:::-;609:4139;;3450:35;;;;;609:4139;;1220:14:3;609:4139:87;;1220:14:3;;;;3421:19:87;;;;:::i;:::-;609:4139;;3421:19;;;;609:4139;;;;;;;;-1:-1:-1;;609:4139:87;;;;;-1:-1:-1;;;;;609:4139:87;;;;;;;;;;;;;;1159:60;609:4139;;;;;;;;;;;;;;;;;-1:-1:-1;;609:4139:87;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3778:22;3699:49;609:4139;;3699:49;:::i;:::-;3778:22;;:::i;:::-;609:4139;;3811:19;;;;;;609:4139;;1220:14:3;;;3811:19:87;;609:4139;;;;;;;;;;;;;3811:19;;;;;609:4139;3811:19;;;;;;;;609:4139;1220:14:3;;;;;3840:12:87;1220:14:3;609:4139:87;3840:28;;;;;609:4139;;;;;;1220:14:3;;;;;;;3840:28:87;;;;;;609:4139;3840:28;;;;;;;;;;;609:4139;1220:14:3;;3840:12:87;1220:14:3;609:4139:87;3878:32;;;;;;609:4139;;-1:-1:-1;;;3878:32:87;;609:4139;;;;;;;;;3878:32;;;;;;;;609:4139;1220:14:3;;3958:46:87;1220:14:3;3921:27:87;1220:14:3;3921:27:87;1220:14:3;3921:27:87;:::i;:::-;;1220:14:3;609:4139:87;;3958:25;609:4139;;;;1220:14:3;;;3958:46:87;:::i;3878:32::-;;;;:::i;:::-;609:4139;;3878:32;;;;3840:28;;;;:::i;:::-;609:4139;;3840:28;;;;3811:19;;;;;;;;:::i;:::-;;;;;;;609:4139;;1220:14:3;609:4139:87;;1220:14:3;;;;3811:19:87;609:4139;;;;;;;;;;;;;;;;;;;1226:30;609:4139;;;;;;;;;;;;;;;-1:-1:-1;;609:4139:87;;;;;-1:-1:-1;;;;;609:4139:87;;;;;;;;;;;;;;1095:58;609:4139;;;;;;;;;;;;;;;;;;-1:-1:-1;;609:4139:87;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;609:4139:87;;;;;-1:-1:-1;609:4139:87;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;609:4139:87;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;1262:32;609:4139;;;;;;;;;;;;;;;:::o;:::-;;;;1758:361;1867:3;609:4139;;;1862:8;1867:3;;;1893:35;;;:::i;:::-;-1:-1:-1;;;;;609:4139:87;;2030:18;2026:66;;1758:361;:::o;2026:66::-;2071:10;;2064:17;:::o;1858:159::-;1970:36;;;:::i;:::-;1959:47;1858:159;;609:4139;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;609:4139:87;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;3417:433:86;609:4139:87;;;;;;;;;;;;;;;;;3543:2:86;609:4139:87;;;;;;;;3526:20:86;609:4139:87;;3561:1:86;609:4139:87;;;;;;-1:-1:-1;;;;;;609:4139:87;-1:-1:-1;;609:4139:87;;;;3556:21:86;;609:4139:87;;;3556:21:86;609:4139:87;;-1:-1:-1;;609:4139:87;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;609:4139:87;;;;3692:10:86;;3561:1;;;3687:91;-1:-1:-1;;609:4139:87;;3819:21:86;;;-1:-1:-1;;;;;609:4139:87;;3417:433:86;-1:-1:-1;;;;3417:433:86:o;3721:3::-;609:4139:87;;3704:15:86;;;;;3760:7;;;;;:::i;:::-;609:4139:87;;;;;;;;;;;3740:27:86;;;;;;;:::i;:::-;;609:4139:87;;;;;;;;3692:10:86;;609:4139:87;-1:-1:-1;;;609:4139:87;;;;;;;;;-1:-1:-1;;;609:4139:87;;;;;;;;3704:15:86;;;609:4139:87;-1:-1:-1;;;609:4139:87;;;;;;;;2125:267;2235:16;609:4139;2274:11;;2270:59;;609:4139;;;;;;;;;;;;;2235:16;-1:-1:-1;609:4139:87;;-1:-1:-1;609:4139:87;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2125:267;:::o;609:4139::-;;;;;;;-1:-1:-1;609:4139:87;;;;;;;;;;;;2270:59;2301:17;;-1:-1:-1;2301:17:87;:::o;609:4139::-;;;;2608:16;609:4139;;;;;;;;;;;2608:16;-1:-1:-1;609:4139:87;;;-1:-1:-1;609:4139:87;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;-1:-1:-1;609:4139:87;;;;;;;;;;1220:14:3;;;609:4139:87;;;;;;1220:14:3;;;;;;;;;;;609:4139:87;1220:14:3;;;;;;;609:4139:87;;;;;;1220:14:3;;;:::o;:::-;609:4139:87;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;609:4139:87;;;;;;;;;;;2646:557;2713:1;;2646:557;609:4139;;;2707:7;2703:44;;2765:49;2871:36;2765:49;;:::i;:::-;2871:36;;:::i;:::-;2934:6;;;;;;:::i;:::-;609:4139;2951:19;;;;;;609:4139;;;;1220:14:3;;;2951:19:87;;609:4139;;;;;;;;;;;;;2951:19;;;;;609:4139;2951:19;;;;;;;;2646:557;1220:14:3;;;;;2980:12:87;1220:14:3;609:4139:87;2980:43;;;;;1220:14:3;609:4139:87;;;;;;1220:14:3;;;;;;;;;2980:43:87;;609:4139;2951:19;2980:43;;1220:14:3;609:4139:87;1220:14:3;;;;:::i;:::-;2980:43:87;;;;;;;;;;;;;2646:557;1220:14:3;;2980:12:87;1220:14:3;609:4139:87;3033:32;;;;;609:4139;;2951:19;609:4139;;1220:14:3;;;;;;;3033:32:87;;;;;;;;;;2646:557;1220:14:3;3111:44:87;1220:14:3;8399:50:33;1220:14:3;;3076:25:87;1220:14:3;3076:25:87;1220:14:3;3076:25:87;:::i;:::-;;1220:14:3;609:4139:87;;;3111:23;609:4139;;;1220:14:3;;;3111:44:87;:::i;:::-;1220:14:3;;8399:50:33;:::i;:::-;;2646:557:87:o;3033:32::-;;;;;:::i;:::-;609:4139;;3033:32;;;609:4139;;;;3033:32;609:4139;;1220:14:3;609:4139:87;;1220:14:3;;;;2980:43:87;;;;:::i;:::-;609:4139;;2980:43;;;;;609:4139;;1220:14:3;609:4139:87;;1220:14:3;;;;2951:19:87;;;;;;;;:::i;:::-;;;;;;;609:4139;;1220:14:3;609:4139:87;;1220:14:3;;;;2703:44:87;2730:7;;;;:::o;2680:190:13:-;2798:19;2680:190;2798:19;:::i;:::-;609:4139:87;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;609:4139:87;;;;;;9924:54:13;;679:42;609:4139:87;9924:54:13;;;;;;;;609:4139:87;9924:54:13;;;679:42;;;;;;:::i;:::-;;;;;609:4139:87;9924:54:13;609:4139:87;;9924:54:13;;;;;;:::i;:::-;9887:92;;679:42;9887:92;;;;;:::i;1411:1263::-;891:8:87;;609:4139;;;1847:8:13;;;;;1831:34;;2099:1;2094:6;;;:18;;;1411:1263;2090:38;;-1:-1:-1;;2142:20:13;;;;:46;;1411:1263;2138:82;;2320:7;;;-1:-1:-1;;;609:4139:87;;;;;;;1220:14:3;609:4139:87;;2422:8:13;;;2418:24;;-1:-1:-1;;;609:4139:87;;;;;;;2456:22:13;2316:352;1411:1263::o;609:4139:87:-;-1:-1:-1;;;609:4139:87;;;;;;;;2418:24:13;2432:10;;;;:::o;609:4139:87:-;-1:-1:-1;;;609:4139:87;;;;;;;;2316:352:13;;;;;;1411:1263::o;2138:82::-;609:4139:87;;;;;;;;;;2190:30:13;;:::o;2142:46::-;609:4139:87;;;1220:14:3;2166:22:13;2142:46;;2090:38;2114:14;;;;;;:::o;2094:18::-;2104:8;;1220:14:3;2104:8:13;2094:18;;679:42;;;;;;609:4139:87;;;;:::i;:::-;;;;;;;;:::i;:::-;;;679:42:13;-1:-1:-1;679:42:13;;;;:::o;:::-;609:4139:87;679:42:13;:::o;609:4139:87:-;3165:16;609:4139;;;;;;3165:16;-1:-1:-1;609:4139:87;;;;-1:-1:-1;609:4139:87;:::o;2215:404:33:-;-1:-1:-1;609:4139:87;;;4352:12:33;609:4139:87;;;;;1220:14:3;609:4139:87;;3165:16;609:4139;;;;;;;;;;;;4352:12:33;609:4139:87;;;3165:16;609:4139;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3165:16;609:4139;;;;4352:12:33;609:4139:87;;;1220:14:3;4352:12:33;2548:11;:::o;609:4139:87:-;-1:-1:-1;;;609:4139:87;;;;;;;;2294:319:33;2590:12;;;:::o;4017:545:87:-;4097:35;4017:545;4097:35;:::i;:::-;4167:1;;;-1:-1:-1;;;;;609:4139:87;;;4146:23;;4142:70;;609:4139;;;;4239:11;609:4139;;;4239:50;609:4139;;;;1220:14:3;;;;;;;4239:50:87;;;;;;609:4139;4239:50;;;;;;;;;;;4017:545;609:4139;;;4300:19;;;;;609:4139;;;;;1220:14:3;;;;;;;4300:19:87;;;4239:50;4300:19;;609:4139;4300:19;;;;;;;;4017:545;1220:14:3;;;;4329:12:87;1220:14:3;609:4139:87;4329:20;;;;;609:4139;;;4239:50;609:4139;;1220:14:3;;;;;;;4329:20:87;;;;;;;;;;;;;4017:545;1220:14:3;;4329:12:87;1220:14:3;609:4139:87;4359:32;;;;;609:4139;;4239:50;609:4139;;1220:14:3;;;;;;;4359:32:87;;;;;;;;;;4017:545;8720:53:33;;4501:27:87;8720:53:33;;;;;;;;:::i;:::-;;609:4139:87;;4446:25;4239:50;609:4139;;1220:14:3;4501:27:87;1220:14:3;4501:27:87;:::i;:::-;;1220:14:3;4017:545:87;:::o;4359:32::-;;;;;:::i;:::-;609:4139;;4359:32;;;;609:4139;;1220:14:3;609:4139:87;;1220:14:3;;;;4329:20:87;;;;:::i;:::-;609:4139;;4329:20;;;;;609:4139;;1220:14:3;609:4139:87;;1220:14:3;;;;4300:19:87;;;;;;;:::i;:::-;;;;;4239:50;;;;;;;;;;;;;;;;;;:::i;:::-;;;609:4139;;;;;4239:50;;;;609:4139;;;;4239:50;;;-1:-1:-1;4239:50:87;;4142:70;-1:-1:-1;4185:16:87;;-1:-1:-1;;4185:16:87:o;2787:1388:33:-;-1:-1:-1;609:4139:87;;;2990:12:33;609:4139:87;;;;;1220:14:3;-1:-1:-1;;609:4139:87;3024:15:33;;;;-1:-1:-1;;609:4139:87;;;;;;;;;4402:16;609:4139;;;;;;;;;;3506:26:33;;;3502:398;;3020:1149;609:4139:87;;;4402:16;609:4139;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4402:16;609:4139;;;2990:12:33;609:4139:87;;;;;;2990:12:33;4104:11;:::o;609:4139:87:-;-1:-1:-1;;;609:4139:87;;;;;;;;3502:398:33;609:4139:87;3572:22:33;3694:26;3572:22;;:::i;:::-;609:4139:87;;;;;;3694:26:33;;;;:::i;609:4139:87:-;;;;;2990:12:33;609:4139:87;;;;;1220:14:3;3502:398:33;;;;;609:4139:87;-1:-1:-1;;;609:4139:87;;4402:16;609:4139;;;;;3020:1149:33;4146:12;;;:::o;4568:143:87:-;4642:26;4568:143;;;;;4642:26;;;;:::i;:::-;;609:4139;;;4568:143::o;609:4139::-;;;-1:-1:-1;;;609:4139:87;;;;;;;;;;;;-1:-1:-1;;;609:4139:87;;;;;;","linkReferences":{}},"methodIdentifiers":{"getRandomValidator(uint8)":"a64efe5d","getRandomValidatorFromSetOrZero(uint8)":"f2a2870b","ghost_stakedSum()":"b00053cf","ghost_unstakedSum()":"0a52ee96","ghost_validators_staked(address)":"a7818a48","ghost_validators_unstaked(address)":"c2da0512","join(uint8,uint256)":"bd0fa1b1","joinedValidators()":"a0758127","joinedValidatorsNumber()":"bc5683e1","leave(uint8)":"2cb54025","stake(uint8,uint256)":"dd752e55","unstake(uint8,uint256)":"b4545b9e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"_subnetActor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"}],\"name\":\"getRandomValidator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"seed\",\"type\":\"uint8\"}],\"name\":\"getRandomValidatorFromSetOrZero\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ghost_stakedSum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ghost_unstakedSum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ghost_validators_staked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ghost_validators_unstaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"joinedValidators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"joinedValidatorsNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"}],\"name\":\"leave\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getRandomValidator(uint8)\":{\"notice\":\"getRandomValidator returns a validator from the known validators with probability about 20 %, otherwise it returns a random validator address generated from id. It can't return address(0);\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/invariants/handlers/SubnetActorHandler.sol\":\"SubnetActorHandler\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b\",\"dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x96a4183d613f1cfefc19a6032361910d8d06ba68e14f2c26c7ed058ab9116bc4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://330a52b5ecb618b4846ecb04da3ee1109149228ccf05a2e098a87750ae4dd82e\",\"dweb:/ipfs/QmNY8kSJpHA238pR9dSbXFLw5D5WzfFj9pHqe8DQ2GmSuq\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c\",\"dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x754f60bfb99884f3347c68fd063a18a8c80bcbdaf848391803d89654cdd97aef\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ed97511b421373b8e94222d825568f9c2a3a4e6ff2d9ab4f3f48fe1e9e3a8ba9\",\"dweb:/ipfs/QmadhEoTUMstJtS1M7Gzdz3Df1kEs1C7u7Mk2v4x6PDy7H\"]},\"test/invariants/handlers/SubnetActorHandler.sol\":{\"keccak256\":\"0x550932489eb05622b305eed6b52585528c34057da743bcc119236096aa1164a6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3bbe95d36dfbf155b1bfff1a9c74d36c7a358d6e89afeb4bd103327349697f18\",\"dweb:/ipfs/QmR8Scqte47Nzqkgn8XLu2rfh5kgr2qMYXZsWfu5a71Y2L\"]},\"test/mocks/SubnetActor.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract SubnetActorDiamond","name":"_subnetActor","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"}],"stateMutability":"view","type":"function","name":"getRandomValidator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint8","name":"seed","type":"uint8"}],"stateMutability":"view","type":"function","name":"getRandomValidatorFromSetOrZero","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ghost_stakedSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ghost_unstakedSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"ghost_validators_staked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"ghost_validators_unstaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"join"},{"inputs":[],"stateMutability":"view","type":"function","name":"joinedValidators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"joinedValidatorsNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"leave","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"stake"},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getRandomValidator(uint8)":{"notice":"getRandomValidator returns a validator from the known validators with probability about 20 %, otherwise it returns a random validator address generated from id. It can't return address(0);"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/invariants/handlers/SubnetActorHandler.sol":"SubnetActorHandler"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87","urls":["bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b","dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x96a4183d613f1cfefc19a6032361910d8d06ba68e14f2c26c7ed058ab9116bc4","urls":["bzz-raw://330a52b5ecb618b4846ecb04da3ee1109149228ccf05a2e098a87750ae4dd82e","dweb:/ipfs/QmNY8kSJpHA238pR9dSbXFLw5D5WzfFj9pHqe8DQ2GmSuq"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad","urls":["bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c","dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x754f60bfb99884f3347c68fd063a18a8c80bcbdaf848391803d89654cdd97aef","urls":["bzz-raw://ed97511b421373b8e94222d825568f9c2a3a4e6ff2d9ab4f3f48fe1e9e3a8ba9","dweb:/ipfs/QmadhEoTUMstJtS1M7Gzdz3Df1kEs1C7u7Mk2v4x6PDy7H"],"license":"MIT OR Apache-2.0"},"test/invariants/handlers/SubnetActorHandler.sol":{"keccak256":"0x550932489eb05622b305eed6b52585528c34057da743bcc119236096aa1164a6","urls":["bzz-raw://3bbe95d36dfbf155b1bfff1a9c74d36c7a358d6e89afeb4bd103327349697f18","dweb:/ipfs/QmR8Scqte47Nzqkgn8XLu2rfh5kgr2qMYXZsWfu5a71Y2L"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActor.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/invariants/handlers/SubnetActorHandler.sol","id":55627,"exportedSymbols":{"CommonBase":[3777],"ETH_SUPPLY":[55187],"EnumerableSet":[35386],"IMulticall3":[30545],"StdCheats":[8180],"StdCheatsSafe":[7501],"StdStorage":[9220],"StdUtils":[12691],"SubnetActorDiamond":[36177],"SubnetActorGetterFacet":[49325],"SubnetActorHandler":[55626],"SubnetActorManagerFacetMock":[56069],"TestUtils":[55168],"Vm":[14222],"VmSafe":[13782],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:4703:87","nodes":[{"id":55170,"nodeType":"PragmaDirective","src":"46:23:87","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55171,"nodeType":"ImportDirective","src":"71:32:87","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"forge-std/StdUtils.sol","nameLocation":"-1:-1:-1","scope":55627,"sourceUnit":12692,"symbolAliases":[],"unitAlias":""},{"id":55172,"nodeType":"ImportDirective","src":"104:33:87","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"forge-std/StdCheats.sol","nameLocation":"-1:-1:-1","scope":55627,"sourceUnit":8181,"symbolAliases":[],"unitAlias":""},{"id":55174,"nodeType":"ImportDirective","src":"138:46:87","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"forge-std/Base.sol","nameLocation":"-1:-1:-1","scope":55627,"sourceUnit":3793,"symbolAliases":[{"foreign":{"id":55173,"name":"CommonBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3777,"src":"146:10:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55176,"nodeType":"ImportDirective","src":"185:71:87","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../../../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":55627,"sourceUnit":36178,"symbolAliases":[{"foreign":{"id":55175,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"193:18:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55178,"nodeType":"ImportDirective","src":"257:86:87","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../../../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":55627,"sourceUnit":49326,"symbolAliases":[{"foreign":{"id":55177,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"265:22:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55180,"nodeType":"ImportDirective","src":"344:72:87","nodes":[],"absolutePath":"test/mocks/SubnetActor.sol","file":"../../mocks/SubnetActor.sol","nameLocation":"-1:-1:-1","scope":55627,"sourceUnit":56070,"symbolAliases":[{"foreign":{"id":55179,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56069,"src":"352:27:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55182,"nodeType":"ImportDirective","src":"417:54:87","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"../../helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":55627,"sourceUnit":55169,"symbolAliases":[{"foreign":{"id":55181,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"425:9:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55184,"nodeType":"ImportDirective","src":"472:85:87","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":55627,"sourceUnit":35387,"symbolAliases":[{"foreign":{"id":55183,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35386,"src":"480:13:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55187,"nodeType":"VariableDeclaration","src":"559:47:87","nodes":[],"constant":true,"mutability":"constant","name":"ETH_SUPPLY","nameLocation":"576:10:87","scope":55627,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55185,"name":"uint256","nodeType":"ElementaryTypeName","src":"559:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3132395f3539305f303030","id":55186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"589:17:87","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_129590000000000000000000000_by_1","typeString":"int_const 129590000000000000000000000"},"value":"129_590_000"},"visibility":"internal"},{"id":55626,"nodeType":"ContractDefinition","src":"609:4139:87","nodes":[{"id":55197,"nodeType":"UsingForDirective","src":"678:49:87","nodes":[],"global":false,"libraryName":{"id":55194,"name":"EnumerableSet","nameLocations":["684:13:87"],"nodeType":"IdentifierPath","referencedDeclaration":35386,"src":"684:13:87"},"typeName":{"id":55196,"nodeType":"UserDefinedTypeName","pathNode":{"id":55195,"name":"EnumerableSet.AddressSet","nameLocations":["702:13:87","716:10:87"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"702:24:87"},"referencedDeclaration":35099,"src":"702:24:87","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":55200,"nodeType":"VariableDeclaration","src":"733:48:87","nodes":[],"constant":false,"mutability":"mutable","name":"managerFacet","nameLocation":"769:12:87","scope":55626,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":55199,"nodeType":"UserDefinedTypeName","pathNode":{"id":55198,"name":"SubnetActorManagerFacetMock","nameLocations":["733:27:87"],"nodeType":"IdentifierPath","referencedDeclaration":56069,"src":"733:27:87"},"referencedDeclaration":56069,"src":"733:27:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"private"},{"id":55203,"nodeType":"VariableDeclaration","src":"787:42:87","nodes":[],"constant":false,"mutability":"mutable","name":"getterFacet","nameLocation":"818:11:87","scope":55626,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":55202,"nodeType":"UserDefinedTypeName","pathNode":{"id":55201,"name":"SubnetActorGetterFacet","nameLocations":["787:22:87"],"nodeType":"IdentifierPath","referencedDeclaration":49325,"src":"787:22:87"},"referencedDeclaration":49325,"src":"787:22:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"visibility":"private"},{"id":55206,"nodeType":"VariableDeclaration","src":"836:63:87","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"861:27:87","scope":55626,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55204,"name":"uint256","nodeType":"ElementaryTypeName","src":"836:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":55205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"891:8:87","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"value":"10"},"visibility":"private"},{"id":55209,"nodeType":"VariableDeclaration","src":"1040:49:87","nodes":[],"constant":false,"mutability":"mutable","name":"ghost_validators","nameLocation":"1073:16:87","scope":55626,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":55208,"nodeType":"UserDefinedTypeName","pathNode":{"id":55207,"name":"EnumerableSet.AddressSet","nameLocations":["1040:13:87","1054:10:87"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"1040:24:87"},"referencedDeclaration":35099,"src":"1040:24:87","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"private"},{"id":55213,"nodeType":"VariableDeclaration","src":"1095:58:87","nodes":[],"constant":false,"functionSelector":"a7818a48","mutability":"mutable","name":"ghost_validators_staked","nameLocation":"1130:23:87","scope":55626,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":55212,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55210,"name":"address","nodeType":"ElementaryTypeName","src":"1103:7:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1095:27:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55211,"name":"uint256","nodeType":"ElementaryTypeName","src":"1114:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":55217,"nodeType":"VariableDeclaration","src":"1159:60:87","nodes":[],"constant":false,"functionSelector":"c2da0512","mutability":"mutable","name":"ghost_validators_unstaked","nameLocation":"1194:25:87","scope":55626,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":55216,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55214,"name":"address","nodeType":"ElementaryTypeName","src":"1167:7:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1159:27:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55215,"name":"uint256","nodeType":"ElementaryTypeName","src":"1178:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":55219,"nodeType":"VariableDeclaration","src":"1226:30:87","nodes":[],"constant":false,"functionSelector":"b00053cf","mutability":"mutable","name":"ghost_stakedSum","nameLocation":"1241:15:87","scope":55626,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55218,"name":"uint256","nodeType":"ElementaryTypeName","src":"1226:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":55221,"nodeType":"VariableDeclaration","src":"1262:32:87","nodes":[],"constant":false,"functionSelector":"0a52ee96","mutability":"mutable","name":"ghost_unstakedSum","nameLocation":"1277:17:87","scope":55626,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55220,"name":"uint256","nodeType":"ElementaryTypeName","src":"1262:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":55254,"nodeType":"FunctionDefinition","src":"1301:238:87","nodes":[],"body":{"id":55253,"nodeType":"Block","src":"1346:193:87","nodes":[],"statements":[{"expression":{"id":55234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55227,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55200,"src":"1356:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55231,"name":"_subnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55224,"src":"1407:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":55230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1399:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55229,"name":"address","nodeType":"ElementaryTypeName","src":"1399:7:87","typeDescriptions":{}}},"id":55232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1399:21:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55228,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56069,"src":"1371:27:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacetMock_$56069_$","typeString":"type(contract SubnetActorManagerFacetMock)"}},"id":55233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1371:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"src":"1356:65:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"id":55235,"nodeType":"ExpressionStatement","src":"1356:65:87"},{"expression":{"id":55243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55236,"name":"getterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55203,"src":"1431:11:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55240,"name":"_subnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55224,"src":"1476:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}],"id":55239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1468:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55238,"name":"address","nodeType":"ElementaryTypeName","src":"1468:7:87","typeDescriptions":{}}},"id":55241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1468:21:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55237,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49325,"src":"1445:22:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$49325_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":55242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1445:45:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"src":"1431:59:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":55244,"nodeType":"ExpressionStatement","src":"1431:59:87"},{"expression":{"arguments":[{"arguments":[{"id":55248,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1514:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorHandler_$55626","typeString":"contract SubnetActorHandler"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorHandler_$55626","typeString":"contract SubnetActorHandler"}],"id":55247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1506:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55246,"name":"address","nodeType":"ElementaryTypeName","src":"1506:7:87","typeDescriptions":{}}},"id":55249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1506:13:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55250,"name":"ETH_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55187,"src":"1521:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55245,"name":"deal","nodeType":"Identifier","overloadedDeclarations":[7789,7806,7929],"referencedDeclaration":7789,"src":"1501:4:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":55251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1501:31:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55252,"nodeType":"ExpressionStatement","src":"1501:31:87"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":55225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55224,"mutability":"mutable","name":"_subnetActor","nameLocation":"1332:12:87","nodeType":"VariableDeclaration","scope":55254,"src":"1313:31:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"},"typeName":{"id":55223,"nodeType":"UserDefinedTypeName","pathNode":{"id":55222,"name":"SubnetActorDiamond","nameLocations":["1313:18:87"],"nodeType":"IdentifierPath","referencedDeclaration":36177,"src":"1313:18:87"},"referencedDeclaration":36177,"src":"1313:18:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36177","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"1312:33:87"},"returnParameters":{"id":55226,"nodeType":"ParameterList","parameters":[],"src":"1346:0:87"},"scope":55626,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55299,"nodeType":"FunctionDefinition","src":"1758:361:87","nodes":[],"body":{"id":55298,"nodeType":"Block","src":"1826:293:87","nodes":[],"statements":[{"assignments":[55263],"declarations":[{"constant":false,"id":55263,"mutability":"mutable","name":"addr","nameLocation":"1844:4:87","nodeType":"VariableDeclaration","scope":55298,"src":"1836:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55262,"name":"address","nodeType":"ElementaryTypeName","src":"1836:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":55264,"nodeType":"VariableDeclarationStatement","src":"1836:12:87"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":55267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55265,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55257,"src":"1862:2:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"323030","id":55266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1867:3:87","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"1862:8:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":55283,"nodeType":"Block","src":"1945:72:87","statements":[{"expression":{"id":55281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":55275,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55263,"src":"1960:4:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},null],"id":55276,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1959:8:87","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$__$","typeString":"tuple(address,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55279,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55257,"src":"2003:2:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55277,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"1970:9:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":55278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1980:22:87","memberName":"deriveValidatorAddress","nodeType":"MemberAccess","referencedDeclaration":54891,"src":"1970:32:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint8_$returns$_t_address_$_t_bytes_memory_ptr_$","typeString":"function (uint8) pure returns (address,bytes memory)"}},"id":55280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1970:36:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_memory_ptr_$","typeString":"tuple(address,bytes memory)"}},"src":"1959:47:87","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55282,"nodeType":"ExpressionStatement","src":"1959:47:87"}]},"id":55284,"nodeType":"IfStatement","src":"1858:159:87","trueBody":{"id":55274,"nodeType":"Block","src":"1872:67:87","statements":[{"expression":{"id":55272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55268,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55263,"src":"1886:4:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55270,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55257,"src":"1925:2:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":55269,"name":"getRandomValidatorFromSetOrZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"1893:31:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":55271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1893:35:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1886:42:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55273,"nodeType":"ExpressionStatement","src":"1886:42:87"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":55290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55285,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55263,"src":"2030:4:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":55288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2046:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":55287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2038:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55286,"name":"address","nodeType":"ElementaryTypeName","src":"2038:7:87","typeDescriptions":{}}},"id":55289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2038:10:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2030:18:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55295,"nodeType":"IfStatement","src":"2026:66:87","trueBody":{"id":55294,"nodeType":"Block","src":"2050:42:87","statements":[{"expression":{"expression":{"id":55291,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2071:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2075:6:87","memberName":"sender","nodeType":"MemberAccess","src":"2071:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55261,"id":55293,"nodeType":"Return","src":"2064:17:87"}]}},{"expression":{"id":55296,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55263,"src":"2108:4:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55261,"id":55297,"nodeType":"Return","src":"2101:11:87"}]},"documentation":{"id":55255,"nodeType":"StructuredDocumentation","src":"1545:208:87","text":"getRandomValidator returns a validator from the known validators with probability about 20 %,\n otherwise it returns a random validator address generated from id.\n It can't return address(0);"},"functionSelector":"a64efe5d","implemented":true,"kind":"function","modifiers":[],"name":"getRandomValidator","nameLocation":"1767:18:87","parameters":{"id":55258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55257,"mutability":"mutable","name":"id","nameLocation":"1792:2:87","nodeType":"VariableDeclaration","scope":55299,"src":"1786:8:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55256,"name":"uint8","nodeType":"ElementaryTypeName","src":"1786:5:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1785:10:87"},"returnParameters":{"id":55261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55260,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55299,"src":"1817:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55259,"name":"address","nodeType":"ElementaryTypeName","src":"1817:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1816:9:87"},"scope":55626,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55331,"nodeType":"FunctionDefinition","src":"2125:267:87","nodes":[],"body":{"id":55330,"nodeType":"Block","src":"2208:184:87","nodes":[],"statements":[{"assignments":[55307],"declarations":[{"constant":false,"id":55307,"mutability":"mutable","name":"length","nameLocation":"2226:6:87","nodeType":"VariableDeclaration","scope":55330,"src":"2218:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55306,"name":"uint256","nodeType":"ElementaryTypeName","src":"2218:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55311,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55308,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55209,"src":"2235:16:87","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":55309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2252:6:87","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":35195,"src":"2235:23:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35099_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":55310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2235:25:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2218:42:87"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55312,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55307,"src":"2274:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2284:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2274:11:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55321,"nodeType":"IfStatement","src":"2270:59:87","trueBody":{"id":55320,"nodeType":"Block","src":"2287:42:87","statements":[{"expression":{"arguments":[{"hexValue":"30","id":55317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2316:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":55316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2308:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55315,"name":"address","nodeType":"ElementaryTypeName","src":"2308:7:87","typeDescriptions":{}}},"id":55318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2308:10:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55305,"id":55319,"nodeType":"Return","src":"2301:17:87"}]}},{"expression":{"baseExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55322,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55209,"src":"2345:16:87","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":55323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2362:6:87","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35252,"src":"2345:23:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35099_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":55324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2345:25:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55328,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55325,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55301,"src":"2371:4:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":55326,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55307,"src":"2378:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2371:13:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2345:40:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55305,"id":55329,"nodeType":"Return","src":"2338:47:87"}]},"functionSelector":"f2a2870b","implemented":true,"kind":"function","modifiers":[],"name":"getRandomValidatorFromSetOrZero","nameLocation":"2134:31:87","parameters":{"id":55302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55301,"mutability":"mutable","name":"seed","nameLocation":"2172:4:87","nodeType":"VariableDeclaration","scope":55331,"src":"2166:10:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55300,"name":"uint8","nodeType":"ElementaryTypeName","src":"2166:5:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2165:12:87"},"returnParameters":{"id":55305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55304,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55331,"src":"2199:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55303,"name":"address","nodeType":"ElementaryTypeName","src":"2199:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2198:9:87"},"scope":55626,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55342,"nodeType":"FunctionDefinition","src":"2398:120:87","nodes":[],"body":{"id":55341,"nodeType":"Block","src":"2462:56:87","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55336,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55209,"src":"2479:16:87","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":55337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2496:6:87","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35252,"src":"2479:23:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35099_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":55338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2479:25:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2505:6:87","memberName":"length","nodeType":"MemberAccess","src":"2479:32:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":55335,"id":55340,"nodeType":"Return","src":"2472:39:87"}]},"functionSelector":"bc5683e1","implemented":true,"kind":"function","modifiers":[],"name":"joinedValidatorsNumber","nameLocation":"2407:22:87","parameters":{"id":55332,"nodeType":"ParameterList","parameters":[],"src":"2429:2:87"},"returnParameters":{"id":55335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55334,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55342,"src":"2453:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55333,"name":"uint256","nodeType":"ElementaryTypeName","src":"2453:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2452:9:87"},"scope":55626,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55353,"nodeType":"FunctionDefinition","src":"2524:116:87","nodes":[],"body":{"id":55352,"nodeType":"Block","src":"2591:49:87","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55348,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55209,"src":"2608:16:87","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":55349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2625:6:87","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35252,"src":"2608:23:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35099_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":55350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2608:25:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":55347,"id":55351,"nodeType":"Return","src":"2601:32:87"}]},"functionSelector":"a0758127","implemented":true,"kind":"function","modifiers":[],"name":"joinedValidators","nameLocation":"2533:16:87","parameters":{"id":55343,"nodeType":"ParameterList","parameters":[],"src":"2549:2:87"},"returnParameters":{"id":55347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55346,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55353,"src":"2573:16:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55344,"name":"address","nodeType":"ElementaryTypeName","src":"2573:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55345,"nodeType":"ArrayTypeName","src":"2573:9:87","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2572:18:87"},"scope":55626,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":55426,"nodeType":"FunctionDefinition","src":"2646:557:87","nodes":[],"body":{"id":55425,"nodeType":"Block","src":"2693:510:87","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":55362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55360,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55355,"src":"2707:2:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2713:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2707:7:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55365,"nodeType":"IfStatement","src":"2703:44:87","trueBody":{"id":55364,"nodeType":"Block","src":"2716:31:87","statements":[{"functionReturnParameters":55359,"id":55363,"nodeType":"Return","src":"2730:7:87"}]}},{"expression":{"id":55374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55366,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55357,"src":"2756:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55368,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55357,"src":"2771:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":55369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2779:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":55370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2782:1:87","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":55371,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55206,"src":"2786:27:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2782:31:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55367,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"2765:5:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":55373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2765:49:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2756:58:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55375,"nodeType":"ExpressionStatement","src":"2756:58:87"},{"assignments":[55377,55379],"declarations":[{"constant":false,"id":55377,"mutability":"mutable","name":"validator","nameLocation":"2834:9:87","nodeType":"VariableDeclaration","scope":55425,"src":"2826:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55376,"name":"address","nodeType":"ElementaryTypeName","src":"2826:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55379,"mutability":"mutable","name":"publicKey","nameLocation":"2858:9:87","nodeType":"VariableDeclaration","scope":55425,"src":"2845:22:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55378,"name":"bytes","nodeType":"ElementaryTypeName","src":"2845:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55384,"initialValue":{"arguments":[{"id":55382,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55355,"src":"2904:2:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":55380,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55168,"src":"2871:9:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$55168_$","typeString":"type(library TestUtils)"}},"id":55381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2881:22:87","memberName":"deriveValidatorAddress","nodeType":"MemberAccess","referencedDeclaration":54891,"src":"2871:32:87","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint8_$returns$_t_address_$_t_bytes_memory_ptr_$","typeString":"function (uint8) pure returns (address,bytes memory)"}},"id":55383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2871:36:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_memory_ptr_$","typeString":"tuple(address,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2825:82:87"},{"expression":{"arguments":[{"id":55386,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55377,"src":"2923:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55387,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55357,"src":"2934:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55385,"name":"_pay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55621,"src":"2918:4:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":55388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2918:23:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55389,"nodeType":"ExpressionStatement","src":"2918:23:87"},{"expression":{"arguments":[{"id":55393,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55377,"src":"2960:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55390,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"2951:2:87","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2954:5:87","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"2951:8:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2951:19:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55395,"nodeType":"ExpressionStatement","src":"2951:19:87"},{"expression":{"arguments":[{"id":55401,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55379,"src":"3013:9:87","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":55396,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55200,"src":"2980:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"id":55398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2993:4:87","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":50103,"src":"2980:17:87","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":55400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55399,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55357,"src":"3005:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2980:32:87","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":55402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2980:43:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55403,"nodeType":"ExpressionStatement","src":"2980:43:87"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55404,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55200,"src":"3033:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"id":55406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3046:17:87","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":56068,"src":"3033:30:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":55407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3033:32:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55408,"nodeType":"ExpressionStatement","src":"3033:32:87"},{"expression":{"id":55411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55409,"name":"ghost_stakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55219,"src":"3076:15:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":55410,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55357,"src":"3095:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3076:25:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55412,"nodeType":"ExpressionStatement","src":"3076:25:87"},{"expression":{"id":55417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55413,"name":"ghost_validators_staked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55213,"src":"3111:23:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55415,"indexExpression":{"id":55414,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55377,"src":"3135:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3111:34:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":55416,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55357,"src":"3149:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3111:44:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55418,"nodeType":"ExpressionStatement","src":"3111:44:87"},{"expression":{"arguments":[{"id":55422,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55377,"src":"3186:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55419,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55209,"src":"3165:16:87","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":55421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3182:3:87","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35126,"src":"3165:20:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35099_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":55423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3165:31:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55424,"nodeType":"ExpressionStatement","src":"3165:31:87"}]},"functionSelector":"bd0fa1b1","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"2655:4:87","parameters":{"id":55358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55355,"mutability":"mutable","name":"id","nameLocation":"2666:2:87","nodeType":"VariableDeclaration","scope":55426,"src":"2660:8:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55354,"name":"uint8","nodeType":"ElementaryTypeName","src":"2660:5:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55357,"mutability":"mutable","name":"amount","nameLocation":"2678:6:87","nodeType":"VariableDeclaration","scope":55426,"src":"2670:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55356,"name":"uint256","nodeType":"ElementaryTypeName","src":"2670:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2659:26:87"},"returnParameters":{"id":55359,"nodeType":"ParameterList","parameters":[],"src":"2693:0:87"},"scope":55626,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55483,"nodeType":"FunctionDefinition","src":"3209:415:87","nodes":[],"body":{"id":55482,"nodeType":"Block","src":"3257:367:87","nodes":[],"statements":[{"expression":{"id":55441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55433,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"3267:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55435,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"3282:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":55436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3290:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":55437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3293:1:87","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":55438,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55206,"src":"3297:27:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3293:31:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55434,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"3276:5:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":55440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3276:49:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3267:58:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55442,"nodeType":"ExpressionStatement","src":"3267:58:87"},{"assignments":[55444],"declarations":[{"constant":false,"id":55444,"mutability":"mutable","name":"validator","nameLocation":"3343:9:87","nodeType":"VariableDeclaration","scope":55482,"src":"3335:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55443,"name":"address","nodeType":"ElementaryTypeName","src":"3335:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":55448,"initialValue":{"arguments":[{"id":55446,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55428,"src":"3374:2:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":55445,"name":"getRandomValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55299,"src":"3355:18:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":55447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3355:22:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3335:42:87"},{"expression":{"arguments":[{"id":55450,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55444,"src":"3392:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55451,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"3403:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55449,"name":"_pay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55621,"src":"3387:4:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":55452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3387:23:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55453,"nodeType":"ExpressionStatement","src":"3387:23:87"},{"expression":{"arguments":[{"id":55457,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55444,"src":"3430:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55454,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3421:2:87","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3424:5:87","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"3421:8:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3421:19:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55459,"nodeType":"ExpressionStatement","src":"3421:19:87"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":55460,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55200,"src":"3450:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"id":55462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3463:5:87","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":50159,"src":"3450:18:87","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":55464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55463,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"3476:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3450:33:87","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":55465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3450:35:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55466,"nodeType":"ExpressionStatement","src":"3450:35:87"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55467,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55200,"src":"3495:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"id":55469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3508:17:87","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":56068,"src":"3495:30:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":55470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3495:32:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55471,"nodeType":"ExpressionStatement","src":"3495:32:87"},{"expression":{"id":55474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55472,"name":"ghost_stakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55219,"src":"3538:15:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":55473,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"3557:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3538:25:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55475,"nodeType":"ExpressionStatement","src":"3538:25:87"},{"expression":{"id":55480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55476,"name":"ghost_validators_staked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55213,"src":"3573:23:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55478,"indexExpression":{"id":55477,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55444,"src":"3597:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3573:34:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":55479,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55430,"src":"3611:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3573:44:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55481,"nodeType":"ExpressionStatement","src":"3573:44:87"}]},"functionSelector":"dd752e55","implemented":true,"kind":"function","modifiers":[],"name":"stake","nameLocation":"3218:5:87","parameters":{"id":55431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55428,"mutability":"mutable","name":"id","nameLocation":"3230:2:87","nodeType":"VariableDeclaration","scope":55483,"src":"3224:8:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55427,"name":"uint8","nodeType":"ElementaryTypeName","src":"3224:5:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55430,"mutability":"mutable","name":"amount","nameLocation":"3242:6:87","nodeType":"VariableDeclaration","scope":55483,"src":"3234:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55429,"name":"uint256","nodeType":"ElementaryTypeName","src":"3234:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3223:26:87"},"returnParameters":{"id":55432,"nodeType":"ParameterList","parameters":[],"src":"3257:0:87"},"scope":55626,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55534,"nodeType":"FunctionDefinition","src":"3630:381:87","nodes":[],"body":{"id":55533,"nodeType":"Block","src":"3680:331:87","nodes":[],"statements":[{"expression":{"id":55498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55490,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55487,"src":"3690:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55492,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55487,"src":"3705:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":55493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3713:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":55494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3716:1:87","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":55495,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55206,"src":"3720:27:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3716:31:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55491,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"3699:5:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":55497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3699:49:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3690:58:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55499,"nodeType":"ExpressionStatement","src":"3690:58:87"},{"assignments":[55501],"declarations":[{"constant":false,"id":55501,"mutability":"mutable","name":"validator","nameLocation":"3766:9:87","nodeType":"VariableDeclaration","scope":55533,"src":"3758:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55500,"name":"address","nodeType":"ElementaryTypeName","src":"3758:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":55505,"initialValue":{"arguments":[{"id":55503,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55485,"src":"3797:2:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":55502,"name":"getRandomValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55299,"src":"3778:18:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":55504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3778:22:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3758:42:87"},{"expression":{"arguments":[{"id":55509,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55501,"src":"3820:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55506,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3811:2:87","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3814:5:87","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"3811:8:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3811:19:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55511,"nodeType":"ExpressionStatement","src":"3811:19:87"},{"expression":{"arguments":[{"id":55515,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55487,"src":"3861:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55512,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55200,"src":"3840:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"id":55514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3853:7:87","memberName":"unstake","nodeType":"MemberAccess","referencedDeclaration":50229,"src":"3840:20:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":55516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3840:28:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55517,"nodeType":"ExpressionStatement","src":"3840:28:87"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55518,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55200,"src":"3878:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"id":55520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3891:17:87","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":56068,"src":"3878:30:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":55521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3878:32:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55522,"nodeType":"ExpressionStatement","src":"3878:32:87"},{"expression":{"id":55525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55523,"name":"ghost_unstakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55221,"src":"3921:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":55524,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55487,"src":"3942:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3921:27:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55526,"nodeType":"ExpressionStatement","src":"3921:27:87"},{"expression":{"id":55531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55527,"name":"ghost_validators_unstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55217,"src":"3958:25:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55529,"indexExpression":{"id":55528,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55501,"src":"3984:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3958:36:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":55530,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55487,"src":"3998:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3958:46:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55532,"nodeType":"ExpressionStatement","src":"3958:46:87"}]},"functionSelector":"b4545b9e","implemented":true,"kind":"function","modifiers":[],"name":"unstake","nameLocation":"3639:7:87","parameters":{"id":55488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55485,"mutability":"mutable","name":"id","nameLocation":"3653:2:87","nodeType":"VariableDeclaration","scope":55534,"src":"3647:8:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55484,"name":"uint8","nodeType":"ElementaryTypeName","src":"3647:5:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55487,"mutability":"mutable","name":"amount","nameLocation":"3665:6:87","nodeType":"VariableDeclaration","scope":55534,"src":"3657:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55486,"name":"uint256","nodeType":"ElementaryTypeName","src":"3657:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3646:26:87"},"returnParameters":{"id":55489,"nodeType":"ParameterList","parameters":[],"src":"3680:0:87"},"scope":55626,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55599,"nodeType":"FunctionDefinition","src":"4017:545:87","nodes":[],"body":{"id":55598,"nodeType":"Block","src":"4067:495:87","nodes":[],"statements":[{"assignments":[55542],"declarations":[{"constant":false,"id":55542,"mutability":"mutable","name":"validator","nameLocation":"4085:9:87","nodeType":"VariableDeclaration","scope":55598,"src":"4077:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55541,"name":"address","nodeType":"ElementaryTypeName","src":"4077:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":55546,"initialValue":{"arguments":[{"id":55544,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55536,"src":"4129:2:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":55543,"name":"getRandomValidatorFromSetOrZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55331,"src":"4097:31:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":55545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4097:35:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4077:55:87"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":55552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55547,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55542,"src":"4146:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":55550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4167:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":55549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4159:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55548,"name":"address","nodeType":"ElementaryTypeName","src":"4159:7:87","typeDescriptions":{}}},"id":55551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:10:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4146:23:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55556,"nodeType":"IfStatement","src":"4142:70:87","trueBody":{"id":55555,"nodeType":"Block","src":"4171:41:87","statements":[{"expression":{"id":55553,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55542,"src":"4192:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55540,"id":55554,"nodeType":"Return","src":"4185:16:87"}]}},{"assignments":[55558],"declarations":[{"constant":false,"id":55558,"mutability":"mutable","name":"amount","nameLocation":"4230:6:87","nodeType":"VariableDeclaration","scope":55598,"src":"4222:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55557,"name":"uint256","nodeType":"ElementaryTypeName","src":"4222:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55563,"initialValue":{"arguments":[{"id":55561,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55542,"src":"4279:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55559,"name":"getterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55203,"src":"4239:11:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$49325","typeString":"contract SubnetActorGetterFacet"}},"id":55560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4251:27:87","memberName":"getTotalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":49066,"src":"4239:39:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":55562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4239:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4222:67:87"},{"expression":{"arguments":[{"id":55567,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55542,"src":"4309:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55564,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4300:2:87","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":55566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4303:5:87","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"4300:8:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":55568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4300:19:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55569,"nodeType":"ExpressionStatement","src":"4300:19:87"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55570,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55200,"src":"4329:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"id":55572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4342:5:87","memberName":"leave","nodeType":"MemberAccess","referencedDeclaration":50345,"src":"4329:18:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":55573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4329:20:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55574,"nodeType":"ExpressionStatement","src":"4329:20:87"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55575,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55200,"src":"4359:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$56069","typeString":"contract SubnetActorManagerFacetMock"}},"id":55577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4372:17:87","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":56068,"src":"4359:30:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":55578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4359:32:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55579,"nodeType":"ExpressionStatement","src":"4359:32:87"},{"expression":{"arguments":[{"id":55583,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55542,"src":"4426:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55580,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55209,"src":"4402:16:87","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":55582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4419:6:87","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":35153,"src":"4402:23:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35099_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":55584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4402:34:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55585,"nodeType":"ExpressionStatement","src":"4402:34:87"},{"expression":{"id":55590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55586,"name":"ghost_validators_unstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55217,"src":"4446:25:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55588,"indexExpression":{"id":55587,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55542,"src":"4472:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4446:36:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55589,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55558,"src":"4485:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4446:45:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55591,"nodeType":"ExpressionStatement","src":"4446:45:87"},{"expression":{"id":55594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55592,"name":"ghost_unstakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55221,"src":"4501:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":55593,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55558,"src":"4522:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4501:27:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55595,"nodeType":"ExpressionStatement","src":"4501:27:87"},{"expression":{"id":55596,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55542,"src":"4546:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55540,"id":55597,"nodeType":"Return","src":"4539:16:87"}]},"functionSelector":"2cb54025","implemented":true,"kind":"function","modifiers":[],"name":"leave","nameLocation":"4026:5:87","parameters":{"id":55537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55536,"mutability":"mutable","name":"id","nameLocation":"4038:2:87","nodeType":"VariableDeclaration","scope":55599,"src":"4032:8:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55535,"name":"uint8","nodeType":"ElementaryTypeName","src":"4032:5:87","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4031:10:87"},"returnParameters":{"id":55540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55599,"src":"4058:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55538,"name":"address","nodeType":"ElementaryTypeName","src":"4058:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4057:9:87"},"scope":55626,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55621,"nodeType":"FunctionDefinition","src":"4568:143:87","nodes":[],"body":{"id":55620,"nodeType":"Block","src":"4619:92:87","nodes":[],"statements":[{"assignments":[55607,null],"declarations":[{"constant":false,"id":55607,"mutability":"mutable","name":"s","nameLocation":"4635:1:87","nodeType":"VariableDeclaration","scope":55620,"src":"4630:6:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55606,"name":"bool","nodeType":"ElementaryTypeName","src":"4630:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":55614,"initialValue":{"arguments":[{"hexValue":"","id":55612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4665:2:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":55608,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55601,"src":"4642:2:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4645:4:87","memberName":"call","nodeType":"MemberAccess","src":"4642:7:87","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":55611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":55610,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55603,"src":"4657:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4642:22:87","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":55613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4642:26:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4629:39:87"},{"expression":{"arguments":[{"id":55616,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55607,"src":"4686:1:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7061792829206661696c6564","id":55617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4689:14:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_708a605926d72cc62b9c45ef20f4a9137befa0fe0d1bddbd83963293deff2e9a","typeString":"literal_string \"pay() failed\""},"value":"pay() failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_708a605926d72cc62b9c45ef20f4a9137befa0fe0d1bddbd83963293deff2e9a","typeString":"literal_string \"pay() failed\""}],"id":55615,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4678:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4678:26:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55619,"nodeType":"ExpressionStatement","src":"4678:26:87"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_pay","nameLocation":"4577:4:87","parameters":{"id":55604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55601,"mutability":"mutable","name":"to","nameLocation":"4590:2:87","nodeType":"VariableDeclaration","scope":55621,"src":"4582:10:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55600,"name":"address","nodeType":"ElementaryTypeName","src":"4582:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55603,"mutability":"mutable","name":"amount","nameLocation":"4602:6:87","nodeType":"VariableDeclaration","scope":55621,"src":"4594:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55602,"name":"uint256","nodeType":"ElementaryTypeName","src":"4594:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4581:28:87"},"returnParameters":{"id":55605,"nodeType":"ParameterList","parameters":[],"src":"4619:0:87"},"scope":55626,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":55625,"nodeType":"FunctionDefinition","src":"4717:29:87","nodes":[],"body":{"id":55624,"nodeType":"Block","src":"4744:2:87","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":55622,"nodeType":"ParameterList","parameters":[],"src":"4724:2:87"},"returnParameters":{"id":55623,"nodeType":"ParameterList","parameters":[],"src":"4744:0:87"},"scope":55626,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":55188,"name":"CommonBase","nameLocations":["640:10:87"],"nodeType":"IdentifierPath","referencedDeclaration":3777,"src":"640:10:87"},"id":55189,"nodeType":"InheritanceSpecifier","src":"640:10:87"},{"baseName":{"id":55190,"name":"StdCheats","nameLocations":["652:9:87"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"652:9:87"},"id":55191,"nodeType":"InheritanceSpecifier","src":"652:9:87"},{"baseName":{"id":55192,"name":"StdUtils","nameLocations":["663:8:87"],"nodeType":"IdentifierPath","referencedDeclaration":12691,"src":"663:8:87"},"id":55193,"nodeType":"InheritanceSpecifier","src":"663:8:87"}],"canonicalName":"SubnetActorHandler","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55626,12691,8180,7501,3777],"name":"SubnetActorHandler","nameLocation":"618:18:87","scope":55627,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":87} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_subnetActor","type":"address","internalType":"contract SubnetActorDiamond"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getRandomValidator","inputs":[{"name":"id","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getRandomValidatorFromSetOrZero","inputs":[{"name":"seed","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ghost_stakedSum","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ghost_unstakedSum","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ghost_validators_staked","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ghost_validators_unstaked","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"join","inputs":[{"name":"id","type":"uint8","internalType":"uint8"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"joinedValidators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"joinedValidatorsNumber","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"leave","inputs":[{"name":"id","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"id","type":"uint8","internalType":"uint8"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"id","type":"uint8","internalType":"uint8"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608034610106576001600160401b0390601f6110eb38819003918201601f1916830191848311848410176100e45780849260209460405283398101031261010657516001600160a01b038116908190036101065760018060a01b03198181600f541617600f556010541617601055737109709ecfa91a80626ff3989d68f67f5b1dd12d90813b15610106576000809260446040518095819363c88a5e6d60e01b83523060048401526a6b31bffa03c1c535c0000060248401525af180156100fa576100d4575b604051610fdf908161010c8239f35b81116100e45760405238806100c5565b634e487b7160e01b600052604160045260246000fd5b6040513d6000823e3d90fd5b600080fdfe6080604081815260049182361015610022575b505050361561002057600080fd5b005b600092833560e01c9182630a52ee9614610547575081632cb5402514610521578163a0758127146104be578163a64efe5d14610498578163a7818a481461045e578163b00053cf1461043f578163b4545b9e146102e8578163bc5683e1146102c3578163bd0fa1b114610298578163c2da05121461025e578163dd752e55146100ef575063f2a2870b146100b65780610012565b346100eb5760203660031901126100eb576020906100da6100d5610563565b610771565b90516001600160a01b039091168152f35b5080fd5b905034610228578160031936011261022857610109610563565b918361011f610119602435610a68565b94610578565b9261012a8585610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d93843b1561022857835163ca669fa760e01b815283816024818360018060a01b038097169a8b898401525af180156102405790849161024a575b505080600f5416803b1561021a5783879184875180948193633a4b66f160e01b83525af180156102405790849161022c575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e57610206575b5050610201916101ed846015546108b7565b6015558452601360205283209182546108b7565b905580f35b61020f906105b3565b61021a5783386101db565b8380fd5b83513d84823e3d90fd5b8280fd5b610235906105b3565b6102285782386101ab565b85513d86823e3d90fd5b610253906105b3565b610228578238610179565b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526014845220549051908152f35b5050346100eb573660031901126102c0576102bd6102b4610563565b602435906108da565b80f35b80fd5b5050346100eb57816003193601126100eb576020906102e0610808565b519051908152f35b905034610228578160031936011261022857610302610563565b91610317610311602435610a68565b93610578565b91737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57825163ca669fa760e01b815286816024818360018060a01b03809716998a898401525af180156104315761041c575b5090818692600f5416803b1561021a5783809160248751809481936305c2fbcf60e31b83528c898401525af1801561024057908491610408575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e576103f4575b5050610201916103e0846016546108b7565b6016558452601460205283209182546108b7565b6103fd906105b3565b61021a5783386103ce565b610411906105b3565b61022857823861039e565b61042990969192966105b3565b949038610364565b84513d89823e3d90fd5b8580fd5b5050346100eb57816003193601126100eb576020906015549051908152f35b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526013845220549051908152f35b5050346100eb5760203660031901126100eb576020906100da6104b9610563565b610578565b5050346100eb57816003193601126100eb576104d8610808565b815192839260208080860192818752855180945286019401925b82811061050157505050500390f35b83516001600160a01b0316855286955093810193928101926001016104f2565b5050346100eb5760203660031901126100eb576020906100da610542610563565b610cd4565b8490346100eb57816003193601126100eb576020906016548152f35b6004359060ff8216820361057357565b600080fd5b60c860ff821610156105a45761058d90610771565b6001600160a01b0381161561059f5790565b503390565b6105ad90610642565b5061058d565b67ffffffffffffffff81116105c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176105c757604052565b67ffffffffffffffff81116105c757601f01601f191660200190565b90815181101561062c570160200190565b634e487b7160e01b600052603260045260246000fd5b604051906080820182811067ffffffffffffffff8211176105c75760405260418252606036602084013781805160019081101561062c576001600160f81b03199260009060f81b8416811a60218401538251600019808201959091861161075d576106c56106af876105ff565b966106bd60405198896105dd565b8088526105ff565b602087019590601f190136873784805b6106f2575b505094519093206001600160a01b0316959350505050565b81518110156107585782610706828461061b565b5116848201908282116107445761072090871a918a61061b565b53838114610730578501856106d5565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b87526011600452602487fd5b6106da565b634e487b7160e01b83526011600452602483fd5b60115480156108015760405190819281835283602080940160116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6860005b868682106107ea5750505060ff92916107cc9103866105dd565b160691805183101561062c5760018060a01b039260051b0101511690565b8254845288945090920191600191820191016107b2565b5050600090565b60405190601154808352826020918282019060116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68936000905b82821061085d5750505061085b925003836105dd565b565b855484526001958601958895509381019390910190610845565b919082519283825260005b8481106108a3575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610882565b919082018092116108c457565b634e487b7160e01b600052601160045260246000fd5b6000929160ff821615610a62576108f36108f991610a68565b91610642565b61090583839493610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57604091825163ca669fa760e01b815287816024818360018060a01b038098169a8b60048401525af18015610a5857610a43575b5090869181600f5416803b1561021a5761098f8491879387519485809481936330b858b160e11b8352602060048401526024830190610877565b03925af18015610a3957908391610a25575b5050600f5416803b156100eb578190600484518094819363c7ebdaef60e01b83525af18015610a1b57610a03575b506109f990610a0094956109e5846015546108b7565b6015558481526013602052209182546108b7565b9055610c52565b50565b610a0d86916105b3565b610a1757386109cf565b8480fd5b82513d88823e3d90fd5b610a2e906105b3565b6100eb5781386109a1565b84513d85823e3d90fd5b610a5090979192976105b3565b959038610955565b84513d8a823e3d90fd5b50509050565b610a7190610b04565b906040516040810181811067ffffffffffffffff8211176105c7576000918291604052600c81526b109bdd5b990814995cdd5b1d60a21b6020820152604051610aeb81610ad76020820194632d839cb360e21b8652604060248401526064830190610877565b88604483015203601f1981018352826105dd565b51906a636f6e736f6c652e6c6f675afa50610a00610beb565b6801a055690d9db8000090600090818382118015610bd157600383111580610bd9575b610bd15760031983101580610bbe575b610bae5715610ba757506801a055690d9db7ffff198101908111610b93576801a055690d9db800019006918215610b8d57506000198201918211610b79575090565b634e487b7160e01b81526011600452602490fd5b91505090565b634e487b7160e01b82526011600452602482fd5b9392505050565b5050198203918211610b79575090565b5082196801a055690d9db8000111610b37565b505091505090565b50826801a055690d9db8000111610b27565b3d15610c16573d90610bfc826105ff565b91610c0a60405193846105dd565b82523d6000602084013e565b606090565b60115481101561062c5760116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680190600090565b600081815260126020526040812054610ccf5760115468010000000000000000811015610cbb579082610ca7610c9084600160409601601155610c1b565b819391549060031b91821b91600019901b19161790565b905560115492815260126020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b610cdd90610771565b600091906001600160a01b038082168015610e7f57906024918160105416916020604093845195868092630acbdfbf60e11b82528660048301525afa938415610e0d578794610e48575b5086737109709ecfa91a80626ff3989d68f67f5b1dd12d803b156100eb578190602486518094819363ca669fa760e01b83528860048401525af18015610a5857610e35575b50808791600f5416803b1561022857828091600487518094819363d66d9e1960e01b83525af18015610e2b57908391610e17575b5050600f5416803b156100eb578190600485518094819363c7ebdaef60e01b83525af18015610e0d57610df9575b5090610df393949582610de18594610e86565b508152601460205220556016546108b7565b60165590565b610e0387916105b3565b61043b5738610dce565b83513d89823e3d90fd5b610e20906105b3565b6100eb578138610da0565b85513d85823e3d90fd5b610e41909791976105b3565b9538610d6c565b9093506020813d8211610e77575b81610e63602093836105dd565b81010312610e7357519238610d27565b8680fd5b3d9150610e56565b5090925050565b6000818152601260205260408120549091908015610f5757600019908082018181116107305760115490838201918211610f4357808203610f0f575b5050506011548015610efb57810190610eda82610c1b565b909182549160031b1b19169055601155815260126020526040812055600190565b634e487b7160e01b84526031600452602484fd5b610f2d610f1e610c9093610c1b565b90549060031b1c928392610c1b565b9055845260126020526040842055388080610ec2565b634e487b7160e01b86526011600452602486fd5b505090565b600080809381935af1610f6d610beb565b5015610f7557565b60405162461bcd60e51b815260206004820152600c60248201526b1c185e4a0a4819985a5b195960a21b6044820152606490fdfea2646970667358221220cf543ee17777eec8d846eb1b0de72976a8754252c284525b4f853d85e8276b6c64736f6c63430008130033","sourceMap":"625:4139:97:-:0;;;;-1:-1:-1;;;;;625:4139:97;;;;;;;;;;-1:-1:-1;;625:4139:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;625:4139:97;;;;;;;;;;;;;;;;1372:65;625:4139;;;1372:65;625:4139;1447:59;625:4139;;;1447:59;625:4139;;20219:17:6;;;;;;-1:-1:-1;625:4139:97;;17996:59:6;625:4139:97;;17996:59:6;;;;;;;20219:17;;1530:4:97;20219:17:6;;;17996:59;605:17:97;17996:59:6;;;;20219:17;;;;;;;;-1:-1:-1;625:4139:97;;;;;;;;;20219:17:6;625:4139:97;;;;;;20219:17:6;;;;625:4139:97;;;;-1:-1:-1;625:4139:97;;20219:17:6;625:4139:97;17996:59:6;-1:-1:-1;625:4139:97;20219:17:6;625:4139:97;;17996:59:6;-1:-1:-1;17996:59:6;;;;;20219:17;-1:-1:-1;625:4139:97;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604081815260049182361015610022575b505050361561002057600080fd5b005b600092833560e01c9182630a52ee9614610547575081632cb5402514610521578163a0758127146104be578163a64efe5d14610498578163a7818a481461045e578163b00053cf1461043f578163b4545b9e146102e8578163bc5683e1146102c3578163bd0fa1b114610298578163c2da05121461025e578163dd752e55146100ef575063f2a2870b146100b65780610012565b346100eb5760203660031901126100eb576020906100da6100d5610563565b610771565b90516001600160a01b039091168152f35b5080fd5b905034610228578160031936011261022857610109610563565b918361011f610119602435610a68565b94610578565b9261012a8585610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d93843b1561022857835163ca669fa760e01b815283816024818360018060a01b038097169a8b898401525af180156102405790849161024a575b505080600f5416803b1561021a5783879184875180948193633a4b66f160e01b83525af180156102405790849161022c575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e57610206575b5050610201916101ed846015546108b7565b6015558452601360205283209182546108b7565b905580f35b61020f906105b3565b61021a5783386101db565b8380fd5b83513d84823e3d90fd5b8280fd5b610235906105b3565b6102285782386101ab565b85513d86823e3d90fd5b610253906105b3565b610228578238610179565b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526014845220549051908152f35b5050346100eb573660031901126102c0576102bd6102b4610563565b602435906108da565b80f35b80fd5b5050346100eb57816003193601126100eb576020906102e0610808565b519051908152f35b905034610228578160031936011261022857610302610563565b91610317610311602435610a68565b93610578565b91737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57825163ca669fa760e01b815286816024818360018060a01b03809716998a898401525af180156104315761041c575b5090818692600f5416803b1561021a5783809160248751809481936305c2fbcf60e31b83528c898401525af1801561024057908491610408575b5050600f541690813b1561022857835163c7ebdaef60e01b81529183918391829084905af1801561021e576103f4575b5050610201916103e0846016546108b7565b6016558452601460205283209182546108b7565b6103fd906105b3565b61021a5783386103ce565b610411906105b3565b61022857823861039e565b61042990969192966105b3565b949038610364565b84513d89823e3d90fd5b8580fd5b5050346100eb57816003193601126100eb576020906015549051908152f35b90503461022857602036600319011261022857356001600160a01b0381169081900361022857828291602094526013845220549051908152f35b5050346100eb5760203660031901126100eb576020906100da6104b9610563565b610578565b5050346100eb57816003193601126100eb576104d8610808565b815192839260208080860192818752855180945286019401925b82811061050157505050500390f35b83516001600160a01b0316855286955093810193928101926001016104f2565b5050346100eb5760203660031901126100eb576020906100da610542610563565b610cd4565b8490346100eb57816003193601126100eb576020906016548152f35b6004359060ff8216820361057357565b600080fd5b60c860ff821610156105a45761058d90610771565b6001600160a01b0381161561059f5790565b503390565b6105ad90610642565b5061058d565b67ffffffffffffffff81116105c757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176105c757604052565b67ffffffffffffffff81116105c757601f01601f191660200190565b90815181101561062c570160200190565b634e487b7160e01b600052603260045260246000fd5b604051906080820182811067ffffffffffffffff8211176105c75760405260418252606036602084013781805160019081101561062c576001600160f81b03199260009060f81b8416811a60218401538251600019808201959091861161075d576106c56106af876105ff565b966106bd60405198896105dd565b8088526105ff565b602087019590601f190136873784805b6106f2575b505094519093206001600160a01b0316959350505050565b81518110156107585782610706828461061b565b5116848201908282116107445761072090871a918a61061b565b53838114610730578501856106d5565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b87526011600452602487fd5b6106da565b634e487b7160e01b83526011600452602483fd5b60115480156108015760405190819281835283602080940160116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6860005b868682106107ea5750505060ff92916107cc9103866105dd565b160691805183101561062c5760018060a01b039260051b0101511690565b8254845288945090920191600191820191016107b2565b5050600090565b60405190601154808352826020918282019060116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68936000905b82821061085d5750505061085b925003836105dd565b565b855484526001958601958895509381019390910190610845565b919082519283825260005b8481106108a3575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610882565b919082018092116108c457565b634e487b7160e01b600052601160045260246000fd5b6000929160ff821615610a62576108f36108f991610a68565b91610642565b61090583839493610f5c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d92833b1561043b57604091825163ca669fa760e01b815287816024818360018060a01b038098169a8b60048401525af18015610a5857610a43575b5090869181600f5416803b1561021a5761098f8491879387519485809481936330b858b160e11b8352602060048401526024830190610877565b03925af18015610a3957908391610a25575b5050600f5416803b156100eb578190600484518094819363c7ebdaef60e01b83525af18015610a1b57610a03575b506109f990610a0094956109e5846015546108b7565b6015558481526013602052209182546108b7565b9055610c52565b50565b610a0d86916105b3565b610a1757386109cf565b8480fd5b82513d88823e3d90fd5b610a2e906105b3565b6100eb5781386109a1565b84513d85823e3d90fd5b610a5090979192976105b3565b959038610955565b84513d8a823e3d90fd5b50509050565b610a7190610b04565b906040516040810181811067ffffffffffffffff8211176105c7576000918291604052600c81526b109bdd5b990814995cdd5b1d60a21b6020820152604051610aeb81610ad76020820194632d839cb360e21b8652604060248401526064830190610877565b88604483015203601f1981018352826105dd565b51906a636f6e736f6c652e6c6f675afa50610a00610beb565b6801a055690d9db8000090600090818382118015610bd157600383111580610bd9575b610bd15760031983101580610bbe575b610bae5715610ba757506801a055690d9db7ffff198101908111610b93576801a055690d9db800019006918215610b8d57506000198201918211610b79575090565b634e487b7160e01b81526011600452602490fd5b91505090565b634e487b7160e01b82526011600452602482fd5b9392505050565b5050198203918211610b79575090565b5082196801a055690d9db8000111610b37565b505091505090565b50826801a055690d9db8000111610b27565b3d15610c16573d90610bfc826105ff565b91610c0a60405193846105dd565b82523d6000602084013e565b606090565b60115481101561062c5760116000527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680190600090565b600081815260126020526040812054610ccf5760115468010000000000000000811015610cbb579082610ca7610c9084600160409601601155610c1b565b819391549060031b91821b91600019901b19161790565b905560115492815260126020522055600190565b634e487b7160e01b82526041600452602482fd5b905090565b610cdd90610771565b600091906001600160a01b038082168015610e7f57906024918160105416916020604093845195868092630acbdfbf60e11b82528660048301525afa938415610e0d578794610e48575b5086737109709ecfa91a80626ff3989d68f67f5b1dd12d803b156100eb578190602486518094819363ca669fa760e01b83528860048401525af18015610a5857610e35575b50808791600f5416803b1561022857828091600487518094819363d66d9e1960e01b83525af18015610e2b57908391610e17575b5050600f5416803b156100eb578190600485518094819363c7ebdaef60e01b83525af18015610e0d57610df9575b5090610df393949582610de18594610e86565b508152601460205220556016546108b7565b60165590565b610e0387916105b3565b61043b5738610dce565b83513d89823e3d90fd5b610e20906105b3565b6100eb578138610da0565b85513d85823e3d90fd5b610e41909791976105b3565b9538610d6c565b9093506020813d8211610e77575b81610e63602093836105dd565b81010312610e7357519238610d27565b8680fd5b3d9150610e56565b5090925050565b6000818152601260205260408120549091908015610f5757600019908082018181116107305760115490838201918211610f4357808203610f0f575b5050506011548015610efb57810190610eda82610c1b565b909182549160031b1b19169055601155815260126020526040812055600190565b634e487b7160e01b84526031600452602484fd5b610f2d610f1e610c9093610c1b565b90549060031b1c928392610c1b565b9055845260126020526040842055388080610ec2565b634e487b7160e01b86526011600452602486fd5b505090565b600080809381935af1610f6d610beb565b5015610f7557565b60405162461bcd60e51b815260206004820152600c60248201526b1c185e4a0a4819985a5b195960a21b6044820152606490fdfea2646970667358221220cf543ee17777eec8d846eb1b0de72976a8754252c284525b4f853d85e8276b6c64736f6c63430008130033","sourceMap":"625:4139:97:-:0;;;;;;;;;;;;;-1:-1:-1;625:4139:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;625:4139:97;;;;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;625:4139:97;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;3371:22;3292:49;625:4139;;3292:49;:::i;:::-;3371:22;;:::i;:::-;3419:6;;;;;:::i;:::-;625:4139;3437:19;;;;;;625:4139;;1220:14:3;;;3437:19:97;;625:4139;;;;;;;;;;;;;3437:19;;;;;625:4139;3437:19;;;;;;;;;;;625:4139;1220:14:3;;;3466:12:97;1220:14:3;625:4139:97;3466:35;;;;;625:4139;;;;;;1220:14:3;;;;;;;3466:35:97;;;;;;;;;;;;;625:4139;1220:14:3;;3466:12:97;1220:14:3;625:4139:97;3511:32;;;;;;625:4139;;-1:-1:-1;;;3511:32:97;;625:4139;;;;;;;;;3511:32;;;;;;;;625:4139;1220:14:3;;3589:44:97;1220:14:3;3554:25:97;1220:14:3;3554:25:97;1220:14:3;3554:25:97;:::i;:::-;;1220:14:3;625:4139:97;;3589:23;625:4139;;;;1220:14:3;;;3589:44:97;:::i;:::-;1220:14:3;;625:4139:97;;3511:32;;;;:::i;:::-;625:4139;;3511:32;;;;625:4139;;;;3511:32;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;3511:32:97;625:4139;;;3466:35;;;;:::i;:::-;625:4139;;3466:35;;;;;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;3437:19:97;;;;:::i;:::-;625:4139;;3437:19;;;;625:4139;;;;;;;;-1:-1:-1;;625:4139:97;;;;;-1:-1:-1;;;;;625:4139:97;;;;;;;;;;;;;;1175:60;625:4139;;;;;;;;;;;;;;;;;-1:-1:-1;;625:4139:97;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3794:22;3715:49;625:4139;;3715:49;:::i;:::-;3794:22;;:::i;:::-;625:4139;;3827:19;;;;;;625:4139;;1220:14:3;;;3827:19:97;;625:4139;;;;;;;;;;;;;3827:19;;;;;625:4139;3827:19;;;;;;;;625:4139;1220:14:3;;;;;3856:12:97;1220:14:3;625:4139:97;3856:28;;;;;625:4139;;;;;;1220:14:3;;;;;;;3856:28:97;;;;;;625:4139;3856:28;;;;;;;;;;;625:4139;1220:14:3;;3856:12:97;1220:14:3;625:4139:97;3894:32;;;;;;625:4139;;-1:-1:-1;;;3894:32:97;;625:4139;;;;;;;;;3894:32;;;;;;;;625:4139;1220:14:3;;3974:46:97;1220:14:3;3937:27:97;1220:14:3;3937:27:97;1220:14:3;3937:27:97;:::i;:::-;;1220:14:3;625:4139:97;;3974:25;625:4139;;;;1220:14:3;;;3974:46:97;:::i;3894:32::-;;;;:::i;:::-;625:4139;;3894:32;;;;3856:28;;;;:::i;:::-;625:4139;;3856:28;;;;3827:19;;;;;;;;:::i;:::-;;;;;;;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;3827:19:97;625:4139;;;;;;;;;;;;;;;;;;;1242:30;625:4139;;;;;;;;;;;;;;;-1:-1:-1;;625:4139:97;;;;;-1:-1:-1;;;;;625:4139:97;;;;;;;;;;;;;;1111:58;625:4139;;;;;;;;;;;;;;;;;;-1:-1:-1;;625:4139:97;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;625:4139:97;;;;;-1:-1:-1;625:4139:97;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;625:4139:97;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;1278:32;625:4139;;;;;;;;;;;;;;;:::o;:::-;;;;1774:361;1883:3;625:4139;;;1878:8;1883:3;;;1909:35;;;:::i;:::-;-1:-1:-1;;;;;625:4139:97;;2046:18;2042:66;;1774:361;:::o;2042:66::-;2087:10;;2080:17;:::o;1874:159::-;1986:36;;;:::i;:::-;1975:47;1874:159;;625:4139;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;625:4139:97;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;3030:433:96;625:4139:97;;;;;;;;;;;;;;;;;3156:2:96;625:4139:97;;;;;;;;3139:20:96;625:4139:97;;3174:1:96;625:4139:97;;;;;;-1:-1:-1;;;;;;625:4139:97;-1:-1:-1;;625:4139:97;;;;3169:21:96;;625:4139:97;;;3169:21:96;625:4139:97;;-1:-1:-1;;625:4139:97;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;625:4139:97;;;;3305:10:96;;3174:1;;;3300:91;-1:-1:-1;;625:4139:97;;3432:21:96;;;-1:-1:-1;;;;;625:4139:97;;3030:433:96;-1:-1:-1;;;;3030:433:96:o;3334:3::-;625:4139:97;;3317:15:96;;;;;3373:7;;;;;:::i;:::-;625:4139:97;;;;;;;;;;;3353:27:96;;;;;;;:::i;:::-;;625:4139:97;;;;;;;;3305:10:96;;625:4139:97;-1:-1:-1;;;625:4139:97;;;;;;;;;-1:-1:-1;;;625:4139:97;;;;;;;;3317:15:96;;;625:4139:97;-1:-1:-1;;;625:4139:97;;;;;;;;2141:267;2251:16;625:4139;2290:11;;2286:59;;625:4139;;;;;;;;;;;;;2251:16;-1:-1:-1;625:4139:97;;-1:-1:-1;625:4139:97;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2141:267;:::o;625:4139::-;;;;;;;-1:-1:-1;625:4139:97;;;;;;;;;;;;2286:59;2317:17;;-1:-1:-1;2317:17:97;:::o;625:4139::-;;;;2624:16;625:4139;;;;;;;;;;;2624:16;-1:-1:-1;625:4139:97;;;-1:-1:-1;625:4139:97;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;-1:-1:-1;625:4139:97;;;;;;;;;;1220:14:3;;;625:4139:97;;;;;;1220:14:3;;;;;;;;;;;625:4139:97;1220:14:3;;;;;;;625:4139:97;;;;;;1220:14:3;;;:::o;:::-;625:4139:97;1220:14:3;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;625:4139:97;;;;;;;;;;;2662:557;2729:1;;2662:557;625:4139;;;2723:7;2719:44;;2781:49;2887:36;2781:49;;:::i;:::-;2887:36;;:::i;:::-;2950:6;;;;;;:::i;:::-;625:4139;2967:19;;;;;;625:4139;;;;1220:14:3;;;2967:19:97;;625:4139;;;;;;;;;;;;;2967:19;;;;;625:4139;2967:19;;;;;;;;2662:557;1220:14:3;;;;;2996:12:97;1220:14:3;625:4139:97;2996:43;;;;;1220:14:3;625:4139:97;;;;;;1220:14:3;;;;;;;;;2996:43:97;;625:4139;2967:19;2996:43;;1220:14:3;625:4139:97;1220:14:3;;;;:::i;:::-;2996:43:97;;;;;;;;;;;;;2662:557;1220:14:3;;2996:12:97;1220:14:3;625:4139:97;3049:32;;;;;625:4139;;2967:19;625:4139;;1220:14:3;;;;;;;3049:32:97;;;;;;;;;;2662:557;1220:14:3;3127:44:97;1220:14:3;8399:50:36;1220:14:3;;3092:25:97;1220:14:3;3092:25:97;1220:14:3;3092:25:97;:::i;:::-;;1220:14:3;625:4139:97;;;3127:23;625:4139;;;1220:14:3;;;3127:44:97;:::i;:::-;1220:14:3;;8399:50:36;:::i;:::-;;2662:557:97:o;3049:32::-;;;;;:::i;:::-;625:4139;;3049:32;;;625:4139;;;;3049:32;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;2996:43:97;;;;:::i;:::-;625:4139;;2996:43;;;;;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;2967:19:97;;;;;;;;:::i;:::-;;;;;;;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;2719:44:97;2746:7;;;;:::o;2680:190:13:-;2798:19;2680:190;2798:19;:::i;:::-;625:4139:97;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;625:4139:97;;;;;;9924:54:13;;679:42;625:4139:97;9924:54:13;;;;;;;;625:4139:97;9924:54:13;;;679:42;;;;;;:::i;:::-;;;;;625:4139:97;9924:54:13;625:4139:97;;9924:54:13;;;;;;:::i;:::-;9887:92;;679:42;9887:92;;;;;:::i;1411:1263::-;907:8:97;;625:4139;;;1847:8:13;;;;;1831:34;;2099:1;2094:6;;;:18;;;1411:1263;2090:38;;-1:-1:-1;;2142:20:13;;;;:46;;1411:1263;2138:82;;2320:7;;;-1:-1:-1;;;625:4139:97;;;;;;;1220:14:3;625:4139:97;;2422:8:13;;;2418:24;;-1:-1:-1;;;625:4139:97;;;;;;;2456:22:13;2316:352;1411:1263::o;625:4139:97:-;-1:-1:-1;;;625:4139:97;;;;;;;;2418:24:13;2432:10;;;;:::o;625:4139:97:-;-1:-1:-1;;;625:4139:97;;;;;;;;2316:352:13;;;;;;1411:1263::o;2138:82::-;625:4139:97;;;;;;;;;;2190:30:13;;:::o;2142:46::-;625:4139:97;;;1220:14:3;2166:22:13;2142:46;;2090:38;2114:14;;;;;;:::o;2094:18::-;2104:8;;1220:14:3;2104:8:13;2094:18;;679:42;;;;;;625:4139:97;;;;:::i;:::-;;;;;;;;:::i;:::-;;;679:42:13;-1:-1:-1;679:42:13;;;;:::o;:::-;625:4139:97;679:42:13;:::o;625:4139:97:-;3181:16;625:4139;;;;;;3181:16;-1:-1:-1;625:4139:97;;;;-1:-1:-1;625:4139:97;:::o;2215:404:36:-;-1:-1:-1;625:4139:97;;;4352:12:36;625:4139:97;;;;;1220:14:3;625:4139:97;;3181:16;625:4139;;;;;;;;;;;;4352:12:36;625:4139:97;;;3181:16;625:4139;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3181:16;625:4139;;;;4352:12:36;625:4139:97;;;1220:14:3;4352:12:36;2548:11;:::o;625:4139:97:-;-1:-1:-1;;;625:4139:97;;;;;;;;2294:319:36;2590:12;;;:::o;4033:545:97:-;4113:35;4033:545;4113:35;:::i;:::-;4183:1;;;-1:-1:-1;;;;;625:4139:97;;;4162:23;;4158:70;;625:4139;;;;4255:11;625:4139;;;4255:50;625:4139;;;;1220:14:3;;;;;;;4255:50:97;;;;;;625:4139;4255:50;;;;;;;;;;;4033:545;625:4139;;;4316:19;;;;;625:4139;;;;;1220:14:3;;;;;;;4316:19:97;;;4255:50;4316:19;;625:4139;4316:19;;;;;;;;4033:545;1220:14:3;;;;4345:12:97;1220:14:3;625:4139:97;4345:20;;;;;625:4139;;;4255:50;625:4139;;1220:14:3;;;;;;;4345:20:97;;;;;;;;;;;;;4033:545;1220:14:3;;4345:12:97;1220:14:3;625:4139:97;4375:32;;;;;625:4139;;4255:50;625:4139;;1220:14:3;;;;;;;4375:32:97;;;;;;;;;;4033:545;8720:53:36;;4517:27:97;8720:53:36;;;;;;;;:::i;:::-;;625:4139:97;;4462:25;4255:50;625:4139;;1220:14:3;4517:27:97;1220:14:3;4517:27:97;:::i;:::-;;1220:14:3;4033:545:97;:::o;4375:32::-;;;;;:::i;:::-;625:4139;;4375:32;;;;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;4345:20:97;;;;:::i;:::-;625:4139;;4345:20;;;;;625:4139;;1220:14:3;625:4139:97;;1220:14:3;;;;4316:19:97;;;;;;;:::i;:::-;;;;;4255:50;;;;;;;;;;;;;;;;;;:::i;:::-;;;625:4139;;;;;4255:50;;;;625:4139;;;;4255:50;;;-1:-1:-1;4255:50:97;;4158:70;-1:-1:-1;4201:16:97;;-1:-1:-1;;4201:16:97:o;2787:1388:36:-;-1:-1:-1;625:4139:97;;;2990:12:36;625:4139:97;;;;;1220:14:3;-1:-1:-1;;625:4139:97;3024:15:36;;;;-1:-1:-1;;625:4139:97;;;;;;;;;4418:16;625:4139;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;625:4139:97;;;4418:16;625:4139;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4418:16;625:4139;;;2990:12:36;625:4139:97;;;;;;2990:12:36;4104:11;:::o;625:4139:97:-;-1:-1:-1;;;625:4139:97;;;;;;;;3502:398:36;625:4139:97;3572:22:36;3694:26;3572:22;;:::i;:::-;625:4139:97;;;;;;3694:26:36;;;;:::i;625:4139:97:-;;;;;2990:12:36;625:4139:97;;;;;1220:14:3;3502:398:36;;;;;625:4139:97;-1:-1:-1;;;625:4139:97;;4418:16;625:4139;;;;;3020:1149:36;4146:12;;;:::o;4584:143:97:-;4658:26;4584:143;;;;;4658:26;;;;:::i;:::-;;625:4139;;;4584:143::o;625:4139::-;;;-1:-1:-1;;;625:4139:97;;;;;;;;;;;;-1:-1:-1;;;625:4139:97;;;;;;","linkReferences":{}},"methodIdentifiers":{"getRandomValidator(uint8)":"a64efe5d","getRandomValidatorFromSetOrZero(uint8)":"f2a2870b","ghost_stakedSum()":"b00053cf","ghost_unstakedSum()":"0a52ee96","ghost_validators_staked(address)":"a7818a48","ghost_validators_unstaked(address)":"c2da0512","join(uint8,uint256)":"bd0fa1b1","joinedValidators()":"a0758127","joinedValidatorsNumber()":"bc5683e1","leave(uint8)":"2cb54025","stake(uint8,uint256)":"dd752e55","unstake(uint8,uint256)":"b4545b9e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract SubnetActorDiamond\",\"name\":\"_subnetActor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"}],\"name\":\"getRandomValidator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"seed\",\"type\":\"uint8\"}],\"name\":\"getRandomValidatorFromSetOrZero\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ghost_stakedSum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ghost_unstakedSum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ghost_validators_staked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"ghost_validators_unstaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"joinedValidators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"joinedValidatorsNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"}],\"name\":\"leave\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getRandomValidator(uint8)\":{\"notice\":\"getRandomValidator returns a validator from the known validators with probability about 20 %, otherwise it returns a random validator address generated from id. It can't return address(0);\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/invariants/handlers/SubnetActorHandler.sol\":\"SubnetActorHandler\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]},\"test/invariants/handlers/SubnetActorHandler.sol\":{\"keccak256\":\"0xf8529975192ecfe6893cca1f1d001d9a1a4f1acaf53b049381ad00cda2f831c9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://286b1f6fee0f51c42246a734724410cdcb89e68b72e9cbe600b65c09397139a4\",\"dweb:/ipfs/QmcgtzMD25LuYXmZPepBj3aVEqZYt3DUr744BBHUCWdbgX\"]},\"test/mocks/SubnetActorManagerFacetMock.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract SubnetActorDiamond","name":"_subnetActor","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"}],"stateMutability":"view","type":"function","name":"getRandomValidator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint8","name":"seed","type":"uint8"}],"stateMutability":"view","type":"function","name":"getRandomValidatorFromSetOrZero","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ghost_stakedSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ghost_unstakedSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"ghost_validators_staked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"ghost_validators_unstaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"join"},{"inputs":[],"stateMutability":"view","type":"function","name":"joinedValidators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"joinedValidatorsNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"leave","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"stake"},{"inputs":[{"internalType":"uint8","name":"id","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getRandomValidator(uint8)":{"notice":"getRandomValidator returns a validator from the known validators with probability about 20 %, otherwise it returns a random validator address generated from id. It can't return address(0);"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/invariants/handlers/SubnetActorHandler.sol":"SubnetActorHandler"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"},"test/invariants/handlers/SubnetActorHandler.sol":{"keccak256":"0xf8529975192ecfe6893cca1f1d001d9a1a4f1acaf53b049381ad00cda2f831c9","urls":["bzz-raw://286b1f6fee0f51c42246a734724410cdcb89e68b72e9cbe600b65c09397139a4","dweb:/ipfs/QmcgtzMD25LuYXmZPepBj3aVEqZYt3DUr744BBHUCWdbgX"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorManagerFacetMock.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/invariants/handlers/SubnetActorHandler.sol","id":57510,"exportedSymbols":{"CommonBase":[3777],"ETH_SUPPLY":[57070],"EnumerableSet":[35815],"IMulticall3":[30545],"StdCheats":[8180],"StdCheatsSafe":[7501],"StdStorage":[9220],"StdUtils":[12691],"SubnetActorDiamond":[36615],"SubnetActorGetterFacet":[50887],"SubnetActorHandler":[57509],"SubnetActorManagerFacetMock":[57957],"TestUtils":[57051],"Vm":[14222],"VmSafe":[13782],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:4719:97","nodes":[{"id":57053,"nodeType":"PragmaDirective","src":"46:23:97","nodes":[],"literals":["solidity","0.8",".19"]},{"id":57054,"nodeType":"ImportDirective","src":"71:32:97","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"forge-std/StdUtils.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":12692,"symbolAliases":[],"unitAlias":""},{"id":57055,"nodeType":"ImportDirective","src":"104:33:97","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"forge-std/StdCheats.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":8181,"symbolAliases":[],"unitAlias":""},{"id":57057,"nodeType":"ImportDirective","src":"138:46:97","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"forge-std/Base.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":3793,"symbolAliases":[{"foreign":{"id":57056,"name":"CommonBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3777,"src":"146:10:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57059,"nodeType":"ImportDirective","src":"185:71:97","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../../../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":57058,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"193:18:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57061,"nodeType":"ImportDirective","src":"257:86:97","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../../../src/subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":57060,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"265:22:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57063,"nodeType":"ImportDirective","src":"344:88:97","nodes":[],"absolutePath":"test/mocks/SubnetActorManagerFacetMock.sol","file":"../../mocks/SubnetActorManagerFacetMock.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":57958,"symbolAliases":[{"foreign":{"id":57062,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57957,"src":"352:27:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57065,"nodeType":"ImportDirective","src":"433:54:97","nodes":[],"absolutePath":"test/helpers/TestUtils.sol","file":"../../helpers/TestUtils.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":57052,"symbolAliases":[{"foreign":{"id":57064,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"441:9:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57067,"nodeType":"ImportDirective","src":"488:85:97","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":57510,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":57066,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"496:13:97","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57070,"nodeType":"VariableDeclaration","src":"575:47:97","nodes":[],"constant":true,"mutability":"constant","name":"ETH_SUPPLY","nameLocation":"592:10:97","scope":57510,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57068,"name":"uint256","nodeType":"ElementaryTypeName","src":"575:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3132395f3539305f303030","id":57069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"605:17:97","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_129590000000000000000000000_by_1","typeString":"int_const 129590000000000000000000000"},"value":"129_590_000"},"visibility":"internal"},{"id":57509,"nodeType":"ContractDefinition","src":"625:4139:97","nodes":[{"id":57080,"nodeType":"UsingForDirective","src":"694:49:97","nodes":[],"global":false,"libraryName":{"id":57077,"name":"EnumerableSet","nameLocations":["700:13:97"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"700:13:97"},"typeName":{"id":57079,"nodeType":"UserDefinedTypeName","pathNode":{"id":57078,"name":"EnumerableSet.AddressSet","nameLocations":["718:13:97","732:10:97"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"718:24:97"},"referencedDeclaration":35528,"src":"718:24:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":57083,"nodeType":"VariableDeclaration","src":"749:48:97","nodes":[],"constant":false,"mutability":"mutable","name":"managerFacet","nameLocation":"785:12:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"},"typeName":{"id":57082,"nodeType":"UserDefinedTypeName","pathNode":{"id":57081,"name":"SubnetActorManagerFacetMock","nameLocations":["749:27:97"],"nodeType":"IdentifierPath","referencedDeclaration":57957,"src":"749:27:97"},"referencedDeclaration":57957,"src":"749:27:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"visibility":"private"},{"id":57086,"nodeType":"VariableDeclaration","src":"803:42:97","nodes":[],"constant":false,"mutability":"mutable","name":"getterFacet","nameLocation":"834:11:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"},"typeName":{"id":57085,"nodeType":"UserDefinedTypeName","pathNode":{"id":57084,"name":"SubnetActorGetterFacet","nameLocations":["803:22:97"],"nodeType":"IdentifierPath","referencedDeclaration":50887,"src":"803:22:97"},"referencedDeclaration":50887,"src":"803:22:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"visibility":"private"},{"id":57089,"nodeType":"VariableDeclaration","src":"852:63:97","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"877:27:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57087,"name":"uint256","nodeType":"ElementaryTypeName","src":"852:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":57088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"907:8:97","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000_by_1","typeString":"int_const 10000000000000000000"},"value":"10"},"visibility":"private"},{"id":57092,"nodeType":"VariableDeclaration","src":"1056:49:97","nodes":[],"constant":false,"mutability":"mutable","name":"ghost_validators","nameLocation":"1089:16:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":57091,"nodeType":"UserDefinedTypeName","pathNode":{"id":57090,"name":"EnumerableSet.AddressSet","nameLocations":["1056:13:97","1070:10:97"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"1056:24:97"},"referencedDeclaration":35528,"src":"1056:24:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"private"},{"id":57096,"nodeType":"VariableDeclaration","src":"1111:58:97","nodes":[],"constant":false,"functionSelector":"a7818a48","mutability":"mutable","name":"ghost_validators_staked","nameLocation":"1146:23:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":57095,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":57093,"name":"address","nodeType":"ElementaryTypeName","src":"1119:7:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1111:27:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":57094,"name":"uint256","nodeType":"ElementaryTypeName","src":"1130:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":57100,"nodeType":"VariableDeclaration","src":"1175:60:97","nodes":[],"constant":false,"functionSelector":"c2da0512","mutability":"mutable","name":"ghost_validators_unstaked","nameLocation":"1210:25:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":57099,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":57097,"name":"address","nodeType":"ElementaryTypeName","src":"1183:7:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1175:27:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":57098,"name":"uint256","nodeType":"ElementaryTypeName","src":"1194:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":57102,"nodeType":"VariableDeclaration","src":"1242:30:97","nodes":[],"constant":false,"functionSelector":"b00053cf","mutability":"mutable","name":"ghost_stakedSum","nameLocation":"1257:15:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57101,"name":"uint256","nodeType":"ElementaryTypeName","src":"1242:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":57104,"nodeType":"VariableDeclaration","src":"1278:32:97","nodes":[],"constant":false,"functionSelector":"0a52ee96","mutability":"mutable","name":"ghost_unstakedSum","nameLocation":"1293:17:97","scope":57509,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57103,"name":"uint256","nodeType":"ElementaryTypeName","src":"1278:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":57137,"nodeType":"FunctionDefinition","src":"1317:238:97","nodes":[],"body":{"id":57136,"nodeType":"Block","src":"1362:193:97","nodes":[],"statements":[{"expression":{"id":57117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57110,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"1372:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":57114,"name":"_subnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57107,"src":"1423:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":57113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1415:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57112,"name":"address","nodeType":"ElementaryTypeName","src":"1415:7:97","typeDescriptions":{}}},"id":57115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1415:21:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":57111,"name":"SubnetActorManagerFacetMock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57957,"src":"1387:27:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorManagerFacetMock_$57957_$","typeString":"type(contract SubnetActorManagerFacetMock)"}},"id":57116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1387:50:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"src":"1372:65:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57118,"nodeType":"ExpressionStatement","src":"1372:65:97"},{"expression":{"id":57126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57119,"name":"getterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57086,"src":"1447:11:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":57123,"name":"_subnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57107,"src":"1492:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}],"id":57122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1484:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57121,"name":"address","nodeType":"ElementaryTypeName","src":"1484:7:97","typeDescriptions":{}}},"id":57124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1484:21:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":57120,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1461:22:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":57125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1461:45:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"src":"1447:59:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":57127,"nodeType":"ExpressionStatement","src":"1447:59:97"},{"expression":{"arguments":[{"arguments":[{"id":57131,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1530:4:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorHandler_$57509","typeString":"contract SubnetActorHandler"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetActorHandler_$57509","typeString":"contract SubnetActorHandler"}],"id":57130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1522:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57129,"name":"address","nodeType":"ElementaryTypeName","src":"1522:7:97","typeDescriptions":{}}},"id":57132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1522:13:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57133,"name":"ETH_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57070,"src":"1537:10:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57128,"name":"deal","nodeType":"Identifier","overloadedDeclarations":[7789,7806,7929],"referencedDeclaration":7789,"src":"1517:4:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":57134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1517:31:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57135,"nodeType":"ExpressionStatement","src":"1517:31:97"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":57108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57107,"mutability":"mutable","name":"_subnetActor","nameLocation":"1348:12:97","nodeType":"VariableDeclaration","scope":57137,"src":"1329:31:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"},"typeName":{"id":57106,"nodeType":"UserDefinedTypeName","pathNode":{"id":57105,"name":"SubnetActorDiamond","nameLocations":["1329:18:97"],"nodeType":"IdentifierPath","referencedDeclaration":36615,"src":"1329:18:97"},"referencedDeclaration":36615,"src":"1329:18:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorDiamond_$36615","typeString":"contract SubnetActorDiamond"}},"visibility":"internal"}],"src":"1328:33:97"},"returnParameters":{"id":57109,"nodeType":"ParameterList","parameters":[],"src":"1362:0:97"},"scope":57509,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57182,"nodeType":"FunctionDefinition","src":"1774:361:97","nodes":[],"body":{"id":57181,"nodeType":"Block","src":"1842:293:97","nodes":[],"statements":[{"assignments":[57146],"declarations":[{"constant":false,"id":57146,"mutability":"mutable","name":"addr","nameLocation":"1860:4:97","nodeType":"VariableDeclaration","scope":57181,"src":"1852:12:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57145,"name":"address","nodeType":"ElementaryTypeName","src":"1852:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57147,"nodeType":"VariableDeclarationStatement","src":"1852:12:97"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":57150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57148,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57140,"src":"1878:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"323030","id":57149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1883:3:97","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"1878:8:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":57166,"nodeType":"Block","src":"1961:72:97","statements":[{"expression":{"id":57164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":57158,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57146,"src":"1976:4:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},null],"id":57159,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"1975:8:97","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$__$","typeString":"tuple(address,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57162,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57140,"src":"2019:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":57160,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"1986:9:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$57051_$","typeString":"type(library TestUtils)"}},"id":57161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1996:22:97","memberName":"deriveValidatorAddress","nodeType":"MemberAccess","referencedDeclaration":56774,"src":"1986:32:97","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint8_$returns$_t_address_$_t_bytes_memory_ptr_$","typeString":"function (uint8) pure returns (address,bytes memory)"}},"id":57163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1986:36:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_memory_ptr_$","typeString":"tuple(address,bytes memory)"}},"src":"1975:47:97","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57165,"nodeType":"ExpressionStatement","src":"1975:47:97"}]},"id":57167,"nodeType":"IfStatement","src":"1874:159:97","trueBody":{"id":57157,"nodeType":"Block","src":"1888:67:97","statements":[{"expression":{"id":57155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57151,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57146,"src":"1902:4:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57153,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57140,"src":"1941:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57152,"name":"getRandomValidatorFromSetOrZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57214,"src":"1909:31:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":57154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1909:35:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1902:42:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57156,"nodeType":"ExpressionStatement","src":"1902:42:97"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":57173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57168,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57146,"src":"2046:4:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":57171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2062:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":57170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2054:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57169,"name":"address","nodeType":"ElementaryTypeName","src":"2054:7:97","typeDescriptions":{}}},"id":57172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2054:10:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2046:18:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57178,"nodeType":"IfStatement","src":"2042:66:97","trueBody":{"id":57177,"nodeType":"Block","src":"2066:42:97","statements":[{"expression":{"expression":{"id":57174,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2087:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":57175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2091:6:97","memberName":"sender","nodeType":"MemberAccess","src":"2087:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57144,"id":57176,"nodeType":"Return","src":"2080:17:97"}]}},{"expression":{"id":57179,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57146,"src":"2124:4:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57144,"id":57180,"nodeType":"Return","src":"2117:11:97"}]},"documentation":{"id":57138,"nodeType":"StructuredDocumentation","src":"1561:208:97","text":"getRandomValidator returns a validator from the known validators with probability about 20 %,\n otherwise it returns a random validator address generated from id.\n It can't return address(0);"},"functionSelector":"a64efe5d","implemented":true,"kind":"function","modifiers":[],"name":"getRandomValidator","nameLocation":"1783:18:97","parameters":{"id":57141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57140,"mutability":"mutable","name":"id","nameLocation":"1808:2:97","nodeType":"VariableDeclaration","scope":57182,"src":"1802:8:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57139,"name":"uint8","nodeType":"ElementaryTypeName","src":"1802:5:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1801:10:97"},"returnParameters":{"id":57144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57182,"src":"1833:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57142,"name":"address","nodeType":"ElementaryTypeName","src":"1833:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1832:9:97"},"scope":57509,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57214,"nodeType":"FunctionDefinition","src":"2141:267:97","nodes":[],"body":{"id":57213,"nodeType":"Block","src":"2224:184:97","nodes":[],"statements":[{"assignments":[57190],"declarations":[{"constant":false,"id":57190,"mutability":"mutable","name":"length","nameLocation":"2242:6:97","nodeType":"VariableDeclaration","scope":57213,"src":"2234:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57189,"name":"uint256","nodeType":"ElementaryTypeName","src":"2234:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57194,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57191,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57092,"src":"2251:16:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2268:6:97","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":35624,"src":"2251:23:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":57193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2251:25:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2234:42:97"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57195,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57190,"src":"2290:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2300:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2290:11:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57204,"nodeType":"IfStatement","src":"2286:59:97","trueBody":{"id":57203,"nodeType":"Block","src":"2303:42:97","statements":[{"expression":{"arguments":[{"hexValue":"30","id":57200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2332:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":57199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2324:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57198,"name":"address","nodeType":"ElementaryTypeName","src":"2324:7:97","typeDescriptions":{}}},"id":57201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2324:10:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57188,"id":57202,"nodeType":"Return","src":"2317:17:97"}]}},{"expression":{"baseExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57205,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57092,"src":"2361:16:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2378:6:97","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2361:23:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":57207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2361:25:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57211,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57208,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57184,"src":"2387:4:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":57209,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57190,"src":"2394:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2387:13:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2361:40:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57188,"id":57212,"nodeType":"Return","src":"2354:47:97"}]},"functionSelector":"f2a2870b","implemented":true,"kind":"function","modifiers":[],"name":"getRandomValidatorFromSetOrZero","nameLocation":"2150:31:97","parameters":{"id":57185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57184,"mutability":"mutable","name":"seed","nameLocation":"2188:4:97","nodeType":"VariableDeclaration","scope":57214,"src":"2182:10:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57183,"name":"uint8","nodeType":"ElementaryTypeName","src":"2182:5:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2181:12:97"},"returnParameters":{"id":57188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57187,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57214,"src":"2215:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57186,"name":"address","nodeType":"ElementaryTypeName","src":"2215:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2214:9:97"},"scope":57509,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57225,"nodeType":"FunctionDefinition","src":"2414:120:97","nodes":[],"body":{"id":57224,"nodeType":"Block","src":"2478:56:97","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57219,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57092,"src":"2495:16:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2512:6:97","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2495:23:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":57221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2495:25:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2521:6:97","memberName":"length","nodeType":"MemberAccess","src":"2495:32:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":57218,"id":57223,"nodeType":"Return","src":"2488:39:97"}]},"functionSelector":"bc5683e1","implemented":true,"kind":"function","modifiers":[],"name":"joinedValidatorsNumber","nameLocation":"2423:22:97","parameters":{"id":57215,"nodeType":"ParameterList","parameters":[],"src":"2445:2:97"},"returnParameters":{"id":57218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57225,"src":"2469:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57216,"name":"uint256","nodeType":"ElementaryTypeName","src":"2469:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2468:9:97"},"scope":57509,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57236,"nodeType":"FunctionDefinition","src":"2540:116:97","nodes":[],"body":{"id":57235,"nodeType":"Block","src":"2607:49:97","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57231,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57092,"src":"2624:16:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2641:6:97","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2624:23:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":57233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2624:25:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":57230,"id":57234,"nodeType":"Return","src":"2617:32:97"}]},"functionSelector":"a0758127","implemented":true,"kind":"function","modifiers":[],"name":"joinedValidators","nameLocation":"2549:16:97","parameters":{"id":57226,"nodeType":"ParameterList","parameters":[],"src":"2565:2:97"},"returnParameters":{"id":57230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57229,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57236,"src":"2589:16:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":57227,"name":"address","nodeType":"ElementaryTypeName","src":"2589:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57228,"nodeType":"ArrayTypeName","src":"2589:9:97","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2588:18:97"},"scope":57509,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57309,"nodeType":"FunctionDefinition","src":"2662:557:97","nodes":[],"body":{"id":57308,"nodeType":"Block","src":"2709:510:97","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":57245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57243,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57238,"src":"2723:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2729:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2723:7:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57248,"nodeType":"IfStatement","src":"2719:44:97","trueBody":{"id":57247,"nodeType":"Block","src":"2732:31:97","statements":[{"functionReturnParameters":57242,"id":57246,"nodeType":"Return","src":"2746:7:97"}]}},{"expression":{"id":57257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57249,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57240,"src":"2772:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57251,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57240,"src":"2787:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":57252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2795:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":57253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2798:1:97","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":57254,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57089,"src":"2802:27:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2798:31:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57250,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"2781:5:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":57256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2781:49:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2772:58:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57258,"nodeType":"ExpressionStatement","src":"2772:58:97"},{"assignments":[57260,57262],"declarations":[{"constant":false,"id":57260,"mutability":"mutable","name":"validator","nameLocation":"2850:9:97","nodeType":"VariableDeclaration","scope":57308,"src":"2842:17:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57259,"name":"address","nodeType":"ElementaryTypeName","src":"2842:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57262,"mutability":"mutable","name":"publicKey","nameLocation":"2874:9:97","nodeType":"VariableDeclaration","scope":57308,"src":"2861:22:97","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57261,"name":"bytes","nodeType":"ElementaryTypeName","src":"2861:5:97","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57267,"initialValue":{"arguments":[{"id":57265,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57238,"src":"2920:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":57263,"name":"TestUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"2887:9:97","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TestUtils_$57051_$","typeString":"type(library TestUtils)"}},"id":57264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2897:22:97","memberName":"deriveValidatorAddress","nodeType":"MemberAccess","referencedDeclaration":56774,"src":"2887:32:97","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint8_$returns$_t_address_$_t_bytes_memory_ptr_$","typeString":"function (uint8) pure returns (address,bytes memory)"}},"id":57266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2887:36:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_memory_ptr_$","typeString":"tuple(address,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2841:82:97"},{"expression":{"arguments":[{"id":57269,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57260,"src":"2939:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57270,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57240,"src":"2950:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57268,"name":"_pay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57504,"src":"2934:4:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":57271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2934:23:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57272,"nodeType":"ExpressionStatement","src":"2934:23:97"},{"expression":{"arguments":[{"id":57276,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57260,"src":"2976:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57273,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"2967:2:97","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2970:5:97","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"2967:8:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2967:19:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57278,"nodeType":"ExpressionStatement","src":"2967:19:97"},{"expression":{"arguments":[{"id":57284,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57262,"src":"3029:9:97","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":57279,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"2996:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3009:4:97","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":51605,"src":"2996:17:97","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) payable external"}},"id":57283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":57282,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57240,"src":"3021:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2996:32:97","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (bytes memory) payable external"}},"id":57285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2996:43:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57286,"nodeType":"ExpressionStatement","src":"2996:43:97"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57287,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"3049:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3062:17:97","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":57956,"src":"3049:30:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":57290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3049:32:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57291,"nodeType":"ExpressionStatement","src":"3049:32:97"},{"expression":{"id":57294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57292,"name":"ghost_stakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57102,"src":"3092:15:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57293,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57240,"src":"3111:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3092:25:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57295,"nodeType":"ExpressionStatement","src":"3092:25:97"},{"expression":{"id":57300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57296,"name":"ghost_validators_staked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57096,"src":"3127:23:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57298,"indexExpression":{"id":57297,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57260,"src":"3151:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3127:34:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57299,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57240,"src":"3165:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3127:44:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57301,"nodeType":"ExpressionStatement","src":"3127:44:97"},{"expression":{"arguments":[{"id":57305,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57260,"src":"3202:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57302,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57092,"src":"3181:16:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3198:3:97","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"3181:20:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":57306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3181:31:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57307,"nodeType":"ExpressionStatement","src":"3181:31:97"}]},"functionSelector":"bd0fa1b1","implemented":true,"kind":"function","modifiers":[],"name":"join","nameLocation":"2671:4:97","parameters":{"id":57241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57238,"mutability":"mutable","name":"id","nameLocation":"2682:2:97","nodeType":"VariableDeclaration","scope":57309,"src":"2676:8:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57237,"name":"uint8","nodeType":"ElementaryTypeName","src":"2676:5:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57240,"mutability":"mutable","name":"amount","nameLocation":"2694:6:97","nodeType":"VariableDeclaration","scope":57309,"src":"2686:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57239,"name":"uint256","nodeType":"ElementaryTypeName","src":"2686:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2675:26:97"},"returnParameters":{"id":57242,"nodeType":"ParameterList","parameters":[],"src":"2709:0:97"},"scope":57509,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57366,"nodeType":"FunctionDefinition","src":"3225:415:97","nodes":[],"body":{"id":57365,"nodeType":"Block","src":"3273:367:97","nodes":[],"statements":[{"expression":{"id":57324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57316,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57313,"src":"3283:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57318,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57313,"src":"3298:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":57319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3306:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":57320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3309:1:97","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":57321,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57089,"src":"3313:27:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3309:31:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57317,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"3292:5:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":57323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3292:49:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3283:58:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57325,"nodeType":"ExpressionStatement","src":"3283:58:97"},{"assignments":[57327],"declarations":[{"constant":false,"id":57327,"mutability":"mutable","name":"validator","nameLocation":"3359:9:97","nodeType":"VariableDeclaration","scope":57365,"src":"3351:17:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57326,"name":"address","nodeType":"ElementaryTypeName","src":"3351:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57331,"initialValue":{"arguments":[{"id":57329,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57311,"src":"3390:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57328,"name":"getRandomValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57182,"src":"3371:18:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":57330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3371:22:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3351:42:97"},{"expression":{"arguments":[{"id":57333,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57327,"src":"3408:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57334,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57313,"src":"3419:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57332,"name":"_pay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57504,"src":"3403:4:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":57335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3403:23:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57336,"nodeType":"ExpressionStatement","src":"3403:23:97"},{"expression":{"arguments":[{"id":57340,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57327,"src":"3446:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57337,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3437:2:97","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3440:5:97","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"3437:8:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3437:19:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57342,"nodeType":"ExpressionStatement","src":"3437:19:97"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":57343,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"3466:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3479:5:97","memberName":"stake","nodeType":"MemberAccess","referencedDeclaration":51669,"src":"3466:18:97","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":57347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":57346,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57313,"src":"3492:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3466:33:97","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":57348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3466:35:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57349,"nodeType":"ExpressionStatement","src":"3466:35:97"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57350,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"3511:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3524:17:97","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":57956,"src":"3511:30:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":57353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3511:32:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57354,"nodeType":"ExpressionStatement","src":"3511:32:97"},{"expression":{"id":57357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57355,"name":"ghost_stakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57102,"src":"3554:15:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57356,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57313,"src":"3573:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3554:25:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57358,"nodeType":"ExpressionStatement","src":"3554:25:97"},{"expression":{"id":57363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57359,"name":"ghost_validators_staked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57096,"src":"3589:23:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57361,"indexExpression":{"id":57360,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57327,"src":"3613:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3589:34:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57362,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57313,"src":"3627:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3589:44:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57364,"nodeType":"ExpressionStatement","src":"3589:44:97"}]},"functionSelector":"dd752e55","implemented":true,"kind":"function","modifiers":[],"name":"stake","nameLocation":"3234:5:97","parameters":{"id":57314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57311,"mutability":"mutable","name":"id","nameLocation":"3246:2:97","nodeType":"VariableDeclaration","scope":57366,"src":"3240:8:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57310,"name":"uint8","nodeType":"ElementaryTypeName","src":"3240:5:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57313,"mutability":"mutable","name":"amount","nameLocation":"3258:6:97","nodeType":"VariableDeclaration","scope":57366,"src":"3250:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57312,"name":"uint256","nodeType":"ElementaryTypeName","src":"3250:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3239:26:97"},"returnParameters":{"id":57315,"nodeType":"ParameterList","parameters":[],"src":"3273:0:97"},"scope":57509,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57417,"nodeType":"FunctionDefinition","src":"3646:381:97","nodes":[],"body":{"id":57416,"nodeType":"Block","src":"3696:331:97","nodes":[],"statements":[{"expression":{"id":57381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57373,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57370,"src":"3706:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":57375,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57370,"src":"3721:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":57376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3729:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":57377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3732:1:97","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":57378,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57089,"src":"3736:27:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3732:31:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57374,"name":"bound","nodeType":"Identifier","overloadedDeclarations":[12061,12211],"referencedDeclaration":12061,"src":"3715:5:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":57380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3715:49:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3706:58:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57382,"nodeType":"ExpressionStatement","src":"3706:58:97"},{"assignments":[57384],"declarations":[{"constant":false,"id":57384,"mutability":"mutable","name":"validator","nameLocation":"3782:9:97","nodeType":"VariableDeclaration","scope":57416,"src":"3774:17:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57383,"name":"address","nodeType":"ElementaryTypeName","src":"3774:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57388,"initialValue":{"arguments":[{"id":57386,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57368,"src":"3813:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57385,"name":"getRandomValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57182,"src":"3794:18:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":57387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3794:22:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3774:42:97"},{"expression":{"arguments":[{"id":57392,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57384,"src":"3836:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57389,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"3827:2:97","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3830:5:97","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"3827:8:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3827:19:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57394,"nodeType":"ExpressionStatement","src":"3827:19:97"},{"expression":{"arguments":[{"id":57398,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57370,"src":"3877:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57395,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"3856:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3869:7:97","memberName":"unstake","nodeType":"MemberAccess","referencedDeclaration":51741,"src":"3856:20:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":57399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3856:28:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57400,"nodeType":"ExpressionStatement","src":"3856:28:97"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57401,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"3894:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3907:17:97","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":57956,"src":"3894:30:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":57404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3894:32:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57405,"nodeType":"ExpressionStatement","src":"3894:32:97"},{"expression":{"id":57408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57406,"name":"ghost_unstakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57104,"src":"3937:17:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57407,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57370,"src":"3958:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3937:27:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57409,"nodeType":"ExpressionStatement","src":"3937:27:97"},{"expression":{"id":57414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57410,"name":"ghost_validators_unstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57100,"src":"3974:25:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57412,"indexExpression":{"id":57411,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57384,"src":"4000:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3974:36:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57413,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57370,"src":"4014:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3974:46:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57415,"nodeType":"ExpressionStatement","src":"3974:46:97"}]},"functionSelector":"b4545b9e","implemented":true,"kind":"function","modifiers":[],"name":"unstake","nameLocation":"3655:7:97","parameters":{"id":57371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57368,"mutability":"mutable","name":"id","nameLocation":"3669:2:97","nodeType":"VariableDeclaration","scope":57417,"src":"3663:8:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57367,"name":"uint8","nodeType":"ElementaryTypeName","src":"3663:5:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57370,"mutability":"mutable","name":"amount","nameLocation":"3681:6:97","nodeType":"VariableDeclaration","scope":57417,"src":"3673:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57369,"name":"uint256","nodeType":"ElementaryTypeName","src":"3673:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3662:26:97"},"returnParameters":{"id":57372,"nodeType":"ParameterList","parameters":[],"src":"3696:0:97"},"scope":57509,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57482,"nodeType":"FunctionDefinition","src":"4033:545:97","nodes":[],"body":{"id":57481,"nodeType":"Block","src":"4083:495:97","nodes":[],"statements":[{"assignments":[57425],"declarations":[{"constant":false,"id":57425,"mutability":"mutable","name":"validator","nameLocation":"4101:9:97","nodeType":"VariableDeclaration","scope":57481,"src":"4093:17:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57424,"name":"address","nodeType":"ElementaryTypeName","src":"4093:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57429,"initialValue":{"arguments":[{"id":57427,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57419,"src":"4145:2:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57426,"name":"getRandomValidatorFromSetOrZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57214,"src":"4113:31:97","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint8_$returns$_t_address_$","typeString":"function (uint8) view returns (address)"}},"id":57428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4113:35:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4093:55:97"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":57435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57430,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57425,"src":"4162:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":57433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4183:1:97","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":57432,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4175:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57431,"name":"address","nodeType":"ElementaryTypeName","src":"4175:7:97","typeDescriptions":{}}},"id":57434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4175:10:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4162:23:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57439,"nodeType":"IfStatement","src":"4158:70:97","trueBody":{"id":57438,"nodeType":"Block","src":"4187:41:97","statements":[{"expression":{"id":57436,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57425,"src":"4208:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57423,"id":57437,"nodeType":"Return","src":"4201:16:97"}]}},{"assignments":[57441],"declarations":[{"constant":false,"id":57441,"mutability":"mutable","name":"amount","nameLocation":"4246:6:97","nodeType":"VariableDeclaration","scope":57481,"src":"4238:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57440,"name":"uint256","nodeType":"ElementaryTypeName","src":"4238:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57446,"initialValue":{"arguments":[{"id":57444,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57425,"src":"4295:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57442,"name":"getterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57086,"src":"4255:11:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":57443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4267:27:97","memberName":"getTotalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":50615,"src":"4255:39:97","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":57445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4255:50:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4238:67:97"},{"expression":{"arguments":[{"id":57450,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57425,"src":"4325:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57447,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"4316:2:97","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4319:5:97","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"4316:8:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4316:19:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57452,"nodeType":"ExpressionStatement","src":"4316:19:97"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57453,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"4345:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4358:5:97","memberName":"leave","nodeType":"MemberAccess","referencedDeclaration":51861,"src":"4345:18:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":57456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4345:20:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57457,"nodeType":"ExpressionStatement","src":"4345:20:97"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57458,"name":"managerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57083,"src":"4375:12:97","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorManagerFacetMock_$57957","typeString":"contract SubnetActorManagerFacetMock"}},"id":57460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4388:17:97","memberName":"confirmNextChange","nodeType":"MemberAccess","referencedDeclaration":57956,"src":"4375:30:97","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":57461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4375:32:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57462,"nodeType":"ExpressionStatement","src":"4375:32:97"},{"expression":{"arguments":[{"id":57466,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57425,"src":"4442:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57463,"name":"ghost_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57092,"src":"4418:16:97","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4435:6:97","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":35582,"src":"4418:23:97","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":57467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4418:34:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57468,"nodeType":"ExpressionStatement","src":"4418:34:97"},{"expression":{"id":57473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57469,"name":"ghost_validators_unstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57100,"src":"4462:25:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57471,"indexExpression":{"id":57470,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57425,"src":"4488:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4462:36:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57472,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57441,"src":"4501:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4462:45:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57474,"nodeType":"ExpressionStatement","src":"4462:45:97"},{"expression":{"id":57477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57475,"name":"ghost_unstakedSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57104,"src":"4517:17:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":57476,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57441,"src":"4538:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4517:27:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57478,"nodeType":"ExpressionStatement","src":"4517:27:97"},{"expression":{"id":57479,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57425,"src":"4562:9:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57423,"id":57480,"nodeType":"Return","src":"4555:16:97"}]},"functionSelector":"2cb54025","implemented":true,"kind":"function","modifiers":[],"name":"leave","nameLocation":"4042:5:97","parameters":{"id":57420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57419,"mutability":"mutable","name":"id","nameLocation":"4054:2:97","nodeType":"VariableDeclaration","scope":57482,"src":"4048:8:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57418,"name":"uint8","nodeType":"ElementaryTypeName","src":"4048:5:97","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4047:10:97"},"returnParameters":{"id":57423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57482,"src":"4074:7:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57421,"name":"address","nodeType":"ElementaryTypeName","src":"4074:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4073:9:97"},"scope":57509,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57504,"nodeType":"FunctionDefinition","src":"4584:143:97","nodes":[],"body":{"id":57503,"nodeType":"Block","src":"4635:92:97","nodes":[],"statements":[{"assignments":[57490,null],"declarations":[{"constant":false,"id":57490,"mutability":"mutable","name":"s","nameLocation":"4651:1:97","nodeType":"VariableDeclaration","scope":57503,"src":"4646:6:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57489,"name":"bool","nodeType":"ElementaryTypeName","src":"4646:4:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":57497,"initialValue":{"arguments":[{"hexValue":"","id":57495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4681:2:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":57491,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57484,"src":"4658:2:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4661:4:97","memberName":"call","nodeType":"MemberAccess","src":"4658:7:97","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":57494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":57493,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57486,"src":"4673:6:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4658:22:97","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":57496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4658:26:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4645:39:97"},{"expression":{"arguments":[{"id":57499,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57490,"src":"4702:1:97","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7061792829206661696c6564","id":57500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4705:14:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_708a605926d72cc62b9c45ef20f4a9137befa0fe0d1bddbd83963293deff2e9a","typeString":"literal_string \"pay() failed\""},"value":"pay() failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_708a605926d72cc62b9c45ef20f4a9137befa0fe0d1bddbd83963293deff2e9a","typeString":"literal_string \"pay() failed\""}],"id":57498,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4694:7:97","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4694:26:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57502,"nodeType":"ExpressionStatement","src":"4694:26:97"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_pay","nameLocation":"4593:4:97","parameters":{"id":57487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57484,"mutability":"mutable","name":"to","nameLocation":"4606:2:97","nodeType":"VariableDeclaration","scope":57504,"src":"4598:10:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57483,"name":"address","nodeType":"ElementaryTypeName","src":"4598:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57486,"mutability":"mutable","name":"amount","nameLocation":"4618:6:97","nodeType":"VariableDeclaration","scope":57504,"src":"4610:14:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57485,"name":"uint256","nodeType":"ElementaryTypeName","src":"4610:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4597:28:97"},"returnParameters":{"id":57488,"nodeType":"ParameterList","parameters":[],"src":"4635:0:97"},"scope":57509,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57508,"nodeType":"FunctionDefinition","src":"4733:29:97","nodes":[],"body":{"id":57507,"nodeType":"Block","src":"4760:2:97","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":57505,"nodeType":"ParameterList","parameters":[],"src":"4740:2:97"},"returnParameters":{"id":57506,"nodeType":"ParameterList","parameters":[],"src":"4760:0:97"},"scope":57509,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":57071,"name":"CommonBase","nameLocations":["656:10:97"],"nodeType":"IdentifierPath","referencedDeclaration":3777,"src":"656:10:97"},"id":57072,"nodeType":"InheritanceSpecifier","src":"656:10:97"},{"baseName":{"id":57073,"name":"StdCheats","nameLocations":["668:9:97"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"668:9:97"},"id":57074,"nodeType":"InheritanceSpecifier","src":"668:9:97"},{"baseName":{"id":57075,"name":"StdUtils","nameLocations":["679:8:97"],"nodeType":"IdentifierPath","referencedDeclaration":12691,"src":"679:8:97"},"id":57076,"nodeType":"InheritanceSpecifier","src":"679:8:97"}],"canonicalName":"SubnetActorHandler","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[57509,12691,8180,7501,3777],"name":"SubnetActorHandler","nameLocation":"634:18:97","scope":57510,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":97} \ No newline at end of file diff --git a/.out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json b/.out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json index 8b4046ddd..f0b91c0f5 100644 --- a/.out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json +++ b/.out/SubnetActorManagerFacet.sol/SubnetActorManagerFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addBootstrapNode","inputs":[{"name":"netAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardForRelayer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeRewardToRelayers","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"reward","type":"uint256","internalType":"uint256"},{"name":"kind","type":"uint8","internalType":"enum QuorumObjKind"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"join","inputs":[{"name":"publicKey","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leave","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"preFund","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"preRelease","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFederatedPower","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"publicKeys","type":"bytes[]","internalType":"bytes[]"},{"name":"powers","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateActiveQuorumSignatures","inputs":[{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"view"},{"type":"event","name":"BottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BottomUpCheckpointSubmitted","inputs":[{"name":"checkpoint","type":"tuple","indexed":false,"internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NextBottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubnetBootstrapped","inputs":[{"name":"","type":"tuple[]","indexed":false,"internalType":"struct Validator[]","components":[{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"addr","type":"address","internalType":"address"},{"name":"metadata","type":"bytes","internalType":"bytes"}]}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"BatchWithNoMessages","inputs":[]},{"type":"error","name":"CannotConfirmFutureChanges","inputs":[]},{"type":"error","name":"CannotReleaseZero","inputs":[]},{"type":"error","name":"CollateralIsZero","inputs":[]},{"type":"error","name":"DuplicatedGenesisValidator","inputs":[]},{"type":"error","name":"EmptyAddress","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidBatchEpoch","inputs":[]},{"type":"error","name":"InvalidCheckpointEpoch","inputs":[]},{"type":"error","name":"InvalidFederationPayload","inputs":[]},{"type":"error","name":"InvalidPublicKeyLength","inputs":[]},{"type":"error","name":"InvalidSignatureErr","inputs":[{"name":"","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"MaxMsgsPerBatchExceeded","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NoCollateralToWithdraw","inputs":[]},{"type":"error","name":"NotAllValidatorsHaveLeft","inputs":[]},{"type":"error","name":"NotEnoughBalance","inputs":[]},{"type":"error","name":"NotEnoughCollateral","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotEnoughGenesisValidators","inputs":[]},{"type":"error","name":"NotGateway","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"NotOwnerOfPublicKey","inputs":[]},{"type":"error","name":"NotStakedBefore","inputs":[]},{"type":"error","name":"NotValidator","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"SubnetAlreadyBootstrapped","inputs":[]},{"type":"error","name":"SubnetAlreadyKilled","inputs":[]},{"type":"error","name":"WithdrawExceedingCollateral","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657614d9b908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146118405750806310fd4261146116c957806326811936146114b65780632e17de78146114895780633a4b66f1146114655780633f4ba83a146113ed57806341c0e1b51461135c5780634c860af6146113085780634e71d92d146111745780635c975abb146111445780636170b16214610d5a57806366783c9b14610c795780638456cb5914610c11578063b9ee2bb914610812578063cc2dc2b914610792578063d66d9e1914610747578063da5d09ee146101a55763ed7c4da1146100e757600080fd5b346101a257806003193601126101a257600080516020614d4683398151915260018154146101905780600183925561011d611b3d565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b1561018c5782602491604051928380926382985e0b60e01b82523360048301525af490811561018157839161016a575b50505580f35b61017390611922565b61017e578138610164565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101a25760603660031901126101a2576004356001600160401b038111610743576101d69036906004016119c8565b906024356001600160401b03811161073f576101f69036906004016119c8565b916044356001600160401b03811161073b576102169036906004016119c8565b9094610220613a7b565b610228611af8565b60ff601354166003811015610727576001036106f7578181036106e5578481036106e55760125460081c60ff161561050f57865b81811061026d575050505050505080f35b61028161027b828888614cb4565b90614b91565b6001600160a01b0361029c610297848689614cf5565b611d08565b166001600160a01b03909116036104fd576103066102be610297838588614cf5565b6102c9838989614cb4565b6102d785888d969496614cf5565b356102f26040519586936040602086015260608501916137f5565b90604083015203601f198101845283611950565b6001600160401b03601c541660405161031e81611935565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161035181611e8e565b61035a81611e8e565b60ff80198454169116178255518051906001600160401b0382116104e757610392826103896001860154611eae565b60018601611fa1565b602090601f8311600114610460579282600080516020614d0683398151915297959360029360019b9a9896600092610455575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361040b826120c6565b166001600160401b0319601c541617601c5561044660405193849360038552888060a01b031660208501526080806040860152840190613b19565b9060608301520390a10161025c565b0151905038806103c5565b906001840160005260206000209160005b601f19851681106104cf57508360029360019b9a9896938c93600080516020614d068339815191529b9997601f198116106104b6575b505050811b01898201556103db565b015160001960f88460031b161c191690553880806104a7565b91926020600181928685015181550194019201610471565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9492909391865b8681106105e6575050505050506001600160401b03600c541610156105d45761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061057281613b3e565b0390a1600e5460025482916001600160a01b0316803b1561018c578290602460405180948193637903ab2760e11b83528160048401525af180156105c9576105b957505080f35b6105c290611922565b6101a25780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b6105f461027b828686614cb4565b6001600160a01b039190828061060e610297858d89614cf5565b169116036104fd5761062c610627610297838b87614cf5565b612e61565b6106d3576106cd600192610658610647610297858d89614cf5565b610652858a8a614cb4565b91613beb565b61067b610669610297858d89614cf5565b610674858c8c614cf5565b35906125b7565b6106c361068c610297858d89614cf5565b610697858c8c614cf5565b35926106a4868b8b614cb4565b919092604051956106b487611935565b8652166020850152369161198c565b6040820152613cc8565b01610516565b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b610723610702613a9c565b60405163015538b160e01b8152602060048201529182916024830190613b19565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101a257806003193601126101a257600080516020614d4683398151915260018154146101905780600183925561077e611b3d565b610786613a7b565b61078e6144bb565b5580f35b50346101a25760603660031901126101a2576001600160401b0360043581811161080e573660238201121561080e576107d5903690602481600401359101611a23565b60443591821161080e573660238301121561080e5761080161080b923690602481600401359101611a79565b9060243590614856565b80f35b8280fd5b50346101a257600319606036820112610743576001600160401b03600435116107435760806004356004019160043536030112610743576024356001600160401b03811161080e576108689036906004016119c8565b91906044356001600160401b038111610c0d576108899036906004016119c8565b91610892611b3d565b60055494600b54956108a48782611b68565b60246004350135141580610bfd575b610beb57604051906108eb60208301836108cd8a83611c57565b03936108e1601f1995868101835282611950565b5190209882611b68565b6004356024013503610ae85750509161090e6109169261091c9697943691611a23565b933691611a79565b91614856565b602460043501358252816020526040822090803560421960043536030181121561073f576004350191600483016001600160401b0361095a82611ca8565b16936001600160401b031994858454161783556109806001926024848601930190611cbc565b91906001600160401b038311610ad457600160401b8311610ad4578154838355808410610ab9575b509087959493929190865260208620865b838110610a92575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b036109f586611ca8565b16908254161790556024600435013582526022602052610a19604083203390611e09565b5060043560240135600555600e546001600160a01b0316803b1561080e576040516347dc9b4f60e01b81529183918391829084908290610a5c9060048301611c57565b03925af180156105c957610a7e575b5050610a7961080b91611ca8565b6120de565b610a8790611922565b610743578138610a6b565b84959697506020610aa68495969394611d08565b848301558a9897969594019291016109b9565b82895260208920610ace918101908501611cf1565b386109a8565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610b0057505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610bca575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610b9f915082611950565b51902014610baa5780f35b6024600435013581526022602052610bc6604082203390611e09565b5080f35b82546001600160a01b03168552889550602090940193918101918101610b5e565b60405163fae4eadb60e01b8152600490fd5b50806024600435013514156108b3565b8480fd5b50346101a257806003193601126101a257610c2a611af8565b610c32611b3d565b600080516020614d26833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101a25760203660031901126101a257600435600080516020614d46833981519152600181541461019057600181558115610d485760ff60125460081c16610d3657338352600360205281604084205410610d245761078e8392338452600360205260408420610cec82825461264b565b9055610cfa8160025461264b565b6002553384526003602052604084205415610d16575b33613a01565b610d1f33614bcd565b610d10565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101a2576004356001600160401b0381116107435736602382011215610743576001600160401b0381600401351161074357366024826004013583010111610743576001600080516020614d468339815191525414610190576001600080516020614d4683398151915255610dd6611b3d565b610dde613a7b565b60ff60125460081c1680611137575b341561112557604182600401350361111357610e10826004013560248401614b91565b336001600160a01b03909116036104fd57610f2257806024610e389260040135910133613beb565b610e423433613e3c565b80601454600a54811015610e68575b50505b80600080516020614d468339815191525580f35b61ffff601654166001600160401b03600c541611610e515761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c959360405180610ebd81613b3e565b0390a160018060a01b03600e541690610ed96002548092611b68565b91803b15610f1d57602484926040519485938492637903ab2760e11b845260048401525af180156105c95715610e5157610f1290611922565b6101a2578038610e51565b505050fd5b610f343682600401356024840161198c565b6001600160401b03601c54169060405190610f4e82611935565b600282526020820190815233604083015282600052601d6020526040600020908251610f7981611e8e565b610f8281611e8e565b60ff80198454169116178255518051906001600160401b0382116104e757610fb1826103896001860154611eae565b602090601f831160011461108b579282600080516020614d068339815191529795936002936110689896600092611080575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361102c826120c6565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016137f5565b9060608301520390a161107b3433613f77565b610e54565b015190503880610fe3565b906001840160005260206000209160005b601f19851681106110fb575083600293611068989693600193600080516020614d068339815191529b9997601f198116106110e2575b505050811b016001820155610ffb565b015160001960f88460031b161c191690553880806110d2565b9192602060018192868501518155019401920161109c565b6040516318dca5e960e21b8152600490fd5b604051635a78c58160e11b8152600490fd5b61113f61417c565b610ded565b50346101a257806003193601126101a257602060ff600080516020614d2683398151915254166040519015158152f35b50346101a257806003193601126101a257600190600080516020614d4683398151915282815414610190578281556111aa611b3d565b336000908152601f602052604090209283549061ffff908183169283156112f657829060101c16918391808795818a01915b611270575b50505086611252937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611259575b61123a8133613a01565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f60205260409020859055611230565b9091939483811696828810156112ed578760005260208091858252604060002060405161129c81611907565b898254928383520154938491015243106112e257859493889688946112c386958a95611b68565b9c600052526000826040822082815501550116966000190116946111dc565b9850505094936111e1565b965094936111e1565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101a257604435600281101561074357611329611b3d565b600e546001600160a01b0316330361134a5761080b906024356004356146b3565b60405163e7e601db60e01b8152600490fd5b50346101a257806003193601126101a257611375613a7b565b61ffff61138b81601954168260165416906125a1565b166113db576012805462ff0000191662010000179055600e5481906001600160a01b0316803b1561017e578180916004604051809481936341c0e1b560e01b83525af180156105c9576105b95750f35b604051636b62255160e11b8152600490fd5b50346101a257806003193601126101a257611406611af8565b600080516020614d26833981519152805460ff8116156114535760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101a257611479611b3d565b611481613a7b565b61080b614191565b50346101a25760203660031901126101a2576114a3611b3d565b6114ab613a7b565b61080b6004356141eb565b50346101a257600319606036820112610743576004356001600160401b039182821161073f5760608260040191833603011261073f57602435838111610c0d576115049036906004016119c8565b91906044358581116116c55761151e9036906004016119c8565b916024860135966006549687891061167a576044019061153e8287611cbc565b919050600954168091116116b3576115568287611cbc565b905014158061168c575b61167a5761156e9085611cbc565b905015611668578794604051602081019061159b8161158d898561387f565b03601f198101835282611950565b5190209688036115cc57505050505050600754146115b7575080f35b81526023602052610bc6604082203390611e09565b6115e6939261090e88969893610916939a989a3691611a23565b8060206040516115f581611907565b84815201528160065560075582526023602052611616604083203390611e09565b50600e546001600160a01b031690813b1561018c57829161164d91604051948580948193630bed761560e01b83526004830161387f565b03925af180156105c95761165f575080f35b61080b90611922565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b50600854801561169f5788061515611560565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101a257602090816003193601126101a2576001600160401b039160043583811161080e573660238201121561080e5761170f90369060248160040135910161198c565b92611718611b3d565b3383526017825261ffff60408420541615611828578351156118165733835260248252604083209184519182116118025761175d826117578554611eae565b85611fa1565b80601f831160011461179e5750839482939492611793575b50508160011b916000199060031b1c19161790555b610bc633611da0565b015190503880611775565b90601f198316958486528286209286905b8882106117ea575050836001959697106117d1575b505050811b01905561178a565b015160001960f88460031b161c191690553880806117c4565b806001859682949686015181550195019301906117af565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b9050816003193601126107435734156118f8575060ff60125460081c16610d3657338152600360205260408120541561189f575b33815260036020526040812061188b348254611b68565b905561189934600254611b68565b60025580f35b600454600160401b8110156118e4576118c18160016118df9301600455611d1c565b81546001600160a01b0360039290921b91821b19163390911b179055565b611874565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757604052565b606081019081106001600160401b038211176104e757604052565b90601f801991011681019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757601f01601f191660200190565b92919261199882611971565b916119a66040519384611950565b8294818452818301116119c3578281602093846000960137010152565b600080fd5b9181601f840112156119c3578235916001600160401b0383116119c3576020808501948460051b0101116119c357565b6001600160401b0381116104e75760051b60200190565b35906001600160a01b03821682036119c357565b9291611a2e826119f8565b91611a3c6040519384611950565b829481845260208094019160051b81019283116119c357905b828210611a625750505050565b838091611a6e84611a0f565b815201910190611a55565b92919092611a86846119f8565b91611a946040519384611950565b829480845260208094019060051b8301928284116119c35780915b848310611abe57505050505050565b82356001600160401b0381116119c357820184601f820112156119c3578691611aed868385809535910161198c565b815201920191611aaf565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611b2b57565b6040516330cd747160e01b8152600490fd5b60ff600080516020614d268339815191525416611b5657565b60405163d93c066560e01b8152600490fd5b91908201809211611b7557565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156119c3570190565b35906001600160401b03821682036119c357565b9035601e19823603018112156119c35701602081359101916001600160401b0382116119c3578160051b360383136119c357565b60408201916001600160401b03611bfd83611b9f565b1681526060611c1160209384810190611bb3565b839195604086839601525201929160005b828110611c30575050505090565b909192938280600192838060a01b03611c4889611a0f565b16815201950193929101611c22565b6020815260806001600160401b03611ca16060611c87611c778780611b8b565b85602088015260a0870190611be7565b956020810135604087015260408101358287015201611b9f565b1691015290565b356001600160401b03811681036119c35790565b903590601e19813603018212156119c357018035906001600160401b0382116119c357602001918160051b360383136119c357565b818110611cfc575050565b60008155600101611cf1565b356001600160a01b03811681036119c35790565b600454811015611d535760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611d535760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611e0457602554600160401b8110156118e4579082611df0611dd984600160409601602555611d69565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b91906001830160009082825280602052604082205415600014611e8857845494600160401b861015611e745760018601808255861015611e6057836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60041115611e9857565b634e487b7160e01b600052602160045260246000fd5b90600182811c92168015611ede575b6020831014611ec857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611ebd565b9060009291805491611ef983611eae565b918282526001938481169081600014611f5b5750600114611f1b575b50505050565b90919394506000526020928360002092846000945b838610611f47575050505001019038808080611f15565b805485870183015294019385908201611f30565b9294505050602093945060ff191683830152151560051b01019038808080611f15565b60005b838110611f915750506000910152565b8181015183820152602001611f81565b9190601f8111611fb057505050565b611fdc926000526020600020906020601f840160051c83019310611fde575b601f0160051c0190611cf1565b565b9091508190611fcf565b908082146120c257611ffa8154611eae565b906001600160401b0382116104e757819061201f826120198654611eae565b86611fa1565b600090601f83116001146120565760009261204b575b50508160011b916000199060031b1c1916179055565b015490503880612035565b81526020808220858352818320935090601f1985169083905b8282106120a9575050908460019594939210612090575b505050811b019055565b015460001960f88460031b161c19169055388080612086565b849581929585015481556001809101960194019061206f565b5050565b9060016001600160401b0380931601918211611b7557565b601c546001600160401b03828116929080831684106121095760405163040aaa0560e11b8152600490fd5b808360401c168410611f155780604093841c165b848282161115612184575050916020916121577f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946120c6565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b816121a2826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166121c781611e8e565b80850361223957505060036121f860016121fe94959697019260018060a01b03166000526015602052604060002090565b01611fe8565b61221b816001600160401b0316600052601d602052604060002090565b91600090818455600193612230858201612658565b0155011661211d565b9091945061224681611e8e565b6003918183036123e457505087519361226e85612267816001809a01611ee8565b0386611950565b84518501916020928a878583019203126119c357838701518981116119c35787019681603f890112156119c35787858d990151926122b76122ae85611971565b9a519a8b611950565b838a528d84830101116119c3578c926122d59184888c019101611f7e565b015192816122f58460018060a01b03166000526015602052604060002090565b01918751918a83116123cf578a98612317846123118754611eae565b87611fa1565b81601f851160011461235c575061234c9798999a8493928492600095612351575b50501b92600019911b1c19161790556125b7565b6121fe565b015193503880612338565b91601f9b9493919b1984169b866000528c84600020946000915b82106123b45750508461234c9a9b9c9d1061239a575b50505050811b0190556125b7565b01519060f884600019921b161c191690553880808061238c565b8383015186558f9d509487019492830192908101908e612376565b60246000634e487b7160e01b81526041600452fd5b9150919388959395519361240085612267816001809501611ee8565b602080868051810103126119c35781818c9701519561241e81611e8e565b0361254357849061242f82856126a1565b601e5461243c9043611b68565b9287519061244982611907565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061248c916125a1565b169c60009d8e5282870188528d2092518355519101556124ab9061258e565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561080e578291602483928a5195869384926345f5448560e01b845260048401525af190811561253857509084939291612529575b506121fe565b61253290611922565b38612523565b8751903d90823e3d90fd5b50508293509161255391926125fb565b600e541690813b156119c3578651916316989f6f60e21b83528260048160009485945af19081156125385750908493929161252957506121fe565b90600161ffff80931601918211611b7557565b91909161ffff80809416911601918211611b7557565b9060018060a01b0382166000526015602052604060002081815491558181146000146125e257505050565b8111156125f257611fdc91612730565b611fdc91612a76565b90611fdc9161264360018060a01b0382169283600052601560205261262881600160406000200154611b68565b93600052601560205283600160406000200155601454611b68565b601455612730565b91908203918211611b7557565b6126628154611eae565b908161266c575050565b81601f6000931160011461267e575055565b90808391825261269d601f60208420940160051c840160018501611cf1565b5555565b9061270e6127169260018060a01b03811690600082815260156020526126ce85600160408420015461264b565b9281526015602052604081206002810184815481159081612727575b501561271b575090826003926127099483558160018401555501612658565b612a76565b60145461264b565b601455565b92505060010155612a76565b905015386126ea565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612961578360135460081c1684601654161061292d57612775613583565b60019283825260188652828a832054168861278f82612e61565b106128a757508152601a85528389822054166127fe5750505050506127f97f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946127d983612dec565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b612807866135d6565b9261281187612e61565b935b8186821611612869575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016127f9565b808561288886617fff8f95871c1694858852601b8c5287205416612e61565b10156128a1579061289a839282613735565b9050612813565b5061281d565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506127f995601a916128e261327b565b83525220541661291f575b6128f684613206565b6128ff83612dec565b516001600160a01b03928316815292909116602083015281906040820190565b6129288461302b565b6128ed565b50505050506127f97f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946127d983613206565b97929150612972859497969561359f565b9761297c85612e61565b976129868a613197565b8460165416905b858116828111612a3f5782811015612a235750806129ad6129b39261258e565b90613533565b9b909b5b8b11156129d6576129c8908c61369c565b6129d18b613197565b61298d565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016127f9565b849c919c5260188352612a3a858886205416612e61565b6129b7565b505050505050506127f991929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506127d9565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612cb0578082526017835287868320541615612c9f578415612bf75750612ac38361359f565b97612acd84612e61565b985b6001808a83161115612be85781617fff911c1690818452601885528a612af9848a87205416612e61565b1115612b0e57612b09908261369c565b612acf565b505091939597509193955b6019541615612be057612b2a613583565b60018252601883528581818420541692601b612b4585612e61565b95612b4e613591565b600183525220541691612b6083612e61565b11612ba757505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016127f9565b915091506127f97ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612bd861327b565b6128ed612ec4565b505050505050565b50509193959750919395612b19565b829450612c2b7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996133c4565b8651908152a160195416612c3f5750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612c6d613591565b6001835252205416612c93612c8182612e61565b92612c8a612ec4565b6127d983613206565b0390a138808080611f15565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612db1575061fffe9193612ccd866135d6565b93612cd787612e61565b9480966001958692831b168160195416925b612d3d575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016127f9565b818116838111612dab578d9084811015612d8f57505080612d60612d669261258e565b906131ae565b9890985b881015612d8a57612d7b9089613735565b612d8488613197565b86612ce9565b612cee565b8652601b8552852054909890612da6908716612e61565b612d6a565b50612cee565b94915050612de59194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9596925061302b565b51908152a1565b611fdc90612e5b61ffff91612e04836019541661258e565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955612e61565b90613142565b60ff601354166003811015611e9857600103612e92576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611b7557565b61ffff80601954169081156130195790600190612ee38183111561367f565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291612f7d91908a612f6e83612eb0565b169060195416176019556135fb565b848252808652612f91848484205416612e61565b95859860028160195416995b612faf575b5050505050505050505050565b8181168a8111613013578a811015612ff8575080612d60612fcf9261258e565b9a909a5b891015612ff357612fe4908b613735565b612fed8a613197565b87612f9d565b612fa2565b859b919b5283835261300e878787205416612e61565b612fd3565b50612fa2565b6040516340d9b01160e01b8152600490fd5b613034906135d6565b61ffff908160195416916130488383613735565b8061305284612eb0565b1661ffff196019541617601955613068836135fb565b80821680931461313d579161fffe91600091808352601b9060209382855260018060a01b03926040926130a86130a2868686205416612e61565b87613142565b82528086526130bb848484205416612e61565b9585986001988997881b168160195416995b6130de575050505050505050505050565b8181168a8111613013578a811015613122575080612d606130fe9261258e565b9a909a5b891015612ff357613113908b613735565b61311c8a613197565b876130cd565b859b919b52838352613138878787205416612e61565b613102565b505050565b9190915b60018061ffff831611156131915781617fff911c16908361317c6000848152601b602052604060018060a01b0391205416612e61565b10156131915761318c9082613735565b613146565b50509050565b60011b906201fffe61fffe831692168203611b7557565b91909161ffff92838216600052601b6020526131f160018060a01b036131da8160406000205416612e61565b958316600052601b60205260406000205416612e61565b908185106131ff5750509190565b9350919050565b611fdc9061327561ffff9161321e836016541661258e565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655612e61565b906134e4565b61ffff8060165416908115613019579060019061329a8183111561367f565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161333491908a61332583612eb0565b1690601654161760165561363d565b848252808652613348848484205416612e61565b95859860028160165416995b613365575050505050505050505050565b8181168a8111613013578a8110156133a95750806129ad6133859261258e565b9a909a5b891115612ff35761339a908b61369c565b6133a38a613197565b87613354565b859b919b528383526133bf878787205416612e61565b613389565b6133cd9061359f565b9061ffff908160165416906133e2828561369c565b826133ec83612eb0565b1661ffff1960165416176016556134028261363d565b8284168092146134de5760009291929183835260189260209484865260018060a01b039160409161344061343a858585205416612e61565b8a6134e4565b8152858752613453838383205416612e61565b9561345d89613197565b978560165416985b8681168a81116134d0578a8110156134b55750806129ad6134859261258e565b9a909a5b8911156134a85761349a908b61369c565b6134a38a613197565b613465565b5050505050505092505050565b849b919b528282526134cb868686205416612e61565b613489565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156131915781617fff911c16908361351e60008481526018602052604060018060a01b0391205416612e61565b11156131915761352e908261369c565b6134e8565b919061ffff808416600052601860205261357460018060a01b0361355d8160406000205416612e61565b928416600052601860205260406000205416612e61565b93848211156131ff5750509190565b61ffff601654161561301957565b61ffff601954161561301957565b6001600160a01b031660009081526017602052604090205461ffff169081156135c457565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156135c457565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561368657565b634e487b7160e01b600052600160045260246000fd5b6136c161ffff8080601654169316936136b78486111561367f565b169182111561367f565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61375061ffff8080601954169316936136b78486111561367f565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156119c35701602081359101916001600160401b0382116119c35781360383136119c357565b908060209392818452848401376000828201840152601f01601f1916010190565b61383f6138346138268380611b8b565b604085526040850190611be7565b916020810190611b8b565b91602081830391015281359160ff83168093036119c35761386c60409161387c94845260208101906137c4565b91909281602082015201916137f5565b90565b602080825261388e8380611b8b565b60609182818501526138a560809283860190611be7565b6138bc604096838101358888015287810190611bb3565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b8887106138f757505050505050505050505090565b909192939495969798999a828282030187526139138c85611b8b565b90813560de19833603018112156119c3578782528201918a90888e6001600160401b0361398a61397a61396761395e61394c8b80611b8b565b60e080988c01526101208b0190613816565b978a018a611b8b565b96603f1997888a830301868b0152613816565b928d8901358d8901528801611b9f565b169060a091828701528a8701359263ffffffff60e01b84168094036119c3578f956139c16139d19460c096878b01528a018a6137c4565b92909189850301908901526137f5565b9401356101008401520135908115158092036119c3578a01529a88019998979660010195870194939291906138e2565b814710613a63576000918291829182916001600160a01b03165af13d15613a5e573d613a2c81611971565b90613a3a6040519283611950565b8152600060203d92013e5b15613a4c57565b604051630a12f52160e11b8152600490fd5b613a45565b60405163cd78605960e01b8152306004820152602490fd5b60ff60125460101c16613a8a57565b60405163248c8efb60e11b8152600490fd5b60405190608082018281106001600160401b038211176104e7576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613b3281518092818552858086019101611f7e565b601f01601f1916010190565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613b9a57505050505050505090565b909192939495856003613bd9839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01611ee8565b9a019401940192969594939190613b88565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104e757613c2c81613c268454611eae565b84611fa1565b6000601f8211600114613c655781929394600092613c5a5750508160011b916000199060031b1c1916179055565b013590503880612035565b601f198216948382526020918281209281905b888210613cb057505083600195969710613c9657505050811b019055565b0135600019600384901b60f8161c19169055388080612086565b80600184968294958701358155019501920190613c78565b60018054600160401b8110156104e757818101808355811015611d5357600360009183835202918351837fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6015560407fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf87fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf785019460209560018060a01b0387890151166001600160601b0360a01b82541617905501940151918251926001600160401b0384116118e457613da684613da08854611eae565b88611fa1565b8491601f8511600114613dde579394508492919083613dd3575b50501b916000199060031b1c1916179055565b015192503880613dc0565b86815285812093958591601f198316915b88838310613e225750505010613e0957505050811b019055565b015160001960f88460031b161c19169055388080612086565b858701518855909601959485019487935090810190613def565b90613e5190613e4b8184613f50565b826125fb565b60ff60125460081c1615613e625750565b6000908160019283549084815b838110613efe575b5050505015613e84575050565b613ef76106c3611fdc93613eaa8460018060a01b03166000526015602052604060002090565b0154926003613ecb8260018060a01b03166000526015602052604060002090565b019060405194613eda86611935565b85526001600160a01b031660208501526040519283918290611ee8565b0382611950565b818352600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614613f4257018590613e6f565b509250505038808481613e77565b60018060a01b03166000526015602052613f736002604060002001918254611b68565b9055565b91906040519281602085015260208452613f9084611907565b6001600160401b03601c54169360405194613faa86611935565b60008652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151613fde81611e8e565b613fe781611e8e565b60ff80198a54169116178855519687516001600160401b0381116104e75761401f816140166001850154611eae565b60018501611fa1565b6020601f82116001146140f1576140d8949282600080516020614d06833981519152979593600293611fdc9c9d6000926140e6575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361409d826120c6565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613b19565b9060608301520390a1613f50565b015190503880614054565b6001830160005260206000209960005b601f1984168110614164575092600183611fdc9b9c6002946140d89997600080516020614d068339815191529b9997601f1981161061414b575b505050811b01600182015561406c565b015160001960f88460031b161c1916905538808061413b565b828201518c556001909b019a60209283019201614101565b60ff601354166003811015611e98576106f757565b61419961417c565b34156111255733600090815260156020526040902060020154156141d95760ff60125460081c16156141cf57611fdc3433613f77565b611fdc3433613e3c565b60405163528fc16560e01b8152600490fd5b6141f361417c565b801561425a57336000908152601560205260409020600201548015611828578110156142495760ff60125460081c161561423157611fdc90336142bf565b8061423f611fdc923361426c565b610d1081336126a1565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106142ad576142999161264b565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526142d884611907565b6001600160401b03601c541693604051946142f286611935565b60018652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161432681611e8e565b61432f81611e8e565b60ff80198a54169116178855519687516001600160401b0381116104e75761435e816140166001850154611eae565b6020601f821160011461443057614417949282600080516020614d06833981519152979593600293611fdc9c9d600092614425575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036143dc826120c6565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613b19565b9060608301520390a161426c565b015190503880614393565b6001830160005260206000209960005b601f19841681106144a3575092600183611fdc9b9c6002946144179997600080516020614d068339815191529b9997601f1981161061448a575b505050811b0160018201556143ab565b015160001960f88460031b161c1916905538808061447a565b828201518c556001909b019a60209283019201614440565b60ff60125460081c166145a8575b336000908152601560205260409020600201548015611828576144eb336145b5565b50600090338252602460205281604081206145068154611eae565b8061456b575b50505060ff60125460081c161561452857611fdc9150336142bf565b6040611fdc923381526003602052205480614549575b5061423f813361426c565b806145596145659260025461264b565b600255610d1033614bcd565b3861453e565b82601f8211600114614583575050555b81388061450c565b90918082526145a1601f60208420940160051c840160018501611cf1565b555561457b565b6145b061417c565b6144c9565b600081815260266020526040812054909190801561469a576000199080820181811161468657602554908382019182116146725780820361463e575b505050602554801561462a5781019061460982611d69565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b61465c61464d611dd993611d69565b90549060031b1c928392611d69565b90558452602660205260408420553880806145f1565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611d535760209160051b010190565b919091821561313d576040908151906020938483018381106001600160401b038211176104e7578452600092839052600281101561484257806147a35750600b546146fd9161264b565b8152602283528181208251808286829454938481520190855286852092855b8882821061478d5750505061473392500382611950565b928351948515612be057858110612be05785900493825b86811061475a5750505050505050565b6001906001600160a01b0361476f828561469f565b5116855260218452858520614785888254611b68565b90550161474a565b855484526001958601958795509301920161471c565b8460018592146000146147f357606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614863836119f8565b9360409461487386519182611950565b848152601f19614882866119f8565b0194602095368784013760005b81811061495957505060009461ffff8060165416600192839182945b614908575b505050505060ff600e5460a01c1694858102958187041490151715611b755760646148dc9504916149d0565b90156148e6575050565b6006811015611e985760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614951576000908152601885522054849392918691859161494791614941906001600160a01b0316612e61565b90611b68565b9b011694936148ab565b5050986148b0565b6001600160a01b038061496c838761469f565b51166000526017885261ffff896000205416156149ac579061499b600192614994838861469f565b5116612e61565b6149a5828661469f565b520161488f565b88906149ba6024938761469f565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614ab85782518514801590614aad575b614aa0579392919085945b848610614a18575050505050501015614a1057600090600590565b600190600090565b909192939495614a32614a2b888461469f565b5184614ac5565b50614a3c81611e8e565b614a8f576001600160a01b0380614a538a8861469f565b5116911603614a7f57614a73600191614a6c898861469f565b5190611b68565b960194939291906149f5565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b5083518514156149ea565b5050505050905090600290565b8151919060418303614af657614aef92506020820151906060604084015193015160001a90614b01565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614b8557926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614b795780516001600160a01b03811615614b7057918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b90614b9e6041821461367f565b806001116119c357614bb9913691600019019060010161198c565b80516020909101206001600160a01b031690565b60049081549160005b838110614be35750505050565b614bec81611d1c565b90546003916001600160a01b039190831b1c811685821614614c12575050600101614bd6565b929350939060001991828101908111614c9f5790614c4384614c36614c6294611d1c565b905490891b1c1691611d1c565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015614c8a570192614c7584611d1c565b81939154921b1b191690555538808080611f15565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b9190811015611d535760051b81013590601e19813603018212156119c35701908135916001600160401b0383116119c35760200182360381136119c3579190565b9190811015611d535760051b019056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a2646970667358221220f77b469ad41d890021da53a2a7426b41d10e67ba4805753f9ed9c3e881e183eb64736f6c63430008130033","sourceMap":"1687:23964:78:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":315,"length":20}]}}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146118405750806310fd4261146116c957806326811936146114b65780632e17de78146114895780633a4b66f1146114655780633f4ba83a146113ed57806341c0e1b51461135c5780634c860af6146113085780634e71d92d146111745780635c975abb146111445780636170b16214610d5a57806366783c9b14610c795780638456cb5914610c11578063b9ee2bb914610812578063cc2dc2b914610792578063d66d9e1914610747578063da5d09ee146101a55763ed7c4da1146100e757600080fd5b346101a257806003193601126101a257600080516020614d4683398151915260018154146101905780600183925561011d611b3d565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b1561018c5782602491604051928380926382985e0b60e01b82523360048301525af490811561018157839161016a575b50505580f35b61017390611922565b61017e578138610164565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101a25760603660031901126101a2576004356001600160401b038111610743576101d69036906004016119c8565b906024356001600160401b03811161073f576101f69036906004016119c8565b916044356001600160401b03811161073b576102169036906004016119c8565b9094610220613a7b565b610228611af8565b60ff601354166003811015610727576001036106f7578181036106e5578481036106e55760125460081c60ff161561050f57865b81811061026d575050505050505080f35b61028161027b828888614cb4565b90614b91565b6001600160a01b0361029c610297848689614cf5565b611d08565b166001600160a01b03909116036104fd576103066102be610297838588614cf5565b6102c9838989614cb4565b6102d785888d969496614cf5565b356102f26040519586936040602086015260608501916137f5565b90604083015203601f198101845283611950565b6001600160401b03601c541660405161031e81611935565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161035181611e8e565b61035a81611e8e565b60ff80198454169116178255518051906001600160401b0382116104e757610392826103896001860154611eae565b60018601611fa1565b602090601f8311600114610460579282600080516020614d0683398151915297959360029360019b9a9896600092610455575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361040b826120c6565b166001600160401b0319601c541617601c5561044660405193849360038552888060a01b031660208501526080806040860152840190613b19565b9060608301520390a10161025c565b0151905038806103c5565b906001840160005260206000209160005b601f19851681106104cf57508360029360019b9a9896938c93600080516020614d068339815191529b9997601f198116106104b6575b505050811b01898201556103db565b015160001960f88460031b161c191690553880806104a7565b91926020600181928685015181550194019201610471565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9492909391865b8681106105e6575050505050506001600160401b03600c541610156105d45761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061057281613b3e565b0390a1600e5460025482916001600160a01b0316803b1561018c578290602460405180948193637903ab2760e11b83528160048401525af180156105c9576105b957505080f35b6105c290611922565b6101a25780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b6105f461027b828686614cb4565b6001600160a01b039190828061060e610297858d89614cf5565b169116036104fd5761062c610627610297838b87614cf5565b612e61565b6106d3576106cd600192610658610647610297858d89614cf5565b610652858a8a614cb4565b91613beb565b61067b610669610297858d89614cf5565b610674858c8c614cf5565b35906125b7565b6106c361068c610297858d89614cf5565b610697858c8c614cf5565b35926106a4868b8b614cb4565b919092604051956106b487611935565b8652166020850152369161198c565b6040820152613cc8565b01610516565b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b610723610702613a9c565b60405163015538b160e01b8152602060048201529182916024830190613b19565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101a257806003193601126101a257600080516020614d4683398151915260018154146101905780600183925561077e611b3d565b610786613a7b565b61078e6144bb565b5580f35b50346101a25760603660031901126101a2576001600160401b0360043581811161080e573660238201121561080e576107d5903690602481600401359101611a23565b60443591821161080e573660238301121561080e5761080161080b923690602481600401359101611a79565b9060243590614856565b80f35b8280fd5b50346101a257600319606036820112610743576001600160401b03600435116107435760806004356004019160043536030112610743576024356001600160401b03811161080e576108689036906004016119c8565b91906044356001600160401b038111610c0d576108899036906004016119c8565b91610892611b3d565b60055494600b54956108a48782611b68565b60246004350135141580610bfd575b610beb57604051906108eb60208301836108cd8a83611c57565b03936108e1601f1995868101835282611950565b5190209882611b68565b6004356024013503610ae85750509161090e6109169261091c9697943691611a23565b933691611a79565b91614856565b602460043501358252816020526040822090803560421960043536030181121561073f576004350191600483016001600160401b0361095a82611ca8565b16936001600160401b031994858454161783556109806001926024848601930190611cbc565b91906001600160401b038311610ad457600160401b8311610ad4578154838355808410610ab9575b509087959493929190865260208620865b838110610a92575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b036109f586611ca8565b16908254161790556024600435013582526022602052610a19604083203390611e09565b5060043560240135600555600e546001600160a01b0316803b1561080e576040516347dc9b4f60e01b81529183918391829084908290610a5c9060048301611c57565b03925af180156105c957610a7e575b5050610a7961080b91611ca8565b6120de565b610a8790611922565b610743578138610a6b565b84959697506020610aa68495969394611d08565b848301558a9897969594019291016109b9565b82895260208920610ace918101908501611cf1565b386109a8565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610b0057505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610bca575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610b9f915082611950565b51902014610baa5780f35b6024600435013581526022602052610bc6604082203390611e09565b5080f35b82546001600160a01b03168552889550602090940193918101918101610b5e565b60405163fae4eadb60e01b8152600490fd5b50806024600435013514156108b3565b8480fd5b50346101a257806003193601126101a257610c2a611af8565b610c32611b3d565b600080516020614d26833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101a25760203660031901126101a257600435600080516020614d46833981519152600181541461019057600181558115610d485760ff60125460081c16610d3657338352600360205281604084205410610d245761078e8392338452600360205260408420610cec82825461264b565b9055610cfa8160025461264b565b6002553384526003602052604084205415610d16575b33613a01565b610d1f33614bcd565b610d10565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101a2576004356001600160401b0381116107435736602382011215610743576001600160401b0381600401351161074357366024826004013583010111610743576001600080516020614d468339815191525414610190576001600080516020614d4683398151915255610dd6611b3d565b610dde613a7b565b60ff60125460081c1680611137575b341561112557604182600401350361111357610e10826004013560248401614b91565b336001600160a01b03909116036104fd57610f2257806024610e389260040135910133613beb565b610e423433613e3c565b80601454600a54811015610e68575b50505b80600080516020614d468339815191525580f35b61ffff601654166001600160401b03600c541611610e515761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c959360405180610ebd81613b3e565b0390a160018060a01b03600e541690610ed96002548092611b68565b91803b15610f1d57602484926040519485938492637903ab2760e11b845260048401525af180156105c95715610e5157610f1290611922565b6101a2578038610e51565b505050fd5b610f343682600401356024840161198c565b6001600160401b03601c54169060405190610f4e82611935565b600282526020820190815233604083015282600052601d6020526040600020908251610f7981611e8e565b610f8281611e8e565b60ff80198454169116178255518051906001600160401b0382116104e757610fb1826103896001860154611eae565b602090601f831160011461108b579282600080516020614d068339815191529795936002936110689896600092611080575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361102c826120c6565b166001600160401b0319601c541617601c55604051928392600284523360208501526080604085015260808401906024816004013591016137f5565b9060608301520390a161107b3433613f77565b610e54565b015190503880610fe3565b906001840160005260206000209160005b601f19851681106110fb575083600293611068989693600193600080516020614d068339815191529b9997601f198116106110e2575b505050811b016001820155610ffb565b015160001960f88460031b161c191690553880806110d2565b9192602060018192868501518155019401920161109c565b6040516318dca5e960e21b8152600490fd5b604051635a78c58160e11b8152600490fd5b61113f61417c565b610ded565b50346101a257806003193601126101a257602060ff600080516020614d2683398151915254166040519015158152f35b50346101a257806003193601126101a257600190600080516020614d4683398151915282815414610190578281556111aa611b3d565b336000908152601f602052604090209283549061ffff908183169283156112f657829060101c16918391808795818a01915b611270575b50505086611252937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611259575b61123a8133613a01565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f60205260409020859055611230565b9091939483811696828810156112ed578760005260208091858252604060002060405161129c81611907565b898254928383520154938491015243106112e257859493889688946112c386958a95611b68565b9c600052526000826040822082815501550116966000190116946111dc565b9850505094936111e1565b965094936111e1565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101a257604435600281101561074357611329611b3d565b600e546001600160a01b0316330361134a5761080b906024356004356146b3565b60405163e7e601db60e01b8152600490fd5b50346101a257806003193601126101a257611375613a7b565b61ffff61138b81601954168260165416906125a1565b166113db576012805462ff0000191662010000179055600e5481906001600160a01b0316803b1561017e578180916004604051809481936341c0e1b560e01b83525af180156105c9576105b95750f35b604051636b62255160e11b8152600490fd5b50346101a257806003193601126101a257611406611af8565b600080516020614d26833981519152805460ff8116156114535760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101a257611479611b3d565b611481613a7b565b61080b614191565b50346101a25760203660031901126101a2576114a3611b3d565b6114ab613a7b565b61080b6004356141eb565b50346101a257600319606036820112610743576004356001600160401b039182821161073f5760608260040191833603011261073f57602435838111610c0d576115049036906004016119c8565b91906044358581116116c55761151e9036906004016119c8565b916024860135966006549687891061167a576044019061153e8287611cbc565b919050600954168091116116b3576115568287611cbc565b905014158061168c575b61167a5761156e9085611cbc565b905015611668578794604051602081019061159b8161158d898561387f565b03601f198101835282611950565b5190209688036115cc57505050505050600754146115b7575080f35b81526023602052610bc6604082203390611e09565b6115e6939261090e88969893610916939a989a3691611a23565b8060206040516115f581611907565b84815201528160065560075582526023602052611616604083203390611e09565b50600e546001600160a01b031690813b1561018c57829161164d91604051948580948193630bed761560e01b83526004830161387f565b03925af180156105c95761165f575080f35b61080b90611922565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b50600854801561169f5788061515611560565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101a257602090816003193601126101a2576001600160401b039160043583811161080e573660238201121561080e5761170f90369060248160040135910161198c565b92611718611b3d565b3383526017825261ffff60408420541615611828578351156118165733835260248252604083209184519182116118025761175d826117578554611eae565b85611fa1565b80601f831160011461179e5750839482939492611793575b50508160011b916000199060031b1c19161790555b610bc633611da0565b015190503880611775565b90601f198316958486528286209286905b8882106117ea575050836001959697106117d1575b505050811b01905561178a565b015160001960f88460031b161c191690553880806117c4565b806001859682949686015181550195019301906117af565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b9050816003193601126107435734156118f8575060ff60125460081c16610d3657338152600360205260408120541561189f575b33815260036020526040812061188b348254611b68565b905561189934600254611b68565b60025580f35b600454600160401b8110156118e4576118c18160016118df9301600455611d1c565b81546001600160a01b0360039290921b91821b19163390911b179055565b611874565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757604052565b606081019081106001600160401b038211176104e757604052565b90601f801991011681019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757601f01601f191660200190565b92919261199882611971565b916119a66040519384611950565b8294818452818301116119c3578281602093846000960137010152565b600080fd5b9181601f840112156119c3578235916001600160401b0383116119c3576020808501948460051b0101116119c357565b6001600160401b0381116104e75760051b60200190565b35906001600160a01b03821682036119c357565b9291611a2e826119f8565b91611a3c6040519384611950565b829481845260208094019160051b81019283116119c357905b828210611a625750505050565b838091611a6e84611a0f565b815201910190611a55565b92919092611a86846119f8565b91611a946040519384611950565b829480845260208094019060051b8301928284116119c35780915b848310611abe57505050505050565b82356001600160401b0381116119c357820184601f820112156119c3578691611aed868385809535910161198c565b815201920191611aaf565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611b2b57565b6040516330cd747160e01b8152600490fd5b60ff600080516020614d268339815191525416611b5657565b60405163d93c066560e01b8152600490fd5b91908201809211611b7557565b634e487b7160e01b600052601160045260246000fd5b9035603e19823603018112156119c3570190565b35906001600160401b03821682036119c357565b9035601e19823603018112156119c35701602081359101916001600160401b0382116119c3578160051b360383136119c357565b60408201916001600160401b03611bfd83611b9f565b1681526060611c1160209384810190611bb3565b839195604086839601525201929160005b828110611c30575050505090565b909192938280600192838060a01b03611c4889611a0f565b16815201950193929101611c22565b6020815260806001600160401b03611ca16060611c87611c778780611b8b565b85602088015260a0870190611be7565b956020810135604087015260408101358287015201611b9f565b1691015290565b356001600160401b03811681036119c35790565b903590601e19813603018212156119c357018035906001600160401b0382116119c357602001918160051b360383136119c357565b818110611cfc575050565b60008155600101611cf1565b356001600160a01b03811681036119c35790565b600454811015611d535760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611d535760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611e0457602554600160401b8110156118e4579082611df0611dd984600160409601602555611d69565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b91906001830160009082825280602052604082205415600014611e8857845494600160401b861015611e745760018601808255861015611e6057836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b60041115611e9857565b634e487b7160e01b600052602160045260246000fd5b90600182811c92168015611ede575b6020831014611ec857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611ebd565b9060009291805491611ef983611eae565b918282526001938481169081600014611f5b5750600114611f1b575b50505050565b90919394506000526020928360002092846000945b838610611f47575050505001019038808080611f15565b805485870183015294019385908201611f30565b9294505050602093945060ff191683830152151560051b01019038808080611f15565b60005b838110611f915750506000910152565b8181015183820152602001611f81565b9190601f8111611fb057505050565b611fdc926000526020600020906020601f840160051c83019310611fde575b601f0160051c0190611cf1565b565b9091508190611fcf565b908082146120c257611ffa8154611eae565b906001600160401b0382116104e757819061201f826120198654611eae565b86611fa1565b600090601f83116001146120565760009261204b575b50508160011b916000199060031b1c1916179055565b015490503880612035565b81526020808220858352818320935090601f1985169083905b8282106120a9575050908460019594939210612090575b505050811b019055565b015460001960f88460031b161c19169055388080612086565b849581929585015481556001809101960194019061206f565b5050565b9060016001600160401b0380931601918211611b7557565b601c546001600160401b03828116929080831684106121095760405163040aaa0560e11b8152600490fd5b808360401c168410611f155780604093841c165b848282161115612184575050916020916121577f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf63946120c6565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b816121a2826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166121c781611e8e565b80850361223957505060036121f860016121fe94959697019260018060a01b03166000526015602052604060002090565b01611fe8565b61221b816001600160401b0316600052601d602052604060002090565b91600090818455600193612230858201612658565b0155011661211d565b9091945061224681611e8e565b6003918183036123e457505087519361226e85612267816001809a01611ee8565b0386611950565b84518501916020928a878583019203126119c357838701518981116119c35787019681603f890112156119c35787858d990151926122b76122ae85611971565b9a519a8b611950565b838a528d84830101116119c3578c926122d59184888c019101611f7e565b015192816122f58460018060a01b03166000526015602052604060002090565b01918751918a83116123cf578a98612317846123118754611eae565b87611fa1565b81601f851160011461235c575061234c9798999a8493928492600095612351575b50501b92600019911b1c19161790556125b7565b6121fe565b015193503880612338565b91601f9b9493919b1984169b866000528c84600020946000915b82106123b45750508461234c9a9b9c9d1061239a575b50505050811b0190556125b7565b01519060f884600019921b161c191690553880808061238c565b8383015186558f9d509487019492830192908101908e612376565b60246000634e487b7160e01b81526041600452fd5b9150919388959395519361240085612267816001809501611ee8565b602080868051810103126119c35781818c9701519561241e81611e8e565b0361254357849061242f82856126a1565b601e5461243c9043611b68565b9287519061244982611907565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061248c916125a1565b169c60009d8e5282870188528d2092518355519101556124ab9061258e565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b1561080e578291602483928a5195869384926345f5448560e01b845260048401525af190811561253857509084939291612529575b506121fe565b61253290611922565b38612523565b8751903d90823e3d90fd5b50508293509161255391926125fb565b600e541690813b156119c3578651916316989f6f60e21b83528260048160009485945af19081156125385750908493929161252957506121fe565b90600161ffff80931601918211611b7557565b91909161ffff80809416911601918211611b7557565b9060018060a01b0382166000526015602052604060002081815491558181146000146125e257505050565b8111156125f257611fdc91612730565b611fdc91612a76565b90611fdc9161264360018060a01b0382169283600052601560205261262881600160406000200154611b68565b93600052601560205283600160406000200155601454611b68565b601455612730565b91908203918211611b7557565b6126628154611eae565b908161266c575050565b81601f6000931160011461267e575055565b90808391825261269d601f60208420940160051c840160018501611cf1565b5555565b9061270e6127169260018060a01b03811690600082815260156020526126ce85600160408420015461264b565b9281526015602052604081206002810184815481159081612727575b501561271b575090826003926127099483558160018401555501612658565b612a76565b60145461264b565b601455565b92505060010155612a76565b905015386126ea565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612961578360135460081c1684601654161061292d57612775613583565b60019283825260188652828a832054168861278f82612e61565b106128a757508152601a85528389822054166127fe5750505050506127f97f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f1526493946127d983612dec565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b612807866135d6565b9261281187612e61565b935b8186821611612869575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9080604081016127f9565b808561288886617fff8f95871c1694858852601b8c5287205416612e61565b10156128a1579061289a839282613735565b9050612813565b5061281d565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506127f995601a916128e261327b565b83525220541661291f575b6128f684613206565b6128ff83612dec565b516001600160a01b03928316815292909116602083015281906040820190565b6129288461302b565b6128ed565b50505050506127f97f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93946127d983613206565b97929150612972859497969561359f565b9761297c85612e61565b976129868a613197565b8460165416905b858116828111612a3f5782811015612a235750806129ad6129b39261258e565b90613533565b9b909b5b8b11156129d6576129c8908c61369c565b6129d18b613197565b61298d565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197915080604081016127f9565b849c919c5260188352612a3a858886205416612e61565b6129b7565b505050505050506127f991929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019794506127d9565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612cb0578082526017835287868320541615612c9f578415612bf75750612ac38361359f565b97612acd84612e61565b985b6001808a83161115612be85781617fff911c1690818452601885528a612af9848a87205416612e61565b1115612b0e57612b09908261369c565b612acf565b505091939597509193955b6019541615612be057612b2a613583565b60018252601883528581818420541692601b612b4585612e61565b95612b4e613591565b600183525220541691612b6083612e61565b11612ba757505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979080604081016127f9565b915091506127f97ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612bd861327b565b6128ed612ec4565b505050505050565b50509193959750919395612b19565b829450612c2b7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996133c4565b8651908152a160195416612c3f5750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612c6d613591565b6001835252205416612c93612c8182612e61565b92612c8a612ec4565b6127d983613206565b0390a138808080611f15565b8551632a55ca5360e01b8152600490fd5b84969792939598919415612db1575061fffe9193612ccd866135d6565b93612cd787612e61565b9480966001958692831b168160195416925b612d3d575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd91905080604081016127f9565b818116838111612dab578d9084811015612d8f57505080612d60612d669261258e565b906131ae565b9890985b881015612d8a57612d7b9089613735565b612d8488613197565b86612ce9565b612cee565b8652601b8552852054909890612da6908716612e61565b612d6a565b50612cee565b94915050612de59194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9596925061302b565b51908152a1565b611fdc90612e5b61ffff91612e04836019541661258e565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955612e61565b90613142565b60ff601354166003811015611e9857600103612e92576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611b7557565b61ffff80601954169081156130195790600190612ee38183111561367f565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291612f7d91908a612f6e83612eb0565b169060195416176019556135fb565b848252808652612f91848484205416612e61565b95859860028160195416995b612faf575b5050505050505050505050565b8181168a8111613013578a811015612ff8575080612d60612fcf9261258e565b9a909a5b891015612ff357612fe4908b613735565b612fed8a613197565b87612f9d565b612fa2565b859b919b5283835261300e878787205416612e61565b612fd3565b50612fa2565b6040516340d9b01160e01b8152600490fd5b613034906135d6565b61ffff908160195416916130488383613735565b8061305284612eb0565b1661ffff196019541617601955613068836135fb565b80821680931461313d579161fffe91600091808352601b9060209382855260018060a01b03926040926130a86130a2868686205416612e61565b87613142565b82528086526130bb848484205416612e61565b9585986001988997881b168160195416995b6130de575050505050505050505050565b8181168a8111613013578a811015613122575080612d606130fe9261258e565b9a909a5b891015612ff357613113908b613735565b61311c8a613197565b876130cd565b859b919b52838352613138878787205416612e61565b613102565b505050565b9190915b60018061ffff831611156131915781617fff911c16908361317c6000848152601b602052604060018060a01b0391205416612e61565b10156131915761318c9082613735565b613146565b50509050565b60011b906201fffe61fffe831692168203611b7557565b91909161ffff92838216600052601b6020526131f160018060a01b036131da8160406000205416612e61565b958316600052601b60205260406000205416612e61565b908185106131ff5750509190565b9350919050565b611fdc9061327561ffff9161321e836016541661258e565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655612e61565b906134e4565b61ffff8060165416908115613019579060019061329a8183111561367f565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161333491908a61332583612eb0565b1690601654161760165561363d565b848252808652613348848484205416612e61565b95859860028160165416995b613365575050505050505050505050565b8181168a8111613013578a8110156133a95750806129ad6133859261258e565b9a909a5b891115612ff35761339a908b61369c565b6133a38a613197565b87613354565b859b919b528383526133bf878787205416612e61565b613389565b6133cd9061359f565b9061ffff908160165416906133e2828561369c565b826133ec83612eb0565b1661ffff1960165416176016556134028261363d565b8284168092146134de5760009291929183835260189260209484865260018060a01b039160409161344061343a858585205416612e61565b8a6134e4565b8152858752613453838383205416612e61565b9561345d89613197565b978560165416985b8681168a81116134d0578a8110156134b55750806129ad6134859261258e565b9a909a5b8911156134a85761349a908b61369c565b6134a38a613197565b613465565b5050505050505092505050565b849b919b528282526134cb868686205416612e61565b613489565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156131915781617fff911c16908361351e60008481526018602052604060018060a01b0391205416612e61565b11156131915761352e908261369c565b6134e8565b919061ffff808416600052601860205261357460018060a01b0361355d8160406000205416612e61565b928416600052601860205260406000205416612e61565b93848211156131ff5750509190565b61ffff601654161561301957565b61ffff601954161561301957565b6001600160a01b031660009081526017602052604090205461ffff169081156135c457565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156135c457565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561368657565b634e487b7160e01b600052600160045260246000fd5b6136c161ffff8080601654169316936136b78486111561367f565b169182111561367f565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61375061ffff8080601954169316936136b78486111561367f565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e19823603018112156119c35701602081359101916001600160401b0382116119c35781360383136119c357565b908060209392818452848401376000828201840152601f01601f1916010190565b61383f6138346138268380611b8b565b604085526040850190611be7565b916020810190611b8b565b91602081830391015281359160ff83168093036119c35761386c60409161387c94845260208101906137c4565b91909281602082015201916137f5565b90565b602080825261388e8380611b8b565b60609182818501526138a560809283860190611be7565b6138bc604096838101358888015287810190611bb3565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b8887106138f757505050505050505050505090565b909192939495969798999a828282030187526139138c85611b8b565b90813560de19833603018112156119c3578782528201918a90888e6001600160401b0361398a61397a61396761395e61394c8b80611b8b565b60e080988c01526101208b0190613816565b978a018a611b8b565b96603f1997888a830301868b0152613816565b928d8901358d8901528801611b9f565b169060a091828701528a8701359263ffffffff60e01b84168094036119c3578f956139c16139d19460c096878b01528a018a6137c4565b92909189850301908901526137f5565b9401356101008401520135908115158092036119c3578a01529a88019998979660010195870194939291906138e2565b814710613a63576000918291829182916001600160a01b03165af13d15613a5e573d613a2c81611971565b90613a3a6040519283611950565b8152600060203d92013e5b15613a4c57565b604051630a12f52160e11b8152600490fd5b613a45565b60405163cd78605960e01b8152306004820152602490fd5b60ff60125460101c16613a8a57565b60405163248c8efb60e11b8152600490fd5b60405190608082018281106001600160401b038211176104e7576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613b3281518092818552858086019101611f7e565b601f01601f1916010190565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613b9a57505050505050505090565b909192939495856003613bd9839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01611ee8565b9a019401940192969594939190613b88565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104e757613c2c81613c268454611eae565b84611fa1565b6000601f8211600114613c655781929394600092613c5a5750508160011b916000199060031b1c1916179055565b013590503880612035565b601f198216948382526020918281209281905b888210613cb057505083600195969710613c9657505050811b019055565b0135600019600384901b60f8161c19169055388080612086565b80600184968294958701358155019501920190613c78565b60018054600160401b8110156104e757818101808355811015611d5357600360009183835202918351837fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6015560407fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf87fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf785019460209560018060a01b0387890151166001600160601b0360a01b82541617905501940151918251926001600160401b0384116118e457613da684613da08854611eae565b88611fa1565b8491601f8511600114613dde579394508492919083613dd3575b50501b916000199060031b1c1916179055565b015192503880613dc0565b86815285812093958591601f198316915b88838310613e225750505010613e0957505050811b019055565b015160001960f88460031b161c19169055388080612086565b858701518855909601959485019487935090810190613def565b90613e5190613e4b8184613f50565b826125fb565b60ff60125460081c1615613e625750565b6000908160019283549084815b838110613efe575b5050505015613e84575050565b613ef76106c3611fdc93613eaa8460018060a01b03166000526015602052604060002090565b0154926003613ecb8260018060a01b03166000526015602052604060002090565b019060405194613eda86611935565b85526001600160a01b031660208501526040519283918290611ee8565b0382611950565b818352600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614613f4257018590613e6f565b509250505038808481613e77565b60018060a01b03166000526015602052613f736002604060002001918254611b68565b9055565b91906040519281602085015260208452613f9084611907565b6001600160401b03601c54169360405194613faa86611935565b60008652602086019582875260018060a01b038416604082015281600052601d6020526040600020968151613fde81611e8e565b613fe781611e8e565b60ff80198a54169116178855519687516001600160401b0381116104e75761401f816140166001850154611eae565b60018501611fa1565b6020601f82116001146140f1576140d8949282600080516020614d06833981519152979593600293611fdc9c9d6000926140e6575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361409d826120c6565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613b19565b9060608301520390a1613f50565b015190503880614054565b6001830160005260206000209960005b601f1984168110614164575092600183611fdc9b9c6002946140d89997600080516020614d068339815191529b9997601f1981161061414b575b505050811b01600182015561406c565b015160001960f88460031b161c1916905538808061413b565b828201518c556001909b019a60209283019201614101565b60ff601354166003811015611e98576106f757565b61419961417c565b34156111255733600090815260156020526040902060020154156141d95760ff60125460081c16156141cf57611fdc3433613f77565b611fdc3433613e3c565b60405163528fc16560e01b8152600490fd5b6141f361417c565b801561425a57336000908152601560205260409020600201548015611828578110156142495760ff60125460081c161561423157611fdc90336142bf565b8061423f611fdc923361426c565b610d1081336126a1565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106142ad576142999161264b565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b919060405192816020850152602084526142d884611907565b6001600160401b03601c541693604051946142f286611935565b60018652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161432681611e8e565b61432f81611e8e565b60ff80198a54169116178855519687516001600160401b0381116104e75761435e816140166001850154611eae565b6020601f821160011461443057614417949282600080516020614d06833981519152979593600293611fdc9c9d600092614425575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036143dc826120c6565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613b19565b9060608301520390a161426c565b015190503880614393565b6001830160005260206000209960005b601f19841681106144a3575092600183611fdc9b9c6002946144179997600080516020614d068339815191529b9997601f1981161061448a575b505050811b0160018201556143ab565b015160001960f88460031b161c1916905538808061447a565b828201518c556001909b019a60209283019201614440565b60ff60125460081c166145a8575b336000908152601560205260409020600201548015611828576144eb336145b5565b50600090338252602460205281604081206145068154611eae565b8061456b575b50505060ff60125460081c161561452857611fdc9150336142bf565b6040611fdc923381526003602052205480614549575b5061423f813361426c565b806145596145659260025461264b565b600255610d1033614bcd565b3861453e565b82601f8211600114614583575050555b81388061450c565b90918082526145a1601f60208420940160051c840160018501611cf1565b555561457b565b6145b061417c565b6144c9565b600081815260266020526040812054909190801561469a576000199080820181811161468657602554908382019182116146725780820361463e575b505050602554801561462a5781019061460982611d69565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b61465c61464d611dd993611d69565b90549060031b1c928392611d69565b90558452602660205260408420553880806145f1565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611d535760209160051b010190565b919091821561313d576040908151906020938483018381106001600160401b038211176104e7578452600092839052600281101561484257806147a35750600b546146fd9161264b565b8152602283528181208251808286829454938481520190855286852092855b8882821061478d5750505061473392500382611950565b928351948515612be057858110612be05785900493825b86811061475a5750505050505050565b6001906001600160a01b0361476f828561469f565b5116855260218452858520614785888254611b68565b90550161474a565b855484526001958601958795509301920161471c565b8460018592146000146147f357606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614863836119f8565b9360409461487386519182611950565b848152601f19614882866119f8565b0194602095368784013760005b81811061495957505060009461ffff8060165416600192839182945b614908575b505050505060ff600e5460a01c1694858102958187041490151715611b755760646148dc9504916149d0565b90156148e6575050565b6006811015611e985760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614951576000908152601885522054849392918691859161494791614941906001600160a01b0316612e61565b90611b68565b9b011694936148ab565b5050986148b0565b6001600160a01b038061496c838761469f565b51166000526017885261ffff896000205416156149ac579061499b600192614994838861469f565b5116612e61565b6149a5828661469f565b520161488f565b88906149ba6024938761469f565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614ab85782518514801590614aad575b614aa0579392919085945b848610614a18575050505050501015614a1057600090600590565b600190600090565b909192939495614a32614a2b888461469f565b5184614ac5565b50614a3c81611e8e565b614a8f576001600160a01b0380614a538a8861469f565b5116911603614a7f57614a73600191614a6c898861469f565b5190611b68565b960194939291906149f5565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b5083518514156149ea565b5050505050905090600290565b8151919060418303614af657614aef92506020820151906060604084015193015160001a90614b01565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614b8557926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614b795780516001600160a01b03811615614b7057918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b90614b9e6041821461367f565b806001116119c357614bb9913691600019019060010161198c565b80516020909101206001600160a01b031690565b60049081549160005b838110614be35750505050565b614bec81611d1c565b90546003916001600160a01b039190831b1c811685821614614c12575050600101614bd6565b929350939060001991828101908111614c9f5790614c4384614c36614c6294611d1c565b905490891b1c1691611d1c565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015614c8a570192614c7584611d1c565b81939154921b1b191690555538808080611f15565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b9190811015611d535760051b81013590601e19813603018212156119c35701908135916001600160401b0383116119c35760200182360381136119c3579190565b9190811015611d535760051b019056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a2646970667358221220f77b469ad41d890021da53a2a7426b41d10e67ba4805753f9ed9c3e881e183eb64736f6c63430008130033","sourceMap":"1687:23964:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:63;1687:23964:78;;582:20:63;578:50;;1687:23964:78;477:1:63;1687:23964:78;;;982:72:61;;:::i;:::-;17626:10:78;:44;;;;;1687:23964;;;;;;;;;;;;17626:44;;17659:10;1687:23964;17626:44;;1687:23964;17626:44;;;;;;;;;;;1687:23964;;;;;;17626:44;;;;:::i;:::-;1687:23964;;17626:44;;;;1687:23964;;;17626:44;1687:23964;;;;;;;;;17626:44;1687:23964;;;578:50:63;1687:23964:78;;-1:-1:-1;;;611:17:63;;1687:23964:78;;611:17:63;1687:23964:78;;;;;;;;;;-1:-1:-1;;1687:23964:78;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;:::i;:::-;4188:61:66;;;;:::i;:::-;11043:10:78;;:::i;:::-;1687:23964;2423:14;1687:23964;;;;;;;;2456:24;2423:57;2419:146;;11132:34;;;11128:98;;11240:38;;;11236:102;;11352:14;1687:23964;;;;;;;;25078:9;25089:10;;;;;;11348:199;;;;;;;1687:23964;;25078:9;25175:33;25194:13;;;;;:::i;:::-;25175:33;;:::i;:::-;-1:-1:-1;;;;;25246:13:78;;;;;;:::i;:::-;;:::i;:::-;1687:23964;-1:-1:-1;;;;;1687:23964:78;;;25226:33;25222:100;;1243:27:65;25513:13:78;;;;;;:::i;:::-;25538;;;;;:::i;:::-;25561:9;;;;;;;;:::i;:::-;1687:23964;;;;1243:27:65;;;1687:23964:78;;1243:27:65;;1687:23964:78;;;;;;:::i;:::-;;;;;;1243:27:65;1687:23964:78;;1243:27:65;;;;;;:::i;:::-;-1:-1:-1;;;;;21417:11:64;1687:23964:78;;;;;;;:::i;:::-;;;;;3528:63:65;;1687:23964:78;;;;;;;;;;;3528:63:65;;1687:23964:78;;;;3489:15:65;1687:23964:78;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;2456:24;1687:23964;;;;:::i;:::-;2456:24;1687:23964;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1687:23964:78;;;;;2456:24;1687:23964;;;;;;;;;-1:-1:-1;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;3528:63:65;;1687:23964:78;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;-1:-1:-1;;;;;3636:23:65;;;:::i;:::-;1687:23964:78;-1:-1:-1;;;;;1687:23964:78;21417:11:64;1687:23964:78;;;21417:11:64;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;1496:205:65;;;1687:23964:78;25078:9;;1687:23964;;;;-1:-1:-1;1687:23964:78;;;;;;2456:24;1687:23964;;;;;;;;;;-1:-1:-1;;1687:23964:78;;;;;;;;;;2456:24;1687:23964;;;;;;;-1:-1:-1;;;;;;;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:24;1687:23964;;;;;;;;;;;;;;;;;;;;;;;;;;;25222:100;1687:23964;;-1:-1:-1;;;25286:21:78;;1687:23964;;25286:21;11348:199;23463:9;;;;;;23474:10;;;;;;1687:23964;;;;;;-1:-1:-1;;;;;24357:15:78;1687:23964;;-1:-1:-1;24347:25:78;24343:91;;1682:2;;;11352:14;1682:2;;;11352:14;1682:2;24480:39;1687:23964;;24480:39;;;;:::i;:::-;;;;24612:16;1687:23964;24646:19;1687:23964;;;-1:-1:-1;;;;;1687:23964:78;24603:84;;;;;1687:23964;;;;;;;;;;;;24603:84;;;1687:23964;24603:84;;1687:23964;24603:84;;;;;;;;11348:199;;1687:23964;;24603:84;;;;:::i;:::-;1687:23964;;;;24603:84;1687:23964;;;;;;;;;24343:91;1687:23964;;-1:-1:-1;;;24395:28:78;;1687:23964;;24395:28;23463:9;23560:33;23579:13;;;;;:::i;23560:33::-;-1:-1:-1;;;;;1687:23964:78;;;;23631:13;;1687:23964;23631:13;;;:::i;:::-;1687:23964;;;23611:33;23607:100;;16026:34:64;23848:13:78;;;;;;:::i;:::-;16026:34:64;:::i;:::-;23824:112:78;;24107:102;2456:24;23984:13;23999;23984;;;;;;:::i;:::-;23999;;;;;:::i;:::-;;;:::i;:::-;18655:5:64;24067:13:78;;;;;;:::i;:::-;24082:9;;;;;:::i;:::-;1687:23964;18655:5:64;;:::i;:::-;1687:23964:78;24149:13;;;;;;:::i;:::-;24172:9;;;;;:::i;:::-;1687:23964;24193:13;;;;;;:::i;:::-;1687:23964;;;;;;;;;:::i;:::-;;;;;24132:76;;1687:23964;;;;:::i;:::-;;24132:76;;1687:23964;24107:102;:::i;:::-;1687:23964;23463:9;;23824:112;1687:23964;;-1:-1:-1;;;23893:28:78;;1687:23964;;23893:28;11236:102;1687:23964;;-1:-1:-1;;;11301:26:78;;1687:23964;;11301:26;2419:146;1482:71;1687:23964;;:::i;:::-;;;-1:-1:-1;;;2503:51:78;;1687:23964;;2503:51;;1482:71;1687:23964;;;;1482:71;;;;:::i;:::-;2503:51;;;1687:23964;-1:-1:-1;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:63;1687:23964:78;;582:20:63;578:50;;1687:23964:78;477:1:63;1687:23964:78;;;982:72:61;;:::i;:::-;4188:61:66;;:::i;:::-;4241:1;;:::i;:::-;1687:23964:78;;;;;;;;;;-1:-1:-1;;1687:23964:78;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;1687:23964:78;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;:::i;:::-;982:72:61;;;:::i;:::-;4167:30:78;1687:23964;;4200:21;1687:23964;4167:54;;;;;:::i;:::-;1687:23964;;;4141:22;1687:23964;4141:80;;:152;;;1687:23964;4124:236;;1687:23964;;4404:22;4468:54;1687:23964;4404:22;;;;;;;:::i;:::-;;1687:23964;4404:22;1687:23964;;4404:22;;;;;;;;:::i;:::-;1687:23964;4394:33;;4468:54;;;:::i;:::-;1687:23964;;;4141:22;1687:23964;4442:80;1687:23964;;;;;;;;4622:104;1687:23964;;;;;;:::i;:::-;;;;;:::i;:::-;4622:104;;:::i;:::-;1687:23964;;;4141:22;1687:23964;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;:::i;:::-;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1687:23964:78;;;;-1:-1:-1;;;1687:23964:78;;;;;;;;;;;;;;4438:2184;1687:23964;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;4141:22;;1687:23964;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;:::i;:::-;;;;;;;;;;;;4141:22;1687:23964;;;5110:35;1687:23964;;8399:50:33;1687:23964:78;;;5174:10;8399:50:33;;:::i;:::-;-1:-1:-1;1687:23964:78;;;4141:22;1687:23964;4167:30;1687:23964;5334:16;1687:23964;-1:-1:-1;;;;;1687:23964:78;5325:55;;;;;1687:23964;;-1:-1:-1;;;5325:55:78;;1687:23964;;;;;;;;;;;5325:55;;1687:23964;5325:55;;;:::i;:::-;;;;;;;;;;;1687:23964;5485:34;;;;;;:::i;:::-;;:::i;5325:55::-;;;;:::i;:::-;1687:23964;;5325:55;;;;1687:23964;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1687:23964:78;;;;;;;;4438:2184;1687:23964;;;;;;;;;;4141:22;1687:23964;5541:56;5537:1085;;4438:2184;;1687:23964;;5537:1085;1687:23964;;;4141:22;1687:23964;;;;;;;;;;;6330:58;1687:23964;6330:58;;1687:23964;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1687:23964:78;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;6330:58;;;;;;;;-1:-1:-1;6330:58:78;;:::i;:::-;1687:23964;6320:69;;6407:36;6403:209;;1687:23964;;6403:209;1687:23964;;;4141:22;1687:23964;;;6522:35;1687:23964;;8399:50:33;1687:23964:78;;;6586:10;8399:50:33;;:::i;:::-;;1687:23964:78;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;4124:236;1687:23964;;-1:-1:-1;;;4325:24:78;;1687:23964;;4325:24;4141:152;1687:23964;;;;;4141:22;1687:23964;4237:56;;4141:152;;1687:23964;;;;;;;;;;;;;;;;;3103:10;;:::i;:::-;982:72:61;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1883:4:61;1687:23964:78;;;;;;;;1902:20:61;1687:23964:78;;;1911:10:61;1687:23964:78;;1902:20:61;1687:23964:78;;;;;;;;;-1:-1:-1;;1687:23964:78;;;;;;-1:-1:-1;;;;;;;;;;;1687:23964:78;;;582:20:63;578:50;;1687:23964:78;;;10028:11;;10024:65;;1687:23964;10103:14;1687:23964;;;;10099:79;;10209:10;1687:23964;;;;;;;;;;10192:37;10188:93;;10518:6;10209:10;;;1687:23964;;;;;;;;10291:38;1687:23964;;;10291:38;:::i;:::-;1687:23964;;10339:29;1687:23964;10339:19;1687:23964;10339:29;:::i;:::-;:19;1687:23964;10209:10;1687:23964;;;;;;;;;10383:33;10379:99;;1687:23964;10209:10;10518:6;:::i;10379:99::-;10456:10;10209;10456;:::i;:::-;10379:99;;10188:93;1687:23964;;-1:-1:-1;;;10252:18:78;;1687:23964;;10252:18;10099:79;1687:23964;;-1:-1:-1;;;10140:27:78;;1687:23964;;10140:27;10024:65;1687:23964;;-1:-1:-1;;;10062:16:78;;1687:23964;;10062:16;1687:23964;-1:-1:-1;1687:23964:78;;-1:-1:-1;;1687:23964:78;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;477:1:63;-1:-1:-1;;;;;;;;;;;1687:23964:78;582:20:63;578:50;;477:1;-1:-1:-1;;;;;;;;;;;1687:23964:78;982:72:61;;:::i;:::-;4188:61:66;;:::i;:::-;1687:23964:78;12051:14;1687:23964;;;;12047:74;;;1687:23964;12134:9;:14;12130:70;;1682:2;1687:23964;;;;12214:57;12210:232;;12479:29;1687:23964;;;;;;;12479:29;:::i;:::-;12542:10;-1:-1:-1;;;;;1687:23964:78;;;12522:30;12518:89;;1687:23964;;;;12919:9;1687:23964;;;;;;12542:10;12919:9;:::i;:::-;12985;12134;12542:10;12985:9;:::i;:::-;1687:23964;5112:35:64;1687:23964:78;13114:25;1687:23964;13095:44;;;13091:525;;12617:1149;;;;1687:23964;-1:-1:-1;;;;;;;;;;;1687:23964:78;;;13091:525;1687:23964;5328:27:64;1687:23964:78;;-1:-1:-1;;;;;13201:15:78;1687:23964;;-1:-1:-1;13091:525:78;13159:443;1682:2;;;12051:14;1682:2;;;12051:14;1682:2;13288:39;1687:23964;;13288:39;;;;:::i;:::-;;;;1687:23964;;;;;13444:16;1687:23964;;;13478:37;13496:19;1687:23964;13478:37;;;:::i;:::-;13435:148;;;;;;1687:23964;;;;;;;;;;;;;13435:148;;1687:23964;13435:148;;1687:23964;13435:148;;;;;;;13091:525;13435:148;;;;:::i;:::-;1687:23964;;13435:148;;13091:525;;13435:148;1687:23964;;;;12617:1149;1687:23964;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21733:11:64;1687:23964:78;;;;;;;;;:::i;:::-;661:28:65;1687:23964:78;;;3528:63:65;;1687:23964:78;;;12542:10;1687:23964;3528:63:65;;1687:23964:78;;;;3489:15:65;1687:23964:78;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;477:1:63;1687:23964:78;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1687:23964:78;;;661:28:65;1687:23964:78;;;;;;;;;;;;477:1:63;1687:23964:78;;;;;;;;;;;477:1:63;1687:23964:78;;;;;;;;;;;;3528:63:65;;1687:23964:78;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;-1:-1:-1;;;;;3636:23:65;;;:::i;:::-;1687:23964:78;-1:-1:-1;;;;;1687:23964:78;21733:11:64;1687:23964:78;;;21733:11:64;1687:23964:78;;;;;;661:28:65;1687:23964:78;;12542:10;1687:23964;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;747:200:65;;;13745:9:78;12134;12542:10;13745:9;:::i;:::-;12617:1149;;1687:23964;;;;-1:-1:-1;1687:23964:78;;;;;;477:1:63;1687:23964:78;;;;;;;;;;-1:-1:-1;;1687:23964:78;;;;;;;;661:28:65;1687:23964:78;;;;;477:1:63;1687:23964:78;-1:-1:-1;;;;;;;;;;;1687:23964:78;;;;;;;;;;;;;;;;;477:1:63;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:63;1687:23964:78;;;;;;;;;;;;;;;12210:232;1687:23964;;-1:-1:-1;;;12407:24:78;;1687:23964;;12407:24;12130:70;1687:23964;;-1:-1:-1;;;12171:18:78;;1687:23964;;12171:18;12047:74;;;:::i;:::-;;;1687:23964;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;477:1:63;247:48;-1:-1:-1;;;;;;;;;;;1687:23964:78;;;582:20:63;578:50;;1687:23964:78;;;982:72:61;;:::i;:::-;17480:10:78;1687:23964;;;;3658:13:64;1687:23964:78;;;;;;;;;;;;;;1777:16:64;;;1773:78;;1687:23964:78;;;;;1895:25:64;;1930:14;;;2019:13;;;;1954:477;477:1:63;;;1954:477:64;1687:23964:78;;;;22704:36:64;1687:23964:78;22704:36:64;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;3707:14:64;3703:76;;1954:477;3818:6;17480:10:78;;3818:6:64;:::i;:::-;1687:23964:78;;;17480:10;1687:23964;;;;;;;;;;;;;;;;;22704:36:64;;;;1687:23964:78;;;3703:76:64;17480:10:78;1687:23964;;;;3658:13:64;1687:23964:78;;;;;17480:10;;1687:23964;3703:76:64;;1954:477;1687:23964:78;;;;;;;1961:10:64;;;;;;;1687:23964:78;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2204:12:64;-1:-1:-1;2180:76:64;;2270:24;;;;;;;;;;;;;:::i;:::-;1687:23964:78;;;;;;;;;;;;;;;;;;;;;1954:477:64;;;2180:76;2236:5;;;;;;;;1961:10;;;;;;;1773:78;1687:23964:78;;-1:-1:-1;;;1816:24:64;;1687:23964:78;;1816:24:64;1687:23964:78;-1:-1:-1;1687:23964:78;;-1:-1:-1;;1687:23964:78;;;;;;;;;;;;982:72:61;;:::i;:::-;3919:16:66;1687:23964:78;-1:-1:-1;;;;;1687:23964:78;3905:10:66;:30;3901:80;;4174:1;1687:23964:78;;;;;4174:1:66;:::i;3901:80::-;1687:23964:78;;-1:-1:-1;;;3958:12:66;;1687:23964:78;;3958:12:66;1687:23964:78;;;;;;;;;;;;;4188:61:66;;:::i;:::-;1687:23964:78;17446:86:64;1687:23964:78;17446:32:64;1687:23964:78;;;17491:31:64;1687:23964:78;;17446:86:64;;:::i;:::-;1687:23964:78;17152:97;;17259:8;1687:23964;;-1:-1:-1;;1687:23964:78;;;;;17293:16;1687:23964;;;-1:-1:-1;;;;;1687:23964:78;17284:33;;;;;1687:23964;;;;;;;;;;;;;17284:33;;;;;;;;;;1687:23964;;17152:97;1687:23964;;-1:-1:-1;;;17212:26:78;;1687:23964;;17212:26;1687:23964;;;;;;;;;;;;;3290:10;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1687:23964:78;;;;;1384:9:61;1380:62;;1687:23964:78;;;;;2212:20:61;1687:23964:78;;;2221:10:61;1687:23964:78;;2212:20:61;1687:23964:78;;1380:62:61;1687:23964:78;;-1:-1:-1;;;1416:15:61;;1687:23964:78;;1416:15:61;1687:23964:78;;;;;;;;;;982:72:61;;:::i;:::-;4188:61:66;;:::i;:::-;4241:1;;:::i;1687:23964:78:-;;;;;;;-1:-1:-1;;1687:23964:78;;;;982:72:61;;:::i;:::-;4188:61:66;;:::i;:::-;4241:1;1687:23964:78;;4241:1:66;:::i;1687:23964:78:-;;;;;-1:-1:-1;;1687:23964:78;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;7206:17;1687:23964;7206:17;;1687:23964;;7226:19;1687:23964;7206:51;;;;7202:108;;1687:23964;7323:10;;;;;;:::i;:::-;1687:23964;;;7343:25;1687:23964;;7323:45;;;7319:108;;7533:10;;;;:::i;:::-;:46;;;;:99;;;1687:23964;7529:156;;7698:10;;;;:::i;:::-;:22;;;7694:81;;1687:23964;;;;;7815:17;;;;;;;;;:::i;:::-;;1687:23964;;7815:17;;;;;;:::i;:::-;1687:23964;7805:28;;;7848:52;;;;1687:23964;;;;;;8179:24;1687:23964;8166:37;8162:200;;7844:1250;1687:23964;;8162:200;1687:23964;;8282:30;1687:23964;;8399:50:33;1687:23964:78;;;8336:10;8399:50:33;;:::i;7844:1250:78:-;8476:99;1687:23964;;;;;;;;;;;;;;;:::i;8476:99::-;1687:23964;;;;;;;:::i;:::-;;;;8775:71;1687:23964;;7226:19;1687:23964;;;;;8916:30;1687:23964;;8399:50:33;1687:23964:78;;;8970:10;8399:50:33;;:::i;:::-;-1:-1:-1;9038:16:78;1687:23964;-1:-1:-1;;;;;1687:23964:78;;9029:54;;;;;1687:23964;;9029:54;1687:23964;;;;;;;;;;;;9029:54;;1687:23964;9029:54;;;:::i;:::-;;;;;;;;;;;7844:1250;1687:23964;;9029:54;;;;:::i;7694:81::-;1687:23964;;-1:-1:-1;;;7743:21:78;;1687:23964;;7743:21;7529:156;1687:23964;;-1:-1:-1;;;7655:19:78;;1687:23964;;7655:19;7533:99;1687:23964;7603:24;1687:23964;;;;;;;7583:49;;7533:99;;1687:23964;-1:-1:-1;;;1687:23964:78;;;;;;;;7319:108;1687:23964;;-1:-1:-1;;;7391:25:78;;1687:23964;;7391:25;1687:23964;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;982:72:61;;;:::i;:::-;17917:10:78;1687:23964;;1317:17:72;1687:23964:78;;;;;;;;1317:33:72;17879:107:78;;1687:23964;;17999:29;17995:81;;17917:10;1687:23964;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8399:50:33;17917:10:78;8399:50:33;:::i;1687:23964:78:-;;;;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1687:23964:78;;;;;;;;17995:81;1687:23964;;-1:-1:-1;;;18051:14:78;;1687:23964;;18051:14;17879:107;1687:23964;;-1:-1:-1;;;17951:24:78;;17917:10;1687:23964;17951:24;;1687:23964;;;17951:24;1687:23964;;;;;;;;;;;9376:9;:14;9372:68;;1687:23964;;9454:14;1687:23964;;;;9450:79;;9560:10;1687:23964;;;;;;;;;9543:33;9539:101;;1687:23964;9560:10;1687:23964;;;;;;;;9650:41;9376:9;1687:23964;;9650:41;:::i;:::-;1687:23964;;9701:32;9376:9;9701:19;1687:23964;9701:32;:::i;:::-;:19;1687:23964;;;9539:101;1687:23964;;-1:-1:-1;;;1687:23964:78;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;9560:10;1687:23964;;;;;;;;9539:101;;1687:23964;-1:-1:-1;;;1687:23964:78;;;;;;;;9372:68;-1:-1:-1;;;9413:16:78;;1687:23964;;9413:16;1687:23964;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;:::o;:::-;-1:-1:-1;;;;;1687:23964:78;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;:::o;:::-;-1:-1:-1;;;;;1687:23964:78;;;;;;-1:-1:-1;;1687:23964:78;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1687:23964:78;;;;;;:::o;:::-;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1687:23964:78;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;2587:156:57;2663:30;1687:23964:78;-1:-1:-1;;;;;1687:23964:78;2649:10:57;:44;2645:92;;2587:156::o;2645:92::-;1687:23964:78;;-1:-1:-1;;;2716:10:57;;;;;1122:128:61;1687:23964:78;-1:-1:-1;;;;;;;;;;;1687:23964:78;;1183:61:61;;1122:128::o;1183:61::-;1687:23964:78;;-1:-1:-1;;;1218:15:61;;;;;1687:23964:78;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1687:23964:78;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;1687:23964:78;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;-1:-1:-1;;;;;1687:23964:78;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;1687:23964:78;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1687:23964:78;;;;-1:-1:-1;1687:23964:78;:::o;:::-;;;;;;;;;;;;;18187:17;1687:23964;;;;;;18187:17;-1:-1:-1;1687:23964:78;;;;-1:-1:-1;1687:23964:78;:::o;2215:404:33:-;-1:-1:-1;1687:23964:78;;;4352:12:33;1687:23964:78;;;;;;;;18187:17;1687:23964;-1:-1:-1;;;1687:23964:78;;;;;;;;;;4352:12:33;1687:23964:78;;;18187:17;1687:23964;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;18187:17;1687:23964;;;;4352:12:33;1687:23964:78;;;;4352:12:33;2548:11;:::o;2294:319::-;2590:12;;;:::o;2215:404::-;;;4352:12;;;-1:-1:-1;1687:23964:78;;;;;;;;;;;4352:24:33;2294:319;1687:23964:78;;;;;;-1:-1:-1;;;1687:23964:78;;;;;4352:12:33;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4352:12:33;2548:11;:::o;1687:23964:78:-;-1:-1:-1;;;1687:23964:78;;;;;;;;;-1:-1:-1;;;1687:23964:78;;;;;;;;2294:319:33;-1:-1:-1;2590:12:33;-1:-1:-1;;2590:12:33:o;1687:23964:78:-;;-1:-1:-1;1687:23964:78;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;1687:23964:78;;;;-1:-1:-1;1687:23964:78;;;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1687:23964:78;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;1687:23964:78;;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;;;;;;-1:-1:-1;1687:23964:78;-1:-1:-1;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;:::o;23681:1944:64:-;23863:11;1687:23964:78;-1:-1:-1;;;;;1687:23964:78;;;;;;;;23889:56:64;;1687:23964:78;;;;-1:-1:-1;;;23968:28:64;;;;;23885:221;1687:23964:78;;;;;24017:56:64;;24013:93;;1687:23964:78;;;;;;24198:24:64;1687:23964:78;;;;24198:24:64;;;;25530:23;;;1687:23964:78;25530:23:64;;25569:49;25530:23;;:::i;:::-;-1:-1:-1;;;23863:11:64;1687:23964:78;;;;;;-1:-1:-1;;;1687:23964:78;;;23863:11:64;1687:23964:78;;;;;25569:49:64;23681:1944::o;24180:16::-;3893:36:65;;;-1:-1:-1;;;;;1687:23964:78;;;3893:15:65;1687:23964:78;;;;;;;3893:36:65;24327:16:64;;;;1687:23964:78;;;;;24327:16:64;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;:::i;:::-;24362:41:64;;;24327:16;;24471:14;;24423:45;:36;1687:23964:78;;24471:14:64;;;;;24423:36;1687:23964:78;;;;;;;;24680:25:64;1687:23964:78;;;;;;;24423:36:64;:45;1687:23964:78;:::i;:::-;4051:36:65;;-1:-1:-1;;;;;1687:23964:78;;;3893:15:65;1687:23964:78;;;;;;;4051:36:65;3708:45:66;;1687:23964:78;;;;;;;;;;;:::i;:::-;;;;;24180:16:64;;24358:1017;1687:23964:78;;;;;;;:::i;:::-;24523:34:64;;24510:47;;;24523:34;;1687:23964:78;;;;;;;;;;24629:14:64;;;1687:23964:78;:::i;:::-;;;;:::i;:::-;;;24618:44:64;;;;;;;;;;1687:23964:78;;;;;24618:44:64;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;24680:36:64;;;;1687:23964:78;;;;;;;;24680:25:64;1687:23964:78;;;;;;;24680:36:64;:45;1687:23964:78;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;24802:5:64;1687:23964:78;;;;;;;;;3708:45:66;1687:23964:78;;;;;;;;;;;;;;;;;;24802:5:64;:::i;:::-;24358:1017;;1687:23964:78;;;;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;;;;;3708:45:66;1687:23964:78;;;3708:45:66;1687:23964:78;;3708:45:66;1687:23964:78;;;;;;;;;24802:5:64;1687:23964:78;;;;;;;;;;;;;;;;;24802:5:64;:::i;1687:23964:78:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;;;;;3708:45:66;1687:23964:78;;;;;;;;;24506:869:64;1687:23964:78;;;;;;;;;;;;;;;24875:14:64;;;1687:23964:78;:::i;:::-;24864:37:64;1687:23964:78;;;;24864:37:64;;1687:23964:78;;;;24864:37:64;;;;;1687:23964:78;;;;;:::i;:::-;24924:38:64;3893:15:65;;25028:6:64;;;;;;:::i;:::-;25057:14;1687:23964:78;3147:35:64;;:12;:35;:::i;:::-;1687:23964:78;;;;;;;:::i;:::-;;;;3224:54:64;;;1687:23964:78;;;-1:-1:-1;;;;;1687:23964:78;;;;;;3658:13:64;1687:23964:78;;;;;3224:54:64;;1687:23964:78;;;;;;;;;;;;;;;;;;;1273:22:64;;;;:::i;:::-;1687:23964:78;3708:45:66;;1687:23964:78;;;1306:13:64;;;1687:23964:78;;;;;;;;;;;;1362:10:64;;;:::i;:::-;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;3343:85:64;;;25135:16;1687:23964:78;;25126:47:64;;;;;;1687:23964:78;;;;;;;;;;;;;;;25126:47:64;;;;;1687:23964:78;25126:47:64;;;;;;;;;;;;;;;24920:441;;24358:1017;;25126:47;;;;:::i;:::-;;;;;1687:23964:78;;;;;;;;;;24920:441:64;25261:6;;;;;;;;;;:::i;:::-;25299:16;1687:23964:78;;25290:52:64;;;;;;1687:23964:78;;;;;;25290:52:64;;3708:45:66;25290:52:64;3708:45:66;;25290:52:64;;;;;;;;;;;;;;;;;;24920:441;24358:1017;;1687:23964:78;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;9330:540:64:-;;1687:23964:78;;;;;;;-1:-1:-1;1687:23964:78;9465:15:64;1687:23964:78;;;-1:-1:-1;1687:23964:78;;;;;;9580:22:64;;;9576:288;9580:22;;;9618:7;;;:::o;9576:288::-;-1:-1:-1;;9645:21:64;;;9747:5;;;:::i;9641:223::-;9846:5;;;:::i;9876:404::-;;10258:13;9876:404;10143:39;1687:23964:78;;;;;;;;;-1:-1:-1;1687:23964:78;10005:15:64;1687:23964:78;;10005:55:64;1687:23964:78;;;-1:-1:-1;1687:23964:78;10005:46:64;1687:23964:78;10005:55:64;:::i;:::-;1687:23964:78;-1:-1:-1;1687:23964:78;10005:15:64;1687:23964:78;;;;;-1:-1:-1;1687:23964:78;10070:46:64;1687:23964:78;10143:29:64;1687:23964:78;10143:39:64;:::i;:::-;:29;1687:23964:78;10258:13:64;:::i;1687:23964:78:-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;10286:616:64:-;;10830:13;10856:39;10286:616;1687:23964:78;;;;;;;-1:-1:-1;;1687:23964:78;;;10416:15:64;1687:23964:78;;10416:55:64;1687:23964:78;;;;;10416:46:64;1687:23964:78;10416:55:64;:::i;:::-;1687:23964:78;;;10416:15:64;1687:23964:78;;;;;10416:15:64;10507:42;;1687:23964:78;;;10564:18:64;;:42;;;;10286:616;-1:-1:-1;10560:199:64;;;1687:23964:78;;;;;;;;;;;;;;;;;:::i;:::-;10830:13:64;:::i;:::-;10856:29;1687:23964:78;10856:39:64;:::i;:::-;:29;1687:23964:78;10286:616:64:o;10560:199::-;10686:46;;;1687:23964:78;10686:46:64;1687:23964:78;10830:13:64;:::i;10564:42::-;10586:20;;;10564:42;;;11008:2209;;;1687:23964:78;;;;;;;;;-1:-1:-1;1687:23964:78;;;;;;1317:17:72;1687:23964:78;;;;;;;;;;;;11120:226:64;;1687:23964:78;16026:14:64;1687:23964:78;;;;;11124:21:64;1687:23964:78;;-1:-1:-1;11516:262:64;;4023:26:70;;:::i;:::-;1687:23964:78;;;;;4077:23:70;1687:23964:78;;;;;;;;4129:25:70;;;;:::i;:::-;12408::64;12404:452;;1687:23964:78;;;1317:17:72;1687:23964:78;;;;;;;;12866:229:64;;13141:11;;;;;13168:42;;13141:11;;;;;:::i;:::-;1687:23964:78;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;13168:42:64;;;;11008:2209::o;12866:229::-;3147:36:70;;;:::i;:::-;3209:30;;;;:::i;:::-;3308:5;4619:7;1687:23964:78;;;;4619:7:70;;;4612:423;-1:-1:-1;;1687:23964:78;;-1:-1:-1;;;;;1687:23964:78;;;;;-1:-1:-1;;;;1687:23964:78;;;;;;;;;-1:-1:-1;13008:56:64;;1687:23964:78;;;;13008:56:64;1687:23964:78;4612:423:70;1687:23964:78;;1991:25:72;1687:23964:78;;;;;;;;;;;1952:17:72;1687:23964:78;;;;;;1991:25:72;:::i;:::-;6662:7:70;4868:38;4864:82;;4991:3;;;;;;:::i;:::-;4612:423;;;;4864:82;4926:5;;;12404:452:64;12475:4;;;;;;;12777:48;12475:4;;;;12777:48;12475:4;1317:17:72;12475:4:64;;;:::i;:::-;1687:23964:78;;;;;;12495:140:64;;12404:452;12684:11;;;:::i;:::-;12746:10;;;:::i;:::-;1687:23964:78;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;12495:140:64;12608:11;;;:::i;:::-;12495:140;;11516:262;11675:11;;;;;11706:41;;11675:11;;;;;:::i;11120:226::-;2876:36:71;;;;;;;;;;;:::i;:::-;2936:30;;;;:::i;:::-;3035:3;4846:7;3035:3;4846:7;:::i;:::-;1687:23964:78;11124:21:64;1687:23964:78;;4932:763:71;;1687:23964:78;;;4939:16:71;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;:::-;5089:187;;:::i;:::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;-1:-1:-1;;1687:23964:78;;-1:-1:-1;;;;;1687:23964:78;;;;;-1:-1:-1;;;;1687:23964:78;;;;;;;5556:5:71;;-1:-1:-1;11260:55:64;;-1:-1:-1;1687:23964:78;;;;11260:55:64;1687:23964:78;4971:413:71;1687:23964:78;;;;;1952:17:72;1687:23964:78;;1991:25:72;1687:23964:78;;;;;;1991:25:72;:::i;:::-;4971:413:71;;4939:16;;;;;;;;11260:55:64;4939:16:71;;;;;11260:55:64;4939:16:71;;;;13320:2014:64;;;1687:23964:78;;;;;;;;;-1:-1:-1;;1687:23964:78;;;;;1317:17:72;1687:23964:78;;;;;;;;;;;;13428:421:64;;1687:23964:78;;;1317:17:72;1687:23964:78;;;;;;;;1317:33:72;13883:106:64;;14053:13;;14049:508;;3263:36:71;;;;:::i;:::-;3323:30;;;;:::i;:::-;3422:3;4270:433;1687:23964:78;;;;;4277:7:71;;;;1687:23964:78;;;;;;;;;1952:17:72;1687:23964:78;;;1991:25:72;1687:23964:78;;;;;;1991:25:72;:::i;:::-;6308:7:71;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4533:81;4594:5;;;;;;;;;;4270:433;13432:22:64;1687:23964:78;;14638:37:64;14634:74;;4023:26:70;;:::i;:::-;1687:23964:78;;;1952:17:72;1687:23964:78;;;;;;;;;4129:25:70;4077:23;4129:25;;;:::i;:::-;4023:26;;;:::i;:::-;1687:23964:78;;;;;;;4129:25:70;;;;:::i;:::-;-1:-1:-1;14901:358:64;;-1:-1:-1;;1687:23964:78;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;15274:53:64;;1687:23964:78;;;;15274:53:64;1687:23964:78;14901:358:64;14979:4;;;;15176:52;;14979:4;;;:::i;:::-;15025;;:::i;14634:74::-;14691:7;;;;;;:::o;4277::71:-;;;;;;;;;;;;;14049:508:64;14126:9;;;;14155:30;14126:9;;;;;;;;;:::i;:::-;1687:23964:78;;;;;14155:30:64;13432:22;1687:23964:78;;14200:326:64;;14540:7;;;;:::o;14200:326::-;14472:39;4023:26:70;4077:23;4023:26;;;;:::i;:::-;1687:23964:78;;;;;;;14472:39:64;4129:25:70;;;:::i;:::-;14378:4:64;;;:::i;:::-;14436:12;;;:::i;14472:39::-;;;;14200:326;;;;;;13883:106;1687:23964:78;;-1:-1:-1;;;13952:26:64;;1317:17:72;;13952:26:64;13428:421;13494:13;;;;;;;;;;13490:185;;3601:36:70;1687:23964:78;3601:36:70;;;;;:::i;:::-;3663:30;;;;:::i;:::-;3762:5;;1687:23964:78;;;;;;;;;13432:22:64;1687:23964:78;;5287:763:70;1687:23964:78;;;5287:763:70;-1:-1:-1;;1687:23964:78;;-1:-1:-1;;;;;1687:23964:78;;;;;-1:-1:-1;;;;1687:23964:78;;;;;;;-1:-1:-1;1687:23964:78;;-1:-1:-1;13764:54:64;;1687:23964:78;-1:-1:-1;1687:23964:78;;;;13764:54:64;1687:23964:78;5287:763:70;1687:23964:78;;;5294:16:70;;;;;5330:15;;;;;;;;5599:12;;;;5444:186;5599:12;;:::i;:::-;5444:186;;:::i;:::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1687:23964:78;;1952:17:72;1687:23964:78;;;;;;;;1991:25:72;;1687:23964:78;;1991:25:72;:::i;:::-;5326:412:70;;5294:16;;;;13490:185:64;13572:9;;;;;;;;13605:31;13572:9;;;;;:::i;:::-;1687:23964:78;;;;13605:31:64;13654:7::o;998:417:70:-;1401:5;998:417;1301:30;1687:23964:78;;1119:19:70;1687:23964:78;12499:22:64;1687:23964:78;;1119:19:70;:::i;:::-;1687:23964:78;;;;;;;;;;-1:-1:-1;1687:23964:78;1149:23:70;1687:23964:78;;;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;;;;;-1:-1:-1;1687:23964:78;1200:23:70;1687:23964:78;;;-1:-1:-1;1687:23964:78;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;12499:22:64;1687:23964:78;;;12499:22:64;1687:23964:78;1301:30:70;:::i;:::-;1401:5;;:::i;4525:375:64:-;1687:23964:78;16026:14:64;1687:23964:78;;;;;;;;4697:24:64;4668:53;4697:24;;-1:-1:-1;;;;;1687:23964:78;-1:-1:-1;1687:23964:78;;;4745:21:64;1687:23964:78;;;;;;;4525:375:64:o;4664:230::-;-1:-1:-1;;;;;1687:23964:78;-1:-1:-1;1687:23964:78;;;4831:21:64;1687:23964:78;;;;;;4831:52:64;1687:23964:78;;4525:375:64:o;1687:23964:78:-;;;;;-1:-1:-1;;1687:23964:78;;;;;;;:::o;1545:401:70:-;1687:23964:78;;13432:22:64;1687:23964:78;;1044:14:72;;;1040:61;;1687:23964:78;;2388:17:72;2381:25;2388:17;;;;2381:25;:::i;:::-;1687:23964:78;;;;2468:17:72;1687:23964:78;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;2551:17:72;1687:23964:78;;;;;;;-1:-1:-1;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:72;1799:4:70;;1687:23964:78;1766:8:70;;1687:23964:78;1766:8:70;:::i;:::-;1687:23964:78;;13432:22:64;1687:23964:78;;;13432:22:64;1687:23964:78;1799:4:70;:::i;:::-;1687:23964:78;;;;;;1991:25:72;1687:23964:78;;;;;;1991:25:72;:::i;:::-;5047:1009:70;;5160:26;1952:17:72;1687:23964:78;13432:22:64;1687:23964:78;;5287:763:70;1687:23964:78;;;5287:763:70;1545:401;;;;;;;;;;;:::o;5287:763::-;1687:23964:78;;;5294:16:70;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1687:23964:78;;;;;;;;1991:25:72;1687:23964:78;;;;;;1991:25:72;:::i;:::-;5326:412:70;;5294:16;;;;1040:61:72;1687:23964:78;;-1:-1:-1;;;1081:9:72;;;;;2081:787:70;2210:36;2081:787;2210:36;:::i;:::-;1687:23964:78;;;12499:22:64;1687:23964:78;;2321:4:70;;;;;:::i;:::-;2382:8;;;;:::i;:::-;1687:23964:78;;;12499:22:64;1687:23964:78;;;12499:22:64;1687:23964:78;2415:4:70;;;:::i;:::-;1687:23964:78;;;2435:11:70;;;2431:48;;-1:-1:-1;1687:23964:78;-1:-1:-1;;1687:23964:78;;;;1952:17:72;1687:23964:78;;;;;;;;;;;;;;2668:5:70;1991:25:72;1687:23964:78;;;;;;1991:25:72;:::i;:::-;2668:5:70;;:::i;:::-;1687:23964:78;;;;;1991:25:72;1687:23964:78;;;;;;1991:25:72;:::i;:::-;2854:5:70;;1687:23964:78;;;;;;;;;12499:22:64;1687:23964:78;;5287:763:70;1687:23964:78;;;2081:787:70;;;;;;;;;;;:::o;5287:763::-;1687:23964:78;;;5294:16:70;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5326:412;1687:23964:78;;;;;;;;1991:25:72;1687:23964:78;;;;;;1991:25:72;:::i;:::-;5326:412:70;;2431:48;2462:7;;;:::o;4443:598::-;;;;4612:423;4625:1;1687:23964:78;;;;4619:7:70;;;;1687:23964:78;;;;;-1:-1:-1;;1991:25:72;-1:-1:-1;1687:23964:78;;;1952:17:72;1687:23964:78;;;;;;;;;;;;1991:25:72;:::i;:::-;6662:7:70;4868:38;4864:82;;4991:3;;;;:::i;:::-;4612:423;;4864:82;4926:5;;;;4443:598::o;1687:23964:78:-;;;;;;;;;;;;;;:::o;6117:442:70:-;;;;1687:23964:78;;;;;-1:-1:-1;1687:23964:78;1952:17:72;1687:23964:78;;1991:25:72;1687:23964:78;;;;;1991:25:72;1687:23964:78;;-1:-1:-1;1687:23964:78;;;1991:25:72;:::i;:::-;1687:23964:78;;;-1:-1:-1;1687:23964:78;1952:17:72;1687:23964:78;;;-1:-1:-1;1687:23964:78;;;1991:25:72;:::i;:::-;6662:7:70;;;;6437:85;;6531:21;;;6117:442;:::o;6437:85::-;6490:21;-1:-1:-1;6490:21:70;;-1:-1:-1;6490:21:70:o;924:417:71:-;1327:5;924:417;1227:30;1687:23964:78;;1045:19:71;1687:23964:78;11124:21:64;1687:23964:78;;1045:19:71;:::i;:::-;1687:23964:78;;;;;;;;;;-1:-1:-1;1687:23964:78;1075:23:71;1687:23964:78;;;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;;;;;-1:-1:-1;1687:23964:78;1126:23:71;1687:23964:78;;;-1:-1:-1;1687:23964:78;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;11124:21:64;1687:23964:78;;;11124:21:64;1687:23964:78;1227:30:71;:::i;:::-;1327:5;;:::i;1408:401::-;1687:23964:78;;11124:21:64;1687:23964:78;;1044:14:72;;;1040:61;;1687:23964:78;;2388:17:72;2381:25;2388:17;;;;2381:25;:::i;:::-;1687:23964:78;;;;2468:17:72;1687:23964:78;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;2551:17:72;1687:23964:78;;;;;;;-1:-1:-1;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:72;1662:4:71;;1687:23964:78;1629:8:71;;1687:23964:78;1629:8:71;:::i;:::-;1687:23964:78;;11124:21:64;1687:23964:78;;;11124:21:64;1687:23964:78;1662:4:71;:::i;:::-;1687:23964:78;;;;;;1991:25:72;1687:23964:78;;;;;;1991:25:72;:::i;:::-;4715:986:71;;4828:25;1952:17:72;1687:23964:78;11124:21:64;1687:23964:78;;4932:763:71;1687:23964:78;;;1408:401:71;;;;;;;;;;;:::o;4932:763::-;1687:23964:78;;;4939:16:71;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;;4971:413;1687:23964:78;;;;;;;;1991:25:72;1687:23964:78;;;;;;1991:25:72;:::i;:::-;4971:413:71;;1881:779;2010:36;1881:779;2010:36;:::i;:::-;1687:23964:78;;;;13888:21:64;1687:23964:78;;2121:4:71;;;;;:::i;:::-;2182:8;;;;:::i;:::-;1687:23964:78;;;13888:21:64;1687:23964:78;;;13888:21:64;1687:23964:78;2215:4:71;;;:::i;:::-;1687:23964:78;;;2235:11:71;;;2231:48;;-1:-1:-1;;;;1687:23964:78;;;;1952:17:72;1687:23964:78;;;;;;;;;;;;;;2466:3:71;1991:25:72;1687:23964:78;;;;;;1991:25:72;:::i;:::-;2466:3:71;;:::i;:::-;1687:23964:78;;;;;1991:25:72;1687:23964:78;;;;;;1991:25:72;:::i;:::-;2648:3:71;4846:7;2648:3;4846:7;:::i;:::-;4863:18;1687:23964:78;13888:21:64;1687:23964:78;;4932:763:71;;1687:23964:78;;;4939:16:71;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;;;;;1881:779::o;4971:413::-;1687:23964:78;;;;;;;;1991:25:72;1687:23964:78;;;;;;1991:25:72;:::i;:::-;4971:413:71;;4939:16;;;;;;;;;;;;;1881:779::o;2231:48::-;2262:7;;;;:::o;4101:608::-;;;;4270:433;4283:1;1687:23964:78;;;;4277:7:71;;;;1687:23964:78;;;;;-1:-1:-1;;1991:25:72;-1:-1:-1;1687:23964:78;;;1952:17:72;1687:23964:78;;;;;;;;;;;;1991:25:72;:::i;:::-;6308:7:71;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;5763:443;;;1687:23964:78;;;;-1:-1:-1;1687:23964:78;1952:17:72;1687:23964:78;;1991:25:72;1687:23964:78;;;;;1991:25:72;1687:23964:78;;-1:-1:-1;1687:23964:78;;;1991:25:72;:::i;:::-;1687:23964:78;;;-1:-1:-1;1687:23964:78;1952:17:72;1687:23964:78;;;-1:-1:-1;1687:23964:78;;;1991:25:72;:::i;:::-;6308:7:71;;;;6088:33;6084:85;;6178:21;;;5763:443;:::o;974:133:72:-;1687:23964:78;11124:21:64;1687:23964:78;;1044:14:72;1040:61;;974:133::o;:::-;1687:23964:78;13432:22:64;1687:23964:78;;1044:14:72;1040:61;;974:133::o;1363:226::-;-1:-1:-1;;;;;1687:23964:78;-1:-1:-1;1687:23964:78;;;1474:17:72;1687:23964:78;;;;;;;;;1516:8:72;;1512:71;;1363:226::o;1512:71::-;1687:23964:78;;-1:-1:-1;;;1547:25:72;;;;;1363:226;-1:-1:-1;;;;;1687:23964:78;-1:-1:-1;1687:23964:78;;;1474:17:72;1687:23964:78;;;;;;;;;1516:8:72;;1512:71;;1363:226::o;1595:184::-;1687:23964:78;;-1:-1:-1;1687:23964:78;;;1671:17:72;1687:23964:78;;;;;;;;;;-1:-1:-1;;;;;;1687:23964:78;;;;;-1:-1:-1;;;;;1687:23964:78;;;1749:17:72;1687:23964:78;;;;;;;-1:-1:-1;;1687:23964:78;;;1595:184:72:o;:::-;1687:23964:78;;-1:-1:-1;1687:23964:78;;;1671:17:72;1687:23964:78;;;;;;;;;;-1:-1:-1;;;;;;1687:23964:78;;;;;-1:-1:-1;;;;;1687:23964:78;;;1749:17:72;1687:23964:78;;;;;;;-1:-1:-1;;1687:23964:78;;;1595:184:72:o;1687:23964:78:-;;;;:::o;:::-;;;;;;;;;;;;2301:412:72;2416:25;1687:23964:78;;;11124:21:64;1687:23964:78;;;;2388:17:72;2381:25;2388:17;;;;2381:25;:::i;:::-;1687:23964:78;2423:17:72;;;;2416:25;:::i;:::-;-1:-1:-1;1687:23964:78;;;2468:17:72;1687:23964:78;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;2551:17:72;1687:23964:78;;;;;;;-1:-1:-1;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;2301:412:72:o;:::-;2416:25;1687:23964:78;;;12870:22:64;1687:23964:78;;;;2388:17:72;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;1687:23964:78;;;2468:17:72;1687:23964:78;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;2551:17:72;1687:23964:78;;;;;;;-1:-1:-1;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;2301:412:72:o;1687:23964:78:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1687:23964:78;;;;;;;;-1:-1:-1;;1687:23964:78;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1530:331:26;1615:21;;:30;1611:109;;1749:33;;;;;;;;-1:-1:-1;;;;;1687:23964:78;1749:33:26;;1687:23964:78;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;1749:33:26;1687:23964:78;;;;;;1796:8:26;1792:63;;1530:331::o;1792:63::-;1687:23964:78;;-1:-1:-1;;;1827:17:26;;;;;1687:23964:78;;;1611:109:26;1687:23964:78;;-1:-1:-1;;;1668:41:26;;1623:4;1668:41;;;1687:23964:78;;;1668:41:26;3993:118:66;1687:23964:78;4042:8:66;1687:23964:78;;;;4038:67:66;;3993:118::o;4038:67::-;1687:23964:78;;-1:-1:-1;;;4073:21:66;;;;;1687:23964:78;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;-1:-1:-1;;;1687:23964:78;;;;;;;;;;;;;;:::o;1482:71::-;;1687:23964;1482:71;;1687:23964;;;;;;;;;;;1482:71;;;:::i;:::-;1687:23964;;-1:-1:-1;;1687:23964:78;1482:71;;;:::o;1682:2::-;;;;;;;;477:1:63;1687:23964:78;;;;;;;;;;;1682:2;;;;;;;;1687:23964;;1682:2;1687:23964;;1682:2;;;;;;;;;;;;;;;;;;:::o;:::-;1687:23964;;;;;;;1682:2;;1687:23964;;;;;1682:2;;;;;;;;1687:23964;;;;;;;;;1682:2;;;1687:23964;1682:2;;;1687:23964;1682:2;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;18755:224:64;-1:-1:-1;;;;;1687:23964:78;;;;;24680:25:64;1687:23964:78;;;;;18755:224:64;;;;8282:41;;1687:23964:78;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;:::i;:::-;;;:::i;:::-;3708:45:66;1687:23964:78;;;;;;;;;;;3708:45:66;1687:23964:78;;;;;;;;;;;;8282:41:64;1687:23964:78;;;;;;;18755:224:64:o;1687:23964:78:-;;;;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18755:224:64:o;1687:23964:78:-;;;-1:-1:-1;;8282:41:64;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:24;1687:23964;;-1:-1:-1;;;1687:23964:78;;;;;;;;;;;;;;;;;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;;;-1:-1:-1;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1687:23964:78;;;;;;19077:1335:64;;19458:6;19077:1335;19335:6;;;;:::i;:::-;19458;;:::i;:::-;1687:23964:78;19481:14:64;1687:23964:78;;;;19480:15:64;19476:930;;19077:1335;:::o;19476:930::-;3708:45:66;19617:21:64;;19669:19;1687:23964:78;;;19714:9:64;;;19725:10;;;;;;19709:270;19996:17;;;;;19992:404;;19476:930;19077:1335;:::o;19992:404::-;1687:23964:78;;20352:29:64;20054:36;;;1687:23964:78;;;;;;;;24680:25:64;1687:23964:78;;;;;;;20054:36:64;:56;1687:23964:78;20270:36:64;1687:23964:78;20270:36:64;;1687:23964:78;;;;;;;;24680:25:64;1687:23964:78;;;;;;;20270:36:64;:45;1687:23964:78;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1687:23964:78;20151:183:64;;;1687:23964:78;;;;;;;;;:::i;:::-;;;;:::i;19714:9:64:-;1687:23964:78;;;;;;19761:27:64;;1687:23964:78;-1:-1:-1;;;;;1687:23964:78;;;;;19761:40:64;19757:137;;1687:23964:78;19714:9:64;;;;19757:137;19825:23;;;;;19870:5;;;;;;8648:175;1687:23964:78;;;;;;-1:-1:-1;1687:23964:78;8758:21:64;1687:23964:78;;8758:58:64;:21;1687:23964:78;-1:-1:-1;1687:23964:78;8758:48:64;1687:23964:78;;;8758:58:64;:::i;:::-;1687:23964:78;;8648:175:64:o;21833:256::-;;;1687:23964:78;;2707:18:65;;;;;1687:23964:78;2707:18:65;;;;;;:::i;:::-;-1:-1:-1;;;;;21980:11:64;1687:23964:78;;;;;;;;;:::i;:::-;-1:-1:-1;1687:23964:78;;2707:18:65;3528:63;;1687:23964:78;;;;;;;;;;;;3528:63:65;;1687:23964:78;;-1:-1:-1;1687:23964:78;3489:15:65;2707:18;1687:23964:78;;-1:-1:-1;1687:23964:78;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;2707:18:65;1687:23964:78;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1687:23964:78;;;;;22075:6:64;1687:23964:78;;-1:-1:-1;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:63:65;;1687:23964:78;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;-1:-1:-1;;;;;3636:23:65;;;:::i;:::-;1687:23964:78;-1:-1:-1;;;;;1687:23964:78;21980:11:64;1687:23964:78;;;21980:11:64;1687:23964:78;;;;;;-1:-1:-1;1687:23964:78;;;;;;;;;2707:18:65;1687:23964:78;;;;;;;;;;;;;:::i;:::-;;;;;;2941:195:65;;;22075:6:64;:::i;1687:23964:78:-;;;;-1:-1:-1;1687:23964:78;;;;;;;;-1:-1:-1;1687:23964:78;2707:18:65;-1:-1:-1;1687:23964:78;;-1:-1:-1;1687:23964:78;-1:-1:-1;;1687:23964:78;;;;;;;;;;22075:6:64;1687:23964:78;;;;;;;-1:-1:-1;;;;;;;;;;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2707:18:65;1687:23964:78;;;;;;;2748:232;1687:23964;2815:14;1687:23964;;;;;;;;2811:147;;2748:232::o;13848:598::-;;;:::i;:::-;14096:9;:14;14092:70;;14198:10;1687:23964;;;;24680:25:64;1687:23964:78;;;;;16937:25:64;:52;1687:23964:78;16937:57:64;14172:88:78;;1687:23964;14275:14;1687:23964;;;;14274:15;14270:118;;14429:9;14096;14198:10;14429:9;:::i;14270:118::-;14347:9;14096;14198:10;14347:9;:::i;14172:88::-;1687:23964;;-1:-1:-1;;;14232:17:78;;;;;14613:767;;;:::i;:::-;14881:11;;14877:68;;15012:10;1687:23964;;;;24680:25:64;1687:23964:78;;;;;18222:25:64;:52;1687:23964:78;15038:15;;15034:77;;15124:20;-1:-1:-1;15124:20:78;15120:79;;1687:23964;15213:14;1687:23964;;;;15212:15;15208:116;;15366:6;15012:10;;15366:6;:::i;15208:116::-;15012:10;20862:6:64;21092;15012:10:78;;20862:6:64;:::i;:::-;20986;15012:10:78;;20986:6:64;:::i;15120:79:78:-;1687:23964;;-1:-1:-1;;;15167:21:78;;;;;14877:68;1687:23964;;-1:-1:-1;;;14915:19:78;;;;;8895:364:64;-1:-1:-1;;;;;1687:23964:78;-1:-1:-1;1687:23964:78;;;9022:21:64;1687:23964:78;;;;;9022:21:64;:48;1687:23964:78;;;9084:14:64;;;9080:81;;9171:15;;;:::i;:::-;1687:23964:78;-1:-1:-1;1687:23964:78;9022:21:64;1687:23964:78;;9022:21:64;1687:23964:78;-1:-1:-1;1687:23964:78;9196:48:64;1687:23964:78;8895:364:64:o;9080:81::-;1687:23964:78;;-1:-1:-1;;;9121:29:64;;;;;22135:259;;;1687:23964:78;;2064:18:65;;;;;1687:23964:78;2064:18:65;;;;;;:::i;:::-;-1:-1:-1;;;;;22283:11:64;1687:23964:78;;;;;;;;;:::i;:::-;2217:25:65;1687:23964:78;;2064:18:65;3528:63;;1687:23964:78;;;;;;;;;;;;3528:63:65;;1687:23964:78;;-1:-1:-1;1687:23964:78;3489:15:65;2064:18;1687:23964:78;;-1:-1:-1;1687:23964:78;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;2217:25:65;1687:23964:78;;;;:::i;:::-;2064:18:65;1687:23964:78;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1687:23964:78;;;;;22380:6:64;1687:23964:78;;-1:-1:-1;1687:23964:78;;;;;;;2217:25:65;1687:23964:78;;;;;;;;;;;2217:25:65;1687:23964:78;;;;;;;;;;;;3528:63:65;;1687:23964:78;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;-1:-1:-1;;;;;3636:23:65;;;:::i;:::-;1687:23964:78;-1:-1:-1;;;;;1687:23964:78;22283:11:64;1687:23964:78;;;22283:11:64;1687:23964:78;;;;;;2217:25:65;1687:23964:78;;;;;;;;;2064:18:65;1687:23964:78;;;;;;;;;;;;;:::i;:::-;;;;;;2299:196:65;;;22380:6:64;:::i;1687:23964:78:-;;;;-1:-1:-1;1687:23964:78;;;;;2217:25:65;1687:23964:78;;-1:-1:-1;1687:23964:78;2064:18:65;-1:-1:-1;1687:23964:78;;-1:-1:-1;1687:23964:78;-1:-1:-1;;1687:23964:78;;;;;;;;2217:25:65;1687:23964:78;22380:6:64;1687:23964:78;;;;;;;-1:-1:-1;;;;;;;;;;;1687:23964:78;;;;;;;;;;;;;;;;;2217:25:65;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2217:25:65;1687:23964:78;;;;2064:18:65;1687:23964:78;;;;;;;15454:1520;1687:23964;15855:14;1687:23964;;;;15851:74;;15454:1520;16046:10;1687:23964;;;;24680:25:64;1687:23964:78;;;;;18222:25:64;:52;1687:23964:78;16071:11;;16067:73;;8720:53:33;16046:10:78;8720:53:33;:::i;:::-;;-1:-1:-1;16046:10:78;;1687:23964;;16254:16;1687:23964;;;;;;;;;;:::i;:::-;;;;15454:1520;1687:23964;;;;15855:14;1687:23964;;;;16297:15;16293:626;;16960:6;16046:10;;;16960:6;:::i;16293:626::-;1687:23964;21092:6:64;16046:10:78;;1687:23964;;16450:16;1687:23964;;;;16496:19;16492:262;;16293:626;16046:10;20862:6:64;16046:10:78;;20862:6:64;:::i;16492:262:78:-;1687:23964;16586:37;16724:14;1687:23964;18222:25:64;1687:23964:78;16586:37;:::i;:::-;18222:25:64;1687:23964:78;16665:10;16046;16665;:::i;16724:14::-;16492:262;;;1687:23964;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;15851:74;;;:::i;:::-;;;2787:1388:33;-1:-1:-1;1687:23964:78;;;2990:12:33;1687:23964:78;;;;;;-1:-1:-1;;1687:23964:78;3024:15:33;;;;-1:-1:-1;;1687:23964:78;;;;;;;;;16201:17;1687:23964;;;;;;;;;;3506:26:33;;;3502:398;;3020:1149;1687:23964:78;;;16201:17;1687:23964;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;16201:17;1687:23964;;;2990:12:33;1687:23964:78;;;;;;2990:12:33;4104:11;:::o;1687:23964:78:-;-1:-1:-1;;;1687:23964:78;;;;;;;;3502:398:33;1687:23964:78;3572:22:33;3694:26;3572:22;;:::i;:::-;1687:23964:78;;;;;;3694:26:33;;;;:::i;1687:23964:78:-;;;;;2990:12:33;1687:23964:78;;;;;;3502:398:33;;;;;1687:23964:78;-1:-1:-1;;;1687:23964:78;;;;;;;;;-1:-1:-1;;;1687:23964:78;;;;;;;;3020:1149:33;4146:12;;;:::o;1687:23964:78:-;;;;;;;;;;;;;;;:::o;18548:1477::-;;;;18723:11;;18719:48;;1687:23964;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;18733:1;1687:23964;;;;;;;;;;18869:32;;;-1:-1:-1;20487:21:78;1687:23964;20478:30;;;:::i;:::-;1687:23964;;20529:35;1687:23964;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18865:553;1687:23964;;19626:19;;;19622:56;;19691:23;;;19687:60;;1687:23964;;;19848:9;;19859:18;;;;;;18548:1477;;;;;;;:::o;19848:9::-;1687:23964;;-1:-1:-1;;;;;19920:11:78;1687:23964;19920:11;;:::i;:::-;1687:23964;;;;19895:16;1687:23964;;;;;19895:54;1687:23964;;;19895:54;:::i;:::-;1687:23964;;;19848:9;;1687:23964;;;;;;;;;;;;-1:-1:-1;1687:23964:78;;;;;;18865:553;18980:38;1687:23964;18980:38;;;18976:442;1687:23964;;;;;;2503:51;;;;19263;;;;;1687:23964;;;;;;;;;;;19263:51;18976:442;1687:23964;;;2503:51;;;;19352:55;;;;;1687:23964;;;;;;;;;;;-1:-1:-1;;;1687:23964:78;;;;19352:55;1687:23964;-1:-1:-1;;;1687:23964:78;;;;;;;;21157:890;;1687:23964;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1687:23964:78;;;:::i;:::-;;;;;;;;;;-1:-1:-1;7631:8:64;;;;;;21553:36:78;;-1:-1:-1;1687:23964:78;;;6312:27:64;1687:23964:78;;;6364:12:64;;;;6359:236;1687:23964:78;;;6359:236:64;1687:23964:78;;;;;;21640:20;1687:23964;;;;;;;;;;;;;;;;;;;21664:3;21726:229;1687:23964;;21726:229;;:::i;:::-;21970:6;;21966:75;;21157:890;;:::o;21966:75::-;1687:23964;;;;;;;;;;21999:31;;;;;;1687:23964;21999:31;;;1687:23964;21999:31;6364:12:64;1687:23964:78;;;;;;;;;6378:9:64;;;;;-1:-1:-1;1687:23964:78;;;598:23:71;1687:23964:78;;;;;;;;;;;;6480:45:64;;6494:31;;-1:-1:-1;;;;;1687:23964:78;6494:31:64;:::i;:::-;6480:45;;:::i;:::-;1687:23964:78;;;6364:12:64;;;;6378:9;;;;;;7620;-1:-1:-1;;;;;1687:23964:78;7692:12:64;;;;:::i;:::-;1687:23964:78;;-1:-1:-1;1687:23964:78;1317:17:72;1687:23964:78;;;;-1:-1:-1;1687:23964:78;;;1317:33:72;7657:116:64;;7829:12;7808:34;1687:23964:78;7829:12:64;;;;;:::i;:::-;1687:23964:78;;7808:34:64;:::i;:::-;7786:56;;;;:::i;:::-;1687:23964:78;;7620:9:64;;7657:116;7745:12;;;1687:23964:78;7745:12:64;;;:::i;:::-;1687:23964:78;;;-1:-1:-1;;;7732:26:64;;1687:23964:78;;7732:26:64;;;1687:23964:78;7732:26:64;1239:1329:60;1687:23964:78;;1239:1329:60;;1687:23964:78;;;1596:21:60;;1592:90;;1687:23964:78;;1696:38:60;;;;:76;;;1239:1329;1692:148;;1855:9;;;;;1850:568;1866:20;;;;;;2431:19;;;;;;;;2427:75;;1687:23964:78;2511:50:60;2527:33;1239:1329;:::o;2427:75::-;1687:23964:78;2466:25:60;1687:23964:78;2466:25:60;:::o;1855:9::-;2031:13;;;;;;1957:102;2031:13;;;;:::i;:::-;;1957:102;;:::i;:::-;1687:23964:78;;;;:::i;:::-;2073:116:60;;-1:-1:-1;;;;;1687:23964:78;2219:14:60;;;;:::i;:::-;1687:23964:78;;;;2206:27:60;2202:105;;2329:19;1687:23964:78;2338:10:60;;;;;:::i;:::-;1687:23964:78;2329:19:60;;:::i;:::-;1687:23964:78;;1855:9:60;;;;;;;2202:105;2253:39;;;;;;;;1687:23964:78;2253:39:60;2269:22;2253:39;:::o;2073:116::-;2135:39;;;;;;;;;1687:23964:78;2135:39:60;2151:22;2135:39;:::o;1692:148::-;1788:41;;;;;;;;1687:23964:78;1788:41:60;:::o;1696:76::-;1687:23964:78;;;1738:34:60;;;1696:76;;1592:90;1633:38;;;;;;;;1649:21;1633:38;:::o;2483:766:29:-;1687:23964:78;;;2483:766:29;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:29;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;1687:23964:78;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:29;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;6946:20:29;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;1687:23964:78;;;;;;;;;;6633:164:29;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o;22257:269:78:-;;22353:65;1682:2;22360:57;;22353:65;:::i;:::-;1687:23964;22465:1;1687:23964;;;;;;;-1:-1:-1;;1687:23964:78;;22465:1;1687:23964;;:::i;:::-;;;;;;;22445:24;-1:-1:-1;;;;;1687:23964:78;;22257:269::o;22598:481::-;22681:20;1687:23964;;;22723:9;22681:1;22734:10;;;;;;22598:481;;;;:::o;22723:9::-;22766:23;;;:::i;:::-;1687:23964;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;22766:31;22762:242;;1687:23964;;;;22723:9;;22762:242;1687:23964;;;;;;;;;;;;;;;;22843:32;22817:23;22843:32;;22817:58;22843:32;;:::i;:::-;1687:23964;;;;;;;22817:23;;:::i;:::-;:58;1687:23964;;;;;;;;;;;;;;;;;;;;;;;;;;22817:58;1687:23964;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22984:5;;;;;;1687:23964;;;;;;22681:1;1687:23964;;;22681:1;1687:23964;;;;;;;22681:1;1687:23964;;;22681:1;1687:23964;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1687:23964:78;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":287,"length":20}]}}},"methodIdentifiers":{"addBootstrapNode(string)":"10fd4261","claim()":"4e71d92d","claimRewardForRelayer()":"ed7c4da1","distributeRewardToRelayers(uint256,uint256,uint8)":"4c860af6","join(bytes)":"6170b162","kill()":"41c0e1b5","leave()":"d66d9e19","pause()":"8456cb59","paused()":"5c975abb","preFund()":"0b7fbe60","preRelease(uint256)":"66783c9b","setFederatedPower(address[],bytes[],uint256[])":"da5d09ee","stake()":"3a4b66f1","submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":"26811936","submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":"b9ee2bb9","unpause()":"3f4ba83a","unstake(uint256)":"2e17de78","validateActiveQuorumSignatures(address[],bytes32,bytes[])":"cc2dc2b9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchWithNoMessages\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotConfirmFutureChanges\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CollateralIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicatedGenesisValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFederationPayload\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPublicKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"InvalidSignatureErr\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxMsgsPerBatchExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoCollateralToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAllValidatorsHaveLeft\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughGenesisValidators\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOfPublicKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotStakedBefore\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyBootstrapped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyKilled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawExceedingCollateral\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"NextBottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct Validator[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"SubnetBootstrapped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"netAddress\",\"type\":\"string\"}],\"name\":\"addBootstrapNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"internalType\":\"enum QuorumObjKind\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"distributeRewardToRelayers\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"preFund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"preRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"publicKeys\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"powers\",\"type\":\"uint256[]\"}],\"name\":\"setFederatedPower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"validateActiveQuorumSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"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\":{\"addBootstrapNode(string)\":{\"params\":{\"netAddress\":\"The network address of the new bootstrap node.\"}},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"params\":{\"height\":\"The height of the checkpoint for which rewards are being distributed.\",\"kind\":\"The type of object for which rewards are being distributed.\",\"reward\":\"The total amount of reward to be distributed.\"}},\"join(bytes)\":{\"params\":{\"publicKey\":\"The off-chain 65 byte public key that should be associated with the validator.\"}},\"kill()\":{\"details\":\"It is not a privileged operation.\"},\"preFund()\":{\"details\":\"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply.\"},\"preRelease(uint256)\":{\"details\":\"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.\"},\"setFederatedPower(address[],bytes[],uint256[])\":{\"details\":\"method that allows the contract owner to set the validators' federated power.\",\"params\":{\"powers\":\"The federated powers to be assigned to validators.\",\"publicKeys\":\"The public keys of validators.\",\"validators\":\"The addresses of validators.\"}},\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"details\":\"It triggers the execution of a cross-net message batch.\",\"params\":{\"batch\":\"The batch of bottom-up messages.\",\"signatories\":\"The addresses of validators signing the batch.\",\"signatures\":\"The signatures of validators on the batch.\"}},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"details\":\"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.\",\"params\":{\"checkpoint\":\"The executed bottom-up checkpoint.\",\"signatories\":\"The addresses of validators signing the checkpoint.\",\"signatures\":\"The signatures of validators on the checkpoint.\"}},\"unstake(uint256)\":{\"details\":\"`leave` must be used to unstake the entire stake.\"},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"details\":\"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.\",\"params\":{\"hash\":\"The hash of the checkpoint.\",\"signatories\":\"The addresses of the signatories.\",\"signatures\":\"The packed signatures of the checkpoint.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addBootstrapNode(string)\":{\"notice\":\"Add a bootstrap node.\"},\"claim()\":{\"notice\":\"Validator claims their released collateral.\"},\"claimRewardForRelayer()\":{\"notice\":\"Relayer claims its reward.\"},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"notice\":\"Distributes rewards to relayers for a specific checkpoint.\"},\"join(bytes)\":{\"notice\":\"method that allows a validator to join the subnet\"},\"kill()\":{\"notice\":\"method that allows to kill the subnet when all validators left.\"},\"leave()\":{\"notice\":\"method that allows a validator to leave the subnet.\"},\"pause()\":{\"notice\":\"Pauses all contract functions with the `whenNotPaused` modifier.\"},\"paused()\":{\"notice\":\"sets if to pause the contract\"},\"preFund()\":{\"notice\":\"method to add some initial balance into a subnet that hasn't yet bootstrapped.\"},\"preRelease(uint256)\":{\"notice\":\"method to remove funds from the initial balance of a subnet.\"},\"setFederatedPower(address[],bytes[],uint256[])\":{\"notice\":\"Sets the federated power of validators.\"},\"stake()\":{\"notice\":\"method that allows a validator to increase its stake.\"},\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"notice\":\"Submits a batch of bottom-up messages for execution.\"},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"notice\":\"Submits a checkpoint commitment for execution.\"},\"unpause()\":{\"notice\":\"Unpauses all contract functions with the `whenNotPaused` modifier.\"},\"unstake(uint256)\":{\"notice\":\"method that allows a validator to unstake a part of its collateral from a subnet.\"},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"notice\":\"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorManagerFacet.sol\":\"SubnetActorManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9\",\"dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c\",\"dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"BatchWithNoMessages"},{"inputs":[],"type":"error","name":"CannotConfirmFutureChanges"},{"inputs":[],"type":"error","name":"CannotReleaseZero"},{"inputs":[],"type":"error","name":"CollateralIsZero"},{"inputs":[],"type":"error","name":"DuplicatedGenesisValidator"},{"inputs":[],"type":"error","name":"EmptyAddress"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidBatchEpoch"},{"inputs":[],"type":"error","name":"InvalidCheckpointEpoch"},{"inputs":[],"type":"error","name":"InvalidFederationPayload"},{"inputs":[],"type":"error","name":"InvalidPublicKeyLength"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"type":"error","name":"InvalidSignatureErr"},{"inputs":[],"type":"error","name":"MaxMsgsPerBatchExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NoCollateralToWithdraw"},{"inputs":[],"type":"error","name":"NotAllValidatorsHaveLeft"},{"inputs":[],"type":"error","name":"NotEnoughBalance"},{"inputs":[],"type":"error","name":"NotEnoughCollateral"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotEnoughGenesisValidators"},{"inputs":[],"type":"error","name":"NotGateway"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"NotOwnerOfPublicKey"},{"inputs":[],"type":"error","name":"NotStakedBefore"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotValidator"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"type":"error","name":"SubnetAlreadyBootstrapped"},{"inputs":[],"type":"error","name":"SubnetAlreadyKilled"},{"inputs":[],"type":"error","name":"WithdrawExceedingCollateral"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointExecuted","anonymous":false},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}],"indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointSubmitted","anonymous":false},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"NextBottomUpCheckpointExecuted","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"struct Validator[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"indexed":false}],"type":"event","name":"SubnetBootstrapped","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"string","name":"netAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addBootstrapNode"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"enum QuorumObjKind","name":"kind","type":"uint8"}],"stateMutability":"payable","type":"function","name":"distributeRewardToRelayers"},{"inputs":[{"internalType":"bytes","name":"publicKey","type":"bytes"}],"stateMutability":"payable","type":"function","name":"join"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"leave"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"preFund"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preRelease"},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"bytes[]","name":"publicKeys","type":"bytes[]"},{"internalType":"uint256[]","name":"powers","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"setFederatedPower"},{"inputs":[],"stateMutability":"payable","type":"function","name":"stake"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitBottomUpMsgBatch"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitCheckpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"},{"inputs":[{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"validateActiveQuorumSignatures"}],"devdoc":{"kind":"dev","methods":{"addBootstrapNode(string)":{"params":{"netAddress":"The network address of the new bootstrap node."}},"distributeRewardToRelayers(uint256,uint256,uint8)":{"params":{"height":"The height of the checkpoint for which rewards are being distributed.","kind":"The type of object for which rewards are being distributed.","reward":"The total amount of reward to be distributed."}},"join(bytes)":{"params":{"publicKey":"The off-chain 65 byte public key that should be associated with the validator."}},"kill()":{"details":"It is not a privileged operation."},"preFund()":{"details":"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply."},"preRelease(uint256)":{"details":"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps."},"setFederatedPower(address[],bytes[],uint256[])":{"details":"method that allows the contract owner to set the validators' federated power.","params":{"powers":"The federated powers to be assigned to validators.","publicKeys":"The public keys of validators.","validators":"The addresses of validators."}},"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"details":"It triggers the execution of a cross-net message batch.","params":{"batch":"The batch of bottom-up messages.","signatories":"The addresses of validators signing the batch.","signatures":"The signatures of validators on the batch."}},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"details":"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.","params":{"checkpoint":"The executed bottom-up checkpoint.","signatories":"The addresses of validators signing the checkpoint.","signatures":"The signatures of validators on the checkpoint."}},"unstake(uint256)":{"details":"`leave` must be used to unstake the entire stake."},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"details":"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.","params":{"hash":"The hash of the checkpoint.","signatories":"The addresses of the signatories.","signatures":"The packed signatures of the checkpoint."}}},"version":1},"userdoc":{"kind":"user","methods":{"addBootstrapNode(string)":{"notice":"Add a bootstrap node."},"claim()":{"notice":"Validator claims their released collateral."},"claimRewardForRelayer()":{"notice":"Relayer claims its reward."},"distributeRewardToRelayers(uint256,uint256,uint8)":{"notice":"Distributes rewards to relayers for a specific checkpoint."},"join(bytes)":{"notice":"method that allows a validator to join the subnet"},"kill()":{"notice":"method that allows to kill the subnet when all validators left."},"leave()":{"notice":"method that allows a validator to leave the subnet."},"pause()":{"notice":"Pauses all contract functions with the `whenNotPaused` modifier."},"paused()":{"notice":"sets if to pause the contract"},"preFund()":{"notice":"method to add some initial balance into a subnet that hasn't yet bootstrapped."},"preRelease(uint256)":{"notice":"method to remove funds from the initial balance of a subnet."},"setFederatedPower(address[],bytes[],uint256[])":{"notice":"Sets the federated power of validators."},"stake()":{"notice":"method that allows a validator to increase its stake."},"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"notice":"Submits a batch of bottom-up messages for execution."},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"notice":"Submits a checkpoint commitment for execution."},"unpause()":{"notice":"Unpauses all contract functions with the `whenNotPaused` modifier."},"unstake(uint256)":{"notice":"method that allows a validator to unstake a part of its collateral from a subnet."},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"notice":"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnet/SubnetActorManagerFacet.sol":"SubnetActorManagerFacet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xb2d47c0e5d9628c4d6ebcb2b83b2997bb9d3aa458225d0fd7bb33c54b0c054ed","urls":["bzz-raw://e1b4f5847bb88b17052846c3bb21eb4845ed539818e5fa82e941a65255f86ff9","dweb:/ipfs/QmTmJKooGViXmSHxEoNkSxLjAEGDpvj3ESJfun7UvsvqW4"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0x9ca118607c02b4c6f8f9d58cae9fc2b321d73a382812929cddbdfea457f4c6ad","urls":["bzz-raw://09ff732cb0a04b01a40b9cc28a23ff1b844a14c8a4a99fcbcd9d08bf26cc673c","dweb:/ipfs/QmVAsL4TpezYVPjnguuTYt74d21wx8wUrnFeRF9A5yLUKp"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","id":50948,"exportedSymbols":{"Address":[32409],"BatchWithNoMessages":[36976],"BottomUpCheckpoint":[48410],"BottomUpMsgBatch":[48423],"BottomUpMsgBatchInfo":[48428],"CannotReleaseZero":[36942],"CollateralIsZero":[36958],"DuplicatedGenesisValidator":[37098],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[49383],"EmptyAddress":[36960],"EnumerableSet":[35386],"IGateway":[39904],"ISubnetActor":[39978],"InvalidBatchEpoch":[36974],"InvalidCheckpointEpoch":[36972],"InvalidFederationPayload":[37096],"InvalidPublicKeyLength":[37010],"InvalidSignatureErr":[37006],"LibDiamond":[41229],"LibStaking":[45464],"LibValidatorSet":[44594],"MaxMsgsPerBatchExceeded":[36950],"MethodNotAllowed":[37094],"MultisignatureChecker":[42592],"NotAllValidatorsHaveLeft":[37022],"NotEnoughBalance":[37030],"NotEnoughCollateral":[37034],"NotEnoughFunds":[37038],"NotEnoughGenesisValidators":[37100],"NotOwnerOfPublicKey":[37048],"NotStakedBefore":[37052],"NotValidator":[37058],"Pausable":[42733],"PermissionMode":[48648],"QuorumObjKind":[48490],"ReentrancyGuard":[43314],"SubnetActorManagerFacet":[50947],"SubnetActorModifiers":[46139],"SubnetAlreadyBootstrapped":[37082],"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH":[49386],"Validator":[48694],"ValidatorSet":[48673]},"nodeType":"SourceUnit","src":"46:25606:78","nodes":[{"id":49327,"nodeType":"PragmaDirective","src":"46:23:78","nodes":[],"literals":["solidity","0.8",".19"]},{"id":49349,"nodeType":"ImportDirective","src":"71:484:78","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":50948,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":49328,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36974,"src":"79:17:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49329,"name":"NotEnoughGenesisValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37100,"src":"98:26:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49330,"name":"DuplicatedGenesisValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37098,"src":"126:26:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49331,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36950,"src":"154:23:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49332,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36976,"src":"179:19:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49333,"name":"InvalidFederationPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37096,"src":"200:24:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49334,"name":"SubnetAlreadyBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37082,"src":"226:25:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49335,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37038,"src":"253:14:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49336,"name":"CollateralIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36958,"src":"269:16:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49337,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36942,"src":"287:17:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49338,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37048,"src":"306:19:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49339,"name":"EmptyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36960,"src":"327:12:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49340,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37030,"src":"341:16:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49341,"name":"NotEnoughCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37034,"src":"359:19:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49342,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37058,"src":"380:12:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49343,"name":"NotAllValidatorsHaveLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37022,"src":"394:24:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49344,"name":"NotStakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37052,"src":"420:15:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49345,"name":"InvalidSignatureErr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37006,"src":"437:19:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49346,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36972,"src":"458:22:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49347,"name":"InvalidPublicKeyLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37010,"src":"482:22:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49348,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37094,"src":"506:16:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49351,"nodeType":"ImportDirective","src":"556:52:78","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":50948,"sourceUnit":39905,"symbolAliases":[{"foreign":{"id":49350,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"564:8:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49353,"nodeType":"ImportDirective","src":"609:60:78","nodes":[],"absolutePath":"src/interfaces/ISubnetActor.sol","file":"../interfaces/ISubnetActor.sol","nameLocation":"-1:-1:-1","scope":50948,"sourceUnit":39979,"symbolAliases":[{"foreign":{"id":49352,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39978,"src":"617:12:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49355,"nodeType":"ImportDirective","src":"670:52:78","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":50948,"sourceUnit":48538,"symbolAliases":[{"foreign":{"id":49354,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48490,"src":"678:13:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49359,"nodeType":"ImportDirective","src":"723:99:78","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":50948,"sourceUnit":48470,"symbolAliases":[{"foreign":{"id":49356,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48410,"src":"731:18:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49357,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48423,"src":"751:16:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49358,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48428,"src":"769:20:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49363,"nodeType":"ImportDirective","src":"823:78:78","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":50948,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":49360,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"831:9:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49361,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48673,"src":"842:12:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49362,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"856:14:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49365,"nodeType":"ImportDirective","src":"902:48:78","nodes":[],"absolutePath":"src/lib/LibPausable.sol","file":"../lib/LibPausable.sol","nameLocation":"-1:-1:-1","scope":50948,"sourceUnit":42734,"symbolAliases":[{"foreign":{"id":49364,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42733,"src":"910:8:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49367,"nodeType":"ImportDirective","src":"951:49:78","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":50948,"sourceUnit":41230,"symbolAliases":[{"foreign":{"id":49366,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"959:10:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49369,"nodeType":"ImportDirective","src":"1001:74:78","nodes":[],"absolutePath":"src/lib/LibMultisignatureChecker.sol","file":"../lib/LibMultisignatureChecker.sol","nameLocation":"-1:-1:-1","scope":50948,"sourceUnit":42593,"symbolAliases":[{"foreign":{"id":49368,"name":"MultisignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42592,"src":"1009:21:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49371,"nodeType":"ImportDirective","src":"1076:62:78","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":50948,"sourceUnit":43315,"symbolAliases":[{"foreign":{"id":49370,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43314,"src":"1084:15:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49373,"nodeType":"ImportDirective","src":"1139:70:78","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"../lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":50948,"sourceUnit":46140,"symbolAliases":[{"foreign":{"id":49372,"name":"SubnetActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46139,"src":"1147:20:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49376,"nodeType":"ImportDirective","src":"1210:66:78","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":50948,"sourceUnit":45729,"symbolAliases":[{"foreign":{"id":49374,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44594,"src":"1218:15:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":49375,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"1235:10:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49378,"nodeType":"ImportDirective","src":"1277:85:78","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":50948,"sourceUnit":35387,"symbolAliases":[{"foreign":{"id":49377,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35386,"src":"1285:13:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49380,"nodeType":"ImportDirective","src":"1363:65:78","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":50948,"sourceUnit":32410,"symbolAliases":[{"foreign":{"id":49379,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"1371:7:78","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49383,"nodeType":"VariableDeclaration","src":"1430:123:78","nodes":[],"constant":true,"mutability":"constant","name":"ERR_PERMISSIONED_AND_BOOTSTRAPPED","nameLocation":"1446:33:78","scope":50948,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":49381,"name":"string","nodeType":"ElementaryTypeName","src":"1430:6:78","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e656420697320656e61626c656420616e64207375626e657420626f6f747374726170706564","id":49382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1482:71:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_c378361dcfdda07d25cacf3f9129b5aaba0002006afe795cd699e6c675496f23","typeString":"literal_string \"Method not allowed if permissioned is enabled and subnet bootstrapped\""},"value":"Method not allowed if permissioned is enabled and subnet bootstrapped"},"visibility":"internal"},{"id":49386,"nodeType":"VariableDeclaration","src":"1625:59:78","nodes":[],"constant":true,"mutability":"constant","name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nameLocation":"1642:37:78","scope":50948,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49384,"name":"uint256","nodeType":"ElementaryTypeName","src":"1625:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3635","id":49385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1682:2:78","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"visibility":"internal"},{"id":50947,"nodeType":"ContractDefinition","src":"1687:23964:78","nodes":[{"id":49398,"nodeType":"UsingForDirective","src":"1791:49:78","nodes":[],"global":false,"libraryName":{"id":49395,"name":"EnumerableSet","nameLocations":["1797:13:78"],"nodeType":"IdentifierPath","referencedDeclaration":35386,"src":"1797:13:78"},"typeName":{"id":49397,"nodeType":"UserDefinedTypeName","pathNode":{"id":49396,"name":"EnumerableSet.AddressSet","nameLocations":["1815:13:78","1829:10:78"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"1815:24:78"},"referencedDeclaration":35099,"src":"1815:24:78","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":49402,"nodeType":"UsingForDirective","src":"1845:39:78","nodes":[],"global":false,"libraryName":{"id":49399,"name":"LibValidatorSet","nameLocations":["1851:15:78"],"nodeType":"IdentifierPath","referencedDeclaration":44594,"src":"1851:15:78"},"typeName":{"id":49401,"nodeType":"UserDefinedTypeName","pathNode":{"id":49400,"name":"ValidatorSet","nameLocations":["1871:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":48673,"src":"1871:12:78"},"referencedDeclaration":48673,"src":"1871:12:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":49405,"nodeType":"UsingForDirective","src":"1889:34:78","nodes":[],"global":false,"libraryName":{"id":49403,"name":"Address","nameLocations":["1895:7:78"],"nodeType":"IdentifierPath","referencedDeclaration":32409,"src":"1895:7:78"},"typeName":{"id":49404,"name":"address","nodeType":"ElementaryTypeName","src":"1907:15:78","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":49412,"nodeType":"EventDefinition","src":"1929:84:78","nodes":[],"anonymous":false,"eventSelector":"d63563b27ce36973f83298826a819cf265baf84d804105df045332d478d6e729","name":"BottomUpCheckpointSubmitted","nameLocation":"1935:27:78","parameters":{"id":49411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49408,"indexed":false,"mutability":"mutable","name":"checkpoint","nameLocation":"1982:10:78","nodeType":"VariableDeclaration","scope":49412,"src":"1963:29:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":49407,"nodeType":"UserDefinedTypeName","pathNode":{"id":49406,"name":"BottomUpCheckpoint","nameLocations":["1963:18:78"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"1963:18:78"},"referencedDeclaration":48410,"src":"1963:18:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":49410,"indexed":false,"mutability":"mutable","name":"submitter","nameLocation":"2002:9:78","nodeType":"VariableDeclaration","scope":49412,"src":"1994:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49409,"name":"address","nodeType":"ElementaryTypeName","src":"1994:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1962:50:78"}},{"id":49418,"nodeType":"EventDefinition","src":"2018:67:78","nodes":[],"anonymous":false,"eventSelector":"80a0a4fd3793019c6c7b5b585afa82ddec6688153f00043373aa40b7f98c7684","name":"BottomUpCheckpointExecuted","nameLocation":"2024:26:78","parameters":{"id":49417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49414,"indexed":false,"mutability":"mutable","name":"epoch","nameLocation":"2059:5:78","nodeType":"VariableDeclaration","scope":49418,"src":"2051:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49413,"name":"uint256","nodeType":"ElementaryTypeName","src":"2051:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49416,"indexed":false,"mutability":"mutable","name":"submitter","nameLocation":"2074:9:78","nodeType":"VariableDeclaration","scope":49418,"src":"2066:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49415,"name":"address","nodeType":"ElementaryTypeName","src":"2066:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2050:34:78"}},{"id":49424,"nodeType":"EventDefinition","src":"2090:71:78","nodes":[],"anonymous":false,"eventSelector":"68a21aa05d1dd93ff19ca25c17b08ee04c5707e70b46d2355f126ac379e50e78","name":"NextBottomUpCheckpointExecuted","nameLocation":"2096:30:78","parameters":{"id":49423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49420,"indexed":false,"mutability":"mutable","name":"epoch","nameLocation":"2135:5:78","nodeType":"VariableDeclaration","scope":49424,"src":"2127:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49419,"name":"uint256","nodeType":"ElementaryTypeName","src":"2127:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":49422,"indexed":false,"mutability":"mutable","name":"submitter","nameLocation":"2150:9:78","nodeType":"VariableDeclaration","scope":49424,"src":"2142:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49421,"name":"address","nodeType":"ElementaryTypeName","src":"2142:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2126:34:78"}},{"id":49430,"nodeType":"EventDefinition","src":"2166:38:78","nodes":[],"anonymous":false,"eventSelector":"4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593","name":"SubnetBootstrapped","nameLocation":"2172:18:78","parameters":{"id":49429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49428,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49430,"src":"2191:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":49426,"nodeType":"UserDefinedTypeName","pathNode":{"id":49425,"name":"Validator","nameLocations":["2191:9:78"],"nodeType":"IdentifierPath","referencedDeclaration":48694,"src":"2191:9:78"},"referencedDeclaration":48694,"src":"2191:9:78","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_storage_ptr","typeString":"struct Validator"}},"id":49427,"nodeType":"ArrayTypeName","src":"2191:11:78","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"}],"src":"2190:13:78"}},{"id":49448,"nodeType":"FunctionDefinition","src":"2357:230:78","nodes":[],"body":{"id":49447,"nodeType":"Block","src":"2409:178:78","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"id":49439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":49434,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"2423:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2425:12:78","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"2423:14:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":49436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2438:14:78","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":48652,"src":"2423:29:78","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":49437,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"2456:14:78","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":49438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2471:9:78","memberName":"Federated","nodeType":"MemberAccess","referencedDeclaration":48646,"src":"2456:24:78","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"src":"2423:57:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49445,"nodeType":"IfStatement","src":"2419:146:78","trueBody":{"id":49444,"nodeType":"Block","src":"2482:83:78","statements":[{"errorCall":{"arguments":[{"id":49441,"name":"ERR_PERMISSIONED_AND_BOOTSTRAPPED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49383,"src":"2520:33:78","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":49440,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37094,"src":"2503:16:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":49442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:51:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49443,"nodeType":"RevertStatement","src":"2496:58:78"}]}},{"functionReturnParameters":49433,"id":49446,"nodeType":"Return","src":"2574:7:78"}]},"documentation":{"id":49431,"nodeType":"StructuredDocumentation","src":"2210:142:78","text":"@notice Ensures that the subnet is operating under Federated permission mode.\n @dev Reverts if the subnet is not in Federated mode."},"implemented":true,"kind":"function","modifiers":[],"name":"enforceFederatedValidation","nameLocation":"2366:26:78","parameters":{"id":49432,"nodeType":"ParameterList","parameters":[],"src":"2392:2:78"},"returnParameters":{"id":49433,"nodeType":"ParameterList","parameters":[],"src":"2409:0:78"},"scope":50947,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49466,"nodeType":"FunctionDefinition","src":"2748:232:78","nodes":[],"body":{"id":49465,"nodeType":"Block","src":"2801:179:78","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},"id":49457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":49452,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"2815:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2817:12:78","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"2815:14:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":49454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2830:14:78","memberName":"permissionMode","nodeType":"MemberAccess","referencedDeclaration":48652,"src":"2815:29:78","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":49455,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"2848:14:78","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":49456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2863:10:78","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":48645,"src":"2848:25:78","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},"src":"2815:58:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49463,"nodeType":"IfStatement","src":"2811:147:78","trueBody":{"id":49462,"nodeType":"Block","src":"2875:83:78","statements":[{"errorCall":{"arguments":[{"id":49459,"name":"ERR_PERMISSIONED_AND_BOOTSTRAPPED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49383,"src":"2913:33:78","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":49458,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37094,"src":"2896:16:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":49460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2896:51:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49461,"nodeType":"RevertStatement","src":"2889:58:78"}]}},{"functionReturnParameters":49451,"id":49464,"nodeType":"Return","src":"2967:7:78"}]},"documentation":{"id":49449,"nodeType":"StructuredDocumentation","src":"2593:150:78","text":"@notice Ensures that the subnet is operating under Collateral-based permission mode.\n @dev Reverts if the subnet is not in Collateral mode."},"implemented":true,"kind":"function","modifiers":[],"name":"enforceCollateralValidation","nameLocation":"2757:27:78","parameters":{"id":49450,"nodeType":"ParameterList","parameters":[],"src":"2784:2:78"},"returnParameters":{"id":49451,"nodeType":"ParameterList","parameters":[],"src":"2801:0:78"},"scope":50947,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":49479,"nodeType":"FunctionDefinition","src":"3067:96:78","nodes":[],"body":{"id":49478,"nodeType":"Block","src":"3093:70:78","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":49470,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"3103:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":49472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3114:22:78","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":40691,"src":"3103:33:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":49473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3103:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49474,"nodeType":"ExpressionStatement","src":"3103:35:78"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":49475,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42692,"src":"3148:6:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":49476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3148:8:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49477,"nodeType":"ExpressionStatement","src":"3148:8:78"}]},"documentation":{"id":49467,"nodeType":"StructuredDocumentation","src":"2986:76:78","text":"@notice Pauses all contract functions with the `whenNotPaused` modifier."},"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[],"name":"pause","nameLocation":"3076:5:78","parameters":{"id":49468,"nodeType":"ParameterList","parameters":[],"src":"3081:2:78"},"returnParameters":{"id":49469,"nodeType":"ParameterList","parameters":[],"src":"3093:0:78"},"scope":50947,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49492,"nodeType":"FunctionDefinition","src":"3252:100:78","nodes":[],"body":{"id":49491,"nodeType":"Block","src":"3280:72:78","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":49483,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"3290:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":49485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3301:22:78","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":40691,"src":"3290:33:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":49486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3290:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49487,"nodeType":"ExpressionStatement","src":"3290:35:78"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":49488,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42717,"src":"3335:8:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":49489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3335:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49490,"nodeType":"ExpressionStatement","src":"3335:10:78"}]},"documentation":{"id":49480,"nodeType":"StructuredDocumentation","src":"3169:78:78","text":"@notice Unpauses all contract functions with the `whenNotPaused` modifier."},"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"3261:7:78","parameters":{"id":49481,"nodeType":"ParameterList","parameters":[],"src":"3268:2:78"},"returnParameters":{"id":49482,"nodeType":"ParameterList","parameters":[],"src":"3280:0:78"},"scope":50947,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49634,"nodeType":"FunctionDefinition","src":"3820:2808:78","nodes":[],"body":{"id":49633,"nodeType":"Block","src":"4000:2628:78","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":49520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49507,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49496,"src":"4141:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":49508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4152:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"4141:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49509,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"4167:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4169:28:78","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":46012,"src":"4167:30:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":49511,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"4200:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4202:19:78","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":46028,"src":"4200:21:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4167:54:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4141:80:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49515,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49496,"src":"4237:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":49516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4248:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"4237:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":49517,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"4263:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4265:28:78","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":46012,"src":"4263:30:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4237:56:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4141:152:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49525,"nodeType":"IfStatement","src":"4124:236:78","trueBody":{"id":49524,"nodeType":"Block","src":"4304:56:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49521,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36972,"src":"4325:22:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4325:24:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49523,"nodeType":"RevertStatement","src":"4318:31:78"}]}},{"assignments":[49527],"declarations":[{"constant":false,"id":49527,"mutability":"mutable","name":"checkpointHash","nameLocation":"4377:14:78","nodeType":"VariableDeclaration","scope":49633,"src":"4369:22:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49526,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4369:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":49534,"initialValue":{"arguments":[{"arguments":[{"id":49531,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49496,"src":"4415:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"id":49529,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4404:3:78","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":49530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4408:6:78","memberName":"encode","nodeType":"MemberAccess","src":"4404:10:78","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":49532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4404:22:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49528,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4394:9:78","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4394:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4369:58:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49535,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49496,"src":"4442:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":49536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4453:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"4442:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49537,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"4468:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4470:28:78","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":46012,"src":"4468:30:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":49539,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"4501:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4503:19:78","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":46028,"src":"4501:21:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4468:54:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4442:80:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49594,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49496,"src":"5541:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":49595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5552:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"5541:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":49596,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"5567:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5569:28:78","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":46012,"src":"5567:30:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5541:56:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49631,"nodeType":"IfStatement","src":"5537:1085:78","trueBody":{"id":49630,"nodeType":"Block","src":"5599:1023:78","statements":[{"assignments":[49600],"declarations":[{"constant":false,"id":49600,"mutability":"mutable","name":"lastCheckpointHash","nameLocation":"6299:18:78","nodeType":"VariableDeclaration","scope":49630,"src":"6291:26:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49599,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6291:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":49611,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":49604,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"6341:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6343:20:78","memberName":"committedCheckpoints","nodeType":"MemberAccess","referencedDeclaration":45992,"src":"6341:22:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":49608,"indexExpression":{"expression":{"id":49606,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49496,"src":"6364:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":49607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6375:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"6364:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6341:46:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage","typeString":"struct BottomUpCheckpoint storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage","typeString":"struct BottomUpCheckpoint storage ref"}],"expression":{"id":49602,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6330:3:78","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":49603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6334:6:78","memberName":"encode","nodeType":"MemberAccess","src":"6330:10:78","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":49609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6330:58:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49601,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6320:9:78","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6320:69:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6291:98:78"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":49614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49612,"name":"checkpointHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49527,"src":"6407:14:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":49613,"name":"lastCheckpointHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49600,"src":"6425:18:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6407:36:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49629,"nodeType":"IfStatement","src":"6403:209:78","trueBody":{"id":49628,"nodeType":"Block","src":"6445:167:78","statements":[{"expression":{"arguments":[{"expression":{"id":49624,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6586:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6590:6:78","memberName":"sender","nodeType":"MemberAccess","src":"6586:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":49615,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"6522:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6524:14:78","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"6522:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":49621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6539:18:78","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":48439,"src":"6522:35:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":49622,"indexExpression":{"expression":{"id":49618,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49496,"src":"6558:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":49619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6569:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"6558:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6522:59:78","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":49623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6582:3:78","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35126,"src":"6522:63:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35099_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":49626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6522:75:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49627,"nodeType":"ExpressionStatement","src":"6522:75:78"}]}}]}},"id":49632,"nodeType":"IfStatement","src":"4438:2184:78","trueBody":{"id":49593,"nodeType":"Block","src":"4524:1007:78","statements":[{"expression":{"arguments":[{"id":49544,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49499,"src":"4667:11:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":49545,"name":"checkpointHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49527,"src":"4686:14:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49546,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49502,"src":"4714:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":49543,"name":"validateActiveQuorumSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50660,"src":"4622:30:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,bytes32,bytes memory[] memory) view"}},"id":49547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["4654:11:78","4680:4:78","4702:10:78"],"names":["signatories","hash","signatures"],"nodeType":"FunctionCall","src":"4622:104:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49548,"nodeType":"ExpressionStatement","src":"4622:104:78"},{"expression":{"id":49556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":49549,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"4981:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4983:20:78","memberName":"committedCheckpoints","nodeType":"MemberAccess","referencedDeclaration":45992,"src":"4981:22:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$48410_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":49554,"indexExpression":{"expression":{"id":49551,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49496,"src":"5004:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":49552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5015:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"5004:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4981:46:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49555,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49496,"src":"5030:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"src":"4981:59:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"id":49557,"nodeType":"ExpressionStatement","src":"4981:59:78"},{"expression":{"arguments":[{"expression":{"id":49567,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5174:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5178:6:78","memberName":"sender","nodeType":"MemberAccess","src":"5174:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":49558,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"5110:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5112:14:78","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"5110:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":49564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5127:18:78","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":48439,"src":"5110:35:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":49565,"indexExpression":{"expression":{"id":49561,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49496,"src":"5146:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":49562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5157:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"5146:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5110:59:78","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":49566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5170:3:78","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35126,"src":"5110:63:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35099_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":49569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5110:75:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49570,"nodeType":"ExpressionStatement","src":"5110:75:78"},{"expression":{"id":49576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":49571,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"5200:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5202:28:78","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":46012,"src":"5200:30:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":49574,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49496,"src":"5233:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":49575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5244:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"5233:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5200:55:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49577,"nodeType":"ExpressionStatement","src":"5200:55:78"},{"expression":{"arguments":[{"id":49583,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49496,"src":"5369:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"arguments":[{"expression":{"id":49579,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"5334:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5336:14:78","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"5334:16:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49578,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"5325:8:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":49581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5325:26:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":49582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5352:16:78","memberName":"commitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":39848,"src":"5325:43:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$48410_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory) external"}},"id":49584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5325:55:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49585,"nodeType":"ExpressionStatement","src":"5325:55:78"},{"expression":{"arguments":[{"expression":{"id":49589,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49496,"src":"5485:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":49590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5496:23:78","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":48409,"src":"5485:34:78","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":49586,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"5460:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":49588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5471:13:78","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":45463,"src":"5460:24:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":49591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5460:60:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49592,"nodeType":"ExpressionStatement","src":"5460:60:78"}]}}]},"baseFunctions":[39966],"documentation":{"id":49493,"nodeType":"StructuredDocumentation","src":"3358:457:78","text":"@notice Submits a checkpoint commitment for execution.\n @dev It triggers the commitment of the checkpoint and any other side-effects that\n need to be triggered by the checkpoint such as relayer reward book keeping.\n @param checkpoint The executed bottom-up checkpoint.\n @param signatories The addresses of validators signing the checkpoint.\n @param signatures The signatures of validators on the checkpoint."},"functionSelector":"b9ee2bb9","implemented":true,"kind":"function","modifiers":[{"id":49505,"kind":"modifierInvocation","modifierName":{"id":49504,"name":"whenNotPaused","nameLocations":["3986:13:78"],"nodeType":"IdentifierPath","referencedDeclaration":42627,"src":"3986:13:78"},"nodeType":"ModifierInvocation","src":"3986:13:78"}],"name":"submitCheckpoint","nameLocation":"3829:16:78","parameters":{"id":49503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49496,"mutability":"mutable","name":"checkpoint","nameLocation":"3883:10:78","nodeType":"VariableDeclaration","scope":49634,"src":"3855:38:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":49495,"nodeType":"UserDefinedTypeName","pathNode":{"id":49494,"name":"BottomUpCheckpoint","nameLocations":["3855:18:78"],"nodeType":"IdentifierPath","referencedDeclaration":48410,"src":"3855:18:78"},"referencedDeclaration":48410,"src":"3855:18:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$48410_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":49499,"mutability":"mutable","name":"signatories","nameLocation":"3922:11:78","nodeType":"VariableDeclaration","scope":49634,"src":"3903:30:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":49497,"name":"address","nodeType":"ElementaryTypeName","src":"3903:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49498,"nodeType":"ArrayTypeName","src":"3903:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":49502,"mutability":"mutable","name":"signatures","nameLocation":"3960:10:78","nodeType":"VariableDeclaration","scope":49634,"src":"3943:27:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":49500,"name":"bytes","nodeType":"ElementaryTypeName","src":"3943:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":49501,"nodeType":"ArrayTypeName","src":"3943:7:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"3845:131:78"},"returnParameters":{"id":49506,"nodeType":"ParameterList","parameters":[],"src":"4000:0:78"},"scope":50947,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49774,"nodeType":"FunctionDefinition","src":"6969:2131:78","nodes":[],"body":{"id":49773,"nodeType":"Block","src":"7134:1966:78","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49647,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49638,"src":"7206:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":49648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7212:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"7206:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":49649,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"7226:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7228:17:78","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":46016,"src":"7226:19:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$48428_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":49651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7246:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48425,"src":"7226:31:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7206:51:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49657,"nodeType":"IfStatement","src":"7202:108:78","trueBody":{"id":49656,"nodeType":"Block","src":"7259:51:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49653,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36974,"src":"7280:17:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7280:19:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49655,"nodeType":"RevertStatement","src":"7273:26:78"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":49658,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49638,"src":"7323:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":49659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7329:4:78","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"7323:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":49660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7334:6:78","memberName":"length","nodeType":"MemberAccess","src":"7323:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":49661,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"7343:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7345:23:78","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":46022,"src":"7343:25:78","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7323:45:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49668,"nodeType":"IfStatement","src":"7319:108:78","trueBody":{"id":49667,"nodeType":"Block","src":"7370:57:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49664,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36950,"src":"7391:23:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7391:25:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49666,"nodeType":"RevertStatement","src":"7384:32:78"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":49682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":49669,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49638,"src":"7533:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":49670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7539:4:78","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"7533:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":49671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7544:6:78","memberName":"length","nodeType":"MemberAccess","src":"7533:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":49672,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"7554:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7556:23:78","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":46022,"src":"7554:25:78","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7533:46:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49675,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49638,"src":"7583:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":49676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7589:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"7583:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":49677,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"7603:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7605:22:78","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":46019,"src":"7603:24:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7583:44:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":49680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7631:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7583:49:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7533:99:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49687,"nodeType":"IfStatement","src":"7529:156:78","trueBody":{"id":49686,"nodeType":"Block","src":"7634:51:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49683,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36974,"src":"7655:17:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7655:19:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49685,"nodeType":"RevertStatement","src":"7648:26:78"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":49688,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49638,"src":"7698:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":49689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7704:4:78","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"7698:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$48452_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":49690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7709:6:78","memberName":"length","nodeType":"MemberAccess","src":"7698:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7719:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7698:22:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49697,"nodeType":"IfStatement","src":"7694:81:78","trueBody":{"id":49696,"nodeType":"Block","src":"7722:53:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49693,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36976,"src":"7743:19:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7743:21:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49695,"nodeType":"RevertStatement","src":"7736:28:78"}]}},{"assignments":[49699],"declarations":[{"constant":false,"id":49699,"mutability":"mutable","name":"batchHash","nameLocation":"7793:9:78","nodeType":"VariableDeclaration","scope":49773,"src":"7785:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49698,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7785:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":49706,"initialValue":{"arguments":[{"arguments":[{"id":49703,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49638,"src":"7826:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":49701,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7815:3:78","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":49702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7819:6:78","memberName":"encode","nodeType":"MemberAccess","src":"7815:10:78","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":49704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7815:17:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49700,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7805:9:78","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7805:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7785:48:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49707,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49638,"src":"7848:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":49708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7854:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"7848:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":49709,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"7869:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7871:17:78","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":46016,"src":"7869:19:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$48428_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":49711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7889:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48425,"src":"7869:31:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7848:52:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":49771,"nodeType":"Block","src":"8378:716:78","statements":[{"expression":{"arguments":[{"id":49735,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49641,"src":"8521:11:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":49736,"name":"batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49699,"src":"8540:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":49737,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49644,"src":"8563:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":49734,"name":"validateActiveQuorumSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50660,"src":"8476:30:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,bytes32,bytes memory[] memory) view"}},"id":49738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8508:11:78","8534:4:78","8551:10:78"],"names":["signatories","hash","signatures"],"nodeType":"FunctionCall","src":"8476:99:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49739,"nodeType":"ExpressionStatement","src":"8476:99:78"},{"expression":{"id":49748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":49740,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"8753:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8755:17:78","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":46016,"src":"8753:19:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$48428_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":49744,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49638,"src":"8810:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":49745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8816:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"8810:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":49746,"name":"batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49699,"src":"8835:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":49743,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48428,"src":"8775:20:78","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpMsgBatchInfo_$48428_storage_ptr_$","typeString":"type(struct BottomUpMsgBatchInfo storage pointer)"}},"id":49747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8797:11:78","8829:4:78"],"names":["blockHeight","hash"],"nodeType":"FunctionCall","src":"8775:71:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$48428_memory_ptr","typeString":"struct BottomUpMsgBatchInfo memory"}},"src":"8753:93:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$48428_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":49749,"nodeType":"ExpressionStatement","src":"8753:93:78"},{"expression":{"arguments":[{"expression":{"id":49759,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8970:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8974:6:78","memberName":"sender","nodeType":"MemberAccess","src":"8970:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":49750,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"8916:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8918:14:78","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"8916:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":49756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8933:13:78","memberName":"batchRewarded","nodeType":"MemberAccess","referencedDeclaration":48445,"src":"8916:30:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":49757,"indexExpression":{"expression":{"id":49753,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49638,"src":"8947:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":49754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8953:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"8947:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8916:49:78","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":49758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8966:3:78","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35126,"src":"8916:53:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35099_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":49761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8916:65:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49762,"nodeType":"ExpressionStatement","src":"8916:65:78"},{"expression":{"arguments":[{"id":49768,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49638,"src":"9077:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"arguments":[{"expression":{"id":49764,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"9038:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9040:14:78","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"9038:16:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49763,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"9029:8:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":49766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9029:26:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":49767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9056:20:78","memberName":"execBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":39903,"src":"9029:47:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpMsgBatch_$48423_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory) external"}},"id":49769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9029:54:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49770,"nodeType":"ExpressionStatement","src":"9029:54:78"}]},"id":49772,"nodeType":"IfStatement","src":"7844:1250:78","trueBody":{"id":49733,"nodeType":"Block","src":"7902:470:78","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":49717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49713,"name":"batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49699,"src":"8166:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":49714,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"8179:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8181:17:78","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":46016,"src":"8179:19:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$48428_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":49716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8199:4:78","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":48427,"src":"8179:24:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8166:37:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49732,"nodeType":"IfStatement","src":"8162:200:78","trueBody":{"id":49731,"nodeType":"Block","src":"8205:157:78","statements":[{"expression":{"arguments":[{"expression":{"id":49727,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8336:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8340:6:78","memberName":"sender","nodeType":"MemberAccess","src":"8336:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":49718,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"8282:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8284:14:78","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"8282:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":49724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8299:13:78","memberName":"batchRewarded","nodeType":"MemberAccess","referencedDeclaration":48445,"src":"8282:30:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":49725,"indexExpression":{"expression":{"id":49721,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49638,"src":"8313:5:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":49722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8319:11:78","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":48417,"src":"8313:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8282:49:78","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":49726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8332:3:78","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35126,"src":"8282:53:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35099_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":49729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8282:65:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49730,"nodeType":"ExpressionStatement","src":"8282:65:78"}]}}]}}]},"documentation":{"id":49635,"nodeType":"StructuredDocumentation","src":"6634:330:78","text":"@notice Submits a batch of bottom-up messages for execution.\n @dev It triggers the execution of a cross-net message batch.\n @param batch The batch of bottom-up messages.\n @param signatories The addresses of validators signing the batch.\n @param signatures The signatures of validators on the batch."},"functionSelector":"26811936","implemented":true,"kind":"function","modifiers":[],"name":"submitBottomUpMsgBatch","nameLocation":"6978:22:78","parameters":{"id":49645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49638,"mutability":"mutable","name":"batch","nameLocation":"7036:5:78","nodeType":"VariableDeclaration","scope":49774,"src":"7010:31:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":49637,"nodeType":"UserDefinedTypeName","pathNode":{"id":49636,"name":"BottomUpMsgBatch","nameLocations":["7010:16:78"],"nodeType":"IdentifierPath","referencedDeclaration":48423,"src":"7010:16:78"},"referencedDeclaration":48423,"src":"7010:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$48423_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"},{"constant":false,"id":49641,"mutability":"mutable","name":"signatories","nameLocation":"7070:11:78","nodeType":"VariableDeclaration","scope":49774,"src":"7051:30:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":49639,"name":"address","nodeType":"ElementaryTypeName","src":"7051:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49640,"nodeType":"ArrayTypeName","src":"7051:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":49644,"mutability":"mutable","name":"signatures","nameLocation":"7108:10:78","nodeType":"VariableDeclaration","scope":49774,"src":"7091:27:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":49642,"name":"bytes","nodeType":"ElementaryTypeName","src":"7091:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":49643,"nodeType":"ArrayTypeName","src":"7091:7:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"7000:124:78"},"returnParameters":{"id":49646,"nodeType":"ParameterList","parameters":[],"src":"7134:0:78"},"scope":50947,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49830,"nodeType":"FunctionDefinition","src":"9326:414:78","nodes":[],"body":{"id":49829,"nodeType":"Block","src":"9362:378:78","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49778,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9376:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9380:5:78","memberName":"value","nodeType":"MemberAccess","src":"9376:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9389:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9376:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49786,"nodeType":"IfStatement","src":"9372:68:78","trueBody":{"id":49785,"nodeType":"Block","src":"9392:48:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49782,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37038,"src":"9413:14:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9413:16:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49784,"nodeType":"RevertStatement","src":"9406:23:78"}]}},{"condition":{"expression":{"id":49787,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"9454:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9456:12:78","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"9454:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49793,"nodeType":"IfStatement","src":"9450:79:78","trueBody":{"id":49792,"nodeType":"Block","src":"9470:59:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49789,"name":"SubnetAlreadyBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37082,"src":"9491:25:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9491:27:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49791,"nodeType":"RevertStatement","src":"9484:34:78"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":49794,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"9543:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9545:14:78","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":46005,"src":"9543:16:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":49798,"indexExpression":{"expression":{"id":49796,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9560:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9564:6:78","memberName":"sender","nodeType":"MemberAccess","src":"9560:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9543:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9575:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9543:33:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49811,"nodeType":"IfStatement","src":"9539:101:78","trueBody":{"id":49810,"nodeType":"Block","src":"9578:62:78","statements":[{"expression":{"arguments":[{"expression":{"id":49806,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9618:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9622:6:78","memberName":"sender","nodeType":"MemberAccess","src":"9618:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":49801,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"9592:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9594:18:78","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":46009,"src":"9592:20:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":49805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9613:4:78","memberName":"push","nodeType":"MemberAccess","src":"9592:25:78","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":49808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9592:37:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49809,"nodeType":"ExpressionStatement","src":"9592:37:78"}]}},{"expression":{"id":49820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":49812,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"9650:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9652:14:78","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":46005,"src":"9650:16:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":49817,"indexExpression":{"expression":{"id":49814,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9667:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9671:6:78","memberName":"sender","nodeType":"MemberAccess","src":"9667:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9650:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":49818,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9682:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9686:5:78","memberName":"value","nodeType":"MemberAccess","src":"9682:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9650:41:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49821,"nodeType":"ExpressionStatement","src":"9650:41:78"},{"expression":{"id":49827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":49822,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"9701:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9703:17:78","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":46000,"src":"9701:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":49825,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9724:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9728:5:78","memberName":"value","nodeType":"MemberAccess","src":"9724:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9701:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49828,"nodeType":"ExpressionStatement","src":"9701:32:78"}]},"baseFunctions":[39929],"documentation":{"id":49775,"nodeType":"StructuredDocumentation","src":"9106:215:78","text":"@notice method to add some initial balance into a subnet that hasn't yet bootstrapped.\n @dev This balance is added to user addresses in genesis, and becomes part of the genesis\n circulating supply."},"functionSelector":"0b7fbe60","implemented":true,"kind":"function","modifiers":[],"name":"preFund","nameLocation":"9335:7:78","parameters":{"id":49776,"nodeType":"ParameterList","parameters":[],"src":"9342:2:78"},"returnParameters":{"id":49777,"nodeType":"ParameterList","parameters":[],"src":"9362:0:78"},"scope":50947,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":49904,"nodeType":"FunctionDefinition","src":"9956:576:78","nodes":[],"body":{"id":49903,"nodeType":"Block","src":"10014:518:78","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49838,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49833,"src":"10028:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10038:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10028:11:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49845,"nodeType":"IfStatement","src":"10024:65:78","trueBody":{"id":49844,"nodeType":"Block","src":"10041:48:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49841,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37038,"src":"10062:14:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10062:16:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49843,"nodeType":"RevertStatement","src":"10055:23:78"}]}},{"condition":{"expression":{"id":49846,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"10103:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49847,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10105:12:78","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"10103:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49852,"nodeType":"IfStatement","src":"10099:79:78","trueBody":{"id":49851,"nodeType":"Block","src":"10119:59:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49848,"name":"SubnetAlreadyBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37082,"src":"10140:25:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10140:27:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49850,"nodeType":"RevertStatement","src":"10133:34:78"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":49853,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"10192:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49854,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10194:14:78","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":46005,"src":"10192:16:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":49857,"indexExpression":{"expression":{"id":49855,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10209:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10213:6:78","memberName":"sender","nodeType":"MemberAccess","src":"10209:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10192:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":49858,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49833,"src":"10223:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10192:37:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49864,"nodeType":"IfStatement","src":"10188:93:78","trueBody":{"id":49863,"nodeType":"Block","src":"10231:50:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49860,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37030,"src":"10252:16:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10252:18:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49862,"nodeType":"RevertStatement","src":"10245:25:78"}]}},{"expression":{"id":49872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":49865,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"10291:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10293:14:78","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":46005,"src":"10291:16:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":49870,"indexExpression":{"expression":{"id":49867,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10308:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10312:6:78","memberName":"sender","nodeType":"MemberAccess","src":"10308:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10291:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":49871,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49833,"src":"10323:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10291:38:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49873,"nodeType":"ExpressionStatement","src":"10291:38:78"},{"expression":{"id":49878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":49874,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"10339:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10341:17:78","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":46000,"src":"10339:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":49877,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49833,"src":"10362:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10339:29:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49879,"nodeType":"ExpressionStatement","src":"10339:29:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":49880,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"10383:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10385:14:78","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":46005,"src":"10383:16:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":49884,"indexExpression":{"expression":{"id":49882,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10400:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10404:6:78","memberName":"sender","nodeType":"MemberAccess","src":"10400:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10383:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10415:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10383:33:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49893,"nodeType":"IfStatement","src":"10379:99:78","trueBody":{"id":49892,"nodeType":"Block","src":"10418:60:78","statements":[{"expression":{"arguments":[{"expression":{"id":49888,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10456:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10460:6:78","memberName":"sender","nodeType":"MemberAccess","src":"10456:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49887,"name":"rmAddressFromBalanceKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50749,"src":"10432:23:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":49890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10432:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49891,"nodeType":"ExpressionStatement","src":"10432:35:78"}]}},{"expression":{"arguments":[{"id":49900,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49833,"src":"10518:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":49896,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10496:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10500:6:78","memberName":"sender","nodeType":"MemberAccess","src":"10496:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10488:8:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":49894,"name":"address","nodeType":"ElementaryTypeName","src":"10488:8:78","stateMutability":"payable","typeDescriptions":{}}},"id":49898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10488:19:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":49899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10508:9:78","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"10488:29:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":49901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10488:37:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49902,"nodeType":"ExpressionStatement","src":"10488:37:78"}]},"baseFunctions":[39935],"documentation":{"id":49831,"nodeType":"StructuredDocumentation","src":"9746:205:78","text":"@notice method to remove funds from the initial balance of a subnet.\n @dev This method can be used by users looking to recover part of their\n initial balance before the subnet bootstraps."},"functionSelector":"66783c9b","implemented":true,"kind":"function","modifiers":[{"id":49836,"kind":"modifierInvocation","modifierName":{"id":49835,"name":"nonReentrant","nameLocations":["10001:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":43298,"src":"10001:12:78"},"nodeType":"ModifierInvocation","src":"10001:12:78"}],"name":"preRelease","nameLocation":"9965:10:78","parameters":{"id":49834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49833,"mutability":"mutable","name":"amount","nameLocation":"9984:6:78","nodeType":"VariableDeclaration","scope":49904,"src":"9976:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49832,"name":"uint256","nodeType":"ElementaryTypeName","src":"9976:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9975:16:78"},"returnParameters":{"id":49837,"nodeType":"ParameterList","parameters":[],"src":"10014:0:78"},"scope":50947,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49965,"nodeType":"FunctionDefinition","src":"10870:683:78","nodes":[],"body":{"id":49964,"nodeType":"Block","src":"11033:520:78","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":49919,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"11043:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":49921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11054:22:78","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":40691,"src":"11043:33:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":49922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11043:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49923,"nodeType":"ExpressionStatement","src":"11043:35:78"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":49924,"name":"enforceFederatedValidation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49448,"src":"11089:26:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":49925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11089:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49926,"nodeType":"ExpressionStatement","src":"11089:28:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49927,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49908,"src":"11132:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":49928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11143:6:78","memberName":"length","nodeType":"MemberAccess","src":"11132:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":49929,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49914,"src":"11153:6:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":49930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11160:6:78","memberName":"length","nodeType":"MemberAccess","src":"11153:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11132:34:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49936,"nodeType":"IfStatement","src":"11128:98:78","trueBody":{"id":49935,"nodeType":"Block","src":"11168:58:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49932,"name":"InvalidFederationPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37096,"src":"11189:24:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11189:26:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49934,"nodeType":"RevertStatement","src":"11182:33:78"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49937,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49908,"src":"11240:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":49938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11251:6:78","memberName":"length","nodeType":"MemberAccess","src":"11240:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":49939,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49911,"src":"11261:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":49940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11272:6:78","memberName":"length","nodeType":"MemberAccess","src":"11261:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11240:38:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49946,"nodeType":"IfStatement","src":"11236:102:78","trueBody":{"id":49945,"nodeType":"Block","src":"11280:58:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49942,"name":"InvalidFederationPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37096,"src":"11301:24:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11301:26:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49944,"nodeType":"RevertStatement","src":"11294:33:78"}]}},{"condition":{"expression":{"id":49947,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"11352:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11354:12:78","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"11352:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":49962,"nodeType":"Block","src":"11461:86:78","statements":[{"expression":{"arguments":[{"id":49957,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49908,"src":"11505:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":49958,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49911,"src":"11517:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":49959,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49914,"src":"11529:6:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}],"id":49956,"name":"preBootstrapSetFederatedPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50883,"src":"11475:29:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$","typeString":"function (address[] calldata,bytes calldata[] calldata,uint256[] calldata)"}},"id":49960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11475:61:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49961,"nodeType":"ExpressionStatement","src":"11475:61:78"}]},"id":49963,"nodeType":"IfStatement","src":"11348:199:78","trueBody":{"id":49955,"nodeType":"Block","src":"11368:87:78","statements":[{"expression":{"arguments":[{"id":49950,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49908,"src":"11413:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":49951,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49911,"src":"11425:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":49952,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49914,"src":"11437:6:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}],"id":49949,"name":"postBootstrapSetFederatedPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50946,"src":"11382:30:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$","typeString":"function (address[] calldata,bytes calldata[] calldata,uint256[] calldata)"}},"id":49953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11382:62:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49954,"nodeType":"ExpressionStatement","src":"11382:62:78"}]}}]},"documentation":{"id":49905,"nodeType":"StructuredDocumentation","src":"10538:327:78","text":"@notice Sets the federated power of validators.\n @dev method that allows the contract owner to set the validators' federated power.\n @param validators The addresses of validators.\n @param publicKeys The public keys of validators.\n @param powers The federated powers to be assigned to validators."},"functionSelector":"da5d09ee","implemented":true,"kind":"function","modifiers":[{"id":49917,"kind":"modifierInvocation","modifierName":{"id":49916,"name":"notKilled","nameLocations":["11023:9:78"],"nodeType":"IdentifierPath","referencedDeclaration":46138,"src":"11023:9:78"},"nodeType":"ModifierInvocation","src":"11023:9:78"}],"name":"setFederatedPower","nameLocation":"10879:17:78","parameters":{"id":49915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49908,"mutability":"mutable","name":"validators","nameLocation":"10925:10:78","nodeType":"VariableDeclaration","scope":49965,"src":"10906:29:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":49906,"name":"address","nodeType":"ElementaryTypeName","src":"10906:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49907,"nodeType":"ArrayTypeName","src":"10906:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":49911,"mutability":"mutable","name":"publicKeys","nameLocation":"10962:10:78","nodeType":"VariableDeclaration","scope":49965,"src":"10945:27:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":49909,"name":"bytes","nodeType":"ElementaryTypeName","src":"10945:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":49910,"nodeType":"ArrayTypeName","src":"10945:7:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":49914,"mutability":"mutable","name":"powers","nameLocation":"11001:6:78","nodeType":"VariableDeclaration","scope":49965,"src":"10982:25:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":49912,"name":"uint256","nodeType":"ElementaryTypeName","src":"10982:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49913,"nodeType":"ArrayTypeName","src":"10982:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"10896:117:78"},"returnParameters":{"id":49918,"nodeType":"ParameterList","parameters":[],"src":"11033:0:78"},"scope":50947,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50103,"nodeType":"FunctionDefinition","src":"11729:2043:78","nodes":[],"body":{"id":50102,"nodeType":"Block","src":"11823:1949:78","nodes":[],"statements":[{"condition":{"expression":{"id":49977,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"12051:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":49978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12053:12:78","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"12051:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49983,"nodeType":"IfStatement","src":"12047:74:78","trueBody":{"id":49982,"nodeType":"Block","src":"12067:54:78","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":49979,"name":"enforceCollateralValidation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49466,"src":"12081:27:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":49980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12081:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49981,"nodeType":"ExpressionStatement","src":"12081:29:78"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49984,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12134:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12138:5:78","memberName":"value","nodeType":"MemberAccess","src":"12134:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":49986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12147:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12134:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49992,"nodeType":"IfStatement","src":"12130:70:78","trueBody":{"id":49991,"nodeType":"Block","src":"12150:50:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49988,"name":"CollateralIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36958,"src":"12171:16:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12171:18:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49990,"nodeType":"RevertStatement","src":"12164:25:78"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49993,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49968,"src":"12214:9:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":49994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12224:6:78","memberName":"length","nodeType":"MemberAccess","src":"12214:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":49995,"name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49386,"src":"12234:37:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12214:57:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50001,"nodeType":"IfStatement","src":"12210:232:78","trueBody":{"id":50000,"nodeType":"Block","src":"12273:169:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49997,"name":"InvalidPublicKeyLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37010,"src":"12407:22:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12407:24:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49999,"nodeType":"RevertStatement","src":"12400:31:78"}]}},{"assignments":[50003],"declarations":[{"constant":false,"id":50003,"mutability":"mutable","name":"convertedAddress","nameLocation":"12460:16:78","nodeType":"VariableDeclaration","scope":50102,"src":"12452:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50002,"name":"address","nodeType":"ElementaryTypeName","src":"12452:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":50007,"initialValue":{"arguments":[{"id":50005,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49968,"src":"12498:9:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":50004,"name":"publicKeyToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50695,"src":"12479:18:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":50006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12479:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12452:56:78"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50008,"name":"convertedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50003,"src":"12522:16:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":50009,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12542:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12546:6:78","memberName":"sender","nodeType":"MemberAccess","src":"12542:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12522:30:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50016,"nodeType":"IfStatement","src":"12518:89:78","trueBody":{"id":50015,"nodeType":"Block","src":"12554:53:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50012,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37048,"src":"12575:19:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12575:21:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50014,"nodeType":"RevertStatement","src":"12568:28:78"}]}},{"condition":{"id":50019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12621:15:78","subExpression":{"expression":{"id":50017,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"12622:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12624:12:78","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"12622:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":50100,"nodeType":"Block","src":"13632:134:78","statements":[{"expression":{"arguments":[{"expression":{"id":50086,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13678:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13682:6:78","memberName":"sender","nodeType":"MemberAccess","src":"13678:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50088,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49968,"src":"13690:9:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":50083,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"13646:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13657:20:78","memberName":"setValidatorMetadata","nodeType":"MemberAccess","referencedDeclaration":45079,"src":"13646:31:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,bytes calldata)"}},"id":50089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13646:54:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50090,"nodeType":"ExpressionStatement","src":"13646:54:78"},{"expression":{"arguments":[{"expression":{"id":50094,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13733:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13737:6:78","memberName":"sender","nodeType":"MemberAccess","src":"13733:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":50096,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13745:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13749:5:78","memberName":"value","nodeType":"MemberAccess","src":"13745:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":50091,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"13714:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13725:7:78","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":45113,"src":"13714:18:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":50098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13714:41:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50099,"nodeType":"ExpressionStatement","src":"13714:41:78"}]},"id":50101,"nodeType":"IfStatement","src":"12617:1149:78","trueBody":{"id":50082,"nodeType":"Block","src":"12638:988:78","statements":[{"expression":{"arguments":[{"expression":{"id":50023,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12907:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12911:6:78","memberName":"sender","nodeType":"MemberAccess","src":"12907:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50025,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49968,"src":"12919:9:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":50020,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"12873:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12884:22:78","memberName":"setMetadataWithConfirm","nodeType":"MemberAccess","referencedDeclaration":44875,"src":"12873:33:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,bytes calldata)"}},"id":50026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12873:56:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50027,"nodeType":"ExpressionStatement","src":"12873:56:78"},{"expression":{"arguments":[{"expression":{"id":50031,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12973:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12977:6:78","memberName":"sender","nodeType":"MemberAccess","src":"12973:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":50033,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12985:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12989:5:78","memberName":"value","nodeType":"MemberAccess","src":"12985:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":50028,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"12943:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12954:18:78","memberName":"depositWithConfirm","nodeType":"MemberAccess","referencedDeclaration":44984,"src":"12943:29:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":50035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12943:52:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50036,"nodeType":"ExpressionStatement","src":"12943:52:78"},{"assignments":[50038],"declarations":[{"constant":false,"id":50038,"mutability":"mutable","name":"totalCollateral","nameLocation":"13018:15:78","nodeType":"VariableDeclaration","scope":50082,"src":"13010:23:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50037,"name":"uint256","nodeType":"ElementaryTypeName","src":"13010:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50042,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50039,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"13036:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13047:27:78","memberName":"getTotalConfirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":44784,"src":"13036:38:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":50041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13036:40:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13010:66:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50043,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50038,"src":"13095:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":50044,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"13114:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13116:23:78","memberName":"minActivationCollateral","nodeType":"MemberAccess","referencedDeclaration":46025,"src":"13114:25:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13095:44:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50081,"nodeType":"IfStatement","src":"13091:525:78","trueBody":{"id":50080,"nodeType":"Block","src":"13141:475:78","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":50052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50047,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"13163:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13174:21:78","memberName":"totalActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44740,"src":"13163:32:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":50049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13163:34:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":50050,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"13201:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13203:13:78","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":46031,"src":"13201:15:78","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13163:53:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50079,"nodeType":"IfStatement","src":"13159:443:78","trueBody":{"id":50078,"nodeType":"Block","src":"13218:384:78","statements":[{"expression":{"id":50057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":50053,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"13240:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13242:12:78","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"13240:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":50056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13257:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"13240:21:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50058,"nodeType":"ExpressionStatement","src":"13240:21:78"},{"eventCall":{"arguments":[{"expression":{"id":50060,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"13307:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13309:17:78","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"13307:19:78","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}],"id":50059,"name":"SubnetBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49430,"src":"13288:18:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct Validator memory[] memory)"}},"id":50062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13288:39:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50063,"nodeType":"EmitStatement","src":"13283:44:78"},{"expression":{"arguments":[{"expression":{"id":50074,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"13542:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13544:17:78","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":46000,"src":"13542:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":50065,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"13444:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13446:14:78","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"13444:16:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50064,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"13435:8:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":50067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13435:26:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":50068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13462:8:78","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":39821,"src":"13435:35:78","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":50073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50069,"name":"totalCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50038,"src":"13478:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":50070,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"13496:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13498:17:78","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":46000,"src":"13496:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13478:37:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"13435:81:78","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":50076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13435:148:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50077,"nodeType":"ExpressionStatement","src":"13435:148:78"}]}}]}}]}}]},"baseFunctions":[39917],"documentation":{"id":49966,"nodeType":"StructuredDocumentation","src":"11559:165:78","text":"@notice method that allows a validator to join the subnet\n @param publicKey The off-chain 65 byte public key that should be associated with the validator."},"functionSelector":"6170b162","implemented":true,"kind":"function","modifiers":[{"id":49971,"kind":"modifierInvocation","modifierName":{"id":49970,"name":"nonReentrant","nameLocations":["11786:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":43298,"src":"11786:12:78"},"nodeType":"ModifierInvocation","src":"11786:12:78"},{"id":49973,"kind":"modifierInvocation","modifierName":{"id":49972,"name":"whenNotPaused","nameLocations":["11799:13:78"],"nodeType":"IdentifierPath","referencedDeclaration":42627,"src":"11799:13:78"},"nodeType":"ModifierInvocation","src":"11799:13:78"},{"id":49975,"kind":"modifierInvocation","modifierName":{"id":49974,"name":"notKilled","nameLocations":["11813:9:78"],"nodeType":"IdentifierPath","referencedDeclaration":46138,"src":"11813:9:78"},"nodeType":"ModifierInvocation","src":"11813:9:78"}],"name":"join","nameLocation":"11738:4:78","parameters":{"id":49969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49968,"mutability":"mutable","name":"publicKey","nameLocation":"11758:9:78","nodeType":"VariableDeclaration","scope":50103,"src":"11743:24:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":49967,"name":"bytes","nodeType":"ElementaryTypeName","src":"11743:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11742:26:78"},"returnParameters":{"id":49976,"nodeType":"ParameterList","parameters":[],"src":"11823:0:78"},"scope":50947,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":50159,"nodeType":"FunctionDefinition","src":"13848:598:78","nodes":[],"body":{"id":50158,"nodeType":"Block","src":"13906:540:78","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":50111,"name":"enforceCollateralValidation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49466,"src":"14053:27:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":50112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14053:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50113,"nodeType":"ExpressionStatement","src":"14053:29:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":50114,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14096:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14100:5:78","memberName":"value","nodeType":"MemberAccess","src":"14096:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":50116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14109:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14096:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50122,"nodeType":"IfStatement","src":"14092:70:78","trueBody":{"id":50121,"nodeType":"Block","src":"14112:50:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50118,"name":"CollateralIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36958,"src":"14133:16:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14133:18:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50120,"nodeType":"RevertStatement","src":"14126:25:78"}]}},{"condition":{"id":50128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14176:33:78","subExpression":{"arguments":[{"expression":{"id":50125,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14198:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14202:6:78","memberName":"sender","nodeType":"MemberAccess","src":"14198:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50123,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"14177:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14188:9:78","memberName":"hasStaked","nodeType":"MemberAccess","referencedDeclaration":44722,"src":"14177:20:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":50127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14177:32:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50133,"nodeType":"IfStatement","src":"14172:88:78","trueBody":{"id":50132,"nodeType":"Block","src":"14211:49:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50129,"name":"NotStakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37052,"src":"14232:15:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14232:17:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50131,"nodeType":"RevertStatement","src":"14225:24:78"}]}},{"condition":{"id":50136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14274:15:78","subExpression":{"expression":{"id":50134,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"14275:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14277:12:78","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"14275:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50148,"nodeType":"IfStatement","src":"14270:118:78","trueBody":{"id":50147,"nodeType":"Block","src":"14291:97:78","statements":[{"expression":{"arguments":[{"expression":{"id":50140,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14335:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14339:6:78","memberName":"sender","nodeType":"MemberAccess","src":"14335:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":50142,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14347:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14351:5:78","memberName":"value","nodeType":"MemberAccess","src":"14347:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":50137,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"14305:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14316:18:78","memberName":"depositWithConfirm","nodeType":"MemberAccess","referencedDeclaration":44984,"src":"14305:29:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":50144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14305:52:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50145,"nodeType":"ExpressionStatement","src":"14305:52:78"},{"functionReturnParameters":50110,"id":50146,"nodeType":"Return","src":"14371:7:78"}]}},{"expression":{"arguments":[{"expression":{"id":50152,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14417:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14421:6:78","memberName":"sender","nodeType":"MemberAccess","src":"14417:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":50154,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14429:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14433:5:78","memberName":"value","nodeType":"MemberAccess","src":"14429:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":50149,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"14398:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14409:7:78","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":45113,"src":"14398:18:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":50156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14398:41:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50157,"nodeType":"ExpressionStatement","src":"14398:41:78"}]},"baseFunctions":[39925],"documentation":{"id":50104,"nodeType":"StructuredDocumentation","src":"13778:65:78","text":"@notice method that allows a validator to increase its stake."},"functionSelector":"3a4b66f1","implemented":true,"kind":"function","modifiers":[{"id":50107,"kind":"modifierInvocation","modifierName":{"id":50106,"name":"whenNotPaused","nameLocations":["13882:13:78"],"nodeType":"IdentifierPath","referencedDeclaration":42627,"src":"13882:13:78"},"nodeType":"ModifierInvocation","src":"13882:13:78"},{"id":50109,"kind":"modifierInvocation","modifierName":{"id":50108,"name":"notKilled","nameLocations":["13896:9:78"],"nodeType":"IdentifierPath","referencedDeclaration":46138,"src":"13896:9:78"},"nodeType":"ModifierInvocation","src":"13896:9:78"}],"name":"stake","nameLocation":"13857:5:78","parameters":{"id":50105,"nodeType":"ParameterList","parameters":[],"src":"13862:2:78"},"returnParameters":{"id":50110,"nodeType":"ParameterList","parameters":[],"src":"13906:0:78"},"scope":50947,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":50229,"nodeType":"FunctionDefinition","src":"14613:767:78","nodes":[],"body":{"id":50228,"nodeType":"Block","src":"14679:701:78","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":50169,"name":"enforceCollateralValidation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49466,"src":"14837:27:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":50170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14837:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50171,"nodeType":"ExpressionStatement","src":"14837:29:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50172,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50162,"src":"14881:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":50173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14891:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14881:11:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50179,"nodeType":"IfStatement","src":"14877:68:78","trueBody":{"id":50178,"nodeType":"Block","src":"14894:51:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50175,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36942,"src":"14915:17:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14915:19:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50177,"nodeType":"RevertStatement","src":"14908:26:78"}]}},{"assignments":[50181],"declarations":[{"constant":false,"id":50181,"mutability":"mutable","name":"collateral","nameLocation":"14963:10:78","nodeType":"VariableDeclaration","scope":50228,"src":"14955:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50180,"name":"uint256","nodeType":"ElementaryTypeName","src":"14955:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50187,"initialValue":{"arguments":[{"expression":{"id":50184,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15012:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15016:6:78","memberName":"sender","nodeType":"MemberAccess","src":"15012:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50182,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"14976:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14987:24:78","memberName":"totalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":44825,"src":"14976:35:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":50186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14976:47:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14955:68:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50188,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50181,"src":"15038:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":50189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15052:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15038:15:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50197,"nodeType":"IfStatement","src":"15034:77:78","trueBody":{"id":50196,"nodeType":"Block","src":"15055:56:78","statements":[{"errorCall":{"arguments":[{"expression":{"id":50192,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15089:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15093:6:78","memberName":"sender","nodeType":"MemberAccess","src":"15089:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50191,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37058,"src":"15076:12:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":50194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15076:24:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50195,"nodeType":"RevertStatement","src":"15069:31:78"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50198,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50181,"src":"15124:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":50199,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50162,"src":"15138:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15124:20:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50205,"nodeType":"IfStatement","src":"15120:79:78","trueBody":{"id":50204,"nodeType":"Block","src":"15146:53:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50201,"name":"NotEnoughCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37034,"src":"15167:19:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15167:21:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50203,"nodeType":"RevertStatement","src":"15160:28:78"}]}},{"condition":{"id":50208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15212:15:78","subExpression":{"expression":{"id":50206,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"15213:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15215:12:78","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"15213:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50219,"nodeType":"IfStatement","src":"15208:116:78","trueBody":{"id":50218,"nodeType":"Block","src":"15229:95:78","statements":[{"expression":{"arguments":[{"expression":{"id":50212,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15274:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15278:6:78","memberName":"sender","nodeType":"MemberAccess","src":"15274:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50214,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50162,"src":"15286:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":50209,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"15243:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15254:19:78","memberName":"withdrawWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45026,"src":"15243:30:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":50215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15243:50:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50216,"nodeType":"ExpressionStatement","src":"15243:50:78"},{"functionReturnParameters":50168,"id":50217,"nodeType":"Return","src":"15307:7:78"}]}},{"expression":{"arguments":[{"expression":{"id":50223,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15354:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15358:6:78","memberName":"sender","nodeType":"MemberAccess","src":"15354:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50225,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50162,"src":"15366:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":50220,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"15334:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15345:8:78","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":45147,"src":"15334:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":50226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15334:39:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50227,"nodeType":"ExpressionStatement","src":"15334:39:78"}]},"baseFunctions":[39941],"documentation":{"id":50160,"nodeType":"StructuredDocumentation","src":"14452:156:78","text":"@notice method that allows a validator to unstake a part of its collateral from a subnet.\n @dev `leave` must be used to unstake the entire stake."},"functionSelector":"2e17de78","implemented":true,"kind":"function","modifiers":[{"id":50165,"kind":"modifierInvocation","modifierName":{"id":50164,"name":"whenNotPaused","nameLocations":["14655:13:78"],"nodeType":"IdentifierPath","referencedDeclaration":42627,"src":"14655:13:78"},"nodeType":"ModifierInvocation","src":"14655:13:78"},{"id":50167,"kind":"modifierInvocation","modifierName":{"id":50166,"name":"notKilled","nameLocations":["14669:9:78"],"nodeType":"IdentifierPath","referencedDeclaration":46138,"src":"14669:9:78"},"nodeType":"ModifierInvocation","src":"14669:9:78"}],"name":"unstake","nameLocation":"14622:7:78","parameters":{"id":50163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50162,"mutability":"mutable","name":"amount","nameLocation":"14638:6:78","nodeType":"VariableDeclaration","scope":50229,"src":"14630:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50161,"name":"uint256","nodeType":"ElementaryTypeName","src":"14630:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14629:16:78"},"returnParameters":{"id":50168,"nodeType":"ParameterList","parameters":[],"src":"14679:0:78"},"scope":50947,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50345,"nodeType":"FunctionDefinition","src":"15454:1520:78","nodes":[],"body":{"id":50344,"nodeType":"Block","src":"15517:1457:78","nodes":[],"statements":[{"condition":{"expression":{"id":50239,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"15855:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15857:12:78","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"15855:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50245,"nodeType":"IfStatement","src":"15851:74:78","trueBody":{"id":50244,"nodeType":"Block","src":"15871:54:78","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":50241,"name":"enforceCollateralValidation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49466,"src":"15885:27:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":50242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15885:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50243,"nodeType":"ExpressionStatement","src":"15885:29:78"}]}},{"assignments":[50247],"declarations":[{"constant":false,"id":50247,"mutability":"mutable","name":"amount","nameLocation":"16001:6:78","nodeType":"VariableDeclaration","scope":50344,"src":"15993:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50246,"name":"uint256","nodeType":"ElementaryTypeName","src":"15993:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50253,"initialValue":{"arguments":[{"expression":{"id":50250,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16046:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16050:6:78","memberName":"sender","nodeType":"MemberAccess","src":"16046:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50248,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"16010:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16021:24:78","memberName":"totalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":44825,"src":"16010:35:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":50252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16010:47:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15993:64:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50254,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50247,"src":"16071:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":50255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16081:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16071:11:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50263,"nodeType":"IfStatement","src":"16067:73:78","trueBody":{"id":50262,"nodeType":"Block","src":"16084:56:78","statements":[{"errorCall":{"arguments":[{"expression":{"id":50258,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16118:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16122:6:78","memberName":"sender","nodeType":"MemberAccess","src":"16118:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50257,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37058,"src":"16105:12:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":50260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16105:24:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50261,"nodeType":"RevertStatement","src":"16098:31:78"}]}},{"expression":{"arguments":[{"expression":{"id":50269,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16226:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16230:6:78","memberName":"sender","nodeType":"MemberAccess","src":"16226:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":50264,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"16201:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50267,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16203:15:78","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":46084,"src":"16201:17:78","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":50268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16219:6:78","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":35153,"src":"16201:24:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35099_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":50271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16201:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50272,"nodeType":"ExpressionStatement","src":"16201:36:78"},{"expression":{"id":50278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"16247:35:78","subExpression":{"baseExpression":{"expression":{"id":50273,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"16254:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16256:14:78","memberName":"bootstrapNodes","nodeType":"MemberAccess","referencedDeclaration":46080,"src":"16254:16:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":50277,"indexExpression":{"expression":{"id":50275,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16271:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16275:6:78","memberName":"sender","nodeType":"MemberAccess","src":"16271:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16254:28:78","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50279,"nodeType":"ExpressionStatement","src":"16247:35:78"},{"condition":{"id":50282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16297:15:78","subExpression":{"expression":{"id":50280,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"16298:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16300:12:78","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"16298:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50335,"nodeType":"IfStatement","src":"16293:626:78","trueBody":{"id":50334,"nodeType":"Block","src":"16314:605:78","statements":[{"assignments":[50284],"declarations":[{"constant":false,"id":50284,"mutability":"mutable","name":"genesisBalance","nameLocation":"16433:14:78","nodeType":"VariableDeclaration","scope":50334,"src":"16425:22:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50283,"name":"uint256","nodeType":"ElementaryTypeName","src":"16425:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50290,"initialValue":{"baseExpression":{"expression":{"id":50285,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"16450:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50286,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16452:14:78","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":46005,"src":"16450:16:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":50289,"indexExpression":{"expression":{"id":50287,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16467:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16471:6:78","memberName":"sender","nodeType":"MemberAccess","src":"16467:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16450:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16425:53:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50291,"name":"genesisBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50284,"src":"16496:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":50292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16514:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16496:19:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50324,"nodeType":"IfStatement","src":"16492:262:78","trueBody":{"id":50323,"nodeType":"Block","src":"16517:237:78","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":50294,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"16535:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16537:14:78","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":46005,"src":"16535:16:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":50299,"indexExpression":{"expression":{"id":50296,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16552:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16556:6:78","memberName":"sender","nodeType":"MemberAccess","src":"16552:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16535:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":50300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16567:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16535:33:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50302,"nodeType":"ExpressionStatement","src":"16535:33:78"},{"expression":{"id":50307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":50303,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"16586:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16588:17:78","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":46000,"src":"16586:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":50306,"name":"genesisBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50284,"src":"16609:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16586:37:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50308,"nodeType":"ExpressionStatement","src":"16586:37:78"},{"expression":{"arguments":[{"expression":{"id":50310,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16665:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16669:6:78","memberName":"sender","nodeType":"MemberAccess","src":"16665:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50309,"name":"rmAddressFromBalanceKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50749,"src":"16641:23:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":50312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16641:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50313,"nodeType":"ExpressionStatement","src":"16641:35:78"},{"expression":{"arguments":[{"id":50320,"name":"genesisBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50284,"src":"16724:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":50316,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16702:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16706:6:78","memberName":"sender","nodeType":"MemberAccess","src":"16702:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16694:8:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":50314,"name":"address","nodeType":"ElementaryTypeName","src":"16694:8:78","stateMutability":"payable","typeDescriptions":{}}},"id":50318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16694:19:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":50319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16714:9:78","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32081,"src":"16694:29:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":50321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16694:45:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50322,"nodeType":"ExpressionStatement","src":"16694:45:78"}]}},{"expression":{"arguments":[{"expression":{"id":50328,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16869:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16873:6:78","memberName":"sender","nodeType":"MemberAccess","src":"16869:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50330,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50247,"src":"16881:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":50325,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"16838:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16849:19:78","memberName":"withdrawWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45026,"src":"16838:30:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":50331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16838:50:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50332,"nodeType":"ExpressionStatement","src":"16838:50:78"},{"functionReturnParameters":50238,"id":50333,"nodeType":"Return","src":"16902:7:78"}]}},{"expression":{"arguments":[{"expression":{"id":50339,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16948:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16952:6:78","memberName":"sender","nodeType":"MemberAccess","src":"16948:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50341,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50247,"src":"16960:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":50336,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"16928:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16939:8:78","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":45147,"src":"16928:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":50342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16928:39:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50343,"nodeType":"ExpressionStatement","src":"16928:39:78"}]},"baseFunctions":[39921],"documentation":{"id":50230,"nodeType":"StructuredDocumentation","src":"15386:63:78","text":"@notice method that allows a validator to leave the subnet."},"functionSelector":"d66d9e19","implemented":true,"kind":"function","modifiers":[{"id":50233,"kind":"modifierInvocation","modifierName":{"id":50232,"name":"nonReentrant","nameLocations":["15480:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":43298,"src":"15480:12:78"},"nodeType":"ModifierInvocation","src":"15480:12:78"},{"id":50235,"kind":"modifierInvocation","modifierName":{"id":50234,"name":"whenNotPaused","nameLocations":["15493:13:78"],"nodeType":"IdentifierPath","referencedDeclaration":42627,"src":"15493:13:78"},"nodeType":"ModifierInvocation","src":"15493:13:78"},{"id":50237,"kind":"modifierInvocation","modifierName":{"id":50236,"name":"notKilled","nameLocations":["15507:9:78"],"nodeType":"IdentifierPath","referencedDeclaration":46138,"src":"15507:9:78"},"nodeType":"ModifierInvocation","src":"15507:9:78"}],"name":"leave","nameLocation":"15463:5:78","parameters":{"id":50231,"nodeType":"ParameterList","parameters":[],"src":"15468:2:78"},"returnParameters":{"id":50238,"nodeType":"ParameterList","parameters":[],"src":"15517:0:78"},"scope":50947,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50375,"nodeType":"FunctionDefinition","src":"17107:217:78","nodes":[],"body":{"id":50374,"nodeType":"Block","src":"17142:182:78","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":50355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50351,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"17156:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17167:15:78","memberName":"totalValidators","nodeType":"MemberAccess","referencedDeclaration":44766,"src":"17156:26:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":50353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17156:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":50354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17188:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17156:33:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50360,"nodeType":"IfStatement","src":"17152:97:78","trueBody":{"id":50359,"nodeType":"Block","src":"17191:58:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50356,"name":"NotAllValidatorsHaveLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37022,"src":"17212:24:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17212:26:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50358,"nodeType":"RevertStatement","src":"17205:33:78"}]}},{"expression":{"id":50365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":50361,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"17259:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17261:6:78","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":46056,"src":"17259:8:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":50364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17270:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"17259:15:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50366,"nodeType":"ExpressionStatement","src":"17259:15:78"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":50368,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"17293:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17295:14:78","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"17293:16:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50367,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"17284:8:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":50370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17284:26:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":50371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17311:4:78","memberName":"kill","nodeType":"MemberAccess","referencedDeclaration":39841,"src":"17284:31:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":50372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17284:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50373,"nodeType":"ExpressionStatement","src":"17284:33:78"}]},"baseFunctions":[39945],"documentation":{"id":50346,"nodeType":"StructuredDocumentation","src":"16980:122:78","text":"@notice method that allows to kill the subnet when all validators left.\n @dev It is not a privileged operation."},"functionSelector":"41c0e1b5","implemented":true,"kind":"function","modifiers":[{"id":50349,"kind":"modifierInvocation","modifierName":{"id":50348,"name":"notKilled","nameLocations":["17132:9:78"],"nodeType":"IdentifierPath","referencedDeclaration":46138,"src":"17132:9:78"},"nodeType":"ModifierInvocation","src":"17132:9:78"}],"name":"kill","nameLocation":"17116:4:78","parameters":{"id":50347,"nodeType":"ParameterList","parameters":[],"src":"17120:2:78"},"returnParameters":{"id":50350,"nodeType":"ParameterList","parameters":[],"src":"17142:0:78"},"scope":50947,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50391,"nodeType":"FunctionDefinition","src":"17390:108:78","nodes":[],"body":{"id":50390,"nodeType":"Block","src":"17443:55:78","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":50386,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17480:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17484:6:78","memberName":"sender","nodeType":"MemberAccess","src":"17480:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50383,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"17453:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17464:15:78","memberName":"claimCollateral","nodeType":"MemberAccess","referencedDeclaration":45174,"src":"17453:26:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":50388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17453:38:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50389,"nodeType":"ExpressionStatement","src":"17453:38:78"}]},"baseFunctions":[39949],"documentation":{"id":50376,"nodeType":"StructuredDocumentation","src":"17330:55:78","text":"@notice Validator claims their released collateral."},"functionSelector":"4e71d92d","implemented":true,"kind":"function","modifiers":[{"id":50379,"kind":"modifierInvocation","modifierName":{"id":50378,"name":"nonReentrant","nameLocations":["17416:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":43298,"src":"17416:12:78"},"nodeType":"ModifierInvocation","src":"17416:12:78"},{"id":50381,"kind":"modifierInvocation","modifierName":{"id":50380,"name":"whenNotPaused","nameLocations":["17429:13:78"],"nodeType":"IdentifierPath","referencedDeclaration":42627,"src":"17429:13:78"},"nodeType":"ModifierInvocation","src":"17429:13:78"}],"name":"claim","nameLocation":"17399:5:78","parameters":{"id":50377,"nodeType":"ParameterList","parameters":[],"src":"17404:2:78"},"returnParameters":{"id":50382,"nodeType":"ParameterList","parameters":[],"src":"17443:0:78"},"scope":50947,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50407,"nodeType":"FunctionDefinition","src":"17547:130:78","nodes":[],"body":{"id":50406,"nodeType":"Block","src":"17616:61:78","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":50402,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17659:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17663:6:78","memberName":"sender","nodeType":"MemberAccess","src":"17659:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50399,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"17626:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17637:21:78","memberName":"claimRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":45230,"src":"17626:32:78","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":50404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17626:44:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50405,"nodeType":"ExpressionStatement","src":"17626:44:78"}]},"baseFunctions":[39953],"documentation":{"id":50392,"nodeType":"StructuredDocumentation","src":"17504:38:78","text":"@notice Relayer claims its reward."},"functionSelector":"ed7c4da1","implemented":true,"kind":"function","modifiers":[{"id":50395,"kind":"modifierInvocation","modifierName":{"id":50394,"name":"nonReentrant","nameLocations":["17589:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":43298,"src":"17589:12:78"},"nodeType":"ModifierInvocation","src":"17589:12:78"},{"id":50397,"kind":"modifierInvocation","modifierName":{"id":50396,"name":"whenNotPaused","nameLocations":["17602:13:78"],"nodeType":"IdentifierPath","referencedDeclaration":42627,"src":"17602:13:78"},"nodeType":"ModifierInvocation","src":"17602:13:78"}],"name":"claimRewardForRelayer","nameLocation":"17556:21:78","parameters":{"id":50393,"nodeType":"ParameterList","parameters":[],"src":"17577:2:78"},"returnParameters":{"id":50398,"nodeType":"ParameterList","parameters":[],"src":"17616:0:78"},"scope":50947,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50460,"nodeType":"FunctionDefinition","src":"17794:433:78","nodes":[],"body":{"id":50459,"nodeType":"Block","src":"17869:358:78","nodes":[],"statements":[{"condition":{"id":50421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17883:45:78","subExpression":{"arguments":[{"expression":{"id":50418,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17917:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17921:6:78","memberName":"sender","nodeType":"MemberAccess","src":"17917:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":50415,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"17884:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17886:12:78","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"17884:14:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":50417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17899:17:78","memberName":"isActiveValidator","nodeType":"MemberAccess","referencedDeclaration":43973,"src":"17884:32:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":50420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17884:44:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50428,"nodeType":"IfStatement","src":"17879:107:78","trueBody":{"id":50427,"nodeType":"Block","src":"17930:56:78","statements":[{"errorCall":{"arguments":[{"expression":{"id":50423,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17964:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17968:6:78","memberName":"sender","nodeType":"MemberAccess","src":"17964:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50422,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37058,"src":"17951:12:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":50425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17951:24:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50426,"nodeType":"RevertStatement","src":"17944:31:78"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":50431,"name":"netAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50410,"src":"18005:10:78","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":50430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17999:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":50429,"name":"bytes","nodeType":"ElementaryTypeName","src":"17999:5:78","typeDescriptions":{}}},"id":50432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17999:17:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":50433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18017:6:78","memberName":"length","nodeType":"MemberAccess","src":"17999:24:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":50434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18027:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17999:29:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50440,"nodeType":"IfStatement","src":"17995:81:78","trueBody":{"id":50439,"nodeType":"Block","src":"18030:46:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50436,"name":"EmptyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36960,"src":"18051:12:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18051:14:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50438,"nodeType":"RevertStatement","src":"18044:21:78"}]}},{"expression":{"id":50448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":50441,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"18085:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18087:14:78","memberName":"bootstrapNodes","nodeType":"MemberAccess","referencedDeclaration":46080,"src":"18085:16:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":50446,"indexExpression":{"expression":{"id":50443,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18102:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18106:6:78","memberName":"sender","nodeType":"MemberAccess","src":"18102:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18085:28:78","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50447,"name":"netAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50410,"src":"18116:10:78","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"18085:41:78","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":50449,"nodeType":"ExpressionStatement","src":"18085:41:78"},{"expression":{"arguments":[{"expression":{"id":50455,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18209:3:78","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18213:6:78","memberName":"sender","nodeType":"MemberAccess","src":"18209:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":50450,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"18187:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18189:15:78","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":46084,"src":"18187:17:78","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":50454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18205:3:78","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35126,"src":"18187:21:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35099_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":50457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18187:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50458,"nodeType":"ExpressionStatement","src":"18187:33:78"}]},"documentation":{"id":50408,"nodeType":"StructuredDocumentation","src":"17683:106:78","text":"@notice Add a bootstrap node.\n @param netAddress The network address of the new bootstrap node."},"functionSelector":"10fd4261","implemented":true,"kind":"function","modifiers":[{"id":50413,"kind":"modifierInvocation","modifierName":{"id":50412,"name":"whenNotPaused","nameLocations":["17855:13:78"],"nodeType":"IdentifierPath","referencedDeclaration":42627,"src":"17855:13:78"},"nodeType":"ModifierInvocation","src":"17855:13:78"}],"name":"addBootstrapNode","nameLocation":"17803:16:78","parameters":{"id":50411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50410,"mutability":"mutable","name":"netAddress","nameLocation":"17834:10:78","nodeType":"VariableDeclaration","scope":50460,"src":"17820:24:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50409,"name":"string","nodeType":"ElementaryTypeName","src":"17820:6:78","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17819:26:78"},"returnParameters":{"id":50414,"nodeType":"ParameterList","parameters":[],"src":"17869:0:78"},"scope":50947,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":50567,"nodeType":"FunctionDefinition","src":"18548:1477:78","nodes":[],"body":{"id":50566,"nodeType":"Block","src":"18709:1316:78","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50475,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50465,"src":"18723:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":50476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18733:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18723:11:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50480,"nodeType":"IfStatement","src":"18719:48:78","trueBody":{"id":50479,"nodeType":"Block","src":"18736:31:78","statements":[{"functionReturnParameters":50474,"id":50478,"nodeType":"Return","src":"18750:7:78"}]}},{"assignments":[50485],"declarations":[{"constant":false,"id":50485,"mutability":"mutable","name":"relayers","nameLocation":"18828:8:78","nodeType":"VariableDeclaration","scope":50566,"src":"18811:25:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50483,"name":"address","nodeType":"ElementaryTypeName","src":"18811:7:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50484,"nodeType":"ArrayTypeName","src":"18811:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":50491,"initialValue":{"arguments":[{"hexValue":"30","id":50489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18853:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":50488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18839:13:78","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":50486,"name":"address","nodeType":"ElementaryTypeName","src":"18843:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50487,"nodeType":"ArrayTypeName","src":"18843:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":50490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18839:16:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18811:44:78"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"},"id":50495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50492,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50468,"src":"18869:4:78","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":50493,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48490,"src":"18877:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$48490_$","typeString":"type(enum QuorumObjKind)"}},"id":50494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18891:10:78","memberName":"Checkpoint","nodeType":"MemberAccess","referencedDeclaration":48488,"src":"18877:24:78","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"}},"src":"18869:32:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"},"id":50506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50503,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50468,"src":"18980:4:78","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":50504,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48490,"src":"18988:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$48490_$","typeString":"type(enum QuorumObjKind)"}},"id":50505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19002:16:78","memberName":"BottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":48489,"src":"18988:30:78","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"}},"src":"18980:38:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":50516,"nodeType":"Block","src":"19331:87:78","statements":[{"errorCall":{"arguments":[{"hexValue":"72657761726473206e6f7420646566696e656420666f72206f626a656374206b696e64","id":50513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19369:37:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5d5a9667afc22826bedfac6abae6135d509547bfc0cd862f890b74ed636031a","typeString":"literal_string \"rewards not defined for object kind\""},"value":"rewards not defined for object kind"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5d5a9667afc22826bedfac6abae6135d509547bfc0cd862f890b74ed636031a","typeString":"literal_string \"rewards not defined for object kind\""}],"id":50512,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37094,"src":"19352:16:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":50514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19352:55:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50515,"nodeType":"RevertStatement","src":"19345:62:78"}]},"id":50517,"nodeType":"IfStatement","src":"18976:442:78","trueBody":{"id":50511,"nodeType":"Block","src":"19020:305:78","statements":[{"errorCall":{"arguments":[{"hexValue":"72657761726473206e6f7420646566696e656420666f722062617463686573","id":50508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19280:33:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_b9da9cb0c4374da0abe5efd456ab1dd51477d12760d042f65c0c4dce4c666fdb","typeString":"literal_string \"rewards not defined for batches\""},"value":"rewards not defined for batches"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b9da9cb0c4374da0abe5efd456ab1dd51477d12760d042f65c0c4dce4c666fdb","typeString":"literal_string \"rewards not defined for batches\""}],"id":50507,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37094,"src":"19263:16:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":50509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19263:51:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50510,"nodeType":"RevertStatement","src":"19256:58:78"}]}},"id":50518,"nodeType":"IfStatement","src":"18865:553:78","trueBody":{"id":50502,"nodeType":"Block","src":"18903:67:78","statements":[{"expression":{"id":50500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50496,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50485,"src":"18917:8:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":50498,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50463,"src":"18952:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50497,"name":"checkpointRewardedAddrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50594,"src":"18928:23:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) view returns (address[] memory)"}},"id":50499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18928:31:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"18917:42:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":50501,"nodeType":"ExpressionStatement","src":"18917:42:78"}]}},{"assignments":[50520],"declarations":[{"constant":false,"id":50520,"mutability":"mutable","name":"relayersLength","nameLocation":"19580:14:78","nodeType":"VariableDeclaration","scope":50566,"src":"19572:22:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50519,"name":"uint256","nodeType":"ElementaryTypeName","src":"19572:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50523,"initialValue":{"expression":{"id":50521,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50485,"src":"19597:8:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":50522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19606:6:78","memberName":"length","nodeType":"MemberAccess","src":"19597:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19572:40:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50524,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50520,"src":"19626:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":50525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19644:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19626:19:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50529,"nodeType":"IfStatement","src":"19622:56:78","trueBody":{"id":50528,"nodeType":"Block","src":"19647:31:78","statements":[{"functionReturnParameters":50474,"id":50527,"nodeType":"Return","src":"19661:7:78"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50530,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50465,"src":"19691:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":50531,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50520,"src":"19700:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19691:23:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50535,"nodeType":"IfStatement","src":"19687:60:78","trueBody":{"id":50534,"nodeType":"Block","src":"19716:31:78","statements":[{"functionReturnParameters":50474,"id":50533,"nodeType":"Return","src":"19730:7:78"}]}},{"assignments":[50537],"declarations":[{"constant":false,"id":50537,"mutability":"mutable","name":"relayerReward","nameLocation":"19764:13:78","nodeType":"VariableDeclaration","scope":50566,"src":"19756:21:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50536,"name":"uint256","nodeType":"ElementaryTypeName","src":"19756:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50541,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50538,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50465,"src":"19780:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":50539,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50520,"src":"19789:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19780:23:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19756:47:78"},{"body":{"id":50564,"nodeType":"Block","src":"19881:138:78","statements":[{"expression":{"id":50558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":50548,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"19895:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19897:14:78","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"19895:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":50555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19912:7:78","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":48433,"src":"19895:24:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":50556,"indexExpression":{"baseExpression":{"id":50551,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50485,"src":"19920:8:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":50553,"indexExpression":{"id":50552,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50543,"src":"19929:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19920:11:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19895:37:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":50557,"name":"relayerReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50537,"src":"19936:13:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19895:54:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50559,"nodeType":"ExpressionStatement","src":"19895:54:78"},{"id":50563,"nodeType":"UncheckedBlock","src":"19963:46:78","statements":[{"expression":{"id":50561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"19991:3:78","subExpression":{"id":50560,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50543,"src":"19993:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50562,"nodeType":"ExpressionStatement","src":"19991:3:78"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50545,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50543,"src":"19859:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":50546,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50520,"src":"19863:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19859:18:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50565,"initializationExpression":{"assignments":[50543],"declarations":[{"constant":false,"id":50543,"mutability":"mutable","name":"i","nameLocation":"19856:1:78","nodeType":"VariableDeclaration","scope":50565,"src":"19848:9:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50542,"name":"uint256","nodeType":"ElementaryTypeName","src":"19848:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50544,"nodeType":"VariableDeclarationStatement","src":"19848:9:78"},"nodeType":"ForStatement","src":"19843:176:78"}]},"baseFunctions":[39977],"documentation":{"id":50461,"nodeType":"StructuredDocumentation","src":"18233:310:78","text":"@notice Distributes rewards to relayers for a specific checkpoint.\n @param height The height of the checkpoint for which rewards are being distributed.\n @param reward The total amount of reward to be distributed.\n @param kind The type of object for which rewards are being distributed."},"functionSelector":"4c860af6","implemented":true,"kind":"function","modifiers":[{"id":50471,"kind":"modifierInvocation","modifierName":{"id":50470,"name":"whenNotPaused","nameLocations":["18683:13:78"],"nodeType":"IdentifierPath","referencedDeclaration":42627,"src":"18683:13:78"},"nodeType":"ModifierInvocation","src":"18683:13:78"},{"id":50473,"kind":"modifierInvocation","modifierName":{"id":50472,"name":"onlyGateway","nameLocations":["18697:11:78"],"nodeType":"IdentifierPath","referencedDeclaration":46131,"src":"18697:11:78"},"nodeType":"ModifierInvocation","src":"18697:11:78"}],"name":"distributeRewardToRelayers","nameLocation":"18557:26:78","parameters":{"id":50469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50463,"mutability":"mutable","name":"height","nameLocation":"18601:6:78","nodeType":"VariableDeclaration","scope":50567,"src":"18593:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50462,"name":"uint256","nodeType":"ElementaryTypeName","src":"18593:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50465,"mutability":"mutable","name":"reward","nameLocation":"18625:6:78","nodeType":"VariableDeclaration","scope":50567,"src":"18617:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50464,"name":"uint256","nodeType":"ElementaryTypeName","src":"18617:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50468,"mutability":"mutable","name":"kind","nameLocation":"18655:4:78","nodeType":"VariableDeclaration","scope":50567,"src":"18641:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"},"typeName":{"id":50467,"nodeType":"UserDefinedTypeName","pathNode":{"id":50466,"name":"QuorumObjKind","nameLocations":["18641:13:78"],"nodeType":"IdentifierPath","referencedDeclaration":48490,"src":"18641:13:78"},"referencedDeclaration":48490,"src":"18641:13:78","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$48490","typeString":"enum QuorumObjKind"}},"visibility":"internal"}],"src":"18583:82:78"},"returnParameters":{"id":50474,"nodeType":"ParameterList","parameters":[],"src":"18709:0:78"},"scope":50947,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":50594,"nodeType":"FunctionDefinition","src":"20344:252:78","nodes":[],"body":{"id":50593,"nodeType":"Block","src":"20443:153:78","nodes":[],"statements":[{"assignments":[50577],"declarations":[{"constant":false,"id":50577,"mutability":"mutable","name":"previousHeight","nameLocation":"20461:14:78","nodeType":"VariableDeclaration","scope":50593,"src":"20453:22:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50576,"name":"uint256","nodeType":"ElementaryTypeName","src":"20453:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50582,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50578,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50570,"src":"20478:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":50579,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"20487:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20489:19:78","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":46028,"src":"20487:21:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20478:30:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20453:55:78"},{"expression":{"id":50591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50583,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50574,"src":"20518:8:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"expression":{"id":50584,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"20529:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20531:14:78","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":46075,"src":"20529:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$48446_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":50586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20546:18:78","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":48439,"src":"20529:35:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35099_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":50588,"indexExpression":{"id":50587,"name":"previousHeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50577,"src":"20565:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20529:51:78","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":50589,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20581:6:78","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35252,"src":"20529:58:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35099_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":50590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20529:60:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"20518:71:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":50592,"nodeType":"ExpressionStatement","src":"20518:71:78"}]},"documentation":{"id":50568,"nodeType":"StructuredDocumentation","src":"20031:308:78","text":"@notice Retrieves the addresses of relayers who were rewarded for a specific checkpoint at a given height.\n @param height The height of the checkpoint for which to find rewarded relayers.\n @return relayers An array of addresses of the relayers who were rewarded at the specified checkpoint."},"implemented":true,"kind":"function","modifiers":[],"name":"checkpointRewardedAddrs","nameLocation":"20353:23:78","parameters":{"id":50571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50570,"mutability":"mutable","name":"height","nameLocation":"20385:6:78","nodeType":"VariableDeclaration","scope":50594,"src":"20377:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50569,"name":"uint256","nodeType":"ElementaryTypeName","src":"20377:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20376:16:78"},"returnParameters":{"id":50575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50574,"mutability":"mutable","name":"relayers","nameLocation":"20433:8:78","nodeType":"VariableDeclaration","scope":50594,"src":"20416:25:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50572,"name":"address","nodeType":"ElementaryTypeName","src":"20416:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50573,"nodeType":"ArrayTypeName","src":"20416:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"20415:27:78"},"scope":50947,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":50660,"nodeType":"FunctionDefinition","src":"21157:890:78","nodes":[],"body":{"id":50659,"nodeType":"Block","src":"21310:737:78","nodes":[],"statements":[{"assignments":[50610],"declarations":[{"constant":false,"id":50610,"mutability":"mutable","name":"collaterals","nameLocation":"21449:11:78","nodeType":"VariableDeclaration","scope":50659,"src":"21432:28:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":50608,"name":"uint256","nodeType":"ElementaryTypeName","src":"21432:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50609,"nodeType":"ArrayTypeName","src":"21432:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":50616,"initialValue":{"arguments":[{"id":50614,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50598,"src":"21504:11:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"expression":{"id":50611,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"21463:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21465:12:78","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"21463:14:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":50613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21478:25:78","memberName":"getTotalPowerOfValidators","nodeType":"MemberAccess","referencedDeclaration":43956,"src":"21463:40:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address[] memory) view returns (uint256[] memory)"}},"id":50615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21463:53:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"21432:84:78"},{"assignments":[50618],"declarations":[{"constant":false,"id":50618,"mutability":"mutable","name":"activeCollateral","nameLocation":"21534:16:78","nodeType":"VariableDeclaration","scope":50659,"src":"21526:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50617,"name":"uint256","nodeType":"ElementaryTypeName","src":"21526:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50623,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":50619,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"21553:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21555:12:78","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":46060,"src":"21553:14:78","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$48673_storage","typeString":"struct ValidatorSet storage ref"}},"id":50621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21568:19:78","memberName":"getTotalActivePower","nodeType":"MemberAccess","referencedDeclaration":43835,"src":"21553:34:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$48673_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$48673_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":50622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21553:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21526:63:78"},{"assignments":[50625],"declarations":[{"constant":false,"id":50625,"mutability":"mutable","name":"threshold","nameLocation":"21608:9:78","nodeType":"VariableDeclaration","scope":50659,"src":"21600:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50624,"name":"uint256","nodeType":"ElementaryTypeName","src":"21600:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50633,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50626,"name":"activeCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50618,"src":"21621:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":50627,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"21640:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21642:18:78","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":46039,"src":"21640:20:78","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"21621:39:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":50630,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21620:41:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":50631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21664:3:78","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"21620:47:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21600:67:78"},{"assignments":[50635,50638],"declarations":[{"constant":false,"id":50635,"mutability":"mutable","name":"valid","nameLocation":"21684:5:78","nodeType":"VariableDeclaration","scope":50659,"src":"21679:10:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50634,"name":"bool","nodeType":"ElementaryTypeName","src":"21679:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":50638,"mutability":"mutable","name":"err","nameLocation":"21719:3:78","nodeType":"VariableDeclaration","scope":50659,"src":"21691:31:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$42453","typeString":"enum MultisignatureChecker.Error"},"typeName":{"id":50637,"nodeType":"UserDefinedTypeName","pathNode":{"id":50636,"name":"MultisignatureChecker.Error","nameLocations":["21691:21:78","21713:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":42453,"src":"21691:27:78"},"referencedDeclaration":42453,"src":"21691:27:78","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$42453","typeString":"enum MultisignatureChecker.Error"}},"visibility":"internal"}],"id":50647,"initialValue":{"arguments":[{"id":50641,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50598,"src":"21805:11:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":50642,"name":"collaterals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50610,"src":"21839:11:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":50643,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50625,"src":"21875:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":50644,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50600,"src":"21904:4:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":50645,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50603,"src":"21934:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":50639,"name":"MultisignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42592,"src":"21726:21:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MultisignatureChecker_$42592_$","typeString":"type(library MultisignatureChecker)"}},"id":50640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21748:29:78","memberName":"isValidWeightedMultiSignature","nodeType":"MemberAccess","referencedDeclaration":42591,"src":"21726:51:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$_t_enum$_Error_$42453_$","typeString":"function (address[] memory,uint256[] memory,uint256,bytes32,bytes memory[] memory) pure returns (bool,enum MultisignatureChecker.Error)"}},"id":50646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["21792:11:78","21830:7:78","21864:9:78","21898:4:78","21922:10:78"],"names":["signatories","weights","threshold","hash","signatures"],"nodeType":"FunctionCall","src":"21726:229:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$42453_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"nodeType":"VariableDeclarationStatement","src":"21678:277:78"},{"condition":{"id":50649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"21970:6:78","subExpression":{"id":50648,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50635,"src":"21971:5:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50658,"nodeType":"IfStatement","src":"21966:75:78","trueBody":{"id":50657,"nodeType":"Block","src":"21978:63:78","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":50653,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50638,"src":"22025:3:78","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$42453","typeString":"enum MultisignatureChecker.Error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Error_$42453","typeString":"enum MultisignatureChecker.Error"}],"id":50652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22019:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":50651,"name":"uint8","nodeType":"ElementaryTypeName","src":"22019:5:78","typeDescriptions":{}}},"id":50654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22019:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":50650,"name":"InvalidSignatureErr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37006,"src":"21999:19:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$returns$__$","typeString":"function (uint8) pure"}},"id":50655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21999:31:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50656,"nodeType":"RevertStatement","src":"21992:38:78"}]}}]},"documentation":{"id":50595,"nodeType":"StructuredDocumentation","src":"20602:550:78","text":"@notice Checks whether the signatures are valid for the provided signatories and hash within the current validator set.\n Reverts otherwise.\n @dev Signatories in `signatories` and their signatures in `signatures` must be provided in the same order.\n Having it public allows external users to perform sanity-check verification if needed.\n @param signatories The addresses of the signatories.\n @param hash The hash of the checkpoint.\n @param signatures The packed signatures of the checkpoint."},"functionSelector":"cc2dc2b9","implemented":true,"kind":"function","modifiers":[],"name":"validateActiveQuorumSignatures","nameLocation":"21166:30:78","parameters":{"id":50604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50598,"mutability":"mutable","name":"signatories","nameLocation":"21223:11:78","nodeType":"VariableDeclaration","scope":50660,"src":"21206:28:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50596,"name":"address","nodeType":"ElementaryTypeName","src":"21206:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50597,"nodeType":"ArrayTypeName","src":"21206:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":50600,"mutability":"mutable","name":"hash","nameLocation":"21252:4:78","nodeType":"VariableDeclaration","scope":50660,"src":"21244:12:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50599,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21244:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":50603,"mutability":"mutable","name":"signatures","nameLocation":"21281:10:78","nodeType":"VariableDeclaration","scope":50660,"src":"21266:25:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":50601,"name":"bytes","nodeType":"ElementaryTypeName","src":"21266:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":50602,"nodeType":"ArrayTypeName","src":"21266:7:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"21196:101:78"},"returnParameters":{"id":50605,"nodeType":"ParameterList","parameters":[],"src":"21310:0:78"},"scope":50947,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":50695,"nodeType":"FunctionDefinition","src":"22257:269:78","nodes":[],"body":{"id":50694,"nodeType":"Block","src":"22343:183:78","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":50669,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50663,"src":"22360:9:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":50670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22370:6:78","memberName":"length","nodeType":"MemberAccess","src":"22360:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50671,"name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49386,"src":"22380:37:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22360:57:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":50668,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"22353:6:78","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":50673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22353:65:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50674,"nodeType":"ExpressionStatement","src":"22353:65:78"},{"assignments":[50676],"declarations":[{"constant":false,"id":50676,"mutability":"mutable","name":"hashed","nameLocation":"22436:6:78","nodeType":"VariableDeclaration","scope":50694,"src":"22428:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50675,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22428:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":50682,"initialValue":{"arguments":[{"baseExpression":{"id":50678,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50663,"src":"22455:9:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":50680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"22455:13:78","startExpression":{"hexValue":"31","id":50679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22465:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":50677,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"22445:9:78","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22445:24:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22428:41:78"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":50689,"name":"hashed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50676,"src":"22510:6:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":50688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22502:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":50687,"name":"uint256","nodeType":"ElementaryTypeName","src":"22502:7:78","typeDescriptions":{}}},"id":50690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22502:15:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22494:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":50685,"name":"uint160","nodeType":"ElementaryTypeName","src":"22494:7:78","typeDescriptions":{}}},"id":50691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22494:24:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":50684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22486:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50683,"name":"address","nodeType":"ElementaryTypeName","src":"22486:7:78","typeDescriptions":{}}},"id":50692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22486:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":50667,"id":50693,"nodeType":"Return","src":"22479:40:78"}]},"documentation":{"id":50661,"nodeType":"StructuredDocumentation","src":"22053:199:78","text":"@notice Converts a 65-byte public key to its corresponding address.\n @param publicKey The 65-byte public key to be converted.\n @return The address derived from the given public key."},"implemented":true,"kind":"function","modifiers":[],"name":"publicKeyToAddress","nameLocation":"22266:18:78","parameters":{"id":50664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50663,"mutability":"mutable","name":"publicKey","nameLocation":"22300:9:78","nodeType":"VariableDeclaration","scope":50695,"src":"22285:24:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":50662,"name":"bytes","nodeType":"ElementaryTypeName","src":"22285:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22284:26:78"},"returnParameters":{"id":50667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50695,"src":"22334:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50665,"name":"address","nodeType":"ElementaryTypeName","src":"22334:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22333:9:78"},"scope":50947,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":50749,"nodeType":"FunctionDefinition","src":"22598:481:78","nodes":[],"body":{"id":50748,"nodeType":"Block","src":"22654:425:78","nodes":[],"statements":[{"assignments":[50702],"declarations":[{"constant":false,"id":50702,"mutability":"mutable","name":"length","nameLocation":"22672:6:78","nodeType":"VariableDeclaration","scope":50748,"src":"22664:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50701,"name":"uint256","nodeType":"ElementaryTypeName","src":"22664:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50706,"initialValue":{"expression":{"expression":{"id":50703,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"22681:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22683:18:78","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":46009,"src":"22681:20:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":50705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22702:6:78","memberName":"length","nodeType":"MemberAccess","src":"22681:27:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22664:44:78"},{"body":{"id":50746,"nodeType":"Block","src":"22748:325:78","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":50713,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"22766:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22768:18:78","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":46009,"src":"22766:20:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":50716,"indexExpression":{"id":50715,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50708,"src":"22787:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22766:23:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50717,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50698,"src":"22793:4:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22766:31:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50741,"nodeType":"IfStatement","src":"22762:242:78","trueBody":{"id":50740,"nodeType":"Block","src":"22799:205:78","statements":[{"expression":{"id":50730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":50719,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"22817:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22819:18:78","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":46009,"src":"22817:20:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":50723,"indexExpression":{"id":50721,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50708,"src":"22838:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22817:23:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":50724,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"22843:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22845:18:78","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":46009,"src":"22843:20:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":50729,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50726,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50702,"src":"22864:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":50727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22873:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22864:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22843:32:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22817:58:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50731,"nodeType":"ExpressionStatement","src":"22817:58:78"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":50732,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"22893:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22895:18:78","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":46009,"src":"22893:20:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":50736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22914:3:78","memberName":"pop","nodeType":"MemberAccess","src":"22893:24:78","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer)"}},"id":50737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22893:26:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50738,"nodeType":"ExpressionStatement","src":"22893:26:78"},{"id":50739,"nodeType":"Break","src":"22984:5:78"}]}},{"id":50745,"nodeType":"UncheckedBlock","src":"23017:46:78","statements":[{"expression":{"id":50743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"23045:3:78","subExpression":{"id":50742,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50708,"src":"23047:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50744,"nodeType":"ExpressionStatement","src":"23045:3:78"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50710,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50708,"src":"22734:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":50711,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50702,"src":"22738:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22734:10:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50747,"initializationExpression":{"assignments":[50708],"declarations":[{"constant":false,"id":50708,"mutability":"mutable","name":"i","nameLocation":"22731:1:78","nodeType":"VariableDeclaration","scope":50747,"src":"22723:9:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50707,"name":"uint256","nodeType":"ElementaryTypeName","src":"22723:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50709,"nodeType":"VariableDeclarationStatement","src":"22723:9:78"},"nodeType":"ForStatement","src":"22718:355:78"}]},"documentation":{"id":50696,"nodeType":"StructuredDocumentation","src":"22532:61:78","text":"@notice Removes an address from the initial balance keys."},"implemented":true,"kind":"function","modifiers":[],"name":"rmAddressFromBalanceKey","nameLocation":"22607:23:78","parameters":{"id":50699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50698,"mutability":"mutable","name":"addr","nameLocation":"22639:4:78","nodeType":"VariableDeclaration","scope":50749,"src":"22631:12:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50697,"name":"address","nodeType":"ElementaryTypeName","src":"22631:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22630:14:78"},"returnParameters":{"id":50700,"nodeType":"ParameterList","parameters":[],"src":"22654:0:78"},"scope":50947,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":50883,"nodeType":"FunctionDefinition","src":"23239:1455:78","nodes":[],"body":{"id":50882,"nodeType":"Block","src":"23404:1290:78","nodes":[],"statements":[{"assignments":[50763],"declarations":[{"constant":false,"id":50763,"mutability":"mutable","name":"length","nameLocation":"23422:6:78","nodeType":"VariableDeclaration","scope":50882,"src":"23414:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50762,"name":"uint256","nodeType":"ElementaryTypeName","src":"23414:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50766,"initialValue":{"expression":{"id":50764,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50753,"src":"23431:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":50765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23442:6:78","memberName":"length","nodeType":"MemberAccess","src":"23431:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23414:34:78"},{"body":{"id":50848,"nodeType":"Block","src":"23488:792:78","statements":[{"assignments":[50774],"declarations":[{"constant":false,"id":50774,"mutability":"mutable","name":"convertedAddress","nameLocation":"23541:16:78","nodeType":"VariableDeclaration","scope":50848,"src":"23533:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50773,"name":"address","nodeType":"ElementaryTypeName","src":"23533:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":50780,"initialValue":{"arguments":[{"baseExpression":{"id":50776,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50756,"src":"23579:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":50778,"indexExpression":{"id":50777,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50768,"src":"23590:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23579:13:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":50775,"name":"publicKeyToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50695,"src":"23560:18:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":50779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23560:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"23533:60:78"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50781,"name":"convertedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50774,"src":"23611:16:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":50782,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50753,"src":"23631:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":50784,"indexExpression":{"id":50783,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50768,"src":"23642:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23631:13:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23611:33:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50790,"nodeType":"IfStatement","src":"23607:100:78","trueBody":{"id":50789,"nodeType":"Block","src":"23646:61:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50786,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37048,"src":"23671:19:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23671:21:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50788,"nodeType":"RevertStatement","src":"23664:28:78"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":50793,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50753,"src":"23848:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":50795,"indexExpression":{"id":50794,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50768,"src":"23859:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23848:13:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50791,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"23828:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23839:8:78","memberName":"getPower","nodeType":"MemberAccess","referencedDeclaration":44651,"src":"23828:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":50796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23828:34:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":50797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23865:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23828:38:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50803,"nodeType":"IfStatement","src":"23824:112:78","trueBody":{"id":50802,"nodeType":"Block","src":"23868:68:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50799,"name":"DuplicatedGenesisValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37098,"src":"23893:26:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23893:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50801,"nodeType":"RevertStatement","src":"23886:35:78"}]}},{"expression":{"arguments":[{"baseExpression":{"id":50807,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50753,"src":"23984:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":50809,"indexExpression":{"id":50808,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50768,"src":"23995:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23984:13:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":50810,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50756,"src":"23999:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":50812,"indexExpression":{"id":50811,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50768,"src":"24010:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23999:13:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":50804,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"23950:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23961:22:78","memberName":"setMetadataWithConfirm","nodeType":"MemberAccess","referencedDeclaration":44875,"src":"23950:33:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,bytes calldata)"}},"id":50813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23950:63:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50814,"nodeType":"ExpressionStatement","src":"23950:63:78"},{"expression":{"arguments":[{"baseExpression":{"id":50818,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50753,"src":"24067:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":50820,"indexExpression":{"id":50819,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50768,"src":"24078:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24067:13:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":50821,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50759,"src":"24082:6:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":50823,"indexExpression":{"id":50822,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50768,"src":"24089:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24082:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":50815,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"24027:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24038:28:78","memberName":"setFederatedPowerWithConfirm","nodeType":"MemberAccess","referencedDeclaration":44850,"src":"24027:39:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":50824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24027:65:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50825,"nodeType":"ExpressionStatement","src":"24027:65:78"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":50832,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50753,"src":"24149:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":50834,"indexExpression":{"id":50833,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50768,"src":"24160:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24149:13:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":50835,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50759,"src":"24172:6:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":50837,"indexExpression":{"id":50836,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50768,"src":"24179:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24172:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":50838,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50756,"src":"24193:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":50840,"indexExpression":{"id":50839,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50768,"src":"24204:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24193:13:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":50831,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"24132:9:78","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$48694_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":50841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24143:4:78","24164:6:78","24183:8:78"],"names":["addr","weight","metadata"],"nodeType":"FunctionCall","src":"24132:76:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validator_$48694_memory_ptr","typeString":"struct Validator memory"}],"expression":{"expression":{"id":50826,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"24107:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24109:17:78","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"24107:19:78","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}},"id":50830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24127:4:78","memberName":"push","nodeType":"MemberAccess","src":"24107:24:78","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$_t_struct$_Validator_$48694_storage_$returns$__$attached_to$_t_array$_t_struct$_Validator_$48694_storage_$dyn_storage_ptr_$","typeString":"function (struct Validator storage ref[] storage pointer,struct Validator storage ref)"}},"id":50842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24107:102:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50843,"nodeType":"ExpressionStatement","src":"24107:102:78"},{"id":50847,"nodeType":"UncheckedBlock","src":"24224:46:78","statements":[{"expression":{"id":50845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"24252:3:78","subExpression":{"id":50844,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50768,"src":"24254:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50846,"nodeType":"ExpressionStatement","src":"24252:3:78"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50770,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50768,"src":"23474:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":50771,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50763,"src":"23478:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23474:10:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50849,"initializationExpression":{"assignments":[50768],"declarations":[{"constant":false,"id":50768,"mutability":"mutable","name":"i","nameLocation":"23471:1:78","nodeType":"VariableDeclaration","scope":50849,"src":"23463:9:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50767,"name":"uint256","nodeType":"ElementaryTypeName","src":"23463:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50769,"nodeType":"VariableDeclarationStatement","src":"23463:9:78"},"nodeType":"ForStatement","src":"23458:822:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50850,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50763,"src":"24347:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":50851,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"24357:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24359:13:78","memberName":"minValidators","nodeType":"MemberAccess","referencedDeclaration":46031,"src":"24357:15:78","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"24347:25:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50858,"nodeType":"IfStatement","src":"24343:91:78","trueBody":{"id":50857,"nodeType":"Block","src":"24374:60:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50854,"name":"NotEnoughGenesisValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37100,"src":"24395:26:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24395:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50856,"nodeType":"RevertStatement","src":"24388:35:78"}]}},{"expression":{"id":50863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":50859,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"24444:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24446:12:78","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":46053,"src":"24444:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":50862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24461:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"24444:21:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50864,"nodeType":"ExpressionStatement","src":"24444:21:78"},{"eventCall":{"arguments":[{"expression":{"id":50866,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"24499:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24501:17:78","memberName":"genesisValidators","nodeType":"MemberAccess","referencedDeclaration":45997,"src":"24499:19:78","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Validator_$48694_storage_$dyn_storage","typeString":"struct Validator storage ref[] storage ref"}],"id":50865,"name":"SubnetBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49430,"src":"24480:18:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_struct$_Validator_$48694_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct Validator memory[] memory)"}},"id":50868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24480:39:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50869,"nodeType":"EmitStatement","src":"24475:44:78"},{"expression":{"arguments":[{"expression":{"id":50878,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"24667:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24669:17:78","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":46000,"src":"24667:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":50871,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"24612:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24614:14:78","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":46036,"src":"24612:16:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50870,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39904,"src":"24603:8:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$39904_$","typeString":"type(contract IGateway)"}},"id":50873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24603:26:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$39904","typeString":"contract IGateway"}},"id":50874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24630:8:78","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":39821,"src":"24603:35:78","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$","typeString":"function (uint256) payable external"}},"id":50877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":50875,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46099,"src":"24646:1:78","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$46085_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":50876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24648:17:78","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":46000,"src":"24646:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"24603:63:78","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$returns$__$value","typeString":"function (uint256) payable external"}},"id":50880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24603:84:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50881,"nodeType":"ExpressionStatement","src":"24603:84:78"}]},"documentation":{"id":50750,"nodeType":"StructuredDocumentation","src":"23085:149:78","text":"@notice method that allows the contract owner to set the validators' federated power before\n @notice subnet has already been bootstrapped."},"implemented":true,"kind":"function","modifiers":[],"name":"preBootstrapSetFederatedPower","nameLocation":"23248:29:78","parameters":{"id":50760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50753,"mutability":"mutable","name":"validators","nameLocation":"23306:10:78","nodeType":"VariableDeclaration","scope":50883,"src":"23287:29:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50751,"name":"address","nodeType":"ElementaryTypeName","src":"23287:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50752,"nodeType":"ArrayTypeName","src":"23287:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":50756,"mutability":"mutable","name":"publicKeys","nameLocation":"23343:10:78","nodeType":"VariableDeclaration","scope":50883,"src":"23326:27:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":50754,"name":"bytes","nodeType":"ElementaryTypeName","src":"23326:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":50755,"nodeType":"ArrayTypeName","src":"23326:7:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":50759,"mutability":"mutable","name":"powers","nameLocation":"23382:6:78","nodeType":"VariableDeclaration","scope":50883,"src":"23363:25:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":50757,"name":"uint256","nodeType":"ElementaryTypeName","src":"23363:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50758,"nodeType":"ArrayTypeName","src":"23363:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"23277:117:78"},"returnParameters":{"id":50761,"nodeType":"ParameterList","parameters":[],"src":"23404:0:78"},"scope":50947,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":50946,"nodeType":"FunctionDefinition","src":"24853:796:78","nodes":[],"body":{"id":50945,"nodeType":"Block","src":"25019:630:78","nodes":[],"statements":[{"assignments":[50897],"declarations":[{"constant":false,"id":50897,"mutability":"mutable","name":"length","nameLocation":"25037:6:78","nodeType":"VariableDeclaration","scope":50945,"src":"25029:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50896,"name":"uint256","nodeType":"ElementaryTypeName","src":"25029:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50900,"initialValue":{"expression":{"id":50898,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"25046:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":50899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25057:6:78","memberName":"length","nodeType":"MemberAccess","src":"25046:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25029:34:78"},{"body":{"id":50943,"nodeType":"Block","src":"25103:540:78","statements":[{"assignments":[50908],"declarations":[{"constant":false,"id":50908,"mutability":"mutable","name":"convertedAddress","nameLocation":"25156:16:78","nodeType":"VariableDeclaration","scope":50943,"src":"25148:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50907,"name":"address","nodeType":"ElementaryTypeName","src":"25148:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":50914,"initialValue":{"arguments":[{"baseExpression":{"id":50910,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50890,"src":"25194:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":50912,"indexExpression":{"id":50911,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50902,"src":"25205:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25194:13:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":50909,"name":"publicKeyToAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50695,"src":"25175:18:78","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":50913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25175:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"25148:60:78"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50915,"name":"convertedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50908,"src":"25226:16:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":50916,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"25246:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":50918,"indexExpression":{"id":50917,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50902,"src":"25257:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25246:13:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25226:33:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50924,"nodeType":"IfStatement","src":"25222:100:78","trueBody":{"id":50923,"nodeType":"Block","src":"25261:61:78","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":50920,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37048,"src":"25286:19:78","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":50921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25286:21:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50922,"nodeType":"RevertStatement","src":"25279:28:78"}]}},{"expression":{"arguments":[{"baseExpression":{"id":50928,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"25513:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":50930,"indexExpression":{"id":50929,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50902,"src":"25524:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25513:13:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":50931,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50890,"src":"25538:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":50933,"indexExpression":{"id":50932,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50902,"src":"25549:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25538:13:78","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"baseExpression":{"id":50934,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50893,"src":"25561:6:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":50936,"indexExpression":{"id":50935,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50902,"src":"25568:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25561:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":50925,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45464,"src":"25472:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$45464_$","typeString":"type(library LibStaking)"}},"id":50927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25483:17:78","memberName":"setFederatedPower","nodeType":"MemberAccess","referencedDeclaration":45054,"src":"25472:28:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$_t_uint256_$returns$__$","typeString":"function (address,bytes calldata,uint256)"}},"id":50937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["25502:9:78","25528:8:78","25553:6:78"],"names":["validator","metadata","amount"],"nodeType":"FunctionCall","src":"25472:100:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50938,"nodeType":"ExpressionStatement","src":"25472:100:78"},{"id":50942,"nodeType":"UncheckedBlock","src":"25587:46:78","statements":[{"expression":{"id":50940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25615:3:78","subExpression":{"id":50939,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50902,"src":"25617:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50941,"nodeType":"ExpressionStatement","src":"25615:3:78"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50904,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50902,"src":"25089:1:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":50905,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50897,"src":"25093:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25089:10:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50944,"initializationExpression":{"assignments":[50902],"declarations":[{"constant":false,"id":50902,"mutability":"mutable","name":"i","nameLocation":"25086:1:78","nodeType":"VariableDeclaration","scope":50944,"src":"25078:9:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50901,"name":"uint256","nodeType":"ElementaryTypeName","src":"25078:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50903,"nodeType":"VariableDeclarationStatement","src":"25078:9:78"},"nodeType":"ForStatement","src":"25073:570:78"}]},"documentation":{"id":50884,"nodeType":"StructuredDocumentation","src":"24700:148:78","text":"@notice method that allows the contract owner to set the validators' federated power after\n @notice subnet has already been bootstrapped."},"implemented":true,"kind":"function","modifiers":[],"name":"postBootstrapSetFederatedPower","nameLocation":"24862:30:78","parameters":{"id":50894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50887,"mutability":"mutable","name":"validators","nameLocation":"24921:10:78","nodeType":"VariableDeclaration","scope":50946,"src":"24902:29:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":50885,"name":"address","nodeType":"ElementaryTypeName","src":"24902:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50886,"nodeType":"ArrayTypeName","src":"24902:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":50890,"mutability":"mutable","name":"publicKeys","nameLocation":"24958:10:78","nodeType":"VariableDeclaration","scope":50946,"src":"24941:27:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":50888,"name":"bytes","nodeType":"ElementaryTypeName","src":"24941:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":50889,"nodeType":"ArrayTypeName","src":"24941:7:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":50893,"mutability":"mutable","name":"powers","nameLocation":"24997:6:78","nodeType":"VariableDeclaration","scope":50946,"src":"24978:25:78","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":50891,"name":"uint256","nodeType":"ElementaryTypeName","src":"24978:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50892,"nodeType":"ArrayTypeName","src":"24978:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"24892:117:78"},"returnParameters":{"id":50895,"nodeType":"ParameterList","parameters":[],"src":"25019:0:78"},"scope":50947,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":49387,"name":"ISubnetActor","nameLocations":["1723:12:78"],"nodeType":"IdentifierPath","referencedDeclaration":39978,"src":"1723:12:78"},"id":49388,"nodeType":"InheritanceSpecifier","src":"1723:12:78"},{"baseName":{"id":49389,"name":"SubnetActorModifiers","nameLocations":["1737:20:78"],"nodeType":"IdentifierPath","referencedDeclaration":46139,"src":"1737:20:78"},"id":49390,"nodeType":"InheritanceSpecifier","src":"1737:20:78"},{"baseName":{"id":49391,"name":"Pausable","nameLocations":["1759:8:78"],"nodeType":"IdentifierPath","referencedDeclaration":42733,"src":"1759:8:78"},"id":49392,"nodeType":"InheritanceSpecifier","src":"1759:8:78"},{"baseName":{"id":49393,"name":"ReentrancyGuard","nameLocations":["1769:15:78"],"nodeType":"IdentifierPath","referencedDeclaration":43314,"src":"1769:15:78"},"id":49394,"nodeType":"InheritanceSpecifier","src":"1769:15:78"}],"canonicalName":"SubnetActorManagerFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50947,43314,42733,46139,39978],"name":"SubnetActorManagerFacet","nameLocation":"1696:23:78","scope":50948,"usedErrors":[32032,32040,36936,36940,36942,36950,36958,36960,36972,36974,36976,37006,37010,37016,37022,37030,37034,37038,37046,37048,37052,37058,37062,37064,37072,37078,37082,37094,37096,37098,37100,40522,42616,42619,43262]}],"license":"MIT OR Apache-2.0"},"id":78} \ No newline at end of file +{"abi":[{"type":"function","name":"addBootstrapNode","inputs":[{"name":"netAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardForRelayer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeRewardToRelayers","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"reward","type":"uint256","internalType":"uint256"},{"name":"kind","type":"uint8","internalType":"enum QuorumObjKind"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"join","inputs":[{"name":"publicKey","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leave","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"preFund","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"preRelease","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFederatedPower","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"publicKeys","type":"bytes[]","internalType":"bytes[]"},{"name":"powers","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateActiveQuorumSignatures","inputs":[{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"view"},{"type":"event","name":"BottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BottomUpCheckpointSubmitted","inputs":[{"name":"checkpoint","type":"tuple","indexed":false,"internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NextBottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"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":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"BatchWithNoMessages","inputs":[]},{"type":"error","name":"CannotConfirmFutureChanges","inputs":[]},{"type":"error","name":"CannotReleaseZero","inputs":[]},{"type":"error","name":"CollateralIsZero","inputs":[]},{"type":"error","name":"DuplicatedGenesisValidator","inputs":[]},{"type":"error","name":"EmptyAddress","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidBatchEpoch","inputs":[]},{"type":"error","name":"InvalidCheckpointEpoch","inputs":[]},{"type":"error","name":"InvalidFederationPayload","inputs":[]},{"type":"error","name":"InvalidPublicKeyLength","inputs":[]},{"type":"error","name":"InvalidSignatureErr","inputs":[{"name":"","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"MaxMsgsPerBatchExceeded","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NoCollateralToWithdraw","inputs":[]},{"type":"error","name":"NotAllValidatorsHaveLeft","inputs":[]},{"type":"error","name":"NotEnoughBalance","inputs":[]},{"type":"error","name":"NotEnoughCollateral","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotEnoughGenesisValidators","inputs":[]},{"type":"error","name":"NotGateway","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"NotOwnerOfPublicKey","inputs":[]},{"type":"error","name":"NotValidator","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"SubnetAlreadyBootstrapped","inputs":[]},{"type":"error","name":"SubnetAlreadyKilled","inputs":[]},{"type":"error","name":"WithdrawExceedingCollateral","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657615081908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146119e15750806310fd426114611870578063268119361461165d5780632e17de78146116305780633a4b66f1146115545780633f4ba83a146114dc57806341c0e1b51461144b5780634c860af6146113f75780634e71d92d146112635780635c975abb146112335780636170b16214610e8357806366783c9b14610da25780638456cb5914610d3a578063b9ee2bb91461093b578063cc2dc2b9146108bb578063d66d9e1914610870578063da5d09ee146101a55763ed7c4da1146100e757600080fd5b346101a257806003193601126101a25760008051602061502c83398151915260018154146101905780600183925561011d611cde565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b1561018c5782602491604051928380926382985e0b60e01b82523360048301525af490811561018157839161016a575b50505580f35b61017390611ac3565b61017e578138610164565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101a25760603660031901126101a2576004356001600160401b03811161086c576101d6903690600401611b69565b906024356001600160401b038111610868576101f6903690600401611b69565b916044356001600160401b03811161086457610216903690600401611b69565b909461022061411c565b610228611c99565b60ff601354166003811015610850576001036108205781810361080e5784810361080e5760125460081c60ff161561050f57865b81811061026d575050505050505080f35b61028161027b828888613eca565b906140e0565b6001600160a01b0361029c610297848689613f0b565b611ea9565b166001600160a01b03909116036104fd576103066102be610297838588613f0b565b6102c9838989613eca565b6102d785888d969496613f0b565b356102f2604051958693604060208601526060850191613abb565b90604083015203601f198101845283611af1565b6001600160401b03601c541660405161031e81611ad6565b600381526020810184815260018060a01b038416604083015282600052601d60205260406000209082516103518161202f565b61035a8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761039282610389600186015461204f565b60018601612142565b602090601f8311600114610460579282600080516020614fec83398151915297959360029360019b9a9896600092610455575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361040b82612267565b166001600160401b0319601c541617601c5561044660405193849360038552888060a01b031660208501526080806040860152840190613ea5565b9060608301520390a10161025c565b0151905038806103c5565b906001840160005260206000209160005b601f19851681106104cf57508360029360019b9a9896938c93600080516020614fec8339815191529b9997601f198116106104b6575b505050811b01898201556103db565b015160001960f88460031b161c191690553880806104a7565b91926020600181928685015181550194019201610471565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105e6575050505050506001600160401b03600c541610156105d45761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061057281613f56565b0390a1600e5460025482916001600160a01b0316803b1561018c578290602460405180948193637903ab2760e11b83528160048401525af180156105c9576105b957505080f35b6105c290611ac3565b6101a25780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b6105f461027b828786613eca565b6001600160a01b039190828061060e610297858d8d613f0b565b169116036104fd5761062c610627610297838b8b613f0b565b6131c1565b6107fc576106c391610656610645610297848c8c613f0b565b610650848a89613eca565b91614003565b610679610667610297848c8c613f0b565b61067284878a613f0b565b3590612758565b610687610297838b8b613f0b565b90610693838689613f0b565b35906106a0848a89613eca565b9590604051936106af85611ad6565b845260209683888601961686523691611b2d565b9260408301938452600154600160401b8110156104e7578060016106ea9201600155613f1b565b9290926107e657600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104e75761073882610732855461204f565b85612142565b80601f83116001146107775750819060019560009261076c575b5050600019600383901b1c191690841b1790555b01610516565b015190503880610752565b91929394601f1984168560005283600020936000905b8282106107ce575050916001969594929183889593106107b5575b505050811b019055610766565b015160001960f88460031b161c191690553880806107a8565b8060018697829497870151815501960194019061078d565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b61084c61082b613e28565b60405163015538b160e01b8152602060048201529182916024830190613ea5565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101a257806003193601126101a25760008051602061502c8339815191526001815414610190578060018392556108a7611cde565b6108af61411c565b6108b761490d565b5580f35b50346101a25760603660031901126101a2576001600160401b036004358181116109375736602382011215610937576108fe903690602481600401359101611bc4565b60443591821161093757366023830112156109375761092a610934923690602481600401359101611c1a565b9060243590614cb0565b80f35b8280fd5b50346101a25760031960603682011261086c576001600160401b036004351161086c576080600435600401916004353603011261086c576024356001600160401b03811161093757610991903690600401611b69565b91906044356001600160401b038111610d36576109b2903690600401611b69565b916109bb611cde565b60055494600b54956109cd8782611d09565b60246004350135141580610d26575b610d145760405190610a1460208301836109f68a83611df8565b0393610a0a601f1995868101835282611af1565b5190209882611d09565b6004356024013503610c1157505091610a37610a3f92610a459697943691611bc4565b933691611c1a565b91614cb0565b6024600435013582528160205260408220908035604219600435360301811215610868576004350191600483016001600160401b03610a8382611e49565b16936001600160401b03199485845416178355610aa96001926024848601930190611e5d565b91906001600160401b038311610bfd57600160401b8311610bfd578154838355808410610be2575b509087959493929190865260208620865b838110610bbb575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b1e86611e49565b16908254161790556024600435013582526022602052610b42604083203390611faa565b5060043560240135600555600e546001600160a01b0316803b15610937576040516347dc9b4f60e01b81529183918391829084908290610b859060048301611df8565b03925af180156105c957610ba7575b5050610ba261093491611e49565b61227f565b610bb090611ac3565b61086c578138610b94565b84959697506020610bcf8495969394611ea9565b848301558a989796959401929101610ae2565b82895260208920610bf7918101908501611e92565b38610ad1565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c2957505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610cf3575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610cc8915082611af1565b51902014610cd35780f35b6024600435013581526022602052610cef604082203390611faa565b5080f35b82546001600160a01b03168552889550602090940193918101918101610c87565b60405163fae4eadb60e01b8152600490fd5b50806024600435013514156109dc565b8480fd5b50346101a257806003193601126101a257610d53611c99565b610d5b611cde565b60008051602061500c833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101a25760203660031901126101a25760043560008051602061502c833981519152600181541461019057600181558115610e715760ff60125460081c16610e5f57338352600360205281604084205410610e4d576108b78392338452600360205260408420610e158282546127ec565b9055610e23816002546127ec565b6002553384526003602052604084205415610e3f575b33613cc7565b610e4833613d41565b610e39565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101a2576004356001600160401b03811161086c573660238201121561086c576001600160401b0381600401351161086c5736602482600401358301011161086c57600160008051602061502c833981519152541461019057600160008051602061502c83398151915255610eff611cde565b610f0761411c565b60ff60125460081c1680611226575b3415611214573360009081526015602052604090206002015461119f57604182600401350361118d57336001600160a01b03610f596004850135602486016140e0565b16036104fd57610f9c57806024610f769260040135910133614003565b610f80343361413d565b610f88614571565b8060008051602061502c8339815191525580f35b610fae36826004013560248401611b2d565b6001600160401b03601c54169060405190610fc882611ad6565b600282526020820190815233604083015282600052601d6020526040600020908251610ff38161202f565b610ffc8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761102b82610389600186015461204f565b602090601f8311600114611105579282600080516020614fec8339815191529795936002936110e298966000926110fa575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036110a682612267565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613abb565b9060608301520390a16110f53433614357565b610f88565b01519050388061105d565b906001840160005260206000209160005b601f19851681106111755750836002936110e2989693600193600080516020614fec8339815191529b9997601f1981161061115c575b505050811b016001820155611075565b015160001960f88460031b161c1916905538808061114c565b91926020600181928685015181550194019201611116565b6040516318dca5e960e21b8152600490fd5b61084c6040516111ae81611ad6565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b604051635a78c58160e11b8152600490fd5b61122e61455c565b610f16565b50346101a257806003193601126101a257602060ff60008051602061500c83398151915254166040519015158152f35b50346101a257806003193601126101a25760019060008051602061502c8339815191528281541461019057828155611299611cde565b336000908152601f602052604090209283549061ffff908183169283156113e557829060101c16918391808795818a01915b61135f575b50505086611341937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611348575b6113298133613cc7565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561131f565b9091939483811696828810156113dc578760005260208091858252604060002060405161138b81611aa8565b898254928383520154938491015243106113d157859493889688946113b286958a95611d09565b9c600052526000826040822082815501550116966000190116946112cb565b9850505094936112d0565b965094936112d0565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101a257604435600281101561086c57611418611cde565b600e546001600160a01b031633036114395761093490602435600435614b05565b60405163e7e601db60e01b8152600490fd5b50346101a257806003193601126101a25761146461411c565b61ffff61147a8160195416826016541690612742565b166114ca576012805462ff0000191662010000179055600e5481906001600160a01b0316803b1561017e578180916004604051809481936341c0e1b560e01b83525af180156105c9576105b95750f35b604051636b62255160e11b8152600490fd5b50346101a257806003193601126101a2576114f5611c99565b60008051602061500c833981519152805460ff8116156115425760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101a257611568611cde565b61157061411c565b61157861455c565b34156112145733600090815260156020526040902060020154156115bf5760125460081c60ff166115b5576115ad343361413d565b610934614571565b6109343433614357565b61084c6040516115ce81611ad6565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b50346101a25760203660031901126101a25761164a611cde565b61165261411c565b61093460043561463d565b50346101a25760031960603682011261086c576004356001600160401b03918282116108685760608260040191833603011261086857602435838111610d36576116ab903690600401611b69565b919060443585811161186c576116c5903690600401611b69565b916024860135966006549687891061182157604401906116e58287611e5d565b9190506009541680911161185a576116fd8287611e5d565b9050141580611833575b611821576117159085611e5d565b90501561180f5787946040516020810190611742816117348985613b45565b03601f198101835282611af1565b519020968803611773575050505050506007541461175e575080f35b81526023602052610cef604082203390611faa565b61178d9392610a3788969893610a3f939a989a3691611bc4565b80602060405161179c81611aa8565b848152015281600655600755825260236020526117bd604083203390611faa565b50600e546001600160a01b031690813b1561018c5782916117f491604051948580948193630bed761560e01b835260048301613b45565b03925af180156105c957611806575080f35b61093490611ac3565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118465788061515611707565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101a257602090816003193601126101a2576001600160401b03916004358381116109375736602382011215610937576118b6903690602481600401359101611b2d565b926118bf611cde565b3383526017825261ffff604084205416156119c9578351156119b75733835260248252604083209184519182116119a3576118fe82610732855461204f565b80601f831160011461193f5750839482939492611934575b50508160011b916000199060031b1c19161790555b610cef33611f41565b015190503880611916565b90601f198316958486528286209286905b88821061198b57505083600195969710611972575b505050811b01905561192b565b015160001960f88460031b161c19169055388080611965565b80600185968294968601518155019501930190611950565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b90508160031936011261086c573415611a99575060ff60125460081c16610e5f573381526003602052604081205415611a40575b338152600360205260408120611a2c348254611d09565b9055611a3a34600254611d09565b60025580f35b600454600160401b811015611a8557611a62816001611a809301600455611ebd565b81546001600160a01b0360039290921b91821b19163390911b179055565b611a15565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757604052565b606081019081106001600160401b038211176104e757604052565b90601f801991011681019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757601f01601f191660200190565b929192611b3982611b12565b91611b476040519384611af1565b829481845281830111611b64578281602093846000960137010152565b600080fd5b9181601f84011215611b64578235916001600160401b038311611b64576020808501948460051b010111611b6457565b6001600160401b0381116104e75760051b60200190565b35906001600160a01b0382168203611b6457565b9291611bcf82611b99565b91611bdd6040519384611af1565b829481845260208094019160051b8101928311611b6457905b828210611c035750505050565b838091611c0f84611bb0565b815201910190611bf6565b92919092611c2784611b99565b91611c356040519384611af1565b829480845260208094019060051b830192828411611b645780915b848310611c5f57505050505050565b82356001600160401b038111611b6457820184601f82011215611b64578691611c8e8683858095359101611b2d565b815201920191611c50565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611ccc57565b6040516330cd747160e01b8152600490fd5b60ff60008051602061500c8339815191525416611cf757565b60405163d93c066560e01b8152600490fd5b91908201809211611d1657565b634e487b7160e01b600052601160045260246000fd5b9035603e1982360301811215611b64570190565b35906001600160401b0382168203611b6457565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578160051b36038313611b6457565b60408201916001600160401b03611d9e83611d40565b1681526060611db260209384810190611d54565b839195604086839601525201929160005b828110611dd1575050505090565b909192938280600192838060a01b03611de989611bb0565b16815201950193929101611dc3565b6020815260806001600160401b03611e426060611e28611e188780611d2c565b85602088015260a0870190611d88565b956020810135604087015260408101358287015201611d40565b1691015290565b356001600160401b0381168103611b645790565b903590601e1981360301821215611b6457018035906001600160401b038211611b6457602001918160051b36038313611b6457565b818110611e9d575050565b60008155600101611e92565b356001600160a01b0381168103611b645790565b600454811015611ef45760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611ef45760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fa557602554600160401b811015611a85579082611f91611f7a84600160409601602555611f0a565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461202957845494600160401b861015612015576001860180825586101561200157836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561203957565b634e487b7160e01b600052602160045260246000fd5b90600182811c9216801561207f575b602083101461206957565b634e487b7160e01b600052602260045260246000fd5b91607f169161205e565b906000929180549161209a8361204f565b9182825260019384811690816000146120fc57506001146120bc575b50505050565b90919394506000526020928360002092846000945b8386106120e85750505050010190388080806120b6565b8054858701830152940193859082016120d1565b9294505050602093945060ff191683830152151560051b010190388080806120b6565b60005b8381106121325750506000910152565b8181015183820152602001612122565b9190601f811161215157505050565b61217d926000526020600020906020601f840160051c8301931061217f575b601f0160051c0190611e92565b565b9091508190612170565b908082146122635761219b815461204f565b906001600160401b0382116104e75781906121c0826121ba865461204f565b86612142565b600090601f83116001146121f7576000926121ec575b50508160011b916000199060031b1c1916179055565b0154905038806121d6565b81526020808220858352818320935090601f1985169083905b82821061224a575050908460019594939210612231575b505050811b019055565b015460001960f88460031b161c19169055388080612227565b8495819295850154815560018091019601940190612210565b5050565b9060016001600160401b0380931601918211611d1657565b601c546001600160401b03828116929080831684106122aa5760405163040aaa0560e11b8152600490fd5b808360401c1684106120b65780604093841c165b848282161115612325575050916020916122f87f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612267565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612343826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123688161202f565b8085036123da5750506003612399600161239f94959697019260018060a01b03166000526015602052604060002090565b01612189565b6123bc816001600160401b0316600052601d602052604060002090565b916000908184556001936123d18582016127f9565b015501166122be565b909194506123e78161202f565b60039181830361258557505087519361240f85612408816001809a01612089565b0386611af1565b84518501916020928a87858301920312611b645783870151898111611b645787019681603f89011215611b645787858d9901519261245861244f85611b12565b9a519a8b611af1565b838a528d8483010111611b64578c926124769184888c01910161211f565b015192816124968460018060a01b03166000526015602052604060002090565b01918751918a8311612570578a986124b8846124b2875461204f565b87612142565b81601f85116001146124fd57506124ed9798999a84939284926000956124f2575b50501b92600019911b1c1916179055612758565b61239f565b0151935038806124d9565b91601f9b9493919b1984169b866000528c84600020946000915b8210612555575050846124ed9a9b9c9d1061253b575b50505050811b019055612758565b01519060f884600019921b161c191690553880808061252d565b8383015186558f9d509487019492830192908101908e612517565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125a185612408816001809501612089565b60208086805181010312611b645781818c970151956125bf8161202f565b036126e45784906125d08285612842565b601e546125dd9043611d09565b928751906125ea82611aa8565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061262d91612742565b169c60009d8e5282870188528d20925183555191015561264c9061272f565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b15610937578291602483928a5195869384926345f5448560e01b845260048401525af19081156126d9575090849392916126ca575b5061239f565b6126d390611ac3565b386126c4565b8751903d90823e3d90fd5b5050829350916126f4919261279c565b600e541690813b15611b64578651916316989f6f60e21b83528260048160009485945af19081156126d9575090849392916126ca575061239f565b90600161ffff80931601918211611d1657565b91909161ffff80809416911601918211611d1657565b9060018060a01b03821660005260156020526040600020818154915581811460001461278357505050565b8111156127935761217d916128d1565b61217d91612c17565b9061217d916127e460018060a01b038216928360005260156020526127c981600160406000200154611d09565b93600052601560205283600160406000200155601454611d09565b6014556128d1565b91908203918211611d1657565b612803815461204f565b908161280d575050565b81601f6000931160011461281f575055565b90808391825261283e601f60208420940160051c840160018501611e92565b5555565b906128af6128b79260018060a01b038116906000828152601560205261286f8560016040842001546127ec565b92815260156020526040812060028101848154811590816128c8575b50156128bc575090826003926128aa94835581600184015555016127f9565b612c17565b6014546127ec565b601455565b92505060010155612c17565b9050153861288b565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b02578360135460081c16846016541610612ace5761291661379a565b60019283825260188652828a8320541688612930826131c1565b10612a4857508152601a855283898220541661299f57505050505061299a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461297a8361314c565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129a8866137ed565b926129b2876131c1565b935b8186821611612a0a575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd90806040810161299a565b8085612a2986617fff8f95871c1694858852601b8c52872054166131c1565b1015612a425790612a3b8392826139fb565b90506129b4565b506129be565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061299a95601a91612a83613480565b835252205416612ac0575b612a978461340b565b612aa08361314c565b516001600160a01b03928316815292909116602083015281906040820190565b612ac984613224565b612a8e565b505050505061299a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b97929150612b1385949796956137b6565b97612b1d856131c1565b97612b278a61339c565b8460165416905b858116828111612be05782811015612bc4575080612b4e612b549261272f565b9061374a565b9b909b5b8b1115612b7757612b69908c61396c565b612b728b61339c565b612b2e565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979150806040810161299a565b849c919c5260188352612bdb8588862054166131c1565b612b58565b5050505050505061299a91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197945061297a565b9060018060a01b039283831691600093838552602094601a865261ffff96604095888784205416613016578083526017885288878420541615613005578415612e9f5750612c64836137b6565b97612c6e846131c1565b985b6001808383161115612e905781617fff911c169081855260188a528a612c9a858b882054166131c1565b1115612caf57612caa908261396c565b612c70565b505091939597509193955b816019541615612e8657612ccc61379a565b6001918285526018825283898620541693612ce6856131c1565b95612cef6137a8565b848152601b808552828c8320541697612d07896131c1565b11612d5a57505098516001600160a01b0390961686525050505060208201929092529192507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197919050806040810161299a565b91939597509193959750612d6c613480565b83601954168015612e755780612d87612da3929896986138b3565b87612d9182613210565b1661ffff196019541617601955613812565b838252808552612db7838b842054166131c1565b9484809760028160195416925b612e02575b5050505050505050505061299a7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759394612a978461340b565b818116838111612e6f578e9080851115612e5457505080612e25612e2b9261272f565b906133b3565b9990995b891015612e4f57612e40908a6139fb565b612e498961339c565b87612dc4565b612dc9565b8752858552862054909990612e6a9088166131c1565b612e2f565b50612dc9565b8a516340d9b01160e01b8152600490fd5b5050505050509050565b50509193959750919395612cba565b7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b929450612ed388949996989297996135db565b8851908152a18260195416928315948515612ef2575050505050509050565b612efa6137a8565b600193848152601b808552828a8320541696612f15886131c1565b98612e755780612d87612f2a929896986138b3565b838252808552612f3e838b842054166131c1565b9484809760028160195416925b612f98575b50505050505050505050612f897f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b0390a180388080808080612e86565b818116838111612fff578e9080851115612fe457505080612e25612fbb9261272f565b9990995b891015612fdf57612fd0908a6139fb565b612fd98961339c565b87612f4b565b612f50565b8752858552862054909990612ffa9088166131c1565b612fbf565b50612f50565b8651632a55ca5360e01b8152600490fd5b84969892949793959715613111575061fffe9193613033866137ed565b9361303d876131c1565b9480966001958692831b168160195416925b6130a3575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd919050806040810161299a565b81811683811161310b578d90848110156130ef57505080612e256130c69261272f565b9890985b8810156130ea576130db90896139fb565b6130e48861339c565b8661304f565b613054565b8652601b85528520549098906131069087166131c1565b6130ca565b50613054565b949150506131459194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613224565b51908152a1565b61217d906131bb61ffff91613164836019541661272f565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b82541617905560195416176019556131c1565b90613347565b60ff601354166003811015612039576001036131f2576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d1657565b61322d906137ed565b61ffff9081601954169161324183836139fb565b8061324b84613210565b1661ffff19601954161760195561326183613812565b808216809314613342579161fffe91600091808352601b9060209382855260018060a01b03926040926132a161329b8686862054166131c1565b87613347565b82528086526132b48484842054166131c1565b9585986001988997881b168160195416995b6132d8575b5050505050505050505050565b8181168a811161333c578a811015613321575080612e256132f89261272f565b9a909a5b89101561331c5761330d908b6139fb565b6133168a61339c565b876132c6565b6132cb565b859b919b528383526133378787872054166131c1565b6132fc565b506132cb565b505050565b9190915b60018061ffff831611156133965781617fff911c1690836133816000848152601b602052604060018060a01b03912054166131c1565b10156133965761339190826139fb565b61334b565b50509050565b60011b906201fffe61fffe831692168203611d1657565b91909161ffff92838216600052601b6020526133f660018060a01b036133df81604060002054166131c1565b958316600052601b602052604060002054166131c1565b908185106134045750509190565b9350919050565b61217d9061347a61ffff91613423836016541661272f565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b82541617905560165416176016556131c1565b906136fb565b61ffff80601654169081156135c9579060019061349f81831115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161353991908a61352a83613210565b16906016541617601655613854565b84825280865261354d8484842054166131c1565b95859860028160165416995b61356a575050505050505050505050565b8181168a811161333c578a8110156135ae575080612b4e61358a9261272f565b9a909a5b89111561331c5761359f908b61396c565b6135a88a61339c565b87613559565b859b919b528383526135c48787872054166131c1565b61358e565b6040516340d9b01160e01b8152600490fd5b6135e4906137b6565b9061ffff908160165416906135f9828561396c565b8261360383613210565b1661ffff19601654161760165561361982613854565b8284168092146136f55760009291929183835260189260209484865260018060a01b03916040916136576136518585852054166131c1565b8a6136fb565b815285875261366a8383832054166131c1565b956136748961339c565b978560165416985b8681168a81116136e7578a8110156136cc575080612b4e61369c9261272f565b9a909a5b8911156136bf576136b1908b61396c565b6136ba8a61339c565b61367c565b5050505050505092505050565b849b919b528282526136e28686862054166131c1565b6136a0565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133965781617fff911c16908361373560008481526018602052604060018060a01b03912054166131c1565b111561339657613745908261396c565b6136ff565b919061ffff808416600052601860205261378b60018060a01b0361377481604060002054166131c1565b9284166000526018602052604060002054166131c1565b93848211156134045750509190565b61ffff60165416156135c957565b61ffff60195416156135c957565b6001600160a01b031660009081526017602052604090205461ffff169081156137db57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137db57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561389d57565b634e487b7160e01b600052600160045260246000fd5b6138d661ffff8060195416926138cc8460011115613896565b1691821115613896565b601b60208181527f9fafca4c9c0d5c2cbf85f49fd8ab8212430ce78c2a0cb75b51e0f9c4f9ace00380546000858152604080822080546001600160a01b03948516808552601a8852838520805461ffff19908116909b1790559416808452918320805490981660019081179098559590945284546001600160a01b03199081169092179094559390925281549092169091179055565b61398761ffff8080601654169316936138cc84861115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a1661ffff8080601954169316936138cc84861115613896565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578136038313611b6457565b908060209392818452848401376000828201840152601f01601f1916010190565b613b05613afa613aec8380611d2c565b604085526040850190611d88565b916020810190611d2c565b91602081830391015281359160ff8316809303611b6457613b32604091613b429484526020810190613a8a565b9190928160208201520191613abb565b90565b6020808252613b548380611d2c565b6060918281850152613b6b60809283860190611d88565b613b82604096838101358888015287810190611d54565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bbd57505050505050505050505090565b909192939495969798999a82828203018752613bd98c85611d2c565b90813560de1983360301811215611b64578782528201918a90888e6001600160401b03613c50613c40613c2d613c24613c128b80611d2c565b60e080988c01526101208b0190613adc565b978a018a611d2c565b96603f1997888a830301868b0152613adc565b928d8901358d8901528801611d40565b169060a091828701528a8701359263ffffffff60e01b8416809403611b64578f95613c87613c979460c096878b01528a018a613a8a565b9290918985030190890152613abb565b940135610100840152013590811515809203611b64578a01529a8801999897966001019587019493929190613ba8565b814710613d29576000918291829182916001600160a01b03165af13d15613d24573d613cf281611b12565b90613d006040519283611af1565b8152600060203d92013e5b15613d1257565b604051630a12f52160e11b8152600490fd5b613d0b565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d575750505050565b613d6081611ebd565b90546003916001600160a01b039190831b1c811685821614613d86575050600101613d4a565b929350939060001991828101908111613e135790613db784613daa613dd694611ebd565b905490891b1c1691611ebd565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613dfe570192613de984611ebd565b81939154921b1b1916905555388080806120b6565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104e7576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613ebe8151809281855285808601910161211f565b601f01601f1916010190565b9190811015611ef45760051b81013590601e1981360301821215611b645701908135916001600160401b038311611b64576020018236038113611b64579190565b9190811015611ef45760051b0190565b600154811015611ef4576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613fb257505050505050505090565b909192939495856003613ff1839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01612089565b9a019401940192969594939190613fa0565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104e7576140448161403e845461204f565b84612142565b6000601f821160011461407d57819293946000926140725750508160011b916000199060031b1c1916179055565b0135905038806121d6565b601f198216948382526020918281209281905b8882106140c8575050836001959697106140ae57505050811b019055565b0135600019600384901b60f8161c19169055388080612227565b80600184968294958701358155019501920190614090565b906140ed60418214613896565b80600111611b64576141089136916000190190600101611b2d565b80516020909101206001600160a01b031690565b60ff60125460101c1661412b57565b60405163248c8efb60e11b8152600490fd5b906141529061414c8184614330565b8261279c565b60ff60125460081c16156141635750565b60018054600082815b8381106142e0575b50501561418057505050565b6001600160a01b0383166000908152601560205260409020828101546141d6949091600301604051926141b284611ad6565b83526020936141dd8585019260018060a01b03809516845260405198898092612089565b0388611af1565b60408401968752600160401b8110156104e75780866141fe92018755613f1b565b9290926107e6576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104e757614245836124b2875461204f565b81601f841160011461427e5750928293918392600094614273575b50501b916000199060031b1c1916179055565b015192503880614260565b919083601f1981168760005284600020946000905b888383106142c657505050106142ad57505050811b019055565b015160001960f88460031b161c19169055388080612227565b858701518855909601959485019487935090810190614293565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146143265701839061416c565b5090508238614174565b60018060a01b031660005260156020526143536002604060002001918254611d09565b9055565b9190604051928160208501526020845261437084611aa8565b6001600160401b03601c5416936040519461438a86611ad6565b60008652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516143be8161202f565b6143c78161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576143ff816143f6600185015461204f565b60018501612142565b6020601f82116001146144d1576144b8949282600080516020614fec83398151915297959360029361217d9c9d6000926144c6575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361447d82612267565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a1614330565b015190503880614434565b6001830160005260206000209960005b601f198416811061454457509260018361217d9b9c6002946144b89997600080516020614fec8339815191529b9997601f1981161061452b575b505050811b01600182015561444c565b015160001960f88460031b161c1916905538808061451b565b828201518c556001909b019a602092830192016144e1565b60ff6013541660038110156120395761082057565b601454600a54811015614582575b50565b61ffff601654166001600160401b03600c5416111561459e5750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806145db81613f56565b0390a160018060a01b03600e5416906145f76002548092611d09565b91803b15611b645760246000926040519485938492637903ab2760e11b845260048401525af18015614631571561457f5761217d90611ac3565b6040513d6000823e3d90fd5b61464561455c565b80156146ac573360009081526015602052604090206002015480156119c95781101561469b5760ff60125460081c16156146835761217d9033614711565b8061469161217d92336146be565b610e398133612842565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146ff576146eb916127ec565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472a84611aa8565b6001600160401b03601c5416936040519461474486611ad6565b60018652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516147788161202f565b6147818161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576147b0816143f6600185015461204f565b6020601f821160011461488257614869949282600080516020614fec83398151915297959360029361217d9c9d600092614877575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482e82612267565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a16146be565b0151905038806147e5565b6001830160005260206000209960005b601f19841681106148f557509260018361217d9b9c6002946148699997600080516020614fec8339815191529b9997601f198116106148dc575b505050811b0160018201556147fd565b015160001960f88460031b161c191690553880806148cc565b828201518c556001909b019a60209283019201614892565b60ff60125460081c166149fa575b3360009081526015602052604090206002015480156119c95761493d33614a07565b5060009033825260246020528160408120614958815461204f565b806149bd575b50505060ff60125460081c161561497a5761217d915033614711565b604061217d92338152600360205220548061499b575b5061469181336146be565b806149ab6149b7926002546127ec565b600255610e3933613d41565b38614990565b82601f82116001146149d5575050555b81388061495e565b90918082526149f3601f60208420940160051c840160018501611e92565b55556149cd565b614a0261455c565b61491b565b6000818152602660205260408120549091908015614aec5760001990808201818111614ad85760255490838201918211614ac457808203614a90575b5050506025548015614a7c57810190614a5b82611f0a565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aae614a9f611f7a93611f0a565b90549060031b1c928392611f0a565b9055845260266020526040842055388080614a43565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611ef45760209160051b010190565b9190918215613342576040908151906020938483018381106001600160401b038211176104e75784526000928390526002811015614c9c5780614bfd5750600b54614b4f916127ec565b8152602283528181208251808286829454938481520190855286852092855b88828210614be757505050614b8592500382611af1565b928351948515614bdf57858110614bdf5785900493825b868110614bac5750505050505050565b6001906001600160a01b03614bc18285614af1565b5116855260218452858520614bd7888254611d09565b905501614b9c565b505050505050565b8554845260019586019587955093019201614b6e565b846001859214600014614c4d57606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cbd83611b99565b93604094614ccd86519182611af1565b848152601f19614cdc86611b99565b0194602095368784013760005b818110614db357505060009461ffff8060165416600192839182945b614d62575b505050505060ff600e5460a01c1694858102958187041490151715611d16576064614d36950491614e2a565b9015614d40575050565b60068110156120395760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614dab5760009081526018855220548493929186918591614da191614d9b906001600160a01b03166131c1565b90611d09565b9b01169493614d05565b505098614d0a565b6001600160a01b0380614dc68387614af1565b51166000526017885261ffff89600020541615614e065790614df5600192614dee8388614af1565b51166131c1565b614dff8286614af1565b5201614ce9565b8890614e1460249387614af1565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f125782518514801590614f07575b614efa579392919085945b848610614e72575050505050501015614e6a57600090600590565b600190600090565b909192939495614e8c614e858884614af1565b5184614f1f565b50614e968161202f565b614ee9576001600160a01b0380614ead8a88614af1565b5116911603614ed957614ecd600191614ec68988614af1565b5190611d09565b96019493929190614e4f565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e44565b5050505050905090600290565b8151919060418303614f5057614f4992506020820151906060604084015193015160001a90614f5b565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fdf57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fd35780516001600160a01b03811615614fca57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122078a0ac48511a213e0eba4669384b0aa5256d166c6201d23a213b1f403cf446a764736f6c63430008130033","sourceMap":"1637:19376:85:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":315,"length":20}]}}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe60146119e15750806310fd426114611870578063268119361461165d5780632e17de78146116305780633a4b66f1146115545780633f4ba83a146114dc57806341c0e1b51461144b5780634c860af6146113f75780634e71d92d146112635780635c975abb146112335780636170b16214610e8357806366783c9b14610da25780638456cb5914610d3a578063b9ee2bb91461093b578063cc2dc2b9146108bb578063d66d9e1914610870578063da5d09ee146101a55763ed7c4da1146100e757600080fd5b346101a257806003193601126101a25760008051602061502c83398151915260018154146101905780600183925561011d611cde565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b1561018c5782602491604051928380926382985e0b60e01b82523360048301525af490811561018157839161016a575b50505580f35b61017390611ac3565b61017e578138610164565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101a25760603660031901126101a2576004356001600160401b03811161086c576101d6903690600401611b69565b906024356001600160401b038111610868576101f6903690600401611b69565b916044356001600160401b03811161086457610216903690600401611b69565b909461022061411c565b610228611c99565b60ff601354166003811015610850576001036108205781810361080e5784810361080e5760125460081c60ff161561050f57865b81811061026d575050505050505080f35b61028161027b828888613eca565b906140e0565b6001600160a01b0361029c610297848689613f0b565b611ea9565b166001600160a01b03909116036104fd576103066102be610297838588613f0b565b6102c9838989613eca565b6102d785888d969496613f0b565b356102f2604051958693604060208601526060850191613abb565b90604083015203601f198101845283611af1565b6001600160401b03601c541660405161031e81611ad6565b600381526020810184815260018060a01b038416604083015282600052601d60205260406000209082516103518161202f565b61035a8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761039282610389600186015461204f565b60018601612142565b602090601f8311600114610460579282600080516020614fec83398151915297959360029360019b9a9896600092610455575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361040b82612267565b166001600160401b0319601c541617601c5561044660405193849360038552888060a01b031660208501526080806040860152840190613ea5565b9060608301520390a10161025c565b0151905038806103c5565b906001840160005260206000209160005b601f19851681106104cf57508360029360019b9a9896938c93600080516020614fec8339815191529b9997601f198116106104b6575b505050811b01898201556103db565b015160001960f88460031b161c191690553880806104a7565b91926020600181928685015181550194019201610471565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9491939290865b8681106105e6575050505050506001600160401b03600c541610156105d45761010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c95936040518061057281613f56565b0390a1600e5460025482916001600160a01b0316803b1561018c578290602460405180948193637903ab2760e11b83528160048401525af180156105c9576105b957505080f35b6105c290611ac3565b6101a25780f35b6040513d84823e3d90fd5b60405163031480b160e51b8152600490fd5b6105f461027b828786613eca565b6001600160a01b039190828061060e610297858d8d613f0b565b169116036104fd5761062c610627610297838b8b613f0b565b6131c1565b6107fc576106c391610656610645610297848c8c613f0b565b610650848a89613eca565b91614003565b610679610667610297848c8c613f0b565b61067284878a613f0b565b3590612758565b610687610297838b8b613f0b565b90610693838689613f0b565b35906106a0848a89613eca565b9590604051936106af85611ad6565b845260209683888601961686523691611b2d565b9260408301938452600154600160401b8110156104e7578060016106ea9201600155613f1b565b9290926107e657600293518355600183019151166001600160601b0360a01b825416179055019051928351906001600160401b0382116104e75761073882610732855461204f565b85612142565b80601f83116001146107775750819060019560009261076c575b5050600019600383901b1c191690841b1790555b01610516565b015190503880610752565b91929394601f1984168560005283600020936000905b8282106107ce575050916001969594929183889593106107b5575b505050811b019055610766565b015160001960f88460031b161c191690553880806107a8565b8060018697829497870151815501960194019061078d565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b61084c61082b613e28565b60405163015538b160e01b8152602060048201529182916024830190613ea5565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101a257806003193601126101a25760008051602061502c8339815191526001815414610190578060018392556108a7611cde565b6108af61411c565b6108b761490d565b5580f35b50346101a25760603660031901126101a2576001600160401b036004358181116109375736602382011215610937576108fe903690602481600401359101611bc4565b60443591821161093757366023830112156109375761092a610934923690602481600401359101611c1a565b9060243590614cb0565b80f35b8280fd5b50346101a25760031960603682011261086c576001600160401b036004351161086c576080600435600401916004353603011261086c576024356001600160401b03811161093757610991903690600401611b69565b91906044356001600160401b038111610d36576109b2903690600401611b69565b916109bb611cde565b60055494600b54956109cd8782611d09565b60246004350135141580610d26575b610d145760405190610a1460208301836109f68a83611df8565b0393610a0a601f1995868101835282611af1565b5190209882611d09565b6004356024013503610c1157505091610a37610a3f92610a459697943691611bc4565b933691611c1a565b91614cb0565b6024600435013582528160205260408220908035604219600435360301811215610868576004350191600483016001600160401b03610a8382611e49565b16936001600160401b03199485845416178355610aa96001926024848601930190611e5d565b91906001600160401b038311610bfd57600160401b8311610bfd578154838355808410610be2575b509087959493929190865260208620865b838110610bbb575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610b1e86611e49565b16908254161790556024600435013582526022602052610b42604083203390611faa565b5060043560240135600555600e546001600160a01b0316803b15610937576040516347dc9b4f60e01b81529183918391829084908290610b859060048301611df8565b03925af180156105c957610ba7575b5050610ba261093491611e49565b61227f565b610bb090611ac3565b61086c578138610b94565b84959697506020610bcf8495969394611ea9565b848301558a989796959401929101610ae2565b82895260208920610bf7918101908501611e92565b38610ad1565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610c2957505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610cf3575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610cc8915082611af1565b51902014610cd35780f35b6024600435013581526022602052610cef604082203390611faa565b5080f35b82546001600160a01b03168552889550602090940193918101918101610c87565b60405163fae4eadb60e01b8152600490fd5b50806024600435013514156109dc565b8480fd5b50346101a257806003193601126101a257610d53611c99565b610d5b611cde565b60008051602061500c833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101a25760203660031901126101a25760043560008051602061502c833981519152600181541461019057600181558115610e715760ff60125460081c16610e5f57338352600360205281604084205410610e4d576108b78392338452600360205260408420610e158282546127ec565b9055610e23816002546127ec565b6002553384526003602052604084205415610e3f575b33613cc7565b610e4833613d41565b610e39565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101a2576004356001600160401b03811161086c573660238201121561086c576001600160401b0381600401351161086c5736602482600401358301011161086c57600160008051602061502c833981519152541461019057600160008051602061502c83398151915255610eff611cde565b610f0761411c565b60ff60125460081c1680611226575b3415611214573360009081526015602052604090206002015461119f57604182600401350361118d57336001600160a01b03610f596004850135602486016140e0565b16036104fd57610f9c57806024610f769260040135910133614003565b610f80343361413d565b610f88614571565b8060008051602061502c8339815191525580f35b610fae36826004013560248401611b2d565b6001600160401b03601c54169060405190610fc882611ad6565b600282526020820190815233604083015282600052601d6020526040600020908251610ff38161202f565b610ffc8161202f565b60ff80198454169116178255518051906001600160401b0382116104e75761102b82610389600186015461204f565b602090601f8311600114611105579282600080516020614fec8339815191529795936002936110e298966000926110fa575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036110a682612267565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613abb565b9060608301520390a16110f53433614357565b610f88565b01519050388061105d565b906001840160005260206000209160005b601f19851681106111755750836002936110e2989693600193600080516020614fec8339815191529b9997601f1981161061115c575b505050811b016001820155611075565b015160001960f88460031b161c1916905538808061114c565b91926020600181928685015181550194019201611116565b6040516318dca5e960e21b8152600490fd5b61084c6040516111ae81611ad6565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b604051635a78c58160e11b8152600490fd5b61122e61455c565b610f16565b50346101a257806003193601126101a257602060ff60008051602061500c83398151915254166040519015158152f35b50346101a257806003193601126101a25760019060008051602061502c8339815191528281541461019057828155611299611cde565b336000908152601f602052604090209283549061ffff908183169283156113e557829060101c16918391808795818a01915b61135f575b50505086611341937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611348575b6113298133613cc7565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561131f565b9091939483811696828810156113dc578760005260208091858252604060002060405161138b81611aa8565b898254928383520154938491015243106113d157859493889688946113b286958a95611d09565b9c600052526000826040822082815501550116966000190116946112cb565b9850505094936112d0565b965094936112d0565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101a257604435600281101561086c57611418611cde565b600e546001600160a01b031633036114395761093490602435600435614b05565b60405163e7e601db60e01b8152600490fd5b50346101a257806003193601126101a25761146461411c565b61ffff61147a8160195416826016541690612742565b166114ca576012805462ff0000191662010000179055600e5481906001600160a01b0316803b1561017e578180916004604051809481936341c0e1b560e01b83525af180156105c9576105b95750f35b604051636b62255160e11b8152600490fd5b50346101a257806003193601126101a2576114f5611c99565b60008051602061500c833981519152805460ff8116156115425760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101a257611568611cde565b61157061411c565b61157861455c565b34156112145733600090815260156020526040902060020154156115bf5760125460081c60ff166115b5576115ad343361413d565b610934614571565b6109343433614357565b61084c6040516115ce81611ad6565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613ea5565b50346101a25760203660031901126101a25761164a611cde565b61165261411c565b61093460043561463d565b50346101a25760031960603682011261086c576004356001600160401b03918282116108685760608260040191833603011261086857602435838111610d36576116ab903690600401611b69565b919060443585811161186c576116c5903690600401611b69565b916024860135966006549687891061182157604401906116e58287611e5d565b9190506009541680911161185a576116fd8287611e5d565b9050141580611833575b611821576117159085611e5d565b90501561180f5787946040516020810190611742816117348985613b45565b03601f198101835282611af1565b519020968803611773575050505050506007541461175e575080f35b81526023602052610cef604082203390611faa565b61178d9392610a3788969893610a3f939a989a3691611bc4565b80602060405161179c81611aa8565b848152015281600655600755825260236020526117bd604083203390611faa565b50600e546001600160a01b031690813b1561018c5782916117f491604051948580948193630bed761560e01b835260048301613b45565b03925af180156105c957611806575080f35b61093490611ac3565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156118465788061515611707565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101a257602090816003193601126101a2576001600160401b03916004358381116109375736602382011215610937576118b6903690602481600401359101611b2d565b926118bf611cde565b3383526017825261ffff604084205416156119c9578351156119b75733835260248252604083209184519182116119a3576118fe82610732855461204f565b80601f831160011461193f5750839482939492611934575b50508160011b916000199060031b1c19161790555b610cef33611f41565b015190503880611916565b90601f198316958486528286209286905b88821061198b57505083600195969710611972575b505050811b01905561192b565b015160001960f88460031b161c19169055388080611965565b80600185968294968601518155019501930190611950565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b90508160031936011261086c573415611a99575060ff60125460081c16610e5f573381526003602052604081205415611a40575b338152600360205260408120611a2c348254611d09565b9055611a3a34600254611d09565b60025580f35b600454600160401b811015611a8557611a62816001611a809301600455611ebd565b81546001600160a01b0360039290921b91821b19163390911b179055565b611a15565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757604052565b606081019081106001600160401b038211176104e757604052565b90601f801991011681019081106001600160401b038211176104e757604052565b6001600160401b0381116104e757601f01601f191660200190565b929192611b3982611b12565b91611b476040519384611af1565b829481845281830111611b64578281602093846000960137010152565b600080fd5b9181601f84011215611b64578235916001600160401b038311611b64576020808501948460051b010111611b6457565b6001600160401b0381116104e75760051b60200190565b35906001600160a01b0382168203611b6457565b9291611bcf82611b99565b91611bdd6040519384611af1565b829481845260208094019160051b8101928311611b6457905b828210611c035750505050565b838091611c0f84611bb0565b815201910190611bf6565b92919092611c2784611b99565b91611c356040519384611af1565b829480845260208094019060051b830192828411611b645780915b848310611c5f57505050505050565b82356001600160401b038111611b6457820184601f82011215611b64578691611c8e8683858095359101611b2d565b815201920191611c50565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611ccc57565b6040516330cd747160e01b8152600490fd5b60ff60008051602061500c8339815191525416611cf757565b60405163d93c066560e01b8152600490fd5b91908201809211611d1657565b634e487b7160e01b600052601160045260246000fd5b9035603e1982360301811215611b64570190565b35906001600160401b0382168203611b6457565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578160051b36038313611b6457565b60408201916001600160401b03611d9e83611d40565b1681526060611db260209384810190611d54565b839195604086839601525201929160005b828110611dd1575050505090565b909192938280600192838060a01b03611de989611bb0565b16815201950193929101611dc3565b6020815260806001600160401b03611e426060611e28611e188780611d2c565b85602088015260a0870190611d88565b956020810135604087015260408101358287015201611d40565b1691015290565b356001600160401b0381168103611b645790565b903590601e1981360301821215611b6457018035906001600160401b038211611b6457602001918160051b36038313611b6457565b818110611e9d575050565b60008155600101611e92565b356001600160a01b0381168103611b645790565b600454811015611ef45760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b602554811015611ef45760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b600081815260266020526040812054611fa557602554600160401b811015611a85579082611f91611f7a84600160409601602555611f0a565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461202957845494600160401b861015612015576001860180825586101561200157836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561203957565b634e487b7160e01b600052602160045260246000fd5b90600182811c9216801561207f575b602083101461206957565b634e487b7160e01b600052602260045260246000fd5b91607f169161205e565b906000929180549161209a8361204f565b9182825260019384811690816000146120fc57506001146120bc575b50505050565b90919394506000526020928360002092846000945b8386106120e85750505050010190388080806120b6565b8054858701830152940193859082016120d1565b9294505050602093945060ff191683830152151560051b010190388080806120b6565b60005b8381106121325750506000910152565b8181015183820152602001612122565b9190601f811161215157505050565b61217d926000526020600020906020601f840160051c8301931061217f575b601f0160051c0190611e92565b565b9091508190612170565b908082146122635761219b815461204f565b906001600160401b0382116104e75781906121c0826121ba865461204f565b86612142565b600090601f83116001146121f7576000926121ec575b50508160011b916000199060031b1c1916179055565b0154905038806121d6565b81526020808220858352818320935090601f1985169083905b82821061224a575050908460019594939210612231575b505050811b019055565b015460001960f88460031b161c19169055388080612227565b8495819295850154815560018091019601940190612210565b5050565b9060016001600160401b0380931601918211611d1657565b601c546001600160401b03828116929080831684106122aa5760405163040aaa0560e11b8152600490fd5b808360401c1684106120b65780604093841c165b848282161115612325575050916020916122f87f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612267565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612343826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff166123688161202f565b8085036123da5750506003612399600161239f94959697019260018060a01b03166000526015602052604060002090565b01612189565b6123bc816001600160401b0316600052601d602052604060002090565b916000908184556001936123d18582016127f9565b015501166122be565b909194506123e78161202f565b60039181830361258557505087519361240f85612408816001809a01612089565b0386611af1565b84518501916020928a87858301920312611b645783870151898111611b645787019681603f89011215611b645787858d9901519261245861244f85611b12565b9a519a8b611af1565b838a528d8483010111611b64578c926124769184888c01910161211f565b015192816124968460018060a01b03166000526015602052604060002090565b01918751918a8311612570578a986124b8846124b2875461204f565b87612142565b81601f85116001146124fd57506124ed9798999a84939284926000956124f2575b50501b92600019911b1c1916179055612758565b61239f565b0151935038806124d9565b91601f9b9493919b1984169b866000528c84600020946000915b8210612555575050846124ed9a9b9c9d1061253b575b50505050811b019055612758565b01519060f884600019921b161c191690553880808061252d565b8383015186558f9d509487019492830192908101908e612517565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936125a185612408816001809501612089565b60208086805181010312611b645781818c970151956125bf8161202f565b036126e45784906125d08285612842565b601e546125dd9043611d09565b928751906125ea82611aa8565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061262d91612742565b169c60009d8e5282870188528d20925183555191015561264c9061272f565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b15610937578291602483928a5195869384926345f5448560e01b845260048401525af19081156126d9575090849392916126ca575b5061239f565b6126d390611ac3565b386126c4565b8751903d90823e3d90fd5b5050829350916126f4919261279c565b600e541690813b15611b64578651916316989f6f60e21b83528260048160009485945af19081156126d9575090849392916126ca575061239f565b90600161ffff80931601918211611d1657565b91909161ffff80809416911601918211611d1657565b9060018060a01b03821660005260156020526040600020818154915581811460001461278357505050565b8111156127935761217d916128d1565b61217d91612c17565b9061217d916127e460018060a01b038216928360005260156020526127c981600160406000200154611d09565b93600052601560205283600160406000200155601454611d09565b6014556128d1565b91908203918211611d1657565b612803815461204f565b908161280d575050565b81601f6000931160011461281f575055565b90808391825261283e601f60208420940160051c840160018501611e92565b5555565b906128af6128b79260018060a01b038116906000828152601560205261286f8560016040842001546127ec565b92815260156020526040812060028101848154811590816128c8575b50156128bc575090826003926128aa94835581600184015555016127f9565b612c17565b6014546127ec565b601455565b92505060010155612c17565b9050153861288b565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612b02578360135460081c16846016541610612ace5761291661379a565b60019283825260188652828a8320541688612930826131c1565b10612a4857508152601a855283898220541661299f57505050505061299a7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461297a8361314c565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6129a8866137ed565b926129b2876131c1565b935b8186821611612a0a575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd90806040810161299a565b8085612a2986617fff8f95871c1694858852601b8c52872054166131c1565b1015612a425790612a3b8392826139fb565b90506129b4565b506129be565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759899925061299a95601a91612a83613480565b835252205416612ac0575b612a978461340b565b612aa08361314c565b516001600160a01b03928316815292909116602083015281906040820190565b612ac984613224565b612a8e565b505050505061299a7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b97929150612b1385949796956137b6565b97612b1d856131c1565b97612b278a61339c565b8460165416905b858116828111612be05782811015612bc4575080612b4e612b549261272f565b9061374a565b9b909b5b8b1115612b7757612b69908c61396c565b612b728b61339c565b612b2e565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979150806040810161299a565b849c919c5260188352612bdb8588862054166131c1565b612b58565b5050505050505061299a91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197945061297a565b9060018060a01b039283831691600093838552602094601a865261ffff96604095888784205416613016578083526017885288878420541615613005578415612e9f5750612c64836137b6565b97612c6e846131c1565b985b6001808383161115612e905781617fff911c169081855260188a528a612c9a858b882054166131c1565b1115612caf57612caa908261396c565b612c70565b505091939597509193955b816019541615612e8657612ccc61379a565b6001918285526018825283898620541693612ce6856131c1565b95612cef6137a8565b848152601b808552828c8320541697612d07896131c1565b11612d5a57505098516001600160a01b0390961686525050505060208201929092529192507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197919050806040810161299a565b91939597509193959750612d6c613480565b83601954168015612e755780612d87612da3929896986138b3565b87612d9182613210565b1661ffff196019541617601955613812565b838252808552612db7838b842054166131c1565b9484809760028160195416925b612e02575b5050505050505050505061299a7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d759394612a978461340b565b818116838111612e6f578e9080851115612e5457505080612e25612e2b9261272f565b906133b3565b9990995b891015612e4f57612e40908a6139fb565b612e498961339c565b87612dc4565b612dc9565b8752858552862054909990612e6a9088166131c1565b612e2f565b50612dc9565b8a516340d9b01160e01b8152600490fd5b5050505050509050565b50509193959750919395612cba565b7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b929450612ed388949996989297996135db565b8851908152a18260195416928315948515612ef2575050505050509050565b612efa6137a8565b600193848152601b808552828a8320541696612f15886131c1565b98612e755780612d87612f2a929896986138b3565b838252808552612f3e838b842054166131c1565b9484809760028160195416925b612f98575b50505050505050505050612f897f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461297a8361340b565b0390a180388080808080612e86565b818116838111612fff578e9080851115612fe457505080612e25612fbb9261272f565b9990995b891015612fdf57612fd0908a6139fb565b612fd98961339c565b87612f4b565b612f50565b8752858552862054909990612ffa9088166131c1565b612fbf565b50612f50565b8651632a55ca5360e01b8152600490fd5b84969892949793959715613111575061fffe9193613033866137ed565b9361303d876131c1565b9480966001958692831b168160195416925b6130a3575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd919050806040810161299a565b81811683811161310b578d90848110156130ef57505080612e256130c69261272f565b9890985b8810156130ea576130db90896139fb565b6130e48861339c565b8661304f565b613054565b8652601b85528520549098906131069087166131c1565b6130ca565b50613054565b949150506131459194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b95969250613224565b51908152a1565b61217d906131bb61ffff91613164836019541661272f565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b82541617905560195416176019556131c1565b90613347565b60ff601354166003811015612039576001036131f2576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611d1657565b61322d906137ed565b61ffff9081601954169161324183836139fb565b8061324b84613210565b1661ffff19601954161760195561326183613812565b808216809314613342579161fffe91600091808352601b9060209382855260018060a01b03926040926132a161329b8686862054166131c1565b87613347565b82528086526132b48484842054166131c1565b9585986001988997881b168160195416995b6132d8575b5050505050505050505050565b8181168a811161333c578a811015613321575080612e256132f89261272f565b9a909a5b89101561331c5761330d908b6139fb565b6133168a61339c565b876132c6565b6132cb565b859b919b528383526133378787872054166131c1565b6132fc565b506132cb565b505050565b9190915b60018061ffff831611156133965781617fff911c1690836133816000848152601b602052604060018060a01b03912054166131c1565b10156133965761339190826139fb565b61334b565b50509050565b60011b906201fffe61fffe831692168203611d1657565b91909161ffff92838216600052601b6020526133f660018060a01b036133df81604060002054166131c1565b958316600052601b602052604060002054166131c1565b908185106134045750509190565b9350919050565b61217d9061347a61ffff91613423836016541661272f565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b82541617905560165416176016556131c1565b906136fb565b61ffff80601654169081156135c9579060019061349f81831115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161353991908a61352a83613210565b16906016541617601655613854565b84825280865261354d8484842054166131c1565b95859860028160165416995b61356a575050505050505050505050565b8181168a811161333c578a8110156135ae575080612b4e61358a9261272f565b9a909a5b89111561331c5761359f908b61396c565b6135a88a61339c565b87613559565b859b919b528383526135c48787872054166131c1565b61358e565b6040516340d9b01160e01b8152600490fd5b6135e4906137b6565b9061ffff908160165416906135f9828561396c565b8261360383613210565b1661ffff19601654161760165561361982613854565b8284168092146136f55760009291929183835260189260209484865260018060a01b03916040916136576136518585852054166131c1565b8a6136fb565b815285875261366a8383832054166131c1565b956136748961339c565b978560165416985b8681168a81116136e7578a8110156136cc575080612b4e61369c9261272f565b9a909a5b8911156136bf576136b1908b61396c565b6136ba8a61339c565b61367c565b5050505050505092505050565b849b919b528282526136e28686862054166131c1565b6136a0565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156133965781617fff911c16908361373560008481526018602052604060018060a01b03912054166131c1565b111561339657613745908261396c565b6136ff565b919061ffff808416600052601860205261378b60018060a01b0361377481604060002054166131c1565b9284166000526018602052604060002054166131c1565b93848211156134045750509190565b61ffff60165416156135c957565b61ffff60195416156135c957565b6001600160a01b031660009081526017602052604090205461ffff169081156137db57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff169081156137db57565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561389d57565b634e487b7160e01b600052600160045260246000fd5b6138d661ffff8060195416926138cc8460011115613896565b1691821115613896565b601b60208181527f9fafca4c9c0d5c2cbf85f49fd8ab8212430ce78c2a0cb75b51e0f9c4f9ace00380546000858152604080822080546001600160a01b03948516808552601a8852838520805461ffff19908116909b1790559416808452918320805490981660019081179098559590945284546001600160a01b03199081169092179094559390925281549092169091179055565b61398761ffff8080601654169316936138cc84861115613896565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a1661ffff8080601954169316936138cc84861115613896565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e1982360301811215611b645701602081359101916001600160401b038211611b64578136038313611b6457565b908060209392818452848401376000828201840152601f01601f1916010190565b613b05613afa613aec8380611d2c565b604085526040850190611d88565b916020810190611d2c565b91602081830391015281359160ff8316809303611b6457613b32604091613b429484526020810190613a8a565b9190928160208201520191613abb565b90565b6020808252613b548380611d2c565b6060918281850152613b6b60809283860190611d88565b613b82604096838101358888015287810190611d54565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bbd57505050505050505050505090565b909192939495969798999a82828203018752613bd98c85611d2c565b90813560de1983360301811215611b64578782528201918a90888e6001600160401b03613c50613c40613c2d613c24613c128b80611d2c565b60e080988c01526101208b0190613adc565b978a018a611d2c565b96603f1997888a830301868b0152613adc565b928d8901358d8901528801611d40565b169060a091828701528a8701359263ffffffff60e01b8416809403611b64578f95613c87613c979460c096878b01528a018a613a8a565b9290918985030190890152613abb565b940135610100840152013590811515809203611b64578a01529a8801999897966001019587019493929190613ba8565b814710613d29576000918291829182916001600160a01b03165af13d15613d24573d613cf281611b12565b90613d006040519283611af1565b8152600060203d92013e5b15613d1257565b604051630a12f52160e11b8152600490fd5b613d0b565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d575750505050565b613d6081611ebd565b90546003916001600160a01b039190831b1c811685821614613d86575050600101613d4a565b929350939060001991828101908111613e135790613db784613daa613dd694611ebd565b905490891b1c1691611ebd565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613dfe570192613de984611ebd565b81939154921b1b1916905555388080806120b6565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104e7576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613ebe8151809281855285808601910161211f565b601f01601f1916010190565b9190811015611ef45760051b81013590601e1981360301821215611b645701908135916001600160401b038311611b64576020018236038113611b64579190565b9190811015611ef45760051b0190565b600154811015611ef4576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6020808201818352600190815480915260409283850194848360051b82010195846000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6956000925b858410613fb257505050505050505090565b909192939495856003613ff1839a9b603f198682030188528c5481528c8560018060a01b03910154168482015260609081888201520160028d01612089565b9a019401940192969594939190613fa0565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104e7576140448161403e845461204f565b84612142565b6000601f821160011461407d57819293946000926140725750508160011b916000199060031b1c1916179055565b0135905038806121d6565b601f198216948382526020918281209281905b8882106140c8575050836001959697106140ae57505050811b019055565b0135600019600384901b60f8161c19169055388080612227565b80600184968294958701358155019501920190614090565b906140ed60418214613896565b80600111611b64576141089136916000190190600101611b2d565b80516020909101206001600160a01b031690565b60ff60125460101c1661412b57565b60405163248c8efb60e11b8152600490fd5b906141529061414c8184614330565b8261279c565b60ff60125460081c16156141635750565b60018054600082815b8381106142e0575b50501561418057505050565b6001600160a01b0383166000908152601560205260409020828101546141d6949091600301604051926141b284611ad6565b83526020936141dd8585019260018060a01b03809516845260405198898092612089565b0388611af1565b60408401968752600160401b8110156104e75780866141fe92018755613f1b565b9290926107e6576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104e757614245836124b2875461204f565b81601f841160011461427e5750928293918392600094614273575b50501b916000199060031b1c1916179055565b015192503880614260565b919083601f1981168760005284600020946000905b888383106142c657505050106142ad57505050811b019055565b015160001960f88460031b161c19169055388080612227565b858701518855909601959485019487935090810190614293565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b038781169116146143265701839061416c565b5090508238614174565b60018060a01b031660005260156020526143536002604060002001918254611d09565b9055565b9190604051928160208501526020845261437084611aa8565b6001600160401b03601c5416936040519461438a86611ad6565b60008652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516143be8161202f565b6143c78161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576143ff816143f6600185015461204f565b60018501612142565b6020601f82116001146144d1576144b8949282600080516020614fec83398151915297959360029361217d9c9d6000926144c6575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361447d82612267565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a1614330565b015190503880614434565b6001830160005260206000209960005b601f198416811061454457509260018361217d9b9c6002946144b89997600080516020614fec8339815191529b9997601f1981161061452b575b505050811b01600182015561444c565b015160001960f88460031b161c1916905538808061451b565b828201518c556001909b019a602092830192016144e1565b60ff6013541660038110156120395761082057565b601454600a54811015614582575b50565b61ffff601654166001600160401b03600c5416111561459e5750565b61010061ff001960125416176012557f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593604051806145db81613f56565b0390a160018060a01b03600e5416906145f76002548092611d09565b91803b15611b645760246000926040519485938492637903ab2760e11b845260048401525af18015614631571561457f5761217d90611ac3565b6040513d6000823e3d90fd5b61464561455c565b80156146ac573360009081526015602052604090206002015480156119c95781101561469b5760ff60125460081c16156146835761217d9033614711565b8061469161217d92336146be565b610e398133612842565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146ff576146eb916127ec565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472a84611aa8565b6001600160401b03601c5416936040519461474486611ad6565b60018652602086019582875260018060a01b038416604082015281600052601d60205260406000209681516147788161202f565b6147818161202f565b60ff80198a54169116178855519687516001600160401b0381116104e7576147b0816143f6600185015461204f565b6020601f821160011461488257614869949282600080516020614fec83398151915297959360029361217d9c9d600092614877575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482e82612267565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613ea5565b9060608301520390a16146be565b0151905038806147e5565b6001830160005260206000209960005b601f19841681106148f557509260018361217d9b9c6002946148699997600080516020614fec8339815191529b9997601f198116106148dc575b505050811b0160018201556147fd565b015160001960f88460031b161c191690553880806148cc565b828201518c556001909b019a60209283019201614892565b60ff60125460081c166149fa575b3360009081526015602052604090206002015480156119c95761493d33614a07565b5060009033825260246020528160408120614958815461204f565b806149bd575b50505060ff60125460081c161561497a5761217d915033614711565b604061217d92338152600360205220548061499b575b5061469181336146be565b806149ab6149b7926002546127ec565b600255610e3933613d41565b38614990565b82601f82116001146149d5575050555b81388061495e565b90918082526149f3601f60208420940160051c840160018501611e92565b55556149cd565b614a0261455c565b61491b565b6000818152602660205260408120549091908015614aec5760001990808201818111614ad85760255490838201918211614ac457808203614a90575b5050506025548015614a7c57810190614a5b82611f0a565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aae614a9f611f7a93611f0a565b90549060031b1c928392611f0a565b9055845260266020526040842055388080614a43565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b8051821015611ef45760209160051b010190565b9190918215613342576040908151906020938483018381106001600160401b038211176104e75784526000928390526002811015614c9c5780614bfd5750600b54614b4f916127ec565b8152602283528181208251808286829454938481520190855286852092855b88828210614be757505050614b8592500382611af1565b928351948515614bdf57858110614bdf5785900493825b868110614bac5750505050505050565b6001906001600160a01b03614bc18285614af1565b5116855260218452858520614bd7888254611d09565b905501614b9c565b505050505050565b8554845260019586019587955093019201614b6e565b846001859214600014614c4d57606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cbd83611b99565b93604094614ccd86519182611af1565b848152601f19614cdc86611b99565b0194602095368784013760005b818110614db357505060009461ffff8060165416600192839182945b614d62575b505050505060ff600e5460a01c1694858102958187041490151715611d16576064614d36950491614e2a565b9015614d40575050565b60068110156120395760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614dab5760009081526018855220548493929186918591614da191614d9b906001600160a01b03166131c1565b90611d09565b9b01169493614d05565b505098614d0a565b6001600160a01b0380614dc68387614af1565b51166000526017885261ffff89600020541615614e065790614df5600192614dee8388614af1565b51166131c1565b614dff8286614af1565b5201614ce9565b8890614e1460249387614af1565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f125782518514801590614f07575b614efa579392919085945b848610614e72575050505050501015614e6a57600090600590565b600190600090565b909192939495614e8c614e858884614af1565b5184614f1f565b50614e968161202f565b614ee9576001600160a01b0380614ead8a88614af1565b5116911603614ed957614ecd600191614ec68988614af1565b5190611d09565b96019493929190614e4f565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e44565b5050505050905090600290565b8151919060418303614f5057614f4992506020820151906060604084015193015160001a90614f5b565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fdf57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fd35780516001600160a01b03811615614fca57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a264697066735822122078a0ac48511a213e0eba4669384b0aa5256d166c6201d23a213b1f403cf446a764736f6c63430008130033","sourceMap":"1637:19376:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:68;1637:19376:85;;582:20:68;578:50;;1637:19376:85;477:1:68;1637:19376:85;;;982:72:66;;:::i;:::-;17146:10:85;:44;;;;;1637:19376;;;;;;;;;;;;17146:44;;17179:10;1637:19376;17146:44;;1637:19376;17146:44;;;;;;;;;;;1637:19376;;;;;;17146:44;;;;:::i;:::-;1637:19376;;17146:44;;;;1637:19376;;;17146:44;1637:19376;;;;;;;;;17146:44;1637:19376;;;578:50:68;1637:19376:85;;-1:-1:-1;;;611:17:68;;1637:19376:85;;611:17:68;1637:19376:85;;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;:::i;:::-;4273:61:72;;;;:::i;:::-;10233:10:85;;:::i;:::-;1637:19376;1693:14:71;1637:19376:85;;;;;;;;1726:24:71;1693:57;1689:146;;10337:34:85;;;10333:98;;10445:38;;;10441:102;;10557:14;1637:19376;;;;;;;;6249:9:71;6260:10;;;;;;10553:229:85;;;;;;;1637:19376;;6249:9:71;6346:33;6365:13;;;;;:::i;:::-;6346:33;;:::i;:::-;-1:-1:-1;;;;;6417:13:71;;;;;;:::i;:::-;;:::i;:::-;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;;;6397:33:71;6393:100;;1243:27:70;6684:13:71;;;;;;:::i;:::-;6709;;;;;:::i;:::-;6732:9;;;;;;;;:::i;:::-;1637:19376:85;;;;1243:27:70;;;1637:19376:85;;1243:27:70;;1637:19376:85;;;;;;:::i;:::-;;;;;;1243:27:70;1637:19376:85;;1243:27:70;;;;;;:::i;:::-;-1:-1:-1;;;;;21913:11:69;1637:19376:85;;;;;;;:::i;:::-;;;;;3528:63:70;;1637:19376:85;;;;;;;;;;;3528:63:70;;1637:19376:85;;;;3489:15:70;1637:19376:85;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;1726:24:71;1637:19376:85;;;;:::i;:::-;1726:24:71;1637:19376:85;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;1726:24:71;1637:19376:85;;;;;;;;;-1:-1:-1;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;3528:63:70;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;21913:11:69;1637:19376:85;;;21913:11:69;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;1496:205:70;;;1637:19376:85;6249:9:71;;1637:19376:85;;;;-1:-1:-1;1637:19376:85;;;;;;1726:24:71;1637:19376:85;;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;;;;;1726:24:71;1637:19376:85;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;6393:100:71;1637:19376:85;;-1:-1:-1;;;6457:21:71;;1637:19376:85;;6457:21:71;10553:229:85;4447:9:71;;;;;;4458:10;;;;;;1637:19376:85;;;;;;-1:-1:-1;;;;;5341:15:71;1637:19376:85;;-1:-1:-1;5331:25:71;5327:91;;1637:19376:85;;;10557:14;1637:19376;;;10557:14;1637:19376;5464:39:71;1637:19376:85;;5464:39:71;;;;:::i;:::-;;;;5596:16;1637:19376:85;;;;;-1:-1:-1;;;;;1637:19376:85;5587:84:71;;;;;1637:19376:85;;;;;;;;;;;;5587:84:71;;;1637:19376:85;5587:84:71;;1637:19376:85;5587:84:71;;;;;;;;10553:229:85;;1637:19376;;5587:84:71;;;;:::i;:::-;1637:19376:85;;;;5587:84:71;1637:19376:85;;;;;;;;;5327:91:71;1637:19376:85;;-1:-1:-1;;;5379:28:71;;1637:19376:85;;5379:28:71;4447:9;4544:33;4563:13;;;;;:::i;4544:33::-;-1:-1:-1;;;;;1637:19376:85;;;;4615:13:71;;1637:19376:85;4615:13:71;;;:::i;:::-;1637:19376:85;;;4595:33:71;4591:100;;16026:34:69;4832:13:71;;;;;;:::i;:::-;16026:34:69;:::i;:::-;4808:112:71;;1637:19376:85;4968:13:71;4983;4968;;;;;;:::i;:::-;4983;;;;;:::i;:::-;;;:::i;:::-;19151:5:69;5051:13:71;;;;;;:::i;:::-;5066:9;;;;;:::i;:::-;1637:19376:85;19151:5:69;;:::i;:::-;5133:13:71;;;;;;:::i;:::-;5156:9;;;;;;:::i;:::-;1637:19376:85;5177:13:71;;;;;;:::i;:::-;1637:19376:85;;;;;;;;:::i;:::-;;;;5116:76:71;;;;;1637:19376:85;;;;;;;:::i;:::-;5116:76:71;1637:19376:85;5116:76:71;;1637:19376:85;;;1726:24:71;1637:19376:85;-1:-1:-1;;;1637:19376:85;;;;;;1726:24:71;1637:19376:85;;;1726:24:71;1637:19376:85;;:::i;:::-;;;;;;;;;;;1726:24:71;1637:19376:85;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;1726:24:71;1637:19376:85;;;;;;-1:-1:-1;;;;1637:19376:85;;;;;;;;;;;;;;;4447:9:71;;1637:19376:85;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4808:112:71;1637:19376:85;;-1:-1:-1;;;4877:28:71;;1637:19376:85;;4877:28:71;10441:102:85;1637:19376;;-1:-1:-1;;;10506:26:85;;1637:19376;;10506:26;1689:146:71;2502:71:45;1637:19376:85;;:::i;:::-;;;-1:-1:-1;;;1773:51:71;;1637:19376:85;;1773:51:71;;2502:71:45;1637:19376:85;;;;2502:71:45;;;;:::i;:::-;1773:51:71;;;1637:19376:85;-1:-1:-1;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:68;1637:19376:85;;582:20:68;578:50;;1637:19376:85;477:1:68;1637:19376:85;;;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;4326:1;;:::i;:::-;1637:19376:85;;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;:::i;:::-;982:72:66;;;:::i;:::-;3298:30:85;1637:19376;;3331:21;1637:19376;3298:54;;;;;:::i;:::-;1637:19376;;;3272:22;1637:19376;3272:80;;:152;;;1637:19376;3255:236;;1637:19376;;3535:22;3599:54;1637:19376;3535:22;;;;;;;:::i;:::-;;1637:19376;3535:22;1637:19376;;3535:22;;;;;;;;:::i;:::-;1637:19376;3525:33;;3599:54;;;:::i;:::-;1637:19376;;;3272:22;1637:19376;3573:80;1637:19376;;;;;;;;3753:104;1637:19376;;;;;;:::i;:::-;;;;;:::i;:::-;3753:104;;:::i;:::-;1637:19376;;;3272:22;1637:19376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;:::i;:::-;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1637:19376:85;;;;-1:-1:-1;;;1637:19376:85;;;;;;;;;;;;;;3569:2184;1637:19376;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;3272:22;;1637:19376;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;:::i;:::-;;;;;;;;;;;;3272:22;1637:19376;;;4241:35;1637:19376;;8399:50:36;1637:19376:85;;;4305:10;8399:50:36;;:::i;:::-;-1:-1:-1;1637:19376:85;;;3272:22;1637:19376;3298:30;1637:19376;4465:16;1637:19376;-1:-1:-1;;;;;1637:19376:85;4456:55;;;;;1637:19376;;-1:-1:-1;;;4456:55:85;;1637:19376;;;;;;;;;;;4456:55;;1637:19376;4456:55;;;:::i;:::-;;;;;;;;;;;1637:19376;4616:34;;;;;;:::i;:::-;;:::i;4456:55::-;;;;:::i;:::-;1637:19376;;4456:55;;;;1637:19376;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1637:19376:85;;;;;;;;3569:2184;1637:19376;;;;;;;;;;3272:22;1637:19376;4672:56;4668:1085;;3569:2184;;1637:19376;;4668:1085;1637:19376;;;3272:22;1637:19376;;;;;;;;;;;5461:58;1637:19376;5461:58;;1637:19376;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;5461:58;;;;;;;;-1:-1:-1;5461:58:85;;:::i;:::-;1637:19376;5451:69;;5538:36;5534:209;;1637:19376;;5534:209;1637:19376;;;3272:22;1637:19376;;;5653:35;1637:19376;;8399:50:36;1637:19376:85;;;5717:10;8399:50:36;;:::i;:::-;;1637:19376:85;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;3255:236;1637:19376;;-1:-1:-1;;;3456:24:85;;1637:19376;;3456:24;3272:152;1637:19376;;;;;3272:22;1637:19376;3368:56;;3272:152;;1637:19376;;;;;;;;;;;;;;;;;2234:10;;:::i;:::-;982:72:66;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1883:4:66;1637:19376:85;;;;;;;;1902:20:66;1637:19376:85;;;1911:10:66;1637:19376:85;;1902:20:66;1637:19376:85;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;582:20:68;578:50;;1637:19376:85;;;9203:11;;9199:65;;1637:19376;9278:14;1637:19376;;;;9274:79;;9384:10;1637:19376;;;;;;;;;;9367:37;9363:93;;9708:6;9384:10;;;1637:19376;;;;;;;;9466:38;1637:19376;;;9466:38;:::i;:::-;1637:19376;;9514:29;1637:19376;9514:19;1637:19376;9514:29;:::i;:::-;:19;1637:19376;9384:10;1637:19376;;;;;;;;;9558:33;9554:114;;1637:19376;9384:10;9708:6;:::i;9554:114::-;9646:10;9384;9646;:::i;:::-;9554:114;;9363:93;1637:19376;;-1:-1:-1;;;9427:18:85;;1637:19376;;9427:18;9274:79;1637:19376;;-1:-1:-1;;;9315:27:85;;1637:19376;;9315:27;9199:65;1637:19376;;-1:-1:-1;;;9237:16:85;;1637:19376;;9237:16;1637:19376;-1:-1:-1;1637:19376:85;;-1:-1:-1;;1637:19376:85;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;477:1:68;-1:-1:-1;;;;;;;;;;;1637:19376:85;582:20:68;578:50;;477:1;-1:-1:-1;;;;;;;;;;;1637:19376:85;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;1637:19376:85;11499:14;1637:19376;;;;11495:89;;;1637:19376;11597:9;:14;11593:70;;11700:10;1637:19376;;;;25176:25:69;1637:19376:85;;;;;17433:25:69;:52;1637:19376:85;11673:110;;372:2:40;1637:19376:85;;;;11797:57;11793:232;;11700:10;-1:-1:-1;;;;;12062:44:85;1637:19376;;;;;;;12062:44;:::i;:::-;1637:19376;12120:30;12116:89;;1637:19376;;;;12517:9;1637:19376;;;;;;11700:10;12517:9;:::i;:::-;12583;11597;11700:10;12583:9;:::i;:::-;12608:14;;:::i;:::-;1637:19376;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;12215:670;1637:19376;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22229:11:69;1637:19376:85;;;;;;;;;:::i;:::-;17433:25:69;1637:19376:85;;;3528:63:70;;1637:19376:85;;;11700:10;1637:19376;3528:63:70;;1637:19376:85;;;;3489:15:70;1637:19376:85;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;477:1:68;1637:19376:85;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;17433:25:69;1637:19376:85;;;;;;;;;;;;477:1:68;1637:19376:85;;;;;;;;;;;477:1:68;1637:19376:85;;;;;;;;;;;;3528:63:70;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;22229:11:69;1637:19376:85;;;22229:11:69;1637:19376:85;;;;;;17433:25:69;1637:19376:85;;11700:10;1637:19376;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;747:200:70;;;12864:9:85;11597;11700:10;12864:9;:::i;:::-;12215:670;;1637:19376;;;;-1:-1:-1;1637:19376:85;;;;;;477:1:68;1637:19376:85;;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;;;17433:25:69;1637:19376:85;;;;;477:1:68;1637:19376:85;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;477:1:68;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:68;1637:19376:85;;;;;;;;;;;;;;;11793:232;1637:19376;;-1:-1:-1;;;11990:24:85;;1637:19376;;11990:24;11673:110;2502:71:45;1637:19376:85;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;;;13582:42;;;;;;11734:38;;1637:19376;;11734:38;;2502:71:45;1637:19376:85;2502:71:45;;;;:::i;11593:70:85:-;1637:19376;;-1:-1:-1;;;11634:18:85;;1637:19376;;11634:18;11495:89;11529:14;;:::i;:::-;11495:89;;1637:19376;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;477:1:68;247:48;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;582:20:68;578:50;;1637:19376:85;;;982:72:66;;:::i;:::-;17000:10:85;1637:19376;;;;3658:13:69;1637:19376:85;;;;;;;;;;;;;;1777:16:69;;;1773:78;;1637:19376:85;;;;;1895:25:69;;1930:14;;;2019:13;;;;1954:477;477:1:68;;;1954:477:69;1637:19376:85;;;;23200:36:69;1637:19376:85;23200:36:69;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;3707:14:69;3703:76;;1954:477;3818:6;17000:10:85;;3818:6:69;:::i;:::-;1637:19376:85;;;17000:10;1637:19376;;;;;;;;;;;;;;;;;23200:36:69;;;;1637:19376:85;;;3703:76:69;17000:10:85;1637:19376;;;;3658:13:69;1637:19376:85;;;;;17000:10;;1637:19376;3703:76:69;;1954:477;1637:19376:85;;;;;;;1961:10:69;;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2204:12:69;-1:-1:-1;2180:76:69;;2270:24;;;;;;;;;;;;;:::i;:::-;1637:19376:85;;;;;;;;;;;;;;;;;;;;;1954:477:69;;;2180:76;2236:5;;;;;;;;1961:10;;;;;;;1773:78;1637:19376:85;;-1:-1:-1;;;1816:24:69;;1637:19376:85;;1816:24:69;1637:19376:85;-1:-1:-1;1637:19376:85;;-1:-1:-1;;1637:19376:85;;;;;;;;;;;;982:72:66;;:::i;:::-;4004:16:72;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;3990:10:72;:30;3986:80;;4259:1;1637:19376:85;;;;;4259:1:72;:::i;3986:80::-;1637:19376:85;;-1:-1:-1;;;4043:12:72;;1637:19376:85;;4043:12:72;1637:19376:85;;;;;;;;;;;;;4273:61:72;;:::i;:::-;1637:19376:85;17942:86:69;1637:19376:85;17942:32:69;1637:19376:85;;;17987:31:69;1637:19376:85;;17942:86:69;;:::i;:::-;1637:19376:85;16672:97;;16779:8;1637:19376;;-1:-1:-1;;1637:19376:85;;;;;16813:16;1637:19376;;;-1:-1:-1;;;;;1637:19376:85;16804:33;;;;;1637:19376;;;;;;;;;;;;;16804:33;;;;;;;;;;1637:19376;;16672:97;1637:19376;;-1:-1:-1;;;16732:26:85;;1637:19376;;16732:26;1637:19376;;;;;;;;;;;;;2421:10;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;1384:9:66;1380:62;;1637:19376:85;;;;;2212:20:66;1637:19376:85;;;2221:10:66;1637:19376:85;;2212:20:66;1637:19376:85;;1380:62:66;1637:19376:85;;-1:-1:-1;;;1416:15:66;;1637:19376:85;;1416:15:66;1637:19376:85;;;;;;;;;;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;13386:14:85;;:::i;:::-;13444:9;:14;13440:70;;13548:10;1637:19376;;;;25176:25:69;1637:19376:85;;;;;17433:25:69;:52;1637:19376:85;17433:57:69;13520:115:85;;13650:14;1637:19376;;;;;;;13722:9;13444;13548:10;13722:9;:::i;:::-;13747:14;;:::i;13645:225::-;13849:9;13444;13548:10;13849:9;:::i;13520:115::-;2502:71:45;1637:19376:85;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;;;13582:42;;;;;;;;1637:19376;;13582:42;;2502:71:45;;;;;;:::i;1637:19376:85:-;;;;;;;-1:-1:-1;;1637:19376:85;;;;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;4326:1;1637:19376:85;;4326:1:72;:::i;1637:19376:85:-;;;;;-1:-1:-1;;1637:19376:85;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;6337:17;1637:19376;6337:17;;1637:19376;;6357:19;1637:19376;6337:51;;;;6333:108;;1637:19376;6454:10;;;;;;:::i;:::-;1637:19376;;;6474:25;1637:19376;;6454:45;;;6450:108;;6664:10;;;;:::i;:::-;:46;;;;:99;;;1637:19376;6660:156;;6829:10;;;;:::i;:::-;:22;;;6825:81;;1637:19376;;;;;6946:17;;;;;;;;;:::i;:::-;;1637:19376;;6946:17;;;;;;:::i;:::-;1637:19376;6936:28;;;6979:52;;;;1637:19376;;;;;;7310:24;1637:19376;7297:37;7293:200;;6975:1250;1637:19376;;7293:200;1637:19376;;7413:30;1637:19376;;8399:50:36;1637:19376:85;;;7467:10;8399:50:36;;:::i;6975:1250:85:-;7607:99;1637:19376;;;;;;;;;;;;;;;:::i;7607:99::-;1637:19376;;;;;;;:::i;:::-;;;;7906:71;1637:19376;;6357:19;1637:19376;;;;;8047:30;1637:19376;;8399:50:36;1637:19376:85;;;8101:10;8399:50:36;;:::i;:::-;-1:-1:-1;8169:16:85;1637:19376;-1:-1:-1;;;;;1637:19376:85;;8160:54;;;;;1637:19376;;8160:54;1637:19376;;;;;;;;;;;;8160:54;;1637:19376;8160:54;;;:::i;:::-;;;;;;;;;;;6975:1250;1637:19376;;8160:54;;;;:::i;6825:81::-;1637:19376;;-1:-1:-1;;;6874:21:85;;1637:19376;;6874:21;6660:156;1637:19376;;-1:-1:-1;;;6786:19:85;;1637:19376;;6786:19;6664:99;1637:19376;6734:24;1637:19376;;;;;;;6714:49;;6664:99;;1637:19376;-1:-1:-1;;;1637:19376:85;;;;;;;;6450:108;1637:19376;;-1:-1:-1;;;6522:25:85;;1637:19376;;6522:25;1637:19376;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;982:72:66;;;:::i;:::-;17437:10:85;1637:19376;;1317:17:79;1637:19376:85;;;;;;;;1317:33:79;17399:107:85;;1637:19376;;17519:29;17515:81;;17437:10;1637:19376;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8399:50:36;17437:10:85;8399:50:36;:::i;1637:19376:85:-;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;;;;;17515:81;1637:19376;;-1:-1:-1;;;17571:14:85;;1637:19376;;17571:14;17399:107;1637:19376;;-1:-1:-1;;;17471:24:85;;17437:10;1637:19376;17471:24;;1637:19376;;;17471:24;1637:19376;;;;;;;;;;;8507:9;:14;8503:68;;1637:19376;;8585:14;1637:19376;;;;8581:79;;8691:10;1637:19376;;;;;;;;;8674:33;8670:101;;1637:19376;8691:10;1637:19376;;;;;;;;8781:41;8507:9;1637:19376;;8781:41;:::i;:::-;1637:19376;;8832:32;8507:9;8832:19;1637:19376;8832:32;:::i;:::-;:19;1637:19376;;;8670:101;1637:19376;;-1:-1:-1;;;1637:19376:85;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;8691:10;1637:19376;;;;;;;;8670:101;;1637:19376;-1:-1:-1;;;1637:19376:85;;;;;;;;8503:68;-1:-1:-1;;;8544:16:85;;1637:19376;;8544:16;1637:19376;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;:::o;:::-;-1:-1:-1;;;;;1637:19376:85;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;:::o;:::-;-1:-1:-1;;;;;1637:19376:85;;;;;;-1:-1:-1;;1637:19376:85;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1637:19376:85;;;;;;:::o;:::-;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1637:19376:85;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;2587:156:62;2663:30;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;2649:10:62;:44;2645:92;;2587:156::o;2645:92::-;1637:19376:85;;-1:-1:-1;;;2716:10:62;;;;;1122:128:66;1637:19376:85;-1:-1:-1;;;;;;;;;;;1637:19376:85;;1183:61:66;;1122:128::o;1183:61::-;1637:19376:85;;-1:-1:-1;;;1218:15:66;;;;;1637:19376:85;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1637:19376:85;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;1637:19376:85;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;-1:-1:-1;;;;;1637:19376:85;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;1637:19376:85;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;1637:19376:85;;;;-1:-1:-1;1637:19376:85;:::o;:::-;;;;;;;;;;;;;17707:17;1637:19376;;;;;;17707:17;-1:-1:-1;1637:19376:85;;;;-1:-1:-1;1637:19376:85;:::o;2215:404:36:-;-1:-1:-1;1637:19376:85;;;4352:12:36;1637:19376:85;;;;;;;;17707:17;1637:19376;-1:-1:-1;;;1637:19376:85;;;;;;;;;;4352:12:36;1637:19376:85;;;17707:17;1637:19376;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;17707:17;1637:19376;;;;4352:12:36;1637:19376:85;;;;4352:12:36;2548:11;:::o;2294:319::-;2590:12;;;:::o;2215:404::-;;;4352:12;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;4352:24:36;2294:319;1637:19376:85;;;;;;-1:-1:-1;;;1637:19376:85;;;;;4352:12:36;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4352:12:36;2548:11;:::o;1637:19376:85:-;-1:-1:-1;;;1637:19376:85;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;;;;;2294:319:36;-1:-1:-1;2590:12:36;-1:-1:-1;;2590:12:36:o;1637:19376:85:-;;-1:-1:-1;1637:19376:85;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;1637:19376:85;;;;-1:-1:-1;1637:19376:85;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;1637:19376:85;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;;-1:-1:-1;1637:19376:85;-1:-1:-1;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;:::o;24177:1944:69:-;24359:11;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;;;;;;;;24385:56:69;;1637:19376:85;;;;-1:-1:-1;;;24464:28:69;;;;;24381:221;1637:19376:85;;;;;24513:56:69;;24509:93;;1637:19376:85;;;;;;24694:24:69;1637:19376:85;;;;24694:24:69;;;;26026:23;;;1637:19376:85;26026:23:69;;26065:49;26026:23;;:::i;:::-;-1:-1:-1;;;24359:11:69;1637:19376:85;;;;;;-1:-1:-1;;;1637:19376:85;;;24359:11:69;1637:19376:85;;;;;26065:49:69;24177:1944::o;24676:16::-;3893:36:70;;;-1:-1:-1;;;;;1637:19376:85;;;3893:15:70;1637:19376:85;;;;;;;3893:36:70;24823:16:69;;;;1637:19376:85;;;;;24823:16:69;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;:::i;:::-;24858:41:69;;;24823:16;;24967:14;;24919:45;:36;1637:19376:85;;24967:14:69;;;;;24919:36;1637:19376:85;;;;;;;;25176:25:69;1637:19376:85;;;;;;;24919:36:69;:45;1637:19376:85;:::i;:::-;4051:36:70;;-1:-1:-1;;;;;1637:19376:85;;;3893:15:70;1637:19376:85;;;;;;;4051:36:70;3793:45:72;;1637:19376:85;;;;;;;;;;;:::i;:::-;;;;;24676:16:69;;24854:1017;1637:19376:85;;;;;;;:::i;:::-;25019:34:69;;25006:47;;;25019:34;;1637:19376:85;;;;;;;;;;25125:14:69;;;1637:19376:85;:::i;:::-;;;;:::i;:::-;;;25114:44:69;;;;;;;;;;1637:19376:85;;;;;25114:44:69;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;25176:36:69;;;;1637:19376:85;;;;;;;;25176:25:69;1637:19376:85;;;;;;;25176:36:69;:45;1637:19376:85;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;25298:5:69;1637:19376:85;;;;;;;;;3793:45:72;1637:19376:85;;;;;;;;;;;;;;;;;;25298:5:69;:::i;:::-;24854:1017;;1637:19376:85;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;3793:45:72;1637:19376:85;;;3793:45:72;1637:19376:85;;3793:45:72;1637:19376:85;;;;;;;;;25298:5:69;1637:19376:85;;;;;;;;;;;;;;;;;25298:5:69;:::i;1637:19376:85:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;3793:45:72;1637:19376:85;;;;;;;;;25002:869:69;1637:19376:85;;;;;;;;;;;;;;;25371:14:69;;;1637:19376:85;:::i;:::-;25360:37:69;1637:19376:85;;;;25360:37:69;;1637:19376:85;;;;25360:37:69;;;;;1637:19376:85;;;;;:::i;:::-;25420:38:69;3893:15:70;;25524:6:69;;;;;;:::i;:::-;25553:14;1637:19376:85;3147:35:69;;:12;:35;:::i;:::-;1637:19376:85;;;;;;;:::i;:::-;;;;3224:54:69;;;1637:19376:85;;;-1:-1:-1;;;;;1637:19376:85;;;;;;3658:13:69;1637:19376:85;;;;;3224:54:69;;1637:19376:85;;;;;;;;;;;;;;;;;;;1273:22:69;;;;:::i;:::-;1637:19376:85;3793:45:72;;1637:19376:85;;;1306:13:69;;;1637:19376:85;;;;;;;;;;;;1362:10:69;;;:::i;:::-;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;3343:85:69;;;25631:16;1637:19376:85;;25622:47:69;;;;;;1637:19376:85;;;;;;;;;;;;;;;25622:47:69;;;;;1637:19376:85;25622:47:69;;;;;;;;;;;;;;;25416:441;;24854:1017;;25622:47;;;;:::i;:::-;;;;;1637:19376:85;;;;;;;;;;25416:441:69;25757:6;;;;;;;;;;:::i;:::-;25795:16;1637:19376:85;;25786:52:69;;;;;;1637:19376:85;;;;;;25786:52:69;;3793:45:72;25786:52:69;3793:45:72;;25786:52:69;;;;;;;;;;;;;;;;;;25416:441;24854:1017;;1637:19376:85;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;9330:540:69:-;;1637:19376:85;;;;;;;-1:-1:-1;1637:19376:85;9465:15:69;1637:19376:85;;;-1:-1:-1;1637:19376:85;;;;;;9580:22:69;;;9576:288;9580:22;;;9618:7;;;:::o;9576:288::-;-1:-1:-1;;9645:21:69;;;9747:5;;;:::i;9641:223::-;9846:5;;;:::i;9876:404::-;;10258:13;9876:404;10143:39;1637:19376:85;;;;;;;;;-1:-1:-1;1637:19376:85;10005:15:69;1637:19376:85;;10005:55:69;1637:19376:85;;;-1:-1:-1;1637:19376:85;10005:46:69;1637:19376:85;10005:55:69;:::i;:::-;1637:19376:85;-1:-1:-1;1637:19376:85;10005:15:69;1637:19376:85;;;;;-1:-1:-1;1637:19376:85;10070:46:69;1637:19376:85;10143:29:69;1637:19376:85;10143:39:69;:::i;:::-;:29;1637:19376:85;10258:13:69;:::i;1637:19376:85:-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;10286:616:69:-;;10830:13;10856:39;10286:616;1637:19376:85;;;;;;;-1:-1:-1;;1637:19376:85;;;10416:15:69;1637:19376:85;;10416:55:69;1637:19376:85;;;;;10416:46:69;1637:19376:85;10416:55:69;:::i;:::-;1637:19376:85;;;10416:15:69;1637:19376:85;;;;;10416:15:69;10507:42;;1637:19376:85;;;10564:18:69;;:42;;;;10286:616;-1:-1:-1;10560:199:69;;;1637:19376:85;;;;;;;;;;;;;;;;;:::i;:::-;10830:13:69;:::i;:::-;10856:29;1637:19376:85;10856:39:69;:::i;:::-;:29;1637:19376:85;10286:616:69:o;10560:199::-;10686:46;;;1637:19376:85;10686:46:69;1637:19376:85;10830:13:69;:::i;10564:42::-;10586:20;;;10564:42;;;11008:2209;;;1637:19376:85;;;;;;;;;-1:-1:-1;1637:19376:85;;;;;;1317:17:79;1637:19376:85;;;;;;;;;;;;11120:226:69;;1637:19376:85;1693:14:71;1637:19376:85;;;;;11124:21:69;1637:19376:85;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;1637:19376:85;;;;;4077:23:77;1637:19376:85;;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;1637:19376:85;;;1317:17:79;1637:19376:85;;;;;;;;12866:229:69;;13141:11;;;;;13168:42;;13141:11;;;;;:::i;:::-;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;13168:42:69;;;;11008:2209::o;12866:229::-;3147:36:77;;;:::i;:::-;3209:30;;;;:::i;:::-;3308:5;4619:7;1637:19376:85;;;;4619:7:77;;;4612:423;-1:-1:-1;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;-1:-1:-1;;;;1637:19376:85;;;;;;;;;-1:-1:-1;13008:56:69;;1637:19376:85;;;;13008:56:69;1637:19376:85;4612:423:77;1637:19376:85;;1991:25:79;1637:19376:85;;;;;;;;;;;1952:17:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;;;:::i;:::-;4612:423;;;;4864:82;4926:5;;;12404:452:69;12475:4;;;;;;;12777:48;12475:4;;;;12777:48;12475:4;1317:17:79;12475:4:69;;;:::i;:::-;1637:19376:85;;;;;;12495:140:69;;12404:452;12684:11;;;:::i;:::-;12746:10;;;:::i;:::-;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;12495:140:69;12608:11;;;:::i;:::-;12495:140;;11516:262;11675:11;;;;;11706:41;;11675:11;;;;;:::i;11120:226::-;2876:36:78;;;;;;;;;;;:::i;:::-;2936:30;;;;:::i;:::-;3035:3;4846:7;3035:3;4846:7;:::i;:::-;1637:19376:85;11124:21:69;1637:19376:85;;4932:763:78;;1637:19376:85;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;:::-;5089:187;;:::i;:::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;-1:-1:-1;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;-1:-1:-1;;;;1637:19376:85;;;;;;;5556:5:78;;-1:-1:-1;11260:55:69;;-1:-1:-1;1637:19376:85;;;;11260:55:69;1637:19376:85;4971:413:78;1637:19376:85;;;;;1952:17:79;1637:19376:85;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;11260:55:69;4939:16:78;;;;;11260:55:69;4939:16:78;;;;13320:2014:69;;1637:19376:85;;;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;1317:17:79;1637:19376:85;;;;;;;;;;;;13428:421:69;;1637:19376:85;;;1317:17:79;1637:19376:85;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;;;;:::i;:::-;3323:30;;;;:::i;:::-;3422:3;4270:433;1637:19376:85;;;;;4277:7:78;;;;1637:19376:85;;;;;;;;;1952:17:79;1637:19376:85;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4533:81;4594:5;;;;;;;;;;4270:433;1637:19376:85;13432:22:69;1637:19376:85;;14638:37:69;14634:74;;4023:26:77;;:::i;:::-;1637:19376:85;;;;;1952:17:79;1637:19376:85;;;;;;;;4129:25:77;;;;:::i;:::-;4023:26;;;:::i;:::-;1637:19376:85;;;4077:23:77;1637:19376:85;;;;;;;;;4129:25:77;;;;:::i;:::-;-1:-1:-1;14901:358:69;;-1:-1:-1;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;-1:-1:-1;;;;1637:19376:85;;;;;;;;;-1:-1:-1;15274:53:69;;1637:19376:85;-1:-1:-1;1637:19376:85;;;;15274:53:69;1637:19376:85;14901:358:69;14979:4;;;;;;;;;;;;:::i;:::-;1637:19376:85;13432:22:69;1637:19376:85;;1044:14:79;;1040:61;;1709:28:77;;1799:4;1709:28;;;;;:::i;:::-;1766:8;;;;:::i;:::-;1637:19376:85;;;13432:22:69;1637:19376:85;;;13432:22:69;1637:19376:85;1799:4:77;:::i;:::-;1637:19376:85;;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;5047:1009:77;;;5160:26;1952:17:79;1637:19376:85;13432:22:69;1637:19376:85;;5287:763:77;1637:19376:85;;;5287:763:77;15079:13:69;;;;;;;;;;15176:52;;15079:13;;;;;:::i;5287:763:77:-;1637:19376:85;;;5294:16:77;;;;;5330:15;;-1:-1:-1;;;5330:15:77;;;5599:12;;;;5444:186;5599:12;;:::i;:::-;5444:186;;:::i;:::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1637:19376:85;;;;;;;;;;;1991:25:79;;1637:19376:85;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;1040:61:79;1637:19376:85;;-1:-1:-1;;;1081:9:79;;;;;14634:74:69;14691:7;;;;;;;;:::o;4277::78:-;;;;;;;;;;;;;14049:508:69;14155:30;14126:9;;;;;;;;;;;;;:::i;:::-;1637:19376:85;;;;;14155:30:69;1637:19376:85;13432:22:69;1637:19376:85;;14204:37:69;;;;;;14200:326;;14540:7;;;;;;;;:::o;14200:326::-;4023:26:77;;:::i;:::-;1637:19376:85;;;;;4077:23:77;1637:19376:85;;;;;;;;;4129:25:77;;;;:::i;:::-;1040:61:79;;;1709:28:77;;1799:4;1709:28;;;;;:::i;1799:4::-;1637:19376:85;;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;5047:1009:77;;;5160:26;1952:17:79;1637:19376:85;13432:22:69;1637:19376:85;;5287:763:77;1637:19376:85;;;5287:763:77;14436:12:69;;;;;;;;;;14472:39;;14436:12;;;;;:::i;14472:39::-;;;;14200:326;;;;;;;;;5287:763:77;1637:19376:85;;;5294:16:77;;;;;5330:15;;-1:-1:-1;;;5330:15:77;;;5599:12;;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1637:19376:85;;;;;;;;;;;1991:25:79;;1637:19376:85;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;13883:106:69;1637:19376:85;;-1:-1:-1;;;13952:26:69;;1317:17:79;;13952:26:69;13428:421;13494:13;;;;;;;;;;13490:185;;3601:36:77;1637:19376:85;3601:36:77;;;;;:::i;:::-;3663:30;;;;:::i;:::-;3762:5;;1637:19376:85;;;;;;;;;13432:22:69;1637:19376:85;;5287:763:77;1637:19376:85;;;5287:763:77;-1:-1:-1;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;-1:-1:-1;;;;1637:19376:85;;;;;;;-1:-1:-1;1637:19376:85;;-1:-1:-1;13764:54:69;;1637:19376:85;-1:-1:-1;1637:19376:85;;;;13764:54:69;1637:19376:85;5287:763:77;1637:19376:85;;;5294:16:77;;;;;5330:15;;;;;;;;5599:12;;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1637:19376:85;;1952:17:79;1637:19376:85;;;;;;;;1991:25:79;;1637:19376:85;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;13490:185:69;13572:9;;;;;;;;13605:31;13572:9;;;;;:::i;:::-;1637:19376:85;;;;13605:31:69;13654:7::o;998:417:77:-;1401:5;998:417;1301:30;1637:19376:85;;1119:19:77;1637:19376:85;12499:22:69;1637:19376:85;;1119:19:77;:::i;:::-;1637:19376:85;;;;;;;;;;-1:-1:-1;1637:19376:85;1149:23:77;1637:19376:85;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;-1:-1:-1;1637:19376:85;1200:23:77;1637:19376:85;;;-1:-1:-1;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;12499:22:69;1637:19376:85;;;12499:22:69;1637:19376:85;1301:30:77;:::i;:::-;1401:5;;:::i;4525:375:69:-;1637:19376:85;1693:14:71;1637:19376:85;;;;;;;;4697:24:69;4668:53;4697:24;;-1:-1:-1;;;;;1637:19376:85;-1:-1:-1;1637:19376:85;;;4745:21:69;1637:19376:85;;;;;;;4525:375:69:o;4664:230::-;-1:-1:-1;;;;;1637:19376:85;-1:-1:-1;1637:19376:85;;;4831:21:69;1637:19376:85;;;;;;4831:52:69;1637:19376:85;;4525:375:69:o;1637:19376:85:-;;;;;-1:-1:-1;;1637:19376:85;;;;;;;:::o;2081:787:77:-;2210:36;2081:787;2210:36;:::i;:::-;1637:19376:85;;;12499:22:69;1637:19376:85;;2321:4:77;;;;;:::i;:::-;2382:8;;;;:::i;:::-;1637:19376:85;;;12499:22:69;1637:19376:85;;;12499:22:69;1637:19376:85;2415:4:77;;;:::i;:::-;1637:19376:85;;;2435:11:77;;;2431:48;;-1:-1:-1;1637:19376:85;-1:-1:-1;;1637:19376:85;;;;1952:17:79;1637:19376:85;;;;;;;;;;;;;;2668:5:77;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;2668:5:77;;:::i;:::-;1637:19376:85;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;2854:5:77;;1637:19376:85;;;;;;;;;12499:22:69;1637:19376:85;;5287:763:77;1637:19376:85;;;5287:763:77;2081:787;;;;;;;;;;;:::o;5287:763::-;1637:19376:85;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;1637:19376:85;;;;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;2431:48;2462:7;;;:::o;4443:598::-;;;;4612:423;4625:1;1637:19376:85;;;;4619:7:77;;;;1637:19376:85;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;1637:19376:85;;;1952:17:79;1637:19376:85;;;;;;;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;:::i;:::-;4612:423;;4864:82;4926:5;;;;4443:598::o;1637:19376:85:-;;;;;;;;;;;;;;:::o;6117:442:77:-;;;;1637:19376:85;;;;;-1:-1:-1;1637:19376:85;1952:17:79;1637:19376:85;;1991:25:79;1637:19376:85;;;;;1991:25:79;1637:19376:85;;-1:-1:-1;1637:19376:85;;;1991:25:79;:::i;:::-;1637:19376:85;;;-1:-1:-1;1637:19376:85;1952:17:79;1637:19376:85;;;-1:-1:-1;1637:19376:85;;;1991:25:79;:::i;:::-;6662:7:77;;;;6437:85;;6531:21;;;6117:442;:::o;6437:85::-;6490:21;-1:-1:-1;6490:21:77;;-1:-1:-1;6490:21:77:o;924:417:78:-;1327:5;924:417;1227:30;1637:19376:85;;1045:19:78;1637:19376:85;11124:21:69;1637:19376:85;;1045:19:78;:::i;:::-;1637:19376:85;;;;;;;;;;-1:-1:-1;1637:19376:85;1075:23:78;1637:19376:85;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;-1:-1:-1;1637:19376:85;1126:23:78;1637:19376:85;;;-1:-1:-1;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;11124:21:69;1637:19376:85;;;11124:21:69;1637:19376:85;1227:30:78;:::i;:::-;1327:5;;:::i;1408:401::-;1637:19376:85;;11124:21:69;1637:19376:85;;1044:14:79;;;1040:61;;1637:19376:85;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;1637:19376:85;;;;2468:17:79;1637:19376:85;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;2551:17:79;1637:19376:85;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1662:4:78;;1637:19376:85;1629:8:78;;1637:19376:85;1629:8:78;:::i;:::-;1637:19376:85;;11124:21:69;1637:19376:85;;;11124:21:69;1637:19376:85;1662:4:78;:::i;:::-;1637:19376:85;;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;4715:986:78;;4828:25;1952:17:79;1637:19376:85;11124:21:69;1637:19376:85;;4932:763:78;1637:19376:85;;;1408:401:78;;;;;;;;;;;:::o;4932:763::-;1637:19376:85;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;;4971:413;1637:19376:85;;;;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;4971:413:78;;1040:61:79;1637:19376:85;;-1:-1:-1;;;1081:9:79;;;;;1881:779:78;2010:36;1881:779;2010:36;:::i;:::-;1637:19376:85;;;;13888:21:69;1637:19376:85;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;1637:19376:85;;;13888:21:69;1637:19376:85;;;13888:21:69;1637:19376:85;2215:4:78;;;:::i;:::-;1637:19376:85;;;2235:11:78;;;2231:48;;-1:-1:-1;;;;1637:19376:85;;;;1952:17:79;1637:19376:85;;;;;;;;;;;;;;2466:3:78;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;1637:19376:85;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;2648:3:78;4846:7;2648:3;4846:7;:::i;:::-;4863:18;1637:19376:85;13888:21:69;1637:19376:85;;4932:763:78;;1637:19376:85;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;;;;;1881:779::o;4971:413::-;1637:19376:85;;;;;;;;1991:25:79;1637:19376:85;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;;;;;;1881:779::o;2231:48::-;2262:7;;;;:::o;4101:608::-;;;;4270:433;4283:1;1637:19376:85;;;;4277:7:78;;;;1637:19376:85;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;1637:19376:85;;;1952:17:79;1637:19376:85;;;;;;;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;5763:443;;;1637:19376:85;;;;-1:-1:-1;1637:19376:85;1952:17:79;1637:19376:85;;1991:25:79;1637:19376:85;;;;;1991:25:79;1637:19376:85;;-1:-1:-1;1637:19376:85;;;1991:25:79;:::i;:::-;1637:19376:85;;;-1:-1:-1;1637:19376:85;1952:17:79;1637:19376:85;;;-1:-1:-1;1637:19376:85;;;1991:25:79;:::i;:::-;6308:7:78;;;;6088:33;6084:85;;6178:21;;;5763:443;:::o;974:133:79:-;1637:19376:85;11124:21:69;1637:19376:85;;1044:14:79;1040:61;;974:133::o;:::-;1637:19376:85;13432:22:69;1637:19376:85;;1044:14:79;1040:61;;974:133::o;1363:226::-;-1:-1:-1;;;;;1637:19376:85;-1:-1:-1;1637:19376:85;;;1474:17:79;1637:19376:85;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1512:71::-;1637:19376:85;;-1:-1:-1;;;1547:25:79;;;;;1363:226;-1:-1:-1;;;;;1637:19376:85;-1:-1:-1;1637:19376:85;;;1474:17:79;1637:19376:85;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1595:184::-;1637:19376:85;;-1:-1:-1;1637:19376:85;;;1671:17:79;1637:19376:85;;;;;;;;;;-1:-1:-1;;;;;;1637:19376:85;;;;;-1:-1:-1;;;;;1637:19376:85;;;1749:17:79;1637:19376:85;;;;;;;-1:-1:-1;;1637:19376:85;;;1595:184:79:o;:::-;1637:19376:85;;-1:-1:-1;1637:19376:85;;;1671:17:79;1637:19376:85;;;;;;;;;;-1:-1:-1;;;;;;1637:19376:85;;;;;-1:-1:-1;;;;;1637:19376:85;;;1749:17:79;1637:19376:85;;;;;;;-1:-1:-1;;1637:19376:85;;;1595:184:79:o;1637:19376:85:-;;;;:::o;:::-;;;;;;;;;;;;2301:412:79;2416:25;1637:19376:85;;13432:22:69;1637:19376:85;;2388:17:79;2381:25;2388:17;1637:19376:85;2388:17:79;;2381:25;:::i;:::-;1637:19376:85;2423:17:79;;;;2416:25;:::i;:::-;2468:17;1637:19376:85;;;;;;;-1:-1:-1;1637:19376:85;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;2551:17:79;1637:19376:85;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;2301:412:79:o;:::-;2416:25;1637:19376:85;;;11124:21:69;1637:19376:85;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;1637:19376:85;;;2468:17:79;1637:19376:85;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;2551:17:79;1637:19376:85;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;2301:412:79:o;:::-;2416:25;1637:19376:85;;;12870:22:69;1637:19376:85;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;1637:19376:85;;;2468:17:79;1637:19376:85;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;2551:17:79;1637:19376:85;;;;;;;-1:-1:-1;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;2301:412:79:o;1637:19376:85:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;1637:19376:85;;;;;;;;-1:-1:-1;;1637:19376:85;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1530:331:29;1615:21;;:30;1611:109;;1749:33;;;;;;;;-1:-1:-1;;;;;1637:19376:85;1749:33:29;;1637:19376:85;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;1749:33:29;1637:19376:85;;;;;;1796:8:29;1792:63;;1530:331::o;1792:63::-;1637:19376:85;;-1:-1:-1;;;1827:17:29;;;;;1637:19376:85;;;1611:109:29;1637:19376:85;;-1:-1:-1;;;1668:41:29;;1623:4;1668:41;;;1637:19376:85;;;1668:41:29;6969:557:71;7128:20;1637:19376:85;;;7170:9:71;3793:45:72;7181:10:71;;;;;;6969:557;;;;:::o;7170:9::-;7213:23;;;:::i;:::-;1637:19376:85;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;7213:31:71;7209:242;;1637:19376:85;;;;7170:9:71;;7209:242;1637:19376:85;;;;;;;;;;;;;;;;7290:32:71;7264:23;7290:32;;7264:58;7290:32;;:::i;:::-;1637:19376:85;;;;;;;7264:23:71;;:::i;:::-;:58;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;7264:58:71;1637:19376:85;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7431:5:71;;;;;;1637:19376:85;;;;;;3793:45:72;1637:19376:85;;;3793:45:72;1637:19376:85;;;;;;;3793:45:72;1637:19376:85;;;3793:45:72;1637:19376:85;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;;;;;;;;;;;:::o;2502:71:45:-;;1637:19376:85;2502:71:45;;1637:19376:85;;;;;;;;;;;2502:71:45;;;:::i;:::-;1637:19376:85;;-1:-1:-1;;1637:19376:85;2502:71:45;;;:::o;1637:19376:85:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;1726:24:71;1637:19376:85;;;;;;;;1726:24:71;-1:-1:-1;1637:19376:85;;;;;-1:-1:-1;1637:19376:85;:::o;:::-;;;;;;;;5091:19:71;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;19251:224:69;-1:-1:-1;;;;;1637:19376:85;;;;;25176:25:69;1637:19376:85;;;;;19251:224:69;;;;8282:41;;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;:::i;:::-;;;:::i;:::-;3793:45:72;1637:19376:85;;;;;;;;;;;3793:45:72;1637:19376:85;;;;;;;;;;;;8282:41:69;1637:19376:85;;;;;;;19251:224:69:o;1637:19376:85:-;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19251:224:69:o;1637:19376:85:-;;;-1:-1:-1;;8282:41:69;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3527:269:71;;3623:65;372:2:40;3630:57:71;;3623:65;:::i;:::-;372:2:40;3735:1:71;372:2:40;;;1637:19376:85;;;;-1:-1:-1;;372:2:40;;3735:1:71;372:2:40;1637:19376:85;:::i;:::-;;;;;;;3715:24:71;-1:-1:-1;;;;;1637:19376:85;;3527:269:71:o;4078:118:72:-;1637:19376:85;4127:8:72;1637:19376:85;;;;4123:67:72;;4078:118::o;4123:67::-;1637:19376:85;;-1:-1:-1;;;4158:21:72;;;;;19573:1335:69;;19954:6;19573:1335;19831:6;;;;:::i;:::-;19954;;:::i;:::-;1637:19376:85;19977:14:69;1637:19376:85;;;;19976:15:69;19972:930;;19573:1335;:::o;19972:930::-;20165:19;1637:19376:85;;3793:45:72;20165:19:69;3793:45:72;20221:10:69;;;;;;20205:270;20492:17;;;20488:404;;19972:930;;19573:1335;:::o;20488:404::-;-1:-1:-1;;;;;1637:19376:85;;;;;;25176:25:69;1637:19376:85;;;;;20550:56:69;;;1637:19376:85;;;;;;20766:45:69;1637:19376:85;;;;;;:::i;:::-;;;20647:183:69;;1637:19376:85;20647:183:69;;;1637:19376:85;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;20647:183:69;;1637:19376:85;;;-1:-1:-1;;;1637:19376:85;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3793:45:72;1637:19376:85;;;;;;;;;;;;;;;;;;;2462:7:77:o;1637:19376:85:-;;;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;3793:45:72;1637:19376:85;;3793:45:72;1637:19376:85;;3793:45:72;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1637:19376:85;;;;;;20210:9:69;3793:45:72;1637:19376:85;;;;;;20257:27:69;;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;;;;;20257:40:69;20253:137;;1637:19376:85;20210:9:69;;;;20253:137;20321:23;;;20366:5;;;;8648:175;1637:19376:85;;;;;;-1:-1:-1;1637:19376:85;8758:21:69;1637:19376:85;;8758:58:69;:21;1637:19376:85;-1:-1:-1;1637:19376:85;8758:48:69;1637:19376:85;;;8758:58:69;:::i;:::-;1637:19376:85;;8648:175:69:o;22329:256::-;;;1637:19376:85;;2707:18:70;;;;;1637:19376:85;2707:18:70;;;;;;:::i;:::-;-1:-1:-1;;;;;22476:11:69;1637:19376:85;;;;;;;;;:::i;:::-;-1:-1:-1;1637:19376:85;;2707:18:70;3528:63;;1637:19376:85;;;;;;;;;;;;3528:63:70;;1637:19376:85;;-1:-1:-1;1637:19376:85;3489:15:70;2707:18;1637:19376:85;;-1:-1:-1;1637:19376:85;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;2707:18:70;1637:19376:85;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;22571:6:69;1637:19376:85;;-1:-1:-1;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:63:70;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;22476:11:69;1637:19376:85;;;22476:11:69;1637:19376:85;;;;;;-1:-1:-1;1637:19376:85;;;;;;;;;2707:18:70;1637:19376:85;;;;;;;;;;;;;:::i;:::-;;;;;;2941:195:70;;;22571:6:69;:::i;1637:19376:85:-;;;;-1:-1:-1;1637:19376:85;;;;;;;;-1:-1:-1;1637:19376:85;2707:18:70;-1:-1:-1;1637:19376:85;;-1:-1:-1;1637:19376:85;-1:-1:-1;;1637:19376:85;;;;;;;;;;22571:6:69;1637:19376:85;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2707:18:70;1637:19376:85;;;;;;;1090:308:71;1637:19376:85;1233:14:71;1637:19376:85;;;;;;;;1229:147:71;;1090:308::o;2006:664::-;5112:35:69;1637:19376:85;2236:25:71;1637:19376:85;2217:44:71;;;2213:451;;2006:664;;:::o;2213:451::-;1637:19376:85;5328:27:69;1637:19376:85;;-1:-1:-1;;;;;2319:15:71;1637:19376:85;;-1:-1:-1;2281:53:71;2277:377;;2006:664;:::o;2277:377::-;1637:19376:85;;;2354:14:71;1637:19376:85;;;2354:14:71;1637:19376:85;2398:39:71;1637:19376:85;;2398:39:71;;;;:::i;:::-;;;;1637:19376:85;;;;;2546:16:71;1637:19376:85;;;2580:37:71;2598:19;1637:19376:85;2580:37:71;;;:::i;:::-;2537:102;;;;;;1637:19376:85;3793:45:72;1637:19376:85;;;;;;;;;;;2537:102:71;;;;;1637:19376:85;2537:102:71;;;;;;;2213:451;2537:102;;;;:::i;:::-;1637:19376:85;;;3793:45:72;1637:19376:85;;;;;14088:782;14312:14;;:::i;:::-;14371:11;;14367:68;;14502:10;1637:19376;;;;25176:25:69;1637:19376:85;;;;;18718:25:69;:52;1637:19376:85;14528:15;;14524:77;;14614:20;-1:-1:-1;14614:20:85;14610:79;;1637:19376;14703:14;1637:19376;;;;14702:15;14698:116;;14856:6;14502:10;;14856:6;:::i;14698:116::-;14502:10;21358:6:69;21588;14502:10:85;;21358:6:69;:::i;:::-;21482;14502:10:85;;21482:6:69;:::i;14610:79:85:-;1637:19376;;-1:-1:-1;;;14657:21:85;;;;;14367:68;1637:19376;;-1:-1:-1;;;14405:19:85;;;;;8895:364:69;-1:-1:-1;;;;;1637:19376:85;-1:-1:-1;1637:19376:85;;;9022:21:69;1637:19376:85;;;;;9022:21:69;:48;1637:19376:85;;;9084:14:69;;;9080:81;;9171:15;;;:::i;:::-;1637:19376:85;-1:-1:-1;1637:19376:85;9022:21:69;1637:19376:85;;9022:21:69;1637:19376:85;-1:-1:-1;1637:19376:85;9196:48:69;1637:19376:85;8895:364:69:o;9080:81::-;1637:19376:85;;-1:-1:-1;;;9121:29:69;;;;;22631:259;;;1637:19376:85;;2064:18:70;;;;;1637:19376:85;2064:18:70;;;;;;:::i;:::-;-1:-1:-1;;;;;22779:11:69;1637:19376:85;;;;;;;;;:::i;:::-;2217:25:70;1637:19376:85;;2064:18:70;3528:63;;1637:19376:85;;;;;;;;;;;;3528:63:70;;1637:19376:85;;-1:-1:-1;1637:19376:85;3489:15:70;2064:18;1637:19376:85;;-1:-1:-1;1637:19376:85;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;2217:25:70;1637:19376:85;;;;:::i;:::-;2064:18:70;1637:19376:85;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;22876:6:69;1637:19376:85;;-1:-1:-1;1637:19376:85;;;;;;;2217:25:70;1637:19376:85;;;;;;;;;;;2217:25:70;1637:19376:85;;;;;;;;;;;;3528:63:70;;1637:19376:85;;-1:-1:-1;;;;;1637:19376:85;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;1637:19376:85;-1:-1:-1;;;;;1637:19376:85;22779:11:69;1637:19376:85;;;22779:11:69;1637:19376:85;;;;;;2217:25:70;1637:19376:85;;;;;;;;;2064:18:70;1637:19376:85;;;;;;;;;;;;;:::i;:::-;;;;;;2299:196:70;;;22876:6:69;:::i;1637:19376:85:-;;;;-1:-1:-1;1637:19376:85;;;;;2217:25:70;1637:19376:85;;-1:-1:-1;1637:19376:85;2064:18:70;-1:-1:-1;1637:19376:85;;-1:-1:-1;1637:19376:85;-1:-1:-1;;1637:19376:85;;;;;;;;2217:25:70;1637:19376:85;22876:6:69;1637:19376:85;;;;;;;-1:-1:-1;;;;;;;;;;;1637:19376:85;;;;;;;;;;;;;;;;;2217:25:70;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2217:25:70;1637:19376:85;;;;2064:18:70;1637:19376:85;;;;;;;14944:1550;1637:19376;15345:14;1637:19376;;;;15341:89;;14944:1550;15551:10;1637:19376;;;;25176:25:69;1637:19376:85;;;;;18718:25:69;:52;1637:19376:85;15576:11;;15572:73;;8720:53:36;15551:10:85;8720:53:36;:::i;:::-;;-1:-1:-1;15551:10:85;;1637:19376;;15759:16;1637:19376;;;;;;;;;;:::i;:::-;;;;14944:1550;1637:19376;;;;15345:14;1637:19376;;;;15802:15;15798:641;;16480:6;15551:10;;;16480:6;:::i;15798:641::-;1637:19376;21588:6:69;15551:10:85;;1637:19376;;15955:16;1637:19376;;;;16001:19;15997:277;;15798:641;15551:10;21358:6:69;15551:10:85;;21358:6:69;:::i;15997:277:85:-;1637:19376;16091:37;16244:14;1637:19376;18718:25:69;1637:19376:85;16091:37;:::i;:::-;18718:25:69;1637:19376:85;16185:10;15551;16185;:::i;16244:14::-;15997:277;;;1637:19376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;15341:89;15375:14;;:::i;:::-;15341:89;;2787:1388:36;-1:-1:-1;1637:19376:85;;;2990:12:36;1637:19376:85;;;;;;-1:-1:-1;;1637:19376:85;3024:15:36;;;;-1:-1:-1;;1637:19376:85;;;;;;;;;15706:17;1637:19376;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;1637:19376:85;;;15706:17;1637:19376;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15706:17;1637:19376;;;2990:12:36;1637:19376:85;;;;;;2990:12:36;4104:11;:::o;1637:19376:85:-;-1:-1:-1;;;1637:19376:85;;;;;;;;3502:398:36;1637:19376:85;3572:22:36;3694:26;3572:22;;:::i;:::-;1637:19376:85;;;;;;3694:26:36;;;;:::i;1637:19376:85:-;;;;;2990:12:36;1637:19376:85;;;;;;3502:398:36;;;;;1637:19376:85;-1:-1:-1;;;1637:19376:85;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;;;;;3020:1149:36;4146:12;;;:::o;1637:19376:85:-;;;;;;;;;;;;;;;:::o;18068:1492::-;;;;18243:11;;18239:48;;1637:19376;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;;;;;;18253:1;1637:19376;;;;;;;;;;18389:32;;;-1:-1:-1;3208:21:71;1637:19376:85;3199:30:71;;;:::i;:::-;1637:19376:85;;3250:35:71;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18385:568;1637:19376;;19161:19;;;19157:56;;19226:23;;;19222:60;;1637:19376;;;19383:9;;19394:18;;;;;;18068:1492;;;;;;;:::o;19383:9::-;1637:19376;;-1:-1:-1;;;;;19455:11:85;1637:19376;19455:11;;:::i;:::-;1637:19376;;;;19430:16;1637:19376;;;;;19430:54;1637:19376;;;19430:54;:::i;:::-;1637:19376;;;19383:9;;19222:60;19265:7;;;;;;:::o;1637:19376::-;;;;;;;;;;;;-1:-1:-1;1637:19376:85;;;;;;18385:568;18515:38;1637:19376;18515:38;;;18511:442;1637:19376;;;;;;13582:42;;;;18798:51;;;;;1637:19376;;;;;;;;;;;18798:51;18511:442;1637:19376;;;13582:42;;;;18887:55;;;;;1637:19376;;;;;;;;;;;-1:-1:-1;;;1637:19376:85;;;;18887:55;1637:19376;-1:-1:-1;;;1637:19376:85;;;;;;;;20121:890;;1637:19376;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1637:19376:85;;;:::i;:::-;;;;;;;;;;-1:-1:-1;7631:8:69;;;;;;20517:36:85;;-1:-1:-1;1637:19376:85;;;6312:27:69;1637:19376:85;;;6364:12:69;;;;6359:236;1637:19376:85;;;6359:236:69;1637:19376:85;;;;;;20604:20;1637:19376;;;;;;;;;;;;;;;;;;;20628:3;20690:229;1637:19376;;20690:229;;:::i;:::-;20934:6;;20930:75;;20121:890;;:::o;20930:75::-;1637:19376;;;;;;;;;;20963:31;;;;;;1637:19376;20963:31;;;1637:19376;20963:31;6364:12:69;1637:19376:85;;;;;;;;;6378:9:69;;;;;-1:-1:-1;1637:19376:85;;;598:23:78;1637:19376:85;;;;;;;;;;;;6480:45:69;;6494:31;;-1:-1:-1;;;;;1637:19376:85;6494:31:69;:::i;:::-;6480:45;;:::i;:::-;1637:19376:85;;;6364:12:69;;;;6378:9;;;;;;7620;-1:-1:-1;;;;;1637:19376:85;7692:12:69;;;;:::i;:::-;1637:19376:85;;-1:-1:-1;1637:19376:85;1317:17:79;1637:19376:85;;;;-1:-1:-1;1637:19376:85;;;1317:33:79;7657:116:69;;7829:12;7808:34;1637:19376:85;7829:12:69;;;;;:::i;:::-;1637:19376:85;;7808:34:69;:::i;:::-;7786:56;;;;:::i;:::-;1637:19376:85;;7620:9:69;;7657:116;7745:12;;;1637:19376:85;7745:12:69;;;:::i;:::-;1637:19376:85;;;-1:-1:-1;;;7732:26:69;;1637:19376:85;;7732:26:69;;;1637:19376:85;7732:26:69;1239:1329:65;1637:19376:85;;1239:1329:65;;1637:19376:85;;;1596:21:65;;1592:90;;1637:19376:85;;1696:38:65;;;;:76;;;1239:1329;1692:148;;1855:9;;;;;1850:568;1866:20;;;;;;2431:19;;;;;;;;2427:75;;1637:19376:85;2511:50:65;2527:33;1239:1329;:::o;2427:75::-;1637:19376:85;2466:25:65;1637:19376:85;2466:25:65;:::o;1855:9::-;2031:13;;;;;;1957:102;2031:13;;;;:::i;:::-;;1957:102;;:::i;:::-;1637:19376:85;;;;:::i;:::-;2073:116:65;;-1:-1:-1;;;;;1637:19376:85;2219:14:65;;;;:::i;:::-;1637:19376:85;;;;2206:27:65;2202:105;;2329:19;1637:19376:85;2338:10:65;;;;;:::i;:::-;1637:19376:85;2329:19:65;;:::i;:::-;1637:19376:85;;1855:9:65;;;;;;;2202:105;2253:39;;;;;;;;1637:19376:85;2253:39:65;2269:22;2253:39;:::o;2073:116::-;2135:39;;;;;;;;;1637:19376:85;2135:39:65;2151:22;2135:39;:::o;1692:148::-;1788:41;;;;;;;;1637:19376:85;1788:41:65;:::o;1696:76::-;1637:19376:85;;;1738:34:65;;;1696:76;;1592:90;1633:38;;;;;;;;1649:21;1633:38;:::o;2483:766:32:-;1637:19376:85;;;2483:766:32;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:32;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;1637:19376:85;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:32;;;;;;;;;;;;;;-1:-1:-1;;;;;1637:19376:85;;6946:20:32;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;1637:19376:85;;;;;;;;;;6633:164:32;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":287,"length":20}]}}},"methodIdentifiers":{"addBootstrapNode(string)":"10fd4261","claim()":"4e71d92d","claimRewardForRelayer()":"ed7c4da1","distributeRewardToRelayers(uint256,uint256,uint8)":"4c860af6","join(bytes)":"6170b162","kill()":"41c0e1b5","leave()":"d66d9e19","pause()":"8456cb59","paused()":"5c975abb","preFund()":"0b7fbe60","preRelease(uint256)":"66783c9b","setFederatedPower(address[],bytes[],uint256[])":"da5d09ee","stake()":"3a4b66f1","submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":"26811936","submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":"b9ee2bb9","unpause()":"3f4ba83a","unstake(uint256)":"2e17de78","validateActiveQuorumSignatures(address[],bytes32,bytes[])":"cc2dc2b9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchWithNoMessages\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotConfirmFutureChanges\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CollateralIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicatedGenesisValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFederationPayload\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPublicKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"InvalidSignatureErr\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxMsgsPerBatchExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoCollateralToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAllValidatorsHaveLeft\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughGenesisValidators\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOfPublicKey\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyBootstrapped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyKilled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawExceedingCollateral\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"NextBottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"netAddress\",\"type\":\"string\"}],\"name\":\"addBootstrapNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"internalType\":\"enum QuorumObjKind\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"distributeRewardToRelayers\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"preFund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"preRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"publicKeys\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"powers\",\"type\":\"uint256[]\"}],\"name\":\"setFederatedPower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"validateActiveQuorumSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"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\":{\"addBootstrapNode(string)\":{\"params\":{\"netAddress\":\"The network address of the new bootstrap node.\"}},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"params\":{\"height\":\"The height of the checkpoint for which rewards are being distributed.\",\"kind\":\"The type of object for which rewards are being distributed.\",\"reward\":\"The total amount of reward to be distributed.\"}},\"join(bytes)\":{\"params\":{\"publicKey\":\"The off-chain 65 byte public key that should be associated with the validator\"}},\"kill()\":{\"details\":\"It is not a privileged operation.\"},\"preFund()\":{\"details\":\"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply.\"},\"preRelease(uint256)\":{\"details\":\"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.\",\"params\":{\"amount\":\"The amount to remove.\"}},\"setFederatedPower(address[],bytes[],uint256[])\":{\"details\":\"method that allows the contract owner to set the validators' federated power.\",\"params\":{\"powers\":\"The federated powers to be assigned to validators.\",\"publicKeys\":\"The public keys of validators.\",\"validators\":\"The addresses of validators.\"}},\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"details\":\"It triggers the execution of a cross-net message batch.\",\"params\":{\"batch\":\"The batch of bottom-up messages.\",\"signatories\":\"The addresses of validators signing the batch.\",\"signatures\":\"The signatures of validators on the batch.\"}},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"details\":\"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.\",\"params\":{\"checkpoint\":\"The executed bottom-up checkpoint.\",\"signatories\":\"The addresses of validators signing the checkpoint.\",\"signatures\":\"The signatures of validators on the checkpoint.\"}},\"unstake(uint256)\":{\"details\":\"`leave` must be used to unstake the entire stake.\",\"params\":{\"amount\":\"The amount to unstake.\"}},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"details\":\"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.\",\"params\":{\"hash\":\"The hash of the checkpoint.\",\"signatories\":\"The addresses of the signatories.\",\"signatures\":\"The packed signatures of the checkpoint.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addBootstrapNode(string)\":{\"notice\":\"Add a bootstrap node.\"},\"claim()\":{\"notice\":\"Validator claims their released collateral.\"},\"claimRewardForRelayer()\":{\"notice\":\"Relayer claims its reward.\"},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"notice\":\"Distributes rewards to relayers for a specific checkpoint.\"},\"join(bytes)\":{\"notice\":\"method that allows a validator to join the subnet. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered.\"},\"kill()\":{\"notice\":\"method that allows to kill the subnet when all validators left.\"},\"leave()\":{\"notice\":\"method that allows a validator to leave the subnet.\"},\"pause()\":{\"notice\":\"Pauses all contract functions with the `whenNotPaused` modifier.\"},\"paused()\":{\"notice\":\"sets if to pause the contract\"},\"preFund()\":{\"notice\":\"method to add some initial balance into a subnet that hasn't yet bootstrapped.\"},\"preRelease(uint256)\":{\"notice\":\"method to remove funds from the initial balance of a subnet.\"},\"setFederatedPower(address[],bytes[],uint256[])\":{\"notice\":\"Sets the federated power of validators.\"},\"stake()\":{\"notice\":\"method that allows a validator to increase its stake. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered.\"},\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"notice\":\"Submits a batch of bottom-up messages for execution.\"},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"notice\":\"Submits a checkpoint commitment for execution.\"},\"unpause()\":{\"notice\":\"Unpauses all contract functions with the `whenNotPaused` modifier.\"},\"unstake(uint256)\":{\"notice\":\"method that allows a validator to unstake a part of its collateral from a subnet.\"},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"notice\":\"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnet/SubnetActorManagerFacet.sol\":\"SubnetActorManagerFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"BatchWithNoMessages"},{"inputs":[],"type":"error","name":"CannotConfirmFutureChanges"},{"inputs":[],"type":"error","name":"CannotReleaseZero"},{"inputs":[],"type":"error","name":"CollateralIsZero"},{"inputs":[],"type":"error","name":"DuplicatedGenesisValidator"},{"inputs":[],"type":"error","name":"EmptyAddress"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidBatchEpoch"},{"inputs":[],"type":"error","name":"InvalidCheckpointEpoch"},{"inputs":[],"type":"error","name":"InvalidFederationPayload"},{"inputs":[],"type":"error","name":"InvalidPublicKeyLength"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"type":"error","name":"InvalidSignatureErr"},{"inputs":[],"type":"error","name":"MaxMsgsPerBatchExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NoCollateralToWithdraw"},{"inputs":[],"type":"error","name":"NotAllValidatorsHaveLeft"},{"inputs":[],"type":"error","name":"NotEnoughBalance"},{"inputs":[],"type":"error","name":"NotEnoughCollateral"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotEnoughGenesisValidators"},{"inputs":[],"type":"error","name":"NotGateway"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"NotOwnerOfPublicKey"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotValidator"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"type":"error","name":"SubnetAlreadyBootstrapped"},{"inputs":[],"type":"error","name":"SubnetAlreadyKilled"},{"inputs":[],"type":"error","name":"WithdrawExceedingCollateral"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointExecuted","anonymous":false},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}],"indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointSubmitted","anonymous":false},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"NextBottomUpCheckpointExecuted","anonymous":false},{"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":[{"internalType":"string","name":"netAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addBootstrapNode"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardForRelayer"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"enum QuorumObjKind","name":"kind","type":"uint8"}],"stateMutability":"payable","type":"function","name":"distributeRewardToRelayers"},{"inputs":[{"internalType":"bytes","name":"publicKey","type":"bytes"}],"stateMutability":"payable","type":"function","name":"join"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"leave"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"preFund"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preRelease"},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"bytes[]","name":"publicKeys","type":"bytes[]"},{"internalType":"uint256[]","name":"powers","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"setFederatedPower"},{"inputs":[],"stateMutability":"payable","type":"function","name":"stake"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitBottomUpMsgBatch"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitCheckpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"},{"inputs":[{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"validateActiveQuorumSignatures"}],"devdoc":{"kind":"dev","methods":{"addBootstrapNode(string)":{"params":{"netAddress":"The network address of the new bootstrap node."}},"distributeRewardToRelayers(uint256,uint256,uint8)":{"params":{"height":"The height of the checkpoint for which rewards are being distributed.","kind":"The type of object for which rewards are being distributed.","reward":"The total amount of reward to be distributed."}},"join(bytes)":{"params":{"publicKey":"The off-chain 65 byte public key that should be associated with the validator"}},"kill()":{"details":"It is not a privileged operation."},"preFund()":{"details":"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply."},"preRelease(uint256)":{"details":"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.","params":{"amount":"The amount to remove."}},"setFederatedPower(address[],bytes[],uint256[])":{"details":"method that allows the contract owner to set the validators' federated power.","params":{"powers":"The federated powers to be assigned to validators.","publicKeys":"The public keys of validators.","validators":"The addresses of validators."}},"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"details":"It triggers the execution of a cross-net message batch.","params":{"batch":"The batch of bottom-up messages.","signatories":"The addresses of validators signing the batch.","signatures":"The signatures of validators on the batch."}},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"details":"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.","params":{"checkpoint":"The executed bottom-up checkpoint.","signatories":"The addresses of validators signing the checkpoint.","signatures":"The signatures of validators on the checkpoint."}},"unstake(uint256)":{"details":"`leave` must be used to unstake the entire stake.","params":{"amount":"The amount to unstake."}},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"details":"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.","params":{"hash":"The hash of the checkpoint.","signatories":"The addresses of the signatories.","signatures":"The packed signatures of the checkpoint."}}},"version":1},"userdoc":{"kind":"user","methods":{"addBootstrapNode(string)":{"notice":"Add a bootstrap node."},"claim()":{"notice":"Validator claims their released collateral."},"claimRewardForRelayer()":{"notice":"Relayer claims its reward."},"distributeRewardToRelayers(uint256,uint256,uint8)":{"notice":"Distributes rewards to relayers for a specific checkpoint."},"join(bytes)":{"notice":"method that allows a validator to join the subnet. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered."},"kill()":{"notice":"method that allows to kill the subnet when all validators left."},"leave()":{"notice":"method that allows a validator to leave the subnet."},"pause()":{"notice":"Pauses all contract functions with the `whenNotPaused` modifier."},"paused()":{"notice":"sets if to pause the contract"},"preFund()":{"notice":"method to add some initial balance into a subnet that hasn't yet bootstrapped."},"preRelease(uint256)":{"notice":"method to remove funds from the initial balance of a subnet."},"setFederatedPower(address[],bytes[],uint256[])":{"notice":"Sets the federated power of validators."},"stake()":{"notice":"method that allows a validator to increase its stake. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered."},"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"notice":"Submits a batch of bottom-up messages for execution."},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"notice":"Submits a checkpoint commitment for execution."},"unpause()":{"notice":"Unpauses all contract functions with the `whenNotPaused` modifier."},"unstake(uint256)":{"notice":"method that allows a validator to unstake a part of its collateral from a subnet."},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"notice":"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnet/SubnetActorManagerFacet.sol":"SubnetActorManagerFacet"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","id":52152,"exportedSymbols":{"Address":[32838],"BatchWithNoMessages":[37408],"BottomUpCheckpoint":[49932],"BottomUpMsgBatch":[49945],"BottomUpMsgBatchInfo":[49950],"CannotReleaseZero":[37374],"CollateralIsZero":[37390],"ERR_PERMISSIONED_AND_BOOTSTRAPPED":[37535],"ERR_VALIDATOR_JOINED":[37538],"ERR_VALIDATOR_NOT_JOINED":[37541],"EmptyAddress":[37392],"EnumerableSet":[35815],"IGateway":[40354],"ISubnetActor":[40428],"InvalidBatchEpoch":[37406],"InvalidCheckpointEpoch":[37404],"InvalidFederationPayload":[37528],"InvalidPublicKeyLength":[37442],"InvalidSignatureErr":[37438],"LibDiamond":[41682],"LibStaking":[46176],"LibSubnetActor":[47157],"LibValidatorSet":[45293],"MaxMsgsPerBatchExceeded":[37382],"MethodNotAllowed":[37526],"MultisignatureChecker":[43291],"NotAllValidatorsHaveLeft":[37454],"NotEnoughBalance":[37462],"NotEnoughCollateral":[37466],"NotEnoughFunds":[37470],"NotOwnerOfPublicKey":[37480],"NotStakedBefore":[37484],"NotValidator":[37490],"Pausable":[43432],"PermissionMode":[50165],"QuorumObjKind":[50012],"ReentrancyGuard":[44013],"SubnetActorManagerFacet":[52151],"SubnetActorModifiers":[47335],"SubnetAlreadyBootstrapped":[37514],"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH":[36882],"Validator":[50211],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:20968:85","nodes":[{"id":50889,"nodeType":"PragmaDirective","src":"46:23:85","nodes":[],"literals":["solidity","0.8",".19"]},{"id":50891,"nodeType":"ImportDirective","src":"71:81:85","nodes":[],"absolutePath":"src/constants/Constants.sol","file":"../constants/Constants.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":36883,"symbolAliases":[{"foreign":{"id":50890,"name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36882,"src":"79:37:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50895,"nodeType":"ImportDirective","src":"153:122:85","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":50892,"name":"ERR_PERMISSIONED_AND_BOOTSTRAPPED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37535,"src":"161:33:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50893,"name":"ERR_VALIDATOR_JOINED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37538,"src":"196:20:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50894,"name":"ERR_VALIDATOR_NOT_JOINED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37541,"src":"218:24:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50915,"nodeType":"ImportDirective","src":"276:428:85","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":50896,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"284:17:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50897,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"303:23:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50898,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"328:19:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50899,"name":"InvalidFederationPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37528,"src":"349:24:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50900,"name":"SubnetAlreadyBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37514,"src":"375:25:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50901,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"402:14:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50902,"name":"CollateralIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37390,"src":"418:16:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50903,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"436:17:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50904,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37480,"src":"455:19:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50905,"name":"EmptyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37392,"src":"476:12:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50906,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37462,"src":"490:16:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50907,"name":"NotEnoughCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37466,"src":"508:19:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50908,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"529:12:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50909,"name":"NotAllValidatorsHaveLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37454,"src":"543:24:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50910,"name":"NotStakedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37484,"src":"569:15:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50911,"name":"InvalidSignatureErr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37438,"src":"586:19:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50912,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37404,"src":"607:22:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50913,"name":"InvalidPublicKeyLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37442,"src":"631:22:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50914,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"655:16:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50917,"nodeType":"ImportDirective","src":"705:52:85","nodes":[],"absolutePath":"src/interfaces/IGateway.sol","file":"../interfaces/IGateway.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":40355,"symbolAliases":[{"foreign":{"id":50916,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"713:8:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50919,"nodeType":"ImportDirective","src":"758:60:85","nodes":[],"absolutePath":"src/interfaces/ISubnetActor.sol","file":"../interfaces/ISubnetActor.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":40429,"symbolAliases":[{"foreign":{"id":50918,"name":"ISubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40428,"src":"766:12:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50921,"nodeType":"ImportDirective","src":"819:52:85","nodes":[],"absolutePath":"src/structs/Quorum.sol","file":"../structs/Quorum.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":50060,"symbolAliases":[{"foreign":{"id":50920,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"827:13:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50925,"nodeType":"ImportDirective","src":"872:99:85","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":50922,"name":"BottomUpCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49932,"src":"880:18:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50923,"name":"BottomUpMsgBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49945,"src":"900:16:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50924,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49950,"src":"918:20:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50929,"nodeType":"ImportDirective","src":"972:78:85","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":50926,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"980:9:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50927,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"991:12:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50928,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"1005:14:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50931,"nodeType":"ImportDirective","src":"1051:48:85","nodes":[],"absolutePath":"src/lib/LibPausable.sol","file":"../lib/LibPausable.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":43433,"symbolAliases":[{"foreign":{"id":50930,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43432,"src":"1059:8:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50933,"nodeType":"ImportDirective","src":"1100:49:85","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":41683,"symbolAliases":[{"foreign":{"id":50932,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1108:10:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50935,"nodeType":"ImportDirective","src":"1150:74:85","nodes":[],"absolutePath":"src/lib/LibMultisignatureChecker.sol","file":"../lib/LibMultisignatureChecker.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":43292,"symbolAliases":[{"foreign":{"id":50934,"name":"MultisignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43291,"src":"1158:21:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50937,"nodeType":"ImportDirective","src":"1225:62:85","nodes":[],"absolutePath":"src/lib/LibReentrancyGuard.sol","file":"../lib/LibReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":44014,"symbolAliases":[{"foreign":{"id":50936,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44013,"src":"1233:15:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50939,"nodeType":"ImportDirective","src":"1288:70:85","nodes":[],"absolutePath":"src/lib/LibSubnetActorStorage.sol","file":"../lib/LibSubnetActorStorage.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":47336,"symbolAliases":[{"foreign":{"id":50938,"name":"SubnetActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47335,"src":"1296:20:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50942,"nodeType":"ImportDirective","src":"1359:66:85","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":50940,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45293,"src":"1367:15:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":50941,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"1384:10:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50944,"nodeType":"ImportDirective","src":"1426:85:85","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":50943,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"1434:13:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50946,"nodeType":"ImportDirective","src":"1512:65:85","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":50945,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"1520:7:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50948,"nodeType":"ImportDirective","src":"1578:57:85","nodes":[],"absolutePath":"src/lib/LibSubnetActor.sol","file":"../lib/LibSubnetActor.sol","nameLocation":"-1:-1:-1","scope":52152,"sourceUnit":47158,"symbolAliases":[{"foreign":{"id":50947,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"1586:14:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52151,"nodeType":"ContractDefinition","src":"1637:19376:85","nodes":[{"id":50960,"nodeType":"UsingForDirective","src":"1741:49:85","nodes":[],"global":false,"libraryName":{"id":50957,"name":"EnumerableSet","nameLocations":["1747:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"1747:13:85"},"typeName":{"id":50959,"nodeType":"UserDefinedTypeName","pathNode":{"id":50958,"name":"EnumerableSet.AddressSet","nameLocations":["1765:13:85","1779:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"1765:24:85"},"referencedDeclaration":35528,"src":"1765:24:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":50964,"nodeType":"UsingForDirective","src":"1795:39:85","nodes":[],"global":false,"libraryName":{"id":50961,"name":"LibValidatorSet","nameLocations":["1801:15:85"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"1801:15:85"},"typeName":{"id":50963,"nodeType":"UserDefinedTypeName","pathNode":{"id":50962,"name":"ValidatorSet","nameLocations":["1821:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"1821:12:85"},"referencedDeclaration":50190,"src":"1821:12:85","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":50967,"nodeType":"UsingForDirective","src":"1839:34:85","nodes":[],"global":false,"libraryName":{"id":50965,"name":"Address","nameLocations":["1845:7:85"],"nodeType":"IdentifierPath","referencedDeclaration":32838,"src":"1845:7:85"},"typeName":{"id":50966,"name":"address","nodeType":"ElementaryTypeName","src":"1857:15:85","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}},{"id":50974,"nodeType":"EventDefinition","src":"1879:84:85","nodes":[],"anonymous":false,"eventSelector":"d63563b27ce36973f83298826a819cf265baf84d804105df045332d478d6e729","name":"BottomUpCheckpointSubmitted","nameLocation":"1885:27:85","parameters":{"id":50973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50970,"indexed":false,"mutability":"mutable","name":"checkpoint","nameLocation":"1932:10:85","nodeType":"VariableDeclaration","scope":50974,"src":"1913:29:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_memory_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":50969,"nodeType":"UserDefinedTypeName","pathNode":{"id":50968,"name":"BottomUpCheckpoint","nameLocations":["1913:18:85"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"1913:18:85"},"referencedDeclaration":49932,"src":"1913:18:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":50972,"indexed":false,"mutability":"mutable","name":"submitter","nameLocation":"1952:9:85","nodeType":"VariableDeclaration","scope":50974,"src":"1944:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50971,"name":"address","nodeType":"ElementaryTypeName","src":"1944:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1912:50:85"}},{"id":50980,"nodeType":"EventDefinition","src":"1968:67:85","nodes":[],"anonymous":false,"eventSelector":"80a0a4fd3793019c6c7b5b585afa82ddec6688153f00043373aa40b7f98c7684","name":"BottomUpCheckpointExecuted","nameLocation":"1974:26:85","parameters":{"id":50979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50976,"indexed":false,"mutability":"mutable","name":"epoch","nameLocation":"2009:5:85","nodeType":"VariableDeclaration","scope":50980,"src":"2001:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50975,"name":"uint256","nodeType":"ElementaryTypeName","src":"2001:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50978,"indexed":false,"mutability":"mutable","name":"submitter","nameLocation":"2024:9:85","nodeType":"VariableDeclaration","scope":50980,"src":"2016:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50977,"name":"address","nodeType":"ElementaryTypeName","src":"2016:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2000:34:85"}},{"id":50986,"nodeType":"EventDefinition","src":"2040:71:85","nodes":[],"anonymous":false,"eventSelector":"68a21aa05d1dd93ff19ca25c17b08ee04c5707e70b46d2355f126ac379e50e78","name":"NextBottomUpCheckpointExecuted","nameLocation":"2046:30:85","parameters":{"id":50985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50982,"indexed":false,"mutability":"mutable","name":"epoch","nameLocation":"2085:5:85","nodeType":"VariableDeclaration","scope":50986,"src":"2077:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50981,"name":"uint256","nodeType":"ElementaryTypeName","src":"2077:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50984,"indexed":false,"mutability":"mutable","name":"submitter","nameLocation":"2100:9:85","nodeType":"VariableDeclaration","scope":50986,"src":"2092:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50983,"name":"address","nodeType":"ElementaryTypeName","src":"2092:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2076:34:85"}},{"id":50999,"nodeType":"FunctionDefinition","src":"2198:96:85","nodes":[],"body":{"id":50998,"nodeType":"Block","src":"2224:70:85","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50990,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"2234:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":50992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2245:22:85","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":41144,"src":"2234:33:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":50993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2234:35:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50994,"nodeType":"ExpressionStatement","src":"2234:35:85"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":50995,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43391,"src":"2279:6:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":50996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2279:8:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50997,"nodeType":"ExpressionStatement","src":"2279:8:85"}]},"documentation":{"id":50987,"nodeType":"StructuredDocumentation","src":"2117:76:85","text":"@notice Pauses all contract functions with the `whenNotPaused` modifier."},"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[],"name":"pause","nameLocation":"2207:5:85","parameters":{"id":50988,"nodeType":"ParameterList","parameters":[],"src":"2212:2:85"},"returnParameters":{"id":50989,"nodeType":"ParameterList","parameters":[],"src":"2224:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51012,"nodeType":"FunctionDefinition","src":"2383:100:85","nodes":[],"body":{"id":51011,"nodeType":"Block","src":"2411:72:85","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51003,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"2421:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":51005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2432:22:85","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":41144,"src":"2421:33:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2421:35:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51007,"nodeType":"ExpressionStatement","src":"2421:35:85"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":51008,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43416,"src":"2466:8:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":51009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2466:10:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51010,"nodeType":"ExpressionStatement","src":"2466:10:85"}]},"documentation":{"id":51000,"nodeType":"StructuredDocumentation","src":"2300:78:85","text":"@notice Unpauses all contract functions with the `whenNotPaused` modifier."},"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"2392:7:85","parameters":{"id":51001,"nodeType":"ParameterList","parameters":[],"src":"2399:2:85"},"returnParameters":{"id":51002,"nodeType":"ParameterList","parameters":[],"src":"2411:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51154,"nodeType":"FunctionDefinition","src":"2951:2808:85","nodes":[],"body":{"id":51153,"nodeType":"Block","src":"3131:2628:85","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":51040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51027,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"3272:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3283:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3272:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51029,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"3298:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3300:28:85","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47204,"src":"3298:30:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":51031,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"3331:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3333:19:85","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"3331:21:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3298:54:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3272:80:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51035,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"3368:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3379:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3368:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51037,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"3394:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3396:28:85","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47204,"src":"3394:30:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3368:56:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3272:152:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51045,"nodeType":"IfStatement","src":"3255:236:85","trueBody":{"id":51044,"nodeType":"Block","src":"3435:56:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51041,"name":"InvalidCheckpointEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37404,"src":"3456:22:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3456:24:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51043,"nodeType":"RevertStatement","src":"3449:31:85"}]}},{"assignments":[51047],"declarations":[{"constant":false,"id":51047,"mutability":"mutable","name":"checkpointHash","nameLocation":"3508:14:85","nodeType":"VariableDeclaration","scope":51153,"src":"3500:22:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":51046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3500:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":51054,"initialValue":{"arguments":[{"arguments":[{"id":51051,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"3546:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"id":51049,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3535:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":51050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3539:6:85","memberName":"encode","nodeType":"MemberAccess","src":"3535:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":51052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3535:22:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":51048,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3525:9:85","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":51053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3525:33:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3500:58:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51055,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"3573:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3584:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"3573:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51057,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"3599:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3601:28:85","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47204,"src":"3599:30:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":51059,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"3632:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51060,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3634:19:85","memberName":"bottomUpCheckPeriod","nodeType":"MemberAccess","referencedDeclaration":47220,"src":"3632:21:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3599:54:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3573:80:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51114,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"4672:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4683:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"4672:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":51116,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4698:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4700:28:85","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47204,"src":"4698:30:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4672:56:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51151,"nodeType":"IfStatement","src":"4668:1085:85","trueBody":{"id":51150,"nodeType":"Block","src":"4730:1023:85","statements":[{"assignments":[51120],"declarations":[{"constant":false,"id":51120,"mutability":"mutable","name":"lastCheckpointHash","nameLocation":"5430:18:85","nodeType":"VariableDeclaration","scope":51150,"src":"5422:26:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":51119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5422:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":51131,"initialValue":{"arguments":[{"arguments":[{"baseExpression":{"expression":{"id":51124,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"5472:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5474:20:85","memberName":"committedCheckpoints","nodeType":"MemberAccess","referencedDeclaration":47184,"src":"5472:22:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":51128,"indexExpression":{"expression":{"id":51126,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"5495:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5506:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"5495:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5472:46:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}],"expression":{"id":51122,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5461:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":51123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5465:6:85","memberName":"encode","nodeType":"MemberAccess","src":"5461:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":51129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5461:58:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":51121,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5451:9:85","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":51130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:69:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5422:98:85"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":51134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51132,"name":"checkpointHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51047,"src":"5538:14:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":51133,"name":"lastCheckpointHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51120,"src":"5556:18:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5538:36:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51149,"nodeType":"IfStatement","src":"5534:209:85","trueBody":{"id":51148,"nodeType":"Block","src":"5576:167:85","statements":[{"expression":{"arguments":[{"expression":{"id":51144,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5717:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5721:6:85","memberName":"sender","nodeType":"MemberAccess","src":"5717:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":51135,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"5653:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5655:14:85","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"5653:16:85","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":51141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5670:18:85","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":49961,"src":"5653:35:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":51142,"indexExpression":{"expression":{"id":51138,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"5689:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5700:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"5689:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5653:59:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5713:3:85","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"5653:63:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":51146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5653:75:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51147,"nodeType":"ExpressionStatement","src":"5653:75:85"}]}}]}},"id":51152,"nodeType":"IfStatement","src":"3569:2184:85","trueBody":{"id":51113,"nodeType":"Block","src":"3655:1007:85","statements":[{"expression":{"arguments":[{"id":51064,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51019,"src":"3798:11:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":51065,"name":"checkpointHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51047,"src":"3817:14:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":51066,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51022,"src":"3845:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":51063,"name":"validateActiveQuorumSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52150,"src":"3753:30:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,bytes32,bytes memory[] memory) view"}},"id":51067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3785:11:85","3811:4:85","3833:10:85"],"names":["signatories","hash","signatures"],"nodeType":"FunctionCall","src":"3753:104:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51068,"nodeType":"ExpressionStatement","src":"3753:104:85"},{"expression":{"id":51076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":51069,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4112:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4114:20:85","memberName":"committedCheckpoints","nodeType":"MemberAccess","referencedDeclaration":47184,"src":"4112:22:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_BottomUpCheckpoint_$49932_storage_$","typeString":"mapping(uint256 => struct BottomUpCheckpoint storage ref)"}},"id":51074,"indexExpression":{"expression":{"id":51071,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"4135:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4146:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"4135:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4112:46:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51075,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"4161:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"src":"4112:59:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage","typeString":"struct BottomUpCheckpoint storage ref"}},"id":51077,"nodeType":"ExpressionStatement","src":"4112:59:85"},{"expression":{"arguments":[{"expression":{"id":51087,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4305:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4309:6:85","memberName":"sender","nodeType":"MemberAccess","src":"4305:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":51078,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4241:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4243:14:85","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"4241:16:85","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":51084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4258:18:85","memberName":"checkpointRewarded","nodeType":"MemberAccess","referencedDeclaration":49961,"src":"4241:35:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":51085,"indexExpression":{"expression":{"id":51081,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"4277:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4288:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"4277:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4241:59:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4301:3:85","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"4241:63:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":51089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4241:75:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51090,"nodeType":"ExpressionStatement","src":"4241:75:85"},{"expression":{"id":51096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51091,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4331:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4333:28:85","memberName":"lastBottomUpCheckpointHeight","nodeType":"MemberAccess","referencedDeclaration":47204,"src":"4331:30:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":51094,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"4364:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4375:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49925,"src":"4364:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4331:55:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51097,"nodeType":"ExpressionStatement","src":"4331:55:85"},{"expression":{"arguments":[{"id":51103,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"4500:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}],"expression":{"arguments":[{"expression":{"id":51099,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"4465:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4467:14:85","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"4465:16:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51098,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"4456:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":51101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4456:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":51102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4483:16:85","memberName":"commitCheckpoint","nodeType":"MemberAccess","referencedDeclaration":40286,"src":"4456:43:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpCheckpoint_$49932_memory_ptr_$returns$__$","typeString":"function (struct BottomUpCheckpoint memory) external"}},"id":51104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4456:55:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51105,"nodeType":"ExpressionStatement","src":"4456:55:85"},{"expression":{"arguments":[{"expression":{"id":51109,"name":"checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51016,"src":"4616:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint calldata"}},"id":51110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4627:23:85","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":49931,"src":"4616:34:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":51106,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"4591:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4602:13:85","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":46175,"src":"4591:24:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":51111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4591:60:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51112,"nodeType":"ExpressionStatement","src":"4591:60:85"}]}}]},"baseFunctions":[40416],"documentation":{"id":51013,"nodeType":"StructuredDocumentation","src":"2489:457:85","text":"@notice Submits a checkpoint commitment for execution.\n @dev It triggers the commitment of the checkpoint and any other side-effects that\n need to be triggered by the checkpoint such as relayer reward book keeping.\n @param checkpoint The executed bottom-up checkpoint.\n @param signatories The addresses of validators signing the checkpoint.\n @param signatures The signatures of validators on the checkpoint."},"functionSelector":"b9ee2bb9","implemented":true,"kind":"function","modifiers":[{"id":51025,"kind":"modifierInvocation","modifierName":{"id":51024,"name":"whenNotPaused","nameLocations":["3117:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"3117:13:85"},"nodeType":"ModifierInvocation","src":"3117:13:85"}],"name":"submitCheckpoint","nameLocation":"2960:16:85","parameters":{"id":51023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51016,"mutability":"mutable","name":"checkpoint","nameLocation":"3014:10:85","nodeType":"VariableDeclaration","scope":51154,"src":"2986:38:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_calldata_ptr","typeString":"struct BottomUpCheckpoint"},"typeName":{"id":51015,"nodeType":"UserDefinedTypeName","pathNode":{"id":51014,"name":"BottomUpCheckpoint","nameLocations":["2986:18:85"],"nodeType":"IdentifierPath","referencedDeclaration":49932,"src":"2986:18:85"},"referencedDeclaration":49932,"src":"2986:18:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpCheckpoint_$49932_storage_ptr","typeString":"struct BottomUpCheckpoint"}},"visibility":"internal"},{"constant":false,"id":51019,"mutability":"mutable","name":"signatories","nameLocation":"3053:11:85","nodeType":"VariableDeclaration","scope":51154,"src":"3034:30:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":51017,"name":"address","nodeType":"ElementaryTypeName","src":"3034:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51018,"nodeType":"ArrayTypeName","src":"3034:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":51022,"mutability":"mutable","name":"signatures","nameLocation":"3091:10:85","nodeType":"VariableDeclaration","scope":51154,"src":"3074:27:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":51020,"name":"bytes","nodeType":"ElementaryTypeName","src":"3074:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":51021,"nodeType":"ArrayTypeName","src":"3074:7:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"2976:131:85"},"returnParameters":{"id":51026,"nodeType":"ParameterList","parameters":[],"src":"3131:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51294,"nodeType":"FunctionDefinition","src":"6100:2131:85","nodes":[],"body":{"id":51293,"nodeType":"Block","src":"6265:1966:85","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51167,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"6337:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6343:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"6337:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":51169,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"6357:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6359:17:85","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47208,"src":"6357:19:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":51171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6377:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49947,"src":"6357:31:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6337:51:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51177,"nodeType":"IfStatement","src":"6333:108:85","trueBody":{"id":51176,"nodeType":"Block","src":"6390:51:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51173,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"6411:17:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6411:19:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51175,"nodeType":"RevertStatement","src":"6404:26:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":51178,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"6454:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6460:4:85","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"6454:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":51180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6465:6:85","memberName":"length","nodeType":"MemberAccess","src":"6454:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":51181,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"6474:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6476:23:85","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47214,"src":"6474:25:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6454:45:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51188,"nodeType":"IfStatement","src":"6450:108:85","trueBody":{"id":51187,"nodeType":"Block","src":"6501:57:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51184,"name":"MaxMsgsPerBatchExceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37382,"src":"6522:23:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6522:25:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51186,"nodeType":"RevertStatement","src":"6515:32:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":51202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":51189,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"6664:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6670:4:85","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"6664:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":51191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6675:6:85","memberName":"length","nodeType":"MemberAccess","src":"6664:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51192,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"6685:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6687:23:85","memberName":"maxMsgsPerBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47214,"src":"6685:25:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6664:46:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51195,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"6714:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6720:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"6714:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":51197,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"6734:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6736:22:85","memberName":"bottomUpMsgBatchPeriod","nodeType":"MemberAccess","referencedDeclaration":47211,"src":"6734:24:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6714:44:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":51200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6762:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6714:49:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6664:99:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51207,"nodeType":"IfStatement","src":"6660:156:85","trueBody":{"id":51206,"nodeType":"Block","src":"6765:51:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51203,"name":"InvalidBatchEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37406,"src":"6786:17:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6786:19:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51205,"nodeType":"RevertStatement","src":"6779:26:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":51208,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"6829:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6835:4:85","memberName":"msgs","nodeType":"MemberAccess","referencedDeclaration":49944,"src":"6829:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}},"id":51210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6840:6:85","memberName":"length","nodeType":"MemberAccess","src":"6829:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6850:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6829:22:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51217,"nodeType":"IfStatement","src":"6825:81:85","trueBody":{"id":51216,"nodeType":"Block","src":"6853:53:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51213,"name":"BatchWithNoMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37408,"src":"6874:19:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6874:21:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51215,"nodeType":"RevertStatement","src":"6867:28:85"}]}},{"assignments":[51219],"declarations":[{"constant":false,"id":51219,"mutability":"mutable","name":"batchHash","nameLocation":"6924:9:85","nodeType":"VariableDeclaration","scope":51293,"src":"6916:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":51218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6916:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":51226,"initialValue":{"arguments":[{"arguments":[{"id":51223,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"6957:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"id":51221,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6946:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":51222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6950:6:85","memberName":"encode","nodeType":"MemberAccess","src":"6946:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":51224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6946:17:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":51220,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6936:9:85","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":51225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6936:28:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6916:48:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51227,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"6979:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6985:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"6979:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":51229,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"7000:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7002:17:85","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47208,"src":"7000:19:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":51231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7020:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49947,"src":"7000:31:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6979:52:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51291,"nodeType":"Block","src":"7509:716:85","statements":[{"expression":{"arguments":[{"id":51255,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51161,"src":"7652:11:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":51256,"name":"batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51219,"src":"7671:9:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":51257,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51164,"src":"7694:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}],"id":51254,"name":"validateActiveQuorumSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52150,"src":"7607:30:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,bytes32,bytes memory[] memory) view"}},"id":51258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["7639:11:85","7665:4:85","7682:10:85"],"names":["signatories","hash","signatures"],"nodeType":"FunctionCall","src":"7607:99:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51259,"nodeType":"ExpressionStatement","src":"7607:99:85"},{"expression":{"id":51268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51260,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"7884:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7886:17:85","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47208,"src":"7884:19:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":51264,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"7941:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7947:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"7941:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":51266,"name":"batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51219,"src":"7966:9:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":51263,"name":"BottomUpMsgBatchInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49950,"src":"7906:20:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_BottomUpMsgBatchInfo_$49950_storage_ptr_$","typeString":"type(struct BottomUpMsgBatchInfo storage pointer)"}},"id":51267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7928:11:85","7960:4:85"],"names":["blockHeight","hash"],"nodeType":"FunctionCall","src":"7906:71:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_memory_ptr","typeString":"struct BottomUpMsgBatchInfo memory"}},"src":"7884:93:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":51269,"nodeType":"ExpressionStatement","src":"7884:93:85"},{"expression":{"arguments":[{"expression":{"id":51279,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8101:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8105:6:85","memberName":"sender","nodeType":"MemberAccess","src":"8101:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":51270,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"8047:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8049:14:85","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"8047:16:85","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":51276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8064:13:85","memberName":"batchRewarded","nodeType":"MemberAccess","referencedDeclaration":49967,"src":"8047:30:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":51277,"indexExpression":{"expression":{"id":51273,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"8078:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8084:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"8078:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8047:49:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8097:3:85","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"8047:53:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":51281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8047:65:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51282,"nodeType":"ExpressionStatement","src":"8047:65:85"},{"expression":{"arguments":[{"id":51288,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"8208:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}],"expression":{"arguments":[{"expression":{"id":51284,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"8169:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8171:14:85","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"8169:16:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51283,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"8160:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":51286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8160:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":51287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8187:20:85","memberName":"execBottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":40353,"src":"8160:47:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_BottomUpMsgBatch_$49945_memory_ptr_$returns$__$","typeString":"function (struct BottomUpMsgBatch memory) external"}},"id":51289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8160:54:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51290,"nodeType":"ExpressionStatement","src":"8160:54:85"}]},"id":51292,"nodeType":"IfStatement","src":"6975:1250:85","trueBody":{"id":51253,"nodeType":"Block","src":"7033:470:85","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":51237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51233,"name":"batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51219,"src":"7297:9:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":51234,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"7310:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7312:17:85","memberName":"lastBottomUpBatch","nodeType":"MemberAccess","referencedDeclaration":47208,"src":"7310:19:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatchInfo_$49950_storage","typeString":"struct BottomUpMsgBatchInfo storage ref"}},"id":51236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7330:4:85","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":49949,"src":"7310:24:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7297:37:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51252,"nodeType":"IfStatement","src":"7293:200:85","trueBody":{"id":51251,"nodeType":"Block","src":"7336:157:85","statements":[{"expression":{"arguments":[{"expression":{"id":51247,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7467:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7471:6:85","memberName":"sender","nodeType":"MemberAccess","src":"7467:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"expression":{"expression":{"id":51238,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"7413:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7415:14:85","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"7413:16:85","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":51244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7430:13:85","memberName":"batchRewarded","nodeType":"MemberAccess","referencedDeclaration":49967,"src":"7413:30:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_AddressSet_$35528_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.AddressSet storage ref)"}},"id":51245,"indexExpression":{"expression":{"id":51241,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51158,"src":"7444:5:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch calldata"}},"id":51242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7450:11:85","memberName":"blockHeight","nodeType":"MemberAccess","referencedDeclaration":49939,"src":"7444:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7413:49:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7463:3:85","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"7413:53:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":51249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7413:65:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51250,"nodeType":"ExpressionStatement","src":"7413:65:85"}]}}]}}]},"documentation":{"id":51155,"nodeType":"StructuredDocumentation","src":"5765:330:85","text":"@notice Submits a batch of bottom-up messages for execution.\n @dev It triggers the execution of a cross-net message batch.\n @param batch The batch of bottom-up messages.\n @param signatories The addresses of validators signing the batch.\n @param signatures The signatures of validators on the batch."},"functionSelector":"26811936","implemented":true,"kind":"function","modifiers":[],"name":"submitBottomUpMsgBatch","nameLocation":"6109:22:85","parameters":{"id":51165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51158,"mutability":"mutable","name":"batch","nameLocation":"6167:5:85","nodeType":"VariableDeclaration","scope":51294,"src":"6141:31:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_calldata_ptr","typeString":"struct BottomUpMsgBatch"},"typeName":{"id":51157,"nodeType":"UserDefinedTypeName","pathNode":{"id":51156,"name":"BottomUpMsgBatch","nameLocations":["6141:16:85"],"nodeType":"IdentifierPath","referencedDeclaration":49945,"src":"6141:16:85"},"referencedDeclaration":49945,"src":"6141:16:85","typeDescriptions":{"typeIdentifier":"t_struct$_BottomUpMsgBatch_$49945_storage_ptr","typeString":"struct BottomUpMsgBatch"}},"visibility":"internal"},{"constant":false,"id":51161,"mutability":"mutable","name":"signatories","nameLocation":"6201:11:85","nodeType":"VariableDeclaration","scope":51294,"src":"6182:30:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":51159,"name":"address","nodeType":"ElementaryTypeName","src":"6182:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51160,"nodeType":"ArrayTypeName","src":"6182:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":51164,"mutability":"mutable","name":"signatures","nameLocation":"6239:10:85","nodeType":"VariableDeclaration","scope":51294,"src":"6222:27:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":51162,"name":"bytes","nodeType":"ElementaryTypeName","src":"6222:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":51163,"nodeType":"ArrayTypeName","src":"6222:7:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"6131:124:85"},"returnParameters":{"id":51166,"nodeType":"ParameterList","parameters":[],"src":"6265:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51350,"nodeType":"FunctionDefinition","src":"8457:414:85","nodes":[],"body":{"id":51349,"nodeType":"Block","src":"8493:378:85","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51298,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8507:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8511:5:85","memberName":"value","nodeType":"MemberAccess","src":"8507:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8520:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8507:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51306,"nodeType":"IfStatement","src":"8503:68:85","trueBody":{"id":51305,"nodeType":"Block","src":"8523:48:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51302,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"8544:14:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8544:16:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51304,"nodeType":"RevertStatement","src":"8537:23:85"}]}},{"condition":{"expression":{"id":51307,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"8585:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8587:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"8585:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51313,"nodeType":"IfStatement","src":"8581:79:85","trueBody":{"id":51312,"nodeType":"Block","src":"8601:59:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51309,"name":"SubnetAlreadyBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37514,"src":"8622:25:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8622:27:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51311,"nodeType":"RevertStatement","src":"8615:34:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":51314,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"8674:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8676:14:85","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"8674:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51318,"indexExpression":{"expression":{"id":51316,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8691:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8695:6:85","memberName":"sender","nodeType":"MemberAccess","src":"8691:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8674:28:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8706:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8674:33:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51331,"nodeType":"IfStatement","src":"8670:101:85","trueBody":{"id":51330,"nodeType":"Block","src":"8709:62:85","statements":[{"expression":{"arguments":[{"expression":{"id":51326,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8749:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8753:6:85","memberName":"sender","nodeType":"MemberAccess","src":"8749:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":51321,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"8723:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8725:18:85","memberName":"genesisBalanceKeys","nodeType":"MemberAccess","referencedDeclaration":47201,"src":"8723:20:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":51325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8744:4:85","memberName":"push","nodeType":"MemberAccess","src":"8723:25:85","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":51328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8723:37:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51329,"nodeType":"ExpressionStatement","src":"8723:37:85"}]}},{"expression":{"id":51340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":51332,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"8781:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8783:14:85","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"8781:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51337,"indexExpression":{"expression":{"id":51334,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8798:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8802:6:85","memberName":"sender","nodeType":"MemberAccess","src":"8798:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8781:28:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":51338,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8813:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8817:5:85","memberName":"value","nodeType":"MemberAccess","src":"8813:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8781:41:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51341,"nodeType":"ExpressionStatement","src":"8781:41:85"},{"expression":{"id":51347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51342,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"8832:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8834:17:85","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"8832:19:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":51345,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8855:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8859:5:85","memberName":"value","nodeType":"MemberAccess","src":"8855:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8832:32:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51348,"nodeType":"ExpressionStatement","src":"8832:32:85"}]},"baseFunctions":[40379],"documentation":{"id":51295,"nodeType":"StructuredDocumentation","src":"8237:215:85","text":"@notice method to add some initial balance into a subnet that hasn't yet bootstrapped.\n @dev This balance is added to user addresses in genesis, and becomes part of the genesis\n circulating supply."},"functionSelector":"0b7fbe60","implemented":true,"kind":"function","modifiers":[],"name":"preFund","nameLocation":"8466:7:85","parameters":{"id":51296,"nodeType":"ParameterList","parameters":[],"src":"8473:2:85"},"returnParameters":{"id":51297,"nodeType":"ParameterList","parameters":[],"src":"8493:0:85"},"scope":52151,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":51426,"nodeType":"FunctionDefinition","src":"9131:591:85","nodes":[],"body":{"id":51425,"nodeType":"Block","src":"9189:533:85","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51358,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51353,"src":"9203:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9213:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9203:11:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51365,"nodeType":"IfStatement","src":"9199:65:85","trueBody":{"id":51364,"nodeType":"Block","src":"9216:48:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51361,"name":"NotEnoughFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37470,"src":"9237:14:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9237:16:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51363,"nodeType":"RevertStatement","src":"9230:23:85"}]}},{"condition":{"expression":{"id":51366,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"9278:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9280:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"9278:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51372,"nodeType":"IfStatement","src":"9274:79:85","trueBody":{"id":51371,"nodeType":"Block","src":"9294:59:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51368,"name":"SubnetAlreadyBootstrapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37514,"src":"9315:25:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9315:27:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51370,"nodeType":"RevertStatement","src":"9308:34:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":51373,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"9367:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9369:14:85","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"9367:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51377,"indexExpression":{"expression":{"id":51375,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9384:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9388:6:85","memberName":"sender","nodeType":"MemberAccess","src":"9384:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9367:28:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":51378,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51353,"src":"9398:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9367:37:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51384,"nodeType":"IfStatement","src":"9363:93:85","trueBody":{"id":51383,"nodeType":"Block","src":"9406:50:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51380,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37462,"src":"9427:16:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9427:18:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51382,"nodeType":"RevertStatement","src":"9420:25:85"}]}},{"expression":{"id":51392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":51385,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"9466:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9468:14:85","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"9466:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51390,"indexExpression":{"expression":{"id":51387,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9483:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9487:6:85","memberName":"sender","nodeType":"MemberAccess","src":"9483:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9466:28:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":51391,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51353,"src":"9498:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9466:38:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51393,"nodeType":"ExpressionStatement","src":"9466:38:85"},{"expression":{"id":51398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51394,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"9514:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9516:17:85","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"9514:19:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":51397,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51353,"src":"9537:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9514:29:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51399,"nodeType":"ExpressionStatement","src":"9514:29:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":51400,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"9558:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9560:14:85","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"9558:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51404,"indexExpression":{"expression":{"id":51402,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9575:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9579:6:85","memberName":"sender","nodeType":"MemberAccess","src":"9575:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9558:28:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9590:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9558:33:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51415,"nodeType":"IfStatement","src":"9554:114:85","trueBody":{"id":51414,"nodeType":"Block","src":"9593:75:85","statements":[{"expression":{"arguments":[{"expression":{"id":51410,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9646:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9650:6:85","memberName":"sender","nodeType":"MemberAccess","src":"9646:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51407,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"9607:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9622:23:85","memberName":"rmAddressFromBalanceKey","nodeType":"MemberAccess","referencedDeclaration":47156,"src":"9607:38:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":51412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9607:50:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51413,"nodeType":"ExpressionStatement","src":"9607:50:85"}]}},{"expression":{"arguments":[{"id":51422,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51353,"src":"9708:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":51418,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9686:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9690:6:85","memberName":"sender","nodeType":"MemberAccess","src":"9686:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9678:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":51416,"name":"address","nodeType":"ElementaryTypeName","src":"9678:8:85","stateMutability":"payable","typeDescriptions":{}}},"id":51420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9678:19:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":51421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9698:9:85","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"9678:29:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":51423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9678:37:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51424,"nodeType":"ExpressionStatement","src":"9678:37:85"}]},"baseFunctions":[40385],"documentation":{"id":51351,"nodeType":"StructuredDocumentation","src":"8877:249:85","text":"@notice method to remove funds from the initial balance of a subnet.\n @dev This method can be used by users looking to recover part of their\n initial balance before the subnet bootstraps.\n @param amount The amount to remove."},"functionSelector":"66783c9b","implemented":true,"kind":"function","modifiers":[{"id":51356,"kind":"modifierInvocation","modifierName":{"id":51355,"name":"nonReentrant","nameLocations":["9176:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"9176:12:85"},"nodeType":"ModifierInvocation","src":"9176:12:85"}],"name":"preRelease","nameLocation":"9140:10:85","parameters":{"id":51354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51353,"mutability":"mutable","name":"amount","nameLocation":"9159:6:85","nodeType":"VariableDeclaration","scope":51426,"src":"9151:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51352,"name":"uint256","nodeType":"ElementaryTypeName","src":"9151:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9150:16:85"},"returnParameters":{"id":51357,"nodeType":"ParameterList","parameters":[],"src":"9189:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51493,"nodeType":"FunctionDefinition","src":"10060:728:85","nodes":[],"body":{"id":51492,"nodeType":"Block","src":"10223:565:85","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51441,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"10233:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":51443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10244:22:85","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":41144,"src":"10233:33:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10233:35:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51445,"nodeType":"ExpressionStatement","src":"10233:35:85"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51446,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"10279:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10294:26:85","memberName":"enforceFederatedValidation","nodeType":"MemberAccess","referencedDeclaration":46765,"src":"10279:41:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10279:43:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51450,"nodeType":"ExpressionStatement","src":"10279:43:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51451,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51430,"src":"10337:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":51452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10348:6:85","memberName":"length","nodeType":"MemberAccess","src":"10337:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51453,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51436,"src":"10358:6:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":51454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10365:6:85","memberName":"length","nodeType":"MemberAccess","src":"10358:13:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10337:34:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51460,"nodeType":"IfStatement","src":"10333:98:85","trueBody":{"id":51459,"nodeType":"Block","src":"10373:58:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51456,"name":"InvalidFederationPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37528,"src":"10394:24:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10394:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51458,"nodeType":"RevertStatement","src":"10387:33:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51461,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51430,"src":"10445:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":51462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10456:6:85","memberName":"length","nodeType":"MemberAccess","src":"10445:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51463,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51433,"src":"10466:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":51464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10477:6:85","memberName":"length","nodeType":"MemberAccess","src":"10466:17:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10445:38:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51470,"nodeType":"IfStatement","src":"10441:102:85","trueBody":{"id":51469,"nodeType":"Block","src":"10485:58:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51466,"name":"InvalidFederationPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37528,"src":"10506:24:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10506:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51468,"nodeType":"RevertStatement","src":"10499:33:85"}]}},{"condition":{"expression":{"id":51471,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"10557:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10559:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"10557:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51490,"nodeType":"Block","src":"10681:101:85","statements":[{"expression":{"arguments":[{"id":51485,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51430,"src":"10740:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":51486,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51433,"src":"10752:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":51487,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51436,"src":"10764:6:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}],"expression":{"id":51482,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"10695:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10710:29:85","memberName":"preBootstrapSetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":47032,"src":"10695:44:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$","typeString":"function (address[] calldata,bytes calldata[] calldata,uint256[] calldata)"}},"id":51488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10695:76:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51489,"nodeType":"ExpressionStatement","src":"10695:76:85"}]},"id":51491,"nodeType":"IfStatement","src":"10553:229:85","trueBody":{"id":51481,"nodeType":"Block","src":"10573:102:85","statements":[{"expression":{"arguments":[{"id":51476,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51430,"src":"10633:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":51477,"name":"publicKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51433,"src":"10645:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":51478,"name":"powers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51436,"src":"10657:6:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}],"expression":{"id":51473,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"10587:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10602:30:85","memberName":"postBootstrapSetFederatedPower","nodeType":"MemberAccess","referencedDeclaration":47095,"src":"10587:45:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$","typeString":"function (address[] calldata,bytes calldata[] calldata,uint256[] calldata)"}},"id":51479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10587:77:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51480,"nodeType":"ExpressionStatement","src":"10587:77:85"}]}}]},"documentation":{"id":51427,"nodeType":"StructuredDocumentation","src":"9728:327:85","text":"@notice Sets the federated power of validators.\n @dev method that allows the contract owner to set the validators' federated power.\n @param validators The addresses of validators.\n @param publicKeys The public keys of validators.\n @param powers The federated powers to be assigned to validators."},"functionSelector":"da5d09ee","implemented":true,"kind":"function","modifiers":[{"id":51439,"kind":"modifierInvocation","modifierName":{"id":51438,"name":"notKilled","nameLocations":["10213:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":47334,"src":"10213:9:85"},"nodeType":"ModifierInvocation","src":"10213:9:85"}],"name":"setFederatedPower","nameLocation":"10069:17:85","parameters":{"id":51437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51430,"mutability":"mutable","name":"validators","nameLocation":"10115:10:85","nodeType":"VariableDeclaration","scope":51493,"src":"10096:29:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":51428,"name":"address","nodeType":"ElementaryTypeName","src":"10096:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51429,"nodeType":"ArrayTypeName","src":"10096:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":51433,"mutability":"mutable","name":"publicKeys","nameLocation":"10152:10:85","nodeType":"VariableDeclaration","scope":51493,"src":"10135:27:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":51431,"name":"bytes","nodeType":"ElementaryTypeName","src":"10135:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":51432,"nodeType":"ArrayTypeName","src":"10135:7:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":51436,"mutability":"mutable","name":"powers","nameLocation":"10191:6:85","nodeType":"VariableDeclaration","scope":51493,"src":"10172:25:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":51434,"name":"uint256","nodeType":"ElementaryTypeName","src":"10172:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51435,"nodeType":"ArrayTypeName","src":"10172:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"10086:117:85"},"returnParameters":{"id":51440,"nodeType":"ParameterList","parameters":[],"src":"10223:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51605,"nodeType":"FunctionDefinition","src":"11177:1714:85","nodes":[],"body":{"id":51604,"nodeType":"Block","src":"11271:1620:85","nodes":[],"statements":[{"condition":{"expression":{"id":51505,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"11499:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11501:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"11499:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51513,"nodeType":"IfStatement","src":"11495:89:85","trueBody":{"id":51512,"nodeType":"Block","src":"11515:69:85","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51507,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"11529:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11544:27:85","memberName":"enforceCollateralValidation","nodeType":"MemberAccess","referencedDeclaration":46740,"src":"11529:42:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11529:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51511,"nodeType":"ExpressionStatement","src":"11529:44:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51514,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11597:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11601:5:85","memberName":"value","nodeType":"MemberAccess","src":"11597:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11610:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11597:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51522,"nodeType":"IfStatement","src":"11593:70:85","trueBody":{"id":51521,"nodeType":"Block","src":"11613:50:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51518,"name":"CollateralIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37390,"src":"11634:16:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11634:18:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51520,"nodeType":"RevertStatement","src":"11627:25:85"}]}},{"condition":{"arguments":[{"expression":{"id":51525,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11700:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11704:6:85","memberName":"sender","nodeType":"MemberAccess","src":"11700:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51523,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"11677:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11688:11:85","memberName":"isValidator","nodeType":"MemberAccess","referencedDeclaration":45409,"src":"11677:22:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":51527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11677:34:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51533,"nodeType":"IfStatement","src":"11673:110:85","trueBody":{"id":51532,"nodeType":"Block","src":"11713:70:85","statements":[{"errorCall":{"arguments":[{"id":51529,"name":"ERR_VALIDATOR_JOINED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37538,"src":"11751:20:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":51528,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"11734:16:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":51530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11734:38:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51531,"nodeType":"RevertStatement","src":"11727:45:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51534,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"11797:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":51535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11807:6:85","memberName":"length","nodeType":"MemberAccess","src":"11797:16:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":51536,"name":"VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36882,"src":"11817:37:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11797:57:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51542,"nodeType":"IfStatement","src":"11793:232:85","trueBody":{"id":51541,"nodeType":"Block","src":"11856:169:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51538,"name":"InvalidPublicKeyLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37442,"src":"11990:22:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11990:24:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51540,"nodeType":"RevertStatement","src":"11983:31:85"}]}},{"assignments":[51544],"declarations":[{"constant":false,"id":51544,"mutability":"mutable","name":"convertedAddress","nameLocation":"12043:16:85","nodeType":"VariableDeclaration","scope":51604,"src":"12035:24:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51543,"name":"address","nodeType":"ElementaryTypeName","src":"12035:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51549,"initialValue":{"arguments":[{"id":51547,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"12096:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51545,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"12062:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12077:18:85","memberName":"publicKeyToAddress","nodeType":"MemberAccess","referencedDeclaration":46891,"src":"12062:33:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_address_$","typeString":"function (bytes calldata) pure returns (address)"}},"id":51548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12062:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12035:71:85"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51550,"name":"convertedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51544,"src":"12120:16:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51551,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12140:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12144:6:85","memberName":"sender","nodeType":"MemberAccess","src":"12140:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12120:30:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51558,"nodeType":"IfStatement","src":"12116:89:85","trueBody":{"id":51557,"nodeType":"Block","src":"12152:53:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51554,"name":"NotOwnerOfPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37480,"src":"12173:19:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12173:21:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51556,"nodeType":"RevertStatement","src":"12166:28:85"}]}},{"condition":{"id":51561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12219:15:85","subExpression":{"expression":{"id":51559,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"12220:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12222:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"12220:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51602,"nodeType":"Block","src":"12665:220:85","statements":[{"expression":{"arguments":[{"expression":{"id":51588,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12797:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12801:6:85","memberName":"sender","nodeType":"MemberAccess","src":"12797:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51590,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"12809:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51585,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"12765:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12776:20:85","memberName":"setValidatorMetadata","nodeType":"MemberAccess","referencedDeclaration":45791,"src":"12765:31:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,bytes calldata)"}},"id":51591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12765:54:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51592,"nodeType":"ExpressionStatement","src":"12765:54:85"},{"expression":{"arguments":[{"expression":{"id":51596,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12852:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12856:6:85","memberName":"sender","nodeType":"MemberAccess","src":"12852:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51598,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12864:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12868:5:85","memberName":"value","nodeType":"MemberAccess","src":"12864:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51593,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"12833:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12844:7:85","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":45825,"src":"12833:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12833:41:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51601,"nodeType":"ExpressionStatement","src":"12833:41:85"}]},"id":51603,"nodeType":"IfStatement","src":"12215:670:85","trueBody":{"id":51584,"nodeType":"Block","src":"12236:423:85","statements":[{"expression":{"arguments":[{"expression":{"id":51565,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12505:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12509:6:85","memberName":"sender","nodeType":"MemberAccess","src":"12505:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51567,"name":"publicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"12517:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51562,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"12471:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12482:22:85","memberName":"setMetadataWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45587,"src":"12471:33:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,bytes calldata)"}},"id":51568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12471:56:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51569,"nodeType":"ExpressionStatement","src":"12471:56:85"},{"expression":{"arguments":[{"expression":{"id":51573,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12571:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12575:6:85","memberName":"sender","nodeType":"MemberAccess","src":"12571:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51575,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12583:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12587:5:85","memberName":"value","nodeType":"MemberAccess","src":"12583:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51570,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"12541:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12552:18:85","memberName":"depositWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45696,"src":"12541:29:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12541:52:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51578,"nodeType":"ExpressionStatement","src":"12541:52:85"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51579,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"12608:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12623:23:85","memberName":"bootstrapSubnetIfNeeded","nodeType":"MemberAccess","referencedDeclaration":46822,"src":"12608:38:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":51582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12608:40:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51583,"nodeType":"ExpressionStatement","src":"12608:40:85"}]}}]},"baseFunctions":[40367],"documentation":{"id":51494,"nodeType":"StructuredDocumentation","src":"10794:378:85","text":"@notice method that allows a validator to join the subnet.\n If the total confirmed collateral of the subnet is greater\n or equal to minimum activation collateral as a result of this operation,\n then subnet will be registered.\n @param publicKey The off-chain 65 byte public key that should be associated with the validator"},"functionSelector":"6170b162","implemented":true,"kind":"function","modifiers":[{"id":51499,"kind":"modifierInvocation","modifierName":{"id":51498,"name":"nonReentrant","nameLocations":["11234:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"11234:12:85"},"nodeType":"ModifierInvocation","src":"11234:12:85"},{"id":51501,"kind":"modifierInvocation","modifierName":{"id":51500,"name":"whenNotPaused","nameLocations":["11247:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"11247:13:85"},"nodeType":"ModifierInvocation","src":"11247:13:85"},{"id":51503,"kind":"modifierInvocation","modifierName":{"id":51502,"name":"notKilled","nameLocations":["11261:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":47334,"src":"11261:9:85"},"nodeType":"ModifierInvocation","src":"11261:9:85"}],"name":"join","nameLocation":"11186:4:85","parameters":{"id":51497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51496,"mutability":"mutable","name":"publicKey","nameLocation":"11206:9:85","nodeType":"VariableDeclaration","scope":51605,"src":"11191:24:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51495,"name":"bytes","nodeType":"ElementaryTypeName","src":"11191:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11190:26:85"},"returnParameters":{"id":51504,"nodeType":"ParameterList","parameters":[],"src":"11271:0:85"},"scope":52151,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":51669,"nodeType":"FunctionDefinition","src":"13180:696:85","nodes":[],"body":{"id":51668,"nodeType":"Block","src":"13238:638:85","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51613,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"13386:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13401:27:85","memberName":"enforceCollateralValidation","nodeType":"MemberAccess","referencedDeclaration":46740,"src":"13386:42:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13386:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51617,"nodeType":"ExpressionStatement","src":"13386:44:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51618,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13444:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13448:5:85","memberName":"value","nodeType":"MemberAccess","src":"13444:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13457:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13444:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51626,"nodeType":"IfStatement","src":"13440:70:85","trueBody":{"id":51625,"nodeType":"Block","src":"13460:50:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51622,"name":"CollateralIsZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37390,"src":"13481:16:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13481:18:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51624,"nodeType":"RevertStatement","src":"13474:25:85"}]}},{"condition":{"id":51632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13524:35:85","subExpression":{"arguments":[{"expression":{"id":51629,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13548:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13552:6:85","memberName":"sender","nodeType":"MemberAccess","src":"13548:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51627,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"13525:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13536:11:85","memberName":"isValidator","nodeType":"MemberAccess","referencedDeclaration":45409,"src":"13525:22:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":51631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13525:34:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51638,"nodeType":"IfStatement","src":"13520:115:85","trueBody":{"id":51637,"nodeType":"Block","src":"13561:74:85","statements":[{"errorCall":{"arguments":[{"id":51634,"name":"ERR_VALIDATOR_NOT_JOINED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37541,"src":"13599:24:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":51633,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"13582:16:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":51635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13582:42:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51636,"nodeType":"RevertStatement","src":"13575:49:85"}]}},{"condition":{"id":51641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13649:15:85","subExpression":{"expression":{"id":51639,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"13650:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13652:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"13650:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51666,"nodeType":"Block","src":"13804:66:85","statements":[{"expression":{"arguments":[{"expression":{"id":51660,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13837:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13841:6:85","memberName":"sender","nodeType":"MemberAccess","src":"13837:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51662,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13849:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13853:5:85","memberName":"value","nodeType":"MemberAccess","src":"13849:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51657,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"13818:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13829:7:85","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":45825,"src":"13818:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13818:41:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51665,"nodeType":"ExpressionStatement","src":"13818:41:85"}]},"id":51667,"nodeType":"IfStatement","src":"13645:225:85","trueBody":{"id":51656,"nodeType":"Block","src":"13666:132:85","statements":[{"expression":{"arguments":[{"expression":{"id":51645,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13710:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13714:6:85","memberName":"sender","nodeType":"MemberAccess","src":"13710:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51647,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13722:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13726:5:85","memberName":"value","nodeType":"MemberAccess","src":"13722:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51642,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"13680:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13691:18:85","memberName":"depositWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45696,"src":"13680:29:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13680:52:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51650,"nodeType":"ExpressionStatement","src":"13680:52:85"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51651,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"13747:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13762:23:85","memberName":"bootstrapSubnetIfNeeded","nodeType":"MemberAccess","referencedDeclaration":46822,"src":"13747:38:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":51654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13747:40:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51655,"nodeType":"ExpressionStatement","src":"13747:40:85"}]}}]},"baseFunctions":[40375],"documentation":{"id":51606,"nodeType":"StructuredDocumentation","src":"12897:278:85","text":"@notice method that allows a validator to increase its stake.\n If the total confirmed collateral of the subnet is greater\n or equal to minimum activation collateral as a result of this operation,\n then subnet will be registered."},"functionSelector":"3a4b66f1","implemented":true,"kind":"function","modifiers":[{"id":51609,"kind":"modifierInvocation","modifierName":{"id":51608,"name":"whenNotPaused","nameLocations":["13214:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"13214:13:85"},"nodeType":"ModifierInvocation","src":"13214:13:85"},{"id":51611,"kind":"modifierInvocation","modifierName":{"id":51610,"name":"notKilled","nameLocations":["13228:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":47334,"src":"13228:9:85"},"nodeType":"ModifierInvocation","src":"13228:9:85"}],"name":"stake","nameLocation":"13189:5:85","parameters":{"id":51607,"nodeType":"ParameterList","parameters":[],"src":"13194:2:85"},"returnParameters":{"id":51612,"nodeType":"ParameterList","parameters":[],"src":"13238:0:85"},"scope":52151,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":51741,"nodeType":"FunctionDefinition","src":"14088:782:85","nodes":[],"body":{"id":51740,"nodeType":"Block","src":"14154:716:85","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51679,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"14312:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14327:27:85","memberName":"enforceCollateralValidation","nodeType":"MemberAccess","referencedDeclaration":46740,"src":"14312:42:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14312:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51683,"nodeType":"ExpressionStatement","src":"14312:44:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51684,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51672,"src":"14371:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14381:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14371:11:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51691,"nodeType":"IfStatement","src":"14367:68:85","trueBody":{"id":51690,"nodeType":"Block","src":"14384:51:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51687,"name":"CannotReleaseZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37374,"src":"14405:17:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14405:19:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51689,"nodeType":"RevertStatement","src":"14398:26:85"}]}},{"assignments":[51693],"declarations":[{"constant":false,"id":51693,"mutability":"mutable","name":"collateral","nameLocation":"14453:10:85","nodeType":"VariableDeclaration","scope":51740,"src":"14445:18:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51692,"name":"uint256","nodeType":"ElementaryTypeName","src":"14445:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51699,"initialValue":{"arguments":[{"expression":{"id":51696,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14502:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14506:6:85","memberName":"sender","nodeType":"MemberAccess","src":"14502:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51694,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"14466:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14477:24:85","memberName":"totalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":45537,"src":"14466:35:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":51698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14466:47:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14445:68:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51700,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51693,"src":"14528:10:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14542:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14528:15:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51709,"nodeType":"IfStatement","src":"14524:77:85","trueBody":{"id":51708,"nodeType":"Block","src":"14545:56:85","statements":[{"errorCall":{"arguments":[{"expression":{"id":51704,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14579:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14583:6:85","memberName":"sender","nodeType":"MemberAccess","src":"14579:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51703,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"14566:12:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":51706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14566:24:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51707,"nodeType":"RevertStatement","src":"14559:31:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51710,"name":"collateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51693,"src":"14614:10:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":51711,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51672,"src":"14628:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14614:20:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51717,"nodeType":"IfStatement","src":"14610:79:85","trueBody":{"id":51716,"nodeType":"Block","src":"14636:53:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51713,"name":"NotEnoughCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37466,"src":"14657:19:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14657:21:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51715,"nodeType":"RevertStatement","src":"14650:28:85"}]}},{"condition":{"id":51720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14702:15:85","subExpression":{"expression":{"id":51718,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"14703:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14705:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"14703:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51731,"nodeType":"IfStatement","src":"14698:116:85","trueBody":{"id":51730,"nodeType":"Block","src":"14719:95:85","statements":[{"expression":{"arguments":[{"expression":{"id":51724,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14764:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14768:6:85","memberName":"sender","nodeType":"MemberAccess","src":"14764:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51672,"src":"14776:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51721,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"14733:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14744:19:85","memberName":"withdrawWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45738,"src":"14733:30:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14733:50:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51728,"nodeType":"ExpressionStatement","src":"14733:50:85"},{"functionReturnParameters":51678,"id":51729,"nodeType":"Return","src":"14797:7:85"}]}},{"expression":{"arguments":[{"expression":{"id":51735,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14844:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14848:6:85","memberName":"sender","nodeType":"MemberAccess","src":"14844:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51737,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51672,"src":"14856:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51732,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"14824:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14835:8:85","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":45859,"src":"14824:19:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14824:39:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51739,"nodeType":"ExpressionStatement","src":"14824:39:85"}]},"baseFunctions":[40391],"documentation":{"id":51670,"nodeType":"StructuredDocumentation","src":"13882:201:85","text":"@notice method that allows a validator to unstake a part of its collateral from a subnet.\n @dev `leave` must be used to unstake the entire stake.\n @param amount The amount to unstake."},"functionSelector":"2e17de78","implemented":true,"kind":"function","modifiers":[{"id":51675,"kind":"modifierInvocation","modifierName":{"id":51674,"name":"whenNotPaused","nameLocations":["14130:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"14130:13:85"},"nodeType":"ModifierInvocation","src":"14130:13:85"},{"id":51677,"kind":"modifierInvocation","modifierName":{"id":51676,"name":"notKilled","nameLocations":["14144:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":47334,"src":"14144:9:85"},"nodeType":"ModifierInvocation","src":"14144:9:85"}],"name":"unstake","nameLocation":"14097:7:85","parameters":{"id":51673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51672,"mutability":"mutable","name":"amount","nameLocation":"14113:6:85","nodeType":"VariableDeclaration","scope":51741,"src":"14105:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51671,"name":"uint256","nodeType":"ElementaryTypeName","src":"14105:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14104:16:85"},"returnParameters":{"id":51678,"nodeType":"ParameterList","parameters":[],"src":"14154:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51861,"nodeType":"FunctionDefinition","src":"14944:1550:85","nodes":[],"body":{"id":51860,"nodeType":"Block","src":"15007:1487:85","nodes":[],"statements":[{"condition":{"expression":{"id":51751,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"15345:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15347:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"15345:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51759,"nodeType":"IfStatement","src":"15341:89:85","trueBody":{"id":51758,"nodeType":"Block","src":"15361:69:85","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51753,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"15375:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15390:27:85","memberName":"enforceCollateralValidation","nodeType":"MemberAccess","referencedDeclaration":46740,"src":"15375:42:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15375:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51757,"nodeType":"ExpressionStatement","src":"15375:44:85"}]}},{"assignments":[51761],"declarations":[{"constant":false,"id":51761,"mutability":"mutable","name":"amount","nameLocation":"15506:6:85","nodeType":"VariableDeclaration","scope":51860,"src":"15498:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51760,"name":"uint256","nodeType":"ElementaryTypeName","src":"15498:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51767,"initialValue":{"arguments":[{"expression":{"id":51764,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15551:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15555:6:85","memberName":"sender","nodeType":"MemberAccess","src":"15551:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51762,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"15515:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15526:24:85","memberName":"totalValidatorCollateral","nodeType":"MemberAccess","referencedDeclaration":45537,"src":"15515:35:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":51766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15515:47:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15498:64:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51768,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51761,"src":"15576:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15586:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15576:11:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51777,"nodeType":"IfStatement","src":"15572:73:85","trueBody":{"id":51776,"nodeType":"Block","src":"15589:56:85","statements":[{"errorCall":{"arguments":[{"expression":{"id":51772,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15623:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15627:6:85","memberName":"sender","nodeType":"MemberAccess","src":"15623:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51771,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"15610:12:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":51774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15610:24:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51775,"nodeType":"RevertStatement","src":"15603:31:85"}]}},{"expression":{"arguments":[{"expression":{"id":51783,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15731:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15735:6:85","memberName":"sender","nodeType":"MemberAccess","src":"15731:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":51778,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"15706:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15708:15:85","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":47276,"src":"15706:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15724:6:85","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":35582,"src":"15706:24:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":51785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15706:36:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51786,"nodeType":"ExpressionStatement","src":"15706:36:85"},{"expression":{"id":51792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"15752:35:85","subExpression":{"baseExpression":{"expression":{"id":51787,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"15759:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15761:14:85","memberName":"bootstrapNodes","nodeType":"MemberAccess","referencedDeclaration":47272,"src":"15759:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":51791,"indexExpression":{"expression":{"id":51789,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15776:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15780:6:85","memberName":"sender","nodeType":"MemberAccess","src":"15776:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15759:28:85","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51793,"nodeType":"ExpressionStatement","src":"15752:35:85"},{"condition":{"id":51796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15802:15:85","subExpression":{"expression":{"id":51794,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"15803:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15805:12:85","memberName":"bootstrapped","nodeType":"MemberAccess","referencedDeclaration":47245,"src":"15803:14:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51851,"nodeType":"IfStatement","src":"15798:641:85","trueBody":{"id":51850,"nodeType":"Block","src":"15819:620:85","statements":[{"assignments":[51798],"declarations":[{"constant":false,"id":51798,"mutability":"mutable","name":"genesisBalance","nameLocation":"15938:14:85","nodeType":"VariableDeclaration","scope":51850,"src":"15930:22:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51797,"name":"uint256","nodeType":"ElementaryTypeName","src":"15930:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51804,"initialValue":{"baseExpression":{"expression":{"id":51799,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"15955:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15957:14:85","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"15955:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51803,"indexExpression":{"expression":{"id":51801,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15972:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15976:6:85","memberName":"sender","nodeType":"MemberAccess","src":"15972:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15955:28:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15930:53:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51805,"name":"genesisBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51798,"src":"16001:14:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":51806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16019:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16001:19:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51840,"nodeType":"IfStatement","src":"15997:277:85","trueBody":{"id":51839,"nodeType":"Block","src":"16022:252:85","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":51808,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"16040:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16042:14:85","memberName":"genesisBalance","nodeType":"MemberAccess","referencedDeclaration":47197,"src":"16040:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51813,"indexExpression":{"expression":{"id":51810,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16057:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16061:6:85","memberName":"sender","nodeType":"MemberAccess","src":"16057:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16040:28:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16072:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16040:33:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51816,"nodeType":"ExpressionStatement","src":"16040:33:85"},{"expression":{"id":51821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51817,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"16091:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16093:17:85","memberName":"genesisCircSupply","nodeType":"MemberAccess","referencedDeclaration":47192,"src":"16091:19:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":51820,"name":"genesisBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51798,"src":"16114:14:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16091:37:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51822,"nodeType":"ExpressionStatement","src":"16091:37:85"},{"expression":{"arguments":[{"expression":{"id":51826,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16185:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16189:6:85","memberName":"sender","nodeType":"MemberAccess","src":"16185:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51823,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"16146:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":51825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16161:23:85","memberName":"rmAddressFromBalanceKey","nodeType":"MemberAccess","referencedDeclaration":47156,"src":"16146:38:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":51828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16146:50:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51829,"nodeType":"ExpressionStatement","src":"16146:50:85"},{"expression":{"arguments":[{"id":51836,"name":"genesisBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51798,"src":"16244:14:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":51832,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16222:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16226:6:85","memberName":"sender","nodeType":"MemberAccess","src":"16222:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16214:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":51830,"name":"address","nodeType":"ElementaryTypeName","src":"16214:8:85","stateMutability":"payable","typeDescriptions":{}}},"id":51834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16214:19:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":51835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16234:9:85","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"16214:29:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$attached_to$_t_address_payable_$","typeString":"function (address payable,uint256)"}},"id":51837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16214:45:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51838,"nodeType":"ExpressionStatement","src":"16214:45:85"}]}},{"expression":{"arguments":[{"expression":{"id":51844,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16389:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16393:6:85","memberName":"sender","nodeType":"MemberAccess","src":"16389:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51846,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51761,"src":"16401:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51841,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"16358:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16369:19:85","memberName":"withdrawWithConfirm","nodeType":"MemberAccess","referencedDeclaration":45738,"src":"16358:30:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16358:50:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51848,"nodeType":"ExpressionStatement","src":"16358:50:85"},{"functionReturnParameters":51750,"id":51849,"nodeType":"Return","src":"16422:7:85"}]}},{"expression":{"arguments":[{"expression":{"id":51855,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16468:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16472:6:85","memberName":"sender","nodeType":"MemberAccess","src":"16468:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51857,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51761,"src":"16480:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51852,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"16448:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16459:8:85","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":45859,"src":"16448:19:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16448:39:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51859,"nodeType":"ExpressionStatement","src":"16448:39:85"}]},"baseFunctions":[40371],"documentation":{"id":51742,"nodeType":"StructuredDocumentation","src":"14876:63:85","text":"@notice method that allows a validator to leave the subnet."},"functionSelector":"d66d9e19","implemented":true,"kind":"function","modifiers":[{"id":51745,"kind":"modifierInvocation","modifierName":{"id":51744,"name":"nonReentrant","nameLocations":["14970:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"14970:12:85"},"nodeType":"ModifierInvocation","src":"14970:12:85"},{"id":51747,"kind":"modifierInvocation","modifierName":{"id":51746,"name":"whenNotPaused","nameLocations":["14983:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"14983:13:85"},"nodeType":"ModifierInvocation","src":"14983:13:85"},{"id":51749,"kind":"modifierInvocation","modifierName":{"id":51748,"name":"notKilled","nameLocations":["14997:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":47334,"src":"14997:9:85"},"nodeType":"ModifierInvocation","src":"14997:9:85"}],"name":"leave","nameLocation":"14953:5:85","parameters":{"id":51743,"nodeType":"ParameterList","parameters":[],"src":"14958:2:85"},"returnParameters":{"id":51750,"nodeType":"ParameterList","parameters":[],"src":"15007:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51891,"nodeType":"FunctionDefinition","src":"16627:217:85","nodes":[],"body":{"id":51890,"nodeType":"Block","src":"16662:182:85","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":51871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51867,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"16676:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16687:15:85","memberName":"totalValidators","nodeType":"MemberAccess","referencedDeclaration":45478,"src":"16676:26:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint16_$","typeString":"function () view returns (uint16)"}},"id":51869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16676:28:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":51870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16708:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16676:33:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51876,"nodeType":"IfStatement","src":"16672:97:85","trueBody":{"id":51875,"nodeType":"Block","src":"16711:58:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51872,"name":"NotAllValidatorsHaveLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37454,"src":"16732:24:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16732:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51874,"nodeType":"RevertStatement","src":"16725:33:85"}]}},{"expression":{"id":51881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51877,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"16779:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16781:6:85","memberName":"killed","nodeType":"MemberAccess","referencedDeclaration":47248,"src":"16779:8:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":51880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16790:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16779:15:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51882,"nodeType":"ExpressionStatement","src":"16779:15:85"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":51884,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"16813:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16815:14:85","memberName":"ipcGatewayAddr","nodeType":"MemberAccess","referencedDeclaration":47228,"src":"16813:16:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51883,"name":"IGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40354,"src":"16804:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGateway_$40354_$","typeString":"type(contract IGateway)"}},"id":51886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16804:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IGateway_$40354","typeString":"contract IGateway"}},"id":51887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16831:4:85","memberName":"kill","nodeType":"MemberAccess","referencedDeclaration":40279,"src":"16804:31:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":51888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16804:33:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51889,"nodeType":"ExpressionStatement","src":"16804:33:85"}]},"baseFunctions":[40395],"documentation":{"id":51862,"nodeType":"StructuredDocumentation","src":"16500:122:85","text":"@notice method that allows to kill the subnet when all validators left.\n @dev It is not a privileged operation."},"functionSelector":"41c0e1b5","implemented":true,"kind":"function","modifiers":[{"id":51865,"kind":"modifierInvocation","modifierName":{"id":51864,"name":"notKilled","nameLocations":["16652:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":47334,"src":"16652:9:85"},"nodeType":"ModifierInvocation","src":"16652:9:85"}],"name":"kill","nameLocation":"16636:4:85","parameters":{"id":51863,"nodeType":"ParameterList","parameters":[],"src":"16640:2:85"},"returnParameters":{"id":51866,"nodeType":"ParameterList","parameters":[],"src":"16662:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51907,"nodeType":"FunctionDefinition","src":"16910:108:85","nodes":[],"body":{"id":51906,"nodeType":"Block","src":"16963:55:85","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":51902,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17000:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17004:6:85","memberName":"sender","nodeType":"MemberAccess","src":"17000:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51899,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"16973:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16984:15:85","memberName":"claimCollateral","nodeType":"MemberAccess","referencedDeclaration":45886,"src":"16973:26:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":51904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16973:38:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51905,"nodeType":"ExpressionStatement","src":"16973:38:85"}]},"baseFunctions":[40399],"documentation":{"id":51892,"nodeType":"StructuredDocumentation","src":"16850:55:85","text":"@notice Validator claims their released collateral."},"functionSelector":"4e71d92d","implemented":true,"kind":"function","modifiers":[{"id":51895,"kind":"modifierInvocation","modifierName":{"id":51894,"name":"nonReentrant","nameLocations":["16936:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"16936:12:85"},"nodeType":"ModifierInvocation","src":"16936:12:85"},{"id":51897,"kind":"modifierInvocation","modifierName":{"id":51896,"name":"whenNotPaused","nameLocations":["16949:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"16949:13:85"},"nodeType":"ModifierInvocation","src":"16949:13:85"}],"name":"claim","nameLocation":"16919:5:85","parameters":{"id":51893,"nodeType":"ParameterList","parameters":[],"src":"16924:2:85"},"returnParameters":{"id":51898,"nodeType":"ParameterList","parameters":[],"src":"16963:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51923,"nodeType":"FunctionDefinition","src":"17067:130:85","nodes":[],"body":{"id":51922,"nodeType":"Block","src":"17136:61:85","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":51918,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17179:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17183:6:85","memberName":"sender","nodeType":"MemberAccess","src":"17179:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51915,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"17146:10:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":51917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17157:21:85","memberName":"claimRewardForRelayer","nodeType":"MemberAccess","referencedDeclaration":45942,"src":"17146:32:85","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":51920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17146:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51921,"nodeType":"ExpressionStatement","src":"17146:44:85"}]},"baseFunctions":[40403],"documentation":{"id":51908,"nodeType":"StructuredDocumentation","src":"17024:38:85","text":"@notice Relayer claims its reward."},"functionSelector":"ed7c4da1","implemented":true,"kind":"function","modifiers":[{"id":51911,"kind":"modifierInvocation","modifierName":{"id":51910,"name":"nonReentrant","nameLocations":["17109:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":43997,"src":"17109:12:85"},"nodeType":"ModifierInvocation","src":"17109:12:85"},{"id":51913,"kind":"modifierInvocation","modifierName":{"id":51912,"name":"whenNotPaused","nameLocations":["17122:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"17122:13:85"},"nodeType":"ModifierInvocation","src":"17122:13:85"}],"name":"claimRewardForRelayer","nameLocation":"17076:21:85","parameters":{"id":51909,"nodeType":"ParameterList","parameters":[],"src":"17097:2:85"},"returnParameters":{"id":51914,"nodeType":"ParameterList","parameters":[],"src":"17136:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51976,"nodeType":"FunctionDefinition","src":"17314:433:85","nodes":[],"body":{"id":51975,"nodeType":"Block","src":"17389:358:85","nodes":[],"statements":[{"condition":{"id":51937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17403:45:85","subExpression":{"arguments":[{"expression":{"id":51934,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17437:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17441:6:85","memberName":"sender","nodeType":"MemberAccess","src":"17437:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":51931,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"17404:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17406:12:85","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"17404:14:85","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":51933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17419:17:85","memberName":"isActiveValidator","nodeType":"MemberAccess","referencedDeclaration":44672,"src":"17404:32:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address) view returns (bool)"}},"id":51936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17404:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51944,"nodeType":"IfStatement","src":"17399:107:85","trueBody":{"id":51943,"nodeType":"Block","src":"17450:56:85","statements":[{"errorCall":{"arguments":[{"expression":{"id":51939,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17484:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17488:6:85","memberName":"sender","nodeType":"MemberAccess","src":"17484:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51938,"name":"NotValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37490,"src":"17471:12:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":51941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17471:24:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51942,"nodeType":"RevertStatement","src":"17464:31:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":51947,"name":"netAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51926,"src":"17525:10:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":51946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17519:5:85","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":51945,"name":"bytes","nodeType":"ElementaryTypeName","src":"17519:5:85","typeDescriptions":{}}},"id":51948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17519:17:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":51949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17537:6:85","memberName":"length","nodeType":"MemberAccess","src":"17519:24:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17547:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17519:29:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51956,"nodeType":"IfStatement","src":"17515:81:85","trueBody":{"id":51955,"nodeType":"Block","src":"17550:46:85","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51952,"name":"EmptyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37392,"src":"17571:12:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17571:14:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51954,"nodeType":"RevertStatement","src":"17564:21:85"}]}},{"expression":{"id":51964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":51957,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"17605:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17607:14:85","memberName":"bootstrapNodes","nodeType":"MemberAccess","referencedDeclaration":47272,"src":"17605:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_string_storage_$","typeString":"mapping(address => string storage ref)"}},"id":51962,"indexExpression":{"expression":{"id":51959,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17622:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17626:6:85","memberName":"sender","nodeType":"MemberAccess","src":"17622:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17605:28:85","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51963,"name":"netAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51926,"src":"17636:10:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"17605:41:85","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":51965,"nodeType":"ExpressionStatement","src":"17605:41:85"},{"expression":{"arguments":[{"expression":{"id":51971,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17729:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17733:6:85","memberName":"sender","nodeType":"MemberAccess","src":"17729:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":51966,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"17707:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":51969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17709:15:85","memberName":"bootstrapOwners","nodeType":"MemberAccess","referencedDeclaration":47276,"src":"17707:17:85","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":51970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17725:3:85","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"17707:21:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":51973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17707:33:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51974,"nodeType":"ExpressionStatement","src":"17707:33:85"}]},"documentation":{"id":51924,"nodeType":"StructuredDocumentation","src":"17203:106:85","text":"@notice Add a bootstrap node.\n @param netAddress The network address of the new bootstrap node."},"functionSelector":"10fd4261","implemented":true,"kind":"function","modifiers":[{"id":51929,"kind":"modifierInvocation","modifierName":{"id":51928,"name":"whenNotPaused","nameLocations":["17375:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"17375:13:85"},"nodeType":"ModifierInvocation","src":"17375:13:85"}],"name":"addBootstrapNode","nameLocation":"17323:16:85","parameters":{"id":51927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51926,"mutability":"mutable","name":"netAddress","nameLocation":"17354:10:85","nodeType":"VariableDeclaration","scope":51976,"src":"17340:24:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51925,"name":"string","nodeType":"ElementaryTypeName","src":"17340:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17339:26:85"},"returnParameters":{"id":51930,"nodeType":"ParameterList","parameters":[],"src":"17389:0:85"},"scope":52151,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":52084,"nodeType":"FunctionDefinition","src":"18068:1492:85","nodes":[],"body":{"id":52083,"nodeType":"Block","src":"18229:1331:85","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51991,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51981,"src":"18243:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18253:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18243:11:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51996,"nodeType":"IfStatement","src":"18239:48:85","trueBody":{"id":51995,"nodeType":"Block","src":"18256:31:85","statements":[{"functionReturnParameters":51990,"id":51994,"nodeType":"Return","src":"18270:7:85"}]}},{"assignments":[52001],"declarations":[{"constant":false,"id":52001,"mutability":"mutable","name":"relayers","nameLocation":"18348:8:85","nodeType":"VariableDeclaration","scope":52083,"src":"18331:25:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":51999,"name":"address","nodeType":"ElementaryTypeName","src":"18331:7:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52000,"nodeType":"ArrayTypeName","src":"18331:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":52007,"initialValue":{"arguments":[{"hexValue":"30","id":52005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18373:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18359:13:85","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":52002,"name":"address","nodeType":"ElementaryTypeName","src":"18363:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52003,"nodeType":"ArrayTypeName","src":"18363:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":52006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18359:16:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18331:44:85"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},"id":52011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52008,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51984,"src":"18389:4:85","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":52009,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"18397:13:85","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$50012_$","typeString":"type(enum QuorumObjKind)"}},"id":52010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18411:10:85","memberName":"Checkpoint","nodeType":"MemberAccess","referencedDeclaration":50010,"src":"18397:24:85","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"src":"18389:32:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},"id":52023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52020,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51984,"src":"18515:4:85","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":52021,"name":"QuorumObjKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50012,"src":"18523:13:85","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_QuorumObjKind_$50012_$","typeString":"type(enum QuorumObjKind)"}},"id":52022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18537:16:85","memberName":"BottomUpMsgBatch","nodeType":"MemberAccess","referencedDeclaration":50011,"src":"18523:30:85","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"src":"18515:38:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":52033,"nodeType":"Block","src":"18866:87:85","statements":[{"errorCall":{"arguments":[{"hexValue":"72657761726473206e6f7420646566696e656420666f72206f626a656374206b696e64","id":52030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18904:37:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5d5a9667afc22826bedfac6abae6135d509547bfc0cd862f890b74ed636031a","typeString":"literal_string \"rewards not defined for object kind\""},"value":"rewards not defined for object kind"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5d5a9667afc22826bedfac6abae6135d509547bfc0cd862f890b74ed636031a","typeString":"literal_string \"rewards not defined for object kind\""}],"id":52029,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"18887:16:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":52031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18887:55:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52032,"nodeType":"RevertStatement","src":"18880:62:85"}]},"id":52034,"nodeType":"IfStatement","src":"18511:442:85","trueBody":{"id":52028,"nodeType":"Block","src":"18555:305:85","statements":[{"errorCall":{"arguments":[{"hexValue":"72657761726473206e6f7420646566696e656420666f722062617463686573","id":52025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18815:33:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_b9da9cb0c4374da0abe5efd456ab1dd51477d12760d042f65c0c4dce4c666fdb","typeString":"literal_string \"rewards not defined for batches\""},"value":"rewards not defined for batches"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b9da9cb0c4374da0abe5efd456ab1dd51477d12760d042f65c0c4dce4c666fdb","typeString":"literal_string \"rewards not defined for batches\""}],"id":52024,"name":"MethodNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37526,"src":"18798:16:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":52026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18798:51:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52027,"nodeType":"RevertStatement","src":"18791:58:85"}]}},"id":52035,"nodeType":"IfStatement","src":"18385:568:85","trueBody":{"id":52019,"nodeType":"Block","src":"18423:82:85","statements":[{"expression":{"id":52017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52012,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52001,"src":"18437:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52015,"name":"height","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51979,"src":"18487:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52013,"name":"LibSubnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47157,"src":"18448:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibSubnetActor_$47157_$","typeString":"type(library LibSubnetActor)"}},"id":52014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18463:23:85","memberName":"checkpointRewardedAddrs","nodeType":"MemberAccess","referencedDeclaration":46856,"src":"18448:38:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) view returns (address[] memory)"}},"id":52016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18448:46:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"18437:57:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52018,"nodeType":"ExpressionStatement","src":"18437:57:85"}]}},{"assignments":[52037],"declarations":[{"constant":false,"id":52037,"mutability":"mutable","name":"relayersLength","nameLocation":"19115:14:85","nodeType":"VariableDeclaration","scope":52083,"src":"19107:22:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52036,"name":"uint256","nodeType":"ElementaryTypeName","src":"19107:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52040,"initialValue":{"expression":{"id":52038,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52001,"src":"19132:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19141:6:85","memberName":"length","nodeType":"MemberAccess","src":"19132:15:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19107:40:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52041,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52037,"src":"19161:14:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19179:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19161:19:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52046,"nodeType":"IfStatement","src":"19157:56:85","trueBody":{"id":52045,"nodeType":"Block","src":"19182:31:85","statements":[{"functionReturnParameters":51990,"id":52044,"nodeType":"Return","src":"19196:7:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52047,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51981,"src":"19226:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":52048,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52037,"src":"19235:14:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19226:23:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52052,"nodeType":"IfStatement","src":"19222:60:85","trueBody":{"id":52051,"nodeType":"Block","src":"19251:31:85","statements":[{"functionReturnParameters":51990,"id":52050,"nodeType":"Return","src":"19265:7:85"}]}},{"assignments":[52054],"declarations":[{"constant":false,"id":52054,"mutability":"mutable","name":"relayerReward","nameLocation":"19299:13:85","nodeType":"VariableDeclaration","scope":52083,"src":"19291:21:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52053,"name":"uint256","nodeType":"ElementaryTypeName","src":"19291:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52058,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52055,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51981,"src":"19315:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":52056,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52037,"src":"19324:14:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19315:23:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19291:47:85"},{"body":{"id":52081,"nodeType":"Block","src":"19416:138:85","statements":[{"expression":{"id":52075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":52065,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"19430:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":52071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19432:14:85","memberName":"relayerRewards","nodeType":"MemberAccess","referencedDeclaration":47267,"src":"19430:16:85","typeDescriptions":{"typeIdentifier":"t_struct$_RelayerRewardsInfo_$49968_storage","typeString":"struct RelayerRewardsInfo storage ref"}},"id":52072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19447:7:85","memberName":"rewards","nodeType":"MemberAccess","referencedDeclaration":49955,"src":"19430:24:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":52073,"indexExpression":{"baseExpression":{"id":52068,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52001,"src":"19455:8:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52070,"indexExpression":{"id":52069,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52060,"src":"19464:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19455:11:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19430:37:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":52074,"name":"relayerReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52054,"src":"19471:13:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19430:54:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52076,"nodeType":"ExpressionStatement","src":"19430:54:85"},{"id":52080,"nodeType":"UncheckedBlock","src":"19498:46:85","statements":[{"expression":{"id":52078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"19526:3:85","subExpression":{"id":52077,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52060,"src":"19528:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52079,"nodeType":"ExpressionStatement","src":"19526:3:85"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52062,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52060,"src":"19394:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":52063,"name":"relayersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52037,"src":"19398:14:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19394:18:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52082,"initializationExpression":{"assignments":[52060],"declarations":[{"constant":false,"id":52060,"mutability":"mutable","name":"i","nameLocation":"19391:1:85","nodeType":"VariableDeclaration","scope":52082,"src":"19383:9:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52059,"name":"uint256","nodeType":"ElementaryTypeName","src":"19383:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52061,"nodeType":"VariableDeclarationStatement","src":"19383:9:85"},"nodeType":"ForStatement","src":"19378:176:85"}]},"baseFunctions":[40427],"documentation":{"id":51977,"nodeType":"StructuredDocumentation","src":"17753:310:85","text":"@notice Distributes rewards to relayers for a specific checkpoint.\n @param height The height of the checkpoint for which rewards are being distributed.\n @param reward The total amount of reward to be distributed.\n @param kind The type of object for which rewards are being distributed."},"functionSelector":"4c860af6","implemented":true,"kind":"function","modifiers":[{"id":51987,"kind":"modifierInvocation","modifierName":{"id":51986,"name":"whenNotPaused","nameLocations":["18203:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":43326,"src":"18203:13:85"},"nodeType":"ModifierInvocation","src":"18203:13:85"},{"id":51989,"kind":"modifierInvocation","modifierName":{"id":51988,"name":"onlyGateway","nameLocations":["18217:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":47327,"src":"18217:11:85"},"nodeType":"ModifierInvocation","src":"18217:11:85"}],"name":"distributeRewardToRelayers","nameLocation":"18077:26:85","parameters":{"id":51985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51979,"mutability":"mutable","name":"height","nameLocation":"18121:6:85","nodeType":"VariableDeclaration","scope":52084,"src":"18113:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51978,"name":"uint256","nodeType":"ElementaryTypeName","src":"18113:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51981,"mutability":"mutable","name":"reward","nameLocation":"18145:6:85","nodeType":"VariableDeclaration","scope":52084,"src":"18137:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51980,"name":"uint256","nodeType":"ElementaryTypeName","src":"18137:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51984,"mutability":"mutable","name":"kind","nameLocation":"18175:4:85","nodeType":"VariableDeclaration","scope":52084,"src":"18161:18:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"},"typeName":{"id":51983,"nodeType":"UserDefinedTypeName","pathNode":{"id":51982,"name":"QuorumObjKind","nameLocations":["18161:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":50012,"src":"18161:13:85"},"referencedDeclaration":50012,"src":"18161:13:85","typeDescriptions":{"typeIdentifier":"t_enum$_QuorumObjKind_$50012","typeString":"enum QuorumObjKind"}},"visibility":"internal"}],"src":"18103:82:85"},"returnParameters":{"id":51990,"nodeType":"ParameterList","parameters":[],"src":"18229:0:85"},"scope":52151,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":52150,"nodeType":"FunctionDefinition","src":"20121:890:85","nodes":[],"body":{"id":52149,"nodeType":"Block","src":"20274:737:85","nodes":[],"statements":[{"assignments":[52100],"declarations":[{"constant":false,"id":52100,"mutability":"mutable","name":"collaterals","nameLocation":"20413:11:85","nodeType":"VariableDeclaration","scope":52149,"src":"20396:28:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":52098,"name":"uint256","nodeType":"ElementaryTypeName","src":"20396:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52099,"nodeType":"ArrayTypeName","src":"20396:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":52106,"initialValue":{"arguments":[{"id":52104,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52088,"src":"20468:11:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"expression":{"id":52101,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"20427:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":52102,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20429:12:85","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20427:14:85","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":52103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20442:25:85","memberName":"getTotalPowerOfValidators","nodeType":"MemberAccess","referencedDeclaration":44655,"src":"20427:40:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer,address[] memory) view returns (uint256[] memory)"}},"id":52105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20427:53:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"20396:84:85"},{"assignments":[52108],"declarations":[{"constant":false,"id":52108,"mutability":"mutable","name":"activeCollateral","nameLocation":"20498:16:85","nodeType":"VariableDeclaration","scope":52149,"src":"20490:24:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52107,"name":"uint256","nodeType":"ElementaryTypeName","src":"20490:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52113,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":52109,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"20517:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":52110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20519:12:85","memberName":"validatorSet","nodeType":"MemberAccess","referencedDeclaration":47252,"src":"20517:14:85","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":52111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20532:19:85","memberName":"getTotalActivePower","nodeType":"MemberAccess","referencedDeclaration":44534,"src":"20517:34:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (uint256)"}},"id":52112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20517:36:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20490:63:85"},{"assignments":[52115],"declarations":[{"constant":false,"id":52115,"mutability":"mutable","name":"threshold","nameLocation":"20572:9:85","nodeType":"VariableDeclaration","scope":52149,"src":"20564:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52114,"name":"uint256","nodeType":"ElementaryTypeName","src":"20564:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52123,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52116,"name":"activeCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52108,"src":"20585:16:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":52117,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47295,"src":"20604:1:85","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetActorStorage_$47281_storage","typeString":"struct SubnetActorStorage storage ref"}},"id":52118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20606:18:85","memberName":"majorityPercentage","nodeType":"MemberAccess","referencedDeclaration":47231,"src":"20604:20:85","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"20585:39:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":52120,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20584:41:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":52121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20628:3:85","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"20584:47:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20564:67:85"},{"assignments":[52125,52128],"declarations":[{"constant":false,"id":52125,"mutability":"mutable","name":"valid","nameLocation":"20648:5:85","nodeType":"VariableDeclaration","scope":52149,"src":"20643:10:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52124,"name":"bool","nodeType":"ElementaryTypeName","src":"20643:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":52128,"mutability":"mutable","name":"err","nameLocation":"20683:3:85","nodeType":"VariableDeclaration","scope":52149,"src":"20655:31:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"},"typeName":{"id":52127,"nodeType":"UserDefinedTypeName","pathNode":{"id":52126,"name":"MultisignatureChecker.Error","nameLocations":["20655:21:85","20677:5:85"],"nodeType":"IdentifierPath","referencedDeclaration":43152,"src":"20655:27:85"},"referencedDeclaration":43152,"src":"20655:27:85","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}},"visibility":"internal"}],"id":52137,"initialValue":{"arguments":[{"id":52131,"name":"signatories","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52088,"src":"20769:11:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":52132,"name":"collaterals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52100,"src":"20803:11:85","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":52133,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52115,"src":"20839:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52134,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52090,"src":"20868:4:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":52135,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52093,"src":"20898:10:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":52129,"name":"MultisignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43291,"src":"20690:21:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MultisignatureChecker_$43291_$","typeString":"type(library MultisignatureChecker)"}},"id":52130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20712:29:85","memberName":"isValidWeightedMultiSignature","nodeType":"MemberAccess","referencedDeclaration":43290,"src":"20690:51:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$_t_enum$_Error_$43152_$","typeString":"function (address[] memory,uint256[] memory,uint256,bytes32,bytes memory[] memory) pure returns (bool,enum MultisignatureChecker.Error)"}},"id":52136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["20756:11:85","20794:7:85","20828:9:85","20862:4:85","20886:10:85"],"names":["signatories","weights","threshold","hash","signatures"],"nodeType":"FunctionCall","src":"20690:229:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_enum$_Error_$43152_$","typeString":"tuple(bool,enum MultisignatureChecker.Error)"}},"nodeType":"VariableDeclarationStatement","src":"20642:277:85"},{"condition":{"id":52139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20934:6:85","subExpression":{"id":52138,"name":"valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52125,"src":"20935:5:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52148,"nodeType":"IfStatement","src":"20930:75:85","trueBody":{"id":52147,"nodeType":"Block","src":"20942:63:85","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":52143,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52128,"src":"20989:3:85","typeDescriptions":{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Error_$43152","typeString":"enum MultisignatureChecker.Error"}],"id":52142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20983:5:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":52141,"name":"uint8","nodeType":"ElementaryTypeName","src":"20983:5:85","typeDescriptions":{}}},"id":52144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20983:10:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":52140,"name":"InvalidSignatureErr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37438,"src":"20963:19:85","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$returns$__$","typeString":"function (uint8) pure"}},"id":52145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20963:31:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52146,"nodeType":"RevertStatement","src":"20956:38:85"}]}}]},"documentation":{"id":52085,"nodeType":"StructuredDocumentation","src":"19566:550:85","text":"@notice Checks whether the signatures are valid for the provided signatories and hash within the current validator set.\n Reverts otherwise.\n @dev Signatories in `signatories` and their signatures in `signatures` must be provided in the same order.\n Having it public allows external users to perform sanity-check verification if needed.\n @param signatories The addresses of the signatories.\n @param hash The hash of the checkpoint.\n @param signatures The packed signatures of the checkpoint."},"functionSelector":"cc2dc2b9","implemented":true,"kind":"function","modifiers":[],"name":"validateActiveQuorumSignatures","nameLocation":"20130:30:85","parameters":{"id":52094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52088,"mutability":"mutable","name":"signatories","nameLocation":"20187:11:85","nodeType":"VariableDeclaration","scope":52150,"src":"20170:28:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":52086,"name":"address","nodeType":"ElementaryTypeName","src":"20170:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52087,"nodeType":"ArrayTypeName","src":"20170:9:85","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":52090,"mutability":"mutable","name":"hash","nameLocation":"20216:4:85","nodeType":"VariableDeclaration","scope":52150,"src":"20208:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52089,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20208:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":52093,"mutability":"mutable","name":"signatures","nameLocation":"20245:10:85","nodeType":"VariableDeclaration","scope":52150,"src":"20230:25:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":52091,"name":"bytes","nodeType":"ElementaryTypeName","src":"20230:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":52092,"nodeType":"ArrayTypeName","src":"20230:7:85","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"20160:101:85"},"returnParameters":{"id":52095,"nodeType":"ParameterList","parameters":[],"src":"20274:0:85"},"scope":52151,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":50949,"name":"ISubnetActor","nameLocations":["1673:12:85"],"nodeType":"IdentifierPath","referencedDeclaration":40428,"src":"1673:12:85"},"id":50950,"nodeType":"InheritanceSpecifier","src":"1673:12:85"},{"baseName":{"id":50951,"name":"SubnetActorModifiers","nameLocations":["1687:20:85"],"nodeType":"IdentifierPath","referencedDeclaration":47335,"src":"1687:20:85"},"id":50952,"nodeType":"InheritanceSpecifier","src":"1687:20:85"},{"baseName":{"id":50953,"name":"Pausable","nameLocations":["1709:8:85"],"nodeType":"IdentifierPath","referencedDeclaration":43432,"src":"1709:8:85"},"id":50954,"nodeType":"InheritanceSpecifier","src":"1709:8:85"},{"baseName":{"id":50955,"name":"ReentrancyGuard","nameLocations":["1719:15:85"],"nodeType":"IdentifierPath","referencedDeclaration":44013,"src":"1719:15:85"},"id":50956,"nodeType":"InheritanceSpecifier","src":"1719:15:85"}],"canonicalName":"SubnetActorManagerFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52151,44013,43432,47335,40428],"name":"SubnetActorManagerFacet","nameLocation":"1646:23:85","scope":52152,"usedErrors":[32461,32469,37368,37372,37374,37382,37390,37392,37404,37406,37408,37438,37442,37448,37454,37462,37466,37470,37478,37480,37490,37494,37496,37504,37510,37514,37526,37528,37530,37532,40975,43315,43318,43961]}],"license":"MIT OR Apache-2.0"},"id":85} \ No newline at end of file diff --git a/.out/SubnetActorManagerFacetMock.sol/SubnetActorManagerFacetMock.json b/.out/SubnetActorManagerFacetMock.sol/SubnetActorManagerFacetMock.json new file mode 100644 index 000000000..42da791b9 --- /dev/null +++ b/.out/SubnetActorManagerFacetMock.sol/SubnetActorManagerFacetMock.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addBootstrapNode","inputs":[{"name":"netAddress","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claimRewardForRelayer","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"confirmChange","inputs":[{"name":"_configurationNumber","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"confirmNextChange","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeRewardToRelayers","inputs":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"reward","type":"uint256","internalType":"uint256"},{"name":"kind","type":"uint8","internalType":"enum QuorumObjKind"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"join","inputs":[{"name":"publicKey","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"leave","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"preFund","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"preRelease","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFederatedPower","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"publicKeys","type":"bytes[]","internalType":"bytes[]"},{"name":"powers","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"submitBottomUpMsgBatch","inputs":[{"name":"batch","type":"tuple","internalType":"struct BottomUpMsgBatch","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"msgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitCheckpoint","inputs":[{"name":"checkpoint","type":"tuple","internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unstake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateActiveQuorumSignatures","inputs":[{"name":"signatories","type":"address[]","internalType":"address[]"},{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"view"},{"type":"event","name":"BottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BottomUpCheckpointSubmitted","inputs":[{"name":"checkpoint","type":"tuple","indexed":false,"internalType":"struct BottomUpCheckpoint","components":[{"name":"subnetID","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"blockHeight","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"nextConfigurationNumber","type":"uint64","internalType":"uint64"}]},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NextBottomUpCheckpointExecuted","inputs":[{"name":"epoch","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"submitter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"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":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"BatchWithNoMessages","inputs":[]},{"type":"error","name":"CannotConfirmFutureChanges","inputs":[]},{"type":"error","name":"CannotReleaseZero","inputs":[]},{"type":"error","name":"CollateralIsZero","inputs":[]},{"type":"error","name":"DuplicatedGenesisValidator","inputs":[]},{"type":"error","name":"EmptyAddress","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"InvalidBatchEpoch","inputs":[]},{"type":"error","name":"InvalidCheckpointEpoch","inputs":[]},{"type":"error","name":"InvalidFederationPayload","inputs":[]},{"type":"error","name":"InvalidPublicKeyLength","inputs":[]},{"type":"error","name":"InvalidSignatureErr","inputs":[{"name":"","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"MaxMsgsPerBatchExceeded","inputs":[]},{"type":"error","name":"MethodNotAllowed","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"NoCollateralToWithdraw","inputs":[]},{"type":"error","name":"NotAllValidatorsHaveLeft","inputs":[]},{"type":"error","name":"NotEnoughBalance","inputs":[]},{"type":"error","name":"NotEnoughCollateral","inputs":[]},{"type":"error","name":"NotEnoughFunds","inputs":[]},{"type":"error","name":"NotEnoughGenesisValidators","inputs":[]},{"type":"error","name":"NotGateway","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]},{"type":"error","name":"NotOwnerOfPublicKey","inputs":[]},{"type":"error","name":"NotValidator","inputs":[{"name":"","type":"address","internalType":"address"}]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ReentrancyError","inputs":[]},{"type":"error","name":"SubnetAlreadyBootstrapped","inputs":[]},{"type":"error","name":"SubnetAlreadyKilled","inputs":[]},{"type":"error","name":"WithdrawExceedingCollateral","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657615076908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014611b175750806310fd4261146119a0578063268119361461178d5780632e17de7814611760578063350a14bf1461172d5780633a4b66f1146116515780633f4ba83a146115d957806341c0e1b5146115485780634c860af6146114f45780634e71d92d146113605780635c975abb146113305780636170b16214610f8057806366783c9b14610e9f5780638456cb5914610e37578063b9ee2bb914610a38578063c7ebdaef146109f2578063cc2dc2b914610972578063d66d9e1914610927578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b85760008051602061502183398151915260018154146101a657806001839255610133611e23565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611bf9565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610923576101ec903690600401611c9a565b906024356001600160401b03811161091f5761020c903690600401611c9a565b916044356001600160401b03811161091b5761022c903690600401611c9a565b909461023661407b565b61023e611dde565b60ff601354166003811015610907576001036108d7578181036108c5578481036108c55760125460081c60ff161561052557865b818110610283575050505050505080f35b610297610291828888613ed6565b9061403f565b6001600160a01b036102b26102ad848689613f17565b611fda565b166001600160a01b03909116036105135761031c6102d46102ad838588613f17565b6102df838989613ed6565b6102ed85888d969496613f17565b35610308604051958693604060208601526060850191613ac7565b90604083015203601f198101845283611c27565b6001600160401b03601c541660405161033481611c0c565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612160565b61037081612160565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612180565b60018601612273565b602090601f8311600114610476579282600080516020614fe183398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361042182612398565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190613eb1565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614fe18339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9490929391865b868110610697575050505050506001600160401b03600c541610156106855761010061ff0019601254161760125560405190602091828101838252600154809152604082019060408160051b8401019460016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6926000905b838210610639575050505050807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c959392930390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af1801561062e5761061e57505080f35b61062790611bf9565b6101b85780f35b6040513d84823e3d90fd5b90919293968360036106766060600194603f198b82030187528c5481528c86808060a01b0391015416858201528160408201520160028c016121ba565b990192019201909392916105a7565b60405163031480b160e51b8152600490fd5b6106a5610291828689613ed6565b6001600160a01b039081806106be6102ad868d89613f17565b16911603610513576106dc6106d76102ad848b87613f17565b613133565b6108b3576107026106f16102ad848b87613f17565b6106fc84888b613ed6565b91613f62565b6107256107136102ad848b87613f17565b61071e848988613f17565b3590612889565b6107336102ad838a86613f17565b9061073f838887613f17565b359161076e61074f85898c613ed6565b6040519561075c87611c0c565b86528460208701941684523691611c63565b9160408401928352600154600160401b8110156104fd578060016107959201600155613f27565b94909461089d57518455600184019151166001600160601b0360a01b825416179055518051906001600160401b0382116104fd576107e3826107da6002860154612180565b60028601612273565b602090601f8311600114610829579180600292600196959460009261081e575b5050600019600383901b1c191690851b179101555b0161052c565b015190503880610803565b906002840160005260206000209160005b601f1985168110610885575092600292600196959492879383601f1981161061086c575b505050811b01910155610818565b015160001960f88460031b161c1916905538808061085e565b9192602060018192868501518155019401920161083a565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6109036108e2613e34565b60405163015538b160e01b8152602060048201529182916024830190613eb1565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b85760008051602061502183398151915260018154146101a65780600183925561095e611e23565b61096661407b565b61096e61490a565b5580f35b50346101b85760603660031901126101b8576001600160401b036004358181116109ee57366023820112156109ee576109b5903690602481600401359101611d09565b6044359182116109ee57366023830112156109ee576109e16109eb923690602481600401359101611d5f565b9060243590614ca5565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c541601908111610a24576109eb906123b0565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610923576001600160401b03600435116109235760806004356004019160043536030112610923576024356001600160401b0381116109ee57610a8e903690600401611c9a565b91906044356001600160401b038111610e3357610aaf903690600401611c9a565b91610ab8611e23565b60055494600b5495610aca8782611e4e565b60246004350135141580610e23575b610e115760405190610b116020830183610af38a83611f29565b0393610b07601f1995868101835282611c27565b5190209882611e4e565b6004356024013503610d0e57505091610b34610b3c92610b429697943691611d09565b933691611d5f565b91614ca5565b602460043501358252816020526040822090803560421960043536030181121561091f576004350191600483016001600160401b03610b8082611f7a565b16936001600160401b03199485845416178355610ba66001926024848601930190611f8e565b91906001600160401b038311610cfa57600160401b8311610cfa578154838355808410610cdf575b509087959493929190865260208620865b838110610cb8575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610c1b86611f7a565b16908254161790556024600435013582526022602052610c3f6040832033906120db565b5060043560240135600555600e546001600160a01b0316803b156109ee576040516347dc9b4f60e01b81529183918391829084908290610c829060048301611f29565b03925af1801561062e57610ca4575b5050610c9f6109eb91611f7a565b6123b0565b610cad90611bf9565b610923578138610c91565b84959697506020610ccc8495969394611fda565b848301558a989796959401929101610bdf565b82895260208920610cf4918101908501611fc3565b38610bce565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610d2657505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610df0575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610dc5915082611c27565b51902014610dd05780f35b6024600435013581526022602052610dec6040822033906120db565b5080f35b82546001600160a01b03168552889550602090940193918101918101610d84565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610ad9565b8480fd5b50346101b857806003193601126101b857610e50611dde565b610e58611e23565b600080516020615001833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101b85760203660031901126101b85760043560008051602061502183398151915260018154146101a657600181558115610f6e5760ff60125460081c16610f5c57338352600360205281604084205410610f4a5761096e8392338452600360205260408420610f1282825461291d565b9055610f208160025461291d565b6002553384526003602052604084205415610f3c575b33613cd3565b610f4533613d4d565b610f36565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116109235736602382011215610923576001600160401b038160040135116109235736602482600401358301011161092357600160008051602061502183398151915254146101a657600160008051602061502183398151915255610ffc611e23565b61100461407b565b60ff60125460081c1680611323575b3415611311573360009081526015602052604090206002015461129c57604182600401350361128a57336001600160a01b0361105660048501356024860161403f565b160361051357611099578060246110739260040135910133613f62565b61107d343361409c565b6110856144d0565b806000805160206150218339815191525580f35b6110ab36826004013560248401611c63565b6001600160401b03601c541690604051906110c582611c0c565b600282526020820190815233604083015282600052601d60205260406000209082516110f081612160565b6110f981612160565b60ff80198454169116178255518051906001600160401b0382116104fd576111288261039f6001860154612180565b602090601f8311600114611202579282600080516020614fe18339815191529795936002936111df98966000926111f7575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036111a382612398565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613ac7565b9060608301520390a16111f234336142b6565b611085565b01519050388061115a565b906001840160005260206000209160005b601f19851681106112725750836002936111df989693600193600080516020614fe18339815191529b9997601f19811610611259575b505050811b016001820155611172565b015160001960f88460031b161c19169055388080611249565b91926020600181928685015181550194019201611213565b6040516318dca5e960e21b8152600490fd5b6109036040516112ab81611c0c565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b604051635a78c58160e11b8152600490fd5b61132b6144bb565b611013565b50346101b857806003193601126101b857602060ff60008051602061500183398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020615021833981519152828154146101a657828155611396611e23565b336000908152601f602052604090209283549061ffff908183169283156114e257829060101c16918391808795818a01915b61145c575b5050508661143e937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611445575b6114268133613cd3565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561141c565b9091939483811696828810156114d9578760005260208091858252604060002060405161148881611bde565b898254928383520154938491015243106114ce57859493889688946114af86958a95611e4e565b9c600052526000826040822082815501550116966000190116946113c8565b9850505094936113cd565b965094936113cd565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561092357611515611e23565b600e546001600160a01b03163303611536576109eb90602435600435614b02565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b85761156161407b565b61ffff6115778160195416826016541690612873565b166115c7576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af1801561062e5761061e5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b8576115f2611dde565b600080516020615001833981519152805460ff81161561163f5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b857611665611e23565b61166d61407b565b6116756144bb565b34156113115733600090815260156020526040902060020154156116bc5760125460081c60ff166116b2576116aa343361409c565b6109eb6144d0565b6109eb34336142b6565b6109036040516116cb81611c0c565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b50346101b85760203660031901126101b8576004356001600160401b038116810361175b576109eb906123b0565b600080fd5b50346101b85760203660031901126101b85761177a611e23565b61178261407b565b6109eb60043561463a565b50346101b857600319606036820112610923576004356001600160401b039182821161091f5760608260040191833603011261091f57602435838111610e33576117db903690600401611c9a565b919060443585811161199c576117f5903690600401611c9a565b916024860135966006549687891061195157604401906118158287611f8e565b9190506009541680911161198a5761182d8287611f8e565b9050141580611963575b611951576118459085611f8e565b90501561193f5787946040516020810190611872816118648985613b51565b03601f198101835282611c27565b5190209688036118a3575050505050506007541461188e575080f35b81526023602052610dec6040822033906120db565b6118bd9392610b3488969893610b3c939a989a3691611d09565b8060206040516118cc81611bde565b848152015281600655600755825260236020526118ed6040832033906120db565b50600e546001600160a01b031690813b156101a257829161192491604051948580948193630bed761560e01b835260048301613b51565b03925af1801561062e57611936575080f35b6109eb90611bf9565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156119765788061515611837565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b03916004358381116109ee57366023820112156109ee576119e6903690602481600401359101611c63565b926119ef611e23565b3383526017825261ffff60408420541615611aff57835115611aed573383526024825260408320918451918211611ad957611a3482611a2e8554612180565b85612273565b80601f8311600114611a755750839482939492611a6a575b50508160011b916000199060031b1c19161790555b610dec33612072565b015190503880611a4c565b90601f198316958486528286209286905b888210611ac157505083600195969710611aa8575b505050811b019055611a61565b015160001960f88460031b161c19169055388080611a9b565b80600185968294968601518155019501930190611a86565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610923573415611bcf575060ff60125460081c16610f5c573381526003602052604081205415611b76575b338152600360205260408120611b62348254611e4e565b9055611b7034600254611e4e565b60025580f35b600454600160401b811015611bbb57611b98816001611bb69301600455611fee565b81546001600160a01b0360039290921b91821b19163390911b179055565b611b4b565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611c6f82611c48565b91611c7d6040519384611c27565b82948184528183011161175b578281602093846000960137010152565b9181601f8401121561175b578235916001600160401b03831161175b576020808501948460051b01011161175b57565b35906001600160401b038216820361175b57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b038216820361175b57565b9291611d1482611cde565b91611d226040519384611c27565b829481845260208094019160051b810192831161175b57905b828210611d485750505050565b838091611d5484611cf5565b815201910190611d3b565b92919092611d6c84611cde565b91611d7a6040519384611c27565b829480845260208094019060051b83019282841161175b5780915b848310611da457505050505050565b82356001600160401b03811161175b57820184601f8201121561175b578691611dd38683858095359101611c63565b815201920191611d95565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611e1157565b6040516330cd747160e01b8152600490fd5b60ff6000805160206150018339815191525416611e3c57565b60405163d93c066560e01b8152600490fd5b91908201809211611e5b57565b634e487b7160e01b600052601160045260246000fd5b9035603e198236030181121561175b570190565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b578160051b3603831361175b57565b60408201916001600160401b03611ecf83611cca565b1681526060611ee360209384810190611e85565b839195604086839601525201929160005b828110611f02575050505090565b909192938280600192838060a01b03611f1a89611cf5565b16815201950193929101611ef4565b6020815260806001600160401b03611f736060611f59611f498780611e71565b85602088015260a0870190611eb9565b956020810135604087015260408101358287015201611cca565b1691015290565b356001600160401b038116810361175b5790565b903590601e198136030182121561175b57018035906001600160401b03821161175b57602001918160051b3603831361175b57565b818110611fce575050565b60008155600101611fc3565b356001600160a01b038116810361175b5790565b6004548110156120255760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b6025548110156120255760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b6000818152602660205260408120546120d657602554600160401b811015611bbb5790826120c26120ab8460016040960160255561203b565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461215a57845494600160401b861015612146576001860180825586101561213257836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561216a57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156121b0575b602083101461219a57565b634e487b7160e01b600052602260045260246000fd5b91607f169161218f565b90600092918054916121cb83612180565b91828252600193848116908160001461222d57506001146121ed575b50505050565b90919394506000526020928360002092846000945b8386106122195750505050010190388080806121e7565b805485870183015294019385908201612202565b9294505050602093945060ff191683830152151560051b010190388080806121e7565b60005b8381106122635750506000910152565b8181015183820152602001612253565b9190601f811161228257505050565b6122ae926000526020600020906020601f840160051c830193106122b0575b601f0160051c0190611fc3565b565b90915081906122a1565b90808214612394576122cc8154612180565b906001600160401b0382116104fd5781906122f1826122eb8654612180565b86612273565b600090601f83116001146123285760009261231d575b50508160011b916000199060031b1c1916179055565b015490503880612307565b81526020808220858352818320935090601f1985169083905b82821061237b575050908460019594939210612362575b505050811b019055565b015460001960f88460031b161c19169055388080612358565b8495819295850154815560018091019601940190612341565b5050565b9060016001600160401b0380931601918211611e5b57565b601c546001600160401b03828116929080831684106123db5760405163040aaa0560e11b8152600490fd5b808360401c1684106121e75780604093841c165b848282161115612456575050916020916124297f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612398565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612474826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff1661249981612160565b80850361250b57505060036124ca60016124d094959697019260018060a01b03166000526015602052604060002090565b016122ba565b6124ed816001600160401b0316600052601d602052604060002090565b9160009081845560019361250285820161292a565b015501166123ef565b9091945061251881612160565b6003918183036126b657505087519361254085612539816001809a016121ba565b0386611c27565b84518501916020928a8785830192031261175b578387015189811161175b5787019681603f8901121561175b5787858d9901519261258961258085611c48565b9a519a8b611c27565b838a528d848301011161175b578c926125a79184888c019101612250565b015192816125c78460018060a01b03166000526015602052604060002090565b01918751918a83116126a1578a986125e9846125e38754612180565b87612273565b81601f851160011461262e575061261e9798999a8493928492600095612623575b50501b92600019911b1c1916179055612889565b6124d0565b01519350388061260a565b91601f9b9493919b1984169b866000528c84600020946000915b82106126865750508461261e9a9b9c9d1061266c575b50505050811b019055612889565b01519060f884600019921b161c191690553880808061265e565b8383015186558f9d509487019492830192908101908e612648565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936126d2856125398160018095016121ba565b6020808680518101031261175b5781818c970151956126f081612160565b036128155784906127018285612973565b601e5461270e9043611e4e565b9287519061271b82611bde565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061275e91612873565b169c60009d8e5282870188528d20925183555191015561277d90612860565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b156109ee578291602483928a5195869384926345f5448560e01b845260048401525af190811561280a575090849392916127fb575b506124d0565b61280490611bf9565b386127f5565b8751903d90823e3d90fd5b50508293509161282591926128cd565b600e541690813b1561175b578651916316989f6f60e21b83528260048160009485945af190811561280a575090849392916127fb57506124d0565b90600161ffff80931601918211611e5b57565b91909161ffff80809416911601918211611e5b57565b9060018060a01b0382166000526015602052604060002081815491558181146000146128b457505050565b8111156128c4576122ae91612a02565b6122ae91612d48565b906122ae9161291560018060a01b038216928360005260156020526128fa81600160406000200154611e4e565b93600052601560205283600160406000200155601454611e4e565b601455612a02565b91908203918211611e5b57565b6129348154612180565b908161293e575050565b81601f60009311600114612950575055565b90808391825261296f601f60208420940160051c840160018501611fc3565b5555565b906129e06129e89260018060a01b03811690600082815260156020526129a085600160408420015461291d565b92815260156020526040812060028101848154811590816129f9575b50156129ed575090826003926129db948355816001840155550161292a565b612d48565b60145461291d565b601455565b92505060010155612d48565b905015386129bc565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612c33578360135460081c16846016541610612bff57612a47613855565b60019283825260188652828a8320541688612a6182613133565b10612b7957508152601a8552838982205416612ad0575050505050612acb7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649394612aab836130be565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b612ad9866138a8565b92612ae387613133565b935b8186821611612b3b575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd908060408101612acb565b8085612b5a86617fff8f95871c1694858852601b8c5287205416613133565b1015612b735790612b6c839282613a07565b9050612ae5565b50612aef565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7598999250612acb95601a91612bb461354d565b835252205416612bf1575b612bc8846134d8565b612bd1836130be565b516001600160a01b03928316815292909116602083015281906040820190565b612bfa846132fd565b612bbf565b5050505050612acb7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394612aab836134d8565b97929150612c448594979695613871565b97612c4e85613133565b97612c588a613469565b8460165416905b858116828111612d115782811015612cf5575080612c7f612c8592612860565b90613805565b9b909b5b8b1115612ca857612c9a908c61396e565b612ca38b613469565b612c5f565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019791508060408101612acb565b849c919c5260188352612d0c858886205416613133565b612c89565b50505050505050612acb91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612aab565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612f82578082526017835287868320541615612f71578415612ec95750612d9583613871565b97612d9f84613133565b985b6001808a83161115612eba5781617fff911c1690818452601885528a612dcb848a87205416613133565b1115612de057612ddb908261396e565b612da1565b505091939597509193955b6019541615612eb257612dfc613855565b60018252601883528581818420541692601b612e1785613133565b95612e20613863565b600183525220541691612e3283613133565b11612e7957505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197908060408101612acb565b91509150612acb7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612eaa61354d565b612bbf613196565b505050505050565b50509193959750919395612deb565b829450612efd7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799613696565b8651908152a160195416612f115750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612f3f613863565b6001835252205416612f65612f5382613133565b92612f5c613196565b612aab836134d8565b0390a1388080806121e7565b8551632a55ca5360e01b8152600490fd5b84969792939598919415613083575061fffe9193612f9f866138a8565b93612fa987613133565b9480966001958692831b168160195416925b61300f575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9190508060408101612acb565b81811683811161307d578d90848110156130615750508061303261303892612860565b90613480565b9890985b88101561305c5761304d9089613a07565b61305688613469565b86612fbb565b612fc0565b8652601b8552852054909890613078908716613133565b61303c565b50612fc0565b949150506130b79194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506132fd565b51908152a1565b6122ae9061312d61ffff916130d68360195416612860565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613133565b90613414565b60ff60135416600381101561216a57600103613164576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611e5b57565b61ffff80601954169081156132eb57906001906131b581831115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161324f91908a61324083613182565b169060195416176019556138cd565b848252808652613263848484205416613133565b95859860028160195416995b613281575b5050505050505050505050565b8181168a81116132e5578a8110156132ca5750806130326132a192612860565b9a909a5b8910156132c5576132b6908b613a07565b6132bf8a613469565b8761326f565b613274565b859b919b528383526132e0878787205416613133565b6132a5565b50613274565b6040516340d9b01160e01b8152600490fd5b613306906138a8565b61ffff9081601954169161331a8383613a07565b8061332484613182565b1661ffff19601954161760195561333a836138cd565b80821680931461340f579161fffe91600091808352601b9060209382855260018060a01b039260409261337a613374868686205416613133565b87613414565b825280865261338d848484205416613133565b9585986001988997881b168160195416995b6133b0575050505050505050505050565b8181168a81116132e5578a8110156133f45750806130326133d092612860565b9a909a5b8910156132c5576133e5908b613a07565b6133ee8a613469565b8761339f565b859b919b5283835261340a878787205416613133565b6133d4565b505050565b9190915b60018061ffff831611156134635781617fff911c16908361344e6000848152601b602052604060018060a01b0391205416613133565b10156134635761345e9082613a07565b613418565b50509050565b60011b906201fffe61fffe831692168203611e5b57565b91909161ffff92838216600052601b6020526134c360018060a01b036134ac8160406000205416613133565b958316600052601b60205260406000205416613133565b908185106134d15750509190565b9350919050565b6122ae9061354761ffff916134f08360165416612860565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613133565b906137b6565b61ffff80601654169081156132eb579060019061356c81831115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161360691908a6135f783613182565b1690601654161760165561390f565b84825280865261361a848484205416613133565b95859860028160165416995b613637575050505050505050505050565b8181168a81116132e5578a81101561367b575080612c7f61365792612860565b9a909a5b8911156132c55761366c908b61396e565b6136758a613469565b87613626565b859b919b52838352613691878787205416613133565b61365b565b61369f90613871565b9061ffff908160165416906136b4828561396e565b826136be83613182565b1661ffff1960165416176016556136d48261390f565b8284168092146137b05760009291929183835260189260209484865260018060a01b039160409161371261370c858585205416613133565b8a6137b6565b8152858752613725838383205416613133565b9561372f89613469565b978560165416985b8681168a81116137a2578a811015613787575080612c7f61375792612860565b9a909a5b89111561377a5761376c908b61396e565b6137758a613469565b613737565b5050505050505092505050565b849b919b5282825261379d868686205416613133565b61375b565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156134635781617fff911c1690836137f060008481526018602052604060018060a01b0391205416613133565b111561346357613800908261396e565b6137ba565b919061ffff808416600052601860205261384660018060a01b0361382f8160406000205416613133565b928416600052601860205260406000205416613133565b93848211156134d15750509190565b61ffff60165416156132eb57565b61ffff60195416156132eb57565b6001600160a01b031660009081526017602052604090205461ffff1690811561389657565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff1690811561389657565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561395857565b634e487b7160e01b600052600160045260246000fd5b61399361ffff80806016541693169361398984861115613951565b1691821115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a2261ffff80806019541693169361398984861115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b57813603831361175b57565b908060209392818452848401376000828201840152601f01601f1916010190565b613b11613b06613af88380611e71565b604085526040850190611eb9565b916020810190611e71565b91602081830391015281359160ff831680930361175b57613b3e604091613b4e9484526020810190613a96565b9190928160208201520191613ac7565b90565b6020808252613b608380611e71565b6060918281850152613b7760809283860190611eb9565b613b8e604096838101358888015287810190611e85565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bc957505050505050505050505090565b909192939495969798999a82828203018752613be58c85611e71565b90813560de198336030181121561175b578782528201918a90888e6001600160401b03613c5c613c4c613c39613c30613c1e8b80611e71565b60e080988c01526101208b0190613ae8565b978a018a611e71565b96603f1997888a830301868b0152613ae8565b928d8901358d8901528801611cca565b169060a091828701528a8701359263ffffffff60e01b841680940361175b578f95613c93613ca39460c096878b01528a018a613a96565b9290918985030190890152613ac7565b94013561010084015201359081151580920361175b578a01529a8801999897966001019587019493929190613bb4565b814710613d35576000918291829182916001600160a01b03165af13d15613d30573d613cfe81611c48565b90613d0c6040519283611c27565b8152600060203d92013e5b15613d1e57565b604051630a12f52160e11b8152600490fd5b613d17565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d635750505050565b613d6c81611fee565b90546003916001600160a01b039190831b1c811685821614613d92575050600101613d56565b929350939060001991828101908111613e1f5790613dc384613db6613de294611fee565b905490891b1c1691611fee565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613e0a570192613df584611fee565b81939154921b1b1916905555388080806121e7565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613eca81518092818552858086019101612250565b601f01601f1916010190565b91908110156120255760051b81013590601e198136030182121561175b5701908135916001600160401b03831161175b57602001823603811361175b579190565b91908110156120255760051b0190565b600154811015612025576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd57613fa381613f9d8454612180565b84612273565b6000601f8211600114613fdc5781929394600092613fd15750508160011b916000199060031b1c1916179055565b013590503880612307565b601f198216948382526020918281209281905b8882106140275750508360019596971061400d57505050811b019055565b0135600019600384901b60f8161c19169055388080612358565b80600184968294958701358155019501920190613fef565b9061404c60418214613951565b8060011161175b576140679136916000190190600101611c63565b80516020909101206001600160a01b031690565b60ff60125460101c1661408a57565b60405163248c8efb60e11b8152600490fd5b906140b1906140ab818461428f565b826128cd565b60ff60125460081c16156140c25750565b60018054600082815b83811061423f575b5050156140df57505050565b6001600160a01b0383166000908152601560205260409020828101546141359490916003016040519261411184611c0c565b835260209361413c8585019260018060a01b038095168452604051988980926121ba565b0388611c27565b60408401968752600160401b8110156104fd57808661415d92018755613f27565b92909261089d576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576141a4836125e38754612180565b81601f84116001146141dd57509282939183926000946141d2575b50501b916000199060031b1c1916179055565b0151925038806141bf565b919083601f1981168760005284600020946000905b88838310614225575050501061420c57505050811b019055565b015160001960f88460031b161c19169055388080612358565b8587015188559096019594850194879350908101906141f2565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614614285570183906140cb565b50905082386140d3565b60018060a01b031660005260156020526142b26002604060002001918254611e4e565b9055565b919060405192816020850152602084526142cf84611bde565b6001600160401b03601c541693604051946142e986611c0c565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161431d81612160565b61432681612160565b60ff80198a54169116178855519687516001600160401b0381116104fd5761435e816143556001850154612180565b60018501612273565b6020601f821160011461443057614417949282600080516020614fe18339815191529795936002936122ae9c9d600092614425575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036143dc82612398565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a161428f565b015190503880614393565b6001830160005260206000209960005b601f19841681106144a35750926001836122ae9b9c6002946144179997600080516020614fe18339815191529b9997601f1981161061448a575b505050811b0160018201556143ab565b015160001960f88460031b161c1916905538808061447a565b828201518c556001909b019a60209283019201614440565b60ff60135416600381101561216a576108d757565b601454600a548110156144e1575b50565b61ffff601654166001600160401b03600c541611156144fd5750565b61010061ff00196012541617601255604080516020908181018282526001805480925284830190858360051b850101926000958287527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69387905b898483106145ec575050505050505090807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593920390a160018060a01b03600e54166145a66002548095611e4e565b93813b156109ee57906024839285519687938492637903ab2760e11b845260048401525af19182156145e2575050156144de576122ae90611bf9565b51903d90823e3d90fd5b92600361462a87989995839798949596603f198d82030187528b54815260018060a01b03868d01541685820152606080928201520160028b016121ba565b9801920192019094939291614558565b6146426144bb565b80156146a957336000908152601560205260409020600201548015611aff578110156146985760ff60125460081c1615614680576122ae903361470e565b8061468e6122ae92336146bb565b610f368133612973565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146fc576146e89161291d565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472784611bde565b6001600160401b03601c5416936040519461474186611c0c565b60018652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161477581612160565b61477e81612160565b60ff80198a54169116178855519687516001600160401b0381116104fd576147ad816143556001850154612180565b6020601f821160011461487f57614866949282600080516020614fe18339815191529795936002936122ae9c9d600092614874575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482b82612398565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a16146bb565b0151905038806147e2565b6001830160005260206000209960005b601f19841681106148f25750926001836122ae9b9c6002946148669997600080516020614fe18339815191529b9997601f198116106148d9575b505050811b0160018201556147fa565b015160001960f88460031b161c191690553880806148c9565b828201518c556001909b019a6020928301920161488f565b60ff60125460081c166149f7575b336000908152601560205260409020600201548015611aff5761493a33614a04565b50600090338252602460205281604081206149558154612180565b806149ba575b50505060ff60125460081c1615614977576122ae91503361470e565b60406122ae923381526003602052205480614998575b5061468e81336146bb565b806149a86149b49260025461291d565b600255610f3633613d4d565b3861498d565b82601f82116001146149d2575050555b81388061495b565b90918082526149f0601f60208420940160051c840160018501611fc3565b55556149ca565b6149ff6144bb565b614918565b6000818152602660205260408120549091908015614ae95760001990808201818111614ad55760255490838201918211614ac157808203614a8d575b5050506025548015614a7957810190614a588261203b565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aab614a9c6120ab9361203b565b90549060031b1c92839261203b565b9055845260266020526040842055388080614a40565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b80518210156120255760209160051b010190565b919091821561340f576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614c915780614bf25750600b54614b4c9161291d565b8152602283528181208251808286829454938481520190855286852092855b88828210614bdc57505050614b8292500382611c27565b928351948515612eb257858110612eb25785900493825b868110614ba95750505050505050565b6001906001600160a01b03614bbe8285614aee565b5116855260218452858520614bd4888254611e4e565b905501614b99565b8554845260019586019587955093019201614b6b565b846001859214600014614c4257606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cb283611cde565b93604094614cc286519182611c27565b848152601f19614cd186611cde565b0194602095368784013760005b818110614da857505060009461ffff8060165416600192839182945b614d57575b505050505060ff600e5460a01c1694858102958187041490151715611e5b576064614d2b950491614e1f565b9015614d35575050565b600681101561216a5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614da05760009081526018855220548493929186918591614d9691614d90906001600160a01b0316613133565b90611e4e565b9b01169493614cfa565b505098614cff565b6001600160a01b0380614dbb8387614aee565b51166000526017885261ffff89600020541615614dfb5790614dea600192614de38388614aee565b5116613133565b614df48286614aee565b5201614cde565b8890614e0960249387614aee565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f075782518514801590614efc575b614eef579392919085945b848610614e67575050505050501015614e5f57600090600590565b600190600090565b909192939495614e81614e7a8884614aee565b5184614f14565b50614e8b81612160565b614ede576001600160a01b0380614ea28a88614aee565b5116911603614ece57614ec2600191614ebb8988614aee565b5190611e4e565b96019493929190614e44565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e39565b5050505050905090600290565b8151919060418303614f4557614f3e92506020820151906060604084015193015160001a90614f50565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fd457926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fc85780516001600160a01b03811615614fbf57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212208365497f3930f76c2e44a97011eac04d4fdac27c51258885a3dbc3b6ce4a273664736f6c63430008130033","sourceMap":"215:373:99:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":337,"length":20}]}}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c9081630b7fbe6014611b175750806310fd4261146119a0578063268119361461178d5780632e17de7814611760578063350a14bf1461172d5780633a4b66f1146116515780633f4ba83a146115d957806341c0e1b5146115485780634c860af6146114f45780634e71d92d146113605780635c975abb146113305780636170b16214610f8057806366783c9b14610e9f5780638456cb5914610e37578063b9ee2bb914610a38578063c7ebdaef146109f2578063cc2dc2b914610972578063d66d9e1914610927578063da5d09ee146101bb5763ed7c4da1146100fd57600080fd5b346101b857806003193601126101b85760008051602061502183398151915260018154146101a657806001839255610133611e23565b73__$4a8700ca5e162cb61a0c4650a4871f1ad5$__803b156101a25782602491604051928380926382985e0b60e01b82523360048301525af4908115610197578391610180575b50505580f35b61018990611bf9565b61019457813861017a565b50fd5b6040513d85823e3d90fd5b5050fd5b6040516329f745a760e01b8152600490fd5b80fd5b50346101b85760603660031901126101b8576004356001600160401b038111610923576101ec903690600401611c9a565b906024356001600160401b03811161091f5761020c903690600401611c9a565b916044356001600160401b03811161091b5761022c903690600401611c9a565b909461023661407b565b61023e611dde565b60ff601354166003811015610907576001036108d7578181036108c5578481036108c55760125460081c60ff161561052557865b818110610283575050505050505080f35b610297610291828888613ed6565b9061403f565b6001600160a01b036102b26102ad848689613f17565b611fda565b166001600160a01b03909116036105135761031c6102d46102ad838588613f17565b6102df838989613ed6565b6102ed85888d969496613f17565b35610308604051958693604060208601526060850191613ac7565b90604083015203601f198101845283611c27565b6001600160401b03601c541660405161033481611c0c565b600381526020810184815260018060a01b038416604083015282600052601d602052604060002090825161036781612160565b61037081612160565b60ff80198454169116178255518051906001600160401b0382116104fd576103a88261039f6001860154612180565b60018601612273565b602090601f8311600114610476579282600080516020614fe183398151915297959360029360019b9a989660009261046b575b5050600019600383901b1c1916908a1b17818a01555b01906040888060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361042182612398565b166001600160401b0319601c541617601c5561045c60405193849360038552888060a01b031660208501526080806040860152840190613eb1565b9060608301520390a101610272565b0151905038806103db565b906001840160005260206000209160005b601f19851681106104e557508360029360019b9a9896938c93600080516020614fe18339815191529b9997601f198116106104cc575b505050811b01898201556103f1565b015160001960f88460031b161c191690553880806104bd565b91926020600181928685015181550194019201610487565b634e487b7160e01b600052604160045260246000fd5b604051634be9251d60e11b8152600490fd5b9490929391865b868110610697575050505050506001600160401b03600c541610156106855761010061ff0019601254161760125560405190602091828101838252600154809152604082019060408160051b8401019460016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6926000905b838210610639575050505050807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c959392930390a1600e5460025482916001600160a01b0316803b156101a2578290602460405180948193637903ab2760e11b83528160048401525af1801561062e5761061e57505080f35b61062790611bf9565b6101b85780f35b6040513d84823e3d90fd5b90919293968360036106766060600194603f198b82030187528c5481528c86808060a01b0391015416858201528160408201520160028c016121ba565b990192019201909392916105a7565b60405163031480b160e51b8152600490fd5b6106a5610291828689613ed6565b6001600160a01b039081806106be6102ad868d89613f17565b16911603610513576106dc6106d76102ad848b87613f17565b613133565b6108b3576107026106f16102ad848b87613f17565b6106fc84888b613ed6565b91613f62565b6107256107136102ad848b87613f17565b61071e848988613f17565b3590612889565b6107336102ad838a86613f17565b9061073f838887613f17565b359161076e61074f85898c613ed6565b6040519561075c87611c0c565b86528460208701941684523691611c63565b9160408401928352600154600160401b8110156104fd578060016107959201600155613f27565b94909461089d57518455600184019151166001600160601b0360a01b825416179055518051906001600160401b0382116104fd576107e3826107da6002860154612180565b60028601612273565b602090601f8311600114610829579180600292600196959460009261081e575b5050600019600383901b1c191690851b179101555b0161052c565b015190503880610803565b906002840160005260206000209160005b601f1985168110610885575092600292600196959492879383601f1981161061086c575b505050811b01910155610818565b015160001960f88460031b161c1916905538808061085e565b9192602060018192868501518155019401920161083a565b634e487b7160e01b600052600060045260246000fd5b604051630472b35360e41b8152600490fd5b604051637e65935960e01b8152600490fd5b6109036108e2613e34565b60405163015538b160e01b8152602060048201529182916024830190613eb1565b0390fd5b634e487b7160e01b88526021600452602488fd5b8580fd5b8380fd5b5080fd5b50346101b857806003193601126101b85760008051602061502183398151915260018154146101a65780600183925561095e611e23565b61096661407b565b61096e61490a565b5580f35b50346101b85760603660031901126101b8576001600160401b036004358181116109ee57366023820112156109ee576109b5903690602481600401359101611d09565b6044359182116109ee57366023830112156109ee576109e16109eb923690602481600401359101611d5f565b9060243590614ca5565b80f35b8280fd5b50346101b857806003193601126101b8576001600160401b0360001981601c541601908111610a24576109eb906123b0565b634e487b7160e01b82526011600452602482fd5b50346101b857600319606036820112610923576001600160401b03600435116109235760806004356004019160043536030112610923576024356001600160401b0381116109ee57610a8e903690600401611c9a565b91906044356001600160401b038111610e3357610aaf903690600401611c9a565b91610ab8611e23565b60055494600b5495610aca8782611e4e565b60246004350135141580610e23575b610e115760405190610b116020830183610af38a83611f29565b0393610b07601f1995868101835282611c27565b5190209882611e4e565b6004356024013503610d0e57505091610b34610b3c92610b429697943691611d09565b933691611d5f565b91614ca5565b602460043501358252816020526040822090803560421960043536030181121561091f576004350191600483016001600160401b03610b8082611f7a565b16936001600160401b03199485845416178355610ba66001926024848601930190611f8e565b91906001600160401b038311610cfa57600160401b8311610cfa578154838355808410610cdf575b509087959493929190865260208620865b838110610cb8575050505050600480356024810135600284015560448101356003840155606401949101906001600160401b03610c1b86611f7a565b16908254161790556024600435013582526022602052610c3f6040832033906120db565b5060043560240135600555600e546001600160a01b0316803b156109ee576040516347dc9b4f60e01b81529183918391829084908290610c829060048301611f29565b03925af1801561062e57610ca4575b5050610c9f6109eb91611f7a565b6123b0565b610cad90611bf9565b610923578138610c91565b84959697506020610ccc8495969394611fda565b848301558a989796959401929101610bdf565b82895260208920610cf4918101908501611fc3565b38610bce565b634e487b7160e01b88526041600452602488fd5b945094505050506024600435013514610d2657505080f35b60246004350135835282602052604083206040519060208201926020845260806040840152826101008101926001600160401b0381541660c083015260019081810191604060e085015282548096526101208401928a5260208a20908a5b878110610df0575050506002810154606084015260038101546080840152600401546001600160401b031660a0830152039081018352610dc5915082611c27565b51902014610dd05780f35b6024600435013581526022602052610dec6040822033906120db565b5080f35b82546001600160a01b03168552889550602090940193918101918101610d84565b60405163fae4eadb60e01b8152600490fd5b5080602460043501351415610ad9565b8480fd5b50346101b857806003193601126101b857610e50611dde565b610e58611e23565b600080516020615001833981519152600160ff198254161790557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b50346101b85760203660031901126101b85760043560008051602061502183398151915260018154146101a657600181558115610f6e5760ff60125460081c16610f5c57338352600360205281604084205410610f4a5761096e8392338452600360205260408420610f1282825461291d565b9055610f208160025461291d565b6002553384526003602052604084205415610f3c575b33613cd3565b610f4533613d4d565b610f36565b60405163569d45cf60e11b8152600490fd5b604051631b39f2f360e11b8152600490fd5b604051631036b5ad60e31b8152600490fd5b5060203660031901126101b8576004356001600160401b0381116109235736602382011215610923576001600160401b038160040135116109235736602482600401358301011161092357600160008051602061502183398151915254146101a657600160008051602061502183398151915255610ffc611e23565b61100461407b565b60ff60125460081c1680611323575b3415611311573360009081526015602052604090206002015461129c57604182600401350361128a57336001600160a01b0361105660048501356024860161403f565b160361051357611099578060246110739260040135910133613f62565b61107d343361409c565b6110856144d0565b806000805160206150218339815191525580f35b6110ab36826004013560248401611c63565b6001600160401b03601c541690604051906110c582611c0c565b600282526020820190815233604083015282600052601d60205260406000209082516110f081612160565b6110f981612160565b60ff80198454169116178255518051906001600160401b0382116104fd576111288261039f6001860154612180565b602090601f8311600114611202579282600080516020614fe18339815191529795936002936111df98966000926111f7575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036111a382612398565b166001600160401b0319601c541617601c5560405192839260028452336020850152608060408501526080840190602481600401359101613ac7565b9060608301520390a16111f234336142b6565b611085565b01519050388061115a565b906001840160005260206000209160005b601f19851681106112725750836002936111df989693600193600080516020614fe18339815191529b9997601f19811610611259575b505050811b016001820155611172565b015160001960f88460031b161c19169055388080611249565b91926020600181928685015181550194019201611213565b6040516318dca5e960e21b8152600490fd5b6109036040516112ab81611c0c565b603281527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f72206020820152711a185cc8185b1c9958591e481a9bda5b995960721b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b604051635a78c58160e11b8152600490fd5b61132b6144bb565b611013565b50346101b857806003193601126101b857602060ff60008051602061500183398151915254166040519015158152f35b50346101b857806003193601126101b857600190600080516020615021833981519152828154146101a657828155611396611e23565b336000908152601f602052604090209283549061ffff908183169283156114e257829060101c16918391808795818a01915b61145c575b5050508661143e937f197c586353eaed0a1c53e6e540445b94befab8f932c8115d112115ecbeeed514959363ffff000093899a54911693849260101b169063ffffffff19161717905515611445575b6114268133613cd3565b60408051338152602081019290925290918291820190565b0390a15580f35b336000908152601f6020526040902085905561141c565b9091939483811696828810156114d9578760005260208091858252604060002060405161148881611bde565b898254928383520154938491015243106114ce57859493889688946114af86958a95611e4e565b9c600052526000826040822082815501550116966000190116946113c8565b9850505094936113cd565b965094936113cd565b6040516364b0557f60e01b8152600490fd5b5060603660031901126101b857604435600281101561092357611515611e23565b600e546001600160a01b03163303611536576109eb90602435600435614b02565b60405163e7e601db60e01b8152600490fd5b50346101b857806003193601126101b85761156161407b565b61ffff6115778160195416826016541690612873565b166115c7576012805462ff0000191662010000179055600e5481906001600160a01b0316803b15610194578180916004604051809481936341c0e1b560e01b83525af1801561062e5761061e5750f35b604051636b62255160e11b8152600490fd5b50346101b857806003193601126101b8576115f2611dde565b600080516020615001833981519152805460ff81161561163f5760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b604051638dfc202b60e01b8152600490fd5b50806003193601126101b857611665611e23565b61166d61407b565b6116756144bb565b34156113115733600090815260156020526040902060020154156116bc5760125460081c60ff166116b2576116aa343361409c565b6109eb6144d0565b6109eb34336142b6565b6109036040516116cb81611c0c565b602e81527f4d6574686f64206e6f7420616c6c6f7765642069662076616c696461746f722060208201526d1a185cc81b9bdd081a9bda5b995960921b604082015260405191829163015538b160e01b8352602060048401526024830190613eb1565b50346101b85760203660031901126101b8576004356001600160401b038116810361175b576109eb906123b0565b600080fd5b50346101b85760203660031901126101b85761177a611e23565b61178261407b565b6109eb60043561463a565b50346101b857600319606036820112610923576004356001600160401b039182821161091f5760608260040191833603011261091f57602435838111610e33576117db903690600401611c9a565b919060443585811161199c576117f5903690600401611c9a565b916024860135966006549687891061195157604401906118158287611f8e565b9190506009541680911161198a5761182d8287611f8e565b9050141580611963575b611951576118459085611f8e565b90501561193f5787946040516020810190611872816118648985613b51565b03601f198101835282611c27565b5190209688036118a3575050505050506007541461188e575080f35b81526023602052610dec6040822033906120db565b6118bd9392610b3488969893610b3c939a989a3691611d09565b8060206040516118cc81611bde565b848152015281600655600755825260236020526118ed6040832033906120db565b50600e546001600160a01b031690813b156101a257829161192491604051948580948193630bed761560e01b835260048301613b51565b03925af1801561062e57611936575080f35b6109eb90611bf9565b6040516338d2307f60e01b8152600490fd5b60405163200c52f760e21b8152600490fd5b5060085480156119765788061515611837565b634e487b7160e01b8a52601260045260248afd5b60405163351c700760e01b8152600490fd5b8680fd5b50346101b857602090816003193601126101b8576001600160401b03916004358381116109ee57366023820112156109ee576119e6903690602481600401359101611c63565b926119ef611e23565b3383526017825261ffff60408420541615611aff57835115611aed573383526024825260408320918451918211611ad957611a3482611a2e8554612180565b85612273565b80601f8311600114611a755750839482939492611a6a575b50508160011b916000199060031b1c19161790555b610dec33612072565b015190503880611a4c565b90601f198316958486528286209286905b888210611ac157505083600195969710611aa8575b505050811b019055611a61565b015160001960f88460031b161c19169055388080611a9b565b80600185968294968601518155019501930190611a86565b634e487b7160e01b84526041600452602484fd5b604051637138356f60e01b8152600490fd5b604051633b4f6e2b60e21b8152336004820152602490fd5b905081600319360112610923573415611bcf575060ff60125460081c16610f5c573381526003602052604081205415611b76575b338152600360205260408120611b62348254611e4e565b9055611b7034600254611e4e565b60025580f35b600454600160401b811015611bbb57611b98816001611bb69301600455611fee565b81546001600160a01b0360039290921b91821b19163390911b179055565b611b4b565b634e487b7160e01b82526041600452602482fd5b631036b5ad60e31b8152600490fd5b604081019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57604052565b606081019081106001600160401b038211176104fd57604052565b90601f801991011681019081106001600160401b038211176104fd57604052565b6001600160401b0381116104fd57601f01601f191660200190565b929192611c6f82611c48565b91611c7d6040519384611c27565b82948184528183011161175b578281602093846000960137010152565b9181601f8401121561175b578235916001600160401b03831161175b576020808501948460051b01011161175b57565b35906001600160401b038216820361175b57565b6001600160401b0381116104fd5760051b60200190565b35906001600160a01b038216820361175b57565b9291611d1482611cde565b91611d226040519384611c27565b829481845260208094019160051b810192831161175b57905b828210611d485750505050565b838091611d5484611cf5565b815201910190611d3b565b92919092611d6c84611cde565b91611d7a6040519384611c27565b829480845260208094019060051b83019282841161175b5780915b848310611da457505050505050565b82356001600160401b03811161175b57820184601f8201121561175b578691611dd38683858095359101611c63565b815201920191611d95565b7f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5546001600160a01b03163303611e1157565b6040516330cd747160e01b8152600490fd5b60ff6000805160206150018339815191525416611e3c57565b60405163d93c066560e01b8152600490fd5b91908201809211611e5b57565b634e487b7160e01b600052601160045260246000fd5b9035603e198236030181121561175b570190565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b578160051b3603831361175b57565b60408201916001600160401b03611ecf83611cca565b1681526060611ee360209384810190611e85565b839195604086839601525201929160005b828110611f02575050505090565b909192938280600192838060a01b03611f1a89611cf5565b16815201950193929101611ef4565b6020815260806001600160401b03611f736060611f59611f498780611e71565b85602088015260a0870190611eb9565b956020810135604087015260408101358287015201611cca565b1691015290565b356001600160401b038116810361175b5790565b903590601e198136030182121561175b57018035906001600160401b03821161175b57602001918160051b3603831361175b57565b818110611fce575050565b60008155600101611fc3565b356001600160a01b038116810361175b5790565b6004548110156120255760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b6025548110156120255760256000527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0190600090565b6000818152602660205260408120546120d657602554600160401b811015611bbb5790826120c26120ab8460016040960160255561203b565b819391549060031b91821b91600019901b19161790565b905560255492815260266020522055600190565b905090565b9190600183016000908282528060205260408220541560001461215a57845494600160401b861015612146576001860180825586101561213257836040949596828552602085200155549382526020522055600190565b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b83526041600452602483fd5b50925050565b6004111561216a57565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156121b0575b602083101461219a57565b634e487b7160e01b600052602260045260246000fd5b91607f169161218f565b90600092918054916121cb83612180565b91828252600193848116908160001461222d57506001146121ed575b50505050565b90919394506000526020928360002092846000945b8386106122195750505050010190388080806121e7565b805485870183015294019385908201612202565b9294505050602093945060ff191683830152151560051b010190388080806121e7565b60005b8381106122635750506000910152565b8181015183820152602001612253565b9190601f811161228257505050565b6122ae926000526020600020906020601f840160051c830193106122b0575b601f0160051c0190611fc3565b565b90915081906122a1565b90808214612394576122cc8154612180565b906001600160401b0382116104fd5781906122f1826122eb8654612180565b86612273565b600090601f83116001146123285760009261231d575b50508160011b916000199060031b1c1916179055565b015490503880612307565b81526020808220858352818320935090601f1985169083905b82821061237b575050908460019594939210612362575b505050811b019055565b015460001960f88460031b161c19169055388080612358565b8495819295850154815560018091019601940190612341565b5050565b9060016001600160401b0380931601918211611e5b57565b601c546001600160401b03828116929080831684106123db5760405163040aaa0560e11b8152600490fd5b808360401c1684106121e75780604093841c165b848282161115612456575050916020916124297f246f00b61ce672242f33bb680a47147cd54d3dfd04dbb76956ba42f88087bf6394612398565b67ffffffffffffffff60401b601c5491831b169067ffffffffffffffff60401b191617601c5551908152a1565b81612474826001600160401b0316600052601d602052604060002090565b6002808201548254929491926001600160a01b03918216919060ff1661249981612160565b80850361250b57505060036124ca60016124d094959697019260018060a01b03166000526015602052604060002090565b016122ba565b6124ed816001600160401b0316600052601d602052604060002090565b9160009081845560019361250285820161292a565b015501166123ef565b9091945061251881612160565b6003918183036126b657505087519361254085612539816001809a016121ba565b0386611c27565b84518501916020928a8785830192031261175b578387015189811161175b5787019681603f8901121561175b5787858d9901519261258961258085611c48565b9a519a8b611c27565b838a528d848301011161175b578c926125a79184888c019101612250565b015192816125c78460018060a01b03166000526015602052604060002090565b01918751918a83116126a1578a986125e9846125e38754612180565b87612273565b81601f851160011461262e575061261e9798999a8493928492600095612623575b50501b92600019911b1c1916179055612889565b6124d0565b01519350388061260a565b91601f9b9493919b1984169b866000528c84600020946000915b82106126865750508461261e9a9b9c9d1061266c575b50505050811b019055612889565b01519060f884600019921b161c191690553880808061265e565b8383015186558f9d509487019492830192908101908e612648565b60246000634e487b7160e01b81526041600452fd5b915091938895939551936126d2856125398160018095016121ba565b6020808680518101031261175b5781818c970151956126f081612160565b036128155784906127018285612973565b601e5461270e9043611e4e565b9287519061271b82611bde565b8482528282018481526001600160a01b0387166000908152601f602052604090209091909283549161ffff9384848180961695869160101c169061275e91612873565b169c60009d8e5282870188528d20925183555191015561277d90612860565b1661ffff198254161790558b519384528301528982015260607f083b080788e20bd0930c2bca2ae4fbc51a59ced08c1b5992271f8cb439498a6391a1600e541690813b156109ee578291602483928a5195869384926345f5448560e01b845260048401525af190811561280a575090849392916127fb575b506124d0565b61280490611bf9565b386127f5565b8751903d90823e3d90fd5b50508293509161282591926128cd565b600e541690813b1561175b578651916316989f6f60e21b83528260048160009485945af190811561280a575090849392916127fb57506124d0565b90600161ffff80931601918211611e5b57565b91909161ffff80809416911601918211611e5b57565b9060018060a01b0382166000526015602052604060002081815491558181146000146128b457505050565b8111156128c4576122ae91612a02565b6122ae91612d48565b906122ae9161291560018060a01b038216928360005260156020526128fa81600160406000200154611e4e565b93600052601560205283600160406000200155601454611e4e565b601455612a02565b91908203918211611e5b57565b6129348154612180565b908161293e575050565b81601f60009311600114612950575055565b90808391825261296f601f60208420940160051c840160018501611fc3565b5555565b906129e06129e89260018060a01b03811690600082815260156020526129a085600160408420015461291d565b92815260156020526040812060028101848154811590816129f9575b50156129ed575090826003926129db948355816001840155550161292a565b612d48565b60145461291d565b601455565b92505060010155612d48565b905015386129bc565b919060018060a01b03928381166000948186526020916017835261ffff91604097838982205416612c33578360135460081c16846016541610612bff57612a47613855565b60019283825260188652828a8320541688612a6182613133565b10612b7957508152601a8552838982205416612ad0575050505050612acb7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649394612aab836130be565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b612ad9866138a8565b92612ae387613133565b935b8186821611612b3b575b505097516001600160a01b0390951685525050505060208101919091529091507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd908060408101612acb565b8085612b5a86617fff8f95871c1694858852601b8c5287205416613133565b1015612b735790612b6c839282613a07565b9050612ae5565b50612aef565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7598999250612acb95601a91612bb461354d565b835252205416612bf1575b612bc8846134d8565b612bd1836130be565b516001600160a01b03928316815292909116602083015281906040820190565b612bfa846132fd565b612bbf565b5050505050612acb7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9394612aab836134d8565b97929150612c448594979695613871565b97612c4e85613133565b97612c588a613469565b8460165416905b858116828111612d115782811015612cf5575080612c7f612c8592612860565b90613805565b9b909b5b8b1115612ca857612c9a908c61396e565b612ca38b613469565b612c5f565b505093516001600160a01b0390951685525050505060208101919091529092507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd019791508060408101612acb565b849c919c5260188352612d0c858886205416613133565b612c89565b50505050505050612acb91929395507f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd01979450612aab565b909160018060a01b0392838316906000938285526020601a815261ffff95604094878683205416612f82578082526017835287868320541615612f71578415612ec95750612d9583613871565b97612d9f84613133565b985b6001808a83161115612eba5781617fff911c1690818452601885528a612dcb848a87205416613133565b1115612de057612ddb908261396e565b612da1565b505091939597509193955b6019541615612eb257612dfc613855565b60018252601883528581818420541692601b612e1785613133565b95612e20613863565b600183525220541691612e3283613133565b11612e7957505091516001600160a01b03909216825260208201527f143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197908060408101612acb565b91509150612acb7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593612eaa61354d565b612bbf613196565b505050505050565b50509193959750919395612deb565b829450612efd7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b9392989499969799613696565b8651908152a160195416612f115750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd93601b8492612f3f613863565b6001835252205416612f65612f5382613133565b92612f5c613196565b612aab836134d8565b0390a1388080806121e7565b8551632a55ca5360e01b8152600490fd5b84969792939598919415613083575061fffe9193612f9f866138a8565b93612fa987613133565b9480966001958692831b168160195416925b61300f575b505099516001600160a01b039097168752505050506020830193909352509192507fda148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadd9190508060408101612acb565b81811683811161307d578d90848110156130615750508061303261303892612860565b90613480565b9890985b88101561305c5761304d9089613a07565b61305688613469565b86612fbb565b612fc0565b8652601b8552852054909890613078908716613133565b61303c565b50612fc0565b949150506130b79194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b959692506132fd565b51908152a1565b6122ae9061312d61ffff916130d68360195416612860565b9260018060a01b0382169081600052601a60205260406000209085169161ffff1991838382541617905582600052601b6020526040600020906001600160601b0360a01b8254161790556019541617601955613133565b90613414565b60ff60135416600381101561216a57600103613164576001600160a01b031660009081526015602052604090205490565b6001600160a01b031660009081526015602052604090206001015490565b61ffff9081166000190191908211611e5b57565b61ffff80601954169081156132eb57906001906131b581831115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161324f91908a61324083613182565b169060195416176019556138cd565b848252808652613263848484205416613133565b95859860028160195416995b613281575b5050505050505050505050565b8181168a81116132e5578a8110156132ca5750806130326132a192612860565b9a909a5b8910156132c5576132b6908b613a07565b6132bf8a613469565b8761326f565b613274565b859b919b528383526132e0878787205416613133565b6132a5565b50613274565b6040516340d9b01160e01b8152600490fd5b613306906138a8565b61ffff9081601954169161331a8383613a07565b8061332484613182565b1661ffff19601954161760195561333a836138cd565b80821680931461340f579161fffe91600091808352601b9060209382855260018060a01b039260409261337a613374868686205416613133565b87613414565b825280865261338d848484205416613133565b9585986001988997881b168160195416995b6133b0575050505050505050505050565b8181168a81116132e5578a8110156133f45750806130326133d092612860565b9a909a5b8910156132c5576133e5908b613a07565b6133ee8a613469565b8761339f565b859b919b5283835261340a878787205416613133565b6133d4565b505050565b9190915b60018061ffff831611156134635781617fff911c16908361344e6000848152601b602052604060018060a01b0391205416613133565b10156134635761345e9082613a07565b613418565b50509050565b60011b906201fffe61fffe831692168203611e5b57565b91909161ffff92838216600052601b6020526134c360018060a01b036134ac8160406000205416613133565b958316600052601b60205260406000205416613133565b908185106134d15750509190565b9350919050565b6122ae9061354761ffff916134f08360165416612860565b9260018060a01b0382169081600052601760205260406000209085169161ffff199183838254161790558260005260186020526040600020906001600160601b0360a01b8254161790556016541617601655613133565b906137b6565b61ffff80601654169081156132eb579060019061356c81831115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161360691908a6135f783613182565b1690601654161760165561390f565b84825280865261361a848484205416613133565b95859860028160165416995b613637575050505050505050505050565b8181168a81116132e5578a81101561367b575080612c7f61365792612860565b9a909a5b8911156132c55761366c908b61396e565b6136758a613469565b87613626565b859b919b52838352613691878787205416613133565b61365b565b61369f90613871565b9061ffff908160165416906136b4828561396e565b826136be83613182565b1661ffff1960165416176016556136d48261390f565b8284168092146137b05760009291929183835260189260209484865260018060a01b039160409161371261370c858585205416613133565b8a6137b6565b8152858752613725838383205416613133565b9561372f89613469565b978560165416985b8681168a81116137a2578a811015613787575080612c7f61375792612860565b9a909a5b89111561377a5761376c908b61396e565b6137758a613469565b613737565b5050505050505092505050565b849b919b5282825261379d868686205416613133565b61375b565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156134635781617fff911c1690836137f060008481526018602052604060018060a01b0391205416613133565b111561346357613800908261396e565b6137ba565b919061ffff808416600052601860205261384660018060a01b0361382f8160406000205416613133565b928416600052601860205260406000205416613133565b93848211156134d15750509190565b61ffff60165416156132eb57565b61ffff60195416156132eb57565b6001600160a01b031660009081526017602052604090205461ffff1690811561389657565b60405163f2755e3760e01b8152600490fd5b6001600160a01b03166000908152601a602052604090205461ffff1690811561389657565b61ffff166000908152601b6020908152604080832080546001600160a01b031981169091556001600160a01b03168352601a9091529020805461ffff19169055565b61ffff16600090815260186020908152604080832080546001600160a01b031981169091556001600160a01b0316835260179091529020805461ffff19169055565b1561395857565b634e487b7160e01b600052600160045260246000fd5b61399361ffff80806016541693169361398984861115613951565b1691821115613951565b6000828152601860208181526040808420805486865282862080546001600160a01b0392831680895260178752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b613a2261ffff80806019541693169361398984861115613951565b6000828152601b60208181526040808420805486865282862080546001600160a01b03928316808952601a8752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b9035601e198236030181121561175b5701602081359101916001600160401b03821161175b57813603831361175b57565b908060209392818452848401376000828201840152601f01601f1916010190565b613b11613b06613af88380611e71565b604085526040850190611eb9565b916020810190611e71565b91602081830391015281359160ff831680930361175b57613b3e604091613b4e9484526020810190613a96565b9190928160208201520191613ac7565b90565b6020808252613b608380611e71565b6060918281850152613b7760809283860190611eb9565b613b8e604096838101358888015287810190611e85565b939096601f199686888286030191015284835283830191848660051b8501019880986000955b888710613bc957505050505050505050505090565b909192939495969798999a82828203018752613be58c85611e71565b90813560de198336030181121561175b578782528201918a90888e6001600160401b03613c5c613c4c613c39613c30613c1e8b80611e71565b60e080988c01526101208b0190613ae8565b978a018a611e71565b96603f1997888a830301868b0152613ae8565b928d8901358d8901528801611cca565b169060a091828701528a8701359263ffffffff60e01b841680940361175b578f95613c93613ca39460c096878b01528a018a613a96565b9290918985030190890152613ac7565b94013561010084015201359081151580920361175b578a01529a8801999897966001019587019493929190613bb4565b814710613d35576000918291829182916001600160a01b03165af13d15613d30573d613cfe81611c48565b90613d0c6040519283611c27565b8152600060203d92013e5b15613d1e57565b604051630a12f52160e11b8152600490fd5b613d17565b60405163cd78605960e01b8152306004820152602490fd5b60049081549160005b838110613d635750505050565b613d6c81611fee565b90546003916001600160a01b039190831b1c811685821614613d92575050600101613d56565b929350939060001991828101908111613e1f5790613dc384613db6613de294611fee565b905490891b1c1691611fee565b90919082549060031b9160018060a01b03809116831b921b1916179055565b82548015613e0a570192613df584611fee565b81939154921b1b1916905555388080806121e7565b603184634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b60405190608082018281106001600160401b038211176104fd576040526045825264185c1c195960da1b6060837f4d6574686f64206e6f7420616c6c6f776564206966207065726d697373696f6e60208201527f656420697320656e61626c656420616e64207375626e657420626f6f7473747260408201520152565b90602091613eca81518092818552858086019101612250565b601f01601f1916010190565b91908110156120255760051b81013590601e198136030182121561175b5701908135916001600160401b03831161175b57602001823603811361175b579190565b91908110156120255760051b0190565b600154811015612025576003906001600052027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60190600090565b6001600160a01b0316600090815260156020526040902090929190600301906001600160401b0381116104fd57613fa381613f9d8454612180565b84612273565b6000601f8211600114613fdc5781929394600092613fd15750508160011b916000199060031b1c1916179055565b013590503880612307565b601f198216948382526020918281209281905b8882106140275750508360019596971061400d57505050811b019055565b0135600019600384901b60f8161c19169055388080612358565b80600184968294958701358155019501920190613fef565b9061404c60418214613951565b8060011161175b576140679136916000190190600101611c63565b80516020909101206001600160a01b031690565b60ff60125460101c1661408a57565b60405163248c8efb60e11b8152600490fd5b906140b1906140ab818461428f565b826128cd565b60ff60125460081c16156140c25750565b60018054600082815b83811061423f575b5050156140df57505050565b6001600160a01b0383166000908152601560205260409020828101546141359490916003016040519261411184611c0c565b835260209361413c8585019260018060a01b038095168452604051988980926121ba565b0388611c27565b60408401968752600160401b8110156104fd57808661415d92018755613f27565b92909261089d576002935183558583019151166001600160601b0360a01b825416179055019251908151916001600160401b0383116104fd576141a4836125e38754612180565b81601f84116001146141dd57509282939183926000946141d2575b50501b916000199060031b1c1916179055565b0151925038806141bf565b919083601f1981168760005284600020946000905b88838310614225575050501061420c57505050811b019055565b015160001960f88460031b161c19169055388080612358565b8587015188559096019594850194879350908101906141f2565b6000829052600381027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf701546001600160a01b03878116911614614285570183906140cb565b50905082386140d3565b60018060a01b031660005260156020526142b26002604060002001918254611e4e565b9055565b919060405192816020850152602084526142cf84611bde565b6001600160401b03601c541693604051946142e986611c0c565b60008652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161431d81612160565b61432681612160565b60ff80198a54169116178855519687516001600160401b0381116104fd5761435e816143556001850154612180565b60018501612273565b6020601f821160011461443057614417949282600080516020614fe18339815191529795936002936122ae9c9d600092614425575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b036143dc82612398565b166001600160401b0319601c541617601c556040519283926000845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a161428f565b015190503880614393565b6001830160005260206000209960005b601f19841681106144a35750926001836122ae9b9c6002946144179997600080516020614fe18339815191529b9997601f1981161061448a575b505050811b0160018201556143ab565b015160001960f88460031b161c1916905538808061447a565b828201518c556001909b019a60209283019201614440565b60ff60135416600381101561216a576108d757565b601454600a548110156144e1575b50565b61ffff601654166001600160401b03600c541611156144fd5750565b61010061ff00196012541617601255604080516020908181018282526001805480925284830190858360051b850101926000958287527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69387905b898483106145ec575050505050505090807f4914d88063275a25a13b2df37125e216745d812f94c56504be4bd78cf60c9593920390a160018060a01b03600e54166145a66002548095611e4e565b93813b156109ee57906024839285519687938492637903ab2760e11b845260048401525af19182156145e2575050156144de576122ae90611bf9565b51903d90823e3d90fd5b92600361462a87989995839798949596603f198d82030187528b54815260018060a01b03868d01541685820152606080928201520160028b016121ba565b9801920192019094939291614558565b6146426144bb565b80156146a957336000908152601560205260409020600201548015611aff578110156146985760ff60125460081c1615614680576122ae903361470e565b8061468e6122ae92336146bb565b610f368133612973565b60405162d11df360e61b8152600490fd5b60405163c79cad7b60e01b8152600490fd5b6001600160a01b031660008181526015602052604090206002015490918082106146fc576146e89161291d565b906000526015602052600260406000200155565b60405163ac69360360e01b8152600490fd5b9190604051928160208501526020845261472784611bde565b6001600160401b03601c5416936040519461474186611c0c565b60018652602086019582875260018060a01b038416604082015281600052601d602052604060002096815161477581612160565b61477e81612160565b60ff80198a54169116178855519687516001600160401b0381116104fd576147ad816143556001850154612180565b6020601f821160011461487f57614866949282600080516020614fe18339815191529795936002936122ae9c9d600092614874575b50508160011b916000199060031b1c19161760018201555b0190604060018060a01b03910151166001600160601b0360a01b8254161790556001600160401b0361482b82612398565b166001600160401b0319601c541617601c556040519283926001845260018060a01b0387166020850152608060408501526080840190613eb1565b9060608301520390a16146bb565b0151905038806147e2565b6001830160005260206000209960005b601f19841681106148f25750926001836122ae9b9c6002946148669997600080516020614fe18339815191529b9997601f198116106148d9575b505050811b0160018201556147fa565b015160001960f88460031b161c191690553880806148c9565b828201518c556001909b019a6020928301920161488f565b60ff60125460081c166149f7575b336000908152601560205260409020600201548015611aff5761493a33614a04565b50600090338252602460205281604081206149558154612180565b806149ba575b50505060ff60125460081c1615614977576122ae91503361470e565b60406122ae923381526003602052205480614998575b5061468e81336146bb565b806149a86149b49260025461291d565b600255610f3633613d4d565b3861498d565b82601f82116001146149d2575050555b81388061495b565b90918082526149f0601f60208420940160051c840160018501611fc3565b55556149ca565b6149ff6144bb565b614918565b6000818152602660205260408120549091908015614ae95760001990808201818111614ad55760255490838201918211614ac157808203614a8d575b5050506025548015614a7957810190614a588261203b565b909182549160031b1b19169055602555815260266020526040812055600190565b634e487b7160e01b84526031600452602484fd5b614aab614a9c6120ab9361203b565b90549060031b1c92839261203b565b9055845260266020526040842055388080614a40565b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b85526011600452602485fd5b505090565b80518210156120255760209160051b010190565b919091821561340f576040908151906020938483018381106001600160401b038211176104fd5784526000928390526002811015614c915780614bf25750600b54614b4c9161291d565b8152602283528181208251808286829454938481520190855286852092855b88828210614bdc57505050614b8292500382611c27565b928351948515612eb257858110612eb25785900493825b868110614ba95750505050505050565b6001906001600160a01b03614bbe8285614aee565b5116855260218452858520614bd4888254611e4e565b905501614b99565b8554845260019586019587955093019201614b6b565b846001859214600014614c4257606491519063015538b160e01b82526004820152601f60248201527f72657761726473206e6f7420646566696e656420666f722062617463686573006044820152fd5b608491519063015538b160e01b82526004820152602360248201527f72657761726473206e6f7420646566696e656420666f72206f626a656374206b6044820152621a5b9960ea1b6064820152fd5b634e487b7160e01b83526021600452602483fd5b91825191614cb283611cde565b93604094614cc286519182611c27565b848152601f19614cd186611cde565b0194602095368784013760005b818110614da857505060009461ffff8060165416600192839182945b614d57575b505050505060ff600e5460a01c1694858102958187041490151715611e5b576064614d2b950491614e1f565b9015614d35575050565b600681101561216a5760ff602492519163282ef1c160e01b8352166004820152fd5b90919293988a858b16838111614da05760009081526018855220548493929186918591614d9691614d90906001600160a01b0316613133565b90611e4e565b9b01169493614cfa565b505098614cff565b6001600160a01b0380614dbb8387614aee565b51166000526017885261ffff89600020541615614dfb5790614dea600192614de38388614aee565b5116613133565b614df48286614aee565b5201614cde565b8890614e0960249387614aee565b519151633b4f6e2b60e21b815291166004820152fd5b84519294600094908415614f075782518514801590614efc575b614eef579392919085945b848610614e67575050505050501015614e5f57600090600590565b600190600090565b909192939495614e81614e7a8884614aee565b5184614f14565b50614e8b81612160565b614ede576001600160a01b0380614ea28a88614aee565b5116911603614ece57614ec2600191614ebb8988614aee565b5190611e4e565b96019493929190614e44565b5050505050505050600090600390565b505050505050505050600090600490565b5050505050905090600190565b508351851415614e39565b5050505050905090600290565b8151919060418303614f4557614f3e92506020820151906060604084015193015160001a90614f50565b9192909190565b505060009160029190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614fd457926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15614fc85780516001600160a01b03811615614fbf57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fe1c593a2b803c3f9038e8b6743ba79fbc4276d2770979a01d2768ed12bea3243fc451c9429c27db68f286ab8a68f311f1dccab703ba9423aed29cd397ae63f863691bb03ffc16c56fc96b82fd16cd1b3715f0bc3cdc6407005f49bb6205860095a26469706673582212208365497f3930f76c2e44a97011eac04d4fdac27c51258885a3dbc3b6ce4a273664736f6c63430008130033","sourceMap":"215:373:99:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:68;215:373:99;;582:20:68;578:50;;215:373:99;477:1:68;215:373:99;;;982:72:66;;:::i;:::-;17146:10:85;:44;;;;;215:373:99;;;;;;;;;;;;17146:44:85;;17179:10;215:373:99;17146:44:85;;215:373:99;17146:44:85;;;;;;;;;;;215:373:99;;;;;;17146:44:85;;;;:::i;:::-;215:373:99;;17146:44:85;;;;215:373:99;;;17146:44:85;215:373:99;;;;;;;;;17146:44:85;215:373:99;;;578:50:68;215:373:99;;-1:-1:-1;;;611:17:68;;215:373:99;;611:17:68;215:373:99;;;;;;;;;;-1:-1:-1;;215:373:99;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;:::i;:::-;4273:61:72;;;;:::i;:::-;10233:10:85;;:::i;:::-;215:373:99;1693:14:71;215:373:99;;;;;;;;1726:24:71;1693:57;1689:146;;10337:34:85;;;10333:98;;10445:38;;;10441:102;;10557:14;215:373:99;;;;;;;;6249:9:71;6260:10;;;;;;10553:229:85;;;;;;;215:373:99;;6249:9:71;6346:33;6365:13;;;;;:::i;:::-;6346:33;;:::i;:::-;-1:-1:-1;;;;;6417:13:71;;;;;;:::i;:::-;;:::i;:::-;215:373:99;-1:-1:-1;;;;;215:373:99;;;6397:33:71;6393:100;;1243:27:70;6684:13:71;;;;;;:::i;:::-;6709;;;;;:::i;:::-;6732:9;;;;;;;;:::i;:::-;215:373:99;;;;1243:27:70;;;215:373:99;;1243:27:70;;215:373:99;;;;;;:::i;:::-;;;;;;1243:27:70;215:373:99;;1243:27:70;;;;;;:::i;:::-;-1:-1:-1;;;;;21913:11:69;215:373:99;;;;;;;:::i;:::-;;;;;3528:63:70;;215:373:99;;;;;;;;;;;3528:63:70;;215:373:99;;;;3489:15:70;215:373:99;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;1726:24:71;215:373:99;;;;:::i;:::-;1726:24:71;215:373:99;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;1726:24:71;215:373:99;;;;;;;;;-1:-1:-1;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;3528:63:70;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;215:373:99;-1:-1:-1;;;;;215:373:99;21913:11:69;215:373:99;;;21913:11:69;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;1496:205:70;;;215:373:99;6249:9:71;;215:373:99;;;;-1:-1:-1;215:373:99;;;;;;1726:24:71;215:373:99;;;;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;;;1726:24:71;215:373:99;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;6393:100:71;215:373:99;;-1:-1:-1;;;6457:21:71;;215:373:99;;6457:21:71;10553:229:85;4447:9:71;;;;;;4458:10;;;;;;215:373:99;;;;;;-1:-1:-1;;;;;5341:15:71;215:373:99;;-1:-1:-1;5331:25:71;5327:91;;215:373:99;;;10557:14:85;215:373:99;;;10557:14:85;215:373:99;;;;;;;;;;;;1726:24:71;215:373:99;;;;;;;;;;;;;;;;1726:24:71;215:373:99;;;;;;;;;;;;5464:39:71;;;;;;;;;;;;5596:16;215:373:99;;;;;-1:-1:-1;;;;;215:373:99;5587:84:71;;;;;215:373:99;;;;;;;;;;;;5587:84:71;;;215:373:99;5587:84:71;;215:373:99;5587:84:71;;;;;;;;10553:229:85;;215:373:99;;5587:84:71;;;;:::i;:::-;215:373:99;;;;5587:84:71;215:373:99;;;;;;;;;;;;;;;;;;;1726:24:71;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5327:91:71;215:373:99;;-1:-1:-1;;;5379:28:71;;215:373:99;;5379:28:71;4447:9;4544:33;4563:13;;;;;:::i;4544:33::-;-1:-1:-1;;;;;215:373:99;;;4615:13:71;;;;;;:::i;:::-;215:373:99;;;4595:33:71;4591:100;;16026:34:69;4832:13:71;;;;;;:::i;:::-;16026:34:69;:::i;:::-;4808:112:71;;4983:13;4968;;;;;;:::i;:::-;4983;;;;;:::i;:::-;;;:::i;:::-;19151:5:69;5051:13:71;;;;;;:::i;:::-;5066:9;;;;;:::i;:::-;215:373:99;19151:5:69;;:::i;:::-;5133:13:71;;;;;;:::i;:::-;5156:9;;;;;;:::i;:::-;215:373:99;5177:13:71;215:373:99;5177:13:71;;;;;:::i;:::-;215:373:99;;;;;;:::i;:::-;;;5116:76:71;215:373:99;5116:76:71;;215:373:99;;;;;;;:::i;:::-;5116:76:71;215:373:99;5116:76:71;;215:373:99;;;1726:24:71;215:373:99;-1:-1:-1;;;215:373:99;;;;;;1726:24:71;215:373:99;;;1726:24:71;215:373:99;;:::i;:::-;;;;;;;;;1726:24:71;215:373:99;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;1726:24:71;215:373:99;;;;;;;;-1:-1:-1;;;;215:373:99;;;;;;;;;;;;;;;;4447:9:71;;215:373:99;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;;;1726:24:71;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:24:71;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;4808:112:71;215:373:99;;-1:-1:-1;;;4877:28:71;;215:373:99;;4877:28:71;10441:102:85;215:373:99;;-1:-1:-1;;;10506:26:85;;215:373:99;;10506:26:85;1689:146:71;2502:71:45;215:373:99;;:::i;:::-;;;-1:-1:-1;;;1773:51:71;;215:373:99;;1773:51:71;;2502:71:45;215:373:99;;;;2502:71:45;;;;:::i;:::-;1773:51:71;;;215:373:99;-1:-1:-1;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;477:1:68;215:373:99;;582:20:68;578:50;;215:373:99;477:1:68;215:373:99;;;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;4326:1;;:::i;:::-;215:373:99;;;;;;;;;;-1:-1:-1;;215:373:99;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;23968:11:69;215:373:99;;;;;;;;561:17;;;:::i;215:373::-;-1:-1:-1;;;215:373:99;;;;;;;;;;;;;-1:-1:-1;;215:373:99;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;:::i;:::-;982:72:66;;;:::i;:::-;3298:30:85;215:373:99;;3331:21:85;215:373:99;3298:54:85;;;;;:::i;:::-;215:373:99;;;3272:22:85;215:373:99;3272:80:85;;:152;;;215:373:99;3255:236:85;;215:373:99;;3535:22:85;3599:54;215:373:99;3535:22:85;;;;;;;:::i;:::-;;215:373:99;3535:22:85;215:373:99;;3535:22:85;;;;;;;;:::i;:::-;215:373:99;3525:33:85;;3599:54;;;:::i;:::-;215:373:99;;;3272:22:85;215:373:99;3573:80:85;215:373:99;;;;;;;;3753:104:85;215:373:99;;;;;;:::i;:::-;;;;;:::i;:::-;3753:104:85;;:::i;:::-;215:373:99;;;3272:22:85;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;:::i;:::-;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;215:373:99;;;;-1:-1:-1;;;215:373:99;;;;;;;;;;;;;;3569:2184:85;215:373:99;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;3272:22:85;;215:373:99;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;:::i;:::-;;;;;;;;;;;;3272:22:85;215:373:99;;;4241:35:85;215:373:99;;8399:50:36;215:373:99;;;4305:10:85;8399:50:36;;:::i;:::-;-1:-1:-1;215:373:99;;;3272:22:85;215:373:99;3298:30:85;215:373:99;4465:16:85;215:373:99;-1:-1:-1;;;;;215:373:99;4456:55:85;;;;;215:373:99;;-1:-1:-1;;;4456:55:85;;215:373:99;;;;;;;;;;;4456:55:85;;215:373:99;4456:55:85;;;:::i;:::-;;;;;;;;;;;215:373:99;4616:34:85;;;;;;:::i;:::-;;:::i;4456:55::-;;;;:::i;:::-;215:373:99;;4456:55:85;;;;215:373:99;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;215:373:99;;;;;;;;3569:2184:85;215:373:99;;;;;;;;;;3272:22:85;215:373:99;4672:56:85;4668:1085;;3569:2184;;215:373:99;;4668:1085:85;215:373:99;;;3272:22:85;215:373:99;;;;;;;;;;;5461:58:85;215:373:99;5461:58:85;;215:373:99;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;215:373:99;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;5461:58:85;;;;;;;;-1:-1:-1;5461:58:85;;:::i;:::-;215:373:99;5451:69:85;;5538:36;5534:209;;215:373:99;;5534:209:85;215:373:99;;;3272:22:85;215:373:99;;;5653:35:85;215:373:99;;8399:50:36;215:373:99;;;5717:10:85;8399:50:36;;:::i;:::-;;215:373:99;;;;;-1:-1:-1;;;;;215:373:99;;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;3255:236:85;215:373:99;;-1:-1:-1;;;3456:24:85;;215:373:99;;3456:24:85;3272:152;215:373:99;;;;;3272:22:85;215:373:99;3368:56:85;;3272:152;;215:373:99;;;;;;;;;;;;;;;;;2234:10:85;;:::i;:::-;982:72:66;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1883:4:66;215:373:99;;;;;;;;1902:20:66;215:373:99;;;1911:10:66;215:373:99;;1902:20:66;215:373:99;;;;;;;;;-1:-1:-1;;215:373:99;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;582:20:68;578:50;;215:373:99;;;9203:11:85;;9199:65;;215:373:99;9278:14:85;215:373:99;;;;9274:79:85;;9384:10;215:373:99;;;;;;;;;;9367:37:85;9363:93;;9708:6;9384:10;;;215:373:99;;;;;;;;9466:38:85;215:373:99;;;9466:38:85;:::i;:::-;215:373:99;;9514:29:85;215:373:99;9514:19:85;215:373:99;9514:29:85;:::i;:::-;:19;215:373:99;9384:10:85;215:373:99;;;;;;;;;9558:33:85;9554:114;;215:373:99;9384:10:85;9708:6;:::i;9554:114::-;9646:10;9384;9646;:::i;:::-;9554:114;;9363:93;215:373:99;;-1:-1:-1;;;9427:18:85;;215:373:99;;9427:18:85;9274:79;215:373:99;;-1:-1:-1;;;9315:27:85;;215:373:99;;9315:27:85;9199:65;215:373:99;;-1:-1:-1;;;9237:16:85;;215:373:99;;9237:16:85;215:373:99;-1:-1:-1;215:373:99;;-1:-1:-1;;215:373:99;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;477:1:68;-1:-1:-1;;;;;;;;;;;215:373:99;582:20:68;578:50;;477:1;-1:-1:-1;;;;;;;;;;;215:373:99;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;215:373:99;11499:14:85;215:373:99;;;;11495:89:85;;;215:373:99;11597:9:85;:14;11593:70;;11700:10;215:373:99;;;;25176:25:69;215:373:99;;;;;17433:25:69;:52;215:373:99;11673:110:85;;372:2:40;215:373:99;;;;11797:57:85;11793:232;;11700:10;-1:-1:-1;;;;;12062:44:85;215:373:99;;;;;;;12062:44:85;:::i;:::-;215:373:99;12120:30:85;12116:89;;215:373:99;;;;12517:9:85;215:373:99;;;;;;11700:10:85;12517:9;:::i;:::-;12583;11597;11700:10;12583:9;:::i;:::-;12608:14;;:::i;:::-;215:373:99;-1:-1:-1;;;;;;;;;;;215:373:99;;;12215:670:85;215:373:99;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22229:11:69;215:373:99;;;;;;;;;:::i;:::-;17433:25:69;215:373:99;;;3528:63:70;;215:373:99;;;11700:10:85;215:373:99;3528:63:70;;215:373:99;;;;3489:15:70;215:373:99;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;477:1:68;215:373:99;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;17433:25:69;215:373:99;;;;;;;;;;;;477:1:68;215:373:99;;;;;;;;;;;477:1:68;215:373:99;;;;;;;;;;;;3528:63:70;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;215:373:99;-1:-1:-1;;;;;215:373:99;22229:11:69;215:373:99;;;22229:11:69;215:373:99;;;;;;17433:25:69;215:373:99;;11700:10:85;215:373:99;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;747:200:70;;;12864:9:85;11597;11700:10;12864:9;:::i;:::-;12215:670;;215:373:99;;;;-1:-1:-1;215:373:99;;;;;;477:1:68;215:373:99;;;;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;17433:25:69;215:373:99;;;;;477:1:68;215:373:99;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;;;;;;;;;;;;;477:1:68;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:1:68;215:373:99;;;;;;;;;;;;;;;11793:232:85;215:373:99;;-1:-1:-1;;;11990:24:85;;215:373:99;;11990:24:85;11673:110;2502:71:45;215:373:99;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;215:373:99;;;;;;13582:42:85;;;;;;11734:38;;215:373:99;;11734:38:85;;2502:71:45;215:373:99;2502:71:45;;;;:::i;11593:70:85:-;215:373:99;;-1:-1:-1;;;11634:18:85;;215:373:99;;11634:18:85;11495:89;11529:14;;:::i;:::-;11495:89;;215:373:99;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;477:1:68;247:48;-1:-1:-1;;;;;;;;;;;215:373:99;;;582:20:68;578:50;;215:373:99;;;982:72:66;;:::i;:::-;17000:10:85;215:373:99;;;;3658:13:69;215:373:99;;;;;;;;;;;;;;1777:16:69;;;1773:78;;215:373:99;;;;;1895:25:69;;1930:14;;;2019:13;;;;1954:477;477:1:68;;;1954:477:69;215:373:99;;;;23200:36:69;215:373:99;23200:36:69;215:373:99;;;;;;;;;;;;;;;;;;;;;;;3707:14:69;3703:76;;1954:477;3818:6;17000:10:85;;3818:6:69;:::i;:::-;215:373:99;;;17000:10:85;215:373:99;;;;;;;;;;;;;;;;;23200:36:69;;;;215:373:99;;;3703:76:69;17000:10:85;215:373:99;;;;3658:13:69;215:373:99;;;;;17000:10:85;;215:373:99;3703:76:69;;1954:477;215:373:99;;;;;;;1961:10:69;;;;;;;215:373:99;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2204:12:69;-1:-1:-1;2180:76:69;;2270:24;;;;;;;;;;;;;:::i;:::-;215:373:99;;;;;;;;;;;;;;;;;;;;;1954:477:69;;;2180:76;2236:5;;;;;;;;1961:10;;;;;;;1773:78;215:373:99;;-1:-1:-1;;;1816:24:69;;215:373:99;;1816:24:69;215:373:99;-1:-1:-1;215:373:99;;-1:-1:-1;;215:373:99;;;;;;;;;;;;982:72:66;;:::i;:::-;4004:16:72;215:373:99;-1:-1:-1;;;;;215:373:99;3990:10:72;:30;3986:80;;4259:1;215:373:99;;;;;4259:1:72;:::i;3986:80::-;215:373:99;;-1:-1:-1;;;4043:12:72;;215:373:99;;4043:12:72;215:373:99;;;;;;;;;;;;;4273:61:72;;:::i;:::-;215:373:99;17942:86:69;215:373:99;17942:32:69;215:373:99;;;17987:31:69;215:373:99;;17942:86:69;;:::i;:::-;215:373:99;16672:97:85;;16779:8;215:373:99;;-1:-1:-1;;215:373:99;;;;;16813:16:85;215:373:99;;;-1:-1:-1;;;;;215:373:99;16804:33:85;;;;;215:373:99;;;;;;;;;;;;;16804:33:85;;;;;;;;;;215:373:99;;16672:97:85;215:373:99;;-1:-1:-1;;;16732:26:85;;215:373:99;;16732:26:85;215:373:99;;;;;;;;;;;;;2421:10:85;;:::i;:::-;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;1384:9:66;1380:62;;215:373:99;;;;;2212:20:66;215:373:99;;;2221:10:66;215:373:99;;2212:20:66;215:373:99;;1380:62:66;215:373:99;;-1:-1:-1;;;1416:15:66;;215:373:99;;1416:15:66;215:373:99;;;;;;;;;;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;13386:14:85;;:::i;:::-;13444:9;:14;13440:70;;13548:10;215:373:99;;;;25176:25:69;215:373:99;;;;;17433:25:69;:52;215:373:99;17433:57:69;13520:115:85;;13650:14;215:373:99;;;;;;;13722:9:85;13444;13548:10;13722:9;:::i;:::-;13747:14;;:::i;13645:225::-;13849:9;13444;13548:10;13849:9;:::i;13520:115::-;2502:71:45;215:373:99;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;215:373:99;;;;;;13582:42:85;;;;;;;;215:373:99;;13582:42:85;;2502:71:45;;;;;;:::i;215:373:99:-;;;;;;;-1:-1:-1;;215:373:99;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;381:20;;;:::i;215:373::-;;;;;;;;;;;-1:-1:-1;;215:373:99;;;;982:72:66;;:::i;:::-;4273:61:72;;:::i;:::-;4326:1;215:373:99;;4326:1:72;:::i;215:373:99:-;;;;;-1:-1:-1;;215:373:99;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;6337:17:85;215:373:99;6337:17:85;;215:373:99;;6357:19:85;215:373:99;6337:51:85;;;;6333:108;;215:373:99;6454:10:85;;;;;;:::i;:::-;215:373:99;;;6474:25:85;215:373:99;;6454:45:85;;;6450:108;;6664:10;;;;:::i;:::-;:46;;;;:99;;;215:373:99;6660:156:85;;6829:10;;;;:::i;:::-;:22;;;6825:81;;215:373:99;;;;;6946:17:85;;;;;;;;;:::i;:::-;;215:373:99;;6946:17:85;;;;;;:::i;:::-;215:373:99;6936:28:85;;;6979:52;;;;215:373:99;;;;;;7310:24:85;215:373:99;7297:37:85;7293:200;;6975:1250;215:373:99;;7293:200:85;215:373:99;;7413:30:85;215:373:99;;8399:50:36;215:373:99;;;7467:10:85;8399:50:36;;:::i;6975:1250:85:-;7607:99;215:373:99;;;;;;;;;;;;;;;:::i;7607:99:85:-;215:373:99;;;;;;;:::i;:::-;;;;7906:71:85;215:373:99;;6357:19:85;215:373:99;;;;;8047:30:85;215:373:99;;8399:50:36;215:373:99;;;8101:10:85;8399:50:36;;:::i;:::-;-1:-1:-1;8169:16:85;215:373:99;-1:-1:-1;;;;;215:373:99;;8160:54:85;;;;;215:373:99;;8160:54:85;215:373:99;;;;;;;;;;;;8160:54:85;;215:373:99;8160:54:85;;;:::i;:::-;;;;;;;;;;;6975:1250;215:373:99;;8160:54:85;;;;:::i;6825:81::-;215:373:99;;-1:-1:-1;;;6874:21:85;;215:373:99;;6874:21:85;6660:156;215:373:99;;-1:-1:-1;;;6786:19:85;;215:373:99;;6786:19:85;6664:99;215:373:99;6734:24:85;215:373:99;;;;;;;6714:49:85;;6664:99;;215:373:99;-1:-1:-1;;;215:373:99;;;;;;;;6450:108:85;215:373:99;;-1:-1:-1;;;6522:25:85;;215:373:99;;6522:25:85;215:373:99;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;982:72:66;;;:::i;:::-;17437:10:85;215:373:99;;1317:17:79;215:373:99;;;;;;;;1317:33:79;17399:107:85;;215:373:99;;17519:29:85;17515:81;;17437:10;215:373:99;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8399:50:36;17437:10:85;8399:50:36;:::i;215:373:99:-;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;215:373:99;;;;;;;;17515:81:85;215:373:99;;-1:-1:-1;;;17571:14:85;;215:373:99;;17571:14:85;17399:107;215:373:99;;-1:-1:-1;;;17471:24:85;;17437:10;215:373:99;17471:24:85;;215:373:99;;;17471:24:85;215:373:99;;;;;;;;;;;8507:9:85;:14;8503:68;;215:373:99;;8585:14:85;215:373:99;;;;8581:79:85;;8691:10;215:373:99;;;;;;;;;8674:33:85;8670:101;;215:373:99;8691:10:85;215:373:99;;;;;;;;8781:41:85;8507:9;215:373:99;;8781:41:85;:::i;:::-;215:373:99;;8832:32:85;8507:9;8832:19;215:373:99;8832:32:85;:::i;:::-;:19;215:373:99;;;8670:101:85;215:373:99;;-1:-1:-1;;;215:373:99;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;8691:10:85;215:373:99;;;;;;;;8670:101:85;;215:373:99;-1:-1:-1;;;215:373:99;;;;;;;;8503:68:85;-1:-1:-1;;;8544:16:85;;215:373:99;;8544:16:85;215:373:99;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;:::o;:::-;-1:-1:-1;;;;;215:373:99;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;:::o;:::-;-1:-1:-1;;;;;215:373:99;;;;;;-1:-1:-1;;215:373:99;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:99;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:373:99;;;;;;:::o;:::-;-1:-1:-1;;;;;215:373:99;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:373:99;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;2587:156:62;2663:30;215:373:99;-1:-1:-1;;;;;215:373:99;2649:10:62;:44;2645:92;;2587:156::o;2645:92::-;215:373:99;;-1:-1:-1;;;2716:10:62;;;;;1122:128:66;215:373:99;-1:-1:-1;;;;;;;;;;;215:373:99;;1183:61:66;;1122:128::o;1183:61::-;215:373:99;;-1:-1:-1;;;1218:15:66;;;;;215:373:99;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;215:373:99;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;-1:-1:-1;;;;;215:373:99;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;-1:-1:-1;215:373:99;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;215:373:99;;;;-1:-1:-1;215:373:99;:::o;:::-;;;;;;;;;;;;;17707:17:85;215:373:99;;;;;;17707:17:85;-1:-1:-1;215:373:99;;;;-1:-1:-1;215:373:99;:::o;2215:404:36:-;-1:-1:-1;215:373:99;;;4352:12:36;215:373:99;;;;;;;;17707:17:85;215:373:99;-1:-1:-1;;;215:373:99;;;;;;;;;;4352:12:36;215:373:99;;;17707:17:85;215:373:99;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;17707:17:85;215:373:99;;;;4352:12:36;215:373:99;;;;4352:12:36;2548:11;:::o;2294:319::-;2590:12;;;:::o;2215:404::-;;;4352:12;;;-1:-1:-1;215:373:99;;;;;;;;;;;4352:24:36;2294:319;215:373:99;;;;;;-1:-1:-1;;;215:373:99;;;;;4352:12:36;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4352:12:36;2548:11;:::o;215:373:99:-;-1:-1:-1;;;215:373:99;;;;;;;;;-1:-1:-1;;;215:373:99;;;;;;;;2294:319:36;-1:-1:-1;2590:12:36;-1:-1:-1;;2590:12:36:o;215:373:99:-;;-1:-1:-1;215:373:99;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;215:373:99;;;;-1:-1:-1;215:373:99;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;215:373:99;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;215:373:99;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:99;-1:-1:-1;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;:::o;24177:1944:69:-;24359:11;215:373:99;-1:-1:-1;;;;;215:373:99;;;;;;;;24385:56:69;;215:373:99;;;;-1:-1:-1;;;24464:28:69;;;;;24381:221;215:373:99;;;;;24513:56:69;;24509:93;;215:373:99;;;;;;24694:24:69;215:373:99;;;;24694:24:69;;;;26026:23;;;215:373:99;26026:23:69;;26065:49;26026:23;;:::i;:::-;-1:-1:-1;;;24359:11:69;215:373:99;;;;;;-1:-1:-1;;;215:373:99;;;24359:11:69;215:373:99;;;;;26065:49:69;24177:1944::o;24676:16::-;3893:36:70;;;-1:-1:-1;;;;;215:373:99;;;3893:15:70;215:373:99;;;;;;;3893:36:70;24823:16:69;;;;215:373:99;;;;;24823:16:69;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;:::i;:::-;24858:41:69;;;24823:16;;24967:14;;24919:45;:36;215:373:99;;24967:14:69;;;;;24919:36;215:373:99;;;;;;;;25176:25:69;215:373:99;;;;;;;24919:36:69;:45;215:373:99;:::i;:::-;4051:36:70;;-1:-1:-1;;;;;215:373:99;;;3893:15:70;215:373:99;;;;;;;4051:36:70;3793:45:72;;215:373:99;;;;;;;;;;;:::i;:::-;;;;;24676:16:69;;24854:1017;215:373:99;;;;;;;:::i;:::-;25019:34:69;;25006:47;;;25019:34;;215:373:99;;;;;;;;;;25125:14:69;;;215:373:99;:::i;:::-;;;;:::i;:::-;;;25114:44:69;;;;;;;;;;215:373:99;;;;;25114:44:69;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;25176:36:69;;;;215:373:99;;;;;;;;25176:25:69;215:373:99;;;;;;;25176:36:69;:45;215:373:99;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;25298:5:69;215:373:99;;;;;;;;;3793:45:72;215:373:99;;;;;;;;;;;;;;;;;;25298:5:69;:::i;:::-;24854:1017;;215:373:99;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;3793:45:72;215:373:99;;;3793:45:72;215:373:99;;3793:45:72;215:373:99;;;;;;;;;25298:5:69;215:373:99;;;;;;;;;;;;;;;;;25298:5:69;:::i;215:373:99:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;3793:45:72;215:373:99;;;;;;;;;25002:869:69;215:373:99;;;;;;;;;;;;;;;25371:14:69;;;215:373:99;:::i;:::-;25360:37:69;215:373:99;;;;25360:37:69;;215:373:99;;;;25360:37:69;;;;;215:373:99;;;;;:::i;:::-;25420:38:69;3893:15:70;;25524:6:69;;;;;;:::i;:::-;25553:14;215:373:99;3147:35:69;;:12;:35;:::i;:::-;215:373:99;;;;;;;:::i;:::-;;;;3224:54:69;;;215:373:99;;;-1:-1:-1;;;;;215:373:99;;;;;;3658:13:69;215:373:99;;;;;3224:54:69;;215:373:99;;;;;;;;;;;;;;;;;;;1273:22:69;;;;:::i;:::-;215:373:99;3793:45:72;;215:373:99;;;1306:13:69;;;215:373:99;;;;;;;;;;;;1362:10:69;;;:::i;:::-;215:373:99;;;;;;;;;;;;;;;;;;;;;;3343:85:69;;;25631:16;215:373:99;;25622:47:69;;;;;;215:373:99;;;;;;;;;;;;;;;25622:47:69;;;;;215:373:99;25622:47:69;;;;;;;;;;;;;;;25416:441;;24854:1017;;25622:47;;;;:::i;:::-;;;;;215:373:99;;;;;;;;;;25416:441:69;25757:6;;;;;;;;;;:::i;:::-;25795:16;215:373:99;;25786:52:69;;;;;;215:373:99;;;;;;25786:52:69;;3793:45:72;25786:52:69;3793:45:72;;25786:52:69;;;;;;;;;;;;;;;;;;25416:441;24854:1017;;215:373:99;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;9330:540:69:-;;215:373:99;;;;;;;-1:-1:-1;215:373:99;9465:15:69;215:373:99;;;-1:-1:-1;215:373:99;;;;;;9580:22:69;;;9576:288;9580:22;;;9618:7;;;:::o;9576:288::-;-1:-1:-1;;9645:21:69;;;9747:5;;;:::i;9641:223::-;9846:5;;;:::i;9876:404::-;;10258:13;9876:404;10143:39;215:373:99;;;;;;;;;-1:-1:-1;215:373:99;10005:15:69;215:373:99;;10005:55:69;215:373:99;;;-1:-1:-1;215:373:99;10005:46:69;215:373:99;10005:55:69;:::i;:::-;215:373:99;-1:-1:-1;215:373:99;10005:15:69;215:373:99;;;;;-1:-1:-1;215:373:99;10070:46:69;215:373:99;10143:29:69;215:373:99;10143:39:69;:::i;:::-;:29;215:373:99;10258:13:69;:::i;215:373:99:-;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;10286:616:69:-;;10830:13;10856:39;10286:616;215:373:99;;;;;;;-1:-1:-1;;215:373:99;;;10416:15:69;215:373:99;;10416:55:69;215:373:99;;;;;10416:46:69;215:373:99;10416:55:69;:::i;:::-;215:373:99;;;10416:15:69;215:373:99;;;;;10416:15:69;10507:42;;215:373:99;;;10564:18:69;;:42;;;;10286:616;-1:-1:-1;10560:199:69;;;215:373:99;;;;;;;;;;;;;;;;;:::i;:::-;10830:13:69;:::i;:::-;10856:29;215:373:99;10856:39:69;:::i;:::-;:29;215:373:99;10286:616:69:o;10560:199::-;10686:46;;;215:373:99;10686:46:69;215:373:99;10830:13:69;:::i;10564:42::-;10586:20;;;10564:42;;;11008:2209;;;215:373:99;;;;;;;;;-1:-1:-1;215:373:99;;;;;;1317:17:79;215:373:99;;;;;;;;;;;;11120:226:69;;215:373:99;1693:14:71;215:373:99;;;;;11124:21:69;215:373:99;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;215:373:99;;;;;4077:23:77;215:373:99;;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;215:373:99;;;1317:17:79;215:373:99;;;;;;;;12866:229:69;;13141:11;;;;;13168:42;;13141:11;;;;;:::i;:::-;215:373:99;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;13168:42:69;;;;11008:2209::o;12866:229::-;3147:36:77;;;:::i;:::-;3209:30;;;;:::i;:::-;3308:5;4619:7;215:373:99;;;;4619:7:77;;;4612:423;-1:-1:-1;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;-1:-1:-1;;;;215:373:99;;;;;;;;;-1:-1:-1;13008:56:69;;215:373:99;;;;13008:56:69;215:373:99;4612:423:77;215:373:99;;1991:25:79;215:373:99;;;;;;;;;;;1952:17:79;215:373:99;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;;;:::i;:::-;4612:423;;;;4864:82;4926:5;;;12404:452:69;12475:4;;;;;;;12777:48;12475:4;;;;12777:48;12475:4;1317:17:79;12475:4:69;;;:::i;:::-;215:373:99;;;;;;12495:140:69;;12404:452;12684:11;;;:::i;:::-;12746:10;;;:::i;:::-;215:373:99;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;12495:140:69;12608:11;;;:::i;:::-;12495:140;;11516:262;11675:11;;;;;11706:41;;11675:11;;;;;:::i;11120:226::-;2876:36:78;;;;;;;;;;;:::i;:::-;2936:30;;;;:::i;:::-;3035:3;4846:7;3035:3;4846:7;:::i;:::-;215:373:99;11124:21:69;215:373:99;;4932:763:78;;215:373:99;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;:::-;5089:187;;:::i;:::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;-1:-1:-1;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;-1:-1:-1;;;;215:373:99;;;;;;;5556:5:78;;-1:-1:-1;11260:55:69;;-1:-1:-1;215:373:99;;;;11260:55:69;215:373:99;4971:413:78;215:373:99;;;;;1952:17:79;215:373:99;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;11260:55:69;4939:16:78;;;;;11260:55:69;4939:16:78;;;;13320:2014:69;;;215:373:99;;;;;;;;;-1:-1:-1;;215:373:99;;;;;1317:17:79;215:373:99;;;;;;;;;;;;13428:421:69;;215:373:99;;;1317:17:79;215:373:99;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;;;;:::i;:::-;3323:30;;;;:::i;:::-;3422:3;4270:433;215:373:99;;;;;4277:7:78;;;;215:373:99;;;;;;;;;1952:17:79;215:373:99;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4533:81;4594:5;;;;;;;;;;4270:433;13432:22:69;215:373:99;;14638:37:69;14634:74;;4023:26:77;;:::i;:::-;215:373:99;;;1952:17:79;215:373:99;;;;;;;;;4129:25:77;4077:23;4129:25;;;:::i;:::-;4023:26;;;:::i;:::-;215:373:99;;;;;;;4129:25:77;;;;:::i;:::-;-1:-1:-1;14901:358:69;;-1:-1:-1;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;;;;;15274:53:69;;215:373:99;;;;15274:53:69;215:373:99;14901:358:69;14979:4;;;;15176:52;;14979:4;;;:::i;:::-;15025;;:::i;14634:74::-;14691:7;;;;;;:::o;4277::78:-;;;;;;;;;;;;;14049:508:69;14126:9;;;;14155:30;14126:9;;;;;;;;;:::i;:::-;215:373:99;;;;;14155:30:69;13432:22;215:373:99;;14200:326:69;;14540:7;;;;:::o;14200:326::-;14472:39;4023:26:77;4077:23;4023:26;;;;:::i;:::-;215:373:99;;;;;;;14472:39:69;4129:25:77;;;:::i;:::-;14378:4:69;;;:::i;:::-;14436:12;;;:::i;14472:39::-;;;;14200:326;;;;;;13883:106;215:373:99;;-1:-1:-1;;;13952:26:69;;1317:17:79;;13952:26:69;13428:421;13494:13;;;;;;;;;;13490:185;;3601:36:77;215:373:99;3601:36:77;;;;;:::i;:::-;3663:30;;;;:::i;:::-;3762:5;;215:373:99;;;;;;;;;13432:22:69;215:373:99;;5287:763:77;215:373:99;;;5287:763:77;-1:-1:-1;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;-1:-1:-1;;;;215:373:99;;;;;;;-1:-1:-1;215:373:99;;-1:-1:-1;13764:54:69;;215:373:99;-1:-1:-1;215:373:99;;;;13764:54:69;215:373:99;5287:763:77;215:373:99;;;5294:16:77;;;;;5330:15;;;;;;;;5599:12;;;;5444:186;5599:12;;:::i;:::-;5444:186;;:::i;:::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;215:373:99;;1952:17:79;215:373:99;;;;;;;;1991:25:79;;215:373:99;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;13490:185:69;13572:9;;;;;;;;13605:31;13572:9;;;;;:::i;:::-;215:373:99;;;;13605:31:69;13654:7::o;998:417:77:-;1401:5;998:417;1301:30;215:373:99;;1119:19:77;215:373:99;12499:22:69;215:373:99;;1119:19:77;:::i;:::-;215:373:99;;;;;;;;;;-1:-1:-1;215:373:99;1149:23:77;215:373:99;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:99;1200:23:77;215:373:99;;;-1:-1:-1;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;;;;12499:22:69;215:373:99;;;12499:22:69;215:373:99;1301:30:77;:::i;:::-;1401:5;;:::i;4525:375:69:-;215:373:99;1693:14:71;215:373:99;;;;;;;;4697:24:69;4668:53;4697:24;;-1:-1:-1;;;;;215:373:99;-1:-1:-1;215:373:99;;;4745:21:69;215:373:99;;;;;;;4525:375:69:o;4664:230::-;-1:-1:-1;;;;;215:373:99;-1:-1:-1;215:373:99;;;4831:21:69;215:373:99;;;;;;4831:52:69;215:373:99;;4525:375:69:o;215:373:99:-;;;;;-1:-1:-1;;215:373:99;;;;;;;:::o;1545:401:77:-;215:373:99;;13432:22:69;215:373:99;;1044:14:79;;;1040:61;;215:373:99;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;215:373:99;;;;2468:17:79;215:373:99;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;2551:17:79;215:373:99;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1799:4:77;;215:373:99;1766:8:77;;215:373:99;1766:8:77;:::i;:::-;215:373:99;;13432:22:69;215:373:99;;;13432:22:69;215:373:99;1799:4:77;:::i;:::-;215:373:99;;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;5047:1009:77;;5160:26;1952:17:79;215:373:99;13432:22:69;215:373:99;;5287:763:77;215:373:99;;;5287:763:77;1545:401;;;;;;;;;;;:::o;5287:763::-;215:373:99;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;215:373:99;;;;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;1040:61:79;215:373:99;;-1:-1:-1;;;1081:9:79;;;;;2081:787:77;2210:36;2081:787;2210:36;:::i;:::-;215:373:99;;;12499:22:69;215:373:99;;2321:4:77;;;;;:::i;:::-;2382:8;;;;:::i;:::-;215:373:99;;;12499:22:69;215:373:99;;;12499:22:69;215:373:99;2415:4:77;;;:::i;:::-;215:373:99;;;2435:11:77;;;2431:48;;-1:-1:-1;215:373:99;-1:-1:-1;;215:373:99;;;;1952:17:79;215:373:99;;;;;;;;;;;;;;2668:5:77;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;2668:5:77;;:::i;:::-;215:373:99;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;2854:5:77;;215:373:99;;;;;;;;;12499:22:69;215:373:99;;5287:763:77;215:373:99;;;2081:787:77;;;;;;;;;;;:::o;5287:763::-;215:373:99;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5326:412;215:373:99;;;;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;5326:412:77;;2431:48;2462:7;;;:::o;4443:598::-;;;;4612:423;4625:1;215:373:99;;;;4619:7:77;;;;215:373:99;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;215:373:99;;;1952:17:79;215:373:99;;;;;;;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;:::i;:::-;4612:423;;4864:82;4926:5;;;;4443:598::o;215:373:99:-;;;;;;;;;;;;;;:::o;6117:442:77:-;;;;215:373:99;;;;;-1:-1:-1;215:373:99;1952:17:79;215:373:99;;1991:25:79;215:373:99;;;;;1991:25:79;215:373:99;;-1:-1:-1;215:373:99;;;1991:25:79;:::i;:::-;215:373:99;;;-1:-1:-1;215:373:99;1952:17:79;215:373:99;;;-1:-1:-1;215:373:99;;;1991:25:79;:::i;:::-;6662:7:77;;;;6437:85;;6531:21;;;6117:442;:::o;6437:85::-;6490:21;-1:-1:-1;6490:21:77;;-1:-1:-1;6490:21:77:o;924:417:78:-;1327:5;924:417;1227:30;215:373:99;;1045:19:78;215:373:99;11124:21:69;215:373:99;;1045:19:78;:::i;:::-;215:373:99;;;;;;;;;;-1:-1:-1;215:373:99;1075:23:78;215:373:99;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:99;1126:23:78;215:373:99;;;-1:-1:-1;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;;;;11124:21:69;215:373:99;;;11124:21:69;215:373:99;1227:30:78;:::i;:::-;1327:5;;:::i;1408:401::-;215:373:99;;11124:21:69;215:373:99;;1044:14:79;;;1040:61;;215:373:99;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;215:373:99;;;;2468:17:79;215:373:99;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;2551:17:79;215:373:99;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1662:4:78;;215:373:99;1629:8:78;;215:373:99;1629:8:78;:::i;:::-;215:373:99;;11124:21:69;215:373:99;;;11124:21:69;215:373:99;1662:4:78;:::i;:::-;215:373:99;;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;4715:986:78;;4828:25;1952:17:79;215:373:99;11124:21:69;215:373:99;;4932:763:78;215:373:99;;;1408:401:78;;;;;;;;;;;:::o;4932:763::-;215:373:99;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;;4971:413;215:373:99;;;;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;4971:413:78;;1881:779;2010:36;1881:779;2010:36;:::i;:::-;215:373:99;;;;13888:21:69;215:373:99;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;215:373:99;;;13888:21:69;215:373:99;;;13888:21:69;215:373:99;2215:4:78;;;:::i;:::-;215:373:99;;;2235:11:78;;;2231:48;;-1:-1:-1;;;;215:373:99;;;;1952:17:79;215:373:99;;;;;;;;;;;;;;2466:3:78;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;215:373:99;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;2648:3:78;4846:7;2648:3;4846:7;:::i;:::-;4863:18;215:373:99;13888:21:69;215:373:99;;4932:763:78;;215:373:99;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;;;;;1881:779::o;4971:413::-;215:373:99;;;;;;;;1991:25:79;215:373:99;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;;;;;;1881:779::o;2231:48::-;2262:7;;;;:::o;4101:608::-;;;;4270:433;4283:1;215:373:99;;;;4277:7:78;;;;215:373:99;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;215:373:99;;;1952:17:79;215:373:99;;;;;;;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;5763:443;;;215:373:99;;;;-1:-1:-1;215:373:99;1952:17:79;215:373:99;;1991:25:79;215:373:99;;;;;1991:25:79;215:373:99;;-1:-1:-1;215:373:99;;;1991:25:79;:::i;:::-;215:373:99;;;-1:-1:-1;215:373:99;1952:17:79;215:373:99;;;-1:-1:-1;215:373:99;;;1991:25:79;:::i;:::-;6308:7:78;;;;6088:33;6084:85;;6178:21;;;5763:443;:::o;974:133:79:-;215:373:99;11124:21:69;215:373:99;;1044:14:79;1040:61;;974:133::o;:::-;215:373:99;13432:22:69;215:373:99;;1044:14:79;1040:61;;974:133::o;1363:226::-;-1:-1:-1;;;;;215:373:99;-1:-1:-1;215:373:99;;;1474:17:79;215:373:99;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1512:71::-;215:373:99;;-1:-1:-1;;;1547:25:79;;;;;1363:226;-1:-1:-1;;;;;215:373:99;-1:-1:-1;215:373:99;;;1474:17:79;215:373:99;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1595:184::-;215:373:99;;-1:-1:-1;215:373:99;;;1671:17:79;215:373:99;;;;;;;;;;-1:-1:-1;;;;;;215:373:99;;;;;-1:-1:-1;;;;;215:373:99;;;1749:17:79;215:373:99;;;;;;;-1:-1:-1;;215:373:99;;;1595:184:79:o;:::-;215:373:99;;-1:-1:-1;215:373:99;;;1671:17:79;215:373:99;;;;;;;;;;-1:-1:-1;;;;;;215:373:99;;;;;-1:-1:-1;;;;;215:373:99;;;1749:17:79;215:373:99;;;;;;;-1:-1:-1;;215:373:99;;;1595:184:79:o;215:373:99:-;;;;:::o;:::-;;;;;;;;;;;;2301:412:79;2416:25;215:373:99;;;11124:21:69;215:373:99;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;215:373:99;2423:17:79;;;;2416:25;:::i;:::-;-1:-1:-1;215:373:99;;;2468:17:79;215:373:99;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;2551:17:79;215:373:99;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:373:99;;;;;;;;;;;;;;;;;;;2301:412:79:o;:::-;2416:25;215:373:99;;;12870:22:69;215:373:99;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;215:373:99;;;2468:17:79;215:373:99;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;2551:17:79;215:373:99;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;215:373:99;;;;;;;;;;;;;;;;;;;2301:412:79:o;215:373:99:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;215:373:99;;;;;;;;-1:-1:-1;;215:373:99;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1530:331:29;1615:21;;:30;1611:109;;1749:33;;;;;;;;-1:-1:-1;;;;;215:373:99;1749:33:29;;215:373:99;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;1749:33:29;215:373:99;;;;;;1796:8:29;1792:63;;1530:331::o;1792:63::-;215:373:99;;-1:-1:-1;;;1827:17:29;;;;;215:373:99;;;1611:109:29;215:373:99;;-1:-1:-1;;;1668:41:29;;1623:4;1668:41;;;215:373:99;;;1668:41:29;6969:557:71;7128:20;215:373:99;;;7170:9:71;3793:45:72;7181:10:71;;;;;;6969:557;;;;:::o;7170:9::-;7213:23;;;:::i;:::-;215:373:99;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;7213:31:71;7209:242;;215:373:99;;;;7170:9:71;;7209:242;215:373:99;;;;;;;;;;;;;;;;7290:32:71;7264:23;7290:32;;7264:58;7290:32;;:::i;:::-;215:373:99;;;;;;;7264:23:71;;:::i;:::-;:58;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;7264:58:71;215:373:99;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7431:5:71;;;;;;215:373:99;;;;;;3793:45:72;215:373:99;;;3793:45:72;215:373:99;;;;;;;3793:45:72;215:373:99;;;3793:45:72;215:373:99;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;-1:-1:-1;;;215:373:99;;;;;;;;;;;;;;:::o;2502:71:45:-;;215:373:99;2502:71:45;;215:373:99;;;;;;;;;;;2502:71:45;;;:::i;:::-;215:373:99;;-1:-1:-1;;215:373:99;2502:71:45;;;:::o;215:373:99:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;1726:24:71;215:373:99;;;;;;;;1726:24:71;-1:-1:-1;215:373:99;;;;;-1:-1:-1;215:373:99;:::o;19251:224:69:-;-1:-1:-1;;;;;215:373:99;;;;;25176:25:69;215:373:99;;;;;19251:224:69;;;;8282:41;;215:373:99;-1:-1:-1;;;;;215:373:99;;;;;;;;;;:::i;:::-;;;:::i;:::-;3793:45:72;215:373:99;;;;;;;;;;;3793:45:72;215:373:99;;;;;;;;;;;;8282:41:69;215:373:99;;;;;;;19251:224:69:o;215:373:99:-;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19251:224:69:o;215:373:99:-;;;-1:-1:-1;;8282:41:69;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3527:269:71;;3623:65;372:2:40;3630:57:71;;3623:65;:::i;:::-;372:2:40;3735:1:71;372:2:40;;;215:373:99;;;;-1:-1:-1;;372:2:40;;3735:1:71;372:2:40;215:373:99;:::i;:::-;;;;;;;3715:24:71;-1:-1:-1;;;;;215:373:99;;3527:269:71:o;4078:118:72:-;215:373:99;4127:8:72;215:373:99;;;;4123:67:72;;4078:118::o;4123:67::-;215:373:99;;-1:-1:-1;;;4158:21:72;;;;;19573:1335:69;;19954:6;19573:1335;19831:6;;;;:::i;:::-;19954;;:::i;:::-;215:373:99;19977:14:69;215:373:99;;;;19976:15:69;19972:930;;19573:1335;:::o;19972:930::-;20165:19;215:373:99;;3793:45:72;20165:19:69;3793:45:72;20221:10:69;;;;;;20205:270;20492:17;;;20488:404;;19972:930;;19573:1335;:::o;20488:404::-;-1:-1:-1;;;;;215:373:99;;;;;;25176:25:69;215:373:99;;;;;20550:56:69;;;215:373:99;;;;;;20766:45:69;215:373:99;;;;;;:::i;:::-;;;20647:183:69;;215:373:99;20647:183:69;;;215:373:99;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;20647:183:69;;215:373:99;;;-1:-1:-1;;;215:373:99;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3793:45:72;215:373:99;;;;;;;;;;;;;;;;;;;2462:7:77:o;215:373:99:-;;;;-1:-1:-1;215:373:99;;;;;;;;;;;;;3793:45:72;215:373:99;;3793:45:72;215:373:99;;3793:45:72;215:373:99;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:373:99;;;;;;20210:9:69;3793:45:72;215:373:99;;;;;;20257:27:69;;215:373:99;-1:-1:-1;;;;;215:373:99;;;;;20257:40:69;20253:137;;215:373:99;20210:9:69;;;;20253:137;20321:23;;;20366:5;;;;8648:175;215:373:99;;;;;;-1:-1:-1;215:373:99;8758:21:69;215:373:99;;8758:58:69;:21;215:373:99;-1:-1:-1;215:373:99;8758:48:69;215:373:99;;;8758:58:69;:::i;:::-;215:373:99;;8648:175:69:o;22329:256::-;;;215:373:99;;2707:18:70;;;;;215:373:99;2707:18:70;;;;;;:::i;:::-;-1:-1:-1;;;;;22476:11:69;215:373:99;;;;;;;;;:::i;:::-;-1:-1:-1;215:373:99;;2707:18:70;3528:63;;215:373:99;;;;;;;;;;;;3528:63:70;;215:373:99;;-1:-1:-1;215:373:99;3489:15:70;2707:18;215:373:99;;-1:-1:-1;215:373:99;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;2707:18:70;215:373:99;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;22571:6:69;215:373:99;;-1:-1:-1;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:63:70;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;215:373:99;-1:-1:-1;;;;;215:373:99;22476:11:69;215:373:99;;;22476:11:69;215:373:99;;;;;;-1:-1:-1;215:373:99;;;;;;;;;2707:18:70;215:373:99;;;;;;;;;;;;;:::i;:::-;;;;;;2941:195:70;;;22571:6:69;:::i;215:373:99:-;;;;-1:-1:-1;215:373:99;;;;;;;;-1:-1:-1;215:373:99;2707:18:70;-1:-1:-1;215:373:99;;-1:-1:-1;215:373:99;-1:-1:-1;;215:373:99;;;;;;;;;;22571:6:69;215:373:99;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2707:18:70;215:373:99;;;;;;;1090:308:71;215:373:99;1233:14:71;215:373:99;;;;;;;;1229:147:71;;1090:308::o;2006:664::-;5112:35:69;215:373:99;2236:25:71;215:373:99;2217:44:71;;;2213:451;;2006:664;;:::o;2213:451::-;215:373:99;5328:27:69;215:373:99;;-1:-1:-1;;;;;2319:15:71;215:373:99;;-1:-1:-1;2281:53:71;2277:377;;2006:664;:::o;2277:377::-;215:373:99;;;2354:14:71;215:373:99;;;2354:14:71;215:373:99;;;;;;;;;;;;2417:19:71;215:373:99;;;;;;;;;;;;;;;;-1:-1:-1;;215:373:99;;;;;;;;;;;;;;;2398:39:71;;;;;;;;;;;;;;215:373:99;;;;;2546:16:71;215:373:99;;2580:37:71;215:373:99;;2580:37:71;;;:::i;:::-;2537:102;;;;;;215:373:99;;;;;;;;;;;;;;2537:102:71;;;;;215:373:99;2537:102:71;;;;;;;;;;2213:451;2537:102;;;;:::i;:::-;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;14088:782:85;14312:14;;:::i;:::-;14371:11;;14367:68;;14502:10;215:373:99;;;;25176:25:69;215:373:99;;;;;18718:25:69;:52;215:373:99;14528:15:85;;14524:77;;14614:20;-1:-1:-1;14614:20:85;14610:79;;215:373:99;14703:14:85;215:373:99;;;;14702:15:85;14698:116;;14856:6;14502:10;;14856:6;:::i;14698:116::-;14502:10;21358:6:69;21588;14502:10:85;;21358:6:69;:::i;:::-;21482;14502:10:85;;21482:6:69;:::i;14610:79:85:-;215:373:99;;-1:-1:-1;;;14657:21:85;;;;;14367:68;215:373:99;;-1:-1:-1;;;14405:19:85;;;;;8895:364:69;-1:-1:-1;;;;;215:373:99;-1:-1:-1;215:373:99;;;9022:21:69;215:373:99;;;;;9022:21:69;:48;215:373:99;;;9084:14:69;;;9080:81;;9171:15;;;:::i;:::-;215:373:99;-1:-1:-1;215:373:99;9022:21:69;215:373:99;;9022:21:69;215:373:99;-1:-1:-1;215:373:99;9196:48:69;215:373:99;8895:364:69:o;9080:81::-;215:373:99;;-1:-1:-1;;;9121:29:69;;;;;22631:259;;;215:373:99;;2064:18:70;;;;;215:373:99;2064:18:70;;;;;;:::i;:::-;-1:-1:-1;;;;;22779:11:69;215:373:99;;;;;;;;;:::i;:::-;2217:25:70;215:373:99;;2064:18:70;3528:63;;215:373:99;;;;;;;;;;;;3528:63:70;;215:373:99;;-1:-1:-1;215:373:99;3489:15:70;2064:18;215:373:99;;-1:-1:-1;215:373:99;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;2217:25:70;215:373:99;;;;:::i;:::-;2064:18:70;215:373:99;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;22876:6:69;215:373:99;;-1:-1:-1;215:373:99;;;;;;;2217:25:70;215:373:99;;;;;;;;;;;2217:25:70;215:373:99;;;;;;;;;;;;3528:63:70;;215:373:99;;-1:-1:-1;;;;;215:373:99;;;;;;;;-1:-1:-1;;;;;3636:23:70;;;:::i;:::-;215:373:99;-1:-1:-1;;;;;215:373:99;22779:11:69;215:373:99;;;22779:11:69;215:373:99;;;;;;2217:25:70;215:373:99;;;;;;;;;2064:18:70;215:373:99;;;;;;;;;;;;;:::i;:::-;;;;;;2299:196:70;;;22876:6:69;:::i;215:373:99:-;;;;-1:-1:-1;215:373:99;;;;;2217:25:70;215:373:99;;-1:-1:-1;215:373:99;2064:18:70;-1:-1:-1;215:373:99;;-1:-1:-1;215:373:99;-1:-1:-1;;215:373:99;;;;;;;;2217:25:70;215:373:99;22876:6:69;215:373:99;;;;;;;-1:-1:-1;;;;;;;;;;;215:373:99;;;;;;;;;;;;;;;;;2217:25:70;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2217:25:70;215:373:99;;;;2064:18:70;215:373:99;;;;;;;14944:1550:85;215:373:99;15345:14:85;215:373:99;;;;15341:89:85;;14944:1550;15551:10;215:373:99;;;;25176:25:69;215:373:99;;;;;18718:25:69;:52;215:373:99;15576:11:85;;15572:73;;8720:53:36;15551:10:85;8720:53:36;:::i;:::-;;-1:-1:-1;15551:10:85;;215:373:99;;15759:16:85;215:373:99;;;;;;;;;;:::i;:::-;;;;14944:1550:85;215:373:99;;;;15345:14:85;215:373:99;;;;15802:15:85;15798:641;;16480:6;15551:10;;;16480:6;:::i;15798:641::-;215:373:99;21588:6:69;15551:10:85;;215:373:99;;15955:16:85;215:373:99;;;;16001:19:85;15997:277;;15798:641;15551:10;21358:6:69;15551:10:85;;21358:6:69;:::i;15997:277:85:-;215:373:99;16091:37:85;16244:14;215:373:99;18718:25:69;215:373:99;16091:37:85;:::i;:::-;18718:25:69;215:373:99;16185:10:85;15551;16185;:::i;16244:14::-;15997:277;;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;15341:89:85;15375:14;;:::i;:::-;15341:89;;2787:1388:36;-1:-1:-1;215:373:99;;;2990:12:36;215:373:99;;;;;;-1:-1:-1;;215:373:99;3024:15:36;;;;-1:-1:-1;;215:373:99;;;;;;;;;15706:17:85;215:373:99;;;;;;;;;;3506:26:36;;;3502:398;;3020:1149;215:373:99;;;15706:17:85;215:373:99;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;15706:17:85;215:373:99;;;2990:12:36;215:373:99;;;;;;2990:12:36;4104:11;:::o;215:373:99:-;-1:-1:-1;;;215:373:99;;;;;;;;3502:398:36;215:373:99;3572:22:36;3694:26;3572:22;;:::i;:::-;215:373:99;;;;;;3694:26:36;;;;:::i;215:373:99:-;;;;;2990:12:36;215:373:99;;;;;;3502:398:36;;;;;215:373:99;-1:-1:-1;;;215:373:99;;;;;;;;;-1:-1:-1;;;215:373:99;;;;;;;;3020:1149:36;4146:12;;;:::o;215:373:99:-;;;;;;;;;;;;;;;:::o;18068:1492:85:-;;;;18243:11;;18239:48;;215:373:99;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;;;;;;18253:1:85;215:373:99;;;;;;;;;;18389:32:85;;;-1:-1:-1;3208:21:71;215:373:99;3199:30:71;;;:::i;:::-;215:373:99;;3250:35:71;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18385:568:85;215:373:99;;19161:19:85;;;19157:56;;19226:23;;;19222:60;;215:373:99;;;19383:9:85;;19394:18;;;;;;18068:1492;;;;;;;:::o;19383:9::-;215:373:99;;-1:-1:-1;;;;;19455:11:85;215:373:99;19455:11:85;;:::i;:::-;215:373:99;;;;19430:16:85;215:373:99;;;;;19430:54:85;215:373:99;;;19430:54:85;:::i;:::-;215:373:99;;;19383:9:85;;215:373:99;;;;;;;;;;;;-1:-1:-1;215:373:99;;;;;;18385:568:85;18515:38;215:373:99;18515:38:85;;;18511:442;215:373:99;;;;;;13582:42:85;;;;18798:51;;;;;215:373:99;;;;;;;;;;;18798:51:85;18511:442;215:373:99;;;13582:42:85;;;;18887:55;;;;;215:373:99;;;;;;;;;;;-1:-1:-1;;;215:373:99;;;;18887:55:85;215:373:99;-1:-1:-1;;;215:373:99;;;;;;;;20121:890:85;;215:373:99;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;215:373:99;;;:::i;:::-;;;;;;;;;;-1:-1:-1;7631:8:69;;;;;;20517:36:85;;-1:-1:-1;215:373:99;;;6312:27:69;215:373:99;;;6364:12:69;;;;6359:236;215:373:99;;;6359:236:69;215:373:99;;;;;;20604:20:85;215:373:99;;;;;;;;;;;;;;;;;;;20628:3:85;20690:229;215:373:99;;20690:229:85;;:::i;:::-;20934:6;;20930:75;;20121:890;;:::o;20930:75::-;215:373:99;;;;;;;;;;20963:31:85;;;;;;215:373:99;20963:31:85;;;215:373:99;20963:31:85;6364:12:69;215:373:99;;;;;;;;;6378:9:69;;;;;-1:-1:-1;215:373:99;;;598:23:78;215:373:99;;;;;;;;;;;;6480:45:69;;6494:31;;-1:-1:-1;;;;;215:373:99;6494:31:69;:::i;:::-;6480:45;;:::i;:::-;215:373:99;;;6364:12:69;;;;6378:9;;;;;;7620;-1:-1:-1;;;;;215:373:99;7692:12:69;;;;:::i;:::-;215:373:99;;-1:-1:-1;215:373:99;1317:17:79;215:373:99;;;;-1:-1:-1;215:373:99;;;1317:33:79;7657:116:69;;7829:12;7808:34;215:373:99;7829:12:69;;;;;:::i;:::-;215:373:99;;7808:34:69;:::i;:::-;7786:56;;;;:::i;:::-;215:373:99;;7620:9:69;;7657:116;7745:12;;;215:373:99;7745:12:69;;;:::i;:::-;215:373:99;;;-1:-1:-1;;;7732:26:69;;215:373:99;;7732:26:69;;;215:373:99;7732:26:69;1239:1329:65;215:373:99;;1239:1329:65;;215:373:99;;;1596:21:65;;1592:90;;215:373:99;;1696:38:65;;;;:76;;;1239:1329;1692:148;;1855:9;;;;;1850:568;1866:20;;;;;;2431:19;;;;;;;;2427:75;;215:373:99;2511:50:65;2527:33;1239:1329;:::o;2427:75::-;215:373:99;2466:25:65;215:373:99;2466:25:65;:::o;1855:9::-;2031:13;;;;;;1957:102;2031:13;;;;:::i;:::-;;1957:102;;:::i;:::-;215:373:99;;;;:::i;:::-;2073:116:65;;-1:-1:-1;;;;;215:373:99;2219:14:65;;;;:::i;:::-;215:373:99;;;;2206:27:65;2202:105;;2329:19;215:373:99;2338:10:65;;;;;:::i;:::-;215:373:99;2329:19:65;;:::i;:::-;215:373:99;;1855:9:65;;;;;;;2202:105;2253:39;;;;;;;;215:373:99;2253:39:65;2269:22;2253:39;:::o;2073:116::-;2135:39;;;;;;;;;215:373:99;2135:39:65;2151:22;2135:39;:::o;1692:148::-;1788:41;;;;;;;;215:373:99;1788:41:65;:::o;1696:76::-;215:373:99;;;1738:34:65;;;1696:76;;1592:90;1633:38;;;;;;;;1649:21;1633:38;:::o;2483:766:32:-;215:373:99;;;2483:766:32;2630:2;2610:22;;2630:2;;3093:25;2893:180;;;;;;;;;;;;;;;-1:-1:-1;2893:180:32;3093:25;;:::i;:::-;3086:32;;;;;:::o;2606:637::-;3149:83;;3165:1;3149:83;3169:35;3149:83;;:::o;5591:1530::-;;;6650:66;6637:79;;6633:164;;215:373:99;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6908:24:32;;;;;;;;;;;;;;-1:-1:-1;;;;;215:373:99;;6946:20:32;6942:113;;7065:49;;5591:1530;:::o;6942:113::-;6982:62;;;6908:24;6982:62;;:::o;6908:24::-;215:373:99;;;;;;;;;;6633:164:32;6732:54;;;6748:1;6732:54;6752:30;6732:54;;:::o","linkReferences":{"src/lib/LibStaking.sol":{"LibStaking":[{"start":309,"length":20}]}}},"methodIdentifiers":{"addBootstrapNode(string)":"10fd4261","claim()":"4e71d92d","claimRewardForRelayer()":"ed7c4da1","confirmChange(uint64)":"350a14bf","confirmNextChange()":"c7ebdaef","distributeRewardToRelayers(uint256,uint256,uint8)":"4c860af6","join(bytes)":"6170b162","kill()":"41c0e1b5","leave()":"d66d9e19","pause()":"8456cb59","paused()":"5c975abb","preFund()":"0b7fbe60","preRelease(uint256)":"66783c9b","setFederatedPower(address[],bytes[],uint256[])":"da5d09ee","stake()":"3a4b66f1","submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":"26811936","submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":"b9ee2bb9","unpause()":"3f4ba83a","unstake(uint256)":"2e17de78","validateActiveQuorumSignatures(address[],bytes32,bytes[])":"cc2dc2b9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchWithNoMessages\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotConfirmFutureChanges\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotReleaseZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CollateralIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicatedGenesisValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBatchEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCheckpointEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFederationPayload\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPublicKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"InvalidSignatureErr\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxMsgsPerBatchExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"MethodNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoCollateralToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAllValidatorsHaveLeft\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughGenesisValidators\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGateway\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerOfPublicKey\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"NotValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyBootstrapped\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubnetAlreadyKilled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawExceedingCollateral\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"BottomUpCheckpointSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"NextBottomUpCheckpointExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"netAddress\",\"type\":\"string\"}],\"name\":\"addBootstrapNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRewardForRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_configurationNumber\",\"type\":\"uint64\"}],\"name\":\"confirmChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"confirmNextChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"internalType\":\"enum QuorumObjKind\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"distributeRewardToRelayers\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"preFund\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"preRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"publicKeys\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"powers\",\"type\":\"uint256[]\"}],\"name\":\"setFederatedPower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"msgs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct BottomUpMsgBatch\",\"name\":\"batch\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitBottomUpMsgBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetID\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"blockHeight\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nextConfigurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct BottomUpCheckpoint\",\"name\":\"checkpoint\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signatories\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"validateActiveQuorumSignatures\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"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\":{\"addBootstrapNode(string)\":{\"params\":{\"netAddress\":\"The network address of the new bootstrap node.\"}},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"params\":{\"height\":\"The height of the checkpoint for which rewards are being distributed.\",\"kind\":\"The type of object for which rewards are being distributed.\",\"reward\":\"The total amount of reward to be distributed.\"}},\"join(bytes)\":{\"params\":{\"publicKey\":\"The off-chain 65 byte public key that should be associated with the validator\"}},\"kill()\":{\"details\":\"It is not a privileged operation.\"},\"preFund()\":{\"details\":\"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply.\"},\"preRelease(uint256)\":{\"details\":\"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.\",\"params\":{\"amount\":\"The amount to remove.\"}},\"setFederatedPower(address[],bytes[],uint256[])\":{\"details\":\"method that allows the contract owner to set the validators' federated power.\",\"params\":{\"powers\":\"The federated powers to be assigned to validators.\",\"publicKeys\":\"The public keys of validators.\",\"validators\":\"The addresses of validators.\"}},\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"details\":\"It triggers the execution of a cross-net message batch.\",\"params\":{\"batch\":\"The batch of bottom-up messages.\",\"signatories\":\"The addresses of validators signing the batch.\",\"signatures\":\"The signatures of validators on the batch.\"}},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"details\":\"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.\",\"params\":{\"checkpoint\":\"The executed bottom-up checkpoint.\",\"signatories\":\"The addresses of validators signing the checkpoint.\",\"signatures\":\"The signatures of validators on the checkpoint.\"}},\"unstake(uint256)\":{\"details\":\"`leave` must be used to unstake the entire stake.\",\"params\":{\"amount\":\"The amount to unstake.\"}},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"details\":\"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.\",\"params\":{\"hash\":\"The hash of the checkpoint.\",\"signatories\":\"The addresses of the signatories.\",\"signatures\":\"The packed signatures of the checkpoint.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addBootstrapNode(string)\":{\"notice\":\"Add a bootstrap node.\"},\"claim()\":{\"notice\":\"Validator claims their released collateral.\"},\"claimRewardForRelayer()\":{\"notice\":\"Relayer claims its reward.\"},\"distributeRewardToRelayers(uint256,uint256,uint8)\":{\"notice\":\"Distributes rewards to relayers for a specific checkpoint.\"},\"join(bytes)\":{\"notice\":\"method that allows a validator to join the subnet. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered.\"},\"kill()\":{\"notice\":\"method that allows to kill the subnet when all validators left.\"},\"leave()\":{\"notice\":\"method that allows a validator to leave the subnet.\"},\"pause()\":{\"notice\":\"Pauses all contract functions with the `whenNotPaused` modifier.\"},\"paused()\":{\"notice\":\"sets if to pause the contract\"},\"preFund()\":{\"notice\":\"method to add some initial balance into a subnet that hasn't yet bootstrapped.\"},\"preRelease(uint256)\":{\"notice\":\"method to remove funds from the initial balance of a subnet.\"},\"setFederatedPower(address[],bytes[],uint256[])\":{\"notice\":\"Sets the federated power of validators.\"},\"stake()\":{\"notice\":\"method that allows a validator to increase its stake. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered.\"},\"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])\":{\"notice\":\"Submits a batch of bottom-up messages for execution.\"},\"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])\":{\"notice\":\"Submits a checkpoint commitment for execution.\"},\"unpause()\":{\"notice\":\"Unpauses all contract functions with the `whenNotPaused` modifier.\"},\"unstake(uint256)\":{\"notice\":\"method that allows a validator to unstake a part of its collateral from a subnet.\"},\"validateActiveQuorumSignatures(address[],bytes32,bytes[])\":{\"notice\":\"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/SubnetActorManagerFacetMock.sol\":\"SubnetActorManagerFacetMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d\",\"dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/interfaces/ISubnetActor.sol\":{\"keccak256\":\"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e\",\"dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibMultisignatureChecker.sol\":{\"keccak256\":\"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615\",\"dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg\"]},\"src/lib/LibPausable.sol\":{\"keccak256\":\"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff\",\"dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActor.sol\":{\"keccak256\":\"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae\",\"dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorManagerFacet.sol\":{\"keccak256\":\"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181\",\"dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i\"]},\"test/mocks/SubnetActorManagerFacetMock.sol\":{\"keccak256\":\"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f\",\"dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"BatchWithNoMessages"},{"inputs":[],"type":"error","name":"CannotConfirmFutureChanges"},{"inputs":[],"type":"error","name":"CannotReleaseZero"},{"inputs":[],"type":"error","name":"CollateralIsZero"},{"inputs":[],"type":"error","name":"DuplicatedGenesisValidator"},{"inputs":[],"type":"error","name":"EmptyAddress"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"InvalidBatchEpoch"},{"inputs":[],"type":"error","name":"InvalidCheckpointEpoch"},{"inputs":[],"type":"error","name":"InvalidFederationPayload"},{"inputs":[],"type":"error","name":"InvalidPublicKeyLength"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"type":"error","name":"InvalidSignatureErr"},{"inputs":[],"type":"error","name":"MaxMsgsPerBatchExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"MethodNotAllowed"},{"inputs":[],"type":"error","name":"NoCollateralToWithdraw"},{"inputs":[],"type":"error","name":"NotAllValidatorsHaveLeft"},{"inputs":[],"type":"error","name":"NotEnoughBalance"},{"inputs":[],"type":"error","name":"NotEnoughCollateral"},{"inputs":[],"type":"error","name":"NotEnoughFunds"},{"inputs":[],"type":"error","name":"NotEnoughGenesisValidators"},{"inputs":[],"type":"error","name":"NotGateway"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"type":"error","name":"NotOwnerOfPublicKey"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"type":"error","name":"NotValidator"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ReentrancyError"},{"inputs":[],"type":"error","name":"SubnetAlreadyBootstrapped"},{"inputs":[],"type":"error","name":"SubnetAlreadyKilled"},{"inputs":[],"type":"error","name":"WithdrawExceedingCollateral"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointExecuted","anonymous":false},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}],"indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"BottomUpCheckpointSubmitted","anonymous":false},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256","indexed":false},{"internalType":"address","name":"submitter","type":"address","indexed":false}],"type":"event","name":"NextBottomUpCheckpointExecuted","anonymous":false},{"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":[{"internalType":"string","name":"netAddress","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"addBootstrapNode"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claim"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"claimRewardForRelayer"},{"inputs":[{"internalType":"uint64","name":"_configurationNumber","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"confirmChange"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"confirmNextChange"},{"inputs":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"enum QuorumObjKind","name":"kind","type":"uint8"}],"stateMutability":"payable","type":"function","name":"distributeRewardToRelayers"},{"inputs":[{"internalType":"bytes","name":"publicKey","type":"bytes"}],"stateMutability":"payable","type":"function","name":"join"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"leave"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"preFund"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"preRelease"},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"bytes[]","name":"publicKeys","type":"bytes[]"},{"internalType":"uint256[]","name":"powers","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"setFederatedPower"},{"inputs":[],"stateMutability":"payable","type":"function","name":"stake"},{"inputs":[{"internalType":"struct BottomUpMsgBatch","name":"batch","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"struct CrossMsg[]","name":"msgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitBottomUpMsgBatch"},{"inputs":[{"internalType":"struct BottomUpCheckpoint","name":"checkpoint","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetID","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"uint256","name":"blockHeight","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint64","name":"nextConfigurationNumber","type":"uint64"}]},{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"submitCheckpoint"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"unstake"},{"inputs":[{"internalType":"address[]","name":"signatories","type":"address[]"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"stateMutability":"view","type":"function","name":"validateActiveQuorumSignatures"}],"devdoc":{"kind":"dev","methods":{"addBootstrapNode(string)":{"params":{"netAddress":"The network address of the new bootstrap node."}},"distributeRewardToRelayers(uint256,uint256,uint8)":{"params":{"height":"The height of the checkpoint for which rewards are being distributed.","kind":"The type of object for which rewards are being distributed.","reward":"The total amount of reward to be distributed."}},"join(bytes)":{"params":{"publicKey":"The off-chain 65 byte public key that should be associated with the validator"}},"kill()":{"details":"It is not a privileged operation."},"preFund()":{"details":"This balance is added to user addresses in genesis, and becomes part of the genesis circulating supply."},"preRelease(uint256)":{"details":"This method can be used by users looking to recover part of their initial balance before the subnet bootstraps.","params":{"amount":"The amount to remove."}},"setFederatedPower(address[],bytes[],uint256[])":{"details":"method that allows the contract owner to set the validators' federated power.","params":{"powers":"The federated powers to be assigned to validators.","publicKeys":"The public keys of validators.","validators":"The addresses of validators."}},"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"details":"It triggers the execution of a cross-net message batch.","params":{"batch":"The batch of bottom-up messages.","signatories":"The addresses of validators signing the batch.","signatures":"The signatures of validators on the batch."}},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"details":"It triggers the commitment of the checkpoint and any other side-effects that need to be triggered by the checkpoint such as relayer reward book keeping.","params":{"checkpoint":"The executed bottom-up checkpoint.","signatories":"The addresses of validators signing the checkpoint.","signatures":"The signatures of validators on the checkpoint."}},"unstake(uint256)":{"details":"`leave` must be used to unstake the entire stake.","params":{"amount":"The amount to unstake."}},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"details":"Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. Having it public allows external users to perform sanity-check verification if needed.","params":{"hash":"The hash of the checkpoint.","signatories":"The addresses of the signatories.","signatures":"The packed signatures of the checkpoint."}}},"version":1},"userdoc":{"kind":"user","methods":{"addBootstrapNode(string)":{"notice":"Add a bootstrap node."},"claim()":{"notice":"Validator claims their released collateral."},"claimRewardForRelayer()":{"notice":"Relayer claims its reward."},"distributeRewardToRelayers(uint256,uint256,uint8)":{"notice":"Distributes rewards to relayers for a specific checkpoint."},"join(bytes)":{"notice":"method that allows a validator to join the subnet. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered."},"kill()":{"notice":"method that allows to kill the subnet when all validators left."},"leave()":{"notice":"method that allows a validator to leave the subnet."},"pause()":{"notice":"Pauses all contract functions with the `whenNotPaused` modifier."},"paused()":{"notice":"sets if to pause the contract"},"preFund()":{"notice":"method to add some initial balance into a subnet that hasn't yet bootstrapped."},"preRelease(uint256)":{"notice":"method to remove funds from the initial balance of a subnet."},"setFederatedPower(address[],bytes[],uint256[])":{"notice":"Sets the federated power of validators."},"stake()":{"notice":"method that allows a validator to increase its stake. If the total confirmed collateral of the subnet is greater or equal to minimum activation collateral as a result of this operation, then subnet will be registered."},"submitBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),address[],bytes[])":{"notice":"Submits a batch of bottom-up messages for execution."},"submitCheckpoint(((uint64,address[]),uint256,bytes32,uint64),address[],bytes[])":{"notice":"Submits a checkpoint commitment for execution."},"unpause()":{"notice":"Unpauses all contract functions with the `whenNotPaused` modifier."},"unstake(uint256)":{"notice":"method that allows a validator to unstake a part of its collateral from a subnet."},"validateActiveQuorumSignatures(address[],bytes32,bytes[])":{"notice":"Checks whether the signatures are valid for the provided signatories and hash within the current validator set. Reverts otherwise."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/mocks/SubnetActorManagerFacetMock.sol":"SubnetActorManagerFacetMock"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x1fffbec76ddc32735c18799f454482cc2530d4b6736dda03c387813954df8e30","urls":["bzz-raw://569336974d289a84354700865eb6c025daac404c8509d24489b883def3cffa9d","dweb:/ipfs/QmVekxbW3BgwMHrZjuXdPgSazk7SwXi2Usa1g7SdyZXiQ9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/interfaces/ISubnetActor.sol":{"keccak256":"0x305b08abcf2049f1501773bc8c4002d71dc7cd94db897410be94a97dcea45693","urls":["bzz-raw://ecff3142a53e538f5c8d1b85fc2d20b4878379aa6088e561c4b56eb1c962eb3e","dweb:/ipfs/QmeQ6jicfWknod5N3Sh4BtUzW2qnGWhi7wELdghv8SHbS4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibMultisignatureChecker.sol":{"keccak256":"0x530f4cce43514810221a4aeb79298efd4810a9fb2213ee509b0a4e584ce47958","urls":["bzz-raw://fccff3a9a09f2cc7b3c221313079713fc33082b48b3a2157cf54b0e71eb9f615","dweb:/ipfs/QmSCNqmYjWfESnfJFBpx6E2EyMAgV3HYKaUcndANAUSUNg"],"license":"MIT OR Apache-2.0"},"src/lib/LibPausable.sol":{"keccak256":"0xe848c433bf81fb5ab3bcfe937ccdf438517d87467cb57d8aca020328c62816b7","urls":["bzz-raw://423f9ff34f09f445b5064219c8ca60e9367d43db9fa85a36b0cc644e41d4b8ff","dweb:/ipfs/QmPBjh9C4GFThtJ5K21q9Et6Q6Z9ne5gh7uVJbqfi6Rerv"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActor.sol":{"keccak256":"0x259325ed6a709b5ebe1eee853d9624121ffac0c39fe13999bd902bd2d3867fc7","urls":["bzz-raw://96803cdeb3f35959225efb2016d36ccbcf04be6776453e4b56bd79014d919dae","dweb:/ipfs/QmXLvy9rdk8AQsMyVDpGjmXUQL1fS97gDa1My8geQ3cqxh"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorManagerFacet.sol":{"keccak256":"0xf739c342850787f64f02569641b35bc8a80ea00fd006dfa374211ce8b5708472","urls":["bzz-raw://fe896623f2696c3494ca1542c74fecb529eb015d8575f8486bf5727554b70181","dweb:/ipfs/QmashQTboDmXTrEfeH4ktd3svEUaor7jh1cEPZ4Zur8y8i"],"license":"MIT OR Apache-2.0"},"test/mocks/SubnetActorManagerFacetMock.sol":{"keccak256":"0x5a5e2ad96a4aa21c51cd2c646c6d08a5c2249f7c2078c31ead913b5ce75c2bb8","urls":["bzz-raw://5b8bfb28e8bcd628154f31ca4d912b49f5c8e9b3b824121cc488551a1490da3f","dweb:/ipfs/QmQqyg6ezXHzJw73XhKRWevoBGTKPSb2RAwxa7x88bQVeT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/mocks/SubnetActorManagerFacetMock.sol","id":57958,"exportedSymbols":{"LibStaking":[46176],"SubnetActorManagerFacet":[52151],"SubnetActorManagerFacetMock":[57957]},"nodeType":"SourceUnit","src":"46:543:99","nodes":[{"id":57920,"nodeType":"PragmaDirective","src":"46:23:99","nodes":[],"literals":["solidity","0.8",".19"]},{"id":57922,"nodeType":"ImportDirective","src":"71:85:99","nodes":[],"absolutePath":"src/subnet/SubnetActorManagerFacet.sol","file":"../../src/subnet/SubnetActorManagerFacet.sol","nameLocation":"-1:-1:-1","scope":57958,"sourceUnit":52152,"symbolAliases":[{"foreign":{"id":57921,"name":"SubnetActorManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"79:23:99","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57924,"nodeType":"ImportDirective","src":"157:56:99","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../../src/lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":57958,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":57923,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"165:10:99","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57957,"nodeType":"ContractDefinition","src":"215:373:99","nodes":[{"id":57938,"nodeType":"FunctionDefinition","src":"285:124:99","nodes":[],"body":{"id":57937,"nodeType":"Block","src":"346:63:99","nodes":[],"statements":[{"expression":{"arguments":[{"id":57934,"name":"_configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57928,"src":"381:20:99","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":57931,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"356:10:99","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":57933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"367:13:99","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":46175,"src":"356:24:99","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":57935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"356:46:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57936,"nodeType":"ExpressionStatement","src":"356:46:99"}]},"functionSelector":"350a14bf","implemented":true,"kind":"function","modifiers":[],"name":"confirmChange","nameLocation":"294:13:99","parameters":{"id":57929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57928,"mutability":"mutable","name":"_configurationNumber","nameLocation":"315:20:99","nodeType":"VariableDeclaration","scope":57938,"src":"308:27:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57927,"name":"uint64","nodeType":"ElementaryTypeName","src":"308:6:99","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"307:29:99"},"returnParameters":{"id":57930,"nodeType":"ParameterList","parameters":[],"src":"346:0:99"},"scope":57957,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":57956,"nodeType":"FunctionDefinition","src":"415:171:99","nodes":[],"body":{"id":57955,"nodeType":"Block","src":"453:133:99","nodes":[],"statements":[{"assignments":[57942,null],"declarations":[{"constant":false,"id":57942,"mutability":"mutable","name":"nextConfigNum","nameLocation":"471:13:99","nodeType":"VariableDeclaration","scope":57955,"src":"464:20:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57941,"name":"uint64","nodeType":"ElementaryTypeName","src":"464:6:99","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},null],"id":57946,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57943,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"490:10:99","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":57944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"501:23:99","memberName":"getConfigurationNumbers","nodeType":"MemberAccess","referencedDeclaration":45965,"src":"490:34:99","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$_t_uint64_$","typeString":"function () view returns (uint64,uint64)"}},"id":57945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"490:36:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint64_$_t_uint64_$","typeString":"tuple(uint64,uint64)"}},"nodeType":"VariableDeclarationStatement","src":"463:63:99"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":57952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57950,"name":"nextConfigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57942,"src":"561:13:99","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":57951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"577:1:99","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"561:17:99","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":57947,"name":"LibStaking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46176,"src":"536:10:99","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibStaking_$46176_$","typeString":"type(library LibStaking)"}},"id":57949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"547:13:99","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":46175,"src":"536:24:99","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":57953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"536:43:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57954,"nodeType":"ExpressionStatement","src":"536:43:99"}]},"functionSelector":"c7ebdaef","implemented":true,"kind":"function","modifiers":[],"name":"confirmNextChange","nameLocation":"424:17:99","parameters":{"id":57939,"nodeType":"ParameterList","parameters":[],"src":"441:2:99"},"returnParameters":{"id":57940,"nodeType":"ParameterList","parameters":[],"src":"453:0:99"},"scope":57957,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":57925,"name":"SubnetActorManagerFacet","nameLocations":["255:23:99"],"nodeType":"IdentifierPath","referencedDeclaration":52151,"src":"255:23:99"},"id":57926,"nodeType":"InheritanceSpecifier","src":"255:23:99"}],"canonicalName":"SubnetActorManagerFacetMock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[57957,52151,44013,43432,47335,40428],"name":"SubnetActorManagerFacetMock","nameLocation":"224:27:99","scope":57958,"usedErrors":[32461,32469,37368,37372,37374,37382,37390,37392,37404,37406,37408,37438,37442,37448,37454,37462,37466,37470,37478,37480,37490,37494,37496,37504,37510,37514,37526,37528,37530,37532,40975,43315,43318,43961]}],"license":"MIT OR Apache-2.0"},"id":99} \ No newline at end of file diff --git a/.out/SubnetGetterFacet.sol/SubnetGetterFacet.json b/.out/SubnetGetterFacet.sol/SubnetGetterFacet.json index d48daf0ec..dda7005ed 100644 --- a/.out/SubnetGetterFacet.sol/SubnetGetterFacet.json +++ b/.out/SubnetGetterFacet.sol/SubnetGetterFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getGateway","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorGetterFacet","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorGetterSelectors","inputs":[],"outputs":[{"name":"","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorManagerFacet","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorManagerSelectors","inputs":[],"outputs":[{"name":"","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"getSubnetDeployedByNonce","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"nonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getUserLastNonce","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"latestSubnetDeployed","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"updateReferenceSubnetContract","inputs":[{"name":"newGetterFacet","type":"address","internalType":"address"},{"name":"newManagerFacet","type":"address","internalType":"address"},{"name":"newSubnetGetterSelectors","type":"bytes4[]","internalType":"bytes4[]"},{"name":"newSubnetManagerSelectors","type":"bytes4[]","internalType":"bytes4[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"CannotFindSubnet","inputs":[]},{"type":"error","name":"FacetCannotBeZero","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657610b21908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba26469706673582212202229f911c9a50f4c7891678d6e2abc5c757052067fc33ef42e2db8d7502b68ce64736f6c63430008130033","sourceMap":"278:2983:80:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba26469706673582212202229f911c9a50f4c7891678d6e2abc5c757052067fc33ef42e2db8d7502b68ce64736f6c63430008130033","sourceMap":"278:2983:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;278:2983:80;;;;;;:::i;:::-;;-1:-1:-1;;;;;278:2983:80;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;2663:30:57;278:2983:80;;2649:10:57;:44;2645:92;;278:2983:80;2816:28;;;2812:85;;2910:29;;2906:86;;278:2983;;;;;;;;;;;;;;3090:22;278:2983;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;278:2983:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:2983:80;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:2983:80;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:2983:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;278:2983:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;278:2983:80;;;;;;;;;-1:-1:-1;;;278:2983:80;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:2983:80;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;278:2983:80;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:2983:80;;;;;;;;;;;;;;;;-1:-1:-1;278:2983:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;278:2983:80;;;;;;;;2906:86;278:2983;-1:-1:-1;;;2962:19:80;;278:2983;;2962:19;2645:92:57;278:2983:80;;-1:-1:-1;;;2716:10:57;;278:2983:80;;2716:10:57;278:2983:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1966:22;278:2983;;;-1:-1:-1;;;;;278:2983:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;1044:10;;;;;1040:66;;-1:-1:-1;;;;;278:2983:80;;;;;1124:9;278:2983;;;;;;;;;;;;;;;1161:20;;1157:76;;278:2983;;;;;;;;1157:76;278:2983;-1:-1:-1;;;1204:18:80;;278:2983;-1:-1:-1;1204:18:80;1040:66;278:2983;;-1:-1:-1;;;1077:18:80;;278:2983;;1077:18;278:2983;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;278:2983:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:2983:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;278:2983:80;;;;;-1:-1:-1;;278:2983:80;;;;;-1:-1:-1;278:2983:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;278:2983:80;;;;;;;;;-1:-1:-1;;;;;;278:2983:80;;;;;;;;;;;;-1:-1:-1;;;;;;278:2983:80;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:2983:80;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:2983:80;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:2983:80;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:2983:80;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:2983:80;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:2983:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;278:2983:80;;;;-1:-1:-1;;;;;278:2983:80;;;;;;:::i;:::-;;;;;599:12;278:2983;;;;;;;;632:10;;;628:66;;278:2983;;713:9;278:2983;;;;;;;;;;;;;750:20;;;746:76;;278:2983;;;;;;;;628:66;278:2983;;-1:-1:-1;;;665:18:80;;278:2983;;665:18;278:2983;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:2983:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;278:2983:80;;;;;-1:-1:-1;;278:2983:80;;;;;-1:-1:-1;278:2983:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;278:2983:80;;;;;;;;;;;;;;;;;;-1:-1:-1;;278:2983:80;;;;;;;;-1:-1:-1;;;;;278:2983:80;;:::i;:::-;;;;1397:12;278:2983;;;;;1429:10;;;1425:66;;278:2983;;;;;;;;1425:66;-1:-1:-1;;;1462:18:80;;;;;278:2983;;;;-1:-1:-1;;;;;278:2983:80;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;278:2983:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;278:2983:80;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getGateway()":"42bf3cc1","getSubnetActorGetterFacet()":"0be06111","getSubnetActorGetterSelectors()":"1b0766c3","getSubnetActorManagerFacet()":"a372bf30","getSubnetActorManagerSelectors()":"0f5849d1","getSubnetDeployedByNonce(address,uint64)":"9836b75f","getUserLastNonce(address)":"030f6051","latestSubnetDeployed(address)":"1163dca5","updateReferenceSubnetContract(address,address,bytes4[],bytes4[])":"a46d044d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CannotFindSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FacetCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getGateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorGetterFacet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorGetterSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorManagerFacet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorManagerSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getSubnetDeployedByNonce\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getUserLastNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"latestSubnetDeployed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newGetterFacet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newManagerFacet\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"newSubnetGetterSelectors\",\"type\":\"bytes4[]\"},{\"internalType\":\"bytes4[]\",\"name\":\"newSubnetManagerSelectors\",\"type\":\"bytes4[]\"}],\"name\":\"updateReferenceSubnetContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getGateway()\":{\"notice\":\"Returns the gateway\"},\"getSubnetActorGetterFacet()\":{\"notice\":\"Returns the address of the SUBNET_GETTER_FACET\"},\"getSubnetActorGetterSelectors()\":{\"notice\":\"Returns the subnet getter selectors\"},\"getSubnetActorManagerFacet()\":{\"notice\":\"Returns the address of the SUBNET_MANAGER_FACET\"},\"getSubnetActorManagerSelectors()\":{\"notice\":\"Returns the subnet manager selectors\"},\"getSubnetDeployedByNonce(address,uint64)\":{\"notice\":\"Returns the address of a subnet actor deployed for a specific nonce by a user\"},\"getUserLastNonce(address)\":{\"notice\":\"Returns the last nonce used by the owner\"},\"latestSubnetDeployed(address)\":{\"notice\":\"Returns the address of the latest subnet actor deployed by a user\"},\"updateReferenceSubnetContract(address,address,bytes4[],bytes4[])\":{\"notice\":\"Updates references to the subnet contract components Only callable by the contract owner\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnetregistry/SubnetGetterFacet.sol\":\"SubnetGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x7e36a89eb829f018acd7e8877a8a1b93bc939e87467700846741cda033432d99\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0f4db114142828d91b8ac120269a3de36390e63f3e5c0d27a821bdbad7d77f0\",\"dweb:/ipfs/QmYZAiaWWPATDrtF3MFoxdcBkmwMacFrjByFNb3hPeLDo6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"CannotFindSubnet"},{"inputs":[],"type":"error","name":"FacetCannotBeZero"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"stateMutability":"view","type":"function","name":"getGateway","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorGetterFacet","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorGetterSelectors","outputs":[{"internalType":"bytes4[]","name":"","type":"bytes4[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorManagerFacet","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorManagerSelectors","outputs":[{"internalType":"bytes4[]","name":"","type":"bytes4[]"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSubnetDeployedByNonce","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"getUserLastNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"latestSubnetDeployed","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"newGetterFacet","type":"address"},{"internalType":"address","name":"newManagerFacet","type":"address"},{"internalType":"bytes4[]","name":"newSubnetGetterSelectors","type":"bytes4[]"},{"internalType":"bytes4[]","name":"newSubnetManagerSelectors","type":"bytes4[]"}],"stateMutability":"nonpayable","type":"function","name":"updateReferenceSubnetContract"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getGateway()":{"notice":"Returns the gateway"},"getSubnetActorGetterFacet()":{"notice":"Returns the address of the SUBNET_GETTER_FACET"},"getSubnetActorGetterSelectors()":{"notice":"Returns the subnet getter selectors"},"getSubnetActorManagerFacet()":{"notice":"Returns the address of the SUBNET_MANAGER_FACET"},"getSubnetActorManagerSelectors()":{"notice":"Returns the subnet manager selectors"},"getSubnetDeployedByNonce(address,uint64)":{"notice":"Returns the address of a subnet actor deployed for a specific nonce by a user"},"getUserLastNonce(address)":{"notice":"Returns the last nonce used by the owner"},"latestSubnetDeployed(address)":{"notice":"Returns the address of the latest subnet actor deployed by a user"},"updateReferenceSubnetContract(address,address,bytes4[],bytes4[])":{"notice":"Updates references to the subnet contract components Only callable by the contract owner"}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnetregistry/SubnetGetterFacet.sol":"SubnetGetterFacet"},"libraries":{},"viaIR":true},"sources":{"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x7e36a89eb829f018acd7e8877a8a1b93bc939e87467700846741cda033432d99","urls":["bzz-raw://d0f4db114142828d91b8ac120269a3de36390e63f3e5c0d27a821bdbad7d77f0","dweb:/ipfs/QmYZAiaWWPATDrtF3MFoxdcBkmwMacFrjByFNb3hPeLDo6"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","id":51314,"exportedSymbols":{"CannotFindSubnet":[37088],"FacetCannotBeZero":[37084],"LibDiamond":[41229],"SubnetGetterFacet":[51313],"SubnetRegistryActorStorage":[46169]},"nodeType":"SourceUnit","src":"46:3216:80","nodes":[{"id":51077,"nodeType":"PragmaDirective","src":"46:23:80","nodes":[],"literals":["solidity","0.8",".19"]},{"id":51079,"nodeType":"ImportDirective","src":"70:79:80","nodes":[],"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","file":"../lib/LibSubnetRegistryStorage.sol","nameLocation":"-1:-1:-1","scope":51314,"sourceUnit":46170,"symbolAliases":[{"foreign":{"id":51078,"name":"SubnetRegistryActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46169,"src":"78:26:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51082,"nodeType":"ImportDirective","src":"150:76:80","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":51314,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":51080,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37088,"src":"158:16:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":51081,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37084,"src":"176:17:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51084,"nodeType":"ImportDirective","src":"227:49:80","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":51314,"sourceUnit":41230,"symbolAliases":[{"foreign":{"id":51083,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"235:10:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":51313,"nodeType":"ContractDefinition","src":"278:2983:80","nodes":[{"id":51087,"nodeType":"VariableDeclaration","src":"364:37:80","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"400:1:80","scope":51313,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage"},"typeName":{"id":51086,"nodeType":"UserDefinedTypeName","pathNode":{"id":51085,"name":"SubnetRegistryActorStorage","nameLocations":["364:26:80"],"nodeType":"IdentifierPath","referencedDeclaration":46169,"src":"364:26:80"},"referencedDeclaration":46169,"src":"364:26:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage_ptr","typeString":"struct SubnetRegistryActorStorage"}},"visibility":"internal"},{"id":51131,"nodeType":"FunctionDefinition","src":"490:338:80","nodes":[],"body":{"id":51130,"nodeType":"Block","src":"574:254:80","nodes":[],"statements":[{"assignments":[51096],"declarations":[{"constant":false,"id":51096,"mutability":"mutable","name":"nonce","nameLocation":"591:5:80","nodeType":"VariableDeclaration","scope":51130,"src":"584:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51095,"name":"uint64","nodeType":"ElementaryTypeName","src":"584:6:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":51101,"initialValue":{"baseExpression":{"expression":{"id":51097,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51087,"src":"599:1:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"601:10:80","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":46168,"src":"599:12:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":51100,"indexExpression":{"id":51099,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51090,"src":"612:5:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"599:19:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"584:34:80"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":51104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51102,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51096,"src":"632:5:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"641:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"632:10:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51109,"nodeType":"IfStatement","src":"628:66:80","trueBody":{"id":51108,"nodeType":"Block","src":"644:50:80","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51105,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37088,"src":"665:16:80","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"665:18:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51107,"nodeType":"RevertStatement","src":"658:25:80"}]}},{"expression":{"id":51117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51110,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51093,"src":"704:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":51111,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51087,"src":"713:1:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"715:7:80","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":46163,"src":"713:9:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"}},"id":51114,"indexExpression":{"id":51113,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51090,"src":"723:5:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"713:16:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"}},"id":51116,"indexExpression":{"id":51115,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51096,"src":"730:5:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"713:23:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"704:32:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51118,"nodeType":"ExpressionStatement","src":"704:32:80"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51119,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51093,"src":"750:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"768:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"760:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51120,"name":"address","nodeType":"ElementaryTypeName","src":"760:7:80","typeDescriptions":{}}},"id":51123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"760:10:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"750:20:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51129,"nodeType":"IfStatement","src":"746:76:80","trueBody":{"id":51128,"nodeType":"Block","src":"772:50:80","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51125,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37088,"src":"793:16:80","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"793:18:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51127,"nodeType":"RevertStatement","src":"786:25:80"}]}}]},"documentation":{"id":51088,"nodeType":"StructuredDocumentation","src":"408:77:80","text":"@notice Returns the address of the latest subnet actor deployed by a user"},"functionSelector":"1163dca5","implemented":true,"kind":"function","modifiers":[],"name":"latestSubnetDeployed","nameLocation":"499:20:80","parameters":{"id":51091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51090,"mutability":"mutable","name":"owner","nameLocation":"528:5:80","nodeType":"VariableDeclaration","scope":51131,"src":"520:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51089,"name":"address","nodeType":"ElementaryTypeName","src":"520:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"519:15:80"},"returnParameters":{"id":51094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51093,"mutability":"mutable","name":"subnet","nameLocation":"566:6:80","nodeType":"VariableDeclaration","scope":51131,"src":"558:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51092,"name":"address","nodeType":"ElementaryTypeName","src":"558:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"557:16:80"},"scope":51313,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51170,"nodeType":"FunctionDefinition","src":"928:311:80","nodes":[],"body":{"id":51169,"nodeType":"Block","src":"1030:209:80","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":51143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51141,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51136,"src":"1044:5:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1053:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1044:10:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51148,"nodeType":"IfStatement","src":"1040:66:80","trueBody":{"id":51147,"nodeType":"Block","src":"1056:50:80","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51144,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37088,"src":"1077:16:80","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1077:18:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51146,"nodeType":"RevertStatement","src":"1070:25:80"}]}},{"expression":{"id":51156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51149,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51139,"src":"1115:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":51150,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51087,"src":"1124:1:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1126:7:80","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":46163,"src":"1124:9:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"}},"id":51153,"indexExpression":{"id":51152,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51134,"src":"1134:5:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1124:16:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"}},"id":51155,"indexExpression":{"id":51154,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51136,"src":"1141:5:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1124:23:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1115:32:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51157,"nodeType":"ExpressionStatement","src":"1115:32:80"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51158,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51139,"src":"1161:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1179:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1171:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51159,"name":"address","nodeType":"ElementaryTypeName","src":"1171:7:80","typeDescriptions":{}}},"id":51162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1171:10:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1161:20:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51168,"nodeType":"IfStatement","src":"1157:76:80","trueBody":{"id":51167,"nodeType":"Block","src":"1183:50:80","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51164,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37088,"src":"1204:16:80","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1204:18:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51166,"nodeType":"RevertStatement","src":"1197:25:80"}]}}]},"documentation":{"id":51132,"nodeType":"StructuredDocumentation","src":"834:89:80","text":"@notice Returns the address of a subnet actor deployed for a specific nonce by a user"},"functionSelector":"9836b75f","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetDeployedByNonce","nameLocation":"937:24:80","parameters":{"id":51137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51134,"mutability":"mutable","name":"owner","nameLocation":"970:5:80","nodeType":"VariableDeclaration","scope":51170,"src":"962:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51133,"name":"address","nodeType":"ElementaryTypeName","src":"962:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51136,"mutability":"mutable","name":"nonce","nameLocation":"984:5:80","nodeType":"VariableDeclaration","scope":51170,"src":"977:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51135,"name":"uint64","nodeType":"ElementaryTypeName","src":"977:6:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"961:29:80"},"returnParameters":{"id":51140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51139,"mutability":"mutable","name":"subnet","nameLocation":"1022:6:80","nodeType":"VariableDeclaration","scope":51170,"src":"1014:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51138,"name":"address","nodeType":"ElementaryTypeName","src":"1014:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1013:16:80"},"scope":51313,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51194,"nodeType":"FunctionDefinition","src":"1302:195:80","nodes":[],"body":{"id":51193,"nodeType":"Block","src":"1379:118:80","nodes":[],"statements":[{"expression":{"id":51183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51178,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51176,"src":"1389:5:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":51179,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51087,"src":"1397:1:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1399:10:80","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":46168,"src":"1397:12:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":51182,"indexExpression":{"id":51181,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51173,"src":"1410:4:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1397:18:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"1389:26:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":51184,"nodeType":"ExpressionStatement","src":"1389:26:80"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":51187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51185,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51176,"src":"1429:5:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1438:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1429:10:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51192,"nodeType":"IfStatement","src":"1425:66:80","trueBody":{"id":51191,"nodeType":"Block","src":"1441:50:80","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51188,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37088,"src":"1462:16:80","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1462:18:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51190,"nodeType":"RevertStatement","src":"1455:25:80"}]}}]},"documentation":{"id":51171,"nodeType":"StructuredDocumentation","src":"1245:52:80","text":"@notice Returns the last nonce used by the owner"},"functionSelector":"030f6051","implemented":true,"kind":"function","modifiers":[],"name":"getUserLastNonce","nameLocation":"1311:16:80","parameters":{"id":51174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51173,"mutability":"mutable","name":"user","nameLocation":"1336:4:80","nodeType":"VariableDeclaration","scope":51194,"src":"1328:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51172,"name":"address","nodeType":"ElementaryTypeName","src":"1328:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1327:14:80"},"returnParameters":{"id":51177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51176,"mutability":"mutable","name":"nonce","nameLocation":"1372:5:80","nodeType":"VariableDeclaration","scope":51194,"src":"1365:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":51175,"name":"uint64","nodeType":"ElementaryTypeName","src":"1365:6:80","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1364:14:80"},"scope":51313,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51204,"nodeType":"FunctionDefinition","src":"1539:87:80","nodes":[],"body":{"id":51203,"nodeType":"Block","src":"1593:33:80","nodes":[],"statements":[{"expression":{"expression":{"id":51200,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51087,"src":"1610:1:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1612:7:80","memberName":"GATEWAY","nodeType":"MemberAccess","referencedDeclaration":46143,"src":"1610:9:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":51199,"id":51202,"nodeType":"Return","src":"1603:16:80"}]},"documentation":{"id":51195,"nodeType":"StructuredDocumentation","src":"1503:31:80","text":"@notice Returns the gateway"},"functionSelector":"42bf3cc1","implemented":true,"kind":"function","modifiers":[],"name":"getGateway","nameLocation":"1548:10:80","parameters":{"id":51196,"nodeType":"ParameterList","parameters":[],"src":"1558:2:80"},"returnParameters":{"id":51199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51198,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51204,"src":"1584:7:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51197,"name":"address","nodeType":"ElementaryTypeName","src":"1584:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1583:9:80"},"scope":51313,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51214,"nodeType":"FunctionDefinition","src":"1695:114:80","nodes":[],"body":{"id":51213,"nodeType":"Block","src":"1764:45:80","nodes":[],"statements":[{"expression":{"expression":{"id":51210,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51087,"src":"1781:1:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1783:19:80","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":46146,"src":"1781:21:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":51209,"id":51212,"nodeType":"Return","src":"1774:28:80"}]},"documentation":{"id":51205,"nodeType":"StructuredDocumentation","src":"1632:58:80","text":"@notice Returns the address of the SUBNET_GETTER_FACET"},"functionSelector":"0be06111","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorGetterFacet","nameLocation":"1704:25:80","parameters":{"id":51206,"nodeType":"ParameterList","parameters":[],"src":"1729:2:80"},"returnParameters":{"id":51209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51208,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51214,"src":"1755:7:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51207,"name":"address","nodeType":"ElementaryTypeName","src":"1755:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1754:9:80"},"scope":51313,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51224,"nodeType":"FunctionDefinition","src":"1879:116:80","nodes":[],"body":{"id":51223,"nodeType":"Block","src":"1949:46:80","nodes":[],"statements":[{"expression":{"expression":{"id":51220,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51087,"src":"1966:1:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1968:20:80","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":46148,"src":"1966:22:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":51219,"id":51222,"nodeType":"Return","src":"1959:29:80"}]},"documentation":{"id":51215,"nodeType":"StructuredDocumentation","src":"1815:59:80","text":"@notice Returns the address of the SUBNET_MANAGER_FACET"},"functionSelector":"a372bf30","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorManagerFacet","nameLocation":"1888:26:80","parameters":{"id":51216,"nodeType":"ParameterList","parameters":[],"src":"1914:2:80"},"returnParameters":{"id":51219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51218,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51224,"src":"1940:7:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51217,"name":"address","nodeType":"ElementaryTypeName","src":"1940:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1939:9:80"},"scope":51313,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51235,"nodeType":"FunctionDefinition","src":"2053:128:80","nodes":[],"body":{"id":51234,"nodeType":"Block","src":"2134:47:80","nodes":[],"statements":[{"expression":{"expression":{"id":51231,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51087,"src":"2151:1:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2153:21:80","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":46152,"src":"2151:23:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"functionReturnParameters":51230,"id":51233,"nodeType":"Return","src":"2144:30:80"}]},"documentation":{"id":51225,"nodeType":"StructuredDocumentation","src":"2001:47:80","text":"@notice Returns the subnet getter selectors"},"functionSelector":"1b0766c3","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorGetterSelectors","nameLocation":"2062:29:80","parameters":{"id":51226,"nodeType":"ParameterList","parameters":[],"src":"2091:2:80"},"returnParameters":{"id":51230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51229,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51235,"src":"2117:15:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51227,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2117:6:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51228,"nodeType":"ArrayTypeName","src":"2117:8:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"2116:17:80"},"scope":51313,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51246,"nodeType":"FunctionDefinition","src":"2240:130:80","nodes":[],"body":{"id":51245,"nodeType":"Block","src":"2322:48:80","nodes":[],"statements":[{"expression":{"expression":{"id":51242,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51087,"src":"2339:1:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2341:22:80","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":46156,"src":"2339:24:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"functionReturnParameters":51241,"id":51244,"nodeType":"Return","src":"2332:31:80"}]},"documentation":{"id":51236,"nodeType":"StructuredDocumentation","src":"2187:48:80","text":"@notice Returns the subnet manager selectors"},"functionSelector":"0f5849d1","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorManagerSelectors","nameLocation":"2249:30:80","parameters":{"id":51237,"nodeType":"ParameterList","parameters":[],"src":"2279:2:80"},"returnParameters":{"id":51241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51240,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51246,"src":"2305:15:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51238,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2305:6:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51239,"nodeType":"ArrayTypeName","src":"2305:8:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"2304:17:80"},"scope":51313,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":51312,"nodeType":"FunctionDefinition","src":"2489:770:80","nodes":[],"body":{"id":51311,"nodeType":"Block","src":"2713:546:80","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51260,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"2723:10:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":51262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2734:22:80","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":40691,"src":"2723:33:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":51263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2723:35:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51264,"nodeType":"ExpressionStatement","src":"2723:35:80"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51265,"name":"newGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51249,"src":"2816:14:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2842:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2834:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51266,"name":"address","nodeType":"ElementaryTypeName","src":"2834:7:80","typeDescriptions":{}}},"id":51269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2834:10:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2816:28:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51275,"nodeType":"IfStatement","src":"2812:85:80","trueBody":{"id":51274,"nodeType":"Block","src":"2846:51:80","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51271,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37084,"src":"2867:17:80","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2867:19:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51273,"nodeType":"RevertStatement","src":"2860:26:80"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51276,"name":"newManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51251,"src":"2910:15:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2937:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2929:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51277,"name":"address","nodeType":"ElementaryTypeName","src":"2929:7:80","typeDescriptions":{}}},"id":51280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2929:10:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2910:29:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51286,"nodeType":"IfStatement","src":"2906:86:80","trueBody":{"id":51285,"nodeType":"Block","src":"2941:51:80","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":51282,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37084,"src":"2962:17:80","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":51283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2962:19:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51284,"nodeType":"RevertStatement","src":"2955:26:80"}]}},{"expression":{"id":51291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51287,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51087,"src":"3042:1:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3044:19:80","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":46146,"src":"3042:21:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51290,"name":"newGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51249,"src":"3066:14:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3042:38:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51292,"nodeType":"ExpressionStatement","src":"3042:38:80"},{"expression":{"id":51297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51293,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51087,"src":"3090:1:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3092:20:80","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":46148,"src":"3090:22:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51296,"name":"newManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51251,"src":"3115:15:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3090:40:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51298,"nodeType":"ExpressionStatement","src":"3090:40:80"},{"expression":{"id":51303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51299,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51087,"src":"3140:1:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3142:21:80","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":46152,"src":"3140:23:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51302,"name":"newSubnetGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51254,"src":"3166:24:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[] calldata"}},"src":"3140:50:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51304,"nodeType":"ExpressionStatement","src":"3140:50:80"},{"expression":{"id":51309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":51305,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51087,"src":"3200:1:80","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":51307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3202:22:80","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":46156,"src":"3200:24:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51308,"name":"newSubnetManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51257,"src":"3227:25:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[] calldata"}},"src":"3200:52:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":51310,"nodeType":"ExpressionStatement","src":"3200:52:80"}]},"documentation":{"id":51247,"nodeType":"StructuredDocumentation","src":"2376:108:80","text":"@notice Updates references to the subnet contract components\n Only callable by the contract owner"},"functionSelector":"a46d044d","implemented":true,"kind":"function","modifiers":[],"name":"updateReferenceSubnetContract","nameLocation":"2498:29:80","parameters":{"id":51258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51249,"mutability":"mutable","name":"newGetterFacet","nameLocation":"2545:14:80","nodeType":"VariableDeclaration","scope":51312,"src":"2537:22:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51248,"name":"address","nodeType":"ElementaryTypeName","src":"2537:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51251,"mutability":"mutable","name":"newManagerFacet","nameLocation":"2577:15:80","nodeType":"VariableDeclaration","scope":51312,"src":"2569:23:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51250,"name":"address","nodeType":"ElementaryTypeName","src":"2569:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51254,"mutability":"mutable","name":"newSubnetGetterSelectors","nameLocation":"2620:24:80","nodeType":"VariableDeclaration","scope":51312,"src":"2602:42:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51252,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2602:6:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51253,"nodeType":"ArrayTypeName","src":"2602:8:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":51257,"mutability":"mutable","name":"newSubnetManagerSelectors","nameLocation":"2672:25:80","nodeType":"VariableDeclaration","scope":51312,"src":"2654:43:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":51255,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2654:6:80","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":51256,"nodeType":"ArrayTypeName","src":"2654:8:80","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"2527:176:80"},"returnParameters":{"id":51259,"nodeType":"ParameterList","parameters":[],"src":"2713:0:80"},"scope":51313,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetGetterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51313],"name":"SubnetGetterFacet","nameLocation":"287:17:80","scope":51314,"usedErrors":[37084,37088,40522]}],"license":"MIT OR Apache-2.0"},"id":80} \ No newline at end of file +{"abi":[{"type":"function","name":"getGateway","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorGetterFacet","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorGetterSelectors","inputs":[],"outputs":[{"name":"","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorManagerFacet","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetActorManagerSelectors","inputs":[],"outputs":[{"name":"","type":"bytes4[]","internalType":"bytes4[]"}],"stateMutability":"view"},{"type":"function","name":"getSubnetDeployedByNonce","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"nonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getUserLastNonce","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"latestSubnetDeployed","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"updateReferenceSubnetContract","inputs":[{"name":"newGetterFacet","type":"address","internalType":"address"},{"name":"newManagerFacet","type":"address","internalType":"address"},{"name":"newSubnetGetterSelectors","type":"bytes4[]","internalType":"bytes4[]"},{"name":"newSubnetManagerSelectors","type":"bytes4[]","internalType":"bytes4[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"CannotFindSubnet","inputs":[]},{"type":"error","name":"FacetCannotBeZero","inputs":[]},{"type":"error","name":"NotOwner","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657610b21908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba2646970667358221220c02181d14c65e4a760705046e486a45f505b7ca43c4ba8c435ba915f6b7c065f64736f6c63430008130033","sourceMap":"278:3716:87:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060409080825260048036101561001657600080fd5b60009260e0928435841c908163030f6051146109aa575080630be06111146109815780630f5849d1146108645780631163dca5146107eb5780631b0766c3146105c857806342bf3cc1146105a05780639836b75f14610516578063a372bf30146104e95763a46d044d1461008957600080fd5b346104e55760803660031901126104e5576100a2610a05565b916001600160a01b0390602435828116908190036104e15767ffffffffffffffff6044358181116104dd576100da9036908501610a65565b9690916064358181116104d9576100f49036908701610a65565b969092817f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd5541633036104c957169687156104ba5784156104ba57506bffffffffffffffffffffffff60a01b93600197858954161788556002948554161784558088116103535768010000000000000000908189116104a75760039384548a8655808b10610423575b508b909985825280861c90825b8281106103d457506007199b818d169091039081610366575b5050505086116103535785116103405790849184548386558084106102b4575b509389521c94875b8681106102525750831680840393036101e2578680f35b9486939291939587915b83831061021457505050505050600080516020610acc83398151915201553880808080808680f35b90919293602061024587996102298499610a96565b851c9087871b60031b9163ffffffff809116831b921b19161790565b98019594930191906101ec565b8590898a5b60088110610278575081600080516020610acc8339815191520155016101cb565b959192906102a760209161028b85610a96565b8d1c9089891b60031b9163ffffffff809116831b921b19161790565b9201950190879291610257565b909192600701831c6007600080516020610acc8339815191529201841c820191601c88871b1680610306575b5087949392918991015b8281106102f85750506101c3565b8c81558895508991016102ea565b7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19a83019081549060001990602003881b1c169055386102e0565b634e487b7160e01b895260418452602489fd5b634e487b7160e01b8a526041855260248afd5b908d8c8a86925b84841061039457505050505050600080516020610aac83398151915201558a3880806101a3565b908597846103c4936103aa602096979899610a96565b901c921b60031b9163ffffffff809116831b921b19161790565b950191018c8f8b9094939461036d565b9091928d81905b60088210610402575050600080516020610aac8339815191528201558d9291908b0161018a565b610419829f938f93908d916020946103aa88610a96565b92019d018e6103db565b60078b01861c6007600080516020610aac8339815191529201871c820191601c8d8a1b168061046d575b508b91018e5b8382106104625750505061017d565b8155018a908e610453565b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85a830190815490600019906020038b1b1c1690553861044d565b634e487b7160e01b8b526041865260248bfd5b516307a0435160e51b81528590fd5b88516330cd747160e01b81528790fd5b8a80fd5b8880fd5b8680fd5b8380fd5b84823461051257816003193601126105125760025490516001600160a01b039091168152602090f35b5080fd5b50833461059d578160031936011261059d57610530610a05565b9060243567ffffffffffffffff811680910361051257908184921561058d576001600160a01b039384168252600560209081528383209183525220541690811561057e576020925051908152f35b5163276e74a760e11b81529050fd5b825163276e74a760e11b81528690fd5b80fd5b848234610512578160031936011261051257905490516001600160a01b039091168152602090f35b50828491346107e757826003193601126107e757805180926003549081835260208093019160038752600080516020610aac8339815191528488915b83600784011061077a57549383831061075d575b5082821061073f575b828210610721575b828210610703575b8282106106e5575b8282106106c9575b8282106106ad575b5010610699575b50839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b0390f35b634e487b7160e01b815260418552602490fd5b6001600160e01b0319168152018086610650565b83811b6001600160e01b03191685529093019260010184610649565b83871b6001600160e01b03191685529093019260010184610641565b606084901b6001600160e01b03191685529093019260010184610639565b608084901b6001600160e01b03191685529093019260010184610631565b60a084901b6001600160e01b03191685529093019260010184610629565b60c084901b6001600160e01b03191685529093019260010184610621565b84901b6001600160e01b031916855290930192600101848a610618565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b169084015216878201520195019101908590610604565b8280fd5b50833461059d57602036600319011261059d576001600160a01b0390829082610812610a05565b16808252600660205267ffffffffffffffff8383205416908115610854578252600560205282822090825260205220541690811561057e576020925051908152f35b835163276e74a760e11b81528790fd5b50828491346107e757826003193601126107e75780518092855490818352602080930191878752600080516020610acc8339815191528488915b83600784011061091457549383831061075d575082821061073f5782821061072157828210610703578282106106e5578282106106c9578282106106ad5750106106995750839003601f01601f1916830193905067ffffffffffffffff8411838510176106865750829182610682925282610a20565b9460089150610100600191875463ffffffff60e01b9081818a1b16835260c08282821b168c8501528c838360a0928282851b16818901526080838360608282851b16818d01521b16908901521b169085015282828d1b16908401521687820152019501910190859061089e565b84823461051257816003193601126105125760015490516001600160a01b039091168152602090f35b919050843461059d57602036600319011261059d5767ffffffffffffffff9082906001600160a01b036109db610a05565b16815260066020522054169182156109f7576020838351908152f35b63276e74a760e11b81528390fd5b600435906001600160a01b0382168203610a1b57565b600080fd5b6020908160408183019282815285518094520193019160005b828110610a47575050505090565b83516001600160e01b03191685529381019392810192600101610a39565b9181601f84011215610a1b5782359167ffffffffffffffff8311610a1b576020808501948460051b010111610a1b57565b356001600160e01b031981168103610a1b579056fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19ba2646970667358221220c02181d14c65e4a760705046e486a45f505b7ca43c4ba8c435ba915f6b7c065f64736f6c63430008130033","sourceMap":"278:3716:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;278:3716:87;;;;;;:::i;:::-;;-1:-1:-1;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;2663:30:62;278:3716:87;;2649:10:62;:44;2645:92;;278:3716:87;3549:28;;;3545:85;;3643:29;;3639:86;;278:3716;;;;;;;;;;;;;;3823:22;278:3716;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;278:3716:87;;;;;;;;;-1:-1:-1;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;-1:-1:-1;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;278:3716:87;;;;;;;;3639:86;278:3716;-1:-1:-1;;;3695:19:87;;278:3716;;3695:19;2645:92:62;278:3716:87;;-1:-1:-1;;;2716:10:62;;278:3716:87;;2716:10:62;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2299:22;278:3716;;;-1:-1:-1;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;1294:10;;;;;1290:66;;-1:-1:-1;;;;;278:3716:87;;;;;1374:9;278:3716;;;;;;;;;;;;;;;1411:20;;1407:76;;278:3716;;;;;;;;1407:76;278:3716;-1:-1:-1;;;1454:18:87;;278:3716;-1:-1:-1;1454:18:87;1290:66;278:3716;;-1:-1:-1;;;1327:18:87;;278:3716;;1327:18;278:3716;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;278:3716:87;;;;;-1:-1:-1;;278:3716:87;;;;;-1:-1:-1;278:3716:87;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;278:3716:87;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;278:3716:87;;;;-1:-1:-1;;;;;278:3716:87;;;;;;:::i;:::-;;;;;688:12;278:3716;;;;;;;;721:10;;;717:66;;278:3716;;802:9;278:3716;;;;;;;;;;;;;839:20;;;835:76;;278:3716;;;;;;;;717:66;278:3716;;-1:-1:-1;;;754:18:87;;278:3716;;754:18;278:3716;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;278:3716:87;;;;;-1:-1:-1;;278:3716:87;;;;;-1:-1:-1;278:3716:87;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;278:3716:87;;;;;;;;;;;;;;;;;;-1:-1:-1;;278:3716:87;;;;;;;;-1:-1:-1;;;;;278:3716:87;;:::i;:::-;;;;1727:12;278:3716;;;;;1759:10;;;1755:66;;278:3716;;;;;;;;1755:66;-1:-1:-1;;;1792:18:87;;;;;278:3716;;;;-1:-1:-1;;;;;278:3716:87;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;278:3716:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;278:3716:87;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"getGateway()":"42bf3cc1","getSubnetActorGetterFacet()":"0be06111","getSubnetActorGetterSelectors()":"1b0766c3","getSubnetActorManagerFacet()":"a372bf30","getSubnetActorManagerSelectors()":"0f5849d1","getSubnetDeployedByNonce(address,uint64)":"9836b75f","getUserLastNonce(address)":"030f6051","latestSubnetDeployed(address)":"1163dca5","updateReferenceSubnetContract(address,address,bytes4[],bytes4[])":"a46d044d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CannotFindSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FacetCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"getGateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorGetterFacet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorGetterSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorManagerFacet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubnetActorManagerSelectors\",\"outputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"\",\"type\":\"bytes4[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getSubnetDeployedByNonce\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getUserLastNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"latestSubnetDeployed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newGetterFacet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newManagerFacet\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"newSubnetGetterSelectors\",\"type\":\"bytes4[]\"},{\"internalType\":\"bytes4[]\",\"name\":\"newSubnetManagerSelectors\",\"type\":\"bytes4[]\"}],\"name\":\"updateReferenceSubnetContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getSubnetDeployedByNonce(address,uint64)\":{\"params\":{\"nonce\":\"The specific nonce associated with the subnet deployment.\",\"owner\":\"The address of the user whose subnet deployment is queried.\"}},\"getUserLastNonce(address)\":{\"params\":{\"user\":\"The address of the user whose last nonce is being queried.\"}},\"latestSubnetDeployed(address)\":{\"params\":{\"owner\":\"The address of the user whose latest subnet deployment is queried.\"}},\"updateReferenceSubnetContract(address,address,bytes4[],bytes4[])\":{\"params\":{\"newGetterFacet\":\"The address of the new subnet getter facet.\",\"newManagerFacet\":\"The address of the new subnet manager facet.\",\"newSubnetGetterSelectors\":\"An array of function selectors for the new subnet getter facet.\",\"newSubnetManagerSelectors\":\"An array of function selectors for the new subnet manager facet.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getGateway()\":{\"notice\":\"Returns the gateway.\"},\"getSubnetActorGetterFacet()\":{\"notice\":\"Returns the address of the SUBNET_GETTER_FACET.\"},\"getSubnetActorGetterSelectors()\":{\"notice\":\"Returns the subnet getter selectors.\"},\"getSubnetActorManagerFacet()\":{\"notice\":\"Returns the address of the SUBNET_MANAGER_FACET.\"},\"getSubnetActorManagerSelectors()\":{\"notice\":\"Returns the subnet manager selectors.\"},\"getSubnetDeployedByNonce(address,uint64)\":{\"notice\":\"Returns the address of a subnet actor deployed for a specific nonce by a user.\"},\"getUserLastNonce(address)\":{\"notice\":\"Returns the last nonce used by the owner.\"},\"latestSubnetDeployed(address)\":{\"notice\":\"Returns the address of the latest subnet actor deployed by a user.\"},\"updateReferenceSubnetContract(address,address,bytes4[],bytes4[])\":{\"notice\":\"Updates references to the subnet contract components, including facets and selector sets. Only callable by the contract owner.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/subnetregistry/SubnetGetterFacet.sol\":\"SubnetGetterFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"CannotFindSubnet"},{"inputs":[],"type":"error","name":"FacetCannotBeZero"},{"inputs":[],"type":"error","name":"NotOwner"},{"inputs":[],"stateMutability":"view","type":"function","name":"getGateway","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorGetterFacet","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorGetterSelectors","outputs":[{"internalType":"bytes4[]","name":"","type":"bytes4[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorManagerFacet","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSubnetActorManagerSelectors","outputs":[{"internalType":"bytes4[]","name":"","type":"bytes4[]"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSubnetDeployedByNonce","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"getUserLastNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"latestSubnetDeployed","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"newGetterFacet","type":"address"},{"internalType":"address","name":"newManagerFacet","type":"address"},{"internalType":"bytes4[]","name":"newSubnetGetterSelectors","type":"bytes4[]"},{"internalType":"bytes4[]","name":"newSubnetManagerSelectors","type":"bytes4[]"}],"stateMutability":"nonpayable","type":"function","name":"updateReferenceSubnetContract"}],"devdoc":{"kind":"dev","methods":{"getSubnetDeployedByNonce(address,uint64)":{"params":{"nonce":"The specific nonce associated with the subnet deployment.","owner":"The address of the user whose subnet deployment is queried."}},"getUserLastNonce(address)":{"params":{"user":"The address of the user whose last nonce is being queried."}},"latestSubnetDeployed(address)":{"params":{"owner":"The address of the user whose latest subnet deployment is queried."}},"updateReferenceSubnetContract(address,address,bytes4[],bytes4[])":{"params":{"newGetterFacet":"The address of the new subnet getter facet.","newManagerFacet":"The address of the new subnet manager facet.","newSubnetGetterSelectors":"An array of function selectors for the new subnet getter facet.","newSubnetManagerSelectors":"An array of function selectors for the new subnet manager facet."}}},"version":1},"userdoc":{"kind":"user","methods":{"getGateway()":{"notice":"Returns the gateway."},"getSubnetActorGetterFacet()":{"notice":"Returns the address of the SUBNET_GETTER_FACET."},"getSubnetActorGetterSelectors()":{"notice":"Returns the subnet getter selectors."},"getSubnetActorManagerFacet()":{"notice":"Returns the address of the SUBNET_MANAGER_FACET."},"getSubnetActorManagerSelectors()":{"notice":"Returns the subnet manager selectors."},"getSubnetDeployedByNonce(address,uint64)":{"notice":"Returns the address of a subnet actor deployed for a specific nonce by a user."},"getUserLastNonce(address)":{"notice":"Returns the last nonce used by the owner."},"latestSubnetDeployed(address)":{"notice":"Returns the address of the latest subnet actor deployed by a user."},"updateReferenceSubnetContract(address,address,bytes4[],bytes4[])":{"notice":"Updates references to the subnet contract components, including facets and selector sets. Only callable by the contract owner."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/subnetregistry/SubnetGetterFacet.sol":"SubnetGetterFacet"},"libraries":{},"viaIR":true},"sources":{"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","id":52518,"exportedSymbols":{"CannotFindSubnet":[37520],"FacetCannotBeZero":[37516],"LibDiamond":[41682],"SubnetGetterFacet":[52517],"SubnetRegistryActorStorage":[47365]},"nodeType":"SourceUnit","src":"46:3949:87","nodes":[{"id":52281,"nodeType":"PragmaDirective","src":"46:23:87","nodes":[],"literals":["solidity","0.8",".19"]},{"id":52283,"nodeType":"ImportDirective","src":"70:79:87","nodes":[],"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","file":"../lib/LibSubnetRegistryStorage.sol","nameLocation":"-1:-1:-1","scope":52518,"sourceUnit":47366,"symbolAliases":[{"foreign":{"id":52282,"name":"SubnetRegistryActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47365,"src":"78:26:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52286,"nodeType":"ImportDirective","src":"150:76:87","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":52518,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":52284,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"158:16:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":52285,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"176:17:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52288,"nodeType":"ImportDirective","src":"227:49:87","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"../lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":52518,"sourceUnit":41683,"symbolAliases":[{"foreign":{"id":52287,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"235:10:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52517,"nodeType":"ContractDefinition","src":"278:3716:87","nodes":[{"id":52291,"nodeType":"VariableDeclaration","src":"364:37:87","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"400:1:87","scope":52517,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage"},"typeName":{"id":52290,"nodeType":"UserDefinedTypeName","pathNode":{"id":52289,"name":"SubnetRegistryActorStorage","nameLocations":["364:26:87"],"nodeType":"IdentifierPath","referencedDeclaration":47365,"src":"364:26:87"},"referencedDeclaration":47365,"src":"364:26:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage_ptr","typeString":"struct SubnetRegistryActorStorage"}},"visibility":"internal"},{"id":52335,"nodeType":"FunctionDefinition","src":"579:338:87","nodes":[],"body":{"id":52334,"nodeType":"Block","src":"663:254:87","nodes":[],"statements":[{"assignments":[52300],"declarations":[{"constant":false,"id":52300,"mutability":"mutable","name":"nonce","nameLocation":"680:5:87","nodeType":"VariableDeclaration","scope":52334,"src":"673:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52299,"name":"uint64","nodeType":"ElementaryTypeName","src":"673:6:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":52305,"initialValue":{"baseExpression":{"expression":{"id":52301,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"688:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52302,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"690:10:87","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":47364,"src":"688:12:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":52304,"indexExpression":{"id":52303,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52294,"src":"701:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"688:19:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"673:34:87"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52306,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52300,"src":"721:5:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"730:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"721:10:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52313,"nodeType":"IfStatement","src":"717:66:87","trueBody":{"id":52312,"nodeType":"Block","src":"733:50:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52309,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"754:16:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"754:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52311,"nodeType":"RevertStatement","src":"747:25:87"}]}},{"expression":{"id":52321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52314,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52297,"src":"793:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":52315,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"802:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"804:7:87","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":47359,"src":"802:9:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"}},"id":52318,"indexExpression":{"id":52317,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52294,"src":"812:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"802:16:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"}},"id":52320,"indexExpression":{"id":52319,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52300,"src":"819:5:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"802:23:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"793:32:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52322,"nodeType":"ExpressionStatement","src":"793:32:87"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52323,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52297,"src":"839:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":52326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"857:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"849:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52324,"name":"address","nodeType":"ElementaryTypeName","src":"849:7:87","typeDescriptions":{}}},"id":52327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"849:10:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"839:20:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52333,"nodeType":"IfStatement","src":"835:76:87","trueBody":{"id":52332,"nodeType":"Block","src":"861:50:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52329,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"882:16:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"882:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52331,"nodeType":"RevertStatement","src":"875:25:87"}]}}]},"documentation":{"id":52292,"nodeType":"StructuredDocumentation","src":"408:166:87","text":"@notice Returns the address of the latest subnet actor deployed by a user.\n @param owner The address of the user whose latest subnet deployment is queried."},"functionSelector":"1163dca5","implemented":true,"kind":"function","modifiers":[],"name":"latestSubnetDeployed","nameLocation":"588:20:87","parameters":{"id":52295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52294,"mutability":"mutable","name":"owner","nameLocation":"617:5:87","nodeType":"VariableDeclaration","scope":52335,"src":"609:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52293,"name":"address","nodeType":"ElementaryTypeName","src":"609:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"608:15:87"},"returnParameters":{"id":52298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52297,"mutability":"mutable","name":"subnet","nameLocation":"655:6:87","nodeType":"VariableDeclaration","scope":52335,"src":"647:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52296,"name":"address","nodeType":"ElementaryTypeName","src":"647:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"646:16:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52374,"nodeType":"FunctionDefinition","src":"1178:311:87","nodes":[],"body":{"id":52373,"nodeType":"Block","src":"1280:209:87","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52345,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52340,"src":"1294:5:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1303:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1294:10:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52352,"nodeType":"IfStatement","src":"1290:66:87","trueBody":{"id":52351,"nodeType":"Block","src":"1306:50:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52348,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"1327:16:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1327:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52350,"nodeType":"RevertStatement","src":"1320:25:87"}]}},{"expression":{"id":52360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52353,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52343,"src":"1365:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"expression":{"id":52354,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"1374:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1376:7:87","memberName":"subnets","nodeType":"MemberAccess","referencedDeclaration":47359,"src":"1374:9:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint64_$_t_address_$_$","typeString":"mapping(address => mapping(uint64 => address))"}},"id":52357,"indexExpression":{"id":52356,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52338,"src":"1384:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1374:16:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint64_$_t_address_$","typeString":"mapping(uint64 => address)"}},"id":52359,"indexExpression":{"id":52358,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52340,"src":"1391:5:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1374:23:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1365:32:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52361,"nodeType":"ExpressionStatement","src":"1365:32:87"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52362,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52343,"src":"1411:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":52365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1429:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1421:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52363,"name":"address","nodeType":"ElementaryTypeName","src":"1421:7:87","typeDescriptions":{}}},"id":52366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1421:10:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1411:20:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52372,"nodeType":"IfStatement","src":"1407:76:87","trueBody":{"id":52371,"nodeType":"Block","src":"1433:50:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52368,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"1454:16:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1454:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52370,"nodeType":"RevertStatement","src":"1447:25:87"}]}}]},"documentation":{"id":52336,"nodeType":"StructuredDocumentation","src":"923:250:87","text":"@notice Returns the address of a subnet actor deployed for a specific nonce by a user.\n @param owner The address of the user whose subnet deployment is queried.\n @param nonce The specific nonce associated with the subnet deployment."},"functionSelector":"9836b75f","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetDeployedByNonce","nameLocation":"1187:24:87","parameters":{"id":52341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52338,"mutability":"mutable","name":"owner","nameLocation":"1220:5:87","nodeType":"VariableDeclaration","scope":52374,"src":"1212:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52337,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52340,"mutability":"mutable","name":"nonce","nameLocation":"1234:5:87","nodeType":"VariableDeclaration","scope":52374,"src":"1227:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52339,"name":"uint64","nodeType":"ElementaryTypeName","src":"1227:6:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1211:29:87"},"returnParameters":{"id":52344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52343,"mutability":"mutable","name":"subnet","nameLocation":"1272:6:87","nodeType":"VariableDeclaration","scope":52374,"src":"1264:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52342,"name":"address","nodeType":"ElementaryTypeName","src":"1264:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1263:16:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52398,"nodeType":"FunctionDefinition","src":"1632:195:87","nodes":[],"body":{"id":52397,"nodeType":"Block","src":"1709:118:87","nodes":[],"statements":[{"expression":{"id":52387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52382,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52380,"src":"1719:5:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":52383,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"1727:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1729:10:87","memberName":"userNonces","nodeType":"MemberAccess","referencedDeclaration":47364,"src":"1727:12:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint64_$","typeString":"mapping(address => uint64)"}},"id":52386,"indexExpression":{"id":52385,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52377,"src":"1740:4:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1727:18:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"1719:26:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":52388,"nodeType":"ExpressionStatement","src":"1719:26:87"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52389,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52380,"src":"1759:5:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1768:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1759:10:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52396,"nodeType":"IfStatement","src":"1755:66:87","trueBody":{"id":52395,"nodeType":"Block","src":"1771:50:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52392,"name":"CannotFindSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37520,"src":"1792:16:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1792:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52394,"nodeType":"RevertStatement","src":"1785:25:87"}]}}]},"documentation":{"id":52375,"nodeType":"StructuredDocumentation","src":"1495:132:87","text":"@notice Returns the last nonce used by the owner.\n @param user The address of the user whose last nonce is being queried."},"functionSelector":"030f6051","implemented":true,"kind":"function","modifiers":[],"name":"getUserLastNonce","nameLocation":"1641:16:87","parameters":{"id":52378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52377,"mutability":"mutable","name":"user","nameLocation":"1666:4:87","nodeType":"VariableDeclaration","scope":52398,"src":"1658:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52376,"name":"address","nodeType":"ElementaryTypeName","src":"1658:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1657:14:87"},"returnParameters":{"id":52381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52380,"mutability":"mutable","name":"nonce","nameLocation":"1702:5:87","nodeType":"VariableDeclaration","scope":52398,"src":"1695:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":52379,"name":"uint64","nodeType":"ElementaryTypeName","src":"1695:6:87","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1694:14:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52408,"nodeType":"FunctionDefinition","src":"1870:87:87","nodes":[],"body":{"id":52407,"nodeType":"Block","src":"1924:33:87","nodes":[],"statements":[{"expression":{"expression":{"id":52404,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"1941:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1943:7:87","memberName":"GATEWAY","nodeType":"MemberAccess","referencedDeclaration":47339,"src":"1941:9:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52403,"id":52406,"nodeType":"Return","src":"1934:16:87"}]},"documentation":{"id":52399,"nodeType":"StructuredDocumentation","src":"1833:32:87","text":"@notice Returns the gateway."},"functionSelector":"42bf3cc1","implemented":true,"kind":"function","modifiers":[],"name":"getGateway","nameLocation":"1879:10:87","parameters":{"id":52400,"nodeType":"ParameterList","parameters":[],"src":"1889:2:87"},"returnParameters":{"id":52403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52408,"src":"1915:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52401,"name":"address","nodeType":"ElementaryTypeName","src":"1915:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1914:9:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52418,"nodeType":"FunctionDefinition","src":"2027:114:87","nodes":[],"body":{"id":52417,"nodeType":"Block","src":"2096:45:87","nodes":[],"statements":[{"expression":{"expression":{"id":52414,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"2113:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2115:19:87","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":47342,"src":"2113:21:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52413,"id":52416,"nodeType":"Return","src":"2106:28:87"}]},"documentation":{"id":52409,"nodeType":"StructuredDocumentation","src":"1963:59:87","text":"@notice Returns the address of the SUBNET_GETTER_FACET."},"functionSelector":"0be06111","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorGetterFacet","nameLocation":"2036:25:87","parameters":{"id":52410,"nodeType":"ParameterList","parameters":[],"src":"2061:2:87"},"returnParameters":{"id":52413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52418,"src":"2087:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52411,"name":"address","nodeType":"ElementaryTypeName","src":"2087:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2086:9:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52428,"nodeType":"FunctionDefinition","src":"2212:116:87","nodes":[],"body":{"id":52427,"nodeType":"Block","src":"2282:46:87","nodes":[],"statements":[{"expression":{"expression":{"id":52424,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"2299:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2301:20:87","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":47344,"src":"2299:22:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52423,"id":52426,"nodeType":"Return","src":"2292:29:87"}]},"documentation":{"id":52419,"nodeType":"StructuredDocumentation","src":"2147:60:87","text":"@notice Returns the address of the SUBNET_MANAGER_FACET."},"functionSelector":"a372bf30","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorManagerFacet","nameLocation":"2221:26:87","parameters":{"id":52420,"nodeType":"ParameterList","parameters":[],"src":"2247:2:87"},"returnParameters":{"id":52423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52428,"src":"2273:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52421,"name":"address","nodeType":"ElementaryTypeName","src":"2273:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2272:9:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52439,"nodeType":"FunctionDefinition","src":"2387:128:87","nodes":[],"body":{"id":52438,"nodeType":"Block","src":"2468:47:87","nodes":[],"statements":[{"expression":{"expression":{"id":52435,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"2485:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2487:21:87","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":47348,"src":"2485:23:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"functionReturnParameters":52434,"id":52437,"nodeType":"Return","src":"2478:30:87"}]},"documentation":{"id":52429,"nodeType":"StructuredDocumentation","src":"2334:48:87","text":"@notice Returns the subnet getter selectors."},"functionSelector":"1b0766c3","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorGetterSelectors","nameLocation":"2396:29:87","parameters":{"id":52430,"nodeType":"ParameterList","parameters":[],"src":"2425:2:87"},"returnParameters":{"id":52434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52439,"src":"2451:15:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52431,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2451:6:87","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52432,"nodeType":"ArrayTypeName","src":"2451:8:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"2450:17:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52450,"nodeType":"FunctionDefinition","src":"2575:130:87","nodes":[],"body":{"id":52449,"nodeType":"Block","src":"2657:48:87","nodes":[],"statements":[{"expression":{"expression":{"id":52446,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"2674:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2676:22:87","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":47352,"src":"2674:24:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"functionReturnParameters":52445,"id":52448,"nodeType":"Return","src":"2667:31:87"}]},"documentation":{"id":52440,"nodeType":"StructuredDocumentation","src":"2521:49:87","text":"@notice Returns the subnet manager selectors."},"functionSelector":"0f5849d1","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetActorManagerSelectors","nameLocation":"2584:30:87","parameters":{"id":52441,"nodeType":"ParameterList","parameters":[],"src":"2614:2:87"},"returnParameters":{"id":52445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52444,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52450,"src":"2640:15:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52442,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2640:6:87","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52443,"nodeType":"ArrayTypeName","src":"2640:8:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"2639:17:87"},"scope":52517,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52516,"nodeType":"FunctionDefinition","src":"3222:770:87","nodes":[],"body":{"id":52515,"nodeType":"Block","src":"3446:546:87","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52464,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"3456:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":52466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3467:22:87","memberName":"enforceIsContractOwner","nodeType":"MemberAccess","referencedDeclaration":41144,"src":"3456:33:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":52467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3456:35:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52468,"nodeType":"ExpressionStatement","src":"3456:35:87"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52469,"name":"newGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52453,"src":"3549:14:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":52472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3575:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3567:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52470,"name":"address","nodeType":"ElementaryTypeName","src":"3567:7:87","typeDescriptions":{}}},"id":52473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3567:10:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3549:28:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52479,"nodeType":"IfStatement","src":"3545:85:87","trueBody":{"id":52478,"nodeType":"Block","src":"3579:51:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52475,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"3600:17:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3600:19:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52477,"nodeType":"RevertStatement","src":"3593:26:87"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52480,"name":"newManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52455,"src":"3643:15:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":52483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3670:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3662:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52481,"name":"address","nodeType":"ElementaryTypeName","src":"3662:7:87","typeDescriptions":{}}},"id":52484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3662:10:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3643:29:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52490,"nodeType":"IfStatement","src":"3639:86:87","trueBody":{"id":52489,"nodeType":"Block","src":"3674:51:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52486,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"3695:17:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3695:19:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52488,"nodeType":"RevertStatement","src":"3688:26:87"}]}},{"expression":{"id":52495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":52491,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"3775:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3777:19:87","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":47342,"src":"3775:21:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52494,"name":"newGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52453,"src":"3799:14:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3775:38:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52496,"nodeType":"ExpressionStatement","src":"3775:38:87"},{"expression":{"id":52501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":52497,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"3823:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3825:20:87","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":47344,"src":"3823:22:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52500,"name":"newManagerFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52455,"src":"3848:15:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3823:40:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52502,"nodeType":"ExpressionStatement","src":"3823:40:87"},{"expression":{"id":52507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":52503,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"3873:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3875:21:87","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":47348,"src":"3873:23:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52506,"name":"newSubnetGetterSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52458,"src":"3899:24:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[] calldata"}},"src":"3873:50:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52508,"nodeType":"ExpressionStatement","src":"3873:50:87"},{"expression":{"id":52513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":52509,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52291,"src":"3933:1:87","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":52511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3935:22:87","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":47352,"src":"3933:24:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52512,"name":"newSubnetManagerSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52461,"src":"3960:25:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[] calldata"}},"src":"3933:52:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":52514,"nodeType":"ExpressionStatement","src":"3933:52:87"}]},"documentation":{"id":52451,"nodeType":"StructuredDocumentation","src":"2711:506:87","text":"@notice Updates references to the subnet contract components, including facets and selector sets.\n Only callable by the contract owner.\n @param newGetterFacet The address of the new subnet getter facet.\n @param newManagerFacet The address of the new subnet manager facet.\n @param newSubnetGetterSelectors An array of function selectors for the new subnet getter facet.\n @param newSubnetManagerSelectors An array of function selectors for the new subnet manager facet."},"functionSelector":"a46d044d","implemented":true,"kind":"function","modifiers":[],"name":"updateReferenceSubnetContract","nameLocation":"3231:29:87","parameters":{"id":52462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52453,"mutability":"mutable","name":"newGetterFacet","nameLocation":"3278:14:87","nodeType":"VariableDeclaration","scope":52516,"src":"3270:22:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52452,"name":"address","nodeType":"ElementaryTypeName","src":"3270:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52455,"mutability":"mutable","name":"newManagerFacet","nameLocation":"3310:15:87","nodeType":"VariableDeclaration","scope":52516,"src":"3302:23:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52454,"name":"address","nodeType":"ElementaryTypeName","src":"3302:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52458,"mutability":"mutable","name":"newSubnetGetterSelectors","nameLocation":"3353:24:87","nodeType":"VariableDeclaration","scope":52516,"src":"3335:42:87","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52456,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3335:6:87","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52457,"nodeType":"ArrayTypeName","src":"3335:8:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":52461,"mutability":"mutable","name":"newSubnetManagerSelectors","nameLocation":"3405:25:87","nodeType":"VariableDeclaration","scope":52516,"src":"3387:43:87","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":52459,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3387:6:87","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":52460,"nodeType":"ArrayTypeName","src":"3387:8:87","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"3260:176:87"},"returnParameters":{"id":52463,"nodeType":"ParameterList","parameters":[],"src":"3446:0:87"},"scope":52517,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetGetterFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52517],"name":"SubnetGetterFacet","nameLocation":"287:17:87","scope":52518,"usedErrors":[37516,37520,40975]}],"license":"MIT OR Apache-2.0"},"id":87} \ No newline at end of file diff --git a/.out/SubnetIDHelper.sol/SubnetIDHelper.json b/.out/SubnetIDHelper.sol/SubnetIDHelper.json index 39ab4402e..03ee74ac9 100644 --- a/.out/SubnetIDHelper.sol/SubnetIDHelper.json +++ b/.out/SubnetIDHelper.sol/SubnetIDHelper.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"commonParent","inputs":[{"name":"subnet1","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"subnet2","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"createSubnetId","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"actor","type":"address","internalType":"address"}],"outputs":[{"name":"newSubnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"down","inputs":[{"name":"subnet1","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"subnet2","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"equals","inputs":[{"name":"subnet1","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"subnet2","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"getActor","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getAddress","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getParentSubnet","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"isEmpty","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"isRoot","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"toHash","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"error","name":"DifferentRootNetwork","inputs":[]},{"type":"error","name":"EmptySubnet","inputs":[]},{"type":"error","name":"InvalidRoute","inputs":[]},{"type":"error","name":"NoAddressForRoot","inputs":[]},{"type":"error","name":"NoParentForSubnet","inputs":[]},{"type":"error","name":"StringsInsufficientHexLength","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6080806040523461001a57610f269081610020823930815050f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063089032d514610751578063118e84ee146106a4578063138e13fc1461064f578063399912661461062e57806359feac42146106095780636099e898146105c3578063862a88f81461057b57806390ba52cf14610560578063aa5106cb14610456578063c836244d146104385763e4ebe92c1461009557600080fd5b61009e36610ac6565b6001600160401b036100af82610b7a565b166000817a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008082101561042a575b506d04ee2d6d415b85acef81000000008082101561041d575b50662386f26fc1000080821015610410575b506305f5e10080821015610403575b50612710808210156103f6575b5060648110156103e8575b600a809110156103de575b600182019061015c61014683610be7565b9261015460405194856109a1565b808452610be7565b938160216020850195601f198098013688378501015b60001901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049081156101a0578290610172565b50505060226101da916101ca936040519485926117b960f11b602085015251809285850190610af7565b81010360028101845201826109a1565b916101e86020820182610b8e565b90506000915b81831061022657601f6040868682519384926020845261021d8151809281602088015260208888019101610af7565b01168101030190f35b909193610260602160405183610246829551809260208086019101610af7565b8101602f60f81b60208201520360018101845201826109a1565b846102886102836102746020860186610b8e565b6001600160a01b039491610bc3565b610bd3565b169081604051928360608101106001600160401b036060860111176103c85760608401604052602a845260403660208601378351156103b257603060208501538351600110156103b2576078602185015360295b60018111610353575061033457509061032b6020600193604051938161030b8693518092868087019101610af7565b820161031f82518093868085019101610af7565b010380845201826109a1565b940191906101ee565b6044906040519063e22e27eb60e01b8252600482015260146024820152fd5b906010600f821610156103b25784518210156103b2576f181899199a1a9b1b9c1cb0b131b232b360811b600f82161a8583016020015360041c90801561039c57600019016102dc565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9060010190610135565b60646002910491019061012a565b600491049101903861011f565b6008910491019038610112565b6010910491019038610103565b60209104910190386100f1565b9150508104604090386100d8565b602061044c610446366108bf565b90610d0d565b6040519015158152f35b60031960403682011261055b57600435906001600160401b039081831161055b5760408360040191843603011261055b576001600160a01b03602435818116949085900361055b576024906104a9610b2e565b946104b385610b7a565b16855201916104c28382610b8e565b92905060019283810180911161039c576104db90610b48565b93602086019485526104ed8184610b8e565b93905060005b84811061052c578888885191825192600019840193841161039c576105289361051b91610b1a565b526040519182918261090c565b0390f35b80610545610283889361053f8787610b8e565b90610bc3565b85610551838b51610b1a565b91169052016104f3565b600080fd5b602061057361056e36610ac6565b610c02565b604051908152f35b602061058636610ac6565b61059282820182610b8e565b90501590816105a7575b506040519015158152f35b6001600160401b0391506105ba90610b7a565b1615158261059c565b60206105ce36610ac6565b6105da82820182610b8e565b90501590816105ee57506040519015158152f35b6001600160401b03915061060190610b7a565b16158261059c565b602061061c61061736610ac6565b610cbe565b6040516001600160a01b039091168152f35b61052861064361063d366108bf565b90610d6a565b6040519182918261090c565b602061065a36610a01565b018051519081156106925751600019820191821161039c576020916001600160a01b03916106889190610b1a565b5116604051908152f35b60405163142b83b360e31b8152600490fd5b6106ad36610a01565b6106b5610b2e565b5060208101908151511561073f57815151600019810190811161039c576106db90610b48565b90815160005b81811061071857610528846001600160401b0385511690604051916107058361096b565b825260208201526040519182918261090c565b600190818060a01b0361072c828851610b1a565b51166107388287610b1a565b52016106e1565b604051632f10c6c160e01b8152600490fd5b61075a366108bf565b610762610b2e565b5061076c82610b7a565b6001600160401b0390818061078085610b7a565b169116036108ad57602083016107968185610b8e565b6020850191506107a68286610b8e565b919050111561089b576000936107bc8282610b8e565b9590505b8581108061085c575b156107d6576001016107c0565b84848892600019811461039c5760018091016107f181610b48565b9260005b82811061082c57610528868661080a8a610b7a565b91604051926108188461096b565b16825260208201526040519182918261090c565b8061083f610283869361053f868c610b8e565b6108498288610b1a565b6001600160a01b039091169052016107f5565b5061086e6102838261053f878b610b8e565b6108788484610b8e565b6001600160a01b0391829161089291610283918791610bc3565b169116146107c9565b60405163427282e960e11b8152600490fd5b604051637185935560e01b8152600490fd5b600319919060408382011261055b576001600160401b039060043582811161055b57604085828403011261055b576004019360243592831161055b578260409203011261055b5760040190565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061094e575050505090565b83516001600160a01b031685529381019392810192600101610940565b604081019081106001600160401b038211176103c857604052565b602081019081106001600160401b038211176103c857604052565b90601f801991011681019081106001600160401b038211176103c857604052565b35906001600160401b038216820361055b57565b6001600160401b0381116103c85760051b60200190565b35906001600160a01b038216820361055b57565b600319906020828201811361055b57600435926001600160401b039081851161055b57604090858503011261055b5760405193610a3d8561096b565b610a49816004016109c2565b8552602481013591821161055b5701918060238401121561055b576004830135610a72816109d6565b93610a8060405195866109a1565b81855260248486019260051b82010192831161055b576024849101915b838310610aae575050505082015290565b8190610ab9846109ed565b8152019101908390610a9d565b6003199060208183011261055b57600435916001600160401b03831161055b578260409203011261055b5760040190565b60005b838110610b0a5750506000910152565b8181015183820152602001610afa565b80518210156103b25760209160051b010190565b60405190610b3b8261096b565b6060602083600081520152565b90610b52826109d6565b610b5f60405191826109a1565b8281528092610b70601f19916109d6565b0190602036910137565b356001600160401b038116810361055b5790565b903590601e198136030182121561055b57018035906001600160401b03821161055b57602001918160051b3603831361055b57565b91908110156103b25760051b0190565b356001600160a01b038116810361055b5790565b6001600160401b0381116103c857601f01601f191660200190565b6040516020808201818152926001600160401b0391608084019183610c26826109c2565b16604086015281810135601e198236030181121561055b570191818335930193831161055b578260051b3603841361055b5760406060860152829052839160a083019160005b828110610c8f57505050610c89925003601f1981018352826109a1565b51902090565b91935091600190839081906001600160a01b03610cab896109ed565b1681520195019101918593919492610c6c565b6020810190610ccd8282610b8e565b905015610d0657610ce9610ce18383610b8e565b939092610b8e565b60001981019150811161039c57610d039261028392610bc3565b90565b5050600090565b610d1681610b7a565b6001600160401b0380610d2885610b7a565b16911603610d0657610d3d6020820182610b8e565b9050610d4c6020840184610b8e565b91905003610d0657610d60610d6691610c02565b91610c02565b1490565b90610d73610b2e565b50610d7d82610b7a565b906001600160401b03918280610d9284610b7a565b16911603610ec4579160208101906000610dac8383610b8e565b95905060208101610dbd8183610b8e565b9390505b87811080610ebb575b80610e7c575b15610ddd57600101610dc1565b93949596505050508015610e5257610df481610b48565b9260005b828110610e2457505050610e0b90610b7a565b9160405192610e198461096b565b168252602082015290565b80610e3861028360019361053f8689610b8e565b610e428288610b1a565b90838060a01b0316905201610df8565b50610e5d9150610b7a565b9060405190610e6b82610986565b6000825260405192610e198461096b565b50610e8e6102838261053f8989610b8e565b610e988385610b8e565b6001600160a01b03918291610eb291610283918791610bc3565b16911614610dd0565b50838110610dca565b505050604051610ed381610986565b6000815260405190610ee48261096b565b6000825260208201529056fea2646970667358221220bb72f1fe7360adaccdcc6c3da9ad423afa2f7165c3e545ba8d8aa979cfb51ee464736f6c63430008130033","sourceMap":"272:5215:69:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c8063089032d514610751578063118e84ee146106a4578063138e13fc1461064f578063399912661461062e57806359feac42146106095780636099e898146105c3578063862a88f81461057b57806390ba52cf14610560578063aa5106cb14610456578063c836244d146104385763e4ebe92c1461009557600080fd5b61009e36610ac6565b6001600160401b036100af82610b7a565b166000817a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008082101561042a575b506d04ee2d6d415b85acef81000000008082101561041d575b50662386f26fc1000080821015610410575b506305f5e10080821015610403575b50612710808210156103f6575b5060648110156103e8575b600a809110156103de575b600182019061015c61014683610be7565b9261015460405194856109a1565b808452610be7565b938160216020850195601f198098013688378501015b60001901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049081156101a0578290610172565b50505060226101da916101ca936040519485926117b960f11b602085015251809285850190610af7565b81010360028101845201826109a1565b916101e86020820182610b8e565b90506000915b81831061022657601f6040868682519384926020845261021d8151809281602088015260208888019101610af7565b01168101030190f35b909193610260602160405183610246829551809260208086019101610af7565b8101602f60f81b60208201520360018101845201826109a1565b846102886102836102746020860186610b8e565b6001600160a01b039491610bc3565b610bd3565b169081604051928360608101106001600160401b036060860111176103c85760608401604052602a845260403660208601378351156103b257603060208501538351600110156103b2576078602185015360295b60018111610353575061033457509061032b6020600193604051938161030b8693518092868087019101610af7565b820161031f82518093868085019101610af7565b010380845201826109a1565b940191906101ee565b6044906040519063e22e27eb60e01b8252600482015260146024820152fd5b906010600f821610156103b25784518210156103b2576f181899199a1a9b1b9c1cb0b131b232b360811b600f82161a8583016020015360041c90801561039c57600019016102dc565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9060010190610135565b60646002910491019061012a565b600491049101903861011f565b6008910491019038610112565b6010910491019038610103565b60209104910190386100f1565b9150508104604090386100d8565b602061044c610446366108bf565b90610d0d565b6040519015158152f35b60031960403682011261055b57600435906001600160401b039081831161055b5760408360040191843603011261055b576001600160a01b03602435818116949085900361055b576024906104a9610b2e565b946104b385610b7a565b16855201916104c28382610b8e565b92905060019283810180911161039c576104db90610b48565b93602086019485526104ed8184610b8e565b93905060005b84811061052c578888885191825192600019840193841161039c576105289361051b91610b1a565b526040519182918261090c565b0390f35b80610545610283889361053f8787610b8e565b90610bc3565b85610551838b51610b1a565b91169052016104f3565b600080fd5b602061057361056e36610ac6565b610c02565b604051908152f35b602061058636610ac6565b61059282820182610b8e565b90501590816105a7575b506040519015158152f35b6001600160401b0391506105ba90610b7a565b1615158261059c565b60206105ce36610ac6565b6105da82820182610b8e565b90501590816105ee57506040519015158152f35b6001600160401b03915061060190610b7a565b16158261059c565b602061061c61061736610ac6565b610cbe565b6040516001600160a01b039091168152f35b61052861064361063d366108bf565b90610d6a565b6040519182918261090c565b602061065a36610a01565b018051519081156106925751600019820191821161039c576020916001600160a01b03916106889190610b1a565b5116604051908152f35b60405163142b83b360e31b8152600490fd5b6106ad36610a01565b6106b5610b2e565b5060208101908151511561073f57815151600019810190811161039c576106db90610b48565b90815160005b81811061071857610528846001600160401b0385511690604051916107058361096b565b825260208201526040519182918261090c565b600190818060a01b0361072c828851610b1a565b51166107388287610b1a565b52016106e1565b604051632f10c6c160e01b8152600490fd5b61075a366108bf565b610762610b2e565b5061076c82610b7a565b6001600160401b0390818061078085610b7a565b169116036108ad57602083016107968185610b8e565b6020850191506107a68286610b8e565b919050111561089b576000936107bc8282610b8e565b9590505b8581108061085c575b156107d6576001016107c0565b84848892600019811461039c5760018091016107f181610b48565b9260005b82811061082c57610528868661080a8a610b7a565b91604051926108188461096b565b16825260208201526040519182918261090c565b8061083f610283869361053f868c610b8e565b6108498288610b1a565b6001600160a01b039091169052016107f5565b5061086e6102838261053f878b610b8e565b6108788484610b8e565b6001600160a01b0391829161089291610283918791610bc3565b169116146107c9565b60405163427282e960e11b8152600490fd5b604051637185935560e01b8152600490fd5b600319919060408382011261055b576001600160401b039060043582811161055b57604085828403011261055b576004019360243592831161055b578260409203011261055b5760040190565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061094e575050505090565b83516001600160a01b031685529381019392810192600101610940565b604081019081106001600160401b038211176103c857604052565b602081019081106001600160401b038211176103c857604052565b90601f801991011681019081106001600160401b038211176103c857604052565b35906001600160401b038216820361055b57565b6001600160401b0381116103c85760051b60200190565b35906001600160a01b038216820361055b57565b600319906020828201811361055b57600435926001600160401b039081851161055b57604090858503011261055b5760405193610a3d8561096b565b610a49816004016109c2565b8552602481013591821161055b5701918060238401121561055b576004830135610a72816109d6565b93610a8060405195866109a1565b81855260248486019260051b82010192831161055b576024849101915b838310610aae575050505082015290565b8190610ab9846109ed565b8152019101908390610a9d565b6003199060208183011261055b57600435916001600160401b03831161055b578260409203011261055b5760040190565b60005b838110610b0a5750506000910152565b8181015183820152602001610afa565b80518210156103b25760209160051b010190565b60405190610b3b8261096b565b6060602083600081520152565b90610b52826109d6565b610b5f60405191826109a1565b8281528092610b70601f19916109d6565b0190602036910137565b356001600160401b038116810361055b5790565b903590601e198136030182121561055b57018035906001600160401b03821161055b57602001918160051b3603831361055b57565b91908110156103b25760051b0190565b356001600160a01b038116810361055b5790565b6001600160401b0381116103c857601f01601f191660200190565b6040516020808201818152926001600160401b0391608084019183610c26826109c2565b16604086015281810135601e198236030181121561055b570191818335930193831161055b578260051b3603841361055b5760406060860152829052839160a083019160005b828110610c8f57505050610c89925003601f1981018352826109a1565b51902090565b91935091600190839081906001600160a01b03610cab896109ed565b1681520195019101918593919492610c6c565b6020810190610ccd8282610b8e565b905015610d0657610ce9610ce18383610b8e565b939092610b8e565b60001981019150811161039c57610d039261028392610bc3565b90565b5050600090565b610d1681610b7a565b6001600160401b0380610d2885610b7a565b16911603610d0657610d3d6020820182610b8e565b9050610d4c6020840184610b8e565b91905003610d0657610d60610d6691610c02565b91610c02565b1490565b90610d73610b2e565b50610d7d82610b7a565b906001600160401b03918280610d9284610b7a565b16911603610ec4579160208101906000610dac8383610b8e565b95905060208101610dbd8183610b8e565b9390505b87811080610ebb575b80610e7c575b15610ddd57600101610dc1565b93949596505050508015610e5257610df481610b48565b9260005b828110610e2457505050610e0b90610b7a565b9160405192610e198461096b565b168252602082015290565b80610e3861028360019361053f8689610b8e565b610e428288610b1a565b90838060a01b0316905201610df8565b50610e5d9150610b7a565b9060405190610e6b82610986565b6000825260405192610e198461096b565b50610e8e6102838261053f8989610b8e565b610e988385610b8e565b6001600160a01b03918291610eb291610283918791610bc3565b16911614610dd0565b50838110610dca565b505050604051610ed381610986565b6000815260405190610ee48261096b565b6000825260208201529056fea2646970667358221220bb72f1fe7360adaccdcc6c3da9ad423afa2f7165c3e545ba8d8aa979cfb51ee464736f6c63430008130033","sourceMap":"272:5215:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;581:12;272:5215;581:12;;;272:5215;;;;;;;;;;5430:14;272:5215;5430:14;;;2749:12;272:5215;2749:12;;;272:5215;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1413:11:69;;;:::i;:::-;272:5215;;;12559:8:31;12550:17;;;;12546:103;;272:5215:69;12675:8:31;;12666:17;;;;12662:103;;272:5215:69;12791:8:31;;12782:17;;;;12778:103;;272:5215:69;12907:7:31;;12898:16;;;;12894:100;;272:5215:69;13020:7:31;;13011:16;;;;13007:100;;272:5215:69;13124:16:31;13133:7;13124:16;;;13120:100;;272:5215:69;13246:7:31;13237:16;;;;13233:66;;272:5215:69;748:1:28;272:5215:69;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;890:76:28;272:5215:69;;;;;;;;;;;;890:76:28;;;979:280;-1:-1:-1;;272:5215:69;;-1:-1:-1;;;1084:93:28;;;;272:5215:69;1084:93:28;272:5215:69;1227:10:28;;;1223:21;;979:280;;;;1223:21;1239:5;;;272:5215:69;1373:53;1239:5:28;272:5215:69;1239:5:28;272:5215:69;;1373:53;;;-1:-1:-1;;;272:5215:69;1373:53;;272:5215;;;;;;;;;:::i;:::-;;;1373:53;;;;;;;;;:::i;:::-;1460:12;;272:5215;1460:12;;;;:::i;:::-;1494:9;;272:5215;1489:226;1505:16;;;;;;272:5215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1494:9;272:5215;;;;890:76:28;272:5215:69;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;272:5215:69;;;;;748:1:28;272:5215:69;;;;;;;:::i;:::-;1460:12;1615:15;;:12;272:5215;1460:12;;1615;;:::i;:::-;-1:-1:-1;;;;;272:5215:69;;1615:15;:::i;:::-;;:::i;:::-;272:5215;2072:26:28;;272:5215:69;;;;;;;;-1:-1:-1;;;;;272:5215:69;;;;;;;;;;;;;;;;;;;;;;;;;;2165:15:28;272:5215:69;;;2165:15:28;272:5215:69;;748:1:28;272:5215:69;;;;2190:15:28;890:76;272:5215:69;;2190:15:28;272:5215:69;2248:5:28;748:1;2248:5;;;;2366:15;2362:96;;272:5215:69;;;;748:1:28;272:5215:69;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;1494:9;;;;2362:96:28;279:18;272:5215:69;;;2404:43:28;;;;;;272:5215:69;2404:43:28;;272:5215:69;344:2:28;279:18;;;272:5215:69;2404:43:28;2255:3;2295:16;2286:26;2308:3;2295:16;;2286:26;;;;272:5215:69;;;;;;;-1:-1:-1;;;2308:3:28;2295:16;;2286:26;272:5215:69;;;;;2274:38:28;272:5215:69;279:18:28;2255:3;272:5215:69;;;;-1:-1:-1;;272:5215:69;2220:26:28;;272:5215:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13233:66:31;272:5215:69;13283:1:31;272:5215:69;13233:66:31;;;13120:100;13133:7;13204:1;272:5215:69;;;;13120:100:31;;;13007;272:5215:69;;;;;13007:100:31;;;;12894;12978:1;272:5215:69;;;;12894:100:31;;;;12778:103;12864:2;272:5215:69;;;;12778:103:31;;;;12662;12748:2;272:5215:69;;;;12662:103:31;;;;12546;272:5215:69;;;;;;12546:103:31;;;;272:5215:69;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;272:5215:69;;;;;;;;;;-1:-1:-1;;;;;272:5215:69;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:69;;;;;;;;;;;;;;;;:::i;:::-;2021:11;;;;:::i;:::-;272:5215;;;2074:12;;;;;;:::i;:::-;272:5215;;;;;;;;;;;;;2060:38;;;:::i;:::-;2042:15;272:5215;2042:15;;:56;;;2130:12;;;;:::i;:::-;2164:9;;;272:5215;2175:15;;;;;;2324;;;;272:5215;;;;;;;;;;;;;;2324:51;;;;:::i;:::-;272:5215;;;;;;;;:::i;:::-;;;;2164:9;2229:12;:15;;:12;;;;;;:::i;:::-;:15;;:::i;:::-;2208;:36;:15;;;:36;:::i;:::-;272:5215;;;;;2164:9;;272:5215;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;2749:12;272:5215;;;:::i;:::-;2749:12;;;;;;:::i;:::-;:24;;;:44;;;;272:5215;;;;;;;;;;2749:44;-1:-1:-1;;;;;2777:11:69;;;;;:::i;:::-;272:5215;2777:16;;2749:44;;;272:5215;5430:14;272:5215;;;:::i;:::-;5430:14;;;;;;:::i;:::-;:26;;;:48;;;;272:5215;;;;;;;;;5430:48;-1:-1:-1;;;;;5460:13:69;;;;;:::i;:::-;272:5215;5460:18;5430:48;;;272:5215;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;272:5215:69;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;581:12;272:5215;;;:::i;:::-;581:12;;;272:5215;615:11;;;611:67;;694:12;-1:-1:-1;;272:5215:69;;;;;;;581:12;;-1:-1:-1;;;;;272:5215:69;694:24;;272:5215;694:24;:::i;:::-;272:5215;;;;;;;;611:67;272:5215;;-1:-1:-1;;;649:18:69;;272:5215;;649:18;272:5215;;;;:::i;:::-;;;:::i;:::-;;832:12;;;;;;272:5215;832:24;828:81;;958:12;;272:5215;-1:-1:-1;;272:5215:69;;;;;;;944:38;;;:::i;:::-;272:5215;;;;1052:15;;;;;;272:5215;;-1:-1:-1;;;;;272:5215:69;;;;;;;;;;:::i;:::-;;;832:12;1198:43;;272:5215;;;;;;;;:::i;1041:9::-;272:5215;;;;;;;1096:15;:12;;;:15;:::i;:::-;272:5215;;1085:26;;;;:::i;:::-;272:5215;;1041:9;;828:81;272:5215;;-1:-1:-1;;;879:19:69;;272:5215;;879:19;272:5215;;;;:::i;:::-;;;:::i;:::-;;4637:12;;;:::i;:::-;-1:-1:-1;;;;;4653:12:69;;;;;;:::i;:::-;272:5215;;;4637:28;4633:88;;4734:13;;;;;;;:::i;:::-;;4758;;;-1:-1:-1;4758:13:69;;;;:::i;:::-;4734:44;;;;;4730:96;;272:5215;4884:13;;;;;:::i;:::-;4914:141;;;;4921:22;;;:62;;;4914:141;4921:62;;;272:5215;;4914:141;;4921:62;;;;;272:5215;;;;;;;;;;5104:16;;;:::i;:::-;5136:9;272:5215;5147:5;;;;;;272:5215;5300:12;;;;;:::i;:::-;272:5215;;;;;;;:::i;:::-;;;;4734:13;5284:44;;272:5215;;;;;;;;:::i;5136:9::-;5181:13;:16;;:13;;;;;;:::i;:16::-;5170:27;;;;:::i;:::-;-1:-1:-1;;;;;272:5215:69;;;;;;5136:9;;4921:62;4947:13;:16;;:13;;;;;:::i;:16::-;4967:13;;;;:::i;:::-;-1:-1:-1;;;;;272:5215:69;;;4967:16;;;;272:5215;;4967:16;:::i;:::-;272:5215;;;4947:36;4921:62;;4730:96;272:5215;;-1:-1:-1;;;4801:14:69;;272:5215;;4801:14;4633:88;272:5215;;-1:-1:-1;;;4688:22:69;;272:5215;;4688:22;272:5215;-1:-1:-1;;272:5215:69;;;;;;;;;-1:-1:-1;;;;;272:5215:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;272:5215:69;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:69;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;272:5215:69;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:69;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;272:5215:69;;;;;;:::o;:::-;-1:-1:-1;;;;;272:5215:69;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;272:5215:69;;;;;;:::o;:::-;-1:-1:-1;;272:5215:69;;;;;;-1:-1:-1;272:5215:69;;;;;-1:-1:-1;;;;;272:5215:69;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;272:5215:69;;;;;;;;;;;-1:-1:-1;;;;;272:5215:69;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;272:5215:69;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;272:5215:69;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;272:5215:69;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:69;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;272:5215:69;;;;;;;:::o;:::-;-1:-1:-1;;;;;272:5215:69;;;;;;-1:-1:-1;;272:5215:69;;;;:::o;1750:125::-;272:5215;;1849:18;;;;272:5215;;;1849:18;-1:-1:-1;;;;;272:5215:69;;;;;;;1849:18;272:5215;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;272:5215:69;;;;;;1849:18;;;;;;;272:5215;;1849:18;;;;;;:::i;:::-;272:5215;1839:29;;1750:125;:::o;272:5215::-;;;-1:-1:-1;272:5215:69;;;;;;;-1:-1:-1;;;;;272:5215:69;;;:::i;:::-;;;;;;;;;;;;;;;;;2388:217;2476:12;;;;;;;;:::i;:::-;:24;;;2472:72;;2574:12;2561;;;;:::i;:::-;2574;;;;:::i;:::-;-1:-1:-1;;272:5215:69;;;-1:-1:-1;272:5215:69;;;;2561:37;;;;;:::i;:::-;2388:217;:::o;2472:72::-;2516:17;;2499:1;2516:17;:::o;2806:332::-;2917:12;;;:::i;:::-;-1:-1:-1;;;;;2933:12:69;;;;:::i;:::-;272:5215;;;2917:28;2913:71;;2997:13;;;;;;:::i;:::-;3021;;;2997;3021;;;;:::i;:::-;2997:44;;;;2993:87;;3097:15;3116;3097;;:::i;:::-;3116;;:::i;:::-;3097:34;2806:332;:::o;3239:921::-;;272:5215;;:::i;:::-;;3367:12;;;:::i;:::-;272:5215;-1:-1:-1;;;;;3383:12:69;;;;;;:::i;:::-;272:5215;;;3367:28;3363:110;;3483:9;3531:13;;;;-1:-1:-1;3531:13:69;;3483:9;3531:13;:::i;:::-;3590;;;3531;3590;;;;;;:::i;:::-;3620:167;;;;3627:22;;;:48;;;3620:167;3627:88;;;3620:167;3627:88;;;272:5215;;3620:167;;3627:88;;;;;;;;;3800:6;;3796:99;;3930:16;;;:::i;:::-;3961:9;-1:-1:-1;3972:5:69;;;;;;4125:12;;;;;;:::i;:::-;272:5215;;;;;;;:::i;:::-;;;;3531:13;4109:44;;272:5215;3239:921;:::o;3961:9::-;4006:13;:16;;272:5215;4006:13;;;;;:::i;:16::-;3995:27;;;;:::i;:::-;272:5215;;;;;;;;;;3961:9;;3796:99;3845:12;;;;;:::i;:::-;272:5215;;;;;;;:::i;:::-;-1:-1:-1;272:5215:69;;;;;;;;:::i;3627:88::-;3679:13;:16;;:13;;;;;:::i;:16::-;3699:13;;;;:::i;:::-;-1:-1:-1;;;;;272:5215:69;;;3699:16;;;;272:5215;;3699:16;:::i;:::-;272:5215;;;3679:36;3627:88;;:48;3653:22;;;;3627:48;;3363:110;272:5215;;;;;;;;:::i;:::-;-1:-1:-1;272:5215:69;;;;;;;;:::i;:::-;-1:-1:-1;272:5215:69;;;3418:44;;272:5215;3411:51;:::o","linkReferences":{}},"methodIdentifiers":{"commonParent(SubnetID,SubnetID)":"39991266","createSubnetId(SubnetID,address)":"aa5106cb","down(SubnetID,SubnetID)":"089032d5","equals(SubnetID,SubnetID)":"c836244d","getActor(SubnetID)":"59feac42","getAddress(SubnetID)":"138e13fc","getParentSubnet(SubnetID)":"118e84ee","isEmpty(SubnetID)":"6099e898","isRoot(SubnetID)":"862a88f8","toHash(SubnetID)":"90ba52cf","toString(SubnetID)":"e4ebe92c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DifferentRootNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptySubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoute\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoAddressForRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoParentForSubnet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet2\",\"type\":\"tuple\"}],\"name\":\"commonParent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"}],\"name\":\"createSubnetId\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"newSubnet\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet2\",\"type\":\"tuple\"}],\"name\":\"down\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet2\",\"type\":\"tuple\"}],\"name\":\"equals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"getActor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"getParentSubnet\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"isEmpty\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"isRoot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"toHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{\"down(SubnetID,SubnetID)\":{\"details\":\"Revert will be triggered if subnet2 is an invalid input.\"}},\"title\":\"Helper library for manipulating SubnetID struct\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"commonParent(SubnetID,SubnetID)\":{\"notice\":\"Computes the common parent of the current subnet and the one given as argument\"},\"down(SubnetID,SubnetID)\":{\"notice\":\"In the path determined by the current subnet id, it moves down in the path from the subnet id given as argument. subnet2 needs to be a prefix of the subnet1. If subnet1 is /a/b/c/d and subnet2 is /a/b, then the returned ID should be /a/b/c.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/SubnetIDHelper.sol\":\"SubnetIDHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"DifferentRootNetwork"},{"inputs":[],"type":"error","name":"EmptySubnet"},{"inputs":[],"type":"error","name":"InvalidRoute"},{"inputs":[],"type":"error","name":"NoAddressForRoot"},{"inputs":[],"type":"error","name":"NoParentForSubnet"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"StringsInsufficientHexLength"},{"inputs":[{"internalType":"struct SubnetID","name":"subnet1","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct SubnetID","name":"subnet2","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"commonParent","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"actor","type":"address"}],"stateMutability":"pure","type":"function","name":"createSubnetId","outputs":[{"internalType":"struct SubnetID","name":"newSubnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet1","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct SubnetID","name":"subnet2","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"down","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet1","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct SubnetID","name":"subnet2","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"equals","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"getActor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"getParentSubnet","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"isEmpty","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"isRoot","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"toHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"down(SubnetID,SubnetID)":{"details":"Revert will be triggered if subnet2 is an invalid input."}},"version":1},"userdoc":{"kind":"user","methods":{"commonParent(SubnetID,SubnetID)":{"notice":"Computes the common parent of the current subnet and the one given as argument"},"down(SubnetID,SubnetID)":{"notice":"In the path determined by the current subnet id, it moves down in the path from the subnet id given as argument. subnet2 needs to be a prefix of the subnet1. If subnet1 is /a/b/c/d and subnet2 is /a/b, then the returned ID should be /a/b/c."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/SubnetIDHelper.sol":"SubnetIDHelper"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/SubnetIDHelper.sol","id":46877,"exportedSymbols":{"Strings":[32684],"SubnetID":[48557],"SubnetIDHelper":[46876]},"nodeType":"SourceUnit","src":"46:5442:69","nodes":[{"id":46267,"nodeType":"PragmaDirective","src":"46:23:69","nodes":[],"literals":["solidity","0.8",".19"]},{"id":46269,"nodeType":"ImportDirective","src":"71:47:69","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":46877,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":46268,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"79:8:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46271,"nodeType":"ImportDirective","src":"119:65:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","file":"openzeppelin-contracts/utils/Strings.sol","nameLocation":"-1:-1:-1","scope":46877,"sourceUnit":32685,"symbolAliases":[{"foreign":{"id":46270,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32684,"src":"127:7:69","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46876,"nodeType":"ContractDefinition","src":"272:5215:69","nodes":[{"id":46275,"nodeType":"UsingForDirective","src":"301:26:69","nodes":[],"global":false,"libraryName":{"id":46273,"name":"Strings","nameLocations":["307:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":32684,"src":"307:7:69"},"typeName":{"id":46274,"name":"address","nodeType":"ElementaryTypeName","src":"319:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":46277,"nodeType":"ErrorDefinition","src":"333:26:69","nodes":[],"errorSelector":"2f10c6c1","name":"NoParentForSubnet","nameLocation":"339:17:69","parameters":{"id":46276,"nodeType":"ParameterList","parameters":[],"src":"356:2:69"}},{"id":46279,"nodeType":"ErrorDefinition","src":"364:25:69","nodes":[],"errorSelector":"a15c1d98","name":"NoAddressForRoot","nameLocation":"370:16:69","parameters":{"id":46278,"nodeType":"ParameterList","parameters":[],"src":"386:2:69"}},{"id":46281,"nodeType":"ErrorDefinition","src":"394:20:69","nodes":[],"errorSelector":"79e7ca82","name":"EmptySubnet","nameLocation":"400:11:69","parameters":{"id":46280,"nodeType":"ParameterList","parameters":[],"src":"411:2:69"}},{"id":46283,"nodeType":"ErrorDefinition","src":"419:29:69","nodes":[],"errorSelector":"71859355","name":"DifferentRootNetwork","nameLocation":"425:20:69","parameters":{"id":46282,"nodeType":"ParameterList","parameters":[],"src":"445:2:69"}},{"id":46285,"nodeType":"ErrorDefinition","src":"453:21:69","nodes":[],"errorSelector":"84e505d2","name":"InvalidRoute","nameLocation":"459:12:69","parameters":{"id":46284,"nodeType":"ParameterList","parameters":[],"src":"471:2:69"}},{"id":46315,"nodeType":"FunctionDefinition","src":"480:245:69","nodes":[],"body":{"id":46314,"nodeType":"Block","src":"554:171:69","nodes":[],"statements":[{"assignments":[46294],"declarations":[{"constant":false,"id":46294,"mutability":"mutable","name":"length","nameLocation":"572:6:69","nodeType":"VariableDeclaration","scope":46314,"src":"564:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46293,"name":"uint256","nodeType":"ElementaryTypeName","src":"564:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46298,"initialValue":{"expression":{"expression":{"id":46295,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46288,"src":"581:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":46296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"588:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"581:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"594:6:69","memberName":"length","nodeType":"MemberAccess","src":"581:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"564:36:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46299,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46294,"src":"615:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"625:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"615:11:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46306,"nodeType":"IfStatement","src":"611:67:69","trueBody":{"id":46305,"nodeType":"Block","src":"628:50:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46302,"name":"NoAddressForRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46279,"src":"649:16:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"649:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46304,"nodeType":"RevertStatement","src":"642:25:69"}]}},{"expression":{"baseExpression":{"expression":{"id":46307,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46288,"src":"694:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":46308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"701:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"694:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46312,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46309,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46294,"src":"707:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":46310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"716:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"707:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"694:24:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":46292,"id":46313,"nodeType":"Return","src":"687:31:69"}]},"functionSelector":"138e13fc","implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"489:10:69","parameters":{"id":46289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46288,"mutability":"mutable","name":"subnet","nameLocation":"516:6:69","nodeType":"VariableDeclaration","scope":46315,"src":"500:22:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":46287,"nodeType":"UserDefinedTypeName","pathNode":{"id":46286,"name":"SubnetID","nameLocations":["500:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"500:8:69"},"referencedDeclaration":48557,"src":"500:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"499:24:69"},"returnParameters":{"id":46292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46315,"src":"545:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46290,"name":"address","nodeType":"ElementaryTypeName","src":"545:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"544:9:69"},"scope":46876,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":46382,"nodeType":"FunctionDefinition","src":"731:517:69","nodes":[],"body":{"id":46381,"nodeType":"Block","src":"818:430:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46324,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46318,"src":"832:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":46325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"839:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"832:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"845:6:69","memberName":"length","nodeType":"MemberAccess","src":"832:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"855:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"832:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46333,"nodeType":"IfStatement","src":"828:81:69","trueBody":{"id":46332,"nodeType":"Block","src":"858:51:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46329,"name":"NoParentForSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46277,"src":"879:17:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"879:19:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46331,"nodeType":"RevertStatement","src":"872:26:69"}]}},{"assignments":[46338],"declarations":[{"constant":false,"id":46338,"mutability":"mutable","name":"route","nameLocation":"936:5:69","nodeType":"VariableDeclaration","scope":46381,"src":"919:22:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":46336,"name":"address","nodeType":"ElementaryTypeName","src":"919:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46337,"nodeType":"ArrayTypeName","src":"919:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":46348,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46342,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46318,"src":"958:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":46343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"965:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"958:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"971:6:69","memberName":"length","nodeType":"MemberAccess","src":"958:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":46345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"980:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"958:23:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"944:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":46339,"name":"address","nodeType":"ElementaryTypeName","src":"948:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46340,"nodeType":"ArrayTypeName","src":"948:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":46347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"944:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"919:63:69"},{"assignments":[46350],"declarations":[{"constant":false,"id":46350,"mutability":"mutable","name":"routeLength","nameLocation":"1000:11:69","nodeType":"VariableDeclaration","scope":46381,"src":"992:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46349,"name":"uint256","nodeType":"ElementaryTypeName","src":"992:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46353,"initialValue":{"expression":{"id":46351,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46338,"src":"1014:5:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1020:6:69","memberName":"length","nodeType":"MemberAccess","src":"1014:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"992:34:69"},{"body":{"id":46373,"nodeType":"Block","src":"1071:110:69","statements":[{"expression":{"id":46367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":46360,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46338,"src":"1085:5:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46362,"indexExpression":{"id":46361,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46355,"src":"1091:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1085:8:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":46363,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46318,"src":"1096:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":46364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1103:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"1096:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46366,"indexExpression":{"id":46365,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46355,"src":"1109:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1096:15:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1085:26:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46368,"nodeType":"ExpressionStatement","src":"1085:26:69"},{"id":46372,"nodeType":"UncheckedBlock","src":"1125:46:69","statements":[{"expression":{"id":46370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1153:3:69","subExpression":{"id":46369,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46355,"src":"1155:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46371,"nodeType":"ExpressionStatement","src":"1153:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46357,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46355,"src":"1052:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46358,"name":"routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46350,"src":"1056:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1052:15:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46374,"initializationExpression":{"assignments":[46355],"declarations":[{"constant":false,"id":46355,"mutability":"mutable","name":"i","nameLocation":"1049:1:69","nodeType":"VariableDeclaration","scope":46374,"src":"1041:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46354,"name":"uint256","nodeType":"ElementaryTypeName","src":"1041:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46356,"nodeType":"VariableDeclarationStatement","src":"1041:9:69"},"nodeType":"ForStatement","src":"1036:145:69"},{"expression":{"arguments":[{"expression":{"id":46376,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46318,"src":"1214:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":46377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1221:4:69","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"1214:11:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":46378,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46338,"src":"1234:5:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":46375,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"1198:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":46379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1208:4:69","1227:5:69"],"names":["root","route"],"nodeType":"FunctionCall","src":"1198:43:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":46323,"id":46380,"nodeType":"Return","src":"1191:50:69"}]},"functionSelector":"118e84ee","implemented":true,"kind":"function","modifiers":[],"name":"getParentSubnet","nameLocation":"740:15:69","parameters":{"id":46319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46318,"mutability":"mutable","name":"subnet","nameLocation":"772:6:69","nodeType":"VariableDeclaration","scope":46382,"src":"756:22:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":46317,"nodeType":"UserDefinedTypeName","pathNode":{"id":46316,"name":"SubnetID","nameLocations":["756:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"756:8:69"},"referencedDeclaration":48557,"src":"756:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"755:24:69"},"returnParameters":{"id":46323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46382,"src":"801:15:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":46321,"nodeType":"UserDefinedTypeName","pathNode":{"id":46320,"name":"SubnetID","nameLocations":["801:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"801:8:69"},"referencedDeclaration":48557,"src":"801:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"800:17:69"},"scope":46876,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":46449,"nodeType":"FunctionDefinition","src":"1254:490:69","nodes":[],"body":{"id":46448,"nodeType":"Block","src":"1334:410:69","nodes":[],"statements":[{"assignments":[46391],"declarations":[{"constant":false,"id":46391,"mutability":"mutable","name":"route","nameLocation":"1358:5:69","nodeType":"VariableDeclaration","scope":46448,"src":"1344:19:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46390,"name":"string","nodeType":"ElementaryTypeName","src":"1344:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":46404,"initialValue":{"arguments":[{"arguments":[{"hexValue":"2f72","id":46396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1390:4:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_93f820eb308169058c3dd6520c1f67d663f45d78cc39394907eb37677a393d1d","typeString":"literal_string \"/r\""},"value":"/r"},{"arguments":[{"expression":{"id":46399,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46385,"src":"1413:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1420:4:69","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"1413:11:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":46397,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32684,"src":"1396:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$32684_$","typeString":"type(library Strings)"}},"id":46398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1404:8:69","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":32497,"src":"1396:16:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":46401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1396:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_93f820eb308169058c3dd6520c1f67d663f45d78cc39394907eb37677a393d1d","typeString":"literal_string \"/r\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":46394,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1373:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1377:12:69","memberName":"encodePacked","nodeType":"MemberAccess","src":"1373:16:69","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1366:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":46392,"name":"string","nodeType":"ElementaryTypeName","src":"1366:6:69","typeDescriptions":{}}},"id":46403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:61:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"1344:83:69"},{"assignments":[46406],"declarations":[{"constant":false,"id":46406,"mutability":"mutable","name":"subnetLength","nameLocation":"1445:12:69","nodeType":"VariableDeclaration","scope":46448,"src":"1437:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46405,"name":"uint256","nodeType":"ElementaryTypeName","src":"1437:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46410,"initialValue":{"expression":{"expression":{"id":46407,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46385,"src":"1460:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1467:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"1460:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1473:6:69","memberName":"length","nodeType":"MemberAccess","src":"1460:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1437:42:69"},{"body":{"id":46444,"nodeType":"Block","src":"1525:190:69","statements":[{"expression":{"id":46424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":46417,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46391,"src":"1539:5:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":46421,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46391,"src":"1561:5:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f","id":46422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1568:3:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""}],"expression":{"id":46419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1547:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":46418,"name":"string","nodeType":"ElementaryTypeName","src":"1547:6:69","typeDescriptions":{}}},"id":46420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1554:6:69","memberName":"concat","nodeType":"MemberAccess","src":"1547:13:69","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":46423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1547:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1539:33:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":46425,"nodeType":"ExpressionStatement","src":"1539:33:69"},{"expression":{"id":46438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":46426,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46391,"src":"1586:5:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":46430,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46391,"src":"1608:5:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":46431,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46385,"src":"1615:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1622:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"1615:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46434,"indexExpression":{"id":46433,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46412,"src":"1628:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1615:15:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1631:11:69","memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":32646,"src":"1615:27:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$attached_to$_t_address_$","typeString":"function (address) pure returns (string memory)"}},"id":46436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1615:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":46428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1594:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":46427,"name":"string","nodeType":"ElementaryTypeName","src":"1594:6:69","typeDescriptions":{}}},"id":46429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1601:6:69","memberName":"concat","nodeType":"MemberAccess","src":"1594:13:69","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":46437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:51:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1586:59:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":46439,"nodeType":"ExpressionStatement","src":"1586:59:69"},{"id":46443,"nodeType":"UncheckedBlock","src":"1659:46:69","statements":[{"expression":{"id":46441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1687:3:69","subExpression":{"id":46440,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46412,"src":"1689:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46442,"nodeType":"ExpressionStatement","src":"1687:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46414,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46412,"src":"1505:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46415,"name":"subnetLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46406,"src":"1509:12:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1505:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46445,"initializationExpression":{"assignments":[46412],"declarations":[{"constant":false,"id":46412,"mutability":"mutable","name":"i","nameLocation":"1502:1:69","nodeType":"VariableDeclaration","scope":46445,"src":"1494:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46411,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46413,"nodeType":"VariableDeclarationStatement","src":"1494:9:69"},"nodeType":"ForStatement","src":"1489:226:69"},{"expression":{"id":46446,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46391,"src":"1732:5:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":46389,"id":46447,"nodeType":"Return","src":"1725:12:69"}]},"functionSelector":"e4ebe92c","implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1263:8:69","parameters":{"id":46386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46385,"mutability":"mutable","name":"subnet","nameLocation":"1290:6:69","nodeType":"VariableDeclaration","scope":46449,"src":"1272:24:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":46384,"nodeType":"UserDefinedTypeName","pathNode":{"id":46383,"name":"SubnetID","nameLocations":["1272:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1272:8:69"},"referencedDeclaration":48557,"src":"1272:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1271:26:69"},"returnParameters":{"id":46389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46388,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46449,"src":"1319:13:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46387,"name":"string","nodeType":"ElementaryTypeName","src":"1319:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1318:15:69"},"scope":46876,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":46465,"nodeType":"FunctionDefinition","src":"1750:125:69","nodes":[],"body":{"id":46464,"nodeType":"Block","src":"1822:53:69","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":46460,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46452,"src":"1860:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":46458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1849:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":46459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1853:6:69","memberName":"encode","nodeType":"MemberAccess","src":"1849:10:69","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":46461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1849:18:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":46457,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1839:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":46462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1839:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":46456,"id":46463,"nodeType":"Return","src":"1832:36:69"}]},"functionSelector":"90ba52cf","implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"1759:6:69","parameters":{"id":46453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46452,"mutability":"mutable","name":"subnet","nameLocation":"1784:6:69","nodeType":"VariableDeclaration","scope":46465,"src":"1766:24:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":46451,"nodeType":"UserDefinedTypeName","pathNode":{"id":46450,"name":"SubnetID","nameLocations":["1766:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1766:8:69"},"referencedDeclaration":48557,"src":"1766:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1765:26:69"},"returnParameters":{"id":46456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46465,"src":"1813:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46454,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1813:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1812:9:69"},"scope":46876,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":46539,"nodeType":"FunctionDefinition","src":"1881:501:69","nodes":[],"body":{"id":46538,"nodeType":"Block","src":"1994:388:69","nodes":[],"statements":[{"expression":{"id":46481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46476,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46474,"src":"2004:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":46478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2014:4:69","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"2004:14:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":46479,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46468,"src":"2021:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2028:4:69","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"2021:11:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2004:28:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":46482,"nodeType":"ExpressionStatement","src":"2004:28:69"},{"expression":{"id":46495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":46483,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46474,"src":"2042:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":46485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2052:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"2042:15:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46489,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46468,"src":"2074:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2081:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"2074:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2087:6:69","memberName":"length","nodeType":"MemberAccess","src":"2074:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":46492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2096:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2074:23:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2060:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":46486,"name":"address","nodeType":"ElementaryTypeName","src":"2064:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46487,"nodeType":"ArrayTypeName","src":"2064:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":46494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2060:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2042:56:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46496,"nodeType":"ExpressionStatement","src":"2042:56:69"},{"assignments":[46498],"declarations":[{"constant":false,"id":46498,"mutability":"mutable","name":"routeLength","nameLocation":"2116:11:69","nodeType":"VariableDeclaration","scope":46538,"src":"2108:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46497,"name":"uint256","nodeType":"ElementaryTypeName","src":"2108:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46502,"initialValue":{"expression":{"expression":{"id":46499,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46468,"src":"2130:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2137:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"2130:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2143:6:69","memberName":"length","nodeType":"MemberAccess","src":"2130:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2108:41:69"},{"body":{"id":46524,"nodeType":"Block","src":"2194:120:69","statements":[{"expression":{"id":46518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":46509,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46474,"src":"2208:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":46512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2218:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"2208:15:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46513,"indexExpression":{"id":46511,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46504,"src":"2224:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2208:18:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":46514,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46468,"src":"2229:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2236:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"2229:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46517,"indexExpression":{"id":46516,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46504,"src":"2242:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2229:15:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2208:36:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46519,"nodeType":"ExpressionStatement","src":"2208:36:69"},{"id":46523,"nodeType":"UncheckedBlock","src":"2258:46:69","statements":[{"expression":{"id":46521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2286:3:69","subExpression":{"id":46520,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46504,"src":"2288:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46522,"nodeType":"ExpressionStatement","src":"2286:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46506,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46504,"src":"2175:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46507,"name":"routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46498,"src":"2179:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2175:15:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46525,"initializationExpression":{"assignments":[46504],"declarations":[{"constant":false,"id":46504,"mutability":"mutable","name":"i","nameLocation":"2172:1:69","nodeType":"VariableDeclaration","scope":46525,"src":"2164:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46503,"name":"uint256","nodeType":"ElementaryTypeName","src":"2164:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46505,"nodeType":"VariableDeclarationStatement","src":"2164:9:69"},"nodeType":"ForStatement","src":"2159:155:69"},{"expression":{"id":46536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":46526,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46474,"src":"2324:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":46533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2334:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"2324:15:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46534,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46528,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46474,"src":"2340:9:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"id":46529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2350:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"2340:15:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2356:6:69","memberName":"length","nodeType":"MemberAccess","src":"2340:22:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":46531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2365:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2340:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2324:43:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46535,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46470,"src":"2370:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2324:51:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46537,"nodeType":"ExpressionStatement","src":"2324:51:69"}]},"functionSelector":"aa5106cb","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetId","nameLocation":"1890:14:69","parameters":{"id":46471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46468,"mutability":"mutable","name":"subnet","nameLocation":"1923:6:69","nodeType":"VariableDeclaration","scope":46539,"src":"1905:24:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":46467,"nodeType":"UserDefinedTypeName","pathNode":{"id":46466,"name":"SubnetID","nameLocations":["1905:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1905:8:69"},"referencedDeclaration":48557,"src":"1905:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":46470,"mutability":"mutable","name":"actor","nameLocation":"1939:5:69","nodeType":"VariableDeclaration","scope":46539,"src":"1931:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46469,"name":"address","nodeType":"ElementaryTypeName","src":"1931:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1904:41:69"},"returnParameters":{"id":46475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46474,"mutability":"mutable","name":"newSubnet","nameLocation":"1983:9:69","nodeType":"VariableDeclaration","scope":46539,"src":"1967:25:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":46473,"nodeType":"UserDefinedTypeName","pathNode":{"id":46472,"name":"SubnetID","nameLocations":["1967:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"1967:8:69"},"referencedDeclaration":48557,"src":"1967:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1966:27:69"},"scope":46876,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":46569,"nodeType":"FunctionDefinition","src":"2388:217:69","nodes":[],"body":{"id":46568,"nodeType":"Block","src":"2462:143:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46547,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46542,"src":"2476:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2483:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"2476:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2489:6:69","memberName":"length","nodeType":"MemberAccess","src":"2476:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2499:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2476:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46558,"nodeType":"IfStatement","src":"2472:72:69","trueBody":{"id":46557,"nodeType":"Block","src":"2502:42:69","statements":[{"expression":{"arguments":[{"hexValue":"30","id":46554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2531:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":46553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2523:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46552,"name":"address","nodeType":"ElementaryTypeName","src":"2523:7:69","typeDescriptions":{}}},"id":46555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2523:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":46546,"id":46556,"nodeType":"Return","src":"2516:17:69"}]}},{"expression":{"baseExpression":{"expression":{"id":46559,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46542,"src":"2561:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2568:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"2561:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46566,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46561,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46542,"src":"2574:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2581:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"2574:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2587:6:69","memberName":"length","nodeType":"MemberAccess","src":"2574:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":46564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2596:1:69","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2574:23:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2561:37:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":46546,"id":46567,"nodeType":"Return","src":"2554:44:69"}]},"functionSelector":"59feac42","implemented":true,"kind":"function","modifiers":[],"name":"getActor","nameLocation":"2397:8:69","parameters":{"id":46543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46542,"mutability":"mutable","name":"subnet","nameLocation":"2424:6:69","nodeType":"VariableDeclaration","scope":46569,"src":"2406:24:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":46541,"nodeType":"UserDefinedTypeName","pathNode":{"id":46540,"name":"SubnetID","nameLocations":["2406:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"2406:8:69"},"referencedDeclaration":48557,"src":"2406:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2405:26:69"},"returnParameters":{"id":46546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46545,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46569,"src":"2453:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46544,"name":"address","nodeType":"ElementaryTypeName","src":"2453:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2452:9:69"},"scope":46876,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":46589,"nodeType":"FunctionDefinition","src":"2611:189:69","nodes":[],"body":{"id":46588,"nodeType":"Block","src":"2680:120:69","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":46586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46577,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46572,"src":"2749:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2756:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"2749:12:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2762:6:69","memberName":"length","nodeType":"MemberAccess","src":"2749:19:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2772:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2749:24:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46582,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46572,"src":"2777:6:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2784:4:69","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"2777:11:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":46584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2792:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2777:16:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2749:44:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":46576,"id":46587,"nodeType":"Return","src":"2742:51:69"}]},"functionSelector":"862a88f8","implemented":true,"kind":"function","modifiers":[],"name":"isRoot","nameLocation":"2620:6:69","parameters":{"id":46573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46572,"mutability":"mutable","name":"subnet","nameLocation":"2645:6:69","nodeType":"VariableDeclaration","scope":46589,"src":"2627:24:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":46571,"nodeType":"UserDefinedTypeName","pathNode":{"id":46570,"name":"SubnetID","nameLocations":["2627:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"2627:8:69"},"referencedDeclaration":48557,"src":"2627:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2626:26:69"},"returnParameters":{"id":46576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46575,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46589,"src":"2674:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46574,"name":"bool","nodeType":"ElementaryTypeName","src":"2674:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2673:6:69"},"scope":46876,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":46629,"nodeType":"FunctionDefinition","src":"2806:332:69","nodes":[],"body":{"id":46628,"nodeType":"Block","src":"2903:235:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46600,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46592,"src":"2917:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2925:4:69","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"2917:12:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46602,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46595,"src":"2933:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2941:4:69","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"2933:12:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2917:28:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46608,"nodeType":"IfStatement","src":"2913:71:69","trueBody":{"id":46607,"nodeType":"Block","src":"2947:37:69","statements":[{"expression":{"hexValue":"66616c7365","id":46605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2968:5:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":46599,"id":46606,"nodeType":"Return","src":"2961:12:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46609,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46592,"src":"2997:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3005:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"2997:13:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3011:6:69","memberName":"length","nodeType":"MemberAccess","src":"2997:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":46612,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46595,"src":"3021:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3029:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"3021:13:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3035:6:69","memberName":"length","nodeType":"MemberAccess","src":"3021:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2997:44:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46619,"nodeType":"IfStatement","src":"2993:87:69","trueBody":{"id":46618,"nodeType":"Block","src":"3043:37:69","statements":[{"expression":{"hexValue":"66616c7365","id":46616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3064:5:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":46599,"id":46617,"nodeType":"Return","src":"3057:12:69"}]}},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":46626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":46621,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46592,"src":"3104:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}],"id":46620,"name":"toHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46465,"src":"3097:6:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SubnetID_$48557_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct SubnetID calldata) pure returns (bytes32)"}},"id":46622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3097:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":46624,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46595,"src":"3123:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}],"id":46623,"name":"toHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46465,"src":"3116:6:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SubnetID_$48557_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct SubnetID calldata) pure returns (bytes32)"}},"id":46625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3116:15:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3097:34:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":46599,"id":46627,"nodeType":"Return","src":"3090:41:69"}]},"functionSelector":"c836244d","implemented":true,"kind":"function","modifiers":[],"name":"equals","nameLocation":"2815:6:69","parameters":{"id":46596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46592,"mutability":"mutable","name":"subnet1","nameLocation":"2840:7:69","nodeType":"VariableDeclaration","scope":46629,"src":"2822:25:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":46591,"nodeType":"UserDefinedTypeName","pathNode":{"id":46590,"name":"SubnetID","nameLocations":["2822:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"2822:8:69"},"referencedDeclaration":48557,"src":"2822:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":46595,"mutability":"mutable","name":"subnet2","nameLocation":"2867:7:69","nodeType":"VariableDeclaration","scope":46629,"src":"2849:25:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":46594,"nodeType":"UserDefinedTypeName","pathNode":{"id":46593,"name":"SubnetID","nameLocations":["2849:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"2849:8:69"},"referencedDeclaration":48557,"src":"2849:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2821:54:69"},"returnParameters":{"id":46599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46629,"src":"2897:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46597,"name":"bool","nodeType":"ElementaryTypeName","src":"2897:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2896:6:69"},"scope":46876,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":46750,"nodeType":"FunctionDefinition","src":"3239:921:69","nodes":[],"body":{"id":46749,"nodeType":"Block","src":"3353:807:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46642,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46633,"src":"3367:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3375:4:69","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"3367:12:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46644,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46636,"src":"3383:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3391:4:69","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"3383:12:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3367:28:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46657,"nodeType":"IfStatement","src":"3363:110:69","trueBody":{"id":46656,"nodeType":"Block","src":"3397:76:69","statements":[{"expression":{"arguments":[{"hexValue":"30","id":46648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3434:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":46652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3458:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":46651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3444:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":46649,"name":"address","nodeType":"ElementaryTypeName","src":"3448:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46650,"nodeType":"ArrayTypeName","src":"3448:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":46653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3444:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":46647,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"3418:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":46654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3428:4:69","3437:5:69"],"names":["root","route"],"nodeType":"FunctionCall","src":"3418:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":46641,"id":46655,"nodeType":"Return","src":"3411:51:69"}]}},{"assignments":[46659],"declarations":[{"constant":false,"id":46659,"mutability":"mutable","name":"i","nameLocation":"3491:1:69","nodeType":"VariableDeclaration","scope":46749,"src":"3483:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46658,"name":"uint256","nodeType":"ElementaryTypeName","src":"3483:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46660,"nodeType":"VariableDeclarationStatement","src":"3483:9:69"},{"assignments":[46662],"declarations":[{"constant":false,"id":46662,"mutability":"mutable","name":"subnet1routeLength","nameLocation":"3510:18:69","nodeType":"VariableDeclaration","scope":46749,"src":"3502:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46661,"name":"uint256","nodeType":"ElementaryTypeName","src":"3502:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46666,"initialValue":{"expression":{"expression":{"id":46663,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46633,"src":"3531:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3539:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"3531:13:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3545:6:69","memberName":"length","nodeType":"MemberAccess","src":"3531:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3502:49:69"},{"assignments":[46668],"declarations":[{"constant":false,"id":46668,"mutability":"mutable","name":"subnet2routeLength","nameLocation":"3569:18:69","nodeType":"VariableDeclaration","scope":46749,"src":"3561:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46667,"name":"uint256","nodeType":"ElementaryTypeName","src":"3561:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46672,"initialValue":{"expression":{"expression":{"id":46669,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46636,"src":"3590:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3598:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"3590:13:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3604:6:69","memberName":"length","nodeType":"MemberAccess","src":"3590:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3561:49:69"},{"body":{"id":46694,"nodeType":"Block","src":"3717:70:69","statements":[{"id":46693,"nodeType":"UncheckedBlock","src":"3731:46:69","statements":[{"expression":{"id":46691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3759:3:69","subExpression":{"id":46690,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46659,"src":"3761:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46692,"nodeType":"ExpressionStatement","src":"3759:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":46689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":46679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46673,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46659,"src":"3627:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46674,"name":"subnet1routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46662,"src":"3631:18:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3627:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46676,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46659,"src":"3653:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46677,"name":"subnet2routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46668,"src":"3657:18:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3653:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3627:48:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":46688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":46680,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46633,"src":"3679:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3687:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"3679:13:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46683,"indexExpression":{"id":46682,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46659,"src":"3693:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3679:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"expression":{"id":46684,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46636,"src":"3699:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3707:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"3699:13:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46687,"indexExpression":{"id":46686,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46659,"src":"3713:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3699:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3679:36:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3627:88:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46695,"nodeType":"WhileStatement","src":"3620:167:69"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46696,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46659,"src":"3800:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3805:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3800:6:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46710,"nodeType":"IfStatement","src":"3796:99:69","trueBody":{"id":46709,"nodeType":"Block","src":"3808:87:69","statements":[{"expression":{"arguments":[{"expression":{"id":46700,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46633,"src":"3845:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3853:4:69","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"3845:12:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":46705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3880:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":46704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3866:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":46702,"name":"address","nodeType":"ElementaryTypeName","src":"3870:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46703,"nodeType":"ArrayTypeName","src":"3870:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":46706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3866:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":46699,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"3829:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":46707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3839:4:69","3859:5:69"],"names":["root","route"],"nodeType":"FunctionCall","src":"3829:55:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":46641,"id":46708,"nodeType":"Return","src":"3822:62:69"}]}},{"assignments":[46715],"declarations":[{"constant":false,"id":46715,"mutability":"mutable","name":"route","nameLocation":"3922:5:69","nodeType":"VariableDeclaration","scope":46749,"src":"3905:22:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":46713,"name":"address","nodeType":"ElementaryTypeName","src":"3905:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46714,"nodeType":"ArrayTypeName","src":"3905:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":46721,"initialValue":{"arguments":[{"id":46719,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46659,"src":"3944:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3930:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":46716,"name":"address","nodeType":"ElementaryTypeName","src":"3934:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46717,"nodeType":"ArrayTypeName","src":"3934:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":46720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3930:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3905:41:69"},{"body":{"id":46741,"nodeType":"Block","src":"3981:111:69","statements":[{"expression":{"id":46735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":46728,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46715,"src":"3995:5:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46730,"indexExpression":{"id":46729,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46723,"src":"4001:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3995:8:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":46731,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46633,"src":"4006:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4014:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"4006:13:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46734,"indexExpression":{"id":46733,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46723,"src":"4020:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4006:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3995:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46736,"nodeType":"ExpressionStatement","src":"3995:27:69"},{"id":46740,"nodeType":"UncheckedBlock","src":"4036:46:69","statements":[{"expression":{"id":46738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4064:3:69","subExpression":{"id":46737,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46723,"src":"4066:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46739,"nodeType":"ExpressionStatement","src":"4064:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46725,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46723,"src":"3972:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46726,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46659,"src":"3976:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3972:5:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46742,"initializationExpression":{"assignments":[46723],"declarations":[{"constant":false,"id":46723,"mutability":"mutable","name":"j","nameLocation":"3969:1:69","nodeType":"VariableDeclaration","scope":46742,"src":"3961:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46722,"name":"uint256","nodeType":"ElementaryTypeName","src":"3961:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46724,"nodeType":"VariableDeclarationStatement","src":"3961:9:69"},"nodeType":"ForStatement","src":"3956:136:69"},{"expression":{"arguments":[{"expression":{"id":46744,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46633,"src":"4125:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4133:4:69","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"4125:12:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":46746,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46715,"src":"4146:5:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":46743,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"4109:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":46747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4119:4:69","4139:5:69"],"names":["root","route"],"nodeType":"FunctionCall","src":"4109:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":46641,"id":46748,"nodeType":"Return","src":"4102:51:69"}]},"documentation":{"id":46630,"nodeType":"StructuredDocumentation","src":"3144:90:69","text":"@notice Computes the common parent of the current subnet and the one given as argument"},"functionSelector":"39991266","implemented":true,"kind":"function","modifiers":[],"name":"commonParent","nameLocation":"3248:12:69","parameters":{"id":46637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46633,"mutability":"mutable","name":"subnet1","nameLocation":"3279:7:69","nodeType":"VariableDeclaration","scope":46750,"src":"3261:25:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":46632,"nodeType":"UserDefinedTypeName","pathNode":{"id":46631,"name":"SubnetID","nameLocations":["3261:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"3261:8:69"},"referencedDeclaration":48557,"src":"3261:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":46636,"mutability":"mutable","name":"subnet2","nameLocation":"3306:7:69","nodeType":"VariableDeclaration","scope":46750,"src":"3288:25:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":46635,"nodeType":"UserDefinedTypeName","pathNode":{"id":46634,"name":"SubnetID","nameLocations":["3288:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"3288:8:69"},"referencedDeclaration":48557,"src":"3288:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"3260:54:69"},"returnParameters":{"id":46641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46750,"src":"3336:15:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":46639,"nodeType":"UserDefinedTypeName","pathNode":{"id":46638,"name":"SubnetID","nameLocations":["3336:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"3336:8:69"},"referencedDeclaration":48557,"src":"3336:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"3335:17:69"},"scope":46876,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":46855,"nodeType":"FunctionDefinition","src":"4517:818:69","nodes":[],"body":{"id":46854,"nodeType":"Block","src":"4623:712:69","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46763,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46754,"src":"4637:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4645:4:69","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"4637:12:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":46765,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46757,"src":"4653:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4661:4:69","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"4653:12:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4637:28:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46772,"nodeType":"IfStatement","src":"4633:88:69","trueBody":{"id":46771,"nodeType":"Block","src":"4667:54:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46768,"name":"DifferentRootNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46283,"src":"4688:20:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4688:22:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46770,"nodeType":"RevertStatement","src":"4681:29:69"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46773,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46754,"src":"4734:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4742:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"4734:13:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4748:6:69","memberName":"length","nodeType":"MemberAccess","src":"4734:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"expression":{"id":46776,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46757,"src":"4758:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4766:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"4758:13:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4772:6:69","memberName":"length","nodeType":"MemberAccess","src":"4758:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4734:44:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46784,"nodeType":"IfStatement","src":"4730:96:69","trueBody":{"id":46783,"nodeType":"Block","src":"4780:46:69","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":46780,"name":"InvalidRoute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46285,"src":"4801:12:69","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":46781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4801:14:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46782,"nodeType":"RevertStatement","src":"4794:21:69"}]}},{"assignments":[46786],"declarations":[{"constant":false,"id":46786,"mutability":"mutable","name":"i","nameLocation":"4844:1:69","nodeType":"VariableDeclaration","scope":46854,"src":"4836:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46785,"name":"uint256","nodeType":"ElementaryTypeName","src":"4836:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46787,"nodeType":"VariableDeclarationStatement","src":"4836:9:69"},{"assignments":[46789],"declarations":[{"constant":false,"id":46789,"mutability":"mutable","name":"subnet2routeLength","nameLocation":"4863:18:69","nodeType":"VariableDeclaration","scope":46854,"src":"4855:26:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46788,"name":"uint256","nodeType":"ElementaryTypeName","src":"4855:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46793,"initialValue":{"expression":{"expression":{"id":46790,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46757,"src":"4884:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4892:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"4884:13:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4898:6:69","memberName":"length","nodeType":"MemberAccess","src":"4884:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4855:49:69"},{"body":{"id":46811,"nodeType":"Block","src":"4985:70:69","statements":[{"id":46810,"nodeType":"UncheckedBlock","src":"4999:46:69","statements":[{"expression":{"id":46808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5027:3:69","subExpression":{"id":46807,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46786,"src":"5029:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46809,"nodeType":"ExpressionStatement","src":"5027:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":46806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46794,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46786,"src":"4921:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46795,"name":"subnet2routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46789,"src":"4925:18:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4921:22:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":46805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":46797,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46754,"src":"4947:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4955:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"4947:13:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46800,"indexExpression":{"id":46799,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46786,"src":"4961:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4947:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"expression":{"id":46801,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46757,"src":"4967:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4975:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"4967:13:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46804,"indexExpression":{"id":46803,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46786,"src":"4981:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4967:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4947:36:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4921:62:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46812,"nodeType":"WhileStatement","src":"4914:141:69"},{"expression":{"id":46814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5065:3:69","subExpression":{"id":46813,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46786,"src":"5067:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46815,"nodeType":"ExpressionStatement","src":"5065:3:69"},{"assignments":[46820],"declarations":[{"constant":false,"id":46820,"mutability":"mutable","name":"route","nameLocation":"5096:5:69","nodeType":"VariableDeclaration","scope":46854,"src":"5079:22:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":46818,"name":"address","nodeType":"ElementaryTypeName","src":"5079:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46819,"nodeType":"ArrayTypeName","src":"5079:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":46826,"initialValue":{"arguments":[{"id":46824,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46786,"src":"5118:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":46823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5104:13:69","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":46821,"name":"address","nodeType":"ElementaryTypeName","src":"5108:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46822,"nodeType":"ArrayTypeName","src":"5108:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":46825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5104:16:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5079:41:69"},{"body":{"id":46846,"nodeType":"Block","src":"5156:111:69","statements":[{"expression":{"id":46840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":46833,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46820,"src":"5170:5:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":46835,"indexExpression":{"id":46834,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46828,"src":"5176:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5170:8:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":46836,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46754,"src":"5181:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5189:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"5181:13:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46839,"indexExpression":{"id":46838,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46828,"src":"5195:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5181:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5170:27:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46841,"nodeType":"ExpressionStatement","src":"5170:27:69"},{"id":46845,"nodeType":"UncheckedBlock","src":"5211:46:69","statements":[{"expression":{"id":46843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5239:3:69","subExpression":{"id":46842,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46828,"src":"5241:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":46844,"nodeType":"ExpressionStatement","src":"5239:3:69"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46830,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46828,"src":"5147:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":46831,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46786,"src":"5151:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5147:5:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46847,"initializationExpression":{"assignments":[46828],"declarations":[{"constant":false,"id":46828,"mutability":"mutable","name":"j","nameLocation":"5144:1:69","nodeType":"VariableDeclaration","scope":46847,"src":"5136:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46827,"name":"uint256","nodeType":"ElementaryTypeName","src":"5136:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":46829,"nodeType":"VariableDeclarationStatement","src":"5136:9:69"},"nodeType":"ForStatement","src":"5131:136:69"},{"expression":{"arguments":[{"expression":{"id":46849,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46754,"src":"5300:7:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5308:4:69","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"5300:12:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":46851,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46820,"src":"5321:5:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":46848,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"5284:8:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":46852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5294:4:69","5314:5:69"],"names":["root","route"],"nodeType":"FunctionCall","src":"5284:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":46762,"id":46853,"nodeType":"Return","src":"5277:51:69"}]},"documentation":{"id":46751,"nodeType":"StructuredDocumentation","src":"4166:346:69","text":"@notice In the path determined by the current subnet id, it moves\n down in the path from the subnet id given as argument.\n subnet2 needs to be a prefix of the subnet1.\n If subnet1 is /a/b/c/d and subnet2 is /a/b, then the returned ID should be /a/b/c.\n @dev Revert will be triggered if subnet2 is an invalid input."},"functionSelector":"089032d5","implemented":true,"kind":"function","modifiers":[],"name":"down","nameLocation":"4526:4:69","parameters":{"id":46758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46754,"mutability":"mutable","name":"subnet1","nameLocation":"4549:7:69","nodeType":"VariableDeclaration","scope":46855,"src":"4531:25:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":46753,"nodeType":"UserDefinedTypeName","pathNode":{"id":46752,"name":"SubnetID","nameLocations":["4531:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"4531:8:69"},"referencedDeclaration":48557,"src":"4531:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":46757,"mutability":"mutable","name":"subnet2","nameLocation":"4576:7:69","nodeType":"VariableDeclaration","scope":46855,"src":"4558:25:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":46756,"nodeType":"UserDefinedTypeName","pathNode":{"id":46755,"name":"SubnetID","nameLocations":["4558:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"4558:8:69"},"referencedDeclaration":48557,"src":"4558:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"4530:54:69"},"returnParameters":{"id":46762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46761,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46855,"src":"4606:15:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":46760,"nodeType":"UserDefinedTypeName","pathNode":{"id":46759,"name":"SubnetID","nameLocations":["4606:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"4606:8:69"},"referencedDeclaration":48557,"src":"4606:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"4605:17:69"},"scope":46876,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":46875,"nodeType":"FunctionDefinition","src":"5341:144:69","nodes":[],"body":{"id":46874,"nodeType":"Block","src":"5413:72:69","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":46872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":46863,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46858,"src":"5430:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5439:5:69","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":48556,"src":"5430:14:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":46865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5445:6:69","memberName":"length","nodeType":"MemberAccess","src":"5430:21:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5455:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5430:26:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":46871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46868,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46858,"src":"5460:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":46869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5469:4:69","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":48552,"src":"5460:13:69","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":46870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5477:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5460:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5430:48:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":46862,"id":46873,"nodeType":"Return","src":"5423:55:69"}]},"functionSelector":"6099e898","implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"5350:7:69","parameters":{"id":46859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46858,"mutability":"mutable","name":"subnetId","nameLocation":"5376:8:69","nodeType":"VariableDeclaration","scope":46875,"src":"5358:26:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":46857,"nodeType":"UserDefinedTypeName","pathNode":{"id":46856,"name":"SubnetID","nameLocations":["5358:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":48557,"src":"5358:8:69"},"referencedDeclaration":48557,"src":"5358:8:69","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"5357:28:69"},"returnParameters":{"id":46862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46875,"src":"5407:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46860,"name":"bool","nodeType":"ElementaryTypeName","src":"5407:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5406:6:69"},"scope":46876,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetIDHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":46272,"nodeType":"StructuredDocumentation","src":"186:86:69","text":"@title Helper library for manipulating SubnetID struct\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[46876],"name":"SubnetIDHelper","nameLocation":"280:14:69","scope":46877,"usedErrors":[32449,46277,46279,46281,46283,46285]}],"license":"MIT OR Apache-2.0"},"id":69} \ No newline at end of file +{"abi":[{"type":"function","name":"commonParent","inputs":[{"name":"subnet1","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"subnet2","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"createSubnetId","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"actor","type":"address","internalType":"address"}],"outputs":[{"name":"newSubnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"down","inputs":[{"name":"subnet1","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"subnet2","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"equals","inputs":[{"name":"subnet1","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"subnet2","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"getActor","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getAddress","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"getParentSubnet","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"stateMutability":"pure"},{"type":"function","name":"isEmpty","inputs":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"isRoot","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"toHash","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"toString","inputs":[{"name":"subnet","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"error","name":"DifferentRootNetwork","inputs":[]},{"type":"error","name":"EmptySubnet","inputs":[]},{"type":"error","name":"InvalidRoute","inputs":[]},{"type":"error","name":"NoAddressForRoot","inputs":[]},{"type":"error","name":"NoParentForSubnet","inputs":[]},{"type":"error","name":"StringsInsufficientHexLength","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"length","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6080806040523461001a57610f269081610020823930815050f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063089032d514610751578063118e84ee146106a4578063138e13fc1461064f578063399912661461062e57806359feac42146106095780636099e898146105c3578063862a88f81461057b57806390ba52cf14610560578063aa5106cb14610456578063c836244d146104385763e4ebe92c1461009557600080fd5b61009e36610ac6565b6001600160401b036100af82610b7a565b166000817a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008082101561042a575b506d04ee2d6d415b85acef81000000008082101561041d575b50662386f26fc1000080821015610410575b506305f5e10080821015610403575b50612710808210156103f6575b5060648110156103e8575b600a809110156103de575b600182019061015c61014683610be7565b9261015460405194856109a1565b808452610be7565b938160216020850195601f198098013688378501015b60001901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049081156101a0578290610172565b50505060226101da916101ca936040519485926117b960f11b602085015251809285850190610af7565b81010360028101845201826109a1565b916101e86020820182610b8e565b90506000915b81831061022657601f6040868682519384926020845261021d8151809281602088015260208888019101610af7565b01168101030190f35b909193610260602160405183610246829551809260208086019101610af7565b8101602f60f81b60208201520360018101845201826109a1565b846102886102836102746020860186610b8e565b6001600160a01b039491610bc3565b610bd3565b169081604051928360608101106001600160401b036060860111176103c85760608401604052602a845260403660208601378351156103b257603060208501538351600110156103b2576078602185015360295b60018111610353575061033457509061032b6020600193604051938161030b8693518092868087019101610af7565b820161031f82518093868085019101610af7565b010380845201826109a1565b940191906101ee565b6044906040519063e22e27eb60e01b8252600482015260146024820152fd5b906010600f821610156103b25784518210156103b2576f181899199a1a9b1b9c1cb0b131b232b360811b600f82161a8583016020015360041c90801561039c57600019016102dc565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9060010190610135565b60646002910491019061012a565b600491049101903861011f565b6008910491019038610112565b6010910491019038610103565b60209104910190386100f1565b9150508104604090386100d8565b602061044c610446366108bf565b90610d0d565b6040519015158152f35b60031960403682011261055b57600435906001600160401b039081831161055b5760408360040191843603011261055b576001600160a01b03602435818116949085900361055b576024906104a9610b2e565b946104b385610b7a565b16855201916104c28382610b8e565b92905060019283810180911161039c576104db90610b48565b93602086019485526104ed8184610b8e565b93905060005b84811061052c578888885191825192600019840193841161039c576105289361051b91610b1a565b526040519182918261090c565b0390f35b80610545610283889361053f8787610b8e565b90610bc3565b85610551838b51610b1a565b91169052016104f3565b600080fd5b602061057361056e36610ac6565b610c02565b604051908152f35b602061058636610ac6565b61059282820182610b8e565b90501590816105a7575b506040519015158152f35b6001600160401b0391506105ba90610b7a565b1615158261059c565b60206105ce36610ac6565b6105da82820182610b8e565b90501590816105ee57506040519015158152f35b6001600160401b03915061060190610b7a565b16158261059c565b602061061c61061736610ac6565b610cbe565b6040516001600160a01b039091168152f35b61052861064361063d366108bf565b90610d6a565b6040519182918261090c565b602061065a36610a01565b018051519081156106925751600019820191821161039c576020916001600160a01b03916106889190610b1a565b5116604051908152f35b60405163142b83b360e31b8152600490fd5b6106ad36610a01565b6106b5610b2e565b5060208101908151511561073f57815151600019810190811161039c576106db90610b48565b90815160005b81811061071857610528846001600160401b0385511690604051916107058361096b565b825260208201526040519182918261090c565b600190818060a01b0361072c828851610b1a565b51166107388287610b1a565b52016106e1565b604051632f10c6c160e01b8152600490fd5b61075a366108bf565b610762610b2e565b5061076c82610b7a565b6001600160401b0390818061078085610b7a565b169116036108ad57602083016107968185610b8e565b6020850191506107a68286610b8e565b919050111561089b576000936107bc8282610b8e565b9590505b8581108061085c575b156107d6576001016107c0565b84848892600019811461039c5760018091016107f181610b48565b9260005b82811061082c57610528868661080a8a610b7a565b91604051926108188461096b565b16825260208201526040519182918261090c565b8061083f610283869361053f868c610b8e565b6108498288610b1a565b6001600160a01b039091169052016107f5565b5061086e6102838261053f878b610b8e565b6108788484610b8e565b6001600160a01b0391829161089291610283918791610bc3565b169116146107c9565b60405163427282e960e11b8152600490fd5b604051637185935560e01b8152600490fd5b600319919060408382011261055b576001600160401b039060043582811161055b57604085828403011261055b576004019360243592831161055b578260409203011261055b5760040190565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061094e575050505090565b83516001600160a01b031685529381019392810192600101610940565b604081019081106001600160401b038211176103c857604052565b602081019081106001600160401b038211176103c857604052565b90601f801991011681019081106001600160401b038211176103c857604052565b35906001600160401b038216820361055b57565b6001600160401b0381116103c85760051b60200190565b35906001600160a01b038216820361055b57565b600319906020828201811361055b57600435926001600160401b039081851161055b57604090858503011261055b5760405193610a3d8561096b565b610a49816004016109c2565b8552602481013591821161055b5701918060238401121561055b576004830135610a72816109d6565b93610a8060405195866109a1565b81855260248486019260051b82010192831161055b576024849101915b838310610aae575050505082015290565b8190610ab9846109ed565b8152019101908390610a9d565b6003199060208183011261055b57600435916001600160401b03831161055b578260409203011261055b5760040190565b60005b838110610b0a5750506000910152565b8181015183820152602001610afa565b80518210156103b25760209160051b010190565b60405190610b3b8261096b565b6060602083600081520152565b90610b52826109d6565b610b5f60405191826109a1565b8281528092610b70601f19916109d6565b0190602036910137565b356001600160401b038116810361055b5790565b903590601e198136030182121561055b57018035906001600160401b03821161055b57602001918160051b3603831361055b57565b91908110156103b25760051b0190565b356001600160a01b038116810361055b5790565b6001600160401b0381116103c857601f01601f191660200190565b6040516020808201818152926001600160401b0391608084019183610c26826109c2565b16604086015281810135601e198236030181121561055b570191818335930193831161055b578260051b3603841361055b5760406060860152829052839160a083019160005b828110610c8f57505050610c89925003601f1981018352826109a1565b51902090565b91935091600190839081906001600160a01b03610cab896109ed565b1681520195019101918593919492610c6c565b6020810190610ccd8282610b8e565b905015610d0657610ce9610ce18383610b8e565b939092610b8e565b60001981019150811161039c57610d039261028392610bc3565b90565b5050600090565b610d1681610b7a565b6001600160401b0380610d2885610b7a565b16911603610d0657610d3d6020820182610b8e565b9050610d4c6020840184610b8e565b91905003610d0657610d60610d6691610c02565b91610c02565b1490565b90610d73610b2e565b50610d7d82610b7a565b906001600160401b03918280610d9284610b7a565b16911603610ec4579160208101906000610dac8383610b8e565b95905060208101610dbd8183610b8e565b9390505b87811080610ebb575b80610e7c575b15610ddd57600101610dc1565b93949596505050508015610e5257610df481610b48565b9260005b828110610e2457505050610e0b90610b7a565b9160405192610e198461096b565b168252602082015290565b80610e3861028360019361053f8689610b8e565b610e428288610b1a565b90838060a01b0316905201610df8565b50610e5d9150610b7a565b9060405190610e6b82610986565b6000825260405192610e198461096b565b50610e8e6102838261053f8989610b8e565b610e988385610b8e565b6001600160a01b03918291610eb291610283918791610bc3565b16911614610dd0565b50838110610dca565b505050604051610ed381610986565b6000815260405190610ee48261096b565b6000825260208201529056fea26469706673582212209b8462773fb1fc3133a5c6c3b343bb709dea91dbf0ebe92d84e41ccec8aceed964736f6c63430008130033","sourceMap":"272:5215:75:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c8063089032d514610751578063118e84ee146106a4578063138e13fc1461064f578063399912661461062e57806359feac42146106095780636099e898146105c3578063862a88f81461057b57806390ba52cf14610560578063aa5106cb14610456578063c836244d146104385763e4ebe92c1461009557600080fd5b61009e36610ac6565b6001600160401b036100af82610b7a565b166000817a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008082101561042a575b506d04ee2d6d415b85acef81000000008082101561041d575b50662386f26fc1000080821015610410575b506305f5e10080821015610403575b50612710808210156103f6575b5060648110156103e8575b600a809110156103de575b600182019061015c61014683610be7565b9261015460405194856109a1565b808452610be7565b938160216020850195601f198098013688378501015b60001901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049081156101a0578290610172565b50505060226101da916101ca936040519485926117b960f11b602085015251809285850190610af7565b81010360028101845201826109a1565b916101e86020820182610b8e565b90506000915b81831061022657601f6040868682519384926020845261021d8151809281602088015260208888019101610af7565b01168101030190f35b909193610260602160405183610246829551809260208086019101610af7565b8101602f60f81b60208201520360018101845201826109a1565b846102886102836102746020860186610b8e565b6001600160a01b039491610bc3565b610bd3565b169081604051928360608101106001600160401b036060860111176103c85760608401604052602a845260403660208601378351156103b257603060208501538351600110156103b2576078602185015360295b60018111610353575061033457509061032b6020600193604051938161030b8693518092868087019101610af7565b820161031f82518093868085019101610af7565b010380845201826109a1565b940191906101ee565b6044906040519063e22e27eb60e01b8252600482015260146024820152fd5b906010600f821610156103b25784518210156103b2576f181899199a1a9b1b9c1cb0b131b232b360811b600f82161a8583016020015360041c90801561039c57600019016102dc565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b9060010190610135565b60646002910491019061012a565b600491049101903861011f565b6008910491019038610112565b6010910491019038610103565b60209104910190386100f1565b9150508104604090386100d8565b602061044c610446366108bf565b90610d0d565b6040519015158152f35b60031960403682011261055b57600435906001600160401b039081831161055b5760408360040191843603011261055b576001600160a01b03602435818116949085900361055b576024906104a9610b2e565b946104b385610b7a565b16855201916104c28382610b8e565b92905060019283810180911161039c576104db90610b48565b93602086019485526104ed8184610b8e565b93905060005b84811061052c578888885191825192600019840193841161039c576105289361051b91610b1a565b526040519182918261090c565b0390f35b80610545610283889361053f8787610b8e565b90610bc3565b85610551838b51610b1a565b91169052016104f3565b600080fd5b602061057361056e36610ac6565b610c02565b604051908152f35b602061058636610ac6565b61059282820182610b8e565b90501590816105a7575b506040519015158152f35b6001600160401b0391506105ba90610b7a565b1615158261059c565b60206105ce36610ac6565b6105da82820182610b8e565b90501590816105ee57506040519015158152f35b6001600160401b03915061060190610b7a565b16158261059c565b602061061c61061736610ac6565b610cbe565b6040516001600160a01b039091168152f35b61052861064361063d366108bf565b90610d6a565b6040519182918261090c565b602061065a36610a01565b018051519081156106925751600019820191821161039c576020916001600160a01b03916106889190610b1a565b5116604051908152f35b60405163142b83b360e31b8152600490fd5b6106ad36610a01565b6106b5610b2e565b5060208101908151511561073f57815151600019810190811161039c576106db90610b48565b90815160005b81811061071857610528846001600160401b0385511690604051916107058361096b565b825260208201526040519182918261090c565b600190818060a01b0361072c828851610b1a565b51166107388287610b1a565b52016106e1565b604051632f10c6c160e01b8152600490fd5b61075a366108bf565b610762610b2e565b5061076c82610b7a565b6001600160401b0390818061078085610b7a565b169116036108ad57602083016107968185610b8e565b6020850191506107a68286610b8e565b919050111561089b576000936107bc8282610b8e565b9590505b8581108061085c575b156107d6576001016107c0565b84848892600019811461039c5760018091016107f181610b48565b9260005b82811061082c57610528868661080a8a610b7a565b91604051926108188461096b565b16825260208201526040519182918261090c565b8061083f610283869361053f868c610b8e565b6108498288610b1a565b6001600160a01b039091169052016107f5565b5061086e6102838261053f878b610b8e565b6108788484610b8e565b6001600160a01b0391829161089291610283918791610bc3565b169116146107c9565b60405163427282e960e11b8152600490fd5b604051637185935560e01b8152600490fd5b600319919060408382011261055b576001600160401b039060043582811161055b57604085828403011261055b576004019360243592831161055b578260409203011261055b5760040190565b906020908183528160808160608601936001600160401b038151168288015201519460408082015285518094520193019160005b82811061094e575050505090565b83516001600160a01b031685529381019392810192600101610940565b604081019081106001600160401b038211176103c857604052565b602081019081106001600160401b038211176103c857604052565b90601f801991011681019081106001600160401b038211176103c857604052565b35906001600160401b038216820361055b57565b6001600160401b0381116103c85760051b60200190565b35906001600160a01b038216820361055b57565b600319906020828201811361055b57600435926001600160401b039081851161055b57604090858503011261055b5760405193610a3d8561096b565b610a49816004016109c2565b8552602481013591821161055b5701918060238401121561055b576004830135610a72816109d6565b93610a8060405195866109a1565b81855260248486019260051b82010192831161055b576024849101915b838310610aae575050505082015290565b8190610ab9846109ed565b8152019101908390610a9d565b6003199060208183011261055b57600435916001600160401b03831161055b578260409203011261055b5760040190565b60005b838110610b0a5750506000910152565b8181015183820152602001610afa565b80518210156103b25760209160051b010190565b60405190610b3b8261096b565b6060602083600081520152565b90610b52826109d6565b610b5f60405191826109a1565b8281528092610b70601f19916109d6565b0190602036910137565b356001600160401b038116810361055b5790565b903590601e198136030182121561055b57018035906001600160401b03821161055b57602001918160051b3603831361055b57565b91908110156103b25760051b0190565b356001600160a01b038116810361055b5790565b6001600160401b0381116103c857601f01601f191660200190565b6040516020808201818152926001600160401b0391608084019183610c26826109c2565b16604086015281810135601e198236030181121561055b570191818335930193831161055b578260051b3603841361055b5760406060860152829052839160a083019160005b828110610c8f57505050610c89925003601f1981018352826109a1565b51902090565b91935091600190839081906001600160a01b03610cab896109ed565b1681520195019101918593919492610c6c565b6020810190610ccd8282610b8e565b905015610d0657610ce9610ce18383610b8e565b939092610b8e565b60001981019150811161039c57610d039261028392610bc3565b90565b5050600090565b610d1681610b7a565b6001600160401b0380610d2885610b7a565b16911603610d0657610d3d6020820182610b8e565b9050610d4c6020840184610b8e565b91905003610d0657610d60610d6691610c02565b91610c02565b1490565b90610d73610b2e565b50610d7d82610b7a565b906001600160401b03918280610d9284610b7a565b16911603610ec4579160208101906000610dac8383610b8e565b95905060208101610dbd8183610b8e565b9390505b87811080610ebb575b80610e7c575b15610ddd57600101610dc1565b93949596505050508015610e5257610df481610b48565b9260005b828110610e2457505050610e0b90610b7a565b9160405192610e198461096b565b168252602082015290565b80610e3861028360019361053f8689610b8e565b610e428288610b1a565b90838060a01b0316905201610df8565b50610e5d9150610b7a565b9060405190610e6b82610986565b6000825260405192610e198461096b565b50610e8e6102838261053f8989610b8e565b610e988385610b8e565b6001600160a01b03918291610eb291610283918791610bc3565b16911614610dd0565b50838110610dca565b505050604051610ed381610986565b6000815260405190610ee48261096b565b6000825260208201529056fea26469706673582212209b8462773fb1fc3133a5c6c3b343bb709dea91dbf0ebe92d84e41ccec8aceed964736f6c63430008130033","sourceMap":"272:5215:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;581:12;272:5215;581:12;;;272:5215;;;;;;;;;;5430:14;272:5215;5430:14;;;2749:12;272:5215;2749:12;;;272:5215;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1413:11:75;;;:::i;:::-;272:5215;;;12559:8:34;12550:17;;;;12546:103;;272:5215:75;12675:8:34;;12666:17;;;;12662:103;;272:5215:75;12791:8:34;;12782:17;;;;12778:103;;272:5215:75;12907:7:34;;12898:16;;;;12894:100;;272:5215:75;13020:7:34;;13011:16;;;;13007:100;;272:5215:75;13124:16:34;13133:7;13124:16;;;13120:100;;272:5215:75;13246:7:34;13237:16;;;;13233:66;;272:5215:75;748:1:31;272:5215:75;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;890:76:31;272:5215:75;;;;;;;;;;;;890:76:31;;;979:280;-1:-1:-1;;272:5215:75;;-1:-1:-1;;;1084:93:31;;;;272:5215:75;1084:93:31;272:5215:75;1227:10:31;;;1223:21;;979:280;;;;1223:21;1239:5;;;272:5215:75;1373:53;1239:5:31;272:5215:75;1239:5:31;272:5215:75;;1373:53;;;-1:-1:-1;;;272:5215:75;1373:53;;272:5215;;;;;;;;;:::i;:::-;;;1373:53;;;;;;;;;:::i;:::-;1460:12;;272:5215;1460:12;;;;:::i;:::-;1494:9;;272:5215;1489:226;1505:16;;;;;;272:5215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;1494:9;272:5215;;;;890:76:31;272:5215:75;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;272:5215:75;;;;;748:1:31;272:5215:75;;;;;;;:::i;:::-;1460:12;1615:15;;:12;272:5215;1460:12;;1615;;:::i;:::-;-1:-1:-1;;;;;272:5215:75;;1615:15;:::i;:::-;;:::i;:::-;272:5215;2072:26:31;;272:5215:75;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;;;;;;;;;2165:15:31;272:5215:75;;;2165:15:31;272:5215:75;;748:1:31;272:5215:75;;;;2190:15:31;890:76;272:5215:75;;2190:15:31;272:5215:75;2248:5:31;748:1;2248:5;;;;2366:15;2362:96;;272:5215:75;;;;748:1:31;272:5215:75;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;1494:9;;;;2362:96:31;279:18;272:5215:75;;;2404:43:31;;;;;;272:5215:75;2404:43:31;;272:5215:75;344:2:31;279:18;;;272:5215:75;2404:43:31;2255:3;2295:16;2286:26;2308:3;2295:16;;2286:26;;;;272:5215:75;;;;;;;-1:-1:-1;;;2308:3:31;2295:16;;2286:26;272:5215:75;;;;;2274:38:31;272:5215:75;279:18:31;2255:3;272:5215:75;;;;-1:-1:-1;;272:5215:75;2220:26:31;;272:5215:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13233:66:34;272:5215:75;13283:1:34;272:5215:75;13233:66:34;;;13120:100;13133:7;13204:1;272:5215:75;;;;13120:100:34;;;13007;272:5215:75;;;;;13007:100:34;;;;12894;12978:1;272:5215:75;;;;12894:100:34;;;;12778:103;12864:2;272:5215:75;;;;12778:103:34;;;;12662;12748:2;272:5215:75;;;;12662:103:34;;;;12546;272:5215:75;;;;;;12546:103:34;;;;272:5215:75;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;272:5215:75;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;:::i;:::-;2021:11;;;;:::i;:::-;272:5215;;;2074:12;;;;;;:::i;:::-;272:5215;;;;;;;;;;;;;2060:38;;;:::i;:::-;2042:15;272:5215;2042:15;;:56;;;2130:12;;;;:::i;:::-;2164:9;;;272:5215;2175:15;;;;;;2324;;;;272:5215;;;;;;;;;;;;;;2324:51;;;;:::i;:::-;272:5215;;;;;;;;:::i;:::-;;;;2164:9;2229:12;:15;;:12;;;;;;:::i;:::-;:15;;:::i;:::-;2208;:36;:15;;;:36;:::i;:::-;272:5215;;;;;2164:9;;272:5215;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;2749:12;272:5215;;;:::i;:::-;2749:12;;;;;;:::i;:::-;:24;;;:44;;;;272:5215;;;;;;;;;;2749:44;-1:-1:-1;;;;;2777:11:75;;;;;:::i;:::-;272:5215;2777:16;;2749:44;;;272:5215;5430:14;272:5215;;;:::i;:::-;5430:14;;;;;;:::i;:::-;:26;;;:48;;;;272:5215;;;;;;;;;5430:48;-1:-1:-1;;;;;5460:13:75;;;;;:::i;:::-;272:5215;5460:18;5430:48;;;272:5215;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;581:12;272:5215;;;:::i;:::-;581:12;;;272:5215;615:11;;;611:67;;694:12;-1:-1:-1;;272:5215:75;;;;;;;581:12;;-1:-1:-1;;;;;272:5215:75;694:24;;272:5215;694:24;:::i;:::-;272:5215;;;;;;;;611:67;272:5215;;-1:-1:-1;;;649:18:75;;272:5215;;649:18;272:5215;;;;:::i;:::-;;;:::i;:::-;;832:12;;;;;;272:5215;832:24;828:81;;958:12;;272:5215;-1:-1:-1;;272:5215:75;;;;;;;944:38;;;:::i;:::-;272:5215;;;;1052:15;;;;;;272:5215;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;:::i;:::-;;;832:12;1198:43;;272:5215;;;;;;;;:::i;1041:9::-;272:5215;;;;;;;1096:15;:12;;;:15;:::i;:::-;272:5215;;1085:26;;;;:::i;:::-;272:5215;;1041:9;;828:81;272:5215;;-1:-1:-1;;;879:19:75;;272:5215;;879:19;272:5215;;;;:::i;:::-;;;:::i;:::-;;4637:12;;;:::i;:::-;-1:-1:-1;;;;;4653:12:75;;;;;;:::i;:::-;272:5215;;;4637:28;4633:88;;4734:13;;;;;;;:::i;:::-;;4758;;;-1:-1:-1;4758:13:75;;;;:::i;:::-;4734:44;;;;;4730:96;;272:5215;4884:13;;;;;:::i;:::-;4914:141;;;;4921:22;;;:62;;;4914:141;4921:62;;;272:5215;;4914:141;;4921:62;;;;;272:5215;;;;;;;;;;5104:16;;;:::i;:::-;5136:9;272:5215;5147:5;;;;;;272:5215;5300:12;;;;;:::i;:::-;272:5215;;;;;;;:::i;:::-;;;;4734:13;5284:44;;272:5215;;;;;;;;:::i;5136:9::-;5181:13;:16;;:13;;;;;;:::i;:16::-;5170:27;;;;:::i;:::-;-1:-1:-1;;;;;272:5215:75;;;;;;5136:9;;4921:62;4947:13;:16;;:13;;;;;:::i;:16::-;4967:13;;;;:::i;:::-;-1:-1:-1;;;;;272:5215:75;;;4967:16;;;;272:5215;;4967:16;:::i;:::-;272:5215;;;4947:36;4921:62;;4730:96;272:5215;;-1:-1:-1;;;4801:14:75;;272:5215;;4801:14;4633:88;272:5215;;-1:-1:-1;;;4688:22:75;;272:5215;;4688:22;272:5215;-1:-1:-1;;272:5215:75;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;272:5215:75;;;;;;:::o;:::-;-1:-1:-1;;;;;272:5215:75;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;272:5215:75;;;;;;:::o;:::-;-1:-1:-1;;272:5215:75;;;;;;-1:-1:-1;272:5215:75;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;272:5215:75;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;272:5215:75;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;272:5215:75;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;272:5215:75;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;272:5215:75;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;272:5215:75;;;;;;;:::o;:::-;-1:-1:-1;;;;;272:5215:75;;;;;;-1:-1:-1;;272:5215:75;;;;:::o;1750:125::-;272:5215;;1849:18;;;;272:5215;;;1849:18;-1:-1:-1;;;;;272:5215:75;;;;;;;1849:18;272:5215;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;272:5215:75;;;;;;1849:18;;;;;;;272:5215;;1849:18;;;;;;:::i;:::-;272:5215;1839:29;;1750:125;:::o;272:5215::-;;;-1:-1:-1;272:5215:75;;;;;;;-1:-1:-1;;;;;272:5215:75;;;:::i;:::-;;;;;;;;;;;;;;;;;2388:217;2476:12;;;;;;;;:::i;:::-;:24;;;2472:72;;2574:12;2561;;;;:::i;:::-;2574;;;;:::i;:::-;-1:-1:-1;;272:5215:75;;;-1:-1:-1;272:5215:75;;;;2561:37;;;;;:::i;:::-;2388:217;:::o;2472:72::-;2516:17;;2499:1;2516:17;:::o;2806:332::-;2917:12;;;:::i;:::-;-1:-1:-1;;;;;2933:12:75;;;;:::i;:::-;272:5215;;;2917:28;2913:71;;2997:13;;;;;;:::i;:::-;3021;;;2997;3021;;;;:::i;:::-;2997:44;;;;2993:87;;3097:15;3116;3097;;:::i;:::-;3116;;:::i;:::-;3097:34;2806:332;:::o;3239:921::-;;272:5215;;:::i;:::-;;3367:12;;;:::i;:::-;272:5215;-1:-1:-1;;;;;3383:12:75;;;;;;:::i;:::-;272:5215;;;3367:28;3363:110;;3483:9;3531:13;;;;-1:-1:-1;3531:13:75;;3483:9;3531:13;:::i;:::-;3590;;;3531;3590;;;;;;:::i;:::-;3620:167;;;;3627:22;;;:48;;;3620:167;3627:88;;;3620:167;3627:88;;;272:5215;;3620:167;;3627:88;;;;;;;;;3800:6;;3796:99;;3930:16;;;:::i;:::-;3961:9;-1:-1:-1;3972:5:75;;;;;;4125:12;;;;;;:::i;:::-;272:5215;;;;;;;:::i;:::-;;;;3531:13;4109:44;;272:5215;3239:921;:::o;3961:9::-;4006:13;:16;;272:5215;4006:13;;;;;:::i;:16::-;3995:27;;;;:::i;:::-;272:5215;;;;;;;;;;3961:9;;3796:99;3845:12;;;;;:::i;:::-;272:5215;;;;;;;:::i;:::-;-1:-1:-1;272:5215:75;;;;;;;;:::i;3627:88::-;3679:13;:16;;:13;;;;;:::i;:16::-;3699:13;;;;:::i;:::-;-1:-1:-1;;;;;272:5215:75;;;3699:16;;;;272:5215;;3699:16;:::i;:::-;272:5215;;;3679:36;3627:88;;:48;3653:22;;;;3627:48;;3363:110;272:5215;;;;;;;;:::i;:::-;-1:-1:-1;272:5215:75;;;;;;;;:::i;:::-;-1:-1:-1;272:5215:75;;;3418:44;;272:5215;3411:51;:::o","linkReferences":{}},"methodIdentifiers":{"commonParent(SubnetID,SubnetID)":"39991266","createSubnetId(SubnetID,address)":"aa5106cb","down(SubnetID,SubnetID)":"089032d5","equals(SubnetID,SubnetID)":"c836244d","getActor(SubnetID)":"59feac42","getAddress(SubnetID)":"138e13fc","getParentSubnet(SubnetID)":"118e84ee","isEmpty(SubnetID)":"6099e898","isRoot(SubnetID)":"862a88f8","toHash(SubnetID)":"90ba52cf","toString(SubnetID)":"e4ebe92c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DifferentRootNetwork\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptySubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoute\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoAddressForRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoParentForSubnet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet2\",\"type\":\"tuple\"}],\"name\":\"commonParent\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"}],\"name\":\"createSubnetId\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"newSubnet\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet2\",\"type\":\"tuple\"}],\"name\":\"down\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet2\",\"type\":\"tuple\"}],\"name\":\"equals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"getActor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"getParentSubnet\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"}],\"name\":\"isEmpty\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"isRoot\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"toHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnet\",\"type\":\"tuple\"}],\"name\":\"toString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"LimeChain team\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{\"down(SubnetID,SubnetID)\":{\"details\":\"Revert will be triggered if subnet2 is an invalid input.\"}},\"title\":\"Helper library for manipulating SubnetID struct\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"commonParent(SubnetID,SubnetID)\":{\"notice\":\"Computes the common parent of the current subnet and the one given as argument\"},\"down(SubnetID,SubnetID)\":{\"notice\":\"In the path determined by the current subnet id, it moves down in the path from the subnet id given as argument. subnet2 needs to be a prefix of the subnet1. If subnet1 is /a/b/c/d and subnet2 is /a/b, then the returned ID should be /a/b/c.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/SubnetIDHelper.sol\":\"SubnetIDHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"DifferentRootNetwork"},{"inputs":[],"type":"error","name":"EmptySubnet"},{"inputs":[],"type":"error","name":"InvalidRoute"},{"inputs":[],"type":"error","name":"NoAddressForRoot"},{"inputs":[],"type":"error","name":"NoParentForSubnet"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"StringsInsufficientHexLength"},{"inputs":[{"internalType":"struct SubnetID","name":"subnet1","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct SubnetID","name":"subnet2","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"commonParent","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"address","name":"actor","type":"address"}],"stateMutability":"pure","type":"function","name":"createSubnetId","outputs":[{"internalType":"struct SubnetID","name":"newSubnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet1","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct SubnetID","name":"subnet2","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"down","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet1","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct SubnetID","name":"subnet2","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"equals","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"getActor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"getParentSubnet","outputs":[{"internalType":"struct SubnetID","name":"","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"isEmpty","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"isRoot","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"toHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct SubnetID","name":"subnet","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]}],"stateMutability":"pure","type":"function","name":"toString","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"down(SubnetID,SubnetID)":{"details":"Revert will be triggered if subnet2 is an invalid input."}},"version":1},"userdoc":{"kind":"user","methods":{"commonParent(SubnetID,SubnetID)":{"notice":"Computes the common parent of the current subnet and the one given as argument"},"down(SubnetID,SubnetID)":{"notice":"In the path determined by the current subnet id, it moves down in the path from the subnet id given as argument. subnet2 needs to be a prefix of the subnet1. If subnet1 is /a/b/c/d and subnet2 is /a/b, then the returned ID should be /a/b/c."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/SubnetIDHelper.sol":"SubnetIDHelper"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/SubnetIDHelper.sol","id":48073,"exportedSymbols":{"Strings":[33113],"SubnetID":[50077],"SubnetIDHelper":[48072]},"nodeType":"SourceUnit","src":"46:5442:75","nodes":[{"id":47463,"nodeType":"PragmaDirective","src":"46:23:75","nodes":[],"literals":["solidity","0.8",".19"]},{"id":47465,"nodeType":"ImportDirective","src":"71:47:75","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":48073,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":47464,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"79:8:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":47467,"nodeType":"ImportDirective","src":"119:65:75","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","file":"openzeppelin-contracts/utils/Strings.sol","nameLocation":"-1:-1:-1","scope":48073,"sourceUnit":33114,"symbolAliases":[{"foreign":{"id":47466,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33113,"src":"127:7:75","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48072,"nodeType":"ContractDefinition","src":"272:5215:75","nodes":[{"id":47471,"nodeType":"UsingForDirective","src":"301:26:75","nodes":[],"global":false,"libraryName":{"id":47469,"name":"Strings","nameLocations":["307:7:75"],"nodeType":"IdentifierPath","referencedDeclaration":33113,"src":"307:7:75"},"typeName":{"id":47470,"name":"address","nodeType":"ElementaryTypeName","src":"319:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":47473,"nodeType":"ErrorDefinition","src":"333:26:75","nodes":[],"errorSelector":"2f10c6c1","name":"NoParentForSubnet","nameLocation":"339:17:75","parameters":{"id":47472,"nodeType":"ParameterList","parameters":[],"src":"356:2:75"}},{"id":47475,"nodeType":"ErrorDefinition","src":"364:25:75","nodes":[],"errorSelector":"a15c1d98","name":"NoAddressForRoot","nameLocation":"370:16:75","parameters":{"id":47474,"nodeType":"ParameterList","parameters":[],"src":"386:2:75"}},{"id":47477,"nodeType":"ErrorDefinition","src":"394:20:75","nodes":[],"errorSelector":"79e7ca82","name":"EmptySubnet","nameLocation":"400:11:75","parameters":{"id":47476,"nodeType":"ParameterList","parameters":[],"src":"411:2:75"}},{"id":47479,"nodeType":"ErrorDefinition","src":"419:29:75","nodes":[],"errorSelector":"71859355","name":"DifferentRootNetwork","nameLocation":"425:20:75","parameters":{"id":47478,"nodeType":"ParameterList","parameters":[],"src":"445:2:75"}},{"id":47481,"nodeType":"ErrorDefinition","src":"453:21:75","nodes":[],"errorSelector":"84e505d2","name":"InvalidRoute","nameLocation":"459:12:75","parameters":{"id":47480,"nodeType":"ParameterList","parameters":[],"src":"471:2:75"}},{"id":47511,"nodeType":"FunctionDefinition","src":"480:245:75","nodes":[],"body":{"id":47510,"nodeType":"Block","src":"554:171:75","nodes":[],"statements":[{"assignments":[47490],"declarations":[{"constant":false,"id":47490,"mutability":"mutable","name":"length","nameLocation":"572:6:75","nodeType":"VariableDeclaration","scope":47510,"src":"564:14:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47489,"name":"uint256","nodeType":"ElementaryTypeName","src":"564:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47494,"initialValue":{"expression":{"expression":{"id":47491,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47484,"src":"581:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"588:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"581:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"594:6:75","memberName":"length","nodeType":"MemberAccess","src":"581:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"564:36:75"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47495,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47490,"src":"615:6:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"625:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"615:11:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47502,"nodeType":"IfStatement","src":"611:67:75","trueBody":{"id":47501,"nodeType":"Block","src":"628:50:75","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47498,"name":"NoAddressForRoot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47475,"src":"649:16:75","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"649:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47500,"nodeType":"RevertStatement","src":"642:25:75"}]}},{"expression":{"baseExpression":{"expression":{"id":47503,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47484,"src":"694:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"701:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"694:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47508,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47505,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47490,"src":"707:6:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"716:1:75","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"707:10:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"694:24:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47488,"id":47509,"nodeType":"Return","src":"687:31:75"}]},"functionSelector":"138e13fc","implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"489:10:75","parameters":{"id":47485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47484,"mutability":"mutable","name":"subnet","nameLocation":"516:6:75","nodeType":"VariableDeclaration","scope":47511,"src":"500:22:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47483,"nodeType":"UserDefinedTypeName","pathNode":{"id":47482,"name":"SubnetID","nameLocations":["500:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"500:8:75"},"referencedDeclaration":50077,"src":"500:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"499:24:75"},"returnParameters":{"id":47488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47511,"src":"545:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47486,"name":"address","nodeType":"ElementaryTypeName","src":"545:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"544:9:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47578,"nodeType":"FunctionDefinition","src":"731:517:75","nodes":[],"body":{"id":47577,"nodeType":"Block","src":"818:430:75","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47520,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47514,"src":"832:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"839:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"832:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"845:6:75","memberName":"length","nodeType":"MemberAccess","src":"832:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"855:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"832:24:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47529,"nodeType":"IfStatement","src":"828:81:75","trueBody":{"id":47528,"nodeType":"Block","src":"858:51:75","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47525,"name":"NoParentForSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47473,"src":"879:17:75","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"879:19:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47527,"nodeType":"RevertStatement","src":"872:26:75"}]}},{"assignments":[47534],"declarations":[{"constant":false,"id":47534,"mutability":"mutable","name":"route","nameLocation":"936:5:75","nodeType":"VariableDeclaration","scope":47577,"src":"919:22:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":47532,"name":"address","nodeType":"ElementaryTypeName","src":"919:7:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47533,"nodeType":"ArrayTypeName","src":"919:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":47544,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47538,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47514,"src":"958:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47539,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"965:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"958:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"971:6:75","memberName":"length","nodeType":"MemberAccess","src":"958:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"980:1:75","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"958:23:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"944:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47535,"name":"address","nodeType":"ElementaryTypeName","src":"948:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47536,"nodeType":"ArrayTypeName","src":"948:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"944:38:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"919:63:75"},{"assignments":[47546],"declarations":[{"constant":false,"id":47546,"mutability":"mutable","name":"routeLength","nameLocation":"1000:11:75","nodeType":"VariableDeclaration","scope":47577,"src":"992:19:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47545,"name":"uint256","nodeType":"ElementaryTypeName","src":"992:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47549,"initialValue":{"expression":{"id":47547,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47534,"src":"1014:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1020:6:75","memberName":"length","nodeType":"MemberAccess","src":"1014:12:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"992:34:75"},{"body":{"id":47569,"nodeType":"Block","src":"1071:110:75","statements":[{"expression":{"id":47563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":47556,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47534,"src":"1085:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47558,"indexExpression":{"id":47557,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47551,"src":"1091:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1085:8:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":47559,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47514,"src":"1096:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1103:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"1096:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47562,"indexExpression":{"id":47561,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47551,"src":"1109:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1096:15:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1085:26:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47564,"nodeType":"ExpressionStatement","src":"1085:26:75"},{"id":47568,"nodeType":"UncheckedBlock","src":"1125:46:75","statements":[{"expression":{"id":47566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1153:3:75","subExpression":{"id":47565,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47551,"src":"1155:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47567,"nodeType":"ExpressionStatement","src":"1153:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47553,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47551,"src":"1052:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47554,"name":"routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47546,"src":"1056:11:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1052:15:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47570,"initializationExpression":{"assignments":[47551],"declarations":[{"constant":false,"id":47551,"mutability":"mutable","name":"i","nameLocation":"1049:1:75","nodeType":"VariableDeclaration","scope":47570,"src":"1041:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47550,"name":"uint256","nodeType":"ElementaryTypeName","src":"1041:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47552,"nodeType":"VariableDeclarationStatement","src":"1041:9:75"},"nodeType":"ForStatement","src":"1036:145:75"},{"expression":{"arguments":[{"expression":{"id":47572,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47514,"src":"1214:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1221:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"1214:11:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":47574,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47534,"src":"1234:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":47571,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"1198:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":47575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1208:4:75","1227:5:75"],"names":["root","route"],"nodeType":"FunctionCall","src":"1198:43:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":47519,"id":47576,"nodeType":"Return","src":"1191:50:75"}]},"functionSelector":"118e84ee","implemented":true,"kind":"function","modifiers":[],"name":"getParentSubnet","nameLocation":"740:15:75","parameters":{"id":47515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47514,"mutability":"mutable","name":"subnet","nameLocation":"772:6:75","nodeType":"VariableDeclaration","scope":47578,"src":"756:22:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47513,"nodeType":"UserDefinedTypeName","pathNode":{"id":47512,"name":"SubnetID","nameLocations":["756:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"756:8:75"},"referencedDeclaration":50077,"src":"756:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"755:24:75"},"returnParameters":{"id":47519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47578,"src":"801:15:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47517,"nodeType":"UserDefinedTypeName","pathNode":{"id":47516,"name":"SubnetID","nameLocations":["801:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"801:8:75"},"referencedDeclaration":50077,"src":"801:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"800:17:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47645,"nodeType":"FunctionDefinition","src":"1254:490:75","nodes":[],"body":{"id":47644,"nodeType":"Block","src":"1334:410:75","nodes":[],"statements":[{"assignments":[47587],"declarations":[{"constant":false,"id":47587,"mutability":"mutable","name":"route","nameLocation":"1358:5:75","nodeType":"VariableDeclaration","scope":47644,"src":"1344:19:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47586,"name":"string","nodeType":"ElementaryTypeName","src":"1344:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":47600,"initialValue":{"arguments":[{"arguments":[{"hexValue":"2f72","id":47592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1390:4:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_93f820eb308169058c3dd6520c1f67d663f45d78cc39394907eb37677a393d1d","typeString":"literal_string \"/r\""},"value":"/r"},{"arguments":[{"expression":{"id":47595,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47581,"src":"1413:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1420:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"1413:11:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":47593,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33113,"src":"1396:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$33113_$","typeString":"type(library Strings)"}},"id":47594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1404:8:75","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":32926,"src":"1396:16:75","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":47597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1396:29:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_93f820eb308169058c3dd6520c1f67d663f45d78cc39394907eb37677a393d1d","typeString":"literal_string \"/r\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47590,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1373:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1377:12:75","memberName":"encodePacked","nodeType":"MemberAccess","src":"1373:16:75","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:53:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1366:6:75","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":47588,"name":"string","nodeType":"ElementaryTypeName","src":"1366:6:75","typeDescriptions":{}}},"id":47599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:61:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"1344:83:75"},{"assignments":[47602],"declarations":[{"constant":false,"id":47602,"mutability":"mutable","name":"subnetLength","nameLocation":"1445:12:75","nodeType":"VariableDeclaration","scope":47644,"src":"1437:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47601,"name":"uint256","nodeType":"ElementaryTypeName","src":"1437:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47606,"initialValue":{"expression":{"expression":{"id":47603,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47581,"src":"1460:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1467:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"1460:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1473:6:75","memberName":"length","nodeType":"MemberAccess","src":"1460:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1437:42:75"},{"body":{"id":47640,"nodeType":"Block","src":"1525:190:75","statements":[{"expression":{"id":47620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47613,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47587,"src":"1539:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47617,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47587,"src":"1561:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f","id":47618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1568:3:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""}],"expression":{"id":47615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1547:6:75","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":47614,"name":"string","nodeType":"ElementaryTypeName","src":"1547:6:75","typeDescriptions":{}}},"id":47616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1554:6:75","memberName":"concat","nodeType":"MemberAccess","src":"1547:13:75","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":47619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1547:25:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1539:33:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":47621,"nodeType":"ExpressionStatement","src":"1539:33:75"},{"expression":{"id":47634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47622,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47587,"src":"1586:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":47626,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47587,"src":"1608:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"expression":{"id":47627,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47581,"src":"1615:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1622:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"1615:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47630,"indexExpression":{"id":47629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47608,"src":"1628:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1615:15:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1631:11:75","memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":33075,"src":"1615:27:75","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$attached_to$_t_address_$","typeString":"function (address) pure returns (string memory)"}},"id":47632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1615:29:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":47624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1594:6:75","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":47623,"name":"string","nodeType":"ElementaryTypeName","src":"1594:6:75","typeDescriptions":{}}},"id":47625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1601:6:75","memberName":"concat","nodeType":"MemberAccess","src":"1594:13:75","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":47633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:51:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1586:59:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":47635,"nodeType":"ExpressionStatement","src":"1586:59:75"},{"id":47639,"nodeType":"UncheckedBlock","src":"1659:46:75","statements":[{"expression":{"id":47637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1687:3:75","subExpression":{"id":47636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47608,"src":"1689:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47638,"nodeType":"ExpressionStatement","src":"1687:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47610,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47608,"src":"1505:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47611,"name":"subnetLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47602,"src":"1509:12:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1505:16:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47641,"initializationExpression":{"assignments":[47608],"declarations":[{"constant":false,"id":47608,"mutability":"mutable","name":"i","nameLocation":"1502:1:75","nodeType":"VariableDeclaration","scope":47641,"src":"1494:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47607,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47609,"nodeType":"VariableDeclarationStatement","src":"1494:9:75"},"nodeType":"ForStatement","src":"1489:226:75"},{"expression":{"id":47642,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47587,"src":"1732:5:75","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":47585,"id":47643,"nodeType":"Return","src":"1725:12:75"}]},"functionSelector":"e4ebe92c","implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1263:8:75","parameters":{"id":47582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47581,"mutability":"mutable","name":"subnet","nameLocation":"1290:6:75","nodeType":"VariableDeclaration","scope":47645,"src":"1272:24:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47580,"nodeType":"UserDefinedTypeName","pathNode":{"id":47579,"name":"SubnetID","nameLocations":["1272:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1272:8:75"},"referencedDeclaration":50077,"src":"1272:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1271:26:75"},"returnParameters":{"id":47585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47645,"src":"1319:13:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47583,"name":"string","nodeType":"ElementaryTypeName","src":"1319:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1318:15:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47661,"nodeType":"FunctionDefinition","src":"1750:125:75","nodes":[],"body":{"id":47660,"nodeType":"Block","src":"1822:53:75","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":47656,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47648,"src":"1860:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}],"expression":{"id":47654,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1849:3:75","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":47655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1853:6:75","memberName":"encode","nodeType":"MemberAccess","src":"1849:10:75","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":47657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1849:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":47653,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1839:9:75","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":47658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1839:29:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":47652,"id":47659,"nodeType":"Return","src":"1832:36:75"}]},"functionSelector":"90ba52cf","implemented":true,"kind":"function","modifiers":[],"name":"toHash","nameLocation":"1759:6:75","parameters":{"id":47649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47648,"mutability":"mutable","name":"subnet","nameLocation":"1784:6:75","nodeType":"VariableDeclaration","scope":47661,"src":"1766:24:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47647,"nodeType":"UserDefinedTypeName","pathNode":{"id":47646,"name":"SubnetID","nameLocations":["1766:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1766:8:75"},"referencedDeclaration":50077,"src":"1766:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1765:26:75"},"returnParameters":{"id":47652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47651,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47661,"src":"1813:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47650,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1813:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1812:9:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47735,"nodeType":"FunctionDefinition","src":"1881:501:75","nodes":[],"body":{"id":47734,"nodeType":"Block","src":"1994:388:75","nodes":[],"statements":[{"expression":{"id":47677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":47672,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47670,"src":"2004:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2014:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"2004:14:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":47675,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47664,"src":"2021:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2028:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"2021:11:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2004:28:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":47678,"nodeType":"ExpressionStatement","src":"2004:28:75"},{"expression":{"id":47691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":47679,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47670,"src":"2042:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2052:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2042:15:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47685,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47664,"src":"2074:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2081:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2074:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2087:6:75","memberName":"length","nodeType":"MemberAccess","src":"2074:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":47688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2096:1:75","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2074:23:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2060:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47682,"name":"address","nodeType":"ElementaryTypeName","src":"2064:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47683,"nodeType":"ArrayTypeName","src":"2064:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2060:38:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2042:56:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47692,"nodeType":"ExpressionStatement","src":"2042:56:75"},{"assignments":[47694],"declarations":[{"constant":false,"id":47694,"mutability":"mutable","name":"routeLength","nameLocation":"2116:11:75","nodeType":"VariableDeclaration","scope":47734,"src":"2108:19:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47693,"name":"uint256","nodeType":"ElementaryTypeName","src":"2108:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47698,"initialValue":{"expression":{"expression":{"id":47695,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47664,"src":"2130:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2137:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2130:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2143:6:75","memberName":"length","nodeType":"MemberAccess","src":"2130:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2108:41:75"},{"body":{"id":47720,"nodeType":"Block","src":"2194:120:75","statements":[{"expression":{"id":47714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":47705,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47670,"src":"2208:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2218:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2208:15:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47709,"indexExpression":{"id":47707,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47700,"src":"2224:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2208:18:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":47710,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47664,"src":"2229:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2236:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2229:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47713,"indexExpression":{"id":47712,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47700,"src":"2242:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2229:15:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2208:36:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47715,"nodeType":"ExpressionStatement","src":"2208:36:75"},{"id":47719,"nodeType":"UncheckedBlock","src":"2258:46:75","statements":[{"expression":{"id":47717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2286:3:75","subExpression":{"id":47716,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47700,"src":"2288:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47718,"nodeType":"ExpressionStatement","src":"2286:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47702,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47700,"src":"2175:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47703,"name":"routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47694,"src":"2179:11:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2175:15:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47721,"initializationExpression":{"assignments":[47700],"declarations":[{"constant":false,"id":47700,"mutability":"mutable","name":"i","nameLocation":"2172:1:75","nodeType":"VariableDeclaration","scope":47721,"src":"2164:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47699,"name":"uint256","nodeType":"ElementaryTypeName","src":"2164:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47701,"nodeType":"VariableDeclarationStatement","src":"2164:9:75"},"nodeType":"ForStatement","src":"2159:155:75"},{"expression":{"id":47732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":47722,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47670,"src":"2324:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2334:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2324:15:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47730,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47724,"name":"newSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47670,"src":"2340:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"id":47725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2350:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2340:15:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2356:6:75","memberName":"length","nodeType":"MemberAccess","src":"2340:22:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2365:1:75","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2340:26:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2324:43:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47731,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47666,"src":"2370:5:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2324:51:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47733,"nodeType":"ExpressionStatement","src":"2324:51:75"}]},"functionSelector":"aa5106cb","implemented":true,"kind":"function","modifiers":[],"name":"createSubnetId","nameLocation":"1890:14:75","parameters":{"id":47667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47664,"mutability":"mutable","name":"subnet","nameLocation":"1923:6:75","nodeType":"VariableDeclaration","scope":47735,"src":"1905:24:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47663,"nodeType":"UserDefinedTypeName","pathNode":{"id":47662,"name":"SubnetID","nameLocations":["1905:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1905:8:75"},"referencedDeclaration":50077,"src":"1905:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47666,"mutability":"mutable","name":"actor","nameLocation":"1939:5:75","nodeType":"VariableDeclaration","scope":47735,"src":"1931:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47665,"name":"address","nodeType":"ElementaryTypeName","src":"1931:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1904:41:75"},"returnParameters":{"id":47671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47670,"mutability":"mutable","name":"newSubnet","nameLocation":"1983:9:75","nodeType":"VariableDeclaration","scope":47735,"src":"1967:25:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47669,"nodeType":"UserDefinedTypeName","pathNode":{"id":47668,"name":"SubnetID","nameLocations":["1967:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1967:8:75"},"referencedDeclaration":50077,"src":"1967:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"1966:27:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47765,"nodeType":"FunctionDefinition","src":"2388:217:75","nodes":[],"body":{"id":47764,"nodeType":"Block","src":"2462:143:75","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47743,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47738,"src":"2476:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2483:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2476:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2489:6:75","memberName":"length","nodeType":"MemberAccess","src":"2476:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2499:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2476:24:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47754,"nodeType":"IfStatement","src":"2472:72:75","trueBody":{"id":47753,"nodeType":"Block","src":"2502:42:75","statements":[{"expression":{"arguments":[{"hexValue":"30","id":47750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2531:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47749,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2523:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47748,"name":"address","nodeType":"ElementaryTypeName","src":"2523:7:75","typeDescriptions":{}}},"id":47751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2523:10:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47742,"id":47752,"nodeType":"Return","src":"2516:17:75"}]}},{"expression":{"baseExpression":{"expression":{"id":47755,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47738,"src":"2561:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2568:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2561:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47762,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47757,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47738,"src":"2574:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2581:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2574:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2587:6:75","memberName":"length","nodeType":"MemberAccess","src":"2574:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":47760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2596:1:75","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2574:23:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2561:37:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47742,"id":47763,"nodeType":"Return","src":"2554:44:75"}]},"functionSelector":"59feac42","implemented":true,"kind":"function","modifiers":[],"name":"getActor","nameLocation":"2397:8:75","parameters":{"id":47739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47738,"mutability":"mutable","name":"subnet","nameLocation":"2424:6:75","nodeType":"VariableDeclaration","scope":47765,"src":"2406:24:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47737,"nodeType":"UserDefinedTypeName","pathNode":{"id":47736,"name":"SubnetID","nameLocations":["2406:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2406:8:75"},"referencedDeclaration":50077,"src":"2406:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2405:26:75"},"returnParameters":{"id":47742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47741,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47765,"src":"2453:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47740,"name":"address","nodeType":"ElementaryTypeName","src":"2453:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2452:9:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47785,"nodeType":"FunctionDefinition","src":"2611:189:75","nodes":[],"body":{"id":47784,"nodeType":"Block","src":"2680:120:75","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47773,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47768,"src":"2749:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2756:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2749:12:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2762:6:75","memberName":"length","nodeType":"MemberAccess","src":"2749:19:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2772:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2749:24:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":47781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47778,"name":"subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47768,"src":"2777:6:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2784:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"2777:11:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":47780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2792:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2777:16:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2749:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":47772,"id":47783,"nodeType":"Return","src":"2742:51:75"}]},"functionSelector":"862a88f8","implemented":true,"kind":"function","modifiers":[],"name":"isRoot","nameLocation":"2620:6:75","parameters":{"id":47769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47768,"mutability":"mutable","name":"subnet","nameLocation":"2645:6:75","nodeType":"VariableDeclaration","scope":47785,"src":"2627:24:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47767,"nodeType":"UserDefinedTypeName","pathNode":{"id":47766,"name":"SubnetID","nameLocations":["2627:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2627:8:75"},"referencedDeclaration":50077,"src":"2627:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2626:26:75"},"returnParameters":{"id":47772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47771,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47785,"src":"2674:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47770,"name":"bool","nodeType":"ElementaryTypeName","src":"2674:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2673:6:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47825,"nodeType":"FunctionDefinition","src":"2806:332:75","nodes":[],"body":{"id":47824,"nodeType":"Block","src":"2903:235:75","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":47800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47796,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47788,"src":"2917:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2925:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"2917:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":47798,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"2933:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2941:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"2933:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2917:28:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47804,"nodeType":"IfStatement","src":"2913:71:75","trueBody":{"id":47803,"nodeType":"Block","src":"2947:37:75","statements":[{"expression":{"hexValue":"66616c7365","id":47801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2968:5:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":47795,"id":47802,"nodeType":"Return","src":"2961:12:75"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47805,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47788,"src":"2997:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3005:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"2997:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3011:6:75","memberName":"length","nodeType":"MemberAccess","src":"2997:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":47808,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"3021:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3029:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"3021:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3035:6:75","memberName":"length","nodeType":"MemberAccess","src":"3021:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2997:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47815,"nodeType":"IfStatement","src":"2993:87:75","trueBody":{"id":47814,"nodeType":"Block","src":"3043:37:75","statements":[{"expression":{"hexValue":"66616c7365","id":47812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3064:5:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":47795,"id":47813,"nodeType":"Return","src":"3057:12:75"}]}},{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":47822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":47817,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47788,"src":"3104:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}],"id":47816,"name":"toHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47661,"src":"3097:6:75","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SubnetID_$50077_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct SubnetID calldata) pure returns (bytes32)"}},"id":47818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3097:15:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":47820,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47791,"src":"3123:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}],"id":47819,"name":"toHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47661,"src":"3116:6:75","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SubnetID_$50077_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct SubnetID calldata) pure returns (bytes32)"}},"id":47821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3116:15:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3097:34:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":47795,"id":47823,"nodeType":"Return","src":"3090:41:75"}]},"functionSelector":"c836244d","implemented":true,"kind":"function","modifiers":[],"name":"equals","nameLocation":"2815:6:75","parameters":{"id":47792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47788,"mutability":"mutable","name":"subnet1","nameLocation":"2840:7:75","nodeType":"VariableDeclaration","scope":47825,"src":"2822:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47787,"nodeType":"UserDefinedTypeName","pathNode":{"id":47786,"name":"SubnetID","nameLocations":["2822:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2822:8:75"},"referencedDeclaration":50077,"src":"2822:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47791,"mutability":"mutable","name":"subnet2","nameLocation":"2867:7:75","nodeType":"VariableDeclaration","scope":47825,"src":"2849:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47790,"nodeType":"UserDefinedTypeName","pathNode":{"id":47789,"name":"SubnetID","nameLocations":["2849:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"2849:8:75"},"referencedDeclaration":50077,"src":"2849:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"2821:54:75"},"returnParameters":{"id":47795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47794,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47825,"src":"2897:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47793,"name":"bool","nodeType":"ElementaryTypeName","src":"2897:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2896:6:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":47946,"nodeType":"FunctionDefinition","src":"3239:921:75","nodes":[],"body":{"id":47945,"nodeType":"Block","src":"3353:807:75","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":47842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47838,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47829,"src":"3367:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3375:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"3367:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":47840,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47832,"src":"3383:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3391:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"3383:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3367:28:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47853,"nodeType":"IfStatement","src":"3363:110:75","trueBody":{"id":47852,"nodeType":"Block","src":"3397:76:75","statements":[{"expression":{"arguments":[{"hexValue":"30","id":47844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3434:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"hexValue":"30","id":47848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3458:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3444:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47845,"name":"address","nodeType":"ElementaryTypeName","src":"3448:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47846,"nodeType":"ArrayTypeName","src":"3448:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3444:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":47843,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"3418:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":47850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3428:4:75","3437:5:75"],"names":["root","route"],"nodeType":"FunctionCall","src":"3418:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":47837,"id":47851,"nodeType":"Return","src":"3411:51:75"}]}},{"assignments":[47855],"declarations":[{"constant":false,"id":47855,"mutability":"mutable","name":"i","nameLocation":"3491:1:75","nodeType":"VariableDeclaration","scope":47945,"src":"3483:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47854,"name":"uint256","nodeType":"ElementaryTypeName","src":"3483:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47856,"nodeType":"VariableDeclarationStatement","src":"3483:9:75"},{"assignments":[47858],"declarations":[{"constant":false,"id":47858,"mutability":"mutable","name":"subnet1routeLength","nameLocation":"3510:18:75","nodeType":"VariableDeclaration","scope":47945,"src":"3502:26:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47857,"name":"uint256","nodeType":"ElementaryTypeName","src":"3502:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47862,"initialValue":{"expression":{"expression":{"id":47859,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47829,"src":"3531:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3539:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"3531:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3545:6:75","memberName":"length","nodeType":"MemberAccess","src":"3531:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3502:49:75"},{"assignments":[47864],"declarations":[{"constant":false,"id":47864,"mutability":"mutable","name":"subnet2routeLength","nameLocation":"3569:18:75","nodeType":"VariableDeclaration","scope":47945,"src":"3561:26:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47863,"name":"uint256","nodeType":"ElementaryTypeName","src":"3561:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47868,"initialValue":{"expression":{"expression":{"id":47865,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47832,"src":"3590:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3598:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"3590:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3604:6:75","memberName":"length","nodeType":"MemberAccess","src":"3590:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3561:49:75"},{"body":{"id":47890,"nodeType":"Block","src":"3717:70:75","statements":[{"id":47889,"nodeType":"UncheckedBlock","src":"3731:46:75","statements":[{"expression":{"id":47887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3759:3:75","subExpression":{"id":47886,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3761:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47888,"nodeType":"ExpressionStatement","src":"3759:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47869,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3627:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47870,"name":"subnet1routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47858,"src":"3631:18:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3627:22:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47872,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3653:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47873,"name":"subnet2routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47864,"src":"3657:18:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3653:22:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3627:48:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":47876,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47829,"src":"3679:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3687:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"3679:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47879,"indexExpression":{"id":47878,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3693:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3679:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"expression":{"id":47880,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47832,"src":"3699:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3707:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"3699:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47883,"indexExpression":{"id":47882,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3713:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3699:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3679:36:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3627:88:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47891,"nodeType":"WhileStatement","src":"3620:167:75"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47892,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3800:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":47893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3805:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3800:6:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47906,"nodeType":"IfStatement","src":"3796:99:75","trueBody":{"id":47905,"nodeType":"Block","src":"3808:87:75","statements":[{"expression":{"arguments":[{"expression":{"id":47896,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47829,"src":"3845:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3853:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"3845:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"hexValue":"30","id":47901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3880:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3866:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47898,"name":"address","nodeType":"ElementaryTypeName","src":"3870:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47899,"nodeType":"ArrayTypeName","src":"3870:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3866:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":47895,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"3829:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":47903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3839:4:75","3859:5:75"],"names":["root","route"],"nodeType":"FunctionCall","src":"3829:55:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":47837,"id":47904,"nodeType":"Return","src":"3822:62:75"}]}},{"assignments":[47911],"declarations":[{"constant":false,"id":47911,"mutability":"mutable","name":"route","nameLocation":"3922:5:75","nodeType":"VariableDeclaration","scope":47945,"src":"3905:22:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":47909,"name":"address","nodeType":"ElementaryTypeName","src":"3905:7:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47910,"nodeType":"ArrayTypeName","src":"3905:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":47917,"initialValue":{"arguments":[{"id":47915,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3944:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3930:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":47912,"name":"address","nodeType":"ElementaryTypeName","src":"3934:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47913,"nodeType":"ArrayTypeName","src":"3934:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":47916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3930:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3905:41:75"},{"body":{"id":47937,"nodeType":"Block","src":"3981:111:75","statements":[{"expression":{"id":47931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":47924,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47911,"src":"3995:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":47926,"indexExpression":{"id":47925,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47919,"src":"4001:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3995:8:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":47927,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47829,"src":"4006:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4014:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"4006:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47930,"indexExpression":{"id":47929,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47919,"src":"4020:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4006:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3995:27:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47932,"nodeType":"ExpressionStatement","src":"3995:27:75"},{"id":47936,"nodeType":"UncheckedBlock","src":"4036:46:75","statements":[{"expression":{"id":47934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4064:3:75","subExpression":{"id":47933,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47919,"src":"4066:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47935,"nodeType":"ExpressionStatement","src":"4064:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47921,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47919,"src":"3972:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47922,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47855,"src":"3976:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3972:5:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47938,"initializationExpression":{"assignments":[47919],"declarations":[{"constant":false,"id":47919,"mutability":"mutable","name":"j","nameLocation":"3969:1:75","nodeType":"VariableDeclaration","scope":47938,"src":"3961:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47918,"name":"uint256","nodeType":"ElementaryTypeName","src":"3961:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47920,"nodeType":"VariableDeclarationStatement","src":"3961:9:75"},"nodeType":"ForStatement","src":"3956:136:75"},{"expression":{"arguments":[{"expression":{"id":47940,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47829,"src":"4125:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4133:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"4125:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":47942,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47911,"src":"4146:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":47939,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"4109:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":47943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4119:4:75","4139:5:75"],"names":["root","route"],"nodeType":"FunctionCall","src":"4109:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":47837,"id":47944,"nodeType":"Return","src":"4102:51:75"}]},"documentation":{"id":47826,"nodeType":"StructuredDocumentation","src":"3144:90:75","text":"@notice Computes the common parent of the current subnet and the one given as argument"},"functionSelector":"39991266","implemented":true,"kind":"function","modifiers":[],"name":"commonParent","nameLocation":"3248:12:75","parameters":{"id":47833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47829,"mutability":"mutable","name":"subnet1","nameLocation":"3279:7:75","nodeType":"VariableDeclaration","scope":47946,"src":"3261:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47828,"nodeType":"UserDefinedTypeName","pathNode":{"id":47827,"name":"SubnetID","nameLocations":["3261:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"3261:8:75"},"referencedDeclaration":50077,"src":"3261:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47832,"mutability":"mutable","name":"subnet2","nameLocation":"3306:7:75","nodeType":"VariableDeclaration","scope":47946,"src":"3288:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47831,"nodeType":"UserDefinedTypeName","pathNode":{"id":47830,"name":"SubnetID","nameLocations":["3288:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"3288:8:75"},"referencedDeclaration":50077,"src":"3288:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"3260:54:75"},"returnParameters":{"id":47837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47836,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47946,"src":"3336:15:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47835,"nodeType":"UserDefinedTypeName","pathNode":{"id":47834,"name":"SubnetID","nameLocations":["3336:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"3336:8:75"},"referencedDeclaration":50077,"src":"3336:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"3335:17:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":48051,"nodeType":"FunctionDefinition","src":"4517:818:75","nodes":[],"body":{"id":48050,"nodeType":"Block","src":"4623:712:75","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":47963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47959,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47950,"src":"4637:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4645:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"4637:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":47961,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47953,"src":"4653:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4661:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"4653:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4637:28:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47968,"nodeType":"IfStatement","src":"4633:88:75","trueBody":{"id":47967,"nodeType":"Block","src":"4667:54:75","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47964,"name":"DifferentRootNetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47479,"src":"4688:20:75","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4688:22:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47966,"nodeType":"RevertStatement","src":"4681:29:75"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47969,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47950,"src":"4734:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4742:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"4734:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4748:6:75","memberName":"length","nodeType":"MemberAccess","src":"4734:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"expression":{"id":47972,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47953,"src":"4758:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4766:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"4758:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4772:6:75","memberName":"length","nodeType":"MemberAccess","src":"4758:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4734:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47980,"nodeType":"IfStatement","src":"4730:96:75","trueBody":{"id":47979,"nodeType":"Block","src":"4780:46:75","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":47976,"name":"InvalidRoute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47481,"src":"4801:12:75","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":47977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4801:14:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47978,"nodeType":"RevertStatement","src":"4794:21:75"}]}},{"assignments":[47982],"declarations":[{"constant":false,"id":47982,"mutability":"mutable","name":"i","nameLocation":"4844:1:75","nodeType":"VariableDeclaration","scope":48050,"src":"4836:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47981,"name":"uint256","nodeType":"ElementaryTypeName","src":"4836:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47983,"nodeType":"VariableDeclarationStatement","src":"4836:9:75"},{"assignments":[47985],"declarations":[{"constant":false,"id":47985,"mutability":"mutable","name":"subnet2routeLength","nameLocation":"4863:18:75","nodeType":"VariableDeclaration","scope":48050,"src":"4855:26:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47984,"name":"uint256","nodeType":"ElementaryTypeName","src":"4855:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47989,"initialValue":{"expression":{"expression":{"id":47986,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47953,"src":"4884:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4892:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"4884:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4898:6:75","memberName":"length","nodeType":"MemberAccess","src":"4884:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4855:49:75"},{"body":{"id":48007,"nodeType":"Block","src":"4985:70:75","statements":[{"id":48006,"nodeType":"UncheckedBlock","src":"4999:46:75","statements":[{"expression":{"id":48004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5027:3:75","subExpression":{"id":48003,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"5029:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48005,"nodeType":"ExpressionStatement","src":"5027:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":48002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47990,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"4921:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":47991,"name":"subnet2routeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47985,"src":"4925:18:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4921:22:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":48001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":47993,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47950,"src":"4947:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4955:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"4947:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":47996,"indexExpression":{"id":47995,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"4961:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4947:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"expression":{"id":47997,"name":"subnet2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47953,"src":"4967:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":47998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4975:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"4967:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":48000,"indexExpression":{"id":47999,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"4981:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4967:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4947:36:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4921:62:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48008,"nodeType":"WhileStatement","src":"4914:141:75"},{"expression":{"id":48010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5065:3:75","subExpression":{"id":48009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"5067:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48011,"nodeType":"ExpressionStatement","src":"5065:3:75"},{"assignments":[48016],"declarations":[{"constant":false,"id":48016,"mutability":"mutable","name":"route","nameLocation":"5096:5:75","nodeType":"VariableDeclaration","scope":48050,"src":"5079:22:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":48014,"name":"address","nodeType":"ElementaryTypeName","src":"5079:7:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48015,"nodeType":"ArrayTypeName","src":"5079:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":48022,"initialValue":{"arguments":[{"id":48020,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"5118:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5104:13:75","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":48017,"name":"address","nodeType":"ElementaryTypeName","src":"5108:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48018,"nodeType":"ArrayTypeName","src":"5108:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":48021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5104:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5079:41:75"},{"body":{"id":48042,"nodeType":"Block","src":"5156:111:75","statements":[{"expression":{"id":48036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48029,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48016,"src":"5170:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":48031,"indexExpression":{"id":48030,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48024,"src":"5176:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5170:8:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":48032,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47950,"src":"5181:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":48033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5189:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"5181:13:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":48035,"indexExpression":{"id":48034,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48024,"src":"5195:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5181:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5170:27:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48037,"nodeType":"ExpressionStatement","src":"5170:27:75"},{"id":48041,"nodeType":"UncheckedBlock","src":"5211:46:75","statements":[{"expression":{"id":48039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5239:3:75","subExpression":{"id":48038,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48024,"src":"5241:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48040,"nodeType":"ExpressionStatement","src":"5239:3:75"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48026,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48024,"src":"5147:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":48027,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"5151:1:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5147:5:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48043,"initializationExpression":{"assignments":[48024],"declarations":[{"constant":false,"id":48024,"mutability":"mutable","name":"j","nameLocation":"5144:1:75","nodeType":"VariableDeclaration","scope":48043,"src":"5136:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48023,"name":"uint256","nodeType":"ElementaryTypeName","src":"5136:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":48025,"nodeType":"VariableDeclarationStatement","src":"5136:9:75"},"nodeType":"ForStatement","src":"5131:136:75"},{"expression":{"arguments":[{"expression":{"id":48045,"name":"subnet1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47950,"src":"5300:7:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":48046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5308:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"5300:12:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":48047,"name":"route","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48016,"src":"5321:5:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":48044,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"5284:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":48048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5294:4:75","5314:5:75"],"names":["root","route"],"nodeType":"FunctionCall","src":"5284:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},"functionReturnParameters":47958,"id":48049,"nodeType":"Return","src":"5277:51:75"}]},"documentation":{"id":47947,"nodeType":"StructuredDocumentation","src":"4166:346:75","text":"@notice In the path determined by the current subnet id, it moves\n down in the path from the subnet id given as argument.\n subnet2 needs to be a prefix of the subnet1.\n If subnet1 is /a/b/c/d and subnet2 is /a/b, then the returned ID should be /a/b/c.\n @dev Revert will be triggered if subnet2 is an invalid input."},"functionSelector":"089032d5","implemented":true,"kind":"function","modifiers":[],"name":"down","nameLocation":"4526:4:75","parameters":{"id":47954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47950,"mutability":"mutable","name":"subnet1","nameLocation":"4549:7:75","nodeType":"VariableDeclaration","scope":48051,"src":"4531:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47949,"nodeType":"UserDefinedTypeName","pathNode":{"id":47948,"name":"SubnetID","nameLocations":["4531:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"4531:8:75"},"referencedDeclaration":50077,"src":"4531:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"},{"constant":false,"id":47953,"mutability":"mutable","name":"subnet2","nameLocation":"4576:7:75","nodeType":"VariableDeclaration","scope":48051,"src":"4558:25:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":47952,"nodeType":"UserDefinedTypeName","pathNode":{"id":47951,"name":"SubnetID","nameLocations":["4558:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"4558:8:75"},"referencedDeclaration":50077,"src":"4558:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"4530:54:75"},"returnParameters":{"id":47958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48051,"src":"4606:15:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID"},"typeName":{"id":47956,"nodeType":"UserDefinedTypeName","pathNode":{"id":47955,"name":"SubnetID","nameLocations":["4606:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"4606:8:75"},"referencedDeclaration":50077,"src":"4606:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"4605:17:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":48071,"nodeType":"FunctionDefinition","src":"5341:144:75","nodes":[],"body":{"id":48070,"nodeType":"Block","src":"5413:72:75","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":48068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":48059,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48054,"src":"5430:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":48060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5439:5:75","memberName":"route","nodeType":"MemberAccess","referencedDeclaration":50076,"src":"5430:14:75","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":48061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5445:6:75","memberName":"length","nodeType":"MemberAccess","src":"5430:21:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5455:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5430:26:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":48067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48064,"name":"subnetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48054,"src":"5460:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID calldata"}},"id":48065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5469:4:75","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":50072,"src":"5460:13:75","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5477:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5460:18:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5430:48:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48058,"id":48069,"nodeType":"Return","src":"5423:55:75"}]},"functionSelector":"6099e898","implemented":true,"kind":"function","modifiers":[],"name":"isEmpty","nameLocation":"5350:7:75","parameters":{"id":48055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48054,"mutability":"mutable","name":"subnetId","nameLocation":"5376:8:75","nodeType":"VariableDeclaration","scope":48071,"src":"5358:26:75","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_calldata_ptr","typeString":"struct SubnetID"},"typeName":{"id":48053,"nodeType":"UserDefinedTypeName","pathNode":{"id":48052,"name":"SubnetID","nameLocations":["5358:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"5358:8:75"},"referencedDeclaration":50077,"src":"5358:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}},"visibility":"internal"}],"src":"5357:28:75"},"returnParameters":{"id":48058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48057,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48071,"src":"5407:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48056,"name":"bool","nodeType":"ElementaryTypeName","src":"5407:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5406:6:75"},"scope":48072,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetIDHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":47468,"nodeType":"StructuredDocumentation","src":"186:86:75","text":"@title Helper library for manipulating SubnetID struct\n @author LimeChain team"},"fullyImplemented":true,"linearizedBaseContracts":[48072],"name":"SubnetIDHelper","nameLocation":"280:14:75","scope":48073,"usedErrors":[32878,47473,47475,47477,47479,47481]}],"license":"MIT OR Apache-2.0"},"id":75} \ No newline at end of file diff --git a/.out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json b/.out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json index bfc13809e..8d41a3536 100644 --- a/.out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json +++ b/.out/SubnetRegistryDiamond.sol/SubnetRegistryDiamond.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"params","type":"tuple","internalType":"struct SubnetRegistryDiamond.ConstructorParams","components":[{"name":"gateway","type":"address","internalType":"address"},{"name":"getterFacet","type":"address","internalType":"address"},{"name":"managerFacet","type":"address","internalType":"address"},{"name":"subnetGetterSelectors","type":"bytes4[]","internalType":"bytes4[]"},{"name":"subnetManagerSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"FacetCannotBeZero","inputs":[]},{"type":"error","name":"FunctionNotFound","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"GatewayCannotBeZero","inputs":[]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234610ce35761111e8038038061001981610dcf565b928339810190604081830312610ce35780516001600160401b038111610ce35781019082601f83011215610ce35781519061005b61005683610df4565b610dcf565b92602084848152016020819460051b83010191868311610ce35760208101915b838310610ce857505050506020810151906001600160401b038211610ce3570160a081850312610ce3576040519360a085016001600160401b0381118682101761051c576040526100cb82610e0b565b85526100d960208301610e0b565b60208601526100ea60408301610e0b565b604086015260608201516001600160401b038111610ce3578161010e918401610e1f565b606086015260808201516001600160401b038111610ce3576101309201610e1f565b608084015282516001600160a01b031615610cd15760208301516001600160a01b031615610cbf5760408301516001600160a01b031615610cbf577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b03191633179055604051602081016001600160401b0381118282101761051c5760405260008152825160005b8181106106885750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061063357877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806102338a8a600060208501528382036040850152610efb565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b60009081527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549092168317909155835181546001600160a01b039182166001600160a01b0319918216179092559284015182549084169082161782556040840151600280549190941691161782556060830151805192939091906001600160401b03841161051c57680100000000000000009081851161051c5760039384548686558087106105d7575b5060200184600052602060002086861c9060005b828110610586575060071997808916900380610532575b50505050608001518051916001600160401b03831161051c57821161051c57600454826004558083106104a3575b506020016004600052816020600020941c9460005b8681106104525750821680830392036103fa575b6040516101339081610fab8239f35b91906000956000905b82821061041c57505050505001558080808080806103eb565b9091926020610446869983975160e01c9086861b60031b9163ffffffff809116831b921b19161790565b98019493920190610403565b84906000805b8a6008821061046d57505081880155016103d7565b610496908794959383602094995160e01c921b60031b9163ffffffff809116831b921b19161790565b9201940190869291610458565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6007918201861c8101918401861c01601c84891b1680610502575b5084905b8281106104f65750506103c2565b600081550184906104e8565b6000199081830191825491602003891b1c169055886104e4565b634e487b7160e01b600052604160045260246000fd5b9260009360005b888c83831061055357505050505001556080878080610394565b61057c908598846020949596975160e01c921b60031b9163ffffffff809116831b921b19161790565b9601929101610539565b86906000805b8c600882106105a1575050818401550161037d565b6105ca9088949593836020949a5160e01c921b60031b9163ffffffff809116831b921b19161790565b920195019088929161058c565b8560005260206000206007808901881c82019201871c0190601c888a1b1680610619575b5085905b82811061060d575050610369565b600081550185906105ff565b60001990818301918254916020038a1b1c169055896105fb565b9091929460208061067a600193607f198b8203018652606060408b51878060a01b03815116845261066a8682015187860190610eb0565b0151918160408201520190610ebd565b9701920192019092916101ef565b60406106948287610e86565b5101516001600160a01b036106a98388610e86565b51511690805115610ca65760206106c08489610e86565b5101516003811015610c9057806108de575081156108b55761ffff6000805160206110de83398151915254166107316106f7610db0565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610f6b565b8151916000915b83831061074e5750505050506001905b016101c1565b6107588383610e86565b516001600160e01b0319811660009081526000805160206110fe83398151915260205260409020549091906001600160a01b03166108935761080661079b610d91565b87815261ffff9290921660208084018281526001600160e01b0319861660009081526000805160206110fe83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b6000805160206110de83398151915254916801000000000000000083101561051c576108686108496001948581016000805160206110de83398151915255610f3b565b909260e01c9083549060031b9163ffffffff809116831b921b19161790565b905561ffff811461087d578101920191610738565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b81526001600160e01b031983166004820152602490fd5b6040516302b8da0760e21b8152602060048201529081906108da906024830190610ebd565b0390fd5b60018103610a4157508115610a1c576109396108f8610db0565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610f6b565b80519060005b8281106109525750505050600190610748565b6001600160e01b03196109658284610e86565b511660008181526000805160206110fe83398151915260205260409020546001600160a01b0316308114610a03578581146109ea57156109d25760009081526000805160206110fe8339815191526020526040902080546001600160a01b0319168517905560010161093f565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906108da906024830190610ebd565b60028103610c7057506000805160206110de833981519152549180610c58575080519060005b828110610a7a5750505050600190610748565b6001600160e01b0319610a8d8284610e86565b511690816000526000805160206110fe833981519152602052604060002094610ab4610d91565b95546001600160a01b03811680885260a09190911c61ffff16602088015215610c3f5785516001600160a01b03163014610c2657801561087d576000190180958161ffff60208301511603610b85575b50506000805160206110de83398151915254918215610b6f5760019260001901610b2d81610f3b565b63ffffffff82549160031b1b191690556000805160206110de833981519152556000526000805160206110fe8339815191526020526000604081205501610a67565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610b96610c1f94610f3b565b90549060031b1c92610bd3610baf848484015116610f3b565b63ffffffff87939293169083549060031b9163ffffffff809116831b921b19161790565b9055015160e09290921b6001600160e01b03191660009081526000805160206110fe83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610b04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610c8e906004830190610eb0565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516307a0435160e51b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b600080fd5b82516001600160401b038111610ce35782019060609081601f19848c030112610ce357604051918083016001600160401b03811184821017610d7c57604052610d3360208501610e0b565b835260408401516003811015610ce3576020840152830151916001600160401b038311610ce357610d6c8b602080969581960101610e1f565b604082015281520192019161007b565b60246000634e487b7160e01b81526041600452fd5b60408051919082016001600160401b0381118382101761051c57604052565b60405190606082016001600160401b0381118382101761051c57604052565b6040519190601f01601f191682016001600160401b0381118382101761051c57604052565b6001600160401b03811161051c5760051b60200190565b51906001600160a01b0382168203610ce357565b9080601f83011215610ce357815190610e3a61005683610df4565b9182938184526020808095019260051b820101928311610ce3578301905b828210610e66575050505090565b81516001600160e01b031981168103610ce3578152908301908301610e58565b8051821015610e9a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906003821015610c905752565b90815180825260208080930193019160005b828110610edd575050505090565b83516001600160e01b03191685529381019392810192600101610ecf565b919082519283825260005b848110610f27575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610f06565b906000805160206110de8339815191528054831015610e9a57600052601c60206000208360031c019260021b1690565b803b15610f76575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906108da906044830190610efb56fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b0b1bfa760488d138ca9ff61961c26b6d50e21d751087ca61ff93b367084c60e64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","sourceMap":"556:2909:36:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;556:2909:36;;;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;556:2909:36;939:28;935:87;;556:2909;;;;-1:-1:-1;;;;;556:2909:36;1035:32;1031:89;;556:2909;;;;-1:-1:-1;;;;;556:2909:36;1133:33;1129:90;;2258:16:57;556:2909:36;;-1:-1:-1;;;;;;556:2909:36;1257:10;556:2909;;;;;;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;;;-1:-1:-1;556:2909:36;;;;-1:-1:-1;2937:19:57;;;;;;556:2909:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:36;;;;;;;;3911:74:57;556:2909:36;;;;;-1:-1:-1;556:2909:36;;;;;;;;;;;;:::i;:::-;3911:74:57;;;1488:22:36;556:2909;;;;;;;;-1:-1:-1;;556:2909:36;;;;;;;;;;;;;;;;;-1:-1:-1;;;;556:2909:36;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:36;;;-1:-1:-1;;;;;;556:2909:36;;;;;;;;;;;;;;;;;;;;;;;;;;1488:22;556:2909;;;;;;;;;;;;;;1866:28;556:2909;;1488:22;;1866:28;;556:2909;-1:-1:-1;;;;;556:2909:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:36;;-1:-1:-1;556:2909:36;;;;;-1:-1:-1;556:2909:36;;;;;;-1:-1:-1;;;556:2909:36;;;;;;;;;;-1:-1:-1;;;;556:2909:36;;1931:29;556:2909;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;1904:24;556:2909;;1904:24;556:2909;;;;;;;;;;1904:24;-1:-1:-1;556:2909:36;;;-1:-1:-1;556:2909:36;;;;-1:-1:-1;556:2909:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:36;-1:-1:-1;556:2909:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;556:2909:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1904:24;-1:-1:-1;556:2909:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:36;;1904:24;556:2909;;-1:-1:-1;556:2909:36;;;-1:-1:-1;556:2909:36;-1:-1:-1;556:2909:36;;;;;;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;556:2909:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:36;;-1:-1:-1;556:2909:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2917:18:57;556:2909:36;3010:23:57;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:57;;;;:::i;:::-;;556:2909:36;;;;;3142:29:57;3138:122;;556:2909:36;3309:23:57;;;;:::i;:::-;;:30;556:2909:36;;;;;;;3357:37:57;;;4150:27;;;4146:116;;556:2909:36;-1:-1:-1;;;;;;;;;;;556:2909:36;;4385:74:57;556:2909:36;;:::i;:::-;;;;;;;;;-1:-1:-1;;;556:2909:36;;;;4385:74:57;;:::i;:::-;556:2909:36;;4526:21:57;-1:-1:-1;4521:677:57;4549:22;;;;;;3353:466;;;;;556:2909:36;3353:466:57;;556:2909:36;2917:18:57;;4526:21;4607:33;;;;:::i;:::-;556:2909:36;-1:-1:-1;;;;;;556:2909:36;;-1:-1:-1;556:2909:36;;;-1:-1:-1;;;;;;;;;;;556:2909:36;;;;;;;;;-1:-1:-1;;;;;556:2909:36;4751:128:57;;556:2909:36;;;:::i;:::-;;;;;;;;;;4939:107:57;;;556:2909:36;;;-1:-1:-1;;;;;;556:2909:36;;-1:-1:-1;556:2909:36;;;-1:-1:-1;;;;;;;;;;;556:2909:36;;;;;;;;;;;;;-1:-1:-1;;;;;;556:2909:36;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;;;-1:-1:-1;;;556:2909:36;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:36;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:57;;;556:2909:36;;;;-1:-1:-1;556:2909:36;;;;;-1:-1:-1;556:2909:36;4751:128:57;556:2909:36;;-1:-1:-1;;;4811:53:57;;-1:-1:-1;;;;;;556:2909:36;;4811:53:57;;;556:2909:36;;;4811:53:57;4146:116;556:2909:36;;-1:-1:-1;;;4200:51:57;;556:2909:36;4200:51:57;;;556:2909:36;;;;;;;;;;;:::i;:::-;4200:51:57;;;3353:466;556:2909:36;3484:41:57;;556:2909:36;;5372:27:57;;;5368:131;;5508:81;556:2909:36;;:::i;:::-;;;;;;;;;-1:-1:-1;;;556:2909:36;;;;5508:81:57;;:::i;:::-;556:2909:36;;5652:21:57;-1:-1:-1;5675:18:57;;;;;;3480:339;;;;556:2909:36;3480:339:57;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:57;;;;:::i;:::-;556:2909:36;;-1:-1:-1;556:2909:36;;;-1:-1:-1;;;;;;;;;;;556:2909:36;;;;;;-1:-1:-1;;;;;556:2909:36;6011:4:57;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;-1:-1:-1;556:2909:36;;;-1:-1:-1;;;;;;;;;;;556:2909:36;;;;;;;-1:-1:-1;;;;;;556:2909:36;;;;;;;5652:21:57;;6268:123;556:2909:36;;;;6328:48:57;;;;;;;;;556:2909:36;6328:48:57;6111:144;556:2909:36;;-1:-1:-1;;;6174:66:57;;;;;556:2909:36;;;;;6174:66:57;5980:118;556:2909:36;;-1:-1:-1;;;6043:40:57;;;;;556:2909:36;;;;;6043:40:57;5368:131;556:2909:36;;-1:-1:-1;;;5422:66:57;;556:2909:36;5422:66:57;;;556:2909:36;;;;;;;;;;;:::i;3480:339:57:-;3629:30;3619:40;;3629:30;;556:2909:36;-1:-1:-1;;;;;;;;;;;556:2909:36;6826:27:57;;6822:115;;556:2909:36;;;6999:21:57;-1:-1:-1;7022:18:57;;;;;;3615:204;;;;556:2909:36;3615:204:57;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:57;;;;:::i;:::-;556:2909:36;;;;-1:-1:-1;556:2909:36;-1:-1:-1;;;;;;;;;;;556:2909:36;;;-1:-1:-1;556:2909:36;;;;:::i;:::-;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;;;;;;;;;7278:61:57;7274:153;;556:2909:36;;-1:-1:-1;;;;;556:2909:36;7597:4:57;7538:64;7534:149;;556:2909:36;;;;;;;7747:15:57;556:2909:36;;;;;;;;7780:68:57;7776:412;;6999:21;556:2909:36;;-1:-1:-1;;;;;;;;;;;556:2909:36;;;;;;;;-1:-1:-1;;556:2909:36;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:36;-1:-1:-1;556:2909:36;-1:-1:-1;;;;;;;;;;;556:2909:36;;-1:-1:-1;556:2909:36;;;;;6999:21:57;;556:2909:36;;;;-1:-1:-1;556:2909:36;;;;;-1:-1:-1;556:2909:36;7776:412:57;556:2909:36;;7890:27:57;8033:140;7890:27;;:::i;:::-;556:2909:36;;;;;;;;7935:65:57;556:2909:36;;;;;;7935:65:57;:::i;:::-;556:2909:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;556:2909:36;-1:-1:-1;556:2909:36;;;-1:-1:-1;;;;;;;;;;;556:2909:36;;;;;;;-1:-1:-1;;;;556:2909:36;;;;;;;-1:-1:-1;;;556:2909:36;;;;;8033:140:57;7776:412;;;;7534:149;556:2909:36;;-1:-1:-1;;;7629:39:57;;;;;556:2909:36;;;;;7629:39:57;7274:153;556:2909:36;;-1:-1:-1;;;7366:46:57;;;;;556:2909:36;;;;;7366:46:57;6822:115;556:2909:36;;;;6876:50:57;;;;;;;;;556:2909:36;6876:50:57;3615:204;556:2909:36;;-1:-1:-1;;;3773:31:57;;556:2909:36;;;;3773:31:57;;;;556:2909:36;:::i;:::-;3773:31:57;556:2909:36;;;;-1:-1:-1;556:2909:36;;;;;-1:-1:-1;556:2909:36;3138:122:57;556:2909:36;;-1:-1:-1;;;3198:47:57;;;;;556:2909:36;;;;;3198:47:57;1129:90:36;556:2909;;-1:-1:-1;;;1189:19:36;;;;;935:87;556:2909;;-1:-1:-1;;;990:21:36;;;;;556:2909;-1:-1:-1;556:2909:36;;;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;556:2909:36;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;556:2909:36;;;-1:-1:-1;;;;;556:2909:36;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;556:2909:36;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;556:2909:36;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;556:2909:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;556:2909:36;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;556:2909:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:36;;;;;;;-1:-1:-1;556:2909:36;;;-1:-1:-1;556:2909:36;;;;;;;;;;:::o;9308:320:57:-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;556:2909:36;;;-1:-1:-1;;;9566:45:57;;-1:-1:-1;;;;;556:2909:36;;;9566:45:57;;;556:2909:36;;;;;;;;;;;;;;;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b0b1bfa760488d138ca9ff61961c26b6d50e21d751087ca61ff93b367084c60e64736f6c63430008130033","sourceMap":"556:2909:36:-:0;;;;;;;-1:-1:-1;2356:7:36;;-1:-1:-1;;;;;;2356:7:36;260:43:57;;;;;;556:2909:36;260:43:57;;;-1:-1:-1;;;;;260:43:57;;2391:19:36;;2387:82;;556:2909;;;;;2613:593;;;556:2909;;2613:593;;;;;;;;;;;;;;;;;2387:82;260:43:57;;556:2909:36;260:43:57;2433:25:36;;;;;;;;;260:43:57;2433:25:36;556:2909;-1:-1:-1;2356:7:36;;-1:-1:-1;;;;;;2356:7:36;260:43:57;;;;;;556:2909:36;260:43:57;;;-1:-1:-1;;;;;260:43:57;;2391:19:36;;2387:82;;556:2909;;;;;2613:593;;;556:2909;;2613:593;;;;;;;;;;;;;2387:82;2433:25;;;556:2909;2433:25;;260:43:57;2433:25:36;556:2909;2433:25","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"getterFacet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"managerFacet\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetGetterSelectors\",\"type\":\"bytes4[]\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetManagerSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct SubnetRegistryDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FacetCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"FunctionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GatewayCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SubnetRegistryDiamond.sol\":\"SubnetRegistryDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"struct SubnetRegistryDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"gateway","type":"address"},{"internalType":"address","name":"getterFacet","type":"address"},{"internalType":"address","name":"managerFacet","type":"address"},{"internalType":"bytes4[]","name":"subnetGetterSelectors","type":"bytes4[]"},{"internalType":"bytes4[]","name":"subnetManagerSelectors","type":"bytes4[]"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[],"type":"error","name":"FacetCannotBeZero"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"type":"error","name":"FunctionNotFound"},{"inputs":[],"type":"error","name":"GatewayCannotBeZero"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SubnetRegistryDiamond.sol":"SubnetRegistryDiamond"},"libraries":{},"viaIR":true},"sources":{"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/SubnetRegistryDiamond.sol","id":36416,"exportedSymbols":{"FacetCannotBeZero":[37084],"FunctionNotFound":[36198],"GatewayCannotBeZero":[36968],"IDiamond":[39732],"IDiamondCut":[39751],"IDiamondLoupe":[39792],"IERC165":[39803],"LibDiamond":[41229],"SubnetRegistryActorStorage":[46169],"SubnetRegistryDiamond":[36415]},"nodeType":"SourceUnit","src":"46:3420:36","nodes":[{"id":36179,"nodeType":"PragmaDirective","src":"46:23:36","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36181,"nodeType":"ImportDirective","src":"71:51:36","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":36416,"sourceUnit":39733,"symbolAliases":[{"foreign":{"id":36180,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39732,"src":"79:8:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36183,"nodeType":"ImportDirective","src":"123:62:36","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"../src/interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":36416,"sourceUnit":39752,"symbolAliases":[{"foreign":{"id":36182,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39751,"src":"131:11:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36185,"nodeType":"ImportDirective","src":"186:61:36","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"./interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":36416,"sourceUnit":39793,"symbolAliases":[{"foreign":{"id":36184,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39792,"src":"194:13:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36187,"nodeType":"ImportDirective","src":"248:49:36","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"./interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":36416,"sourceUnit":39804,"symbolAliases":[{"foreign":{"id":36186,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39803,"src":"256:7:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36189,"nodeType":"ImportDirective","src":"298:78:36","nodes":[],"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","file":"./lib/LibSubnetRegistryStorage.sol","nameLocation":"-1:-1:-1","scope":36416,"sourceUnit":46170,"symbolAliases":[{"foreign":{"id":36188,"name":"SubnetRegistryActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46169,"src":"306:26:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36192,"nodeType":"ImportDirective","src":"377:78:36","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"./errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":36416,"sourceUnit":37101,"symbolAliases":[{"foreign":{"id":36190,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36968,"src":"385:19:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36191,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37084,"src":"406:17:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36194,"nodeType":"ImportDirective","src":"456:48:36","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"./lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36416,"sourceUnit":41230,"symbolAliases":[{"foreign":{"id":36193,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"464:10:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36198,"nodeType":"ErrorDefinition","src":"505:49:36","nodes":[],"errorSelector":"5416eb98","name":"FunctionNotFound","nameLocation":"511:16:36","parameters":{"id":36197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36196,"mutability":"mutable","name":"_functionSelector","nameLocation":"535:17:36","nodeType":"VariableDeclaration","scope":36198,"src":"528:24:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36195,"name":"bytes4","nodeType":"ElementaryTypeName","src":"528:6:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"527:26:36"}},{"id":36415,"nodeType":"ContractDefinition","src":"556:2909:36","nodes":[{"id":36201,"nodeType":"VariableDeclaration","src":"593:37:36","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"629:1:36","scope":36415,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage"},"typeName":{"id":36200,"nodeType":"UserDefinedTypeName","pathNode":{"id":36199,"name":"SubnetRegistryActorStorage","nameLocations":["593:26:36"],"nodeType":"IdentifierPath","referencedDeclaration":46169,"src":"593:26:36"},"referencedDeclaration":46169,"src":"593:26:36","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage_ptr","typeString":"struct SubnetRegistryActorStorage"}},"visibility":"internal"},{"id":36214,"nodeType":"StructDefinition","src":"637:197:36","nodes":[],"canonicalName":"SubnetRegistryDiamond.ConstructorParams","members":[{"constant":false,"id":36203,"mutability":"mutable","name":"gateway","nameLocation":"680:7:36","nodeType":"VariableDeclaration","scope":36214,"src":"672:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36202,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36205,"mutability":"mutable","name":"getterFacet","nameLocation":"705:11:36","nodeType":"VariableDeclaration","scope":36214,"src":"697:19:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36204,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36207,"mutability":"mutable","name":"managerFacet","nameLocation":"734:12:36","nodeType":"VariableDeclaration","scope":36214,"src":"726:20:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36206,"name":"address","nodeType":"ElementaryTypeName","src":"726:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36210,"mutability":"mutable","name":"subnetGetterSelectors","nameLocation":"765:21:36","nodeType":"VariableDeclaration","scope":36214,"src":"756:30:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":36208,"name":"bytes4","nodeType":"ElementaryTypeName","src":"756:6:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":36209,"nodeType":"ArrayTypeName","src":"756:8:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":36213,"mutability":"mutable","name":"subnetManagerSelectors","nameLocation":"805:22:36","nodeType":"VariableDeclaration","scope":36214,"src":"796:31:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":36211,"name":"bytes4","nodeType":"ElementaryTypeName","src":"796:6:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":36212,"nodeType":"ArrayTypeName","src":"796:8:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"644:17:36","scope":36415,"visibility":"public"},{"id":36359,"nodeType":"FunctionDefinition","src":"840:1127:36","nodes":[],"body":{"id":36358,"nodeType":"Block","src":"925:1042:36","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36224,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36221,"src":"939:6:36","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"946:7:36","memberName":"gateway","nodeType":"MemberAccess","referencedDeclaration":36203,"src":"939:14:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"965:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"957:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36226,"name":"address","nodeType":"ElementaryTypeName","src":"957:7:36","typeDescriptions":{}}},"id":36229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"957:10:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"939:28:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36235,"nodeType":"IfStatement","src":"935:87:36","trueBody":{"id":36234,"nodeType":"Block","src":"969:53:36","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36231,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36968,"src":"990:19:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"990:21:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36233,"nodeType":"RevertStatement","src":"983:28:36"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36236,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36221,"src":"1035:6:36","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1042:11:36","memberName":"getterFacet","nodeType":"MemberAccess","referencedDeclaration":36205,"src":"1035:18:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1065:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1057:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36238,"name":"address","nodeType":"ElementaryTypeName","src":"1057:7:36","typeDescriptions":{}}},"id":36241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1057:10:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1035:32:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36247,"nodeType":"IfStatement","src":"1031:89:36","trueBody":{"id":36246,"nodeType":"Block","src":"1069:51:36","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36243,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37084,"src":"1090:17:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1090:19:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36245,"nodeType":"RevertStatement","src":"1083:26:36"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36248,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36221,"src":"1133:6:36","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1140:12:36","memberName":"managerFacet","nodeType":"MemberAccess","referencedDeclaration":36207,"src":"1133:19:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1164:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1156:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36250,"name":"address","nodeType":"ElementaryTypeName","src":"1156:7:36","typeDescriptions":{}}},"id":36253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1156:10:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1133:33:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36259,"nodeType":"IfStatement","src":"1129:90:36","trueBody":{"id":36258,"nodeType":"Block","src":"1168:51:36","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36255,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37084,"src":"1189:17:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1189:19:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36257,"nodeType":"RevertStatement","src":"1182:26:36"}]}},{"expression":{"arguments":[{"expression":{"id":36263,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1257:3:36","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1261:6:36","memberName":"sender","nodeType":"MemberAccess","src":"1257:10:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":36260,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"1229:10:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":36262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1240:16:36","memberName":"setContractOwner","nodeType":"MemberAccess","referencedDeclaration":40649,"src":"1229:27:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":36265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1229:39:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36266,"nodeType":"ExpressionStatement","src":"1229:39:36"},{"expression":{"arguments":[{"id":36270,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36218,"src":"1314:11:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"hexValue":"30","id":36273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1342:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1334:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36271,"name":"address","nodeType":"ElementaryTypeName","src":"1334:7:36","typeDescriptions":{}}},"id":36274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1334:10:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":36277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1367:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1357:9:36","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":36275,"name":"bytes","nodeType":"ElementaryTypeName","src":"1361:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":36278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1357:12:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":36267,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"1278:10:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":36269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1289:10:36","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":40809,"src":"1278:21:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":36279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1301:11:36","1327:5:36","1346:9:36"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"1278:93:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36280,"nodeType":"ExpressionStatement","src":"1278:93:36"},{"assignments":[36285],"declarations":[{"constant":false,"id":36285,"mutability":"mutable","name":"ds","nameLocation":"1416:2:36","nodeType":"VariableDeclaration","scope":36358,"src":"1382:36:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36284,"nodeType":"UserDefinedTypeName","pathNode":{"id":36283,"name":"LibDiamond.DiamondStorage","nameLocations":["1382:10:36","1393:14:36"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"1382:25:36"},"referencedDeclaration":40619,"src":"1382:25:36","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36289,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36286,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"1421:10:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":36287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1432:14:36","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":40631,"src":"1421:25:36","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$40619_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":36288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1421:27:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1382:66:36"},{"expression":{"id":36299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36290,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36285,"src":"1488:2:36","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1491:19:36","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":40616,"src":"1488:22:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36297,"indexExpression":{"expression":{"arguments":[{"id":36293,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39803,"src":"1516:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$39803_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$39803_$","typeString":"type(contract IERC165)"}],"id":36292,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1511:4:36","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1511:13:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$39803","typeString":"type(contract IERC165)"}},"id":36295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1525:11:36","memberName":"interfaceId","nodeType":"MemberAccess","src":"1511:25:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1488:49:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1540:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1488:56:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36300,"nodeType":"ExpressionStatement","src":"1488:56:36"},{"expression":{"id":36310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36301,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36285,"src":"1554:2:36","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1557:19:36","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":40616,"src":"1554:22:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36308,"indexExpression":{"expression":{"arguments":[{"id":36304,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39751,"src":"1582:11:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$39751_$","typeString":"type(contract IDiamondCut)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$39751_$","typeString":"type(contract IDiamondCut)"}],"id":36303,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1577:4:36","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1577:17:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondCut_$39751","typeString":"type(contract IDiamondCut)"}},"id":36306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1595:11:36","memberName":"interfaceId","nodeType":"MemberAccess","src":"1577:29:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1554:53:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1610:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1554:60:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36311,"nodeType":"ExpressionStatement","src":"1554:60:36"},{"expression":{"id":36321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36312,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36285,"src":"1624:2:36","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1627:19:36","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":40616,"src":"1624:22:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36319,"indexExpression":{"expression":{"arguments":[{"id":36315,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39792,"src":"1652:13:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$39792_$","typeString":"type(contract IDiamondLoupe)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$39792_$","typeString":"type(contract IDiamondLoupe)"}],"id":36314,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1647:4:36","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:19:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondLoupe_$39792","typeString":"type(contract IDiamondLoupe)"}},"id":36317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1667:11:36","memberName":"interfaceId","nodeType":"MemberAccess","src":"1647:31:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1624:55:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1682:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1624:62:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36322,"nodeType":"ExpressionStatement","src":"1624:62:36"},{"expression":{"id":36328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36323,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36201,"src":"1697:1:36","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1699:7:36","memberName":"GATEWAY","nodeType":"MemberAccess","referencedDeclaration":46143,"src":"1697:9:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36326,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36221,"src":"1709:6:36","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1716:7:36","memberName":"gateway","nodeType":"MemberAccess","referencedDeclaration":36203,"src":"1709:14:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1697:26:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36329,"nodeType":"ExpressionStatement","src":"1697:26:36"},{"expression":{"id":36335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36330,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36201,"src":"1733:1:36","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1735:19:36","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":46146,"src":"1733:21:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36333,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36221,"src":"1757:6:36","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1764:11:36","memberName":"getterFacet","nodeType":"MemberAccess","referencedDeclaration":36205,"src":"1757:18:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1733:42:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36336,"nodeType":"ExpressionStatement","src":"1733:42:36"},{"expression":{"id":36342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36337,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36201,"src":"1785:1:36","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1787:20:36","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":46148,"src":"1785:22:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36340,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36221,"src":"1810:6:36","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1817:12:36","memberName":"managerFacet","nodeType":"MemberAccess","referencedDeclaration":36207,"src":"1810:19:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1785:44:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36343,"nodeType":"ExpressionStatement","src":"1785:44:36"},{"expression":{"id":36349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36344,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36201,"src":"1840:1:36","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1842:21:36","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":46152,"src":"1840:23:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36347,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36221,"src":"1866:6:36","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1873:21:36","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":36210,"src":"1866:28:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"1840:54:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36350,"nodeType":"ExpressionStatement","src":"1840:54:36"},{"expression":{"id":36356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36351,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36201,"src":"1904:1:36","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$46169_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1906:22:36","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":46156,"src":"1904:24:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36354,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36221,"src":"1931:6:36","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1938:22:36","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":36213,"src":"1931:29:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"1904:56:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36357,"nodeType":"ExpressionStatement","src":"1904:56:36"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36218,"mutability":"mutable","name":"_diamondCut","nameLocation":"879:11:36","nodeType":"VariableDeclaration","scope":36359,"src":"852:38:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":36216,"nodeType":"UserDefinedTypeName","pathNode":{"id":36215,"name":"IDiamond.FacetCut","nameLocations":["852:8:36","861:8:36"],"nodeType":"IdentifierPath","referencedDeclaration":39721,"src":"852:17:36"},"referencedDeclaration":39721,"src":"852:17:36","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$39721_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":36217,"nodeType":"ArrayTypeName","src":"852:19:36","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$39721_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":36221,"mutability":"mutable","name":"params","nameLocation":"917:6:36","nodeType":"VariableDeclaration","scope":36359,"src":"892:31:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":36220,"nodeType":"UserDefinedTypeName","pathNode":{"id":36219,"name":"ConstructorParams","nameLocations":["892:17:36"],"nodeType":"IdentifierPath","referencedDeclaration":36214,"src":"892:17:36"},"referencedDeclaration":36214,"src":"892:17:36","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36214_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"851:73:36"},"returnParameters":{"id":36223,"nodeType":"ParameterList","parameters":[],"src":"925:0:36"},"scope":36415,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":36398,"nodeType":"FunctionDefinition","src":"1973:1239:36","nodes":[],"body":{"id":36397,"nodeType":"Block","src":"2003:1209:36","nodes":[],"statements":[{"assignments":[36366],"declarations":[{"constant":false,"id":36366,"mutability":"mutable","name":"ds","nameLocation":"2047:2:36","nodeType":"VariableDeclaration","scope":36397,"src":"2013:36:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36365,"nodeType":"UserDefinedTypeName","pathNode":{"id":36364,"name":"LibDiamond.DiamondStorage","nameLocations":["2013:10:36","2024:14:36"],"nodeType":"IdentifierPath","referencedDeclaration":40619,"src":"2013:25:36"},"referencedDeclaration":40619,"src":"2013:25:36","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36367,"nodeType":"VariableDeclarationStatement","src":"2013:36:36"},{"assignments":[36369],"declarations":[{"constant":false,"id":36369,"mutability":"mutable","name":"position","nameLocation":"2067:8:36","nodeType":"VariableDeclaration","scope":36397,"src":"2059:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36368,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2059:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36372,"initialValue":{"expression":{"id":36370,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41229,"src":"2078:10:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41229_$","typeString":"type(library LibDiamond)"}},"id":36371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2089:24:36","memberName":"DIAMOND_STORAGE_POSITION","nodeType":"MemberAccess","referencedDeclaration":40520,"src":"2078:35:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2059:54:36"},{"AST":{"nodeType":"YulBlock","src":"2209:43:36","statements":[{"nodeType":"YulAssignment","src":"2223:19:36","value":{"name":"position","nodeType":"YulIdentifier","src":"2234:8:36"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"2223:7:36"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":36366,"isOffset":false,"isSlot":true,"src":"2223:7:36","suffix":"slot","valueSize":1},{"declaration":36369,"isOffset":false,"isSlot":false,"src":"2234:8:36","valueSize":1}],"id":36373,"nodeType":"InlineAssembly","src":"2200:52:36"},{"assignments":[36375],"declarations":[{"constant":false,"id":36375,"mutability":"mutable","name":"facet","nameLocation":"2313:5:36","nodeType":"VariableDeclaration","scope":36397,"src":"2305:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36374,"name":"address","nodeType":"ElementaryTypeName","src":"2305:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":36382,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36376,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36366,"src":"2321:2:36","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$40619_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2324:31:36","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":40609,"src":"2321:34:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$40604_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36380,"indexExpression":{"expression":{"id":36378,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2356:3:36","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2360:3:36","memberName":"sig","nodeType":"MemberAccess","src":"2356:7:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2321:43:36","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$40604_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2365:12:36","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":40601,"src":"2321:56:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2305:72:36"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36383,"name":"facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36375,"src":"2391:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2408:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2400:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36384,"name":"address","nodeType":"ElementaryTypeName","src":"2400:7:36","typeDescriptions":{}}},"id":36387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2400:10:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2391:19:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36395,"nodeType":"IfStatement","src":"2387:82:36","trueBody":{"id":36394,"nodeType":"Block","src":"2412:57:36","statements":[{"errorCall":{"arguments":[{"expression":{"id":36390,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2450:3:36","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2454:3:36","memberName":"sig","nodeType":"MemberAccess","src":"2450:7:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":36389,"name":"FunctionNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36198,"src":"2433:16:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":36392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2433:25:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36393,"nodeType":"RevertStatement","src":"2426:32:36"}]}},{"AST":{"nodeType":"YulBlock","src":"2622:584:36","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2705:1:36","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2708:1:36","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"2711:12:36"},"nodeType":"YulFunctionCall","src":"2711:14:36"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2692:12:36"},"nodeType":"YulFunctionCall","src":"2692:34:36"},"nodeType":"YulExpressionStatement","src":"2692:34:36"},{"nodeType":"YulVariableDeclaration","src":"2792:65:36","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"2819:3:36"},"nodeType":"YulFunctionCall","src":"2819:5:36"},{"name":"facet","nodeType":"YulIdentifier","src":"2826:5:36"},{"kind":"number","nodeType":"YulLiteral","src":"2833:1:36","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"2836:12:36"},"nodeType":"YulFunctionCall","src":"2836:14:36"},{"kind":"number","nodeType":"YulLiteral","src":"2852:1:36","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2855:1:36","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"2806:12:36"},"nodeType":"YulFunctionCall","src":"2806:51:36"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"2796:6:36","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2921:1:36","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2924:1:36","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"2927:14:36"},"nodeType":"YulFunctionCall","src":"2927:16:36"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"2906:14:36"},"nodeType":"YulFunctionCall","src":"2906:38:36"},"nodeType":"YulExpressionStatement","src":"2906:38:36"},{"cases":[{"body":{"nodeType":"YulBlock","src":"3057:59:36","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3082:1:36","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"3085:14:36"},"nodeType":"YulFunctionCall","src":"3085:16:36"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3075:6:36"},"nodeType":"YulFunctionCall","src":"3075:27:36"},"nodeType":"YulExpressionStatement","src":"3075:27:36"}]},"nodeType":"YulCase","src":"3050:66:36","value":{"kind":"number","nodeType":"YulLiteral","src":"3055:1:36","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"3137:59:36","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3162:1:36","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"3165:14:36"},"nodeType":"YulFunctionCall","src":"3165:16:36"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"3155:6:36"},"nodeType":"YulFunctionCall","src":"3155:27:36"},"nodeType":"YulExpressionStatement","src":"3155:27:36"}]},"nodeType":"YulCase","src":"3129:67:36","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"3031:6:36"},"nodeType":"YulSwitch","src":"3024:172:36"}]},"evmVersion":"paris","externalReferences":[{"declaration":36375,"isOffset":false,"isSlot":false,"src":"2826:5:36","valueSize":1}],"id":36396,"nodeType":"InlineAssembly","src":"2613:593:36"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"1982:9:36","parameters":{"id":36360,"nodeType":"ParameterList","parameters":[],"src":"1991:2:36"},"returnParameters":{"id":36361,"nodeType":"ParameterList","parameters":[],"src":"2003:0:36"},"scope":36415,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":36406,"nodeType":"FunctionDefinition","src":"3279:56:36","nodes":[],"body":{"id":36405,"nodeType":"Block","src":"3307:28:36","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36402,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36398,"src":"3317:9:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3317:11:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36404,"nodeType":"ExpressionStatement","src":"3317:11:36"}]},"documentation":{"id":36399,"nodeType":"StructuredDocumentation","src":"3218:56:36","text":"@notice Will run when no functions matches call data"},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36400,"nodeType":"ParameterList","parameters":[],"src":"3287:2:36"},"returnParameters":{"id":36401,"nodeType":"ParameterList","parameters":[],"src":"3307:0:36"},"scope":36415,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":36414,"nodeType":"FunctionDefinition","src":"3408:55:36","nodes":[],"body":{"id":36413,"nodeType":"Block","src":"3435:28:36","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36410,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36398,"src":"3445:9:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3445:11:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36412,"nodeType":"ExpressionStatement","src":"3445:11:36"}]},"documentation":{"id":36407,"nodeType":"StructuredDocumentation","src":"3341:62:36","text":"@notice Same as fallback but called when calldata is empty"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36408,"nodeType":"ParameterList","parameters":[],"src":"3415:2:36"},"returnParameters":{"id":36409,"nodeType":"ParameterList","parameters":[],"src":"3435:0:36"},"scope":36415,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetRegistryDiamond","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36415],"name":"SubnetRegistryDiamond","nameLocation":"565:21:36","scope":36416,"usedErrors":[36198,36968,37084,40528,40533,40537,40541,40546,40552,40565,40569,40573,40577,40581,40585,40589]}],"license":"MIT OR Apache-2.0"},"id":36} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_diamondCut","type":"tuple[]","internalType":"struct IDiamond.FacetCut[]","components":[{"name":"facetAddress","type":"address","internalType":"address"},{"name":"action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"},{"name":"functionSelectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"name":"params","type":"tuple","internalType":"struct SubnetRegistryDiamond.ConstructorParams","components":[{"name":"gateway","type":"address","internalType":"address"},{"name":"getterFacet","type":"address","internalType":"address"},{"name":"managerFacet","type":"address","internalType":"address"},{"name":"subnetGetterSelectors","type":"bytes4[]","internalType":"bytes4[]"},{"name":"subnetManagerSelectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotAddSelectorsToZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotRemoveFunctionThatDoesNotExist","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotRemoveImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionThatDoesNotExists","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress","inputs":[{"name":"_selectors","type":"bytes4[]","internalType":"bytes4[]"}]},{"type":"error","name":"CannotReplaceImmutableFunction","inputs":[{"name":"_selector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"FacetCannotBeZero","inputs":[]},{"type":"error","name":"FunctionNotFound","inputs":[{"name":"_functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"GatewayCannotBeZero","inputs":[]},{"type":"error","name":"IncorrectFacetCutAction","inputs":[{"name":"_action","type":"uint8","internalType":"enum IDiamond.FacetCutAction"}]},{"type":"error","name":"InitializationFunctionReverted","inputs":[{"name":"_initializationContractAddress","type":"address","internalType":"address"},{"name":"_calldata","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NoBytecodeAtAddress","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_message","type":"string","internalType":"string"}]},{"type":"error","name":"NoSelectorsProvidedForFacetForCut","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]},{"type":"error","name":"RemoveFacetAddressMustBeZeroAddress","inputs":[{"name":"_facetAddress","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x608060405234610ce35761111e8038038061001981610dcf565b928339810190604081830312610ce35780516001600160401b038111610ce35781019082601f83011215610ce35781519061005b61005683610df4565b610dcf565b92602084848152016020819460051b83010191868311610ce35760208101915b838310610ce857505050506020810151906001600160401b038211610ce3570160a081850312610ce3576040519360a085016001600160401b0381118682101761051c576040526100cb82610e0b565b85526100d960208301610e0b565b60208601526100ea60408301610e0b565b604086015260608201516001600160401b038111610ce3578161010e918401610e1f565b606086015260808201516001600160401b038111610ce3576101309201610e1f565b608084015282516001600160a01b031615610cd15760208301516001600160a01b031615610cbf5760408301516001600160a01b031615610cbf577f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd580546001600160a01b03191633179055604051602081016001600160401b0381118282101761051c5760405260008152825160005b8181106106885750506040519260608401906060855251809152608084019060808160051b86010193916000905b82821061063357877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67388806102338a8a600060208501528382036040850152610efb565b0390a17f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd460209081527f7dfd48dd9def002fa9b4a05bd6b726a6c313c362d3f3e8413d7a7520f0090d258054600160ff1991821681179092557f4d7f4c8a2fb5b35ca3c277c93888b47f0f2229bdcccf66504d1ba48e88b8816480548216831790556348e2b09360e01b60009081527f59ba4db4a213e8161de597b8c10db0e7e7ba5ace5c268e36379e249a6d2d42c980549092168317909155835181546001600160a01b039182166001600160a01b0319918216179092559284015182549084169082161782556040840151600280549190941691161782556060830151805192939091906001600160401b03841161051c57680100000000000000009081851161051c5760039384548686558087106105d7575b5060200184600052602060002086861c9060005b828110610586575060071997808916900380610532575b50505050608001518051916001600160401b03831161051c57821161051c57600454826004558083106104a3575b506020016004600052816020600020941c9460005b8681106104525750821680830392036103fa575b6040516101339081610fab8239f35b91906000956000905b82821061041c57505050505001558080808080806103eb565b9091926020610446869983975160e01c9086861b60031b9163ffffffff809116831b921b19161790565b98019493920190610403565b84906000805b8a6008821061046d57505081880155016103d7565b610496908794959383602094995160e01c921b60031b9163ffffffff809116831b921b19161790565b9201940190869291610458565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b6007918201861c8101918401861c01601c84891b1680610502575b5084905b8281106104f65750506103c2565b600081550184906104e8565b6000199081830191825491602003891b1c169055886104e4565b634e487b7160e01b600052604160045260246000fd5b9260009360005b888c83831061055357505050505001556080878080610394565b61057c908598846020949596975160e01c921b60031b9163ffffffff809116831b921b19161790565b9601929101610539565b86906000805b8c600882106105a1575050818401550161037d565b6105ca9088949593836020949a5160e01c921b60031b9163ffffffff809116831b921b19161790565b920195019088929161058c565b8560005260206000206007808901881c82019201871c0190601c888a1b1680610619575b5085905b82811061060d575050610369565b600081550185906105ff565b60001990818301918254916020038a1b1c169055896105fb565b9091929460208061067a600193607f198b8203018652606060408b51878060a01b03815116845261066a8682015187860190610eb0565b0151918160408201520190610ebd565b9701920192019092916101ef565b60406106948287610e86565b5101516001600160a01b036106a98388610e86565b51511690805115610ca65760206106c08489610e86565b5101516003811015610c9057806108de575081156108b55761ffff6000805160206110de83398151915254166107316106f7610db0565b602181527f6469616d6f6e644375743a2041646420666163657420686173206e6f20636f646020820152606560f81b604082015284610f6b565b8151916000915b83831061074e5750505050506001905b016101c1565b6107588383610e86565b516001600160e01b0319811660009081526000805160206110fe83398151915260205260409020549091906001600160a01b03166108935761080661079b610d91565b87815261ffff9290921660208084018281526001600160e01b0319861660009081526000805160206110fe83398151915290925260409091209351845491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909255565b6000805160206110de83398151915254916801000000000000000083101561051c576108686108496001948581016000805160206110de83398151915255610f3b565b909260e01c9083549060031b9163ffffffff809116831b921b19161790565b905561ffff811461087d578101920191610738565b634e487b7160e01b600052601160045260246000fd5b60405163ebbf5d0760e01b81526001600160e01b031983166004820152602490fd5b6040516302b8da0760e21b8152602060048201529081906108da906024830190610ebd565b0390fd5b60018103610a4157508115610a1c576109396108f8610db0565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015283610f6b565b80519060005b8281106109525750505050600190610748565b6001600160e01b03196109658284610e86565b511660008181526000805160206110fe83398151915260205260409020546001600160a01b0316308114610a03578581146109ea57156109d25760009081526000805160206110fe8339815191526020526040902080546001600160a01b0319168517905560010161093f565b60249060405190637479f93960e01b82526004820152fd5b604051631ac6ce8d60e11b815260048101839052602490fd5b604051632901806d60e11b815260048101839052602490fd5b60405163cd98a96f60e01b8152602060048201529081906108da906024830190610ebd565b60028103610c7057506000805160206110de833981519152549180610c58575080519060005b828110610a7a5750505050600190610748565b6001600160e01b0319610a8d8284610e86565b511690816000526000805160206110fe833981519152602052604060002094610ab4610d91565b95546001600160a01b03811680885260a09190911c61ffff16602088015215610c3f5785516001600160a01b03163014610c2657801561087d576000190180958161ffff60208301511603610b85575b50506000805160206110de83398151915254918215610b6f5760019260001901610b2d81610f3b565b63ffffffff82549160031b1b191690556000805160206110de833981519152556000526000805160206110fe8339815191526020526000604081205501610a67565b634e487b7160e01b600052603160045260246000fd5b61ffff6020610b96610c1f94610f3b565b90549060031b1c92610bd3610baf848484015116610f3b565b63ffffffff87939293169083549060031b9163ffffffff809116831b921b19161790565b9055015160e09290921b6001600160e01b03191660009081526000805160206110fe83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b3880610b04565b604051630df5fd6160e31b815260048101849052602490fd5b604051637a08a22d60e01b815260048101849052602490fd5b6024906040519063d091bc8160e01b82526004820152fd5b604051633ff4d20f60e11b8152602491610c8e906004830190610eb0565bfd5b634e487b7160e01b600052602160045260246000fd5b60405163e767f91f60e01b815260048101839052602490fd5b6040516307a0435160e51b8152600490fd5b604051638b3ddc3360e01b8152600490fd5b600080fd5b82516001600160401b038111610ce35782019060609081601f19848c030112610ce357604051918083016001600160401b03811184821017610d7c57604052610d3360208501610e0b565b835260408401516003811015610ce3576020840152830151916001600160401b038311610ce357610d6c8b602080969581960101610e1f565b604082015281520192019161007b565b60246000634e487b7160e01b81526041600452fd5b60408051919082016001600160401b0381118382101761051c57604052565b60405190606082016001600160401b0381118382101761051c57604052565b6040519190601f01601f191682016001600160401b0381118382101761051c57604052565b6001600160401b03811161051c5760051b60200190565b51906001600160a01b0382168203610ce357565b9080601f83011215610ce357815190610e3a61005683610df4565b9182938184526020808095019260051b820101928311610ce3578301905b828210610e66575050505090565b81516001600160e01b031981168103610ce3578152908301908301610e58565b8051821015610e9a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906003821015610c905752565b90815180825260208080930193019160005b828110610edd575050505090565b83516001600160e01b03191685529381019392810192600101610ecf565b919082519283825260005b848110610f27575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610f06565b906000805160206110de8339815191528054831015610e9a57600052601c60206000208360031c019260021b1690565b803b15610f76575050565b6040805163919834b960e01b81526001600160a01b03909216600483015260248201529081906108da906044830190610efb56fe60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b9d7f9c6859a7892a4a07de8c422249a35a0277dfd6ed6a8d534a807b3da4c7c64736f6c63430008130033806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd3806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd2","sourceMap":"556:2909:39:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;556:2909:39;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;556:2909:39;939:28;935:87;;556:2909;;;;-1:-1:-1;;;;;556:2909:39;1035:32;1031:89;;556:2909;;;;-1:-1:-1;;;;;556:2909:39;1133:33;1129:90;;2258:16:62;556:2909:39;;-1:-1:-1;;;;;;556:2909:39;1257:10;556:2909;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;-1:-1:-1;556:2909:39;;;;-1:-1:-1;2937:19:62;;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;;;;;;;3911:74:62;556:2909:39;;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;;:::i;:::-;3911:74:62;;;1488:22:39;556:2909;;;;;;;;-1:-1:-1;;556:2909:39;;;;;;;;;;;;;;;;;-1:-1:-1;;;;556:2909:39;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;-1:-1:-1;;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;1488:22;556:2909;;;;;;;;;;;;;;1866:28;556:2909;;1488:22;;1866:28;;556:2909;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;-1:-1:-1;556:2909:39;;;;;-1:-1:-1;556:2909:39;;;;;;-1:-1:-1;;;556:2909:39;;;;;;;;;;-1:-1:-1;;;;556:2909:39;;1931:29;556:2909;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;1904:24;556:2909;;1904:24;556:2909;;;;;;;;;;1904:24;-1:-1:-1;556:2909:39;;;-1:-1:-1;556:2909:39;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1904:24;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;1904:24;556:2909;;-1:-1:-1;556:2909:39;;;-1:-1:-1;556:2909:39;-1:-1:-1;556:2909:39;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:25;556:2909;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2917:18:62;556:2909:39;3010:23:62;;;;:::i;:::-;;:41;;-1:-1:-1;;;;;3088:23:62;;;;:::i;:::-;;556:2909:39;;;;;3142:29:62;3138:122;;556:2909:39;3309:23:62;;;;:::i;:::-;;:30;556:2909:39;;;;;;;3357:37:62;;;4150:27;;;4146:116;;556:2909:39;-1:-1:-1;;;;;;;;;;;556:2909:39;;4385:74:62;556:2909:39;;:::i;:::-;;;;;;;;;-1:-1:-1;;;556:2909:39;;;;4385:74:62;;:::i;:::-;556:2909:39;;4526:21:62;-1:-1:-1;4521:677:62;4549:22;;;;;;3353:466;;;;;556:2909:39;3353:466:62;;556:2909:39;2917:18:62;;4526:21;4607:33;;;;:::i;:::-;556:2909:39;-1:-1:-1;;;;;;556:2909:39;;-1:-1:-1;556:2909:39;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;;;-1:-1:-1;;;;;556:2909:39;4751:128:62;;556:2909:39;;;:::i;:::-;;;;;;;;;;4939:107:62;;;556:2909:39;;;-1:-1:-1;;;;;;556:2909:39;;-1:-1:-1;556:2909:39;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;;;;;;;-1:-1:-1;;;;;;556:2909:39;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;-1:-1:-1;;;556:2909:39;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:21:62;;;556:2909:39;;;;-1:-1:-1;556:2909:39;;;;;-1:-1:-1;556:2909:39;4751:128:62;556:2909:39;;-1:-1:-1;;;4811:53:62;;-1:-1:-1;;;;;;556:2909:39;;4811:53:62;;;556:2909:39;;;4811:53:62;4146:116;556:2909:39;;-1:-1:-1;;;4200:51:62;;556:2909:39;4200:51:62;;;556:2909:39;;;;;;;;;;;:::i;:::-;4200:51:62;;;3353:466;556:2909:39;3484:41:62;;556:2909:39;;5372:27:62;;;5368:131;;5508:81;556:2909:39;;:::i;:::-;;;;;;;;;-1:-1:-1;;;556:2909:39;;;;5508:81:62;;:::i;:::-;556:2909:39;;5652:21:62;-1:-1:-1;5675:18:62;;;;;;3480:339;;;;556:2909:39;3480:339:62;3353:466;;5652:21;-1:-1:-1;;;;;;5729:33:62;;;;:::i;:::-;556:2909:39;;-1:-1:-1;556:2909:39;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;-1:-1:-1;;;;;556:2909:39;6011:4:62;5984:32;;5980:118;;6115:32;;;6111:144;;6272:29;6268:123;;-1:-1:-1;556:2909:39;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;-1:-1:-1;;;;;;556:2909:39;;;;;;;5652:21:62;;6268:123;556:2909:39;;;;6328:48:62;;;;;;;;;556:2909:39;6328:48:62;6111:144;556:2909:39;;-1:-1:-1;;;6174:66:62;;;;;556:2909:39;;;;;6174:66:62;5980:118;556:2909:39;;-1:-1:-1;;;6043:40:62;;;;;556:2909:39;;;;;6043:40:62;5368:131;556:2909:39;;-1:-1:-1;;;5422:66:62;;556:2909:39;5422:66:62;;;556:2909:39;;;;;;;;;;;:::i;3480:339:62:-;3629:30;3619:40;;3629:30;;556:2909:39;-1:-1:-1;;;;;;;;;;;556:2909:39;6826:27:62;;6822:115;;556:2909:39;;;6999:21:62;-1:-1:-1;7022:18:62;;;;;;3615:204;;;;556:2909:39;3615:204:62;3353:466;;6999:21;-1:-1:-1;;;;;;7076:33:62;;;;:::i;:::-;556:2909:39;;;;-1:-1:-1;556:2909:39;-1:-1:-1;;;;;;;;;;;556:2909:39;;;-1:-1:-1;556:2909:39;;;;:::i;:::-;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;7278:61:62;7274:153;;556:2909:39;;-1:-1:-1;;;;;556:2909:39;7597:4:62;7538:64;7534:149;;556:2909:39;;;;;;;7747:15:62;556:2909:39;;;;;;;;7780:68:62;7776:412;;6999:21;556:2909:39;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;;-1:-1:-1;;556:2909:39;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:39;-1:-1:-1;556:2909:39;-1:-1:-1;;;;;;;;;;;556:2909:39;;-1:-1:-1;556:2909:39;;;;;6999:21:62;;556:2909:39;;;;-1:-1:-1;556:2909:39;;;;;-1:-1:-1;556:2909:39;7776:412:62;556:2909:39;;7890:27:62;8033:140;7890:27;;:::i;:::-;556:2909:39;;;;;;;;7935:65:62;556:2909:39;;;;;;7935:65:62;:::i;:::-;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;556:2909:39;-1:-1:-1;556:2909:39;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;-1:-1:-1;;;;556:2909:39;;;;;;;-1:-1:-1;;;556:2909:39;;;;;8033:140:62;7776:412;;;;7534:149;556:2909:39;;-1:-1:-1;;;7629:39:62;;;;;556:2909:39;;;;;7629:39:62;7274:153;556:2909:39;;-1:-1:-1;;;7366:46:62;;;;;556:2909:39;;;;;7366:46:62;6822:115;556:2909:39;;;;6876:50:62;;;;;;;;;556:2909:39;6876:50:62;3615:204;556:2909:39;;-1:-1:-1;;;3773:31:62;;556:2909:39;;;;3773:31:62;;;;556:2909:39;:::i;:::-;3773:31:62;556:2909:39;;;;-1:-1:-1;556:2909:39;;;;;-1:-1:-1;556:2909:39;3138:122:62;556:2909:39;;-1:-1:-1;;;3198:47:62;;;;;556:2909:39;;;;;3198:47:62;1129:90:39;556:2909;;-1:-1:-1;;;1189:19:39;;;;;935:87;556:2909;;-1:-1:-1;;;990:21:39;;;;;556:2909;-1:-1:-1;556:2909:39;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;556:2909:39;;;-1:-1:-1;;;;;556:2909:39;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;556:2909:39;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;556:2909:39;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;556:2909:39;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;;556:2909:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;556:2909:39;;;;;;;-1:-1:-1;556:2909:39;;;-1:-1:-1;556:2909:39;;;;;;;;;;:::o;9308:320:62:-;9442:71;;9526:17;9522:100;;9308:320;;:::o;9522:100::-;556:2909:39;;;-1:-1:-1;;;9566:45:62;;-1:-1:-1;;;;;556:2909:39;;;9566:45:62;;;556:2909:39;;;;;;;;;;;;;;;:::i","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523615608757600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b0316908115606f5750818091368280378136915af43d82803e15606b573d90f35b3d90fd5b60249060405190630a82dd7360e31b82526004820152fd5b600080356001600160e01b0319168082527f806e0cbb9fce296bbc336a48f42bf1dbc69722d18d90d6fe705b7582c2bb4bd260205260408220546001600160a01b031690811560e95750818091368280378136915af43d82803e15606b573d90f35b630a82dd7360e31b60805260845260246080fdfea2646970667358221220b9d7f9c6859a7892a4a07de8c422249a35a0277dfd6ed6a8d534a807b3da4c7c64736f6c63430008130033","sourceMap":"556:2909:39:-:0;;;;;;;-1:-1:-1;2356:7:39;;-1:-1:-1;;;;;;2356:7:39;260:43:62;;;;;;556:2909:39;260:43:62;;;-1:-1:-1;;;;;260:43:62;;2391:19:39;;2387:82;;556:2909;;;;;2613:593;;;556:2909;;2613:593;;;;;;;;;;;;;;;;;2387:82;260:43:62;;556:2909:39;260:43:62;2433:25:39;;;;;;;;;260:43:62;2433:25:39;556:2909;-1:-1:-1;2356:7:39;;-1:-1:-1;;;;;;2356:7:39;260:43:62;;;;;;556:2909:39;260:43:62;;;-1:-1:-1;;;;;260:43:62;;2391:19:39;;2387:82;;556:2909;;;;;2613:593;;;556:2909;;2613:593;;;;;;;;;;;;;2387:82;2433:25;;;556:2909;2433:25;;260:43:62;2433:25:39;556:2909;2433:25","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamond.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"getterFacet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"managerFacet\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetGetterSelectors\",\"type\":\"bytes4[]\"},{\"internalType\":\"bytes4[]\",\"name\":\"subnetManagerSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct SubnetRegistryDiamond.ConstructorParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotAddFunctionToDiamondThatAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotAddSelectorsToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveFunctionThatDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotRemoveImmutableFunction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionThatDoesNotExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4[]\",\"name\":\"_selectors\",\"type\":\"bytes4[]\"}],\"name\":\"CannotReplaceFunctionsFromFacetWithZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_selector\",\"type\":\"bytes4\"}],\"name\":\"CannotReplaceImmutableFunction\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FacetCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"FunctionNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GatewayCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDiamond.FacetCutAction\",\"name\":\"_action\",\"type\":\"uint8\"}],\"name\":\"IncorrectFacetCutAction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializationContractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"InitializationFunctionReverted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"NoBytecodeAtAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"NoSelectorsProvidedForFacetForCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_facetAddress\",\"type\":\"address\"}],\"name\":\"RemoveFacetAddressMustBeZeroAddress\",\"type\":\"error\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SubnetRegistryDiamond.sol\":\"SubnetRegistryDiamond\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]","components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}]},{"internalType":"struct SubnetRegistryDiamond.ConstructorParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"gateway","type":"address"},{"internalType":"address","name":"getterFacet","type":"address"},{"internalType":"address","name":"managerFacet","type":"address"},{"internalType":"bytes4[]","name":"subnetGetterSelectors","type":"bytes4[]"},{"internalType":"bytes4[]","name":"subnetManagerSelectors","type":"bytes4[]"}]}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotAddFunctionToDiamondThatAlreadyExists"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotAddSelectorsToZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveFunctionThatDoesNotExist"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotRemoveImmutableFunction"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionThatDoesNotExists"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"type":"error","name":"CannotReplaceFunctionsFromFacetWithZeroAddress"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"type":"error","name":"CannotReplaceImmutableFunction"},{"inputs":[],"type":"error","name":"FacetCannotBeZero"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"type":"error","name":"FunctionNotFound"},{"inputs":[],"type":"error","name":"GatewayCannotBeZero"},{"inputs":[{"internalType":"enum IDiamond.FacetCutAction","name":"_action","type":"uint8"}],"type":"error","name":"IncorrectFacetCutAction"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"type":"error","name":"InitializationFunctionReverted"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"type":"error","name":"NoBytecodeAtAddress"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"NoSelectorsProvidedForFacetForCut"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"type":"error","name":"RemoveFacetAddressMustBeZeroAddress"},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/SubnetRegistryDiamond.sol":"SubnetRegistryDiamond"},"libraries":{},"viaIR":true},"sources":{"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/SubnetRegistryDiamond.sol","id":36854,"exportedSymbols":{"FacetCannotBeZero":[37516],"FunctionNotFound":[36636],"GatewayCannotBeZero":[37400],"IDiamond":[40170],"IDiamondCut":[40189],"IDiamondLoupe":[40230],"IERC165":[40241],"LibDiamond":[41682],"SubnetRegistryActorStorage":[47365],"SubnetRegistryDiamond":[36853]},"nodeType":"SourceUnit","src":"46:3420:39","nodes":[{"id":36617,"nodeType":"PragmaDirective","src":"46:23:39","nodes":[],"literals":["solidity","0.8",".19"]},{"id":36619,"nodeType":"ImportDirective","src":"71:51:39","nodes":[],"absolutePath":"src/interfaces/IDiamond.sol","file":"./interfaces/IDiamond.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":40171,"symbolAliases":[{"foreign":{"id":36618,"name":"IDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40170,"src":"79:8:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36621,"nodeType":"ImportDirective","src":"123:62:39","nodes":[],"absolutePath":"src/interfaces/IDiamondCut.sol","file":"../src/interfaces/IDiamondCut.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":40190,"symbolAliases":[{"foreign":{"id":36620,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"131:11:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36623,"nodeType":"ImportDirective","src":"186:61:39","nodes":[],"absolutePath":"src/interfaces/IDiamondLoupe.sol","file":"./interfaces/IDiamondLoupe.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":40231,"symbolAliases":[{"foreign":{"id":36622,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"194:13:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36625,"nodeType":"ImportDirective","src":"248:49:39","nodes":[],"absolutePath":"src/interfaces/IERC165.sol","file":"./interfaces/IERC165.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":40242,"symbolAliases":[{"foreign":{"id":36624,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"256:7:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36627,"nodeType":"ImportDirective","src":"298:78:39","nodes":[],"absolutePath":"src/lib/LibSubnetRegistryStorage.sol","file":"./lib/LibSubnetRegistryStorage.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":47366,"symbolAliases":[{"foreign":{"id":36626,"name":"SubnetRegistryActorStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47365,"src":"306:26:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36630,"nodeType":"ImportDirective","src":"377:78:39","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"./errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":36628,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37400,"src":"385:19:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":36629,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"406:17:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36632,"nodeType":"ImportDirective","src":"456:48:39","nodes":[],"absolutePath":"src/lib/LibDiamond.sol","file":"./lib/LibDiamond.sol","nameLocation":"-1:-1:-1","scope":36854,"sourceUnit":41683,"symbolAliases":[{"foreign":{"id":36631,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"464:10:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36636,"nodeType":"ErrorDefinition","src":"505:49:39","nodes":[],"errorSelector":"5416eb98","name":"FunctionNotFound","nameLocation":"511:16:39","parameters":{"id":36635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36634,"mutability":"mutable","name":"_functionSelector","nameLocation":"535:17:39","nodeType":"VariableDeclaration","scope":36636,"src":"528:24:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":36633,"name":"bytes4","nodeType":"ElementaryTypeName","src":"528:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"527:26:39"}},{"id":36853,"nodeType":"ContractDefinition","src":"556:2909:39","nodes":[{"id":36639,"nodeType":"VariableDeclaration","src":"593:37:39","nodes":[],"constant":false,"mutability":"mutable","name":"s","nameLocation":"629:1:39","scope":36853,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage"},"typeName":{"id":36638,"nodeType":"UserDefinedTypeName","pathNode":{"id":36637,"name":"SubnetRegistryActorStorage","nameLocations":["593:26:39"],"nodeType":"IdentifierPath","referencedDeclaration":47365,"src":"593:26:39"},"referencedDeclaration":47365,"src":"593:26:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage_ptr","typeString":"struct SubnetRegistryActorStorage"}},"visibility":"internal"},{"id":36652,"nodeType":"StructDefinition","src":"637:197:39","nodes":[],"canonicalName":"SubnetRegistryDiamond.ConstructorParams","members":[{"constant":false,"id":36641,"mutability":"mutable","name":"gateway","nameLocation":"680:7:39","nodeType":"VariableDeclaration","scope":36652,"src":"672:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36640,"name":"address","nodeType":"ElementaryTypeName","src":"672:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36643,"mutability":"mutable","name":"getterFacet","nameLocation":"705:11:39","nodeType":"VariableDeclaration","scope":36652,"src":"697:19:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36642,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36645,"mutability":"mutable","name":"managerFacet","nameLocation":"734:12:39","nodeType":"VariableDeclaration","scope":36652,"src":"726:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36644,"name":"address","nodeType":"ElementaryTypeName","src":"726:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36648,"mutability":"mutable","name":"subnetGetterSelectors","nameLocation":"765:21:39","nodeType":"VariableDeclaration","scope":36652,"src":"756:30:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":36646,"name":"bytes4","nodeType":"ElementaryTypeName","src":"756:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":36647,"nodeType":"ArrayTypeName","src":"756:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":36651,"mutability":"mutable","name":"subnetManagerSelectors","nameLocation":"805:22:39","nodeType":"VariableDeclaration","scope":36652,"src":"796:31:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":36649,"name":"bytes4","nodeType":"ElementaryTypeName","src":"796:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":36650,"nodeType":"ArrayTypeName","src":"796:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"name":"ConstructorParams","nameLocation":"644:17:39","scope":36853,"visibility":"public"},{"id":36797,"nodeType":"FunctionDefinition","src":"840:1127:39","nodes":[],"body":{"id":36796,"nodeType":"Block","src":"925:1042:39","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36662,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"939:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"946:7:39","memberName":"gateway","nodeType":"MemberAccess","referencedDeclaration":36641,"src":"939:14:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"965:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"957:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36664,"name":"address","nodeType":"ElementaryTypeName","src":"957:7:39","typeDescriptions":{}}},"id":36667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"957:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"939:28:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36673,"nodeType":"IfStatement","src":"935:87:39","trueBody":{"id":36672,"nodeType":"Block","src":"969:53:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36669,"name":"GatewayCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37400,"src":"990:19:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"990:21:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36671,"nodeType":"RevertStatement","src":"983:28:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36674,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1035:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1042:11:39","memberName":"getterFacet","nodeType":"MemberAccess","referencedDeclaration":36643,"src":"1035:18:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1065:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1057:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36676,"name":"address","nodeType":"ElementaryTypeName","src":"1057:7:39","typeDescriptions":{}}},"id":36679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1057:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1035:32:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36685,"nodeType":"IfStatement","src":"1031:89:39","trueBody":{"id":36684,"nodeType":"Block","src":"1069:51:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36681,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"1090:17:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1090:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36683,"nodeType":"RevertStatement","src":"1083:26:39"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":36686,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1133:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1140:12:39","memberName":"managerFacet","nodeType":"MemberAccess","referencedDeclaration":36645,"src":"1133:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1164:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1156:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36688,"name":"address","nodeType":"ElementaryTypeName","src":"1156:7:39","typeDescriptions":{}}},"id":36691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1156:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1133:33:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36697,"nodeType":"IfStatement","src":"1129:90:39","trueBody":{"id":36696,"nodeType":"Block","src":"1168:51:39","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":36693,"name":"FacetCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37516,"src":"1189:17:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":36694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1189:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36695,"nodeType":"RevertStatement","src":"1182:26:39"}]}},{"expression":{"arguments":[{"expression":{"id":36701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1257:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1261:6:39","memberName":"sender","nodeType":"MemberAccess","src":"1257:10:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":36698,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1229:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1240:16:39","memberName":"setContractOwner","nodeType":"MemberAccess","referencedDeclaration":41102,"src":"1229:27:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":36703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1229:39:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36704,"nodeType":"ExpressionStatement","src":"1229:39:39"},{"expression":{"arguments":[{"id":36708,"name":"_diamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36656,"src":"1314:11:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"}},{"arguments":[{"hexValue":"30","id":36711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1342:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1334:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36709,"name":"address","nodeType":"ElementaryTypeName","src":"1334:7:39","typeDescriptions":{}}},"id":36712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1334:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":36715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1367:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1357:9:39","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":36713,"name":"bytes","nodeType":"ElementaryTypeName","src":"1361:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":36716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1357:12:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut memory[] memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":36705,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1278:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1289:10:39","memberName":"diamondCut","nodeType":"MemberAccess","referencedDeclaration":41262,"src":"1278:21:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct IDiamond.FacetCut memory[] memory,address,bytes memory)"}},"id":36717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["1301:11:39","1327:5:39","1346:9:39"],"names":["_diamondCut","_init","_calldata"],"nodeType":"FunctionCall","src":"1278:93:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36718,"nodeType":"ExpressionStatement","src":"1278:93:39"},{"assignments":[36723],"declarations":[{"constant":false,"id":36723,"mutability":"mutable","name":"ds","nameLocation":"1416:2:39","nodeType":"VariableDeclaration","scope":36796,"src":"1382:36:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36722,"nodeType":"UserDefinedTypeName","pathNode":{"id":36721,"name":"LibDiamond.DiamondStorage","nameLocations":["1382:10:39","1393:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"1382:25:39"},"referencedDeclaration":41072,"src":"1382:25:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36727,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":36724,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"1421:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1432:14:39","memberName":"diamondStorage","nodeType":"MemberAccess","referencedDeclaration":41084,"src":"1421:25:39","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$41072_storage_ptr_$","typeString":"function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"}},"id":36726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1421:27:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1382:66:39"},{"expression":{"id":36737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36728,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36723,"src":"1488:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1491:19:39","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"1488:22:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36735,"indexExpression":{"expression":{"arguments":[{"id":36731,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40241,"src":"1516:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$40241_$","typeString":"type(contract IERC165)"}],"id":36730,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1511:4:39","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1511:13:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$40241","typeString":"type(contract IERC165)"}},"id":36733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1525:11:39","memberName":"interfaceId","nodeType":"MemberAccess","src":"1511:25:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1488:49:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1540:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1488:56:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36738,"nodeType":"ExpressionStatement","src":"1488:56:39"},{"expression":{"id":36748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36739,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36723,"src":"1554:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1557:19:39","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"1554:22:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36746,"indexExpression":{"expression":{"arguments":[{"id":36742,"name":"IDiamondCut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40189,"src":"1582:11:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondCut_$40189_$","typeString":"type(contract IDiamondCut)"}],"id":36741,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1577:4:39","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1577:17:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondCut_$40189","typeString":"type(contract IDiamondCut)"}},"id":36744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1595:11:39","memberName":"interfaceId","nodeType":"MemberAccess","src":"1577:29:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1554:53:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1610:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1554:60:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36749,"nodeType":"ExpressionStatement","src":"1554:60:39"},{"expression":{"id":36759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":36750,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36723,"src":"1624:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1627:19:39","memberName":"supportedInterfaces","nodeType":"MemberAccess","referencedDeclaration":41069,"src":"1624:22:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_bool_$","typeString":"mapping(bytes4 => bool)"}},"id":36757,"indexExpression":{"expression":{"arguments":[{"id":36753,"name":"IDiamondLoupe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40230,"src":"1652:13:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IDiamondLoupe_$40230_$","typeString":"type(contract IDiamondLoupe)"}],"id":36752,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1647:4:39","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":36754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IDiamondLoupe_$40230","typeString":"type(contract IDiamondLoupe)"}},"id":36755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1667:11:39","memberName":"interfaceId","nodeType":"MemberAccess","src":"1647:31:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1624:55:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":36758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1682:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1624:62:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36760,"nodeType":"ExpressionStatement","src":"1624:62:39"},{"expression":{"id":36766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36761,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36639,"src":"1697:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1699:7:39","memberName":"GATEWAY","nodeType":"MemberAccess","referencedDeclaration":47339,"src":"1697:9:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36764,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1709:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1716:7:39","memberName":"gateway","nodeType":"MemberAccess","referencedDeclaration":36641,"src":"1709:14:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1697:26:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36767,"nodeType":"ExpressionStatement","src":"1697:26:39"},{"expression":{"id":36773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36768,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36639,"src":"1733:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1735:19:39","memberName":"SUBNET_GETTER_FACET","nodeType":"MemberAccess","referencedDeclaration":47342,"src":"1733:21:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36771,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1757:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1764:11:39","memberName":"getterFacet","nodeType":"MemberAccess","referencedDeclaration":36643,"src":"1757:18:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1733:42:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36774,"nodeType":"ExpressionStatement","src":"1733:42:39"},{"expression":{"id":36780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36775,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36639,"src":"1785:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1787:20:39","memberName":"SUBNET_MANAGER_FACET","nodeType":"MemberAccess","referencedDeclaration":47344,"src":"1785:22:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36778,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1810:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1817:12:39","memberName":"managerFacet","nodeType":"MemberAccess","referencedDeclaration":36645,"src":"1810:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1785:44:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36781,"nodeType":"ExpressionStatement","src":"1785:44:39"},{"expression":{"id":36787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36782,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36639,"src":"1840:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1842:21:39","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":47348,"src":"1840:23:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36785,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1866:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1873:21:39","memberName":"subnetGetterSelectors","nodeType":"MemberAccess","referencedDeclaration":36648,"src":"1866:28:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"1840:54:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36788,"nodeType":"ExpressionStatement","src":"1840:54:39"},{"expression":{"id":36794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":36789,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36639,"src":"1904:1:39","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetRegistryActorStorage_$47365_storage","typeString":"struct SubnetRegistryActorStorage storage ref"}},"id":36791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1906:22:39","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":47352,"src":"1904:24:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36792,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36659,"src":"1931:6:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams memory"}},"id":36793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1938:22:39","memberName":"subnetManagerSelectors","nodeType":"MemberAccess","referencedDeclaration":36651,"src":"1931:29:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"1904:56:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage","typeString":"bytes4[] storage ref"}},"id":36795,"nodeType":"ExpressionStatement","src":"1904:56:39"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36656,"mutability":"mutable","name":"_diamondCut","nameLocation":"879:11:39","nodeType":"VariableDeclaration","scope":36797,"src":"852:38:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_memory_ptr_$dyn_memory_ptr","typeString":"struct IDiamond.FacetCut[]"},"typeName":{"baseType":{"id":36654,"nodeType":"UserDefinedTypeName","pathNode":{"id":36653,"name":"IDiamond.FacetCut","nameLocations":["852:8:39","861:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":40159,"src":"852:17:39"},"referencedDeclaration":40159,"src":"852:17:39","typeDescriptions":{"typeIdentifier":"t_struct$_FacetCut_$40159_storage_ptr","typeString":"struct IDiamond.FacetCut"}},"id":36655,"nodeType":"ArrayTypeName","src":"852:19:39","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FacetCut_$40159_storage_$dyn_storage_ptr","typeString":"struct IDiamond.FacetCut[]"}},"visibility":"internal"},{"constant":false,"id":36659,"mutability":"mutable","name":"params","nameLocation":"917:6:39","nodeType":"VariableDeclaration","scope":36797,"src":"892:31:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_memory_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"},"typeName":{"id":36658,"nodeType":"UserDefinedTypeName","pathNode":{"id":36657,"name":"ConstructorParams","nameLocations":["892:17:39"],"nodeType":"IdentifierPath","referencedDeclaration":36652,"src":"892:17:39"},"referencedDeclaration":36652,"src":"892:17:39","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36652_storage_ptr","typeString":"struct SubnetRegistryDiamond.ConstructorParams"}},"visibility":"internal"}],"src":"851:73:39"},"returnParameters":{"id":36661,"nodeType":"ParameterList","parameters":[],"src":"925:0:39"},"scope":36853,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":36836,"nodeType":"FunctionDefinition","src":"1973:1239:39","nodes":[],"body":{"id":36835,"nodeType":"Block","src":"2003:1209:39","nodes":[],"statements":[{"assignments":[36804],"declarations":[{"constant":false,"id":36804,"mutability":"mutable","name":"ds","nameLocation":"2047:2:39","nodeType":"VariableDeclaration","scope":36835,"src":"2013:36:39","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"},"typeName":{"id":36803,"nodeType":"UserDefinedTypeName","pathNode":{"id":36802,"name":"LibDiamond.DiamondStorage","nameLocations":["2013:10:39","2024:14:39"],"nodeType":"IdentifierPath","referencedDeclaration":41072,"src":"2013:25:39"},"referencedDeclaration":41072,"src":"2013:25:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage"}},"visibility":"internal"}],"id":36805,"nodeType":"VariableDeclarationStatement","src":"2013:36:39"},{"assignments":[36807],"declarations":[{"constant":false,"id":36807,"mutability":"mutable","name":"position","nameLocation":"2067:8:39","nodeType":"VariableDeclaration","scope":36835,"src":"2059:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36806,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2059:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36810,"initialValue":{"expression":{"id":36808,"name":"LibDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41682,"src":"2078:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibDiamond_$41682_$","typeString":"type(library LibDiamond)"}},"id":36809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2089:24:39","memberName":"DIAMOND_STORAGE_POSITION","nodeType":"MemberAccess","referencedDeclaration":40973,"src":"2078:35:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2059:54:39"},{"AST":{"nodeType":"YulBlock","src":"2209:43:39","statements":[{"nodeType":"YulAssignment","src":"2223:19:39","value":{"name":"position","nodeType":"YulIdentifier","src":"2234:8:39"},"variableNames":[{"name":"ds.slot","nodeType":"YulIdentifier","src":"2223:7:39"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":36804,"isOffset":false,"isSlot":true,"src":"2223:7:39","suffix":"slot","valueSize":1},{"declaration":36807,"isOffset":false,"isSlot":false,"src":"2234:8:39","valueSize":1}],"id":36811,"nodeType":"InlineAssembly","src":"2200:52:39"},{"assignments":[36813],"declarations":[{"constant":false,"id":36813,"mutability":"mutable","name":"facet","nameLocation":"2313:5:39","nodeType":"VariableDeclaration","scope":36835,"src":"2305:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36812,"name":"address","nodeType":"ElementaryTypeName","src":"2305:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":36820,"initialValue":{"expression":{"baseExpression":{"expression":{"id":36814,"name":"ds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36804,"src":"2321:2:39","typeDescriptions":{"typeIdentifier":"t_struct$_DiamondStorage_$41072_storage_ptr","typeString":"struct LibDiamond.DiamondStorage storage pointer"}},"id":36815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2324:31:39","memberName":"facetAddressAndSelectorPosition","nodeType":"MemberAccess","referencedDeclaration":41062,"src":"2321:34:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndSelectorPosition_$41057_storage_$","typeString":"mapping(bytes4 => struct LibDiamond.FacetAddressAndSelectorPosition storage ref)"}},"id":36818,"indexExpression":{"expression":{"id":36816,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2356:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2360:3:39","memberName":"sig","nodeType":"MemberAccess","src":"2356:7:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2321:43:39","typeDescriptions":{"typeIdentifier":"t_struct$_FacetAddressAndSelectorPosition_$41057_storage","typeString":"struct LibDiamond.FacetAddressAndSelectorPosition storage ref"}},"id":36819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2365:12:39","memberName":"facetAddress","nodeType":"MemberAccess","referencedDeclaration":41054,"src":"2321:56:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2305:72:39"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36821,"name":"facet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36813,"src":"2391:5:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2408:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2400:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36822,"name":"address","nodeType":"ElementaryTypeName","src":"2400:7:39","typeDescriptions":{}}},"id":36825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2400:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2391:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36833,"nodeType":"IfStatement","src":"2387:82:39","trueBody":{"id":36832,"nodeType":"Block","src":"2412:57:39","statements":[{"errorCall":{"arguments":[{"expression":{"id":36828,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2450:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":36829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2454:3:39","memberName":"sig","nodeType":"MemberAccess","src":"2450:7:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":36827,"name":"FunctionNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36636,"src":"2433:16:39","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$returns$__$","typeString":"function (bytes4) pure"}},"id":36830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2433:25:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36831,"nodeType":"RevertStatement","src":"2426:32:39"}]}},{"AST":{"nodeType":"YulBlock","src":"2622:584:39","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2705:1:39","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2708:1:39","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"2711:12:39"},"nodeType":"YulFunctionCall","src":"2711:14:39"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2692:12:39"},"nodeType":"YulFunctionCall","src":"2692:34:39"},"nodeType":"YulExpressionStatement","src":"2692:34:39"},{"nodeType":"YulVariableDeclaration","src":"2792:65:39","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"2819:3:39"},"nodeType":"YulFunctionCall","src":"2819:5:39"},{"name":"facet","nodeType":"YulIdentifier","src":"2826:5:39"},{"kind":"number","nodeType":"YulLiteral","src":"2833:1:39","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"2836:12:39"},"nodeType":"YulFunctionCall","src":"2836:14:39"},{"kind":"number","nodeType":"YulLiteral","src":"2852:1:39","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2855:1:39","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"2806:12:39"},"nodeType":"YulFunctionCall","src":"2806:51:39"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"2796:6:39","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2921:1:39","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2924:1:39","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"2927:14:39"},"nodeType":"YulFunctionCall","src":"2927:16:39"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"2906:14:39"},"nodeType":"YulFunctionCall","src":"2906:38:39"},"nodeType":"YulExpressionStatement","src":"2906:38:39"},{"cases":[{"body":{"nodeType":"YulBlock","src":"3057:59:39","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3082:1:39","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"3085:14:39"},"nodeType":"YulFunctionCall","src":"3085:16:39"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3075:6:39"},"nodeType":"YulFunctionCall","src":"3075:27:39"},"nodeType":"YulExpressionStatement","src":"3075:27:39"}]},"nodeType":"YulCase","src":"3050:66:39","value":{"kind":"number","nodeType":"YulLiteral","src":"3055:1:39","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"3137:59:39","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3162:1:39","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"3165:14:39"},"nodeType":"YulFunctionCall","src":"3165:16:39"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"3155:6:39"},"nodeType":"YulFunctionCall","src":"3155:27:39"},"nodeType":"YulExpressionStatement","src":"3155:27:39"}]},"nodeType":"YulCase","src":"3129:67:39","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"3031:6:39"},"nodeType":"YulSwitch","src":"3024:172:39"}]},"evmVersion":"paris","externalReferences":[{"declaration":36813,"isOffset":false,"isSlot":false,"src":"2826:5:39","valueSize":1}],"id":36834,"nodeType":"InlineAssembly","src":"2613:593:39"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"1982:9:39","parameters":{"id":36798,"nodeType":"ParameterList","parameters":[],"src":"1991:2:39"},"returnParameters":{"id":36799,"nodeType":"ParameterList","parameters":[],"src":"2003:0:39"},"scope":36853,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":36844,"nodeType":"FunctionDefinition","src":"3279:56:39","nodes":[],"body":{"id":36843,"nodeType":"Block","src":"3307:28:39","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36840,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36836,"src":"3317:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3317:11:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36842,"nodeType":"ExpressionStatement","src":"3317:11:39"}]},"documentation":{"id":36837,"nodeType":"StructuredDocumentation","src":"3218:56:39","text":"@notice Will run when no functions matches call data"},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36838,"nodeType":"ParameterList","parameters":[],"src":"3287:2:39"},"returnParameters":{"id":36839,"nodeType":"ParameterList","parameters":[],"src":"3307:0:39"},"scope":36853,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":36852,"nodeType":"FunctionDefinition","src":"3408:55:39","nodes":[],"body":{"id":36851,"nodeType":"Block","src":"3435:28:39","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36848,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36836,"src":"3445:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":36849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3445:11:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36850,"nodeType":"ExpressionStatement","src":"3445:11:39"}]},"documentation":{"id":36845,"nodeType":"StructuredDocumentation","src":"3341:62:39","text":"@notice Same as fallback but called when calldata is empty"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36846,"nodeType":"ParameterList","parameters":[],"src":"3415:2:39"},"returnParameters":{"id":36847,"nodeType":"ParameterList","parameters":[],"src":"3435:0:39"},"scope":36853,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"SubnetRegistryDiamond","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[36853],"name":"SubnetRegistryDiamond","nameLocation":"565:21:39","scope":36854,"usedErrors":[36636,37400,37516,40981,40986,40990,40994,40999,41005,41018,41022,41026,41030,41034,41038,41042]}],"license":"MIT OR Apache-2.0"},"id":39} \ No newline at end of file diff --git a/.out/SubnetRegistryHandler.sol/SubnetRegistryHandler.json b/.out/SubnetRegistryHandler.sol/SubnetRegistryHandler.json index 56e86760a..792977266 100644 --- a/.out/SubnetRegistryHandler.sol/SubnetRegistryHandler.json +++ b/.out/SubnetRegistryHandler.sol/SubnetRegistryHandler.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_registry","type":"address","internalType":"contract SubnetRegistryDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"deploySubnetActorFromRegistry","inputs":[{"name":"_minCollateral","type":"uint256","internalType":"uint256"},{"name":"_minValidators","type":"uint64","internalType":"uint64"},{"name":"_bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"_activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"_majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"_minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"_pathSize","type":"uint8","internalType":"uint8"},{"name":"_powerScale","type":"int8","internalType":"int8"},{"name":"seed","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getGateway","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwners","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getSubnetDeployedBy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetDeployedWithNonce","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"nonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getUserLastNonce","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"}],"bytecode":{"object":"0x60803461007a57601f610bc438819003918201601f19168301916001600160401b0383118484101761007f5780849260209460405283398101031261007a57516001600160a01b0381169081900361007a5760018060a01b0319818160115416176011556012541617601255604051610b2e90816100968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b600090813560e01c908163030f60511461083a5750806342bf3cc1146107e857806358b1bc921461076e57806364675ce8146101c0578063a0e67e2b146101035763ce75761f1461006357600080fd5b346101005760203660031901126101005761007c6108eb565b601254604051631163dca560e01b81526001600160a01b03928316600482015291906020908390602490829085165afa9182156100f557602093926100c6575b5060405191168152f35b6100e7919250833d81116100ee575b6100df818361091c565b810190610953565b90386100bc565b503d6100d5565b6040513d85823e3d90fd5b80fd5b50346101005780600319360112610100576040518091600f549081835260208093018092600f83527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80290835b8181106101ac575050508461016591038561091c565b60405193838594850191818652518092526040850193925b82811061018c57505050500390f35b83516001600160a01b03168552869550938101939281019260010161017d565b82548452928601926001928301920161014f565b503461010057610120366003190112610100576101db610906565b6001600160401b03604435166044350361076a5761ffff606435166064350361076a5760ff608435166084350361076a5760ff60c4351660c4350361076a5760e435820b60e4350361076a5760c4359060e4359060a43590606435906084359060443590600435670de0b6b3a7640000828183118015610762575b610759575b600a6001600160401b0360443516118015610746575b61073d575b603360ff6084351610801561072e575b610725575b601260e4358c0b1361071c575b6001600160401b031660018111908115610713575b5061070a575b600560ff60c4351611610701575b861180156106f9575b6106ec575b603261ffff606435161180156106de575b6106d5575b6102f160ff8916610972565b976102ff604051998a61091c565b60ff8116808a52601f199061031390610972565b013660208b0137895b60ff8216811061069b575050604051978860408101106001600160401b0360408b0111176106875760408901604052607b895260208901526004602060018060a01b0360125416604051928380926342bf3cc160e01b82525afa90811561067c578a9161065d575b5060405198896101608101106001600160401b036101608c011117610649576101608a016040908152908a526001600160a01b0390911660208a0152880189905260608801526001600160401b0390811660808801521660a086015260ff1660c085015261ffff1660e0840152610100830152820b610120820152610140810182905261041361010435610a3c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156106455760405163ca669fa760e01b81526001600160a01b0382166004820152838160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561063a5761060b575b5060018060a01b036011541660405192631547a2b160e31b8452602060048501526020815161016060248701526001600160401b0381511661018487015201519060406101a48601526101c48501825180915260206101e48701930190875b8181106105ec5750505060208101516001600160a01b03166044860152604081015160018110156105d85760648601526060810151608486015260808101516001600160401b0390811660a487015260a08201511660c486015260c081015160ff1660e486015260e081015161ffff16610104860152610100810151610124860152610120810151860b610144860152610140015160038110156105c45791848681809460209661016483015203925af19182156100f5576105a1926105a5575b506001600160a01b03166109b3565b5080f35b6105bd9060203d6020116100ee576100df818361091c565b5038610592565b634e487b7160e01b86526021600452602486fd5b634e487b7160e01b87526021600452602487fd5b82516001600160a01b03168552602094850194909201916001016104d1565b6001600160401b038194929411610626576040529138610472565b634e487b7160e01b82526041600452602482fd5b6040513d86823e3d90fd5b8280fd5b634e487b7160e01b8b52604160045260248bfd5b610676915060203d6020116100ee576100df818361091c565b38610384565b6040513d8c823e3d90fd5b634e487b7160e01b8a52604160045260248afd5b6001600160a01b0381166106af828c610989565b5260001981146106c15760010161031c565b634e487b7160e01b8b52601160045260248bfd5b603294506102e5565b5061ffff60643516156102e0565b6402540be40095506102cf565b5085156102ca565b600198506102c1565b600192506102b3565b905015386102ad565b60129850610298565b6046955061028b565b50606460ff6084351611610286565b600a9450610276565b506001600160401b036044351615610271565b9150809161025b565b508215610256565b5080fd5b5034610100576040366003190112610100576107886108eb565b60446020610794610906565b601254604051639836b75f60e01b81526001600160a01b0395861660048201526001600160401b0390921660248301529093928491829085165afa9182156100f557602093926100c6575060405191168152f35b50346101005780600319360112610100576012546040516342bf3cc160e01b8152906001600160a01b03906020908390600490829085165afa9182156100f557602093926100c6575060405191168152f35b90503461076a576020918260031936011261010057828260248161085c6108eb565b60125463030f605160e01b83526001600160a01b039182166004840152165afa9182156108de57819261089d575b50506001600160401b0360405191168152f35b9091508281813d83116108d7575b6108b5818361091c565b8101031261076a5751906001600160401b03821682036101005750388061088a565b503d6108ab565b50604051903d90823e3d90fd5b600435906001600160a01b038216820361090157565b600080fd5b602435906001600160401b038216820361090157565b90601f801991011681019081106001600160401b0382111761093d57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261090157516001600160a01b03811681036109015790565b6001600160401b03811161093d5760051b60200190565b805182101561099d5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600081815260106020526040812054610a3757600f5468010000000000000000811015610626576001810180600f55811015610a235790826040927f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020155600f5492815260106020522055600190565b634e487b7160e01b82526032600452602482fd5b905090565b600f548015808015610aed575b15610a55575050503390565b6040519081838152826020809201600f6000527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8029260005b878110610ad6575050610aa29250038361091c565b610ac0576001600160a01b0392610abb92900690610989565b511690565b634e487b7160e01b600052601260045260246000fd5b845483526001948501948794509282019201610a8d565b506003831615610a4956fea2646970667358221220fd2917a8cc5f9ea305a7835aa162504332915e0cbca64368db448689f03f50b064736f6c63430008130033","sourceMap":"739:4618:88:-:0;;;;;;;;;;;;;-1:-1:-1;;739:4618:88;;;;-1:-1:-1;;;;;739:4618:88;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;739:4618:88;;;;;;;;;;;;;;;;1692:61;739:4618;;;1692:61;739:4618;1763:59;739:4618;;;1763:59;739:4618;;;;;;;;;;;-1:-1:-1;739:4618:88;;;;;;-1:-1:-1;739:4618:88;;;;;-1:-1:-1;739:4618:88","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c908163030f60511461083a5750806342bf3cc1146107e857806358b1bc921461076e57806364675ce8146101c0578063a0e67e2b146101035763ce75761f1461006357600080fd5b346101005760203660031901126101005761007c6108eb565b601254604051631163dca560e01b81526001600160a01b03928316600482015291906020908390602490829085165afa9182156100f557602093926100c6575b5060405191168152f35b6100e7919250833d81116100ee575b6100df818361091c565b810190610953565b90386100bc565b503d6100d5565b6040513d85823e3d90fd5b80fd5b50346101005780600319360112610100576040518091600f549081835260208093018092600f83527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80290835b8181106101ac575050508461016591038561091c565b60405193838594850191818652518092526040850193925b82811061018c57505050500390f35b83516001600160a01b03168552869550938101939281019260010161017d565b82548452928601926001928301920161014f565b503461010057610120366003190112610100576101db610906565b6001600160401b03604435166044350361076a5761ffff606435166064350361076a5760ff608435166084350361076a5760ff60c4351660c4350361076a5760e435820b60e4350361076a5760c4359060e4359060a43590606435906084359060443590600435670de0b6b3a7640000828183118015610762575b610759575b600a6001600160401b0360443516118015610746575b61073d575b603360ff6084351610801561072e575b610725575b601260e4358c0b1361071c575b6001600160401b031660018111908115610713575b5061070a575b600560ff60c4351611610701575b861180156106f9575b6106ec575b603261ffff606435161180156106de575b6106d5575b6102f160ff8916610972565b976102ff604051998a61091c565b60ff8116808a52601f199061031390610972565b013660208b0137895b60ff8216811061069b575050604051978860408101106001600160401b0360408b0111176106875760408901604052607b895260208901526004602060018060a01b0360125416604051928380926342bf3cc160e01b82525afa90811561067c578a9161065d575b5060405198896101608101106001600160401b036101608c011117610649576101608a016040908152908a526001600160a01b0390911660208a0152880189905260608801526001600160401b0390811660808801521660a086015260ff1660c085015261ffff1660e0840152610100830152820b610120820152610140810182905261041361010435610a3c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156106455760405163ca669fa760e01b81526001600160a01b0382166004820152838160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561063a5761060b575b5060018060a01b036011541660405192631547a2b160e31b8452602060048501526020815161016060248701526001600160401b0381511661018487015201519060406101a48601526101c48501825180915260206101e48701930190875b8181106105ec5750505060208101516001600160a01b03166044860152604081015160018110156105d85760648601526060810151608486015260808101516001600160401b0390811660a487015260a08201511660c486015260c081015160ff1660e486015260e081015161ffff16610104860152610100810151610124860152610120810151860b610144860152610140015160038110156105c45791848681809460209661016483015203925af19182156100f5576105a1926105a5575b506001600160a01b03166109b3565b5080f35b6105bd9060203d6020116100ee576100df818361091c565b5038610592565b634e487b7160e01b86526021600452602486fd5b634e487b7160e01b87526021600452602487fd5b82516001600160a01b03168552602094850194909201916001016104d1565b6001600160401b038194929411610626576040529138610472565b634e487b7160e01b82526041600452602482fd5b6040513d86823e3d90fd5b8280fd5b634e487b7160e01b8b52604160045260248bfd5b610676915060203d6020116100ee576100df818361091c565b38610384565b6040513d8c823e3d90fd5b634e487b7160e01b8a52604160045260248afd5b6001600160a01b0381166106af828c610989565b5260001981146106c15760010161031c565b634e487b7160e01b8b52601160045260248bfd5b603294506102e5565b5061ffff60643516156102e0565b6402540be40095506102cf565b5085156102ca565b600198506102c1565b600192506102b3565b905015386102ad565b60129850610298565b6046955061028b565b50606460ff6084351611610286565b600a9450610276565b506001600160401b036044351615610271565b9150809161025b565b508215610256565b5080fd5b5034610100576040366003190112610100576107886108eb565b60446020610794610906565b601254604051639836b75f60e01b81526001600160a01b0395861660048201526001600160401b0390921660248301529093928491829085165afa9182156100f557602093926100c6575060405191168152f35b50346101005780600319360112610100576012546040516342bf3cc160e01b8152906001600160a01b03906020908390600490829085165afa9182156100f557602093926100c6575060405191168152f35b90503461076a576020918260031936011261010057828260248161085c6108eb565b60125463030f605160e01b83526001600160a01b039182166004840152165afa9182156108de57819261089d575b50506001600160401b0360405191168152f35b9091508281813d83116108d7575b6108b5818361091c565b8101031261076a5751906001600160401b03821682036101005750388061088a565b503d6108ab565b50604051903d90823e3d90fd5b600435906001600160a01b038216820361090157565b600080fd5b602435906001600160401b038216820361090157565b90601f801991011681019081106001600160401b0382111761093d57604052565b634e487b7160e01b600052604160045260246000fd5b9081602091031261090157516001600160a01b03811681036109015790565b6001600160401b03811161093d5760051b60200190565b805182101561099d5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600081815260106020526040812054610a3757600f5468010000000000000000811015610626576001810180600f55811015610a235790826040927f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020155600f5492815260106020522055600190565b634e487b7160e01b82526032600452602482fd5b905090565b600f548015808015610aed575b15610a55575050503390565b6040519081838152826020809201600f6000527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8029260005b878110610ad6575050610aa29250038361091c565b610ac0576001600160a01b0392610abb92900690610989565b511690565b634e487b7160e01b600052601260045260246000fd5b845483526001948501948794509282019201610a8d565b506003831615610a4956fea2646970667358221220fd2917a8cc5f9ea305a7835aa162504332915e0cbca64368db448689f03f50b064736f6c63430008130033","sourceMap":"739:4618:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2888:32;739:4618;2888:32;;;739:4618;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;739:4618:88;;;;;;:::i;:::-;1935:19;739:4618;;;-1:-1:-1;;;1935:47:88;;-1:-1:-1;;;;;739:4618:88;;;;1935:47;;739:4618;;;;;;;;;;;;;1935:47;;;;;;;739:4618;1935:47;;;;739:4618;;;;;;;;;1935:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;739:4618;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2783:12;739:4618;;;;;;;;;;;2783:12;739:4618;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;739:4618:88;;;;;-1:-1:-1;739:4618:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;739:4618:88;;;;;;:::i;:::-;-1:-1:-1;;;;;739:4618:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1044:7;739:4618;3279:44;;;:67;;;;739:4618;3275:142;;739:4618;981:2;-1:-1:-1;;;;;739:4618:88;;;3430:48;:77;;;;739:4618;3426:156;;739:4618;3617:2;739:4618;;;;3595:24;:53;;;;739:4618;3591:133;;739:4618;1162:2;739:4618;;;;3737:33;3733:97;;739:4618;-1:-1:-1;;;;;739:4618:88;;3843:39;;:62;;;;;739:4618;3839:132;;;739:4618;3996:1;739:4618;;;;3984:13;3980:57;;739:4618;4050:25;;:49;;;;739:4618;4046:111;;739:4618;1329:2;739:4618;;;;4170:50;:81;;;;739:4618;4166:162;;739:4618;1329:2;739:4618;;;1329:2;:::i;:::-;739:4618;1329:2;739:4618;;1329:2;;;:::i;:::-;739:4618;;;1329:2;;;-1:-1:-1;;1329:2:88;;;;:::i;:::-;;739:4618;;1329:2;;;4401:9;4412:13;739:4618;;;4412:13;;;;739:4618;;;;;;;;;;-1:-1:-1;;;;;739:4618:88;;;;;;;;;;;;1212:3;;;739:4618;4610:46;;1212:3;739:4618;;;;;;;1162:2;739:4618;;;;;;;;;;;4686:32;;;;;;;;;;;;;4396:90;739:4618;;;;;1212:3;739:4618;;;-1:-1:-1;;;;;1212:3:88;739:4618;;;;;;1212:3;739:4618;;;;;;1212:3;;;-1:-1:-1;;;;;739:4618:88;;;;4549:629;;1329:2;4549:629;;1212:3;;;739:4618;4549:629;;1212:3;-1:-1:-1;;;;;739:4618:88;;;;4549:629;;1212:3;739:4618;;4549:629;;1212:3;739:4618;;;4549:629;;1212:3;739:4618;;;4549:629;;1212:3;739:4618;4549:629;;1212:3;739:4618;;;4549:629;;1212:3;4549:629;;;1212:3;;;5205:33;739:4618;;5205:33;:::i;:::-;739:4618;5248:15;;;;739:4618;;-1:-1:-1;;;5248:15:88;;-1:-1:-1;;;;;739:4618:88;;;5248:15;;739:4618;5248:15;739:4618;;;5248:15;739:4618;5248:15;;;;;;;;4396:90;739:4618;;;;;;5273:19;1220:14:3;739:4618:88;;;;;;;5273:42;;739:4618;;5273:42;;1220:14:3;739:4618:88;1220:14:3;;1212:3:88;739:4618;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;739:4618:88;1220:14:3;;;739:4618:88;1220:14:3;;;739:4618:88;1220:14:3;;;;;;;739:4618:88;;;;;;;;;;;1220:14:3;;;;;;;;-1:-1:-1;;;739:4618:88;4549:629;;1220:14:3;-1:-1:-1;;;;;739:4618:88;;1220:14:3;;739:4618:88;;4549:629;;1220:14:3;739:4618:88;1212:3;;;;;739:4618;1220:14:3;;;739:4618:88;4549:629;;1220:14:3;739:4618:88;1220:14:3;;739:4618:88;;4549:629;;1220:14:3;-1:-1:-1;;;;;739:4618:88;;;;1220:14:3;;739:4618:88;;4549:629;;1220:14:3;739:4618:88;;1220:14:3;;739:4618:88;;4549:629;;1220:14:3;739:4618:88;;;1220:14:3;;;739:4618:88;4549:629;;1220:14:3;739:4618:88;;;1220:14:3;;;739:4618:88;4549:629;;1220:14:3;;;;739:4618:88;;4549:629;;1220:14:3;739:4618:88;;1220:14:3;;;;4549:629:88;;1220:14:3;739:4618:88;1212:3;;;;;1220:14:3;;;;;;739:4618:88;1220:14:3;;;;;5273:42:88;;;;;;;;;8399:50:33;5273:42:88;;;1220:14:3;-1:-1:-1;;;;;;739:4618:88;8399:50:33;:::i;:::-;;739:4618:88;;5273:42;;;739:4618;5273:42;739:4618;5273:42;;;;;;;:::i;:::-;;;;;1212:3;-1:-1:-1;;;1212:3:88;;;739:4618;1212:3;739:4618;1329:2;1212:3;;-1:-1:-1;;;1212:3:88;;;739:4618;1212:3;739:4618;1329:2;1212:3;1220:14:3;;;-1:-1:-1;;;;;739:4618:88;;;;;;;;;;;;;1220:14:3;;;5248:15:88;-1:-1:-1;;;;;739:4618:88;;;;;;;;;5248:15;;;;739:4618;-1:-1:-1;;;739:4618:88;;;;;;1329:2;739:4618;5248:15;739:4618;;;;;;;;;5248:15;739:4618;;;;-1:-1:-1;;;739:4618:88;;;;;;1329:2;739:4618;4686:32;;;;739:4618;4686:32;739:4618;4686:32;;;;;;;:::i;:::-;;;;;739:4618;;;;;;;;;;-1:-1:-1;;;739:4618:88;;;;;;1329:2;739:4618;4427:3;-1:-1:-1;;;;;739:4618:88;;4446:29;739:4618;4446:29;;:::i;:::-;1329:2;-1:-1:-1;;1329:2:88;;;;739:4618;1329:2;4401:9;;1329:2;-1:-1:-1;;;1329:2:88;;;739:4618;1329:2;739:4618;1329:2;;4166:162;1329:2;;-1:-1:-1;4166:162:88;;4170:81;739:4618;;;;;4224:27;4170:81;;4046:111;1378:7;;-1:-1:-1;4046:111:88;;4050:49;4079:20;;;4050:49;;3980:57;739:4618;;-1:-1:-1;3980:57:88;;3839:132;739:4618;;-1:-1:-1;3839:132:88;;3843:62;3886:19;;;3843:62;;;3733:97;1162:2;;-1:-1:-1;3733:97:88;;3591:133;1110:2;;-1:-1:-1;3591:133:88;;3595:53;739:4618;;;;;;3623:25;3595:53;;3426:156;981:2;;-1:-1:-1;3426:156:88;;3430:77;739:4618;-1:-1:-1;;;;;739:4618:88;;;3482:25;3430:77;;3275:142;3362:44;;;3275:142;;;3279:67;3327:19;;;3279:67;;739:4618;;;;;;;;;;;-1:-1:-1;;739:4618:88;;;;;;:::i;:::-;;;;;:::i;:::-;2116:19;739:4618;;;-1:-1:-1;;;2116:58:88;;-1:-1:-1;;;;;739:4618:88;;;;2116:58;;739:4618;-1:-1:-1;;;;;739:4618:88;;;;;;;;;;;;;;;;2116:58;;;;;;;739:4618;2116:58;;;;739:4618;;;;;;;;;;;;;;;;;;;;;2888:19;739:4618;;;-1:-1:-1;;;2888:32:88;;739:4618;-1:-1:-1;;;;;739:4618:88;2888:32;;739:4618;;;;;;;;2888:32;;;;;;;;;;;;739:4618;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2281:19;739:4618;-1:-1:-1;;;2281:42:88;;-1:-1:-1;;;;;739:4618:88;;;;2281:42;;739:4618;;2281:42;;;;;;;;;;;739:4618;;;-1:-1:-1;;;;;739:4618:88;;;;;;;2281:42;;;;;;;;;;;;;;;;;:::i;:::-;;;739:4618;;;;;;-1:-1:-1;;;;;739:4618:88;;;;;;2281:42;;;;;;;;;;;739:4618;;;;;;;;;;;;;;;-1:-1:-1;;;;;739:4618:88;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;739:4618:88;;;;;;:::o;:::-;;1329:2;;;739:4618;;;;;;;;-1:-1:-1;;;;;739:4618:88;;;;;;;:::o;:::-;1329:2;;;739:4618;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;739:4618:88;;;;;;;:::o;1329:2::-;-1:-1:-1;;;;;1329:2:88;;;;;;;;;:::o;:::-;739:4618;;1329:2;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2215:404:33;-1:-1:-1;739:4618:88;;;4352:12:33;739:4618:88;;;;;;;;5325:12;739:4618;;;;;;;4352:12:33;739:4618:88;;;5325:12;739:4618;;;;;;;;;;;;;5325:12;739:4618;;;;4352:12:33;739:4618:88;;;;4352:12:33;2548:11;:::o;739:4618:88:-;-1:-1:-1;;;1329:2:88;;;;;;;;2294:319:33;2590:12;;;:::o;2401:297:88:-;2511:12;739:4618;2546:11;;:28;;;;;2401:297;2542:150;;;2597:10;;;;2590:17;:::o;2542:150::-;739:4618;;;;;;;;;;;;2511:12;-1:-1:-1;739:4618:88;;;-1:-1:-1;739:4618:88;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;739:4618:88;2645:36;;739:4618;;;2645:36;:::i;:::-;739:4618;;2638:43;:::o;739:4618::-;1329:2;;;-1:-1:-1;739:4618:88;;;;;-1:-1:-1;739:4618:88;;;;;;;;;;;;;-1:-1:-1;739:4618:88;;;;;;;2546:28;739:4618;;;;2561:13;2546:28;","linkReferences":{}},"methodIdentifiers":{"deploySubnetActorFromRegistry(uint256,uint64,uint64,uint16,uint8,uint256,uint8,int8,uint256)":"64675ce8","getGateway()":"42bf3cc1","getOwners()":"a0e67e2b","getSubnetDeployedBy(address)":"ce75761f","getSubnetDeployedWithNonce(address,uint64)":"58b1bc92","getUserLastNonce(address)":"030f6051"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract SubnetRegistryDiamond\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"_activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"_majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_pathSize\",\"type\":\"uint8\"},{\"internalType\":\"int8\",\"name\":\"_powerScale\",\"type\":\"int8\"},{\"internalType\":\"uint256\",\"name\":\"seed\",\"type\":\"uint256\"}],\"name\":\"deploySubnetActorFromRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"getSubnetDeployedBy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getSubnetDeployedWithNonce\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getUserLastNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/invariants/handlers/SubnetRegistryHandler.sol\":\"SubnetRegistryHandler\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b\",\"dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/Status.sol\":{\"keccak256\":\"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33\",\"dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b\",\"dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c\",\"dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7\",\"dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f\",\"dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365\",\"dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463\",\"dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x7e36a89eb829f018acd7e8877a8a1b93bc939e87467700846741cda033432d99\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d0f4db114142828d91b8ac120269a3de36390e63f3e5c0d27a821bdbad7d77f0\",\"dweb:/ipfs/QmYZAiaWWPATDrtF3MFoxdcBkmwMacFrjByFNb3hPeLDo6\"]},\"test/invariants/handlers/SubnetRegistryHandler.sol\":{\"keccak256\":\"0xc2541803fe58533aca27a1dd835535452283be0b6fa4a6d2be3c0ef9ee7557b8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e18138d295f4d0e3f1d14ea6a7f0d7912924d13d2ee7965ff06b65ae48f241fb\",\"dweb:/ipfs/QmPCWCxt4F1jNEzsBfs4HrP1DAPLPJRMVCbHFowksHXuoe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract SubnetRegistryDiamond","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"_minCollateral","type":"uint256"},{"internalType":"uint64","name":"_minValidators","type":"uint64"},{"internalType":"uint64","name":"_bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint16","name":"_activeValidatorsLimit","type":"uint16"},{"internalType":"uint8","name":"_majorityPercentage","type":"uint8"},{"internalType":"uint256","name":"_minCrossMsgFee","type":"uint256"},{"internalType":"uint8","name":"_pathSize","type":"uint8"},{"internalType":"int8","name":"_powerScale","type":"int8"},{"internalType":"uint256","name":"seed","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deploySubnetActorFromRegistry"},{"inputs":[],"stateMutability":"view","type":"function","name":"getGateway","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"getSubnetDeployedBy","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSubnetDeployedWithNonce","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"getUserLastNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/invariants/handlers/SubnetRegistryHandler.sol":"SubnetRegistryHandler"},"libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0x60d4efda822b7bcf31796cd5f6ac002317bcb2b29dec4874129ca6e141273e87","urls":["bzz-raw://e58bbf15afa8a45610bb6a4aa38d52aae4c4c751512b6d6eae9ce1555253571b","dweb:/ipfs/QmQg1JvgeVBgnG6SU26grFLC5r569uJXLagVjTAteCSKdk"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/Status.sol":{"keccak256":"0x8f5921e4df87420127988b54f67a3ccfb6fbfae767891e8ed4edbf371598e16c","urls":["bzz-raw://7a81d9a00ea7a2a85cfe1b2662236412dddb55e09fa70c70a34dc4dfc5ffea33","dweb:/ipfs/QmRh4uA4491B2DVjrUtdfCTTtjpoXpKEp3Zz9CBYueNW1R"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0x42d57f2c4c9d2fc1ff572525ba9e0bea5e8ae2c54758acd103684b7885e95789","urls":["bzz-raw://be7d7b627926d5be61cfdd6f8382a7022054f1c6224e472f3370e436f30ac46b","dweb:/ipfs/QmYZyWXvYePY6bTXB1odbRH4jkWfRogNm7ALDJQgQ8uUME"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0x408fc06a3f56b4cb1b751eb18351b6acf15bb243ab99e5890309772d09faf2a8","urls":["bzz-raw://c44519e2388c614e89eb9abbb61e89be35ab50684bec76177da9e2209bbd7a9c","dweb:/ipfs/QmRsvksWdEwHACVPS2CD4j2rZfmKqSTfUxWVg2QjZ3eZxy"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x06fb3248571d80ad10e5e74d75c15c9214d097fd98ea43d36d9545e9dacf62ff","urls":["bzz-raw://51d06df97a442ef882968cccbc6790e667d4a7e99fdebda7f13ae634b6d1c4e7","dweb:/ipfs/QmWJVEVBxCtT9oNhGDtWkP5pH1xS2FPSUmrtQ2EDRm5KKs"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x0ad7d1a4567241a54a73c8b0114ed85888178cabd0bef84a0394e4db922a41f2","urls":["bzz-raw://b1d378a7456b6b7e5efa731097f35b3da9cb85fa379a9983e8a274a2d35ef58f","dweb:/ipfs/QmdApiSWcdf3uwFWbfh3vBDhCEXFweMiZt6NDxym6HMjmq"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x2f31aed333d0054f71f334210564500ad01ce7657547e91d0be8729d283de8f0","urls":["bzz-raw://e3c44a855376c23a24d333e836f3e4706a2d7f71ed27879d7cddb73cd887c365","dweb:/ipfs/QmNWikYwYVurXEkeVoTw4Jc6EeMRfpHtUcePDvsEMa7MLK"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x69f962f1f7e907ad2facf704758e7163bf55a48c80b7bf861f58b5b923e7f9dc","urls":["bzz-raw://ba921ce3b5ce9cfc7ca0399afe8ed33fa559446904f4e438a48468109f6b2463","dweb:/ipfs/QmddKnobUq3A46LfcPyXgEwMvytg5E9pacRYQmzZGttjKK"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x7e36a89eb829f018acd7e8877a8a1b93bc939e87467700846741cda033432d99","urls":["bzz-raw://d0f4db114142828d91b8ac120269a3de36390e63f3e5c0d27a821bdbad7d77f0","dweb:/ipfs/QmYZAiaWWPATDrtF3MFoxdcBkmwMacFrjByFNb3hPeLDo6"],"license":"MIT OR Apache-2.0"},"test/invariants/handlers/SubnetRegistryHandler.sol":{"keccak256":"0xc2541803fe58533aca27a1dd835535452283be0b6fa4a6d2be3c0ef9ee7557b8","urls":["bzz-raw://e18138d295f4d0e3f1d14ea6a7f0d7912924d13d2ee7965ff06b65ae48f241fb","dweb:/ipfs/QmPCWCxt4F1jNEzsBfs4HrP1DAPLPJRMVCbHFowksHXuoe"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/invariants/handlers/SubnetRegistryHandler.sol","id":56031,"exportedSymbols":{"CommonBase":[3777],"ConsensusType":[36918],"EnumerableSet":[35386],"IMulticall3":[30545],"PermissionMode":[48648],"RegisterSubnetFacet":[51075],"StdCheats":[8180],"StdCheatsSafe":[7501],"StdStorage":[9220],"StdUtils":[12691],"SubnetActorDiamond":[36177],"SubnetGetterFacet":[51313],"SubnetID":[48557],"SubnetRegistryDiamond":[36415],"SubnetRegistryHandler":[56030],"Vm":[14222],"VmSafe":[13782],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:5312:88","nodes":[{"id":55628,"nodeType":"PragmaDirective","src":"46:23:88","nodes":[],"literals":["solidity","0.8",".19"]},{"id":55629,"nodeType":"ImportDirective","src":"71:32:88","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"forge-std/StdUtils.sol","nameLocation":"-1:-1:-1","scope":56031,"sourceUnit":12692,"symbolAliases":[],"unitAlias":""},{"id":55630,"nodeType":"ImportDirective","src":"104:33:88","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"forge-std/StdCheats.sol","nameLocation":"-1:-1:-1","scope":56031,"sourceUnit":8181,"symbolAliases":[],"unitAlias":""},{"id":55632,"nodeType":"ImportDirective","src":"138:46:88","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"forge-std/Base.sol","nameLocation":"-1:-1:-1","scope":56031,"sourceUnit":3793,"symbolAliases":[{"foreign":{"id":55631,"name":"CommonBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3777,"src":"146:10:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55634,"nodeType":"ImportDirective","src":"185:88:88","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../../../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":56031,"sourceUnit":51076,"symbolAliases":[{"foreign":{"id":55633,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51075,"src":"193:19:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55636,"nodeType":"ImportDirective","src":"274:84:88","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../../../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":56031,"sourceUnit":51314,"symbolAliases":[{"foreign":{"id":55635,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51313,"src":"282:17:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55638,"nodeType":"ImportDirective","src":"359:71:88","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../../../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":56031,"sourceUnit":36178,"symbolAliases":[{"foreign":{"id":55637,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"367:18:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55640,"nodeType":"ImportDirective","src":"431:77:88","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../../../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":56031,"sourceUnit":36416,"symbolAliases":[{"foreign":{"id":55639,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36415,"src":"439:21:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55642,"nodeType":"ImportDirective","src":"509:67:88","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../../../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":56031,"sourceUnit":36919,"symbolAliases":[{"foreign":{"id":55641,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"517:13:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55645,"nodeType":"ImportDirective","src":"577:73:88","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":56031,"sourceUnit":48702,"symbolAliases":[{"foreign":{"id":55643,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"585:8:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":55644,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"595:14:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":55647,"nodeType":"ImportDirective","src":"652:85:88","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":56031,"sourceUnit":35387,"symbolAliases":[{"foreign":{"id":55646,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35386,"src":"660:13:88","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":56030,"nodeType":"ContractDefinition","src":"739:4618:88","nodes":[{"id":55657,"nodeType":"UsingForDirective","src":"811:49:88","nodes":[],"global":false,"libraryName":{"id":55654,"name":"EnumerableSet","nameLocations":["817:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":35386,"src":"817:13:88"},"typeName":{"id":55656,"nodeType":"UserDefinedTypeName","pathNode":{"id":55655,"name":"EnumerableSet.AddressSet","nameLocations":["835:13:88","849:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"835:24:88"},"referencedDeclaration":35099,"src":"835:24:88","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":55663,"nodeType":"VariableDeclaration","src":"866:65:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"891:24:88","scope":56030,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55658,"name":"address","nodeType":"ElementaryTypeName","src":"866:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":55661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"926:4:88","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":55660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"918:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55659,"name":"address","nodeType":"ElementaryTypeName","src":"918:7:88","typeDescriptions":{}}},"id":55662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"918:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":55666,"nodeType":"VariableDeclaration","src":"937:46:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"953:25:88","scope":56030,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55664,"name":"uint64","nodeType":"ElementaryTypeName","src":"937:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":55665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"981:2:88","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":55669,"nodeType":"VariableDeclaration","src":"989:62:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"1014:27:88","scope":56030,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55667,"name":"uint256","nodeType":"ElementaryTypeName","src":"989:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":55668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"private"},{"id":55672,"nodeType":"VariableDeclaration","src":"1057:55:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"1080:27:88","scope":56030,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55670,"name":"uint8","nodeType":"ElementaryTypeName","src":"1057:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":55671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1110:2:88","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"private"},{"id":55675,"nodeType":"VariableDeclaration","src":"1118:46:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"1140:19:88","scope":56030,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":55673,"name":"int8","nodeType":"ElementaryTypeName","src":"1118:4:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3138","id":55674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1162:2:88","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"private"},{"id":55678,"nodeType":"VariableDeclaration","src":"1170:45:88","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"1194:15:88","scope":56030,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55676,"name":"uint64","nodeType":"ElementaryTypeName","src":"1170:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":55677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1212:3:88","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"private"},{"id":55681,"nodeType":"VariableDeclaration","src":"1221:50:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"1245:22:88","scope":56030,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55679,"name":"uint64","nodeType":"ElementaryTypeName","src":"1221:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":55680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1270:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":55684,"nodeType":"VariableDeclaration","src":"1277:54:88","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS","nameLocation":"1301:25:88","scope":56030,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":55682,"name":"uint16","nodeType":"ElementaryTypeName","src":"1277:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3530","id":55683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1329:2:88","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"visibility":"private"},{"id":55687,"nodeType":"VariableDeclaration","src":"1337:48:88","nodes":[],"constant":true,"mutability":"constant","name":"CROSS_MSG_FEE","nameLocation":"1362:13:88","scope":56030,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55685,"name":"uint256","nodeType":"ElementaryTypeName","src":"1337:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":55686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1378:7:88","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"private"},{"id":55690,"nodeType":"VariableDeclaration","src":"1392:45:88","nodes":[],"constant":false,"mutability":"mutable","name":"ghost_owners","nameLocation":"1425:12:88","scope":56030,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":55689,"nodeType":"UserDefinedTypeName","pathNode":{"id":55688,"name":"EnumerableSet.AddressSet","nameLocations":["1392:13:88","1406:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":35099,"src":"1392:24:88"},"referencedDeclaration":35099,"src":"1392:24:88","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"private"},{"id":55693,"nodeType":"VariableDeclaration","src":"1443:47:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacet","nameLocation":"1471:19:88","scope":56030,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":55692,"nodeType":"UserDefinedTypeName","pathNode":{"id":55691,"name":"RegisterSubnetFacet","nameLocations":["1443:19:88"],"nodeType":"IdentifierPath","referencedDeclaration":51075,"src":"1443:19:88"},"referencedDeclaration":51075,"src":"1443:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"visibility":"private"},{"id":55696,"nodeType":"VariableDeclaration","src":"1496:45:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerGetterFacet","nameLocation":"1522:19:88","scope":56030,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"},"typeName":{"id":55695,"nodeType":"UserDefinedTypeName","pathNode":{"id":55694,"name":"SubnetGetterFacet","nameLocations":["1496:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":51313,"src":"1496:17:88"},"referencedDeclaration":51313,"src":"1496:17:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"visibility":"private"},{"id":55698,"nodeType":"VariableDeclaration","src":"1548:39:88","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetAddr","nameLocation":"1564:23:88","scope":56030,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55697,"name":"address","nodeType":"ElementaryTypeName","src":"1548:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":55700,"nodeType":"VariableDeclaration","src":"1593:37:88","nodes":[],"constant":false,"mutability":"mutable","name":"subnetGetterFacetAddr","nameLocation":"1609:21:88","scope":56030,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55699,"name":"address","nodeType":"ElementaryTypeName","src":"1593:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":55725,"nodeType":"FunctionDefinition","src":"1637:192:88","nodes":[],"body":{"id":55724,"nodeType":"Block","src":"1682:147:88","nodes":[],"statements":[{"expression":{"id":55713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55706,"name":"registerSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55693,"src":"1692:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55710,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55703,"src":"1742:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}],"id":55709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1734:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55708,"name":"address","nodeType":"ElementaryTypeName","src":"1734:7:88","typeDescriptions":{}}},"id":55711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1734:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55707,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51075,"src":"1714:19:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegisterSubnetFacet_$51075_$","typeString":"type(contract RegisterSubnetFacet)"}},"id":55712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1714:39:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"src":"1692:61:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"id":55714,"nodeType":"ExpressionStatement","src":"1692:61:88"},{"expression":{"id":55722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55715,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55696,"src":"1763:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55719,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55703,"src":"1811:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}],"id":55718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1803:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55717,"name":"address","nodeType":"ElementaryTypeName","src":"1803:7:88","typeDescriptions":{}}},"id":55720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1803:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55716,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51313,"src":"1785:17:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetGetterFacet_$51313_$","typeString":"type(contract SubnetGetterFacet)"}},"id":55721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1785:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"src":"1763:59:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"id":55723,"nodeType":"ExpressionStatement","src":"1763:59:88"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":55704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55703,"mutability":"mutable","name":"_registry","nameLocation":"1671:9:88","nodeType":"VariableDeclaration","scope":55725,"src":"1649:31:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":55702,"nodeType":"UserDefinedTypeName","pathNode":{"id":55701,"name":"SubnetRegistryDiamond","nameLocations":["1649:21:88"],"nodeType":"IdentifierPath","referencedDeclaration":36415,"src":"1649:21:88"},"referencedDeclaration":36415,"src":"1649:21:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36415","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"1648:33:88"},"returnParameters":{"id":55705,"nodeType":"ParameterList","parameters":[],"src":"1682:0:88"},"scope":56030,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55738,"nodeType":"FunctionDefinition","src":"1835:154:88","nodes":[],"body":{"id":55737,"nodeType":"Block","src":"1918:71:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55734,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55727,"src":"1976:5:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55732,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55696,"src":"1935:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"id":55733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1955:20:88","memberName":"latestSubnetDeployed","nodeType":"MemberAccess","referencedDeclaration":51131,"src":"1935:40:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_address_$","typeString":"function (address) view external returns (address)"}},"id":55735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1935:47:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55731,"id":55736,"nodeType":"Return","src":"1928:54:88"}]},"functionSelector":"ce75761f","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetDeployedBy","nameLocation":"1844:19:88","parameters":{"id":55728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55727,"mutability":"mutable","name":"owner","nameLocation":"1872:5:88","nodeType":"VariableDeclaration","scope":55738,"src":"1864:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55726,"name":"address","nodeType":"ElementaryTypeName","src":"1864:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1863:15:88"},"returnParameters":{"id":55731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55730,"mutability":"mutable","name":"subnet","nameLocation":"1910:6:88","nodeType":"VariableDeclaration","scope":55738,"src":"1902:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55729,"name":"address","nodeType":"ElementaryTypeName","src":"1902:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1901:16:88"},"scope":56030,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":55754,"nodeType":"FunctionDefinition","src":"1995:186:88","nodes":[],"body":{"id":55753,"nodeType":"Block","src":"2099:82:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55749,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55740,"src":"2161:5:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55750,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55742,"src":"2168:5:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":55747,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55696,"src":"2116:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"id":55748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2136:24:88","memberName":"getSubnetDeployedByNonce","nodeType":"MemberAccess","referencedDeclaration":51170,"src":"2116:44:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint64_$returns$_t_address_$","typeString":"function (address,uint64) view external returns (address)"}},"id":55751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2116:58:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55746,"id":55752,"nodeType":"Return","src":"2109:65:88"}]},"functionSelector":"58b1bc92","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetDeployedWithNonce","nameLocation":"2004:26:88","parameters":{"id":55743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55740,"mutability":"mutable","name":"owner","nameLocation":"2039:5:88","nodeType":"VariableDeclaration","scope":55754,"src":"2031:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55739,"name":"address","nodeType":"ElementaryTypeName","src":"2031:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55742,"mutability":"mutable","name":"nonce","nameLocation":"2053:5:88","nodeType":"VariableDeclaration","scope":55754,"src":"2046:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55741,"name":"uint64","nodeType":"ElementaryTypeName","src":"2046:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2030:29:88"},"returnParameters":{"id":55746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55745,"mutability":"mutable","name":"subnet","nameLocation":"2091:6:88","nodeType":"VariableDeclaration","scope":55754,"src":"2083:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55744,"name":"address","nodeType":"ElementaryTypeName","src":"2083:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2082:16:88"},"scope":56030,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":55767,"nodeType":"FunctionDefinition","src":"2187:143:88","nodes":[],"body":{"id":55766,"nodeType":"Block","src":"2264:66:88","nodes":[],"statements":[{"expression":{"arguments":[{"id":55763,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55756,"src":"2318:4:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55761,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55696,"src":"2281:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"id":55762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2301:16:88","memberName":"getUserLastNonce","nodeType":"MemberAccess","referencedDeclaration":51194,"src":"2281:36:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint64_$","typeString":"function (address) view external returns (uint64)"}},"id":55764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2281:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":55760,"id":55765,"nodeType":"Return","src":"2274:49:88"}]},"functionSelector":"030f6051","implemented":true,"kind":"function","modifiers":[],"name":"getUserLastNonce","nameLocation":"2196:16:88","parameters":{"id":55757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55756,"mutability":"mutable","name":"user","nameLocation":"2221:4:88","nodeType":"VariableDeclaration","scope":55767,"src":"2213:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55755,"name":"address","nodeType":"ElementaryTypeName","src":"2213:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2212:14:88"},"returnParameters":{"id":55760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55759,"mutability":"mutable","name":"nonce","nameLocation":"2257:5:88","nodeType":"VariableDeclaration","scope":55767,"src":"2250:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55758,"name":"uint64","nodeType":"ElementaryTypeName","src":"2250:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2249:14:88"},"scope":56030,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":55805,"nodeType":"FunctionDefinition","src":"2401:297:88","nodes":[],"body":{"id":55804,"nodeType":"Block","src":"2484:214:88","nodes":[],"statements":[{"assignments":[55776],"declarations":[{"constant":false,"id":55776,"mutability":"mutable","name":"lenght","nameLocation":"2502:6:88","nodeType":"VariableDeclaration","scope":55804,"src":"2494:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55775,"name":"uint256","nodeType":"ElementaryTypeName","src":"2494:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55780,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55777,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"2511:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":55778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2524:6:88","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":35195,"src":"2511:19:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35099_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":55779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2511:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2494:38:88"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":55789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55781,"name":"lenght","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55776,"src":"2546:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2556:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2546:11:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55784,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55770,"src":"2561:4:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"34","id":55785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2568:1:88","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2561:8:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2573:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2561:13:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2546:28:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":55802,"nodeType":"Block","src":"2624:68:88","statements":[{"expression":{"baseExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55794,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"2645:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":55795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2658:6:88","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35252,"src":"2645:19:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35099_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":55796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2645:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55800,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55797,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55770,"src":"2667:4:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":55798,"name":"lenght","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55776,"src":"2674:6:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2667:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2645:36:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55774,"id":55801,"nodeType":"Return","src":"2638:43:88"}]},"id":55803,"nodeType":"IfStatement","src":"2542:150:88","trueBody":{"id":55793,"nodeType":"Block","src":"2576:42:88","statements":[{"expression":{"expression":{"id":55790,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2597:3:88","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2601:6:88","memberName":"sender","nodeType":"MemberAccess","src":"2597:10:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55774,"id":55792,"nodeType":"Return","src":"2590:17:88"}]}}]},"documentation":{"id":55768,"nodeType":"StructuredDocumentation","src":"2336:60:88","text":"getRandomOldAddressOrNewOne returns a new random address"},"implemented":true,"kind":"function","modifiers":[],"name":"getRandomOldAddressOrNewOne","nameLocation":"2410:27:88","parameters":{"id":55771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55770,"mutability":"mutable","name":"seed","nameLocation":"2446:4:88","nodeType":"VariableDeclaration","scope":55805,"src":"2438:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55769,"name":"uint256","nodeType":"ElementaryTypeName","src":"2438:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2437:14:88"},"returnParameters":{"id":55774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55773,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55805,"src":"2475:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55772,"name":"address","nodeType":"ElementaryTypeName","src":"2475:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2474:9:88"},"scope":56030,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":55816,"nodeType":"FunctionDefinition","src":"2704:107:88","nodes":[],"body":{"id":55815,"nodeType":"Block","src":"2766:45:88","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55811,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"2783:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":55812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2796:6:88","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35252,"src":"2783:19:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35099_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":55813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2783:21:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":55810,"id":55814,"nodeType":"Return","src":"2776:28:88"}]},"functionSelector":"a0e67e2b","implemented":true,"kind":"function","modifiers":[],"name":"getOwners","nameLocation":"2713:9:88","parameters":{"id":55806,"nodeType":"ParameterList","parameters":[],"src":"2722:2:88"},"returnParameters":{"id":55810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55809,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55816,"src":"2748:16:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55807,"name":"address","nodeType":"ElementaryTypeName","src":"2748:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55808,"nodeType":"ArrayTypeName","src":"2748:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2747:18:88"},"scope":56030,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":55826,"nodeType":"FunctionDefinition","src":"2817:110:88","nodes":[],"body":{"id":55825,"nodeType":"Block","src":"2871:56:88","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55821,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55696,"src":"2888:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"id":55822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2908:10:88","memberName":"getGateway","nodeType":"MemberAccess","referencedDeclaration":51204,"src":"2888:30:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":55823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2888:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55820,"id":55824,"nodeType":"Return","src":"2881:39:88"}]},"functionSelector":"42bf3cc1","implemented":true,"kind":"function","modifiers":[],"name":"getGateway","nameLocation":"2826:10:88","parameters":{"id":55817,"nodeType":"ParameterList","parameters":[],"src":"2836:2:88"},"returnParameters":{"id":55820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55819,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55826,"src":"2862:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55818,"name":"address","nodeType":"ElementaryTypeName","src":"2862:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2861:9:88"},"scope":56030,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":56029,"nodeType":"FunctionDefinition","src":"2933:2422:88","nodes":[],"body":{"id":56028,"nodeType":"Block","src":"3265:2090:88","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":55853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55847,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55828,"src":"3279:14:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":55848,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55669,"src":"3296:27:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3279:44:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55850,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55828,"src":"3327:14:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3345:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3327:19:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3279:67:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55859,"nodeType":"IfStatement","src":"3275:142:88","trueBody":{"id":55858,"nodeType":"Block","src":"3348:69:88","statements":[{"expression":{"id":55856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55854,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55828,"src":"3362:14:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55855,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55669,"src":"3379:27:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3362:44:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55857,"nodeType":"ExpressionStatement","src":"3362:44:88"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":55866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55860,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55832,"src":"3430:20:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":55861,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55666,"src":"3453:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3430:48:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55863,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55832,"src":"3482:20:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3506:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3482:25:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3430:77:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55872,"nodeType":"IfStatement","src":"3426:156:88","trueBody":{"id":55871,"nodeType":"Block","src":"3509:73:88","statements":[{"expression":{"id":55869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55867,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55832,"src":"3523:20:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55868,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55666,"src":"3546:25:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3523:48:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":55870,"nodeType":"ExpressionStatement","src":"3523:48:88"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":55879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":55875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55873,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55836,"src":"3595:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3531","id":55874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3617:2:88","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"3595:24:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":55878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55876,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55836,"src":"3623:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":55877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3645:3:88","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"3623:25:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3595:53:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55885,"nodeType":"IfStatement","src":"3591:133:88","trueBody":{"id":55884,"nodeType":"Block","src":"3650:74:88","statements":[{"expression":{"id":55882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55880,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55836,"src":"3664:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55881,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55672,"src":"3686:27:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3664:49:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":55883,"nodeType":"ExpressionStatement","src":"3664:49:88"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":55888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55886,"name":"_powerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55842,"src":"3737:11:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":55887,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"3751:19:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"3737:33:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55894,"nodeType":"IfStatement","src":"3733:97:88","trueBody":{"id":55893,"nodeType":"Block","src":"3772:58:88","statements":[{"expression":{"id":55891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55889,"name":"_powerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55842,"src":"3786:11:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55890,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55675,"src":"3800:19:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"3786:33:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":55892,"nodeType":"ExpressionStatement","src":"3786:33:88"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":55901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55895,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"3843:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":55896,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55681,"src":"3860:22:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3843:39:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":55900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55898,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"3886:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3904:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3886:19:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3843:62:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55907,"nodeType":"IfStatement","src":"3839:132:88","trueBody":{"id":55906,"nodeType":"Block","src":"3907:64:88","statements":[{"expression":{"id":55904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55902,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"3921:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55903,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55681,"src":"3938:22:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3921:39:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":55905,"nodeType":"ExpressionStatement","src":"3921:39:88"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":55910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55908,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55840,"src":"3984:9:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"35","id":55909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3996:1:88","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"3984:13:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55916,"nodeType":"IfStatement","src":"3980:57:88","trueBody":{"id":55915,"nodeType":"Block","src":"3999:38:88","statements":[{"expression":{"id":55913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55911,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55840,"src":"4013:9:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":55912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4025:1:88","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4013:13:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":55914,"nodeType":"ExpressionStatement","src":"4013:13:88"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":55923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55917,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55838,"src":"4050:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":55918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4068:7:88","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"src":"4050:25:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55920,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55838,"src":"4079:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4098:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4079:20:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4050:49:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55929,"nodeType":"IfStatement","src":"4046:111:88","trueBody":{"id":55928,"nodeType":"Block","src":"4101:56:88","statements":[{"expression":{"id":55926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55924,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55838,"src":"4115:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55925,"name":"CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55687,"src":"4133:13:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4115:31:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55927,"nodeType":"ExpressionStatement","src":"4115:31:88"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":55936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":55932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55930,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55834,"src":"4170:22:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":55931,"name":"DEFAULT_ACTIVE_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55684,"src":"4195:25:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4170:50:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":55935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55933,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55834,"src":"4224:22:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4250:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4224:27:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4170:81:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55942,"nodeType":"IfStatement","src":"4166:162:88","trueBody":{"id":55941,"nodeType":"Block","src":"4253:75:88","statements":[{"expression":{"id":55939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55937,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55834,"src":"4267:22:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55938,"name":"DEFAULT_ACTIVE_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55684,"src":"4292:25:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4267:50:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":55940,"nodeType":"ExpressionStatement","src":"4267:50:88"}]}},{"assignments":[55947],"declarations":[{"constant":false,"id":55947,"mutability":"mutable","name":"path","nameLocation":"4355:4:88","nodeType":"VariableDeclaration","scope":56028,"src":"4338:21:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":55945,"name":"address","nodeType":"ElementaryTypeName","src":"4338:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55946,"nodeType":"ArrayTypeName","src":"4338:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":55953,"initialValue":{"arguments":[{"id":55951,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55840,"src":"4376:9:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":55950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4362:13:88","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":55948,"name":"address","nodeType":"ElementaryTypeName","src":"4366:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55949,"nodeType":"ArrayTypeName","src":"4366:9:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":55952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4362:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4338:48:88"},{"body":{"id":55975,"nodeType":"Block","src":"4432:54:88","statements":[{"expression":{"id":55973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55963,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"4446:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":55965,"indexExpression":{"id":55964,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55955,"src":"4451:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4446:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":55970,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55955,"src":"4472:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4464:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":55968,"name":"uint160","nodeType":"ElementaryTypeName","src":"4464:7:88","typeDescriptions":{}}},"id":55971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4464:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":55967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4456:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55966,"name":"address","nodeType":"ElementaryTypeName","src":"4456:7:88","typeDescriptions":{}}},"id":55972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4456:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4446:29:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55974,"nodeType":"ExpressionStatement","src":"4446:29:88"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55957,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55955,"src":"4412:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":55958,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55840,"src":"4416:9:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4412:13:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55976,"initializationExpression":{"assignments":[55955],"declarations":[{"constant":false,"id":55955,"mutability":"mutable","name":"i","nameLocation":"4409:1:88","nodeType":"VariableDeclaration","scope":55976,"src":"4401:9:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55954,"name":"uint256","nodeType":"ElementaryTypeName","src":"4401:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55956,"nodeType":"VariableDeclarationStatement","src":"4401:9:88"},"loopExpression":{"expression":{"id":55961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4427:3:88","subExpression":{"id":55960,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55955,"src":"4429:1:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55962,"nodeType":"ExpressionStatement","src":"4427:3:88"},"nodeType":"ForStatement","src":"4396:90:88"},{"assignments":[55981],"declarations":[{"constant":false,"id":55981,"mutability":"mutable","name":"params","nameLocation":"4540:6:88","nodeType":"VariableDeclaration","scope":56028,"src":"4496:50:88","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":55980,"nodeType":"UserDefinedTypeName","pathNode":{"id":55979,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["4496:18:88","4515:17:88"],"nodeType":"IdentifierPath","referencedDeclaration":35829,"src":"4496:36:88"},"referencedDeclaration":35829,"src":"4496:36:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":56003,"initialValue":{"arguments":[{"arguments":[{"id":55985,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55678,"src":"4626:15:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":55986,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55947,"src":"4650:4:88","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":55984,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48557,"src":"4610:8:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$48557_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":55987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4620:4:88","4643:5:88"],"names":["root","route"],"nodeType":"FunctionCall","src":"4610:46:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55988,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55696,"src":"4686:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$51313","typeString":"contract SubnetGetterFacet"}},"id":55989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4706:10:88","memberName":"getGateway","nodeType":"MemberAccess","referencedDeclaration":51204,"src":"4686:30:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":55990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4686:32:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":55991,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36918,"src":"4743:13:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$36918_$","typeString":"type(enum ConsensusType)"}},"id":55992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4757:10:88","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":36917,"src":"4743:24:88","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"}},{"id":55993,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55828,"src":"4806:14:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55994,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55830,"src":"4849:14:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":55995,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55832,"src":"4898:20:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":55996,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55836,"src":"4952:19:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":55997,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55834,"src":"5008:22:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":55998,"name":"_powerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55842,"src":"5056:11:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"expression":{"id":55999,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"5097:14:88","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$48648_$","typeString":"type(enum PermissionMode)"}},"id":56000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5112:10:88","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":48645,"src":"5097:25:88","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"}},{"id":56001,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55838,"src":"5152:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$48557_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$36918","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_enum$_PermissionMode_$48648","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":55982,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36177,"src":"4549:18:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36177_$","typeString":"type(contract SubnetActorDiamond)"}},"id":55983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4568:17:88","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":35829,"src":"4549:36:88","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$35829_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":56002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4600:8:88","4670:14:88","4732:9:88","4781:23:88","4834:13:88","4877:19:88","4932:18:88","4985:21:88","5044:10:88","5081:14:88","5136:14:88"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee"],"nodeType":"FunctionCall","src":"4549:629:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"4496:682:88"},{"assignments":[56005],"declarations":[{"constant":false,"id":56005,"mutability":"mutable","name":"owner","nameLocation":"5197:5:88","nodeType":"VariableDeclaration","scope":56028,"src":"5189:13:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56004,"name":"address","nodeType":"ElementaryTypeName","src":"5189:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56009,"initialValue":{"arguments":[{"id":56007,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55844,"src":"5233:4:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56006,"name":"getRandomOldAddressOrNewOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55805,"src":"5205:27:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":56008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5205:33:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5189:49:88"},{"expression":{"arguments":[{"id":56013,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56005,"src":"5257:5:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":56010,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5248:2:88","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5251:5:88","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"5248:8:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":56014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5248:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56015,"nodeType":"ExpressionStatement","src":"5248:15:88"},{"expression":{"arguments":[{"id":56019,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55981,"src":"5308:6:88","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$35829_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"expression":{"id":56016,"name":"registerSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55693,"src":"5273:19:88","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$51075","typeString":"contract RegisterSubnetFacet"}},"id":56018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5293:14:88","memberName":"newSubnetActor","nodeType":"MemberAccess","referencedDeclaration":51074,"src":"5273:34:88","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ConstructorParams_$35829_memory_ptr_$returns$_t_address_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) external returns (address)"}},"id":56020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5273:42:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56021,"nodeType":"ExpressionStatement","src":"5273:42:88"},{"expression":{"arguments":[{"id":56025,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56005,"src":"5342:5:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":56022,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55690,"src":"5325:12:88","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35099_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":56024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5338:3:88","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35126,"src":"5325:16:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35099_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35099_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":56026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5325:23:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56027,"nodeType":"ExpressionStatement","src":"5325:23:88"}]},"functionSelector":"64675ce8","implemented":true,"kind":"function","modifiers":[],"name":"deploySubnetActorFromRegistry","nameLocation":"2942:29:88","parameters":{"id":55845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55828,"mutability":"mutable","name":"_minCollateral","nameLocation":"2989:14:88","nodeType":"VariableDeclaration","scope":56029,"src":"2981:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55827,"name":"uint256","nodeType":"ElementaryTypeName","src":"2981:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55830,"mutability":"mutable","name":"_minValidators","nameLocation":"3020:14:88","nodeType":"VariableDeclaration","scope":56029,"src":"3013:21:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55829,"name":"uint64","nodeType":"ElementaryTypeName","src":"3013:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":55832,"mutability":"mutable","name":"_bottomUpCheckPeriod","nameLocation":"3051:20:88","nodeType":"VariableDeclaration","scope":56029,"src":"3044:27:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55831,"name":"uint64","nodeType":"ElementaryTypeName","src":"3044:6:88","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":55834,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"3088:22:88","nodeType":"VariableDeclaration","scope":56029,"src":"3081:29:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":55833,"name":"uint16","nodeType":"ElementaryTypeName","src":"3081:6:88","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":55836,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"3126:19:88","nodeType":"VariableDeclaration","scope":56029,"src":"3120:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55835,"name":"uint8","nodeType":"ElementaryTypeName","src":"3120:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55838,"mutability":"mutable","name":"_minCrossMsgFee","nameLocation":"3163:15:88","nodeType":"VariableDeclaration","scope":56029,"src":"3155:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55837,"name":"uint256","nodeType":"ElementaryTypeName","src":"3155:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55840,"mutability":"mutable","name":"_pathSize","nameLocation":"3194:9:88","nodeType":"VariableDeclaration","scope":56029,"src":"3188:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55839,"name":"uint8","nodeType":"ElementaryTypeName","src":"3188:5:88","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":55842,"mutability":"mutable","name":"_powerScale","nameLocation":"3218:11:88","nodeType":"VariableDeclaration","scope":56029,"src":"3213:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":55841,"name":"int8","nodeType":"ElementaryTypeName","src":"3213:4:88","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":55844,"mutability":"mutable","name":"seed","nameLocation":"3247:4:88","nodeType":"VariableDeclaration","scope":56029,"src":"3239:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55843,"name":"uint256","nodeType":"ElementaryTypeName","src":"3239:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2971:286:88"},"returnParameters":{"id":55846,"nodeType":"ParameterList","parameters":[],"src":"3265:0:88"},"scope":56030,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":55648,"name":"CommonBase","nameLocations":["773:10:88"],"nodeType":"IdentifierPath","referencedDeclaration":3777,"src":"773:10:88"},"id":55649,"nodeType":"InheritanceSpecifier","src":"773:10:88"},{"baseName":{"id":55650,"name":"StdCheats","nameLocations":["785:9:88"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"785:9:88"},"id":55651,"nodeType":"InheritanceSpecifier","src":"785:9:88"},{"baseName":{"id":55652,"name":"StdUtils","nameLocations":["796:8:88"],"nodeType":"IdentifierPath","referencedDeclaration":12691,"src":"796:8:88"},"id":55653,"nodeType":"InheritanceSpecifier","src":"796:8:88"}],"canonicalName":"SubnetRegistryHandler","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56030,12691,8180,7501,3777],"name":"SubnetRegistryHandler","nameLocation":"748:21:88","scope":56031,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":88} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_registry","type":"address","internalType":"contract SubnetRegistryDiamond"}],"stateMutability":"nonpayable"},{"type":"function","name":"deploySubnetActorFromRegistry","inputs":[{"name":"_minCollateral","type":"uint256","internalType":"uint256"},{"name":"_minValidators","type":"uint64","internalType":"uint64"},{"name":"_bottomUpCheckPeriod","type":"uint64","internalType":"uint64"},{"name":"_activeValidatorsLimit","type":"uint16","internalType":"uint16"},{"name":"_majorityPercentage","type":"uint8","internalType":"uint8"},{"name":"_minCrossMsgFee","type":"uint256","internalType":"uint256"},{"name":"_pathSize","type":"uint8","internalType":"uint8"},{"name":"_powerScale","type":"int8","internalType":"int8"},{"name":"seed","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getGateway","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getOwners","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getSubnetDeployedBy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubnetDeployedWithNonce","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"nonce","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"subnet","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getUserLastNonce","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"}],"bytecode":{"object":"0x60803461007a57601f610c0a38819003918201601f19168301916001600160401b0383118484101761007f5780849260209460405283398101031261007a57516001600160a01b0381169081900361007a5760018060a01b0319818160115416176011556012541617601255604051610b7490816100968239f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b600090813560e01c908163030f6051146108615750806342bf3cc11461080f57806358b1bc921461079557806364675ce8146101c0578063a0e67e2b146101035763ce75761f1461006357600080fd5b346101005760203660031901126101005761007c610916565b601254604051631163dca560e01b81526001600160a01b03928316600482015291906020908390602490829085165afa9182156100f557602093926100c6575b5060405191168152f35b6100e7919250833d81116100ee575b6100df8183610978565b810190610999565b90386100bc565b503d6100d5565b6040513d85823e3d90fd5b80fd5b50346101005780600319360112610100576040518091600f549081835260208093018092600f83527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80290835b8181106101ac5750505084610165910385610978565b60405193838594850191818652518092526040850193925b82811061018c57505050500390f35b83516001600160a01b03168552869550938101939281019260010161017d565b82548452928601926001928301920161014f565b503461010057610120366003190112610100576101db610931565b906001600160401b0360443516604435036101005761ffff60643516606435036101005760ff60843516608435036101005760ff60c4351660c435036101005760e435810b60e43503610100576004358260443560643560843560a4359260c4359760e43595670de0b6b3a764000090818911801561078d575b610784575b600a6001600160401b0360443516118015610771575b610768575b603360ff60843516108015610759575b610750575b601260e4358b0b13610747575b6001600160401b03166001811190811561073e575b50610735575b600560ff60c435161161072c575b85118015610724575b610717575b603261ffff60643516118015610709575b610700575b6102f060ff8a166109b8565b966102fe6040519889610978565b60ff8a16808952601f1990610312906109b8565b013660208a0137885b60ff8b1681106106c657506040519899506004976103388a610947565b607b8a526020808b01919091526012546040516342bf3cc160e01b8152998a9182906001600160a01b03165afa9788156106bb578a9861069a575b5089602060405161038381610947565b82815201526040519761039589610947565b8a89528a60208a0152604051998a6101808101106001600160401b036101808d011117610686576101808b016040908152908b526001600160a01b0390911660208b015289018a905260608901526001600160401b0390811660808901521660a087015260ff1660c086015261ffff1660e0850152610100840152830b610120830152610140820183905261016082015261043261010435610a82565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156106825760405163ca669fa760e01b81526001600160a01b0382166004820152838160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561067757610648575b5060018060a01b036011541660405192637be005d560e01b845260206004850152602081516101a060248701526001600160401b038151166101c487015201519060406101e48601526102048501825180915260206102248701930190875b8181106106295750505060208101516001600160a01b0316604486015260408101516001811015610615576064860152606081015160848601526001600160401b0360808201511660a48601526001600160401b0360a08201511660c486015260ff60c08201511660e486015261ffff60e082015116610104860152610100810151610124860152610120810151860b610144860152610140810151600381101561061557610164860152610160015180516002811015610615576101848601526020908101516001600160a01b03166101a486015291849182900390829087905af19182156100f5576105f2926105f6575b506001600160a01b03166109f9565b5080f35b61060e9060203d6020116100ee576100df8183610978565b50386105e3565b634e487b7160e01b87526021600452602487fd5b82516001600160a01b03168552602094850194909201916001016104f0565b6001600160401b038194929411610663576040529138610491565b634e487b7160e01b82526041600452602482fd5b6040513d86823e3d90fd5b8280fd5b634e487b7160e01b8c52604160045260248cfd5b6106b491985060203d6020116100ee576100df8183610978565b9638610373565b6040513d8c823e3d90fd5b6001600160a01b0381166106da828b6109cf565b5260001981146106ec5760010161031b565b634e487b7160e01b8a52601160045260248afd5b603293506102e4565b5061ffff60643516156102df565b6402540be40094506102ce565b5084156102c9565b600199506102c0565b600191506102b2565b905015386102ac565b60129750610297565b6046945061028a565b50606460ff6084351611610285565b600a9350610275565b506001600160401b036044351615610270565b9750809761025a565b508815610255565b5034610100576040366003190112610100576107af610916565b604460206107bb610931565b601254604051639836b75f60e01b81526001600160a01b0395861660048201526001600160401b0390921660248301529093928491829085165afa9182156100f557602093926100c6575060405191168152f35b50346101005780600319360112610100576012546040516342bf3cc160e01b8152906001600160a01b03906020908390600490829085165afa9182156100f557602093926100c6575060405191168152f35b9050346108fe5760209182600319360112610100578282602481610883610916565b60125463030f605160e01b83526001600160a01b039182166004840152165afa9182156109095781926108c4575b50506001600160401b0360405191168152f35b9091508281813d8311610902575b6108dc8183610978565b810103126108fe5751906001600160401b0382168203610100575038806108b1565b5080fd5b503d6108d2565b50604051903d90823e3d90fd5b600435906001600160a01b038216820361092c57565b600080fd5b602435906001600160401b038216820361092c57565b604081019081106001600160401b0382111761096257604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761096257604052565b9081602091031261092c57516001600160a01b038116810361092c5790565b6001600160401b0381116109625760051b60200190565b80518210156109e35760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600081815260106020526040812054610a7d57600f5468010000000000000000811015610663576001810180600f55811015610a695790826040927f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020155600f5492815260106020522055600190565b634e487b7160e01b82526032600452602482fd5b905090565b600f548015808015610b33575b15610a9b575050503390565b6040519081838152826020809201600f6000527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8029260005b878110610b1c575050610ae892500383610978565b610b06576001600160a01b0392610b01929006906109cf565b511690565b634e487b7160e01b600052601260045260246000fd5b845483526001948501948794509282019201610ad3565b506003831615610a8f56fea2646970667358221220e68569e636295e15b480657ffe238ce8d2b879bce7934a616c8d09bf1b3c3a1164736f6c63430008130033","sourceMap":"814:4673:98:-:0;;;;;;;;;;;;;-1:-1:-1;;814:4673:98;;;;-1:-1:-1;;;;;814:4673:98;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;;;;;;;;;;;;1767:61;814:4673;;;1767:61;814:4673;1838:59;814:4673;;;1838:59;814:4673;;;;;;;;;;;-1:-1:-1;814:4673:98;;;;;;-1:-1:-1;814:4673:98;;;;;-1:-1:-1;814:4673:98","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001357600080fd5b600090813560e01c908163030f6051146108615750806342bf3cc11461080f57806358b1bc921461079557806364675ce8146101c0578063a0e67e2b146101035763ce75761f1461006357600080fd5b346101005760203660031901126101005761007c610916565b601254604051631163dca560e01b81526001600160a01b03928316600482015291906020908390602490829085165afa9182156100f557602093926100c6575b5060405191168152f35b6100e7919250833d81116100ee575b6100df8183610978565b810190610999565b90386100bc565b503d6100d5565b6040513d85823e3d90fd5b80fd5b50346101005780600319360112610100576040518091600f549081835260208093018092600f83527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80290835b8181106101ac5750505084610165910385610978565b60405193838594850191818652518092526040850193925b82811061018c57505050500390f35b83516001600160a01b03168552869550938101939281019260010161017d565b82548452928601926001928301920161014f565b503461010057610120366003190112610100576101db610931565b906001600160401b0360443516604435036101005761ffff60643516606435036101005760ff60843516608435036101005760ff60c4351660c435036101005760e435810b60e43503610100576004358260443560643560843560a4359260c4359760e43595670de0b6b3a764000090818911801561078d575b610784575b600a6001600160401b0360443516118015610771575b610768575b603360ff60843516108015610759575b610750575b601260e4358b0b13610747575b6001600160401b03166001811190811561073e575b50610735575b600560ff60c435161161072c575b85118015610724575b610717575b603261ffff60643516118015610709575b610700575b6102f060ff8a166109b8565b966102fe6040519889610978565b60ff8a16808952601f1990610312906109b8565b013660208a0137885b60ff8b1681106106c657506040519899506004976103388a610947565b607b8a526020808b01919091526012546040516342bf3cc160e01b8152998a9182906001600160a01b03165afa9788156106bb578a9861069a575b5089602060405161038381610947565b82815201526040519761039589610947565b8a89528a60208a0152604051998a6101808101106001600160401b036101808d011117610686576101808b016040908152908b526001600160a01b0390911660208b015289018a905260608901526001600160401b0390811660808901521660a087015260ff1660c086015261ffff1660e0850152610100840152830b610120830152610140820183905261016082015261043261010435610a82565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156106825760405163ca669fa760e01b81526001600160a01b0382166004820152838160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561067757610648575b5060018060a01b036011541660405192637be005d560e01b845260206004850152602081516101a060248701526001600160401b038151166101c487015201519060406101e48601526102048501825180915260206102248701930190875b8181106106295750505060208101516001600160a01b0316604486015260408101516001811015610615576064860152606081015160848601526001600160401b0360808201511660a48601526001600160401b0360a08201511660c486015260ff60c08201511660e486015261ffff60e082015116610104860152610100810151610124860152610120810151860b610144860152610140810151600381101561061557610164860152610160015180516002811015610615576101848601526020908101516001600160a01b03166101a486015291849182900390829087905af19182156100f5576105f2926105f6575b506001600160a01b03166109f9565b5080f35b61060e9060203d6020116100ee576100df8183610978565b50386105e3565b634e487b7160e01b87526021600452602487fd5b82516001600160a01b03168552602094850194909201916001016104f0565b6001600160401b038194929411610663576040529138610491565b634e487b7160e01b82526041600452602482fd5b6040513d86823e3d90fd5b8280fd5b634e487b7160e01b8c52604160045260248cfd5b6106b491985060203d6020116100ee576100df8183610978565b9638610373565b6040513d8c823e3d90fd5b6001600160a01b0381166106da828b6109cf565b5260001981146106ec5760010161031b565b634e487b7160e01b8a52601160045260248afd5b603293506102e4565b5061ffff60643516156102df565b6402540be40094506102ce565b5084156102c9565b600199506102c0565b600191506102b2565b905015386102ac565b60129750610297565b6046945061028a565b50606460ff6084351611610285565b600a9350610275565b506001600160401b036044351615610270565b9750809761025a565b508815610255565b5034610100576040366003190112610100576107af610916565b604460206107bb610931565b601254604051639836b75f60e01b81526001600160a01b0395861660048201526001600160401b0390921660248301529093928491829085165afa9182156100f557602093926100c6575060405191168152f35b50346101005780600319360112610100576012546040516342bf3cc160e01b8152906001600160a01b03906020908390600490829085165afa9182156100f557602093926100c6575060405191168152f35b9050346108fe5760209182600319360112610100578282602481610883610916565b60125463030f605160e01b83526001600160a01b039182166004840152165afa9182156109095781926108c4575b50506001600160401b0360405191168152f35b9091508281813d8311610902575b6108dc8183610978565b810103126108fe5751906001600160401b0382168203610100575038806108b1565b5080fd5b503d6108d2565b50604051903d90823e3d90fd5b600435906001600160a01b038216820361092c57565b600080fd5b602435906001600160401b038216820361092c57565b604081019081106001600160401b0382111761096257604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761096257604052565b9081602091031261092c57516001600160a01b038116810361092c5790565b6001600160401b0381116109625760051b60200190565b80518210156109e35760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600081815260106020526040812054610a7d57600f5468010000000000000000811015610663576001810180600f55811015610a695790826040927f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020155600f5492815260106020522055600190565b634e487b7160e01b82526032600452602482fd5b905090565b600f548015808015610b33575b15610a9b575050503390565b6040519081838152826020809201600f6000527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8029260005b878110610b1c575050610ae892500383610978565b610b06576001600160a01b0392610b01929006906109cf565b511690565b634e487b7160e01b600052601260045260246000fd5b845483526001948501948794509282019201610ad3565b506003831615610a8f56fea2646970667358221220e68569e636295e15b480657ffe238ce8d2b879bce7934a616c8d09bf1b3c3a1164736f6c63430008130033","sourceMap":"814:4673:98:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2963:32;814:4673;2963:32;;;814:4673;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;814:4673:98;;;;;;:::i;:::-;2010:19;814:4673;;;-1:-1:-1;;;2010:47:98;;-1:-1:-1;;;;;814:4673:98;;;;2010:47;;814:4673;;;;;;;;;;;;;2010:47;;;;;;;814:4673;2010:47;;;;814:4673;;;;;;;;;2010:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;814:4673;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2858:12;814:4673;;;;;;;;;;;2858:12;814:4673;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;-1:-1:-1;814:4673:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;814:4673:98;;;;;;:::i;:::-;;-1:-1:-1;;;;;814:4673:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1119:7;;3354:44;;;;:67;;;;814:4673;3350:142;;814:4673;1056:2;-1:-1:-1;;;;;814:4673:98;;;3505:48;:77;;;;814:4673;3501:156;;814:4673;3692:2;814:4673;;;;3670:24;:53;;;;814:4673;3666:133;;814:4673;1237:2;814:4673;;;;3812:33;3808:97;;814:4673;-1:-1:-1;;;;;814:4673:98;;3918:39;;:62;;;;;814:4673;3914:132;;;814:4673;4071:1;814:4673;;;;4059:13;4055:57;;814:4673;4125:25;;:49;;;;814:4673;4121:111;;814:4673;1404:2;814:4673;;;;4245:50;:81;;;;814:4673;4241:162;;814:4673;1404:2;814:4673;;;1404:2;:::i;:::-;814:4673;1404:2;814:4673;;1404:2;;;:::i;:::-;814:4673;;;1404:2;;;-1:-1:-1;;1404:2:98;;;;:::i;:::-;;814:4673;;1404:2;;;4476:9;4487:13;814:4673;;;4487:13;;;;-1:-1:-1;814:4673:98;;;;-1:-1:-1;814:4673:98;;1404:2;814:4673;1404:2;:::i;:::-;1287:3;;;814:4673;4685:46;;;1287:3;;;;1237:2;814:4673;;;-1:-1:-1;;;4761:32:98;;814:4673;;;;;-1:-1:-1;;;;;814:4673:98;4761:32;;;;;;;;;;;4471:90;814:4673;;;;;1404:2;;;:::i;:::-;814:4673;;;;;;;1404:2;;;;:::i;:::-;814:4673;;;4618:99:76;814:4673:98;4618:99:76;;1404:2:98;814:4673;;;;1287:3;814:4673;;;-1:-1:-1;;;;;1287:3:98;814:4673;;;;;;1287:3;814:4673;;;;;;1287:3;;;-1:-1:-1;;;;;814:4673:98;;;;4624:684;;1404:2;4624:684;;1287:3;;;814:4673;4624:684;;1287:3;-1:-1:-1;;;;;814:4673:98;;;;4624:684;;1287:3;814:4673;;4624:684;;1287:3;814:4673;;;4624:684;;1287:3;814:4673;;;4624:684;;1287:3;814:4673;4624:684;;1287:3;814:4673;;;4624:684;;1287:3;4624:684;;;1287:3;;;4624:684;;;1287:3;5335:33;814:4673;;5335:33;:::i;:::-;814:4673;5378:15;;;;814:4673;;-1:-1:-1;;;5378:15:98;;-1:-1:-1;;;;;814:4673:98;;;5378:15;;814:4673;5378:15;814:4673;;;5378:15;814:4673;5378:15;;;;;;;;4471:90;814:4673;;;;;;5403:19;1220:14:3;814:4673:98;;;;;;;5403:42;;814:4673;;5403:42;;1220:14:3;814:4673:98;1220:14:3;;;814:4673:98;1220:14:3;;;-1:-1:-1;;;;;1220:14:3;;814:4673:98;1220:14:3;;;814:4673:98;1220:14:3;;;814:4673:98;1220:14:3;;;;;;;814:4673:98;;;;;;;;;;;1220:14:3;;;;;;;;-1:-1:-1;;;814:4673:98;4624:684;;1220:14:3;-1:-1:-1;;;;;814:4673:98;;1220:14:3;;814:4673:98;;4624:684;;1220:14:3;814:4673:98;1287:3;;;;;814:4673;1220:14:3;;;814:4673:98;4624:684;;1220:14:3;814:4673:98;1220:14:3;;814:4673:98;-1:-1:-1;;;;;814:4673:98;4624:684;;1220:14:3;814:4673:98;;1220:14:3;;814:4673:98;-1:-1:-1;;;;;814:4673:98;4624:684;;1220:14:3;814:4673:98;;1220:14:3;;814:4673:98;;;4624:684;;1220:14:3;814:4673:98;;1220:14:3;;;814:4673:98;;4624:684;;1220:14:3;814:4673:98;;1220:14:3;;;814:4673:98;4624:684;;1220:14:3;;;;814:4673:98;;4624:684;;1220:14:3;814:4673:98;;1220:14:3;;;;4624:684:98;;;1220:14:3;814:4673:98;1287:3;;;;;1220:14:3;;;;4624:684:98;;1220:14:3;;;;;;;;;;;;;814:4673:98;1220:14:3;;;;-1:-1:-1;;;;;814:4673:98;1220:14:3;;;814:4673:98;;1220:14:3;;5403:42:98;;;;1220:14:3;;;;5403:42:98;;;;;;;8399:50:36;5403:42:98;;;1220:14:3;-1:-1:-1;;;;;;814:4673:98;8399:50:36;:::i;:::-;;814:4673:98;;5403:42;;;814:4673;5403:42;814:4673;5403:42;;;;;;;:::i;:::-;;;;;1220:14:3;-1:-1:-1;;;1287:3:98;;;814:4673;1287:3;814:4673;1404:2;1287:3;1220:14:3;;;-1:-1:-1;;;;;814:4673:98;;;;;;;;;;;;;1220:14:3;;;5378:15:98;-1:-1:-1;;;;;814:4673:98;;;;;;;;;5378:15;;;;814:4673;-1:-1:-1;;;814:4673:98;;;;;;1404:2;814:4673;5378:15;814:4673;;;;;;;;;5378:15;814:4673;;;;-1:-1:-1;;;814:4673:98;;;;;;1404:2;814:4673;4761:32;;;;;814:4673;4761:32;814:4673;4761:32;;;;;;;:::i;:::-;;;;;;814:4673;;;;;;;;;4502:3;-1:-1:-1;;;;;814:4673:98;;4521:29;814:4673;4521:29;;:::i;:::-;1404:2;-1:-1:-1;;1404:2:98;;;;814:4673;1404:2;4476:9;;1404:2;-1:-1:-1;;;1404:2:98;;;814:4673;1404:2;814:4673;1404:2;;4241:162;1404:2;;-1:-1:-1;4241:162:98;;4245:81;814:4673;;;;;4299:27;4245:81;;4121:111;1453:7;;-1:-1:-1;4121:111:98;;4125:49;4154:20;;;4125:49;;4055:57;814:4673;;-1:-1:-1;4055:57:98;;3914:132;814:4673;;-1:-1:-1;3914:132:98;;3918:62;3961:19;;;3918:62;;;3808:97;1237:2;;-1:-1:-1;3808:97:98;;3666:133;1185:2;;-1:-1:-1;3666:133:98;;3670:53;814:4673;;;;;;3698:25;3670:53;;3501:156;1056:2;;-1:-1:-1;3501:156:98;;3505:77;814:4673;-1:-1:-1;;;;;814:4673:98;;;3557:25;3505:77;;3350:142;3437:44;;;3350:142;;;3354:67;3402:19;;;3354:67;;814:4673;;;;;;;-1:-1:-1;;814:4673:98;;;;;;:::i;:::-;;;;;:::i;:::-;2191:19;814:4673;;;-1:-1:-1;;;2191:58:98;;-1:-1:-1;;;;;814:4673:98;;;;2191:58;;814:4673;-1:-1:-1;;;;;814:4673:98;;;;;;;;;;;;;;;;2191:58;;;;;;;814:4673;2191:58;;;;814:4673;;;;;;;;;;;;;;;;;;;;;2963:19;814:4673;;;-1:-1:-1;;;2963:32:98;;814:4673;-1:-1:-1;;;;;814:4673:98;2963:32;;814:4673;;;;;;;;2963:32;;;;;;;;;;;;814:4673;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2356:19;814:4673;-1:-1:-1;;;2356:42:98;;-1:-1:-1;;;;;814:4673:98;;;;2356:42;;814:4673;;2356:42;;;;;;;;;;;814:4673;;;-1:-1:-1;;;;;814:4673:98;;;;;;;2356:42;;;;;;;;;;;;;;;;;:::i;:::-;;;814:4673;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;;2356:42;;;;;814:4673;;;;2356:42;;;;;;814:4673;;;;;;;;;;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;;;:::o;:::-;1404:2;;;814:4673;;;;;;;;;;1404:2;;;814:4673;;;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;814:4673:98;;;;;;;:::o;1404:2::-;-1:-1:-1;;;;;1404:2:98;;;;;;;;;:::o;:::-;814:4673;;1404:2;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2215:404:36;-1:-1:-1;814:4673:98;;;4352:12:36;814:4673:98;;;;;;;;5455:12;814:4673;;;;;;;4352:12:36;814:4673:98;;;5455:12;814:4673;;;;;;;;;;;;;5455:12;814:4673;;;;4352:12:36;814:4673:98;;;;4352:12:36;2548:11;:::o;814:4673:98:-;-1:-1:-1;;;1404:2:98;;;;;;;;2294:319:36;2590:12;;;:::o;2476:297:98:-;2586:12;814:4673;2621:11;;:28;;;;;2476:297;2617:150;;;2672:10;;;;2665:17;:::o;2617:150::-;814:4673;;;;;;;;;;;;2586:12;-1:-1:-1;814:4673:98;;;-1:-1:-1;814:4673:98;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;814:4673:98;2720:36;;814:4673;;;2720:36;:::i;:::-;814:4673;;2713:43;:::o;814:4673::-;1404:2;;;-1:-1:-1;814:4673:98;;;;;-1:-1:-1;814:4673:98;;;;;;;;;;;;;-1:-1:-1;814:4673:98;;;;;;;2621:28;814:4673;;;;2636:13;2621:28;","linkReferences":{}},"methodIdentifiers":{"deploySubnetActorFromRegistry(uint256,uint64,uint64,uint16,uint8,uint256,uint8,int8,uint256)":"64675ce8","getGateway()":"42bf3cc1","getOwners()":"a0e67e2b","getSubnetDeployedBy(address)":"ce75761f","getSubnetDeployedWithNonce(address,uint64)":"58b1bc92","getUserLastNonce(address)":"030f6051"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract SubnetRegistryDiamond\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minCollateral\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_minValidators\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"_bottomUpCheckPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"_activeValidatorsLimit\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"_majorityPercentage\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_minCrossMsgFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_pathSize\",\"type\":\"uint8\"},{\"internalType\":\"int8\",\"name\":\"_powerScale\",\"type\":\"int8\"},{\"internalType\":\"uint256\",\"name\":\"seed\",\"type\":\"uint256\"}],\"name\":\"deploySubnetActorFromRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"getSubnetDeployedBy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getSubnetDeployedWithNonce\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"subnet\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getUserLastNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/invariants/handlers/SubnetRegistryHandler.sol\":\"SubnetRegistryHandler\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/SubnetActorDiamond.sol\":{\"keccak256\":\"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97\",\"dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL\"]},\"src/SubnetRegistryDiamond.sol\":{\"keccak256\":\"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0\",\"dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IDiamond.sol\":{\"keccak256\":\"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1\",\"dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn\"]},\"src/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643\",\"dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4\"]},\"src/interfaces/IDiamondLoupe.sol\":{\"keccak256\":\"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54\",\"dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9\"]},\"src/interfaces/IERC165.sol\":{\"keccak256\":\"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9\",\"dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibDiamond.sol\":{\"keccak256\":\"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6\",\"dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo\"]},\"src/lib/LibReentrancyGuard.sol\":{\"keccak256\":\"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514\",\"dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/LibSubnetRegistryStorage.sol\":{\"keccak256\":\"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b\",\"dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]},\"src/subnetregistry/RegisterSubnetFacet.sol\":{\"keccak256\":\"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f\",\"dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv\"]},\"src/subnetregistry/SubnetGetterFacet.sol\":{\"keccak256\":\"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4\",\"dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj\"]},\"test/invariants/handlers/SubnetRegistryHandler.sol\":{\"keccak256\":\"0x6f3e5a177e75795aa1d468726ae79b318b55921133130b349e6f89e79f8a3f54\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c26682d020158ee3ae549716ddfdbec3d4012e736a52596b36758cddc81e27cf\",\"dweb:/ipfs/QmRH1dhNCiyjxGMaHTEiu7obgbrHav54psdSwgufRTeCcP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract SubnetRegistryDiamond","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"_minCollateral","type":"uint256"},{"internalType":"uint64","name":"_minValidators","type":"uint64"},{"internalType":"uint64","name":"_bottomUpCheckPeriod","type":"uint64"},{"internalType":"uint16","name":"_activeValidatorsLimit","type":"uint16"},{"internalType":"uint8","name":"_majorityPercentage","type":"uint8"},{"internalType":"uint256","name":"_minCrossMsgFee","type":"uint256"},{"internalType":"uint8","name":"_pathSize","type":"uint8"},{"internalType":"int8","name":"_powerScale","type":"int8"},{"internalType":"uint256","name":"seed","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"deploySubnetActorFromRegistry"},{"inputs":[],"stateMutability":"view","type":"function","name":"getGateway","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"getSubnetDeployedBy","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function","name":"getSubnetDeployedWithNonce","outputs":[{"internalType":"address","name":"subnet","type":"address"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"getUserLastNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/invariants/handlers/SubnetRegistryHandler.sol":"SubnetRegistryHandler"},"libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/SubnetActorDiamond.sol":{"keccak256":"0xc839eaeb1cd136db781592b64bc50cf8802aa5728e0bd63378fa48f0ccfd651e","urls":["bzz-raw://2a8851a21a7efebd930c44913d23f441a1a77240536bcc6598e9b14fb7b71a97","dweb:/ipfs/QmagMBAqZqYWMMthQKsxWjJstiRBX7TqP7aaLK5d8k9CdL"],"license":"MIT OR Apache-2.0"},"src/SubnetRegistryDiamond.sol":{"keccak256":"0xa2cc971a1b6a504447bf339486f65f57d39fff56fedaab092f202215964f4202","urls":["bzz-raw://2ab836b52dfb32ddf531ef0158d12f51aaf4a4337d1b3b72598ebf4e80d28bf0","dweb:/ipfs/QmcsoYeugw8UE13qj3SDP2PmNQikp6EYtGZ6jtzAS4cCuq"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamond.sol":{"keccak256":"0x4458466caa842c9f6acc4a52ce32ae61ab705ec64a6a62626dadf7ef1da2c016","urls":["bzz-raw://b5b66a6dee491abf6aceaae603554781c3042c1b9d3f4c65f00a70f293ad07f1","dweb:/ipfs/QmPkArewER2FTp5fZPCG2K2EcRGWq3XhdGdUDhiQbYh1gn"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondCut.sol":{"keccak256":"0xfce76cbd9e6b2e1db8c16253b2a64640093226a521416fef04de75c8704b0c57","urls":["bzz-raw://5d8532895a516253dda46faa09cdbfbffac55f8d6d83e082bea1479445e73643","dweb:/ipfs/QmfBiFhj5YxBMbTJHiYwztBqtahwkQVhPtyfW8w4t1ZQU4"],"license":"MIT OR Apache-2.0"},"src/interfaces/IDiamondLoupe.sol":{"keccak256":"0xd42bb80ca04f4ab6273fcfa16cf657db10a07a4b8d306948456ca5c5c8689537","urls":["bzz-raw://f2f436fdbab957e336a22e36f7ffe7f40ccac8c231ff84dd5e984f42d65b2e54","dweb:/ipfs/QmZ1JXw6UwHxdchdtjFmWZS2qSfasWXUcvTxrHiEEYovj9"],"license":"MIT"},"src/interfaces/IERC165.sol":{"keccak256":"0xa969fe4ddf7106cfe2666a16bd24517e01cd9d178912ceaecf3c61b6fe111200","urls":["bzz-raw://05fcd131ca484f5bf4a7fbfd4c1b06dba3101bc4fad15f838dd17994a63fffe9","dweb:/ipfs/QmSpnUCuYkaUUcFJCd7kcEq6ZPS4evtEQ9V7FYo5aYYwPW"],"license":"MIT"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibDiamond.sol":{"keccak256":"0x4c098d2e50dbee6df459abcdde7fec02c9253bfc11be1af9e4032ae6b5270bfc","urls":["bzz-raw://f4d4f9ae8aa6532731e9871cb88a3e9582fbae32b068cd2a28def34b767c18a6","dweb:/ipfs/QmcQrRUSkiaJtsio3ZmgpxHH8GYNQL3ZwVCX71Vyb6SWTo"],"license":"MIT OR Apache-2.0"},"src/lib/LibReentrancyGuard.sol":{"keccak256":"0x1e5dc47d8e84c482ba263bbbdcd03f9beccb875cafc79bbe0c45565663cb7968","urls":["bzz-raw://4b85b43885889d815f324b427229badc45cef2cdc526ac89a0917c1c7d884514","dweb:/ipfs/QmYpa1DgAmBx1cXrZL2r6Sm98eNKfUxqAnsHhnG13eqbQ1"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetRegistryStorage.sol":{"keccak256":"0xeb9c29cfa48332bd37504ca03779ea034b1bff98a94d1d5caa2369b225b9f66c","urls":["bzz-raw://5d58f6b0dfb084c8cc56a2f53727cbf211cf207342333a01b174497fde7b351b","dweb:/ipfs/QmazvtUYdPF257NEMc4GRkZp94a6vEqbVPfHtkjExtPN5t"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/RegisterSubnetFacet.sol":{"keccak256":"0x5d856bc4f6bf020b8a4b2639e820e3739d837ff4e197e1b6eb31dbd6646a343d","urls":["bzz-raw://fe82d4d0a8e39df4abb02525c942a9ff301f93d28ce5e098dec09eaee4ae1d3f","dweb:/ipfs/QmSkA59WBWffnvu5hCDLa7RsWn2PivxEugpbn5utB2c2bv"],"license":"MIT OR Apache-2.0"},"src/subnetregistry/SubnetGetterFacet.sol":{"keccak256":"0x4d441d9535f131900ff15627343463c982e6cd9cb6b6669d79b398105168a118","urls":["bzz-raw://b22df542c3a42ae7cfe3e72e672c8f3eb3da5d195a1c7447b1808c152856cdf4","dweb:/ipfs/QmVRHMfHM6AmeWBbFMn8scRrjtZJ8wbxULNges8scRihmj"],"license":"MIT OR Apache-2.0"},"test/invariants/handlers/SubnetRegistryHandler.sol":{"keccak256":"0x6f3e5a177e75795aa1d468726ae79b318b55921133130b349e6f89e79f8a3f54","urls":["bzz-raw://c26682d020158ee3ae549716ddfdbec3d4012e736a52596b36758cddc81e27cf","dweb:/ipfs/QmRH1dhNCiyjxGMaHTEiu7obgbrHav54psdSwgufRTeCcP"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/invariants/handlers/SubnetRegistryHandler.sol","id":57919,"exportedSymbols":{"CommonBase":[3777],"ConsensusType":[37359],"EnumerableSet":[35815],"IMulticall3":[30545],"PermissionMode":[50165],"RegisterSubnetFacet":[52279],"StdCheats":[8180],"StdCheatsSafe":[7501],"StdStorage":[9220],"StdUtils":[12691],"SubnetActorDiamond":[36615],"SubnetGetterFacet":[52517],"SubnetID":[50077],"SubnetRegistryDiamond":[36853],"SubnetRegistryHandler":[57918],"SupplySourceHelper":[48398],"Vm":[14222],"VmSafe":[13782],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:5442:98","nodes":[{"id":57511,"nodeType":"PragmaDirective","src":"46:23:98","nodes":[],"literals":["solidity","0.8",".19"]},{"id":57512,"nodeType":"ImportDirective","src":"71:32:98","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"forge-std/StdUtils.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":12692,"symbolAliases":[],"unitAlias":""},{"id":57513,"nodeType":"ImportDirective","src":"104:33:98","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"forge-std/StdCheats.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":8181,"symbolAliases":[],"unitAlias":""},{"id":57515,"nodeType":"ImportDirective","src":"138:46:98","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"forge-std/Base.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":3793,"symbolAliases":[{"foreign":{"id":57514,"name":"CommonBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3777,"src":"146:10:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57517,"nodeType":"ImportDirective","src":"185:88:98","nodes":[],"absolutePath":"src/subnetregistry/RegisterSubnetFacet.sol","file":"../../../src/subnetregistry/RegisterSubnetFacet.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":52280,"symbolAliases":[{"foreign":{"id":57516,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52279,"src":"193:19:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57519,"nodeType":"ImportDirective","src":"274:84:98","nodes":[],"absolutePath":"src/subnetregistry/SubnetGetterFacet.sol","file":"../../../src/subnetregistry/SubnetGetterFacet.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":52518,"symbolAliases":[{"foreign":{"id":57518,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52517,"src":"282:17:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57521,"nodeType":"ImportDirective","src":"359:71:98","nodes":[],"absolutePath":"src/SubnetActorDiamond.sol","file":"../../../src/SubnetActorDiamond.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":36616,"symbolAliases":[{"foreign":{"id":57520,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"367:18:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57523,"nodeType":"ImportDirective","src":"431:77:98","nodes":[],"absolutePath":"src/SubnetRegistryDiamond.sol","file":"../../../src/SubnetRegistryDiamond.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":36854,"symbolAliases":[{"foreign":{"id":57522,"name":"SubnetRegistryDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36853,"src":"439:21:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57525,"nodeType":"ImportDirective","src":"509:67:98","nodes":[],"absolutePath":"src/enums/ConsensusType.sol","file":"../../../src/enums/ConsensusType.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":37360,"symbolAliases":[{"foreign":{"id":57524,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"517:13:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57528,"nodeType":"ImportDirective","src":"577:73:98","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../../src/structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":57526,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"585:8:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":57527,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"595:14:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57530,"nodeType":"ImportDirective","src":"651:75:98","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../../../src/lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":57529,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"659:18:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57532,"nodeType":"ImportDirective","src":"727:85:98","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol","file":"openzeppelin-contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":57919,"sourceUnit":35816,"symbolAliases":[{"foreign":{"id":57531,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35815,"src":"735:13:98","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":57918,"nodeType":"ContractDefinition","src":"814:4673:98","nodes":[{"id":57542,"nodeType":"UsingForDirective","src":"886:49:98","nodes":[],"global":false,"libraryName":{"id":57539,"name":"EnumerableSet","nameLocations":["892:13:98"],"nodeType":"IdentifierPath","referencedDeclaration":35815,"src":"892:13:98"},"typeName":{"id":57541,"nodeType":"UserDefinedTypeName","pathNode":{"id":57540,"name":"EnumerableSet.AddressSet","nameLocations":["910:13:98","924:10:98"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"910:24:98"},"referencedDeclaration":35528,"src":"910:24:98","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":57548,"nodeType":"VariableDeclaration","src":"941:65:98","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_IPC_GATEWAY_ADDR","nameLocation":"966:24:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57543,"name":"address","nodeType":"ElementaryTypeName","src":"941:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"31303234","id":57546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1001:4:98","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"1024"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}],"id":57545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"993:7:98","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57544,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:98","typeDescriptions":{}}},"id":57547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"993:13:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":57551,"nodeType":"VariableDeclaration","src":"1012:46:98","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_CHECKPOINT_PERIOD","nameLocation":"1028:25:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57549,"name":"uint64","nodeType":"ElementaryTypeName","src":"1012:6:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3130","id":57550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1056:2:98","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":57554,"nodeType":"VariableDeclaration","src":"1064:62:98","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATOR_STAKE","nameLocation":"1089:27:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57552,"name":"uint256","nodeType":"ElementaryTypeName","src":"1064:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":57553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1119:7:98","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"visibility":"private"},{"id":57557,"nodeType":"VariableDeclaration","src":"1132:55:98","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MAJORITY_PERCENTAGE","nameLocation":"1155:27:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57555,"name":"uint8","nodeType":"ElementaryTypeName","src":"1132:5:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3730","id":57556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1185:2:98","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"visibility":"private"},{"id":57560,"nodeType":"VariableDeclaration","src":"1193:46:98","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_POWER_SCALE","nameLocation":"1215:19:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":57558,"name":"int8","nodeType":"ElementaryTypeName","src":"1193:4:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"value":{"hexValue":"3138","id":57559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1237:2:98","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"private"},{"id":57563,"nodeType":"VariableDeclaration","src":"1245:45:98","nodes":[],"constant":true,"mutability":"constant","name":"ROOTNET_CHAINID","nameLocation":"1269:15:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57561,"name":"uint64","nodeType":"ElementaryTypeName","src":"1245:6:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"313233","id":57562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1287:3:98","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"visibility":"private"},{"id":57566,"nodeType":"VariableDeclaration","src":"1296:50:98","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_MIN_VALIDATORS","nameLocation":"1320:22:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57564,"name":"uint64","nodeType":"ElementaryTypeName","src":"1296:6:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31","id":57565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1345:1:98","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":57569,"nodeType":"VariableDeclaration","src":"1352:54:98","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ACTIVE_VALIDATORS","nameLocation":"1376:25:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":57567,"name":"uint16","nodeType":"ElementaryTypeName","src":"1352:6:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3530","id":57568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1404:2:98","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"visibility":"private"},{"id":57572,"nodeType":"VariableDeclaration","src":"1412:48:98","nodes":[],"constant":true,"mutability":"constant","name":"CROSS_MSG_FEE","nameLocation":"1437:13:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57570,"name":"uint256","nodeType":"ElementaryTypeName","src":"1412:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":57571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1453:7:98","subdenomination":"gwei","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"10"},"visibility":"private"},{"id":57575,"nodeType":"VariableDeclaration","src":"1467:45:98","nodes":[],"constant":false,"mutability":"mutable","name":"ghost_owners","nameLocation":"1500:12:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":57574,"nodeType":"UserDefinedTypeName","pathNode":{"id":57573,"name":"EnumerableSet.AddressSet","nameLocations":["1467:13:98","1481:10:98"],"nodeType":"IdentifierPath","referencedDeclaration":35528,"src":"1467:24:98"},"referencedDeclaration":35528,"src":"1467:24:98","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"private"},{"id":57578,"nodeType":"VariableDeclaration","src":"1518:47:98","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacet","nameLocation":"1546:19:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"},"typeName":{"id":57577,"nodeType":"UserDefinedTypeName","pathNode":{"id":57576,"name":"RegisterSubnetFacet","nameLocations":["1518:19:98"],"nodeType":"IdentifierPath","referencedDeclaration":52279,"src":"1518:19:98"},"referencedDeclaration":52279,"src":"1518:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"visibility":"private"},{"id":57581,"nodeType":"VariableDeclaration","src":"1571:45:98","nodes":[],"constant":false,"mutability":"mutable","name":"registerGetterFacet","nameLocation":"1597:19:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"},"typeName":{"id":57580,"nodeType":"UserDefinedTypeName","pathNode":{"id":57579,"name":"SubnetGetterFacet","nameLocations":["1571:17:98"],"nodeType":"IdentifierPath","referencedDeclaration":52517,"src":"1571:17:98"},"referencedDeclaration":52517,"src":"1571:17:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"visibility":"private"},{"id":57583,"nodeType":"VariableDeclaration","src":"1623:39:98","nodes":[],"constant":false,"mutability":"mutable","name":"registerSubnetFacetAddr","nameLocation":"1639:23:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57582,"name":"address","nodeType":"ElementaryTypeName","src":"1623:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":57585,"nodeType":"VariableDeclaration","src":"1668:37:98","nodes":[],"constant":false,"mutability":"mutable","name":"subnetGetterFacetAddr","nameLocation":"1684:21:98","scope":57918,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57584,"name":"address","nodeType":"ElementaryTypeName","src":"1668:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":57610,"nodeType":"FunctionDefinition","src":"1712:192:98","nodes":[],"body":{"id":57609,"nodeType":"Block","src":"1757:147:98","nodes":[],"statements":[{"expression":{"id":57598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57591,"name":"registerSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57578,"src":"1767:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":57595,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57588,"src":"1817:9:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":57594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1809:7:98","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57593,"name":"address","nodeType":"ElementaryTypeName","src":"1809:7:98","typeDescriptions":{}}},"id":57596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1809:18:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":57592,"name":"RegisterSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52279,"src":"1789:19:98","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegisterSubnetFacet_$52279_$","typeString":"type(contract RegisterSubnetFacet)"}},"id":57597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1789:39:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"src":"1767:61:98","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"id":57599,"nodeType":"ExpressionStatement","src":"1767:61:98"},{"expression":{"id":57607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57600,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57581,"src":"1838:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":57604,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57588,"src":"1886:9:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}],"id":57603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1878:7:98","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57602,"name":"address","nodeType":"ElementaryTypeName","src":"1878:7:98","typeDescriptions":{}}},"id":57605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1878:18:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":57601,"name":"SubnetGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52517,"src":"1860:17:98","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetGetterFacet_$52517_$","typeString":"type(contract SubnetGetterFacet)"}},"id":57606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1860:37:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"src":"1838:59:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"id":57608,"nodeType":"ExpressionStatement","src":"1838:59:98"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":57589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57588,"mutability":"mutable","name":"_registry","nameLocation":"1746:9:98","nodeType":"VariableDeclaration","scope":57610,"src":"1724:31:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"},"typeName":{"id":57587,"nodeType":"UserDefinedTypeName","pathNode":{"id":57586,"name":"SubnetRegistryDiamond","nameLocations":["1724:21:98"],"nodeType":"IdentifierPath","referencedDeclaration":36853,"src":"1724:21:98"},"referencedDeclaration":36853,"src":"1724:21:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetRegistryDiamond_$36853","typeString":"contract SubnetRegistryDiamond"}},"visibility":"internal"}],"src":"1723:33:98"},"returnParameters":{"id":57590,"nodeType":"ParameterList","parameters":[],"src":"1757:0:98"},"scope":57918,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57623,"nodeType":"FunctionDefinition","src":"1910:154:98","nodes":[],"body":{"id":57622,"nodeType":"Block","src":"1993:71:98","nodes":[],"statements":[{"expression":{"arguments":[{"id":57619,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57612,"src":"2051:5:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57617,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57581,"src":"2010:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"id":57618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2030:20:98","memberName":"latestSubnetDeployed","nodeType":"MemberAccess","referencedDeclaration":52335,"src":"2010:40:98","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_address_$","typeString":"function (address) view external returns (address)"}},"id":57620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2010:47:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57616,"id":57621,"nodeType":"Return","src":"2003:54:98"}]},"functionSelector":"ce75761f","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetDeployedBy","nameLocation":"1919:19:98","parameters":{"id":57613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57612,"mutability":"mutable","name":"owner","nameLocation":"1947:5:98","nodeType":"VariableDeclaration","scope":57623,"src":"1939:13:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57611,"name":"address","nodeType":"ElementaryTypeName","src":"1939:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1938:15:98"},"returnParameters":{"id":57616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57615,"mutability":"mutable","name":"subnet","nameLocation":"1985:6:98","nodeType":"VariableDeclaration","scope":57623,"src":"1977:14:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57614,"name":"address","nodeType":"ElementaryTypeName","src":"1977:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1976:16:98"},"scope":57918,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57639,"nodeType":"FunctionDefinition","src":"2070:186:98","nodes":[],"body":{"id":57638,"nodeType":"Block","src":"2174:82:98","nodes":[],"statements":[{"expression":{"arguments":[{"id":57634,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57625,"src":"2236:5:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57635,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57627,"src":"2243:5:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":57632,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57581,"src":"2191:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"id":57633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2211:24:98","memberName":"getSubnetDeployedByNonce","nodeType":"MemberAccess","referencedDeclaration":52374,"src":"2191:44:98","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint64_$returns$_t_address_$","typeString":"function (address,uint64) view external returns (address)"}},"id":57636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2191:58:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57631,"id":57637,"nodeType":"Return","src":"2184:65:98"}]},"functionSelector":"58b1bc92","implemented":true,"kind":"function","modifiers":[],"name":"getSubnetDeployedWithNonce","nameLocation":"2079:26:98","parameters":{"id":57628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57625,"mutability":"mutable","name":"owner","nameLocation":"2114:5:98","nodeType":"VariableDeclaration","scope":57639,"src":"2106:13:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57624,"name":"address","nodeType":"ElementaryTypeName","src":"2106:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57627,"mutability":"mutable","name":"nonce","nameLocation":"2128:5:98","nodeType":"VariableDeclaration","scope":57639,"src":"2121:12:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57626,"name":"uint64","nodeType":"ElementaryTypeName","src":"2121:6:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2105:29:98"},"returnParameters":{"id":57631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57630,"mutability":"mutable","name":"subnet","nameLocation":"2166:6:98","nodeType":"VariableDeclaration","scope":57639,"src":"2158:14:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57629,"name":"address","nodeType":"ElementaryTypeName","src":"2158:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2157:16:98"},"scope":57918,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57652,"nodeType":"FunctionDefinition","src":"2262:143:98","nodes":[],"body":{"id":57651,"nodeType":"Block","src":"2339:66:98","nodes":[],"statements":[{"expression":{"arguments":[{"id":57648,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57641,"src":"2393:4:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57646,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57581,"src":"2356:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"id":57647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2376:16:98","memberName":"getUserLastNonce","nodeType":"MemberAccess","referencedDeclaration":52398,"src":"2356:36:98","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint64_$","typeString":"function (address) view external returns (uint64)"}},"id":57649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2356:42:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":57645,"id":57650,"nodeType":"Return","src":"2349:49:98"}]},"functionSelector":"030f6051","implemented":true,"kind":"function","modifiers":[],"name":"getUserLastNonce","nameLocation":"2271:16:98","parameters":{"id":57642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57641,"mutability":"mutable","name":"user","nameLocation":"2296:4:98","nodeType":"VariableDeclaration","scope":57652,"src":"2288:12:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57640,"name":"address","nodeType":"ElementaryTypeName","src":"2288:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2287:14:98"},"returnParameters":{"id":57645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57644,"mutability":"mutable","name":"nonce","nameLocation":"2332:5:98","nodeType":"VariableDeclaration","scope":57652,"src":"2325:12:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57643,"name":"uint64","nodeType":"ElementaryTypeName","src":"2325:6:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2324:14:98"},"scope":57918,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57690,"nodeType":"FunctionDefinition","src":"2476:297:98","nodes":[],"body":{"id":57689,"nodeType":"Block","src":"2559:214:98","nodes":[],"statements":[{"assignments":[57661],"declarations":[{"constant":false,"id":57661,"mutability":"mutable","name":"lenght","nameLocation":"2577:6:98","nodeType":"VariableDeclaration","scope":57689,"src":"2569:14:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57660,"name":"uint256","nodeType":"ElementaryTypeName","src":"2569:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57665,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57662,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57575,"src":"2586:12:98","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2599:6:98","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":35624,"src":"2586:19:98","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":57664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2586:21:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2569:38:98"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57666,"name":"lenght","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57661,"src":"2621:6:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2631:1:98","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2621:11:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57669,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57655,"src":"2636:4:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"34","id":57670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2643:1:98","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2636:8:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2648:1:98","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2636:13:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2621:28:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":57687,"nodeType":"Block","src":"2699:68:98","statements":[{"expression":{"baseExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57679,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57575,"src":"2720:12:98","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2733:6:98","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2720:19:98","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":57681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2720:21:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57685,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57682,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57655,"src":"2742:4:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":57683,"name":"lenght","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57661,"src":"2749:6:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2742:13:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2720:36:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57659,"id":57686,"nodeType":"Return","src":"2713:43:98"}]},"id":57688,"nodeType":"IfStatement","src":"2617:150:98","trueBody":{"id":57678,"nodeType":"Block","src":"2651:42:98","statements":[{"expression":{"expression":{"id":57675,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2672:3:98","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":57676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2676:6:98","memberName":"sender","nodeType":"MemberAccess","src":"2672:10:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57659,"id":57677,"nodeType":"Return","src":"2665:17:98"}]}}]},"documentation":{"id":57653,"nodeType":"StructuredDocumentation","src":"2411:60:98","text":"getRandomOldAddressOrNewOne returns a new random address"},"implemented":true,"kind":"function","modifiers":[],"name":"getRandomOldAddressOrNewOne","nameLocation":"2485:27:98","parameters":{"id":57656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57655,"mutability":"mutable","name":"seed","nameLocation":"2521:4:98","nodeType":"VariableDeclaration","scope":57690,"src":"2513:12:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57654,"name":"uint256","nodeType":"ElementaryTypeName","src":"2513:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2512:14:98"},"returnParameters":{"id":57659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57658,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57690,"src":"2550:7:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57657,"name":"address","nodeType":"ElementaryTypeName","src":"2550:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2549:9:98"},"scope":57918,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":57701,"nodeType":"FunctionDefinition","src":"2779:107:98","nodes":[],"body":{"id":57700,"nodeType":"Block","src":"2841:45:98","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57696,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57575,"src":"2858:12:98","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2871:6:98","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":35681,"src":"2858:19:98","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$35528_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":57698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2858:21:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":57695,"id":57699,"nodeType":"Return","src":"2851:28:98"}]},"functionSelector":"a0e67e2b","implemented":true,"kind":"function","modifiers":[],"name":"getOwners","nameLocation":"2788:9:98","parameters":{"id":57691,"nodeType":"ParameterList","parameters":[],"src":"2797:2:98"},"returnParameters":{"id":57695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57701,"src":"2823:16:98","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":57692,"name":"address","nodeType":"ElementaryTypeName","src":"2823:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57693,"nodeType":"ArrayTypeName","src":"2823:9:98","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2822:18:98"},"scope":57918,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57711,"nodeType":"FunctionDefinition","src":"2892:110:98","nodes":[],"body":{"id":57710,"nodeType":"Block","src":"2946:56:98","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57706,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57581,"src":"2963:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"id":57707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2983:10:98","memberName":"getGateway","nodeType":"MemberAccess","referencedDeclaration":52408,"src":"2963:30:98","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":57708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2963:32:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57705,"id":57709,"nodeType":"Return","src":"2956:39:98"}]},"functionSelector":"42bf3cc1","implemented":true,"kind":"function","modifiers":[],"name":"getGateway","nameLocation":"2901:10:98","parameters":{"id":57702,"nodeType":"ParameterList","parameters":[],"src":"2911:2:98"},"returnParameters":{"id":57705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57704,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57711,"src":"2937:7:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57703,"name":"address","nodeType":"ElementaryTypeName","src":"2937:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2936:9:98"},"scope":57918,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57917,"nodeType":"FunctionDefinition","src":"3008:2477:98","nodes":[],"body":{"id":57916,"nodeType":"Block","src":"3340:2145:98","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57732,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57713,"src":"3354:14:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":57733,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57554,"src":"3371:27:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3354:44:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57735,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57713,"src":"3402:14:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3420:1:98","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3402:19:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3354:67:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57744,"nodeType":"IfStatement","src":"3350:142:98","trueBody":{"id":57743,"nodeType":"Block","src":"3423:69:98","statements":[{"expression":{"id":57741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57739,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57713,"src":"3437:14:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57740,"name":"DEFAULT_MIN_VALIDATOR_STAKE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57554,"src":"3454:27:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3437:44:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57742,"nodeType":"ExpressionStatement","src":"3437:44:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":57747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57745,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57717,"src":"3505:20:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":57746,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57551,"src":"3528:25:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3505:48:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":57750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57748,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57717,"src":"3557:20:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3581:1:98","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3557:25:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3505:77:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57757,"nodeType":"IfStatement","src":"3501:156:98","trueBody":{"id":57756,"nodeType":"Block","src":"3584:73:98","statements":[{"expression":{"id":57754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57752,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57717,"src":"3598:20:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57753,"name":"DEFAULT_CHECKPOINT_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57551,"src":"3621:25:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3598:48:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":57755,"nodeType":"ExpressionStatement","src":"3598:48:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":57760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57758,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57721,"src":"3670:19:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3531","id":57759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3692:2:98","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"3670:24:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":57763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57761,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57721,"src":"3698:19:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"313030","id":57762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3720:3:98","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"3698:25:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3670:53:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57770,"nodeType":"IfStatement","src":"3666:133:98","trueBody":{"id":57769,"nodeType":"Block","src":"3725:74:98","statements":[{"expression":{"id":57767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57765,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57721,"src":"3739:19:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57766,"name":"DEFAULT_MAJORITY_PERCENTAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57557,"src":"3761:27:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3739:49:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":57768,"nodeType":"ExpressionStatement","src":"3739:49:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":57773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57771,"name":"_powerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57727,"src":"3812:11:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":57772,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57560,"src":"3826:19:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"3812:33:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57779,"nodeType":"IfStatement","src":"3808:97:98","trueBody":{"id":57778,"nodeType":"Block","src":"3847:58:98","statements":[{"expression":{"id":57776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57774,"name":"_powerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57727,"src":"3861:11:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57775,"name":"DEFAULT_POWER_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57560,"src":"3875:19:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"3861:33:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":57777,"nodeType":"ExpressionStatement","src":"3861:33:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":57782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57780,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57715,"src":"3918:14:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":57781,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57566,"src":"3935:22:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3918:39:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":57785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57783,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57715,"src":"3961:14:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3979:1:98","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3961:19:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3918:62:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57792,"nodeType":"IfStatement","src":"3914:132:98","trueBody":{"id":57791,"nodeType":"Block","src":"3982:64:98","statements":[{"expression":{"id":57789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57787,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57715,"src":"3996:14:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57788,"name":"DEFAULT_MIN_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57566,"src":"4013:22:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3996:39:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":57790,"nodeType":"ExpressionStatement","src":"3996:39:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":57795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57793,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57725,"src":"4059:9:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"35","id":57794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4071:1:98","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"4059:13:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57801,"nodeType":"IfStatement","src":"4055:57:98","trueBody":{"id":57800,"nodeType":"Block","src":"4074:38:98","statements":[{"expression":{"id":57798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57796,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57725,"src":"4088:9:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":57797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4100:1:98","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4088:13:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":57799,"nodeType":"ExpressionStatement","src":"4088:13:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57802,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57723,"src":"4125:15:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":57803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4143:7:98","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"src":"4125:25:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57805,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57723,"src":"4154:15:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4173:1:98","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4154:20:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4125:49:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57814,"nodeType":"IfStatement","src":"4121:111:98","trueBody":{"id":57813,"nodeType":"Block","src":"4176:56:98","statements":[{"expression":{"id":57811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57809,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57723,"src":"4190:15:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57810,"name":"CROSS_MSG_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57572,"src":"4208:13:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4190:31:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57812,"nodeType":"ExpressionStatement","src":"4190:31:98"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":57817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57815,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57719,"src":"4245:22:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":57816,"name":"DEFAULT_ACTIVE_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57569,"src":"4270:25:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4245:50:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":57820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57818,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57719,"src":"4299:22:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4325:1:98","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4299:27:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4245:81:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57827,"nodeType":"IfStatement","src":"4241:162:98","trueBody":{"id":57826,"nodeType":"Block","src":"4328:75:98","statements":[{"expression":{"id":57824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57822,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57719,"src":"4342:22:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57823,"name":"DEFAULT_ACTIVE_VALIDATORS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57569,"src":"4367:25:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4342:50:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":57825,"nodeType":"ExpressionStatement","src":"4342:50:98"}]}},{"assignments":[57832],"declarations":[{"constant":false,"id":57832,"mutability":"mutable","name":"path","nameLocation":"4430:4:98","nodeType":"VariableDeclaration","scope":57916,"src":"4413:21:98","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":57830,"name":"address","nodeType":"ElementaryTypeName","src":"4413:7:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57831,"nodeType":"ArrayTypeName","src":"4413:9:98","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":57838,"initialValue":{"arguments":[{"id":57836,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57725,"src":"4451:9:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":57835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4437:13:98","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":57833,"name":"address","nodeType":"ElementaryTypeName","src":"4441:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57834,"nodeType":"ArrayTypeName","src":"4441:9:98","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":57837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:24:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4413:48:98"},{"body":{"id":57860,"nodeType":"Block","src":"4507:54:98","statements":[{"expression":{"id":57858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57848,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57832,"src":"4521:4:98","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":57850,"indexExpression":{"id":57849,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57840,"src":"4526:1:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4521:7:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":57855,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57840,"src":"4547:1:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4539:7:98","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":57853,"name":"uint160","nodeType":"ElementaryTypeName","src":"4539:7:98","typeDescriptions":{}}},"id":57856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4539:10:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":57852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4531:7:98","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57851,"name":"address","nodeType":"ElementaryTypeName","src":"4531:7:98","typeDescriptions":{}}},"id":57857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4531:19:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4521:29:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57859,"nodeType":"ExpressionStatement","src":"4521:29:98"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57842,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57840,"src":"4487:1:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":57843,"name":"_pathSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57725,"src":"4491:9:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4487:13:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57861,"initializationExpression":{"assignments":[57840],"declarations":[{"constant":false,"id":57840,"mutability":"mutable","name":"i","nameLocation":"4484:1:98","nodeType":"VariableDeclaration","scope":57861,"src":"4476:9:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57839,"name":"uint256","nodeType":"ElementaryTypeName","src":"4476:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57841,"nodeType":"VariableDeclarationStatement","src":"4476:9:98"},"loopExpression":{"expression":{"id":57846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"4502:3:98","subExpression":{"id":57845,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57840,"src":"4504:1:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57847,"nodeType":"ExpressionStatement","src":"4502:3:98"},"nodeType":"ForStatement","src":"4471:90:98"},{"assignments":[57866],"declarations":[{"constant":false,"id":57866,"mutability":"mutable","name":"params","nameLocation":"4615:6:98","nodeType":"VariableDeclaration","scope":57916,"src":"4571:50:98","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"},"typeName":{"id":57865,"nodeType":"UserDefinedTypeName","pathNode":{"id":57864,"name":"SubnetActorDiamond.ConstructorParams","nameLocations":["4571:18:98","4590:17:98"],"nodeType":"IdentifierPath","referencedDeclaration":36253,"src":"4571:36:98"},"referencedDeclaration":36253,"src":"4571:36:98","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_storage_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams"}},"visibility":"internal"}],"id":57891,"initialValue":{"arguments":[{"arguments":[{"id":57870,"name":"ROOTNET_CHAINID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57563,"src":"4701:15:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":57871,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57832,"src":"4725:4:98","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":57869,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"4685:8:98","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SubnetID_$50077_storage_ptr_$","typeString":"type(struct SubnetID storage pointer)"}},"id":57872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4695:4:98","4718:5:98"],"names":["root","route"],"nodeType":"FunctionCall","src":"4685:46:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57873,"name":"registerGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57581,"src":"4761:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_SubnetGetterFacet_$52517","typeString":"contract SubnetGetterFacet"}},"id":57874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4781:10:98","memberName":"getGateway","nodeType":"MemberAccess","referencedDeclaration":52408,"src":"4761:30:98","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":57875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4761:32:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":57876,"name":"ConsensusType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37359,"src":"4818:13:98","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ConsensusType_$37359_$","typeString":"type(enum ConsensusType)"}},"id":57877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4832:10:98","memberName":"Fendermint","nodeType":"MemberAccess","referencedDeclaration":37358,"src":"4818:24:98","typeDescriptions":{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"}},{"id":57878,"name":"_minCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57713,"src":"4881:14:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57879,"name":"_minValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57715,"src":"4924:14:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":57880,"name":"_bottomUpCheckPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57717,"src":"4973:20:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":57881,"name":"_majorityPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57721,"src":"5027:19:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":57882,"name":"_activeValidatorsLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57719,"src":"5083:22:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":57883,"name":"_powerScale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57727,"src":"5131:11:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"expression":{"id":57884,"name":"PermissionMode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50165,"src":"5172:14:98","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PermissionMode_$50165_$","typeString":"type(enum PermissionMode)"}},"id":57885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5187:10:98","memberName":"Collateral","nodeType":"MemberAccess","referencedDeclaration":50162,"src":"5172:25:98","typeDescriptions":{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"}},{"id":57886,"name":"_minCrossMsgFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57723,"src":"5227:15:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57887,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"5270:18:98","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SupplySourceHelper_$48398_$","typeString":"type(library SupplySourceHelper)"}},"id":57888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5289:6:98","memberName":"native","nodeType":"MemberAccess","referencedDeclaration":48397,"src":"5270:25:98","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () pure returns (struct SupplySource memory)"}},"id":57889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5270:27:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ConsensusType_$37359","typeString":"enum ConsensusType"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_enum$_PermissionMode_$50165","typeString":"enum PermissionMode"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}],"expression":{"id":57867,"name":"SubnetActorDiamond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36615,"src":"4624:18:98","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorDiamond_$36615_$","typeString":"type(contract SubnetActorDiamond)"}},"id":57868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4643:17:98","memberName":"ConstructorParams","nodeType":"MemberAccess","referencedDeclaration":36253,"src":"4624:36:98","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ConstructorParams_$36253_storage_ptr_$","typeString":"type(struct SubnetActorDiamond.ConstructorParams storage pointer)"}},"id":57890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4675:8:98","4745:14:98","4807:9:98","4856:23:98","4909:13:98","4952:19:98","5007:18:98","5060:21:98","5119:10:98","5156:14:98","5211:14:98","5256:12:98"],"names":["parentId","ipcGatewayAddr","consensus","minActivationCollateral","minValidators","bottomUpCheckPeriod","majorityPercentage","activeValidatorsLimit","powerScale","permissionMode","minCrossMsgFee","supplySource"],"nodeType":"FunctionCall","src":"4624:684:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}},"nodeType":"VariableDeclarationStatement","src":"4571:737:98"},{"assignments":[57893],"declarations":[{"constant":false,"id":57893,"mutability":"mutable","name":"owner","nameLocation":"5327:5:98","nodeType":"VariableDeclaration","scope":57916,"src":"5319:13:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57892,"name":"address","nodeType":"ElementaryTypeName","src":"5319:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57897,"initialValue":{"arguments":[{"id":57895,"name":"seed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57729,"src":"5363:4:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57894,"name":"getRandomOldAddressOrNewOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57690,"src":"5335:27:98","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":57896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5335:33:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5319:49:98"},{"expression":{"arguments":[{"id":57901,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57893,"src":"5387:5:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57898,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"5378:2:98","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":57900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5381:5:98","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":13835,"src":"5378:8:98","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5378:15:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57903,"nodeType":"ExpressionStatement","src":"5378:15:98"},{"expression":{"arguments":[{"id":57907,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57866,"src":"5438:6:98","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructorParams_$36253_memory_ptr","typeString":"struct SubnetActorDiamond.ConstructorParams memory"}],"expression":{"id":57904,"name":"registerSubnetFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57578,"src":"5403:19:98","typeDescriptions":{"typeIdentifier":"t_contract$_RegisterSubnetFacet_$52279","typeString":"contract RegisterSubnetFacet"}},"id":57906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5423:14:98","memberName":"newSubnetActor","nodeType":"MemberAccess","referencedDeclaration":52278,"src":"5403:34:98","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_ConstructorParams_$36253_memory_ptr_$returns$_t_address_$","typeString":"function (struct SubnetActorDiamond.ConstructorParams memory) external returns (address)"}},"id":57908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5403:42:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57909,"nodeType":"ExpressionStatement","src":"5403:42:98"},{"expression":{"arguments":[{"id":57913,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57893,"src":"5472:5:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57910,"name":"ghost_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57575,"src":"5455:12:98","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$35528_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":57912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5468:3:98","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":35555,"src":"5455:16:98","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$35528_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$35528_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":57914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5455:23:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57915,"nodeType":"ExpressionStatement","src":"5455:23:98"}]},"functionSelector":"64675ce8","implemented":true,"kind":"function","modifiers":[],"name":"deploySubnetActorFromRegistry","nameLocation":"3017:29:98","parameters":{"id":57730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57713,"mutability":"mutable","name":"_minCollateral","nameLocation":"3064:14:98","nodeType":"VariableDeclaration","scope":57917,"src":"3056:22:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57712,"name":"uint256","nodeType":"ElementaryTypeName","src":"3056:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57715,"mutability":"mutable","name":"_minValidators","nameLocation":"3095:14:98","nodeType":"VariableDeclaration","scope":57917,"src":"3088:21:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57714,"name":"uint64","nodeType":"ElementaryTypeName","src":"3088:6:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":57717,"mutability":"mutable","name":"_bottomUpCheckPeriod","nameLocation":"3126:20:98","nodeType":"VariableDeclaration","scope":57917,"src":"3119:27:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":57716,"name":"uint64","nodeType":"ElementaryTypeName","src":"3119:6:98","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":57719,"mutability":"mutable","name":"_activeValidatorsLimit","nameLocation":"3163:22:98","nodeType":"VariableDeclaration","scope":57917,"src":"3156:29:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":57718,"name":"uint16","nodeType":"ElementaryTypeName","src":"3156:6:98","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":57721,"mutability":"mutable","name":"_majorityPercentage","nameLocation":"3201:19:98","nodeType":"VariableDeclaration","scope":57917,"src":"3195:25:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57720,"name":"uint8","nodeType":"ElementaryTypeName","src":"3195:5:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57723,"mutability":"mutable","name":"_minCrossMsgFee","nameLocation":"3238:15:98","nodeType":"VariableDeclaration","scope":57917,"src":"3230:23:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57722,"name":"uint256","nodeType":"ElementaryTypeName","src":"3230:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57725,"mutability":"mutable","name":"_pathSize","nameLocation":"3269:9:98","nodeType":"VariableDeclaration","scope":57917,"src":"3263:15:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57724,"name":"uint8","nodeType":"ElementaryTypeName","src":"3263:5:98","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57727,"mutability":"mutable","name":"_powerScale","nameLocation":"3293:11:98","nodeType":"VariableDeclaration","scope":57917,"src":"3288:16:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":57726,"name":"int8","nodeType":"ElementaryTypeName","src":"3288:4:98","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":57729,"mutability":"mutable","name":"seed","nameLocation":"3322:4:98","nodeType":"VariableDeclaration","scope":57917,"src":"3314:12:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57728,"name":"uint256","nodeType":"ElementaryTypeName","src":"3314:7:98","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3046:286:98"},"returnParameters":{"id":57731,"nodeType":"ParameterList","parameters":[],"src":"3340:0:98"},"scope":57918,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":57533,"name":"CommonBase","nameLocations":["848:10:98"],"nodeType":"IdentifierPath","referencedDeclaration":3777,"src":"848:10:98"},"id":57534,"nodeType":"InheritanceSpecifier","src":"848:10:98"},{"baseName":{"id":57535,"name":"StdCheats","nameLocations":["860:9:98"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"860:9:98"},"id":57536,"nodeType":"InheritanceSpecifier","src":"860:9:98"},{"baseName":{"id":57537,"name":"StdUtils","nameLocations":["871:8:98"],"nodeType":"IdentifierPath","referencedDeclaration":12691,"src":"871:8:98"},"id":57538,"nodeType":"InheritanceSpecifier","src":"871:8:98"}],"canonicalName":"SubnetRegistryHandler","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[57918,12691,8180,7501,3777],"name":"SubnetRegistryHandler","nameLocation":"823:21:98","scope":57919,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":98} \ No newline at end of file diff --git a/.out/SupplySourceHelper.sol/SupplySourceHelper.json b/.out/SupplySourceHelper.sol/SupplySourceHelper.json new file mode 100644 index 000000000..6522a7db9 --- /dev/null +++ b/.out/SupplySourceHelper.sol/SupplySourceHelper.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"InvalidERC20Address","inputs":[]},{"type":"error","name":"UnexpectedSupplySource","inputs":[]},{"type":"error","name":"UnknownSupplySource","inputs":[]}],"bytecode":{"object":"0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220ca99423494fc747923eb237d45d5950c3434fd567121e968ca8106ab07da893b64736f6c63430008130033","sourceMap":"474:4253:76:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x600080fdfea2646970667358221220ca99423494fc747923eb237d45d5950c3434fd567121e968ca8106ab07da893b64736f6c63430008130033","sourceMap":"474:4253:76:-:0;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidERC20Address\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedSupplySource\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownSupplySource\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Helpers to deal with a supply source.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/lib/SupplySourceHelper.sol\":\"SupplySourceHelper\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidERC20Address"},{"inputs":[],"type":"error","name":"UnexpectedSupplySource"},{"inputs":[],"type":"error","name":"UnknownSupplySource"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/lib/SupplySourceHelper.sol":"SupplySourceHelper"},"libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/lib/SupplySourceHelper.sol","id":48399,"exportedSymbols":{"Address":[32838],"IERC20":[31999],"SafeERC20":[32453],"SubnetActorGetterFacet":[50887],"SupplyKind":[50229],"SupplySource":[50226],"SupplySourceHelper":[48398]},"nodeType":"SourceUnit","src":"39:4689:76","nodes":[{"id":48074,"nodeType":"PragmaDirective","src":"39:23:76","nodes":[],"literals":["solidity","0.8",".19"]},{"id":48077,"nodeType":"ImportDirective","src":"64:63:76","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":48399,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":48075,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"72:12:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":48076,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"86:10:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48079,"nodeType":"ImportDirective","src":"128:69:76","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":48399,"sourceUnit":32000,"symbolAliases":[{"foreign":{"id":48078,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"136:6:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48081,"nodeType":"ImportDirective","src":"198:65:76","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"openzeppelin-contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":48399,"sourceUnit":32839,"symbolAliases":[{"foreign":{"id":48080,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"206:7:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48083,"nodeType":"ImportDirective","src":"264:81:76","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":48399,"sourceUnit":32454,"symbolAliases":[{"foreign":{"id":48082,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32453,"src":"272:9:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48085,"nodeType":"ImportDirective","src":"346:76:76","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":48399,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":48084,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"354:22:76","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48398,"nodeType":"ContractDefinition","src":"474:4253:76","nodes":[{"id":48090,"nodeType":"UsingForDirective","src":"507:27:76","nodes":[],"global":false,"libraryName":{"id":48087,"name":"SafeERC20","nameLocations":["513:9:76"],"nodeType":"IdentifierPath","referencedDeclaration":32453,"src":"513:9:76"},"typeName":{"id":48089,"nodeType":"UserDefinedTypeName","pathNode":{"id":48088,"name":"IERC20","nameLocations":["527:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"527:6:76"},"referencedDeclaration":31999,"src":"527:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}}},{"id":48092,"nodeType":"ErrorDefinition","src":"540:28:76","nodes":[],"errorSelector":"edfc5056","name":"InvalidERC20Address","nameLocation":"546:19:76","parameters":{"id":48091,"nodeType":"ParameterList","parameters":[],"src":"565:2:76"}},{"id":48094,"nodeType":"ErrorDefinition","src":"573:31:76","nodes":[],"errorSelector":"80ee5966","name":"UnexpectedSupplySource","nameLocation":"579:22:76","parameters":{"id":48093,"nodeType":"ParameterList","parameters":[],"src":"601:2:76"}},{"id":48096,"nodeType":"ErrorDefinition","src":"609:28:76","nodes":[],"errorSelector":"59e10e01","name":"UnknownSupplySource","nameLocation":"615:19:76","parameters":{"id":48095,"nodeType":"ParameterList","parameters":[],"src":"634:2:76"}},{"id":48117,"nodeType":"FunctionDefinition","src":"890:185:76","nodes":[],"body":{"id":48116,"nodeType":"Block","src":"985:90:76","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":48108,"name":"subnetActor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48099,"src":"1025:11:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48107,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"1002:22:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SubnetActorGetterFacet_$50887_$","typeString":"type(contract SubnetActorGetterFacet)"}},"id":48109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1002:35:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SubnetActorGetterFacet_$50887","typeString":"contract SubnetActorGetterFacet"}},"id":48110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1038:12:76","memberName":"supplySource","nodeType":"MemberAccess","referencedDeclaration":50886,"src":"1002:48:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_struct$_SupplySource_$50226_memory_ptr_$","typeString":"function () view external returns (struct SupplySource memory)"}},"id":48111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1002:50:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1053:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"1002:55:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":48113,"name":"compare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48102,"src":"1061:7:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"1002:66:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48106,"id":48115,"nodeType":"Return","src":"995:73:76"}]},"documentation":{"id":48097,"nodeType":"StructuredDocumentation","src":"643:242:76","text":"@notice Assumes that the address provided belongs to a subnet rooted on this network,\n and checks if its supply kind matches the provided one.\n It reverts if the address does not correspond to a subnet actor."},"implemented":true,"kind":"function","modifiers":[],"name":"hasSupplyOfKind","nameLocation":"899:15:76","parameters":{"id":48103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48099,"mutability":"mutable","name":"subnetActor","nameLocation":"923:11:76","nodeType":"VariableDeclaration","scope":48117,"src":"915:19:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48098,"name":"address","nodeType":"ElementaryTypeName","src":"915:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48102,"mutability":"mutable","name":"compare","nameLocation":"947:7:76","nodeType":"VariableDeclaration","scope":48117,"src":"936:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":48101,"nodeType":"UserDefinedTypeName","pathNode":{"id":48100,"name":"SupplyKind","nameLocations":["936:10:76"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"936:10:76"},"referencedDeclaration":50229,"src":"936:10:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"914:41:76"},"returnParameters":{"id":48106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48105,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48117,"src":"979:4:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48104,"name":"bool","nodeType":"ElementaryTypeName","src":"979:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"978:6:76"},"scope":48398,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48161,"nodeType":"FunctionDefinition","src":"1238:704:76","nodes":[],"body":{"id":48160,"nodeType":"Block","src":"1304:638:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48124,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48121,"src":"1318:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1331:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"1318:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48126,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"1339:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1350:5:76","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"1339:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"1318:37:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48159,"nodeType":"IfStatement","src":"1314:622:76","trueBody":{"id":48158,"nodeType":"Block","src":"1357:579:76","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":48135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48129,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48121,"src":"1375:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1388:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50225,"src":"1375:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":48133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1412:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1404:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48131,"name":"address","nodeType":"ElementaryTypeName","src":"1404:7:76","typeDescriptions":{}}},"id":48134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1404:10:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1375:39:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48140,"nodeType":"IfStatement","src":"1371:106:76","trueBody":{"id":48139,"nodeType":"Block","src":"1416:61:76","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":48136,"name":"InvalidERC20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48092,"src":"1441:19:76","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":48137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1441:21:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48138,"nodeType":"RevertStatement","src":"1434:28:76"}]}},{"assignments":[48143],"declarations":[{"constant":false,"id":48143,"mutability":"mutable","name":"token","nameLocation":"1843:5:76","nodeType":"VariableDeclaration","scope":48158,"src":"1836:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},"typeName":{"id":48142,"nodeType":"UserDefinedTypeName","pathNode":{"id":48141,"name":"IERC20","nameLocations":["1836:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"1836:6:76"},"referencedDeclaration":31999,"src":"1836:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"visibility":"internal"}],"id":48148,"initialValue":{"arguments":[{"expression":{"id":48145,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48121,"src":"1858:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1871:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50225,"src":"1858:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48144,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"1851:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$31999_$","typeString":"type(contract IERC20)"}},"id":48147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1851:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"1836:48:76"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":48154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48152,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:76","typeDescriptions":{}}},"id":48155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1914:10:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48149,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48143,"src":"1898:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":48151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1904:9:76","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":31956,"src":"1898:15:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1898:27:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48157,"nodeType":"ExpressionStatement","src":"1898:27:76"}]}}]},"documentation":{"id":48118,"nodeType":"StructuredDocumentation","src":"1081:152:76","text":"@notice Checks that a given supply strategy is correctly formed and its preconditions are met.\n It reverts if conditions are not met."},"implemented":true,"kind":"function","modifiers":[],"name":"validate","nameLocation":"1247:8:76","parameters":{"id":48122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48121,"mutability":"mutable","name":"supplySource","nameLocation":"1276:12:76","nodeType":"VariableDeclaration","scope":48161,"src":"1256:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48120,"nodeType":"UserDefinedTypeName","pathNode":{"id":48119,"name":"SupplySource","nameLocations":["1256:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"1256:12:76"},"referencedDeclaration":50226,"src":"1256:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"src":"1255:34:76"},"returnParameters":{"id":48123,"nodeType":"ParameterList","parameters":[],"src":"1304:0:76"},"scope":48398,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48181,"nodeType":"FunctionDefinition","src":"2039:184:76","nodes":[],"body":{"id":48180,"nodeType":"Block","src":"2120:103:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48171,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48165,"src":"2134:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2147:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"2134:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":48173,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48168,"src":"2155:4:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"2134:25:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48179,"nodeType":"IfStatement","src":"2130:87:76","trueBody":{"id":48178,"nodeType":"Block","src":"2161:56:76","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":48175,"name":"UnexpectedSupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48094,"src":"2182:22:76","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":48176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2182:24:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48177,"nodeType":"RevertStatement","src":"2175:31:76"}]}}]},"documentation":{"id":48162,"nodeType":"StructuredDocumentation","src":"1948:86:76","text":"@notice Asserts that the supply strategy is of the given kind. If not, it reverts."},"implemented":true,"kind":"function","modifiers":[],"name":"expect","nameLocation":"2048:6:76","parameters":{"id":48169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48165,"mutability":"mutable","name":"supplySource","nameLocation":"2075:12:76","nodeType":"VariableDeclaration","scope":48181,"src":"2055:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48164,"nodeType":"UserDefinedTypeName","pathNode":{"id":48163,"name":"SupplySource","nameLocations":["2055:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"2055:12:76"},"referencedDeclaration":50226,"src":"2055:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"},{"constant":false,"id":48168,"mutability":"mutable","name":"kind","nameLocation":"2100:4:76","nodeType":"VariableDeclaration","scope":48181,"src":"2089:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"typeName":{"id":48167,"nodeType":"UserDefinedTypeName","pathNode":{"id":48166,"name":"SupplyKind","nameLocations":["2089:10:76"],"nodeType":"IdentifierPath","referencedDeclaration":50229,"src":"2089:10:76"},"referencedDeclaration":50229,"src":"2089:10:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"visibility":"internal"}],"src":"2054:51:76"},"returnParameters":{"id":48170,"nodeType":"ParameterList","parameters":[],"src":"2120:0:76"},"scope":48398,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48218,"nodeType":"FunctionDefinition","src":"2309:327:76","nodes":[],"body":{"id":48217,"nodeType":"Block","src":"2381:255:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48190,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48185,"src":"2395:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2408:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"2395:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48192,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"2416:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2427:5:76","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"2416:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"2395:37:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48216,"nodeType":"IfStatement","src":"2391:205:76","trueBody":{"id":48215,"nodeType":"Block","src":"2434:162:76","statements":[{"assignments":[48197],"declarations":[{"constant":false,"id":48197,"mutability":"mutable","name":"token","nameLocation":"2455:5:76","nodeType":"VariableDeclaration","scope":48215,"src":"2448:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"},"typeName":{"id":48196,"nodeType":"UserDefinedTypeName","pathNode":{"id":48195,"name":"IERC20","nameLocations":["2448:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":31999,"src":"2448:6:76"},"referencedDeclaration":31999,"src":"2448:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"visibility":"internal"}],"id":48202,"initialValue":{"arguments":[{"expression":{"id":48199,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48185,"src":"2470:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2483:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50225,"src":"2470:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48198,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"2463:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$31999_$","typeString":"type(contract IERC20)"}},"id":48201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2463:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"2448:48:76"},{"expression":{"arguments":[{"expression":{"id":48206,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2540:3:76","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":48207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2544:6:76","memberName":"sender","nodeType":"MemberAccess","src":"2540:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":48210,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2564:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_SupplySourceHelper_$48398","typeString":"library SupplySourceHelper"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SupplySourceHelper_$48398","typeString":"library SupplySourceHelper"}],"id":48209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2556:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48208,"name":"address","nodeType":"ElementaryTypeName","src":"2556:7:76","typeDescriptions":{}}},"id":48211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2556:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48212,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48187,"src":"2578:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48203,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48197,"src":"2510:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":48205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2516:16:76","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":32178,"src":"2510:22:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$31999_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":48213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["2534:4:76","2552:2:76","2571:5:76"],"names":["from","to","value"],"nodeType":"FunctionCall","src":"2510:75:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48214,"nodeType":"ExpressionStatement","src":"2510:75:76"}]}}]},"documentation":{"id":48182,"nodeType":"StructuredDocumentation","src":"2229:75:76","text":"@notice Locks the specified amount sent by the msg.sender into custody."},"implemented":true,"kind":"function","modifiers":[],"name":"lock","nameLocation":"2318:4:76","parameters":{"id":48188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48185,"mutability":"mutable","name":"supplySource","nameLocation":"2343:12:76","nodeType":"VariableDeclaration","scope":48218,"src":"2323:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48184,"nodeType":"UserDefinedTypeName","pathNode":{"id":48183,"name":"SupplySource","nameLocations":["2323:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"2323:12:76"},"referencedDeclaration":50226,"src":"2323:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"},{"constant":false,"id":48187,"mutability":"mutable","name":"value","nameLocation":"2365:5:76","nodeType":"VariableDeclaration","scope":48218,"src":"2357:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48186,"name":"uint256","nodeType":"ElementaryTypeName","src":"2357:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2322:49:76"},"returnParameters":{"id":48189,"nodeType":"ParameterList","parameters":[],"src":"2381:0:76"},"scope":48398,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48263,"nodeType":"FunctionDefinition","src":"2735:383:76","nodes":[],"body":{"id":48262,"nodeType":"Block","src":"2838:280:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48229,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48222,"src":"2852:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2865:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"2852:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48231,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"2873:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2884:6:76","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"2873:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"2852:38:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48245,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48222,"src":"2971:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2984:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"2971:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48247,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"2992:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3003:5:76","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"2992:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"2971:37:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48260,"nodeType":"IfStatement","src":"2967:145:76","trueBody":{"id":48259,"nodeType":"Block","src":"3010:102:76","statements":[{"expression":{"arguments":[{"id":48255,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48224,"src":"3076:9:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48256,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48226,"src":"3094:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":48251,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48222,"src":"3031:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3044:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50225,"src":"3031:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48250,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"3024:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$31999_$","typeString":"type(contract IERC20)"}},"id":48253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3024:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":48254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3058:12:76","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":32151,"src":"3024:46:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$31999_$","typeString":"function (contract IERC20,address,uint256)"}},"id":48257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3072:2:76","3087:5:76"],"names":["to","value"],"nodeType":"FunctionCall","src":"3024:77:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48258,"nodeType":"ExpressionStatement","src":"3024:77:76"}]}},"id":48261,"nodeType":"IfStatement","src":"2848:264:76","trueBody":{"id":48244,"nodeType":"Block","src":"2892:69:76","statements":[{"expression":{"arguments":[{"arguments":[{"id":48239,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48224,"src":"2932:9:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":48238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2924:8:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":48237,"name":"address","nodeType":"ElementaryTypeName","src":"2924:8:76","stateMutability":"payable","typeDescriptions":{}}},"id":48240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2924:18:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48241,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48226,"src":"2944:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48234,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"2906:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":48236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2914:9:76","memberName":"sendValue","nodeType":"MemberAccess","referencedDeclaration":32510,"src":"2906:17:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$","typeString":"function (address payable,uint256)"}},"id":48242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2906:44:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48243,"nodeType":"ExpressionStatement","src":"2906:44:76"}]}}]},"documentation":{"id":48219,"nodeType":"StructuredDocumentation","src":"2642:88:76","text":"@notice Transfers the specified amount out of our treasury to the recipient address."},"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"2744:8:76","parameters":{"id":48227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48222,"mutability":"mutable","name":"supplySource","nameLocation":"2773:12:76","nodeType":"VariableDeclaration","scope":48263,"src":"2753:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48221,"nodeType":"UserDefinedTypeName","pathNode":{"id":48220,"name":"SupplySource","nameLocations":["2753:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"2753:12:76"},"referencedDeclaration":50226,"src":"2753:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"},{"constant":false,"id":48224,"mutability":"mutable","name":"recipient","nameLocation":"2803:9:76","nodeType":"VariableDeclaration","scope":48263,"src":"2787:25:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":48223,"name":"address","nodeType":"ElementaryTypeName","src":"2787:15:76","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":48226,"mutability":"mutable","name":"value","nameLocation":"2822:5:76","nodeType":"VariableDeclaration","scope":48263,"src":"2814:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48225,"name":"uint256","nodeType":"ElementaryTypeName","src":"2814:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2752:76:76"},"returnParameters":{"id":48228,"nodeType":"ParameterList","parameters":[],"src":"2838:0:76"},"scope":48398,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48334,"nodeType":"FunctionDefinition","src":"3224:896:76","nodes":[],"body":{"id":48333,"nodeType":"Block","src":"3373:747:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48278,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48273,"src":"3460:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3469:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3460:10:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48290,"nodeType":"IfStatement","src":"3456:81:76","trueBody":{"id":48289,"nodeType":"Block","src":"3472:65:76","statements":[{"expression":{"id":48287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48281,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48276,"src":"3486:3:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48284,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48269,"src":"3513:6:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48285,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48271,"src":"3521:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48282,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"3492:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":48283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3500:12:76","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":32528,"src":"3492:20:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":48286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3492:34:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3486:40:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48288,"nodeType":"ExpressionStatement","src":"3486:40:76"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48291,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48267,"src":"3608:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3621:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"3608:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48293,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"3629:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3640:6:76","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"3629:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"3608:38:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48306,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48267,"src":"3835:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3848:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"3835:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48308,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"3856:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3867:5:76","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"3856:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"3835:37:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48329,"nodeType":"IfStatement","src":"3831:263:76","trueBody":{"id":48328,"nodeType":"Block","src":"3874:220:76","statements":[{"expression":{"arguments":[{"id":48316,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48269,"src":"4007:6:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48317,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48273,"src":"4022:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":48312,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48267,"src":"3962:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3975:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50225,"src":"3962:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48311,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"3955:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$31999_$","typeString":"type(contract IERC20)"}},"id":48314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3955:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":48315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3989:12:76","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":32151,"src":"3955:46:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$31999_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$31999_$","typeString":"function (contract IERC20,address,uint256)"}},"id":48318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["4003:2:76","4015:5:76"],"names":["to","value"],"nodeType":"FunctionCall","src":"3955:74:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48319,"nodeType":"ExpressionStatement","src":"3955:74:76"},{"expression":{"id":48326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48320,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48276,"src":"4043:3:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48323,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48269,"src":"4070:6:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48324,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48271,"src":"4078:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48321,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"4049:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":48322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4057:12:76","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":32528,"src":"4049:20:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":48325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:34:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4043:40:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48327,"nodeType":"ExpressionStatement","src":"4043:40:76"}]}},"id":48330,"nodeType":"IfStatement","src":"3604:490:76","trueBody":{"id":48305,"nodeType":"Block","src":"3648:177:76","statements":[{"expression":{"id":48303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48296,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48276,"src":"3735:3:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48299,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48269,"src":"3780:6:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":48300,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48271,"src":"3794:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48301,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48273,"src":"3807:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48297,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32838,"src":"3741:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$32838_$","typeString":"type(library Address)"}},"id":48298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3749:21:76","memberName":"functionCallWithValue","nodeType":"MemberAccess","referencedDeclaration":32570,"src":"3741:29:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":48302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["3772:6:76","3788:4:76","3800:5:76"],"names":["target","data","value"],"nodeType":"FunctionCall","src":"3741:73:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3735:79:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48304,"nodeType":"ExpressionStatement","src":"3735:79:76"}]}},{"expression":{"id":48331,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48276,"src":"4110:3:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48277,"id":48332,"nodeType":"Return","src":"4103:10:76"}]},"documentation":{"id":48264,"nodeType":"StructuredDocumentation","src":"3124:95:76","text":"@notice Calls the target with the specified data, ensuring it receives the specified value."},"implemented":true,"kind":"function","modifiers":[],"name":"performCall","nameLocation":"3233:11:76","parameters":{"id":48274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48267,"mutability":"mutable","name":"supplySource","nameLocation":"3265:12:76","nodeType":"VariableDeclaration","scope":48334,"src":"3245:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48266,"nodeType":"UserDefinedTypeName","pathNode":{"id":48265,"name":"SupplySource","nameLocations":["3245:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"3245:12:76"},"referencedDeclaration":50226,"src":"3245:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"},{"constant":false,"id":48269,"mutability":"mutable","name":"target","nameLocation":"3295:6:76","nodeType":"VariableDeclaration","scope":48334,"src":"3279:22:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":48268,"name":"address","nodeType":"ElementaryTypeName","src":"3279:15:76","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":48271,"mutability":"mutable","name":"data","nameLocation":"3316:4:76","nodeType":"VariableDeclaration","scope":48334,"src":"3303:17:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48270,"name":"bytes","nodeType":"ElementaryTypeName","src":"3303:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48273,"mutability":"mutable","name":"value","nameLocation":"3330:5:76","nodeType":"VariableDeclaration","scope":48334,"src":"3322:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48272,"name":"uint256","nodeType":"ElementaryTypeName","src":"3322:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3244:92:76"},"returnParameters":{"id":48277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48276,"mutability":"mutable","name":"ret","nameLocation":"3368:3:76","nodeType":"VariableDeclaration","scope":48334,"src":"3355:16:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48275,"name":"bytes","nodeType":"ElementaryTypeName","src":"3355:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3354:18:76"},"scope":48398,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48381,"nodeType":"FunctionDefinition","src":"4176:357:76","nodes":[],"body":{"id":48380,"nodeType":"Block","src":"4263:270:76","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48343,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48338,"src":"4277:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4290:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"4277:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48345,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"4298:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4309:6:76","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"4298:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"4277:38:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},"id":48361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48357,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48338,"src":"4379:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4392:4:76","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":50222,"src":"4379:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":48359,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"4400:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4411:5:76","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":50228,"src":"4400:16:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},"src":"4379:37:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48376,"nodeType":"IfStatement","src":"4375:132:76","trueBody":{"id":48375,"nodeType":"Block","src":"4418:89:76","statements":[{"expression":{"id":48373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48362,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48341,"src":"4432:3:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":48370,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4490:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_SupplySourceHelper_$48398","typeString":"library SupplySourceHelper"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SupplySourceHelper_$48398","typeString":"library SupplySourceHelper"}],"id":48369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4482:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48368,"name":"address","nodeType":"ElementaryTypeName","src":"4482:7:76","typeDescriptions":{}}},"id":48371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4482:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":48364,"name":"supplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48338,"src":"4445:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"id":48365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4458:12:76","memberName":"tokenAddress","nodeType":"MemberAccess","referencedDeclaration":50225,"src":"4445:25:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48363,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31999,"src":"4438:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$31999_$","typeString":"type(contract IERC20)"}},"id":48366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4438:33:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$31999","typeString":"contract IERC20"}},"id":48367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4472:9:76","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":31956,"src":"4438:43:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":48372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4438:58:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4432:64:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48374,"nodeType":"ExpressionStatement","src":"4432:64:76"}]}},"id":48377,"nodeType":"IfStatement","src":"4273:234:76","trueBody":{"id":48356,"nodeType":"Block","src":"4317:52:76","statements":[{"expression":{"id":48354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48348,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48341,"src":"4331:3:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":48351,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4345:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_SupplySourceHelper_$48398","typeString":"library SupplySourceHelper"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SupplySourceHelper_$48398","typeString":"library SupplySourceHelper"}],"id":48350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4337:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48349,"name":"address","nodeType":"ElementaryTypeName","src":"4337:7:76","typeDescriptions":{}}},"id":48352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4337:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4351:7:76","memberName":"balance","nodeType":"MemberAccess","src":"4337:21:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4331:27:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":48355,"nodeType":"ExpressionStatement","src":"4331:27:76"}]}},{"expression":{"id":48378,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48341,"src":"4523:3:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":48342,"id":48379,"nodeType":"Return","src":"4516:10:76"}]},"documentation":{"id":48335,"nodeType":"StructuredDocumentation","src":"4126:45:76","text":"@notice Gets the balance in our treasury."},"implemented":true,"kind":"function","modifiers":[],"name":"balance","nameLocation":"4185:7:76","parameters":{"id":48339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48338,"mutability":"mutable","name":"supplySource","nameLocation":"4213:12:76","nodeType":"VariableDeclaration","scope":48381,"src":"4193:32:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48337,"nodeType":"UserDefinedTypeName","pathNode":{"id":48336,"name":"SupplySource","nameLocations":["4193:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"4193:12:76"},"referencedDeclaration":50226,"src":"4193:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"src":"4192:34:76"},"returnParameters":{"id":48342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48341,"mutability":"mutable","name":"ret","nameLocation":"4258:3:76","nodeType":"VariableDeclaration","scope":48381,"src":"4250:11:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48340,"name":"uint256","nodeType":"ElementaryTypeName","src":"4250:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4249:13:76"},"scope":48398,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48397,"nodeType":"FunctionDefinition","src":"4539:185:76","nodes":[],"body":{"id":48396,"nodeType":"Block","src":"4601:123:76","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":48388,"name":"SupplyKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50229,"src":"4651:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SupplyKind_$50229_$","typeString":"type(enum SupplyKind)"}},"id":48389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4662:6:76","memberName":"Native","nodeType":"MemberAccess","referencedDeclaration":50227,"src":"4651:17:76","typeDescriptions":{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"}},{"arguments":[{"hexValue":"30","id":48392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4704:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4696:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48390,"name":"address","nodeType":"ElementaryTypeName","src":"4696:7:76","typeDescriptions":{}}},"id":48393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4696:10:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_SupplyKind_$50229","typeString":"enum SupplyKind"},{"typeIdentifier":"t_address","typeString":"address"}],"id":48387,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"4618:12:76","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SupplySource_$50226_storage_ptr_$","typeString":"type(struct SupplySource storage pointer)"}},"id":48394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4645:4:76","4682:12:76"],"names":["kind","tokenAddress"],"nodeType":"FunctionCall","src":"4618:99:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource memory"}},"functionReturnParameters":48386,"id":48395,"nodeType":"Return","src":"4611:106:76"}]},"implemented":true,"kind":"function","modifiers":[],"name":"native","nameLocation":"4548:6:76","parameters":{"id":48382,"nodeType":"ParameterList","parameters":[],"src":"4554:2:76"},"returnParameters":{"id":48386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48385,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48397,"src":"4580:19:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_memory_ptr","typeString":"struct SupplySource"},"typeName":{"id":48384,"nodeType":"UserDefinedTypeName","pathNode":{"id":48383,"name":"SupplySource","nameLocations":["4580:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"4580:12:76"},"referencedDeclaration":50226,"src":"4580:12:76","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}},"visibility":"internal"}],"src":"4579:21:76"},"scope":48398,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SupplySourceHelper","contractDependencies":[],"contractKind":"library","documentation":{"id":48086,"nodeType":"StructuredDocumentation","src":"424:50:76","text":"@notice Helpers to deal with a supply source."},"fullyImplemented":true,"linearizedBaseContracts":[48398],"name":"SupplySourceHelper","nameLocation":"482:18:76","scope":48399,"usedErrors":[48092,48094,48096]}],"license":"UNLICENSED"},"id":76} \ No newline at end of file diff --git a/.out/TestUtils.sol/TestUtils.json b/.out/TestUtils.sol/TestUtils.json index f44dab8e3..38ec50f5f 100644 --- a/.out/TestUtils.sol/TestUtils.json +++ b/.out/TestUtils.sol/TestUtils.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"AA","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BB","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"GX","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"GY","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"PP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"derivePubKey","inputs":[{"name":"privKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"derivePubKeyBytes","inputs":[{"name":"privKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"deriveValidatorPubKeyBytes","inputs":[{"name":"privKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080806040523461001a5761072e9081610020823930815050f35b600080fdfe60806040818152600436101561001457600080fd5b600091823560e01c90816303a507be146101dd575080635727dc5c146101c7578063573081a2146101775780637a308a4c14610142578063997da8d41461012d578063bc9e2bcf14610104578063eeeac01e146100e95763f6caf0ac1461007a57600080fd5b60203660031901126100e55761009160043561025b565b8291925192602084015281830152808252606082019282841067ffffffffffffffff8511176100d15750829052605f19906100cc8184610212565b030190f35b634e487b7160e01b81526041600452602490fd5b5080fd5b50816003193601126100e557516401000003d0198152602090f35b5090602036600319011261012a575061011e60043561025b565b82519182526020820152f35b80fd5b50816003193601126100e55751908152602090f35b50816003193601126100e557602090517f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b88152f35b5060203660031901126100e5576101c39061019360043561025b565b8291925192600160fa1b602085015260218401526041830152604182526101b98261041c565b5191829182610212565b0390f35b50816003193601126100e5576020905160078152f35b8390816003193601126100e557807f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179860209252f35b6020808252825181830181905290939260005b82811061024757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610225565b61026490610372565b9291908315158481610361575b5080610359575b156103235760009360016401000003d019825b6102b8575050506401000003d01984800991826401000003d0199109936401000003d01992839109900990565b91959091868104916401000003d0198484096401000003d019036401000003d019811161030d576401000003d01991089296809281810291818304149015171561030d57810390811161030d5791908261028b565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b210373ab6b132b960911b6044820152606490fd5b506001610278565b6401000003d0191415905038610271565b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798917f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b86001928015610417576000948592918590805b6103d55750505050929190565b600181166103f9575b906103ee9160011c938493610639565b9093919290916103c8565b9390838382986103ee9a61040c9561044e565b9097509590936103de565b509190565b6080810190811067ffffffffffffffff82111761043857604052565b634e487b7160e01b600052604160045260246000fd5b909295939194811580610631575b6106275786158061061f575b6106155760409283519461047b8661041c565b60803687376401000003d0199586898009928382528760208301948b09845287858009928783019684885289606085019588098552885197608089019289841067ffffffffffffffff85111761043857928a52518a928392839283910996878b525190099c8d9460208a019e8f525190099188880195838752519009906060870193828552149182159261060a575b5050156105c65784519161051d8361041c565b6080368437518451870387811161030d578791088252518851860386811161030d57869108936020820194808652868351818180099385019380855209916060840192808452880388811161030d578880885184519009600209890389811161030d5789809492818481950908089651955190519009988587039187831161030d578791519051900986039086821161030d57869485809492819351989c089009089509900990565b845162461bcd60e51b815260206004820152601e60248201527f557365206a6163446f75626c652066756e6374696f6e20696e737465616400006044820152606490fd5b14159050388061050a565b5091945050929190565b508215610468565b9194509092915050565b50831561045c565b92909180156106f5576401000003d01990818480098282800990838080838a0960040997818080806000978009870992800960030908908488800885038581116106e15785908184800908808603918683116106cd5786818192096008098603938685116106b95750859493919285809481939b08900908940960020990565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b84526011600452602484fd5b9056fea2646970667358221220f3bfccee7baad2561d941d2e11595fce065badbf1757656c7af3f95e4d755d1c64736f6c63430008130033","sourceMap":"163:5663:86:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600436101561001457600080fd5b600091823560e01c90816303a507be146101dd575080635727dc5c146101c7578063573081a2146101775780637a308a4c14610142578063997da8d41461012d578063bc9e2bcf14610104578063eeeac01e146100e95763f6caf0ac1461007a57600080fd5b60203660031901126100e55761009160043561025b565b8291925192602084015281830152808252606082019282841067ffffffffffffffff8511176100d15750829052605f19906100cc8184610212565b030190f35b634e487b7160e01b81526041600452602490fd5b5080fd5b50816003193601126100e557516401000003d0198152602090f35b5090602036600319011261012a575061011e60043561025b565b82519182526020820152f35b80fd5b50816003193601126100e55751908152602090f35b50816003193601126100e557602090517f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b88152f35b5060203660031901126100e5576101c39061019360043561025b565b8291925192600160fa1b602085015260218401526041830152604182526101b98261041c565b5191829182610212565b0390f35b50816003193601126100e5576020905160078152f35b8390816003193601126100e557807f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179860209252f35b6020808252825181830181905290939260005b82811061024757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610225565b61026490610372565b9291908315158481610361575b5080610359575b156103235760009360016401000003d019825b6102b8575050506401000003d01984800991826401000003d0199109936401000003d01992839109900990565b91959091868104916401000003d0198484096401000003d019036401000003d019811161030d576401000003d01991089296809281810291818304149015171561030d57810390811161030d5791908261028b565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b210373ab6b132b960911b6044820152606490fd5b506001610278565b6401000003d0191415905038610271565b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798917f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b86001928015610417576000948592918590805b6103d55750505050929190565b600181166103f9575b906103ee9160011c938493610639565b9093919290916103c8565b9390838382986103ee9a61040c9561044e565b9097509590936103de565b509190565b6080810190811067ffffffffffffffff82111761043857604052565b634e487b7160e01b600052604160045260246000fd5b909295939194811580610631575b6106275786158061061f575b6106155760409283519461047b8661041c565b60803687376401000003d0199586898009928382528760208301948b09845287858009928783019684885289606085019588098552885197608089019289841067ffffffffffffffff85111761043857928a52518a928392839283910996878b525190099c8d9460208a019e8f525190099188880195838752519009906060870193828552149182159261060a575b5050156105c65784519161051d8361041c565b6080368437518451870387811161030d578791088252518851860386811161030d57869108936020820194808652868351818180099385019380855209916060840192808452880388811161030d578880885184519009600209890389811161030d5789809492818481950908089651955190519009988587039187831161030d578791519051900986039086821161030d57869485809492819351989c089009089509900990565b845162461bcd60e51b815260206004820152601e60248201527f557365206a6163446f75626c652066756e6374696f6e20696e737465616400006044820152606490fd5b14159050388061050a565b5091945050929190565b508215610468565b9194509092915050565b50831561045c565b92909180156106f5576401000003d01990818480098282800990838080838a0960040997818080806000978009870992800960030908908488800885038581116106e15785908184800908808603918683116106cd5786818192096008098603938685116106b95750859493919285809481939b08900908940960020990565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b84526011600452602484fd5b9056fea2646970667358221220f3bfccee7baad2561d941d2e11595fce065badbf1757656c7af3f95e4d755d1c64736f6c63430008130033","sourceMap":"163:5663:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;163:5663:86;;;;843:44;163:5663;;843:44;:::i;:::-;163:5663;;;;904:28;163:5663;904:28;;163:5663;;;;;904:28;;;163:5663;;;;;;;;;;;;;-1:-1:-1;163:5663:86;;;-1:-1:-1;;163:5663:86;;;;;:::i;:::-;;;;;;-1:-1:-1;;;163:5663:86;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;163:5663:86;;;;;;-1:-1:-1;163:5663:86;;;-1:-1:-1;;163:5663:86;;;;;660:44;163:5663;;660:44;:::i;:::-;163:5663;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:66;163:5663;;;;-1:-1:-1;163:5663:86;;-1:-1:-1;;163:5663:86;;;;;;1080:44;163:5663;;1080:44;:::i;:::-;163:5663;;;;;;;;;1245:46;;163:5663;;;;;;;;;;1245:46;;;;;:::i;:::-;163:5663;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;454:1;163:5663;;;;;;;;;;;;;;;216:66;163:5663;;;;;;;;;;;;;;;;;;;;-1:-1:-1;163:5663:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;8046:405:0;8341:31;8046:405;8341:31;:::i;:::-;3213:15;;;842:7;;;3213:15;842:7;:20;;8046:405;842:32;;;;8046:405;163:5663:86;;;;;8360:1:0;-1:-1:-1;;926:16:0;1003:7;;;490:66:86;;;;;3254:23:0;;;490:66:86;;;;3300:22:0;;490:66:86;-1:-1:-1;;490:66:86;;;3356:24:0;3345:41;;8046:405;:::o;996:169::-;163:5663:86;;;;;;;;-1:-1:-1;;163:5663:86;;1086:20:0;490:66:86;;163:5663;490:66;;163:5663;;;;-1:-1:-1;;490:66:86;1069:44:0;1050:64;1138:16;;163:5663:86;;;;;;;;;;;;;;;;;;;;;;1128:26:0;;;996:169;;163:5663:86;;;;;;;;;;;;;;;-1:-1:-1;;;163:5663:86;;;;;;;;;;;;-1:-1:-1;;;163:5663:86;;;;;;;842:32:0;;8360:1;842:32;;:20;-1:-1:-1;;853:9:0;;;-1:-1:-1;842:20:0;;;12886:800;216:66:86;12886:800:0;317:66:86;8360:1:0;13192:7;;;13188:57;;163:5663:86;;;;13255:22:0;;;;13403:14;;;13660:19;;;;;;12886:800;:::o;13396:255::-;8360:1;13438:13;;13433:109;;13396:255;163:5663:86;13609:31:0;163:5663:86;8360:1:0;163:5663:86;13609:31:0;;;;:::i;:::-;13594:46;;;;;;13396:255;;13433:109;13492:35;;;;;;13609:31;13492:35;;;;:::i;:::-;13477:50;;-1:-1:-1;13477:50:0;;;13433:109;;13188:57;13215:19;;;:::o;163:5663:86:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;8838:1966:0;;;;;;;9126:8;;:20;;;8838:1966;9122:48;;9184:8;;:20;;;8838:1966;9180:48;;163:5663:86;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;490:66:86;;9437:21:0;;;163:5663:86;;;;;;;;9476:23:0;;;163:5663:86;;9517:21:0;;;;163:5663:86;;;;;;;;;;;;9556:23:0;;;163:5663:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9635:23:0;163:5663:86;;;;;9672:23:0;;9621:158;;;163:5663:86;9621:158:0;;163:5663:86;;;;9709:23:0;;9621:158;;;;163:5663:86;;;;;9746:23:0;;9621:158;163:5663:86;9621:158:0;;163:5663:86;;;;9898:14:0;;;;:32;;;8838:1966;163:5663:86;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;10044:31:0;;;163:5663:86;;;;;;;;;;;;10105:31:0;;;163:5663:86;;;;;;;;;;;10168:25:0;;;;163:5663:86;;;;;;;10226:25:0;163:5663:86;;;;;;;;;;;;;;;;;;;;;10401:25:0;;9512:1;10391:41;163:5663:86;;;;;;;10315:25:0;;;;;;;;;10308:51;10374:64;163:5663:86;;;;;;10549:25:0;;163:5663:86;;;;;;;;;;;;;;;10649:25:0;;163:5663:86;;;;;;;;;;;;;;;;;10778:19:0;10542:48;;10503:114;;10632:48;10741:21;;10727:41;;8838:1966;:::o;163:5663:86:-;;;-1:-1:-1;;;163:5663:86;;;;;;;;;;;;;;;;;;;;9898:32:0;9916:14;;;-1:-1:-1;9898:32:0;;;;9180:48;9206:22;;;;;;;;:::o;9184:20::-;9196:8;;;9184:20;;9122:48;9148:22;;-1:-1:-1;9148:22:0;;;-1:-1:-1;;9148:22:0:o;9126:20::-;9138:8;;;9126:20;;11091:1480;;;;11329:7;;11325:32;;-1:-1:-1;;490:66:86;;11726:19:0;;;11774;;;;11843:18;;;;;;;11840:1;11833:34;-1:-1:-1;;;;;;11962:17:0;;;11950:35;;11678:19;;;11926:1;11919:17;11899:113;12255:17;;;;;163:5663:86;;;;;;;12230:17:0;;;;;;12223:55;163:5663:86;;;;;;;;;12414:17:0;;;;;12411:1;12404:33;163:5663:86;;;;;;;;12548:16:0;;;;;;;;;;;12355:23;;12345:39;;12325:139;12512:19;;12509:1;12502:35;11091:1480;:::o;163:5663:86:-;-1:-1:-1;;;163:5663:86;;;11840:1:0;163:5663:86;;;;;-1:-1:-1;;;163:5663:86;;;11840:1:0;163:5663:86;;;;;-1:-1:-1;;;163:5663:86;;;11840:1:0;163:5663:86;;;;11325:32:0;11338:19;:::o","linkReferences":{}},"methodIdentifiers":{"AA()":"997da8d4","BB()":"5727dc5c","GX()":"03a507be","GY()":"7a308a4c","PP()":"eeeac01e","derivePubKey(uint256)":"bc9e2bcf","derivePubKeyBytes(uint256)":"f6caf0ac","deriveValidatorPubKeyBytes(uint256)":"573081a2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AA\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privKey\",\"type\":\"uint256\"}],\"name\":\"derivePubKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privKey\",\"type\":\"uint256\"}],\"name\":\"derivePubKeyBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privKey\",\"type\":\"uint256\"}],\"name\":\"deriveValidatorPubKeyBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/TestUtils.sol\":\"TestUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x754f60bfb99884f3347c68fd063a18a8c80bcbdaf848391803d89654cdd97aef\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ed97511b421373b8e94222d825568f9c2a3a4e6ff2d9ab4f3f48fe1e9e3a8ba9\",\"dweb:/ipfs/QmadhEoTUMstJtS1M7Gzdz3Df1kEs1C7u7Mk2v4x6PDy7H\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"AA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"GX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"GY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"derivePubKey","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"derivePubKeyBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"privKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"deriveValidatorPubKeyBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/TestUtils.sol":"TestUtils"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"test/helpers/TestUtils.sol":{"keccak256":"0x754f60bfb99884f3347c68fd063a18a8c80bcbdaf848391803d89654cdd97aef","urls":["bzz-raw://ed97511b421373b8e94222d825568f9c2a3a4e6ff2d9ab4f3f48fe1e9e3a8ba9","dweb:/ipfs/QmadhEoTUMstJtS1M7Gzdz3Df1kEs1C7u7Mk2v4x6PDy7H"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/TestUtils.sol","id":55169,"exportedSymbols":{"DSTest":[3720],"EllipticCurve":[1129],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"Test":[12740],"TestBase":[3780],"TestUtils":[55168],"Vm":[14222],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:5781:86","nodes":[{"id":54323,"nodeType":"PragmaDirective","src":"46:23:86","nodes":[],"literals":["solidity","0.8",".19"]},{"id":54324,"nodeType":"ImportDirective","src":"71:28:86","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":55169,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":54325,"nodeType":"ImportDirective","src":"100:61:86","nodes":[],"absolutePath":"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol","file":"elliptic-curve-solidity/contracts/EllipticCurve.sol","nameLocation":"-1:-1:-1","scope":55169,"sourceUnit":1130,"symbolAliases":[],"unitAlias":""},{"id":55168,"nodeType":"ContractDefinition","src":"163:5663:86","nodes":[{"id":54328,"nodeType":"VariableDeclaration","src":"187:95:86","nodes":[],"constant":true,"functionSelector":"03a507be","mutability":"constant","name":"GX","nameLocation":"211:2:86","scope":55168,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54326,"name":"uint256","nodeType":"ElementaryTypeName","src":"187:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307837394245363637454639444342424143353541303632393543453837304230373032394246434442324443453238443935394632383135423136463831373938","id":54327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"216:66:86","typeDescriptions":{"typeIdentifier":"t_rational_55066263022277343669578718895168534326250603453777594175500187360389116729240_by_1","typeString":"int_const 5506...(69 digits omitted)...9240"},"value":"0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798"},"visibility":"public"},{"id":54331,"nodeType":"VariableDeclaration","src":"288:95:86","nodes":[],"constant":true,"functionSelector":"7a308a4c","mutability":"constant","name":"GY","nameLocation":"312:2:86","scope":55168,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54329,"name":"uint256","nodeType":"ElementaryTypeName","src":"288:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307834383341444137373236413343343635354441344642464330453131303841384644313742343438413638353534313939433437443038464642313044344238","id":54330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"317:66:86","typeDescriptions":{"typeIdentifier":"t_rational_32670510020758816978083085130507043184471273380659243275938904335757337482424_by_1","typeString":"int_const 3267...(69 digits omitted)...2424"},"value":"0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8"},"visibility":"public"},{"id":54334,"nodeType":"VariableDeclaration","src":"389:30:86","nodes":[],"constant":true,"functionSelector":"997da8d4","mutability":"constant","name":"AA","nameLocation":"413:2:86","scope":55168,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54332,"name":"uint256","nodeType":"ElementaryTypeName","src":"389:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":54333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"418:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":54337,"nodeType":"VariableDeclaration","src":"425:30:86","nodes":[],"constant":true,"functionSelector":"5727dc5c","mutability":"constant","name":"BB","nameLocation":"449:2:86","scope":55168,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54335,"name":"uint256","nodeType":"ElementaryTypeName","src":"425:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":54336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"454:1:86","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"visibility":"public"},{"id":54340,"nodeType":"VariableDeclaration","src":"461:95:86","nodes":[],"constant":true,"functionSelector":"eeeac01e","mutability":"constant","name":"PP","nameLocation":"485:2:86","scope":55168,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54338,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646454646464646433246","id":54339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"490:66:86","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007908834671663_by_1","typeString":"int_const 1157...(70 digits omitted)...1663"},"value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F"},"visibility":"public"},{"id":54359,"nodeType":"FunctionDefinition","src":"563:148:86","nodes":[],"body":{"id":54358,"nodeType":"Block","src":"643:68:86","nodes":[],"statements":[{"expression":{"arguments":[{"id":54351,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54342,"src":"680:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54352,"name":"GX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54328,"src":"689:2:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54353,"name":"GY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54331,"src":"693:2:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54354,"name":"AA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54334,"src":"697:2:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54355,"name":"PP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54340,"src":"701:2:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54349,"name":"EllipticCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"660:13:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EllipticCurve_$1129_$","typeString":"type(library EllipticCurve)"}},"id":54350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"674:5:86","memberName":"ecMul","nodeType":"MemberAccess","referencedDeclaration":555,"src":"660:19:86","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":54356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"660:44:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":54348,"id":54357,"nodeType":"Return","src":"653:51:86"}]},"functionSelector":"bc9e2bcf","implemented":true,"kind":"function","modifiers":[],"name":"derivePubKey","nameLocation":"572:12:86","parameters":{"id":54343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54342,"mutability":"mutable","name":"privKey","nameLocation":"593:7:86","nodeType":"VariableDeclaration","scope":54359,"src":"585:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54341,"name":"uint256","nodeType":"ElementaryTypeName","src":"585:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"584:17:86"},"returnParameters":{"id":54348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54359,"src":"625:7:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54344,"name":"uint256","nodeType":"ElementaryTypeName","src":"625:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54359,"src":"634:7:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54346,"name":"uint256","nodeType":"ElementaryTypeName","src":"634:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"624:18:86"},"scope":55168,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":54386,"nodeType":"FunctionDefinition","src":"717:222:86","nodes":[],"body":{"id":54385,"nodeType":"Block","src":"796:143:86","nodes":[],"statements":[{"assignments":[54367,54369],"declarations":[{"constant":false,"id":54367,"mutability":"mutable","name":"pubKeyX","nameLocation":"815:7:86","nodeType":"VariableDeclaration","scope":54385,"src":"807:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54366,"name":"uint256","nodeType":"ElementaryTypeName","src":"807:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54369,"mutability":"mutable","name":"pubKeyY","nameLocation":"832:7:86","nodeType":"VariableDeclaration","scope":54385,"src":"824:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54368,"name":"uint256","nodeType":"ElementaryTypeName","src":"824:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54378,"initialValue":{"arguments":[{"id":54372,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54361,"src":"863:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54373,"name":"GX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54328,"src":"872:2:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54374,"name":"GY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54331,"src":"876:2:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54375,"name":"AA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54334,"src":"880:2:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54376,"name":"PP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54340,"src":"884:2:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54370,"name":"EllipticCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"843:13:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EllipticCurve_$1129_$","typeString":"type(library EllipticCurve)"}},"id":54371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"857:5:86","memberName":"ecMul","nodeType":"MemberAccess","referencedDeclaration":555,"src":"843:19:86","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":54377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"843:44:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"806:81:86"},{"expression":{"arguments":[{"id":54381,"name":"pubKeyX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54367,"src":"915:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54382,"name":"pubKeyY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54369,"src":"924:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54379,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"904:3:86","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"908:6:86","memberName":"encode","nodeType":"MemberAccess","src":"904:10:86","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"904:28:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":54365,"id":54384,"nodeType":"Return","src":"897:35:86"}]},"functionSelector":"f6caf0ac","implemented":true,"kind":"function","modifiers":[],"name":"derivePubKeyBytes","nameLocation":"726:17:86","parameters":{"id":54362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54361,"mutability":"mutable","name":"privKey","nameLocation":"752:7:86","nodeType":"VariableDeclaration","scope":54386,"src":"744:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54360,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"743:17:86"},"returnParameters":{"id":54365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54386,"src":"782:12:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54363,"name":"bytes","nodeType":"ElementaryTypeName","src":"782:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"781:14:86"},"scope":55168,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54417,"nodeType":"FunctionDefinition","src":"945:353:86","nodes":[],"body":{"id":54416,"nodeType":"Block","src":"1033:265:86","nodes":[],"statements":[{"assignments":[54394,54396],"declarations":[{"constant":false,"id":54394,"mutability":"mutable","name":"pubKeyX","nameLocation":"1052:7:86","nodeType":"VariableDeclaration","scope":54416,"src":"1044:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54393,"name":"uint256","nodeType":"ElementaryTypeName","src":"1044:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54396,"mutability":"mutable","name":"pubKeyY","nameLocation":"1069:7:86","nodeType":"VariableDeclaration","scope":54416,"src":"1061:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54395,"name":"uint256","nodeType":"ElementaryTypeName","src":"1061:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54405,"initialValue":{"arguments":[{"id":54399,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54388,"src":"1100:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54400,"name":"GX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54328,"src":"1109:2:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54401,"name":"GY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54331,"src":"1113:2:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54402,"name":"AA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54334,"src":"1117:2:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54403,"name":"PP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54340,"src":"1121:2:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54397,"name":"EllipticCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"1080:13:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EllipticCurve_$1129_$","typeString":"type(library EllipticCurve)"}},"id":54398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1094:5:86","memberName":"ecMul","nodeType":"MemberAccess","referencedDeclaration":555,"src":"1080:19:86","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":54404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1080:44:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1043:81:86"},{"expression":{"arguments":[{"arguments":[{"hexValue":"307834","id":54410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1268:3:86","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1262:5:86","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":54408,"name":"uint8","nodeType":"ElementaryTypeName","src":"1262:5:86","typeDescriptions":{}}},"id":54411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:10:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":54412,"name":"pubKeyX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54394,"src":"1274:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":54413,"name":"pubKeyY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54396,"src":"1283:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54406,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1245:3:86","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1249:12:86","memberName":"encodePacked","nodeType":"MemberAccess","src":"1245:16:86","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1245:46:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":54392,"id":54415,"nodeType":"Return","src":"1238:53:86"}]},"functionSelector":"573081a2","implemented":true,"kind":"function","modifiers":[],"name":"deriveValidatorPubKeyBytes","nameLocation":"954:26:86","parameters":{"id":54389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54388,"mutability":"mutable","name":"privKey","nameLocation":"989:7:86","nodeType":"VariableDeclaration","scope":54417,"src":"981:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54387,"name":"uint256","nodeType":"ElementaryTypeName","src":"981:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"980:17:86"},"returnParameters":{"id":54392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54417,"src":"1019:12:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54390,"name":"bytes","nodeType":"ElementaryTypeName","src":"1019:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1018:14:86"},"scope":55168,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":54476,"nodeType":"FunctionDefinition","src":"1304:381:86","nodes":[],"body":{"id":54475,"nodeType":"Block","src":"1413:272:86","nodes":[],"statements":[{"assignments":[54432],"declarations":[{"constant":false,"id":54432,"mutability":"mutable","name":"inputs","nameLocation":"1439:6:86","nodeType":"VariableDeclaration","scope":54475,"src":"1423:22:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":54430,"name":"string","nodeType":"ElementaryTypeName","src":"1423:6:86","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":54431,"nodeType":"ArrayTypeName","src":"1423:8:86","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"id":54438,"initialValue":{"arguments":[{"hexValue":"33","id":54436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1461:1:86","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1448:12:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":54433,"name":"string","nodeType":"ElementaryTypeName","src":"1452:6:86","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":54434,"nodeType":"ArrayTypeName","src":"1452:8:86","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":54437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1448:15:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1423:40:86"},{"expression":{"id":54443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54439,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54432,"src":"1473:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":54441,"indexExpression":{"hexValue":"30","id":54440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1480:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1473:9:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"707974686f6e33","id":54442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1485:9:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_0cdfa8f4e53bff4aedfab9456bdfde8392f37baf7a656dd30c16c085bd6afef0","typeString":"literal_string \"python3\""},"value":"python3"},"src":"1473:21:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":54444,"nodeType":"ExpressionStatement","src":"1473:21:86"},{"expression":{"id":54449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54445,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54432,"src":"1504:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":54447,"indexExpression":{"hexValue":"31","id":54446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1511:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1504:9:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"736372697074732f707974686f6e2f6765745f73656c6563746f72732e7079","id":54448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1516:33:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a514dfdc9f8366c1038145b7ffbf2bde32a1ff45539b5ea50c8b88dfa31a80e","typeString":"literal_string \"scripts/python/get_selectors.py\""},"value":"scripts/python/get_selectors.py"},"src":"1504:45:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":54450,"nodeType":"ExpressionStatement","src":"1504:45:86"},{"expression":{"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54451,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54432,"src":"1559:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":54453,"indexExpression":{"hexValue":"32","id":54452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1566:1:86","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1559:9:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54454,"name":"facetName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54422,"src":"1571:9:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1559:21:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":54456,"nodeType":"ExpressionStatement","src":"1559:21:86"},{"assignments":[54458],"declarations":[{"constant":false,"id":54458,"mutability":"mutable","name":"res","nameLocation":"1604:3:86","nodeType":"VariableDeclaration","scope":54475,"src":"1591:16:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54457,"name":"bytes","nodeType":"ElementaryTypeName","src":"1591:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":54463,"initialValue":{"arguments":[{"id":54461,"name":"inputs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54432,"src":"1617:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"expression":{"id":54459,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54420,"src":"1610:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1613:3:86","memberName":"ffi","nodeType":"MemberAccess","referencedDeclaration":12826,"src":"1610:6:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory[] memory) external returns (bytes memory)"}},"id":54462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1610:14:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1591:33:86"},{"expression":{"id":54473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54464,"name":"facetSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54426,"src":"1634:14:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54467,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54458,"src":"1662:3:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":54469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1668:6:86","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":54468,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1668:6:86","typeDescriptions":{}}},"id":54470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1668:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"id":54471,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1667:10:86","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_bytes4_$dyn_memory_ptr_$","typeString":"type(bytes4[] memory)"}],"expression":{"id":54465,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1651:3:86","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1655:6:86","memberName":"decode","nodeType":"MemberAccess","src":"1651:10:86","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1651:27:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"src":"1634:44:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":54474,"nodeType":"ExpressionStatement","src":"1634:44:86"}]},"implemented":true,"kind":"function","modifiers":[],"name":"generateSelectors","nameLocation":"1313:17:86","parameters":{"id":54423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54420,"mutability":"mutable","name":"vm","nameLocation":"1334:2:86","nodeType":"VariableDeclaration","scope":54476,"src":"1331:5:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},"typeName":{"id":54419,"nodeType":"UserDefinedTypeName","pathNode":{"id":54418,"name":"Vm","nameLocations":["1331:2:86"],"nodeType":"IdentifierPath","referencedDeclaration":14222,"src":"1331:2:86"},"referencedDeclaration":14222,"src":"1331:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"visibility":"internal"},{"constant":false,"id":54422,"mutability":"mutable","name":"facetName","nameLocation":"1352:9:86","nodeType":"VariableDeclaration","scope":54476,"src":"1338:23:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":54421,"name":"string","nodeType":"ElementaryTypeName","src":"1338:6:86","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1330:32:86"},"returnParameters":{"id":54427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54426,"mutability":"mutable","name":"facetSelectors","nameLocation":"1397:14:86","nodeType":"VariableDeclaration","scope":54476,"src":"1381:30:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":54424,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1381:6:86","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":54425,"nodeType":"ArrayTypeName","src":"1381:8:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"src":"1380:32:86"},"scope":55168,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54664,"nodeType":"FunctionDefinition","src":"1691:934:86","nodes":[],"body":{"id":54663,"nodeType":"Block","src":"1843:782:86","nodes":[],"statements":[{"expression":{"id":54497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54491,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54483,"src":"1853:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":54495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1883:1:86","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1869:13:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54492,"name":"uint256","nodeType":"ElementaryTypeName","src":"1873:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54493,"nodeType":"ArrayTypeName","src":"1873:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1869:16:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"1853:32:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54498,"nodeType":"ExpressionStatement","src":"1853:32:86"},{"expression":{"id":54503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54499,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54483,"src":"1895:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54501,"indexExpression":{"hexValue":"30","id":54500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1909:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1895:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1914:3:86","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1895:22:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54504,"nodeType":"ExpressionStatement","src":"1895:22:86"},{"expression":{"id":54509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54505,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54483,"src":"1927:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54507,"indexExpression":{"hexValue":"31","id":54506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1941:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1927:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"323030","id":54508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1946:3:86","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"1927:22:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54510,"nodeType":"ExpressionStatement","src":"1927:22:86"},{"expression":{"id":54515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54511,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54483,"src":"1959:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54513,"indexExpression":{"hexValue":"32","id":54512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1973:1:86","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1959:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"333030","id":54514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1978:3:86","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"},"src":"1959:22:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54516,"nodeType":"ExpressionStatement","src":"1959:22:86"},{"expression":{"id":54521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54517,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54483,"src":"1991:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54519,"indexExpression":{"hexValue":"33","id":54518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2005:1:86","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1991:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"343030","id":54520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2010:3:86","typeDescriptions":{"typeIdentifier":"t_rational_400_by_1","typeString":"int_const 400"},"value":"400"},"src":"1991:22:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54522,"nodeType":"ExpressionStatement","src":"1991:22:86"},{"expression":{"id":54529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54523,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54486,"src":"2024:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":54527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2050:1:86","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2036:13:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54524,"name":"address","nodeType":"ElementaryTypeName","src":"2040:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54525,"nodeType":"ArrayTypeName","src":"2040:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2036:16:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2024:28:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54530,"nodeType":"ExpressionStatement","src":"2024:28:86"},{"expression":{"id":54540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54531,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54486,"src":"2062:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54533,"indexExpression":{"hexValue":"30","id":54532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2072:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2062:12:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":54536,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54483,"src":"2085:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54538,"indexExpression":{"hexValue":"30","id":54537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2099:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2085:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54534,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54479,"src":"2077:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2080:4:86","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2077:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2077:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2062:40:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54541,"nodeType":"ExpressionStatement","src":"2062:40:86"},{"expression":{"id":54551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54542,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54486,"src":"2112:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54544,"indexExpression":{"hexValue":"31","id":54543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2122:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2112:12:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":54547,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54483,"src":"2135:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54549,"indexExpression":{"hexValue":"31","id":54548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2149:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2135:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54545,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54479,"src":"2127:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2130:4:86","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2127:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2127:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2112:40:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54552,"nodeType":"ExpressionStatement","src":"2112:40:86"},{"expression":{"id":54562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54553,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54486,"src":"2162:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54555,"indexExpression":{"hexValue":"32","id":54554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2172:1:86","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2162:12:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":54558,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54483,"src":"2185:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54560,"indexExpression":{"hexValue":"32","id":54559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2199:1:86","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2185:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54556,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54479,"src":"2177:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2180:4:86","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2177:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2177:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2162:40:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54563,"nodeType":"ExpressionStatement","src":"2162:40:86"},{"expression":{"id":54573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54564,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54486,"src":"2212:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54566,"indexExpression":{"hexValue":"33","id":54565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2222:1:86","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2212:12:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":54569,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54483,"src":"2235:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54571,"indexExpression":{"hexValue":"33","id":54570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2249:1:86","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2235:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54567,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54479,"src":"2227:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2230:4:86","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2227:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2227:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2212:40:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54574,"nodeType":"ExpressionStatement","src":"2212:40:86"},{"expression":{"id":54581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54575,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54489,"src":"2263:7:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":54579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2287:1:86","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2273:13:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54576,"name":"uint256","nodeType":"ElementaryTypeName","src":"2277:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54577,"nodeType":"ArrayTypeName","src":"2277:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2273:16:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2263:26:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54582,"nodeType":"ExpressionStatement","src":"2263:26:86"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":54588,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54483,"src":"2315:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54590,"indexExpression":{"hexValue":"30","id":54589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2329:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2315:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54586,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54479,"src":"2307:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2310:4:86","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2307:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2307:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2334:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54583,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54479,"src":"2299:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2302:4:86","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2299:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2299:37:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54594,"nodeType":"ExpressionStatement","src":"2299:37:86"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":54600,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54483,"src":"2362:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54602,"indexExpression":{"hexValue":"31","id":54601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2376:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2362:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54598,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54479,"src":"2354:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2357:4:86","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2354:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2354:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2381:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54595,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54479,"src":"2346:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2349:4:86","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2346:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2346:37:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54606,"nodeType":"ExpressionStatement","src":"2346:37:86"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":54612,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54483,"src":"2409:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54614,"indexExpression":{"hexValue":"32","id":54613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2423:1:86","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2409:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54610,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54479,"src":"2401:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2404:4:86","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2401:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2401:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2428:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54607,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54479,"src":"2393:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2396:4:86","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2393:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2393:37:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54618,"nodeType":"ExpressionStatement","src":"2393:37:86"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":54624,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54483,"src":"2456:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54626,"indexExpression":{"hexValue":"33","id":54625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2470:1:86","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2456:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54622,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54479,"src":"2448:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2451:4:86","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2448:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2448:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2475:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54619,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54479,"src":"2440:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2443:4:86","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2440:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2440:37:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54630,"nodeType":"ExpressionStatement","src":"2440:37:86"},{"expression":{"id":54637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54631,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54489,"src":"2488:7:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":54635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2512:1:86","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":54634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2498:13:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54632,"name":"uint256","nodeType":"ElementaryTypeName","src":"2502:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54633,"nodeType":"ArrayTypeName","src":"2502:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2498:16:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2488:26:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54638,"nodeType":"ExpressionStatement","src":"2488:26:86"},{"expression":{"id":54643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54639,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54489,"src":"2524:7:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54641,"indexExpression":{"hexValue":"30","id":54640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2532:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2524:10:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2537:3:86","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2524:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54644,"nodeType":"ExpressionStatement","src":"2524:16:86"},{"expression":{"id":54649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54645,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54489,"src":"2550:7:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54647,"indexExpression":{"hexValue":"31","id":54646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2558:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2550:10:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2563:3:86","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2550:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54650,"nodeType":"ExpressionStatement","src":"2550:16:86"},{"expression":{"id":54655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54651,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54489,"src":"2576:7:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54653,"indexExpression":{"hexValue":"32","id":54652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2584:1:86","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2576:10:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2589:3:86","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2576:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54656,"nodeType":"ExpressionStatement","src":"2576:16:86"},{"expression":{"id":54661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54657,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54489,"src":"2602:7:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54659,"indexExpression":{"hexValue":"33","id":54658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2610:1:86","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2602:10:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2615:3:86","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2602:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54662,"nodeType":"ExpressionStatement","src":"2602:16:86"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getFourValidators","nameLocation":"1700:17:86","parameters":{"id":54480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54479,"mutability":"mutable","name":"vm","nameLocation":"1730:2:86","nodeType":"VariableDeclaration","scope":54664,"src":"1727:5:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},"typeName":{"id":54478,"nodeType":"UserDefinedTypeName","pathNode":{"id":54477,"name":"Vm","nameLocations":["1727:2:86"],"nodeType":"IdentifierPath","referencedDeclaration":14222,"src":"1727:2:86"},"referencedDeclaration":14222,"src":"1727:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"visibility":"internal"}],"src":"1717:21:86"},"returnParameters":{"id":54490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54483,"mutability":"mutable","name":"validatorKeys","nameLocation":"1774:13:86","nodeType":"VariableDeclaration","scope":54664,"src":"1757:30:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54481,"name":"uint256","nodeType":"ElementaryTypeName","src":"1757:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54482,"nodeType":"ArrayTypeName","src":"1757:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":54486,"mutability":"mutable","name":"addresses","nameLocation":"1806:9:86","nodeType":"VariableDeclaration","scope":54664,"src":"1789:26:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54484,"name":"address","nodeType":"ElementaryTypeName","src":"1789:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54485,"nodeType":"ArrayTypeName","src":"1789:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":54489,"mutability":"mutable","name":"weights","nameLocation":"1834:7:86","nodeType":"VariableDeclaration","scope":54664,"src":"1817:24:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54487,"name":"uint256","nodeType":"ElementaryTypeName","src":"1817:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54488,"nodeType":"ArrayTypeName","src":"1817:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1756:86:86"},"scope":55168,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54817,"nodeType":"FunctionDefinition","src":"2631:780:86","nodes":[],"body":{"id":54816,"nodeType":"Block","src":"2784:627:86","nodes":[],"statements":[{"expression":{"id":54685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54679,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54671,"src":"2794:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2824:1:86","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2810:13:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54680,"name":"uint256","nodeType":"ElementaryTypeName","src":"2814:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54681,"nodeType":"ArrayTypeName","src":"2814:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2810:16:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2794:32:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54686,"nodeType":"ExpressionStatement","src":"2794:32:86"},{"expression":{"id":54691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54687,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54671,"src":"2836:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54689,"indexExpression":{"hexValue":"30","id":54688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2850:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2836:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2855:3:86","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2836:22:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54692,"nodeType":"ExpressionStatement","src":"2836:22:86"},{"expression":{"id":54697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54693,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54671,"src":"2868:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54695,"indexExpression":{"hexValue":"31","id":54694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2882:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2868:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"323030","id":54696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2887:3:86","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"2868:22:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54698,"nodeType":"ExpressionStatement","src":"2868:22:86"},{"expression":{"id":54703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54699,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54671,"src":"2900:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54701,"indexExpression":{"hexValue":"32","id":54700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2914:1:86","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2900:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"333030","id":54702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2919:3:86","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"},"src":"2900:22:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54704,"nodeType":"ExpressionStatement","src":"2900:22:86"},{"expression":{"id":54711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54705,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54674,"src":"2933:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2959:1:86","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2945:13:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54706,"name":"address","nodeType":"ElementaryTypeName","src":"2949:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54707,"nodeType":"ArrayTypeName","src":"2949:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2945:16:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2933:28:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54712,"nodeType":"ExpressionStatement","src":"2933:28:86"},{"expression":{"id":54722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54713,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54674,"src":"2971:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54715,"indexExpression":{"hexValue":"30","id":54714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2981:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2971:12:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":54718,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54671,"src":"2994:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54720,"indexExpression":{"hexValue":"30","id":54719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3008:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2994:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54716,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54667,"src":"2986:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2989:4:86","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2986:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2986:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2971:40:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54723,"nodeType":"ExpressionStatement","src":"2971:40:86"},{"expression":{"id":54733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54724,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54674,"src":"3021:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54726,"indexExpression":{"hexValue":"31","id":54725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3031:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3021:12:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":54729,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54671,"src":"3044:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54731,"indexExpression":{"hexValue":"31","id":54730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3058:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3044:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54727,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54667,"src":"3036:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3039:4:86","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"3036:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3036:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3021:40:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54734,"nodeType":"ExpressionStatement","src":"3021:40:86"},{"expression":{"id":54744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54735,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54674,"src":"3071:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54737,"indexExpression":{"hexValue":"32","id":54736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3081:1:86","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3071:12:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":54740,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54671,"src":"3094:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54742,"indexExpression":{"hexValue":"32","id":54741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3108:1:86","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3094:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54738,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54667,"src":"3086:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3089:4:86","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"3086:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3086:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3071:40:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54745,"nodeType":"ExpressionStatement","src":"3071:40:86"},{"expression":{"id":54752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54746,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54677,"src":"3122:7:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3146:1:86","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54749,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3132:13:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54747,"name":"uint256","nodeType":"ElementaryTypeName","src":"3136:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54748,"nodeType":"ArrayTypeName","src":"3136:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3132:16:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"3122:26:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54753,"nodeType":"ExpressionStatement","src":"3122:26:86"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":54759,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54671,"src":"3174:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54761,"indexExpression":{"hexValue":"30","id":54760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3188:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3174:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54757,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54667,"src":"3166:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3169:4:86","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"3166:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3166:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3193:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54754,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54667,"src":"3158:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3161:4:86","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"3158:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3158:37:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54765,"nodeType":"ExpressionStatement","src":"3158:37:86"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":54771,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54671,"src":"3221:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54773,"indexExpression":{"hexValue":"31","id":54772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3235:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3221:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54769,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54667,"src":"3213:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3216:4:86","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"3213:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3213:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3240:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54766,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54667,"src":"3205:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3208:4:86","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"3205:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3205:37:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54777,"nodeType":"ExpressionStatement","src":"3205:37:86"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":54783,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54671,"src":"3268:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54785,"indexExpression":{"hexValue":"32","id":54784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3282:1:86","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3268:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54781,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54667,"src":"3260:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3263:4:86","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"3260:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":54786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3260:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3287:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":54778,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54667,"src":"3252:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":54780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3255:4:86","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"3252:7:86","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":54788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3252:37:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54789,"nodeType":"ExpressionStatement","src":"3252:37:86"},{"expression":{"id":54796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54790,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54677,"src":"3300:7:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":54794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3324:1:86","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":54793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3310:13:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54791,"name":"uint256","nodeType":"ElementaryTypeName","src":"3314:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54792,"nodeType":"ArrayTypeName","src":"3314:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3310:16:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"3300:26:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54797,"nodeType":"ExpressionStatement","src":"3300:26:86"},{"expression":{"id":54802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54798,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54677,"src":"3336:7:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54800,"indexExpression":{"hexValue":"30","id":54799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3344:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3336:10:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":54801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3349:3:86","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"3336:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54803,"nodeType":"ExpressionStatement","src":"3336:16:86"},{"expression":{"id":54808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54804,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54677,"src":"3362:7:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54806,"indexExpression":{"hexValue":"31","id":54805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3370:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3362:10:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313031","id":54807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3375:3:86","typeDescriptions":{"typeIdentifier":"t_rational_101_by_1","typeString":"int_const 101"},"value":"101"},"src":"3362:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54809,"nodeType":"ExpressionStatement","src":"3362:16:86"},{"expression":{"id":54814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54810,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54677,"src":"3388:7:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54812,"indexExpression":{"hexValue":"32","id":54811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3396:1:86","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3388:10:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313032","id":54813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3401:3:86","typeDescriptions":{"typeIdentifier":"t_rational_102_by_1","typeString":"int_const 102"},"value":"102"},"src":"3388:16:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54815,"nodeType":"ExpressionStatement","src":"3388:16:86"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getThreeValidators","nameLocation":"2640:18:86","parameters":{"id":54668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54667,"mutability":"mutable","name":"vm","nameLocation":"2671:2:86","nodeType":"VariableDeclaration","scope":54817,"src":"2668:5:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},"typeName":{"id":54666,"nodeType":"UserDefinedTypeName","pathNode":{"id":54665,"name":"Vm","nameLocations":["2668:2:86"],"nodeType":"IdentifierPath","referencedDeclaration":14222,"src":"2668:2:86"},"referencedDeclaration":14222,"src":"2668:2:86","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"visibility":"internal"}],"src":"2658:21:86"},"returnParameters":{"id":54678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54671,"mutability":"mutable","name":"validatorKeys","nameLocation":"2715:13:86","nodeType":"VariableDeclaration","scope":54817,"src":"2698:30:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54669,"name":"uint256","nodeType":"ElementaryTypeName","src":"2698:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54670,"nodeType":"ArrayTypeName","src":"2698:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":54674,"mutability":"mutable","name":"addresses","nameLocation":"2747:9:86","nodeType":"VariableDeclaration","scope":54817,"src":"2730:26:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54672,"name":"address","nodeType":"ElementaryTypeName","src":"2730:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54673,"nodeType":"ArrayTypeName","src":"2730:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":54677,"mutability":"mutable","name":"weights","nameLocation":"2775:7:86","nodeType":"VariableDeclaration","scope":54817,"src":"2758:24:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54675,"name":"uint256","nodeType":"ElementaryTypeName","src":"2758:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54676,"nodeType":"ArrayTypeName","src":"2758:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2697:86:86"},"scope":55168,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":54891,"nodeType":"FunctionDefinition","src":"3417:433:86","nodes":[],"body":{"id":54890,"nodeType":"Block","src":"3516:334:86","nodes":[],"statements":[{"expression":{"id":54831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54826,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54824,"src":"3526:4:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3635","id":54829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3543:2:86","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"id":54828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3533:9:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54827,"name":"bytes","nodeType":"ElementaryTypeName","src":"3537:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3533:13:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3526:20:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54832,"nodeType":"ExpressionStatement","src":"3526:20:86"},{"expression":{"id":54840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54833,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54824,"src":"3556:4:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54835,"indexExpression":{"hexValue":"31","id":54834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3561:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3556:7:86","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54838,"name":"seq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54819,"src":"3573:3:86","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":54837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3566:6:86","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":54836,"name":"bytes1","nodeType":"ElementaryTypeName","src":"3566:6:86","typeDescriptions":{}}},"id":54839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3566:11:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3556:21:86","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":54841,"nodeType":"ExpressionStatement","src":"3556:21:86"},{"assignments":[54843],"declarations":[{"constant":false,"id":54843,"mutability":"mutable","name":"dataSubset","nameLocation":"3638:10:86","nodeType":"VariableDeclaration","scope":54890,"src":"3625:23:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54842,"name":"bytes","nodeType":"ElementaryTypeName","src":"3625:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":54851,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54846,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54824,"src":"3661:4:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3666:6:86","memberName":"length","nodeType":"MemberAccess","src":"3661:11:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":54848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3675:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3661:15:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3651:9:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":54844,"name":"bytes","nodeType":"ElementaryTypeName","src":"3655:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":54850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3651:26:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3625:52:86"},{"body":{"id":54873,"nodeType":"Block","src":"3726:52:86","statements":[{"expression":{"id":54871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54863,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54843,"src":"3740:10:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54867,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54864,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54853,"src":"3751:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":54865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3755:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3751:5:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3740:17:86","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":54868,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54824,"src":"3760:4:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54870,"indexExpression":{"id":54869,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54853,"src":"3765:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3760:7:86","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3740:27:86","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":54872,"nodeType":"ExpressionStatement","src":"3740:27:86"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54856,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54853,"src":"3704:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":54857,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54824,"src":"3708:4:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3713:6:86","memberName":"length","nodeType":"MemberAccess","src":"3708:11:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3704:15:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54874,"initializationExpression":{"assignments":[54853],"declarations":[{"constant":false,"id":54853,"mutability":"mutable","name":"i","nameLocation":"3697:1:86","nodeType":"VariableDeclaration","scope":54874,"src":"3692:6:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54852,"name":"uint","nodeType":"ElementaryTypeName","src":"3692:4:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54855,"initialValue":{"hexValue":"31","id":54854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3701:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"3692:10:86"},"loopExpression":{"expression":{"id":54861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3721:3:86","subExpression":{"id":54860,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54853,"src":"3721:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54862,"nodeType":"ExpressionStatement","src":"3721:3:86"},"nodeType":"ForStatement","src":"3687:91:86"},{"expression":{"id":54888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54875,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54822,"src":"3788:4:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54883,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54843,"src":"3829:10:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54882,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3819:9:86","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3819:21:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3811:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":54880,"name":"uint256","nodeType":"ElementaryTypeName","src":"3811:7:86","typeDescriptions":{}}},"id":54885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3811:30:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3803:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":54878,"name":"uint160","nodeType":"ElementaryTypeName","src":"3803:7:86","typeDescriptions":{}}},"id":54886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3803:39:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":54877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3795:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54876,"name":"address","nodeType":"ElementaryTypeName","src":"3795:7:86","typeDescriptions":{}}},"id":54887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3795:48:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3788:55:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54889,"nodeType":"ExpressionStatement","src":"3788:55:86"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deriveValidatorAddress","nameLocation":"3426:22:86","parameters":{"id":54820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54819,"mutability":"mutable","name":"seq","nameLocation":"3455:3:86","nodeType":"VariableDeclaration","scope":54891,"src":"3449:9:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":54818,"name":"uint8","nodeType":"ElementaryTypeName","src":"3449:5:86","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3448:11:86"},"returnParameters":{"id":54825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54822,"mutability":"mutable","name":"addr","nameLocation":"3491:4:86","nodeType":"VariableDeclaration","scope":54891,"src":"3483:12:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54821,"name":"address","nodeType":"ElementaryTypeName","src":"3483:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54824,"mutability":"mutable","name":"data","nameLocation":"3510:4:86","nodeType":"VariableDeclaration","scope":54891,"src":"3497:17:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54823,"name":"bytes","nodeType":"ElementaryTypeName","src":"3497:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3482:33:86"},"scope":55168,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":54934,"nodeType":"FunctionDefinition","src":"3856:331:86","nodes":[],"body":{"id":54933,"nodeType":"Block","src":"3986:201:86","nodes":[],"statements":[{"expression":{"id":54904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54902,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54898,"src":"3996:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54903,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54893,"src":"4006:3:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3996:13:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54905,"nodeType":"ExpressionStatement","src":"3996:13:86"},{"assignments":[54907],"declarations":[{"constant":false,"id":54907,"mutability":"mutable","name":"pubkey","nameLocation":"4032:6:86","nodeType":"VariableDeclaration","scope":54933,"src":"4019:19:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54906,"name":"bytes","nodeType":"ElementaryTypeName","src":"4019:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":54911,"initialValue":{"arguments":[{"id":54909,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54893,"src":"4059:3:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54908,"name":"derivePubKeyBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54386,"src":"4041:17:86","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":54910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4041:22:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4019:44:86"},{"expression":{"id":54916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54912,"name":"validatorKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54900,"src":"4073:12:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54914,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54893,"src":"4115:3:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54913,"name":"deriveValidatorPubKeyBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54417,"src":"4088:26:86","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":54915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4088:31:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4073:46:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":54917,"nodeType":"ExpressionStatement","src":"4073:46:86"},{"expression":{"id":54931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54918,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54896,"src":"4129:4:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":54926,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54907,"src":"4170:6:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54925,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4160:9:86","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4160:17:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4152:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":54923,"name":"uint256","nodeType":"ElementaryTypeName","src":"4152:7:86","typeDescriptions":{}}},"id":54928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4152:26:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4144:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":54921,"name":"uint160","nodeType":"ElementaryTypeName","src":"4144:7:86","typeDescriptions":{}}},"id":54929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4144:35:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":54920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4136:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54919,"name":"address","nodeType":"ElementaryTypeName","src":"4136:7:86","typeDescriptions":{}}},"id":54930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4136:44:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4129:51:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54932,"nodeType":"ExpressionStatement","src":"4129:51:86"}]},"implemented":true,"kind":"function","modifiers":[],"name":"newValidator","nameLocation":"3865:12:86","parameters":{"id":54894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54893,"mutability":"mutable","name":"key","nameLocation":"3895:3:86","nodeType":"VariableDeclaration","scope":54934,"src":"3887:11:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54892,"name":"uint256","nodeType":"ElementaryTypeName","src":"3887:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3877:27:86"},"returnParameters":{"id":54901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54896,"mutability":"mutable","name":"addr","nameLocation":"3936:4:86","nodeType":"VariableDeclaration","scope":54934,"src":"3928:12:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54895,"name":"address","nodeType":"ElementaryTypeName","src":"3928:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54898,"mutability":"mutable","name":"privKey","nameLocation":"3950:7:86","nodeType":"VariableDeclaration","scope":54934,"src":"3942:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54897,"name":"uint256","nodeType":"ElementaryTypeName","src":"3942:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54900,"mutability":"mutable","name":"validatorKey","nameLocation":"3972:12:86","nodeType":"VariableDeclaration","scope":54934,"src":"3959:25:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54899,"name":"bytes","nodeType":"ElementaryTypeName","src":"3959:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3927:58:86"},"scope":55168,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":55020,"nodeType":"FunctionDefinition","src":"4193:587:86","nodes":[],"body":{"id":55019,"nodeType":"Block","src":"4350:430:86","nodes":[],"statements":[{"expression":{"id":54954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54948,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54946,"src":"4360:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54952,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54936,"src":"4388:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4376:11:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":54949,"name":"bytes","nodeType":"ElementaryTypeName","src":"4380:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54950,"nodeType":"ArrayTypeName","src":"4380:7:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":54953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4376:14:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"4360:30:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":54955,"nodeType":"ExpressionStatement","src":"4360:30:86"},{"expression":{"id":54962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54956,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54940,"src":"4400:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54960,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54936,"src":"4427:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4413:13:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":54957,"name":"address","nodeType":"ElementaryTypeName","src":"4417:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54958,"nodeType":"ArrayTypeName","src":"4417:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":54961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4413:16:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"4400:29:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54963,"nodeType":"ExpressionStatement","src":"4400:29:86"},{"expression":{"id":54970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54964,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54943,"src":"4439:8:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":54968,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54936,"src":"4464:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4450:13:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":54965,"name":"uint256","nodeType":"ElementaryTypeName","src":"4454:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54966,"nodeType":"ArrayTypeName","src":"4454:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":54969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4450:16:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"4439:27:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":54971,"nodeType":"ExpressionStatement","src":"4439:27:86"},{"body":{"id":55012,"nodeType":"Block","src":"4506:213:86","statements":[{"assignments":[54983,54985,54987],"declarations":[{"constant":false,"id":54983,"mutability":"mutable","name":"addr","nameLocation":"4529:4:86","nodeType":"VariableDeclaration","scope":55012,"src":"4521:12:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54982,"name":"address","nodeType":"ElementaryTypeName","src":"4521:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54985,"mutability":"mutable","name":"key","nameLocation":"4543:3:86","nodeType":"VariableDeclaration","scope":55012,"src":"4535:11:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54984,"name":"uint256","nodeType":"ElementaryTypeName","src":"4535:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54987,"mutability":"mutable","name":"validatorKey","nameLocation":"4561:12:86","nodeType":"VariableDeclaration","scope":55012,"src":"4548:25:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54986,"name":"bytes","nodeType":"ElementaryTypeName","src":"4548:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":54993,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":54989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4590:3:86","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":54990,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54973,"src":"4596:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4590:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54988,"name":"newValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54934,"src":"4577:12:86","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (address,uint256,bytes memory)"}},"id":54992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4577:21:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(address,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4520:78:86"},{"expression":{"id":54998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54994,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54940,"src":"4612:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":54996,"indexExpression":{"id":54995,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54973,"src":"4623:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4612:13:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54997,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54983,"src":"4628:4:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4612:20:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54999,"nodeType":"ExpressionStatement","src":"4612:20:86"},{"expression":{"id":55004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55000,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54946,"src":"4646:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":55002,"indexExpression":{"id":55001,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54973,"src":"4660:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4646:16:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55003,"name":"validatorKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54987,"src":"4665:12:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4646:31:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55005,"nodeType":"ExpressionStatement","src":"4646:31:86"},{"expression":{"id":55010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55006,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54943,"src":"4691:8:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55008,"indexExpression":{"id":55007,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54973,"src":"4700:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4691:11:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55009,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54985,"src":"4705:3:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4691:17:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55011,"nodeType":"ExpressionStatement","src":"4691:17:86"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54976,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54973,"src":"4494:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":54977,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54936,"src":"4498:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4494:5:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55013,"initializationExpression":{"assignments":[54973],"declarations":[{"constant":false,"id":54973,"mutability":"mutable","name":"i","nameLocation":"4487:1:86","nodeType":"VariableDeclaration","scope":55013,"src":"4482:6:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54972,"name":"uint","nodeType":"ElementaryTypeName","src":"4482:4:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54975,"initialValue":{"hexValue":"30","id":54974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4491:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4482:10:86"},"loopExpression":{"expression":{"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4501:3:86","subExpression":{"id":54979,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54973,"src":"4501:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54981,"nodeType":"ExpressionStatement","src":"4501:3:86"},"nodeType":"ForStatement","src":"4477:242:86"},{"expression":{"components":[{"id":55014,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54940,"src":"4737:10:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":55015,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54943,"src":"4749:8:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":55016,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54946,"src":"4759:13:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":55017,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4736:37:86","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory,bytes memory[] memory)"}},"functionReturnParameters":54947,"id":55018,"nodeType":"Return","src":"4729:44:86"}]},"implemented":true,"kind":"function","modifiers":[],"name":"newValidators","nameLocation":"4202:13:86","parameters":{"id":54937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54936,"mutability":"mutable","name":"n","nameLocation":"4233:1:86","nodeType":"VariableDeclaration","scope":55020,"src":"4225:9:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54935,"name":"uint256","nodeType":"ElementaryTypeName","src":"4225:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4215:25:86"},"returnParameters":{"id":54947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54940,"mutability":"mutable","name":"validators","nameLocation":"4281:10:86","nodeType":"VariableDeclaration","scope":55020,"src":"4264:27:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":54938,"name":"address","nodeType":"ElementaryTypeName","src":"4264:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54939,"nodeType":"ArrayTypeName","src":"4264:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":54943,"mutability":"mutable","name":"privKeys","nameLocation":"4310:8:86","nodeType":"VariableDeclaration","scope":55020,"src":"4293:25:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":54941,"name":"uint256","nodeType":"ElementaryTypeName","src":"4293:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54942,"nodeType":"ArrayTypeName","src":"4293:9:86","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":54946,"mutability":"mutable","name":"validatorKeys","nameLocation":"4335:13:86","nodeType":"VariableDeclaration","scope":55020,"src":"4320:28:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":54944,"name":"bytes","nodeType":"ElementaryTypeName","src":"4320:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54945,"nodeType":"ArrayTypeName","src":"4320:7:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"4263:86:86"},"scope":55168,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":55094,"nodeType":"FunctionDefinition","src":"4786:423:86","nodes":[],"body":{"id":55093,"nodeType":"Block","src":"4875:334:86","nodes":[],"statements":[{"expression":{"id":55034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55029,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55027,"src":"4885:4:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3635","id":55032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4902:2:86","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"id":55031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4892:9:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":55030,"name":"bytes","nodeType":"ElementaryTypeName","src":"4896:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":55033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4892:13:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4885:20:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55035,"nodeType":"ExpressionStatement","src":"4885:20:86"},{"expression":{"id":55043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55036,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55027,"src":"4915:4:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55038,"indexExpression":{"hexValue":"31","id":55037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4920:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4915:7:86","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55041,"name":"seq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55022,"src":"4932:3:86","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":55040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4925:6:86","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":55039,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4925:6:86","typeDescriptions":{}}},"id":55042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4925:11:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"4915:21:86","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":55044,"nodeType":"ExpressionStatement","src":"4915:21:86"},{"assignments":[55046],"declarations":[{"constant":false,"id":55046,"mutability":"mutable","name":"dataSubset","nameLocation":"4997:10:86","nodeType":"VariableDeclaration","scope":55093,"src":"4984:23:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55045,"name":"bytes","nodeType":"ElementaryTypeName","src":"4984:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":55054,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55049,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55027,"src":"5020:4:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5025:6:86","memberName":"length","nodeType":"MemberAccess","src":"5020:11:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5034:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5020:15:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5010:9:86","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":55047,"name":"bytes","nodeType":"ElementaryTypeName","src":"5014:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":55053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5010:26:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4984:52:86"},{"body":{"id":55076,"nodeType":"Block","src":"5085:52:86","statements":[{"expression":{"id":55074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55066,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55046,"src":"5099:10:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55070,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55067,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55056,"src":"5110:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":55068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5114:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5110:5:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5099:17:86","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":55071,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55027,"src":"5119:4:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55073,"indexExpression":{"id":55072,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55056,"src":"5124:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5119:7:86","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"5099:27:86","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":55075,"nodeType":"ExpressionStatement","src":"5099:27:86"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55059,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55056,"src":"5063:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":55060,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55027,"src":"5067:4:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5072:6:86","memberName":"length","nodeType":"MemberAccess","src":"5067:11:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5063:15:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55077,"initializationExpression":{"assignments":[55056],"declarations":[{"constant":false,"id":55056,"mutability":"mutable","name":"i","nameLocation":"5056:1:86","nodeType":"VariableDeclaration","scope":55077,"src":"5051:6:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55055,"name":"uint","nodeType":"ElementaryTypeName","src":"5051:4:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55058,"initialValue":{"hexValue":"31","id":55057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5060:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"5051:10:86"},"loopExpression":{"expression":{"id":55064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5080:3:86","subExpression":{"id":55063,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55056,"src":"5080:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55065,"nodeType":"ExpressionStatement","src":"5080:3:86"},"nodeType":"ForStatement","src":"5046:91:86"},{"expression":{"id":55091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55078,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55025,"src":"5147:4:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":55086,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55046,"src":"5188:10:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55085,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5178:9:86","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5178:21:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":55084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5170:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":55083,"name":"uint256","nodeType":"ElementaryTypeName","src":"5170:7:86","typeDescriptions":{}}},"id":55088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5170:30:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5162:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":55081,"name":"uint160","nodeType":"ElementaryTypeName","src":"5162:7:86","typeDescriptions":{}}},"id":55089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5162:39:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":55080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5154:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55079,"name":"address","nodeType":"ElementaryTypeName","src":"5154:7:86","typeDescriptions":{}}},"id":55090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5154:48:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5147:55:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55092,"nodeType":"ExpressionStatement","src":"5147:55:86"}]},"implemented":true,"kind":"function","modifiers":[],"name":"derivePubKey","nameLocation":"4795:12:86","parameters":{"id":55023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55022,"mutability":"mutable","name":"seq","nameLocation":"4814:3:86","nodeType":"VariableDeclaration","scope":55094,"src":"4808:9:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":55021,"name":"uint8","nodeType":"ElementaryTypeName","src":"4808:5:86","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4807:11:86"},"returnParameters":{"id":55028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55025,"mutability":"mutable","name":"addr","nameLocation":"4850:4:86","nodeType":"VariableDeclaration","scope":55094,"src":"4842:12:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55024,"name":"address","nodeType":"ElementaryTypeName","src":"4842:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55027,"mutability":"mutable","name":"data","nameLocation":"4869:4:86","nodeType":"VariableDeclaration","scope":55094,"src":"4856:17:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55026,"name":"bytes","nodeType":"ElementaryTypeName","src":"4856:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4841:33:86"},"scope":55168,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":55122,"nodeType":"FunctionDefinition","src":"5215:213:86","nodes":[],"body":{"id":55121,"nodeType":"Block","src":"5289:139:86","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55102,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55096,"src":"5307:2:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5310:6:86","memberName":"length","nodeType":"MemberAccess","src":"5307:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":55104,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55098,"src":"5320:2:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":55105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5323:6:86","memberName":"length","nodeType":"MemberAccess","src":"5320:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5307:22:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6279746573206c656e206e6f7420657175616c","id":55107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5331:21:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_2de6bd869d85e0de7044fd7872e60b4dfafaf91b20036b02d3aaa70266de00f8","typeString":"literal_string \"bytes len not equal\""},"value":"bytes len not equal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2de6bd869d85e0de7044fd7872e60b4dfafaf91b20036b02d3aaa70266de00f8","typeString":"literal_string \"bytes len not equal\""}],"id":55101,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5299:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5299:54:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55109,"nodeType":"ExpressionStatement","src":"5299:54:86"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":55112,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55096,"src":"5381:2:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55111,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5371:9:86","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5371:13:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":55115,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55098,"src":"5398:2:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":55114,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5388:9:86","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5388:13:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5371:30:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6279746573206e6f7420657175616c","id":55118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5403:17:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11837872e6282a7a5c3e38defc117597d04d25c721765e78ecdd143346d41ed","typeString":"literal_string \"bytes not equal\""},"value":"bytes not equal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11837872e6282a7a5c3e38defc117597d04d25c721765e78ecdd143346d41ed","typeString":"literal_string \"bytes not equal\""}],"id":55110,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5363:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5363:58:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55120,"nodeType":"ExpressionStatement","src":"5363:58:86"}]},"implemented":true,"kind":"function","modifiers":[],"name":"ensureBytesEqual","nameLocation":"5224:16:86","parameters":{"id":55099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55096,"mutability":"mutable","name":"_a","nameLocation":"5254:2:86","nodeType":"VariableDeclaration","scope":55122,"src":"5241:15:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55095,"name":"bytes","nodeType":"ElementaryTypeName","src":"5241:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":55098,"mutability":"mutable","name":"_b","nameLocation":"5271:2:86","nodeType":"VariableDeclaration","scope":55122,"src":"5258:15:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55097,"name":"bytes","nodeType":"ElementaryTypeName","src":"5258:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5240:34:86"},"returnParameters":{"id":55100,"nodeType":"ParameterList","parameters":[],"src":"5289:0:86"},"scope":55168,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":55167,"nodeType":"FunctionDefinition","src":"5485:339:86","nodes":[],"body":{"id":55166,"nodeType":"Block","src":"5634:190:86","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55134,"name":"array1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55125,"src":"5652:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":55135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5659:6:86","memberName":"length","nodeType":"MemberAccess","src":"5652:13:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":55136,"name":"array2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55128,"src":"5669:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":55137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5676:6:86","memberName":"length","nodeType":"MemberAccess","src":"5669:13:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5652:30:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":55139,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"5684:12:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":55133,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5644:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5644:53:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55141,"nodeType":"ExpressionStatement","src":"5644:53:86"},{"body":{"id":55164,"nodeType":"Block","src":"5748:70:86","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":55160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":55154,"name":"array1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55125,"src":"5770:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":55156,"indexExpression":{"id":55155,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55143,"src":"5777:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5770:9:86","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":55157,"name":"array2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55128,"src":"5783:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":55159,"indexExpression":{"id":55158,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55143,"src":"5790:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5783:9:86","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5770:22:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":55161,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55130,"src":"5794:12:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":55153,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5762:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5762:45:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55163,"nodeType":"ExpressionStatement","src":"5762:45:86"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55146,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55143,"src":"5724:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":55147,"name":"array1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55125,"src":"5728:6:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":55148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5735:6:86","memberName":"length","nodeType":"MemberAccess","src":"5728:13:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5724:17:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55165,"initializationExpression":{"assignments":[55143],"declarations":[{"constant":false,"id":55143,"mutability":"mutable","name":"i","nameLocation":"5717:1:86","nodeType":"VariableDeclaration","scope":55165,"src":"5712:6:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55142,"name":"uint","nodeType":"ElementaryTypeName","src":"5712:4:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55145,"initialValue":{"hexValue":"30","id":55144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5721:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5712:10:86"},"loopExpression":{"expression":{"id":55151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5743:3:86","subExpression":{"id":55150,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55143,"src":"5743:1:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55152,"nodeType":"ExpressionStatement","src":"5743:3:86"},"nodeType":"ForStatement","src":"5707:111:86"}]},"implemented":true,"kind":"function","modifiers":[],"name":"validateBytes4Array","nameLocation":"5494:19:86","parameters":{"id":55131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55125,"mutability":"mutable","name":"array1","nameLocation":"5539:6:86","nodeType":"VariableDeclaration","scope":55167,"src":"5523:22:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":55123,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5523:6:86","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":55124,"nodeType":"ArrayTypeName","src":"5523:8:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":55128,"mutability":"mutable","name":"array2","nameLocation":"5571:6:86","nodeType":"VariableDeclaration","scope":55167,"src":"5555:22:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":55126,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5555:6:86","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":55127,"nodeType":"ArrayTypeName","src":"5555:8:86","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":55130,"mutability":"mutable","name":"errorMessage","nameLocation":"5601:12:86","nodeType":"VariableDeclaration","scope":55167,"src":"5587:26:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":55129,"name":"string","nodeType":"ElementaryTypeName","src":"5587:6:86","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5513:106:86"},"returnParameters":{"id":55132,"nodeType":"ParameterList","parameters":[],"src":"5634:0:86"},"scope":55168,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestUtils","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[55168],"name":"TestUtils","nameLocation":"171:9:86","scope":55169,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":86} \ No newline at end of file +{"abi":[{"type":"function","name":"AA","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"BB","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"GX","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"GY","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"PP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"derivePubKey","inputs":[{"name":"privKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"derivePubKeyBytes","inputs":[{"name":"privKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"deriveValidatorPubKeyBytes","inputs":[{"name":"privKey","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080806040523461001a5761072e9081610020823930815050f35b600080fdfe60806040818152600436101561001457600080fd5b600091823560e01c90816303a507be146101dd575080635727dc5c146101c7578063573081a2146101775780637a308a4c14610142578063997da8d41461012d578063bc9e2bcf14610104578063eeeac01e146100e95763f6caf0ac1461007a57600080fd5b60203660031901126100e55761009160043561025b565b8291925192602084015281830152808252606082019282841067ffffffffffffffff8511176100d15750829052605f19906100cc8184610212565b030190f35b634e487b7160e01b81526041600452602490fd5b5080fd5b50816003193601126100e557516401000003d0198152602090f35b5090602036600319011261012a575061011e60043561025b565b82519182526020820152f35b80fd5b50816003193601126100e55751908152602090f35b50816003193601126100e557602090517f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b88152f35b5060203660031901126100e5576101c39061019360043561025b565b8291925192600160fa1b602085015260218401526041830152604182526101b98261041c565b5191829182610212565b0390f35b50816003193601126100e5576020905160078152f35b8390816003193601126100e557807f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179860209252f35b6020808252825181830181905290939260005b82811061024757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610225565b61026490610372565b9291908315158481610361575b5080610359575b156103235760009360016401000003d019825b6102b8575050506401000003d01984800991826401000003d0199109936401000003d01992839109900990565b91959091868104916401000003d0198484096401000003d019036401000003d019811161030d576401000003d01991089296809281810291818304149015171561030d57810390811161030d5791908261028b565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b210373ab6b132b960911b6044820152606490fd5b506001610278565b6401000003d0191415905038610271565b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798917f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b86001928015610417576000948592918590805b6103d55750505050929190565b600181166103f9575b906103ee9160011c938493610639565b9093919290916103c8565b9390838382986103ee9a61040c9561044e565b9097509590936103de565b509190565b6080810190811067ffffffffffffffff82111761043857604052565b634e487b7160e01b600052604160045260246000fd5b909295939194811580610631575b6106275786158061061f575b6106155760409283519461047b8661041c565b60803687376401000003d0199586898009928382528760208301948b09845287858009928783019684885289606085019588098552885197608089019289841067ffffffffffffffff85111761043857928a52518a928392839283910996878b525190099c8d9460208a019e8f525190099188880195838752519009906060870193828552149182159261060a575b5050156105c65784519161051d8361041c565b6080368437518451870387811161030d578791088252518851860386811161030d57869108936020820194808652868351818180099385019380855209916060840192808452880388811161030d578880885184519009600209890389811161030d5789809492818481950908089651955190519009988587039187831161030d578791519051900986039086821161030d57869485809492819351989c089009089509900990565b845162461bcd60e51b815260206004820152601e60248201527f557365206a6163446f75626c652066756e6374696f6e20696e737465616400006044820152606490fd5b14159050388061050a565b5091945050929190565b508215610468565b9194509092915050565b50831561045c565b92909180156106f5576401000003d01990818480098282800990838080838a0960040997818080806000978009870992800960030908908488800885038581116106e15785908184800908808603918683116106cd5786818192096008098603938685116106b95750859493919285809481939b08900908940960020990565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b84526011600452602484fd5b9056fea26469706673582212209cf69af28d79ee32cab80ff0f42b68090f51611093df0f7bebecdee26743452b64736f6c63430008130033","sourceMap":"163:5276:96:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040818152600436101561001457600080fd5b600091823560e01c90816303a507be146101dd575080635727dc5c146101c7578063573081a2146101775780637a308a4c14610142578063997da8d41461012d578063bc9e2bcf14610104578063eeeac01e146100e95763f6caf0ac1461007a57600080fd5b60203660031901126100e55761009160043561025b565b8291925192602084015281830152808252606082019282841067ffffffffffffffff8511176100d15750829052605f19906100cc8184610212565b030190f35b634e487b7160e01b81526041600452602490fd5b5080fd5b50816003193601126100e557516401000003d0198152602090f35b5090602036600319011261012a575061011e60043561025b565b82519182526020820152f35b80fd5b50816003193601126100e55751908152602090f35b50816003193601126100e557602090517f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b88152f35b5060203660031901126100e5576101c39061019360043561025b565b8291925192600160fa1b602085015260218401526041830152604182526101b98261041c565b5191829182610212565b0390f35b50816003193601126100e5576020905160078152f35b8390816003193601126100e557807f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179860209252f35b6020808252825181830181905290939260005b82811061024757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610225565b61026490610372565b9291908315158481610361575b5080610359575b156103235760009360016401000003d019825b6102b8575050506401000003d01984800991826401000003d0199109936401000003d01992839109900990565b91959091868104916401000003d0198484096401000003d019036401000003d019811161030d576401000003d01991089296809281810291818304149015171561030d57810390811161030d5791908261028b565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b210373ab6b132b960911b6044820152606490fd5b506001610278565b6401000003d0191415905038610271565b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798917f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b86001928015610417576000948592918590805b6103d55750505050929190565b600181166103f9575b906103ee9160011c938493610639565b9093919290916103c8565b9390838382986103ee9a61040c9561044e565b9097509590936103de565b509190565b6080810190811067ffffffffffffffff82111761043857604052565b634e487b7160e01b600052604160045260246000fd5b909295939194811580610631575b6106275786158061061f575b6106155760409283519461047b8661041c565b60803687376401000003d0199586898009928382528760208301948b09845287858009928783019684885289606085019588098552885197608089019289841067ffffffffffffffff85111761043857928a52518a928392839283910996878b525190099c8d9460208a019e8f525190099188880195838752519009906060870193828552149182159261060a575b5050156105c65784519161051d8361041c565b6080368437518451870387811161030d578791088252518851860386811161030d57869108936020820194808652868351818180099385019380855209916060840192808452880388811161030d578880885184519009600209890389811161030d5789809492818481950908089651955190519009988587039187831161030d578791519051900986039086821161030d57869485809492819351989c089009089509900990565b845162461bcd60e51b815260206004820152601e60248201527f557365206a6163446f75626c652066756e6374696f6e20696e737465616400006044820152606490fd5b14159050388061050a565b5091945050929190565b508215610468565b9194509092915050565b50831561045c565b92909180156106f5576401000003d01990818480098282800990838080838a0960040997818080806000978009870992800960030908908488800885038581116106e15785908184800908808603918683116106cd5786818192096008098603938685116106b95750859493919285809481939b08900908940960020990565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b84526011600452602484fd5b9056fea26469706673582212209cf69af28d79ee32cab80ff0f42b68090f51611093df0f7bebecdee26743452b64736f6c63430008130033","sourceMap":"163:5276:96:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;163:5276:96;;;;843:44;163:5276;;843:44;:::i;:::-;163:5276;;;;904:28;163:5276;904:28;;163:5276;;;;;904:28;;;163:5276;;;;;;;;;;;;;-1:-1:-1;163:5276:96;;;-1:-1:-1;;163:5276:96;;;;;:::i;:::-;;;;;;-1:-1:-1;;;163:5276:96;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;163:5276:96;;;;;;-1:-1:-1;163:5276:96;;;-1:-1:-1;;163:5276:96;;;;;660:44;163:5276;;660:44;:::i;:::-;163:5276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:66;163:5276;;;;-1:-1:-1;163:5276:96;;-1:-1:-1;;163:5276:96;;;;;;1080:44;163:5276;;1080:44;:::i;:::-;163:5276;;;;;;;;;1245:46;;163:5276;;;;;;;;;;1245:46;;;;;:::i;:::-;163:5276;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;454:1;163:5276;;;;;;;;;;;;;;;216:66;163:5276;;;;;;;;;;;;;;;;;;;;-1:-1:-1;163:5276:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;8046:405:0;8341:31;8046:405;8341:31;:::i;:::-;3213:15;;;842:7;;;3213:15;842:7;:20;;8046:405;842:32;;;;8046:405;163:5276:96;;;;;8360:1:0;-1:-1:-1;;926:16:0;1003:7;;;490:66:96;;;;;3254:23:0;;;490:66:96;;;;3300:22:0;;490:66:96;-1:-1:-1;;490:66:96;;;3356:24:0;3345:41;;8046:405;:::o;996:169::-;163:5276:96;;;;;;;;-1:-1:-1;;163:5276:96;;1086:20:0;490:66:96;;163:5276;490:66;;163:5276;;;;-1:-1:-1;;490:66:96;1069:44:0;1050:64;1138:16;;163:5276:96;;;;;;;;;;;;;;;;;;;;;;1128:26:0;;;996:169;;163:5276:96;;;;;;;;;;;;;;;-1:-1:-1;;;163:5276:96;;;;;;;;;;;;-1:-1:-1;;;163:5276:96;;;;;;;842:32:0;;8360:1;842:32;;:20;-1:-1:-1;;853:9:0;;;-1:-1:-1;842:20:0;;;12886:800;216:66:96;12886:800:0;317:66:96;8360:1:0;13192:7;;;13188:57;;163:5276:96;;;;13255:22:0;;;;13403:14;;;13660:19;;;;;;12886:800;:::o;13396:255::-;8360:1;13438:13;;13433:109;;13396:255;163:5276:96;13609:31:0;163:5276:96;8360:1:0;163:5276:96;13609:31:0;;;;:::i;:::-;13594:46;;;;;;13396:255;;13433:109;13492:35;;;;;;13609:31;13492:35;;;;:::i;:::-;13477:50;;-1:-1:-1;13477:50:0;;;13433:109;;13188:57;13215:19;;;:::o;163:5276:96:-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;8838:1966:0;;;;;;;9126:8;;:20;;;8838:1966;9122:48;;9184:8;;:20;;;8838:1966;9180:48;;163:5276:96;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;490:66:96;;9437:21:0;;;163:5276:96;;;;;;;;9476:23:0;;;163:5276:96;;9517:21:0;;;;163:5276:96;;;;;;;;;;;;9556:23:0;;;163:5276:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9635:23:0;163:5276:96;;;;;9672:23:0;;9621:158;;;163:5276:96;9621:158:0;;163:5276:96;;;;9709:23:0;;9621:158;;;;163:5276:96;;;;;9746:23:0;;9621:158;163:5276:96;9621:158:0;;163:5276:96;;;;9898:14:0;;;;:32;;;8838:1966;163:5276:96;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;10044:31:0;;;163:5276:96;;;;;;;;;;;;10105:31:0;;;163:5276:96;;;;;;;;;;;10168:25:0;;;;163:5276:96;;;;;;;10226:25:0;163:5276:96;;;;;;;;;;;;;;;;;;;;;10401:25:0;;9512:1;10391:41;163:5276:96;;;;;;;10315:25:0;;;;;;;;;10308:51;10374:64;163:5276:96;;;;;;10549:25:0;;163:5276:96;;;;;;;;;;;;;;;10649:25:0;;163:5276:96;;;;;;;;;;;;;;;;;10778:19:0;10542:48;;10503:114;;10632:48;10741:21;;10727:41;;8838:1966;:::o;163:5276:96:-;;;-1:-1:-1;;;163:5276:96;;;;;;;;;;;;;;;;;;;;9898:32:0;9916:14;;;-1:-1:-1;9898:32:0;;;;9180:48;9206:22;;;;;;;;:::o;9184:20::-;9196:8;;;9184:20;;9122:48;9148:22;;-1:-1:-1;9148:22:0;;;-1:-1:-1;;9148:22:0:o;9126:20::-;9138:8;;;9126:20;;11091:1480;;;;11329:7;;11325:32;;-1:-1:-1;;490:66:96;;11726:19:0;;;11774;;;;11843:18;;;;;;;11840:1;11833:34;-1:-1:-1;;;;;;11962:17:0;;;11950:35;;11678:19;;;11926:1;11919:17;11899:113;12255:17;;;;;163:5276:96;;;;;;;12230:17:0;;;;;;12223:55;163:5276:96;;;;;;;;;12414:17:0;;;;;12411:1;12404:33;163:5276:96;;;;;;;;12548:16:0;;;;;;;;;;;12355:23;;12345:39;;12325:139;12512:19;;12509:1;12502:35;11091:1480;:::o;163:5276:96:-;-1:-1:-1;;;163:5276:96;;;11840:1:0;163:5276:96;;;;;-1:-1:-1;;;163:5276:96;;;11840:1:0;163:5276:96;;;;;-1:-1:-1;;;163:5276:96;;;11840:1:0;163:5276:96;;;;11325:32:0;11338:19;:::o","linkReferences":{}},"methodIdentifiers":{"AA()":"997da8d4","BB()":"5727dc5c","GX()":"03a507be","GY()":"7a308a4c","PP()":"eeeac01e","derivePubKey(uint256)":"bc9e2bcf","derivePubKeyBytes(uint256)":"f6caf0ac","deriveValidatorPubKeyBytes(uint256)":"573081a2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AA\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privKey\",\"type\":\"uint256\"}],\"name\":\"derivePubKey\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privKey\",\"type\":\"uint256\"}],\"name\":\"derivePubKeyBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"privKey\",\"type\":\"uint256\"}],\"name\":\"deriveValidatorPubKeyBytes\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/helpers/TestUtils.sol\":\"TestUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol\":{\"keccak256\":\"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b\",\"dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP\"]},\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363\",\"dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7\",\"dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d\",\"dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477\",\"dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5\",\"dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985\",\"dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07\",\"dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf\",\"dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c\",\"dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88\",\"dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"test/helpers/TestUtils.sol\":{\"keccak256\":\"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992\",\"dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"AA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"GX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"GY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"derivePubKey","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"privKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"derivePubKeyBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"privKey","type":"uint256"}],"stateMutability":"pure","type":"function","name":"deriveValidatorPubKeyBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/helpers/TestUtils.sol":"TestUtils"},"libraries":{},"viaIR":true},"sources":{"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol":{"keccak256":"0x50ee7c49cd01a085214ce375a6f806f8fa0898f616247770a2e8d2f9b7a59d7b","urls":["bzz-raw://828da8f7309850b2afd6b5eaea78f3bac7678c666c1a92108abddb17c3286e4b","dweb:/ipfs/Qmdv2jiGW1cfvCB5UP6MNGWGNVkQ2aAh89xG5uyinbS3hP"],"license":"MIT"},"lib/forge-std/lib/ds-test/src/test.sol":{"keccak256":"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b","urls":["bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240","dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"],"license":"GPL-3.0-or-later"},"lib/forge-std/src/Base.sol":{"keccak256":"0x609e3a00319169988cc8272e837f350a9ba77cf8f8f62e4897a8e4a8a5f0fb27","urls":["bzz-raw://b24435e35ba5b080ebd6e8976c23fb735c7212d042be8462ffd2ea50c5250363","dweb:/ipfs/QmPeVvN7FS4oMmCuYAeRdZihTfrG4tA7Vvunuvv59a6wre"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60","urls":["bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b","dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9100bd38453711d5f5ae32d16b4aacef8d4e26abb3061fcc9920cd30cdb49315","urls":["bzz-raw://114654e304083d3403510edd13d7df2223747337150ecf51dd36b441e50498f7","dweb:/ipfs/QmQy6uvcVHyHzU2RbuvEo1hKiV7k81z21gR6DSj4DkCP8D"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x0e6f32877ab26a83c9334eb5a000bf326bd2a0b04fea8647e045cea9c445f534","urls":["bzz-raw://8965978bfa66ddab8db95449a96ee47d44c62ebcb4271ab293e847f359a2ba7d","dweb:/ipfs/QmazxpekoHnno4ySoNUct7NcKx6UJR7UvcMtJ9JYsBDEUh"],"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":"0xd855e1fea6247f1bef118e2bee9f0039832988b7173fd17766bba4014ae26a3c","urls":["bzz-raw://c58c0f0b66852dfd3c76fb7958d8b023489d7a874c7cb1ad4f2021f9ec8ab477","dweb:/ipfs/Qmd3MX9HAkNUhPddL29ekwhqgRnjAobZ35UzchaJZNACCN"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b","urls":["bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c","dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"],"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":"0xd1517df281f973dba8b7ba52c02d3df552b60d91b8f47e4669049da648778673","urls":["bzz-raw://52e43264f58a5dcfd985f3c99aa81064805aa8f1c2b4c6521fd63d45cdbba8d5","dweb:/ipfs/QmUMTF6cRjt5tCQrrgQDXVRmHQLjevNsTvLFdaA1m9TBj9"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x2882555b0f58e48144e46e9aa5118a506b31ad7485327d54e8f681e8b414c337","urls":["bzz-raw://2850bcb1322de9d9dd87ded42debbe0e8fc4048173788d4c00c98b50e5f76985","dweb:/ipfs/QmUiPKnj7GZLLQbJGY7bVDu79Q9jGEYNjR5ZBgwFy8mH97"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0xce33e7c67d273bd32e324c347a5fc7b8815fb7d4880a1bc6569409b2e91f0017","urls":["bzz-raw://91a2c8facd01ee5242135a4f1b368f99fc087574c2b8ebb3e2bdec9af8be0e07","dweb:/ipfs/QmStG1wYSPXMEirv9nsA9p4EjzGRtoH999czMxGMj8KHhM"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0xddf16afce2bb7bbb69ed868d4c7ee8b4ea4ffbf8929427fe799682f107534945","urls":["bzz-raw://52f6ebde2a4cb9d08aea5fb3d62b2f15961bb9a29d6d9e30dd0859d0d631cabf","dweb:/ipfs/QmeJ9Dp1GYUggzjGiwTZkxCfB15NfyfgcyrNZL5tyWZbVZ"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x06f0761a502a8dc74c06029c603831780ff32f1e85dad2ae0f810b7545fba09b","urls":["bzz-raw://70e940ed53ef0270d1d6f3215fcccf92dd675f8ec4a59e1fbd0535e0d52fb46c","dweb:/ipfs/QmPTkXXzGKFyWBmbQPrL6Yg4ECWmu3LndSH9ex2E3czZuF"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0xcd5706f5a7025825d9fd389c89b49bf571f9abaea8a062dc4048320b5b43bf46","urls":["bzz-raw://c066485a7d4bd18d44efb4c89274b0959e8066b9a480383a2ce07d7f31555f88","dweb:/ipfs/QmckeYfA5FtAjcxaytq69Dpj6uY57tbQ61kNPPxXi9kgbW"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"test/helpers/TestUtils.sol":{"keccak256":"0x78315e8c25cb19bc4c1a4cfc8c1bb5b6af01fc0c8e8a3508924ae4c2cdd31942","urls":["bzz-raw://12845cda2c87d21f94b7b636f083f267d14833808df7a1750dcc6dc63e454992","dweb:/ipfs/QmaTBx43EPideFMQN3onnzsMgwmaTK7bpMHzaBhXhEGGAk"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"test/helpers/TestUtils.sol","id":57052,"exportedSymbols":{"DSTest":[3720],"EllipticCurve":[1129],"StdAssertions":[5210],"StdChains":[5904],"StdCheats":[8180],"StdInvariant":[8470],"StdStorage":[9220],"StdStyle":[11864],"StdUtils":[12691],"Test":[12740],"TestBase":[3780],"TestUtils":[57051],"Vm":[14222],"console":[22286],"console2":[30382],"stdError":[8246],"stdJson":[9046],"stdMath":[9188],"stdStorage":[10653]},"nodeType":"SourceUnit","src":"46:5394:96","nodes":[{"id":56265,"nodeType":"PragmaDirective","src":"46:23:96","nodes":[],"literals":["solidity","0.8",".19"]},{"id":56266,"nodeType":"ImportDirective","src":"71:28:96","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":57052,"sourceUnit":12741,"symbolAliases":[],"unitAlias":""},{"id":56267,"nodeType":"ImportDirective","src":"100:61:96","nodes":[],"absolutePath":"lib/elliptic-curve-solidity/contracts/EllipticCurve.sol","file":"elliptic-curve-solidity/contracts/EllipticCurve.sol","nameLocation":"-1:-1:-1","scope":57052,"sourceUnit":1130,"symbolAliases":[],"unitAlias":""},{"id":57051,"nodeType":"ContractDefinition","src":"163:5276:96","nodes":[{"id":56270,"nodeType":"VariableDeclaration","src":"187:95:96","nodes":[],"constant":true,"functionSelector":"03a507be","mutability":"constant","name":"GX","nameLocation":"211:2:96","scope":57051,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56268,"name":"uint256","nodeType":"ElementaryTypeName","src":"187:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307837394245363637454639444342424143353541303632393543453837304230373032394246434442324443453238443935394632383135423136463831373938","id":56269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"216:66:96","typeDescriptions":{"typeIdentifier":"t_rational_55066263022277343669578718895168534326250603453777594175500187360389116729240_by_1","typeString":"int_const 5506...(69 digits omitted)...9240"},"value":"0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798"},"visibility":"public"},{"id":56273,"nodeType":"VariableDeclaration","src":"288:95:96","nodes":[],"constant":true,"functionSelector":"7a308a4c","mutability":"constant","name":"GY","nameLocation":"312:2:96","scope":57051,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56271,"name":"uint256","nodeType":"ElementaryTypeName","src":"288:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307834383341444137373236413343343635354441344642464330453131303841384644313742343438413638353534313939433437443038464642313044344238","id":56272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"317:66:96","typeDescriptions":{"typeIdentifier":"t_rational_32670510020758816978083085130507043184471273380659243275938904335757337482424_by_1","typeString":"int_const 3267...(69 digits omitted)...2424"},"value":"0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8"},"visibility":"public"},{"id":56276,"nodeType":"VariableDeclaration","src":"389:30:96","nodes":[],"constant":true,"functionSelector":"997da8d4","mutability":"constant","name":"AA","nameLocation":"413:2:96","scope":57051,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56274,"name":"uint256","nodeType":"ElementaryTypeName","src":"389:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":56275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"418:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":56279,"nodeType":"VariableDeclaration","src":"425:30:96","nodes":[],"constant":true,"functionSelector":"5727dc5c","mutability":"constant","name":"BB","nameLocation":"449:2:96","scope":57051,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56277,"name":"uint256","nodeType":"ElementaryTypeName","src":"425:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":56278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"454:1:96","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"visibility":"public"},{"id":56282,"nodeType":"VariableDeclaration","src":"461:95:96","nodes":[],"constant":true,"functionSelector":"eeeac01e","mutability":"constant","name":"PP","nameLocation":"485:2:96","scope":57051,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56280,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646454646464646433246","id":56281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"490:66:96","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007908834671663_by_1","typeString":"int_const 1157...(70 digits omitted)...1663"},"value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F"},"visibility":"public"},{"id":56301,"nodeType":"FunctionDefinition","src":"563:148:96","nodes":[],"body":{"id":56300,"nodeType":"Block","src":"643:68:96","nodes":[],"statements":[{"expression":{"arguments":[{"id":56293,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56284,"src":"680:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56294,"name":"GX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56270,"src":"689:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56295,"name":"GY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56273,"src":"693:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56296,"name":"AA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56276,"src":"697:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56297,"name":"PP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56282,"src":"701:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56291,"name":"EllipticCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"660:13:96","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EllipticCurve_$1129_$","typeString":"type(library EllipticCurve)"}},"id":56292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"674:5:96","memberName":"ecMul","nodeType":"MemberAccess","referencedDeclaration":555,"src":"660:19:96","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":56298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"660:44:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":56290,"id":56299,"nodeType":"Return","src":"653:51:96"}]},"functionSelector":"bc9e2bcf","implemented":true,"kind":"function","modifiers":[],"name":"derivePubKey","nameLocation":"572:12:96","parameters":{"id":56285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56284,"mutability":"mutable","name":"privKey","nameLocation":"593:7:96","nodeType":"VariableDeclaration","scope":56301,"src":"585:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56283,"name":"uint256","nodeType":"ElementaryTypeName","src":"585:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"584:17:96"},"returnParameters":{"id":56290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56301,"src":"625:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56286,"name":"uint256","nodeType":"ElementaryTypeName","src":"625:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56301,"src":"634:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56288,"name":"uint256","nodeType":"ElementaryTypeName","src":"634:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"624:18:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":56328,"nodeType":"FunctionDefinition","src":"717:222:96","nodes":[],"body":{"id":56327,"nodeType":"Block","src":"796:143:96","nodes":[],"statements":[{"assignments":[56309,56311],"declarations":[{"constant":false,"id":56309,"mutability":"mutable","name":"pubKeyX","nameLocation":"815:7:96","nodeType":"VariableDeclaration","scope":56327,"src":"807:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56308,"name":"uint256","nodeType":"ElementaryTypeName","src":"807:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56311,"mutability":"mutable","name":"pubKeyY","nameLocation":"832:7:96","nodeType":"VariableDeclaration","scope":56327,"src":"824:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56310,"name":"uint256","nodeType":"ElementaryTypeName","src":"824:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56320,"initialValue":{"arguments":[{"id":56314,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56303,"src":"863:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56315,"name":"GX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56270,"src":"872:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56316,"name":"GY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56273,"src":"876:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56317,"name":"AA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56276,"src":"880:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56318,"name":"PP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56282,"src":"884:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56312,"name":"EllipticCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"843:13:96","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EllipticCurve_$1129_$","typeString":"type(library EllipticCurve)"}},"id":56313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"857:5:96","memberName":"ecMul","nodeType":"MemberAccess","referencedDeclaration":555,"src":"843:19:96","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":56319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"843:44:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"806:81:96"},{"expression":{"arguments":[{"id":56323,"name":"pubKeyX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56309,"src":"915:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56324,"name":"pubKeyY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56311,"src":"924:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"904:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"908:6:96","memberName":"encode","nodeType":"MemberAccess","src":"904:10:96","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"904:28:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":56307,"id":56326,"nodeType":"Return","src":"897:35:96"}]},"functionSelector":"f6caf0ac","implemented":true,"kind":"function","modifiers":[],"name":"derivePubKeyBytes","nameLocation":"726:17:96","parameters":{"id":56304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56303,"mutability":"mutable","name":"privKey","nameLocation":"752:7:96","nodeType":"VariableDeclaration","scope":56328,"src":"744:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56302,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"743:17:96"},"returnParameters":{"id":56307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56328,"src":"782:12:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56305,"name":"bytes","nodeType":"ElementaryTypeName","src":"782:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"781:14:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":56359,"nodeType":"FunctionDefinition","src":"945:353:96","nodes":[],"body":{"id":56358,"nodeType":"Block","src":"1033:265:96","nodes":[],"statements":[{"assignments":[56336,56338],"declarations":[{"constant":false,"id":56336,"mutability":"mutable","name":"pubKeyX","nameLocation":"1052:7:96","nodeType":"VariableDeclaration","scope":56358,"src":"1044:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56335,"name":"uint256","nodeType":"ElementaryTypeName","src":"1044:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56338,"mutability":"mutable","name":"pubKeyY","nameLocation":"1069:7:96","nodeType":"VariableDeclaration","scope":56358,"src":"1061:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56337,"name":"uint256","nodeType":"ElementaryTypeName","src":"1061:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56347,"initialValue":{"arguments":[{"id":56341,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56330,"src":"1100:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56342,"name":"GX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56270,"src":"1109:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56343,"name":"GY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56273,"src":"1113:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56344,"name":"AA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56276,"src":"1117:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56345,"name":"PP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56282,"src":"1121:2:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56339,"name":"EllipticCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"1080:13:96","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EllipticCurve_$1129_$","typeString":"type(library EllipticCurve)"}},"id":56340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1094:5:96","memberName":"ecMul","nodeType":"MemberAccess","referencedDeclaration":555,"src":"1080:19:96","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256,uint256)"}},"id":56346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1080:44:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1043:81:96"},{"expression":{"arguments":[{"arguments":[{"hexValue":"307834","id":56352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1268:3:96","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":56351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1262:5:96","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":56350,"name":"uint8","nodeType":"ElementaryTypeName","src":"1262:5:96","typeDescriptions":{}}},"id":56353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:10:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":56354,"name":"pubKeyX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56336,"src":"1274:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":56355,"name":"pubKeyY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56338,"src":"1283:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56348,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1245:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1249:12:96","memberName":"encodePacked","nodeType":"MemberAccess","src":"1245:16:96","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":56356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1245:46:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":56334,"id":56357,"nodeType":"Return","src":"1238:53:96"}]},"functionSelector":"573081a2","implemented":true,"kind":"function","modifiers":[],"name":"deriveValidatorPubKeyBytes","nameLocation":"954:26:96","parameters":{"id":56331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56330,"mutability":"mutable","name":"privKey","nameLocation":"989:7:96","nodeType":"VariableDeclaration","scope":56359,"src":"981:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56329,"name":"uint256","nodeType":"ElementaryTypeName","src":"981:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"980:17:96"},"returnParameters":{"id":56334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56359,"src":"1019:12:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56332,"name":"bytes","nodeType":"ElementaryTypeName","src":"1019:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1018:14:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":56547,"nodeType":"FunctionDefinition","src":"1304:934:96","nodes":[],"body":{"id":56546,"nodeType":"Block","src":"1456:782:96","nodes":[],"statements":[{"expression":{"id":56380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56374,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1466:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":56378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1496:1:96","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":56377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1482:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56375,"name":"uint256","nodeType":"ElementaryTypeName","src":"1486:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56376,"nodeType":"ArrayTypeName","src":"1486:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"1466:32:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56381,"nodeType":"ExpressionStatement","src":"1466:32:96"},{"expression":{"id":56386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56382,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1508:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56384,"indexExpression":{"hexValue":"30","id":56383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1522:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1508:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1527:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1508:22:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56387,"nodeType":"ExpressionStatement","src":"1508:22:96"},{"expression":{"id":56392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56388,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1540:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56390,"indexExpression":{"hexValue":"31","id":56389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1554:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1540:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"323030","id":56391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1559:3:96","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"1540:22:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56393,"nodeType":"ExpressionStatement","src":"1540:22:96"},{"expression":{"id":56398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56394,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1572:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56396,"indexExpression":{"hexValue":"32","id":56395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1586:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1572:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"333030","id":56397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1591:3:96","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"},"src":"1572:22:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56399,"nodeType":"ExpressionStatement","src":"1572:22:96"},{"expression":{"id":56404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56400,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1604:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56402,"indexExpression":{"hexValue":"33","id":56401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1618:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1604:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"343030","id":56403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1623:3:96","typeDescriptions":{"typeIdentifier":"t_rational_400_by_1","typeString":"int_const 400"},"value":"400"},"src":"1604:22:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56405,"nodeType":"ExpressionStatement","src":"1604:22:96"},{"expression":{"id":56412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56406,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56369,"src":"1637:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":56410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1663:1:96","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":56409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1649:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":56407,"name":"address","nodeType":"ElementaryTypeName","src":"1653:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56408,"nodeType":"ArrayTypeName","src":"1653:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":56411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1649:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"1637:28:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56413,"nodeType":"ExpressionStatement","src":"1637:28:96"},{"expression":{"id":56423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56414,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56369,"src":"1675:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56416,"indexExpression":{"hexValue":"30","id":56415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1685:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1675:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56419,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1698:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56421,"indexExpression":{"hexValue":"30","id":56420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1712:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1698:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56417,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1690:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1693:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1690:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1690:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1675:40:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56424,"nodeType":"ExpressionStatement","src":"1675:40:96"},{"expression":{"id":56434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56425,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56369,"src":"1725:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56427,"indexExpression":{"hexValue":"31","id":56426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1735:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1725:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56430,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1748:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56432,"indexExpression":{"hexValue":"31","id":56431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1762:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1748:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56428,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1740:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1743:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1740:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1740:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1725:40:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56435,"nodeType":"ExpressionStatement","src":"1725:40:96"},{"expression":{"id":56445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56436,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56369,"src":"1775:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56438,"indexExpression":{"hexValue":"32","id":56437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1785:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1775:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56441,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1798:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56443,"indexExpression":{"hexValue":"32","id":56442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1812:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1798:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56439,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1790:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1793:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1790:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1790:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1775:40:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56446,"nodeType":"ExpressionStatement","src":"1775:40:96"},{"expression":{"id":56456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56447,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56369,"src":"1825:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56449,"indexExpression":{"hexValue":"33","id":56448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1835:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1825:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56452,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1848:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56454,"indexExpression":{"hexValue":"33","id":56453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1862:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1848:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56450,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1840:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1843:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1840:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1840:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1825:40:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56457,"nodeType":"ExpressionStatement","src":"1825:40:96"},{"expression":{"id":56464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56458,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56372,"src":"1876:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":56462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1900:1:96","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":56461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1886:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56459,"name":"uint256","nodeType":"ElementaryTypeName","src":"1890:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56460,"nodeType":"ArrayTypeName","src":"1890:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1886:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"1876:26:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56465,"nodeType":"ExpressionStatement","src":"1876:26:96"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56471,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1928:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56473,"indexExpression":{"hexValue":"30","id":56472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1942:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1928:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56469,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1920:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1923:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1920:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1920:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1947:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56466,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1912:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1915:4:96","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"1912:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:37:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56477,"nodeType":"ExpressionStatement","src":"1912:37:96"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56483,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"1975:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56485,"indexExpression":{"hexValue":"31","id":56484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1989:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1975:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56481,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1967:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1970:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"1967:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1967:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1994:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56478,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"1959:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1962:4:96","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"1959:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1959:37:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56489,"nodeType":"ExpressionStatement","src":"1959:37:96"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56495,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"2022:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56497,"indexExpression":{"hexValue":"32","id":56496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2036:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2022:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56493,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"2014:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2017:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2014:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2014:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2041:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56490,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"2006:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2009:4:96","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2006:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2006:37:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56501,"nodeType":"ExpressionStatement","src":"2006:37:96"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56507,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56366,"src":"2069:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56509,"indexExpression":{"hexValue":"33","id":56508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2083:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2069:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56505,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"2061:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2064:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2061:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2061:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2088:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56502,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"2053:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2056:4:96","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2053:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2053:37:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56513,"nodeType":"ExpressionStatement","src":"2053:37:96"},{"expression":{"id":56520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56514,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56372,"src":"2101:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"34","id":56518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2125:1:96","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":56517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2111:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56515,"name":"uint256","nodeType":"ElementaryTypeName","src":"2115:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56516,"nodeType":"ArrayTypeName","src":"2115:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2111:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2101:26:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56521,"nodeType":"ExpressionStatement","src":"2101:26:96"},{"expression":{"id":56526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56522,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56372,"src":"2137:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56524,"indexExpression":{"hexValue":"30","id":56523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2145:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2137:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2150:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2137:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56527,"nodeType":"ExpressionStatement","src":"2137:16:96"},{"expression":{"id":56532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56528,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56372,"src":"2163:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56530,"indexExpression":{"hexValue":"31","id":56529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2171:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2163:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2176:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2163:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56533,"nodeType":"ExpressionStatement","src":"2163:16:96"},{"expression":{"id":56538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56534,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56372,"src":"2189:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56536,"indexExpression":{"hexValue":"32","id":56535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2197:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2189:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2202:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2189:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56539,"nodeType":"ExpressionStatement","src":"2189:16:96"},{"expression":{"id":56544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56540,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56372,"src":"2215:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56542,"indexExpression":{"hexValue":"33","id":56541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2223:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2215:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2228:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2215:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56545,"nodeType":"ExpressionStatement","src":"2215:16:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getFourValidators","nameLocation":"1313:17:96","parameters":{"id":56363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56362,"mutability":"mutable","name":"vm","nameLocation":"1343:2:96","nodeType":"VariableDeclaration","scope":56547,"src":"1340:5:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},"typeName":{"id":56361,"nodeType":"UserDefinedTypeName","pathNode":{"id":56360,"name":"Vm","nameLocations":["1340:2:96"],"nodeType":"IdentifierPath","referencedDeclaration":14222,"src":"1340:2:96"},"referencedDeclaration":14222,"src":"1340:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"visibility":"internal"}],"src":"1330:21:96"},"returnParameters":{"id":56373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56366,"mutability":"mutable","name":"validatorKeys","nameLocation":"1387:13:96","nodeType":"VariableDeclaration","scope":56547,"src":"1370:30:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56364,"name":"uint256","nodeType":"ElementaryTypeName","src":"1370:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56365,"nodeType":"ArrayTypeName","src":"1370:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":56369,"mutability":"mutable","name":"addresses","nameLocation":"1419:9:96","nodeType":"VariableDeclaration","scope":56547,"src":"1402:26:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":56367,"name":"address","nodeType":"ElementaryTypeName","src":"1402:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56368,"nodeType":"ArrayTypeName","src":"1402:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":56372,"mutability":"mutable","name":"weights","nameLocation":"1447:7:96","nodeType":"VariableDeclaration","scope":56547,"src":"1430:24:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56370,"name":"uint256","nodeType":"ElementaryTypeName","src":"1430:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56371,"nodeType":"ArrayTypeName","src":"1430:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1369:86:96"},"scope":57051,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":56700,"nodeType":"FunctionDefinition","src":"2244:780:96","nodes":[],"body":{"id":56699,"nodeType":"Block","src":"2397:627:96","nodes":[],"statements":[{"expression":{"id":56568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56562,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2407:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":56566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2437:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":56565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2423:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56563,"name":"uint256","nodeType":"ElementaryTypeName","src":"2427:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56564,"nodeType":"ArrayTypeName","src":"2427:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2423:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2407:32:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56569,"nodeType":"ExpressionStatement","src":"2407:32:96"},{"expression":{"id":56574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56570,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2449:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56572,"indexExpression":{"hexValue":"30","id":56571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2463:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2449:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2468:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2449:22:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56575,"nodeType":"ExpressionStatement","src":"2449:22:96"},{"expression":{"id":56580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56576,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2481:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56578,"indexExpression":{"hexValue":"31","id":56577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2495:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2481:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"323030","id":56579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2500:3:96","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"2481:22:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56581,"nodeType":"ExpressionStatement","src":"2481:22:96"},{"expression":{"id":56586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56582,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2513:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56584,"indexExpression":{"hexValue":"32","id":56583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2527:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2513:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"333030","id":56585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2532:3:96","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"},"src":"2513:22:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56587,"nodeType":"ExpressionStatement","src":"2513:22:96"},{"expression":{"id":56594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56588,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56557,"src":"2546:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":56592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2572:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":56591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2558:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":56589,"name":"address","nodeType":"ElementaryTypeName","src":"2562:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56590,"nodeType":"ArrayTypeName","src":"2562:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":56593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2558:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2546:28:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56595,"nodeType":"ExpressionStatement","src":"2546:28:96"},{"expression":{"id":56605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56596,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56557,"src":"2584:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56598,"indexExpression":{"hexValue":"30","id":56597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2594:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2584:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56601,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2607:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56603,"indexExpression":{"hexValue":"30","id":56602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2621:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2607:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56599,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2599:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2602:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2599:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2599:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2584:40:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56606,"nodeType":"ExpressionStatement","src":"2584:40:96"},{"expression":{"id":56616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56607,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56557,"src":"2634:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56609,"indexExpression":{"hexValue":"31","id":56608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2644:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2634:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56612,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2657:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56614,"indexExpression":{"hexValue":"31","id":56613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2671:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2657:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56610,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2649:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2652:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2649:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2649:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2634:40:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56617,"nodeType":"ExpressionStatement","src":"2634:40:96"},{"expression":{"id":56627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56618,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56557,"src":"2684:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56620,"indexExpression":{"hexValue":"32","id":56619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2694:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2684:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":56623,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2707:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56625,"indexExpression":{"hexValue":"32","id":56624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2721:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2707:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56621,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2699:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2702:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2699:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2699:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2684:40:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56628,"nodeType":"ExpressionStatement","src":"2684:40:96"},{"expression":{"id":56635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56629,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"2735:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":56633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2759:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":56632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2745:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56630,"name":"uint256","nodeType":"ElementaryTypeName","src":"2749:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56631,"nodeType":"ArrayTypeName","src":"2749:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2745:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2735:26:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56636,"nodeType":"ExpressionStatement","src":"2735:26:96"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56642,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2787:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56644,"indexExpression":{"hexValue":"30","id":56643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2801:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2787:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56640,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2779:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2782:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2779:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56637,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2771:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2774:4:96","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2771:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2771:37:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56648,"nodeType":"ExpressionStatement","src":"2771:37:96"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56654,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2834:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56656,"indexExpression":{"hexValue":"31","id":56655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2848:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2834:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56652,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2826:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2829:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2826:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2826:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2853:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56649,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2818:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2821:4:96","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2818:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2818:37:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56660,"nodeType":"ExpressionStatement","src":"2818:37:96"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":56666,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"2881:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56668,"indexExpression":{"hexValue":"32","id":56667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2895:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2881:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56664,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2873:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2876:4:96","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12811,"src":"2873:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":56669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2873:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":56670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2900:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":56661,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56550,"src":"2865:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"id":56663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2868:4:96","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":13864,"src":"2865:7:96","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":56671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2865:37:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56672,"nodeType":"ExpressionStatement","src":"2865:37:96"},{"expression":{"id":56679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56673,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"2913:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":56677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2937:1:96","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":56676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2923:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56674,"name":"uint256","nodeType":"ElementaryTypeName","src":"2927:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56675,"nodeType":"ArrayTypeName","src":"2927:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2923:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"2913:26:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56680,"nodeType":"ExpressionStatement","src":"2913:26:96"},{"expression":{"id":56685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56681,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"2949:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56683,"indexExpression":{"hexValue":"30","id":56682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2957:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2949:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313030","id":56684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2962:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"2949:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56686,"nodeType":"ExpressionStatement","src":"2949:16:96"},{"expression":{"id":56691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56687,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"2975:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56689,"indexExpression":{"hexValue":"31","id":56688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2983:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2975:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313031","id":56690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2988:3:96","typeDescriptions":{"typeIdentifier":"t_rational_101_by_1","typeString":"int_const 101"},"value":"101"},"src":"2975:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56692,"nodeType":"ExpressionStatement","src":"2975:16:96"},{"expression":{"id":56697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56693,"name":"weights","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"3001:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56695,"indexExpression":{"hexValue":"32","id":56694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3009:1:96","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3001:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"313032","id":56696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3014:3:96","typeDescriptions":{"typeIdentifier":"t_rational_102_by_1","typeString":"int_const 102"},"value":"102"},"src":"3001:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56698,"nodeType":"ExpressionStatement","src":"3001:16:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getThreeValidators","nameLocation":"2253:18:96","parameters":{"id":56551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56550,"mutability":"mutable","name":"vm","nameLocation":"2284:2:96","nodeType":"VariableDeclaration","scope":56700,"src":"2281:5:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"},"typeName":{"id":56549,"nodeType":"UserDefinedTypeName","pathNode":{"id":56548,"name":"Vm","nameLocations":["2281:2:96"],"nodeType":"IdentifierPath","referencedDeclaration":14222,"src":"2281:2:96"},"referencedDeclaration":14222,"src":"2281:2:96","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$14222","typeString":"contract Vm"}},"visibility":"internal"}],"src":"2271:21:96"},"returnParameters":{"id":56561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56554,"mutability":"mutable","name":"validatorKeys","nameLocation":"2328:13:96","nodeType":"VariableDeclaration","scope":56700,"src":"2311:30:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56552,"name":"uint256","nodeType":"ElementaryTypeName","src":"2311:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56553,"nodeType":"ArrayTypeName","src":"2311:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":56557,"mutability":"mutable","name":"addresses","nameLocation":"2360:9:96","nodeType":"VariableDeclaration","scope":56700,"src":"2343:26:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":56555,"name":"address","nodeType":"ElementaryTypeName","src":"2343:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56556,"nodeType":"ArrayTypeName","src":"2343:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":56560,"mutability":"mutable","name":"weights","nameLocation":"2388:7:96","nodeType":"VariableDeclaration","scope":56700,"src":"2371:24:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56558,"name":"uint256","nodeType":"ElementaryTypeName","src":"2371:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56559,"nodeType":"ArrayTypeName","src":"2371:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2310:86:96"},"scope":57051,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":56774,"nodeType":"FunctionDefinition","src":"3030:433:96","nodes":[],"body":{"id":56773,"nodeType":"Block","src":"3129:334:96","nodes":[],"statements":[{"expression":{"id":56714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56709,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56707,"src":"3139:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3635","id":56712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3156:2:96","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"id":56711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3146:9:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":56710,"name":"bytes","nodeType":"ElementaryTypeName","src":"3150:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":56713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3146:13:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3139:20:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56715,"nodeType":"ExpressionStatement","src":"3139:20:96"},{"expression":{"id":56723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56716,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56707,"src":"3169:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56718,"indexExpression":{"hexValue":"31","id":56717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3174:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3169:7:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":56721,"name":"seq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56702,"src":"3186:3:96","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":56720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3179:6:96","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":56719,"name":"bytes1","nodeType":"ElementaryTypeName","src":"3179:6:96","typeDescriptions":{}}},"id":56722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3179:11:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3169:21:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":56724,"nodeType":"ExpressionStatement","src":"3169:21:96"},{"assignments":[56726],"declarations":[{"constant":false,"id":56726,"mutability":"mutable","name":"dataSubset","nameLocation":"3251:10:96","nodeType":"VariableDeclaration","scope":56773,"src":"3238:23:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56725,"name":"bytes","nodeType":"ElementaryTypeName","src":"3238:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":56734,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":56729,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56707,"src":"3274:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3279:6:96","memberName":"length","nodeType":"MemberAccess","src":"3274:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":56731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3288:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3274:15:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3264:9:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":56727,"name":"bytes","nodeType":"ElementaryTypeName","src":"3268:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":56733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3264:26:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3238:52:96"},{"body":{"id":56756,"nodeType":"Block","src":"3339:52:96","statements":[{"expression":{"id":56754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56746,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56726,"src":"3353:10:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56750,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56747,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56736,"src":"3364:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":56748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3368:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3364:5:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3353:17:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":56751,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56707,"src":"3373:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56753,"indexExpression":{"id":56752,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56736,"src":"3378:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3373:7:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3353:27:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":56755,"nodeType":"ExpressionStatement","src":"3353:27:96"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56739,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56736,"src":"3317:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":56740,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56707,"src":"3321:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3326:6:96","memberName":"length","nodeType":"MemberAccess","src":"3321:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3317:15:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56757,"initializationExpression":{"assignments":[56736],"declarations":[{"constant":false,"id":56736,"mutability":"mutable","name":"i","nameLocation":"3310:1:96","nodeType":"VariableDeclaration","scope":56757,"src":"3305:6:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56735,"name":"uint","nodeType":"ElementaryTypeName","src":"3305:4:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56738,"initialValue":{"hexValue":"31","id":56737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3314:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"3305:10:96"},"loopExpression":{"expression":{"id":56744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3334:3:96","subExpression":{"id":56743,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56736,"src":"3334:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56745,"nodeType":"ExpressionStatement","src":"3334:3:96"},"nodeType":"ForStatement","src":"3300:91:96"},{"expression":{"id":56771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56758,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56705,"src":"3401:4:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":56766,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56726,"src":"3442:10:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56765,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3432:9:96","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3432:21:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":56764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3424:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":56763,"name":"uint256","nodeType":"ElementaryTypeName","src":"3424:7:96","typeDescriptions":{}}},"id":56768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3424:30:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3416:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":56761,"name":"uint160","nodeType":"ElementaryTypeName","src":"3416:7:96","typeDescriptions":{}}},"id":56769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3416:39:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":56760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3408:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56759,"name":"address","nodeType":"ElementaryTypeName","src":"3408:7:96","typeDescriptions":{}}},"id":56770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3408:48:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3401:55:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56772,"nodeType":"ExpressionStatement","src":"3401:55:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deriveValidatorAddress","nameLocation":"3039:22:96","parameters":{"id":56703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56702,"mutability":"mutable","name":"seq","nameLocation":"3068:3:96","nodeType":"VariableDeclaration","scope":56774,"src":"3062:9:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":56701,"name":"uint8","nodeType":"ElementaryTypeName","src":"3062:5:96","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3061:11:96"},"returnParameters":{"id":56708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56705,"mutability":"mutable","name":"addr","nameLocation":"3104:4:96","nodeType":"VariableDeclaration","scope":56774,"src":"3096:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56704,"name":"address","nodeType":"ElementaryTypeName","src":"3096:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56707,"mutability":"mutable","name":"data","nameLocation":"3123:4:96","nodeType":"VariableDeclaration","scope":56774,"src":"3110:17:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56706,"name":"bytes","nodeType":"ElementaryTypeName","src":"3110:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3095:33:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":56817,"nodeType":"FunctionDefinition","src":"3469:331:96","nodes":[],"body":{"id":56816,"nodeType":"Block","src":"3599:201:96","nodes":[],"statements":[{"expression":{"id":56787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56785,"name":"privKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56781,"src":"3609:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56786,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56776,"src":"3619:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3609:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56788,"nodeType":"ExpressionStatement","src":"3609:13:96"},{"assignments":[56790],"declarations":[{"constant":false,"id":56790,"mutability":"mutable","name":"pubkey","nameLocation":"3645:6:96","nodeType":"VariableDeclaration","scope":56816,"src":"3632:19:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56789,"name":"bytes","nodeType":"ElementaryTypeName","src":"3632:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":56794,"initialValue":{"arguments":[{"id":56792,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56776,"src":"3672:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56791,"name":"derivePubKeyBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56328,"src":"3654:17:96","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":56793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3654:22:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3632:44:96"},{"expression":{"id":56799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56795,"name":"validatorKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56783,"src":"3686:12:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":56797,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56776,"src":"3728:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56796,"name":"deriveValidatorPubKeyBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56359,"src":"3701:26:96","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"}},"id":56798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3701:31:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3686:46:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56800,"nodeType":"ExpressionStatement","src":"3686:46:96"},{"expression":{"id":56814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56801,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56779,"src":"3742:4:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":56809,"name":"pubkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56790,"src":"3783:6:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56808,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3773:9:96","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:17:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":56807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3765:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":56806,"name":"uint256","nodeType":"ElementaryTypeName","src":"3765:7:96","typeDescriptions":{}}},"id":56811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3765:26:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3757:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":56804,"name":"uint160","nodeType":"ElementaryTypeName","src":"3757:7:96","typeDescriptions":{}}},"id":56812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3757:35:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":56803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3749:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56802,"name":"address","nodeType":"ElementaryTypeName","src":"3749:7:96","typeDescriptions":{}}},"id":56813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3749:44:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3742:51:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56815,"nodeType":"ExpressionStatement","src":"3742:51:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"newValidator","nameLocation":"3478:12:96","parameters":{"id":56777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56776,"mutability":"mutable","name":"key","nameLocation":"3508:3:96","nodeType":"VariableDeclaration","scope":56817,"src":"3500:11:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56775,"name":"uint256","nodeType":"ElementaryTypeName","src":"3500:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3490:27:96"},"returnParameters":{"id":56784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56779,"mutability":"mutable","name":"addr","nameLocation":"3549:4:96","nodeType":"VariableDeclaration","scope":56817,"src":"3541:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56778,"name":"address","nodeType":"ElementaryTypeName","src":"3541:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56781,"mutability":"mutable","name":"privKey","nameLocation":"3563:7:96","nodeType":"VariableDeclaration","scope":56817,"src":"3555:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56780,"name":"uint256","nodeType":"ElementaryTypeName","src":"3555:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56783,"mutability":"mutable","name":"validatorKey","nameLocation":"3585:12:96","nodeType":"VariableDeclaration","scope":56817,"src":"3572:25:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56782,"name":"bytes","nodeType":"ElementaryTypeName","src":"3572:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3540:58:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":56903,"nodeType":"FunctionDefinition","src":"3806:587:96","nodes":[],"body":{"id":56902,"nodeType":"Block","src":"3963:430:96","nodes":[],"statements":[{"expression":{"id":56837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56831,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56829,"src":"3973:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":56835,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56819,"src":"4001:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3989:11:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":56832,"name":"bytes","nodeType":"ElementaryTypeName","src":"3993:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":56833,"nodeType":"ArrayTypeName","src":"3993:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":56836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3989:14:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"src":"3973:30:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":56838,"nodeType":"ExpressionStatement","src":"3973:30:96"},{"expression":{"id":56845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56839,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56823,"src":"4013:10:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":56843,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56819,"src":"4040:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4026:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":56840,"name":"address","nodeType":"ElementaryTypeName","src":"4030:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56841,"nodeType":"ArrayTypeName","src":"4030:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":56844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4026:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"4013:29:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56846,"nodeType":"ExpressionStatement","src":"4013:29:96"},{"expression":{"id":56853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56847,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56826,"src":"4052:8:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":56851,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56819,"src":"4077:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4063:13:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":56848,"name":"uint256","nodeType":"ElementaryTypeName","src":"4067:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56849,"nodeType":"ArrayTypeName","src":"4067:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":56852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4063:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"4052:27:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56854,"nodeType":"ExpressionStatement","src":"4052:27:96"},{"body":{"id":56895,"nodeType":"Block","src":"4119:213:96","statements":[{"assignments":[56866,56868,56870],"declarations":[{"constant":false,"id":56866,"mutability":"mutable","name":"addr","nameLocation":"4142:4:96","nodeType":"VariableDeclaration","scope":56895,"src":"4134:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56865,"name":"address","nodeType":"ElementaryTypeName","src":"4134:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56868,"mutability":"mutable","name":"key","nameLocation":"4156:3:96","nodeType":"VariableDeclaration","scope":56895,"src":"4148:11:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56867,"name":"uint256","nodeType":"ElementaryTypeName","src":"4148:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56870,"mutability":"mutable","name":"validatorKey","nameLocation":"4174:12:96","nodeType":"VariableDeclaration","scope":56895,"src":"4161:25:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56869,"name":"bytes","nodeType":"ElementaryTypeName","src":"4161:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":56876,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":56872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4203:3:96","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":56873,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56856,"src":"4209:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4203:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56871,"name":"newValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56817,"src":"4190:12:96","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (address,uint256,bytes memory)"}},"id":56875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4190:21:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(address,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4133:78:96"},{"expression":{"id":56881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56877,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56823,"src":"4225:10:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":56879,"indexExpression":{"id":56878,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56856,"src":"4236:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4225:13:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56880,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56866,"src":"4241:4:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4225:20:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56882,"nodeType":"ExpressionStatement","src":"4225:20:96"},{"expression":{"id":56887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56883,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56829,"src":"4259:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":56885,"indexExpression":{"id":56884,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56856,"src":"4273:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4259:16:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56886,"name":"validatorKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56870,"src":"4278:12:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4259:31:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56888,"nodeType":"ExpressionStatement","src":"4259:31:96"},{"expression":{"id":56893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56889,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56826,"src":"4304:8:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":56891,"indexExpression":{"id":56890,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56856,"src":"4313:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4304:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56892,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56868,"src":"4318:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4304:17:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56894,"nodeType":"ExpressionStatement","src":"4304:17:96"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56859,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56856,"src":"4107:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":56860,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56819,"src":"4111:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4107:5:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56896,"initializationExpression":{"assignments":[56856],"declarations":[{"constant":false,"id":56856,"mutability":"mutable","name":"i","nameLocation":"4100:1:96","nodeType":"VariableDeclaration","scope":56896,"src":"4095:6:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56855,"name":"uint","nodeType":"ElementaryTypeName","src":"4095:4:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56858,"initialValue":{"hexValue":"30","id":56857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4104:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4095:10:96"},"loopExpression":{"expression":{"id":56863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4114:3:96","subExpression":{"id":56862,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56856,"src":"4114:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56864,"nodeType":"ExpressionStatement","src":"4114:3:96"},"nodeType":"ForStatement","src":"4090:242:96"},{"expression":{"components":[{"id":56897,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56823,"src":"4350:10:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":56898,"name":"privKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56826,"src":"4362:8:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":56899,"name":"validatorKeys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56829,"src":"4372:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"id":56900,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4349:37:96","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory,bytes memory[] memory)"}},"functionReturnParameters":56830,"id":56901,"nodeType":"Return","src":"4342:44:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"newValidators","nameLocation":"3815:13:96","parameters":{"id":56820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56819,"mutability":"mutable","name":"n","nameLocation":"3846:1:96","nodeType":"VariableDeclaration","scope":56903,"src":"3838:9:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56818,"name":"uint256","nodeType":"ElementaryTypeName","src":"3838:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3828:25:96"},"returnParameters":{"id":56830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56823,"mutability":"mutable","name":"validators","nameLocation":"3894:10:96","nodeType":"VariableDeclaration","scope":56903,"src":"3877:27:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":56821,"name":"address","nodeType":"ElementaryTypeName","src":"3877:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56822,"nodeType":"ArrayTypeName","src":"3877:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":56826,"mutability":"mutable","name":"privKeys","nameLocation":"3923:8:96","nodeType":"VariableDeclaration","scope":56903,"src":"3906:25:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56824,"name":"uint256","nodeType":"ElementaryTypeName","src":"3906:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56825,"nodeType":"ArrayTypeName","src":"3906:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":56829,"mutability":"mutable","name":"validatorKeys","nameLocation":"3948:13:96","nodeType":"VariableDeclaration","scope":56903,"src":"3933:28:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":56827,"name":"bytes","nodeType":"ElementaryTypeName","src":"3933:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":56828,"nodeType":"ArrayTypeName","src":"3933:7:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"3876:86:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":56977,"nodeType":"FunctionDefinition","src":"4399:423:96","nodes":[],"body":{"id":56976,"nodeType":"Block","src":"4488:334:96","nodes":[],"statements":[{"expression":{"id":56917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56912,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56910,"src":"4498:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3635","id":56915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4515:2:96","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"id":56914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4505:9:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":56913,"name":"bytes","nodeType":"ElementaryTypeName","src":"4509:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":56916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4505:13:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4498:20:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56918,"nodeType":"ExpressionStatement","src":"4498:20:96"},{"expression":{"id":56926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56919,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56910,"src":"4528:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56921,"indexExpression":{"hexValue":"31","id":56920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4533:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4528:7:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":56924,"name":"seq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56905,"src":"4545:3:96","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":56923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4538:6:96","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":56922,"name":"bytes1","nodeType":"ElementaryTypeName","src":"4538:6:96","typeDescriptions":{}}},"id":56925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4538:11:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"4528:21:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":56927,"nodeType":"ExpressionStatement","src":"4528:21:96"},{"assignments":[56929],"declarations":[{"constant":false,"id":56929,"mutability":"mutable","name":"dataSubset","nameLocation":"4610:10:96","nodeType":"VariableDeclaration","scope":56976,"src":"4597:23:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56928,"name":"bytes","nodeType":"ElementaryTypeName","src":"4597:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":56937,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":56932,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56910,"src":"4633:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4638:6:96","memberName":"length","nodeType":"MemberAccess","src":"4633:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":56934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4647:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4633:15:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4623:9:96","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":56930,"name":"bytes","nodeType":"ElementaryTypeName","src":"4627:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":56936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4623:26:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4597:52:96"},{"body":{"id":56959,"nodeType":"Block","src":"4698:52:96","statements":[{"expression":{"id":56957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56949,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56929,"src":"4712:10:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56953,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56950,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56939,"src":"4723:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":56951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4727:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4723:5:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4712:17:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":56954,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56910,"src":"4732:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56956,"indexExpression":{"id":56955,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56939,"src":"4737:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4732:7:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"4712:27:96","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":56958,"nodeType":"ExpressionStatement","src":"4712:27:96"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56942,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56939,"src":"4676:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":56943,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56910,"src":"4680:4:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4685:6:96","memberName":"length","nodeType":"MemberAccess","src":"4680:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4676:15:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56960,"initializationExpression":{"assignments":[56939],"declarations":[{"constant":false,"id":56939,"mutability":"mutable","name":"i","nameLocation":"4669:1:96","nodeType":"VariableDeclaration","scope":56960,"src":"4664:6:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56938,"name":"uint","nodeType":"ElementaryTypeName","src":"4664:4:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56941,"initialValue":{"hexValue":"31","id":56940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4673:1:96","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"4664:10:96"},"loopExpression":{"expression":{"id":56947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4693:3:96","subExpression":{"id":56946,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56939,"src":"4693:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56948,"nodeType":"ExpressionStatement","src":"4693:3:96"},"nodeType":"ForStatement","src":"4659:91:96"},{"expression":{"id":56974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56961,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56908,"src":"4760:4:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":56969,"name":"dataSubset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56929,"src":"4801:10:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56968,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4791:9:96","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4791:21:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":56967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4783:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":56966,"name":"uint256","nodeType":"ElementaryTypeName","src":"4783:7:96","typeDescriptions":{}}},"id":56971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4783:30:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4775:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":56964,"name":"uint160","nodeType":"ElementaryTypeName","src":"4775:7:96","typeDescriptions":{}}},"id":56972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4775:39:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":56963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4767:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56962,"name":"address","nodeType":"ElementaryTypeName","src":"4767:7:96","typeDescriptions":{}}},"id":56973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4767:48:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4760:55:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56975,"nodeType":"ExpressionStatement","src":"4760:55:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"derivePubKey","nameLocation":"4408:12:96","parameters":{"id":56906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56905,"mutability":"mutable","name":"seq","nameLocation":"4427:3:96","nodeType":"VariableDeclaration","scope":56977,"src":"4421:9:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":56904,"name":"uint8","nodeType":"ElementaryTypeName","src":"4421:5:96","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4420:11:96"},"returnParameters":{"id":56911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56908,"mutability":"mutable","name":"addr","nameLocation":"4463:4:96","nodeType":"VariableDeclaration","scope":56977,"src":"4455:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56907,"name":"address","nodeType":"ElementaryTypeName","src":"4455:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56910,"mutability":"mutable","name":"data","nameLocation":"4482:4:96","nodeType":"VariableDeclaration","scope":56977,"src":"4469:17:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56909,"name":"bytes","nodeType":"ElementaryTypeName","src":"4469:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4454:33:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":57005,"nodeType":"FunctionDefinition","src":"4828:213:96","nodes":[],"body":{"id":57004,"nodeType":"Block","src":"4902:139:96","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":56985,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56979,"src":"4920:2:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4923:6:96","memberName":"length","nodeType":"MemberAccess","src":"4920:9:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":56987,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56981,"src":"4933:2:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":56988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4936:6:96","memberName":"length","nodeType":"MemberAccess","src":"4933:9:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4920:22:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6279746573206c656e206e6f7420657175616c","id":56990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4944:21:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_2de6bd869d85e0de7044fd7872e60b4dfafaf91b20036b02d3aaa70266de00f8","typeString":"literal_string \"bytes len not equal\""},"value":"bytes len not equal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2de6bd869d85e0de7044fd7872e60b4dfafaf91b20036b02d3aaa70266de00f8","typeString":"literal_string \"bytes len not equal\""}],"id":56984,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4912:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4912:54:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56992,"nodeType":"ExpressionStatement","src":"4912:54:96"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":57000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":56995,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56979,"src":"4994:2:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56994,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4984:9:96","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4984:13:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":56998,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56981,"src":"5011:2:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56997,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5001:9:96","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":56999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5001:13:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4984:30:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6279746573206e6f7420657175616c","id":57001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5016:17:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11837872e6282a7a5c3e38defc117597d04d25c721765e78ecdd143346d41ed","typeString":"literal_string \"bytes not equal\""},"value":"bytes not equal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11837872e6282a7a5c3e38defc117597d04d25c721765e78ecdd143346d41ed","typeString":"literal_string \"bytes not equal\""}],"id":56993,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4976:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4976:58:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57003,"nodeType":"ExpressionStatement","src":"4976:58:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"ensureBytesEqual","nameLocation":"4837:16:96","parameters":{"id":56982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56979,"mutability":"mutable","name":"_a","nameLocation":"4867:2:96","nodeType":"VariableDeclaration","scope":57005,"src":"4854:15:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56978,"name":"bytes","nodeType":"ElementaryTypeName","src":"4854:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":56981,"mutability":"mutable","name":"_b","nameLocation":"4884:2:96","nodeType":"VariableDeclaration","scope":57005,"src":"4871:15:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":56980,"name":"bytes","nodeType":"ElementaryTypeName","src":"4871:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4853:34:96"},"returnParameters":{"id":56983,"nodeType":"ParameterList","parameters":[],"src":"4902:0:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":57050,"nodeType":"FunctionDefinition","src":"5098:339:96","nodes":[],"body":{"id":57049,"nodeType":"Block","src":"5247:190:96","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57017,"name":"array1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57008,"src":"5265:6:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5272:6:96","memberName":"length","nodeType":"MemberAccess","src":"5265:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57019,"name":"array2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57011,"src":"5282:6:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5289:6:96","memberName":"length","nodeType":"MemberAccess","src":"5282:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5265:30:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":57022,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57013,"src":"5297:12:96","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":57016,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5257:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5257:53:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57024,"nodeType":"ExpressionStatement","src":"5257:53:96"},{"body":{"id":57047,"nodeType":"Block","src":"5361:70:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":57043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":57037,"name":"array1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57008,"src":"5383:6:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57039,"indexExpression":{"id":57038,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57026,"src":"5390:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5383:9:96","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":57040,"name":"array2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57011,"src":"5396:6:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57042,"indexExpression":{"id":57041,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57026,"src":"5403:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5396:9:96","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5383:22:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":57044,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57013,"src":"5407:12:96","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":57036,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5375:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5375:45:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57046,"nodeType":"ExpressionStatement","src":"5375:45:96"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57029,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57026,"src":"5337:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":57030,"name":"array1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57008,"src":"5341:6:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[] memory"}},"id":57031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5348:6:96","memberName":"length","nodeType":"MemberAccess","src":"5341:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5337:17:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57048,"initializationExpression":{"assignments":[57026],"declarations":[{"constant":false,"id":57026,"mutability":"mutable","name":"i","nameLocation":"5330:1:96","nodeType":"VariableDeclaration","scope":57048,"src":"5325:6:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57025,"name":"uint","nodeType":"ElementaryTypeName","src":"5325:4:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57028,"initialValue":{"hexValue":"30","id":57027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5334:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5325:10:96"},"loopExpression":{"expression":{"id":57034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5356:3:96","subExpression":{"id":57033,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57026,"src":"5356:1:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57035,"nodeType":"ExpressionStatement","src":"5356:3:96"},"nodeType":"ForStatement","src":"5320:111:96"}]},"implemented":true,"kind":"function","modifiers":[],"name":"validateBytes4Array","nameLocation":"5107:19:96","parameters":{"id":57014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57008,"mutability":"mutable","name":"array1","nameLocation":"5152:6:96","nodeType":"VariableDeclaration","scope":57050,"src":"5136:22:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":57006,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5136:6:96","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":57007,"nodeType":"ArrayTypeName","src":"5136:8:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":57011,"mutability":"mutable","name":"array2","nameLocation":"5184:6:96","nodeType":"VariableDeclaration","scope":57050,"src":"5168:22:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_memory_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":57009,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5168:6:96","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":57010,"nodeType":"ArrayTypeName","src":"5168:8:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"},{"constant":false,"id":57013,"mutability":"mutable","name":"errorMessage","nameLocation":"5214:12:96","nodeType":"VariableDeclaration","scope":57050,"src":"5200:26:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":57012,"name":"string","nodeType":"ElementaryTypeName","src":"5200:6:96","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5126:106:96"},"returnParameters":{"id":57015,"nodeType":"ParameterList","parameters":[],"src":"5247:0:96"},"scope":57051,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"TestUtils","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[57051],"name":"TestUtils","nameLocation":"171:9:96","scope":57052,"usedErrors":[]}],"license":"MIT OR Apache-2.0"},"id":96} \ No newline at end of file diff --git a/.out/TopDownFinalityFacet.sol/TopDownFinalityFacet.json b/.out/TopDownFinalityFacet.sol/TopDownFinalityFacet.json new file mode 100644 index 000000000..9882c918d --- /dev/null +++ b/.out/TopDownFinalityFacet.sol/TopDownFinalityFacet.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"applyFinalityChanges","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"function","name":"commitParentFinality","inputs":[{"name":"finality","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"outputs":[{"name":"hasCommittedBefore","type":"bool","internalType":"bool"},{"name":"previousFinality","type":"tuple","internalType":"struct ParentFinality","components":[{"name":"height","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"storeValidatorChanges","inputs":[{"name":"changeRequests","type":"tuple[]","internalType":"struct StakingChangeRequest[]","components":[{"name":"change","type":"tuple","internalType":"struct StakingChange","components":[{"name":"op","type":"uint8","internalType":"enum StakingOperation"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"validator","type":"address","internalType":"address"}]},{"name":"configurationNumber","type":"uint64","internalType":"uint64"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"AddressShouldBeValidator","inputs":[]},{"type":"error","name":"CannotConfirmFutureChanges","inputs":[]},{"type":"error","name":"InvalidConfigurationNumber","inputs":[]},{"type":"error","name":"NotSystemActor","inputs":[]},{"type":"error","name":"OldConfigurationNumber","inputs":[]},{"type":"error","name":"PQDoesNotContainAddress","inputs":[]},{"type":"error","name":"PQEmpty","inputs":[]},{"type":"error","name":"ParentFinalityAlreadyCommitted","inputs":[]}],"bytecode":{"object":"0x6080806040523461001657612a65908161001c8239f35b600080fdfe604060a08152600436101561001357600080fd5b600090813560e01c9081630df144611461016457816311196974146100a9575063e49a547d1461004257600080fd5b346100a65760203660031901126100a6576004356001600160401b038082116100a257366023830112156100a25781600401359081116100a2573660248260051b840101116100a257602461009f92610099610d88565b01610e3b565b80f35b8280fd5b80fd5b9050346101605780600319360112610160578051906100c782610199565b828252826020809301526100d9610d88565b828282516100e681610199565b8281520152600254926004359283851161014f576060948252600181528282209383600181519661011688610199565b80548852015493838701948552828152600184522081815560016024359101556002558351151593835194855251908401525190820152f35b825163153ad84160e11b8152600490fd5b5080fd5b905034610160578160031936011261016057602090610181610d88565b6001600160401b03610191610355565b915191168152f35b604081019081106001600160401b038211176101b457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176101b457604052565b90601f801991011681019081106001600160401b038211176101b457604052565b9060016001600160401b038093160191821161021e57565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381116101b45760051b60200190565b805182101561025f5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600182811c921680156102a5575b602083101461028f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610284565b90604051918260008254926102c384610275565b90818452600194858116908160001461033257506001146102ef575b50506102ed925003836101e5565b565b9093915060005260209081600020936000915b81831061031a5750506102ed935082010138806102df565b85548884018501529485019487945091830191610302565b9150506102ed94506020925060ff191682840152151560051b82010138806102df565b6029546001600160401b038082166000190181811161021e5761037781610206565b8280604095861c169116146105085761038f816110d2565b61ffff928360235416916103a283610234565b956103af835197886101e5565b838752601f1991826103c086610234565b019260209336858b013760015b88811687811161040f576000908152602586528690205489916001916001600160a01b03166104078d8561040085610e27565b169061024b565b5201166103cd565b50509450949192909550865161042481610234565b94610431835196876101e5565b81865261043d82610234565b018460005b8281106104df5750505060005b81811061047a57505061047794959650519261046a84610199565b8352841690820152610897565b90565b6001906001600160a01b0361048f828c61024b565b511680600052602287526104bf60038660002085810154938851946104b3866101ca565b85528a850152016102af565b858201526104cd828961024b565b526104d8818861024b565b500161044f565b84516104ea816101ca565b6000815260008382015260608682015282828a010152018590610442565b505050600090565b60005b8381106105235750506000910152565b8181015183820152602001610513565b908082519081815260208091019281808460051b8301019501936000915b8483106105615750505050505090565b9091929394958480600192601f1990818682030187528a519182518252858060a01b03848401511684830152601f6040809401519360608091850152845180918501526105b681608096888888019101610510565b011601019801930193019194939290610551565b8181106105d5575050565b600081556001016105ca565b6105eb8154610275565b90816105f5575050565b81601f60009311600114610607575055565b908083918252610626601f60208420940160051c8401600185016105ca565b5555565b9190601f811161063957505050565b6102ed926000526020600020906020601f840160051c83019310610665575b601f0160051c01906105ca565b9091508190610658565b90808214610749576106818154610275565b906001600160401b0382116101b45781906106a6826106a08654610275565b8661062a565b600090601f83116001146106dd576000926106d2575b50508160011b916000199060031b1c1916179055565b0154905038806106bc565b81526020808220858352818320935090601f1985169083905b828210610730575050908460019594939210610717575b505050811b019055565b015460001960f88460031b161c1916905538808061070d565b84958192958501548155600180910196019401906106f6565b5050565b60045481101561025f576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b906108815781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b0383116101b4576107e6836107e08754610275565b8761062a565b81601f841160011461081f5750928293918392600094610814575b50501b916000199060031b1c1916179055565b015192503880610801565b919083601f1981168760005284600020946000905b88838310610867575050501061084e57505050811b019055565b015160001960f88460031b161c1916905538808061070d565b858701518855909601959485019487935090810190610834565b634e487b7160e01b600052600060045260246000fd5b60408051916020918284526108b6825182858701526060860190610533565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081610ba7575b5050506004908154936801000000000000000093848611610b925760065486600655808710610af3575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b838210610a9e57505050508060055416916001600160401b03199283600754161760075583515193855496885b868110610a2c5750505051169060055416176005558083116109c4575b50505050565b828110156109be5781548015610a195760001901906109e28261074d565b929092610a07578583556109ff60026001948886820155016105e1565b8355016109c4565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b88811015610a5b5780610a55610a45600193865161024b565b51610a4f8361074d565b90610788565b016109a1565b610a6681845161024b565b51885483811015610a8b5760019291610a4f8285610a8694018d5561074d565b610a55565b634e487b7160e01b8c5260418a5260248cfd5b806001918403610ab9575b6003809101930191019091610974565b805484558180850190838060a01b0390830154166001600160601b0360a01b825416179055610aee600280830190860161066f565b610aa9565b6003908082029082820403610b7d578782028281048903610b6857600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b828110610b4b57505050610927565b8082859255826001820155610b62600282016105e1565b01610b3c565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b84865116856007541690818114610c945710610c8357825192610bc984610199565b600454610bd581610234565b91610be2815193846101e5565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b848410610c41575050509185525050820152610c309082610c9e565b610c3c573880806108fd565b505050565b6003876001928451610c52816101ca565b86548152848060a01b03858801541683820152610c71600288016102af565b86820152815201930193019291610c14565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b03906020918083830151169083850151160361050857610cc481610d4c565b610ccd84610d4c565b03610508575180518351510361050857610d38610d2c916040519081610cfd868201928784526040830190610533565b0391610d11601f19938481018352826101e5565b51902094516040519384918683019687526040830190610533565b039081018352826101e5565b5190201490565b9190820180921161021e57565b8051519060009182915b818310610d635750505090565b909192610d7f600191610d7786855161024b565b515190610d3f565b93019190610d56565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610e1b57600091610de1575b5015610dcf57565b60405163f0d97f3b60e01b8152600490fd5b6020813d8211610e13575b81610df9602093836101e5565b8101031261016057519081151582036100a6575038610dc7565b3d9150610dec565b6040513d6000823e3d90fd5b61ffff908116600019019190821161021e57565b81156107495760005b828110610e5057505050565b8060051b820135603e198336030181121561100757820190604080610e7584806110a2565b013560018060a01b0380608052811680910361100757610e9584806110a2565b35600481101561100757610ea985806110a2565b6020908181013590601e19813603018212156110075701956001600160401b0393873585811161100757838901813603811361100757610ee8826110b7565b99610ef589519b8c6101e5565b828b528583369201011161100757816000928692838d01378a010152846029541693865190610f23826101ca565b815283810198895286810191825284600052602a8452866000209051600481101561108c5760ff8019835416911617815560019889820190518051908882116101b457610f7a82610f748554610275565b8561062a565b8690601f8311600114611017576002949392916000918361100c575b5050600019600383901b1c1916908c1b1790555b01906080519051166001600160601b0360a01b82541617905583610fcd84610206565b166001600160401b0319602954161760295501359182168092036110075703610ff7575001610e44565b51631aba532960e21b8152600490fd5b600080fd5b015190503880610f96565b9392918c91601f1982169084600052896000209160005b8b828210611069575050968360029810611050575b505050811b019055610faa565b015160001960f88460031b161c19169055388080611043565b919295899487849397999a9b015181550195019301908f9492979695939161102e565b634e487b7160e01b600052602160045260246000fd5b903590605e1981360301821215611007570190565b6001600160401b0381116101b457601f01601f191660200190565b906029546001600160401b0381166001600160401b03841610156000146111055760405163040aaa0560e11b8152600490fd5b6001600160401b038160401c166001600160401b0384161061149e5760401c6001600160401b03165b6001600160401b0383166001600160401b0382161161146a576001600160401b038116600052602a60205260406000209060018060a01b036002830154169160ff815416600481101561108c57600281036111d9575060016111a9916001600160401b0394600052602260205201600360406000200161066f565b818116600052602a60205260406000209060008255600060026001936111d08582016105e1565b0155011661112e565b91929160038103611367575060016111f191016102af565b90815182019160408160208501940312611007576020810151906001600160401b0382116110075783603f838301011215611007576020828201015191611237836110b7565b9461124560405196876101e5565b8386526040848385010101116110075760409261126a91846020880191850101610510565b0151918160005260226020526003604060002001908051906001600160401b0382116101b45761129e82610f748554610275565b602090601f83116001146112f05791806001600160401b03979694926112e096946000926112e5575b50508160011b916000199060031b1c19161790556114a3565b6111a9565b0151905038806112c7565b90601f198316918460005260206000209260005b81811061134f57509260019285926112e098966001600160401b039b9a989610611336575b505050811b0190556114a3565b015160001960f88460031b161c19169055388080611329565b92936020600181928786015181550195019301611304565b9061137860019493948092016102af565b93602085805181010312611007578160206001600160401b03960151931460001461142657908161140092600052602291826020526113be8582604060002001546114e7565b9282600052602052604060002060028101918483548115908161141d575b501561141457509060006113fb938160039481855584015555016105e1565b611989565b61140d60219182546114e7565b90556111a9565b92500155611989565b905015386113dc565b6112e09281600052602280602052611445828560406000200154610d3f565b93849184600052602052604060002001556114636021918254610d3f565b90556114f4565b509061147590610206565b67ffffffffffffffff60401b6029549160401b169067ffffffffffffffff60401b191617602955565b509050565b9060018060a01b0382166000526022602052604060002081815491558181146000146114ce57505050565b8111156114de576102ed91611803565b6102ed91611cdb565b9190820391821161021e57565b919060018060a01b03928381166000948186526020916024835261ffff916040978389822054166117125783855460081c168460235416106116de576115386127ae565b60019283825260258652828a832054168861155282611e66565b1061165857508152602785528389822054166115c15750505050506115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461159c83611dfb565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6115ca86612801565b926115d487611e66565b935b818682161161161a575b505097516001600160a01b039095168552505050506020810191909152909150600080516020612a108339815191529080604081016115bc565b808561163986617fff8f95871c169485885260288c5287205416611e66565b1015611652579061164b839282612960565b90506115d6565b506115e0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506115bc95602791611693612388565b8352522054166116d0575b6116a784612319565b6116b083611dfb565b516001600160a01b03928316815292909116602083015281906040820190565b6116d98461201c565b61169e565b50505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461159c83612319565b9792915061172385949796956127ca565b9761172d85611e66565b976117378a61220e565b8460235416905b8581168281116117de57828110156117c257508061175e61176492611de8565b9061275e565b9b909b5b8b111561178757611779908c6128c7565b6117828b61220e565b61173e565b505093516001600160a01b0390951685525050505060208101919091529092506000805160206129f0833981519152915080604081016115bc565b849c919c52602583526117d9858886205416611e66565b611768565b505050505050506115bc91929395506000805160206129f0833981519152945061159c565b6001600160a01b03808216600081815260246020526040808220549095949361ffff93918416611957578360205460081c16846023541610611925576118476127ae565b60018352602560205286832054168561185f82611e66565b106118d157508152602760205284902054166118a3576115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361159c83611dfb565b6115bc600080516020612a108339815191529361159c6118c284612801565b6118cb85611e66565b906121b9565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7596926115bc94611905612388565b8152602760205220541661191c576116a784612319565b6116d9846120a7565b505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361159c83612319565b505050506115bc6000805160206129f08339815191529361159c61197a846127ca565b61198385611e66565b906126cb565b909160018060a01b03928383169060009382855260206027815261ffff95604094878683205416611bb1578082526024835287868320541615611ba0578415611af857506119d6836127ca565b976119e084611e66565b985b6001808a83161115611ae95781617fff911c1690818452602585528a611a0c848a87205416611e66565b1115611a2157611a1c90826128c7565b6119e2565b505091939597509193955b6026541615611ae157611a3d6127ae565b600182526025835285818184205416926028611a5885611e66565b95611a616127bc565b600183525220541691611a7383611e66565b11611aa857505091516001600160a01b03909216825260208201526000805160206129f08339815191529080604081016115bc565b915091506115bc7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611ad9612388565b61169e611eb5565b505050505050565b50509193959750919395611a2c565b829450611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996124d1565b8651908152a160265416611b405750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360288492611b6e6127bc565b6001835252205416611b94611b8282611e66565b92611b8b611eb5565b61159c83612319565b0390a1388080806109be565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611ca0575061fffe9193611bce86612801565b93611bd887611e66565b9480966001958692831b168160265416925b611c2c575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020612a1083398151915291905080604081016115bc565b818116838111611c9a578d9084811015611c7e57505080611c4f611c5592611de8565b906122c1565b9890985b881015611c7957611c6a9089612960565b611c738861220e565b86611bea565b611bef565b865260288552852054909890611c95908716611e66565b611c59565b50611bef565b94915050611cd49194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9596925061201c565b51908152a1565b6001600160a01b0380821660008181526027602090815260408083205490969594919361ffff918216611d7e578084526024855281888520541615611d6d578615611d3c5750611a2c611d2d866127ca565b611d3687611e66565b9061267c565b849193979650611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b939661255c565b8751632a55ca5360e01b8152600490fd5b9693925050508315611dbb5750600080516020612a1083398151915293506115bc9061159c611dac84612801565b611db585611e66565b90612225565b9250611cd47f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b94926120a7565b90600161ffff8093160191821161021e57565b6102ed906118cb61ffff91611e138360265416611de8565b9260018060a01b0382169081600052602760205260406000209085169161ffff199183838254161790558260005260286020526040600020906001600160601b0360a01b82541617905560265416176026555b60ff60205416600381101561108c57600103611e97576001600160a01b031660009081526022602052604090205490565b6001600160a01b031660009081526022602052604090206001015490565b61ffff806026541690811561200a5790600190611ed4818311156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611f6e91908a611f5f83610e27565b16906026541617602655612826565b848252808652611f82848484205416611e66565b95859860028160265416995b611fa0575b5050505050505050505050565b8181168a8111612004578a811015611fe9575080611c4f611fc092611de8565b9a909a5b891015611fe457611fd5908b612960565b611fde8a61220e565b87611f8e565b611f93565b859b919b52838352611fff878787205416611e66565b611fc4565b50611f93565b6040516340d9b01160e01b8152600490fd5b61202590612801565b61ffff908160265416916120398383612960565b8061204384610e27565b1661ffff19602654161760265561205983612826565b811680921461074957611db5826102ed93600052602860205260018060a01b039061209361208d8360406000205416611e66565b856121b9565b600052602860205260406000205416611e66565b6120b090612801565b61ffff908160265416916120c48383612960565b806120ce84610e27565b1661ffff1960265416176026556120e483612826565b808216809314610c3c579161fffe9160009180835260289060209382855260018060a01b039260409261212461211e868686205416611e66565b876121b9565b8252808652612137848484205416611e66565b9585986001988997881b168160265416995b61215a575050505050505050505050565b8181168a8111612004578a81101561219e575080611c4f61217a92611de8565b9a909a5b891015611fe45761218f908b612960565b6121988a61220e565b87612149565b859b919b528383526121b4878787205416611e66565b61217e565b9190915b60018061ffff831611156122085781617fff911c1690836121f360008481526028602052604060018060a01b0391205416611e66565b1015612208576122039082612960565b6121bd565b50509050565b60011b906201fffe61fffe83169216820361021e57565b90600161fffe83821b168160009161ffff908160265416925b61224c575b50505050505050565b8181168381116122bb5783811015612295575080611c4f61226c92611de8565b9690965b861015612290576122819087612960565b61228a8661220e565b8461223e565b612243565b8452602860205260408420549096906122b6906001600160a01b0316611e66565b612270565b50612243565b91909161ffff92838216600052602860205261230460018060a01b036122ed8160406000205416611e66565b958316600052602860205260406000205416611e66565b908185106123125750509190565b9350919050565b6102ed90611d3661ffff916123318360235416611de8565b9260018060a01b0382169081600052602460205260406000209085169161ffff199183838254161790558260005260256020526040600020906001600160601b0360a01b8254161790556023541617602355611e66565b61ffff806023541690811561200a57906001906123a7818311156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161244191908a61243283610e27565b16906023541617602355612868565b848252808652612455848484205416611e66565b95859860028160235416995b612472575050505050505050505050565b8181168a8111612004578a8110156124b657508061175e61249292611de8565b9a909a5b891115611fe4576124a7908b6128c7565b6124b08a61220e565b87612461565b859b919b528383526124cc878787205416611e66565b612496565b6124da906127ca565b61ffff908160235416916124ee83836128c7565b806124f884610e27565b1661ffff19602354161760235561250e83612868565b811680921461074957611983826102ed93600052602560205260018060a01b03906125486125428360406000205416611e66565b8561267c565b600052602560205260406000205416611e66565b612565906127ca565b9061ffff9081602354169061257a82856128c7565b8261258483610e27565b1661ffff19602354161760235561259a82612868565b8284168092146126765760009291929183835260259260209484865260018060a01b03916040916125d86125d2858585205416611e66565b8a61267c565b81528587526125eb838383205416611e66565b956125f58961220e565b978560235416985b8681168a8111612668578a81101561264d57508061175e61261d92611de8565b9a909a5b89111561264057612632908b6128c7565b61263b8a61220e565b6125fd565b5050505050505092505050565b849b919b52828252612663868686205416611e66565b612621565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156122085781617fff911c1690836126b660008481526025602052604060018060a01b0391205416611e66565b1115612208576126c690826128c7565b612680565b916126d58361220e565b600061ffff918260235416905b838116828111612754578281101561272e57508061175e61270292611de8565b9690965b8611156127255761271790876128c7565b6127208661220e565b6126e2565b50505050915050565b83526025602052604083205490969061274f906001600160a01b0316611e66565b612706565b5050505050915050565b919061ffff808416600052602560205261279f60018060a01b036127888160406000205416611e66565b928416600052602560205260406000205416611e66565b93848211156123125750509190565b61ffff602354161561200a57565b61ffff602654161561200a57565b6001600160a01b031660009081526024602052604090205461ffff169081156127ef57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526027602052604090205461ffff169081156127ef57565b61ffff16600090815260286020908152604080832080546001600160a01b031981169091556001600160a01b0316835260279091529020805461ffff19169055565b61ffff16600090815260256020908152604080832080546001600160a01b031981169091556001600160a01b0316835260249091529020805461ffff19169055565b156128b157565b634e487b7160e01b600052600160045260246000fd5b6128ec61ffff8080602354169316936128e2848611156128aa565b16918211156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61297b61ffff8080602654169316936128e2848611156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda2646970667358221220cff9f210462ab66eb409caf3ccd6d5276d22bbdb298d3cafd0f082e4e5621cc564736f6c63430008130033","sourceMap":"580:3041:51:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":3519,"length":20}]}}},"deployedBytecode":{"object":"0x604060a08152600436101561001357600080fd5b600090813560e01c9081630df144611461016457816311196974146100a9575063e49a547d1461004257600080fd5b346100a65760203660031901126100a6576004356001600160401b038082116100a257366023830112156100a25781600401359081116100a2573660248260051b840101116100a257602461009f92610099610d88565b01610e3b565b80f35b8280fd5b80fd5b9050346101605780600319360112610160578051906100c782610199565b828252826020809301526100d9610d88565b828282516100e681610199565b8281520152600254926004359283851161014f576060948252600181528282209383600181519661011688610199565b80548852015493838701948552828152600184522081815560016024359101556002558351151593835194855251908401525190820152f35b825163153ad84160e11b8152600490fd5b5080fd5b905034610160578160031936011261016057602090610181610d88565b6001600160401b03610191610355565b915191168152f35b604081019081106001600160401b038211176101b457604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b038211176101b457604052565b90601f801991011681019081106001600160401b038211176101b457604052565b9060016001600160401b038093160191821161021e57565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381116101b45760051b60200190565b805182101561025f5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90600182811c921680156102a5575b602083101461028f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610284565b90604051918260008254926102c384610275565b90818452600194858116908160001461033257506001146102ef575b50506102ed925003836101e5565b565b9093915060005260209081600020936000915b81831061031a5750506102ed935082010138806102df565b85548884018501529485019487945091830191610302565b9150506102ed94506020925060ff191682840152151560051b82010138806102df565b6029546001600160401b038082166000190181811161021e5761037781610206565b8280604095861c169116146105085761038f816110d2565b61ffff928360235416916103a283610234565b956103af835197886101e5565b838752601f1991826103c086610234565b019260209336858b013760015b88811687811161040f576000908152602586528690205489916001916001600160a01b03166104078d8561040085610e27565b169061024b565b5201166103cd565b50509450949192909550865161042481610234565b94610431835196876101e5565b81865261043d82610234565b018460005b8281106104df5750505060005b81811061047a57505061047794959650519261046a84610199565b8352841690820152610897565b90565b6001906001600160a01b0361048f828c61024b565b511680600052602287526104bf60038660002085810154938851946104b3866101ca565b85528a850152016102af565b858201526104cd828961024b565b526104d8818861024b565b500161044f565b84516104ea816101ca565b6000815260008382015260608682015282828a010152018590610442565b505050600090565b60005b8381106105235750506000910152565b8181015183820152602001610513565b908082519081815260208091019281808460051b8301019501936000915b8483106105615750505050505090565b9091929394958480600192601f1990818682030187528a519182518252858060a01b03848401511684830152601f6040809401519360608091850152845180918501526105b681608096888888019101610510565b011601019801930193019194939290610551565b8181106105d5575050565b600081556001016105ca565b6105eb8154610275565b90816105f5575050565b81601f60009311600114610607575055565b908083918252610626601f60208420940160051c8401600185016105ca565b5555565b9190601f811161063957505050565b6102ed926000526020600020906020601f840160051c83019310610665575b601f0160051c01906105ca565b9091508190610658565b90808214610749576106818154610275565b906001600160401b0382116101b45781906106a6826106a08654610275565b8661062a565b600090601f83116001146106dd576000926106d2575b50508160011b916000199060031b1c1916179055565b0154905038806106bc565b81526020808220858352818320935090601f1985169083905b828210610730575050908460019594939210610717575b505050811b019055565b015460001960f88460031b161c1916905538808061070d565b84958192958501548155600180910196019401906106f6565b5050565b60045481101561025f576003906004600052027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b906108815781518155600190604060028383019260209360018060a01b0385880151166001600160601b0360a01b82541617905501930151908151916001600160401b0383116101b4576107e6836107e08754610275565b8761062a565b81601f841160011461081f5750928293918392600094610814575b50501b916000199060031b1c1916179055565b015192503880610801565b919083601f1981168760005284600020946000905b88838310610867575050501061084e57505050811b019055565b015160001960f88460031b161c1916905538808061070d565b858701518855909601959485019487935090810190610834565b634e487b7160e01b600052600060045260246000fd5b60408051916020918284526108b6825182858701526060860190610533565b927f7ecdac482334c36fccbe374318cfe74ea0c8181394890ddec894a10f0fcc748181840195806001600160401b039687895116868301520390a183600554169081610ba7575b5050506004908154936801000000000000000093848611610b925760065486600655808710610af3575b5060066000908152957ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f877f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b838210610a9e57505050508060055416916001600160401b03199283600754161760075583515193855496885b868110610a2c5750505051169060055416176005558083116109c4575b50505050565b828110156109be5781548015610a195760001901906109e28261074d565b929092610a07578583556109ff60026001948886820155016105e1565b8355016109c4565b634e487b7160e01b8652858452602486fd5b634e487b7160e01b855260318352602485fd5b88811015610a5b5780610a55610a45600193865161024b565b51610a4f8361074d565b90610788565b016109a1565b610a6681845161024b565b51885483811015610a8b5760019291610a4f8285610a8694018d5561074d565b610a55565b634e487b7160e01b8c5260418a5260248cfd5b806001918403610ab9575b6003809101930191019091610974565b805484558180850190838060a01b0390830154166001600160601b0360a01b825416179055610aee600280830190860161066f565b610aa9565b6003908082029082820403610b7d578782028281048903610b6857600090600682527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f92830192015b828110610b4b57505050610927565b8082859255826001820155610b62600282016105e1565b01610b3c565b601187634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b604184634e487b7160e01b6000525260246000fd5b84865116856007541690818114610c945710610c8357825192610bc984610199565b600454610bd581610234565b91610be2815193846101e5565b8183528383019060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b906000925b848410610c41575050509185525050820152610c309082610c9e565b610c3c573880806108fd565b505050565b6003876001928451610c52816101ca565b86548152848060a01b03858801541683820152610c71600288016102af565b86820152815201930193019291610c14565b8251633746be2560e11b8152600490fd5b5050505050505050565b6001600160401b03906020918083830151169083850151160361050857610cc481610d4c565b610ccd84610d4c565b03610508575180518351510361050857610d38610d2c916040519081610cfd868201928784526040830190610533565b0391610d11601f19938481018352826101e5565b51902094516040519384918683019687526040830190610533565b039081018352826101e5565b5190201490565b9190820180921161021e57565b8051519060009182915b818310610d635750505090565b909192610d7f600191610d7786855161024b565b515190610d3f565b93019190610d56565b604051635d3f8a6960e01b815233600482015260208160248173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af4908115610e1b57600091610de1575b5015610dcf57565b60405163f0d97f3b60e01b8152600490fd5b6020813d8211610e13575b81610df9602093836101e5565b8101031261016057519081151582036100a6575038610dc7565b3d9150610dec565b6040513d6000823e3d90fd5b61ffff908116600019019190821161021e57565b81156107495760005b828110610e5057505050565b8060051b820135603e198336030181121561100757820190604080610e7584806110a2565b013560018060a01b0380608052811680910361100757610e9584806110a2565b35600481101561100757610ea985806110a2565b6020908181013590601e19813603018212156110075701956001600160401b0393873585811161100757838901813603811361100757610ee8826110b7565b99610ef589519b8c6101e5565b828b528583369201011161100757816000928692838d01378a010152846029541693865190610f23826101ca565b815283810198895286810191825284600052602a8452866000209051600481101561108c5760ff8019835416911617815560019889820190518051908882116101b457610f7a82610f748554610275565b8561062a565b8690601f8311600114611017576002949392916000918361100c575b5050600019600383901b1c1916908c1b1790555b01906080519051166001600160601b0360a01b82541617905583610fcd84610206565b166001600160401b0319602954161760295501359182168092036110075703610ff7575001610e44565b51631aba532960e21b8152600490fd5b600080fd5b015190503880610f96565b9392918c91601f1982169084600052896000209160005b8b828210611069575050968360029810611050575b505050811b019055610faa565b015160001960f88460031b161c19169055388080611043565b919295899487849397999a9b015181550195019301908f9492979695939161102e565b634e487b7160e01b600052602160045260246000fd5b903590605e1981360301821215611007570190565b6001600160401b0381116101b457601f01601f191660200190565b906029546001600160401b0381166001600160401b03841610156000146111055760405163040aaa0560e11b8152600490fd5b6001600160401b038160401c166001600160401b0384161061149e5760401c6001600160401b03165b6001600160401b0383166001600160401b0382161161146a576001600160401b038116600052602a60205260406000209060018060a01b036002830154169160ff815416600481101561108c57600281036111d9575060016111a9916001600160401b0394600052602260205201600360406000200161066f565b818116600052602a60205260406000209060008255600060026001936111d08582016105e1565b0155011661112e565b91929160038103611367575060016111f191016102af565b90815182019160408160208501940312611007576020810151906001600160401b0382116110075783603f838301011215611007576020828201015191611237836110b7565b9461124560405196876101e5565b8386526040848385010101116110075760409261126a91846020880191850101610510565b0151918160005260226020526003604060002001908051906001600160401b0382116101b45761129e82610f748554610275565b602090601f83116001146112f05791806001600160401b03979694926112e096946000926112e5575b50508160011b916000199060031b1c19161790556114a3565b6111a9565b0151905038806112c7565b90601f198316918460005260206000209260005b81811061134f57509260019285926112e098966001600160401b039b9a989610611336575b505050811b0190556114a3565b015160001960f88460031b161c19169055388080611329565b92936020600181928786015181550195019301611304565b9061137860019493948092016102af565b93602085805181010312611007578160206001600160401b03960151931460001461142657908161140092600052602291826020526113be8582604060002001546114e7565b9282600052602052604060002060028101918483548115908161141d575b501561141457509060006113fb938160039481855584015555016105e1565b611989565b61140d60219182546114e7565b90556111a9565b92500155611989565b905015386113dc565b6112e09281600052602280602052611445828560406000200154610d3f565b93849184600052602052604060002001556114636021918254610d3f565b90556114f4565b509061147590610206565b67ffffffffffffffff60401b6029549160401b169067ffffffffffffffff60401b191617602955565b509050565b9060018060a01b0382166000526022602052604060002081815491558181146000146114ce57505050565b8111156114de576102ed91611803565b6102ed91611cdb565b9190820391821161021e57565b919060018060a01b03928381166000948186526020916024835261ffff916040978389822054166117125783855460081c168460235416106116de576115386127ae565b60019283825260258652828a832054168861155282611e66565b1061165857508152602785528389822054166115c15750505050506115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f15264939461159c83611dfb565b516001600160a01b03909216825260208201929092529081906040820190565b0390a1565b6115ca86612801565b926115d487611e66565b935b818682161161161a575b505097516001600160a01b039095168552505050506020810191909152909150600080516020612a108339815191529080604081016115bc565b808561163986617fff8f95871c169485885260288c5287205416611e66565b1015611652579061164b839282612960565b90506115d6565b506115e0565b969750899493507ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d75989992506115bc95602791611693612388565b8352522054166116d0575b6116a784612319565b6116b083611dfb565b516001600160a01b03928316815292909116602083015281906040820190565b6116d98461201c565b61169e565b50505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd939461159c83612319565b9792915061172385949796956127ca565b9761172d85611e66565b976117378a61220e565b8460235416905b8581168281116117de57828110156117c257508061175e61176492611de8565b9061275e565b9b909b5b8b111561178757611779908c6128c7565b6117828b61220e565b61173e565b505093516001600160a01b0390951685525050505060208101919091529092506000805160206129f0833981519152915080604081016115bc565b849c919c52602583526117d9858886205416611e66565b611768565b505050505050506115bc91929395506000805160206129f0833981519152945061159c565b6001600160a01b03808216600081815260246020526040808220549095949361ffff93918416611957578360205460081c16846023541610611925576118476127ae565b60018352602560205286832054168561185f82611e66565b106118d157508152602760205284902054166118a3576115bc7f19fe3ca603e87854a0747cc10abf06bac64d61bac73d6d15f2fd3ca448f152649361159c83611dfb565b6115bc600080516020612a108339815191529361159c6118c284612801565b6118cb85611e66565b906121b9565b93945091857ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7596926115bc94611905612388565b8152602760205220541661191c576116a784612319565b6116d9846120a7565b505050506115bc7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9361159c83612319565b505050506115bc6000805160206129f08339815191529361159c61197a846127ca565b61198385611e66565b906126cb565b909160018060a01b03928383169060009382855260206027815261ffff95604094878683205416611bb1578082526024835287868320541615611ba0578415611af857506119d6836127ca565b976119e084611e66565b985b6001808a83161115611ae95781617fff911c1690818452602585528a611a0c848a87205416611e66565b1115611a2157611a1c90826128c7565b6119e2565b505091939597509193955b6026541615611ae157611a3d6127ae565b600182526025835285818184205416926028611a5885611e66565b95611a616127bc565b600183525220541691611a7383611e66565b11611aa857505091516001600160a01b03909216825260208201526000805160206129f08339815191529080604081016115bc565b915091506115bc7ffaeb8de771b867cf357f6b459a7002b62ec45d544a8078a3ecd91200cc826d7593611ad9612388565b61169e611eb5565b505050505050565b50509193959750919395611a2c565b829450611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b93929894999697996124d1565b8651908152a160265416611b405750505050565b7f2e8038f5812f763c6ef0c5427cb5a05ce6d7064af2ba7d1d270bc02660b019fd9360288492611b6e6127bc565b6001835252205416611b94611b8282611e66565b92611b8b611eb5565b61159c83612319565b0390a1388080806109be565b8551632a55ca5360e01b8152600490fd5b84969792939598919415611ca0575061fffe9193611bce86612801565b93611bd887611e66565b9480966001958692831b168160265416925b611c2c575b505099516001600160a01b03909716875250505050602083019390935250919250600080516020612a1083398151915291905080604081016115bc565b818116838111611c9a578d9084811015611c7e57505080611c4f611c5592611de8565b906122c1565b9890985b881015611c7957611c6a9089612960565b611c738861220e565b86611bea565b611bef565b865260288552852054909890611c95908716611e66565b611c59565b50611bef565b94915050611cd49194507f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b9596925061201c565b51908152a1565b6001600160a01b0380821660008181526027602090815260408083205490969594919361ffff918216611d7e578084526024855281888520541615611d6d578615611d3c5750611a2c611d2d866127ca565b611d3687611e66565b9061267c565b849193979650611b2c7f4a4c5d1a281180eea1e99d8177fa4798b9f7e019d5c57e7d8d73c6a22199aa5b939661255c565b8751632a55ca5360e01b8152600490fd5b9693925050508315611dbb5750600080516020612a1083398151915293506115bc9061159c611dac84612801565b611db585611e66565b90612225565b9250611cd47f3168ba660eed6ef1dc2258b2247cc05fd0f2f350d39e6ad2e2ebc76a8000b40b94926120a7565b90600161ffff8093160191821161021e57565b6102ed906118cb61ffff91611e138360265416611de8565b9260018060a01b0382169081600052602760205260406000209085169161ffff199183838254161790558260005260286020526040600020906001600160601b0360a01b82541617905560265416176026555b60ff60205416600381101561108c57600103611e97576001600160a01b031660009081526022602052604090205490565b6001600160a01b031660009081526022602052604090206001015490565b61ffff806026541690811561200a5790600190611ed4818311156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a895284541690911790925592958795939492939291611f6e91908a611f5f83610e27565b16906026541617602655612826565b848252808652611f82848484205416611e66565b95859860028160265416995b611fa0575b5050505050505050505050565b8181168a8111612004578a811015611fe9575080611c4f611fc092611de8565b9a909a5b891015611fe457611fd5908b612960565b611fde8a61220e565b87611f8e565b611f93565b859b919b52838352611fff878787205416611e66565b611fc4565b50611f93565b6040516340d9b01160e01b8152600490fd5b61202590612801565b61ffff908160265416916120398383612960565b8061204384610e27565b1661ffff19602654161760265561205983612826565b811680921461074957611db5826102ed93600052602860205260018060a01b039061209361208d8360406000205416611e66565b856121b9565b600052602860205260406000205416611e66565b6120b090612801565b61ffff908160265416916120c48383612960565b806120ce84610e27565b1661ffff1960265416176026556120e483612826565b808216809314610c3c579161fffe9160009180835260289060209382855260018060a01b039260409261212461211e868686205416611e66565b876121b9565b8252808652612137848484205416611e66565b9585986001988997881b168160265416995b61215a575050505050505050505050565b8181168a8111612004578a81101561219e575080611c4f61217a92611de8565b9a909a5b891015611fe45761218f908b612960565b6121988a61220e565b87612149565b859b919b528383526121b4878787205416611e66565b61217e565b9190915b60018061ffff831611156122085781617fff911c1690836121f360008481526028602052604060018060a01b0391205416611e66565b1015612208576122039082612960565b6121bd565b50509050565b60011b906201fffe61fffe83169216820361021e57565b90600161fffe83821b168160009161ffff908160265416925b61224c575b50505050505050565b8181168381116122bb5783811015612295575080611c4f61226c92611de8565b9690965b861015612290576122819087612960565b61228a8661220e565b8461223e565b612243565b8452602860205260408420549096906122b6906001600160a01b0316611e66565b612270565b50612243565b91909161ffff92838216600052602860205261230460018060a01b036122ed8160406000205416611e66565b958316600052602860205260406000205416611e66565b908185106123125750509190565b9350919050565b6102ed90611d3661ffff916123318360235416611de8565b9260018060a01b0382169081600052602460205260406000209085169161ffff199183838254161790558260005260256020526040600020906001600160601b0360a01b8254161790556023541617602355611e66565b61ffff806023541690811561200a57906001906123a7818311156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff199081168c17909155918416808a52868a20805484168d17905588885283546001600160a01b03199081169092179093558a89528454169091179092559295879593949293929161244191908a61243283610e27565b16906023541617602355612868565b848252808652612455848484205416611e66565b95859860028160235416995b612472575050505050505050505050565b8181168a8111612004578a8110156124b657508061175e61249292611de8565b9a909a5b891115611fe4576124a7908b6128c7565b6124b08a61220e565b87612461565b859b919b528383526124cc878787205416611e66565b612496565b6124da906127ca565b61ffff908160235416916124ee83836128c7565b806124f884610e27565b1661ffff19602354161760235561250e83612868565b811680921461074957611983826102ed93600052602560205260018060a01b03906125486125428360406000205416611e66565b8561267c565b600052602560205260406000205416611e66565b612565906127ca565b9061ffff9081602354169061257a82856128c7565b8261258483610e27565b1661ffff19602354161760235561259a82612868565b8284168092146126765760009291929183835260259260209484865260018060a01b03916040916125d86125d2858585205416611e66565b8a61267c565b81528587526125eb838383205416611e66565b956125f58961220e565b978560235416985b8681168a8111612668578a81101561264d57508061175e61261d92611de8565b9a909a5b89111561264057612632908b6128c7565b61263b8a61220e565b6125fd565b5050505050505092505050565b849b919b52828252612663868686205416611e66565b612621565b505050505050505092505050565b92505050565b9190915b60018061ffff831611156122085781617fff911c1690836126b660008481526025602052604060018060a01b0391205416611e66565b1115612208576126c690826128c7565b612680565b916126d58361220e565b600061ffff918260235416905b838116828111612754578281101561272e57508061175e61270292611de8565b9690965b8611156127255761271790876128c7565b6127208661220e565b6126e2565b50505050915050565b83526025602052604083205490969061274f906001600160a01b0316611e66565b612706565b5050505050915050565b919061ffff808416600052602560205261279f60018060a01b036127888160406000205416611e66565b928416600052602560205260406000205416611e66565b93848211156123125750509190565b61ffff602354161561200a57565b61ffff602654161561200a57565b6001600160a01b031660009081526024602052604090205461ffff169081156127ef57565b60405163f2755e3760e01b8152600490fd5b6001600160a01b031660009081526027602052604090205461ffff169081156127ef57565b61ffff16600090815260286020908152604080832080546001600160a01b031981169091556001600160a01b0316835260279091529020805461ffff19169055565b61ffff16600090815260256020908152604080832080546001600160a01b031981169091556001600160a01b0316835260249091529020805461ffff19169055565b156128b157565b634e487b7160e01b600052600160045260246000fd5b6128ec61ffff8080602354169316936128e2848611156128aa565b16918211156128aa565b6000828152602560208181526040808420805486865282862080546001600160a01b0392831680895260248752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b031990811690931790945593909152825416179055565b61297b61ffff8080602654169316936128e2848611156128aa565b6000828152602860208181526040808420805486865282862080546001600160a01b0392831680895260278752858920805461ffff19908116909b1790559216808852938720805490981689179097559390925284546001600160a01b03199081169093179094559390915282541617905556fe143db27bc2036653dc6f962ff9d0b803163d4af50c256ca9e6927b3d6dcd0197da148fac2e1063174be7bc0895576bdaba90fd14e575463fa26a967cb895cadda2646970667358221220cff9f210462ab66eb409caf3ccd6d5276d22bbdb298d3cafd0f082e4e5621cc564736f6c63430008130033","sourceMap":"580:3041:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;580:3041:51;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1914:14;4574:73:64;;;:::i;:::-;580:3041:51;1914:14;:::i;:::-;580:3041;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4574:73:64;;:::i;:::-;580:3041:51;;;;;;;:::i;:::-;;;;;;5710:20:63;580:3041:51;;;;5744:28:63;;;;5740:98;;580:3041:51;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5710:20:63;580:3041:51;;;1603:28;;580:3041;;;;;;;;;;;;;;;;;5740:98:63;580:3041:51;;-1:-1:-1;;;5795:32:63;;580:3041:51;;5795:32:63;580:3041:51;;;;;;;;;;;;;;;;;;;4574:73:64;;;:::i;:::-;-1:-1:-1;;;;;4639:1:64;;:::i;:::-;580:3041:51;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;-1:-1:-1;580:3041:51;;;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2134:1485;2313:27;580:3041;-1:-1:-1;;;;;580:3041:51;;;-1:-1:-1;;580:3041:51;;;;;;2566:23;;;:::i;:::-;580:3041;;;;;;;;;2565:81;2475:264;;2812:19;;;:::i;:::-;580:3041;;;5816:27:69;580:3041:51;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;580:3041:51;;;;;:::i;:::-;;2313:19;;580:3041;;;;;;2367:1;5909:12:69;580:3041:51;;;5923:9:69;;;;;580:3041:51;;;;598:23:78;580:3041:51;;;;;;;;2367:1;;-1:-1:-1;;;;;580:3041:51;5950:60:69;5960:5;580:3041:51;5960:5:69;580:3041:51;5960:5:69;:::i;:::-;580:3041:51;5950:60:69;;:::i;:::-;580:3041:51;;;5909:12:69;;5923:9;;;;;;;;;;;580:3041:51;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;3081:9;;;580:3041;3092:11;;;;;;580:3041;;3505:70;580:3041;;;;;;;;;:::i;:::-;;;;;3505:70;;;580:3041;3505:70;:::i;:::-;2134:1485;:::o;3081:9::-;2367:1;;-1:-1:-1;;;;;3136:13:51;580:3041;3136:13;;:::i;:::-;580:3041;;;;;3192:41;580:3041;;;5816:27:69;580:3041:51;;;3280:24;;;580:3041;;;;;;;;:::i;:::-;;;3261:82;;;580:3041;3328:13;580:3041;:::i;:::-;3261:82;;;580:3041;3253:90;;;;:::i;:::-;;;;;;:::i;:::-;;580:3041;3081:9;;580:3041;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2475:264;2720:8;;;580:3041;2720:8;:::o;580:3041::-;;;;;;;;-1:-1:-1;;580:3041:51;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;-1:-1:-1;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;6344:19:63;580:3041:51;;;;;;;;6344:19:63;-1:-1:-1;580:3041:51;;;;;-1:-1:-1;580:3041:51;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;;6087:1976:63;580:3041:51;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6167:29:63;580:3041:51;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;6167:29:63;;;580:3041:51;6344:39:63;580:3041:51;;6344:44:63;;6340:621;;6087:1976;6344:19;;;;580:3041:51;;;;;;;;;;;6971:16:63;580:3041:51;;6971:16:63;580:3041:51;;;;;;6087:1976:63;-1:-1:-1;6971:16:63;580:3041:51;;;;;;;;;;;;;;;;;;;6344:39:63;580:3041:51;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;7042:21:63;;580:3041:51;;;;7306:9:63;;7317:15;;;;;;580:3041:51;;;;;;6344:39:63;580:3041:51;;;6344:39:63;580:3041:51;7817:25:63;;;7813:244;;7301:332;6087:1976;;;;:::o;7813:244::-;7888:15;;;;7813:244;7888:15;580:3041:51;;;;;;-1:-1:-1;;580:3041:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7863:23:63;;580:3041:51;-1:-1:-1;;;580:3041:51;;;;;;;;;-1:-1:-1;;;580:3041:51;;;;;;;;7306:9:63;7354:15;;;;;;7425:21;7389:60;7425:24;580:3041:51;7425:21:63;;;:24;:::i;:::-;;7389:33;;;:::i;:::-;:60;;:::i;:::-;580:3041:51;7306:9:63;;7350:214;7524:24;:21;;;:24;:::i;:::-;;580:3041:51;;;;;;;;;;;;;;;;;;;;:::i;:::-;7350:214:63;;580:3041:51;-1:-1:-1;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6971:16:63;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6340:621:63;580:3041:51;;;;;6442:36:63;580:3041:51;;6408:70:63;;;;6404:115;;6632:69;6628:139;;580:3041:51;;;;;;:::i;:::-;6344:19:63;580:3041:51;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;6344:19:63;-1:-1:-1;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;;-1:-1:-1;;;580:3041:51;;;-1:-1:-1;;580:3041:51;;;6862:48:63;;;;:::i;:::-;6858:93;;6340:621;;;;;6858:93;6930:7;;;:::o;580:3041:51:-;;;6344:39:63;580:3041:51;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6628:139:63;580:3041:51;;-1:-1:-1;;;6728:24:63;;6344:19;;6728:24;6404:115;6498:7;;;;;;;;:::o;8598:561::-;-1:-1:-1;;;;;8712:23:63;;;;;;;580:3041:51;;8739:23:63;;;;580:3041:51;;8712:50:63;8708:93;;8814:26;;;:::i;:::-;8844;;;:::i;:::-;8814:56;8810:99;;8922:14;580:3041:51;;8947:14:63;;580:3041:51;8922:46:63;8918:89;;9099:26;580:3041:51;;;;9039:26:63;;580:3041:51;9039:26:63;;;580:3041:51;;;;;;;;;:::i;:::-;9039:26:63;580:3041:51;9039:26:63;580:3041:51;;9039:26:63;;;;;;;;:::i;:::-;580:3041:51;9029:37:63;;9110:14;;580:3041:51;;9099:26:63;;;;;;580:3041:51;;;;;;;;:::i;:::-;9099:26:63;;;;;;;;:::i;:::-;580:3041:51;9089:37:63;;9144:8;8598:561;:::o;580:3041:51:-;;;;;;;;;;:::o;8132:387:63:-;8243:15;;580:3041:51;8275:29:63;580:3041:51;8319:9:63;;8314:161;8330:7;;;;;;8484:28;;;8132:387;:::o;8319:9::-;8380:15;;;8355:50;580:3041:51;8380:15:63;:18;:15;;;:18;:::i;:::-;;580:3041:51;8355:50:63;;:::i;:::-;580:3041:51;;8319:9:63;;;;4430:138:64;580:3041:51;;-1:-1:-1;;;4486:26:64;;:10;:26;;;580:3041:51;4486:26:64;580:3041:51;;;4486:24:64;:26;;;;;;;-1:-1:-1;4486:26:64;;;4430:138;4485:27;;4481:81;;4430:138::o;4481:81::-;580:3041:51;;-1:-1:-1;;;4535:16:64;;4486:26;;4535:16;4486:26;;;;;;;;;;;;;;;:::i;:::-;;;580:3041:51;;;;;;;;;;;;;4486:26:64;;;;;;;-1:-1:-1;4486:26:64;;;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;;;;;-1:-1:-1;;580:3041:51;;;;;;;:::o;26893:415:69:-;27098:11;;27094:48;;27108:1;27168:10;;;;;;26893:415;;;:::o;27157:9::-;580:3041:51;;;;;;;;;;;;;;;;;;;26615:30:69;;:20;;;;;:::i;:::-;:30;580:3041:51;;;;;;;;;;;;;;;;26663:20:69;;;;:::i;:::-;580:3041:51;;;;;;;26709:20:69;;;;:::i;:::-;580:3041:51;26709:28:69;;;;580:3041:51;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;27108:1:69;580:3041:51;;;;;;;;;;;;26564:12:69;580:3041:51;;;;;;;;;:::i;:::-;;;3528:63:70;;;580:3041:51;;;3528:63:70;;;580:3041:51;;;;27108:1:69;580:3041:51;3489:15:70;580:3041:51;;;27108:1:69;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;27108:1:69;;580:3041:51;;;;-1:-1:-1;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;3636:23:70;;;;:::i;:::-;580:3041:51;-1:-1:-1;;;;;580:3041:51;26564:12:69;580:3041:51;;;26564:12:69;580:3041:51;26786:33:69;580:3041:51;;;;;;;;;26763:56:69;26759:122;;580:3041:51;;27157:9:69;;26759:122;580:3041:51;-1:-1:-1;;;26842:28:69;;580:3041:51;;26842:28:69;580:3041:51;27108:1:69;580:3041:51;;;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;27108:1:69;580:3041:51;;27108:1:69;580:3041:51;;27108:1:69;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27108:1:69;580:3041:51;;;;;27108:1:69;580:3041:51;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;580:3041:51;;;;;;-1:-1:-1;;580:3041:51;;;;:::o;27379:1594:69:-;;27514:12;580:3041:51;-1:-1:-1;;;;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;27491:59:69;;27487:227;580:3041:51;;;;;-1:-1:-1;;;27573:28:69;;;;;27487:227;-1:-1:-1;;;;;580:3041:51;;;;-1:-1:-1;;;;;580:3041:51;;27622:59:69;27618:96;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;27792:16:69;-1:-1:-1;;;;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;27810:24:69;;;-1:-1:-1;;;;;580:3041:51;;-1:-1:-1;580:3041:51;3893:15:70;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;;27942:16:69;;;580:3041:51;;;;;;;;;;;;;27942:16:69;27977:41;;27942:16;;580:3041:51;;;;-1:-1:-1;;;;;580:3041:51;-1:-1:-1;580:3041:51;28038:26:69;580:3041:51;;28087:14:69;28038:46;580:3041:51;-1:-1:-1;580:3041:51;28038:46:69;580:3041:51;:::i;:::-;;;;-1:-1:-1;580:3041:51;3893:15:70;580:3041:51;;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;-1:-1:-1;27942:16:69;580:3041:51;;;;;;;:::i;:::-;;;;;27792:16:69;;27973:810;28126:47;;;28139:34;28126:47;;28139:34;;28245:14;580:3041:51;;28245:14:69;;580:3041:51;:::i;:::-;;;;28234:44:69;;;580:3041:51;28234:44:69;580:3041:51;28234:44:69;;580:3041:51;;;;;;28234:44:69;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;580:3041:51;28296:26:69;580:3041:51;;28139:34:69;580:3041:51;-1:-1:-1;580:3041:51;28296:46:69;580:3041:51;;;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;28420:5:69;580:3041:51;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;28139:34:69;580:3041:51;;;;;;;28420:5:69;:::i;:::-;27973:810;;580:3041:51;;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;-1:-1:-1;580:3041:51;;;;;;;;;;;;28420:5:69;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;28420:5:69;:::i;580:3041:51:-;;;;;;;28139:34:69;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28122:661:69;580:3041:51;;;;;;28493:14:69;;;580:3041:51;:::i;:::-;;;;;;28482:37:69;;580:3041:51;;;;28482:37:69;580:3041:51;-1:-1:-1;;;;;28482:37:69;;580:3041:51;28542:38:69;;28538:231;3893:15:70;;;580:3041:51;;10830:13:69;580:3041:51;-1:-1:-1;580:3041:51;10416:15:69;580:3041:51;;;;10416:55:69;580:3041:51;;;-1:-1:-1;580:3041:51;10416:46:69;580:3041:51;10416:55:69;:::i;:::-;580:3041:51;;-1:-1:-1;580:3041:51;;;;-1:-1:-1;580:3041:51;27942:16:69;10507:42;;580:3041:51;;;;10564:18:69;;:42;;;;28538:231;-1:-1:-1;10560:199:69;;;580:3041:51;;-1:-1:-1;580:3041:51;;;28139:34:69;580:3041:51;;;;;;;;;;:::i;:::-;10830:13:69;:::i;:::-;10856:39;:29;580:3041:51;;;10856:39:69;:::i;:::-;580:3041:51;;27973:810:69;;10560:199;10686:46;;;580:3041:51;10830:13:69;:::i;10564:42::-;10586:20;;;10564:42;;;28538:231;10258:13;580:3041:51;;-1:-1:-1;580:3041:51;10005:15:69;580:3041:51;;;10005:55:69;580:3041:51;;;-1:-1:-1;580:3041:51;10005:46:69;580:3041:51;10005:55:69;:::i;:::-;580:3041:51;;;;-1:-1:-1;580:3041:51;;;;-1:-1:-1;580:3041:51;10070:46:69;580:3041:51;10143:39:69;:29;580:3041:51;;;10143:39:69;:::i;:::-;580:3041:51;;10258:13:69;:::i;27810:24::-;;;28943:23;27810:24;28943:23;:::i;:::-;-1:-1:-1;;;27514:12:69;580:3041:51;;;;;;-1:-1:-1;;;580:3041:51;;;27514:12:69;580:3041:51;27379:1594:69:o;27618:96::-;27697:7;;;:::o;9330:540::-;;580:3041:51;;;;;;;-1:-1:-1;580:3041:51;9465:15:69;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;9580:22:69;;;9576:288;9580:22;;;9618:7;;;:::o;9576:288::-;-1:-1:-1;;9645:21:69;;;9747:5;;;:::i;9641:223::-;9846:5;;;:::i;580:3041:51:-;;;;;;;;;;:::o;11008:2209:69:-;;;580:3041:51;;;;;;;;;-1:-1:-1;580:3041:51;;;;;;1317:17:79;580:3041:51;;;;;;;;;;;;11120:226:69;;580:3041:51;;;;;;;11124:21:69;580:3041:51;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;580:3041:51;;;;;4077:23:77;580:3041:51;;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;580:3041:51;;;1317:17:79;580:3041:51;;;;;;;;12866:229:69;;13141:11;;;;;13168:42;;13141:11;;;;;:::i;:::-;580:3041:51;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;13168:42:69;;;;11008:2209::o;12866:229::-;3147:36:77;;;:::i;:::-;3209:30;;;;:::i;:::-;3308:5;4619:7;580:3041:51;;;;4619:7:77;;;4612:423;-1:-1:-1;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;-1:-1:-1;;;;580:3041:51;;;;;;;;;-1:-1:-1;;;;;;;;;;;;13008:56:69;580:3041:51;;;;13008:56:69;580:3041:51;4612:423:77;580:3041:51;;1991:25:79;580:3041:51;;;;;;;;;;;1952:17:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;;;:::i;:::-;4612:423;;;;4864:82;4926:5;;;12404:452:69;12475:4;;;;;;;12777:48;12475:4;;;;12777:48;12475:4;1317:17:79;12475:4:69;;;:::i;:::-;580:3041:51;;;;;;12495:140:69;;12404:452;12684:11;;;:::i;:::-;12746:10;;;:::i;:::-;580:3041:51;-1:-1:-1;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;12495:140:69;12608:11;;;:::i;:::-;12495:140;;11516:262;11675:11;;;;;11706:41;;11675:11;;;;;:::i;11120:226::-;2876:36:78;;;;;;;;;;;:::i;:::-;2936:30;;;;:::i;:::-;3035:3;4846:7;3035:3;4846:7;:::i;:::-;580:3041:51;11124:21:69;580:3041:51;;4932:763:78;;580:3041:51;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;:::-;5089:187;;:::i;:::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;-1:-1:-1;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;-1:-1:-1;;;;580:3041:51;;;;;;;5556:5:78;;-1:-1:-1;;;;;;;;;;;;11260:55:69;-1:-1:-1;580:3041:51;;;;11260:55:69;580:3041:51;4971:413:78;580:3041:51;;;;;1952:17:79;580:3041:51;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;11260:55:69;4939:16:78;;;;;-1:-1:-1;;;;;;;;;;;4939:16:78;;;;11008:2209:69;-1:-1:-1;;;;;580:3041:51;;;-1:-1:-1;580:3041:51;;;1317:17:79;580:3041:51;;;;;;;;;11008:2209:69;;580:3041:51;;;;;11120:226:69;;580:3041:51;;;;;;;11124:21:69;580:3041:51;;-1:-1:-1;11516:262:69;;4023:26:77;;:::i;:::-;580:3041:51;;;4077:23:77;580:3041:51;;;;;;;4129:25:77;;;;:::i;:::-;12408::69;12404:452;;-1:-1:-1;580:3041:51;;1317:17:79;580:3041:51;;;;;;;12866:229:69;;13168:42;;13141:11;;;;:::i;12866:229::-;13008:56;-1:-1:-1;;;;;;;;;;;3147:36:77;3308:5;3147:36;;;:::i;:::-;3209:30;;;:::i;:::-;3308:5;;:::i;12404:452:69:-;12475:4;;;;;12777:48;12475:4;;12777:48;12475:4;;;:::i;:::-;580:3041:51;;1317:17:79;580:3041:51;;;;;12495:140:69;;12684:11;;;:::i;12495:140::-;12608:11;;;:::i;11516:262::-;11675:11;;;;11706:41;;11675:11;;;;:::i;11120:226::-;2876:36:78;;;;11260:55:69;-1:-1:-1;;;;;;;;;;;2876:36:78;3035:3;2876:36;;;:::i;:::-;2936:30;;;:::i;:::-;3035:3;;:::i;13320:2014:69:-;;;580:3041:51;;;;;;;;;-1:-1:-1;;580:3041:51;;;;;1317:17:79;580:3041:51;;;;;;;;;;;;13428:421:69;;580:3041:51;;;1317:17:79;580:3041:51;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;;;;:::i;:::-;3323:30;;;;:::i;:::-;3422:3;4270:433;580:3041:51;;;;;4277:7:78;;;;580:3041:51;;;;;;;;;1952:17:79;580:3041:51;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4533:81;4594:5;;;;;;;;;;4270:433;13432:22:69;580:3041:51;;14638:37:69;14634:74;;4023:26:77;;:::i;:::-;580:3041:51;;;1952:17:79;580:3041:51;;;;;;;;;4129:25:77;4077:23;4129:25;;;:::i;:::-;4023:26;;;:::i;:::-;580:3041:51;;;;;;;4129:25:77;;;;:::i;:::-;-1:-1:-1;14901:358:69;;-1:-1:-1;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;;;;;-1:-1:-1;;;;;;;;;;;15274:53:69;580:3041:51;;;;15274:53:69;580:3041:51;14901:358:69;14979:4;;;;15176:52;;14979:4;;;:::i;:::-;15025;;:::i;14634:74::-;14691:7;;;;;;:::o;4277::78:-;;;;;;;;;;;;;14049:508:69;14126:9;;;;14155:30;14126:9;;;;;;;;;:::i;:::-;580:3041:51;;;;;14155:30:69;13432:22;580:3041:51;;14200:326:69;;14540:7;;;;:::o;14200:326::-;14472:39;4023:26:77;4077:23;4023:26;;;;:::i;:::-;580:3041:51;;;;;;;14472:39:69;4129:25:77;;;:::i;:::-;14378:4:69;;;:::i;:::-;14436:12;;;:::i;14472:39::-;;;;14200:326;;;;;;13883:106;580:3041:51;;-1:-1:-1;;;13952:26:69;;1317:17:79;;13952:26:69;13428:421;13494:13;;;;;;;;;;13490:185;;3601:36:77;580:3041:51;3601:36:77;;;;;:::i;:::-;3663:30;;;;:::i;:::-;3762:5;;580:3041:51;;;;;;;;;13432:22:69;580:3041:51;;5287:763:77;580:3041:51;;;5287:763:77;-1:-1:-1;;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;-1:-1:-1;;;;580:3041:51;;;;;;;-1:-1:-1;580:3041:51;;-1:-1:-1;;;;;;;;;;;;13764:54:69;580:3041:51;-1:-1:-1;580:3041:51;;;;13764:54:69;580:3041:51;5287:763:77;580:3041:51;;;5294:16:77;;;;;5330:15;;;;;;;;5599:12;;;;5444:186;5599:12;;:::i;:::-;5444:186;;:::i;:::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;580:3041:51;;1952:17:79;580:3041:51;;;;;;;;1991:25:79;;580:3041:51;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;13490:185:69;13572:9;;;;;;;;13605:31;13572:9;;;;;:::i;:::-;580:3041:51;;;;13605:31:69;13654:7::o;13320:2014::-;-1:-1:-1;;;;;580:3041:51;;;-1:-1:-1;580:3041:51;;;1317:17:79;580:3041:51;;;;;;;;;;;13320:2014:69;;580:3041:51;;;;;;13428:421:69;;580:3041:51;;;1317:17:79;580:3041:51;;;;;;;;1317:33:79;13883:106:69;;14053:13;;14049:508;;3263:36:78;3422:3;3263:36;;;:::i;:::-;3323:30;;;:::i;:::-;3422:3;;:::i;14049:508:69:-;14126:9;;;;;;;14155:30;14126:9;;;:::i;13883:106::-;580:3041:51;;-1:-1:-1;;;13952:26:69;;1317:17:79;;13952:26:69;13428:421;13494:13;;;;;;;;13490:185;;3601:36:77;-1:-1:-1;;;;;;;;;;;3601:36:77;;13764:54:69;3601:36:77;3762:5;3601:36;;;:::i;:::-;3663:30;;;:::i;:::-;3762:5;;:::i;13490:185:69:-;13572:9;;;13605:31;13572:9;;;:::i;580:3041:51:-;;;;;;;;;;;;;:::o;998:417:77:-;1401:5;998:417;1301:30;580:3041:51;;1119:19:77;580:3041:51;12499:22:69;580:3041:51;;1119:19:77;:::i;:::-;580:3041:51;;;;;;;;;;-1:-1:-1;580:3041:51;1149:23:77;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;1200:23:77;580:3041:51;;;-1:-1:-1;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;;;;12499:22:69;580:3041:51;;;12499:22:69;580:3041:51;4525:375:69;580:3041:51;;;;;;;;;;4697:24:69;4668:53;4697:24;;-1:-1:-1;;;;;580:3041:51;-1:-1:-1;580:3041:51;;;4745:21:69;580:3041:51;;;;;;;4525:375:69:o;4664:230::-;-1:-1:-1;;;;;580:3041:51;-1:-1:-1;580:3041:51;;;4831:21:69;580:3041:51;;;;;;4831:52:69;580:3041:51;;4525:375:69:o;1545:401:77:-;580:3041:51;;13432:22:69;580:3041:51;;1044:14:79;;;1040:61;;580:3041:51;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;580:3041:51;;;;2468:17:79;580:3041:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;2551:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1799:4:77;;580:3041:51;1766:8:77;;580:3041:51;1766:8:77;:::i;:::-;580:3041:51;;13432:22:69;580:3041:51;;;13432:22:69;580:3041:51;1799:4:77;:::i;:::-;580:3041:51;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;5047:1009:77;;5160:26;1952:17:79;580:3041:51;13432:22:69;580:3041:51;;5287:763:77;580:3041:51;;;5287:763:77;1545:401;;;;;;;;;;;:::o;5287:763::-;580:3041:51;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;580:3041:51;;;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;1040:61:79;580:3041:51;;-1:-1:-1;;;1081:9:79;;;;;2081:787:77;2210:36;2081:787;2210:36;:::i;:::-;580:3041:51;;;12499:22:69;580:3041:51;;2321:4:77;;;;;:::i;:::-;2382:8;;;;:::i;:::-;580:3041:51;;;12499:22:69;580:3041:51;;;12499:22:69;580:3041:51;2415:4:77;;;:::i;:::-;580:3041:51;;2435:11:77;;;2431:48;;1991:25:79;580:3041:51;2854:5:77;580:3041:51;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;;;;;;2668:5:77;1991:25:79;580:3041:51;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;2668:5:77;;:::i;:::-;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;2081:787:77:-;2210:36;2081:787;2210:36;:::i;:::-;580:3041:51;;;12499:22:69;580:3041:51;;2321:4:77;;;;;:::i;:::-;2382:8;;;;:::i;:::-;580:3041:51;;;12499:22:69;580:3041:51;;;12499:22:69;580:3041:51;2415:4:77;;;:::i;:::-;580:3041:51;;;2435:11:77;;;2431:48;;-1:-1:-1;580:3041:51;-1:-1:-1;;580:3041:51;;;;1952:17:79;580:3041:51;;;;;;;;;;;;;;2668:5:77;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;2668:5:77;;:::i;:::-;580:3041:51;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;2854:5:77;;580:3041:51;;;;;;;;;12499:22:69;580:3041:51;;5287:763:77;580:3041:51;;;2081:787:77;;;;;;;;;;;:::o;5287:763::-;580:3041:51;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5326:412;580:3041:51;;;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;5326:412:77;;4443:598;;;;4612:423;4625:1;580:3041:51;;;;4619:7:77;;;;580:3041:51;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;580:3041:51;;;1952:17:79;580:3041:51;;;;;;;;;;;;1991:25:79;:::i;:::-;6662:7:77;4868:38;4864:82;;4991:3;;;;:::i;:::-;4612:423;;4864:82;4926:5;;;;4443:598::o;580:3041:51:-;;;;;;;;;;;;;;:::o;5047:1009:77:-;;5185:1;580:3041:51;;;;;5218:18:77;-1:-1:-1;5218:18:77;580:3041:51;;;13432:22:69;580:3041:51;;5287:763:77;5185:1;;;5287:763;5047:1009;;;;;;;:::o;5287:763::-;580:3041:51;;;5294:16:77;;;;;5330:15;;;;;;5599:12;;;5444:186;5599:12;;:::i;5444:186::-;5419:211;;5326:412;;6662:7;;5854:37;5850:81;;5975:3;;;;:::i;:::-;6032:7;5993:14;6032:7;:::i;:::-;5287:763;;;5850:81;5911:5;;5326:412;580:3041:51;;1952:17:79;580:3041:51;;;;;;;;;1991:25:79;;-1:-1:-1;;;;;580:3041:51;1991:25:79;:::i;:::-;5326:412:77;;5294:16;;;;6117:442;;;;580:3041:51;;;;;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;1991:25:79;580:3041:51;;;;;1991:25:79;580:3041:51;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;580:3041:51;;;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;6662:7:77;;;;6437:85;;6531:21;;;6117:442;:::o;6437:85::-;6490:21;-1:-1:-1;6490:21:77;;-1:-1:-1;6490:21:77:o;924:417:78:-;1327:5;924:417;1227:30;580:3041:51;;1045:19:78;580:3041:51;11124:21:69;580:3041:51;;1045:19:78;:::i;:::-;580:3041:51;;;;;;;;;;-1:-1:-1;580:3041:51;1075:23:78;580:3041:51;;;-1:-1:-1;580:3041:51;;;;;;;;;;;;;;;;;-1:-1:-1;580:3041:51;1126:23:78;580:3041:51;;;-1:-1:-1;580:3041:51;;-1:-1:-1;;;;;580:3041:51;;;;;;;;11124:21:69;580:3041:51;;;11124:21:69;580:3041:51;1227:30:78;:::i;1408:401::-;580:3041:51;;11124:21:69;580:3041:51;;1044:14:79;;;1040:61;;580:3041:51;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;580:3041:51;;;;2468:17:79;580:3041:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;2551:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:17:79;1662:4:78;;580:3041:51;1629:8:78;;580:3041:51;1629:8:78;:::i;:::-;580:3041:51;;11124:21:69;580:3041:51;;;11124:21:69;580:3041:51;1662:4:78;:::i;:::-;580:3041:51;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;4715:986:78;;4828:25;1952:17:79;580:3041:51;11124:21:69;580:3041:51;;4932:763:78;580:3041:51;;;1408:401:78;;;;;;;;;;;:::o;4932:763::-;580:3041:51;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;;4971:413;580:3041:51;;;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;4971:413:78;;1881:779;2010:36;1881:779;2010:36;:::i;:::-;580:3041:51;;;13888:21:69;580:3041:51;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;580:3041:51;;;13888:21:69;580:3041:51;;;13888:21:69;580:3041:51;2215:4:78;;;:::i;:::-;580:3041:51;;2235:11:78;;;2231:48;;1991:25:79;580:3041:51;2648:3:78;580:3041:51;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;;;;;;2466:3:78;1991:25:79;580:3041:51;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;1881:779:78:-;2010:36;1881:779;2010:36;:::i;:::-;580:3041:51;;;;13888:21:69;580:3041:51;;2121:4:78;;;;;:::i;:::-;2182:8;;;;:::i;:::-;580:3041:51;;;13888:21:69;580:3041:51;;;13888:21:69;580:3041:51;2215:4:78;;;:::i;:::-;580:3041:51;;;2235:11:78;;;2231:48;;-1:-1:-1;;;;580:3041:51;;;;1952:17:79;580:3041:51;;;;;;;;;;;;;;2466:3:78;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;2466:3:78;;:::i;:::-;580:3041:51;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;2648:3:78;4846:7;2648:3;4846:7;:::i;:::-;4863:18;580:3041:51;13888:21:69;580:3041:51;;4932:763:78;;580:3041:51;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;;;;;1881:779::o;4971:413::-;580:3041:51;;;;;;;;1991:25:79;580:3041:51;;;;;;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;;;;;;1881:779::o;2231:48::-;2262:7;;;;:::o;4101:608::-;;;;4270:433;4283:1;580:3041:51;;;;4277:7:78;;;;580:3041:51;;;;;-1:-1:-1;;1991:25:79;-1:-1:-1;580:3041:51;;;1952:17:79;580:3041:51;;;;;;;;;;;;1991:25:79;:::i;:::-;6308:7:78;4537:37;4533:81;;4659:3;;;;:::i;:::-;4270:433;;4715:986;;4846:7;;;:::i;:::-;-1:-1:-1;580:3041:51;;;11124:21:69;580:3041:51;;4932:763:78;;580:3041:51;;;4939:16:78;;;;;4975:15;;;;;;5245:12;;;5089:187;5245:12;;:::i;5089:187::-;5064:212;;4971:413;;6308:7;;5500:36;5496:80;;5620:3;;;;:::i;:::-;5677:7;5638:14;5677:7;:::i;:::-;4932:763;;5496:80;5556:5;;;;;;;4715:986::o;4971:413::-;580:3041:51;;1952:17:79;580:3041:51;;;;;;;;;1991:25:79;;-1:-1:-1;;;;;580:3041:51;1991:25:79;:::i;:::-;4971:413:78;;4939:16;;;;;;;;;4715:986::o;5763:443::-;;;580:3041:51;;;;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;1991:25:79;580:3041:51;;;;;1991:25:79;580:3041:51;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;580:3041:51;;;-1:-1:-1;580:3041:51;1952:17:79;580:3041:51;;;-1:-1:-1;580:3041:51;;;1991:25:79;:::i;:::-;6308:7:78;;;;6088:33;6084:85;;6178:21;;;5763:443;:::o;974:133:79:-;580:3041:51;11124:21:69;580:3041:51;;1044:14:79;1040:61;;974:133::o;:::-;580:3041:51;13432:22:69;580:3041:51;;1044:14:79;1040:61;;974:133::o;1363:226::-;-1:-1:-1;;;;;580:3041:51;-1:-1:-1;580:3041:51;;;1474:17:79;580:3041:51;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1512:71::-;580:3041:51;;-1:-1:-1;;;1547:25:79;;;;;1363:226;-1:-1:-1;;;;;580:3041:51;-1:-1:-1;580:3041:51;;;1474:17:79;580:3041:51;;;;;;;;;1516:8:79;;1512:71;;1363:226::o;1595:184::-;580:3041:51;;-1:-1:-1;580:3041:51;;;1671:17:79;580:3041:51;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;-1:-1:-1;;;;;580:3041:51;;;1749:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;1595:184:79:o;:::-;580:3041:51;;-1:-1:-1;580:3041:51;;;1671:17:79;580:3041:51;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;-1:-1:-1;;;;;580:3041:51;;;1749:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;1595:184:79:o;580:3041:51:-;;;;:::o;:::-;;;;;;;;;;;;2301:412:79;2416:25;580:3041:51;;;11124:21:69;580:3041:51;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;:::-;580:3041:51;2423:17:79;;;;2416:25;:::i;:::-;-1:-1:-1;580:3041:51;;;2468:17:79;580:3041:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;2551:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;2301:412:79:o;:::-;2416:25;580:3041:51;;;12870:22:69;580:3041:51;;;;2388:17:79;2381:25;2388:17;;;;2381:25;:::i;2416:::-;-1:-1:-1;580:3041:51;;;2468:17:79;580:3041:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;580:3041:51;;;;;;2551:17:79;580:3041:51;;;;;;;-1:-1:-1;;580:3041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;580:3041:51;;;;;;;;;;;;;;;;;;;2301:412:79:o","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":3491,"length":20}]}}},"methodIdentifiers":{"applyFinalityChanges()":"0df14461","commitParentFinality((uint256,bytes32))":"11196974","storeValidatorChanges(((uint8,bytes,address),uint64)[])":"e49a547d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressShouldBeValidator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CannotConfirmFutureChanges\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidConfigurationNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OldConfigurationNumber\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQDoesNotContainAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PQEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ParentFinalityAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"applyFinalityChanges\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"finality\",\"type\":\"tuple\"}],\"name\":\"commitParentFinality\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"hasCommittedBefore\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct ParentFinality\",\"name\":\"previousFinality\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum StakingOperation\",\"name\":\"op\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"}],\"internalType\":\"struct StakingChange\",\"name\":\"change\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"configurationNumber\",\"type\":\"uint64\"}],\"internalType\":\"struct StakingChangeRequest[]\",\"name\":\"changeRequests\",\"type\":\"tuple[]\"}],\"name\":\"storeValidatorChanges\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"applyFinalityChanges()\":{\"returns\":{\"_0\":\"configurationNumber The configuration number of the changes set that has been confirmed.\"}},\"commitParentFinality((uint256,bytes32))\":{\"params\":{\"finality\":\"- the parent finality\"},\"returns\":{\"hasCommittedBefore\":\"A flag that indicates if a finality record has been committed before.\",\"previousFinality\":\"The previous finality information.\"}},\"storeValidatorChanges(((uint8,bytes,address),uint64)[])\":{\"params\":{\"changeRequests\":\"- the validator changes\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"applyFinalityChanges()\":{\"notice\":\"Apply all changes committed through the commitment of parent finality.\"},\"commitParentFinality((uint256,bytes32))\":{\"notice\":\"commit the ipc parent finality into storage and returns the previous committed finality This is useful to understand if the finalities are consistent or if there have been reorgs. If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash.\"},\"storeValidatorChanges(((uint8,bytes,address),uint64)[])\":{\"notice\":\"Store the validator change requests from parent.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/router/TopDownFinalityFacet.sol\":\"TopDownFinalityFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/router/TopDownFinalityFacet.sol\":{\"keccak256\":\"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e\",\"dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressShouldBeValidator"},{"inputs":[],"type":"error","name":"CannotConfirmFutureChanges"},{"inputs":[],"type":"error","name":"InvalidConfigurationNumber"},{"inputs":[],"type":"error","name":"NotSystemActor"},{"inputs":[],"type":"error","name":"OldConfigurationNumber"},{"inputs":[],"type":"error","name":"PQDoesNotContainAddress"},{"inputs":[],"type":"error","name":"PQEmpty"},{"inputs":[],"type":"error","name":"ParentFinalityAlreadyCommitted"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"applyFinalityChanges","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"struct ParentFinality","name":"finality","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}],"stateMutability":"nonpayable","type":"function","name":"commitParentFinality","outputs":[{"internalType":"bool","name":"hasCommittedBefore","type":"bool"},{"internalType":"struct ParentFinality","name":"previousFinality","type":"tuple","components":[{"internalType":"uint256","name":"height","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]}]},{"inputs":[{"internalType":"struct StakingChangeRequest[]","name":"changeRequests","type":"tuple[]","components":[{"internalType":"struct StakingChange","name":"change","type":"tuple","components":[{"internalType":"enum StakingOperation","name":"op","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"address","name":"validator","type":"address"}]},{"internalType":"uint64","name":"configurationNumber","type":"uint64"}]}],"stateMutability":"nonpayable","type":"function","name":"storeValidatorChanges"}],"devdoc":{"kind":"dev","methods":{"applyFinalityChanges()":{"returns":{"_0":"configurationNumber The configuration number of the changes set that has been confirmed."}},"commitParentFinality((uint256,bytes32))":{"params":{"finality":"- the parent finality"},"returns":{"hasCommittedBefore":"A flag that indicates if a finality record has been committed before.","previousFinality":"The previous finality information."}},"storeValidatorChanges(((uint8,bytes,address),uint64)[])":{"params":{"changeRequests":"- the validator changes"}}},"version":1},"userdoc":{"kind":"user","methods":{"applyFinalityChanges()":{"notice":"Apply all changes committed through the commitment of parent finality."},"commitParentFinality((uint256,bytes32))":{"notice":"commit the ipc parent finality into storage and returns the previous committed finality This is useful to understand if the finalities are consistent or if there have been reorgs. If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash."},"storeValidatorChanges(((uint8,bytes,address),uint64)[])":{"notice":"Store the validator change requests from parent."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/router/TopDownFinalityFacet.sol":"TopDownFinalityFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/router/TopDownFinalityFacet.sol":{"keccak256":"0x53d5811be58036f1dedf181c7a13c5ef60acbb2d4587fe7325630481f3f888a7","urls":["bzz-raw://8e8aa13ed4d5ed1910e89ac28e6980735ecde3f6350092b9903bc8aaff919c0e","dweb:/ipfs/QmPEp1uqppaJJYpKZ2GG8BUHz7kYQsduf6Rx94qdoxnejm"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/router/TopDownFinalityFacet.sol","id":40072,"exportedSymbols":{"FilAddress":[1428],"GatewayActorModifiers":[43137],"LibGateway":[42944],"LibValidatorSet":[45293],"LibValidatorTracking":[46440],"Membership":[50218],"ParentFinality":[49918],"ParentValidatorsTracker":[50197],"StakingChangeRequest":[50110],"TopDownFinalityFacet":[40071],"Validator":[50211],"ValidatorInfo":[50161],"ValidatorSet":[50190]},"nodeType":"SourceUnit","src":"46:3576:51","nodes":[{"id":39872,"nodeType":"PragmaDirective","src":"46:23:51","nodes":[],"literals":["solidity","0.8",".19"]},{"id":39874,"nodeType":"ImportDirective","src":"71:75:51","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":39873,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43137,"src":"79:21:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39876,"nodeType":"ImportDirective","src":"147:58:51","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":39875,"name":"ParentFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49918,"src":"155:14:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39881,"nodeType":"ImportDirective","src":"206:100:51","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":39877,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"214:9:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39878,"name":"ValidatorInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50161,"src":"225:13:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39879,"name":"StakingChangeRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50110,"src":"240:20:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39880,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"262:10:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39883,"nodeType":"ImportDirective","src":"307:52:51","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":39882,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"315:10:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39885,"nodeType":"ImportDirective","src":"361:56:51","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":39884,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"369:10:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39888,"nodeType":"ImportDirective","src":"419:79:51","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":39886,"name":"ParentValidatorsTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50197,"src":"427:23:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39887,"name":"ValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50190,"src":"452:12:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":39891,"nodeType":"ImportDirective","src":"499:79:51","nodes":[],"absolutePath":"src/lib/LibStaking.sol","file":"../../lib/LibStaking.sol","nameLocation":"-1:-1:-1","scope":40072,"sourceUnit":46441,"symbolAliases":[{"foreign":{"id":39889,"name":"LibValidatorTracking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46440,"src":"507:20:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":39890,"name":"LibValidatorSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45293,"src":"529:15:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40071,"nodeType":"ContractDefinition","src":"580:3041:51","nodes":[{"id":39896,"nodeType":"UsingForDirective","src":"641:29:51","nodes":[],"global":false,"libraryName":{"id":39894,"name":"FilAddress","nameLocations":["647:10:51"],"nodeType":"IdentifierPath","referencedDeclaration":1428,"src":"647:10:51"},"typeName":{"id":39895,"name":"address","nodeType":"ElementaryTypeName","src":"662:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":39900,"nodeType":"UsingForDirective","src":"675:55:51","nodes":[],"global":false,"libraryName":{"id":39897,"name":"LibValidatorTracking","nameLocations":["681:20:51"],"nodeType":"IdentifierPath","referencedDeclaration":46440,"src":"681:20:51"},"typeName":{"id":39899,"nodeType":"UserDefinedTypeName","pathNode":{"id":39898,"name":"ParentValidatorsTracker","nameLocations":["706:23:51"],"nodeType":"IdentifierPath","referencedDeclaration":50197,"src":"706:23:51"},"referencedDeclaration":50197,"src":"706:23:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage_ptr","typeString":"struct ParentValidatorsTracker"}}},{"id":39904,"nodeType":"UsingForDirective","src":"735:39:51","nodes":[],"global":false,"libraryName":{"id":39901,"name":"LibValidatorSet","nameLocations":["741:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":45293,"src":"741:15:51"},"typeName":{"id":39903,"nodeType":"UserDefinedTypeName","pathNode":{"id":39902,"name":"ValidatorSet","nameLocations":["761:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":50190,"src":"761:12:51"},"referencedDeclaration":50190,"src":"761:12:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage_ptr","typeString":"struct ValidatorSet"}}},{"id":39933,"nodeType":"FunctionDefinition","src":"1325:313:51","nodes":[],"body":{"id":39932,"nodeType":"Block","src":"1502:136:51","nodes":[],"statements":[{"expression":{"id":39923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39918,"name":"previousFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39916,"src":"1512:16:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":39921,"name":"finality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39908,"src":"1563:8:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality calldata"}],"expression":{"id":39919,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"1531:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":39920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1542:20:51","memberName":"commitParentFinality","nodeType":"MemberAccess","referencedDeclaration":42104,"src":"1531:31:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentFinality_$49918_calldata_ptr_$returns$_t_struct$_ParentFinality_$49918_memory_ptr_$","typeString":"function (struct ParentFinality calldata) returns (struct ParentFinality memory)"}},"id":39922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:41:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"src":"1512:60:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"id":39924,"nodeType":"ExpressionStatement","src":"1512:60:51"},{"expression":{"id":39930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":39925,"name":"hasCommittedBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39913,"src":"1582:18:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":39929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":39926,"name":"previousFinality","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39916,"src":"1603:16:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality memory"}},"id":39927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1620:6:51","memberName":"height","nodeType":"MemberAccess","referencedDeclaration":49915,"src":"1603:23:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":39928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1630:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1603:28:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1582:49:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39931,"nodeType":"ExpressionStatement","src":"1582:49:51"}]},"documentation":{"id":39905,"nodeType":"StructuredDocumentation","src":"780:540:51","text":"@notice commit the ipc parent finality into storage and returns the previous committed finality\n This is useful to understand if the finalities are consistent or if there have been reorgs.\n If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash.\n @param finality - the parent finality\n @return hasCommittedBefore A flag that indicates if a finality record has been committed before.\n @return previousFinality The previous finality information."},"functionSelector":"11196974","implemented":true,"kind":"function","modifiers":[{"id":39911,"kind":"modifierInvocation","modifierName":{"id":39910,"name":"systemActorOnly","nameLocations":["1412:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"1412:15:51"},"nodeType":"ModifierInvocation","src":"1412:15:51"}],"name":"commitParentFinality","nameLocation":"1334:20:51","parameters":{"id":39909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39908,"mutability":"mutable","name":"finality","nameLocation":"1388:8:51","nodeType":"VariableDeclaration","scope":39933,"src":"1364:32:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_calldata_ptr","typeString":"struct ParentFinality"},"typeName":{"id":39907,"nodeType":"UserDefinedTypeName","pathNode":{"id":39906,"name":"ParentFinality","nameLocations":["1364:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"1364:14:51"},"referencedDeclaration":49918,"src":"1364:14:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"1354:48:51"},"returnParameters":{"id":39917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39913,"mutability":"mutable","name":"hasCommittedBefore","nameLocation":"1442:18:51","nodeType":"VariableDeclaration","scope":39933,"src":"1437:23:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39912,"name":"bool","nodeType":"ElementaryTypeName","src":"1437:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39916,"mutability":"mutable","name":"previousFinality","nameLocation":"1484:16:51","nodeType":"VariableDeclaration","scope":39933,"src":"1462:38:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_memory_ptr","typeString":"struct ParentFinality"},"typeName":{"id":39915,"nodeType":"UserDefinedTypeName","pathNode":{"id":39914,"name":"ParentFinality","nameLocations":["1462:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":49918,"src":"1462:14:51"},"referencedDeclaration":49918,"src":"1462:14:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentFinality_$49918_storage_ptr","typeString":"struct ParentFinality"}},"visibility":"internal"}],"src":"1436:65:51"},"scope":40071,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":39952,"nodeType":"FunctionDefinition","src":"1763:173:51","nodes":[],"body":{"id":39951,"nodeType":"Block","src":"1867:69:51","nodes":[],"statements":[{"expression":{"arguments":[{"id":39948,"name":"changeRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39938,"src":"1914:14:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest calldata[] calldata"}],"expression":{"expression":{"id":39943,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"1877:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1879:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"1877:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1897:16:51","memberName":"batchStoreChange","nodeType":"MemberAccess","referencedDeclaration":46261,"src":"1877:36:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$_t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr_$returns$__$attached_to$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$","typeString":"function (struct ParentValidatorsTracker storage pointer,struct StakingChangeRequest calldata[] calldata)"}},"id":39949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1877:52:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39950,"nodeType":"ExpressionStatement","src":"1877:52:51"}]},"documentation":{"id":39934,"nodeType":"StructuredDocumentation","src":"1644:114:51","text":"@notice Store the validator change requests from parent.\n @param changeRequests - the validator changes"},"functionSelector":"e49a547d","implemented":true,"kind":"function","modifiers":[{"id":39941,"kind":"modifierInvocation","modifierName":{"id":39940,"name":"systemActorOnly","nameLocations":["1851:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"1851:15:51"},"nodeType":"ModifierInvocation","src":"1851:15:51"}],"name":"storeValidatorChanges","nameLocation":"1772:21:51","parameters":{"id":39939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39938,"mutability":"mutable","name":"changeRequests","nameLocation":"1826:14:51","nodeType":"VariableDeclaration","scope":39952,"src":"1794:46:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_calldata_ptr_$dyn_calldata_ptr","typeString":"struct StakingChangeRequest[]"},"typeName":{"baseType":{"id":39936,"nodeType":"UserDefinedTypeName","pathNode":{"id":39935,"name":"StakingChangeRequest","nameLocations":["1794:20:51"],"nodeType":"IdentifierPath","referencedDeclaration":50110,"src":"1794:20:51"},"referencedDeclaration":50110,"src":"1794:20:51","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeRequest_$50110_storage_ptr","typeString":"struct StakingChangeRequest"}},"id":39937,"nodeType":"ArrayTypeName","src":"1794:22:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakingChangeRequest_$50110_storage_$dyn_storage_ptr","typeString":"struct StakingChangeRequest[]"}},"visibility":"internal"}],"src":"1793:48:51"},"returnParameters":{"id":39942,"nodeType":"ParameterList","parameters":[],"src":"1867:0:51"},"scope":40071,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40070,"nodeType":"FunctionDefinition","src":"2134:1485:51","nodes":[],"body":{"id":40069,"nodeType":"Block","src":"2208:1411:51","nodes":[],"statements":[{"assignments":[39961],"declarations":[{"constant":false,"id":39961,"mutability":"mutable","name":"configurationNumber","nameLocation":"2291:19:51","nodeType":"VariableDeclaration","scope":40069,"src":"2284:26:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":39960,"name":"uint64","nodeType":"ElementaryTypeName","src":"2284:6:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":39968,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":39967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"expression":{"id":39962,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2313:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2315:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"2313:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2333:7:51","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"2313:27:51","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":39965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2341:23:51","memberName":"nextConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50113,"src":"2313:51:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":39966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2367:1:51","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2313:55:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"2284:84:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":39977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":39971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":39969,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39961,"src":"2566:19:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":39970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2588:1:51","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2566:23:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":39972,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2565:25:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"expression":{"id":39973,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2594:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2596:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"2594:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2614:7:51","memberName":"changes","nodeType":"MemberAccess","referencedDeclaration":50196,"src":"2594:27:51","typeDescriptions":{"typeIdentifier":"t_struct$_StakingChangeLog_$50123_storage","typeString":"struct StakingChangeLog storage ref"}},"id":39976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2622:24:51","memberName":"startConfigurationNumber","nodeType":"MemberAccess","referencedDeclaration":50116,"src":"2594:52:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2565:81:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":39981,"nodeType":"IfStatement","src":"2475:264:51","trueBody":{"id":39980,"nodeType":"Block","src":"2657:82:51","statements":[{"expression":{"hexValue":"30","id":39978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2727:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":39959,"id":39979,"nodeType":"Return","src":"2720:8:51"}]}},{"expression":{"arguments":[{"id":39987,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39961,"src":"2812:19:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":39982,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2778:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2780:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"2778:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2798:13:51","memberName":"confirmChange","nodeType":"MemberAccess","referencedDeclaration":46439,"src":"2778:33:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_ParentValidatorsTracker_$50197_storage_ptr_$","typeString":"function (struct ParentValidatorsTracker storage pointer,uint64)"}},"id":39988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2778:54:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39989,"nodeType":"ExpressionStatement","src":"2778:54:51"},{"assignments":[39994],"declarations":[{"constant":false,"id":39994,"mutability":"mutable","name":"validators","nameLocation":"2897:10:51","nodeType":"VariableDeclaration","scope":40069,"src":"2880:27:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":39992,"name":"address","nodeType":"ElementaryTypeName","src":"2880:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":39993,"nodeType":"ArrayTypeName","src":"2880:9:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":40000,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"expression":{"id":39995,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"2910:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":39996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2912:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"2910:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":39997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2930:10:51","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"2910:30:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":39998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2941:20:51","memberName":"listActiveValidators","nodeType":"MemberAccess","referencedDeclaration":44489,"src":"2910:51:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidatorSet_$50190_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_ValidatorSet_$50190_storage_ptr_$","typeString":"function (struct ValidatorSet storage pointer) view returns (address[] memory)"}},"id":39999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2910:53:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2880:83:51"},{"assignments":[40002],"declarations":[{"constant":false,"id":40002,"mutability":"mutable","name":"vLength","nameLocation":"2981:7:51","nodeType":"VariableDeclaration","scope":40069,"src":"2973:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40001,"name":"uint256","nodeType":"ElementaryTypeName","src":"2973:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40005,"initialValue":{"expression":{"id":40003,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39994,"src":"2991:10:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":40004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3002:6:51","memberName":"length","nodeType":"MemberAccess","src":"2991:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2973:35:51"},{"assignments":[40010],"declarations":[{"constant":false,"id":40010,"mutability":"mutable","name":"vs","nameLocation":"3037:2:51","nodeType":"VariableDeclaration","scope":40069,"src":"3018:21:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator[]"},"typeName":{"baseType":{"id":40008,"nodeType":"UserDefinedTypeName","pathNode":{"id":40007,"name":"Validator","nameLocations":["3018:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"3018:9:51"},"referencedDeclaration":50211,"src":"3018:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":40009,"nodeType":"ArrayTypeName","src":"3018:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}},"visibility":"internal"}],"id":40017,"initialValue":{"arguments":[{"id":40015,"name":"vLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40002,"src":"3058:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":40014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3042:15:51","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Validator memory[] memory)"},"typeName":{"baseType":{"id":40012,"nodeType":"UserDefinedTypeName","pathNode":{"id":40011,"name":"Validator","nameLocations":["3046:9:51"],"nodeType":"IdentifierPath","referencedDeclaration":50211,"src":"3046:9:51"},"referencedDeclaration":50211,"src":"3046:9:51","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_storage_ptr","typeString":"struct Validator"}},"id":40013,"nodeType":"ArrayTypeName","src":"3046:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_storage_$dyn_storage_ptr","typeString":"struct Validator[]"}}},"id":40016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3042:24:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3018:48:51"},{"body":{"id":40056,"nodeType":"Block","src":"3107:306:51","statements":[{"assignments":[40025],"declarations":[{"constant":false,"id":40025,"mutability":"mutable","name":"addr","nameLocation":"3129:4:51","nodeType":"VariableDeclaration","scope":40056,"src":"3121:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40024,"name":"address","nodeType":"ElementaryTypeName","src":"3121:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":40029,"initialValue":{"baseExpression":{"id":40026,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39994,"src":"3136:10:51","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":40028,"indexExpression":{"id":40027,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40019,"src":"3147:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3136:13:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3121:28:51"},{"assignments":[40032],"declarations":[{"constant":false,"id":40032,"mutability":"mutable","name":"info","nameLocation":"3185:4:51","nodeType":"VariableDeclaration","scope":40056,"src":"3163:26:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage_ptr","typeString":"struct ValidatorInfo"},"typeName":{"id":40031,"nodeType":"UserDefinedTypeName","pathNode":{"id":40030,"name":"ValidatorInfo","nameLocations":["3163:13:51"],"nodeType":"IdentifierPath","referencedDeclaration":50161,"src":"3163:13:51"},"referencedDeclaration":50161,"src":"3163:13:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage_ptr","typeString":"struct ValidatorInfo"}},"visibility":"internal"}],"id":40039,"initialValue":{"baseExpression":{"expression":{"expression":{"expression":{"id":40033,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"3192:1:51","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":40034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3194:17:51","memberName":"validatorsTracker","nodeType":"MemberAccess","referencedDeclaration":43052,"src":"3192:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_ParentValidatorsTracker_$50197_storage","typeString":"struct ParentValidatorsTracker storage ref"}},"id":40035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3212:10:51","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50193,"src":"3192:30:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorSet_$50190_storage","typeString":"struct ValidatorSet storage ref"}},"id":40036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3223:10:51","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":50181,"src":"3192:41:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_ValidatorInfo_$50161_storage_$","typeString":"mapping(address => struct ValidatorInfo storage ref)"}},"id":40038,"indexExpression":{"id":40037,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40025,"src":"3234:4:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3192:47:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage","typeString":"struct ValidatorInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3163:76:51"},{"expression":{"id":40050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":40040,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40010,"src":"3253:2:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}},"id":40042,"indexExpression":{"id":40041,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40019,"src":"3256:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3253:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":40044,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40032,"src":"3280:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage_ptr","typeString":"struct ValidatorInfo storage pointer"}},"id":40045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3285:19:51","memberName":"confirmedCollateral","nodeType":"MemberAccess","referencedDeclaration":50155,"src":"3280:24:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":40046,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40025,"src":"3312:4:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":40047,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40032,"src":"3328:4:51","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorInfo_$50161_storage_ptr","typeString":"struct ValidatorInfo storage pointer"}},"id":40048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3333:8:51","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":50160,"src":"3328:13:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}],"id":40043,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50211,"src":"3261:9:51","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Validator_$50211_storage_ptr_$","typeString":"type(struct Validator storage pointer)"}},"id":40049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3272:6:51","3306:4:51","3318:8:51"],"names":["weight","addr","metadata"],"nodeType":"FunctionCall","src":"3261:82:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"src":"3253:90:51","typeDescriptions":{"typeIdentifier":"t_struct$_Validator_$50211_memory_ptr","typeString":"struct Validator memory"}},"id":40051,"nodeType":"ExpressionStatement","src":"3253:90:51"},{"id":40055,"nodeType":"UncheckedBlock","src":"3357:46:51","statements":[{"expression":{"id":40053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3385:3:51","subExpression":{"id":40052,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40019,"src":"3387:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40054,"nodeType":"ExpressionStatement","src":"3385:3:51"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":40021,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40019,"src":"3092:1:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":40022,"name":"vLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40002,"src":"3096:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3092:11:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":40057,"initializationExpression":{"assignments":[40019],"declarations":[{"constant":false,"id":40019,"mutability":"mutable","name":"i","nameLocation":"3089:1:51","nodeType":"VariableDeclaration","scope":40057,"src":"3081:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40018,"name":"uint256","nodeType":"ElementaryTypeName","src":"3081:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":40020,"nodeType":"VariableDeclarationStatement","src":"3081:9:51"},"nodeType":"ForStatement","src":"3076:337:51"},{"expression":{"arguments":[{"arguments":[{"id":40062,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39961,"src":"3538:19:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":40063,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40010,"src":"3571:2:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_array$_t_struct$_Validator_$50211_memory_ptr_$dyn_memory_ptr","typeString":"struct Validator memory[] memory"}],"id":40061,"name":"Membership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50218,"src":"3505:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Membership_$50218_storage_ptr_$","typeString":"type(struct Membership storage pointer)"}},"id":40064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3517:19:51","3559:10:51"],"names":["configurationNumber","validators"],"nodeType":"FunctionCall","src":"3505:70:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Membership_$50218_memory_ptr","typeString":"struct Membership memory"}],"expression":{"id":40058,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"3477:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":40060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3488:16:51","memberName":"updateMembership","nodeType":"MemberAccess","referencedDeclaration":42258,"src":"3477:27:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Membership_$50218_memory_ptr_$returns$__$","typeString":"function (struct Membership memory)"}},"id":40065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3477:99:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40066,"nodeType":"ExpressionStatement","src":"3477:99:51"},{"expression":{"id":40067,"name":"configurationNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39961,"src":"3593:19:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":39959,"id":40068,"nodeType":"Return","src":"3586:26:51"}]},"documentation":{"id":39953,"nodeType":"StructuredDocumentation","src":"1942:187:51","text":"@notice Apply all changes committed through the commitment of parent finality.\n @return configurationNumber The configuration number of the changes set that has been confirmed."},"functionSelector":"0df14461","implemented":true,"kind":"function","modifiers":[{"id":39956,"kind":"modifierInvocation","modifierName":{"id":39955,"name":"systemActorOnly","nameLocations":["2175:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"2175:15:51"},"nodeType":"ModifierInvocation","src":"2175:15:51"}],"name":"applyFinalityChanges","nameLocation":"2143:20:51","parameters":{"id":39954,"nodeType":"ParameterList","parameters":[],"src":"2163:2:51"},"returnParameters":{"id":39959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40070,"src":"2200:6:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":39957,"name":"uint64","nodeType":"ElementaryTypeName","src":"2200:6:51","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"2199:8:51"},"scope":40071,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":39892,"name":"GatewayActorModifiers","nameLocations":["613:21:51"],"nodeType":"IdentifierPath","referencedDeclaration":43137,"src":"613:21:51"},"id":39893,"nodeType":"InheritanceSpecifier","src":"613:21:51"}],"canonicalName":"TopDownFinalityFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[40071,43137],"name":"TopDownFinalityFacet","nameLocation":"589:20:51","scope":40072,"usedErrors":[37368,37372,37418,37486,37492,37494,37496,37498]}],"license":"MIT OR Apache-2.0"},"id":51} \ No newline at end of file diff --git a/.out/XnetMessagingFacet.sol/XnetMessagingFacet.json b/.out/XnetMessagingFacet.sol/XnetMessagingFacet.json new file mode 100644 index 000000000..917d54c29 --- /dev/null +++ b/.out/XnetMessagingFacet.sol/XnetMessagingFacet.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"applyCrossMessages","inputs":[{"name":"crossMsgs","type":"tuple[]","internalType":"struct CrossMsg[]","components":[{"name":"message","type":"tuple","internalType":"struct StorableMsg","components":[{"name":"from","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"to","type":"tuple","internalType":"struct IPCAddress","components":[{"name":"subnetId","type":"tuple","internalType":"struct SubnetID","components":[{"name":"root","type":"uint64","internalType":"uint64"},{"name":"route","type":"address[]","internalType":"address[]"}]},{"name":"rawAddress","type":"tuple","internalType":"struct FvmAddress","components":[{"name":"addrType","type":"uint8","internalType":"uint8"},{"name":"payload","type":"bytes","internalType":"bytes"}]}]},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"method","type":"bytes4","internalType":"bytes4"},{"name":"params","type":"bytes","internalType":"bytes"},{"name":"fee","type":"uint256","internalType":"uint256"}]},{"name":"wrapped","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"InvalidCrossMsgDstSubnet","inputs":[]},{"type":"error","name":"InvalidCrossMsgNonce","inputs":[]},{"type":"error","name":"NotRegisteredSubnet","inputs":[]},{"type":"error","name":"NotSystemActor","inputs":[]}],"bytecode":{"object":"0x608080604052346100165761163d908161001c8239f35b600080fdfe608060409080825260048036101561001657600080fd5b60009260e08435811c63c62eb4d51461002e57600080fd5b346104655760209182600319360112610461578335916001600160401b039586841161045d573660238501121561045d578386013593878511610459576024926005948487871b8401019336851161045557635d3f8a6960e01b8152338a8201528881878173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af49081156103ef578c91610428575b5015610419578051996100ca8b610469565b80601954168b5281518c8180928c601a54918281520190601a84528d7f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e94905b8282106103f9575050506101209250038261049a565b898c01528b898b61014785519e8f9384936308c7427760e11b85528401528a830190610566565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49a8b156103ef578c9b610323575b5061017888610536565b976101858351998a61049a565b8852858401938989015b8686106101e25750505050505050825194875b8681106101ad578880f35b84518110156101d057806101ca87600193871b880101518a61094e565b016101a2565b50634e487b7160e01b88526032905286fd5b853583811161031f57820190602319858184360301126102f35785519261020884610469565b8a8101358681116103195788908201928336030112610314578651888101818110888211176102fe5788528b8301358781116102f75761024d908d3691860101610637565b815260448301358781116102f7578f9061026c908e3691870101610637565b90820152606483013588820152610285608484016105c1565b606082015260a48301356001600160e01b0319811681036102f757608082015260c48301358781116102f7576044936102c560e4928f36918401016105f0565b60a0840152013560c0820152845201359081151582036102f357828d9392848094015281520195019461018f565b8f80fd5b5050508f80fd5b50505050888f60418f634e487b7160e01b835252fd5b508f80fd5b50508f80fd5b8e80fd5b909a503d808d833e610335818361049a565b81019089818303126103eb578051908c82116103e757019082828203126103eb5782519161036283610469565b80518d8116810361031f5783528a810151908d821161031f57019080601f830112156103e757815161039381610536565b926103a08651948561049a565b8184528c808501928c1b8201019283116102f3578c809101915b8383106103cf5750915050820152993861016e565b81906103da8461054d565b8152019101908c906103ba565b8d80fd5b8c80fd5b82513d8e823e3d90fd5b85546001600160a01b03168452600195860195879550930192018e61010a565b5163f0d97f3b60e01b81528890fd5b6104489150893d8b1161044e575b610440818361049a565b810190610751565b386100b8565b503d610436565b8b80fd5b8880fd5b8780fd5b8580fd5b8480fd5b604081019081106001600160401b0382111761048457604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761048457604052565b906040516104c881610469565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061051757505050506105139250038461049a565b0152565b83546001600160a01b03168552899550909301929181019181016104fb565b6001600160401b0381116104845760051b60200190565b51906001600160a01b038216820361056157565b600080fd5b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106105a4575050505090565b83516001600160a01b031685529381019392810192600101610596565b35906001600160401b038216820361056157565b6001600160401b03811161048457601f01601f191660200190565b81601f8201121561056157803590610607826105d5565b92610615604051948561049a565b8284526020838301011161056157816000926020809301838601378301015290565b9190604092838183031261056157835161065081610469565b80948235936001600160401b039485811161056157840193828583031261056157825161067c81610469565b610685866105c1565b81526020958681013590888211610561570183601f82011215610561578035906106ae82610536565b916106bb8751938461049a565b808352888084019160051b83010191868311610561578901905b828210610732575050508682015284528481013590868211610561570191808383031261056157519461070786610469565b823560ff81168103610561578652848301359081116105615761072a92016105f0565b828401520152565b81356001600160a01b03811681036105615781529089019089016106d5565b90816020910312610561575180151581036105615790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8282106107c8575050505090565b83546001600160a01b0316855293840193600193840193909101906107ba565b8181106107f3575050565b600081556001016107e8565b60005b8381106108125750506000910152565b8181015183820152602001610802565b9060209161083b815180928185528580860191016107ff565b601f01601f1916010190565b604060206108839381610861855185845285840190610566565b940151908281860391015260ff81511684520151918160208201520190610822565b90565b9060c0806108f76108b56108a3865160e0875260e0870190610847565b60208701518682036020880152610847565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152610822565b93015191015290565b6002111561090a57565b634e487b7160e01b600052602160045260246000fd5b9060016001600160401b038093160191821161093857565b634e487b7160e01b600052601160045260246000fd5b6020825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__9160405160208180610991630c133d1360e31b968783528460048401526024830190610566565b0381875af4908115610ce65760009161155b575b5061154957602084510151516109d36040519163c836244d60e01b8352604060048401526044830190610566565b90602081806109ee6003199586838203016024840152610769565b0381885af4908115610ce65760009161152a575b5015610ee3576040516000610a1682610469565b8082526020820152906020610a4c8751610a5b604051948593849363f47ad7eb60e01b8552604060048601526044850190610886565b90838203016024840152610769565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4908115610ce657600091610ea8575b50610a8d81610900565b60018103610e0d5750506020610abe91604051809381926390ba52cf60e01b83528460048401526024830190610566565b0381865af4908115610ce657600091610ddb575b5060005260006020526040600020610b0e60206004830193610af3856104bb565b90604051938492839283528460048401526024830190610566565b0381875af4908115610ce657600091610dbc575b50610daa57600301918254916001600160401b0390818460401c1691606087510151168203610d9857610ba89460209467ffffffffffffffff60401b610b6a610b8595610920565b60401b169067ffffffffffffffff60401b19161790556104bb565b906040518080958194632cff562160e11b83528660048401526024830190610566565b03915af4908115610ce657600091610d59575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa908115610ce657600091610cf2575b506000905b604051809381926373b464b760e01b8352606060048401526020610c2183516040606487015260a4860190610886565b920151151560848401528051610c3681610900565b6024840152602001516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af48015610ce657610c735750565b3d806000833e610c83818361049a565b810190602081830312610561578051906001600160401b038211610561570181601f8201121561056157805190610cb9826105d5565b92610cc7604051948561049a565b8284526020838301011161056157602080610ce4940191016107ff565b565b6040513d6000823e3d90fd5b6040813d604011610d51575b81610d0b6040938361049a565b81010312610d4d5760405191610d2083610469565b8151906002821015610d4a575060208392610d3f92600095520161054d565b602082015290610bec565b80fd5b5080fd5b3d9150610cfe565b906020823d602011610d90575b81610d736020938361049a565b81010312610d4a57506040610d8960049261054d565b9150610bbb565b3d9150610d66565b60405163a57cadff60e01b8152600490fd5b604051630e991abd60e41b8152600490fd5b610dd5915060203d60201161044e57610440818361049a565b38610b22565b906020823d602011610e05575b81610df56020938361049a565b81010312610d4a57505138610ad2565b3d9150610de8565b9250925050610e1b81610900565b15610e29575b600090610bf1565b50601c546001600160401b03808260481c1690606084510151168103610d9857610e5e67ffffffffffffffff60481b91610920565b60481b169067ffffffffffffffff60481b191617601c5560006020604051610e8581610469565b82815201526000604051610e9881610469565b8181528160208201529050610e21565b6020813d602011610edb575b81610ec16020938361049a565b81010312610d4d5751906002821015610d4a575038610a83565b3d9150610eb4565b5050505060405190602082016020815281519260408082015260c0610f7c610f18865160e0608086015261016085019061157a565b610f34602088015191607f1992838783030160a088015261157a565b60408801518585015260608801516001600160401b031660e086015260808801516001600160e01b03191661010086015260a088015185820390920161012086015290610822565b940151610140820152610fa581602085019586511515606083015203601f19810183528261049a565b519020600052600360205260406000209051805180516001600160401b038151166001600160401b0319855416178455602060018501910151908151916001600160401b03831161048457600160401b831161048457602090825484845580851061150d575b500190600052602060002060005b8381106114f0575050505060208091015160ff815116600285019060ff1982541617905501518051906001600160401b03821161048457600384015490600182811c921680156114e6575b602083101461132d5781601f8493116114b1575b50602090601f831160011461143f57600092611434575b50508160011b916000199060031b1c19161760038301555b600482016020820151908151906001600160401b038251166001600160401b0319825416179055602060058501910151908151916001600160401b03831161048457600160401b8311610484576020908254848455808510611417575b500190600052602060002060005b8381106113fa57505050506020600684019101519060ff82511660ff198254161790556020600784019101518051906001600160401b03821161048457825490600182811c921680156113f0575b602083101461132d5781601f8493116113be575b50602090601f83116001146113585760009261134d575b50508160011b916000199060031b1c19161790555b60408101516008830155600982016001600160401b036060830151168154906bffffffff0000000000000000608085015160a01c16916bffffffffffffffffffffffff191617179055600a820160a08201518051906001600160401b038211610484578254600181811c91168015611343575b602082101461132d57601f81116112f0575b50602090601f831160011461128157918060c09492600c979694600092611276575b50508160011b916000199060031b1c19161790555b0151600b820155019051151560ff80198354169116179055565b015190503880611247565b90601f198316918460005260206000209260005b8181106112d85750926001928592600c99989660c09896106112bf575b505050811b01905561125c565b015160001960f88460031b161c191690553880806112b2565b92936020600181928786015181550195019301611295565b61131d90846000526020600020601f850160051c81019160208610611323575b601f0160051c01906107e8565b38611225565b9091508190611310565b634e487b7160e01b600052602260045260246000fd5b90607f1690611213565b01519050388061118b565b6000858152602081209350601f198516905b8181106113a6575090846001959493921061138d575b505050811b0190556111a0565b015160001960f88460031b161c19169055388080611380565b9293602060018192878601518155019501930161136a565b6113ea90856000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611174565b91607f1691611160565b82516001600160a01b031681830155602090920191600101611112565b61142e9084600052858460002091820191016107e8565b38611104565b01519050388061108f565b9250600385016000526020600020906000935b601f1984168510611496576001945083601f1981161061147d575b505050811b0160038301556110a7565b015160001960f88460031b161c1916905538808061146d565b81810151835560209485019460019093019290910190611452565b6114e090600387016000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611078565b91607f1691611064565b82516001600160a01b031681830155602090920191600101611019565b6115249084600052858460002091820191016107e8565b3861100b565b611543915060203d60201161044e57610440818361049a565b38610a02565b60405163c5f563eb60e01b8152600490fd5b611574915060203d60201161044e57610440818361049a565b386109a5565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b8181106115ea575050509360408381938161088397980151908281860391015260ff81511684520151938201520190610822565b82516001600160a01b0316885296850196918501916001016115b656fea264697066735822122005881028574a21639c3cb4d9d5bc2c20e70622999c6082a2414cc35ec07c6f2564736f6c63430008130033","sourceMap":"968:864:52:-:0;;;;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":177,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":3181,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":2683,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":359,"length":20},{"start":2419,"length":20}]}}},"deployedBytecode":{"object":"0x608060409080825260048036101561001657600080fd5b60009260e08435811c63c62eb4d51461002e57600080fd5b346104655760209182600319360112610461578335916001600160401b039586841161045d573660238501121561045d578386013593878511610459576024926005948487871b8401019336851161045557635d3f8a6960e01b8152338a8201528881878173__$e800e3908cdbb6b1b5bd452383a17b18f7$__5af49081156103ef578c91610428575b5015610419578051996100ca8b610469565b80601954168b5281518c8180928c601a54918281520190601a84528d7f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e94905b8282106103f9575050506101209250038261049a565b898c01528b898b61014785519e8f9384936308c7427760e11b85528401528a830190610566565b038173__$a0fe38a9a81205afccc10810b09a4d3f45$__5af49a8b156103ef578c9b610323575b5061017888610536565b976101858351998a61049a565b8852858401938989015b8686106101e25750505050505050825194875b8681106101ad578880f35b84518110156101d057806101ca87600193871b880101518a61094e565b016101a2565b50634e487b7160e01b88526032905286fd5b853583811161031f57820190602319858184360301126102f35785519261020884610469565b8a8101358681116103195788908201928336030112610314578651888101818110888211176102fe5788528b8301358781116102f75761024d908d3691860101610637565b815260448301358781116102f7578f9061026c908e3691870101610637565b90820152606483013588820152610285608484016105c1565b606082015260a48301356001600160e01b0319811681036102f757608082015260c48301358781116102f7576044936102c560e4928f36918401016105f0565b60a0840152013560c0820152845201359081151582036102f357828d9392848094015281520195019461018f565b8f80fd5b5050508f80fd5b50505050888f60418f634e487b7160e01b835252fd5b508f80fd5b50508f80fd5b8e80fd5b909a503d808d833e610335818361049a565b81019089818303126103eb578051908c82116103e757019082828203126103eb5782519161036283610469565b80518d8116810361031f5783528a810151908d821161031f57019080601f830112156103e757815161039381610536565b926103a08651948561049a565b8184528c808501928c1b8201019283116102f3578c809101915b8383106103cf5750915050820152993861016e565b81906103da8461054d565b8152019101908c906103ba565b8d80fd5b8c80fd5b82513d8e823e3d90fd5b85546001600160a01b03168452600195860195879550930192018e61010a565b5163f0d97f3b60e01b81528890fd5b6104489150893d8b1161044e575b610440818361049a565b810190610751565b386100b8565b503d610436565b8b80fd5b8880fd5b8780fd5b8580fd5b8480fd5b604081019081106001600160401b0382111761048457604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b0382111761048457604052565b906040516104c881610469565b80926001600160401b03815416825260018091019160405191828481955492838652602080960191600052856000209060005b8786821061051757505050506105139250038461049a565b0152565b83546001600160a01b03168552899550909301929181019181016104fb565b6001600160401b0381116104845760051b60200190565b51906001600160a01b038216820361056157565b600080fd5b60609060408301906001600160401b03815116845260209283809201519460408382015285518094520193019160005b8281106105a4575050505090565b83516001600160a01b031685529381019392810192600101610596565b35906001600160401b038216820361056157565b6001600160401b03811161048457601f01601f191660200190565b81601f8201121561056157803590610607826105d5565b92610615604051948561049a565b8284526020838301011161056157816000926020809301838601378301015290565b9190604092838183031261056157835161065081610469565b80948235936001600160401b039485811161056157840193828583031261056157825161067c81610469565b610685866105c1565b81526020958681013590888211610561570183601f82011215610561578035906106ae82610536565b916106bb8751938461049a565b808352888084019160051b83010191868311610561578901905b828210610732575050508682015284528481013590868211610561570191808383031261056157519461070786610469565b823560ff81168103610561578652848301359081116105615761072a92016105f0565b828401520152565b81356001600160a01b03811681036105615781529089019089016106d5565b90816020910312610561575180151581036105615790565b60408101906001600160401b036019541681526060602091604083820152601a548094520191601a6000527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e916000905b8282106107c8575050505090565b83546001600160a01b0316855293840193600193840193909101906107ba565b8181106107f3575050565b600081556001016107e8565b60005b8381106108125750506000910152565b8181015183820152602001610802565b9060209161083b815180928185528580860191016107ff565b601f01601f1916010190565b604060206108839381610861855185845285840190610566565b940151908281860391015260ff81511684520151918160208201520190610822565b90565b9060c0806108f76108b56108a3865160e0875260e0870190610847565b60208701518682036020880152610847565b604086015160408601526001600160401b03606087015116606086015263ffffffff60e01b608087015116608086015260a086015185820360a0870152610822565b93015191015290565b6002111561090a57565b634e487b7160e01b600052602160045260246000fd5b9060016001600160401b038093160191821161093857565b634e487b7160e01b600052601160045260246000fd5b6020825101515173__$a0fe38a9a81205afccc10810b09a4d3f45$__9160405160208180610991630c133d1360e31b968783528460048401526024830190610566565b0381875af4908115610ce65760009161155b575b5061154957602084510151516109d36040519163c836244d60e01b8352604060048401526044830190610566565b90602081806109ee6003199586838203016024840152610769565b0381885af4908115610ce65760009161152a575b5015610ee3576040516000610a1682610469565b8082526020820152906020610a4c8751610a5b604051948593849363f47ad7eb60e01b8552604060048601526044850190610886565b90838203016024840152610769565b038173__$386b5c41ce93e8b832daf8008b3d30ae09$__5af4908115610ce657600091610ea8575b50610a8d81610900565b60018103610e0d5750506020610abe91604051809381926390ba52cf60e01b83528460048401526024830190610566565b0381865af4908115610ce657600091610ddb575b5060005260006020526040600020610b0e60206004830193610af3856104bb565b90604051938492839283528460048401526024830190610566565b0381875af4908115610ce657600091610dbc575b50610daa57600301918254916001600160401b0390818460401c1691606087510151168203610d9857610ba89460209467ffffffffffffffff60401b610b6a610b8595610920565b60401b169067ffffffffffffffff60401b19161790556104bb565b906040518080958194632cff562160e11b83528660048401526024830190610566565b03915af4908115610ce657600091610d59575b50604080516380875df760e01b815291829060049082906001600160a01b03165afa908115610ce657600091610cf2575b506000905b604051809381926373b464b760e01b8352606060048401526020610c2183516040606487015260a4860190610886565b920151151560848401528051610c3681610900565b6024840152602001516001600160a01b03166044830152038173__$33b79814e84bf6cf5e47244090b19ce5f8$__5af48015610ce657610c735750565b3d806000833e610c83818361049a565b810190602081830312610561578051906001600160401b038211610561570181601f8201121561056157805190610cb9826105d5565b92610cc7604051948561049a565b8284526020838301011161056157602080610ce4940191016107ff565b565b6040513d6000823e3d90fd5b6040813d604011610d51575b81610d0b6040938361049a565b81010312610d4d5760405191610d2083610469565b8151906002821015610d4a575060208392610d3f92600095520161054d565b602082015290610bec565b80fd5b5080fd5b3d9150610cfe565b906020823d602011610d90575b81610d736020938361049a565b81010312610d4a57506040610d8960049261054d565b9150610bbb565b3d9150610d66565b60405163a57cadff60e01b8152600490fd5b604051630e991abd60e41b8152600490fd5b610dd5915060203d60201161044e57610440818361049a565b38610b22565b906020823d602011610e05575b81610df56020938361049a565b81010312610d4a57505138610ad2565b3d9150610de8565b9250925050610e1b81610900565b15610e29575b600090610bf1565b50601c546001600160401b03808260481c1690606084510151168103610d9857610e5e67ffffffffffffffff60481b91610920565b60481b169067ffffffffffffffff60481b191617601c5560006020604051610e8581610469565b82815201526000604051610e9881610469565b8181528160208201529050610e21565b6020813d602011610edb575b81610ec16020938361049a565b81010312610d4d5751906002821015610d4a575038610a83565b3d9150610eb4565b5050505060405190602082016020815281519260408082015260c0610f7c610f18865160e0608086015261016085019061157a565b610f34602088015191607f1992838783030160a088015261157a565b60408801518585015260608801516001600160401b031660e086015260808801516001600160e01b03191661010086015260a088015185820390920161012086015290610822565b940151610140820152610fa581602085019586511515606083015203601f19810183528261049a565b519020600052600360205260406000209051805180516001600160401b038151166001600160401b0319855416178455602060018501910151908151916001600160401b03831161048457600160401b831161048457602090825484845580851061150d575b500190600052602060002060005b8381106114f0575050505060208091015160ff815116600285019060ff1982541617905501518051906001600160401b03821161048457600384015490600182811c921680156114e6575b602083101461132d5781601f8493116114b1575b50602090601f831160011461143f57600092611434575b50508160011b916000199060031b1c19161760038301555b600482016020820151908151906001600160401b038251166001600160401b0319825416179055602060058501910151908151916001600160401b03831161048457600160401b8311610484576020908254848455808510611417575b500190600052602060002060005b8381106113fa57505050506020600684019101519060ff82511660ff198254161790556020600784019101518051906001600160401b03821161048457825490600182811c921680156113f0575b602083101461132d5781601f8493116113be575b50602090601f83116001146113585760009261134d575b50508160011b916000199060031b1c19161790555b60408101516008830155600982016001600160401b036060830151168154906bffffffff0000000000000000608085015160a01c16916bffffffffffffffffffffffff191617179055600a820160a08201518051906001600160401b038211610484578254600181811c91168015611343575b602082101461132d57601f81116112f0575b50602090601f831160011461128157918060c09492600c979694600092611276575b50508160011b916000199060031b1c19161790555b0151600b820155019051151560ff80198354169116179055565b015190503880611247565b90601f198316918460005260206000209260005b8181106112d85750926001928592600c99989660c09896106112bf575b505050811b01905561125c565b015160001960f88460031b161c191690553880806112b2565b92936020600181928786015181550195019301611295565b61131d90846000526020600020601f850160051c81019160208610611323575b601f0160051c01906107e8565b38611225565b9091508190611310565b634e487b7160e01b600052602260045260246000fd5b90607f1690611213565b01519050388061118b565b6000858152602081209350601f198516905b8181106113a6575090846001959493921061138d575b505050811b0190556111a0565b015160001960f88460031b161c19169055388080611380565b9293602060018192878601518155019501930161136a565b6113ea90856000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611174565b91607f1691611160565b82516001600160a01b031681830155602090920191600101611112565b61142e9084600052858460002091820191016107e8565b38611104565b01519050388061108f565b9250600385016000526020600020906000935b601f1984168510611496576001945083601f1981161061147d575b505050811b0160038301556110a7565b015160001960f88460031b161c1916905538808061146d565b81810151835560209485019460019093019290910190611452565b6114e090600387016000526020600020601f850160051c8101916020861061132357601f0160051c01906107e8565b38611078565b91607f1691611064565b82516001600160a01b031681830155602090920191600101611019565b6115249084600052858460002091820191016107e8565b3861100b565b611543915060203d60201161044e57610440818361049a565b38610a02565b60405163c5f563eb60e01b8152600490fd5b611574915060203d60201161044e57610440818361049a565b386109a5565b91908251906040815260808101936001600160401b038351166040830152602080930151946040606084015285518091528360a0840196019060005b8181106115ea575050509360408381938161088397980151908281860391015260ff81511684520151938201520190610822565b82516001600160a01b0316885296850196918501916001016115b656fea264697066735822122005881028574a21639c3cb4d9d5bc2c20e70622999c6082a2414cc35ec07c6f2564736f6c63430008130033","sourceMap":"968:864:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4486:26:64;;:10;:26;;;968:864:52;4486:24:64;:26;:24;:26;:24;:26;;;;;;;;;;;968:864:52;4485:27:64;;4481:81;;968:864:52;;;;;;:::i;:::-;;1780:13;968:864;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1780:31;;;;968:864;;;;;;:::i;:::-;1780:31;:29;;:31;;;;;;;;;;;968:864;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;14383:9:63;;14394:19;;;;;;968:864:52;;;14383:9:63;968:864:52;;;;;;;;14454:12:63;968:864:52;;;;;;;;14454:12:63;;;:::i;:::-;968:864:52;14383:9:63;;968:864:52;-1:-1:-1;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1780:31;;;;;;;;;;;;;:::i;:::-;;;968:864;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1780:31;;;;968:864;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1780:31;968:864;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;-1:-1:-1;968:864:52;;;;;;;4481:81:64;968:864:52;-1:-1:-1;;;4535:16:64;;968:864:52;;4535:16:64;4486:26;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;968:864:52;;-1:-1:-1;968:864:52;;-1:-1:-1;968:864:52;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;-1:-1:-1;968:864:52;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;:::o;:::-;-1:-1:-1;;;;;968:864:52;;;;;;-1:-1:-1;;968:864:52;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;968:864:52;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;;;;15328:13:63;968:864:52;;;;;;;;;;;;;;;;;;;;-1:-1:-1;968:864:52;;;-1:-1:-1;968:864:52;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;968:864:52;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;968:864:52;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;968:864:52;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;:::o;:::-;;;;;;;;;;;;14837:2300:63;15012:19;:16;;:19;;:28;:36;968:864:52;;;15012:19:63;968:864:52;;;;;;15012:38:63;;;;;;;;968:864:52;;;;;;:::i;:::-;15012:38:63;;;;;;;;;;3946:45:64;15012:38:63;;;14837:2300;15008:102;;;15012:19;15292:16;;:19;;:28;968:864:52;;;;;;;15292:50:63;;968:864:52;15012:38:63;15292:50;;968:864:52;;;;;;:::i;:::-;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;:::i;:::-;15292:50:63;;;;;;;;;;3946:45:64;15292:50:63;;;14837:2300;15291:51;;15287:172;;968:864:52;;3946:45:64;968:864:52;;;:::i;:::-;;;;15012:19:63;968:864:52;;;15678:16:63;15012:19;968:864:52;15678:16:63;;968:864:52;;;;;;;;;;;15678:41:63;;968:864:52;15012:38:63;15678:41;;968:864:52;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;15678:41:63;:26;;:41;;;;;;;3946:45:64;15678:41:63;;;14837:2300;968:864:52;;;;:::i;:::-;15746:19:63;15733:32;;15746:19;;968:864:52;;15012:19:63;968:864:52;;;;;;;;;;;13443:17:63;;;15012:38;13443:17;;968:864:52;;;;;;:::i;:::-;13443:17:63;;;;;;;;;;3946:45:64;13443:17:63;;;15729:1310;968:864:52;3946:45:64;968:864:52;3946:45:64;15012:19:63;968:864:52;;3946:45:64;968:864:52;;15012:19:63;:38;13480:9;;968:864:52;;;;:::i;:::-;;;;13480:19:63;;;;;;;;15012:38;13480:19;;968:864:52;;;;;;:::i;:::-;13480:19:63;;;;;;;;;;3946:45:64;13480:19:63;;;15729:1310;13479:20;15993:78;;968:864:52;16088:27:63;968:864:52;;;;-1:-1:-1;;;;;968:864:52;;;;;;16119:16:63;:22;:16;;:22;968:864:52;;16088:53:63;;16084:121;;968:864:52;16218:32:63;15012:19;16218:32;-1:-1:-1;;;16218:32:63;968:864:52;16218:32:63;;:::i;:::-;968:864:52;;;;-1:-1:-1;;;968:864:52;;;;;;:::i;:::-;;;;;;;;;;;;16453:20:63;;;15012:38;16453:20;;968:864:52;;;;;;:::i;:::-;16453:20:63;;;;;;;;;3946:45:64;16453:20:63;;;15729:1310;-1:-1:-1;968:864:52;;;-1:-1:-1;;;16430:59:63;;968:864:52;;;15012:38:63;;968:864:52;;-1:-1:-1;;;;;968:864:52;16430:59:63;;;;;;;3946:45:64;16430:59:63;;;15729:1310;16415:74;3946:45:64;16415:74:63;15729:1310;968:864:52;;;;;;;;;17100:30:63;;968:864:52;15012:38:63;17100:30;;968:864:52;15012:19:63;968:864:52;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;15012:19:63;968:864:52;;-1:-1:-1;;;;;968:864:52;;;;;17100:30:63;:16;;:30;;;;;;;;14837:2300;:::o;17100:30::-;;;3946:45:64;17100:30:63;;;;;;:::i;:::-;;;968:864:52;15012:19:63;968:864:52;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;15012:19:63;968:864:52;;;;;;;15012:19:63;968:864:52;;;;;;;:::i;:::-;14837:2300:63:o;17100:30::-;968:864:52;;;3946:45:64;968:864:52;;;;;16430:59:63;968:864:52;16430:59:63;;968:864:52;16430:59:63;;;;;;968:864:52;16430:59:63;;;:::i;:::-;;;968:864:52;;;;;;;;;;:::i;:::-;;;;;;;;;;;15012:19:63;968:864:52;;;;3946:45:64;968:864:52;;;;:::i;:::-;15012:19:63;968:864:52;;;16430:59:63;;;968:864:52;;;;;;;16430:59:63;;;-1:-1:-1;16430:59:63;;16453:20;;15012:19;16453:20;;15012:19;16453:20;;;;;;15012:19;16453:20;;;:::i;:::-;;;968:864:52;;;;;;;15012:38:63;968:864:52;;:::i;:::-;16453:20:63;;;;;;;-1:-1:-1;16453:20:63;;16084:121;968:864:52;;-1:-1:-1;;;16168:22:63;;15012:38;;16168:22;15993:78;968:864:52;;-1:-1:-1;;;16035:21:63;;15012:38;;16035:21;13480:19;;;;15012;13480;15012;13480;;;;;;;:::i;:::-;;;;13443:17;;15012:19;13443:17;;15012:19;13443:17;;;;;;15012:19;13443:17;;;:::i;:::-;;;968:864:52;;;;;;13443:17:63;;;;;;-1:-1:-1;13443:17:63;;15729:1310;968:864:52;;;;;;;;:::i;:::-;16510:31:63;16506:533;;15729:1310;3946:45:64;15729:1310:63;;;16506:533;968:864:52;16677:21:63;968:864:52;-1:-1:-1;;;;;968:864:52;;;;;16702:16:63;:22;:16;;:22;968:864:52;;16677:47:63;;16673:115;;16801:26;-1:-1:-1;;;16801:26:63;;:::i;:::-;968:864:52;;;;-1:-1:-1;;;968:864:52;;;16677:21:63;968:864:52;3946:45:64;15012:19:63;968:864:52;;;;;:::i;:::-;;;;;;3946:45:64;968:864:52;;;;;:::i;:::-;;;;4618:99:76;15012:19:63;4618:99:76;;968:864:52;16506:533:63;;;;15678:41;15012:19;15678:41;;15012:19;15678:41;;;;;;15012:19;15678:41;;;:::i;:::-;;;968:864:52;;;;;;;;;;;;15678:41:63;;;;;;;-1:-1:-1;15678:41:63;;15287:172;968:864:52;;;;;;2508:20:60;15012:19:63;2508:20:60;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;-1:-1:-1;;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2508:20:60;968:864:52;15012:19:63;968:864:52;;;;;;;;;;;2508:20:60;968:864:52;;2508:20:60;;;;;;:::i;:::-;968:864:52;2498:31:60;;3946:45:64;968:864:52;;15012:19:63;968:864:52;;3946:45:64;968:864:52;;;;;;;-1:-1:-1;;;;;968:864:52;;;-1:-1:-1;;;;;968:864:52;;;;;;;15012:19:63;968:864:52;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;-1:-1:-1;;;968:864:52;;;;15012:19:63;968:864:52;;;;;;;;;;;15287:172:63;968:864:52;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;3946:45:64;968:864:52;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;3946:45:64;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;15012:38:63;968:864:52;;15012:19:63;968:864:52;;;;;;;-1:-1:-1;;;;;968:864:52;;;-1:-1:-1;;;;;968:864:52;;;;;;;15012:19:63;968:864:52;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;-1:-1:-1;;;968:864:52;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;3946:45:64;968:864:52;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;3946:45:64;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;3946:45:64;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15442:7:63:o;968:864:52:-;;;;-1:-1:-1;968:864:52;;;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;;3946:45:64;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;968:864:52;;;;;;;;3946:45:64;968:864:52;;15012:38:63;968:864:52;;3946:45:64;968:864:52;;;;;;;;;;;;-1:-1:-1;968:864:52;;;;;3946:45:64;968:864:52;;;15012:19:63;968:864:52;;;-1:-1:-1;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;15012:19:63;968:864:52;;;;;;;;;;;;3946:45:64;968:864:52;;;3946:45:64;968:864:52;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;968:864:52;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;;3946:45:64;968:864:52;;-1:-1:-1;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;;;;;;;;;;;3946:45:64;968:864:52;15012:19:63;3946:45:64;968:864:52;;;;;;;;;15012:19:63;968:864:52;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;15012:19:63;968:864:52;;;;;;;;;;;;3946:45:64;968:864:52;;;3946:45:64;968:864:52;;;;;;;:::i;:::-;;;;15292:50:63;;;;15012:19;15292:50;15012:19;15292:50;;;;;;;:::i;:::-;;;;15008:102;968:864:52;;-1:-1:-1;;;15073:26:63;;15012:38;;15073:26;15012:38;;;;:19;:38;:19;:38;;;;;;;:::i;:::-;;;;968:864:52;;;;;;;;;;;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;968:864:52;;;;;;;;;;;;;;","linkReferences":{"src/lib/AccountHelper.sol":{"AccountHelper":[{"start":149,"length":20}]},"src/lib/CrossMsgHelper.sol":{"CrossMsgHelper":[{"start":3153,"length":20}]},"src/lib/StorableMsgHelper.sol":{"StorableMsgHelper":[{"start":2655,"length":20}]},"src/lib/SubnetIDHelper.sol":{"SubnetIDHelper":[{"start":331,"length":20},{"start":2391,"length":20}]}}},"methodIdentifiers":{"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":"c62eb4d5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidCrossMsgDstSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCrossMsgNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredSubnet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSystemActor\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"from\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"root\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"route\",\"type\":\"address[]\"}],\"internalType\":\"struct SubnetID\",\"name\":\"subnetId\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"addrType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct FvmAddress\",\"name\":\"rawAddress\",\"type\":\"tuple\"}],\"internalType\":\"struct IPCAddress\",\"name\":\"to\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"bytes4\",\"name\":\"method\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"struct StorableMsg\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"wrapped\",\"type\":\"bool\"}],\"internalType\":\"struct CrossMsg[]\",\"name\":\"crossMsgs\",\"type\":\"tuple[]\"}],\"name\":\"applyCrossMessages\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"details\":\"It requires the caller to be the system actor.\",\"params\":{\"crossMsgs\":\"The array of cross-network messages to be applied.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])\":{\"notice\":\"Applies top-down cross-net messages locally. This is invoked by IPC nodes when drawing messages from their parent subnet for local execution. That's why the sender is restricted to the system sender, because this method is implicitly invoked by the node during block production.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/gateway/router/XnetMessagingFacet.sol\":\"XnetMessagingFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\\\"/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":elliptic-curve-solidity/=lib/elliptic-curve-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":fevmate/=lib/fevmate/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/fevmate/contracts/utils/FilAddress.sol\":{\"keccak256\":\"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7\",\"dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7\",\"dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e\",\"dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c\",\"dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5\",\"dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a\",\"dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81\",\"dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b\",\"dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593\",\"dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT\"]},\"src/constants/Constants.sol\":{\"keccak256\":\"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040\",\"dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt\"]},\"src/enums/ConsensusType.sol\":{\"keccak256\":\"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0\",\"dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ\"]},\"src/enums/IPCMsgType.sol\":{\"keccak256\":\"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287\",\"dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B\"]},\"src/errors/IPCErrors.sol\":{\"keccak256\":\"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71\",\"dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe\"]},\"src/gateway/router/XnetMessagingFacet.sol\":{\"keccak256\":\"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211\",\"dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf\"]},\"src/interfaces/IGateway.sol\":{\"keccak256\":\"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597\",\"dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9\"]},\"src/lib/AccountHelper.sol\":{\"keccak256\":\"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc\",\"dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua\"]},\"src/lib/CrossMsgHelper.sol\":{\"keccak256\":\"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd\",\"dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi\"]},\"src/lib/FvmAddressHelper.sol\":{\"keccak256\":\"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12\",\"dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp\"]},\"src/lib/LibGateway.sol\":{\"keccak256\":\"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3\",\"dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z\"]},\"src/lib/LibGatewayActorStorage.sol\":{\"keccak256\":\"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a\",\"dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3\"]},\"src/lib/LibStaking.sol\":{\"keccak256\":\"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce\",\"dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9\"]},\"src/lib/LibStakingChangeLog.sol\":{\"keccak256\":\"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006\",\"dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9\"]},\"src/lib/LibSubnetActorStorage.sol\":{\"keccak256\":\"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24\",\"dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m\"]},\"src/lib/StorableMsgHelper.sol\":{\"keccak256\":\"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb\",\"dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud\"]},\"src/lib/SubnetIDHelper.sol\":{\"keccak256\":\"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f\",\"dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK\"]},\"src/lib/SupplySourceHelper.sol\":{\"keccak256\":\"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b\",\"dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4\"]},\"src/lib/priority/LibMaxPQ.sol\":{\"keccak256\":\"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747\",\"dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx\"]},\"src/lib/priority/LibMinPQ.sol\":{\"keccak256\":\"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be\",\"dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd\"]},\"src/lib/priority/LibPQ.sol\":{\"keccak256\":\"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0\",\"dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t\"]},\"src/structs/CrossNet.sol\":{\"keccak256\":\"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e\",\"dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ\"]},\"src/structs/FvmAddress.sol\":{\"keccak256\":\"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac\",\"dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu\"]},\"src/structs/Quorum.sol\":{\"keccak256\":\"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363\",\"dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP\"]},\"src/structs/Subnet.sol\":{\"keccak256\":\"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f\",\"dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1\"]},\"src/subnet/SubnetActorGetterFacet.sol\":{\"keccak256\":\"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455\",\"dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidCrossMsgDstSubnet"},{"inputs":[],"type":"error","name":"InvalidCrossMsgNonce"},{"inputs":[],"type":"error","name":"NotRegisteredSubnet"},{"inputs":[],"type":"error","name":"NotSystemActor"},{"inputs":[{"internalType":"struct CrossMsg[]","name":"crossMsgs","type":"tuple[]","components":[{"internalType":"struct StorableMsg","name":"message","type":"tuple","components":[{"internalType":"struct IPCAddress","name":"from","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"struct IPCAddress","name":"to","type":"tuple","components":[{"internalType":"struct SubnetID","name":"subnetId","type":"tuple","components":[{"internalType":"uint64","name":"root","type":"uint64"},{"internalType":"address[]","name":"route","type":"address[]"}]},{"internalType":"struct FvmAddress","name":"rawAddress","type":"tuple","components":[{"internalType":"uint8","name":"addrType","type":"uint8"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"internalType":"bytes4","name":"method","type":"bytes4"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"internalType":"bool","name":"wrapped","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"applyCrossMessages"}],"devdoc":{"kind":"dev","methods":{"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"details":"It requires the caller to be the system actor.","params":{"crossMsgs":"The array of cross-network messages to be applied."}}},"version":1},"userdoc":{"kind":"user","methods":{"applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])":{"notice":"Applies top-down cross-net messages locally. This is invoked by IPC nodes when drawing messages from their parent subnet for local execution. That's why the sender is restricted to the system sender, because this method is implicitly invoked by the node during block production."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/forge-std/lib/ds-test/src/,forge-std/=lib/forge-std/src/,openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/,fevmate=lib/fevmate/contracts,murky/=lib/murky/src,elliptic-curve-solidity/=lib/elliptic-curve-solidity\"/","ds-test/=lib/forge-std/lib/ds-test/src/","elliptic-curve-solidity/=lib/elliptic-curve-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","fevmate/=lib/fevmate/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/gateway/router/XnetMessagingFacet.sol":"XnetMessagingFacet"},"libraries":{},"viaIR":true},"sources":{"lib/fevmate/contracts/utils/FilAddress.sol":{"keccak256":"0x8707b4f152e92b852090c313419c0dc772eebf4428472a0659dd6b13dd6bee31","urls":["bzz-raw://442fc3cb02e610424f0599f4cc519e4fbead47da09911697b62208a2ae51e4a7","dweb:/ipfs/QmRpKJ9tWWTHgMpRB18DHJLbCT4YT9yp2G89H9mHGu5ss2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x25c33569824f7653c064ccac6b9c63ba19833c7818debaa3f7f7737f5175d7d7","urls":["bzz-raw://6c002fe819fd2da94ef4cbcddcd4a62ba42454b000d2321314bfff73353792e7","dweb:/ipfs/QmadL9VMe3jTyf5sg8g8Y9Q4ESsyos42rZPnvJaKuhUacK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x3646d6b4bee92d2bcc731e096d0b96c73857809d1b103fee122b7c690a3f87eb","urls":["bzz-raw://1566327145da74162e651243403b38a1f056c557c13b7593080b7e681ba4a38e","dweb:/ipfs/QmfLBe1tbAbSpqeQ5C7L3NSgjo53DRVqncgoESBHdw9gLs"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x98b9fde7737b068b76668b09f293691eaea7b42f1ace37dfcca160e36052235b","urls":["bzz-raw://006167e8aa9dd07c772477341e1db76d9cae99ede96bbc5e9064ea5c80e7235c","dweb:/ipfs/QmcUH4UJZmw8psRuXEi1qwh46ex58JaXBqajeUbZzWbGxg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x67ca7745e6032aeda339ba3f5813abf9eeb4ec683520944fa878c2867aea58f1","urls":["bzz-raw://c13ff04f87357176e2b267730f288013269eefce0862ea8f4bf3f420948eb7d5","dweb:/ipfs/QmQZRjF3CdCdoUvqhrT9KXYjrjmdmFQqENtuiHTMbyt6xo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xb97d36c301445278c5f8fd94c7bda1c7406d28def61da67864cb6e27f359d6da","urls":["bzz-raw://63d542fd2f752d7f715057cbb956e95e198d1ce0545092212025369920a9c33a","dweb:/ipfs/QmNbjRRr4u2denjbZrsQhU5d4mxPyyfv2m5t3suKToLwaB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x3ddad25673a903c650b6f78ad878f0559c66c30ace86e1110ff44fd07900264c","urls":["bzz-raw://7907214499f21a835a3582b3c24d2844f70a19c6874458e5daae3d0eef205c81","dweb:/ipfs/QmSALTEWv1GbTHH5b739hjzrWC78DDe7trbxEgt5pniF9k"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x63a4fc7046bc052edeec923181f2f886681e1e0b34c4f23ce84425acfe80a1fb","urls":["bzz-raw://9cee5cb5fa0dc7d47c463f900b5fcd44abe84f6bce23433898af1221598a3a9b","dweb:/ipfs/Qmdjp7Pf6RuGgAnSxUKd9CvniN8gUG6wLH1cdvhg5L9w4z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0xeefcbb8cb69f04a18f6dc61d4811133ce9aeff96ce60820f758abc52ef55b892","urls":["bzz-raw://81c61c0dd40890f6a4b1fb792bc5b5b61e821fcafa2aae6c7eda6d4f1ece2593","dweb:/ipfs/QmRLMrq6BiPS9wGu7ZC174SFYWCu6cxbU3agDw2XgJeDpT"],"license":"MIT"},"src/constants/Constants.sol":{"keccak256":"0x7e5eb7dcfa34e13b45e8c7033d9e078ead8cfcc03b9a103ac25b42bd2f212d7d","urls":["bzz-raw://cf07386f9148472c13dd0dd45f2cccb7d47ef1c11f93e7e260ee8cf7aae7f040","dweb:/ipfs/QmYWd99fvuvwNE16mHu7Y3s7XgqJJKTcxg5jysNyScqiZt"],"license":"MIT OR Apache-2.0"},"src/enums/ConsensusType.sol":{"keccak256":"0xc5efd8c66b57dadaba4178c4b4d087b30cb84cbac38fb288a8c3b65075a9f59d","urls":["bzz-raw://6fcffaa8e40322ae27958603884cc07d06e9efd59cf12764f28945b7a47e11d0","dweb:/ipfs/Qmc3PBovpcvj7jgVq5GwR5SkiUXBymT1tw74mvu5ccNqoZ"],"license":"MIT OR Apache-2.0"},"src/enums/IPCMsgType.sol":{"keccak256":"0x71a98007d09c323fd278fabc5ff147a278a707484f4afcd982a8ad36ef8d48bc","urls":["bzz-raw://e916e9f51a12d6e89d13a1c6b1e6fa458557ca935760d27d8f3e3510b79e6287","dweb:/ipfs/QmZEhtC1YPyBcJRLNjaf5QFkfZYAwVcwcw3aSRPLQX4G2B"],"license":"MIT OR Apache-2.0"},"src/errors/IPCErrors.sol":{"keccak256":"0xc6f2cd7c30bf8060791d0ae4d9ff51db970462e53952cd9572bd9888d8d5d0dd","urls":["bzz-raw://23dc0d8932afd62a606d79ff4a7e6629b099999c5507ead80c2ae704174acb71","dweb:/ipfs/QmdS9uEG6PNYaGECMaCbEqWgyEnW9dq8gT83abZVJGAzpe"],"license":"MIT OR Apache-2.0"},"src/gateway/router/XnetMessagingFacet.sol":{"keccak256":"0xb71c35ace929f9f5e3799a067b697cf6faffe9107aa202564be8a86f1615cc24","urls":["bzz-raw://c4ab8f5370c20e220c4fedd4648fe9cafc5028a67f53e62bba4f612ea2e7d211","dweb:/ipfs/QmYKfbjVVLnTKLXojdMN6VtbZ4U6dL79okNRojF1QLxTKf"],"license":"MIT OR Apache-2.0"},"src/interfaces/IGateway.sol":{"keccak256":"0xc8fd2acf790a348d9b1a230c6fb4756286cb816d3fde668030a632ff9dc4fa74","urls":["bzz-raw://f42023a8d891b6cf51802ea25f79a90c246f3aa1f1937da063ecd65350365597","dweb:/ipfs/QmacYPmXewCSZZMzuqhdxw22iCjizj6NC6Uz19yxC9ivZ9"],"license":"MIT OR Apache-2.0"},"src/lib/AccountHelper.sol":{"keccak256":"0x937fc49ac09d8c4d62c9c38e312be958e276b615bbf2f7dd688457ebf222f566","urls":["bzz-raw://8ce593eea7876399b4eaf0c5ccef11a25ea1f65df9e08039fe8e99aa2cafd4fc","dweb:/ipfs/QmPHDDatWa18EseP9LNRRQjRyw6jb7qJSguEoy8W3nzTua"],"license":"MIT OR Apache-2.0"},"src/lib/CrossMsgHelper.sol":{"keccak256":"0x93c5740484ae209b9515ff4c6efb171f543b1d637d295c028c3a847fad302abb","urls":["bzz-raw://75b53b4749211ec491983e78eddcd0d3e659602d4e24c4737ea0f4052556d8dd","dweb:/ipfs/QmNgbWMmWMhRDGQdHixYWFwYngQAewTY2QUfSuaeLFkmVi"],"license":"MIT OR Apache-2.0"},"src/lib/FvmAddressHelper.sol":{"keccak256":"0x2ffadbf7e4247b489386e96d0af302cb633f376a160d4d6de2188aef69c443d8","urls":["bzz-raw://d6a148fb5ace9772aa8049427466a07a9e2eed71b11a4cda3721cdbb91039e12","dweb:/ipfs/QmUmxKwVMMqejELpFoMqeFJpRL6fmVmn76EXPXvJhSwQMp"],"license":"MIT OR Apache-2.0"},"src/lib/LibGateway.sol":{"keccak256":"0xc80f1fd619d7abc981e949928ba8117bc80046a120299dc2caeff260d9de4417","urls":["bzz-raw://d2ec8c3f8d540ca8c29532314277f2eae7ec8ff973a07b9c95b8661c486fe2b3","dweb:/ipfs/QmVrHCtKnpQvmopMNk2ec9DDW18o4nVipznh7PgegVLa2z"],"license":"MIT OR Apache-2.0"},"src/lib/LibGatewayActorStorage.sol":{"keccak256":"0x3e50861c0c97a6a7e35232b83eef7242f7439923a2322809f28ea41d4c2da9aa","urls":["bzz-raw://d21ecfd063a12f84985a029eb058d60e229cb24a7d5da1171b01fad1bcd65a9a","dweb:/ipfs/QmPE333uatJxHqXBb31poWdWsj26JDYjXWwHUub7H6Qds3"],"license":"MIT OR Apache-2.0"},"src/lib/LibStaking.sol":{"keccak256":"0x2ca90d9213b49033ff11524ca8f69d5ea4b6adf455dfc061be61da34c71ff1f9","urls":["bzz-raw://d1c93278180ef7a8c64dfb41c8246a2861c1ee0e8b254484d1359ef53f4211ce","dweb:/ipfs/QmTg21GffvzgY93kk6JFCDXQhQyCQcUo2BrL18AuNznqw9"],"license":"MIT OR Apache-2.0"},"src/lib/LibStakingChangeLog.sol":{"keccak256":"0xa4273910f3ad3377843e6bf386b6a6752aa635e2962effdb50657bcbb1f53583","urls":["bzz-raw://bfc0de35c4dc0ce86b7dc360a48b4ec39d68dc1f384736df2eb5181fda7e7006","dweb:/ipfs/QmW7Gm2DnmpVZdJ7gMx4vcumkG6pP7UJgBskdLtuJrSrq9"],"license":"MIT OR Apache-2.0"},"src/lib/LibSubnetActorStorage.sol":{"keccak256":"0x96c45f1d488da0ca7e9ef51aa717528516e1e6dac9294c1c14190ce345bee80f","urls":["bzz-raw://700ace2b8d7f7f9ad215f05518e279ca9197ddb0cbea64d7e0fb480909de8f24","dweb:/ipfs/QmfNUdSJ24aypQ8vCgiCQfT3C6c3qGwVCXsw7pcU98UY1m"],"license":"MIT OR Apache-2.0"},"src/lib/StorableMsgHelper.sol":{"keccak256":"0xcd97af4e2c1342ddc2082fd75985cd1ad0f568a5874a1a849b962a5bb77040ea","urls":["bzz-raw://5585bf0c65a53ceb838db0e8b505074b1d0ac5b26113273154166de4096f53cb","dweb:/ipfs/QmPKrZ8Qw2CTUBupgPSQtHf2FrKcuv2HhEHq9YWnhZMwud"],"license":"MIT OR Apache-2.0"},"src/lib/SubnetIDHelper.sol":{"keccak256":"0x8ff8a0d7519794f9ce174cc93d40e4d9f297fe22dbc963c3d7641183652eaa20","urls":["bzz-raw://af41a8aafd959101183d70dc790b675d73f4eb26f632f4092828bcd49226ad9f","dweb:/ipfs/QmPHaKbKKtW5V8DiWU2ij33d3omdFghQEBxg3BvWxikBfK"],"license":"MIT OR Apache-2.0"},"src/lib/SupplySourceHelper.sol":{"keccak256":"0xa4ae91c06d04cb809f355608d2f8601eaaf846fbf7e71385c4f712d1e03b7d41","urls":["bzz-raw://4db4ae99183ee81a7d46bc25c622ea86cb79fe04a2088c90201a316b136bbc6b","dweb:/ipfs/QmSnLQaa388YwwA54TmT96RfwfJV6GWEKacvjNxKpTXDe4"],"license":"UNLICENSED"},"src/lib/priority/LibMaxPQ.sol":{"keccak256":"0x4a975f61e5dc814ffceb6cedf56ee69a090d28a688f3c1ffcf25b394a6d40cdc","urls":["bzz-raw://31f713c852ab92e6d1447fac4d70202f5b74049490be35d79ac7b081dd49e747","dweb:/ipfs/QmaM99kHzHMuYoYtMdWmUbeqmpUNqmBZtRz72dpNyFhYyx"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibMinPQ.sol":{"keccak256":"0x532b4dc7c4b3c9bfc37258dad0a36d141a9cd4621d0382f2f1a84e7f9fb6224d","urls":["bzz-raw://22f582177c7c48c3493d06be3d2122f87278b54d7d94817c37e6e2a39035d5be","dweb:/ipfs/QmRbViZs6jLNDtKKGP3W79o7vncY58eiC7q2m7qiuruGkd"],"license":"MIT OR Apache-2.0"},"src/lib/priority/LibPQ.sol":{"keccak256":"0xc580f2c0bcdb3e38d5a7cc6e44e14c970b98385306594b37aa7689af8c7b4d09","urls":["bzz-raw://e2d85012263be8c7fe1c692405772cd9082422deb95d558ce02d8153b73281f0","dweb:/ipfs/QmdK8Ewm7SvBUhirDPuKx6xJjUmpAohazMMsjTgqWNLm8t"],"license":"MIT OR Apache-2.0"},"src/structs/CrossNet.sol":{"keccak256":"0x1e85d98f0d9ab061b6874c0ba0c89235a785a533fe10c9a1518e20d0a027c48c","urls":["bzz-raw://9fd2c2cef4a723750958228a03d1d5daff09f27e9b19278e90a6b5569acd2f1e","dweb:/ipfs/QmS2JJJwyzjgWdrQvwiujeuuoQjc1LntptYKhAzMnWTVwQ"],"license":"MIT OR Apache-2.0"},"src/structs/FvmAddress.sol":{"keccak256":"0xfc8c16b96bd5b7d4a163f586bd36936f7170304de70aa487a0b11c60e5ac9069","urls":["bzz-raw://6b6572d5f28a9fa12ff91d45601c063cdaf68a12b9f8e46131c6dc4cd28255ac","dweb:/ipfs/QmSC8gRWVuPKjobgDDyHbm2cmcPN8pWzbEmXKmdMZR8YKu"],"license":"MIT OR Apache-2.0"},"src/structs/Quorum.sol":{"keccak256":"0xf945e323f643c9f5680fcbf614f2e7b7e222ee6117731c37d98afb2f70119eed","urls":["bzz-raw://a7aa83330386d078b3ae06536eb6f1f803cdb1874bdf7c8c0646dd17e542a363","dweb:/ipfs/QmVjWdcm5WDYd2HaF33TKR8T8JLbnExh6Nq2KJfPKgpooP"],"license":"MIT OR Apache-2.0"},"src/structs/Subnet.sol":{"keccak256":"0x0a2b7b7490585019e6aecd89e3d1ca0713e92eec10c3fc0c76d87ad2cb8a86d5","urls":["bzz-raw://35b1a7f849f045b3644e8048bb694ad3ac1c60b8308b3ee1cf6480ba97bd7f1f","dweb:/ipfs/Qmae9Hie6zd26A6rW2e1J7MySVhtgazUvweHE97YLazwD1"],"license":"MIT OR Apache-2.0"},"src/subnet/SubnetActorGetterFacet.sol":{"keccak256":"0x658ba0f5b64ee44dc9daa7eba15c354f82130884a1938a30f9f2aff932ed85bd","urls":["bzz-raw://de2ec882c09f6e654d97d6060ca170c8f64670e00802cc7eea17ef39cc522455","dweb:/ipfs/QmVnCXd98jcQqtUTKPSWLemoqD34wHc7PU5WMj93pyMULf"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"src/gateway/router/XnetMessagingFacet.sol","id":40145,"exportedSymbols":{"CrossMsg":[49974],"CrossMsgHelper":[40781],"FilAddress":[1428],"GatewayActorModifiers":[43137],"IPCMsgType":[37364],"InvalidCrossMsgDstSubnet":[37420],"InvalidCrossMsgNonce":[37424],"LibGateway":[42944],"NotRegisteredSubnet":[37482],"StorableMsg":[49991],"StorableMsgHelper":[47461],"Subnet":[50091],"SubnetActorGetterFacet":[50887],"SubnetID":[50077],"SubnetIDHelper":[48072],"SupplySource":[50226],"SupplySourceHelper":[48398],"XnetMessagingFacet":[40144]},"nodeType":"SourceUnit","src":"46:1787:52","nodes":[{"id":40073,"nodeType":"PragmaDirective","src":"46:23:52","nodes":[],"literals":["solidity","0.8",".19"]},{"id":40075,"nodeType":"ImportDirective","src":"71:75:52","nodes":[],"absolutePath":"src/lib/LibGatewayActorStorage.sol","file":"../../lib/LibGatewayActorStorage.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":43138,"symbolAliases":[{"foreign":{"id":40074,"name":"GatewayActorModifiers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43137,"src":"79:21:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40079,"nodeType":"ImportDirective","src":"147:75:52","nodes":[],"absolutePath":"src/structs/CrossNet.sol","file":"../../structs/CrossNet.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":49992,"symbolAliases":[{"foreign":{"id":40076,"name":"CrossMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49974,"src":"155:8:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40077,"name":"SubnetID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"165:8:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40078,"name":"StorableMsg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49991,"src":"175:11:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40081,"nodeType":"ImportDirective","src":"223:52:52","nodes":[],"absolutePath":"src/lib/LibGateway.sol","file":"../../lib/LibGateway.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":42945,"symbolAliases":[{"foreign":{"id":40080,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"231:10:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40083,"nodeType":"ImportDirective","src":"276:54:52","nodes":[],"absolutePath":"src/enums/IPCMsgType.sol","file":"../../enums/IPCMsgType.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":37365,"symbolAliases":[{"foreign":{"id":40082,"name":"IPCMsgType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37364,"src":"284:10:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40085,"nodeType":"ImportDirective","src":"331:79:52","nodes":[],"absolutePath":"src/subnet/SubnetActorGetterFacet.sol","file":"../../subnet/SubnetActorGetterFacet.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":50888,"symbolAliases":[{"foreign":{"id":40084,"name":"SubnetActorGetterFacet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50887,"src":"339:22:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40087,"nodeType":"ImportDirective","src":"411:48:52","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":40086,"name":"Subnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50091,"src":"419:6:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40089,"nodeType":"ImportDirective","src":"461:56:52","nodes":[],"absolutePath":"lib/fevmate/contracts/utils/FilAddress.sol","file":"fevmate/utils/FilAddress.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":1429,"symbolAliases":[{"foreign":{"id":40088,"name":"FilAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"469:10:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40091,"nodeType":"ImportDirective","src":"518:60:52","nodes":[],"absolutePath":"src/lib/SubnetIDHelper.sol","file":"../../lib/SubnetIDHelper.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":48073,"symbolAliases":[{"foreign":{"id":40090,"name":"SubnetIDHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48072,"src":"526:14:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40093,"nodeType":"ImportDirective","src":"579:60:52","nodes":[],"absolutePath":"src/lib/CrossMsgHelper.sol","file":"../../lib/CrossMsgHelper.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":40782,"symbolAliases":[{"foreign":{"id":40092,"name":"CrossMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40781,"src":"587:14:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40095,"nodeType":"ImportDirective","src":"640:68:52","nodes":[],"absolutePath":"src/lib/SupplySourceHelper.sol","file":"../../lib/SupplySourceHelper.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":48399,"symbolAliases":[{"foreign":{"id":40094,"name":"SupplySourceHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48398,"src":"648:18:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40097,"nodeType":"ImportDirective","src":"709:54:52","nodes":[],"absolutePath":"src/structs/Subnet.sol","file":"../../structs/Subnet.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":50230,"symbolAliases":[{"foreign":{"id":40096,"name":"SupplySource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50226,"src":"717:12:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40102,"nodeType":"ImportDirective","src":"765:133:52","nodes":[],"absolutePath":"src/errors/IPCErrors.sol","file":"../../errors/IPCErrors.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":37542,"symbolAliases":[{"foreign":{"id":40098,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"773:20:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40099,"name":"InvalidCrossMsgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37424,"src":"795:20:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40100,"name":"NotRegisteredSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37482,"src":"817:19:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":40101,"name":"InvalidCrossMsgDstSubnet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37420,"src":"838:24:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40104,"nodeType":"ImportDirective","src":"900:66:52","nodes":[],"absolutePath":"src/lib/StorableMsgHelper.sol","file":"../../lib/StorableMsgHelper.sol","nameLocation":"-1:-1:-1","scope":40145,"sourceUnit":47462,"symbolAliases":[{"foreign":{"id":40103,"name":"StorableMsgHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47461,"src":"908:17:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40144,"nodeType":"ContractDefinition","src":"968:864:52","nodes":[{"id":40110,"nodeType":"UsingForDirective","src":"1027:34:52","nodes":[],"global":false,"libraryName":{"id":40107,"name":"SubnetIDHelper","nameLocations":["1033:14:52"],"nodeType":"IdentifierPath","referencedDeclaration":48072,"src":"1033:14:52"},"typeName":{"id":40109,"nodeType":"UserDefinedTypeName","pathNode":{"id":40108,"name":"SubnetID","nameLocations":["1052:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":50077,"src":"1052:8:52"},"referencedDeclaration":50077,"src":"1052:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage_ptr","typeString":"struct SubnetID"}}},{"id":40114,"nodeType":"UsingForDirective","src":"1066:34:52","nodes":[],"global":false,"libraryName":{"id":40111,"name":"CrossMsgHelper","nameLocations":["1072:14:52"],"nodeType":"IdentifierPath","referencedDeclaration":40781,"src":"1072:14:52"},"typeName":{"id":40113,"nodeType":"UserDefinedTypeName","pathNode":{"id":40112,"name":"CrossMsg","nameLocations":["1091:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1091:8:52"},"referencedDeclaration":49974,"src":"1091:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}}},{"id":40118,"nodeType":"UsingForDirective","src":"1105:42:52","nodes":[],"global":false,"libraryName":{"id":40115,"name":"SupplySourceHelper","nameLocations":["1111:18:52"],"nodeType":"IdentifierPath","referencedDeclaration":48398,"src":"1111:18:52"},"typeName":{"id":40117,"nodeType":"UserDefinedTypeName","pathNode":{"id":40116,"name":"SupplySource","nameLocations":["1134:12:52"],"nodeType":"IdentifierPath","referencedDeclaration":50226,"src":"1134:12:52"},"referencedDeclaration":50226,"src":"1134:12:52","typeDescriptions":{"typeIdentifier":"t_struct$_SupplySource_$50226_storage_ptr","typeString":"struct SupplySource"}}},{"id":40122,"nodeType":"UsingForDirective","src":"1152:40:52","nodes":[],"global":false,"libraryName":{"id":40119,"name":"StorableMsgHelper","nameLocations":["1158:17:52"],"nodeType":"IdentifierPath","referencedDeclaration":47461,"src":"1158:17:52"},"typeName":{"id":40121,"nodeType":"UserDefinedTypeName","pathNode":{"id":40120,"name":"StorableMsg","nameLocations":["1180:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":49991,"src":"1180:11:52"},"referencedDeclaration":49991,"src":"1180:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_StorableMsg_$49991_storage_ptr","typeString":"struct StorableMsg"}}},{"id":40143,"nodeType":"FunctionDefinition","src":"1661:169:52","nodes":[],"body":{"id":40142,"nodeType":"Block","src":"1745:85:52","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":40135,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43082,"src":"1780:1:52","typeDescriptions":{"typeIdentifier":"t_struct$_GatewayActorStorage_$43068_storage","typeString":"struct GatewayActorStorage storage ref"}},"id":40136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:11:52","memberName":"networkName","nodeType":"MemberAccess","referencedDeclaration":43024,"src":"1780:13:52","typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_storage","typeString":"struct SubnetID storage ref"}},"id":40137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1794:15:52","memberName":"getParentSubnet","nodeType":"MemberAccess","referencedDeclaration":47578,"src":"1780:29:52","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_SubnetID_$50077_memory_ptr_$returns$_t_struct$_SubnetID_$50077_memory_ptr_$attached_to$_t_struct$_SubnetID_$50077_memory_ptr_$","typeString":"function (struct SubnetID memory) pure returns (struct SubnetID memory)"}},"id":40138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1780:31:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"}},{"id":40139,"name":"crossMsgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40127,"src":"1813:9:52","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SubnetID_$50077_memory_ptr","typeString":"struct SubnetID memory"},{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg calldata[] calldata"}],"expression":{"id":40132,"name":"LibGateway","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42944,"src":"1755:10:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibGateway_$42944_$","typeString":"type(library LibGateway)"}},"id":40134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1766:13:52","memberName":"applyMessages","nodeType":"MemberAccess","referencedDeclaration":42752,"src":"1755:24:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_SubnetID_$50077_memory_ptr_$_t_array$_t_struct$_CrossMsg_$49974_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (struct SubnetID memory,struct CrossMsg memory[] memory)"}},"id":40140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1755:68:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40141,"nodeType":"ExpressionStatement","src":"1755:68:52"}]},"documentation":{"id":40123,"nodeType":"StructuredDocumentation","src":"1198:458:52","text":"@notice Applies top-down cross-net messages locally. This is invoked by IPC nodes when drawing messages from\n their parent subnet for local execution. That's why the sender is restricted to the system sender,\n because this method is implicitly invoked by the node during block production.\n @dev It requires the caller to be the system actor.\n @param crossMsgs The array of cross-network messages to be applied."},"functionSelector":"c62eb4d5","implemented":true,"kind":"function","modifiers":[{"id":40130,"kind":"modifierInvocation","modifierName":{"id":40129,"name":"systemActorOnly","nameLocations":["1729:15:52"],"nodeType":"IdentifierPath","referencedDeclaration":43136,"src":"1729:15:52"},"nodeType":"ModifierInvocation","src":"1729:15:52"}],"name":"applyCrossMessages","nameLocation":"1670:18:52","parameters":{"id":40128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40127,"mutability":"mutable","name":"crossMsgs","nameLocation":"1709:9:52","nodeType":"VariableDeclaration","scope":40143,"src":"1689:29:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_calldata_ptr_$dyn_calldata_ptr","typeString":"struct CrossMsg[]"},"typeName":{"baseType":{"id":40125,"nodeType":"UserDefinedTypeName","pathNode":{"id":40124,"name":"CrossMsg","nameLocations":["1689:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":49974,"src":"1689:8:52"},"referencedDeclaration":49974,"src":"1689:8:52","typeDescriptions":{"typeIdentifier":"t_struct$_CrossMsg_$49974_storage_ptr","typeString":"struct CrossMsg"}},"id":40126,"nodeType":"ArrayTypeName","src":"1689:10:52","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CrossMsg_$49974_storage_$dyn_storage_ptr","typeString":"struct CrossMsg[]"}},"visibility":"internal"}],"src":"1688:31:52"},"returnParameters":{"id":40131,"nodeType":"ParameterList","parameters":[],"src":"1745:0:52"},"scope":40144,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":40105,"name":"GatewayActorModifiers","nameLocations":["999:21:52"],"nodeType":"IdentifierPath","referencedDeclaration":43137,"src":"999:21:52"},"id":40106,"nodeType":"InheritanceSpecifier","src":"999:21:52"}],"canonicalName":"XnetMessagingFacet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[40144,43137],"name":"XnetMessagingFacet","nameLocation":"977:18:52","scope":40145,"usedErrors":[37420,37424,37482,37486]}],"license":"MIT OR Apache-2.0"},"id":52} \ No newline at end of file diff --git a/.storage-layouts/GatewayActorModifiers.json b/.storage-layouts/GatewayActorModifiers.json index cefd2337c..2cfc32227 100644 --- a/.storage-layouts/GatewayActorModifiers.json +++ b/.storage-layouts/GatewayActorModifiers.json @@ -1,12 +1,12 @@ { "storage": [ { - "astId": 10635, + "astId": 11368, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "s", "offset": 0, "slot": "0", - "type": "t_struct(GatewayActorStorage)10621_storage" + "type": "t_struct(GatewayActorStorage)11354_storage" } ], "types": { @@ -27,14 +27,14 @@ "label": "bytes32[]", "numberOfBytes": "32" }, - "t_array(t_struct(CrossMsg)16704_storage)dyn_storage": { - "base": "t_struct(CrossMsg)16704_storage", + "t_array(t_struct(CrossMsg)18260_storage)dyn_storage": { + "base": "t_struct(CrossMsg)18260_storage", "encoding": "dynamic_array", "label": "struct CrossMsg[]", "numberOfBytes": "32" }, - "t_array(t_struct(Validator)16946_storage)dyn_storage": { - "base": "t_struct(Validator)16946_storage", + "t_array(t_struct(Validator)18497_storage)dyn_storage": { + "base": "t_struct(Validator)18497_storage", "encoding": "dynamic_array", "label": "struct Validator[]", "numberOfBytes": "32" @@ -59,26 +59,21 @@ "label": "bytes", "numberOfBytes": "32" }, - "t_enum(PermissionMode)16900": { + "t_enum(PermissionMode)18451": { "encoding": "inplace", "label": "enum PermissionMode", "numberOfBytes": "1" }, - "t_enum(QuorumObjKind)16742": { + "t_enum(QuorumObjKind)18298": { "encoding": "inplace", "label": "enum QuorumObjKind", "numberOfBytes": "1" }, - "t_enum(StakingOperation)16831": { + "t_enum(StakingOperation)18382": { "encoding": "inplace", "label": "enum StakingOperation", "numberOfBytes": "1" }, - "t_enum(Status)5184": { - "encoding": "inplace", - "label": "enum Status", - "numberOfBytes": "1" - }, "t_mapping(t_address,t_bytes_storage)": { "encoding": "mapping", "key": "t_address", @@ -86,12 +81,12 @@ "numberOfBytes": "32", "value": "t_bytes_storage" }, - "t_mapping(t_address,t_struct(ValidatorInfo)16896_storage)": { + "t_mapping(t_address,t_struct(ValidatorInfo)18447_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct ValidatorInfo)", "numberOfBytes": "32", - "value": "t_struct(ValidatorInfo)16896_storage" + "value": "t_struct(ValidatorInfo)18447_storage" }, "t_mapping(t_address,t_uint16)": { "encoding": "mapping", @@ -100,19 +95,19 @@ "numberOfBytes": "32", "value": "t_uint16" }, - "t_mapping(t_bytes32,t_struct(CrossMsg)16704_storage)": { + "t_mapping(t_bytes32,t_struct(CrossMsg)18260_storage)": { "encoding": "mapping", "key": "t_bytes32", "label": "mapping(bytes32 => struct CrossMsg)", "numberOfBytes": "32", - "value": "t_struct(CrossMsg)16704_storage" + "value": "t_struct(CrossMsg)18260_storage" }, - "t_mapping(t_bytes32,t_struct(Subnet)16826_storage)": { + "t_mapping(t_bytes32,t_struct(Subnet)18377_storage)": { "encoding": "mapping", "key": "t_bytes32", "label": "mapping(bytes32 => struct Subnet)", "numberOfBytes": "32", - "value": "t_struct(Subnet)16826_storage" + "value": "t_struct(Subnet)18377_storage" }, "t_mapping(t_bytes32,t_uint256)": { "encoding": "mapping", @@ -135,77 +130,77 @@ "numberOfBytes": "32", "value": "t_mapping(t_address,t_bytes_storage)" }, - "t_mapping(t_uint256,t_struct(AddressSet)3351_storage)": { + "t_mapping(t_uint256,t_struct(AddressSet)3814_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => struct EnumerableSet.AddressSet)", "numberOfBytes": "32", - "value": "t_struct(AddressSet)3351_storage" + "value": "t_struct(AddressSet)3814_storage" }, - "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)16662_storage)": { + "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)18218_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => struct BottomUpCheckpoint)", "numberOfBytes": "32", - "value": "t_struct(BottomUpCheckpoint)16662_storage" + "value": "t_struct(BottomUpCheckpoint)18218_storage" }, - "t_mapping(t_uint256,t_struct(BottomUpMsgBatch)16675_storage)": { + "t_mapping(t_uint256,t_struct(BottomUpMsgBatch)18231_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => struct BottomUpMsgBatch)", "numberOfBytes": "32", - "value": "t_struct(BottomUpMsgBatch)16675_storage" + "value": "t_struct(BottomUpMsgBatch)18231_storage" }, - "t_mapping(t_uint256,t_struct(ParentFinality)16648_storage)": { + "t_mapping(t_uint256,t_struct(ParentFinality)18204_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => struct ParentFinality)", "numberOfBytes": "32", - "value": "t_struct(ParentFinality)16648_storage" + "value": "t_struct(ParentFinality)18204_storage" }, - "t_mapping(t_uint256,t_struct(QuorumInfo)16758_storage)": { + "t_mapping(t_uint256,t_struct(QuorumInfo)18314_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => struct QuorumInfo)", "numberOfBytes": "32", - "value": "t_struct(QuorumInfo)16758_storage" + "value": "t_struct(QuorumInfo)18314_storage" }, - "t_mapping(t_uint64,t_struct(StakingChange)16839_storage)": { + "t_mapping(t_uint64,t_struct(StakingChange)18390_storage)": { "encoding": "mapping", "key": "t_uint64", "label": "mapping(uint64 => struct StakingChange)", "numberOfBytes": "32", - "value": "t_struct(StakingChange)16839_storage" + "value": "t_struct(StakingChange)18390_storage" }, - "t_struct(AddressSet)3351_storage": { + "t_struct(AddressSet)3814_storage": { "encoding": "inplace", "label": "struct EnumerableSet.AddressSet", "members": [ { - "astId": 3350, + "astId": 3813, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "_inner", "offset": 0, "slot": "0", - "type": "t_struct(Set)3036_storage" + "type": "t_struct(Set)3499_storage" } ], "numberOfBytes": "64" }, - "t_struct(BottomUpCheckpoint)16662_storage": { + "t_struct(BottomUpCheckpoint)18218_storage": { "encoding": "inplace", "label": "struct BottomUpCheckpoint", "members": [ { - "astId": 16652, + "astId": 18208, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "subnetID", "offset": 0, "slot": "0", - "type": "t_struct(SubnetID)16809_storage" + "type": "t_struct(SubnetID)18363_storage" }, { - "astId": 16655, + "astId": 18211, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "blockHeight", "offset": 0, @@ -213,7 +208,7 @@ "type": "t_uint256" }, { - "astId": 16658, + "astId": 18214, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "blockHash", "offset": 0, @@ -221,7 +216,7 @@ "type": "t_bytes32" }, { - "astId": 16661, + "astId": 18217, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "nextConfigurationNumber", "offset": 0, @@ -231,20 +226,20 @@ ], "numberOfBytes": "160" }, - "t_struct(BottomUpMsgBatch)16675_storage": { + "t_struct(BottomUpMsgBatch)18231_storage": { "encoding": "inplace", "label": "struct BottomUpMsgBatch", "members": [ { - "astId": 16666, + "astId": 18222, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "subnetID", "offset": 0, "slot": "0", - "type": "t_struct(SubnetID)16809_storage" + "type": "t_struct(SubnetID)18363_storage" }, { - "astId": 16669, + "astId": 18225, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "blockHeight", "offset": 0, @@ -252,30 +247,30 @@ "type": "t_uint256" }, { - "astId": 16674, + "astId": 18230, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "msgs", "offset": 0, "slot": "3", - "type": "t_array(t_struct(CrossMsg)16704_storage)dyn_storage" + "type": "t_array(t_struct(CrossMsg)18260_storage)dyn_storage" } ], "numberOfBytes": "128" }, - "t_struct(CrossMsg)16704_storage": { + "t_struct(CrossMsg)18260_storage": { "encoding": "inplace", "label": "struct CrossMsg", "members": [ { - "astId": 16701, + "astId": 18257, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "message", "offset": 0, "slot": "0", - "type": "t_struct(StorableMsg)16721_storage" + "type": "t_struct(StorableMsg)18277_storage" }, { - "astId": 16703, + "astId": 18259, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "wrapped", "offset": 0, @@ -285,12 +280,12 @@ ], "numberOfBytes": "416" }, - "t_struct(FvmAddress)16728_storage": { + "t_struct(FvmAddress)18284_storage": { "encoding": "inplace", "label": "struct FvmAddress", "members": [ { - "astId": 16725, + "astId": 18281, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "addrType", "offset": 0, @@ -298,7 +293,7 @@ "type": "t_uint8" }, { - "astId": 16727, + "astId": 18283, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "payload", "offset": 0, @@ -308,28 +303,28 @@ ], "numberOfBytes": "64" }, - "t_struct(GatewayActorStorage)10621_storage": { + "t_struct(GatewayActorStorage)11354_storage": { "encoding": "inplace", "label": "struct GatewayActorStorage", "members": [ { - "astId": 10523, + "astId": 11259, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "subnets", "offset": 0, "slot": "0", - "type": "t_mapping(t_bytes32,t_struct(Subnet)16826_storage)" + "type": "t_mapping(t_bytes32,t_struct(Subnet)18377_storage)" }, { - "astId": 10529, + "astId": 11265, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "finalitiesMap", "offset": 0, "slot": "1", - "type": "t_mapping(t_uint256,t_struct(ParentFinality)16648_storage)" + "type": "t_mapping(t_uint256,t_struct(ParentFinality)18204_storage)" }, { - "astId": 10532, + "astId": 11268, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "latestParentHeight", "offset": 0, @@ -337,63 +332,63 @@ "type": "t_uint256" }, { - "astId": 10538, + "astId": 11274, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "postbox", "offset": 0, "slot": "3", - "type": "t_mapping(t_bytes32,t_struct(CrossMsg)16704_storage)" + "type": "t_mapping(t_bytes32,t_struct(CrossMsg)18260_storage)" }, { - "astId": 10542, + "astId": 11278, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "currentMembership", "offset": 0, "slot": "4", - "type": "t_struct(Membership)16953_storage" + "type": "t_struct(Membership)18504_storage" }, { - "astId": 10546, + "astId": 11282, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "lastMembership", "offset": 0, "slot": "6", - "type": "t_struct(Membership)16953_storage" + "type": "t_struct(Membership)18504_storage" }, { - "astId": 10552, + "astId": 11288, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "bottomUpCheckpoints", "offset": 0, "slot": "8", - "type": "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)16662_storage)" + "type": "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)18218_storage)" }, { - "astId": 10558, + "astId": 11294, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "bottomUpMsgBatches", "offset": 0, "slot": "9", - "type": "t_mapping(t_uint256,t_struct(BottomUpMsgBatch)16675_storage)" + "type": "t_mapping(t_uint256,t_struct(BottomUpMsgBatch)18231_storage)" }, { - "astId": 10562, + "astId": 11298, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "checkpointQuorumMap", "offset": 0, "slot": "10", - "type": "t_struct(QuorumMap)16789_storage" + "type": "t_struct(QuorumMap)18345_storage" }, { - "astId": 10566, + "astId": 11302, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "bottomUpMsgBatchQuorumMap", "offset": 0, "slot": "17", - "type": "t_struct(QuorumMap)16789_storage" + "type": "t_struct(QuorumMap)18345_storage" }, { - "astId": 10570, + "astId": 11306, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "subnetKeys", "offset": 0, @@ -401,188 +396,180 @@ "type": "t_array(t_bytes32)dyn_storage" }, { - "astId": 10574, + "astId": 11310, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "networkName", "offset": 0, "slot": "25", - "type": "t_struct(SubnetID)16809_storage" + "type": "t_struct(SubnetID)18363_storage" }, { - "astId": 10577, - "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", - "label": "minStake", - "offset": 0, - "slot": "27", - "type": "t_uint256" - }, - { - "astId": 10580, + "astId": 11313, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "minCrossMsgFee", "offset": 0, - "slot": "28", + "slot": "27", "type": "t_uint256" }, { - "astId": 10583, + "astId": 11316, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "majorityPercentage", "offset": 0, - "slot": "29", + "slot": "28", "type": "t_uint8" }, { - "astId": 10586, + "astId": 11319, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "bottomUpNonce", "offset": 1, - "slot": "29", + "slot": "28", "type": "t_uint64" }, { - "astId": 10589, + "astId": 11322, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "appliedTopDownNonce", "offset": 9, - "slot": "29", + "slot": "28", "type": "t_uint64" }, { - "astId": 10592, + "astId": 11325, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "totalSubnets", "offset": 17, - "slot": "29", + "slot": "28", "type": "t_uint64" }, { - "astId": 10595, + "astId": 11328, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "bottomUpCheckPeriod", "offset": 0, - "slot": "30", + "slot": "29", "type": "t_uint256" }, { - "astId": 10598, + "astId": 11331, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "bottomUpMsgBatchPeriod", "offset": 0, - "slot": "31", + "slot": "30", "type": "t_uint256" }, { - "astId": 10601, + "astId": 11334, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "maxMsgsPerBottomUpBatch", "offset": 0, - "slot": "32", + "slot": "31", "type": "t_uint64" }, { - "astId": 10605, + "astId": 11338, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "validatorsTracker", "offset": 0, - "slot": "33", - "type": "t_struct(ParentValidatorsTracker)16932_storage" + "slot": "32", + "type": "t_struct(ParentValidatorsTracker)18483_storage" }, { - "astId": 10608, + "astId": 11341, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "maxTreeDepth", "offset": 0, - "slot": "44", + "slot": "43", "type": "t_uint8" }, { - "astId": 10611, + "astId": 11344, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "generalPurposeCrossMsg", "offset": 1, - "slot": "44", + "slot": "43", "type": "t_bool" }, { - "astId": 10614, + "astId": 11347, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "multiLevelCrossMsg", "offset": 2, - "slot": "44", + "slot": "43", "type": "t_bool" }, { - "astId": 10617, + "astId": 11350, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "checkpointRelayerRewards", "offset": 3, - "slot": "44", + "slot": "43", "type": "t_bool" }, { - "astId": 10620, + "astId": 11353, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "crossMsgRelayerRewards", "offset": 4, - "slot": "44", + "slot": "43", "type": "t_bool" } ], - "numberOfBytes": "1440" + "numberOfBytes": "1408" }, - "t_struct(IPCAddress)16939_storage": { + "t_struct(IPCAddress)18490_storage": { "encoding": "inplace", "label": "struct IPCAddress", "members": [ { - "astId": 16935, + "astId": 18486, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "subnetId", "offset": 0, "slot": "0", - "type": "t_struct(SubnetID)16809_storage" + "type": "t_struct(SubnetID)18363_storage" }, { - "astId": 16938, + "astId": 18489, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "rawAddress", "offset": 0, "slot": "2", - "type": "t_struct(FvmAddress)16728_storage" + "type": "t_struct(FvmAddress)18284_storage" } ], "numberOfBytes": "128" }, - "t_struct(MaxPQ)15141_storage": { + "t_struct(MaxPQ)16697_storage": { "encoding": "inplace", "label": "struct MaxPQ", "members": [ { - "astId": 15140, + "astId": 16696, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "inner", "offset": 0, "slot": "0", - "type": "t_struct(PQ)16388_storage" + "type": "t_struct(PQ)17944_storage" } ], "numberOfBytes": "96" }, - "t_struct(Membership)16953_storage": { + "t_struct(Membership)18504_storage": { "encoding": "inplace", "label": "struct Membership", "members": [ { - "astId": 16950, + "astId": 18501, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "validators", "offset": 0, "slot": "0", - "type": "t_array(t_struct(Validator)16946_storage)dyn_storage" + "type": "t_array(t_struct(Validator)18497_storage)dyn_storage" }, { - "astId": 16952, + "astId": 18503, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "configurationNumber", "offset": 0, @@ -592,27 +579,27 @@ ], "numberOfBytes": "64" }, - "t_struct(MinPQ)15759_storage": { + "t_struct(MinPQ)17315_storage": { "encoding": "inplace", "label": "struct MinPQ", "members": [ { - "astId": 15758, + "astId": 17314, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "inner", "offset": 0, "slot": "0", - "type": "t_struct(PQ)16388_storage" + "type": "t_struct(PQ)17944_storage" } ], "numberOfBytes": "96" }, - "t_struct(PQ)16388_storage": { + "t_struct(PQ)17944_storage": { "encoding": "inplace", "label": "struct PQ", "members": [ { - "astId": 16377, + "astId": 17933, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "size", "offset": 0, @@ -620,7 +607,7 @@ "type": "t_uint16" }, { - "astId": 16382, + "astId": 17938, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "addressToPos", "offset": 0, @@ -628,7 +615,7 @@ "type": "t_mapping(t_address,t_uint16)" }, { - "astId": 16387, + "astId": 17943, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "posToAddress", "offset": 0, @@ -638,12 +625,12 @@ ], "numberOfBytes": "96" }, - "t_struct(ParentFinality)16648_storage": { + "t_struct(ParentFinality)18204_storage": { "encoding": "inplace", "label": "struct ParentFinality", "members": [ { - "astId": 16645, + "astId": 18201, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "height", "offset": 0, @@ -651,7 +638,7 @@ "type": "t_uint256" }, { - "astId": 16647, + "astId": 18203, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "blockHash", "offset": 0, @@ -661,35 +648,35 @@ ], "numberOfBytes": "64" }, - "t_struct(ParentValidatorsTracker)16932_storage": { + "t_struct(ParentValidatorsTracker)18483_storage": { "encoding": "inplace", "label": "struct ParentValidatorsTracker", "members": [ { - "astId": 16928, + "astId": 18479, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "validators", "offset": 0, "slot": "0", - "type": "t_struct(ValidatorSet)16925_storage" + "type": "t_struct(ValidatorSet)18476_storage" }, { - "astId": 16931, + "astId": 18482, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "changes", "offset": 0, "slot": "9", - "type": "t_struct(StakingChangeLog)16858_storage" + "type": "t_struct(StakingChangeLog)18409_storage" } ], "numberOfBytes": "352" }, - "t_struct(QuorumInfo)16758_storage": { + "t_struct(QuorumInfo)18314_storage": { "encoding": "inplace", "label": "struct QuorumInfo", "members": [ { - "astId": 16745, + "astId": 18301, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "hash", "offset": 0, @@ -697,7 +684,7 @@ "type": "t_bytes32" }, { - "astId": 16748, + "astId": 18304, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "rootHash", "offset": 0, @@ -705,7 +692,7 @@ "type": "t_bytes32" }, { - "astId": 16751, + "astId": 18307, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "threshold", "offset": 0, @@ -713,7 +700,7 @@ "type": "t_uint256" }, { - "astId": 16754, + "astId": 18310, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "currentWeight", "offset": 0, @@ -721,7 +708,7 @@ "type": "t_uint256" }, { - "astId": 16757, + "astId": 18313, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "reached", "offset": 0, @@ -731,20 +718,20 @@ ], "numberOfBytes": "160" }, - "t_struct(QuorumMap)16789_storage": { + "t_struct(QuorumMap)18345_storage": { "encoding": "inplace", "label": "struct QuorumMap", "members": [ { - "astId": 16762, + "astId": 18318, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "quorumObjKind", "offset": 0, "slot": "0", - "type": "t_enum(QuorumObjKind)16742" + "type": "t_enum(QuorumObjKind)18298" }, { - "astId": 16765, + "astId": 18321, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "retentionHeight", "offset": 0, @@ -752,31 +739,31 @@ "type": "t_uint256" }, { - "astId": 16771, + "astId": 18327, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "quorumInfo", "offset": 0, "slot": "2", - "type": "t_mapping(t_uint256,t_struct(QuorumInfo)16758_storage)" + "type": "t_mapping(t_uint256,t_struct(QuorumInfo)18314_storage)" }, { - "astId": 16775, + "astId": 18331, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "incompleteQuorums", "offset": 0, "slot": "3", - "type": "t_struct(UintSet)3508_storage" + "type": "t_struct(UintSet)3971_storage" }, { - "astId": 16781, + "astId": 18337, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "quorumSignatureSenders", "offset": 0, "slot": "5", - "type": "t_mapping(t_uint256,t_struct(AddressSet)3351_storage)" + "type": "t_mapping(t_uint256,t_struct(AddressSet)3814_storage)" }, { - "astId": 16788, + "astId": 18344, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "quorumSignatures", "offset": 0, @@ -786,12 +773,12 @@ ], "numberOfBytes": "224" }, - "t_struct(Set)3036_storage": { + "t_struct(Set)3499_storage": { "encoding": "inplace", "label": "struct EnumerableSet.Set", "members": [ { - "astId": 3031, + "astId": 3494, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "_values", "offset": 0, @@ -799,7 +786,7 @@ "type": "t_array(t_bytes32)dyn_storage" }, { - "astId": 3035, + "astId": 3498, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "_indexes", "offset": 0, @@ -809,20 +796,20 @@ ], "numberOfBytes": "64" }, - "t_struct(StakingChange)16839_storage": { + "t_struct(StakingChange)18390_storage": { "encoding": "inplace", "label": "struct StakingChange", "members": [ { - "astId": 16834, + "astId": 18385, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "op", "offset": 0, "slot": "0", - "type": "t_enum(StakingOperation)16831" + "type": "t_enum(StakingOperation)18382" }, { - "astId": 16836, + "astId": 18387, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "payload", "offset": 0, @@ -830,7 +817,7 @@ "type": "t_bytes_storage" }, { - "astId": 16838, + "astId": 18389, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "validator", "offset": 0, @@ -840,12 +827,12 @@ ], "numberOfBytes": "96" }, - "t_struct(StakingChangeLog)16858_storage": { + "t_struct(StakingChangeLog)18409_storage": { "encoding": "inplace", "label": "struct StakingChangeLog", "members": [ { - "astId": 16848, + "astId": 18399, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "nextConfigurationNumber", "offset": 0, @@ -853,7 +840,7 @@ "type": "t_uint64" }, { - "astId": 16851, + "astId": 18402, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "startConfigurationNumber", "offset": 8, @@ -861,38 +848,38 @@ "type": "t_uint64" }, { - "astId": 16857, + "astId": 18408, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "changes", "offset": 0, "slot": "1", - "type": "t_mapping(t_uint64,t_struct(StakingChange)16839_storage)" + "type": "t_mapping(t_uint64,t_struct(StakingChange)18390_storage)" } ], "numberOfBytes": "64" }, - "t_struct(StorableMsg)16721_storage": { + "t_struct(StorableMsg)18277_storage": { "encoding": "inplace", "label": "struct StorableMsg", "members": [ { - "astId": 16707, + "astId": 18263, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "from", "offset": 0, "slot": "0", - "type": "t_struct(IPCAddress)16939_storage" + "type": "t_struct(IPCAddress)18490_storage" }, { - "astId": 16710, + "astId": 18266, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "to", "offset": 0, "slot": "4", - "type": "t_struct(IPCAddress)16939_storage" + "type": "t_struct(IPCAddress)18490_storage" }, { - "astId": 16712, + "astId": 18268, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "value", "offset": 0, @@ -900,7 +887,7 @@ "type": "t_uint256" }, { - "astId": 16714, + "astId": 18270, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "nonce", "offset": 0, @@ -908,7 +895,7 @@ "type": "t_uint64" }, { - "astId": 16716, + "astId": 18272, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "method", "offset": 8, @@ -916,7 +903,7 @@ "type": "t_bytes4" }, { - "astId": 16718, + "astId": 18274, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "params", "offset": 0, @@ -924,7 +911,7 @@ "type": "t_bytes_storage" }, { - "astId": 16720, + "astId": 18276, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "fee", "offset": 0, @@ -934,12 +921,12 @@ ], "numberOfBytes": "384" }, - "t_struct(Subnet)16826_storage": { + "t_struct(Subnet)18377_storage": { "encoding": "inplace", "label": "struct Subnet", "members": [ { - "astId": 16811, + "astId": 18365, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "stake", "offset": 0, @@ -947,7 +934,7 @@ "type": "t_uint256" }, { - "astId": 16813, + "astId": 18367, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "genesisEpoch", "offset": 0, @@ -955,7 +942,7 @@ "type": "t_uint256" }, { - "astId": 16815, + "astId": 18369, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "circSupply", "offset": 0, @@ -963,7 +950,7 @@ "type": "t_uint256" }, { - "astId": 16817, + "astId": 18371, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "topDownNonce", "offset": 0, @@ -971,7 +958,7 @@ "type": "t_uint64" }, { - "astId": 16819, + "astId": 18373, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "appliedBottomUpNonce", "offset": 8, @@ -979,30 +966,22 @@ "type": "t_uint64" }, { - "astId": 16822, - "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", - "label": "status", - "offset": 16, - "slot": "3", - "type": "t_enum(Status)5184" - }, - { - "astId": 16825, + "astId": 18376, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "id", "offset": 0, "slot": "4", - "type": "t_struct(SubnetID)16809_storage" + "type": "t_struct(SubnetID)18363_storage" } ], "numberOfBytes": "192" }, - "t_struct(SubnetID)16809_storage": { + "t_struct(SubnetID)18363_storage": { "encoding": "inplace", "label": "struct SubnetID", "members": [ { - "astId": 16804, + "astId": 18358, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "root", "offset": 0, @@ -1010,7 +989,7 @@ "type": "t_uint64" }, { - "astId": 16808, + "astId": 18362, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "route", "offset": 0, @@ -1020,27 +999,27 @@ ], "numberOfBytes": "64" }, - "t_struct(UintSet)3508_storage": { + "t_struct(UintSet)3971_storage": { "encoding": "inplace", "label": "struct EnumerableSet.UintSet", "members": [ { - "astId": 3507, + "astId": 3970, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "_inner", "offset": 0, "slot": "0", - "type": "t_struct(Set)3036_storage" + "type": "t_struct(Set)3499_storage" } ], "numberOfBytes": "64" }, - "t_struct(Validator)16946_storage": { + "t_struct(Validator)18497_storage": { "encoding": "inplace", "label": "struct Validator", "members": [ { - "astId": 16941, + "astId": 18492, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "weight", "offset": 0, @@ -1048,7 +1027,7 @@ "type": "t_uint256" }, { - "astId": 16943, + "astId": 18494, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "addr", "offset": 0, @@ -1056,7 +1035,7 @@ "type": "t_address" }, { - "astId": 16945, + "astId": 18496, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "metadata", "offset": 0, @@ -1066,12 +1045,12 @@ ], "numberOfBytes": "96" }, - "t_struct(ValidatorInfo)16896_storage": { + "t_struct(ValidatorInfo)18447_storage": { "encoding": "inplace", "label": "struct ValidatorInfo", "members": [ { - "astId": 16888, + "astId": 18439, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "federatedPower", "offset": 0, @@ -1079,7 +1058,7 @@ "type": "t_uint256" }, { - "astId": 16890, + "astId": 18441, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "confirmedCollateral", "offset": 0, @@ -1087,7 +1066,7 @@ "type": "t_uint256" }, { - "astId": 16892, + "astId": 18443, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "totalCollateral", "offset": 0, @@ -1095,7 +1074,7 @@ "type": "t_uint256" }, { - "astId": 16895, + "astId": 18446, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "metadata", "offset": 0, @@ -1105,20 +1084,20 @@ ], "numberOfBytes": "128" }, - "t_struct(ValidatorSet)16925_storage": { + "t_struct(ValidatorSet)18476_storage": { "encoding": "inplace", "label": "struct ValidatorSet", "members": [ { - "astId": 16904, + "astId": 18455, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "permissionMode", "offset": 0, "slot": "0", - "type": "t_enum(PermissionMode)16900" + "type": "t_enum(PermissionMode)18451" }, { - "astId": 16907, + "astId": 18458, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "activeLimit", "offset": 1, @@ -1126,7 +1105,7 @@ "type": "t_uint16" }, { - "astId": 16910, + "astId": 18461, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "totalConfirmedCollateral", "offset": 0, @@ -1134,28 +1113,28 @@ "type": "t_uint256" }, { - "astId": 16916, + "astId": 18467, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "validators", "offset": 0, "slot": "2", - "type": "t_mapping(t_address,t_struct(ValidatorInfo)16896_storage)" + "type": "t_mapping(t_address,t_struct(ValidatorInfo)18447_storage)" }, { - "astId": 16920, + "astId": 18471, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "activeValidators", "offset": 0, "slot": "3", - "type": "t_struct(MinPQ)15759_storage" + "type": "t_struct(MinPQ)17315_storage" }, { - "astId": 16924, + "astId": 18475, "contract": "src/lib/LibGatewayActorStorage.sol:GatewayActorModifiers", "label": "waitingValidators", "offset": 0, "slot": "6", - "type": "t_struct(MaxPQ)15141_storage" + "type": "t_struct(MaxPQ)16697_storage" } ], "numberOfBytes": "288" diff --git a/.storage-layouts/GatewayDiamond.json b/.storage-layouts/GatewayDiamond.json index 56648e0af..29f630823 100644 --- a/.storage-layouts/GatewayDiamond.json +++ b/.storage-layouts/GatewayDiamond.json @@ -1,12 +1,12 @@ { "storage": [ { - "astId": 3690, + "astId": 4153, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "s", "offset": 0, "slot": "0", - "type": "t_struct(GatewayActorStorage)10621_storage" + "type": "t_struct(GatewayActorStorage)11354_storage" } ], "types": { @@ -27,14 +27,14 @@ "label": "bytes32[]", "numberOfBytes": "32" }, - "t_array(t_struct(CrossMsg)16704_storage)dyn_storage": { - "base": "t_struct(CrossMsg)16704_storage", + "t_array(t_struct(CrossMsg)18260_storage)dyn_storage": { + "base": "t_struct(CrossMsg)18260_storage", "encoding": "dynamic_array", "label": "struct CrossMsg[]", "numberOfBytes": "32" }, - "t_array(t_struct(Validator)16946_storage)dyn_storage": { - "base": "t_struct(Validator)16946_storage", + "t_array(t_struct(Validator)18497_storage)dyn_storage": { + "base": "t_struct(Validator)18497_storage", "encoding": "dynamic_array", "label": "struct Validator[]", "numberOfBytes": "32" @@ -59,26 +59,21 @@ "label": "bytes", "numberOfBytes": "32" }, - "t_enum(PermissionMode)16900": { + "t_enum(PermissionMode)18451": { "encoding": "inplace", "label": "enum PermissionMode", "numberOfBytes": "1" }, - "t_enum(QuorumObjKind)16742": { + "t_enum(QuorumObjKind)18298": { "encoding": "inplace", "label": "enum QuorumObjKind", "numberOfBytes": "1" }, - "t_enum(StakingOperation)16831": { + "t_enum(StakingOperation)18382": { "encoding": "inplace", "label": "enum StakingOperation", "numberOfBytes": "1" }, - "t_enum(Status)5184": { - "encoding": "inplace", - "label": "enum Status", - "numberOfBytes": "1" - }, "t_mapping(t_address,t_bytes_storage)": { "encoding": "mapping", "key": "t_address", @@ -86,12 +81,12 @@ "numberOfBytes": "32", "value": "t_bytes_storage" }, - "t_mapping(t_address,t_struct(ValidatorInfo)16896_storage)": { + "t_mapping(t_address,t_struct(ValidatorInfo)18447_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct ValidatorInfo)", "numberOfBytes": "32", - "value": "t_struct(ValidatorInfo)16896_storage" + "value": "t_struct(ValidatorInfo)18447_storage" }, "t_mapping(t_address,t_uint16)": { "encoding": "mapping", @@ -100,19 +95,19 @@ "numberOfBytes": "32", "value": "t_uint16" }, - "t_mapping(t_bytes32,t_struct(CrossMsg)16704_storage)": { + "t_mapping(t_bytes32,t_struct(CrossMsg)18260_storage)": { "encoding": "mapping", "key": "t_bytes32", "label": "mapping(bytes32 => struct CrossMsg)", "numberOfBytes": "32", - "value": "t_struct(CrossMsg)16704_storage" + "value": "t_struct(CrossMsg)18260_storage" }, - "t_mapping(t_bytes32,t_struct(Subnet)16826_storage)": { + "t_mapping(t_bytes32,t_struct(Subnet)18377_storage)": { "encoding": "mapping", "key": "t_bytes32", "label": "mapping(bytes32 => struct Subnet)", "numberOfBytes": "32", - "value": "t_struct(Subnet)16826_storage" + "value": "t_struct(Subnet)18377_storage" }, "t_mapping(t_bytes32,t_uint256)": { "encoding": "mapping", @@ -135,77 +130,77 @@ "numberOfBytes": "32", "value": "t_mapping(t_address,t_bytes_storage)" }, - "t_mapping(t_uint256,t_struct(AddressSet)3351_storage)": { + "t_mapping(t_uint256,t_struct(AddressSet)3814_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => struct EnumerableSet.AddressSet)", "numberOfBytes": "32", - "value": "t_struct(AddressSet)3351_storage" + "value": "t_struct(AddressSet)3814_storage" }, - "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)16662_storage)": { + "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)18218_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => struct BottomUpCheckpoint)", "numberOfBytes": "32", - "value": "t_struct(BottomUpCheckpoint)16662_storage" + "value": "t_struct(BottomUpCheckpoint)18218_storage" }, - "t_mapping(t_uint256,t_struct(BottomUpMsgBatch)16675_storage)": { + "t_mapping(t_uint256,t_struct(BottomUpMsgBatch)18231_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => struct BottomUpMsgBatch)", "numberOfBytes": "32", - "value": "t_struct(BottomUpMsgBatch)16675_storage" + "value": "t_struct(BottomUpMsgBatch)18231_storage" }, - "t_mapping(t_uint256,t_struct(ParentFinality)16648_storage)": { + "t_mapping(t_uint256,t_struct(ParentFinality)18204_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => struct ParentFinality)", "numberOfBytes": "32", - "value": "t_struct(ParentFinality)16648_storage" + "value": "t_struct(ParentFinality)18204_storage" }, - "t_mapping(t_uint256,t_struct(QuorumInfo)16758_storage)": { + "t_mapping(t_uint256,t_struct(QuorumInfo)18314_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => struct QuorumInfo)", "numberOfBytes": "32", - "value": "t_struct(QuorumInfo)16758_storage" + "value": "t_struct(QuorumInfo)18314_storage" }, - "t_mapping(t_uint64,t_struct(StakingChange)16839_storage)": { + "t_mapping(t_uint64,t_struct(StakingChange)18390_storage)": { "encoding": "mapping", "key": "t_uint64", "label": "mapping(uint64 => struct StakingChange)", "numberOfBytes": "32", - "value": "t_struct(StakingChange)16839_storage" + "value": "t_struct(StakingChange)18390_storage" }, - "t_struct(AddressSet)3351_storage": { + "t_struct(AddressSet)3814_storage": { "encoding": "inplace", "label": "struct EnumerableSet.AddressSet", "members": [ { - "astId": 3350, + "astId": 3813, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "_inner", "offset": 0, "slot": "0", - "type": "t_struct(Set)3036_storage" + "type": "t_struct(Set)3499_storage" } ], "numberOfBytes": "64" }, - "t_struct(BottomUpCheckpoint)16662_storage": { + "t_struct(BottomUpCheckpoint)18218_storage": { "encoding": "inplace", "label": "struct BottomUpCheckpoint", "members": [ { - "astId": 16652, + "astId": 18208, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "subnetID", "offset": 0, "slot": "0", - "type": "t_struct(SubnetID)16809_storage" + "type": "t_struct(SubnetID)18363_storage" }, { - "astId": 16655, + "astId": 18211, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "blockHeight", "offset": 0, @@ -213,7 +208,7 @@ "type": "t_uint256" }, { - "astId": 16658, + "astId": 18214, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "blockHash", "offset": 0, @@ -221,7 +216,7 @@ "type": "t_bytes32" }, { - "astId": 16661, + "astId": 18217, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "nextConfigurationNumber", "offset": 0, @@ -231,20 +226,20 @@ ], "numberOfBytes": "160" }, - "t_struct(BottomUpMsgBatch)16675_storage": { + "t_struct(BottomUpMsgBatch)18231_storage": { "encoding": "inplace", "label": "struct BottomUpMsgBatch", "members": [ { - "astId": 16666, + "astId": 18222, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "subnetID", "offset": 0, "slot": "0", - "type": "t_struct(SubnetID)16809_storage" + "type": "t_struct(SubnetID)18363_storage" }, { - "astId": 16669, + "astId": 18225, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "blockHeight", "offset": 0, @@ -252,30 +247,30 @@ "type": "t_uint256" }, { - "astId": 16674, + "astId": 18230, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "msgs", "offset": 0, "slot": "3", - "type": "t_array(t_struct(CrossMsg)16704_storage)dyn_storage" + "type": "t_array(t_struct(CrossMsg)18260_storage)dyn_storage" } ], "numberOfBytes": "128" }, - "t_struct(CrossMsg)16704_storage": { + "t_struct(CrossMsg)18260_storage": { "encoding": "inplace", "label": "struct CrossMsg", "members": [ { - "astId": 16701, + "astId": 18257, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "message", "offset": 0, "slot": "0", - "type": "t_struct(StorableMsg)16721_storage" + "type": "t_struct(StorableMsg)18277_storage" }, { - "astId": 16703, + "astId": 18259, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "wrapped", "offset": 0, @@ -285,12 +280,12 @@ ], "numberOfBytes": "416" }, - "t_struct(FvmAddress)16728_storage": { + "t_struct(FvmAddress)18284_storage": { "encoding": "inplace", "label": "struct FvmAddress", "members": [ { - "astId": 16725, + "astId": 18281, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "addrType", "offset": 0, @@ -298,7 +293,7 @@ "type": "t_uint8" }, { - "astId": 16727, + "astId": 18283, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "payload", "offset": 0, @@ -308,28 +303,28 @@ ], "numberOfBytes": "64" }, - "t_struct(GatewayActorStorage)10621_storage": { + "t_struct(GatewayActorStorage)11354_storage": { "encoding": "inplace", "label": "struct GatewayActorStorage", "members": [ { - "astId": 10523, + "astId": 11259, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "subnets", "offset": 0, "slot": "0", - "type": "t_mapping(t_bytes32,t_struct(Subnet)16826_storage)" + "type": "t_mapping(t_bytes32,t_struct(Subnet)18377_storage)" }, { - "astId": 10529, + "astId": 11265, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "finalitiesMap", "offset": 0, "slot": "1", - "type": "t_mapping(t_uint256,t_struct(ParentFinality)16648_storage)" + "type": "t_mapping(t_uint256,t_struct(ParentFinality)18204_storage)" }, { - "astId": 10532, + "astId": 11268, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "latestParentHeight", "offset": 0, @@ -337,63 +332,63 @@ "type": "t_uint256" }, { - "astId": 10538, + "astId": 11274, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "postbox", "offset": 0, "slot": "3", - "type": "t_mapping(t_bytes32,t_struct(CrossMsg)16704_storage)" + "type": "t_mapping(t_bytes32,t_struct(CrossMsg)18260_storage)" }, { - "astId": 10542, + "astId": 11278, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "currentMembership", "offset": 0, "slot": "4", - "type": "t_struct(Membership)16953_storage" + "type": "t_struct(Membership)18504_storage" }, { - "astId": 10546, + "astId": 11282, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "lastMembership", "offset": 0, "slot": "6", - "type": "t_struct(Membership)16953_storage" + "type": "t_struct(Membership)18504_storage" }, { - "astId": 10552, + "astId": 11288, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "bottomUpCheckpoints", "offset": 0, "slot": "8", - "type": "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)16662_storage)" + "type": "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)18218_storage)" }, { - "astId": 10558, + "astId": 11294, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "bottomUpMsgBatches", "offset": 0, "slot": "9", - "type": "t_mapping(t_uint256,t_struct(BottomUpMsgBatch)16675_storage)" + "type": "t_mapping(t_uint256,t_struct(BottomUpMsgBatch)18231_storage)" }, { - "astId": 10562, + "astId": 11298, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "checkpointQuorumMap", "offset": 0, "slot": "10", - "type": "t_struct(QuorumMap)16789_storage" + "type": "t_struct(QuorumMap)18345_storage" }, { - "astId": 10566, + "astId": 11302, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "bottomUpMsgBatchQuorumMap", "offset": 0, "slot": "17", - "type": "t_struct(QuorumMap)16789_storage" + "type": "t_struct(QuorumMap)18345_storage" }, { - "astId": 10570, + "astId": 11306, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "subnetKeys", "offset": 0, @@ -401,188 +396,180 @@ "type": "t_array(t_bytes32)dyn_storage" }, { - "astId": 10574, + "astId": 11310, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "networkName", "offset": 0, "slot": "25", - "type": "t_struct(SubnetID)16809_storage" + "type": "t_struct(SubnetID)18363_storage" }, { - "astId": 10577, - "contract": "src/GatewayDiamond.sol:GatewayDiamond", - "label": "minStake", - "offset": 0, - "slot": "27", - "type": "t_uint256" - }, - { - "astId": 10580, + "astId": 11313, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "minCrossMsgFee", "offset": 0, - "slot": "28", + "slot": "27", "type": "t_uint256" }, { - "astId": 10583, + "astId": 11316, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "majorityPercentage", "offset": 0, - "slot": "29", + "slot": "28", "type": "t_uint8" }, { - "astId": 10586, + "astId": 11319, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "bottomUpNonce", "offset": 1, - "slot": "29", + "slot": "28", "type": "t_uint64" }, { - "astId": 10589, + "astId": 11322, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "appliedTopDownNonce", "offset": 9, - "slot": "29", + "slot": "28", "type": "t_uint64" }, { - "astId": 10592, + "astId": 11325, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "totalSubnets", "offset": 17, - "slot": "29", + "slot": "28", "type": "t_uint64" }, { - "astId": 10595, + "astId": 11328, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "bottomUpCheckPeriod", "offset": 0, - "slot": "30", + "slot": "29", "type": "t_uint256" }, { - "astId": 10598, + "astId": 11331, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "bottomUpMsgBatchPeriod", "offset": 0, - "slot": "31", + "slot": "30", "type": "t_uint256" }, { - "astId": 10601, + "astId": 11334, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "maxMsgsPerBottomUpBatch", "offset": 0, - "slot": "32", + "slot": "31", "type": "t_uint64" }, { - "astId": 10605, + "astId": 11338, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "validatorsTracker", "offset": 0, - "slot": "33", - "type": "t_struct(ParentValidatorsTracker)16932_storage" + "slot": "32", + "type": "t_struct(ParentValidatorsTracker)18483_storage" }, { - "astId": 10608, + "astId": 11341, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "maxTreeDepth", "offset": 0, - "slot": "44", + "slot": "43", "type": "t_uint8" }, { - "astId": 10611, + "astId": 11344, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "generalPurposeCrossMsg", "offset": 1, - "slot": "44", + "slot": "43", "type": "t_bool" }, { - "astId": 10614, + "astId": 11347, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "multiLevelCrossMsg", "offset": 2, - "slot": "44", + "slot": "43", "type": "t_bool" }, { - "astId": 10617, + "astId": 11350, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "checkpointRelayerRewards", "offset": 3, - "slot": "44", + "slot": "43", "type": "t_bool" }, { - "astId": 10620, + "astId": 11353, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "crossMsgRelayerRewards", "offset": 4, - "slot": "44", + "slot": "43", "type": "t_bool" } ], - "numberOfBytes": "1440" + "numberOfBytes": "1408" }, - "t_struct(IPCAddress)16939_storage": { + "t_struct(IPCAddress)18490_storage": { "encoding": "inplace", "label": "struct IPCAddress", "members": [ { - "astId": 16935, + "astId": 18486, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "subnetId", "offset": 0, "slot": "0", - "type": "t_struct(SubnetID)16809_storage" + "type": "t_struct(SubnetID)18363_storage" }, { - "astId": 16938, + "astId": 18489, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "rawAddress", "offset": 0, "slot": "2", - "type": "t_struct(FvmAddress)16728_storage" + "type": "t_struct(FvmAddress)18284_storage" } ], "numberOfBytes": "128" }, - "t_struct(MaxPQ)15141_storage": { + "t_struct(MaxPQ)16697_storage": { "encoding": "inplace", "label": "struct MaxPQ", "members": [ { - "astId": 15140, + "astId": 16696, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "inner", "offset": 0, "slot": "0", - "type": "t_struct(PQ)16388_storage" + "type": "t_struct(PQ)17944_storage" } ], "numberOfBytes": "96" }, - "t_struct(Membership)16953_storage": { + "t_struct(Membership)18504_storage": { "encoding": "inplace", "label": "struct Membership", "members": [ { - "astId": 16950, + "astId": 18501, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "validators", "offset": 0, "slot": "0", - "type": "t_array(t_struct(Validator)16946_storage)dyn_storage" + "type": "t_array(t_struct(Validator)18497_storage)dyn_storage" }, { - "astId": 16952, + "astId": 18503, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "configurationNumber", "offset": 0, @@ -592,27 +579,27 @@ ], "numberOfBytes": "64" }, - "t_struct(MinPQ)15759_storage": { + "t_struct(MinPQ)17315_storage": { "encoding": "inplace", "label": "struct MinPQ", "members": [ { - "astId": 15758, + "astId": 17314, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "inner", "offset": 0, "slot": "0", - "type": "t_struct(PQ)16388_storage" + "type": "t_struct(PQ)17944_storage" } ], "numberOfBytes": "96" }, - "t_struct(PQ)16388_storage": { + "t_struct(PQ)17944_storage": { "encoding": "inplace", "label": "struct PQ", "members": [ { - "astId": 16377, + "astId": 17933, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "size", "offset": 0, @@ -620,7 +607,7 @@ "type": "t_uint16" }, { - "astId": 16382, + "astId": 17938, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "addressToPos", "offset": 0, @@ -628,7 +615,7 @@ "type": "t_mapping(t_address,t_uint16)" }, { - "astId": 16387, + "astId": 17943, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "posToAddress", "offset": 0, @@ -638,12 +625,12 @@ ], "numberOfBytes": "96" }, - "t_struct(ParentFinality)16648_storage": { + "t_struct(ParentFinality)18204_storage": { "encoding": "inplace", "label": "struct ParentFinality", "members": [ { - "astId": 16645, + "astId": 18201, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "height", "offset": 0, @@ -651,7 +638,7 @@ "type": "t_uint256" }, { - "astId": 16647, + "astId": 18203, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "blockHash", "offset": 0, @@ -661,35 +648,35 @@ ], "numberOfBytes": "64" }, - "t_struct(ParentValidatorsTracker)16932_storage": { + "t_struct(ParentValidatorsTracker)18483_storage": { "encoding": "inplace", "label": "struct ParentValidatorsTracker", "members": [ { - "astId": 16928, + "astId": 18479, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "validators", "offset": 0, "slot": "0", - "type": "t_struct(ValidatorSet)16925_storage" + "type": "t_struct(ValidatorSet)18476_storage" }, { - "astId": 16931, + "astId": 18482, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "changes", "offset": 0, "slot": "9", - "type": "t_struct(StakingChangeLog)16858_storage" + "type": "t_struct(StakingChangeLog)18409_storage" } ], "numberOfBytes": "352" }, - "t_struct(QuorumInfo)16758_storage": { + "t_struct(QuorumInfo)18314_storage": { "encoding": "inplace", "label": "struct QuorumInfo", "members": [ { - "astId": 16745, + "astId": 18301, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "hash", "offset": 0, @@ -697,7 +684,7 @@ "type": "t_bytes32" }, { - "astId": 16748, + "astId": 18304, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "rootHash", "offset": 0, @@ -705,7 +692,7 @@ "type": "t_bytes32" }, { - "astId": 16751, + "astId": 18307, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "threshold", "offset": 0, @@ -713,7 +700,7 @@ "type": "t_uint256" }, { - "astId": 16754, + "astId": 18310, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "currentWeight", "offset": 0, @@ -721,7 +708,7 @@ "type": "t_uint256" }, { - "astId": 16757, + "astId": 18313, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "reached", "offset": 0, @@ -731,20 +718,20 @@ ], "numberOfBytes": "160" }, - "t_struct(QuorumMap)16789_storage": { + "t_struct(QuorumMap)18345_storage": { "encoding": "inplace", "label": "struct QuorumMap", "members": [ { - "astId": 16762, + "astId": 18318, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "quorumObjKind", "offset": 0, "slot": "0", - "type": "t_enum(QuorumObjKind)16742" + "type": "t_enum(QuorumObjKind)18298" }, { - "astId": 16765, + "astId": 18321, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "retentionHeight", "offset": 0, @@ -752,31 +739,31 @@ "type": "t_uint256" }, { - "astId": 16771, + "astId": 18327, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "quorumInfo", "offset": 0, "slot": "2", - "type": "t_mapping(t_uint256,t_struct(QuorumInfo)16758_storage)" + "type": "t_mapping(t_uint256,t_struct(QuorumInfo)18314_storage)" }, { - "astId": 16775, + "astId": 18331, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "incompleteQuorums", "offset": 0, "slot": "3", - "type": "t_struct(UintSet)3508_storage" + "type": "t_struct(UintSet)3971_storage" }, { - "astId": 16781, + "astId": 18337, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "quorumSignatureSenders", "offset": 0, "slot": "5", - "type": "t_mapping(t_uint256,t_struct(AddressSet)3351_storage)" + "type": "t_mapping(t_uint256,t_struct(AddressSet)3814_storage)" }, { - "astId": 16788, + "astId": 18344, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "quorumSignatures", "offset": 0, @@ -786,12 +773,12 @@ ], "numberOfBytes": "224" }, - "t_struct(Set)3036_storage": { + "t_struct(Set)3499_storage": { "encoding": "inplace", "label": "struct EnumerableSet.Set", "members": [ { - "astId": 3031, + "astId": 3494, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "_values", "offset": 0, @@ -799,7 +786,7 @@ "type": "t_array(t_bytes32)dyn_storage" }, { - "astId": 3035, + "astId": 3498, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "_indexes", "offset": 0, @@ -809,20 +796,20 @@ ], "numberOfBytes": "64" }, - "t_struct(StakingChange)16839_storage": { + "t_struct(StakingChange)18390_storage": { "encoding": "inplace", "label": "struct StakingChange", "members": [ { - "astId": 16834, + "astId": 18385, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "op", "offset": 0, "slot": "0", - "type": "t_enum(StakingOperation)16831" + "type": "t_enum(StakingOperation)18382" }, { - "astId": 16836, + "astId": 18387, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "payload", "offset": 0, @@ -830,7 +817,7 @@ "type": "t_bytes_storage" }, { - "astId": 16838, + "astId": 18389, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "validator", "offset": 0, @@ -840,12 +827,12 @@ ], "numberOfBytes": "96" }, - "t_struct(StakingChangeLog)16858_storage": { + "t_struct(StakingChangeLog)18409_storage": { "encoding": "inplace", "label": "struct StakingChangeLog", "members": [ { - "astId": 16848, + "astId": 18399, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "nextConfigurationNumber", "offset": 0, @@ -853,7 +840,7 @@ "type": "t_uint64" }, { - "astId": 16851, + "astId": 18402, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "startConfigurationNumber", "offset": 8, @@ -861,38 +848,38 @@ "type": "t_uint64" }, { - "astId": 16857, + "astId": 18408, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "changes", "offset": 0, "slot": "1", - "type": "t_mapping(t_uint64,t_struct(StakingChange)16839_storage)" + "type": "t_mapping(t_uint64,t_struct(StakingChange)18390_storage)" } ], "numberOfBytes": "64" }, - "t_struct(StorableMsg)16721_storage": { + "t_struct(StorableMsg)18277_storage": { "encoding": "inplace", "label": "struct StorableMsg", "members": [ { - "astId": 16707, + "astId": 18263, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "from", "offset": 0, "slot": "0", - "type": "t_struct(IPCAddress)16939_storage" + "type": "t_struct(IPCAddress)18490_storage" }, { - "astId": 16710, + "astId": 18266, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "to", "offset": 0, "slot": "4", - "type": "t_struct(IPCAddress)16939_storage" + "type": "t_struct(IPCAddress)18490_storage" }, { - "astId": 16712, + "astId": 18268, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "value", "offset": 0, @@ -900,7 +887,7 @@ "type": "t_uint256" }, { - "astId": 16714, + "astId": 18270, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "nonce", "offset": 0, @@ -908,7 +895,7 @@ "type": "t_uint64" }, { - "astId": 16716, + "astId": 18272, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "method", "offset": 8, @@ -916,7 +903,7 @@ "type": "t_bytes4" }, { - "astId": 16718, + "astId": 18274, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "params", "offset": 0, @@ -924,7 +911,7 @@ "type": "t_bytes_storage" }, { - "astId": 16720, + "astId": 18276, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "fee", "offset": 0, @@ -934,12 +921,12 @@ ], "numberOfBytes": "384" }, - "t_struct(Subnet)16826_storage": { + "t_struct(Subnet)18377_storage": { "encoding": "inplace", "label": "struct Subnet", "members": [ { - "astId": 16811, + "astId": 18365, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "stake", "offset": 0, @@ -947,7 +934,7 @@ "type": "t_uint256" }, { - "astId": 16813, + "astId": 18367, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "genesisEpoch", "offset": 0, @@ -955,7 +942,7 @@ "type": "t_uint256" }, { - "astId": 16815, + "astId": 18369, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "circSupply", "offset": 0, @@ -963,7 +950,7 @@ "type": "t_uint256" }, { - "astId": 16817, + "astId": 18371, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "topDownNonce", "offset": 0, @@ -971,7 +958,7 @@ "type": "t_uint64" }, { - "astId": 16819, + "astId": 18373, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "appliedBottomUpNonce", "offset": 8, @@ -979,30 +966,22 @@ "type": "t_uint64" }, { - "astId": 16822, - "contract": "src/GatewayDiamond.sol:GatewayDiamond", - "label": "status", - "offset": 16, - "slot": "3", - "type": "t_enum(Status)5184" - }, - { - "astId": 16825, + "astId": 18376, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "id", "offset": 0, "slot": "4", - "type": "t_struct(SubnetID)16809_storage" + "type": "t_struct(SubnetID)18363_storage" } ], "numberOfBytes": "192" }, - "t_struct(SubnetID)16809_storage": { + "t_struct(SubnetID)18363_storage": { "encoding": "inplace", "label": "struct SubnetID", "members": [ { - "astId": 16804, + "astId": 18358, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "root", "offset": 0, @@ -1010,7 +989,7 @@ "type": "t_uint64" }, { - "astId": 16808, + "astId": 18362, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "route", "offset": 0, @@ -1020,27 +999,27 @@ ], "numberOfBytes": "64" }, - "t_struct(UintSet)3508_storage": { + "t_struct(UintSet)3971_storage": { "encoding": "inplace", "label": "struct EnumerableSet.UintSet", "members": [ { - "astId": 3507, + "astId": 3970, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "_inner", "offset": 0, "slot": "0", - "type": "t_struct(Set)3036_storage" + "type": "t_struct(Set)3499_storage" } ], "numberOfBytes": "64" }, - "t_struct(Validator)16946_storage": { + "t_struct(Validator)18497_storage": { "encoding": "inplace", "label": "struct Validator", "members": [ { - "astId": 16941, + "astId": 18492, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "weight", "offset": 0, @@ -1048,7 +1027,7 @@ "type": "t_uint256" }, { - "astId": 16943, + "astId": 18494, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "addr", "offset": 0, @@ -1056,7 +1035,7 @@ "type": "t_address" }, { - "astId": 16945, + "astId": 18496, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "metadata", "offset": 0, @@ -1066,12 +1045,12 @@ ], "numberOfBytes": "96" }, - "t_struct(ValidatorInfo)16896_storage": { + "t_struct(ValidatorInfo)18447_storage": { "encoding": "inplace", "label": "struct ValidatorInfo", "members": [ { - "astId": 16888, + "astId": 18439, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "federatedPower", "offset": 0, @@ -1079,7 +1058,7 @@ "type": "t_uint256" }, { - "astId": 16890, + "astId": 18441, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "confirmedCollateral", "offset": 0, @@ -1087,7 +1066,7 @@ "type": "t_uint256" }, { - "astId": 16892, + "astId": 18443, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "totalCollateral", "offset": 0, @@ -1095,7 +1074,7 @@ "type": "t_uint256" }, { - "astId": 16895, + "astId": 18446, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "metadata", "offset": 0, @@ -1105,20 +1084,20 @@ ], "numberOfBytes": "128" }, - "t_struct(ValidatorSet)16925_storage": { + "t_struct(ValidatorSet)18476_storage": { "encoding": "inplace", "label": "struct ValidatorSet", "members": [ { - "astId": 16904, + "astId": 18455, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "permissionMode", "offset": 0, "slot": "0", - "type": "t_enum(PermissionMode)16900" + "type": "t_enum(PermissionMode)18451" }, { - "astId": 16907, + "astId": 18458, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "activeLimit", "offset": 1, @@ -1126,7 +1105,7 @@ "type": "t_uint16" }, { - "astId": 16910, + "astId": 18461, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "totalConfirmedCollateral", "offset": 0, @@ -1134,28 +1113,28 @@ "type": "t_uint256" }, { - "astId": 16916, + "astId": 18467, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "validators", "offset": 0, "slot": "2", - "type": "t_mapping(t_address,t_struct(ValidatorInfo)16896_storage)" + "type": "t_mapping(t_address,t_struct(ValidatorInfo)18447_storage)" }, { - "astId": 16920, + "astId": 18471, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "activeValidators", "offset": 0, "slot": "3", - "type": "t_struct(MinPQ)15759_storage" + "type": "t_struct(MinPQ)17315_storage" }, { - "astId": 16924, + "astId": 18475, "contract": "src/GatewayDiamond.sol:GatewayDiamond", "label": "waitingValidators", "offset": 0, "slot": "6", - "type": "t_struct(MaxPQ)15141_storage" + "type": "t_struct(MaxPQ)16697_storage" } ], "numberOfBytes": "288" diff --git a/.storage-layouts/SubnetActorDiamond.json b/.storage-layouts/SubnetActorDiamond.json index bce75a800..820348086 100644 --- a/.storage-layouts/SubnetActorDiamond.json +++ b/.storage-layouts/SubnetActorDiamond.json @@ -1,12 +1,12 @@ { "storage": [ { - "astId": 4051, + "astId": 4502, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "s", "offset": 0, "slot": "0", - "type": "t_struct(SubnetActorStorage)14337_storage" + "type": "t_struct(SubnetActorStorage)15567_storage" } ], "types": { @@ -27,8 +27,8 @@ "label": "bytes32[]", "numberOfBytes": "32" }, - "t_array(t_struct(Validator)16946_storage)dyn_storage": { - "base": "t_struct(Validator)16946_storage", + "t_array(t_struct(Validator)18497_storage)dyn_storage": { + "base": "t_struct(Validator)18497_storage", "encoding": "dynamic_array", "label": "struct Validator[]", "numberOfBytes": "32" @@ -48,21 +48,26 @@ "label": "bytes", "numberOfBytes": "32" }, - "t_enum(ConsensusType)5170": { + "t_enum(ConsensusType)5645": { "encoding": "inplace", "label": "enum ConsensusType", "numberOfBytes": "1" }, - "t_enum(PermissionMode)16900": { + "t_enum(PermissionMode)18451": { "encoding": "inplace", "label": "enum PermissionMode", "numberOfBytes": "1" }, - "t_enum(StakingOperation)16831": { + "t_enum(StakingOperation)18382": { "encoding": "inplace", "label": "enum StakingOperation", "numberOfBytes": "1" }, + "t_enum(SupplyKind)18515": { + "encoding": "inplace", + "label": "enum SupplyKind", + "numberOfBytes": "1" + }, "t_int8": { "encoding": "inplace", "label": "int8", @@ -75,19 +80,19 @@ "numberOfBytes": "32", "value": "t_string_storage" }, - "t_mapping(t_address,t_struct(AddressStakingReleases)16875_storage)": { + "t_mapping(t_address,t_struct(AddressStakingReleases)18426_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct AddressStakingReleases)", "numberOfBytes": "32", - "value": "t_struct(AddressStakingReleases)16875_storage" + "value": "t_struct(AddressStakingReleases)18426_storage" }, - "t_mapping(t_address,t_struct(ValidatorInfo)16896_storage)": { + "t_mapping(t_address,t_struct(ValidatorInfo)18447_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct ValidatorInfo)", "numberOfBytes": "32", - "value": "t_struct(ValidatorInfo)16896_storage" + "value": "t_struct(ValidatorInfo)18447_storage" }, "t_mapping(t_address,t_uint16)": { "encoding": "mapping", @@ -117,60 +122,60 @@ "numberOfBytes": "32", "value": "t_address" }, - "t_mapping(t_uint16,t_struct(StakingRelease)16865_storage)": { + "t_mapping(t_uint16,t_struct(StakingRelease)18416_storage)": { "encoding": "mapping", "key": "t_uint16", "label": "mapping(uint16 => struct StakingRelease)", "numberOfBytes": "32", - "value": "t_struct(StakingRelease)16865_storage" + "value": "t_struct(StakingRelease)18416_storage" }, - "t_mapping(t_uint256,t_struct(AddressSet)3351_storage)": { + "t_mapping(t_uint256,t_struct(AddressSet)3814_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => struct EnumerableSet.AddressSet)", "numberOfBytes": "32", - "value": "t_struct(AddressSet)3351_storage" + "value": "t_struct(AddressSet)3814_storage" }, - "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)16662_storage)": { + "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)18218_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => struct BottomUpCheckpoint)", "numberOfBytes": "32", - "value": "t_struct(BottomUpCheckpoint)16662_storage" + "value": "t_struct(BottomUpCheckpoint)18218_storage" }, - "t_mapping(t_uint64,t_struct(StakingChange)16839_storage)": { + "t_mapping(t_uint64,t_struct(StakingChange)18390_storage)": { "encoding": "mapping", "key": "t_uint64", "label": "mapping(uint64 => struct StakingChange)", "numberOfBytes": "32", - "value": "t_struct(StakingChange)16839_storage" + "value": "t_struct(StakingChange)18390_storage" }, "t_string_storage": { "encoding": "bytes", "label": "string", "numberOfBytes": "32" }, - "t_struct(AddressSet)3351_storage": { + "t_struct(AddressSet)3814_storage": { "encoding": "inplace", "label": "struct EnumerableSet.AddressSet", "members": [ { - "astId": 3350, + "astId": 3813, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "_inner", "offset": 0, "slot": "0", - "type": "t_struct(Set)3036_storage" + "type": "t_struct(Set)3499_storage" } ], "numberOfBytes": "64" }, - "t_struct(AddressStakingReleases)16875_storage": { + "t_struct(AddressStakingReleases)18426_storage": { "encoding": "inplace", "label": "struct AddressStakingReleases", "members": [ { - "astId": 16867, + "astId": 18418, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "length", "offset": 0, @@ -178,7 +183,7 @@ "type": "t_uint16" }, { - "astId": 16869, + "astId": 18420, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "startIdx", "offset": 2, @@ -186,30 +191,30 @@ "type": "t_uint16" }, { - "astId": 16874, + "astId": 18425, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "releases", "offset": 0, "slot": "1", - "type": "t_mapping(t_uint16,t_struct(StakingRelease)16865_storage)" + "type": "t_mapping(t_uint16,t_struct(StakingRelease)18416_storage)" } ], "numberOfBytes": "64" }, - "t_struct(BottomUpCheckpoint)16662_storage": { + "t_struct(BottomUpCheckpoint)18218_storage": { "encoding": "inplace", "label": "struct BottomUpCheckpoint", "members": [ { - "astId": 16652, + "astId": 18208, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "subnetID", "offset": 0, "slot": "0", - "type": "t_struct(SubnetID)16809_storage" + "type": "t_struct(SubnetID)18363_storage" }, { - "astId": 16655, + "astId": 18211, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "blockHeight", "offset": 0, @@ -217,7 +222,7 @@ "type": "t_uint256" }, { - "astId": 16658, + "astId": 18214, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "blockHash", "offset": 0, @@ -225,7 +230,7 @@ "type": "t_bytes32" }, { - "astId": 16661, + "astId": 18217, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "nextConfigurationNumber", "offset": 0, @@ -235,12 +240,12 @@ ], "numberOfBytes": "160" }, - "t_struct(BottomUpMsgBatchInfo)16680_storage": { + "t_struct(BottomUpMsgBatchInfo)18236_storage": { "encoding": "inplace", "label": "struct BottomUpMsgBatchInfo", "members": [ { - "astId": 16677, + "astId": 18233, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "blockHeight", "offset": 0, @@ -248,7 +253,7 @@ "type": "t_uint256" }, { - "astId": 16679, + "astId": 18235, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "hash", "offset": 0, @@ -258,42 +263,42 @@ ], "numberOfBytes": "64" }, - "t_struct(MaxPQ)15141_storage": { + "t_struct(MaxPQ)16697_storage": { "encoding": "inplace", "label": "struct MaxPQ", "members": [ { - "astId": 15140, + "astId": 16696, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "inner", "offset": 0, "slot": "0", - "type": "t_struct(PQ)16388_storage" + "type": "t_struct(PQ)17944_storage" } ], "numberOfBytes": "96" }, - "t_struct(MinPQ)15759_storage": { + "t_struct(MinPQ)17315_storage": { "encoding": "inplace", "label": "struct MinPQ", "members": [ { - "astId": 15758, + "astId": 17314, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "inner", "offset": 0, "slot": "0", - "type": "t_struct(PQ)16388_storage" + "type": "t_struct(PQ)17944_storage" } ], "numberOfBytes": "96" }, - "t_struct(PQ)16388_storage": { + "t_struct(PQ)17944_storage": { "encoding": "inplace", "label": "struct PQ", "members": [ { - "astId": 16377, + "astId": 17933, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "size", "offset": 0, @@ -301,7 +306,7 @@ "type": "t_uint16" }, { - "astId": 16382, + "astId": 17938, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "addressToPos", "offset": 0, @@ -309,7 +314,7 @@ "type": "t_mapping(t_address,t_uint16)" }, { - "astId": 16387, + "astId": 17943, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "posToAddress", "offset": 0, @@ -319,12 +324,12 @@ ], "numberOfBytes": "96" }, - "t_struct(RelayerRewardsInfo)16698_storage": { + "t_struct(RelayerRewardsInfo)18254_storage": { "encoding": "inplace", "label": "struct RelayerRewardsInfo", "members": [ { - "astId": 16685, + "astId": 18241, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "rewards", "offset": 0, @@ -332,30 +337,30 @@ "type": "t_mapping(t_address,t_uint256)" }, { - "astId": 16691, + "astId": 18247, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "checkpointRewarded", "offset": 0, "slot": "1", - "type": "t_mapping(t_uint256,t_struct(AddressSet)3351_storage)" + "type": "t_mapping(t_uint256,t_struct(AddressSet)3814_storage)" }, { - "astId": 16697, + "astId": 18253, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "batchRewarded", "offset": 0, "slot": "2", - "type": "t_mapping(t_uint256,t_struct(AddressSet)3351_storage)" + "type": "t_mapping(t_uint256,t_struct(AddressSet)3814_storage)" } ], "numberOfBytes": "96" }, - "t_struct(Set)3036_storage": { + "t_struct(Set)3499_storage": { "encoding": "inplace", "label": "struct EnumerableSet.Set", "members": [ { - "astId": 3031, + "astId": 3494, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "_values", "offset": 0, @@ -363,7 +368,7 @@ "type": "t_array(t_bytes32)dyn_storage" }, { - "astId": 3035, + "astId": 3498, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "_indexes", "offset": 0, @@ -373,20 +378,20 @@ ], "numberOfBytes": "64" }, - "t_struct(StakingChange)16839_storage": { + "t_struct(StakingChange)18390_storage": { "encoding": "inplace", "label": "struct StakingChange", "members": [ { - "astId": 16834, + "astId": 18385, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "op", "offset": 0, "slot": "0", - "type": "t_enum(StakingOperation)16831" + "type": "t_enum(StakingOperation)18382" }, { - "astId": 16836, + "astId": 18387, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "payload", "offset": 0, @@ -394,7 +399,7 @@ "type": "t_bytes_storage" }, { - "astId": 16838, + "astId": 18389, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "validator", "offset": 0, @@ -404,12 +409,12 @@ ], "numberOfBytes": "96" }, - "t_struct(StakingChangeLog)16858_storage": { + "t_struct(StakingChangeLog)18409_storage": { "encoding": "inplace", "label": "struct StakingChangeLog", "members": [ { - "astId": 16848, + "astId": 18399, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "nextConfigurationNumber", "offset": 0, @@ -417,7 +422,7 @@ "type": "t_uint64" }, { - "astId": 16851, + "astId": 18402, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "startConfigurationNumber", "offset": 8, @@ -425,22 +430,22 @@ "type": "t_uint64" }, { - "astId": 16857, + "astId": 18408, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "changes", "offset": 0, "slot": "1", - "type": "t_mapping(t_uint64,t_struct(StakingChange)16839_storage)" + "type": "t_mapping(t_uint64,t_struct(StakingChange)18390_storage)" } ], "numberOfBytes": "64" }, - "t_struct(StakingRelease)16865_storage": { + "t_struct(StakingRelease)18416_storage": { "encoding": "inplace", "label": "struct StakingRelease", "members": [ { - "astId": 16861, + "astId": 18412, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "releaseAt", "offset": 0, @@ -448,7 +453,7 @@ "type": "t_uint256" }, { - "astId": 16864, + "astId": 18415, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "amount", "offset": 0, @@ -458,12 +463,12 @@ ], "numberOfBytes": "64" }, - "t_struct(StakingReleaseQueue)16885_storage": { + "t_struct(StakingReleaseQueue)18436_storage": { "encoding": "inplace", "label": "struct StakingReleaseQueue", "members": [ { - "astId": 16878, + "astId": 18429, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "lockingDuration", "offset": 0, @@ -471,38 +476,38 @@ "type": "t_uint256" }, { - "astId": 16884, + "astId": 18435, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "releases", "offset": 0, "slot": "1", - "type": "t_mapping(t_address,t_struct(AddressStakingReleases)16875_storage)" + "type": "t_mapping(t_address,t_struct(AddressStakingReleases)18426_storage)" } ], "numberOfBytes": "64" }, - "t_struct(SubnetActorStorage)14337_storage": { + "t_struct(SubnetActorStorage)15567_storage": { "encoding": "inplace", "label": "struct SubnetActorStorage", "members": [ { - "astId": 14244, + "astId": 15470, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "committedCheckpoints", "offset": 0, "slot": "0", - "type": "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)16662_storage)" + "type": "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)18218_storage)" }, { - "astId": 14249, + "astId": 15475, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "genesisValidators", "offset": 0, "slot": "1", - "type": "t_array(t_struct(Validator)16946_storage)dyn_storage" + "type": "t_array(t_struct(Validator)18497_storage)dyn_storage" }, { - "astId": 14252, + "astId": 15478, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "genesisCircSupply", "offset": 0, @@ -510,7 +515,7 @@ "type": "t_uint256" }, { - "astId": 14257, + "astId": 15483, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "genesisBalance", "offset": 0, @@ -518,7 +523,7 @@ "type": "t_mapping(t_address,t_uint256)" }, { - "astId": 14261, + "astId": 15487, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "genesisBalanceKeys", "offset": 0, @@ -526,7 +531,7 @@ "type": "t_array(t_address)dyn_storage" }, { - "astId": 14264, + "astId": 15490, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "lastBottomUpCheckpointHeight", "offset": 0, @@ -534,15 +539,15 @@ "type": "t_uint256" }, { - "astId": 14268, + "astId": 15494, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "lastBottomUpBatch", "offset": 0, "slot": "6", - "type": "t_struct(BottomUpMsgBatchInfo)16680_storage" + "type": "t_struct(BottomUpMsgBatchInfo)18236_storage" }, { - "astId": 14271, + "astId": 15497, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "bottomUpMsgBatchPeriod", "offset": 0, @@ -550,7 +555,7 @@ "type": "t_uint256" }, { - "astId": 14274, + "astId": 15500, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "maxMsgsPerBottomUpBatch", "offset": 0, @@ -558,7 +563,7 @@ "type": "t_uint64" }, { - "astId": 14277, + "astId": 15503, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "minActivationCollateral", "offset": 0, @@ -566,7 +571,7 @@ "type": "t_uint256" }, { - "astId": 14280, + "astId": 15506, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "bottomUpCheckPeriod", "offset": 0, @@ -574,7 +579,7 @@ "type": "t_uint256" }, { - "astId": 14283, + "astId": 15509, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "minValidators", "offset": 0, @@ -582,7 +587,7 @@ "type": "t_uint64" }, { - "astId": 14285, + "astId": 15511, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "currentSubnetHash", "offset": 0, @@ -590,7 +595,7 @@ "type": "t_bytes32" }, { - "astId": 14288, + "astId": 15514, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "ipcGatewayAddr", "offset": 0, @@ -598,7 +603,7 @@ "type": "t_address" }, { - "astId": 14291, + "astId": 15517, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "majorityPercentage", "offset": 20, @@ -606,7 +611,7 @@ "type": "t_uint8" }, { - "astId": 14294, + "astId": 15520, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "minCrossMsgFee", "offset": 0, @@ -614,23 +619,23 @@ "type": "t_uint256" }, { - "astId": 14298, + "astId": 15524, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "parentId", "offset": 0, "slot": "16", - "type": "t_struct(SubnetID)16809_storage" + "type": "t_struct(SubnetID)18363_storage" }, { - "astId": 14302, + "astId": 15528, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "consensus", "offset": 0, "slot": "18", - "type": "t_enum(ConsensusType)5170" + "type": "t_enum(ConsensusType)5645" }, { - "astId": 14305, + "astId": 15531, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "bootstrapped", "offset": 1, @@ -638,7 +643,7 @@ "type": "t_bool" }, { - "astId": 14308, + "astId": 15534, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "killed", "offset": 2, @@ -646,31 +651,31 @@ "type": "t_bool" }, { - "astId": 14312, + "astId": 15538, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "validatorSet", "offset": 0, "slot": "19", - "type": "t_struct(ValidatorSet)16925_storage" + "type": "t_struct(ValidatorSet)18476_storage" }, { - "astId": 14316, + "astId": 15542, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "changeSet", "offset": 0, "slot": "28", - "type": "t_struct(StakingChangeLog)16858_storage" + "type": "t_struct(StakingChangeLog)18409_storage" }, { - "astId": 14320, + "astId": 15546, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "releaseQueue", "offset": 0, "slot": "30", - "type": "t_struct(StakingReleaseQueue)16885_storage" + "type": "t_struct(StakingReleaseQueue)18436_storage" }, { - "astId": 14323, + "astId": 15549, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "powerScale", "offset": 0, @@ -678,15 +683,15 @@ "type": "t_int8" }, { - "astId": 14327, + "astId": 15553, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "relayerRewards", "offset": 0, "slot": "33", - "type": "t_struct(RelayerRewardsInfo)16698_storage" + "type": "t_struct(RelayerRewardsInfo)18254_storage" }, { - "astId": 14332, + "astId": 15558, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "bootstrapNodes", "offset": 0, @@ -694,22 +699,30 @@ "type": "t_mapping(t_address,t_string_storage)" }, { - "astId": 14336, + "astId": 15562, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "bootstrapOwners", "offset": 0, "slot": "37", - "type": "t_struct(AddressSet)3351_storage" + "type": "t_struct(AddressSet)3814_storage" + }, + { + "astId": 15566, + "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", + "label": "supplySource", + "offset": 0, + "slot": "39", + "type": "t_struct(SupplySource)18512_storage" } ], - "numberOfBytes": "1248" + "numberOfBytes": "1280" }, - "t_struct(SubnetID)16809_storage": { + "t_struct(SubnetID)18363_storage": { "encoding": "inplace", "label": "struct SubnetID", "members": [ { - "astId": 16804, + "astId": 18358, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "root", "offset": 0, @@ -717,7 +730,7 @@ "type": "t_uint64" }, { - "astId": 16808, + "astId": 18362, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "route", "offset": 0, @@ -727,12 +740,35 @@ ], "numberOfBytes": "64" }, - "t_struct(Validator)16946_storage": { + "t_struct(SupplySource)18512_storage": { + "encoding": "inplace", + "label": "struct SupplySource", + "members": [ + { + "astId": 18508, + "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", + "label": "kind", + "offset": 0, + "slot": "0", + "type": "t_enum(SupplyKind)18515" + }, + { + "astId": 18511, + "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", + "label": "tokenAddress", + "offset": 1, + "slot": "0", + "type": "t_address" + } + ], + "numberOfBytes": "32" + }, + "t_struct(Validator)18497_storage": { "encoding": "inplace", "label": "struct Validator", "members": [ { - "astId": 16941, + "astId": 18492, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "weight", "offset": 0, @@ -740,7 +776,7 @@ "type": "t_uint256" }, { - "astId": 16943, + "astId": 18494, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "addr", "offset": 0, @@ -748,7 +784,7 @@ "type": "t_address" }, { - "astId": 16945, + "astId": 18496, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "metadata", "offset": 0, @@ -758,12 +794,12 @@ ], "numberOfBytes": "96" }, - "t_struct(ValidatorInfo)16896_storage": { + "t_struct(ValidatorInfo)18447_storage": { "encoding": "inplace", "label": "struct ValidatorInfo", "members": [ { - "astId": 16888, + "astId": 18439, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "federatedPower", "offset": 0, @@ -771,7 +807,7 @@ "type": "t_uint256" }, { - "astId": 16890, + "astId": 18441, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "confirmedCollateral", "offset": 0, @@ -779,7 +815,7 @@ "type": "t_uint256" }, { - "astId": 16892, + "astId": 18443, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "totalCollateral", "offset": 0, @@ -787,7 +823,7 @@ "type": "t_uint256" }, { - "astId": 16895, + "astId": 18446, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "metadata", "offset": 0, @@ -797,20 +833,20 @@ ], "numberOfBytes": "128" }, - "t_struct(ValidatorSet)16925_storage": { + "t_struct(ValidatorSet)18476_storage": { "encoding": "inplace", "label": "struct ValidatorSet", "members": [ { - "astId": 16904, + "astId": 18455, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "permissionMode", "offset": 0, "slot": "0", - "type": "t_enum(PermissionMode)16900" + "type": "t_enum(PermissionMode)18451" }, { - "astId": 16907, + "astId": 18458, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "activeLimit", "offset": 1, @@ -818,7 +854,7 @@ "type": "t_uint16" }, { - "astId": 16910, + "astId": 18461, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "totalConfirmedCollateral", "offset": 0, @@ -826,28 +862,28 @@ "type": "t_uint256" }, { - "astId": 16916, + "astId": 18467, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "validators", "offset": 0, "slot": "2", - "type": "t_mapping(t_address,t_struct(ValidatorInfo)16896_storage)" + "type": "t_mapping(t_address,t_struct(ValidatorInfo)18447_storage)" }, { - "astId": 16920, + "astId": 18471, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "activeValidators", "offset": 0, "slot": "3", - "type": "t_struct(MinPQ)15759_storage" + "type": "t_struct(MinPQ)17315_storage" }, { - "astId": 16924, + "astId": 18475, "contract": "src/SubnetActorDiamond.sol:SubnetActorDiamond", "label": "waitingValidators", "offset": 0, "slot": "6", - "type": "t_struct(MaxPQ)15141_storage" + "type": "t_struct(MaxPQ)16697_storage" } ], "numberOfBytes": "288" diff --git a/.storage-layouts/SubnetActorModifiers.json b/.storage-layouts/SubnetActorModifiers.json index e4bc25987..aad761ae6 100644 --- a/.storage-layouts/SubnetActorModifiers.json +++ b/.storage-layouts/SubnetActorModifiers.json @@ -1,12 +1,12 @@ { "storage": [ { - "astId": 14351, + "astId": 15581, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "s", "offset": 0, "slot": "0", - "type": "t_struct(SubnetActorStorage)14337_storage" + "type": "t_struct(SubnetActorStorage)15567_storage" } ], "types": { @@ -27,8 +27,8 @@ "label": "bytes32[]", "numberOfBytes": "32" }, - "t_array(t_struct(Validator)16946_storage)dyn_storage": { - "base": "t_struct(Validator)16946_storage", + "t_array(t_struct(Validator)18497_storage)dyn_storage": { + "base": "t_struct(Validator)18497_storage", "encoding": "dynamic_array", "label": "struct Validator[]", "numberOfBytes": "32" @@ -48,21 +48,26 @@ "label": "bytes", "numberOfBytes": "32" }, - "t_enum(ConsensusType)5170": { + "t_enum(ConsensusType)5645": { "encoding": "inplace", "label": "enum ConsensusType", "numberOfBytes": "1" }, - "t_enum(PermissionMode)16900": { + "t_enum(PermissionMode)18451": { "encoding": "inplace", "label": "enum PermissionMode", "numberOfBytes": "1" }, - "t_enum(StakingOperation)16831": { + "t_enum(StakingOperation)18382": { "encoding": "inplace", "label": "enum StakingOperation", "numberOfBytes": "1" }, + "t_enum(SupplyKind)18515": { + "encoding": "inplace", + "label": "enum SupplyKind", + "numberOfBytes": "1" + }, "t_int8": { "encoding": "inplace", "label": "int8", @@ -75,19 +80,19 @@ "numberOfBytes": "32", "value": "t_string_storage" }, - "t_mapping(t_address,t_struct(AddressStakingReleases)16875_storage)": { + "t_mapping(t_address,t_struct(AddressStakingReleases)18426_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct AddressStakingReleases)", "numberOfBytes": "32", - "value": "t_struct(AddressStakingReleases)16875_storage" + "value": "t_struct(AddressStakingReleases)18426_storage" }, - "t_mapping(t_address,t_struct(ValidatorInfo)16896_storage)": { + "t_mapping(t_address,t_struct(ValidatorInfo)18447_storage)": { "encoding": "mapping", "key": "t_address", "label": "mapping(address => struct ValidatorInfo)", "numberOfBytes": "32", - "value": "t_struct(ValidatorInfo)16896_storage" + "value": "t_struct(ValidatorInfo)18447_storage" }, "t_mapping(t_address,t_uint16)": { "encoding": "mapping", @@ -117,60 +122,60 @@ "numberOfBytes": "32", "value": "t_address" }, - "t_mapping(t_uint16,t_struct(StakingRelease)16865_storage)": { + "t_mapping(t_uint16,t_struct(StakingRelease)18416_storage)": { "encoding": "mapping", "key": "t_uint16", "label": "mapping(uint16 => struct StakingRelease)", "numberOfBytes": "32", - "value": "t_struct(StakingRelease)16865_storage" + "value": "t_struct(StakingRelease)18416_storage" }, - "t_mapping(t_uint256,t_struct(AddressSet)3351_storage)": { + "t_mapping(t_uint256,t_struct(AddressSet)3814_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => struct EnumerableSet.AddressSet)", "numberOfBytes": "32", - "value": "t_struct(AddressSet)3351_storage" + "value": "t_struct(AddressSet)3814_storage" }, - "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)16662_storage)": { + "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)18218_storage)": { "encoding": "mapping", "key": "t_uint256", "label": "mapping(uint256 => struct BottomUpCheckpoint)", "numberOfBytes": "32", - "value": "t_struct(BottomUpCheckpoint)16662_storage" + "value": "t_struct(BottomUpCheckpoint)18218_storage" }, - "t_mapping(t_uint64,t_struct(StakingChange)16839_storage)": { + "t_mapping(t_uint64,t_struct(StakingChange)18390_storage)": { "encoding": "mapping", "key": "t_uint64", "label": "mapping(uint64 => struct StakingChange)", "numberOfBytes": "32", - "value": "t_struct(StakingChange)16839_storage" + "value": "t_struct(StakingChange)18390_storage" }, "t_string_storage": { "encoding": "bytes", "label": "string", "numberOfBytes": "32" }, - "t_struct(AddressSet)3351_storage": { + "t_struct(AddressSet)3814_storage": { "encoding": "inplace", "label": "struct EnumerableSet.AddressSet", "members": [ { - "astId": 3350, + "astId": 3813, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "_inner", "offset": 0, "slot": "0", - "type": "t_struct(Set)3036_storage" + "type": "t_struct(Set)3499_storage" } ], "numberOfBytes": "64" }, - "t_struct(AddressStakingReleases)16875_storage": { + "t_struct(AddressStakingReleases)18426_storage": { "encoding": "inplace", "label": "struct AddressStakingReleases", "members": [ { - "astId": 16867, + "astId": 18418, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "length", "offset": 0, @@ -178,7 +183,7 @@ "type": "t_uint16" }, { - "astId": 16869, + "astId": 18420, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "startIdx", "offset": 2, @@ -186,30 +191,30 @@ "type": "t_uint16" }, { - "astId": 16874, + "astId": 18425, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "releases", "offset": 0, "slot": "1", - "type": "t_mapping(t_uint16,t_struct(StakingRelease)16865_storage)" + "type": "t_mapping(t_uint16,t_struct(StakingRelease)18416_storage)" } ], "numberOfBytes": "64" }, - "t_struct(BottomUpCheckpoint)16662_storage": { + "t_struct(BottomUpCheckpoint)18218_storage": { "encoding": "inplace", "label": "struct BottomUpCheckpoint", "members": [ { - "astId": 16652, + "astId": 18208, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "subnetID", "offset": 0, "slot": "0", - "type": "t_struct(SubnetID)16809_storage" + "type": "t_struct(SubnetID)18363_storage" }, { - "astId": 16655, + "astId": 18211, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "blockHeight", "offset": 0, @@ -217,7 +222,7 @@ "type": "t_uint256" }, { - "astId": 16658, + "astId": 18214, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "blockHash", "offset": 0, @@ -225,7 +230,7 @@ "type": "t_bytes32" }, { - "astId": 16661, + "astId": 18217, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "nextConfigurationNumber", "offset": 0, @@ -235,12 +240,12 @@ ], "numberOfBytes": "160" }, - "t_struct(BottomUpMsgBatchInfo)16680_storage": { + "t_struct(BottomUpMsgBatchInfo)18236_storage": { "encoding": "inplace", "label": "struct BottomUpMsgBatchInfo", "members": [ { - "astId": 16677, + "astId": 18233, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "blockHeight", "offset": 0, @@ -248,7 +253,7 @@ "type": "t_uint256" }, { - "astId": 16679, + "astId": 18235, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "hash", "offset": 0, @@ -258,42 +263,42 @@ ], "numberOfBytes": "64" }, - "t_struct(MaxPQ)15141_storage": { + "t_struct(MaxPQ)16697_storage": { "encoding": "inplace", "label": "struct MaxPQ", "members": [ { - "astId": 15140, + "astId": 16696, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "inner", "offset": 0, "slot": "0", - "type": "t_struct(PQ)16388_storage" + "type": "t_struct(PQ)17944_storage" } ], "numberOfBytes": "96" }, - "t_struct(MinPQ)15759_storage": { + "t_struct(MinPQ)17315_storage": { "encoding": "inplace", "label": "struct MinPQ", "members": [ { - "astId": 15758, + "astId": 17314, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "inner", "offset": 0, "slot": "0", - "type": "t_struct(PQ)16388_storage" + "type": "t_struct(PQ)17944_storage" } ], "numberOfBytes": "96" }, - "t_struct(PQ)16388_storage": { + "t_struct(PQ)17944_storage": { "encoding": "inplace", "label": "struct PQ", "members": [ { - "astId": 16377, + "astId": 17933, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "size", "offset": 0, @@ -301,7 +306,7 @@ "type": "t_uint16" }, { - "astId": 16382, + "astId": 17938, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "addressToPos", "offset": 0, @@ -309,7 +314,7 @@ "type": "t_mapping(t_address,t_uint16)" }, { - "astId": 16387, + "astId": 17943, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "posToAddress", "offset": 0, @@ -319,12 +324,12 @@ ], "numberOfBytes": "96" }, - "t_struct(RelayerRewardsInfo)16698_storage": { + "t_struct(RelayerRewardsInfo)18254_storage": { "encoding": "inplace", "label": "struct RelayerRewardsInfo", "members": [ { - "astId": 16685, + "astId": 18241, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "rewards", "offset": 0, @@ -332,30 +337,30 @@ "type": "t_mapping(t_address,t_uint256)" }, { - "astId": 16691, + "astId": 18247, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "checkpointRewarded", "offset": 0, "slot": "1", - "type": "t_mapping(t_uint256,t_struct(AddressSet)3351_storage)" + "type": "t_mapping(t_uint256,t_struct(AddressSet)3814_storage)" }, { - "astId": 16697, + "astId": 18253, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "batchRewarded", "offset": 0, "slot": "2", - "type": "t_mapping(t_uint256,t_struct(AddressSet)3351_storage)" + "type": "t_mapping(t_uint256,t_struct(AddressSet)3814_storage)" } ], "numberOfBytes": "96" }, - "t_struct(Set)3036_storage": { + "t_struct(Set)3499_storage": { "encoding": "inplace", "label": "struct EnumerableSet.Set", "members": [ { - "astId": 3031, + "astId": 3494, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "_values", "offset": 0, @@ -363,7 +368,7 @@ "type": "t_array(t_bytes32)dyn_storage" }, { - "astId": 3035, + "astId": 3498, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "_indexes", "offset": 0, @@ -373,20 +378,20 @@ ], "numberOfBytes": "64" }, - "t_struct(StakingChange)16839_storage": { + "t_struct(StakingChange)18390_storage": { "encoding": "inplace", "label": "struct StakingChange", "members": [ { - "astId": 16834, + "astId": 18385, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "op", "offset": 0, "slot": "0", - "type": "t_enum(StakingOperation)16831" + "type": "t_enum(StakingOperation)18382" }, { - "astId": 16836, + "astId": 18387, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "payload", "offset": 0, @@ -394,7 +399,7 @@ "type": "t_bytes_storage" }, { - "astId": 16838, + "astId": 18389, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "validator", "offset": 0, @@ -404,12 +409,12 @@ ], "numberOfBytes": "96" }, - "t_struct(StakingChangeLog)16858_storage": { + "t_struct(StakingChangeLog)18409_storage": { "encoding": "inplace", "label": "struct StakingChangeLog", "members": [ { - "astId": 16848, + "astId": 18399, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "nextConfigurationNumber", "offset": 0, @@ -417,7 +422,7 @@ "type": "t_uint64" }, { - "astId": 16851, + "astId": 18402, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "startConfigurationNumber", "offset": 8, @@ -425,22 +430,22 @@ "type": "t_uint64" }, { - "astId": 16857, + "astId": 18408, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "changes", "offset": 0, "slot": "1", - "type": "t_mapping(t_uint64,t_struct(StakingChange)16839_storage)" + "type": "t_mapping(t_uint64,t_struct(StakingChange)18390_storage)" } ], "numberOfBytes": "64" }, - "t_struct(StakingRelease)16865_storage": { + "t_struct(StakingRelease)18416_storage": { "encoding": "inplace", "label": "struct StakingRelease", "members": [ { - "astId": 16861, + "astId": 18412, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "releaseAt", "offset": 0, @@ -448,7 +453,7 @@ "type": "t_uint256" }, { - "astId": 16864, + "astId": 18415, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "amount", "offset": 0, @@ -458,12 +463,12 @@ ], "numberOfBytes": "64" }, - "t_struct(StakingReleaseQueue)16885_storage": { + "t_struct(StakingReleaseQueue)18436_storage": { "encoding": "inplace", "label": "struct StakingReleaseQueue", "members": [ { - "astId": 16878, + "astId": 18429, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "lockingDuration", "offset": 0, @@ -471,38 +476,38 @@ "type": "t_uint256" }, { - "astId": 16884, + "astId": 18435, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "releases", "offset": 0, "slot": "1", - "type": "t_mapping(t_address,t_struct(AddressStakingReleases)16875_storage)" + "type": "t_mapping(t_address,t_struct(AddressStakingReleases)18426_storage)" } ], "numberOfBytes": "64" }, - "t_struct(SubnetActorStorage)14337_storage": { + "t_struct(SubnetActorStorage)15567_storage": { "encoding": "inplace", "label": "struct SubnetActorStorage", "members": [ { - "astId": 14244, + "astId": 15470, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "committedCheckpoints", "offset": 0, "slot": "0", - "type": "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)16662_storage)" + "type": "t_mapping(t_uint256,t_struct(BottomUpCheckpoint)18218_storage)" }, { - "astId": 14249, + "astId": 15475, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "genesisValidators", "offset": 0, "slot": "1", - "type": "t_array(t_struct(Validator)16946_storage)dyn_storage" + "type": "t_array(t_struct(Validator)18497_storage)dyn_storage" }, { - "astId": 14252, + "astId": 15478, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "genesisCircSupply", "offset": 0, @@ -510,7 +515,7 @@ "type": "t_uint256" }, { - "astId": 14257, + "astId": 15483, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "genesisBalance", "offset": 0, @@ -518,7 +523,7 @@ "type": "t_mapping(t_address,t_uint256)" }, { - "astId": 14261, + "astId": 15487, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "genesisBalanceKeys", "offset": 0, @@ -526,7 +531,7 @@ "type": "t_array(t_address)dyn_storage" }, { - "astId": 14264, + "astId": 15490, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "lastBottomUpCheckpointHeight", "offset": 0, @@ -534,15 +539,15 @@ "type": "t_uint256" }, { - "astId": 14268, + "astId": 15494, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "lastBottomUpBatch", "offset": 0, "slot": "6", - "type": "t_struct(BottomUpMsgBatchInfo)16680_storage" + "type": "t_struct(BottomUpMsgBatchInfo)18236_storage" }, { - "astId": 14271, + "astId": 15497, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "bottomUpMsgBatchPeriod", "offset": 0, @@ -550,7 +555,7 @@ "type": "t_uint256" }, { - "astId": 14274, + "astId": 15500, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "maxMsgsPerBottomUpBatch", "offset": 0, @@ -558,7 +563,7 @@ "type": "t_uint64" }, { - "astId": 14277, + "astId": 15503, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "minActivationCollateral", "offset": 0, @@ -566,7 +571,7 @@ "type": "t_uint256" }, { - "astId": 14280, + "astId": 15506, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "bottomUpCheckPeriod", "offset": 0, @@ -574,7 +579,7 @@ "type": "t_uint256" }, { - "astId": 14283, + "astId": 15509, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "minValidators", "offset": 0, @@ -582,7 +587,7 @@ "type": "t_uint64" }, { - "astId": 14285, + "astId": 15511, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "currentSubnetHash", "offset": 0, @@ -590,7 +595,7 @@ "type": "t_bytes32" }, { - "astId": 14288, + "astId": 15514, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "ipcGatewayAddr", "offset": 0, @@ -598,7 +603,7 @@ "type": "t_address" }, { - "astId": 14291, + "astId": 15517, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "majorityPercentage", "offset": 20, @@ -606,7 +611,7 @@ "type": "t_uint8" }, { - "astId": 14294, + "astId": 15520, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "minCrossMsgFee", "offset": 0, @@ -614,23 +619,23 @@ "type": "t_uint256" }, { - "astId": 14298, + "astId": 15524, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "parentId", "offset": 0, "slot": "16", - "type": "t_struct(SubnetID)16809_storage" + "type": "t_struct(SubnetID)18363_storage" }, { - "astId": 14302, + "astId": 15528, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "consensus", "offset": 0, "slot": "18", - "type": "t_enum(ConsensusType)5170" + "type": "t_enum(ConsensusType)5645" }, { - "astId": 14305, + "astId": 15531, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "bootstrapped", "offset": 1, @@ -638,7 +643,7 @@ "type": "t_bool" }, { - "astId": 14308, + "astId": 15534, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "killed", "offset": 2, @@ -646,31 +651,31 @@ "type": "t_bool" }, { - "astId": 14312, + "astId": 15538, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "validatorSet", "offset": 0, "slot": "19", - "type": "t_struct(ValidatorSet)16925_storage" + "type": "t_struct(ValidatorSet)18476_storage" }, { - "astId": 14316, + "astId": 15542, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "changeSet", "offset": 0, "slot": "28", - "type": "t_struct(StakingChangeLog)16858_storage" + "type": "t_struct(StakingChangeLog)18409_storage" }, { - "astId": 14320, + "astId": 15546, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "releaseQueue", "offset": 0, "slot": "30", - "type": "t_struct(StakingReleaseQueue)16885_storage" + "type": "t_struct(StakingReleaseQueue)18436_storage" }, { - "astId": 14323, + "astId": 15549, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "powerScale", "offset": 0, @@ -678,15 +683,15 @@ "type": "t_int8" }, { - "astId": 14327, + "astId": 15553, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "relayerRewards", "offset": 0, "slot": "33", - "type": "t_struct(RelayerRewardsInfo)16698_storage" + "type": "t_struct(RelayerRewardsInfo)18254_storage" }, { - "astId": 14332, + "astId": 15558, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "bootstrapNodes", "offset": 0, @@ -694,22 +699,30 @@ "type": "t_mapping(t_address,t_string_storage)" }, { - "astId": 14336, + "astId": 15562, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "bootstrapOwners", "offset": 0, "slot": "37", - "type": "t_struct(AddressSet)3351_storage" + "type": "t_struct(AddressSet)3814_storage" + }, + { + "astId": 15566, + "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", + "label": "supplySource", + "offset": 0, + "slot": "39", + "type": "t_struct(SupplySource)18512_storage" } ], - "numberOfBytes": "1248" + "numberOfBytes": "1280" }, - "t_struct(SubnetID)16809_storage": { + "t_struct(SubnetID)18363_storage": { "encoding": "inplace", "label": "struct SubnetID", "members": [ { - "astId": 16804, + "astId": 18358, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "root", "offset": 0, @@ -717,7 +730,7 @@ "type": "t_uint64" }, { - "astId": 16808, + "astId": 18362, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "route", "offset": 0, @@ -727,12 +740,35 @@ ], "numberOfBytes": "64" }, - "t_struct(Validator)16946_storage": { + "t_struct(SupplySource)18512_storage": { + "encoding": "inplace", + "label": "struct SupplySource", + "members": [ + { + "astId": 18508, + "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", + "label": "kind", + "offset": 0, + "slot": "0", + "type": "t_enum(SupplyKind)18515" + }, + { + "astId": 18511, + "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", + "label": "tokenAddress", + "offset": 1, + "slot": "0", + "type": "t_address" + } + ], + "numberOfBytes": "32" + }, + "t_struct(Validator)18497_storage": { "encoding": "inplace", "label": "struct Validator", "members": [ { - "astId": 16941, + "astId": 18492, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "weight", "offset": 0, @@ -740,7 +776,7 @@ "type": "t_uint256" }, { - "astId": 16943, + "astId": 18494, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "addr", "offset": 0, @@ -748,7 +784,7 @@ "type": "t_address" }, { - "astId": 16945, + "astId": 18496, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "metadata", "offset": 0, @@ -758,12 +794,12 @@ ], "numberOfBytes": "96" }, - "t_struct(ValidatorInfo)16896_storage": { + "t_struct(ValidatorInfo)18447_storage": { "encoding": "inplace", "label": "struct ValidatorInfo", "members": [ { - "astId": 16888, + "astId": 18439, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "federatedPower", "offset": 0, @@ -771,7 +807,7 @@ "type": "t_uint256" }, { - "astId": 16890, + "astId": 18441, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "confirmedCollateral", "offset": 0, @@ -779,7 +815,7 @@ "type": "t_uint256" }, { - "astId": 16892, + "astId": 18443, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "totalCollateral", "offset": 0, @@ -787,7 +823,7 @@ "type": "t_uint256" }, { - "astId": 16895, + "astId": 18446, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "metadata", "offset": 0, @@ -797,20 +833,20 @@ ], "numberOfBytes": "128" }, - "t_struct(ValidatorSet)16925_storage": { + "t_struct(ValidatorSet)18476_storage": { "encoding": "inplace", "label": "struct ValidatorSet", "members": [ { - "astId": 16904, + "astId": 18455, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "permissionMode", "offset": 0, "slot": "0", - "type": "t_enum(PermissionMode)16900" + "type": "t_enum(PermissionMode)18451" }, { - "astId": 16907, + "astId": 18458, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "activeLimit", "offset": 1, @@ -818,7 +854,7 @@ "type": "t_uint16" }, { - "astId": 16910, + "astId": 18461, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "totalConfirmedCollateral", "offset": 0, @@ -826,28 +862,28 @@ "type": "t_uint256" }, { - "astId": 16916, + "astId": 18467, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "validators", "offset": 0, "slot": "2", - "type": "t_mapping(t_address,t_struct(ValidatorInfo)16896_storage)" + "type": "t_mapping(t_address,t_struct(ValidatorInfo)18447_storage)" }, { - "astId": 16920, + "astId": 18471, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "activeValidators", "offset": 0, "slot": "3", - "type": "t_struct(MinPQ)15759_storage" + "type": "t_struct(MinPQ)17315_storage" }, { - "astId": 16924, + "astId": 18475, "contract": "src/lib/LibSubnetActorStorage.sol:SubnetActorModifiers", "label": "waitingValidators", "offset": 0, "slot": "6", - "type": "t_struct(MaxPQ)15141_storage" + "type": "t_struct(MaxPQ)16697_storage" } ], "numberOfBytes": "288" diff --git a/Makefile b/Makefile index 18256cbcb..551529993 100644 --- a/Makefile +++ b/Makefile @@ -100,7 +100,12 @@ make coverage-for-mac: | forge genhtml -o coverage_report lcov.info --branch-coverage --ignore-errors category ./tools/check_coverage.sh -prepare: fmt lint test slither +prepare: build-selector-library fmt lint test slither + + +build-selector-library: | forge + python scripts/python/build_selector_library.py + npx prettier -w test/helpers/SelectorLibrary.sol # Forge is used by the ipc-solidity-actors compilation steps. .PHONY: forge diff --git a/binding/build.rs b/binding/build.rs index 2356b27c9..3a2e23f1c 100644 --- a/binding/build.rs +++ b/binding/build.rs @@ -40,7 +40,10 @@ fn main() { "GatewayDiamond", "GatewayManagerFacet", "GatewayGetterFacet", - "GatewayRouterFacet", + "BottomUpRouterFacet", + "CheckpointingFacet", + "TopDownFinalityFacet", + "XnetMessagingFacet", "GatewayMessengerFacet", "SubnetActorDiamond", "SubnetActorGetterFacet", @@ -51,6 +54,7 @@ fn main() { "LibStaking", "LibStakingChangeLog", "LibGateway", + "LibQuorum", ] { let module_name = camel_to_snake(contract_name); let input_path = @@ -77,7 +81,8 @@ fn main() { let fvm_address_conversion = vec![ "GatewayManagerFacet", "GatewayGetterFacet", - "GatewayRouterFacet", + "BottomUpRouterFacet", + "XnetMessagingFacet", "GatewayMessengerFacet", "SubnetActorManagerFacet", "LibGateway", @@ -95,7 +100,9 @@ fn main() { .unwrap(); let common_type_conversion = vec![ ("GatewayGetterFacet", "SubnetActorManagerFacet"), - ("SubnetActorGetterFacet", "GatewayRouterFacet"), + ("SubnetActorGetterFacet", "BottomUpRouterFacet"), + ("SubnetActorGetterFacet", "CheckpointingFacet"), + ("SubnetActorGetterFacet", "XnetMessagingFacet"), ]; for (contract1, contract2) in common_type_conversion { writeln!( diff --git a/binding/src/bottom_up_router_facet.rs b/binding/src/bottom_up_router_facet.rs new file mode 100644 index 000000000..d525a9c3a --- /dev/null +++ b/binding/src/bottom_up_router_facet.rs @@ -0,0 +1,1841 @@ +pub use bottom_up_router_facet::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod bottom_up_router_facet { + #[allow(deprecated)] + fn __abi() -> ::ethers::core::abi::Abi { + ::ethers::core::abi::ethabi::Contract { + constructor: ::core::option::Option::None, + functions: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("addBottomUpMsgBatchSignature"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned( + "addBottomUpMsgBatchSignature", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("height"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("membershipProof"), + kind: ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize), + ), + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bytes32[]"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("weight"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("signature"), + kind: ::ethers::core::abi::ethabi::ParamType::Bytes, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bytes"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("createBottomUpMsgBatch"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned( + "createBottomUpMsgBatch", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("batch"), + kind: ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + ::ethers::core::abi::ethabi::ParamType::Bytes, + ], + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + ::ethers::core::abi::ethabi::ParamType::Bytes, + ], + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize), + ::ethers::core::abi::ethabi::ParamType::Bytes, + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Bool, + ], + ), + ), + ), + ], + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("struct BottomUpMsgBatch"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned( + "membershipRootHash", + ), + kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( + 32usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bytes32"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("membershipWeight"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("execBottomUpMsgBatch"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned( + "execBottomUpMsgBatch", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("batch"), + kind: ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + ::ethers::core::abi::ethabi::ParamType::Bytes, + ], + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + ::ethers::core::abi::ethabi::ParamType::Bytes, + ], + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize), + ::ethers::core::abi::ethabi::ParamType::Bytes, + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Bool, + ], + ), + ), + ), + ], + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("struct BottomUpMsgBatch"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("pruneBottomUpMsgBatches"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned( + "pruneBottomUpMsgBatches", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned( + "newRetentionHeight", + ), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ]), + events: ::std::collections::BTreeMap::new(), + errors: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("AddressEmptyCode"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("AddressEmptyCode"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("target"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + }, + ], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("AddressInsufficientBalance"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "AddressInsufficientBalance", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("account"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + }, + ], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("BatchAlreadyExists"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("BatchAlreadyExists"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("BatchNotCreated"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("BatchNotCreated"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("BatchWithNoMessages"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "BatchWithNoMessages", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("FailedAddIncompleteQuorum"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "FailedAddIncompleteQuorum", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("FailedAddSignatory"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("FailedAddSignatory"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("FailedInnerCall"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("FailedInnerCall"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("FailedRemoveIncompleteQuorum"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "FailedRemoveIncompleteQuorum", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidActorAddress"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidActorAddress", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidBatchEpoch"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("InvalidBatchEpoch"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidBatchSource"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("InvalidBatchSource"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidCrossMsgDstSubnet"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidCrossMsgDstSubnet", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidCrossMsgNonce"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidCrossMsgNonce", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidRetentionHeight"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidRetentionHeight", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidSignature"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("InvalidSignature"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("MaxMsgsPerBatchExceeded"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "MaxMsgsPerBatchExceeded", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotAuthorized"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("NotAuthorized"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + }, + ], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotEnoughSubnetCircSupply"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "NotEnoughSubnetCircSupply", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotRegisteredSubnet"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "NotRegisteredSubnet", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotSystemActor"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("NotSystemActor"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("QuorumAlreadyProcessed"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "QuorumAlreadyProcessed", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("SignatureReplay"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("SignatureReplay"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("SubnetNotFound"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("SubnetNotFound"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("ZeroMembershipWeight"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "ZeroMembershipWeight", + ), + inputs: ::std::vec![], + }, + ], + ), + ]), + receive: false, + fallback: false, + } + } + ///The parsed JSON ABI of the contract. + pub static BOTTOMUPROUTERFACET_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(__abi); + pub struct BottomUpRouterFacet(::ethers::contract::Contract); + impl ::core::clone::Clone for BottomUpRouterFacet { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for BottomUpRouterFacet { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for BottomUpRouterFacet { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for BottomUpRouterFacet { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(::core::stringify!(BottomUpRouterFacet)) + .field(&self.address()) + .finish() + } + } + impl BottomUpRouterFacet { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + BOTTOMUPROUTERFACET_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `addBottomUpMsgBatchSignature` (0x0db0f77c) function + pub fn add_bottom_up_msg_batch_signature( + &self, + height: ::ethers::core::types::U256, + membership_proof: ::std::vec::Vec<[u8; 32]>, + weight: ::ethers::core::types::U256, + signature: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [13, 176, 247, 124], + (height, membership_proof, weight, signature), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `createBottomUpMsgBatch` (0x32e7661f) function + pub fn create_bottom_up_msg_batch( + &self, + batch: BottomUpMsgBatch, + membership_root_hash: [u8; 32], + membership_weight: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [50, 231, 102, 31], + (batch, membership_root_hash, membership_weight), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `execBottomUpMsgBatch` (0x0bed7615) function + pub fn exec_bottom_up_msg_batch( + &self, + batch: BottomUpMsgBatch, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([11, 237, 118, 21], (batch,)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pruneBottomUpMsgBatches` (0xbacc656d) function + pub fn prune_bottom_up_msg_batches( + &self, + new_retention_height: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([186, 204, 101, 109], new_retention_height) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for BottomUpRouterFacet { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `AddressEmptyCode` with signature `AddressEmptyCode(address)` and selector `0x9996b315` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "AddressEmptyCode", abi = "AddressEmptyCode(address)")] + pub struct AddressEmptyCode { + pub target: ::ethers::core::types::Address, + } + ///Custom Error type `AddressInsufficientBalance` with signature `AddressInsufficientBalance(address)` and selector `0xcd786059` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "AddressInsufficientBalance", + abi = "AddressInsufficientBalance(address)" + )] + pub struct AddressInsufficientBalance { + pub account: ::ethers::core::types::Address, + } + ///Custom Error type `BatchAlreadyExists` with signature `BatchAlreadyExists()` and selector `0xd15f973b` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "BatchAlreadyExists", abi = "BatchAlreadyExists()")] + pub struct BatchAlreadyExists; + ///Custom Error type `BatchNotCreated` with signature `BatchNotCreated()` and selector `0xa88f96f1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "BatchNotCreated", abi = "BatchNotCreated()")] + pub struct BatchNotCreated; + ///Custom Error type `BatchWithNoMessages` with signature `BatchWithNoMessages()` and selector `0x38d2307f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "BatchWithNoMessages", abi = "BatchWithNoMessages()")] + pub struct BatchWithNoMessages; + ///Custom Error type `FailedAddIncompleteQuorum` with signature `FailedAddIncompleteQuorum()` and selector `0x197a39a6` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "FailedAddIncompleteQuorum", abi = "FailedAddIncompleteQuorum()")] + pub struct FailedAddIncompleteQuorum; + ///Custom Error type `FailedAddSignatory` with signature `FailedAddSignatory()` and selector `0x3363140f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "FailedAddSignatory", abi = "FailedAddSignatory()")] + pub struct FailedAddSignatory; + ///Custom Error type `FailedInnerCall` with signature `FailedInnerCall()` and selector `0x1425ea42` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "FailedInnerCall", abi = "FailedInnerCall()")] + pub struct FailedInnerCall; + ///Custom Error type `FailedRemoveIncompleteQuorum` with signature `FailedRemoveIncompleteQuorum()` and selector `0x894f690e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "FailedRemoveIncompleteQuorum", + abi = "FailedRemoveIncompleteQuorum()" + )] + pub struct FailedRemoveIncompleteQuorum; + ///Custom Error type `InvalidActorAddress` with signature `InvalidActorAddress()` and selector `0x70e45109` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidActorAddress", abi = "InvalidActorAddress()")] + pub struct InvalidActorAddress; + ///Custom Error type `InvalidBatchEpoch` with signature `InvalidBatchEpoch()` and selector `0x80314bdc` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidBatchEpoch", abi = "InvalidBatchEpoch()")] + pub struct InvalidBatchEpoch; + ///Custom Error type `InvalidBatchSource` with signature `InvalidBatchSource()` and selector `0xff949b40` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidBatchSource", abi = "InvalidBatchSource()")] + pub struct InvalidBatchSource; + ///Custom Error type `InvalidCrossMsgDstSubnet` with signature `InvalidCrossMsgDstSubnet()` and selector `0xc5f563eb` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidCrossMsgDstSubnet", abi = "InvalidCrossMsgDstSubnet()")] + pub struct InvalidCrossMsgDstSubnet; + ///Custom Error type `InvalidCrossMsgNonce` with signature `InvalidCrossMsgNonce()` and selector `0xa57cadff` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidCrossMsgNonce", abi = "InvalidCrossMsgNonce()")] + pub struct InvalidCrossMsgNonce; + ///Custom Error type `InvalidRetentionHeight` with signature `InvalidRetentionHeight()` and selector `0x6819a3a9` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidRetentionHeight", abi = "InvalidRetentionHeight()")] + pub struct InvalidRetentionHeight; + ///Custom Error type `InvalidSignature` with signature `InvalidSignature()` and selector `0x8baa579f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidSignature", abi = "InvalidSignature()")] + pub struct InvalidSignature; + ///Custom Error type `MaxMsgsPerBatchExceeded` with signature `MaxMsgsPerBatchExceeded()` and selector `0x351c7007` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "MaxMsgsPerBatchExceeded", abi = "MaxMsgsPerBatchExceeded()")] + pub struct MaxMsgsPerBatchExceeded; + ///Custom Error type `NotAuthorized` with signature `NotAuthorized(address)` and selector `0x4a0bfec1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotAuthorized", abi = "NotAuthorized(address)")] + pub struct NotAuthorized(pub ::ethers::core::types::Address); + ///Custom Error type `NotEnoughSubnetCircSupply` with signature `NotEnoughSubnetCircSupply()` and selector `0x74db2854` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotEnoughSubnetCircSupply", abi = "NotEnoughSubnetCircSupply()")] + pub struct NotEnoughSubnetCircSupply; + ///Custom Error type `NotRegisteredSubnet` with signature `NotRegisteredSubnet()` and selector `0xe991abd0` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotRegisteredSubnet", abi = "NotRegisteredSubnet()")] + pub struct NotRegisteredSubnet; + ///Custom Error type `NotSystemActor` with signature `NotSystemActor()` and selector `0xf0d97f3b` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotSystemActor", abi = "NotSystemActor()")] + pub struct NotSystemActor; + ///Custom Error type `QuorumAlreadyProcessed` with signature `QuorumAlreadyProcessed()` and selector `0x042384dc` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "QuorumAlreadyProcessed", abi = "QuorumAlreadyProcessed()")] + pub struct QuorumAlreadyProcessed; + ///Custom Error type `SignatureReplay` with signature `SignatureReplay()` and selector `0xb47fa1b2` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "SignatureReplay", abi = "SignatureReplay()")] + pub struct SignatureReplay; + ///Custom Error type `SubnetNotFound` with signature `SubnetNotFound()` and selector `0x00476ad8` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "SubnetNotFound", abi = "SubnetNotFound()")] + pub struct SubnetNotFound; + ///Custom Error type `ZeroMembershipWeight` with signature `ZeroMembershipWeight()` and selector `0x4e8ac6e5` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroMembershipWeight", abi = "ZeroMembershipWeight()")] + pub struct ZeroMembershipWeight; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum BottomUpRouterFacetErrors { + AddressEmptyCode(AddressEmptyCode), + AddressInsufficientBalance(AddressInsufficientBalance), + BatchAlreadyExists(BatchAlreadyExists), + BatchNotCreated(BatchNotCreated), + BatchWithNoMessages(BatchWithNoMessages), + FailedAddIncompleteQuorum(FailedAddIncompleteQuorum), + FailedAddSignatory(FailedAddSignatory), + FailedInnerCall(FailedInnerCall), + FailedRemoveIncompleteQuorum(FailedRemoveIncompleteQuorum), + InvalidActorAddress(InvalidActorAddress), + InvalidBatchEpoch(InvalidBatchEpoch), + InvalidBatchSource(InvalidBatchSource), + InvalidCrossMsgDstSubnet(InvalidCrossMsgDstSubnet), + InvalidCrossMsgNonce(InvalidCrossMsgNonce), + InvalidRetentionHeight(InvalidRetentionHeight), + InvalidSignature(InvalidSignature), + MaxMsgsPerBatchExceeded(MaxMsgsPerBatchExceeded), + NotAuthorized(NotAuthorized), + NotEnoughSubnetCircSupply(NotEnoughSubnetCircSupply), + NotRegisteredSubnet(NotRegisteredSubnet), + NotSystemActor(NotSystemActor), + QuorumAlreadyProcessed(QuorumAlreadyProcessed), + SignatureReplay(SignatureReplay), + SubnetNotFound(SubnetNotFound), + ZeroMembershipWeight(ZeroMembershipWeight), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for BottomUpRouterFacetErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::AddressEmptyCode(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::AddressInsufficientBalance(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::BatchAlreadyExists(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::BatchNotCreated(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::BatchWithNoMessages(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::FailedAddIncompleteQuorum(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::FailedAddSignatory(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::FailedInnerCall(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::FailedRemoveIncompleteQuorum(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidActorAddress(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidBatchEpoch(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidBatchSource(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidCrossMsgDstSubnet(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidCrossMsgNonce(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidRetentionHeight(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidSignature(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::MaxMsgsPerBatchExceeded(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotAuthorized(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotEnoughSubnetCircSupply(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotRegisteredSubnet(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotSystemActor(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::QuorumAlreadyProcessed(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::SignatureReplay(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::SubnetNotFound(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::ZeroMembershipWeight(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for BottomUpRouterFacetErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::AddressEmptyCode(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::AddressInsufficientBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::BatchAlreadyExists(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::BatchNotCreated(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::BatchWithNoMessages(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::FailedAddIncompleteQuorum(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::FailedAddSignatory(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::FailedInnerCall(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::FailedRemoveIncompleteQuorum(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidActorAddress(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidBatchEpoch(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidBatchSource(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidCrossMsgDstSubnet(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidCrossMsgNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidRetentionHeight(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidSignature(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::MaxMsgsPerBatchExceeded(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotAuthorized(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotEnoughSubnetCircSupply(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotRegisteredSubnet(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotSystemActor(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::QuorumAlreadyProcessed(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SignatureReplay(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SubnetNotFound(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroMembershipWeight(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for BottomUpRouterFacetErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ => false, + } + } + } + impl ::core::fmt::Display for BottomUpRouterFacetErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AddressEmptyCode(element) => ::core::fmt::Display::fmt(element, f), + Self::AddressInsufficientBalance(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::BatchAlreadyExists(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::BatchNotCreated(element) => ::core::fmt::Display::fmt(element, f), + Self::BatchWithNoMessages(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::FailedAddIncompleteQuorum(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::FailedAddSignatory(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::FailedInnerCall(element) => ::core::fmt::Display::fmt(element, f), + Self::FailedRemoveIncompleteQuorum(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidActorAddress(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidBatchEpoch(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidBatchSource(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidCrossMsgDstSubnet(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidCrossMsgNonce(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidRetentionHeight(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidSignature(element) => ::core::fmt::Display::fmt(element, f), + Self::MaxMsgsPerBatchExceeded(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotAuthorized(element) => ::core::fmt::Display::fmt(element, f), + Self::NotEnoughSubnetCircSupply(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotRegisteredSubnet(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotSystemActor(element) => ::core::fmt::Display::fmt(element, f), + Self::QuorumAlreadyProcessed(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SignatureReplay(element) => ::core::fmt::Display::fmt(element, f), + Self::SubnetNotFound(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroMembershipWeight(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for BottomUpRouterFacetErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: AddressEmptyCode) -> Self { + Self::AddressEmptyCode(value) + } + } + impl ::core::convert::From + for BottomUpRouterFacetErrors { + fn from(value: AddressInsufficientBalance) -> Self { + Self::AddressInsufficientBalance(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: BatchAlreadyExists) -> Self { + Self::BatchAlreadyExists(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: BatchNotCreated) -> Self { + Self::BatchNotCreated(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: BatchWithNoMessages) -> Self { + Self::BatchWithNoMessages(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: FailedAddIncompleteQuorum) -> Self { + Self::FailedAddIncompleteQuorum(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: FailedAddSignatory) -> Self { + Self::FailedAddSignatory(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: FailedInnerCall) -> Self { + Self::FailedInnerCall(value) + } + } + impl ::core::convert::From + for BottomUpRouterFacetErrors { + fn from(value: FailedRemoveIncompleteQuorum) -> Self { + Self::FailedRemoveIncompleteQuorum(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: InvalidActorAddress) -> Self { + Self::InvalidActorAddress(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: InvalidBatchEpoch) -> Self { + Self::InvalidBatchEpoch(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: InvalidBatchSource) -> Self { + Self::InvalidBatchSource(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: InvalidCrossMsgDstSubnet) -> Self { + Self::InvalidCrossMsgDstSubnet(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: InvalidCrossMsgNonce) -> Self { + Self::InvalidCrossMsgNonce(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: InvalidRetentionHeight) -> Self { + Self::InvalidRetentionHeight(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: InvalidSignature) -> Self { + Self::InvalidSignature(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: MaxMsgsPerBatchExceeded) -> Self { + Self::MaxMsgsPerBatchExceeded(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: NotAuthorized) -> Self { + Self::NotAuthorized(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: NotEnoughSubnetCircSupply) -> Self { + Self::NotEnoughSubnetCircSupply(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: NotRegisteredSubnet) -> Self { + Self::NotRegisteredSubnet(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: NotSystemActor) -> Self { + Self::NotSystemActor(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: QuorumAlreadyProcessed) -> Self { + Self::QuorumAlreadyProcessed(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: SignatureReplay) -> Self { + Self::SignatureReplay(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: SubnetNotFound) -> Self { + Self::SubnetNotFound(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetErrors { + fn from(value: ZeroMembershipWeight) -> Self { + Self::ZeroMembershipWeight(value) + } + } + ///Container type for all input parameters for the `addBottomUpMsgBatchSignature` function with signature `addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)` and selector `0x0db0f77c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "addBottomUpMsgBatchSignature", + abi = "addBottomUpMsgBatchSignature(uint256,bytes32[],uint256,bytes)" + )] + pub struct AddBottomUpMsgBatchSignatureCall { + pub height: ::ethers::core::types::U256, + pub membership_proof: ::std::vec::Vec<[u8; 32]>, + pub weight: ::ethers::core::types::U256, + pub signature: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `createBottomUpMsgBatch` function with signature `createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)` and selector `0x32e7661f` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "createBottomUpMsgBatch", + abi = "createBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]),bytes32,uint256)" + )] + pub struct CreateBottomUpMsgBatchCall { + pub batch: BottomUpMsgBatch, + pub membership_root_hash: [u8; 32], + pub membership_weight: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `execBottomUpMsgBatch` function with signature `execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))` and selector `0x0bed7615` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "execBottomUpMsgBatch", + abi = "execBottomUpMsgBatch(((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[]))" + )] + pub struct ExecBottomUpMsgBatchCall { + pub batch: BottomUpMsgBatch, + } + ///Container type for all input parameters for the `pruneBottomUpMsgBatches` function with signature `pruneBottomUpMsgBatches(uint256)` and selector `0xbacc656d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "pruneBottomUpMsgBatches", + abi = "pruneBottomUpMsgBatches(uint256)" + )] + pub struct PruneBottomUpMsgBatchesCall { + pub new_retention_height: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum BottomUpRouterFacetCalls { + AddBottomUpMsgBatchSignature(AddBottomUpMsgBatchSignatureCall), + CreateBottomUpMsgBatch(CreateBottomUpMsgBatchCall), + ExecBottomUpMsgBatch(ExecBottomUpMsgBatchCall), + PruneBottomUpMsgBatches(PruneBottomUpMsgBatchesCall), + } + impl ::ethers::core::abi::AbiDecode for BottomUpRouterFacetCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::AddBottomUpMsgBatchSignature(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::CreateBottomUpMsgBatch(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::ExecBottomUpMsgBatch(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::PruneBottomUpMsgBatches(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for BottomUpRouterFacetCalls { + fn encode(self) -> Vec { + match self { + Self::AddBottomUpMsgBatchSignature(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CreateBottomUpMsgBatch(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ExecBottomUpMsgBatch(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PruneBottomUpMsgBatches(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for BottomUpRouterFacetCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AddBottomUpMsgBatchSignature(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CreateBottomUpMsgBatch(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::ExecBottomUpMsgBatch(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::PruneBottomUpMsgBatches(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From + for BottomUpRouterFacetCalls { + fn from(value: AddBottomUpMsgBatchSignatureCall) -> Self { + Self::AddBottomUpMsgBatchSignature(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetCalls { + fn from(value: CreateBottomUpMsgBatchCall) -> Self { + Self::CreateBottomUpMsgBatch(value) + } + } + impl ::core::convert::From for BottomUpRouterFacetCalls { + fn from(value: ExecBottomUpMsgBatchCall) -> Self { + Self::ExecBottomUpMsgBatch(value) + } + } + impl ::core::convert::From + for BottomUpRouterFacetCalls { + fn from(value: PruneBottomUpMsgBatchesCall) -> Self { + Self::PruneBottomUpMsgBatches(value) + } + } + ///`BottomUpMsgBatch((uint64,address[]),uint256,((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BottomUpMsgBatch { + pub subnet_id: SubnetID, + pub block_height: ::ethers::core::types::U256, + pub msgs: ::std::vec::Vec, + } + ///`CrossMsg((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CrossMsg { + pub message: StorableMsg, + pub wrapped: bool, + } + ///`FvmAddress(uint8,bytes)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct FvmAddress { + pub addr_type: u8, + pub payload: ::ethers::core::types::Bytes, + } + ///`Ipcaddress((uint64,address[]),(uint8,bytes))` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct Ipcaddress { + pub subnet_id: SubnetID, + pub raw_address: FvmAddress, + } + ///`StorableMsg(((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct StorableMsg { + pub from: Ipcaddress, + pub to: Ipcaddress, + pub value: ::ethers::core::types::U256, + pub nonce: u64, + pub method: [u8; 4], + pub params: ::ethers::core::types::Bytes, + pub fee: ::ethers::core::types::U256, + } + ///`SubnetID(uint64,address[])` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SubnetID { + pub root: u64, + pub route: ::std::vec::Vec<::ethers::core::types::Address>, + } +} diff --git a/binding/src/checkpointing_facet.rs b/binding/src/checkpointing_facet.rs new file mode 100644 index 000000000..e94865688 --- /dev/null +++ b/binding/src/checkpointing_facet.rs @@ -0,0 +1,1447 @@ +pub use checkpointing_facet::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod checkpointing_facet { + #[allow(deprecated)] + fn __abi() -> ::ethers::core::abi::Abi { + ::ethers::core::abi::ethabi::Contract { + constructor: ::core::option::Option::None, + functions: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("addCheckpointSignature"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned( + "addCheckpointSignature", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("height"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("membershipProof"), + kind: ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize), + ), + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bytes32[]"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("weight"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("signature"), + kind: ::ethers::core::abi::ethabi::ParamType::Bytes, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bytes"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("commitCheckpoint"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("commitCheckpoint"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("checkpoint"), + kind: ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize), + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ], + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned( + "struct BottomUpCheckpoint", + ), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("createBottomUpCheckpoint"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned( + "createBottomUpCheckpoint", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("checkpoint"), + kind: ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize), + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ], + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned( + "struct BottomUpCheckpoint", + ), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned( + "membershipRootHash", + ), + kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( + 32usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bytes32"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("membershipWeight"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("pruneBottomUpCheckpoints"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned( + "pruneBottomUpCheckpoints", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned( + "newRetentionHeight", + ), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ]), + events: ::std::collections::BTreeMap::new(), + errors: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("AddressEmptyCode"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("AddressEmptyCode"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("target"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + }, + ], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("AddressInsufficientBalance"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "AddressInsufficientBalance", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("account"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + }, + ], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("CheckpointAlreadyExists"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "CheckpointAlreadyExists", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("CheckpointNotCreated"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "CheckpointNotCreated", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("FailedAddIncompleteQuorum"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "FailedAddIncompleteQuorum", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("FailedAddSignatory"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("FailedAddSignatory"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("FailedInnerCall"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("FailedInnerCall"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("FailedRemoveIncompleteQuorum"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "FailedRemoveIncompleteQuorum", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidActorAddress"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidActorAddress", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidCheckpointEpoch"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidCheckpointEpoch", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidCheckpointSource"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidCheckpointSource", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidRetentionHeight"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidRetentionHeight", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidSignature"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("InvalidSignature"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidSubnet"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("InvalidSubnet"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotAuthorized"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("NotAuthorized"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + }, + ], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotSystemActor"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("NotSystemActor"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("QuorumAlreadyProcessed"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "QuorumAlreadyProcessed", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("SignatureReplay"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("SignatureReplay"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("SubnetNotFound"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("SubnetNotFound"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("ZeroMembershipWeight"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "ZeroMembershipWeight", + ), + inputs: ::std::vec![], + }, + ], + ), + ]), + receive: false, + fallback: false, + } + } + ///The parsed JSON ABI of the contract. + pub static CHECKPOINTINGFACET_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(__abi); + pub struct CheckpointingFacet(::ethers::contract::Contract); + impl ::core::clone::Clone for CheckpointingFacet { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for CheckpointingFacet { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for CheckpointingFacet { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for CheckpointingFacet { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(::core::stringify!(CheckpointingFacet)) + .field(&self.address()) + .finish() + } + } + impl CheckpointingFacet { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + CHECKPOINTINGFACET_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `addCheckpointSignature` (0x53b4e7bf) function + pub fn add_checkpoint_signature( + &self, + height: ::ethers::core::types::U256, + membership_proof: ::std::vec::Vec<[u8; 32]>, + weight: ::ethers::core::types::U256, + signature: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [83, 180, 231, 191], + (height, membership_proof, weight, signature), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `commitCheckpoint` (0x47dc9b4f) function + pub fn commit_checkpoint( + &self, + checkpoint: BottomUpCheckpoint, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([71, 220, 155, 79], (checkpoint,)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `createBottomUpCheckpoint` (0x74303771) function + pub fn create_bottom_up_checkpoint( + &self, + checkpoint: BottomUpCheckpoint, + membership_root_hash: [u8; 32], + membership_weight: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [116, 48, 55, 113], + (checkpoint, membership_root_hash, membership_weight), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `pruneBottomUpCheckpoints` (0xac818379) function + pub fn prune_bottom_up_checkpoints( + &self, + new_retention_height: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([172, 129, 131, 121], new_retention_height) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for CheckpointingFacet { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `AddressEmptyCode` with signature `AddressEmptyCode(address)` and selector `0x9996b315` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "AddressEmptyCode", abi = "AddressEmptyCode(address)")] + pub struct AddressEmptyCode { + pub target: ::ethers::core::types::Address, + } + ///Custom Error type `AddressInsufficientBalance` with signature `AddressInsufficientBalance(address)` and selector `0xcd786059` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "AddressInsufficientBalance", + abi = "AddressInsufficientBalance(address)" + )] + pub struct AddressInsufficientBalance { + pub account: ::ethers::core::types::Address, + } + ///Custom Error type `CheckpointAlreadyExists` with signature `CheckpointAlreadyExists()` and selector `0xb8a1eae1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "CheckpointAlreadyExists", abi = "CheckpointAlreadyExists()")] + pub struct CheckpointAlreadyExists; + ///Custom Error type `CheckpointNotCreated` with signature `CheckpointNotCreated()` and selector `0x58cdd2e7` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "CheckpointNotCreated", abi = "CheckpointNotCreated()")] + pub struct CheckpointNotCreated; + ///Custom Error type `FailedAddIncompleteQuorum` with signature `FailedAddIncompleteQuorum()` and selector `0x197a39a6` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "FailedAddIncompleteQuorum", abi = "FailedAddIncompleteQuorum()")] + pub struct FailedAddIncompleteQuorum; + ///Custom Error type `FailedAddSignatory` with signature `FailedAddSignatory()` and selector `0x3363140f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "FailedAddSignatory", abi = "FailedAddSignatory()")] + pub struct FailedAddSignatory; + ///Custom Error type `FailedInnerCall` with signature `FailedInnerCall()` and selector `0x1425ea42` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "FailedInnerCall", abi = "FailedInnerCall()")] + pub struct FailedInnerCall; + ///Custom Error type `FailedRemoveIncompleteQuorum` with signature `FailedRemoveIncompleteQuorum()` and selector `0x894f690e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "FailedRemoveIncompleteQuorum", + abi = "FailedRemoveIncompleteQuorum()" + )] + pub struct FailedRemoveIncompleteQuorum; + ///Custom Error type `InvalidActorAddress` with signature `InvalidActorAddress()` and selector `0x70e45109` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidActorAddress", abi = "InvalidActorAddress()")] + pub struct InvalidActorAddress; + ///Custom Error type `InvalidCheckpointEpoch` with signature `InvalidCheckpointEpoch()` and selector `0xfae4eadb` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidCheckpointEpoch", abi = "InvalidCheckpointEpoch()")] + pub struct InvalidCheckpointEpoch; + ///Custom Error type `InvalidCheckpointSource` with signature `InvalidCheckpointSource()` and selector `0xfe72264e` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidCheckpointSource", abi = "InvalidCheckpointSource()")] + pub struct InvalidCheckpointSource; + ///Custom Error type `InvalidRetentionHeight` with signature `InvalidRetentionHeight()` and selector `0x6819a3a9` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidRetentionHeight", abi = "InvalidRetentionHeight()")] + pub struct InvalidRetentionHeight; + ///Custom Error type `InvalidSignature` with signature `InvalidSignature()` and selector `0x8baa579f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidSignature", abi = "InvalidSignature()")] + pub struct InvalidSignature; + ///Custom Error type `InvalidSubnet` with signature `InvalidSubnet()` and selector `0x076bb706` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidSubnet", abi = "InvalidSubnet()")] + pub struct InvalidSubnet; + ///Custom Error type `NotAuthorized` with signature `NotAuthorized(address)` and selector `0x4a0bfec1` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotAuthorized", abi = "NotAuthorized(address)")] + pub struct NotAuthorized(pub ::ethers::core::types::Address); + ///Custom Error type `NotSystemActor` with signature `NotSystemActor()` and selector `0xf0d97f3b` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotSystemActor", abi = "NotSystemActor()")] + pub struct NotSystemActor; + ///Custom Error type `QuorumAlreadyProcessed` with signature `QuorumAlreadyProcessed()` and selector `0x042384dc` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "QuorumAlreadyProcessed", abi = "QuorumAlreadyProcessed()")] + pub struct QuorumAlreadyProcessed; + ///Custom Error type `SignatureReplay` with signature `SignatureReplay()` and selector `0xb47fa1b2` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "SignatureReplay", abi = "SignatureReplay()")] + pub struct SignatureReplay; + ///Custom Error type `SubnetNotFound` with signature `SubnetNotFound()` and selector `0x00476ad8` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "SubnetNotFound", abi = "SubnetNotFound()")] + pub struct SubnetNotFound; + ///Custom Error type `ZeroMembershipWeight` with signature `ZeroMembershipWeight()` and selector `0x4e8ac6e5` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "ZeroMembershipWeight", abi = "ZeroMembershipWeight()")] + pub struct ZeroMembershipWeight; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum CheckpointingFacetErrors { + AddressEmptyCode(AddressEmptyCode), + AddressInsufficientBalance(AddressInsufficientBalance), + CheckpointAlreadyExists(CheckpointAlreadyExists), + CheckpointNotCreated(CheckpointNotCreated), + FailedAddIncompleteQuorum(FailedAddIncompleteQuorum), + FailedAddSignatory(FailedAddSignatory), + FailedInnerCall(FailedInnerCall), + FailedRemoveIncompleteQuorum(FailedRemoveIncompleteQuorum), + InvalidActorAddress(InvalidActorAddress), + InvalidCheckpointEpoch(InvalidCheckpointEpoch), + InvalidCheckpointSource(InvalidCheckpointSource), + InvalidRetentionHeight(InvalidRetentionHeight), + InvalidSignature(InvalidSignature), + InvalidSubnet(InvalidSubnet), + NotAuthorized(NotAuthorized), + NotSystemActor(NotSystemActor), + QuorumAlreadyProcessed(QuorumAlreadyProcessed), + SignatureReplay(SignatureReplay), + SubnetNotFound(SubnetNotFound), + ZeroMembershipWeight(ZeroMembershipWeight), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for CheckpointingFacetErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::AddressEmptyCode(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::AddressInsufficientBalance(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::CheckpointAlreadyExists(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::CheckpointNotCreated(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::FailedAddIncompleteQuorum(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::FailedAddSignatory(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::FailedInnerCall(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::FailedRemoveIncompleteQuorum(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidActorAddress(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidCheckpointEpoch(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidCheckpointSource(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidRetentionHeight(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidSignature(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidSubnet(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotAuthorized(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotSystemActor(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::QuorumAlreadyProcessed(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::SignatureReplay(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::SubnetNotFound(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::ZeroMembershipWeight(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for CheckpointingFacetErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::AddressEmptyCode(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::AddressInsufficientBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckpointAlreadyExists(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CheckpointNotCreated(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::FailedAddIncompleteQuorum(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::FailedAddSignatory(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::FailedInnerCall(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::FailedRemoveIncompleteQuorum(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidActorAddress(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidCheckpointEpoch(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidCheckpointSource(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidRetentionHeight(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidSignature(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidSubnet(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotAuthorized(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotSystemActor(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::QuorumAlreadyProcessed(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SignatureReplay(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SubnetNotFound(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ZeroMembershipWeight(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for CheckpointingFacetErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ => false, + } + } + } + impl ::core::fmt::Display for CheckpointingFacetErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AddressEmptyCode(element) => ::core::fmt::Display::fmt(element, f), + Self::AddressInsufficientBalance(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CheckpointAlreadyExists(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CheckpointNotCreated(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::FailedAddIncompleteQuorum(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::FailedAddSignatory(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::FailedInnerCall(element) => ::core::fmt::Display::fmt(element, f), + Self::FailedRemoveIncompleteQuorum(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidActorAddress(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidCheckpointEpoch(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidCheckpointSource(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidRetentionHeight(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidSignature(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidSubnet(element) => ::core::fmt::Display::fmt(element, f), + Self::NotAuthorized(element) => ::core::fmt::Display::fmt(element, f), + Self::NotSystemActor(element) => ::core::fmt::Display::fmt(element, f), + Self::QuorumAlreadyProcessed(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::SignatureReplay(element) => ::core::fmt::Display::fmt(element, f), + Self::SubnetNotFound(element) => ::core::fmt::Display::fmt(element, f), + Self::ZeroMembershipWeight(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for CheckpointingFacetErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: AddressEmptyCode) -> Self { + Self::AddressEmptyCode(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: AddressInsufficientBalance) -> Self { + Self::AddressInsufficientBalance(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: CheckpointAlreadyExists) -> Self { + Self::CheckpointAlreadyExists(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: CheckpointNotCreated) -> Self { + Self::CheckpointNotCreated(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: FailedAddIncompleteQuorum) -> Self { + Self::FailedAddIncompleteQuorum(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: FailedAddSignatory) -> Self { + Self::FailedAddSignatory(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: FailedInnerCall) -> Self { + Self::FailedInnerCall(value) + } + } + impl ::core::convert::From + for CheckpointingFacetErrors { + fn from(value: FailedRemoveIncompleteQuorum) -> Self { + Self::FailedRemoveIncompleteQuorum(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: InvalidActorAddress) -> Self { + Self::InvalidActorAddress(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: InvalidCheckpointEpoch) -> Self { + Self::InvalidCheckpointEpoch(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: InvalidCheckpointSource) -> Self { + Self::InvalidCheckpointSource(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: InvalidRetentionHeight) -> Self { + Self::InvalidRetentionHeight(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: InvalidSignature) -> Self { + Self::InvalidSignature(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: InvalidSubnet) -> Self { + Self::InvalidSubnet(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: NotAuthorized) -> Self { + Self::NotAuthorized(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: NotSystemActor) -> Self { + Self::NotSystemActor(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: QuorumAlreadyProcessed) -> Self { + Self::QuorumAlreadyProcessed(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: SignatureReplay) -> Self { + Self::SignatureReplay(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: SubnetNotFound) -> Self { + Self::SubnetNotFound(value) + } + } + impl ::core::convert::From for CheckpointingFacetErrors { + fn from(value: ZeroMembershipWeight) -> Self { + Self::ZeroMembershipWeight(value) + } + } + ///Container type for all input parameters for the `addCheckpointSignature` function with signature `addCheckpointSignature(uint256,bytes32[],uint256,bytes)` and selector `0x53b4e7bf` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "addCheckpointSignature", + abi = "addCheckpointSignature(uint256,bytes32[],uint256,bytes)" + )] + pub struct AddCheckpointSignatureCall { + pub height: ::ethers::core::types::U256, + pub membership_proof: ::std::vec::Vec<[u8; 32]>, + pub weight: ::ethers::core::types::U256, + pub signature: ::ethers::core::types::Bytes, + } + ///Container type for all input parameters for the `commitCheckpoint` function with signature `commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))` and selector `0x47dc9b4f` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "commitCheckpoint", + abi = "commitCheckpoint(((uint64,address[]),uint256,bytes32,uint64))" + )] + pub struct CommitCheckpointCall { + pub checkpoint: BottomUpCheckpoint, + } + ///Container type for all input parameters for the `createBottomUpCheckpoint` function with signature `createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)` and selector `0x74303771` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "createBottomUpCheckpoint", + abi = "createBottomUpCheckpoint(((uint64,address[]),uint256,bytes32,uint64),bytes32,uint256)" + )] + pub struct CreateBottomUpCheckpointCall { + pub checkpoint: BottomUpCheckpoint, + pub membership_root_hash: [u8; 32], + pub membership_weight: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `pruneBottomUpCheckpoints` function with signature `pruneBottomUpCheckpoints(uint256)` and selector `0xac818379` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "pruneBottomUpCheckpoints", + abi = "pruneBottomUpCheckpoints(uint256)" + )] + pub struct PruneBottomUpCheckpointsCall { + pub new_retention_height: ::ethers::core::types::U256, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum CheckpointingFacetCalls { + AddCheckpointSignature(AddCheckpointSignatureCall), + CommitCheckpoint(CommitCheckpointCall), + CreateBottomUpCheckpoint(CreateBottomUpCheckpointCall), + PruneBottomUpCheckpoints(PruneBottomUpCheckpointsCall), + } + impl ::ethers::core::abi::AbiDecode for CheckpointingFacetCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::AddCheckpointSignature(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::CommitCheckpoint(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::CreateBottomUpCheckpoint(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::PruneBottomUpCheckpoints(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for CheckpointingFacetCalls { + fn encode(self) -> Vec { + match self { + Self::AddCheckpointSignature(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CommitCheckpoint(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CreateBottomUpCheckpoint(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PruneBottomUpCheckpoints(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for CheckpointingFacetCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AddCheckpointSignature(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CommitCheckpoint(element) => ::core::fmt::Display::fmt(element, f), + Self::CreateBottomUpCheckpoint(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::PruneBottomUpCheckpoints(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for CheckpointingFacetCalls { + fn from(value: AddCheckpointSignatureCall) -> Self { + Self::AddCheckpointSignature(value) + } + } + impl ::core::convert::From for CheckpointingFacetCalls { + fn from(value: CommitCheckpointCall) -> Self { + Self::CommitCheckpoint(value) + } + } + impl ::core::convert::From + for CheckpointingFacetCalls { + fn from(value: CreateBottomUpCheckpointCall) -> Self { + Self::CreateBottomUpCheckpoint(value) + } + } + impl ::core::convert::From + for CheckpointingFacetCalls { + fn from(value: PruneBottomUpCheckpointsCall) -> Self { + Self::PruneBottomUpCheckpoints(value) + } + } + ///`BottomUpCheckpoint((uint64,address[]),uint256,bytes32,uint64)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct BottomUpCheckpoint { + pub subnet_id: SubnetID, + pub block_height: ::ethers::core::types::U256, + pub block_hash: [u8; 32], + pub next_configuration_number: u64, + } + ///`SubnetID(uint64,address[])` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SubnetID { + pub root: u64, + pub route: ::std::vec::Vec<::ethers::core::types::Address>, + } +} diff --git a/binding/src/gateway_diamond.rs b/binding/src/gateway_diamond.rs index da61513bc..c0a17ac6b 100644 --- a/binding/src/gateway_diamond.rs +++ b/binding/src/gateway_diamond.rs @@ -54,7 +54,6 @@ pub mod gateway_diamond { ), ::ethers::core::abi::ethabi::ParamType::Uint(256usize), ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), ::ethers::core::abi::ethabi::ParamType::Uint(8usize), ::ethers::core::abi::ethabi::ParamType::Array( ::std::boxed::Box::new( @@ -331,15 +330,6 @@ pub mod gateway_diamond { }, ], ), - ( - ::std::borrow::ToOwned::to_owned("InvalidCollateral"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("InvalidCollateral"), - inputs: ::std::vec![], - }, - ], - ), ( ::std::borrow::ToOwned::to_owned("InvalidMajorityPercentage"), ::std::vec![ @@ -451,13 +441,13 @@ pub mod gateway_diamond { __abi, ); #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80`@R4b\0\x0C\xB5Wb\0\x1B\x8C\x808\x03\x80\x91b\0\0 \x82`\x80b\0\x0F\x1EV[`\x809`@\x81\x12b\0\x0C\xB5W`\x80Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x0C\xB5W`\x80\x82\x01`\x9F\x82\x01\x12\x15b\0\x0C\xB5W\x80`\x80\x01Q\x90b\0\0^\x82b\0\x0FBV[\x91b\0\0n`@Q\x93\x84b\0\x0F\x1EV[\x80\x83R` \x83\x01\x80\x92\x85`\x80\x01` \x84`\x05\x1B\x83`\x80\x01\x01\x01\x11b\0\x0C\xB5W`\xA0\x81\x01\x91[`\xA0`\x05\x85\x90\x1B\x83\x01\x01\x83\x10b\0\r\xDCWPP`\xA0Q\x91PP`\x01`\x01`@\x1B\x03\x81\x11b\0\x0C\xB5W`\xE0\x81\x85\x03\x12b\0\x0C\xB5W`@Q\x93`\xE0\x85\x01`\x01`\x01`@\x1B\x03\x81\x11\x86\x82\x10\x17b\0\x05\xA8W`@\x81\x90R`\x80\x83\x01Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x0C\xB5W\x83`\x80\x01\x01`@\x81\x84`\x80\x01\x03\x12b\0\x0C\xB5Wb\0\x01\x18\x82b\0\x0F\x02V[\x80Q`\x01`\x01`@\x1B\x03\x81\x16\x81\x03b\0\x0C\xB5W\x82R` \x81\x01Q\x90`\x01`\x01`@\x1B\x03\x82\x11b\0\x0C\xB5W\x01\x82`\x80\x01`\x1F\x82\x01\x12\x15b\0\x0C\xB5W\x80Q\x90b\0\x01`\x82b\0\x0FBV[\x91b\0\x01p`@Q\x93\x84b\0\x0F\x1EV[\x80\x83R` \x80\x84\x01\x91`\x05\x1B\x83\x01\x01\x91\x85`\x80\x01\x83\x11b\0\x0C\xB5W` \x01\x90[\x82\x82\x10b\0\r\xC1WPPPa\x01\0\x87\x81\x01\x91\x90\x91R\x90\x86R`\xA0\x83\x01Q` \x87\x01R`\xC0\x83\x01Q`@\x87\x01R`\xE0\x83\x01Q``\x87\x01R\x82\x01Q`\xFF\x81\x16\x81\x03b\0\x0C\xB5W`\x80\x86\x01Ra\x01 \x82\x01Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x0C\xB5W`\x80\x82\x01`\x9F\x84\x83\x01\x01\x12\x15b\0\x0C\xB5W\x80\x83`\x80\x01\x01Qb\0\x02\x11\x81b\0\x0FBV[\x92b\0\x02!`@Q\x94\x85b\0\x0F\x1EV[\x81\x84R` \x84\x01`\x80\x82\x01`\xA0\x87\x86\x01`\x05\x86\x90\x1B\x01\x01\x11b\0\x0C\xB5W`\xA0\x86\x85\x01\x01\x90[`\xA0\x87\x86\x01`\x05\x86\x90\x1B\x01\x01\x82\x10b\0\x0C\xBAW\x89\x89\x89`\xC0\x8A\x8A`\xA0\x86\x01R`\x80\x01\x01Qa\xFF\xFF\x81\x16\x81\x03b\0\x0C\xB5W`\xC0\x84\x01R`@\x83\x01Q\x15b\0\x0C\xA3W` \x83\x01Q\x15b\0\x0C\x91W`\xFF`\x80\x84\x01Q\x16`3\x81\x10\x90\x81\x15b\0\x0C\x85W[Pb\0\x0CsW\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD5\x80T`\x01`\x01`\xA0\x1B\x03\x19\x163\x17\x90U`@Q`\x01`\x01`@\x1B\x03` \x82\x01\x90\x81\x11\x90\x82\x11\x17b\0\x05\xA8W` \x81\x01`@R`\0\x81R\x82Q`\0[\x81\x81\x10b\0\x06\x18WPP`@Q\x92``\x84\x01\x90``\x85RQ\x80\x91R`\x80\x84\x01\x90`\x80\x81`\x05\x1B\x86\x01\x01\x93\x91`\0\x90[\x82\x82\x10b\0\x05\xBEW\x87\x7F\x8F\xAAp\x87\x86q\xCC\xD2\x12\xD2\x07q\xB7\x95\xC5\n\xF8\xFD?\xF6\xCF'\xF4\xBD\xE5~]M\xE0\xAE\xB6s\x88\x80b\0\x03~\x8A\x8A`\0` \x85\x01R\x83\x82\x03`@\x85\x01Rb\0\x10&V[\x03\x90\xA1\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD4` \x90\x81R\x7F}\xFDH\xDD\x9D\xEF\0/\xA9\xB4\xA0[\xD6\xB7&\xA6\xC3\x13\xC3b\xD3\xF3\xE8A=zu \xF0\t\r%\x80T`\xFF\x19\x90\x81\x16`\x01\x90\x81\x17\x90\x92U\x7FM\x7FL\x8A/\xB5\xB3\\\xA3\xC2w\xC98\x88\xB4\x7F\x0F\")\xBD\xCC\xCFfPM\x1B\xA4\x8E\x88\xB8\x81d\x80T\x82\x16\x83\x17\x90UcH\xE2\xB0\x93`\xE0\x1B`\0R\x7FY\xBAM\xB4\xA2\x13\xE8\x16\x1D\xE5\x97\xB8\xC1\r\xB0\xE7\xE7\xBAZ\xCE\\&\x8E67\x9E$\x9Am-B\xC9\x80T\x90\x91\x16\x90\x91\x17\x90U`,\x80Td\xFF\xFF\xFF\xFF\xFF\x19\x16`\x02\x17\x90U\x81Q\x80Q`\x19\x80T`\x01`\x01`@\x1B\x03\x19\x16`\x01`\x01`@\x1B\x03\x92\x83\x16\x17\x90U\x91\x01Q\x80Q\x91\x82\x11b\0\x05\xA8Wh\x01\0\0\0\0\0\0\0\0\x82\x11b\0\x05\xA8W` \x90`\x1AT\x83`\x1AU\x80\x84\x10b\0\x05\x87W[P\x01`\x1A`\0R` `\0 `\0[\x83\x81\x10b\0\x05iWb\0\x05Y`\xA0\x86`@\x81\x01Q`\x1BU` \x81\x01Q`\x1EU``\x81\x01Q`\x1CU`\xFF`\x80\x82\x01Q\x16`\xFF\x19`\x1DT\x16\x17`\x1DU`\x01`\x0BU`\x01`\x12U`d`\x1FU`\n`\x01\x80`@\x1B\x03\x19` T\x16\x17` U`\xC0\x81\x01Qb\xFF\xFF\0`!T\x91`\x08\x1B\x16\x90b\xFF\xFF\0\x19\x16\x17`!Uh\x01\0\0\0\0\0\0\0\x01`\x01\x80`\x80\x1B\x03\x19`*T\x16\x17`*U\x01Q`@Q\x90b\0\x05J\x82b\0\x0F\x02V[\x81R`\0` \x82\x01Rb\0\x13\xFEV[`@Qa\x013\x90\x81b\0\x1A\x19\x829\xF3[\x82Q`\x01`\x01`\xA0\x1B\x03\x16\x81\x83\x01U` \x90\x92\x01\x91`\x01\x01b\0\x04\xA8V[b\0\x05\xA1\x90`\x1A`\0R\x84\x84`\0 \x91\x82\x01\x91\x01b\0\x0F\x94V[\x84b\0\x04\x99V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90\x91\x92\x94` \x80b\0\x06\t`\x01\x93`\x7F\x19\x8B\x82\x03\x01\x86R```@\x8BQ\x87\x80`\xA0\x1B\x03\x81Q\x16\x84Rb\0\x05\xF8\x86\x82\x01Q\x87\x86\x01\x90b\0\x0F\xD8V[\x01Q\x91\x81`@\x82\x01R\x01\x90b\0\x0F\xE6V[\x97\x01\x92\x01\x92\x01\x90\x92\x91b\0\x037V[`@b\0\x06&\x82\x87b\0\x0F\xADV[Q\x01Q`\x01`\x01`\xA0\x1B\x03b\0\x06=\x83\x88b\0\x0F\xADV[QQ\x16\x90\x80Q\x15b\0\x0CZW` b\0\x06W\x84\x89b\0\x0F\xADV[Q\x01Q`\x03\x81\x10\x15b\0\x0CDW\x80b\0\x08\x81WP\x81\x15b\0\x08VWa\xFF\xFF`\0\x80Q` b\0\x1BL\x839\x81Q\x91RT\x16b\0\x06\xD4`@Qb\0\x06\x99\x81b\0\x0E\xE6V[`!\x81R\x7FdiamondCut: Add facet has no cod` \x82\x01R`e`\xF8\x1B`@\x82\x01R\x84b\0\x10\x7FV[\x81Q\x91`\0\x91[\x83\x83\x10b\0\x06\xF3WPPPPP`\x01\x90[\x01b\0\x03\x08V[`\x01`\x01`\xE0\x1B\x03\x19b\0\x07\x08\x84\x84b\0\x0F\xADV[Q\x16`\0\x81\x81R`\0\x80Q` b\0\x1Bl\x839\x81Q\x91R` R`@\x90 T\x90\x91\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x08=Wb\0\x07\xAB`@Qb\0\x07J\x81b\0\x0F\x02V[\x87\x81Ra\xFF\xFF\x92\x90\x92\x16` \x80\x84\x01\x82\x81R`\0\x86\x81R`\0\x80Q` b\0\x1Bl\x839\x81Q\x91R\x90\x92R`@\x90\x91 \x93Q\x84T\x91Q`\x01`\x01`\xB0\x1B\x03\x19\x90\x92\x16`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x17`\xA0\x91\x90\x91\x1Ba\xFF\xFF`\xA0\x1B\x16\x17\x90\x92UV[`\0\x80Q` b\0\x1BL\x839\x81Q\x91RT\x91h\x01\0\0\0\0\0\0\0\0\x83\x10\x15b\0\x05\xA8Wb\0\x08\x12\x90b\0\x07\xF5`\x01\x94\x85\x81\x01`\0\x80Q` b\0\x1BL\x839\x81Q\x91RUb\0\x10MV[\x90\x91\x90c\xFF\xFF\xFF\xFF\x83T\x91`\x03\x1B\x92`\xE0\x1C\x83\x1B\x92\x1B\x19\x16\x17\x90UV[a\xFF\xFF\x81\x14b\0\x08'W\x81\x01\x92\x01\x91b\0\x06\xDBV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`@Qc\xEB\xBF]\x07`\xE0\x1B\x81R`\x04\x81\x01\x83\x90R`$\x90\xFD[`@Qc\x02\xB8\xDA\x07`\xE2\x1B\x81R` `\x04\x82\x01R\x90\x81\x90b\0\x08}\x90`$\x83\x01\x90b\0\x0F\xE6V[\x03\x90\xFD[`\x01\x81\x03b\0\t\xFAWP\x81\x15b\0\t\xD3Wb\0\x08\xE6`@Qb\0\x08\xA4\x81b\0\x0E\xE6V[`(\x81R\x7FLibDiamondCut: Replace facet has` \x82\x01Rg no code`\xC0\x1B`@\x82\x01R\x83b\0\x10\x7FV[\x80Q\x90`\0[\x82\x81\x10b\0\t\x01WPPPP`\x01\x90b\0\x06\xECV[`\x01`\x01`\xE0\x1B\x03\x19b\0\t\x16\x82\x84b\0\x0F\xADV[Q\x16`\0\x81\x81R`\0\x80Q` b\0\x1Bl\x839\x81Q\x91R` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x160\x81\x14b\0\t\xBAW\x85\x81\x14b\0\t\xA1W\x15b\0\t\x89W`\0\x90\x81R`\0\x80Q` b\0\x1Bl\x839\x81Q\x91R` R`@\x90 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x85\x17\x90U`\x01\x01b\0\x08\xECV[`$\x90`@Q\x90cty\xF99`\xE0\x1B\x82R`\x04\x82\x01R\xFD[`@Qc\x1A\xC6\xCE\x8D`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x90\xFD[`@Qc)\x01\x80m`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x90\xFD[`@Qc\xCD\x98\xA9o`\xE0\x1B\x81R` `\x04\x82\x01R\x90\x81\x90b\0\x08}\x90`$\x83\x01\x90b\0\x0F\xE6V[`\x02\x81\x03b\0\x0C\"WP`\0\x80Q` b\0\x1BL\x839\x81Q\x91RT\x91\x80b\0\x0C\nWP\x80Q\x90`\0[\x82\x81\x10b\0\n8WPPPP`\x01\x90b\0\x06\xECV[`\x01`\x01`\xE0\x1B\x03\x19b\0\nM\x82\x84b\0\x0F\xADV[Q\x16\x90\x81`\0R`\0\x80Q` b\0\x1Bl\x839\x81Q\x91R` R`@`\0 \x94`@Q\x95b\0\n|\x87b\0\x0F\x02V[T`\x01`\x01`\xA0\x1B\x03\x81\x16\x80\x88R`\xA0\x91\x90\x91\x1Ca\xFF\xFF\x16` \x88\x01R\x15b\0\x0B\xF1W\x85Q`\x01`\x01`\xA0\x1B\x03\x160\x14b\0\x0B\xD8W\x80\x15b\0\x08'W`\0\x19\x01\x94\x85a\xFF\xFF` \x83\x01Q\x16\x03b\0\x0BUW[P`\0\x80Q` b\0\x1BL\x839\x81Q\x91RT\x91\x82\x15b\0\x0B?W`\x01\x92`\0\x19\x01b\0\n\xFA\x81b\0\x10MV[c\xFF\xFF\xFF\xFF\x82T\x91`\x03\x1B\x1B\x19\x16\x90U`\0\x80Q` b\0\x1BL\x839\x81Q\x91RU`\0R`\0\x80Q` b\0\x1Bl\x839\x81Q\x91R` R`\0`@\x81 U\x01b\0\n#V[cNH{q`\xE0\x1B`\0R`1`\x04R`$`\0\xFD[b\0\x0B\xD1\x90a\xFF\xFF` b\0\x0Bj\x89b\0\x10MV[\x90T\x90`\x03\x1B\x1C`\xE0\x1B\x92b\0\x0B\x8A\x84b\0\x07\xF5\x85\x85\x85\x01Q\x16b\0\x10MV[\x01Q`\x01`\x01`\xE0\x1B\x03\x19\x90\x92\x16`\0\x90\x81R`\0\x80Q` b\0\x1Bl\x839\x81Q\x91R` R`@\x90 \x80Ta\xFF\xFF`\xA0\x1B\x19\x16\x91\x90\x92\x16`\xA0\x1Ba\xFF\xFF`\xA0\x1B\x16\x17\x90UV[\x8Bb\0\n\xCEV[`@Qc\r\xF5\xFDa`\xE3\x1B\x81R`\x04\x81\x01\x84\x90R`$\x90\xFD[`@Qcz\x08\xA2-`\xE0\x1B\x81R`\x04\x81\x01\x84\x90R`$\x90\xFD[`$\x90`@Q\x90c\xD0\x91\xBC\x81`\xE0\x1B\x82R`\x04\x82\x01R\xFD[`@Qc?\xF4\xD2\x0F`\xE1\x1B\x81R`$\x91b\0\x0CB\x90`\x04\x83\x01\x90b\0\x0F\xD8V[\xFD[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`@Qc\xE7g\xF9\x1F`\xE0\x1B\x81R`\x04\x81\x01\x83\x90R`$\x90\xFD[`@Qcu\xC3\xB4'`\xE0\x1B\x81R`\x04\x90\xFD[`d\x91P\x11\x84b\0\x02\xA6V[`@Qc1/\x8E\x05`\xE0\x1B\x81R`\x04\x90\xFD[`@Qch\xF7\xA6u`\xE1\x1B\x81R`\x04\x90\xFD[`\0\x80\xFD[\x81Q\x90`\x01`\x01`@\x1B\x03\x82\x11b\0\x0C\xB5W``\x88\x87\x01\x83\x01\x85\x03`\x1F\x19\x01\x12b\0\x0C\xB5W`@Q\x91b\0\x0C\xEE\x83b\0\x0E\xE6V[\x86\x89\x01\x81\x01`\xA0\x81\x01Q\x84Rb\0\r\x08\x90`\xC0\x01b\0\x0FZV[` \x84\x01R`\xE0\x89\x88\x01\x82\x01\x01Q\x90`\x01`\x01`@\x1B\x03\x82\x11b\0\x0C\xB5W\x87\x8A`\x80\x01\x01\x01\x01\x90\x84`\x80\x01`?\x83\x01\x12\x15b\0\x0C\xB5W` \x82\x01Q\x90`\x01`\x01`@\x1B\x03\x82\x11b\0\r\xACW`@Q\x93b\0\rm`\x1F\x84\x01`\x1F\x19\x16` \x01\x86b\0\x0F\x1EV[\x82\x85R\x86`\x80\x01`@\x84\x86\x01\x01\x11b\0\x0C\xB5W\x84b\0\r\x99` \x96\x94\x87\x96`@\x88\x80\x98\x01\x91\x01b\0\x0FoV[`@\x82\x01R\x81R\x01\x92\x01\x91\x90Pb\0\x02FV[`$`\0cNH{q`\xE0\x1B\x81R`A`\x04R\xFD[` \x80\x91b\0\r\xD0\x84b\0\x0FZV[\x81R\x01\x91\x01\x90b\0\x01\x90V[\x82Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x0C\xB5W``\x90\x83\x01`\x80\x81\x01\x90\x89\x03`\x1F\x19\x01\x82\x13b\0\x0C\xB5W`@Q\x91b\0\x0E\x13\x83b\0\x0E\xE6V[b\0\x0E!` \x83\x01b\0\x0FZV[\x83R`@\x82\x01Q`\x03\x81\x10\x15b\0\x0C\xB5W` \x84\x01R\x81\x01Q\x90`\x01`\x01`@\x1B\x03\x82\x11b\0\x0C\xB5W\x01\x88`\x80\x01`?\x82\x01\x12\x15b\0\x0C\xB5W` \x81\x01Q\x90b\0\x0Ek\x82b\0\x0FBV[\x91b\0\x0E{`@Q\x93\x84b\0\x0F\x1EV[\x80\x83R` \x83\x01\x8B`\x80\x01`@\x83`\x05\x1B\x85\x01\x01\x11b\0\x0C\xB5W`@\x83\x01\x90[`@\x83`\x05\x1B\x85\x01\x01\x82\x10b\0\x0E\xC3WPPPP`@\x82\x01R\x81R` \x92\x83\x01\x92\x01b\0\0\x93V[\x81Q`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x03b\0\x0C\xB5W\x81R` \x91\x82\x01\x91\x01b\0\x0E\x9BV[``\x81\x01\x90\x81\x10`\x01`\x01`@\x1B\x03\x82\x11\x17b\0\x05\xA8W`@RV[`@\x81\x01\x90\x81\x10`\x01`\x01`@\x1B\x03\x82\x11\x17b\0\x05\xA8W`@RV[`\x1F\x90\x91\x01`\x1F\x19\x16\x81\x01\x90`\x01`\x01`@\x1B\x03\x82\x11\x90\x82\x10\x17b\0\x05\xA8W`@RV[`\x01`\x01`@\x1B\x03\x81\x11b\0\x05\xA8W`\x05\x1B` \x01\x90V[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03b\0\x0C\xB5WV[`\0[\x83\x81\x10b\0\x0F\x83WPP`\0\x91\x01RV[\x81\x81\x01Q\x83\x82\x01R` \x01b\0\x0FrV[\x81\x81\x10b\0\x0F\xA0WPPV[`\0\x81U`\x01\x01b\0\x0F\x94V[\x80Q\x82\x10\x15b\0\x0F\xC2W` \x91`\x05\x1B\x01\x01\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[\x90`\x03\x82\x10\x15b\0\x0CDWRV[\x90\x81Q\x80\x82R` \x80\x80\x93\x01\x93\x01\x91`\0[\x82\x81\x10b\0\x10\x07WPPPP\x90V[\x83Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01b\0\x0F\xF8V[\x90` \x91b\0\x10A\x81Q\x80\x92\x81\x85R\x85\x80\x86\x01\x91\x01b\0\x0FoV[`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x90`\0\x80Q` b\0\x1BL\x839\x81Q\x91R\x80T\x83\x10\x15b\0\x0F\xC2W`\0R`\x1C` `\0 \x83`\x03\x1C\x01\x92`\x02\x1B\x16\x90V[\x80;\x15b\0\x10\x8BWPPV[`@\x80Qc\x91\x984\xB9`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x90\x92\x16`\x04\x83\x01R`$\x82\x01R\x90\x81\x90b\0\x08}\x90`D\x83\x01\x90b\0\x10&V[\x90\x80\x82Q\x90\x81\x81R` \x80\x91\x01\x92\x81\x80\x84`\x05\x1B\x83\x01\x01\x95\x01\x93`\0\x91[\x84\x83\x10b\0\x10\xF0WPPPPPP\x90V[\x90\x91\x92\x93\x94\x95\x84\x80b\0\x113`\x01\x93`\x1F\x19\x86\x82\x03\x01\x87R\x8AQ\x80Q\x82R\x85\x80`\xA0\x1B\x03\x84\x82\x01Q\x16\x84\x83\x01R`@\x80\x91\x01Q\x91``\x80\x92\x82\x01R\x01\x90b\0\x10&V[\x98\x01\x93\x01\x93\x01\x91\x94\x93\x92\x90b\0\x10\xDFV[\x90`\x01\x82\x81\x1C\x92\x16\x80\x15b\0\x11vW[` \x83\x10\x14b\0\x11`WV[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91b\0\x11TV[\x91\x90`\x1F\x81\x11b\0\x11\x91WPPPV[b\0\x11\xC0\x92`\0R` `\0 \x90` `\x1F\x84\x01`\x05\x1C\x83\x01\x93\x10b\0\x11\xC2W[`\x1F\x01`\x05\x1C\x01\x90b\0\x0F\x94V[V[\x90\x91P\x81\x90b\0\x11\xB2V[\x90\x80\x82\x14b\0\x12\xB6Wb\0\x11\xE2\x81Tb\0\x11DV[\x90`\x01`\x01`@\x1B\x03\x82\x11b\0\x05\xA8W\x81\x90b\0\x12\x0C\x82b\0\x12\x05\x86Tb\0\x11DV[\x86b\0\x11\x81V[`\0\x90`\x1F\x83\x11`\x01\x14b\0\x12FW`\0\x92b\0\x12:W[PP\x81`\x01\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x90UV[\x01T\x90P8\x80b\0\x12$V[\x81R` \x80\x82 \x85\x83R\x81\x83 \x93P\x90`\x1F\x19\x85\x16\x90\x83\x90[\x82\x82\x10b\0\x12\x9CWPP\x90\x84`\x01\x95\x94\x93\x92\x10b\0\x12\x82W[PPP\x81\x1B\x01\x90UV[\x01T`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x12xV[\x84\x95\x81\x92\x95\x85\x01T\x81U`\x01\x80\x91\x01\x96\x01\x94\x01\x90b\0\x12_V[PPV[`\x04T\x81\x10\x15b\0\x0F\xC2W`\x04`\0R`\x03` `\0 \x91\x02\x01\x90`\0\x90V[\x90b\0\x13\xE8W\x81Q\x81U` \x80\x83\x01Q`\x01\x80\x84\x01\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x93\x90\x93\x16\x92\x90\x92\x17\x90\x91U`@\x90\x93\x01Q\x80Q`\x02\x90\x93\x01\x93\x92\x91\x90`\x01`\x01`@\x1B\x03\x83\x11b\0\x05\xA8Wb\0\x13F\x83b\0\x13?\x87Tb\0\x11DV[\x87b\0\x11\x81V[\x81`\x1F\x84\x11`\x01\x14b\0\x13\x82WP\x92\x82\x93\x91\x83\x92`\0\x94b\0\x13vW[PP\x1B\x91`\0\x19\x90`\x03\x1B\x1C\x19\x16\x17\x90UV[\x01Q\x92P8\x80b\0\x13cV[\x91\x90\x83`\x1F\x19\x81\x16\x87`\0R\x84`\0 \x94`\0\x90[\x88\x83\x83\x10b\0\x13\xCDWPPP\x10b\0\x13\xB3WPPP\x81\x1B\x01\x90UV[\x01Q`\0\x19`\xF8\x84`\x03\x1B\x16\x1C\x19\x16\x90U8\x80\x80b\0\x12xV[\x85\x87\x01Q\x88U\x90\x96\x01\x95\x94\x85\x01\x94\x87\x93P\x90\x81\x01\x90b\0\x13\x97V[cNH{q`\xE0\x1B`\0R`\0`\x04R`$`\0\xFD[`@\x90\x81Q\x90` \x90\x81\x83Rb\0\x14 \x81Q\x85\x84\x86\x01R``\x85\x01\x90b\0\x10\xC1V[\x92\x7F~\xCD\xACH#4\xC3o\xCC\xBE7C\x18\xCF\xE7N\xA0\xC8\x18\x13\x94\x89\r\xDE\xC8\x94\xA1\x0F\x0F\xCCt\x81\x83\x83\x01\x91\x80`\x01\x80`@\x1B\x03\x96\x87\x85Q\x16\x89\x83\x01R\x03\x90\xA1`\x05\x94\x84\x86T\x16\x80b\0\x17\x8DW[PP`\x04\x91\x82T\x91h\x01\0\0\0\0\0\0\0\0\x95\x86\x84\x11b\0\x17xW`\x06T\x84`\x06U\x80\x85\x10b\0\x16\x8EW[P`\0\x93\x85\x85R\x86\x85 `\x06\x86R\x87\x86 \x90\x86\x90[\x83\x82\x10b\0\x168WPPPP\x80\x88T\x16\x91`\x01\x80`@\x1B\x03\x19\x92\x83`\x07T\x16\x17`\x07U\x83QQ\x93\x86T\x98\x86[\x86\x81\x10b\0\x15\xB6WPPPQ\x16\x90\x87T\x16\x17\x86U\x80\x85\x11b\0\x14\xF9W[PPPPPPV[\x84\x81\x10\x15b\0\x14\xF1W\x82T\x80\x15b\0\x15\xA3W`\0\x19\x01\x90b\0\x15\x1B\x82b\0\x12\xBAV[\x92\x90\x92b\0\x15\x91W\x83\x83U\x83`\x02`\x01\x94\x82\x86\x82\x01U\x01b\0\x15>\x81Tb\0\x11DV[\x80b\0\x15QW[PPP\x84U\x01b\0\x14\xF9V[\x82`\x1F\x80\x83\x11`\x01\x14b\0\x15mWPPPU[\x838\x80b\0\x15EV[\x83\x82R\x8A\x82 \x93\x91\x92b\0\x15\x89\x91\x01\x8D\x1C\x84\x01\x88\x85\x01b\0\x0F\x94V[UUb\0\x15dV[cNH{q`\xE0\x1B\x84R\x83\x85R`$\x84\xFD[cNH{q`\xE0\x1B\x83R`1\x84R`$\x83\xFD[\x8A\x81\x10\x15b\0\x15\xEDW\x80b\0\x15\xE6b\0\x15\xD3`\x01\x93\x86Qb\0\x0F\xADV[Qb\0\x15\xDF\x83b\0\x12\xBAV[\x90b\0\x12\xDAV[\x01b\0\x14\xD4V[b\0\x15\xFA\x81\x84Qb\0\x0F\xADV[Q\x89T\x83\x81\x10\x15b\0\x16%W`\x01\x92\x91b\0\x15\xDF\x82\x8D\x86b\0\x16\x1F\x95\x01\x90Ub\0\x12\xBAV[b\0\x15\xE6V[cNH{q`\xE0\x1B\x8AR`A\x8BR`$\x8A\xFD[\x80`\x01\x91\x84\x03b\0\x16UW[`\x03\x80\x91\x01\x93\x01\x91\x01\x90\x91b\0\x14\xA8V[\x80T\x84U\x81\x80\x85\x01\x90\x83\x80`\xA0\x1B\x03\x90\x83\x01T\x16\x83\x80`\xA0\x1B\x03\x19\x82T\x16\x17\x90Ub\0\x16\x88`\x02\x80\x83\x01\x90\x86\x01b\0\x11\xCDV[b\0\x16DV[`\x03\x90\x80\x82\x02\x90\x82\x82\x04\x03b\0\x17cW\x85\x82\x02\x82\x81\x04\x87\x03b\0\x17NW\x88`\0\x91`\x06\x83R\x81\x83 \x93\x84\x01\x93\x01[\x8C\x84\x82\x10b\0\x16\xD0WPPPPPb\0\x14\x93V[\x85\x92\x84\x91\x82\x84U`\x01\x83\x81\x86\x01U`\x02\x85\x01\x91b\0\x16\xEF\x83Tb\0\x11DV[\x91\x82b\0\x17\x06W[PPPPPP\x01\x89\x90b\0\x16\xBCV[\x85\x91`\x1F\x80\x85\x11`\x01\x14b\0\x17*WPPPPP\x90PU[\x82\x8B8\x8F\x80\x82b\0\x16\xF7V[\x85\x94\x96\x84\x96b\0\x17F\x95R\x86 \x96\x01\x90\x1C\x85\x01\x90\x85\x01b\0\x0F\x94V[UUb\0\x17\x1EV[`\x11\x88cNH{q`\xE0\x1B`\0RR`$`\0\xFD[`\x11\x87cNH{q`\xE0\x1B`\0RR`$`\0\xFD[`A\x85cNH{q`\xE0\x1B`\0RR`$`\0\xFD[\x85\x83Q\x16\x86`\x07T\x16\x90\x81\x81\x14b\0\x19\x13W\x10b\0\x19\x02W\x81Q\x91b\0\x17\xB3\x83b\0\x0F\x02V[`\x04Tb\0\x17\xC1\x81b\0\x0FBV[\x91b\0\x17\xD0\x81Q\x93\x84b\0\x0F\x1EV[\x81\x83R\x87\x83\x01\x90`\x04`\0R\x88`\0 \x90`\0\x92[\x84\x84\x10b\0\x18\x19WPPP\x91\x84RPP\x84\x82\x01Rb\0\x18\x05\x90\x83b\0\x19\x1EV[b\0\x18\x12W8\x80b\0\x14hV[PPPPPV[\x8A\x8D\x83Q\x90b\0\x18)\x82b\0\x0E\xE6V[\x85T\x82R`\x01\x80`\xA0\x1B\x03`\x01\x87\x01T\x16\x83\x83\x01R`\x02\x86\x01\x85Q\x91`\0\x91\x80Tb\0\x18U\x81b\0\x11DV[\x80\x86R\x92`\x01\x82\x16\x91\x82\x15b\0\x18\xDFWPP`\x01\x14b\0\x18\x9BW[PP\x91\x81b\0\x18\x88`\x01\x96\x93`\x03\x96\x95\x03\x82b\0\x0F\x1EV[\x86\x82\x01R\x81R\x01\x93\x01\x93\x01\x92\x91b\0\x17\xE5V[`\0\x90\x81R\x85\x81 \x90\x92P[\x81\x83\x10b\0\x18\xC0WPP\x81\x01\x83\x01\x81b\0\x18\x88b\0\x18pV[\x80`\x01\x91\x96\x92\x93\x94\x95\x96T\x83\x86\x88\x01\x01R\x01\x92\x01\x90\x8F\x94\x93\x92b\0\x18\xA7V[`\xFF\x19\x16\x86\x89\x01R\x92\x15\x15\x90\x92\x1B\x84\x01\x86\x01\x92P\x83\x91Pb\0\x18\x88\x90Pb\0\x18pV[\x81Qc7F\xBE%`\xE1\x1B\x81R`\x04\x90\xFD[PPPPPPPPPV[` \x80\x82\x01Q\x83\x82\x01Q\x91\x92\x91`\x01`\x01`@\x1B\x03\x91\x82\x16\x91\x16\x03b\0\x19\xD0Wb\0\x19I\x81b\0\x19\xD8V[b\0\x19T\x84b\0\x19\xD8V[\x03b\0\x19\xD0WQ\x80Q\x83QQ\x03b\0\x19\xD0Wb\0\x19\xC9b\0\x19\xBC\x91`@Q\x90\x81b\0\x19\x8A\x86\x82\x01\x92\x87\x84R`@\x83\x01\x90b\0\x10\xC1V[\x03\x91b\0\x19\xA0`\x1F\x19\x93\x84\x81\x01\x83R\x82b\0\x0F\x1EV[Q\x90 \x94Q`@Q\x93\x84\x91\x86\x83\x01\x96\x87R`@\x83\x01\x90b\0\x10\xC1V[\x03\x90\x81\x01\x83R\x82b\0\x0F\x1EV[Q\x90 \x14\x90V[PPP`\0\x90V[\x80QQ\x90`\0\x91\x82\x91[\x81\x83\x10b\0\x19\xF0WPPP\x90V[\x90\x91\x92b\0\x1A\0\x84\x83Qb\0\x0F\xADV[QQ\x81\x01\x80\x91\x11b\0\x08'W\x92`\x01\x01\x91\x90b\0\x19\xE2V\xFE`\x80`@R6\x15`\x87W`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`oWP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[=\x90\xFD[`$\x90`@Q\x90c\n\x82\xDDs`\xE3\x1B\x82R`\x04\x82\x01R\xFD[`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`\xE9WP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[c\n\x82\xDDs`\xE3\x1B`\x80R`\x84R`$`\x80\xFD\xFE\xA2dipfsX\"\x12 \xE5\x9C&0\x96>\x94\x9B\xE3\x85w}\xE1a\x1B\x924\x86\x90\x1F\xDB\xF3\x97\n\xC61g\xB4\x9C\xDB\xAE*dsolcC\0\x08\x13\x003\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD3\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2"; + const __BYTECODE: &[u8] = b"`\x80`@R4b\0\x0C\x82Wb\0\x1BM\x808\x03\x80\x91b\0\0 \x82`\x80b\0\x0E\xDFV[`\x809`@\x81\x12b\0\x0C\x82W`\x80Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x0C\x82W`\x80\x82\x01`\x9F\x82\x01\x12\x15b\0\x0C\x82W\x80`\x80\x01Q\x90b\0\0^\x82b\0\x0F\x03V[\x91b\0\0n`@Q\x93\x84b\0\x0E\xDFV[\x80\x83R` \x83\x01\x80\x92\x85`\x80\x01` \x84`\x05\x1B\x83`\x80\x01\x01\x01\x11b\0\x0C\x82W`\xA0\x81\x01\x91[`\xA0`\x05\x85\x90\x1B\x83\x01\x01\x83\x10b\0\r\x9DWPP`\xA0Q\x91PP`\x01`\x01`@\x1B\x03\x81\x11b\0\x0C\x82W`\xC0\x81\x85\x03\x12b\0\x0C\x82W`@Q\x93`\xC0\x85\x01`\x01`\x01`@\x1B\x03\x81\x11\x86\x82\x10\x17b\0\x05\x87W`@\x81\x90R`\x80\x83\x01Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x0C\x82W\x83`\x80\x01\x01`@\x81\x84`\x80\x01\x03\x12b\0\x0C\x82Wb\0\x01\x18\x82b\0\x0E\xC3V[\x80Q`\x01`\x01`@\x1B\x03\x81\x16\x81\x03b\0\x0C\x82W\x82R` \x81\x01Q\x90`\x01`\x01`@\x1B\x03\x82\x11b\0\x0C\x82W\x01\x82`\x80\x01`\x1F\x82\x01\x12\x15b\0\x0C\x82W\x80Q\x90b\0\x01`\x82b\0\x0F\x03V[\x91b\0\x01p`@Q\x93\x84b\0\x0E\xDFV[\x80\x83R` \x80\x84\x01\x91`\x05\x1B\x83\x01\x01\x91\x85`\x80\x01\x83\x11b\0\x0C\x82W` \x01\x90[\x82\x82\x10b\0\r\x82WPPP`\xE0\x87\x81\x01\x91\x90\x91R\x90\x86R`\xA0\x83\x01Q` \x87\x01R`\xC0\x83\x01Q`@\x87\x01R\x82\x01Q`\xFF\x81\x16\x81\x03b\0\x0C\x82W``\x86\x01Ra\x01\0\x82\x01Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x0C\x82W`\x80\x82\x01`\x9F\x84\x83\x01\x01\x12\x15b\0\x0C\x82W\x80\x83`\x80\x01\x01Qb\0\x02\x06\x81b\0\x0F\x03V[\x92b\0\x02\x16`@Q\x94\x85b\0\x0E\xDFV[\x81\x84R` \x84\x01\x92`\x80\x82\x01`\xA0\x87\x83\x01`\x05\x86\x90\x1B\x01\x01\x11b\0\x0C\x82W`\xA0\x86\x82\x01\x01\x93[`\xA0\x87\x83\x01`\x05\x86\x90\x1B\x01\x01\x85\x10b\0\x0C\x87W\x89\x89\x89`\xA0\x8A\x8A`\x80\x86\x01R`\x80\x01\x01Qa\xFF\xFF\x81\x16\x81\x03b\0\x0C\x82W`\xA0\x84\x01R` \x83\x01Q\x15b\0\x0CpW`\xFF``\x84\x01Q\x16`3\x81\x10\x90\x81\x15b\0\x0CdW[Pb\0\x0CRW\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD5\x80T`\x01`\x01`\xA0\x1B\x03\x19\x163\x17\x90U`@Q`\x01`\x01`@\x1B\x03` \x82\x01\x90\x81\x11\x90\x82\x11\x17b\0\x05\x87W` \x81\x01`@R`\0\x81R\x82Q`\0[\x81\x81\x10b\0\x05\xF7WPP`@Q\x92``\x84\x01\x90``\x85RQ\x80\x91R`\x80\x84\x01\x90`\x80\x81`\x05\x1B\x86\x01\x01\x93\x91`\0\x90[\x82\x82\x10b\0\x05\x9DW\x87\x7F\x8F\xAAp\x87\x86q\xCC\xD2\x12\xD2\x07q\xB7\x95\xC5\n\xF8\xFD?\xF6\xCF'\xF4\xBD\xE5~]M\xE0\xAE\xB6s\x88\x80b\0\x03i\x8A\x8A`\0` \x85\x01R\x83\x82\x03`@\x85\x01Rb\0\x0F\xE7V[\x03\x90\xA1\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD4` \x90\x81R\x7F}\xFDH\xDD\x9D\xEF\0/\xA9\xB4\xA0[\xD6\xB7&\xA6\xC3\x13\xC3b\xD3\xF3\xE8A=zu \xF0\t\r%\x80T`\xFF\x19\x90\x81\x16`\x01\x90\x81\x17\x90\x92U\x7FM\x7FL\x8A/\xB5\xB3\\\xA3\xC2w\xC98\x88\xB4\x7F\x0F\")\xBD\xCC\xCFfPM\x1B\xA4\x8E\x88\xB8\x81d\x80T\x82\x16\x83\x17\x90UcH\xE2\xB0\x93`\xE0\x1B`\0R\x7FY\xBAM\xB4\xA2\x13\xE8\x16\x1D\xE5\x97\xB8\xC1\r\xB0\xE7\xE7\xBAZ\xCE\\&\x8E67\x9E$\x9Am-B\xC9\x80T\x82\x16\x83\x17\x90U`+\x80Td\xFF\xFF\xFF\xFF\xFF\x19\x16`\x02\x17\x90U\x83Q\x80Q`\x19\x80T`\x01`\x01`@\x1B\x03\x19\x90\x81\x16`\x01`\x01`@\x1B\x03\x93\x84\x16\x17\x90\x91U\x91\x90\x94\x01Q\x80Q\x93\x95\x94\x91\x93\x91\x82\x11b\0\x05\x87Wh\x01\0\0\0\0\0\0\0\0\x82\x11b\0\x05\x87W` \x90`\x1AT\x83`\x1AU\x80\x84\x10b\0\x05fW[P\x01`\x1A`\0R` `\0 `\0[\x83\x81\x10b\0\x05IWb\0\x059`\x80\x88`\n\x89\x8C\x8A` \x85\x01Q`\x1DU`@\x85\x01Q`\x1BU`\xFF``\x86\x01Q\x16\x90`\x1CT\x16\x17`\x1CU\x80`\x0BU`\x12U`d`\x1EU`\x1FT\x16\x17`\x1FU`\xA0\x81\x01Qb\xFF\xFF\0` T\x91`\x08\x1B\x16\x90b\xFF\xFF\0\x19\x16\x17` Uh\x01\0\0\0\0\0\0\0\x01`\x01\x80\x84\x1B\x03\x19`)T\x16\x17`)U\x01Q`@Q\x90b\0\x05*\x82b\0\x0E\xC3V[\x81R`\0` \x82\x01Rb\0\x13\xBFV[`@Qa\x013\x90\x81b\0\x19\xDA\x829\xF3[\x82Q`\x01`\x01`\xA0\x1B\x03\x16\x81\x83\x01U` \x90\x92\x01\x91\x87\x01b\0\x04\x9BV[b\0\x05\x80\x90`\x1A`\0R\x84\x84`\0 \x91\x82\x01\x91\x01b\0\x0FUV[\x87b\0\x04\x8CV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90\x91\x92\x94` \x80b\0\x05\xE8`\x01\x93`\x7F\x19\x8B\x82\x03\x01\x86R```@\x8BQ\x87\x80`\xA0\x1B\x03\x81Q\x16\x84Rb\0\x05\xD7\x86\x82\x01Q\x87\x86\x01\x90b\0\x0F\x99V[\x01Q\x91\x81`@\x82\x01R\x01\x90b\0\x0F\xA7V[\x97\x01\x92\x01\x92\x01\x90\x92\x91b\0\x03\"V[`@b\0\x06\x05\x82\x87b\0\x0FnV[Q\x01Q`\x01`\x01`\xA0\x1B\x03b\0\x06\x1C\x83\x88b\0\x0FnV[QQ\x16\x90\x80Q\x15b\0\x0C9W` b\0\x066\x84\x89b\0\x0FnV[Q\x01Q`\x03\x81\x10\x15b\0\x0C#W\x80b\0\x08`WP\x81\x15b\0\x085Wa\xFF\xFF`\0\x80Q` b\0\x1B\r\x839\x81Q\x91RT\x16b\0\x06\xB3`@Qb\0\x06x\x81b\0\x0E\xA7V[`!\x81R\x7FdiamondCut: Add facet has no cod` \x82\x01R`e`\xF8\x1B`@\x82\x01R\x84b\0\x10@V[\x81Q\x91`\0\x91[\x83\x83\x10b\0\x06\xD2WPPPPP`\x01\x90[\x01b\0\x02\xF3V[`\x01`\x01`\xE0\x1B\x03\x19b\0\x06\xE7\x84\x84b\0\x0FnV[Q\x16`\0\x81\x81R`\0\x80Q` b\0\x1B-\x839\x81Q\x91R` R`@\x90 T\x90\x91\x90`\x01`\x01`\xA0\x1B\x03\x16b\0\x08\x1CWb\0\x07\x8A`@Qb\0\x07)\x81b\0\x0E\xC3V[\x87\x81Ra\xFF\xFF\x92\x90\x92\x16` \x80\x84\x01\x82\x81R`\0\x86\x81R`\0\x80Q` b\0\x1B-\x839\x81Q\x91R\x90\x92R`@\x90\x91 \x93Q\x84T\x91Q`\x01`\x01`\xB0\x1B\x03\x19\x90\x92\x16`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x17`\xA0\x91\x90\x91\x1Ba\xFF\xFF`\xA0\x1B\x16\x17\x90\x92UV[`\0\x80Q` b\0\x1B\r\x839\x81Q\x91RT\x91h\x01\0\0\0\0\0\0\0\0\x83\x10\x15b\0\x05\x87Wb\0\x07\xF1\x90b\0\x07\xD4`\x01\x94\x85\x81\x01`\0\x80Q` b\0\x1B\r\x839\x81Q\x91RUb\0\x10\x0EV[\x90\x91\x90c\xFF\xFF\xFF\xFF\x83T\x91`\x03\x1B\x92`\xE0\x1C\x83\x1B\x92\x1B\x19\x16\x17\x90UV[a\xFF\xFF\x81\x14b\0\x08\x06W\x81\x01\x92\x01\x91b\0\x06\xBAV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`@Qc\xEB\xBF]\x07`\xE0\x1B\x81R`\x04\x81\x01\x83\x90R`$\x90\xFD[`@Qc\x02\xB8\xDA\x07`\xE2\x1B\x81R` `\x04\x82\x01R\x90\x81\x90b\0\x08\\\x90`$\x83\x01\x90b\0\x0F\xA7V[\x03\x90\xFD[`\x01\x81\x03b\0\t\xD9WP\x81\x15b\0\t\xB2Wb\0\x08\xC5`@Qb\0\x08\x83\x81b\0\x0E\xA7V[`(\x81R\x7FLibDiamondCut: Replace facet has` \x82\x01Rg no code`\xC0\x1B`@\x82\x01R\x83b\0\x10@V[\x80Q\x90`\0[\x82\x81\x10b\0\x08\xE0WPPPP`\x01\x90b\0\x06\xCBV[`\x01`\x01`\xE0\x1B\x03\x19b\0\x08\xF5\x82\x84b\0\x0FnV[Q\x16`\0\x81\x81R`\0\x80Q` b\0\x1B-\x839\x81Q\x91R` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x160\x81\x14b\0\t\x99W\x85\x81\x14b\0\t\x80W\x15b\0\thW`\0\x90\x81R`\0\x80Q` b\0\x1B-\x839\x81Q\x91R` R`@\x90 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x85\x17\x90U`\x01\x01b\0\x08\xCBV[`$\x90`@Q\x90cty\xF99`\xE0\x1B\x82R`\x04\x82\x01R\xFD[`@Qc\x1A\xC6\xCE\x8D`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x90\xFD[`@Qc)\x01\x80m`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x90\xFD[`@Qc\xCD\x98\xA9o`\xE0\x1B\x81R` `\x04\x82\x01R\x90\x81\x90b\0\x08\\\x90`$\x83\x01\x90b\0\x0F\xA7V[`\x02\x81\x03b\0\x0C\x01WP`\0\x80Q` b\0\x1B\r\x839\x81Q\x91RT\x91\x80b\0\x0B\xE9WP\x80Q\x90`\0[\x82\x81\x10b\0\n\x17WPPPP`\x01\x90b\0\x06\xCBV[`\x01`\x01`\xE0\x1B\x03\x19b\0\n,\x82\x84b\0\x0FnV[Q\x16\x90\x81`\0R`\0\x80Q` b\0\x1B-\x839\x81Q\x91R` R`@`\0 \x94`@Q\x95b\0\n[\x87b\0\x0E\xC3V[T`\x01`\x01`\xA0\x1B\x03\x81\x16\x80\x88R`\xA0\x91\x90\x91\x1Ca\xFF\xFF\x16` \x88\x01R\x15b\0\x0B\xD0W\x85Q`\x01`\x01`\xA0\x1B\x03\x160\x14b\0\x0B\xB7W\x80\x15b\0\x08\x06W`\0\x19\x01\x94\x85a\xFF\xFF` \x83\x01Q\x16\x03b\0\x0B4W[P`\0\x80Q` b\0\x1B\r\x839\x81Q\x91RT\x91\x82\x15b\0\x0B\x1EW`\x01\x92`\0\x19\x01b\0\n\xD9\x81b\0\x10\x0EV[c\xFF\xFF\xFF\xFF\x82T\x91`\x03\x1B\x1B\x19\x16\x90U`\0\x80Q` b\0\x1B\r\x839\x81Q\x91RU`\0R`\0\x80Q` b\0\x1B-\x839\x81Q\x91R` R`\0`@\x81 U\x01b\0\n\x02V[cNH{q`\xE0\x1B`\0R`1`\x04R`$`\0\xFD[b\0\x0B\xB0\x90a\xFF\xFF` b\0\x0BI\x89b\0\x10\x0EV[\x90T\x90`\x03\x1B\x1C`\xE0\x1B\x92b\0\x0Bi\x84b\0\x07\xD4\x85\x85\x85\x01Q\x16b\0\x10\x0EV[\x01Q`\x01`\x01`\xE0\x1B\x03\x19\x90\x92\x16`\0\x90\x81R`\0\x80Q` b\0\x1B-\x839\x81Q\x91R` R`@\x90 \x80Ta\xFF\xFF`\xA0\x1B\x19\x16\x91\x90\x92\x16`\xA0\x1Ba\xFF\xFF`\xA0\x1B\x16\x17\x90UV[\x8Bb\0\n\xADV[`@Qc\r\xF5\xFDa`\xE3\x1B\x81R`\x04\x81\x01\x84\x90R`$\x90\xFD[`@Qcz\x08\xA2-`\xE0\x1B\x81R`\x04\x81\x01\x84\x90R`$\x90\xFD[`$\x90`@Q\x90c\xD0\x91\xBC\x81`\xE0\x1B\x82R`\x04\x82\x01R\xFD[`@Qc?\xF4\xD2\x0F`\xE1\x1B\x81R`$\x91b\0\x0C!\x90`\x04\x83\x01\x90b\0\x0F\x99V[\xFD[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`@Qc\xE7g\xF9\x1F`\xE0\x1B\x81R`\x04\x81\x01\x83\x90R`$\x90\xFD[`@Qcu\xC3\xB4'`\xE0\x1B\x81R`\x04\x90\xFD[`d\x91P\x11\x84b\0\x02\x91V[`@Qc1/\x8E\x05`\xE0\x1B\x81R`\x04\x90\xFD[`\0\x80\xFD[\x84Q`\x01`\x01`@\x1B\x03\x81\x11b\0\x0C\x82W`\x1F\x19\x91\x90\x88\x84\x01\x01`\x80\x81\x01\x90``\x90\x86\x03\x84\x01\x12b\0\x0C\x82W`@Q\x90b\0\x0C\xC2\x82b\0\x0E\xA7V[` \x81\x01Q\x82Rb\0\x0C\xD7`@\x82\x01b\0\x0F\x1BV[` \x83\x01R``\x81\x01Q\x90`\x01`\x01`@\x1B\x03\x82\x11b\0\x0C\x82W\x01\x91\x85`\x80\x01`?\x84\x01\x12\x15b\0\x0C\x82W` \x83\x01Q\x91`\x01`\x01`@\x1B\x03\x83\x11b\0\rmWb\0\r.` `@Q\x96`\x1F\x86\x01\x16\x01\x86b\0\x0E\xDFV[\x82\x85R\x86`\x80\x01`@\x84\x86\x01\x01\x11b\0\x0C\x82W\x84b\0\rZ` \x96\x94\x87\x96`@\x88\x80\x98\x01\x91\x01b\0\x0F0V[`@\x82\x01R\x81R\x01\x95\x01\x94\x90Pb\0\x02\x15`kW=\x90\xF3[=\x90\xFD[`$\x90`@Q\x90c\n\x82\xDDs`\xE3\x1B\x82R`\x04\x82\x01R\xFD[`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`\xE9WP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[c\n\x82\xDDs`\xE3\x1B`\x80R`\x84R`$`\x80\xFD\xFE\xA2dipfsX\"\x12 \xAD;_\x89\t\\\x80\xCC\x87\x8BJ9a;\xDD<>\xD2H}]P\x0FsIUr\xB7Gn\x1C'dsolcC\0\x08\x13\x003\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD3\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2"; /// The bytecode of the contract. pub static GATEWAYDIAMOND_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __BYTECODE, ); #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R6\x15`\x87W`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`oWP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[=\x90\xFD[`$\x90`@Q\x90c\n\x82\xDDs`\xE3\x1B\x82R`\x04\x82\x01R\xFD[`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`\xE9WP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[c\n\x82\xDDs`\xE3\x1B`\x80R`\x84R`$`\x80\xFD\xFE\xA2dipfsX\"\x12 \xE5\x9C&0\x96>\x94\x9B\xE3\x85w}\xE1a\x1B\x924\x86\x90\x1F\xDB\xF3\x97\n\xC61g\xB4\x9C\xDB\xAE*dsolcC\0\x08\x13\x003"; + const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R6\x15`\x87W`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`oWP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[=\x90\xFD[`$\x90`@Q\x90c\n\x82\xDDs`\xE3\x1B\x82R`\x04\x82\x01R\xFD[`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`\xE9WP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[c\n\x82\xDDs`\xE3\x1B`\x80R`\x84R`$`\x80\xFD\xFE\xA2dipfsX\"\x12 \xAD;_\x89\t\\\x80\xCC\x87\x8BJ9a;\xDD<>\xD2H}]P\x0FsIUr\xB7Gn\x1C'dsolcC\0\x08\x13\x003"; /// The deployed bytecode of the contract. pub static GATEWAYDIAMOND_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __DEPLOYED_BYTECODE, @@ -740,19 +730,6 @@ pub mod gateway_diamond { pub initialization_contract_address: ::ethers::core::types::Address, pub calldata: ::ethers::core::types::Bytes, } - ///Custom Error type `InvalidCollateral` with signature `InvalidCollateral()` and selector `0xd1ef4cea` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "InvalidCollateral", abi = "InvalidCollateral()")] - pub struct InvalidCollateral; ///Custom Error type `InvalidMajorityPercentage` with signature `InvalidMajorityPercentage()` and selector `0x75c3b427` #[derive( Clone, @@ -867,7 +844,6 @@ pub mod gateway_diamond { FunctionNotFound(FunctionNotFound), IncorrectFacetCutAction(IncorrectFacetCutAction), InitializationFunctionReverted(InitializationFunctionReverted), - InvalidCollateral(InvalidCollateral), InvalidMajorityPercentage(InvalidMajorityPercentage), InvalidSubmissionPeriod(InvalidSubmissionPeriod), NoBytecodeAtAddress(NoBytecodeAtAddress), @@ -947,11 +923,6 @@ pub mod gateway_diamond { ) { return Ok(Self::InitializationFunctionReverted(decoded)); } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::InvalidCollateral(decoded)); - } if let Ok(decoded) = ::decode( data, ) { @@ -1021,9 +992,6 @@ pub mod gateway_diamond { Self::InitializationFunctionReverted(element) => { ::ethers::core::abi::AbiEncode::encode(element) } - Self::InvalidCollateral(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } Self::InvalidMajorityPercentage(element) => { ::ethers::core::abi::AbiEncode::encode(element) } @@ -1094,10 +1062,6 @@ pub mod gateway_diamond { == ::selector() => { true } - _ if selector - == ::selector() => { - true - } _ if selector == ::selector() => { true @@ -1160,7 +1124,6 @@ pub mod gateway_diamond { Self::InitializationFunctionReverted(element) => { ::core::fmt::Display::fmt(element, f) } - Self::InvalidCollateral(element) => ::core::fmt::Display::fmt(element, f), Self::InvalidMajorityPercentage(element) => { ::core::fmt::Display::fmt(element, f) } @@ -1251,11 +1214,6 @@ pub mod gateway_diamond { Self::InitializationFunctionReverted(value) } } - impl ::core::convert::From for GatewayDiamondErrors { - fn from(value: InvalidCollateral) -> Self { - Self::InvalidCollateral(value) - } - } impl ::core::convert::From for GatewayDiamondErrors { fn from(value: InvalidMajorityPercentage) -> Self { Self::InvalidMajorityPercentage(value) diff --git a/binding/src/gateway_getter_facet.rs b/binding/src/gateway_getter_facet.rs index 1d02ee6a4..2797d3fb6 100644 --- a/binding/src/gateway_getter_facet.rs +++ b/binding/src/gateway_getter_facet.rs @@ -1278,7 +1278,6 @@ pub mod gateway_getter_facet { ::ethers::core::abi::ethabi::ParamType::Uint(256usize), ::ethers::core::abi::ethabi::ParamType::Uint(64usize), ::ethers::core::abi::ethabi::ParamType::Uint(64usize), - ::ethers::core::abi::ethabi::ParamType::Uint(8usize), ::ethers::core::abi::ethabi::ParamType::Tuple( ::std::vec![ ::ethers::core::abi::ethabi::ParamType::Uint(64usize), @@ -1360,7 +1359,6 @@ pub mod gateway_getter_facet { ::ethers::core::abi::ethabi::ParamType::Uint(256usize), ::ethers::core::abi::ethabi::ParamType::Uint(64usize), ::ethers::core::abi::ethabi::ParamType::Uint(64usize), - ::ethers::core::abi::ethabi::ParamType::Uint(8usize), ::ethers::core::abi::ethabi::ParamType::Tuple( ::std::vec![ ::ethers::core::abi::ethabi::ParamType::Uint(64usize), @@ -1427,28 +1425,6 @@ pub mod gateway_getter_facet { }, ], ), - ( - ::std::borrow::ToOwned::to_owned("minStake"), - ::std::vec![ - ::ethers::core::abi::ethabi::Function { - name: ::std::borrow::ToOwned::to_owned("minStake"), - inputs: ::std::vec![], - outputs: ::std::vec![ - ::ethers::core::abi::ethabi::Param { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Uint( - 256usize, - ), - internal_type: ::core::option::Option::Some( - ::std::borrow::ToOwned::to_owned("uint256"), - ), - }, - ], - constant: ::core::option::Option::None, - state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, - }, - ], - ), ( ::std::borrow::ToOwned::to_owned("postbox"), ::std::vec![ @@ -1560,7 +1536,6 @@ pub mod gateway_getter_facet { ::ethers::core::abi::ethabi::ParamType::Uint(256usize), ::ethers::core::abi::ethabi::ParamType::Uint(64usize), ::ethers::core::abi::ethabi::ParamType::Uint(64usize), - ::ethers::core::abi::ethabi::ParamType::Uint(8usize), ::ethers::core::abi::ethabi::ParamType::Tuple( ::std::vec![ ::ethers::core::abi::ethabi::ParamType::Uint(64usize), @@ -1969,14 +1944,6 @@ pub mod gateway_getter_facet { .method_hash([5, 175, 240, 179], ()) .expect("method not found (this should never happen)") } - ///Calls the contract's `minStake` (0x375b3c0a) function - pub fn min_stake( - &self, - ) -> ::ethers::contract::builders::ContractCall { - self.0 - .method_hash([55, 91, 60, 10], ()) - .expect("method not found (this should never happen)") - } ///Calls the contract's `postbox` (0x8cfd78e7) function pub fn postbox( &self, @@ -2517,19 +2484,6 @@ pub mod gateway_getter_facet { )] #[ethcall(name = "maxMsgsPerBottomUpBatch", abi = "maxMsgsPerBottomUpBatch()")] pub struct MaxMsgsPerBottomUpBatchCall; - ///Container type for all input parameters for the `minStake` function with signature `minStake()` and selector `0x375b3c0a` - #[derive( - Clone, - ::ethers::contract::EthCall, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[ethcall(name = "minStake", abi = "minStake()")] - pub struct MinStakeCall; ///Container type for all input parameters for the `postbox` function with signature `postbox(bytes32)` and selector `0x8cfd78e7` #[derive( Clone, @@ -2610,7 +2564,6 @@ pub mod gateway_getter_facet { ListSubnets(ListSubnetsCall), MajorityPercentage(MajorityPercentageCall), MaxMsgsPerBottomUpBatch(MaxMsgsPerBottomUpBatchCall), - MinStake(MinStakeCall), Postbox(PostboxCall), Subnets(SubnetsCall), TotalSubnets(TotalSubnetsCall), @@ -2790,11 +2743,6 @@ pub mod gateway_getter_facet { ) { return Ok(Self::MaxMsgsPerBottomUpBatch(decoded)); } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::MinStake(decoded)); - } if let Ok(decoded) = ::decode( data, ) { @@ -2918,9 +2866,6 @@ pub mod gateway_getter_facet { Self::MaxMsgsPerBottomUpBatch(element) => { ::ethers::core::abi::AbiEncode::encode(element) } - Self::MinStake(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } Self::Postbox(element) => ::ethers::core::abi::AbiEncode::encode(element), Self::Subnets(element) => ::ethers::core::abi::AbiEncode::encode(element), Self::TotalSubnets(element) => { @@ -3016,7 +2961,6 @@ pub mod gateway_getter_facet { Self::MaxMsgsPerBottomUpBatch(element) => { ::core::fmt::Display::fmt(element, f) } - Self::MinStake(element) => ::core::fmt::Display::fmt(element, f), Self::Postbox(element) => ::core::fmt::Display::fmt(element, f), Self::Subnets(element) => ::core::fmt::Display::fmt(element, f), Self::TotalSubnets(element) => ::core::fmt::Display::fmt(element, f), @@ -3206,11 +3150,6 @@ pub mod gateway_getter_facet { Self::MaxMsgsPerBottomUpBatch(value) } } - impl ::core::convert::From for GatewayGetterFacetCalls { - fn from(value: MinStakeCall) -> Self { - Self::MinStake(value) - } - } impl ::core::convert::From for GatewayGetterFacetCalls { fn from(value: PostboxCall) -> Self { Self::Postbox(value) @@ -3652,18 +3591,6 @@ pub mod gateway_getter_facet { Hash )] pub struct MaxMsgsPerBottomUpBatchReturn(pub u64); - ///Container type for all return fields from the `minStake` function with signature `minStake()` and selector `0x375b3c0a` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct MinStakeReturn(pub ::ethers::core::types::U256); ///Container type for all return fields from the `postbox` function with signature `postbox(bytes32)` and selector `0x8cfd78e7` #[derive( Clone, @@ -3851,7 +3778,7 @@ pub mod gateway_getter_facet { pub params: ::ethers::core::types::Bytes, pub fee: ::ethers::core::types::U256, } - ///`Subnet(uint256,uint256,uint256,uint64,uint64,uint8,(uint64,address[]))` + ///`Subnet(uint256,uint256,uint256,uint64,uint64,(uint64,address[]))` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -3868,7 +3795,6 @@ pub mod gateway_getter_facet { pub circ_supply: ::ethers::core::types::U256, pub top_down_nonce: u64, pub applied_bottom_up_nonce: u64, - pub status: u8, pub id: SubnetID, } ///`SubnetID(uint64,address[])` diff --git a/binding/src/gateway_manager_facet.rs b/binding/src/gateway_manager_facet.rs index e980db0cc..1be5085b8 100644 --- a/binding/src/gateway_manager_facet.rs +++ b/binding/src/gateway_manager_facet.rs @@ -68,6 +68,56 @@ pub mod gateway_manager_facet { }, ], ), + ( + ::std::borrow::ToOwned::to_owned("fundWithToken"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("fundWithToken"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("subnetId"), + kind: ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + ], + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("struct SubnetID"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("to"), + kind: ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + ::ethers::core::abi::ethabi::ParamType::Bytes, + ], + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("struct FvmAddress"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("amount"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), ( ::std::borrow::ToOwned::to_owned("kill"), ::std::vec![ @@ -176,6 +226,42 @@ pub mod gateway_manager_facet { ]), events: ::std::collections::BTreeMap::new(), errors: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("AddressEmptyCode"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("AddressEmptyCode"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("target"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + }, + ], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("AddressInsufficientBalance"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "AddressInsufficientBalance", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("account"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + }, + ], + }, + ], + ), ( ::std::borrow::ToOwned::to_owned("AlreadyRegisteredSubnet"), ::std::vec![ @@ -205,6 +291,15 @@ pub mod gateway_manager_facet { }, ], ), + ( + ::std::borrow::ToOwned::to_owned("FailedInnerCall"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("FailedInnerCall"), + inputs: ::std::vec![], + }, + ], + ), ( ::std::borrow::ToOwned::to_owned("InsufficientFunds"), ::std::vec![ @@ -304,6 +399,36 @@ pub mod gateway_manager_facet { }, ], ), + ( + ::std::borrow::ToOwned::to_owned("SafeERC20FailedOperation"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "SafeERC20FailedOperation", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("token"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + }, + ], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("UnexpectedSupplySource"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "UnexpectedSupplySource", + ), + inputs: ::std::vec![], + }, + ], + ), ]), receive: false, fallback: false, @@ -368,6 +493,17 @@ pub mod gateway_manager_facet { .method_hash([24, 244, 75, 112], (subnet_id, to)) .expect("method not found (this should never happen)") } + ///Calls the contract's `fundWithToken` (0x0517e1aa) function + pub fn fund_with_token( + &self, + subnet_id: SubnetID, + to: FvmAddress, + amount: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([5, 23, 225, 170], (subnet_id, to, amount)) + .expect("method not found (this should never happen)") + } ///Calls the contract's `kill` (0x41c0e1b5) function pub fn kill(&self) -> ::ethers::contract::builders::ContractCall { self.0 @@ -417,6 +553,39 @@ pub mod gateway_manager_facet { Self::new(contract.address(), contract.client()) } } + ///Custom Error type `AddressEmptyCode` with signature `AddressEmptyCode(address)` and selector `0x9996b315` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "AddressEmptyCode", abi = "AddressEmptyCode(address)")] + pub struct AddressEmptyCode { + pub target: ::ethers::core::types::Address, + } + ///Custom Error type `AddressInsufficientBalance` with signature `AddressInsufficientBalance(address)` and selector `0xcd786059` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "AddressInsufficientBalance", + abi = "AddressInsufficientBalance(address)" + )] + pub struct AddressInsufficientBalance { + pub account: ::ethers::core::types::Address, + } ///Custom Error type `AlreadyRegisteredSubnet` with signature `AlreadyRegisteredSubnet()` and selector `0x36a719be` #[derive( Clone, @@ -456,6 +625,19 @@ pub mod gateway_manager_facet { )] #[etherror(name = "CannotReleaseZero", abi = "CannotReleaseZero()")] pub struct CannotReleaseZero; + ///Custom Error type `FailedInnerCall` with signature `FailedInnerCall()` and selector `0x1425ea42` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "FailedInnerCall", abi = "FailedInnerCall()")] + pub struct FailedInnerCall; ///Custom Error type `InsufficientFunds` with signature `InsufficientFunds()` and selector `0x356680b7` #[derive( Clone, @@ -575,12 +757,46 @@ pub mod gateway_manager_facet { )] #[etherror(name = "ReentrancyError", abi = "ReentrancyError()")] pub struct ReentrancyError; + ///Custom Error type `SafeERC20FailedOperation` with signature `SafeERC20FailedOperation(address)` and selector `0x5274afe7` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "SafeERC20FailedOperation", + abi = "SafeERC20FailedOperation(address)" + )] + pub struct SafeERC20FailedOperation { + pub token: ::ethers::core::types::Address, + } + ///Custom Error type `UnexpectedSupplySource` with signature `UnexpectedSupplySource()` and selector `0x80ee5966` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "UnexpectedSupplySource", abi = "UnexpectedSupplySource()")] + pub struct UnexpectedSupplySource; ///Container type for all of the contract's custom errors #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] pub enum GatewayManagerFacetErrors { + AddressEmptyCode(AddressEmptyCode), + AddressInsufficientBalance(AddressInsufficientBalance), AlreadyRegisteredSubnet(AlreadyRegisteredSubnet), CallFailed(CallFailed), CannotReleaseZero(CannotReleaseZero), + FailedInnerCall(FailedInnerCall), InsufficientFunds(InsufficientFunds), InvalidActorAddress(InvalidActorAddress), InvalidCrossMsgValue(InvalidCrossMsgValue), @@ -590,6 +806,8 @@ pub mod gateway_manager_facet { NotEnoughFundsToRelease(NotEnoughFundsToRelease), NotRegisteredSubnet(NotRegisteredSubnet), ReentrancyError(ReentrancyError), + SafeERC20FailedOperation(SafeERC20FailedOperation), + UnexpectedSupplySource(UnexpectedSupplySource), /// The standard solidity revert string, with selector /// Error(string) -- 0x08c379a0 RevertString(::std::string::String), @@ -604,6 +822,16 @@ pub mod gateway_manager_facet { ) { return Ok(Self::RevertString(decoded)); } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::AddressEmptyCode(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::AddressInsufficientBalance(decoded)); + } if let Ok(decoded) = ::decode( data, ) { @@ -619,6 +847,11 @@ pub mod gateway_manager_facet { ) { return Ok(Self::CannotReleaseZero(decoded)); } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::FailedInnerCall(decoded)); + } if let Ok(decoded) = ::decode( data, ) { @@ -664,12 +897,28 @@ pub mod gateway_manager_facet { ) { return Ok(Self::ReentrancyError(decoded)); } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::SafeERC20FailedOperation(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::UnexpectedSupplySource(decoded)); + } Err(::ethers::core::abi::Error::InvalidData.into()) } } impl ::ethers::core::abi::AbiEncode for GatewayManagerFacetErrors { fn encode(self) -> ::std::vec::Vec { match self { + Self::AddressEmptyCode(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::AddressInsufficientBalance(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } Self::AlreadyRegisteredSubnet(element) => { ::ethers::core::abi::AbiEncode::encode(element) } @@ -679,6 +928,9 @@ pub mod gateway_manager_facet { Self::CannotReleaseZero(element) => { ::ethers::core::abi::AbiEncode::encode(element) } + Self::FailedInnerCall(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } Self::InsufficientFunds(element) => { ::ethers::core::abi::AbiEncode::encode(element) } @@ -706,6 +958,12 @@ pub mod gateway_manager_facet { Self::ReentrancyError(element) => { ::ethers::core::abi::AbiEncode::encode(element) } + Self::SafeERC20FailedOperation(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::UnexpectedSupplySource(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), } } @@ -714,6 +972,14 @@ pub mod gateway_manager_facet { fn valid_selector(selector: [u8; 4]) -> bool { match selector { [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } _ if selector == ::selector() => { true @@ -724,6 +990,10 @@ pub mod gateway_manager_facet { == ::selector() => { true } + _ if selector + == ::selector() => { + true + } _ if selector == ::selector() => { true @@ -760,6 +1030,14 @@ pub mod gateway_manager_facet { == ::selector() => { true } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } _ => false, } } @@ -767,11 +1045,16 @@ pub mod gateway_manager_facet { impl ::core::fmt::Display for GatewayManagerFacetErrors { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { match self { + Self::AddressEmptyCode(element) => ::core::fmt::Display::fmt(element, f), + Self::AddressInsufficientBalance(element) => { + ::core::fmt::Display::fmt(element, f) + } Self::AlreadyRegisteredSubnet(element) => { ::core::fmt::Display::fmt(element, f) } Self::CallFailed(element) => ::core::fmt::Display::fmt(element, f), Self::CannotReleaseZero(element) => ::core::fmt::Display::fmt(element, f), + Self::FailedInnerCall(element) => ::core::fmt::Display::fmt(element, f), Self::InsufficientFunds(element) => ::core::fmt::Display::fmt(element, f), Self::InvalidActorAddress(element) => { ::core::fmt::Display::fmt(element, f) @@ -791,6 +1074,12 @@ pub mod gateway_manager_facet { ::core::fmt::Display::fmt(element, f) } Self::ReentrancyError(element) => ::core::fmt::Display::fmt(element, f), + Self::SafeERC20FailedOperation(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::UnexpectedSupplySource(element) => { + ::core::fmt::Display::fmt(element, f) + } Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), } } @@ -800,6 +1089,17 @@ pub mod gateway_manager_facet { Self::RevertString(value) } } + impl ::core::convert::From for GatewayManagerFacetErrors { + fn from(value: AddressEmptyCode) -> Self { + Self::AddressEmptyCode(value) + } + } + impl ::core::convert::From + for GatewayManagerFacetErrors { + fn from(value: AddressInsufficientBalance) -> Self { + Self::AddressInsufficientBalance(value) + } + } impl ::core::convert::From for GatewayManagerFacetErrors { fn from(value: AlreadyRegisteredSubnet) -> Self { Self::AlreadyRegisteredSubnet(value) @@ -815,6 +1115,11 @@ pub mod gateway_manager_facet { Self::CannotReleaseZero(value) } } + impl ::core::convert::From for GatewayManagerFacetErrors { + fn from(value: FailedInnerCall) -> Self { + Self::FailedInnerCall(value) + } + } impl ::core::convert::From for GatewayManagerFacetErrors { fn from(value: InsufficientFunds) -> Self { Self::InsufficientFunds(value) @@ -860,6 +1165,16 @@ pub mod gateway_manager_facet { Self::ReentrancyError(value) } } + impl ::core::convert::From for GatewayManagerFacetErrors { + fn from(value: SafeERC20FailedOperation) -> Self { + Self::SafeERC20FailedOperation(value) + } + } + impl ::core::convert::From for GatewayManagerFacetErrors { + fn from(value: UnexpectedSupplySource) -> Self { + Self::UnexpectedSupplySource(value) + } + } ///Container type for all input parameters for the `addStake` function with signature `addStake()` and selector `0x5a627dbc` #[derive( Clone, @@ -889,6 +1204,26 @@ pub mod gateway_manager_facet { pub subnet_id: SubnetID, pub to: FvmAddress, } + ///Container type for all input parameters for the `fundWithToken` function with signature `fundWithToken((uint64,address[]),(uint8,bytes),uint256)` and selector `0x0517e1aa` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "fundWithToken", + abi = "fundWithToken((uint64,address[]),(uint8,bytes),uint256)" + )] + pub struct FundWithTokenCall { + pub subnet_id: SubnetID, + pub to: FvmAddress, + pub amount: ::ethers::core::types::U256, + } ///Container type for all input parameters for the `kill` function with signature `kill()` and selector `0x41c0e1b5` #[derive( Clone, @@ -970,6 +1305,7 @@ pub mod gateway_manager_facet { pub enum GatewayManagerFacetCalls { AddStake(AddStakeCall), Fund(FundCall), + FundWithToken(FundWithTokenCall), Kill(KillCall), Register(RegisterCall), Release(ReleaseCall), @@ -991,6 +1327,11 @@ pub mod gateway_manager_facet { ) { return Ok(Self::Fund(decoded)); } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::FundWithToken(decoded)); + } if let Ok(decoded) = ::decode( data, ) { @@ -1026,6 +1367,9 @@ pub mod gateway_manager_facet { ::ethers::core::abi::AbiEncode::encode(element) } Self::Fund(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::FundWithToken(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } Self::Kill(element) => ::ethers::core::abi::AbiEncode::encode(element), Self::Register(element) => { ::ethers::core::abi::AbiEncode::encode(element) @@ -1045,6 +1389,7 @@ pub mod gateway_manager_facet { match self { Self::AddStake(element) => ::core::fmt::Display::fmt(element, f), Self::Fund(element) => ::core::fmt::Display::fmt(element, f), + Self::FundWithToken(element) => ::core::fmt::Display::fmt(element, f), Self::Kill(element) => ::core::fmt::Display::fmt(element, f), Self::Register(element) => ::core::fmt::Display::fmt(element, f), Self::Release(element) => ::core::fmt::Display::fmt(element, f), @@ -1065,6 +1410,11 @@ pub mod gateway_manager_facet { Self::Fund(value) } } + impl ::core::convert::From for GatewayManagerFacetCalls { + fn from(value: FundWithTokenCall) -> Self { + Self::FundWithToken(value) + } + } impl ::core::convert::From for GatewayManagerFacetCalls { fn from(value: KillCall) -> Self { Self::Kill(value) diff --git a/binding/src/gateway_router_facet.rs b/binding/src/gateway_router_facet.rs index a5a1f7c67..07d8f7545 100644 --- a/binding/src/gateway_router_facet.rs +++ b/binding/src/gateway_router_facet.rs @@ -955,15 +955,6 @@ pub mod gateway_router_facet { }, ], ), - ( - ::std::borrow::ToOwned::to_owned("NotEnoughBalance"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NotEnoughBalance"), - inputs: ::std::vec![], - }, - ], - ), ( ::std::borrow::ToOwned::to_owned("NotEnoughSubnetCircSupply"), ::std::vec![ @@ -1624,19 +1615,6 @@ pub mod gateway_router_facet { )] #[etherror(name = "NotAuthorized", abi = "NotAuthorized(address)")] pub struct NotAuthorized(pub ::ethers::core::types::Address); - ///Custom Error type `NotEnoughBalance` with signature `NotEnoughBalance()` and selector `0xad3a8b9e` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NotEnoughBalance", abi = "NotEnoughBalance()")] - pub struct NotEnoughBalance; ///Custom Error type `NotEnoughSubnetCircSupply` with signature `NotEnoughSubnetCircSupply()` and selector `0x74db2854` #[derive( Clone, @@ -1825,7 +1803,6 @@ pub mod gateway_router_facet { InvalidSubnet(InvalidSubnet), MaxMsgsPerBatchExceeded(MaxMsgsPerBatchExceeded), NotAuthorized(NotAuthorized), - NotEnoughBalance(NotEnoughBalance), NotEnoughSubnetCircSupply(NotEnoughSubnetCircSupply), NotRegisteredSubnet(NotRegisteredSubnet), NotSystemActor(NotSystemActor), @@ -1982,11 +1959,6 @@ pub mod gateway_router_facet { ) { return Ok(Self::NotAuthorized(decoded)); } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::NotEnoughBalance(decoded)); - } if let Ok(decoded) = ::decode( data, ) { @@ -2131,9 +2103,6 @@ pub mod gateway_router_facet { Self::NotAuthorized(element) => { ::ethers::core::abi::AbiEncode::encode(element) } - Self::NotEnoughBalance(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } Self::NotEnoughSubnetCircSupply(element) => { ::ethers::core::abi::AbiEncode::encode(element) } @@ -2280,10 +2249,6 @@ pub mod gateway_router_facet { == ::selector() => { true } - _ if selector - == ::selector() => { - true - } _ if selector == ::selector() => { true @@ -2401,7 +2366,6 @@ pub mod gateway_router_facet { ::core::fmt::Display::fmt(element, f) } Self::NotAuthorized(element) => ::core::fmt::Display::fmt(element, f), - Self::NotEnoughBalance(element) => ::core::fmt::Display::fmt(element, f), Self::NotEnoughSubnetCircSupply(element) => { ::core::fmt::Display::fmt(element, f) } @@ -2568,11 +2532,6 @@ pub mod gateway_router_facet { Self::NotAuthorized(value) } } - impl ::core::convert::From for GatewayRouterFacetErrors { - fn from(value: NotEnoughBalance) -> Self { - Self::NotEnoughBalance(value) - } - } impl ::core::convert::From for GatewayRouterFacetErrors { fn from(value: NotEnoughSubnetCircSupply) -> Self { Self::NotEnoughSubnetCircSupply(value) diff --git a/binding/src/lib.rs b/binding/src/lib.rs index 465197a72..b2cbdee69 100644 --- a/binding/src/lib.rs +++ b/binding/src/lib.rs @@ -14,7 +14,13 @@ pub mod gateway_manager_facet; #[allow(clippy::all)] pub mod gateway_getter_facet; #[allow(clippy::all)] -pub mod gateway_router_facet; +pub mod bottom_up_router_facet; +#[allow(clippy::all)] +pub mod checkpointing_facet; +#[allow(clippy::all)] +pub mod top_down_finality_facet; +#[allow(clippy::all)] +pub mod xnet_messaging_facet; #[allow(clippy::all)] pub mod gateway_messenger_facet; #[allow(clippy::all)] @@ -35,15 +41,20 @@ pub mod lib_staking; pub mod lib_staking_change_log; #[allow(clippy::all)] pub mod lib_gateway; +#[allow(clippy::all)] +pub mod lib_quorum; // The list of contracts need to convert FvmAddress to fvm_shared::Address fvm_address_conversion!(gateway_manager_facet); fvm_address_conversion!(gateway_getter_facet); -fvm_address_conversion!(gateway_router_facet); +fvm_address_conversion!(bottom_up_router_facet); +fvm_address_conversion!(xnet_messaging_facet); fvm_address_conversion!(gateway_messenger_facet); fvm_address_conversion!(subnet_actor_manager_facet); fvm_address_conversion!(lib_gateway); // The list of contracts that need to convert common types between each other common_type_conversion!(gateway_getter_facet, subnet_actor_manager_facet); -common_type_conversion!(subnet_actor_getter_facet, gateway_router_facet); +common_type_conversion!(subnet_actor_getter_facet, bottom_up_router_facet); +common_type_conversion!(subnet_actor_getter_facet, checkpointing_facet); +common_type_conversion!(subnet_actor_getter_facet, xnet_messaging_facet); diff --git a/binding/src/lib_gateway.rs b/binding/src/lib_gateway.rs index ef6c5deee..f73fbbf78 100644 --- a/binding/src/lib_gateway.rs +++ b/binding/src/lib_gateway.rs @@ -229,13 +229,13 @@ pub mod lib_gateway { __abi, ); #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4`\x17W`:\x90\x81`\x1D\x8290\x81PP\xF3[`\0\x80\xFD\xFE`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \x9E\xEA\xA2\xE9\n}-\xF3\x9A\xA3\x81\xC0\xAF,\xDB\xFE-\xD6\x0C\xF4\x01vDI\x19g*v\x83o>\xB0dsolcC\0\x08\x13\x003"; + const __BYTECODE: &[u8] = b"`\x80\x80`@R4`\x17W`:\x90\x81`\x1D\x8290\x81PP\xF3[`\0\x80\xFD\xFE`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xEA\xAE\x80\xED>\xB9\r\\k\xFF\xE2\"\xFB\x11\\\x9CH\xAD\x94\xA5\x0B>\x12\xBEj1r\x10\nX\xC3\xCBdsolcC\0\x08\x13\x003"; /// The bytecode of the contract. pub static LIBGATEWAY_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __BYTECODE, ); #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \x9E\xEA\xA2\xE9\n}-\xF3\x9A\xA3\x81\xC0\xAF,\xDB\xFE-\xD6\x0C\xF4\x01vDI\x19g*v\x83o>\xB0dsolcC\0\x08\x13\x003"; + const __DEPLOYED_BYTECODE: &[u8] = b"`\0\x80\xFD\xFE\xA2dipfsX\"\x12 \xEA\xAE\x80\xED>\xB9\r\\k\xFF\xE2\"\xFB\x11\\\x9CH\xAD\x94\xA5\x0B>\x12\xBEj1r\x10\nX\xC3\xCBdsolcC\0\x08\x13\x003"; /// The deployed bytecode of the contract. pub static LIBGATEWAY_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __DEPLOYED_BYTECODE, diff --git a/binding/src/lib_quorum.rs b/binding/src/lib_quorum.rs new file mode 100644 index 000000000..72ee56bd0 --- /dev/null +++ b/binding/src/lib_quorum.rs @@ -0,0 +1,311 @@ +pub use lib_quorum::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod lib_quorum { + #[allow(deprecated)] + fn __abi() -> ::ethers::core::abi::Abi { + ::ethers::core::abi::ethabi::Contract { + constructor: ::core::option::Option::None, + functions: ::std::collections::BTreeMap::new(), + events: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("QuorumReached"), + ::std::vec![ + ::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("QuorumReached"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("objKind"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + indexed: false, + }, + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("height"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + indexed: false, + }, + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("objHash"), + kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( + 32usize, + ), + indexed: false, + }, + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("quorumWeight"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + indexed: false, + }, + ], + anonymous: false, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("QuorumWeightUpdated"), + ::std::vec![ + ::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned( + "QuorumWeightUpdated", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("objKind"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + indexed: false, + }, + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("height"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + indexed: false, + }, + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("objHash"), + kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes( + 32usize, + ), + indexed: false, + }, + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("newWeight"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint( + 256usize, + ), + indexed: false, + }, + ], + anonymous: false, + }, + ], + ), + ]), + errors: ::std::collections::BTreeMap::new(), + receive: false, + fallback: false, + } + } + ///The parsed JSON ABI of the contract. + pub static LIBQUORUM_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new( + __abi, + ); + #[rustfmt::skip] + const __BYTECODE: &[u8] = b"`\x80\x80`@R4a\0\x1AWa\x04Q\x90\x81a\0 \x8290\x81PP\xF3[`\0\x80\xFD\xFE`\x80\x80`@R`\x046\x10\x15a\0\x13W`\0\x80\xFD[`\x005`\xE0\x1Cc\x08\xA6\xAD%\x14a\0(W`\0\x80\xFD[`@6`\x03\x19\x01\x12a\x03\x80W`\x80\x81a\0B`\0\x93a\x03\x85V[\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x01R`$5`\0R`\x02`\x045\x01` R`@`\0 `\xFF`\x04`@Q\x92a\0~\x84a\x03\x85V[\x80T\x84R`\x01\x81\x01T` \x85\x01R`\x02\x81\x01T`@\x85\x01R`\x03\x81\x01T``\x85\x01R\x01T\x16\x15\x15`\x80\x82\x01R`$5`\0R`\x05`\x045\x01` R`@`\0 \x90`@Q\x90\x81\x82` \x85T\x92\x83\x81R\x01\x80\x95`\0R` `\0 \x92`\0[\x81\x81\x10a\x03gWPPa\0\xF1\x92P\x03\x83a\x03\xB7V[\x81Q\x90a\0\xFD\x82a\x03\xD9V[\x91a\x01\x0B`@Q\x93\x84a\x03\xB7V[\x80\x83Ra\x01\x17\x81a\x03\xD9V[`\0[`\x1F\x19\x82\x01\x81\x10a\x03VWPP`\0[\x81\x81\x10a\x026WPP`@Q\x92`\x80`\xE0\x85\x01\x92\x80Q\x86R` \x81\x01Q` \x87\x01R`@\x81\x01Q`@\x87\x01R``\x81\x01Q``\x87\x01R\x01Q\x15\x15`\x80\x85\x01R`\xE0`\xA0\x85\x01RQ\x80\x91Ra\x01\0\x83\x01\x93\x90`\0[\x81\x81\x10a\x02\x17WPPP\x81\x83\x03`\xC0\x83\x01R\x80Q\x80\x84R` \x84\x01\x90` \x80\x82`\x05\x1B\x87\x01\x01\x93\x01\x91`\0\x95[\x82\x87\x10a\x01\xB8W\x85\x85\x03\x86\xF3[\x90\x91\x92\x93`\x1F\x19\x82\x82\x03\x01\x83R\x84Q\x80Q\x90\x81\x83R`\0[\x82\x81\x10a\x02\x02WPP` \x80\x83\x83`\0\x83\x80\x96`\x01\x98\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x96\x01\x93\x01\x96\x01\x95\x90\x92\x91\x92a\x01\xABV[\x80` \x80\x92\x84\x01\x01Q\x82\x82\x87\x01\x01R\x01a\x01\xD0V[\x82Q`\x01`\x01`\xA0\x1B\x03\x16\x86R` \x95\x86\x01\x95\x90\x92\x01\x91`\x01\x01a\x01~V[`$5`\0\x90\x81R`\x045`\x06\x01` R`@\x90 `\x01`\x01`\xA0\x1B\x03a\x02]\x83\x88a\x03\xF1V[Q\x16`\0R` R`@`\0 `@Q\x90`\0\x90\x80T\x90\x81`\x01\x1C\x91`\x01\x81\x16\x15a\x03LW[` \x83\x10`\x01\x82\x16\x14a\x036W\x82\x85R`\x01\x81\x16\x90\x81\x15a\x03\x0FWP`\x01\x14a\x02\xD5W[PP\x90a\x02\xB9\x81`\x01\x94\x93\x03\x82a\x03\xB7V[a\x02\xC3\x82\x87a\x03\xF1V[Ra\x02\xCE\x81\x86a\x03\xF1V[P\x01a\x01*V[`\0\x90\x81R` \x81 \x90\x92P[\x81\x83\x10a\x02\xF9WPP\x81\x01` \x01a\x02\xB9\x82a\x02\xA7V[`\x01\x81` \x92T\x83\x86\x88\x01\x01R\x01\x92\x01\x91a\x02\xE2V[`\xFF\x19\x16` \x80\x87\x01\x91\x90\x91R\x92\x15\x15`\x05\x1B\x85\x01\x90\x92\x01\x92Pa\x02\xB9\x91P\x83\x90Pa\x02\xA7V[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x02\x83V[\x80``` \x80\x93\x88\x01\x01R\x01a\x01\x1AV[\x84T\x83R`\x01\x94\x85\x01\x94\x87\x94P` \x90\x93\x01\x92\x01a\0\xDCV[`\0\x80\xFD[`\xA0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xA1W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xA1W`@RV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x03\xA1W`\x05\x1B` \x01\x90V[\x80Q\x82\x10\x15a\x04\x05W` \x91`\x05\x1B\x01\x01\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD\xFE\xA2dipfsX\"\x12 \x9E\xD2\xF9\xCE\x15\xA8s\xF1\xF3e\xBB\xC4\xE2o\xC3\xAA\x06\xF0eU\xDF\xF5t\xF2T\x1Avh\x93a\xB5\xE9dsolcC\0\x08\x13\x003"; + /// The bytecode of the contract. + pub static LIBQUORUM_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __BYTECODE, + ); + #[rustfmt::skip] + const __DEPLOYED_BYTECODE: &[u8] = b"`\x80\x80`@R`\x046\x10\x15a\0\x13W`\0\x80\xFD[`\x005`\xE0\x1Cc\x08\xA6\xAD%\x14a\0(W`\0\x80\xFD[`@6`\x03\x19\x01\x12a\x03\x80W`\x80\x81a\0B`\0\x93a\x03\x85V[\x82\x81R\x82` \x82\x01R\x82`@\x82\x01R\x82``\x82\x01R\x01R`$5`\0R`\x02`\x045\x01` R`@`\0 `\xFF`\x04`@Q\x92a\0~\x84a\x03\x85V[\x80T\x84R`\x01\x81\x01T` \x85\x01R`\x02\x81\x01T`@\x85\x01R`\x03\x81\x01T``\x85\x01R\x01T\x16\x15\x15`\x80\x82\x01R`$5`\0R`\x05`\x045\x01` R`@`\0 \x90`@Q\x90\x81\x82` \x85T\x92\x83\x81R\x01\x80\x95`\0R` `\0 \x92`\0[\x81\x81\x10a\x03gWPPa\0\xF1\x92P\x03\x83a\x03\xB7V[\x81Q\x90a\0\xFD\x82a\x03\xD9V[\x91a\x01\x0B`@Q\x93\x84a\x03\xB7V[\x80\x83Ra\x01\x17\x81a\x03\xD9V[`\0[`\x1F\x19\x82\x01\x81\x10a\x03VWPP`\0[\x81\x81\x10a\x026WPP`@Q\x92`\x80`\xE0\x85\x01\x92\x80Q\x86R` \x81\x01Q` \x87\x01R`@\x81\x01Q`@\x87\x01R``\x81\x01Q``\x87\x01R\x01Q\x15\x15`\x80\x85\x01R`\xE0`\xA0\x85\x01RQ\x80\x91Ra\x01\0\x83\x01\x93\x90`\0[\x81\x81\x10a\x02\x17WPPP\x81\x83\x03`\xC0\x83\x01R\x80Q\x80\x84R` \x84\x01\x90` \x80\x82`\x05\x1B\x87\x01\x01\x93\x01\x91`\0\x95[\x82\x87\x10a\x01\xB8W\x85\x85\x03\x86\xF3[\x90\x91\x92\x93`\x1F\x19\x82\x82\x03\x01\x83R\x84Q\x80Q\x90\x81\x83R`\0[\x82\x81\x10a\x02\x02WPP` \x80\x83\x83`\0\x83\x80\x96`\x01\x98\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x96\x01\x93\x01\x96\x01\x95\x90\x92\x91\x92a\x01\xABV[\x80` \x80\x92\x84\x01\x01Q\x82\x82\x87\x01\x01R\x01a\x01\xD0V[\x82Q`\x01`\x01`\xA0\x1B\x03\x16\x86R` \x95\x86\x01\x95\x90\x92\x01\x91`\x01\x01a\x01~V[`$5`\0\x90\x81R`\x045`\x06\x01` R`@\x90 `\x01`\x01`\xA0\x1B\x03a\x02]\x83\x88a\x03\xF1V[Q\x16`\0R` R`@`\0 `@Q\x90`\0\x90\x80T\x90\x81`\x01\x1C\x91`\x01\x81\x16\x15a\x03LW[` \x83\x10`\x01\x82\x16\x14a\x036W\x82\x85R`\x01\x81\x16\x90\x81\x15a\x03\x0FWP`\x01\x14a\x02\xD5W[PP\x90a\x02\xB9\x81`\x01\x94\x93\x03\x82a\x03\xB7V[a\x02\xC3\x82\x87a\x03\xF1V[Ra\x02\xCE\x81\x86a\x03\xF1V[P\x01a\x01*V[`\0\x90\x81R` \x81 \x90\x92P[\x81\x83\x10a\x02\xF9WPP\x81\x01` \x01a\x02\xB9\x82a\x02\xA7V[`\x01\x81` \x92T\x83\x86\x88\x01\x01R\x01\x92\x01\x91a\x02\xE2V[`\xFF\x19\x16` \x80\x87\x01\x91\x90\x91R\x92\x15\x15`\x05\x1B\x85\x01\x90\x92\x01\x92Pa\x02\xB9\x91P\x83\x90Pa\x02\xA7V[cNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[\x91`\x7F\x16\x91a\x02\x83V[\x80``` \x80\x93\x88\x01\x01R\x01a\x01\x1AV[\x84T\x83R`\x01\x94\x85\x01\x94\x87\x94P` \x90\x93\x01\x92\x01a\0\xDCV[`\0\x80\xFD[`\xA0\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xA1W`@RV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x03\xA1W`@RV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\x03\xA1W`\x05\x1B` \x01\x90V[\x80Q\x82\x10\x15a\x04\x05W` \x91`\x05\x1B\x01\x01\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD\xFE\xA2dipfsX\"\x12 \x9E\xD2\xF9\xCE\x15\xA8s\xF1\xF3e\xBB\xC4\xE2o\xC3\xAA\x06\xF0eU\xDF\xF5t\xF2T\x1Avh\x93a\xB5\xE9dsolcC\0\x08\x13\x003"; + /// The deployed bytecode of the contract. + pub static LIBQUORUM_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( + __DEPLOYED_BYTECODE, + ); + pub struct LibQuorum(::ethers::contract::Contract); + impl ::core::clone::Clone for LibQuorum { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for LibQuorum { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for LibQuorum { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for LibQuorum { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(::core::stringify!(LibQuorum)).field(&self.address()).finish() + } + } + impl LibQuorum { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + LIBQUORUM_ABI.clone(), + client, + ), + ) + } + /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it. + /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction + /// + /// Notes: + /// - If there are no constructor arguments, you should pass `()` as the argument. + /// - The default poll duration is 7 seconds. + /// - The default number of confirmations is 1 block. + /// + /// + /// # Example + /// + /// Generate contract bindings with `abigen!` and deploy a new contract instance. + /// + /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact. + /// + /// ```ignore + /// # async fn deploy(client: ::std::sync::Arc) { + /// abigen!(Greeter, "../greeter.json"); + /// + /// let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap(); + /// let msg = greeter_contract.greet().call().await.unwrap(); + /// # } + /// ``` + pub fn deploy( + client: ::std::sync::Arc, + constructor_args: T, + ) -> ::core::result::Result< + ::ethers::contract::builders::ContractDeployer, + ::ethers::contract::ContractError, + > { + let factory = ::ethers::contract::ContractFactory::new( + LIBQUORUM_ABI.clone(), + LIBQUORUM_BYTECODE.clone().into(), + client, + ); + let deployer = factory.deploy(constructor_args)?; + let deployer = ::ethers::contract::ContractDeployer::new(deployer); + Ok(deployer) + } + ///Gets the contract's `QuorumReached` event + pub fn quorum_reached_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + QuorumReachedFilter, + > { + self.0.event() + } + ///Gets the contract's `QuorumWeightUpdated` event + pub fn quorum_weight_updated_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + QuorumWeightUpdatedFilter, + > { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + LibQuorumEvents, + > { + self.0.event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for LibQuorum { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "QuorumReached", + abi = "QuorumReached(uint8,uint256,bytes32,uint256)" + )] + pub struct QuorumReachedFilter { + pub obj_kind: u8, + pub height: ::ethers::core::types::U256, + pub obj_hash: [u8; 32], + pub quorum_weight: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethevent( + name = "QuorumWeightUpdated", + abi = "QuorumWeightUpdated(uint8,uint256,bytes32,uint256)" + )] + pub struct QuorumWeightUpdatedFilter { + pub obj_kind: u8, + pub height: ::ethers::core::types::U256, + pub obj_hash: [u8; 32], + pub new_weight: ::ethers::core::types::U256, + } + ///Container type for all of the contract's events + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum LibQuorumEvents { + QuorumReachedFilter(QuorumReachedFilter), + QuorumWeightUpdatedFilter(QuorumWeightUpdatedFilter), + } + impl ::ethers::contract::EthLogDecode for LibQuorumEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = QuorumReachedFilter::decode_log(log) { + return Ok(LibQuorumEvents::QuorumReachedFilter(decoded)); + } + if let Ok(decoded) = QuorumWeightUpdatedFilter::decode_log(log) { + return Ok(LibQuorumEvents::QuorumWeightUpdatedFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for LibQuorumEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::QuorumReachedFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::QuorumWeightUpdatedFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for LibQuorumEvents { + fn from(value: QuorumReachedFilter) -> Self { + Self::QuorumReachedFilter(value) + } + } + impl ::core::convert::From for LibQuorumEvents { + fn from(value: QuorumWeightUpdatedFilter) -> Self { + Self::QuorumWeightUpdatedFilter(value) + } + } +} diff --git a/binding/src/lib_staking.rs b/binding/src/lib_staking.rs index f41598995..cbb643d2b 100644 --- a/binding/src/lib_staking.rs +++ b/binding/src/lib_staking.rs @@ -106,13 +106,13 @@ pub mod lib_staking { __abi, ); #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4a\0\x1CWa\x02\x14\x90\x81a\0\"\x8290\x81`.\x01R\xF3[`\0\x80\xFD\xFE`@`\x80\x81R`\x04\x806\x10\x15a\0\x14W`\0\x80\xFD[`\0\x91\x825`\xE0\x1Cc\x82\x98^\x0B\x14a\0+W`\0\x80\xFD[0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14a\x01\xDAW` 6`\x03\x19\x01\x12a\x01\xDAW\x815`\x01`\x01`\xA0\x1B\x03\x80\x82\x16\x90\x81\x83\x03a\x01\xD6W`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`!` R`@\x90 T\x92\x83\x15a\x01\xC6W`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`!` R`@\x90 \x86\x90U`\x0ET\x86\x91\x16\x80;\x15a\x01\xC2W\x81\x90`$\x86Q\x80\x94\x81\x93clq*\xB9`\xE1\x1B\x83R\x88\x8B\x84\x01RZ\xF1\x80\x15a\x01\xB8Wa\x01\x8AW[P\x81G\x10a\x01tW\x84\x80\x80\x93\x81\x93Z\xF1=\x15a\x01oWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF=\x81\x81\x11a\x01\\W\x83Q\x91`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x83\x01\x90\x81\x11\x83\x82\x10\x17a\x01GW\x84R\x81R\x84` =\x92\x01>[\x15a\x01:W\x82\x80\xF3[Qc\n\x12\xF5!`\xE1\x1B\x81R\xFD[`A\x86cNH{q`\xE0\x1B`\0RR`$`\0\xFD[cNH{q`\xE0\x1B\x86R`A\x85R`$\x86\xFD[a\x011V[\x82Qc\xCDx`Y`\xE0\x1B\x81R0\x81\x86\x01R`$\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x96\x92\x96\x11a\x01\xA5W\x83R\x938a\0\xE0V[cNH{q`\xE0\x1B\x82R`A\x85R`$\x82\xFD[\x84Q=\x88\x82>=\x90\xFD[P\x80\xFD[\x84Qcg0\x0F\x91`\xE1\x1B\x81R\x86\x90\xFD[\x85\x80\xFD[\x82\x80\xFD\xFE\xA2dipfsX\"\x12 t)\xAAs\x17\xDB\x8EZ\x834\x13\xCA`\xF0B\x0E8\xF2\xDC\xED}\xD9\xFF\x92\xE0\xA3\x06\x8D\xBC\xF2z\xD1dsolcC\0\x08\x13\x003"; + const __BYTECODE: &[u8] = b"`\x80\x80`@R4a\0\x1CWa\x02\x14\x90\x81a\0\"\x8290\x81`.\x01R\xF3[`\0\x80\xFD\xFE`@`\x80\x81R`\x04\x806\x10\x15a\0\x14W`\0\x80\xFD[`\0\x91\x825`\xE0\x1Cc\x82\x98^\x0B\x14a\0+W`\0\x80\xFD[0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14a\x01\xDAW` 6`\x03\x19\x01\x12a\x01\xDAW\x815`\x01`\x01`\xA0\x1B\x03\x80\x82\x16\x90\x81\x83\x03a\x01\xD6W`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`!` R`@\x90 T\x92\x83\x15a\x01\xC6W`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`!` R`@\x90 \x86\x90U`\x0ET\x86\x91\x16\x80;\x15a\x01\xC2W\x81\x90`$\x86Q\x80\x94\x81\x93clq*\xB9`\xE1\x1B\x83R\x88\x8B\x84\x01RZ\xF1\x80\x15a\x01\xB8Wa\x01\x8AW[P\x81G\x10a\x01tW\x84\x80\x80\x93\x81\x93Z\xF1=\x15a\x01oWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF=\x81\x81\x11a\x01\\W\x83Q\x91`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x83\x01\x90\x81\x11\x83\x82\x10\x17a\x01GW\x84R\x81R\x84` =\x92\x01>[\x15a\x01:W\x82\x80\xF3[Qc\n\x12\xF5!`\xE1\x1B\x81R\xFD[`A\x86cNH{q`\xE0\x1B`\0RR`$`\0\xFD[cNH{q`\xE0\x1B\x86R`A\x85R`$\x86\xFD[a\x011V[\x82Qc\xCDx`Y`\xE0\x1B\x81R0\x81\x86\x01R`$\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x96\x92\x96\x11a\x01\xA5W\x83R\x938a\0\xE0V[cNH{q`\xE0\x1B\x82R`A\x85R`$\x82\xFD[\x84Q=\x88\x82>=\x90\xFD[P\x80\xFD[\x84Qcg0\x0F\x91`\xE1\x1B\x81R\x86\x90\xFD[\x85\x80\xFD[\x82\x80\xFD\xFE\xA2dipfsX\"\x12 d[,\xDE\xDE\xD3G\xC4\\\xB8\xAB\x1B3\xC2\xE5\xE0:\xCEXt\xC3\xEE'}0{\x8A\xE82B\x10VdsolcC\0\x08\x13\x003"; /// The bytecode of the contract. pub static LIBSTAKING_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __BYTECODE, ); #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`@`\x80\x81R`\x04\x806\x10\x15a\0\x14W`\0\x80\xFD[`\0\x91\x825`\xE0\x1Cc\x82\x98^\x0B\x14a\0+W`\0\x80\xFD[0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14a\x01\xDAW` 6`\x03\x19\x01\x12a\x01\xDAW\x815`\x01`\x01`\xA0\x1B\x03\x80\x82\x16\x90\x81\x83\x03a\x01\xD6W`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`!` R`@\x90 T\x92\x83\x15a\x01\xC6W`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`!` R`@\x90 \x86\x90U`\x0ET\x86\x91\x16\x80;\x15a\x01\xC2W\x81\x90`$\x86Q\x80\x94\x81\x93clq*\xB9`\xE1\x1B\x83R\x88\x8B\x84\x01RZ\xF1\x80\x15a\x01\xB8Wa\x01\x8AW[P\x81G\x10a\x01tW\x84\x80\x80\x93\x81\x93Z\xF1=\x15a\x01oWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF=\x81\x81\x11a\x01\\W\x83Q\x91`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x83\x01\x90\x81\x11\x83\x82\x10\x17a\x01GW\x84R\x81R\x84` =\x92\x01>[\x15a\x01:W\x82\x80\xF3[Qc\n\x12\xF5!`\xE1\x1B\x81R\xFD[`A\x86cNH{q`\xE0\x1B`\0RR`$`\0\xFD[cNH{q`\xE0\x1B\x86R`A\x85R`$\x86\xFD[a\x011V[\x82Qc\xCDx`Y`\xE0\x1B\x81R0\x81\x86\x01R`$\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x96\x92\x96\x11a\x01\xA5W\x83R\x938a\0\xE0V[cNH{q`\xE0\x1B\x82R`A\x85R`$\x82\xFD[\x84Q=\x88\x82>=\x90\xFD[P\x80\xFD[\x84Qcg0\x0F\x91`\xE1\x1B\x81R\x86\x90\xFD[\x85\x80\xFD[\x82\x80\xFD\xFE\xA2dipfsX\"\x12 t)\xAAs\x17\xDB\x8EZ\x834\x13\xCA`\xF0B\x0E8\xF2\xDC\xED}\xD9\xFF\x92\xE0\xA3\x06\x8D\xBC\xF2z\xD1dsolcC\0\x08\x13\x003"; + const __DEPLOYED_BYTECODE: &[u8] = b"`@`\x80\x81R`\x04\x806\x10\x15a\0\x14W`\0\x80\xFD[`\0\x91\x825`\xE0\x1Cc\x82\x98^\x0B\x14a\0+W`\0\x80\xFD[0\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x14a\x01\xDAW` 6`\x03\x19\x01\x12a\x01\xDAW\x815`\x01`\x01`\xA0\x1B\x03\x80\x82\x16\x90\x81\x83\x03a\x01\xD6W`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`!` R`@\x90 T\x92\x83\x15a\x01\xC6W`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`!` R`@\x90 \x86\x90U`\x0ET\x86\x91\x16\x80;\x15a\x01\xC2W\x81\x90`$\x86Q\x80\x94\x81\x93clq*\xB9`\xE1\x1B\x83R\x88\x8B\x84\x01RZ\xF1\x80\x15a\x01\xB8Wa\x01\x8AW[P\x81G\x10a\x01tW\x84\x80\x80\x93\x81\x93Z\xF1=\x15a\x01oWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF=\x81\x81\x11a\x01\\W\x83Q\x91`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x83\x01\x90\x81\x11\x83\x82\x10\x17a\x01GW\x84R\x81R\x84` =\x92\x01>[\x15a\x01:W\x82\x80\xF3[Qc\n\x12\xF5!`\xE1\x1B\x81R\xFD[`A\x86cNH{q`\xE0\x1B`\0RR`$`\0\xFD[cNH{q`\xE0\x1B\x86R`A\x85R`$\x86\xFD[a\x011V[\x82Qc\xCDx`Y`\xE0\x1B\x81R0\x81\x86\x01R`$\x90\xFD[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x96\x92\x96\x11a\x01\xA5W\x83R\x938a\0\xE0V[cNH{q`\xE0\x1B\x82R`A\x85R`$\x82\xFD[\x84Q=\x88\x82>=\x90\xFD[P\x80\xFD[\x84Qcg0\x0F\x91`\xE1\x1B\x81R\x86\x90\xFD[\x85\x80\xFD[\x82\x80\xFD\xFE\xA2dipfsX\"\x12 d[,\xDE\xDE\xD3G\xC4\\\xB8\xAB\x1B3\xC2\xE5\xE0:\xCEXt\xC3\xEE'}0{\x8A\xE82B\x10VdsolcC\0\x08\x13\x003"; /// The deployed bytecode of the contract. pub static LIBSTAKING_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __DEPLOYED_BYTECODE, diff --git a/binding/src/lib_staking_change_log.rs b/binding/src/lib_staking_change_log.rs index 6ed33eba6..62c4dc5b9 100644 --- a/binding/src/lib_staking_change_log.rs +++ b/binding/src/lib_staking_change_log.rs @@ -62,13 +62,13 @@ pub mod lib_staking_change_log { ::ethers::core::abi::Abi, > = ::ethers::contract::Lazy::new(__abi); #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4`\x17W`:\x90\x81`\x1D\x8290\x81PP\xF3[`\0\x80\xFD\xFE`\0\x80\xFD\xFE\xA2dipfsX\"\x12 f.w\r^\x0B>UR\xAA\xDF~\t\x9BG\xDA\x16)(F\x0E\x01t\xFF\xD6\x8C\xF0\xE2\x81\xAE\xBE\x9CdsolcC\0\x08\x13\x003"; + const __BYTECODE: &[u8] = b"`\x80\x80`@R4`\x17W`:\x90\x81`\x1D\x8290\x81PP\xF3[`\0\x80\xFD\xFE`\0\x80\xFD\xFE\xA2dipfsX\"\x12 +z\xB6\x83\xC1H!\x19\xD7\x92\xCE\xBA\xB2\xA7\xF6\xACR\x11\xF1\x8A\xEF\xCE\xE2\xD9\x97\xB5\x9A\xB8\xF4$\x9F:dsolcC\0\x08\x13\x003"; /// The bytecode of the contract. pub static LIBSTAKINGCHANGELOG_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __BYTECODE, ); #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\0\x80\xFD\xFE\xA2dipfsX\"\x12 f.w\r^\x0B>UR\xAA\xDF~\t\x9BG\xDA\x16)(F\x0E\x01t\xFF\xD6\x8C\xF0\xE2\x81\xAE\xBE\x9CdsolcC\0\x08\x13\x003"; + const __DEPLOYED_BYTECODE: &[u8] = b"`\0\x80\xFD\xFE\xA2dipfsX\"\x12 +z\xB6\x83\xC1H!\x19\xD7\x92\xCE\xBA\xB2\xA7\xF6\xACR\x11\xF1\x8A\xEF\xCE\xE2\xD9\x97\xB5\x9A\xB8\xF4$\x9F:dsolcC\0\x08\x13\x003"; /// The deployed bytecode of the contract. pub static LIBSTAKINGCHANGELOG_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __DEPLOYED_BYTECODE, diff --git a/binding/src/register_subnet_facet.rs b/binding/src/register_subnet_facet.rs index f3fd808e0..2fa6148c2 100644 --- a/binding/src/register_subnet_facet.rs +++ b/binding/src/register_subnet_facet.rs @@ -45,6 +45,12 @@ pub mod register_subnet_facet { ::ethers::core::abi::ethabi::ParamType::Uint(256usize), ::ethers::core::abi::ethabi::ParamType::Int(8usize), ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + ::ethers::core::abi::ethabi::ParamType::Address, + ], + ), ], ), internal_type: ::core::option::Option::Some( @@ -154,7 +160,7 @@ pub mod register_subnet_facet { ), ) } - ///Calls the contract's `newSubnetActor` (0xaa3d1588) function + ///Calls the contract's `newSubnetActor` (0x7be005d5) function pub fn new_subnet_actor( &self, params: ConstructorParams, @@ -163,7 +169,7 @@ pub mod register_subnet_facet { ::ethers::core::types::Address, > { self.0 - .method_hash([170, 61, 21, 136], (params,)) + .method_hash([123, 224, 5, 213], (params,)) .expect("method not found (this should never happen)") } ///Gets the contract's `SubnetDeployed` event @@ -316,7 +322,7 @@ pub mod register_subnet_facet { pub struct SubnetDeployedFilter { pub subnet_addr: ::ethers::core::types::Address, } - ///Container type for all input parameters for the `newSubnetActor` function with signature `newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8))` and selector `0xaa3d1588` + ///Container type for all input parameters for the `newSubnetActor` function with signature `newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))` and selector `0x7be005d5` #[derive( Clone, ::ethers::contract::EthCall, @@ -329,12 +335,12 @@ pub mod register_subnet_facet { )] #[ethcall( name = "newSubnetActor", - abi = "newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8))" + abi = "newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))" )] pub struct NewSubnetActorCall { pub params: ConstructorParams, } - ///Container type for all return fields from the `newSubnetActor` function with signature `newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8))` and selector `0xaa3d1588` + ///Container type for all return fields from the `newSubnetActor` function with signature `newSubnetActor(((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address)))` and selector `0x7be005d5` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -348,7 +354,7 @@ pub mod register_subnet_facet { pub struct NewSubnetActorReturn { pub subnet_addr: ::ethers::core::types::Address, } - ///`ConstructorParams((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8)` + ///`ConstructorParams((uint64,address[]),address,uint8,uint256,uint64,uint64,uint8,uint16,uint256,int8,uint8,(uint8,address))` #[derive( Clone, ::ethers::contract::EthAbiType, @@ -371,6 +377,7 @@ pub mod register_subnet_facet { pub min_cross_msg_fee: ::ethers::core::types::U256, pub power_scale: i8, pub permission_mode: u8, + pub supply_source: SupplySource, } ///`SubnetID(uint64,address[])` #[derive( @@ -387,4 +394,19 @@ pub mod register_subnet_facet { pub root: u64, pub route: ::std::vec::Vec<::ethers::core::types::Address>, } + ///`SupplySource(uint8,address)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SupplySource { + pub kind: u8, + pub token_address: ::ethers::core::types::Address, + } } diff --git a/binding/src/subnet_actor_diamond.rs b/binding/src/subnet_actor_diamond.rs index d7052d5ff..1eaac9c7f 100644 --- a/binding/src/subnet_actor_diamond.rs +++ b/binding/src/subnet_actor_diamond.rs @@ -62,6 +62,12 @@ pub mod subnet_actor_diamond { ::ethers::core::abi::ethabi::ParamType::Uint(256usize), ::ethers::core::abi::ethabi::ParamType::Int(8usize), ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + ::ethers::core::abi::ethabi::ParamType::Address, + ], + ), ], ), internal_type: ::core::option::Option::Some( @@ -345,6 +351,17 @@ pub mod subnet_actor_diamond { }, ], ), + ( + ::std::borrow::ToOwned::to_owned("InvalidERC20Address"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidERC20Address", + ), + inputs: ::std::vec![], + }, + ], + ), ( ::std::borrow::ToOwned::to_owned("InvalidMajorityPercentage"), ::std::vec![ @@ -463,7 +480,7 @@ pub mod subnet_actor_diamond { ::ethers::core::abi::Abi, > = ::ethers::contract::Lazy::new(__abi); #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R6\x15`\x91W`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`oWP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[=\x90\xFD[c\n\x82\xDDs`\xE3\x1B`\x80R`\x01`\x01`\xE0\x1B\x03\x19\x16`\x84R`\x7F\x19`\xA4\x01`\x80\xFD[`\x0ET`\x01`\x01`\xA0\x1B\x03\x163\x03`\xA4W\0[c\xE7\xE6\x01\xDB`\xE0\x1B`\x80R`\x04`\x80\xFD\xFE\xA2dipfsX\"\x12 4Gw1\xF6\x068\x83\xC0\xC4\xE6E$\x1BW]\xEC\xDF\xF7r\xED\x0E\xED\\DNd\x8E\xAA\xD0\x9A.dsolcC\0\x08\x13\x003"; + const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R6\x15`\x91W`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`oWP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[=\x90\xFD[c\n\x82\xDDs`\xE3\x1B`\x80R`\x01`\x01`\xE0\x1B\x03\x19\x16`\x84R`\x7F\x19`\xA4\x01`\x80\xFD[`\x0ET`\x01`\x01`\xA0\x1B\x03\x163\x03`\xA4W\0[c\xE7\xE6\x01\xDB`\xE0\x1B`\x80R`\x04`\x80\xFD\xFE\xA2dipfsX\"\x12 8\xFFef!\x9Ej\xF1b\xED\xDD\x14\xAB\x03\xC5$\xF8\xE6E\xFBg\xE3\xFC\xD9\x9C\xF2\xAEb\x1F\x9BR\x04dsolcC\0\x08\x13\x003"; /// The deployed bytecode of the contract. pub static SUBNETACTORDIAMOND_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __DEPLOYED_BYTECODE, @@ -733,6 +750,19 @@ pub mod subnet_actor_diamond { )] #[etherror(name = "InvalidCollateral", abi = "InvalidCollateral()")] pub struct InvalidCollateral; + ///Custom Error type `InvalidERC20Address` with signature `InvalidERC20Address()` and selector `0xedfc5056` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidERC20Address", abi = "InvalidERC20Address()")] + pub struct InvalidERC20Address; ///Custom Error type `InvalidMajorityPercentage` with signature `InvalidMajorityPercentage()` and selector `0x75c3b427` #[derive( Clone, @@ -862,6 +892,7 @@ pub mod subnet_actor_diamond { IncorrectFacetCutAction(IncorrectFacetCutAction), InitializationFunctionReverted(InitializationFunctionReverted), InvalidCollateral(InvalidCollateral), + InvalidERC20Address(InvalidERC20Address), InvalidMajorityPercentage(InvalidMajorityPercentage), InvalidPowerScale(InvalidPowerScale), InvalidSubmissionPeriod(InvalidSubmissionPeriod), @@ -952,6 +983,11 @@ pub mod subnet_actor_diamond { ) { return Ok(Self::InvalidCollateral(decoded)); } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidERC20Address(decoded)); + } if let Ok(decoded) = ::decode( data, ) { @@ -1032,6 +1068,9 @@ pub mod subnet_actor_diamond { Self::InvalidCollateral(element) => { ::ethers::core::abi::AbiEncode::encode(element) } + Self::InvalidERC20Address(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } Self::InvalidMajorityPercentage(element) => { ::ethers::core::abi::AbiEncode::encode(element) } @@ -1113,6 +1152,10 @@ pub mod subnet_actor_diamond { == ::selector() => { true } + _ if selector + == ::selector() => { + true + } _ if selector == ::selector() => { true @@ -1181,6 +1224,9 @@ pub mod subnet_actor_diamond { ::core::fmt::Display::fmt(element, f) } Self::InvalidCollateral(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidERC20Address(element) => { + ::core::fmt::Display::fmt(element, f) + } Self::InvalidMajorityPercentage(element) => { ::core::fmt::Display::fmt(element, f) } @@ -1283,6 +1329,11 @@ pub mod subnet_actor_diamond { Self::InvalidCollateral(value) } } + impl ::core::convert::From for SubnetActorDiamondErrors { + fn from(value: InvalidERC20Address) -> Self { + Self::InvalidERC20Address(value) + } + } impl ::core::convert::From for SubnetActorDiamondErrors { fn from(value: InvalidMajorityPercentage) -> Self { Self::InvalidMajorityPercentage(value) diff --git a/binding/src/subnet_actor_getter_facet.rs b/binding/src/subnet_actor_getter_facet.rs index b0e302732..1fc560307 100644 --- a/binding/src/subnet_actor_getter_facet.rs +++ b/binding/src/subnet_actor_getter_facet.rs @@ -1030,6 +1030,31 @@ pub mod subnet_actor_getter_facet { }, ], ), + ( + ::std::borrow::ToOwned::to_owned("supplySource"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("supplySource"), + inputs: ::std::vec![], + outputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("supply"), + kind: ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + ::ethers::core::abi::ethabi::ParamType::Address, + ], + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("struct SupplySource"), + ), + }, + ], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + }, + ], + ), ]), events: ::std::collections::BTreeMap::new(), errors: ::std::collections::BTreeMap::new(), @@ -1385,6 +1410,14 @@ pub mod subnet_actor_getter_facet { .method_hash([173, 129, 228, 214], ()) .expect("method not found (this should never happen)") } + ///Calls the contract's `supplySource` (0x80875df7) function + pub fn supply_source( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([128, 135, 93, 247], ()) + .expect("method not found (this should never happen)") + } } impl From<::ethers::contract::Contract> for SubnetActorGetterFacet { @@ -1906,6 +1939,19 @@ pub mod subnet_actor_getter_facet { )] #[ethcall(name = "powerScale", abi = "powerScale()")] pub struct PowerScaleCall; + ///Container type for all input parameters for the `supplySource` function with signature `supplySource()` and selector `0x80875df7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "supplySource", abi = "supplySource()")] + pub struct SupplySourceCall; ///Container type for all of the contract's call #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] pub enum SubnetActorGetterFacetCalls { @@ -1949,6 +1995,7 @@ pub mod subnet_actor_getter_facet { MinValidators(MinValidatorsCall), PermissionMode(PermissionModeCall), PowerScale(PowerScaleCall), + SupplySource(SupplySourceCall), } impl ::ethers::core::abi::AbiDecode for SubnetActorGetterFacetCalls { fn decode( @@ -2135,6 +2182,11 @@ pub mod subnet_actor_getter_facet { ) { return Ok(Self::PowerScale(decoded)); } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::SupplySource(decoded)); + } Err(::ethers::core::abi::Error::InvalidData.into()) } } @@ -2247,6 +2299,9 @@ pub mod subnet_actor_getter_facet { Self::PowerScale(element) => { ::ethers::core::abi::AbiEncode::encode(element) } + Self::SupplySource(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } } } } @@ -2325,6 +2380,7 @@ pub mod subnet_actor_getter_facet { Self::MinValidators(element) => ::core::fmt::Display::fmt(element, f), Self::PermissionMode(element) => ::core::fmt::Display::fmt(element, f), Self::PowerScale(element) => ::core::fmt::Display::fmt(element, f), + Self::SupplySource(element) => ::core::fmt::Display::fmt(element, f), } } } @@ -2522,6 +2578,11 @@ pub mod subnet_actor_getter_facet { Self::PowerScale(value) } } + impl ::core::convert::From for SubnetActorGetterFacetCalls { + fn from(value: SupplySourceCall) -> Self { + Self::SupplySource(value) + } + } ///Container type for all return fields from the `activeValidatorsLimit` function with signature `activeValidatorsLimit()` and selector `0x3354c3e1` #[derive( Clone, @@ -2962,6 +3023,20 @@ pub mod subnet_actor_getter_facet { Hash )] pub struct PowerScaleReturn(pub i8); + ///Container type for all return fields from the `supplySource` function with signature `supplySource()` and selector `0x80875df7` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SupplySourceReturn { + pub supply: SupplySource, + } ///`BottomUpCheckpoint((uint64,address[]),uint256,bytes32,uint64)` #[derive( Clone, @@ -3059,6 +3134,21 @@ pub mod subnet_actor_getter_facet { pub root: u64, pub route: ::std::vec::Vec<::ethers::core::types::Address>, } + ///`SupplySource(uint8,address)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SupplySource { + pub kind: u8, + pub token_address: ::ethers::core::types::Address, + } ///`Validator(uint256,address,bytes)` #[derive( Clone, diff --git a/binding/src/subnet_actor_manager_facet.rs b/binding/src/subnet_actor_manager_facet.rs index a3fd6932f..be889234a 100644 --- a/binding/src/subnet_actor_manager_facet.rs +++ b/binding/src/subnet_actor_manager_facet.rs @@ -632,32 +632,6 @@ pub mod subnet_actor_manager_facet { }, ], ), - ( - ::std::borrow::ToOwned::to_owned("SubnetBootstrapped"), - ::std::vec![ - ::ethers::core::abi::ethabi::Event { - name: ::std::borrow::ToOwned::to_owned("SubnetBootstrapped"), - inputs: ::std::vec![ - ::ethers::core::abi::ethabi::EventParam { - name: ::std::string::String::new(), - kind: ::ethers::core::abi::ethabi::ParamType::Array( - ::std::boxed::Box::new( - ::ethers::core::abi::ethabi::ParamType::Tuple( - ::std::vec![ - ::ethers::core::abi::ethabi::ParamType::Uint(256usize), - ::ethers::core::abi::ethabi::ParamType::Address, - ::ethers::core::abi::ethabi::ParamType::Bytes, - ], - ), - ), - ), - indexed: false, - }, - ], - anonymous: false, - }, - ], - ), ( ::std::borrow::ToOwned::to_owned("Unpaused"), ::std::vec![ @@ -973,15 +947,6 @@ pub mod subnet_actor_manager_facet { }, ], ), - ( - ::std::borrow::ToOwned::to_owned("NotStakedBefore"), - ::std::vec![ - ::ethers::core::abi::ethabi::AbiError { - name: ::std::borrow::ToOwned::to_owned("NotStakedBefore"), - inputs: ::std::vec![], - }, - ], - ), ( ::std::borrow::ToOwned::to_owned("NotValidator"), ::std::vec![ @@ -1292,16 +1257,6 @@ pub mod subnet_actor_manager_facet { ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, PausedFilter> { self.0.event() } - ///Gets the contract's `SubnetBootstrapped` event - pub fn subnet_bootstrapped_filter( - &self, - ) -> ::ethers::contract::builders::Event< - ::std::sync::Arc, - M, - SubnetBootstrappedFilter, - > { - self.0.event() - } ///Gets the contract's `Unpaused` event pub fn unpaused_filter( &self, @@ -1696,19 +1651,6 @@ pub mod subnet_actor_manager_facet { )] #[etherror(name = "NotOwnerOfPublicKey", abi = "NotOwnerOfPublicKey()")] pub struct NotOwnerOfPublicKey; - ///Custom Error type `NotStakedBefore` with signature `NotStakedBefore()` and selector `0x528fc165` - #[derive( - Clone, - ::ethers::contract::EthError, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - #[etherror(name = "NotStakedBefore", abi = "NotStakedBefore()")] - pub struct NotStakedBefore; ///Custom Error type `NotValidator` with signature `NotValidator(address)` and selector `0xed3db8ac` #[derive( Clone, @@ -1833,7 +1775,6 @@ pub mod subnet_actor_manager_facet { NotGateway(NotGateway), NotOwner(NotOwner), NotOwnerOfPublicKey(NotOwnerOfPublicKey), - NotStakedBefore(NotStakedBefore), NotValidator(NotValidator), PQDoesNotContainAddress(PQDoesNotContainAddress), PQEmpty(PQEmpty), @@ -1990,11 +1931,6 @@ pub mod subnet_actor_manager_facet { ) { return Ok(Self::NotOwnerOfPublicKey(decoded)); } - if let Ok(decoded) = ::decode( - data, - ) { - return Ok(Self::NotStakedBefore(decoded)); - } if let Ok(decoded) = ::decode( data, ) { @@ -2117,9 +2053,6 @@ pub mod subnet_actor_manager_facet { Self::NotOwnerOfPublicKey(element) => { ::ethers::core::abi::AbiEncode::encode(element) } - Self::NotStakedBefore(element) => { - ::ethers::core::abi::AbiEncode::encode(element) - } Self::NotValidator(element) => { ::ethers::core::abi::AbiEncode::encode(element) } @@ -2249,10 +2182,6 @@ pub mod subnet_actor_manager_facet { == ::selector() => { true } - _ if selector - == ::selector() => { - true - } _ if selector == ::selector() => true, _ if selector @@ -2341,7 +2270,6 @@ pub mod subnet_actor_manager_facet { Self::NotOwnerOfPublicKey(element) => { ::core::fmt::Display::fmt(element, f) } - Self::NotStakedBefore(element) => ::core::fmt::Display::fmt(element, f), Self::NotValidator(element) => ::core::fmt::Display::fmt(element, f), Self::PQDoesNotContainAddress(element) => { ::core::fmt::Display::fmt(element, f) @@ -2512,11 +2440,6 @@ pub mod subnet_actor_manager_facet { Self::NotOwnerOfPublicKey(value) } } - impl ::core::convert::From for SubnetActorManagerFacetErrors { - fn from(value: NotStakedBefore) -> Self { - Self::NotStakedBefore(value) - } - } impl ::core::convert::From for SubnetActorManagerFacetErrors { fn from(value: NotValidator) -> Self { Self::NotValidator(value) @@ -2633,21 +2556,6 @@ pub mod subnet_actor_manager_facet { Eq, Hash )] - #[ethevent( - name = "SubnetBootstrapped", - abi = "SubnetBootstrapped((uint256,address,bytes)[])" - )] - pub struct SubnetBootstrappedFilter(pub ::std::vec::Vec); - #[derive( - Clone, - ::ethers::contract::EthEvent, - ::ethers::contract::EthDisplay, - Default, - Debug, - PartialEq, - Eq, - Hash - )] #[ethevent(name = "Unpaused", abi = "Unpaused(address)")] pub struct UnpausedFilter { pub account: ::ethers::core::types::Address, @@ -2659,7 +2567,6 @@ pub mod subnet_actor_manager_facet { BottomUpCheckpointSubmittedFilter(BottomUpCheckpointSubmittedFilter), NextBottomUpCheckpointExecutedFilter(NextBottomUpCheckpointExecutedFilter), PausedFilter(PausedFilter), - SubnetBootstrappedFilter(SubnetBootstrappedFilter), UnpausedFilter(UnpausedFilter), } impl ::ethers::contract::EthLogDecode for SubnetActorManagerFacetEvents { @@ -2690,11 +2597,6 @@ pub mod subnet_actor_manager_facet { if let Ok(decoded) = PausedFilter::decode_log(log) { return Ok(SubnetActorManagerFacetEvents::PausedFilter(decoded)); } - if let Ok(decoded) = SubnetBootstrappedFilter::decode_log(log) { - return Ok( - SubnetActorManagerFacetEvents::SubnetBootstrappedFilter(decoded), - ); - } if let Ok(decoded) = UnpausedFilter::decode_log(log) { return Ok(SubnetActorManagerFacetEvents::UnpausedFilter(decoded)); } @@ -2714,9 +2616,6 @@ pub mod subnet_actor_manager_facet { ::core::fmt::Display::fmt(element, f) } Self::PausedFilter(element) => ::core::fmt::Display::fmt(element, f), - Self::SubnetBootstrappedFilter(element) => { - ::core::fmt::Display::fmt(element, f) - } Self::UnpausedFilter(element) => ::core::fmt::Display::fmt(element, f), } } @@ -2744,12 +2643,6 @@ pub mod subnet_actor_manager_facet { Self::PausedFilter(value) } } - impl ::core::convert::From - for SubnetActorManagerFacetEvents { - fn from(value: SubnetBootstrappedFilter) -> Self { - Self::SubnetBootstrappedFilter(value) - } - } impl ::core::convert::From for SubnetActorManagerFacetEvents { fn from(value: UnpausedFilter) -> Self { Self::UnpausedFilter(value) @@ -3443,20 +3336,4 @@ pub mod subnet_actor_manager_facet { pub root: u64, pub route: ::std::vec::Vec<::ethers::core::types::Address>, } - ///`Validator(uint256,address,bytes)` - #[derive( - Clone, - ::ethers::contract::EthAbiType, - ::ethers::contract::EthAbiCodec, - Default, - Debug, - PartialEq, - Eq, - Hash - )] - pub struct Validator { - pub weight: ::ethers::core::types::U256, - pub addr: ::ethers::core::types::Address, - pub metadata: ::ethers::core::types::Bytes, - } } diff --git a/binding/src/subnet_getter_facet.rs b/binding/src/subnet_getter_facet.rs index 1a8032071..0195c347f 100644 --- a/binding/src/subnet_getter_facet.rs +++ b/binding/src/subnet_getter_facet.rs @@ -321,13 +321,13 @@ pub mod subnet_getter_facet { ::ethers::core::abi::Abi, > = ::ethers::contract::Lazy::new(__abi); #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80\x80`@R4a\0\x16Wa\x0B!\x90\x81a\0\x1C\x829\xF3[`\0\x80\xFD\xFE`\x80`@\x90\x80\x82R`\x04\x806\x10\x15a\0\x16W`\0\x80\xFD[`\0\x92`\xE0\x92\x845\x84\x1C\x90\x81c\x03\x0F`Q\x14a\t\xAAWP\x80c\x0B\xE0a\x11\x14a\t\x81W\x80c\x0FXI\xD1\x14a\x08dW\x80c\x11c\xDC\xA5\x14a\x07\xEBW\x80c\x1B\x07f\xC3\x14a\x05\xC8W\x80cB\xBF<\xC1\x14a\x05\xA0W\x80c\x986\xB7_\x14a\x05\x16W\x80c\xA3r\xBF0\x14a\x04\xE9Wc\xA4m\x04M\x14a\0\x89W`\0\x80\xFD[4a\x04\xE5W`\x806`\x03\x19\x01\x12a\x04\xE5Wa\0\xA2a\n\x05V[\x91`\x01`\x01`\xA0\x1B\x03\x90`$5\x82\x81\x16\x90\x81\x90\x03a\x04\xE1Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`D5\x81\x81\x11a\x04\xDDWa\0\xDA\x906\x90\x85\x01a\neV[\x96\x90\x91`d5\x81\x81\x11a\x04\xD9Wa\0\xF4\x906\x90\x87\x01a\neV[\x96\x90\x92\x81\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD5T\x163\x03a\x04\xC9W\x16\x96\x87\x15a\x04\xBAW\x84\x15a\x04\xBAWPk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x1B\x93`\x01\x97\x85\x89T\x16\x17\x88U`\x02\x94\x85T\x16\x17\x84U\x80\x88\x11a\x03SWh\x01\0\0\0\0\0\0\0\0\x90\x81\x89\x11a\x04\xA7W`\x03\x93\x84T\x8A\x86U\x80\x8B\x10a\x04#W[P\x8B\x90\x99\x85\x82R\x80\x86\x1C\x90\x82[\x82\x81\x10a\x03\xD4WP`\x07\x19\x9B\x81\x8D\x16\x90\x91\x03\x90\x81a\x03fW[PPPP\x86\x11a\x03SW\x85\x11a\x03@W\x90\x84\x91\x84T\x83\x86U\x80\x84\x10a\x02\xB4W[P\x93\x89R\x1C\x94\x87[\x86\x81\x10a\x02RWP\x83\x16\x80\x84\x03\x93\x03a\x01\xE2W\x86\x80\xF3[\x94\x86\x93\x92\x91\x93\x95\x87\x91[\x83\x83\x10a\x02\x14WPPPPPP`\0\x80Q` a\n\xCC\x839\x81Q\x91R\x01U8\x80\x80\x80\x80\x80\x86\x80\xF3[\x90\x91\x92\x93` a\x02E\x87\x99a\x02)\x84\x99a\n\x96V[\x85\x1C\x90\x87\x87\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x98\x01\x95\x94\x93\x01\x91\x90a\x01\xECV[\x85\x90\x89\x8A[`\x08\x81\x10a\x02xWP\x81`\0\x80Q` a\n\xCC\x839\x81Q\x91R\x01U\x01a\x01\xCBV[\x95\x91\x92\x90a\x02\xA7` \x91a\x02\x8B\x85a\n\x96V[\x8D\x1C\x90\x89\x89\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x92\x01\x95\x01\x90\x87\x92\x91a\x02WV[\x90\x91\x92`\x07\x01\x83\x1C`\x07`\0\x80Q` a\n\xCC\x839\x81Q\x91R\x92\x01\x84\x1C\x82\x01\x91`\x1C\x88\x87\x1B\x16\x80a\x03\x06W[P\x87\x94\x93\x92\x91\x89\x91\x01[\x82\x81\x10a\x02\xF8WPPa\x01\xC3V[\x8C\x81U\x88\x95P\x89\x91\x01a\x02\xEAV[\x7F\x8A5\xAC\xFB\xC1_\xF8\x1A9\xAE}4O\xD7\t\xF2\x8E\x86\0\xB4\xAA\x8Ce\xC6\xB6K\xFE\x7F\xE3k\xD1\x9A\x83\x01\x90\x81T\x90`\0\x19\x90` \x03\x88\x1B\x1C\x16\x90U8a\x02\xE0V[cNH{q`\xE0\x1B\x89R`A\x84R`$\x89\xFD[cNH{q`\xE0\x1B\x8AR`A\x85R`$\x8A\xFD[\x90\x8D\x8C\x8A\x86\x92[\x84\x84\x10a\x03\x94WPPPPPP`\0\x80Q` a\n\xAC\x839\x81Q\x91R\x01U\x8A8\x80\x80a\x01\xA3V[\x90\x85\x97\x84a\x03\xC4\x93a\x03\xAA` \x96\x97\x98\x99a\n\x96V[\x90\x1C\x92\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x95\x01\x91\x01\x8C\x8F\x8B\x90\x94\x93\x94a\x03mV[\x90\x91\x92\x8D\x81\x90[`\x08\x82\x10a\x04\x02WPP`\0\x80Q` a\n\xAC\x839\x81Q\x91R\x82\x01U\x8D\x92\x91\x90\x8B\x01a\x01\x8AV[a\x04\x19\x82\x9F\x93\x8F\x93\x90\x8D\x91` \x94a\x03\xAA\x88a\n\x96V[\x92\x01\x9D\x01\x8Ea\x03\xDBV[`\x07\x8B\x01\x86\x1C`\x07`\0\x80Q` a\n\xAC\x839\x81Q\x91R\x92\x01\x87\x1C\x82\x01\x91`\x1C\x8D\x8A\x1B\x16\x80a\x04mW[P\x8B\x91\x01\x8E[\x83\x82\x10a\x04bWPPPa\x01}V[\x81U\x01\x8A\x90\x8Ea\x04SV[\x7F\xC2WZ\x0E\x9EY<\0\xF9Y\xF8\xC9/\x12\xDB(i\xC39Z;\x05\x02\xD0^%\x16Doq\xF8Z\x83\x01\x90\x81T\x90`\0\x19\x90` \x03\x8B\x1B\x1C\x16\x90U8a\x04MV[cNH{q`\xE0\x1B\x8BR`A\x86R`$\x8B\xFD[Qc\x07\xA0CQ`\xE5\x1B\x81R\x85\x90\xFD[\x88Qc0\xCDtq`\xE0\x1B\x81R\x87\x90\xFD[\x8A\x80\xFD[\x88\x80\xFD[\x86\x80\xFD[\x83\x80\xFD[\x84\x824a\x05\x12W\x81`\x03\x196\x01\x12a\x05\x12W`\x02T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x80\xFD[P\x834a\x05\x9DW\x81`\x03\x196\x01\x12a\x05\x9DWa\x050a\n\x05V[\x90`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x80\x91\x03a\x05\x12W\x90\x81\x84\x92\x15a\x05\x8DW`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x82R`\x05` \x90\x81R\x83\x83 \x91\x83RR T\x16\x90\x81\x15a\x05~W` \x92PQ\x90\x81R\xF3[Qc'nt\xA7`\xE1\x1B\x81R\x90P\xFD[\x82Qc'nt\xA7`\xE1\x1B\x81R\x86\x90\xFD[\x80\xFD[\x84\x824a\x05\x12W\x81`\x03\x196\x01\x12a\x05\x12W\x90T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x82\x84\x914a\x07\xE7W\x82`\x03\x196\x01\x12a\x07\xE7W\x80Q\x80\x92`\x03T\x90\x81\x83R` \x80\x93\x01\x91`\x03\x87R`\0\x80Q` a\n\xAC\x839\x81Q\x91R\x84\x88\x91[\x83`\x07\x84\x01\x10a\x07zWT\x93\x83\x83\x10a\x07]W[P\x82\x82\x10a\x07?W[\x82\x82\x10a\x07!W[\x82\x82\x10a\x07\x03W[\x82\x82\x10a\x06\xE5W[\x82\x82\x10a\x06\xC9W[\x82\x82\x10a\x06\xADW[P\x10a\x06\x99W[P\x83\x90\x03`\x1F\x01`\x1F\x19\x16\x83\x01\x93\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x11\x83\x85\x10\x17a\x06\x86WP\x82\x91\x82a\x06\x82\x92R\x82a\n V[\x03\x90\xF3[cNH{q`\xE0\x1B\x81R`A\x85R`$\x90\xFD[`\x01`\x01`\xE0\x1B\x03\x19\x16\x81R\x01\x80\x86a\x06PV[\x83\x81\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x06IV[\x83\x87\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x06AV[``\x84\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x069V[`\x80\x84\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x061V[`\xA0\x84\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x06)V[`\xC0\x84\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x06!V[\x84\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84\x8Aa\x06\x18V[\x94`\x08\x91Pa\x01\0`\x01\x91\x87Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81\x8A\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16\x8C\x85\x01R\x8C\x83\x83`\xA0\x92\x82\x82\x85\x1B\x16\x81\x89\x01R`\x80\x83\x83``\x82\x82\x85\x1B\x16\x81\x8D\x01R\x1B\x16\x90\x89\x01R\x1B\x16\x90\x85\x01R\x82\x82\x8D\x1B\x16\x90\x84\x01R\x16\x87\x82\x01R\x01\x95\x01\x91\x01\x90\x85\x90a\x06\x04V[\x82\x80\xFD[P\x834a\x05\x9DW` 6`\x03\x19\x01\x12a\x05\x9DW`\x01`\x01`\xA0\x1B\x03\x90\x82\x90\x82a\x08\x12a\n\x05V[\x16\x80\x82R`\x06` Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x83 T\x16\x90\x81\x15a\x08TW\x82R`\x05` R\x82\x82 \x90\x82R` R T\x16\x90\x81\x15a\x05~W` \x92PQ\x90\x81R\xF3[\x83Qc'nt\xA7`\xE1\x1B\x81R\x87\x90\xFD[P\x82\x84\x914a\x07\xE7W\x82`\x03\x196\x01\x12a\x07\xE7W\x80Q\x80\x92\x85T\x90\x81\x83R` \x80\x93\x01\x91\x87\x87R`\0\x80Q` a\n\xCC\x839\x81Q\x91R\x84\x88\x91[\x83`\x07\x84\x01\x10a\t\x14WT\x93\x83\x83\x10a\x07]WP\x82\x82\x10a\x07?W\x82\x82\x10a\x07!W\x82\x82\x10a\x07\x03W\x82\x82\x10a\x06\xE5W\x82\x82\x10a\x06\xC9W\x82\x82\x10a\x06\xADWP\x10a\x06\x99WP\x83\x90\x03`\x1F\x01`\x1F\x19\x16\x83\x01\x93\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x11\x83\x85\x10\x17a\x06\x86WP\x82\x91\x82a\x06\x82\x92R\x82a\n V[\x94`\x08\x91Pa\x01\0`\x01\x91\x87Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81\x8A\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16\x8C\x85\x01R\x8C\x83\x83`\xA0\x92\x82\x82\x85\x1B\x16\x81\x89\x01R`\x80\x83\x83``\x82\x82\x85\x1B\x16\x81\x8D\x01R\x1B\x16\x90\x89\x01R\x1B\x16\x90\x85\x01R\x82\x82\x8D\x1B\x16\x90\x84\x01R\x16\x87\x82\x01R\x01\x95\x01\x91\x01\x90\x85\x90a\x08\x9EV[\x84\x824a\x05\x12W\x81`\x03\x196\x01\x12a\x05\x12W`\x01T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[\x91\x90P\x844a\x05\x9DW` 6`\x03\x19\x01\x12a\x05\x9DWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x82\x90`\x01`\x01`\xA0\x1B\x03a\t\xDBa\n\x05V[\x16\x81R`\x06` R T\x16\x91\x82\x15a\t\xF7W` \x83\x83Q\x90\x81R\xF3[c'nt\xA7`\xE1\x1B\x81R\x83\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\x1BWV[`\0\x80\xFD[` \x90\x81`@\x81\x83\x01\x92\x82\x81R\x85Q\x80\x94R\x01\x93\x01\x91`\0[\x82\x81\x10a\nGWPPPP\x90V[\x83Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01a\n9V[\x91\x81`\x1F\x84\x01\x12\x15a\n\x1BW\x825\x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11a\n\x1BW` \x80\x85\x01\x94\x84`\x05\x1B\x01\x01\x11a\n\x1BWV[5`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x03a\n\x1BW\x90V\xFE\xC2WZ\x0E\x9EY<\0\xF9Y\xF8\xC9/\x12\xDB(i\xC39Z;\x05\x02\xD0^%\x16Doq\xF8[\x8A5\xAC\xFB\xC1_\xF8\x1A9\xAE}4O\xD7\t\xF2\x8E\x86\0\xB4\xAA\x8Ce\xC6\xB6K\xFE\x7F\xE3k\xD1\x9B\xA2dipfsX\"\x12 \")\xF9\x11\xC9\xA5\x0FLx\x91g\x8Dn*\xBC\\upR\x06\x7F\xC3>\xF4.-\xB8\xD7P+h\xCEdsolcC\0\x08\x13\x003"; + const __BYTECODE: &[u8] = b"`\x80\x80`@R4a\0\x16Wa\x0B!\x90\x81a\0\x1C\x829\xF3[`\0\x80\xFD\xFE`\x80`@\x90\x80\x82R`\x04\x806\x10\x15a\0\x16W`\0\x80\xFD[`\0\x92`\xE0\x92\x845\x84\x1C\x90\x81c\x03\x0F`Q\x14a\t\xAAWP\x80c\x0B\xE0a\x11\x14a\t\x81W\x80c\x0FXI\xD1\x14a\x08dW\x80c\x11c\xDC\xA5\x14a\x07\xEBW\x80c\x1B\x07f\xC3\x14a\x05\xC8W\x80cB\xBF<\xC1\x14a\x05\xA0W\x80c\x986\xB7_\x14a\x05\x16W\x80c\xA3r\xBF0\x14a\x04\xE9Wc\xA4m\x04M\x14a\0\x89W`\0\x80\xFD[4a\x04\xE5W`\x806`\x03\x19\x01\x12a\x04\xE5Wa\0\xA2a\n\x05V[\x91`\x01`\x01`\xA0\x1B\x03\x90`$5\x82\x81\x16\x90\x81\x90\x03a\x04\xE1Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`D5\x81\x81\x11a\x04\xDDWa\0\xDA\x906\x90\x85\x01a\neV[\x96\x90\x91`d5\x81\x81\x11a\x04\xD9Wa\0\xF4\x906\x90\x87\x01a\neV[\x96\x90\x92\x81\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD5T\x163\x03a\x04\xC9W\x16\x96\x87\x15a\x04\xBAW\x84\x15a\x04\xBAWPk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x1B\x93`\x01\x97\x85\x89T\x16\x17\x88U`\x02\x94\x85T\x16\x17\x84U\x80\x88\x11a\x03SWh\x01\0\0\0\0\0\0\0\0\x90\x81\x89\x11a\x04\xA7W`\x03\x93\x84T\x8A\x86U\x80\x8B\x10a\x04#W[P\x8B\x90\x99\x85\x82R\x80\x86\x1C\x90\x82[\x82\x81\x10a\x03\xD4WP`\x07\x19\x9B\x81\x8D\x16\x90\x91\x03\x90\x81a\x03fW[PPPP\x86\x11a\x03SW\x85\x11a\x03@W\x90\x84\x91\x84T\x83\x86U\x80\x84\x10a\x02\xB4W[P\x93\x89R\x1C\x94\x87[\x86\x81\x10a\x02RWP\x83\x16\x80\x84\x03\x93\x03a\x01\xE2W\x86\x80\xF3[\x94\x86\x93\x92\x91\x93\x95\x87\x91[\x83\x83\x10a\x02\x14WPPPPPP`\0\x80Q` a\n\xCC\x839\x81Q\x91R\x01U8\x80\x80\x80\x80\x80\x86\x80\xF3[\x90\x91\x92\x93` a\x02E\x87\x99a\x02)\x84\x99a\n\x96V[\x85\x1C\x90\x87\x87\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x98\x01\x95\x94\x93\x01\x91\x90a\x01\xECV[\x85\x90\x89\x8A[`\x08\x81\x10a\x02xWP\x81`\0\x80Q` a\n\xCC\x839\x81Q\x91R\x01U\x01a\x01\xCBV[\x95\x91\x92\x90a\x02\xA7` \x91a\x02\x8B\x85a\n\x96V[\x8D\x1C\x90\x89\x89\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x92\x01\x95\x01\x90\x87\x92\x91a\x02WV[\x90\x91\x92`\x07\x01\x83\x1C`\x07`\0\x80Q` a\n\xCC\x839\x81Q\x91R\x92\x01\x84\x1C\x82\x01\x91`\x1C\x88\x87\x1B\x16\x80a\x03\x06W[P\x87\x94\x93\x92\x91\x89\x91\x01[\x82\x81\x10a\x02\xF8WPPa\x01\xC3V[\x8C\x81U\x88\x95P\x89\x91\x01a\x02\xEAV[\x7F\x8A5\xAC\xFB\xC1_\xF8\x1A9\xAE}4O\xD7\t\xF2\x8E\x86\0\xB4\xAA\x8Ce\xC6\xB6K\xFE\x7F\xE3k\xD1\x9A\x83\x01\x90\x81T\x90`\0\x19\x90` \x03\x88\x1B\x1C\x16\x90U8a\x02\xE0V[cNH{q`\xE0\x1B\x89R`A\x84R`$\x89\xFD[cNH{q`\xE0\x1B\x8AR`A\x85R`$\x8A\xFD[\x90\x8D\x8C\x8A\x86\x92[\x84\x84\x10a\x03\x94WPPPPPP`\0\x80Q` a\n\xAC\x839\x81Q\x91R\x01U\x8A8\x80\x80a\x01\xA3V[\x90\x85\x97\x84a\x03\xC4\x93a\x03\xAA` \x96\x97\x98\x99a\n\x96V[\x90\x1C\x92\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x95\x01\x91\x01\x8C\x8F\x8B\x90\x94\x93\x94a\x03mV[\x90\x91\x92\x8D\x81\x90[`\x08\x82\x10a\x04\x02WPP`\0\x80Q` a\n\xAC\x839\x81Q\x91R\x82\x01U\x8D\x92\x91\x90\x8B\x01a\x01\x8AV[a\x04\x19\x82\x9F\x93\x8F\x93\x90\x8D\x91` \x94a\x03\xAA\x88a\n\x96V[\x92\x01\x9D\x01\x8Ea\x03\xDBV[`\x07\x8B\x01\x86\x1C`\x07`\0\x80Q` a\n\xAC\x839\x81Q\x91R\x92\x01\x87\x1C\x82\x01\x91`\x1C\x8D\x8A\x1B\x16\x80a\x04mW[P\x8B\x91\x01\x8E[\x83\x82\x10a\x04bWPPPa\x01}V[\x81U\x01\x8A\x90\x8Ea\x04SV[\x7F\xC2WZ\x0E\x9EY<\0\xF9Y\xF8\xC9/\x12\xDB(i\xC39Z;\x05\x02\xD0^%\x16Doq\xF8Z\x83\x01\x90\x81T\x90`\0\x19\x90` \x03\x8B\x1B\x1C\x16\x90U8a\x04MV[cNH{q`\xE0\x1B\x8BR`A\x86R`$\x8B\xFD[Qc\x07\xA0CQ`\xE5\x1B\x81R\x85\x90\xFD[\x88Qc0\xCDtq`\xE0\x1B\x81R\x87\x90\xFD[\x8A\x80\xFD[\x88\x80\xFD[\x86\x80\xFD[\x83\x80\xFD[\x84\x824a\x05\x12W\x81`\x03\x196\x01\x12a\x05\x12W`\x02T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x80\xFD[P\x834a\x05\x9DW\x81`\x03\x196\x01\x12a\x05\x9DWa\x050a\n\x05V[\x90`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x80\x91\x03a\x05\x12W\x90\x81\x84\x92\x15a\x05\x8DW`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x82R`\x05` \x90\x81R\x83\x83 \x91\x83RR T\x16\x90\x81\x15a\x05~W` \x92PQ\x90\x81R\xF3[Qc'nt\xA7`\xE1\x1B\x81R\x90P\xFD[\x82Qc'nt\xA7`\xE1\x1B\x81R\x86\x90\xFD[\x80\xFD[\x84\x824a\x05\x12W\x81`\x03\x196\x01\x12a\x05\x12W\x90T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x82\x84\x914a\x07\xE7W\x82`\x03\x196\x01\x12a\x07\xE7W\x80Q\x80\x92`\x03T\x90\x81\x83R` \x80\x93\x01\x91`\x03\x87R`\0\x80Q` a\n\xAC\x839\x81Q\x91R\x84\x88\x91[\x83`\x07\x84\x01\x10a\x07zWT\x93\x83\x83\x10a\x07]W[P\x82\x82\x10a\x07?W[\x82\x82\x10a\x07!W[\x82\x82\x10a\x07\x03W[\x82\x82\x10a\x06\xE5W[\x82\x82\x10a\x06\xC9W[\x82\x82\x10a\x06\xADW[P\x10a\x06\x99W[P\x83\x90\x03`\x1F\x01`\x1F\x19\x16\x83\x01\x93\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x11\x83\x85\x10\x17a\x06\x86WP\x82\x91\x82a\x06\x82\x92R\x82a\n V[\x03\x90\xF3[cNH{q`\xE0\x1B\x81R`A\x85R`$\x90\xFD[`\x01`\x01`\xE0\x1B\x03\x19\x16\x81R\x01\x80\x86a\x06PV[\x83\x81\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x06IV[\x83\x87\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x06AV[``\x84\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x069V[`\x80\x84\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x061V[`\xA0\x84\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x06)V[`\xC0\x84\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x06!V[\x84\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84\x8Aa\x06\x18V[\x94`\x08\x91Pa\x01\0`\x01\x91\x87Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81\x8A\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16\x8C\x85\x01R\x8C\x83\x83`\xA0\x92\x82\x82\x85\x1B\x16\x81\x89\x01R`\x80\x83\x83``\x82\x82\x85\x1B\x16\x81\x8D\x01R\x1B\x16\x90\x89\x01R\x1B\x16\x90\x85\x01R\x82\x82\x8D\x1B\x16\x90\x84\x01R\x16\x87\x82\x01R\x01\x95\x01\x91\x01\x90\x85\x90a\x06\x04V[\x82\x80\xFD[P\x834a\x05\x9DW` 6`\x03\x19\x01\x12a\x05\x9DW`\x01`\x01`\xA0\x1B\x03\x90\x82\x90\x82a\x08\x12a\n\x05V[\x16\x80\x82R`\x06` Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x83 T\x16\x90\x81\x15a\x08TW\x82R`\x05` R\x82\x82 \x90\x82R` R T\x16\x90\x81\x15a\x05~W` \x92PQ\x90\x81R\xF3[\x83Qc'nt\xA7`\xE1\x1B\x81R\x87\x90\xFD[P\x82\x84\x914a\x07\xE7W\x82`\x03\x196\x01\x12a\x07\xE7W\x80Q\x80\x92\x85T\x90\x81\x83R` \x80\x93\x01\x91\x87\x87R`\0\x80Q` a\n\xCC\x839\x81Q\x91R\x84\x88\x91[\x83`\x07\x84\x01\x10a\t\x14WT\x93\x83\x83\x10a\x07]WP\x82\x82\x10a\x07?W\x82\x82\x10a\x07!W\x82\x82\x10a\x07\x03W\x82\x82\x10a\x06\xE5W\x82\x82\x10a\x06\xC9W\x82\x82\x10a\x06\xADWP\x10a\x06\x99WP\x83\x90\x03`\x1F\x01`\x1F\x19\x16\x83\x01\x93\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x11\x83\x85\x10\x17a\x06\x86WP\x82\x91\x82a\x06\x82\x92R\x82a\n V[\x94`\x08\x91Pa\x01\0`\x01\x91\x87Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81\x8A\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16\x8C\x85\x01R\x8C\x83\x83`\xA0\x92\x82\x82\x85\x1B\x16\x81\x89\x01R`\x80\x83\x83``\x82\x82\x85\x1B\x16\x81\x8D\x01R\x1B\x16\x90\x89\x01R\x1B\x16\x90\x85\x01R\x82\x82\x8D\x1B\x16\x90\x84\x01R\x16\x87\x82\x01R\x01\x95\x01\x91\x01\x90\x85\x90a\x08\x9EV[\x84\x824a\x05\x12W\x81`\x03\x196\x01\x12a\x05\x12W`\x01T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[\x91\x90P\x844a\x05\x9DW` 6`\x03\x19\x01\x12a\x05\x9DWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x82\x90`\x01`\x01`\xA0\x1B\x03a\t\xDBa\n\x05V[\x16\x81R`\x06` R T\x16\x91\x82\x15a\t\xF7W` \x83\x83Q\x90\x81R\xF3[c'nt\xA7`\xE1\x1B\x81R\x83\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\x1BWV[`\0\x80\xFD[` \x90\x81`@\x81\x83\x01\x92\x82\x81R\x85Q\x80\x94R\x01\x93\x01\x91`\0[\x82\x81\x10a\nGWPPPP\x90V[\x83Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01a\n9V[\x91\x81`\x1F\x84\x01\x12\x15a\n\x1BW\x825\x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11a\n\x1BW` \x80\x85\x01\x94\x84`\x05\x1B\x01\x01\x11a\n\x1BWV[5`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x03a\n\x1BW\x90V\xFE\xC2WZ\x0E\x9EY<\0\xF9Y\xF8\xC9/\x12\xDB(i\xC39Z;\x05\x02\xD0^%\x16Doq\xF8[\x8A5\xAC\xFB\xC1_\xF8\x1A9\xAE}4O\xD7\t\xF2\x8E\x86\0\xB4\xAA\x8Ce\xC6\xB6K\xFE\x7F\xE3k\xD1\x9B\xA2dipfsX\"\x12 \xC0!\x81\xD1Le\xE4\xA7`pPF\xE4\x86\xA4_P[|\xA4\xF4.-\xB8\xD7P+h\xCEdsolcC\0\x08\x13\x003"; + const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@\x90\x80\x82R`\x04\x806\x10\x15a\0\x16W`\0\x80\xFD[`\0\x92`\xE0\x92\x845\x84\x1C\x90\x81c\x03\x0F`Q\x14a\t\xAAWP\x80c\x0B\xE0a\x11\x14a\t\x81W\x80c\x0FXI\xD1\x14a\x08dW\x80c\x11c\xDC\xA5\x14a\x07\xEBW\x80c\x1B\x07f\xC3\x14a\x05\xC8W\x80cB\xBF<\xC1\x14a\x05\xA0W\x80c\x986\xB7_\x14a\x05\x16W\x80c\xA3r\xBF0\x14a\x04\xE9Wc\xA4m\x04M\x14a\0\x89W`\0\x80\xFD[4a\x04\xE5W`\x806`\x03\x19\x01\x12a\x04\xE5Wa\0\xA2a\n\x05V[\x91`\x01`\x01`\xA0\x1B\x03\x90`$5\x82\x81\x16\x90\x81\x90\x03a\x04\xE1Wg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`D5\x81\x81\x11a\x04\xDDWa\0\xDA\x906\x90\x85\x01a\neV[\x96\x90\x91`d5\x81\x81\x11a\x04\xD9Wa\0\xF4\x906\x90\x87\x01a\neV[\x96\x90\x92\x81\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD5T\x163\x03a\x04\xC9W\x16\x96\x87\x15a\x04\xBAW\x84\x15a\x04\xBAWPk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x1B\x93`\x01\x97\x85\x89T\x16\x17\x88U`\x02\x94\x85T\x16\x17\x84U\x80\x88\x11a\x03SWh\x01\0\0\0\0\0\0\0\0\x90\x81\x89\x11a\x04\xA7W`\x03\x93\x84T\x8A\x86U\x80\x8B\x10a\x04#W[P\x8B\x90\x99\x85\x82R\x80\x86\x1C\x90\x82[\x82\x81\x10a\x03\xD4WP`\x07\x19\x9B\x81\x8D\x16\x90\x91\x03\x90\x81a\x03fW[PPPP\x86\x11a\x03SW\x85\x11a\x03@W\x90\x84\x91\x84T\x83\x86U\x80\x84\x10a\x02\xB4W[P\x93\x89R\x1C\x94\x87[\x86\x81\x10a\x02RWP\x83\x16\x80\x84\x03\x93\x03a\x01\xE2W\x86\x80\xF3[\x94\x86\x93\x92\x91\x93\x95\x87\x91[\x83\x83\x10a\x02\x14WPPPPPP`\0\x80Q` a\n\xCC\x839\x81Q\x91R\x01U8\x80\x80\x80\x80\x80\x86\x80\xF3[\x90\x91\x92\x93` a\x02E\x87\x99a\x02)\x84\x99a\n\x96V[\x85\x1C\x90\x87\x87\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x98\x01\x95\x94\x93\x01\x91\x90a\x01\xECV[\x85\x90\x89\x8A[`\x08\x81\x10a\x02xWP\x81`\0\x80Q` a\n\xCC\x839\x81Q\x91R\x01U\x01a\x01\xCBV[\x95\x91\x92\x90a\x02\xA7` \x91a\x02\x8B\x85a\n\x96V[\x8D\x1C\x90\x89\x89\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x92\x01\x95\x01\x90\x87\x92\x91a\x02WV[\x90\x91\x92`\x07\x01\x83\x1C`\x07`\0\x80Q` a\n\xCC\x839\x81Q\x91R\x92\x01\x84\x1C\x82\x01\x91`\x1C\x88\x87\x1B\x16\x80a\x03\x06W[P\x87\x94\x93\x92\x91\x89\x91\x01[\x82\x81\x10a\x02\xF8WPPa\x01\xC3V[\x8C\x81U\x88\x95P\x89\x91\x01a\x02\xEAV[\x7F\x8A5\xAC\xFB\xC1_\xF8\x1A9\xAE}4O\xD7\t\xF2\x8E\x86\0\xB4\xAA\x8Ce\xC6\xB6K\xFE\x7F\xE3k\xD1\x9A\x83\x01\x90\x81T\x90`\0\x19\x90` \x03\x88\x1B\x1C\x16\x90U8a\x02\xE0V[cNH{q`\xE0\x1B\x89R`A\x84R`$\x89\xFD[cNH{q`\xE0\x1B\x8AR`A\x85R`$\x8A\xFD[\x90\x8D\x8C\x8A\x86\x92[\x84\x84\x10a\x03\x94WPPPPPP`\0\x80Q` a\n\xAC\x839\x81Q\x91R\x01U\x8A8\x80\x80a\x01\xA3V[\x90\x85\x97\x84a\x03\xC4\x93a\x03\xAA` \x96\x97\x98\x99a\n\x96V[\x90\x1C\x92\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x95\x01\x91\x01\x8C\x8F\x8B\x90\x94\x93\x94a\x03mV[\x90\x91\x92\x8D\x81\x90[`\x08\x82\x10a\x04\x02WPP`\0\x80Q` a\n\xAC\x839\x81Q\x91R\x82\x01U\x8D\x92\x91\x90\x8B\x01a\x01\x8AV[a\x04\x19\x82\x9F\x93\x8F\x93\x90\x8D\x91` \x94a\x03\xAA\x88a\n\x96V[\x92\x01\x9D\x01\x8Ea\x03\xDBV[`\x07\x8B\x01\x86\x1C`\x07`\0\x80Q` a\n\xAC\x839\x81Q\x91R\x92\x01\x87\x1C\x82\x01\x91`\x1C\x8D\x8A\x1B\x16\x80a\x04mW[P\x8B\x91\x01\x8E[\x83\x82\x10a\x04bWPPPa\x01}V[\x81U\x01\x8A\x90\x8Ea\x04SV[\x7F\xC2WZ\x0E\x9EY<\0\xF9Y\xF8\xC9/\x12\xDB(i\xC39Z;\x05\x02\xD0^%\x16Doq\xF8Z\x83\x01\x90\x81T\x90`\0\x19\x90` \x03\x8B\x1B\x1C\x16\x90U8a\x04MV[cNH{q`\xE0\x1B\x8BR`A\x86R`$\x8B\xFD[Qc\x07\xA0CQ`\xE5\x1B\x81R\x85\x90\xFD[\x88Qc0\xCDtq`\xE0\x1B\x81R\x87\x90\xFD[\x8A\x80\xFD[\x88\x80\xFD[\x86\x80\xFD[\x83\x80\xFD[\x84\x824a\x05\x12W\x81`\x03\x196\x01\x12a\x05\x12W`\x02T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x80\xFD[P\x834a\x05\x9DW\x81`\x03\x196\x01\x12a\x05\x9DWa\x050a\n\x05V[\x90`$5g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x16\x80\x91\x03a\x05\x12W\x90\x81\x84\x92\x15a\x05\x8DW`\x01`\x01`\xA0\x1B\x03\x93\x84\x16\x82R`\x05` \x90\x81R\x83\x83 \x91\x83RR T\x16\x90\x81\x15a\x05~W` \x92PQ\x90\x81R\xF3[Qc'nt\xA7`\xE1\x1B\x81R\x90P\xFD[\x82Qc'nt\xA7`\xE1\x1B\x81R\x86\x90\xFD[\x80\xFD[\x84\x824a\x05\x12W\x81`\x03\x196\x01\x12a\x05\x12W\x90T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[P\x82\x84\x914a\x07\xE7W\x82`\x03\x196\x01\x12a\x07\xE7W\x80Q\x80\x92`\x03T\x90\x81\x83R` \x80\x93\x01\x91`\x03\x87R`\0\x80Q` a\n\xAC\x839\x81Q\x91R\x84\x88\x91[\x83`\x07\x84\x01\x10a\x07zWT\x93\x83\x83\x10a\x07]W[P\x82\x82\x10a\x07?W[\x82\x82\x10a\x07!W[\x82\x82\x10a\x07\x03W[\x82\x82\x10a\x06\xE5W[\x82\x82\x10a\x06\xC9W[\x82\x82\x10a\x06\xADW[P\x10a\x06\x99W[P\x83\x90\x03`\x1F\x01`\x1F\x19\x16\x83\x01\x93\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x11\x83\x85\x10\x17a\x06\x86WP\x82\x91\x82a\x06\x82\x92R\x82a\n V[\x03\x90\xF3[cNH{q`\xE0\x1B\x81R`A\x85R`$\x90\xFD[`\x01`\x01`\xE0\x1B\x03\x19\x16\x81R\x01\x80\x86a\x06PV[\x83\x81\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x06IV[\x83\x87\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x06AV[``\x84\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x069V[`\x80\x84\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x061V[`\xA0\x84\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x06)V[`\xC0\x84\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84a\x06!V[\x84\x90\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x90\x93\x01\x92`\x01\x01\x84\x8Aa\x06\x18V[\x94`\x08\x91Pa\x01\0`\x01\x91\x87Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81\x8A\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16\x8C\x85\x01R\x8C\x83\x83`\xA0\x92\x82\x82\x85\x1B\x16\x81\x89\x01R`\x80\x83\x83``\x82\x82\x85\x1B\x16\x81\x8D\x01R\x1B\x16\x90\x89\x01R\x1B\x16\x90\x85\x01R\x82\x82\x8D\x1B\x16\x90\x84\x01R\x16\x87\x82\x01R\x01\x95\x01\x91\x01\x90\x85\x90a\x06\x04V[\x82\x80\xFD[P\x834a\x05\x9DW` 6`\x03\x19\x01\x12a\x05\x9DW`\x01`\x01`\xA0\x1B\x03\x90\x82\x90\x82a\x08\x12a\n\x05V[\x16\x80\x82R`\x06` Rg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x83 T\x16\x90\x81\x15a\x08TW\x82R`\x05` R\x82\x82 \x90\x82R` R T\x16\x90\x81\x15a\x05~W` \x92PQ\x90\x81R\xF3[\x83Qc'nt\xA7`\xE1\x1B\x81R\x87\x90\xFD[P\x82\x84\x914a\x07\xE7W\x82`\x03\x196\x01\x12a\x07\xE7W\x80Q\x80\x92\x85T\x90\x81\x83R` \x80\x93\x01\x91\x87\x87R`\0\x80Q` a\n\xCC\x839\x81Q\x91R\x84\x88\x91[\x83`\x07\x84\x01\x10a\t\x14WT\x93\x83\x83\x10a\x07]WP\x82\x82\x10a\x07?W\x82\x82\x10a\x07!W\x82\x82\x10a\x07\x03W\x82\x82\x10a\x06\xE5W\x82\x82\x10a\x06\xC9W\x82\x82\x10a\x06\xADWP\x10a\x06\x99WP\x83\x90\x03`\x1F\x01`\x1F\x19\x16\x83\x01\x93\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x11\x83\x85\x10\x17a\x06\x86WP\x82\x91\x82a\x06\x82\x92R\x82a\n V[\x94`\x08\x91Pa\x01\0`\x01\x91\x87Tc\xFF\xFF\xFF\xFF`\xE0\x1B\x90\x81\x81\x8A\x1B\x16\x83R`\xC0\x82\x82\x82\x1B\x16\x8C\x85\x01R\x8C\x83\x83`\xA0\x92\x82\x82\x85\x1B\x16\x81\x89\x01R`\x80\x83\x83``\x82\x82\x85\x1B\x16\x81\x8D\x01R\x1B\x16\x90\x89\x01R\x1B\x16\x90\x85\x01R\x82\x82\x8D\x1B\x16\x90\x84\x01R\x16\x87\x82\x01R\x01\x95\x01\x91\x01\x90\x85\x90a\x08\x9EV[\x84\x824a\x05\x12W\x81`\x03\x196\x01\x12a\x05\x12W`\x01T\x90Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x90\xF3[\x91\x90P\x844a\x05\x9DW` 6`\x03\x19\x01\x12a\x05\x9DWg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x90\x82\x90`\x01`\x01`\xA0\x1B\x03a\t\xDBa\n\x05V[\x16\x81R`\x06` R T\x16\x91\x82\x15a\t\xF7W` \x83\x83Q\x90\x81R\xF3[c'nt\xA7`\xE1\x1B\x81R\x83\x90\xFD[`\x045\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\n\x1BWV[`\0\x80\xFD[` \x90\x81`@\x81\x83\x01\x92\x82\x81R\x85Q\x80\x94R\x01\x93\x01\x91`\0[\x82\x81\x10a\nGWPPPP\x90V[\x83Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01a\n9V[\x91\x81`\x1F\x84\x01\x12\x15a\n\x1BW\x825\x91g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x83\x11a\n\x1BW` \x80\x85\x01\x94\x84`\x05\x1B\x01\x01\x11a\n\x1BWV[5`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x03a\n\x1BW\x90V\xFE\xC2WZ\x0E\x9EY<\0\xF9Y\xF8\xC9/\x12\xDB(i\xC39Z;\x05\x02\xD0^%\x16Doq\xF8[\x8A5\xAC\xFB\xC1_\xF8\x1A9\xAE}4O\xD7\t\xF2\x8E\x86\0\xB4\xAA\x8Ce\xC6\xB6K\xFE\x7F\xE3k\xD1\x9B\xA2dipfsX\"\x12 \xC0!\x81\xD1Le\xE4\xA7`pPF\xE4\x86\xA4_P[|\xA4 = ::ethers::contract::Lazy::new(__abi); #[rustfmt::skip] - const __BYTECODE: &[u8] = b"`\x80`@R4a\x0C\xE3Wa\x11\x1E\x808\x03\x80a\0\x19\x81a\r\xCFV[\x92\x839\x81\x01\x90`@\x81\x83\x03\x12a\x0C\xE3W\x80Q`\x01`\x01`@\x1B\x03\x81\x11a\x0C\xE3W\x81\x01\x90\x82`\x1F\x83\x01\x12\x15a\x0C\xE3W\x81Q\x90a\0[a\0V\x83a\r\xF4V[a\r\xCFV[\x92` \x84\x84\x81R\x01` \x81\x94`\x05\x1B\x83\x01\x01\x91\x86\x83\x11a\x0C\xE3W` \x81\x01\x91[\x83\x83\x10a\x0C\xE8WPPPP` \x81\x01Q\x90`\x01`\x01`@\x1B\x03\x82\x11a\x0C\xE3W\x01`\xA0\x81\x85\x03\x12a\x0C\xE3W`@Q\x93`\xA0\x85\x01`\x01`\x01`@\x1B\x03\x81\x11\x86\x82\x10\x17a\x05\x1CW`@Ra\0\xCB\x82a\x0E\x0BV[\x85Ra\0\xD9` \x83\x01a\x0E\x0BV[` \x86\x01Ra\0\xEA`@\x83\x01a\x0E\x0BV[`@\x86\x01R``\x82\x01Q`\x01`\x01`@\x1B\x03\x81\x11a\x0C\xE3W\x81a\x01\x0E\x91\x84\x01a\x0E\x1FV[``\x86\x01R`\x80\x82\x01Q`\x01`\x01`@\x1B\x03\x81\x11a\x0C\xE3Wa\x010\x92\x01a\x0E\x1FV[`\x80\x84\x01R\x82Q`\x01`\x01`\xA0\x1B\x03\x16\x15a\x0C\xD1W` \x83\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x15a\x0C\xBFW`@\x83\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x15a\x0C\xBFW\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD5\x80T`\x01`\x01`\xA0\x1B\x03\x19\x163\x17\x90U`@Q` \x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17a\x05\x1CW`@R`\0\x81R\x82Q`\0[\x81\x81\x10a\x06\x88WPP`@Q\x92``\x84\x01\x90``\x85RQ\x80\x91R`\x80\x84\x01\x90`\x80\x81`\x05\x1B\x86\x01\x01\x93\x91`\0\x90[\x82\x82\x10a\x063W\x87\x7F\x8F\xAAp\x87\x86q\xCC\xD2\x12\xD2\x07q\xB7\x95\xC5\n\xF8\xFD?\xF6\xCF'\xF4\xBD\xE5~]M\xE0\xAE\xB6s\x88\x80a\x023\x8A\x8A`\0` \x85\x01R\x83\x82\x03`@\x85\x01Ra\x0E\xFBV[\x03\x90\xA1\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD4` \x90\x81R\x7F}\xFDH\xDD\x9D\xEF\0/\xA9\xB4\xA0[\xD6\xB7&\xA6\xC3\x13\xC3b\xD3\xF3\xE8A=zu \xF0\t\r%\x80T`\x01`\xFF\x19\x91\x82\x16\x81\x17\x90\x92U\x7FM\x7FL\x8A/\xB5\xB3\\\xA3\xC2w\xC98\x88\xB4\x7F\x0F\")\xBD\xCC\xCFfPM\x1B\xA4\x8E\x88\xB8\x81d\x80T\x82\x16\x83\x17\x90UcH\xE2\xB0\x93`\xE0\x1B`\0\x90\x81R\x7FY\xBAM\xB4\xA2\x13\xE8\x16\x1D\xE5\x97\xB8\xC1\r\xB0\xE7\xE7\xBAZ\xCE\\&\x8E67\x9E$\x9Am-B\xC9\x80T\x90\x92\x16\x83\x17\x90\x91U\x83Q\x81T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x90\x92U\x92\x84\x01Q\x82T\x90\x84\x16\x90\x82\x16\x17\x82U`@\x84\x01Q`\x02\x80T\x91\x90\x94\x16\x91\x16\x17\x82U``\x83\x01Q\x80Q\x92\x93\x90\x91\x90`\x01`\x01`@\x1B\x03\x84\x11a\x05\x1CWh\x01\0\0\0\0\0\0\0\0\x90\x81\x85\x11a\x05\x1CW`\x03\x93\x84T\x86\x86U\x80\x87\x10a\x05\xD7W[P` \x01\x84`\0R` `\0 \x86\x86\x1C\x90`\0[\x82\x81\x10a\x05\x86WP`\x07\x19\x97\x80\x89\x16\x90\x03\x80a\x052W[PPPP`\x80\x01Q\x80Q\x91`\x01`\x01`@\x1B\x03\x83\x11a\x05\x1CW\x82\x11a\x05\x1CW`\x04T\x82`\x04U\x80\x83\x10a\x04\xA3W[P` \x01`\x04`\0R\x81` `\0 \x94\x1C\x94`\0[\x86\x81\x10a\x04RWP\x82\x16\x80\x83\x03\x92\x03a\x03\xFAW[`@Qa\x013\x90\x81a\x0F\xAB\x829\xF3[\x91\x90`\0\x95`\0\x90[\x82\x82\x10a\x04\x1CWPPPPP\x01U\x80\x80\x80\x80\x80\x80a\x03\xEBV[\x90\x91\x92` a\x04F\x86\x99\x83\x97Q`\xE0\x1C\x90\x86\x86\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x98\x01\x94\x93\x92\x01\x90a\x04\x03V[\x84\x90`\0\x80[\x8A`\x08\x82\x10a\x04mWPP\x81\x88\x01U\x01a\x03\xD7V[a\x04\x96\x90\x87\x94\x95\x93\x83` \x94\x99Q`\xE0\x1C\x92\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x92\x01\x94\x01\x90\x86\x92\x91a\x04XV[`\x04`\0R\x7F\x8A5\xAC\xFB\xC1_\xF8\x1A9\xAE}4O\xD7\t\xF2\x8E\x86\0\xB4\xAA\x8Ce\xC6\xB6K\xFE\x7F\xE3k\xD1\x9B`\x07\x91\x82\x01\x86\x1C\x81\x01\x91\x84\x01\x86\x1C\x01`\x1C\x84\x89\x1B\x16\x80a\x05\x02W[P\x84\x90[\x82\x81\x10a\x04\xF6WPPa\x03\xC2V[`\0\x81U\x01\x84\x90a\x04\xE8V[`\0\x19\x90\x81\x83\x01\x91\x82T\x91` \x03\x89\x1B\x1C\x16\x90U\x88a\x04\xE4V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x92`\0\x93`\0[\x88\x8C\x83\x83\x10a\x05SWPPPPP\x01U`\x80\x87\x80\x80a\x03\x94V[a\x05|\x90\x85\x98\x84` \x94\x95\x96\x97Q`\xE0\x1C\x92\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x96\x01\x92\x91\x01a\x059V[\x86\x90`\0\x80[\x8C`\x08\x82\x10a\x05\xA1WPP\x81\x84\x01U\x01a\x03}V[a\x05\xCA\x90\x88\x94\x95\x93\x83` \x94\x9AQ`\xE0\x1C\x92\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x92\x01\x95\x01\x90\x88\x92\x91a\x05\x8CV[\x85`\0R` `\0 `\x07\x80\x89\x01\x88\x1C\x82\x01\x92\x01\x87\x1C\x01\x90`\x1C\x88\x8A\x1B\x16\x80a\x06\x19W[P\x85\x90[\x82\x81\x10a\x06\rWPPa\x03iV[`\0\x81U\x01\x85\x90a\x05\xFFV[`\0\x19\x90\x81\x83\x01\x91\x82T\x91` \x03\x8A\x1B\x1C\x16\x90U\x89a\x05\xFBV[\x90\x91\x92\x94` \x80a\x06z`\x01\x93`\x7F\x19\x8B\x82\x03\x01\x86R```@\x8BQ\x87\x80`\xA0\x1B\x03\x81Q\x16\x84Ra\x06j\x86\x82\x01Q\x87\x86\x01\x90a\x0E\xB0V[\x01Q\x91\x81`@\x82\x01R\x01\x90a\x0E\xBDV[\x97\x01\x92\x01\x92\x01\x90\x92\x91a\x01\xEFV[`@a\x06\x94\x82\x87a\x0E\x86V[Q\x01Q`\x01`\x01`\xA0\x1B\x03a\x06\xA9\x83\x88a\x0E\x86V[QQ\x16\x90\x80Q\x15a\x0C\xA6W` a\x06\xC0\x84\x89a\x0E\x86V[Q\x01Q`\x03\x81\x10\x15a\x0C\x90W\x80a\x08\xDEWP\x81\x15a\x08\xB5Wa\xFF\xFF`\0\x80Q` a\x10\xDE\x839\x81Q\x91RT\x16a\x071a\x06\xF7a\r\xB0V[`!\x81R\x7FdiamondCut: Add facet has no cod` \x82\x01R`e`\xF8\x1B`@\x82\x01R\x84a\x0FkV[\x81Q\x91`\0\x91[\x83\x83\x10a\x07NWPPPPP`\x01\x90[\x01a\x01\xC1V[a\x07X\x83\x83a\x0E\x86V[Q`\x01`\x01`\xE0\x1B\x03\x19\x81\x16`\0\x90\x81R`\0\x80Q` a\x10\xFE\x839\x81Q\x91R` R`@\x90 T\x90\x91\x90`\x01`\x01`\xA0\x1B\x03\x16a\x08\x93Wa\x08\x06a\x07\x9Ba\r\x91V[\x87\x81Ra\xFF\xFF\x92\x90\x92\x16` \x80\x84\x01\x82\x81R`\x01`\x01`\xE0\x1B\x03\x19\x86\x16`\0\x90\x81R`\0\x80Q` a\x10\xFE\x839\x81Q\x91R\x90\x92R`@\x90\x91 \x93Q\x84T\x91Q`\x01`\x01`\xB0\x1B\x03\x19\x90\x92\x16`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x17`\xA0\x91\x90\x91\x1Ba\xFF\xFF`\xA0\x1B\x16\x17\x90\x92UV[`\0\x80Q` a\x10\xDE\x839\x81Q\x91RT\x91h\x01\0\0\0\0\0\0\0\0\x83\x10\x15a\x05\x1CWa\x08ha\x08I`\x01\x94\x85\x81\x01`\0\x80Q` a\x10\xDE\x839\x81Q\x91RUa\x0F;V[\x90\x92`\xE0\x1C\x90\x83T\x90`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x90Ua\xFF\xFF\x81\x14a\x08}W\x81\x01\x92\x01\x91a\x078V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`@Qc\xEB\xBF]\x07`\xE0\x1B\x81R`\x01`\x01`\xE0\x1B\x03\x19\x83\x16`\x04\x82\x01R`$\x90\xFD[`@Qc\x02\xB8\xDA\x07`\xE2\x1B\x81R` `\x04\x82\x01R\x90\x81\x90a\x08\xDA\x90`$\x83\x01\x90a\x0E\xBDV[\x03\x90\xFD[`\x01\x81\x03a\nAWP\x81\x15a\n\x1CWa\t9a\x08\xF8a\r\xB0V[`(\x81R\x7FLibDiamondCut: Replace facet has` \x82\x01Rg no code`\xC0\x1B`@\x82\x01R\x83a\x0FkV[\x80Q\x90`\0[\x82\x81\x10a\tRWPPPP`\x01\x90a\x07HV[`\x01`\x01`\xE0\x1B\x03\x19a\te\x82\x84a\x0E\x86V[Q\x16`\0\x81\x81R`\0\x80Q` a\x10\xFE\x839\x81Q\x91R` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x160\x81\x14a\n\x03W\x85\x81\x14a\t\xEAW\x15a\t\xD2W`\0\x90\x81R`\0\x80Q` a\x10\xFE\x839\x81Q\x91R` R`@\x90 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x85\x17\x90U`\x01\x01a\t?V[`$\x90`@Q\x90cty\xF99`\xE0\x1B\x82R`\x04\x82\x01R\xFD[`@Qc\x1A\xC6\xCE\x8D`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x90\xFD[`@Qc)\x01\x80m`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x90\xFD[`@Qc\xCD\x98\xA9o`\xE0\x1B\x81R` `\x04\x82\x01R\x90\x81\x90a\x08\xDA\x90`$\x83\x01\x90a\x0E\xBDV[`\x02\x81\x03a\x0CpWP`\0\x80Q` a\x10\xDE\x839\x81Q\x91RT\x91\x80a\x0CXWP\x80Q\x90`\0[\x82\x81\x10a\nzWPPPP`\x01\x90a\x07HV[`\x01`\x01`\xE0\x1B\x03\x19a\n\x8D\x82\x84a\x0E\x86V[Q\x16\x90\x81`\0R`\0\x80Q` a\x10\xFE\x839\x81Q\x91R` R`@`\0 \x94a\n\xB4a\r\x91V[\x95T`\x01`\x01`\xA0\x1B\x03\x81\x16\x80\x88R`\xA0\x91\x90\x91\x1Ca\xFF\xFF\x16` \x88\x01R\x15a\x0C?W\x85Q`\x01`\x01`\xA0\x1B\x03\x160\x14a\x0C&W\x80\x15a\x08}W`\0\x19\x01\x80\x95\x81a\xFF\xFF` \x83\x01Q\x16\x03a\x0B\x85W[PP`\0\x80Q` a\x10\xDE\x839\x81Q\x91RT\x91\x82\x15a\x0BoW`\x01\x92`\0\x19\x01a\x0B-\x81a\x0F;V[c\xFF\xFF\xFF\xFF\x82T\x91`\x03\x1B\x1B\x19\x16\x90U`\0\x80Q` a\x10\xDE\x839\x81Q\x91RU`\0R`\0\x80Q` a\x10\xFE\x839\x81Q\x91R` R`\0`@\x81 U\x01a\ngV[cNH{q`\xE0\x1B`\0R`1`\x04R`$`\0\xFD[a\xFF\xFF` a\x0B\x96a\x0C\x1F\x94a\x0F;V[\x90T\x90`\x03\x1B\x1C\x92a\x0B\xD3a\x0B\xAF\x84\x84\x84\x01Q\x16a\x0F;V[c\xFF\xFF\xFF\xFF\x87\x93\x92\x93\x16\x90\x83T\x90`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x90U\x01Q`\xE0\x92\x90\x92\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16`\0\x90\x81R`\0\x80Q` a\x10\xFE\x839\x81Q\x91R` R`@\x90 \x80Ta\xFF\xFF`\xA0\x1B\x19\x16\x91\x90\x92\x16`\xA0\x1Ba\xFF\xFF`\xA0\x1B\x16\x17\x90UV[8\x80a\x0B\x04V[`@Qc\r\xF5\xFDa`\xE3\x1B\x81R`\x04\x81\x01\x84\x90R`$\x90\xFD[`@Qcz\x08\xA2-`\xE0\x1B\x81R`\x04\x81\x01\x84\x90R`$\x90\xFD[`$\x90`@Q\x90c\xD0\x91\xBC\x81`\xE0\x1B\x82R`\x04\x82\x01R\xFD[`@Qc?\xF4\xD2\x0F`\xE1\x1B\x81R`$\x91a\x0C\x8E\x90`\x04\x83\x01\x90a\x0E\xB0V[\xFD[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`@Qc\xE7g\xF9\x1F`\xE0\x1B\x81R`\x04\x81\x01\x83\x90R`$\x90\xFD[`@Qc\x07\xA0CQ`\xE5\x1B\x81R`\x04\x90\xFD[`@Qc\x8B=\xDC3`\xE0\x1B\x81R`\x04\x90\xFD[`\0\x80\xFD[\x82Q`\x01`\x01`@\x1B\x03\x81\x11a\x0C\xE3W\x82\x01\x90``\x90\x81`\x1F\x19\x84\x8C\x03\x01\x12a\x0C\xE3W`@Q\x91\x80\x83\x01`\x01`\x01`@\x1B\x03\x81\x11\x84\x82\x10\x17a\r|W`@Ra\r3` \x85\x01a\x0E\x0BV[\x83R`@\x84\x01Q`\x03\x81\x10\x15a\x0C\xE3W` \x84\x01R\x83\x01Q\x91`\x01`\x01`@\x1B\x03\x83\x11a\x0C\xE3Wa\rl\x8B` \x80\x96\x95\x81\x96\x01\x01a\x0E\x1FV[`@\x82\x01R\x81R\x01\x92\x01\x91a\0{V[`$`\0cNH{q`\xE0\x1B\x81R`A`\x04R\xFD[`@\x80Q\x91\x90\x82\x01`\x01`\x01`@\x1B\x03\x81\x11\x83\x82\x10\x17a\x05\x1CW`@RV[`@Q\x90``\x82\x01`\x01`\x01`@\x1B\x03\x81\x11\x83\x82\x10\x17a\x05\x1CW`@RV[`@Q\x91\x90`\x1F\x01`\x1F\x19\x16\x82\x01`\x01`\x01`@\x1B\x03\x81\x11\x83\x82\x10\x17a\x05\x1CW`@RV[`\x01`\x01`@\x1B\x03\x81\x11a\x05\x1CW`\x05\x1B` \x01\x90V[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\x0C\xE3WV[\x90\x80`\x1F\x83\x01\x12\x15a\x0C\xE3W\x81Q\x90a\x0E:a\0V\x83a\r\xF4V[\x91\x82\x93\x81\x84R` \x80\x80\x95\x01\x92`\x05\x1B\x82\x01\x01\x92\x83\x11a\x0C\xE3W\x83\x01\x90[\x82\x82\x10a\x0EfWPPPP\x90V[\x81Q`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x03a\x0C\xE3W\x81R\x90\x83\x01\x90\x83\x01a\x0EXV[\x80Q\x82\x10\x15a\x0E\x9AW` \x91`\x05\x1B\x01\x01\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[\x90`\x03\x82\x10\x15a\x0C\x90WRV[\x90\x81Q\x80\x82R` \x80\x80\x93\x01\x93\x01\x91`\0[\x82\x81\x10a\x0E\xDDWPPPP\x90V[\x83Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01a\x0E\xCFV[\x91\x90\x82Q\x92\x83\x82R`\0[\x84\x81\x10a\x0F'WPP\x82`\0` \x80\x94\x95\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[` \x81\x83\x01\x81\x01Q\x84\x83\x01\x82\x01R\x01a\x0F\x06V[\x90`\0\x80Q` a\x10\xDE\x839\x81Q\x91R\x80T\x83\x10\x15a\x0E\x9AW`\0R`\x1C` `\0 \x83`\x03\x1C\x01\x92`\x02\x1B\x16\x90V[\x80;\x15a\x0FvWPPV[`@\x80Qc\x91\x984\xB9`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x90\x92\x16`\x04\x83\x01R`$\x82\x01R\x90\x81\x90a\x08\xDA\x90`D\x83\x01\x90a\x0E\xFBV\xFE`\x80`@R6\x15`\x87W`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`oWP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[=\x90\xFD[`$\x90`@Q\x90c\n\x82\xDDs`\xE3\x1B\x82R`\x04\x82\x01R\xFD[`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`\xE9WP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[c\n\x82\xDDs`\xE3\x1B`\x80R`\x84R`$`\x80\xFD\xFE\xA2dipfsX\"\x12 \xB0\xB1\xBF\xA7`H\x8D\x13\x8C\xA9\xFFa\x96\x1C&\xB6\xD5\x0E!\xD7Q\x08|\xA6\x1F\xF9;6p\x84\xC6\x0EdsolcC\0\x08\x13\x003\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD3\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2"; + const __BYTECODE: &[u8] = b"`\x80`@R4a\x0C\xE3Wa\x11\x1E\x808\x03\x80a\0\x19\x81a\r\xCFV[\x92\x839\x81\x01\x90`@\x81\x83\x03\x12a\x0C\xE3W\x80Q`\x01`\x01`@\x1B\x03\x81\x11a\x0C\xE3W\x81\x01\x90\x82`\x1F\x83\x01\x12\x15a\x0C\xE3W\x81Q\x90a\0[a\0V\x83a\r\xF4V[a\r\xCFV[\x92` \x84\x84\x81R\x01` \x81\x94`\x05\x1B\x83\x01\x01\x91\x86\x83\x11a\x0C\xE3W` \x81\x01\x91[\x83\x83\x10a\x0C\xE8WPPPP` \x81\x01Q\x90`\x01`\x01`@\x1B\x03\x82\x11a\x0C\xE3W\x01`\xA0\x81\x85\x03\x12a\x0C\xE3W`@Q\x93`\xA0\x85\x01`\x01`\x01`@\x1B\x03\x81\x11\x86\x82\x10\x17a\x05\x1CW`@Ra\0\xCB\x82a\x0E\x0BV[\x85Ra\0\xD9` \x83\x01a\x0E\x0BV[` \x86\x01Ra\0\xEA`@\x83\x01a\x0E\x0BV[`@\x86\x01R``\x82\x01Q`\x01`\x01`@\x1B\x03\x81\x11a\x0C\xE3W\x81a\x01\x0E\x91\x84\x01a\x0E\x1FV[``\x86\x01R`\x80\x82\x01Q`\x01`\x01`@\x1B\x03\x81\x11a\x0C\xE3Wa\x010\x92\x01a\x0E\x1FV[`\x80\x84\x01R\x82Q`\x01`\x01`\xA0\x1B\x03\x16\x15a\x0C\xD1W` \x83\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x15a\x0C\xBFW`@\x83\x01Q`\x01`\x01`\xA0\x1B\x03\x16\x15a\x0C\xBFW\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD5\x80T`\x01`\x01`\xA0\x1B\x03\x19\x163\x17\x90U`@Q` \x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17a\x05\x1CW`@R`\0\x81R\x82Q`\0[\x81\x81\x10a\x06\x88WPP`@Q\x92``\x84\x01\x90``\x85RQ\x80\x91R`\x80\x84\x01\x90`\x80\x81`\x05\x1B\x86\x01\x01\x93\x91`\0\x90[\x82\x82\x10a\x063W\x87\x7F\x8F\xAAp\x87\x86q\xCC\xD2\x12\xD2\x07q\xB7\x95\xC5\n\xF8\xFD?\xF6\xCF'\xF4\xBD\xE5~]M\xE0\xAE\xB6s\x88\x80a\x023\x8A\x8A`\0` \x85\x01R\x83\x82\x03`@\x85\x01Ra\x0E\xFBV[\x03\x90\xA1\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD4` \x90\x81R\x7F}\xFDH\xDD\x9D\xEF\0/\xA9\xB4\xA0[\xD6\xB7&\xA6\xC3\x13\xC3b\xD3\xF3\xE8A=zu \xF0\t\r%\x80T`\x01`\xFF\x19\x91\x82\x16\x81\x17\x90\x92U\x7FM\x7FL\x8A/\xB5\xB3\\\xA3\xC2w\xC98\x88\xB4\x7F\x0F\")\xBD\xCC\xCFfPM\x1B\xA4\x8E\x88\xB8\x81d\x80T\x82\x16\x83\x17\x90UcH\xE2\xB0\x93`\xE0\x1B`\0\x90\x81R\x7FY\xBAM\xB4\xA2\x13\xE8\x16\x1D\xE5\x97\xB8\xC1\r\xB0\xE7\xE7\xBAZ\xCE\\&\x8E67\x9E$\x9Am-B\xC9\x80T\x90\x92\x16\x83\x17\x90\x91U\x83Q\x81T`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\x01`\x01`\xA0\x1B\x03\x19\x91\x82\x16\x17\x90\x92U\x92\x84\x01Q\x82T\x90\x84\x16\x90\x82\x16\x17\x82U`@\x84\x01Q`\x02\x80T\x91\x90\x94\x16\x91\x16\x17\x82U``\x83\x01Q\x80Q\x92\x93\x90\x91\x90`\x01`\x01`@\x1B\x03\x84\x11a\x05\x1CWh\x01\0\0\0\0\0\0\0\0\x90\x81\x85\x11a\x05\x1CW`\x03\x93\x84T\x86\x86U\x80\x87\x10a\x05\xD7W[P` \x01\x84`\0R` `\0 \x86\x86\x1C\x90`\0[\x82\x81\x10a\x05\x86WP`\x07\x19\x97\x80\x89\x16\x90\x03\x80a\x052W[PPPP`\x80\x01Q\x80Q\x91`\x01`\x01`@\x1B\x03\x83\x11a\x05\x1CW\x82\x11a\x05\x1CW`\x04T\x82`\x04U\x80\x83\x10a\x04\xA3W[P` \x01`\x04`\0R\x81` `\0 \x94\x1C\x94`\0[\x86\x81\x10a\x04RWP\x82\x16\x80\x83\x03\x92\x03a\x03\xFAW[`@Qa\x013\x90\x81a\x0F\xAB\x829\xF3[\x91\x90`\0\x95`\0\x90[\x82\x82\x10a\x04\x1CWPPPPP\x01U\x80\x80\x80\x80\x80\x80a\x03\xEBV[\x90\x91\x92` a\x04F\x86\x99\x83\x97Q`\xE0\x1C\x90\x86\x86\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x98\x01\x94\x93\x92\x01\x90a\x04\x03V[\x84\x90`\0\x80[\x8A`\x08\x82\x10a\x04mWPP\x81\x88\x01U\x01a\x03\xD7V[a\x04\x96\x90\x87\x94\x95\x93\x83` \x94\x99Q`\xE0\x1C\x92\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x92\x01\x94\x01\x90\x86\x92\x91a\x04XV[`\x04`\0R\x7F\x8A5\xAC\xFB\xC1_\xF8\x1A9\xAE}4O\xD7\t\xF2\x8E\x86\0\xB4\xAA\x8Ce\xC6\xB6K\xFE\x7F\xE3k\xD1\x9B`\x07\x91\x82\x01\x86\x1C\x81\x01\x91\x84\x01\x86\x1C\x01`\x1C\x84\x89\x1B\x16\x80a\x05\x02W[P\x84\x90[\x82\x81\x10a\x04\xF6WPPa\x03\xC2V[`\0\x81U\x01\x84\x90a\x04\xE8V[`\0\x19\x90\x81\x83\x01\x91\x82T\x91` \x03\x89\x1B\x1C\x16\x90U\x88a\x04\xE4V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x92`\0\x93`\0[\x88\x8C\x83\x83\x10a\x05SWPPPPP\x01U`\x80\x87\x80\x80a\x03\x94V[a\x05|\x90\x85\x98\x84` \x94\x95\x96\x97Q`\xE0\x1C\x92\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x96\x01\x92\x91\x01a\x059V[\x86\x90`\0\x80[\x8C`\x08\x82\x10a\x05\xA1WPP\x81\x84\x01U\x01a\x03}V[a\x05\xCA\x90\x88\x94\x95\x93\x83` \x94\x9AQ`\xE0\x1C\x92\x1B`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x92\x01\x95\x01\x90\x88\x92\x91a\x05\x8CV[\x85`\0R` `\0 `\x07\x80\x89\x01\x88\x1C\x82\x01\x92\x01\x87\x1C\x01\x90`\x1C\x88\x8A\x1B\x16\x80a\x06\x19W[P\x85\x90[\x82\x81\x10a\x06\rWPPa\x03iV[`\0\x81U\x01\x85\x90a\x05\xFFV[`\0\x19\x90\x81\x83\x01\x91\x82T\x91` \x03\x8A\x1B\x1C\x16\x90U\x89a\x05\xFBV[\x90\x91\x92\x94` \x80a\x06z`\x01\x93`\x7F\x19\x8B\x82\x03\x01\x86R```@\x8BQ\x87\x80`\xA0\x1B\x03\x81Q\x16\x84Ra\x06j\x86\x82\x01Q\x87\x86\x01\x90a\x0E\xB0V[\x01Q\x91\x81`@\x82\x01R\x01\x90a\x0E\xBDV[\x97\x01\x92\x01\x92\x01\x90\x92\x91a\x01\xEFV[`@a\x06\x94\x82\x87a\x0E\x86V[Q\x01Q`\x01`\x01`\xA0\x1B\x03a\x06\xA9\x83\x88a\x0E\x86V[QQ\x16\x90\x80Q\x15a\x0C\xA6W` a\x06\xC0\x84\x89a\x0E\x86V[Q\x01Q`\x03\x81\x10\x15a\x0C\x90W\x80a\x08\xDEWP\x81\x15a\x08\xB5Wa\xFF\xFF`\0\x80Q` a\x10\xDE\x839\x81Q\x91RT\x16a\x071a\x06\xF7a\r\xB0V[`!\x81R\x7FdiamondCut: Add facet has no cod` \x82\x01R`e`\xF8\x1B`@\x82\x01R\x84a\x0FkV[\x81Q\x91`\0\x91[\x83\x83\x10a\x07NWPPPPP`\x01\x90[\x01a\x01\xC1V[a\x07X\x83\x83a\x0E\x86V[Q`\x01`\x01`\xE0\x1B\x03\x19\x81\x16`\0\x90\x81R`\0\x80Q` a\x10\xFE\x839\x81Q\x91R` R`@\x90 T\x90\x91\x90`\x01`\x01`\xA0\x1B\x03\x16a\x08\x93Wa\x08\x06a\x07\x9Ba\r\x91V[\x87\x81Ra\xFF\xFF\x92\x90\x92\x16` \x80\x84\x01\x82\x81R`\x01`\x01`\xE0\x1B\x03\x19\x86\x16`\0\x90\x81R`\0\x80Q` a\x10\xFE\x839\x81Q\x91R\x90\x92R`@\x90\x91 \x93Q\x84T\x91Q`\x01`\x01`\xB0\x1B\x03\x19\x90\x92\x16`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x17`\xA0\x91\x90\x91\x1Ba\xFF\xFF`\xA0\x1B\x16\x17\x90\x92UV[`\0\x80Q` a\x10\xDE\x839\x81Q\x91RT\x91h\x01\0\0\0\0\0\0\0\0\x83\x10\x15a\x05\x1CWa\x08ha\x08I`\x01\x94\x85\x81\x01`\0\x80Q` a\x10\xDE\x839\x81Q\x91RUa\x0F;V[\x90\x92`\xE0\x1C\x90\x83T\x90`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x90Ua\xFF\xFF\x81\x14a\x08}W\x81\x01\x92\x01\x91a\x078V[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`@Qc\xEB\xBF]\x07`\xE0\x1B\x81R`\x01`\x01`\xE0\x1B\x03\x19\x83\x16`\x04\x82\x01R`$\x90\xFD[`@Qc\x02\xB8\xDA\x07`\xE2\x1B\x81R` `\x04\x82\x01R\x90\x81\x90a\x08\xDA\x90`$\x83\x01\x90a\x0E\xBDV[\x03\x90\xFD[`\x01\x81\x03a\nAWP\x81\x15a\n\x1CWa\t9a\x08\xF8a\r\xB0V[`(\x81R\x7FLibDiamondCut: Replace facet has` \x82\x01Rg no code`\xC0\x1B`@\x82\x01R\x83a\x0FkV[\x80Q\x90`\0[\x82\x81\x10a\tRWPPPP`\x01\x90a\x07HV[`\x01`\x01`\xE0\x1B\x03\x19a\te\x82\x84a\x0E\x86V[Q\x16`\0\x81\x81R`\0\x80Q` a\x10\xFE\x839\x81Q\x91R` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x160\x81\x14a\n\x03W\x85\x81\x14a\t\xEAW\x15a\t\xD2W`\0\x90\x81R`\0\x80Q` a\x10\xFE\x839\x81Q\x91R` R`@\x90 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x85\x17\x90U`\x01\x01a\t?V[`$\x90`@Q\x90cty\xF99`\xE0\x1B\x82R`\x04\x82\x01R\xFD[`@Qc\x1A\xC6\xCE\x8D`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x90\xFD[`@Qc)\x01\x80m`\xE1\x1B\x81R`\x04\x81\x01\x83\x90R`$\x90\xFD[`@Qc\xCD\x98\xA9o`\xE0\x1B\x81R` `\x04\x82\x01R\x90\x81\x90a\x08\xDA\x90`$\x83\x01\x90a\x0E\xBDV[`\x02\x81\x03a\x0CpWP`\0\x80Q` a\x10\xDE\x839\x81Q\x91RT\x91\x80a\x0CXWP\x80Q\x90`\0[\x82\x81\x10a\nzWPPPP`\x01\x90a\x07HV[`\x01`\x01`\xE0\x1B\x03\x19a\n\x8D\x82\x84a\x0E\x86V[Q\x16\x90\x81`\0R`\0\x80Q` a\x10\xFE\x839\x81Q\x91R` R`@`\0 \x94a\n\xB4a\r\x91V[\x95T`\x01`\x01`\xA0\x1B\x03\x81\x16\x80\x88R`\xA0\x91\x90\x91\x1Ca\xFF\xFF\x16` \x88\x01R\x15a\x0C?W\x85Q`\x01`\x01`\xA0\x1B\x03\x160\x14a\x0C&W\x80\x15a\x08}W`\0\x19\x01\x80\x95\x81a\xFF\xFF` \x83\x01Q\x16\x03a\x0B\x85W[PP`\0\x80Q` a\x10\xDE\x839\x81Q\x91RT\x91\x82\x15a\x0BoW`\x01\x92`\0\x19\x01a\x0B-\x81a\x0F;V[c\xFF\xFF\xFF\xFF\x82T\x91`\x03\x1B\x1B\x19\x16\x90U`\0\x80Q` a\x10\xDE\x839\x81Q\x91RU`\0R`\0\x80Q` a\x10\xFE\x839\x81Q\x91R` R`\0`@\x81 U\x01a\ngV[cNH{q`\xE0\x1B`\0R`1`\x04R`$`\0\xFD[a\xFF\xFF` a\x0B\x96a\x0C\x1F\x94a\x0F;V[\x90T\x90`\x03\x1B\x1C\x92a\x0B\xD3a\x0B\xAF\x84\x84\x84\x01Q\x16a\x0F;V[c\xFF\xFF\xFF\xFF\x87\x93\x92\x93\x16\x90\x83T\x90`\x03\x1B\x91c\xFF\xFF\xFF\xFF\x80\x91\x16\x83\x1B\x92\x1B\x19\x16\x17\x90V[\x90U\x01Q`\xE0\x92\x90\x92\x1B`\x01`\x01`\xE0\x1B\x03\x19\x16`\0\x90\x81R`\0\x80Q` a\x10\xFE\x839\x81Q\x91R` R`@\x90 \x80Ta\xFF\xFF`\xA0\x1B\x19\x16\x91\x90\x92\x16`\xA0\x1Ba\xFF\xFF`\xA0\x1B\x16\x17\x90UV[8\x80a\x0B\x04V[`@Qc\r\xF5\xFDa`\xE3\x1B\x81R`\x04\x81\x01\x84\x90R`$\x90\xFD[`@Qcz\x08\xA2-`\xE0\x1B\x81R`\x04\x81\x01\x84\x90R`$\x90\xFD[`$\x90`@Q\x90c\xD0\x91\xBC\x81`\xE0\x1B\x82R`\x04\x82\x01R\xFD[`@Qc?\xF4\xD2\x0F`\xE1\x1B\x81R`$\x91a\x0C\x8E\x90`\x04\x83\x01\x90a\x0E\xB0V[\xFD[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`@Qc\xE7g\xF9\x1F`\xE0\x1B\x81R`\x04\x81\x01\x83\x90R`$\x90\xFD[`@Qc\x07\xA0CQ`\xE5\x1B\x81R`\x04\x90\xFD[`@Qc\x8B=\xDC3`\xE0\x1B\x81R`\x04\x90\xFD[`\0\x80\xFD[\x82Q`\x01`\x01`@\x1B\x03\x81\x11a\x0C\xE3W\x82\x01\x90``\x90\x81`\x1F\x19\x84\x8C\x03\x01\x12a\x0C\xE3W`@Q\x91\x80\x83\x01`\x01`\x01`@\x1B\x03\x81\x11\x84\x82\x10\x17a\r|W`@Ra\r3` \x85\x01a\x0E\x0BV[\x83R`@\x84\x01Q`\x03\x81\x10\x15a\x0C\xE3W` \x84\x01R\x83\x01Q\x91`\x01`\x01`@\x1B\x03\x83\x11a\x0C\xE3Wa\rl\x8B` \x80\x96\x95\x81\x96\x01\x01a\x0E\x1FV[`@\x82\x01R\x81R\x01\x92\x01\x91a\0{V[`$`\0cNH{q`\xE0\x1B\x81R`A`\x04R\xFD[`@\x80Q\x91\x90\x82\x01`\x01`\x01`@\x1B\x03\x81\x11\x83\x82\x10\x17a\x05\x1CW`@RV[`@Q\x90``\x82\x01`\x01`\x01`@\x1B\x03\x81\x11\x83\x82\x10\x17a\x05\x1CW`@RV[`@Q\x91\x90`\x1F\x01`\x1F\x19\x16\x82\x01`\x01`\x01`@\x1B\x03\x81\x11\x83\x82\x10\x17a\x05\x1CW`@RV[`\x01`\x01`@\x1B\x03\x81\x11a\x05\x1CW`\x05\x1B` \x01\x90V[Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\x0C\xE3WV[\x90\x80`\x1F\x83\x01\x12\x15a\x0C\xE3W\x81Q\x90a\x0E:a\0V\x83a\r\xF4V[\x91\x82\x93\x81\x84R` \x80\x80\x95\x01\x92`\x05\x1B\x82\x01\x01\x92\x83\x11a\x0C\xE3W\x83\x01\x90[\x82\x82\x10a\x0EfWPPPP\x90V[\x81Q`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x03a\x0C\xE3W\x81R\x90\x83\x01\x90\x83\x01a\x0EXV[\x80Q\x82\x10\x15a\x0E\x9AW` \x91`\x05\x1B\x01\x01\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[\x90`\x03\x82\x10\x15a\x0C\x90WRV[\x90\x81Q\x80\x82R` \x80\x80\x93\x01\x93\x01\x91`\0[\x82\x81\x10a\x0E\xDDWPPPP\x90V[\x83Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x85R\x93\x81\x01\x93\x92\x81\x01\x92`\x01\x01a\x0E\xCFV[\x91\x90\x82Q\x92\x83\x82R`\0[\x84\x81\x10a\x0F'WPP\x82`\0` \x80\x94\x95\x84\x01\x01R`\x1F\x80\x19\x91\x01\x16\x01\x01\x90V[` \x81\x83\x01\x81\x01Q\x84\x83\x01\x82\x01R\x01a\x0F\x06V[\x90`\0\x80Q` a\x10\xDE\x839\x81Q\x91R\x80T\x83\x10\x15a\x0E\x9AW`\0R`\x1C` `\0 \x83`\x03\x1C\x01\x92`\x02\x1B\x16\x90V[\x80;\x15a\x0FvWPPV[`@\x80Qc\x91\x984\xB9`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x90\x92\x16`\x04\x83\x01R`$\x82\x01R\x90\x81\x90a\x08\xDA\x90`D\x83\x01\x90a\x0E\xFBV\xFE`\x80`@R6\x15`\x87W`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`oWP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[=\x90\xFD[`$\x90`@Q\x90c\n\x82\xDDs`\xE3\x1B\x82R`\x04\x82\x01R\xFD[`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`\xE9WP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[c\n\x82\xDDs`\xE3\x1B`\x80R`\x84R`$`\x80\xFD\xFE\xA2dipfsX\"\x12 \xB9\xD7\xF9\xC6\x85\x9Ax\x92\xA4\xA0}\xE8\xC4\"$\x9A5\xA0'}\xFDn\xD6\xA8\xD54\xA8\x07\xB3\xDAL|dsolcC\0\x08\x13\x003\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD3\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2"; /// The bytecode of the contract. pub static SUBNETREGISTRYDIAMOND_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __BYTECODE, ); #[rustfmt::skip] - const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R6\x15`\x87W`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`oWP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[=\x90\xFD[`$\x90`@Q\x90c\n\x82\xDDs`\xE3\x1B\x82R`\x04\x82\x01R\xFD[`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`\xE9WP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[c\n\x82\xDDs`\xE3\x1B`\x80R`\x84R`$`\x80\xFD\xFE\xA2dipfsX\"\x12 \xB0\xB1\xBF\xA7`H\x8D\x13\x8C\xA9\xFFa\x96\x1C&\xB6\xD5\x0E!\xD7Q\x08|\xA6\x1F\xF9;6p\x84\xC6\x0EdsolcC\0\x08\x13\x003"; + const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R6\x15`\x87W`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`oWP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[=\x90\xFD[`$\x90`@Q\x90c\n\x82\xDDs`\xE3\x1B\x82R`\x04\x82\x01R\xFD[`\0\x805`\x01`\x01`\xE0\x1B\x03\x19\x16\x80\x82R\x7F\x80n\x0C\xBB\x9F\xCE)k\xBC3jH\xF4+\xF1\xDB\xC6\x97\"\xD1\x8D\x90\xD6\xFEp[u\x82\xC2\xBBK\xD2` R`@\x82 T`\x01`\x01`\xA0\x1B\x03\x16\x90\x81\x15`\xE9WP\x81\x80\x916\x82\x807\x816\x91Z\xF4=\x82\x80>\x15`kW=\x90\xF3[c\n\x82\xDDs`\xE3\x1B`\x80R`\x84R`$`\x80\xFD\xFE\xA2dipfsX\"\x12 \xB9\xD7\xF9\xC6\x85\x9Ax\x92\xA4\xA0}\xE8\xC4\"$\x9A5\xA0'}\xFDn\xD6\xA8\xD54\xA8\x07\xB3\xDAL|dsolcC\0\x08\x13\x003"; /// The deployed bytecode of the contract. pub static SUBNETREGISTRYDIAMOND_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static( __DEPLOYED_BYTECODE, diff --git a/binding/src/top_down_finality_facet.rs b/binding/src/top_down_finality_facet.rs new file mode 100644 index 000000000..299b67896 --- /dev/null +++ b/binding/src/top_down_finality_facet.rs @@ -0,0 +1,816 @@ +pub use top_down_finality_facet::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod top_down_finality_facet { + #[allow(deprecated)] + fn __abi() -> ::ethers::core::abi::Abi { + ::ethers::core::abi::ethabi::Contract { + constructor: ::core::option::Option::None, + functions: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("applyFinalityChanges"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned( + "applyFinalityChanges", + ), + inputs: ::std::vec![], + outputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint64"), + ), + }, + ], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("commitParentFinality"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned( + "commitParentFinality", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("finality"), + kind: ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize), + ], + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("struct ParentFinality"), + ), + }, + ], + outputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned( + "hasCommittedBefore", + ), + kind: ::ethers::core::abi::ethabi::ParamType::Bool, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bool"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("previousFinality"), + kind: ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize), + ], + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("struct ParentFinality"), + ), + }, + ], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("storeValidatorChanges"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned( + "storeValidatorChanges", + ), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("changeRequests"), + kind: ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + ::ethers::core::abi::ethabi::ParamType::Bytes, + ::ethers::core::abi::ethabi::ParamType::Address, + ], + ), + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ], + ), + ), + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned( + "struct StakingChangeRequest[]", + ), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ]), + events: ::std::collections::BTreeMap::new(), + errors: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("AddressShouldBeValidator"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "AddressShouldBeValidator", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("CannotConfirmFutureChanges"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "CannotConfirmFutureChanges", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidConfigurationNumber"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidConfigurationNumber", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotSystemActor"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("NotSystemActor"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("OldConfigurationNumber"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "OldConfigurationNumber", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("PQDoesNotContainAddress"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "PQDoesNotContainAddress", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("PQEmpty"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("PQEmpty"), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("ParentFinalityAlreadyCommitted"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "ParentFinalityAlreadyCommitted", + ), + inputs: ::std::vec![], + }, + ], + ), + ]), + receive: false, + fallback: false, + } + } + ///The parsed JSON ABI of the contract. + pub static TOPDOWNFINALITYFACET_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(__abi); + pub struct TopDownFinalityFacet(::ethers::contract::Contract); + impl ::core::clone::Clone for TopDownFinalityFacet { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for TopDownFinalityFacet { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for TopDownFinalityFacet { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for TopDownFinalityFacet { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(::core::stringify!(TopDownFinalityFacet)) + .field(&self.address()) + .finish() + } + } + impl TopDownFinalityFacet { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + TOPDOWNFINALITYFACET_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `applyFinalityChanges` (0x0df14461) function + pub fn apply_finality_changes( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([13, 241, 68, 97], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `commitParentFinality` (0x11196974) function + pub fn commit_parent_finality( + &self, + finality: ParentFinality, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([17, 25, 105, 116], (finality,)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `storeValidatorChanges` (0xe49a547d) function + pub fn store_validator_changes( + &self, + change_requests: ::std::vec::Vec, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([228, 154, 84, 125], change_requests) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for TopDownFinalityFacet { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `AddressShouldBeValidator` with signature `AddressShouldBeValidator()` and selector `0x2a55ca53` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "AddressShouldBeValidator", abi = "AddressShouldBeValidator()")] + pub struct AddressShouldBeValidator; + ///Custom Error type `CannotConfirmFutureChanges` with signature `CannotConfirmFutureChanges()` and selector `0x0815540a` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "CannotConfirmFutureChanges", + abi = "CannotConfirmFutureChanges()" + )] + pub struct CannotConfirmFutureChanges; + ///Custom Error type `InvalidConfigurationNumber` with signature `InvalidConfigurationNumber()` and selector `0x6ae94ca4` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "InvalidConfigurationNumber", + abi = "InvalidConfigurationNumber()" + )] + pub struct InvalidConfigurationNumber; + ///Custom Error type `NotSystemActor` with signature `NotSystemActor()` and selector `0xf0d97f3b` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotSystemActor", abi = "NotSystemActor()")] + pub struct NotSystemActor; + ///Custom Error type `OldConfigurationNumber` with signature `OldConfigurationNumber()` and selector `0x6e8d7c4a` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "OldConfigurationNumber", abi = "OldConfigurationNumber()")] + pub struct OldConfigurationNumber; + ///Custom Error type `PQDoesNotContainAddress` with signature `PQDoesNotContainAddress()` and selector `0xf2755e37` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PQDoesNotContainAddress", abi = "PQDoesNotContainAddress()")] + pub struct PQDoesNotContainAddress; + ///Custom Error type `PQEmpty` with signature `PQEmpty()` and selector `0x40d9b011` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "PQEmpty", abi = "PQEmpty()")] + pub struct PQEmpty; + ///Custom Error type `ParentFinalityAlreadyCommitted` with signature `ParentFinalityAlreadyCommitted()` and selector `0x2a75b082` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror( + name = "ParentFinalityAlreadyCommitted", + abi = "ParentFinalityAlreadyCommitted()" + )] + pub struct ParentFinalityAlreadyCommitted; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum TopDownFinalityFacetErrors { + AddressShouldBeValidator(AddressShouldBeValidator), + CannotConfirmFutureChanges(CannotConfirmFutureChanges), + InvalidConfigurationNumber(InvalidConfigurationNumber), + NotSystemActor(NotSystemActor), + OldConfigurationNumber(OldConfigurationNumber), + PQDoesNotContainAddress(PQDoesNotContainAddress), + PQEmpty(PQEmpty), + ParentFinalityAlreadyCommitted(ParentFinalityAlreadyCommitted), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for TopDownFinalityFacetErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::AddressShouldBeValidator(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::CannotConfirmFutureChanges(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidConfigurationNumber(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotSystemActor(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::OldConfigurationNumber(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::PQDoesNotContainAddress(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::PQEmpty(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::ParentFinalityAlreadyCommitted(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for TopDownFinalityFacetErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::AddressShouldBeValidator(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CannotConfirmFutureChanges(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidConfigurationNumber(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotSystemActor(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::OldConfigurationNumber(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PQDoesNotContainAddress(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::PQEmpty(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ParentFinalityAlreadyCommitted(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for TopDownFinalityFacetErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ => false, + } + } + } + impl ::core::fmt::Display for TopDownFinalityFacetErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AddressShouldBeValidator(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CannotConfirmFutureChanges(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidConfigurationNumber(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotSystemActor(element) => ::core::fmt::Display::fmt(element, f), + Self::OldConfigurationNumber(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::PQDoesNotContainAddress(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::PQEmpty(element) => ::core::fmt::Display::fmt(element, f), + Self::ParentFinalityAlreadyCommitted(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for TopDownFinalityFacetErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for TopDownFinalityFacetErrors { + fn from(value: AddressShouldBeValidator) -> Self { + Self::AddressShouldBeValidator(value) + } + } + impl ::core::convert::From + for TopDownFinalityFacetErrors { + fn from(value: CannotConfirmFutureChanges) -> Self { + Self::CannotConfirmFutureChanges(value) + } + } + impl ::core::convert::From + for TopDownFinalityFacetErrors { + fn from(value: InvalidConfigurationNumber) -> Self { + Self::InvalidConfigurationNumber(value) + } + } + impl ::core::convert::From for TopDownFinalityFacetErrors { + fn from(value: NotSystemActor) -> Self { + Self::NotSystemActor(value) + } + } + impl ::core::convert::From for TopDownFinalityFacetErrors { + fn from(value: OldConfigurationNumber) -> Self { + Self::OldConfigurationNumber(value) + } + } + impl ::core::convert::From for TopDownFinalityFacetErrors { + fn from(value: PQDoesNotContainAddress) -> Self { + Self::PQDoesNotContainAddress(value) + } + } + impl ::core::convert::From for TopDownFinalityFacetErrors { + fn from(value: PQEmpty) -> Self { + Self::PQEmpty(value) + } + } + impl ::core::convert::From + for TopDownFinalityFacetErrors { + fn from(value: ParentFinalityAlreadyCommitted) -> Self { + Self::ParentFinalityAlreadyCommitted(value) + } + } + ///Container type for all input parameters for the `applyFinalityChanges` function with signature `applyFinalityChanges()` and selector `0x0df14461` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall(name = "applyFinalityChanges", abi = "applyFinalityChanges()")] + pub struct ApplyFinalityChangesCall; + ///Container type for all input parameters for the `commitParentFinality` function with signature `commitParentFinality((uint256,bytes32))` and selector `0x11196974` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "commitParentFinality", + abi = "commitParentFinality((uint256,bytes32))" + )] + pub struct CommitParentFinalityCall { + pub finality: ParentFinality, + } + ///Container type for all input parameters for the `storeValidatorChanges` function with signature `storeValidatorChanges(((uint8,bytes,address),uint64)[])` and selector `0xe49a547d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "storeValidatorChanges", + abi = "storeValidatorChanges(((uint8,bytes,address),uint64)[])" + )] + pub struct StoreValidatorChangesCall { + pub change_requests: ::std::vec::Vec, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum TopDownFinalityFacetCalls { + ApplyFinalityChanges(ApplyFinalityChangesCall), + CommitParentFinality(CommitParentFinalityCall), + StoreValidatorChanges(StoreValidatorChangesCall), + } + impl ::ethers::core::abi::AbiDecode for TopDownFinalityFacetCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::ApplyFinalityChanges(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::CommitParentFinality(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::StoreValidatorChanges(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for TopDownFinalityFacetCalls { + fn encode(self) -> Vec { + match self { + Self::ApplyFinalityChanges(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CommitParentFinality(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::StoreValidatorChanges(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + } + } + } + impl ::core::fmt::Display for TopDownFinalityFacetCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::ApplyFinalityChanges(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::CommitParentFinality(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::StoreValidatorChanges(element) => { + ::core::fmt::Display::fmt(element, f) + } + } + } + } + impl ::core::convert::From for TopDownFinalityFacetCalls { + fn from(value: ApplyFinalityChangesCall) -> Self { + Self::ApplyFinalityChanges(value) + } + } + impl ::core::convert::From for TopDownFinalityFacetCalls { + fn from(value: CommitParentFinalityCall) -> Self { + Self::CommitParentFinality(value) + } + } + impl ::core::convert::From for TopDownFinalityFacetCalls { + fn from(value: StoreValidatorChangesCall) -> Self { + Self::StoreValidatorChanges(value) + } + } + ///Container type for all return fields from the `applyFinalityChanges` function with signature `applyFinalityChanges()` and selector `0x0df14461` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ApplyFinalityChangesReturn(pub u64); + ///Container type for all return fields from the `commitParentFinality` function with signature `commitParentFinality((uint256,bytes32))` and selector `0x11196974` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CommitParentFinalityReturn { + pub has_committed_before: bool, + pub previous_finality: ParentFinality, + } + ///`ParentFinality(uint256,bytes32)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct ParentFinality { + pub height: ::ethers::core::types::U256, + pub block_hash: [u8; 32], + } + ///`StakingChange(uint8,bytes,address)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct StakingChange { + pub op: u8, + pub payload: ::ethers::core::types::Bytes, + pub validator: ::ethers::core::types::Address, + } + ///`StakingChangeRequest((uint8,bytes,address),uint64)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct StakingChangeRequest { + pub change: StakingChange, + pub configuration_number: u64, + } +} diff --git a/binding/src/xnet_messaging_facet.rs b/binding/src/xnet_messaging_facet.rs new file mode 100644 index 000000000..1819cb209 --- /dev/null +++ b/binding/src/xnet_messaging_facet.rs @@ -0,0 +1,483 @@ +pub use xnet_messaging_facet::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types, +)] +pub mod xnet_messaging_facet { + #[allow(deprecated)] + fn __abi() -> ::ethers::core::abi::Abi { + ::ethers::core::abi::ethabi::Contract { + constructor: ::core::option::Option::None, + functions: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("applyCrossMessages"), + ::std::vec![ + ::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("applyCrossMessages"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("crossMsgs"), + kind: ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + ::ethers::core::abi::ethabi::ParamType::Bytes, + ], + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Array( + ::std::boxed::Box::new( + ::ethers::core::abi::ethabi::ParamType::Address, + ), + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Tuple( + ::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + ::ethers::core::abi::ethabi::ParamType::Bytes, + ], + ), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize), + ::ethers::core::abi::ethabi::ParamType::Bytes, + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ], + ), + ::ethers::core::abi::ethabi::ParamType::Bool, + ], + ), + ), + ), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("struct CrossMsg[]"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + }, + ], + ), + ]), + events: ::std::collections::BTreeMap::new(), + errors: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("InvalidCrossMsgDstSubnet"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidCrossMsgDstSubnet", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidCrossMsgNonce"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidCrossMsgNonce", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotRegisteredSubnet"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "NotRegisteredSubnet", + ), + inputs: ::std::vec![], + }, + ], + ), + ( + ::std::borrow::ToOwned::to_owned("NotSystemActor"), + ::std::vec![ + ::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("NotSystemActor"), + inputs: ::std::vec![], + }, + ], + ), + ]), + receive: false, + fallback: false, + } + } + ///The parsed JSON ABI of the contract. + pub static XNETMESSAGINGFACET_ABI: ::ethers::contract::Lazy< + ::ethers::core::abi::Abi, + > = ::ethers::contract::Lazy::new(__abi); + pub struct XnetMessagingFacet(::ethers::contract::Contract); + impl ::core::clone::Clone for XnetMessagingFacet { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for XnetMessagingFacet { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for XnetMessagingFacet { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for XnetMessagingFacet { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(::core::stringify!(XnetMessagingFacet)) + .field(&self.address()) + .finish() + } + } + impl XnetMessagingFacet { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self( + ::ethers::contract::Contract::new( + address.into(), + XNETMESSAGINGFACET_ABI.clone(), + client, + ), + ) + } + ///Calls the contract's `applyCrossMessages` (0xc62eb4d5) function + pub fn apply_cross_messages( + &self, + cross_msgs: ::std::vec::Vec, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([198, 46, 180, 213], cross_msgs) + .expect("method not found (this should never happen)") + } + } + impl From<::ethers::contract::Contract> + for XnetMessagingFacet { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `InvalidCrossMsgDstSubnet` with signature `InvalidCrossMsgDstSubnet()` and selector `0xc5f563eb` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidCrossMsgDstSubnet", abi = "InvalidCrossMsgDstSubnet()")] + pub struct InvalidCrossMsgDstSubnet; + ///Custom Error type `InvalidCrossMsgNonce` with signature `InvalidCrossMsgNonce()` and selector `0xa57cadff` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "InvalidCrossMsgNonce", abi = "InvalidCrossMsgNonce()")] + pub struct InvalidCrossMsgNonce; + ///Custom Error type `NotRegisteredSubnet` with signature `NotRegisteredSubnet()` and selector `0xe991abd0` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotRegisteredSubnet", abi = "NotRegisteredSubnet()")] + pub struct NotRegisteredSubnet; + ///Custom Error type `NotSystemActor` with signature `NotSystemActor()` and selector `0xf0d97f3b` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[etherror(name = "NotSystemActor", abi = "NotSystemActor()")] + pub struct NotSystemActor; + ///Container type for all of the contract's custom errors + #[derive(Clone, ::ethers::contract::EthAbiType, Debug, PartialEq, Eq, Hash)] + pub enum XnetMessagingFacetErrors { + InvalidCrossMsgDstSubnet(InvalidCrossMsgDstSubnet), + InvalidCrossMsgNonce(InvalidCrossMsgNonce), + NotRegisteredSubnet(NotRegisteredSubnet), + NotSystemActor(NotSystemActor), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for XnetMessagingFacetErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode( + data, + ) { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidCrossMsgDstSubnet(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::InvalidCrossMsgNonce(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotRegisteredSubnet(decoded)); + } + if let Ok(decoded) = ::decode( + data, + ) { + return Ok(Self::NotSystemActor(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for XnetMessagingFacetErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::InvalidCrossMsgDstSubnet(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidCrossMsgNonce(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotRegisteredSubnet(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NotSystemActor(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for XnetMessagingFacetErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ => false, + } + } + } + impl ::core::fmt::Display for XnetMessagingFacetErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::InvalidCrossMsgDstSubnet(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidCrossMsgNonce(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotRegisteredSubnet(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::NotSystemActor(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for XnetMessagingFacetErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for XnetMessagingFacetErrors { + fn from(value: InvalidCrossMsgDstSubnet) -> Self { + Self::InvalidCrossMsgDstSubnet(value) + } + } + impl ::core::convert::From for XnetMessagingFacetErrors { + fn from(value: InvalidCrossMsgNonce) -> Self { + Self::InvalidCrossMsgNonce(value) + } + } + impl ::core::convert::From for XnetMessagingFacetErrors { + fn from(value: NotRegisteredSubnet) -> Self { + Self::NotRegisteredSubnet(value) + } + } + impl ::core::convert::From for XnetMessagingFacetErrors { + fn from(value: NotSystemActor) -> Self { + Self::NotSystemActor(value) + } + } + ///Container type for all input parameters for the `applyCrossMessages` function with signature `applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])` and selector `0xc62eb4d5` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + #[ethcall( + name = "applyCrossMessages", + abi = "applyCrossMessages(((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)[])" + )] + pub struct ApplyCrossMessagesCall { + pub cross_msgs: ::std::vec::Vec, + } + ///`CrossMsg((((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256),bool)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct CrossMsg { + pub message: StorableMsg, + pub wrapped: bool, + } + ///`FvmAddress(uint8,bytes)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct FvmAddress { + pub addr_type: u8, + pub payload: ::ethers::core::types::Bytes, + } + ///`Ipcaddress((uint64,address[]),(uint8,bytes))` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct Ipcaddress { + pub subnet_id: SubnetID, + pub raw_address: FvmAddress, + } + ///`StorableMsg(((uint64,address[]),(uint8,bytes)),((uint64,address[]),(uint8,bytes)),uint256,uint64,bytes4,bytes,uint256)` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct StorableMsg { + pub from: Ipcaddress, + pub to: Ipcaddress, + pub value: ::ethers::core::types::U256, + pub nonce: u64, + pub method: [u8; 4], + pub params: ::ethers::core::types::Bytes, + pub fee: ::ethers::core::types::U256, + } + ///`SubnetID(uint64,address[])` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + Default, + Debug, + PartialEq, + Eq, + Hash + )] + pub struct SubnetID { + pub root: u64, + pub route: ::std::vec::Vec<::ethers::core::types::Address>, + } +} diff --git a/scripts/deploy-gateway.template.ts b/scripts/deploy-gateway.template.ts index c15e23031..69cd37a5d 100644 --- a/scripts/deploy-gateway.template.ts +++ b/scripts/deploy-gateway.template.ts @@ -54,7 +54,23 @@ export async function deploy(libs: { [key in string]: string }) { StorableMsgHelper: libs['StorableMsgHelper'], } - const routerFacetLibs: Libraries = { + const checkpointingFacetLibs: Libraries = { + AccountHelper: libs['AccountHelper'], + SubnetIDHelper: libs['SubnetIDHelper'], + } + + const xnetMessagingFacetLibs: Libraries = { + AccountHelper: libs['AccountHelper'], + CrossMsgHelper: libs['CrossMsgHelper'], + SubnetIDHelper: libs['SubnetIDHelper'], + StorableMsgHelper: libs['StorableMsgHelper'], + } + + const topDownFinalityFacetLibs: Libraries = { + AccountHelper: libs['AccountHelper'], + } + + const bottomUpRouterFacetLibs: Libraries = { CrossMsgHelper: libs['CrossMsgHelper'], SubnetIDHelper: libs['SubnetIDHelper'], AccountHelper: libs['AccountHelper'], @@ -67,7 +83,19 @@ export async function deploy(libs: { [key in string]: string }) { { name: 'DiamondCutFacet', libs: {} }, { name: 'GatewayManagerFacet', libs: managerFacetLibs }, { name: 'GatewayMessengerFacet', libs: messengerFacetLibs }, - { name: 'GatewayRouterFacet', libs: routerFacetLibs }, + { + name: 'CheckpointingFacet', + libs: checkpointingFacetLibs, + }, + { + name: 'XnetMessagingFacet', + libs: xnetMessagingFacetLibs, + }, + { name: 'TopDownFinalityFacet', libs: topDownFinalityFacetLibs }, + { + name: 'BottomUpRouterFacet', + libs: bottomUpRouterFacetLibs, + }, ] for (const facet of facets) { diff --git a/scripts/python/build_selector_library.py b/scripts/python/build_selector_library.py new file mode 100644 index 000000000..04a22b2e6 --- /dev/null +++ b/scripts/python/build_selector_library.py @@ -0,0 +1,119 @@ +import argparse +import glob +import json +import os +import subprocess +import sys +from eth_abi import encode +from json.decoder import JSONDecodeError + +def writeToFile(selector_storage_content): + # Define the file path + file_path = 'test/helpers/SelectorLibrary.sol' + + # Write the content to the file + with open(file_path, 'w') as file: + file.write(selector_storage_content) + + +def generate_solidity_function(contract_selectors): + solidity_code = "// SPDX-License-Identifier: MIT OR Apache-2.0\npragma solidity ^0.8.19;\n" + solidity_code += "library SelectorLibrary {\n" + solidity_code += " function resolveSelectors(string memory facetName) public pure returns (bytes4[] memory facetSelectors) {\n" + + for contract_name, selectors in contract_selectors.items(): + solidity_code += f' if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("{contract_name}"))) {{\n' + solidity_code += f' return abi.decode(hex"{selectors}", (bytes4[]));\n' + solidity_code += " }\n" + + solidity_code += " revert(\"Selector not found\");\n" + solidity_code += " }\n" + solidity_code += "}\n" + return solidity_code + +def format_selector(selector_bytes): + hex_str = selector_bytes.hex() + if len(hex_str) % 2 != 0: + hex_str = '0' + hex_str # Add a leading zero if the length is odd + return hex_str + +def parse_selectors(encoded_selectors): + # Assuming the encoded selectors are in the format provided in your example + decoded = bytes.fromhex(encoded_selectors[2:]) # Skip the "0x" prefix + return [format_selector(decoded[i:i+4]) for i in range(0, len(decoded), 4)] # Return in chunks of 4 bytes + +def get_selectors(contract): + """This function gets the selectors of the functions of the target contract.""" + + res = subprocess.run( + ["forge", "inspect", contract, "methodIdentifiers"], capture_output=True) + res = res.stdout.decode() + try: + res = json.loads(res) + except JSONDecodeError as e: + print("failed to load JSON:", e) + print("forge output:", res) + print("contract:", contract) + sys.exit(1) + + selectors = [] + for signature in res: + selector = res[signature] + selectors.append(bytes.fromhex(selector)) + + enc = encode(["bytes4[]"], [selectors]) + return "" + enc.hex() + +def main(): + contract_selectors = {} + filepaths_to_target = [ + 'src/GatewayDiamond.sol', + 'src/SubnetActorDiamond.sol', + 'src/SubnetRegistryDiamond.sol', + 'src/diamond/DiamondCutFacet.sol', + 'src/diamond/DiamondLoupeFacet.sol', + 'src/gateway/GatewayGetterFacet.sol', + 'src/gateway/GatewayManagerFacet.sol', + 'src/gateway/GatewayMessengerFacet.sol', + 'src/gateway/router/CheckpointingFacet.sol', + 'src/gateway/router/BottomUpRouterFacet.sol', + 'src/gateway/router/TopDownFinalityFacet.sol', + 'src/gateway/router/XnetMessagingFacet.sol', + 'src/subnet/SubnetActorGetterFacet.sol', + 'src/subnet/SubnetActorManagerFacet.sol', + 'src/subnetregistry/RegisterSubnetFacet.sol', + 'src/subnetregistry/SubnetGetterFacet.sol', + 'test/helpers/ERC20PresetFixedSupply.sol', + 'test/helpers/NumberContractFacetEight.sol', + 'test/helpers/NumberContractFacetSeven.sol', + 'test/helpers/SelectorLibrary.sol', + 'test/helpers/TestUtils.sol', + 'test/mocks/SubnetActorManagerFacetMock.sol', + ] + + for filepath in filepaths_to_target: + + # Extract just the contract name (without path and .sol extension) + contract_name = os.path.splitext(os.path.basename(filepath))[0] + + #skip lib or interfaces + if contract_name.startswith("Lib") or contract_name.startswith("I") or contract_name.endswith("Helper"): + continue + + # Format full path + # Call get_selectors for each contract + try: + selectors = get_selectors(filepath + ':' + contract_name) + if selectors: + contract_selectors[contract_name] = selectors + except Exception as oops: + print(f"Error processing {filepath}: {oops}") + + + # Print the final JSON + solidity_library_code = generate_solidity_function(contract_selectors) + writeToFile(solidity_library_code) + +if __name__ == "__main__": + main() + diff --git a/scripts/python/get_selectors.py b/scripts/python/get_selectors.py deleted file mode 100644 index 57c31c5bf..000000000 --- a/scripts/python/get_selectors.py +++ /dev/null @@ -1,42 +0,0 @@ -import subprocess -import argparse -import json - -from eth_abi import encode - -def get_selectors(args): - """This function gets the selectors of the functions of the target contract. - We have to have selectors to be able to initialize a Diamond contract - and create its facets having the functions with corresponding selectors. - Later, this function may be replaced by a Foundry utility - https://github.com/foundry-rs/foundry/issues/5012. - """ - - contract = args.contract - - res = subprocess.run( - ["forge", "inspect", contract, "mi"], capture_output=True) - res = res.stdout.decode() - res = json.loads(res) - - selectors = [] - for signature in res: - selector = res[signature] - selectors.append(bytes.fromhex(selector)) - - enc = encode(["bytes4[]"], [selectors]) - print("0x" + enc.hex()) - - -def parse_args(): - parser = argparse.ArgumentParser() - parser.add_argument("contract", type=str) - return parser.parse_args() - - -def main(): - args = parse_args() - get_selectors(args) - - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/src/GatewayDiamond.sol b/src/GatewayDiamond.sol index b5a73762e..d2e39a55b 100644 --- a/src/GatewayDiamond.sol +++ b/src/GatewayDiamond.sol @@ -27,7 +27,6 @@ contract GatewayDiamond { struct ConstructorParams { SubnetID networkName; uint256 bottomUpCheckPeriod; - uint256 minCollateral; // deprecated (for now): no `msgFee` currenlty charged for cross-net messages uint256 msgFee; uint8 majorityPercentage; @@ -36,9 +35,6 @@ contract GatewayDiamond { } constructor(IDiamond.FacetCut[] memory _diamondCut, ConstructorParams memory params) { - if (params.minCollateral == 0) { - revert InvalidCollateral(); - } // The bottomUpCheckPeriod should be non-zero for now. if (params.bottomUpCheckPeriod == 0) { revert InvalidSubmissionPeriod(); @@ -61,7 +57,6 @@ contract GatewayDiamond { s.crossMsgRelayerRewards = FEATURE_CROSSMSG_RELAYER_REWARDS; s.networkName = params.networkName; - s.minStake = params.minCollateral; s.bottomUpCheckPeriod = params.bottomUpCheckPeriod; s.minCrossMsgFee = params.msgFee; s.majorityPercentage = params.majorityPercentage; diff --git a/src/constants/Constants.sol b/src/constants/Constants.sol index f24f308b8..62b68c02c 100644 --- a/src/constants/Constants.sol +++ b/src/constants/Constants.sol @@ -5,3 +5,6 @@ address constant BURNT_FUNDS_ACTOR = address(99); bytes32 constant EMPTY_HASH = bytes32(""); bytes constant EMPTY_BYTES = bytes(""); bytes4 constant METHOD_SEND = bytes4(0); + +// The length of the public key that is associated with a validator. +uint256 constant VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH = 65; diff --git a/src/enums/Status.sol b/src/enums/Status.sol deleted file mode 100644 index 4130463a3..000000000 --- a/src/enums/Status.sol +++ /dev/null @@ -1,13 +0,0 @@ -// SPDX-License-Identifier: MIT OR Apache-2.0 -pragma solidity 0.8.19; - -/// @title Subnet Status enum -/// @author LimeChain team -enum Status { - Unset, - Active, - Inactive, - Killed, - Terminating, - Instantiated -} diff --git a/src/errors/IPCErrors.sol b/src/errors/IPCErrors.sol index 7302f90e8..14619fb02 100644 --- a/src/errors/IPCErrors.sol +++ b/src/errors/IPCErrors.sol @@ -80,3 +80,7 @@ error MethodNotAllowed(string reason); error InvalidFederationPayload(); error DuplicatedGenesisValidator(); error NotEnoughGenesisValidators(); + +string constant ERR_PERMISSIONED_AND_BOOTSTRAPPED = "Method not allowed if permissioned is enabled and subnet bootstrapped"; +string constant ERR_VALIDATOR_JOINED = "Method not allowed if validator has already joined"; +string constant ERR_VALIDATOR_NOT_JOINED = "Method not allowed if validator has not joined"; diff --git a/src/gateway/GatewayGetterFacet.sol b/src/gateway/GatewayGetterFacet.sol index f46aff947..47d9acc02 100644 --- a/src/gateway/GatewayGetterFacet.sol +++ b/src/gateway/GatewayGetterFacet.sol @@ -34,11 +34,6 @@ contract GatewayGetterFacet { return s.totalSubnets; } - /// @notice Returns the minimum stake required for instantiating a subnet. - function minStake() external view returns (uint256) { - return s.minStake; - } - /// @notice Returns the maximum number of messages per bottom-up batch. function maxMsgsPerBottomUpBatch() external view returns (uint64) { return s.maxMsgsPerBottomUpBatch; diff --git a/src/gateway/GatewayManagerFacet.sol b/src/gateway/GatewayManagerFacet.sol index c784f4577..2f5a9f9dc 100644 --- a/src/gateway/GatewayManagerFacet.sol +++ b/src/gateway/GatewayManagerFacet.sol @@ -5,7 +5,6 @@ import {GatewayActorModifiers} from "../lib/LibGatewayActorStorage.sol"; import {SubnetActorGetterFacet} from "../subnet/SubnetActorGetterFacet.sol"; import {BURNT_FUNDS_ACTOR} from "../constants/Constants.sol"; import {CrossMsg} from "../structs/CrossNet.sol"; -import {Status} from "../enums/Status.sol"; import {FvmAddress} from "../structs/FvmAddress.sol"; import {SubnetID, Subnet, SupplySource} from "../structs/Subnet.sol"; import {Membership, SupplyKind} from "../structs/Subnet.sol"; @@ -50,7 +49,6 @@ contract GatewayManagerFacet is GatewayActorModifiers, ReentrancyGuard { subnet.id = subnetId; subnet.stake = collateral; - subnet.status = Status.Active; subnet.genesisEpoch = block.number; subnet.circSupply = genesisCircSupply; @@ -72,17 +70,11 @@ contract GatewayManagerFacet is GatewayActorModifiers, ReentrancyGuard { } subnet.stake += msg.value; - - if (subnet.status == Status.Inactive) { - if (subnet.stake >= s.minStake) { - subnet.status = Status.Active; - } - } } - /// @notice release amount for an existing subnet - /// @dev it can be used to release the stake or reward of the validator - /// @notice release collateral for an existing subnet + /// @notice release collateral for an existing subnet. + /// @dev it can be used to release the stake or reward of the validator. + /// @param amount The amount of stake to be released. function releaseStake(uint256 amount) external nonReentrant { if (amount == 0) { revert CannotReleaseZero(); @@ -99,12 +91,14 @@ contract GatewayManagerFacet is GatewayActorModifiers, ReentrancyGuard { subnet.stake -= amount; - if (subnet.stake < s.minStake) { - subnet.status = Status.Inactive; - } payable(subnet.id.getActor()).sendValue(amount); } + /// @notice Releases a reward to the relayer. + /// @dev This function sends the specified reward amount to the actor associated with the sender's subnet. + /// It checks for subnet registration and also ensures the reward amount is non-zero. + /// This function is protected against re-entrancy attack. + /// @param amount The amount of the reward to be released. function releaseRewardForRelayer(uint256 amount) external nonReentrant { if (amount == 0) { revert CannotReleaseZero(); @@ -118,7 +112,8 @@ contract GatewayManagerFacet is GatewayActorModifiers, ReentrancyGuard { payable(subnet.id.getActor()).sendValue(amount); } - /// @notice kill an existing subnet. It's balance must be empty + /// @notice kill an existing subnet. + /// @dev The subnet's balance must be empty. function kill() external { (bool registered, Subnet storage subnet) = LibGateway.getSubnet(msg.sender); @@ -139,10 +134,10 @@ contract GatewayManagerFacet is GatewayActorModifiers, ReentrancyGuard { payable(msg.sender).sendValue(stake); } - /// @notice fund() credits the received value to the specified address in the specified child subnet. + /// @notice credits the received value to the specified address in the specified child subnet. /// - /// There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero, - /// i.e. funding a subnet is free. + /// @dev There may be an associated fee that gets distributed to validators in the subnet. Currently this fee is zero, + /// i.e. funding a subnet is free. /// /// @param subnetId: the destination subnet for the funds. /// @param to: the address to which to credit funds in the destination subnet. @@ -173,6 +168,13 @@ contract GatewayManagerFacet is GatewayActorModifiers, ReentrancyGuard { LibGateway.commitTopDownMsg(crossMsg); } + /// @notice Sends funds to a specified subnet receiver using ERC20 tokens. + /// @dev This function locks the amount of ERC20 tokens into custody and then mints the supply in the specified subnet. + /// It checks if the subnet's supply strategy is ERC20 and if not, the operation is reverted. + /// It allows for free injection of funds into a subnet and is protected against reentrancy. + /// @param subnetId The ID of the subnet where the funds will be sent to. + /// @param to The funded address. + /// @param amount The amount of ERC20 tokens to be sent. function fundWithToken(SubnetID calldata subnetId, FvmAddress calldata to, uint256 amount) external nonReentrant { // Check that the supply strategy is ERC20. // There is no need to check whether the subnet exists. If it doesn't exist, the call to getter will revert. diff --git a/src/gateway/GatewayMessengerFacet.sol b/src/gateway/GatewayMessengerFacet.sol index 81c9d7e5f..d07411db0 100644 --- a/src/gateway/GatewayMessengerFacet.sol +++ b/src/gateway/GatewayMessengerFacet.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT OR Apache-2.0 pragma solidity 0.8.19; import {GatewayActorModifiers} from "../lib/LibGatewayActorStorage.sol"; @@ -27,7 +27,7 @@ contract GatewayMessengerFacet is GatewayActorModifiers { * * IMPORTANT: `msg.value` is expected to equal to the value sent in `crossMsg.value` plus the cross-messaging fee. * - * @param crossMsg - a cross-message to send + * @param crossMsg - a cross-message to send. */ function sendUserXnetMessage(CrossMsg calldata crossMsg) external payable { if (!s.generalPurposeCrossMsg) { @@ -80,12 +80,14 @@ contract GatewayMessengerFacet is GatewayActorModifiers { } /** - * @dev Commit the cross message to storage. It outputs a flag signaling - * if the committed messages was bottom-up and some funds need to be - * burnt. + * @notice Commit the cross message to storage. It outputs a flag signaling + * if the committed messages was bottom-up and some funds need to be + * burnt. * - * It also validates that destination subnet ID is not empty - * and not equal to the current network. + * @dev It also validates that destination subnet ID is not empty + * and not equal to the current network. + * @param crossMessage The cross-network message to commit. + * @return shouldBurn A Boolean that indicates if the input amount should be burned. */ function _commitCrossMessage(CrossMsg memory crossMessage) internal returns (bool shouldBurn) { SubnetID memory to = crossMessage.message.to.subnetId; diff --git a/src/gateway/GatewayRouterFacet.sol b/src/gateway/GatewayRouterFacet.sol deleted file mode 100644 index b64c29ad8..000000000 --- a/src/gateway/GatewayRouterFacet.sol +++ /dev/null @@ -1,403 +0,0 @@ -// SPDX-License-Identifier: MIT OR Apache-2.0 -pragma solidity 0.8.19; - -import {ISubnetActor} from "../interfaces/ISubnetActor.sol"; -import {GatewayActorModifiers} from "../lib/LibGatewayActorStorage.sol"; -import {METHOD_SEND} from "../constants/Constants.sol"; -import {CrossMsg, StorableMsg, ParentFinality, BottomUpCheckpoint, BottomUpMsgBatch} from "../structs/CrossNet.sol"; -import {QuorumObjKind} from "../structs/Quorum.sol"; -import {Status} from "../enums/Status.sol"; -import {IPCMsgType} from "../enums/IPCMsgType.sol"; -import {SubnetID, Subnet, Validator, ValidatorInfo, ValidatorSet} from "../structs/Subnet.sol"; -import {IPCMsgType} from "../enums/IPCMsgType.sol"; -import {Membership, SupplySource} from "../structs/Subnet.sol"; -import {BatchNotCreated, InvalidBatchEpoch, BatchAlreadyExists, NotEnoughSubnetCircSupply, InvalidCheckpointEpoch} from "../errors/IPCErrors.sol"; -import {InvalidBatchSource, NotEnoughBalance, MaxMsgsPerBatchExceeded, BatchWithNoMessages, InvalidCheckpointSource, InvalidCrossMsgNonce, InvalidCrossMsgDstSubnet, CheckpointAlreadyExists} from "../errors/IPCErrors.sol"; -import {NotRegisteredSubnet, SubnetNotActive, SubnetNotFound, InvalidSubnet, CheckpointNotCreated} from "../errors/IPCErrors.sol"; -import {StorableMsgHelper} from "../lib/StorableMsgHelper.sol"; -import {SubnetIDHelper} from "../lib/SubnetIDHelper.sol"; -import {CrossMsgHelper} from "../lib/CrossMsgHelper.sol"; -import {LibGateway} from "../lib/LibGateway.sol"; -import {LibQuorum} from "../lib/LibQuorum.sol"; -import {FilAddress} from "fevmate/utils/FilAddress.sol"; -import {StakingChangeRequest, ParentValidatorsTracker} from "../structs/Subnet.sol"; -import {LibValidatorTracking, LibValidatorSet} from "../lib/LibStaking.sol"; -import {Address} from "openzeppelin-contracts/utils/Address.sol"; -import {SubnetActorGetterFacet} from "../subnet/SubnetActorGetterFacet.sol"; -import {SupplySourceHelper} from "../lib/SupplySourceHelper.sol"; - -contract GatewayRouterFacet is GatewayActorModifiers { - using FilAddress for address; - using SubnetIDHelper for SubnetID; - using CrossMsgHelper for CrossMsg; - using StorableMsgHelper for StorableMsg; - using LibValidatorTracking for ParentValidatorsTracker; - using LibValidatorSet for ValidatorSet; - using SupplySourceHelper for SupplySource; - - /// @notice submit a verified checkpoint in the gateway to trigger side-effects. - /// @dev this method is called by the corresponding subnet actor. - /// Called from a subnet actor if the checkpoint is cryptographically valid. - function commitCheckpoint(BottomUpCheckpoint calldata checkpoint) external { - // checkpoint is used to implement access control - if (checkpoint.subnetID.getActor() != msg.sender) { - revert InvalidCheckpointSource(); - } - (bool subnetExists, Subnet storage subnet) = LibGateway.getSubnet(msg.sender); - if (!subnetExists) { - revert SubnetNotFound(); - } - if (!checkpoint.subnetID.equals(subnet.id)) { - revert InvalidSubnet(); - } - // only active subnets can commit checkpoints - if (subnet.status != Status.Active) { - revert SubnetNotActive(); - } - - if (s.checkpointRelayerRewards) { - // slither-disable-next-line unused-return - Address.functionCallWithValue({ - target: msg.sender, - data: abi.encodeCall( - ISubnetActor.distributeRewardToRelayers, - (checkpoint.blockHeight, 0, QuorumObjKind.Checkpoint) - ), - value: 0 - }); - } - } - - /// @notice submit a batch of cross-net messages for execution. - /// @dev this method is called by the corresponding subnet actor. - /// Called from a subnet actor if the batch is valid. - function execBottomUpMsgBatch(BottomUpMsgBatch calldata batch) external { - if (batch.subnetID.getActor() != msg.sender) { - revert InvalidBatchSource(); - } - - _checkMsgLength(batch); - - (bool subnetExists, Subnet storage subnet) = LibGateway.getSubnet(msg.sender); - if (!subnetExists) { - revert SubnetNotFound(); - } - // cross-net messages can't be executed in inactive subnets. - if (subnet.status != Status.Active) { - revert SubnetNotActive(); - } - - uint256 totalValue; - uint256 totalFee; - uint256 crossMsgLength = batch.msgs.length; - for (uint256 i; i < crossMsgLength; ) { - totalValue += batch.msgs[i].message.value; - totalFee += batch.msgs[i].message.fee; - unchecked { - ++i; - } - } - - uint256 totalAmount = totalFee + totalValue; - - if (subnet.circSupply < totalAmount) { - revert NotEnoughSubnetCircSupply(); - } - - subnet.circSupply -= totalAmount; - - // execute cross-messages - _applyMessages(subnet.id, batch.msgs); - - if (s.crossMsgRelayerRewards) { - // reward relayers in the subnet for committing the previous checkpoint - // slither-disable-next-line unused-return - Address.functionCallWithValue({ - target: msg.sender, - data: abi.encodeCall( - ISubnetActor.distributeRewardToRelayers, - (block.number, totalFee, QuorumObjKind.Checkpoint) - ), - value: totalFee - }); - } - } - - /// @notice commit the ipc parent finality into storage and returns the previous committed finality - /// This is useful to understand if the finalities are consistent or if there have been reorgs. - /// If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash. - /// @param finality - the parent finality - function commitParentFinality( - ParentFinality calldata finality - ) external systemActorOnly returns (bool hasCommittedBefore, ParentFinality memory previousFinality) { - previousFinality = LibGateway.commitParentFinality(finality); - hasCommittedBefore = previousFinality.height != 0; - } - - /// @notice Store the validator change requests from parent. - /// @param changeRequests - the validator changes - function storeValidatorChanges(StakingChangeRequest[] calldata changeRequests) external systemActorOnly { - s.validatorsTracker.batchStoreChange(changeRequests); - } - - /// @notice Apply all changes committed through the commitment of parent finality - function applyFinalityChanges() external systemActorOnly returns (uint64) { - // get the latest configuration number for the change set - uint64 configurationNumber = s.validatorsTracker.changes.nextConfigurationNumber - 1; - // return immediately if there are no changes to confirm by looking at next configNumber - if ( - // nextConfiguration == startConfiguration (i.e. no changes) - (configurationNumber + 1) == s.validatorsTracker.changes.startConfigurationNumber - ) { - // 0 flags that there are no changes - return 0; - } - // confirm the change - s.validatorsTracker.confirmChange(configurationNumber); - - // get the active validators - address[] memory validators = s.validatorsTracker.validators.listActiveValidators(); - uint256 vLength = validators.length; - Validator[] memory vs = new Validator[](vLength); - for (uint256 i; i < vLength; ) { - address addr = validators[i]; - ValidatorInfo storage info = s.validatorsTracker.validators.validators[addr]; - vs[i] = Validator({weight: info.confirmedCollateral, addr: addr, metadata: info.metadata}); - unchecked { - ++i; - } - } - - // update membership with the applied changes - LibGateway.updateMembership(Membership({configurationNumber: configurationNumber, validators: vs})); - return configurationNumber; - } - - /// @notice Applies top-down crossnet messages locally. This is invoked by IPC nodes when drawing messages from - /// their parent subnet for local execution. That's why the sender is restricted to the system sender, - /// because this method is implicitly invoked by the node during block production. - function applyCrossMessages(CrossMsg[] calldata crossMsgs) external systemActorOnly { - _applyMessages(s.networkName.getParentSubnet(), crossMsgs); - } - - /// @notice executes a cross message if its destination is the current network, otherwise adds it to the postbox to be propagated further - /// @param arrivingFrom - the immediate subnet from which this message is arriving - /// @param crossMsg - the cross message to be executed - function _applyMsg(SubnetID memory arrivingFrom, CrossMsg memory crossMsg) internal { - if (crossMsg.message.to.subnetId.isEmpty()) { - revert InvalidCrossMsgDstSubnet(); - } - - // If the crossnet destination is NOT the current network (network where the gateway is running), - // we add it to the postbox for further propagation. - if (!crossMsg.message.to.subnetId.equals(s.networkName)) { - bytes32 cid = crossMsg.toHash(); - s.postbox[cid] = crossMsg; - return; - } - - // Now, let's find out the directionality of this message and act accordingly. - // slither-disable-next-line uninitialized-local - SupplySource memory supplySource; - IPCMsgType applyType = crossMsg.message.applyType(s.networkName); - if (applyType == IPCMsgType.BottomUp) { - // Load the subnet this message is coming from. Ensure that it exists and that the nonce expectation is met. - (bool registered, Subnet storage subnet) = LibGateway.getSubnet(arrivingFrom); - if (!registered) { - revert NotRegisteredSubnet(); - } - if (subnet.appliedBottomUpNonce != crossMsg.message.nonce) { - revert InvalidCrossMsgNonce(); - } - subnet.appliedBottomUpNonce += 1; - - // The value carried in bottom-up messages needs to be treated according to the supply source - // configuration of the subnet. - supplySource = SubnetActorGetterFacet(subnet.id.getActor()).supplySource(); - } else if (applyType == IPCMsgType.TopDown) { - // Note: there is no need to load the subnet, as a top-down application means that _we_ are the subnet. - if (s.appliedTopDownNonce != crossMsg.message.nonce) { - revert InvalidCrossMsgNonce(); - } - s.appliedTopDownNonce += 1; - - // The value carried in top-down messages locally maps to the native coin, so we pass over the - // native supply source. - supplySource = SupplySourceHelper.native(); - } - - // slither-disable-next-line unused-return - crossMsg.execute(supplySource); - } - - /// @notice applies a cross-net messages coming from some other subnet. - /// The forwarder argument determines the previous subnet that submitted the checkpoint triggering the cross-net message execution. - /// @param arrivingFrom - the immediate subnet from which this message is arriving - /// @param crossMsgs - the cross-net messages to apply - function _applyMessages(SubnetID memory arrivingFrom, CrossMsg[] memory crossMsgs) internal { - uint256 crossMsgsLength = crossMsgs.length; - for (uint256 i; i < crossMsgsLength; ) { - _applyMsg(arrivingFrom, crossMsgs[i]); - unchecked { - ++i; - } - } - } - - /// @notice checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it - /// @dev If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints` - /// @param height - the height of the block in the checkpoint - /// @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight` - /// @param weight - the weight of the validator - /// @param signature - the signature of the checkpoint - function addCheckpointSignature( - uint256 height, - bytes32[] memory membershipProof, - uint256 weight, - bytes memory signature - ) external { - // check if the checkpoint was already pruned before getting checkpoint - // and triggering the signature - LibQuorum.isHeightAlreadyProcessed(s.checkpointQuorumMap, height); - - // slither-disable-next-line unused-return - (bool exists, ) = LibGateway.getBottomUpCheckpoint(height); - if (!exists) { - revert CheckpointNotCreated(); - } - LibQuorum.addQuorumSignature({ - self: s.checkpointQuorumMap, - height: height, - membershipProof: membershipProof, - weight: weight, - signature: signature - }); - } - - /// @notice creates a new bottom-up checkpoint - /// @param checkpoint - a bottom-up checkpoint - /// @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight - /// @param membershipWeight - the total weight of the membership - function createBottomUpCheckpoint( - BottomUpCheckpoint calldata checkpoint, - bytes32 membershipRootHash, - uint256 membershipWeight - ) external systemActorOnly { - if (checkpoint.blockHeight % s.bottomUpCheckPeriod != 0) { - revert InvalidCheckpointEpoch(); - } - if (LibGateway.bottomUpCheckpointExists(checkpoint.blockHeight)) { - revert CheckpointAlreadyExists(); - } - - LibQuorum.createQuorumInfo({ - self: s.checkpointQuorumMap, - objHeight: checkpoint.blockHeight, - objHash: keccak256(abi.encode(checkpoint)), - membershipRootHash: membershipRootHash, - membershipWeight: membershipWeight, - majorityPercentage: s.majorityPercentage - }); - LibGateway.storeBottomUpCheckpoint(checkpoint); - } - - /// @notice Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`) - /// @dev `retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing. - /// All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent. - /// @param newRetentionHeight - the height of the oldest checkpoint to keep - function pruneBottomUpCheckpoints(uint256 newRetentionHeight) external systemActorOnly { - // we need to clean manually the checkpoints because Solidity does not support passing - // a storage variable as an interface (so we can iterate and remove directly inside pruneQuorums) - for (uint256 h = s.checkpointQuorumMap.retentionHeight; h < newRetentionHeight; ) { - delete s.bottomUpCheckpoints[h]; - unchecked { - ++h; - } - } - - LibQuorum.pruneQuorums(s.checkpointQuorumMap, newRetentionHeight); - } - - /// @notice checks whether the provided batch signature for the block at height `height` is valid and accumulates that - /// @param height - the height of the block in the checkpoint - /// @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight` - /// @param weight - the weight of the validator - /// @param signature - the signature of the checkpoint - function addBottomUpMsgBatchSignature( - uint256 height, - bytes32[] memory membershipProof, - uint256 weight, - bytes memory signature - ) external { - LibQuorum.isHeightAlreadyProcessed(s.bottomUpMsgBatchQuorumMap, height); - - // slither-disable-next-line unused-return - (bool exists, ) = LibGateway.getBottomUpMsgBatch(height); - if (!exists) { - revert BatchNotCreated(); - } - LibQuorum.addQuorumSignature({ - self: s.bottomUpMsgBatchQuorumMap, - height: height, - membershipProof: membershipProof, - weight: weight, - signature: signature - }); - } - - /// @notice cuts a new message batch if the batch period is reached without - /// the maximum number of messages being reached. - /// @param batch - a bottom-up batch - /// @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight - /// @param membershipWeight - the total weight of the membership - function createBottomUpMsgBatch( - BottomUpMsgBatch calldata batch, - bytes32 membershipRootHash, - uint256 membershipWeight - ) external systemActorOnly { - _checkMsgLength(batch); - // We only externally trigger new batches if the maximum number - // of messages for the batch hasn't been reached. - // We also check that we are not trying to create a batch from - // the future - if (batch.blockHeight % s.bottomUpMsgBatchPeriod != 0 || block.number <= batch.blockHeight) { - revert InvalidBatchEpoch(); - } - - if (LibGateway.bottomUpBatchMsgsExists(batch.blockHeight)) { - revert BatchAlreadyExists(); - } - - LibQuorum.createQuorumInfo({ - self: s.bottomUpMsgBatchQuorumMap, - objHeight: batch.blockHeight, - objHash: keccak256(abi.encode(batch)), - membershipRootHash: membershipRootHash, - membershipWeight: membershipWeight, - majorityPercentage: s.majorityPercentage - }); - LibGateway.storeBottomUpMsgBatch(batch); - } - - /// @notice Set a new batch retention height and garbage collect all batches in range [`retentionHeight`, `newRetentionHeight`) - /// @param newRetentionHeight - the height of the oldest batch to keep - function pruneBottomUpMsgBatches(uint256 newRetentionHeight) external systemActorOnly { - for (uint256 h = s.bottomUpMsgBatchQuorumMap.retentionHeight; h < newRetentionHeight; ) { - delete s.bottomUpMsgBatches[h]; - unchecked { - ++h; - } - } - - LibQuorum.pruneQuorums(s.bottomUpMsgBatchQuorumMap, newRetentionHeight); - } - - function _checkMsgLength(BottomUpMsgBatch memory batch) internal view { - if (batch.msgs.length > s.maxMsgsPerBottomUpBatch) { - revert MaxMsgsPerBatchExceeded(); - } - if (batch.msgs.length == 0) { - revert BatchWithNoMessages(); - } - } -} diff --git a/src/gateway/router/BottomUpRouterFacet.sol b/src/gateway/router/BottomUpRouterFacet.sol new file mode 100644 index 000000000..6e47ecbdf --- /dev/null +++ b/src/gateway/router/BottomUpRouterFacet.sol @@ -0,0 +1,157 @@ +// SPDX-License-Identifier: MIT OR Apache-2.0 +pragma solidity 0.8.19; + +import {ISubnetActor} from "../../interfaces/ISubnetActor.sol"; +import {GatewayActorModifiers} from "../../lib/LibGatewayActorStorage.sol"; +import {BottomUpMsgBatch} from "../../structs/CrossNet.sol"; +import {LibGateway} from "../../lib/LibGateway.sol"; +import {BatchNotCreated, BatchAlreadyExists, InvalidBatchEpoch, NotEnoughSubnetCircSupply, SubnetNotActive, SubnetNotFound, InvalidBatchSource, MaxMsgsPerBatchExceeded, BatchWithNoMessages, InvalidCrossMsgDstSubnet, NotRegisteredSubnet, InvalidCrossMsgNonce} from "../../errors/IPCErrors.sol"; +import {Subnet} from "../../structs/Subnet.sol"; +import {LibQuorum} from "../../lib/LibQuorum.sol"; +import {QuorumObjKind} from "../../structs/Quorum.sol"; +import {Address} from "openzeppelin-contracts/utils/Address.sol"; +import {IPCMsgType} from "../../enums/IPCMsgType.sol"; + +import {CrossMsg, SubnetID} from "../../structs/CrossNet.sol"; +import {CrossMsgHelper} from "../../lib/CrossMsgHelper.sol"; + +import {SupplySourceHelper} from "../../lib/SupplySourceHelper.sol"; +import {SupplySource} from "../../structs/Subnet.sol"; +import {SubnetActorGetterFacet} from "../../subnet/SubnetActorGetterFacet.sol"; + +import {SubnetIDHelper} from "../../lib/SubnetIDHelper.sol"; +import {StorableMsgHelper} from "../../lib/StorableMsgHelper.sol"; +import {StorableMsg} from "../../structs/CrossNet.sol"; + +contract BottomUpRouterFacet is GatewayActorModifiers { + using SubnetIDHelper for SubnetID; + using CrossMsgHelper for CrossMsg; + using SupplySourceHelper for SupplySource; + using StorableMsgHelper for StorableMsg; + + /// @notice submit a batch of cross-net messages for execution. + /// @dev this method is called by the corresponding subnet actor. + /// Called from a subnet actor if the batch is valid. + /// @param batch The batch of bottom-up cross-network messages to be executed. + function execBottomUpMsgBatch(BottomUpMsgBatch calldata batch) external { + if (batch.subnetID.getActor() != msg.sender) { + revert InvalidBatchSource(); + } + + LibGateway.checkMsgLength(batch); + + (bool subnetExists, Subnet storage subnet) = LibGateway.getSubnet(msg.sender); + if (!subnetExists) { + revert SubnetNotFound(); + } + + uint256 totalValue; + uint256 totalFee; + uint256 crossMsgLength = batch.msgs.length; + for (uint256 i; i < crossMsgLength; ) { + totalValue += batch.msgs[i].message.value; + totalFee += batch.msgs[i].message.fee; + unchecked { + ++i; + } + } + + uint256 totalAmount = totalFee + totalValue; + + if (subnet.circSupply < totalAmount) { + revert NotEnoughSubnetCircSupply(); + } + + subnet.circSupply -= totalAmount; + + // execute cross-messages + LibGateway.applyMessages(subnet.id, batch.msgs); + + if (s.crossMsgRelayerRewards) { + // reward relayers in the subnet for committing the previous checkpoint + // slither-disable-next-line unused-return + Address.functionCallWithValue({ + target: msg.sender, + data: abi.encodeCall( + ISubnetActor.distributeRewardToRelayers, + (block.number, totalFee, QuorumObjKind.Checkpoint) + ), + value: totalFee + }); + } + } + + /// @notice cuts a new message batch if the batch period is reached without + /// the maximum number of messages being reached. + /// @param batch - a bottom-up batch + /// @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight + /// @param membershipWeight - the total weight of the membership + function createBottomUpMsgBatch( + BottomUpMsgBatch calldata batch, + bytes32 membershipRootHash, + uint256 membershipWeight + ) external systemActorOnly { + LibGateway.checkMsgLength(batch); + // We only externally trigger new batches if the maximum number + // of messages for the batch hasn't been reached. + // We also check that we are not trying to create a batch from + // the future + if (batch.blockHeight % s.bottomUpMsgBatchPeriod != 0 || block.number <= batch.blockHeight) { + revert InvalidBatchEpoch(); + } + + if (LibGateway.bottomUpBatchMsgsExists(batch.blockHeight)) { + revert BatchAlreadyExists(); + } + + LibQuorum.createQuorumInfo({ + self: s.bottomUpMsgBatchQuorumMap, + objHeight: batch.blockHeight, + objHash: keccak256(abi.encode(batch)), + membershipRootHash: membershipRootHash, + membershipWeight: membershipWeight, + majorityPercentage: s.majorityPercentage + }); + LibGateway.storeBottomUpMsgBatch(batch); + } + + /// @notice Set a new batch retention height and garbage collect all batches in range [`retentionHeight`, `newRetentionHeight`) + /// @param newRetentionHeight - the height of the oldest batch to keep + function pruneBottomUpMsgBatches(uint256 newRetentionHeight) external systemActorOnly { + for (uint256 h = s.bottomUpMsgBatchQuorumMap.retentionHeight; h < newRetentionHeight; ) { + delete s.bottomUpMsgBatches[h]; + unchecked { + ++h; + } + } + + LibQuorum.pruneQuorums(s.bottomUpMsgBatchQuorumMap, newRetentionHeight); + } + + /// @notice checks whether the provided batch signature for the block at height `height` is valid and accumulates that + /// @param height - the height of the block in the checkpoint + /// @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight` + /// @param weight - the weight of the validator + /// @param signature - the signature of the checkpoint + function addBottomUpMsgBatchSignature( + uint256 height, + bytes32[] memory membershipProof, + uint256 weight, + bytes memory signature + ) external { + LibQuorum.isHeightAlreadyProcessed(s.bottomUpMsgBatchQuorumMap, height); + + // slither-disable-next-line unused-return + (bool exists, ) = LibGateway.getBottomUpMsgBatch(height); + if (!exists) { + revert BatchNotCreated(); + } + LibQuorum.addQuorumSignature({ + self: s.bottomUpMsgBatchQuorumMap, + height: height, + membershipProof: membershipProof, + weight: weight, + signature: signature + }); + } +} diff --git a/src/gateway/router/CheckpointingFacet.sol b/src/gateway/router/CheckpointingFacet.sol new file mode 100644 index 000000000..15ef47979 --- /dev/null +++ b/src/gateway/router/CheckpointingFacet.sol @@ -0,0 +1,126 @@ +// SPDX-License-Identifier: MIT OR Apache-2.0 +pragma solidity 0.8.19; + +import {GatewayActorModifiers} from "../../lib/LibGatewayActorStorage.sol"; +import {BottomUpCheckpoint} from "../../structs/CrossNet.sol"; +import {LibGateway} from "../../lib/LibGateway.sol"; +import {LibQuorum} from "../../lib/LibQuorum.sol"; +import {Subnet} from "../../structs/Subnet.sol"; +import {QuorumObjKind} from "../../structs/Quorum.sol"; +import {Address} from "openzeppelin-contracts/utils/Address.sol"; +import {ISubnetActor} from "../../interfaces/ISubnetActor.sol"; + +import {InvalidBatchSource, NotEnoughBalance, MaxMsgsPerBatchExceeded, BatchWithNoMessages, InvalidCheckpointSource, InvalidCrossMsgNonce, InvalidCrossMsgDstSubnet, CheckpointAlreadyExists} from "../../errors/IPCErrors.sol"; +import {NotRegisteredSubnet, SubnetNotActive, SubnetNotFound, InvalidSubnet, CheckpointNotCreated} from "../../errors/IPCErrors.sol"; +import {BatchNotCreated, InvalidBatchEpoch, BatchAlreadyExists, NotEnoughSubnetCircSupply, InvalidCheckpointEpoch} from "../../errors/IPCErrors.sol"; + +import {SubnetID} from "../../structs/CrossNet.sol"; +import {SubnetIDHelper} from "../../lib/SubnetIDHelper.sol"; + +contract CheckpointingFacet is GatewayActorModifiers { + using SubnetIDHelper for SubnetID; + + /// @notice submit a verified checkpoint in the gateway to trigger side-effects. + /// @dev this method is called by the corresponding subnet actor. + /// Called from a subnet actor if the checkpoint is cryptographically valid. + /// @param checkpoint The bottom-up checkpoint to be committed. + function commitCheckpoint(BottomUpCheckpoint calldata checkpoint) external { + // checkpoint is used to implement access control + if (checkpoint.subnetID.getActor() != msg.sender) { + revert InvalidCheckpointSource(); + } + (bool subnetExists, Subnet storage subnet) = LibGateway.getSubnet(msg.sender); + if (!subnetExists) { + revert SubnetNotFound(); + } + if (!checkpoint.subnetID.equals(subnet.id)) { + revert InvalidSubnet(); + } + + if (s.checkpointRelayerRewards) { + // slither-disable-next-line unused-return + Address.functionCallWithValue({ + target: msg.sender, + data: abi.encodeCall( + ISubnetActor.distributeRewardToRelayers, + (checkpoint.blockHeight, 0, QuorumObjKind.Checkpoint) + ), + value: 0 + }); + } + } + + /// @notice creates a new bottom-up checkpoint + /// @param checkpoint - a bottom-up checkpoint + /// @param membershipRootHash - a root hash of the Merkle tree built from the validator public keys and their weight + /// @param membershipWeight - the total weight of the membership + function createBottomUpCheckpoint( + BottomUpCheckpoint calldata checkpoint, + bytes32 membershipRootHash, + uint256 membershipWeight + ) external systemActorOnly { + if (checkpoint.blockHeight % s.bottomUpCheckPeriod != 0) { + revert InvalidCheckpointEpoch(); + } + if (LibGateway.bottomUpCheckpointExists(checkpoint.blockHeight)) { + revert CheckpointAlreadyExists(); + } + + LibQuorum.createQuorumInfo({ + self: s.checkpointQuorumMap, + objHeight: checkpoint.blockHeight, + objHash: keccak256(abi.encode(checkpoint)), + membershipRootHash: membershipRootHash, + membershipWeight: membershipWeight, + majorityPercentage: s.majorityPercentage + }); + LibGateway.storeBottomUpCheckpoint(checkpoint); + } + + /// @notice Set a new checkpoint retention height and garbage collect all checkpoints in range [`retentionHeight`, `newRetentionHeight`) + /// @dev `retentionHeight` is the height of the first incomplete checkpointswe must keep to implement checkpointing. + /// All checkpoints with a height less than `retentionHeight` are removed from the history, assuming they are committed to the parent. + /// @param newRetentionHeight - the height of the oldest checkpoint to keep + function pruneBottomUpCheckpoints(uint256 newRetentionHeight) external systemActorOnly { + // we need to clean manually the checkpoints because Solidity does not support passing + // a storage variable as an interface (so we can iterate and remove directly inside pruneQuorums) + for (uint256 h = s.checkpointQuorumMap.retentionHeight; h < newRetentionHeight; ) { + delete s.bottomUpCheckpoints[h]; + unchecked { + ++h; + } + } + + LibQuorum.pruneQuorums(s.checkpointQuorumMap, newRetentionHeight); + } + + /// @notice checks whether the provided checkpoint signature for the block at height `height` is valid and accumulates that it + /// @dev If adding the signature leads to reaching the threshold, then the checkpoint is removed from `incompleteCheckpoints` + /// @param height - the height of the block in the checkpoint + /// @param membershipProof - a Merkle proof that the validator was in the membership at height `height` with weight `weight` + /// @param weight - the weight of the validator + /// @param signature - the signature of the checkpoint + function addCheckpointSignature( + uint256 height, + bytes32[] memory membershipProof, + uint256 weight, + bytes memory signature + ) external { + // check if the checkpoint was already pruned before getting checkpoint + // and triggering the signature + LibQuorum.isHeightAlreadyProcessed(s.checkpointQuorumMap, height); + + // slither-disable-next-line unused-return + (bool exists, ) = LibGateway.getBottomUpCheckpoint(height); + if (!exists) { + revert CheckpointNotCreated(); + } + LibQuorum.addQuorumSignature({ + self: s.checkpointQuorumMap, + height: height, + membershipProof: membershipProof, + weight: weight, + signature: signature + }); + } +} diff --git a/src/gateway/router/TopDownFinalityFacet.sol b/src/gateway/router/TopDownFinalityFacet.sol new file mode 100644 index 000000000..32404ddcb --- /dev/null +++ b/src/gateway/router/TopDownFinalityFacet.sol @@ -0,0 +1,71 @@ +// SPDX-License-Identifier: MIT OR Apache-2.0 +pragma solidity 0.8.19; + +import {GatewayActorModifiers} from "../../lib/LibGatewayActorStorage.sol"; +import {ParentFinality} from "../../structs/CrossNet.sol"; +import {Validator, ValidatorInfo, StakingChangeRequest, Membership} from "../../structs/Subnet.sol"; +import {LibGateway} from "../../lib/LibGateway.sol"; + +import {FilAddress} from "fevmate/utils/FilAddress.sol"; + +import {ParentValidatorsTracker, ValidatorSet} from "../../structs/Subnet.sol"; +import {LibValidatorTracking, LibValidatorSet} from "../../lib/LibStaking.sol"; + +contract TopDownFinalityFacet is GatewayActorModifiers { + using FilAddress for address; + using LibValidatorTracking for ParentValidatorsTracker; + using LibValidatorSet for ValidatorSet; + + /// @notice commit the ipc parent finality into storage and returns the previous committed finality + /// This is useful to understand if the finalities are consistent or if there have been reorgs. + /// If there are no previous committed fainality, it will be default to zero values, i.e. zero height and block hash. + /// @param finality - the parent finality + /// @return hasCommittedBefore A flag that indicates if a finality record has been committed before. + /// @return previousFinality The previous finality information. + function commitParentFinality( + ParentFinality calldata finality + ) external systemActorOnly returns (bool hasCommittedBefore, ParentFinality memory previousFinality) { + previousFinality = LibGateway.commitParentFinality(finality); + hasCommittedBefore = previousFinality.height != 0; + } + + /// @notice Store the validator change requests from parent. + /// @param changeRequests - the validator changes + function storeValidatorChanges(StakingChangeRequest[] calldata changeRequests) external systemActorOnly { + s.validatorsTracker.batchStoreChange(changeRequests); + } + + /// @notice Apply all changes committed through the commitment of parent finality. + /// @return configurationNumber The configuration number of the changes set that has been confirmed. + function applyFinalityChanges() external systemActorOnly returns (uint64) { + // get the latest configuration number for the change set + uint64 configurationNumber = s.validatorsTracker.changes.nextConfigurationNumber - 1; + // return immediately if there are no changes to confirm by looking at next configNumber + if ( + // nextConfiguration == startConfiguration (i.e. no changes) + (configurationNumber + 1) == s.validatorsTracker.changes.startConfigurationNumber + ) { + // 0 flags that there are no changes + return 0; + } + // confirm the change + s.validatorsTracker.confirmChange(configurationNumber); + + // get the active validators + address[] memory validators = s.validatorsTracker.validators.listActiveValidators(); + uint256 vLength = validators.length; + Validator[] memory vs = new Validator[](vLength); + for (uint256 i; i < vLength; ) { + address addr = validators[i]; + ValidatorInfo storage info = s.validatorsTracker.validators.validators[addr]; + vs[i] = Validator({weight: info.confirmedCollateral, addr: addr, metadata: info.metadata}); + unchecked { + ++i; + } + } + + // update membership with the applied changes + LibGateway.updateMembership(Membership({configurationNumber: configurationNumber, validators: vs})); + return configurationNumber; + } +} diff --git a/src/gateway/router/XnetMessagingFacet.sol b/src/gateway/router/XnetMessagingFacet.sol new file mode 100644 index 000000000..9a50c422e --- /dev/null +++ b/src/gateway/router/XnetMessagingFacet.sol @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: MIT OR Apache-2.0 +pragma solidity 0.8.19; + +import {GatewayActorModifiers} from "../../lib/LibGatewayActorStorage.sol"; +import {CrossMsg, SubnetID, StorableMsg} from "../../structs/CrossNet.sol"; +import {LibGateway} from "../../lib/LibGateway.sol"; +import {IPCMsgType} from "../../enums/IPCMsgType.sol"; +import {SubnetActorGetterFacet} from "../../subnet/SubnetActorGetterFacet.sol"; +import {Subnet} from "../../structs/Subnet.sol"; + +import {FilAddress} from "fevmate/utils/FilAddress.sol"; +import {SubnetIDHelper} from "../../lib/SubnetIDHelper.sol"; +import {CrossMsgHelper} from "../../lib/CrossMsgHelper.sol"; +import {SupplySourceHelper} from "../../lib/SupplySourceHelper.sol"; +import {SupplySource} from "../../structs/Subnet.sol"; + +import {InvalidCrossMsgNonce, InvalidCrossMsgNonce, NotRegisteredSubnet, InvalidCrossMsgDstSubnet} from "../../errors/IPCErrors.sol"; + +import {StorableMsgHelper} from "../../lib/StorableMsgHelper.sol"; + +contract XnetMessagingFacet is GatewayActorModifiers { + using SubnetIDHelper for SubnetID; + using CrossMsgHelper for CrossMsg; + using SupplySourceHelper for SupplySource; + using StorableMsgHelper for StorableMsg; + + /// @notice Applies top-down cross-net messages locally. This is invoked by IPC nodes when drawing messages from + /// their parent subnet for local execution. That's why the sender is restricted to the system sender, + /// because this method is implicitly invoked by the node during block production. + /// @dev It requires the caller to be the system actor. + /// @param crossMsgs The array of cross-network messages to be applied. + function applyCrossMessages(CrossMsg[] calldata crossMsgs) external systemActorOnly { + LibGateway.applyMessages(s.networkName.getParentSubnet(), crossMsgs); + } +} diff --git a/src/lib/LibGateway.sol b/src/lib/LibGateway.sol index 3181b98ce..ed367f094 100644 --- a/src/lib/LibGateway.sol +++ b/src/lib/LibGateway.sol @@ -1,17 +1,23 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 pragma solidity 0.8.19; +import {IPCMsgType} from "../enums/IPCMsgType.sol"; import {GatewayActorStorage, LibGatewayActorStorage} from "../lib/LibGatewayActorStorage.sol"; -import {SubnetID, Subnet} from "../structs/Subnet.sol"; -import {CrossMsg, BottomUpMsgBatch, BottomUpMsgBatch, BottomUpCheckpoint, ParentFinality} from "../structs/CrossNet.sol"; +import {SubnetID, Subnet, SupplySource} from "../structs/Subnet.sol"; +import {SubnetActorGetterFacet} from "../subnet/SubnetActorGetterFacet.sol"; +import {CrossMsg, StorableMsg, BottomUpMsgBatch, BottomUpMsgBatch, BottomUpCheckpoint, ParentFinality} from "../structs/CrossNet.sol"; import {Membership} from "../structs/Subnet.sol"; -import {OldConfigurationNumber, NotRegisteredSubnet, InvalidActorAddress, ParentFinalityAlreadyCommitted} from "../errors/IPCErrors.sol"; +import {MaxMsgsPerBatchExceeded, BatchWithNoMessages, InvalidCrossMsgNonce, InvalidCrossMsgDstSubnet, OldConfigurationNumber, NotRegisteredSubnet, InvalidActorAddress, ParentFinalityAlreadyCommitted} from "../errors/IPCErrors.sol"; import {CrossMsgHelper} from "../lib/CrossMsgHelper.sol"; import {SubnetIDHelper} from "../lib/SubnetIDHelper.sol"; +import {SupplySourceHelper} from "../lib/SupplySourceHelper.sol"; +import {StorableMsgHelper} from "../lib/StorableMsgHelper.sol"; library LibGateway { using SubnetIDHelper for SubnetID; using CrossMsgHelper for CrossMsg; + using SupplySourceHelper for SupplySource; + using StorableMsgHelper for StorableMsg; event MembershipUpdated(Membership); /// @dev subnet refers to the next "down" subnet that the `CrossMsg.message.to` should be forwarded to. @@ -317,4 +323,83 @@ library LibGateway { function getNextEpoch(uint256 blockNumber, uint256 checkPeriod) internal pure returns (uint256) { return ((uint64(blockNumber) / checkPeriod) + 1) * checkPeriod; } + + /// @notice applies a cross-net messages coming from some other subnet. + /// The forwarder argument determines the previous subnet that submitted the checkpoint triggering the cross-net message execution. + /// @param arrivingFrom - the immediate subnet from which this message is arriving + /// @param crossMsgs - the cross-net messages to apply + function applyMessages(SubnetID memory arrivingFrom, CrossMsg[] memory crossMsgs) internal { + uint256 crossMsgsLength = crossMsgs.length; + for (uint256 i; i < crossMsgsLength; ) { + applyMsg(arrivingFrom, crossMsgs[i]); + unchecked { + ++i; + } + } + } + + /// @notice executes a cross message if its destination is the current network, otherwise adds it to the postbox to be propagated further + /// @param arrivingFrom - the immediate subnet from which this message is arriving + /// @param crossMsg - the cross message to be executed + function applyMsg(SubnetID memory arrivingFrom, CrossMsg memory crossMsg) internal { + GatewayActorStorage storage s = LibGatewayActorStorage.appStorage(); + + if (crossMsg.message.to.subnetId.isEmpty()) { + revert InvalidCrossMsgDstSubnet(); + } + + // If the crossnet destination is NOT the current network (network where the gateway is running), + // we add it to the postbox for further propagation. + if (!crossMsg.message.to.subnetId.equals(s.networkName)) { + bytes32 cid = crossMsg.toHash(); + s.postbox[cid] = crossMsg; + return; + } + + // Now, let's find out the directionality of this message and act accordingly. + // slither-disable-next-line uninitialized-local + SupplySource memory supplySource; + IPCMsgType applyType = crossMsg.message.applyType(s.networkName); + if (applyType == IPCMsgType.BottomUp) { + // Load the subnet this message is coming from. Ensure that it exists and that the nonce expectation is met. + (bool registered, Subnet storage subnet) = LibGateway.getSubnet(arrivingFrom); + if (!registered) { + revert NotRegisteredSubnet(); + } + if (subnet.appliedBottomUpNonce != crossMsg.message.nonce) { + revert InvalidCrossMsgNonce(); + } + subnet.appliedBottomUpNonce += 1; + + // The value carried in bottom-up messages needs to be treated according to the supply source + // configuration of the subnet. + supplySource = SubnetActorGetterFacet(subnet.id.getActor()).supplySource(); + } else if (applyType == IPCMsgType.TopDown) { + // Note: there is no need to load the subnet, as a top-down application means that _we_ are the subnet. + if (s.appliedTopDownNonce != crossMsg.message.nonce) { + revert InvalidCrossMsgNonce(); + } + s.appliedTopDownNonce += 1; + + // The value carried in top-down messages locally maps to the native coin, so we pass over the + // native supply source. + supplySource = SupplySourceHelper.native(); + } + + // slither-disable-next-line unused-return + crossMsg.execute(supplySource); + } + + /// @notice Checks the length of a message batch, ensuring it is in (0, maxMsgsPerBottomUpBatch). + /// @param batch The batch of messages to check. + function checkMsgLength(BottomUpMsgBatch memory batch) internal view { + GatewayActorStorage storage s = LibGatewayActorStorage.appStorage(); + + if (batch.msgs.length > s.maxMsgsPerBottomUpBatch) { + revert MaxMsgsPerBatchExceeded(); + } + if (batch.msgs.length == 0) { + revert BatchWithNoMessages(); + } + } } diff --git a/src/lib/LibGatewayActorStorage.sol b/src/lib/LibGatewayActorStorage.sol index b765312bc..d428f73ad 100644 --- a/src/lib/LibGatewayActorStorage.sol +++ b/src/lib/LibGatewayActorStorage.sol @@ -39,8 +39,6 @@ struct GatewayActorStorage { bytes32[] subnetKeys; /// @notice path to the current network SubnetID networkName; - /// @notice Minimum stake required to create a new subnet - uint256 minStake; /// @notice minimum fee amount charged per cross message uint256 minCrossMsgFee; /// @notice majority percentage value (must be greater than or equal to 51) diff --git a/src/lib/LibStaking.sol b/src/lib/LibStaking.sol index b5cf788c7..1755458fc 100644 --- a/src/lib/LibStaking.sol +++ b/src/lib/LibStaking.sol @@ -403,7 +403,16 @@ library LibStaking { return s.validatorSet.waitingValidators.contains(validator); } - /// @notice Checks if the validator has staked before + /// @notice Checks if the provided address is a validator (active or waiting) based on its total collateral. + /// @param addr The address to check for validator status. + /// @return A boolean indicating whether the address is a validator. + function isValidator(address addr) internal view returns (bool) { + return hasStaked(addr); + } + + /// @notice Checks if the validator has staked before. + /// @param validator The address to check for staking status. + /// @return A boolean indicating whether the validator has staked. function hasStaked(address validator) internal view returns (bool) { SubnetActorStorage storage s = LibSubnetActorStorage.appStorage(); diff --git a/src/lib/LibSubnetActor.sol b/src/lib/LibSubnetActor.sol new file mode 100644 index 000000000..af13c4a76 --- /dev/null +++ b/src/lib/LibSubnetActor.sol @@ -0,0 +1,172 @@ +// SPDX-License-Identifier: MIT OR Apache-2.0 +pragma solidity 0.8.19; + +import {VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH} from "../constants/Constants.sol"; +import {ERR_PERMISSIONED_AND_BOOTSTRAPPED} from "../errors/IPCErrors.sol"; +import {NotEnoughGenesisValidators, DuplicatedGenesisValidator, NotOwnerOfPublicKey, MethodNotAllowed} from "../errors/IPCErrors.sol"; +import {IGateway} from "../interfaces/IGateway.sol"; +import {Validator, ValidatorSet, PermissionMode} from "../structs/Subnet.sol"; +import {SubnetActorModifiers} from "../lib/LibSubnetActorStorage.sol"; +import {LibValidatorSet, LibStaking} from "../lib/LibStaking.sol"; +import {EnumerableSet} from "openzeppelin-contracts/utils/structs/EnumerableSet.sol"; +import {LibSubnetActorStorage, SubnetActorStorage} from "./LibSubnetActorStorage.sol"; + +library LibSubnetActor { + using EnumerableSet for EnumerableSet.AddressSet; + + event SubnetBootstrapped(Validator[]); + + /// @notice Ensures that the subnet is operating under Collateral-based permission mode. + /// @dev Reverts if the subnet is not in Collateral mode. + function enforceCollateralValidation() internal view { + SubnetActorStorage storage s = LibSubnetActorStorage.appStorage(); + + if (s.validatorSet.permissionMode != PermissionMode.Collateral) { + revert MethodNotAllowed(ERR_PERMISSIONED_AND_BOOTSTRAPPED); + } + return; + } + + /// @notice Ensures that the subnet is operating under Federated permission mode. + /// @dev Reverts if the subnet is not in Federated mode. + function enforceFederatedValidation() internal view { + SubnetActorStorage storage s = LibSubnetActorStorage.appStorage(); + + if (s.validatorSet.permissionMode != PermissionMode.Federated) { + revert MethodNotAllowed(ERR_PERMISSIONED_AND_BOOTSTRAPPED); + } + return; + } + + /// @dev This function is used to bootstrap the subnet, + /// if its total collateral is greater than minimum activation collateral. + function bootstrapSubnetIfNeeded() internal { + SubnetActorStorage storage s = LibSubnetActorStorage.appStorage(); + + uint256 totalCollateral = LibStaking.getTotalConfirmedCollateral(); + + if (totalCollateral >= s.minActivationCollateral) { + if (LibStaking.totalActiveValidators() >= s.minValidators) { + s.bootstrapped = true; + emit SubnetBootstrapped(s.genesisValidators); + + // register adding the genesis circulating supply (if it exists) + IGateway(s.ipcGatewayAddr).register{value: totalCollateral + s.genesisCircSupply}(s.genesisCircSupply); + } + } + } + + /// @notice Retrieves the addresses of relayers who were rewarded for a specific checkpoint at a given height. + /// @param height The height of the checkpoint for which to find rewarded relayers. + /// @return relayers An array of addresses of the relayers who were rewarded at the specified checkpoint. + function checkpointRewardedAddrs(uint256 height) internal view returns (address[] memory relayers) { + SubnetActorStorage storage s = LibSubnetActorStorage.appStorage(); + + uint256 previousHeight = height - s.bottomUpCheckPeriod; + relayers = s.relayerRewards.checkpointRewarded[previousHeight].values(); + } + + /// @notice Converts a 65-byte public key to its corresponding address. + /// @param publicKey The 65-byte public key to be converted. + /// @return The address derived from the given public key. + function publicKeyToAddress(bytes calldata publicKey) internal pure returns (address) { + assert(publicKey.length == VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH); + bytes32 hashed = keccak256(publicKey[1:]); + return address(uint160(uint256(hashed))); + } + + /// @notice method that allows the contract owner to set the validators' federated power before. + /// @notice subnet has already been bootstrapped. + /// @param validators The list of validators' addresses. + /// @param publicKeys The list of validators' public keys. + /// @param powers The list of power values of the validators. + function preBootstrapSetFederatedPower( + address[] calldata validators, + bytes[] calldata publicKeys, + uint256[] calldata powers + ) internal { + SubnetActorStorage storage s = LibSubnetActorStorage.appStorage(); + + uint256 length = validators.length; + for (uint256 i; i < length; ) { + // check addresses + address convertedAddress = publicKeyToAddress(publicKeys[i]); + if (convertedAddress != validators[i]) { + revert NotOwnerOfPublicKey(); + } + + // performing deduplication + // validator should have no power when first added + if (LibStaking.getPower(validators[i]) > 0) { + revert DuplicatedGenesisValidator(); + } + + LibStaking.setMetadataWithConfirm(validators[i], publicKeys[i]); + LibStaking.setFederatedPowerWithConfirm(validators[i], powers[i]); + + s.genesisValidators.push(Validator({addr: validators[i], weight: powers[i], metadata: publicKeys[i]})); + + unchecked { + ++i; + } + } + + // check duplication first then check length + if (length <= s.minValidators) { + revert NotEnoughGenesisValidators(); + } + + s.bootstrapped = true; + emit SubnetBootstrapped(s.genesisValidators); + + // register adding the genesis circulating supply (if it exists) + IGateway(s.ipcGatewayAddr).register{value: s.genesisCircSupply}(s.genesisCircSupply); + } + + /// @notice method that allows the contract owner to set the validators' federated power after + /// @dev subnet has already been bootstrapped. + /// @param validators The list of validators' addresses. + /// @param publicKeys The list of validators' public keys. + /// @param powers The list of power values of the validators. + function postBootstrapSetFederatedPower( + address[] calldata validators, + bytes[] calldata publicKeys, + uint256[] calldata powers + ) internal { + uint256 length = validators.length; + for (uint256 i; i < length; ) { + // check addresses + address convertedAddress = publicKeyToAddress(publicKeys[i]); + if (convertedAddress != validators[i]) { + revert NotOwnerOfPublicKey(); + } + + // no need to do deduplication as set directly set the power, there wont be any addition of + // federated power. + LibStaking.setFederatedPower({validator: validators[i], metadata: publicKeys[i], amount: powers[i]}); + + unchecked { + ++i; + } + } + } + + /// @notice Removes an address from the initial balance keys. + /// @param addr The address to be removed from the genesis balance keys. + function rmAddressFromBalanceKey(address addr) internal { + SubnetActorStorage storage s = LibSubnetActorStorage.appStorage(); + + uint256 length = s.genesisBalanceKeys.length; + for (uint256 i; i < length; ) { + if (s.genesisBalanceKeys[i] == addr) { + s.genesisBalanceKeys[i] = s.genesisBalanceKeys[length - 1]; + s.genesisBalanceKeys.pop(); + // exit after removing the key + break; + } + unchecked { + ++i; + } + } + } +} \ No newline at end of file diff --git a/src/structs/CrossNet.sol b/src/structs/CrossNet.sol index d667a8aac..ef6aa2322 100644 --- a/src/structs/CrossNet.sol +++ b/src/structs/CrossNet.sol @@ -29,7 +29,7 @@ struct BottomUpCheckpoint { uint64 nextConfigurationNumber; } -/// @notice A batch of bottom-up messages for execution +/// @notice A batch of bottom-up messages for execution. struct BottomUpMsgBatch { /// @dev Child subnet ID, for replay protection from other subnets where the exact same validators operate. SubnetID subnetID; @@ -39,13 +39,13 @@ struct BottomUpMsgBatch { CrossMsg[] msgs; } -/// @notice Tracks information about the last batch executed +/// @notice Tracks information about the last batch executed. struct BottomUpMsgBatchInfo { uint256 blockHeight; bytes32 hash; } -/// @notice Tracks information about relayer rewards +/// @notice Tracks information about relayer rewards. struct RelayerRewardsInfo { /// @dev user rewards mapping(address => uint256) rewards; @@ -55,16 +55,15 @@ struct RelayerRewardsInfo { mapping(uint256 => EnumerableSet.AddressSet) batchRewarded; } -/** - * @dev The goal of `wrapped` flag is to signal that a cross-net message should be sent as-is without changes to the destination. - * - * IMPORTANT: This is not currently used but it is a basic primitive required for atomic execution. - */ +/// @notice A cross-net message type. +/// @dev The goal of `wrapped` flag is to signal that a cross-net message should be sent as-is without changes to the destination. +/// IMPORTANT: This is not currently used but it is a basic primitive required for atomic execution. struct CrossMsg { StorableMsg message; bool wrapped; } +/// @notice A storable message type. struct StorableMsg { IPCAddress from; IPCAddress to; diff --git a/src/structs/Quorum.sol b/src/structs/Quorum.sol index 095a4281a..47c6a465d 100644 --- a/src/structs/Quorum.sol +++ b/src/structs/Quorum.sol @@ -3,11 +3,13 @@ pragma solidity 0.8.19; import {EnumerableSet} from "openzeppelin-contracts/utils/structs/EnumerableSet.sol"; +/// @notice A kind of quorum. enum QuorumObjKind { Checkpoint, BottomUpMsgBatch } +/// @notice Checkpoint quorum information. struct QuorumInfo { /// @dev The hash of the corresponding bottom-up checkpoint. bytes32 hash; @@ -21,6 +23,7 @@ struct QuorumInfo { bool reached; } +/// @notice A type aggregating quorum related information. struct QuorumMap { /// @notice flags the type of object we are running a quorum over. QuorumObjKind quorumObjKind; diff --git a/src/structs/Subnet.sol b/src/structs/Subnet.sol index 8b2ae56f3..df9219349 100644 --- a/src/structs/Subnet.sol +++ b/src/structs/Subnet.sol @@ -3,10 +3,10 @@ pragma solidity 0.8.19; import {SubnetID} from "./Subnet.sol"; import {FvmAddress} from "./FvmAddress.sol"; -import {Status} from "../enums/Status.sol"; import {MaxPQ} from "../lib/priority/LibMaxPQ.sol"; import {MinPQ} from "../lib/priority/LibMinPQ.sol"; +/// @notice A subnet identity type. struct SubnetID { /// @notice chainID of the root subnet uint64 root; @@ -14,17 +14,17 @@ struct SubnetID { address[] route; } +/// @notice A Subnet type. struct Subnet { uint256 stake; uint256 genesisEpoch; uint256 circSupply; uint64 topDownNonce; uint64 appliedBottomUpNonce; - Status status; SubnetID id; } -// ======== Subnet Staking ======= +/// @notice Subnet staking operations. enum StakingOperation { Deposit, Withdraw, @@ -32,20 +32,20 @@ enum StakingOperation { SetFederatedPower } -/// The change request to validator staking +/// @notice The change request to validator staking. struct StakingChange { StakingOperation op; bytes payload; address validator; } -/// The change associated with its corresponding configuration number +/// @notice The change associated with its corresponding configuration number. struct StakingChangeRequest { StakingChange change; uint64 configurationNumber; } -/// The collection of staking changes +/// @notice The collection of staking changes. struct StakingChangeLog { /// @notice The next configuration number to assign to new changes. uint64 nextConfigurationNumber; @@ -55,7 +55,7 @@ struct StakingChangeLog { mapping(uint64 => StakingChange) changes; } -/// Each staking release amount and time +/// @notice Each staking release amount and time. struct StakingRelease { /// @notice The block number that this fund can be released uint256 releaseAt; @@ -63,15 +63,16 @@ struct StakingRelease { uint256 amount; } -/// Tracks the staking releases of an address. Mimics the implementation of array in solidity, this -/// way is more aligned with our use case. +/// @notice Tracks the staking releases of an address. +/// @dev Mimics the implementation of array in solidity, +/// this way is more aligned with our use case. struct AddressStakingReleases { uint16 length; uint16 startIdx; mapping(uint16 => StakingRelease) releases; } -/// Manages the staking release queue +/// @notice Manages the staking release queue. struct StakingReleaseQueue { /// @notice The number of blocks that locks the collateral. uint256 lockingDuration; @@ -79,8 +80,9 @@ struct StakingReleaseQueue { mapping(address => AddressStakingReleases) releases; } -/// Keeping track of the validator information. There are two types of collaterals: -/// - Confirmed: The amount of collateral actually confirmed in child subnet +/// @notice Keeping track of the validator information. +/// @dev There are two types of collaterals: +/// - Confirmed: The amount of collateral actually confirmed in child subnet; /// - Total: Aside from Confirmed, there is also the collateral has been supplied, but not yet confirmed in child. struct ValidatorInfo { /// The power set by contract admin @@ -93,7 +95,7 @@ struct ValidatorInfo { bytes metadata; } -/// Determines the permission mode for validators. +/// @notice Determines the permission mode for validators. enum PermissionMode { /// Validator power is determined by the collateral staked Collateral, @@ -103,7 +105,8 @@ enum PermissionMode { Static } -/// Keeping track of the list of validators. There are two types of validators: +/// @notice Keeping track of the list of validators. +/// @dev There are two types of validators: /// - Active /// - Waiting /// Active validators are those that are producing blocks in the child subnet. @@ -129,31 +132,32 @@ struct ValidatorSet { MaxPQ waitingValidators; } -/// Tracks the parent validator changes and apply them in the child +/// @notice Tracks the parent validator changes and apply them in the child. struct ParentValidatorsTracker { ValidatorSet validators; StakingChangeLog changes; } +/// @notice An IPC address type. struct IPCAddress { SubnetID subnetId; FvmAddress rawAddress; } -// Validator struct stored in the gateway. +/// @notice Validator struct stored in the gateway. struct Validator { uint256 weight; address addr; bytes metadata; } -// Membership information stored in the gateway +/// @notice Membership information stored in the gateway. struct Membership { Validator[] validators; uint64 configurationNumber; } -/// @title Defines the supply source of a subnet on its parent subnet. +/// @notice Defines the supply source of a subnet on its parent subnet. struct SupplySource { /// @notice The kind of supply. SupplyKind kind; @@ -161,7 +165,7 @@ struct SupplySource { address tokenAddress; } -/// @title Determines the type of supply used by the subnet. +/// @notice Determines the type of supply used by the subnet. enum SupplyKind { Native, ERC20 diff --git a/src/subnet/SubnetActorManagerFacet.sol b/src/subnet/SubnetActorManagerFacet.sol index 4401b8ec4..7a6dae3e2 100644 --- a/src/subnet/SubnetActorManagerFacet.sol +++ b/src/subnet/SubnetActorManagerFacet.sol @@ -1,7 +1,9 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 pragma solidity 0.8.19; -import {InvalidBatchEpoch, NotEnoughGenesisValidators, DuplicatedGenesisValidator, MaxMsgsPerBatchExceeded, BatchWithNoMessages, InvalidFederationPayload, SubnetAlreadyBootstrapped, NotEnoughFunds, CollateralIsZero, CannotReleaseZero, NotOwnerOfPublicKey, EmptyAddress, NotEnoughBalance, NotEnoughCollateral, NotValidator, NotAllValidatorsHaveLeft, NotStakedBefore, InvalidSignatureErr, InvalidCheckpointEpoch, InvalidPublicKeyLength, MethodNotAllowed} from "../errors/IPCErrors.sol"; +import {VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH} from "../constants/Constants.sol"; +import {ERR_PERMISSIONED_AND_BOOTSTRAPPED, ERR_VALIDATOR_JOINED, ERR_VALIDATOR_NOT_JOINED} from "../errors/IPCErrors.sol"; +import {InvalidBatchEpoch, MaxMsgsPerBatchExceeded, BatchWithNoMessages, InvalidFederationPayload, SubnetAlreadyBootstrapped, NotEnoughFunds, CollateralIsZero, CannotReleaseZero, NotOwnerOfPublicKey, EmptyAddress, NotEnoughBalance, NotEnoughCollateral, NotValidator, NotAllValidatorsHaveLeft, NotStakedBefore, InvalidSignatureErr, InvalidCheckpointEpoch, InvalidPublicKeyLength, MethodNotAllowed} from "../errors/IPCErrors.sol"; import {IGateway} from "../interfaces/IGateway.sol"; import {ISubnetActor} from "../interfaces/ISubnetActor.sol"; import {QuorumObjKind} from "../structs/Quorum.sol"; @@ -15,11 +17,7 @@ import {SubnetActorModifiers} from "../lib/LibSubnetActorStorage.sol"; import {LibValidatorSet, LibStaking} from "../lib/LibStaking.sol"; import {EnumerableSet} from "openzeppelin-contracts/utils/structs/EnumerableSet.sol"; import {Address} from "openzeppelin-contracts/utils/Address.sol"; - -string constant ERR_PERMISSIONED_AND_BOOTSTRAPPED = "Method not allowed if permissioned is enabled and subnet bootstrapped"; - -// The length of the public key that is associated with a validator. -uint256 constant VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH = 65; +import {LibSubnetActor} from "../lib/LibSubnetActor.sol"; contract SubnetActorManagerFacet is ISubnetActor, SubnetActorModifiers, Pausable, ReentrancyGuard { using EnumerableSet for EnumerableSet.AddressSet; @@ -29,25 +27,6 @@ contract SubnetActorManagerFacet is ISubnetActor, SubnetActorModifiers, Pausable event BottomUpCheckpointSubmitted(BottomUpCheckpoint checkpoint, address submitter); event BottomUpCheckpointExecuted(uint256 epoch, address submitter); event NextBottomUpCheckpointExecuted(uint256 epoch, address submitter); - event SubnetBootstrapped(Validator[]); - - /// @notice Ensures that the subnet is operating under Federated permission mode. - /// @dev Reverts if the subnet is not in Federated mode. - function enforceFederatedValidation() internal view { - if (s.validatorSet.permissionMode != PermissionMode.Federated) { - revert MethodNotAllowed(ERR_PERMISSIONED_AND_BOOTSTRAPPED); - } - return; - } - - /// @notice Ensures that the subnet is operating under Collateral-based permission mode. - /// @dev Reverts if the subnet is not in Collateral mode. - function enforceCollateralValidation() internal view { - if (s.validatorSet.permissionMode != PermissionMode.Collateral) { - revert MethodNotAllowed(ERR_PERMISSIONED_AND_BOOTSTRAPPED); - } - return; - } /// @notice Pauses all contract functions with the `whenNotPaused` modifier. function pause() external { @@ -190,6 +169,7 @@ contract SubnetActorManagerFacet is ISubnetActor, SubnetActorModifiers, Pausable /// @notice method to remove funds from the initial balance of a subnet. /// @dev This method can be used by users looking to recover part of their /// initial balance before the subnet bootstraps. + /// @param amount The amount to remove. function preRelease(uint256 amount) external nonReentrant { if (amount == 0) { revert NotEnoughFunds(); @@ -207,7 +187,7 @@ contract SubnetActorManagerFacet is ISubnetActor, SubnetActorModifiers, Pausable s.genesisCircSupply -= amount; if (s.genesisBalance[msg.sender] == 0) { - rmAddressFromBalanceKey(msg.sender); + LibSubnetActor.rmAddressFromBalanceKey(msg.sender); } payable(msg.sender).sendValue(amount); @@ -225,7 +205,7 @@ contract SubnetActorManagerFacet is ISubnetActor, SubnetActorModifiers, Pausable ) external notKilled { LibDiamond.enforceIsContractOwner(); - enforceFederatedValidation(); + LibSubnetActor.enforceFederatedValidation(); if (validators.length != powers.length) { revert InvalidFederationPayload(); @@ -236,31 +216,38 @@ contract SubnetActorManagerFacet is ISubnetActor, SubnetActorModifiers, Pausable } if (s.bootstrapped) { - postBootstrapSetFederatedPower(validators, publicKeys, powers); + LibSubnetActor.postBootstrapSetFederatedPower(validators, publicKeys, powers); } else { - preBootstrapSetFederatedPower(validators, publicKeys, powers); + LibSubnetActor.preBootstrapSetFederatedPower(validators, publicKeys, powers); } } - /// @notice method that allows a validator to join the subnet - /// @param publicKey The off-chain 65 byte public key that should be associated with the validator. + /// @notice method that allows a validator to join the subnet. + /// If the total confirmed collateral of the subnet is greater + /// or equal to minimum activation collateral as a result of this operation, + /// then subnet will be registered. + /// @param publicKey The off-chain 65 byte public key that should be associated with the validator function join(bytes calldata publicKey) external payable nonReentrant whenNotPaused notKilled { // adding this check to prevent new validators from joining // after the subnet has been bootstrapped. We will increase the // functionality in the future to support explicit permissioning. if (s.bootstrapped) { - enforceCollateralValidation(); + LibSubnetActor.enforceCollateralValidation(); } if (msg.value == 0) { revert CollateralIsZero(); } + if (LibStaking.isValidator(msg.sender)) { + revert MethodNotAllowed(ERR_VALIDATOR_JOINED); + } + if (publicKey.length != VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH) { // Taking 65 bytes because the FVM libraries have some assertions checking it, it's more convenient. revert InvalidPublicKeyLength(); } - address convertedAddress = publicKeyToAddress(publicKey); + address convertedAddress = LibSubnetActor.publicKeyToAddress(publicKey); if (convertedAddress != msg.sender) { revert NotOwnerOfPublicKey(); } @@ -274,52 +261,46 @@ contract SubnetActorManagerFacet is ISubnetActor, SubnetActorModifiers, Pausable LibStaking.setMetadataWithConfirm(msg.sender, publicKey); LibStaking.depositWithConfirm(msg.sender, msg.value); - uint256 totalCollateral = LibStaking.getTotalConfirmedCollateral(); - - if (totalCollateral >= s.minActivationCollateral) { - if (LibStaking.totalActiveValidators() >= s.minValidators) { - s.bootstrapped = true; - emit SubnetBootstrapped(s.genesisValidators); - - // register adding the genesis circulating supply (if it exists) - IGateway(s.ipcGatewayAddr).register{value: totalCollateral + s.genesisCircSupply}( - s.genesisCircSupply - ); - } - } + LibSubnetActor.bootstrapSubnetIfNeeded(); } else { + // if the subnet has been bootstrapped, join with postponed confirmation. LibStaking.setValidatorMetadata(msg.sender, publicKey); LibStaking.deposit(msg.sender, msg.value); } } /// @notice method that allows a validator to increase its stake. + /// If the total confirmed collateral of the subnet is greater + /// or equal to minimum activation collateral as a result of this operation, + /// then subnet will be registered. function stake() external payable whenNotPaused notKilled { - // disbling validator changes for federated subnets (at least for now + // disabling validator changes for federated subnets (at least for now // until a more complex mechanism is implemented). - enforceCollateralValidation(); + LibSubnetActor.enforceCollateralValidation(); if (msg.value == 0) { revert CollateralIsZero(); } - if (!LibStaking.hasStaked(msg.sender)) { - revert NotStakedBefore(); + if (!LibStaking.isValidator(msg.sender)) { + revert MethodNotAllowed(ERR_VALIDATOR_NOT_JOINED); } if (!s.bootstrapped) { LibStaking.depositWithConfirm(msg.sender, msg.value); - return; - } - LibStaking.deposit(msg.sender, msg.value); + LibSubnetActor.bootstrapSubnetIfNeeded(); + } else { + LibStaking.deposit(msg.sender, msg.value); + } } /// @notice method that allows a validator to unstake a part of its collateral from a subnet. /// @dev `leave` must be used to unstake the entire stake. + /// @param amount The amount to unstake. function unstake(uint256 amount) external whenNotPaused notKilled { // disbling validator changes for federated validation subnets (at least for now // until a more complex mechanism is implemented). - enforceCollateralValidation(); + LibSubnetActor.enforceCollateralValidation(); if (amount == 0) { revert CannotReleaseZero(); @@ -349,7 +330,7 @@ contract SubnetActorManagerFacet is ISubnetActor, SubnetActorModifiers, Pausable // their collateral ever (worth noting in the docs if this ends // up sticking around for a while). if (s.bootstrapped) { - enforceCollateralValidation(); + LibSubnetActor.enforceCollateralValidation(); } // remove bootstrap nodes added by this validator @@ -368,7 +349,7 @@ contract SubnetActorManagerFacet is ISubnetActor, SubnetActorModifiers, Pausable if (genesisBalance != 0) { s.genesisBalance[msg.sender] == 0; s.genesisCircSupply -= genesisBalance; - rmAddressFromBalanceKey(msg.sender); + LibSubnetActor.rmAddressFromBalanceKey(msg.sender); payable(msg.sender).sendValue(genesisBalance); } @@ -430,7 +411,7 @@ contract SubnetActorManagerFacet is ISubnetActor, SubnetActorModifiers, Pausable // get rewarded addresses address[] memory relayers = new address[](0); if (kind == QuorumObjKind.Checkpoint) { - relayers = checkpointRewardedAddrs(height); + relayers = LibSubnetActor.checkpointRewardedAddrs(height); } else if (kind == QuorumObjKind.BottomUpMsgBatch) { // FIXME: The distribution of rewards for batches can't be done // as for checkpoints (due to how they are submitted). As @@ -461,14 +442,6 @@ contract SubnetActorManagerFacet is ISubnetActor, SubnetActorModifiers, Pausable } } - /// @notice Retrieves the addresses of relayers who were rewarded for a specific checkpoint at a given height. - /// @param height The height of the checkpoint for which to find rewarded relayers. - /// @return relayers An array of addresses of the relayers who were rewarded at the specified checkpoint. - function checkpointRewardedAddrs(uint256 height) internal view returns (address[] memory relayers) { - uint256 previousHeight = height - s.bottomUpCheckPeriod; - relayers = s.relayerRewards.checkpointRewarded[previousHeight].values(); - } - /// @notice Checks whether the signatures are valid for the provided signatories and hash within the current validator set. /// Reverts otherwise. /// @dev Signatories in `signatories` and their signatures in `signatures` must be provided in the same order. @@ -499,97 +472,4 @@ contract SubnetActorManagerFacet is ISubnetActor, SubnetActorModifiers, Pausable revert InvalidSignatureErr(uint8(err)); } } - - /// @notice Converts a 65-byte public key to its corresponding address. - /// @param publicKey The 65-byte public key to be converted. - /// @return The address derived from the given public key. - function publicKeyToAddress(bytes calldata publicKey) internal pure returns (address) { - assert(publicKey.length == VALIDATOR_SECP256K1_PUBLIC_KEY_LENGTH); - bytes32 hashed = keccak256(publicKey[1:]); - return address(uint160(uint256(hashed))); - } - - /// @notice Removes an address from the initial balance keys. - function rmAddressFromBalanceKey(address addr) internal { - uint256 length = s.genesisBalanceKeys.length; - for (uint256 i; i < length; ) { - if (s.genesisBalanceKeys[i] == addr) { - s.genesisBalanceKeys[i] = s.genesisBalanceKeys[length - 1]; - s.genesisBalanceKeys.pop(); - // exit after removing the key - break; - } - unchecked { - ++i; - } - } - } - - /// @notice method that allows the contract owner to set the validators' federated power before - /// @notice subnet has already been bootstrapped. - function preBootstrapSetFederatedPower( - address[] calldata validators, - bytes[] calldata publicKeys, - uint256[] calldata powers - ) internal { - uint256 length = validators.length; - for (uint256 i; i < length; ) { - // check addresses - address convertedAddress = publicKeyToAddress(publicKeys[i]); - if (convertedAddress != validators[i]) { - revert NotOwnerOfPublicKey(); - } - - // performing deduplication - // validator should have no power when first added - if (LibStaking.getPower(validators[i]) > 0) { - revert DuplicatedGenesisValidator(); - } - - LibStaking.setMetadataWithConfirm(validators[i], publicKeys[i]); - LibStaking.setFederatedPowerWithConfirm(validators[i], powers[i]); - - s.genesisValidators.push(Validator({addr: validators[i], weight: powers[i], metadata: publicKeys[i]})); - - unchecked { - ++i; - } - } - - // check duplication first then check length - if (length <= s.minValidators) { - revert NotEnoughGenesisValidators(); - } - - s.bootstrapped = true; - emit SubnetBootstrapped(s.genesisValidators); - - // register adding the genesis circulating supply (if it exists) - IGateway(s.ipcGatewayAddr).register{value: s.genesisCircSupply}(s.genesisCircSupply); - } - - /// @notice method that allows the contract owner to set the validators' federated power after - /// @notice subnet has already been bootstrapped. - function postBootstrapSetFederatedPower( - address[] calldata validators, - bytes[] calldata publicKeys, - uint256[] calldata powers - ) internal { - uint256 length = validators.length; - for (uint256 i; i < length; ) { - // check addresses - address convertedAddress = publicKeyToAddress(publicKeys[i]); - if (convertedAddress != validators[i]) { - revert NotOwnerOfPublicKey(); - } - - // no need to do deduplication as set directly set the power, there wont be any addition of - // federated power. - LibStaking.setFederatedPower({validator: validators[i], metadata: publicKeys[i], amount: powers[i]}); - - unchecked { - ++i; - } - } - } } diff --git a/test/IntegrationTestBase.sol b/test/IntegrationTestBase.sol index 3727955f6..f2c5b376d 100644 --- a/test/IntegrationTestBase.sol +++ b/test/IntegrationTestBase.sol @@ -7,7 +7,6 @@ import "../src/errors/IPCErrors.sol"; import {EMPTY_BYTES, METHOD_SEND} from "../src/constants/Constants.sol"; import {ConsensusType} from "../src/enums/ConsensusType.sol"; -import {Status} from "../src/enums/Status.sol"; import {IDiamond} from "../src/interfaces/IDiamond.sol"; import {CrossMsg, BottomUpCheckpoint, StorableMsg, ParentFinality} from "../src/structs/CrossNet.sol"; import {FvmAddress} from "../src/structs/FvmAddress.sol"; @@ -22,8 +21,13 @@ import {SubnetActorDiamond} from "../src/SubnetActorDiamond.sol"; import {GatewayGetterFacet} from "../src/gateway/GatewayGetterFacet.sol"; import {GatewayMessengerFacet} from "../src/gateway/GatewayMessengerFacet.sol"; import {GatewayManagerFacet} from "../src/gateway/GatewayManagerFacet.sol"; -import {GatewayRouterFacet} from "../src/gateway/GatewayRouterFacet.sol"; -import {SubnetActorManagerFacetMock} from "./mocks/SubnetActor.sol"; + +import {CheckpointingFacet} from "../src/gateway/router/CheckpointingFacet.sol"; +import {XnetMessagingFacet} from "../src/gateway/router/XnetMessagingFacet.sol"; +import {TopDownFinalityFacet} from "../src/gateway/router/TopDownFinalityFacet.sol"; +import {BottomUpRouterFacet} from "../src/gateway/router/BottomUpRouterFacet.sol"; + +import {SubnetActorManagerFacetMock} from "./mocks/SubnetActorManagerFacetMock.sol"; import {SubnetActorManagerFacet} from "../src/subnet/SubnetActorManagerFacet.sol"; import {SubnetActorGetterFacet} from "../src/subnet/SubnetActorGetterFacet.sol"; import {SubnetRegistryDiamond} from "../src/SubnetRegistryDiamond.sol"; @@ -33,6 +37,7 @@ import {DiamondLoupeFacet} from "../src/diamond/DiamondLoupeFacet.sol"; import {DiamondCutFacet} from "../src/diamond/DiamondCutFacet.sol"; import {SupplySourceHelper} from "../src/lib/SupplySourceHelper.sol"; import {TestUtils} from "./helpers/TestUtils.sol"; +import {SelectorLibrary} from "./helpers/SelectorLibrary.sol"; contract TestParams { uint64 constant MAX_NONCE = type(uint64).max; @@ -71,36 +76,48 @@ contract TestRegistry is Test, TestParams { SubnetGetterFacet registrySubnetGetterFacet; constructor() { - registerSubnetFacetSelectors = TestUtils.generateSelectors(vm, "RegisterSubnetFacet"); - registerSubnetGetterFacetSelectors = TestUtils.generateSelectors(vm, "SubnetGetterFacet"); - registerCutterSelectors = TestUtils.generateSelectors(vm, "DiamondCutFacet"); - registerLouperSelectors = TestUtils.generateSelectors(vm, "DiamondLoupeFacet"); + registerSubnetFacetSelectors = SelectorLibrary.resolveSelectors("RegisterSubnetFacet"); + registerSubnetGetterFacetSelectors = SelectorLibrary.resolveSelectors("SubnetGetterFacet"); + registerCutterSelectors = SelectorLibrary.resolveSelectors("DiamondCutFacet"); + registerLouperSelectors = SelectorLibrary.resolveSelectors("DiamondLoupeFacet"); } } contract TestGatewayActor is Test, TestParams { - bytes4[] gwRouterSelectors; + bytes4[] gwCheckpointingFacetSelectors; + bytes4[] gwXnetMessagingFacetSelectors; + bytes4[] gwTopDownFinalityFacetSelectors; + bytes4[] gwBottomUpRouterFacetSelectors; + bytes4[] gwManagerSelectors; bytes4[] gwGetterSelectors; bytes4[] gwMessengerSelectors; + bytes4[] gwCutterSelectors; bytes4[] gwLoupeSelectors; GatewayDiamond gatewayDiamond; GatewayManagerFacet gwManager; GatewayGetterFacet gwGetter; - GatewayRouterFacet gwRouter; + CheckpointingFacet gwCheckpointingFacet; + XnetMessagingFacet gwXnetMessagingFacet; + TopDownFinalityFacet gwTopDownFinalityFacet; + BottomUpRouterFacet gwBottomUpRouterFacet; GatewayMessengerFacet gwMessenger; DiamondCutFacet gwCutter; DiamondLoupeFacet gwLouper; constructor() { - gwRouterSelectors = TestUtils.generateSelectors(vm, "GatewayRouterFacet"); - gwGetterSelectors = TestUtils.generateSelectors(vm, "GatewayGetterFacet"); - gwManagerSelectors = TestUtils.generateSelectors(vm, "GatewayManagerFacet"); - gwMessengerSelectors = TestUtils.generateSelectors(vm, "GatewayMessengerFacet"); - gwCutterSelectors = TestUtils.generateSelectors(vm, "DiamondCutFacet"); - gwLoupeSelectors = TestUtils.generateSelectors(vm, "DiamondLoupeFacet"); + gwCheckpointingFacetSelectors = SelectorLibrary.resolveSelectors("CheckpointingFacet"); + gwXnetMessagingFacetSelectors = SelectorLibrary.resolveSelectors("XnetMessagingFacet"); + gwTopDownFinalityFacetSelectors = SelectorLibrary.resolveSelectors("TopDownFinalityFacet"); + gwBottomUpRouterFacetSelectors = SelectorLibrary.resolveSelectors("BottomUpRouterFacet"); + + gwGetterSelectors = SelectorLibrary.resolveSelectors("GatewayGetterFacet"); + gwManagerSelectors = SelectorLibrary.resolveSelectors("GatewayManagerFacet"); + gwMessengerSelectors = SelectorLibrary.resolveSelectors("GatewayMessengerFacet"); + gwCutterSelectors = SelectorLibrary.resolveSelectors("DiamondCutFacet"); + gwLoupeSelectors = SelectorLibrary.resolveSelectors("DiamondLoupeFacet"); } function defaultGatewayParams() internal pure virtual returns (GatewayDiamond.ConstructorParams memory) { @@ -108,7 +125,6 @@ contract TestGatewayActor is Test, TestParams { networkName: SubnetID({root: ROOTNET_CHAINID, route: new address[](0)}), bottomUpCheckPeriod: DEFAULT_CHECKPOINT_PERIOD, msgFee: DEFAULT_CROSS_MSG_FEE, - minCollateral: DEFAULT_COLLATERAL_AMOUNT, majorityPercentage: DEFAULT_MAJORITY_PERCENTAGE, genesisValidators: new Validator[](0), activeValidatorsLimit: DEFAULT_ACTIVE_VALIDATORS_LIMIT @@ -133,11 +149,11 @@ contract TestSubnetActor is Test, TestParams { DiamondLoupeFacet saLouper; constructor() { - saGetterSelectors = TestUtils.generateSelectors(vm, "SubnetActorGetterFacet"); - saManagerSelectors = TestUtils.generateSelectors(vm, "SubnetActorManagerFacet"); - saManagerMockedSelectors = TestUtils.generateSelectors(vm, "SubnetActorManagerFacetMock"); - saCutterSelectors = TestUtils.generateSelectors(vm, "DiamondCutFacet"); - saLouperSelectors = TestUtils.generateSelectors(vm, "DiamondLoupeFacet"); + saGetterSelectors = SelectorLibrary.resolveSelectors("SubnetActorGetterFacet"); + saManagerSelectors = SelectorLibrary.resolveSelectors("SubnetActorManagerFacet"); + saManagerMockedSelectors = SelectorLibrary.resolveSelectors("SubnetActorManagerFacetMock"); + saCutterSelectors = SelectorLibrary.resolveSelectors("DiamondCutFacet"); + saLouperSelectors = SelectorLibrary.resolveSelectors("DiamondLoupeFacet"); } function defaultSubnetActorParamsWithGateway( @@ -181,9 +197,13 @@ contract IntegrationTestBase is Test, TestParams, TestRegistry, TestSubnetActor, // create the root gateway actor. GatewayDiamond.ConstructorParams memory gwConstructorParams = defaultGatewayParams(); gatewayDiamond = createGatewayDiamond(gwConstructorParams); + gwGetter = GatewayGetterFacet(address(gatewayDiamond)); gwManager = GatewayManagerFacet(address(gatewayDiamond)); - gwRouter = GatewayRouterFacet(address(gatewayDiamond)); + gwCheckpointingFacet = CheckpointingFacet(address(gatewayDiamond)); + gwXnetMessagingFacet = XnetMessagingFacet(address(gatewayDiamond)); + gwTopDownFinalityFacet = TopDownFinalityFacet(address(gatewayDiamond)); + gwBottomUpRouterFacet = BottomUpRouterFacet(address(gatewayDiamond)); gwMessenger = GatewayMessengerFacet(address(gatewayDiamond)); gwLouper = DiamondLoupeFacet(address(gatewayDiamond)); gwCutter = DiamondCutFacet(address(gatewayDiamond)); @@ -203,20 +223,48 @@ contract IntegrationTestBase is Test, TestParams, TestRegistry, TestSubnetActor, } function createGatewayDiamond(GatewayDiamond.ConstructorParams memory params) public returns (GatewayDiamond) { - GatewayRouterFacet router = new GatewayRouterFacet(); + CheckpointingFacet checkpointingFacet = new CheckpointingFacet(); + XnetMessagingFacet xnetMessagingFacet = new XnetMessagingFacet(); + TopDownFinalityFacet topDownFinalityFacet = new TopDownFinalityFacet(); + BottomUpRouterFacet bottomUpRouterFacet = new BottomUpRouterFacet(); + GatewayManagerFacet manager = new GatewayManagerFacet(); GatewayGetterFacet getter = new GatewayGetterFacet(); GatewayMessengerFacet messenger = new GatewayMessengerFacet(); DiamondCutFacet cutter = new DiamondCutFacet(); DiamondLoupeFacet louper = new DiamondLoupeFacet(); - IDiamond.FacetCut[] memory gwDiamondCut = new IDiamond.FacetCut[](6); + IDiamond.FacetCut[] memory gwDiamondCut = new IDiamond.FacetCut[](9); gwDiamondCut[0] = ( IDiamond.FacetCut({ - facetAddress: address(router), + facetAddress: address(checkpointingFacet), + action: IDiamond.FacetCutAction.Add, + functionSelectors: gwCheckpointingFacetSelectors + }) + ); + + gwDiamondCut[6] = ( + IDiamond.FacetCut({ + facetAddress: address(xnetMessagingFacet), action: IDiamond.FacetCutAction.Add, - functionSelectors: gwRouterSelectors + functionSelectors: gwXnetMessagingFacetSelectors + }) + ); + + gwDiamondCut[7] = ( + IDiamond.FacetCut({ + facetAddress: address(topDownFinalityFacet), + action: IDiamond.FacetCutAction.Add, + functionSelectors: gwTopDownFinalityFacetSelectors + }) + ); + + gwDiamondCut[8] = ( + IDiamond.FacetCut({ + facetAddress: address(bottomUpRouterFacet), + action: IDiamond.FacetCutAction.Add, + functionSelectors: gwBottomUpRouterFacetSelectors }) ); @@ -537,7 +585,7 @@ contract IntegrationTestBase is Test, TestParams, TestRegistry, TestSubnetActor, ParentFinality memory finality = ParentFinality({height: block.number, blockHash: bytes32(0)}); vm.prank(FilAddress.SYSTEM_ACTOR); - gwRouter.commitParentFinality(finality); + gwTopDownFinalityFacet.commitParentFinality(finality); } function setupWhiteListMethod(address caller, address src) public returns (bytes32) { @@ -569,7 +617,7 @@ contract IntegrationTestBase is Test, TestParams, TestRegistry, TestSubnetActor, // addValidator(caller, 1000); vm.prank(FilAddress.SYSTEM_ACTOR); - gwRouter.applyCrossMessages(msgs); + gwXnetMessagingFacet.applyCrossMessages(msgs); return crossMsg.toHash(); } @@ -589,7 +637,7 @@ contract IntegrationTestBase is Test, TestParams, TestRegistry, TestSubnetActor, // uint64 n = gwGetter.getLastConfigurationNumber() + 1; vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.commitParentFinality(finality); + gwTopDownFinalityFacet.commitParentFinality(finality); vm.stopPrank(); } @@ -603,7 +651,7 @@ contract IntegrationTestBase is Test, TestParams, TestRegistry, TestSubnetActor, function fund(address funderAddress, uint256 fundAmount, SupplyKind mode) public { // funding subnets is free, we do not need cross msg fee - (SubnetID memory subnetId, , uint256 nonceBefore, , uint256 circSupplyBefore, ) = getSubnet(address(saManager)); + (SubnetID memory subnetId, , uint256 nonceBefore, , uint256 circSupplyBefore) = getSubnet(address(saManager)); uint256 expectedTopDownMsgsLength = gwGetter.getSubnetTopDownMsgsLength(subnetId) + 1; uint256 expectedNonce = nonceBefore + 1; @@ -617,7 +665,7 @@ contract IntegrationTestBase is Test, TestParams, TestRegistry, TestSubnetActor, gwManager.fundWithToken(subnetId, FvmAddressHelper.from(funderAddress), fundAmount); } - (, , uint256 nonce, , uint256 circSupply, ) = getSubnet(address(saManager)); + (, , uint256 nonce, , uint256 circSupply) = getSubnet(address(saManager)); require(gwGetter.getSubnetTopDownMsgsLength(subnetId) == expectedTopDownMsgsLength, "unexpected lengths"); @@ -714,12 +762,12 @@ contract IntegrationTestBase is Test, TestParams, TestRegistry, TestSubnetActor, function addStake(uint256 stakeAmount, address subnetAddress) public { uint256 balanceBefore = subnetAddress.balance; - (, uint256 stakedBefore, , , , ) = getSubnet(subnetAddress); + (, uint256 stakedBefore, , , ) = getSubnet(subnetAddress); gwManager.addStake{value: stakeAmount}(); uint256 balanceAfter = subnetAddress.balance; - (, uint256 stakedAfter, , , , ) = getSubnet(subnetAddress); + (, uint256 stakedAfter, , , ) = getSubnet(subnetAddress); require(balanceAfter == balanceBefore - stakeAmount, "unexpected balance"); require(stakedAfter == stakedBefore + stakeAmount, "unexpected stake"); @@ -730,7 +778,7 @@ contract IntegrationTestBase is Test, TestParams, TestRegistry, TestSubnetActor, manager.register{value: collateral}(0); - (SubnetID memory id, uint256 stake, uint256 topDownNonce, , uint256 circSupply, Status status) = getSubnetGW( + (SubnetID memory id, uint256 stake, uint256 topDownNonce, , uint256 circSupply) = getSubnetGW( subnetAddress, gw ); @@ -744,7 +792,6 @@ contract IntegrationTestBase is Test, TestParams, TestRegistry, TestSubnetActor, require(stake == collateral, "unexpected stake"); require(topDownNonce == 0, "unexpected nonce"); require(circSupply == 0, "unexpected circSupply"); - require(status == Status.Active, "unexpected status"); } function registerSubnet(uint256 collateral, address subnetAddress) public { @@ -754,8 +801,7 @@ contract IntegrationTestBase is Test, TestParams, TestRegistry, TestSubnetActor, function getSubnetGW( address subnetAddress, GatewayDiamond gw - ) public returns (SubnetID memory, uint256, uint256, uint256, uint256, Status) { - gwRouter = GatewayRouterFacet(address(gw)); + ) public returns (SubnetID memory, uint256, uint256, uint256, uint256) { gwManager = GatewayManagerFacet(address(gw)); gwGetter = GatewayGetterFacet(address(gw)); @@ -763,19 +809,10 @@ contract IntegrationTestBase is Test, TestParams, TestRegistry, TestSubnetActor, Subnet memory subnet = gwGetter.subnets(subnetId.toHash()); - return ( - subnet.id, - subnet.stake, - subnet.topDownNonce, - subnet.appliedBottomUpNonce, - subnet.circSupply, - subnet.status - ); + return (subnet.id, subnet.stake, subnet.topDownNonce, subnet.appliedBottomUpNonce, subnet.circSupply); } - function getSubnet( - address subnetAddress - ) public returns (SubnetID memory, uint256, uint256, uint256, uint256, Status) { + function getSubnet(address subnetAddress) public returns (SubnetID memory, uint256, uint256, uint256, uint256) { return getSubnetGW(subnetAddress, gatewayDiamond); } } diff --git a/test/helpers/NumberContract.sol b/test/helpers/NumberContractFacetEight.sol similarity index 61% rename from test/helpers/NumberContract.sol rename to test/helpers/NumberContractFacetEight.sol index ac493b148..4d69efb1a 100644 --- a/test/helpers/NumberContract.sol +++ b/test/helpers/NumberContractFacetEight.sol @@ -1,12 +1,6 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 pragma solidity 0.8.19; -contract NumberContractFacetSeven { - function getNum() external pure returns (uint8) { - return 7; - } -} - contract NumberContractFacetEight { function getNum() external pure returns (uint8) { return 8; diff --git a/test/helpers/NumberContractFacetSeven.sol b/test/helpers/NumberContractFacetSeven.sol new file mode 100644 index 000000000..391813fc1 --- /dev/null +++ b/test/helpers/NumberContractFacetSeven.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: MIT OR Apache-2.0 +pragma solidity 0.8.19; + +contract NumberContractFacetSeven { + function getNum() external pure returns (uint8) { + return 7; + } +} diff --git a/test/helpers/SelectorLibrary.sol b/test/helpers/SelectorLibrary.sol new file mode 100644 index 000000000..a17aa04f8 --- /dev/null +++ b/test/helpers/SelectorLibrary.sol @@ -0,0 +1,162 @@ +// SPDX-License-Identifier: MIT OR Apache-2.0 +pragma solidity ^0.8.19; + +library SelectorLibrary { + function resolveSelectors(string memory facetName) public pure returns (bytes4[] memory facetSelectors) { + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("GatewayDiamond"))) { + return + abi.decode( + hex"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("SubnetActorDiamond"))) { + return + abi.decode( + hex"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("SubnetRegistryDiamond"))) { + return + abi.decode( + hex"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("DiamondCutFacet"))) { + return + abi.decode( + hex"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000011f931c1c00000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("DiamondLoupeFacet"))) { + return + abi.decode( + hex"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("GatewayGetterFacet"))) { + return + abi.decode( + hex"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000268789f83b0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000002da5794a00000000000000000000000000000000000000000000000000000000dd81b5cf0000000000000000000000000000000000000000000000000000000069e737fd0000000000000000000000000000000000000000000000000000000041b6a2e80000000000000000000000000000000000000000000000000000000024729425000000000000000000000000000000000000000000000000000000009e530b57000000000000000000000000000000000000000000000000000000006547cd6400000000000000000000000000000000000000000000000000000000b9ee584200000000000000000000000000000000000000000000000000000000a9294bdd000000000000000000000000000000000000000000000000000000002218059400000000000000000000000000000000000000000000000000000000b3ab3f7400000000000000000000000000000000000000000000000000000000ac12d763000000000000000000000000000000000000000000000000000000004aa8f8a500000000000000000000000000000000000000000000000000000000ca41d5ce00000000000000000000000000000000000000000000000000000000d6c5c39700000000000000000000000000000000000000000000000000000000544dddff000000000000000000000000000000000000000000000000000000006ad21bb000000000000000000000000000000000000000000000000000000000a517218f000000000000000000000000000000000000000000000000000000009704276600000000000000000000000000000000000000000000000000000000767ee5f400000000000000000000000000000000000000000000000000000000335eb62a00000000000000000000000000000000000000000000000000000000b1ba49b000000000000000000000000000000000000000000000000000000000f3229131000000000000000000000000000000000000000000000000000000000338150f0000000000000000000000000000000000000000000000000000000094074b03000000000000000000000000000000000000000000000000000000007edeac920000000000000000000000000000000000000000000000000000000006572c1a00000000000000000000000000000000000000000000000000000000c66c66a1000000000000000000000000000000000000000000000000000000009d3070b5000000000000000000000000000000000000000000000000000000005d02968500000000000000000000000000000000000000000000000000000000599c7bd10000000000000000000000000000000000000000000000000000000005aff0b300000000000000000000000000000000000000000000000000000000375b3c0a000000000000000000000000000000000000000000000000000000008cfd78e70000000000000000000000000000000000000000000000000000000002e30f9a00000000000000000000000000000000000000000000000000000000a2b6715800000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("GatewayManagerFacet"))) { + return + abi.decode( + hex"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000085a627dbc0000000000000000000000000000000000000000000000000000000018f44b70000000000000000000000000000000000000000000000000000000000517e1aa0000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000f207564e000000000000000000000000000000000000000000000000000000006b2c1eef00000000000000000000000000000000000000000000000000000000d8e255720000000000000000000000000000000000000000000000000000000045f5448500000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("GatewayMessengerFacet"))) { + return + abi.decode( + hex"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000225bf0db600000000000000000000000000000000000000000000000000000000210b944e00000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("CheckpointingFacet"))) { + return + abi.decode( + hex"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000453b4e7bf0000000000000000000000000000000000000000000000000000000047dc9b4f000000000000000000000000000000000000000000000000000000007430377100000000000000000000000000000000000000000000000000000000ac81837900000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("BottomUpRouterFacet"))) { + return + abi.decode( + hex"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040db0f77c0000000000000000000000000000000000000000000000000000000032e7661f000000000000000000000000000000000000000000000000000000000bed761500000000000000000000000000000000000000000000000000000000bacc656d00000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("TopDownFinalityFacet"))) { + return + abi.decode( + hex"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030df14461000000000000000000000000000000000000000000000000000000001119697400000000000000000000000000000000000000000000000000000000e49a547d00000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("XnetMessagingFacet"))) { + return + abi.decode( + hex"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001c62eb4d500000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("SubnetActorGetterFacet"))) { + return + abi.decode( + hex"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000253354c3e10000000000000000000000000000000000000000000000000000000035142c8c0000000000000000000000000000000000000000000000000000000006c46853000000000000000000000000000000000000000000000000000000004b27aa72000000000000000000000000000000000000000000000000000000004b0694e20000000000000000000000000000000000000000000000000000000069e737fd000000000000000000000000000000000000000000000000000000008ef3f761000000000000000000000000000000000000000000000000000000003da3324100000000000000000000000000000000000000000000000000000000903e693000000000000000000000000000000000000000000000000000000000948628a900000000000000000000000000000000000000000000000000000000d92e8f1200000000000000000000000000000000000000000000000000000000c7cda762000000000000000000000000000000000000000000000000000000009754b29e0000000000000000000000000000000000000000000000000000000038a210b30000000000000000000000000000000000000000000000000000000080f76021000000000000000000000000000000000000000000000000000000005dd9147c00000000000000000000000000000000000000000000000000000000b2bd295e00000000000000000000000000000000000000000000000000000000d6eb591000000000000000000000000000000000000000000000000000000000332a5ac9000000000000000000000000000000000000000000000000000000001597bf7e0000000000000000000000000000000000000000000000000000000052d182d1000000000000000000000000000000000000000000000000000000001904bb2e000000000000000000000000000000000000000000000000000000002bc31eb300000000000000000000000000000000000000000000000000000000f75499dc00000000000000000000000000000000000000000000000000000000cfca28240000000000000000000000000000000000000000000000000000000040550a1c00000000000000000000000000000000000000000000000000000000d081be03000000000000000000000000000000000000000000000000000000001f3a0e410000000000000000000000000000000000000000000000000000000072d0a0e00000000000000000000000000000000000000000000000000000000028d5551d00000000000000000000000000000000000000000000000000000000599c7bd1000000000000000000000000000000000000000000000000000000009e33bd02000000000000000000000000000000000000000000000000000000006704287c00000000000000000000000000000000000000000000000000000000c5ab224100000000000000000000000000000000000000000000000000000000f0cf6c9600000000000000000000000000000000000000000000000000000000ad81e4d60000000000000000000000000000000000000000000000000000000080875df700000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("SubnetActorManagerFacet"))) { + return + abi.decode( + hex"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001210fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da1000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("RegisterSubnetFacet"))) { + return + abi.decode( + hex"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000017be005d500000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("SubnetGetterFacet"))) { + return + abi.decode( + hex"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000942bf3cc1000000000000000000000000000000000000000000000000000000000be06111000000000000000000000000000000000000000000000000000000001b0766c300000000000000000000000000000000000000000000000000000000a372bf30000000000000000000000000000000000000000000000000000000000f5849d1000000000000000000000000000000000000000000000000000000009836b75f00000000000000000000000000000000000000000000000000000000030f6051000000000000000000000000000000000000000000000000000000001163dca500000000000000000000000000000000000000000000000000000000a46d044d00000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("ERC20PresetFixedSupply"))) { + return + abi.decode( + hex"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000ddd62ed3e00000000000000000000000000000000000000000000000000000000095ea7b30000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000042966c680000000000000000000000000000000000000000000000000000000079cc679000000000000000000000000000000000000000000000000000000000313ce56700000000000000000000000000000000000000000000000000000000a457c2d700000000000000000000000000000000000000000000000000000000395093510000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000018160ddd00000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("NumberContractFacetEight"))) { + return + abi.decode( + hex"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("NumberContractFacetSeven"))) { + return + abi.decode( + hex"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000167e0badb00000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("SelectorLibrary"))) { + return + abi.decode( + hex"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000166e2898c00000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("TestUtils"))) { + return + abi.decode( + hex"00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000008997da8d4000000000000000000000000000000000000000000000000000000005727dc5c0000000000000000000000000000000000000000000000000000000003a507be000000000000000000000000000000000000000000000000000000007a308a4c00000000000000000000000000000000000000000000000000000000eeeac01e00000000000000000000000000000000000000000000000000000000bc9e2bcf00000000000000000000000000000000000000000000000000000000f6caf0ac00000000000000000000000000000000000000000000000000000000573081a200000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + if (keccak256(abi.encodePacked(facetName)) == keccak256(abi.encodePacked("SubnetActorManagerFacetMock"))) { + return + abi.decode( + hex"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001410fd4261000000000000000000000000000000000000000000000000000000004e71d92d00000000000000000000000000000000000000000000000000000000ed7c4da100000000000000000000000000000000000000000000000000000000350a14bf00000000000000000000000000000000000000000000000000000000c7ebdaef000000000000000000000000000000000000000000000000000000004c860af6000000000000000000000000000000000000000000000000000000006170b1620000000000000000000000000000000000000000000000000000000041c0e1b500000000000000000000000000000000000000000000000000000000d66d9e19000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb000000000000000000000000000000000000000000000000000000000b7fbe600000000000000000000000000000000000000000000000000000000066783c9b00000000000000000000000000000000000000000000000000000000da5d09ee000000000000000000000000000000000000000000000000000000003a4b66f1000000000000000000000000000000000000000000000000000000002681193600000000000000000000000000000000000000000000000000000000b9ee2bb9000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000002e17de7800000000000000000000000000000000000000000000000000000000cc2dc2b900000000000000000000000000000000000000000000000000000000", + (bytes4[]) + ); + } + revert("Selector not found"); + } +} diff --git a/test/helpers/TestUtils.sol b/test/helpers/TestUtils.sol index e25bd5741..22af3a351 100644 --- a/test/helpers/TestUtils.sol +++ b/test/helpers/TestUtils.sol @@ -28,16 +28,6 @@ library TestUtils { return abi.encodePacked(uint8(0x4), pubKeyX, pubKeyY); } - function generateSelectors(Vm vm, string memory facetName) internal returns (bytes4[] memory facetSelectors) { - string[] memory inputs = new string[](3); - inputs[0] = "python3"; - inputs[1] = "scripts/python/get_selectors.py"; - inputs[2] = facetName; - - bytes memory res = vm.ffi(inputs); - facetSelectors = abi.decode(res, (bytes4[])); - } - function getFourValidators( Vm vm ) internal returns (uint256[] memory validatorKeys, address[] memory addresses, uint256[] memory weights) { diff --git a/test/integration/GatewayDiamond.t.sol b/test/integration/GatewayDiamond.t.sol index 196bf6f36..62c143412 100644 --- a/test/integration/GatewayDiamond.t.sol +++ b/test/integration/GatewayDiamond.t.sol @@ -4,9 +4,9 @@ pragma solidity 0.8.19; import "forge-std/Test.sol"; import "../../src/errors/IPCErrors.sol"; -import {NumberContractFacetSeven, NumberContractFacetEight} from "../helpers/NumberContract.sol"; +import {NumberContractFacetSeven} from "../helpers/NumberContractFacetSeven.sol"; +import {NumberContractFacetEight} from "../helpers/NumberContractFacetEight.sol"; import {EMPTY_BYTES, METHOD_SEND} from "../../src/constants/Constants.sol"; -import {Status} from "../../src/enums/Status.sol"; import {IERC165} from "../../src/interfaces/IERC165.sol"; import {IDiamond} from "../../src/interfaces/IDiamond.sol"; import {IDiamondLoupe} from "../../src/interfaces/IDiamondLoupe.sol"; @@ -23,13 +23,19 @@ import {FilAddress} from "fevmate/utils/FilAddress.sol"; import {GatewayDiamond, FunctionNotFound} from "../../src/GatewayDiamond.sol"; import {GatewayGetterFacet} from "../../src/gateway/GatewayGetterFacet.sol"; import {GatewayManagerFacet} from "../../src/gateway/GatewayManagerFacet.sol"; -import {GatewayRouterFacet} from "../../src/gateway/GatewayRouterFacet.sol"; + +import {CheckpointingFacet} from "../../src/gateway/router/CheckpointingFacet.sol"; +import {XnetMessagingFacet} from "../../src/gateway/router/XnetMessagingFacet.sol"; +import {TopDownFinalityFacet} from "../../src/gateway/router/TopDownFinalityFacet.sol"; +import {BottomUpRouterFacet} from "../../src/gateway/router/BottomUpRouterFacet.sol"; + import {ERR_GENERAL_CROSS_MSG_DISABLED} from "../../src/gateway/GatewayMessengerFacet.sol"; import {DiamondCutFacet} from "../../src/diamond/DiamondCutFacet.sol"; import {LibDiamond} from "../../src/lib/LibDiamond.sol"; import {MerkleTreeHelper} from "../helpers/MerkleTreeHelper.sol"; import {TestUtils} from "../helpers/TestUtils.sol"; import {IntegrationTestBase} from "../IntegrationTestBase.sol"; +import {SelectorLibrary} from "../helpers/SelectorLibrary.sol"; contract GatewayActorDiamondTest is Test, IntegrationTestBase { using SubnetIDHelper for SubnetID; @@ -44,8 +50,6 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { function testGatewayDiamond_Constructor() public view { require(gwGetter.totalSubnets() == 0, "unexpected totalSubnets"); require(gwGetter.bottomUpNonce() == 0, "unexpected bottomUpNonce"); - require(gwGetter.minStake() == DEFAULT_COLLATERAL_AMOUNT, "unexpected minStake"); - require(gwGetter.crossMsgFee() == DEFAULT_CROSS_MSG_FEE, "unexpected crossMsgFee"); require(gwGetter.bottomUpCheckPeriod() == DEFAULT_CHECKPOINT_PERIOD, "unexpected bottomUpCheckPeriod"); require( @@ -69,7 +73,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { } function testGatewayDiamond_LoupeFunction() public view { - require(gwLouper.facets().length == 6, "unexpected length"); + require(gwLouper.facets().length == 9, "unexpected length"); require(gwLouper.supportsInterface(type(IERC165).interfaceId) == true, "IERC165 not supported"); require(gwLouper.supportsInterface(type(IDiamondCut).interfaceId) == true, "IDiamondCut not supported"); require(gwLouper.supportsInterface(type(IDiamondLoupe).interfaceId) == true, "IDiamondLoupe not supported"); @@ -86,7 +90,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { DiamondCutFacet gwDiamondCutter = DiamondCutFacet(address(gatewayDiamond)); IDiamond.FacetCut[] memory gwDiamondCut = new IDiamond.FacetCut[](1); - bytes4[] memory ncGetterSelectors = TestUtils.generateSelectors(vm, "NumberContractFacetSeven"); + bytes4[] memory ncGetterSelectors = SelectorLibrary.resolveSelectors("NumberContractFacetSeven"); gwDiamondCut[0] = ( IDiamond.FacetCut({ @@ -105,7 +109,8 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { NumberContractFacetSeven gwNumberContract = NumberContractFacetSeven(address(gatewayDiamond)); assert(gwNumberContract.getNum() == 7); - ncGetterSelectors = TestUtils.generateSelectors(vm, "NumberContractFacetEight"); + ncGetterSelectors = SelectorLibrary.resolveSelectors("NumberContractFacetEight"); + gwDiamondCut[0] = ( IDiamond.FacetCut({ facetAddress: address(ncFacetB), @@ -150,13 +155,11 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { GatewayDiamond dep; GatewayManagerFacet depManager = new GatewayManagerFacet(); GatewayGetterFacet depGetter = new GatewayGetterFacet(); - GatewayRouterFacet depRouter = new GatewayRouterFacet(); GatewayDiamond.ConstructorParams memory constructorParams = GatewayDiamond.ConstructorParams({ networkName: SubnetID({root: ROOTNET_CHAINID, route: new address[](0)}), bottomUpCheckPeriod: checkpointPeriod, msgFee: DEFAULT_CROSS_MSG_FEE, - minCollateral: DEFAULT_COLLATERAL_AMOUNT, majorityPercentage: DEFAULT_MAJORITY_PERCENTAGE, genesisValidators: new Validator[](0), activeValidatorsLimit: 100 @@ -165,12 +168,10 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { dep = createGatewayDiamond(constructorParams); depGetter = GatewayGetterFacet(address(dep)); depManager = GatewayManagerFacet(address(dep)); - depRouter = GatewayRouterFacet(address(dep)); SubnetID memory networkName = depGetter.getNetworkName(); require(networkName.isRoot(), "unexpected networkName"); - require(depGetter.minStake() == DEFAULT_COLLATERAL_AMOUNT, "gw.minStake() == MIN_COLLATERAL_AMOUNT"); require(depGetter.bottomUpCheckPeriod() == checkpointPeriod, "gw.bottomUpCheckPeriod() == checkpointPeriod"); require( depGetter.majorityPercentage() == DEFAULT_MAJORITY_PERCENTAGE, @@ -188,29 +189,19 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { GatewayDiamond dep; GatewayManagerFacet depManager = new GatewayManagerFacet(); GatewayGetterFacet depGetter = new GatewayGetterFacet(); - GatewayRouterFacet depRouter = new GatewayRouterFacet(); GatewayDiamond.ConstructorParams memory constructorParams = GatewayDiamond.ConstructorParams({ networkName: SubnetID({root: ROOTNET_CHAINID, route: path}), bottomUpCheckPeriod: checkpointPeriod, msgFee: DEFAULT_CROSS_MSG_FEE, - minCollateral: DEFAULT_COLLATERAL_AMOUNT, majorityPercentage: 100, genesisValidators: new Validator[](0), activeValidatorsLimit: 100 }); - IDiamond.FacetCut[] memory diamondCut = new IDiamond.FacetCut[](3); + IDiamond.FacetCut[] memory diamondCut = new IDiamond.FacetCut[](2); diamondCut[0] = ( - IDiamond.FacetCut({ - facetAddress: address(depRouter), - action: IDiamond.FacetCutAction.Add, - functionSelectors: gwRouterSelectors - }) - ); - - diamondCut[1] = ( IDiamond.FacetCut({ facetAddress: address(depManager), action: IDiamond.FacetCutAction.Add, @@ -218,7 +209,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { }) ); - diamondCut[2] = ( + diamondCut[1] = ( IDiamond.FacetCut({ facetAddress: address(depGetter), action: IDiamond.FacetCutAction.Add, @@ -230,18 +221,16 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { depGetter = GatewayGetterFacet(address(dep)); depManager = GatewayManagerFacet(address(dep)); - depRouter = GatewayRouterFacet(address(dep)); SubnetID memory networkName = depGetter.getNetworkName(); require(networkName.isRoot() == false, "unexpected networkName"); - require(depGetter.minStake() == DEFAULT_COLLATERAL_AMOUNT, "unexpected minStake"); require(depGetter.bottomUpCheckPeriod() == checkpointPeriod, "unexpected bottomUpCheckPeriod"); require(depGetter.majorityPercentage() == 100, "unexpected majorityPercentage"); } function testGatewayDiamond_Register_Works_SingleSubnet(uint256 subnetCollateral) public { - vm.assume(subnetCollateral >= DEFAULT_COLLATERAL_AMOUNT && subnetCollateral < type(uint64).max); + vm.assume(subnetCollateral < type(uint64).max); address subnetAddress = vm.addr(100); vm.prank(subnetAddress); vm.deal(subnetAddress, subnetCollateral); @@ -257,10 +246,8 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { require(ok, "subnet not found"); - (SubnetID memory id, uint256 stake, , , , Status status) = getSubnet(subnetAddress); + (SubnetID memory id, uint256 stake, , , ) = getSubnet(subnetAddress); - require(targetSubnet.status == Status.Active, "unexpected status"); - require(targetSubnet.status == status, "unexpected status value"); require(targetSubnet.stake == stake, "unexpected stake"); require(targetSubnet.stake == subnetCollateral, "unexpected collateral"); require(id.equals(subnetId), "unexpected id"); @@ -292,7 +279,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { function testGatewayDiamond_AddStake_Works_SingleStaking(uint256 stakeAmount, uint256 registerAmount) public { address subnetAddress = vm.addr(100); - vm.assume(registerAmount >= DEFAULT_COLLATERAL_AMOUNT && registerAmount < type(uint64).max); + vm.assume(registerAmount < type(uint64).max); vm.assume(stakeAmount > 0 && stakeAmount < type(uint256).max - registerAmount); uint256 totalAmount = stakeAmount + registerAmount; @@ -303,7 +290,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { registerSubnet(registerAmount, subnetAddress); addStake(stakeAmount, subnetAddress); - (, uint256 totalStaked, , , , ) = getSubnet(subnetAddress); + (, uint256 totalStaked, , , ) = getSubnet(subnetAddress); require(totalStaked == totalAmount, "unexpected staked amount"); } @@ -319,16 +306,12 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { registerSubnet(registerAmount, subnetAddress); gwManager.releaseStake(registerAmount); - (, , , , , Status statusInactive) = getSubnet(subnetAddress); - require(statusInactive == Status.Inactive, "unexpected status"); - vm.deal(subnetAddress, stakeAmount); addStake(stakeAmount, subnetAddress); - (, uint256 staked, , , , Status statusActive) = getSubnet(subnetAddress); + (, uint256 staked, , , ) = getSubnet(subnetAddress); require(staked == stakeAmount, "unexpected amount"); - require(statusActive == Status.Active, "not active status"); } function testGatewayDiamond_AddStake_Works_NotEnoughFundsToReactivate() public { @@ -345,10 +328,9 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { vm.deal(subnetAddress, stakeAmount); addStake(stakeAmount, subnetAddress); - (, uint256 staked, , , , Status status) = getSubnet(subnetAddress); + (, uint256 staked, , , ) = getSubnet(subnetAddress); require(staked == stakeAmount, "unexpected amount"); - require(status == Status.Inactive, "unexpected inactive status"); } function testGatewayDiamond_AddStake_Works_MultipleStakings(uint8 numberOfStakes) public { @@ -370,7 +352,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { expectedStakedAmount += singleStakeAmount; } - (, uint256 totalStake, , , , ) = getSubnet(subnetAddress); + (, uint256 totalStake, , , ) = getSubnet(subnetAddress); require(totalStake == expectedStakedAmount, "unexpected stake"); } @@ -405,10 +387,9 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { gwManager.releaseStake(fullAmount); - (, uint256 stake, , , , Status status) = getSubnet(subnetAddress); + (, uint256 stake, , , ) = getSubnet(subnetAddress); require(stake == 0, "unexpected stake"); - require(status == Status.Inactive, "unexpected status"); require(subnetAddress.balance == fullAmount, "unexpected balance"); } @@ -420,9 +401,8 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { gwManager.releaseStake(DEFAULT_COLLATERAL_AMOUNT / 2); - (, uint256 stake, , , , Status status) = getSubnet(subnetAddress); + (, uint256 stake, , , ) = getSubnet(subnetAddress); require(stake == DEFAULT_COLLATERAL_AMOUNT / 2, "unexpected stake"); - require(status == Status.Inactive, "unexpected status"); } function testGatewayDiamond_ReleaseStake_Works_PartialAmount(uint256 partialAmount) public { @@ -441,10 +421,9 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { gwManager.releaseStake(partialAmount); - (, uint256 stake, , , , Status status) = getSubnet(subnetAddress); + (, uint256 stake, , , ) = getSubnet(subnetAddress); require(stake == registerAmount, "unexpected stake"); - require(status == Status.Active, "unexpected status"); require(subnetAddress.balance == partialAmount, "unexpected balance"); } @@ -490,10 +469,9 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { gwManager.releaseStake(10); - (, uint256 stake, , , , Status status) = getSubnet(subnetAddress); + (, uint256 stake, , , ) = getSubnet(subnetAddress); require(stake == DEFAULT_COLLATERAL_AMOUNT - 10, "unexpected stake"); - require(status == Status.Inactive, "unexpected status"); } function testGatewayDiamond_Kill_Works() public { @@ -508,15 +486,12 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { gwManager.kill(); - (SubnetID memory id, uint256 stake, uint256 nonce, , uint256 circSupply, Status status) = getSubnet( - subnetAddress - ); + (SubnetID memory id, uint256 stake, uint256 nonce, , uint256 circSupply) = getSubnet(subnetAddress); require(id.toHash() == SubnetID(0, new address[](0)).toHash(), "unexpected ID hash"); require(stake == 0, "unexpected stake"); require(nonce == 0, "unexpected nonce"); require(circSupply == 0, "unexpected circSupply"); - require(status == Status.Unset, "unexpected status"); require(gwGetter.totalSubnets() == 0, "unexpected total subnets"); require(subnetAddress.balance == DEFAULT_COLLATERAL_AMOUNT, "unexpected balance"); } @@ -653,7 +628,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { address funderAddress = address(101); - (SubnetID memory subnetId, , , , , ) = getSubnet(address(saManager)); + (SubnetID memory subnetId, , , , ) = getSubnet(address(saManager)); vm.expectRevert(InvalidCrossMsgValue.selector); gwManager.fund{value: 0}(subnetId, FvmAddressHelper.from(funderAddress)); @@ -688,7 +663,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { vm.deal(funderAddress, amount); - (SubnetID memory subnetId, , , , , ) = getSubnet(address(saManager)); + (SubnetID memory subnetId, , , , ) = getSubnet(address(saManager)); vm.prank(funderAddress); gwManager.fund{value: amount}(subnetId, FvmAddressHelper.from(msg.sender)); } @@ -759,7 +734,6 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { networkName: SubnetID({root: ROOTNET_CHAINID, route: path}), bottomUpCheckPeriod: DEFAULT_CHECKPOINT_PERIOD, msgFee: DEFAULT_CROSS_MSG_FEE, - minCollateral: DEFAULT_COLLATERAL_AMOUNT, majorityPercentage: DEFAULT_MAJORITY_PERCENTAGE, genesisValidators: new Validator[](0), activeValidatorsLimit: 100 @@ -767,7 +741,11 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { gatewayDiamond = createGatewayDiamond(constructorParams); gwGetter = GatewayGetterFacet(address(gatewayDiamond)); gwManager = GatewayManagerFacet(address(gatewayDiamond)); - gwRouter = GatewayRouterFacet(address(gatewayDiamond)); + + gwCheckpointingFacet = CheckpointingFacet(address(gatewayDiamond)); + gwXnetMessagingFacet = XnetMessagingFacet(address(gatewayDiamond)); + gwTopDownFinalityFacet = TopDownFinalityFacet(address(gatewayDiamond)); + gwBottomUpRouterFacet = BottomUpRouterFacet(address(gatewayDiamond)); address callerAddress = address(100); @@ -791,7 +769,6 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { networkName: SubnetID({root: ROOTNET_CHAINID, route: path}), bottomUpCheckPeriod: DEFAULT_CHECKPOINT_PERIOD, msgFee: crossMsgFee, - minCollateral: DEFAULT_COLLATERAL_AMOUNT, majorityPercentage: DEFAULT_MAJORITY_PERCENTAGE, genesisValidators: new Validator[](0), activeValidatorsLimit: 100 @@ -799,7 +776,10 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { gatewayDiamond = createGatewayDiamond(constructorParams); gwGetter = GatewayGetterFacet(address(gatewayDiamond)); gwManager = GatewayManagerFacet(address(gatewayDiamond)); - gwRouter = GatewayRouterFacet(address(gatewayDiamond)); + gwCheckpointingFacet = CheckpointingFacet(address(gatewayDiamond)); + gwXnetMessagingFacet = XnetMessagingFacet(address(gatewayDiamond)); + gwTopDownFinalityFacet = TopDownFinalityFacet(address(gatewayDiamond)); + gwBottomUpRouterFacet = BottomUpRouterFacet(address(gatewayDiamond)); vm.roll(0); vm.warp(0); @@ -822,7 +802,6 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { networkName: SubnetID({root: ROOTNET_CHAINID, route: path}), bottomUpCheckPeriod: DEFAULT_CHECKPOINT_PERIOD, msgFee: crossMsgFee, - minCollateral: DEFAULT_COLLATERAL_AMOUNT, majorityPercentage: DEFAULT_MAJORITY_PERCENTAGE, genesisValidators: new Validator[](0), activeValidatorsLimit: 100 @@ -830,7 +809,10 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { gatewayDiamond = createGatewayDiamond(constructorParams); gwGetter = GatewayGetterFacet(address(gatewayDiamond)); gwManager = GatewayManagerFacet(address(gatewayDiamond)); - gwRouter = GatewayRouterFacet(address(gatewayDiamond)); + gwCheckpointingFacet = CheckpointingFacet(address(gatewayDiamond)); + gwXnetMessagingFacet = XnetMessagingFacet(address(gatewayDiamond)); + gwTopDownFinalityFacet = TopDownFinalityFacet(address(gatewayDiamond)); + gwBottomUpRouterFacet = BottomUpRouterFacet(address(gatewayDiamond)); address callerAddress = address(100); @@ -854,7 +836,6 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { networkName: SubnetID({root: ROOTNET_CHAINID, route: path}), bottomUpCheckPeriod: DEFAULT_CHECKPOINT_PERIOD, msgFee: crossMsgFee, - minCollateral: DEFAULT_COLLATERAL_AMOUNT, majorityPercentage: DEFAULT_MAJORITY_PERCENTAGE, genesisValidators: new Validator[](0), activeValidatorsLimit: 100 @@ -862,7 +843,10 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { gatewayDiamond = createGatewayDiamond(constructorParams); gwGetter = GatewayGetterFacet(address(gatewayDiamond)); gwManager = GatewayManagerFacet(address(gatewayDiamond)); - gwRouter = GatewayRouterFacet(address(gatewayDiamond)); + gwCheckpointingFacet = CheckpointingFacet(address(gatewayDiamond)); + gwXnetMessagingFacet = XnetMessagingFacet(address(gatewayDiamond)); + gwTopDownFinalityFacet = TopDownFinalityFacet(address(gatewayDiamond)); + gwBottomUpRouterFacet = BottomUpRouterFacet(address(gatewayDiamond)); address callerAddress = address(100); @@ -1095,7 +1079,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { ParentFinality memory finality = ParentFinality({height: block.number, blockHash: bytes32(0)}); - gwRouter.commitParentFinality(finality); + gwTopDownFinalityFacet.commitParentFinality(finality); } function testGatewayDiamond_applyFinality_works() public { @@ -1116,8 +1100,8 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.storeValidatorChanges(changes); - uint64 configNumber = gwRouter.applyFinalityChanges(); + gwTopDownFinalityFacet.storeValidatorChanges(changes); + uint64 configNumber = gwTopDownFinalityFacet.applyFinalityChanges(); require(configNumber == 2, "wrong config number after applying finality"); require(gwGetter.getCurrentMembership().validators.length == 2, "current membership should be 2"); require(gwGetter.getCurrentConfigurationNumber() == 2, "unexpected config number"); @@ -1135,8 +1119,8 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.storeValidatorChanges(changes); - configNumber = gwRouter.applyFinalityChanges(); + gwTopDownFinalityFacet.storeValidatorChanges(changes); + configNumber = gwTopDownFinalityFacet.applyFinalityChanges(); require(configNumber == 3, "wrong config number after applying finality"); require(gwGetter.getLastConfigurationNumber() == 2, "apply result: unexpected last config number"); require(gwGetter.getCurrentConfigurationNumber() == 3, "apply result: unexpected config number"); @@ -1144,7 +1128,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { require(gwGetter.getLastMembership().validators.length == 2, "last membership should be 2"); // no changes - configNumber = gwRouter.applyFinalityChanges(); + configNumber = gwTopDownFinalityFacet.applyFinalityChanges(); require(configNumber == 0, "wrong config number after applying finality"); require(gwGetter.getLastConfigurationNumber() == 2, "no changes: unexpected last config number"); require(gwGetter.getCurrentConfigurationNumber() == 3, "no changes: unexpected config number"); @@ -1166,7 +1150,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { ParentFinality memory finality = ParentFinality({height: block.number, blockHash: bytes32(0)}); - gwRouter.commitParentFinality(finality); + gwTopDownFinalityFacet.commitParentFinality(finality); ParentFinality memory committedFinality = gwGetter.getParentFinality(block.number); require(committedFinality.height == finality.height, "heights are not equal"); @@ -1198,18 +1182,18 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // failed to create a checkpoint with zero membership weight vm.startPrank(FilAddress.SYSTEM_ACTOR); vm.expectRevert(ZeroMembershipWeight.selector); - gwRouter.createBottomUpCheckpoint(checkpoint, membershipRoot, 0); + gwCheckpointingFacet.createBottomUpCheckpoint(checkpoint, membershipRoot, 0); vm.stopPrank(); // failed create a processed checkpoint vm.startPrank(FilAddress.SYSTEM_ACTOR); vm.expectRevert(QuorumAlreadyProcessed.selector); - gwRouter.createBottomUpCheckpoint(old, membershipRoot, weights[0] + weights[1] + weights[2]); + gwCheckpointingFacet.createBottomUpCheckpoint(old, membershipRoot, weights[0] + weights[1] + weights[2]); vm.stopPrank(); // create a checkpoint vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.createBottomUpCheckpoint(checkpoint, membershipRoot, weights[0] + weights[1] + weights[2]); + gwCheckpointingFacet.createBottomUpCheckpoint(checkpoint, membershipRoot, weights[0] + weights[1] + weights[2]); vm.stopPrank(); BottomUpCheckpoint memory recv = gwGetter.bottomUpCheckpoint(gwGetter.bottomUpCheckPeriod()); @@ -1227,7 +1211,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { vm.startPrank(FilAddress.SYSTEM_ACTOR); vm.expectRevert(CheckpointAlreadyExists.selector); - gwRouter.createBottomUpCheckpoint(checkpoint, membershipRoot, weights[0] + weights[1] + weights[2]); + gwCheckpointingFacet.createBottomUpCheckpoint(checkpoint, membershipRoot, weights[0] + weights[1] + weights[2]); vm.stopPrank(); // failed to create a checkpoint with the height not multiple to checkpoint period @@ -1240,7 +1224,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { vm.startPrank(FilAddress.SYSTEM_ACTOR); vm.expectRevert(InvalidCheckpointEpoch.selector); - gwRouter.createBottomUpCheckpoint(checkpoint, membershipRoot, weights[0] + weights[1] + weights[2]); + gwCheckpointingFacet.createBottomUpCheckpoint(checkpoint, membershipRoot, weights[0] + weights[1] + weights[2]); vm.stopPrank(); (bool ok, uint256 e, ) = gwGetter.getCurrentBottomUpCheckpoint(); @@ -1257,7 +1241,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { }); vm.expectRevert(InvalidCheckpointSource.selector); - gwRouter.commitCheckpoint(checkpoint); + gwCheckpointingFacet.commitCheckpoint(checkpoint); } function testGatewayDiamond_commitBottomUpCheckpoint_Works_NoMessages() public { @@ -1267,7 +1251,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { registerSubnet(DEFAULT_COLLATERAL_AMOUNT, caller); vm.stopPrank(); - (SubnetID memory subnetId, , , , , ) = getSubnet(address(caller)); + (SubnetID memory subnetId, , , , ) = getSubnet(address(caller)); BottomUpCheckpoint memory checkpoint = BottomUpCheckpoint({ subnetID: subnetId, @@ -1277,7 +1261,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { }); vm.prank(caller); - gwRouter.commitCheckpoint(checkpoint); + gwCheckpointingFacet.commitCheckpoint(checkpoint); } function testGatewayDiamond_listIncompleteCheckpoints() public { @@ -1301,8 +1285,16 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // create a checkpoint vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.createBottomUpCheckpoint(checkpoint1, membershipRoot, weights[0] + weights[1] + weights[2]); - gwRouter.createBottomUpCheckpoint(checkpoint2, membershipRoot, weights[0] + weights[1] + weights[2]); + gwCheckpointingFacet.createBottomUpCheckpoint( + checkpoint1, + membershipRoot, + weights[0] + weights[1] + weights[2] + ); + gwCheckpointingFacet.createBottomUpCheckpoint( + checkpoint2, + membershipRoot, + weights[0] + weights[1] + weights[2] + ); vm.stopPrank(); uint256[] memory heights = gwGetter.getIncompleteCheckpointHeights(); @@ -1348,7 +1340,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // create a checkpoint vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.createBottomUpCheckpoint(checkpoint, membershipRoot, weights[0] + weights[1] + weights[2]); + gwCheckpointingFacet.createBottomUpCheckpoint(checkpoint, membershipRoot, weights[0] + weights[1] + weights[2]); vm.stopPrank(); // adds signatures @@ -1363,7 +1355,12 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { signature = abi.encodePacked(r, s, v); vm.startPrank(vm.addr(privKeys[i])); - gwRouter.addCheckpointSignature(checkpoint.blockHeight, membershipProofs[i], weights[i], signature); + gwCheckpointingFacet.addCheckpointSignature( + checkpoint.blockHeight, + membershipProofs[i], + weights[i], + signature + ); vm.stopPrank(); } @@ -1399,7 +1396,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // create a checkpoint vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.createBottomUpCheckpoint(checkpoint, membershipRoot, weights[0] + weights[1] + weights[2]); + gwCheckpointingFacet.createBottomUpCheckpoint(checkpoint, membershipRoot, weights[0] + weights[1] + weights[2]); vm.stopPrank(); // adds signatures @@ -1414,7 +1411,12 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { signature = abi.encodePacked(r, s, v); vm.startPrank(vm.addr(privKeys[i])); - gwRouter.addCheckpointSignature(checkpoint.blockHeight, membershipProofs[i], weights[i], signature); + gwCheckpointingFacet.addCheckpointSignature( + checkpoint.blockHeight, + membershipProofs[i], + weights[i], + signature + ); vm.stopPrank(); } @@ -1428,7 +1430,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { signature = abi.encodePacked(r, s, v); vm.startPrank(vm.addr(privKeys[2])); - gwRouter.addCheckpointSignature(checkpoint.blockHeight, membershipProofs[2], weights[2], signature); + gwCheckpointingFacet.addCheckpointSignature(checkpoint.blockHeight, membershipProofs[2], weights[2], signature); vm.stopPrank(); info = gwGetter.getCheckpointInfo(checkpoint.blockHeight); @@ -1443,7 +1445,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { signature = abi.encodePacked(r, s, v); vm.startPrank(vm.addr(privKeys[3])); - gwRouter.addCheckpointSignature(checkpoint.blockHeight, membershipProofs[3], weights[3], signature); + gwCheckpointingFacet.addCheckpointSignature(checkpoint.blockHeight, membershipProofs[3], weights[3], signature); vm.stopPrank(); } @@ -1462,7 +1464,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // create a checkpoint vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.createBottomUpCheckpoint(checkpoint, membershipRoot, 10); + gwCheckpointingFacet.createBottomUpCheckpoint(checkpoint, membershipRoot, 10); vm.stopPrank(); uint8 v; @@ -1476,7 +1478,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { uint256 h = gwGetter.bottomUpCheckPeriod(); vm.startPrank(vm.addr(privKeys[1])); vm.expectRevert(abi.encodeWithSelector(NotAuthorized.selector, vm.addr(privKeys[0]))); - gwRouter.addCheckpointSignature(h, membershipProofs[2], weights[2], signature); + gwCheckpointingFacet.addCheckpointSignature(h, membershipProofs[2], weights[2], signature); vm.stopPrank(); } @@ -1495,7 +1497,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // create a checkpoint vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.createBottomUpCheckpoint(checkpoint, membershipRoot, 10); + gwCheckpointingFacet.createBottomUpCheckpoint(checkpoint, membershipRoot, 10); vm.stopPrank(); uint8 v; @@ -1511,14 +1513,14 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // send incorrect signature vm.expectRevert(InvalidSignature.selector); - gwRouter.addCheckpointSignature(h, membershipProofs[0], weights[0], new bytes(0)); + gwCheckpointingFacet.addCheckpointSignature(h, membershipProofs[0], weights[0], new bytes(0)); // send correct signature - gwRouter.addCheckpointSignature(h, membershipProofs[0], weights[0], signature); + gwCheckpointingFacet.addCheckpointSignature(h, membershipProofs[0], weights[0], signature); // replay the previous signature vm.expectRevert(SignatureReplay.selector); - gwRouter.addCheckpointSignature(h, membershipProofs[0], weights[0], signature); + gwCheckpointingFacet.addCheckpointSignature(h, membershipProofs[0], weights[0], signature); vm.stopPrank(); } @@ -1538,7 +1540,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // create a checkpoint vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.createBottomUpCheckpoint(checkpoint, membershipRoot, 10); + gwCheckpointingFacet.createBottomUpCheckpoint(checkpoint, membershipRoot, 10); vm.stopPrank(); uint8 v; @@ -1553,11 +1555,11 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // send correct signature for incorrect height vm.expectRevert(QuorumAlreadyProcessed.selector); - gwRouter.addCheckpointSignature(0, membershipProofs[0], weights[0], signature); + gwCheckpointingFacet.addCheckpointSignature(0, membershipProofs[0], weights[0], signature); // send correct signature for incorrect height vm.expectRevert(CheckpointNotCreated.selector); - gwRouter.addCheckpointSignature(100, membershipProofs[0], weights[0], signature); + gwCheckpointingFacet.addCheckpointSignature(100, membershipProofs[0], weights[0], signature); vm.stopPrank(); } @@ -1583,7 +1585,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { nextConfigurationNumber: 1 }); - gwRouter.createBottomUpCheckpoint(checkpoint, membershipRoot, 10); + gwCheckpointingFacet.createBottomUpCheckpoint(checkpoint, membershipRoot, 10); } vm.stopPrank(); @@ -1594,7 +1596,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { require(heights.length == n, "heights.len is not n"); vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.pruneBottomUpCheckpoints(4); + gwCheckpointingFacet.pruneBottomUpCheckpoints(4); vm.stopPrank(); index = gwGetter.getCheckpointRetentionHeight(); @@ -1624,18 +1626,18 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // failed to create a batch with zero membership weight vm.startPrank(FilAddress.SYSTEM_ACTOR); vm.expectRevert(ZeroMembershipWeight.selector); - gwRouter.createBottomUpMsgBatch(batch, membershipRoot, 0); + gwBottomUpRouterFacet.createBottomUpMsgBatch(batch, membershipRoot, 0); vm.stopPrank(); // failed create a processed batch vm.startPrank(FilAddress.SYSTEM_ACTOR); vm.expectRevert(QuorumAlreadyProcessed.selector); - gwRouter.createBottomUpMsgBatch(old, membershipRoot, weights[0] + weights[1] + weights[2]); + gwBottomUpRouterFacet.createBottomUpMsgBatch(old, membershipRoot, weights[0] + weights[1] + weights[2]); vm.stopPrank(); // create a batch that hasn't been fully filled (trigger at the batch period). vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.createBottomUpMsgBatch(batch, membershipRoot, weights[0] + weights[1] + weights[2]); + gwBottomUpRouterFacet.createBottomUpMsgBatch(batch, membershipRoot, weights[0] + weights[1] + weights[2]); vm.stopPrank(); BottomUpMsgBatch memory recv = gwGetter.bottomUpMsgBatch(gwGetter.bottomUpMsgBatchPeriod()); @@ -1644,7 +1646,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // failed to create a batch with the same height vm.startPrank(FilAddress.SYSTEM_ACTOR); vm.expectRevert(BatchAlreadyExists.selector); - gwRouter.createBottomUpMsgBatch(batch, membershipRoot, weights[0] + weights[1] + weights[2]); + gwBottomUpRouterFacet.createBottomUpMsgBatch(batch, membershipRoot, weights[0] + weights[1] + weights[2]); vm.stopPrank(); // failed to create a batch with the height not multiple of the batch period @@ -1657,7 +1659,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { vm.startPrank(FilAddress.SYSTEM_ACTOR); vm.expectRevert(InvalidBatchEpoch.selector); - gwRouter.createBottomUpMsgBatch(batch, membershipRoot, weights[0] + weights[1] + weights[2]); + gwBottomUpRouterFacet.createBottomUpMsgBatch(batch, membershipRoot, weights[0] + weights[1] + weights[2]); vm.stopPrank(); BottomUpMsgBatch memory b = gwGetter.bottomUpMsgBatch(2 * d); @@ -1668,7 +1670,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { vm.startPrank(FilAddress.SYSTEM_ACTOR); vm.expectRevert(BatchWithNoMessages.selector); - gwRouter.createBottomUpMsgBatch(batch, membershipRoot, weights[0] + weights[1] + weights[2]); + gwBottomUpRouterFacet.createBottomUpMsgBatch(batch, membershipRoot, weights[0] + weights[1] + weights[2]); vm.stopPrank(); // failed to create a batch with too many messages @@ -1680,7 +1682,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { vm.startPrank(FilAddress.SYSTEM_ACTOR); vm.expectRevert(MaxMsgsPerBatchExceeded.selector); - gwRouter.createBottomUpMsgBatch(batch, membershipRoot, weights[0] + weights[1] + weights[2]); + gwBottomUpRouterFacet.createBottomUpMsgBatch(batch, membershipRoot, weights[0] + weights[1] + weights[2]); vm.stopPrank(); } @@ -1692,7 +1694,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { }); vm.expectRevert(InvalidBatchSource.selector); - gwRouter.execBottomUpMsgBatch(batch); + gwBottomUpRouterFacet.execBottomUpMsgBatch(batch); } function testGatewayDiamond_commitCheckpoint_Fails_NoMessages() public { @@ -1702,7 +1704,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { registerSubnet(DEFAULT_COLLATERAL_AMOUNT, caller); vm.stopPrank(); - (SubnetID memory subnetId, , , , , ) = getSubnet(address(caller)); + (SubnetID memory subnetId, , , , ) = getSubnet(address(caller)); BottomUpMsgBatch memory batch = BottomUpMsgBatch({ subnetID: subnetId, @@ -1712,7 +1714,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { vm.prank(caller); vm.expectRevert(BatchWithNoMessages.selector); - gwRouter.execBottomUpMsgBatch(batch); + gwBottomUpRouterFacet.execBottomUpMsgBatch(batch); } function testGatewayDiamond_listIncompleteMsgBatches() public { @@ -1736,8 +1738,8 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // create a batch vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.createBottomUpMsgBatch(batch1, membershipRoot, weights[0] + weights[1] + weights[2]); - gwRouter.createBottomUpMsgBatch(batch2, membershipRoot, weights[0] + weights[1] + weights[2]); + gwBottomUpRouterFacet.createBottomUpMsgBatch(batch1, membershipRoot, weights[0] + weights[1] + weights[2]); + gwBottomUpRouterFacet.createBottomUpMsgBatch(batch2, membershipRoot, weights[0] + weights[1] + weights[2]); vm.stopPrank(); uint256[] memory heights = gwGetter.getIncompleteMsgBatchHeights(); @@ -1782,7 +1784,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // create a batch vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.createBottomUpMsgBatch(batch, membershipRoot, weights[0] + weights[1] + weights[2]); + gwBottomUpRouterFacet.createBottomUpMsgBatch(batch, membershipRoot, weights[0] + weights[1] + weights[2]); vm.stopPrank(); // adds signatures @@ -1796,7 +1798,12 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { signature = abi.encodePacked(r, s, v); vm.startPrank(vm.addr(privKeys[i])); - gwRouter.addBottomUpMsgBatchSignature(batch.blockHeight, membershipProofs[i], weights[i], signature); + gwBottomUpRouterFacet.addBottomUpMsgBatchSignature( + batch.blockHeight, + membershipProofs[i], + weights[i], + signature + ); vm.stopPrank(); } @@ -1833,7 +1840,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // create a batch vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.createBottomUpMsgBatch(batch, membershipRoot, weights[0] + weights[1] + weights[2]); + gwBottomUpRouterFacet.createBottomUpMsgBatch(batch, membershipRoot, weights[0] + weights[1] + weights[2]); vm.stopPrank(); // adds signatures @@ -1848,7 +1855,12 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { signature = abi.encodePacked(r, s, v); vm.startPrank(vm.addr(privKeys[i])); - gwRouter.addBottomUpMsgBatchSignature(batch.blockHeight, membershipProofs[i], weights[i], signature); + gwBottomUpRouterFacet.addBottomUpMsgBatchSignature( + batch.blockHeight, + membershipProofs[i], + weights[i], + signature + ); vm.stopPrank(); } @@ -1862,7 +1874,12 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { signature = abi.encodePacked(r, s, v); vm.startPrank(vm.addr(privKeys[2])); - gwRouter.addBottomUpMsgBatchSignature(batch.blockHeight, membershipProofs[2], weights[2], signature); + gwBottomUpRouterFacet.addBottomUpMsgBatchSignature( + batch.blockHeight, + membershipProofs[2], + weights[2], + signature + ); vm.stopPrank(); info = gwGetter.getBottomUpMsgBatchInfo(batch.blockHeight); @@ -1877,7 +1894,12 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { signature = abi.encodePacked(r, s, v); vm.startPrank(vm.addr(privKeys[3])); - gwRouter.addBottomUpMsgBatchSignature(batch.blockHeight, membershipProofs[3], weights[3], signature); + gwBottomUpRouterFacet.addBottomUpMsgBatchSignature( + batch.blockHeight, + membershipProofs[3], + weights[3], + signature + ); vm.stopPrank(); } @@ -1897,7 +1919,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // create a batch vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.createBottomUpMsgBatch(batch, membershipRoot, 10); + gwBottomUpRouterFacet.createBottomUpMsgBatch(batch, membershipRoot, 10); vm.stopPrank(); uint8 v; @@ -1910,7 +1932,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { vm.startPrank(vm.addr(privKeys[1])); vm.expectRevert(abi.encodeWithSelector(NotAuthorized.selector, vm.addr(privKeys[0]))); - gwRouter.addBottomUpMsgBatchSignature(d, membershipProofs[2], weights[2], signature); + gwBottomUpRouterFacet.addBottomUpMsgBatchSignature(d, membershipProofs[2], weights[2], signature); vm.stopPrank(); } @@ -1930,7 +1952,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // create a batch vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.createBottomUpMsgBatch(batch, membershipRoot, 10); + gwBottomUpRouterFacet.createBottomUpMsgBatch(batch, membershipRoot, 10); vm.stopPrank(); uint8 v; @@ -1945,14 +1967,14 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // send incorrect signature vm.expectRevert(InvalidSignature.selector); - gwRouter.addBottomUpMsgBatchSignature(d, membershipProofs[0], weights[0], new bytes(0)); + gwBottomUpRouterFacet.addBottomUpMsgBatchSignature(d, membershipProofs[0], weights[0], new bytes(0)); // send correct signature - gwRouter.addBottomUpMsgBatchSignature(d, membershipProofs[0], weights[0], signature); + gwBottomUpRouterFacet.addBottomUpMsgBatchSignature(d, membershipProofs[0], weights[0], signature); // replay the previous signature vm.expectRevert(SignatureReplay.selector); - gwRouter.addBottomUpMsgBatchSignature(d, membershipProofs[0], weights[0], signature); + gwBottomUpRouterFacet.addBottomUpMsgBatchSignature(d, membershipProofs[0], weights[0], signature); vm.stopPrank(); } @@ -1973,7 +1995,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // create a batch vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.createBottomUpMsgBatch(batch, membershipRoot, 10); + gwBottomUpRouterFacet.createBottomUpMsgBatch(batch, membershipRoot, 10); vm.stopPrank(); uint8 v; @@ -1988,13 +2010,13 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { // send correct signature for incorrect height vm.expectRevert(QuorumAlreadyProcessed.selector); - gwRouter.addBottomUpMsgBatchSignature(0, membershipProofs[0], weights[0], signature); + gwBottomUpRouterFacet.addBottomUpMsgBatchSignature(0, membershipProofs[0], weights[0], signature); // send correct signature for incorrect height vm.expectRevert(BatchNotCreated.selector); - gwRouter.addBottomUpMsgBatchSignature(d + 1, membershipProofs[0], weights[0], signature); + gwBottomUpRouterFacet.addBottomUpMsgBatchSignature(d + 1, membershipProofs[0], weights[0], signature); - gwRouter.addBottomUpMsgBatchSignature(d, membershipProofs[0], weights[0], signature); + gwBottomUpRouterFacet.addBottomUpMsgBatchSignature(d, membershipProofs[0], weights[0], signature); vm.stopPrank(); } @@ -2021,7 +2043,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { msgs: newListOfMessages(10) }); - gwRouter.createBottomUpMsgBatch(batch, membershipRoot, 10); + gwBottomUpRouterFacet.createBottomUpMsgBatch(batch, membershipRoot, 10); } vm.stopPrank(); @@ -2032,7 +2054,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { require(heights.length == n, "heights.len is not n"); vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.pruneBottomUpMsgBatches(4); + gwBottomUpRouterFacet.pruneBottomUpMsgBatches(4); vm.stopPrank(); index = gwGetter.getBottomUpMsgRetentionHeight(); @@ -2051,7 +2073,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { uint256 amount = 1; - (SubnetID memory subnetId, , , , , ) = getSubnet(address(caller)); + (SubnetID memory subnetId, , , , ) = getSubnet(address(caller)); (bool exist, Subnet memory subnetInfo) = gwGetter.getSubnet(subnetId); require(exist, "subnet does not exist"); require(subnetInfo.circSupply == 0, "unexpected initial circulation supply"); @@ -2081,7 +2103,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { BottomUpMsgBatch memory batch = BottomUpMsgBatch({subnetID: subnetId, blockHeight: d, msgs: msgs}); vm.prank(caller); - gwRouter.execBottomUpMsgBatch(batch); + gwBottomUpRouterFacet.execBottomUpMsgBatch(batch); (, subnetInfo) = gwGetter.getSubnet(subnetId); require( @@ -2100,7 +2122,7 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { uint256 amount = 1; - (SubnetID memory subnetId, , , , , ) = getSubnet(address(caller)); + (SubnetID memory subnetId, , , , ) = getSubnet(address(caller)); (bool exist, Subnet memory subnetInfo) = gwGetter.getSubnet(subnetId); require(exist, "subnet does not exist"); require(subnetInfo.circSupply == 0, "unexpected initial circulation supply"); @@ -2133,14 +2155,14 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { vm.prank(caller); vm.expectRevert(MaxMsgsPerBatchExceeded.selector); - gwRouter.execBottomUpMsgBatch(batch); + gwBottomUpRouterFacet.execBottomUpMsgBatch(batch); // fail with no messages batch = BottomUpMsgBatch({subnetID: subnetId, blockHeight: d, msgs: new CrossMsg[](0)}); vm.prank(caller); vm.expectRevert(BatchWithNoMessages.selector); - gwRouter.execBottomUpMsgBatch(batch); + gwBottomUpRouterFacet.execBottomUpMsgBatch(batch); } function testGatewayDiamond_PopulateBottomUpMsgBatch_Works() public { @@ -2155,7 +2177,6 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { networkName: SubnetID({root: ROOTNET_CHAINID, route: path}), bottomUpCheckPeriod: DEFAULT_CHECKPOINT_PERIOD, msgFee: DEFAULT_CROSS_MSG_FEE, - minCollateral: DEFAULT_COLLATERAL_AMOUNT, majorityPercentage: DEFAULT_MAJORITY_PERCENTAGE, genesisValidators: new Validator[](0), activeValidatorsLimit: 100 @@ -2163,7 +2184,10 @@ contract GatewayActorDiamondTest is Test, IntegrationTestBase { gatewayDiamond = createGatewayDiamond(constructorParams); gwGetter = GatewayGetterFacet(address(gatewayDiamond)); gwManager = GatewayManagerFacet(address(gatewayDiamond)); - gwRouter = GatewayRouterFacet(address(gatewayDiamond)); + gwCheckpointingFacet = CheckpointingFacet(address(gatewayDiamond)); + gwXnetMessagingFacet = XnetMessagingFacet(address(gatewayDiamond)); + gwTopDownFinalityFacet = TopDownFinalityFacet(address(gatewayDiamond)); + gwBottomUpRouterFacet = BottomUpRouterFacet(address(gatewayDiamond)); uint256 d = gwGetter.bottomUpMsgBatchPeriod(); diff --git a/test/integration/GatewayDiamondToken.t.sol b/test/integration/GatewayDiamondToken.t.sol index d4d867d3b..067a2ce5e 100644 --- a/test/integration/GatewayDiamondToken.t.sol +++ b/test/integration/GatewayDiamondToken.t.sol @@ -4,9 +4,9 @@ pragma solidity 0.8.19; import "forge-std/Test.sol"; import "../../src/errors/IPCErrors.sol"; -import {NumberContractFacetSeven, NumberContractFacetEight} from "../helpers/NumberContract.sol"; +import {NumberContractFacetSeven} from "../helpers/NumberContractFacetSeven.sol"; +import {NumberContractFacetEight} from "../helpers/NumberContractFacetEight.sol"; import {EMPTY_BYTES, METHOD_SEND, EMPTY_HASH} from "../../src/constants/Constants.sol"; -import {Status} from "../../src/enums/Status.sol"; import {IERC165} from "../../src/interfaces/IERC165.sol"; import {IDiamond} from "../../src/interfaces/IDiamond.sol"; import {IDiamondLoupe} from "../../src/interfaces/IDiamondLoupe.sol"; @@ -24,7 +24,6 @@ import {GatewayDiamond, FunctionNotFound} from "../../src/GatewayDiamond.sol"; import {SubnetActorDiamond} from "../../src/SubnetActorDiamond.sol"; import {GatewayGetterFacet} from "../../src/gateway/GatewayGetterFacet.sol"; import {GatewayManagerFacet} from "../../src/gateway/GatewayManagerFacet.sol"; -import {GatewayRouterFacet} from "../../src/gateway/GatewayRouterFacet.sol"; import {DiamondCutFacet} from "../../src/diamond/DiamondCutFacet.sol"; import {LibDiamond} from "../../src/lib/LibDiamond.sol"; import {LibGateway} from "../../src/lib/LibGateway.sol"; @@ -36,7 +35,6 @@ import {SubnetActorDiamond} from "../../src/SubnetActorDiamond.sol"; import {GatewayGetterFacet} from "../../src/gateway/GatewayGetterFacet.sol"; import {GatewayMessengerFacet} from "../../src/gateway/GatewayMessengerFacet.sol"; import {GatewayManagerFacet} from "../../src/gateway/GatewayManagerFacet.sol"; -import {GatewayRouterFacet} from "../../src/gateway/GatewayRouterFacet.sol"; import {SubnetActorManagerFacet} from "../../src/subnet/SubnetActorManagerFacet.sol"; import {SubnetActorGetterFacet} from "../../src/subnet/SubnetActorGetterFacet.sol"; import {DiamondLoupeFacet} from "../../src/diamond/DiamondLoupeFacet.sol"; @@ -68,7 +66,7 @@ contract GatewayDiamondTokenTest is Test, IntegrationTestBase { address caller = vm.addr(1); vm.deal(caller, 100); - (SubnetID memory subnetId, , , , , ) = getSubnet(address(saManager)); + (SubnetID memory subnetId, , , , ) = getSubnet(address(saManager)); vm.prank(caller); vm.expectRevert(SupplySourceHelper.UnexpectedSupplySource.selector); @@ -182,7 +180,7 @@ contract GatewayDiamondTokenTest is Test, IntegrationTestBase { vm.prank(address(saDiamond)); vm.expectEmit(true, true, true, true, address(token)); emit Transfer(address(gatewayDiamond), recipient, value); - gwRouter.execBottomUpMsgBatch(batch); + gwBottomUpRouterFacet.execBottomUpMsgBatch(batch); // Assert post-conditions. (, Subnet memory subnetAfter) = gwGetter.getSubnet(subnet.id); @@ -197,7 +195,7 @@ contract GatewayDiamondTokenTest is Test, IntegrationTestBase { // This reverts. vm.prank(address(saDiamond)); vm.expectRevert(); - gwRouter.execBottomUpMsgBatch(batch); + gwBottomUpRouterFacet.execBottomUpMsgBatch(batch); } function test_childToParentCall() public { @@ -231,7 +229,7 @@ contract GatewayDiamondTokenTest is Test, IntegrationTestBase { vm.prank(address(saDiamond)); vm.etch(recipient, bytes("foo")); // set some code at the destination address to trick Solidity into calling the contract. vm.expectCall(recipient, bytes.concat(bytes4(0x11223344), bytes("hello"))); - gwRouter.execBottomUpMsgBatch(batch); + gwBottomUpRouterFacet.execBottomUpMsgBatch(batch); assertEq(token.balanceOf(recipient), 8); } diff --git a/test/integration/GatewayL2Diamond.t.sol b/test/integration/GatewayL2Diamond.t.sol index ac586f049..3d09403f0 100644 --- a/test/integration/GatewayL2Diamond.t.sol +++ b/test/integration/GatewayL2Diamond.t.sol @@ -13,7 +13,7 @@ import {CrossMsgHelper} from "../../src/lib/CrossMsgHelper.sol"; import {GatewayDiamond, FEATURE_MULTILEVEL_CROSSMSG} from "../../src/GatewayDiamond.sol"; import {GatewayGetterFacet} from "../../src/gateway/GatewayGetterFacet.sol"; import {GatewayManagerFacet} from "../../src/gateway/GatewayManagerFacet.sol"; -import {GatewayRouterFacet} from "../../src/gateway/GatewayRouterFacet.sol"; +import {XnetMessagingFacet} from "../../src/gateway/router/XnetMessagingFacet.sol"; import {DiamondCutFacet} from "../../src/diamond/DiamondCutFacet.sol"; import {GatewayMessengerFacet} from "../../src/gateway/GatewayMessengerFacet.sol"; import {DiamondLoupeFacet} from "../../src/diamond/DiamondLoupeFacet.sol"; @@ -31,11 +31,11 @@ contract GatewayL2ActorDiamondTest is Test, IntegrationTestBase { path2[1] = CHILD_NETWORK_ADDRESS_2; GatewayDiamond.ConstructorParams memory gwConstructorParams = defaultGatewayParams(); - gatewayDiamond = createGatewayDiamond(gwConstructorParams); + gwGetter = GatewayGetterFacet(address(gatewayDiamond)); gwManager = GatewayManagerFacet(address(gatewayDiamond)); - gwRouter = GatewayRouterFacet(address(gatewayDiamond)); + gwXnetMessagingFacet = XnetMessagingFacet(address(gatewayDiamond)); gwMessenger = GatewayMessengerFacet(address(gatewayDiamond)); gwLouper = DiamondLoupeFacet(address(gatewayDiamond)); gwCutter = DiamondCutFacet(address(gatewayDiamond)); @@ -50,7 +50,6 @@ contract GatewayL2ActorDiamondTest is Test, IntegrationTestBase { networkName: SubnetID({root: ROOTNET_CHAINID, route: path2}), bottomUpCheckPeriod: DEFAULT_CHECKPOINT_PERIOD, msgFee: DEFAULT_CROSS_MSG_FEE, - minCollateral: DEFAULT_COLLATERAL_AMOUNT, majorityPercentage: DEFAULT_MAJORITY_PERCENTAGE, genesisValidators: new Validator[](0), activeValidatorsLimit: DEFAULT_ACTIVE_VALIDATORS_LIMIT @@ -88,7 +87,7 @@ contract GatewayL2ActorDiamondTest is Test, IntegrationTestBase { vm.startPrank(FilAddress.SYSTEM_ACTOR); - gwRouter.applyCrossMessages(topDownMsgs); + gwXnetMessagingFacet.applyCrossMessages(topDownMsgs); require(gwGetter.getSubnetTopDownMsgsLength(id) == 0, "unexpected top-down message"); (bool ok, uint64 tdn) = gwGetter.getAppliedTopDownNonce(id); require(!ok && tdn == 0, "unexpected nonce"); @@ -172,7 +171,7 @@ contract GatewayL2ActorDiamondTest is Test, IntegrationTestBase { msgs[0] = crossMsg; vm.prank(FilAddress.SYSTEM_ACTOR); - gwRouter.applyCrossMessages(msgs); + gwXnetMessagingFacet.applyCrossMessages(msgs); return crossMsg.toHash(); } diff --git a/test/integration/SubnetActorDiamond.t.sol b/test/integration/SubnetActorDiamond.t.sol index 00d733f75..9bcca7cef 100644 --- a/test/integration/SubnetActorDiamond.t.sol +++ b/test/integration/SubnetActorDiamond.t.sol @@ -5,7 +5,9 @@ import "../../src/errors/IPCErrors.sol"; import {Test} from "forge-std/Test.sol"; import "forge-std/console.sol"; import {TestUtils} from "../helpers/TestUtils.sol"; -import {NumberContractFacetSeven, NumberContractFacetEight} from "../helpers/NumberContract.sol"; +import {SelectorLibrary} from "../helpers/SelectorLibrary.sol"; +import {NumberContractFacetSeven} from "../helpers/NumberContractFacetSeven.sol"; +import {NumberContractFacetEight} from "../helpers/NumberContractFacetEight.sol"; import {METHOD_SEND} from "../../src/constants/Constants.sol"; import {ConsensusType} from "../../src/enums/ConsensusType.sol"; import {BottomUpMsgBatch, CrossMsg, BottomUpCheckpoint, StorableMsg} from "../../src/structs/CrossNet.sol"; @@ -22,7 +24,7 @@ import {StorableMsgHelper} from "../../src/lib/StorableMsgHelper.sol"; import {SubnetIDHelper} from "../../src/lib/SubnetIDHelper.sol"; import {SubnetActorDiamond, FunctionNotFound} from "../../src/SubnetActorDiamond.sol"; import {FEATURE_CHECKPOINT_RELAYER_REWARDS} from "../../src/GatewayDiamond.sol"; -import {SubnetActorManagerFacet, ERR_PERMISSIONED_AND_BOOTSTRAPPED} from "../../src/subnet/SubnetActorManagerFacet.sol"; +import {SubnetActorManagerFacet} from "../../src/subnet/SubnetActorManagerFacet.sol"; import {SubnetActorGetterFacet} from "../../src/subnet/SubnetActorGetterFacet.sol"; import {DiamondCutFacet} from "../../src/diamond/DiamondCutFacet.sol"; import {FilAddress} from "fevmate/utils/FilAddress.sol"; @@ -446,7 +448,7 @@ contract SubnetActorDiamondTest is Test, IntegrationTestBase { saManager.stake(); vm.prank(validator); - vm.expectRevert(NotStakedBefore.selector); + vm.expectRevert((abi.encodeWithSelector(MethodNotAllowed.selector, ERR_VALIDATOR_NOT_JOINED))); saManager.stake{value: 10}(); vm.prank(validator); @@ -915,7 +917,7 @@ contract SubnetActorDiamondTest is Test, IntegrationTestBase { DiamondCutFacet saDiamondCutter = DiamondCutFacet(address(saDiamond)); IDiamond.FacetCut[] memory saDiamondCut = new IDiamond.FacetCut[](1); - bytes4[] memory ncGetterSelectors = TestUtils.generateSelectors(vm, "NumberContractFacetSeven"); + bytes4[] memory ncGetterSelectors = SelectorLibrary.resolveSelectors("NumberContractFacetSeven"); saDiamondCut[0] = ( IDiamond.FacetCut({ @@ -934,7 +936,7 @@ contract SubnetActorDiamondTest is Test, IntegrationTestBase { NumberContractFacetSeven saNumberContract = NumberContractFacetSeven(address(saDiamond)); assert(saNumberContract.getNum() == 7); - ncGetterSelectors = TestUtils.generateSelectors(vm, "NumberContractFacetEight"); + ncGetterSelectors = SelectorLibrary.resolveSelectors("NumberContractFacetEight"); saDiamondCut[0] = ( IDiamond.FacetCut({ facetAddress: address(ncFacetB), @@ -1165,32 +1167,6 @@ contract SubnetActorDiamondTest is Test, IntegrationTestBase { } } - function testSubnetActorDiamond_Join_Works_LessThanMinStake() public { - uint256 n = 10; - - (address[] memory validators, uint256[] memory privKeys, bytes[] memory publicKeys) = TestUtils.newValidators( - n - ); - - for (uint i = 0; i < n; i++) { - vm.deal(validators[i], 100 * DEFAULT_MIN_VALIDATOR_STAKE); - } - - vm.prank(validators[0]); - saManager.join{value: 100 * DEFAULT_MIN_VALIDATOR_STAKE}(publicKeys[0]); - - for (uint i = 1; i < n; i++) { - vm.prank(validators[i]); - saManager.join{value: DEFAULT_MIN_VALIDATOR_STAKE - 1}(publicKeys[i]); - } - - confirmChange(validators[0], privKeys[0]); - - for (uint i = 0; i < n; i++) { - require(saGetter.isActiveValidator(validators[i]), "not active validator"); - } - } - function testSubnetActorDiamond_Join_Works_WithMinimalStake() public { uint256 n = 10; @@ -1267,14 +1243,13 @@ contract SubnetActorDiamondTest is Test, IntegrationTestBase { (address validator1, bytes memory publicKey1) = TestUtils.deriveValidatorAddress(100); vm.deal(validator1, DEFAULT_MIN_VALIDATOR_STAKE * 2); - vm.startPrank(validator1); + vm.prank(validator1); saManager.join{value: DEFAULT_MIN_VALIDATOR_STAKE / 2}(publicKey1); - (address validator2, bytes memory publicKey2) = TestUtils.deriveValidatorAddress(100); + (address validator2, bytes memory publicKey2) = TestUtils.deriveValidatorAddress(101); vm.deal(validator2, DEFAULT_MIN_VALIDATOR_STAKE * 2); - vm.startPrank(validator2); + vm.prank(validator2); saManager.join{value: DEFAULT_MIN_VALIDATOR_STAKE / 2}(publicKey2); - vm.stopPrank(); require(saGetter.isActiveValidator(validator1), "not active validator 1"); require(saGetter.isActiveValidator(validator2), "not active validator 2"); @@ -1282,6 +1257,7 @@ contract SubnetActorDiamondTest is Test, IntegrationTestBase { // cannot join after bootstrap vm.expectRevert(abi.encodeWithSelector(MethodNotAllowed.selector, ERR_PERMISSIONED_AND_BOOTSTRAPPED)); + vm.prank(validator1); saManager.join{value: DEFAULT_MIN_VALIDATOR_STAKE}(publicKey1); vm.expectRevert(abi.encodeWithSelector(MethodNotAllowed.selector, ERR_PERMISSIONED_AND_BOOTSTRAPPED)); @@ -1293,6 +1269,38 @@ contract SubnetActorDiamondTest is Test, IntegrationTestBase { saManager.setFederatedPower(validators, publicKeys, powers); } + function testSubnetActorDiamond_registration_policy() public { + (address validator1, bytes memory publicKey1) = TestUtils.deriveValidatorAddress(100); + vm.deal(validator1, DEFAULT_MIN_VALIDATOR_STAKE); + + vm.expectRevert(abi.encodeWithSelector(MethodNotAllowed.selector, ERR_VALIDATOR_NOT_JOINED)); + vm.prank(validator1); + saManager.stake{value: DEFAULT_MIN_VALIDATOR_STAKE / 2}(); + + vm.prank(validator1); + saManager.join{value: DEFAULT_MIN_VALIDATOR_STAKE / 2}(publicKey1); + + require(saGetter.isActiveValidator(validator1), "active validator 1"); + require(!saGetter.bootstrapped(), "subnet bootstrapped"); + + vm.expectRevert(abi.encodeWithSelector(MethodNotAllowed.selector, ERR_VALIDATOR_JOINED)); + vm.prank(validator1); + saManager.join{value: DEFAULT_MIN_VALIDATOR_STAKE / 2}(publicKey1); + + vm.prank(validator1); + saManager.stake{value: DEFAULT_MIN_VALIDATOR_STAKE / 2}(); + + require(saGetter.isActiveValidator(validator1), "active validator 1"); + + (address validator2, bytes memory publicKey2) = TestUtils.deriveValidatorAddress(101); + vm.deal(validator2, DEFAULT_MIN_VALIDATOR_STAKE * 2); + vm.prank(validator2); + saManager.join{value: DEFAULT_MIN_VALIDATOR_STAKE / 2}(publicKey2); + + require(saGetter.isActiveValidator(validator1), "not active validator 1"); + require(saGetter.bootstrapped(), "subnet not bootstrapped"); + } + function testSubnetActorDiamond_FederatedValidation_bootstrapWorks() public { gatewayAddress = address(gatewayDiamond); diff --git a/test/invariants/SubnetActorInvariants.t.sol b/test/invariants/SubnetActorInvariants.t.sol index 7e63239ae..6f3fab732 100644 --- a/test/invariants/SubnetActorInvariants.t.sol +++ b/test/invariants/SubnetActorInvariants.t.sol @@ -9,9 +9,8 @@ import {GatewayDiamond} from "../../src/GatewayDiamond.sol"; import {GatewayGetterFacet} from "../../src/gateway/GatewayGetterFacet.sol"; import {GatewayMessengerFacet} from "../../src/gateway/GatewayMessengerFacet.sol"; import {GatewayManagerFacet} from "../../src/gateway/GatewayManagerFacet.sol"; -import {GatewayRouterFacet} from "../../src/gateway/GatewayRouterFacet.sol"; import {SubnetActorHandler, ETH_SUPPLY} from "./handlers/SubnetActorHandler.sol"; -import {SubnetActorManagerFacetMock} from "../mocks/SubnetActor.sol"; +import {SubnetActorManagerFacetMock} from "../mocks/SubnetActorManagerFacetMock.sol"; import {SubnetActorGetterFacet} from "../../src/subnet/SubnetActorGetterFacet.sol"; import {IntegrationTestBase} from "../IntegrationTestBase.sol"; import {SupplySourceHelper} from "../../src/lib/SupplySourceHelper.sol"; @@ -30,7 +29,6 @@ contract SubnetActorInvariants is StdInvariant, IntegrationTestBase { gwGetter = GatewayGetterFacet(address(gatewayDiamond)); gwManager = GatewayManagerFacet(address(gatewayDiamond)); - gwRouter = GatewayRouterFacet(address(gatewayDiamond)); gwMessenger = GatewayMessengerFacet(address(gatewayDiamond)); gatewayAddress = address(gatewayDiamond); diff --git a/test/invariants/handlers/SubnetActorHandler.sol b/test/invariants/handlers/SubnetActorHandler.sol index fe7cf7384..a860b8beb 100644 --- a/test/invariants/handlers/SubnetActorHandler.sol +++ b/test/invariants/handlers/SubnetActorHandler.sol @@ -6,7 +6,7 @@ import "forge-std/StdCheats.sol"; import {CommonBase} from "forge-std/Base.sol"; import {SubnetActorDiamond} from "../../../src/SubnetActorDiamond.sol"; import {SubnetActorGetterFacet} from "../../../src/subnet/SubnetActorGetterFacet.sol"; -import {SubnetActorManagerFacetMock} from "../../mocks/SubnetActor.sol"; +import {SubnetActorManagerFacetMock} from "../../mocks/SubnetActorManagerFacetMock.sol"; import {TestUtils} from "../../helpers/TestUtils.sol"; import {EnumerableSet} from "openzeppelin-contracts/utils/structs/EnumerableSet.sol"; diff --git a/test/mocks/SubnetActor.sol b/test/mocks/SubnetActorManagerFacetMock.sol similarity index 100% rename from test/mocks/SubnetActor.sol rename to test/mocks/SubnetActorManagerFacetMock.sol